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/exakat.yml b/.github/workflows/exakat.yml index c2f8cc12765..528626e0308 100644 --- a/.github/workflows/exakat.yml +++ b/.github/workflows/exakat.yml @@ -5,11 +5,14 @@ on: schedule: - cron: "0 20 * * *" +permissions: + contents: read + jobs: exakat: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - 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..4ac9fa8f5b9 100644 --- a/.github/workflows/stale-issues-safe.yml +++ b/.github/workflows/stale-issues-safe.yml @@ -6,9 +6,13 @@ on: - cron: "0 21 * * *" issue_comment: types: [created] + +permissions: {} # none jobs: stale: + permissions: + issues: write runs-on: ubuntu-latest steps: - uses: Dolibarr/stale@staleunstale @@ -21,4 +25,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..e935ec1bd59 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,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 +57,3 @@ yarn.lock package-lock.json doc/install.lock -/factory/ diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 3cffed355fa..67b4b346b6c 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -18,9 +18,10 @@ filter: - dev/* - doc/* - documents/* - - htdocs/includes/* - node_modules/* - test/* + dependency_paths: + - htdocs/includes/* paths: - htdocs/* - scripts/* diff --git a/.travis.yml b/.travis.yml index 44d784ea091..637ba35995b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -54,11 +54,11 @@ jobs: 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 + php: nightly env: DB=mysql notifications: @@ -93,23 +93,26 @@ install: echo - | - echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer - for $TRAVIS_PHP_VERSION" + 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 if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then 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 composer -n require phpunit/phpunit ^7 \ 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 # phpunit 9 is required for php 8 @@ -117,6 +120,7 @@ install: composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \ 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 echo @@ -166,6 +170,10 @@ before_script: which phpcs phpcs --version | head - phpcs -i | head - + # Check PHP Vardump check version + echo "PHP Vardump check version" + which var_dump_check + var_dump_check --version # Check PHPUnit version echo "PHPUnit version" which phpunit @@ -281,7 +289,7 @@ script: --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 @@ -297,6 +305,17 @@ script: set +e echo +- | + echo "Checking missing debug" + # 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 + 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 + echo + - | export INSTALL_FORCED_FILE=htdocs/install/install.forced.php echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation" @@ -417,6 +436,9 @@ 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 ls -alrt $TRAVIS_BUILD_DIR/ - | 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 a2101a1db0a..8c8a1f56355 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -24,7 +24,6 @@ Component Version License GPL Compatible ------------------------------------------------------------------------------------- PHP libraries: ADOdb-Date 0.36 Modified BSD License Yes Date convertion (not into rpm package) -CKEditor 4.12.1 LGPL-2.1+ Yes Editor WYSIWYG 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 @@ -34,15 +33,17 @@ PEAR Mail_MIME 1.8.9 BSD Yes ParseDown 1.6 MIT License Yes Markdown parser 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 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 @@ -50,8 +51,9 @@ TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes JS libraries: Ace 1.4.14 BSD Yes JS library to get code syntaxique coloration in a textarea. 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 31bfa1c1cff..cbd76fe7c37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,25 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 17.0.0 compared to 16.0.0 ***** + +For users: +--------------- + +... + + +For developers or integrators: +------------------------------ + +... + + +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* 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. ***** ChangeLog for 16.0.0 compared to 15.0.0 ***** @@ -9,31 +28,378 @@ English Dolibarr ChangeLog For users: --------------- -NEW: PHP 8.0 compatibility +NEW: PHP 8.1 compatibility: + Warning!! Application works correctly with PHP8 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 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: #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 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: 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 entity filter in exports +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 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 border 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 substitutions "user numbers" +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: Can change value of AWP during the inventory +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 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: 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: Dictionaries - add possibility to manage countries in EEC +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: 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: Mass action "Close shipments" +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: More mode for THEME_TOPMENU_DISABLE_IMAGE (2, 3, ...) +NEW: Add option to move checkbox column as first column on Thirdparty list (only few screens) +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: 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: Proposals - option update prices on proposal cloning +NEW: SEPA XML - option to place payment Type Info at Credit transfer Transaction level +NEW: Stocks - stock filter in reassort lists +NEW: Stocks - stock limit in stock export CSV +NEW: Supplier order - Show ref supplier of reception in linked object block +NEW: support user_modif in order +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: 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 - 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 backup tools has an "lowmemory" option for mysqldump on large database +NEW: The 'reposition' class works on ajax constantonoff that make redirects +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: Added MMK currency (Myanmar Kyat) +NEW: On a form to send an email, we show all emails of contacts of object + + Modules state +NEW: Module Partnership Management +NEW: Module Event Organization Management - - Modules -NEW: Experimental module Event Organization Management -NEW: Experimental module Workstations Management -NEW: Experimental module Partnership Management +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: 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: Identification of tr is possible with by attribute data-id on some pages +NEW: Import with select boxes V2 +NEW: Can use current entity filter on 'chkbxlst' +NEW: Creation of the function select_bom() used to display bom select list +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: 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: Standardize a lot of code. +NEW: Add a protection into PHPunit to avoid to forget a var_dump -For developers: ---------------- +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: #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 -NEW: A lot of addition of hooks. +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 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 +NEW: Add hook selectProductsListWhere in select_produits_list function +NEW: Add hooks in commercial index +NEW: Add hooks in customers and products boxes +NEW: Add hooks in thirdparty index page +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 + 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. * The deprecated method thirdparty_doc_create() has been removed. You can use the generateDocument() instead. -* All triggers with a name XXX_UPDATE have been rename with name XXX_MODIFY for code consistency purpose. -* Rename build_path_from_id_categ() into buildPathFromId() and set method to private +* 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. +* Move massaction 'confirm_createbills' from actions_massactions.inc.php to commande/list.php +* 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' + + +***** 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 ***** + +FIX: #19777 #20281 +FIX: #20140 #20301 +FIX: #20279 Accountancy - PostGreSQL - Error on mass update lines already binded +FIX: #20476 migration postgresql 14.0.x to 15.0.x packaging type +FIX: #20733 Inventory: Do not use batch qty even if present if batch module is disabled. +FIX: action comm list: holiday last day not included + handle duration with halfdays +FIX: Add missing entity on salary's payment +FIX: Add 'recruitment' into check array +FIX: add tools to fix bad bank amount in accounting with multicurrency +FIX: assign member cateogry to a member +FIX: backport +FIX: bad bank amount in accounting with multicurrency +FIX: Bad condition on remx +FIX: Bad filter on date on salary list +FIX: bad link to add a customer price (token duplicated) +FIX: bad status of member on widget by type and status +FIX: better error management at product selling price update +FIX: Can't edit bank record +FIX: check mandatory thirdparty fields for mass action +FIX: check thirdparty object loaded and properties exist +FIX: comment +FIX: compatibility for ticket number sharing +FIX: compatibility with multicompany sharings +FIX: contact card: single extrafield update failed +FIX: country not visible into list of states +FIX: Delete an extrafield where type is double +FIX: deprecated module are not more viewed as external modules +FIX: Disable customer type by default if type prospect/customer is disabled +FIX: each time we create a supplier order, we need to give it a ref_supplier +FIX: Error management +FIX: fatal error for $db usage in tpl +FIX: filter into the list of product lots +FIX: Filter on Object Referent page give CRSF page +FIX: Fix default options ($hidedetails, $hidedesc, $hideref) with globales when generate PDF in mass actions +FIX: Fix search by filters +FIX: Fix the adding of lines in the create invoice functions +FIX: forgotten form confirm before various payment delete +FIX: holiday/leave requests: write status change emails in HTML +FIX: include discount price for PMP after a reception (Issue #20029) +FIX: incrementation +FIX: in salary stats and payment list, we must check right perms as well as salary list +FIX: intervention entity missing +FIX: label tax cat trad +FIX: Mass action ship orders +FIX: missing advanced perms +FIX: missing call to executeHooks() +FIX: Missing entity on adding new VAT +FIX: missing hook for row ordering +FIX: missing hook parameter ($possiblelinks) +FIX: missing parenthesis +FIX: missing picto in combo of mass actions of thirdparties. +FIX: missing signature library when ODT model is used +FIX: Missing unset fields after updateline expensereport +FIX: ModuileBuilder - Fix getLinesArray() error reporting +FIX: Move delete task time trigger position +FIX: Navigation between invoices +FIX: No empty line inserted into accounting_bookkeeping +FIX: Numbering of sepa files +FIX: object cloning: set unique extrafield values to null to prevent duplicates +FIX: on update with action reminder in future there is user key error +FIX: originproductline array td identification data-id +FIX: out of memory when more than 100 000 invoices. +FIX: permit access to medias when logged in a different entity +FIX: phpcs +FIX: project creation prevented if PROJECTLEADER contact role renamed, de-activated or deleted +FIX: project timesheet by week: cleanup unused code +FIX: project timesheet: public holidays offset by 1 day +FIX: project timesheets: assume Saturday and Sunday as default weekend days when working days conf is empty or badly formed +FIX: propal list: bad error management when setting "not signed" mass action +FIX: propal list mass action translations and error management (v14 edition) +FIX: propal list: missing not signed massaction translation keys for transifex +FIX: PR returns +FIX: ref_client doesn't exists on supplier invoice, then ref_fourn needs to have a default value when we want to bill several supplier orders +FIX: replenish and manage product stock by warhouse +FIX: sending email on payment of registration of event +FIX: SEPA ICS is not mandatory for bank transfer +FIX: Set datec when add time spent on a project task +FIX: status filter on supplierOrder stats doesn't work +FIX: stickler-ci +FIX: still prevent project creation if PROJECTLEADER role unavailable, but with a specific error message +FIX: Supplier order stats +FIX: Tabulation must be allowed for HTML content +FIX: tool to fix bank account not in main currency for vendor invoice +FIX: translations +FIX: Travis + Update dev +FIX: truncate Customer Reference too long on PDF header (PR #20718) +FIX: uniformize code +FIX: Update of sale price (log not correctly updated) +FIX: user actions rights when mulit-company transverse mode is enabled +FIX: user employee tab: offset in open days messes up holiday length calculation +FIX: We need to have a different default_ref_supplier for each new fourn invoice +FIX: "WHERE" clause missing on resource export +FIX: #yogosha9754 ***** ChangeLog for 15.0.1 compared to 15.0.0 ***** @@ -145,8 +511,9 @@ NEW: Increase size of params of actions for emailcollector NEW: Invoice list - Use complete country select field with EEC or not NEW: mass action delete, no more break if at least one object has child NEW: mass action paid on customer invoice list -NEW: massaction validate on supplier orders list -NEW: Mass action send email to all attendees of an event. +NEW: mass action validate on supplier orders list +NEW: mass action send email to all attendees of an event +NEW: mass action to switch status on sale / on purchase of a product NEW: expense reports: conf to pre-fill start/end dates with bounds of current month NEW: Option "Add a link on the PDF to make the online payment" NEW: More options to generate PDF (show Frame option, width of picture option) @@ -167,7 +534,7 @@ NEW: when multiple order linked to facture, show list into note. NEW: when we delete several objects with massaction, if somes object has child we must see which objects are concerned and nevertheless delete objects which can be deleted NEW: Editing a page in website module keep old page with name .back NEW: External backups can be downloaded from the "About info page". -NEW: Add massaction to switch status on sale / on purchase of a product. + Modules @@ -175,36 +542,51 @@ NEW: Stable module Knowledge Management NEW: Experimental module Event Organization Management NEW: Experimental module Workstations Management NEW: Development of module Partnership Management +OLD: module SimplePOS has been completely removed -> use TakePOS For developers: --------------- +API: +NEW: #18319 REST API - Shipment: Add 'close' action / endpoint / POST method. +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 +NEW: Hidden option API_DISABLE_COMPRESSION is now visible in API setup page. + +Hook: +NEW: add hook 'beforeBodyClose' +NEW: add hook 'hookGetEntity' +NEW: add hook 'menuLeftMenuItems' to filter the leftmenu items +NEW: add hook 'printUnderHeaderPDFline' on invoice PDF templates (can be used for example to add a barcode or more information on header of invoices). +NEW: add hookmanager on note pages +NEW: hook after rank update +NEW: 'printFieldListFrom' hook call on several lists + +ModuleBuilder: +NEW: add the property "copytoclipboard" in modulebuilder +NEW: Use lang selector when using a field key 'lang' in modulebuilder + +Options: +NEW: add options MAIN_IBAN_IS_NEVER_MANDATORY, MAIN_IBAN_NOT_MANDATORY, PROPAL_NOT_BILLABLE, PROPAL_REOPEN_UNSIGNED_ONLY, PROPOSAL_ARE_NOT_BILLABLE, TICKETS_MESSAGE_FORCE_MAIL + +Trigger: +NEW: add action trigger for member excluded + + NEW: Introduce method hasRight NEW: Can use textarea field into a confirm popup. NEW: Can use the result_mode of mysqli driver. Save memory for list count -NEW: #18319 REST API - Shipment: Add 'close' action / endpoint / POST method. -NEW: Add API /approve and /makeOrder for purchase orders. -NEW: add action trigger for member excluded -NEW: add option MAIN_IBAN_IS_NEVER_MANDATORY, MAIN_IBAN_NOT_MANDATORY, PROPAL_NOT_BILLABLE, PROPAL_REOPEN_UNSIGNED_ONLY, PROPOSAL_ARE_NOT_BILLABLE, TICKETS_MESSAGE_FORCE_MAIL -NEW: Add code codebar column on serial/lot structure -NEW: Add date_valid and date_approve columns in the list of supplier orders -NEW: add hook `beforeBodyClose` -NEW: Add hook hookGetEntity. -NEW: add hookmanager on note pages -NEW: add hook 'menuLeftMenuItems' to filter the leftmenu items -NEW: Add the property "copytoclipboard" in modulebuilder -NEW: api for knowledgemanagement -NEW: API get list of legal form of business -NEW: API list of staff units -NEW: hook after rank update -NEW: printFieldListFrom hook call on several lists -NEW: Use lang selector when using a field key 'lang' in modulebuilder +NEW: add code codebar column on serial/lot structure +NEW: add date_valid and date_approve columns in the list of supplier orders 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 -NEW: Hidden option API_DISABLE_COMPRESSION is now visible in API setup page. -NEW: Add hook printUnderHeaderPDFline on invoice PDF templates (can be used for example to add a barcode or more information on header of invoices). + + +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 @@ -1061,7 +1443,6 @@ NEW: introduce constant FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM NEW: introducing new modal boxes in TakePOS NEW: keep TakePOS terminal when login/logout NEW: link on balance to the ledger -NEW: MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const in email collector NEW: manage errors on update extra fields in ticket card NEW: mass-actions for the event list view NEW: more filter for "View change logs" diff --git a/README.md b/README.md index 4e120a4cb91..c476f14a8cc 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Other licenses apply for some included dependencies. See [COPYRIGHT](https://git If you have low technical skills and you're looking to install Dolibarr ERP/CRM in just a few clicks, you can use one of the packaged versions: -- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_DoliWamp) +- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_(DoliWamp)) - [DoliDeb for Debian](https://wiki.dolibarr.org/index.php/Dolibarr_for_Ubuntu_or_Debian) - DoliRpm for Redhat, Fedora, OpenSuse, Mandriva or Mageia @@ -111,7 +111,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) - Customers/Prospects + Contacts management - Opportunities or Leads management -- Commercial proposals management +- Commercial proposals management (online signing) - Customer Orders management - Contracts/Subscription management - Interventions management @@ -129,11 +129,11 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) - Supplier Invoices/credit notes and payment management - INCOTERMS - Finance / Accounting + Finance/Accounting -- Invoices / Payments +- Invoices/Payments - Bank accounts management -- Direct debit orders management (European SEPA) +- Direct debit and Credit transfer management (European SEPA) - Accounting management - Donations management - Loan management @@ -142,14 +142,14 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) Collaboration -- Shared calendar/agenda (with ical and vcal export for third party tools integration) +- Shared calendar/agenda (with ical and vcal import/export for third party tools integration) - Projects & Tasks management - Ticket System - Surveys HR -- Employee's leave requests management +- Employee's leaves management - Expense reports - Recruitment management - Timesheets @@ -157,16 +157,14 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) ### Other application/modules - Electronic Document Management (EDM) -- Bookmarks management +- Bookmarks - Reporting - Data export/import - Barcodes -- Margin calculations - LDAP connectivity - ClickToDial integration - Mass emailing - RSS integration -- Skype integration - Social platforms linking - Payment platforms integration (PayPal, Stripe, Paybox...) - Email-Collector @@ -175,13 +173,12 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) ### Other general features -- Localization in most major languages -- Multi-Language Support +- Multi-Language Support (Localization in most major languages) - Multi-Users and groups with finely grained rights - Multi-Currency - Multi-Company (by adding of an external module) - Very user friendly and easy to use -- customizable Dashboard +- Customizable dashboards - Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several menu managers (can be used by internal users as a back-office with a particular menu, or by external users as a front-office with another one) - APIs (REST, SOAP) - Code that is easy to understand, maintain and develop (PHP with no heavy framework; trigger and hook architecture) @@ -191,8 +188,9 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) - Canadian double taxes (federal/province) and other countries using cumulative VAT - Tunisian tax stamp - Argentina invoice numbering using A,B,C... + - ZATCA e-invoicing QR-Code - Compatible with [European directives](https://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE) - - Compatible with European GDPR rules + - Compatible with data privacy rules (europe GDPR, ...) - ... - Flexible PDF & ODT generation for invoices, proposals, orders... - ... @@ -244,6 +242,7 @@ Follow Dolibarr project on: - [Facebook](https://www.facebook.com/dolibarr) - [Twitter](https://www.twitter.com/dolibarr) - [LinkedIn](https://www.linkedin.com/company/association-dolibarr) +- [Reddit](https://www.reddit.com/r/Dolibarr_ERP_CRM/) - [YouTube](https://www.youtube.com/user/DolibarrERPCRM) - [GitHub](https://github.com/Dolibarr/dolibarr) diff --git a/SECURITY.md b/SECURITY.md index c55d6d26ab0..cd3156bece9 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,8 +6,9 @@ This file contains some policies about the security reports on Dolibarr ERP CRM | Version | Supported | | ---------- | ---------------------- | -| <= 14.0.4 | :x: | -| >= 14.0.5+ | :white_check_mark: except CSRF attacks| +| <= 15.0.0 | :x: | +| >= 15.0.1+ | :white_check_mark: except CSRF attacks| +| >= 16.0.0 | :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/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/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/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 dbf74a96f67..10cc1561011 100644 --- a/build/exe/doliwamp/doliwamp.iss +++ b/build/exe/doliwamp/doliwamp.iss @@ -24,15 +24,14 @@ 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=NLTechno -AppPublisherURL=https://www.nltechno.com +AppPublisher=DoliCloud +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-2020 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 @@ -99,19 +98,12 @@ Source: "build\exe\doliwamp\startdoliwamp_manual_donotuse.bat.install"; DestDir: Source: "build\exe\doliwamp\builddemosslfiles.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion; -; PhpMyAdmin, Apache, Php, Mysql +; 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:\wamp64\apps\phpmyadmin4.9.2\*.*"; DestDir: "{app}\apps\phpmyadmin4.9.2"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange" -;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,15 +117,11 @@ Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversi Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,default.properties,install.lock" ; Config files -Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; -Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin4.1.14"; 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; @@ -196,7 +184,6 @@ var destFileA: String; var srcContents: String; var browser: String; var mysqlVersion: String; -var phpmyadminVersion: String; var phpDllCopy: String; var batFile: String; @@ -240,13 +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'; - phpmyadminVersion := '4.1.14'; + apacheVersion := '2.4.51'; + phpVersion := '7.3.33' ; + mysqlVersion := '10.6.5'; smtpServer := 'localhost'; apachePort := '80'; @@ -380,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. @@ -635,27 +618,6 @@ begin begin - //---------------------------------------------- - // Create file alias phpmyadmin (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/alias/phpmyadmin.conf'; - srcFile := pathWithSlashes+'/alias/phpmyadmin.conf.install'; - - if FileExists(srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //installDir et version de phpmyadmin - StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); - StringChangeEx (srcContents, 'WAMPPHPMYADMINVERSION', phpmyadminVersion, True); - - SaveStringToFile(destFile,srcContents, False); - end; - DeleteFile(srcFile); - - - //---------------------------------------------- // Create file alias dolibarr (if not exists) //---------------------------------------------- @@ -691,35 +653,6 @@ begin - //---------------------------------------------- - // Create file configuration for phpmyadmin (if not exists) - //---------------------------------------------- - - destFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php'; - srcFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php.install'; - - if FileExists(srcFile) then - begin - if not FileExists (destFile) then - begin - LoadStringFromFile (srcFile, srcContents); - StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); - SaveStringToFile(destFile,srcContents, False); - end - else - begin - // We must replace to use format 2.4 of apache - DeleteFile(destFile); - LoadStringFromFile (srcFile, srcContents); - StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); - SaveStringToFile(destFile,srcContents, False); - end; - end; - - - //---------------------------------------------- // Create file httpd.conf (if not exists) //---------------------------------------------- @@ -1082,7 +1015,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..3d72ebe6739 100755 --- a/build/generate_filelist_xml.php +++ b/build/generate_filelist_xml.php @@ -56,7 +56,7 @@ if (empty($argv[1])) { $i=0; while ($i < $argc) { - if (! empty($argv[$i])) { + if (!empty($argv[$i])) { parse_str($argv[$i]); // set all params $release, $includecustom, $includeconstant, $buildzip ... } if (preg_match('/includeconstant=/', $argv[$i])) { diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 906601d94d4..abf16cee764 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`; @@ -582,9 +591,7 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/webmail*`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/allscreen*`; - $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/theme/common/octicons/LICENSE`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/theme/common/fontawesome-5/svgs`; # Removed other test files $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`; @@ -625,7 +632,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`; @@ -1075,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; } @@ -1243,7 +1274,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-howto.txt b/build/makepack-howto.txt index 477d129d459..be88302cd1d 100644 --- a/build/makepack-howto.txt +++ b/build/makepack-howto.txt @@ -1,19 +1,47 @@ ----- 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: +> 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. + + +***** Prerequisites For Windows ***** + +Install Perl +Install WampServer-3.2.*-64.exe +isetup-5.5.8.exe + ***** Actions to do a BETA ***** This files describe steps made by Dolibarr packaging team to make a beta version of Dolibarr, step by step. - Check all files are commited. -- Update version/info in ChangeLog. -To generate a changelog of a major new version x.y.0 (from develop repo), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" -To generate a changelog of a major new version x.y.0 (from x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +- Update version/info in ChangeLog, for this you can: +To generate a changelog of a major new version x.y.0 (from a repo on branch develop), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +To generate a changelog of a major new version x.y.0 (from a repo on branch x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" -- To know number of lines changes: git diff --shortstat A B -- Update version number with x.y.z-w in htdocs/filefunc.inc.php +Recopy the content of the output file into the file ChangeLog. +- Note: To know number of lines changes: git diff --shortstat A B +- Update version number with x.y.z-w in file htdocs/filefunc.inc.php - Commit all changes. - Run makepack-dolibarr.pl to generate all packages. @@ -24,7 +52,6 @@ To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dol (/home/dolibarr/wwwroot/files/lastbuild). - Post a news on dolibarr.org/dolibarr.fr + social networks -- Send mail on mailings-list ***** Actions to do a RELEASE ***** @@ -32,12 +59,13 @@ This files describe steps made by Dolibarr packaging team to make a complete release of Dolibarr, step by step. - Check all files are commited. -- Update version/info in ChangeLog. -To generate a changelog of a major new version x.y.0 (from develop repo), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" -To generate a changelog of a major new version x.y.0 (from x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +- Update version/info in ChangeLog, for this you can: +To generate a changelog of a major new version x.y.0 (from a repo on branch develop), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +To generate a changelog of a major new version x.y.0 (from a repo pn branch x.y), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" -- To know number of lines changes: git diff --shortstat A B -- Update version number with x.y.z in htdocs/filefunc.inc.php +Recopy the content of the output file into the file ChangeLog. +- Note: To know the number of lines changes: git diff --shortstat A B +- Update version number with x.y.z in file htdocs/filefunc.inc.php - Commit all changes. - Run makepack-dolibarr.pl to generate all packages. @@ -52,4 +80,3 @@ To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dol on server to point to new files (used by some web sites). - Post a news on dolibarr.org/dolibarr.fr + social networks -- Send mail on mailings-list diff --git a/build/rpm/dolibarr_fedora.spec b/build/rpm/dolibarr_fedora.spec index 27130244d00..1c6716408b7 100755 --- a/build/rpm/dolibarr_fedora.spec +++ b/build/rpm/dolibarr_fedora.spec @@ -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 diff --git a/build/rpm/dolibarr_generic.spec b/build/rpm/dolibarr_generic.spec index aeddd5526f8..f6d81feaea4 100755 --- a/build/rpm/dolibarr_generic.spec +++ b/build/rpm/dolibarr_generic.spec @@ -54,7 +54,7 @@ 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 @@ -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 @@ -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 diff --git a/build/rpm/dolibarr_mandriva.spec b/build/rpm/dolibarr_mandriva.spec index a1e4dffc781..a371e3ab02f 100755 --- a/build/rpm/dolibarr_mandriva.spec +++ b/build/rpm/dolibarr_mandriva.spec @@ -224,6 +224,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 diff --git a/build/rpm/dolibarr_opensuse.spec b/build/rpm/dolibarr_opensuse.spec index aed2d76ed29..bd6834582ac 100755 --- a/build/rpm/dolibarr_opensuse.spec +++ b/build/rpm/dolibarr_opensuse.spec @@ -66,7 +66,7 @@ ed essere facile da usare. Programmo web, progettato per poter fornire solo ciò di cui hai bisogno ed essere facile da usare. - +%_datadir/dolibarr/htdocs/webhook #---- prep %prep @@ -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 diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index 204988c5442..cbfecbbc19f 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -275,6 +275,13 @@ 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])) +With swagger 2 provided into /explorer: 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_16.0.0.sql similarity index 92% rename from dev/initdemo/mysqldump_dolibarr_15.0.0.sql rename to dev/initdemo/mysqldump_dolibarr_16.0.0.sql index 8b17c34203f..04bbc0288c3 100644 --- a/dev/initdemo/mysqldump_dolibarr_15.0.0.sql +++ b/dev/initdemo/mysqldump_dolibarr_16.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.7-MariaDB, for debian-linux-gnu (x86_64) -- --- Host: localhost Database: dolibarr_15 +-- Host: localhost Database: dolibarr_16 -- ------------------------------------------------------ --- Server version 10.3.31-MariaDB-0ubuntu0.20.04.1 +-- Server version 10.6.7-MariaDB-2ubuntu1 /*!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) COLLATE utf8mb3_unicode_ci NOT NULL, + `pcg_type` varchar(20) COLLATE utf8mb3_unicode_ci NOT NULL, + `account_number` varchar(20) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `labelshort` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `doc_ref` varchar(300) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `numero_compte` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label_compte` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label_operation` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lettering_code` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_journal` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `journal_label` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subledger_label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `doc_ref` varchar(300) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subledger_account` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subledger_label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `numero_compte` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label_compte` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `label_operation` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lettering_code` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_journal` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `journal_label` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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,28 +322,28 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `durationp` double DEFAULT NULL, `durationa` double DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` mediumtext COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_msgid` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_subject` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_from` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_sender` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_to` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_tocc` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_tobcc` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `errors_to` varchar(256) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `recurid` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `recurrule` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT 'default', + `reply_to` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `num_vote` int(11) DEFAULT NULL, `event_paid` smallint(6) NOT NULL DEFAULT 0, `status` smallint(6) NOT NULL DEFAULT 0, @@ -359,7 +359,7 @@ CREATE TABLE `llx_actioncomm` ( 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; +) ENGINE=InnoDB AUTO_INCREMENT=608 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -383,10 +383,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) COLLATE utf8mb3_unicode_ci 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 +408,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +445,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) COLLATE utf8mb3_unicode_ci NOT NULL, `fk_element` int(11) NOT NULL, - `answer_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `answer_status` varchar(50) COLLATE utf8mb3_unicode_ci 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 +475,47 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `civility` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `firstname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `login` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass_crypted` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `societe` varchar(128) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `socialnetworks` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone_perso` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone_mobile` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `birth` date DEFAULT NULL, - `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `photo` varchar(255) COLLATE utf8mb3_unicode_ci 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, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `gender` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_adherent_ref` (`ref`,`entity`), UNIQUE KEY `uk_adherent_login` (`login`,`entity`), @@ -523,7 +523,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 */; -- @@ -547,14 +547,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `sssss` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extradatamember` varchar(10) COLLATE utf8mb3_unicode_ci 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 +579,17 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `subscription` varchar(3) COLLATE utf8mb3_unicode_ci 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, + `vote` varchar(3) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '1', + `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `mail_valid` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `morphy` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `duration` varchar(6) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -613,11 +613,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extradatamembertype` varchar(32) COLLATE utf8mb3_unicode_ci 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 +640,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +659,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 +668,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` mediumtext COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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 +723,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `depreciation_asset` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `depreciation_expense` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `value_asset_sold` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `receivable_on_assignment` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `proceeds_from_sales` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `vat_collected` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `vat_deductible` varchar(32) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `endowment_accelerated_depreciation` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `provision_accelerated_depreciation` varchar(32) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_credit` varchar(32) COLLATE utf8mb3_unicode_ci 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 +932,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) COLLATE utf8mb3_unicode_ci 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 +948,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `asset_type` smallint(6) NOT NULL, + `fk_pays` int(11) DEFAULT 0, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +1028,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) COLLATE utf8mb3_unicode_ci 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 +1057,31 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_releve` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `num_chq` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `rappro` tinyint(4) DEFAULT 0, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `emetteur` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `author` varchar(40) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `numero_compte` varchar(32) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `amount_main_currency` double(24,8) DEFAULT NULL, 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 +1090,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','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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,NULL),(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),(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),(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,NULL),(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),(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),(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,NULL),(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),(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),(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,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,NULL),(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),(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),(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),(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),(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,NULL),(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),(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),(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,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,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,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,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,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,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,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,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,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,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,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,NULL); /*!40000 ALTER TABLE `llx_bank` ENABLE KEYS */; UNLOCK TABLES; @@ -878,47 +1105,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(30) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_banque` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_guichet` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `number` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cle_rib` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bic` varchar(11) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `iban_prefix` varchar(34) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `country_iban` varchar(2) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cle_iban` varchar(2) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `domiciliation` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `owner_address` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `account_number` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_journal` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `currency_code` varchar(3) COLLATE utf8mb3_unicode_ci NOT NULL, `min_allowed` int(11) DEFAULT 0, `min_desired` int(11) DEFAULT 0, - `comment` text COLLATE utf8_unicode_ci DEFAULT NULL, + `comment` text COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ics_transfer` varchar(32) COLLATE utf8mb3_unicode_ci 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 +1155,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 +1170,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) COLLATE utf8mb3_unicode_ci 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 +1194,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) COLLATE utf8mb3_unicode_ci 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 +1221,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 */; -- @@ -1016,12 +1244,12 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(24) COLLATE utf8mb3_unicode_ci 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; +) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1044,21 +1272,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `signature_line` varchar(100) COLLATE utf8mb3_unicode_ci NOT NULL, + `element` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_object` int(11) DEFAULT NULL, - `ref_object` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_object` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_object` datetime DEFAULT NULL, - `object_data` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `object_data` mediumtext COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `object_version` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT '', PRIMARY KEY (`rowid`), KEY `signature` (`signature`), KEY `fk_object_element` (`fk_object`,`element`), @@ -1066,7 +1294,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 +1316,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 COLLATE utf8mb3_unicode_ci NOT NULL, + `signature` varchar(100) COLLATE utf8mb3_unicode_ci 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 +1343,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, `qty` double(24,8) DEFAULT NULL, `efficiency` double(8,4) DEFAULT 1.0000, @@ -1129,11 +1357,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `bomtype` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_bom_bom_ref` (`ref`,`entity`), @@ -1143,7 +1371,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 +1395,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) COLLATE utf8mb3_unicode_ci 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,8 +1422,8 @@ 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `qty` double(24,8) NOT NULL, `efficiency` double(8,4) NOT NULL DEFAULT 1.0000, `position` int(11) NOT NULL, @@ -1206,7 +1434,7 @@ CREATE TABLE `llx_bom_bomline` ( 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 */; -- @@ -1230,9 +1458,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) COLLATE utf8mb3_unicode_ci 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 +1483,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `target` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `title` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `favicon` varchar(24) COLLATE utf8mb3_unicode_ci 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 +1515,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci 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 +1552,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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=1468 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1342,7 +1570,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,'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),(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),(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),(1465,1,483,0,'0',0,NULL,NULL),(1466,1,484,0,'0',0,NULL,NULL),(1467,1,485,0,'0',0,NULL,NULL); /*!40000 ALTER TABLE `llx_boxes` ENABLE KEYS */; UNLOCK TABLES; @@ -1355,13 +1583,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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=486 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1370,7 +1599,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),(483,'box_boms.php',1,'2022-07-05 08:07:11',NULL,0),(484,'box_comptes.php',1,'2022-07-05 08:07:11',NULL,0),(485,'box_mos.php',1,'2022-07-05 08:07:11',NULL,0); /*!40000 ALTER TABLE `llx_boxes_def` ENABLE KEYS */; UNLOCK TABLES; @@ -1384,9 +1613,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) COLLATE utf8mb3_unicode_ci NOT NULL, `status` int(11) DEFAULT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_start` date DEFAULT NULL, `date_end` date DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -1395,7 +1624,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 +1646,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) COLLATE utf8mb3_unicode_ci 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 +1656,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 +1678,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `range_account` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +1711,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(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `elementtype` varchar(64) COLLATE utf8mb3_unicode_ci NOT 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=455 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1499,7 +1728,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); /*!40000 ALTER TABLE `llx_c_action_trigger` ENABLE KEYS */; UNLOCK TABLES; @@ -1512,18 +1741,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `type` varchar(50) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT 'system', + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `picto` varchar(48) COLLATE utf8mb3_unicode_ci 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 +1765,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(50) COLLATE utf8mb3_unicode_ci 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 +1801,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, `position` int(11) NOT NULL DEFAULT 0, + `type_duration` varchar(1) COLLATE utf8mb3_unicode_ci 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 +1818,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 +1831,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `coder` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, + `example` varchar(16) COLLATE utf8mb3_unicode_ci 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=95 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1602,15 +1860,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci 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 +1889,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +1918,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `code_iso` varchar(3) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +1937,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 +1949,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `unicode` varchar(32) COLLATE utf8mb3_unicode_ci 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 +1977,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) COLLATE utf8mb3_unicode_ci NOT NULL, `fk_region` int(11) DEFAULT NULL, - `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `cheflieu` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `nom` varchar(50) COLLATE utf8mb3_unicode_ci 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 +2011,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `price` double(24,8) DEFAULT NULL, - `organization` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `organization` varchar(255) COLLATE utf8mb3_unicode_ci 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 +2041,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -1815,14 +2073,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `signature` text COLLATE utf8mb3_unicode_ci 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 +2102,25 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type_template` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(6) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `content` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `content_lines` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `enabled` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '1', + `joinfiles` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '1', 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 */; -- @@ -1884,11 +2142,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) COLLATE utf8mb3_unicode_ci 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 +2173,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 +2196,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `alias` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `title` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `align` varchar(6) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +2230,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `name` varchar(50) COLLATE utf8mb3_unicode_ci NOT NULL, + `paper_size` varchar(20) COLLATE utf8mb3_unicode_ci NOT NULL, + `orientation` varchar(1) COLLATE utf8mb3_unicode_ci NOT NULL, + `metric` varchar(5) COLLATE utf8mb3_unicode_ci NOT NULL, `leftmargin` double(24,8) NOT NULL, `topmargin` double(24,8) NOT NULL, `nx` int(11) NOT NULL, @@ -1990,7 +2248,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 +2272,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +2288,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 +2301,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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 +2320,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 +2334,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +2361,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +2390,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `dayrule` varchar(64) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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=75 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2163,13 +2422,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `label` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(100) COLLATE utf8mb3_unicode_ci 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 +2450,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +2479,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +2507,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +2537,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -2309,15 +2568,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +2599,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, + `keyword` varchar(128) COLLATE utf8mb3_unicode_ci 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 +2627,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle_facture` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +2649,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 +2662,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `expression` varchar(255) COLLATE utf8mb3_unicode_ci 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 +2686,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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 +2712,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `parameters` text COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci 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 +2741,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) COLLATE utf8mb3_unicode_ci 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 +2768,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +2795,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -2561,12 +2822,12 @@ DROP TABLE IF EXISTS `llx_c_prospectcontactlevel`; /*!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, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `sortorder` smallint(6) DEFAULT NULL, `active` smallint(6) NOT NULL DEFAULT 1, `module` varchar(32) CHARACTER SET utf8mb4 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 +2848,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_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 */; -- @@ -2616,10 +2877,10 @@ DROP TABLE IF EXISTS `llx_c_recruitment_origin`; 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, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +2903,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `tncc` int(11) DEFAULT NULL, - `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `nom` varchar(50) COLLATE utf8mb3_unicode_ci 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 +2935,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `revenuestamp_type` varchar(16) COLLATE utf8mb3_unicode_ci 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 +2964,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tracking` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) DEFAULT 0, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +2995,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) COLLATE utf8mb3_unicode_ci 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 +3022,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(150) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `icon` varchar(20) COLLATE utf8mb3_unicode_ci 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 +3051,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `picto` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `picto` varchar(128) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -2819,12 +3080,12 @@ DROP TABLE IF EXISTS `llx_c_stcommcontact`; 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, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `picto` varchar(128) CHARACTER SET utf8mb4 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 +3108,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) COLLATE utf8mb3_unicode_ci NOT NULL, `pos` int(11) NOT NULL DEFAULT 0, - `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_parent` int(11) NOT NULL DEFAULT 0, - `force_severity` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `force_severity` varchar(32) COLLATE utf8mb3_unicode_ci 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 +3142,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `pos` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +3173,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `pos` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `color` varchar(10) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +3205,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `pos` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -2979,7 +3240,7 @@ CREATE TABLE `llx_c_transport_mode` ( `label` varchar(255) CHARACTER SET utf8mb4 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 +3263,20 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `localtax2` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `recuperableonly` int(11) NOT NULL DEFAULT 0, - `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `note` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, 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 */; -- @@ -3037,16 +3298,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `source` varchar(8) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT 'external', + `code` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +3329,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +3358,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, - `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `module` varchar(32) COLLATE utf8mb3_unicode_ci 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 +3389,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +3416,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `libelle` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +3446,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `short_label` varchar(5) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +3477,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `town` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, `active` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ziptown_fk_pays` (`zip`,`town`,`fk_pays`), @@ -3229,7 +3490,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 +3514,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(64) COLLATE utf8mb3_unicode_ci 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 +3539,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(64) COLLATE utf8mb3_unicode_ci 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 +3568,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `motifconsprinc` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `diaglesprinc` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `motifconssec` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `diaglessec` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `hdm` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `examenclinique` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `examenprescrit` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `traitementprescrit` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `comment` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `typevisit` varchar(8) COLLATE utf8mb3_unicode_ci NOT NULL, + `infiltration` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `codageccam` varchar(16) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +3596,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 +3620,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `aaa` varchar(255) COLLATE utf8mb3_unicode_ci 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 +3646,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, `active` smallint(6) NOT NULL DEFAULT 1, - `icd` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `icd` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `position` int(11) DEFAULT 10, - `lang` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `lang` varchar(12) COLLATE utf8mb3_unicode_ci 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 +3678,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `examsec` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `concprinc` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `concsec` text COLLATE utf8mb3_unicode_ci 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 +3709,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `conclusion` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `comment` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `suivipr_ad` int(11) DEFAULT NULL, `suivipr_ag` int(11) DEFAULT NULL, `suivipr_vs` int(11) DEFAULT NULL, @@ -3466,7 +3727,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 +3748,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(64) COLLATE utf8mb3_unicode_ci NOT NULL, + `biorad` varchar(8) COLLATE utf8mb3_unicode_ci 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 +3776,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(64) COLLATE utf8mb3_unicode_ci 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 +3803,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_antechirgen` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_antechirortho` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_anterhum` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_other` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_traitclass` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_traitallergie` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_traitintol` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_traitspec` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `alert_antemed` smallint(6) DEFAULT NULL, `alert_antechirgen` smallint(6) DEFAULT NULL, `alert_antechirortho` smallint(6) DEFAULT NULL, @@ -3562,7 +3823,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 +3845,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(60) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_fournisseur` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_compta` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_compta_fournisseur` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cp` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ville` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fax` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `siret` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ape` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idprof4` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idprof5` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idprof6` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tva_intra` varchar(20) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `prefix_comm` varchar(5) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_prospectlevel` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `customer_bad` smallint(6) DEFAULT 0, `customer_rate` double DEFAULT 0, `supplier_rate` double DEFAULT 0, @@ -3637,15 +3898,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `logo` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `canvas` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +3928,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `color` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci 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 +3945,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=45 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3707,13 +3968,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) COLLATE utf8mb3_unicode_ci 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 +3997,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) COLLATE utf8mb3_unicode_ci 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 +4025,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) COLLATE utf8mb3_unicode_ci 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 +4054,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) COLLATE utf8mb3_unicode_ci 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 +4083,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) COLLATE utf8mb3_unicode_ci 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 +4111,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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 +4144,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 +4167,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) COLLATE utf8mb3_unicode_ci 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 +4196,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) COLLATE utf8mb3_unicode_ci 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 +4226,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) COLLATE utf8mb3_unicode_ci 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 +4255,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) COLLATE utf8mb3_unicode_ci 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 +4283,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) COLLATE utf8mb3_unicode_ci 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 +4311,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) COLLATE utf8mb3_unicode_ci 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 +4340,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) COLLATE utf8mb3_unicode_ci 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 +4348,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 +4371,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) COLLATE utf8mb3_unicode_ci 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 +4396,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_type` int(11) NOT NULL, `fk_account` int(11) DEFAULT NULL, @@ -4146,15 +4407,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, `fk_user` int(11) DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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 +4426,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 +4442,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_client` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `date_cloture` datetime DEFAULT NULL, @@ -4203,13 +4466,14 @@ CREATE TABLE `llx_commande` ( `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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, + `deposit_percent` varchar(63) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_mode_reglement` int(11) DEFAULT NULL, `date_livraison` datetime DEFAULT NULL, `fk_shipping_method` int(11) DEFAULT NULL, @@ -4217,19 +4481,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module_source` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pos_source` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_commande_ref` (`ref`,`entity`), KEY `idx_commande_fk_soc` (`fk_soc`), @@ -4244,7 +4508,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 +4517,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-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,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-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,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,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,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,'','','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,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,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,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,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,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,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,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,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-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,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,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,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,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-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,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,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,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-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,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,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-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,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,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,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,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,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,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,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,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,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-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,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,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,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,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,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,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,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 +4532,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `custom1` varchar(10) COLLATE utf8mb3_unicode_ci 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 +4559,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_supplier` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_projet` int(11) DEFAULT 0, `date_creation` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -4321,31 +4585,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +4618,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,'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,'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,10 +4638,10 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `fk_projet` int(11) DEFAULT NULL, @@ -4385,7 +4649,7 @@ CREATE TABLE `llx_commande_fournisseur_dispatch` ( `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; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4409,10 +4673,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) COLLATE utf8mb3_unicode_ci 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 +4699,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) COLLATE utf8mb3_unicode_ci 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 +4728,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) COLLATE utf8mb3_unicode_ci 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 +4755,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -4513,12 +4777,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +4792,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 +4816,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) COLLATE utf8mb3_unicode_ci 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 +4843,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT '', `localtax1_tx` double(6,3) DEFAULT NULL, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', + `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -4607,11 +4871,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +4888,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 +4912,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) COLLATE utf8mb3_unicode_ci 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 +4938,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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `entity` int(11) DEFAULT 1, - `import_key` varchar(125) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(125) COLLATE utf8mb3_unicode_ci 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 +4967,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci NOT NULL, + `type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT 'string', `visible` tinyint(4) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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=9451 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4721,7 +4985,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_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'),(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'),(9383,'MAIN_VERSION_LAST_UPGRADE',0,'16.0.0','chaine',0,'Dolibarr version for last upgrade','2022-07-05 08:03:57'),(9387,'MAIN_MODULE_ACCOUNTING',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9388,'MAIN_MODULE_AGENDA',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9389,'MAIN_MODULE_BOM',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9390,'MAIN_MODULE_BANQUE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9391,'MAIN_MODULE_BARCODE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9392,'MAIN_MODULE_CRON',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9393,'MAIN_MODULE_COMMANDE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9394,'MAIN_MODULE_DON',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9395,'MAIN_MODULE_ECM',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9396,'MAIN_MODULE_EXPENSEREPORT',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9397,'MAIN_MODULE_FACTURE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9398,'MAIN_MODULE_FOURNISSEUR',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9399,'MAIN_MODULE_HOLIDAY',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9400,'MAIN_MODULE_MARGIN',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9403,'MAIN_MODULE_MRP',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9404,'MAIN_MODULE_MRP_TRIGGERS',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9405,'MAIN_MODULE_MRP_LOGIN',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9406,'MAIN_MODULE_MRP_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9407,'MAIN_MODULE_MRP_MENUS',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9408,'MAIN_MODULE_MRP_TPL',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9409,'MAIN_MODULE_MRP_BARCODE',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9410,'MAIN_MODULE_MRP_MODELS',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9411,'MAIN_MODULE_MRP_THEME',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9412,'MAIN_MODULE_MRP_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-07-05 08:07:11'),(9413,'MAIN_MODULE_OPENSURVEY',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:11'),(9414,'MAIN_MODULE_PRINTING',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9415,'MAIN_MODULE_RECRUITMENT',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9416,'MAIN_MODULE_RECRUITMENT_TRIGGERS',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9417,'MAIN_MODULE_RECRUITMENT_LOGIN',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9418,'MAIN_MODULE_RECRUITMENT_SUBSTITUTIONS',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9419,'MAIN_MODULE_RECRUITMENT_MENUS',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9420,'MAIN_MODULE_RECRUITMENT_TPL',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9421,'MAIN_MODULE_RECRUITMENT_BARCODE',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9422,'MAIN_MODULE_RECRUITMENT_MODELS',1,'1','chaine',0,NULL,'2022-07-05 08:07:12'),(9423,'MAIN_MODULE_RECRUITMENT_THEME',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9424,'MAIN_MODULE_RECRUITMENT_MODULEFOREXTERNAL',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9425,'MAIN_MODULE_RESOURCE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9426,'MAIN_MODULE_SALARIES',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9427,'MAIN_MODULE_SERVICE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9428,'MAIN_MODULE_SYSLOG',0,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9429,'MAIN_MODULE_SOCIETE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9430,'MAIN_MODULE_STRIPE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9431,'MAIN_MODULE_TICKET',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9432,'MAIN_MODULE_TICKET_TABS_0',1,'thirdparty:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__','chaine',0,NULL,'2022-07-05 08:07:12'),(9433,'MAIN_MODULE_TICKET_TABS_1',1,'project:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?projectid=__ID__','chaine',0,NULL,'2022-07-05 08:07:12'),(9434,'MAIN_MODULE_TICKET_TRIGGERS',1,'1','chaine',0,NULL,'2022-07-05 08:07:12'),(9435,'TAKEPOS_PRINT_METHOD',1,'browser','chaine',0,'','2022-07-05 08:07:12'),(9436,'MAIN_MODULE_TAKEPOS',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9437,'MAIN_MODULE_TAKEPOS_TRIGGERS',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9438,'MAIN_MODULE_TAKEPOS_LOGIN',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9439,'MAIN_MODULE_TAKEPOS_SUBSTITUTIONS',1,'1','chaine',0,NULL,'2022-07-05 08:07:12'),(9440,'MAIN_MODULE_TAKEPOS_MENUS',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9441,'MAIN_MODULE_TAKEPOS_THEME',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9442,'MAIN_MODULE_TAKEPOS_TPL',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9443,'MAIN_MODULE_TAKEPOS_BARCODE',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9444,'MAIN_MODULE_TAKEPOS_MODELS',1,'0','chaine',0,NULL,'2022-07-05 08:07:12'),(9445,'MAIN_MODULE_USER',0,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9446,'MAIN_MODULE_VARIANTS',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:12'),(9447,'MAIN_MODULE_WEBSITE',1,'1','string',0,'{\"authorid\":\"18\",\"ip\":\"192.168.0.254\",\"lastactivationversion\":\"dolibarr\"}','2022-07-05 08:07:13'),(9449,'MAIN_FIRST_PING_OK_DATE',1,'20220705080715','chaine',0,'','2022-07-05 08:07:15'),(9450,'MAIN_FIRST_PING_OK_ID',1,'0dd1a04e9becaaafb6fbb7a86e945a55','chaine',0,'','2022-07-05 08:07:15'); /*!40000 ALTER TABLE `llx_const` ENABLE KEYS */; UNLOCK TABLES; @@ -4734,9 +4998,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_supplier` varchar(50) COLLATE utf8mb3_unicode_ci 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 +5016,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_customer` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +5054,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) COLLATE utf8mb3_unicode_ci 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 +5082,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_remise_except` int(11) DEFAULT NULL, `date_commande` datetime DEFAULT NULL, `date_ouverture_prevue` datetime DEFAULT NULL, @@ -4827,11 +5091,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `qty` double NOT NULL, `remise_percent` double DEFAULT 0, `subprice` double(24,8) DEFAULT 0.00000000, @@ -4844,15 +5108,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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +5132,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 +5141,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,'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,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,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,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,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,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,0,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 +5156,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) COLLATE utf8mb3_unicode_ci 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 +5185,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 COLLATE utf8mb3_unicode_ci 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 +5213,41 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `command` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `classesname` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `objectname` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `methodename` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `params` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `md5params` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module_name` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastoutput` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `unitfrequency` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libname` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_cronjob` (`label`,`entity`) +) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -4989,7 +5256,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),(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),(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),(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),(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),(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),(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),(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),(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),(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),(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),(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); /*!40000 ALTER TABLE `llx_cronjob` ENABLE KEYS */; UNLOCK TABLES; @@ -5003,14 +5270,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `param` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `value` varchar(128) COLLATE utf8mb3_unicode_ci 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 +5300,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_customer` varchar(30) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -5047,14 +5314,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_delivery_uk_ref` (`ref`,`entity`), KEY `idx_delivery_fk_soc` (`fk_soc`), @@ -5063,7 +5330,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 +5353,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) COLLATE utf8mb3_unicode_ci 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 +5380,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, `qty` double DEFAULT NULL, `subprice` double(24,8) DEFAULT 0.00000000, `total_ht` double(24,8) DEFAULT 0.00000000, @@ -5122,7 +5389,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 +5412,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) COLLATE utf8mb3_unicode_ci 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 +5436,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) COLLATE utf8mb3_unicode_ci 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 +5444,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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 +5475,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `libelle` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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=442 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5224,7 +5491,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),(434,'einstein',1,'order',NULL,NULL),(435,'html_cerfafr',1,'donation',NULL,NULL),(436,'standard',1,'expensereport',NULL,NULL),(437,'crabe',1,'invoice',NULL,NULL),(438,'muscadet',1,'order_supplier',NULL,NULL),(439,'standard_recruitmentjobposition',1,'recruitmentjobposition',NULL,NULL),(440,'generic_recruitmentjobposition_odt',1,'recruitmentjobposition',NULL,NULL),(441,'TICKET_ADDON_PDF_ODT_PATH',1,'ticket',NULL,NULL); /*!40000 ALTER TABLE `llx_document_model` ENABLE KEYS */; UNLOCK TABLES; @@ -5237,7 +5504,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) COLLATE utf8mb3_unicode_ci 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 +5513,31 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `societe` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `country` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone_mobile` varchar(24) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_valid` datetime DEFAULT NULL, - `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5294,10 +5561,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) COLLATE utf8mb3_unicode_ci 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 +5585,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `acl` text COLLATE utf8mb3_unicode_ci 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 */; -- @@ -5365,7 +5632,7 @@ CREATE TABLE `llx_ecm_directories_extrafields` ( `import_key` varchar(14) CHARACTER SET utf8mb4 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 +5653,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci NOT NULL, + `share` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `filepath` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fullpath_orig` varchar(750) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `keywords` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cover` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `gen_or_uploaded` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `acl` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `src_object_type` varchar(64) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -5439,7 +5706,7 @@ CREATE TABLE `llx_ecm_files_extrafields` ( `import_key` varchar(14) CHARACTER SET utf8mb4 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 */; -- @@ -5470,7 +5737,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 +5760,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) COLLATE utf8mb3_unicode_ci NOT NULL, `fk_target` int(11) NOT NULL, - `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `targettype` varchar(32) COLLATE utf8mb3_unicode_ci 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 +5789,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `resource_id` int(11) DEFAULT NULL, - `resource_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `resource_type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `busy` int(11) DEFAULT NULL, `mandatory` int(11) DEFAULT NULL, `fk_user_create` int(11) DEFAULT NULL, @@ -5533,7 +5800,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 +5823,38 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `host` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `user` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `password` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `source_directory` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `filter` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `actiontodo` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `target_directory` varchar(255) COLLATE utf8mb3_unicode_ci 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` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` mediumtext COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` int(11) NOT NULL, - `codelastresult` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `codelastresult` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `position` int(11) DEFAULT 0, - `login` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `login` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `datelastok` datetime DEFAULT NULL, `maxemailpercollect` int(11) DEFAULT 100, - `hostcharset` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'UTF-8', + `hostcharset` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT 'UTF-8', 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 */; -- @@ -5610,20 +5877,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `actionparam` text COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +5913,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `rulevalue` varchar(255) COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +5950,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lieu` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `warehouse_usage` int(11) DEFAULT 1, + `barcode` varchar(180) COLLATE utf8mb3_unicode_ci 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 +5981,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 +5996,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) COLLATE utf8mb3_unicode_ci 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 +6021,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(25) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `profid2` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `profid3` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone` varchar(20) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(128) COLLATE utf8mb3_unicode_ci 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 +6062,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) COLLATE utf8mb3_unicode_ci 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 +6085,27 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_company` varchar(128) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` smallint(6) NOT NULL, `fk_project` int(11) NOT NULL, `fk_invoice` int(11) DEFAULT NULL, + `firstname` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastname` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_eventorganization_conferenceorboothattendee` (`fk_project`,`email`,`fk_actioncomm`), KEY `idx_eventorganization_conferenceorboothattendee_rowid` (`rowid`), @@ -5842,7 +6114,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 +6137,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) COLLATE utf8mb3_unicode_ci 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 +6162,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ip` varchar(250) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `user_agent` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `authentication_method` varchar(64) COLLATE utf8mb3_unicode_ci 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 +6184,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 +6198,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_customer` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -5941,7 +6213,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `height` float DEFAULT NULL, `height_unit` int(11) DEFAULT NULL, @@ -5950,16 +6222,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_expedition_uk_ref` (`ref`,`entity`), KEY `idx_expedition_fk_soc` (`fk_soc`), @@ -5970,7 +6242,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 +6266,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) COLLATE utf8mb3_unicode_ci 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 +6291,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `value` double(24,8) DEFAULT 0.00000000, `fk_package_type` int(11) DEFAULT NULL, `height` float DEFAULT NULL, @@ -6032,7 +6304,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 +6334,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 +6359,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) COLLATE utf8mb3_unicode_ci 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 +6388,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) COLLATE utf8mb3_unicode_ci 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 +6412,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `ref_number_int` int(11) DEFAULT NULL, `ref_ext` int(11) DEFAULT NULL, @@ -6167,22 +6439,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `detail_refuse` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `detail_cancel` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_user_creat` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_expensereport_uk_ref` (`ref`,`entity`), @@ -6193,7 +6465,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 +6488,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci NOT NULL, `product_type` int(11) DEFAULT -1, `qty` double NOT NULL, `subprice` double(24,8) NOT NULL DEFAULT 0.00000000, @@ -6227,9 +6499,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci 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 +6511,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT '', + `rule_warning_message` text COLLATE utf8mb3_unicode_ci 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 +6549,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) COLLATE utf8mb3_unicode_ci 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 +6581,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 +6612,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) COLLATE utf8mb3_unicode_ci 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 +6637,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) COLLATE utf8mb3_unicode_ci NOT NULL, `date_export` datetime NOT NULL, `fk_user` int(11) NOT NULL, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +6664,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `field` text COLLATE utf8mb3_unicode_ci NOT NULL, + `filter` text COLLATE utf8mb3_unicode_ci 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 +6693,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT 'member', + `name` varchar(64) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `type` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `size` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `pos` int(11) DEFAULT 0, `alwayseditable` int(11) DEFAULT 0, - `param` text COLLATE utf8_unicode_ci DEFAULT NULL, + `param` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `list` varchar(128) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fielddefault` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `langs` varchar(64) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT '1', + `help` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `printable` int(11) DEFAULT 0, + `css` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cssview` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `csslist` varchar(128) COLLATE utf8mb3_unicode_ci 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 +6732,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 +6745,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `increment` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, `datef` date DEFAULT NULL, @@ -6488,8 +6763,8 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `close_note` varchar(128) COLLATE utf8mb3_unicode_ci 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 +6779,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `situation_cycle_ref` smallint(6) DEFAULT NULL, `situation_counter` smallint(6) DEFAULT NULL, `situation_final` smallint(6) DEFAULT NULL, @@ -6520,19 +6795,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module_source` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pos_source` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_facture_ref` (`ref`,`entity`), KEY `idx_facture_fk_soc` (`fk_soc`), @@ -6543,12 +6818,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 +6833,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','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','2022-03-22','2021-03-02 00:00:00',NULL,'2022-07-04 01:11:35',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,'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,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,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','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); /*!40000 ALTER TABLE `llx_facture` ENABLE KEYS */; UNLOCK TABLES; @@ -6572,10 +6848,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) COLLATE utf8mb3_unicode_ci 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 +6872,21 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref_supplier` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `close_note` varchar(128) COLLATE utf8mb3_unicode_ci 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 +6904,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +6935,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 +6944,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,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,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,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,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,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,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,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,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,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,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 +6960,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +6983,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +7002,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 +7026,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) COLLATE utf8mb3_unicode_ci 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 +7041,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT '', + `tva_tx` double(7,4) DEFAULT NULL, + `localtax1_tx` double(7,4) DEFAULT 0.0000, + `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `localtax2_tx` double(7,4) DEFAULT 0.0000, + `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +7141,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) COLLATE utf8mb3_unicode_ci 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 +7156,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref_supplier` varchar(180) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `amount` double(24,8) NOT NULL DEFAULT 0.00000000, + `remise` double DEFAULT 0, + `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `modelpdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_multicurrency` int(11) DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +7263,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) NOT NULL, `datec` datetime DEFAULT NULL, @@ -6817,11 +7281,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `modelpdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_gen` varchar(7) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `unit_frequency` varchar(2) COLLATE utf8mb3_unicode_ci DEFAULT 'd', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -6833,14 +7297,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT '', `suspended` int(11) DEFAULT 0, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_facture_rec_uk_titre` (`titre`,`entity`), @@ -6850,7 +7314,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 +7338,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) COLLATE utf8mb3_unicode_ci 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 +7365,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -6930,19 +7394,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +7415,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 +7439,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) COLLATE utf8mb3_unicode_ci 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 +7467,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `tva_tx` double(6,3) DEFAULT NULL, - `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '', + `vat_src_code` varchar(10) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -7026,9 +7490,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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 +7506,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 +7530,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) COLLATE utf8mb3_unicode_ci 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 +7557,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) COLLATE utf8mb3_unicode_ci 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 +7571,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_client` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +7593,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 +7608,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) COLLATE utf8mb3_unicode_ci 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 +7632,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) COLLATE utf8mb3_unicode_ci NOT NULL, `entity` int(11) NOT NULL DEFAULT 1, `fk_soc` int(11) DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -7175,12 +7640,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `modelpdf` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `frequency` int(11) DEFAULT NULL, - `unit_frequency` varchar(2) COLLATE utf8_unicode_ci DEFAULT 'm', + `unit_frequency` varchar(2) COLLATE utf8mb3_unicode_ci DEFAULT 'm', `date_when` datetime DEFAULT NULL, `date_last_gen` datetime DEFAULT NULL, `nb_gen_done` int(11) DEFAULT NULL, @@ -7193,7 +7658,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 +7682,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 COLLATE utf8mb3_unicode_ci 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 +7712,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) COLLATE utf8mb3_unicode_ci 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,19 +7738,19 @@ 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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -7305,9 +7770,9 @@ CREATE TABLE `llx_fichinterdet_rec` ( `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) COLLATE utf8mb3_unicode_ci 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 +7795,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) COLLATE utf8mb3_unicode_ci NOT NULL, `date_debut` date NOT NULL, `date_fin` date NOT NULL, `halfday` int(11) DEFAULT 0, @@ -7342,21 +7807,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `date_approve` 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 +7831,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 +7840,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-07-04 01:11:35',1,'1',NULL,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,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 +7853,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `value` text COLLATE utf8mb3_unicode_ci 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 */; -- @@ -7416,10 +7882,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) COLLATE utf8mb3_unicode_ci 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 +7909,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `prev_solde` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `new_solde` varchar(255) COLLATE utf8mb3_unicode_ci 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 +7939,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 +7961,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '(PROV)', + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` smallint(6) NOT NULL, `date_eval` date DEFAULT NULL, `fk_user` int(11) NOT NULL, @@ -7515,7 +7981,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 +8004,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) COLLATE utf8mb3_unicode_ci 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 +8036,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) COLLATE utf8mb3_unicode_ci 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 +8066,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) COLLATE utf8mb3_unicode_ci 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 +8090,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci 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 +8125,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) COLLATE utf8mb3_unicode_ci 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 +8149,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 COLLATE utf8mb3_unicode_ci 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 +8157,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci 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 +8185,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_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, @@ -7729,14 +8195,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci 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 +8225,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) COLLATE utf8mb3_unicode_ci 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 +8249,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, `fk_user_modif` int(11) DEFAULT NULL, `fk_skill` int(11) NOT NULL, @@ -7792,7 +8258,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 +8286,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) COLLATE utf8mb3_unicode_ci 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 +8314,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `type` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `field` text COLLATE utf8mb3_unicode_ci 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 */; -- @@ -7879,14 +8345,14 @@ CREATE TABLE `llx_intracommreport` ( `ref` varchar(30) CHARACTER SET utf8mb4 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, + `periods` varchar(32) COLLATE utf8mb3_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, `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 +8373,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` int(11) DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `date_validation` datetime DEFAULT NULL, @@ -7919,7 +8385,7 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `datec` datetime DEFAULT NULL, `fk_product` int(11) DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -7932,7 +8398,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 */; -- @@ -7945,6 +8411,32 @@ INSERT INTO `llx_inventory` VALUES (1,'aaa',1,NULL,NULL,'aa aaa',0,'2020-01-10 0 /*!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) COLLATE utf8mb3_unicode_ci 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 +8451,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) COLLATE utf8mb3_unicode_ci 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 +8484,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `question` text COLLATE utf8mb3_unicode_ci NOT NULL, + `answer` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +8526,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) COLLATE utf8mb3_unicode_ci 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 +8551,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `objecttype` varchar(255) COLLATE utf8mb3_unicode_ci 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 +8582,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_account_insurance` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_account_interest` varchar(32) COLLATE utf8mb3_unicode_ci 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 +8633,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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 +8668,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +8696,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `body` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bgcolor` varchar(8) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bgimage` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cible` varchar(60) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_replyto` varchar(160) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_errorsto` varchar(160) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tag` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_creat` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, `date_appro` datetime DEFAULT NULL, @@ -8221,14 +8715,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `joined_file2` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `joined_file3` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `joined_file4` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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 +8736,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `entity` int(11) NOT NULL DEFAULT 1, + `filtervalue` text COLLATE utf8mb3_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 utf8mb3_unicode_ci 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 +8779,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `firstname` varchar(160) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(160) COLLATE utf8mb3_unicode_ci NOT NULL, + `other` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tag` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `statut` smallint(6) NOT NULL DEFAULT 0, - `source_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `source_url` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `source_id` int(11) DEFAULT NULL, - `source_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, + `source_type` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_envoi` datetime DEFAULT NULL, - `error_text` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `error_text` varchar(255) COLLATE utf8mb3_unicode_ci 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 +8818,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `unsubscribegroup` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT '', + `ip` varchar(128) COLLATE utf8mb3_unicode_ci 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 +8846,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(4) COLLATE utf8mb3_unicode_ci NOT NULL, + `mainmenu` varchar(100) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_mainmenu` varchar(100) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `target` varchar(100) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `titre` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `prefix` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `langs` varchar(100) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `perms` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `enabled` text COLLATE utf8mb3_unicode_ci 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=167331 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8351,7 +8878,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'),(167283,'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-07-05 08:07:11'),(167284,'all',1,'agenda','left','agenda',167283,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-07-05 08:07:11'),(167285,'all',1,'agenda','left','agenda',167284,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-07-05 08:07:11'),(167286,'all',1,'agenda','left','agenda',167284,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-07-05 08:07:11'),(167287,'all',1,'agenda','left','agenda',167286,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-07-05 08:07:11'),(167288,'all',1,'agenda','left','agenda',167286,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-07-05 08:07:11'),(167289,'all',1,'agenda','left','agenda',167286,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-07-05 08:07:11'),(167290,'all',1,'agenda','left','agenda',167286,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-07-05 08:07:11'),(167291,'all',1,'agenda','left','agenda',167284,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-07-05 08:07:11'),(167292,'all',1,'agenda','left','agenda',167291,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-07-05 08:07:11'),(167293,'all',1,'agenda','left','agenda',167291,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-07-05 08:07:11'),(167294,'all',1,'agenda','left','agenda',167291,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-07-05 08:07:11'),(167295,'all',1,'agenda','left','agenda',167291,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-07-05 08:07:11'),(167296,'all',1,'agenda','left','agenda',167284,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-07-05 08:07:11'),(167297,'all',1,'agenda','left','agenda',167284,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-07-05 08:07:11'),(167298,'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-07-05 08:07:11'),(167299,'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-07-05 08:07:11'),(167300,'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-07-05 08:07:11'),(167301,'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-07-05 08:07:11'),(167302,'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-07-05 08:07:11'),(167303,'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-07-05 08:07:11'),(167304,'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-07-05 08:07:11'),(167305,'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-07-05 08:07:11'),(167306,'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-07-05 08:07:11'),(167307,'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-07-05 08:07:12'),(167308,'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-07-05 08:07:12'),(167309,'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-07-05 08:07:12'),(167310,'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-07-05 08:07:12'),(167311,'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-07-05 08:07:12'),(167312,'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-07-05 08:07:12'),(167313,'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-07-05 08:07:12'),(167314,'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-07-05 08:07:12'),(167315,'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-07-05 08:07:12'),(167316,'all',1,'resource','left','agenda',-1,NULL,'agenda',100,'/resource/list.php','','MenuResourceIndex','','resource',NULL,'resource','$user->rights->resource->read','1',0,'2022-07-05 08:07:12'),(167317,'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-07-05 08:07:12'),(167318,'all',1,'resource','left','agenda',-1,'resource','agenda',102,'/resource/list.php','','List','','resource',NULL,'resource_list','$user->rights->resource->read','1',0,'2022-07-05 08:07:12'),(167319,'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-07-05 08:07:12'),(167320,'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-07-05 08:07:12'),(167321,'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-07-05 08:07:12'),(167322,'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-07-05 08:07:12'),(167323,'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-07-05 08:07:12'),(167324,'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-07-05 08:07:12'),(167325,'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-07-05 08:07:12'),(167326,'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-07-05 08:07:12'),(167327,'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-07-05 08:07:12'),(167328,'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-07-05 08:07:12'),(167329,'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-07-05 08:07:12'),(167330,'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-07-05 08:07:13'); /*!40000 ALTER TABLE `llx_menu` ENABLE KEYS */; UNLOCK TABLES; @@ -8364,20 +8891,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '(PROV)', `entity` int(11) NOT NULL DEFAULT 1, - `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, - `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` int(11) NOT NULL, `fk_product` int(11) NOT NULL, `date_start_planned` datetime DEFAULT NULL, @@ -8386,8 +8913,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) COLLATE utf8mb3_unicode_ci 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 +8928,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 +8937,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 +8952,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) COLLATE utf8mb3_unicode_ci 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 +8978,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `role` varchar(10) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `qty_frozen` smallint(6) DEFAULT 0, `disable_stock_change` smallint(6) DEFAULT 0, PRIMARY KEY (`rowid`), @@ -8473,7 +9001,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 +9024,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `name` varchar(255) COLLATE utf8mb3_unicode_ci 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 +9056,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 +9084,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT 'email', + `type_target` varchar(16) COLLATE utf8mb3_unicode_ci 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 +9117,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) COLLATE utf8mb3_unicode_ci 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 +9141,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `objet_id` int(11) NOT NULL, - `type_notif` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'browser', + `type_notif` varchar(16) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +9169,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `state` varchar(128) COLLATE utf8mb3_unicode_ci 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 +9196,18 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `token` text COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `restricted_ips` varchar(200) COLLATE utf8mb3_unicode_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 */; -- @@ -8701,14 +9229,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `property` varchar(32) COLLATE utf8mb3_unicode_ci NOT NULL, + `lang` varchar(5) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `value` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +9258,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ip` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pathoffile` varchar(255) COLLATE utf8mb3_unicode_ci 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 +9287,13 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `comment` text COLLATE utf8mb3_unicode_ci NOT NULL, + `usercomment` text COLLATE utf8mb3_unicode_ci 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 */; -- @@ -8787,11 +9315,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `question` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `available_answers` text COLLATE utf8mb3_unicode_ci 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 +9339,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `commentaires` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `mail_admin` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `nom_admin` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_user_creat` int(11) NOT NULL, - `titre` text COLLATE utf8_unicode_ci NOT NULL, + `titre` text COLLATE utf8mb3_unicode_ci NOT NULL, `date_fin` datetime DEFAULT NULL, `status` int(11) DEFAULT 1, - `format` varchar(2) COLLATE utf8_unicode_ci NOT NULL, + `format` varchar(2) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci 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 +9379,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8873,9 +9401,9 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `id_sondage` varchar(16) COLLATE utf8mb3_unicode_ci NOT NULL, + `reponses` varchar(100) COLLATE utf8mb3_unicode_ci NOT NULL, PRIMARY KEY (`id_users`), KEY `idx_id_users` (`id_users`), KEY `idx_nom` (`nom`), @@ -8883,7 +9411,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 */; -- @@ -8906,12 +9434,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `transkey` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `transvalue` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_overwrite_trans` (`lang`,`transkey`) -) 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 */; -- @@ -8934,9 +9462,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) COLLATE utf8mb3_unicode_ci 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 +9485,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '', + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +9502,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ext_payment_site` varchar(128) COLLATE utf8mb3_unicode_ci 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 +9514,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','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','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','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','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-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','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 +9531,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `multicurrency_tx` double(24,8) DEFAULT 1.00000000, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_paiement_facture` (`fk_paiement`,`fk_facture`), @@ -9011,7 +9539,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 +9567,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +9595,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `entity` int(11) DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, @@ -9076,14 +9604,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +9637,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) COLLATE utf8mb3_unicode_ci 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 +9665,30 @@ 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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_creation` datetime NOT NULL, `fk_user_creat` int(11) NOT 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `last_check_backlink` datetime DEFAULT NULL, `fk_type` int(11) NOT NULL DEFAULT 0, + `url_to_check` varchar(255) COLLATE utf8mb3_unicode_ci 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 +9696,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 +9719,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) COLLATE utf8mb3_unicode_ci 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 +9749,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ext_payment_id` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ext_payment_site` varchar(128) COLLATE utf8mb3_unicode_ci 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 +9785,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +9821,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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 +9849,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) COLLATE utf8mb3_unicode_ci 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 +9859,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_bank` int(11) DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -9345,7 +9876,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 +9900,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) COLLATE utf8mb3_unicode_ci 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 +9924,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `datep` date DEFAULT NULL, @@ -9401,18 +9932,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +9971,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +9999,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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 +10011,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `posnumber` varchar(30) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -9509,22 +10040,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -9552,7 +10083,7 @@ CREATE TABLE `llx_prelevement_facture` ( 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; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9581,19 +10112,19 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_guichet` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `number` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cle_rib` varchar(5) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ext_payment_id` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ext_payment_site` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_facture_fourn` 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; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9618,17 +10149,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_guichet` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `number` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cle_rib` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +10186,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 COLLATE utf8mb3_unicode_ci 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 +10213,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 COLLATE utf8mb3_unicode_ci NOT NULL, + `printer_location` text COLLATE utf8mb3_unicode_ci NOT NULL, + `printer_id` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `driver` varchar(16) COLLATE utf8mb3_unicode_ci 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,25 +10246,25 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `customcode` varchar(32) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, `tosell` tinyint(4) DEFAULT 1, @@ -9741,18 +10272,18 @@ CREATE TABLE `llx_product` ( `onportal` smallint(6) DEFAULT 0, `tobatch` 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `barcode` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell_intra` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell_export` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy_intra` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy_export` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `partnumber` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `weight` float DEFAULT NULL, `weight_units` tinyint(4) DEFAULT NULL, `length` float DEFAULT NULL, @@ -9765,18 +10296,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT '', `width` float DEFAULT NULL, `width_units` tinyint(4) DEFAULT NULL, `height` float DEFAULT NULL, @@ -9786,7 +10317,7 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `lifetime` int(11) DEFAULT NULL, `qc_frequency` int(11) DEFAULT NULL, `mandatory_period` tinyint(4) DEFAULT 0, @@ -9810,7 +10341,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 */; -- @@ -9841,7 +10372,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 +10394,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `ref_ext` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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 +10429,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) COLLATE utf8mb3_unicode_ci 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 +10459,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 +10534,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 +10557,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `value` varchar(255) COLLATE utf8mb3_unicode_ci 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 +10572,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 +10589,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `qty` double NOT NULL DEFAULT 0, - `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +10628,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_customer` varchar(128) COLLATE utf8mb3_unicode_ci 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 +10649,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 +10679,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_vat_code` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_customer` varchar(30) COLLATE utf8mb3_unicode_ci 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 +10714,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) COLLATE utf8mb3_unicode_ci 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 +10742,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `desc_fourn` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_availability` int(11) DEFAULT NULL, `price` double(24,8) DEFAULT 0.00000000, `quantity` double DEFAULT NULL, @@ -10220,27 +10752,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `barcode` varchar(180) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_barcode_type` int(11) DEFAULT NULL, - `packaging` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `packaging` varchar(64) COLLATE utf8mb3_unicode_ci 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 +10784,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 +10808,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) COLLATE utf8mb3_unicode_ci 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 +10839,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) COLLATE utf8mb3_unicode_ci 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 +10867,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', + `label` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +10899,7 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `eatby` date DEFAULT NULL, `sellby` date DEFAULT NULL, `datec` datetime DEFAULT NULL, @@ -10378,11 +10910,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) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -10406,10 +10938,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) COLLATE utf8mb3_unicode_ci 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 +10964,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell_intra` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell_export` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy_intra` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy_export` varchar(32) COLLATE utf8mb3_unicode_ci 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 +11003,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +11026,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 +11057,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT 'HT', `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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 +11070,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 +11097,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 +11122,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) COLLATE utf8mb3_unicode_ci 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 +11154,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) COLLATE utf8mb3_unicode_ci 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,30 +11182,30 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_main_doc` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_opp_status_end` int(11) DEFAULT NULL, `accept_conference_suggestions` int(11) DEFAULT 0, `accept_booth_suggestions` int(11) DEFAULT 0, @@ -10684,7 +11216,7 @@ CREATE TABLE `llx_projet` ( 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 */; -- @@ -10708,11 +11240,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `priority` mediumtext COLLATE utf8mb3_unicode_ci 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 +11266,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) COLLATE utf8mb3_unicode_ci 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 +11275,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `duration_effective` double DEFAULT 0, `planned_workload` double DEFAULT 0, `progress` int(11) DEFAULT 0, @@ -10753,11 +11285,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +11299,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 +11308,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 +11323,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) COLLATE utf8mb3_unicode_ci 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 +11354,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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +11376,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 +11392,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_client` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `datec` datetime DEFAULT NULL, `datep` date DEFAULT NULL, `fin_validite` datetime DEFAULT NULL, @@ -10883,31 +11419,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_cond_reglement` int(11) DEFAULT NULL, + `deposit_percent` varchar(63) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_incoterms` int(11) DEFAULT NULL, - `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `location_incoterms` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `online_sign_ip` varchar(48) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `online_sign_name` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_propal_ref` (`ref`,`entity`), KEY `idx_propal_fk_soc` (`fk_soc`), @@ -10925,7 +11462,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 +11471,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,'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,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,'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,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-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,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-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,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-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,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-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,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-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,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-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,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-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,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,'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,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-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,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-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,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-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,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-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,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-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,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,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,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 +11486,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) COLLATE utf8mb3_unicode_ci 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 +11511,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `lang` varchar(5) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +11543,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '0', `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -11035,7 +11572,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) COLLATE utf8mb3_unicode_ci 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 +11583,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 +11607,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) COLLATE utf8mb3_unicode_ci 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 +11632,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_supplier` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `date_creation` datetime DEFAULT NULL, `fk_user_author` int(11) DEFAULT NULL, `fk_user_modif` int(11) DEFAULT NULL, @@ -11110,7 +11647,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_statut` smallint(6) DEFAULT 0, `billed` smallint(6) DEFAULT 0, `height` float DEFAULT NULL, @@ -11119,13 +11656,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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `idx_reception_uk_ref` (`ref`,`entity`), KEY `idx_reception_fk_soc` (`fk_soc`), @@ -11136,7 +11673,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 +11697,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) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -11203,7 +11740,7 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature` ( `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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, `date_birth` date DEFAULT NULL, PRIMARY KEY (`rowid`), @@ -11213,7 +11750,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 */; -- @@ -11242,7 +11779,7 @@ CREATE TABLE `llx_recruitment_recruitmentcandidature_extrafields` ( 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 */; -- @@ -11302,7 +11839,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 */; -- @@ -11331,7 +11868,7 @@ CREATE TABLE `llx_recruitment_recruitmentjobposition_extrafields` ( 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 +11891,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `asset_number` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_code_type_resource` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `tms` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `datec` datetime DEFAULT NULL, `date_valid` datetime DEFAULT NULL, @@ -11367,15 +11904,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci 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 +11936,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) COLLATE utf8mb3_unicode_ci 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 +11960,17 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(64) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `subperms` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(1) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `bydefault` tinyint(4) DEFAULT 0, `module_position` int(11) NOT NULL DEFAULT 0, `family_position` int(11) NOT NULL DEFAULT 0, 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 +11979,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),(11,'Lire les factures','facture',2,'lire',NULL,'a',1,10,0),(12,'Create and update invoices','facture',1,'creer',NULL,'a',0,0,0),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0,10,0),(13,'Devalidate invoices','facture',1,'invoice_advance','unvalidate','a',0,0,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,0,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,0,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,0,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,0,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,0,0),(82,'Creeat/modify sales orders','commande',1,'creer',NULL,'w',0,0,0),(84,'Validate sales orders','commande',1,'order_advance','validate','d',0,0,0),(86,'Send sale orders by email','commande',1,'order_advance','send','d',0,0,0),(87,'Close sale orders','commande',1,'order_advance','close','d',0,0,0),(88,'Cancel sale orders','commande',1,'order_advance','annuler','d',0,0,0),(89,'Delete sales orders','commande',1,'supprimer',NULL,'d',0,0,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,0,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,0,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,0,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,0,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,0,0),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0,51,0),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0,0,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,0,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,0,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,0,0),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0,9,0),(125,'Delete third parties','societe',1,'supprimer',NULL,'d',0,0,0),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0,9,0),(126,'Export third parties','societe',1,'export',NULL,'r',0,0,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,0,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,0,0),(252,'Read permissions of other users','user',1,'user_advance','readperms','r',0,0,0),(253,'Create/modify internal and external users, groups and permissions','user',1,'user','creer','w',0,0,0),(254,'Create/modify external users only','user',1,'user_advance','write','w',0,0,0),(255,'Modify the password of other users','user',1,'user','password','w',0,0,0),(256,'Delete or disable other users','user',1,'user','supprimer','d',0,0,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,0,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,0,0),(281,'Lire les contacts','societe',2,'contact','lire','r',1,9,0),(282,'Create and update contact','societe',1,'contact','creer','w',0,0,0),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0,9,0),(283,'Delete contacts','societe',1,'contact','supprimer','d',0,0,0),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0,9,0),(286,'Export contacts','societe',1,'contact','export','d',0,0,0),(286,'Exporter les contacts','societe',2,'contact','export','d',0,9,0),(301,'Read barcodes','barcode',1,'lire_advance',NULL,'r',1,0,0),(302,'Create/modify barcodes','barcode',1,'creer_advance',NULL,'w',0,0,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,0,0),(342,'Create/modify of its own user','user',1,'self','creer','w',0,0,0),(343,'Modify its own password','user',1,'self','password','w',0,0,0),(344,'Modify its own permissions','user',1,'self_advance','writeperms','w',0,0,0),(351,'Read groups','user',1,'group_advance','read','r',0,0,0),(352,'Read permissions of groups','user',1,'group_advance','readperms','r',0,0,0),(353,'Create/modify groups and permissions','user',1,'group_advance','write','w',0,0,0),(354,'Delete groups','user',1,'group_advance','delete','d',0,0,0),(358,'Export all users','user',1,'user','export','r',0,0,0),(511,'Read employee salaries and payments (yours and your subordinates)','salaries',1,'read',NULL,'r',0,0,0),(512,'Create/modify payments of empoyee salaries','salaries',1,'write',NULL,'w',0,0,0),(514,'Delete payments of employee salary','salaries',1,'delete',NULL,'d',0,0,0),(517,'Read salaries and payments of all employees','salaries',1,'readall',NULL,'r',0,0,0),(519,'Export payments of employee salaries','salaries',1,'export',NULL,'r',0,0,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,0,0),(532,'Create/modify services','service',1,'creer',NULL,'w',0,0,0),(534,'Delete les services','service',1,'supprimer',NULL,'d',0,0,0),(538,'Export services','service',1,'export',NULL,'r',0,0,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),(610,'Read attributes of variants','variants',1,'read',NULL,'w',0,0,0),(611,'Create/Update attributes of variants','variants',1,'write',NULL,'w',0,0,0),(612,'Delete attributes of variants','variants',1,'delete',NULL,'w',0,0,0),(651,'Read bom of Bom','bom',1,'read',NULL,'w',0,0,0),(652,'Create/Update bom of Bom','bom',1,'write',NULL,'w',0,0,0),(653,'Delete bom of Bom','bom',1,'delete',NULL,'w',0,0,0),(661,'Read Manufacturing Order','mrp',1,'read',NULL,'w',0,0,0),(662,'Create/Update Manufacturing Order','mrp',1,'write',NULL,'w',0,0,0),(663,'Delete Manufacturing Order','mrp',1,'delete',NULL,'w',0,0,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,0,0),(751,'Create/Update job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','write','w',0,0,0),(752,'Delete Job positions to fill and candidatures','recruitment',1,'recruitmentjobposition','delete','w',0,0,0),(771,'Read expense reports (yours and your subordinates)','expensereport',1,'lire',NULL,'r',0,0,0),(772,'Create/modify expense reports','expensereport',1,'creer',NULL,'w',0,0,0),(773,'Delete expense reports','expensereport',1,'supprimer',NULL,'d',0,0,0),(775,'Approve expense reports','expensereport',1,'approve',NULL,'w',0,0,0),(776,'Pay expense reports','expensereport',1,'to_paid',NULL,'w',0,0,0),(777,'Read expense reports of everybody','expensereport',1,'readall',NULL,'r',0,0,0),(778,'Create expense reports for everybody','expensereport',1,'writeall_advance',NULL,'w',0,0,0),(779,'Export expense reports','expensereport',1,'export',NULL,'r',0,0,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,0,0),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',0,0,0),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0,0,0),(1184,'Valider une commande fournisseur','fournisseur',1,'supplier_order_advance','validate','w',0,0,0),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0,0,0),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0,0,0),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0,0,0),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0,0,0),(1189,'Check/Uncheck a supplier order reception','fournisseur',1,'commande_advance','check','w',0,0,0),(1191,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0,0,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,0,0),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0,0,0),(1233,'Valider une facture fournisseur','fournisseur',1,'supplier_invoice_advance','validate','w',0,0,0),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0,0,0),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0,0,0),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0,0,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,0,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,0,0),(1421,'Export sales orders and attributes','commande',1,'commande','export','r',0,0,0),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',0,0,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,0,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,0,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,0,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,0,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,0,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,0,0),(2501,'Read or download documents','ecm',1,'read',NULL,'r',0,0,0),(2503,'Upload a document','ecm',1,'upload',NULL,'w',0,0,0),(2515,'Administer directories of documents','ecm',1,'setup',NULL,'w',0,0,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,0,0),(10002,'Create/modify website content (html and javascript content)','website',1,'write',NULL,'w',0,0,0),(10003,'Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers.','website',1,'writephp',NULL,'w',0,0,0),(10005,'Delete website content','website',1,'delete',NULL,'w',0,0,0),(10008,'Export website content','website',1,'export',NULL,'w',0,0,0),(20001,'Read leave requests (yours and your subordinates)','holiday',1,'read',NULL,'w',0,0,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,0,0),(20003,'Delete leave requests','holiday',1,'delete',NULL,'w',0,0,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,0,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,0,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,0,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,0,0),(23001,'Read cron jobs','cron',1,'read',NULL,'w',0,0,0),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0,0,0),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0,0,0),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0,0,0),(50151,'Use Point Of Sale (record a sale, add products, record payment)','takepos',1,'run',NULL,'a',0,0,0),(50152,'Can modify added sales lines (prices, discount)','takepos',1,'editlines',NULL,'a',0,0,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,0,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,0,0),(55002,'Create/modify surveys','opensurvey',1,'write',NULL,'w',0,0,0),(56001,'Read ticket','ticket',1,'read',NULL,'r',0,0,0),(56002,'Create les tickets','ticket',1,'write',NULL,'w',0,0,0),(56003,'Delete les tickets','ticket',1,'delete',NULL,'d',0,0,0),(56004,'Manage tickets','ticket',1,'manage',NULL,'w',0,0,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); /*!40000 ALTER TABLE `llx_rights_def` ENABLE KEYS */; UNLOCK TABLES; @@ -11455,7 +11992,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) COLLATE utf8mb3_unicode_ci 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 +12002,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `label` varchar(255) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci 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 +12038,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) COLLATE utf8mb3_unicode_ci 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 +12053,146 @@ 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) COLLATE utf8mb3_unicode_ci 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_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) COLLATE utf8mb3_unicode_ci 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_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) COLLATE utf8mb3_unicode_ci 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_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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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_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_session` -- @@ -11529,9 +12206,9 @@ CREATE TABLE `llx_session` ( `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, + `user_agent` varchar(255) COLLATE utf8mb3_unicode_ci 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 +12233,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(60) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_client` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_fournisseur` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_compta` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_compta_fournisseur` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(25) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fax` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `url` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `socialnetworks` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `siren` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `siret` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ape` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idprof4` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `tva_intra` varchar(20) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `prefix_comm` varchar(5) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_prospectlevel` varchar(12) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `customer_bad` tinyint(4) DEFAULT 0, `customer_rate` double DEFAULT 0, `supplier_rate` double DEFAULT 0, @@ -11601,6 +12278,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `transport_mode` tinyint(4) DEFAULT NULL, `mode_reglement_supplier` int(11) DEFAULT NULL, `outstanding_limit` double(24,8) DEFAULT NULL, @@ -11614,29 +12292,29 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `canvas` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idprof5` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idprof6` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `webservices_key` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `name_alias` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_societe_prefix_comm` (`prefix_comm`,`entity`), UNIQUE KEY `uk_societe_code_client` (`code_client`,`entity`), @@ -11646,7 +12324,7 @@ CREATE TABLE `llx_societe` ( 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; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11655,7 +12333,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,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,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,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,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,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,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,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',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,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,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,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,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,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,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,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,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,1,'EUR',NULL,0,NULL); /*!40000 ALTER TABLE `llx_societe` ENABLE KEYS */; UNLOCK TABLES; @@ -11669,24 +12347,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `pass_encoding` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass_crypted` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass_temp` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_soc` int(11) DEFAULT NULL, - `site` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, + `site` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_website` int(11) DEFAULT NULL, - `note_private` mediumtext COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` mediumtext COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `site_account` varchar(128) COLLATE utf8mb3_unicode_ci 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 +12373,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 +12398,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fax` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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 +12434,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) COLLATE utf8mb3_unicode_ci 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 +12465,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) COLLATE utf8mb3_unicode_ci 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 +12474,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 +12497,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `height` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `weight` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `prof` varchar(128) COLLATE utf8mb3_unicode_ci 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 +12528,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_supplier` varchar(24) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_sell` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code_buy` varchar(32) COLLATE utf8mb3_unicode_ci 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 +12562,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 +12590,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 COLLATE utf8mb3_unicode_ci 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 +12625,14 @@ 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 COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT '', PRIMARY KEY (`rowid`), KEY `idx_societe_remise_except_fk_user` (`fk_user`), KEY `idx_societe_remise_except_fk_soc` (`fk_soc`), @@ -11975,7 +12652,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 */; -- @@ -12003,9 +12680,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 COLLATE utf8mb3_unicode_ci 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 +12704,46 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bank` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_banque` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_guichet` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `number` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cle_rib` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bic` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `iban_prefix` varchar(34) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `domiciliation` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `proprio` varchar(60) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `owner_address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `default_rib` smallint(6) NOT NULL DEFAULT 0, - `rum` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `rum` varchar(32) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT 'FRST', + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `last_four` varchar(4) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `card_type` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cvn` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `approved` int(11) DEFAULT 0, - `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ipaddress` varchar(68) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `stripe_account` varchar(128) COLLATE utf8mb3_unicode_ci 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 */; -- @@ -12092,42 +12769,42 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `civility` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `firstname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(25) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone_perso` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `phone_mobile` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fax` varchar(30) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `socialnetworks` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `photo` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `priv` smallint(6) NOT NULL DEFAULT 0, - `fk_prospectcontactlevel` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, + `fk_prospectcontactlevel` varchar(12) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `default_lang` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `canvas` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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`), 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 +12828,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) COLLATE utf8mb3_unicode_ci 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 +12860,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `batch` varchar(128) COLLATE utf8mb3_unicode_ci 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 +12886,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) COLLATE utf8mb3_unicode_ci 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 +12928,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 COLLATE utf8mb3_unicode_ci 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 +12956,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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_int` varchar(255) COLLATE utf8mb3_unicode_ci 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 +12981,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `extraparams` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +13008,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 +13023,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) COLLATE utf8mb3_unicode_ci 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 +13050,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT '', `localtax1_tx` double(6,3) DEFAULT 0.000, - `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax1_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `localtax2_tx` double(6,3) DEFAULT 0.000, - `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, + `localtax2_type` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `qty` double DEFAULT NULL, `remise_percent` double DEFAULT 0, `remise` double DEFAULT 0, @@ -12372,9 +13075,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `fk_multicurrency` int(11) DEFAULT NULL, - `multicurrency_code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, + `multicurrency_code` varchar(3) COLLATE utf8mb3_unicode_ci 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 +13091,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 +13115,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) COLLATE utf8mb3_unicode_ci 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 +13140,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) COLLATE utf8mb3_unicode_ci 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 +13171,30 @@ 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) COLLATE utf8mb3_unicode_ci NOT NULL, + `track_id` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `message` mediumtext COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `category_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `severity_code` varchar(32) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email_msgid` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_ticket_track_id` (`track_id`), UNIQUE KEY `uk_ticket_ref` (`ref`,`entity`), @@ -12495,7 +13203,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 +13212,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','2021-09-26 14:08:46',NULL,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,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,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,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',NULL,'2021-11-29 12:55:48',1,'2022-02-07 13:37:54',NULL,NULL); /*!40000 ALTER TABLE `llx_ticket` ENABLE KEYS */; UNLOCK TABLES; @@ -12519,11 +13227,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) COLLATE utf8mb3_unicode_ci 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 +13257,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `entity` int(11) NOT NULL DEFAULT 1, - `note` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci 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 +13294,79 @@ 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `civility` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass_crypted` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass_temp` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `api_key` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lastname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `firstname` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `job` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `office_phone` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `office_fax` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `user_mobile` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `personal_mobile` varchar(20) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `personal_email` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `socialnetworks` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `signature` text COLLATE utf8mb3_unicode_ci 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` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `lang` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `openid` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `zip` varchar(25) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `town` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `accountancy_code` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `barcode` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `birth` date DEFAULT NULL, - `pass_encoding` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL, + `pass_encoding` varchar(24) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ippreviouslogin` varchar(250) COLLATE utf8mb3_unicode_ci 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, + `idpers1` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idpers2` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `idpers3` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `national_registration_number` varchar(50) COLLATE utf8mb3_unicode_ci DEFAULT NULL, PRIMARY KEY (`rowid`), UNIQUE KEY `uk_user_login` (`login`,`entity`), UNIQUE KEY `uk_user_fk_socpeople` (`fk_socpeople`), @@ -12668,7 +13374,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 +13383,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,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,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,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,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,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,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,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,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,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,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,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,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,NULL,NULL); /*!40000 ALTER TABLE `llx_user` ENABLE KEYS */; UNLOCK TABLES; @@ -12694,7 +13400,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 +13422,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `login` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `pass` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `poste` varchar(20) COLLATE utf8mb3_unicode_ci 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 +13449,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `ref_ext` varchar(50) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` int(11) NOT NULL, `salary` double(24,8) DEFAULT NULL, `salaryextra` double(24,8) DEFAULT NULL, @@ -12761,7 +13467,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 +13490,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) COLLATE utf8mb3_unicode_ci 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 +13515,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) COLLATE utf8mb3_unicode_ci NOT NULL, + `value` text COLLATE utf8mb3_unicode_ci 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 +13544,19 @@ 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bank` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_banque` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `code_guichet` varchar(6) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `number` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `cle_rib` varchar(5) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `bic` varchar(11) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `iban_prefix` varchar(34) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `domiciliation` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `proprio` varchar(60) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `owner_address` varchar(255) COLLATE utf8mb3_unicode_ci 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 +13584,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=21555 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12887,7 +13593,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),(21411,1,12,11),(21405,1,12,12),(21406,1,12,13),(21407,1,12,14),(21408,1,12,15),(21410,1,12,16),(21412,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),(21375,1,12,81),(21370,1,12,82),(21371,1,12,84),(21372,1,12,86),(21373,1,12,87),(21374,1,12,88),(21376,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),(21357,1,12,111),(21348,1,12,112),(21350,1,12,113),(21352,1,12,114),(21354,1,12,115),(21356,1,12,116),(21358,1,12,117),(21498,1,12,121),(21495,1,12,122),(21497,1,12,125),(21499,1,12,126),(21500,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),(21539,1,12,251),(21520,1,12,252),(21522,1,12,253),(21523,1,12,254),(21525,1,12,255),(21527,1,12,256),(21501,1,12,262),(21507,1,12,281),(21504,1,12,282),(21506,1,12,283),(21508,1,12,286),(19877,1,12,300),(21359,1,12,301),(21360,1,12,302),(16194,1,12,331),(16193,1,12,332),(16195,1,12,333),(21528,1,12,341),(21529,1,12,342),(21530,1,12,343),(21531,1,12,344),(21537,1,12,351),(21534,1,12,352),(21536,1,12,353),(21538,1,12,354),(21540,1,12,358),(19249,1,12,430),(16384,1,12,501),(16378,1,12,502),(13865,1,12,510),(21484,1,12,511),(21479,1,12,512),(21481,1,12,514),(21483,1,12,517),(21485,1,12,519),(15291,1,12,520),(15286,1,12,522),(15288,1,12,524),(15290,1,12,525),(15292,1,12,527),(21491,1,12,531),(21488,1,12,532),(21490,1,12,534),(21492,1,12,538),(20076,1,12,561),(20073,1,12,562),(20075,1,12,563),(20077,1,12,564),(21544,1,12,610),(21543,1,12,611),(21545,1,12,612),(16932,1,12,650),(21344,1,12,651),(21343,1,12,652),(21345,1,12,653),(17124,1,12,660),(21459,1,12,661),(21458,1,12,662),(21460,1,12,663),(13358,1,12,700),(21381,1,12,701),(21380,1,12,702),(21382,1,12,703),(21468,1,12,750),(21467,1,12,751),(21469,1,12,752),(21401,1,12,771),(21390,1,12,772),(21392,1,12,773),(15085,1,12,774),(21394,1,12,775),(21396,1,12,776),(21398,1,12,777),(21400,1,12,778),(21402,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),(21415,1,12,1181),(21429,1,12,1182),(21418,1,12,1183),(21419,1,12,1184),(21421,1,12,1185),(21423,1,12,1186),(21425,1,12,1187),(21428,1,12,1188),(21426,1,12,1189),(21430,1,12,1191),(13827,1,12,1201),(13828,1,12,1202),(21438,1,12,1231),(21433,1,12,1232),(21434,1,12,1233),(21436,1,12,1234),(21437,1,12,1235),(21439,1,12,1236),(16302,1,12,1237),(13829,1,12,1251),(21413,1,12,1321),(21414,1,12,1322),(21377,1,12,1421),(21333,1,12,2401),(21332,1,12,2402),(21334,1,12,2403),(21338,1,12,2411),(21337,1,12,2412),(21339,1,12,2413),(21340,1,12,2414),(21386,1,12,2501),(21385,1,12,2503),(21387,1,12,2515),(20082,1,12,3200),(20840,1,12,3201),(20341,1,12,3301),(15435,1,12,5001),(15436,1,12,5002),(21553,1,12,10001),(21548,1,12,10002),(21550,1,12,10003),(21552,1,12,10005),(21554,1,12,10008),(21451,1,12,20001),(21442,1,12,20002),(21444,1,12,20003),(21448,1,12,20004),(21450,1,12,20005),(21452,1,12,20006),(21446,1,12,20007),(21366,1,12,23001),(21363,1,12,23002),(21365,1,12,23003),(21367,1,12,23004),(19019,1,12,50101),(21516,1,12,50151),(21517,1,12,50152),(21518,1,12,50153),(21318,1,12,50401),(21326,1,12,50411),(21321,1,12,50412),(21323,1,12,50414),(21325,1,12,50415),(21327,1,12,50418),(21328,1,12,50420),(21329,1,12,50430),(21317,1,12,50440),(21462,1,12,55001),(21463,1,12,55002),(21514,1,12,56001),(21511,1,12,56002),(21513,1,12,56003),(21515,1,12,56004),(16742,1,12,56005),(20838,1,12,57001),(20837,1,12,57002),(20839,1,12,57003),(21453,1,12,59001),(21454,1,12,59002),(21455,1,12,59003),(21475,1,12,63001),(21472,1,12,63002),(21474,1,12,63003),(21476,1,12,63004),(21464,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 +13606,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) COLLATE utf8mb3_unicode_ci 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 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `model_pdf` varchar(255) COLLATE utf8mb3_unicode_ci 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 +13638,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) COLLATE utf8mb3_unicode_ci 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 +13669,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 +13700,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 +13723,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `maincolor` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `maincolorbis` varchar(16) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `otherlang` varchar(255) COLLATE utf8mb3_unicode_ci 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 +13769,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) COLLATE utf8mb3_unicode_ci 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 +13794,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `aliasalt` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `title` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `description` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `keywords` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `content` mediumtext COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT 'page', + `lang` varchar(6) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `htmlheader` mediumtext COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `image` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `author_alias` varchar(64) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `fk_object` varchar(255) COLLATE utf8mb3_unicode_ci 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 +13842,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) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '(PROV)', + `label` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `type` varchar(7) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `note_public` text COLLATE utf8mb3_unicode_ci DEFAULT NULL, `entity` int(11) DEFAULT 1, - `note_private` text COLLATE utf8_unicode_ci DEFAULT NULL, + `note_private` text COLLATE utf8mb3_unicode_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) COLLATE utf8_unicode_ci DEFAULT NULL, + `import_key` varchar(14) COLLATE utf8mb3_unicode_ci DEFAULT NULL, `status` smallint(6) NOT NULL, `nb_operators_required` int(11) DEFAULT NULL, `thm_operator_estimated` double DEFAULT NULL, @@ -13157,7 +13863,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 +13888,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 +13913,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 +13935,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) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `event` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `module` varchar(128) COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `action` varchar(128) COLLATE utf8mb3_unicode_ci 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) COLLATE utf8mb3_unicode_ci 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 +13966,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-07-05 10:09:14 diff --git a/dev/resources/iso-normes/accountancy_rules.txt b/dev/resources/iso-normes/accountancy/accountancy_rules.txt similarity index 61% rename from dev/resources/iso-normes/accountancy_rules.txt rename to dev/resources/iso-normes/accountancy/accountancy_rules.txt index 15e07ffbea1..a265bcf4f54 100644 --- a/dev/resources/iso-normes/accountancy_rules.txt +++ b/dev/resources/iso-normes/accountancy/accountancy_rules.txt @@ -2,13 +2,13 @@ Gestion escompte: Sur une facture de 120 € TTC : -707xxx 100 € HT -44571x 20 € TVA -411xxx 120 € TTC - +707xxx 100 € HT +44571x 20 € TVA +411xxx 120 € TTC + Le client règle rapidement et on lui accorde un escompte de 3% (120 € * 3% = 3.6 € TTC), on aura donc : -665000 3,00 € HT -44571x 0,60 € TVA -411xxx 3.60 € TVA - +665000 3,00 € HT +44571x 0,60 € TVA +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. diff --git a/dev/resources/iso-normes/banknumber_format.txt b/dev/resources/iso-normes/banking/banknumber_format.txt similarity index 100% rename from dev/resources/iso-normes/banknumber_format.txt rename to dev/resources/iso-normes/banking/banknumber_format.txt diff --git a/dev/resources/iso-normes/iban_iso-13616.txt b/dev/resources/iso-normes/banking/iban_iso-13616_fr.txt similarity index 100% rename from dev/resources/iso-normes/iban_iso-13616.txt rename to dev/resources/iso-normes/banking/iban_iso-13616_fr.txt 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/QR code for invoices.txt b/dev/resources/iso-normes/qr-bar-codes/QR code for invoices.txt similarity index 64% rename from dev/resources/iso-normes/QR code for invoices.txt rename to dev/resources/iso-normes/qr-bar-codes/QR code for invoices.txt index f03351f453f..b388ed0c599 100644 --- a/dev/resources/iso-normes/QR code for invoices.txt +++ b/dev/resources/iso-normes/qr-bar-codes/QR code for invoices.txt @@ -1,3 +1,8 @@ +QR-Code = Quick Response Code - is a two-dimensional / 2D- / Matrix-Barcode + +ISO/IEC 18004 + + List of QR Code format we found on some invoices ------------------------------------------------ @@ -15,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/barcode_EAN13.txt b/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt similarity index 60% rename from dev/resources/iso-normes/barcode_EAN13.txt rename to dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt index f6b3c5f5ebb..e8000035788 100644 --- a/dev/resources/iso-normes/barcode_EAN13.txt +++ b/dev/resources/iso-normes/qr-bar-codes/barcode_EAN13.txt @@ -31,60 +31,60 @@ Here is the list of country codes or system: List ==== -00 - 13 UCC (U.S.A / États-Unis & Canada) +00 - 13 UCC (U.S.A / États-Unis & Canada) 20 - 29 Flag for internal numbering / Codification interne en magasin 30 - 37 GENCOD-EAN France 380 BCCI (Bulgaria) 383 SANA (Slovenia) 385 CRO-EAN (Croatia) 387 EAN-BIH (Bosnia-Herzegovina) -400-440 CCG (Allemagne/Germany) +400-440 CCG (DE/Germany/Allemagne) 45 + 49 Distribution Code Center - DCC (Japan) 460-469 UNISCAN - EAN Russia (Federation de Russie) 471 CAN Taiwan -474 EAN Estonia -475 EAN Latvia -476 EAN Azerbaijan -477 EAN Lithuania -478 EAN Uzbekistan -479 EAN Sri Lanka +474 EAN Estonia +475 EAN Latvia +476 EAN Azerbaijan +477 EAN Lithuania +478 EAN Uzbekistan +479 EAN Sri Lanka 480 PANC Philippines -481 EAN Belarus -482 EAN Ukraine -484 EAN Moldova -485 EAN Armenia -486 EAN Georgia -487 EAN Kazakhstan +481 EAN Belarus +482 EAN Ukraine +484 EAN Moldova +485 EAN Armenia +486 EAN Georgia +487 EAN Kazakhstan 489 HKANA Hong Kong 50 E Centre UK - United Kingdom -520 HELLCAN-EAN HELLAS (Grece) -528 EAN Liban -529 EAN Chypre -531 EAN-MAC (FYR Macedonie) -535 EAN Malte -539 EAN Irlande -54 ICODIF/EAN Belgique. Luxembourg -560 CODIPOR (Portugal) -569 EAN Islande -57 EAN Danemark -590 EAN Pologne -594 EAN Roumanie -599 H.A.P.M.H. (Hongrie) -600 - 601 EAN Afrique du Sud -609 EAN Ile Maurice -611 EAN Maroc -613 EAN Algerie -619 Tunicode (Tunisie) -621 EAN Syrie -622 EAN Egypte -625 EAN Jordanie -626 EAN Iran -628 EAN Arabie Saoudite -64 EAN Finlande -690 - 693 Article Numbering Centre of China - ANCC (Chine) -70 EAN Norge (Norvege) -729 Israeli Bar Code Association � EAN Israel -73 EAN Suede +520 HELLCAN-EAN HELLAS - Greece +528 EAN Lebanon +529 EAN Cyprus +531 EAN-MAC (FYR Macedonia) +535 EAN Malta +539 EAN Ireland +54 ICODIF/EAN Belgium & Luxembourg +560 CODIPOR (Portugal) +569 EAN Iceland/Islande +57 EAN Denmark +590 EAN Poland +594 EAN Romania +599 H.A.P.M.H. (Hungary) +600-601 EAN South Africa +609 EAN Mauritius Island +611 EAN Morocco +613 EAN Algeria +619 Tunicode (Tunisia) +621 EAN Syria +622 EAN Egypt +625 EAN Jordan/Jordanie +626 EAN Iran +628 EAN Saudi Arabia +64 EAN Finland +690-693 ANCC - Article Numbering Centre of China +70 EAN Norge (Norvege) +729 Israeli Bar Code Association - EAN Israel +73 EAN Suede 740 EAN Guatemala 741 EAN El Salvador 742 ICCC (Honduras) @@ -93,7 +93,7 @@ List 746 746 EAN Republique Dominicaine 750 AMECE (Mexique) 759 EAN Venezuela -76 EAN (Schweiz, Suisse, Svizzera) +76 EAN (Schweiz, Suisse, Svizzera) 770 IAC (Colombie) 773 EAN Uruguay 775 APC - EAN Peru (Perou) @@ -103,15 +103,15 @@ List 784 EAN Paraguay 786 ECOP (Equateur) 789 EAN Bresil -80 � 83 INDICOD (Italie) -84 AECOC (Espagne) +80 - 83 INDICOD (Italy) +84 AECOC (Espagne) 850 Camera de Comercio de la Republica de Cuba (Cuba) 858 EAN Slovaquie 859 EAN Republique Tcheque 860 EAN YU (Yougoslavie) 867 EAN DPR Korea (Coree du Nord) 869 Union of Chambers of Commerce of Turkey (Turquie) -87 EAN Nederland (Hollande) +87 EAN Nederland (Hollande) 880 EAN Korea (Coree du Sud) 885 EAN Thailande 888 SANC (Singapour) @@ -119,11 +119,11 @@ List 893 EAN Vietnam 899 EAN Indonesie 90 - 91 EAN Autriche -93 EAN Australie -94 EAN Nouvelle Zelande +93 EAN Australie +94 EAN Nouvelle Zelande 955 Malaysian Article Numbering Council (MANC) - Malaisie 977 Publications sirielles (ISSN) 978 - 979 Livres (ISBN) 980 Refus de remboursement 981 - 982 Coupons (monnaie courante) -99 Coupons +99 Coupons 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/codesniffer/ruleset.xml b/dev/setup/codesniffer/ruleset.xml index e78438d8791..752a9271e59 100644 --- a/dev/setup/codesniffer/ruleset.xml +++ b/dev/setup/codesniffer/ruleset.xml @@ -135,7 +135,7 @@ - + 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/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/optimize_images.sh b/dev/tools/optimize_images.sh index dd538c5e1aa..89717063006 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,8 +121,8 @@ 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 $OUTPUT" + 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) if [ "$QUIET" == "0" ]; then echo --- Optimizing $INPUT --- @@ -135,11 +136,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 555a4b36ff5..e013e6af1da 100644 --- a/dev/tools/test/namespacemig/main.inc.php +++ b/dev/tools/test/namespacemig/main.inc.php @@ -1,7 +1,6 @@ $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..2a23ee5eb85 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'); @@ -52,14 +53,14 @@ $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(); } @@ -97,6 +98,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL < 2) { $accounting = new AccountingAccount($db); +// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array +$hookmanager->initHooks(array('accountancyadminaccount')); + /* * Actions @@ -109,8 +113,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'); } @@ -294,7 +298,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'))) { @@ -350,6 +354,8 @@ if ($resql) { '; } + $newcardbutton = ''; + print '
'; if ($optioncss != '') { print ''; @@ -396,6 +402,11 @@ if ($resql) { 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; @@ -588,7 +599,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..02921a78cb2 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(); @@ -674,7 +675,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 91d8257ea7f..36b9f3a8b93 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'); @@ -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'); @@ -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)) { @@ -300,7 +304,7 @@ if ($action == 'create') { // Edit mode if ($action == 'update') { - print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr'); + print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'accounting_account'); print ''."\n"; print ''; @@ -368,7 +372,7 @@ if ($action == 'create') { // View mode $linkback = ''.$langs->trans("BackToList").''; - print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), -1, 'billr'); + print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), -1, 'accounting_account'); dol_banner_tab($object, 'ref', $linkback, 1, 'account_number', 'ref'); @@ -416,13 +420,13 @@ 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)) { + if ($user->hasRight('accounting', 'chartofaccount')) { print 'id.'">'.$langs->trans('Delete').''; } else { print ''.$langs->trans('Delete').''; diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index 39aa21f2d63..7b86902e009 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -1,6 +1,6 @@ - * Copyright (C) 2017 Alexandre Spangaro +/* Copyright (C) 2016 Jamal Elbaz + * 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 @@ -22,6 +22,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'; @@ -44,7 +45,7 @@ if ($cat_id == 0) { } // Security check -if (empty($user->rights->accounting->chartofaccount)) { +if (!$user->hasRight('accounting', 'chartofaccount')) { accessforbidden(); } @@ -124,7 +125,8 @@ if (!empty($cat_id)) { $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) { diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index c0439445261..3a6664b8b44 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(); @@ -875,7 +876,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 +886,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, 'maxwidth200 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, 'maxwidth200 maxwidthonsmartphone'); } 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 c99503f95f6..9a3b63adcc3 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,31 +81,31 @@ $list_account[] = '---Others---'; $list_account[] = 'ACCOUNTING_VAT_BUY_ACCOUNT'; $list_account[] = 'ACCOUNTING_VAT_SOLD_ACCOUNT'; $list_account[] = 'ACCOUNTING_VAT_PAY_ACCOUNT'; -if ($conf->banque->enabled) { +if (isModEnabled('banque')) { $list_account[] = 'ACCOUNTING_ACCOUNT_TRANSFER_CASH'; } -if ($conf->don->enabled) { +if (isModEnabled('don')) { $list_account[] = 'DONATION_ACCOUNTINGACCOUNT'; } -if ($conf->adherent->enabled) { +if (isModEnabled('adherent')) { $list_account[] = 'ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT'; } -if ($conf->loan->enabled) { +if (isModEnabled('loan')) { $list_account[] = 'LOAN_ACCOUNTING_ACCOUNT_CAPITAL'; $list_account[] = 'LOAN_ACCOUNTING_ACCOUNT_INTEREST'; $list_account[] = 'LOAN_ACCOUNTING_ACCOUNT_INSURANCE'; } -if ($conf->societe->enabled) { - $list_account[] = 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'; -} $list_account[] = 'ACCOUNTING_ACCOUNT_SUSPENSE'; +if (isModEnabled('societe')) { + $list_account[] = '---Deposits---'; +} /* * Actions */ if ($action == 'update') { $error = 0; - + // Process $list_account_main foreach ($list_account_main as $constname) { $constvalue = GETPOST($constname, 'alpha'); @@ -113,7 +113,7 @@ if ($action == 'update') { $error++; } } - + // Process $list_account foreach ($list_account as $constname) { $reg = array(); if (preg_match('/---(.*)---/', $constname, $reg)) { // This is a separator @@ -127,6 +127,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 { @@ -134,6 +147,34 @@ if ($action == 'update') { } } +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)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'mesgs'); + } +} + +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 @@ -180,7 +221,8 @@ foreach ($list_account_main as $key) { print ''; // Value 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 ''; } @@ -232,10 +274,64 @@ foreach ($list_account as $key) { } +// Customer deposit account +print ''; +// Param +print ''; +print img_picto('', 'bill', 'class="pictofixedwidth"') . $langs->trans('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'); +print ''; +// Value +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 ''; +print ''; + +if (isModEnabled('societe') && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT') && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT') != '-1') { + print ''; + 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 ''; + } else { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + } + print ''; +} + +// Supplier deposit account +print ''; +// Param +print ''; +print img_picto('', 'supplier_invoice', 'class="pictofixedwidth"') . $langs->trans('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT'); +print ''; +// Value +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 ''; +print ''; + +if (isModEnabled('societe') && getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT') && getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT') != '-1') { + print ''; + print '' . img_picto('', 'supplier_invoice', 'class="pictofixedwidth"') . $langs->trans("UseAuxiliaryAccountOnSupplierDeposit") . ''; + if (getDolGlobalInt('ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT')) { + print ''; + print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning'); + print ''; + } else { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + } + print ''; +} + print "\n"; print "
\n"; -print '
'; +print '
'; print '
'; diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 03cd41a43a9..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(); } @@ -47,7 +47,8 @@ $main_option = array( 'ACCOUNTING_EXPORT_PREFIX_SPEC', ); -$configuration = AccountancyExport::getTypeConfig(); +$accountancyexport = new AccountancyExport($db); +$configuration = $accountancyexport->getTypeConfig(); $listparam = $configuration['param']; @@ -117,7 +118,7 @@ if ($action == 'update') { if (!$error) { // reload - $configuration = AccountancyExport::getTypeConfig(); + $configuration = $accountancyexport->getTypeConfig(); $listparam = $configuration['param']; setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -210,7 +211,7 @@ if ($num) { // Value print ''; - print ''; + print ''; print ''; } } @@ -237,8 +238,8 @@ if (!$conf->use_javascript_ajax) { print ""; } else { print ''; - $listmodelcsv = AccountancyExport::getType(); - print $form->selectarray("ACCOUNTING_EXPORT_MODELCSV", $listmodelcsv, $conf->global->ACCOUNTING_EXPORT_MODELCSV, 0, 0, 0, '', 0, 0, 0, '', '', 1); + $listmodelcsv = $accountancyexport->getType(); + 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..301a3def70e 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'; @@ -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..d798b6baa5f 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'; @@ -299,7 +300,7 @@ if ($action == 'create') { /* * Action bar */ - if (!empty($user->rights->accounting->fiscalyear->write)) { + if ($user->hasRight('accounting', 'fiscalyear', 'write')) { print '
'; print ''.$langs->trans('Modify').''; diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php index 77ec988143a..1cc6fcba958 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'; diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 309dc094e82..22d39dea7d0 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(); } @@ -358,7 +359,7 @@ foreach ($list as $key) { print ''.$label.''; // Value print ''; - print ''; + print ''; print ''; print ''; @@ -409,12 +410,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)); } else { - print ''; + print ''; } print ''; diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index de6b8374c2a..8d350afbb07 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(); diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 847891c949b..9f86922aa5c 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -1,10 +1,10 @@ - * Copyright (C) 2013-2021 Alexandre Spangaro - * Copyright (C) 2014 Florian Henry - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Ari Elbaz (elarifr) - * Copyright (C) 2021 Gauthier VERDOL + * Copyright (C) 2013-2022 Alexandre Spangaro + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2014 Juanjo Menent + * Copyright (C) 2015 Ari Elbaz (elarifr) + * 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 @@ -34,12 +34,15 @@ 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 (isModEnabled('categorie')) { + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +} // Load translation files required by the page $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)) { @@ -59,6 +62,8 @@ $account_number_sell = GETPOST('account_number_sell'); $changeaccount = GETPOST('changeaccount', 'array'); $changeaccount_buy = GETPOST('changeaccount_buy', 'array'); $changeaccount_sell = GETPOST('changeaccount_sell', 'array'); +$searchCategoryProductOperator = (GETPOST('search_category_product_operator', 'int') ? GETPOST('search_category_product_operator', 'int') : 0); +$searchCategoryProductList = GETPOST('search_category_product_list', 'array'); $search_ref = GETPOST('search_ref', 'alpha'); $search_label = GETPOST('search_label', 'alpha'); $search_desc = GETPOST('search_desc', 'alpha'); @@ -144,6 +149,8 @@ if ($reshook < 0) { // 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 + $searchCategoryProductOperator = 0; + $searchCategoryProductList = array(); $search_ref = ''; $search_label = ''; $search_desc = ''; @@ -283,7 +290,16 @@ $aacompta_prodsell = getDolGlobalString('ACCOUNTING_PRODUCT_SOLD_ACCOUN $aacompta_prodsell_intra = getDolGlobalString('ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT', $langs->trans("CodeNotDef")); $aacompta_prodsell_export = getDolGlobalString('ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT', $langs->trans("CodeNotDef")); -llxHeader('', $langs->trans("ProductsBinding")); + +$title = $langs->trans("ProductsBinding"); +$helpurl = ''; + +$paramsCat = ''; +foreach ($searchCategoryProductList as $searchCategoryProduct) { + $paramsCat .= "&search_category_product_list[]=".urlencode($searchCategoryProduct); +} + +llxHeader('', $title, $helpurl, '', 0, 0, array(), array(), $paramsCat, ''); $pcgverid = getDolGlobalString('CHARTOFACCOUNTS'); $pcgvercode = dol_getIdFromCode($db, $pcgverid, 'accounting_system', 'rowid', 'pcg_version'); @@ -308,6 +324,9 @@ if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { } else { $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = p." . $accountancy_field_name . " AND aa.fk_pcg_version = '" . $db->escape($pcgvercode) . "'"; } +if (!empty($searchCategoryProductList)) { + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_product as cp ON p.rowid = cp.fk_product"; // We'll need this table joined to the select in order to filter by categ +} $sql .= ' WHERE p.entity IN ('.getEntity('product').')'; if (strlen(trim($search_current_account))) { $sql .= natural_search((empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED) ? "p." : "ppe.") . $accountancy_field_name, $search_current_account); @@ -318,6 +337,30 @@ if ($search_current_account_valid == 'withoutvalidaccount') { if ($search_current_account_valid == 'withvalidaccount') { $sql .= " AND aa.account_number IS NOT NULL"; } +$searchCategoryProductSqlList = array(); +if ($searchCategoryProductOperator == 1) { + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "cp.fk_categorie IS NULL"; + } elseif (intval($searchCategoryProduct) > 0) { + $searchCategoryProductSqlList[] = "cp.fk_categorie = ".$db->escape($searchCategoryProduct); + } + } + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' OR ', $searchCategoryProductSqlList).")"; + } +} else { + foreach ($searchCategoryProductList as $searchCategoryProduct) { + if (intval($searchCategoryProduct) == -2) { + $searchCategoryProductSqlList[] = "cp.fk_categorie IS NULL"; + } elseif (intval($searchCategoryProduct) > 0) { + $searchCategoryProductSqlList[] = "p.rowid IN (SELECT fk_product FROM ".MAIN_DB_PREFIX."categorie_product WHERE fk_categorie = ".((int) $searchCategoryProduct).")"; + } + } + if (!empty($searchCategoryProductSqlList)) { + $sql .= " AND (".implode(' AND ', $searchCategoryProductSqlList).")"; + } +} // Add search filter like if (strlen(trim($search_ref))) { $sql .= natural_search("p.ref", $search_ref); @@ -338,12 +381,22 @@ if ($search_onpurchase != '' && $search_onpurchase != '-1') { $sql .= natural_search('p.tobuy', $search_onpurchase, 1); } +$sql .= " GROUP BY p.rowid, p.ref, p.label, p.description, p.tosell, p.tobuy, p.tva_tx,"; +$sql .= " p.fk_product_type,"; +$sql .= ' p.tms,'; +$sql .= ' aa.rowid,'; +if (empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { + $sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export"; +} else { + $sql .= " ppe.accountancy_code_sell, ppe.accountancy_code_sell_intra, ppe.accountancy_code_sell_export, ppe.accountancy_code_buy, ppe.accountancy_code_buy_intra, ppe.accountancy_code_buy_export"; +} + $sql .= $db->order($sortfield, $sortorder); $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + $resql = $db->query($sql); + $nbtotalofrecords = $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; @@ -353,9 +406,9 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $sql .= $db->plimit($limit + 1, $offset); dol_syslog("/accountancy/admin/productaccount.php", LOG_DEBUG); -$result = $db->query($sql); -if ($result) { - $num = $db->num_rows($result); +$resql = $db->query($sql); +if ($resql) { + $num = $db->num_rows($resql); $i = 0; $param = ''; @@ -365,11 +418,17 @@ if ($result) { if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } + if ($searchCategoryProductOperator == 1) { + $param .= "&search_category_product_operator=".urlencode($searchCategoryProductOperator); + } + foreach ($searchCategoryProductList as $searchCategoryProduct) { + $param .= "&search_category_product_list[]=".urlencode($searchCategoryProduct); + } if ($search_ref > 0) { - $param .= "&search_desc=".urlencode($search_ref); + $param .= "&search_ref=".urlencode($search_ref); } if ($search_label > 0) { - $param .= "&search_desc=".urlencode($search_label); + $param .= "&search_label=".urlencode($search_label); } if ($search_desc > 0) { $param .= "&search_desc=".urlencode($search_desc); @@ -461,6 +520,40 @@ if ($result) { print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmPreselectAccount"), $langs->trans("ConfirmPreselectAccountQuestion", count($chk_prod)), "confirm_set_default_account", $formquestion, 1, 0, 200, 500, 1); } + // Filter on categories + $moreforfilter = ''; + 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); + $categoriesProductArr[-2] = '- '.$langs->trans('NotCategorized').' -'; + $moreforfilter .= Form::multiselectarray('search_category_product_list', $categoriesProductArr, $searchCategoryProductList, 0, 0, 'minwidth300'); + $moreforfilter .= ' '.$langs->trans('UseOrOperatorForCategories').''; + $moreforfilter .= '
'; + } + + //Show/hide child products. Hidden by default + if (isModEnabled('variants') && !empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) { + $moreforfilter .= '
'; + $moreforfilter .= ''; + $moreforfilter .= ' '; + $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 '
'; + } + print '
'; print ''; @@ -515,7 +608,7 @@ if ($result) { $i = 0; while ($i < min($num, $limit)) { - $obj = $db->fetch_object($result); + $obj = $db->fetch_object($resql); // Ref produit as link $product_static->ref = $obj->ref; @@ -798,7 +891,7 @@ if ($result) { print ''; - $db->free($result); + $db->free($resql); } else { dol_print_error($db); } diff --git a/htdocs/accountancy/admin/subaccount.php b/htdocs/accountancy/admin/subaccount.php index cc0d4de9f31..c9f78596bcd 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(); } diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 3c2e8763fe1..cb479a1dc59 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,7 +144,7 @@ if (!empty($search_ledger_code)) { } } -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -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'); @@ -349,7 +352,7 @@ if ($action != 'export_csv') { $sql .= " GROUP BY t.numero_compte"; $resql = $db->query($sql); - $nrows = $resql->num_rows; + $nrows = $db->num_rows($resql); $opening_balances = array(); for ($i = 0; $i < $nrows; $i++) { $arr = $resql->fetch_array(); diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 5b645796a32..e120606b927 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2017 Florian Henry - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Alexandre Spangaro * Copyright (C) 2017 Laurent Destailleur * Copyright (C) 2018-2020 Frédéric France * @@ -25,6 +25,7 @@ * \brief Page to show book-entry */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; @@ -79,7 +80,7 @@ if (!empty($update)) { $object = new BookKeeping($db); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -267,7 +268,7 @@ if ($action == "confirm_update") { if ($mode != '_tmp') { setEventMessages($langs->trans('RecordSaved'), null, 'mesgs'); } - $action = 'update'; + $action = ''; $id = $object->id; $piece_num = $object->piece_num; } @@ -332,7 +333,9 @@ if ($action == 'valid') { $html = new Form($db); $formaccounting = new FormAccounting($db); -llxHeader('', $langs->trans("CreateMvts")); +$title = $langs->trans("CreateMvts"); + +llxHeader('', $title); // Confirmation to delete the command if ($action == 'delete') { @@ -341,7 +344,7 @@ if ($action == 'delete') { } if ($action == 'create') { - print load_fiche_titre($langs->trans("CreateMvts")); + print load_fiche_titre($title); $object = new BookKeeping($db); $next_num_mvt = $object->getNextNumMvt('_tmp'); @@ -431,12 +434,12 @@ if ($action == 'create') { // Account movement print ''; print ''; - print ''; + print ''; print ''; // Date print ''; } +if (!empty($arrayfields['t.import_key']['checked'])) { + print ''; +} // Fields from hook $parameters = array('arrayfields'=>$arrayfields); @@ -643,6 +815,9 @@ if (!empty($arrayfields['t.date_export']['checked'])) { if (!empty($arrayfields['t.date_validated']['checked'])) { print_liste_field_titre($arrayfields['t.date_validated']['label'], $_SERVER['PHP_SELF'], "t.date_validated", "", $param, '', $sortfield, $sortorder, 'center '); } +if (!empty($arrayfields['t.import_key']['checked'])) { + print_liste_field_titre($arrayfields['t.import_key']['label'], $_SERVER["PHP_SELF"], "t.import_key", "", $param, '', $sortfield, $sortorder, 'center '); +} // 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 @@ -650,24 +825,33 @@ print $hookmanager->resPrint; print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "\n"; - -$total_debit = 0; -$total_credit = 0; -$sous_total_debit = 0; -$sous_total_credit = 0; $displayed_account_number = null; // Start with undefined to be able to distinguish with empty // Loop on record // -------------------------------------------------------------------- $i = 0; + $totalarray = array(); +$totalarray['val'] = array (); +$totalarray['nbfield'] = 0; +$total_debit = 0; +$total_credit = 0; +$sous_total_debit = 0; +$sous_total_credit = 0; +$totalarray['val']['totaldebit'] = 0; +$totalarray['val']['totalcredit'] = 0; + while ($i < min($num, $limit)) { $line = $object->lines[$i]; $total_debit += $line->debit; $total_credit += $line->credit; - $accountg = length_accountg($line->numero_compte); + if ($type == 'sub') { + $accountg = length_accounta($line->subledger_account); + } else { + $accountg = length_accountg($line->numero_compte); + } //if (empty($accountg)) $accountg = '-'; $colspan = 0; // colspan before field 'label of operation' @@ -686,7 +870,11 @@ while ($i < min($num, $limit)) { // Show a subtotal by accounting account if (isset($displayed_account_number)) { print ''; - print ''; + if ($type == 'sub') { + print ''; + } else { + print ''; + } print ''; print ''; print ''; @@ -712,11 +900,28 @@ while ($i < min($num, $limit)) { // Show the break account print ''; - print ''; print ''; @@ -890,22 +1095,26 @@ while ($i < min($num, $limit)) { } } + if (!empty($arrayfields['t.import_key']['checked'])) { + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$line); $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Action column print ''; if (!$i) { @@ -955,11 +1164,11 @@ print "
'.$langs->trans("NumMvts").''.$object->piece_num.''.($mode == '_tmp' ? ''.$langs->trans("Draft").'' : $object->piece_num).'
'; - print ''; } +if (!empty($arrayfields['t.import_key']['checked'])) { + print ''; +} // Action column print '\n"; @@ -1018,6 +1134,13 @@ $line = new BookKeepingLine(); // -------------------------------------------------------------------- $i = 0; $totalarray = array(); +$totalarray['nbfield'] = 0; +$total_debit = 0; +$total_credit = 0; +$totalarray['val'] = array (); +$totalarray['val']['totaldebit'] = 0; +$totalarray['val']['totalcredit'] = 0; + while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); if (empty($obj)) { @@ -1252,17 +1375,21 @@ while ($i < min($num, $limit)) { } } - // Action column - print '\n"; + if (!$i) { + $totalarray['nbfield']++; } } - if (empty($line->date_validation)) { - if ($user->rights->accounting->mouvements->supprimer) { - print ''.img_delete().''; + + // Action column + print ''; @@ -1283,11 +1410,11 @@ print "
'; + print ''; if ($action != 'editdate') { @@ -540,21 +543,24 @@ if ($action == 'create') { print ''; print ''; - // Date document creation - print ''; - print ''; - print ''; - print ''; + // Don't show in tmp mode, inevitably empty + if ($mode != "_tmp") { + // Date document export + print ''; + print ''; + print ''; + print ''; - // Date document creation - print ''; - print ''; - print ''; - print ''; + // Date document validation + print ''; + print ''; + print ''; + print ''; + } // Validate /* @@ -607,6 +613,7 @@ if ($action == 'create') { print '
'; $result = $object->fetchAllPerMvt($piece_num, $mode); // This load $object->linesmvt + if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { @@ -640,13 +647,22 @@ if ($action == 'create') { print_liste_field_titre("Debit", "", "", "", "", 'class="right"'); print_liste_field_titre("Credit", "", "", "", "", 'class="right"'); if (empty($object->date_validation)) { - print_liste_field_titre("Action", "", "", "", "", 'width="60" class="center"'); + print_liste_field_titre("Action", "", "", "", "", 'width="60"', "", "", 'center '); } else { print_liste_field_titre(""); } print "\n"; + // Add an empty line if there is not yet + if (!empty($object->linesmvt[0])) { + $tmpline = $object->linesmvt[0]; + if (!empty($tmpline->numero_compte)) { + $line = new BookKeepingLine(); + $object->linesmvt[] = $line; + } + } + foreach ($object->linesmvt as $line) { print ''; $total_debit += $line->debit; @@ -677,7 +693,31 @@ if ($action == 'create') { print ''."\n"; print ''; print ''; + } elseif (empty($line->numero_compte) || (empty($line->debit) && empty($line->credit))) { + if ($action == "" || $action == 'add') { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } } else { + print ''; $resultfetch = $accountingaccount->fetch(null, $line->numero_compte, true); print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } - } - print '
'; print $langs->trans('Docdate'); print '
'.$langs->trans("DateExport").''; - print $object->date_export ? dol_print_date($object->date_export, 'dayhour') : ' '; - print '
' . $langs->trans("DateExport") . ''; + print $object->date_export ? dol_print_date($object->date_export, 'dayhour') : ' '; + print '
'.$langs->trans("DateValidation").''; - print $object->date_validation ? dol_print_date($object->date_validation, 'dayhour') : ' '; - print '
' . $langs->trans("DateValidation") . ''; + print $object->date_validation ? dol_print_date($object->date_validation, 'dayhour') : ' '; + print '
'; + print $formaccounting->select_account('', 'accountingaccount_number', 1, array(), 1, 1, ''); + print ''; + // TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because: + // It does not use the setup of "key pressed" to select a thirdparty and this hang browser on large databases. + // Also, it is not possible to use a value that is not in the list. + // Also, the label is not automatically filled when a value is selected. + if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { + print $formaccounting->select_auxaccount('', 'subledger_account', 1, 'maxwidth250', '', 'subledger_label'); + } else { + print ''; + } + print '
'; + print '
'; if ($resultfetch > 0) { @@ -733,35 +773,6 @@ if ($action == 'create') { setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_debit, $total_credit)), 'warnings'); } - if (empty($object->date_export) && empty($object->date_validation)) { - if ($action == "" || $action == 'add') { - print '
'; - print $formaccounting->select_account('', 'accountingaccount_number', 1, array(), 1, 1, ''); - print ''; - // TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because: - // It does not use the setup of "key pressed" to select a thirdparty and this hang browser on large databases. - // Also, it is not possible to use a value that is not in the list. - // Also, the label is not automatically filled when a value is selected. - if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { - print $formaccounting->select_auxaccount('', 'subledger_account', 1, 'maxwidth250', '', 'subledger_label'); - } else { - print ''; - } - print '
'; - print '
'; - print ''; - print '
'; print ''; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index a760a550bef..a76fa1945c2 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2016 Florian Henry - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Alexandre Spangaro * Copyright (C) 2016-2017 Laurent Destailleur * Copyright (C) 2018-2021 Frédéric France * @@ -25,9 +25,11 @@ * \brief List operation of book keeping */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -42,6 +44,10 @@ $langs->loadLangs(array("accountancy", "compta")); $socid = GETPOST('socid', 'int'); $action = GETPOST('action', 'aZ09'); +$massaction = GETPOST('massaction', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$toselect = GETPOST('toselect', 'array'); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'bookkeepinglist'; $search_mvt_num = GETPOST('search_mvt_num', 'int'); $search_doc_type = GETPOST("search_doc_type", 'alpha'); $search_doc_ref = GETPOST("search_doc_ref", 'alpha'); @@ -86,6 +92,7 @@ $search_date_validation_endmonth = GETPOST('search_date_validation_endmonth', ' $search_date_validation_endday = GETPOST('search_date_validation_endday', 'int'); $search_date_validation_start = dol_mktime(0, 0, 0, $search_date_validation_startmonth, $search_date_validation_startday, $search_date_validation_startyear); $search_date_validation_end = dol_mktime(23, 59, 59, $search_date_validation_endmonth, $search_date_validation_endday, $search_date_validation_endyear); +$search_import_key = GETPOST("search_import_key", 'alpha'); //var_dump($search_date_start);exit; if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) { @@ -126,6 +133,7 @@ $search_not_reconciled = GETPOST('search_not_reconciled', 'alpha'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION); $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); +$optioncss = GETPOST('optioncss', 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page < 0) { $page = 0; @@ -190,22 +198,24 @@ $arrayfields = array( 't.date_creation'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0), 't.tms'=>array('label'=>$langs->trans("DateModification"), 'checked'=>0), 't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1), - 't.date_validated'=>array('label'=>$langs->trans("DateValidationAndLock"), 'checked'=>1), + 't.date_validated'=>array('label'=>$langs->trans("DateValidationAndLock"), 'checked'=>1, 'enabled'=>!getDolGlobalString("ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")), + 't.import_key'=>array('label'=>$langs->trans("ImportId"), 'checked'=>0, 'position'=>1100), ); if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { unset($arrayfields['t.lettering_code']); } -$listofformat = AccountancyExport::getType(); -$formatexportset = $conf->global->ACCOUNTING_EXPORT_MODELCSV; +$accountancyexport = new AccountancyExport($db); +$listofformat = $accountancyexport->getType(); +$formatexportset = getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV'); if (empty($listofformat[$formatexportset])) { $formatexportset = 1; } $error = 0; -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -220,10 +230,12 @@ if (empty($user->rights->accounting->mouvements->lire)) { * Actions */ +$param = ''; + if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'preunlettering' && $massaction != 'predeletebookkeepingwriting') { $massaction = ''; } @@ -294,10 +306,11 @@ if (empty($reshook)) { $search_credit = ''; $search_lettering_code = ''; $search_not_reconciled = ''; + $search_import_key = ''; + $toselect = array(); } // Must be after the remove filter action, before the export. - $param = ''; $filter = array(); if (!empty($search_date_start)) { $filter['t.doc_date>='] = $search_date_start; @@ -416,77 +429,143 @@ if (empty($reshook)) { $filter['t.reconciled_option'] = $search_not_reconciled; $param .= '&search_not_reconciled='.urlencode($search_not_reconciled); } -} + if (!empty($search_import_key)) { + $filter['t.import_key'] = $search_import_key; + $param .= '&search_import_key='.urlencode($search_import_key); + } -if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->supprimer) { - $import_key = GETPOST('importkey', 'alpha'); - - if (!empty($import_key)) { - $result = $object->deleteByImportkey($import_key); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + //if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) { + // $delmonth = GETPOST('delmonth', 'int'); + // $delyear = GETPOST('delyear', 'int'); + // if ($delyear == -1) { + // $delyear = 0; + // } + // $deljournal = GETPOST('deljournal', 'alpha'); + // if ($deljournal == -1) { + // $deljournal = 0; + // } + // + // if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) { + // $result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0)); + // if ($result < 0) { + // setEventMessages($object->error, $object->errors, 'errors'); + // } else { + // setEventMessages("RecordDeleted", null, 'mesgs'); + // } + // + // // Make a redirect to avoid to launch the delete later after a back button + // header("Location: list.php".($param ? '?'.$param : '')); + // exit; + // } else { + // setEventMessages("NoRecordDeleted", null, 'warnings'); + // } + //} + if ($action == 'setreexport') { + $setreexport = GETPOST('value', 'int'); + if (!dolibarr_set_const($db, "ACCOUNTING_REEXPORT", $setreexport, 'yesno', 0, '', $conf->entity)) { + $error++; } - // Make a redirect to avoid to launch the delete later after a back button - header("Location: list.php".($param ? '?'.$param : '')); - exit; - } -} -if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) { - $delmonth = GETPOST('delmonth', 'int'); - $delyear = GETPOST('delyear', 'int'); - if ($delyear == -1) { - $delyear = 0; - } - $deljournal = GETPOST('deljournal', 'alpha'); - if ($deljournal == -1) { - $deljournal = 0; - } - - if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) { - $result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0)); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + if (!$error) { + if ($conf->global->ACCOUNTING_REEXPORT == 1) { + setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsEnable"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'mesgs'); + } } else { - setEventMessages("RecordDeleted", null, 'mesgs'); + setEventMessages($langs->trans("Error"), null, 'errors'); } - - // Make a redirect to avoid to launch the delete later after a back button - header("Location: list.php".($param ? '?'.$param : '')); - exit; - } else { - setEventMessages("NoRecordDeleted", null, 'warnings'); - } -} -if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->supprimer) { - $mvt_num = GETPOST('mvt_num', 'int'); - - if (!empty($mvt_num)) { - $result = $object->deleteMvtNum($mvt_num); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); - } - - header("Location: list.php?noreset=1".($param ? '&'.$param : '')); - exit; - } -} -if ($action == 'setreexport') { - $setreexport = GETPOST('value', 'int'); - if (!dolibarr_set_const($db, "ACCOUNTING_REEXPORT", $setreexport, 'yesno', 0, '', $conf->entity)) { - $error++; } - if (!$error) { - if ($conf->global->ACCOUNTING_REEXPORT == 1) { - setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsEnable"), null, 'mesgs'); - } else { - setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'mesgs'); + // Mass actions + $objectclass = 'Bookkeeping'; + $objectlabel = 'Bookkeeping'; + $permissiontoread = $user->rights->societe->lire; + $permissiontodelete = $user->rights->societe->supprimer; + $permissiontoadd = $user->rights->societe->creer; + $uploaddir = $conf->societe->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; + + if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->rights->accounting->mouvements->supprimer) { + $nbok = 0; + foreach ($toselect as $toselectid) { + $result = $object->fetch($toselectid); + if ($result > 0 && (!isset($object->date_validation) || $object->date_validation === '')) { + $result = $object->deleteMvtNum($object->piece_num); + if ($result > 0) { + $nbok++; + } else { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + break; + } + } elseif ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + break; + } + } + + // Message for elements well deleted + if ($nbok > 1) { + setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs'); + } elseif ($nbok > 0) { + setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs'); + } elseif (!$error) { + setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs'); + } + + if (!$error) { + header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : '')); + exit; + } + } + + // others mass actions + if (!$error && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) { + if ($massaction == 'lettering') { + $lettering = new Lettering($db); + $nb_lettering = $lettering->bookkeepingLetteringAll($toselect); + if ($nb_lettering < 0) { + setEventMessages('', $lettering->errors, 'errors'); + $error++; + $nb_lettering = max(0, abs($nb_lettering) - 2); + } elseif ($nb_lettering == 0) { + $nb_lettering = 0; + setEventMessages($langs->trans('AccountancyNoLetteringModified'), array(), 'mesgs'); + } + if ($nb_lettering == 1) { + setEventMessages($langs->trans('AccountancyOneLetteringModifiedSuccessfully'), array(), 'mesgs'); + } elseif ($nb_lettering > 1) { + setEventMessages($langs->trans('AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(), 'mesgs'); + } + + if (!$error) { + header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param); + exit(); + } + } elseif ($action == 'unlettering' && $confirm == "yes") { + $lettering = new Lettering($db); + $nb_lettering = $lettering->bookkeepingLetteringAll($toselect, true); + if ($nb_lettering < 0) { + setEventMessages('', $lettering->errors, 'errors'); + $error++; + $nb_lettering = max(0, abs($nb_lettering) - 2); + } elseif ($nb_lettering == 0) { + $nb_lettering = 0; + setEventMessages($langs->trans('AccountancyNoUnletteringModified'), array(), 'mesgs'); + } + if ($nb_lettering == 1) { + setEventMessages($langs->trans('AccountancyOneUnletteringModifiedSuccessfully'), array(), 'mesgs'); + } elseif ($nb_lettering > 1) { + setEventMessages($langs->trans('AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(), 'mesgs'); + } + + if (!$error) { + header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param); + exit(); + } } - } else { - setEventMessages($langs->trans("Error"), null, 'errors'); } } @@ -520,7 +599,8 @@ $sql .= " t.piece_num,"; $sql .= " t.date_creation,"; $sql .= " t.tms as date_modification,"; $sql .= " t.date_export,"; -$sql .= " t.date_validated as date_validation"; +$sql .= " t.date_validated as date_validation,"; +$sql .= " t.import_key"; $sql .= ' FROM '.MAIN_DB_PREFIX.$object->table_element.' as t'; // Manage filter $sqlwhere = array(); @@ -667,6 +747,7 @@ if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) { $num = $db->num_rows($resql); } +$arrayofselected = is_array($toselect) ? $toselect : array(); // Output page // -------------------------------------------------------------------- @@ -684,69 +765,67 @@ if ($action == 'export_file') { 'name' => 'notifiedexportdate', 'type' => 'checkbox', 'label' => $langs->trans('NotifiedExportDate'), - 'value' => $checked, + 'value' => (!empty($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_EXPORT_DATE) ? 'false' : 'true'), ); $form_question['separator'] = array('name'=>'separator', 'type'=>'separator'); - // If 0 or not set, we NOT check by default. - $checked = (isset($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_VALIDATION_DATE) || !empty($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_VALIDATION_DATE)); - $form_question['notifiedvalidationdate'] = array( - 'name' => 'notifiedvalidationdate', - 'type' => 'checkbox', - 'label' => $langs->trans('NotifiedValidationDate'), - 'value' => $checked, - ); + if (!getDolGlobalString("ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")) { + // If 0 or not set, we NOT check by default. + $checked = (isset($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_VALIDATION_DATE) || !empty($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_VALIDATION_DATE)); + $form_question['notifiedvalidationdate'] = array( + 'name' => 'notifiedvalidationdate', + 'type' => 'checkbox', + 'label' => $langs->trans('NotifiedValidationDate', $langs->transnoentitiesnoconv("MenuAccountancyClosure")), + 'value' => $checked, + ); - $form_question['separator2'] = array('name'=>'separator2', 'type'=>'separator'); + $form_question['separator2'] = array('name'=>'separator2', 'type'=>'separator'); + } $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', $langs->trans('ConfirmExportFile'), 'export_fileconfirm', $form_question, '', 1, 300, 600); } -if ($action == 'delmouv') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?mvt_num='.urlencode(GETPOST('mvt_num')).$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1); -} - -if ($action == 'delbookkeepingyear') { - $form_question = array(); - $delyear = GETPOST('delyear', 'int'); - $deljournal = GETPOST('deljournal', 'alpha'); - - if (empty($delyear)) { - $delyear = dol_print_date(dol_now(), '%Y'); - } - $month_array = array(); - for ($i = 1; $i <= 12; $i++) { - $month_array[$i] = $langs->trans("Month".sprintf("%02d", $i)); - } - $year_array = $formaccounting->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array'); - $journal_array = $formaccounting->select_journal($deljournal, 'deljournal', '', 1, 1, 1, '', 0, 1); - - $form_question['delmonth'] = array( - 'name' => 'delmonth', - 'type' => 'select', - 'label' => $langs->trans('DelMonth'), - 'values' => $month_array, - 'morecss' => 'minwidth150', - 'default' => '' - ); - $form_question['delyear'] = array( - 'name' => 'delyear', - 'type' => 'select', - 'label' => $langs->trans('DelYear'), - 'values' => $year_array, - 'default' => $delyear - ); - $form_question['deljournal'] = array( - 'name' => 'deljournal', - 'type' => 'other', // We don't use select here, the journal_array is already a select html component - 'label' => $langs->trans('DelJournal'), - 'value' => $journal_array, - 'default' => $deljournal - ); - - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'delbookkeepingyearconfirm', $form_question, '', 1, 320); -} +//if ($action == 'delbookkeepingyear') { +// $form_question = array(); +// $delyear = GETPOST('delyear', 'int'); +// $deljournal = GETPOST('deljournal', 'alpha'); +// +// if (empty($delyear)) { +// $delyear = dol_print_date(dol_now(), '%Y'); +// } +// $month_array = array(); +// for ($i = 1; $i <= 12; $i++) { +// $month_array[$i] = $langs->trans("Month".sprintf("%02d", $i)); +// } +// $year_array = $formaccounting->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array'); +// $journal_array = $formaccounting->select_journal($deljournal, 'deljournal', '', 1, 1, 1, '', 0, 1); +// +// $form_question['delmonth'] = array( +// 'name' => 'delmonth', +// 'type' => 'select', +// 'label' => $langs->trans('DelMonth'), +// 'values' => $month_array, +// 'morecss' => 'minwidth150', +// 'default' => '' +// ); +// $form_question['delyear'] = array( +// 'name' => 'delyear', +// 'type' => 'select', +// 'label' => $langs->trans('DelYear'), +// 'values' => $year_array, +// 'default' => $delyear +// ); +// $form_question['deljournal'] = array( +// 'name' => 'deljournal', +// 'type' => 'other', // We don't use select here, the journal_array is already a select html component +// 'label' => $langs->trans('DelJournal'), +// 'value' => $journal_array, +// 'default' => $deljournal +// ); +// +// $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'delbookkeepingyearconfirm', $form_question, '', 1, 320); +//} // Print form confirm print $formconfirm; @@ -759,6 +838,22 @@ if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } +// List of mass actions available +$arrayofmassactions = array(); +/* +if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) { + $arrayofmassactions['lettering'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('Lettering'); + $arrayofmassactions['preunlettering'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('Unlettering'); +} +*/ +if ($user->rights->accounting->mouvements->supprimer) { + $arrayofmassactions['predeletebookkeepingwriting'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('preunlettering', 'predeletebookkeepingwriting'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions); + print '
'; print ''; print ''; @@ -768,8 +863,7 @@ if ($optioncss != '') { print ''; print ''; print ''; - -$massactionbutton = ''; +print ''; if (count($filter)) { $buttonLabel = $langs->trans("ExportFilteredList"); @@ -794,7 +888,7 @@ if (empty($reshook)) { $newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly')); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbysubaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly')); + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?type=sub'.$param, '', 1, array('morecss' => 'marginleftonly')); $url = './card.php?action=create'; if (!empty($socid)) { @@ -805,12 +899,26 @@ if (empty($reshook)) { print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1); +if ($massaction == 'preunlettering') { + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnlettering"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unlettering", null, '', 0, 200, 500, 1); +} elseif ($massaction == 'predeletebookkeepingwriting') { + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeleteBookkeepingWriting"), $langs->trans("ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)), "deletebookkeepingwriting", null, '', 0, 200, 500, 1); +} + +//$topicmail = "Information"; +//$modelmail = "accountingbookkeeping"; +//$objecttmp = new BookKeeping($db); +//$trackid = 'bk'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields -if ($massactionbutton) { +if ($massactionbutton && $contextpage != 'poslist') { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); } +$moreforfilter = ''; + $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) { @@ -954,6 +1062,11 @@ if (!empty($arrayfields['t.date_validated']['checked'])) { print ''; print '
'; + print ''; + print ''; $searchpicto = $form->showFilterButtons(); @@ -1008,6 +1121,9 @@ if (!empty($arrayfields['t.date_export']['checked'])) { if (!empty($arrayfields['t.date_validated']['checked'])) { print_liste_field_titre($arrayfields['t.date_validated']['label'], $_SERVER['PHP_SELF'], "t.date_validated", "", $param, '', $sortfield, $sortorder, 'center '); } +if (!empty($arrayfields['t.import_key']['checked'])) { + print_liste_field_titre($arrayfields['t.import_key']['label'], $_SERVER["PHP_SELF"], "t.import_key", "", $param, '', $sortfield, $sortorder, 'center '); +} print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "
'; - if (empty($line->date_export) && empty($line->date_validation)) { - if ($user->rights->accounting->mouvements->creer) { - print '' . img_edit() . ''; + if (!empty($arrayfields['t.import_key']['checked'])) { + print ''.$obj->import_key."'; + if (($massactionbutton || $massaction) && $contextpage != 'poslist') { // 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($line->id, $arrayofselected)) { + $selected = 1; } + print ''; } print '
"; print ''; // TODO Replace this with mass delete action -if ($user->rights->accounting->mouvements->supprimer_tous) { - print '
'."\n"; - print ''.$langs->trans("DeleteMvt").''; - print '
'; -} +//if ($user->rights->accounting->mouvements->supprimer_tous) { +// print '
'."\n"; +// print ''.$langs->trans("DeleteMvt").''; +// print '
'; +//} print ''; diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 837a372a32d..ba94415782f 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -2,7 +2,7 @@ /* Copyright (C) 2016 Neil Orley * Copyright (C) 2013-2016 Olivier Geffroy * Copyright (C) 2013-2020 Florian Henry - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Alexandre Spangaro * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -25,9 +25,11 @@ * \brief List operation of ledger ordered by account number */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; @@ -39,6 +41,17 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $langs->loadLangs(array("accountancy", "compta")); $action = GETPOST('action', 'aZ09'); +$socid = GETPOST('socid', 'int'); +$massaction = GETPOST('massaction', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$toselect = GETPOST('toselect', 'array'); +$type = GETPOST('type', 'alpha'); +if ($type == 'sub') { + $context_default = 'bookkeepingbysubaccountlist'; +} else { + $context_default = 'bookkeepingbyaccountlist'; +} +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : $context_default; $search_date_startyear = GETPOST('search_date_startyear', 'int'); $search_date_startmonth = GETPOST('search_date_startmonth', 'int'); $search_date_startday = GETPOST('search_date_startday', 'int'); @@ -64,6 +77,7 @@ $search_date_validation_endmonth = GETPOST('search_date_validation_endmonth', ' $search_date_validation_endday = GETPOST('search_date_validation_endday', 'int'); $search_date_validation_start = dol_mktime(0, 0, 0, $search_date_validation_startmonth, $search_date_validation_startday, $search_date_validation_startyear); $search_date_validation_end = dol_mktime(23, 59, 59, $search_date_validation_endmonth, $search_date_validation_endday, $search_date_validation_endyear); +$search_import_key = GETPOST("search_import_key", 'alpha'); $search_accountancy_code = GETPOST("search_accountancy_code"); $search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha'); @@ -92,6 +106,7 @@ if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_ $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION); $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); +$optioncss = GETPOST('optioncss', 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page < 0) { $page = 0; @@ -109,7 +124,7 @@ if ($sortfield == "") { // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $object = new BookKeeping($db); $formfile = new FormFile($db); -$hookmanager->initHooks(array('bookkeepingbyaccountlist')); +$hookmanager->initHooks(array($context_default)); $formaccounting = new FormAccounting($db); $form = new Form($db); @@ -152,7 +167,8 @@ $arrayfields = array( 't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1), 't.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1), 't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1), - 't.date_validated'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1), + 't.date_validated'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1, 'enabled'=>!getDolGlobalString("ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")), + 't.import_key'=>array('label'=>$langs->trans("ImportId"), 'checked'=>0, 'position'=>1100), ); if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { @@ -172,7 +188,7 @@ if ($search_date_end && empty($search_date_endyear)) { $search_date_endday = $tmparray['mday']; } -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -187,10 +203,13 @@ if (empty($user->rights->accounting->mouvements->lire)) { * Action */ +$param = ''; + if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'preunlettering' && $massaction != 'predeletebookkeepingwriting') { $massaction = ''; } @@ -242,10 +261,11 @@ if (empty($reshook)) { $search_credit = ''; $search_lettering_code = ''; $search_not_reconciled = ''; + $search_import_key = ''; + $toselect = array(); } // Must be after the remove filter action, before the export. - $param = ''; $filter = array(); if (!empty($search_date_start)) { @@ -261,12 +281,20 @@ if (empty($reshook)) { $param .= '&doc_datemonth='.GETPOST('doc_datemonth', 'int').'&doc_dateday='.GETPOST('doc_dateday', 'int').'&doc_dateyear='.GETPOST('doc_dateyear', 'int'); } if (!empty($search_accountancy_code_start)) { - $filter['t.numero_compte>='] = $search_accountancy_code_start; - $param .= '&search_accountancy_code_start='.urlencode($search_accountancy_code_start); + if ($type == 'sub') { + $filter['t.subledger_account>='] = $search_accountancy_code_start; + } else { + $filter['t.numero_compte>='] = $search_accountancy_code_start; + } + $param .= '&search_accountancy_code_start=' . urlencode($search_accountancy_code_start); } if (!empty($search_accountancy_code_end)) { - $filter['t.numero_compte<='] = $search_accountancy_code_end; - $param .= '&search_accountancy_code_end='.urlencode($search_accountancy_code_end); + if ($type == 'sub') { + $filter['t.subledger_account<='] = $search_accountancy_code_end; + } else { + $filter['t.numero_compte<='] = $search_accountancy_code_end; + } + $param .= '&search_accountancy_code_end=' . urlencode($search_accountancy_code_end); } if (!empty($search_label_account)) { $filter['t.label_compte'] = $search_label_account; @@ -326,61 +354,133 @@ if (empty($reshook)) { $filter['t.date_validated<='] = $search_date_validation_end; $param .= '&search_date_validation_endmonth='.$search_date_validation_endmonth.'&search_date_validation_endday='.$search_date_validation_endday.'&search_date_validation_endyear='.$search_date_validation_endyear; } -} + if (!empty($search_import_key)) { + $filter['t.import_key'] = $search_import_key; + $param .= '&search_import_key='.urlencode($search_import_key); + } -if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->supprimer) { - $import_key = GETPOST('importkey', 'alpha'); + // param with type of list + $url_param = substr($param, 1); // remove first "&" + if (!empty($type)) { + $param = '&type='.$type.$param; + } - if (!empty($import_key)) { - $result = $object->deleteByImportkey($import_key); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + //if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) { + // $delmonth = GETPOST('delmonth', 'int'); + // $delyear = GETPOST('delyear', 'int'); + // if ($delyear == -1) { + // $delyear = 0; + // } + // $deljournal = GETPOST('deljournal', 'alpha'); + // if ($deljournal == -1) { + // $deljournal = 0; + // } + // + // if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) { + // $result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0)); + // if ($result < 0) { + // setEventMessages($object->error, $object->errors, 'errors'); + // } else { + // setEventMessages("RecordDeleted", null, 'mesgs'); + // } + // + // // Make a redirect to avoid to launch the delete later after a back button + // header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : '')); + // exit; + // } else { + // setEventMessages("NoRecordDeleted", null, 'warnings'); + // } + //} + + // Mass actions + $objectclass = 'Bookkeeping'; + $objectlabel = 'Bookkeeping'; + $permissiontoread = $user->rights->societe->lire; + $permissiontodelete = $user->rights->societe->supprimer; + $permissiontoadd = $user->rights->societe->creer; + $uploaddir = $conf->societe->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; + + if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->rights->accounting->mouvements->supprimer) { + $nbok = 0; + foreach ($toselect as $toselectid) { + $result = $object->fetch($toselectid); + if ($result > 0 && (!isset($object->date_validation) || $object->date_validation === '')) { + $result = $object->deleteMvtNum($object->piece_num); + if ($result > 0) { + $nbok++; + } else { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + break; + } + } elseif ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + break; + } } - // Make a redirect to avoid to launch the delete later after a back button - header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : '')); - exit; - } -} -if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) { - $delmonth = GETPOST('delmonth', 'int'); - $delyear = GETPOST('delyear', 'int'); - if ($delyear == -1) { - $delyear = 0; - } - $deljournal = GETPOST('deljournal', 'alpha'); - if ($deljournal == -1) { - $deljournal = 0; - } - - if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) { - $result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0)); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - setEventMessages("RecordDeleted", null, 'mesgs'); + // Message for elements well deleted + if ($nbok > 1) { + setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs'); + } elseif ($nbok > 0) { + setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs'); + } elseif (!$error) { + setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs'); } - // Make a redirect to avoid to launch the delete later after a back button - header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : '')); - exit; - } else { - setEventMessages("NoRecordDeleted", null, 'warnings'); - } -} -if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->supprimer) { - $mvt_num = GETPOST('mvt_num', 'int'); - - if (!empty($mvt_num)) { - $result = $object->deleteMvtNum($mvt_num); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); + if (!$error) { + header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : '')); + exit; } + } - header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : '')); - exit; + // others mass actions + if (!$error && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) { + if ($massaction == 'lettering') { + $lettering = new Lettering($db); + $nb_lettering = $lettering->bookkeepingLetteringAll($toselect); + if ($nb_lettering < 0) { + setEventMessages('', $lettering->errors, 'errors'); + $error++; + $nb_lettering = max(0, abs($nb_lettering) - 2); + } elseif ($nb_lettering == 0) { + $nb_lettering = 0; + setEventMessages($langs->trans('AccountancyNoLetteringModified'), array(), 'mesgs'); + } + if ($nb_lettering == 1) { + setEventMessages($langs->trans('AccountancyOneLetteringModifiedSuccessfully'), array(), 'mesgs'); + } elseif ($nb_lettering > 1) { + setEventMessages($langs->trans('AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(), 'mesgs'); + } + + if (!$error) { + header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param); + exit(); + } + } elseif ($action == 'unlettering' && $confirm == "yes") { + $lettering = new Lettering($db); + $nb_lettering = $lettering->bookkeepingLetteringAll($toselect, true); + if ($nb_lettering < 0) { + setEventMessages('', $lettering->errors, 'errors'); + $error++; + $nb_lettering = max(0, abs($nb_lettering) - 2); + } elseif ($nb_lettering == 0) { + $nb_lettering = 0; + setEventMessages($langs->trans('AccountancyNoUnletteringModified'), array(), 'mesgs'); + } + if ($nb_lettering == 1) { + setEventMessages($langs->trans('AccountancyOneUnletteringModifiedSuccessfully'), array(), 'mesgs'); + } elseif ($nb_lettering > 1) { + setEventMessages($langs->trans('AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(), 'mesgs'); + } + + if (!$error) { + header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param); + exit(); + } + } } } @@ -394,73 +494,102 @@ $formfile = new FormFile($db); $formother = new FormOther($db); $form = new Form($db); -$title_page = $langs->trans("Operations").' - '.$langs->trans("VueByAccountAccounting").' ('.$langs->trans("Bookkeeping").')'; +$title_page = $langs->trans("Operations").' - '.$langs->trans("VueByAccountAccounting").' ('; +if ($type == 'sub') { + $title_page .= $langs->trans("BookkeepingSubAccount"); +} else { + $title_page .= $langs->trans("Bookkeeping"); +} +$title_page .= ')'; llxHeader('', $title_page); // List $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter); + if ($type == 'sub') { + $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter, 'AND', 1); + } else { + $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter); + } + if ($nbtotalofrecords < 0) { setEventMessages($object->error, $object->errors, 'errors'); } } -$result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter); +if ($type == 'sub') { + $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter, 'AND', 1); +} else { + $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter); +} if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } +$arrayofselected = is_array($toselect) ? $toselect : array(); + $num = count($object->lines); -if ($action == 'delmouv') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?mvt_num='.GETPOST('mvt_num'), $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1); - print $formconfirm; +///if ($action == 'delbookkeepingyear') { +// $form_question = array(); +// $delyear = GETPOST('delyear', 'int'); +// $deljournal = GETPOST('deljournal', 'alpha'); +// +// if (empty($delyear)) { +// $delyear = dol_print_date(dol_now(), '%Y'); +// } +// $month_array = array(); +// for ($i = 1; $i <= 12; $i++) { +// $month_array[$i] = $langs->trans("Month".sprintf("%02d", $i)); +// } +// $year_array = $formaccounting->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array'); +// $journal_array = $formaccounting->select_journal($deljournal, 'deljournal', '', 1, 1, 1, '', 0, 1); +// +// $form_question['delmonth'] = array( +// 'name' => 'delmonth', +// 'type' => 'select', +// 'label' => $langs->trans('DelMonth'), +// 'values' => $month_array, +// 'default' => '' +// ); +// $form_question['delyear'] = array( +// 'name' => 'delyear', +// 'type' => 'select', +// 'label' => $langs->trans('DelYear'), +// 'values' => $year_array, +// 'default' => $delyear +// ); +// $form_question['deljournal'] = array( +// 'name' => 'deljournal', +// 'type' => 'other', // We don't use select here, the journal_array is already a select html component +// 'label' => $langs->trans('DelJournal'), +// 'value' => $journal_array, +// 'default' => $deljournal +// ); +// +// $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'delbookkeepingyearconfirm', $form_question, '', 1, 300); +//} + +// Print form confirm +$formconfirm = ''; +print $formconfirm; + +// List of mass actions available +$arrayofmassactions = array(); +if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) { + $arrayofmassactions['lettering'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('Lettering'); + $arrayofmassactions['preunlettering'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('Unlettering'); } -if ($action == 'delbookkeepingyear') { - $form_question = array(); - $delyear = GETPOST('delyear', 'int'); - $deljournal = GETPOST('deljournal', 'alpha'); - - if (empty($delyear)) { - $delyear = dol_print_date(dol_now(), '%Y'); - } - $month_array = array(); - for ($i = 1; $i <= 12; $i++) { - $month_array[$i] = $langs->trans("Month".sprintf("%02d", $i)); - } - $year_array = $formaccounting->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array'); - $journal_array = $formaccounting->select_journal($deljournal, 'deljournal', '', 1, 1, 1, '', 0, 1); - - $form_question['delmonth'] = array( - 'name' => 'delmonth', - 'type' => 'select', - 'label' => $langs->trans('DelMonth'), - 'values' => $month_array, - 'default' => '' - ); - $form_question['delyear'] = array( - 'name' => 'delyear', - 'type' => 'select', - 'label' => $langs->trans('DelYear'), - 'values' => $year_array, - 'default' => $delyear - ); - $form_question['deljournal'] = array( - 'name' => 'deljournal', - 'type' => 'other', // We don't use select here, the journal_array is already a select html component - 'label' => $langs->trans('DelJournal'), - 'value' => $journal_array, - 'default' => $deljournal - ); - - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'delbookkeepingyearconfirm', $form_question, '', 1, 300); - print $formconfirm; +if ($user->rights->accounting->mouvements->supprimer) { + $arrayofmassactions['predeletebookkeepingwriting'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } - +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('preunlettering', 'predeletebookkeepingwriting'))) { + $arrayofmassactions = array(); +} +$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions); print '
'; print ''; @@ -469,15 +598,22 @@ if ($optioncss != '') { print ''; } print ''; +print ''; print ''; print ''; +print ''; $parameters = array(); $reshook = $hookmanager->executeHooks('addMoreActionsButtonsList', $parameters, $object, $action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { $newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbysubaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly')); + if ($type == 'sub') { + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly')); + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); + } else { + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly')); + } $newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create'); } @@ -488,11 +624,29 @@ if ($limit > 0 && $limit != $conf->liste_limit) { $param .= '&limit='.urlencode($limit); } -print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1); +print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1); + +if ($massaction == 'preunlettering') { + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnlettering"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unlettering", null, '', 0, 200, 500, 1); +} elseif ($massaction == 'predeletebookkeepingwriting') { + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeleteBookkeepingWriting"), $langs->trans("ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)), "deletebookkeepingwriting", null, '', 0, 200, 500, 1); +} +//DeleteMvt=Supprimer des lignes d'opérations de la comptabilité +//DelMonth=Mois à effacer +//DelYear=Année à supprimer +//DelJournal=Journal à supprimer +//ConfirmDeleteMvt=Cette action supprime les lignes des opérations pour l'année/mois et/ou pour le journal sélectionné (au moins un critère est requis). Vous devrez utiliser de nouveau la fonctionnalité '%s' pour retrouver vos écritures dans la comptabilité. +//ConfirmDeleteMvtPartial=Cette action supprime l'écriture de la comptabilité (toutes les lignes opérations liées à une même écriture seront effacées). + +//$topicmail = "Information"; +//$modelmail = "accountingbookkeeping"; +//$objecttmp = new BookKeeping($db); +//$trackid = 'bk'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields -if ($massactionbutton) { +if ($massactionbutton && $contextpage != 'poslist') { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); } @@ -503,15 +657,28 @@ if (preg_match('/^asc/i', $sortorder)) { $sortorder = "desc"; } +// Warning to explain why list of record is not consistent with the other list view (missing a lot of lines) +if ($type == 'sub') { + print info_admin($langs->trans("WarningRecordWithoutSubledgerAreExcluded")); +} + $moreforfilter = ''; // Accountancy account $moreforfilter .= '
'; $moreforfilter .= $langs->trans('AccountAccounting').': '; $moreforfilter .= '
'; -$moreforfilter .= $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', $langs->trans('From'), array(), 1, 1, 'maxwidth200'); +if ($type == 'sub') { + $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start, 'search_accountancy_code_start', $langs->trans('From'), 'maxwidth200'); +} else { + $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', $langs->trans('From'), array(), 1, 1, 'maxwidth200'); +} $moreforfilter .= ' '; -$moreforfilter .= $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', $langs->trans('to'), array(), 1, 1, 'maxwidth200'); +if ($type == 'sub') { + $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end, 'search_accountancy_code_end', $langs->trans('to'), 'maxwidth200'); +} else { + $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', $langs->trans('to'), array(), 1, 1, 'maxwidth200'); +} $moreforfilter .= '
'; $moreforfilter .= '
'; @@ -599,6 +766,11 @@ if (!empty($arrayfields['t.date_validated']['checked'])) { print ''; print '
'; + print ''; + print '
'.$langs->trans("TotalForAccount").' '.length_accountg($displayed_account_number).':' . $langs->trans("TotalForAccount") . ' ' . length_accounta($displayed_account_number) . ':' . $langs->trans("TotalForAccount") . ' ' . length_accountg($displayed_account_number) . ':'.price($sous_total_debit).''.price($sous_total_credit).'
'; - if ($line->numero_compte != "" && $line->numero_compte != '-1') { - print length_accountg($line->numero_compte).' : '.$object->get_compte_desc($line->numero_compte); + print ''; + if ($type == 'sub') { + if ($line->subledger_account != "" && $line->subledger_account != '-1') { + print $line->subledger_label . ' : ' . length_accounta($line->subledger_account); + } else { + // Should not happen: subledger account must be null or a non empty value + print '' . $langs->trans("Unknown"); + if ($line->subledger_label) { + print ' (' . $line->subledger_label . ')'; + $htmltext = 'EmptyStringForSubledgerAccountButSubledgerLabelDefined'; + } else { + $htmltext = 'EmptyStringForSubledgerAccountAndSubledgerLabel'; + } + print $form->textwithpicto('', $htmltext); + print ''; + } } else { - print ''.$langs->trans("Unknown").''; + if ($line->numero_compte != "" && $line->numero_compte != '-1') { + print length_accountg($line->numero_compte) . ' : ' . $object->get_compte_desc($line->numero_compte); + } else { + print '' . $langs->trans("Unknown") . ''; + } } print '
'.$line->import_key."'; - if (empty($line->date_export) && empty($line->date_validation)) { - if ($user->rights->accounting->mouvements->creer) { - print '' . img_edit() . ''; - } - } - if (empty($line->date_validation)) { - if ($user->rights->accounting->mouvements->supprimer) { - print ''.img_delete().''; + if (($massactionbutton || $massaction) && $contextpage != 'poslist') { // 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($line->id, $arrayofselected)) { + $selected = 1; } + print ''; } print '
"; print '
'; // TODO Replace this with mass delete action -if ($user->rights->accounting->mouvements->supprimer_tous) { - print '
'."\n"; - print ''.$langs->trans("DeleteMvt").''; - print '
'; -} +//if ($user->rights->accounting->mouvements->supprimer_tous) { +// print '
'."\n"; +// print ''.$langs->trans("DeleteMvt").''; +// print '
'; +//} print ''; diff --git a/htdocs/accountancy/bookkeeping/listbysubaccount.php b/htdocs/accountancy/bookkeeping/listbysubaccount.php deleted file mode 100644 index c6fb95d5ab7..00000000000 --- a/htdocs/accountancy/bookkeeping/listbysubaccount.php +++ /dev/null @@ -1,979 +0,0 @@ - - * Copyright (C) 2013-2016 Olivier Geffroy - * Copyright (C) 2013-2020 Florian Henry - * Copyright (C) 2013-2021 Alexandre Spangaro - * Copyright (C) 2018-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 . - */ - -/** - * \file htdocs/accountancy/bookkeeping/listbysubaccount.php - * \ingroup Accountancy (Double entries) - * \brief List operation of ledger ordered by subaccount number - */ - -require '../../main.inc.php'; - -require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; -require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.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/lib/date.lib.php'; - -// Load translation files required by the page -$langs->loadLangs(array("accountancy", "compta")); - -$action = GETPOST('action', 'aZ09'); -$search_date_startyear = GETPOST('search_date_startyear', 'int'); -$search_date_startmonth = GETPOST('search_date_startmonth', 'int'); -$search_date_startday = GETPOST('search_date_startday', 'int'); -$search_date_endyear = GETPOST('search_date_endyear', 'int'); -$search_date_endmonth = GETPOST('search_date_endmonth', 'int'); -$search_date_endday = GETPOST('search_date_endday', 'int'); -$search_date_start = dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear); -$search_date_end = dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear); -$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int')); -$search_date_export_startyear = GETPOST('search_date_export_startyear', 'int'); -$search_date_export_startmonth = GETPOST('search_date_export_startmonth', 'int'); -$search_date_export_startday = GETPOST('search_date_export_startday', 'int'); -$search_date_export_endyear = GETPOST('search_date_export_endyear', 'int'); -$search_date_export_endmonth = GETPOST('search_date_export_endmonth', 'int'); -$search_date_export_endday = GETPOST('search_date_export_endday', 'int'); -$search_date_export_start = dol_mktime(0, 0, 0, $search_date_export_startmonth, $search_date_export_startday, $search_date_export_startyear); -$search_date_export_end = dol_mktime(23, 59, 59, $search_date_export_endmonth, $search_date_export_endday, $search_date_export_endyear); -$search_date_validation_startyear = GETPOST('search_date_validation_startyear', 'int'); -$search_date_validation_startmonth = GETPOST('search_date_validation_startmonth', 'int'); -$search_date_validation_startday = GETPOST('search_date_validation_startday', 'int'); -$search_date_validation_endyear = GETPOST('search_date_validation_endyear', 'int'); -$search_date_validation_endmonth = GETPOST('search_date_validation_endmonth', 'int'); -$search_date_validation_endday = GETPOST('search_date_validation_endday', 'int'); -$search_date_validation_start = dol_mktime(0, 0, 0, $search_date_validation_startmonth, $search_date_validation_startday, $search_date_validation_startyear); -$search_date_validation_end = dol_mktime(23, 59, 59, $search_date_validation_endmonth, $search_date_validation_endday, $search_date_validation_endyear); - -$search_accountancy_code = GETPOST("search_accountancy_code"); -$search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha'); -if ($search_accountancy_code_start == - 1) { - $search_accountancy_code_start = ''; -} -$search_accountancy_code_end = GETPOST('search_accountancy_code_end', 'alpha'); -if ($search_accountancy_code_end == - 1) { - $search_accountancy_code_end = ''; -} -$search_doc_ref = GETPOST('search_doc_ref', 'alpha'); -$search_label_operation = GETPOST('search_label_operation', 'alpha'); -$search_mvt_num = GETPOST('search_mvt_num', 'int'); -$search_direction = GETPOST('search_direction', 'alpha'); -$search_ledger_code = GETPOST('search_ledger_code', 'array'); -$search_debit = GETPOST('search_debit', 'alpha'); -$search_credit = GETPOST('search_credit', 'alpha'); -$search_lettering_code = GETPOST('search_lettering_code', 'alpha'); -$search_not_reconciled = GETPOST('search_not_reconciled', 'alpha'); - -if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) { - $action = 'delbookkeepingyear'; -} - -// Load variable for pagination -$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION); -$sortfield = GETPOST('sortfield', 'aZ09comma'); -$sortorder = GETPOST('sortorder', 'aZ09comma'); -$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -if (empty($page) || $page < 0) { - $page = 0; -} -$offset = $limit * $page; -$pageprev = $page - 1; -$pagenext = $page + 1; -if ($sortorder == "") { - $sortorder = "ASC"; -} -if ($sortfield == "") { - $sortfield = "t.doc_date,t.rowid"; -} - -// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$object = new BookKeeping($db); -$formfile = new FormFile($db); -$hookmanager->initHooks(array('bookkeepingbysubaccountlist')); - -$formaccounting = new FormAccounting($db); -$form = new Form($db); - -if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET('search_date_startday') && !GETPOSTISSET('search_date_startmonth') && !GETPOSTISSET('search_date_starthour')) { - $sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear "; - $sql .= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'"; - $sql .= $db->plimit(1); - $res = $db->query($sql); - - if ($res->num_rows > 0) { - $fiscalYear = $db->fetch_object($res); - $search_date_start = strtotime($fiscalYear->date_start); - $search_date_end = strtotime($fiscalYear->date_end); - } else { - $month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1); - $year_start = dol_print_date(dol_now(), '%Y'); - if (dol_print_date(dol_now(), '%m') < $month_start) { - $year_start--; // If current month is lower that starting fiscal month, we start last year - } - $year_end = $year_start + 1; - $month_end = $month_start - 1; - if ($month_end < 1) { - $month_end = 12; - $year_end--; - } - $search_date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start); - $search_date_end = dol_get_last_day($year_end, $month_end); - } -} - -$arrayfields = array( - // 't.subledger_account'=>array('label'=>$langs->trans("SubledgerAccount"), 'checked'=>1), - 't.piece_num'=>array('label'=>$langs->trans("TransactionNumShort"), 'checked'=>1), - 't.code_journal'=>array('label'=>$langs->trans("Codejournal"), 'checked'=>1), - 't.doc_date'=>array('label'=>$langs->trans("Docdate"), 'checked'=>1), - 't.doc_ref'=>array('label'=>$langs->trans("Piece"), 'checked'=>1), - 't.label_operation'=>array('label'=>$langs->trans("Label"), 'checked'=>1), - 't.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1), - 't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1), - 't.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1), - 't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1), - 't.date_validated'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1), -); - -if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) { - unset($arrayfields['t.lettering_code']); -} - -if ($search_date_start && empty($search_date_startyear)) { - $tmparray = dol_getdate($search_date_start); - $search_date_startyear = $tmparray['year']; - $search_date_startmonth = $tmparray['mon']; - $search_date_startday = $tmparray['mday']; -} -if ($search_date_end && empty($search_date_endyear)) { - $tmparray = dol_getdate($search_date_end); - $search_date_endyear = $tmparray['year']; - $search_date_endmonth = $tmparray['mon']; - $search_date_endday = $tmparray['mday']; -} - -if (empty($conf->accounting->enabled)) { - accessforbidden(); -} -if ($user->socid > 0) { - accessforbidden(); -} -if (empty($user->rights->accounting->mouvements->lire)) { - accessforbidden(); -} - - -/* - * Action - */ - -if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; -} -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { - $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)) { - include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; - - 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_doc_date = ''; - $search_accountancy_code = ''; - $search_accountancy_code_start = ''; - $search_accountancy_code_end = ''; - $search_label_account = ''; - $search_doc_ref = ''; - $search_label_operation = ''; - $search_mvt_num = ''; - $search_direction = ''; - $search_ledger_code = array(); - $search_date_start = ''; - $search_date_end = ''; - $search_date_startyear = ''; - $search_date_startmonth = ''; - $search_date_startday = ''; - $search_date_endyear = ''; - $search_date_endmonth = ''; - $search_date_endday = ''; - $search_date_export_start = ''; - $search_date_export_end = ''; - $search_date_export_startyear = ''; - $search_date_export_startmonth = ''; - $search_date_export_startday = ''; - $search_date_export_endyear = ''; - $search_date_export_endmonth = ''; - $search_date_export_endday = ''; - $search_date_validation_start = ''; - $search_date_validation_end = ''; - $search_date_validation_startyear = ''; - $search_date_validation_startmonth = ''; - $search_date_validation_startday = ''; - $search_date_validation_endyear = ''; - $search_date_validation_endmonth = ''; - $search_date_validation_endday = ''; - $search_debit = ''; - $search_credit = ''; - $search_lettering_code = ''; - $search_not_reconciled = ''; - } - - // Must be after the remove filter action, before the export. - $param = ''; - $filter = array(); - - if (!empty($search_date_start)) { - $filter['t.doc_date>='] = $search_date_start; - $param .= '&search_date_startmonth='.$search_date_startmonth.'&search_date_startday='.$search_date_startday.'&search_date_startyear='.$search_date_startyear; - } - if (!empty($search_date_end)) { - $filter['t.doc_date<='] = $search_date_end; - $param .= '&search_date_endmonth='.$search_date_endmonth.'&search_date_endday='.$search_date_endday.'&search_date_endyear='.$search_date_endyear; - } - if (!empty($search_doc_date)) { - $filter['t.doc_date'] = $search_doc_date; - $param .= '&doc_datemonth='.GETPOST('doc_datemonth', 'int').'&doc_dateday='.GETPOST('doc_dateday', 'int').'&doc_dateyear='.GETPOST('doc_dateyear', 'int'); - } - if (!empty($search_accountancy_code_start)) { - $filter['t.subledger_account>='] = $search_accountancy_code_start; - $param .= '&search_accountancy_code_start='.urlencode($search_accountancy_code_start); - } - if (!empty($search_accountancy_code_end)) { - $filter['t.subledger_account<='] = $search_accountancy_code_end; - $param .= '&search_accountancy_code_end='.urlencode($search_accountancy_code_end); - } - if (!empty($search_label_account)) { - $filter['t.label_compte'] = $search_label_account; - $param .= '&search_label_compte='.urlencode($search_label_account); - } - if (!empty($search_mvt_num)) { - $filter['t.piece_num'] = $search_mvt_num; - $param .= '&search_mvt_num='.urlencode($search_mvt_num); - } - if (!empty($search_doc_ref)) { - $filter['t.doc_ref'] = $search_doc_ref; - $param .= '&search_doc_ref='.urlencode($search_doc_ref); - } - if (!empty($search_label_operation)) { - $filter['t.label_operation'] = $search_label_operation; - $param .= '&search_label_operation='.urlencode($search_label_operation); - } - if (!empty($search_direction)) { - $filter['t.sens'] = $search_direction; - $param .= '&search_direction='.urlencode($search_direction); - } - if (!empty($search_ledger_code)) { - $filter['t.code_journal'] = $search_ledger_code; - foreach ($search_ledger_code as $code) { - $param .= '&search_ledger_code[]='.urlencode($code); - } - } - if (!empty($search_debit)) { - $filter['t.debit'] = $search_debit; - $param .= '&search_debit='.urlencode($search_debit); - } - if (!empty($search_credit)) { - $filter['t.credit'] = $search_credit; - $param .= '&search_credit='.urlencode($search_credit); - } - if (!empty($search_lettering_code)) { - $filter['t.lettering_code'] = $search_lettering_code; - $param .= '&search_lettering_code='.urlencode($search_lettering_code); - } - if (!empty($search_not_reconciled)) { - $filter['t.reconciled_option'] = $search_not_reconciled; - $param .= '&search_not_reconciled='.urlencode($search_not_reconciled); - } - if (!empty($search_date_export_start)) { - $filter['t.date_export>='] = $search_date_export_start; - $param .= '&search_date_export_startmonth='.$search_date_export_startmonth.'&search_date_export_startday='.$search_date_export_startday.'&search_date_export_startyear='.$search_date_export_startyear; - } - if (!empty($search_date_export_end)) { - $filter['t.date_export<='] = $search_date_export_end; - $param .= '&search_date_export_endmonth='.$search_date_export_endmonth.'&search_date_export_endday='.$search_date_export_endday.'&search_date_export_endyear='.$search_date_export_endyear; - } - if (!empty($search_date_validation_start)) { - $filter['t.date_validated>='] = $search_date_validation_start; - $param .= '&search_date_validation_startmonth='.$search_date_validation_startmonth.'&search_date_validation_startday='.$search_date_validation_startday.'&search_date_validation_startyear='.$search_date_validation_startyear; - } - if (!empty($search_date_validation_end)) { - $filter['t.date_validated<='] = $search_date_validation_end; - $param .= '&search_date_validation_endmonth='.$search_date_validation_endmonth.'&search_date_validation_endday='.$search_date_validation_endday.'&search_date_validation_endyear='.$search_date_validation_endyear; - } -} - -if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->supprimer) { - $import_key = GETPOST('importkey', 'alpha'); - - if (!empty($import_key)) { - $result = $object->deleteByImportkey($import_key); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } - - // Make a redirect to avoid to launch the delete later after a back button - header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : '')); - exit; - } -} -if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) { - $delmonth = GETPOST('delmonth', 'int'); - $delyear = GETPOST('delyear', 'int'); - if ($delyear == -1) { - $delyear = 0; - } - $deljournal = GETPOST('deljournal', 'alpha'); - if ($deljournal == -1) { - $deljournal = 0; - } - - if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) { - $result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0)); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - setEventMessages("RecordDeleted", null, 'mesgs'); - } - - // Make a redirect to avoid to launch the delete later after a back button - header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : '')); - exit; - } else { - setEventMessages("NoRecordDeleted", null, 'warnings'); - } -} -if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->supprimer) { - $mvt_num = GETPOST('mvt_num', 'int'); - - if (!empty($mvt_num)) { - $result = $object->deleteMvtNum($mvt_num); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); - } - - header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : '')); - exit; - } -} - - -/* - * View - */ - -$formaccounting = new FormAccounting($db); -$formfile = new FormFile($db); -$formother = new FormOther($db); -$form = new Form($db); - -$title_page = $langs->trans("Operations").' - '.$langs->trans("VueByAccountAccounting").' ('.$langs->trans("BookkeepingSubAccount").')'; - -llxHeader('', $title_page); - -// List -$nbtotalofrecords = ''; -if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter, 'AND', 1); - if ($nbtotalofrecords < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } -} - -$result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter, 'AND', 1); - -if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); -} - -$num = count($object->lines); - - -if ($action == 'delmouv') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?mvt_num='.GETPOST('mvt_num'), $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1); - print $formconfirm; -} -if ($action == 'delbookkeepingyear') { - $form_question = array(); - $delyear = GETPOST('delyear', 'int'); - $deljournal = GETPOST('deljournal', 'alpha'); - - if (empty($delyear)) { - $delyear = dol_print_date(dol_now(), '%Y'); - } - $month_array = array(); - for ($i = 1; $i <= 12; $i++) { - $month_array[$i] = $langs->trans("Month".sprintf("%02d", $i)); - } - $year_array = $formaccounting->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array'); - $journal_array = $formaccounting->select_journal($deljournal, 'deljournal', '', 1, 1, 1, '', 0, 1); - - $form_question['delmonth'] = array( - 'name' => 'delmonth', - 'type' => 'select', - 'label' => $langs->trans('DelMonth'), - 'values' => $month_array, - 'default' => '' - ); - $form_question['delyear'] = array( - 'name' => 'delyear', - 'type' => 'select', - 'label' => $langs->trans('DelYear'), - 'values' => $year_array, - 'default' => $delyear - ); - $form_question['deljournal'] = array( - 'name' => 'deljournal', - 'type' => 'other', // We don't use select here, the journal_array is already a select html component - 'label' => $langs->trans('DelJournal'), - 'value' => $journal_array, - 'default' => $deljournal - ); - - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'delbookkeepingyearconfirm', $form_question, '', 1, 300); - print $formconfirm; -} - - -print '
'; -print ''; -print ''; -if ($optioncss != '') { - print ''; -} -print ''; -print ''; -print ''; - -$parameters = array(); -$reshook = $hookmanager->executeHooks('addMoreActionsButtonsList', $parameters, $object, $action); // Note that $action and $object may have been modified by hook -if (empty($reshook)) { - $newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly')); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbysubaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); - $newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create'); -} - -if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { - $param .= '&contextpage='.urlencode($contextpage); -} -if ($limit > 0 && $limit != $conf->liste_limit) { - $param .= '&limit='.urlencode($limit); -} - -print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1); - -print info_admin($langs->trans("WarningRecordWithoutSubledgerAreExcluded")); - -$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); -} - -// Reverse sort order -if (preg_match('/^asc/i', $sortorder)) { - $sortorder = "asc"; -} else { - $sortorder = "desc"; -} - -$moreforfilter = ''; - -// Accountancy account -$moreforfilter .= '
'; -$moreforfilter .= $langs->trans('AccountAccounting').': '; -$moreforfilter .= '
'; -$moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start, 'search_accountancy_code_start', $langs->trans('From'), 'maxwidth200'); -$moreforfilter .= ' '; -$moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end, 'search_accountancy_code_end', $langs->trans('to'), 'maxwidth200'); -$moreforfilter .= '
'; -$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; -} - -print '
'; -print $moreforfilter; -print '
'; - -print '
'; -print ''; - -// Filters lines -print ''; - -// Movement number -if (!empty($arrayfields['t.piece_num']['checked'])) { - print ''; -} -// Code journal -if (!empty($arrayfields['t.code_journal']['checked'])) { - print ''; -} -// Date document -if (!empty($arrayfields['t.doc_date']['checked'])) { - print ''; -} -// Ref document -if (!empty($arrayfields['t.doc_ref']['checked'])) { - print ''; -} -// Label operation -if (!empty($arrayfields['t.label_operation']['checked'])) { - print ''; -} -// Debit -if (!empty($arrayfields['t.debit']['checked'])) { - print ''; -} -// Credit -if (!empty($arrayfields['t.credit']['checked'])) { - print ''; -} -// Lettering code -if (!empty($arrayfields['t.lettering_code']['checked'])) { - print ''; -} -// Date export -if (!empty($arrayfields['t.date_export']['checked'])) { - print ''; -} -// Date validation -if (!empty($arrayfields['t.date_validated']['checked'])) { - print ''; -} - -// 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; - -// Action column -print ''; -print "\n"; - -print ''; -if (!empty($arrayfields['t.piece_num']['checked'])) { - print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, '', $sortfield, $sortorder); -} -if (!empty($arrayfields['t.code_journal']['checked'])) { - print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['t.doc_date']['checked'])) { - print_liste_field_titre($arrayfields['t.doc_date']['label'], $_SERVER['PHP_SELF'], "t.doc_date", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['t.doc_ref']['checked'])) { - print_liste_field_titre($arrayfields['t.doc_ref']['label'], $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder); -} -if (!empty($arrayfields['t.label_operation']['checked'])) { - print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder); -} -if (!empty($arrayfields['t.debit']['checked'])) { - print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right '); -} -if (!empty($arrayfields['t.credit']['checked'])) { - print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right '); -} -if (!empty($arrayfields['t.lettering_code']['checked'])) { - print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['t.date_export']['checked'])) { - print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center '); -} -if (!empty($arrayfields['t.date_validated']['checked'])) { - print_liste_field_titre($arrayfields['t.date_validated']['label'], $_SERVER['PHP_SELF'], "t.date_validated", "", $param, '', $sortfield, $sortorder, 'center '); -} -// 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; -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); -print "\n"; - - -$total_debit = 0; -$total_credit = 0; -$sous_total_debit = 0; -$sous_total_credit = 0; -$displayed_account_number = null; // Start with undefined to be able to distinguish with empty - -// Loop on record -// -------------------------------------------------------------------- -$i = 0; -$totalarray = array(); -while ($i < min($num, $limit)) { - $line = $object->lines[$i]; - - $total_debit += $line->debit; - $total_credit += $line->credit; - - $accountg = length_accounta($line->subledger_account); - //if (empty($accountg)) $accountg = '-'; - - $colspan = 0; // colspan before field 'label of operation' - $colspanend = 3; // colspan after debit/credit - if (!empty($arrayfields['t.piece_num']['checked'])) { $colspan++; } - if (!empty($arrayfields['t.code_journal']['checked'])) { $colspan++; } - if (!empty($arrayfields['t.doc_date']['checked'])) { $colspan++; } - if (!empty($arrayfields['t.doc_ref']['checked'])) { $colspan++; } - if (!empty($arrayfields['t.label_operation']['checked'])) { $colspan++; } - if (!empty($arrayfields['t.date_export']['checked'])) { $colspanend++; } - if (!empty($arrayfields['t.date_validating']['checked'])) { $colspanend++; } - if (!empty($arrayfields['t.lettering_code']['checked'])) { $colspanend++; } - - // Is it a break ? - if ($accountg != $displayed_account_number || !isset($displayed_account_number)) { - // Show a subtotal by accounting account - if (isset($displayed_account_number)) { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - // Show balance of last shown account - $balance = $sous_total_debit - $sous_total_credit; - print ''; - print ''; - if ($balance > 0) { - print ''; - print ''; - } else { - print ''; - print ''; - } - print ''; - print ''; - } - - // Show the break account - print ''; - print ''; - print ''; - - $displayed_account_number = $accountg; - //if (empty($displayed_account_number)) $displayed_account_number='-'; - $sous_total_debit = 0; - $sous_total_credit = 0; - - $colspan = 0; - } - - print ''; - - // Piece number - if (!empty($arrayfields['t.piece_num']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Journal code - if (!empty($arrayfields['t.code_journal']['checked'])) { - $accountingjournal = new AccountingJournal($db); - $result = $accountingjournal->fetch('', $line->code_journal); - $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal); - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Document date - if (!empty($arrayfields['t.doc_date']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Document ref - if (!empty($arrayfields['t.doc_ref']['checked'])) { - if ($line->doc_type == 'customer_invoice') { - $langs->loadLangs(array('bills')); - - require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $objectstatic = new Facture($db); - $objectstatic->fetch($line->fk_doc); - //$modulepart = 'facture'; - - $filename = dol_sanitizeFileName($line->doc_ref); - $filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($line->doc_ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id; - $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); - } elseif ($line->doc_type == 'supplier_invoice') { - $langs->loadLangs(array('bills')); - - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; - $objectstatic = new FactureFournisseur($db); - $objectstatic->fetch($line->fk_doc); - //$modulepart = 'invoice_supplier'; - - $filename = dol_sanitizeFileName($line->doc_ref); - $filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref); - $subdir = get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref); - $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir); - } elseif ($line->doc_type == 'expense_report') { - $langs->loadLangs(array('trips')); - - require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; - $objectstatic = new ExpenseReport($db); - $objectstatic->fetch($line->fk_doc); - //$modulepart = 'expensereport'; - - $filename = dol_sanitizeFileName($line->doc_ref); - $filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($line->doc_ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id; - $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); - } elseif ($line->doc_type == 'bank') { - require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; - $objectstatic = new AccountLine($db); - $objectstatic->fetch($line->fk_doc); - } else { - // Other type - } - - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Label operation - if (!empty($arrayfields['t.label_operation']['checked'])) { - // Affiche un lien vers la facture client/fournisseur - $doc_ref = preg_replace('/\(.*\)/', '', $line->doc_ref); - print strlen(length_accounta($line->subledger_account)) == 0 ? '' : ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Amount debit - if (!empty($arrayfields['t.debit']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'totaldebit'; - } - $totalarray['val']['totaldebit'] += $line->debit; - } - - // Amount credit - if (!empty($arrayfields['t.credit']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['pos'][$totalarray['nbfield']] = 'totalcredit'; - } - $totalarray['val']['totalcredit'] += $line->credit; - } - - // Lettering code - if (!empty($arrayfields['t.lettering_code']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Exported operation date - if (!empty($arrayfields['t.date_export']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Validated operation date - if (!empty($arrayfields['t.date_validated']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - - // Fields from hook - $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj); - $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - // Action column - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - - // Comptabilise le sous-total - $sous_total_debit += $line->debit; - $sous_total_credit += $line->credit; - - print "\n"; - - $i++; -} - -if ($num > 0 && $colspan > 0) { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - // Show balance of last shown account - $balance = $sous_total_debit - $sous_total_credit; - print ''; - print ''; - if ($balance > 0) { - print ''; - print ''; - } else { - print ''; - print ''; - } - print ''; - print ''; -} - -// Show total line -include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; - - -print "
'; - print $formaccounting->multi_select_journal($search_ledger_code, 'search_ledger_code', 0, 1, 1, 1); - print ''; - print '
'; - print $form->selectDate($search_date_start, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From")); - print '
'; - print '
'; - print $form->selectDate($search_date_end, 'search_date_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to")); - print '
'; - print '
'; - print ''; - print '
'.$langs->trans("NotReconciled").''; - print '
'; - print '
'; - print $form->selectDate($search_date_export_start, 'search_date_export_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From")); - print '
'; - print '
'; - print $form->selectDate($search_date_export_end, 'search_date_export_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to")); - print '
'; - print '
'; - print '
'; - print $form->selectDate($search_date_validation_start, 'search_date_validation_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From")); - print '
'; - print '
'; - print $form->selectDate($search_date_validation_end, 'search_date_validation_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to")); - print '
'; - print '
'; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print '
'.$langs->trans("TotalForAccount").' '.length_accounta($displayed_account_number).':'.price($sous_total_debit).''.price($sous_total_credit).'
'.$langs->trans("Balance").':'; - print price($sous_total_debit - $sous_total_credit); - print ''; - print price($sous_total_credit - $sous_total_debit); - print '
'; - if ($line->subledger_account != "" && $line->subledger_account != '-1') { - print $line->subledger_label.' : '.length_accounta($line->subledger_account); - } else { - // Should not happen: subledger account must be null or a non empty value - print ''.$langs->trans("Unknown"); - if ($line->subledger_label) { - print ' ('.$line->subledger_label.')'; - $htmltext = 'EmptyStringForSubledgerAccountButSubledgerLabelDefined'; - } else { - $htmltext = 'EmptyStringForSubledgerAccountAndSubledgerLabel'; - } - print $form->textwithpicto('', $htmltext); - print ''; - } - print '
'; - $object->id = $line->id; - $object->piece_num = $line->piece_num; - print $object->getNomUrl(1, '', 0, '', 1); - print ''.$journaltoshow.''.dol_print_date($line->doc_date, 'day').''; - - print ''; - // Picto + Ref - print '
'; - - if ($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice' || $line->doc_type == 'expense_report') { - print $objectstatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1); - print $documentlink; - } elseif ($line->doc_type == 'bank') { - print $objectstatic->getNomUrl(1); - $bank_ref = strstr($line->doc_ref, '-'); - print " " . $bank_ref; - } else { - print $line->doc_ref; - } - print '
'; - - print "
'.$line->label_operation.''.$line->label_operation.'
('.length_accounta($line->subledger_account).')
'.($line->debit ? price($line->debit) : '').''.($line->credit ? price($line->credit) : '').''.$line->lettering_code.''.dol_print_date($line->date_export, 'dayhour').''.dol_print_date($line->date_validation, 'dayhour').''; - if (empty($line->date_export) && empty($line->date_validation)) { - if ($user->rights->accounting->mouvements->creer) { - print '' . img_edit() . ''; - } - } - if (empty($line->date_validation)) { - if ($user->rights->accounting->mouvements->supprimer) { - print ''.img_delete().''; - } - } - print '
'.$langs->trans("TotalForAccount").' '.$accountg.':'.price($sous_total_debit).''.price($sous_total_credit).'
'.$langs->trans("Balance").':'; - print price($sous_total_debit - $sous_total_credit); - print ''; - print price($sous_total_credit - $sous_total_debit); - print '
"; -print '
'; - -// TODO Replace this with mass delete action -if ($user->rights->accounting->mouvements->supprimer_tous) { - print '
'."\n"; - print ''.$langs->trans("DeleteMvt").''; - print '
'; -} - -print '
'; - -// End of page -llxFooter(); -$db->close(); diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php index 7657e997ff6..7ae48c749c2 100644 --- a/htdocs/accountancy/class/accountancycategory.class.php +++ b/htdocs/accountancy/class/accountancycategory.class.php @@ -785,12 +785,13 @@ class AccountancyCategory // extends CommonObject } /** - * Return list of custom groups that are active + * Return list of custom groups. * * @param int $categorytype -1=All, 0=Only non computed groups, 1=Only computed groups + * @param int $active 1= active, 0=not active * @return array|int Array of groups or -1 if error */ - public function getCats($categorytype = -1) + public function getCats($categorytype = -1, $active = 1) { global $conf, $mysoc; @@ -801,7 +802,7 @@ class AccountancyCategory // extends CommonObject $sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type, c.sens"; $sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c"; - $sql .= " WHERE c.active = 1"; + $sql .= " WHERE c.active = " . (int) $active; $sql .= " AND c.entity = ".$conf->entity; if ($categorytype >= 0) { $sql .= " AND c.category_type = 1"; diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 3c30200c130..e4af034b1f4 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -11,6 +11,7 @@ * Copyright (C) 2017-2019 Frédéric France * Copyright (C) 2017 André Schild * Copyright (C) 2020 Guillaume Alexandre + * Copyright (C) 2022 Joachim Kueter * * 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,6 +35,7 @@ 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/class/hookmanager.class.php'; /** @@ -93,11 +95,13 @@ class AccountancyExport */ public function __construct(DoliDB $db) { - global $conf; + global $conf, $hookmanager; $this->db = $db; $this->separator = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; $this->end_line = empty($conf->global->ACCOUNTING_EXPORT_ENDLINE) ? "\n" : ($conf->global->ACCOUNTING_EXPORT_ENDLINE == 1 ? "\n" : "\r\n"); + + $hookmanager->initHooks(array('accountancyexport')); } /** @@ -105,9 +109,9 @@ class AccountancyExport * * @return array of type */ - public static function getType() + public function getType() { - global $langs; + global $langs, $hookmanager; $listofexporttypes = array( self::$EXPORT_TYPE_CONFIGURABLE => $langs->trans('Modelcsv_configurable'), @@ -132,6 +136,10 @@ class AccountancyExport self::$EXPORT_TYPE_ISUITEEXPERT => 'Export iSuite Expert', ); + // allow modules to define export formats + $parameters = array(); + $reshook = $hookmanager->executeHooks('getType', $parameters, $listofexporttypes); + ksort($listofexporttypes, SORT_NUMERIC); return $listofexporttypes; @@ -168,7 +176,12 @@ class AccountancyExport self::$EXPORT_TYPE_ISUITEEXPERT => 'isuiteexpert', ); - return $formatcode[$type]; + global $hookmanager; + $code = $formatcode[$type]; + $parameters = array('type' => $type); + $reshook = $hookmanager->executeHooks('getFormatCode', $parameters, $code); + + return $code; } /** @@ -176,11 +189,11 @@ class AccountancyExport * * @return array of type */ - public static function getTypeConfig() + public function getTypeConfig() { global $conf, $langs; - return array( + $exporttypes = array( 'param' => array( self::$EXPORT_TYPE_CONFIGURABLE => array( 'label' => $langs->trans('Modelcsv_configurable'), @@ -265,6 +278,11 @@ class AccountancyExport 'txt' => $langs->trans("txt") ), ); + + global $hookmanager; + $parameters = array(); + $reshook = $hookmanager->executeHooks('getTypeConfig', $parameters, $exporttypes); + return $exporttypes; } @@ -350,7 +368,13 @@ class AccountancyExport $this->exportiSuiteExpert($TData); break; default: - $this->errors[] = $langs->trans('accountancy_error_modelnotfound'); + global $hookmanager; + $parameters = array('format' => $formatexportset); + // file contents will be created in the hooked function via print + $reshook = $hookmanager->executeHooks('export', $parameters, $TData); + if ($reshook != 1) { + $this->errors[] = $langs->trans('accountancy_error_modelnotfound'); + } break; } } @@ -980,6 +1004,8 @@ class AccountancyExport print dol_string_unaccent($date_creation) . $separator; // FEC:EcritureLib + // Clean label operation to prevent problem on export with tab separator & other character + $line->label_operation = str_replace(array("\t", "\n", "\r"), " ", $line->label_operation); print dol_string_unaccent($line->label_operation) . $separator; // FEC:Debit @@ -1007,6 +1033,8 @@ class AccountancyExport print $date_limit_payment . $separator; // FEC_suppl:NumFacture + // Clean ref invoice to prevent problem on export with tab separator & other character + $refInvoice = str_replace(array("\t", "\n", "\r"), " ", $refInvoice); print dol_trunc(self::toAnsi($refInvoice), 17, 'right', 'UTF-8', 1); print $end_line; @@ -1107,6 +1135,8 @@ class AccountancyExport print $date_document . $separator; // FEC:EcritureLib + // Clean label operation to prevent problem on export with tab separator & other character + $line->label_operation = str_replace(array("\t", "\n", "\r"), " ", $line->label_operation); print dol_string_unaccent($line->label_operation) . $separator; // FEC:Debit @@ -1134,6 +1164,8 @@ class AccountancyExport print $date_limit_payment . $separator; // FEC_suppl:NumFacture + // Clean ref invoice to prevent problem on export with tab separator & other character + $refInvoice = str_replace(array("\t", "\n", "\r"), " ", $refInvoice); print dol_trunc(self::toAnsi($refInvoice), 17, 'right', 'UTF-8', 1); @@ -1315,7 +1347,7 @@ class AccountancyExport } print $nature_piece.$separator; // RACI - // if (! empty($line->subledger_account)) { + // if (!empty($line->subledger_account)) { // if ($line->doc_type == 'supplier_invoice') { // $racine_subledger_account = '40'; // } elseif ($line->doc_type == 'customer_invoice') { @@ -1578,7 +1610,7 @@ class AccountancyExport } print $nature_piece.$separator; // RACI - // if (! empty($line->subledger_account)) { + // if (!empty($line->subledger_account)) { // if ($line->doc_type == 'supplier_invoice') { // $racine_subledger_account = '40'; // } elseif ($line->doc_type == 'customer_invoice') { @@ -1712,6 +1744,8 @@ class AccountancyExport print self::trunc($line->label_compte, 60).$separator; //Account label print self::trunc($line->doc_ref, 20).$separator; //Piece + // Clean label operation to prevent problem on export with tab separator & other character + $line->label_operation = str_replace(array("\t", "\n", "\r"), " ", $line->label_operation); print self::trunc($line->label_operation, 60).$separator; //Operation label print price(abs($line->debit - $line->credit)).$separator; //Amount print $line->sens.$separator; //Direction diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index ac943180b58..bf487d47c2c 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -347,8 +347,8 @@ class AccountingAccount extends CommonObject /** * Update record * - * @param User $user Use making update - * @return int <0 if KO, >0 if OK + * @param User $user User making update + * @return int <0 if KO (-2 = duplicate), >0 if OK */ public function update($user) { @@ -378,6 +378,12 @@ class AccountingAccount extends CommonObject $this->db->commit(); return 1; } else { + if ($this->db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + $this->error = $this->db->lasterror(); + $this->db->rollback(); + return -2; + } + $this->error = $this->db->lasterror(); $this->db->rollback(); return -1; @@ -586,26 +592,19 @@ class AccountingAccount extends CommonObject $sql .= ' WHERE a.rowid = ' . ((int) $id); dol_syslog(get_class($this) . '::info sql=' . $sql); - $result = $this->db->query($sql); + $resql = $this->db->query($sql); - if ($result) { - if ($this->db->num_rows($result)) { - $obj = $this->db->fetch_object($result); + if ($resql) { + if ($this->db->num_rows($resql)) { + $obj = $this->db->fetch_object($resql); $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->db->free($result); + $this->db->free($resql); } else { dol_print_error($this->db); } @@ -733,7 +732,7 @@ class AccountingAccount extends CommonObject * @param FactureLigne|SupplierInvoiceLine $factureDet Facture Det * @param array $accountingAccount Array of Account account * @param string $type Customer / Supplier - * @return array Accounting accounts suggested + * @return array|int Accounting accounts suggested or < 0 if technical error. */ public function getAccountingCodeToBind(Societe $buyer, Societe $seller, Product $product, $facture, $factureDet, $accountingAccount = array(), $type = '') { @@ -741,13 +740,14 @@ class AccountingAccount extends CommonObject global $hookmanager; // Instantiate hooks for external modules - $hookmanager->initHooks(array('accoutancyBindingCalculation')); + $hookmanager->initHooks(array('accountancyBindingCalculation')); - // Execute hook accoutancyBindingCalculation + // Execute hook accountancyBindingCalculation $parameters = array('buyer' => $buyer, 'seller' => $seller, 'product' => $product, 'facture' => $facture, 'factureDet' => $factureDet ,'accountingAccount'=>$accountingAccount, $type); - $reshook = $hookmanager->executeHooks('accoutancyBindingCalculation', $parameters); // Note that $action and $object may have been modified by some hooks + $reshook = $hookmanager->executeHooks('accountancyBindingCalculation', $parameters); // Note that $action and $object may have been modified by some hooks if (empty($reshook)) { + $const_name = ''; if ($type == 'customer') { $const_name = "SOLD"; } elseif ($type == 'supplier') { @@ -863,14 +863,18 @@ class AccountingAccount extends CommonObject if (!empty($buyer->code_compta_product)) { $code_t = $buyer->code_compta_product; $suggestedid = $accountingAccount['thirdparty']; - $suggestedaccountingaccountfor = 'thridparty'; + $suggestedaccountingaccountfor = 'thirdparty'; } } // Manage Deposit if ($factureDet->desc == "(DEPOSIT)" || $facture->type == $facture::TYPE_DEPOSIT) { $accountdeposittoventilated = new self($this->db); - $result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1); + if ($type=='customer') { + $result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1); + } elseif ($type=='supplier') { + $result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT, 1); + } if ($result < 0) { return -1; } diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index d805838566f..9720399fb5e 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -281,7 +281,7 @@ class AccountingJournal extends CommonObject } $label_link = $this->code; - if ($withlabel) { + if ($withlabel && !empty($this->label)) { $label_link .= ' - '.($nourl ? '' : '').$langs->transnoentities($this->label).($nourl ? '' : ''); } @@ -429,7 +429,7 @@ class AccountingJournal extends CommonObject { global $conf, $langs; - if (empty($conf->asset->enabled)) { + if (!isModEnabled('asset')) { return array(); } @@ -867,7 +867,7 @@ class AccountingJournal extends CommonObject } } // - // if (!$error_for_line && !empty($conf->asset->enabled) && $this->nature == 1 && $bookkeeping->fk_doc > 0) { + // if (!$error_for_line && isModEnabled('asset') && $this->nature == 1 && $bookkeeping->fk_doc > 0) { // // Set last cumulative depreciation // require_once DOL_DOCUMENT_ROOT . '/asset/class/asset.class.php'; // $asset = new Asset($this->db); diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index a83a311010d..0b2a060d7a2 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2015-2017 Alexandre Spangaro + * Copyright (C) 2015-2022 Alexandre Spangaro * Copyright (C) 2015-2020 Florian Henry * Copyright (C) 2018-2020 Frédéric France * @@ -606,9 +606,13 @@ class BookKeeping extends CommonObject if (empty($this->credit)) { $this->credit = 0; } + if (empty($this->montant)) { + $this->montant = 0; + } $this->debit = price2num($this->debit, 'MT'); $this->credit = price2num($this->credit, 'MT'); + $this->montant = price2num($this->montant, 'MT'); $now = dol_now(); @@ -852,7 +856,8 @@ class BookKeeping extends CommonObject $sql .= " t.piece_num,"; $sql .= " t.date_creation,"; $sql .= " t.date_export,"; - $sql .= " t.date_validated as date_validation"; + $sql .= " t.date_validated as date_validation,"; + $sql .= " t.import_key"; // Manage filter $sqlwhere = array(); if (count($filter) > 0) { @@ -947,6 +952,7 @@ class BookKeeping extends CommonObject $line->date_creation = $this->db->jdate($obj->date_creation); $line->date_export = $this->db->jdate($obj->date_export); $line->date_validation = $this->db->jdate($obj->date_validation); + $line->import_key = $obj->import_key; $this->lines[] = $line; @@ -1117,14 +1123,13 @@ class BookKeeping extends CommonObject /** * Load object in memory from the database * - * @param string $sortorder Sort Order - * @param string $sortfield Sort field - * @param int $limit offset limit - * @param int $offset offset limit - * @param array $filter filter array - * @param string $filtermode filter mode (AND or OR) - * - * @return int <0 if KO, >0 if OK + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit offset limit + * @param int $offset offset limit + * @param array $filter filter array + * @param string $filtermode filter mode (AND or OR) + * @return int <0 if KO, >0 if OK */ public function fetchAllBalance($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') { @@ -1145,7 +1150,7 @@ class BookKeeping extends CommonObject foreach ($filter as $key => $value) { if ($key == 't.doc_date') { $sqlwhere[] = $key." = '".$this->db->idate($value)."'"; - } elseif ($key == 't.doc_date>=' || $key == 't.doc_date<=') { + } elseif ($key == 't.doc_date>=' || $key == 't.doc_date<=' || $key == 't.doc_date>' || $key == 't.doc_date<') { $sqlwhere[] = $key."'".$this->db->idate($value)."'"; } elseif ($key == 't.numero_compte>=' || $key == 't.numero_compte<=' || $key == 't.subledger_account>=' || $key == 't.subledger_account<=') { $sqlwhere[] = $key."'".$this->db->escape($value)."'"; @@ -1659,11 +1664,12 @@ class BookKeeping extends CommonObject $this->doc_date = $this->db->jdate($obj->doc_date); $this->doc_ref = $obj->doc_ref; $this->doc_type = $obj->doc_type; - $this->date_creation = $obj->date_creation; - $this->date_modification = $obj->date_modification; - $this->date_export = $obj->date_export; - $this->date_validation = $obj->date_validated; - $this->date_validation = $obj->date_validation; + $this->date_creation = $this->db->jdate($obj->date_creation); + $this->date_modification = $this->db->jdate($obj->date_modification); + if ($mode != "_tmp") { + $this->date_export = $this->db->jdate($obj->date_export); + } + $this->date_validation = $this->db->jdate($obj->date_validation); } else { $this->error = "Error ".$this->db->lasterror(); dol_syslog(__METHOD__.$this->error, LOG_ERR); @@ -1759,7 +1765,9 @@ class BookKeeping extends CommonObject $line->piece_num = $obj->piece_num; $line->date_creation = $obj->date_creation; $line->date_modification = $obj->date_modification; - $line->date_export = $obj->date_export; + if ($mode != "_tmp") { + $line->date_export = $obj->date_export; + } $line->date_validation = $obj->date_validation; $this->linesmvt[] = $line; @@ -1841,8 +1849,8 @@ class BookKeeping extends CommonObject /** * Transform transaction * - * @param number $direction If 0 tmp => real, if 1 real => tmp - * @param string $piece_num Piece num + * @param number $direction If 0: tmp => real, if 1: real => tmp + * @param string $piece_num Piece num = Transaction ref * @return int int <0 if KO, >0 if OK */ public function transformTransaction($direction = 0, $piece_num = '') @@ -1860,57 +1868,82 @@ class BookKeeping extends CommonObject if ($next_piecenum < 0) { $error++; } - $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.' (doc_date, doc_type,'; - $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; - $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation)'; - $sql .= ' SELECT doc_date, doc_type,'; - $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; - $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, '.((int) $next_piecenum).", '".$this->db->idate($now)."'"; - $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); - $resql = $this->db->query($sql); - if (!$resql) { - $error++; - $this->errors[] = 'Error '.$this->db->lasterror(); - dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + + if (!$error) { + // Delete if there is an empty line + $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity)." AND numero_compte IS NULL AND debit = 0 AND credit = 0"; + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + } } - $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); - $resql = $this->db->query($sql); - if (!$resql) { - $error++; - $this->errors[] = 'Error '.$this->db->lasterror(); - dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + + if (!$error) { + $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.' (doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation)'; + $sql .= ' SELECT doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, '.((int) $next_piecenum).", '".$this->db->idate($now)."'"; + $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND numero_compte IS NOT NULL AND entity = ' .((int) $conf->entity); + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + } + } + + if (!$error) { + $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + } } } elseif ($direction == 1) { - $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); - $resql = $this->db->query($sql); - if (!$resql) { - $error++; - $this->errors[] = 'Error '.$this->db->lasterror(); - dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + if (!$error) { + $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + } } - $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.'_tmp (doc_date, doc_type,'; - $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; - $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; - $sql .= ' SELECT doc_date, doc_type,'; - $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; - $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num'; - $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); - $resql = $this->db->query($sql); - if (!$resql) { - $error++; - $this->errors[] = 'Error '.$this->db->lasterror(); - dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + + if (!$error) { + $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.'_tmp (doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; + $sql .= ' SELECT doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num'; + $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + } } - $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); - $resql = $this->db->query($sql); - if (!$resql) { - $error++; - $this->errors[] = 'Error '.$this->db->lasterror(); - dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + + if (!$error) { + $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.'_tmp WHERE piece_num = '.((int) $piece_num).' AND entity = ' .((int) $conf->entity); + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.join(',', $this->errors), LOG_ERR); + } } } if (!$error) { diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index f722a716b79..405a630942e 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -33,6 +33,12 @@ include_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; */ class Lettering extends BookKeeping { + /** + * @var BookKeeping[] Bookkeeping cached + */ + public static $bookkeeping_cached = array(); + + /** * letteringThirdparty * @@ -119,6 +125,7 @@ class Lettering extends BookKeeping $ids[$obj2->rowid] = $obj2->rowid; $ids_fact[] = $obj2->fact_id; } + $this->db->free($resql2); } else { $this->errors[] = $this->db->lasterror; return -1; @@ -146,6 +153,7 @@ class Lettering extends BookKeeping while ($obj2 = $this->db->fetch_object($resql2)) { $ids[$obj2->rowid] = $obj2->rowid; } + $this->db->free($resql2); } else { $this->errors[] = $this->db->lasterror; return -1; @@ -205,6 +213,7 @@ class Lettering extends BookKeeping while ($obj2 = $this->db->fetch_object($resql2)) { $ids[$obj2->rowid] = $obj2->rowid; } + $this->db->free($resql2); } else { $this->errors[] = $this->db->lasterror; return -1; @@ -216,6 +225,7 @@ class Lettering extends BookKeeping $result = $this->updateLettering($ids); } } + $this->db->free($resql); } if ($error) { foreach ($this->errors as $errmsg) { @@ -230,39 +240,55 @@ class Lettering extends BookKeeping /** * - * @param array $ids ids array - * @param boolean $notrigger no trigger - * @return number + * @param array $ids ids array + * @param boolean $notrigger no trigger + * @return int */ public function updateLettering($ids = array(), $notrigger = false) { $error = 0; $lettre = 'AAA'; - $sql = "SELECT DISTINCT lettering_code FROM ".MAIN_DB_PREFIX."accounting_bookkeeping WHERE "; - $sql .= " lettering_code != '' ORDER BY lettering_code DESC limit 1"; + $sql = "SELECT DISTINCT ab2.lettering_code"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping As ab"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url AS bu ON bu.fk_bank = ab.fk_doc"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url AS bu2 ON bu2.url_id = bu.url_id"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab2 ON ab2.fk_doc = bu2.fk_bank"; + $sql .= " WHERE ab.rowid IN (" . $this->db->sanitize(implode(',', $ids)) . ")"; + $sql .= " AND ab.doc_type = 'bank'"; + $sql .= " AND ab2.doc_type = 'bank'"; + $sql .= " AND bu.type = 'company'"; + $sql .= " AND bu2.type = 'company'"; + $sql .= " AND ab.subledger_account != ''"; + $sql .= " AND ab2.subledger_account != ''"; + $sql .= " AND ab.lettering_code IS NULL"; + $sql .= " AND ab2.lettering_code != ''"; + $sql .= " ORDER BY ab2.lettering_code DESC"; + $sql .= " LIMIT 1 "; - $result = $this->db->query($sql); - if ($result) { - $obj = $this->db->fetch_object($result); + $resqla = $this->db->query($sql); + if ($resqla) { + $obj = $this->db->fetch_object($resqla); $lettre = (empty($obj->lettering_code) ? 'AAA' : $obj->lettering_code); if (!empty($obj->lettering_code)) { $lettre++; } + $this->db->free($resqla); } else { $this->errors[] = 'Error'.$this->db->lasterror(); $error++; } $sql = "SELECT SUM(ABS(debit)) as deb, SUM(ABS(credit)) as cred FROM ".MAIN_DB_PREFIX."accounting_bookkeeping WHERE "; - $sql .= " rowid IN (".$this->db->sanitize(implode(',', $ids)).") AND date_validated IS NULL"; - $result = $this->db->query($sql); - if ($result) { - $obj = $this->db->fetch_object($result); + $sql .= " rowid IN (".$this->db->sanitize(implode(',', $ids)).") AND lettering_code IS NULL AND subledger_account != ''"; + $resqlb = $this->db->query($sql); + if ($resqlb) { + $obj = $this->db->fetch_object($resqlb); if (!(round(abs($obj->deb), 2) === round(abs($obj->cred), 2))) { $this->errors[] = 'Total not exacts '.round(abs($obj->deb), 2).' vs '.round(abs($obj->cred), 2); $error++; } + $this->db->free($resqlb); } else { $this->errors[] = 'Erreur sql'.$this->db->lasterror(); $error++; @@ -276,8 +302,7 @@ class Lettering extends BookKeeping $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET"; $sql .= " lettering_code='".$this->db->escape($lettre)."'"; $sql .= " , date_lettering = '".$this->db->idate($now)."'"; // todo correct date it's false - $sql .= " WHERE rowid IN (".$this->db->sanitize(implode(',', $ids)).") AND date_validated IS NULL "; - $this->db->begin(); + $sql .= " WHERE rowid IN (".$this->db->sanitize(implode(',', $ids)).") AND lettering_code IS NULL AND subledger_account != ''"; dol_syslog(get_class($this)."::update", LOG_DEBUG); $resql = $this->db->query($sql); @@ -293,11 +318,431 @@ class Lettering extends BookKeeping dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } - $this->db->rollback(); return -1 * $error; } else { - $this->db->commit(); return 1; } } + + /** + * + * @param array $ids ids array + * @param boolean $notrigger no trigger + * @return int + */ + public function deleteLettering($ids, $notrigger = false) + { + $error = 0; + + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET"; + $sql .= " lettering_code = NULL"; + $sql .= " , date_lettering = NULL"; + $sql .= " WHERE rowid IN (".$this->db->sanitize(implode(',', $ids)).")"; + $sql .= " AND subledger_account != ''"; + + dol_syslog(get_class($this)."::update", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $error++; + $this->errors[] = "Error ".$this->db->lasterror(); + } + + // Commit or rollback + if ($error) { + foreach ($this->errors as $errmsg) { + dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); + } + return -1 * $error; + } else { + return 1; + } + } + + /** + * Lettering bookkeeping lines all types + * + * @param array $bookkeeping_ids Lettering specific list of bookkeeping id + * @param bool $unlettering Do unlettering + * @return int <0 if error (nb lettered = result -1), 0 if noting to lettering, >0 if OK (nb lettered) + */ + public function bookkeepingLetteringAll($bookkeeping_ids, $unlettering = false) + { + dol_syslog(__METHOD__ . " - ", LOG_DEBUG); + + $error = 0; + $errors = array(); + $nb_lettering = 0; + + $result = $this->bookkeepingLettering($bookkeeping_ids, 'customer_invoice', $unlettering); + if ($result < 0) { + $error++; + $errors = array_merge($errors, $this->errors); + $nb_lettering += abs($result) - 2; + } else { + $nb_lettering += $result; + } + + $result = $this->bookkeepingLettering($bookkeeping_ids, 'supplier_invoice', $unlettering); + if ($result < 0) { + $error++; + $errors = array_merge($errors, $this->errors); + $nb_lettering += abs($result) - 2; + } else { + $nb_lettering += $result; + } + + if ($error) { + $this->errors = $errors; + return -2 - $nb_lettering; + } else { + return $nb_lettering; + } + } + + /** + * Lettering bookkeeping lines + * + * @param array $bookkeeping_ids Lettering specific list of bookkeeping id + * @param string $type Type of bookkeeping type to lettering ('customer_invoice' or 'supplier_invoice') + * @param bool $unlettering Do unlettering + * @return int <0 if error (nb lettered = result -1), 0 if noting to lettering, >0 if OK (nb lettered) + */ + public function bookkeepingLettering($bookkeeping_ids, $type = 'customer_invoice', $unlettering = false) + { + global $langs; + + $this->errors = array(); + + // Clean parameters + $bookkeeping_ids = is_array($bookkeeping_ids) ? $bookkeeping_ids : array(); + $type = trim($type); + + $error = 0; + $nb_lettering = 0; + $grouped_lines = $this->getLinkedLines($bookkeeping_ids, $type); + foreach ($grouped_lines as $lines) { + $group_error = 0; + $total = 0; + $do_it = !$unlettering; + $lettering_code = null; + $piece_num_lines = array(); + $bookkeeping_lines = array(); + foreach ($lines as $line_infos) { + $bookkeeping_lines[$line_infos['id']] = $line_infos['id']; + $piece_num_lines[$line_infos['piece_num']] = $line_infos['piece_num']; + $total += ($line_infos['credit'] > 0 ? $line_infos['credit'] : -$line_infos['debit']); + + // Check lettering code + if ($unlettering) { + if (isset($lettering_code) && $lettering_code != $line_infos['lettering_code']) { + $this->errors[] = $langs->trans('AccountancyErrorMismatchLetteringCode'); + $group_error++; + break; + } + if (!isset($lettering_code)) $lettering_code = (string) $line_infos['lettering_code']; + if (!empty($line_infos['lettering_code'])) $do_it = true; + } elseif (!empty($line_infos['lettering_code'])) $do_it = false; + } + + // Check balance amount + if (!$group_error && !$unlettering && price2num($total) != 0) { + $this->errors[] = $langs->trans('AccountancyErrorMismatchBalanceAmount', $total); + $group_error++; + } + + // Lettering/Unlettering the group of bookkeeping lines + if (!$group_error && $do_it) { + if ($unlettering) $result = $this->deleteLettering($bookkeeping_lines); + else $result = $this->updateLettering($bookkeeping_lines); + if ($result < 0) { + $group_error++; + } else { + $nb_lettering++; + } + } + + if ($group_error) { + $this->errors[] = $langs->trans('AccountancyErrorLetteringBookkeeping', implode(', ', $piece_num_lines)); + $error++; + } + } + + if ($error) { + return -2 - $nb_lettering; + } else { + return $nb_lettering; + } + } + + /** + * Lettering bookkeeping lines + * + * @param array $bookkeeping_ids Lettering specific list of bookkeeping id + * @param string $type Type of bookkeeping type to lettering ('customer_invoice' or 'supplier_invoice') + * @return array|int <0 if error otherwise all linked lines by block + */ + public function getLinkedLines($bookkeeping_ids, $type = 'customer_invoice') + { + global $conf, $langs; + $this->errors = array(); + + // Clean parameters + $bookkeeping_ids = is_array($bookkeeping_ids) ? $bookkeeping_ids : array(); + $type = trim($type); + + if ($type == 'customer_invoice') { + $doc_type = 'customer_invoice'; + $bank_url_type = 'payment'; + $payment_element = 'paiement_facture'; + $fk_payment_element = 'fk_paiement'; + $fk_element = 'fk_facture'; + $account_number = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; + } elseif ($type == 'supplier_invoice') { + $doc_type = 'supplier_invoice'; + $bank_url_type = 'payment_supplier'; + $payment_element = 'paiementfourn_facturefourn'; + $fk_payment_element = 'fk_paiementfourn'; + $fk_element = 'fk_facturefourn'; + $account_number = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; + } else { + $langs->load('errors'); + $this->errors[] = $langs->trans('ErrorBadParameters'); + return -1; + } + + $payment_ids = array(); + + // Get all payment id from bank lines + $sql = "SELECT DISTINCT bu.url_id AS payment_id"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url AS bu ON bu.fk_bank = ab.fk_doc"; + $sql .= " WHERE ab.doc_type = 'bank'"; + // $sql .= " AND ab.subledger_account != ''"; + // $sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'"; + $sql .= " AND bu.type = '" . $this->db->escape($bank_url_type) . "'"; + if (!empty($bookkeeping_ids)) $sql .= " AND ab.rowid IN (" . $this->db->sanitize(implode(',', $bookkeeping_ids)) . ")"; + + dol_syslog(__METHOD__ . " - Get all payment id from bank lines", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $this->errors[] = "Error " . $this->db->lasterror(); + return -1; + } + + while ($obj = $this->db->fetch_object($resql)) { + $payment_ids[$obj->payment_id] = $obj->payment_id; + } + $this->db->free($resql); + + // Get all payment id from payment lines + $sql = "SELECT DISTINCT pe.$fk_payment_element AS payment_id"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "$payment_element AS pe ON pe.$fk_element = ab.fk_doc"; + $sql .= " WHERE ab.doc_type = '" . $this->db->escape($doc_type) . "'"; + // $sql .= " AND ab.subledger_account != ''"; + // $sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'"; + $sql .= " AND pe.$fk_payment_element IS NOT NULL"; + if (!empty($bookkeeping_ids)) $sql .= " AND ab.rowid IN (" . $this->db->sanitize(implode(',', $bookkeeping_ids)) . ")"; + + dol_syslog(__METHOD__ . " - Get all payment id from bank lines", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $this->errors[] = "Error " . $this->db->lasterror(); + return -1; + } + + while ($obj = $this->db->fetch_object($resql)) { + $payment_ids[$obj->payment_id] = $obj->payment_id; + } + $this->db->free($resql); + + if (empty($payment_ids)) { + return array(); + } + + // Get all payments linked by group + $payment_by_group = $this->getLinkedPaymentByGroup($payment_ids, $type); + + $groups = array(); + foreach ($payment_by_group as $payment_list) { + $lines = array(); + + // Get bank lines + $sql = "SELECT DISTINCT ab.rowid, ab.piece_num, ab.lettering_code, ab.debit, ab.credit"; + $sql .= " FROM " . MAIN_DB_PREFIX . "bank_url AS bu"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab ON ab.fk_doc = bu.fk_bank"; + $sql .= " WHERE bu.url_id IN (" . $this->db->sanitize(implode(',', $payment_list)) . ")"; + $sql .= " AND bu.type = '" . $this->db->escape($bank_url_type) . "'"; + $sql .= " AND ab.doc_type = 'bank'"; + $sql .= " AND ab.subledger_account != ''"; + $sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'"; + + dol_syslog(__METHOD__ . " - Get bank lines", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $this->errors[] = "Error " . $this->db->lasterror(); + return -1; + } + + while ($obj = $this->db->fetch_object($resql)) { + $lines[$obj->rowid] = array('id' => $obj->rowid, 'piece_num' => $obj->piece_num, 'lettering_code' => $obj->lettering_code, 'debit' => $obj->debit, 'credit' => $obj->credit); + } + $this->db->free($resql); + + // Get payment lines + $sql = "SELECT DISTINCT ab.rowid, ab.piece_num, ab.lettering_code, ab.debit, ab.credit"; + $sql .= " FROM " . MAIN_DB_PREFIX . "$payment_element AS pe"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab ON ab.fk_doc = pe.$fk_element"; + $sql .= " WHERE pe.$fk_payment_element IN (" . $this->db->sanitize(implode(',', $payment_list)) . ")"; + $sql .= " AND ab.doc_type = '" . $this->db->escape($doc_type) . "'"; + $sql .= " AND ab.subledger_account != ''"; + $sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'"; + + dol_syslog(__METHOD__ . " - Get payment lines", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $this->errors[] = "Error " . $this->db->lasterror(); + return -1; + } + + while ($obj = $this->db->fetch_object($resql)) { + $lines[$obj->rowid] = array('id' => $obj->rowid, 'piece_num' => $obj->piece_num, 'lettering_code' => $obj->lettering_code, 'debit' => $obj->debit, 'credit' => $obj->credit); + } + $this->db->free($resql); + + if (!empty($lines)) { + $groups[] = $lines; + } + } + + return $groups; + } + + /** + * Linked payment by group + * + * @param array $payment_ids list of payment id + * @param string $type Type of bookkeeping type to lettering ('customer_invoice' or 'supplier_invoice') + * @return array|int <0 if error otherwise all linked lines by block + */ + public function getLinkedPaymentByGroup($payment_ids, $type) + { + global $langs; + + // Clean parameters + $payment_ids = is_array($payment_ids) ? $payment_ids : array(); + $type = trim($type); + + if (empty($payment_ids)) { + return array(); + } + + if ($type == 'customer_invoice') { + $payment_element = 'paiement_facture'; + $fk_payment_element = 'fk_paiement'; + $fk_element = 'fk_facture'; + } elseif ($type == 'supplier_invoice') { + $payment_element = 'paiementfourn_facturefourn'; + $fk_payment_element = 'fk_paiementfourn'; + $fk_element = 'fk_facturefourn'; + } else { + $langs->load('errors'); + $this->errors[] = $langs->trans('ErrorBadParameters'); + return -1; + } + + // Get payment lines + $sql = "SELECT DISTINCT pe2.$fk_payment_element, pe2.$fk_element"; + $sql .= " FROM " . MAIN_DB_PREFIX . "$payment_element AS pe"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "$payment_element AS pe2 ON pe2.$fk_element = pe.$fk_element"; + $sql .= " WHERE pe.$fk_payment_element IN (" . $this->db->sanitize(implode(',', $payment_ids)) . ")"; + + dol_syslog(__METHOD__ . " - Get payment lines", LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $this->errors[] = "Error " . $this->db->lasterror(); + return -1; + } + + $current_payment_ids = array(); + $payment_by_element = array(); + $element_by_payment = array(); + while ($obj = $this->db->fetch_object($resql)) { + $current_payment_ids[$obj->$fk_payment_element] = $obj->$fk_payment_element; + $element_by_payment[$obj->$fk_payment_element][$obj->$fk_element] = $obj->$fk_element; + $payment_by_element[$obj->$fk_element][$obj->$fk_payment_element] = $obj->$fk_payment_element; + } + $this->db->free($resql); + + if (count(array_diff($payment_ids, $current_payment_ids))) { + return $this->getLinkedPaymentByGroup($current_payment_ids, $type); + } + + return $this->getGroupElements($payment_by_element, $element_by_payment); + } + + /** + * Get payment ids grouped by payment id and element id in common + * + * @param array $payment_by_element List of payment ids by element id + * @param array $element_by_payment List of element ids by payment id + * @param int $element_id Element Id (used for recursive function) + * @param array $current_group Current group (used for recursive function) + * @return array List of payment ids grouped by payment id and element id in common + */ + public function getGroupElements(&$payment_by_element, &$element_by_payment, $element_id = 0, &$current_group = array()) + { + $grouped_payments = array(); + if ($element_id > 0 && !isset($payment_by_element[$element_id])) { + // Return if specific element id not found + return $grouped_payments; + } + + $save_payment_by_element = null; + $save_element_by_payment = null; + if ($element_id == 0) { + // Save list when is the begin of recursive function + $save_payment_by_element = $payment_by_element; + $save_element_by_payment = $element_by_payment; + } + + do { + // Get current element id, get this payment id list and delete the entry + $current_element_id = $element_id > 0 ? $element_id : array_keys($payment_by_element)[0]; + $payment_ids = $payment_by_element[$current_element_id]; + unset($payment_by_element[$current_element_id]); + + foreach ($payment_ids as $payment_id) { + // Continue if payment id in not found + if (!isset($element_by_payment[$payment_id])) continue; + + // Set the payment in the current group + $current_group[$payment_id] = $payment_id; + + // Get current element ids, get this payment id list and delete the entry + $element_ids = $element_by_payment[$payment_id]; + unset($element_by_payment[$payment_id]); + + // Set payment id on the current group for each element id of the payment + foreach ($element_ids as $id) { + $this->getGroupElements($payment_by_element, $element_by_payment, $id, $current_group); + } + } + + if ($element_id == 0) { + // Save current group and reset the current group when is the begin of recursive function + $grouped_payments[] = $current_group; + $current_group = array(); + } + } while (!empty($payment_by_element) && $element_id == 0); + + if ($element_id == 0) { + // Restore list when is the begin of recursive function + $payment_by_element = $save_payment_by_element; + $element_by_payment = $save_element_by_payment; + } + + return $grouped_payments; + } } diff --git a/htdocs/accountancy/closure/index.php b/htdocs/accountancy/closure/index.php index f02eda61bf6..da4f5eecd25 100644 --- a/htdocs/accountancy/closure/index.php +++ b/htdocs/accountancy/closure/index.php @@ -21,6 +21,7 @@ * \brief Home closure 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'; @@ -57,7 +58,7 @@ $search_date_end = dol_get_last_day($year_end, $month_end); $year_current = $year_start; // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -75,7 +76,7 @@ if (empty($user->rights->accounting->fiscalyear->write)) { $now = dol_now(); -if ($action == 'validate_movements_confirm' && !empty($user->rights->accounting->fiscalyear->write)) { +if ($action == 'validate_movements_confirm' && $user->hasRight('accounting', 'fiscalyear', 'write')) { $date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int')); $date_end = dol_mktime(23, 59, 59, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int')); @@ -112,6 +113,7 @@ if ($action == 'validate_movements_confirm' && !empty($user->rights->accounting- } } + /* * View */ @@ -178,20 +180,40 @@ for ($i = 1; $i <= 12; $i++) { } print ''.$langs->trans("Total").''; -$sql = "SELECT COUNT(b.rowid) as detail,"; -for ($i = 1; $i <= 12; $i++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1; - if ($j > 12) { - $j -= 12; +if (getDolGlobalString("ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")) { + // TODO Analyse is done by finding record not into a closed period + $sql = "SELECT COUNT(b.rowid) as detail,"; + for ($i = 1; $i <= 12; $i++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1; + if ($j > 12) { + $j -= 12; + } + $sql .= " SUM(".$db->ifsql("MONTH(b.doc_date)=".$j, "1", "0").") AS month".str_pad($j, 2, "0", STR_PAD_LEFT).","; } - $sql .= " SUM(".$db->ifsql("MONTH(b.doc_date)=".$j, "1", "0").") AS month".str_pad($j, 2, "0", STR_PAD_LEFT).","; + $sql .= " COUNT(b.rowid) as total"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as b"; + $sql .= " WHERE b.doc_date >= '".$db->idate($search_date_start)."'"; + $sql .= " AND b.doc_date <= '".$db->idate($search_date_end)."'"; + $sql .= " AND b.entity IN (".getEntity('bookkeeping', 0).")"; // We don't share object for accountancy + // Loop on each closed period + $sql .= " AND b.doc_date BETWEEN 0 AND 0"; +} else { + // Analyse closed record using the unitary flag/date on each record + $sql = "SELECT COUNT(b.rowid) as detail,"; + for ($i = 1; $i <= 12; $i++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1; + if ($j > 12) { + $j -= 12; + } + $sql .= " SUM(".$db->ifsql("MONTH(b.doc_date)=".$j, "1", "0").") AS month".str_pad($j, 2, "0", STR_PAD_LEFT).","; + } + $sql .= " COUNT(b.rowid) as total"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as b"; + $sql .= " WHERE b.doc_date >= '".$db->idate($search_date_start)."'"; + $sql .= " AND b.doc_date <= '".$db->idate($search_date_end)."'"; + $sql .= " AND b.entity IN (".getEntity('bookkeeping', 0).")"; // We don't share object for accountancy + $sql .= " AND date_validated IS NULL"; } -$sql .= " COUNT(b.rowid) as total"; -$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as b"; -$sql .= " WHERE b.doc_date >= '".$db->idate($search_date_start)."'"; -$sql .= " AND b.doc_date <= '".$db->idate($search_date_end)."'"; -$sql .= " AND b.entity IN (".getEntity('bookkeeping', 0).")"; // We don't share object for accountancy -$sql .= " AND date_validated IS NULL"; dol_syslog('htdocs/accountancy/closure/index.php', LOG_DEBUG); $resql = $db->query($sql); diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index 296d6729301..0b3435ecb92 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -38,7 +38,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/customer/index.php b/htdocs/accountancy/customer/index.php index 70e79e31063..472dce11e37 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -1,9 +1,9 @@ - * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2021 Alexandre Spangaro - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry +/* Copyright (C) 2013 Olivier Geffroy + * Copyright (C) 2013-2014 Florian Henry + * Copyright (C) 2013-2022 Alexandre Spangaro + * Copyright (C) 2014 Juanjo Menent + * 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 @@ -26,6 +26,7 @@ * \brief Home customer 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'; @@ -40,7 +41,7 @@ $validatemonth = GETPOST('validatemonth', 'int'); $validateyear = GETPOST('validateyear', 'int'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -77,7 +78,7 @@ $action = GETPOST('action', 'aZ09'); $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -174,7 +175,9 @@ if ($action == 'validatehistory') { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa2 ON " . $alias_product_perentity . ".accountancy_code_sell_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_sell_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_sell = 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 .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0"; + $sql .= " AND l.product_type <= 2"; + $sql .= " AND f.entity IN (".getEntity('invoice', 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)."'"; } @@ -620,7 +623,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange print '
'; - if (!empty($conf->margin->enabled)) { + if (isModEnabled('margin')) { print "
\n"; print '
'; print ''; diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 4a8080ab8b4..469f29ad3c7 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -85,7 +85,7 @@ if (!$sortorder) { } // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index bc6713f0846..4038bb4b5bc 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -5,6 +5,7 @@ * Copyright (C) 2013-2021 Florian Henry * Copyright (C) 2014 Juanjo Menent * Copyright (C) 2016 Laurent Destailleur + * 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 @@ -46,6 +47,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $optioncss = GETPOST('optioncss', 'alpha'); +$default_account = GETPOST('default_account', 'int'); // Select Box $mesCasesCochees = GETPOST('toselect', 'array'); @@ -102,7 +104,7 @@ $accountingAccount = new AccountingAccount($db); $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -156,8 +158,8 @@ if (empty($reshook)) { // Mass actions $objectclass = 'AccountingAccount'; - $permissiontoread = $user->rights->accounting->read; - $permissiontodelete = $user->rights->accounting->delete; + $permissiontoread = $user->hasRight('accounting', 'read'); + $permissiontodelete = $user->hasRight('accounting', 'delete'); $uploaddir = $conf->accounting->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -434,12 +436,15 @@ if ($result) { $arrayofmassactions = array( 'ventil'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Ventilate") + ,'set_default_account'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("ConfirmPreselectAccount") //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), ); //if ($user->rights->mymodule->supprimer) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); //if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array(); - $massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1); + if ($massaction !== 'set_default_account') { + $massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1); + } print '
'."\n"; print ''; @@ -454,9 +459,17 @@ if ($result) { print_barre_liste($langs->trans("InvoiceLines"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num_lines, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit); + if ($massaction == 'set_default_account') { + $formquestion[]=array('type' => 'other', + 'name' => 'set_default_account', + 'label' => $langs->trans("AccountancyCode"), + 'value' => $formaccounting->select_account('', 'default_account', 1, array(), 0, 0, 'maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone')); + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmPreselectAccount"), $langs->trans("ConfirmPreselectAccountQuestion", count($toselect)), "confirm_set_default_account", $formquestion, 1, 0, 200, 500, 1); + } + print ''.$langs->trans("DescVentilTodoCustomer").'

'; - if ($msg) { + if (!empty($msg)) { print $msg.'
'; } @@ -712,7 +725,7 @@ if ($result) { // Suggested accounting account print '
'; // Column with checkbox @@ -721,6 +734,14 @@ if ($result) { if (!empty($suggestedid) && $suggestedaccountingaccountfor != '' && $suggestedaccountingaccountfor != 'eecwithoutvatnumber') { $ischecked = 1; } + + if (!empty($toselect)) { + $ischecked = 0; + if (in_array($objp->rowid."_".$i, $toselect)) { + $ischecked=1; + } + } + print ''; print ''; diff --git a/htdocs/accountancy/expensereport/card.php b/htdocs/accountancy/expensereport/card.php index 7c2310ccce4..0255e019138 100644 --- a/htdocs/accountancy/expensereport/card.php +++ b/htdocs/accountancy/expensereport/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/expensereport/index.php b/htdocs/accountancy/expensereport/index.php index 08657fe7a62..5064003c7ff 100644 --- a/htdocs/accountancy/expensereport/index.php +++ b/htdocs/accountancy/expensereport/index.php @@ -24,6 +24,7 @@ * \brief Home expense report ventilation */ +// 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'; @@ -58,7 +59,7 @@ $year_current = $year_start; $action = GETPOST('action', 'aZ09'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php index 005783ed7a8..926d03f9235 100644 --- a/htdocs/accountancy/expensereport/lines.php +++ b/htdocs/accountancy/expensereport/lines.php @@ -79,7 +79,7 @@ if (!$sortorder) { } // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php index 033f1164dc7..7a02d0b4564 100644 --- a/htdocs/accountancy/expensereport/list.php +++ b/htdocs/accountancy/expensereport/list.php @@ -97,7 +97,7 @@ $accounting = new AccountingAccount($db); $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -150,8 +150,8 @@ if (empty($reshook)) { // Mass actions $objectclass = 'ExpenseReport'; $objectlabel = 'ExpenseReport'; - $permissiontoread = $user->rights->expensereport->read; - $permissiontodelete = $user->rights->expensereport->delete; + $permissiontoread = $user->hasRight('accounting', 'read'); + $permissiontodelete = $user->hasRight('accounting', 'delete'); $uploaddir = $conf->expensereport->dir_output; include DOL_DOCUMENT_ROOT . '/core/actions_massactions.inc.php'; } @@ -370,7 +370,7 @@ if ($result) { print ''.$langs->trans("DescVentilTodoExpenseReport").'

'; - if ($msg) { + if (!empty($msg)) { print $msg.'
'; } diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index 18277eb6751..21c736900aa 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -23,6 +23,8 @@ * \brief Home accounting module */ + +// 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'; @@ -39,17 +41,17 @@ if ($user->socid > 0) { accessforbidden(); } /* -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } -if (empty($user->rights->accounting->mouvements->lire)) { +if (!$user->hasRight('accounting', 'mouvements', 'lire')) { accessforbidden(); } */ -if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled) && empty($conf->asset->enabled) && empty($conf->intracommreport->enabled)) { +if (!isModEnabled('comptabilite') && !isModEnabled('accounting') && !isModEnabled('asset') && !isModEnabled('intracommreport')) { accessforbidden(); } -if (empty($user->rights->compta->resultat->lire) && empty($user->rights->accounting->comptarapport->lire) && empty($user->rights->accounting->mouvements->lire) && empty($user->rights->asset->read) && empty($user->rights->intracommreport->read)) { +if (!$user->hasRight('compta', 'resultat', 'lire') && !$user->hasRight('accounting', 'comptarapport', 'lire') && !$user->hasRight('accounting', 'mouvements', 'lire') && !$user->hasRight('asset', 'read') && !$user->hasRight('intracommreport', 'read')) { accessforbidden(); } @@ -86,7 +88,7 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S print ''.$langs->trans("SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices")."\n"; print "
"; -} elseif ($conf->accounting->enabled) { +} elseif (isModEnabled('accounting')) { $step = 0; $resultboxes = FormOther::getBoxesArea($user, "27"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb) @@ -117,7 +119,7 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S print '
'; // hideobject is to start hidden print "
\n"; print ''.$langs->trans("AccountancyAreaDescIntro")."
\n"; - if (!empty($user->rights->accounting->chartofaccount)) { + if ($user->hasRight('accounting', 'chartofaccount')) { print "
\n"; print "
\n"; print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n"; @@ -165,7 +167,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 +175,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 +214,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 4841b8bf171..f3049206389 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -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 @@ -558,11 +566,11 @@ if ($result) { } -/*var_dump($tabpay); -var_dump($tabcompany); -var_dump($tabbq); -var_dump($tabtp); -var_dump($tabtype);*/ +//var_dump($tabpay); +//var_dump($tabcompany); +//var_dump($tabbq); +//var_dump($tabtp); +//var_dump($tabtype); // Write bookkeeping if (!$error && $action == 'writebookkeeping') { @@ -594,9 +602,9 @@ if (!$error && $action == 'writebookkeeping') { $db->begin(); // Introduce a protection. Total of tabtp must be total of tabbq - /*var_dump($tabpay); - var_dump($tabtp); - var_dump($tabbq);exit;*/ + //var_dump($tabpay); + //var_dump($tabtp); + //var_dump($tabbq);exit; // Bank if (!$errorforline && is_array($tabbq[$key])) { @@ -665,6 +673,8 @@ if (!$error && $action == 'writebookkeeping') { // Line into thirdparty account foreach ($tabtp[$key] as $k => $mt) { if ($mt) { + $lettering = false; + $reflabel = ''; if (!empty($val['lib'])) { $reflabel .= dol_string_nohtmltag($val['lib']).($val['soclib'] ? " - " : ""); @@ -693,11 +703,13 @@ if (!$error && $action == 'writebookkeeping') { $bookkeeping->date_creation = $now; if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice + $lettering = true; $bookkeeping->subledger_account = $k; // For payment, the subledger account is stored as $key of $tabtp $bookkeeping->subledger_label = $tabcompany[$key]['name']; // $tabcompany is defined only if we are sure there is 1 thirdparty for the bank transaction $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; $bookkeeping->label_compte = $accountingaccountcustomer->label; } elseif ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice + $lettering = true; $bookkeeping->subledger_account = $k; // For payment, the subledger account is stored as $key of $tabtp $bookkeeping->subledger_label = $tabcompany[$key]['name']; // $tabcompany is defined only if we are sure there is 1 thirdparty for the bank transaction $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; @@ -780,6 +792,12 @@ if (!$error && $action == 'writebookkeeping') { $errorforline++; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } + } else { + if ($lettering && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) { + require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; + $lettering_static = new Lettering($db); + $nb_lettering = $lettering_static->bookkeepingLetteringAll(array($bookkeeping->id)); + } } } } @@ -1257,9 +1275,9 @@ if (empty($action) || $action == 'view') { $accounttoshowsubledger = length_accounta($k); if ($accounttoshow != $accounttoshowsubledger) { if (empty($accounttoshowsubledger) || $accounttoshowsubledger == 'NotDefined') { - /*var_dump($tabpay[$key]); - var_dump($tabtype[$key]); - var_dump($tabbq[$key]);*/ + //var_dump($tabpay[$key]); + //var_dump($tabtype[$key]); + //var_dump($tabbq[$key]); //print ''.$langs->trans("ThirdpartyAccountNotDefined").''; if (!empty($tabcompany[$key]['code_compta'])) { if (in_array($tabtype[$key], array('payment_various', 'payment_salary'))) { diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index c80586fa3d0..d38e49c390e 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 diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 8b1ac0d3de3..34faba7e27c 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) { @@ -377,6 +377,12 @@ if ($action == 'writebookkeeping') { $errorforinvoice[$key] = 'other'; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } + } else { + if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) { + 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'); + } } } } @@ -399,8 +405,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; @@ -451,7 +467,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); @@ -946,6 +962,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 7a5ccd79b21..d34d1f5c3dc 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -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) { @@ -390,6 +391,12 @@ if ($action == 'writebookkeeping') { $errorforinvoice[$key] = 'other'; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } + } else { + if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) { + 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'); + } } } } @@ -412,9 +419,14 @@ 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_client; - if ($k == getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT')) { - $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; - $bookkeeping->subledger_label = $tabcompany[$key]['name']; + if (!empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT)) { + if ($k == getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_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 = ''; @@ -468,7 +480,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); @@ -891,12 +903,12 @@ if (empty($action) || $action == 'view') { print ""; // Subledger account print "'; $companystatic->id = $tabcompany[$key]['id']; diff --git a/htdocs/accountancy/journal/variousjournal.php b/htdocs/accountancy/journal/variousjournal.php index 0d95ff61763..b56271850e5 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'; @@ -43,17 +44,6 @@ if ($in_bookkeeping == '') { $in_bookkeeping = 'notyet'; } -// Security check -if (empty($conf->accounting->enabled)) { - accessforbidden(); -} -if ($user->socid > 0) { - accessforbidden(); -} -if (empty($user->rights->accounting->mouvements->lire)) { - accessforbidden(); -} - // Get information of journal $object = new AccountingJournal($db); $result = $object->fetch($id_journal); @@ -62,10 +52,10 @@ 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_text . 'journal')); +$hookmanager->initHooks(array('globaljournal', $object->nature.'journal')); $parameters = array(); $date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear); @@ -93,6 +83,18 @@ if (!is_array($journal_data)) { setEventMessages($object->error, $object->errors, 'errors'); } +// Security check +if (!isModEnabled('accounting')) { + accessforbidden(); +} +if ($user->socid > 0) { + accessforbidden(); +} +if (empty($user->rights->accounting->mouvements->lire)) { + accessforbidden(); +} + + /* * Actions */ @@ -235,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 ''; } 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 e46b508512d..2237b4347ca 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'; @@ -38,7 +39,7 @@ $validatemonth = GETPOST('validatemonth', 'int'); $validateyear = GETPOST('validateyear', 'int'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -75,7 +76,7 @@ $action = GETPOST('action', 'aZ09'); $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -171,8 +172,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)."'"; } @@ -373,10 +376,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); @@ -474,11 +481,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 +507,15 @@ if ($resql) { print length_accountg($row[0]); } print ''; - print '
'; + for ($i = 2; $i <= 13; $i++) { print '
'; - print $formaccounting->select_account($suggestedid, 'codeventil'.$facture_static_det->id, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); + print $formaccounting->select_account(($default_account > 0 && $confirm === 'yes' && in_array($objp->rowid."_".$i, $toselect)) ? $default_account : $suggestedid, 'codeventil'.$facture_static_det->id, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print '"; + 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 '"; - if ($k == getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT')) { - if (($accountoshow == "") || $accountoshow == 'NotDefined') { - print ''.$langs->trans("ThirdpartyAccountNotDefined").''; - } else { + if (!empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT)) { + if ($k == getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT')) { print length_accounta($tabcompany[$key]['code_compta']); } + } elseif (($accountoshow == "") || $accountoshow == 'NotDefined') { + print '' . $langs->trans("ThirdpartyAccountNotDefined") . ''; } print ''; + + 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,7 +538,6 @@ 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 ? print '
'; print '
'; @@ -560,9 +574,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..1edbe83eefb 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -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) { @@ -384,7 +384,7 @@ if ($result) { print ''; print ''; - print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num_lines, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit); + print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num_lines, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit); print ''.$langs->trans("DescVentilDoneSupplier").'
'; print '
'.$langs->trans("ChangeAccount").' '; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 914c6fa1633..d14beb84cc2 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -1,8 +1,9 @@ - * Copyright (C) 2013-2022 Alexandre Spangaro - * Copyright (C) 2014-2015 Ari Elbaz (elarifr) - * Copyright (C) 2013-2014 Florian Henry +/* Copyright (C) 2013-2014 Olivier Geffroy + * Copyright (C) 2013-2022 Alexandre Spangaro + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) + * Copyright (C) 2013-2021 Florian Henry + * Copyright (C) 2021 Gauthier VERDOL * Copyright (C) 2014 Juanjo Menent s * Copyright (C) 2016 Laurent Destailleur * @@ -47,6 +48,7 @@ $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $optioncss = GETPOST('optioncss', 'alpha'); +$default_account = GETPOST('default_account', 'int'); // Select Box $mesCasesCochees = GETPOST('toselect', 'array'); @@ -104,7 +106,7 @@ $accountingAccount = new AccountingAccount($db); $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); // Security check -if (empty($conf->accounting->enabled)) { +if (!isModEnabled('accounting')) { accessforbidden(); } if ($user->socid > 0) { @@ -159,8 +161,8 @@ if (empty($reshook)) { // Mass actions $objectclass = 'AccountingAccount'; - $permissiontoread = $user->rights->accounting->read; - $permissiontodelete = $user->rights->accounting->delete; + $permissiontoread = $user->hasRight('accounting', 'read'); + $permissiontodelete = $user->hasRight('accounting', 'delete'); $uploaddir = $conf->accounting->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -442,12 +444,15 @@ if ($result) { $arrayofmassactions = array( 'ventil'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Ventilate") + ,'set_default_account'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("ConfirmPreselectAccount") //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), ); //if ($user->rights->mymodule->supprimer) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); //if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array(); - $massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1); + if ($massaction !== 'set_default_account') { + $massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1); + } print ''."\n"; print ''; @@ -462,9 +467,17 @@ if ($result) { print_barre_liste($langs->trans("InvoiceLines"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num_lines, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit); + if ($massaction == 'set_default_account') { + $formquestion[]=array('type' => 'other', + 'name' => 'set_default_account', + 'label' => $langs->trans("AccountancyCode"), + 'value' => $formaccounting->select_account('', 'default_account', 1, array(), 0, 0, 'maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone')); + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmPreselectAccount"), $langs->trans("ConfirmPreselectAccountQuestion", count($toselect)), "confirm_set_default_account", $formquestion, 1, 0, 200, 500, 1); + } + print ''.$langs->trans("DescVentilTodoCustomer").'

'; - if ($msg) { + if (!empty($msg)) { print $msg.'
'; } @@ -736,7 +749,7 @@ if ($result) { // Suggested accounting account print ''; - print $formaccounting->select_account($suggestedid, 'codeventil'.$facturefourn_static_det->id, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); + print $formaccounting->select_account(($default_account > 0 && $confirm === 'yes' && in_array($objp->rowid."_".$i, $toselect)) ? $default_account : $suggestedid, 'codeventil'.$facturefourn_static_det->id, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; // Column with checkbox @@ -745,6 +758,14 @@ if ($result) { if (!empty($suggestedid) && $suggestedaccountingaccountfor != '' && $suggestedaccountingaccountfor != 'eecwithoutvatnumber') { $ischecked = 1; } + + if (!empty($toselect)) { + $ischecked = 0; + if (in_array($objp->rowid."_".$i, $toselect)) { + $ischecked=1; + } + } + print ''; print ''; diff --git a/htdocs/accountancy/tpl/export_journal.tpl.php b/htdocs/accountancy/tpl/export_journal.tpl.php index b595402228e..22537a60a39 100644 --- a/htdocs/accountancy/tpl/export_journal.tpl.php +++ b/htdocs/accountancy/tpl/export_journal.tpl.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2015-2022 Alexandre Spangaro * Copyright (C) 2016 Charlie Benke * * This program is free software; you can redistribute it and/or modify @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -// $formatexportset ùust be defined +// $formatexportset must be defined // Protection to avoid direct call of template if (empty($conf) || !is_object($conf)) { @@ -24,11 +24,11 @@ if (empty($conf) || !is_object($conf)) { exit; } -$code = $conf->global->MAIN_INFO_ACCOUNTANT_CODE; -$prefix = $conf->global->ACCOUNTING_EXPORT_PREFIX_SPEC; -$format = $conf->global->ACCOUNTING_EXPORT_FORMAT; -$nodateexport = $conf->global->ACCOUNTING_EXPORT_NO_DATE_IN_FILENAME; -$siren = $conf->global->MAIN_INFO_SIREN; +$code = getDolGlobalString('MAIN_INFO_ACCOUNTANT_CODE'); +$prefix = getDolGlobalString('ACCOUNTING_EXPORT_PREFIX_SPEC'); +$format = getDolGlobalString('ACCOUNTING_EXPORT_FORMAT'); +$nodateexport = getDolGlobalInt('ACCOUNTING_EXPORT_NO_DATE_IN_FILENAME'); +$siren = getDolGlobalString('MAIN_INFO_SIREN'); $date_export = "_".dol_print_date(dol_now(), '%Y%m%d%H%M%S'); $endaccountingperiod = dol_print_date(dol_now(), '%Y%m%d'); diff --git a/htdocs/adherents/admin/member.php b/htdocs/adherents/admin/member.php index d51dd8ef730..c94084358bd 100644 --- a/htdocs/adherents/admin/member.php +++ b/htdocs/adherents/admin/member.php @@ -30,6 +30,7 @@ * \brief Page to setup the module 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/member.lib.php'; @@ -64,7 +65,7 @@ if ($action == 'set_default') { } elseif ($action == 'del_default') { $ret = delDocumentModel($value, $type); if ($ret > 0) { - if ($conf->global->MEMBER_ADDON_PDF_ODT == "$value") { + if (getDolGlobalString('MEMBER_ADDON_PDF_ODT') == "$value") { dolibarr_del_const($db, 'MEMBER_ADDON_PDF_ODT', $conf->entity); } } @@ -108,10 +109,10 @@ if ($action == 'set_default') { $res3 = dolibarr_set_const($db, 'ADHERENT_CREATE_EXTERNAL_USER_LOGIN', GETPOST('ADHERENT_CREATE_EXTERNAL_USER_LOGIN', 'alpha'), 'chaine', 0, '', $conf->entity); $res4 = dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity); // Use vat for invoice creation - if ($conf->facture->enabled) { + if (isModEnabled('facture')) { $res4 = dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); $res5 = dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { $res6 = dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); } } @@ -238,27 +239,27 @@ print "\n"; // Insert subscription into bank account print ''.$langs->trans("MoreActionsOnSubscription").''; $arraychoices = array('0'=>$langs->trans("None")); -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { $arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect"); } -if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) { +if (isModEnabled("banque") && isModEnabled("societe") && isModEnabled('facture')) { $arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly"); } -if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) { +if (isModEnabled("banque") && isModEnabled("societe") && isModEnabled('facture')) { $arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice"); } print ''; -print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, $conf->global->ADHERENT_BANK_USE, 0); -if ($conf->global->ADHERENT_BANK_USE == 'bankdirect' || $conf->global->ADHERENT_BANK_USE == 'bankviainvoice') { +print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, getDolGlobalString('ADHERENT_BANK_USE'), 0); +if (getDolGlobalString('ADHERENT_BANK_USE') == 'bankdirect' || getDolGlobalString('ADHERENT_BANK_USE') == 'bankviainvoice') { print '
'.$langs->trans("ABankAccountMustBeDefinedOnPaymentModeSetup").'
'; } print ''; print "\n"; // Use vat for invoice creation -if ($conf->facture->enabled) { +if (isModEnabled('facture')) { print ''.$langs->trans("VATToUseForSubscriptions").''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; print $form->selectarray('ADHERENT_VAT_FOR_SUBSCRIPTIONS', array('0'=>$langs->trans("NoVatOnSubscription"), 'defaultforfoundationcountry'=>$langs->trans("Default")), (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) ? '0' : $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS), 0); print ''; @@ -269,7 +270,7 @@ if ($conf->facture->enabled) { } print "\n"; - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (isModEnabled("product") || isModEnabled("service")) { print ''.$langs->trans("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS").''; print ''; $selected = (empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) ? '' : $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS); @@ -378,16 +379,16 @@ foreach ($dirmodels as $reldir) { print ''; } else { print ''."\n"; - print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; + print 'scandir) ? $module->scandir : '').'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; print ""; } // Defaut print ''; - if ($conf->global->MEMBER_ADDON_PDF == $name) { + if (getDolGlobalString('MEMBER_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').''; + print 'scandir) ? $module->scandir : '').'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; } print ''; @@ -398,8 +399,8 @@ foreach ($dirmodels as $reldir) { $htmltooltip .= '
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; } $htmltooltip .= '

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip .= '
'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1); - $htmltooltip .= '
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1); + $htmltooltip .= '
'.$langs->trans("Logo").': '.yn(!empty($module->option_logo) ? $module->option_logo : 0, 1, 1); + $htmltooltip .= '
'.$langs->trans("MultiLanguage").': '.yn(!empty($module->option_multilang) ? $module->option_multilang : 0, 1, 1); print ''; diff --git a/htdocs/adherents/admin/member_emails.php b/htdocs/adherents/admin/member_emails.php index c55d44d391f..4f942d1f6a8 100644 --- a/htdocs/adherents/admin/member_emails.php +++ b/htdocs/adherents/admin/member_emails.php @@ -29,6 +29,7 @@ * \brief Page to setup the module 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/member.lib.php'; diff --git a/htdocs/adherents/admin/member_extrafields.php b/htdocs/adherents/admin/member_extrafields.php index 7f5262bc7c6..ef12b5cf68e 100644 --- a/htdocs/adherents/admin/member_extrafields.php +++ b/htdocs/adherents/admin/member_extrafields.php @@ -24,6 +24,7 @@ * \brief Page to setup extra fields of members */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/adherents/admin/member_type_extrafields.php b/htdocs/adherents/admin/member_type_extrafields.php index 68916df624f..2fc8864b323 100644 --- a/htdocs/adherents/admin/member_type_extrafields.php +++ b/htdocs/adherents/admin/member_type_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of members */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -87,7 +88,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/adherents/admin/website.php b/htdocs/adherents/admin/website.php index ed09c206abf..8831f06fd06 100644 --- a/htdocs/adherents/admin/website.php +++ b/htdocs/adherents/admin/website.php @@ -24,6 +24,7 @@ * \brief File of main public page for member 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/company.lib.php'; @@ -95,12 +96,13 @@ if ($action == 'update') { $form = new Form($db); +$title = $langs->trans("MembersSetup"); $help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; -llxHeader('', $langs->trans("MembersSetup"), $help_url); +llxHeader('', $title, $help_url); $linkback = ''.$langs->trans("BackToModuleList").''; -print load_fiche_titre($langs->trans("MembersSetup"), $linkback, 'title_setup'); +print load_fiche_titre($title, $linkback, 'title_setup'); $head = member_admin_prepare_head(); @@ -166,10 +168,30 @@ if (empty($conf->global->MEMBER_ENABLE_PUBLIC)) { print $enabledisablehtml; print ''; +print '

'; -print '
'; if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) { + print '
'; + //print $langs->trans('FollowingLinksArePublic').'
'; + print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').'
'; + if (isModEnabled('multicompany')) { + $entity_qr = '?entity='.$conf->entity; + } else { + $entity_qr = ''; + } + + // 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 + + print ''; + print ajax_autoselect('publicurlmember'); + print '
'; print '
'; @@ -177,14 +199,14 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) { print ''; print ''.$langs->trans("Parameter").''; - print ''.$langs->trans("Value").''; + print ''.$langs->trans("Value").''; print "\n"; // Force Type $adht = new AdherentType($db); print ''; print $langs->trans("ForceMemberType"); - print ''; + print ''; $listofval = array(); $listofval += $adht->liste_array(1); $forcetype = empty($conf->global->MEMBER_NEWFORM_FORCETYPE) ? -1 : $conf->global->MEMBER_NEWFORM_FORCETYPE; @@ -196,7 +218,7 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) { $morphys["mor"] = $langs->trans("Moral"); print ''; print $langs->trans("ForceMemberNature"); - print ''; + print ''; $forcenature = empty($conf->global->MEMBER_NEWFORM_FORCEMORPHY) ? 0 : $conf->global->MEMBER_NEWFORM_FORCEMORPHY; print $form->selectarray("MEMBER_NEWFORM_FORCEMORPHY", $morphys, $forcenature, 1); print "\n"; @@ -204,31 +226,31 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) { // Amount print ''; print $langs->trans("DefaultAmount"); - print ''; - print ''; + print ''; + print ''; print "\n"; // Can edit print ''; print $langs->trans("CanEditAmount"); - print ''; + print ''; print $form->selectyesno("MEMBER_NEWFORM_EDITAMOUNT", (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) ? $conf->global->MEMBER_NEWFORM_EDITAMOUNT : 0), 1); print "\n"; // Jump to an online payment page print ''; print $langs->trans("MEMBER_NEWFORM_PAYONLINE"); - print ''; + print ''; $listofval = array(); $listofval['-1'] = $langs->trans('No'); $listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')'; - if (!empty($conf->paybox->enabled)) { + if (isModEnabled('paybox')) { $listofval['paybox'] = 'Paybox'; } - if (!empty($conf->paypal->enabled)) { + if (isModEnabled('paypal')) { $listofval['paypal'] = 'PayPal'; } - if (!empty($conf->stripe->enabled)) { + if (isModEnabled('stripe')) { $listofval['stripe'] = 'Stripe'; } print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0); @@ -247,29 +269,6 @@ print dol_get_fiche_end(); print ''; - -if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) { - print '
'; - //print $langs->trans('FollowingLinksArePublic').'
'; - print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').'
'; - if (!empty($conf->multicompany->enabled)) { - $entity_qr = '?entity='.$conf->entity; - } else { - $entity_qr = ''; - } - - // 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 - - print ''; - print ajax_autoselect('publicurlmember'); -} - // End of page llxFooter(); $db->close(); diff --git a/htdocs/adherents/agenda.php b/htdocs/adherents/agenda.php index 9132dae5802..ef1daf0b6c8 100644 --- a/htdocs/adherents/agenda.php +++ b/htdocs/adherents/agenda.php @@ -26,6 +26,7 @@ * \brief Page of members events */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -130,7 +131,7 @@ if ($object->id > 0) { llxHeader("", $title, $help_url); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } $head = member_prepare_head($object); @@ -162,11 +163,11 @@ if ($object->id > 0) { $newcardbutton = ''; - if (!empty($conf->agenda->enabled)) { - $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage=1&origin=member&originid='.$id); + if (isModEnabled('agenda')) { + $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']).($object->id > 0 ? '?id='.$object->id : '').'&origin=member&originid='.$id); } - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { print '
'; $param = '&id='.$id; diff --git a/htdocs/adherents/canvas/actions_adherentcard_common.class.php b/htdocs/adherents/canvas/actions_adherentcard_common.class.php index 265931c0265..45d9c4f8fce 100644 --- a/htdocs/adherents/canvas/actions_adherentcard_common.class.php +++ b/htdocs/adherents/canvas/actions_adherentcard_common.class.php @@ -65,7 +65,7 @@ abstract class ActionsAdherentCardCommon /*if (is_object($this->object) && method_exists($this->object,'fetch')) { - if (! empty($id)) $this->object->fetch($id); + if (!empty($id)) $this->object->fetch($id); } else {*/ @@ -179,7 +179,7 @@ abstract class ActionsAdherentCardCommon if ($action == 'view' || $action == 'edit' || $action == 'delete') { // Emailing - if (!empty($conf->mailing->enabled)) { + if (isModEnabled('mailing')) { $langs->load("mails"); $this->tpl['nb_emailing'] = $this->object->getNbOfEMailings(); } diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php index 696520f79d4..4b0eed154c0 100644 --- a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php @@ -1,6 +1,6 @@ - * Copyright (C) 2012 Philippe Grand + * Copyright (C) 2012-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 @@ -124,7 +124,7 @@ if (!empty($this->control->tpl['action_delete'])) { if (empty($user->socid)) { echo '
'; - if ($user->rights->adherent->creer) { + if ($user->hasRight('adherent', 'creer')) { echo ''.$langs->trans('Modify').''; } diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 5bdb99330f6..b9e04015d7d 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -29,6 +29,8 @@ * \brief Page of a member */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -40,12 +42,16 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + // Load translation files required by the page $langs->loadLangs(array("companies", "bills", "members", "users", "other", "paypal")); + +// Get parameters $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha'); @@ -57,7 +63,7 @@ $userid = GETPOST('userid', 'int'); $socid = GETPOST('socid', 'int'); $ref = GETPOST('ref', 'alpha'); -if (!empty($conf->mailmanspip->enabled)) { +if (isModEnabled('mailmanspip')) { include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php'; $langs->load('mailmanspip'); @@ -104,10 +110,10 @@ if ($id > 0 || !empty($ref)) { } // Define variables to determine what the current user can do on the members -$canaddmember = $user->rights->adherent->creer; +$canaddmember = $user->hasRight('adherent', 'creer'); // Define variables to determine what the current user can do on the properties of a member if ($id) { - $caneditfieldmember = $user->rights->adherent->creer; + $caneditfieldmember = $user->hasRight('adherent', 'creer'); } // Security check @@ -240,7 +246,7 @@ if (empty($reshook)) { } } - if ($action == 'update' && !$cancel && $user->rights->adherent->creer) { + if ($action == 'update' && !$cancel && $user->hasRight('adherent', 'creer')) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $birthdate = ''; @@ -277,7 +283,7 @@ if (empty($reshook)) { } // Create new object if ($result > 0 && !$error) { - $object->oldcopy = clone $object; + $object->oldcopy = dol_clone($object); // Change values $object->civility_id = trim(GETPOST("civility_id", 'alphanohtml')); @@ -285,7 +291,7 @@ if (empty($reshook)) { $object->lastname = trim(GETPOST("lastname", 'alphanohtml')); $object->gender = trim(GETPOST("gender", 'alphanohtml')); $object->login = trim(GETPOST("login", 'alphanohtml')); - $object->pass = trim(GETPOST("pass", 'alpha')); + $object->pass = trim(GETPOST("pass", 'none')); // For password, we must use 'none' $object->societe = trim(GETPOST("societe", 'alphanohtml')); // deprecated $object->company = trim(GETPOST("societe", 'alphanohtml')); @@ -311,8 +317,8 @@ if (empty($reshook)) { //$object->twitter = trim(GETPOST("twitter", 'alpha')); //$object->facebook = trim(GETPOST("facebook", 'alpha')); //$object->linkedin = trim(GETPOST("linkedin", 'alpha')); - $object->birth = $birthdate; - + $object->birth = $birthdate; + $object->default_lang = GETPOST('default_lang', 'alpha'); $object->typeid = GETPOST("typeid", 'int'); //$object->note = trim(GETPOST("comment","alpha")); $object->morphy = GETPOST("morphy", 'alpha'); @@ -415,7 +421,7 @@ if (empty($reshook)) { } } - if ($action == 'add' && $user->rights->adherent->creer) { + if ($action == 'add' && $user->hasRight('adherent', 'creer')) { if ($canvas) { $object->canvas = $canvas; } @@ -450,13 +456,14 @@ if (empty($reshook)) { $email = preg_replace('/\s+/', '', GETPOST("member_email", 'alpha')); $url = trim(GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL)); $login = GETPOST("member_login", 'alphanohtml'); - $pass = GETPOST("password", 'alpha'); - $photo = GETPOST("photo", 'alpha'); + $pass = GETPOST("password", 'none'); // For password, we use 'none' + $photo = GETPOST("photo", 'alphanohtml'); $morphy = GETPOST("morphy", 'alphanohtml'); $public = GETPOST("public", 'alphanohtml'); $userid = GETPOST("userid", 'int'); $socid = GETPOST("socid", 'int'); + $default_lang = GETPOST('default_lang', 'alpha'); $object->civility_id = $civility_id; $object->firstname = $firstname; @@ -473,7 +480,7 @@ if (empty($reshook)) { $object->phone_perso = $phone_perso; $object->phone_mobile = $phone_mobile; $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("member_".$key, 'alphanohtml'); @@ -498,7 +505,7 @@ if (empty($reshook)) { $object->user_id = $userid; $object->socid = $socid; $object->public = $public; - + $object->default_lang = $default_lang; // Fill array 'array_options' with data from add form $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) { @@ -580,36 +587,15 @@ if (empty($reshook)) { $id = $object->id; } else { $db->rollback(); - - if ($object->error) { - setEventMessages($object->error, $object->errors, 'errors'); - } else { - setEventMessages($object->error, $object->errors, 'errors'); - } + setEventMessages($object->error, $object->errors, 'errors'); } + // Auto-create thirdparty on member creation if (!empty($conf->global->ADHERENT_DEFAULT_CREATE_THIRDPARTY)) { if ($result > 0) { - // User creation + // Create third party out of a member $company = new Societe($db); - - $companyalias = ''; - $fullname = $object->getFullName($langs); - - if ($object->morphy == 'mor') { - $companyname = $object->company; - if (!empty($fullname)) { - $companyalias = $fullname; - } - } else { - $companyname = $fullname; - if (!empty($object->company)) { - $companyalias = $object->company; - } - } - - $result = $company->create_from_member($object, $companyname, $companyalias); - + $result = $company->create_from_member($object); if ($result < 0) { $langs->load("errors"); setEventMessages($langs->trans($company->error), null, 'errors'); @@ -621,6 +607,11 @@ if (empty($reshook)) { } } $action = ($result < 0 || !$error) ? '' : 'create'; + + if (!$error && $backtopage) { + header("Location: ".$backtopage); + exit; + } } if ($user->rights->adherent->supprimer && $action == 'confirm_delete' && $confirm == 'yes') { @@ -634,11 +625,11 @@ if (empty($reshook)) { exit; } } else { - $errmesg = $object->error; + setEventMessages($object->error, null, 'errors'); } } - if ($user->rights->adherent->creer && $action == 'confirm_valid' && $confirm == 'yes') { + if ($user->hasRight('adherent', 'creer') && $action == 'confirm_valid' && $confirm == 'yes') { $error = 0; $db->begin(); @@ -677,7 +668,8 @@ if (empty($reshook)) { if (empty($labeltouse) || (int) $labeltouse === -1) { //fallback on the old configuration. - setEventMessages('WarningMandatorySetupNotComplete', null, 'errors'); + $langs->load("errors"); + setEventMessages(''.$langs->trans('WarningMandatorySetupNotComplete').'', null, 'errors'); $error++; } else { $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); @@ -862,7 +854,7 @@ if (empty($reshook)) { } } - if ($user->rights->adherent->creer && $action == 'confirm_add_spip' && $confirm == 'yes') { + if ($user->hasRight('adherent', 'creer') && $action == 'confirm_add_spip' && $confirm == 'yes') { if (!count($object->errors)) { if (!$mailmanspip->add_to_spip($object)) { setEventMessages($langs->trans('AddIntoSpipError').': '.$mailmanspip->error, null, 'errors'); @@ -875,7 +867,7 @@ if (empty($reshook)) { // Actions to build doc $upload_dir = $conf->adherent->dir_output; - $permissiontoadd = $user->rights->adherent->creer; + $permissiontoadd = $user->hasRight('adherent', 'creer'); include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; // Actions to send emails @@ -893,6 +885,7 @@ if (empty($reshook)) { $form = new Form($db); $formfile = new FormFile($db); +$formadmin = new FormAdmin($db); $formcompany = new FormCompany($db); $title = $langs->trans("Member")." - ".$langs->trans("Card"); @@ -999,7 +992,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; $generated_password = getRandomPassword(false); print ''.$langs->trans("Password").''; - print ''; + print ''; print ''; } @@ -1101,7 +1094,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''.$langs->trans("PhoneMobile").''; print ''.img_picto('', 'object_phoning_mobile', 'class="pictofixedwidth"').''; - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { if (!$value['active']) { break; @@ -1122,7 +1115,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print "\n"; // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { print ''.$form->editfieldkey("Categories", 'memcats', '', $object, 0).''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_MEMBER, null, 'parent', null, null, 1); print img_picto('', 'category').$form->multiselectarray('memcats', $cate_arbo, GETPOST('memcats', 'array'), null, null, 'quatrevingtpercent widthcentpercentminusx', 0, 0); @@ -1224,18 +1217,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Password if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { - print ''.$langs->trans("Password").'pass).'">'; + print ''.$langs->trans("Password").'pass).'">'; } - // Morphy - $morphys["phy"] = $langs->trans("Physical"); - $morphys["mor"] = $langs->trans("Moral"); - print ''.$langs->trans("MemberNature").''; - print $form->selectarray("morphy", $morphys, (GETPOSTISSET("morphy") ? GETPOST("morphy", 'alpha') : $object->morphy), 0, 0, 0, '', 0, 0, 0, '', '', 1); - print ""; // Type print ''.$langs->trans("Type").''; - if ($user->rights->adherent->creer) { + if ($user->hasRight('adherent', 'creer')) { print $form->selectarray("typeid", $adht->liste_array(), (GETPOSTISSET("typeid") ? GETPOST("typeid", 'int') : $object->typeid), 0, 0, 0, '', 0, 0, 0, '', '', 1); } else { print $adht->getNomUrl(1); @@ -1243,6 +1230,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } print ""; + // Morphy + $morphys["phy"] = $langs->trans("Physical"); + $morphys["mor"] = $langs->trans("Moral"); + print ''.$langs->trans("MemberNature").''; + print $form->selectarray("morphy", $morphys, (GETPOSTISSET("morphy") ? GETPOST("morphy", 'alpha') : $object->morphy), 0, 0, 0, '', 0, 0, 0, '', '', 1); + print ""; + // Company print ''.$langs->trans("Company").'company).'">'; @@ -1280,13 +1274,20 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ' '.$langs->trans("Delete").'

'; } print ''.$langs->trans("PhotoFile").''; - print ''; + print ''; + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + print ''; // MAX_FILE_SIZE must precede the field type=file + } + print ''; + print ''; print ''; } print ''; // EMail - print ''.($conf->global->ADHERENT_MAIL_REQUIRED ? '' : '').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED ? '' : '').''; + print ''.(getDolGlobalString("ADHERENT_MAIL_REQUIRED") ? '' : '').$langs->trans("EMail").(getDolGlobalString("ADHERENT_MAIL_REQUIRED") ? '' : '').''; print ''.img_picto('', 'object_email', 'class="pictofixedwidth"').'email).'">'; // Website @@ -1335,7 +1336,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''.$langs->trans("PhoneMobile").''; print ''.img_picto('', 'object_phoning_mobile', 'class="pictofixedwidth"').'phone_mobile).'">'; - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { if (!$value['active']) { break; @@ -1349,13 +1350,21 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print $form->selectDate(($object->birth ? $object->birth : -1), 'birth', '', '', 1, 'formsoc'); print "\n"; + // Default language + if (!empty($conf->global->MAIN_MULTILANGS)) { + print ''.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).''."\n"; + print img_picto('', 'language').$formadmin->select_language($object->default_lang, 'default_lang', 0, 0, 1); + print ''; + print ''; + } + // Public profil print "".$langs->trans("Public")."\n"; print $form->selectyesno("public", (GETPOSTISSET("public") ? GETPOST("public", 'alphanohtml', 2) : $object->public), 1); print "\n"; // Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { print ''.$form->editfieldkey("Categories", 'memcats', '', $object, 0).''; print ''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_MEMBER, null, null, null, null, 1); @@ -1372,7 +1381,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Third party Dolibarr - if (!empty($conf->societe->enabled)) { + if (isModEnabled('societe')) { print ''.$langs->trans("LinkedToDolibarrThirdParty").''; if ($object->socid) { $company = new Societe($db); @@ -1445,12 +1454,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $formquestion = array( array('label' => $langs->trans("LoginToCreate"), 'type' => 'text', 'name' => 'login', 'value' => $login) ); - if (!empty($conf->societe->enabled) && $object->socid > 0) { + if (isModEnabled('societe') && $object->socid > 0) { $object->fetch_thirdparty(); $formquestion[] = array('label' => $langs->trans("UserWillBe"), 'type' => 'radio', 'name' => 'internalorexternal', 'default'=>'external', 'values' => array('external'=>$langs->trans("External").' - '.$langs->trans("LinkedToDolibarrThirdParty").' '.$object->thirdparty->getNomUrl(1, '', 0, 1), 'internal'=>$langs->trans("Internal"))); } $text = ''; - if (!empty($conf->societe->enabled) && $object->socid <= 0) { + if (isModEnabled('societe') && $object->socid <= 0) { $text .= $langs->trans("UserWillBeInternalUser").'
'; } $text .= $langs->trans("ConfirmCreateLogin"); @@ -1503,7 +1512,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $outputlangs->loadLangs(array("main", "members", "companies", "install", "other")); // Get email content from template $arraydefaultmessage = null; - $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION; + $labeltouse = getDolGlobalString("ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION"); if (!empty($labeltouse)) { $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); @@ -1535,12 +1544,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Create form popup $formquestion = array(); if ($object->email) { - $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL ?true:false)); + $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => (getDolGlobalString('ADHERENT_DEFAULT_SENDINFOBYMAIL') ? true : false)); } - if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_MAILMAN)) { + if (isModEnabled('mailman') && !empty($conf->global->ADHERENT_USE_MAILMAN)) { $formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>''); } - if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_SPIP)) { + if (isModEnabled('mailman') && !empty($conf->global->ADHERENT_USE_SPIP)) { $formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroSpipEnabled"), 'value'=>''); } print $form->formconfirm("card.php?rowid=".$id, $langs->trans("ValidateMember"), $langs->trans("ConfirmValidateMember"), "confirm_valid", $formquestion, 'yes', 1, 220); @@ -1566,7 +1575,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $outputlangs->loadLangs(array("main", "members")); // Get email content from template $arraydefaultmessage = null; - $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION; + $labeltouse = getDolGlobalString('ADHERENT_EMAIL_TEMPLATE_CANCELATION'); if (!empty($labeltouse)) { $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); @@ -1688,7 +1697,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { $rowspan++; } - if (!empty($conf->societe->enabled)) { + if (isModEnabled('societe')) { $rowspan++; } @@ -1779,7 +1788,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)) { print ''; print ''; + // Default language + if (!empty($conf->global->MAIN_MULTILANGS)) { + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + print ''; + } + // Public print ''; @@ -1796,9 +1818,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; // Third party Dolibarr - if (!empty($conf->societe->enabled)) { + if (isModEnabled('societe')) { print ''; @@ -369,7 +440,7 @@ if (!isset($_SERVER['WINDIR'])) { print ''; print ''; print ''; print ''; print ''; print ''; print ''; - // Show example of numbering model + // Show example of numbering module print '
'.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_MEMBER, 1); @@ -1789,6 +1798,19 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Birth Date print '
'.$langs->trans("DateOfBirth").''.dol_print_date($object->birth, 'day').'
'.$langs->trans("DefaultLang").''; + //$s=picto_from_langcode($object->default_lang); + //print ($s?$s.' ':''); + $langs->load("languages"); + $labellang = ($object->default_lang ? $langs->trans('Language_'.$object->default_lang) : ''); + print picto_from_langcode($object->default_lang, 'class="paddingrightonly saturatemedium opacitylow"'); + print $labellang; + print '
'.$langs->trans("Public").''.yn($object->public).'
'; - $editenable = $user->rights->adherent->creer; + $editenable = $user->hasRight('adherent', 'creer'); print $form->editfieldkey('LinkedToDolibarrThirdParty', 'thirdparty', '', $object, $editenable); print ''; if ($action == 'editthirdparty') { @@ -1835,7 +1857,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Login Dolibarr - Link to user print '
'; - $editenable = $user->rights->adherent->creer && $user->rights->user->user->creer; + $editenable = $user->hasRight('adherent', 'creer') && $user->rights->user->user->creer; print $form->editfieldkey('LinkedToDolibarrUser', 'login', '', $object, $editenable); print ''; if ($action == 'editlogin') { @@ -1879,7 +1901,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Send card by email // TODO Remove this to replace with a template /* - if ($user->rights->adherent->creer) { + if ($user->hasRight('adherent', 'creer')) { if (Adherent::STATUS_VALIDATED == $object->statut) { if ($object->email) print ''.$langs->trans("SendCardByMail")."\n"; else print ''.$langs->trans("SendCardByMail")."\n"; @@ -1891,7 +1913,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { }*/ // Modify - if (!empty($user->rights->adherent->creer)) { + if ($user->hasRight('adherent', 'creer')) { print ''.$langs->trans("Modify").''."\n"; } else { print ''.$langs->trans("Modify").''."\n"; @@ -1899,7 +1921,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Validate if (Adherent::STATUS_DRAFT == $object->statut) { - if ($user->rights->adherent->creer) { + if ($user->hasRight('adherent', 'creer')) { print ''.$langs->trans("Validate").''."\n"; } else { print ''.$langs->trans("Validate").''."\n"; @@ -1908,7 +1930,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Reactivate if (Adherent::STATUS_RESILIATED == $object->statut || Adherent::STATUS_EXCLUDED == $object->statut) { - if ($user->rights->adherent->creer) { + if ($user->hasRight('adherent', 'creer')) { print ''.$langs->trans("Reenable")."\n"; } else { print ''.$langs->trans("Reenable").''."\n"; @@ -1934,7 +1956,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Create third party - if (!empty($conf->societe->enabled) && !$object->socid) { + if (isModEnabled('societe') && !$object->socid) { if ($user->rights->societe->creer) { if (Adherent::STATUS_DRAFT != $object->statut) { print ''.$langs->trans("CreateDolibarrThirdParty").''."\n"; @@ -1960,7 +1982,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Action SPIP - if (!empty($conf->mailmanspip->enabled) && !empty($conf->global->ADHERENT_USE_SPIP)) { + if (isModEnabled('mailmanspip') && !empty($conf->global->ADHERENT_USE_SPIP)) { $isinspip = $mailmanspip->is_in_spip($object); if ($isinspip == 1) { @@ -2000,7 +2022,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $filedir = $conf->adherent->dir_output.'/'.get_exdir(0, 0, 0, 1, $object, 'member'); $urlsource = $_SERVER['PHP_SELF'].'?id='.$object->id; $genallowed = $user->rights->adherent->lire; - $delallowed = $user->rights->adherent->creer; + $delallowed = $user->hasRight('adherent', 'creer'); print $formfile->showdocuments('member', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', (empty($object->default_lang) ? '' : $object->default_lang), '', $object); $somethingshown = $formfile->numoffiles; @@ -2017,20 +2039,25 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { */ // 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) { print '
'; - + if (empty($amount)) { // Take the maximum amount among what the member is supposed to pay / has paid in the past + $amount = price(max($adht->amount, $object->first_subscription_amount, $object->last_subscription_amount)); + } + if (empty($amount)) { + $amount = 0; + } require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; - print showOnlinePaymentUrl('membersubscription', $object->ref); + print showOnlinePaymentUrl('membersubscription', $object->ref, $amount); } print '
'; $MAX = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/adherents/agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/adherents/agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php index 94621195ac9..e9eb00d23f7 100644 --- a/htdocs/adherents/cartes/carte.php +++ b/htdocs/adherents/cartes/carte.php @@ -79,7 +79,7 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) { } $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.country = c.rowid"; - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + 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."adherent_extrafields as ef on (d.rowid = ef.fk_object)"; } $sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1"; @@ -110,7 +110,7 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) { $adherentstatic->firstname = $objp->firstname; // Format extrafield so they can be parsed in function complete_substitutions_array - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $adherentstatic->array_options = array(); foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { $tmpkey = 'options_'.$key; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 39b6eaa97d0..73c527cb2eb 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -215,6 +215,12 @@ class Adherent extends CommonObject */ public $public; + /** + * Default language code of member (en_US, ...) + * @var string + */ + public $default_lang; + /** * @var string photo of member */ @@ -328,8 +334,9 @@ class Adherent extends CommonObject 'photo' => array('type' => 'varchar(255)', 'label' => 'Photo', 'enabled' => 1, 'visible' => -1, 'position' => 135), 'public' => array('type' => 'smallint(6)', 'label' => 'Public', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 145), 'datefin' => array('type' => 'datetime', 'label' => 'DateEnd', 'enabled' => 1, 'visible' => -1, 'position' => 150), - '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), + 'default_lang' =>array('type'=>'varchar(6)', 'label'=>'Default lang', 'enabled'=>1, 'visible'=>-1, 'position'=> 153), + 'note_public' => array('type' => 'text', 'label' => 'NotePublic', 'enabled' => 1, 'visible' => 0, 'position' => 155), + 'note_private' => array('type' => 'text', 'label' => 'NotePrivate', 'enabled' => 1, 'visible' => 0, 'position' => 160), 'datevalid' => array('type' => 'datetime', 'label' => 'DateValidation', 'enabled' => 1, 'visible' => -1, 'position' => 165), 'datec' => array('type' => 'datetime', 'label' => 'DateCreation', 'enabled' => 1, 'visible' => -1, 'position' => 170), 'tms' => array('type' => 'timestamp', 'label' => 'DateModification', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 175), @@ -656,6 +663,8 @@ class Adherent extends CommonObject { global $conf, $langs, $hookmanager; + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + $nbrowsaffected = 0; $error = 0; @@ -670,11 +679,10 @@ class Adherent extends CommonObject $this->town = ($this->town ? $this->town : $this->town); $this->country_id = ($this->country_id > 0 ? $this->country_id : $this->country_id); $this->state_id = ($this->state_id > 0 ? $this->state_id : $this->state_id); - $this->setUpperOrLowerCase(); $this->note_public = ($this->note_public ? $this->note_public : $this->note_public); $this->note_private = ($this->note_private ? $this->note_private : $this->note_private); $this->url = $this->url ?clean_url($this->url, 0) : ''; - + $this->setUpperOrLowerCase(); // Check parameters if (!empty($conf->global->ADHERENT_MAIL_REQUIRED) && !isValidEMail($this->email)) { $langs->load("errors"); @@ -711,9 +719,11 @@ class Adherent extends CommonObject $sql .= ", photo = ".($this->photo ? "'".$this->db->escape($this->photo)."'" : "null"); $sql .= ", public = '".$this->db->escape($this->public)."'"; $sql .= ", statut = ".$this->db->escape($this->statut); + $sql .= ", default_lang = ".(!empty($this->default_lang) ? "'".$this->db->escape($this->default_lang)."'" : "null"); $sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid); $sql .= ", morphy = '".$this->db->escape($this->morphy)."'"; $sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null"); + if ($this->datefin) { $sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription } @@ -834,6 +844,8 @@ class Adherent extends CommonObject $luser->office_phone = $this->phone; $luser->user_mobile = $this->phone_mobile; + $luser->lang = $this->default_lang; + $luser->fk_member = $this->id; $result = $luser->update($user, 0, 1, 1); // Use nosync to 1 to avoid cyclic updates @@ -869,6 +881,7 @@ class Adherent extends CommonObject $lthirdparty->state_id = $this->state_id; $lthirdparty->country_id = $this->country_id; //$lthirdparty->phone_mobile=$this->phone_mobile; + $lthirdparty->default_lang = $this->default_lang; $result = $lthirdparty->update($this->fk_soc, $user, 0, 1, 1, 'update'); // Use sync to 0 to avoid cyclic updates @@ -961,10 +974,10 @@ class Adherent extends CommonObject } /** - * Fonction qui supprime l'adherent et les donnees associees + * Fonction to delete a member and its data * * @param int $rowid Id of member to delete - * @param User $user User object + * @param User $user User object * @param int $notrigger 1=Does not execute triggers, 0= execute triggers * @return int <0 if KO, 0=nothing to do, >0 if OK */ @@ -1093,7 +1106,7 @@ class Adherent extends CommonObject // Mise a jour $sql = "UPDATE ".MAIN_DB_PREFIX."adherent"; $sql .= " SET pass_crypted = '".$this->db->escape($password_crypted)."'"; - //if (! empty($conf->global->DATABASE_PWD_ENCRYPTED)) + //if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) if ($isencrypted) { $sql .= ", pass = null"; } else { @@ -1315,7 +1328,7 @@ class Adherent extends CommonObject $sql .= " d.photo, d.fk_adherent_type, d.morphy, d.entity,"; $sql .= " d.datec as datec,"; $sql .= " d.tms as datem,"; - $sql .= " d.datefin as datefin,"; + $sql .= " d.datefin as datefin, d.default_lang,"; $sql .= " d.birth as birthday,"; $sql .= " d.datevalid as datev,"; $sql .= " d.country,"; @@ -1408,6 +1421,8 @@ class Adherent extends CommonObject $this->date_validation = $this->db->jdate($obj->datev); $this->birth = $this->db->jdate($obj->birthday); + $this->default_lang = $obj->default_lang; + $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->morphy = $obj->morphy; @@ -1760,7 +1775,7 @@ class Adherent extends CommonObject if (!$error) { // Add line to draft invoice $idprodsubscription = 0; - if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) { + if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (isModEnabled("product") || isModEnabled("service"))) { $idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS; } @@ -1813,7 +1828,7 @@ class Adherent extends CommonObject if (!$error) { // Create payment line for invoice $paiement_id = $paiement->create($user); - if (!$paiement_id > 0) { + if (!($paiement_id > 0)) { $this->error = $paiement->error; $this->errors = $paiement->errors; $error++; @@ -1852,10 +1867,10 @@ class Adherent extends CommonObject $outputlangs = $langs; $newlang = ''; $lang_id = GETPOST('lang_id'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && !empty($lang_id)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && !empty($lang_id)) { $newlang = $lang_id; } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $customer->default_lang; } if (!empty($newlang)) { @@ -2044,7 +2059,7 @@ class Adherent extends CommonObject $err = 0; // mailman - if (!empty($conf->global->ADHERENT_USE_MAILMAN) && !empty($conf->mailmanspip->enabled)) { + if (!empty($conf->global->ADHERENT_USE_MAILMAN) && isModEnabled('mailmanspip')) { $result = $mailmanspip->add_to_mailman($this); if ($result < 0) { @@ -2064,7 +2079,7 @@ class Adherent extends CommonObject } // spip - if (!empty($conf->global->ADHERENT_USE_SPIP) && !empty($conf->mailmanspip->enabled)) { + if (!empty($conf->global->ADHERENT_USE_SPIP) && isModEnabled('mailmanspip')) { $result = $mailmanspip->add_to_spip($this); if ($result < 0) { $this->errors[] = $mailmanspip->error; @@ -2115,7 +2130,7 @@ class Adherent extends CommonObject } } - if ($conf->global->ADHERENT_USE_SPIP && !empty($conf->mailmanspip->enabled)) { + if ($conf->global->ADHERENT_USE_SPIP && isModEnabled('mailmanspip')) { $result = $mailmanspip->del_to_spip($this); if ($result < 0) { $this->errors[] = $mailmanspip->error; @@ -2557,6 +2572,7 @@ class Adherent extends CommonObject $this->datefin = $now; $this->datevalid = $now; + $this->default_lang = ''; $this->typeid = 1; // Id type adherent $this->type = 'Type adherent'; // Libelle type adherent @@ -2777,24 +2793,10 @@ class Adherent 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_mod) { - $muser = new User($this->db); - $muser->fetch($obj->fk_user_mod); - $this->user_modification = $muser; - } + $this->user_creation_id = $obj->fk_user_author; + $this->user_validation_id = $obj->fk_user_valid; + $this->user_modification_id = $obj->fk_user_mod; $this->date_creation = $this->db->jdate($obj->datec); $this->date_validation = $this->db->jdate($obj->datev); $this->date_modification = $this->db->jdate($obj->datem); diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index cafc9338ae8..12735e70211 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -94,6 +94,11 @@ class AdherentType extends CommonObject */ public $amount; + /** + * @var int Amount can be choosen by the visitor during subscription (0 or 1) + */ + public $caneditamount; + /** * @var string Public note * @deprecated @@ -121,6 +126,9 @@ class AdherentType extends CommonObject /** @var array Array of members */ public $members = array(); + /** @var string string other */ + public $other = array(); + public $multilangs = array(); @@ -377,6 +385,7 @@ class AdherentType extends CommonObject $sql .= "morphy = '".$this->db->escape($this->morphy)."',"; $sql .= "subscription = '".$this->db->escape($this->subscription)."',"; $sql .= "amount = ".((empty($this->amount) && $this->amount == '') ? 'null' : ((float) $this->amount)).","; + $sql .= "caneditamount = ".((int) $this->caneditamount).","; $sql .= "duration = '".$this->db->escape($this->duration_value.$this->duration_unit)."',"; $sql .= "note = '".$this->db->escape($this->note_public)."',"; $sql .= "vote = ".(integer) $this->db->escape($this->vote).","; @@ -431,6 +440,7 @@ class AdherentType extends CommonObject /** * Function to delete the member's status + * TODO Add param "User $user" * * @return int > 0 if OK, 0 if not found, < 0 if KO */ @@ -471,7 +481,7 @@ class AdherentType extends CommonObject { global $langs, $conf; - $sql = "SELECT d.rowid, d.libelle as label, d.morphy, d.statut as status, d.duration, d.subscription, d.amount, d.mail_valid, d.note as note_public, d.vote"; + $sql = "SELECT d.rowid, d.libelle as label, d.morphy, d.statut as status, d.duration, d.subscription, d.amount, d.caneditamount, d.mail_valid, d.note as note_public, d.vote"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; $sql .= " WHERE d.rowid = ".(int) $rowid; @@ -492,6 +502,7 @@ class AdherentType extends CommonObject $this->duration_unit = substr($obj->duration, -1); $this->subscription = $obj->subscription; $this->amount = $obj->amount; + $this->caneditamount = $obj->caneditamount; $this->mail_valid = $obj->mail_valid; $this->note = $obj->note_public; // deprecated $this->note_public = $obj->note_public; @@ -847,6 +858,7 @@ class AdherentType extends CommonObject $this->note_public = 'This is a public note'; $this->mail_valid = 'This is welcome email'; $this->subscription = 1; + $this->caneditamount = 0; $this->vote = 0; $this->status = 1; diff --git a/htdocs/adherents/class/api_members.class.php b/htdocs/adherents/class/api_members.class.php index d30e851b9a2..35ab65e9d82 100644 --- a/htdocs/adherents/class/api_members.class.php +++ b/htdocs/adherents/class/api_members.class.php @@ -2,7 +2,7 @@ /* Copyright (C) 2016 Xebax Christy * Copyright (C) 2017 Regis Houssin * Copyright (C) 2020 Thibault FOUCART - * Copyright (C) 2020 Frédéric France + * Copyright (C) 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 @@ -286,7 +286,7 @@ class Members extends DolibarrApi */ public function post($request_data = null) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } // Check mandatory fields @@ -311,7 +311,7 @@ class Members extends DolibarrApi */ public function put($id, $request_data = null) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } diff --git a/htdocs/adherents/class/api_subscriptions.class.php b/htdocs/adherents/class/api_subscriptions.class.php index f969017146b..0512ea46b20 100644 --- a/htdocs/adherents/class/api_subscriptions.class.php +++ b/htdocs/adherents/class/api_subscriptions.class.php @@ -173,7 +173,7 @@ class Subscriptions extends DolibarrApi */ public function put($id, $request_data = null) { - if (!DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->hasRight('adherent', 'creer')) { throw new RestException(401); } diff --git a/htdocs/adherents/class/subscription.class.php b/htdocs/adherents/class/subscription.class.php index 9aef78174de..b3cfe027197 100644 --- a/htdocs/adherents/class/subscription.class.php +++ b/htdocs/adherents/class/subscription.class.php @@ -490,17 +490,17 @@ class Subscription extends CommonObject $sql .= ' FROM '.MAIN_DB_PREFIX.'subscription as c'; $sql .= ' WHERE c.rowid = '.((int) $id); - $result = $this->db->query($sql); - if ($result) { - if ($this->db->num_rows($result)) { - $obj = $this->db->fetch_object($result); + $resql = $this->db->query($sql); + if ($resql) { + if ($this->db->num_rows($resql)) { + $obj = $this->db->fetch_object($resql); $this->id = $obj->rowid; $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->datem); } - $this->db->free($result); + $this->db->free($resql); } else { dol_print_error($this->db); } diff --git a/htdocs/adherents/document.php b/htdocs/adherents/document.php index 3dcab7a9c4c..bce8227ab57 100644 --- a/htdocs/adherents/document.php +++ b/htdocs/adherents/document.php @@ -25,6 +25,7 @@ * \ingroup societe */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -87,10 +88,10 @@ if ($id > 0 || !empty($ref)) { } // Define variables to determine what the current user can do on the members -$canaddmember = $user->rights->adherent->creer; +$canaddmember = $user->hasRight('adherent', 'creer'); // Define variables to determine what the current user can do on the properties of a member if ($id) { - $caneditfieldmember = $user->rights->adherent->creer; + $caneditfieldmember = $user->hasRight('adherent', 'creer'); } $permissiontoadd = $canaddmember; @@ -128,7 +129,7 @@ if ($id > 0) { $totalsize += $file['size']; } - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } @@ -186,8 +187,8 @@ if ($id > 0) { print dol_get_fiche_end(); $modulepart = 'member'; - $permissiontoadd = $user->rights->adherent->creer; - $permtoedit = $user->rights->adherent->creer; + $permissiontoadd = $user->hasRight('adherent', 'creer'); + $permtoedit = $user->hasRight('adherent', 'creer'); $param = '&id='.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; print "

"; diff --git a/htdocs/adherents/htpasswd.php b/htdocs/adherents/htpasswd.php index 60639193295..a97a0a74d28 100644 --- a/htdocs/adherents/htpasswd.php +++ b/htdocs/adherents/htpasswd.php @@ -23,6 +23,7 @@ * \brief Export page htpasswd of the membership file */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; @@ -33,7 +34,7 @@ $sortfield = GETPOST('sortfield', 'alphanohtml'); $sortorder = GETPOST('sortorder', 'aZ09'); // Security check -if (empty($conf->adherent->enabled)) { +if (!isModEnabled('adherent')) { accessforbidden(); } if (empty($user->rights->adherent->export)) { diff --git a/htdocs/adherents/index.php b/htdocs/adherents/index.php index 2b0c295afbd..388d51be376 100644 --- a/htdocs/adherents/index.php +++ b/htdocs/adherents/index.php @@ -27,19 +27,24 @@ * \brief Home page of membership module */ + +// 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'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("companies", "members")); + + $hookmanager = new HookManager($db); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('membersindex')); -// Load translation files required by the page -$langs->loadLangs(array("companies", "members")); // Security check $result = restrictedArea($user, 'adherent'); @@ -99,12 +104,12 @@ $sql .= " WHERE t.entity IN (".getEntity('member_type').")"; $sql .= " GROUP BY t.rowid, t.libelle, t.subscription, d.statut"; dol_syslog("index.php::select nb of members per type", LOG_DEBUG); -$result = $db->query($sql); -if ($result) { - $num = $db->num_rows($result); +$resql = $db->query($sql); +if ($resql) { + $num = $db->num_rows($resql); $i = 0; while ($i < $num) { - $objp = $db->fetch_object($result); + $objp = $db->fetch_object($resql); $adhtype = new AdherentType($db); $adhtype->id = $objp->rowid; @@ -127,7 +132,7 @@ if ($result) { $i++; } - $db->free($result); + $db->free($resql); } $now = dol_now(); @@ -143,16 +148,16 @@ $sql .= " AND t.rowid = d.fk_adherent_type"; $sql .= " GROUP BY d.fk_adherent_type"; dol_syslog("index.php::select nb of uptodate members by type", LOG_DEBUG); -$result = $db->query($sql); -if ($result) { - $num = $db->num_rows($result); +$resql = $db->query($sql); +if ($resql) { + $num = $db->num_rows($resql); $i = 0; while ($i < $num) { - $objp = $db->fetch_object($result); + $objp = $db->fetch_object($resql); $MembersUpToDate[$objp->fk_adherent_type] = $objp->somme; $i++; } - $db->free(); + $db->free($resql); } /* diff --git a/htdocs/adherents/ldap.php b/htdocs/adherents/ldap.php index db87e514cb5..7f09bccb3d3 100644 --- a/htdocs/adherents/ldap.php +++ b/htdocs/adherents/ldap.php @@ -22,6 +22,7 @@ * \brief Page fiche LDAP adherent */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ldap.lib.php'; @@ -62,10 +63,10 @@ if ($id > 0 || !empty($ref)) { } // Define variables to determine what the current user can do on the members -$canaddmember = $user->rights->adherent->creer; +$canaddmember = $user->hasRight('adherent', 'creer'); // Define variables to determine what the current user can do on the properties of a member if ($id) { - $caneditfieldmember = $user->rights->adherent->creer; + $caneditfieldmember = $user->hasRight('adherent', 'creer'); } // Security check diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index 1936d855a7e..b0e63098322 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -1,7 +1,7 @@ * Copyright (C) 2002-2003 Jean-Louis Bergamo - * Copyright (C) 2004-2016 Laurent Destailleur + * Copyright (C) 2004-2022 Laurent Destailleur * Copyright (C) 2013-2015 Raphaël Doursenaud * Copyright (C) 2014-2016 Juanjo Menent * Copyright (C) 2018 Alexandre Spangaro @@ -27,14 +27,20 @@ * \brief Page to list all members of foundation */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.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/lib/company.lib.php'; + +// Load translation files required by the page $langs->loadLangs(array("members", "companies")); + +// Get parameters $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); @@ -42,6 +48,8 @@ $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'memberslist'; // To manage different context of search + +// Search fields $search = GETPOST("search", 'alpha'); $search_ref = GETPOST("search_ref", 'alpha'); $search_lastname = GETPOST("search_lastname", 'alpha'); @@ -63,6 +71,8 @@ $search_email = GETPOST("search_email", 'alpha'); $search_categ = GETPOST("search_categ", 'int'); $search_filter = GETPOST("search_filter", 'alpha'); $search_status = GETPOST("search_status", 'intcomma'); +$search_morphy = GETPOST("search_morphy", 'alpha'); +$search_import_key = trim(GETPOST("search_import_key", "alpha")); $catid = GETPOST("catid", 'int'); $optioncss = GETPOST('optioncss', 'alpha'); $socid = GETPOST('socid', 'int'); @@ -156,7 +166,8 @@ $arrayfields = array( 'd.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), 'd.birth'=>array('label'=>$langs->trans("Birthday"), 'checked'=>0, 'position'=>500), 'd.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), - 'd.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000) + 'd.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000), + 'd.import_key'=>array('label'=>"ImportId", 'checked'=>0, 'position'=>1100), ); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -172,7 +183,7 @@ $result = restrictedArea($user, 'adherent'); if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } @@ -213,14 +224,15 @@ if (empty($reshook)) { $search_categ = ""; $search_filter = ""; $search_status = ""; + $search_import_key = ''; $catid = ""; $sall = ""; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } // Close - if ($massaction == 'close' && $user->rights->adherent->creer) { + if ($massaction == 'close' && $user->hasRight('adherent', 'creer')) { $tmpmember = new Adherent($db); $error = 0; $nbclose = 0; @@ -250,7 +262,7 @@ if (empty($reshook)) { } // Create external user - if ($massaction == 'createexternaluser' && $user->rights->adherent->creer && $user->rights->user->user->creer) { + if ($massaction == 'createexternaluser' && $user->hasRight('adherent', 'creer') && $user->rights->user->user->creer) { $tmpmember = new Adherent($db); $error = 0; $nbcreated = 0; @@ -290,7 +302,7 @@ if (empty($reshook)) { $objectlabel = 'Members'; $permissiontoread = $user->rights->adherent->lire; $permissiontodelete = $user->rights->adherent->supprimer; - $permissiontoadd = $user->rights->adherent->creer; + $permissiontoadd = $user->hasRight('adherent', 'creer'); $uploaddir = $conf->adherent->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -305,6 +317,8 @@ $formother = new FormOther($db); $membertypestatic = new AdherentType($db); $memberstatic = new Adherent($db); +$title = $langs->trans("Members"); + $now = dol_now(); if ((!empty($search_categ) && $search_categ > 0) || !empty($catid)) { @@ -316,7 +330,7 @@ $sql .= " d.rowid, d.ref, d.login, d.lastname, d.firstname, d.gender, d.societe $sql .= " d.civility, d.datefin, d.address, d.zip, d.town, d.state_id, d.country,"; $sql .= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.birth, d.public, d.photo,"; $sql .= " d.fk_adherent_type as type_id, d.morphy, d.statut, d.datec as date_creation, d.tms as date_update,"; -$sql .= " d.note_private, d.note_public,"; +$sql .= " d.note_private, d.note_public, d.import_key,"; $sql .= " s.nom,"; $sql .= " ".$db->ifsql("d.societe IS NULL", "s.nom", "d.societe")." as companyname,"; $sql .= " t.libelle as type, t.subscription,"; @@ -336,7 +350,7 @@ $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; if (!empty($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)"; } -if ((!empty($search_categ) && $search_categ > 0) || !empty($catid)) { +if ((!empty($search_categ) && ($search_categ > 0 || $search_categ == -2)) || !empty($catid)) { // We need this table joined to the select in order to filter by categ $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_member as cm ON d.rowid = cm.fk_member"; } @@ -377,6 +391,9 @@ if ($search_status != '') { // Peut valoir un nombre ou liste de nombre separes par virgules $sql .= " AND d.statut in (".$db->sanitize($db->escape($search_status)).")"; } +if ($search_morphy != '') { + $sql .= natural_search("d.morphy", $search_morphy); +} if ($search_ref) { $sql .= natural_search("d.ref", $search_ref); } @@ -425,6 +442,9 @@ if ($search_phone_mobile) { if ($search_country) { $sql .= " AND d.country IN (".$db->sanitize($search_country).')'; } +if ($search_import_key) { + $sql .= natural_search("d.import_key", $search_import_key); +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -434,8 +454,6 @@ $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 with no order and no limits $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { @@ -445,15 +463,20 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { } 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); +if ($limit) { + $sql .= $db->plimit($limit + 1, $offset); } -// Add limit -$sql .= $db->plimit($limit + 1, $offset); -dol_syslog("get list", LOG_DEBUG); $resql = $db->query($sql); if (!$resql) { dol_print_error($db); @@ -462,6 +485,7 @@ if (!$resql) { $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) { @@ -471,42 +495,42 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ exit; } -llxHeader('', $langs->trans("Member"), 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'); +$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; +llxHeader('', $title, $help_url); -$titre = $langs->trans("MembersList"); if (GETPOSTISSET("search_status")) { if ($search_status == '-1,1') { // TODO : check this test as -1 == Adherent::STATUS_DRAFT and -2 == Adherent::STATUS_EXLCUDED - $titre = $langs->trans("MembersListQualified"); + $title = $langs->trans("MembersListQualified"); } if ($search_status == Adherent::STATUS_DRAFT) { - $titre = $langs->trans("MembersListToValid"); + $title = $langs->trans("MembersListToValid"); } if ($search_status == Adherent::STATUS_VALIDATED && $filter == '') { - $titre = $langs->trans("MenuMembersValidated"); + $title = $langs->trans("MenuMembersValidated"); } if ($search_status == Adherent::STATUS_VALIDATED && $filter == 'withoutsubscription') { - $titre = $langs->trans("MembersWithSubscriptionToReceive"); + $title = $langs->trans("MembersWithSubscriptionToReceive"); } if ($search_status == Adherent::STATUS_VALIDATED && $filter == 'uptodate') { - $titre = $langs->trans("MembersListUpToDate"); + $title = $langs->trans("MembersListUpToDate"); } if ($search_status == Adherent::STATUS_VALIDATED && $filter == 'outofdate') { - $titre = $langs->trans("MembersListNotUpToDate"); + $title = $langs->trans("MembersListNotUpToDate"); } if ((string) $search_status == (string) Adherent::STATUS_RESILIATED) { // The cast to string is required to have test false when search_status is '' - $titre = $langs->trans("MembersListResiliated"); + $title = $langs->trans("MembersListResiliated"); } if ($search_status == Adherent::STATUS_EXCLUDED) { - $titre = $langs->trans("MembersListExcluded"); + $title = $langs->trans("MembersListExcluded"); } } elseif ($action == 'search') { - $titre = $langs->trans("MembersListQualified"); + $title = $langs->trans("MembersListQualified"); } if ($search_type > 0) { $membertype = new AdherentType($db); $result = $membertype->fetch($search_type); - $titre .= " (".$membertype->label.")"; + $title .= " (".$membertype->label.")"; } $param = ''; @@ -576,6 +600,9 @@ if ($search_filter && $search_filter != '-1') { if ($search_status != "" && $search_status != -3) { $param .= "&search_status=".urlencode($search_status); } +if ($search_import_key != '') { + $param .= '&search_import_key='.urlencode($search_import_key); +} if ($search_type > 0) { $param .= "&search_type=".urlencode($search_type); } @@ -587,10 +614,10 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; // List of mass actions available $arrayofmassactions = array( - //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').' '.$langs->trans("SendByMail"), + //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), ); -if ($user->rights->adherent->creer) { +if ($user->hasRight('adherent', 'creer')) { $arrayofmassactions['close'] = img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Resiliate"); } if ($user->rights->adherent->supprimer) { @@ -599,16 +626,16 @@ if ($user->rights->adherent->supprimer) { if ($user->rights->societe->creer) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } -if ($user->rights->adherent->creer && $user->rights->user->user->creer) { +if ($user->hasRight('adherent', 'creer') && $user->rights->user->user->creer) { $arrayofmassactions['createexternaluser'] = img_picto('', 'user', 'class="pictofixedwidth"').$langs->trans("CreateExternalUser"); } -if (in_array($massaction, array('presend', 'predelete', 'preaffecttag'))) { +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete', 'preaffecttag'))) { $arrayofmassactions = array(); } $massactionbutton = $form->selectMassAction('', $arrayofmassactions); $newcardbutton = ''; -if ($user->rights->adherent->creer) { +if ($user->hasRight('adherent', 'creer')) { $newcardbutton .= dolGetButtonTitle($langs->trans('NewMember'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/adherents/card.php?action=create'); } @@ -623,7 +650,7 @@ print ''; print ''; print ''; -print_barre_liste($titre, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, $object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, $object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); $topicmail = "Information"; $modelmail = "member"; @@ -640,7 +667,7 @@ if ($sall) { // Filter on categories $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 .= '
'; $moreforfilter .= img_picto($langs->trans('Categories'), 'category', 'class="pictofixedlength"').$formother->select_categories(Categorie::TYPE_MEMBER, $search_categ, 'search_categ', 1); @@ -660,7 +687,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 if ($massactionbutton) { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); } @@ -668,10 +695,15 @@ if ($massactionbutton) { print '
'; print ''."\n"; - // Line for filters fields print ''; - +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} // Line numbering if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) { print ''; @@ -711,6 +743,11 @@ if (!empty($arrayfields['d.login']['checked'])) { } if (!empty($arrayfields['d.morphy']['checked'])) { print ''; +} +if (!empty($arrayfields['t.libelle']['checked'])) { print ''; } if (!empty($arrayfields['t.libelle']['checked'])) { @@ -806,15 +843,24 @@ if (!empty($arrayfields['d.statut']['checked'])) { print $form->selectarray('search_status', $liststatus, $search_status, -3); print ''; } -// Action column -print ''; - +if (!empty($arrayfields['d.import_key']['checked'])) { + print ''; +} +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + // Action 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 actioncolumn '); +} if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) { print_liste_field_titre("ID", $_SERVER["PHP_SELF"], '', '', $param, 'align="center"', $sortfield, $sortorder); } @@ -894,7 +940,12 @@ if (!empty($arrayfields['d.tms']['checked'])) { if (!empty($arrayfields['d.statut']['checked'])) { print_liste_field_titre($arrayfields['d.statut']['label'], $_SERVER["PHP_SELF"], "d.statut", "", $param, 'class="right"', $sortfield, $sortorder); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +if (!empty($arrayfields['d.import_key']['checked'])) { + print_liste_field_titre($arrayfields['d.import_key']['label'], $_SERVER["PHP_SELF"], "d.import_key", "", $param, '', $sortfield, $sortorder, 'center '); +} +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +} print "\n"; $i = 0; @@ -934,8 +985,21 @@ while ($i < min($num, $limit)) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -1066,9 +1130,9 @@ while ($i < min($num, $limit)) { } // Country if (!empty($arrayfields['country.code_iso']['checked'])) { - print ''; if (!$i) { $totalarray['nbfield']++; @@ -1171,21 +1235,31 @@ while ($i < min($num, $limit)) { $totalarray['nbfield']++; } } - // Action column - print '\n"; + if (!$i) { + $totalarray['nbfield']++; } - print ''; } - print ''; + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } if (!$i) { $totalarray['nbfield']++; } - print "\n"; + print ''."\n"; $i++; } diff --git a/htdocs/adherents/note.php b/htdocs/adherents/note.php index 2d98dfe5fbc..ea5e22fe153 100644 --- a/htdocs/adherents/note.php +++ b/htdocs/adherents/note.php @@ -23,26 +23,35 @@ * \brief Tab for note of a member */ + +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; + // Load translation files required by the page $langs->loadLangs(array("companies", "members", "bills")); + +// Get parameters $action = GETPOST('action', 'aZ09'); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alphanohtml'); + +// Initialize objects $object = new Adherent($db); + $result = $object->fetch($id); if ($result > 0) { $adht = new AdherentType($db); $result = $adht->fetch($object->typeid); } -$permissionnote = $user->rights->adherent->creer; // Used by the include of actions_setnotes.inc.php + +$permissionnote = $user->hasRight('adherent', 'creer'); // Used by the include of actions_setnotes.inc.php // Fetch object if ($id > 0 || !empty($ref)) { @@ -62,10 +71,10 @@ if ($id > 0 || !empty($ref)) { } // Define variables to determine what the current user can do on the members -$canaddmember = $user->rights->adherent->creer; +$canaddmember = $user->hasRight('adherent', 'creer'); // Define variables to determine what the current user can do on the properties of a member if ($id) { - $caneditfieldmember = $user->rights->adherent->creer; + $caneditfieldmember = $user->hasRight('adherent', 'creer'); } $hookmanager->initHooks(array('membernote')); @@ -120,7 +129,7 @@ if ($id) { // Login if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { - print ''; + print ''; } // Type @@ -134,10 +143,10 @@ if ($id) { print ''; // Company - print ''; + print ''; // Civility - print ''; + print ''; print ''; print "
'; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ' '; + $arraymorphy = array('mor'=>$langs->trans("Moral"), 'phy'=>$langs->trans("Physical")); + print $form->selectarray('search_morphy', $arraymorphy, $search_morphy, 1); + print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + print ''; + 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 ''.$obj->rowid.''.$obj->rowid.''; $tmparray = getCountry($obj->country, 'all'); - print $tmparray['label']; + print ''; + print dol_escape_htmltag($tmparray['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; + if (!empty($arrayfields['d.import_key']['checked'])) { + print ''; + print dol_escape_htmltag($obj->import_key); + 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 '
'.$langs->trans("Login").' / '.$langs->trans("Id").''.$object->login.' 
'.$langs->trans("Login").' / '.$langs->trans("Id").''.dol_escape_htmltag($object->login).'
'.$langs->trans("Company").''.$object->company.'
'.$langs->trans("Company").''.dol_escape_htmltag($object->company).'
'.$langs->trans("UserTitle").''.$object->getCivilityLabel().' 
'.$langs->trans("UserTitle").''.$object->getCivilityLabel().'
"; @@ -146,7 +155,7 @@ if ($id) { $cssclass = 'titlefield'; - $permission = $user->rights->adherent->creer; // Used by the include of notes.tpl.php + $permission = $user->hasRight('adherent', 'creer'); // Used by the include of notes.tpl.php include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; diff --git a/htdocs/adherents/partnership.php b/htdocs/adherents/partnership.php index 160a037c187..805a3137226 100644 --- a/htdocs/adherents/partnership.php +++ b/htdocs/adherents/partnership.php @@ -85,11 +85,18 @@ $usercanclose = $user->rights->partnership->write; // Used by the include of $upload_dir = $conf->partnership->multidir_output[isset($object->entity) ? $object->entity : 1]; -if ($conf->global->PARTNERSHIP_IS_MANAGED_FOR != 'member') accessforbidden(); -if (empty($conf->partnership->enabled)) accessforbidden(); -if (empty($permissiontoread)) accessforbidden(); -if ($action == 'edit' && empty($permissiontoadd)) accessforbidden(); - +if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') != 'member') { + accessforbidden('Partnership module is not activated for members'); +} +if (!isModEnabled('partnership')) { + accessforbidden(); +} +if (empty($permissiontoread)) { + accessforbidden(); +} +if ($action == 'edit' && empty($permissiontoadd)) { + accessforbidden(); +} if (($action == 'update' || $action == 'edit') && $object->status != $object::STATUS_DRAFT) { accessforbidden(); } @@ -144,7 +151,7 @@ if ($id > 0) { $object = new Adherent($db); $result = $object->fetch($id); - if (!empty($conf->notification->enabled)) { + if (isModEnabled('notification')) { $langs->load("mails"); } diff --git a/htdocs/adherents/stats/byproperties.php b/htdocs/adherents/stats/byproperties.php index 63deec867ef..f632a1ea9c7 100644 --- a/htdocs/adherents/stats/byproperties.php +++ b/htdocs/adherents/stats/byproperties.php @@ -21,6 +21,7 @@ * \brief Page with statistics on members */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php index 3490f61d006..bb65a1047a8 100644 --- a/htdocs/adherents/stats/geo.php +++ b/htdocs/adherents/stats/geo.php @@ -21,6 +21,7 @@ * \brief Page with geographical statistics on members */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/adherents/stats/index.php b/htdocs/adherents/stats/index.php index 0854b94bff2..11447dcd8bb 100644 --- a/htdocs/adherents/stats/index.php +++ b/htdocs/adherents/stats/index.php @@ -23,6 +23,7 @@ * \brief Page of subscription members statistics */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherentstats.class.php'; diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php index 7dccaa90eda..db40a8ad465 100644 --- a/htdocs/adherents/subscription.php +++ b/htdocs/adherents/subscription.php @@ -27,6 +27,7 @@ * \brief tab for Adding, editing, deleting a member's memberships */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -112,10 +113,10 @@ if ($id > 0 || !empty($ref)) { } // Define variables to determine what the current user can do on the members -$canaddmember = $user->rights->adherent->creer; +$canaddmember = $user->hasRight('adherent', 'creer'); // Define variables to determine what the current user can do on the properties of a member if ($id) { - $caneditfieldmember = $user->rights->adherent->creer; + $caneditfieldmember = $user->hasRight('adherent', 'creer'); } // Security check @@ -271,7 +272,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && ! $action = 'addsubscription'; } else { // If an amount has been provided, we check also fields that becomes mandatory when amount is not null. - if (!empty($conf->banque->enabled) && GETPOST("paymentsave") != 'none') { + if (isModEnabled('banque') && GETPOST("paymentsave") != 'none') { if (GETPOST("subscription")) { if (!GETPOST("label")) { $errmsg = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")); @@ -475,7 +476,7 @@ if ($rowid > 0) { if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { $rowspan++; } - if (!empty($conf->societe->enabled)) { + if (isModEnabled('societe')) { $rowspan++; } @@ -571,7 +572,7 @@ if ($rowid > 0) { print ''; // Tags / Categories - if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { + if (isModEnabled('categorie') && !empty($user->rights->categorie->lire)) { print ''; print ''; + print ''; + print ''; diff --git a/htdocs/adherents/type_ldap.php b/htdocs/adherents/type_ldap.php index d7650a8de2b..058e36fe1bd 100644 --- a/htdocs/adherents/type_ldap.php +++ b/htdocs/adherents/type_ldap.php @@ -22,6 +22,7 @@ * \brief Page fiche LDAP members types */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; diff --git a/htdocs/adherents/type_translation.php b/htdocs/adherents/type_translation.php index 256f29b6b81..5e1db1233b8 100644 --- a/htdocs/adherents/type_translation.php +++ b/htdocs/adherents/type_translation.php @@ -25,6 +25,7 @@ * \brief Member translation page */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -34,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; // Load translation files required by the page $langs->loadLangs(array('members', 'languages')); -$id = GETPOST('rowid', 'int'); +$id = GETPOST('rowid', 'int') ? GETPOST('rowid', 'int') : GETPOST('id', 'int'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); $ref = GETPOST('ref', 'alphanohtml'); @@ -61,7 +62,12 @@ if ($cancel == $langs->trans("Cancel")) { if ($action == 'delete' && GETPOST('langtodelete', 'alpha')) { $object = new AdherentType($db); $object->fetch($id); - $object->delMultiLangs(GETPOST('langtodelete', 'alpha'), $user); + $result = $object->delMultiLangs(GETPOST('langtodelete', 'alpha'), $user); + if ($result > 0) { + setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); + header("Location: ".$_SERVER["PHP_SELF"].'?id='.$id); + exit; + } } // Add translation @@ -220,7 +226,7 @@ if ($action == 'edit') { print '
'.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_MEMBER, 1); @@ -589,12 +590,12 @@ if ($rowid > 0) { include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; // Third party Dolibarr - if (!empty($conf->societe->enabled)) { + if (isModEnabled('societe')) { print '
'; print ''; - if ($action != 'editthirdparty' && $user->rights->adherent->creer) { + if ($action != 'editthirdparty' && $user->hasRight('adherent', 'creer')) { print ''; } print '
'; print $langs->trans("LinkedToDolibarrThirdParty"); print 'id.'">'.img_edit($langs->trans('SetLinkToThirdParty'), 1).'
'; @@ -636,7 +637,7 @@ if ($rowid > 0) { print ''; - if ($action != 'editlogin' && $user->rights->adherent->creer) { + if ($action != 'editlogin' && $user->hasRight('adherent', 'creer')) { print '\n"; @@ -753,7 +754,7 @@ if ($rowid > 0) { print '\n"; print '\n"; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled('banque')) { print ''; @@ -797,7 +798,7 @@ if ($rowid > 0) { if (($action != 'addsubscription' && $action != 'create_thirdparty')) { // Shon 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) { print '
'; @@ -831,11 +832,11 @@ if ($rowid > 0) { $bankviainvoice = 1; } } else { - if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) { + if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && isModEnabled('banque') && isModEnabled('societe') && isModEnabled('facture')) { $bankviainvoice = 1; - } 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')) { $bankdirect = 1; - } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) { + } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && isModEnabled('banque') && isModEnabled('societe') && isModEnabled('facture')) { $invoiceonly = 1; } } @@ -982,7 +983,7 @@ if ($rowid > 0) { print '">'; // Complementary action - if ((!empty($conf->banque->enabled) || !empty($conf->facture->enabled)) && empty($conf->global->ADHERENT_SUBSCRIPTION_HIDECOMPLEMENTARYACTIONS)) { + if ((isModEnabled('banque') || isModEnabled('facture')) && empty($conf->global->ADHERENT_SUBSCRIPTION_HIDECOMPLEMENTARYACTIONS)) { $company = new Societe($db); if ($object->fk_soc) { $result = $company->fetch($object->fk_soc); @@ -998,12 +999,12 @@ if ($rowid > 0) { print ''; print '
'; // Add entry into bank accoun - if (!empty($conf->banque->enabled)) { + if (isModEnabled('banque')) { print '
'; } // Add invoice with no payments - if (!empty($conf->societe->enabled) && !empty($conf->facture->enabled)) { + if (isModEnabled('societe') && isModEnabled('facture')) { print 'fk_soc)) print ' disabled'; print '>
'; } // Add invoice with payments - if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) { + if (isModEnabled('banque') && isModEnabled('societe') && isModEnabled('facture')) { print 'fk_soc)) print ' disabled'; print '>\n"; // Payment mode print '\n"; // Date of payment diff --git a/htdocs/adherents/subscription/card.php b/htdocs/adherents/subscription/card.php index a18259fefe4..6c477d46239 100644 --- a/htdocs/adherents/subscription/card.php +++ b/htdocs/adherents/subscription/card.php @@ -22,12 +22,13 @@ * \brief Page to add/edit/remove a member subscription */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.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.'/adherents/class/subscription.class.php'; -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; } @@ -229,7 +230,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit') { print ''; // Bank line - if (!empty($conf->banque->enabled) && ($conf->global->ADHERENT_BANK_USE || $object->fk_bank)) { + if (isModEnabled("banque") && (!empty($conf->global->ADHERENT_BANK_USE) || $object->fk_bank)) { print ''; // Bank line - if (!empty($conf->banque->enabled) && ($conf->global->ADHERENT_BANK_USE || $object->fk_bank)) { + if (isModEnabled("banque") && (!empty($conf->global->ADHERENT_BANK_USE) || $object->fk_bank)) { print ''; if (!$i) { diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index bcd6c99afbf..c26a9d13536 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -5,7 +5,7 @@ * Copyright (C) 2005-2017 Regis Houssin * Copyright (C) 2013 Florian Henry * Copyright (C) 2015 Alexandre Spangaro - * Copyright (C) 2019 Thibault Foucart + * Copyright (C) 2019-2022 Thibault Foucart * Copyright (C) 2020 Josep Lluís Amador * Copyright (C) 2021 Waël Almoman * @@ -29,6 +29,7 @@ * \brief Member's type setup */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; @@ -41,6 +42,7 @@ $langs->load("members"); $rowid = GETPOST('rowid', 'int'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); +$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'); $sall = GETPOST("sall", "alpha"); @@ -122,6 +124,7 @@ if ($action == 'add' && $user->rights->adherent->configurer) { $object->status = (int) $status; $object->subscription = (int) $subscription; $object->amount = ($amount == '' ? '' : price2num($amount, 'MT')); + $object->caneditamount = GETPOSTINT("caneditamount"); $object->duration_value = $duration_value; $object->duration_unit = $duration_unit; $object->note = trim($comment); @@ -140,6 +143,7 @@ if ($action == 'add' && $user->rights->adherent->configurer) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors'); } else { $sql = "SELECT libelle FROM ".MAIN_DB_PREFIX."adherent_type WHERE libelle='".$db->escape($object->label)."'"; + $sql .= " WHERE entity IN (".getEntity('member_type').")"; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); @@ -168,12 +172,14 @@ if ($action == 'add' && $user->rights->adherent->configurer) { if ($action == 'update' && $user->rights->adherent->configurer) { $object->fetch($rowid); - $object->oldcopy = clone $object; + $object->oldcopy = dol_clone($object); + $object->label= trim($label); $object->morphy = trim($morphy); $object->status = (int) $status; $object->subscription = (int) $subscription; $object->amount = ($amount == '' ? '' : price2num($amount, 'MT')); + $object->caneditamount = $caneditamount; $object->duration_value = $duration_value; $object->duration_unit = $duration_unit; $object->note = trim($comment); @@ -199,7 +205,7 @@ if ($action == 'update' && $user->rights->adherent->configurer) { exit; } -if ($action == 'confirm_delete' && $user->rights->adherent->configurer) { +if ($action == 'confirm_delete' && !empty($user->rights->adherent->configurer)) { $object->fetch($rowid); $res = $object->delete(); @@ -229,7 +235,7 @@ llxHeader('', $langs->trans("MembersTypeSetup"), $help_url); if (!$rowid && $action != 'create' && $action != 'edit') { //print dol_get_fiche_head(''); - $sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.amount, d.vote, d.statut as status, d.morphy"; + $sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.amount, d.caneditamount, d.vote, d.statut as status, d.morphy"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; $sql .= " WHERE d.entity IN (".getEntity('member_type').")"; @@ -276,6 +282,7 @@ if (!$rowid && $action != 'create' && $action != 'edit') { print ''; print ''; print ''; + print ''; print ''; print ''; print ''; @@ -292,6 +299,7 @@ if (!$rowid && $action != 'create' && $action != 'edit') { $membertype->status = $objp->status; $membertype->subscription = $objp->subscription; $membertype->amount = $objp->amount; + $membertype->caneditamount = $objp->caneditamount; print ''; print ''; print ''; print ''; + print ''; print ''; print ''; if ($user->rights->adherent->configurer) { @@ -380,6 +389,10 @@ if ($action == 'create') { print ''; print ''; + print ''; + print ''; @@ -438,7 +451,7 @@ if ($rowid > 0) { print '
'; print '
'; - print '
'; print $langs->trans("LinkedToDolibarrUser"); print ''; if ($user->rights->user->user->creer) { print 'id.'">'.img_edit($langs->trans('SetLinkToUser'), 1).''; @@ -718,7 +719,7 @@ if ($rowid > 0) { print_liste_field_titre('DateStart', $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre('DateEnd', $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre('Amount', $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); - if (!empty($conf->banque->enabled)) { + if (isModEnabled('banque')) { print_liste_field_titre('Account', $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); } print "
'.dol_print_date($db->jdate($objp->dateh), 'day')."'.dol_print_date($db->jdate($objp->datef), 'day')."'.price($objp->subscription).''; if ($objp->bid) { $accountstatic->label = $objp->label; @@ -762,7 +763,7 @@ if ($rowid > 0) { $accountstatic->account_number = $objp->account_number; $accountstatic->currency_code = $objp->currency_code; - if (!empty($conf->accounting->enabled) && $objp->fk_accountancy_journal > 0) { + if (isModEnabled('accounting') && $objp->fk_accountancy_journal > 0) { $accountingjournal = new AccountingJournal($db); $accountingjournal->fetch($objp->fk_accountancy_journal); @@ -782,7 +783,7 @@ if ($rowid > 0) { if (empty($num)) { $colspan = 6; - if (!empty($conf->banque->enabled)) { + if (isModEnabled('banque')) { $colspan++; } print '
'.$langs->trans("None").'
'.$langs->trans("FinancialAccount").''; print img_picto('', 'bank_account'); - $form->select_comptes(GETPOST('accountid'), 'accountid', 0, '', 2); + $form->select_comptes(GETPOST('accountid'), 'accountid', 0, '', 2, '', 0, 'minwidth200'); print "
'.$langs->trans("PaymentMode").''; - $form->select_types_paiements(GETPOST('operation'), 'operation', '', 2); + print $form->select_types_paiements(GETPOST('operation'), 'operation', '', 2, 1, 0, 0, 1, 'minwidth200', 1); print "
'.$langs->trans("BankTransactionLine").''; if ($object->fk_bank) { $bankline = new AccountLine($db); @@ -270,7 +271,7 @@ if ($rowid && $action != 'edit') { //$formquestion=array(); //$formquestion['text']=''.$langs->trans("ThisWillAlsoDeleteBankRecord").''; $text = $langs->trans("ConfirmDeleteSubscription"); - if (!empty($conf->banque->enabled) && !empty($conf->global->ADHERENT_BANK_USE)) { + if (isModEnabled("banque") && !empty($conf->global->ADHERENT_BANK_USE)) { $text .= '
'.img_warning().' '.$langs->trans("ThisWillAlsoDeleteBankRecord"); } print $form->formconfirm($_SERVER["PHP_SELF"]."?rowid=".$object->id, $langs->trans("DeleteSubscription"), $text, "confirm_delete", $formquestion, 0, 1); @@ -325,7 +326,7 @@ if ($rowid && $action != 'edit') { print '
'.$langs->trans("Label").''.$object->note.'
'.$langs->trans("BankTransactionLine").''; if ($object->fk_bank) { $bankline = new AccountLine($db); diff --git a/htdocs/adherents/subscription/info.php b/htdocs/adherents/subscription/info.php index 9eb431320cd..5faf1d31760 100644 --- a/htdocs/adherents/subscription/info.php +++ b/htdocs/adherents/subscription/info.php @@ -22,6 +22,7 @@ * \brief Page with information of subscriptions of a member */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php index 0b83881e502..1523bd4ee90 100644 --- a/htdocs/adherents/subscription/list.php +++ b/htdocs/adherents/subscription/list.php @@ -23,6 +23,7 @@ * \brief list of subscription */ +// 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'; @@ -89,7 +90,7 @@ $arrayfields = array( 'd.firstname'=>array('label'=>"Firstname", 'checked'=>1), 'd.login'=>array('label'=>"Login", 'checked'=>1), 't.libelle'=>array('label'=>"Label", 'checked'=>1), - 'd.bank'=>array('label'=>"BankAccount", 'checked'=>1, 'enabled'=>(!empty($conf->banque->enabled))), + 'd.bank'=>array('label'=>"BankAccount", 'checked'=>1, 'enabled'=>(isModEnabled('banque'))), /*'d.note_public'=>array('label'=>"NotePublic", 'checked'=>0), 'd.note_private'=>array('label'=>"NotePrivate", 'checked'=>0),*/ 'c.dateadh'=>array('label'=>"DateSubscription", 'checked'=>1, 'position'=>100), @@ -111,7 +112,7 @@ $result = restrictedArea($user, 'adherent', '', '', 'cotisation'); if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } @@ -135,7 +136,7 @@ if (empty($reshook)) { $search_note = ""; $search_amount = ""; $search_account = ""; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } } @@ -598,7 +599,11 @@ while ($i < min($num, $limit)) { if (!$i) { $totalarray['pos'][$totalarray['nbfield']] = 'd.amount'; } - $totalarray['val']['d.amount'] += $obj->subscription; + if (empty($totalarray['val']['d.amount'])) { + $totalarray['val']['d.amount'] = $obj->subscription; + } else { + $totalarray['val']['d.amount'] += $obj->subscription; + } } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; @@ -628,10 +633,10 @@ while ($i < min($num, $limit)) { 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)) { + if (in_array($obj->crowid, $arrayofselected)) { $selected = 1; } - print ''; + print ''; } print ''.$langs->trans("MembersNature").''.$langs->trans("SubscriptionRequired").''.$langs->trans("Amount").''.$langs->trans("CanEditAmountShort").''.$langs->trans("VoteAllowed").''.$langs->trans("Status").' 
'; @@ -310,6 +318,7 @@ if (!$rowid && $action != 'create' && $action != 'edit') { print ''.yn($objp->subscription).''.(is_null($objp->amount) || $objp->amount === '' ? '' : price($objp->amount)).''.yn($objp->caneditamount).''.yn($objp->vote).''.$membertype->getLibStatut(5).'
'.$langs->trans("CanEditAmount").''; + print $form->selectyesno("caneditamount", 0, 1); + print '
'.$langs->trans("VoteAllowed").''; print $form->selectyesno("vote", GETPOSTISSET("vote") ? GETPOST('vote', 'aZ09') : 1, 1); print '
'; + print '
'; // Morphy print ''; @@ -453,6 +466,10 @@ if ($rowid > 0) { print ((is_null($object->amount) || $object->amount === '') ? '' : ''.price($object->amount).''); print ''; + print ''; + print ''; @@ -668,20 +685,23 @@ if ($rowid > 0) { print_liste_field_titre("Action", $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder); print "\n"; - while ($i < $num && $i < $conf->liste_limit) { + $adh = new Adherent($db); + + $imaxinloop = ($limit ? min($num, $limit) : $num); + while ($i < $imaxinloop) { $objp = $db->fetch_object($resql); $datefin = $db->jdate($objp->datefin); - $adh = new Adherent($db); $adh->lastname = $objp->lastname; $adh->firstname = $objp->firstname; $adh->datefin = $datefin; $adh->need_subscription = $objp->subscription; $adh->statut = $objp->status; - // Lastname print ''; + + // Lastname if ($objp->company != '') { print ''."\n"; } else { @@ -689,7 +709,7 @@ if ($rowid > 0) { } // Login - print "\n"; + print "\n"; // Type /*print ''; + } + print "
'.$langs->trans("MembersNature").''.$object->getmorphylib($object->morphy).'
'.$form->textwithpicto($langs->trans("CanEditAmountShort"), $langs->transnoentities("CanEditAmount")).''; + print yn($object->caneditamount); + print '
'.$langs->trans("VoteAllowed").''; print yn($object->vote); print '
'.img_object($langs->trans("ShowMember"), "user", 'class="paddingright"').$adh->getFullName($langs, 0, -1, 20).' / '.dol_trunc($objp->company, 12).'".$objp->login."".dol_escape_htmltag($objp->login)."'; @@ -734,7 +754,7 @@ if ($rowid > 0) { // Actions print ''; - if ($user->rights->adherent->creer) { + if ($user->hasRight('adherent', 'creer')) { print ''.img_edit().''; } if ($user->rights->adherent->supprimer) { @@ -746,11 +766,15 @@ if ($rowid > 0) { $i++; } + if ($i == 0) { + print '
'.$langs->trans("None").'
\n"; print ''; print ''; - if ($num > $conf->liste_limit) { + if ($num > $limit) { print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, ''); } } else { @@ -806,6 +830,10 @@ if ($rowid > 0) { print '">'; print '
'.$form->textwithpicto($langs->trans("CanEditAmountShort"), $langs->transnoentities("CanEditAmountDetail")).''; + print $form->selectyesno("caneditamount", $object->caneditamount); + print '
'.$langs->trans("VoteAllowed").''; print $form->selectyesno("vote", $object->vote, 1); print '
'; print ''; print ''; print ''; @@ -283,7 +289,7 @@ if ($action == 'create' && $user->rights->adherent->configurer) { print ''; print ''; print ''; diff --git a/htdocs/adherents/vcard.php b/htdocs/adherents/vcard.php index 902206c7874..1b5a0e5d0fe 100644 --- a/htdocs/adherents/vcard.php +++ b/htdocs/adherents/vcard.php @@ -25,6 +25,7 @@ * \brief Vcard tab of a member */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; @@ -53,10 +54,10 @@ if ($id > 0 || !empty($ref)) { } // Define variables to determine what the current user can do on the members -$canaddmember = $user->rights->adherent->creer; +$canaddmember = $user->hasRight('adherent', 'creer'); // Define variables to determine what the current user can do on the properties of a member if ($id) { - $caneditfieldmember = $user->rights->adherent->creer; + $caneditfieldmember = $user->hasRight('adherent', 'creer'); } // Security check diff --git a/htdocs/admin/accountant.php b/htdocs/admin/accountant.php index 693170862e9..a98b9984009 100644 --- a/htdocs/admin/accountant.php +++ b/htdocs/admin/accountant.php @@ -21,6 +21,7 @@ * \brief Setup page to configure accountant / auditor */ +// 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'; @@ -46,26 +47,26 @@ $error = 0; */ $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'); } if (($action == 'update' && !GETPOST("cancel", 'alpha')) || ($action == 'updateedit')) { - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NAME", GETPOST("nom", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ADDRESS", GETPOST("address", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_TOWN", GETPOST("town", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ZIP", GETPOST("zipcode", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_STATE", GETPOST("state_id", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_REGION", GETPOST("region_code", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_COUNTRY", GETPOST('country_id', 'int'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_PHONE", GETPOST("tel", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_FAX", GETPOST("fax", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_MAIL", GETPOST("mail", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_WEB", GETPOST("web", 'alpha'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_CODE", GETPOST("code", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NOTE", GETPOST("note", 'restricthtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NAME", GETPOST("nom", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ADDRESS", GETPOST("address", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_TOWN", GETPOST("town", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ZIP", GETPOST("zipcode", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_STATE", GETPOST("state_id", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_REGION", GETPOST("region_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_COUNTRY", GETPOST('country_id', 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_PHONE", GETPOST("tel", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_FAX", GETPOST("fax", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_MAIL", GETPOST("mail", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_WEB", GETPOST("web", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_CODE", GETPOST("code", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NOTE", GETPOST("note", 'restricthtml'), 'chaine', 0, '', $conf->entity); if ($action != 'updateedit' && !$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -74,6 +75,7 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha')) } } + /* * View */ @@ -117,19 +119,21 @@ print ''; print '
'.$langs->trans('Label').'
'.$langs->trans('Description').''; - $doleditor = new DolEditor("desc-$key", $object->multilangs[$key]["description"], '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%'); + $doleditor = new DolEditor("desc-$key", $object->multilangs[$key]["description"], '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_3, '90%'); $doleditor->Create(); print '
'.$langs->trans('Label').'
'.$langs->trans('Description').''; - $doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%'); + $doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_3, '90%'); $doleditor->Create(); print '
'; print ''."\n"; -// Name +// Name of Accountant Company print ''."\n"; +print 'global->MAIN_INFO_ACCOUNTANT_NAME) ? ' autofocus="autofocus"' : '').'>'."\n"; // Address print ''."\n"; +print ''."\n"; +// ZIP print ''."\n"; +print ''."\n"; +// Town/City print ''."\n"; +print ''."\n"; // Country print ''."\n"; +// State print ''."\n"; +// Telephone print ''; +print ''; print ''."\n"; +// Fax print ''; +print ''; print ''."\n"; +// eMail print ''; +print ''; print ''."\n"; // Web print ''; +print ''; print ''."\n"; // Code print ''."\n"; +print ''."\n"; // Note print ''."\n"; print ''."\n"; print ''."\n"; print '"; // Active if ($conf->global->BANK_COLORIZE_MOVEMENT) { print ''; } else { print '"; } @@ -483,13 +473,13 @@ print ''; // Active if ($conf->global->BANK_REPORT_LAST_NUM_RELEVE) { print ''; } else { print '"; } diff --git a/htdocs/admin/bank_extrafields.php b/htdocs/admin/bank_extrafields.php index 35fd9f5271f..b872a22108c 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'; @@ -85,7 +86,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/bankline_extrafields.php b/htdocs/admin/bankline_extrafields.php new file mode 100644 index 00000000000..d86733e4e24 --- /dev/null +++ b/htdocs/admin/bankline_extrafields.php @@ -0,0 +1,118 @@ + + * 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 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 = []; +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'); + +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/admin/barcode.php b/htdocs/admin/barcode.php index ee0fcd5d130..966281cb0d1 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'; @@ -55,6 +56,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 +191,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 +252,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 '
'.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
'; -print 'global->MAIN_INFO_ACCOUNTANT_NAME) ? ' autofocus="autofocus"' : '').'>
'; -print '
'; -print '
'; -print '
'; @@ -140,35 +144,39 @@ if ($user->admin) { } print '
'; print img_picto('', 'state', 'class="pictofixedwidth"'); -print $formcompany->select_state((GETPOSTISSET('state_id') ? GETPOST('state_id', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_STATE) ? $conf->global->MAIN_INFO_ACCOUNTANT_STATE : '')), (GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY) ? $conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY : '')), 'state_id'); +print $formcompany->select_state((GETPOSTISSET('state_id') ? GETPOST('state_id', 'int') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_STATE) ? $conf->global->MAIN_INFO_ACCOUNTANT_STATE : '')), (GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY) ? $conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY : '')), 'state_id'); print '
'; print img_picto('', 'object_phoning', '', false, 0, 0, '', 'pictofixedwidth'); -print '
'; print img_picto('', 'object_phoning_fax', '', false, 0, 0, '', 'pictofixedwidth'); -print '
'; print img_picto('', 'object_email', '', false, 0, 0, '', 'pictofixedwidth'); -print '
'; print img_picto('', 'globe', '', false, 0, 0, '', 'pictofixedwidth'); -print '
'; -print '
'; diff --git a/htdocs/admin/accounting.php b/htdocs/admin/accounting.php index ebe0712b03a..fba458936b8 100644 --- a/htdocs/admin/accounting.php +++ b/htdocs/admin/accounting.php @@ -21,6 +21,7 @@ * \brief Setup page to configure accounting 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/company.lib.php'; diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php index af09d32bc73..c62101ab70b 100644 --- a/htdocs/admin/agenda.php +++ b/htdocs/admin/agenda.php @@ -3,6 +3,7 @@ * Copyright (C) 2011 Regis Houssin * Copyright (C) 2011-2012 Juanjo Menent * 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 @@ -24,6 +25,7 @@ * \brief Autocreate actions for agenda module 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'; @@ -173,6 +175,9 @@ if (!empty($triggers)) { if ($module == 'contact') { $module = 'societe'; } + if ($module == 'facturerec') { + $module = 'facture'; + } // If 'element' value is myobject@mymodule instead of mymodule $tmparray = explode('@', $module); @@ -181,7 +186,7 @@ if (!empty($triggers)) { } //print 'module='.$module.' code='.$trigger['code'].'
'; - if (!empty($conf->$module->enabled)) { + if (isModEnabled($module)) { // Discard special case: If option FICHINTER_CLASSIFY_BILLED is not set, we discard both trigger FICHINTER_CLASSIFY_BILLED and FICHINTER_CLASSIFY_UNBILLED if ($trigger['code'] == 'FICHINTER_CLASSIFY_BILLED' && empty($conf->global->FICHINTER_CLASSIFY_BILLED)) { continue; diff --git a/htdocs/admin/agenda_extrafields.php b/htdocs/admin/agenda_extrafields.php index 50e4a3e92c7..cc91646b456 100644 --- a/htdocs/admin/agenda_extrafields.php +++ b/htdocs/admin/agenda_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of agenda */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -89,7 +90,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index 5567e741272..86701344ba4 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -25,6 +25,7 @@ * \brief Page to setup external calendars for agenda 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.formadmin.class.php'; @@ -66,7 +67,7 @@ if (preg_match('/set_(.*)/', $action, $reg)) { $value = (GETPOST($code) ? GETPOST($code) : 1); $res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; $errors[] = $db->lasterror(); } @@ -86,7 +87,7 @@ if (preg_match('/set_(.*)/', $action, $reg)) { $code = $reg[1]; $res = dolibarr_del_const($db, $code, $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; $errors[] = $db->lasterror(); } diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php index 1014d40de50..7b057a0693c 100644 --- a/htdocs/admin/agenda_other.php +++ b/htdocs/admin/agenda_other.php @@ -26,6 +26,7 @@ * \brief Autocreate actions for agenda module 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'; diff --git a/htdocs/admin/agenda_reminder.php b/htdocs/admin/agenda_reminder.php index 79aa081ddef..76c717b669d 100644 --- a/htdocs/admin/agenda_reminder.php +++ b/htdocs/admin/agenda_reminder.php @@ -21,6 +21,7 @@ * \brief Page to setup agenda reminder options */ +// 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'; @@ -206,7 +207,7 @@ $job->fetch(0, 'ActionComm', 'sendEmailsReminder'); // AGENDA REMINDER EMAIL print '
'.$langs->trans('AGENDA_REMINDER_EMAIL', $langs->transnoentities("Module2300Name")); -if (!empty($conf->cron->enabled)) { +if (isModEnabled('cron')) { if (!empty($conf->global->AGENDA_REMINDER_EMAIL)) { if ($job->id > 0) { if ($job->status == $job::STATUS_ENABLED) { @@ -219,7 +220,7 @@ print ' '."\n"; -if (empty($conf->cron->enabled)) { +if (!isModEnabled('cron')) { print ''.$langs->trans("WarningModuleNotActive", $langs->transnoentitiesnoconv("Module2300Name")).''; } else { if (empty($conf->global->AGENDA_REMINDER_EMAIL)) { diff --git a/htdocs/admin/agenda_xcal.php b/htdocs/admin/agenda_xcal.php index ce36d97d06a..499d7233ed0 100644 --- a/htdocs/admin/agenda_xcal.php +++ b/htdocs/admin/agenda_xcal.php @@ -24,6 +24,7 @@ * \brief Page to setup miscellaneous options of agenda 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/agenda.lib.php'; @@ -207,21 +208,11 @@ $message .= $langs->trans("AgendaUrlOptionsIncludeHolidays", '1', '1').'
'; print info_admin($message); -if (!empty($conf->use_javascript_ajax)) { - print "\n".''; -} +$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.php b/htdocs/admin/bank.php index e1e468b0cec..ef365881feb 100644 --- a/htdocs/admin/bank.php +++ b/htdocs/admin/bank.php @@ -53,8 +53,6 @@ $type = 'bankaccount'; // Order display of bank account if ($action == 'setbankorder') { if (dolibarr_set_const($db, "BANK_SHOW_ORDER_OPTION", GETPOST('value', 'alpha'), 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } else { dol_print_error($db); } @@ -63,15 +61,11 @@ if ($action == 'setbankorder') { // Auto report last num releve on conciliate if ($action == 'setreportlastnumreleve') { if (dolibarr_set_const($db, "BANK_REPORT_LAST_NUM_RELEVE", 1, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } else { dol_print_error($db); } } elseif ($action == 'unsetreportlastnumreleve') { if (dolibarr_set_const($db, "BANK_REPORT_LAST_NUM_RELEVE", 0, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } else { dol_print_error($db); } @@ -80,15 +74,11 @@ if ($action == 'setreportlastnumreleve') { // Colorize movements if ($action == 'setbankcolorizemovement') { if (dolibarr_set_const($db, "BANK_COLORIZE_MOVEMENT", 1, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } else { dol_print_error($db); } } elseif ($action == 'unsetbankcolorizemovement') { if (dolibarr_set_const($db, "BANK_COLORIZE_MOVEMENT", 0, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } else { dol_print_error($db); } @@ -427,13 +417,13 @@ print "
'."\n"; - print ''; + print ''; print img_picto($langs->trans("Enabled"), 'switch_on'); print ''; print ''."\n"; - print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; + print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; print "'."\n"; - print ''; + print ''; print img_picto($langs->trans("Enabled"), 'switch_on'); print ''; print ''."\n"; - print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; + print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; 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 +397,7 @@ if ($resql) { } } } else { - print $langs->trans("ChooseABarCode"); + print ''.$langs->trans("ChooseABarCode").''; } print '
'.$langs->trans("GenbarcodeLocation").''; - 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 +451,7 @@ if (!isset($_SERVER['WINDIR'])) { } // Module products -if (!empty($conf->product->enabled)) { +if (isModEnabled('product')) { print '
'.$langs->trans("SetDefaultBarcodeTypeProducts").''; @@ -391,7 +462,7 @@ if (!empty($conf->product->enabled)) { } // Module thirdparty -if (!empty($conf->societe->enabled)) { +if (isModEnabled('societe')) { print '
'.$langs->trans("SetDefaultBarcodeTypeThirdParties").''; diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php index e3adb206d7e..a35aef780d2 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'; @@ -93,7 +94,7 @@ if ($action == 'updateMask') { header("Location: ".DOL_URL_ROOT."/document.php?modulepart=bom&file=SPECIMEN.pdf"); return; } else { - setEventMessages($module->error, null, 'errors'); + setEventMessages($module->error, $module->errors, 'errors'); dol_syslog($module->error, LOG_ERR); } } else { @@ -176,7 +177,7 @@ $head = bomAdminPrepareHead(); print dol_get_fiche_head($head, 'settings', $langs->trans("BOMs"), -1, 'bom'); /* - * BOMs Numbering model + * Numbering module */ print load_fiche_titre($langs->trans("BOMsNumberingModules"), '', ''); @@ -202,10 +203,11 @@ foreach ($dirmodels as $reldir) { while (($file = readdir($handle)) !== false) { if (substr($file, 0, 8) == 'mod_bom_' && substr($file, dol_strlen($file) - 3, 3) == 'php') { $file = substr($file, 0, dol_strlen($file) - 4); + $classname = $file; require_once $dir.$file.'.php'; - $module = new $file($db); + $module = new $classname($db); // Show modules according to features level if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { @@ -220,7 +222,7 @@ foreach ($dirmodels as $reldir) { print $module->info(); print ''; $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) { @@ -277,13 +279,13 @@ foreach ($dirmodels as $reldir) { } print "
"; print "
"; -print "
\n"; /* * Document templates generators */ +print "
\n"; print load_fiche_titre($langs->trans("BOMsModelModule"), '', ''); // Load array def with activated templates @@ -307,8 +309,8 @@ if ($resql) { print '
'; -print "\n"; -print "\n"; +print '
'; +print ''; print ''; print ''; print '\n"; @@ -364,13 +366,13 @@ foreach ($dirmodels as $reldir) { // Active if (in_array($name, $def)) { print ''; } else { print '"; } @@ -379,7 +381,7 @@ foreach ($dirmodels as $reldir) { if ($conf->global->BOM_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').''; + print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; } print ''; @@ -421,12 +423,12 @@ foreach ($dirmodels as $reldir) { print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Status")."'."\n"; - print ''; + 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 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; print "
'; print '
'; -print "
"; /* * Other options */ +print "
"; print load_fiche_titre($langs->trans("OtherOptions"), '', ''); print '
'; @@ -452,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 ''; @@ -465,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 74d6ca931ec..2facfc570b8 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); @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php index 6c3a6f30646..c5234e314ce 100644 --- a/htdocs/admin/boxes.php +++ b/htdocs/admin/boxes.php @@ -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'; @@ -229,6 +230,7 @@ $sql .= " WHERE b.box_id = bd.rowid"; $sql .= " AND b.entity IN (0,".$conf->entity.")"; $sql .= " AND b.fk_user=0"; $sql .= " ORDER by b.position, b.box_order"; +//print $sql; dol_syslog("Search available boxes", LOG_DEBUG); $resql = $db->query($sql); diff --git a/htdocs/admin/chequereceipts.php b/htdocs/admin/chequereceipts.php index 3ba8c3b854a..cf93155b814 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'; @@ -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 5c8eb88126c..b218a91385b 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'; @@ -302,6 +303,7 @@ foreach ($dirmodels as $reldir) { $htmltooltip = ''; $htmltooltip .= ''.$langs->trans("Version").': '.$module->getVersion().'
'; $commande->type = 0; + $nextval = $module->getNextValue($mysoc, $commande); if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval $htmltooltip .= ''.$langs->trans("NextValue").': '; @@ -506,7 +508,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"; @@ -611,10 +613,10 @@ 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, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''; @@ -624,13 +626,13 @@ 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"; @@ -643,7 +645,7 @@ 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)) { @@ -660,10 +662,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 ac8f4fced4d..4f89dd8fff6 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'; @@ -94,7 +95,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index c3cb92dba8d..55d87673a98 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'; @@ -91,9 +92,9 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha')) $db->begin(); - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("MAIN_INFO_SOCIETE_ADDRESS", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("MAIN_INFO_SOCIETE_TOWN", 'nohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("MAIN_INFO_SOCIETE_ADDRESS", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("MAIN_INFO_SOCIETE_TOWN", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ZIP", GETPOST("MAIN_INFO_SOCIETE_ZIP", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_REGION", GETPOST("region_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_MONNAIE", GETPOST("currency", 'aZ09'), 'chaine', 0, '', $conf->entity); @@ -178,19 +179,19 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha')) } } - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_GDPR", GETPOST("MAIN_INFO_GDPR", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_CAPITAL", GETPOST("capital", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE", GETPOST("forme_juridique_code", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_SIREN", GETPOST("siren", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_SIRET", GETPOST("siret", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_APE", GETPOST("ape", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_RCS", GETPOST("rcs", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_PROFID5", GETPOST("MAIN_INFO_PROFID5", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'nohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_GDPR", GETPOST("MAIN_INFO_GDPR", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_CAPITAL", GETPOST("capital", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE", GETPOST("forme_juridique_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SIREN", GETPOST("siren", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SIRET", GETPOST("siret", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_APE", GETPOST("ape", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_RCS", GETPOST("rcs", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_PROFID5", GETPOST("MAIN_INFO_PROFID5", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'alphanohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'nohtml'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object", 'nohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object", 'alphanohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START", 'int'), 'chaine', 0, '', $conf->entity); @@ -403,18 +404,18 @@ print ''.$langs-> // Name print ''; -print 'global->MAIN_INFO_SOCIETE_NOM) ? ' autofocus="autofocus"' : '').'>'."\n"; +print 'global->MAIN_INFO_SOCIETE_NOM) ? ' autofocus="autofocus"' : '').'>'."\n"; // Address print ''; -print ''."\n"; +print ''."\n"; // Zip print ''; -print ''."\n"; +print ''."\n"; print ''; -print ''."\n"; +print ''."\n"; // Country print ''; @@ -466,7 +467,7 @@ print ''."\n"; // Barcode -if (!empty($conf->barcode->enabled)) { +if (isModEnabled('barcode')) { print ''; print ''; print ''; @@ -477,6 +478,11 @@ if (!empty($conf->barcode->enabled)) { // Logo 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_small)) { @@ -514,6 +520,11 @@ print ''; // Logo (squarred) 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)) { @@ -564,17 +575,17 @@ $langs->load("companies"); // Managing Director(s) print ''; -print ''; +print ''; // GDPR contact print ''; print $form->textwithpicto($langs->trans("GDPRContact"), $langs->trans("GDPRContactDesc")); print ''; -print 'global->MAIN_INFO_GDPR) ? $conf->global->MAIN_INFO_GDPR : ''))).'">'; +print 'global->MAIN_INFO_GDPR) ? $conf->global->MAIN_INFO_GDPR : ''))).'">'; // Capital print ''; -print ''; +print ''; // Juridical Status print ''; diff --git a/htdocs/admin/company_socialnetworks.php b/htdocs/admin/company_socialnetworks.php index 1f2d102b644..20d86f4aa59 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'; 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 index c2ca271e5ea..870b793fce8 100644 --- a/htdocs/admin/confexped.php +++ b/htdocs/admin/confexped.php @@ -25,6 +25,7 @@ * \brief Page to setup sending 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/expedition.lib.php'; @@ -44,7 +45,7 @@ $action = GETPOST('action', 'aZ09'); */ // Shipment note -if (!empty($conf->expedition->enabled) && empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { +if (isModEnabled('expedition') && 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); } 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 ''."\n"; @@ -458,7 +459,7 @@ print ''."\n"; print ''."\n"; print ''; 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 ''; + 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..98c72ac68dc 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'; @@ -142,7 +143,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++; } @@ -445,10 +446,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 '
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; 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 ''; } // Limit to superadmin -if (!empty($conf->multicompany->enabled) && !$user->entity) { +if (isModEnabled('multicompany') && !$user->entity) { print ''; } else { print ''; } print ''; foreach ($modules as $module => $delays) { - if (!empty($conf->$module->enabled)) { + if (isModEnabled($module)) { foreach ($delays as $delay) { - $value = (!empty($conf->global->{$delay['code']}) ? $conf->global->{$delay['code']}:0); + $value = (!empty($conf->global->{$delay['code']}) ? $conf->global->{$delay['code']} : 0); print ''; - print ''; - print ''; + print ''; + print ''; } } } @@ -260,13 +262,13 @@ if ($action == 'edit') { print ''; foreach ($modules as $module => $delays) { - if (!empty($conf->$module->enabled)) { + if (isModEnabled($module)) { foreach ($delays as $delay) { - $value = (!empty($conf->global->{$delay['code']}) ? $conf->global->{$delay['code']}:0); + $value = (!empty($conf->global->{$delay['code']}) ? $conf->global->{$delay['code']} : 0); print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; } } } @@ -317,18 +319,22 @@ if (empty($conf->global->MAIN_DISABLE_METEO) || $conf->global->MAIN_DISABLE_METE $offset = 0; $cursor = 10; // By default - //if (! empty($conf->global->MAIN_METEO_OFFSET)) $offset=$conf->global->MAIN_METEO_OFFSET; - //if (! empty($conf->global->MAIN_METEO_GAP)) $cursor=$conf->global->MAIN_METEO_GAP; - $level0 = $offset; if (!empty($conf->global->MAIN_METEO_LEVEL0)) { + //if (!empty($conf->global->MAIN_METEO_OFFSET)) $offset=$conf->global->MAIN_METEO_OFFSET; + //if (!empty($conf->global->MAIN_METEO_GAP)) $cursor=$conf->global->MAIN_METEO_GAP; + $level0 = $offset; + if (!empty($conf->global->MAIN_METEO_LEVEL0)) { $level0 = $conf->global->MAIN_METEO_LEVEL0; } - $level1 = $offset + 1 * $cursor; if (!empty($conf->global->MAIN_METEO_LEVEL1)) { + $level1 = $offset + 1 * $cursor; + if (!empty($conf->global->MAIN_METEO_LEVEL1)) { $level1 = $conf->global->MAIN_METEO_LEVEL1; } - $level2 = $offset + 2 * $cursor; if (!empty($conf->global->MAIN_METEO_LEVEL2)) { + $level2 = $offset + 2 * $cursor; + if (!empty($conf->global->MAIN_METEO_LEVEL2)) { $level2 = $conf->global->MAIN_METEO_LEVEL2; } - $level3 = $offset + 3 * $cursor; if (!empty($conf->global->MAIN_METEO_LEVEL3)) { + $level3 = $offset + 3 * $cursor; + if (!empty($conf->global->MAIN_METEO_LEVEL3)) { $level3 = $conf->global->MAIN_METEO_LEVEL3; } $text = ''; $options = 'class="valignmiddle" height="60px"'; diff --git a/htdocs/admin/delivery.php b/htdocs/admin/delivery.php index 6f0f4c1b415..de26d237d01 100644 --- a/htdocs/admin/delivery.php +++ b/htdocs/admin/delivery.php @@ -434,10 +434,10 @@ print ''; } @@ -320,28 +309,28 @@ if ($action == 'edit') { print ''; } @@ -457,7 +446,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''."\n"; @@ -468,10 +469,10 @@ print ''."\n"; print ''."\n"; -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { print ''; echo ''; echo ''; + echo ''; echo ''; echo ''; echo ''; @@ -266,11 +281,11 @@ foreach ($rules as $rule) { if ($rule->fk_c_type_fees == -1) { echo $langs->trans('AllExpenseReport'); } else { - $key = getDictionaryValue(MAIN_DB_PREFIX . 'c_type_fees', 'code', $rule->fk_c_type_fees, false, 'id'); + $key = getDictionaryValue('c_type_fees', 'code', $rule->fk_c_type_fees, false, 'id'); if ($key && $key != $langs->trans($key)) { echo $langs->trans($key); } else { - $value = getDictionaryValue(MAIN_DB_PREFIX . 'c_type_fees', 'label', $rule->fk_c_type_fees, false, 'id'); + $value = getDictionaryValue('c_type_fees', 'label', $rule->fk_c_type_fees, false, 'id'); echo $langs->trans($value ? $value : 'Undefined'); // TODO check to return trans of 'code' } } @@ -304,10 +319,10 @@ foreach ($rules as $rule) { } echo ''; - + // Amount echo '\n"; print ''; print ""; print "'; -print '\n"; 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 140cd7fcfdf..f997c44ef6e 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'; @@ -62,11 +63,11 @@ $conditions = array( 'NOTE_PUBLIC' => 1, 'NOTE_PRIVATE' => 1, 'SOCIETE' => 1, - 'PRODUCTDESC' => (!empty($conf->product->enabled) || !empty($conf->service->enabled)), - 'DETAILS' => (!empty($conf->facture->enabled) || !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' => (!empty($conf->facture->enabled) || !empty($conf->propal->enabled) || !empty($conf->commande->enabled)), + 'MAILING' => isModEnabled('mailing'), + 'MAIL' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande')), 'TICKET' => !empty($conf->ticket->enabled), ); // Picto diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php index c95f354a189..4e4438263c3 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'; @@ -507,10 +508,10 @@ print '\n"; @@ -537,7 +538,7 @@ print '' print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; -/*var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_MONDAY); -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_FRIDAY); -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY); -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY); -*/ +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_MONDAY); +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_FRIDAY); +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY); +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY); + if (!isset($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY)) { $conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY = 1; } if (!isset($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY)) { $conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY = 1; } -/* -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_MONDAY); -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_FRIDAY); -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY); -var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY); -*/ + +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_MONDAY); +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_FRIDAY); +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY); +//var_dump($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY); + // Set working days print ''; @@ -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 ''."\n"; } diff --git a/htdocs/admin/holiday_extrafields.php b/htdocs/admin/holiday_extrafields.php index 609187058e3..c51b2846cf9 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'; @@ -85,7 +86,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/hrm.php b/htdocs/admin/hrm.php index aea86069f4d..838e9bf9a0b 100644 --- a/htdocs/admin/hrm.php +++ b/htdocs/admin/hrm.php @@ -57,7 +57,7 @@ $type = 'myobject'; $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; @@ -279,7 +279,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; } @@ -635,7 +624,7 @@ if ($action == 'edit') { setEventMessages(null, $object->errors, "errors"); } } else { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } print ''; } diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index 2c997d746d9..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'; @@ -76,7 +77,7 @@ if (preg_match('/^(set|del)_([A-Z_]+)$/', $action, $regs)) { } if ($action == 'removebackgroundlogin' && !empty($conf->global->MAIN_LOGIN_BACKGROUND)) { - dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", (int) $conf->global->MAIN_IHM_PARAMS_REV + 1, 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", getDolGlobalInt('MAIN_IHM_PARAMS_REV') + 1, 'chaine', 0, '', $conf->entity); require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $logofile = $conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_LOGIN_BACKGROUND; @@ -99,11 +100,29 @@ if ($action == 'update') { $error = 0; if ($mode == 'template') { - dolibarr_set_const($db, "MAIN_THEME", GETPOST("main_theme", 'aZ09'), 'chaine', 0, '', $conf->entity); + //dolibarr_del_const($db, "MAIN_THEME", 0); // To be sure we don't have this constant set for all entities - /*$val=GETPOST('THEME_TOPMENU_DISABLE_IMAGE'); - if (! $val) dolibarr_del_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', $conf->entity); - else dolibarr_set_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', GETPOST('THEME_TOPMENU_DISABLE_IMAGE'), 'chaine', 0, '', $conf->entity);*/ + 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) { + dolibarr_del_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', $conf->entity); + } else { + dolibarr_set_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', GETPOST('THEME_TOPMENU_DISABLE_IMAGE'), 'chaine', 0, '', $conf->entity); + } + } $val = (implode(',', (colorStringToArray(GETPOST('THEME_ELDY_BACKBODY'), array())))); if ($val == '') { @@ -222,7 +241,7 @@ if ($action == 'update') { if ($mode == 'other') { dolibarr_set_const($db, "MAIN_LANG_DEFAULT", GETPOST("MAIN_LANG_DEFAULT", 'aZ09'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", (int) $conf->global->MAIN_IHM_PARAMS_REV + 1, 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", getDolGlobalInt('MAIN_IHM_PARAMS_REV') + 1, 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", GETPOST("main_size_liste_limit", 'int'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_SIZE_SHORTLIST_LIMIT", GETPOST("main_size_shortliste_limit", 'int'), 'chaine', 0, '', $conf->entity); @@ -323,11 +342,153 @@ print '
'; clearstatcache(); +if ($mode == 'other') { + print '
'; + 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 .= '
'; - print ''; // We see environment, but to change it we must switch on other entity + print ''; // We see environment, but to change it we must switch on other entity print ''; - print ''; + print ''; print ''; diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index 2ae77b03d07..59c826413aa 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -4,6 +4,7 @@ * Copyright (C) 2005 Simon Tosser * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2016 Raphaël Doursenaud + * 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 @@ -24,6 +25,7 @@ * \brief Page to setup late delays */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -172,7 +174,7 @@ if (!isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { if ($action == 'update') { foreach ($modules as $module => $delays) { - if (!empty($conf->$module->enabled)) { + if (isModEnabled($module)) { foreach ($delays as $delay) { if (GETPOST($delay['code']) != '') { dolibarr_set_const($db, $delay['code'], GETPOST($delay['code']), 'chaine', 0, '', $conf->entity); @@ -226,13 +228,13 @@ if ($action == 'edit') { print ''.$langs->trans("LateWarningAfter").'
'.img_object('', $delay['img']).''.$langs->trans('Delays_'.$delay['code']).''; - print ' '.$langs->trans("days").'
' . img_object('', $delay['img']) . '' . $langs->trans('Delays_' . $delay['code']) . ''; + print ' ' . $langs->trans("days") . '
'.$langs->trans("DelaysOfToleranceBeforeWarning").''.$langs->trans("Value").'
'.img_object('', $delay['img']).''.$langs->trans('Delays_'.$delay['code']).''.$value.' '.$langs->trans("days").'
' . img_object('', $delay['img']) . '' . $langs->trans('Delays_' . $delay['code']) . '' . $value . ' ' . $langs->trans("days") . '
'; 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 ''; + 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/delivery_extrafields.php b/htdocs/admin/delivery_extrafields.php index cf712bc6ecf..32c8f34e570 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'; @@ -91,7 +92,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/deliverydet_extrafields.php b/htdocs/admin/deliverydet_extrafields.php index c74f5235d42..5030379320f 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'; @@ -92,7 +93,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index cd8ab4c1836..f55190f7bf8 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) { @@ -104,50 +105,50 @@ $taborder = array(9, 15, 30, 0, 4, 3, 2, 0, 1, 8, 19, 16, 39, 27, 40, 38, 0, 5, // Name of SQL tables of dictionaries $tabname = array(); -$tabname[1] = MAIN_DB_PREFIX."c_forme_juridique"; -$tabname[2] = MAIN_DB_PREFIX."c_departements"; -$tabname[3] = MAIN_DB_PREFIX."c_regions"; -$tabname[4] = MAIN_DB_PREFIX."c_country"; -$tabname[5] = MAIN_DB_PREFIX."c_civility"; -$tabname[6] = MAIN_DB_PREFIX."c_actioncomm"; -$tabname[7] = MAIN_DB_PREFIX."c_chargesociales"; -$tabname[8] = MAIN_DB_PREFIX."c_typent"; -$tabname[9] = MAIN_DB_PREFIX."c_currencies"; -$tabname[10] = MAIN_DB_PREFIX."c_tva"; -$tabname[11] = MAIN_DB_PREFIX."c_type_contact"; -$tabname[12] = MAIN_DB_PREFIX."c_payment_term"; -$tabname[13] = MAIN_DB_PREFIX."c_paiement"; -$tabname[14] = MAIN_DB_PREFIX."c_ecotaxe"; -$tabname[15] = MAIN_DB_PREFIX."c_paper_format"; -$tabname[16] = MAIN_DB_PREFIX."c_prospectlevel"; -$tabname[17] = MAIN_DB_PREFIX."c_type_fees"; -$tabname[18] = MAIN_DB_PREFIX."c_shipment_mode"; -$tabname[19] = MAIN_DB_PREFIX."c_effectif"; -$tabname[20] = MAIN_DB_PREFIX."c_input_method"; -$tabname[21] = MAIN_DB_PREFIX."c_availability"; -$tabname[22] = MAIN_DB_PREFIX."c_input_reason"; -$tabname[23] = MAIN_DB_PREFIX."c_revenuestamp"; -$tabname[24] = MAIN_DB_PREFIX."c_type_resource"; -$tabname[25] = MAIN_DB_PREFIX."c_type_container"; -//$tabname[26]= MAIN_DB_PREFIX."c_units"; -$tabname[27] = MAIN_DB_PREFIX."c_stcomm"; -$tabname[28] = MAIN_DB_PREFIX."c_holiday_types"; -$tabname[29] = MAIN_DB_PREFIX."c_lead_status"; -$tabname[30] = MAIN_DB_PREFIX."c_format_cards"; -//$tabname[31]= MAIN_DB_PREFIX."accounting_system"; -$tabname[32] = MAIN_DB_PREFIX."c_hrm_public_holiday"; -$tabname[33] = MAIN_DB_PREFIX."c_hrm_department"; -$tabname[34] = MAIN_DB_PREFIX."c_hrm_function"; -$tabname[35] = MAIN_DB_PREFIX."c_exp_tax_cat"; -$tabname[36] = MAIN_DB_PREFIX."c_exp_tax_range"; -$tabname[37] = MAIN_DB_PREFIX."c_units"; -$tabname[38] = MAIN_DB_PREFIX."c_socialnetworks"; -$tabname[39] = MAIN_DB_PREFIX."c_prospectcontactlevel"; -$tabname[40] = MAIN_DB_PREFIX."c_stcommcontact"; -$tabname[41] = MAIN_DB_PREFIX."c_transport_mode"; -$tabname[42] = MAIN_DB_PREFIX."c_product_nature"; -$tabname[43] = MAIN_DB_PREFIX."c_productbatch_qcstatus"; -$tabname[44] = MAIN_DB_PREFIX."c_asset_disposal_type"; +$tabname[1] = "c_forme_juridique"; +$tabname[2] = "c_departements"; +$tabname[3] = "c_regions"; +$tabname[4] = "c_country"; +$tabname[5] = "c_civility"; +$tabname[6] = "c_actioncomm"; +$tabname[7] = "c_chargesociales"; +$tabname[8] = "c_typent"; +$tabname[9] = "c_currencies"; +$tabname[10] = "c_tva"; +$tabname[11] = "c_type_contact"; +$tabname[12] = "c_payment_term"; +$tabname[13] = "c_paiement"; +$tabname[14] = "c_ecotaxe"; +$tabname[15] = "c_paper_format"; +$tabname[16] = "c_prospectlevel"; +$tabname[17] = "c_type_fees"; +$tabname[18] = "c_shipment_mode"; +$tabname[19] = "c_effectif"; +$tabname[20] = "c_input_method"; +$tabname[21] = "c_availability"; +$tabname[22] = "c_input_reason"; +$tabname[23] = "c_revenuestamp"; +$tabname[24] = "c_type_resource"; +$tabname[25] = "c_type_container"; +//$tabname[26]= "c_units"; +$tabname[27] = "c_stcomm"; +$tabname[28] = "c_holiday_types"; +$tabname[29] = "c_lead_status"; +$tabname[30] = "c_format_cards"; +//$tabname[31]= "accounting_system"; +$tabname[32] = "c_hrm_public_holiday"; +$tabname[33] = "c_hrm_department"; +$tabname[34] = "c_hrm_function"; +$tabname[35] = "c_exp_tax_cat"; +$tabname[36] = "c_exp_tax_range"; +$tabname[37] = "c_units"; +$tabname[38] = "c_socialnetworks"; +$tabname[39] = "c_prospectcontactlevel"; +$tabname[40] = "c_stcommcontact"; +$tabname[41] = "c_transport_mode"; +$tabname[42] = "c_product_nature"; +$tabname[43] = "c_productbatch_qcstatus"; +$tabname[44] = "c_asset_disposal_type"; // Dictionary labels $tablib = array(); @@ -209,7 +210,7 @@ $tabsql[8] = "SELECT t.id as rowid, t.code as code, t.libelle, t.fk_country as $tabsql[9] = "SELECT c.code_iso as code, c.label, c.unicode, c.active FROM ".MAIN_DB_PREFIX."c_currencies AS c"; $tabsql[10] = "SELECT t.rowid, t.code, t.taux, t.localtax1_type, t.localtax1, t.localtax2_type, t.localtax2, c.label as country, c.code as country_code, t.fk_pays as country_id, t.recuperableonly, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c WHERE t.fk_pays=c.rowid"; $tabsql[11] = "SELECT t.rowid as rowid, t.element, t.source, t.code, t.libelle, t.position, t.active FROM ".MAIN_DB_PREFIX."c_type_contact AS t"; -$tabsql[12] = "SELECT c.rowid as rowid, c.code, c.libelle, c.libelle_facture, c.nbjour, c.type_cdr, c.decalage, c.active, c.sortorder, c.entity FROM ".MAIN_DB_PREFIX."c_payment_term AS c WHERE c.entity = ".getEntity($tabname[12]); +$tabsql[12] = "SELECT c.rowid as rowid, c.code, c.libelle, c.libelle_facture, c.deposit_percent, c.nbjour, c.type_cdr, c.decalage, c.active, c.sortorder, c.entity FROM ".MAIN_DB_PREFIX."c_payment_term AS c WHERE c.entity = ".getEntity($tabname[12]); $tabsql[13] = "SELECT c.id as rowid, c.code, c.libelle, c.type, c.active, c.entity FROM ".MAIN_DB_PREFIX."c_paiement AS c WHERE c.entity = ".getEntity($tabname[13]); $tabsql[14] = "SELECT e.rowid as rowid, e.code as code, e.label, e.price, e.organization, e.fk_pays as country_id, c.code as country_code, c.label as country, e.active FROM ".MAIN_DB_PREFIX."c_ecotaxe AS e, ".MAIN_DB_PREFIX."c_country as c WHERE e.fk_pays=c.rowid and c.active=1"; $tabsql[15] = "SELECT rowid as rowid, code, label as libelle, width, height, unit, active FROM ".MAIN_DB_PREFIX."c_paper_format"; @@ -225,7 +226,7 @@ $tabsql[24] = "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFI $tabsql[25] = "SELECT rowid as rowid, code, label, active, module FROM ".MAIN_DB_PREFIX."c_type_container as t WHERE t.entity = ".getEntity($tabname[25]); //$tabsql[26]= "SELECT rowid as rowid, code, label, short_label, active FROM ".MAIN_DB_PREFIX."c_units"; $tabsql[27] = "SELECT id as rowid, code, libelle, picto, active FROM ".MAIN_DB_PREFIX."c_stcomm"; -$tabsql[28] = "SELECT h.rowid as rowid, h.code, h.label, h.affect, h.delay, h.newbymonth, h.fk_country as country_id, c.code as country_code, c.label as country, h.block_if_negative, h.active FROM ".MAIN_DB_PREFIX."c_holiday_types as h LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON h.fk_country=c.rowid"; +$tabsql[28] = "SELECT h.rowid as rowid, h.code, h.label, h.affect, h.delay, h.newbymonth, h.fk_country as country_id, c.code as country_code, c.label as country, h.block_if_negative, h.sortorder, h.active FROM ".MAIN_DB_PREFIX."c_holiday_types as h LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON h.fk_country=c.rowid"; $tabsql[29] = "SELECT rowid as rowid, code, label, percent, position, active FROM ".MAIN_DB_PREFIX."c_lead_status"; $tabsql[30] = "SELECT rowid, code, name, paper_size, orientation, metric, leftmargin, topmargin, nx, ny, spacex, spacey, width, height, font_size, custom_x, custom_y, active FROM ".MAIN_DB_PREFIX."c_format_cards"; //$tabsql[31]= "SELECT s.rowid as rowid, pcg_version, s.label, s.active FROM ".MAIN_DB_PREFIX."accounting_system as s"; @@ -265,14 +266,14 @@ $tabsqlsort[17] = "code ASC"; $tabsqlsort[18] = "code ASC, libelle ASC"; $tabsqlsort[19] = "id ASC"; $tabsqlsort[20] = "code ASC, libelle ASC"; -$tabsqlsort[21] = "code ASC, label ASC, position ASC, type_duration ASC, qty ASC"; +$tabsqlsort[21] = "position ASC, type_duration ASC, qty ASC"; $tabsqlsort[22] = "code ASC, label ASC"; $tabsqlsort[23] = "country ASC, taux ASC"; $tabsqlsort[24] = "code ASC, label ASC"; $tabsqlsort[25] = "t.module ASC, t.code ASC, t.label ASC"; //$tabsqlsort[26]="code ASC"; $tabsqlsort[27] = "code ASC"; -$tabsqlsort[28] = "country ASC, code ASC"; +$tabsqlsort[28] = "sortorder ASC, country ASC, code ASC"; $tabsqlsort[29] = "position ASC"; $tabsqlsort[30] = "code ASC"; //$tabsqlsort[31]="pcg_version ASC"; @@ -303,7 +304,7 @@ $tabfield[8] = "code,libelle,country_id,country".(!empty($conf->global->SOCIETE_ $tabfield[9] = "code,label,unicode"; $tabfield[10] = "country_id,country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note"; $tabfield[11] = "element,source,code,libelle,position"; -$tabfield[12] = "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder,entity"; +$tabfield[12] = "code,libelle,libelle_facture,deposit_percent,nbjour,type_cdr,decalage,sortorder,entity"; $tabfield[13] = "code,libelle,type,entity"; $tabfield[14] = "code,label,price,organization,country"; $tabfield[15] = "code,libelle,width,height,unit"; @@ -319,7 +320,7 @@ $tabfield[24] = "code,label"; $tabfield[25] = "code,label"; //$tabfield[26]= "code,label,short_label"; $tabfield[27] = "code,libelle,picto"; -$tabfield[28] = "code,label,affect,delay,newbymonth,country_id,country,block_if_negative"; +$tabfield[28] = "code,label,affect,delay,newbymonth,country_id,country,block_if_negative,sortorder"; $tabfield[29] = "code,label,percent,position"; $tabfield[30] = "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y"; //$tabfield[31]= "pcg_version,label"; @@ -350,7 +351,7 @@ $tabfieldvalue[8] = "code,libelle,country".(!empty($conf->global->SOCIETE_SORT_O $tabfieldvalue[9] = "code,label,unicode"; $tabfieldvalue[10] = "country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note"; $tabfieldvalue[11] = "element,source,code,libelle,position"; -$tabfieldvalue[12] = "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder"; +$tabfieldvalue[12] = "code,libelle,libelle_facture,deposit_percent,nbjour,type_cdr,decalage,sortorder"; $tabfieldvalue[13] = "code,libelle,type"; $tabfieldvalue[14] = "code,label,price,organization,country"; $tabfieldvalue[15] = "code,libelle,width,height,unit"; @@ -366,7 +367,7 @@ $tabfieldvalue[24] = "code,label"; $tabfieldvalue[25] = "code,label"; //$tabfieldvalue[26]= "code,label,short_label"; $tabfieldvalue[27] = "code,libelle,picto"; -$tabfieldvalue[28] = "code,label,affect,delay,newbymonth,country,block_if_negative"; +$tabfieldvalue[28] = "code,label,affect,delay,newbymonth,country,block_if_negative,sortorder"; $tabfieldvalue[29] = "code,label,percent,position"; $tabfieldvalue[30] = "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y"; //$tabfieldvalue[31]= "pcg_version,label"; @@ -397,7 +398,7 @@ $tabfieldinsert[8] = "code,libelle,fk_country".(!empty($conf->global->SOCIETE_SO $tabfieldinsert[9] = "code_iso,label,unicode"; $tabfieldinsert[10] = "fk_pays,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note"; $tabfieldinsert[11] = "element,source,code,libelle,position"; -$tabfieldinsert[12] = "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder,entity"; +$tabfieldinsert[12] = "code,libelle,libelle_facture,deposit_percent,nbjour,type_cdr,decalage,sortorder,entity"; $tabfieldinsert[13] = "code,libelle,type,entity"; $tabfieldinsert[14] = "code,label,price,organization,fk_pays"; $tabfieldinsert[15] = "code,label,width,height,unit"; @@ -413,7 +414,7 @@ $tabfieldinsert[24] = "code,label"; $tabfieldinsert[25] = "code,label"; //$tabfieldinsert[26]= "code,label,short_label"; $tabfieldinsert[27] = "code,libelle,picto"; -$tabfieldinsert[28] = "code,label,affect,delay,newbymonth,fk_country,block_if_negative"; +$tabfieldinsert[28] = "code,label,affect,delay,newbymonth,fk_country,block_if_negative,sortorder"; $tabfieldinsert[29] = "code,label,percent,position"; $tabfieldinsert[30] = "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y"; //$tabfieldinsert[31]= "pcg_version,label"; @@ -483,191 +484,172 @@ $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[6] = !empty($conf->agenda->enabled); -$tabcond[7] = !empty($conf->tax->enabled); -$tabcond[8] = !empty($conf->societe->enabled); +$tabcond[5] = (isModEnabled("societe") || isModEnabled('adherent')); +$tabcond[6] = isModEnabled('agenda'); +$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) || !empty($conf->facture->enabled) || (!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) || !empty($conf->facture->enabled) || (!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 +// List of help for fields (no more used, help is defined into tabcomplete) $tabhelp = array(); -$tabhelp[1] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[2] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[3] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[4] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[5] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[6] = array('code'=>$langs->trans("EnterAnyCode"), 'color'=>$langs->trans("ColorFormat"), 'position'=>$langs->trans("PositionIntoComboList")); -$tabhelp[7] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[8] = array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList")); -$tabhelp[9] = array('code'=>$langs->trans("EnterAnyCode"), 'unicode'=>$langs->trans("UnicodeCurrency")); -$tabhelp[10] = array('code'=>$langs->trans("EnterAnyCode"), 'taux'=>$langs->trans("SellTaxRate"), 'recuperableonly'=>$langs->trans("RecuperableOnly"), 'localtax1_type'=>$langs->trans("LocalTaxDesc"), 'localtax2_type'=>$langs->trans("LocalTaxDesc")); -$tabhelp[11] = array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList")); -$tabhelp[12] = array('code'=>$langs->trans("EnterAnyCode"), 'type_cdr'=>$langs->trans("TypeCdr", $langs->transnoentitiesnoconv("NbOfDays"), $langs->transnoentitiesnoconv("Offset"), $langs->transnoentitiesnoconv("NbOfDays"), $langs->transnoentitiesnoconv("Offset"))); -$tabhelp[13] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[14] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[15] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[16] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[17] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[18] = array('code'=>$langs->trans("EnterAnyCode"), 'tracking'=>$langs->trans("UrlTrackingDesc")); -$tabhelp[19] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[20] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[21] = array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList")); -$tabhelp[22] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[23] = array('revenuestamp_type'=>'FixedOrPercent'); -$tabhelp[24] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[25] = array('code'=>$langs->trans('EnterAnyCode')); -//$tabhelp[26] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[27] = array('code'=>$langs->trans("EnterAnyCode"), 'picto'=>$langs->trans("PictoHelp")); -$tabhelp[28] = array('affect'=>$langs->trans("FollowedByACounter"), 'delay'=>$langs->trans("MinimumNoticePeriod"), 'newbymonth'=>$langs->trans("NbAddedAutomatically")); -$tabhelp[29] = array('code'=>$langs->trans("EnterAnyCode"), 'percent'=>$langs->trans("OpportunityPercent"), 'position'=>$langs->trans("PositionIntoComboList")); -$tabhelp[30] = array('code'=>$langs->trans("EnterAnyCode"), 'name'=>$langs->trans("LabelName"), 'paper_size'=>$langs->trans("LabelPaperSize")); -//$tabhelp[31] = array('pcg_version'=>$langs->trans("EnterAnyCode")); -$tabhelp[32] = array('code'=>$langs->trans("EnterAnyCode"), 'dayrule'=>"Keep empty for a date defined with month and day (most common case).
Use a keyword like 'easter', 'eastermonday', ... for a date predefined by complex rules.", 'country'=>$langs->trans("CountryIfSpecificToOneCountry"), 'year'=>$langs->trans("ZeroMeansEveryYear")); -$tabhelp[33] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[34] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[35] = array(); -$tabhelp[36] = array('range_ik'=>$langs->trans('PrevRangeToThisRange')); -$tabhelp[37] = array('code'=>$langs->trans("EnterAnyCode"), 'unit_type' => $langs->trans('Measuringtype_durationDesc'), 'scale' => $langs->trans('MeasuringScaleDesc')); -$tabhelp[38] = array('code'=>$langs->trans("EnterAnyCode"), 'url' => $langs->trans('UrlSocialNetworksDesc'), 'icon' => $langs->trans('FafaIconSocialNetworksDesc')); -$tabhelp[39] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[40] = array('code'=>$langs->trans("EnterAnyCode"), 'picto'=>$langs->trans("PictoHelp")); -$tabhelp[41] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[42] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[43] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[44] = array('code'=>$langs->trans("EnterAnyCode")); // Table to store complete informations (will replace all other table). Key is table name. $tabcomplete = array( - 'c_forme_juridique'=>array('picto'=>'company'), - 'c_departements'=>array('picto'=>'state'), - 'c_regions'=>array('picto'=>'region'), - 'c_country'=>array('picto'=>'country'), - 'c_civility'=>array('picto'=>'contact'), - 'c_actioncomm'=>array('picto'=>'action'), - 'c_chargesociales'=>array('picto'=>'bill'), - 'c_typent'=>array('picto'=>'company'), - 'c_currencies'=>array('picto'=>'multicurrency'), - 'c_tva'=>array('picto'=>'bill'), - 'c_type_contact'=>array('picto'=>'contact'), - 'c_payment_term'=>array('picto'=>'bill'), - 'c_paiement'=>array('picto'=>'bill'), - 'c_ecotaxe'=>array('picto'=>'bill'), - 'c_paper_format'=>array('picto'=>'generic'), - 'c_prospectlevel'=>array('picto'=>'company'), - 'c_type_fees'=>array('picto'=>'trip'), - 'c_effectif'=>array('picto'=>'company'), - 'c_input_method'=>array('picto'=>'order'), - 'c_input_reason'=>array('picto'=>'order'), - 'c_availability'=>array('picto'=>'shipment'), - 'c_shipment_mode'=>array('picto'=>'shipment'), - 'c_revenuestamp'=>array('picto'=>'bill'), - 'c_type_resource'=>array('picto'=>'resource'), - 'c_type_container'=>array('picto'=>'website'), - 'c_stcomm'=>array('picto'=>'company'), - 'c_holiday_types'=>array('picto'=>'holiday'), - 'c_lead_status'=>array('picto'=>'project'), - 'c_format_cards'=>array('picto'=>'generic'), - 'c_hrm_public_holiday'=>array('picto'=>'holiday'), - 'c_hrm_department'=>array('picto'=>'hrm'), - 'c_hrm_function'=>array('picto'=>'hrm'), - 'c_exp_tax_cat'=>array('picto'=>'expensereport'), - 'c_exp_tax_range'=>array('picto'=>'expensereport'), - 'c_units'=>array('picto'=>'product'), - 'c_socialnetworks'=>array('picto'=>'share-alt'), - 'c_product_nature'=>array('picto'=>'product'), - 'c_transport_mode'=>array('picto'=>'incoterm'), - 'c_prospectcontactlevel'=>array('picto'=>'company'), - 'c_stcommcontact'=>array('picto'=>'company'), - 'c_product_nature'=>array('picto'=>'product'), - 'c_productbatch_qcstatus'=>array('picto'=>'lot'), - 'c_asset_disposal_type'=>array('picto'=>'asset'), - + 'c_forme_juridique'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_departements'=>array('picto'=>'state', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_regions'=>array('picto'=>'region', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_country'=>array('picto'=>'country', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_civility'=>array('picto'=>'contact', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_actioncomm'=>array('picto'=>'action', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'color'=>$langs->trans("ColorFormat"), 'position'=>$langs->trans("PositionIntoComboList"))), + 'c_chargesociales'=>array('picto'=>'bill', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_typent'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList"))), + 'c_currencies'=>array('picto'=>'multicurrency', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'unicode'=>$langs->trans("UnicodeCurrency"))), + 'c_tva'=>array('picto'=>'bill', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'taux'=>$langs->trans("SellTaxRate"), 'recuperableonly'=>$langs->trans("RecuperableOnly"), 'localtax1_type'=>$langs->trans("LocalTaxDesc"), 'localtax2_type'=>$langs->trans("LocalTaxDesc"))), + 'c_type_contact'=>array('picto'=>'contact', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList"))), + 'c_payment_term'=>array('picto'=>'bill', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'type_cdr'=>$langs->trans("TypeCdr", $langs->transnoentitiesnoconv("NbOfDays"), $langs->transnoentitiesnoconv("Offset"), $langs->transnoentitiesnoconv("NbOfDays"), $langs->transnoentitiesnoconv("Offset")))), + 'c_paiement'=>array('picto'=>'bill', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_ecotaxe'=>array('picto'=>'bill', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_paper_format'=>array('picto'=>'generic', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_prospectlevel'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_type_fees'=>array('picto'=>'trip', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_shipment_mode'=>array('picto'=>'shipment', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'tracking'=>$langs->trans("UrlTrackingDesc"))), + 'c_effectif'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_input_method'=>array('picto'=>'order', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_input_reason'=>array('picto'=>'order', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList"))), + 'c_availability'=>array('picto'=>'shipment', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_revenuestamp'=>array('picto'=>'bill', 'help'=>array('revenuestamp_type'=>$langs->trans('FixedOrPercent'))), + 'c_type_resource'=>array('picto'=>'resource', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_type_container'=>array('picto'=>'website', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_stcomm'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'picto'=>$langs->trans("PictoHelp"))), + 'c_holiday_types'=>array('picto'=>'holiday', 'help'=>array('affect'=>$langs->trans("FollowedByACounter"), 'delay'=>$langs->trans("MinimumNoticePeriod"), 'newbymonth'=>$langs->trans("NbAddedAutomatically"))), + 'c_lead_status'=>array('picto'=>'project', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'percent'=>$langs->trans("OpportunityPercent"), 'position'=>$langs->trans("PositionIntoComboList"))), + 'c_format_cards'=>array('picto'=>'generic', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'name'=>$langs->trans("LabelName"), 'paper_size'=>$langs->trans("LabelPaperSize"))), + 'c_hrm_public_holiday'=>array('picto'=>'holiday', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'dayrule'=>"Keep empty for a date defined with month and day (most common case).
Use a keyword like 'easter', 'eastermonday', ... for a date predefined by complex rules.", 'country'=>$langs->trans("CountryIfSpecificToOneCountry"), 'year'=>$langs->trans("ZeroMeansEveryYear"))), + 'c_hrm_department'=>array('picto'=>'hrm', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_hrm_function'=>array('picto'=>'hrm', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_exp_tax_cat'=>array('picto'=>'expensereport', 'help'=>array()), + 'c_exp_tax_range'=>array('picto'=>'expensereport', 'help'=>array('range_ik'=>$langs->trans('PrevRangeToThisRange'))), + 'c_units'=>array('picto'=>'product', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'unit_type' => $langs->trans('Measuringtype_durationDesc'), 'scale' => $langs->trans('MeasuringScaleDesc'))), + 'c_socialnetworks'=>array('picto'=>'share-alt', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'url' => $langs->trans('UrlSocialNetworksDesc'), 'icon' => $langs->trans('FafaIconSocialNetworksDesc'))), + 'c_prospectcontactlevel'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_stcommcontact'=>array('picto'=>'company', 'help'=>array('code'=>$langs->trans("EnterAnyCode"), 'picto'=>$langs->trans("PictoHelp"))), + 'c_transport_mode'=>array('picto'=>'incoterm', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_product_nature'=>array('picto'=>'product', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_productbatch_qcstatus'=>array('picto'=>'lot', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), + 'c_asset_disposal_type'=>array('picto'=>'asset', 'help'=>array('code'=>$langs->trans("EnterAnyCode"))), ); // Complete all arrays with entries found into modules complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabcomplete); +// Complete the table $tabcomplete +$i = 0; +foreach ($tabcomplete as $key => $value) { + $i++; + // When a dictionnary is commented + if (!isset($tabcond[$i])) { + continue; + } + $tabcomplete[$key]['id'] = $i; + $tabcomplete[$key]['cond'] = $tabcond[$i]; + $tabcomplete[$key]['rowid'] = $tabrowid[$i]; + $tabcomplete[$key]['fieldinsert'] = $tabfieldinsert[$i]; + $tabcomplete[$key]['fieldvalue'] = $tabfieldvalue[$i]; + $tabcomplete[$key]['lib'] = $tablib[$i]; + $tabcomplete[$key]['sql'] = $tabsql[$i]; + $tabcomplete[$key]['sqlsort'] = $tabsqlsort[$i]; + $tabcomplete[$key]['field'] = $tabfield[$i]; +} + +$keytable = ''; +if ($id > 0) { + $arrayofkeys = array_keys($tabcomplete); + $keytable = $arrayofkeys[$id - 1]; +} + // Defaut sortorder if (empty($sortfield)) { - $tmp1 = explode(',', empty($tabsqlsort[$id]) ? '' : $tabsqlsort[$id]); + $tmp1 = explode(',', empty($tabcomplete[$keytable]['sqlsort']) ? '' : $tabcomplete[$keytable]['sqlsort']); $tmp2 = explode(' ', $tmp1[0]); $sortfield = preg_replace('/^.*\./', '', $tmp2[0]); + $sortorder = (!empty($tmp2[1]) ? $tmp2[1] : ''); + //var_dump($sortfield);var_dump($sortorder); } + // Define elementList and sourceList (used for dictionary type of contacts "llx_c_type_contact") $elementList = array(); $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') @@ -675,25 +657,22 @@ if ($id == 11) { } // Define localtax_typeList (used for dictionary "llx_c_tva") -$localtax_typeList = array(); -if ($id == 10) { - $localtax_typeList = array( - "0" => $langs->trans("No"), - "1" => $langs->trans("Yes").' ('.$langs->trans("Type")." 1)", //$langs->trans("%ageOnAllWithoutVAT"), - "2" => $langs->trans("Yes").' ('.$langs->trans("Type")." 2)", //$langs->trans("%ageOnAllBeforeVAT"), - "3" => $langs->trans("Yes").' ('.$langs->trans("Type")." 3)", //$langs->trans("%ageOnProductsWithoutVAT"), - "4" => $langs->trans("Yes").' ('.$langs->trans("Type")." 4)", //$langs->trans("%ageOnProductsBeforeVAT"), - "5" => $langs->trans("Yes").' ('.$langs->trans("Type")." 5)", //$langs->trans("%ageOnServiceWithoutVAT"), - "6" => $langs->trans("Yes").' ('.$langs->trans("Type")." 6)" //$langs->trans("%ageOnServiceBeforeVAT"), - ); -} - +$localtax_typeList = array( + "0" => $langs->trans("No"), + "1" => $langs->trans("Yes").' ('.$langs->trans("Type")." 1)", //$langs->trans("%ageOnAllWithoutVAT"), + "2" => $langs->trans("Yes").' ('.$langs->trans("Type")." 2)", //$langs->trans("%ageOnAllBeforeVAT"), + "3" => $langs->trans("Yes").' ('.$langs->trans("Type")." 3)", //$langs->trans("%ageOnProductsWithoutVAT"), + "4" => $langs->trans("Yes").' ('.$langs->trans("Type")." 4)", //$langs->trans("%ageOnProductsBeforeVAT"), + "5" => $langs->trans("Yes").' ('.$langs->trans("Type")." 5)", //$langs->trans("%ageOnServiceWithoutVAT"), + "6" => $langs->trans("Yes").' ('.$langs->trans("Type")." 6)" //$langs->trans("%ageOnServiceBeforeVAT"), +); /* * Actions */ +$object = new stdClass(); $parameters = array( 'id' =>$id, 'rowid' =>$rowid, @@ -761,7 +740,7 @@ if (empty($reshook)) { continue; // For a column name 'sortorder', we use the field name 'position' } if ((!GETPOSTISSET($value) || GETPOST($value) == '') - && (!in_array($value, array('decalage', 'module', 'accountancy_code', 'accountancy_code_sell', 'accountancy_code_buy', 'tracking', 'picto')) // Fields that are not mandatory + && (!in_array($value, array('decalage', 'module', 'accountancy_code', 'accountancy_code_sell', 'accountancy_code_buy', 'tracking', 'picto', 'deposit_percent')) // Fields that are not mandatory && ($id != 10 || ($value != 'code' && $value != 'note')) // Field code and note is not mandatory for dictionary table 10 ) ) { @@ -774,6 +753,9 @@ if (empty($reshook)) { if ($fieldnamekey == 'libelle_facture') { $fieldnamekey = 'LabelOnDocuments'; } + if ($fieldnamekey == 'deposit_percent') { + $fieldnamekey = 'DepositPercent'; + } if ($fieldnamekey == 'nbjour') { $fieldnamekey = 'NbOfDays'; } @@ -817,11 +799,11 @@ if (empty($reshook)) { $fieldnamekey = 'UseByDefault'; } - setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); + setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); } } // Other checks - if (GETPOST('actionadd') && $tabname[$id] == MAIN_DB_PREFIX."c_actioncomm" && GETPOSTISSET("type") && in_array(GETPOST("type"), array('system', 'systemauto'))) { + if (GETPOST('actionadd') && $tabname[$id] == "c_actioncomm" && GETPOSTISSET("type") && in_array(GETPOST("type"), array('system', 'systemauto'))) { $ok = 0; setEventMessages($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'), null, 'errors'); } @@ -864,12 +846,15 @@ if (empty($reshook)) { $_POST["code"] = preg_replace('/[^a-zA-Z0-9\-\+]/', '', GETPOST("code")); } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + // If check ok and action add, add the line if ($ok && GETPOST('actionadd')) { if ($tabrowid[$id]) { // Get free id for insert $newid = 0; - $sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id]; + $sql = "SELECT MAX(".$tabrowid[$id].") as newid FROM ".MAIN_DB_PREFIX.$tablename; $result = $db->query($sql); if ($result) { $obj = $db->fetch_object($result); @@ -880,7 +865,7 @@ if (empty($reshook)) { } // Add new entry - $sql = "INSERT INTO ".$tabname[$id]." ("; + $sql = "INSERT INTO ".MAIN_DB_PREFIX.$tablename." ("; // List of fields if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) { $sql .= $tabrowid[$id].","; @@ -905,7 +890,7 @@ if (empty($reshook)) { } elseif ($value == 'taux' || $value == 'localtax1') { $_POST[$keycode] = price2num(GETPOST($keycode), 8); // Note that localtax2 can be a list of rates separated by coma like X:Y:Z } elseif ($value == 'entity') { - $_POST[$keycode] = getEntity($tabname[$id]); + $_POST[$keycode] = getEntity($tablename); } if ($i) { @@ -921,7 +906,7 @@ if (empty($reshook)) { } elseif (in_array($keycode, array('joinfile', 'private', 'pos', 'position', 'scale', 'use_default'))) { $sql .= (int) GETPOST($keycode, 'int'); } else { - $sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'"; + $sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'"; } $i++; @@ -956,7 +941,7 @@ if (empty($reshook)) { } // Modify entry - $sql = "UPDATE ".$tabname[$id]." SET "; + $sql = "UPDATE ".MAIN_DB_PREFIX.$tablename." SET "; // Modifie valeur des champs if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) { $sql .= $tabrowid[$id]."="; @@ -974,7 +959,7 @@ if (empty($reshook)) { } elseif ($field == 'taux' || $field == 'localtax1') { $_POST[$keycode] = price2num(GETPOST($keycode), 8); // Note that localtax2 can be a list of rates separated by coma like X:Y:Z } elseif ($field == 'entity') { - $_POST[$keycode] = getEntity($tabname[$id]); + $_POST[$keycode] = getEntity($tablename); } if ($i) { @@ -990,7 +975,7 @@ if (empty($reshook)) { } elseif (in_array($keycode, array('joinfile', 'private', 'pos', 'position', 'scale', 'use_default'))) { $sql .= (int) GETPOST($keycode, 'int'); } else { - $sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'"; + $sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'"; } $i++; @@ -1001,7 +986,7 @@ if (empty($reshook)) { $sql .= " WHERE ".$rowidcol." = ".((int) $rowid); } if (in_array('entity', $listfieldmodify)) { - $sql .= " AND entity = ".((int) getEntity($tabname[$id], 0)); + $sql .= " AND entity = ".((int) getEntity($tablename, 0)); } dol_syslog("actionmodify", LOG_DEBUG); @@ -1011,11 +996,6 @@ if (empty($reshook)) { setEventMessages($db->error(), null, 'errors'); } } - //$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition - } - - if (GETPOST('actioncancel')) { - //$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition } if ($action == 'confirm_delete' && $confirm == 'yes') { // delete @@ -1025,7 +1005,10 @@ if (empty($reshook)) { $rowidcol = "rowid"; } - $sql = "DELETE FROM ".$tabname[$id]." WHERE ".$rowidcol."='".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + + $sql = "DELETE FROM ".MAIN_DB_PREFIX.$tablename." WHERE ".$rowidcol." = '".$db->escape($rowid)."'".($entity != '' ? " AND entity = ".(int) $entity : ''); dol_syslog("delete", LOG_DEBUG); $result = $db->query($sql); @@ -1046,10 +1029,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".$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 ".$tabname[$id]." SET active = 1 WHERE code='".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); @@ -1066,10 +1052,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".$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 ".$tabname[$id]." SET active = 0 WHERE code='".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); @@ -1086,10 +1075,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".$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 ".$tabname[$id]." SET favorite = 1 WHERE code='".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); @@ -1106,10 +1098,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".$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 ".$tabname[$id]." SET favorite = 0 WHERE code='".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); @@ -1126,10 +1121,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".$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 ".$tabname[$id]." SET eec = 1 WHERE code='".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); @@ -1146,10 +1144,13 @@ if (empty($reshook)) { $rowidcol = "rowid"; } + $tablename = $tabname[$id]; + $tablename = preg_replace('/^'.preg_quote(MAIN_DB_PREFIX, '/').'/', '', $tablename); + if ($rowid) { - $sql = "UPDATE ".$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 ".$tabname[$id]." SET eec = 0 WHERE code='".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); @@ -1158,6 +1159,8 @@ if (empty($reshook)) { } } } + + /* * View */ @@ -1219,13 +1222,12 @@ 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); /* * Show a dictionary */ -if ($id) { +if ($id > 0) { // Complete search values request with sort criteria $sql = $tabsql[$id]; @@ -1239,14 +1241,16 @@ if ($id) { $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); } @@ -1293,6 +1297,7 @@ if ($id) { print ''; // Line for title + print ''; $tdsoffields = ''; foreach ($fieldlist as $field => $value) { if ($value == 'entity') { @@ -1315,7 +1320,7 @@ if ($id) { $valuetoshow = $langs->trans("PriceUHT"); } if ($value == 'taux') { - if ($tabname[$id] != MAIN_DB_PREFIX."c_revenuestamp") { + if ($tabname[$id] != "c_revenuestamp") { $valuetoshow = $langs->trans("Rate"); } else { $valuetoshow = $langs->trans("Amount"); @@ -1341,7 +1346,7 @@ if ($id) { $valuetoshow = $langs->trans("Language"); } if ($value == 'type') { - if ($tabname[$id] == MAIN_DB_PREFIX."c_paiement") { + if ($tabname[$id] == "c_paiement") { $valuetoshow = $form->textwithtooltip($langs->trans("Type"), $langs->trans("TypePaymentDesc"), 2, 1, img_help(1, '')); } else { $valuetoshow = $langs->trans("Type"); @@ -1356,6 +1361,10 @@ if ($id) { if ($value == 'libelle_facture') { $valuetoshow = $form->textwithtooltip($langs->trans("LabelOnDocuments"), $langs->trans("LabelUsedByDefault"), 2, 1, img_help(1, '')); } + if ($value == 'deposit_percent') { + $valuetoshow = $langs->trans('DepositPercent'); + $class = 'right'; + } if ($value == 'country') { if (in_array('region_id', $fieldlist)) { print ''; continue; @@ -1367,12 +1376,14 @@ if ($id) { } if ($value == 'nbjour') { $valuetoshow = $langs->trans("NbOfDays"); + $class = 'right'; } if ($value == 'type_cdr') { $valuetoshow = $langs->trans("AtEndOfMonth"); $class = "center"; } if ($value == 'decalage') { $valuetoshow = $langs->trans("Offset"); + $class = 'right'; } if ($value == 'width' || $value == 'nx') { $valuetoshow = $langs->trans("Width"); @@ -1409,6 +1420,7 @@ if ($id) { } if ($value == 'sortorder') { $valuetoshow = $langs->trans("SortOrder"); + $class = 'center'; } if ($value == 'short_label') { $valuetoshow = $langs->trans("ShortLabel"); @@ -1505,37 +1517,39 @@ if ($id) { } if ($valuetoshow != '') { - $tdsoffields .= ''; - if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) { - $tdsoffields .= ''.$valuetoshow.' '.img_help(1, $valuetoshow).''; - } elseif (!empty($tabhelp[$id][$value])) { - $tdsoffields .= $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]); + $tooltiphelp = (isset($tabcomplete[$tabname[$id]]['help'][$value]) ? $tabcomplete[$tabname[$id]]['help'][$value] : ''); + + $tdsoffields .= ''; + if ($tooltiphelp && preg_match('/^http(s*):/i', $tooltiphelp)) { + $tdsoffields .= ''.$valuetoshow.' '.img_help(1, $valuetoshow).''; + } elseif ($tooltiphelp) { + $tdsoffields .= $form->textwithpicto($valuetoshow, $tooltiphelp); } else { $tdsoffields .= $valuetoshow; } - $tdsoffields .= ''; + $tdsoffields .= ''; } } if ($id == 4) { - $tdsoffields .= ''; - $tdsoffields .= ''; + $tdsoffields .= ''; + $tdsoffields .= ''; } - $tdsoffields .= ''; - $tdsoffields .= ''; + $tdsoffields .= ''; + $tdsoffields .= ''; + $tdsoffields .= ''; $tdsoffields .= ''; print $tdsoffields; // Line to enter new values - print ''; + print ''; print ''; $obj = new stdClass(); @@ -1606,6 +1620,7 @@ if ($id) { print '
 '; + $tdsoffields .= ''; $tdsoffields .= ''; if (!is_null($withentity)) { $tdsoffields .= ''; } - $tdsoffields .= ''; - $tdsoffields .= '
'; // Title line with search input fields + print ''."\n"; print ''; $filterfound = 0; foreach ($fieldlist as $field => $value) { @@ -1650,14 +1665,15 @@ if ($id) { print ''; // Title of lines + print ''."\n"; print ''; foreach ($fieldlist as $field => $value) { if ($value == 'entity') { continue; } - if (in_array($value, array('label', 'libelle', 'libelle_facture')) && empty($tabhelp[$id][$value])) { - $tabhelp[$id][$value] = $langs->trans('LabelUsedByDefault'); + if (in_array($value, array('label', 'libelle', 'libelle_facture')) && empty($tabcomplete[$tabname[$id]]['help'][$value])) { + $tabcomplete[$tabname[$id]]['help'][$value] = $langs->trans('LabelUsedByDefault'); } // Determines the name of the field in relation to the possible names @@ -1676,7 +1692,7 @@ if ($id) { $valuetoshow = $langs->trans("PriceUHT"); } if ($value == 'taux') { - if ($tabname[$id] != MAIN_DB_PREFIX."c_revenuestamp") { + if ($tabname[$id] != "c_revenuestamp") { $valuetoshow = $langs->trans("Rate"); } else { $valuetoshow = $langs->trans("Amount"); @@ -1717,6 +1733,10 @@ if ($id) { if ($value == 'libelle_facture') { $valuetoshow = $langs->trans("LabelOnDocuments"); } + if ($value == 'deposit_percent') { + $valuetoshow = $langs->trans('DepositPercent'); + $cssprefix = 'right '; + } if ($value == 'country') { $valuetoshow = $langs->trans("Country"); } @@ -1725,12 +1745,14 @@ if ($id) { } if ($value == 'nbjour') { $valuetoshow = $langs->trans("NbOfDays"); + $cssprefix = 'right '; } if ($value == 'type_cdr') { $valuetoshow = $langs->trans("AtEndOfMonth"); $cssprefix = "center "; } if ($value == 'decalage') { $valuetoshow = $langs->trans("Offset"); + $cssprefix = 'right '; } if ($value == 'width' || $value == 'nx') { $valuetoshow = $langs->trans("Width"); @@ -1764,6 +1786,7 @@ if ($id) { } if ($value == 'sortorder') { $valuetoshow = $langs->trans("SortOrder"); + $cssprefix = 'center '; } if ($value == 'short_label') { $valuetoshow = $langs->trans("ShortLabel"); @@ -1856,10 +1879,12 @@ if ($id) { // Show field title if ($showfield) { - if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) { - $newvaluetoshow = ''.$valuetoshow.' '.img_help(1, $valuetoshow).''; - } elseif (!empty($tabhelp[$id][$value])) { - $newvaluetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]); + $tooltiphelp = (isset($tabcomplete[$tabname[$id]]['help'][$value]) ? $tabcomplete[$tabname[$id]]['help'][$value] : ''); + + if ($tooltiphelp && preg_match('/^http(s*):/i', $tooltiphelp)) { + $newvaluetoshow = ''.$valuetoshow.' '.img_help(1, $valuetoshow).''; + } elseif ($tooltiphelp) { + $newvaluetoshow = $form->textwithpicto($valuetoshow, $tooltiphelp); } else { $newvaluetoshow = $valuetoshow; } @@ -1956,64 +1981,64 @@ if ($id) { $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 = nl2br($valuetoshow); - } elseif ($value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_country') { + } 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}); - } elseif ($value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_availability') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_actioncomm') { + } 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}); - } elseif (!empty($obj->code_iso) && $value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_currencies') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_typent') { + } elseif ($value == 'libelle' && $tabname[$id] == 'c_typent') { $key = $langs->trans(strtoupper($obj->code)); $valuetoshow = ($key != strtoupper($obj->code) ? $key : $obj->{$value}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_prospectlevel') { + } elseif ($value == 'libelle' && $tabname[$id] == 'c_prospectlevel') { $key = $langs->trans(strtoupper($obj->code)); $valuetoshow = ($key != strtoupper($obj->code) ? $key : $obj->{$value}); - } elseif ($value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_civility') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_type_contact') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_payment_term') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_paiement') { + } 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}); - } elseif ($value == 'type' && $tabname[$id] == MAIN_DB_PREFIX.'c_paiement') { + } 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] == MAIN_DB_PREFIX.'c_input_reason') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_input_method') { + } 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}; - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_shipment_mode') { + } 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}); - } elseif ($value == 'libelle' && $tabname[$id] == MAIN_DB_PREFIX.'c_paper_format') { + } 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}); - } elseif ($value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_type_fees') { + } 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}); @@ -2021,13 +2046,13 @@ if ($id) { $showfield = 0; } elseif ($value == 'unicode') { $valuetoshow = $langs->getCurrencySymbol($obj->code, 1); - } elseif ($value == 'label' && $tabname[GETPOST("id", 'int')] == MAIN_DB_PREFIX.'c_units') { + } elseif ($value == 'label' && $tabname[GETPOST("id", 'int')] == 'c_units') { $langs->load("products"); $valuetoshow = $langs->trans($obj->{$value}); - } elseif ($value == 'short_label' && $tabname[GETPOST("id", 'int')] == MAIN_DB_PREFIX.'c_units') { + } elseif ($value == 'short_label' && $tabname[GETPOST("id", 'int')] == 'c_units') { $langs->load("products"); $valuetoshow = $langs->trans($obj->{$value}); - } elseif (($value == 'unit') && ($tabname[$id] == MAIN_DB_PREFIX.'c_paper_format')) { + } 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}); } elseif ($value == 'localtax1' || $value == 'localtax2') { @@ -2052,7 +2077,7 @@ if ($id) { } 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); @@ -2062,30 +2087,32 @@ if ($id) { } 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; } } } elseif ($value == 'fk_c_exp_tax_cat') { $tmpid = $valuetoshow; - $valuetoshow = getDictionaryValue(MAIN_DB_PREFIX.'c_exp_tax_cat', 'label', $tmpid); + $valuetoshow = getDictionaryValue('c_exp_tax_cat', 'label', $tmpid); $valuetoshow = $langs->trans($valuetoshow ? $valuetoshow : $tmpid); - } elseif ($tabname[$id] == MAIN_DB_PREFIX.'c_exp_tax_cat') { + } elseif ($tabname[$id] == 'c_exp_tax_cat') { $valuetoshow = $langs->trans($valuetoshow); - } elseif ($value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_units') { + } elseif ($value == 'label' && $tabname[$id] == 'c_units') { $langs->load('other'); $key = $langs->trans($obj->label); $valuetoshow = ($obj->label && $key != strtoupper($obj->label) ? $key : $obj->{$value}); } elseif ($value == 'code' && $id == 3) { $valuetoshow = $obj->state_code; - } elseif ($value == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_product_nature') { + } elseif ($value == 'label' && $tabname[$id] == 'c_product_nature') { $langs->load("products"); $valuetoshow = $langs->trans($obj->{$value}); - } elseif ($fieldlist[$field] == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_productbatch_qcstatus') { + } elseif ($fieldlist[$field] == 'label' && $tabname[$id] == 'c_productbatch_qcstatus') { $langs->load("productbatch"); $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}]; @@ -2097,13 +2124,13 @@ if ($id) { if ($value == 'tracking') { $class .= ' tdoverflowauto'; } - if (in_array($value, array('pos', 'position'))) { + if (in_array($value, array('nbjour', 'decalage', 'pos', 'position', 'deposit_percent'))) { $class .= ' right'; } if (in_array($value, array('localtax1_type', 'localtax2_type'))) { $class .= ' nowrap'; } - if (in_array($value, array('use_default', 'fk_parent'))) { + if (in_array($value, array('use_default', 'fk_parent', 'sortorder'))) { $class .= ' center'; } if ($value == 'public') { @@ -2147,7 +2174,7 @@ if ($id) { if (!empty($obj->code) && $obj->code == 'RECEP') { $canbemodified = 1; } - if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm") { + if ($tabname[$id] == "c_actioncomm") { $canbemodified = 1; } @@ -2174,7 +2201,7 @@ if ($id) { if ($iserasable) { print ''.$actl[$obj->eec].''; } else { - print $langs->trans("AlwaysActive"); + print ''.$langs->trans("AlwaysActive").''; } print ''; print ''; } @@ -2199,7 +2226,7 @@ if ($id) { } elseif (isset($obj->type) && in_array($obj->type, array('system')) && !empty($obj->active) && $obj->code != 'AC_OTH') { print $langs->trans("UsedOnlyWithTypeOption"); } else { - print $langs->trans("AlwaysActive"); + print ''.$langs->trans("AlwaysActive").''; } } print ""; @@ -2283,7 +2310,7 @@ if ($id) { print ''; print ''; print ''; print ''; $lastlineisempty = false; @@ -2333,7 +2360,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') continue; } - if (in_array($value, array('code', 'libelle', 'type')) && $tabname == MAIN_DB_PREFIX."c_actioncomm" && in_array($obj->type, array('system', 'systemauto'))) { + if (in_array($value, array('code', 'libelle', 'type')) && $tabname == "c_actioncomm" && in_array($obj->type, array('system', 'systemauto'))) { $hidden = (!empty($obj->{$value}) ? $obj->{$value}:''); print ''; - } elseif ($value == 'element') { - // The type 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 ($value == 'source') { - // The source of the element (for contact types) - print ''; } elseif (in_array($value, array('public', 'use_default'))) { // Fields 0/1 with a combo select Yes/No @@ -2389,12 +2416,12 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print ''; - } elseif ($value == 'type' && $tabname == MAIN_DB_PREFIX."c_actioncomm") { + } elseif ($value == 'type' && $tabname == "c_actioncomm") { $type = (!empty($obj->type) ? $obj->type : 'user'); // Check if type is different of 'user' (external module) print ''; - } elseif ($value == 'type' && $tabname == MAIN_DB_PREFIX.'c_paiement') { + } elseif ($value == 'type' && $tabname == 'c_paiement') { print ''; } elseif (in_array($value, array('nbjour', 'decalage', 'taux', 'localtax1', 'localtax2'))) { - $class = "left"; + $class = "right"; if (in_array($value, array('taux', 'localtax1', 'localtax2'))) { $class = "center"; // Fields aligned on right } @@ -2424,7 +2451,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') $transfound = 0; $transkey = ''; // Special case for labels - if ($tabname == MAIN_DB_PREFIX.'c_payment_term') { + if ($tabname == 'c_payment_term') { $langs->load("bills"); $transkey = "PaymentCondition".strtoupper($obj->code); if ($langs->trans($transkey) != $transkey) { @@ -2459,7 +2486,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print ''; } elseif ($value == 'accountancy_code' || $value == 'accountancy_code_sell' || $value == 'accountancy_code_buy') { print ''; } else { $fieldValue = isset($obj->{$value}) ? $obj->{$value}: ''; + $classtd = ''; $class = ''; if ($value == 'sortorder') { $fieldlist[$field] = 'position'; } - $classtd = ''; $class = ''; if ($fieldlist[$field] == 'code') { $class = 'maxwidth100'; } - if (in_array($fieldlist[$field], array('pos', 'position'))) { + if (in_array($fieldlist[$field], array('deposit_percent'))) { $classtd = 'right'; $class = 'maxwidth50 right'; } + if (in_array($fieldlist[$field], array('pos', 'position'))) { + $classtd = 'center'; $class = 'maxwidth50 center'; + } if (in_array($fieldlist[$field], array('dayrule', 'day', 'month', 'year', 'use_default', 'affect', 'delay', 'public', 'sortorder', 'sens', 'category_type', 'fk_parent'))) { $class = 'maxwidth50 center'; } @@ -2522,19 +2552,19 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') $maxlength = ''; if (in_array($fieldlist[$field], array('libelle', 'label'))) { switch ($tabname) { - case MAIN_DB_PREFIX . 'c_accounting_category': - case MAIN_DB_PREFIX . 'c_ecotaxe': - case MAIN_DB_PREFIX . 'c_email_senderprofile': - case MAIN_DB_PREFIX . 'c_forme_juridique': - case MAIN_DB_PREFIX . 'c_holiday_types': - case MAIN_DB_PREFIX . 'c_payment_term': - case MAIN_DB_PREFIX . 'c_transport_mode': + case 'c_accounting_category': + case 'c_ecotaxe': + case 'c_email_senderprofile': + case 'c_forme_juridique': + case 'c_holiday_types': + case 'c_payment_term': + case 'c_transport_mode': $maxlength = ' maxlength="255"'; break; - case MAIN_DB_PREFIX . 'c_email_templates': + case 'c_email_templates': $maxlength = ' maxlength="180"'; break; - case MAIN_DB_PREFIX . 'c_socialnetworks': + case 'c_socialnetworks': $maxlength = ' maxlength="150"'; break; default: @@ -2547,10 +2577,10 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') $transkey = ''; if (in_array($fieldlist[$field], array('label', 'libelle'))) { // For label // Special case for labels - if ($tabname == MAIN_DB_PREFIX.'c_civility' && !empty($obj->code)) { + if ($tabname == 'c_civility' && !empty($obj->code)) { $transkey = "Civility".strtoupper($obj->code); } - if ($tabname == MAIN_DB_PREFIX.'c_payment_term' && !empty($obj->code)) { + if ($tabname == 'c_payment_term' && !empty($obj->code)) { $langs->load("bills"); $transkey = "PaymentConditionShort".strtoupper($obj->code); } 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 5a23133923e..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).'
'; } /** @@ -232,6 +232,9 @@ class PrestaShopWebservice if ($response != '') { libxml_clear_errors(); libxml_use_internal_errors(true); + if (!function_exists('simplexml_load_string')) { + throw new PrestaShopWebserviceException('Method simplexml_load_string not available. Your PHP does not support xml.'); + } $xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA|LIBXML_NONET); if (libxml_get_errors()) { $msg = var_export(libxml_get_errors(), true); diff --git a/htdocs/admin/ecm.php b/htdocs/admin/ecm.php index 44df7f74189..3e0c2378742 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'; @@ -37,6 +39,8 @@ if (!$user->admin) { /* * Action */ + +// set 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 +51,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) { diff --git a/htdocs/admin/ecm_directories_extrafields.php b/htdocs/admin/ecm_directories_extrafields.php index d913826b245..4191e40a369 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'; @@ -91,7 +92,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/ecm_files_extrafields.php b/htdocs/admin/ecm_files_extrafields.php index b260eff55fa..1887103bcc9 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'; @@ -91,7 +92,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php index 7a4faa989d0..19486510f58 100644 --- a/htdocs/admin/emailcollector_card.php +++ b/htdocs/admin/emailcollector_card.php @@ -1,5 +1,6 @@ + * 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 @@ -21,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'; @@ -33,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(); } @@ -90,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 = ''; @@ -191,7 +203,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)) { @@ -336,14 +348,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; @@ -359,47 +369,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
'; - /* - // Ref bis - $morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->emailcollector->creer, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->emailcollector->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->emailcollector->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 .= '
'; $morehtml = $langs->trans("NbOfEmailsInInbox").' : '; @@ -418,27 +387,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) ? 10 : $conf->global->MAIN_USE_CONNECT_TIMEOUT; - $timeoutread = empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 30 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT; - - dol_syslog("imap_open connectstring=".$connectstringsource." login=".$object->login." password=".$object->password." timeoutconnect=".$timeoutconnect." timeoutread=".$timeoutread); - - imap_timeout(IMAP_OPENTIMEOUT, $timeoutconnect); - imap_timeout(IMAP_READTIMEOUT, $timeoutread); - - $connection = imap_open($connectstringsource, $object->login, $object->password); - } catch (Exception $e) { - print $e->getMessage(); + } else { + $morehtml .= ''.img_picto('', 'refresh', 'class="paddingrightonly"').$langs->trans("Refresh").''; } $morehtml .= $form->textwithpicto('', 'connect string '.$connectstringserver); @@ -446,23 +534,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 '
'; @@ -490,7 +561,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
'; print '
'; @@ -2182,7 +2209,7 @@ if ($id) { if ($iserasable) { print ''.$actl[$obj->favorite].''; } else { - print $langs->trans("AlwaysActive"); + print ''.$langs->trans("AlwaysActive").''; } print ''; - print $form->textwithpicto('', $langs->trans("Table").': '.$tabname[$i]); + print $form->textwithpicto('', $langs->trans("Table").': '.MAIN_DB_PREFIX.$tabname[$i]); print '
'; print ''; @@ -2369,15 +2396,15 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print ''; print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'lang'); print ''; - print $form->selectarray('element', $elementList, (!empty($obj->{$value}) ? $obj->{$value}:'')); - print ''; - print $form->selectarray('source', $sourceList, (!empty($obj->{$value}) ? $obj->{$value}:'')); + print $form->selectarray($value, $tmparray, (!empty($obj->{$value}) ? $obj->{$value}:''), 0, 0, 0, '', 0, 0, 0, '', 'maxwidth250'); print ''; print $form->selectyesno("private", (!empty($obj->{$value}) ? $obj->{$value}:'')); print ''; print $type.''; print ''; $select_list = array(0=>$langs->trans('PaymentTypeCustomer'), 1=>$langs->trans('PaymentTypeSupplier'), 2=>$langs->trans('PaymentTypeBoth')); print $form->selectarray($value, $select_list, (!empty($obj->{$value}) ? $obj->{$value}:'2')); @@ -2412,7 +2439,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') } 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'); @@ -2490,18 +2517,21 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print '
'; print ''; - print ''; + print ''; print ''; // Add filter print ''; @@ -555,7 +626,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $rulefilterobj->fetch($rulefilter['id']); print ''; - print ''; print ''; @@ -577,24 +648,23 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; print ''; - // Add operation - print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -631,7 +704,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $ruleactionobj->fetch($ruleaction['id']); print ''; - print ''; - print ''; // Move up/down @@ -708,7 +781,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; // Clone - print ''; + print ''; // Collect now if (count($object->actions) > 0) { diff --git a/htdocs/admin/emailcollector_list.php b/htdocs/admin/emailcollector_list.php index 9e93dd78b86..075ece751ce 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'; @@ -29,6 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/events.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'; + dol_include_once('/emailcollector/class/emailcollector.class.php'); // Load translation files required by page @@ -43,6 +45,7 @@ $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'emailcollectorlist'; // 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'); @@ -52,8 +55,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 or if we select empty mass action $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; @@ -73,7 +77,7 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen // Default sort order (if not yet defined by previous GETPOST) if (!$sortfield) { - $sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition. + $sortfield = "t.ref"; // Set here default search field. By default 1st field in definition. } if (!$sortorder) { $sortorder = "ASC"; @@ -88,12 +92,16 @@ if ($user->socid > 0) { // Protection if external user //$result = restrictedArea($user, 'emailcollector', $id, ''); // Initialize array of search criterias -$search_all = GETPOST("search_all", 'alphanohtml'); +$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" @@ -109,29 +117,19 @@ $arrayfields = array(); foreach ($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field if (!empty($val['visible'])) { - $visible = 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')), - 'position'=>$val['position'] + 'enabled'=>(abs($visible) != 3 && dol_eval($val['enabled'], 1)), + 'position'=>$val['position'], + 'help'=> isset($val['help']) ? $val['help'] : '' ); } } // Extra fields -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { - 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($extrafields->attributes[$object->table_element]['list'][$key]) != 3 && $extrafields->attributes[$object->table_element]['perms'][$key]), - 'langfile'=>$extrafields->attributes[$object->table_element]['langfile'][$key] - ); - } - } -} +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'); @@ -145,7 +143,7 @@ $permissiontodelete = $user->admin; if (!$user->admin) { accessforbidden(); } -if (empty($conf->emailcollector->enabled)) { +if (!isModEnabled('emailcollector')) { accessforbidden('Module not enabled'); } @@ -156,7 +154,8 @@ if (empty($conf->emailcollector->enabled)) { */ if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; @@ -176,8 +175,12 @@ if (empty($reshook)) { 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 = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -200,20 +203,22 @@ if (empty($reshook)) { $form = new Form($db); +$now = dol_now(); + $help_url = "EN:Module_EMail_Collector|FR:Module_Collecteur_de_courrier_électronique|ES:Module_EMail_Collector"; -$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("EmailCollector")); +$title = $langs->trans('EmailCollectors'); +$morejs = array(); +$morecss = array(); // Build and execute select // -------------------------------------------------------------------- $sql = 'SELECT '; -foreach ($object->fields as $key => $val) { - $sql .= "t.".$key.", "; -} +$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.', ' : ''); + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); } } // Add fields from hooks @@ -222,7 +227,7 @@ $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 t"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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)"; } if ($object->ismultientitymanaged == 1) { @@ -231,18 +236,32 @@ if ($object->ismultientitymanaged == 1) { $sql .= " WHERE 1 = 1"; } foreach ($search as $key => $val) { - 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) { - if ($search[$key] == '-1') { - $search[$key] = ''; + 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])."'"; + } + } } - $mode_search = 2; - } - if ($search[$key] != '') { - $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); } } if ($search_all) { @@ -257,49 +276,48 @@ $sql .= $hookmanager->resPrint; /* If a group by is required $sql.= " GROUP BY "; -foreach ($object->fields as $key => $val) -{ - $sql .= "t.".$key.", "; +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.', ' : ''); +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); // Note that $action and $object may have been modified by hook -$sql.=$hookmanager->resPrint; -$sql=preg_replace('/, $/','', $sql); +$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); */ -$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 $page = 0; $offset = 0; } -} -// 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); + $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) { @@ -313,7 +331,7 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ // Output page // -------------------------------------------------------------------- -llxHeader('', $title, $help_url); +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', ''); $arrayofselected = is_array($toselect) ? $toselect : array(); @@ -327,9 +345,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) { foreach ($search as $key => $val) { if (is_array($search[$key]) && count($search[$key])) { foreach ($search[$key] as $skey) { - $param .= '&search_'.$key.'[]='.urlencode($skey); + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } } - } else { + } elseif ($search[$key] != '') { $param .= '&search_'.$key.'='.urlencode($search[$key]); } } @@ -338,6 +358,10 @@ if ($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( @@ -352,7 +376,7 @@ if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'pr } $massactionbutton = $form->selectMassAction('', $arrayofmassactions); -print ''; +print ''."\n"; if ($optioncss != '') { print ''; } @@ -397,7 +421,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 @@ -407,25 +431,43 @@ print '
'.img_picto('', 'filter', 'class="pictofixedwidth"').$form->textwithpicto($langs->trans("Filters"), $langs->trans("EmailCollectorFilterDesc")).''.img_picto('', 'filter', 'class="pictofixedwidth opacitymedium"').$form->textwithpicto($langs->trans("Filters"), $langs->trans("EmailCollectorFilterDesc")).'
'; + print ''; print $langs->trans($arrayoftypes[$rulefilter['type']]['label']); print ''.$rulefilter['rulevalue'].'
'.img_picto('', 'technic', 'class="pictofixedwidth"').$form->textwithpicto($langs->trans("EmailcollectorOperations"), $langs->trans("EmailcollectorOperationsDesc")).'
'; + $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 ($conf->projet->enabled) { + if (isModEnabled('project')) { $arrayoftypes['project'] = 'CreateLeadAndThirdParty'; } $arrayoftypesnocondition['project'] = 'CreateLeadAndThirdParty'; - if ($conf->ticket->enabled) { + if (isModEnabled('ticket')) { $arrayoftypes['ticket'] = 'CreateTicketAndThirdParty'; } $arrayoftypesnocondition['ticket'] = 'CreateTicketAndThirdParty'; - if ($conf->recruitment->enabled) { + if (isModEnabled('recruitment')) { $arrayoftypes['candidature'] = 'CreateCandidature'; } $arrayoftypesnocondition['candidature'] = 'CreateCandidature'; @@ -611,13 +681,16 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } + // Add operation + 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 '
'; + print ''; print ''; if (array_key_exists($ruleaction['type'], $arrayoftypes)) { print $langs->trans($arrayoftypes[$ruleaction['type']]); @@ -647,14 +720,14 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print $form->textwithpicto('', $langs->transnoentitiesnoconv('EmailCollectorLoadThirdPartyHelp')); } print ''; + print ''; if ($action == 'editoperation' && $ruleaction['id'] == $operationid) { - print '
'; + print '
'; print ''; print ''; print ''; } else { - print $ruleaction['actionparam']; + print dol_escape_htmltag($ruleaction['actionparam']); } print '
'; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} foreach ($object->fields as $key => $val) { - $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'))) { $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') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { print ''; } @@ -438,45 +480,57 @@ $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 ''; +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['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'))) { $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') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $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); +$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; // Action column -print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +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 (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 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 @@ -488,8 +542,10 @@ if (is_array($extrafields->attributes[$object->table_element]['computed']) && co // Loop on record // -------------------------------------------------------------------- $i = 0; -$totalarray = array(); -while ($i < ($limit ? min($num, $limit) : $num)) { +$savnbfield = $totalarray['nbfield']; +$totalarray['nbfield'] = 0; +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); if (empty($obj)) { break; // Should not happen @@ -498,73 +554,107 @@ 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['css']) ? '' : $val['css']); - if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'center'; - } elseif ($key == 'status') { - $cssforfield .= ($cssforfield ? ' ' : '').'center'; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; } - - if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status'))) { - $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); - } else { - print $object->showOutputField($val, $key, $object->$key, ''); + } else { + // Show here line of result + $j = 0; + print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + 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; - // Action 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'; + } - print ''."\n"; + 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; + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print ''."\n"; + } $i++; } @@ -581,7 +671,7 @@ if ($num == 0) { $colspan++; } } - print ''; + print ''; } @@ -594,6 +684,34 @@ 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'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); - } elseif (strpos($val['type'], 'integer:') === 0) { - print $object->showInputField($val, $key, $search[$key], '', '', 'search_', 'maxwidth150', 1); - } elseif (!preg_match('/^(date|timestamp)/', $val['type'])) { - print ''; + 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_', 'maxwidth125', 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 ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
'; + print '
'; } - - if (in_array($val['type'], array('timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif ($key == 'ref') { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + // 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 ''; - 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; + } + print ''; + } + print '
'.$langs->trans("NoRecordFound").'
'.$langs->trans("NoRecordFound").'
'."\n"; print ''."\n"; +print load_fiche_titre($langs->trans("Other"), '', ''); + + +print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print ''; + +print ''; +print ''; +print ''; +print "\n"; + +// Hide e-mail headers from collected messages +print ''; +print ''; +print ''; + +print '
'.$langs->trans("Parameter").'
'.$form->textwithpicto($langs->trans("EmailCollectorHideMailHeaders"), $langs->transnoentitiesnoconv("EmailCollectorHideMailHeadersHelp")).''; +if ($conf->use_javascript_ajax) { + print ajax_constantonoff('MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER'); +} else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER", $arrval, $conf->global->TICKET_AUTO_READ_WHEN_CREATED_FROM_BACKEND); +} +print '
'; +print '
'; + +print '
'; + print ''."\n"; if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) { diff --git a/htdocs/admin/eventorganization.php b/htdocs/admin/eventorganization.php index 254f7d3c8d4..40c86d79e13 100644 --- a/htdocs/admin/eventorganization.php +++ b/htdocs/admin/eventorganization.php @@ -220,7 +220,7 @@ if ($action == 'edit') { foreach ($arrayofparameters as $constname => $val) { if ($val['enabled']==1) { $setupnotempty++; - print '
aa'; + 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 +228,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 +255,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 +263,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 '
'; 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}); + $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'])) { - 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,25 +342,25 @@ 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}); + $resprod = $product->fetch(getDolGlobalString($constname)); if ($resprod > 0) { print $product->getNomUrl(1); } elseif ($resprod < 0) { - setEventMessages(null, $object->errors, "errors"); + setEventMessages($product->error, $product->errors, "errors"); } } else { - print $conf->global->{$constname}; + print getDolGlobalString($constname); } print '
'; $constforvar = 'EVENTORGANIZATION_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -597,7 +586,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'EVENTORGANIZATION_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + 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').''; diff --git a/htdocs/admin/eventorganization_confbooth_extrafields.php b/htdocs/admin/eventorganization_confbooth_extrafields.php index 991ed3f824a..97bc4ad37bd 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'; @@ -81,7 +82,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/eventorganization_confboothattendee_extrafields.php b/htdocs/admin/eventorganization_confboothattendee_extrafields.php index 0b50c483d69..552e814f8de 100644 --- a/htdocs/admin/eventorganization_confboothattendee_extrafields.php +++ b/htdocs/admin/eventorganization_confboothattendee_extrafields.php @@ -85,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/events.php b/htdocs/admin/events.php index b98f3775aad..4085207642b 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'; @@ -111,7 +112,7 @@ print '
'; print ''; print ""; -print getTitleFieldOfList("LogEvents", 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, '')."\n"; +print getTitleFieldOfList("TrackableSecurityEvents", 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, '')."\n"; print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; print "\n"; // Loop on each event type diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index 12e0d0a6d01..485ce901e5c 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'; @@ -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 '\n"; print '\n"; 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 b76ee35b76c..ed4e062970d 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'; @@ -91,7 +92,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/expeditiondet_extrafields.php b/htdocs/admin/expeditiondet_extrafields.php index 4f807ee9da3..e0ce6a82b8f 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'; @@ -92,7 +93,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php index fc63940f0b8..8c20b493105 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'; @@ -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 '
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftExpenseReports"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; -print ''; +print ''; print '
'; print $langs->trans('ProjectIsRequiredOnExpenseReports'); print ''; diff --git a/htdocs/admin/expensereport_extrafields.php b/htdocs/admin/expensereport_extrafields.php index 25771ef63d0..3406b9092e7 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'; @@ -85,7 +86,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/expensereport_ik.php b/htdocs/admin/expensereport_ik.php index 900754ef4b4..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'; @@ -36,10 +37,10 @@ $langs->loadLangs(array("admin", "trips", "errors", "other", "dict")); $error = 0; $action = GETPOST('action', 'aZ09'); + $id = GETPOST('id', 'int'); $ikoffset = GETPOST('ikoffset', 'int'); $coef = GETPOST('coef', 'int'); - $fk_c_exp_tax_cat = GETPOST('fk_c_exp_tax_cat'); $fk_range = GETPOST('fk_range', 'int'); @@ -62,9 +63,16 @@ if ($action == 'updateik') { } } - $expIk->setValues($_POST); - $result = $expIk->create($user); + $expIk->coef = $coef; + $expIk->ikoffset = $ikoffset; + $expIk->fk_c_exp_tax_cat = $fk_c_exp_tax_cat; + $expIk->fk_range = $fk_range; + if ($expIk->id > 0) { + $result = $expIk->update($user); + } else { + $result = $expIk->create($user); + } if ($result > 0) { setEventMessages('SetupSaved', null, 'mesgs'); diff --git a/htdocs/admin/expensereport_rules.php b/htdocs/admin/expensereport_rules.php index 1146232dca3..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'; @@ -34,13 +35,19 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport_rule.class.ph // Load translation files required by the page $langs->loadLangs(array("admin", "other", "trips", "errors", "dict")); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('admin', 'dictionaryadmin','expensereport_rules')); + +$object = new ExpenseReportRule($db); + if (!$user->admin) { accessforbidden(); } -// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('admin', 'dictionaryadmin','expensereport_rules')); +/* + * Action + */ $parameters = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks @@ -51,7 +58,6 @@ if ($reshook < 0) { if (empty($reshook)) { //Init error $error = false; - $message = false; $action = GETPOST('action', 'aZ09'); $id = GETPOST('id', 'int'); @@ -59,21 +65,20 @@ if (empty($reshook)) { $apply_to = GETPOST('apply_to'); $fk_user = GETPOST('fk_user', 'int'); $fk_usergroup = GETPOST('fk_usergroup', 'int'); - - $fk_c_type_fees = GETPOST('fk_c_type_fees'); + $restrictive = GETPOST('restrictive', 'int'); + $fk_c_type_fees = GETPOST('fk_c_type_fees', 'int'); $code_expense_rules_type = GETPOST('code_expense_rules_type'); $dates = dol_mktime(12, 0, 0, GETPOST('startmonth'), GETPOST('startday'), GETPOST('startyear')); $datee = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); - $amount = GETPOST('amount'); + $amount = price2num(GETPOST('amount'), 'MT', 2); - $object = new ExpenseReportRule($db); if (!empty($id)) { $result = $object->fetch($id); if ($result < 0) { dol_print_error('', $object->error, $object->errors); } } - // TODO do action + if ($action == 'save') { $error = 0; @@ -104,8 +109,6 @@ if (empty($reshook)) { } if (empty($error)) { - $object->setValues($_POST); - if ($apply_to == 'U') { $object->fk_user = (int) $fk_user; $object->fk_usergroup = 0; @@ -122,18 +125,30 @@ if (empty($reshook)) { $object->dates = $dates; $object->datee = $datee; - + $object->restrictive = $restrictive; + $object->fk_c_type_fees = $fk_c_type_fees; + $object->code_expense_rules_type = $code_expense_rules_type; + $object->amount = $amount; $object->entity = $conf->entity; - $res = $object->create($user); + if ($object->id > 0) { + $res = $object->update($user); + } else { + $res = $object->create($user); + } if ($res > 0) { setEventMessages($langs->trans('ExpenseReportRuleSave'), null); } else { dol_print_error($object->db); + $error++; } - header('Location: ' . $_SERVER['PHP_SELF']); - exit; + if (!$error) { + header('Location: ' . $_SERVER['PHP_SELF']); + exit; + } else { + $action = ''; + } } } elseif ($action == 'delete') { // TODO add confirm @@ -207,7 +222,7 @@ if ($action != 'edit') { echo '' . $form->selectarray('code_expense_rules_type', $tab_rules_type, '', 0) . '' . $form->selectDate(strtotime(date('Y-m-01', dol_now())), 'start', '', '', 0, '', 1, 0) . ' ' . $conf->currency . '' . $form->selectyesno('restrictive', 0, 1) . '
'; if ($action == 'edit' && $object->id == $rule->id) { - echo '' . $conf->currency; + echo ''; } else { echo price($rule->amount, 0, $langs, 1, -1, -1, $conf->currency); } 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..cdb7794c4d2 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -27,6 +27,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'; @@ -637,7 +638,7 @@ print "
".$langs->trans("SuggestPaymentByRIBOnAccount").""; -if (!empty($conf->banque->enabled)) { +if (isModEnabled('banque')) { $sql = "SELECT rowid, label"; $sql .= " FROM ".MAIN_DB_PREFIX."bank_account"; $sql .= " WHERE clos = 0"; @@ -743,10 +744,10 @@ 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 +762,7 @@ print ' print '
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftBill"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print '
'; +print ''; print ''; print ''; 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 +526,7 @@ print "'; print $form->textwithpicto($langs->trans("WatermarkOnDraftInterventionCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print '
'; -print ''; +print ''; print ''; print ''; print "
'; print $langs->trans("PrintProductsOnFichinter").' ('.$langs->trans("PrintProductsOnFichinterDetails").')global->FICHINTER_PRINT_PRODUCTS) { +if (getDolGlobalString("FICHINTER_PRINT_PRODUCTS")) { print 'checked '; } print '/>'; @@ -554,7 +555,7 @@ print ''; print $langs->trans("UseServicesDurationOnFichinter"); print ''; -print 'global->FICHINTER_USE_SERVICE_DURATION ? ' checked' : '').'>'; +print ''; print ''; print ''; @@ -570,7 +571,7 @@ print ''; print $langs->trans("UseDurationOnFichinter"); print ''; -print 'global->FICHINTER_WITHOUT_DURATION ? ' checked' : '').'>'; +print ''; print ''; print ''; @@ -586,7 +587,7 @@ print ''; print $langs->trans("UseDateWithoutHourOnFichinter"); print ''; -print 'global->FICHINTER_DATE_WITHOUT_HOUR ? ' checked' : '').'>'; +print ''; print ''; print ''; diff --git a/htdocs/admin/geoipmaxmind.php b/htdocs/admin/geoipmaxmind.php index e662c0576a2..c7373fd02db 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'; @@ -59,12 +60,12 @@ if ($action == 'set') { if (!$error) { $res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity); - if (!$res1 > 0) { + if (!($res1 > 0)) { $error++; } $res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity); - if (!$res2 > 0) { + if (!($res2 > 0)) { $error++; } diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php index c1755b17edf..9a60c6b9b84 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'; @@ -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++; } @@ -442,23 +443,23 @@ print ''.$langs->trans("Parameter").''.$langs->trans("Value").'
'; print $form->textwithpicto($langs->trans("WatermarkOnDraftHolidayCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'
'; print '
'; - print ''; + print ''; print '
'; $constforvar = 'HRMTEST_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -421,7 +421,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'HRMTEST_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + 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').''; @@ -492,14 +492,14 @@ if ($action == 'edit') { 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, $conf->global->{$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); @@ -532,36 +532,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 '
'; + + print ''; + + // Default language + print ''; + print ''; + + // Multilingual GUI + print ''; + print ''; + + print '
'; + print $langs->trans("Language"); + print ''; + print '
'.$langs->trans("DefaultLanguage").''; + print img_picto('', 'language', 'class="pictofixedwidth"'); + print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, null, '', 0, 0, 'minwidth300', 2); + //print ''; + print '
' . $langs->trans("EnableMultilangInterface") . ''; + print ajax_constantonoff("MAIN_MULTILANGS", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'language'); + print '
' . "\n"; + print '
'; + + print '
'; + print ''; + print ''; + print '
'; + + print '
'; + print '
'; + + // Other + print '
'; + print ''; + + print ''; + print ''; + print ''; + + // Show Quick Add link + print ''; + print ''; + + // Hide wiki link on login page + $pictohelp = ''; + print ''; + print ''; + + // Max size of lists + print ''; + print ''; + + // Max size of short lists on customer card + print ''; + print ''; + + // show input border + /* + print ''; + print ''; + */ + + // First day for weeks + print ''; + print ''; + + // DefaultWorkingDays + print ''; + print ''; + + // DefaultWorkingHours + print ''; + print ''; + + // Firstname/Name + print ''; + print ''; + + // Hide unauthorized menus + print ''; + print ''; + + // Hide unauthorized button + print ''; + print ''; + + // Hide version link + /* + + print ''; + print ''; + */ + + // Show bugtrack link + print ''; + print ''; + + // Disable javascript and ajax + print ''; + print ''; + + print '
'; + print $langs->trans("Miscellaneous"); + 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("DefaultMaxSizeShortList") . '
'.$langs->trans("showInputBorder").''; + print $form->selectyesno('main_showInputBorder',isset($conf->global->THEME_ELDY_SHOW_BORDER_INPUT)?$conf->global->THEME_ELDY_SHOW_BORDER_INPUT:0,1); + print '
' . $langs->trans("WeekStartOnDay") . ''; + print $formother->select_dayofweek((isset($conf->global->MAIN_START_WEEK) ? $conf->global->MAIN_START_WEEK : '1'), 'MAIN_START_WEEK', 0); + print '
' . $langs->trans("DefaultWorkingDays") . ''; + print ''; + print '
' . $langs->trans("DefaultWorkingHours") . ''; + print ''; + print '
' . $langs->trans("FirstnameNamePosition") . ''; + $array = array(0 => $langs->trans("Firstname") . ' ' . $langs->trans("Lastname"), 1 => $langs->trans("Lastname") . ' ' . $langs->trans("Firstname")); + print $form->selectarray('MAIN_FIRSTNAME_NAME_POSITION', $array, (isset($conf->global->MAIN_FIRSTNAME_NAME_POSITION) ? $conf->global->MAIN_FIRSTNAME_NAME_POSITION : 0)); + print '
' . $langs->trans("HideUnauthorizedMenu") . ''; + //print $form->selectyesno('MAIN_MENU_HIDE_UNAUTHORIZED', isset($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) ? $conf->global->MAIN_MENU_HIDE_UNAUTHORIZED : 0, 1); + print ajax_constantonoff("MAIN_MENU_HIDE_UNAUTHORIZED", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); + print '
' . $langs->trans("ButtonHideUnauthorized") . ''; + //print $form->selectyesno('MAIN_BUTTON_HIDE_UNAUTHORIZED', isset($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED) ? $conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED : 0, 1); + print ajax_constantonoff("MAIN_BUTTON_HIDE_UNAUTHORIZED", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); + print '
'.$langs->trans("HideVersionLink").''; + print $form->selectyesno('MAIN_HIDE_VERSION',$conf->global->MAIN_HIDE_VERSION,1); + print '
'; + print $form->textwithpicto($langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")), $langs->trans("ShowBugTrackLinkDesc")); + print ''; + print ''; + 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'); + print '
' . "\n"; + print '
'; +} + + if ($mode == 'template') { // Themes and themes options showSkins(null, 1); } + if ($mode == 'dashboard') { print '
'; print ''; @@ -351,11 +512,11 @@ if ($mode == 'dashboard') { print '' . "\n"; /* no more need for this option. It is now a widget already controlled by end user - print ''; - print ''; - */ + print ''; + print ''; + */ print '
' . $langs->trans('BoxstatsDisableGlobal') . ''; - print ajax_constantonoff("MAIN_DISABLE_GLOBAL_BOXSTATS", array(), $conf->entity, 0, 0, 1, 0); - print '
' . $langs->trans('BoxstatsDisableGlobal') . ''; + print ajax_constantonoff("MAIN_DISABLE_GLOBAL_BOXSTATS", array(), $conf->entity, 0, 0, 1, 0); + print '
'; print '
'; @@ -447,152 +608,6 @@ if ($mode == 'dashboard') { print '
'; } -if ($mode == 'other') { - print '
'; - print ''; - - print ''; - - // Default language - print ''; - print ''; - - // Multilingual GUI - print ''; - print ''; - - print '
'; - print $langs->trans("Language"); - print ''; - print '
'.$langs->trans("DefaultLanguage").''; - print img_picto('', 'language', 'class="pictofixedwidth"'); - print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, null, '', 0, 0, 'minwidth300', 2); - //print ''; - print '
' . $langs->trans("EnableMultilangInterface") . ''; - print ajax_constantonoff("MAIN_MULTILANGS", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'language'); - print '
' . "\n"; - print '
'; - - print '
'; - print ''; - print '
'; - - print '
'; - print '
'; - - // Other - print '
'; - print ''; - - print ''; - - // Max size of lists - print ''; - print ''; - print ''; - - // Max size of short lists on customer card - print ''; - print ''; - print ''; - - // show input border - /* - print ''; - print ''; - print ''; - */ - - // First day for weeks - print ''; - print ''; - print ''; - - // DefaultWorkingDays - print ''; - print ''; - print ''; - - // DefaultWorkingHours - print ''; - print ''; - print ''; - - // Firstname/Name - print ''; - print ''; - print ''; - - // Hide unauthorized menus - print ''; - print ''; - print ''; - - // Hide unauthorized button - print ''; - print ''; - print ''; - - // Hide version link - /* - - print ''; - print ''; - print ''; - */ - - // Show bugtrack link - print ''; - print ''; - print ''; - - // Hide wiki link on login page - $pictohelp = ''; - print ''; - print ''; - print ''; - - // Disable javascript and ajax - print ''; - print ''; - print ''; - - print '
'; - print $langs->trans("Miscelaneous"); - print ''; - print '
' . $langs->trans("DefaultMaxSizeList") . ' 
' . $langs->trans("DefaultMaxSizeShortList") . ' 
'.$langs->trans("showInputBorder").''; - print $form->selectyesno('main_showInputBorder',isset($conf->global->THEME_ELDY_SHOW_BORDER_INPUT)?$conf->global->THEME_ELDY_SHOW_BORDER_INPUT:0,1); - print ' 
' . $langs->trans("WeekStartOnDay") . ''; - print $formother->select_dayofweek((isset($conf->global->MAIN_START_WEEK) ? $conf->global->MAIN_START_WEEK : '1'), 'MAIN_START_WEEK', 0); - print ' 
' . $langs->trans("DefaultWorkingDays") . ''; - print ''; - print ' 
' . $langs->trans("DefaultWorkingHours") . ''; - print ''; - print ' 
' . $langs->trans("FirstnameNamePosition") . ''; - $array = array(0 => $langs->trans("Firstname") . ' ' . $langs->trans("Lastname"), 1 => $langs->trans("Lastname") . ' ' . $langs->trans("Firstname")); - print $form->selectarray('MAIN_FIRSTNAME_NAME_POSITION', $array, (isset($conf->global->MAIN_FIRSTNAME_NAME_POSITION) ? $conf->global->MAIN_FIRSTNAME_NAME_POSITION : 0)); - print ' 
' . $langs->trans("HideUnauthorizedMenu") . ''; - //print $form->selectyesno('MAIN_MENU_HIDE_UNAUTHORIZED', isset($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) ? $conf->global->MAIN_MENU_HIDE_UNAUTHORIZED : 0, 1); - print ajax_constantonoff("MAIN_MENU_HIDE_UNAUTHORIZED", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); - print ' 
' . $langs->trans("ButtonHideUnauthorized") . ''; - //print $form->selectyesno('MAIN_BUTTON_HIDE_UNAUTHORIZED', isset($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED) ? $conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED : 0, 1); - print ajax_constantonoff("MAIN_BUTTON_HIDE_UNAUTHORIZED", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); - print ' 
'.$langs->trans("HideVersionLink").''; - print $form->selectyesno('MAIN_HIDE_VERSION',$conf->global->MAIN_HIDE_VERSION,1); - print ' 
'; - print $form->textwithpicto($langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")), $langs->trans("ShowBugTrackLinkDesc")); - print ''; - print ''; - 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("DisableJavascript") . ''; - print ajax_constantonoff("MAIN_DISABLE_JAVASCRIPT", array(), $conf->entity, 0, 0, 1, 0, 0, 0, '', 'other'); - print ' ' . $langs->trans("DisableJavascriptNote") . ''; - print ''; - print '
' . "\n"; - print '
'; -} if ($mode == 'login') { // Other @@ -632,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 c2440bbb885..b1710a53839 100644 --- a/htdocs/admin/knowledgemanagement.php +++ b/htdocs/admin/knowledgemanagement.php @@ -208,12 +208,12 @@ 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, $conf->global->{$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); @@ -403,7 +403,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; $constforvar = 'KNOWLEDGEMANAGEMENT_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -545,7 +545,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'KNOWLEDGEMANAGEMENT_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + 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').''; diff --git a/htdocs/admin/knowledgerecord_extrafields.php b/htdocs/admin/knowledgerecord_extrafields.php index d6c94e4ceeb..62580d585c3 100644 --- a/htdocs/admin/knowledgerecord_extrafields.php +++ b/htdocs/admin/knowledgerecord_extrafields.php @@ -88,7 +88,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php index e122bdf5930..10e9b90ccd6 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'; @@ -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 ''.$langs->trans("LDAPDnContactActive").''; print $formldap->selectLdapDnSynchroActive(getDolGlobalInt('LDAP_CONTACT_ACTIVE'), 'activecontact', array(Ldap::SYNCHRO_LDAP_TO_DOLIBARR)); - print ''.$langs->trans("LDAPDnContactActiveExample").''; + print '' . $langs->trans("LDAPDnContactActiveExample") . ''; } // Synchro member active -if (!empty($conf->adherent->enabled)) { - print ''.$langs->trans("LDAPDnMemberActive").''; +if (isModEnabled('adherent')) { + print '' . $langs->trans("LDAPDnMemberActive") . ''; print $formldap->selectLdapDnSynchroActive(getDolGlobalInt('LDAP_MEMBER_ACTIVE'), 'activemembers', array(), 2); - print ''.$langs->trans("LDAPDnMemberActiveExample").''; + print '' . $langs->trans("LDAPDnMemberActiveExample") . ''; } // Synchro member type active -if (!empty($conf->adherent->enabled)) { - print ''.$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").''; + print '' . $langs->trans("LDAPDnMemberTypeActiveExample") . ''; } // Fields from hook @@ -244,7 +245,7 @@ print ''.$langs->trans // Pass print ''; print ''.$langs->trans("LDAPPassword").''; -print ''; +print ''; print ''.$langs->trans('Password').' (ex: secret)'; print ''; diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php index fef3882d2ff..424c426f023 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'; diff --git a/htdocs/admin/ldap_groups.php b/htdocs/admin/ldap_groups.php index 5723183735e..2422282655e 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'; diff --git a/htdocs/admin/ldap_members.php b/htdocs/admin/ldap_members.php index 876c31d79b1..010b5c08e33 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'; diff --git a/htdocs/admin/ldap_members_types.php b/htdocs/admin/ldap_members_types.php index 7933b59d5e0..0a71033d465 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'; diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php index f395eb88fb4..a333536a440 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'; diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php index 1209f41c48e..3d92dd5023f 100644 --- a/htdocs/admin/limits.php +++ b/htdocs/admin/limits.php @@ -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'; @@ -36,7 +37,7 @@ if (!$user->admin) { $action = GETPOST('action', '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); } @@ -105,12 +106,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 +130,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(); @@ -194,7 +195,7 @@ if ($action == 'edit') { 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 ''; + print ''; // Value print ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account(getDolGlobalString($key), $key, 1, '', 1, 1); } else { - print ''; + print ''; } print ''; } diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index 37735a43ed3..ab4b747e21c 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'; @@ -107,21 +108,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 ''; 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..ff24a708797 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'; @@ -50,6 +51,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 +90,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); @@ -171,6 +181,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 +223,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 +263,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 +292,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); @@ -354,7 +406,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").''; @@ -385,7 +437,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").''; @@ -403,7 +455,7 @@ if ($action == 'edit') { $mainstmpid = (!empty($conf->global->MAIN_MAIL_SMTPS_ID) ? $conf->global->MAIN_MAIL_SMTPS_ID : ''); 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 +465,33 @@ if ($action == 'edit') { print ''; } + + // OAUTH + if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { + print ''.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''; + if (!isModEnabled('multicompany') || ($user->admin && !$user->entity)) { + 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 ''; + } + // PW if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { $mainsmtppw = (!empty($conf->global->MAIN_MAIL_SMTPS_PW) ? $conf->global->MAIN_MAIL_SMTPS_PW : ''); - 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,6 +501,24 @@ if ($action == 'edit') { print ''; } + // OAUTH service provider + if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, 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', $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 ''; + } // TLS 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')))) { @@ -595,29 +684,46 @@ if ($action == 'edit') { print ''; // Host server - if ($linuxlike && (isset($conf->global->MAIN_MAIL_SENDMODE) && $conf->global->MAIN_MAIL_SENDMODE == 'mail')) { + if ($linuxlike && (getDolGlobalString('MAIN_MAIL_SENDMODE') == 'mail')) { print ''.$langs->trans("MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike").''.$langs->trans("SeeLocalSendMailSetup").''; } else { print ''.$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 : '').''; } + // Port - if ($linuxlike && (isset($conf->global->MAIN_MAIL_SENDMODE) && $conf->global->MAIN_MAIL_SENDMODE == 'mail')) { + if ($linuxlike && (getDolGlobalString('MAIN_MAIL_SENDMODE') == 'mail')) { print ''.$langs->trans("MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike").''.$langs->trans("SeeLocalSendMailSetup").''; } else { 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) ? $conf->global->MAIN_MAIL_SMTP_PORT : '').''; } // 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'), array('smtps', 'swiftmailer'))) { print ''.$langs->trans("MAIN_MAIL_SMTPS_ID").''.$conf->global->MAIN_MAIL_SMTPS_ID.''; } + // AUTH method + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE'), array('smtps', 'swiftmailer'))) { + $authtype = getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE', 'LOGIN'); + $text = ($authtype === "LOGIN") ? $langs->trans("UsePassword") : ($authtype === "XOAUTH2" ? $langs->trans("UseOauth") : '') ; + print ''.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''.$text.''; + } + // 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'), array('smtps', 'swiftmailer')) && getDolGlobalString('MAIN_MAIL_SMTPS_AUTH_TYPE') != "XOAUTH2") { print ''.$langs->trans("MAIN_MAIL_SMTPS_PW").''.preg_replace('/./', '*', $conf->global->MAIN_MAIL_SMTPS_PW).''; } + // SMTPS oauth service + if (in_array(getDolGlobalString('MAIN_MAIL_SENDMODE'), 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 ''.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE").''.$text.''; + } + // TLS print ''.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))) { @@ -807,7 +913,7 @@ if ($action == 'edit') { print ''.$langs->trans("DoTestSend").''; - if (!empty($conf->fckeditor->enabled)) { + if (isModEnabled('fckeditor')) { print ''.$langs->trans("DoTestSendHTML").''; } } @@ -870,7 +976,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..d2eabd95e2b 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'; @@ -49,6 +50,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', @@ -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,15 +381,15 @@ 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 ''; @@ -342,14 +397,32 @@ if ($action == 'edit') { // 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 ''; + } + + // OAUTH + 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 (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + 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 ''; } @@ -357,18 +430,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 +520,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') { @@ -454,11 +551,28 @@ if ($action == 'edit') { print ''.$langs->trans("MAIN_MAIL_SMTPS_ID").''.getDolGlobalString('MAIN_MAIL_SMTPS_ID_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 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 +643,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") . ''; } } diff --git a/htdocs/admin/mails_senderprofile_list.php b/htdocs/admin/mails_senderprofile_list.php index d3441cf2e21..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'; @@ -169,7 +170,7 @@ if (empty($reshook)) { foreach ($object->fields as $key => $val) { $search[$key] = ''; } - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -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 e308d27b2b2..b02d05ca478 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,18 +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); +$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,10 +70,6 @@ $search_lang = GETPOST('search_lang', 'alpha'); $search_fk_user = GETPOST('search_fk_user', 'intcomma'); $search_topic = GETPOST('search_topic', 'alpha'); -if (!empty($user->socid)) { - accessforbidden(); -} - $acts = array(); $actl = array(); $acts[0] = "activate"; @@ -80,6 +80,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'); @@ -100,6 +101,7 @@ if (empty($sortorder)) { // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('emailtemplates')); + // Name of SQL tables of dictionaries $tabname = array(); $tabname[25] = MAIN_DB_PREFIX."c_email_templates"; @@ -171,71 +173,69 @@ $tabhelp[25] = array( ); -$elementList = array(); - // We save list of template email Dolibarr can manage. This list can found by a grep into code on "->param['models']" $elementList = array(); // Add all and none after the sort $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") && !empty($user->rights->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 (!empty($conf->facture->enabled) && !empty($user->rights->facture->lire)) { - $elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice')); +if (isModEnabled('facture') && !empty($user->rights->facture->lire)) { + $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')); + $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')); + $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 (!empty($conf->agenda->enabled)) { - $elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush')); +if (isModEnabled('agenda')) { + $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); @@ -246,6 +246,12 @@ if ($reshook == 0) { } } + + +if (!empty($user->socid)) { + accessforbidden(); +} + $permissiontoadd = 1; //asort($elementList); @@ -273,6 +279,9 @@ if ($reshook < 0) { } 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 @@ -281,7 +290,7 @@ if (empty($reshook)) { $search_lang = ''; $search_fk_user = ''; $search_topic = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } @@ -395,10 +404,10 @@ if (empty($reshook)) { } } elseif ($keycode == 'content') { $sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'"; - } elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) { + } elseif (in_array($keycode, array('joinfiles', 'private', 'position', 'entity'))) { $sql .= (int) GETPOST($keycode, 'int'); } else { - $sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'"; + $sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'"; } $i++; } @@ -428,7 +437,14 @@ if (empty($reshook)) { // Modifie valeur des champs $i = 0; foreach ($listfieldmodify as $field) { - $keycode = $listfieldvalue[$i]; + if ($field == 'entity') { + // entity not present on listfieldmodify array + $keycode = $field; + $_POST[$keycode] = $conf->entity; + } else { + $keycode = $listfieldvalue[$i]; + } + if ($field == 'lang') { $keycode = 'langcode'; } @@ -452,9 +468,6 @@ if (empty($reshook)) { if ($field == 'content_lines') { $_POST['content_lines'] = $_POST['content_lines-'.$rowid]; } - if ($field == 'entity') { - $_POST[$keycode] = $conf->entity; - } if ($i) { $sql .= ", "; @@ -476,7 +489,7 @@ if (empty($reshook)) { } elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) { $sql .= (int) GETPOST($keycode, 'int'); } else { - $sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'"; + $sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'"; } $i++; @@ -502,9 +515,9 @@ if (empty($reshook)) { if ($action == 'confirm_delete' && $confirm == 'yes') { // delete $rowidcol = "rowid"; - $sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."=".((int) $rowid); + $sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid); if (!$user->admin) { // A non admin user can only edit its own template - $sql .= " AND fk_user = ".((int) $user->id); + $sql .= " AND fk_user = ".((int) $user->id); } dol_syslog("delete", LOG_DEBUG); $result = $db->query($sql); @@ -548,47 +561,20 @@ if (empty($reshook)) { */ $form = new Form($db); + +$now = dol_now(); + $formadmin = new FormAdmin($db); +//$help_url = "EN:Module_MyObject|FR:Module_MyObject_FR|ES:Módulo_MyObject"; $help_url = ''; if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { $title = $langs->trans("EMailsSetup"); } else { - $title = $langs->trans("EMailsTemplates"); + $title = $langs->trans("EMailTemplates"); } - -llxHeader('', $title, $help_url); - -$linkback = ''; -$titlepicto = 'title_setup'; - - -$url = DOL_URL_ROOT.'/admin/mails_templates.php?action=add'; -$newcardbutton = dolGetButtonTitle($langs->trans('NewEMailTemplate'), '', 'fa fa-plus-circle', $url, '', $permissiontoadd); - - -if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { - print load_fiche_titre($title, '', $titlepicto); -} else { - print load_fiche_titre($title, $newcardbutton, $titlepicto); -} - -if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { - $head = email_admin_prepare_head(); - - print dol_get_fiche_head($head, 'templates', '', -1); - - if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { - print load_fiche_titre('', $newcardbutton, ''); - } -} - - -// Confirmation de la suppression de la ligne -if ($action == 'delete') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1); -} - +$morejs = array(); +$morecss = array(); $sql = "SELECT rowid as rowid, module, label, type_template, lang, fk_user, private, position, topic, joinfiles, content_lines, content, enabled, active"; $sql .= " FROM ".MAIN_DB_PREFIX."c_email_templates"; @@ -623,6 +609,80 @@ $sql .= $db->order($sortfield, $sortorder); $sql .= $db->plimit($listlimit + 1, $offset); //print $sql; +// Output page +// -------------------------------------------------------------------- + +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); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +if (!empty($search) && is_array($search)) { + 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; + + +$linkback = ''; +$titlepicto = 'title_setup'; + + +$url = DOL_URL_ROOT.'/admin/mails_templates.php?action=add&token='.newToken(); +$newcardbutton = dolGetButtonTitle($langs->trans('NewEMailTemplate'), '', 'fa fa-plus-circle', $url, '', $permissiontoadd); + + +if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { + print load_fiche_titre($title, '', $titlepicto); +} else { + print load_fiche_titre($title, $newcardbutton, $titlepicto); +} + +if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { + $head = email_admin_prepare_head(); + + print dol_get_fiche_head($head, 'templates', '', -1); + + if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { + print load_fiche_titre('', $newcardbutton, ''); + } +} + + +// Confirmation de la suppression de la ligne +if ($action == 'delete') { + print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1); +} + + + + $fieldlist = explode(',', $tabfield[$id]); if ($action == 'add') { @@ -681,7 +741,7 @@ if ($action == 'add') { } if ($valuetoshow != '') { - print ''; } } - print ''; print ''; $obj = new stdClass(); @@ -742,7 +802,7 @@ if ($action == 'add') { $fieldsforcontent = array('topic', 'joinfiles', 'content', 'content_lines'); } foreach ($fieldsforcontent as $tmpfieldlist) { - print ''; - if ($tmpfieldlist == 'topic') { - print ''; - } - // else print ''; 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").'
'; + print ''; if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) { print ''.$valuetoshow.' '.img_help(1, $valuetoshow).''; } elseif (!empty($tabhelp[$id][$value])) { @@ -693,12 +753,12 @@ if ($action == 'add') { } else { print $valuetoshow; } - print ''; + print ''; + print ''; print ''; - print ''; + print '
'; + print '
'; // Label if ($tmpfieldlist == 'topic') { @@ -764,7 +824,7 @@ if ($action == 'add') { } elseif ($tmpfieldlist == 'joinfiles') { print ''; } else { - // print ''; + // print ''; $okforextended = true; if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) { $okforextended = false; @@ -773,24 +833,33 @@ if ($action == 'add') { print $doleditor->Create(1); } print ''; - if ($action != 'edit') { - print '
'; - print ''; - } - print '
'; + + if ($action != 'edit') { + print '
'; + print ' '; + print ''; + print '
'; + } + print '
'; print ''; - print '
'; + print '

'; } // END IF not edit +// List of available record in database +dol_syslog("htdocs/admin/dict", LOG_DEBUG); +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + exit; +} + +$num = $db->num_rows($resql); + print '
'; print ''; print ''; @@ -798,157 +867,155 @@ print ''; print ''; -// List of available record in database -dol_syslog("htdocs/admin/dict", LOG_DEBUG); -$resql = $db->query($sql); -if ($resql) { - $num = $db->num_rows($resql); - $i = 0; +$i = 0; - $param = '&id='.$id; - if ($search_label) { - $param .= '&search_label='.urlencode($search_label); - } - if ($search_lang > 0) { - $param .= '&search_lang='.urlencode($search_lang); - } - if ($search_type_template != '-1') { - $param .= '&search_type_template='.urlencode($search_type_template); - } - if ($search_fk_user > 0) { - $param .= '&search_fk_user='.urlencode($search_fk_user); - } - if ($search_topic) { - $param .= '&search_topic='.urlencode($search_topic); - } +$param = '&id='.$id; +if ($search_label) { + $param .= '&search_label='.urlencode($search_label); +} +if ($search_lang > 0) { + $param .= '&search_lang='.urlencode($search_lang); +} +if ($search_type_template != '-1') { + $param .= '&search_type_template='.urlencode($search_type_template); +} +if ($search_fk_user > 0) { + $param .= '&search_fk_user='.urlencode($search_fk_user); +} +if ($search_topic) { + $param .= '&search_topic='.urlencode($search_topic); +} - $paramwithsearch = $param; - if ($sortorder) { - $paramwithsearch .= '&sortorder='.urlencode($sortorder); - } - if ($sortfield) { - $paramwithsearch .= '&sortfield='.urlencode($sortfield); - } - if (GETPOST('from', 'alpha')) { - $paramwithsearch .= '&from='.urlencode(GETPOST('from', 'alpha')); - } +$paramwithsearch = $param; +if ($sortorder) { + $paramwithsearch .= '&sortorder='.urlencode($sortorder); +} +if ($sortfield) { + $paramwithsearch .= '&sortfield='.urlencode($sortfield); +} +if (GETPOST('from', 'alpha')) { + $paramwithsearch .= '&from='.urlencode(GETPOST('from', 'alpha')); +} - // There is several pages - if ($num > $listlimit) { - print ''; - } +// There is several pages +if ($num > $listlimit) { + print ''; +} - // Title line with search boxes - print ''; +// Title line with search boxes +print ''; - foreach ($fieldlist as $field => $value) { - if ($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 ''; - } - } - - if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) { +foreach ($fieldlist as $field => $value) { + if ($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 ''; } +} - // Action column - print ''; - print ''; +if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) { + print ''; +} - // Title of lines - print ''; - foreach ($fieldlist as $field => $value) { - $showfield = 1; // By defaut - $align = "left"; - $sortable = 1; - $valuetoshow = ''; - $forcenowrap = 1; - /* - $tmparray=getLabelOfField($fieldlist[$field]); - $showfield=$tmp['showfield']; - $valuetoshow=$tmp['valuetoshow']; - $align=$tmp['align']; - $sortable=$tmp['sortable']; - */ - $valuetoshow = ucfirst($fieldlist[$field]); // By defaut - $valuetoshow = $langs->trans($valuetoshow); // try to translate - if ($fieldlist[$field] == 'fk_user') { - $valuetoshow = $langs->trans("Owner"); - } - if ($fieldlist[$field] == 'lang') { - $valuetoshow = $langs->trans("Language"); - } - if ($fieldlist[$field] == 'type') { - $valuetoshow = $langs->trans("Type"); - } - if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') { - $valuetoshow = $langs->trans("Code"); - } - if ($fieldlist[$field] == 'type_template') { - $align = 'center'; - $valuetoshow = $langs->trans("TypeOfTemplate"); - } - if ($fieldlist[$field] == 'private') { - $align = 'center'; - } - if ($fieldlist[$field] == 'position') { - $align = 'center'; - } +// Action column +print ''; +print ''; - if ($fieldlist[$field] == 'joinfiles') { - $valuetoshow = $langs->trans("FilesAttachedToEmail"); $align = 'center'; $forcenowrap = 0; - } - if ($fieldlist[$field] == 'content') { - $valuetoshow = $langs->trans("Content"); $showfield = 0; - } - if ($fieldlist[$field] == 'content_lines') { - $valuetoshow = $langs->trans("ContentForLines"); $showfield = 0; - } - - // Show fields - if ($showfield) { - if (!empty($tabhelp[$id][$value])) { - if (in_array($value, array('topic'))) { - $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, 'tooltip'.$value, $forcenowrap); // Tooltip on click - } else { - $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); - } +// Title of lines +print ''; +foreach ($fieldlist as $field => $value) { + $showfield = 1; // By defaut + $align = "left"; + $sortable = 1; + $valuetoshow = ''; + $forcenowrap = 1; + /* + $tmparray=getLabelOfField($fieldlist[$field]); + $showfield=$tmp['showfield']; + $valuetoshow=$tmp['valuetoshow']; + $align=$tmp['align']; + $sortable=$tmp['sortable']; + */ + $valuetoshow = ucfirst($fieldlist[$field]); // By defaut + $valuetoshow = $langs->trans($valuetoshow); // try to translate + if ($fieldlist[$field] == 'fk_user') { + $valuetoshow = $langs->trans("Owner"); + } + if ($fieldlist[$field] == 'lang') { + $valuetoshow = $langs->trans("Language"); + } + if ($fieldlist[$field] == 'type') { + $valuetoshow = $langs->trans("Type"); + } + if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') { + $valuetoshow = $langs->trans("Code"); + } + if ($fieldlist[$field] == 'type_template') { + $align = 'center'; + $valuetoshow = $langs->trans("TypeOfTemplate"); + } + if ($fieldlist[$field] == 'private') { + $align = 'center'; + } + if ($fieldlist[$field] == 'position') { + $align = 'center'; } - print getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], "active", ($page ? 'page='.$page.'&' : ''), $param, 'align="center"', $sortfield, $sortorder); - print getTitleFieldOfList(''); - print ''; + if ($fieldlist[$field] == 'joinfiles') { + $valuetoshow = $langs->trans("FilesAttachedToEmail"); $align = 'center'; $forcenowrap = 0; + } + if ($fieldlist[$field] == 'content') { + $valuetoshow = $langs->trans("Content"); $showfield = 0; + } + if ($fieldlist[$field] == 'content_lines') { + $valuetoshow = $langs->trans("ContentForLines"); $showfield = 0; + } - if ($num) { - // Lines with values - while ($i < $num) { - $obj = $db->fetch_object($resql); + // Show fields + if ($showfield) { + if (!empty($tabhelp[$id][$value])) { + if (in_array($value, array('topic'))) { + $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, 'tooltip'.$value, $forcenowrap); // Tooltip on click + } else { + $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); + } +} +print getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], "active", ($page ? 'page='.$page.'&' : ''), $param, 'align="center"', $sortfield, $sortorder); +print getTitleFieldOfList(''); +print ''; + +if ($num) { + $nbqualified = 0; + + // Lines with values + while ($i < $num) { + $obj = $db->fetch_object($resql); + + if ($obj) { if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code))) { print ''; @@ -994,21 +1061,57 @@ if ($resql) { print ''.$form->textwithpicto($langs->trans("FilesAttachedToEmail"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).' '; print ''; } + + // If $acceptlocallinktomedia is true, we can add link media files int email templates (we already can do this into HTML editor of an email). + // Note that local link to a file into medias are replaced with a real link by email in CMailFile.class.php with value $urlwithroot defined like this: + // $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 + $acceptlocallinktomedia = getDolGlobalInt('MAIN_DISALLOW_MEDIAS_IN_EMAIL_TEMPLATES') ? 0 : 1; + if ($acceptlocallinktomedia) { + global $dolibarr_main_url_root; + $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); + + // Parse $newUrl + $newUrlArray = parse_url($urlwithouturlroot); + $hosttocheck = $newUrlArray['host']; + $hosttocheck = str_replace(array('[', ']'), '', $hosttocheck); // Remove brackets of IPv6 + + if (function_exists('gethostbyname')) { + $iptocheck = gethostbyname($hosttocheck); + } else { + $iptocheck = $hosttocheck; + } + + //var_dump($iptocheck.' '.$acceptlocallinktomedia); + if (!filter_var($iptocheck, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { + // If ip of public url is an private network IP, we do not allow this. + $acceptlocallinktomedia = 0; + // TODO Show a warning + } + + if (preg_match('/http:/i', $urlwithouturlroot)) { + // If public url is not a https, we do not allow to add medias link. It will generate security alerts when email will be sent. + $acceptlocallinktomedia = 0; + // TODO Show a warning + } + } + 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 ''; @@ -1018,6 +1121,8 @@ if ($resql) { } print "\n"; + + $nbqualified++; } else { // If template is for a module, check module is enabled. if ($obj->module) { @@ -1039,6 +1144,8 @@ if ($resql) { continue; // Email template not qualified } + $nbqualified++; + print ''; $tmpaction = 'view'; @@ -1136,7 +1243,7 @@ if ($resql) { // Status / Active print '\n"; } - - - $i++; } + + $i++; } -} else { - dol_print_error($db); +} + +// If no record found +if ($nbqualified == 0) { + $colspan = 10; + print ''; } print '
'; - print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), ''); - print '
'; + print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), ''); + print '
'; - print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth150'); - print ''; - print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 0, '', 0, '', 'maxwidth150'); - print ''; - print $form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'minwidth150', 1, '', 0, 1); - print ''; + print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth150'); + print ''; + print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 0, '', 0, '', 'maxwidth150'); + print ''; + print $form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'minwidth150', 1, '', 0, 1); + print ''; - $searchpicto = $form->showFilterButtons(); - print $searchpicto; - print '
'; +$searchpicto = $form->showFilterButtons(); +print $searchpicto; +print '
'; if ($canbedisabled) { - print ''.$actl[$obj->active].''; + print ''.$actl[$obj->active].''; } else { print ''.$actl[$obj->active].''; } @@ -1155,13 +1262,16 @@ if ($resql) { print "
'.$langs->trans("NoRecordFound").'
'; diff --git a/htdocs/admin/mails_ticket.php b/htdocs/admin/mails_ticket.php index 481fcad212c..c48146fc937 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'; @@ -46,6 +47,7 @@ $substitutionarrayfortest = array( '__LASTNAME__' => 'TESTLastname', '__FIRSTNAME__' => 'TESTFirstname', '__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 +68,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"); @@ -139,6 +148,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 +190,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 +222,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 +239,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); @@ -275,7 +332,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").''; @@ -305,7 +362,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").''; @@ -323,7 +380,7 @@ if ($action == 'edit') { $mainstmpid = (!empty($conf->global->MAIN_MAIL_SMTPS_ID_TICKET) ? $conf->global->MAIN_MAIL_SMTPS_ID_TICKET : ''); 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"); @@ -333,12 +390,31 @@ if ($action == 'edit') { print ''; } + // OAUTH + 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 ''.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''; + if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { + 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 ''; + } + + // 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 +424,24 @@ if ($action == 'edit') { 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 ''.$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 ''; + } + // TLS print ''.$langs->trans("MAIN_MAIL_EMAIL_TLS").''; @@ -394,11 +488,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 ''; if (!empty($conf->global->MAIN_MAIL_SENDMODE_TICKET) && $conf->global->MAIN_MAIL_SENDMODE_TICKET != 'default') { @@ -421,11 +519,27 @@ if ($action == 'edit') { print ''.$langs->trans("MAIN_MAIL_SMTPS_ID").''.$conf->global->MAIN_MAIL_SMTPS_ID_TICKET.''; } + // 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 ''.$langs->trans("MAIN_MAIL_SMTPS_AUTH_TYPE").''.$text.''; + } + // 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 ''.$langs->trans("MAIN_MAIL_SMTPS_PW").''.preg_replace('/./', '*', $conf->global->MAIN_MAIL_SMTPS_PW_TICKET).''; } + // 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 ''.$langs->trans("MAIN_MAIL_SMTPS_OAUTH_SERVICE_TICKET").''.$text.''; + } + // TLS print ''.$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 +606,7 @@ if ($action == 'edit') { print ''.$langs->trans("DoTestSend").''; - if (!empty($conf->fckeditor->enabled)) { + if (isModEnabled('fckeditor')) { print ''.$langs->trans("DoTestSendHTML").''; } } 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').''; - print ''; print ''; print ''; print ''; - print ''; + print ''; + print ajax_combobox('menuuser'); + print ''; print ''.$langs->trans('DetailUser').''; // Type - print ''.$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').''; @@ -373,12 +354,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').''; @@ -387,6 +362,14 @@ if ($action == 'create') { print ''.$langs->trans('Rights').''; print ''.$langs->trans('DetailRight').''; + // Target + print ''.$langs->trans('Target').''; + print ajax_combobox("target"); + print ''.$langs->trans('DetailTarget').''; + print ''; 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 716dbc32ca7..13332b5c277 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()); @@ -172,6 +174,10 @@ foreach ($modulesdir as $dir) { $moduleposition = '80'; // External modules at end by default } + if (empty($familyinfo[$familykey]['position'])) { + $familyinfo[$familykey]['position'] = '0'; + } + $orders[$i] = $familyinfo[$familykey]['position']."_".$familykey."_".$moduleposition."_".$j; // Sort by family, then by module position then number $dirmod[$i] = $dir; //print $i.'-'.$dirmod[$i].'
'; @@ -250,19 +256,19 @@ if (!empty($conf->global->$const_name)) { $text .= $langs->trans("Disabled"); } $tmp = $objMod->getLastActivationInfo(); -$authorid = $tmp['authorid']; +$authorid = (empty($tmp['authorid']) ? '' : $tmp['authorid']); if ($authorid > 0) { $tmpuser = new User($db); $tmpuser->fetch($authorid); $text .= '
'.$langs->trans("LastActivationAuthor").': '; $text .= $tmpuser->getNomUrl(1); } -$ip = $tmp['ip']; +$ip = (empty($tmp['ip']) ? '' : $tmp['ip']); if ($ip) { $text .= '
'.$langs->trans("LastActivationIP").': '; $text .= $ip; } -$lastactivationversion = $tmp['lastactivationversion']; +$lastactivationversion = (empty($tmp['lastactivationversion']) ? '' : $tmp['lastactivationversion']); if ($lastactivationversion) { $text .= '
'.$langs->trans("LastActivationVersion").': '; $text .= $lastactivationversion; @@ -501,7 +507,7 @@ if ($mode == 'feature') { $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') { diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 8ed6615965b..d011b250730 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'); @@ -528,8 +534,8 @@ if ($mode == 'common' || $mode == 'commonkanban') { $moreforfilter .= ''; //$moreforfilter .= '
'.$moreinfo.' '.$moreinfo2.'
'; @@ -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 { @@ -1212,7 +1218,7 @@ if ($mode == 'deploy') { }); '."\n"; // MAX_FILE_SIZE doit précéder le champ input de type file - print ''; + print ''; } print ' '; @@ -1274,7 +1280,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..36a82e965f4 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'; @@ -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 d3c03056fef..5553604eeff 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'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index c91af2fcc36..1cf838c08cb 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)) { @@ -296,7 +301,7 @@ print ''; print ''; print ''."\n"; -print ''."\n"; +print ''."\n"; print ''; print ''; @@ -304,17 +309,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..1f2966b05b1 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 @@ -23,6 +24,7 @@ * \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'; @@ -43,23 +45,50 @@ 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)) { + 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); } - $constvalue = GETPOST($constname[2], 'alpha'); - if (!dolibarr_set_const($db, $constname[2], $constvalue, 'chaine', 0, '', $conf->entity)) { - $error++; + } +} +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 (!dolibarr_set_const($db, $constvalue.'_SCOPE', GETPOST($constvalue.'_SCOPE'), 'chaine', 0, '', $conf->entity)) { + $error++; + } + } } } @@ -70,6 +99,7 @@ if ($action == 'update') { } } + /* * View */ @@ -83,21 +113,18 @@ print load_fiche_titre($langs->trans('ConfigOAuth'), $linkback, 'title_setup'); 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 ''; +print ajax_combobox('provider'); +print ' '; +print ' '; +print ''; + +print '
'; +print '
'; + + +print ''; +print ''; +print ''; + +print '
'; +print '
'; + +$i = 0; + +// 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 + ); + } +} + +// $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 ''; // Api Name $label = $langs->trans($keyforsupportedoauth2array); + print ''; print ''; print ''; print ''; @@ -129,8 +222,15 @@ foreach ($list as $key) { $redirect_uri = $urlwithroot.'/core/modules/oauth/'.$supportedoauth2array[$keyforsupportedoauth2array]['callbackfile'].'_oauthcallback.php'; print ''; print ''; - print ''; + + if ($keyforsupportedoauth2array == 'OAUTH_OTHER_NAME') { + print ''; + print ''; + print ''; + } } else { print ''; print ''; @@ -140,15 +240,33 @@ foreach ($list as $key) { // Api Id print ''; - print ''; - print ''; + print ''; // Api Secret print ''; - print ''; - print ''; + print ''; + + // TODO Move this into token generation + if ($supported) { + if ($keyforsupportedoauth2array == 'OAUTH_OTHER_NAME') { + print ''; + print ''; + print ''; + } else { + print ''; + print ''; + print ''; + } + } } print '
'; print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"'); - print $label; + if ($label == $keyforsupportedoauth2array) { + print $supportedoauth2array[$keyforsupportedoauth2array]['name']; + } else { + print $label; + } + if ($keyforprovider) { + print ' ('.$keyforprovider.')'; + } else { + print ' ('.$langs->trans("NoName").')'; + } print ''; - if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforapp'])) { - print $langs->trans($supportedoauth2array[$keyforsupportedoauth2array]['urlforapp']); + if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials'])) { + print $langs->trans("OAUTH_URL_FOR_CREDENTIAL", $supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials']); } print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").''; + print ''; print '
'.$langs->trans("URLOfServiceForAuthorization").''; + print '
'.$langs->trans("UseTheFollowingUrlAsRedirectURI").'
'; + print ''; print '
'; + print ''; print '
'.$langs->trans("Scopes").''; + print ''; + print '
'.$langs->trans("Scopes").''; + //print ''; + print $supportedoauth2array[$keyforsupportedoauth2array]['defaultscope']; + print '
'."\n"; diff --git a/htdocs/admin/oauthlogintokens.php b/htdocs/admin/oauthlogintokens.php index 73a9139f856..62162616a1a 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 = $supportedoauth2array[$keyforsupportedoauth2array]['defaultscope']; + 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,12 @@ if ($mode == 'setup' && $user->admin) { $urltocheckperms = ''; } + $urltorenew .= '&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 +236,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 +246,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 +260,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 ''."\n"; 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 +367,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 +386,8 @@ if ($mode == 'setup' && $user->admin) { } } - print ''; + print '
'; } } @@ -399,17 +432,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 e11ac077cc6..0339f3a2b45 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'; @@ -88,7 +89,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/orderdet_extrafields.php b/htdocs/admin/orderdet_extrafields.php index c89ff3e3655..889a042389a 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'; @@ -89,7 +90,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/payment.php b/htdocs/admin/payment.php index 089ddbafd23..59da712b266 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'; 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 1e015d69f9c..b5a823edfb4 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -4,7 +4,7 @@ * 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 * * 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 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'; @@ -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,6 +167,14 @@ 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); } @@ -463,7 +472,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 the first sales representative + +print ''; print ''; 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 +228,16 @@ foreach ($arrayhandler as $key => $module) { } if ($module->isEnabled()) { - print ''; // Show example of numbering module - print ''."\n"; - print ''; print ''; print ''; print ''; print '\n\n"; $found++; -//if (! empty($conf->expedition->enabled)) +//if (!empty($conf->expedition->enabled)) //{ print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print '\n\n"; $found++; -if (!empty($conf->reception->enabled)) { +if (isModEnabled("reception")) { print ''; print ''; print ''; print ''; print '\n"; print "\n"; // Option to force stock to be enough before adding a line into document -if ($conf->invoice->enabled) { +if (isModEnabled('facture')) { print ''; print ''; print '\n"; } -if ($conf->order->enabled) { +if (isModEnabled('commande')) { print ''; print ''; print '\n"; } -if ($conf->expedition->enabled) { +if (isModEnabled("expedition")) { print ''; print ''; print ''."\n"; print ''; print ''; print '"; print "\n"; @@ -763,7 +763,7 @@ print "\n"; print "\n"; /* Disabled. Would be better to be managed with a user cookie -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { print ''; 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 '
'; @@ -266,13 +292,13 @@ if ($mode == 'setup' && $user->admin) { 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 +311,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 +323,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 +347,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').'
'.$langs->trans("Parameter").''.$langs->trans("PDF_USE_ALSO_LANGUAGE_CODE").''; -//if (! empty($conf->global->MAIN_MULTILANGS)) +//if (!empty($conf->global->MAIN_MULTILANGS)) //{ $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); @@ -478,7 +487,7 @@ 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'; @@ -564,6 +573,28 @@ print '
'.$langs->trans("ShowDetailsInPDFPageFoot").'
'.$langs->trans("DOC_SHOW_FIRST_SALES_REP"); +print ' ('.$langs->trans("SalesRepresentativeInfo").')'; +print ''; +if ($conf->use_javascript_ajax) { + 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 alias in thirdparty name + +/* Disabled because not yet completely implemented (does not work when we force a contact on object) +print '
'.$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')); +} +*/ + // Show online payment link on invoices print '
'.$langs->trans("PDF_SHOW_LINK_TO_ONLINE_PAYMENT").''; diff --git a/htdocs/admin/pdf_other.php b/htdocs/admin/pdf_other.php index 72acf7fbf4f..645fff6adf1 100644 --- a/htdocs/admin/pdf_other.php +++ b/htdocs/admin/pdf_other.php @@ -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'; @@ -60,6 +61,14 @@ if ($action == 'update') { if (GETPOSTISSET('MAIN_DOCUMENTS_WITH_PICTURE_WIDTH')) { dolibarr_set_const($db, "MAIN_DOCUMENTS_WITH_PICTURE_WIDTH", GETPOST("MAIN_DOCUMENTS_WITH_PICTURE_WIDTH", 'int'), 'chaine', 0, '', $conf->entity); } + 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); + } setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -90,19 +99,19 @@ $tooltiptext = ''; print ''.$form->textwithpicto($langs->trans("PDFOtherDesc"), $tooltiptext)."
\n"; print "
\n"; -if (!empty($conf->propal->enabled)) { - print load_fiche_titre($langs->trans("Proposal"), '', ''); +print '
'; +print ''; +print ''; - print ''; - print ''; - print ''; +if (isModEnabled('propal')) { + print load_fiche_titre($langs->trans("Proposal"), '', ''); print '
'; print ''; print ''; - print ''; + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"); - print ' ('.$langs->trans("RandomlySelectedIfSeveral").')'; + print '
'; + print $form->textwithpicto($langs->trans("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral")); print ''; if ($conf->use_javascript_ajax) { print ajax_constantonoff('MAIN_GENERATE_PROPOSALS_WITH_PICTURE'); @@ -112,6 +121,40 @@ if (!empty($conf->propal->enabled)) { } print '
'; + print '
'; +} + + +if (isModEnabled('facture')) { + print load_fiche_titre($langs->trans("Invoices"), '', ''); + + print '
'; + print ''; + print ''; + + print ''; + + print ''; + /* print ''; print ''; @@ -524,8 +525,8 @@ print "\n"; print ''; print ""; print ""; print ''; print ""; 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").'
'; + print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore")); + print ''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('INVOICE_ADD_ZATCA_QR_CODE'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("INVOICE_ADD_ZATCA_QR_CODE", $arrval, $conf->global->INVOICE_ADD_ZATCA_QR_CODE); + } + 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("INVOICE_ADD_SWISS_QR_CODE", $arrval, $conf->global->INVOICE_ADD_SWISS_QR_CODE); + } + print '
'.$langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING").''; if ($conf->use_javascript_ajax) { diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php index d2f0d79e4f3..ef20ab6e205 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'; 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..c24446fb1bd 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'; @@ -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 $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 +694,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 cb625dbe039..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'; @@ -45,7 +46,7 @@ $printername = GETPOST('printername', 'alpha'); $printerid = GETPOST('printerid', 'int'); $parameter = GETPOST('parameter', 'alpha'); -$template = GETPOST('template', 'nohtml'); +$template = GETPOST('template', 'alphanohtml'); $templatename = GETPOST('templatename', 'alpha'); $templateid = GETPOST('templateid', 'int'); @@ -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 8e4205a7bdc..31b4d836db8 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'; @@ -94,7 +95,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/reception_setup.php b/htdocs/admin/reception_setup.php index 26300ece329..c86db66e464 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); } @@ -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 ebd1269f74a..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 @@ -78,7 +79,7 @@ print '
'; print ''; print ''; print ''."\n"; -print ''."\n"; +print ''."\n"; print ''; @@ -106,6 +107,15 @@ if (empty($conf->use_javascript_ajax)) { print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +/* print ''; print ''; print ''; print ''; print ''; - - -print ''; -print ''; -print ''; -print ''; -print ''; +*/ print '
'.$langs->trans("Parameters").''.$langs->trans("Value").''.$langs->trans("Value").'
'.$langs->trans('EnableResourceUsedInEventCheck').''; +echo ajax_constantonoff('RESOURCE_USED_IN_EVENT_CHECK'); +print '
'.$langs->trans('DisabledResourceLinkUser').''; @@ -122,15 +132,7 @@ echo ajax_constantonoff('RESOURCE_HIDE_ADD_CONTACT_THIPARTY'); print '
'.$langs->trans('EnableResourceUsedInEventCheck').''; -echo ajax_constantonoff('RESOURCE_USED_IN_EVENT_CHECK'); -print '
'; print '
'; diff --git a/htdocs/admin/resource_extrafields.php b/htdocs/admin/resource_extrafields.php index c4967f75313..b7770797f21 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'; @@ -74,7 +75,6 @@ llxHeader('', $langs->trans("ResourceSetup")); $linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ResourceSetup"), $linkback, 'title_setup'); -print "
\n"; $head = resource_admin_prepare_head(); @@ -88,7 +88,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index 795a0557f16..02cddbd5d70 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'; @@ -47,9 +48,6 @@ $allow_disable_encryption = true; if ($action == 'setgeneraterule') { if (!dolibarr_set_const($db, 'USER_PASSWORD_GENERATED', $_GET["value"], 'chaine', 0, '', $conf->entity)) { dol_print_error($db); - } else { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; } } @@ -94,8 +92,6 @@ if ($action == 'activate_encrypt') { //exit; if (!$error) { $db->commit(); - header("Location: security.php"); - exit; } else { $db->rollback(); dol_print_error($db, ''); @@ -106,8 +102,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 +132,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 +216,8 @@ print '
'.$langs->trans("Example").''.$langs->trans("Activated").'
'; + 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 '
'; + print ''; $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) { $langs->load("errors"); @@ -256,7 +249,7 @@ foreach ($arrayhandler as $key => $module) { } print ''; + print ''; if ($conf->global->USER_PASSWORD_GENERATED == $key) { //print img_picto('', 'tick'); print img_picto($langs->trans("Enabled"), 'switch_on'); @@ -277,7 +270,6 @@ print ''; //if($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK == 1) // Patter for Password Perso if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { - $tabConf = explode(";", $conf->global->USER_PASSWORD_PATTERN); print '
'; print '
'; @@ -356,7 +348,7 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { print ' }'; print ' function generatelink(){'; - print ' return "security.php?action=updatepattern&pattern="+getStringArg();'; + print ' return "security.php?action=updatepattern&token='.newToken().'&pattern="+getStringArg();'; print ' }'; print ' function valuePatternChange(){'; @@ -387,9 +379,9 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso") { // Cryptage mot de passe print '
'; -print "
"; +print ''; print ''; -print ""; +print ''; print ''; print ''; @@ -408,7 +400,7 @@ if (getDolGlobalString('DATABASE_PWD_ENCRYPTED')) { print ''; if (!getDolGlobalString('DATABASE_PWD_ENCRYPTED')) { print '"; } @@ -418,7 +410,7 @@ if (getDolGlobalString('DATABASE_PWD_ENCRYPTED')) { if ($allow_disable_encryption) { //On n'autorise pas l'annulation de l'encryption car les mots de passe ne peuvent pas etre decodes //Do not allow "disable encryption" as passwords cannot be decrypted - print ''.$langs->trans("Disable").''; + print ''.$langs->trans("Disable").''; } else { print '-'; } @@ -444,10 +436,10 @@ if (empty($dolibarr_main_db_pass) && empty($dolibarr_main_db_encrypted_pass)) { print img_warning($langs->trans("WarningPassIsEmpty")); } else { if (empty($dolibarr_main_db_encrypted_pass)) { - print ''.$langs->trans("Activate").''; + print ''.$langs->trans("Activate").''; } if (!empty($dolibarr_main_db_encrypted_pass)) { - print ''.$langs->trans("Disable").''; + print ''.$langs->trans("Disable").''; } } print ""; @@ -467,12 +459,12 @@ if (getDolGlobalString('MAIN_SECURITY_DISABLEFORGETPASSLINK')) { print ''; if (!getDolGlobalString('MAIN_SECURITY_DISABLEFORGETPASSLINK')) { print '"; } if (getDolGlobalString('MAIN_SECURITY_DISABLEFORGETPASSLINK')) { print '"; } print ""; @@ -480,7 +472,9 @@ print ''; print '
'; - print ''.$langs->trans("Activate").''; + print ''.$langs->trans("Activate").''; print "'; - print ''.$langs->trans("Activate").''; + print ''.$langs->trans("Activate").''; print "'; - print ''.$langs->trans("Disable").''; + print ''.$langs->trans("Disable").''; print "
'; + print '
'; + print '
'; if (GETPOST('info', 'int') > 0) { diff --git a/htdocs/admin/security_file.php b/htdocs/admin/security_file.php index 67c6914f1cf..ff0d5780ad4 100644 --- a/htdocs/admin/security_file.php +++ b/htdocs/admin/security_file.php @@ -23,6 +23,7 @@ * \brief Security options setup */ +// 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'; @@ -112,7 +113,7 @@ print '
'; // Upload options print '
'; -print ''; +print '
'; print ''; print ''; print ''; @@ -128,7 +129,7 @@ if (isset($max)) { } print ''; print ''; print ''; @@ -138,7 +139,7 @@ print ''; print ''; print ''; diff --git a/htdocs/admin/security_other.php b/htdocs/admin/security_other.php index a3d54e2a132..1a0c65f3ceb 100644 --- a/htdocs/admin/security_other.php +++ b/htdocs/admin/security_other.php @@ -23,6 +23,7 @@ * \brief Security options setup */ +// 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'; @@ -61,9 +62,17 @@ if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { dol_print_error($db); } } elseif ($action == 'updateform') { - $res1 = dolibarr_set_const($db, "MAIN_APPLICATION_TITLE", GETPOST("MAIN_APPLICATION_TITLE", 'alphanohtml'), 'chaine', 0, '', $conf->entity); - $res2 = dolibarr_set_const($db, "MAIN_SESSION_TIMEOUT", GETPOST("MAIN_SESSION_TIMEOUT", 'alphanohtml'), 'chaine', 0, '', $conf->entity); - if ($res1 && $res2) { + $res1 = 1; $res2 = 1; $res3 = 1; + if (GETPOSTISSET('MAIN_APPLICATION_TITLE')) { + $res1 = dolibarr_set_const($db, "MAIN_APPLICATION_TITLE", GETPOST("MAIN_APPLICATION_TITLE", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET('MAIN_SESSION_TIMEOUT')) { + $res2 = dolibarr_set_const($db, "MAIN_SESSION_TIMEOUT", GETPOST("MAIN_SESSION_TIMEOUT", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + } + if (GETPOSTISSET('MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT')) { + $res3 = dolibarr_set_const($db, "MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT", GETPOST("MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT", 'alphanohtml'), 'int', 0, '', $conf->entity); + } + if ($res1 && $res2 && $res3) { setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); } } @@ -165,11 +174,19 @@ if (ini_get("session.gc_probability") == 0) { } print ''; print ''; print ''; +print ''; +print ''; +print ''; +print ''; +/* if (empty($conf->global->MAIN_APPLICATION_TITLE)) { $conf->global->MAIN_APPLICATION_TITLE = ""; } @@ -177,16 +194,17 @@ print ''; print ''; print ''; print ''; +*/ print '
'.$langs->trans("Parameters").''.$langs->trans("Value").''; -print ' '.$langs->trans("Kb"); +print ' '.$langs->trans("Kb"); print '
'.$langs->trans("UMask").''; print $form->textwithpicto('', $langs->trans("UMaskExplanation")); print ''; -print ''; +print ''; print '
'; -print ' '.strtolower($langs->trans("Seconds")); +print ' '.strtolower($langs->trans("Seconds")); print '
'.$langs->trans("MaxNumberOfImagesInGetPost").''; +print ''; +print ' '.strtolower($langs->trans("Images")); +print '
'.$langs->trans("MAIN_APPLICATION_TITLE").''; print ''; -print ' '; +print ' '; print '
'; -print dol_get_fiche_end(); - print $form->buttonsSaveCancel("Modify", ''); +print dol_get_fiche_end(); + print ''; // End of page diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php index 19a94d05dd8..391ca42a6d3 100644 --- a/htdocs/admin/sms.php +++ b/htdocs/admin/sms.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'; diff --git a/htdocs/admin/spip.php b/htdocs/admin/spip.php index 92dba301854..391f459aca3 100644 --- a/htdocs/admin/spip.php +++ b/htdocs/admin/spip.php @@ -27,6 +27,7 @@ * \brief Page to setup the module MailmanSpip (SPIP) */ +// 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'; diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php index e8f59727c07..fcca4cf2f18 100644 --- a/htdocs/admin/stock.php +++ b/htdocs/admin/stock.php @@ -180,13 +180,13 @@ $formproduct = new FormProduct($db); $disabled = ''; -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { $langs->load("productbatch"); $disabled = ' disabled'; print info_admin($langs->trans("WhenProductBatchModuleOnOptionAreForced")); } -//if (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) || ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) +//if (!empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) //{ print info_admin($langs->trans("IfYouUsePointOfSaleCheckModule")); print '
'; @@ -209,7 +209,7 @@ $found = 0; print '
'.$langs->trans("DeStockOnBill").''; -if (!empty($conf->facture->enabled)) { +if (isModEnabled('facture')) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_BILL', array(), null, 0, 0, 0, 2, 1); } else { @@ -226,7 +226,7 @@ $found++; print '
'.$langs->trans("DeStockOnValidateOrder").''; -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_VALIDATE_ORDER', array(), null, 0, 0, 0, 2, 1); } else { @@ -239,13 +239,13 @@ if (!empty($conf->commande->enabled)) { print "
'.$langs->trans("DeStockOnShipment").''; -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_SHIPMENT', array(), null, 0, 0, 0, 2, 1); } else { @@ -262,7 +262,7 @@ $found++; print '
'.$langs->trans("DeStockOnShipmentOnClosing").''; -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_SHIPMENT_CLOSE', array(), null, 0, 0, 0, 2, 1); } else { @@ -293,7 +293,7 @@ $found = 0; print '
'.$langs->trans("ReStockOnBill").''; -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")) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_BILL', array(), null, 0, 0, 0, 2, 1); } else { @@ -311,7 +311,7 @@ $found++; print '
'.$langs->trans("ReStockOnValidateOrder").''; -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")) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER', array(), null, 0, 0, 0, 2, 1); } else { @@ -324,7 +324,7 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU print "
'.$langs->trans("StockOnReception").''; @@ -356,7 +356,7 @@ if (!empty($conf->reception->enabled)) { print '
'.$langs->trans("ReStockOnDispatchOrder").''; - 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")) { if ($conf->use_javascript_ajax) { print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER', array(), null, 0, 0, 0, 2, 1); } else { @@ -394,7 +394,7 @@ print "
'.$langs->trans("StockMustBeEnoughForInvoice").''; @@ -408,7 +408,7 @@ if ($conf->invoice->enabled) { print "
'.$langs->trans("StockMustBeEnoughForOrder").''; @@ -422,7 +422,7 @@ if ($conf->order->enabled) { print "
'.$langs->trans("StockMustBeEnoughForShipment").''; @@ -643,7 +643,7 @@ print '
'.$langs->trans("MainDefaultWarehouse").''; -print $formproduct->selectWarehouses($conf->global->MAIN_DEFAULT_WAREHOUSE, 'default_warehouse', '', 1, 0, 0, '', 0, 0, array(), 'left reposition'); +print $formproduct->selectWarehouses(!empty($conf->global->MAIN_DEFAULT_WAREHOUSE) ? $conf->global->MAIN_DEFAULT_WAREHOUSE : -1, 'default_warehouse', '', 1, 0, 0, '', 0, 0, array(), 'left reposition'); print ''; print "
' . $langs->trans("ShowAllBatchByDefault") . ''; diff --git a/htdocs/admin/stocktransfer.php b/htdocs/admin/stocktransfer.php new file mode 100644 index 00000000000..099312ef491 --- /dev/null +++ b/htdocs/admin/stocktransfer.php @@ -0,0 +1,485 @@ + + * Copyright (C) 2021 Gauthier VERDOL + * 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 . + */ + +/** + * \file stocktransfer/admin/setup.php + * \ingroup stocktransfer + * \brief StockTransfer setup page. + */ + +// 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"); + +global $langs, $user; + +// Libraries +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; +require_once DOL_DOCUMENT_ROOT.'/product/stock/stocktransfer/class/stocktransfer.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/stock/stocktransfer/lib/stocktransfer.lib.php'; + +// Translations +$langs->loadLangs(array("admin", "stocks")); + +// Access control +if (!$user->admin) accessforbidden(); + +// Parameters +$action = GETPOST('action', 'alpha'); +$backtopage = GETPOST('backtopage', 'alpha'); + +$value = GETPOST('value', 'alpha'); + +$arrayofparameters = array( + 'STOCKTRANSFER_MYPARAM1'=>array('css'=>'minwidth200', 'enabled'=>1), + 'STOCKTRANSFER_MYPARAM2'=>array('css'=>'minwidth500', 'enabled'=>1) +); + +$error = 0; +$setupnotempty = 0; + + +/* + * Actions + */ + +if ((float) DOL_VERSION >= 6) { + include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; +} + +if ($action == 'updateMask') { + $maskconststocktransfer = GETPOST('maskconststocktransfer', 'alpha'); + $maskstocktransfer = GETPOST('maskStockTransfer', 'alpha'); + + if ($maskconststocktransfer) { + $res = dolibarr_set_const($db, $maskconststocktransfer, $maskstocktransfer, '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 = 'StockTransfer'; + + $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/stocktransfer/doc/pdf_".$modele.".modules.php", 0); + if (file_exists($file)) { + $filefound = 1; + $classname = "pdf_".$modele; + 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=".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 == 'set') { // Activate a model + $ret = addDocumentModel($value, 'stocktransfer', $label, $scandir); +} elseif ($action == 'del') { + $tmpobjectkey = 'StockTransfer'; + + $ret = delDocumentModel($value, 'stocktransfer'); + if ($ret > 0) { + $constforval = strtoupper($tmpobjectkey).'_ADDON_PDF'; + if ($conf->global->$constforval == "$value") dolibarr_del_const($db, $constforval, $conf->entity); + } +} elseif ($action == 'setdoc') { // Set default model + $tmpobjectkey = 'StockTransfer'; + $constforval = 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; + } + + // On active le modele + $ret = delDocumentModel($value, 'stocktransfer'); + if ($ret > 0) { + $ret = addDocumentModel($value, 'stocktransfer', $label, $scandir); + } +} elseif ($action == 'setmod') { + // TODO Check if numbering module chosen can be activated + // by calling method canBeActivated + $tmpobjectkey = 'StockTransfer'; + $constforval = 'STOCKTRANSFER_'.strtoupper($tmpobjectkey)."_ADDON"; + dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity); +} + + + +/* + * View + */ + +$form = new Form($db); + +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + +$page_name = "StockTransferSetup"; +llxHeader('', $langs->trans($page_name)); + +// Subheader +$linkback = ''.$langs->trans("BackToModuleList").''; + +print load_fiche_titre($langs->trans($page_name), $linkback, 'stock'); + +// Configuration header +$head = stocktransferAdminPrepareHead(); +print dol_get_fiche_head($head, 'settings', '', -1, "stocktransfer@stocktransfer"); + +// Setup page goes here +print ''.$langs->trans("StockTransferSetupPage").''; + + +/*if ($action == 'edit') +{ + print '
'; + print ''; + print ''; + + print ''; + print ''; + + foreach ($arrayofparameters as $key => $val) + { + print ''; + } + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); + print $form->textwithpicto($langs->trans($key), $tooltiphelp); + print '
'; + + print '
'; + print ''; + print '
'; + + print '
'; + print '
'; +} else { + if (!empty($arrayofparameters)) + { + print ''; + print ''; + + foreach ($arrayofparameters as $key => $val) + { + $setupnotempty++; + + print ''; + } + + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); + print $form->textwithpicto($langs->trans($key), $tooltiphelp); + print ''.getDolGlobalString($key).'
'; + + print '
'; + print ''.$langs->trans("Modify").''; + print '
'; + } + else + { + print '
'.$langs->trans("NothingToSetup"); + } +}*/ + + +$moduledir = 'stocktransfer'; +$myTmpObjects = array(); +$myTmpObjects[$moduledir]=array('includerefgeneration'=>1, 'includedocgeneration'=>1); + +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)) print '
'.$langs->trans($tmp).'
'; + elseif ($tmp == 'NotConfigured') print $langs->trans($tmp); + else print $tmp; + print '
'; + $constforvar = 'STOCKTRANSFER_'.strtoupper($myTmpObjectKey).'_ADDON'; + if ($conf->global->$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 = strtoupper($myTmpObjectKey).'_ADDON_PDF'; + if ($conf->global->$constforvar == $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').''; + } + print ''; + print $form->textwithpicto('', $htmltooltip, 1, 0); + print ''; + if ($module->type == 'pdf') { + print ''.img_object($langs->trans("Preview"), 'generic').''; + } 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/admin/supplier_invoice.php b/htdocs/admin/supplier_invoice.php index 40fe58f68d6..3524111c96e 100644 --- a/htdocs/admin/supplier_invoice.php +++ b/htdocs/admin/supplier_invoice.php @@ -27,6 +27,7 @@ * \brief Setup to admin supplier invoices */ +// 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'; @@ -392,7 +393,7 @@ foreach ($dirmodels as $reldir) { // Default print '
'; - if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF == "$name") { + if (getDolGlobalString("INVOICE_SUPPLIER_ADDON_PDF") == "$name") { //print img_picto($langs->trans("Default"),'on'); // Even if choice is the default value, we allow to disable it: For supplier invoice, we accept to have no doc generation at all print 'scandir.'&label='.urlencode($module->name).'&type=invoice_supplier"" alt="'.$langs->trans("Disable").'">'.img_picto($langs->trans("Enabled"), 'on').''; @@ -457,10 +458,10 @@ print '
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'SUPPLIER_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 '
'; diff --git a/htdocs/admin/supplier_order.php b/htdocs/admin/supplier_order.php index 0da79845d14..b5114314eef 100644 --- a/htdocs/admin/supplier_order.php +++ b/htdocs/admin/supplier_order.php @@ -1,25 +1,25 @@ - * Copyright (C) 2004-2011 Laurent Destailleur - * Copyright (C) 2005-2011 Regis Houssin - * Copyright (C) 2004 Sebastien Di Cintio - * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2010-2013 Juanjo Menent - * Copyright (C) 2011-2018 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 - * 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 . - */ +* Copyright (C) 2004-2011 Laurent Destailleur +* Copyright (C) 2005-2011 Regis Houssin +* Copyright (C) 2004 Sebastien Di Cintio +* Copyright (C) 2004 Benoit Mortier +* Copyright (C) 2010-2013 Juanjo Menent +* Copyright (C) 2011-2018 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 +* 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/supplier_order.php @@ -27,6 +27,7 @@ * \brief Page d'administration-configuration du module Fournisseur */ +// 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,8 +55,8 @@ $specimenthirdparty->initAsSpecimen(); /* - * Actions - */ +* Actions +*/ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; @@ -84,7 +85,9 @@ if ($action == 'updateMask') { $commande->thirdparty = $specimenthirdparty; // Search template files - $file = ''; $classname = ''; $filefound = 0; + $file = ''; + $classname = ''; + $filefound = 0; $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); foreach ($dirmodels as $reldir) { $file = dol_buildpath($reldir."core/modules/supplier_order/doc/pdf_".$modele.".modules.php", 0); @@ -194,8 +197,8 @@ if ($action == 'updateMask') { /* - * View - */ +* View +*/ $form = new Form($db); @@ -313,8 +316,8 @@ print '

'; /* - * Documents models for supplier orders - */ +* Documents models for supplier orders +*/ print load_fiche_titre($langs->trans("OrdersModelModule"), '', ''); @@ -369,7 +372,7 @@ foreach ($dirmodels as $reldir) { print "\n"; print ""; - print (empty($module->name) ? $name : $module->name); + print(empty($module->name) ? $name : $module->name); print "\n"; print "\n"; require_once $dir.'/'.$file; @@ -437,8 +440,8 @@ foreach ($dirmodels as $reldir) { print '
'; /* - * Other options - */ +* Other options +*/ print '
'; print ''; @@ -456,7 +459,7 @@ print ''; print $form->textwithpicto($langs->trans("UseDoubleApproval"), $langs->trans("Use3StepsApproval"), 1, 'help').'
'; print $langs->trans("IfSetToYesDontForgetPermission"); print ''; -print ''; +print ''; print ''; print ''; print "\n"; @@ -464,33 +467,32 @@ print "\n"; // Ask for payment bank during supplier order /* Kept as hidden for the moment -if ($conf->banque->enabled) -{ +if (isModEnabled('banque')) { - print ''; - print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER").' '; - if (! empty($conf->use_javascript_ajax)) - { - print ajax_constantonoff('BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER'); - } - else - { - if (empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER)) - { - print ''.img_picto($langs->trans("Disabled"),'switch_off').''; - } - else - { - print ''.img_picto($langs->trans("Enabled"),'switch_on').''; - } - } - print ''; +print ''; +print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER").' '; +if (!empty($conf->use_javascript_ajax)) +{ +print ajax_constantonoff('BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER'); +} +else +{ +if (empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER)) +{ +print ''.img_picto($langs->trans("Disabled"),'switch_off').''; +} +else +{ +print ''.img_picto($langs->trans("Enabled"),'switch_on').''; +} +} +print ''; } else { - print ''; - print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER").' '.$langs->trans('NotAvailable').''; +print ''; +print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER").' '.$langs->trans('NotAvailable').''; } */ @@ -506,10 +508,10 @@ print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnOrders"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'SUPPLIER_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, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''; @@ -521,7 +523,7 @@ print ''; print ''.$langs->trans("UseDispatchStatus").''; print ''; print ''; -if ($conf->reception->enabled) { +if (isModEnabled('reception')) { print ''.$langs->trans("FeatureNotAvailableWithReceptionModule").''; } else { if ($conf->use_javascript_ajax) { @@ -540,8 +542,8 @@ print '
'; /* - * Notifications - */ +* Notifications +*/ print load_fiche_titre($langs->trans("Notifications"), '', ''); print ''; diff --git a/htdocs/admin/supplier_payment.php b/htdocs/admin/supplier_payment.php index a41f9fdf80c..86fcccfb8f2 100644 --- a/htdocs/admin/supplier_payment.php +++ b/htdocs/admin/supplier_payment.php @@ -23,6 +23,7 @@ * \brief Page to setup supplier 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/fourn.lib.php'; @@ -74,7 +75,7 @@ if ($action == 'updateMask') { } elseif ($action == 'del') { $ret = delDocumentModel($value, $type); if ($ret > 0) { - if ($conf->global->FACTURE_ADDON_PDF == "$value") { + if (getDolGlobalString("FACTURE_ADDON_PDF") == "$value") { dolibarr_del_const($db, 'SUPPLIER_PAYMENT_ADDON_PDF', $conf->entity); } } @@ -262,7 +263,7 @@ foreach ($dirmodels as $reldir) { if ($conf->global->SUPPLIER_PAYMENT_ADDON == $file || $conf->global->SUPPLIER_PAYMENT_ADDON.'.php' == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { - print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; + print 'scandir) ? '&scandir='.$module->scandir : '').'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; } print ''; @@ -288,7 +289,7 @@ foreach ($dirmodels as $reldir) { print '\n"; print "\n"; print '\n"; diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php index 9bd684afb22..fa3702d36b7 100644 --- a/htdocs/admin/supplier_proposal.php +++ b/htdocs/admin/supplier_proposal.php @@ -23,6 +23,7 @@ * along with this program. If not, see . */ +// 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'; @@ -474,10 +475,10 @@ print '\n"; print ''; -if ($conf->banque->enabled) { +if (isModEnabled('banque')) { print ''; -if (!empty($conf->loghandlers['mod_syslog_file']) && !empty($conf->cron->enabled)) { +if (!empty($conf->loghandlers['mod_syslog_file']) && isModEnabled('cron')) { print ''; - print ''; } diff --git a/htdocs/admin/system/about.php b/htdocs/admin/system/about.php index de6f0c146f3..a9c87ca61a3 100644 --- a/htdocs/admin/system/about.php +++ b/htdocs/admin/system/about.php @@ -24,6 +24,7 @@ * \brief About Dolibarr File 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/files.lib.php'; diff --git a/htdocs/admin/system/browser.php b/htdocs/admin/system/browser.php index 2919df67d85..7e2c772183d 100644 --- a/htdocs/admin/system/browser.php +++ b/htdocs/admin/system/browser.php @@ -22,6 +22,7 @@ * \brief Page to show Dolibarr informations */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; diff --git a/htdocs/admin/system/constall.php b/htdocs/admin/system/constall.php index 96cb98809ef..4acb8e0ff59 100644 --- a/htdocs/admin/system/constall.php +++ b/htdocs/admin/system/constall.php @@ -22,6 +22,7 @@ * \brief Page to show all Dolibarr setup (config file and database constants) */ +// Load Dolibarr environment require '../../main.inc.php'; // Load translation files required by the page @@ -89,6 +90,7 @@ $configfileparameters = array( 'separator', '?dolibarr_mailing_limit_sendbyweb', '?dolibarr_mailing_limit_sendbycli', + '?dolibarr_mailing_limit_sendbyday', '?dolibarr_strict_mode' ); $configfilelib = array( @@ -204,7 +206,7 @@ print '
'; print $form->textwithpicto('', $htmltooltip, 1, 0); - if ($conf->global->PAYMENT_ADDON.'.php' == $file) { // If module is the one used, we show existing errors + if (getDolGlobalString("PAYMENT_ADDON").'.php' == $file) { // If module is the one used, we show existing errors if (!empty($module->error)) { dol_htmloutput_mesg($module->error, '', 'error', 1); } @@ -350,7 +351,7 @@ foreach ($dirmodels as $reldir) { print "\n"; require_once $dir.'/'.$file; - $module = new $classname($db, $specimenthirdparty); + $module = new $classname($db, new Societe($db)); if (method_exists($module, 'info')) { print $module->info($langs); } else { @@ -382,7 +383,7 @@ foreach ($dirmodels as $reldir) { // Default print ''; - if ($conf->global->SUPPLIER_PAYMENT_ADDON_PDF == "$name") { + if (getDolGlobalString("SUPPLIER_PAYMENT_ADDON_PDF") == "$name") { //print img_picto($langs->trans("Default"),'on'); // Even if choice is the default value, we allow to disable it: For supplier invoice, we accept to have no doc generation at all print 'scandir).'&label='.urlencode($module->name).'&type=SUPPLIER_PAYMENT"" alt="'.$langs->trans("Disable").'">'.img_picto($langs->trans("Enabled"), 'on').''; @@ -441,7 +442,7 @@ print "
'; print $langs->trans("GroupPaymentsByModOnReports"); print ''; -print $form->selectyesno("PAYMENTS_FOURN_REPORT_GROUP_BY_MOD", $conf->global->PAYMENTS_FOURN_REPORT_GROUP_BY_MOD, 1); +print $form->selectyesno("PAYMENTS_FOURN_REPORT_GROUP_BY_MOD", getDolGlobalString("PAYMENTS_FOURN_REPORT_GROUP_BY_MOD"), 1); print ''; print "
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnSupplierProposal"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; $variablename = 'SUPPLIER_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 '
'; @@ -492,13 +493,13 @@ 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_SUPPLIER_PROPOSAL").' '; if (!empty($conf->use_javascript_ajax)) { diff --git a/htdocs/admin/supplierinvoice_extrafields.php b/htdocs/admin/supplierinvoice_extrafields.php index 4121073dec2..760a89c4a0d 100644 --- a/htdocs/admin/supplierinvoice_extrafields.php +++ b/htdocs/admin/supplierinvoice_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of supplierinvoice */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -89,7 +90,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/supplierinvoicedet_extrafields.php b/htdocs/admin/supplierinvoicedet_extrafields.php index 0156eed5072..55664d46966 100644 --- a/htdocs/admin/supplierinvoicedet_extrafields.php +++ b/htdocs/admin/supplierinvoicedet_extrafields.php @@ -28,6 +28,7 @@ * \brief Page to setup extra fields of supplierinvoice line */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -91,7 +92,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/supplierorder_extrafields.php b/htdocs/admin/supplierorder_extrafields.php index 5a49c8f5bfd..63c679e3ef9 100644 --- a/htdocs/admin/supplierorder_extrafields.php +++ b/htdocs/admin/supplierorder_extrafields.php @@ -26,6 +26,7 @@ * \brief Page to setup extra fields of supplierorder */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -89,7 +90,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/supplierorderdet_extrafields.php b/htdocs/admin/supplierorderdet_extrafields.php index 07f223d59c8..7f38fe77cc8 100644 --- a/htdocs/admin/supplierorderdet_extrafields.php +++ b/htdocs/admin/supplierorderdet_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of supplierorder line */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -90,7 +91,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/syslog.php b/htdocs/admin/syslog.php index 2f272cd986f..71f7fd7f875 100644 --- a/htdocs/admin/syslog.php +++ b/htdocs/admin/syslog.php @@ -24,6 +24,7 @@ * \brief Setup page for logs module */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -293,9 +294,9 @@ print '
'.$langs->trans("SyslogFileNumberOfSaves").''; + print ''; print ' ('.$langs->trans('ConfigureCleaningCronjobToSetFrequencyOfSaves').')
'; print ''; print ''; print ''; -if (empty($conf->multicompany->enabled) || !$user->entity) { +if (!isModEnabled('multicompany') || !$user->entity) { print ''; // If superadmin or multicompany disabled } print "\n"; @@ -217,7 +219,7 @@ $sql .= ", type"; $sql .= ", note"; $sql .= ", entity"; $sql .= " FROM ".MAIN_DB_PREFIX."const"; -if (empty($conf->multicompany->enabled)) { +if (!isModEnabled('multicompany')) { // If no multicompany mode, admins can see global and their constantes $sql .= " WHERE entity IN (0,".$conf->entity.")"; } else { @@ -238,7 +240,7 @@ if ($resql) { print ''; print ''."\n"; print ''."\n"; - if (empty($conf->multicompany->enabled) || !$user->entity) { + if (!isModEnabled('multicompany') || !$user->entity) { print ''."\n"; // If superadmin or multicompany disabled } print "\n"; diff --git a/htdocs/admin/system/database-tables.php b/htdocs/admin/system/database-tables.php index 72e8db6bb4e..de49bf687a1 100644 --- a/htdocs/admin/system/database-tables.php +++ b/htdocs/admin/system/database-tables.php @@ -28,6 +28,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/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -106,6 +107,14 @@ if (!$base) { print ''; print "\n"; + $arrayoffilesrich = dol_dir_list(DOL_DOCUMENT_ROOT.'/install/mysql/tables/', 'files', 0, '\.sql$'); + $arrayoffiles = array(); + foreach ($arrayoffilesrich as $value) { + //print $shortsqlfilename.' '; + $shortsqlfilename = preg_replace('/\-[a-z]+\./', '.', $value['name']); + $arrayoffiles[] = $shortsqlfilename; + } + $sql = "SHOW TABLE STATUS"; $resql = $db->query($sql); @@ -119,7 +128,8 @@ if (!$base) { print ''; print ''; + print ''."\n"; } elseif ($newkey == 'dolibarr_main_prod') { print ${$newkey}; @@ -481,7 +484,7 @@ print '
'.$langs->trans("Parameter").''.$langs->trans("Value").''.$langs->trans("Entity").'
'.$obj->name.''.$obj->value.''.$obj->entity.'
Collation
'.($i+1).''.$obj->Name.''; $tablename = preg_replace('/^'.MAIN_DB_PREFIX.'/', 'llx_', $obj->Name); - if (dol_is_file(DOL_DOCUMENT_ROOT.'/install/mysql/tables/'.$tablename.'.sql')) { + + if (in_array($tablename.'.sql', $arrayoffiles)) { $img = "info"; //print img_picto($langs->trans("ExternalModule"), $img); } else { diff --git a/htdocs/admin/system/database.php b/htdocs/admin/system/database.php index 422e8ab2bc6..8cd1ad3d597 100644 --- a/htdocs/admin/system/database.php +++ b/htdocs/admin/system/database.php @@ -23,6 +23,7 @@ * \brief Page with system information of database */ +// Load Dolibarr environment require '../../main.inc.php'; $langs->load("admin"); @@ -64,7 +65,7 @@ print '
'; print '
'; print ''; print ''."\n"; -print ''."\n"; +print ''."\n"; print '
'.$langs->trans("Tables").'
'.$langs->trans("List").'
'.img_picto('', 'list', 'class="pictofixedwidth"').$langs->trans("List").'
'; print '
'; diff --git a/htdocs/admin/system/dbtable.php b/htdocs/admin/system/dbtable.php index 87136f2ec6a..1a1fd00ecbb 100644 --- a/htdocs/admin/system/dbtable.php +++ b/htdocs/admin/system/dbtable.php @@ -24,6 +24,7 @@ * \brief Page d'info des contraintes d'une table */ +// Load Dolibarr environment require '../../main.inc.php'; $langs->load("admin"); diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php index d10e789f39c..80efc0a9891 100644 --- a/htdocs/admin/system/dolibarr.php +++ b/htdocs/admin/system/dolibarr.php @@ -22,6 +22,7 @@ * \brief Page to show Dolibarr information */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -360,6 +361,7 @@ $configfileparameters = array( 'dolibarr_main_restrict_ip' => 'Restrict access to some IPs only', '?dolibarr_mailing_limit_sendbyweb' => 'Limit nb of email sent by page', '?dolibarr_mailing_limit_sendbycli' => 'Limit nb of email sent by cli', + '?dolibarr_mailing_limit_sendbyday' => 'Limit nb of email sent per day', '?dolibarr_strict_mode' => 'Strict mode is on/off', '?dolibarr_nocsrfcheck' => 'Disable CSRF security checks' ); @@ -381,7 +383,7 @@ foreach ($configfileparameters as $key => $value) { $newkey = preg_replace('/^\?/', '', $key); if (preg_match('/^\?/', $key) && empty(${$newkey})) { - if ($newkey != 'multicompany_transverse_mode' || empty($conf->multicompany->enabled)) { + if ($newkey != 'multicompany_transverse_mode' || !isModEnabled('multicompany')) { continue; // We discard parameters starting with ? } } @@ -435,7 +437,8 @@ foreach ($configfileparameters as $key => $value) { if (empty($valuetoshow)) { print img_warning("EditConfigFileToAddEntry", 'dolibarr_main_instance_unique_id'); } - print '   ('.$langs->trans("HashForPing").'='.md5('dolibarr'.$valuetoshow).')'; + print '
  => '.$langs->trans("HashForPing").''.md5('dolibarr'.$valuetoshow).'
'; print ''; print ''; print ''; -if (empty($conf->multicompany->enabled) || !$user->entity) { +if (!isModEnabled('multicompany') || !$user->entity) { print ''; // If superadmin or multicompany disabled } print "\n"; @@ -494,7 +497,7 @@ $sql .= ", type"; $sql .= ", note"; $sql .= ", entity"; $sql .= " FROM ".MAIN_DB_PREFIX."const"; -if (empty($conf->multicompany->enabled)) { +if (!isModEnabled('multicompany')) { // If no multicompany mode, admins can see global and their constantes $sql .= " WHERE entity IN (0,".$conf->entity.")"; } else { @@ -524,7 +527,7 @@ if ($resql) { print dol_escape_htmltag($obj->value); } print ''."\n"; - if (empty($conf->multicompany->enabled) || !$user->entity) { + if (!isModEnabled('multicompany') || !$user->entity) { print ''."\n"; // If superadmin or multicompany disabled } print "\n"; diff --git a/htdocs/admin/system/filecheck.php b/htdocs/admin/system/filecheck.php index 10edae1a24b..7d8233cdc0a 100644 --- a/htdocs/admin/system/filecheck.php +++ b/htdocs/admin/system/filecheck.php @@ -24,6 +24,7 @@ * \brief Page to check Dolibarr files integrity */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; @@ -101,6 +102,10 @@ if ($xmlremote && !preg_match('/^https?:\/\//', $xmlremote)) { $langs->load("errors"); setEventMessages($langs->trans("ErrorURLMustStartWithHttp", $xmlremote), '', 'errors'); $error++; +} elseif ($xmlremote && !preg_match('/\.xml$/', $xmlremote)) { + $langs->load("errors"); + setEventMessages($langs->trans("ErrorURLMustEndWith", $xmlremote, '.xml'), '', 'errors'); + $error++; } // Test if remote test is ok @@ -205,8 +210,8 @@ if (empty($error) && !empty($xml)) { $constvalue = (empty($constvalue) ? '0' : $constvalue); // Value found $value = ''; - if ($constname && $conf->global->$constname != '') { - $value = $conf->global->$constname; + if ($constname && getDolGlobalString($constname) != '') { + $value = getDolGlobalString($constname); } $valueforchecksum = (empty($value) ? '0' : $value); @@ -388,7 +393,9 @@ if (empty($error) && !empty($xml)) { $out .= '
'.$langs->trans("Parameters").' '.$langs->trans("Database").''.$langs->trans("Value").''.$langs->trans("Entity").'
'.$obj->entity.'
'; $out .= '
'; } else { - print 'Error: Failed to found dolibarr_htdocs_dir into XML file '.$xmlfile; + print '
'; + print 'Error: Failed to found dolibarr_htdocs_dir into content of XML file:
'.dol_escape_htmltag(dol_trunc($xmlfile, 500)); + print '

'; $error++; } @@ -407,10 +414,10 @@ if (empty($error) && !empty($xml)) { $checksumget = md5(join(',', $checksumconcat)); $checksumtoget = trim((string) $xml->dolibarr_htdocs_dir_checksum); - /*var_dump(count($file_list['added'])); - var_dump($checksumget); - var_dump($checksumtoget); - var_dump($checksumget == $checksumtoget);*/ + //var_dump(count($file_list['added'])); + //var_dump($checksumget); + //var_dump($checksumtoget); + //var_dump($checksumget == $checksumtoget); $resultcomment = ''; diff --git a/htdocs/admin/system/modules.php b/htdocs/admin/system/modules.php index 9e60ff46bd7..c2ad387d955 100644 --- a/htdocs/admin/system/modules.php +++ b/htdocs/admin/system/modules.php @@ -22,6 +22,7 @@ * \brief File to list all Dolibarr modules */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/admin/system/os.php b/htdocs/admin/system/os.php index d778d60cb3a..c60e1610054 100644 --- a/htdocs/admin/system/os.php +++ b/htdocs/admin/system/os.php @@ -21,6 +21,7 @@ * \brief Page des infos systeme de l'OS */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/admin/system/perf.php b/htdocs/admin/system/perf.php index 0bdb442863d..dcd853a5356 100644 --- a/htdocs/admin/system/perf.php +++ b/htdocs/admin/system/perf.php @@ -20,6 +20,7 @@ * \brief Page to show Performance information */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -51,6 +52,9 @@ print load_fiche_titre($langs->trans("PerfDolibarr"), '', 'title_setup'); print ''.$langs->trans("YouMayFindPerfAdviceHere", 'https://wiki.dolibarr.org/index.php/FAQ_Increase_Performance').' ('.$langs->trans("Reload").')
'; +print '
'; +print '
'; + // Recupere la version de PHP $phpversion = version_php(); print "
PHP - ".$langs->trans("Version").": ".$phpversion."
\n"; diff --git a/htdocs/admin/system/phpinfo.php b/htdocs/admin/system/phpinfo.php index ac51ce33dc3..aa09cf0a27c 100644 --- a/htdocs/admin/system/phpinfo.php +++ b/htdocs/admin/system/phpinfo.php @@ -24,6 +24,7 @@ * \brief Page des infos systeme de php */ +// 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'; @@ -183,6 +184,22 @@ print "".$name.""; print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; +$functions = ["easter_date"]; +$name = "Calendar"; + +print ""; +print "".$name.""; +print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); +print ""; + +$functions = ["simplexml_load_string"]; +$name = "Xml"; + +print ""; +print "".$name.""; +print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); +print ""; + if (empty($_SERVER["SERVER_ADMIN"]) || $_SERVER["SERVER_ADMIN"] != 'doliwamp@localhost') { $functions = ["locale_get_primary_language", "locale_get_region"]; $name = "Intl"; diff --git a/htdocs/admin/system/security.php b/htdocs/admin/system/security.php index 8a480ea49ca..b7074c51095 100644 --- a/htdocs/admin/system/security.php +++ b/htdocs/admin/system/security.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2013-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 @@ -20,6 +20,7 @@ * \brief Page to show Security information */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -296,7 +297,7 @@ if (empty($conf->global->SECURITY_DISABLE_TEST_ON_OBFUSCATED_CONF)) { -// Menu security +// Menu Home - Setup - Security print '
'; print '
'; @@ -311,11 +312,53 @@ print yn(empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA) ? 0 : 1); print '
'; print '
'; +print ''.$langs->trans("DoNotStoreClearPassword").': '; +print empty($conf->global->DATABASE_PWD_ENCRYPTED) ? '' : img_picto('', 'tick').' '; +print yn(empty($conf->global->DATABASE_PWD_ENCRYPTED) ? 0 : 1); +if (empty($conf->global->DATABASE_PWD_ENCRYPTED)) { + print ' ('.$langs->trans("Recommended").' '.yn(1).')'; +} +print '
'; +print '
'; + +/* Already into section conf file */ +/* +$usepassinconfencrypted = 0; +global $dolibarr_main_db_pass, $dolibarr_main_db_encrypted_pass; +if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { + $usepassinconfencrypted = 1; +} +print ''.$langs->trans("MainDbPasswordFileConfEncrypted").': '; +print $usepassinconfencrypted ? img_picto('', 'tick').' ' : img_warning().' '; +print yn($usepassinconfencrypted); +if (empty($usepassinconfencrypted)) { + print ' ('.$langs->trans("Recommended").' '.yn(1).')'; +} +print '
'; +print '
'; +*/ + +/* Password length + +// Stored into $tabconf[0] if module generator is "Perso" or specific to the module generator. +$tabConf = explode(";", getDolGlobalString('USER_PASSWORD_PATTERN')); + +print ''.$langs->trans("PasswordLength").': '; +print empty($conf->global->DATABASE_PWD_ENCRYPTED) ? '' : img_picto('', 'tick').' '; +print yn(empty($conf->global->DATABASE_PWD_ENCRYPTED) ? 0 : 1); +if (empty($conf->global->DATABASE_PWD_ENCRYPTED)) { + print ' ('.$langs->trans("Recommended").' '.yn(1).')'; +} +print '
'; +print '
'; +*/ print ''.$langs->trans("AntivirusEnabledOnUpload").': '; -print empty($conf->global->MAIN_ANTIVIRUS_COMMAND) ? '' : img_picto('', 'tick').' '; +print empty($conf->global->MAIN_ANTIVIRUS_COMMAND) ? img_warning().' ' : img_picto('', 'tick').' '; print yn(empty($conf->global->MAIN_ANTIVIRUS_COMMAND) ? 0 : 1); -if (!empty($conf->global->MAIN_ANTIVIRUS_COMMAND)) { +if (empty($conf->global->MAIN_ANTIVIRUS_COMMAND)) { + print ' - '.$langs->trans("Recommended").': '.$langs->trans("DefinedAPathForAntivirusCommandIntoSetup", $langs->transnoentitiesnoconv("Home")." - ".$langs->transcountrynoentities("Setup")." - ".$langs->transnoentitiesnoconv("Security")).''; +} else { print '   - '.$conf->global->MAIN_ANTIVIRUS_COMMAND; if (defined('MAIN_ANTIVIRUS_COMMAND') && !defined('MAIN_ANTIVIRUS_BYPASS_COMMAND_AND_PARAM')) { print ' - '.$langs->trans("ValueIsForcedBySystem").''; @@ -324,6 +367,20 @@ if (!empty($conf->global->MAIN_ANTIVIRUS_COMMAND)) { print '
'; print '
'; +$umask = getDolGlobalString('MAIN_UMASK'); + +print ''.$langs->trans("UMask").': '; +if (! in_array($umask, array('600', '660', '0600', '0660'))) { + print img_warning().' '; +} +print $umask; +if (! in_array($umask, array('600', '660', '0600', '0660'))) { + print '   ('.$langs->trans("Recommended").': 0600 | 0660)'; +} +print '
'; +print '
'; + + $securityevent = new Events($db); $eventstolog = $securityevent->eventstolog; @@ -418,6 +475,11 @@ print '
'; print load_fiche_titre($langs->trans("OtherSetup"), '', 'folder'); +print 'MAIN_ALLOW_SVG_FILES_AS_IMAGES = '.(empty($conf->global->MAIN_ALLOW_SVG_FILES_AS_IMAGES) ? '0' : $conf->global->MAIN_ALLOW_SVG_FILES_AS_IMAGES).'   ('.$langs->trans("Recommended").': 0)
'; +print '
'; + +print 'MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE = '.(empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE).'   ('.$langs->trans("Recommended").': 1)
'; +print '
'; //print ''.$langs->trans("PasswordEncryption").': '; print 'MAIN_SECURITY_HASH_ALGO = '.(empty($conf->global->MAIN_SECURITY_HASH_ALGO) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_SECURITY_HASH_ALGO)."   "; @@ -443,13 +505,7 @@ print '
'; print 'MAIN_SECURITY_ANTI_SSRF_SERVER_IP = '.(empty($conf->global->MAIN_SECURITY_ANTI_SSRF_SERVER_IP) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': List of static IPs of server separated with coma - '.$langs->trans("Note").': common loopback ip like 127.*.*.*, [::1] are already added)' : $conf->global->MAIN_SECURITY_ANTI_SSRF_SERVER_IP)."
"; print '
'; -print 'MAIN_ALLOW_SVG_FILES_AS_IMAGES = '.(empty($conf->global->MAIN_ALLOW_SVG_FILES_AS_IMAGES) ? '0' : $conf->global->MAIN_ALLOW_SVG_FILES_AS_IMAGES).'   ('.$langs->trans("Recommended").': 0)
'; -print '
'; - -print 'MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE = '.(empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE).'   ('.$langs->trans("Recommended").': 1)
'; -print '
'; - -print 'MAIN_SECURITY_CSRF_WITH_TOKEN = '.(empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN).'   ('.$langs->trans("Recommended").': 2)'."
"; +print 'MAIN_SECURITY_CSRF_WITH_TOKEN = '.(empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN).'   ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 2)'."
"; print '
'; print '
'; @@ -458,15 +514,6 @@ print '
'; print load_fiche_titre($langs->trans("OtherSetup").' ('.$langs->trans("Experimental").')', '', 'folder'); -print 'MAIN_RESTRICTHTML_ONLY_VALID_HTML = '.(empty($conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': 1)' : $conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML)."
"; -print '
'; - -print 'MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = '.(empty($conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': 1)' : $conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES)."
"; -print '
'; - -print 'MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL = '.(empty($conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 0)' : $conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL)."
"; -print '
'; - print 'MAIN_EXEC_USE_POPEN = '; if (empty($conf->global->MAIN_EXEC_USE_POPEN)) { print ''.$langs->trans("Undefined").''; @@ -483,8 +530,52 @@ if ($execmethod == 2) { print '   ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 1)'; print ''; } -print "
"; print '
'; +print '
'; + +print 'MAIN_RESTRICTHTML_ONLY_VALID_HTML = '.(empty($conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': 1)' : $conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML)."
"; +print '
'; + +print 'MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = '.(empty($conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': 1)' : $conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES)."
"; +print '
'; + +print 'MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL = '.(empty($conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL) ? ''.$langs->trans("Undefined").'   ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or").' 0)' : $conf->global->MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL)."
"; +print '
'; + +print 'MAIN_SECURITY_FORCECSP = '.(empty($conf->global->MAIN_SECURITY_FORCECSP) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_SECURITY_FORCECSP).'   ('.$langs->trans("Example").": \"default-src 'self'; img-src *;\")
"; +print '
'; + +print 'MAIN_SECURITY_FORCERP = '.(empty($conf->global->MAIN_SECURITY_FORCERP) ? ''.$langs->trans("Undefined").'' : $conf->global->MAIN_SECURITY_FORCERP).'   ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or")." \"same-origin\")
"; +print '
'; + +print 'WEBSITE_MAIN_SECURITY_FORCECSP = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCECSP) ? ''.$langs->trans("Undefined").'' : $conf->global->WEBSITE_MAIN_SECURITY_FORCECSP).'   ('.$langs->trans("Example").": \"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: *;\")
"; +print '
'; + +print 'WEBSITE_MAIN_SECURITY_FORCERP = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCERP) ? ''.$langs->trans("Undefined").'' : $conf->global->WEBSITE_MAIN_SECURITY_FORCERP).'   ('.$langs->trans("Recommended").': '.$langs->trans("Undefined").' '.$langs->trans("or")." \"strict-origin-when-cross-origin\")
"; +print '
'; + +print 'WEBSITE_MAIN_SECURITY_FORCESTS = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCESTS) ? ''.$langs->trans("Undefined").'' : $conf->global->WEBSITE_MAIN_SECURITY_FORCESTS).'   ('.$langs->trans("Example").": \"max-age=31536000; includeSubDomains\")
"; +print '
'; + +print 'WEBSITE_MAIN_SECURITY_FORCEPP = '.(empty($conf->global->WEBSITE_MAIN_SECURITY_FORCEPP) ? ''.$langs->trans("Undefined").'' : $conf->global->WEBSITE_MAIN_SECURITY_FORCEPP).'   ('.$langs->trans("Example").": \"camera: 'none'; microphone: 'none';\")
"; +print '
'; + +print '
'; + + +print load_fiche_titre($langs->trans("LimitsAndMitigation"), '', 'folder'); + +print ''; +print 'For a higher security, we also recommend to implement limits and mitigation on number of endpoints per minutes for the following URL'."
"; +print '
'; + +print '
'; +print 'Login process -> This can be done using a fail2ban rule (see example into dev/setup)'."
"; +print DOL_URL_ROOT.'/passwordforgotten.php (see example into dev/setup)'."
"; +print DOL_URL_ROOT.'/public/* (see example into dev/setup)'."
"; + + + // End of page diff --git a/htdocs/admin/system/web.php b/htdocs/admin/system/web.php index 921fd839109..6ba6829823d 100644 --- a/htdocs/admin/system/web.php +++ b/htdocs/admin/system/web.php @@ -20,6 +20,7 @@ * \brief Page with web server system information */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; diff --git a/htdocs/admin/system/xcache.php b/htdocs/admin/system/xcache.php index 8bdca5be40e..4453dc694d4 100644 --- a/htdocs/admin/system/xcache.php +++ b/htdocs/admin/system/xcache.php @@ -20,6 +20,7 @@ * \brief Page administration XCache */ +// Load Dolibarr environment require '../../main.inc.php'; $langs->load("admin"); @@ -58,23 +59,6 @@ print $langs->trans("xcache.optimizer").': '.yn(ini_get('xcache.optimizer')).' ( print $langs->trans("xcache.stat").': '.yn(ini_get('xcache.stat')).'
'."\n"; print $langs->trans("xcache.coverager").': '.yn(ini_get('xcache.coverager')).'
'."\n"; -//print xcache_get(); -/* -$cacheinfos = array(); -for ($i = 0; $i < 10; $i ++) -{ - $data = xcache_info(XC_TYPE_PHP, $i); - $data['cacheid'] = $i; - $cacheinfos[] = $data; -} - -var_dump($cacheinfos); - -if ($action == 'clear') -{ - xcache_clear_cache(); -} -*/ // End of page llxFooter(); diff --git a/htdocs/admin/system/xdebug.php b/htdocs/admin/system/xdebug.php index 8c3a70ff6ec..f6d2e3926b9 100644 --- a/htdocs/admin/system/xdebug.php +++ b/htdocs/admin/system/xdebug.php @@ -20,6 +20,7 @@ * \brief Page administration XDebug */ +// Load Dolibarr environment require '../../main.inc.php'; $langs->load("admin"); diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php index 646f4a7be74..ccdbedc1f89 100644 --- a/htdocs/admin/taxes.php +++ b/htdocs/admin/taxes.php @@ -25,9 +25,10 @@ * \brief Page de configuration du module tax */ +// Load Dolibarr environment require '../main.inc.php'; 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'; } @@ -137,7 +138,7 @@ if ($action == 'update') { llxHeader('', $langs->trans("TaxSetup")); $form = new Form($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -282,7 +283,7 @@ echo ''; echo '
'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $langs->load("accountancy"); print '

'.$langs->trans("AccountingAccountForSalesTaxAreDefinedInto", $langs->transnoentitiesnoconv("MenuAccountancy"), $langs->transnoentitiesnoconv("Setup")).''; } diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index ebf4187eabf..73491532c56 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -22,6 +22,7 @@ * \brief Page to setup module ticket */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; require_once DOL_DOCUMENT_ROOT."/ticket/class/ticket.class.php"; @@ -99,52 +100,7 @@ if ($action == 'updateMask') { // par appel methode canBeActivated dolibarr_set_const($db, "TICKET_ADDON", $value, 'chaine', 0, '', $conf->entity); -} elseif ($action == 'setvar') { - include_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; - - $notification_email = GETPOST('TICKET_NOTIFICATION_EMAIL_FROM', 'alpha'); - if (!empty($notification_email)) { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', $notification_email, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', '', 'chaine', 0, '', $conf->entity); - } - if (!($res > 0)) { - $error++; - } - - // altairis : differentiate notification email FROM and TO - $notification_email_to = GETPOST('TICKET_NOTIFICATION_EMAIL_TO', 'alpha'); - if (!empty($notification_email_to)) { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', $notification_email_to, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, '', $conf->entity); - } - if (!($res > 0)) { - $error++; - } - - $mail_intro = GETPOST('TICKET_MESSAGE_MAIL_INTRO', 'restricthtml'); - if (!empty($mail_intro)) { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $mail_intro, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $langs->trans('TicketMessageMailIntroText'), 'chaine', 0, '', $conf->entity); - } - if (!($res > 0)) { - $error++; - } - - $mail_signature = GETPOST('TICKET_MESSAGE_MAIL_SIGNATURE', 'restricthtml'); - if (!empty($mail_signature)) { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $langs->trans('TicketMessageMailSignatureText'), 'chaine', 0, '', $conf->entity); - } - if (!($res > 0)) { - $error++; - } -} - -if ($action == 'setvarworkflow') { +} elseif ($action == 'setvarworkflow') { $param_auto_read = GETPOST('TICKET_AUTO_READ_WHEN_CREATED_FROM_BACKEND', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_AUTO_READ_WHEN_CREATED_FROM_BACKEND', $param_auto_read, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { @@ -156,44 +112,6 @@ if ($action == 'setvarworkflow') { if (!($res > 0)) { $error++; } -} - -if ($action == 'setvarworkflowother' || $action == 'setvarworkflow') { - $param_ticket_product_category = GETPOST('product_category_id', 'int'); - $res = dolibarr_set_const($db, 'TICKET_PRODUCT_CATEGORY', $param_ticket_product_category, 'chaine', 0, '', $conf->entity); - if (!($res > 0)) { - $error++; - } -} - -if ($action == 'setvarother') { - $param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity); - if (!($res > 0)) { - $error++; - } - - $param_disable_email = GETPOST('TICKET_DISABLE_NOTIFICATION_MAILS', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_DISABLE_NOTIFICATION_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity); - if (!($res > 0)) { - $error++; - } - - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - $param_show_module_logo = GETPOST('TICKET_SHOW_MODULE_LOGO', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_SHOW_MODULE_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); - if (!($res > 0)) { - $error++; - } - } - - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - $param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); - if (!($res > 0)) { - $error++; - } - } $param_limit_view = GETPOST('TICKET_LIMIT_VIEW_ASSIGNED_ONLY', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_LIMIT_VIEW_ASSIGNED_ONLY', $param_limit_view, 'chaine', 0, '', $conf->entity); @@ -201,6 +119,14 @@ if ($action == 'setvarother') { $error++; } + if (GETPOSTISSET('product_category_id')) { + $param_ticket_product_category = GETPOST('product_category_id', 'int'); + $res = dolibarr_set_const($db, 'TICKET_PRODUCT_CATEGORY', $param_ticket_product_category, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + } + $param_delay_first_response = GETPOST('delay_first_response', 'int'); $res = dolibarr_set_const($db, 'TICKET_DELAY_BEFORE_FIRST_RESPONSE', $param_delay_first_response, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { @@ -218,8 +144,62 @@ if ($action == 'setvarother') { if (!($res > 0)) { $error++; } -} +} elseif ($action == 'setvar') { + include_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; + $notification_email = GETPOST('TICKET_NOTIFICATION_EMAIL_FROM', 'alpha'); + $notification_email_description = "Sender of ticket replies sent from Dolibarr"; + if (!empty($notification_email)) { + $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', $notification_email, 'chaine', 0, $notification_email_description, $conf->entity); + } else { // If an empty e-mail address is providen, use the global "FROM" since an empty field will cause other issues + $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', $conf->global->MAIN_MAIL_EMAIL_FROM, 'chaine', 0, $notification_email_description, $conf->entity); + } + if (!($res > 0)) { + $error++; + } + + // altairis : differentiate notification email FROM and TO + $notification_email_to = GETPOST('TICKET_NOTIFICATION_EMAIL_TO', 'alpha'); + $notification_email_to_description = "Notified e-mail for ticket replies sent from Dolibarr"; + if (!empty($notification_email_to)) { + $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', $notification_email_to, 'chaine', 0, $notification_email_to_description, $conf->entity); + } else { + $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, $notification_email_to_description, $conf->entity); + } + if (!($res > 0)) { + $error++; + } + + $mail_intro = GETPOST('TICKET_MESSAGE_MAIL_INTRO', 'restricthtml'); + $mail_intro_description = "Introduction text of ticket replies sent from Dolibarr"; + if (!empty($mail_intro)) { + $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $mail_intro, 'chaine', 0, $mail_intro_description, $conf->entity); + } else { + $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', '', 'chaine', 0, $mail_intro_description, $conf->entity); + } + if (!($res > 0)) { + $error++; + } + + $mail_signature = GETPOST('TICKET_MESSAGE_MAIL_SIGNATURE', 'restricthtml'); + $signature_description = "Signature of ticket replies sent from Dolibarr"; + if (!empty($mail_signature)) { + $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, 'chaine', 0, $signature_description, $conf->entity); + } else { + $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', '', 'chaine', 0, $signature_description, $conf->entity); + } + if (!($res > 0)) { + $error++; + } + + if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { + $param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha'); + $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + } +} /* @@ -380,8 +360,8 @@ if ($resql) { print '
'; -print "\n"; -print "\n"; +print '
'."\n"; +print ''."\n"; print ''; print ''; print '\n"; @@ -449,7 +429,7 @@ foreach ($dirmodels as $reldir) { // Default print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Status")."'; - if ($conf->global->TICKET_ADDON_PDF == $name) { + if (getDolGlobalString("TICKET_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').''; @@ -498,13 +478,14 @@ foreach ($dirmodels as $reldir) { print '
'; print '

'; -if (empty($conf->use_javascript_ajax)) { - print '
'; - print ''; - print ''; -} + +print ''; +print ''; +print ''; +print ''; print load_fiche_titre($langs->trans("Other"), '', ''); +print '
'; print ''; print ''; @@ -559,34 +540,25 @@ print $formcategory->textwithpicto('', $langs->trans("TicketsAutoNotifyCloseHelp print ''; print ''; -// Choose which product category is used for tickets -if ($conf->use_javascript_ajax) { - print ''; - print ''; - print ''; +if (isModEnabled('product')) { + $htmlname = "product_category_id"; + print ''; + print ''; + print ''; + print ''; } -print ''; -print ''; -print ''; -print ''; - -// Define wanted maximum time elapsed before answers to tickets -print ''; -print ''; - print ''; print '"; print ''; print ''; print ''; print '"; print ''; print ''; print '
'.$langs->trans("TicketChooseProductCategory").''; + $formcategory->selectProductCategory($conf->global->TICKET_PRODUCT_CATEGORY, $htmlname); + if ($conf->use_javascript_ajax) { + print ajax_combobox('select_'.$htmlname); + } + print ''; + print $formcategory->textwithpicto('', $langs->trans("TicketChooseProductCategoryHelp"), 1, 'help'); + print '
'.$langs->trans("TicketChooseProductCategory").''; -$formcategory->selectProductCategory($conf->global->TICKET_PRODUCT_CATEGORY, 'product_category_id'); -if ($conf->use_javascript_ajax) { - print ajax_combobox('select_'.$htmlname); -} -print ''; -print $formcategory->textwithpicto('', $langs->trans("TicketChooseProductCategoryHelp"), 1, 'help'); -print '
'.$langs->trans("TicketsDelayBeforeFirstAnswer")." - - + '; print $formcategory->textwithpicto('', $langs->trans("TicketsDelayBeforeFirstAnswerHelp"), 1, 'help'); @@ -596,8 +568,7 @@ print '
'.$langs->trans("TicketsDelayBetweenAnswers")." - - + '; print $formcategory->textwithpicto('', $langs->trans("TicketsDelayBetweenAnswersHelp"), 1, 'help'); @@ -606,9 +577,7 @@ print '

'; -print '
'; -print ''; -print '
'; +print $formcategory->buttonsSaveCancel("Save", '', array(), 0, 'reposition'); print ''; @@ -618,9 +587,10 @@ print load_fiche_titre($langs->trans("Notification"), '', ''); print ''; -print ''; +print ''; print ''; print ''; +print ''; print ''; print ''; @@ -644,7 +614,7 @@ print ''; print ''; // Email for notification of TICKET_CREATE -print ''; +print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans("Email").'
'.$langs->trans("TicketEmailNotificationTo").' ('.$langs->trans("Creation").')
'.$langs->trans("TicketEmailNotificationTo").''; print ''; @@ -671,10 +641,10 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // Texte d'introduction $mail_intro = $conf->global->TICKET_MESSAGE_MAIL_INTRO ? $conf->global->TICKET_MESSAGE_MAIL_INTRO : $langs->trans('TicketMessageMailIntroText'); -print '
'.$langs->trans("TicketMessageMailIntroLabelAdmin").' ('.$langs->trans("Responses").')'; +print '
'.$langs->trans("TicketMessageMailIntroLabelAdmin"); print ''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_INTRO', $mail_intro, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70); +$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_INTRO', $mail_intro, '100%', 120, 'dolibarr_mailings', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAIL'), ROWS_2, 70); $doleditor->Create(); print ''; @@ -686,7 +656,7 @@ $mail_signature = $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE ? $conf->global-> print '
'.$langs->trans("TicketMessageMailSignatureLabelAdmin").''; print ''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; -$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70); +$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, '100%', 120, 'dolibarr_mailings', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAIL'), ROWS_2, 70); $doleditor->Create(); print ''; @@ -695,7 +665,7 @@ print '
'; -print $formcategory->buttonsSaveCancel("Save", ''); +print $formcategory->buttonsSaveCancel("Save", '', array(), 0, 'reposition'); print ''; diff --git a/htdocs/admin/ticket_extrafields.php b/htdocs/admin/ticket_extrafields.php index 0a4a851dae2..fc792030ade 100644 --- a/htdocs/admin/ticket_extrafields.php +++ b/htdocs/admin/ticket_extrafields.php @@ -21,6 +21,7 @@ * \brief Page to setup extra fields of ticket */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT."/core/lib/ticket.lib.php"; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -80,7 +81,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/admin/ticket_public.php b/htdocs/admin/ticket_public.php index 88a7db9b1d7..8693da8deb2 100644 --- a/htdocs/admin/ticket_public.php +++ b/htdocs/admin/ticket_public.php @@ -22,6 +22,7 @@ * \brief Page to public interface of module Ticket */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; require_once DOL_DOCUMENT_ROOT."/ticket/class/ticket.class.php"; @@ -42,21 +43,24 @@ $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scandir', 'alpha'); $type = 'ticket'; -$error = 0; /* * Actions */ +$error = 0; +$errors = array(); if ($action == 'setTICKET_ENABLE_PUBLIC_INTERFACE') { if (GETPOST('value')) { - dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', 1, 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', 1, 'chaine', 0, '', $conf->entity); } else { - dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', 0, 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', 0, 'chaine', 0, '', $conf->entity); } -} - -if ($action == 'setvar') { + if (!($res > 0)) { + $error++; + $errors[] = $db->lasterror(); + } +} elseif ($action == 'setvar') { include_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; if (GETPOSTISSET('TICKET_ENABLE_PUBLIC_INTERFACE')) { // only for no js case @@ -64,14 +68,7 @@ if ($action == 'setvar') { $res = dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', $param_enable_public_interface, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; - } - } - - if (GETPOSTISSET('TICKET_EMAIL_MUST_EXISTS')) { // only for no js case - $param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity); - if (!($res > 0)) { - $error++; + $errors[] = $db->lasterror(); } } @@ -80,6 +77,7 @@ if ($action == 'setvar') { $res = dolibarr_set_const($db, 'TICKET_DISABLE_CUSTOMER_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } } @@ -88,10 +86,11 @@ if ($action == 'setvar') { $res = dolibarr_set_const($db, 'TICKET_SHOW_COMPANY_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } } - $topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'nohtml'); + $topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'alphanohtml'); if (!empty($topic_interface)) { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity); } else { @@ -99,16 +98,18 @@ if ($action == 'setvar') { } if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } $text_home = GETPOST('TICKET_PUBLIC_TEXT_HOME', 'restricthtml'); - if (!empty($text_home)) { + if (GETPOSTISSET('TICKET_PUBLIC_TEXT_HOME')) { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $text_home, 'chaine', 0, '', $conf->entity); } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity); } if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } $text_help = GETPOST('TICKET_PUBLIC_TEXT_HELP_MESSAGE', 'restricthtml'); @@ -119,6 +120,7 @@ if ($action == 'setvar') { } if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } $mail_new_ticket = GETPOST('TICKET_MESSAGE_MAIL_NEW', 'restricthtml'); @@ -129,6 +131,7 @@ if ($action == 'setvar') { } if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } $url_interface = GETPOST('TICKET_URL_PUBLIC_INTERFACE', 'alpha'); @@ -139,12 +142,14 @@ if ($action == 'setvar') { } if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } $param_public_notification_new_message_default_email = GETPOST('TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL', $param_public_notification_new_message_default_email, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { @@ -152,10 +157,61 @@ if ($action == 'setvar') { $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); if (!($res > 0)) { $error++; + $errors[] = $db->lasterror(); } } +} elseif (preg_match('/set_(.*)/', $action, $reg)) { + $code = $reg[1]; + $value = GETPOSTISSET($code) ? GETPOST($code, 'int') : 1; + $res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + $errors[] = $db->lasterror(); + } + + if (!$error) { + if ($code == 'TICKET_EMAIL_MUST_EXISTS') { + $res = dolibarr_del_const($db, 'TICKET_CREATE_THIRD_PARTY_WITH_CONTACT_IF_NOT_EXIST', $conf->entity); + if (!($res > 0)) { + $error++; + $errors[] = $db->lasterror(); + } + } elseif ($code == 'TICKET_CREATE_THIRD_PARTY_WITH_CONTACT_IF_NOT_EXIST') { + $res = dolibarr_del_const($db, 'TICKET_EMAIL_MUST_EXISTS', $conf->entity); + if (!($res > 0)) { + $error++; + $errors[] = $db->lasterror(); + } + + // enable captcha by default + // TODO Add a visible option in this setup page for this + $res = dolibarr_set_const($db, 'MAIN_SECURITY_ENABLECAPTCHA_TICKET', 1, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + $errors[] = $db->lasterror(); + } + } + } +} elseif (preg_match('/del_(.*)/', $action, $reg)) { + $code = $reg[1]; + $res = dolibarr_del_const($db, $code, $conf->entity); + if (!($res > 0)) { + $error++; + $errors[] = $db->lasterror(); + } } +if ($action != '') { + if (!$error) { + $db->commit(); + setEventMessage($langs->trans('SetupSaved')); + header("Location: " . $_SERVER['PHP_SELF']); + exit; + } else { + $db->rollback(); + setEventMessages('', $errors, 'errors'); + } +} /* @@ -180,12 +236,10 @@ $head = ticketAdminPrepareHead(); print dol_get_fiche_head($head, 'public', $langs->trans("Module56000Name"), -1, "ticket"); -print ''.$langs->trans("TicketPublicAccess").' : '.dol_buildpath('/public/ticket/index.php', 2).''; - -print dol_get_fiche_end(); - $param = ''; +print '
'; + $enabledisablehtml = $langs->trans("TicketsActivatePublicInterface").' '; if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { // Button off, click to enable @@ -201,9 +255,30 @@ if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print $enabledisablehtml; print ''; -print '

'; +print dol_get_fiche_end(); + + if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { + print '
'; + + + // 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 + + print ''.$langs->trans("TicketPublicAccess").' :
'; + print ''; + print ajax_autoselect('publicurlmember'); + + + print '

'; + + print '
'; print ''; print ''; @@ -220,11 +295,10 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { // Check if email exists print ''.$langs->trans("TicketsEmailMustExist").''; print ''; - if ($conf->use_javascript_ajax) { - print ajax_constantonoff('TICKET_EMAIL_MUST_EXISTS'); + if (empty(getDolGlobalInt('TICKET_EMAIL_MUST_EXISTS'))) { + print '' . img_picto($langs->trans('Disabled'), 'switch_off') . ''; } else { - $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("TICKET_EMAIL_MUST_EXISTS", $arrval, $conf->global->TICKET_EMAIL_MUST_EXISTS); + print '' . img_picto($langs->trans('Enabled'), 'switch_on') . ''; } print ''; print ''; @@ -232,6 +306,20 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print ''; print ''; + // Create third-party with contact if email not linked to a contact + print ''.$langs->trans("TicketCreateThirdPartyWithContactIfNotExist").''; + print ''; + if (empty(getDolGlobalInt('TICKET_CREATE_THIRD_PARTY_WITH_CONTACT_IF_NOT_EXIST'))) { + print '' . img_picto($langs->trans('Disabled'), 'switch_off') . ''; + } else { + print '' . img_picto($langs->trans('Enabled'), 'switch_on') . ''; + } + print ''; + print ''; + print $form->textwithpicto('', $langs->trans("TicketCreateThirdPartyWithContactIfNotExistHelp"), 1, 'help'); + print ''; + print ''; + /*if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // Show logo for module @@ -294,33 +382,33 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { } // Interface topic - $url_interface = $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC; + $url_interface = getDolGlobalString("TICKET_PUBLIC_INTERFACE_TOPIC"); print ''.$langs->trans("TicketPublicInterfaceTopicLabelAdmin").''; print ''; - print ''; + print ''; print ''; print ''; print $form->textwithpicto('', $langs->trans("TicketPublicInterfaceTopicHelp"), 1, 'help'); print ''; - // Texte d'accueil homepage - $public_text_home = $conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans('TicketPublicInterfaceTextHome'); + // Text on home page + $public_text_home = getDolGlobalString('TICKET_PUBLIC_TEXT_HOME', ''.$langs->trans("TicketPublicDesc").''); print ''.$langs->trans("TicketPublicInterfaceTextHomeLabelAdmin").''; print ''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HOME', $public_text_home, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70); + $doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HOME', $public_text_home, '100%', 180, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_2, 70); $doleditor->Create(); print ''; print ''; print $form->textwithpicto('', $langs->trans("TicketPublicInterfaceTextHomeHelpAdmin"), 1, 'help'); print ''; - // Texte d'aide à la saisie du message - $public_text_help_message = $conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE ? $conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE : $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'); + // Text to help to enter a ticket + $public_text_help_message = getDolGlobalString("TICKET_PUBLIC_TEXT_HELP_MESSAGE", $langs->trans('TicketPublicPleaseBeAccuratelyDescribe')); print ''.$langs->trans("TicketPublicInterfaceTextHelpMessageLabelAdmin").''; print ''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HELP_MESSAGE', $public_text_help_message, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70); + $doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HELP_MESSAGE', $public_text_help_message, '100%', 180, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_2, 70); $doleditor->Create(); print ''; print ''; @@ -328,10 +416,10 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print ''; // Url public interface - $url_interface = $conf->global->TICKET_URL_PUBLIC_INTERFACE; + $url_interface = getDolGlobalString("TICKET_URL_PUBLIC_INTERFACE"); print ''.$langs->trans("TicketUrlPublicInterfaceLabelAdmin").''; print ''; - print ''; + print ''; print ''; print ''; print $form->textwithpicto('', $langs->trans("TicketUrlPublicInterfaceHelpAdmin"), 1, 'help'); @@ -341,7 +429,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print '

'; - print_fiche_titre($langs->trans("Emails")); + print load_fiche_titre($langs->trans("Emails")); print '
'; print ''; @@ -361,13 +449,13 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print ''; // Text of email after creatio of a ticket - $mail_mesg_new = $conf->global->TICKET_MESSAGE_MAIL_NEW ? $conf->global->TICKET_MESSAGE_MAIL_NEW : $langs->trans('TicketNewEmailBody'); + $mail_mesg_new = getDolGlobalString("TICKET_MESSAGE_MAIL_NEW", $langs->trans('TicketNewEmailBody')); print ''; print ''; @@ -381,7 +469,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print ajax_constantonoff('TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_ENABLED'); } else { $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_ENABLED", $arrval, $conf->global->TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_ENABLED); + print $form->selectarray("TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_ENABLED", $arrval, getDolGlobalString("TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_ENABLED")); } print ''; print ''; @@ -390,7 +478,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print ''; + print ''; print ''; print ''; diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php index 36136aeef24..779db36fb2f 100644 --- a/htdocs/admin/tools/dolibarr_export.php +++ b/htdocs/admin/tools/dolibarr_export.php @@ -22,6 +22,7 @@ * \brief Page to export database */ +// 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'; @@ -168,11 +169,12 @@ print ''; print ''; -print ''; diff --git a/htdocs/admin/tools/listsessions.php b/htdocs/admin/tools/listsessions.php index cc9aaa356bc..592362b936f 100644 --- a/htdocs/admin/tools/listsessions.php +++ b/htdocs/admin/tools/listsessions.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/admin.lib.php'; diff --git a/htdocs/admin/tools/purge.php b/htdocs/admin/tools/purge.php index f6ce58a40c0..ee95fd7b44e 100644 --- a/htdocs/admin/tools/purge.php +++ b/htdocs/admin/tools/purge.php @@ -25,6 +25,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'; include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -33,7 +34,7 @@ $langs->load("admin"); $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $choice = GETPOST('choice', 'aZ09'); - +$nbsecondsold = GETPOSTINT('nbsecondsold'); // Define filelog to discard it from purge $filelog = ''; @@ -42,6 +43,7 @@ if (!empty($conf->syslog->enabled)) { $filelog = preg_replace('/DOL_DATA_ROOT/i', DOL_DATA_ROOT, $filelog); } +// Security if (!$user->admin) { accessforbidden(); } @@ -64,7 +66,8 @@ if ($action == 'purge' && !preg_match('/^confirm/i', $choice) && ($choice != 'al require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php'; $utils = new Utils($db); - $result = $utils->purgeFiles($choice); + + $result = $utils->purgeFiles($choice, $nbsecondsold); $mesg = $utils->output; setEventMessages($mesg, null, 'mesgs'); @@ -114,8 +117,11 @@ print '>
'; print $form->textwithpicto($langs->trans("TicketNewEmailBodyLabel"), $langs->trans("TicketNewEmailBodyHelp"), 1, 'help'); print ''; print ''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('TICKET_MESSAGE_MAIL_NEW', $mail_mesg_new, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70); + $doleditor = new DolEditor('TICKET_MESSAGE_MAIL_NEW', $mail_mesg_new, '100%', 120, 'dolibarr_mailings', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAIL'), ROWS_2, 70); $doleditor->Create(); print '
'; print $form->textwithpicto($langs->trans("TicketPublicNotificationNewMessageDefaultEmail"), $langs->trans("TicketPublicNotificationNewMessageDefaultEmailHelp"), 1, 'help'); print ''; - print '
'; print $langs->trans("DatabaseName").' : '.$dolibarr_main_db_name.'
'; print '
'; +print '
'; print ''; + print ''; -print ''; -print ''; +print ''; +print '
'; +print ''; print '
'; print '
'.$langs->trans("ExportMethod").''; @@ -195,10 +197,31 @@ print '
'; print '
'; print '
'; +print '
'; -print '
'; +print ''; + +print ''; + +print '
'; print " \n"; -print '
'; +print '
'; $filearray = dol_dir_list($conf->admin->dir_output.'/backup', 'files', 0, '', '', $sortfield, (strtolower($sortorder) == 'asc' ?SORT_ASC:SORT_DESC), 1); -$result = $formfile->list_of_documents($filearray, null, 'systemtools', '', 1, 'backup/', 1, 0, $langs->trans("NoBackupFileAvailable"), 0, $langs->trans("PreviousDumpFiles")); +$result = $formfile->list_of_documents($filearray, null, 'systemtools', '', 1, 'backup/', 1, 0, $langs->trans("NoBackupFileAvailable"), 0, $langs->trans("PreviousDumpFiles"), '', 0, -1, '', '', 'ASC', 1, 0, -1, 'style="height:480px; overflow: auto;"'); print '
'; print '
'; @@ -594,7 +617,7 @@ print load_fiche_titre($title); print '
'; $prefix = 'documents'; $ext = 'zip'; -$file = $prefix.'_'.$dolibarr_main_db_name.'_'.dol_sanitizeFileName(DOL_VERSION).'_'.strftime("%Y%m%d%H%M"); +$file = $prefix.'_'.$dolibarr_main_db_name.'_'.dol_sanitizeFileName(DOL_VERSION).'_'.dol_print_date(dol_now('gmt'), "dayhourlogsmall", 'tzuser'); print '
'; print '
'; @@ -639,10 +662,10 @@ print '
'; print ''; -print '
'; +print '
'; $filearray = dol_dir_list($conf->admin->dir_output.'/documents', 'files', 0, '', '', $sortfield, (strtolower($sortorder) == 'asc' ?SORT_ASC:SORT_DESC), 1); -$result = $formfile->list_of_documents($filearray, null, 'systemtools', '', 1, 'documents/', 1, 0, $langs->trans("NoBackupFileAvailable"), 0, $langs->trans("PreviousArchiveFiles")); +$result = $formfile->list_of_documents($filearray, null, 'systemtools', '', 1, 'documents/', 1, 0, $langs->trans("NoBackupFileAvailable"), 0, $langs->trans("PreviousArchiveFiles"), '', 0, -1, '', '', 'ASC', 1, 0, -1, 'style="height:250px; overflow: auto;"'); print '
'; print '
'; diff --git a/htdocs/admin/tools/dolibarr_import.php b/htdocs/admin/tools/dolibarr_import.php index 77dea6f23ab..8c7576b8bef 100644 --- a/htdocs/admin/tools/dolibarr_import.php +++ b/htdocs/admin/tools/dolibarr_import.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'; // Load translation files required by the page @@ -189,7 +190,7 @@ if (in_array($type, array('mysql', 'mysqli'))) { $param .= " -U ".$dolibarr_main_db_user; $paramcrypted = $param; $paramclear = $param; - /*if (! empty($dolibarr_main_db_pass)) + /*if (!empty($dolibarr_main_db_pass)) { $paramcrypted.=" -p".preg_replace('/./i','*',$dolibarr_main_db_pass); $paramclear.=" -p".$dolibarr_main_db_pass; diff --git a/htdocs/admin/tools/export.php b/htdocs/admin/tools/export.php index d21622d1f68..8299e2198ee 100644 --- a/htdocs/admin/tools/export.php +++ b/htdocs/admin/tools/export.php @@ -23,6 +23,7 @@ * \brief Page to export a database into a dump file */ +// 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'; @@ -56,21 +57,23 @@ if (!$user->admin) { accessforbidden(); } -if ($file && !$what) { - //print DOL_URL_ROOT.'/dolibarr_export.php'; - header("Location: ".DOL_URL_ROOT.'/admin/tools/dolibarr_export.php?msg='.urlencode($langs->trans("ErrorFieldRequired", $langs->transnoentities("ExportMethod"))).(GETPOST('page_y', 'int') ? '&page_y='.GETPOST('page_y', 'int') : '')); - exit; -} - $errormsg = ''; +$utils = new Utils($db); + /* * Actions */ +if ($file && !$what) { + //print DOL_URL_ROOT.'/dolibarr_export.php'; + header("Location: ".DOL_URL_ROOT.'/admin/tools/dolibarr_export.php?msg='.urlencode($langs->trans("ErrorFieldRequired", $langs->transnoentities("ExportMethod"))).(GETPOST('page_y', 'int') ? '&page_y='.GETPOST('page_y', 'int') : '')); + exit; +} + if ($action == 'delete') { - $file = $conf->admin->dir_output.'/'.GETPOST('urlfile'); + $file = $conf->admin->dir_output.'/'.dol_sanitizeFileName(GETPOST('urlfile')); $ret = dol_delete_file($file, 1); if ($ret) { setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs'); @@ -80,11 +83,6 @@ if ($action == 'delete') { $action = ''; } - -/* - * View - */ - $_SESSION["commandbackuplastdone"] = ''; $_SESSION["commandbackuptorun"] = ''; $_SESSION["commandbackupresult"] = ''; @@ -103,13 +101,6 @@ if (!empty($MemoryLimit)) { @ini_set('memory_limit', $MemoryLimit); } - -//$help_url='EN:Backups|FR:Sauvegardes|ES:Copias_de_seguridad'; -//llxHeader('','',$help_url); - -//print load_fiche_titre($langs->trans("Backup"),'','title_setup'); - - // Start with empty buffer $dump_buffer = ''; $dump_buffer_len = 0; @@ -122,9 +113,6 @@ $outputdir = $conf->admin->dir_output.'/backup'; $result = dol_mkdir($outputdir); -$utils = new Utils($db); - - // MYSQL if ($what == 'mysql') { $cmddump = GETPOST("mysqldump", 'none'); // Do not sanitize here with 'alpha', will be sanitize later by dol_sanitizePathName and escapeshellarg @@ -166,7 +154,7 @@ if ($what == 'postgresql') { $cmddump = dol_sanitizePathName($cmddump); /* Not required, the command is output on screen but not ran for pgsql - if (! empty($dolibarr_main_restrict_os_commands)) + if (!empty($dolibarr_main_restrict_os_commands)) { $arrayofallowedcommand=explode(',', $dolibarr_main_restrict_os_commands); dol_syslog("Command are restricted to ".$dolibarr_main_restrict_os_commands.". We check that one of this command is inside ".$cmddump); @@ -216,7 +204,16 @@ if ($errormsg) { }*/ } + + +/* + * View + */ + +top_httphead(); + $db->close(); // Redirect to backup page header("Location: dolibarr_export.php".(GETPOST('page_y', 'int') ? '?page_y='.GETPOST('page_y', 'int') : '')); +exit(); diff --git a/htdocs/admin/tools/export_files.php b/htdocs/admin/tools/export_files.php index bc627cc14f0..35e1194c80e 100644 --- a/htdocs/admin/tools/export_files.php +++ b/htdocs/admin/tools/export_files.php @@ -27,6 +27,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/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -127,7 +128,7 @@ $result = dol_mkdir($outputdir); $utils = new Utils($db); -if ($export_type == 'externalmodule' && ! empty($what)) { +if ($export_type == 'externalmodule' && !empty($what)) { $fulldirtocompress = DOL_DOCUMENT_ROOT.'/custom/'.dol_sanitizeFileName($what); } else { $fulldirtocompress = DOL_DATA_ROOT; @@ -205,7 +206,12 @@ if ($compression == 'zip') { print $errormsg; } + +// Output export + if ($export_type != 'externalmodule' || empty($what)) { + top_httphead(); + if ($errormsg) { setEventMessages($langs->trans("Error")." : ".$errormsg, null, 'errors'); } else { @@ -218,12 +224,15 @@ if ($export_type != 'externalmodule' || empty($what)) { $returnto = 'dolibarr_export.php'; header("Location: ".$returnto); + exit(); } else { + top_httphead('application/zip'); + $zipname = $outputdir."/".$file; // Then download the zipped file. - header('Content-Type: application/zip'); + header('Content-disposition: attachment; filename='.basename($zipname)); header('Content-Length: '.filesize($zipname)); readfile($zipname); diff --git a/htdocs/admin/tools/index.php b/htdocs/admin/tools/index.php index 4c89ab60989..3941b29ce6e 100644 --- a/htdocs/admin/tools/index.php +++ b/htdocs/admin/tools/index.php @@ -22,6 +22,7 @@ * \brief Page d'accueil de l'espace outils admin */ +// Load Dolibarr environment require '../../main.inc.php'; // Load translation files required by the page diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php index 1a45466141b..3e04243eb72 100644 --- a/htdocs/admin/tools/listevents.php +++ b/htdocs/admin/tools/listevents.php @@ -24,6 +24,7 @@ * \brief List of security events */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/events.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -302,7 +303,7 @@ if ($result) { $center = ''; if ($num) { - $center = ''.$langs->trans("Purge").''; + $center = ''.$langs->trans("Purge").''; } print ''; @@ -418,7 +419,7 @@ if ($result) { $userstatic->status = $obj->status; print $userstatic->getLoginUrl(1); - if (!empty($conf->multicompany->enabled) && $userstatic->admin && !$userstatic->entity) { + if (isModEnabled('multicompany') && $userstatic->admin && !$userstatic->entity) { print img_picto($langs->trans("SuperAdministrator"), 'redstar', 'class="valignmiddle paddingleft"'); } elseif ($userstatic->admin) { print img_picto($langs->trans("Administrator"), 'star', 'class="valignmiddle paddingleft"'); @@ -459,7 +460,7 @@ if ($result) { // More informations print '
'; $htmltext = ''.$langs->trans("UserAgent").': '.($obj->user_agent ? dol_string_nohtmltag($obj->user_agent) : $langs->trans("Unknown")); - $htmltext .= '
'.$langs->trans("PrefixSession").': '.($obj->prefix_session ? dol_string_nohtmltag($obj->prefix_session) : $langs->trans("Unknown")); + $htmltext .= '
'.$langs->trans("SuffixSessionName").' (DOLSESSID_...): '.($obj->prefix_session ? dol_string_nohtmltag($obj->prefix_session) : $langs->trans("Unknown")); print $form->textwithpicto('', $htmltext); print '
'; //if ($choice != 'confirm_allfiles') @@ -129,7 +135,7 @@ print ''; if (preg_match('/^confirm/i', $choice)) { print '
'; $formquestion = array(); - print $form->formconfirm($_SERVER["PHP_SELF"].'?choice=allfiles', $langs->trans('Purge'), $langs->trans('ConfirmPurge').img_warning().' ', 'purge', $formquestion, 'no', 2); + print $form->formconfirm($_SERVER["PHP_SELF"].'?choice=allfiles&nbsecondsold='.$nbsecondsold, $langs->trans('Purge'), $langs->trans('ConfirmPurge').img_warning().' ', 'purge', $formquestion, 'no', 2); } // End of page diff --git a/htdocs/admin/tools/update.php b/htdocs/admin/tools/update.php index ea9ca86e994..2bed274fd72 100644 --- a/htdocs/admin/tools/update.php +++ b/htdocs/admin/tools/update.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/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -61,7 +62,11 @@ $version = '0.0'; if ($action == 'getlastversion') { $result = getURLContent('https://sourceforge.net/projects/dolibarr/rss'); //var_dump($result['content']); - $sfurl = simplexml_load_string($result['content'], 'SimpleXMLElement', LIBXML_NOCDATA|LIBXML_NONET); + if (function_exists('simplexml_load_string')) { + $sfurl = simplexml_load_string($result['content'], 'SimpleXMLElement', LIBXML_NOCDATA|LIBXML_NONET); + } else { + $sfurl = 'xml_not_available'; + } } @@ -82,7 +87,10 @@ if (function_exists('curl_init')) { $conf->global->MAIN_USE_RESPONSE_TIMEOUT = 10; if ($action == 'getlastversion') { - if ($sfurl) { + if ($sfurl == 'xml_not_available') { + $langs->load("errors"); + print $langs->trans("LastStableVersion").' : '.$langs->trans("ErrorFunctionNotAvailableInPHP", 'simplexml_load_string').'
'; + } elseif ($sfurl) { $i = 0; while (!empty($sfurl->channel[0]->item[$i]->title) && $i < 10000) { $title = $sfurl->channel[0]->item[$i]->title; diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index bb42808ebd4..abb5ebfd6ba 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -22,6 +22,7 @@ * \brief Page to show translation 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/files.lib.php'; @@ -90,7 +91,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; 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 $transkey = ''; $transvalue = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } @@ -271,7 +272,8 @@ $recordtoshow = array(); // Search modules dirs $modulesdir = dolGetModulesDirs(); -$nbtotaloffiles = 0; +$listoffiles = array(); +$listoffilesexternalmodules = array(); // Search into dir of modules (the $modulesdir is already a list that loop on $conf->file->dol_document_root) $i = 0; @@ -298,7 +300,10 @@ foreach ($modulesdir as $keydir => $tmpsearchdir) { if ($result < 0) { print 'Failed to load language file '.$tmpfile.'
'."\n"; } else { - $nbtotaloffiles++; + $listoffiles[$langkey] = $tmpfile; + if (strpos($langkey, '@') !== false) { + $listoffilesexternalmodules[$langkey] = $tmpfile; + } } //print 'After loading lang '.$langkey.', newlang has '.count($newlang->tab_translate).' records
'."\n"; @@ -307,6 +312,8 @@ foreach ($modulesdir as $keydir => $tmpsearchdir) { $i++; } +$nbtotaloffiles = count($listoffiles); +$nbtotaloffilesexternal = count($listoffilesexternalmodules); if ($mode == 'overwrite') { print ''; @@ -340,7 +347,7 @@ if ($mode == 'overwrite') { print_liste_field_titre("Language_en_US_es_MX_etc", $_SERVER["PHP_SELF"], 'lang,transkey', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("Key", $_SERVER["PHP_SELF"], 'transkey', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("NewTranslationStringToShow", $_SERVER["PHP_SELF"], 'transvalue', '', $param, '', $sortfield, $sortorder); - //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity", $_SERVER["PHP_SELF"], 'entity,transkey', '', $param, '', $sortfield, $sortorder); + //if (isModEnabled('multicompany') && !$user->entity) print_liste_field_titre("Entity", $_SERVER["PHP_SELF"], 'entity,transkey', '', $param, '', $sortfield, $sortorder); print ''; print "\n"; @@ -358,7 +365,7 @@ if ($mode == 'overwrite') { print ''; print ''; print ''; - print ''; + print ''; print "\n"; print ''; @@ -438,9 +445,9 @@ if ($mode == 'overwrite') { if ($mode == 'searchkey') { $nbempty = 0; - /*var_dump($langcode); - var_dump($transkey); - var_dump($transvalue);*/ + //var_dump($langcode); + //var_dump($transkey); + //var_dump($transvalue); if (empty($langcode) || $langcode == '-1') { $nbempty++; } @@ -477,7 +484,7 @@ if ($mode == 'searchkey') { //print 'param='.$param.' $_SERVER["PHP_SELF"]='.$_SERVER["PHP_SELF"].' num='.$num.' page='.$page.' nbtotalofrecords='.$nbtotalofrecords." sortfield=".$sortfield." sortorder=".$sortorder; $title = $langs->trans("Translation"); if ($nbtotalofrecords > 0) { - $title .= ' ('.$nbtotalofrecords.' / '.$nbtotalofrecordswithoutfilters.' - '.$nbtotaloffiles.' '.$langs->trans("Files").')'; + $title .= ' ('.$nbtotalofrecords.' / '.$nbtotalofrecordswithoutfilters.' - '.$nbtotaloffiles.' '.$langs->trans("Files").')'; } print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, -1 * $nbtotalofrecords, '', 0, '', '', $limit, 0, 0, 1); @@ -498,7 +505,7 @@ if ($mode == 'searchkey') { print ''; print ''; // Limit to superadmin - /*if (! empty($conf->multicompany->enabled) && !$user->entity) + /*if (isModEnabled('multicompany') && !$user->entity) { print ''; print ''; @@ -519,7 +526,7 @@ if ($mode == 'searchkey') { print_liste_field_titre("Language_en_US_es_MX_etc", $_SERVER["PHP_SELF"], 'lang,transkey', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("Key", $_SERVER["PHP_SELF"], 'transkey', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("CurrentTranslationString", $_SERVER["PHP_SELF"], 'transvalue', '', $param, '', $sortfield, $sortorder); - //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity", $_SERVER["PHP_SELF"], 'entity,transkey', '', $param, '', $sortfield, $sortorder); + //if (isModEnabled('multicompany') && !$user->entity) print_liste_field_titre("Entity", $_SERVER["PHP_SELF"], 'entity,transkey', '', $param, '', $sortfield, $sortorder); print ''; print "\n"; @@ -548,7 +555,7 @@ if ($mode == 'searchkey') { break; } print ''.$langcode.''.$key.''; - $titleforvalue = $langs->trans("Translation").' en_US for key '.$key.':
'.($langsenfileonly->tab_translate[$key] ? $langsenfileonly->trans($key) : ''.$langs->trans("None").''); + $titleforvalue = $langs->trans("Translation").' en_US for key '.$key.':
'.(!empty($langsenfileonly->tab_translate[$key]) ? $langsenfileonly->trans($key) : ''.$langs->trans("None").''); print ''; print dol_escape_htmltag($val); print ''; @@ -603,7 +610,7 @@ if ($mode == 'searchkey') { $htmltext = $langs->trans("TransKeyWithoutOriginalValue", $key); print $form->textwithpicto('', $htmltext, 1, 'warning'); } - /*if (! empty($conf->multicompany->enabled) && !$user->entity) + /*if (isModEnabled('multicompany') && !$user->entity) { print ''.$val.''; }*/ diff --git a/htdocs/admin/triggers.php b/htdocs/admin/triggers.php index a1f8496ad6d..2fc450af8d0 100644 --- a/htdocs/admin/triggers.php +++ b/htdocs/admin/triggers.php @@ -20,6 +20,7 @@ * \brief Page to view triggers */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; diff --git a/htdocs/admin/user.php b/htdocs/admin/user.php index 53de8fe2502..20eb7a0c0b2 100644 --- a/htdocs/admin/user.php +++ b/htdocs/admin/user.php @@ -28,6 +28,7 @@ * \brief Page to setup user module */ +// 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'; @@ -35,9 +36,6 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'members', 'users')); -if (!$user->admin) { - accessforbidden(); -} $extrafields = new ExtraFields($db); @@ -51,6 +49,10 @@ $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scandir', 'alpha'); $type = 'user'; +if (empty($user->admin)) { + accessforbidden(); +} + /* * Action @@ -58,6 +60,8 @@ $type = 'user'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; +$reg = array(); + if ($action == 'set_default') { $ret = addDocumentModel($value, $type, $label, $scandir); $res = true; @@ -83,6 +87,9 @@ if ($action == 'set_default') { $ret = addDocumentModel($value, $type, $label, $scandir); } $res = true; +} elseif ($action == 'unsetdoc') { + // We disable the template + dolibarr_del_const($db, "USER_ADDON_PDF_ODT", $conf->entity); } elseif (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { $code = $reg[1]; if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) { @@ -118,6 +125,9 @@ if ($action == 'set_default') { $form = new Form($db); +dol_mkdir(DOL_DATA_ROOT.'/doctemplates/users'); +dol_mkdir(DOL_DATA_ROOT.'/doctemplates/usergroups'); + $help_url = 'EN:Module_Users|FR:Module_Utilisateurs|ES:Módulo_Usuarios'; llxHeader('', $langs->trans("UsersSetup"), $help_url); @@ -264,14 +274,17 @@ foreach ($dirmodels as $reldir) { print ''; } else { print ''."\n"; - print 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; + print 'scandir).'&label='.urlencode($module->name).'">'; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; print ""; } // Defaut print ''; if (getDolGlobalString('USER_ADDON_PDF_ODT') == $name) { - print img_picto($langs->trans("Default"), 'on'); + //print img_picto($langs->trans("Default"), 'on'); + print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Default"), 'on').''; } else { print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; } diff --git a/htdocs/admin/usergroup.php b/htdocs/admin/usergroup.php index 709b60068f7..ff2a1a180fe 100644 --- a/htdocs/admin/usergroup.php +++ b/htdocs/admin/usergroup.php @@ -27,6 +27,7 @@ * \brief Page to setup usergroup module */ +// 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'; @@ -58,7 +59,7 @@ if ($action == 'set_default') { } elseif ($action == 'del_default') { $ret = delDocumentModel($value, $type); if ($ret > 0) { - if ($conf->global->USERGROUP_ADDON_PDF_ODT == "$value") { + if (getDolGlobalString('USERGROUP_ADDON_PDF_ODT') == "$value") { dolibarr_del_const($db, 'USERGROUP_ADDON_PDF_ODT', $conf->entity); } } @@ -202,7 +203,7 @@ foreach ($dirmodels as $reldir) { // Defaut print ''; - if ($conf->global->USERGROUP_ADDON_PDF == $name) { + if (getDolGlobalString('USERGROUP_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').''; diff --git a/htdocs/admin/webhook.php b/htdocs/admin/webhook.php new file mode 100644 index 00000000000..b589eac4079 --- /dev/null +++ b/htdocs/admin/webhook.php @@ -0,0 +1,722 @@ + + * Copyright (C) 2022 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 . + */ + +/** + * \file webhook/admin/webhook.php + * \ingroup webhook + * \brief Webhook setup page. + */ + +// 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"); +} + +global $langs, $user; + +// Libraries +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; +require_once DOL_DOCUMENT_ROOT.'/webhook/lib/webhook.lib.php'; + +// Translations +$langs->loadLangs(array("admin", "webhook")); + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('webhooksetup', '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'; + +$arrayofparameters = array( + 'WEBHOOK_MYPARAM1'=>array('type'=>'string', 'css'=>'minwidth500' ,'enabled'=>0), + //'WEBHOOK_MYPARAM2'=>array('type'=>'textarea','enabled'=>1), + //'WEBHOOK_MYPARAM3'=>array('type'=>'category:'.Categorie::TYPE_CUSTOMER, 'enabled'=>1), + //'WEBHOOK_MYPARAM4'=>array('type'=>'emailtemplate:thirdparty', 'enabled'=>1), + //'WEBHOOK_MYPARAM5'=>array('type'=>'yesno', 'enabled'=>1), + //'WEBHOOK_MYPARAM5'=>array('type'=>'thirdparty_type', 'enabled'=>1), + //'WEBHOOK_MYPARAM6'=>array('type'=>'securekey', 'enabled'=>1), + //'WEBHOOK_MYPARAM7'=>array('type'=>'product', 'enabled'=>1), +); + +$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 = 0; +// Convert arrayofparameter into a formSetup object +if ($useFormSetup && (float) DOL_VERSION >= 15) { + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php'; + $formSetup = new FormSetup($db); + + // you can use the param convertor + $formSetup->addItemsFromParamsArray($arrayofparameters); + + // or use the new system see exemple as follow (or use both because you can ;-) ) + + /* + // Hôte + $item = $formSetup->newItem('NO_PARAM_JUST_TEXT'); + $item->fieldOverride = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST']; + $item->cssClass = 'minwidth500'; + + // Setup conf WEBHOOK_MYPARAM1 as a simple string input + $item = $formSetup->newItem('WEBHOOK_MYPARAM1'); + + // Setup conf WEBHOOK_MYPARAM1 as a simple textarea input but we replace the text of field title + $item = $formSetup->newItem('WEBHOOK_MYPARAM2'); + $item->nameText = $item->getNameText().' more html text '; + + // Setup conf WEBHOOK_MYPARAM3 + $item = $formSetup->newItem('WEBHOOK_MYPARAM3'); + $item->setAsThirdpartyType(); + + // Setup conf WEBHOOK_MYPARAM4 : exemple of quick define write style + $formSetup->newItem('WEBHOOK_MYPARAM4')->setAsYesNo(); + + // Setup conf WEBHOOK_MYPARAM5 + $formSetup->newItem('WEBHOOK_MYPARAM5')->setAsEmailTemplate('thirdparty'); + + // Setup conf WEBHOOK_MYPARAM6 + $formSetup->newItem('WEBHOOK_MYPARAM6')->setAsSecureKey()->enabled = 0; // disabled + + // Setup conf WEBHOOK_MYPARAM7 + $formSetup->newItem('WEBHOOK_MYPARAM7')->setAsProduct(); + */ + + $setupnotempty = count($formSetup->items); +} + + +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; + +if ($action == 'updateMask') { + $maskconst = GETPOST('maskconst', 'alpha'); + $maskvalue = GETPOST('maskvalue', 'alpha'); + + if ($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/webhook/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0); + if (file_exists($file)) { + $filefound = 1; + $classname = "pdf_".$modele; + 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=".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 = 'WEBHOOK_'.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 = 'WEBHOOK_'.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 = 'WEBHOOK_'.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 = 'WEBHOOK_'.strtoupper($tmpobjectkey).'_ADDON_PDF'; + dolibarr_del_const($db, $constforval, $conf->entity); + } +} + + + +/* + * View + */ + +$form = new Form($db); + +$help_url = ''; +$page_name = "WebhookSetup"; + +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 = webhookAdminPrepareHead(); +print dol_get_fiche_head($head, 'settings', $langs->trans($page_name), -1, "webhook@webhook"); + +// Setup page goes here +echo ''.$langs->trans("WebhookSetupPage").'

'; + + +if ($action == 'edit') { + if ($useFormSetup && (float) DOL_VERSION >= 15) { + print $formSetup->generateOutput(true); + } else { + print '
'; + print ''; + print ''; + + print ''; + print ''; + + foreach ($arrayofparameters as $constname => $val) { + if ($val['enabled']==1) { + $setupnotempty++; + print ''; + } + } + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + $tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : ''); + print ''.$form->textwithpicto($langs->trans($constname), $tooltiphelp, 1, 'info', '', 0, 3, 'tootips'.$constname).''; + print ''; + + 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->Create(); + } elseif ($val['type'] == 'yesno') { + print $form->selectyesno($constname, $conf->global->{$constname}, 1); + } elseif (preg_match('/emailtemplate:/', $val['type'])) { + include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + + $tmp = explode(':', $val['type']); + $nboftemplates = $formmail->fetchAllEMailTemplate($tmp[1], $user, null, 1); // We set lang=null to get in priority record with no lang + //$arraydefaultmessage = $formmail->getEMailTemplate($db, $tmp[1], $user, null, 0, 1, ''); + $arrayofmessagename = array(); + if (is_array($formmail->lines_model)) { + foreach ($formmail->lines_model as $modelmail) { + //var_dump($modelmail); + $moreonlabel = ''; + if (!empty($arrayofmessagename[$modelmail->label])) { + $moreonlabel = ' (' . $langs->trans("SeveralLangugeVariatFound") . ')'; + } + // The 'label' is the key that is unique if we exclude the language + $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); + } 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'; + $formother = new FormOther($db); + + $tmp = explode(':', $val['type']); + 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'; + $formcompany = new FormCompany($db); + print $formcompany->selectProspectCustomerType($conf->global->{$constname}, $constname); + } elseif ($val['type'] == 'securekey') { + print ''; + if (!empty($conf->use_javascript_ajax)) { + 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 (isModEnabled("product") || isModEnabled("service")) { + $selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname); + $form->select_produits($selected, $constname, '', 0); + } + } else { + print ''; + } + print '
'; + + print '
'; + print ''; + print '
'; + + print '
'; + } + + print '
'; +} else { + if ($useFormSetup && (float) DOL_VERSION >= 15) { + if (!empty($formSetup->items)) { + print $formSetup->generateOutput(); + } + } else { + if (!empty($arrayofparameters)) { + print ''; + print ''; + + foreach ($arrayofparameters as $constname => $val) { + if ($val['enabled']==1) { + $setupnotempty++; + print ''; + } + } + + print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; + $tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : ''); + print $form->textwithpicto($langs->trans($constname), $tooltiphelp); + print ''; + + if ($val['type'] == 'textarea') { + print dol_nl2br($conf->global->{$constname}); + } elseif ($val['type']== 'html') { + print $conf->global->{$constname}; + } elseif ($val['type'] == 'yesno') { + print ajax_constantonoff($constname); + } elseif (preg_match('/emailtemplate:/', $val['type'])) { + 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'); + } + print $langs->trans($template->label); + } elseif (preg_match('/category:/', $val['type'])) { + $c = new Categorie($db); + $result = $c->fetch($conf->global->{$constname}); + if ($result < 0) { + setEventMessages(null, $c->errors, 'errors'); + } elseif ($result > 0 ) { + $ways = $c->print_all_ways(' >> ', 'none', 0, 1); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text + $toprint = array(); + foreach ($ways as $way) { + $toprint[] = '
  • color ? ' style="background: #' . $c->color . ';"' : ' style="background: #bbb"') . '>' . $way . '
  • '; + } + print '
      ' . implode(' ', $toprint) . '
    '; + } + } elseif (preg_match('/thirdparty_type/', $val['type'])) { + if ($conf->global->{$constname}==2) { + print $langs->trans("Prospect"); + } elseif ($conf->global->{$constname}==3) { + print $langs->trans("ProspectCustomer"); + } elseif ($conf->global->{$constname}==1) { + print $langs->trans("Customer"); + } elseif ($conf->global->{$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->ref; + } elseif ($resprod < 0) { + setEventMessages(null, $object->errors, "errors"); + } + } else { + print $conf->global->{$constname}; + } + print '
    '; + } + } + + if ($setupnotempty) { + print '
    '; + print ''.$langs->trans("Modify").''; + print '
    '; + } else { + //print '
    '.$langs->trans("NothingToSetup"); + } +} + + +$moduledir = 'webhook'; +$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 = 'WEBHOOK_'.strtoupper($myTmpObjectKey).'_ADDON'; + if ($conf->global->$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 = 'WEBHOOK_'.strtoupper($myTmpObjectKey).'_ADDON'; + if ($conf->global->$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') { + 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/admin/website.php b/htdocs/admin/website.php index b5098bfd3ce..3c348d71a12 100644 --- a/htdocs/admin/website.php +++ b/htdocs/admin/website.php @@ -21,6 +21,7 @@ * \brief Page to administer web sites */ +// 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'; @@ -95,7 +96,7 @@ $tabfield[1] = "ref,description,virtualhost,position,date_creation"; // Nom des champs d'edition pour modification d'un enregistrement $tabfieldvalue = array(); -$tabfieldvalue[1] = "ref,description,virtualhost,position"; +$tabfieldvalue[1] = "ref,description,virtualhost,position,entity"; // Nom des champs dans la table pour insertion d'un enregistrement $tabfieldinsert = array(); @@ -109,11 +110,11 @@ $tabrowid[1] = ""; // Condition to show dictionary in setup page $tabcond = array(); -$tabcond[1] = (!empty($conf->website->enabled)); +$tabcond[1] = (isModEnabled('website')); // List of help for fields $tabhelp = array(); -$tabhelp[1] = array('ref'=>$langs->trans("EnterAnyCode"), 'virtualhost'=>$langs->trans("SetHereVirtualHost", DOL_DATA_ROOT.'/website/websiteref')); +$tabhelp[1] = array('ref'=>$langs->trans("EnterAnyCode"), 'virtualhost'=>$langs->trans("SetHereVirtualHost", DOL_DATA_ROOT.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/websiteref')); // List of check for fields (NOT USED YET) $tabfieldcheck = array(); @@ -271,8 +272,8 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) { if ($resql) { $newname = dol_sanitizeFileName(GETPOST('ref', 'aZ09')); if ($newname != $website->ref) { - $srcfile = DOL_DATA_ROOT.'/website/'.$website->ref; - $destfile = DOL_DATA_ROOT.'/website/'.$newname; + $srcfile = DOL_DATA_ROOT.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/'.$website->ref; + $destfile = DOL_DATA_ROOT.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/'.$newname; if (dol_is_dir($destfile)) { $error++; diff --git a/htdocs/admin/website_options.php b/htdocs/admin/website_options.php index f6c92888384..0a749741152 100644 --- a/htdocs/admin/website_options.php +++ b/htdocs/admin/website_options.php @@ -21,6 +21,7 @@ * \brief Page to administer web sites */ +// 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'; @@ -112,7 +113,7 @@ if ($action == 'edit') { foreach ($arrayofparameters as $key => $val) { print ''; print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip')); - print ''; + print ''; } print ''; @@ -130,7 +131,7 @@ if ($action == 'edit') { foreach ($arrayofparameters as $key => $val) { print ''; print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip')); - print ''.$conf->global->$key.''; + print ''.getDolGlobalString($key).''; } print ''; diff --git a/htdocs/admin/workflow.php b/htdocs/admin/workflow.php index a68f49e36e3..824643093ad 100644 --- a/htdocs/admin/workflow.php +++ b/htdocs/admin/workflow.php @@ -24,6 +24,7 @@ * \brief Workflows setup page */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -62,13 +63,13 @@ $workflowcodes = array( 'WORKFLOW_PROPAL_AUTOCREATE_ORDER'=>array( 'family'=>'create', 'position'=>10, - 'enabled'=>(!empty($conf->propal->enabled) && !empty($conf->commande->enabled)), + 'enabled'=>(isModEnabled("propal") && isModEnabled('commande')), 'picto'=>'order' ), 'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array( 'family'=>'create', 'position'=>20, - 'enabled'=>(!empty($conf->commande->enabled) && !empty($conf->facture->enabled)), + 'enabled'=>(isModEnabled('commande') && isModEnabled('facture')), 'picto'=>'bill' ), 'WORKFLOW_TICKET_CREATE_INTERVENTION' => array ( @@ -84,14 +85,14 @@ $workflowcodes = array( 'WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL'=>array( 'family'=>'classify_proposal', 'position'=>30, - 'enabled'=>(!empty($conf->propal->enabled) && !empty($conf->commande->enabled)), + 'enabled'=>(isModEnabled("propal") && isModEnabled('commande')), 'picto'=>'propal', 'warning'=>'' ), 'WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL'=>array( 'family'=>'classify_proposal', 'position'=>31, - 'enabled'=>(!empty($conf->propal->enabled) && !empty($conf->facture->enabled)), + 'enabled'=>(isModEnabled("propal") && isModEnabled('facture')), 'picto'=>'propal', 'warning'=>'' ), @@ -100,19 +101,19 @@ $workflowcodes = array( 'WORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING'=>array( // when shipping validated 'family'=>'classify_order', 'position'=>40, - 'enabled'=>(!empty($conf->expedition->enabled) && !empty($conf->commande->enabled)), + 'enabled'=>(isModEnabled("expedition") && isModEnabled('commande')), 'picto'=>'order' ), 'WORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED'=>array( // when shipping closed 'family'=>'classify_order', 'position'=>41, - 'enabled'=>(!empty($conf->expedition->enabled) && !empty($conf->commande->enabled)), + 'enabled'=>(isModEnabled("expedition") && isModEnabled('commande')), 'picto'=>'order' ), 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER'=>array( 'family'=>'classify_order', 'position'=>42, - 'enabled'=>(!empty($conf->facture->enabled) && !empty($conf->commande->enabled)), + 'enabled'=>(isModEnabled('facture') && isModEnabled('commande')), 'picto'=>'order', 'warning'=>'' ), // For this option, if module invoice is disabled, it does not exists, so "Classify billed" for order must be done manually from order card. @@ -123,7 +124,7 @@ $workflowcodes = array( 'WORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL'=>array( 'family'=>'classify_supplier_proposal', 'position'=>60, - '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))), + 'enabled'=>(isModEnabled('supplier_proposal') && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))), 'picto'=>'supplier_proposal', 'warning'=>'' ), @@ -132,7 +133,7 @@ $workflowcodes = array( 'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION'=>array( 'family'=>'classify_supplier_order', 'position'=>63, - 'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && (!empty($conf->reception->enabled)) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_order->enabled))), + 'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && (isModEnabled("reception")) && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_order->enabled))), 'picto'=>'supplier_order', 'warning'=>'' ), @@ -140,7 +141,7 @@ $workflowcodes = array( 'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED'=>array( 'family'=>'classify_supplier_order', 'position'=>64, - 'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && (!empty($conf->reception->enabled)) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_order->enabled))), + 'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && (isModEnabled("reception")) && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || empty($conf->supplier_order->enabled))), 'picto'=>'supplier_order', 'warning'=>'' ), @@ -148,7 +149,7 @@ $workflowcodes = array( 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER'=>array( 'family'=>'classify_supplier_order', 'position'=>65, - 'enabled'=>((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)), + 'enabled'=>((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")), 'picto'=>'supplier_order', 'warning'=>'' ), @@ -157,7 +158,7 @@ $workflowcodes = array( 'WORKFLOW_BILL_ON_RECEPTION'=>array( 'family'=>'classify_reception', 'position'=>80, - 'enabled'=>(!empty($conf->reception->enabled) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))), + 'enabled'=>(isModEnabled("reception") && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))), 'picto'=>'reception' ), @@ -165,7 +166,7 @@ $workflowcodes = array( 'WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE' => array( 'family' => 'classify_shipping', 'position' => 90, - 'enabled' => ! empty($conf->expedition->enabled) && ! empty($conf->facture->enabled), + 'enabled' => isModEnabled("expedition") && isModEnabled("facture"), 'picto' => 'shipment' ), @@ -173,13 +174,13 @@ $workflowcodes = array( 'WORKFLOW_TICKET_LINK_CONTRACT' => array( 'family' => 'link_ticket', 'position' => 75, - 'enabled' => ! empty($conf->ticket->enabled) && ! empty($conf->contract->enabled), + 'enabled' => !empty($conf->ticket->enabled) && !empty($conf->contract->enabled), 'picto' => 'ticket' ), 'WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS' => array( 'family' => 'link_ticket', 'position' => 76, - 'enabled' => ! empty($conf->ticket->enabled) && ! empty($conf->contract->enabled), + 'enabled' => !empty($conf->ticket->enabled) && !empty($conf->contract->enabled), 'picto' => 'ticket' ), ); diff --git a/htdocs/admin/workstation.php b/htdocs/admin/workstation.php index 58118827ed4..bdd7ba662cd 100644 --- a/htdocs/admin/workstation.php +++ b/htdocs/admin/workstation.php @@ -188,7 +188,7 @@ if ($action == 'edit') { print ''; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); print $form->textwithpicto($langs->trans($key), $tooltiphelp); - print ''; + print ''; } print ''; @@ -209,7 +209,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.''; + print ''.getDolGlobalString($key).''; } print ''; @@ -295,7 +295,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; $constforvar = 'WORKSTATION_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -437,7 +437,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'WORKSTATION_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + if (getDolGlobalString($constforvar) == $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').''; diff --git a/htdocs/api/admin/index.php b/htdocs/api/admin/index.php index 82486e836bc..cd1208516e3 100644 --- a/htdocs/api/admin/index.php +++ b/htdocs/api/admin/index.php @@ -25,6 +25,7 @@ * \brief Page to setup Webservices REST 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/files.lib.php'; diff --git a/htdocs/api/class/api.class.php b/htdocs/api/class/api.class.php index fa21c37649f..0ef143d36ad 100644 --- a/htdocs/api/class/api.class.php +++ b/htdocs/api/class/api.class.php @@ -88,9 +88,9 @@ class DolibarrApi // phpcs:enable // TODO Use type detected in $object->fields if (in_array($field, array('note', 'note_private', 'note_public', 'desc', 'description'))) { - return checkVal($value, 'restricthtml'); + return sanitizeVal($value, 'restricthtml'); } else { - return checkVal($value, 'alphanohtml'); + return sanitizeVal($value, 'alphanohtml'); } } @@ -115,6 +115,8 @@ class DolibarrApi // Remove linkedObjects. We should already have linkedObjectsIds that avoid huge responses unset($object->linkedObjects); + unset($object->linkedObjectsFullLoaded); + //unset($object->lines[$i]->linked_objects); // This is the array to create linked object during create unset($object->fields); unset($object->oldline); @@ -139,6 +141,7 @@ class DolibarrApi unset($object->projet); // Should be fk_project unset($object->project); // Should be fk_project + unset($object->fk_projet); // Should be fk_project unset($object->author); // Should be fk_user_author unset($object->timespent_old_duration); unset($object->timespent_id); @@ -160,8 +163,8 @@ class DolibarrApi unset($object->statuts_short); unset($object->statuts_logo); unset($object->statuts_long); - unset($object->labelStatus); - unset($object->labelStatusShort); + //unset($object->labelStatus); + //unset($object->labelStatusShort); unset($object->stats_propale); unset($object->stats_commande); diff --git a/htdocs/api/class/api_documents.class.php b/htdocs/api/class/api_documents.class.php index 9bf7dd7c117..d4d652f3e74 100644 --- a/htdocs/api/class/api_documents.class.php +++ b/htdocs/api/class/api_documents.class.php @@ -568,10 +568,9 @@ class Documents extends DolibarrApi { global $db, $conf; - /*var_dump($modulepart); - var_dump($filename); - var_dump($filecontent); - exit;*/ + //var_dump($modulepart); + //var_dump($filename); + //var_dump($filecontent);exit; if (empty($modulepart)) { throw new RestException(400, 'Modulepart not provided.'); @@ -611,6 +610,16 @@ class Documents extends DolibarrApi require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; $object = new FactureFournisseur($this->db); + } elseif ($modulepart == 'commande' || $modulepart == 'order') { + $modulepart = 'commande'; + + require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + $object = new Commande($this->db); + } elseif ($modulepart == 'commande_fournisseur' || $modulepart == 'supplier_order') { + $modulepart = 'supplier_order'; + + require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; + $object = new CommandeFournisseur($this->db); } elseif ($modulepart == 'project') { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; $object = new Project($this->db); @@ -669,7 +678,7 @@ class Documents extends DolibarrApi } // Special cases that need to use get_exdir to get real dir of object - // If future, all object should use this to define path of documents. + // In future, all object should use this to define path of documents. if ($modulepart == 'supplier_invoice') { $tmpreldir = get_exdir($object->id, 2, 0, 0, $object, 'invoice_supplier'); } diff --git a/htdocs/api/class/api_login.class.php b/htdocs/api/class/api_login.class.php index 5282a43dacc..d5362f4ac56 100644 --- a/htdocs/api/class/api_login.class.php +++ b/htdocs/api/class/api_login.class.php @@ -88,7 +88,7 @@ class Login global $conf, $dolibarr_main_authentication, $dolibarr_auto_user; // Is the login API disabled ? The token must be generated from backoffice only. - if (! empty($conf->global->API_DISABLE_LOGIN_API)) { + if (!empty($conf->global->API_DISABLE_LOGIN_API)) { dol_syslog("Warning: A try to use the login API has been done while the login API is disabled. You must generate or get the token from the backoffice.", LOG_WARNING); throw new RestException(403, "Error, the login API has been disabled for security purpose. You must generate or get the token from the backoffice."); } diff --git a/htdocs/api/index.php b/htdocs/api/index.php index c66573e8022..4c0d36fdcfe 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -76,6 +76,8 @@ if (preg_match('/\/api\/index\.php/', $_SERVER["PHP_SELF"])) { header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Headers: Content-Type, Authorization, api_key, DOLAPIKEY'); } +header('X-Frame-Options: SAMEORIGIN'); + $res = 0; if (!$res && file_exists("../main.inc.php")) { @@ -100,7 +102,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; $url = $_SERVER['PHP_SELF']; if (preg_match('/api\/index\.php$/', $url)) { // sometimes $_SERVER['PHP_SELF'] is 'api\/index\.php' instead of 'api\/index\.php/explorer.php' or 'api\/index\.php/method' - $url = $_SERVER['PHP_SELF'].$_SERVER['PATH_INFO']; + $url = $_SERVER['PHP_SELF'].(empty($_SERVER['PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : $_SERVER['PATH_INFO']); } // Fix for some NGINX setups (this should not be required even with NGINX, however setup of NGINX are often mysterious and this may help is such cases) if (!empty($conf->global->MAIN_NGINX_FIX)) { @@ -257,6 +259,8 @@ if (!empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/swagger.json' || $ continue; } + //dol_syslog("We scan to search api file with into ".$dir_part.$file_searched); + $regapi = array(); if (is_readable($dir_part.$file_searched) && preg_match("/^api_(.*)\.class\.php$/i", $file_searched, $regapi)) { $classname = ucwords($regapi[1]); diff --git a/htdocs/asset/accountancy_codes.php b/htdocs/asset/accountancy_codes.php index 431b4ba7c68..224380fc295 100644 --- a/htdocs/asset/accountancy_codes.php +++ b/htdocs/asset/accountancy_codes.php @@ -22,6 +22,7 @@ * \brief Card with accountancy code 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(); $result = $assetaccountancycodes->fetchAccountancyCodes($object->id); if ($result < 0) { diff --git a/htdocs/asset/admin/asset_extrafields.php b/htdocs/asset/admin/asset_extrafields.php index a84d3bc2016..b7a67151407 100644 --- a/htdocs/asset/admin/asset_extrafields.php +++ b/htdocs/asset/admin/asset_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of asset */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -88,7 +89,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/asset/admin/assetmodel_extrafields.php b/htdocs/asset/admin/assetmodel_extrafields.php index 387c43df635..44f2b1d7ca4 100644 --- a/htdocs/asset/admin/assetmodel_extrafields.php +++ b/htdocs/asset/admin/assetmodel_extrafields.php @@ -27,6 +27,7 @@ * \brief Page to setup extra fields of asset model */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -88,7 +89,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/asset/admin/setup.php b/htdocs/asset/admin/setup.php index afa4777de3d..67448b0e304 100644 --- a/htdocs/asset/admin/setup.php +++ b/htdocs/asset/admin/setup.php @@ -22,6 +22,7 @@ * \brief Asset setup page. */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; @@ -266,7 +267,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; $constforvar = 'ASSET_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -408,7 +409,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'ASSET_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + 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').''; @@ -519,29 +520,18 @@ if ($action == 'edit') { 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); } } elseif ($val['type'] == 'accountancy_code') { $selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname); - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; $formaccounting = new FormAccounting($db); print $formaccounting->select_account($selected, $constname, 1, null, 1, 1, 'minwidth150 maxwidth300', 1); @@ -550,7 +540,7 @@ if ($action == 'edit') { } } elseif ($val['type'] == 'accountancy_category') { $selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname); - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print ''; // autosuggest from existing account types if found print ''; @@ -647,7 +637,7 @@ if ($action == 'edit') { setEventMessages(null, $object->errors, "errors"); } } elseif ($val['type'] == 'accountancy_code') { - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $conf->global->{$constname}, 1); diff --git a/htdocs/asset/agenda.php b/htdocs/asset/agenda.php index 49a0c215701..4d1e6d4be56 100644 --- a/htdocs/asset/agenda.php +++ b/htdocs/asset/agenda.php @@ -22,6 +22,7 @@ * \brief Tab of events 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'; @@ -86,7 +87,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(); /* @@ -123,7 +124,7 @@ $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); @@ -179,7 +180,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print '' . $langs->trans("AddAction") . ''; } else { @@ -189,7 +190,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id=' . $object->id . '&socid=' . $socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage=' . urlencode($contextpage); diff --git a/htdocs/asset/card.php b/htdocs/asset/card.php index c516866b7d0..0f19bed4625 100644 --- a/htdocs/asset/card.php +++ b/htdocs/asset/card.php @@ -22,6 +22,7 @@ * \brief Page to create/edit/view 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'; @@ -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, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); @@ -408,7 +409,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/asset/agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/asset/agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/asset/class/asset.class.php b/htdocs/asset/class/asset.class.php index 19c15839231..55d2bc07593 100644 --- a/htdocs/asset/class/asset.class.php +++ b/htdocs/asset/class/asset.class.php @@ -144,6 +144,7 @@ class Asset extends CommonObject public $fk_disposal_type; public $disposal_depreciated; public $disposal_subject_to_vat; + public $supplier_invoice_id; public $note_public; public $note_private; public $date_creation; @@ -154,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 @@ -193,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; } @@ -1169,10 +1171,10 @@ class Asset extends CommonObject global $hidedetails, $hidedesc, $hideref; $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $this->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1232,10 +1234,10 @@ class Asset extends CommonObject global $hidedetails, $hidedesc, $hideref; $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $this->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1440,24 +1442,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/assetmodel.class.php b/htdocs/asset/class/assetmodel.class.php index eae7b5d0fde..fb574e6ea18 100644 --- a/htdocs/asset/class/assetmodel.class.php +++ b/htdocs/asset/class/assetmodel.class.php @@ -105,7 +105,6 @@ class AssetModel extends CommonObject 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>20, 'notnull'=>1, 'visible'=>1, 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'validate'=>'1'), 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth300', 'cssview'=>'wordbreak', 'showoncombobox'=>'2', 'validate'=>'1',), 'asset_type' => array('type'=>'smallint', 'label'=>'AssetType', 'enabled'=>'1', 'position'=>40, 'notnull'=>1, 'visible'=>1, 'arrayofkeyval'=>array('0'=>'AssetTypeIntangible', '1'=>'AssetTypeTangible', '2'=>'AssetTypeInProgress', '3'=>'AssetTypeFinancial'), 'validate'=>'1',), - 'fk_pays' =>array('type'=>'integer:Ccountry:core/class/ccountry.class.php', 'label'=>'Country', 'enabled'=>1, 'visible'=>1, 'position'=>50), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>300, 'notnull'=>0, 'visible'=>0, 'validate'=>'1',), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>301, 'notnull'=>0, 'visible'=>0, 'validate'=>'1',), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,), @@ -129,6 +128,7 @@ class AssetModel extends CommonObject public $import_key; public $model_pdf; public $status; + public $asset_depreciation_options; // /** // * @var string Field with ID of parent key if this object has a parent @@ -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..45f90101adc 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(); diff --git a/htdocs/asset/model/accountancy_codes.php b/htdocs/asset/model/accountancy_codes.php index fd5999b20b0..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'; @@ -52,14 +53,14 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->asset->multidir_output[$object->entity] . "/" . $object->id; } -$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->read))); -$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->write))); // Used by the include of actions_addupdatedelete.inc.php +$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->read))); +$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->write))); // Used by the include of actions_addupdatedelete.inc.php // Security check (enable the most restrictive one) 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 cd0365a1418..e0a463ec112 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'; @@ -80,15 +81,15 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->asset->multidir_output[$object->entity] . "/model/" . $object->id; } -$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->read))); -$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->write))); // Used by the include of actions_addupdatedelete.inc.php +$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->read))); +$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->write))); // Used by the include of actions_addupdatedelete.inc.php // 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, 'asset', $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); -if (empty($conf->asset->enabled)) accessforbidden(); +if (!isModEnabled('asset')) accessforbidden(); if (!$permissiontoread) accessforbidden(); @@ -125,7 +126,7 @@ $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); @@ -181,7 +182,7 @@ if ($object->id > 0) { print '
    '; - // if (!empty($conf->agenda->enabled)) { + // if (isModEnabled('agenda')) { // if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { // print '' . $langs->trans("AddAction") . ''; // } else { @@ -191,7 +192,7 @@ if ($object->id > 0) { print '
    '; - // if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + // if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { // $param = '&id=' . $object->id . '&socid=' . $socid; // if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { // $param .= '&contextpage=' . urlencode($contextpage); diff --git a/htdocs/asset/model/card.php b/htdocs/asset/model/card.php index 3e0858da55e..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'; @@ -68,9 +69,9 @@ 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 = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->read))); -$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->write))); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php -$permissiontodelete = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->delete) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->delete))) || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); +$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->read))); +$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->write))); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +$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))) || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); $permissionnote = $permissiontoadd; // Used by the include of actions_setnotes.inc.php $permissiondellink = $permissiontoadd; // Used by the include of actions_dellink.inc.php $upload_dir = $conf->asset->multidir_output[isset($object->entity) ? $object->entity : 1]; @@ -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)); @@ -315,7 +316,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // $MAXEVENT = 10; // - // $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT . '/asset/model/agenda.php?id=' . $object->id); + // $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT . '/asset/model/agenda.php?id=' . $object->id); // // // List of actions on element // include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; diff --git a/htdocs/asset/model/depreciation_options.php b/htdocs/asset/model/depreciation_options.php index f5bc751663b..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'; @@ -52,14 +53,14 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->asset->multidir_output[$object->entity] . "/" . $object->id; } -$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->read))); -$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->write))); // Used by the include of actions_addupdatedelete.inc.php +$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->read))); +$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->write))); // Used by the include of actions_addupdatedelete.inc.php // Security check (enable the most restrictive one) 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 a6423bb3a73..1d85a982e5d 100644 --- a/htdocs/asset/model/list.php +++ b/htdocs/asset/model/list.php @@ -121,25 +121,28 @@ 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'); -$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->read))); -$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->write))); -$permissiontodelete = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->delete) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->delete))); +$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->read))); +$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->write))); +$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'); } // Security check (enable the most restrictive one) -if ($user->socid > 0) accessforbidden(); -$socid = 0; if ($user->socid > 0) $socid = $user->socid; +if ($user->socid > 0) { + accessforbidden(); +} +$socid = 0; +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(); - - /* * Actions */ @@ -300,19 +303,20 @@ $sql .= !empty($hookmanager->resPrint) ? (" HAVING 1=1 " . $hookmanager->resPrin $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); + $result = $db->query($sql); + $nbtotalofrecords = $db->num_rows($result); */ - /* 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); + $resql = $db->query($sqlforcount); - $objforcount = $db->fetch_object($resql); - $nbtotalofrecords = $objforcount->nbtotalofrecords; + 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; diff --git a/htdocs/asset/model/note.php b/htdocs/asset/model/note.php index 4af8407976f..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'; @@ -50,8 +51,8 @@ if ($id > 0 || !empty($ref)) { $upload_dir = $conf->asset->multidir_output[$object->entity] . "/" . $object->id; } -$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->read))); -$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->setup_advance->write))); // Used by the include of actions_addupdatedelete.inc.php +$permissiontoread = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->read) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->read))); +$permissiontoadd = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->asset->model_advance->write))); // Used by the include of actions_addupdatedelete.inc.php $permissionnote = $permissiontoadd; // Used by the include of actions_setnotes.inc.php // Security check (enable the most restrictive one) 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/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 ef3c23eff2b..8ce559031a1 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; +// 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']); @@ -91,7 +206,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 +270,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 +287,25 @@ print '
    '; //print img_picto('','puce').' '.$langs->trans("PrintsheetForOneBarCode").'
    '; //print '
    '; -print '
    '; -print ''; -print ''; -print ''; - print '
    '; + + +// Example 1 : Adding jquery code +print ''; + + // For thirdparty -if ($conf->societe->enabled) { - $nbno = $nbtotal = 0; +if (isModEnabled('societe')) { + print ''; + print ''; + print ''; + print ''; + $nbthirdpartyno = $nbthirdpartytotal = 0; print load_fiche_titre($langs->trans("BarcodeInitForThirdparties"), '', 'company'); @@ -198,7 +314,7 @@ if ($conf->societe->enabled) { $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); - $nbno = $obj->nb; + $nbthirdpartyno = $obj->nb; } else { dol_print_error($db); } @@ -207,30 +323,50 @@ if ($conf->societe->enabled) { $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 '
    '.$langs->trans("NoBarcodeNumberingTemplateDefined"); + print '
    '.$langs->trans("ToGenerateCodeDefineAutomaticRuleFirst").''; + 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 +383,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 +395,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 +438,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 '
    '; 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 4698222bda8..9bb4456e840 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) { @@ -118,7 +122,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_ref = ''; $search_amount = ''; $search_showonlyerrors = 0; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } @@ -523,7 +527,7 @@ if (is_array($blocks)) { print ''; // ID - print ''.$block->id.''; + print ''.dol_escape_htmltag($block->id).''; // Date print ''.dol_print_date($block->date_creation, 'dayhour').''; @@ -531,11 +535,11 @@ if (is_array($blocks)) { // 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 eb851af169a..9c2850608af 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,6 +55,8 @@ $langs->loadLangs(array("admin")); * View */ +top_httphead(); + print '
    '; print ''; @@ -92,11 +95,11 @@ function formatObject($objtoshow, $prefix) $s .= ''; $s .= ''; + // 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 327876f17c2..194229725c3 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'; @@ -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); @@ -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 = ""; } @@ -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 '
    '.$langs->trans('Field').''.$langs->trans('Value').'
    '.($prefix ? $prefix.' > ' : '').$key.''; if (in_array($key, array('date', 'datef', 'dateh', 'datec', 'datem', 'datep'))) { - /*var_dump(is_object($val)); - var_dump(is_array($val)); - var_dump(is_array($val)); - var_dump(@get_class($val)); - var_dump($val);*/ + //var_dump(is_object($val)); + //var_dump(is_array($val)); + //var_dump(is_array($val)); + //var_dump(@get_class($val)); + //var_dump($val); $s .= dol_print_date($val, 'dayhour'); } else { $s .= $val; 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/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php index 578e1afa497..d6e1517344a 100644 --- a/htdocs/blockedlog/class/blockedlog.class.php +++ b/htdocs/blockedlog/class/blockedlog.class.php @@ -1,6 +1,7 @@ - * Copyright (C) 2017-2020 Laurent Destailleur +/* Copyright (C) 2017 ATM Consulting + * Copyright (C) 2017-2020 Laurent Destailleur + * 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 @@ -139,78 +140,63 @@ class BlockedLog $this->trackedevents = array(); - if ($conf->facture->enabled) { + // Customer Invoice/Facture / Payment + if (isModEnabled('facture')) { $this->trackedevents['BILL_VALIDATE'] = 'logBILL_VALIDATE'; - } - if ($conf->facture->enabled) { $this->trackedevents['BILL_DELETE'] = 'logBILL_DELETE'; - } - if ($conf->facture->enabled) { $this->trackedevents['BILL_SENTBYMAIL'] = 'logBILL_SENTBYMAIL'; - } - if ($conf->facture->enabled) { $this->trackedevents['DOC_DOWNLOAD'] = 'BlockedLogBillDownload'; - } - if ($conf->facture->enabled) { $this->trackedevents['DOC_PREVIEW'] = 'BlockedLogBillPreview'; - } - if ($conf->facture->enabled) { $this->trackedevents['PAYMENT_CUSTOMER_CREATE'] = 'logPAYMENT_CUSTOMER_CREATE'; - } - if ($conf->facture->enabled) { $this->trackedevents['PAYMENT_CUSTOMER_DELETE'] = 'logPAYMENT_CUSTOMER_DELETE'; } /* Supplier - if ($conf->fournisseur->enabled) $this->trackedevents['BILL_SUPPLIER_VALIDATE']='BlockedLogSupplierBillValidate'; - if ($conf->fournisseur->enabled) $this->trackedevents['BILL_SUPPLIER_DELETE']='BlockedLogSupplierBillDelete'; - if ($conf->fournisseur->enabled) $this->trackedevents['BILL_SUPPLIER_SENTBYMAIL']='BlockedLogSupplierBillSentByEmail'; // Trigger key does not exists, we want just into array to list it as done - if ($conf->fournisseur->enabled) $this->trackedevents['SUPPLIER_DOC_DOWNLOAD']='BlockedLogSupplierBillDownload'; // Trigger key does not exists, we want just into array to list it as done - if ($conf->fournisseur->enabled) $this->trackedevents['SUPPLIER_DOC_PREVIEW']='BlockedLogSupplierBillPreview'; // Trigger key does not exists, we want just into array to list it as done - - if ($conf->fournisseur->enabled) $this->trackedevents['PAYMENT_SUPPLIER_CREATE']='BlockedLogSupplierBillPaymentCreate'; - if ($conf->fournisseur->enabled) $this->trackedevents['PAYMENT_SUPPLIER_DELETE']='BlockedLogsupplierBillPaymentCreate'; + // 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'; + } */ - if ($conf->don->enabled) { + // Donation + if (!empty($conf->don->enabled)) { $this->trackedevents['DON_VALIDATE'] = 'logDON_VALIDATE'; - } - if ($conf->don->enabled) { $this->trackedevents['DON_DELETE'] = 'logDON_DELETE'; - } - //if ($conf->don->enabled) $this->trackedevents['DON_SENTBYMAIL']='logDON_SENTBYMAIL'; - - if ($conf->don->enabled) { + //$this->trackedevents['DON_SENTBYMAIL']='logDON_SENTBYMAIL'; $this->trackedevents['DONATION_PAYMENT_CREATE'] = 'logDONATION_PAYMENT_CREATE'; - } - if ($conf->don->enabled) { $this->trackedevents['DONATION_PAYMENT_DELETE'] = 'logDONATION_PAYMENT_DELETE'; } /* - if ($conf->salary->enabled) $this->trackedevents['PAYMENT_SALARY_CREATE']='BlockedLogSalaryPaymentCreate'; - if ($conf->salary->enabled) $this->trackedevents['PAYMENT_SALARY_MODIFY']='BlockedLogSalaryPaymentCreate'; - if ($conf->salary->enabled) $this->trackedevents['PAYMENT_SALARY_DELETE']='BlockedLogSalaryPaymentCreate'; + // Salary + if (!empty($conf->salary->enabled)) { + $this->trackedevents['PAYMENT_SALARY_CREATE']='BlockedLogSalaryPaymentCreate'; + $this->trackedevents['PAYMENT_SALARY_MODIFY']='BlockedLogSalaryPaymentCreate'; + $this->trackedevents['PAYMENT_SALARY_DELETE']='BlockedLogSalaryPaymentCreate'; + } */ - if ($conf->adherent->enabled) { + // Members + if (isModEnabled('adherent')) { $this->trackedevents['MEMBER_SUBSCRIPTION_CREATE'] = 'logMEMBER_SUBSCRIPTION_CREATE'; - } - if ($conf->adherent->enabled) { $this->trackedevents['MEMBER_SUBSCRIPTION_MODIFY'] = 'logMEMBER_SUBSCRIPTION_MODIFY'; - } - if ($conf->adherent->enabled) { $this->trackedevents['MEMBER_SUBSCRIPTION_DELETE'] = 'logMEMBER_SUBSCRIPTION_DELETE'; } - if ($conf->banque->enabled) { + + // Bank + if (isModEnabled("banque")) { $this->trackedevents['PAYMENT_VARIOUS_CREATE'] = 'logPAYMENT_VARIOUS_CREATE'; - } - if ($conf->banque->enabled) { $this->trackedevents['PAYMENT_VARIOUS_MODIFY'] = 'logPAYMENT_VARIOUS_MODIFY'; - } - if ($conf->banque->enabled) { $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) { @@ -383,11 +369,11 @@ 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') { @@ -549,7 +535,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) { 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/bom_agenda.php b/htdocs/bom/bom_agenda.php index 2b9c6f57bbd..ac3f672ad33 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 @@ -40,6 +40,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); @@ -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->bom->multidir_output[$object->entity]."/".$object->id; + $upload_dir = (!empty($conf->bom->multidir_output[$object->entity]) ? $conf->bom->multidir_output[$object->entity] : $conf->bom->dir_output)."/".$object->id; } // Security check - Protection if external user @@ -125,7 +126,7 @@ $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); @@ -149,7 +150,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') . ' '; @@ -170,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.=''; @@ -219,7 +220,7 @@ if ($object->id > 0) { print ''; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 96fb68b6e9b..2cf2b3a4dd3 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -28,6 +28,8 @@ 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.'/bom/class/bom.class.php'; require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/mrp/lib/mrp.lib.php'; + // Load translation files required by the page $langs->loadLangs(array("mrp", "other")); @@ -178,25 +180,21 @@ 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; + $result = $object->addLine($idprod, $qty, $qty_frozen, $disable_stock_change, $efficiency, -1, $bom_child_id, null); - // Rang to use - $rangmax = $object->line_max(0); - $ranktouse = $rangmax + 1; - - $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']); @@ -205,13 +203,11 @@ if (empty($reshook)) { unset($_POST['disable_stock_change']); $object->fetchLines(); - - $object->calculateCosts(); } } } - // Add line + // Update line if ($action == 'updateline' && $user->rights->bom->write) { $langs->load('errors'); $error = 0; @@ -227,26 +223,23 @@ if (empty($reshook)) { $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) { + $bomline = new BOMLine($db); + $bomline->fetch($lineid); - $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']); + $result = $object->updateLine($lineid, $qty, (int) $qty_frozen, (int) $disable_stock_change, $efficiency, $bomline->position, $bomline->import_key); - $object->fetchLines(); + if ($result <= 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $action = ''; + } else { + unset($_POST['idprod']); + unset($_POST['qty']); + unset($_POST['qty_frozen']); + unset($_POST['disable_stock_change']); - $object->calculateCosts(); + $object->fetchLines(); + } } } } @@ -352,7 +345,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } $text = $langs->trans('ConfirmValidateBom', $numref); - /*if (! empty($conf->notification->enabled)) + /*if (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -380,7 +373,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Confirmation of closing if ($action == 'close') { $text = $langs->trans('ConfirmCloseBom', $object->ref); - /*if (! empty($conf->notification->enabled)) + /*if (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -408,7 +401,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Confirmation of reopen if ($action == 'reopen') { $text = $langs->trans('ConfirmReopenBom', $object->ref); - /*if (! empty($conf->notification->enabled)) + /*if (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -474,7 +467,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 (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -494,7 +487,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(); @@ -581,47 +574,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print "\n"; - ?> - - - id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } // Create MO - if ($conf->mrp->enabled) { + if (isModEnabled('mrp')) { if ($object->status == $object::STATUS_VALIDATED && !empty($user->rights->mrp->write)) { print ''.$langs->trans("CreateMO").''."\n"; } @@ -742,7 +696,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/bom/bom_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/bom/bom_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/bom/bom_document.php b/htdocs/bom/bom_document.php index 64f3cdbfac1..a0390ef5105 100644 --- a/htdocs/bom/bom_document.php +++ b/htdocs/bom/bom_document.php @@ -104,6 +104,7 @@ $form = new Form($db); $title = $langs->trans("BillOfMaterials").' - '.$langs->trans("Files"); $help_url = 'EN:Module_BOM'; +$morehtmlref = ""; llxHeader('', $title, $help_url); diff --git a/htdocs/bom/bom_list.php b/htdocs/bom/bom_list.php index 48798db9b8f..eb78228f068 100644 --- a/htdocs/bom/bom_list.php +++ b/htdocs/bom/bom_list.php @@ -366,7 +366,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.', ' : ''); } diff --git a/htdocs/bom/bom_net_needs.php b/htdocs/bom/bom_net_needs.php index 30cd6792c55..668ed29a62e 100644 --- a/htdocs/bom/bom_net_needs.php +++ b/htdocs/bom/bom_net_needs.php @@ -34,6 +34,7 @@ $langs->loadLangs(array("mrp", "other", "stocks")); // Get parameters $id = GETPOST('id', 'int'); +$lineid = GETPOST('lineid', 'int'); $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); @@ -184,29 +185,29 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print dol_get_fiche_end(); - $viewlink = dolGetButtonTitle($langs->trans('GroupByProduct'), '', 'fa fa-list-alt imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&token='.newToken(), '', 1, array('morecss' => 'reposition '.($action !== 'treeview' ? 'btnTitleSelected':''))); + $viewlink = dolGetButtonTitle($langs->trans('GroupByProduct'), '', 'fa fa-bars imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&token='.newToken(), '', 1, array('morecss' => 'reposition '.($action !== 'treeview' ? 'btnTitleSelected':''))); $viewlink .= dolGetButtonTitle($langs->trans('TreeStructure'), '', 'fa fa-stream imgforviewmode', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=treeview&token='.newToken(), '', 1, array('morecss' => 'reposition marginleftonly '.($action == 'treeview' ? 'btnTitleSelected':''))); - print load_fiche_titre($langs->trans("BillOfMaterials"), $viewlink, 'cubes'); + print load_fiche_titre($langs->trans("BOMNetNeeds"), $viewlink, ''); /* * Lines */ $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 ''; 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 8ace40cc900..9984a1498b8 100644 --- a/htdocs/bom/bom_note.php +++ b/htdocs/bom/bom_note.php @@ -54,7 +54,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->bom->multidir_output[$object->entity]."/".$object->id; + $upload_dir = (!empty($conf->bom->multidir_output[$object->entity]) ? $conf->bom->multidir_output[$object->entity] : $conf->bom->dir_output)."/".$object->id; } $permissionnote = $user->rights->bom->write; // Used by the include of actions_setnotes.inc.php diff --git a/htdocs/bom/class/api_boms.class.php b/htdocs/bom/class/api_boms.class.php index 91af888ffd8..fb7d175a229 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 @@ -279,6 +280,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 /** diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 86e07ed424d..7ff9627f25b 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -96,7 +96,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 +239,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; } @@ -502,6 +502,207 @@ 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 + * @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) + { + 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; + + $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 + * @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) + { + 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; + + $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 +718,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 +821,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 +933,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 +957,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 +981,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; @@ -820,13 +1052,6 @@ class BOM extends CommonObject } $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; - - /* - $hookmanager->initHooks(array('bomdao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } else { $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); } @@ -916,27 +1141,11 @@ class BOM 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); @@ -958,8 +1167,8 @@ class BOM extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_bom = '.((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; @@ -1129,11 +1338,14 @@ 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])) { + $TNetNeeds[$line->fk_product] = 0; + } $TNetNeeds[$line->fk_product] += $line->qty*$qty; } } @@ -1150,9 +1362,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; @@ -1167,6 +1379,38 @@ 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); + } + } + } } @@ -1298,6 +1542,7 @@ class BOMLine extends CommonObjectLine */ public $childBom = array(); + /** * Constructor * @@ -1312,7 +1557,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; } @@ -1359,7 +1604,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; } @@ -1511,13 +1756,6 @@ class BOMLine extends CommonObjectLine } $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; - - /* - $hookmanager->initHooks(array('bomlinedao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } else { $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); } @@ -1591,29 +1829,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 954959d5d7a..94debfbee7b 100644 --- a/htdocs/bom/lib/bom.lib.php +++ b/htdocs/bom/lib/bom.lib.php @@ -136,3 +136,55 @@ function bomPrepareHead($object) return $head; } + +/** + * Manage collapse bom display + * + * @return void + */ +function mrpCollapseBomManagement() +{ + ?> + + + + '; // Predefined product/service -if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { +if (isModEnabled("product") || isModEnabled("service")) { if (!empty($conf->global->BOM_SUB_BOM)) { print $langs->trans("Product"); } 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..2abd90cf538 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -29,46 +29,51 @@ */ 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 ($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 (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 +85,10 @@ function printDropdownBookmarksList() } } + // Url to list/edit bookmark + $listbtn = ''; + $listbtn .= img_picto('', 'edit', 'class="paddingright opacitymedium"').$langs->trans('EditBookmarks').''; + // 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 +180,28 @@ function printDropdownBookmarksList() '; $html .= ' - - - '; - - $html .= ' - + '; + $html .= ' + + + '; + $html .= ' '; } diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php index bbc92a83ef1..60d615192d0 100644 --- a/htdocs/bookmarks/card.php +++ b/htdocs/bookmarks/card.php @@ -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 */ diff --git a/htdocs/bookmarks/list.php b/htdocs/bookmarks/list.php index 07ea263eeda..47f97e17bbe 100644 --- a/htdocs/bookmarks/list.php +++ b/htdocs/bookmarks/list.php @@ -16,28 +16,26 @@ */ /** - * \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 @@ -58,10 +56,13 @@ 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); @@ -82,6 +83,7 @@ if ($action == 'delete') { } + /* * View */ 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 02cd6e2a784..aea67145258 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); @@ -82,7 +83,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php index ec3d75dee1a..7f04c6d1005 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..76381c0d53d 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); } @@ -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 434b994ccd2..b222f70110a 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -37,6 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/knowledgemanagement/class/knowledgerecord.class.php'; /** @@ -113,7 +114,7 @@ class Categorie extends CommonObject * * @todo Move to const array when PHP 5.6 will be our minimum target */ - protected $MAP_CAT_FK = array( + public $MAP_CAT_FK = array( 'customer' => 'soc', 'supplier' => 'soc', 'contact' => 'socpeople', @@ -125,7 +126,7 @@ class Categorie extends CommonObject * * @note Move to const array when PHP 5.6 will be our minimum target */ - protected $MAP_CAT_TABLE = array( + public $MAP_CAT_TABLE = array( 'customer' => 'societe', 'supplier' => 'fournisseur', 'bank_account'=> 'account', @@ -136,7 +137,7 @@ class Categorie extends CommonObject * * @note Move to const array when PHP 5.6 will be our minimum target */ - protected $MAP_OBJ_CLASS = array( + public $MAP_OBJ_CLASS = array( 'product' => 'Product', 'customer' => 'Societe', 'supplier' => 'Fournisseur', @@ -174,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" */ - protected $MAP_OBJ_TABLE = array( + public $MAP_OBJ_TABLE = array( 'customer' => 'societe', 'supplier' => 'societe', 'member' => 'adherent', @@ -258,6 +258,12 @@ class Categorie extends CommonObject */ public $motherof = array(); + /** + * @var array Childs + */ + public $childs = array(); + + /** * Constructor * @@ -326,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)) { @@ -365,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']; @@ -381,6 +390,7 @@ class Categorie extends CommonObject return 1; } else { + $this->error = "No category found"; return 0; } } else { @@ -693,13 +703,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'; @@ -819,7 +830,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', ...) + * @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 @@ -913,7 +924,7 @@ class Categorie extends CommonObject $categories = array(); - $type = checkVal($type, 'aZ09'); + $type = sanitizeVal($type, 'aZ09'); $sub_type = $type; $subcol_name = "fk_".$type; @@ -982,7 +993,7 @@ class Categorie extends CommonObject $categories[$i]['array_options'] = $category_static->array_options; // multilangs - if (!empty($conf->global->MAIN_MULTILANGS)) { + if (!empty($conf->global->MAIN_MULTILANGS) && isset($category_static->multilangs)) { $categories[$i]['multilangs'] = $category_static->multilangs; } } @@ -1207,9 +1218,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"; 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 f4456ed79bf..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'; @@ -102,7 +103,8 @@ if (empty($nosearch)) { print ''; print ''; print ''; + print $langs->trans("Name").':'; + print ''; 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").' '; } @@ -215,11 +216,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); @@ -232,7 +233,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
    '.$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_PRODUCTDESC'), ROWS_5, '90%'); $doleditor->Create(); print '
    '.$langs->trans("Search").'
    '; - print $langs->trans("Name").':
    '; 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..8aecdde63ea 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 '
    '.$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_PRODUCTDESC'), 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_PRODUCTDESC'), ROWS_3, '90%'); $doleditor->Create(); print '
    ".(is_array($elements) ? count($elements) : '0')."
    '; + 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("AddMemberIntoCategory").'  '; - 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("warehouse", "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 aa513e07794..2c008202348 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'); @@ -96,6 +100,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); @@ -409,9 +414,13 @@ if (empty($reshook) && $action == 'add') { $error++; } + + if (!$error) { $db->begin(); + + // Creation of action/event $idaction = $object->create($user); @@ -461,21 +470,28 @@ if (empty($reshook) && $action == 'add') { } } + // 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(); } - 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(); @@ -489,6 +505,151 @@ if (empty($reshook) && $action == 'add') { setEventMessages($object->error, $object->errors, 'errors'); $action = 'create'; $donotclearsession = 1; } + + $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') : ""; + + 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]; + } + + // If event is recurrent + $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); + if ($userepeatevent && !empty($selectedrecurrulefreq) && $selectedrecurrulefreq != 'no') { + // 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; } } @@ -521,7 +682,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) { @@ -674,7 +835,7 @@ if (empty($reshook) && $action == 'update') { $object->errors[] = $object->error; } else { if ($db->num_rows($resql) > 0) { - // already in use + // Resource already in use $error++; $object->error = $langs->trans('ErrorResourcesAlreadyInUse').' : '; while ($obj = $db->fetch_object($resql)) { @@ -771,7 +932,7 @@ 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) { @@ -853,7 +1014,7 @@ if (empty($reshook) && GETPOST('actionmove', 'alpha') == 'mupdate') { $object->errors[] = $object->error; } else { if ($db->num_rows($resql) > 0) { - // already in use + // Resource already in use $error++; $object->error = $langs->trans('ErrorResourcesAlreadyInUse').' : '; while ($obj = $db->fetch_object($resql)) { @@ -909,10 +1070,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); @@ -952,16 +1114,17 @@ if ($action == 'create') { console.log("setdatefields"); setdatefields(); }); + $("#selectcomplete").change(function() { - if ($("#selectcomplete").val() == 100) - { + console.log("we change the complete status - set the doneby"); + if ($("#selectcomplete").val() == 100) { if ($("#doneby").val() <= 0) $("#doneby").val(\''.((int) $user->id).'\'); } - if ($("#selectcomplete").val() == 0) - { + if ($("#selectcomplete").val() == 0) { $("#doneby").val(-1); } }); + $("#actioncode").change(function() { if ($("#actioncode").val() == \'AC_RDV\') $("#dateend").addClass("fieldrequired"); else $("#dateend").removeClass("fieldrequired"); @@ -1019,7 +1182,95 @@ if ($action == 'create') { print 'global->AGENDA_USE_EVENT_TYPE) ? ' class="fieldrequired titlefieldcreate"' : '').'>'.$langs->trans("Label").''; // Full day - print ''; + print ''.$langs->trans("Date").''; + + // 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 = ''; + $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)) { + $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 ''; + // If recurrulefreq is WEEKLY + print ''; + // limit date + $repeateventlimitdate = $repeateventlimitdate ? $repeateventlimitdate : ''; + print ''; + + print ''; + print '
    '; + //print ''; + } + + print ''; $datep = ($datep ? $datep : (is_null($object->datep) ? '' : $object->datep)); if (GETPOST('datep', 'int', 1)) { @@ -1037,9 +1288,11 @@ 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" @@ -1047,7 +1300,6 @@ if ($action == 'create') { print $form->selectDate($datep, 'ap', 1, 1, 1, "action", 1, 2, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuserrel'); } print '     -     '; - //print ' - '; if (GETPOST("afaire") == 1) { print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuserrel'); } else { @@ -1055,99 +1307,10 @@ if ($action == 'create') { } print ''; - // Date end - /*print ''; - print ''.$langs->trans("DateActionEnd").''; - print ''; - print ''; - if (GETPOST("afaire") == 1) { - print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 2, 0, 'fulldayend'); - } else { - print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 2, 0, 'fulldayend'); - } - print '';*/ - - // Dev in progress - $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); - if ($userepeatevent) { - // Repeat - print ''; - 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 ''; - } - - // Status - print ''.$langs->trans("Status").' / '.$langs->trans("Percentage").''; - print ''; - $percent = $complete !=='' ? $complete : -1; - if (GETPOSTISSET('status')) { - $percent = GETPOST('status'); - } elseif (GETPOSTISSET('percentage')) { - $percent = GETPOST('percentage', 'int'); - } else { - if ($complete == '0' || GETPOST("afaire") == 1) { - $percent = '0'; - } elseif ($complete == 100 || GETPOST("afaire") == 2) { - $percent = 100; - } - } - $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); - print ''; - - // Location - if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { - print ''.$langs->trans("Location").''; - } + print ' '; // Assigned to - print ''.$langs->trans("ActionAffectedTo").''; + print ''.$langs->trans("ActionAffectedTo").''; $listofuserid = array(); $listofcontactid = array(); $listofotherid = array(); @@ -1181,7 +1344,30 @@ if ($action == 'create') { print ''; } - if ($conf->categorie->enabled) { + // Location + if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { + print ''.$langs->trans("Location").''; + } + + // Status + print ''.$langs->trans("Status").' / '.$langs->trans("Percentage").''; + print ''; + $percent = $complete !=='' ? $complete : -1; + if (GETPOSTISSET('status')) { + $percent = GETPOST('status'); + } elseif (GETPOSTISSET('percentage')) { + $percent = GETPOST('percentage', 'int'); + } else { + if ($complete == '0' || GETPOST("afaire") == 1) { + $percent = '0'; + } elseif ($complete == 100 || GETPOST("afaire") == 2) { + $percent = 100; + } + } + $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); + print ''; + + if (isModEnabled('categorie')) { // Categories print ''.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACTIONCOMM, '', 'parent', 64, 0, 1); @@ -1197,7 +1383,7 @@ if ($action == 'create') { print ''; - if ($conf->societe->enabled) { + if (isModEnabled("societe")) { // Related company print ''; @@ -1523,6 +1709,7 @@ if ($id > 0) { if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { print ''; + print 'global->AGENDA_USE_EVENT_TYPE) ? ' class="fieldrequired titlefieldcreate"' : '').'>'.$langs->trans("Title").''; // Full day event - print ''; + print ''; + // } + print ''; // Date start - end print ''; - // Dev in progress - $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); - if ($userepeatevent) { - // Repeat - print ''; - } - - // Status - print ''; - - // Location - if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { - print ''; - } + print ''; // Assigned to $listofuserid = array(); // User assigned @@ -1678,8 +1862,20 @@ if ($id > 0) { print $form->select_dolusers($object->userdoneid > 0 ? $object->userdoneid : -1, 'doneby', 1); print ''; } + + // Location + if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { + print ''; + } + + // Status + print ''; + // Tags-Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print ''; +} + + +print '
    '.$langs->trans("ActionOnCompany").''; if (GETPOST('socid', 'int') > 0) { @@ -1230,14 +1416,14 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $projectid = GETPOST('projectid', 'int'); print '
    '.$langs->trans("Project").''; print img_picto('', 'project', 'class="pictofixedwidth"'); - print $formproject->select_projects((empty($societe->id) ? '' : $societe->id), $projectid, 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500 widthcentpercentminusxx'); + print $formproject->select_projects(($object->socid > 0 ? $object->socid : -1), $projectid, 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500 widthcentpercentminusxx'); print ' '; print ''; @@ -1315,7 +1501,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("Type").''; if ($object->type_code != 'AC_OTH_AUTO') { + print img_picto($langs->trans("ActionType"), 'square', 'class="fawidth30 inline-block" style="color: #ddd;"'); print $formactions->select_type_actions(GETPOST("actioncode", 'aZ09') ? GETPOST("actioncode", 'aZ09') : $object->type_code, "actioncode", "systemauto", 0, 0, 0, 1); } else { print ''; @@ -1533,16 +1720,78 @@ if ($id > 0) { } // Title - print '
    '.$langs->trans("Title").'
    '.$langs->trans("EventOnFullDay").'fulldayevent ? ' 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 ''.$langs->trans("DateActionStart").''; + /*print ''.$langs->trans("DateActionStart").''; print ' - '; print 'type_code == 'AC_RDV' ? ' class="fieldrequired"' : '').'>'.$langs->trans("DateActionEnd").''; + */ print ''; $tzforfullday = getDolGlobalString('MAIN_STORE_FULL_EVENT_IN_GMT'); if (GETPOST("afaire") == 1) { @@ -1552,82 +1801,17 @@ if ($id > 0) { } else { print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); } - print ' - '; + print '     -     '; if (GETPOST("afaire") == 1) { - print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); + print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); } elseif (GETPOST("afaire") == 2) { - print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); + print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); } else { - print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); + print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', $object->fulldayevent ? ($tzforfullday ? $tzforfullday : 'tzuserrel') : 'tzuserrel'); } print '
    '; - 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 '
    '.$langs->trans("Status").' / '.$langs->trans("Percentage").''; - $percent = GETPOSTISSET("percentage") ? GETPOST("percentage", "int") : $object->percentage; - $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); - print '
    '.$langs->trans("Location").'
     
    '.$langs->trans("Location").'
    '.$langs->trans("Status").' / '.$langs->trans("Percentage").''; + $percent = GETPOSTISSET("percentage") ? GETPOST("percentage", "int") : $object->percentage; + $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); + print '
    '.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACTIONCOMM, '', 'parent', 64, 0, 1); $c = new Categorie($db); @@ -1700,7 +1896,7 @@ if ($id > 0) { print ''; - if ($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 ''; @@ -1888,17 +2084,26 @@ 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 .= ''; - $linkback .= img_picto($langs->trans("BackToList"), 'object_list', 'class="pictoactionview pictofixedwidth"'); + $linkback .= img_picto($langs->trans("BackToList"), 'object_calendarlist', 'class="pictoactionview pictofixedwidth"'); $linkback .= ''.$langs->trans("BackToList").''; $linkback .= ''; $linkback .= ''; @@ -1932,7 +2137,7 @@ if ($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') . ' '; $morehtmlref .= $langs->trans('Project').' '; @@ -2085,7 +2290,7 @@ if ($id > 0) { } // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -2100,7 +2305,7 @@ if ($id > 0) { print '
    '; print '
    '.$langs->trans("ActionOnCompany").''; @@ -1723,7 +1919,7 @@ if ($id > 0) { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); print '
    '.$langs->trans("Project").''; @@ -1748,7 +1944,7 @@ if ($id > 0) { print '
    '.$langs->trans("LinkedObject").''; $urloption = '?action=create&donotclearsession=1'; // we use create not edit for more flexibility @@ -1786,7 +1982,7 @@ if ($id > 0) { print '
    '.$langs->trans("Description").''; // Editeur wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('note', $object->note_private, '', 200, 'dolibarr_notes', 'In', true, true, $conf->fckeditor->enabled, ROWS_5, '90%'); + $doleditor = new DolEditor('note', $object->note_private, '', 120, 'dolibarr_notes', 'In', true, true, $conf->fckeditor->enabled, ROWS_4, '90%'); $doleditor->Create(); print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_ACTIONCOMM, 1); print "
    '; - if ($conf->societe->enabled) { + if (isModEnabled("societe")) { // Related company print ''; -print "\n"; +print ''."\n"; +$totalarray = array(); +$totalarray['nbfield'] = 0; + +// Fields title label +// -------------------------------------------------------------------- print ''; if (!empty($arrayfields['a.id']['checked'])) { print_liste_field_titre($arrayfields['a.id']['label'], $_SERVER["PHP_SELF"], "a.id", $param, "", "", $sortfield, $sortorder); + $totalarray['nbfield']++; } if (!empty($arrayfields['owner']['checked'])) { print_liste_field_titre($arrayfields['owner']['label'], $_SERVER["PHP_SELF"], "", $param, "", "", $sortfield, $sortorder); + $totalarray['nbfield']++; } if (!empty($arrayfields['c.libelle']['checked'])) { print_liste_field_titre($arrayfields['c.libelle']['label'], $_SERVER["PHP_SELF"], "c.libelle", $param, "", "", $sortfield, $sortorder); + $totalarray['nbfield']++; } if (!empty($arrayfields['a.label']['checked'])) { print_liste_field_titre($arrayfields['a.label']['label'], $_SERVER["PHP_SELF"], "a.label", $param, "", "", $sortfield, $sortorder); + $totalarray['nbfield']++; } 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']++; } if (!empty($arrayfields['a.datep2']['checked'])) { print_liste_field_titre($arrayfields['a.datep2']['label'], $_SERVER["PHP_SELF"], "a.datep2", $param, '', 'align="center"', $sortfield, $sortorder); + $totalarray['nbfield']++; } 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['a.fk_contact']['checked'])) { print_liste_field_titre($arrayfields['a.fk_contact']['label'], $_SERVER["PHP_SELF"], "", $param, "", "", $sortfield, $sortorder); + $totalarray['nbfield']++; } if (!empty($arrayfields['a.fk_element']['checked'])) { print_liste_field_titre($arrayfields['a.fk_element']['label'], $_SERVER["PHP_SELF"], "", $param, "", "", $sortfield, $sortorder); + $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); $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook @@ -842,18 +857,21 @@ print $hookmanager->resPrint; if (!empty($arrayfields['a.datec']['checked'])) { print_liste_field_titre($arrayfields['a.datec']['label'], $_SERVER["PHP_SELF"], "a.datec,a.id", $param, "", 'align="center"', $sortfield, $sortorder); + $totalarray['nbfield']++; } if (!empty($arrayfields['a.tms']['checked'])) { print_liste_field_titre($arrayfields['a.tms']['label'], $_SERVER["PHP_SELF"], "a.tms,a.id", $param, "", 'align="center"', $sortfield, $sortorder); + $totalarray['nbfield']++; } 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 '); +$totalarray['nbfield']++; print "\n"; -$contactstatic = new Contact($db); $now = dol_now(); $delay_warning = $conf->global->MAIN_DELAY_ACTIONS_TODO * 24 * 60 * 60; @@ -862,8 +880,20 @@ $caction = new CActionComm($db); $arraylist = $caction->liste_array(1, 'code', '', (empty($conf->global->AGENDA_USE_EVENT_TYPE) ? 1 : 0), '', 1); $contactListCache = array(); -while ($i < min($num, $limit)) { +// Loop on record +// -------------------------------------------------------------------- +$i = 0; +//$savnbfield = $totalarray['nbfield']; +//$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); // Discard auto action if option is on if (!empty($conf->global->AGENDA_ALWAYS_HIDE_AUTO) && $obj->type_code == 'AC_OTH_AUTO') { @@ -954,10 +984,10 @@ while ($i < min($num, $limit)) { if (!empty($arrayfields['a.datep']['checked'])) { print ''; } @@ -1058,11 +1088,11 @@ while ($i < min($num, $limit)) { // 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 @@ -1080,12 +1110,20 @@ while ($i < min($num, $limit)) { } print ''; - print "\n"; + print ''."\n"; + $i++; } -print "
    '.$langs->trans("ActionOnCompany").''.($object->thirdparty->id ? $object->thirdparty->getNomUrl(1) : (''.$langs->trans("None").'')); if (is_object($object->thirdparty) && $object->thirdparty->id > 0 && $object->type_code == 'AC_TEL') { diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 9d122cfce7e..571815fb615 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -285,17 +285,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 +373,16 @@ class ActionComm extends CommonObject */ public $status; + /** + * Properties to manage the recurring events + */ + public $recurid; + public $recurrule; + public $recurdateend; + + public $calling_duration; + + /** * Typical value for a event that is in a todo state */ @@ -389,6 +399,9 @@ class ActionComm extends CommonObject const EVENT_FINISHED = 100; + public $fields = array(); + + /** * Constructor * @@ -444,11 +457,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; } @@ -1142,8 +1155,16 @@ class ActionComm extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm "; $sql .= " SET percent = '".$this->db->escape($this->percentage)."'"; if ($this->type_id > 0) { - $sql .= ", fk_action = '".$this->db->escape($this->type_id)."'"; + $sql .= ", fk_action = ".(int) $this->type_id; + if (empty($this->type_code)) { + $cactioncomm = new CActionComm($this->db); + $result = $cactioncomm->fetch($this->type_id); + if ($result >= 0 && !empty($cactioncomm->code)) { + $this->type_code = $cactioncomm->code; + } + } } + $sql .= ", code = " . (isset($this->type_code)? "'".$this->db->escape($this->type_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'); @@ -1220,11 +1241,14 @@ class ActionComm extends CommonObject if (!empty($this->socpeopleassigned)) { $already_inserted = array(); - foreach (array_keys($this->socpeopleassigned) as $id) { + foreach (array_keys($this->socpeopleassigned) as $key => $val) { + if (!is_array($val)) { // For backward compatibility when val=id + $val = array('id'=>$val); + } if (!empty($already_inserted[$val['id']])) continue; $sql = "INSERT INTO ".MAIN_DB_PREFIX."actioncomm_resources(fk_actioncomm, element_type, fk_element, mandatory, transparency, answer_status)"; - $sql .= " VALUES(".((int) $this->id).", 'socpeople', ".((int) $id).", 0, 0, 0)"; + $sql .= " VALUES(".((int) $this->id).", 'socpeople', ".((int) $val['id']).", 0, 0, 0)"; $resql = $this->db->query($sql); if (!$resql) { @@ -1434,21 +1458,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 { @@ -1545,13 +1558,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) { @@ -1598,7 +1611,7 @@ class ActionComm extends CommonObject //$tooltip .= '
    '.img_picto('', 'email').' '.$langs->trans("Email").''; $tooltip .= '
    '.$langs->trans('MailTopic').': '.$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); + $tooltip .= '
    '.$langs->trans('MailTo').': '.str_replace(array('<', '>'), array('&lt', '&gt'), $this->email_to); if (!empty($this->email_tocc)) { $tooltip .= '
    '.$langs->trans('MailCC').': '.str_replace(array('<', '>'), array('&lt', '&gt'), $this->email_tocc); } @@ -1621,14 +1634,8 @@ class ActionComm extends CommonObject $label = $langs->trans("ShowAction"); $linkclose .= ' alt="'.dol_escape_htmltag($tooltip, 1).'"'; } - $linkclose .= ' title="'.dol_escape_htmltag($tooltip, 1, 0, 0, '', 1).'"'; + $linkclose .= ' title="'.dol_escape_htmltag($tooltip, 1, 0, '', 1).'"'; $linkclose .= ' class="'.$classname.' classfortooltip"'; - /* - $hookmanager->initHooks(array('actiondao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - $linkclose = ($hookmanager->resPrint ? $hookmanager->resPrint : $linkclose); - */ } else { $linkclose .= ' class="'.$classname.'"'; } @@ -2086,8 +2093,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)); @@ -2505,14 +2512,16 @@ class ActionComm extends CommonObject * * @param int $id The id of the event * @param int $percent The new percent value for the event + * @param int $usermodid The user who modified the percent * @return int 1 when update of the event was suscessfull, otherwise -1 */ - public function updatePercent($id, $percent) + public function updatePercent($id, $percent, $usermodid = 0) { $this->db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm "; $sql .= " SET percent = ".(int) $percent; + if ($usermodid > 0) $sql .= ", fk_user_mod = ".$usermodid; $sql .= " WHERE id = ".((int) $id); if ($this->db->query($sql)) { 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..8c13709b250 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"; } diff --git a/htdocs/comm/action/class/cactioncomm.class.php b/htdocs/comm/action/class/cactioncomm.class.php index 8dd6b008045..2d57cfe1284 100644 --- a/htdocs/comm/action/class/cactioncomm.class.php +++ b/htdocs/comm/action/class/cactioncomm.class.php @@ -198,22 +198,27 @@ class CActionComm //var_dump($obj->type.' '.$obj->module.' '); var_dump($user->rights->facture->lire); $qualified = 0; // Special cases - if ($obj->module == 'invoice' && !empty($conf->facture->enabled) && !empty($user->rights->facture->lire)) { + 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->propale->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)) || (!empty($conf->rights->supplier_invoice->enabled) && !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)) || (empty($conf->rights->supplier_order->enabled) && !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 = preg_split("/@/", $obj->module, -1); + if (count($tmparray) > 1 && $tmparray[1] == 'eventorganization' && isModEnabled('eventorganization')) { $qualified = 1; } // For the generic case with type = 'module...' and module = 'myobject@mymodule' diff --git a/htdocs/comm/action/class/ical.class.php b/htdocs/comm/action/class/ical.class.php index 5449975e777..7ab09e8d891 100644 --- a/htdocs/comm/action/class/ical.class.php +++ b/htdocs/comm/action/class/ical.class.php @@ -25,6 +25,7 @@ * \brief File of class to parse ical calendars */ require_once DOL_DOCUMENT_ROOT.'/core/lib/xcal.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; /** @@ -39,6 +40,7 @@ class ICal public $todo_count; // Number of Todos public $freebusy_count; // Number of Freebusy public $last_key; //Help variable save last key (multiline string) + public $error; /** @@ -61,11 +63,15 @@ class ICal $this->file = $file; $file_text = ''; - $tmparray = file($file); - if (is_array($tmparray)) { - $file_text = join("", $tmparray); //load file - $file_text = preg_replace("/[\r\n]{1,} /", "", $file_text); + $tmpresult = getURLContent($file, 'GET'); + if ($tmpresult['http_code'] != 200) { + $file_text = ''; + $this->error = 'Error: '.$tmpresult['http_code'].' '.$tmpresult['content']; + } else { + $file_text = preg_replace("/[\r\n]{1,} /", "", $tmpresult['content']); } + //var_dump($tmpresult); + return $file_text; // return all text } @@ -396,19 +402,19 @@ class ICal public function get_event_list() { // phpcs:enable - return (!empty($this->cal['VEVENT']) ? $this->cal['VEVENT'] : ''); + return (empty($this->cal['VEVENT']) ? '' : $this->cal['VEVENT']); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Return eventlist array (not sort eventlist array) + * Return freebusy array (not sort eventlist array) * * @return array */ public function get_freebusy_list() { // phpcs:enable - return $this->cal['VFREEBUSY']; + return (empty($this->cal['VFREEBUSY']) ? '' : $this->cal['VFREEBUSY']); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php index 3de00e9cb6f..9a4a4e6a869 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'; } @@ -139,7 +140,7 @@ if ($object->id > 0) { print dol_get_fiche_head($head, 'documents', $langs->trans("Action"), -1, 'action'); - $linkback = img_picto($langs->trans("BackToList"), 'object_list', 'class="hideonsmartphone pictoactionview"'); + $linkback = img_picto($langs->trans("BackToList"), 'object_calendarlist', 'class="hideonsmartphone pictoactionview"'); $linkback .= ''.$langs->trans("BackToList").''; // Link to other agenda views @@ -159,7 +160,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') . ' '; $morehtmlref .= $langs->trans('Project').': '; diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 9f6ee0c539f..f46b0adc3cb 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'; } @@ -49,6 +50,8 @@ if (empty($conf->global->AGENDA_EXT_NB)) { } $MAXAGENDA = $conf->global->AGENDA_EXT_NB; +$disabledefaultvalues = GETPOST('disabledefaultvalues', 'int'); + $check_holiday = GETPOST('check_holiday', 'int'); $filter = GETPOST("search_filter", 'alpha', 3) ? GETPOST("search_filter", 'alpha', 3) : GETPOST("filter", 'alpha', 3); $filtert = GETPOST("search_filtert", "int", 3) ? GETPOST("search_filtert", "int", 3) : GETPOST("filtert", "int", 3); @@ -109,8 +112,8 @@ $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' -$type = GETPOSTISSET("search_type", 'aZ09') ? GETPOST("search_type", 'aZ09') : GETPOST("type", 'aZ09'); +$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') @@ -128,14 +131,11 @@ if (GETPOST('search_actioncode', 'array:aZ09')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); -} -if ($actioncode == '' && empty($actioncodearray)) { - $actioncode = (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE); + $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode") == '0' ? '0' : ((empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); } if ($status == '' && !GETPOSTISSET('search_status')) { - $status = (empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); + $status = ((empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); } $defaultview = (empty($conf->global->AGENDA_DEFAULT_VIEW) ? 'show_month' : $conf->global->AGENDA_DEFAULT_VIEW); @@ -213,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(); } @@ -277,12 +277,12 @@ if (empty($conf->global->AGENDA_DISABLE_EXT)) { if (!empty($conf->global->$source) && !empty($conf->global->$name)) { // Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight' $listofextcals[] = array( - 'src'=>$conf->global->$source, - 'name'=>$conf->global->$name, + 'src' => getDolGlobalString($source), + 'name' => getDolGlobalString($name), 'offsettz' => (!empty($conf->global->$offsettz) ? $conf->global->$offsettz : 0), - 'color'=>$conf->global->$color, - 'default'=>$conf->global->$default, - 'buggedfile'=>(isset($conf->global->buggedfile) ? $conf->global->buggedfile : 0) + 'color' => getDolGlobalString($color), + 'default' => getDolGlobalString($default), + 'buggedfile' => (isset($conf->global->buggedfile) ? $conf->global->buggedfile : 0) ); } } @@ -302,12 +302,12 @@ if (empty($user->conf->AGENDA_DISABLE_EXT)) { if (!empty($user->conf->$source) && !empty($user->conf->$name)) { // Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight' $listofextcals[] = array( - 'src'=>$user->conf->$source, - 'name'=>$user->conf->$name, + '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) + 'color' => $user->conf->$color, + 'default' => $user->conf->$default, + 'buggedfile' => (isset($user->conf->buggedfile) ? $user->conf->buggedfile : 0) ); } } @@ -397,7 +397,7 @@ if ($actioncode || GETPOSTISSET('search_actioncode')) { if ($resourceid > 0) { $param .= "&search_resourceid=".urlencode($resourceid); } -if ($status || GETPOSTISSET('status')) { +if ($status || GETPOSTISSET('status') || GETPOSTISSET('search_status')) { $param .= "&search_status=".urlencode($status); } if ($filter) { @@ -498,7 +498,7 @@ print ''; $viewmode = ''; $viewmode .= ''; //$viewmode .= ''; -$viewmode .= img_picto($langs->trans("List"), 'object_list', 'class="imgforviewmode pictoactionview block"'); +$viewmode .= img_picto($langs->trans("List"), 'object_calendarlist', 'class="imgforviewmode pictoactionview block"'); //$viewmode .= ''; $viewmode .= ''.$langs->trans("ViewList").''; @@ -622,7 +622,7 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on $s .= '
     
    '; // Calendars from hooks - $parameters = array(); $object = null; + $parameters = array(); $reshook = $hookmanager->executeHooks('addCalendarChoice', $parameters, $object, $action); if (empty($reshook)) { $s .= $hookmanager->resPrint; @@ -758,14 +758,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)"; } @@ -849,7 +852,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 @@ -1191,7 +1193,8 @@ if (count($listofextcals)) { foreach ($icalevents as $icalevent) { //var_dump($icalevent); - //print $icalevent['SUMMARY'].'->'.var_dump($icalevent).'
    ';exit; + //print $icalevent['SUMMARY'].'->'; + //var_dump($icalevent);exit; if (!empty($icalevent['RRULE'])) { continue; // We found a repeatable event. It was already split into unitary events, so we discard general rule. } @@ -1213,7 +1216,7 @@ if (count($listofextcals)) { $addevent = true; } elseif (!is_array($icalevent['DTSTART'])) { // not fullday event (DTSTART is not array. It is a value like '19700101T000000Z' for 00:00 in greenwitch) $datestart = $icalevent['DTSTART']; - $dateend = $icalevent['DTEND']; + $dateend = empty($icalevent['DTEND']) ? $datestart : $icalevent['DTEND']; $datestart += +($offsettz * 3600); $dateend += +($offsettz * 3600); @@ -1909,7 +1912,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%"'; diff --git a/htdocs/comm/action/info.php b/htdocs/comm/action/info.php index 225bc8b29fc..807a8e6f412 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'; } @@ -66,7 +67,7 @@ $object->info($object->id); $head = actions_prepare_head($object); print dol_get_fiche_head($head, 'info', $langs->trans("Action"), -1, 'action'); -$linkback = img_picto($langs->trans("BackToList"), 'object_list', 'class="hideonsmartphone pictoactionview"'); +$linkback = img_picto($langs->trans("BackToList"), 'object_calendarlist', 'class="hideonsmartphone pictoactionview"'); $linkback .= ''.$langs->trans("BackToList").''; // Link to other agenda views @@ -86,7 +87,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') . ' '; $morehtmlref .= $langs->trans('Project').': '; diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index f6932cc4bef..25e389f2e85 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'; @@ -45,6 +42,11 @@ $langs->loadLangs(array("users", "companies", "agenda", "commercial", "other", " $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'actioncommlist'; // To manage different context of search +$optioncss = GETPOST('optioncss', 'alpha'); +$toselect = GETPOST('toselect', 'array'); +$confirm = GETPOST('confirm', 'alpha'); + +$disabledefaultvalues = GETPOST('disabledefaultvalues', 'int'); $mode = GETPOST('mode', 'aZ09'); if (empty($mode) && preg_match('/show_/', $action)) { @@ -54,12 +56,9 @@ $resourceid = GETPOST("search_resourceid", "int") ?GETPOST("search_resourceid", $pid = GETPOST("search_projectid", 'int', 3) ?GETPOST("search_projectid", 'int', 3) : GETPOST("projectid", 'int', 3); $search_status = (GETPOST("search_status", 'aZ09') != '') ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); $type = GETPOST('search_type', 'alphanohtml') ?GETPOST('search_type', 'alphanohtml') : GETPOST('type', 'alphanohtml'); -$optioncss = GETPOST('optioncss', 'alpha'); $year = GETPOST("year", 'int'); $month = GETPOST("month", 'int'); $day = GETPOST("day", 'int'); -$toselect = GETPOST('toselect', 'array'); -$confirm = GETPOST('confirm', 'alpha'); // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index) if (GETPOST('search_actioncode', 'array')) { @@ -68,11 +67,9 @@ if (GETPOST('search_actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); -} -if ($actioncode == '' && empty($actioncodearray)) { - $actioncode = (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE); + $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode") == '0' ? '0' : ((empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); } + $search_id = GETPOST('search_id', 'alpha'); $search_title = GETPOST('search_title', 'alpha'); $search_note = GETPOST('search_note', 'alpha'); @@ -83,7 +80,7 @@ $datestart_dtend = dol_mktime(23, 59, 59, GETPOST('datestart_dtendmonth', 'int') $dateend_dtstart = dol_mktime(0, 0, 0, GETPOST('dateend_dtstartmonth', 'int'), GETPOST('dateend_dtstartday', 'int'), GETPOST('dateend_dtstartyear', 'int'), 'tzuserrel'); $dateend_dtend = dol_mktime(23, 59, 59, GETPOST('dateend_dtendmonth', 'int'), GETPOST('dateend_dtendday', 'int'), GETPOST('dateend_dtendyear', 'int'), 'tzuserrel'); if ($search_status == '' && !GETPOSTISSET('search_status')) { - $search_status = (empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); + $search_status = ((empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); } if (empty($mode) && !GETPOSTISSET('mode')) { $mode = (empty($conf->global->AGENDA_DEFAULT_VIEW) ? 'show_month' : $conf->global->AGENDA_DEFAULT_VIEW); @@ -183,7 +180,8 @@ if ($user->socid && $socid) { */ if (GETPOST('cancel', 'alpha')) { - $mode = 'list'; $massaction = ''; + $mode = 'list'; + $massaction = ''; } if (GETPOST("viewcal") || GETPOST("viewweek") || GETPOST("viewday")) { @@ -216,8 +214,15 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $datestart_dtend = ''; $dateend_dtstart = ''; $dateend_dtend = ''; + $actioncode = ''; $search_status = ''; - $toselect = ''; + $pid = ''; + $socid = ''; + $resourceid = ''; + $filter = ''; + $filtert = ''; + $usergroup = ''; + $toselect = array(); $search_array_options = array(); } @@ -261,13 +266,17 @@ if (empty($reshook)) { } /* - * View + * View */ $form = new Form($db); $userstatic = new User($db); $formactions = new FormActions($db); +$actionstatic = new ActionComm($db); +$societestatic = new Societe($db); +$contactstatic = new Contact($db); + $nav = ''; $nav .= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0); $nav .= ' '; @@ -275,7 +284,8 @@ $nav .= ' trans("Agenda"); +llxHeader('', $title, $help_url); // Define list of all external calendars $listofextcals = array(); @@ -299,7 +309,7 @@ if ($actioncode != '') { if ($resourceid > 0) { $param .= "&search_resourceid=".urlencode($resourceid); } -if ($search_status != '' && $search_status > -1) { +if ($search_status != '') { $param .= "&search_status=".urlencode($search_status); } if ($filter) { @@ -563,11 +573,11 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $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('/^SELECT[a-zA-Z0-9\._\s\(\),]+FROM/i', 'SELECT COUNT(*) as nbtotalofrecords FROM', $sql); $resql = $db->query($sqlforcount); $objforcount = $db->fetch_object($resql); $nbtotalofrecords = $objforcount->nbtotalofrecords; - if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 + if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0 $page = 0; $offset = 0; } @@ -588,12 +598,6 @@ if (!$resql) { $num = $db->num_rows($resql); - -$actionstatic = new ActionComm($db); -$societestatic = new Societe($db); - -$num = $db->num_rows($resql); - $arrayofselected = is_array($toselect) ? $toselect : array(); // Local calendar @@ -635,7 +639,6 @@ $s = $newtitle; // Calendars from hooks $parameters = array(); -$object = null; $reshook = $hookmanager->executeHooks('addCalendarChoice', $parameters, $object, $action); if (empty($reshook)) { $s .= $hookmanager->resPrint; @@ -648,7 +651,7 @@ $viewday = is_object($object) ? dol_print_date($object->datep, '%d') : ''; $viewmode = ''; $viewmode .= ''; //$viewmode .= ''; -$viewmode .= img_picto($langs->trans("List"), 'object_list', 'class="imgforviewmode pictoactionview block"'); +$viewmode .= img_picto($langs->trans("List"), 'object_calendarlist', 'class="imgforviewmode pictoactionview block"'); //$viewmode .= ''; $viewmode .= ''.$langs->trans("ViewList").''; @@ -680,7 +683,6 @@ $viewmode .= ''; // Add more views from hooks $parameters = array(); -$object = null; $reshook = $hookmanager->executeHooks('addCalendarView', $parameters, $object, $action); if (empty($reshook)) { $viewmode .= $hookmanager->resPrint; @@ -797,44 +799,57 @@ print '
    '; $searchpicto = $form->showFilterButtons(); print $searchpicto; 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 ) { @@ -973,10 +1003,10 @@ while ($i < min($num, $limit)) { 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').'
    "; -print ''; -print ''; +// If no record found +if ($num == 0) { + print '
    '.$langs->trans("NoRecordFound").'
    '."\n"; +print '
    '."\n"; + +print ''."\n"; $db->free($resql); diff --git a/htdocs/comm/action/pertype.php b/htdocs/comm/action/pertype.php index eee8baa2b20..61092df5665 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)) { @@ -45,32 +46,41 @@ if (!isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) { $action = GETPOST('action', 'aZ09'); +$disabledefaultvalues = GETPOST('disabledefaultvalues', 'int'); + $filter = GETPOST("search_filter", 'alpha', 3) ? GETPOST("search_filter", 'alpha', 3) : GETPOST("filter", 'alpha', 3); $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"); @@ -81,6 +91,7 @@ if ($socid < 0) { $socid = ''; } +// Permissions $canedit = 1; if (empty($user->rights->agenda->myactions->read)) { accessforbidden(); @@ -93,16 +104,17 @@ if (empty($user->rights->agenda->allactions->read) || $filter == 'mine') { // I } $mode = 'show_pertype'; -$resourceid = GETPOST("search_resourceid", "int") ?GETPOST("search_resourceid", "int") : GETPOST("resourceid", "int"); -$year = GETPOST("year", "int") ?GETPOST("year", "int") : date("Y"); -$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 = GETPOST("search_status", 'alpha') ?GETPOST("search_status", 'alpha') : GETPOST("status", 'alpha'); -$type = GETPOST("search_type", 'alpha') ?GETPOST("search_type", 'alpha') : GETPOST("type", 'alpha'); -$maxprint = ((GETPOST("maxprint", 'int') != '') ?GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); +$resourceid = GETPOST("search_resourceid", "int") ? GETPOST("search_resourceid", "int") : GETPOST("resourceid", "int"); +$year = GETPOST("year", "int") ? GETPOST("year", "int") : date("Y"); +$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", 'alpha') : GETPOST("status", 'alpha'); +$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); @@ -110,19 +122,17 @@ if (GETPOST('search_actioncode', 'array')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode", "alpha") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); -} -if ($actioncode == '' && empty($actioncodearray)) { - $actioncode = (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE); + $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode", "alpha") == '0' ? '0' : ((empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); } $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); @@ -138,31 +148,39 @@ 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); $begin_d = 1; $end_d = 53; -if ($status == '' && !GETPOSTISSET('status')) { - $status = (empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); +if ($status == '' && !GETPOSTISSET('search_status')) { + $status = ((empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); } 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 $langs->loadLangs(array('users', 'agenda', 'other', 'commercial')); @@ -175,6 +193,8 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } +$search_status = $status; + /* * Actions @@ -186,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(); } @@ -215,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'); @@ -223,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) @@ -243,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; @@ -276,7 +297,7 @@ if ($actioncode || GETPOSTISSET('search_actioncode')) { if ($resourceid > 0) { $param .= "&search_resourceid=".urlencode($resourceid); } -if ($status || GETPOSTISSET('status')) { +if ($status || GETPOSTISSET('status') || GETPOSTISSET('search_status')) { $param .= "&search_status=".urlencode($status); } if ($filter) { @@ -402,7 +423,7 @@ if ($conf->use_javascript_ajax) { //$s.='
    '.$langs->trans("AgendaShowBirthdayEvents").'  
    '; // Calendars from hooks - $parameters = array(); $object = null; + $parameters = array(); $reshook = $hookmanager->executeHooks('addCalendarChoice', $parameters, $object, $action); if (empty($reshook)) { $s .= $hookmanager->resPrint; @@ -417,7 +438,7 @@ $massactionbutton = ''; $viewmode = ''; $viewmode .= '
    '; //$viewmode .= ''; -$viewmode .= img_picto($langs->trans("List"), 'object_list', 'class="imgforviewmode pictoactionview block"'); +$viewmode .= img_picto($langs->trans("List"), 'object_calendarlist', 'class="imgforviewmode pictoactionview block"'); //$viewmode .= ''; $viewmode .= ''.$langs->trans("ViewList").''; @@ -957,7 +978,9 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s $ymd = sprintf("%04d", $year).sprintf("%02d", $month).sprintf("%02d", $day); $nextindextouse = count($colorindexused); // At first run, this is 0, so fist user has 0, next 1, ... - //if ($username->id && $day==1) var_dump($eventarray); + //if ($username->id && $day==1) { + //var_dump($eventarray); + //} // We are in a particular day for $username, now we scan all events foreach ($eventarray as $daykey => $notused) { diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 957ccd6e361..5c5ef948c30 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'; @@ -45,6 +46,8 @@ if (!isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) { $action = GETPOST('action', 'aZ09'); +$disabledefaultvalues = GETPOST('disabledefaultvalues', 'int'); + $filter = GETPOST("search_filter", 'alpha', 3) ? GETPOST("search_filter", 'alpha', 3) : GETPOST("filter", 'alpha', 3); $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); @@ -98,9 +101,9 @@ $year = GETPOST("year", "int") ?GETPOST("year", "int") : date("Y"); $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 = GETPOST("search_status", 'alpha') ?GETPOST("search_status", 'alpha') : GETPOST("status", 'alpha'); -$type = GETPOST("search_type", 'alpha') ?GETPOST("search_type", 'alpha') : GETPOST("type", 'alpha'); +$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', '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') // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index) @@ -110,10 +113,7 @@ if (GETPOST('search_actioncode', 'array:aZ09')) { $actioncode = '0'; } } else { - $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode", "alpha") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); -} -if ($actioncode == '' && empty($actioncodearray)) { - $actioncode = (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE); + $actioncode = GETPOST("search_actioncode", "alpha", 3) ?GETPOST("search_actioncode", "alpha", 3) : (GETPOST("search_actioncode", "alpha") == '0' ? '0' : ((empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE)); } $dateselect = dol_mktime(0, 0, 0, GETPOST('dateselectmonth', 'int'), GETPOST('dateselectday', 'int'), GETPOST('dateselectyear', 'int')); @@ -153,9 +153,10 @@ if ($end_d < $begin_d) { $end_d = $begin_d + 1; } -if ($status == '' && !GETPOSTISSET('status')) { - $status = (empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); +if ($status == '' && !GETPOSTISSET('search_status')) { + $status = ((empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS) || $disabledefaultvalues) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_STATUS); } + if (empty($mode) && !GETPOSTISSET('mode')) { $mode = (empty($conf->global->AGENDA_DEFAULT_VIEW) ? 'show_month' : $conf->global->AGENDA_DEFAULT_VIEW); } @@ -170,6 +171,8 @@ if (GETPOST('viewday', 'alpha') || $mode == 'show_day') { $mode = 'show_day'; $day = ($day ? $day : date("d")); } // View by day +$object = new ActionComm($db); + // Load translation files required by the page $langs->loadLangs(array('users', 'agenda', 'other', 'commercial')); @@ -181,6 +184,8 @@ if ($user->socid && $socid) { $result = restrictedArea($user, 'societe', $socid); } +$search_status = $status; + /* * Actions @@ -192,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(); } @@ -282,7 +287,8 @@ if ($actioncode || GETPOSTISSET('search_actioncode')) { if ($resourceid > 0) { $param .= "&search_resourceid=".urlencode($resourceid); } -if ($status || GETPOSTISSET('status')) { + +if ($status || GETPOSTISSET('status') || GETPOSTISSET('search_status')) { $param .= "&search_status=".urlencode($status); } if ($filter) { @@ -412,7 +418,7 @@ if ($conf->use_javascript_ajax) { //$s.='
    '.$langs->trans("AgendaShowBirthdayEvents").'  
    '; // Calendars from hooks - $parameters = array(); $object = null; + $parameters = array(); $reshook = $hookmanager->executeHooks('addCalendarChoice', $parameters, $object, $action); if (empty($reshook)) { $s .= $hookmanager->resPrint; @@ -427,7 +433,7 @@ $massactionbutton = ''; $viewmode = ''; $viewmode .= ''; //$viewmode .= ''; -$viewmode .= img_picto($langs->trans("List"), 'object_list', 'class="imgforviewmode pictoactionview block"'); +$viewmode .= img_picto($langs->trans("List"), 'object_calendarlist', 'class="imgforviewmode pictoactionview block"'); //$viewmode .= ''; $viewmode .= ''.$langs->trans("ViewList").''; @@ -509,9 +515,6 @@ $s = $newtitle; print $s; print '
    '; -if (empty($search_status)) { - $search_status = ''; -} print_actions_filter($form, $canedit, $search_status, $year, $month, $day, $showbirthday, 0, $filtert, 0, $pid, $socid, $action, -1, $actioncode, $usergroup, '', $resourceid); print '
    '; @@ -625,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)"; } @@ -897,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 "; @@ -1126,7 +1131,9 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & $colorindexused[$user->id] = 0; // Color index for current user (user->id) is always 0 $nextindextouse = count($colorindexused); // At first run this is 0, so first user has 0, next 1, ... - //if ($username->id && $day==1) var_dump($eventarray); + //if ($username->id && $day==1) { + //var_dump($eventarray); + //} // We are in a particular day for $username, now we scan all events foreach ($eventarray as $daykey => $notused) { 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 bfa62eba7fc..d0aa0db96b0 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'; @@ -82,7 +83,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/comm/admin/propaldet_extrafields.php b/htdocs/comm/admin/propaldet_extrafields.php index 19b7674449f..4d68948e34c 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'; @@ -85,7 +86,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 4aca208681b..67df6af0298 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'; @@ -40,25 +41,23 @@ 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.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (!empty($conf->facture->enabled)) { +if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -} -if (!empty($conf->facture->enabled)) { 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)) { @@ -68,19 +67,19 @@ if (!empty($conf->ficheinter->enabled)) { // 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 (!empty($conf->facture->enabled)) { +if (isModEnabled('facture')) { $langs->load("bills"); } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $langs->load("projects"); } if (!empty($conf->ficheinter->enabled)) { @@ -173,7 +172,7 @@ if (empty($reshook)) { // terms of the settlement if ($action == 'setconditions' && $user->rights->societe->creer) { $object->fetch($id); - $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); + $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'), GETPOST('cond_reglement_id_deposit_percent', 'alpha')); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } @@ -415,9 +414,9 @@ if ($object->id > 0) { print ''; print ''; if ($action == 'editconditions') { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_id, 'cond_reglement_id', 1); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_id, 'cond_reglement_id', 1, '', 1, $object->deposit_percent); } else { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_id, 'none'); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_id, 'none', 0, '', 1, $object->deposit_percent); } print ""; print ''; @@ -440,7 +439,7 @@ if ($object->id > 0) { print ""; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { // Compte bancaire par défaut print ''; print ''; print ''; } - if (!empty($conf->intracommreport->enabled)) { + if (isModEnabled('intracommreport')) { // Transport mode by default print ''; + } else { + print ''; + } + } else { + //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 ''; + } + } + } + $db->close(); - - // Copy directory medias - $srcroot = DOL_DOCUMENT_ROOT.'/install/medias'; - $destroot = DOL_DATA_ROOT.'/medias'; - dolCopyDir($srcroot, $destroot, 0, 0); - - - // Actions for all versions (no database change but delete some files and directories) - migrate_delete_old_files($db, $langs, $conf); - migrate_delete_old_dir($db, $langs, $conf); - // Actions for all versions (no database change but create some directories) - dol_mkdir(DOL_DATA_ROOT.'/bank'); - // Actions for all versions (no database change but rename some directories) - migrate_rename_directories($db, $langs, $conf, '/banque/bordereau', '/bank/checkdeposits'); - $silent = 0; if (!$silent) { print '
    '; @@ -512,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 '
    '; @@ -586,7 +585,7 @@ if ($object->id > 0) { print '
    '; print ''; print ''."\n"; + } - migrate_relationship_tables($db, $langs, $conf, 'co_exp', 'fk_commande', 'commande', 'fk_expedition', 'shipping'); + // Current version is $conf->global->MAIN_VERSION_LAST_UPGRADE + // Version to install is DOL_VERSION + $dolibarrlastupgradeversionarray = preg_split('/[\.-]/', isset($conf->global->MAIN_VERSION_LAST_UPGRADE) ? $conf->global->MAIN_VERSION_LAST_UPGRADE : (isset($conf->global->MAIN_VERSION_LAST_INSTALL) ? $conf->global->MAIN_VERSION_LAST_INSTALL : '')); - migrate_relationship_tables($db, $langs, $conf, 'pr_exp', 'fk_propal', 'propal', 'fk_expedition', 'shipping'); + // Chaque action de migration doit renvoyer une ligne sur 4 colonnes avec + // dans la 1ere colonne, la description de l'action a faire + // dans la 4eme colonne, le texte 'OK' si fait ou 'AlreadyDone' si rien n'est fait ou 'Error' - migrate_relationship_tables($db, $langs, $conf, 'pr_liv', 'fk_propal', 'propal', 'fk_livraison', 'delivery'); + $versiontoarray = explode('.', $versionto); + $versionranarray = explode('.', DOL_VERSION); - migrate_relationship_tables($db, $langs, $conf, 'co_liv', 'fk_commande', 'commande', 'fk_livraison', 'delivery'); - migrate_relationship_tables($db, $langs, $conf, 'co_pr', 'fk_propale', 'propal', 'fk_commande', 'commande'); + $afterversionarray = explode('.', '2.0.0'); + $beforeversionarray = explode('.', '2.7.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + // Script pour V2 -> V2.1 + migrate_paiements($db, $langs, $conf); - migrate_relationship_tables($db, $langs, $conf, 'fa_pr', 'fk_propal', 'propal', 'fk_facture', 'facture'); + migrate_contracts_det($db, $langs, $conf); - migrate_relationship_tables($db, $langs, $conf, 'co_fa', 'fk_commande', 'commande', 'fk_facture', 'facture'); + migrate_contracts_date1($db, $langs, $conf); - migrate_project_user_resp($db, $langs, $conf); + migrate_contracts_date2($db, $langs, $conf); - migrate_project_task_actors($db, $langs, $conf); - } + migrate_contracts_date3($db, $langs, $conf); - // Script for 2.9 - $afterversionarray = explode('.', '2.8.9'); - $beforeversionarray = explode('.', '2.9.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_project_task_time($db, $langs, $conf); + migrate_contracts_open($db, $langs, $conf); - migrate_customerorder_shipping($db, $langs, $conf); + migrate_modeles($db, $langs, $conf); - migrate_shipping_delivery($db, $langs, $conf); + migrate_price_propal($db, $langs, $conf); - migrate_shipping_delivery2($db, $langs, $conf); - } + migrate_price_commande($db, $langs, $conf); - // Script for 3.0 - $afterversionarray = explode('.', '2.9.9'); - $beforeversionarray = explode('.', '3.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - // No particular code - } + migrate_price_commande_fournisseur($db, $langs, $conf); - // Script for 3.1 - $afterversionarray = explode('.', '3.0.9'); - $beforeversionarray = explode('.', '3.1.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_rename_directories($db, $langs, $conf, '/rss', '/externalrss'); + migrate_price_contrat($db, $langs, $conf); - migrate_actioncomm_element($db, $langs, $conf); - } + migrate_paiementfourn_facturefourn($db, $langs, $conf); - // Script for 3.2 - $afterversionarray = explode('.', '3.1.9'); - $beforeversionarray = explode('.', '3.2.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_price_contrat($db, $langs, $conf); - migrate_mode_reglement($db, $langs, $conf); + // Script pour V2.1 -> V2.2 + migrate_paiements_orphelins_1($db, $langs, $conf); - migrate_clean_association($db, $langs, $conf); - } + migrate_paiements_orphelins_2($db, $langs, $conf); - // Script for 3.3 - $afterversionarray = explode('.', '3.2.9'); - $beforeversionarray = explode('.', '3.3.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_categorie_association($db, $langs, $conf); - } + migrate_links_transfert($db, $langs, $conf); - // Script for 3.4 - // No specific scripts - // Tasks to do always and only into last targeted version - $afterversionarray = explode('.', '3.6.9'); // target is after this - $beforeversionarray = explode('.', '3.7.9'); // target is before this - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_event_assignement($db, $langs, $conf); - } + // Script pour V2.2 -> V2.4 + migrate_commande_expedition($db, $langs, $conf); - // Scripts for 3.9 - $afterversionarray = explode('.', '3.7.9'); - $beforeversionarray = explode('.', '3.8.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - // No particular code - } + migrate_commande_livraison($db, $langs, $conf); - // Scripts for 4.0 - $afterversionarray = explode('.', '3.9.9'); - $beforeversionarray = explode('.', '4.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_rename_directories($db, $langs, $conf, '/fckeditor', '/medias'); - } + migrate_detail_livraison($db, $langs, $conf); - // Scripts for 5.0 - $afterversionarray = explode('.', '4.0.9'); - $beforeversionarray = explode('.', '5.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - // Migrate to add entity value into llx_societe_remise - migrate_remise_entity($db, $langs, $conf); - // Migrate to add entity value into llx_societe_remise_except - migrate_remise_except_entity($db, $langs, $conf); - } + // Script pour V2.5 -> V2.6 + migrate_stocks($db, $langs, $conf); - // Scripts for 6.0 - $afterversionarray = explode('.', '5.0.9'); - $beforeversionarray = explode('.', '6.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - if (!empty($conf->multicompany->enabled)) { - global $multicompany_transverse_mode; - // Only if the transverse mode is not used - if (empty($multicompany_transverse_mode)) { - // Migrate to add entity value into llx_user_rights - migrate_user_rights_entity($db, $langs, $conf); + // Script pour V2.6 -> V2.7 + migrate_menus($db, $langs, $conf); - // Migrate to add entity value into llx_usergroup_rights - migrate_usergroup_rights_entity($db, $langs, $conf); + migrate_commande_deliveryaddress($db, $langs, $conf); + + migrate_restore_missing_links($db, $langs, $conf); + + migrate_rename_directories($db, $langs, $conf, '/compta', '/banque'); + + migrate_rename_directories($db, $langs, $conf, '/societe', '/mycompany'); + } + + // Script for 2.8 + $afterversionarray = explode('.', '2.7.9'); + $beforeversionarray = explode('.', '2.8.9'); + //print $versionto.' '.versioncompare($versiontoarray,$afterversionarray).' '.versioncompare($versiontoarray,$beforeversionarray); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_price_facture($db, $langs, $conf); // Code of this function works for 2.8+ because need a field tva_tx + + migrate_relationship_tables($db, $langs, $conf, 'co_exp', 'fk_commande', 'commande', 'fk_expedition', 'shipping'); + + migrate_relationship_tables($db, $langs, $conf, 'pr_exp', 'fk_propal', 'propal', 'fk_expedition', 'shipping'); + + migrate_relationship_tables($db, $langs, $conf, 'pr_liv', 'fk_propal', 'propal', 'fk_livraison', 'delivery'); + + migrate_relationship_tables($db, $langs, $conf, 'co_liv', 'fk_commande', 'commande', 'fk_livraison', 'delivery'); + + migrate_relationship_tables($db, $langs, $conf, 'co_pr', 'fk_propale', 'propal', 'fk_commande', 'commande'); + + migrate_relationship_tables($db, $langs, $conf, 'fa_pr', 'fk_propal', 'propal', 'fk_facture', 'facture'); + + migrate_relationship_tables($db, $langs, $conf, 'co_fa', 'fk_commande', 'commande', 'fk_facture', 'facture'); + + migrate_project_user_resp($db, $langs, $conf); + + migrate_project_task_actors($db, $langs, $conf); + } + + // Script for 2.9 + $afterversionarray = explode('.', '2.8.9'); + $beforeversionarray = explode('.', '2.9.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_project_task_time($db, $langs, $conf); + + migrate_customerorder_shipping($db, $langs, $conf); + + migrate_shipping_delivery($db, $langs, $conf); + + migrate_shipping_delivery2($db, $langs, $conf); + } + + // Script for 3.0 + $afterversionarray = explode('.', '2.9.9'); + $beforeversionarray = explode('.', '3.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + // No particular code + } + + // Script for 3.1 + $afterversionarray = explode('.', '3.0.9'); + $beforeversionarray = explode('.', '3.1.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_rename_directories($db, $langs, $conf, '/rss', '/externalrss'); + + migrate_actioncomm_element($db, $langs, $conf); + } + + // Script for 3.2 + $afterversionarray = explode('.', '3.1.9'); + $beforeversionarray = explode('.', '3.2.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_price_contrat($db, $langs, $conf); + + migrate_mode_reglement($db, $langs, $conf); + + migrate_clean_association($db, $langs, $conf); + } + + // Script for 3.3 + $afterversionarray = explode('.', '3.2.9'); + $beforeversionarray = explode('.', '3.3.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_categorie_association($db, $langs, $conf); + } + + // Script for 3.4 + // No specific scripts + + // Tasks to do always and only into last targeted version + $afterversionarray = explode('.', '3.6.9'); // target is after this + $beforeversionarray = explode('.', '3.7.9'); // target is before this + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_event_assignement($db, $langs, $conf); + } + + // Scripts for 3.9 + $afterversionarray = explode('.', '3.7.9'); + $beforeversionarray = explode('.', '3.8.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + // No particular code + } + + // Scripts for 4.0 + $afterversionarray = explode('.', '3.9.9'); + $beforeversionarray = explode('.', '4.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_rename_directories($db, $langs, $conf, '/fckeditor', '/medias'); + } + + // Scripts for 5.0 + $afterversionarray = explode('.', '4.0.9'); + $beforeversionarray = explode('.', '5.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + // Migrate to add entity value into llx_societe_remise + migrate_remise_entity($db, $langs, $conf); + + // Migrate to add entity value into llx_societe_remise_except + migrate_remise_except_entity($db, $langs, $conf); + } + + // Scripts for 6.0 + $afterversionarray = explode('.', '5.0.9'); + $beforeversionarray = explode('.', '6.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + if (isModEnabled('multicompany')) { + global $multicompany_transverse_mode; + + // Only if the transverse mode is not used + if (empty($multicompany_transverse_mode)) { + // Migrate to add entity value into llx_user_rights + migrate_user_rights_entity($db, $langs, $conf); + + // Migrate to add entity value into llx_usergroup_rights + migrate_usergroup_rights_entity($db, $langs, $conf); + } } } - } - // Scripts for 7.0 - $afterversionarray = explode('.', '6.0.9'); - $beforeversionarray = explode('.', '7.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - // Migrate contact association - migrate_event_assignement_contact($db, $langs, $conf); + // Scripts for 7.0 + $afterversionarray = explode('.', '6.0.9'); + $beforeversionarray = explode('.', '7.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + // Migrate contact association + migrate_event_assignement_contact($db, $langs, $conf); - migrate_reset_blocked_log($db, $langs, $conf); - } - - // Scripts for 8.0 - $afterversionarray = explode('.', '7.0.9'); - $beforeversionarray = explode('.', '8.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_rename_directories($db, $langs, $conf, '/contracts', '/contract'); - } - - // Scripts for 9.0 - $afterversionarray = explode('.', '8.0.9'); - $beforeversionarray = explode('.', '9.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_user_photospath(); - } - - // Scripts for 11.0 - $afterversionarray = explode('.', '10.0.9'); - $beforeversionarray = explode('.', '11.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_users_socialnetworks(); - migrate_members_socialnetworks(); - migrate_contacts_socialnetworks(); - migrate_thirdparties_socialnetworks(); - } - - // Scripts for 14.0 - $afterversionarray = explode('.', '13.0.9'); - $beforeversionarray = explode('.', '14.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_export_import_profiles('export'); - migrate_export_import_profiles('import'); - } - - // Scripts for 16.0 - $afterversionarray = explode('.', '15.0.9'); - $beforeversionarray = explode('.', '16.0.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_user_photospath2(); - } - } - - - // Code executed only if migration is LAST ONE. Must always be done. - if (versioncompare($versiontoarray, $versionranarray) >= 0 || versioncompare($versiontoarray, $versionranarray) <= -3) { - // Reload modules (this must be always done and only into last targeted version, because code to reload module may need table structure of last version) - $listofmodule = array( - 'MAIN_MODULE_ACCOUNTING'=>'newboxdefonly', - 'MAIN_MODULE_AGENDA'=>'newboxdefonly', - 'MAIN_MODULE_BOM'=>'menuonly', - 'MAIN_MODULE_BANQUE'=>'menuonly', - 'MAIN_MODULE_BARCODE'=>'newboxdefonly', - 'MAIN_MODULE_CRON'=>'newboxdefonly', - 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', - 'MAIN_MODULE_BLOCKEDLOG'=>'noboxes', - 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', - 'MAIN_MODULE_DON'=>'newboxdefonly', - 'MAIN_MODULE_ECM'=>'newboxdefonly', - 'MAIN_MODULE_EXTERNALSITE'=>'newboxdefonly', - 'MAIN_MODULE_EXPENSEREPORT'=>'newboxdefonly', - 'MAIN_MODULE_FACTURE'=>'newboxdefonly', - 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', - 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', - 'MAIN_MODULE_MARGIN'=>'menuonly', - 'MAIN_MODULE_MRP'=>'menuonly', - 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly', - 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', - 'MAIN_MODULE_PRINTING'=>'newboxdefonly', - 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', - 'MAIN_MODULE_RECRUITMENT'=>'menuonly', - 'MAIN_MODULE_RESOURCE'=>'noboxes', - 'MAIN_MODULE_SALARIES'=>'newboxdefonly', - 'MAIN_MODULE_SERVICE'=>'newboxdefonly', - 'MAIN_MODULE_SYSLOG'=>'newboxdefonly', - 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', - 'MAIN_MODULE_STRIPE'=>'menuonly', - 'MAIN_MODULE_TICKET'=>'newboxdefonly', - 'MAIN_MODULE_TAKEPOS'=>'newboxdefonly', - 'MAIN_MODULE_USER'=>'newboxdefonly', //This one must be always done and only into last targeted version) - 'MAIN_MODULE_VARIANTS'=>'newboxdefonly', - 'MAIN_MODULE_WEBSITE'=>'newboxdefonly', - ); - - $result = migrate_reload_modules($db, $langs, $conf, $listofmodule); - if ($result < 0) { - $error++; - } - // Reload menus (this must be always and only into last targeted version) - $result = migrate_reload_menu($db, $langs, $conf); - if ($result < 0) { - $error++; - } - } - - // Can force activation of some module during migration with parameter 'enablemodules=MAIN_MODULE_XXX,MAIN_MODULE_YYY,...' - // In most cases (online install or upgrade) $enablemodules is empty. Can be forced when ran from command line. - if (!$error && $enablemodules) { - // Reload modules (this must be always done and only into last targeted version) - $listofmodules = array(); - $enablemodules = preg_replace('/enablemodules=/', '', $enablemodules); - $tmplistofmodules = explode(',', $enablemodules); - foreach ($tmplistofmodules as $value) { - $listofmodules[$value] = 'forceactivate'; - } - - $resultreloadmodules = migrate_reload_modules($db, $langs, $conf, $listofmodules, 1); - if ($resultreloadmodules < 0) { - $error++; - } - } - - - // Can call a dedicated external upgrade process - if (!$error) { - $parameters = array('versionfrom' => $versionfrom, 'versionto' => $versionto); - $object = new stdClass(); - $action = "upgrade"; - $reshook = $hookmanager->executeHooks('doUpgrade2', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks - if ($hookmanager->resNbOfHooks > 0) { - if ($reshook < 0) { - print ''; - } else { - print ''; + migrate_reset_blocked_log($db, $langs, $conf); } - } else { - //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 ''; + + // Scripts for 8.0 + $afterversionarray = explode('.', '7.0.9'); + $beforeversionarray = explode('.', '8.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_rename_directories($db, $langs, $conf, '/contracts', '/contract'); + } + + // Scripts for 9.0 + $afterversionarray = explode('.', '8.0.9'); + $beforeversionarray = explode('.', '9.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_user_photospath(); + } + + // Scripts for 11.0 + $afterversionarray = explode('.', '10.0.9'); + $beforeversionarray = explode('.', '11.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_users_socialnetworks(); + migrate_members_socialnetworks(); + migrate_contacts_socialnetworks(); + migrate_thirdparties_socialnetworks(); + } + + // Scripts for 14.0 + $afterversionarray = explode('.', '13.0.9'); + $beforeversionarray = explode('.', '14.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_export_import_profiles('export'); + migrate_export_import_profiles('import'); + } + + // Scripts for 16.0 + $afterversionarray = explode('.', '15.0.9'); + $beforeversionarray = explode('.', '16.0.9'); + if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { + migrate_user_photospath2(); + } + } + + + // Code executed only if migration is LAST ONE. Must always be done. + if (versioncompare($versiontoarray, $versionranarray) >= 0 || versioncompare($versiontoarray, $versionranarray) <= -3) { + // Reload modules (this must be always done and only into last targeted version, because code to reload module may need table structure of last version) + $listofmodule = array( + 'MAIN_MODULE_ACCOUNTING'=>'newboxdefonly', + 'MAIN_MODULE_AGENDA'=>'newboxdefonly', + 'MAIN_MODULE_BOM'=>'menuonly', + 'MAIN_MODULE_BANQUE'=>'menuonly', + 'MAIN_MODULE_BARCODE'=>'newboxdefonly', + 'MAIN_MODULE_CRON'=>'newboxdefonly', + 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', + 'MAIN_MODULE_BLOCKEDLOG'=>'noboxes', + 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', + 'MAIN_MODULE_DON'=>'newboxdefonly', + 'MAIN_MODULE_ECM'=>'newboxdefonly', + 'MAIN_MODULE_EXTERNALSITE'=>'newboxdefonly', + 'MAIN_MODULE_EXPENSEREPORT'=>'newboxdefonly', + 'MAIN_MODULE_FACTURE'=>'newboxdefonly', + 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', + 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', + 'MAIN_MODULE_MARGIN'=>'menuonly', + 'MAIN_MODULE_MRP'=>'menuonly', + 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly', + 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', + 'MAIN_MODULE_PRINTING'=>'newboxdefonly', + 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', + 'MAIN_MODULE_RECRUITMENT'=>'menuonly', + 'MAIN_MODULE_RESOURCE'=>'noboxes', + 'MAIN_MODULE_SALARIES'=>'newboxdefonly', + 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_SYSLOG'=>'newboxdefonly', + 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', + 'MAIN_MODULE_STRIPE'=>'menuonly', + 'MAIN_MODULE_TICKET'=>'newboxdefonly', + 'MAIN_MODULE_TAKEPOS'=>'newboxdefonly', + 'MAIN_MODULE_USER'=>'newboxdefonly', //This one must be always done and only into last targeted version) + 'MAIN_MODULE_VARIANTS'=>'newboxdefonly', + 'MAIN_MODULE_WEBSITE'=>'newboxdefonly', + ); + + $result = migrate_reload_modules($db, $langs, $conf, $listofmodule); + if ($result < 0) { + $error++; + } + // Reload menus (this must be always and only into last targeted version) + $result = migrate_reload_menu($db, $langs, $conf); + if ($result < 0) { + $error++; + } + } + + // Can force activation of some module during migration with parameter 'enablemodules=MAIN_MODULE_XXX,MAIN_MODULE_YYY,...' + // In most cases (online install or upgrade) $enablemodules is empty. Can be forced when ran from command line. + if (!$error && $enablemodules) { + // Reload modules (this must be always done and only into last targeted version) + $listofmodules = array(); + $enablemodules = preg_replace('/enablemodules=/', '', $enablemodules); + $tmplistofmodules = explode(',', $enablemodules); + foreach ($tmplistofmodules as $value) { + $listofmodules[$value] = 'forceactivate'; + } + + $resultreloadmodules = migrate_reload_modules($db, $langs, $conf, $listofmodules, 1); + if ($resultreloadmodules < 0) { + $error++; + } + } + + + // Can call a dedicated external upgrade process with hook doUpgradeAfterDB() + if (!$error) { + $parameters = array('versionfrom' => $versionfrom, 'versionto' => $versionto, 'conf'=>$conf); + $object = new stdClass(); + $action = "upgrade"; + $reshook = $hookmanager->executeHooks('doUpgradeAfterDB', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks + if ($hookmanager->resNbOfHooks > 0) { + if ($reshook < 0) { + print ''; + } else { + print ''; + } + } else { + //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 ''; + } } } } print '
    '; @@ -607,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").''; @@ -623,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"); @@ -699,7 +698,7 @@ if ($object->id > 0) { $boxstat .= ''; $boxstat .= ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -217,7 +226,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->rights->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 +292,7 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa $companystatic->canvas = $obj->canvas; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -313,7 +323,8 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa /* * Draft customer 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 +390,7 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { $companystatic->canvas = $obj->canvas; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -397,7 +408,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 +421,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->rights->fournisseur->commande->lire) || (isModEnabled("supplier_order") && $user->rights->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 +488,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 +506,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); @@ -508,7 +520,12 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU * Draft interventionals */ if (!empty($conf->ficheinter->enabled)) { - $sql = "SELECT f.rowid, f.ref, s.nom as name, s.rowid as socid"; + $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,22 +541,47 @@ 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) { + $num = $db->num_rows($resql); + $nbofloop = min($num, $maxofloop); + 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']; @@ -720,7 +719,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']; @@ -741,7 +740,7 @@ if ($object->id > 0) { } } - if (!empty($conf->facture->enabled) && $user->rights->facture->lire) { + if (isModEnabled('facture') && $user->rights->facture->lire) { // Box factures $tmp = $object->getOutstandingBills('customer', 0); $outstandingOpened = $tmp['opened']; @@ -820,14 +819,14 @@ 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"; $sql .= ", p.total_tva"; $sql .= ", p.total_ttc"; $sql .= ", p.ref, p.ref_client, p.remise"; - $sql .= ", p.datep as dp, p.fin_validite as date_limit"; + $sql .= ", p.datep as dp, p.fin_validite as date_limit, p.entity"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."c_propalst as c"; $sql .= " WHERE p.fk_soc = s.rowid AND p.fk_statut = c.id"; $sql .= " AND s.rowid = ".((int) $object->id); @@ -887,7 +886,7 @@ if ($object->id > 0) { } } $relativepath = dol_sanitizeFileName($objp->ref).'/'.dol_sanitizeFileName($objp->ref).'.pdf'; - print $formfile->showPreview($file_list, $propal_static->element, $relativepath, 0, $param); + print $formfile->showPreview($file_list, $propal_static->element, $relativepath, 0); } // $filename = dol_sanitizeFileName($objp->ref); // $filedir = $conf->propal->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); @@ -915,9 +914,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"; @@ -1024,9 +1025,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'; @@ -1035,7 +1036,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'; @@ -1122,8 +1123,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); @@ -1156,6 +1158,8 @@ 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 = ''; @@ -1170,30 +1174,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); @@ -1226,7 +1232,7 @@ if ($object->id > 0) { * Latest interventions */ if (!empty($conf->ficheinter->enabled) && $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"; + $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"; $sql .= " AND s.rowid = ".((int) $object->id); @@ -1261,7 +1267,7 @@ if ($object->id > 0) { print ''; print $fichinter_static->getNomUrl(1); // Preview - $filedir = $conf->fichinter->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); + $filedir = $conf->ficheinter->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); @@ -1283,7 +1289,7 @@ if ($object->id > 0) { } } $relativepath = dol_sanitizeFileName($objp->ref).'/'.dol_sanitizeFileName($objp->ref).'.pdf'; - print $formfile->showPreview($file_list, $fichinter_static->element, $relativepath, 0, $param); + print $formfile->showPreview($file_list, $fichinter_static->element, $relativepath, 0); } // $filename = dol_sanitizeFileName($objp->ref); // $filedir = $conf->fichinter->multidir_output[$objp->entity].'/'.dol_sanitizeFileName($objp->ref); @@ -1311,7 +1317,7 @@ if ($object->id > 0) { /* * Latest invoices templates */ - if (!empty($conf->facture->enabled) && $user->rights->facture->lire) { + if (isModEnabled('facture') && $user->rights->facture->lire) { $sql = 'SELECT f.rowid as id, f.titre as ref'; $sql .= ', f.total_ht'; $sql .= ', f.total_tva'; @@ -1406,11 +1412,12 @@ if ($object->id > 0) { /* * Latest invoices */ - if (!empty($conf->facture->enabled) && $user->rights->facture->lire) { + if (isModEnabled('facture') && $user->rights->facture->lire) { $sql = 'SELECT f.rowid as facid, f.ref, f.type'; $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'; @@ -1419,7 +1426,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"; @@ -1477,7 +1484,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); @@ -1542,12 +1549,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 ''; } @@ -1564,18 +1571,18 @@ if ($object->id > 0) { // Add invoice if ($user->socid == 0) { - if (!empty($conf->deplacement->enabled) && $object->status == 1) { + if (isModEnabled('deplacement') && $object->status == 1) { $langs->load("trips"); print ''; } - if (!empty($conf->facture->enabled) && $object->status == 1) { + if (isModEnabled('facture') && $object->status == 1) { if (empty($user->rights->facture->creer)) { print ''; } 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 ''; @@ -1597,7 +1604,7 @@ if ($object->id > 0) { } // Add action - if (!empty($conf->agenda->enabled) && !empty($conf->global->MAIN_REPEATTASKONEACHTAB) && $object->status == 1) { + if (isModEnabled('agenda') && !empty($conf->global->MAIN_REPEATTASKONEACHTAB) && $object->status == 1) { if ($user->rights->agenda->myactions->create) { print ''; } else { 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 dafc1e7ee16..ed6184e0cd4 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 (!empty($conf->ficheinter->enabled)) { + 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); @@ -87,19 +91,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 (!empty($conf->ficheinter->enabled)) { + $fichinterstatic = new Fichinter($db); +} + llxHeader("", $langs->trans("CommercialArea")); print load_fiche_titre($langs->trans("CommercialArea"), '', 'commercial'); @@ -120,7 +128,8 @@ if ($tmp) { /* * Draft customer proposals */ -if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { + +if (isModEnabled("propal") && $user->rights->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 +195,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) { $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++; } } @@ -552,7 +594,7 @@ print '
    '; /* * Last modified customers or prospects */ -if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { +if (isModEnabled("societe") && $user->rights->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 +656,7 @@ if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { $companystatic->canvas = $objp->canvas; print '
    '; - print ''; + print ''; print ''; - print ''; + + $datem = $db->jdate($objp->tms); + print ''; print ''; $i++; @@ -654,7 +700,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->rights->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"; @@ -707,7 +753,7 @@ if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_S $companystatic->canvas = $objp->canvas; print ''; - print ''; + print ''; print ''; - print ''; + + $datem = $db->jdate($objp->dm); + print ''; print ''; $i++; @@ -761,7 +811,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->rights->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"; @@ -817,8 +867,8 @@ if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) { // T $staticcontrat->ref = $obj->ref; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; @@ -839,7 +889,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->rights->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"; @@ -914,7 +964,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { print ''; + print ''; print ''; - print ''; + print ''; + print ''; print '
    '.$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 '
    '.$companystatic->getNomUrl(1, 'customer').''.$companystatic->getNomUrl(1, 'customer').''; //print $companystatic->getLibCustProspStatut(); @@ -627,14 +669,18 @@ 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).''; }*/ print $s; print ''.dol_print_date($db->jdate($objp->tms), 'day').''; + print dol_print_date($datem, 'day', 'tzuserrel'); + print '
    '.$companystatic->getNomUrl(1, 'supplier').''.$companystatic->getNomUrl(1, 'supplier').''; $obj = $companystatic; @@ -719,13 +765,17 @@ 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; print ''.dol_print_date($db->jdate($objp->dm), 'day').''; + print dol_print_date($datem, 'day', 'tzuserrel'); + 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 ''; @@ -922,7 +972,10 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { print ''; print ''; - print ''; + $datem = $db->jdate($obj->dp); + print ''; print ''; print ''; @@ -955,7 +1008,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"; @@ -1031,7 +1084,7 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { 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/php-iban/.travis.yml b/htdocs/includes/php-iban/.travis.yml new file mode 100644 index 00000000000..c775f178e7f --- /dev/null +++ b/htdocs/includes/php-iban/.travis.yml @@ -0,0 +1,21 @@ +matrix: + include: + - php: 5.3 + dist: precise +language: php +dist: trusty +php: + - '5.4' + - '5.5' + - '5.6' + - '7.0' + - '7.4' + - '8.0' + - '8.1' + - hhvm-3.3 + - hhvm-3.6 + - hhvm-3.9 + - hhvm-3.12 + - hhvm-3.15 + - hhvm-3.18 +script: php utils/test.php && php utils/ootest.php && php utils/other-tests.php diff --git a/htdocs/includes/php-iban/README.md b/htdocs/includes/php-iban/README.md new file mode 100644 index 00000000000..78b5c121c30 --- /dev/null +++ b/htdocs/includes/php-iban/README.md @@ -0,0 +1,1467 @@ +php-iban +======== + +`php-iban` is a library for parsing, validating and generating IBAN (and IIBAN) bank account information in PHP. + +[![Build Status](https://travis-ci.org/globalcitizen/php-iban.png)](https://travis-ci.org/globalcitizen/php-iban) +[![Latest Stable Version](https://poser.pugx.org/globalcitizen/php-iban/v/stable)](https://packagist.org/packages/globalcitizen/php-iban) +[![License](https://poser.pugx.org/globalcitizen/php-iban/license)](https://packagist.org/packages/globalcitizen/php-iban) + +All parts of an IBAN can be retrieved, including country code, checksum, BBAN, financial institution or bank code, account number, and where a fixed-length national system is in use, also branch/sort code. Legacy national checksums may also be retrieved, validated and correctly set, where available, whether they apply to the account number portion, bank and branch identifiers, part or all of the above. IBAN country codes can be converted in to ISO3166-1 alpha-2 and IANA formats, the parent IBAN country acting as registrar for dependent territories may be queried, the official national currency (ISO4217 alpha code format), central bank name and central bank URL may also be queried to ease integration. IBANs may be converted between human and machine representation. IBANs may be obfuscated for presentation to humans in special circumstances such as relative identification. A database of example/test IBANs from different countries is included. Finally, highly accurate suggestions for originally intended input can be made when an incorrect IBAN is detected and is due to mistranscription error. + +Tested on PHP versions: ![PHP 5.2](https://img.shields.io/badge/version-PHP%205.2%2B-lightgrey.svg) ![PHP 5.3](https://img.shields.io/badge/version-PHP%205.3%2B-lightgrey.svg) ![PHP 5.4](https://img.shields.io/badge/version-PHP%205.4%2B-lightgrey.svg) ![PHP 5.5](https://img.shields.io/badge/version-PHP%205.5%2B-lightgrey.svg) ![PHP 5.6](https://img.shields.io/badge/version-PHP%205.6%2B-lightgrey.svg) ![PHP 7.0](https://img.shields.io/badge/version-PHP%207.0%2B-lightgrey.svg) ![PHP 7.4](https://img.shields.io/badge/version-PHP%207.4%2B-lightgrey.svg) + +Test on HHVM versions: ![HHVM 3.3](https://img.shields.io/badge/version-HHVM%203.3%2B-lightgrey.svg) ![HHVM 3.6](https://img.shields.io/badge/version-HHVM%203.6%2B-lightgrey.svg) ![HHVM 3.9](https://img.shields.io/badge/version-HHVM%203.9%2B-lightgrey.svg) ![HHVM 3.12](https://img.shields.io/badge/version-HHVM%203.12%2B-lightgrey.svg) ![HHVM 3.15](https://img.shields.io/badge/version-HHVM%203.15%2B-lightgrey.svg) ![HHVM 3.18](https://img.shields.io/badge/version-HHVM%203.18%2B-lightgrey.svg) + +The parser was built using regular expressions to adapt the contents of the _official_ IBAN registry available from SWIFT then manually modified for special cases such as [errors and omissions in SWIFT's official specifications](https://raw.githubusercontent.com/globalcitizen/php-iban/master/docs/COMEDY-OF-ERRORS). + +Various deficiencies in the initial adaptation have since been rectified, and the current version should be a fairly correct and reliable implementation. + +Where appropriate, __European Committee for Banking Standards__ (ECBS) recommendations have also been incorporated. + +Please bear in mind that because the specification changes frequently, it may not be 100% up to date if a new version has been recently released - I do my best though. We are currently thought to be up to date with [the January 2020 release, ie. PDF release #86](https://www.swift.com/standards/data-standards/iban). + +Licensed under LGPL, it is free to use in commercial settings. + + +Countries Supported +------------------- + +The following 116 official and *unofficial* IBAN countries are supported. + +* Albania (AL) +* *Algeria* (DZ) +* Andorra (AD) +* *Angola* (AO) +* Austria (AT) +* Azerbaijan (AZ) +* Bahrain (BH) +* Belarus (BY) +* Belgium (BE) +* *Benin* (BJ) +* Bosnia and Herzegovina (BA) +* Brazil (BR) +* British Virgin Islands (VG) +* Bulgaria (BG) +* *Burkina Faso* (BF) +* *Burundi* (BI) +* *Cameroon* (CM) +* *Central African Republic* (CF) +* *Chad* (TD) +* *Cape Verde* (CV) +* *Comoros* (KM) +* *Congo* (CG) +* Costa Rica (CR) +* *Côte d'Ivoire* (CI) +* Croatia (HR) +* Cyprus (CY) +* Czech Republic (CZ) +* Denmark (DK) + * Faroe Islands (FO) + * Greenland (GL) +* *Djibouti* (DJ) +* Dominican Republic (DO) +* East Timor (TL) +* *Egypt* (EG) +* El Salvador (SV) +* *Equitorial Guinea* (GQ) +* Estonia (EE) +* Finland (FI) + * Åland Islands (AX) +* France (FR) + * French Guiana (GF) + * French Polynesia (PF) + * French Southern Territories (TF) + * Guadelope (GP) + * Martinique (MQ) + * Mayotte (YT) + * New Caledonia (NC) + * Réunion (RE) + * Saint Barhélemy (BL) + * Saint Martin (French Part) (MF) + * Saint-Pierre and Miquelon (PM) + * Wallis and Futuna (WF) +* *Gabon* (GA) +* Georgia (GE) +* Germany (DE) +* Gibraltar (GI) +* Greece (GR) +* Guatemala (GT) +* *Guinea-Bissau* (GW) +* *Honduras* (HN) +* Hungary (HU) +* Iceland (IS) +* *IIBAN (Internet)* (AA) +* *Iran* (IR) +* Iraq (IQ) +* Ireland (IE) +* Israel (IL) +* Italy (IT) +* Jordan (JO) +* Kazakhstan (KZ) +* Kosovo (XK) +* Kuwait (KW) +* Latvia (LV) +* Lebanon (LB) +* Liechtenstein (LI) +* Lithuania (LT) +* Luxembourg (LU) +* Macedonia (MK) +* *Madagascar* (MG) +* *Mali* (ML) +* Malta (MT) +* Mauritania (MR) +* Mauritius (MU) +* Moldova (MD) +* Monaco (MC) +* Montenegro (ME) +* *Morocco* (MA) +* *Mozambique* (MZ) +* Netherlands (NL) +* *Nicaragua* (NI) +* *Niger* (NE) +* Norway (NO) +* Pakistan (PK) +* Palestine (PS) +* Poland (PL) +* Portugal (PT) +* Qatar (QA) +* Romania (RO) +* Saint Lucia (LC) +* San Marino (SM) +* São Tomé and Príncipe (ST) +* Saudi Arabia (SA) +* *Senegal* (SN) +* Serbia (RS) +* Seychelles (SC) +* Slovakia (SK) +* Slovenia (SI) +* Spain (ES) +* Sweden (SE) +* Switzerland (CH) +* *Togo* (TG) +* Tunisia (TN) +* Turkey (TR) +* *Ukraine* (UA) +* United Arab Emirates (AE) +* United Kingdom (GB) + + +Installation via composer +------------------------- + +If you use [composer](https://getcomposer.org/) you can simply run `composer require globalcitizen/php-iban` to get going. Reportedly [![Daily Downloads](https://poser.pugx.org/globalcitizen/php-iban/d/daily)](https://packagist.org/packages/globalcitizen/php-iban) (and [![Monthly Downloads](https://poser.pugx.org/globalcitizen/php-iban/d/monthly)](https://packagist.org/packages/globalcitizen/php-iban)) were done via composer. + +(If you don't yet have `composer` and wish to install it in an insecure fashion (not recommended, but convenient) you can run `curl -sS https://getcomposer.org/installer | php` or `wget -O- https://getcomposer.org/installer | php`) + +Then just add the following to your `composer.json` file: + +```js +// composer.json +{ + "require": { + "globalcitizen/php-iban": "4.1.0" + } +} +``` + +Then, you can install the new dependencies by running `composer`'s update command from the directory where your `composer.json` file is located: + +```sh +# install +$ php composer.phar install +# update +$ php composer.phar update globalcitizen/php-iban + +# or you can simply execute composer command if you set it to +# your PATH environment variable +$ composer install +$ composer update globalcitizen/php-iban +``` + +You can [see this library on Packagist](https://packagist.org/packages/globalcitizen/php-iban). + + +Installation via git +-------------------- + +For a regular install, use the `git clone` command: + +```sh +# HTTP +$ git clone https://github.com/globalcitizen/php-iban.git +# SSH +$ git clone git@github.com:globalcitizen/php-iban.git +``` + + +Installation via git submodule +------------------------------ + +Alternatively, to embed the `php-iban` library in your own `git`-managed repository at a specific revision number, such that it is possible to update the version in a predictable way while maintaining a larger system that depends upon its functionality: +```sh +# enter your project's git repo +$ cd my-existing-project-with-a-git-repo/ +# select an appropriate place to create the php-iban subdir +$ cd lib/ +# add php-iban as a submodule +$ git submodule add https://github.com/globalcitizen/php-iban.git +# commit new submodule +$ git commit -m 'Add php-iban submodule' +``` + +Then, when checking out `git` projects with submodules for the first time, normally you need to make a couple of extra steps: +```sh +# check out your project as normal +$ git clone git@your-server.com:your/project.git +# initialize submodules +$ git submodule init +# update submodules +$ git submodule update +``` + +To skip these steps, add the `--recursive` argument to `git clone` when checking out: +```sh +# check out your project, initialize and update all submodules +$ git clone --recursive git@your-server.com:your/project.git +``` + +If you later wish to your project to use a newer version of `php-iban`, run: +```sh +# fetch changes +$ git submodule update --remote php-iban +# commit +$ git commit -m 'Update php-iban submodule' +``` + + +Manual installation +------------------- + +1. Fetch the latest release from [our github releases page](https://github.com/globalcitizen/php-iban/releases) in either `zip` or `tar.gz` format. +2. Extract the library using your favourite archive utility, for example `unzip filename.zip` on Unix-like platforms. +3. Write your code to depend on the library based upon its relative location to your source code. For example if you wish to include `php-iban` from the parent directory's subdirectory `libraries/php-iban` you could use the following [require_once()](http://php.net/manual/en/function.require-once.php) statement: +```php + +``` + + +Comparison of PHP IBAN libraries +-------------------------------- + +The following table compares __php-iban__ to other PHP projects offering IBAN-related functionality, on the basis of general project information and the programming paradigms supported. + +| Project | Lic. | Proc | OO | Began | Latest | Star | Watch | Fork | Installs | Home culture | Deps | +| ---------------------------------------------------------- | ---- | ---- | --- | ------ | ------ | ---- | ----- | ---- | -------- | ------------ | ------- | +| __php-iban__ | LGPL | ✔ | ✔ | 2009 | 4.1.0 | 344 | 26 | 76 | ~2M* | Global* | *none* | +| [Iban](https://github.com/jschaedl/Iban) | MIT | ✘ | ✔ | 2013 | 1.3.0 | 50 | 9 | 19 | 178.39k | German | lots | +| [IsoCodes](https://github.com/ronanguilloux/IsoCodes) | GPL3 | ✘ | ✔ | 2012 | 2.1.1 | 466 | 22 | 54 | 145k | French | lots | +| [SepaUtil's](https://github.com/AbcAeffchen/SepaUtilities) | GPL3 | ✘ | ✔ | 2014 | 1.2.3 | 8 | 4 | 3 | 25k | German | phpunit | +| [Symfony](https://github.com/symfony/symfony) | MIT | ✘ | ✔ | 2013 | 3.3.6 | 15k | 1214 | 5.6k | 23M+ | French | lots | + +Notes: + * Original download records for __php-iban__ releases were hosted on Google Code and are now lost. Prior to establishing a release process on Github, we just expected that people would download the code... so we're really not sure how many installs exist, but this is a fair guess (~11k + composer installs + a little bit now and then). + * __php-iban__ also powers: + * [adm-gravity-iban](https://github.com/InternativeNL/adm-gravity-iban) + * [Azzana consulting's XML Solver for ISO20022](http://www.azzana-consulting.com/xmlsolver/) + * [basepa Payment Gateway for WooCommerce](https://github.com/besepa/woocommerce-besepa) + * [org.civicoop.ibanaccounts extension](https://github.com/CiviCooP/org.civicoop.ibanaccounts) for [CiviCoop](http://www.civicoop.org/) + * [commerce_sepa](https://github.com/StephanGeorg/commerce_sepa) + * [contao-haste_plus](https://github.com/heimrichhannot/contao-haste_plus) + * [Dolibarr ERP & CRM](http://www.dolibarr.org/) ([website](https://github.com/Dolibarr/dolibarr/tree/develop/htdocs/includes/php-iban)) + * [fieldwork: Web forms for cool people](https://github.com/jmversteeg/fieldwork) + * [IBAN Validator](https://www.drupal.org/project/iban_validator) for Drupal + * [identity](https://github.com/mpijierro/identity) component for Laravel to check Spanish IDs + * [lib-bankaccount](https://github.com/majestixx/lib-bankaccount) (conversion to/from legacy German account format) + * [PHP SEPA XML](http://www.phpclasses.org/package/8179-PHP-Generate-XML-for-the-Single-Euro-Payments-Area.html) class ([github](https://github.com/dmitrirussu/php-sepa-xml-generator)) + * [Project60 SEPA direct debit](https://github.com/Project60/org.project60.sepa) + * [SEPA Payment Plugin](https://github.com/subs-guru/sepa-payment-plugin) for [SubsGuru](http://subs.guru/) + * [Silverstripe CMS module](https://github.com/denkfabrik-neueMedien/silverstripe-siteinfo) + * [statement](https://github.com/hiwye/statement) + * [WooCommerce Germanized](http://hookr.io/plugins/woocommerce-germanized/) + * [WooCommerce SEPA Payment Gateway](https://codecanyon.net/item/woocommerce-sepa-payment-gateway/7963419) + * php-iban's author is an Australian born, Australia/New Zealand/German citizen based in mainland China, who has formerly also worked and banked in the US, UK, and many Asian countries. + * The IsoCodes and SepaUtil's projects cover standards other than IBAN so their popularity should be considered in this light. (In essence, there is really only one directly competing library, Iban) + +Now let's take a look at features. + +| | + | ISO | IANA | SEPA | ₶ | UO | MT | NC | ₴ | CB | H? | Registry | +| ------------------------------------------------------------- | --- | --- | ---- | ---- | --- | --- | --- | --- | --- | --- | --- | ---------------------------------------------------------------------- | +| __php-iban__ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | 116: [full, error-corrected CSV](https://github.com/globalcitizen/php-iban/blob/master/registry.txt) with [open-source toolchain](https://github.com/globalcitizen/php-iban/blob/master/utils/convert-registry.php) and [documentation](https://github.com/globalcitizen/php-iban/blob/master/docs/COMEDY-OF-ERRORS) | +| [Iban](https://github.com/jschaedl/Iban) | ✔* | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | 54: [partial, hardcoded, dubious origin](https://github.com/jschaedl/Iban/blob/master/library/IBAN/Core/Constants.php#L44) | +| [IsoCodes](https://github.com/ronanguilloux/IsoCodes) | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | 66: [partial, hardcoded, dubious origin](https://github.com/ronanguilloux/IsoCodes/blob/master/src/IsoCodes/Iban.php#L25) | +| [SepaUtil's](https://github.com/AbcAeffchen/SepaUtilities) | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | 89: [partial, hardcoded, dubious origin](https://github.com/AbcAeffchen/SepaUtilities/blob/master/src/SepaUtilities.php#L89) | +| [Symfony](https://github.com/symfony/symfony) | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | 95: [partial, hardcoded](https://github.com/symfony/symfony/blob/09f92ba516b8840f2ee2dc630b75cbccfca5976b/src/Symfony/Component/Validator/Tests/Constraints/IbanValidatorTest.php), [dubious origin](https://github.com/symfony/symfony/blob/a4f3baae3758b0e72005353f624101f089e4302b/src/Symfony/Component/Validator/Constraints/IbanValidator.php) + +Note: + * __+__ refers to the capacity to create checksum-accurate potential IBANs programatically. It is the author's opinion that generation features without IIBAN support (ie. authority) are of dubious use, except in one-off migrations. (See also NC, below) + * __ISO__ refers to the capacity to convert between IBAN country codes and ISO3166-1 alpha-2 country codes + * __IANA__ refers to the capacity to convert between IBAN country codes and IANA country codes (eg. 'GB' to '.uk' and vice versa) + * __SEPA__ refers to the ability to check whether a particular IBAN country is a member of the Single Euro Payments Area (SEPA) + * __₶__ describes support for IIBAN, the open [proposal](http://www.ifex-project.org/) for decentralized financial endpoint generation by private parties, such as crypto-currency exchanges, whilst maintaining compatibility with the emerging IBAN system. This system has been adopted by major cryptocurrency exchanges such as [Kraken](https://www.kraken.com/). + * __UO__ refers to support for unofficial countries whose IBAN formats have been [published as in informal use](http://www.nordea.com/en/our-services/cashmanagement/iban-validator-and-information/iban-countries/index.html) by major financial institutions, but are not official SWIFT-published registry entries. + * __MT__ refers to mistranscription support: the capacity to automatically detect what the user probably meant when they make a transcription error on IBANs, such as those manually written or printed in confusing fonts, for instance writing 'L' instead of 'I' or '1', or vice versa. + * __NC__ refers to national checksum support: the capacity to verify and, where appropriate, set and extract the national checksum portion of a BBAN, for countries that offered pre-IBAN national checksum algorithms. + * __₴__ refers to support for querying the official national currency's ISO4217 code for an IBAN country + * __CB__ refers to support for querying the name and URL of the central bank of an IBAN country + * __H?__ refers to support for input and output for the human, space-laden or presentation variant of an IBAN, ie. `IBAN XXXX XXXX XXXX XXXX` instead of `XXXXXXXXXXXXXXXX` - a lot more reasonable. + +In short, while composer users have apparently lept on rival libraries (particularly Iban), probably due to the time it took us to integrate a composer file, those libraries are often either full-fledged web frameworks or burdensome in dependencies, less mature, fail to hat-tip to the free software foundation, do not support the procedural programming paradigm (for when AbstractProductClassMakerFactories just won't cut it), use data from dubious sources, tend to use licenses that are incompatible with certain commercial uses, and are frankly short on features. + +So, fearless user ... __choose php-iban__: the ethical, functional, forward-looking, low-hassle library of choice for IBAN and IIBAN processing. __Choose to win!__ ;) + + +Your Help Wanted +---------------- + + * If you know the URL of __national IBAN, BBAN or national checksum documentation__ from official sources, please let us know at [issue #39](https://github.com/globalcitizen/php-iban/issues/39) and [issue #41](https://github.com/globalcitizen/php-iban/issues/41). + * __Faroe Islands__ (FO) banks do not respond, neither does the Danish National Bank who referred me to them. + * __Luxembourg__ (LU) does not seem to conform to any single checksum system. While some IBAN do validate with reasonably common systems, others don't or use others. The suggestion that Luxembourg has a national checksum system may in fact be incorrect. We need some clarification here, hopefully someone can dig up an official statement. + * __Mauritania__ (MR) has a dual character checksum system but our example IBAN does not match MOD97-10 which would be the expected system. Previously the IBAN here was always fixed to '13' checksum digits, however as of registry v66 it is now dynamic, which suggests a changed or at least now nationally relaxed checksum system. + + * If you are willing to spend some time searching, we could do with some more test IBANs for most countries, especially smaller ones... + +News: July 2021 +--------------- + +__[Version 4.1.0](https://github.com/globalcitizen/php-iban/releases/tag/v4.1.0)__ has been released. + * New feature to check for EU memberships - thanks to [@julianpollmann](https://github.com/julianpollman) + +News: August 2020 +----------------- +__[Version 4.0.0](https://github.com/globalcitizen/php-iban/releases/tag/v4.0.0)__ has been released. + * Major version upgrade to certainly fix missing dot in prior release version string, thus avoiding composer hassles. (See [#108](https://github.com/globalcitizen/php-iban/issues/108)). I am really beginning to hate composer. + +__[Version 3.0.3](https://github.com/globalcitizen/php-iban/releases/tag/v3.0.3)__ has been released. + * Official support for php-7.4 + +__[Version 3.0.2](https://github.com/globalcitizen/php-iban/releases/tag/v3.0.2)__ has been released. + * BBAN length fixes for Bahrain and Quatar (thanks to @jledrogo) + +News: July 2020 +--------------- + +__[Version 3.0.0](https://github.com/globalcitizen/php-iban/releases/tag/v3.0.0)__ has been released. + * Same as previous but bump version to fix issues with the addition of namespaces. (See [#104](https://github.com/globalcitizen/php-iban/issues/104)) + * Versions 2.8.x are being removed from the releases. + * Hopefully this should fix things for users upgrading from earlier versions via composer. + +__[Version 2.8.2](https://github.com/globalcitizen/php-iban/releases/tag/v2.8.1)__ has been released. + * Same as previous but officially drop php-5.2 support due to lack of namespacing. + +__[Version 2.8.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.8.1)__ has been released. + * `TL` BBAN format regex removed extraneous spaces (did not affect IBAN validation). (Thanks to @DanyCorbineauBappli) + +News: June 2020 +--------------- +__[Version 2.8.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.8.0)__ has been released. + * Object oriented class is now namespaced. + +News: May 2020 +-------------- +__[Version 2.7.5](https://github.com/globalcitizen/php-iban/releases/tag/v2.7.5)__ has been released. + * Corrections from newer IBAN registry releases + * Updated Egypt example IBAN and registry entry (disabled French national checksum scheme as this no longer works with the example IBAN provided. Users with insight please check, there are no examples visible online!) + * Corrections to Polish BBAN length (now fixed, previously spuriously specified as variable) + * Corrections to Seychelles BBAN and IBAN structure + +__[Version 2.7.4](https://github.com/globalcitizen/php-iban/releases/tag/v2.7.4)__ has been released. + * New function `iban_to_obfsucated_format()` or `ObfuscatedFormat()` to obfuscate IBAN for specific output scenarios (such as relative identification) + * Thanks to @jaysee for feature request #99 + +News: November 2019 +------------------ +__[Version 2.7.3](https://github.com/globalcitizen/php-iban/releases/tag/v2.7.3)__ has been released. + * Load registry only when used. This creates slightly more overhead in real world use, but nominally substantially reduces load times in the edge case event that you include the library but only want to use a function that does not require the IBAN registry to be loaded. + * Thanks to @manitu-opensource + +__[Version 2.7.2](https://github.com/globalcitizen/php-iban/releases/tag/v2.7.2)__ has been released. + * Fix composer file to add license. + * Thanks to @SunMar + +News: October 2019 +------------------ +__[Version 2.7.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.7.1)__ has been released. + * Update erroneous bank ID stop offset for Costa Rica. + * Thanks to @thinkpozzitive + * Minor syntax updates + * Thanks to @bwurst + * Add quite a number of Costa Rica example IBANs for confidence in testing. + +News: July 2019 +--------------- + +__[Version 2.7.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.7.0)__ has been released. + * Fixed erroneous Liechtenstein BBAN length. + * Update National Bank of Greece name/website. + +News: August 2018 +----------------- + +__[Version 2.6.9](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.9)__ has been released. + * Added national checksum implementation for San Marino (`SM`) + * Thanks to @francescozanoni + +__[Version 2.6.8](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.8)__ has been released. + * Added national checksum implementation for Italy (`IT`) + * Thanks to @francescozanoni + +News: June 2018 +--------------- + +__[Version 2.6.7](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.7)__ has been released. + * Added national checksum implementation for Slovakia (`SK`) + * Thanks to @ostrolucky + +News: June 2018 +--------------- + +__[Version 2.6.6](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.6)__ has been released. + * Fixed generation of voluminous errors in environments without `ini_set` enabled + * Thanks to @agil-NUBBA + +News: March 2018 +---------------- + +__[Version 2.6.5](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.5)__ has been released. + * Fixed spurious warning when `gmp` extension was enabled + * Thanks to @marcovo + +__[Version 2.6.4](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.4)__ has been released. + * Remove spurious dependency on `bcmath` extension + * Minor documentation updates + +__[Version 2.6.3](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.3)__ has been released. + * Upgrade travis environment as old one broken + * Fix test execution under new Travis environment + * Re-addition of HHVM test environments + * Addition of PHP-5.2 test environment + * A few new test IBANs + +__[Version 2.6.2](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.2)__ has been released. + * Update Croatia SEPA status + * Thanks to @Pappshadow + +News: August 2017 +----------------- + +__[Version 2.6.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.1)__ has been released. + * Fixed missing registry data. + * Thanks to @monojp + +__[Version 2.6.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.6.0)__ has been released. + * World = conquered. + * We now have well over 100 supported countries. + * According to packagist, we are now the most popular IBAN-related project for PHP ... and quite possibly the internet! + * Addition of official countries + * Belarus (BY) + * El Salvador (SV) + * Iraq (IQ) + * Addition of unofficial countries + * Central African Republic (CF) + * Chad (TD) + * Comoros (KM) + * Congo (CG) + * Djibouti (DJ) + * Egypt (EG) + * Equitorial Guinea (GQ) + * Gabon (GA) + * Guinea-Bissau (GW) + * Honduras (HN) + * Morocco (MA) + * Nicaragua (NI) + * Niger (NE) + * Togo (TG) + * Additional example Iran (IR) IBANs. + * As HHVM is no longer supported by Travis we have dropped it from our automated testing, although php-iban should continue to work fine on HHVM. + * Minor documentation updates + + +News: October 2016 +------------------ + +__[Version 2.5.9](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.9)__ has been released. + * Bring us up to date with IBAN registry release #69 from #66 + * Release #67: fixes broken Costa Rica format and disables Croatia SEPA status + * Release #69: adds Sao Tome and Principe bank + branch offsets + + +News: August 2016 +----------------- + +__[Version 2.5.8](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.8)__ has been released. + * Fix [issue #52](https://github.com/globalcitizen/php-iban/issues/52) (thanks to [@simeucci](https://github.com/simeucci) for reporting), apologies for the delay! + * Minor documentation updates + + +News: June 2016 +--------------- + +__[Version 2.5.7](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.7)__ has been released. + * Minor changes missed in latest edition (May 2016, version 66) registry release + * New Seychelles (SC) example IBAN + * Unfix Mauritania (MR) checksum digits (no functional change) + * Minor documentation updates + + +News: May 2016 +-------------- + +__[Version 2.5.6](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.6)__ has been released. + * Update to conform with latest edition (May 2016, version 66) registry release + * Many of the corrections we had apparently already resolved on initial data import + * Moldova (MD): Split 20!c to 2!c18!c + * Seychelles (SC): Fix IBAN format (SWIFT markup) + * Tunisia (TN): Remove hardcoded 59 as IBAN checksum (following SWIFT; though inefficient) + * Minor documentation updates + * Update stats/figures for php-iban installs/stars/etc. + * Add new 'powered by' + + +News: April 2016 +---------------- + +__[Version 2.5.5](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.5)__ has been released. + * Update to conform with latest edition (April 2016, version 65) registry release + * Corrected account format for Seychelles (SC) to permit alphabetic characters (formerly numeric only) + + +News: March 2016 +---------------- + +__[Version 2.5.4](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.4)__ has been released. + * Update to conform with latest edition (March 2016, version 64) registry release + * Added Seychelles (SC) + * The three other changes apparently corrected registry errors we had already caught during record ingestion and testing + +__[Version 2.5.3](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.3)__ has been released. + * Added [Falsehoods Programmers Believe About IBANs](https://github.com/globalcitizen/php-iban/blob/master/docs/FALSEHOODS.md), inspired by... + * [Falsehoods Programmers Believe About Phone Numbers](https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md) + * [Falsehoods Programmers Believe About Names](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) + * [Falsehoods Programmers Believe About Time](http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time) + * [Falsehoods Programmers Believe About Geography](http://wiesmann.codiferes.net/wordpress/?p=15187) + * [Falsehoods Programmers Believe About Addresses](https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/) + * Additional example IBANs + * Azerbaijan (AZ) + * Austria (AT) + * Angola (AO) + * San Marino (SM) + * Various minor changes + + +News: February 2016 +------------------- + +__[Version 2.5.2](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.2)__ has been released. + * Miscellaneous test library updated to validate example IBANs collection. + +__[Version 2.5.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.1)__ has been released. + * The 'Narodna banka Srbije' (`908`) bank in Serbia (RS) appears to have multiple live IBANs with broken national checksums, so we ignore all national checksums on accounts from that bank. + +__[Version 2.5.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.5.0)__ has been released. + * All users are encouraged to upgrade; this release is considered long term stable. + * The following national checksum schemes added in the 2.4.x series are now included and well validated, while invalid assumptions have been removed: + * Belgium (BE) + * Spain (ES) + * Monaco (MC) + * France (FR) + * Norway (NO) + * Montenegro (ME) + * Macedonia (MK) + * Netherlands (NL) - including exception for `INGB` (ING Bank) who have dropped the original checksum + * Portugal (PT) + * Serbia (RS) + * Slovenia (SI) - including exception for `01` (Bank of Slovenia) who do not honour checksums + * Timor Lest (TL) + * In addition, a library of test IBANs is being maintained under `utils/example-ibans` which has a good number of entries for a good number of countries already. This should simplify future research. + * Documented [ideas for the enhancement of the mistranscription error correction suggestion function](https://github.com/globalcitizen/php-iban/commit/045f39b33468e04ff4a64a3bd8cba92611149935#diff-61178a0267b9e23c2b5c19c0f4671a22). + +__[Version 2.4.20](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.20)__ has been released. + * Another bugfix release, based on further real world test IBANs from certain countries: + * Remove Bosnia (BA) national checksum support + +__[Version 2.4.19](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.19)__ has been released. + * Another bugfix release, based on further real world test IBANs from certain countries: + * Remove Finland (FI) national checksum support + +__[Version 2.4.18](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.18)__ has been released. + * Another bugfix release, based on further real world test IBANs from certain countries: + * Remove Poland (PL) national checksum support + +__[Version 2.4.17](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.17)__ has been released. + * Bank of Slovenia (bank code `01` under Slovenia (SI)) does not implement the national checksum scheme, as a special case. An exception has been added to the Slovenia national checksum implementation. + +__[Version 2.4.16](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.16)__ has been released. + * Another bugfix release, based on further real world test IBANs from certain countries: + * Remove Sweden (SE) national checksum support + * I am now instituting a new rule that if national checksum support has not been tested on 10+ real world IBANs, preferably 20+ across a range of institutions, then it does not get committed. This means that small countries will be impossible to add until research is done beyond web-browsing. + +__[Version 2.4.15](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.15)__ has been released. + * The Netherlands (NL) bank 'INGB' no longer uses the national checksum scheme, and has been excepted from the check. This marks our first bank-specific checksum feature. + +__[Version 2.4.14](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.14)__ has been released. + * Another bugfix release, based on further real world test IBANs from certain countries: + * Remove Estonia (EE) national checksum support + * Remove Hungary (HU) national checksum support + +__[Version 2.4.13](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.13)__ has been released. + * This release is mostly about bugfixes, after spending a lot of time gathering IBANs online and using them for further testing. + * Tunisia (TN) national checksum support has been removed, after additional testing with IBAN gathered from the internet it was found not to be correct. Perils of reverse-engineering! + * A couple of other bugfixes: + * The function `iban_mistranscription_suggestions()` now behaves correctly when passed loosely formatted IBAN-like strings + * The checksum algorithm `_verhoeff()` which supports certain national checksum implementations now behaves correctly when passed invalid input + +__[Version 2.4.12](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.12)__ has been released. + * Tunisia (TN) national checksum support has been added. + +__[Version 2.4.11](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.11)__ has been released. + * It is now possible to query the central bank name and URL for each country, from new registry fields `central_bank_url` and `central_bank_name`, for example: + * The central bank for New Caledonia (NC) is the 'Overseas Issuing Institute (Institut d'émission d'Outre-Mer)' and their URL is http://www.ieom.fr/ + * The central bank for the British Virgin Islands (BV) is 'The British Virgin Islands Financial Services Commission' and their URL is http://www.bvifsc.vg/ + * There is no central bank for the IIBAN (Internet) (AA). + +__[Version 2.4.10](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.10)__ has been released. + * New registry field `currency_iso4217` stores the official currency of the country in ISO4217 alpha code format, for example: + * The currency of Iceland (IS) is ISD + * The currency of Saint-Pierre and Miquelon (PM) is EUR + * The currency of Wallis and Futuna (WF) is XPF + +__[Version 2.4.9](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.9)__ has been released. + * New registry field `parent_registrar` stores the parent registrar IBAN country of an IBAN country, for example: + * Åland Islands (AX) parent registrar is Finland (FI) + * Faroe Islands (FO) parent registrar is Denmark (DK) + * New Caledonia (NC) parent registrar is France (FR) + +__[Version 2.4.8](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.8)__ has been released. + * Monaco (MC) national checksum support has been added. + +__[Version 2.4.7](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.7)__ has been released. + * Netherlands (NL) national checksum support has been added. + +__[Version 2.4.6](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.6)__ has been released. + * Poland (PL) national checksum support has been added. + +__[Version 2.4.5](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.5)__ has been released. + * Estonia (EE) national checksum support has been added. + * Finland (FI) national checksum support has been added. + * Macedonia (MK) national checksum support has been added. + * Montenegro (ME) national checksum support has been added. + * Norway (NO) national checksum support has been added. + * Serbia (RS) national checksum support has been added. + * Slovenia (SI) national checksum support has been added. + * Sweden (SE) national checksum support has been added. + +__[Version 2.4.4](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.4)__ has been released. + * Portugal (PT) national checksum support has been added. + +__[Version 2.4.3](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.3)__ has been released. + * Hungary (HU) national checksum support has been added. + +__[Version 2.4.2](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.2)__ has been released. + * Albania (AL) national checksum support has been added. + * Timor-Leste (TL) national checksum support has been added. + +__[Version 2.4.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.1)__ has been released. + * Bosnia (BA) national checksum support has been added. + +__[Version 2.4.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.4.0)__ has been released. + * It is now possible to determine, verify and set the correct national checksums for some countries that offered a pre-IBAN national checksum algorithm via the new functions `iban_{set|find|verify}_nationalchecksum()` and their OO-wrapper equivalents. Presently Belgium (BE), France (FR) and Spain (ES) are supported. If you would like to see your country supported, please see [issue #39](https://github.com/globalcitizen/php-iban/issues/39) and [issue #41](https://github.com/globalcitizen/php-iban/issues/41). + + +News: January 2016 +------------------ + +__[Version 2.3.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.3.1)__ has been released. + * Fix paste error in Bosnia IANA code + * Additional tests for new country functions + +__[Version 2.3.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.3.0)__ has been released. + * All IBAN country records can now be cross-referenced with their corresponding [IANA](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains) and [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Current_codes) codes, if available + +__[Version 2.2.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.2.0)__ has been released. + * Fully up to date with SEPA membership list. (Added new member for 2016, Andorra) + * Fully up to date with latest SWIFT IBAN registry PDF. + * Many fixes and new features since 2.1.0 + * All users are encouraged to ugprade. + +__[Version 2.1.9](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.9)__ has been released. + * Example field updates attempting to include what is possible from SWIFT IBAN registry PDF version #63. There persist [significant issues with this release process](https://github.com/globalcitizen/php-iban/blob/master/docs/COMEDY-OF-ERRORS). + +__[Version 2.1.8](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.8)__ has been released. + * National BBAN checksum offset data for Belgium added. + +__[Version 2.1.7](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.7)__ has been released. + * National BBAN checksum offset data added to registry. This can be queried via the new functions `iban_get_nationalchecksum_part()`, `iban_country_get_nationalchecksum_start_offset()` and `iban_country_get_nationalchecksum_stop_offset()` and their OO-wrapper equivalents `$myIban->NationalChecksum()`, `$myCountry->NationalChecksumStartOffset()` and `$mycountry->NationalChecksumStopOffset()`. Test and documentation updated. If you know anything about national checksum algorithms, please lend a hand at [issue #39](https://github.com/globalcitizen/php-iban/issues/39). + +__[Version 2.1.6](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.6)__ has been released. + * OO wrapper and documentation updated for new strict `machine_format_only` validation. + +__[Version 2.1.5](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.5)__ has been released. + * Additional strict `machine_format_only` mode for `verify_iban()` to close [issue #22](https://github.com/globalcitizen/php-iban/issues/22). + +__[Version 2.1.4](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.4)__ has been released. + * Simplified a function using a php4+ builtin. + +__[Version 2.1.3](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.3)__ has been released. + * Behavior of `iban_to_human_format()` has been fixed when passed input already containing spaces. + * OO-based tests are now executed following successful procedural tests. + * An additional test library for testing edge-case behavior in general functions is now executed following the main tests. + +__[Version 2.1.2](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.2)__ has been released. All known unofficial IBAN country codes are now integrated. As well as minor documentation updates and a shortening of the reported name of Kosovo, this version adds: + * Ivory Coast (CI) + * Madagascar (MG) + * Mali (ML) + * Mozambique (MZ) + * Senegal (SN) + * Ukraine (UA) + +__[Version 2.1.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.1)__ has been released. Currently unofficial IBAN country codes are being integrated, and the process remains ongoing. This version adds: + * Burkina Faso (BF) + * Burundi (BI) + * Cameroon (CM) + * Cape Verde (CV) + * Iran (IR) + +__[Version 2.1.0](https://github.com/globalcitizen/php-iban/releases/tag/v2.1.0)__ has been released. +Currently unofficial IBAN country codes are being integrated, and the process remains ongoing. A new flag has been created to check whether a country is an official, SWIFT-issued record or not. The following new countries have therefore been added. + * Algeria (DZ) + * Angola (AO) + * Benin (BJ) + +Note also that the IIBAN (AA) record has been marked unofficial, and features listed in `docs/TODO` have been migrated to Github issues and that file deleted. + +__[Version 2.0.1](https://github.com/globalcitizen/php-iban/releases/tag/v2.0.1)__ has been released. This is to celebrate real testing, composer support, as well as finally catching up with changes. This version should be up to date with all registry changes to the present, including changes or additions to the countries: + * IIBAN (AA) + * Brazil (BR) + * Costa Rica (CR) + * Kazakhstan (KZ) + * Kosovo (XK) + * Kuwait (KW) + * Saint Barthelemy (BL) + * Saint Lucia (LC) + * Saint Martin (French Part) (MF) + * Sao Tome and Principe (ST) + * Timor Leste (TL) + * Turkey (TR) + +__[Version 1.6.0](https://github.com/globalcitizen/php-iban/releases/tag/v1.6.0)__ has been released. This version features more registry corrections (newly added territories with faulty data, bad checksums in sample IBANs, etc.) as well as enhanced testing routines, extended documentation, and corrected documentation. All users are advised to upgrade. We now have automated test script execution with Travis CI, to provide additional robustness for all committed code. This took longer than expected as unfortunately I picked the exact time Travis broke their build logs - https://www.traviscistatus.com/incidents/fcllblkclgmb - to see what all the fuss was about... proving again that cloud computing is just *great* for breaking things unexpectedly. Because they want to hide things, there was literally no debug output whatsoever, and I was led to believe this was my fault. Fellow programmers, behold: it is the dawning of the age of the mystical fail. + +__[Version 1.5.0](https://github.com/globalcitizen/php-iban/releases/tag/v1.5.0)__ has been released. There are no code changes, but we now have http://packagist.org/ integration, hopefully this triggers it to start working. If you use packagist, you can now add the library to your project by just running `composer require globalcitizen/php-iban` (thanks to @acoulton for pointing the way) + +__[Version 1.4.9](https://github.com/globalcitizen/php-iban/releases/tag/v1.4.9)__ has been released using the new Github-based release process. Hopefully this provides a solid anchor point for those bundling the library with other software. We also have a contributed composer metadata file to ease integration. +New IBAN registry URLs integrated. +Removed old SVN tag/trunk structure. + +News: July 2015 +--------------- +Corrected SWIFT URL to IBAN page. +Emphasized mistranscription error support. + +News: March 2015 +---------------- +Finally, google has killed `code.google.com` and we have migrated to Github! Once the old `trunk`/`tag` structure (lingering from `svn`) is cleaned up and this document translated from the old wiki format to markdown, a new version will be issued. + +News: June 2014 +--------------- + +__Version 1.4.6__ has been released: + * Fixes for Jordan and Qatar. Turns out both of them have broken TXT registry entries, PDF entries differ and the PDF is the one to go for (familiar story). + * Some further improvements. + +Unfortunately, Google now requires `code.google.com` projects to use Google Drive. I tried to use Google Drive (sign up for a new account, jump through email hoops, get treated as a robot, learn stupid new touchy-feely-friendly interface, get meaningless error messages like 'Your sharing limit has been exceeded' (with 2x290KB files on a new account I was told to create) and lost patience entirely. + +So for the moment, you'll just have to download using `git`, instead. I will migrate `php-iban` to Github shortly. Google really is a pain in the ass recently, what with all of this Google+ and Google Drive junk, ruining Picasa, ruining Sketchup by lack of attention, etc. What are they thinking? + +News: March 2014 +---------------- +__Version 1.4.5__ has been released: + * Addition of Jordan and Qatar + * Minor changes to documentation and support scripts. + +__Version 1.4.4__ has been released: + * Fix SEPA status of Croatia (HR) + * Subsqeuent SEPA status audit based upon https://en.wikipedia.org/wiki/Single_Euro_Payments_Area turned up some other status issues (this information is not contained within the official IBAN registry) + * Faroe Islands, Greenland, San Marino status fixed. Everything else apparently hunky dory. + +*The project source code repository has switched from `svn` (ugh) to `git` (yay!)*. + * This should make future changes less painful. + + +News: September 2013 +-------------------- +__Version 1.4.3__ has been released: + * Add Aland Islands (AX), part of Finland (FI) that is only documented in the SEPA status field of Finland and does not have its own entry or mention elsewhere in the IBAN registry document. + * Consider but do not add either of the somewhat similar Canary Islands (CI) or Ceuta/Melilla (EA) - both minor territories of Spain (ES) - due to lack of any evidence of usage. + * Fix SEPA status for Spain (ES), Finland (FI), Porgual (PT) due to registry values being mixed with free text. + * Document this and further issues with the official IBAN registry document, both as documentation in `docs/COMEDY-OF-ERRORS` and inline within the registry converter. + * Update human country name of Palestine to better mirror current registry document ("State of" is dropped as is the reigning style, so simply "Palestine" is presented) + * Updating an outstanding last modified date within the registry from the previous release + +News: August 2013 +----------------- +__Version 1.4.2__ has been released: + * Resolve issue #19: incorrect SEPA status of France/French territories due to a parser bug. (Thanks to the reporter) + +__Version 1.4.1__ has been released: + * Requests + * Attempts to intelligently calculate the 'account' portion of a BBAN based upon the (non-)presence of a branch ID and bank ID portion, by request (for Germany/Austria. Previously this was requested for the Netherlands, however this solution should fix results for everyone!) + * Add 'IIBAN' prefix removal support to machine format conversion function + * Add _gmp_ disable flag (`$__disable_iiban_gmp_extension=true;`) + * Silence warnings on some PHP engine configurations + * Update Brazil record (minor) + * No longer redistribute IBAN registry in .txt format + * Improve inline documentation + +News: June 2013 +--------------- +__Version 1.4.1__ is still being prepared, squashing some bugs and updating the registry ... meanwhile, it has come to my attention that we have been featured in the Code Candy blog! http://www.codecandies.com/2012/05/30/no-exceptions/ Hooray for the German sense of humour! Hahah. + +News: March 2013 +---------------- +__Version 1.4.0__ has been released: + * Resolves an issue reported affecting the last few versions when attempting to generate a correct checksum for a checksum-invalid IBAN. + * Adds `VERSION` file, to include hard version information in source tree, by request. + +News: February 2013 +------------------- +__Version 1.3.9__ has been released: + * Resolves issue reported in 1.3.7 re-enables the more efficient PHP _gmp_ library based checksum code (thanks to rpkamp) + +__Version 1.3.8__ has been released: + * An error in checksum processing for some IBANs using the new _gmp_ library based MOD97 routine (_only affects users with php-iban 1.3.7 and the PHP _gmp_ library enabled_) has been reported. As an immediate workaround 1.3.8 is being released with the following changes: + ** Code from 1.3.6 + ** Registry from 1.3.7 + +__Version 1.3.7__ has been released: + * Added Brazil + * Added two new French overseas territories + * Reduced 'Moldova' to normalized short-form name + * Large CPU efficiency improvement in IBAN validation routine (16x if PHP _gmp_ extension is installed, 5x otherwise. Special thanks to algorithmic contributor Chris and to engineers everywhere upholding the Germanic tradition of precision and efficiency! Alas, I am but part-German, for shame...) + * Minor internal/tool updates + * Some comedy of errors additions + +News: November 2012 +------------------- + +__Version 1.3.6__ has been released: + * Update IIBAN format for latest IETF draft. + +News: October 2012 +------------------ + +__Version 1.3.5__ has been released: + * Correct lack of support for lower case alphabetic characters (ie. non ECBS-compliant) in human to machine format conversion function. + +__Version 1.3.4__ has been released: + * Add reference to the latest ECBS recommendations and include them in documentation. + +__Version 1.3.3__ has been released: + * Very minor efficiency improvement. + +News: September 2012 +-------------------- + +__Version 1.3.2__ has been released: + * Registry updates + * Added Palestinian Territories + * Moldova fixed its format + * Finland fixed its bank identifier location + * Saudi Arabia - remove spurious trailing space in example + +News: June 2012 +--------------- + +__Version 1.3.1__ has been released: + * New countries added + * Azerbaijan (AZ) + * Costa Rica (CR) + * Guatemala (GT) + * Moldova (MD) + * Pakistan (PK) + * British Virgin Islands (VG) + * Miscellaneous updates + * Normalize/simplify examples (FI,PT,SA) + * Normalize/simplify human country name (BH,LI,MK) + * Documentation updates + +News: December 2011 +------------------- +__Version 1.3.0__ has been released. This release adds mistranscription error suggestion support. + +__Version 1.2.0__ has been released. This release adds Internet International Bank Account Number (IIBAN) support, as per the current IIBAN Internet Draft at http://tools.ietf.org/html/draft-iiban-01 + +News: September 2011 +-------------------- +__Version 1.1.2__ has been released. This adds long open tags to the main library file in order to simplify deployment on many default PHP installations. + +News: August 2011 +----------------- +__Version 1.1.1__ has been released. This fixes a typo in a function call in the new OO wrapper. Non OO users do not need to upgrade. + +News: July 2011 +--------------- +__Version 1.1.0__ has been released. This version adds an object oriented wrapper library and related updates to documentation and test scripts. It is not critical for existing users to upgrade. + +__Version 1.0.0__ has been released. This version includes the following changes: + * *Support for the SEPA flag* ("Is this country a member of the Single Euro Payments Area?"), both in the registry and with a new function `iban_country_is_sepa($iban_country)` + * *Placeholder support for converting machine format IBAN to human format* (simply adds a space every four characters) with the function `iban_to_human_format($iban)` + * *Fixed a series of domestic example issues* in the registry file that had been imported from SWIFT's own broken IBAN registry + * *Normalised example fields* in the registry to better facilitate use in automated contexts (Austria, Germany, etc.) + * *Updated test code* + * *Added a significant amount of new documentation* + * *Reorganised file layout• + * *Moved to _x.y.z_ format versioning and use of subversion 'tags'* in conjunction with the 1.0.0 release. + +--- + +Earlier in the month... *Small maintenance release*, not critical. + * The _split()_ function has been replaced with _explode()_ to prevent warnings (or error on _very_ new PHP engines) + * Resolved an issue on PHP environments configured to display warnings would display a warning when an IBAN input to be validated did not include a prefix that was a valid IBAN country code. (Nobody should be running production PHP environments with such warnings enabled, anyway!) + +News: June 2011 +--------------- + * We are now well over 1000 downloads: not bad considering how specific this project is! + * A *new version* has been released that fixes many important changes to the official registry, plus adds some new features. + * *Add New French Territories* (GF,GP,MQ,RE) + Older versions of the specification did not include the GF,GP,MQ,RE French territories, only the PF,TF,YT,NC,PM,WF French territories. The new territories have now been added to the database. + * *Add New Countries* + We welcome Bahrain (BH), Dominican Republic (DO), Khazakstan (KZ), United Arab Emirates (AE) to the database. + * *Format/example updates* + There have apparently been some minor format/example changes, these have been rolled in to existing countries. + * *Inclusion of altered IBAN_Registry.txt* + Errors and omissions have been found within the official IBAN_Registry.txt file, namely the exclusion of Khazakstan (KZ) and only partial information on Kuwait (KW), and errors in both of these countries' PDF specifications. This is SWIFT's fault: shame on them! I suspect they have changed staff recently. Anyway, a version of IBAN_Registry.txt with these problems solved is now distributed along with php-iban. + * *Fix for Tunisia* + Strangely I visited Tunisia during the revolution in January this year. Sorry to the Tunisian people for getting their IBAN format wrong! TN59 + 20 digits is the correct format. This is now included in the new registry file. + * *Fix for Albania* + The SWIFT format information was updated for Albania. (Did not affect validation, since this uses regular expressions which were already correct) + * *Additional and revised documentation* + Further documentation has been added to the project. + * *Automated IBAN_Registry.txt fix/conversion tool* + A new _convert-registry_ tool has been added to the project that attempts to automatically normalise/fix problems with the official SWIFT .txt specification as much as possible. Note that this is not enough to get a good registry.txt file (the internal format used by php-iban) as SWIFT's .txt release excludes entire countries in the PDF specification. In addition, there are some errors in the PDF specification that need to be manually resolved at present. These can be seen resolved in the _IBAN_Registry.txt_ file. + +News: December 2009 +------------------- + +*We now have a http://groups.google.com/group/php-iban-users mailing list. Feel free to post your feedback, queries or suggestions - we'd love to know how you are using the library. To date, the project has reached over 400 downloads and still going strong, with more than one new user per day - a pretty good showing for a specialised library! + +*__version 12__ has been released. The registry file has been improved, partly as a result of user reports and partly as a result of issues uncovered while performing automated tests against version 11. + + * *Corrected header row* + Two columns were not represented in the title (`bban_length` and `iban_length`). They have now been added. + + * *Fixes to registry entries for French Territories* (PF,TF,YT,NC,PM,WF) + French territories are not explicitly included in the SWIFT specification textfile. + They were duplicated from France according to an unstructured comments against + that entry. Example IBANs were then made for illustrative purposes by simply + modifying the country prefix without regenerating the checksums. The IBAN + examples included for these territories should now be correct. + + * *Gibraltar and Hungary* (GI,HU) + Fixed a bug where both territories had a superfluous colon appended to their regular expressions after initial document conversion, which was causing validation failures for all IBANs in those countries. + + * *Mauritius* (MU) + Corrected IBAN length expectation from 31 to 30. + + * *Sweden* (SE) + Example IBAN had been manually modified from IBAN specification example early in development and did not pass checksum. The IBAN official example has been restored. + + * *Tunisia* (TN) + Corrected improper validation strings caused by a bug in initial document conversion (IBAN format-specifier to regular-expression conversion function). + + +Documentation (Procedural/Recommended) +====================================== + +```php +require_once('php-iban.php'); +# ... your code utilising IBAN functions... +``` + +Validation Functions +-------------------- + +```php +# Verify an IBAN number. +# An optional second argument specifies $machine_format_only (default is false) +# If true, the function will not tolerate unclean inputs +# (eg. spaces, dashes, leading 'IBAN ' or 'IIBAN ', lower case) +# If false (default), input can be in either: +# - printed ('IIBAN xx xx xx...' or 'IBAN xx xx xx...'); or +# - machine ('xxxxx') +# ... string formats. +# Returns true or false. +if(!verify_iban($iban,$machine_format_only=false)) { + # ... +} + +# Check the checksum of an IBAN - code modified from Validate_Finance PEAR class +if(!iban_verify_checksum($iban)) { + # ... +} + +# Suggest what the user really meant in the case of transcription errors +$suggestions = iban_mistranscription_suggestions($bad_iban); +if(count($suggestions) == 1) { + print "You really meant " . $suggestions[0] . ", right?\n"; +} + +# Find the correct checksum for an IBAN +$correct_checksum = iban_find_checksum($iban); + +# Set the correct checksum for an IBAN +$fixed_iban = iban_set_checksum($iban); + +# Verify the pre-IBAN era, BBAN-level national checksum for those countries that +# have such a system and we have implemented. +# (Returns '' if unimplemented, true or false) +$result = iban_verify_nationalchecksum($iban); +if($result == '') { + print "National checksum system does not exist or remains unimplemented for the country of IBAN '$iban'.\n"; +} +elseif($result == true) { + print "IBAN '$iban' passes the national checksum algorithm for its country.\n"; +} +else { + print "IBAN '$iban' FAILS the national checksum algorithm for its country.\n"; +} + +# Set the pre-IBAN era, BBAN-level national checksum for those countries that +# have such a system, where that system results in a dedicated checksum +# substring, and that we have implemented. +# (Returns '' if unimplemented, or the corrected string) +# (NOTE: On success, the function also subsequently recalculates the IBAN-level checksum) +$national_checksum_algorithm_valid_iban = iban_set_nationalchecksum($iban); + +# Determine, but do not set, the pre-IBAN era, BBAN-level national checksum +# for those countries that have such a system, where that system results in +# a dedicated checksum substring, and that we have implemented. +# (Returns '' if unimplemented, or the expected national checksum substring) +$expected_national_checksum = iban_find_nationalchecksum($iban); +``` + + +Utility Functions +----------------- + +```php +# Convert an IBAN to machine format. To do this, we +# remove IBAN from the start, if present, and remove +# non basic roman letter / digit characters +$machine_iban = iban_to_machine_format($iban); + +# Convert an IBAN to human format. To do this, we +# add a space every four characters. +$human_iban = iban_to_human_format($iban); + +# Convert an IBAN to obfuscated format for relative +# identification. To do this, we replace all but the +# leading country code and final four characters with +# asterisks. +$obfuscated_iban = iban_to_obfuscated_format($iban); +``` + + +IBAN Country-Level Functions +---------------------------- +```php +# Get the name of an IBAN country +$country_name = iban_country_get_country_name($iban_country); + +# Get the domestic example for an IBAN country +$country_domestic_example = iban_country_get_domestic_example($iban_country); + +# Get the BBAN example for an IBAN country +$country_bban_example = iban_country_get_bban_example($iban_country); + +# Get the BBAN format (in SWIFT format) for an IBAN country +$country_bban_format_as_swift = iban_country_get_bban_format_swift($iban_country); + +# Get the BBAN format (as a regular expression) for an IBAN country +$country_bban_format_as_regex = iban_country_get_bban_format_regex($iban_country); + +# Get the BBAN length for an IBAN country +$country_bban_length = iban_country_get_bban_length($iban_country); + +# Get the IBAN example for an IBAN country +$country_iban_example = iban_country_get_iban_example($iban_country); + +# Get the IBAN length for an IBAN country +$country_iban_length = iban_country_get_iban_length($iban_country); + +# Get the IBAN format (in SWIFT format) for an IBAN country +$country_iban_format_as_swift = iban_country_get_iban_format_swift ($iban_country); + +# Get the IBAN format (as a regular expression) for an IBAN country +$country_iban_format_as_regex = iban_country_get_iban_format_regex($iban_country); + +# Determine whether an IBAN country is a member of SEPA (Single Euro Payments Area) +if(!iban_country_is_sepa($iban_country)) { + # ... do something xenophobic ... +} + +# Get the bank ID start offset for an IBAN country +$country_bankid_start_offset = iban_country_get_bankid_start_offset($iban_country); + +# Get the bank ID stop offset for an IBAN country +$country_bankid_stop_offset = iban_country_get_bankid_stop_offset($iban_country); + +# Get the branch ID start offset for an IBAN country +$country_branchid_start_offset = iban_country_get_branchid_start_offset($iban_country); + +# Get the branch ID stop offset for an IBAN country +$country_branchid_stop_offset = iban_country_get_branchid_stop_offset($iban_country); + +# Get the registry edition for an IBAN country (note: IIBAN country 'AA' returns 'N/A') +$country_registry_edition = iban_country_get_registry_edition($iban_country); + +# Determine whether an IBAN country is an official, SWIFT issued country record +if(!iban_country_get_country_swift_official($iban_country)) { + # ... do something against decentralization ... +} + +# Get the IANA code for an IBAN country +$country_iana = iban_country_get_iana($iban_country); + +# Get the ISO3166-1 alpha-2 code for an IBAN country +$country_iso3166 = iban_country_get_iso3166($iban_country); + +# Get the parent registrar IBAN country of an IBAN country +# (Returns '' in the normal case that the country is independently registered) +$registrar_country = iban_country_get_parent_registrar($iban_country); +if($registrar_country=='') { + print "The mighty nation of '$iban_country' stands strong and proud...\n"; + print " ... with its own heirarchy of bureaucrats!\n"; +} +else { + print "It has been foretold that the downtrodden natives of '$iban_country' will one day\n"; + print "rise up and throw off the shackles of the evil '$registrar_country' oppressors!\n"; +} + +# Get the official currency of an IBAN country as an ISO4217 alpha code +# (Returns '' in the Internet (IIBAN) case, ie. no official currency) +$official_currency = iban_country_get_currency_iso4217($iban_country); +if($official_currency == '') { + print "There is no official currency for the IBAN country '$iban_country'.\n"; +} + +# Get the URL of an IBAN country's central bank +# (Note: Returns '' if there is no central bank. Also, note that +# sometimes multiple countries share one central bank) +$central_bank_url = iban_country_get_central_bank_url($iban_country); + +# Get the name of an IBAN country's central bank +# (Note: Returns '' if there is no central bank. Also, note that +# sometimes multiple countries share one central bank) +$central_bank_name = iban_country_get_central_bank_name($iban_country); + +# Get the membership type of the country +# There are four types of memberships: +# * EU-Member States (eu_member) +# * EFTA-Member States (efta_member) +# * Other Memberships, which have monetary agreements with the EU (other_member) +# * Non-Members, which don't belong to the EU or have agreements (non_member) +$country_membership = iban_country_get_membership($iban_country); + +# Get if the country is a eu member state +# (Note: Returns true, if member state; false otherwise) +$country_membership = iban_country_get_is_eu_member($iban_country); +``` + + +Parsing Functions +----------------- +```php +# Get an array of all the parts from an IBAN +$iban_parts = iban_get_parts($iban); + +# Get the country part from an IBAN +$iban_country = iban_get_country_part($iban); + +# Get the BBAN part from an IBAN +$bban = iban_get_bban_part($iban); + +# Get the Bank ID (institution code) from an IBAN +$bank = iban_get_bank_part($iban); + +# Get the Branch ID (sort code) from an IBAN +# (NOTE: only available for some countries) +$sortcode = iban_get_branch_part($iban); + +# Get the (branch-local) account ID from an IBAN +# (NOTE: only available for some countries) +$account = iban_get_account_part($iban); + +# Get the checksum part from an IBAN +$checksum = iban_get_checksum_part($iban); + +# Get the national checksum part from an IBAN (if it exists) +$checksum = iban_get_nationalchecksum_part($iban); +``` + + +Documentation (Object Oriented Wrapper/Discouraged) +=================================================== + +OO use is discouraged as there is a present-day trend to overuse the model. However, if you prefer OO PHP then by all means use the object oriented wrapper, described below. +```php +require_once('oophp-iban.php'); +# ... your code utilising object oriented PHP IBAN functions... +``` + +Validation Functions +-------------------- +```php +# Example instantiation +$iban = 'AZ12345678901234' +$myIban = new IBAN($iban); + +# Verify an IBAN number. +# Tolerates spaces, prefixes "IBAN ...", dashes, lowercase input, etc. +# Returns true or false. +if(!$myIban->Verify()) { + # ... +} +# Verify an IBAN number in machine format only. +# Does not tolerate lowercase input, separators, whitespace or prefixes. +# Returns true or false. +if(!$myIban->VerifyMachineFormatOnly()) { + # ... +} + +# Check the checksum of an IBAN - code modified from Validate_Finance PEAR class +if(!$myIban->VerifyChecksum()) { + # ... +} + +# Suggest what the user really meant in the case of mistranscription errors +$suggestions = $badIban->MistranscriptionSuggestions(); +if(count($suggestions)==1) { + print "You really meant " . $suggestions[0] . ", right?\n"; +} + +# Find the correct checksum for an IBAN +$correct_checksum = $myIban->FindChecksum(); + +# Set the correct checksum for an IBAN +$fixed_iban = $myIban->SetChecksum() + +# Verify the pre-IBAN era, BBAN-level national checksum for those countries that +# have such a system and we have implemented. +# (Returns '' if unimplemented, true or false) +$result = $myIban->VerifyNationalChecksum(); +if($result == '') { + print "National checksum system does not exist or remains unimplemented for this IBAN's country.\n"; +} +elseif($result == true) { + print "IBAN passes the national checksum algorithm for its country.\n"; +} +else { + print "IBAN FAILS the national checksum algorithm for its country.\n"; +} + +# Set the pre-IBAN era, BBAN-level national checksum for those countries that +# have such a system, where that system results in a dedicated checksum +# substring, and that we have implemented. +# (Returns '' if unimplemented, or the corrected string) +# (NOTE: On success, the function also subsequently recalculates the IBAN-level checksum) +$myIban->SetNationalChecksum(); + +# Determine, but do not set, the pre-IBAN era, BBAN-level national checksum +# for those countries that have such a system, where that system results in +# a dedicated checksum substring, and that we have implemented. +# (Returns '' if unimplemented, or the expected national checksum substring) +$national_checksum = $myIban->FindNationalChecksum(); +``` + +Utility Functions +----------------- + +```php +# Convert an IBAN to machine format. To do this, we +# remove IBAN from the start, if present, and remove +# non basic roman letter / digit characters +$machine_iban = $myIban->MachineFormat(); + +# Convert an IBAN to human format. To do this, we +# add a space every four characters. +$human_iban = $myIban->HumanFormat(); + +# Convert an IBAN to obfuscated format for relative +# identification. To do this, we replace all but the +# leading country code and final four characters with +# asterisks. +$obfsucated_iban = $myIban->ObfuscatedFormat(); +``` + +IBAN Country-Level Functions +---------------------------- + +```php +# To list countries, use the IBAN Class... +$myIban->Countries(); + +# ... everything else is in the IBANCountry class. + +# Example instantiation +$countrycode = 'DE'; +$myCountry = new IBANCountry($countrycode); + +# Get the country code of an IBAN country +$country_code = $myCountry->Code(); + +# Get the name of an IBAN country +$country_name = $myCountry->Name(); + +# Get the domestic example for an IBAN country +$country_domestic_example = $myCountry->DomesticExample(); + +# Get the BBAN example for an IBAN country +$country_bban_example = $myCountry->BBANExample(); + +# Get the BBAN format (in SWIFT format) for an IBAN country +$country_bban_format_as_swift = $myCountry->BBANFormatSWIFT(); + +# Get the BBAN format (as a regular expression) for an IBAN country +$country_bban_format_as_regex = $myCountry->BBANFormatRegex(); + +# Get the BBAN length for an IBAN country +$country_bban_length = $myCountry->BBANLength(); + +# Get the IBAN example for an IBAN country +$country_iban_example = $myCountry->IBANExample(); + +# Get the IBAN length for an IBAN country +$country_iban_length = $myCountry->IBANLength(); + +# Get the IBAN format (in SWIFT format) for an IBAN country +$country_iban_format_as_swift = $myCountry->IBANFormatSWIFT(); + +# Get the IBAN format (as a regular expression) for an IBAN country +$country_iban_format_as_regex = $myCountry->IBANFormatRegex(); + +# Determine whether an IBAN country is a member of SEPA (Single Euro Payments Area) +if(!$myCountry->IsSEPA()) { + # ... do something xenophobic ... +} + +# Get the bank ID start offset for an IBAN country +$country_bankid_start_offset = $myCountry->BankIDStartOffset(); + +# Get the bank ID stop offset for an IBAN country +$country_bankid_stop_offset = $myCountry->BankIDStopOffset(); + +# Get the branch ID start offset for an IBAN country +$country_branchid_start_offset = $myCountry->BranchIDStartOffset(); + +# Get the branch ID stop offset for an IBAN country +$country_branchid_stop_offset = $myCountry->BranchIDStopOffset(); + +# Get the national checksum start offset for an IBAN country +$country_nationalchecksum_start_offset = $myCountry->NationalChecksumStartOffset(); + +# Get the national checksum stop offset for an IBAN country +$country_nationalchecksum_stop_offset = $myCountry->NationalChecksumStopOffset(); + +# Get the registry edition for an IBAN country (note: IIBAN country 'AA' returns 'N/A') +$country_registry_edition = $myCountry->RegistryEdition(); + +# Determine whether an IBAN country is an official, SWIFT issued country record +if(!$myCountry->SWIFTOfficial()) { + # ... do something against decentralization ... +} + +# Get the IANA code for an IBAN country +$country_iana = $myCountry->IANA(); + +# Get the ISO3166-1 alpha-2 code for an IBAN country +$country_iso3166 = $myCountry->ISO3166(); + +# Get the parent registrar IBAN country of an IBAN country +# (Returns '' in the normal case that the country is independently registered) +$registrar_country = $myCountry->ParentRegistrar(); +if($registrar_country=='') { + print "The mighty nation of '$iban_country' stands strong and proud...\n"; + print " ... with its own heirarchy of bureaucrats!\n"; +} +else { + print "It has been foretold that the downtrodden natives of '$iban_country' will one day\n"; + print "rise up and throw off the shackles of the evil '$registrar_country' oppressors!\n"; +} + +# Get the official currency of an IBAN country as an ISO4217 alpha code +# (Returns '' in the Internet (IIBAN) case, ie. no official currency) +$official_currency = $myCountry->CurrencyISO4217(); +if($official_currency == '') { + print "There is no official currency for the IBAN country '$iban_country'.\n"; +} + +# Get the URL of an IBAN country's central bank +# (Note: Returns '' if there is no central bank. Also, note that +# sometimes multiple countries share one central bank) +$central_bank_url = $myCountry->CentralBankURL(); + +# Get the name of an IBAN country's central bank +# (Note: Returns '' if there is no central bank. Also, note that +# sometimes multiple countries share one central bank) +$central_bank_name = $myCountry->CentralBankName(); +``` + + +Parsing Functions +----------------- + +```php +# Get an array of all the parts from an IBAN +$iban_parts = $myIban->Parts(); + +# Get the country part from an IBAN +$iban_country = $myIban->Country(); + +# Get the checksum part from an IBAN +$checksum = $myIban->Checksum(); + +# Get the BBAN part from an IBAN +$bban = $myIban->BBAN(); + +# Get the Bank ID (institution code) from an IBAN +$bank = $myIban->Bank(); + +# Get the Branch ID (sort code) from an IBAN +# (NOTE: only available for some countries) +$sortcode = $myIban->Branch(); + +# Get the (branch-local) account ID from an IBAN +# (NOTE: only available for some countries) +$account = $myIban->Account(); + +# Get the national checksum part from an IBAN +# (NOTE: only available for some countries) +$checksum = $myIban->NationalChecksum(); +``` + + +IBAN Libraries in Other Languages +--------------------------------- +See for yourself how our approach and features compare favourably with all of these libraries... + +| Language | Library +| ---------- | --------------------------------------------------------- +| C# | [iban-api-net](https://github.com/aventum-solutions/iban-api-net) +| Java | [iban-api-java](https://github.com/aventum-solutions/iban-api-java) +| Java | [iban4j](https://github.com/arturmkrtchyan/iban4j) +| Java | [java-iban](https://github.com/barend/java-iban) +| Javascript | [iban.js](https://github.com/arhs/iban.js) +| Javascript | [ng-iban](https://github.com/mmjmanders/ng-iban) +| ObjectiveC | [IBAN-Helper](https://github.com/xs4some/IBAN-Helper) +| ObjectiveC | [ibanValidation](https://github.com/smoldovansky/ibanValidation) +| Perl | [various CPAN libraries](http://search.cpan.org/search?query=iban&mode=all) +| Python | [django-localflavor](https://github.com/django/django-localflavor) +| Python | [iban-generator](https://github.com/lkraider/iban-generator) +| Ruby | [bank](https://github.com/max-power/bank) +| Ruby | [iban-tools](https://github.com/iulianu/iban-tools) +| Ruby | [ibandit](https://github.com/gocardless/ibandit) +| Ruby | [ibanizator](https://github.com/softwareinmotion/ibanizator) +| Ruby | [iso-iban](https://github.com/apeiros/iso-iban) diff --git a/htdocs/includes/php-iban/composer.json b/htdocs/includes/php-iban/composer.json new file mode 100644 index 00000000000..df0516f9a0b --- /dev/null +++ b/htdocs/includes/php-iban/composer.json @@ -0,0 +1,12 @@ +{ + "name": "globalcitizen/php-iban", + "description": "php-iban is a library for parsing and validating IBAN (and IIBAN) bank account information.", + "license": "LGPL-3.0-only", + "require": { + "php": "^5.4 || ^5.5 || ^5.6 || ^7.0 || ^7.4 || ^8.0 || ^8.1" + }, + "autoload": { + "files": ["oophp-iban.php","php-iban.php"] + } +} + diff --git a/htdocs/includes/php-iban/oophp-iban.php b/htdocs/includes/php-iban/oophp-iban.php index 76e3cd0d06b..2ef17a7112e 100644 --- a/htdocs/includes/php-iban/oophp-iban.php +++ b/htdocs/includes/php-iban/oophp-iban.php @@ -1,4 +1,5 @@ iban = $iban; } - public function Verify($iban='') { - if($iban!='') { return verify_iban($iban); } - return verify_iban($this->iban); + public function Verify($iban='',$machine_format_only=false) { + if($iban!='') { return verify_iban($iban,$machine_format_only); } + return verify_iban($this->iban,$machine_format_only); # we could throw exceptions of various types, but why - does it really # add anything? possibly some slightly better user feedback potential. # however, this can be written by hand by performing individual checks @@ -19,6 +20,11 @@ Class IBAN { # maintenance/documentation cost, i say, therefore: no. no exceptions. } + public function VerifyMachineFormatOnly($iban='') { + if($iban!='') { return verify_iban($iban,true); } + return verify_iban($this->iban,true); + } + public function MistranscriptionSuggestions() { return iban_mistranscription_suggestions($this->iban); } @@ -31,6 +37,10 @@ Class IBAN { return iban_to_human_format($this->iban); } + public function ObfuscatedFormat() { + return iban_to_obfuscated_format($this->iban); + } + public function Country($iban='') { return iban_get_country_part($this->iban); } @@ -39,6 +49,10 @@ Class IBAN { return iban_get_checksum_part($this->iban); } + public function NationalChecksum($iban='') { + return iban_get_nationalchecksum_part($this->iban); + } + public function BBAN() { return iban_get_bban_part($this->iban); } @@ -59,6 +73,18 @@ Class IBAN { return iban_checksum_string_replace($this->iban); } + public function FindNationalChecksum() { + return iban_find_nationalchecksum($this->iban); + } + + public function SetNationalChecksum() { + $this->iban = iban_set_nationalchecksum($this->iban); + } + + public function VerifyNationalChecksum() { + return iban_verify_nationalchecksum($this->iban); + } + public function Parts() { return iban_get_parts($this->iban); } @@ -88,6 +114,10 @@ Class IBANCountry { $this->code = $code; } + public function Code() { + return $this->code; + } + public function Name() { return iban_country_get_country_name($this->code); } @@ -144,14 +174,57 @@ Class IBANCountry { return iban_country_get_branchid_stop_offset($this->code); } + public function NationalChecksumStartOffset() { + return iban_country_get_nationalchecksum_start_offset($this->code); + } + + public function NationalChecksumStopOffset() { + return iban_country_get_nationalchecksum_stop_offset($this->code); + } + public function RegistryEdition() { return iban_country_get_registry_edition($this->code); } + public function SWIFTOfficial() { + return iban_country_get_country_swift_official($this->code); + } + public function IsSEPA() { return iban_country_is_sepa($this->code); } + public function IANA() { + return iban_country_get_iana($this->code); + } + + public function ISO3166() { + return iban_country_get_iso3166($this->code); + } + + public function ParentRegistrar() { + return iban_country_get_parent_registrar($this->code); + } + + public function CurrencyISO4217() { + return iban_country_get_currency_iso4217($this->code); + } + + public function CentralBankURL() { + return iban_country_get_central_bank_url($this->code); + } + + public function CentralBankName() { + return iban_country_get_central_bank_name($this->code); + } + + public function Membership() { + return iban_country_get_membership($this->code); + } + + public function IsEuMember() { + return iban_country_get_is_eu_member($this->code); + } } ?> diff --git a/htdocs/includes/php-iban/php-iban.php b/htdocs/includes/php-iban/php-iban.php index e4ef4d8dd1d..902cc1e2669 100644 --- a/htdocs/includes/php-iban/php-iban.php +++ b/htdocs/includes/php-iban/php-iban.php @@ -1,16 +1,18 @@ 0) && (($i+1)%4==0)) { $human_iban .= ' '; } + return wordwrap($iban,4,' ',true); +} + +# Convert an IBAN to obfuscated presentation. To do this, we +# replace the checksum and all subsequent characters with an +# asterisk, except for the final four characters, and then +# return in human format, ie. +# HU69107000246667654851100005 -> HU** **** **** **** **** **** 0005 +# +# We avoid the checksum as it may be used to infer the rest +# of the IBAN in cases where the country has few valid banks +# and branches, or other information about the account such +# as bank, branch, or date issued is known (where a sequential +# issuance scheme is in use). +# +# Note that output of this function should be presented with +# other information to a user, such as the date last used or +# the date added to their account, in order to better facilitate +# unambiguous relative identification. +function iban_to_obfuscated_format($iban) { + $iban = iban_to_machine_format($iban); + $tr = substr($iban,0,2); + for($i=2;$i iban_get_country_part($iban), - 'checksum' => iban_get_checksum_part($iban), - 'bban' => iban_get_bban_part($iban), - 'bank' => iban_get_bank_part($iban), - 'country' => iban_get_country_part($iban), - 'branch' => iban_get_branch_part($iban), - 'account' => iban_get_account_part($iban) + 'checksum' => iban_get_checksum_part($iban), + 'bban' => iban_get_bban_part($iban), + 'bank' => iban_get_bank_part($iban), + 'country' => iban_get_country_part($iban), + 'branch' => iban_get_branch_part($iban), + 'account' => iban_get_account_part($iban), + 'nationalchecksum' => iban_get_nationalchecksum_part($iban) ); } @@ -231,6 +254,18 @@ function iban_get_account_part($iban) { return ''; } +# Get the national checksum part from an IBAN +function iban_get_nationalchecksum_part($iban) { + $iban = iban_to_machine_format($iban); + $country = iban_get_country_part($iban); + $start = iban_country_get_nationalchecksum_start_offset($country); + if($start == '') { return ''; } + $stop = iban_country_get_nationalchecksum_stop_offset($country); + if($stop == '') { return ''; } + $bban = iban_get_bban_part($iban); + return substr($bban,$start,($stop-$start+1)); +} + # Get the name of an IBAN country function iban_country_get_country_name($iban_country) { return _iban_country_get_info($iban_country,'country_name'); @@ -301,33 +336,119 @@ function iban_country_get_branchid_stop_offset($iban_country) { return _iban_country_get_info($iban_country,'bban_branchid_stop_offset'); } +# Get the BBAN (national) checksum start offset for an IBAN country +# Returns '' when (often) not present) +function iban_country_get_nationalchecksum_start_offset($iban_country) { + return _iban_country_get_info($iban_country,'bban_checksum_start_offset'); +} + +# Get the BBAN (national) checksum stop offset for an IBAN country +# Returns '' when (often) not present) +function iban_country_get_nationalchecksum_stop_offset($iban_country) { + return _iban_country_get_info($iban_country,'bban_checksum_stop_offset'); +} + # Get the registry edition for an IBAN country function iban_country_get_registry_edition($iban_country) { return _iban_country_get_info($iban_country,'registry_edition'); } +# Is the IBAN country one official issued by SWIFT? +function iban_country_get_country_swift_official($iban_country) { + return _iban_country_get_info($iban_country,'country_swift_official'); +} + # Is the IBAN country a SEPA member? function iban_country_is_sepa($iban_country) { return _iban_country_get_info($iban_country,'country_sepa'); } +# Get the IANA code of an IBAN country +function iban_country_get_iana($iban_country) { + return _iban_country_get_info($iban_country,'country_iana'); +} + +# Get the ISO3166-1 alpha-2 code of an IBAN country +function iban_country_get_iso3166($iban_country) { + return _iban_country_get_info($iban_country,'country_iso3166'); +} + +# Get the parent registrar IBAN country of an IBAN country +function iban_country_get_parent_registrar($iban_country) { + return _iban_country_get_info($iban_country,'parent_registrar'); +} + +# Get the official currency of an IBAN country as an ISO4217 alpha code +# (Note: Returns '' if there is no official currency, eg. for AA (IIBAN)) +function iban_country_get_currency_iso4217($iban_country) { + return _iban_country_get_info($iban_country,'currency_iso4217'); +} + +# Get the URL of an IBAN country's central bank +# (Note: Returns '' if there is no central bank. Also, note that +# sometimes multiple countries share one central bank) +function iban_country_get_central_bank_url($iban_country) { + $result = _iban_country_get_info($iban_country,'central_bank_url'); + if($result!='') { $result = 'http://' . $result . '/'; } + return $result; +} + +# Get the name of an IBAN country's central bank +# (Note: Returns '' if there is no central bank. Also, note that +# sometimes multiple countries share one central bank) +function iban_country_get_central_bank_name($iban_country) { + return _iban_country_get_info($iban_country,'central_bank_name'); +} + # Get the list of all IBAN countries function iban_countries() { + _iban_load_registry(); global $_iban_registry; return array_keys($_iban_registry); } +# Get the membership of an IBAN country +# (Note: Possible Values eu_member, efta_member, other_member, non_member) +function iban_country_get_membership($iban_country) { + return _iban_country_get_info($iban_country,'membership'); +} + +# Get the membership of an IBAN country +# (Note: Possible Values eu_member, efta_member, other_member, non_member) +function iban_country_get_is_eu_member($iban_country) { + $membership = _iban_country_get_info($iban_country,'membership'); + if ($membership === 'eu_member') { + $result = true; + } else { + $result = false; + } + + return $result; +} + # Given an incorrect IBAN, return an array of zero or more checksum-valid # suggestions for what the user might have meant, based upon common # mistranscriptions. +# IDEAS: +# - length correction via adding/removing leading zeros from any single component +# - overlength correction via dropping final digit(s) +# - national checksum algorithm checks (apply same testing methodology, abstract to separate function) +# - length correction by removing double digits (xxyzabxybaaz = change aa to a, or xx to x) +# - validate bank codes +# - utilize format knowledge with regards to alphanumeric applicability in that offset in that national BBAN format +# - turkish TL/TK thing +# - norway NO gets dropped due to mis-identification with "No." for number (ie. if no country code try prepending NO) function iban_mistranscription_suggestions($incorrect_iban) { - + + # remove funky characters + $incorrect_iban = iban_to_machine_format($incorrect_iban); + # abort on ridiculous length input (but be liberal) $length = strlen($incorrect_iban); - if($length<5 || $length>34) { return array('(length bad)'); } + if($length<5 || $length>34) { return array('(supplied iban length insane)'); } # abort if mistranscriptions data is unable to load - if(!_iban_load_mistranscriptions()) { return array('(failed to load)'); } + if(!_iban_load_mistranscriptions()) { return array('(failed to load mistranscriptions)'); } # init global $_iban_mistranscriptions; @@ -396,7 +517,6 @@ function iban_mistranscription_suggestions($incorrect_iban) { # Load the IBAN registry from disk. global $_iban_registry; $_iban_registry = array(); -_iban_load_registry(); function _iban_load_registry() { global $_iban_registry; # if the registry is not yet loaded, or has been corrupted, reload @@ -407,14 +527,20 @@ function _iban_load_registry() { # loop through lines foreach($lines as $line) { if($line!='') { - # split to fields - $old_display_errors_value = ini_get('display_errors'); - ini_set('display_errors',false); - $old_error_reporting_value = ini_get('error_reporting'); - ini_set('error_reporting',false); - list($country,$country_name,$domestic_example,$bban_example,$bban_format_swift,$bban_format_regex,$bban_length,$iban_example,$iban_format_swift,$iban_format_regex,$iban_length,$bban_bankid_start_offset,$bban_bankid_stop_offset,$bban_branchid_start_offset,$bban_branchid_stop_offset,$registry_edition,$country_sepa) = explode('|',$line); - ini_set('display_errors',$old_display_errors_value); - ini_set('error_reporting',$old_error_reporting_value); + # avoid spewing tonnes of PHP warnings under bad PHP configs - see issue #69 + if(function_exists('ini_set')) { + # split to fields + $old_display_errors_value = ini_get('display_errors'); + ini_set('display_errors',false); + $old_error_reporting_value = ini_get('error_reporting'); + ini_set('error_reporting',false); + } + list($country,$country_name,$domestic_example,$bban_example,$bban_format_swift,$bban_format_regex,$bban_length,$iban_example,$iban_format_swift,$iban_format_regex,$iban_length,$bban_bankid_start_offset,$bban_bankid_stop_offset,$bban_branchid_start_offset,$bban_branchid_stop_offset,$registry_edition,$country_sepa,$country_swift_official,$bban_checksum_start_offset,$bban_checksum_stop_offset,$country_iana,$country_iso3166,$parent_registrar,$currency_iso4217,$central_bank_url,$central_bank_name,$membership) = explode('|',$line); + # avoid spewing tonnes of PHP warnings under bad PHP configs - see issue #69 + if(function_exists('ini_set')) { + ini_set('display_errors',$old_display_errors_value); + ini_set('error_reporting',$old_error_reporting_value); + } # assign to registry $_iban_registry[$country] = array( 'country' => $country, @@ -433,7 +559,17 @@ function _iban_load_registry() { 'bban_bankid_stop_offset' => $bban_bankid_stop_offset, 'bban_branchid_start_offset' => $bban_branchid_start_offset, 'bban_branchid_stop_offset' => $bban_branchid_stop_offset, - 'registry_edition' => $registry_edition + 'registry_edition' => $registry_edition, + 'country_swift_official' => $country_swift_official, + 'bban_checksum_start_offset' => $bban_checksum_start_offset, + 'bban_checksum_stop_offset' => $bban_checksum_stop_offset, + 'country_iana' => $country_iana, + 'country_iso3166' => $country_iso3166, + 'parent_registrar' => $parent_registrar, + 'currency_iso4217' => $currency_iso4217, + 'central_bank_url' => $central_bank_url, + 'central_bank_name' => $central_bank_name, + 'membership' => $membership ); } } @@ -448,6 +584,7 @@ function _iban_get_info($iban,$code) { # Get information from the IBAN registry by country / code combination function _iban_country_get_info($country,$code) { + _iban_load_registry(); global $_iban_registry; $country = strtoupper($country); $code = strtolower($code); @@ -483,4 +620,717 @@ function _iban_load_mistranscriptions() { return true; } +# Find the correct national checksum for an IBAN +# (Returns the correct national checksum as a string, or '' if unimplemented for this IBAN's country) +# (NOTE: only works for some countries) +function iban_find_nationalchecksum($iban) { + return _iban_nationalchecksum_implementation($iban,'find'); +} + +# Verify the correct national checksum for an IBAN +# (Returns true or false, or '' if unimplemented for this IBAN's country) +# (NOTE: only works for some countries) +function iban_verify_nationalchecksum($iban) { + return _iban_nationalchecksum_implementation($iban,'verify'); +} + +# Verify the correct national checksum for an IBAN +# (Returns the (possibly) corrected IBAN, or '' if unimplemented for this IBAN's country) +# (NOTE: only works for some countries) +function iban_set_nationalchecksum($iban) { + $result = _iban_nationalchecksum_implementation($iban,'set'); + if($result != '' ) { + $result = iban_set_checksum($result); # recalculate IBAN-level checksum + } + return $result; +} + +# Internal function to overwrite the national checksum portion of an IBAN +function _iban_nationalchecksum_set($iban,$nationalchecksum) { + $country = iban_get_country_part($iban); + $start = iban_country_get_nationalchecksum_start_offset($country); + if($start == '') { return ''; } + $stop = iban_country_get_nationalchecksum_stop_offset($country); + if($stop == '') { return ''; } + # determine the BBAN + $bban = iban_get_bban_part($iban); + # alter the BBAN + $firstbit = substr($bban,0,$start); # 'string before the checksum' + $lastbit = substr($bban,$stop+1); # 'string after the checksum' + $fixed_bban = $firstbit . $nationalchecksum . $lastbit; + # reconstruct the fixed IBAN + $fixed_iban = $country . iban_get_checksum_part($iban) . $fixed_bban; + return $fixed_iban; +} + +# Currently unused but may be useful for Norway. +# ISO7064 MOD11-2 +# Adapted from https://gist.github.com/andreCatita/5714353 by Andrew Catita +function _iso7064_mod112_catita($input) { + $p = 0; + for ($i = 0; $i < strlen($input); $i++) { + $c = $input[$i]; + $p = 2 * ($p + $c); + } + $p %= 11; + $result = (12 - $p) % 11; + if($result == 10) { $result = 'X'; } + return $result; +} + +# Currently unused but may be useful for Norway. +# ISO 7064:1983.MOD 11-2 +# by goseaside@sina.com +function _iso7064_mod112_goseaside($vString) { + $sigma = ''; + $wi = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6); + $hash_map = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); + $i_size = strlen($vString); + $bModify = '?' == substr($vString, -1); + $i_size1 = $bModify ? $i_size : $i_size + 1; + for ($i = 1; $i <= $i_size; $i++) { + $i1 = $vString[$i - 1] * 1; + $w1 = $wi[($i_size1 - $i) % 10]; + $sigma += ($i1 * $w1) % 11; + } + if($bModify) return str_replace('?', $hash_map[($sigma % 11)], $vString); + else return $hash_map[($sigma % 11)]; +} + +# ISO7064 MOD97-10 (Bosnia, etc.) +# (Credit: Adapted from https://github.com/stvkoch/ISO7064-Mod-97-10/blob/master/ISO7064Mod97_10.php) +function _iso7064_mod97_10($str) { + $ai=1; + $ch = ord($str[strlen($str)-1]) - 48; + if($ch < 0 || $ch > 9) return false; + $check=$ch; + for($i=strlen($str)-2;$i>=0;$i--) { + $ch = ord($str[$i]) - 48; + if ($ch < 0 || $ch > 9) return false; + $ai=($ai*10)%97; + $check+= ($ai * ((int)$ch)); + } + return (98-($check%97)); +} + +# Implement the national checksum for a Belgium (BE) IBAN +# (Credit: @gaetan-be) +function _iban_nationalchecksum_implementation_be($iban,$mode) { + if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution + $nationalchecksum = iban_get_nationalchecksum_part($iban); + $account = iban_get_account_part($iban); + $account_less_checksum = substr($account,strlen($account)-2); + $expected_nationalchecksum = $account_less_checksum % 97; + if($mode=='find') { + return $expected_nationalchecksum; + } + elseif($mode=='set') { + return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); + } + elseif($mode=='verify') { + return ($nationalchecksum == $expected_nationalchecksum); + } +} + +# MOD11 helper function for the Spanish (ES) IBAN national checksum implementation +# (Credit: @dem3trio, code lifted from Spanish Wikipedia at https://es.wikipedia.org/wiki/C%C3%B3digo_cuenta_cliente) +function _iban_nationalchecksum_implementation_es_mod11_helper($numero) { + if(strlen($numero)!=10) return "?"; + $cifras = Array(1,2,4,8,5,10,9,7,3,6); + $chequeo=0; + for($i=0; $i<10; $i++) { + $chequeo += substr($numero,$i,1) * $cifras[$i]; + } + $chequeo = 11 - ($chequeo % 11); + if ($chequeo == 11) $chequeo = 0; + if ($chequeo == 10) $chequeo = 1; + return $chequeo; +} + +# Implement the national checksum for a Spanish (ES) IBAN +# (Credit: @dem3trio, adapted from code on Spanish Wikipedia at https://es.wikipedia.org/wiki/C%C3%B3digo_cuenta_cliente) +function _iban_nationalchecksum_implementation_es($iban,$mode) { + if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution + # extract appropriate substrings + $bankprefix = iban_get_bank_part($iban) . iban_get_branch_part($iban); + $nationalchecksum = iban_get_nationalchecksum_part($iban); + $account = iban_get_account_part($iban); + $account_less_checksum = substr($account,2); + # first we calculate the initial checksum digit, which is MOD11 of the bank prefix with '00' prepended + $expected_nationalchecksum = _iban_nationalchecksum_implementation_es_mod11_helper("00".$bankprefix); + # then we append the second digit, which is MOD11 of the account + $expected_nationalchecksum .= _iban_nationalchecksum_implementation_es_mod11_helper($account_less_checksum); + if($mode=='find') { + return $expected_nationalchecksum; + } + elseif($mode=='set') { + return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); + } + elseif($mode=='verify') { + return ($nationalchecksum == $expected_nationalchecksum); + } +} + +# Helper function for the France (FR) BBAN national checksum implementation +# (Credit: @gaetan-be) +function _iban_nationalchecksum_implementation_fr_letters2numbers_helper($bban) { + $allNumbers = ""; + $conversion = array( + "A" => 1, "B" => 2, "C" => 3, "D" => 4, "E" => 5, "F" => 6, "G" => 7, "H" => 8, "I" => 9, + "J" => 1, "K" => 2, "L" => 3, "M" => 4, "N" => 5, "O" => 6, "P" => 7, "Q" => 8, "R" => 9, + "S" => 2, "T" => 3, "U" => 4, "V" => 5, "W" => 6, "X" => 7, "Y" => 8, "Z" => 9 + ); + for ($i=0; $i < strlen($bban); $i++) { + if(is_numeric($bban[$i])) { + $allNumbers .= $bban[$i]; + } + else { + $letter = strtoupper($bban[$i]); + if(array_key_exists($letter, $conversion)) { + $allNumbers .= $conversion[$letter]; + } + else { + return null; + } + } + } + return $allNumbers; +} + +# NOTE: Worryingly at least one domestic number found within CF online is +# not passing national checksum support. Perhaps banks do not issue +# with correct RIB (French-style national checksum) despite using +# the legacy format? Perhaps this is a mistranscribed number? +# http://www.radiomariacentrafrique.org/virement-bancaire.aspx +# ie. CF19 20001 00001 01401832401 40 +# The following two numbers work: +# http://fondationvoixducoeur.net/fr/pour-contribuer.html +# ie. CF4220002002003712551080145 and CF4220001004113717538890110 +# Since in the latter case the bank is the same as the former and +# the French structure, terminology and 2/3 correct is a fairly high +# correlation, we are going to assume that the first error is theirs. +# +# Implement the national checksum for a Central African Republic (CF) IBAN +function _iban_nationalchecksum_implementation_cf($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a Chad (TD) IBAN +function _iban_nationalchecksum_implementation_td($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a Comoros (KM) IBAN +function _iban_nationalchecksum_implementation_km($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a Congo (CG) IBAN +function _iban_nationalchecksum_implementation_cg($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a Djibouti (DJ) IBAN +function _iban_nationalchecksum_implementation_dj($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for an Equitorial Guinea (GQ) IBAN +function _iban_nationalchecksum_implementation_gq($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a Gabon (GA) IBAN +function _iban_nationalchecksum_implementation_ga($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a Monaco (MC) IBAN +# (Credit: @gaetan-be) +function _iban_nationalchecksum_implementation_mc($iban,$mode) { + return _iban_nationalchecksum_implementation_fr($iban,$mode); +} + +# Implement the national checksum for a France (FR) IBAN +# (Credit: @gaetan-be, http://www.credit-card.be/BankAccount/ValidationRules.htm#FR_Validation and +# https://docs.oracle.com/cd/E18727_01/doc.121/e13483/T359831T498954.htm) +function _iban_nationalchecksum_implementation_fr($iban,$mode) { + if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution + # first, extract the BBAN + $bban = iban_get_bban_part($iban); + # convert to numeric form + $bban_numeric_form = _iban_nationalchecksum_implementation_fr_letters2numbers_helper($bban); + # if the result was null, something is horribly wrong + if(is_null($bban_numeric_form)) { return ''; } + # extract other parts + $bank = substr($bban_numeric_form,0,5); + $branch = substr($bban_numeric_form,5,5); + $account = substr($bban_numeric_form,10,11); + # actual implementation: mod97( (89 x bank number "Code banque") + (15 x branch code "Code guichet") + (3 x account number "Numéro de compte") ) + $sum = (89*($bank+0)) + ((15*($branch+0))); + $sum += (3*($account+0)); + $expected_nationalchecksum = 97 - ($sum % 97); + if(strlen($expected_nationalchecksum) == 1) { $expected_nationalchecksum = '0' . $expected_nationalchecksum; } + # return + if($mode=='find') { + return $expected_nationalchecksum; + } + elseif($mode=='set') { + return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); + } + elseif($mode=='verify') { + return (iban_get_nationalchecksum_part($iban) == $expected_nationalchecksum); + } +} + +# Implement the national checksum for a Norway (NO) IBAN +# (NOTE: Built from description at https://docs.oracle.com/cd/E18727_01/doc.121/e13483/T359831T498954.htm, not well tested) +function _iban_nationalchecksum_implementation_no($iban,$mode) { + if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution + # first, extract the BBAN + $bban = iban_get_bban_part($iban); + # then, the account + $account = iban_get_account_part($iban); + # existing checksum + $nationalchecksum = iban_get_nationalchecksum_part($iban); + # bban less checksum + $bban_less_checksum = substr($bban,0,strlen($bban)-strlen($nationalchecksum)); + # factor table + $factors = array(5,4,3,2,7,6,5,4,3,2); + # calculate checksum + $total = 0; + for($i=0;$i<10;$i++) { + $total += $bban_less_checksum[$i] * $factors[$i]; + } + $total += $nationalchecksum; + # mod11 + $remainder = $total % 11; + # to find the correct check digit, we add the remainder to the current check digit, + # mod10 (ie. rounding at 10, such that 10 = 0, 11 = 1, etc.) + $calculated_checksum = ($nationalchecksum + $remainder)%10; + if($mode == 'find') { + if($remainder == 0) { return $nationalchecksum; } + else { + return $calculated_checksum; + } + } + elseif($mode == 'set') { + return _iban_nationalchecksum_set($iban,$calculated_checksum); + } + elseif($mode == 'verify') { + if($remainder == 0) { return true; } + return false; + } +} + +# ISO/IEC 7064, MOD 11-2 +# @param $input string Must contain only characters ('0123456789'). +# @output A 1 character string containing '0123456789X', +# or '' (empty string) on failure due to bad input. +# (Credit: php-iso7064 @ https://github.com/globalcitizen/php-iso7064) +function _iso7064_mod11_2($input) { + $input = strtoupper($input); # normalize + if(!preg_match('/^[0123456789]+$/',$input)) { return ''; } # bad input + $modulus = 11; + $radix = 2; + $output_values = '0123456789X'; + $p = 0; + for($i=0; $i $d) { + $checksum .= $i %2 !== 0 ? $d * 2 : $d; + } + return array_sum(str_split($checksum)) % 10; +} + +# Verhoeff checksum +# (Credit: Adapted from Semyon Velichko's code at https://en.wikibooks.org/wiki/Algorithm_Implementation/Checksums/Verhoeff_Algorithm#PHP) +function _verhoeff($input) { + if($input == '' || preg_match('/[^0-9]/',$input)) { return ''; } # reject non-numeric input + $d = array( + array(0,1,2,3,4,5,6,7,8,9), + array(1,2,3,4,0,6,7,8,9,5), + array(2,3,4,0,1,7,8,9,5,6), + array(3,4,0,1,2,8,9,5,6,7), + array(4,0,1,2,3,9,5,6,7,8), + array(5,9,8,7,6,0,4,3,2,1), + array(6,5,9,8,7,1,0,4,3,2), + array(7,6,5,9,8,2,1,0,4,3), + array(8,7,6,5,9,3,2,1,0,4), + array(9,8,7,6,5,4,3,2,1,0) + ); + $p = array( + array(0,1,2,3,4,5,6,7,8,9), + array(1,5,7,6,2,8,3,0,9,4), + array(5,8,0,3,7,9,6,1,4,2), + array(8,9,1,6,0,4,3,5,2,7), + array(9,4,5,3,1,2,6,8,7,0), + array(4,2,8,6,5,7,3,9,0,1), + array(2,7,9,3,8,0,6,4,1,5), + array(7,0,4,6,9,1,3,2,5,8) + ); + $inv = array(0,4,3,2,1,5,6,7,8,9); + $r = 0; + foreach(array_reverse(str_split($input)) as $n => $N) { + $r = $d[$r][$p[($n+1)%8][$N]]; + } + return $inv[$r]; +} + +# Damm checksum +# (Credit: https://en.wikibooks.org/wiki/Algorithm_Implementation/Checksums/Damm_Algorithm#PHP) +function _damm($input) { + if($input=='' || preg_match('/[^0-9]/',$input)) { return ''; } # non-numeric input + // from http://www.md-software.de/math/DAMM_Quasigruppen.txt + $matrix = array( + array(0, 3, 1, 7, 5, 9, 8, 6, 4, 2), + array(7, 0, 9, 2, 1, 5, 4, 8, 6, 3), + array(4, 2, 0, 6, 8, 7, 1, 3, 5, 9), + array(1, 7, 5, 0, 9, 8, 3, 4, 2, 6), + array(6, 1, 2, 3, 0, 4, 5, 9, 7, 8), + array(3, 6, 7, 4, 2, 0, 9, 5, 8, 1), + array(5, 8, 6, 9, 7, 2, 0, 1, 3, 4), + array(8, 9, 4, 5, 3, 6, 2, 0, 1, 7), + array(9, 4, 3, 8, 6, 1, 7, 2, 0, 5), + array(2, 5, 8, 1, 4, 3, 6, 7, 9, 0), + ); + $checksum = 0; + for ($i=0; $i diff --git a/htdocs/includes/php-iban/registry.txt b/htdocs/includes/php-iban/registry.txt index ffe714139dd..1a7eb8f76f6 100644 --- a/htdocs/includes/php-iban/registry.txt +++ b/htdocs/includes/php-iban/registry.txt @@ -1,81 +1,117 @@ -country_code|country_name|domestic_example|bban_example|bban_format_swift|bban_format_regex|bban_length|iban_example|iban_format_swift|iban_format_regex|iban_length|bban_bankid_start_offset|bban_bankid_stop_offset|bban_branchid_start_offset|bban_branchid_stop_offset|registry_edition|country_sepa -AA|IIBAN (Internet)|0011123Z5678|0011123Z5678|12!a|^[A-Z0-9]{12}$|12|AA120011123Z5678|AA2!n12!a|^AA(\d{2})([A-Z0-9]{12})$|16|0|3|||N/A|0 -AL|Albania|0000000235698741|212110090000000235698741|8!n16!c|^(\d{8})([A-Za-z0-9]{16})$|24|AL47212110090000000235698741|AL2!n8!n16!c|^AL(\d{2})(\d{8})([A-Za-z0-9]{16})$|28|0|2|3|6|2011-06-20|0 -AD|Andorra|2030200359100100|00012030200359100100|4!n4!n12!c|^(\d{4})(\d{4})([A-Za-z0-9]{12})$|20|AD1200012030200359100100|AD2!n4!n4!n12!c|^AD(\d{2})(\d{4})(\d{4})([A-Za-z0-9]{12})$|24|0|3|4|7|2011-06-20|0 -AT|Austria|19043-234573201|1904300234573201|5!n11!n|^(\d{5})(\d{11})$|16|AT611904300234573201|AT2!n5!n11!n|^AT(\d{2})(\d{5})(\d{11})$|20|0|4|||2011-06-20|1 -AX|Aland Islands|123456-785|12345600000785|6!n7!n1!n|^(\d{6})(\d{7})(\d{1})$|14|AX2112345600000785|AX2!n6!n7!n1!n|^AX(\d{2})(\d{6})(\d{7})(\d{1})$|18|0|2|||2013-09-05|1 -AZ|Azerbaijan|NABZ00000000137010001944|NABZ00000000137010001944|4!a20!c|^([A-Z]{4})([A-Za-z0-9]{20})$|24|AZ21NABZ00000000137010001944|AZ2!n4!a20!c|^AZ(\d{2})([A-Z]{4})([A-Za-z0-9]{20})$|28|0|3|||2012-05-29|0 -BH|Bahrain|00001299123456|BMAG00001299123456|4!a14!c|^([A-Z]{4})([A-Za-z0-9]{14})$|22|BH67BMAG00001299123456|BH2!n4!a14!c|^BH(\d{2})([A-Z]{4})([A-Za-z0-9]{14})$|22|0|3|||2012-05-29|0 -BE|Belgium|539-0075470-34|539007547034|3!n7!n2!n|^(\d{3})(\d{7})(\d{2})$|12|BE68539007547034|BE2!n3!n7!n2!n|^BE(\d{2})(\d{3})(\d{7})(\d{2})$|16|0|2|||2011-06-20|1 -BA|Bosnia and Herzegovina|199-044-00012002-79|1990440001200279|3!n3!n8!n2!n|^(\d{3})(\d{3})(\d{8})(\d{2})$|16|BA391290079401028494|BA2!n3!n3!n8!n2!n|^BA(\d{2})(\d{3})(\d{3})(\d{8})(\d{2})$|20|0|2|3|5|2011-06-20|0 -BR|Brazil|0009795493C1|00360305000010009795493P1|8!n5!n10!n1!a1!c|^(\d{8})(\d{5})(\d{10})([A-Z]{1})([A-Za-z0-9]{1})$|25|BR2300360305000010009795493P1BR1800000000141455123924100C2|BR2!n8!n5!n10!n1!a1!c|^BR(\d{2})(\d{8})(\d{5})(\d{10})([A-Z]{1})([A-Za-z0-9]{1})$|29|0|7|8|12|2013-06-20|0 -BG|Bulgaria|BNBG 9661 1020 3456 78|BNBG96611020345678|4!a4!n2!n8!c|^([A-Z]{4})(\d{4})(\d{2})([A-Za-z0-9]{8})$|18|BG80BNBG96611020345678|BG2!n4!a4!n2!n8!c|^BG(\d{2})([A-Z]{4})(\d{4})(\d{2})([A-Za-z0-9]{8})$|22|0|3|4|7|2011-06-20|1 -CR|Costa Rica|1026284066|15202001026284066|3!n14!n|^(\d{3})(\d{14})$|7|CR91202001026284066|CR2!n3!n14!n|^CR(\d{2})(\d{3})(\d{14})$|21|0|2|||2012-05-29|0 -HR|Croatia|1001005-1863000160|10010051863000160|7!n10!n|^(\d{7})(\d{10})$|17|HR1210010051863000160|HR2!n7!n10!n|^HR(\d{2})(\d{7})(\d{10})$|21|0|6|||2011-06-20|1 -CY|Cyprus|1200527600|002001280000001200527600|3!n5!n16!c|^(\d{3})(\d{5})([A-Za-z0-9]{16})$|24|CY17002001280000001200527600|CY2!n3!n5!n16!c|^CY(\d{2})(\d{3})(\d{5})([A-Za-z0-9]{16})$|28|0|2|3|7|2011-06-20|1 -CZ|Czech Republic|19-2000145399/0800|08000000192000145399|4!n6!n10!n|^(\d{4})(\d{6})(\d{10})$|20|CZ6508000000192000145399|CZ2!n4!n6!n10!n|^CZ(\d{2})(\d{4})(\d{6})(\d{10})$|24|0|3|4|9|2011-06-20|1 -DK|Denmark|0040 0440116243, 6460 0001631634, 6471 0001000206|00400440116243, 64600001631634, 64710001000206|4!n9!n1!n|^(\d{4})(\d{9})(\d{1})$|14|DK5000400440116243|DK2!n4!n9!n1!n|^DK(\d{2})(\d{4})(\d{9})(\d{1})$|18|0|3|||2011-06-20|1 -FO|Faroe Islands|0040 0440116243, 6460 0001631634, 6471 0001000206|00400440116243, 64600001631634, 64710001000206|4!n9!n1!n|^(\d{4})(\d{9})(\d{1})$|14|FO2000400440116243|FO2!n4!n9!n1!n|^FO(\d{2})(\d{4})(\d{9})(\d{1})$|18|0|3|||2011-06-20|0 -GL|Greenland|0040 0440116243, 6460 0001631634, 6471 0001000206|00400440116243, 64600001631634, 64710001000206|4!n9!n1!n|^(\d{4})(\d{9})(\d{1})$|14|GL2000400440116243|GL2!n4!n9!n1!n|^GL(\d{2})(\d{4})(\d{9})(\d{1})$|18|0|3|||2011-06-20|0 -DO|Dominican Republic|1212453611324|AGR00000001212453611324|4!c20!n|^([A-Za-z0-9]{4})(\d{20})$|24|DO28BAGR00000001212453611324|DO2!n4!c20!n|^DO(\d{2})([A-Za-z0-9]{4})(\d{20})$|28|0|3|||2011-06-20|0 -EE|Estonia|221020145685|2200221020145685|2!n2!n11!n1!n|^(\d{2})(\d{2})(\d{11})(\d{1})$|16|EE382200221020145685|EE2!n2!n2!n11!n1!n|^EE(\d{2})(\d{2})(\d{2})(\d{11})(\d{1})$|20|0|1|||2011-06-20|1 -FI|Finland|123456-785|12345600000785|6!n7!n1!n|^(\d{6})(\d{7})(\d{1})$|14|FI2112345600000785|FI2!n6!n7!n1!n|^FI(\d{2})(\d{6})(\d{7})(\d{1})$|18|0|2|||2013-08-05|1 -FR|France|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|FR1420041010050500013M02606|FR2!n5!n5!n11!c2!n|^FR(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -BL|Saint Barthelemy|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|BL9820041010050500013M02606|BL2!n5!n5!n11!c2!n|^BL(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-02-08|0 -GF|French Guyana|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|GF4120041010050500013M02606|GF2!n5!n5!n11!c2!n|^GF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -GP|Guadelope|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|GP1120041010050500013M02606|GP2!n5!n5!n11!c2!n|^GP(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -MF|Saint Martin (French Part)|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|MF9820041010050500013M02606|MF2!n5!n5!n11!c2!n|^MF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-02-08|0 -MQ|Martinique|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|MQ5120041010050500013M02606|MQ2!n5!n5!n11!c2!n|^MQ(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -RE|Reunion|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|RE4220041010050500013M02606|RE2!n5!n5!n11!c2!n|^RE(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -PF|French Polynesia|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|PF5720041010050500013M02606|PF2!n5!n5!n11!c2!n|^PF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0 -TF|French Southern Territories|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|TF2120041010050500013M02606|TF2!n5!n5!n11!c2!n|^TF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0 -YT|Mayotte|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|YT3120041010050500013M02606|YT2!n5!n5!n11!c2!n|^YT(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -NC|New Caledonia|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|NC8420041010050500013M02606|NC2!n5!n5!n11!c2!n|^NC(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0 -PM|Saint Pierre et Miquelon|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|PM3620041010050500013M02606|PM2!n5!n5!n11!c2!n|^PM(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1 -WF|Wallis and Futuna Islands|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|WF9120041010050500013M02606|WF2!n5!n5!n11!c2!n|^WF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0 -GE|Georgia|0000000101904917|NB0000000101904917|2!a16!n|^([A-Z]{2})(\d{16})$|18|GE29NB0000000101904917|GE2!n2!a16!n|^GE(\d{2})([A-Z]{2})(\d{16})$|22|0|1|||2011-06-20|0 -DE|Germany|37040044-532013000|370400440532013000|8!n10!n|^(\d{8})(\d{10})$|18|DE89370400440532013000|DE2!n8!n10!n|^DE(\d{2})(\d{8})(\d{10})$|22|0|7|||2011-06-20|1 -GI|Gibraltar|0000 00007099 453|NWBK000000007099453|4!a15!c|^([A-Z]{4})([A-Za-z0-9]{15})$|19|GI75NWBK000000007099453|GI2!n4!a15!c|^GI(\d{2})([A-Z]{4})([A-Za-z0-9]{15})$|23|0|3|||2011-06-20|1 -GR|Greece|01250000000012300695|01101250000000012300695|3!n4!n16!c|^(\d{3})(\d{4})([A-Za-z0-9]{16})$|23|GR1601101250000000012300695|GR2!n3!n4!n16!c|^GR(\d{2})(\d{3})(\d{4})([A-Za-z0-9]{16})$|27|0|2|3|6|2011-06-20|1 -GT|Guatemala|01020000001210029690|TRAJ01020000001210029690|4!c20!c|^([A-Za-z0-9]{4})([A-Za-z0-9]{20})$|24|GT82TRAJ01020000001210029690|GT2!n4!c20!c|^GT(\d{2})([A-Za-z0-9]{4})([A-Za-z0-9]{20})$|28|0|3|||2012-05-29|0 -HU|Hungary|11773016-11111018-00000000|117730161111101800000000|3!n4!n1!n15!n1!n|^(\d{3})(\d{4})(\d{1})(\d{15})(\d{1})$|24|HU42117730161111101800000000|HU2!n3!n4!n1!n15!n1!n|^HU(\d{2})(\d{3})(\d{4})(\d{1})(\d{15})(\d{1})$|28|0|2|3|6|2011-06-20|1 -IS|Iceland|0159-26-007654-551073-0339|0159260076545510730339|4!n2!n6!n10!n|^(\d{4})(\d{2})(\d{6})(\d{10})$|22|IS140159260076545510730339|IS2!n4!n2!n6!n10!n|^IS(\d{2})(\d{4})(\d{2})(\d{6})(\d{10})$|26|0|3|6|11|2011-06-20|1 -IE|Ireland|93-11-52 12345678|AIBK93115212345678|4!a6!n8!n|^([A-Z]{4})(\d{6})(\d{8})$|18|IE29AIBK93115212345678|IE2!n4!a6!n8!n|^IE(\d{2})([A-Z]{4})(\d{6})(\d{8})$|22|0|3|4|9|2011-06-20|1 -IL|Israel|10-800-99999999|100800000099999000|3!n3!n13!n|^(\d{3})(\d{3})(\d{13})$|19|IL620108000000099999999|IL2!n3!n3!n13!n|^IL(\d{2})(\d{3})(\d{3})(\d{13})$|23|0|2|3|5|2011-06-20|0 -IT|Italy|X 05428 11101 000000123456|X0542811101000000123456|1!a5!n5!n12!c|^([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|23|IT60X0542811101000000123456|IT2!n1!a5!n5!n12!c|^IT(\d{2})([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|27|0|5|6|10|2011-06-20|1 -JO|Jordan|1310000302|CBJO0010000000000131000302|4!a4!n18!c|^([A-Z]{4})(\d{4})([A-Za-z0-9]{18})$|26|JO94CBJO0010000000000131000302|JO2!n4!a4!n18!c|^JO(\d{2})([A-Z]{4})(\d{4})([A-Za-z0-9]{18})$|30|0|3|4|7|2014-06-05|0 -KZ|Kazakhstan|KZ86 125K ZT50 0410 0100|125KZT5004100100|3!n13!c|^(\d{3})([A-Za-z0-9]{13})$|16|KZ07|KZ2!n3!n13!c|^KZ(\d{2})(\d{3})([A-Za-z0-9]{13})$||0|2|||2014-06-05|0 -KW|Kuwait|CBKU0000000000001234560101|CBKU0000000000001234560101|4!a22!c|^([A-Z]{4})([A-Za-z0-9]{22})$|26|KW81CBKU0000000000001234560101|KW2!n4!a22!n|^KW(\d{2})([A-Z]{4})(\d{22})$|30|0|3|||2011-06-20|0 -LV|Latvia|BANK 0000 4351 9500 1|BANK0000435195001|4!a13!c|^([A-Z]{4})([A-Za-z0-9]{13})$|17|LV80BANK0000435195001|LV2!n4!a13!c|^LV(\d{2})([A-Z]{4})([A-Za-z0-9]{13})$|21|0|3|||2011-06-20|1 -LB|Lebanon|01 001 901229114|0999 0000 0001 0019 0122 9114|4!n20!c|^(\d{4})([A-Za-z0-9]{20})$|24|LB62099900000001001901229114|LB2!n4!n20!c|^LB(\d{2})(\d{4})([A-Za-z0-9]{20})$|28|0|3|||2011-06-20|0 -LI|Liechtenstein|8810 2324013AA|088100002324013AA|5!n12!c|^(\d{5})([A-Za-z0-9]{12})$|19|LI21088100002324013AA|LI2!n5!n12!c|^LI(\d{2})(\d{5})([A-Za-z0-9]{12})$|21|0|4|||2012-05-29|1 -LT|Lithuania|1000 0111 0100 1000|10000011101001000|5!n11!n|^(\d{5})(\d{11})$|16|LT121000011101001000|LT2!n5!n11!n|^LT(\d{2})(\d{5})(\d{11})$|20|0|4|||2011-06-20|1 -LU|Luxembourg|0019 4006 4475 0000|0019400644750000|3!n13!c|^(\d{3})([A-Za-z0-9]{13})$|16|LU280019400644750000|LU2!n3!n13!c|^LU(\d{2})(\d{3})([A-Za-z0-9]{13})$|20|0|2|||2011-06-20|1 -MK|Macedonia|300 0000000424 25|250120000058984|3!n10!c2!n|^(\d{3})([A-Za-z0-9]{10})(\d{2})$|15|MK07250120000058984|MK2!n3!n10!c2!n|^MK(\d{2})(\d{3})([A-Za-z0-9]{10})(\d{2})$|19|0|2|||2012-05-29|0 -MT|Malta|12345MTLCAST001S|MALT011000012345MTLCAST001S|4!a5!n18!c|^([A-Z]{4})(\d{5})([A-Za-z0-9]{18})$|27|MT84MALT011000012345MTLCAST001S|MT2!n4!a5!n18!c|^MT(\d{2})([A-Z]{4})(\d{5})([A-Za-z0-9]{18})$|31|0|3|4|8|2011-06-20|1 -MR|Mauritania|00020 00101 00001234567 53|00020001010000123456753|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|MR1300020001010000123456753|MR135!n5!n11!n2!n|^MR13(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2011-06-20|0 -MU|Mauritius|BOMM 0101 1010 3030 0200 000M UR|BOMM0101101030300200000MUR|4!a2!n2!n12!n3!n3!a|^([A-Z]{4})(\d{2})(\d{2})(\d{12})(\d{3})([A-Z]{3})$|26|MU17BOMM0101101030300200000MUR|MU2!n4!a2!n2!n12!n3!n3!a|^MU(\d{2})([A-Z]{4})(\d{2})(\d{2})(\d{12})(\d{3})([A-Z]{3})$|30|0|5|6|7|2011-06-20|0 -MD|Moldova|00225100013104168|AG000225100013104168|2!c18!c|^([A-Za-z0-9]{2})([A-Za-z0-9]{18})$|20|MD24AG000225100013104168|MD2!n20!c|^MD(\d{2})([A-Za-z0-9]{20})$|24|0|1|||2012-09-09|0 -MC|Monaco|0011111000h|11222 00001 01234567890 30|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|MC5811222000010123456789030|MC2!n5!n5!n11!c2!n|^MC(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|1 -ME|Montenegro|505 0000123456789 51|505000012345678951|3!n13!n2!n|^(\d{3})(\d{13})(\d{2})$|18|ME25505000012345678951|ME2!n3!n13!n2!n|^ME(\d{2})(\d{3})(\d{13})(\d{2})$|22|0|2|||2011-06-20|0 -NL|The Netherlands|041 71 64 300|ABNA0417164300|4!a10!n|^([A-Z]{4})(\d{10})$|14|NL91ABNA0417164300|NL2!n4!a10!n|^NL(\d{2})([A-Z]{4})(\d{10})$|18|0|3|4|3|2013-06-20|1 -NO|Norway|8601 11 17947|86011117947|4!n6!n1!n|^(\d{4})(\d{6})(\d{1})$|11|NO9386011117947|NO2!n4!n6!n1!n|^NO(\d{2})(\d{4})(\d{6})(\d{1})$|15|0|3|||2011-06-20|1 -PK|Pakistan|00260101036360|SCBL0000001123456702|4!a16!c|^([A-Z]{4})([A-Za-z0-9]{16})$|20|PK36SCBL0000001123456702|PK2!n4!a16!c|^PK(\d{2})([A-Z]{4})([A-Za-z0-9]{16})$|24|0|3|||2012-05-29|0 -PL|Poland|61 1090 1014 0000 0712 1981 2874|109010140000071219812874|8!n16!n|^(\d{8})(\d{16})$|24|PL61109010140000071219812874|PL2!n8!n16n|^PL(\d{2})(\d{8})(\d{1,16})$|28|0|7|||2011-06-20|1 -PS|Palestine|400123456702|PALS000000000400123456702|4!a21!c|^([A-Z]{4})([A-Za-z0-9]{21})$|25|PS92PALS000000000400123456702|PS2!n4!a21!c|^PS(\d{2})([A-Z]{4})([A-Za-z0-9]{21})$|29|0|3|||2013-09-05|0 -PT|Portugal|0002.0123.12345678901.54|000201231234567890154|4!n4!n11!n2!n|^(\d{4})(\d{4})(\d{11})(\d{2})$|21|PT50000201231234567890154|PT2!n4!n4!n11!n2!n|^PT(\d{2})(\d{4})(\d{4})(\d{11})(\d{2})$|25|0|3|4|7|2013-09-05|1 -QA|Qatar|QA58DOHB00001234567890ABCDEFG|DOHB00001234567890ABCDEFG|4!a4!n17!c|^([A-Z]{4})(\d{4})([A-Za-z0-9]{17})$|29|QA58DOHB00001234567890ABCDEFG|QA2!n4!a4!n17!c|^QA(\d{2})([A-Z]{4})(\d{4})([A-Za-z0-9]{17})$|29|0|3|4|7|2014-06-05|0 -RO|Romania|AAAA 1B31 0075 9384 0000|AAAA1B31007593840000|4!a16!c|^([A-Z]{4})([A-Za-z0-9]{16})$|20|RO49AAAA1B31007593840000|RO2!n4!a16!c|^RO(\d{2})([A-Z]{4})([A-Za-z0-9]{16})$|24|0|3|||2011-06-20|1 -SM|San Marino|U032 2509 8000 0000 0270 100|U0322509800000000270100|1!a5!n5!n12!c|^([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|23|SM86U0322509800000000270100|SM2!n1!a5!n5!n12!c|^SM(\d{2})([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|27|0|5|6|10|2011-06-20|1 -SA|Saudi Arabia|608010167519|80000000608010167519|2!n18!c|^(\d{2})([A-Za-z0-9]{18})$|20|SA0380000000608010167519|SA2!n2!n18!c|^SA(\d{2})(\d{2})([A-Za-z0-9]{18})$|24|0|1|||2012-05-29|0 -RS|Serbia|260-0056010016113-79|260005601001611379|3!n13!n2!n|^(\d{3})(\d{13})(\d{2})$|18|RS35260005601001611379|RS2!n3!n13!n2!n|^RS(\d{2})(\d{3})(\d{13})(\d{2})$|22|0|2|||2011-06-20|0 -SK|Slovak Republic|19-8742637541/1200|12000000198742637541|4!n6!n10!n|^(\d{4})(\d{6})(\d{10})$|20|SK3112000000198742637541|SK2!n4!n6!n10!n|^SK(\d{2})(\d{4})(\d{6})(\d{10})$|24|0|3|4|9|2011-06-20|1 -SI|Slovenia|2633 0001 2039 086|263300012039086|5!n8!n2!n|^(\d{5})(\d{8})(\d{2})$|15|SI56191000000123438|SI2!n5!n8!n2!n|^SI(\d{2})(\d{5})(\d{8})(\d{2})$|19|0|1|2|4|2012-09-09|1 -ES|Spain|2100 0418 45 0200051332|21000418450200051332|4!n4!n1!n1!n10!n|^(\d{4})(\d{4})(\d{1})(\d{1})(\d{10})$|20|ES9121000418450200051332|ES2!n4!n4!n1!n1!n10!n|^ES(\d{2})(\d{4})(\d{4})(\d{1})(\d{1})(\d{10})$|24|0|3|4|7|2013-09-05|1 -SE|Sweden|1234 12 3456 1|5000 0000 0583 9825 7466|3!n16!n1!n|^(\d{3})(\d{16})(\d{1})$|20|SE4550000000058398257466|SE2!n3!n16!n1!n|^SE(\d{2})(\d{3})(\d{16})(\d{1})$|24|0|2|||2011-06-20|1 -CH|Switzerland|762 1162-3852.957|00762011623852957|5!n12!c|^(\d{5})([A-Za-z0-9]{12})$|17|CH9300762011623852957|CH2!n5!n12!c|^CH(\d{2})(\d{5})([A-Za-z0-9]{12})$|21|0|4|||2011-06-20|1 -TN|Tunisia|10 006 0351835984788 31|10006035183598478831|2!n3!n13!n2!n|^(\d{2})(\d{3})(\d{13})(\d{2})$|20|TN5910006035183598478831|TN592!n3!n13!n2!n|^TN59(\d{2})(\d{3})(\d{13})(\d{2})$|24|0|1|2|4|2011-06-20|0 -TR|Turkey|0061 01299 1234567890123456789|0006100519786457841326|5!n1!c16!c|^(\d{5})([A-Za-z0-9]{1})([A-Za-z0-9]{16})$|22|TR330006100519786457841326|TR2!n5!n1!c16!c|^TR(\d{2})(\d{5})([A-Za-z0-9]{1})([A-Za-z0-9]{16})$|26|0|4|||2011-06-20|0 -AE|United Arab Emirates|1234567890123456|0331234567890123456|3!n16!n|^(\d{3})(\d{16})$|19|AE070331234567890123456|AE2!n3!n16!n|^AE(\d{2})(\d{3})(\d{16})$|23|0|2|||2011-06-20|0 -GB|United Kingdom|60-16-13 31926819|NWBK60161331926819|4!a6!n8!n|^([A-Z]{4})(\d{6})(\d{8})$|18|GB29NWBK60161331926819|GB2!n4!a6!n8!n|^GB(\d{2})([A-Z]{4})(\d{6})(\d{8})$|22|0|3|4|9|2011-06-20|1 -VG|British Virgin Islands|00000 12 345 678 901|VPVG0000012345678901|4!a16!n|^([A-Z]{4})(\d{16})$|20|VG96VPVG0000012345678901|VG2!n4!a16!n|^VG(\d{2})([A-Z]{4})(\d{16})$|24|0|3|||2012-05-29|0 +country_code|country_name|domestic_example|bban_example|bban_format_swift|bban_format_regex|bban_length|iban_example|iban_format_swift|iban_format_regex|iban_length|bban_bankid_start_offset|bban_bankid_stop_offset|bban_branchid_start_offset|bban_branchid_stop_offset|registry_edition|country_sepa|swift_official|bban_checksum_start_offset|bban_checksum_stop_offset|country_code_iana|country_code_iso3166_1_alpha2|parent_registrar|currency_iso4217|central_bank_url|central_bank_name|membership +AL|Albania|0000000235698741|212110090000000235698741|8!n16!c|^(\d{8})([A-Za-z0-9]{16})$|24|AL47212110090000000235698741|AL2!n8!n16!c|^AL(\d{2})(\d{8})([A-Za-z0-9]{16})$|28|0|2|3|6|2011-06-20|0|1|7|7|al|AL||ALL|www.bankofalbania.org|Bank of Albania|non_member +DZ|Algeria|12341234123412341234|12341234123412341234|20!n|^[0-9]{20}$|20|DZ3512341234123412341234|DZ2!n20!n|^DZ(\d{2})(\d{20})$|24|||||2016-01-22|0|0|||dz|DZ||DZD|www.bank-of-algeria.dz|Bank of Algeria|non_member +AD|Andorra|2030200359100100|00012030200359100100|4!n4!n12!c|^(\d{4})(\d{4})([A-Za-z0-9]{12})$|20|AD1200012030200359100100|AD2!n4!n4!n12!c|^AD(\d{2})(\d{4})(\d{4})([A-Za-z0-9]{12})$|24|0|3|4|7|2011-06-20|1|1|||ad|AD||EUR|www.inaf.ad|Institut Nacional Andorrà de Finances|other_member +AO|Angola|123412341234123412341|123412341234123412341|21!n|^[0-9]{21}$|21|AO44123412341234123412341|AO2!n21!n|^AO(\d{2})(\d{21})$|25|||||2016-01-22|0|0|||ao|AO||AOA|www.bna.ao|National Bank of Angola|non_member +AT|Austria|19043-234573201|1904300234573201|5!n11!n|^(\d{5})(\d{11})$|16|AT611904300234573201|AT2!n5!n11!n|^AT(\d{2})(\d{5})(\d{11})$|20|0|4|||2011-06-20|1|1|||at|AT||EUR|www.oenb.at|Austrian National Bank|eu_member +AZ|Azerbaijan|NABZ00000000137010001944|NABZ00000000137010001944|4!a20!c|^([A-Z]{4})([A-Za-z0-9]{20})$|24|AZ21NABZ00000000137010001944|AZ2!n4!a20!c|^AZ(\d{2})([A-Z]{4})([A-Za-z0-9]{20})$|28|0|3|||2012-05-29|0|1|||az|AZ||AZN|www.cbar.az|The Central Bank of the Republic of Azerbaijan|non_member +BH|Bahrain|00001299123456|BMAG00001299123456|4!a14!c|^([A-Z]{4})([A-Za-z0-9]{14})$|18|BH67BMAG00001299123456|BH2!n4!a14!c|^BH(\d{2})([A-Z]{4})([A-Za-z0-9]{14})$|22|0|3|||2012-05-29|0|1|||bh|BH||BHD|www.cbb.gov.bh|Central Bank of Bahrain|non_member +BE|Belgium|539-0075470-34|539007547034|3!n7!n2!n|^(\d{3})(\d{7})(\d{2})$|12|BE68539007547034|BE2!n3!n7!n2!n|^BE(\d{2})(\d{3})(\d{7})(\d{2})$|16|0|2|||2011-06-20|1|1|10|11|be|BE||EUR|www.nbb.be|National Bank of Belgium|eu_member +BJ|Benin|A12312341234123412341234|A12312341234123412341234|1!a23!n|^[A-Z]{1}[0-9]{23}$|24|BJ83A12312341234123412341234|BJ2!n1!a23!n|^BJ(\d{2})([A-Z]{1}[0-9]{23})$|28|||||2016-01-22|0|0|||bj|BJ||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +BA|Bosnia and Herzegovina|199-044-00012002-79|1990440001200279|3!n3!n8!n2!n|^(\d{3})(\d{3})(\d{8})(\d{2})$|16|BA391290079401028494|BA2!n3!n3!n8!n2!n|^BA(\d{2})(\d{3})(\d{3})(\d{8})(\d{2})$|20|0|2|3|5|2011-06-20|0|1|14|15|ba|BA||BAM|www.cbbh.ba|Central Bank of Bosnia and Herzegovina|non_member +BR|Brazil|0009795493C1|00360305000010009795493P1|8!n5!n10!n1!a1!c|^(\d{8})(\d{5})(\d{10})([A-Z]{1})([A-Za-z0-9]{1})$|25|BR9700360305000010009795493P1|BR2!n8!n5!n10!n1!a1!c|^BR(\d{2})(\d{8})(\d{5})(\d{10})([A-Z]{1})([A-Za-z0-9]{1})$|29|0|7|8|12|2013-06-20|0|1|||br|BR||BRL|www.bcb.gov.br|Central Bank of Brazil|non_member +VG|British Virgin Islands|00000 12 345 678 901|VPVG0000012345678901|4!a16!n|^([A-Z]{4})(\d{16})$|20|VG96VPVG0000012345678901|VG2!n4!a16!n|^VG(\d{2})([A-Z]{4})(\d{16})$|24|0|3|||2012-05-29|0|1|||vg|VG||USD|www.bvifsc.vg|The British Virgin Islands Financial Services Commission|non_member +BG|Bulgaria|BNBG 9661 1020 3456 78|BNBG96611020345678|4!a4!n2!n8!c|^([A-Z]{4})(\d{4})(\d{2})([A-Za-z0-9]{8})$|18|BG80BNBG96611020345678|BG2!n4!a4!n2!n8!c|^BG(\d{2})([A-Z]{4})(\d{4})(\d{2})([A-Za-z0-9]{8})$|22|0|3|4|7|2011-06-20|1|1|||bg|BG||BGN|www.bnb.bg|Bulgarian National Bank|eu_member +BF|Burkina Faso|12341234123412341234123|12341234123412341234123|23!n|^[0-9]{23}$|23|BF4512341234123412341234123|BF2!n23!n|^BF(\d{2})(\d{23})$|27|||||2016-01-22|0|0|||bf|BF||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +BI|Burundi|123412341234|123412341234|12!n|^[0-9]{12}$|12|BI33123412341234|BI2!n12!n|^BI(\d{2})(\d{12})$|16|||||2016-01-22|0|0|||bi|BI||BIF|www.brb.bi|Bank of the Republic of Burundi|non_member +BY|Belarus|3600 0000 0000 0Z00 AB00|NBRB 3600 0000 0000 0Z00 AB00|4!c4!n16!c|^([A-Za-z0-9]{4})(\d{4})([A-Za-z0-9]{16})$|24|BY13NBRB3600900000002Z00AB00|BY2!n4!c4!n16!c|^BY(\d{2})([A-Za-z0-9]{4})(\d{4})([A-Za-z0-9]{16})$|28|0|3|||2017-08-03|0|1|||by|BY||BYN|www.nbrb.by|National Bank of the Republic of Belarus|non_member +CM|Cameroon|12341234123412341234123|12341234123412341234123|23!n|^[0-9]{23}$|23|CM1512341234123412341234123|CM2!n23!n|^CM(\d{2})(\d{23})$|27|||||2016-01-22|0|0|||cm|CM||XAF|www.beac.int|Bank of Central African States|non_member +CV|Cape Verde|12341234123412341|12341234123412341|21!n|^[0-9]{21}$|21|CV05123412341234123412341|CV2!n21!n|^CV(\d{2})(\d{21})$|25|||||2016-01-22|0|0|||cv|CV||CVE|www.bcv.cv|Bank of Cape Verde|non_member +CF|Central African Republic|0140183240140|20001000010140183240140|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|CF4220001000010120069700160|CF2!n5!n5!n11!n2!n|^CF(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-03|0|0|21|23|cf|CF||XAF|www.beac.int|Bank of Central African States|non_member +TD|Chad|37102538601 74|60003000203710253860174|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|TD8960003000203710253860174|TD2!n5!n5!n11!n2!n|^TD(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-03|0|0|21|23|cf|CF||XAF|www.beac.int|Bank of Central African States|non_member +KM|Comoros|00109044001 37|00005000010010904400137|5!n5!n13!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|KM4600005000010010904400137|KM2!n5!n5!n13!n2!n|^KM(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-03|0|0|21|23|km|KM||LMF|www.banque-comores.km|Banque Centrale des Comores|non_member +CG|Congo|10134513000|30011000101013451300019|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|CG3930013020003710721836132|CG2!n5!n5!n11!n2!n|^CG(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-01|0|1|21|23|cg|CG||CDF|www.bcc.cd|Central Bank of the Congo|non_member +CR|Costa Rica|02001026284066|015202001026284066|4!n14!n|^(\d{4})(\d{14})$|18|CR05015202001026284066|CR2!n4!n14!n|^CR(\d{2})(\d{4})(\d{14})$|22|0|3|||2012-05-29|0|1|||cr|CR||CRC|www.bccr.fi.cr|Central Bank of Costa Rica|non_member +CI|Côte d'Ivoire|A12312341234123412341234|A12312341234123412341234|1!a23!n|^[A-Z]{1}[0-9]{23}$|24|CI77A12312341234123412341234|CI2!n1!a23!n|^CI(\d{2})([A-Z]{1})(\d{23})$|28|||||2016-01-22|0|0|||ci|CI||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +HR|Croatia|1001005-1863000160|10010051863000160|7!n10!n|^(\d{7})(\d{10})$|17|HR1210010051863000160|HR2!n7!n10!n|^HR(\d{2})(\d{7})(\d{10})$|21|0|6|||2011-06-20|1|1|||hr|HR||HRK|www.hnb.hr|Croatian National Bank|eu_member +CY|Cyprus|1200527600|002001280000001200527600|3!n5!n16!c|^(\d{3})(\d{5})([A-Za-z0-9]{16})$|24|CY17002001280000001200527600|CY2!n3!n5!n16!c|^CY(\d{2})(\d{3})(\d{5})([A-Za-z0-9]{16})$|28|0|2|3|7|2011-06-20|1|1|||cy|CY||EUR|www.centralbank.gov.cy|Central Bank of Cyprus|eu_member +CZ|Czech Republic|19-2000145399/0800|08000000192000145399|4!n6!n10!n|^(\d{4})(\d{6})(\d{10})$|20|CZ6508000000192000145399|CZ2!n4!n6!n10!n|^CZ(\d{2})(\d{4})(\d{6})(\d{10})$|24|0|3|4|9|2011-06-20|1|1|||cz|CZ||CZK|www.cnb.cz|Czech National Bank|eu_member +DK|Denmark|0040 0440116243, 6460 0001631634, 6471 0001000206|00400440116243, 64600001631634, 64710001000206|4!n9!n1!n|^(\d{4})(\d{9})(\d{1})$|14|DK5000400440116243|DK2!n4!n9!n1!n|^DK(\d{2})(\d{4})(\d{9})(\d{1})$|18|0|3|||2011-06-20|1|1|||dk|DK||DKK|www.nationalbanken.dk|National Bank of Denmark (Danmarks Nationalbank)||eu_member +FO|Faroe Islands|0040 0440116243, 6460 0001631634, 6471 0001000206|00400440116243, 64600001631634, 64710001000206|4!n9!n1!n|^(\d{4})(\d{9})(\d{1})$|14|FO2000400440116243|FO2!n4!n9!n1!n|^FO(\d{2})(\d{4})(\d{9})(\d{1})$|18|0|3|||2011-06-20|0|1|13|13|fo|FO|DK|DKK|www.nationalbanken.dk|National Bank of Denmark (Danmarks Nationalbank)|non_member +GL|Greenland|0040 0440116243, 6460 0001631634, 6471 0001000206|00400440116243, 64600001631634, 64710001000206|4!n9!n1!n|^(\d{4})(\d{9})(\d{1})$|14|GL2000400440116243|GL2!n4!n9!n1!n|^GL(\d{2})(\d{4})(\d{9})(\d{1})$|18|0|3|||2011-06-20|0|1|||gl|GL|DK|DKK|www.nationalbanken.dk|National Bank of Denmark (Danmarks Nationalbank)|non_member +DJ|Djibouti|04099430200 08|10002010010409943020008|5!n5!n13!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|DJ2110002010010409943020008|DJ2!n5!n5!n13!n2!n|^DJ(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-03|0|0|21|23|dj|DJ||DJF|www.banque-centrale.dj|Central Bank of Djibouti|non_member +DO|Dominican Republic|1212453611324|AGR00000001212453611324|4!c20!n|^([A-Za-z0-9]{4})(\d{20})$|24|DO28BAGR00000001212453611324|DO2!n4!c20!n|^DO(\d{2})([A-Za-z0-9]{4})(\d{20})$|28|0|3|||2011-06-20|0|1|||do|DO||DOP|www.bancentral.gov.do|Central Bank of the Dominican Republic|non_member +EG|Egypt|000263180002|0019000500000000263180002|4!n4!n17!n|(\d{4})(\d{4})(\d{17})|25|EG380019000500000000263180002|EG2!n4!n4!n17!n|^EG(\d{2})(\d{4})(\d{4})(\d{17})$|29|0|4|5|9|2020-01-01|0|0|||eg|EG||EGP|www.cbe.org.eg|Central Bank of Egypt|non_member +SV|El Salvador|00000000000000700025|CENR00000000000000700025|4!a20!n|^([A-Za-z0-9]{4})(\d{20})$|24|SV62CENR00000000000000700025|SV2!n4!a20!n|^SV(\d{2})([A-Za-z0-9]{4})(\d{20})$|28|0|3|||2017-08-03|0|1|||sv|SV||USD|www.bcr.gob.sv|Central Reserve Bank of El Salvador|non_member +GQ|Equitorial Guinea|37152281901 96|50002001003715228190196|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|GQ7050002001003715228190196|GQ2!n5!n5!n11!n2!n|^GQ(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-03|0|0|21|23|gq|GQ||XAF|www.beac.int|Bank of Central African States|non_member +EE|Estonia|221020145685|2200221020145685|2!n2!n11!n1!n|^(\d{2})(\d{2})(\d{11})(\d{1})$|16|EE382200221020145685|EE2!n2!n2!n11!n1!n|^EE(\d{2})(\d{2})(\d{2})(\d{11})(\d{1})$|20|0|1|||2011-06-20|1|1|15|15|ee|EE||EUR|www.eestipank.ee|Bank of Estonia|eu_member +FI|Finland|123456-785|12345600000785|6!n7!n1!n|^(\d{6})(\d{7})(\d{1})$|14|FI2112345600000785|FI2!n6!n7!n1!n|^FI(\d{2})(\d{6})(\d{7})(\d{1})$|18|0|2|||2013-08-05|1|1|13|13|fi|FI||EUR|www.suomenpankki.fi|Bank of Finland|eu_member +AX|Åland Islands|123456-785|12345600000785|6!n7!n1!n|^(\d{6})(\d{7})(\d{1})$|14|AX2112345600000785|AX2!n6!n7!n1!n|^AX(\d{2})(\d{6})(\d{7})(\d{1})$|18|0|2|||2013-09-05|1|1|||ax|AX|FI|EUR|www.suomenpankki.fi|Bank of Finland|eu_member +FR|France|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|FR1420041010050500013M02606|FR2!n5!n5!n11!c2!n|^FR(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|fr|FR||EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +GF|French Guiana|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|GF4120041010050500013M02606|GF2!n5!n5!n11!c2!n|^GF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|gf|GF|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +PF|French Polynesia|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|PF5720041010050500013M02606|PF2!n5!n5!n11!c2!n|^PF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0|1|21|22|pf|PF|FR|XPF|www.ieom.fr|Overseas Issuing Institute (Institut d'émission d'Outre-Mer)|other_member +TF|French Southern Territories|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|TF2120041010050500013M02606|TF2!n5!n5!n11!c2!n|^TF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0|1|21|22|tf|TF|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|other_member +GP|Guadelope|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|GP1120041010050500013M02606|GP2!n5!n5!n11!c2!n|^GP(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|gp|GP|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +MQ|Martinique|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|MQ5120041010050500013M02606|MQ2!n5!n5!n11!c2!n|^MQ(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|mq|MQ|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +YT|Mayotte|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|YT3120041010050500013M02606|YT2!n5!n5!n11!c2!n|^YT(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|yt|YT|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +NC|New Caledonia|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|NC8420041010050500013M02606|NC2!n5!n5!n11!c2!n|^NC(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0|1|21|22|nc|NC|FR|XPF|www.ieom.fr|Overseas Issuing Institute (Institut d'émission d'Outre-Mer)|other_member +RE|Réunion|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|RE4220041010050500013M02606|RE2!n5!n5!n11!c2!n|^RE(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|re|RE|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +BL|Saint Barthélemy|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|BL6820041010050500013M02606|BL2!n5!n5!n11!c2!n|^BL(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-02-08|0|1|21|22||BL|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|other_member +MF|Saint Martin (French Part)|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|MF8420041010050500013M02606|MF2!n5!n5!n11!c2!n|^MF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-02-08|0|1|21|22||MF|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|eu_member +PM|Saint-Pierre and Miquelon|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|PM3620041010050500013M02606|PM2!n5!n5!n11!c2!n|^PM(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2013-08-28|1|1|21|22|pm|PM|FR|EUR|www.banque-france.fr|Bank of France (Banque de France)|other_member +WF|Wallis and Futuna|20041 01005 0500013M026 06|20041010050500013M02606|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|WF9120041010050500013M02606|WF2!n5!n5!n11!c2!n|^WF(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|0|1|21|22|wf|WF|FR|XPF|www.ieom.fr|Overseas Issuing Institute (Institut d'émission d'Outre-Mer)|other_member +GA|Gabon|15200001069 63|42001007341520000106963|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|GA2142001007341520000106963|GA2!n5!n5!n11!n2!n|^GA(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2017-08-03|0|0|21|23|ga|GA||XAF|www.beac.int|Bank of Central African States|non_member +GE|Georgia|0000000101904917|NB0000000101904917|2!a16!n|^([A-Z]{2})(\d{16})$|18|GE29NB0000000101904917|GE2!n2!a16!n|^GE(\d{2})([A-Z]{2})(\d{16})$|22|0|1|||2011-06-20|0|1|||ge|GE||GEL|www.nbg.gov.ge|National Bank of Georgia|non_member +DE|Germany|37040044-532013000|370400440532013000|8!n10!n|^(\d{8})(\d{10})$|18|DE89370400440532013000|DE2!n8!n10!n|^DE(\d{2})(\d{8})(\d{10})$|22|0|7|||2011-06-20|1|1|||de|DE||EUR|www.bundesbank.de|Deutsche Bundesbank|eu_member +GI|Gibraltar|0000 00007099 453|NWBK000000007099453|4!a15!c|^([A-Z]{4})([A-Za-z0-9]{15})$|19|GI75NWBK000000007099453|GI2!n4!a15!c|^GI(\d{2})([A-Z]{4})([A-Za-z0-9]{15})$|23|0|3|||2011-06-20|1|1|||gi|GI||GIP|www.gibraltar.gov.gi|Government of Gibraltar|other_member +GR|Greece|01250000000012300695|01101250000000012300695|3!n4!n16!c|^(\d{3})(\d{4})([A-Za-z0-9]{16})$|23|GR1601101250000000012300695|GR2!n3!n4!n16!c|^GR(\d{2})(\d{3})(\d{4})([A-Za-z0-9]{16})$|27|0|2|3|6|2011-06-20|1|1|||gr|GR||EUR|www.nbg.gr|National Bank of Greece|eu_member +GT|Guatemala|01020000001210029690|TRAJ01020000001210029690|4!c20!c|^([A-Za-z0-9]{4})([A-Za-z0-9]{20})$|24|GT82TRAJ01020000001210029690|GT2!n4!c20!c|^GT(\d{2})([A-Za-z0-9]{4})([A-Za-z0-9]{20})$|28|0|3|||2012-05-29|0|1|||gt|GT||GTQ|www.banguat.gob.gt|Bank of Guatemala|non_member +GW|Guinea-Bissau|0181800637601|GW1430010181800637601|2!c2!n4!n11!n2!n|^([A-Za-z0-9]{2}\d{2})(\d{4})(\d{11})(\d{2})$|21|GW04GW1430010181800637601|GW2!n2!c2!n4!n11!n2!n|^GW(\d{2})([A-Za-z0-9]{2}\d{2})(\d{4})(\d{11})(\d{2})$|25|0|3|4|7|2017-08-03|0|0|||gw|GW||XOF|www.bceao.int|Central Bank of West African States|non_member +HN|Honduras|123124|PISA00000000000000123124|4!a20!n|^([A-Za-z]{4})(\d{20})$|24|HN54PISA00000000000000123124|HN2!n4!a20!n|^HN(\d{2})([A-Za-z]{4})(\d{20})$|28|0|3|||2017-08-03|0|0|||hn|HN||HNL|www.bch.hn|Central Bank of Honduras|non_member +HU|Hungary|11773016-11111018-00000000|117730161111101800000000|3!n4!n1!n15!n1!n|^(\d{3})(\d{4})(\d{1})(\d{15})(\d{1})$|24|HU42117730161111101800000000|HU2!n3!n4!n1!n15!n1!n|^HU(\d{2})(\d{3})(\d{4})(\d{1})(\d{15})(\d{1})$|28|0|2|3|6|2011-06-20|1|1|23|23|hu|HU||HUF|english.mnb.hu|Magyar Nemzeti Bank (Central Bank of Hungary)|eu_member +IS|Iceland|0159-26-007654-551073-0339|0159260076545510730339|4!n2!n6!n10!n|^(\d{4})(\d{2})(\d{6})(\d{10})$|22|IS140159260076545510730339|IS2!n4!n2!n6!n10!n|^IS(\d{2})(\d{4})(\d{2})(\d{6})(\d{10})$|26|0|3|6|11|2011-06-20|1|1|||is|IS||ISK|www.sedlabanki.is|Central Bank of Iceland|efta_member +AA|IIBAN (Internet)|0011123Z5678|0011123Z5678|12!a|^[A-Z0-9]{12}$|12|AA110011123Z5678|AA2!n12!a|^AA(\d{2})([A-Z0-9]{12})$|16|0|3||||0|0|||||||||non_member +IR|Iran|1234123412341234123412|123412341234123412|22!n|^[0-9]{22}$|22|IR081234123412341234123412|IR2!n22!n|^IR(\d{2})(\d{22})$|26|||||2016-01-22|0|0|||ir|IR||IRR|www.cbi.ir|The Central Bank of the Islamic Republic of Iran|non_member +IQ|Iraq|123456789012|NBIQ850123456789012|4!a3!n12!n|^([A-Za-z]{4})(\d{3})(\d{12})$|19|IQ98NBIQ850123456789012|IQ2!n4!a3!n12!n|^IQ(\d{2})([A-Za-z]{4})(\d{3})(\d{12})$|23|0|3|4|6|2017-08-03|0|1|||iq|IQ||IQD|www.cbi.iq|Central Bank of Iraq|non_member +IE|Ireland|93-11-52 12345678|AIBK93115212345678|4!a6!n8!n|^([A-Z]{4})(\d{6})(\d{8})$|18|IE29AIBK93115212345678|IE2!n4!a6!n8!n|^IE(\d{2})([A-Z]{4})(\d{6})(\d{8})$|22|0|3|4|9|2011-06-20|1|1|||ie|IE||EUR|www.centralbank.ie|Central Bank and Financial Services Authority of Ireland|eu_member +IL|Israel|10-800-99999999|010800000099999999|3!n3!n13!n|^(\d{3})(\d{3})(\d{13})$|19|IL620108000000099999999|IL2!n3!n3!n13!n|^IL(\d{2})(\d{3})(\d{3})(\d{13})$|23|0|2|3|5|2011-06-20|0|1|||il|IL||ILS|www.bankisrael.org.il|Bank of Israel|non_member +IT|Italy|X 05428 11101 000000123456|X0542811101000000123456|1!a5!n5!n12!c|^([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|23|IT60X0542811101000000123456|IT2!n1!a5!n5!n12!c|^IT(\d{2})([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|27|1|5|6|10|2011-06-20|1|1|0|0|it|IT||EUR|www.bancaditalia.it|Bank of Italy|eu_member +JO|Jordan|1310000302|CBJO0010000000000131000302|4!a4!n18!c|^([A-Z]{4})(\d{4})([A-Za-z0-9]{18})$|26|JO94CBJO0010000000000131000302|JO2!n4!a4!n18!c|^JO(\d{2})([A-Z]{4})(\d{4})([A-Za-z0-9]{18})$|30|0|3|4|7|2014-06-05|0|1|||jo|JO||JOD|www.cbj.gov.jo|Central Bank of Jordan|non_member +KZ|Kazakhstan|KZ86125KZT5004100100|125KZT5004100100|3!n13!c|^(\d{3})([A-Za-z0-9]{13})$|16|KZ86125KZT5004100100|KZ2!n3!n13!c|^KZ(\d{2})(\d{3})([A-Za-z0-9]{13})$|20|0|2|||2014-06-05|0|1|||kz|KZ||KZT|www.nationalbank.kz|National Bank of Kazakhstan|non_member +XK|Kosovo|1212 0123456789 06|1212012345678906|4!n10!n2!n|^(\d{4})(\d{10})(\d{2})$|16|XK051212012345678906|XK2!n4!n10!n2!n|^XK(\d{2})(\d{4})(\d{10})(\d{2})$|20|0|1|2|3|2016-01-21|0|1||||||EUR|www.bqk-kos.org|Central Bank of the Republic of Kosovo (Banka Qendrore e Kosovës)|non_member +KW|Kuwait|CBKU0000000000001234560101|CBKU0000000000001234560101|4!a22!c|^([A-Z]{4})([A-Za-z0-9]{22})$|26|KW81CBKU0000000000001234560101|KW2!n4!a22!c|^KW(\d{2})([A-Z]{4})([A-Za-z0-9]{22})$|30|0|3|||2016-01-21|0|1|||kw|KW||KWD|www.cbk.gov.kw|Central Bank of Kuwait|non_member +LV|Latvia|BANK 0000 4351 9500 1|BANK0000435195001|4!a13!c|^([A-Z]{4})([A-Za-z0-9]{13})$|17|LV80BANK0000435195001|LV2!n4!a13!c|^LV(\d{2})([A-Z]{4})([A-Za-z0-9]{13})$|21|0|3|||2011-06-20|1|1|||lv|LV||EUR|www.bank.lv/lat/main/all|Bank of Latvia|eu_member +LB|Lebanon|01 001 901229114|0999 0000 0001 0019 0122 9114|4!n20!c|^(\d{4})([A-Za-z0-9]{20})$|24|LB62099900000001001901229114|LB2!n4!n20!c|^LB(\d{2})(\d{4})([A-Za-z0-9]{20})$|28|0|3|||2011-06-20|0|1|||lb|LB||LBP|www.bdl.gov.lb|Central Bank of Lebanon|non_member +LI|Liechtenstein|8810 2324013AA|088100002324013AA|5!n12!c|^(\d{5})([A-Za-z0-9]{12})$|17|LI21088100002324013AA|LI2!n5!n12!c|^LI(\d{2})(\d{5})([A-Za-z0-9]{12})$|21|0|4|||2012-05-29|1|1|||li|LI||CHF|www.llb.li|National Bank of Liechtenstein (Liechtensteinische Landesbank)|efta_member +LT|Lithuania|1000 0111 0100 1000|10000011101001000|5!n11!n|^(\d{5})(\d{11})$|16|LT121000011101001000|LT2!n5!n11!n|^LT(\d{2})(\d{5})(\d{11})$|20|0|4|||2011-06-20|1|1|||lt|LT||EUR|www.lb.lt|Bank of Lithuania|eu_member +LU|Luxembourg|0019 4006 4475 0000|0019400644750000|3!n13!c|^(\d{3})([A-Za-z0-9]{13})$|16|LU280019400644750000|LU2!n3!n13!c|^LU(\d{2})(\d{3})([A-Za-z0-9]{13})$|20|0|2|||2011-06-20|1|1|14|15|lu|LU||EUR|www.bcl.lu|Central Bank of Luxembourg|eu_member +MK|Macedonia|300 0000000424 25|250120000058984|3!n10!c2!n|^(\d{3})([A-Za-z0-9]{10})(\d{2})$|15|MK07250120000058984|MK2!n3!n10!c2!n|^MK(\d{2})(\d{3})([A-Za-z0-9]{10})(\d{2})$|19|0|2|||2012-05-29|0|1|13|14|mk|MK||MKD|www.nbrm.mk|National Bank of the Republic of Macedonia|non_member +MG|Madagascar|12341234123412341234123|12341234123412341234123|23!n|^[0-9]{23}$|23|MG4012341234123412341234123|MG2!n23!n|^MG(\d{2})(\d{23})$|27|||||2016-01-22|0|0|||mg|MG||MGA|www.banque-centrale.mg|Central Bank of Madagascar|non_member +ML|Mali|A12312341234123412341234|A12312341234123412341234|1!a23!n|^[A-Z]{1}[0-9]{23}$|24|ML75A12312341234123412341234|ML2!n1!a23!n|^ML(\d{2})([A-Z]{1})(\d{23})$|28|||||2016-01-22|0|0|||ml|ML||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +MT|Malta|12345MTLCAST001S|MALT011000012345MTLCAST001S|4!a5!n18!c|^([A-Z]{4})(\d{5})([A-Za-z0-9]{18})$|27|MT84MALT011000012345MTLCAST001S|MT2!n4!a5!n18!c|^MT(\d{2})([A-Z]{4})(\d{5})([A-Za-z0-9]{18})$|31|0|3|4|8|2011-06-20|1|1|||mt|MT||EUR|www.centralbankmalta.org|Central Bank of Malta|eu_member +MR|Mauritania|00020 00101 00001234567 53|00020001010000123456753|5!n5!n11!n2!n|^(\d{5})(\d{5})(\d{11})(\d{2})$|23|MR1300020001010000123456753|MR2!n5!n5!n11!n2!n|^MR(\d{2})(\d{5})(\d{5})(\d{11})(\d{2})$|27|0|4|5|9|2016-06-11|0|1|21|22|mr|MR||MRO|www.bcm.mr|Central Bank of Mauritania|non_member +MU|Mauritius|BOMM 0101 1010 3030 0200 000M UR|BOMM0101101030300200000MUR|4!a2!n2!n12!n3!n3!a|^([A-Z]{4})(\d{2})(\d{2})(\d{12})(\d{3})([A-Z]{3})$|26|MU17BOMM0101101030300200000MUR|MU2!n4!a2!n2!n12!n3!n3!a|^MU(\d{2})([A-Z]{4})(\d{2})(\d{2})(\d{12})(\d{3})([A-Z]{3})$|30|0|5|6|7|2011-06-20|0|1|||mu|MU||MUR|www.bom.mu|Bank of Mauritius|non_member +MD|Moldova|00225100013104168|AG000225100013104168|2!c18!c|^([A-Za-z0-9]{2})([A-Za-z0-9]{18})$|20|MD24AG000225100013104168|MD2!n2!c18!c|^MD(\d{2})([A-Za-z0-9]{20})$|24|0|1|||2012-09-09|0|1|||md|MD||MDL|www.bnm.org|National Bank of Moldova|non_member +MC|Monaco|0011111000h|11222 00001 01234567890 30|5!n5!n11!c2!n|^(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|23|MC5811222000010123456789030|MC2!n5!n5!n11!c2!n|^MC(\d{2})(\d{5})(\d{5})([A-Za-z0-9]{11})(\d{2})$|27|0|4|5|9|2011-06-20|1|1|21|22|mc|MC||EUR|||other_member +ME|Montenegro|505 0000123456789 51|505000012345678951|3!n13!n2!n|^(\d{3})(\d{13})(\d{2})$|18|ME25505000012345678951|ME2!n3!n13!n2!n|^ME(\d{2})(\d{3})(\d{13})(\d{2})$|22|0|2|||2011-06-20|0|1|16|17|me|ME||EUR|www.cb-mn.org|Central Bank of Montenegro|non_member +MA|Morocco|00012050005349 21|011519000001205000534921|3!n5!n14!n2!n|^(\d{3})(\d{5})(\d{14})(\d{2})$|26|MA64011519000001205000534921|MA2!n3!n5!n14!n2!n|^MA(\d{2})(\d{3})(\d{5})(\d{14})(\d{2})$|28|0|2|3|7|2017-08-03|0|0|22|24|ma|MA||MAD|www.bkam.ma|Bank Al-Maghrib|non_member +MZ|Mozambique|12341234123412341|12341234123412341|21!n|^[0-9]{21}$|21|MZ97123412341234123412341|MZ2!n21!n|^MZ(\d{2})(\d{21})$|25|||||2016-01-22|0|0|||mz|MZ||MZN|www.bancomoc.mz|Bank of Mozambique|non_member +NL|Netherlands|041 71 64 300|ABNA0417164300|4!a10!n|^([A-Z]{4})(\d{10})$|14|NL91ABNA0417164300|NL2!n4!a10!n|^NL(\d{2})([A-Z]{4})(\d{10})$|18|0|3|4|3|2013-06-20|1|1|||nl|NL||EUR|www.dnb.nl|Netherlands Bank|eu_member +NI|Nicaragua|3123123|BAMC000000000000000003123123|28!n|^([A-Za-z]{4})(\d{24})$|28|NI92BAMC000000000000000003123123|NI2!n4!a24!n|^NI(\d{2})([A-Za-z]{4})(\d{24})$|32|0|3|||2017-08-03|0|0|||ni|NI||NIO|www.bcn.gob.ni|Central Bank of Nicaragua|non_member +NE|Niger|01303050002 68|NE0380100100130305000268|2!a3!n5!n12!n2!n|^([A-Za-z]{2}\d{3})(\d{5})(\d{12})(\d{2})$|23|NE58NE0380100100130305000268|NE2!n2!a3!n5!n12!n2!n|^NE(\d{2})([A-Za-z]{2}\d{3})(\d{5})(\d{12})(\d{2})$|28|0|4|5|9|2017-08-03|0|0|22|23|ne|NE||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +NO|Norway|8601 11 17947|86011117947|4!n6!n1!n|^(\d{4})(\d{6})(\d{1})$|11|NO9386011117947|NO2!n4!n6!n1!n|^NO(\d{2})(\d{4})(\d{6})(\d{1})$|15|0|3|||2011-06-20|1|1|10|10|no|NO||NOK|www.norges-bank.no|Central Bank of Norway (Norges Bank)|efta_member +PK|Pakistan|00260101036360|SCBL0000001123456702|4!a16!c|^([A-Z]{4})([A-Za-z0-9]{16})$|20|PK36SCBL0000001123456702|PK2!n4!a16!c|^PK(\d{2})([A-Z]{4})([A-Za-z0-9]{16})$|24|0|3|||2012-05-29|0|1|||pk|PK||PKR|www.sbp.org.pk|State Bank of Pakistan|non_member +PS|Palestine|400123456702|PALS000000000400123456702|4!a21!c|^([A-Z]{4})([A-Za-z0-9]{21})$|25|PS92PALS000000000400123456702|PS2!n4!a21!c|^PS(\d{2})([A-Z]{4})([A-Za-z0-9]{21})$|29|0|3|||2013-09-05|0|1|||ps|PS||ILS|www.pma.ps|Palestine Monetary Authority|non_member +PL|Poland|61 1090 1014 0000 0712 1981 2874|109010140000071219812874|8!n16!n|^(\d{8})(\d{16})$|24|PL61109010140000071219812874|PL2!n8!n16!n|^PL(\d{2})(\d{8})(\d{16})$|28|0|7|||2011-06-20|1|1|7|7|pl|PL||PLN|www.nbp.pl|National Bank of Poland|eu_member +PT|Portugal|0002.0123.12345678901.54|000201231234567890154|4!n4!n11!n2!n|^(\d{4})(\d{4})(\d{11})(\d{2})$|21|PT50000201231234567890154|PT2!n4!n4!n11!n2!n|^PT(\d{2})(\d{4})(\d{4})(\d{11})(\d{2})$|25|0|3|4|7|2013-09-05|1|1|19|20|pt|PT||EUR|www.bportugal.pt|Bank of Portugal|eu_member +QA|Qatar|QA58DOHB00001234567890ABCDEFG|DOHB00001234567890ABCDEFG|4!a4!n17!c|^([A-Z]{4})(\d{4})([A-Za-z0-9]{17})$|25|QA58DOHB00001234567890ABCDEFG|QA2!n4!a4!n17!c|^QA(\d{2})([A-Z]{4})(\d{4})([A-Za-z0-9]{17})$|29|0|3|4|7|2014-06-05|0|1|||qa|QA||QAR|www.qcb.gov.qa|Qatar Central Bank|non_member +RO|Romania|AAAA 1B31 0075 9384 0000|AAAA1B31007593840000|4!a16!c|^([A-Z]{4})([A-Za-z0-9]{16})$|20|RO49AAAA1B31007593840000|RO2!n4!a16!c|^RO(\d{2})([A-Z]{4})([A-Za-z0-9]{16})$|24|0|3|||2011-06-20|1|1|||ro|RO||RON|www.bnro.ro|National Bank of Romania|eu_member +LC|Saint Lucia|0001 0001 0012 0012 0002 3015|HEMM000100010012001200023015|4!a24!c|^([A-Z]{4})([A-Za-z0-9]{24})$|28|LC55HEMM000100010012001200023015|LC2!n4!a24!c|^LC(\d{2})([A-Z]{4})([A-Za-z0-9]{24})$|32|0|3|||2016-04-15|0|1|||lc|LC||XCD|www.eccb-centralbank.org|Eastern Caribbean Central Bank|non_member +SM|San Marino|U032 2509 8000 0000 0270 100|U0322509800000000270100|1!a5!n5!n12!c|^([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|23|SM86U0322509800000000270100|SM2!n1!a5!n5!n12!c|^SM(\d{2})([A-Z]{1})(\d{5})(\d{5})([A-Za-z0-9]{12})$|27|1|5|6|10|2011-06-20|1|1|0|0|sm|SM||EUR|www.bcsm.sm|Central Bank of the Republic of San Marino|other_member +ST|São Tomé and Príncipe|518453101|0001000100518453101|8!n11!n2!n|^(\d{8})(\d{11})(\d{2})$|21|ST68000100010051845310112|ST2!n8!n11!n2!n|^ST(\d{2})(\d{8})(\d{11})(\d{2})$|25|0|3|4|7|2016-01-21|0|1|||st|ST||STD|www.bcstp.st|Central Bank of São Tomé and Príncipe|non_member +SA|Saudi Arabia|608010167519|80000000608010167519|2!n18!c|^(\d{2})([A-Za-z0-9]{18})$|20|SA0380000000608010167519|SA2!n2!n18!c|^SA(\d{2})(\d{2})([A-Za-z0-9]{18})$|24|0|1|||2012-05-29|0|1|||sa|SA||SAR|www.sama.gov.sa|Saudi Arabian Monetary Agency|non_member +SN|Senegal|A12312341234123412341234|A12312341234123412341234|1!a23!n|^[A-Z]{1}[0-9]{23}$|24|SN15A12312341234123412341234|SN2!n1!a23!n|^SN(\d{2})([A-Z]{1})(\d{23})$|28|||||2016-01-22|0|0|||sn|SN||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +RS|Serbia|260-0056010016113-79|260005601001611379|3!n13!n2!n|^(\d{3})(\d{13})(\d{2})$|18|RS35260005601001611379|RS2!n3!n13!n2!n|^RS(\d{2})(\d{3})(\d{13})(\d{2})$|22|0|2|||2011-06-20|0|1|16|17|rs|RS||RSD|www.nbs.rs|National Bank of Serbia|non_member +SC|Seychelles|0000000000001497|SSCB11010000000000001497USD|4!a2!n2!n16!n3!a|^([A-Z]{4})(\d{2})(\d{2})(\d{16})([A-Z]{3})$|27|SC18SSCB11010000000000001497USD|SC2!n4!a2!n2!n16!n3!a|^SC(\d{2})([A-Z]{4})(\d{2})(\d{2})(\d{16})([A-Z]{3})$|31|0|3|4|7|2020-01-01|0|1|||sc|SC||SCR|www.cbs.sc|Central Bank of Seychelles|non_member +SK|Slovakia|19-8742637541/1200|12000000198742637541|4!n6!n10!n|^(\d{4})(\d{6})(\d{10})$|20|SK3112000000198742637541|SK2!n4!n6!n10!n|^SK(\d{2})(\d{4})(\d{6})(\d{10})$|24|0|3|4|9|2011-06-20|1|1|19|19|sk|SK||EUR|www.nbs.sk|National Bank of Slovakia|eu_member +SI|Slovenia|2633 0001 2039 086|263300012039086|5!n8!n2!n|^(\d{5})(\d{8})(\d{2})$|15|SI56191000000123438|SI2!n5!n8!n2!n|^SI(\d{2})(\d{5})(\d{8})(\d{2})$|19|0|1|2|4|2012-09-09|1|1|13|14|si|SI||EUR|www.bsi.si|Bank of Slovenia|eu_member +ES|Spain|2100 0418 45 0200051332|21000418450200051332|4!n4!n1!n1!n10!n|^(\d{4})(\d{4})(\d{1})(\d{1})(\d{10})$|20|ES9121000418450200051332|ES2!n4!n4!n1!n1!n10!n|^ES(\d{2})(\d{4})(\d{4})(\d{1})(\d{1})(\d{10})$|24|0|3|4|7|2013-09-05|1|1|8|9|es|ES||EUR|www.bde.es|Bank of Spain|eu_member +SE|Sweden|1234 12 3456 1|5000 0000 0583 9825 7466|3!n16!n1!n|^(\d{3})(\d{16})(\d{1})$|20|SE4550000000058398257466|SE2!n3!n16!n1!n|^SE(\d{2})(\d{3})(\d{16})(\d{1})$|24|0|2|||2011-06-20|1|1|19|19|se|SE||SEK|www.riksbank.com|Bank of Sweden (Sveriges Riksbank)|eu_member +CH|Switzerland|762 1162-3852.957|00762011623852957|5!n12!c|^(\d{5})([A-Za-z0-9]{12})$|17|CH9300762011623852957|CH2!n5!n12!c|^CH(\d{2})(\d{5})([A-Za-z0-9]{12})$|21|0|4|||2011-06-20|1|1|||ch|CH||CHF|www.snb.ch|Swiss National Bank|efta_member +TL|Timor-Leste|008 00123456789101 57|0080012345678910157|3!n 14!n 2!n|^(\d{3})(\d{14})(\d{2})$|19|TL380080012345678910157|TL2!n3!n14!n2!n|^TL(\d{2})(\d{3})(\d{14})(\d{2})$|23|0|3|4|6|2016-01-21|0|1|17|18|tl|TL||USD|www.bancocentral.tl|Central Bank of Timor-Leste (Banco Central de Timor-Leste)|non_member +TG|Togo|43103465004000 70|TG0090604310346500400070|2!a3!n5!n12!n2!n|^([A-Za-z]{2}\d{3})(\d{5})(\d{12})(\d{2})$|26|TG53TG0090604310346500400070|TG2!n2!a3!n5!n12!n2!n|^TG(\d{2})([A-Za-z]{2}\d{3})(\d{5})(\d{12})(\d{2})$|28|0|4|5|9|2017-08-03|0|0|22|24|tg|TG||XOF|www.bceao.int|Central Bank of West African States (BCEAO)|non_member +TN|Tunisia|10 006 0351835984788 31|10006035183598478831|2!n3!n13!n2!n|^(\d{2})(\d{3})(\d{13})(\d{2})$|20|TN5910006035183598478831|TN2!n2!n3!n13!n2!n|^TN(\d{2})(\d{2})(\d{3})(\d{13})(\d{2})$|24|0|1|2|4|2011-06-20|0|1|18|19|tn|TN||TND|www.bct.gov.tn|Central Bank of Tunisia|non_member +TR|Turkey|TR33 0006 1005 1978 6457 8413 26|0006100519786457841326|5!n1!n16!c|^(\d{5})(\d{1})([A-Za-z0-9]{16})$|22|TR330006100519786457841326|TR2!n5!n1!n16!c|^TR(\d{2})(\d{5})(\d{1})([A-Za-z0-9]{16})$|26|0|4|||2016-01-21|0|1|||tr|TR||TRY|www.tcmb.gov.tr|Central Bank of the Republic of Turkey|non_member +UA|Ukraine|3996220000026007233566001|3996220000026007233566001|6!n19!c|^[0-9]{6}[A-Za-z0-9]{19}$|25|UA213996220000026007233566001|UA2!n6!n19!c|^UA(\d{2})(\d{6})([A-Za-z0-9]{19})$|29|0|5|||2016-01-22|0|0|||ua|UA||UAH|www.bank.gov.ua|National Bank of Ukraine|non_member +AE|United Arab Emirates|1234567890123456|0331234567890123456|3!n16!n|^(\d{3})(\d{16})$|19|AE070331234567890123456|AE2!n3!n16!n|^AE(\d{2})(\d{3})(\d{16})$|23|0|2|||2011-06-20|0|1|||ae|AE||AED|www.centralbank.ae|Central Bank of the United Arab Emirates|non_member +GB|United Kingdom|60-16-13 31926819|NWBK60161331926819|4!a6!n8!n|^([A-Z]{4})(\d{6})(\d{8})$|18|GB29NWBK60161331926819|GB2!n4!a6!n8!n|^GB(\d{2})([A-Z]{4})(\d{6})(\d{8})$|22|0|3|4|9|2011-06-20|1|1|||uk|GB||GBP|www.bankofengland.co.uk|Bank of England|other_member diff --git a/htdocs/includes/restler/framework/Luracast/Restler/CommentParser.php b/htdocs/includes/restler/framework/Luracast/Restler/CommentParser.php index 6b8b9178f6b..ce148874d02 100644 --- a/htdocs/includes/restler/framework/Luracast/Restler/CommentParser.php +++ b/htdocs/includes/restler/framework/Luracast/Restler/CommentParser.php @@ -19,505 +19,504 @@ use Luracast\Restler\Data\Text; */ class CommentParser { - /** - * name for the embedded data - * - * @var string - */ - public static $embeddedDataName = 'properties'; - /** - * Regular Expression pattern for finding the embedded data and extract - * the inner information. It is used with preg_match. - * - * @var string - */ - public static $embeddedDataPattern - = '/```(\w*)[\s]*(([^`]*`{0,2}[^`]+)*)```/ms'; - /** - * Pattern will have groups for the inner details of embedded data - * this index is used to locate the data portion. - * - * @var int - */ - public static $embeddedDataIndex = 2; - /** - * Delimiter used to split the array data. - * - * When the name portion is of the embedded data is blank auto detection - * will be used and if URLEncodedFormat is detected as the data format - * the character specified will be used as the delimiter to find split - * array data. - * - * @var string - */ - public static $arrayDelimiter = ','; + /** + * name for the embedded data + * + * @var string + */ + public static $embeddedDataName = 'properties'; + /** + * Regular Expression pattern for finding the embedded data and extract + * the inner information. It is used with preg_match. + * + * @var string + */ + public static $embeddedDataPattern + = '/```(\w*)[\s]*(([^`]*`{0,2}[^`]+)*)```/ms'; + /** + * Pattern will have groups for the inner details of embedded data + * this index is used to locate the data portion. + * + * @var int + */ + public static $embeddedDataIndex = 2; + /** + * Delimiter used to split the array data. + * + * When the name portion is of the embedded data is blank auto detection + * will be used and if URLEncodedFormat is detected as the data format + * the character specified will be used as the delimiter to find split + * array data. + * + * @var string + */ + public static $arrayDelimiter = ','; - /** - * @var array annotations that support array value - */ - public static $allowsArrayValue = array( - 'choice' => true, - 'select' => true, - 'properties' => true, - ); + /** + * @var array annotations that support array value + */ + public static $allowsArrayValue = array( + 'choice' => true, + 'select' => true, + 'properties' => true, + ); - /** - * character sequence used to escape \@ - */ - const escapedAtChar = '\\@'; + /** + * character sequence used to escape \@ + */ + const escapedAtChar = '\\@'; - /** - * character sequence used to escape end of comment - */ - const escapedCommendEnd = '{@*}'; + /** + * character sequence used to escape end of comment + */ + const escapedCommendEnd = '{@*}'; - /** - * Instance of Restler class injected at runtime. - * - * @var Restler - */ - public $restler; - /** - * Comment information is parsed and stored in to this array. - * - * @var array - */ - private $_data = array(); + /** + * Instance of Restler class injected at runtime. + * + * @var Restler + */ + public $restler; + /** + * Comment information is parsed and stored in to this array. + * + * @var array + */ + private $_data = array(); - /** - * Parse the comment and extract the data. - * - * @static - * - * @param $comment - * @param bool $isPhpDoc - * - * @return array associative array with the extracted values - */ - public static function parse($comment, $isPhpDoc = true) - { - $p = new self(); - if (empty($comment)) { - return $p->_data; - } + /** + * Parse the comment and extract the data. + * + * @static + * + * @param $comment + * @param bool $isPhpDoc + * + * @return array associative array with the extracted values + */ + public static function parse($comment, $isPhpDoc = true) + { + $p = new self(); + if (empty($comment)) { + return $p->_data; + } - if ($isPhpDoc) { - $comment = self::removeCommentTags($comment); - } + if ($isPhpDoc) { + $comment = self::removeCommentTags($comment); + } - $p->extractData($comment); - return $p->_data; + $p->extractData($comment); + return $p->_data; + } - } + /** + * Removes the comment tags from each line of the comment. + * + * @static + * + * @param string $comment PhpDoc style comment + * + * @return string comments with out the tags + */ + public static function removeCommentTags($comment) + { + $pattern = '/(^\/\*\*)|(^\s*\**[ \/]?)|\s(?=@)|\s\*\//m'; + return preg_replace($pattern, '', $comment); + } - /** - * Removes the comment tags from each line of the comment. - * - * @static - * - * @param string $comment PhpDoc style comment - * - * @return string comments with out the tags - */ - public static function removeCommentTags($comment) - { - $pattern = '/(^\/\*\*)|(^\s*\**[ \/]?)|\s(?=@)|\s\*\//m'; - return preg_replace($pattern, '', $comment); - } + /** + * Extracts description and long description, uses other methods to get + * parameters. + * + * @param $comment + * + * @return array + */ + private function extractData($comment) + { + //to use @ as part of comment we need to + $comment = str_replace( + array(self::escapedCommendEnd, self::escapedAtChar), + array('*/', '@'), + $comment); - /** - * Extracts description and long description, uses other methods to get - * parameters. - * - * @param $comment - * - * @return array - */ - private function extractData($comment) - { - //to use @ as part of comment we need to - $comment = str_replace( - array(self::escapedCommendEnd, self::escapedAtChar), - array('*/', '@'), - $comment); + $description = array(); + $longDescription = array(); + $params = array(); - $description = array(); - $longDescription = array(); - $params = array(); + $mode = 0; // extract short description; + $comments = preg_split("/(\r?\n)/", $comment); + // remove first blank line; + array_shift($comments); + $addNewline = false; + foreach ($comments as $line) { + $line = trim($line); + $newParam = false; + if (empty($line)) { + if ($mode == 0) { + $mode++; + } else { + $addNewline = true; + } + continue; + } elseif ($line[0] == '@') { + $mode = 2; + $newParam = true; + } + switch ($mode) { + case 0 : + $description[] = $line; + if (count($description) > 3) { + // if more than 3 lines take only first line + $longDescription = $description; + $description[] = array_shift($longDescription); + $mode = 1; + } elseif (substr($line, -1) == '.') { + $mode = 1; + } + break; + case 1 : + if ($addNewline) { + $line = ' ' . $line; + } + $longDescription[] = $line; + break; + case 2 : + $newParam + ? $params[] = $line + : $params[count($params) - 1] .= ' ' . $line; + } + $addNewline = false; + } + $description = implode(' ', $description); + $longDescription = implode(' ', $longDescription); + $description = preg_replace('/\s+/msu', ' ', $description); + $longDescription = preg_replace('/\s+/msu', ' ', $longDescription); + list($description, $d1) + = $this->parseEmbeddedData($description); + list($longDescription, $d2) + = $this->parseEmbeddedData($longDescription); + $this->_data = compact('description', 'longDescription'); + $d2 += $d1; + if (!empty($d2)) { + $this->_data[self::$embeddedDataName] = $d2; + } + foreach ($params as $key => $line) { + list(, $param, $value) = preg_split('/\@|\s/', $line, 3) + + array('', '', ''); + list($value, $embedded) = $this->parseEmbeddedData($value); + $value = array_filter(preg_split('/\s+/msu', $value), 'strlen'); + $this->parseParam($param, $value, $embedded); + } + return $this->_data; + } - $mode = 0; // extract short description; - $comments = preg_split("/(\r?\n)/", $comment); - // remove first blank line; - array_shift($comments); - $addNewline = false; - foreach ($comments as $line) { - $line = trim($line); - $newParam = false; - if (empty ($line)) { - if ($mode == 0) { - $mode++; - } else { - $addNewline = true; - } - continue; - } elseif ($line[0] == '@') { - $mode = 2; - $newParam = true; - } - switch ($mode) { - case 0 : - $description[] = $line; - if (count($description) > 3) { - // if more than 3 lines take only first line - $longDescription = $description; - $description[] = array_shift($longDescription); - $mode = 1; - } elseif (substr($line, -1) == '.') { - $mode = 1; - } - break; - case 1 : - if ($addNewline) { - $line = ' ' . $line; - } - $longDescription[] = $line; - break; - case 2 : - $newParam - ? $params[] = $line - : $params[count($params) - 1] .= ' ' . $line; - } - $addNewline = false; - } - $description = implode(' ', $description); - $longDescription = implode(' ', $longDescription); - $description = preg_replace('/\s+/msu', ' ', $description); - $longDescription = preg_replace('/\s+/msu', ' ', $longDescription); - list($description, $d1) - = $this->parseEmbeddedData($description); - list($longDescription, $d2) - = $this->parseEmbeddedData($longDescription); - $this->_data = compact('description', 'longDescription'); - $d2 += $d1; - if (!empty($d2)) { - $this->_data[self::$embeddedDataName] = $d2; - } - foreach ($params as $key => $line) { - list(, $param, $value) = preg_split('/\@|\s/', $line, 3) - + array('', '', ''); - list($value, $embedded) = $this->parseEmbeddedData($value); - $value = array_filter(preg_split('/\s+/msu', $value), 'strlen'); - $this->parseParam($param, $value, $embedded); - } - return $this->_data; - } + /** + * Parse parameters that begin with (at) + * + * @param $param + * @param array $value + * @param array $embedded + */ + private function parseParam($param, array $value, array $embedded) + { + $data = &$this->_data; + $allowMultiple = false; + switch ($param) { + case 'param' : + case 'property' : + case 'property-read' : + case 'property-write' : + $value = $this->formatParam($value); + $allowMultiple = true; + break; + case 'var' : + $value = $this->formatVar($value); + break; + case 'return' : + $value = $this->formatReturn($value); + break; + case 'class' : + $data = &$data[$param]; + list ($param, $value) = $this->formatClass($value); + break; + case 'access' : + $value = reset($value); + break; + case 'expires' : + case 'status' : + $value = intval(reset($value)); + break; + case 'throws' : + $value = $this->formatThrows($value); + $allowMultiple = true; + break; + case 'author': + $value = $this->formatAuthor($value); + $allowMultiple = true; + break; + case 'header' : + case 'link': + case 'example': + case 'todo': + $allowMultiple = true; + //don't break, continue with code for default: + default : + $value = implode(' ', $value); + } + if (!empty($embedded)) { + if (is_string($value)) { + $value = array('description' => $value); + } + $value[self::$embeddedDataName] = $embedded; + } + if (empty($data[$param])) { + if ($allowMultiple) { + $data[$param] = array( + $value + ); + } else { + $data[$param] = $value; + } + } elseif ($allowMultiple) { + $data[$param][] = $value; + } elseif ($param == 'param') { + $arr = array( + $data[$param], + $value + ); + $data[$param] = $arr; + } else { + if (!is_string($value) && isset($value[self::$embeddedDataName]) + && isset($data[$param][self::$embeddedDataName]) + ) { + $value[self::$embeddedDataName] + += $data[$param][self::$embeddedDataName]; + } + if (!is_array($data[$param])) { + $data[$param] = array('description' => (string) $data[$param]); + } + if (is_array($value)) { + $data[$param] = $value + $data[$param]; + } + } + } - /** - * Parse parameters that begin with (at) - * - * @param $param - * @param array $value - * @param array $embedded - */ - private function parseParam($param, array $value, array $embedded) - { - $data = &$this->_data; - $allowMultiple = false; - switch ($param) { - case 'param' : - case 'property' : - case 'property-read' : - case 'property-write' : - $value = $this->formatParam($value); - $allowMultiple = true; - break; - case 'var' : - $value = $this->formatVar($value); - break; - case 'return' : - $value = $this->formatReturn($value); - break; - case 'class' : - $data = &$data[$param]; - list ($param, $value) = $this->formatClass($value); - break; - case 'access' : - $value = reset($value); - break; - case 'expires' : - case 'status' : - $value = intval(reset($value)); - break; - case 'throws' : - $value = $this->formatThrows($value); - $allowMultiple = true; - break; - case 'author': - $value = $this->formatAuthor($value); - $allowMultiple = true; - break; - case 'header' : - case 'link': - case 'example': - case 'todo': - $allowMultiple = true; - //don't break, continue with code for default: - default : - $value = implode(' ', $value); - } - if (!empty($embedded)) { - if (is_string($value)) { - $value = array('description' => $value); - } - $value[self::$embeddedDataName] = $embedded; - } - if (empty ($data[$param])) { - if ($allowMultiple) { - $data[$param] = array( - $value - ); - } else { - $data[$param] = $value; - } - } elseif ($allowMultiple) { - $data[$param][] = $value; - } elseif ($param == 'param') { - $arr = array( - $data[$param], - $value - ); - $data[$param] = $arr; - } else { - if (!is_string($value) && isset($value[self::$embeddedDataName]) - && isset($data[$param][self::$embeddedDataName]) - ) { - $value[self::$embeddedDataName] - += $data[$param][self::$embeddedDataName]; - } - if (!is_array($data[$param])) { - $data[$param] = array('description' => (string)$data[$param]); - } - if (is_array($value)) { - $data[$param] = $value + $data[$param]; - } - } - } + /** + * Parses the inline php doc comments and embedded data. + * + * @param $subject + * + * @return array + * @throws Exception + */ + private function parseEmbeddedData($subject) + { + $data = array(); - /** - * Parses the inline php doc comments and embedded data. - * - * @param $subject - * - * @return array - * @throws Exception - */ - private function parseEmbeddedData($subject) - { - $data = array(); + //parse {@pattern } tags specially + while (preg_match('|(?s-m)({@pattern (/.+/[imsxuADSUXJ]*)})|', $subject, $matches)) { + $subject = str_replace($matches[0], '', $subject); + $data['pattern'] = $matches[2]; + } + while (preg_match('/{@(\w+)\s?([^}]*)}/ms', $subject, $matches)) { + $name = $matches[1]; + $value = $matches[2]; + $subject = str_replace($matches[0], '', $subject); + if ($name == 'pattern') { + throw new Exception('Inline pattern tag should follow {@pattern /REGEX_PATTERN_HERE/} format and can optionally include PCRE modifiers following the ending `/`'); + } elseif (isset(static::$allowsArrayValue[$name])) { + $value = explode(static::$arrayDelimiter, $value); + } elseif ($value == 'true' || $value == 'false') { + $value = $value == 'true'; + } elseif ($value == '') { + $value = true; + } elseif ($name == 'required') { + $value = explode(static::$arrayDelimiter, $value); + } + if (defined('Luracast\\Restler\\UI\\HtmlForm::'.$name)) { + $value = constant($value); + } + $data[$name] = $value; + } - //parse {@pattern } tags specially - while (preg_match('|(?s-m)({@pattern (/.+/[imsxuADSUXJ]*)})|', $subject, $matches)) { - $subject = str_replace($matches[0], '', $subject); - $data['pattern'] = $matches[2]; - } - while (preg_match('/{@(\w+)\s?([^}]*)}/ms', $subject, $matches)) { - $name = $matches[1]; - $value = $matches[2]; - $subject = str_replace($matches[0], '', $subject); - if ($name == 'pattern') { - throw new Exception('Inline pattern tag should follow {@pattern /REGEX_PATTERN_HERE/} format and can optionally include PCRE modifiers following the ending `/`'); - } elseif (isset(static::$allowsArrayValue[$name])) { - $value = explode(static::$arrayDelimiter, $value); - } elseif ($value == 'true' || $value == 'false') { - $value = $value == 'true'; - } elseif ($value == '') { - $value = true; - } elseif ($name == 'required') { - $value = explode(static::$arrayDelimiter, $value); - } - if (defined('Luracast\\Restler\\UI\\HtmlForm::'.$name)) { - $value = constant($value); - } - $data[$name] = $value; - } + while (preg_match(self::$embeddedDataPattern, $subject, $matches)) { + $subject = str_replace($matches[0], '', $subject); + $str = $matches[self::$embeddedDataIndex]; + if (isset($this->restler) + && self::$embeddedDataIndex > 1 + && !empty($name) + ) { + $extension = $name; + $formatMap = $this->restler->getFormatMap(); + if (isset($formatMap[$extension])) { + /** + * @var \Luracast\Restler\Format\iFormat + */ + $format = $formatMap[$extension]; + $format = new $format(); + $data = $format->decode($str); + } + } else { // auto detect + if ($str[0] == '{') { + $d = json_decode($str, true); + if (json_last_error() != JSON_ERROR_NONE) { + throw new Exception('Error parsing embedded JSON data' + . " $str"); + } + $data = $d + $data; + } else { + parse_str($str, $d); + //clean up + $d = array_filter($d); + foreach ($d as $key => $val) { + $kt = trim($key); + if ($kt != $key) { + unset($d[$key]); + $key = $kt; + $d[$key] = $val; + } + if (is_string($val)) { + if ($val == 'true' || $val == 'false') { + $d[$key] = $val == 'true' ? true : false; + } else { + $val = explode(self::$arrayDelimiter, $val); + if (count($val) > 1) { + $d[$key] = $val; + } else { + $d[$key] = + preg_replace('/\s+/msu', ' ', + $d[$key]); + } + } + } + } + $data = $d + $data; + } + } + } + return array($subject, $data); + } - while (preg_match(self::$embeddedDataPattern, $subject, $matches)) { - $subject = str_replace($matches[0], '', $subject); - $str = $matches[self::$embeddedDataIndex]; - if (isset ($this->restler) - && self::$embeddedDataIndex > 1 - && !empty ($name) - ) { - $extension = $name; - $formatMap = $this->restler->getFormatMap(); - if (isset ($formatMap[$extension])) { - /** - * @var \Luracast\Restler\Format\iFormat - */ - $format = $formatMap[$extension]; - $format = new $format(); - $data = $format->decode($str); - } - } else { // auto detect - if ($str[0] == '{') { - $d = json_decode($str, true); - if (json_last_error() != JSON_ERROR_NONE) { - throw new Exception('Error parsing embedded JSON data' - . " $str"); - } - $data = $d + $data; - } else { - parse_str($str, $d); - //clean up - $d = array_filter($d); - foreach ($d as $key => $val) { - $kt = trim($key); - if ($kt != $key) { - unset($d[$key]); - $key = $kt; - $d[$key] = $val; - } - if (is_string($val)) { - if ($val == 'true' || $val == 'false') { - $d[$key] = $val == 'true' ? true : false; - } else { - $val = explode(self::$arrayDelimiter, $val); - if (count($val) > 1) { - $d[$key] = $val; - } else { - $d[$key] = - preg_replace('/\s+/msu', ' ', - $d[$key]); - } - } - } - } - $data = $d + $data; - } - } - } - return array($subject, $data); - } + private function formatThrows(array $value) + { + $code = 500; + $exception = 'Exception'; + if (count($value) > 1) { + $v1 = $value[0]; + $v2 = $value[1]; + if (is_numeric($v1)) { + $code = $v1; + $exception = $v2; + array_shift($value); + array_shift($value); + } elseif (is_numeric($v2)) { + $code = $v2; + $exception = $v1; + array_shift($value); + array_shift($value); + } else { + $exception = $v1; + array_shift($value); + } + } elseif (count($value) && isset($value[0]) && is_numeric($value[0])) { + $code = $value[0]; + array_shift($value); + } + $message = implode(' ', $value); + if (!isset(RestException::$codes[$code])) { + $code = 500; + } elseif (empty($message)) { + $message = RestException::$codes[$code]; + } + return compact('code', 'message', 'exception'); + } - private function formatThrows(array $value) - { - $code = 500; - $exception = 'Exception'; - if (count($value) > 1) { - $v1 = $value[0]; - $v2 = $value[1]; - if (is_numeric($v1)) { - $code = $v1; - $exception = $v2; - array_shift($value); - array_shift($value); - } elseif (is_numeric($v2)) { - $code = $v2; - $exception = $v1; - array_shift($value); - array_shift($value); - } else { - $exception = $v1; - array_shift($value); - } - } elseif (count($value) && is_numeric($value[0])) { - $code = $value[0]; - array_shift($value); - } - $message = implode(' ', $value); - if (!isset(RestException::$codes[$code])) { - $code = 500; - } elseif (empty($message)) { - $message = RestException::$codes[$code]; - } - return compact('code', 'message', 'exception'); - } + private function formatClass(array $value) + { + $param = array_shift($value); - private function formatClass(array $value) - { - $param = array_shift($value); + if (empty($param)) { + $param = 'Unknown'; + } + $value = implode(' ', $value); + return array( + ltrim($param, '\\'), + array('description' => $value) + ); + } - if (empty($param)) { - $param = 'Unknown'; - } - $value = implode(' ', $value); - return array( - ltrim($param, '\\'), - array('description' => $value) - ); - } + private function formatAuthor(array $value) + { + $r = array(); + $email = end($value); + if ($email[0] == '<') { + $email = substr($email, 1, -1); + array_pop($value); + $r['email'] = $email; + } + $r['name'] = implode(' ', $value); + return $r; + } - private function formatAuthor(array $value) - { - $r = array(); - $email = end($value); - if ($email[0] == '<') { - $email = substr($email, 1, -1); - array_pop($value); - $r['email'] = $email; - } - $r['name'] = implode(' ', $value); - return $r; - } + private function formatReturn(array $value) + { + $data = explode('|', array_shift($value)); + $r = array( + 'type' => count($data) == 1 ? $data[0] : $data + ); + $r['description'] = implode(' ', $value); + return $r; + } - private function formatReturn(array $value) - { - $data = explode('|', array_shift($value)); - $r = array( - 'type' => count($data) == 1 ? $data[0] : $data - ); - $r['description'] = implode(' ', $value); - return $r; - } + private function formatParam(array $value) + { + $r = array(); + $data = array_shift($value); + if (empty($data)) { + $r['type'] = 'mixed'; + } elseif ($data[0] == '$') { + $r['name'] = substr($data, 1); + $r['type'] = 'mixed'; + } else { + $data = explode('|', $data); + $r['type'] = count($data) == 1 ? $data[0] : $data; - private function formatParam(array $value) - { - $r = array(); - $data = array_shift($value); - if (empty($data)) { - $r['type'] = 'mixed'; - } elseif ($data[0] == '$') { - $r['name'] = substr($data, 1); - $r['type'] = 'mixed'; - } else { - $data = explode('|', $data); - $r['type'] = count($data) == 1 ? $data[0] : $data; + $data = array_shift($value); + if (!empty($data) && $data[0] == '$') { + $r['name'] = substr($data, 1); + } + } + if (isset($r['type']) && is_string($r['type']) && Text::endsWith($r['type'], '[]')) { + $r[static::$embeddedDataName]['type'] = substr($r['type'], 0, -2); + $r['type'] = 'array'; + } + if ($value) { + $r['description'] = implode(' ', $value); + } + return $r; + } - $data = array_shift($value); - if (!empty($data) && $data[0] == '$') { - $r['name'] = substr($data, 1); - } - } - if (isset($r['type']) && is_string($r['type']) && Text::endsWith($r['type'], '[]')) { - $r[static::$embeddedDataName]['type'] = substr($r['type'], 0, -2); - $r['type'] = 'array'; - } - if ($value) { - $r['description'] = implode(' ', $value); - } - return $r; - } - - private function formatVar(array $value) - { - $r = array(); - $data = array_shift($value); - if (empty($data)) { - $r['type'] = 'mixed'; - } elseif ($data[0] == '$') { - $r['name'] = substr($data, 1); - $r['type'] = 'mixed'; - } else { - $data = explode('|', $data); - $r['type'] = count($data) == 1 ? $data[0] : $data; - } - if (isset($r['type']) && Text::endsWith($r['type'], '[]')) { - $r[static::$embeddedDataName]['type'] = substr($r['type'], 0, -2); - $r['type'] = 'array'; - } - if ($value) { - $r['description'] = implode(' ', $value); - } - return $r; - } + private function formatVar(array $value) + { + $r = array(); + $data = array_shift($value); + if (empty($data)) { + $r['type'] = 'mixed'; + } elseif ($data[0] == '$') { + $r['name'] = substr($data, 1); + $r['type'] = 'mixed'; + } else { + $data = explode('|', $data); + $r['type'] = count($data) == 1 ? $data[0] : $data; + } + if (isset($r['type']) && Text::endsWith($r['type'], '[]')) { + $r[static::$embeddedDataName]['type'] = substr($r['type'], 0, -2); + $r['type'] = 'array'; + } + if ($value) { + $r['description'] = implode(' ', $value); + } + return $r; + } } diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php index 78bfc5b5bf4..2fea49ef4ce 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php @@ -1337,14 +1337,14 @@ class TCPDFBarcode { // calculate check digit $sum_a = 0; for ($i = 1; $i < $data_len; $i+=2) { - $sum_a += $code[$i]; + $sum_a += (int) $code[$i]; } if ($len > 12) { $sum_a *= 3; } $sum_b = 0; for ($i = 0; $i < $data_len; $i+=2) { - $sum_b += ($code[$i]); + $sum_b += (int) ($code[$i]); } if ($len < 13) { $sum_b *= 3; @@ -2171,7 +2171,7 @@ class TCPDFBarcode { /** * IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200 - * + * * @param $code (string) pre-formatted IMB barcode (65 chars "FADT") * @return array barcode representation. * @protected diff --git a/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/bug_report.md b/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000000..735fbe018f9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**Used config** +Please provide the used config, if you are not using the package default config. + +**Code to Reproduce** +The troubling code section which produces the reported bug. +```php +echo "Bug"; +``` + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop / Server (please complete the following information):** +- OS: [e.g. Debian 10] +- PHP: [e.g. 5.5.9] +- Version [e.g. v2.3.1] + +**Additional context** +Add any other context about the problem here. diff --git a/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/feature_request.md b/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000000..066b2d920a2 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/general-help-request.md b/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/general-help-request.md new file mode 100644 index 00000000000..49809d14033 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/.github/ISSUE_TEMPLATE/general-help-request.md @@ -0,0 +1,12 @@ +--- +name: General help request +about: Feel free to ask about any project related stuff + +--- + +Please be aware that these issues will be closed if inactive for more then 14 days. + +Also make sure to use https://github.com/Webklex/php-imap/issues/new?template=bug_report.md if you want to report a bug +or https://github.com/Webklex/php-imap/issues/new?template=feature_request.md if you want to suggest a feature. + +Still here? Well clean this out and go ahead :) diff --git a/htdocs/includes/webklex/php-imap/.gitignore b/htdocs/includes/webklex/php-imap/.gitignore new file mode 100644 index 00000000000..82955a58640 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/.gitignore @@ -0,0 +1,3 @@ +composer.lock +.idea +/build/ diff --git a/htdocs/includes/webklex/php-imap/CHANGELOG.md b/htdocs/includes/webklex/php-imap/CHANGELOG.md new file mode 100755 index 00000000000..a2ce640de53 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/CHANGELOG.md @@ -0,0 +1,577 @@ +# Changelog + +All notable changes to `webklex/php-imap` will be documented in this file. + +Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [UNRELEASED] +### Fixed +- NaN + +### Added +- NaN + +### Affected Classes +- NaN + +### Breaking changes +- NaN + +## [2.7.2] - 2021-09-27 +### Fixed +- Fixed problem with skipping last line of the response. #166 (thanks @szymekjanaczek) + +## [2.7.1] - 2021-09-08 +### Added +- Added `UID` as available search criteria #161 (thanks @szymekjanaczek) + +## [2.7.0] - 2021-09-04 +### Fixed +- Fixes handling of long header lines which are seperated by `\r\n\t` (thanks @Oliver-Holz) +- Fixes to line parsing with multiple addresses (thanks @Oliver-Holz) + +### Added +- Expose message folder path #154 (thanks @Magiczne) +- Adds mailparse_rfc822_parse_addresses integration (thanks @Oliver-Holz) +- Added moveManyMessages method (thanks @Magiczne) +- Added copyManyMessages method (thanks @Magiczne) + +### Affected Classes +- [Header::class](src/Header.php) +- [Message::class](src/Message.php) + +## [2.6.0] - 2021-08-20 +### Fixed +- POP3 fixes #151 (thanks @Korko) + +### Added +- Added imap 4 handling. #146 (thanks @szymekjanaczek) +- Added laravel's conditionable methods. #147 (thanks @szymekjanaczek) + +### Affected Classes +- [Query::class](src/Query/Query.php) +- [Client::class](src/Client.php) + +## [2.5.1] - 2021-06-19 +### Fixed +- Fix setting default mask from config #133 (thanks @shacky) +- Chunked fetch fails in case of less available mails than page size #114 +- Protocol::createStream() exception information fixed #137 +- Legacy methods (headers, content, flags) fixed #125 +- Legacy connection cycle fixed #124 (thanks @zssarkany) + +### Added +- Disable rfc822 header parsing via config option #115 + +## [2.5.0] - 2021-02-01 +### Fixed +- Attachment saving filename fixed +- Unnecessary parameter removed from `Client::getTimeout()` +- Missing encryption variable added - could have caused problems with unencrypted communications +- Prefer attachment filename attribute over name attribute #82 +- Missing connection settings added to `Folder:idle()` auto mode #89 +- Message move / copy expect a folder path #79 +- `Client::getFolder()` updated to circumvent special edge cases #79 +- Missing connection status checks added to various methods +- Unused default attribute `message_no` removed from `Message::class` + +### Added +- Dynamic Attribute access support added (e.g `$message->from[0]`) +- Message not found exception added #93 +- Chunked fetching support added `Query::chunked()`. Just in case you can't fetch all messages at once +- "Soft fail" support added +- Count method added to `Attribute:class` +- Convert an Attribute instance into a Carbon date object #95 + +### Affected Classes +- [Attachment::class](src/Attachment.php) +- [Attribute::class](src/Attribute.php) +- [Query::class](src/Query/Query.php) +- [Message::class](src/Message.php) +- [Client::class](src/Client.php) +- [Folder::class](src/Folder.php) + +### Breaking changes +- A new exception can occur if a message can't be fetched (`\Webklex\PHPIMAP\Exceptions\MessageNotFoundException::class`) +- `Message::move()` and `Message::copy()` no longer accept folder names as folder path +- A `Message::class` instance might no longer have a `message_no` attribute + +## [2.4.4] - 2021-01-22 +### Fixed +- Boundary detection simplified #90 +- Prevent potential body overwriting #90 +- CSV files are no longer regarded as plain body +- Boundary detection overhauled to support "related" and "alternative" multipart messages #90 #91 + +### Affected Classes +- [Structure::class](src/Structure.php) +- [Message::class](src/Message.php) +- [Header::class](src/Header.php) +- [Part::class](src/Part.php) + +## [2.4.3] - 2021-01-21 +### Fixed +- Attachment detection updated #82 #90 +- Timeout handling improved +- Additional utf-8 checks added to prevent decoding of unencoded values #76 + +### Added +- Auto reconnect option added to `Folder::idle()` #89 + +### Affected Classes +- [Folder::class](src/Folder.php) +- [Part::class](src/Part.php) +- [Client::class](src/Client.php) +- [Header::class](src/Header.php) + +## [2.4.2] - 2021-01-09 +### Fixed +- Attachment::save() return error 'A facade root has not been set' #87 +- Unused dependencies removed +- Fix PHP 8 error that changes null back in to an empty string. #88 (thanks @mennovanhout) +- Fix regex to be case insensitive #88 (thanks @mennovanhout) + +### Affected Classes +- [Attachment::class](src/Attachment.php) +- [Address::class](src/Address.php) +- [Attribute::class](src/Attribute.php) +- [Structure::class](src/Structure.php) + +## [2.4.1] - 2021-01-06 +### Fixed +- Debug line position fixed +- Handle incomplete address to string conversion #83 +- Configured message key gets overwritten by the first fetched message #84 + +### Affected Classes +- [Address::class](src/Address.php) +- [Query::class](src/Query/Query.php) + +## [2.4.0] - 2021-01-03 +### Fixed +- Get partial overview when `IMAP::ST_UID` is set #74 +- Unnecessary "'" removed from address names +- Folder referral typo fixed +- Legacy protocol fixed +- Treat message collection keys always as strings + +### Added +- Configurable supported default flags added +- Message attribute class added to unify value handling +- Address class added and integrated +- Alias `Message::attachments()` for `Message::getAttachments()` added +- Alias `Message::addFlag()` for `Message::setFlag()` added +- Alias `Message::removeFlag()` for `Message::unsetFlag()` added +- Alias `Message::flags()` for `Message::getFlags()` added +- New Exception `MessageFlagException::class` added +- New method `Message::setSequenceId($id)` added +- Optional Header attributizion option added + +### Affected Classes +- [Folder::class](src/Folder.php) +- [Header::class](src/Header.php) +- [Message::class](src/Message.php) +- [Address::class](src/Address.php) +- [Query::class](src/Query/Query.php) +- [Attribute::class](src/Attribute.php) + +### Breaking changes +- Stringified message headers are now separated by ", " instead of " ". +- All message header values such as subject, message_id, from, to, etc now consists of an `Àttribute::class` instance (should behave the same way as before, but might cause some problem in certain edge cases) +- The formal address object "from", "to", etc now consists of an `Address::class` instance (should behave the same way as before, but might cause some problem in certain edge cases) +- When fetching or manipulating message flags a `MessageFlagException::class` exception can be thrown if a runtime error occurs +- Learn more about the new `Attribute` class here: [www.php-imap.com/api/attribute](https://www.php-imap.com/api/attribute) +- Learn more about the new `Address` class here: [www.php-imap.com/api/address](https://www.php-imap.com/api/address) +- Folder attribute "referal" is now called "referral" + +## [2.3.1] - 2020-12-30 +### Fixed +- Missing RFC attributes added +- Set the message sequence when idling +- Missing UID commands added #64 + +### Added +- Get a message by its message number +- Get a message by its uid #72 #66 #63 + +### Affected Classes +- [Message::class](src/Message.php) +- [Folder::class](src/Folder.php) +- [Query::class](src/Query/Query.php) + +## [2.3.0] - 2020-12-21 +### Fixed +- Cert validation issue fixed +- Allow boundaries ending with a space or semicolon (thanks [@smartilabs](https://github.com/smartilabs)) +- Ignore IMAP DONE command response #57 +- Default `options.fetch` set to `IMAP::FT_PEEK` +- Address parsing fixed #60 +- Alternative rfc822 header parsing fixed #60 +- Parse more than one Received: header #61 +- Fetch folder overview fixed +- `Message::getTextBody()` fallback value fixed + +### Added +- Proxy support added +- Flexible disposition support added #58 +- New `options.message_key` option `uid` added +- Protocol UID support added +- Flexible sequence type support added + +### Affected Classes +- [Structure::class](src/Structure.php) +- [Query::class](src/Query/Query.php) +- [Client::class](src/Client.php) +- [Header::class](src/Header.php) +- [Folder::class](src/Folder.php) +- [Part::class](src/Part.php) + +### Breaking changes +- Depending on your configuration, your certificates actually get checked. Which can cause an aborted connection if the certificate can not be validated. +- Messages don't get flagged as read unless you are using your own custom config. +- All `Header::class` attribute keys are now in a snake_format and no longer minus-separated. +- `Message::getTextBody()` no longer returns false if no text body is present. `null` is returned instead. + +## [2.2.5] - 2020-12-11 +### Fixed +- Missing array decoder method added #51 (thanks [@lutchin](https://github.com/lutchin)) +- Additional checks added to prevent message from getting marked as seen #33 +- Boundary parsing improved #39 #36 (thanks [@AntonioDiPassio-AppSys](https://github.com/AntonioDiPassio-AppSys)) +- Idle operation updated #44 + +### Added +- Force a folder to be opened + +### Affected Classes +- [Header::class](src/Header.php) +- [Folder::class](src/Folder.php) +- [Query::class](src/Query/Query.php) +- [Message::class](src/Message.php) +- [Structure::class](src/Structure.php) + +## [2.2.4] - 2020-12-08 +### Fixed +- Search performance increased by fetching all headers, bodies and flags at once #42 +- Legacy protocol support updated +- Fix Query pagination. (#52 [@mikemiller891](https://github.com/mikemiller891)) + +### Added +- Missing message setter methods added +- `Folder::overview()` method added to fetch all headers of all messages in the current folder + +### Affected Classes +- [Message::class](src/Message.php) +- [Folder::class](src/Folder.php) +- [Query::class](src/Query/Query.php) +- [PaginatedCollection::class](src/Support/PaginatedCollection.php) + +## [2.2.3] - 2020-11-02 +### Fixed +- Text/Html body fetched as attachment if subtype is null #34 +- Potential header overwriting through header extensions #35 +- Prevent empty attachments #37 + +### Added +- Set fetch order during query #41 [@Max13](https://github.com/Max13) + +### Affected Classes +- [Message::class](src/Message.php) +- [Part::class](src/Part.php) +- [Header::class](src/Header.php) +- [Query::class](src/Query/Query.php) + + +## [2.2.2] - 2020-10-20 +### Fixed +- IMAP::FT_PEEK removing "Seen" flag issue fixed #33 + +### Affected Classes +- [Message::class](src/Message.php) + +## [2.2.1] - 2020-10-19 +### Fixed +- Header decoding problem fixed #31 + +### Added +- Search for messages by message-Id +- Search for messages by In-Reply-To +- Message threading added `Message::thread()` +- Default folder locations added + +### Affected Classes +- [Query::class](src/Query/Query.php) +- [Message::class](src/Message.php) +- [Header::class](src/Header.php) + + +## [2.2.0] - 2020-10-16 +### Fixed +- Prevent text bodies from being fetched as attachment #27 +- Missing variable check added to prevent exception while parsing an address [webklex/laravel-imap #356](https://github.com/Webklex/laravel-imap/issues/356) +- Missing variable check added to prevent exception while parsing a part subtype #27 +- Missing variable check added to prevent exception while parsing a part content-type [webklex/laravel-imap #356](https://github.com/Webklex/laravel-imap/issues/356) +- Mixed message header attribute `in_reply_to` "unified" to be always an array #26 +- Potential message moving / copying problem fixed #29 +- Move messages by using `Protocol::moveMessage()` instead of `Protocol::copyMessage()` and `Message::delete()` #29 + +### Added +- `Protocol::moveMessage()` method added #29 + +### Affected Classes +- [Message::class](src/Message.php) +- [Header::class](src/Header.php) +- [Part::class](src/Part.php) + +### Breaking changes +- Text bodies might no longer get fetched as attachment +- `Message::$in_reply_to` type changed from mixed to array + +## [2.1.13] - 2020-10-13 +### Fixed +- Boundary detection problem fixed (#28 [@DasTobbel](https://github.com/DasTobbel)) +- Content-Type detection problem fixed (#28 [@DasTobbel](https://github.com/DasTobbel)) + +### Affected Classes +- [Structure::class](src/Structure.php) + +## [2.1.12] - 2020-10-13 +### Fixed +- If content disposition is multiline, implode the array to a simple string (#25 [@DasTobbel](https://github.com/DasTobbel)) + +### Affected Classes +- [Part::class](src/Part.php) + +## [2.1.11] - 2020-10-13 +### Fixed +- Potential problematic prefixed white-spaces removed from header attributes + +### Added +- Expended `Client::getFolder($name, $deleimiter = null)` to accept either a folder name or path ([@DasTobbel](https://github.com/DasTobbel)) +- Special MS-Exchange header decoding support added + +### Affected Classes +- [Client::class](src/Client.php) +- [Header::class](src/Header.php) + +## [2.1.10] - 2020-10-09 +### Added +- `ClientManager::make()` method added to support undefined accounts + +### Affected Classes +- [ClientManager::class](src/ClientManager.php) + +## [2.1.9] - 2020-10-08 +### Fixed +- Fix inline attachments and embedded images (#22 [@dwalczyk](https://github.com/dwalczyk)) + +### Added +- Alternative attachment names support added (#20 [@oneFoldSoftware](https://github.com/oneFoldSoftware)) +- Fetch message content without leaving a "Seen" flag behind + +### Affected Classes +- [Attachment::class](src/Attachment.php) +- [Message::class](src/Message.php) +- [Part::class](src/Part.php) +- [Query::class](src/Query/Query.php) + +## [2.1.8] - 2020-10-08 +### Fixed +- Possible error during address decoding fixed (#16 [@Slauta](https://github.com/Slauta)) +- Flag event dispatching fixed #15 + +### Added +- Support multiple boundaries (#17, #19 [@dwalczyk](https://github.com/dwalczyk)) + +### Affected Classes +- [Structure::class](src/Structure.php) + +## [2.1.7] - 2020-10-03 +### Fixed +- Fixed `Query::paginate()` (#13 #14 by [@Max13](https://github.com/Max13)) + +### Affected Classes +- [Query::class](src/Query/Query.php) + +## [2.1.6] - 2020-10-02 +### Fixed +- `Message::getAttributes()` hasn't returned all parameters + +### Affected Classes +- [Message::class](src/Message.php) + +### Added +- Part number added to attachment +- `Client::getFolderByPath()` added (#12 by [@Max13](https://github.com/Max13)) +- `Client::getFolderByName()` added (#12 by [@Max13](https://github.com/Max13)) +- Throws exceptions if the authentication fails (#11 by [@Max13](https://github.com/Max13)) + +### Affected Classes +- [Client::class](src/Client.php) + +## [2.1.5] - 2020-09-30 +### Fixed +- Wrong message content property reference fixed (#10) + +## [2.1.4] - 2020-09-30 +### Fixed +- Fix header extension values +- Part header detection method changed (#10) + +### Affected Classes +- [Header::class](src/Header.php) +- [Part::class](src/Part.php) + +## [2.1.3] - 2020-09-29 +### Fixed +- Possible decoding problem fixed +- `Str::class` dependency removed from `Header::class` + +### Affected Classes +- [Header::class](src/Header.php) + +## [2.1.2] - 2020-09-28 +### Fixed +- Dependency problem in `Attachement::getExtension()` fixed (#9) + +### Affected Classes +- [Attachment::class](src/Attachment.php) + +## [2.1.1] - 2020-09-23 +### Fixed +- Missing default config parameter added + +### Added +- Default account config fallback added + +### Affected Classes +- [Client::class](src/Client.php) + +## [2.1.0] - 2020-09-22 +### Fixed +- Quota handling fixed + +### Added +- Event system and callbacks added + +### Affected Classes +- [Client::class](src/Client.php) +- [Folder::class](src/Folder.php) +- [Message::class](src/Message.php) + +## [2.0.1] - 2020-09-20 +### Fixed +- Carbon dependency fixed + +## [2.0.0] - 2020-09-20 +### Fixed +- Missing pagination item records fixed + +### Added +- php-imap module replaced by direct socket communication +- Legacy support added +- IDLE support added +- oAuth support added +- Charset detection method updated +- Decoding fallback charsets added + +### Affected Classes +- All + +## [1.4.5] - 2019-01-23 +### Fixed +- .csv attachement is not processed +- mail part structure property comparison changed to lowercase +- Replace helper functions for Laravel 6.0 #4 (@koenhoeijmakers) +- Date handling in Folder::appendMessage() fixed +- Carbon Exception Parse Data +- Convert sender name from non-utf8 to uf8 (@hwilok) +- Convert encoding of personal data struct + +### Added +- Path prefix option added to Client::getFolder() method +- Attachment size handling added +- Find messages by custom search criteria + +### Affected Classes +- [Query::class](src/Query/WhereQuery.php) +- [Mask::class](src/Support/Masks/Mask.php) +- [Attachment::class](src/Attachment.php) +- [Client::class](src/Client.php) +- [Folder::class](src/Folder.php) +- [Message::class](src/Message.php) + +## [1.4.2.1] - 2019-07-03 +### Fixed +- Error in Attachment::__construct #3 +- Examples added + +## [1.4.2] - 2019-07-02 +### Fixed +- Pagination count total bug #213 +- Changed internal message move and copy methods #210 +- Query::since() query returning empty response #215 +- Carbon Exception Parse Data #45 +- Reading a blank body (text / html) but only from this sender #203 +- Problem with Message::moveToFolder() and multiple moves #31 +- Problem with encoding conversion #203 +- Message null value attribute problem fixed +- Client connection path handling changed to be handled inside the calling method #31 +- iconv(): error suppressor for //IGNORE added #184 +- Typo Folder attribute fullName changed to full_name +- Query scope error fixed #153 +- Replace embedded image with URL #151 +- Fix sender name in non-latin emails sent from Gmail (#155) +- Fix broken non-latin characters in body in ASCII (us-ascii) charset #156 +- Message::getMessageId() returns wrong value #197 +- Message date validation extended #45 #192 +- Removed "-i" from "iso-8859-8-i" in Message::parseBody #146 + +### Added +- Message::getFolder() method +- Create a fast count method for queries #216 +- STARTTLS encryption alias added +- Mailbox fetching exception added #201 +- Message::moveToFolder() fetches new Message::class afterwards #31 +- Message structure accessor added #182 +- Shadow Imap const class added #188 +- Connectable "NOT" queries added +- Additional where methods added +- Message attribute handling changed +- Attachment attribute handling changed +- Message flag handling updated +- Message::getHTMLBody($callback) extended +- Masks added (take look at the examples for more information on masks) +- More examples added +- Query::paginate() method added +- Imap client timeout can be modified and read #186 +- Decoder config options added #175 +- Message search criteria "NOT" added #181 +- Invalid message date exception added +- Blade examples + +### Breaking changes +- Message::moveToFolder() returns either a Message::class instance or null and not a boolean +- Folder::fullName is now Folder::full_name +- Attachment::image_src might no longer work as expected - use Attachment::getImageSrc() instead + +### Affected Classes +- [Folder::class](src/Folder.php) +- [Client::class](src/Client.php) +- [Message::class](src/Message.php) +- [Attachment::class](src/Attachment.php) +- [Query::class](src/Query/Query.php) +- [WhereQuery::class](src/Query/WhereQuery.php) + +## 0.0.3 - 2018-12-02 +### Fixed +- Folder delimiter check added #137 +- Config setting not getting loaded +- Date parsing updated + +### Affected Classes +- [Folder::class](src/IMAP/Client.php) +- [Folder::class](src/IMAP/Message.php) + +## 0.0.1 - 2018-08-13 +### Added +- new php-imap package (fork from [webklex/laravel-imap](https://github.com/Webklex/laravel-imap)) diff --git a/htdocs/includes/webklex/php-imap/CODE_OF_CONDUCT.md b/htdocs/includes/webklex/php-imap/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..2ed07c83f5f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at github@webklex.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/htdocs/includes/webklex/php-imap/LICENSE b/htdocs/includes/webklex/php-imap/LICENSE new file mode 100644 index 00000000000..6c13191e712 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Webklex + +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. diff --git a/htdocs/includes/webklex/php-imap/LICENSE.md b/htdocs/includes/webklex/php-imap/LICENSE.md new file mode 100644 index 00000000000..feae5f320dc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/LICENSE.md @@ -0,0 +1,21 @@ +# The MIT License (MIT) + +Copyright (c) 2016 Malte Goldenbaum + +> 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. diff --git a/htdocs/includes/webklex/php-imap/README.md b/htdocs/includes/webklex/php-imap/README.md new file mode 100755 index 00000000000..65012298af2 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/README.md @@ -0,0 +1,158 @@ + +# IMAP Library for PHP + +[![Latest Version on Packagist][ico-version]][link-packagist] +[![Software License][ico-license]][link-license] +[![Build Status][ico-travis]][link-scrutinizer] +[![Total Downloads][ico-downloads]][link-downloads] +[![Hits][ico-hits]][link-hits] + + +## Description +PHP-IMAP is a wrapper for common IMAP communication without the need to have the php-imap module installed / enabled. +The protocol is completely integrated and therefore supports IMAP IDLE operation and the "new" oAuth authentication +process as well. +You can enable the `php-imap` module in order to handle edge cases, improve message decoding quality and is required if +you want to use legacy protocols such as pop3. + +Official documentation: [php-imap.com](https://www.php-imap.com/) + +Laravel wrapper: [webklex/laravel-imap](https://github.com/Webklex/laravel-imap) + + +## Table of Contents +- [Documentations](#documentations) +- [Basic usage example](#basic-usage-example) +- [Known issues](#known-issues) +- [Support](#support) +- [Features & pull requests](#features--pull-requests) +- [Security](#security) +- [Credits](#credits) +- [License](#license) + + +## Documentations +- Legacy (< v2.0.0): [legacy documentation](https://github.com/Webklex/php-imap/tree/1.4.5) +- Core documentation: [php-imap.com](https://www.php-imap.com/) + + +## Basic usage example +This is a basic example, which will echo out all Mails within all imap folders +and will move every message into INBOX.read. Please be aware that this should not be +tested in real life and is only meant to gives an impression on how things work. + +```php +use Webklex\PHPIMAP\ClientManager; + +$cm = new ClientManager('path/to/config/imap.php'); + +/** @var \Webklex\PHPIMAP\Client $client */ +$client = $cm->account('account_identifier'); + +//Connect to the IMAP Server +$client->connect(); + +//Get all Mailboxes +/** @var \Webklex\PHPIMAP\Support\FolderCollection $folders */ +$folders = $client->getFolders(); + +//Loop through every Mailbox +/** @var \Webklex\PHPIMAP\Folder $folder */ +foreach($folders as $folder){ + + //Get all Messages of the current Mailbox $folder + /** @var \Webklex\PHPIMAP\Support\MessageCollection $messages */ + $messages = $folder->messages()->all()->get(); + + /** @var \Webklex\PHPIMAP\Message $message */ + foreach($messages as $message){ + echo $message->getSubject().'
    '; + echo 'Attachments: '.$message->getAttachments()->count().'
    '; + echo $message->getHTMLBody(); + + //Move the current Message to 'INBOX.read' + if($message->move('INBOX.read') == true){ + echo 'Message has ben moved'; + }else{ + echo 'Message could not be moved'; + } + } +} +``` + + +### Known issues +| Error | Solution | +| ------------------------------------------------------------------------- | ---------------------------------------------------------- | +| Kerberos error: No credentials cache file found (try running kinit) (...) | Uncomment "DISABLE_AUTHENTICATOR" inside your config and use the `legacy-imap` protocol | + + +## Support +If you encounter any problems or if you find a bug, please don't hesitate to create a new [issue](https://github.com/Webklex/php-imap/issues). +However please be aware that it might take some time to get an answer. +Off topic, rude or abusive issues will be deleted without any notice. + +If you need **commercial** support, feel free to send me a mail at github@webklex.com. + + +##### A little notice +If you write source code in your issue, please consider to format it correctly. This makes it so much nicer to read +and people are more likely to comment and help :) + +```php + +echo 'your php code...'; + +``` + +will turn into: +```php +echo 'your php code...'; +``` + + +## Features & pull requests +Everyone can contribute to this project. Every pull request will be considered but it can also happen to be declined. +To prevent unnecessary work, please consider to create a [feature issue](https://github.com/Webklex/php-imap/issues/new?template=feature_request.md) +first, if you're planning to do bigger changes. Of course you can also create a new [feature issue](https://github.com/Webklex/php-imap/issues/new?template=feature_request.md) +if you're just wishing a feature ;) + + +## Change log +Please see [CHANGELOG][link-changelog] for more information what has changed recently. + + +## Security +If you discover any security related issues, please email github@webklex.com instead of using the issue tracker. + + +## Credits +- [Webklex][link-author] +- [All Contributors][link-contributors] + + +## License +The MIT License (MIT). Please see [License File][link-license] for more information. + + +[ico-version]: https://img.shields.io/packagist/v/Webklex/php-imap.svg?style=flat-square +[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square +[ico-travis]: https://img.shields.io/travis/Webklex/php-imap/master.svg?style=flat-square +[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/Webklex/php-imap.svg?style=flat-square +[ico-code-quality]: https://img.shields.io/scrutinizer/g/Webklex/php-imap.svg?style=flat-square +[ico-downloads]: https://img.shields.io/packagist/dt/Webklex/php-imap.svg?style=flat-square +[ico-build]: https://img.shields.io/scrutinizer/build/g/Webklex/php-imap/master?style=flat-square +[ico-quality]: https://img.shields.io/scrutinizer/quality/g/Webklex/php-imap/master?style=flat-square +[ico-hits]: https://hits.webklex.com/svg/webklex/php-imap + +[link-packagist]: https://packagist.org/packages/Webklex/php-imap +[link-travis]: https://travis-ci.org/Webklex/php-imap +[link-scrutinizer]: https://scrutinizer-ci.com/g/Webklex/php-imap/code-structure +[link-code-quality]: https://scrutinizer-ci.com/g/Webklex/php-imap +[link-downloads]: https://packagist.org/packages/Webklex/php-imap +[link-author]: https://github.com/webklex +[link-contributors]: https://github.com/Webklex/php-imap/graphs/contributors +[link-license]: https://github.com/Webklex/php-imap/blob/master/LICENSE +[link-changelog]: https://github.com/Webklex/php-imap/blob/master/CHANGELOG.md +[link-jetbrains]: https://www.jetbrains.com +[link-hits]: https://hits.webklex.com diff --git a/htdocs/includes/webklex/php-imap/composer.json b/htdocs/includes/webklex/php-imap/composer.json new file mode 100644 index 00000000000..9bc3849a98f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/composer.json @@ -0,0 +1,55 @@ +{ + "name": "webklex/php-imap", + "type": "library", + "description": "PHP IMAP client", + "keywords": [ + "webklex", + "imap", + "pop3", + "php-imap", + "mail" + ], + "homepage": "https://github.com/webklex/php-imap", + "license": "MIT", + "authors": [ + { + "name": "Malte Goldenbaum", + "email": "github@webklex.com", + "role": "Developer" + } + ], + "require": { + "php": ">=5.5.9", + "ext-openssl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-iconv": "*", + "ext-fileinfo": "*", + "nesbot/carbon": ">=1.0", + "symfony/http-foundation": ">=2.8.0", + "illuminate/pagination": ">=5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "autoload": { + "psr-4": { + "Webklex\\PHPIMAP\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests" + } + }, + "scripts": { + "test": "phpunit" + }, + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/htdocs/includes/webklex/php-imap/deleted.txt b/htdocs/includes/webklex/php-imap/deleted.txt new file mode 100644 index 00000000000..7eba7283d76 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/deleted.txt @@ -0,0 +1,17 @@ +./vendor/carbon +./vendor/nesbot/carbon/bin +./vendor/phpunit +./vendor/sebastian +./vendor/psr +./vendor/webmozart +./vendor/symfony/http-foundation +./vendor/symfony/translation +./vendor/symfony/translation-contracts +./vendor/symfony/yaml +./vendor/voku +./vendor/phpspec +./vendor/phpdocumentor +./vendor/nesbot/carbon/src/Carbon/Lang +./vendor/doctrine +./vendor/bin +./tests diff --git a/htdocs/includes/webklex/php-imap/src/Address.php b/htdocs/includes/webklex/php-imap/src/Address.php new file mode 100644 index 00000000000..644158dd18d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Address.php @@ -0,0 +1,90 @@ +personal = $object->personal; } + if (property_exists($object, "mailbox")){ $this->mailbox = $object->mailbox; } + if (property_exists($object, "host")){ $this->host = $object->host; } + if (property_exists($object, "mail")){ $this->mail = $object->mail; } + if (property_exists($object, "full")){ $this->full = $object->full; } + } + + + /** + * Return the stringified address + * + * @return string + */ + public function __toString() { + return $this->full ? $this->full : ""; + } + + /** + * Return the serialized address + * + * @return array + */ + public function __serialize(){ + return [ + "personal" => $this->personal, + "mailbox" => $this->mailbox, + "host" => $this->host, + "mail" => $this->mail, + "full" => $this->full, + ]; + } + + /** + * Convert instance to array + * + * @return array + */ + public function toArray(){ + return $this->__serialize(); + } + + /** + * Return the stringified attribute + * + * @return string + */ + public function toString(){ + return $this->__toString(); + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Attachment.php b/htdocs/includes/webklex/php-imap/src/Attachment.php new file mode 100755 index 00000000000..29c3d44268a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Attachment.php @@ -0,0 +1,344 @@ + null, + 'type' => null, + 'part_number' => 0, + 'content_type' => null, + 'id' => null, + 'name' => null, + 'disposition' => null, + 'img_src' => null, + 'size' => null, + ]; + + /** + * Default mask + * + * @var string $mask + */ + protected $mask = AttachmentMask::class; + + /** + * Attachment constructor. + * @param Message $oMessage + * @param Part $part + */ + public function __construct(Message $oMessage, Part $part) { + $this->config = ClientManager::get('options'); + + $this->oMessage = $oMessage; + $this->part = $part; + $this->part_number = $part->part_number; + + $default_mask = $this->oMessage->getClient()->getDefaultAttachmentMask(); + if($default_mask != null) { + $this->mask = $default_mask; + } + + $this->findType(); + $this->fetch(); + } + + /** + * Call dynamic attribute setter and getter methods + * @param string $method + * @param array $arguments + * + * @return mixed + * @throws MethodNotFoundException + */ + public function __call($method, $arguments) { + if(strtolower(substr($method, 0, 3)) === 'get') { + $name = Str::snake(substr($method, 3)); + + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + return null; + }elseif (strtolower(substr($method, 0, 3)) === 'set') { + $name = Str::snake(substr($method, 3)); + + $this->attributes[$name] = array_pop($arguments); + + return $this->attributes[$name]; + } + + throw new MethodNotFoundException("Method ".self::class.'::'.$method.'() is not supported'); + } + + /** + * Magic setter + * @param $name + * @param $value + * + * @return mixed + */ + public function __set($name, $value) { + $this->attributes[$name] = $value; + + return $this->attributes[$name]; + } + + /** + * magic getter + * @param $name + * + * @return mixed|null + */ + public function __get($name) { + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + return null; + } + + /** + * Determine the structure type + */ + protected function findType() { + switch ($this->part->type) { + case IMAP::ATTACHMENT_TYPE_MESSAGE: + $this->type = 'message'; + break; + case IMAP::ATTACHMENT_TYPE_APPLICATION: + $this->type = 'application'; + break; + case IMAP::ATTACHMENT_TYPE_AUDIO: + $this->type = 'audio'; + break; + case IMAP::ATTACHMENT_TYPE_IMAGE: + $this->type = 'image'; + break; + case IMAP::ATTACHMENT_TYPE_VIDEO: + $this->type = 'video'; + break; + case IMAP::ATTACHMENT_TYPE_MODEL: + $this->type = 'model'; + break; + case IMAP::ATTACHMENT_TYPE_TEXT: + $this->type = 'text'; + break; + case IMAP::ATTACHMENT_TYPE_MULTIPART: + $this->type = 'multipart'; + break; + default: + $this->type = 'other'; + break; + } + } + + /** + * Fetch the given attachment + */ + protected function fetch() { + + $content = $this->part->content; + + $this->content_type = $this->part->content_type; + $this->content = $this->oMessage->decodeString($content, $this->part->encoding); + + if (($id = $this->part->id) !== null) { + $this->id = str_replace(['<', '>'], '', $id); + } + + $this->size = $this->part->bytes; + $this->disposition = $this->part->disposition; + + if (($filename = $this->part->filename) !== null) { + $this->setName($filename); + } elseif (($name = $this->part->name) !== null) { + $this->setName($name); + }else { + $this->setName("undefined"); + } + + if (IMAP::ATTACHMENT_TYPE_MESSAGE == $this->part->type) { + if ($this->part->ifdescription) { + $this->setName($this->part->description); + } else { + $this->setName($this->part->subtype); + } + } + } + + /** + * Save the attachment content to your filesystem + * @param string $path + * @param string|null $filename + * + * @return boolean + */ + public function save($path, $filename = null) { + $filename = $filename ? $filename : $this->getName(); + + return file_put_contents($path.$filename, $this->getContent()) !== false; + } + + /** + * Set the attachment name and try to decode it + * @param $name + */ + public function setName($name) { + $decoder = $this->config['decoder']['attachment']; + if ($name !== null) { + if($decoder === 'utf-8' && extension_loaded('imap')) { + $this->name = \imap_utf8($name); + }else{ + $this->name = mb_decode_mimeheader($name); + } + } + } + + /** + * Get the attachment mime type + * + * @return string|null + */ + public function getMimeType(){ + return (new \finfo())->buffer($this->getContent(), FILEINFO_MIME_TYPE); + } + + /** + * Try to guess the attachment file extension + * + * @return string|null + */ + public function getExtension(){ + $deprecated_guesser = "\Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesser"; + if (class_exists($deprecated_guesser) !== false){ + return $deprecated_guesser::getInstance()->guess($this->getMimeType()); + } + $guesser = "\Symfony\Component\Mime\MimeTypes"; + $extensions = $guesser::getDefault()->getExtensions($this->getMimeType()); + return isset($extensions[0]) ? $extensions[0] : null; + } + + /** + * Get all attributes + * + * @return array + */ + public function getAttributes(){ + return $this->attributes; + } + + /** + * @return Message + */ + public function getMessage(){ + return $this->oMessage; + } + + /** + * Set the default mask + * @param $mask + * + * @return $this + */ + public function setMask($mask){ + if(class_exists($mask)){ + $this->mask = $mask; + } + + return $this; + } + + /** + * Get the used default mask + * + * @return string + */ + public function getMask(){ + return $this->mask; + } + + /** + * Get a masked instance by providing a mask name + * @param string|null $mask + * + * @return mixed + * @throws MaskNotFoundException + */ + public function mask($mask = null){ + $mask = $mask !== null ? $mask : $this->mask; + if(class_exists($mask)){ + return new $mask($this); + } + + throw new MaskNotFoundException("Unknown mask provided: ".$mask); + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Attribute.php b/htdocs/includes/webklex/php-imap/src/Attribute.php new file mode 100644 index 00000000000..06dc6a7903d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Attribute.php @@ -0,0 +1,274 @@ +setName($name); + $this->add($value); + } + + + /** + * Return the stringified attribute + * + * @return string + */ + public function __toString() { + return implode(", ", $this->values); + } + + /** + * Return the stringified attribute + * + * @return string + */ + public function toString(){ + return $this->__toString(); + } + + /** + * Return the serialized attribute + * + * @return array + */ + public function __serialize(){ + return $this->values; + } + + /** + * Convert instance to array + * + * @return array + */ + public function toArray(){ + return $this->__serialize(); + } + + /** + * Convert first value to a date object + * + * @return Carbon|null + */ + public function toDate(){ + $date = $this->first(); + if ($date instanceof Carbon) return $date; + + return Carbon::parse($date); + } + + /** + * Determine if a value exists at an offset. + * + * @param mixed $key + * @return bool + */ + public function offsetExists($key) { + return array_key_exists($key, $this->values); + } + + /** + * Get a value at a given offset. + * + * @param mixed $key + * @return mixed + */ + public function offsetGet($key) { + return $this->values[$key]; + } + + /** + * Set the value at a given offset. + * + * @param mixed $key + * @param mixed $value + * @return void + */ + public function offsetSet($key, $value) { + if (is_null($key)) { + $this->values[] = $value; + } else { + $this->values[$key] = $value; + } + } + + /** + * Unset the value at a given offset. + * + * @param string $key + * @return void + */ + public function offsetUnset($key) { + unset($this->values[$key]); + } + + /** + * Add one or more values to the attribute + * @param array|mixed $value + * @param boolean $strict + * + * @return Attribute + */ + public function add($value, $strict = false) { + if (is_array($value)) { + return $this->merge($value, $strict); + }elseif ($value !== null) { + $this->attach($value, $strict); + } + + return $this; + } + + /** + * Merge a given array of values with the current values array + * @param array $values + * @param boolean $strict + * + * @return Attribute + */ + public function merge($values, $strict = false) { + if (is_array($values)) { + foreach ($values as $value) { + $this->attach($value, $strict); + } + } + + return $this; + } + + /** + * Check if the attribute contains the given value + * @param mixed $value + * + * @return bool + */ + public function contains($value) { + foreach ($this->values as $v) { + if ($v === $value) { + return true; + } + } + return false; + } + + /** + * Attach a given value to the current value array + * @param $value + * @param bool $strict + */ + public function attach($value, $strict = false) { + if ($strict === true) { + if ($this->contains($value) === false) { + $this->values[] = $value; + } + }else{ + $this->values[] = $value; + } + } + + /** + * Set the attribute name + * @param $name + * + * @return Attribute + */ + public function setName($name){ + $this->name = $name; + + return $this; + } + + /** + * Get the attribute name + * + * @return string + */ + public function getName(){ + return $this->name; + } + + /** + * Get all values + * + * @return array + */ + public function get(){ + return $this->values; + } + + /** + * Alias method for self::get() + * + * @return array + */ + public function all(){ + return $this->get(); + } + + /** + * Get the first value if possible + * + * @return mixed|null + */ + public function first(){ + if ($this->offsetExists(0)) { + return $this->values[0]; + } + return null; + } + + /** + * Get the last value if possible + * + * @return mixed|null + */ + public function last(){ + if (($cnt = $this->count()) > 0) { + return $this->values[$cnt - 1]; + } + return null; + } + + /** + * Get the number of values + * + * @return int + */ + public function count(){ + return count($this->values); + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Client.php b/htdocs/includes/webklex/php-imap/src/Client.php new file mode 100755 index 00000000000..15944e4c646 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Client.php @@ -0,0 +1,669 @@ + null, + 'request_fulluri' => false, + 'username' => null, + 'password' => null, + ]; + + /** + * Connection timeout + * @var int $timeout + */ + public $timeout; + + /** + * Account username/ + * + * @var mixed + */ + public $username; + + /** + * Account password. + * + * @var string + */ + public $password; + + /** + * Account authentication method. + * + * @var string + */ + public $authentication; + + /** + * Active folder path. + * + * @var string + */ + protected $active_folder = null; + + /** + * Default message mask + * + * @var string $default_message_mask + */ + protected $default_message_mask = MessageMask::class; + + /** + * Default attachment mask + * + * @var string $default_attachment_mask + */ + protected $default_attachment_mask = AttachmentMask::class; + + /** + * Used default account values + * + * @var array $default_account_config + */ + protected $default_account_config = [ + 'host' => 'localhost', + 'port' => 993, + 'protocol' => 'imap', + 'encryption' => 'ssl', + 'validate_cert' => true, + 'username' => '', + 'password' => '', + 'authentication' => null, + 'proxy' => [ + 'socket' => null, + 'request_fulluri' => false, + 'username' => null, + 'password' => null, + ], + "timeout" => 30 + ]; + + /** + * Client constructor. + * @param array $config + * + * @throws MaskNotFoundException + */ + public function __construct($config = []) { + $this->setConfig($config); + $this->setMaskFromConfig($config); + $this->setEventsFromConfig($config); + } + + /** + * Client destructor + */ + public function __destruct() { + $this->disconnect(); + } + + /** + * Set the Client configuration + * @param array $config + * + * @return self + */ + public function setConfig(array $config) { + $default_account = ClientManager::get('default'); + $default_config = ClientManager::get("accounts.$default_account"); + + foreach ($this->default_account_config as $key => $value) { + $this->setAccountConfig($key, $config, $default_config); + } + + return $this; + } + + /** + * Set a specific account config + * @param string $key + * @param array $config + * @param array $default_config + */ + private function setAccountConfig($key, $config, $default_config){ + $value = $this->default_account_config[$key]; + if(isset($config[$key])) { + $value = $config[$key]; + }elseif(isset($default_config[$key])) { + $value = $default_config[$key]; + } + $this->$key = $value; + } + + /** + * Look for a possible events in any available config + * @param $config + */ + protected function setEventsFromConfig($config) { + $this->events = ClientManager::get("events"); + if(isset($config['events'])){ + foreach($config['events'] as $section => $events) { + $this->events[$section] = array_merge($this->events[$section], $events); + } + } + } + + /** + * Look for a possible mask in any available config + * @param $config + * + * @throws MaskNotFoundException + */ + protected function setMaskFromConfig($config) { + $default_config = ClientManager::get("masks"); + + if(isset($config['masks'])){ + if(isset($config['masks']['message'])) { + if(class_exists($config['masks']['message'])) { + $this->default_message_mask = $config['masks']['message']; + }else{ + throw new MaskNotFoundException("Unknown mask provided: ".$config['masks']['message']); + } + }else{ + if(class_exists($default_config['message'])) { + $this->default_message_mask = $default_config['message']; + }else{ + throw new MaskNotFoundException("Unknown mask provided: ".$default_config['message']); + } + } + if(isset($config['masks']['attachment'])) { + if(class_exists($config['masks']['attachment'])) { + $this->default_attachment_mask = $config['masks']['attachment']; + }else{ + throw new MaskNotFoundException("Unknown mask provided: ".$config['masks']['attachment']); + } + }else{ + if(class_exists($default_config['attachment'])) { + $this->default_attachment_mask = $default_config['attachment']; + }else{ + throw new MaskNotFoundException("Unknown mask provided: ".$default_config['attachment']); + } + } + }else{ + if(class_exists($default_config['message'])) { + $this->default_message_mask = $default_config['message']; + }else{ + throw new MaskNotFoundException("Unknown mask provided: ".$default_config['message']); + } + + if(class_exists($default_config['attachment'])) { + $this->default_attachment_mask = $default_config['attachment']; + }else{ + throw new MaskNotFoundException("Unknown mask provided: ".$default_config['attachment']); + } + } + + } + + /** + * Get the current imap resource + * + * @return bool|Protocol|ProtocolInterface + * @throws ConnectionFailedException + */ + public function getConnection() { + $this->checkConnection(); + return $this->connection; + } + + /** + * Determine if connection was established. + * + * @return bool + */ + public function isConnected() { + return $this->connection ? $this->connection->connected() : false; + } + + /** + * Determine if connection was established and connect if not. + * + * @throws ConnectionFailedException + */ + public function checkConnection() { + if (!$this->isConnected()) { + $this->connect(); + } + } + + /** + * Force a reconnect + * + * @throws ConnectionFailedException + */ + public function reconnect() { + if ($this->isConnected()) { + $this->disconnect(); + } + $this->connect(); + } + + /** + * Connect to server. + * + * @return $this + * @throws ConnectionFailedException + */ + public function connect() { + $this->disconnect(); + $protocol = strtolower($this->protocol); + + if (in_array($protocol, ['imap', 'imap4', 'imap4rev1'])) { + $this->connection = new ImapProtocol($this->validate_cert, $this->encryption); + $this->connection->setConnectionTimeout($this->timeout); + $this->connection->setProxy($this->proxy); + }else{ + if (extension_loaded('imap') === false) { + throw new ConnectionFailedException("connection setup failed - no imap function", 0, new ProtocolNotSupportedException($protocol." is an unsupported protocol")); + } + $this->connection = new LegacyProtocol($this->validate_cert, $this->encryption); + if (strpos($protocol, "legacy-") === 0) { + $protocol = substr($protocol, 7); + } + $this->connection->setProtocol($protocol); + } + + try { + $this->connection->connect($this->host, $this->port); + } catch (ErrorException $e) { + throw new ConnectionFailedException("connection setup failed - connect exception", 0, $e); + } catch (Exceptions\RuntimeException $e) { + throw new ConnectionFailedException("connection setup failed - run exception", 0, $e); + } + $this->authenticate(); + + return $this; + } + + /** + * Authenticate the current session + * + * @throws ConnectionFailedException + */ + protected function authenticate() { + try { + if ($this->authentication == "oauth") { + if (!$this->connection->authenticate($this->username, $this->password)) { + throw new AuthFailedException(); + } + } elseif (!$this->connection->login($this->username, $this->password)) { + throw new AuthFailedException(); + } + } catch (AuthFailedException $e) { + throw new ConnectionFailedException("connection setup failed - authenticate", 0, $e); + } + } + + /** + * Disconnect from server. + * + * @return $this + */ + public function disconnect() { + if ($this->isConnected() && $this->connection !== false) { + $this->connection->logout(); + } + $this->active_folder = null; + + return $this; + } + + /** + * Get a folder instance by a folder name + * @param string $folder_name + * @param string|bool|null $delimiter + * + * @return mixed + * @throws ConnectionFailedException + * @throws FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function getFolder($folder_name, $delimiter = null) { + if ($delimiter !== false && $delimiter !== null) { + return $this->getFolderByPath($folder_name); + } + + // Set delimiter to false to force selection via getFolderByName (maybe useful for uncommon folder names) + $delimiter = is_null($delimiter) ? ClientManager::get('options.delimiter', "/") : $delimiter; + if (strpos($folder_name, (string)$delimiter) !== false) { + return $this->getFolderByPath($folder_name); + } + + return $this->getFolderByName($folder_name); + } + + /** + * Get a folder instance by a folder name + * @param $folder_name + * + * @return mixed + * @throws ConnectionFailedException + * @throws FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function getFolderByName($folder_name) { + return $this->getFolders(false)->where("name", $folder_name)->first(); + } + + /** + * Get a folder instance by a folder path + * @param $folder_path + * + * @return mixed + * @throws ConnectionFailedException + * @throws FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function getFolderByPath($folder_path) { + return $this->getFolders(false)->where("path", $folder_path)->first(); + } + + /** + * Get folders list. + * If hierarchical order is set to true, it will make a tree of folders, otherwise it will return flat array. + * + * @param boolean $hierarchical + * @param string|null $parent_folder + * + * @return FolderCollection + * @throws ConnectionFailedException + * @throws FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function getFolders($hierarchical = true, $parent_folder = null) { + $this->checkConnection(); + $folders = FolderCollection::make([]); + + $pattern = $parent_folder.($hierarchical ? '%' : '*'); + $items = $this->connection->folders('', $pattern); + + if(is_array($items)){ + foreach ($items as $folder_name => $item) { + $folder = new Folder($this, $folder_name, $item["delimiter"], $item["flags"]); + + if ($hierarchical && $folder->hasChildren()) { + $pattern = $folder->full_name.$folder->delimiter.'%'; + + $children = $this->getFolders(true, $pattern); + $folder->setChildren($children); + } + + $folders->push($folder); + } + + return $folders; + }else{ + throw new FolderFetchingException("failed to fetch any folders"); + } + } + + /** + * Open a given folder. + * @param string $folder_path + * @param boolean $force_select + * + * @return mixed + * @throws ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function openFolder($folder_path, $force_select = false) { + if ($this->active_folder == $folder_path && $this->isConnected() && $force_select === false) { + return true; + } + $this->checkConnection(); + $this->active_folder = $folder_path; + return $this->connection->selectFolder($folder_path); + } + + /** + * Create a new Folder + * @param string $folder + * @param boolean $expunge + * + * @return bool + * @throws ConnectionFailedException + * @throws FolderFetchingException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\RuntimeException + */ + public function createFolder($folder, $expunge = true) { + $this->checkConnection(); + $status = $this->connection->createFolder($folder); + + if($expunge) $this->expunge(); + + $folder = $this->getFolder($folder); + if($status && $folder) { + $event = $this->getEvent("folder", "new"); + $event::dispatch($folder); + } + + return $folder; + } + + /** + * Check a given folder + * @param $folder + * + * @return false|object + * @throws ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function checkFolder($folder) { + $this->checkConnection(); + return $this->connection->examineFolder($folder); + } + + /** + * Get the current active folder + * + * @return string + */ + public function getFolderPath(){ + return $this->active_folder; + } + + /** + * Retrieve the quota level settings, and usage statics per mailbox + * + * @return array + * @throws ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function getQuota() { + $this->checkConnection(); + return $this->connection->getQuota($this->username); + } + + /** + * Retrieve the quota settings per user + * @param string $quota_root + * + * @return array + * @throws ConnectionFailedException + */ + public function getQuotaRoot($quota_root = 'INBOX') { + $this->checkConnection(); + return $this->connection->getQuotaRoot($quota_root); + } + + /** + * Delete all messages marked for deletion + * + * @return bool + * @throws ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function expunge() { + $this->checkConnection(); + return $this->connection->expunge(); + } + + /** + * Set the connection timeout + * @param integer $timeout + * + * @return Protocol + * @throws ConnectionFailedException + */ + public function setTimeout($timeout) { + $this->checkConnection(); + return $this->connection->setConnectionTimeout($timeout); + } + + /** + * Get the connection timeout + * + * @return int + * @throws ConnectionFailedException + */ + public function getTimeout(){ + $this->checkConnection(); + return $this->connection->getConnectionTimeout(); + } + + /** + * Get the default message mask + * + * @return string + */ + public function getDefaultMessageMask(){ + return $this->default_message_mask; + } + + /** + * Get the default events for a given section + * @param $section + * + * @return array + */ + public function getDefaultEvents($section){ + return $this->events[$section]; + } + + /** + * Set the default message mask + * @param $mask + * + * @return $this + * @throws MaskNotFoundException + */ + public function setDefaultMessageMask($mask) { + if(class_exists($mask)) { + $this->default_message_mask = $mask; + + return $this; + } + + throw new MaskNotFoundException("Unknown mask provided: ".$mask); + } + + /** + * Get the default attachment mask + * + * @return string + */ + public function getDefaultAttachmentMask(){ + return $this->default_attachment_mask; + } + + /** + * Set the default attachment mask + * @param $mask + * + * @return $this + * @throws MaskNotFoundException + */ + public function setDefaultAttachmentMask($mask) { + if(class_exists($mask)) { + $this->default_attachment_mask = $mask; + + return $this; + } + + throw new MaskNotFoundException("Unknown mask provided: ".$mask); + } +} diff --git a/htdocs/includes/webklex/php-imap/src/ClientManager.php b/htdocs/includes/webklex/php-imap/src/ClientManager.php new file mode 100644 index 00000000000..3daf9f83f76 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/ClientManager.php @@ -0,0 +1,262 @@ +setConfig($config); + } + + /** + * Dynamically pass calls to the default account. + * @param string $method + * @param array $parameters + * + * @return mixed + * @throws Exceptions\MaskNotFoundException + */ + public function __call($method, $parameters) { + $callable = [$this->account(), $method]; + + return call_user_func_array($callable, $parameters); + } + + /** + * Safely create a new client instance which is not listed in accounts + * @param array $config + * + * @return Client + * @throws Exceptions\MaskNotFoundException + */ + public function make($config) { + return new Client($config); + } + + /** + * Get a dotted config parameter + * @param string $key + * @param null $default + * + * @return mixed|null + */ + public static function get($key, $default = null) { + $parts = explode('.', $key); + $value = null; + foreach($parts as $part) { + if($value === null) { + if(isset(self::$config[$part])) { + $value = self::$config[$part]; + }else{ + break; + } + }else{ + if(isset($value[$part])) { + $value = $value[$part]; + }else{ + break; + } + } + } + + return $value === null ? $default : $value; + } + + /** + * Resolve a account instance. + * @param string $name + * + * @return Client + * @throws Exceptions\MaskNotFoundException + */ + public function account($name = null) { + $name = $name ?: $this->getDefaultAccount(); + + // If the connection has not been resolved yet we will resolve it now as all + // of the connections are resolved when they are actually needed so we do + // not make any unnecessary connection to the various queue end-points. + if (!isset($this->accounts[$name])) { + $this->accounts[$name] = $this->resolve($name); + } + + return $this->accounts[$name]; + } + + /** + * Resolve a account. + * + * @param string $name + * + * @return Client + * @throws Exceptions\MaskNotFoundException + */ + protected function resolve($name) { + $config = $this->getClientConfig($name); + + return new Client($config); + } + + /** + * Get the account configuration. + * @param string $name + * + * @return array + */ + protected function getClientConfig($name) { + if ($name === null || $name === 'null') { + return ['driver' => 'null']; + } + + return self::$config["accounts"][$name]; + } + + /** + * Get the name of the default account. + * + * @return string + */ + public function getDefaultAccount() { + return self::$config['default']; + } + + /** + * Set the name of the default account. + * @param string $name + * + * @return void + */ + public function setDefaultAccount($name) { + self::$config['default'] = $name; + } + + + /** + * Merge the vendor settings with the local config + * + * The default account identifier will be used as default for any missing account parameters. + * If however the default account is missing a parameter the package default account parameter will be used. + * This can be disabled by setting imap.default in your config file to 'false' + * + * @param array|string $config + * + * @return $this + */ + public function setConfig($config) { + + if(is_array($config) === false) { + $config = require $config; + } + + $config_key = 'imap'; + $path = __DIR__.'/config/'.$config_key.'.php'; + + $vendor_config = require $path; + $config = $this->array_merge_recursive_distinct($vendor_config, $config); + + if(is_array($config)){ + if(isset($config['default'])){ + if(isset($config['accounts']) && $config['default'] != false){ + + $default_config = $vendor_config['accounts']['default']; + if(isset($config['accounts'][$config['default']])){ + $default_config = array_merge($default_config, $config['accounts'][$config['default']]); + } + + if(is_array($config['accounts'])){ + foreach($config['accounts'] as $account_key => $account){ + $config['accounts'][$account_key] = array_merge($default_config, $account); + } + } + } + } + } + + self::$config = $config; + + return $this; + } + + /** + * Marge arrays recursively and distinct + * + * Merges any number of arrays / parameters recursively, replacing + * entries with string keys with values from latter arrays. + * If the entry or the next value to be assigned is an array, then it + * automatically treats both arguments as an array. + * Numeric entries are appended, not replaced, but only if they are + * unique + * + * @param array $array1 Initial array to merge. + * @param array ... Variable list of arrays to recursively merge. + * + * @return array|mixed + * + * @link http://www.php.net/manual/en/function.array-merge-recursive.php#96201 + * @author Mark Roduner + */ + private function array_merge_recursive_distinct() { + + $arrays = func_get_args(); + $base = array_shift($arrays); + + if(!is_array($base)) $base = empty($base) ? array() : array($base); + + foreach($arrays as $append) { + + if(!is_array($append)) $append = array($append); + + foreach($append as $key => $value) { + + if(!array_key_exists($key, $base) and !is_numeric($key)) { + $base[$key] = $append[$key]; + continue; + } + + if(is_array($value) or is_array($base[$key])) { + $base[$key] = $this->array_merge_recursive_distinct($base[$key], $append[$key]); + } else if(is_numeric($key)) { + if(!in_array($value, $base)) $base[] = $value; + } else { + $base[$key] = $value; + } + + } + + } + + return $base; + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Connection/Protocols/ImapProtocol.php b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/ImapProtocol.php new file mode 100644 index 00000000000..99da29d3c3a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/ImapProtocol.php @@ -0,0 +1,1074 @@ +setCertValidation($cert_validation); + $this->encryption = $encryption; + } + + /** + * Public destructor + */ + public function __destruct() { + $this->logout(); + } + + /** + * Open connection to IMAP server + * @param string $host hostname or IP address of IMAP server + * @param int|null $port of IMAP server, default is 143 and 993 for ssl + * + * @throws ConnectionFailedException + */ + public function connect($host, $port = null) { + $transport = 'tcp'; + $encryption = ""; + + if ($this->encryption) { + $encryption = strtolower($this->encryption); + if ($encryption == "ssl") { + $transport = 'ssl'; + $port = $port === null ? 993 : $port; + } + } + $port = $port === null ? 143 : $port; + try { + $this->stream = $this->createStream($transport, $host, $port, $this->connection_timeout); + if (!$this->assumedNextLine('* OK')) { + throw new ConnectionFailedException('connection refused'); + } + if ($encryption == "tls") { + $this->enableTls(); + } + } catch (Exception $e) { + throw new ConnectionFailedException('connection failed', 0, $e); + } + } + + /** + * Enable tls on the current connection + * + * @throws ConnectionFailedException + * @throws RuntimeException + */ + protected function enableTls(){ + $response = $this->requestAndResponse('STARTTLS'); + $result = $response && stream_socket_enable_crypto($this->stream, true, $this->getCryptoMethod()); + if (!$result) { + throw new ConnectionFailedException('failed to enable TLS'); + } + } + + /** + * Get the next line from stream + * + * @return string next line + * @throws RuntimeException + */ + public function nextLine() { + $line = fgets($this->stream); + + if ($line === false) { + throw new RuntimeException('failed to read - connection closed?'); + } + + return $line; + } + + /** + * Get the next line and check if it starts with a given string + * @param string $start + * + * @return bool + * @throws RuntimeException + */ + protected function assumedNextLine($start) { + $line = $this->nextLine(); + return strpos($line, $start) === 0; + } + + /** + * Get the next line and split the tag + * @param string $tag reference tag + * + * @return string next line + * @throws RuntimeException + */ + protected function nextTaggedLine(&$tag) { + $line = $this->nextLine(); + list($tag, $line) = explode(' ', $line, 2); + + return $line; + } + + /** + * Split a given line in values. A value is literal of any form or a list + * @param string $line + * + * @return array + * @throws RuntimeException + */ + protected function decodeLine($line) { + $tokens = []; + $stack = []; + + // replace any trailing including spaces with a single space + $line = rtrim($line) . ' '; + while (($pos = strpos($line, ' ')) !== false) { + $token = substr($line, 0, $pos); + if (!strlen($token)) { + continue; + } + while ($token[0] == '(') { + array_push($stack, $tokens); + $tokens = []; + $token = substr($token, 1); + } + if ($token[0] == '"') { + if (preg_match('%^\(*"((.|\\\\|\\")*?)" *%', $line, $matches)) { + $tokens[] = $matches[1]; + $line = substr($line, strlen($matches[0])); + continue; + } + } + if ($token[0] == '{') { + $endPos = strpos($token, '}'); + $chars = substr($token, 1, $endPos - 1); + if (is_numeric($chars)) { + $token = ''; + while (strlen($token) < $chars) { + $token .= $this->nextLine(); + } + $line = ''; + if (strlen($token) > $chars) { + $line = substr($token, $chars); + $token = substr($token, 0, $chars); + } else { + $line .= $this->nextLine(); + } + $tokens[] = $token; + $line = trim($line) . ' '; + continue; + } + } + if ($stack && $token[strlen($token) - 1] == ')') { + // closing braces are not separated by spaces, so we need to count them + $braces = strlen($token); + $token = rtrim($token, ')'); + // only count braces if more than one + $braces -= strlen($token) + 1; + // only add if token had more than just closing braces + if (rtrim($token) != '') { + $tokens[] = rtrim($token); + } + $token = $tokens; + $tokens = array_pop($stack); + // special handline if more than one closing brace + while ($braces-- > 0) { + $tokens[] = $token; + $token = $tokens; + $tokens = array_pop($stack); + } + } + $tokens[] = $token; + $line = substr($line, $pos + 1); + } + + // maybe the server forgot to send some closing braces + while ($stack) { + $child = $tokens; + $tokens = array_pop($stack); + $tokens[] = $child; + } + + return $tokens; + } + + /** + * Read abd decode a response "line" + * @param array|string $tokens to decode + * @param string $wantedTag targeted tag + * @param bool $dontParse if true only the unparsed line is returned in $tokens + * + * @return bool + * @throws RuntimeException + */ + public function readLine(&$tokens = [], $wantedTag = '*', $dontParse = false) { + $line = $this->nextTaggedLine($tag); // get next tag + if (!$dontParse) { + $tokens = $this->decodeLine($line); + } else { + $tokens = $line; + } + if ($this->debug) echo "<< ".$line."\n"; + + // if tag is wanted tag we might be at the end of a multiline response + return $tag == $wantedTag; + } + + /** + * Read all lines of response until given tag is found + * @param string $tag request tag + * @param bool $dontParse if true every line is returned unparsed instead of the decoded tokens + * + * @return void|null|bool|array tokens if success, false if error, null if bad request + * @throws RuntimeException + */ + public function readResponse($tag, $dontParse = false) { + $lines = []; + $tokens = null; // define $tokens variable before first use + do { + $readAll = $this->readLine($tokens, $tag, $dontParse); + $lines[] = $tokens; + } while (!$readAll); + + if ($dontParse) { + // First two chars are still needed for the response code + $tokens = [substr($tokens, 0, 2)]; + } + + // last line has response code + if ($tokens[0] == 'OK') { + return $lines ? $lines : true; + } elseif ($tokens[0] == 'NO') { + return false; + } + + return; + } + + /** + * Send a new request + * @param string $command + * @param array $tokens additional parameters to command, use escapeString() to prepare + * @param string $tag provide a tag otherwise an autogenerated is returned + * + * @throws RuntimeException + */ + public function sendRequest($command, $tokens = [], &$tag = null) { + if (!$tag) { + $this->noun++; + $tag = 'TAG' . $this->noun; + } + + $line = $tag . ' ' . $command; + + foreach ($tokens as $token) { + if (is_array($token)) { + if (fwrite($this->stream, $line . ' ' . $token[0] . "\r\n") === false) { + throw new RuntimeException('failed to write - connection closed?'); + } + if (!$this->assumedNextLine('+ ')) { + throw new RuntimeException('failed to send literal string'); + } + $line = $token[1]; + } else { + $line .= ' ' . $token; + } + } + if ($this->debug) echo ">> ".$line."\n"; + + if (fwrite($this->stream, $line . "\r\n") === false) { + throw new RuntimeException('failed to write - connection closed?'); + } + } + + /** + * Send a request and get response at once + * @param string $command + * @param array $tokens parameters as in sendRequest() + * @param bool $dontParse if true unparsed lines are returned instead of tokens + * + * @return void|null|bool|array response as in readResponse() + * @throws RuntimeException + */ + public function requestAndResponse($command, $tokens = [], $dontParse = false) { + $this->sendRequest($command, $tokens, $tag); + + return $this->readResponse($tag, $dontParse); + } + + /** + * Escape one or more literals i.e. for sendRequest + * @param string|array $string the literal/-s + * + * @return string|array escape literals, literals with newline ar returned + * as array('{size}', 'string'); + */ + public function escapeString($string) { + if (func_num_args() < 2) { + if (strpos($string, "\n") !== false) { + return ['{' . strlen($string) . '}', $string]; + } else { + return '"' . str_replace(['\\', '"'], ['\\\\', '\\"'], $string) . '"'; + } + } + $result = []; + foreach (func_get_args() as $string) { + $result[] = $this->escapeString($string); + } + return $result; + } + + /** + * Escape a list with literals or lists + * @param array $list list with literals or lists as PHP array + * + * @return string escaped list for imap + */ + public function escapeList($list) { + $result = []; + foreach ($list as $v) { + if (!is_array($v)) { + $result[] = $v; + continue; + } + $result[] = $this->escapeList($v); + } + return '(' . implode(' ', $result) . ')'; + } + + /** + * Login to a new session. + * @param string $user username + * @param string $password password + * + * @return bool|mixed + * @throws AuthFailedException + */ + public function login($user, $password) { + try { + return $this->requestAndResponse('LOGIN', $this->escapeString($user, $password), true); + } catch (RuntimeException $e) { + throw new AuthFailedException("failed to authenticate", 0, $e); + } + } + + /** + * Authenticate your current IMAP session. + * @param string $user username + * @param string $token access token + * + * @return bool + * @throws AuthFailedException + */ + public function authenticate($user, $token) { + try { + $authenticateParams = ['XOAUTH2', base64_encode("user=$user\1auth=Bearer $token\1\1")]; + $this->sendRequest('AUTHENTICATE', $authenticateParams); + + while (true) { + $response = ""; + $is_plus = $this->readLine($response, '+', true); + if ($is_plus) { + // try to log the challenge somewhere where it can be found + error_log("got an extra server challenge: $response"); + // respond with an empty response. + $this->sendRequest(''); + } else { + if (preg_match('/^NO /i', $response) || + preg_match('/^BAD /i', $response)) { + error_log("got failure response: $response"); + return false; + } else if (preg_match("/^OK /i", $response)) { + return true; + } + } + } + } catch (RuntimeException $e) { + throw new AuthFailedException("failed to authenticate", 0, $e); + } + return false; + } + + /** + * Logout of imap server + * + * @return bool success + */ + public function logout() { + $result = false; + if ($this->stream) { + try { + $result = $this->requestAndResponse('LOGOUT', [], true); + } catch (Exception $e) {} + fclose($this->stream); + $this->stream = null; + } + return $result; + } + + /** + * Check if the current session is connected + * + * @return bool + */ + public function connected(){ + return (boolean) $this->stream; + } + + /** + * Get an array of available capabilities + * + * @return array list of capabilities + * @throws RuntimeException + */ + public function getCapabilities() { + $response = $this->requestAndResponse('CAPABILITY'); + + if (!$response) return []; + + $capabilities = []; + foreach ($response as $line) { + $capabilities = array_merge($capabilities, $line); + } + return $capabilities; + } + + /** + * Examine and select have the same response. + * @param string $command can be 'EXAMINE' or 'SELECT' + * @param string $folder target folder + * + * @return bool|array + * @throws RuntimeException + */ + public function examineOrSelect($command = 'EXAMINE', $folder = 'INBOX') { + $this->sendRequest($command, [$this->escapeString($folder)], $tag); + + $result = []; + $tokens = null; // define $tokens variable before first use + while (!$this->readLine($tokens, $tag)) { + if ($tokens[0] == 'FLAGS') { + array_shift($tokens); + $result['flags'] = $tokens; + continue; + } + switch ($tokens[1]) { + case 'EXISTS': + case 'RECENT': + $result[strtolower($tokens[1])] = $tokens[0]; + break; + case '[UIDVALIDITY': + $result['uidvalidity'] = (int)$tokens[2]; + break; + case '[UIDNEXT': + $result['uidnext'] = (int)$tokens[2]; + break; + default: + // ignore + break; + } + } + + if ($tokens[0] != 'OK') { + return false; + } + return $result; + } + + /** + * Change the current folder + * @param string $folder change to this folder + * + * @return bool|array see examineOrselect() + * @throws RuntimeException + */ + public function selectFolder($folder = 'INBOX') { + return $this->examineOrSelect('SELECT', $folder); + } + + /** + * Examine a given folder + * @param string $folder examine this folder + * + * @return bool|array see examineOrselect() + * @throws RuntimeException + */ + public function examineFolder($folder = 'INBOX') { + return $this->examineOrSelect('EXAMINE', $folder); + } + + /** + * Fetch one or more items of one or more messages + * @param string|array $items items to fetch [RFC822.HEADER, FLAGS, RFC822.TEXT, etc] + * @param int|array $from message for items or start message if $to !== null + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return string|array if only one item of one message is fetched it's returned as string + * if items of one message are fetched it's returned as (name => value) + * if one items of messages are fetched it's returned as (msgno => value) + * if items of messages are fetched it's returned as (msgno => (name => value)) + * @throws RuntimeException + */ + protected function fetch($items, $from, $to = null, $uid = false) { + if (is_array($from)) { + $set = implode(',', $from); + } elseif ($to === null) { + $set = (int)$from; + } elseif ($to === INF) { + $set = (int)$from . ':*'; + } else { + $set = (int)$from . ':' . (int)$to; + } + + $items = (array)$items; + $itemList = $this->escapeList($items); + + $this->sendRequest(($uid ? 'UID ' : '') . 'FETCH', [$set, $itemList], $tag); + + $result = []; + $tokens = null; // define $tokens variable before first use + while (!$this->readLine($tokens, $tag)) { + // ignore other responses + if ($tokens[1] != 'FETCH') { + continue; + } + + // find array key of UID value; try the last elements, or search for it + if ($uid) { + $count = count($tokens[2]); + if ($tokens[2][$count - 2] == 'UID') { + $uidKey = $count - 1; + } else if ($tokens[2][0] == 'UID') { + $uidKey = 1; + } else { + $uidKey = array_search('UID', $tokens[2]) + 1; + } + } + + // ignore other messages + if ($to === null && !is_array($from) && ($uid ? $tokens[2][$uidKey] != $from : $tokens[0] != $from)) { + continue; + } + + // if we only want one item we return that one directly + if (count($items) == 1) { + if ($tokens[2][0] == $items[0]) { + $data = $tokens[2][1]; + } elseif ($uid && $tokens[2][2] == $items[0]) { + $data = $tokens[2][3]; + } else { + // maybe the server send an other field we didn't wanted + $count = count($tokens[2]); + // we start with 2, because 0 was already checked + for ($i = 2; $i < $count; $i += 2) { + if ($tokens[2][$i] != $items[0]) { + continue; + } + $data = $tokens[2][$i + 1]; + break; + } + } + } else { + $data = []; + while (key($tokens[2]) !== null) { + $data[current($tokens[2])] = next($tokens[2]); + next($tokens[2]); + } + } + + // if we want only one message we can ignore everything else and just return + if ($to === null && !is_array($from) && ($uid ? $tokens[2][$uidKey] == $from : $tokens[0] == $from)) { + // we still need to read all lines + while (!$this->readLine($tokens, $tag)) + + return $data; + } + if ($uid) { + $result[$tokens[2][$uidKey]] = $data; + }else{ + $result[$tokens[0]] = $data; + } + } + + if ($to === null && !is_array($from)) { + throw new RuntimeException('the single id was not found in response'); + } + + return $result; + } + + /** + * Fetch message headers + * @param array|int $uids + * @param string $rfc + * @param bool $uid set to true if passing a unique id + * + * @return array + * @throws RuntimeException + */ + public function content($uids, $rfc = "RFC822", $uid = false) { + return $this->fetch(["$rfc.TEXT"], $uids, null, $uid); + } + + /** + * Fetch message headers + * @param array|int $uids + * @param string $rfc + * @param bool $uid set to true if passing a unique id + * + * @return array + * @throws RuntimeException + */ + public function headers($uids, $rfc = "RFC822", $uid = false){ + return $this->fetch(["$rfc.HEADER"], $uids, null, $uid); + } + + /** + * Fetch message flags + * @param array|int $uids + * @param bool $uid set to true if passing a unique id + * + * @return array + * @throws RuntimeException + */ + public function flags($uids, $uid = false){ + return $this->fetch(["FLAGS"], $uids, null, $uid); + } + + /** + * Get uid for a given id + * @param int|null $id message number + * + * @return array|string message number for given message or all messages as array + * @throws MessageNotFoundException + */ + public function getUid($id = null) { + try { + $uids = $this->fetch('UID', 1, INF); + if ($id == null) { + return $uids; + } + + foreach ($uids as $k => $v) { + if ($k == $id) { + return $v; + } + } + } catch (RuntimeException $e) {} + + throw new MessageNotFoundException('unique id not found'); + } + + /** + * Get a message number for a uid + * @param string $id uid + * + * @return int message number + * @throws MessageNotFoundException + */ + public function getMessageNumber($id) { + $ids = $this->getUid(); + foreach ($ids as $k => $v) { + if ($v == $id) { + return $k; + } + } + + throw new MessageNotFoundException('message number not found'); + } + + /** + * Get a list of available folders + * @param string $reference mailbox reference for list + * @param string $folder mailbox name match with wildcards + * + * @return array folders that matched $folder as array(name => array('delimiter' => .., 'flags' => ..)) + * @throws RuntimeException + */ + public function folders($reference = '', $folder = '*') { + $result = []; + $list = $this->requestAndResponse('LIST', $this->escapeString($reference, $folder)); + if (!$list || $list === true) { + return $result; + } + + foreach ($list as $item) { + if (count($item) != 4 || $item[0] != 'LIST') { + continue; + } + $result[$item[3]] = ['delimiter' => $item[2], 'flags' => $item[1]]; + } + + return $result; + } + + /** + * Manage flags + * @param array $flags flags to set, add or remove - see $mode + * @param int $from message for items or start message if $to !== null + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param string|null $mode '+' to add flags, '-' to remove flags, everything else sets the flags as given + * @param bool $silent if false the return values are the new flags for the wanted messages + * @param bool $uid set to true if passing a unique id + * + * @return bool|array new flags if $silent is false, else true or false depending on success + * @throws RuntimeException + */ + public function store(array $flags, $from, $to = null, $mode = null, $silent = true, $uid = false) { + $item = 'FLAGS'; + if ($mode == '+' || $mode == '-') { + $item = $mode . $item; + } + if ($silent) { + $item .= '.SILENT'; + } + + $flags = $this->escapeList($flags); + $set = (int)$from; + if ($to !== null) { + $set .= ':' . ($to == INF ? '*' : (int)$to); + } + + $command = ($uid ? "UID " : "")."STORE"; + $result = $this->requestAndResponse($command, [$set, $item, $flags], $silent); + + if ($silent) { + return (bool)$result; + } + + $tokens = $result; + $result = []; + foreach ($tokens as $token) { + if ($token[1] != 'FETCH' || $token[2][0] != 'FLAGS') { + continue; + } + $result[$token[0]] = $token[2][1]; + } + + return $result; + } + + /** + * Append a new message to given folder + * @param string $folder name of target folder + * @param string $message full message content + * @param array $flags flags for new message + * @param string $date date for new message + * + * @return bool success + * @throws RuntimeException + */ + public function appendMessage($folder, $message, $flags = null, $date = null) { + $tokens = []; + $tokens[] = $this->escapeString($folder); + if ($flags !== null) { + $tokens[] = $this->escapeList($flags); + } + if ($date !== null) { + $tokens[] = $this->escapeString($date); + } + $tokens[] = $this->escapeString($message); + + return $this->requestAndResponse('APPEND', $tokens, true); + } + + /** + * Copy a message set from current folder to an other folder + * @param string $folder destination folder + * @param $from + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return bool success + * @throws RuntimeException + */ + public function copyMessage($folder, $from, $to = null, $uid = false) { + $set = (int)$from; + if ($to !== null) { + $set .= ':' . ($to == INF ? '*' : (int)$to); + } + $command = ($uid ? "UID " : "")."COPY"; + + return $this->requestAndResponse($command, [$set, $this->escapeString($folder)], true); + } + + /** + * Copy multiple messages to the target folder + * + * @param array $messages List of message identifiers + * @param string $folder Destination folder + * @param bool $uid Set to true if you pass message unique identifiers instead of numbers + * @return array|bool Tokens if operation successful, false if an error occurred + * + * @throws RuntimeException + */ + public function copyManyMessages($messages, $folder, $uid = false) { + $command = $uid ? 'UID COPY' : 'COPY'; + + $set = implode(',', $messages); + $tokens = [$set, $this->escapeString($folder)]; + + return $this->requestAndResponse($command, $tokens, true); + } + + /** + * Move a message set from current folder to an other folder + * @param string $folder destination folder + * @param $from + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return bool success + * @throws RuntimeException + */ + public function moveMessage($folder, $from, $to = null, $uid = false) { + $set = (int)$from; + if ($to !== null) { + $set .= ':' . ($to == INF ? '*' : (int)$to); + } + $command = ($uid ? "UID " : "")."MOVE"; + + return $this->requestAndResponse($command, [$set, $this->escapeString($folder)], true); + } + + /** + * Move multiple messages to the target folder + * + * @param array $messages List of message identifiers + * @param string $folder Destination folder + * @param bool $uid Set to true if you pass message unique identifiers instead of numbers + * @return array|bool Tokens if operation successful, false if an error occurred + * + * @throws RuntimeException + */ + public function moveManyMessages($messages, $folder, $uid = false) { + $command = $uid ? 'UID MOVE' : 'MOVE'; + + $set = implode(',', $messages); + $tokens = [$set, $this->escapeString($folder)]; + + return $this->requestAndResponse($command, $tokens, true); + } + + /** + * Create a new folder (and parent folders if needed) + * @param string $folder folder name + * + * @return bool success + * @throws RuntimeException + */ + public function createFolder($folder) { + return $this->requestAndResponse('CREATE', [$this->escapeString($folder)], true); + } + + /** + * Rename an existing folder + * @param string $old old name + * @param string $new new name + * + * @return bool success + * @throws RuntimeException + */ + public function renameFolder($old, $new) { + return $this->requestAndResponse('RENAME', $this->escapeString($old, $new), true); + } + + /** + * Delete a folder + * @param string $folder folder name + * + * @return bool success + * @throws RuntimeException + */ + public function deleteFolder($folder) { + return $this->requestAndResponse('DELETE', [$this->escapeString($folder)], true); + } + + /** + * Subscribe to a folder + * @param string $folder folder name + * + * @return bool success + * @throws RuntimeException + */ + public function subscribeFolder($folder) { + return $this->requestAndResponse('SUBSCRIBE', [$this->escapeString($folder)], true); + } + + /** + * Unsubscribe from a folder + * @param string $folder folder name + * + * @return bool success + * @throws RuntimeException + */ + public function unsubscribeFolder($folder) { + return $this->requestAndResponse('UNSUBSCRIBE', [$this->escapeString($folder)], true); + } + + /** + * Apply session saved changes to the server + * + * @return bool success + * @throws RuntimeException + */ + public function expunge() { + return $this->requestAndResponse('EXPUNGE'); + } + + /** + * Send noop command + * + * @return bool success + * @throws RuntimeException + */ + public function noop() { + return $this->requestAndResponse('NOOP'); + } + + /** + * Retrieve the quota level settings, and usage statics per mailbox + * @param $username + * + * @return array + * @throws RuntimeException + */ + public function getQuota($username) { + return $this->requestAndResponse("GETQUOTA", ['"#user/'.$username.'"']); + } + + /** + * Retrieve the quota settings per user + * @param string $quota_root + * + * @return array + * @throws RuntimeException + */ + public function getQuotaRoot($quota_root = 'INBOX') { + return $this->requestAndResponse("QUOTA", [$quota_root]); + } + + /** + * Send idle command + * + * @throws RuntimeException + */ + public function idle() { + $this->sendRequest("IDLE"); + if (!$this->assumedNextLine('+ ')) { + throw new RuntimeException('idle failed'); + } + } + + /** + * Send done command + * @throws RuntimeException + */ + public function done() { + if (fwrite($this->stream, "DONE\r\n") === false) { + throw new RuntimeException('failed to write - connection closed?'); + } + return true; + } + + /** + * Search for matching messages + * @param array $params + * @param bool $uid set to true if passing a unique id + * + * @return array message ids + * @throws RuntimeException + */ + public function search(array $params, $uid = false) { + $token = $uid == true ? "UID SEARCH" : "SEARCH"; + $response = $this->requestAndResponse($token, $params); + if (!$response) { + return $response; + } + + foreach ($response as $ids) { + if ($ids[0] == 'SEARCH') { + array_shift($ids); + return $ids; + } + } + return []; + } + + /** + * Get a message overview + * @param string $sequence + * @param bool $uid set to true if passing a unique id + * + * @return array + * @throws RuntimeException + * @throws MessageNotFoundException + * @throws InvalidMessageDateException + */ + public function overview($sequence, $uid = false) { + $result = []; + list($from, $to) = explode(":", $sequence); + + $uids = $this->getUid(); + $ids = []; + foreach ($uids as $msgn => $v) { + $id = $uid ? $v : $msgn; + if ( ($to >= $id && $from <= $id) || ($to === "*" && $from <= $id) ){ + $ids[] = $id; + } + } + $headers = $this->headers($ids, "RFC822", $uid); + foreach ($headers as $id => $raw_header) { + $result[$id] = (new Header($raw_header, false))->getAttributes(); + } + return $result; + } + + /** + * Enable the debug mode + */ + public function enableDebug(){ + $this->debug = true; + } + + /** + * Disable the debug mode + */ + public function disableDebug(){ + $this->debug = false; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Connection/Protocols/LegacyProtocol.php b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/LegacyProtocol.php new file mode 100644 index 00000000000..96cc733f248 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/LegacyProtocol.php @@ -0,0 +1,607 @@ +setCertValidation($cert_validation); + $this->encryption = $encryption; + } + + /** + * Public destructor + */ + public function __destruct() { + $this->logout(); + } + + /** + * Save the information for a nw connection + * @param string $host + * @param null $port + */ + public function connect($host, $port = null) { + if ($this->encryption) { + $encryption = strtolower($this->encryption); + if ($encryption == "ssl") { + $port = $port === null ? 993 : $port; + } + } + $port = $port === null ? 143 : $port; + $this->host = $host; + $this->port = $port; + } + + /** + * Login to a new session. + * @param string $user username + * @param string $password password + * + * @return bool + * @throws AuthFailedException + * @throws RuntimeException + */ + public function login($user, $password) { + try { + $this->stream = \imap_open( + $this->getAddress(), + $user, + $password, + 0, + $attempts = 3, + ClientManager::get('options.open') + ); + } catch (\ErrorException $e) { + $errors = \imap_errors(); + $message = $e->getMessage().'. '.implode("; ", (is_array($errors) ? $errors : array())); + throw new AuthFailedException($message); + } + + if(!$this->stream) { + $errors = \imap_errors(); + $message = implode("; ", (is_array($errors) ? $errors : array())); + throw new AuthFailedException($message); + } + + $errors = \imap_errors(); + if(is_array($errors)) { + $status = $this->examineFolder(); + if($status['exists'] !== 0) { + $message = implode("; ", (is_array($errors) ? $errors : array())); + throw new RuntimeException($message); + } + } + + return $this->stream; + } + + /** + * Authenticate your current session. + * @param string $user username + * @param string $token access token + * + * @return bool|resource + * @throws AuthFailedException|RuntimeException + */ + public function authenticate($user, $token) { + return $this->login($user, $token); + } + + /** + * Get full address of mailbox. + * + * @return string + */ + protected function getAddress() { + $address = "{".$this->host.":".$this->port."/".$this->protocol; + if (!$this->cert_validation) { + $address .= '/novalidate-cert'; + } + if (in_array($this->encryption,['tls', 'notls', 'ssl'])) { + $address .= '/'.$this->encryption; + } elseif ($this->encryption === "starttls") { + $address .= '/tls'; + } + + $address .= '}'; + + return $address; + } + + /** + * Logout of the current session + * + * @return bool success + */ + public function logout() { + if ($this->stream) { + $result = \imap_close($this->stream, IMAP::CL_EXPUNGE); + $this->stream = false; + return $result; + } + return false; + } + + /** + * Check if the current session is connected + * + * @return bool + */ + public function connected(){ + return boolval($this->stream); + } + + /** + * Get an array of available capabilities + * + * @throws MethodNotSupportedException + */ + public function getCapabilities() { + throw new MethodNotSupportedException(); + } + + /** + * Change the current folder + * @param string $folder change to this folder + * + * @return bool|array see examineOrselect() + * @throws RuntimeException + */ + public function selectFolder($folder = 'INBOX') { + \imap_reopen($this->stream, $folder, IMAP::OP_READONLY, 3); + return $this->examineFolder($folder); + } + + /** + * Examine a given folder + * @param string $folder examine this folder + * + * @return bool|array + * @throws RuntimeException + */ + public function examineFolder($folder = 'INBOX') { + if (strpos($folder, ".") === 0) { + throw new RuntimeException("Segmentation fault prevented. Folders starts with an illegal char '.'."); + } + $folder = $this->getAddress().$folder; + $status = \imap_status($this->stream, $folder, IMAP::SA_ALL); + return [ + "flags" => [], + "exists" => $status->messages, + "recent" => $status->recent, + "unseen" => $status->unseen, + "uidnext" => $status->uidnext, + ]; + } + + /** + * Fetch message content + * @param array|int $uids + * @param string $rfc + * @param bool $uid set to true if passing a unique id + * + * @return array + */ + public function content($uids, $rfc = "RFC822", $uid = false) { + $result = []; + $uids = is_array($uids) ? $uids : [$uids]; + foreach ($uids as $id) { + $result[$id] = \imap_fetchbody($this->stream, $id, "", $uid ? IMAP::FT_UID : IMAP::NIL); + } + return $result; + } + + /** + * Fetch message headers + * @param array|int $uids + * @param string $rfc + * @param bool $uid set to true if passing a unique id + * + * @return array + */ + public function headers($uids, $rfc = "RFC822", $uid = false){ + $result = []; + $uids = is_array($uids) ? $uids : [$uids]; + foreach ($uids as $id) { + $result[$id] = \imap_fetchheader($this->stream, $id, $uid ? IMAP::FT_UID : IMAP::NIL); + } + return $result; + } + + /** + * Fetch message flags + * @param array|int $uids + * @param bool $uid set to true if passing a unique id + * + * @return array + */ + public function flags($uids, $uid = false){ + $result = []; + $uids = is_array($uids) ? $uids : [$uids]; + foreach ($uids as $id) { + $raw_flags = \imap_fetch_overview($this->stream, $id, $uid ? IMAP::FT_UID : IMAP::NIL); + $flags = []; + if (is_array($raw_flags) && isset($raw_flags[0])) { + $raw_flags = (array) $raw_flags[0]; + foreach($raw_flags as $flag => $value) { + if ($value === 1 && in_array($flag, ["size", "uid", "msgno", "update"]) === false){ + $flags[] = "\\".ucfirst($flag); + } + } + } + $result[$uid] = $flags; + } + + return $result; + } + + /** + * Get uid for a given id + * @param int|null $id message number + * + * @return array|string message number for given message or all messages as array + */ + public function getUid($id = null) { + if ($id === null) { + $overview = $this->overview("1:*"); + $uids = []; + foreach($overview as $set){ + $uids[$set->msgno] = $set->uid; + } + return $uids; + } + return \imap_uid($this->stream, $id); + } + + /** + * Get a message number for a uid + * @param string $id uid + * + * @return int message number + */ + public function getMessageNumber($id) { + return \imap_msgno($this->stream, $id); + } + + /** + * Get a message overview + * @param string $sequence uid sequence + * @param bool $uid set to true if passing a unique id + * + * @return array + */ + public function overview($sequence, $uid = false) { + return \imap_fetch_overview($this->stream, $sequence,$uid ? IMAP::FT_UID : IMAP::NIL); + } + + /** + * Get a list of available folders + * @param string $reference mailbox reference for list + * @param string $folder mailbox name match with wildcards + * + * @return array folders that matched $folder as array(name => array('delimiter' => .., 'flags' => ..)) + * @throws RuntimeException + */ + public function folders($reference = '', $folder = '*') { + $result = []; + + $items = \imap_getmailboxes($this->stream, $this->getAddress(), $reference.$folder); + if(is_array($items)){ + foreach ($items as $item) { + $name = $this->decodeFolderName($item->name); + $result[$name] = ['delimiter' => $item->delimiter, 'flags' => []]; + } + }else{ + throw new RuntimeException(\imap_last_error()); + } + + return $result; + } + + /** + * Manage flags + * @param array $flags flags to set, add or remove - see $mode + * @param int $from message for items or start message if $to !== null + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param string|null $mode '+' to add flags, '-' to remove flags, everything else sets the flags as given + * @param bool $silent if false the return values are the new flags for the wanted messages + * @param bool $uid set to true if passing a unique id + * + * @return bool|array new flags if $silent is false, else true or false depending on success + */ + public function store(array $flags, $from, $to = null, $mode = null, $silent = true, $uid = false) { + $flag = trim(is_array($flags) ? implode(" ", $flags) : $flags); + + if ($mode == "+"){ + $status = \imap_setflag_full($this->stream, $from, $flag, $uid ? IMAP::FT_UID : IMAP::NIL); + }else{ + $status = \imap_clearflag_full($this->stream, $from, $flag, $uid ? IMAP::FT_UID : IMAP::NIL); + } + + if ($silent === true) { + return $status; + } + + return $this->flags($from); + } + + /** + * Append a new message to given folder + * @param string $folder name of target folder + * @param string $message full message content + * @param array $flags flags for new message + * @param string $date date for new message + * + * @return bool success + */ + public function appendMessage($folder, $message, $flags = null, $date = null) { + if ($date != null) { + if ($date instanceof \Carbon\Carbon){ + $date = $date->format('d-M-Y H:i:s O'); + } + return \imap_append($this->stream, $folder, $message, $flags, $date); + } + + return \imap_append($this->stream, $folder, $message, $flags); + } + + /** + * Copy message set from current folder to other folder + * @param string $folder destination folder + * @param $from + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return bool success + */ + public function copyMessage($folder, $from, $to = null, $uid = false) { + return \imap_mail_copy($this->stream, $from, $folder, $uid ? IMAP::FT_UID : IMAP::NIL); + } + + /** + * Copy multiple messages to the target folder + * + * @param array $messages List of message identifiers + * @param string $folder Destination folder + * @param bool $uid Set to true if you pass message unique identifiers instead of numbers + * @return array|bool Tokens if operation successful, false if an error occurred + */ + public function copyManyMessages($messages, $folder, $uid = false) { + foreach($messages as $msg) { + if ($this->copyMessage($folder, $msg, null, $uid) == false) { + return false; + } + } + + return $messages; + } + + /** + * Move a message set from current folder to an other folder + * @param string $folder destination folder + * @param $from + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return bool success + */ + public function moveMessage($folder, $from, $to = null, $uid = false) { + return \imap_mail_move($this->stream, $from, $folder, $uid ? IMAP::FT_UID : IMAP::NIL); + } + + /** + * Move multiple messages to the target folder + * + * @param array $messages List of message identifiers + * @param string $folder Destination folder + * @param bool $uid Set to true if you pass message unique identifiers instead of numbers + * @return array|bool Tokens if operation successful, false if an error occurred + */ + public function moveManyMessages($messages, $folder, $uid = false) { + foreach($messages as $msg) { + if ($this->moveMessage($folder, $msg, null, $uid) == false) { + return false; + } + } + + return $messages; + } + + /** + * Create a new folder (and parent folders if needed) + * @param string $folder folder name + * + * @return bool success + */ + public function createFolder($folder) { + return \imap_createmailbox($this->stream, $folder); + } + + /** + * Rename an existing folder + * @param string $old old name + * @param string $new new name + * + * @return bool success + */ + public function renameFolder($old, $new) { + return \imap_renamemailbox($this->stream, $old, $new); + } + + /** + * Delete a folder + * @param string $folder folder name + * + * @return bool success + */ + public function deleteFolder($folder) { + return \imap_deletemailbox($this->stream, $folder); + } + + /** + * Subscribe to a folder + * @param string $folder folder name + * + * @throws MethodNotSupportedException + */ + public function subscribeFolder($folder) { + throw new MethodNotSupportedException(); + } + + /** + * Unsubscribe from a folder + * @param string $folder folder name + * + * @throws MethodNotSupportedException + */ + public function unsubscribeFolder($folder) { + throw new MethodNotSupportedException(); + } + + /** + * Apply session saved changes to the server + * + * @return bool success + */ + public function expunge() { + return \imap_expunge($this->stream); + } + + /** + * Send noop command + * + * @throws MethodNotSupportedException + */ + public function noop() { + throw new MethodNotSupportedException(); + } + + /** + * Send idle command + * + * @throws MethodNotSupportedException + */ + public function idle() { + throw new MethodNotSupportedException(); + } + + /** + * Send done command + * + * @throws MethodNotSupportedException + */ + public function done() { + throw new MethodNotSupportedException(); + } + + /** + * Search for matching messages + * + * @param array $params + * @return array message ids + */ + public function search(array $params, $uid = false) { + return \imap_search($this->stream, $params[0], $uid ? IMAP::FT_UID : IMAP::NIL); + } + + /** + * Enable the debug mode + */ + public function enableDebug(){ + $this->debug = true; + } + + /** + * Disable the debug mode + */ + public function disableDebug(){ + $this->debug = false; + } + + /** + * Decode name. + * It converts UTF7-IMAP encoding to UTF-8. + * + * @param $name + * + * @return mixed|string + */ + protected function decodeFolderName($name) { + preg_match('#\{(.*)\}(.*)#', $name, $preg); + return mb_convert_encoding($preg[2], "UTF-8", "UTF7-IMAP"); + } + + /** + * @return string + */ + public function getProtocol() { + return $this->protocol; + } + + /** + * Retrieve the quota level settings, and usage statics per mailbox + * @param $username + * + * @return array + */ + public function getQuota($username) { + return \imap_get_quota($this->stream, 'user.'.$username); + } + + /** + * Retrieve the quota settings per user + * @param string $quota_root + * + * @return array + */ + public function getQuotaRoot($quota_root = 'INBOX') { + return \imap_get_quotaroot($this->stream, $quota_root); + } + + /** + * @param string $protocol + * @return LegacyProtocol + */ + public function setProtocol($protocol) { + if (($pos = strpos($protocol, "legacy")) > 0) { + $protocol = substr($protocol, 0, ($pos + 2) * -1); + } + $this->protocol = $protocol; + return $this; + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Connection/Protocols/Protocol.php b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/Protocol.php new file mode 100644 index 00000000000..ef01d46ec9b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/Protocol.php @@ -0,0 +1,224 @@ + null, + 'request_fulluri' => false, + 'username' => null, + 'password' => null, + ]; + + /** + * Get an available cryptographic method + * + * @return int + */ + public function getCryptoMethod() { + // Allow the best TLS version(s) we can + $cryptoMethod = STREAM_CRYPTO_METHOD_TLS_CLIENT; + + // PHP 5.6.7 dropped inclusion of TLS 1.1 and 1.2 in STREAM_CRYPTO_METHOD_TLS_CLIENT + // so add them back in manually if we can + if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) { + $cryptoMethod = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; + }elseif (defined('STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT')) { + $cryptoMethod = STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT; + } + + return $cryptoMethod; + } + + /** + * Enable SSL certificate validation + * + * @return $this + */ + public function enableCertValidation() { + $this->cert_validation = true; + return $this; + } + + /** + * Disable SSL certificate validation + * @return $this + */ + public function disableCertValidation() { + $this->cert_validation = false; + return $this; + } + + /** + * Set SSL certificate validation + * @var int $cert_validation + * + * @return $this + */ + public function setCertValidation($cert_validation) { + $this->cert_validation = $cert_validation; + return $this; + } + + /** + * Should we validate SSL certificate? + * + * @return bool + */ + public function getCertValidation() { + return $this->cert_validation; + } + + /** + * Set connection proxy settings + * @var array $options + * + * @return $this + */ + public function setProxy($options) { + foreach ($this->proxy as $key => $val) { + if (isset($options[$key])) { + $this->proxy[$key] = $options[$key]; + } + } + + return $this; + } + + /** + * Get the current proxy settings + * + * @return array + */ + public function getProxy() { + return $this->proxy; + } + + /** + * Prepare socket options + * @var string $transport + * + * @return array + */ + private function defaultSocketOptions($transport) { + $options = []; + if ($this->encryption != false) { + $options["ssl"] = [ + 'verify_peer_name' => $this->getCertValidation(), + 'verify_peer' => $this->getCertValidation(), + ]; + } + + if ($this->proxy["socket"] != null) { + $options[$transport]["proxy"] = $this->proxy["socket"]; + $options[$transport]["request_fulluri"] = $this->proxy["request_fulluri"]; + + if ($this->proxy["username"] != null) { + $auth = base64_encode($this->proxy["username"].':'.$this->proxy["password"]); + + $options[$transport]["header"] = [ + "Proxy-Authorization: Basic $auth" + ]; + } + } + + return $options; + } + + /** + * Create a new resource stream + * @param $transport + * @param string $host hostname or IP address of IMAP server + * @param int $port of IMAP server, default is 143 (993 for ssl) + * @param int $timeout timeout in seconds for initiating session + * + * @return resource|boolean The socket created. + * @throws ConnectionFailedException + */ + protected function createStream($transport, $host, $port, $timeout) { + $socket = "$transport://$host:$port"; + $stream = stream_socket_client($socket, $errno, $errstr, $timeout, + STREAM_CLIENT_CONNECT, + stream_context_create($this->defaultSocketOptions($transport)) + ); + stream_set_timeout($stream, $timeout); + + if (!$stream) { + throw new ConnectionFailedException($errstr, $errno); + } + + if (false === stream_set_timeout($stream, $timeout)) { + throw new ConnectionFailedException('Failed to set stream timeout'); + } + + return $stream; + } + + /** + * @return int + */ + public function getConnectionTimeout() { + return $this->connection_timeout; + } + + /** + * @param int $connection_timeout + * @return Protocol + */ + public function setConnectionTimeout($connection_timeout) { + if ($connection_timeout !== null) { + $this->connection_timeout = $connection_timeout; + } + return $this; + } + +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Connection/Protocols/ProtocolInterface.php b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/ProtocolInterface.php new file mode 100644 index 00000000000..6770d8d4c7b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Connection/Protocols/ProtocolInterface.php @@ -0,0 +1,375 @@ + array('delim' => .., 'flags' => ..)) + * @throws RuntimeException + */ + public function folders($reference = '', $folder = '*'); + + /** + * Set message flags + * + * @param array $flags flags to set, add or remove + * @param int $from message for items or start message if $to !== null + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param string|null $mode '+' to add flags, '-' to remove flags, everything else sets the flags as given + * @param bool $silent if false the return values are the new flags for the wanted messages + * @param bool $uid set to true if passing a unique id + * + * @return bool|array new flags if $silent is false, else true or false depending on success + * @throws RuntimeException + */ + public function store(array $flags, $from, $to = null, $mode = null, $silent = true, $uid = false); + + /** + * Append a new message to given folder + * + * @param string $folder name of target folder + * @param string $message full message content + * @param array $flags flags for new message + * @param string $date date for new message + * @return bool success + * @throws RuntimeException + */ + public function appendMessage($folder, $message, $flags = null, $date = null); + + /** + * Copy message set from current folder to other folder + * + * @param string $folder destination folder + * @param $from + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return bool success + * @throws RuntimeException + */ + public function copyMessage($folder, $from, $to = null, $uid = false); + + /** + * Copy multiple messages to the target folder + * + * @param array $messages List of message identifiers + * @param string $folder Destination folder + * @param bool $uid Set to true if you pass message unique identifiers instead of numbers + * @return array|bool Tokens if operation successful, false if an error occurred + * + * @throws RuntimeException + */ + public function copyManyMessages($messages, $folder, $uid = false); + + /** + * Move a message set from current folder to an other folder + * @param string $folder destination folder + * @param $from + * @param int|null $to if null only one message ($from) is fetched, else it's the + * last message, INF means last message available + * @param bool $uid set to true if passing a unique id + * + * @return bool success + */ + public function moveMessage($folder, $from, $to = null, $uid = false); + + /** + * Move multiple messages to the target folder + * + * @param array $messages List of message identifiers + * @param string $folder Destination folder + * @param bool $uid Set to true if you pass message unique identifiers instead of numbers + * @return array|bool Tokens if operation successful, false if an error occurred + * + * @throws RuntimeException + */ + public function moveManyMessages($messages, $folder, $uid = false); + + /** + * Create a new folder + * + * @param string $folder folder name + * @return bool success + * @throws RuntimeException + */ + public function createFolder($folder); + + /** + * Rename an existing folder + * + * @param string $old old name + * @param string $new new name + * @return bool success + * @throws RuntimeException + */ + public function renameFolder($old, $new); + + /** + * Delete a folder + * + * @param string $folder folder name + * @return bool success + * @throws RuntimeException + */ + public function deleteFolder($folder); + + /** + * Subscribe to a folder + * + * @param string $folder folder name + * @return bool success + * @throws RuntimeException + */ + public function subscribeFolder($folder); + + /** + * Unsubscribe from a folder + * @param string $folder folder name + * + * @return bool success + * @throws RuntimeException + */ + public function unsubscribeFolder($folder); + + /** + * Send idle command + * + * @throws RuntimeException + */ + public function idle(); + + /** + * Send done command + * @throws RuntimeException + */ + public function done(); + + /** + * Apply session saved changes to the server + * + * @return bool success + * @throws RuntimeException + */ + public function expunge(); + + /** + * Retrieve the quota level settings, and usage statics per mailbox + * @param $username + * + * @return array + * @throws RuntimeException + */ + public function getQuota($username); + + /** + * Retrieve the quota settings per user + * + * @param string $quota_root + * + * @return array + * @throws ConnectionFailedException + */ + public function getQuotaRoot($quota_root = 'INBOX'); + + /** + * Send noop command + * + * @return bool success + * @throws RuntimeException + */ + public function noop(); + + /** + * Do a search request + * + * @param array $params + * @param bool $uid set to true if passing a unique id + * + * @return array message ids + * @throws RuntimeException + */ + public function search(array $params, $uid = false); + + /** + * Get a message overview + * @param string $sequence uid sequence + * @param bool $uid set to true if passing a unique id + * + * @return array + * @throws RuntimeException + * @throws MessageNotFoundException + * @throws InvalidMessageDateException + */ + public function overview($sequence, $uid = false); + + /** + * Enable the debug mode + */ + public function enableDebug(); + + /** + * Disable the debug mode + */ + public function disableDebug(); +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/EncodingAliases.php b/htdocs/includes/webklex/php-imap/src/EncodingAliases.php new file mode 100644 index 00000000000..1eb16c131bb --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/EncodingAliases.php @@ -0,0 +1,482 @@ + "us-ascii", + "us-ascii" => "us-ascii", + "ansi_x3.4-1968" => "us-ascii", + "646" => "us-ascii", + "iso-8859-1" => "ISO-8859-1", + "iso-8859-2" => "ISO-8859-2", + "iso-8859-3" => "ISO-8859-3", + "iso-8859-4" => "ISO-8859-4", + "iso-8859-5" => "ISO-8859-5", + "iso-8859-6" => "ISO-8859-6", + "iso-8859-6-i" => "ISO-8859-6-I", + "iso-8859-6-e" => "ISO-8859-6-E", + "iso-8859-7" => "ISO-8859-7", + "iso-8859-8" => "ISO-8859-8", + "iso-8859-8-i" => "ISO-8859-8-I", + "iso-8859-8-e" => "ISO-8859-8-E", + "iso-8859-9" => "ISO-8859-9", + "iso-8859-10" => "ISO-8859-10", + "iso-8859-11" => "ISO-8859-11", + "iso-8859-13" => "ISO-8859-13", + "iso-8859-14" => "ISO-8859-14", + "iso-8859-15" => "ISO-8859-15", + "iso-8859-16" => "ISO-8859-16", + "iso-ir-111" => "ISO-IR-111", + "iso-2022-cn" => "ISO-2022-CN", + "iso-2022-cn-ext" => "ISO-2022-CN", + "iso-2022-kr" => "ISO-2022-KR", + "iso-2022-jp" => "ISO-2022-JP", + "utf-16be" => "UTF-16BE", + "utf-16le" => "UTF-16LE", + "utf-16" => "UTF-16", + "windows-1250" => "windows-1250", + "windows-1251" => "windows-1251", + "windows-1252" => "windows-1252", + "windows-1253" => "windows-1253", + "windows-1254" => "windows-1254", + "windows-1255" => "windows-1255", + "windows-1256" => "windows-1256", + "windows-1257" => "windows-1257", + "windows-1258" => "windows-1258", + "ibm866" => "IBM866", + "ibm850" => "IBM850", + "ibm852" => "IBM852", + "ibm855" => "IBM855", + "ibm857" => "IBM857", + "ibm862" => "IBM862", + "ibm864" => "IBM864", + "utf-8" => "UTF-8", + "utf-7" => "UTF-7", + "shift_jis" => "Shift_JIS", + "big5" => "Big5", + "euc-jp" => "EUC-JP", + "euc-kr" => "EUC-KR", + "gb2312" => "GB2312", + "gb18030" => "gb18030", + "viscii" => "VISCII", + "koi8-r" => "KOI8-R", + "koi8_r" => "KOI8-R", + "cskoi8r" => "KOI8-R", + "koi" => "KOI8-R", + "koi8" => "KOI8-R", + "koi8-u" => "KOI8-U", + "tis-620" => "TIS-620", + "t.61-8bit" => "T.61-8bit", + "hz-gb-2312" => "HZ-GB-2312", + "big5-hkscs" => "Big5-HKSCS", + "gbk" => "gbk", + "cns11643" => "x-euc-tw", + // + // Aliases for ISO-8859-1 + // + "latin1" => "ISO-8859-1", + "iso_8859-1" => "ISO-8859-1", + "iso8859-1" => "ISO-8859-1", + "iso8859-2" => "ISO-8859-2", + "iso8859-3" => "ISO-8859-3", + "iso8859-4" => "ISO-8859-4", + "iso8859-5" => "ISO-8859-5", + "iso8859-6" => "ISO-8859-6", + "iso8859-7" => "ISO-8859-7", + "iso8859-8" => "ISO-8859-8", + "iso8859-9" => "ISO-8859-9", + "iso8859-10" => "ISO-8859-10", + "iso8859-11" => "ISO-8859-11", + "iso8859-13" => "ISO-8859-13", + "iso8859-14" => "ISO-8859-14", + "iso8859-15" => "ISO-8859-15", + "iso_8859-1:1987" => "ISO-8859-1", + "iso-ir-100" => "ISO-8859-1", + "l1" => "ISO-8859-1", + "ibm819" => "ISO-8859-1", + "cp819" => "ISO-8859-1", + "csisolatin1" => "ISO-8859-1", + // + // Aliases for ISO-8859-2 + // + "latin2" => "ISO-8859-2", + "iso_8859-2" => "ISO-8859-2", + "iso_8859-2:1987" => "ISO-8859-2", + "iso-ir-101" => "ISO-8859-2", + "l2" => "ISO-8859-2", + "csisolatin2" => "ISO-8859-2", + // + // Aliases for ISO-8859-3 + // + "latin3" => "ISO-8859-3", + "iso_8859-3" => "ISO-8859-3", + "iso_8859-3:1988" => "ISO-8859-3", + "iso-ir-109" => "ISO-8859-3", + "l3" => "ISO-8859-3", + "csisolatin3" => "ISO-8859-3", + // + // Aliases for ISO-8859-4 + // + "latin4" => "ISO-8859-4", + "iso_8859-4" => "ISO-8859-4", + "iso_8859-4:1988" => "ISO-8859-4", + "iso-ir-110" => "ISO-8859-4", + "l4" => "ISO-8859-4", + "csisolatin4" => "ISO-8859-4", + // + // Aliases for ISO-8859-5 + // + "cyrillic" => "ISO-8859-5", + "iso_8859-5" => "ISO-8859-5", + "iso_8859-5:1988" => "ISO-8859-5", + "iso-ir-144" => "ISO-8859-5", + "csisolatincyrillic" => "ISO-8859-5", + // + // Aliases for ISO-8859-6 + // + "arabic" => "ISO-8859-6", + "iso_8859-6" => "ISO-8859-6", + "iso_8859-6:1987" => "ISO-8859-6", + "iso-ir-127" => "ISO-8859-6", + "ecma-114" => "ISO-8859-6", + "asmo-708" => "ISO-8859-6", + "csisolatinarabic" => "ISO-8859-6", + // + // Aliases for ISO-8859-6-I + // + "csiso88596i" => "ISO-8859-6-I", + // + // Aliases for ISO-8859-6-E", + // + "csiso88596e" => "ISO-8859-6-E", + // + // Aliases for ISO-8859-7", + // + "greek" => "ISO-8859-7", + "greek8" => "ISO-8859-7", + "sun_eu_greek" => "ISO-8859-7", + "iso_8859-7" => "ISO-8859-7", + "iso_8859-7:1987" => "ISO-8859-7", + "iso-ir-126" => "ISO-8859-7", + "elot_928" => "ISO-8859-7", + "ecma-118" => "ISO-8859-7", + "csisolatingreek" => "ISO-8859-7", + // + // Aliases for ISO-8859-8", + // + "hebrew" => "ISO-8859-8", + "iso_8859-8" => "ISO-8859-8", + "visual" => "ISO-8859-8", + "iso_8859-8:1988" => "ISO-8859-8", + "iso-ir-138" => "ISO-8859-8", + "csisolatinhebrew" => "ISO-8859-8", + // + // Aliases for ISO-8859-8-I", + // + "csiso88598i" => "ISO-8859-8-I", + "iso-8859-8i" => "ISO-8859-8-I", + "logical" => "ISO-8859-8-I", + // + // Aliases for ISO-8859-8-E", + // + "csiso88598e" => "ISO-8859-8-E", + // + // Aliases for ISO-8859-9", + // + "latin5" => "ISO-8859-9", + "iso_8859-9" => "ISO-8859-9", + "iso_8859-9:1989" => "ISO-8859-9", + "iso-ir-148" => "ISO-8859-9", + "l5" => "ISO-8859-9", + "csisolatin5" => "ISO-8859-9", + // + // Aliases for UTF-8", + // + "unicode-1-1-utf-8" => "UTF-8", + // nl_langinfo(CODESET) in HP/UX returns 'utf8' under UTF-8 locales", + "utf8" => "UTF-8", + // + // Aliases for Shift_JIS", + // + "x-sjis" => "Shift_JIS", + "shift-jis" => "Shift_JIS", + "ms_kanji" => "Shift_JIS", + "csshiftjis" => "Shift_JIS", + "windows-31j" => "Shift_JIS", + "cp932" => "Shift_JIS", + "sjis" => "Shift_JIS", + // + // Aliases for EUC_JP", + // + "cseucpkdfmtjapanese" => "EUC-JP", + "x-euc-jp" => "EUC-JP", + // + // Aliases for ISO-2022-JP", + // + "csiso2022jp" => "ISO-2022-JP", + // The following are really not aliases ISO-2022-JP, but sharing the same decoder", + "iso-2022-jp-2" => "ISO-2022-JP", + "csiso2022jp2" => "ISO-2022-JP", + // + // Aliases for Big5", + // + "csbig5" => "Big5", + "cn-big5" => "Big5", + // x-x-big5 is not really a alias for Big5, add it only for MS FrontPage", + "x-x-big5" => "Big5", + // Sun Solaris", + "zh_tw-big5" => "Big5", + // + // Aliases for EUC-KR", + // + "cseuckr" => "EUC-KR", + "ks_c_5601-1987" => "EUC-KR", + "iso-ir-149" => "EUC-KR", + "ks_c_5601-1989" => "EUC-KR", + "ksc_5601" => "EUC-KR", + "ksc5601" => "EUC-KR", + "korean" => "EUC-KR", + "csksc56011987" => "EUC-KR", + "5601" => "EUC-KR", + "windows-949" => "EUC-KR", + // + // Aliases for GB2312", + // + // The following are really not aliases GB2312, add them only for MS FrontPage", + "gb_2312-80" => "GB2312", + "iso-ir-58" => "GB2312", + "chinese" => "GB2312", + "csiso58gb231280" => "GB2312", + "csgb2312" => "GB2312", + "zh_cn.euc" => "GB2312", + // Sun Solaris", + "gb_2312" => "GB2312", + // + // Aliases for windows-125x ", + // + "x-cp1250" => "windows-1250", + "x-cp1251" => "windows-1251", + "x-cp1252" => "windows-1252", + "x-cp1253" => "windows-1253", + "x-cp1254" => "windows-1254", + "x-cp1255" => "windows-1255", + "x-cp1256" => "windows-1256", + "x-cp1257" => "windows-1257", + "x-cp1258" => "windows-1258", + // + // Aliases for windows-874 ", + // + "windows-874" => "windows-874", + "ibm874" => "windows-874", + "dos-874" => "windows-874", + // + // Aliases for macintosh", + // + "macintosh" => "macintosh", + "x-mac-roman" => "macintosh", + "mac" => "macintosh", + "csmacintosh" => "macintosh", + // + // Aliases for IBM866", + // + "cp866" => "IBM866", + "cp-866" => "IBM866", + "866" => "IBM866", + "csibm866" => "IBM866", + // + // Aliases for IBM850", + // + "cp850" => "IBM850", + "850" => "IBM850", + "csibm850" => "IBM850", + // + // Aliases for IBM852", + // + "cp852" => "IBM852", + "852" => "IBM852", + "csibm852" => "IBM852", + // + // Aliases for IBM855", + // + "cp855" => "IBM855", + "855" => "IBM855", + "csibm855" => "IBM855", + // + // Aliases for IBM857", + // + "cp857" => "IBM857", + "857" => "IBM857", + "csibm857" => "IBM857", + // + // Aliases for IBM862", + // + "cp862" => "IBM862", + "862" => "IBM862", + "csibm862" => "IBM862", + // + // Aliases for IBM864", + // + "cp864" => "IBM864", + "864" => "IBM864", + "csibm864" => "IBM864", + "ibm-864" => "IBM864", + // + // Aliases for T.61-8bit", + // + "t.61" => "T.61-8bit", + "iso-ir-103" => "T.61-8bit", + "csiso103t618bit" => "T.61-8bit", + // + // Aliases for UTF-7", + // + "x-unicode-2-0-utf-7" => "UTF-7", + "unicode-2-0-utf-7" => "UTF-7", + "unicode-1-1-utf-7" => "UTF-7", + "csunicode11utf7" => "UTF-7", + // + // Aliases for ISO-10646-UCS-2", + // + "csunicode" => "UTF-16BE", + "csunicode11" => "UTF-16BE", + "iso-10646-ucs-basic" => "UTF-16BE", + "csunicodeascii" => "UTF-16BE", + "iso-10646-unicode-latin1" => "UTF-16BE", + "csunicodelatin1" => "UTF-16BE", + "iso-10646" => "UTF-16BE", + "iso-10646-j-1" => "UTF-16BE", + // + // Aliases for ISO-8859-10", + // + "latin6" => "ISO-8859-10", + "iso-ir-157" => "ISO-8859-10", + "l6" => "ISO-8859-10", + // Currently .properties cannot handle : in key", + //iso_8859-10:1992" => "ISO-8859-10", + "csisolatin6" => "ISO-8859-10", + // + // Aliases for ISO-8859-15", + // + "iso_8859-15" => "ISO-8859-15", + "csisolatin9" => "ISO-8859-15", + "l9" => "ISO-8859-15", + // + // Aliases for ISO-IR-111", + // + "ecma-cyrillic" => "ISO-IR-111", + "csiso111ecmacyrillic" => "ISO-IR-111", + // + // Aliases for ISO-2022-KR", + // + "csiso2022kr" => "ISO-2022-KR", + // + // Aliases for VISCII", + // + "csviscii" => "VISCII", + // + // Aliases for x-euc-tw", + // + "zh_tw-euc" => "x-euc-tw", + // + // Following names appears in unix nl_langinfo(CODESET)", + // They can be compiled as platform specific if necessary", + // DONT put things here if it does not look generic enough (like hp15CN)", + // + "iso88591" => "ISO-8859-1", + "iso88592" => "ISO-8859-2", + "iso88593" => "ISO-8859-3", + "iso88594" => "ISO-8859-4", + "iso88595" => "ISO-8859-5", + "iso88596" => "ISO-8859-6", + "iso88597" => "ISO-8859-7", + "iso88598" => "ISO-8859-8", + "iso88599" => "ISO-8859-9", + "iso885910" => "ISO-8859-10", + "iso885911" => "ISO-8859-11", + "iso885912" => "ISO-8859-12", + "iso885913" => "ISO-8859-13", + "iso885914" => "ISO-8859-14", + "iso885915" => "ISO-8859-15", + "cp1250" => "windows-1250", + "cp1251" => "windows-1251", + "cp1252" => "windows-1252", + "cp1253" => "windows-1253", + "cp1254" => "windows-1254", + "cp1255" => "windows-1255", + "cp1256" => "windows-1256", + "cp1257" => "windows-1257", + "cp1258" => "windows-1258", + "x-gbk" => "gbk", + "windows-936" => "gbk", + "ansi-1251" => "windows-1251", + ]; + + /** + * Returns proper encoding mapping, if exsists. If it doesn't, return unchanged $encoding + * @param string $encoding + * @param string|null $fallback + * + * @return string + */ + public static function get($encoding, $fallback = null) { + if (isset(self::$aliases[strtolower($encoding)])) { + return self::$aliases[strtolower($encoding)]; + } + return $fallback !== null ? $fallback : $encoding; + } + +} diff --git a/htdocs/includes/webklex/php-imap/src/Events/Event.php b/htdocs/includes/webklex/php-imap/src/Events/Event.php new file mode 100644 index 00000000000..921f28b25ed --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Events/Event.php @@ -0,0 +1,28 @@ +message = $arguments[0]; + $this->flag = $arguments[1]; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Events/FolderDeletedEvent.php b/htdocs/includes/webklex/php-imap/src/Events/FolderDeletedEvent.php new file mode 100644 index 00000000000..89b5083f975 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Events/FolderDeletedEvent.php @@ -0,0 +1,22 @@ +old_folder = $folders[0]; + $this->new_folder = $folders[1]; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Events/FolderNewEvent.php b/htdocs/includes/webklex/php-imap/src/Events/FolderNewEvent.php new file mode 100644 index 00000000000..d16bbbd67b6 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Events/FolderNewEvent.php @@ -0,0 +1,35 @@ +folder = $folders[0]; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Events/MessageCopiedEvent.php b/htdocs/includes/webklex/php-imap/src/Events/MessageCopiedEvent.php new file mode 100644 index 00000000000..a6a3a447f50 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Events/MessageCopiedEvent.php @@ -0,0 +1,22 @@ +old_message = $messages[0]; + $this->new_message = $messages[1]; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Events/MessageNewEvent.php b/htdocs/includes/webklex/php-imap/src/Events/MessageNewEvent.php new file mode 100644 index 00000000000..1487e28d6bd --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Events/MessageNewEvent.php @@ -0,0 +1,35 @@ +message = $messages[0]; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Events/MessageRestoredEvent.php b/htdocs/includes/webklex/php-imap/src/Events/MessageRestoredEvent.php new file mode 100644 index 00000000000..25b6520a740 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Events/MessageRestoredEvent.php @@ -0,0 +1,22 @@ +client = $client; + + $this->events["message"] = $client->getDefaultEvents("message"); + $this->events["folder"] = $client->getDefaultEvents("folder"); + + $this->setDelimiter($delimiter); + $this->path = $folder_name; + $this->full_name = $this->decodeName($folder_name); + $this->name = $this->getSimpleName($this->delimiter, $this->full_name); + + $this->parseAttributes($attributes); + } + + /** + * Get a new search query instance + * @param string $charset + * + * @return WhereQuery + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function query($charset = 'UTF-8'){ + $this->getClient()->checkConnection(); + $this->getClient()->openFolder($this->path); + + return new WhereQuery($this->getClient(), $charset); + } + + /** + * @inheritdoc self::query($charset = 'UTF-8') + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function search($charset = 'UTF-8'){ + return $this->query($charset); + } + + /** + * @inheritdoc self::query($charset = 'UTF-8') + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function messages($charset = 'UTF-8'){ + return $this->query($charset); + } + + /** + * Determine if folder has children. + * + * @return bool + */ + public function hasChildren() { + return $this->has_children; + } + + /** + * Set children. + * @param FolderCollection|array $children + * + * @return self + */ + public function setChildren($children = []) { + $this->children = $children; + + return $this; + } + + /** + * Decode name. + * It converts UTF7-IMAP encoding to UTF-8. + * @param $name + * + * @return mixed|string + */ + protected function decodeName($name) { + return mb_convert_encoding($name, "UTF-8", "UTF7-IMAP"); + } + + /** + * Get simple name (without parent folders). + * @param $delimiter + * @param $full_name + * + * @return mixed + */ + protected function getSimpleName($delimiter, $full_name) { + $arr = explode($delimiter, $full_name); + + return end($arr); + } + + /** + * Parse attributes and set it to object properties. + * @param $attributes + */ + protected function parseAttributes($attributes) { + $this->no_inferiors = in_array('\NoInferiors', $attributes) ? true : false; + $this->no_select = in_array('\NoSelect', $attributes) ? true : false; + $this->marked = in_array('\Marked', $attributes) ? true : false; + $this->referral = in_array('\Referral', $attributes) ? true : false; + $this->has_children = in_array('\HasChildren', $attributes) ? true : false; + } + + /** + * Move or rename the current folder + * @param string $new_name + * @param boolean $expunge + * + * @return bool + * @throws ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function move($new_name, $expunge = true) { + $this->client->checkConnection(); + $status = $this->client->getConnection()->renameFolder($this->full_name, $new_name); + if($expunge) $this->client->expunge(); + + $folder = $this->client->getFolder($new_name); + $event = $this->getEvent("folder", "moved"); + $event::dispatch($this, $folder); + + return $status; + } + + /** + * Get a message overview + * @param string|null $sequence uid sequence + * + * @return array + * @throws ConnectionFailedException + * @throws Exceptions\InvalidMessageDateException + * @throws Exceptions\MessageNotFoundException + * @throws Exceptions\RuntimeException + */ + public function overview($sequence = null){ + $this->client->openFolder($this->path); + $sequence = $sequence === null ? "1:*" : $sequence; + $uid = ClientManager::get('options.sequence', IMAP::ST_MSGN) == IMAP::ST_UID; + return $this->client->getConnection()->overview($sequence, $uid); + } + + /** + * Append a string message to the current mailbox + * @param string $message + * @param string $options + * @param string $internal_date + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function appendMessage($message, $options = null, $internal_date = null) { + /** + * Check if $internal_date is parsed. If it is null it should not be set. Otherwise the message can't be stored. + * If this parameter is set, it will set the INTERNALDATE on the appended message. The parameter should be a + * date string that conforms to the rfc2060 specifications for a date_time value or be a Carbon object. + */ + + if ($internal_date != null) { + if ($internal_date instanceof Carbon){ + $internal_date = $internal_date->format('d-M-Y H:i:s O'); + } + } + + return $this->client->getConnection()->appendMessage($this->full_name, $message, $options, $internal_date); + } + + /** + * Rename the current folder + * @param string $new_name + * @param boolean $expunge + * + * @return bool + * @throws ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function rename($new_name, $expunge = true) { + return $this->move($new_name, $expunge); + } + + /** + * Delete the current folder + * @param boolean $expunge + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + * @throws Exceptions\EventNotFoundException + */ + public function delete($expunge = true) { + $status = $this->client->getConnection()->deleteFolder($this->path); + if($expunge) $this->client->expunge(); + + $event = $this->getEvent("folder", "deleted"); + $event::dispatch($this); + + return $status; + } + + /** + * Subscribe the current folder + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function subscribe() { + $this->client->openFolder($this->path); + return $this->client->getConnection()->subscribeFolder($this->path); + } + + /** + * Unsubscribe the current folder + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function unsubscribe() { + $this->client->openFolder($this->path); + return $this->client->getConnection()->unsubscribeFolder($this->path); + } + + /** + * Idle the current connection + * @param callable $callback + * @param integer $timeout max 1740 seconds - recommended by rfc2177 §3 + * @param boolean $auto_reconnect try to reconnect on connection close + * + * @throws ConnectionFailedException + * @throws Exceptions\InvalidMessageDateException + * @throws Exceptions\MessageContentFetchingException + * @throws Exceptions\MessageHeaderFetchingException + * @throws Exceptions\RuntimeException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\MessageFlagException + * @throws Exceptions\MessageNotFoundException + */ + public function idle(callable $callback, $timeout = 1200, $auto_reconnect = false) { + $this->client->getConnection()->setConnectionTimeout($timeout); + + $this->client->reconnect(); + $this->client->openFolder($this->path, true); + $connection = $this->client->getConnection(); + + $sequence = ClientManager::get('options.sequence', IMAP::ST_MSGN); + $connection->idle(); + + while (true) { + try { + $line = $connection->nextLine(); + if (($pos = strpos($line, "EXISTS")) !== false) { + $msgn = (int) substr($line, 2, $pos -2); + $connection->done(); + + $this->client->openFolder($this->path, true); + $message = $this->query()->getMessageByMsgn($msgn); + $message->setSequence($sequence); + $callback($message); + + $event = $this->getEvent("message", "new"); + $event::dispatch($message); + + $connection->idle(); + } + }catch (Exceptions\RuntimeException $e) { + if(strpos($e->getMessage(), "connection closed") === false) { + throw $e; + } + if ($auto_reconnect === true) { + $this->client->reconnect(); + $this->client->openFolder($this->path, true); + + $connection = $this->client->getConnection(); + $connection->idle(); + } + } + } + } + + /** + * Get folder status information + * + * @return array|bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function getStatus() { + return $this->examine(); + } + + /** + * Examine the current folder + * + * @return array + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function examine() { + return $this->client->getConnection()->examineFolder($this->path); + } + + /** + * Get the current Client instance + * + * @return Client + */ + public function getClient() { + return $this->client; + } + + /** + * Set the delimiter + * @param $delimiter + */ + public function setDelimiter($delimiter){ + if(in_array($delimiter, [null, '', ' ', false]) === true) { + $delimiter = ClientManager::get('options.delimiter', '/'); + } + + $this->delimiter = $delimiter; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Header.php b/htdocs/includes/webklex/php-imap/src/Header.php new file mode 100644 index 00000000000..9fecd69fa3c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Header.php @@ -0,0 +1,753 @@ +raw = $raw_header; + $this->config = ClientManager::get('options'); + $this->attributize = $attributize; + $this->parse(); + } + + /** + * Call dynamic attribute setter and getter methods + * @param string $method + * @param array $arguments + * + * @return Attribute|mixed + * @throws MethodNotFoundException + */ + public function __call($method, $arguments) { + if(strtolower(substr($method, 0, 3)) === 'get') { + $name = preg_replace('/(.)(?=[A-Z])/u', '$1_', substr(strtolower($method), 3)); + + if(in_array($name, array_keys($this->attributes))) { + return $this->attributes[$name]; + } + + } + + throw new MethodNotFoundException("Method ".self::class.'::'.$method.'() is not supported'); + } + + /** + * Magic getter + * @param $name + * + * @return Attribute|null + */ + public function __get($name) { + return $this->get($name); + } + + /** + * Get a specific header attribute + * @param $name + * + * @return Attribute|mixed + */ + public function get($name) { + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + return null; + } + + /** + * Set a specific attribute + * @param string $name + * @param array|mixed $value + * @param boolean $strict + * + * @return Attribute + */ + public function set($name, $value, $strict = false) { + if(isset($this->attributes[$name]) && $strict === false) { + if ($this->attributize) { + $this->attributes[$name]->add($value, true); + }else{ + if(isset($this->attributes[$name])) { + if (is_array($this->attributes[$name]) == false) { + $this->attributes[$name] = [$this->attributes[$name], $value]; + }else{ + $this->attributes[$name][] = $value; + } + }else{ + $this->attributes[$name] = $value; + } + } + }elseif($this->attributize == false){ + $this->attributes[$name] = $value; + }else{ + $this->attributes[$name] = new Attribute($name, $value); + } + + return $this->attributes[$name]; + } + + /** + * Perform a regex match all on the raw header and return the first result + * @param $pattern + * + * @return mixed|null + */ + public function find($pattern) { + if (preg_match_all($pattern, $this->raw, $matches)) { + if (isset($matches[1])) { + if(count($matches[1]) > 0) { + return $matches[1][0]; + } + } + } + return null; + } + + /** + * Try to find a boundary if possible + * + * @return string|null + */ + public function getBoundary(){ + $boundary = $this->find("/boundary\=(.*)/i"); + + if ($boundary === null) { + return null; + } + + return $this->clearBoundaryString($boundary); + } + + /** + * Remove all unwanted chars from a given boundary + * @param string $str + * + * @return string + */ + private function clearBoundaryString($str) { + return str_replace(['"', '\r', '\n', "\n", "\r", ";", "\s"], "", $str); + } + + /** + * Parse the raw headers + * + * @throws InvalidMessageDateException + */ + protected function parse(){ + $header = $this->rfc822_parse_headers($this->raw); + + $this->extractAddresses($header); + + if (property_exists($header, 'subject')) { + $this->set("subject", $this->decode($header->subject)); + } + if (property_exists($header, 'references')) { + $this->set("references", $this->decode($header->references)); + } + if (property_exists($header, 'message_id')) { + $this->set("message_id", str_replace(['<', '>'], '', $header->message_id)); + } + + $this->parseDate($header); + foreach ($header as $key => $value) { + $key = trim(rtrim(strtolower($key))); + if(!isset($this->attributes[$key])){ + $this->set($key, $value); + } + } + + $this->extractHeaderExtensions(); + $this->findPriority(); + } + + /** + * Parse mail headers from a string + * @link https://php.net/manual/en/function.imap-rfc822-parse-headers.php + * @param $raw_headers + * + * @return object + */ + public function rfc822_parse_headers($raw_headers){ + $headers = []; + $imap_headers = []; + if (extension_loaded('imap') && $this->config["rfc822"]) { + $raw_imap_headers = (array) \imap_rfc822_parse_headers($this->raw); + foreach($raw_imap_headers as $key => $values) { + $key = str_replace("-", "_", $key); + $imap_headers[$key] = $values; + } + } + $lines = explode("\r\n", str_replace("\r\n\t", ' ', $raw_headers)); + $prev_header = null; + foreach($lines as $line) { + if (substr($line, 0, 1) === "\n") { + $line = substr($line, 1); + } + + if (substr($line, 0, 1) === "\t") { + $line = substr($line, 1); + $line = trim(rtrim($line)); + if ($prev_header !== null) { + $headers[$prev_header][] = $line; + } + }elseif (substr($line, 0, 1) === " ") { + $line = substr($line, 1); + $line = trim(rtrim($line)); + if ($prev_header !== null) { + if (!isset($headers[$prev_header])) { + $headers[$prev_header] = ""; + } + if (is_array($headers[$prev_header])) { + $headers[$prev_header][] = $line; + }else{ + $headers[$prev_header] .= $line; + } + } + }else{ + if (($pos = strpos($line, ":")) > 0) { + $key = trim(rtrim(strtolower(substr($line, 0, $pos)))); + $key = str_replace("-", "_", $key); + + $value = trim(rtrim(substr($line, $pos + 1))); + if (isset($headers[$key])) { + $headers[$key][] = $value; + }else{ + $headers[$key] = [$value]; + } + $prev_header = $key; + } + } + } + + foreach($headers as $key => $values) { + if (isset($imap_headers[$key])) continue; + $value = null; + switch($key){ + case 'from': + case 'to': + case 'cc': + case 'bcc': + case 'reply_to': + case 'sender': + $value = $this->decodeAddresses($values); + $headers[$key."address"] = implode(", ", $values); + break; + case 'subject': + $value = implode(" ", $values); + break; + default: + if (is_array($values)) { + foreach($values as $k => $v) { + if ($v == "") { + unset($values[$k]); + } + } + $available_values = count($values); + if ($available_values === 1) { + $value = array_pop($values); + } elseif ($available_values === 2) { + $value = implode(" ", $values); + } elseif ($available_values > 2) { + $value = array_values($values); + } else { + $value = ""; + } + } + break; + } + $headers[$key] = $value; + } + + return (object) array_merge($headers, $imap_headers); + } + + /** + * Decode MIME header elements + * @link https://php.net/manual/en/function.imap-mime-header-decode.php + * @param string $text The MIME text + * + * @return array The decoded elements are returned in an array of objects, where each + * object has two properties, charset and text. + */ + public function mime_header_decode($text){ + if (extension_loaded('imap')) { + return \imap_mime_header_decode($text); + } + $charset = $this->getEncoding($text); + return [(object)[ + "charset" => $charset, + "text" => $this->convertEncoding($text, $charset) + ]]; + } + + /** + * Check if a given pair of strings has ben decoded + * @param $encoded + * @param $decoded + * + * @return bool + */ + private function notDecoded($encoded, $decoded) { + return 0 === strpos($decoded, '=?') + && strlen($decoded) - 2 === strpos($decoded, '?=') + && false !== strpos($encoded, $decoded); + } + + /** + * Convert the encoding + * @param $str + * @param string $from + * @param string $to + * + * @return mixed|string + */ + public function convertEncoding($str, $from = "ISO-8859-2", $to = "UTF-8") { + + $from = EncodingAliases::get($from, $this->fallback_encoding); + $to = EncodingAliases::get($to, $this->fallback_encoding); + + if ($from === $to) { + return $str; + } + + // We don't need to do convertEncoding() if charset is ASCII (us-ascii): + // ASCII is a subset of UTF-8, so all ASCII files are already UTF-8 encoded + // https://stackoverflow.com/a/11303410 + // + // us-ascii is the same as ASCII: + // ASCII is the traditional name for the encoding system; the Internet Assigned Numbers Authority (IANA) + // prefers the updated name US-ASCII, which clarifies that this system was developed in the US and + // based on the typographical symbols predominantly in use there. + // https://en.wikipedia.org/wiki/ASCII + // + // convertEncoding() function basically means convertToUtf8(), so when we convert ASCII string into UTF-8 it gets broken. + if (strtolower($from) == 'us-ascii' && $to == 'UTF-8') { + return $str; + } + + try { + if (function_exists('iconv') && $from != 'UTF-7' && $to != 'UTF-7') { + return iconv($from, $to, $str); + } else { + if (!$from) { + return mb_convert_encoding($str, $to); + } + return mb_convert_encoding($str, $to, $from); + } + } catch (\Exception $e) { + if (strstr($from, '-')) { + $from = str_replace('-', '', $from); + return $this->convertEncoding($str, $from, $to); + } else { + return $str; + } + } + } + + /** + * Get the encoding of a given abject + * @param object|string $structure + * + * @return string + */ + public function getEncoding($structure) { + if (property_exists($structure, 'parameters')) { + foreach ($structure->parameters as $parameter) { + if (strtolower($parameter->attribute) == "charset") { + return EncodingAliases::get($parameter->value, $this->fallback_encoding); + } + } + }elseif (property_exists($structure, 'charset')) { + return EncodingAliases::get($structure->charset, $this->fallback_encoding); + }elseif (is_string($structure) === true){ + return mb_detect_encoding($structure); + } + + return $this->fallback_encoding; + } + + /** + * Test if a given value is utf-8 encoded + * @param $value + * + * @return bool + */ + private function is_uft8($value) { + return strpos(strtolower($value), '=?utf-8?') === 0; + } + + /** + * Try to decode a specific header + * @param mixed $value + * + * @return mixed + */ + private function decode($value) { + if (is_array($value)) { + return $this->decodeArray($value); + } + $original_value = $value; + $decoder = $this->config['decoder']['message']; + + if ($value !== null) { + $is_utf8_base = $this->is_uft8($value); + + if($decoder === 'utf-8' && extension_loaded('imap')) { + $value = \imap_utf8($value); + $is_utf8_base = $this->is_uft8($value); + if ($is_utf8_base) { + $value = mb_decode_mimeheader($value); + } + if ($this->notDecoded($original_value, $value)) { + $decoded_value = $this->mime_header_decode($value); + if (count($decoded_value) > 0) { + if(property_exists($decoded_value[0], "text")) { + $value = $decoded_value[0]->text; + } + } + } + }elseif($decoder === 'iconv' && $is_utf8_base) { + $value = iconv_mime_decode($value); + }elseif($is_utf8_base){ + $value = mb_decode_mimeheader($value); + } + + if ($this->is_uft8($value)) { + $value = mb_decode_mimeheader($value); + } + + if ($this->notDecoded($original_value, $value)) { + $value = $this->convertEncoding($original_value, $this->getEncoding($original_value)); + } + } + + return $value; + } + + /** + * Decode a given array + * @param array $values + * + * @return array + */ + private function decodeArray($values) { + foreach($values as $key => $value) { + $values[$key] = $this->decode($value); + } + return $values; + } + + /** + * Try to extract the priority from a given raw header string + */ + private function findPriority() { + if(($priority = $this->get("x_priority")) === null) return; + switch((int)"$priority"){ + case IMAP::MESSAGE_PRIORITY_HIGHEST; + $priority = IMAP::MESSAGE_PRIORITY_HIGHEST; + break; + case IMAP::MESSAGE_PRIORITY_HIGH; + $priority = IMAP::MESSAGE_PRIORITY_HIGH; + break; + case IMAP::MESSAGE_PRIORITY_NORMAL; + $priority = IMAP::MESSAGE_PRIORITY_NORMAL; + break; + case IMAP::MESSAGE_PRIORITY_LOW; + $priority = IMAP::MESSAGE_PRIORITY_LOW; + break; + case IMAP::MESSAGE_PRIORITY_LOWEST; + $priority = IMAP::MESSAGE_PRIORITY_LOWEST; + break; + default: + $priority = IMAP::MESSAGE_PRIORITY_UNKNOWN; + break; + } + + $this->set("priority", $priority); + } + + /** + * Extract a given part as address array from a given header + * @param $values + * + * @return array + */ + private function decodeAddresses($values) { + $addresses = []; + + if (extension_loaded('mailparse') && $this->config["rfc822"]) { + foreach ($values as $address) { + foreach (\mailparse_rfc822_parse_addresses($address) as $parsed_address) { + if (isset($parsed_address['address'])) { + $mail_address = explode('@', $parsed_address['address']); + if (count($mail_address) == 2) { + $addresses[] = (object)[ + "personal" => isset($parsed_address['display']) ? $parsed_address['display'] : '', + "mailbox" => $mail_address[0], + "host" => $mail_address[1], + ]; + } + } + } + } + + return $addresses; + } + + foreach($values as $address) { + foreach (preg_split('/, (?=(?:[^"]*"[^"]*")*[^"]*$)/', $address) as $split_address) { + $split_address = trim(rtrim($split_address)); + + if (strpos($split_address, ",") == strlen($split_address) - 1) { + $split_address = substr($split_address, 0, -1); + } + if (preg_match( + '/^(?:(?P.+)\s)?(?(name)<|[^\s]+?)(?(name)>|>?)$/', + $split_address, + $matches + )) { + $name = trim(rtrim($matches["name"])); + $email = trim(rtrim($matches["email"])); + list($mailbox, $host) = array_pad(explode("@", $email), 2, null); + $addresses[] = (object)[ + "personal" => $name, + "mailbox" => $mailbox, + "host" => $host, + ]; + } + } + } + + return $addresses; + } + + /** + * Extract a given part as address array from a given header + * @param object $header + */ + private function extractAddresses($header) { + foreach(['from', 'to', 'cc', 'bcc', 'reply_to', 'sender'] as $key){ + if (property_exists($header, $key)) { + $this->set($key, $this->parseAddresses($header->$key)); + } + } + } + + /** + * Parse Addresses + * @param $list + * + * @return array + */ + private function parseAddresses($list) { + $addresses = []; + + if (is_array($list) === false) { + return $addresses; + } + + foreach ($list as $item) { + $address = (object) $item; + + if (!property_exists($address, 'mailbox')) { + $address->mailbox = false; + } + if (!property_exists($address, 'host')) { + $address->host = false; + } + if (!property_exists($address, 'personal')) { + $address->personal = false; + } else { + $personalParts = $this->mime_header_decode($address->personal); + + if(is_array($personalParts)) { + $address->personal = ''; + foreach ($personalParts as $p) { + $address->personal .= $this->convertEncoding($p->text, $this->getEncoding($p)); + } + } + + if (strpos($address->personal, "'") === 0) { + $address->personal = str_replace("'", "", $address->personal); + } + } + + $address->mail = ($address->mailbox && $address->host) ? $address->mailbox.'@'.$address->host : false; + $address->full = ($address->personal) ? $address->personal.' <'.$address->mail.'>' : $address->mail; + + $addresses[] = new Address($address); + } + + return $addresses; + } + + /** + * Search and extract potential header extensions + */ + private function extractHeaderExtensions(){ + foreach ($this->attributes as $key => $value) { + if (is_array($value)) { + $value = implode(", ", $value); + }else{ + $value = (string)$value; + } + // Only parse strings and don't parse any attributes like the user-agent + if (in_array($key, ["user_agent"]) === false) { + if (($pos = strpos($value, ";")) !== false){ + $original = substr($value, 0, $pos); + $this->set($key, trim(rtrim($original)), true); + + // Get all potential extensions + $extensions = explode(";", substr($value, $pos + 1)); + foreach($extensions as $extension) { + if (($pos = strpos($extension, "=")) !== false){ + $key = substr($extension, 0, $pos); + $key = trim(rtrim(strtolower($key))); + + if (isset($this->attributes[$key]) === false) { + $value = substr($extension, $pos + 1); + $value = str_replace('"', "", $value); + $value = trim(rtrim($value)); + + $this->set($key, $value); + } + } + } + } + } + } + } + + /** + * Exception handling for invalid dates + * + * Currently known invalid formats: + * ^ Datetime ^ Problem ^ Cause + * | Mon, 20 Nov 2017 20:31:31 +0800 (GMT+8:00) | Double timezone specification | A Windows feature + * | Thu, 8 Nov 2018 08:54:58 -0200 (-02) | + * | | and invalid timezone (max 6 char) | + * | 04 Jan 2018 10:12:47 UT | Missing letter "C" | Unknown + * | Thu, 31 May 2018 18:15:00 +0800 (added by) | Non-standard details added by the | Unknown + * | | mail server | + * | Sat, 31 Aug 2013 20:08:23 +0580 | Invalid timezone | PHPMailer bug https://sourceforge.net/p/phpmailer/mailman/message/6132703/ + * + * Please report any new invalid timestamps to [#45](https://github.com/Webklex/php-imap/issues) + * + * @param object $header + * + * @throws InvalidMessageDateException + */ + private function parseDate($header) { + + if (property_exists($header, 'date')) { + $parsed_date = null; + $date = $header->date; + + if(preg_match('/\+0580/', $date)) { + $date = str_replace('+0580', '+0530', $date); + } + + $date = trim(rtrim($date)); + try { + $parsed_date = Carbon::parse($date); + } catch (\Exception $e) { + switch (true) { + case preg_match('/([0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ UT)+$/i', $date) > 0: + case preg_match('/([A-Z]{2,3}\,\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ UT)+$/i', $date) > 0: + $date .= 'C'; + break; + case preg_match('/([A-Z]{2,3}\,\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ \+[0-9]{2,4}\ \(\+[0-9]{1,2}\))+$/i', $date) > 0: + case preg_match('/([A-Z]{2,3}[\,|\ \,]\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}.*)+$/i', $date) > 0: + case preg_match('/([A-Z]{2,3}\,\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ [\-|\+][0-9]{4}\ \(.*)\)+$/i', $date) > 0: + case preg_match('/([A-Z]{2,3}\, \ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ [\-|\+][0-9]{4}\ \(.*)\)+$/i', $date) > 0: + case preg_match('/([0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{2,4}\ [0-9]{2}\:[0-9]{2}\:[0-9]{2}\ [A-Z]{2}\ \-[0-9]{2}\:[0-9]{2}\ \([A-Z]{2,3}\ \-[0-9]{2}:[0-9]{2}\))+$/i', $date) > 0: + $array = explode('(', $date); + $array = array_reverse($array); + $date = trim(array_pop($array)); + break; + } + try{ + $parsed_date = Carbon::parse($date); + } catch (\Exception $_e) { + throw new InvalidMessageDateException("Invalid message date. ID:".$this->get("message_id"), 1100, $e); + } + } + + $this->set("date", $parsed_date); + } + } + + /** + * Get all available attributes + * + * @return array + */ + public function getAttributes() { + return $this->attributes; + } + +} diff --git a/htdocs/includes/webklex/php-imap/src/IMAP.php b/htdocs/includes/webklex/php-imap/src/IMAP.php new file mode 100644 index 00000000000..41ae8248b61 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/IMAP.php @@ -0,0 +1,375 @@ +imap_close + * @link http://php.net/manual/en/imap.constants.php + */ + const CL_EXPUNGE = 32768; + + /** + * The parameter is a UID + * @link http://php.net/manual/en/imap.constants.php + */ + const FT_UID = 1; + + /** + * Do not set the \Seen flag if not already set + * @link http://php.net/manual/en/imap.constants.php + */ + const FT_PEEK = 2; + const FT_NOT = 4; + + /** + * The return string is in internal format, will not canonicalize to CRLF. + * @link http://php.net/manual/en/imap.constants.php + */ + const FT_INTERNAL = 8; + const FT_PREFETCHTEXT = 32; + + /** + * The sequence argument contains UIDs instead of sequence numbers + * @link http://php.net/manual/en/imap.constants.php + */ + const ST_UID = 1; + const ST_SILENT = 2; + const ST_MSGN = 3; + const ST_SET = 4; + + /** + * the sequence numbers contain UIDS + * @link http://php.net/manual/en/imap.constants.php + */ + const CP_UID = 1; + + /** + * Delete the messages from the current mailbox after copying + * with imap_mail_copy + * @link http://php.net/manual/en/imap.constants.php + */ + const CP_MOVE = 2; + + /** + * Return UIDs instead of sequence numbers + * @link http://php.net/manual/en/imap.constants.php + */ + const SE_UID = 1; + const SE_FREE = 2; + + /** + * Don't prefetch searched messages + * @link http://php.net/manual/en/imap.constants.php + */ + const SE_NOPREFETCH = 4; + const SO_FREE = 8; + const SO_NOSERVER = 16; + const SA_MESSAGES = 1; + const SA_RECENT = 2; + const SA_UNSEEN = 4; + const SA_UIDNEXT = 8; + const SA_UIDVALIDITY = 16; + const SA_ALL = 31; + + /** + * This mailbox has no "children" (there are no + * mailboxes below this one). + * @link http://php.net/manual/en/imap.constants.php + */ + const LATT_NOINFERIORS = 1; + + /** + * This is only a container, not a mailbox - you + * cannot open it. + * @link http://php.net/manual/en/imap.constants.php + */ + const LATT_NOSELECT = 2; + + /** + * This mailbox is marked. Only used by UW-IMAPD. + * @link http://php.net/manual/en/imap.constants.php + */ + const LATT_MARKED = 4; + + /** + * This mailbox is not marked. Only used by + * UW-IMAPD. + * @link http://php.net/manual/en/imap.constants.php + */ + const LATT_UNMARKED = 8; + const LATT_REFERRAL = 16; + const LATT_HASCHILDREN = 32; + const LATT_HASNOCHILDREN = 64; + + /** + * Sort criteria for imap_sort: + * message Date + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTDATE = 0; + + /** + * Sort criteria for imap_sort: + * arrival date + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTARRIVAL = 1; + + /** + * Sort criteria for imap_sort: + * mailbox in first From address + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTFROM = 2; + + /** + * Sort criteria for imap_sort: + * message subject + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTSUBJECT = 3; + + /** + * Sort criteria for imap_sort: + * mailbox in first To address + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTTO = 4; + + /** + * Sort criteria for imap_sort: + * mailbox in first cc address + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTCC = 5; + + /** + * Sort criteria for imap_sort: + * size of message in octets + * @link http://php.net/manual/en/imap.constants.php + */ + const SORTSIZE = 6; + const TYPETEXT = 0; + const TYPEMULTIPART = 1; + const TYPEMESSAGE = 2; + const TYPEAPPLICATION = 3; + const TYPEAUDIO = 4; + const TYPEIMAGE = 5; + const TYPEVIDEO = 6; + const TYPEMODEL = 7; + const TYPEOTHER = 8; + const ENC7BIT = 0; + const ENC8BIT = 1; + const ENCBINARY = 2; + const ENCBASE64 = 3; + const ENCQUOTEDPRINTABLE = 4; + const ENCOTHER = 5; + + /** + * Garbage collector, clear message cache elements. + * @link http://php.net/manual/en/imap.constants.php + */ + const IMAP_GC_ELT = 1; + + /** + * Garbage collector, clear envelopes and bodies. + * @link http://php.net/manual/en/imap.constants.php + */ + const IMAP_GC_ENV = 2; + + /** + * Garbage collector, clear texts. + * @link http://php.net/manual/en/imap.constants.php + */ + const IMAP_GC_TEXTS = 4; + +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Message.php b/htdocs/includes/webklex/php-imap/src/Message.php new file mode 100755 index 00000000000..90ed1a89141 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Message.php @@ -0,0 +1,1419 @@ +boot(); + + $default_mask = $client->getDefaultMessageMask(); + if($default_mask != null) { + $this->mask = $default_mask; + } + $this->events["message"] = $client->getDefaultEvents("message"); + $this->events["flag"] = $client->getDefaultEvents("flag"); + + $this->folder_path = $client->getFolderPath(); + + $this->setSequence($sequence); + $this->setFetchOption($fetch_options); + $this->setFetchBodyOption($fetch_body); + $this->setFetchFlagsOption($fetch_flags); + + $this->client = $client; + $this->client->openFolder($this->folder_path); + + $this->setSequenceId($uid, $msglist); + + if ($this->fetch_options == IMAP::FT_PEEK) { + $this->parseFlags(); + } + + $this->parseHeader(); + + if ($this->getFetchBodyOption() === true) { + $this->parseBody(); + } + + if ($this->getFetchFlagsOption() === true && $this->fetch_options !== IMAP::FT_PEEK) { + $this->parseFlags(); + } + } + + /** + * Create a new instance without fetching the message header and providing them raw instead + * @param int $uid + * @param int|null $msglist + * @param Client $client + * @param string $raw_header + * @param string $raw_body + * @param array $raw_flags + * @param null $fetch_options + * @param null $sequence + * + * @return Message + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws ReflectionException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + * @throws Exceptions\MessageNotFoundException + */ + public static function make($uid, $msglist, Client $client, $raw_header, $raw_body, $raw_flags, $fetch_options = null, $sequence = null){ + $reflection = new ReflectionClass(self::class); + /** @var self $instance */ + $instance = $reflection->newInstanceWithoutConstructor(); + $instance->boot(); + + $default_mask = $client->getDefaultMessageMask(); + if($default_mask != null) { + $instance->setMask($default_mask); + } + $instance->setEvents([ + "message" => $client->getDefaultEvents("message"), + "flag" => $client->getDefaultEvents("flag"), + ]); + $instance->setFolderPath($client->getFolderPath()); + $instance->setSequence($sequence); + $instance->setFetchOption($fetch_options); + + $instance->setClient($client); + $instance->setSequenceId($uid, $msglist); + + $instance->parseRawHeader($raw_header); + $instance->parseRawFlags($raw_flags); + $instance->parseRawBody($raw_body); + $instance->peek(); + + return $instance; + } + + /** + * Boot a new instance + */ + public function boot(){ + $this->attributes = []; + + $this->config = ClientManager::get('options'); + $this->available_flags = ClientManager::get('flags'); + + $this->attachments = AttachmentCollection::make([]); + $this->flags = FlagCollection::make([]); + } + + /** + * Call dynamic attribute setter and getter methods + * @param string $method + * @param array $arguments + * + * @return mixed + * @throws MethodNotFoundException + */ + public function __call($method, $arguments) { + if(strtolower(substr($method, 0, 3)) === 'get') { + $name = Str::snake(substr($method, 3)); + return $this->get($name); + }elseif (strtolower(substr($method, 0, 3)) === 'set') { + $name = Str::snake(substr($method, 3)); + + if(in_array($name, array_keys($this->attributes))) { + return $this->__set($name, array_pop($arguments)); + } + + } + + throw new MethodNotFoundException("Method ".self::class.'::'.$method.'() is not supported'); + } + + /** + * Magic setter + * @param $name + * @param $value + * + * @return mixed + */ + public function __set($name, $value) { + $this->attributes[$name] = $value; + + return $this->attributes[$name]; + } + + /** + * Magic getter + * @param $name + * + * @return Attribute|mixed|null + */ + public function __get($name) { + return $this->get($name); + } + + /** + * Get an available message or message header attribute + * @param $name + * + * @return Attribute|mixed|null + */ + public function get($name) { + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + return $this->header->get($name); + } + + /** + * Check if the Message has a text body + * + * @return bool + */ + public function hasTextBody() { + return isset($this->bodies['text']); + } + + /** + * Get the Message text body + * + * @return mixed + */ + public function getTextBody() { + if (!isset($this->bodies['text'])) { + return null; + } + + return $this->bodies['text']; + } + + /** + * Check if the Message has a html body + * + * @return bool + */ + public function hasHTMLBody() { + return isset($this->bodies['html']); + } + + /** + * Get the Message html body + * + * @return string|null + */ + public function getHTMLBody() { + if (!isset($this->bodies['html'])) { + return null; + } + + return $this->bodies['html']; + } + + /** + * Parse all defined headers + * + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + * @throws InvalidMessageDateException + * @throws MessageHeaderFetchingException + */ + private function parseHeader() { + $sequence_id = $this->getSequenceId(); + $headers = $this->client->getConnection()->headers([$sequence_id], "RFC822", $this->sequence === IMAP::ST_UID); + if (!isset($headers[$sequence_id])) { + throw new MessageHeaderFetchingException("no headers found", 0); + } + + $this->parseRawHeader($headers[$sequence_id]); + } + + /** + * @param string $raw_header + * + * @throws InvalidMessageDateException + */ + public function parseRawHeader($raw_header){ + $this->header = new Header($raw_header); + } + + /** + * Parse additional raw flags + * @param array $raw_flags + */ + public function parseRawFlags($raw_flags) { + $this->flags = FlagCollection::make([]); + + foreach($raw_flags as $flag) { + if (strpos($flag, "\\") === 0){ + $flag = substr($flag, 1); + } + $flag_key = strtolower($flag); + if ($this->available_flags === null || in_array($flag_key, $this->available_flags)) { + $this->flags->put($flag_key, $flag); + } + } + } + + /** + * Parse additional flags + * + * @return void + * @throws Exceptions\ConnectionFailedException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + private function parseFlags() { + $this->client->openFolder($this->folder_path); + $this->flags = FlagCollection::make([]); + + $sequence_id = $this->getSequenceId(); + try { + $flags = $this->client->getConnection()->flags([$sequence_id], $this->sequence === IMAP::ST_UID); + } catch (Exceptions\RuntimeException $e) { + throw new MessageFlagException("flag could not be fetched", 0, $e); + } + + if (isset($flags[$sequence_id])) { + $this->parseRawFlags($flags[$sequence_id]); + } + } + + /** + * Parse the Message body + * + * @return $this + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\MessageContentFetchingException + * @throws InvalidMessageDateException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + public function parseBody() { + $this->client->openFolder($this->folder_path); + + $sequence_id = $this->getSequenceId(); + try { + $contents = $this->client->getConnection()->content([$sequence_id], "RFC822", $this->sequence === IMAP::ST_UID); + } catch (Exceptions\RuntimeException $e) { + throw new MessageContentFetchingException("failed to fetch content", 0); + } + if (!isset($contents[$sequence_id])) { + throw new MessageContentFetchingException("no content found", 0); + } + $content = $contents[$sequence_id]; + + $body = $this->parseRawBody($content); + $this->peek(); + + return $body; + } + + /** + * Handle auto "Seen" flag handling + * + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + public function peek(){ + if ($this->fetch_options == IMAP::FT_PEEK) { + if ($this->getFlags()->get("seen") == null) { + $this->unsetFlag("Seen"); + } + }elseif ($this->getFlags()->get("seen") != null) { + $this->setFlag("Seen"); + } + } + + /** + * Parse a given message body + * @param string $raw_body + * + * @return $this + * @throws Exceptions\ConnectionFailedException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws Exceptions\RuntimeException + */ + public function parseRawBody($raw_body) { + $this->structure = new Structure($raw_body, $this->header); + $this->fetchStructure($this->structure); + + return $this; + } + + /** + * Fetch the Message structure + * @param Structure $structure + * + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + private function fetchStructure($structure) { + $this->client->openFolder($this->folder_path); + + foreach ($structure->parts as $part) { + $this->fetchPart($part); + } + } + + /** + * Fetch a given part + * @param Part $part + */ + private function fetchPart(Part $part) { + if ($part->isAttachment()) { + $this->fetchAttachment($part); + }else{ + $encoding = $this->getEncoding($part); + + $content = $this->decodeString($part->content, $part->encoding); + + // We don't need to do convertEncoding() if charset is ASCII (us-ascii): + // ASCII is a subset of UTF-8, so all ASCII files are already UTF-8 encoded + // https://stackoverflow.com/a/11303410 + // + // us-ascii is the same as ASCII: + // ASCII is the traditional name for the encoding system; the Internet Assigned Numbers Authority (IANA) + // prefers the updated name US-ASCII, which clarifies that this system was developed in the US and + // based on the typographical symbols predominantly in use there. + // https://en.wikipedia.org/wiki/ASCII + // + // convertEncoding() function basically means convertToUtf8(), so when we convert ASCII string into UTF-8 it gets broken. + if ($encoding != 'us-ascii') { + $content = $this->convertEncoding($content, $encoding); + } + + $subtype = strtolower($part->subtype); + $subtype = $subtype == "plain" || $subtype == "" ? "text" : $subtype; + + if (isset($this->bodies[$subtype])) { + $this->bodies[$subtype] .= "\n".$content; + }else{ + $this->bodies[$subtype] = $content; + } + } + } + + /** + * Fetch the Message attachment + * @param Part $part + */ + protected function fetchAttachment($part) { + $oAttachment = new Attachment($this, $part); + + if ($oAttachment->getName() !== null && $oAttachment->getSize() > 0) { + if ($oAttachment->getId() !== null) { + $this->attachments->put($oAttachment->getId(), $oAttachment); + } else { + $this->attachments->push($oAttachment); + } + } + } + + /** + * Fail proof setter for $fetch_option + * @param $option + * + * @return $this + */ + public function setFetchOption($option) { + if (is_long($option) === true) { + $this->fetch_options = $option; + } elseif (is_null($option) === true) { + $config = ClientManager::get('options.fetch', IMAP::FT_UID); + $this->fetch_options = is_long($config) ? $config : 1; + } + + return $this; + } + + /** + * Set the sequence type + * @param int $sequence + * + * @return $this + */ + public function setSequence($sequence) { + if (is_long($sequence)) { + $this->sequence = $sequence; + } elseif (is_null($sequence)) { + $config = ClientManager::get('options.sequence', IMAP::ST_MSGN); + $this->sequence = is_long($config) ? $config : IMAP::ST_MSGN; + } + + return $this; + } + + /** + * Fail proof setter for $fetch_body + * @param $option + * + * @return $this + */ + public function setFetchBodyOption($option) { + if (is_bool($option)) { + $this->fetch_body = $option; + } elseif (is_null($option)) { + $config = ClientManager::get('options.fetch_body', true); + $this->fetch_body = is_bool($config) ? $config : true; + } + + return $this; + } + + /** + * Fail proof setter for $fetch_flags + * @param $option + * + * @return $this + */ + public function setFetchFlagsOption($option) { + if (is_bool($option)) { + $this->fetch_flags = $option; + } elseif (is_null($option)) { + $config = ClientManager::get('options.fetch_flags', true); + $this->fetch_flags = is_bool($config) ? $config : true; + } + + return $this; + } + + /** + * Decode a given string + * @param $string + * @param $encoding + * + * @return string + */ + public function decodeString($string, $encoding) { + switch ($encoding) { + case IMAP::MESSAGE_ENC_BINARY: + if (extension_loaded('imap')) { + return base64_decode(\imap_binary($string)); + } + return base64_decode($string); + case IMAP::MESSAGE_ENC_BASE64: + return base64_decode($string); + case IMAP::MESSAGE_ENC_QUOTED_PRINTABLE: + return quoted_printable_decode($string); + case IMAP::MESSAGE_ENC_8BIT: + case IMAP::MESSAGE_ENC_7BIT: + case IMAP::MESSAGE_ENC_OTHER: + default: + return $string; + } + } + + /** + * Convert the encoding + * @param $str + * @param string $from + * @param string $to + * + * @return mixed|string + */ + public function convertEncoding($str, $from = "ISO-8859-2", $to = "UTF-8") { + + $from = EncodingAliases::get($from); + $to = EncodingAliases::get($to); + + if ($from === $to) { + return $str; + } + + // We don't need to do convertEncoding() if charset is ASCII (us-ascii): + // ASCII is a subset of UTF-8, so all ASCII files are already UTF-8 encoded + // https://stackoverflow.com/a/11303410 + // + // us-ascii is the same as ASCII: + // ASCII is the traditional name for the encoding system; the Internet Assigned Numbers Authority (IANA) + // prefers the updated name US-ASCII, which clarifies that this system was developed in the US and + // based on the typographical symbols predominantly in use there. + // https://en.wikipedia.org/wiki/ASCII + // + // convertEncoding() function basically means convertToUtf8(), so when we convert ASCII string into UTF-8 it gets broken. + if (strtolower($from) == 'us-ascii' && $to == 'UTF-8') { + return $str; + } + + if (function_exists('iconv') && $from != 'UTF-7' && $to != 'UTF-7') { + return @iconv($from, $to.'//IGNORE', $str); + } else { + if (!$from) { + return mb_convert_encoding($str, $to); + } + return mb_convert_encoding($str, $to, $from); + } + } + + /** + * Get the encoding of a given abject + * @param object|string $structure + * + * @return string + */ + public function getEncoding($structure) { + if (property_exists($structure, 'parameters')) { + foreach ($structure->parameters as $parameter) { + if (strtolower($parameter->attribute) == "charset") { + return EncodingAliases::get($parameter->value); + } + } + }elseif (property_exists($structure, 'charset')){ + return EncodingAliases::get($structure->charset); + }elseif (is_string($structure) === true){ + return mb_detect_encoding($structure); + } + + return 'UTF-8'; + } + + /** + * Get the messages folder + * + * @return mixed + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\FolderFetchingException + * @throws Exceptions\RuntimeException + */ + public function getFolder(){ + return $this->client->getFolderByPath($this->folder_path); + } + + /** + * Create a message thread based on the current message + * @param Folder|null $sent_folder + * @param MessageCollection|null $thread + * @param Folder|null $folder + * + * @return MessageCollection|null + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\FolderFetchingException + * @throws Exceptions\GetMessagesFailedException + * @throws Exceptions\RuntimeException + */ + public function thread($sent_folder = null, &$thread = null, $folder = null){ + $thread = $thread ? $thread : MessageCollection::make([]); + $folder = $folder ? $folder : $this->getFolder(); + $sent_folder = $sent_folder ? $sent_folder : $this->client->getFolderByPath(ClientManager::get("options.common_folders.sent", "INBOX/Sent")); + + /** @var Message $message */ + foreach($thread as $message) { + if ($message->message_id->first() == $this->message_id->first()) { + return $thread; + } + } + $thread->push($this); + + $this->fetchThreadByInReplyTo($thread, $this->message_id, $folder, $folder, $sent_folder); + $this->fetchThreadByInReplyTo($thread, $this->message_id, $sent_folder, $folder, $sent_folder); + + if (is_array($this->in_reply_to)) { + foreach($this->in_reply_to as $in_reply_to) { + $this->fetchThreadByMessageId($thread, $in_reply_to, $folder, $folder, $sent_folder); + $this->fetchThreadByMessageId($thread, $in_reply_to, $sent_folder, $folder, $sent_folder); + } + } + + return $thread; + } + + /** + * Fetch a partial thread by message id + * @param MessageCollection $thread + * @param string $in_reply_to + * @param Folder $primary_folder + * @param Folder $secondary_folder + * @param Folder $sent_folder + * + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\GetMessagesFailedException + * @throws Exceptions\RuntimeException + */ + protected function fetchThreadByInReplyTo(&$thread, $in_reply_to, $primary_folder, $secondary_folder, $sent_folder){ + $primary_folder->query()->inReplyTo($in_reply_to) + ->setFetchBody($this->getFetchBodyOption()) + ->leaveUnread()->get()->each(function($message) use(&$thread, $secondary_folder, $sent_folder){ + /** @var Message $message */ + $message->thread($sent_folder, $thread, $secondary_folder); + }); + } + + /** + * Fetch a partial thread by message id + * @param MessageCollection $thread + * @param string $message_id + * @param Folder $primary_folder + * @param Folder $secondary_folder + * @param Folder $sent_folder + * + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\GetMessagesFailedException + * @throws Exceptions\RuntimeException + */ + protected function fetchThreadByMessageId(&$thread, $message_id, $primary_folder, $secondary_folder, $sent_folder){ + $primary_folder->query()->messageId($message_id) + ->setFetchBody($this->getFetchBodyOption()) + ->leaveUnread()->get()->each(function($message) use(&$thread, $secondary_folder, $sent_folder){ + /** @var Message $message */ + $message->thread($sent_folder, $thread, $secondary_folder); + }); + } + + /** + * Copy the current Messages to a mailbox + * @param string $folder_path + * @param boolean $expunge + * + * @return null|Message + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\FolderFetchingException + * @throws Exceptions\RuntimeException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws MessageHeaderFetchingException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\MessageNotFoundException + */ + public function copy($folder_path, $expunge = false) { + $this->client->openFolder($folder_path); + $status = $this->client->getConnection()->examineFolder($folder_path); + + if (isset($status["uidnext"])) { + $next_uid = $status["uidnext"]; + + /** @var Folder $folder */ + $folder = $this->client->getFolderByPath($folder_path); + + $this->client->openFolder($this->folder_path); + if ($this->client->getConnection()->copyMessage($folder->path, $this->getSequenceId(), null, $this->sequence === IMAP::ST_UID) == true) { + return $this->fetchNewMail($folder, $next_uid, "copied", $expunge); + } + } + + return null; + } + + /** + * Move the current Messages to a mailbox + * @param string $folder_path + * @param boolean $expunge + * + * @return Message|null + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\FolderFetchingException + * @throws Exceptions\RuntimeException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws MessageHeaderFetchingException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\MessageNotFoundException + */ + public function move($folder_path, $expunge = false) { + $this->client->openFolder($folder_path); + $status = $this->client->getConnection()->examineFolder($folder_path); + + if (isset($status["uidnext"])) { + $next_uid = $status["uidnext"]; + + /** @var Folder $folder */ + $folder = $this->client->getFolderByPath($folder_path); + + $this->client->openFolder($this->folder_path); + if ($this->client->getConnection()->moveMessage($folder->path, $this->getSequenceId(), null, $this->sequence === IMAP::ST_UID) == true) { + return $this->fetchNewMail($folder, $next_uid, "moved", $expunge); + } + } + + return null; + } + + /** + * Fetch a new message and fire a given event + * @param Folder $folder + * @param int $next_uid + * @param string $event + * @param boolean $expunge + * + * @return mixed + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\MessageNotFoundException + * @throws Exceptions\RuntimeException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws MessageFlagException + * @throws MessageHeaderFetchingException + */ + protected function fetchNewMail($folder, $next_uid, $event, $expunge){ + if($expunge) $this->client->expunge(); + + $this->client->openFolder($folder->path); + + if ($this->sequence === IMAP::ST_UID) { + $sequence_id = $next_uid; + }else{ + $sequence_id = $this->client->getConnection()->getMessageNumber($next_uid); + } + + $message = $folder->query()->getMessage($sequence_id, null, $this->sequence); + $event = $this->getEvent("message", $event); + $event::dispatch($this, $message); + + return $message; + } + + /** + * Delete the current Message + * @param bool $expunge + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + public function delete($expunge = true) { + $status = $this->setFlag("Deleted"); + if($expunge) $this->client->expunge(); + + $event = $this->getEvent("message", "deleted"); + $event::dispatch($this); + + return $status; + } + + /** + * Restore a deleted Message + * @param boolean $expunge + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + public function restore($expunge = true) { + $status = $this->unsetFlag("Deleted"); + if($expunge) $this->client->expunge(); + + $event = $this->getEvent("message", "restored"); + $event::dispatch($this); + + return $status; + } + + /** + * Set a given flag + * @param string|array $flag + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws MessageFlagException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\RuntimeException + */ + public function setFlag($flag) { + $this->client->openFolder($this->folder_path); + $flag = "\\".trim(is_array($flag) ? implode(" \\", $flag) : $flag); + $sequence_id = $this->getSequenceId(); + try { + $status = $this->client->getConnection()->store([$flag], $sequence_id, $sequence_id, "+", true, $this->sequence === IMAP::ST_UID); + } catch (Exceptions\RuntimeException $e) { + throw new MessageFlagException("flag could not be set", 0, $e); + } + $this->parseFlags(); + + $event = $this->getEvent("flag", "new"); + $event::dispatch($this, $flag); + + return $status; + } + + /** + * Unset a given flag + * @param string|array $flag + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + public function unsetFlag($flag) { + $this->client->openFolder($this->folder_path); + + $flag = "\\".trim(is_array($flag) ? implode(" \\", $flag) : $flag); + $sequence_id = $this->getSequenceId(); + try { + $status = $this->client->getConnection()->store([$flag], $sequence_id, $sequence_id, "-", true, $this->sequence === IMAP::ST_UID); + } catch (Exceptions\RuntimeException $e) { + throw new MessageFlagException("flag could not be removed", 0, $e); + } + $this->parseFlags(); + + $event = $this->getEvent("flag", "deleted"); + $event::dispatch($this, $flag); + + return $status; + } + + /** + * Set a given flag + * @param string|array $flag + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws MessageFlagException + * @throws Exceptions\EventNotFoundException + * @throws Exceptions\RuntimeException + */ + public function addFlag($flag) { + return $this->setFlag($flag); + } + + /** + * Unset a given flag + * @param string|array $flag + * + * @return bool + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\EventNotFoundException + * @throws MessageFlagException + * @throws Exceptions\RuntimeException + */ + public function removeFlag($flag) { + return $this->unsetFlag($flag); + } + + /** + * Get all message attachments. + * + * @return AttachmentCollection + */ + public function getAttachments() { + return $this->attachments; + } + + /** + * Get all message attachments. + * + * @return AttachmentCollection + */ + public function attachments(){ + return $this->getAttachments(); + } + + /** + * Checks if there are any attachments present + * + * @return boolean + */ + public function hasAttachments() { + return $this->attachments->isEmpty() === false; + } + + /** + * Get the raw body + * + * @return string + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\RuntimeException + */ + public function getRawBody() { + if ($this->raw_body === null) { + $this->client->openFolder($this->folder_path); + + $this->raw_body = $this->structure->raw; + } + + return $this->raw_body; + } + + /** + * Get the message header + * + * @return Header + */ + public function getHeader() { + return $this->header; + } + + /** + * Get the current client + * + * @return Client + */ + public function getClient() { + return $this->client; + } + + /** + * Get the used fetch option + * + * @return integer + */ + public function getFetchOptions() { + return $this->fetch_options; + } + + /** + * Get the used fetch body option + * + * @return boolean + */ + public function getFetchBodyOption() { + return $this->fetch_body; + } + + /** + * Get the used fetch flags option + * + * @return boolean + */ + public function getFetchFlagsOption() { + return $this->fetch_flags; + } + + /** + * Get all available bodies + * + * @return array + */ + public function getBodies() { + return $this->bodies; + } + + /** + * Get all set flags + * + * @return FlagCollection + */ + public function getFlags() { + return $this->flags; + } + + /** + * Get all set flags + * + * @return FlagCollection + */ + public function flags(){ + return $this->getFlags(); + } + + /** + * Get the fetched structure + * + * @return Structure|null + */ + public function getStructure(){ + return $this->structure; + } + + /** + * Check if a message matches an other by comparing basic attributes + * + * @param null|Message $message + * @return boolean + */ + public function is(Message $message = null) { + if (is_null($message)) { + return false; + } + + return $this->uid == $message->uid + && $this->message_id->first() == $message->message_id->first() + && $this->subject->first() == $message->subject->first() + && $this->date->toDate()->eq($message->date); + } + + /** + * Get all message attributes + * + * @return array + */ + public function getAttributes(){ + return array_merge($this->attributes, $this->header->getAttributes()); + } + + /** + * Set the message mask + * @param $mask + * + * @return $this + */ + public function setMask($mask){ + if(class_exists($mask)){ + $this->mask = $mask; + } + + return $this; + } + + /** + * Get the used message mask + * + * @return string + */ + public function getMask(){ + return $this->mask; + } + + /** + * Get a masked instance by providing a mask name + * @param string|null $mask + * + * @return mixed + * @throws MaskNotFoundException + */ + public function mask($mask = null){ + $mask = $mask !== null ? $mask : $this->mask; + if(class_exists($mask)){ + return new $mask($this); + } + + throw new MaskNotFoundException("Unknown mask provided: ".$mask); + } + + /** + * Get the message path aka folder path + * + * @return string + */ + public function getFolderPath(){ + return $this->folder_path; + } + + /** + * Set the message path aka folder path + * @param $folder_path + * + * @return $this + */ + public function setFolderPath($folder_path){ + $this->folder_path = $folder_path; + + return $this; + } + + /** + * Set the config + * @param $config + * + * @return $this + */ + public function setConfig($config){ + $this->config = $config; + + return $this; + } + + /** + * Set the available flags + * @param $available_flags + * + * @return $this + */ + public function setAvailableFlags($available_flags){ + $this->available_flags = $available_flags; + + return $this; + } + + /** + * Set the attachment collection + * @param $attachments + * + * @return $this + */ + public function setAttachments($attachments){ + $this->attachments = $attachments; + + return $this; + } + + /** + * Set the flag collection + * @param $flags + * + * @return $this + */ + public function setFlags($flags){ + $this->flags = $flags; + + return $this; + } + + /** + * Set the client + * @param $client + * + * @return $this + * @throws Exceptions\RuntimeException + * @throws Exceptions\ConnectionFailedException + */ + public function setClient($client){ + $this->client = $client; + $this->client->openFolder($this->folder_path); + + return $this; + } + + /** + * Set the message number + * @param int $uid + * + * @return $this + * @throws Exceptions\MessageNotFoundException + * @throws Exceptions\ConnectionFailedException + */ + public function setUid($uid){ + $this->uid = $uid; + $this->msgn = $this->client->getConnection()->getMessageNumber($this->uid); + $this->msglist = null; + + return $this; + } + + /** + * Set the message number + * @param $msgn + * @param int|null $msglist + * + * @return $this + * @throws Exceptions\MessageNotFoundException + * @throws Exceptions\ConnectionFailedException + */ + public function setMsgn($msgn, $msglist = null){ + $this->msgn = $msgn; + $this->msglist = $msglist; + $this->uid = $this->client->getConnection()->getUid($this->msgn); + + return $this; + } + + /** + * Get the current sequence type + * + * @return int + */ + public function getSequence(){ + return $this->sequence; + } + + /** + * Set the sequence type + * + * @return int + */ + public function getSequenceId(){ + return $this->sequence === IMAP::ST_UID ? $this->uid : $this->msgn; + } + + /** + * Set the sequence id + * @param $uid + * @param int|null $msglist + * + * @throws Exceptions\ConnectionFailedException + * @throws Exceptions\MessageNotFoundException + */ + public function setSequenceId($uid, $msglist = null){ + if ($this->getSequence() === IMAP::ST_UID) { + $this->setUid($uid); + $this->setMsglist($msglist); + }else{ + $this->setMsgn($uid, $msglist); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Part.php b/htdocs/includes/webklex/php-imap/src/Part.php new file mode 100644 index 00000000000..a6a6748886f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Part.php @@ -0,0 +1,312 @@ +raw = $raw_part; + $this->header = $header; + $this->part_number = $part_number; + $this->parse(); + } + + /** + * Parse the raw parts + * + * @throws InvalidMessageDateException + */ + protected function parse(){ + if ($this->header === null) { + $body = $this->findHeaders(); + }else{ + $body = $this->raw; + } + + $this->parseDisposition(); + $this->parseDescription(); + $this->parseEncoding(); + + $this->charset = $this->header->get("charset"); + $this->name = $this->header->get("name"); + $this->filename = $this->header->get("filename"); + + if(!empty($this->header->get("id"))) { + $this->id = $this->header->get("id"); + } else if(!empty($this->header->get("x_attachment_id"))){ + $this->id = $this->header->get("x_attachment_id"); + } else if(!empty($this->header->get("content_id"))){ + $this->id = strtr($this->header->get("content_id"), [ + '<' => '', + '>' => '' + ]); + } + + $content_types = $this->header->get("content_type"); + if(!empty($content_types)){ + $this->subtype = $this->parseSubtype($content_types); + $content_type = $content_types; + if (is_array($content_types)) { + $content_type = $content_types[0]; + } + $parts = explode(';', $content_type); + $this->content_type = trim($parts[0]); + } + + + $this->content = trim(rtrim($body)); + $this->bytes = strlen($this->content); + } + + /** + * Find all available headers and return the left over body segment + * + * @return string + * @throws InvalidMessageDateException + */ + private function findHeaders(){ + $body = $this->raw; + while (($pos = strpos($body, "\r\n")) > 0) { + $body = substr($body, $pos + 2); + } + $headers = substr($this->raw, 0, strlen($body) * -1); + $body = substr($body, 0, -2); + + $this->header = new Header($headers); + + return (string) $body; + } + + /** + * Try to parse the subtype if any is present + * @param $content_type + * + * @return string + */ + private function parseSubtype($content_type){ + if (is_array($content_type)) { + foreach ($content_type as $part){ + if ((strpos($part, "/")) !== false){ + return $this->parseSubtype($part); + } + } + return null; + } + if (($pos = strpos($content_type, "/")) !== false){ + return substr($content_type, $pos + 1); + } + return null; + } + + /** + * Try to parse the disposition if any is present + */ + private function parseDisposition(){ + $content_disposition = $this->header->get("content_disposition"); + if($content_disposition !== null) { + $this->ifdisposition = true; + $this->disposition = (is_array($content_disposition)) ? implode(' ', $content_disposition) : $content_disposition; + } + } + + /** + * Try to parse the description if any is present + */ + private function parseDescription(){ + $content_description = $this->header->get("content_description"); + if($content_description !== null) { + $this->ifdescription = true; + $this->description = $content_description; + } + } + + /** + * Try to parse the encoding if any is present + */ + private function parseEncoding(){ + $encoding = $this->header->get("content_transfer_encoding"); + if($encoding !== null) { + switch (strtolower($encoding)) { + case "quoted-printable": + $this->encoding = IMAP::MESSAGE_ENC_QUOTED_PRINTABLE; + break; + case "base64": + $this->encoding = IMAP::MESSAGE_ENC_BASE64; + break; + case "7bit": + $this->encoding = IMAP::MESSAGE_ENC_7BIT; + break; + case "8bit": + $this->encoding = IMAP::MESSAGE_ENC_8BIT; + break; + case "binary": + $this->encoding = IMAP::MESSAGE_ENC_BINARY; + break; + default: + $this->encoding = IMAP::MESSAGE_ENC_OTHER; + break; + + } + } + } + + /** + * Check if the current part represents an attachment + * + * @return bool + */ + public function isAttachment(){ + $valid_disposition = in_array(strtolower($this->disposition), ClientManager::get('options.dispositions')); + + if ($this->type == IMAP::MESSAGE_TYPE_TEXT && ($this->ifdisposition == 0 || (empty($this->disposition))) && !$valid_disposition) { + if (($this->subtype == null || in_array((strtolower($this->subtype)), ["plain", "html"])) && $this->filename == null && $this->name == null) { + return false; + } + } + return true; + } + +} diff --git a/htdocs/includes/webklex/php-imap/src/Query/Query.php b/htdocs/includes/webklex/php-imap/src/Query/Query.php new file mode 100644 index 00000000000..b1806755f4d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Query/Query.php @@ -0,0 +1,842 @@ +setClient($client); + + $this->sequence = ClientManager::get('options.sequence', IMAP::ST_MSGN); + if (ClientManager::get('options.fetch') === IMAP::FT_PEEK) $this->leaveUnread(); + + if (ClientManager::get('options.fetch_order') === 'desc') { + $this->fetch_order = 'desc'; + } else { + $this->fetch_order = 'asc'; + } + + $this->date_format = ClientManager::get('date_format', 'd M y'); + $this->soft_fail = ClientManager::get('options.soft_fail', false); + + $this->charset = $charset; + $this->query = new Collection(); + $this->boot(); + } + + /** + * Instance boot method for additional functionality + */ + protected function boot() { + } + + /** + * Parse a given value + * @param mixed $value + * + * @return string + */ + protected function parse_value($value) { + switch (true) { + case $value instanceof Carbon: + $value = $value->format($this->date_format); + break; + } + + return (string)$value; + } + + /** + * Check if a given date is a valid carbon object and if not try to convert it + * @param string|Carbon $date + * + * @return Carbon + * @throws MessageSearchValidationException + */ + protected function parse_date($date) { + if ($date instanceof Carbon) return $date; + + try { + $date = Carbon::parse($date); + } catch (Exception $e) { + throw new MessageSearchValidationException(); + } + + return $date; + } + + /** + * Get the raw IMAP search query + * + * @return string + */ + public function generate_query() { + $query = ''; + $this->query->each(function($statement) use (&$query) { + if (count($statement) == 1) { + $query .= $statement[0]; + } else { + if ($statement[1] === null) { + $query .= $statement[0]; + } else { + $query .= $statement[0] . ' "' . $statement[1] . '"'; + } + } + $query .= ' '; + + }); + + $this->raw_query = trim($query); + + return $this->raw_query; + } + + /** + * Perform an imap search request + * + * @return Collection + * @throws GetMessagesFailedException + */ + protected function search() { + $this->generate_query(); + + try { + $available_messages = $this->client->getConnection()->search([$this->getRawQuery()], $this->sequence == IMAP::ST_UID); + return $available_messages !== false ? new Collection($available_messages) : new Collection(); + } catch (RuntimeException $e) { + throw new GetMessagesFailedException("failed to fetch messages", 0, $e); + } catch (ConnectionFailedException $e) { + throw new GetMessagesFailedException("failed to fetch messages", 0, $e); + } + } + + /** + * Count all available messages matching the current search criteria + * + * @return int + * @throws GetMessagesFailedException + */ + public function count() { + return $this->search()->count(); + } + + /** + * Fetch a given id collection + * @param Collection $available_messages + * + * @return array + * @throws ConnectionFailedException + * @throws RuntimeException + */ + protected function fetch($available_messages) { + if ($this->fetch_order === 'desc') { + $available_messages = $available_messages->reverse(); + } + + $uids = $available_messages->forPage($this->page, $this->limit)->toArray(); + $flags = $this->client->getConnection()->flags($uids, $this->sequence == IMAP::ST_UID); + $headers = $this->client->getConnection()->headers($uids, "RFC822", $this->sequence == IMAP::ST_UID); + + $contents = []; + if ($this->getFetchBody()) { + $contents = $this->client->getConnection()->content($uids, "RFC822", $this->sequence == IMAP::ST_UID); + } + + return [ + "uids" => $uids, + "flags" => $flags, + "headers" => $headers, + "contents" => $contents, + ]; + } + + /** + * Make a new message from given raw components + * @param integer $uid + * @param integer $msglist + * @param string $header + * @param string $content + * @param array $flags + * + * @return Message|null + * @throws ConnectionFailedException + * @throws EventNotFoundException + * @throws GetMessagesFailedException + * @throws ReflectionException + */ + protected function make($uid, $msglist, $header, $content, $flags){ + try { + return Message::make($uid, $msglist, $this->getClient(), $header, $content, $flags, $this->getFetchOptions(), $this->sequence); + }catch (MessageNotFoundException $e) { + $this->setError($uid, $e); + }catch (RuntimeException $e) { + $this->setError($uid, $e); + }catch (MessageFlagException $e) { + $this->setError($uid, $e); + }catch (InvalidMessageDateException $e) { + $this->setError($uid, $e); + }catch (MessageContentFetchingException $e) { + $this->setError($uid, $e); + } + + $this->handleException($uid); + + return null; + } + + /** + * Get the message key for a given message + * @param string $message_key + * @param integer $msglist + * @param Message $message + * + * @return string + */ + protected function getMessageKey($message_key, $msglist, $message){ + switch ($message_key) { + case 'number': + $key = $message->getMessageNo(); + break; + case 'list': + $key = $msglist; + break; + case 'uid': + $key = $message->getUid(); + break; + default: + $key = $message->getMessageId(); + break; + } + return (string)$key; + } + + /** + * Populate a given id collection and receive a fully fetched message collection + * @param Collection $available_messages + * + * @return MessageCollection + * @throws ConnectionFailedException + * @throws EventNotFoundException + * @throws GetMessagesFailedException + * @throws ReflectionException + * @throws RuntimeException + */ + protected function populate($available_messages) { + $messages = MessageCollection::make([]); + + $messages->total($available_messages->count()); + + $message_key = ClientManager::get('options.message_key'); + + $raw_messages = $this->fetch($available_messages); + + $msglist = 0; + foreach ($raw_messages["headers"] as $uid => $header) { + $content = isset($raw_messages["contents"][$uid]) ? $raw_messages["contents"][$uid] : ""; + $flag = isset($raw_messages["flags"][$uid]) ? $raw_messages["flags"][$uid] : []; + + $message = $this->make($uid, $msglist, $header, $content, $flag); + if ($message !== null) { + $key = $this->getMessageKey($message_key, $msglist, $message); + $messages->put("$key", $message); + } + $msglist++; + } + + return $messages; + } + + /** + * Fetch the current query and return all found messages + * + * @return MessageCollection + * @throws GetMessagesFailedException + */ + public function get() { + $available_messages = $this->search(); + + try { + if ($available_messages->count() > 0) { + return $this->populate($available_messages); + } + return MessageCollection::make([]); + } catch (Exception $e) { + throw new GetMessagesFailedException($e->getMessage(), 0, $e); + } + } + + /** + * Fetch the current query as chunked requests + * @param callable $callback + * @param int $chunk_size + * @param int $start_chunk + * + * @throws ConnectionFailedException + * @throws EventNotFoundException + * @throws GetMessagesFailedException + * @throws ReflectionException + * @throws RuntimeException + */ + public function chunked($callback, $chunk_size = 10, $start_chunk = 1) { + $available_messages = $this->search(); + if (($available_messages_count = $available_messages->count()) > 0) { + $old_limit = $this->limit; + $old_page = $this->page; + + $this->limit = $chunk_size; + $this->page = $start_chunk; + do { + $messages = $this->populate($available_messages); + $callback($messages, $this->page); + $this->page++; + } while ($this->limit * $this->page <= $available_messages_count); + $this->limit = $old_limit; + $this->page = $old_page; + } + } + + /** + * Paginate the current query + * @param int $per_page Results you which to receive per page + * @param int|null $page The current page you are on (e.g. 0, 1, 2, ...) use `null` to enable auto mode + * @param string $page_name The page name / uri parameter used for the generated links and the auto mode + * + * @return LengthAwarePaginator + * @throws GetMessagesFailedException + */ + public function paginate($per_page = 5, $page = null, $page_name = 'imap_page') { + if ( + $page === null + && isset($_GET[$page_name]) + && $_GET[$page_name] > 0 + ) { + $this->page = intval($_GET[$page_name]); + } elseif ($page > 0) { + $this->page = $page; + } + + $this->limit = $per_page; + + return $this->get()->paginate($per_page, $this->page, $page_name, true); + } + + /** + * Get a new Message instance + * @param int $uid + * @param int|null $msglist + * @param int|null $sequence + * + * @return Message + * @throws ConnectionFailedException + * @throws RuntimeException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws MessageHeaderFetchingException + * @throws EventNotFoundException + * @throws MessageFlagException + * @throws MessageNotFoundException + */ + public function getMessage($uid, $msglist = null, $sequence = null) { + return new Message($uid, $msglist, $this->getClient(), $this->getFetchOptions(), $this->getFetchBody(), $this->getFetchFlags(), $sequence ? $sequence : $this->sequence); + } + + /** + * Get a message by its message number + * @param $msgn + * @param int|null $msglist + * + * @return Message + * @throws ConnectionFailedException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws MessageHeaderFetchingException + * @throws RuntimeException + * @throws EventNotFoundException + * @throws MessageFlagException + * @throws MessageNotFoundException + */ + public function getMessageByMsgn($msgn, $msglist = null) { + return $this->getMessage($msgn, $msglist, IMAP::ST_MSGN); + } + + /** + * Get a message by its uid + * @param $uid + * + * @return Message + * @throws ConnectionFailedException + * @throws InvalidMessageDateException + * @throws MessageContentFetchingException + * @throws MessageHeaderFetchingException + * @throws RuntimeException + * @throws EventNotFoundException + * @throws MessageFlagException + * @throws MessageNotFoundException + */ + public function getMessageByUid($uid) { + return $this->getMessage($uid, null, IMAP::ST_UID); + } + + /** + * Don't mark messages as read when fetching + * + * @return $this + */ + public function leaveUnread() { + $this->setFetchOptions(IMAP::FT_PEEK); + + return $this; + } + + /** + * Mark all messages as read when fetching + * + * @return $this + */ + public function markAsRead() { + $this->setFetchOptions(IMAP::FT_UID); + + return $this; + } + + /** + * Set the sequence type + * @param int $sequence + * + * @return $this + */ + public function setSequence($sequence) { + $this->sequence = $sequence != IMAP::ST_MSGN ? IMAP::ST_UID : $sequence; + + return $this; + } + + /** + * @return Client + * @throws ConnectionFailedException + */ + public function getClient() { + $this->client->checkConnection(); + return $this->client; + } + + /** + * Set the limit and page for the current query + * @param int $limit + * @param int $page + * + * @return $this + */ + public function limit($limit, $page = 1) { + if ($page >= 1) $this->page = $page; + $this->limit = $limit; + + return $this; + } + + /** + * @return Collection + */ + public function getQuery() { + return $this->query; + } + + /** + * @param array $query + * @return Query + */ + public function setQuery($query) { + $this->query = new Collection($query); + return $this; + } + + /** + * @return string + */ + public function getRawQuery() { + return $this->raw_query; + } + + /** + * @param string $raw_query + * @return Query + */ + public function setRawQuery($raw_query) { + $this->raw_query = $raw_query; + return $this; + } + + /** + * @return string + */ + public function getCharset() { + return $this->charset; + } + + /** + * @param string $charset + * @return Query + */ + public function setCharset($charset) { + $this->charset = $charset; + return $this; + } + + /** + * @param Client $client + * @return Query + */ + public function setClient(Client $client) { + $this->client = $client; + return $this; + } + + /** + * @return int + */ + public function getLimit() { + return $this->limit; + } + + /** + * @param int $limit + * @return Query + */ + public function setLimit($limit) { + $this->limit = $limit <= 0 ? null : $limit; + return $this; + } + + /** + * @return int + */ + public function getPage() { + return $this->page; + } + + /** + * @param int $page + * @return Query + */ + public function setPage($page) { + $this->page = $page; + return $this; + } + + /** + * @param boolean $fetch_options + * @return Query + */ + public function setFetchOptions($fetch_options) { + $this->fetch_options = $fetch_options; + return $this; + } + + /** + * @param boolean $fetch_options + * @return Query + */ + public function fetchOptions($fetch_options) { + return $this->setFetchOptions($fetch_options); + } + + /** + * @return int + */ + public function getFetchOptions() { + return $this->fetch_options; + } + + /** + * @return boolean + */ + public function getFetchBody() { + return $this->fetch_body; + } + + /** + * @param boolean $fetch_body + * @return Query + */ + public function setFetchBody($fetch_body) { + $this->fetch_body = $fetch_body; + return $this; + } + + /** + * @param boolean $fetch_body + * @return Query + */ + public function fetchBody($fetch_body) { + return $this->setFetchBody($fetch_body); + } + + /** + * @return int + */ + public function getFetchFlags() { + return $this->fetch_flags; + } + + /** + * @param int $fetch_flags + * @return Query + */ + public function setFetchFlags($fetch_flags) { + $this->fetch_flags = $fetch_flags; + return $this; + } + + /** + * @param string $fetch_order + * @return Query + */ + public function setFetchOrder($fetch_order) { + $fetch_order = strtolower($fetch_order); + + if (in_array($fetch_order, ['asc', 'desc'])) { + $this->fetch_order = $fetch_order; + } + + return $this; + } + + /** + * @param string $fetch_order + * @return Query + */ + public function fetchOrder($fetch_order) { + return $this->setFetchOrder($fetch_order); + } + + /** + * @return string + */ + public function getFetchOrder() { + return $this->fetch_order; + } + + /** + * @return Query + */ + public function setFetchOrderAsc() { + return $this->setFetchOrder('asc'); + } + + /** + * @return Query + */ + public function fetchOrderAsc() { + return $this->setFetchOrderAsc(); + } + + /** + * @return Query + */ + public function setFetchOrderDesc() { + return $this->setFetchOrder('desc'); + } + + /** + * @return Query + */ + public function fetchOrderDesc() { + return $this->setFetchOrderDesc(); + } + + /** + * @var boolean $state + * + * @return Query + */ + public function softFail($state = true) { + return $this->setSoftFail($state); + } + + /** + * @var boolean $state + * + * @return Query + */ + public function setSoftFail($state = true) { + $this->soft_fail = $state; + + return $this; + } + + /** + * @return boolean + */ + public function getSoftFail() { + return $this->soft_fail; + } + + /** + * Handle the exception for a given uid + * @param integer $uid + * + * @throws GetMessagesFailedException + */ + protected function handleException($uid) { + if ($this->soft_fail === false && $this->hasError($uid)) { + $error = $this->getError($uid); + throw new GetMessagesFailedException($error->getMessage(), 0, $error); + } + } + + /** + * Add a new error to the error holder + * @param integer $uid + * @param Exception $error + */ + protected function setError($uid, $error) { + $this->errors[$uid] = $error; + } + + /** + * Check if there are any errors / exceptions present + * @var integer|null $uid + * + * @return boolean + */ + public function hasErrors($uid = null){ + if ($uid !== null) { + return $this->hasError($uid); + } + return count($this->errors) > 0; + } + + /** + * Check if there is an error / exception present + * @var integer $uid + * + * @return boolean + */ + public function hasError($uid){ + return isset($this->errors[$uid]); + } + + /** + * Get all available errors / exceptions + * + * @return array + */ + public function errors(){ + return $this->getErrors(); + } + + /** + * Get all available errors / exceptions + * + * @return array + */ + public function getErrors(){ + return $this->errors; + } + + /** + * Get a specific error / exception + * @var integer $uid + * + * @return Exception|null + */ + public function error($uid){ + return $this->getError($uid); + } + + /** + * Get a specific error / exception + * @var integer $uid + * + * @return Exception|null + */ + public function getError($uid){ + if ($this->hasError($uid)) { + return $this->errors[$uid]; + } + return null; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Query/WhereQuery.php b/htdocs/includes/webklex/php-imap/src/Query/WhereQuery.php new file mode 100755 index 00000000000..4d23be866e7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Query/WhereQuery.php @@ -0,0 +1,551 @@ +whereNot(); + $name = substr($name, 3); + } + + if (strpos(strtolower($name), "where") === false) { + $method = 'where' . ucfirst($name); + } else { + $method = lcfirst($name); + } + + if (method_exists($this, $method) === true) { + return call_user_func_array([$that, $method], $arguments); + } + + throw new MethodNotFoundException("Method " . self::class . '::' . $method . '() is not supported'); + } + + /** + * Validate a given criteria + * @param $criteria + * + * @return string + * @throws InvalidWhereQueryCriteriaException + */ + protected function validate_criteria($criteria) { + $criteria = strtoupper($criteria); + if (substr($criteria, 0, 7) === "CUSTOM ") { + return substr($criteria, 7); + } + if (in_array($criteria, $this->available_criteria) === false) { + throw new InvalidWhereQueryCriteriaException(); + } + + return $criteria; + } + + + /** + * Register search parameters + * @param mixed $criteria + * @param null $value + * + * @return $this + * @throws InvalidWhereQueryCriteriaException + * + * Examples: + * $query->from("someone@email.tld")->seen(); + * $query->whereFrom("someone@email.tld")->whereSeen(); + * $query->where([["FROM" => "someone@email.tld"], ["SEEN"]]); + * $query->where(["FROM" => "someone@email.tld"])->where(["SEEN"]); + * $query->where(["FROM" => "someone@email.tld", "SEEN"]); + * $query->where("FROM", "someone@email.tld")->where("SEEN"); + */ + public function where($criteria, $value = null): WhereQuery { + if (is_array($criteria)) { + foreach ($criteria as $key => $value) { + if (is_numeric($key)) { + $this->where($value); + }else{ + $this->where($key, $value); + } + } + } else { + $this->push_search_criteria($criteria, $value); + } + + return $this; + } + + /** + * Push a given search criteria and value pair to the search query + * @param $criteria string + * @param $value mixed + * + * @throws InvalidWhereQueryCriteriaException + */ + protected function push_search_criteria(string $criteria, $value){ + $criteria = $this->validate_criteria($criteria); + $value = $this->parse_value($value); + + if ($value === null || $value === '') { + $this->query->push([$criteria]); + } else { + $this->query->push([$criteria, $value]); + } + } + + /** + * @param Closure $closure + * + * @return $this + */ + public function orWhere(Closure $closure = null) { + $this->query->push(['OR']); + if ($closure !== null) $closure($this); + + return $this; + } + + /** + * @param Closure $closure + * + * @return $this + */ + public function andWhere(Closure $closure = null) { + $this->query->push(['AND']); + if ($closure !== null) $closure($this); + + return $this; + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereAll() { + return $this->where('ALL'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereAnswered() { + return $this->where('ANSWERED'); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereBcc($value) { + return $this->where('BCC', $value); + } + + /** + * @param mixed $value + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + * @throws MessageSearchValidationException + */ + public function whereBefore($value) { + $date = $this->parse_date($value); + return $this->where('BEFORE', $date); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereBody($value) { + return $this->where('BODY', $value); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereCc($value) { + return $this->where('CC', $value); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereDeleted() { + return $this->where('DELETED'); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereFlagged($value) { + return $this->where('FLAGGED', $value); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereFrom($value) { + return $this->where('FROM', $value); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereKeyword($value) { + return $this->where('KEYWORD', $value); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereNew() { + return $this->where('NEW'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereNot() { + return $this->where('NOT'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereOld() { + return $this->where('OLD'); + } + + /** + * @param mixed $value + * + * @return WhereQuery + * @throws MessageSearchValidationException + * @throws InvalidWhereQueryCriteriaException + */ + public function whereOn($value) { + $date = $this->parse_date($value); + return $this->where('ON', $date); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereRecent() { + return $this->where('RECENT'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereSeen() { + return $this->where('SEEN'); + } + + /** + * @param mixed $value + * + * @return WhereQuery + * @throws MessageSearchValidationException + * @throws InvalidWhereQueryCriteriaException + */ + public function whereSince($value) { + $date = $this->parse_date($value); + return $this->where('SINCE', $date); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereSubject($value) { + return $this->where('SUBJECT', $value); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereText($value) { + return $this->where('TEXT', $value); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereTo($value) { + return $this->where('TO', $value); + } + + /** + * @param string $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUnkeyword($value) { + return $this->where('UNKEYWORD', $value); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUnanswered() { + return $this->where('UNANSWERED'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUndeleted() { + return $this->where('UNDELETED'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUnflagged() { + return $this->where('UNFLAGGED'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUnseen() { + return $this->where('UNSEEN'); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereNoXSpam() { + return $this->where("CUSTOM X-Spam-Flag NO"); + } + + /** + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereIsXSpam() { + return $this->where("CUSTOM X-Spam-Flag YES"); + } + + /** + * Search for a specific header value + * @param $header + * @param $value + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereHeader($header, $value) { + return $this->where("CUSTOM HEADER $header $value"); + } + + /** + * Search for a specific message id + * @param $messageId + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereMessageId($messageId) { + return $this->whereHeader("Message-ID", $messageId); + } + + /** + * Search for a specific message id + * @param $messageId + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereInReplyTo($messageId) { + return $this->whereHeader("In-Reply-To", $messageId); + } + + /** + * @param $country_code + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereLanguage($country_code) { + return $this->where("Content-Language $country_code"); + } + + /** + * Get message be it UID. + * + * @param int|string $uid + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUid($uid) + { + return $this->where('UID', $uid); + } + + /** + * Get messages by their UIDs. + * + * @param array $uids + * + * @return WhereQuery + * @throws InvalidWhereQueryCriteriaException + */ + public function whereUidIn($uids) + { + $uids = implode(',', $uids); + return $this->where('UID', $uids); + } + + /** + * Apply the callback if the given "value" is truthy. + * copied from @url https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Traits/Conditionable.php + * + * @param mixed $value + * @param callable $callback + * @param callable|null $default + + * @return $this|mixed + */ + public function when($value, $callback, $default = null) { + if ($value) { + return $callback($this, $value) ?: $this; + } elseif ($default) { + return $default($this, $value) ?: $this; + } + + return $this; + } + + /** + * Apply the callback if the given "value" is falsy. + * copied from @url https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Traits/Conditionable.php + * + * @param mixed $value + * @param callable $callback + * @param callable|null $default + + * @return $this|mixed + */ + public function unless($value, $callback, $default = null) { + if (! $value) { + return $callback($this, $value) ?: $this; + } elseif ($default) { + return $default($this, $value) ?: $this; + } + + return $this; + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Structure.php b/htdocs/includes/webklex/php-imap/src/Structure.php new file mode 100644 index 00000000000..a6e65b934a0 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Structure.php @@ -0,0 +1,174 @@ +raw = $raw_structure; + $this->header = $header; + $this->config = ClientManager::get('options'); + $this->parse(); + } + + /** + * Parse the given raw structure + * + * @throws MessageContentFetchingException + * @throws InvalidMessageDateException + */ + protected function parse(){ + $this->findContentType(); + $this->parts = $this->find_parts(); + } + + /** + * Determine the message content type + */ + public function findContentType(){ + $content_type = $this->header->get("content_type"); + $content_type = (is_array($content_type)) ? implode(' ', $content_type) : $content_type; + if(stripos($content_type, 'multipart') === 0) { + $this->type = IMAP::MESSAGE_TYPE_MULTIPART; + }else{ + $this->type = IMAP::MESSAGE_TYPE_TEXT; + } + } + + /** + * Find all available headers and return the left over body segment + * @var string $context + * @var integer $part_number + * + * @return Part[] + * @throws InvalidMessageDateException + */ + private function parsePart($context, $part_number = 0){ + $body = $context; + while (($pos = strpos($body, "\r\n")) > 0) { + $body = substr($body, $pos + 2); + } + $headers = substr($context, 0, strlen($body) * -1); + $body = substr($body, 0, -2); + + $headers = new Header($headers); + if (($boundary = $headers->getBoundary()) !== null) { + return $this->detectParts($boundary, $body, $part_number); + } + return [new Part($body, $headers, $part_number)]; + } + + /** + * @param string $boundary + * @param string $context + * @param int $part_number + * + * @return array + * @throws InvalidMessageDateException + */ + private function detectParts($boundary, $context, $part_number = 0){ + $base_parts = explode( $boundary, $context); + $final_parts = []; + foreach($base_parts as $ctx) { + $ctx = substr($ctx, 2); + if ($ctx !== "--" && $ctx != "") { + $parts = $this->parsePart($ctx, $part_number); + foreach ($parts as $part) { + $final_parts[] = $part; + $part_number = $part->part_number; + } + $part_number++; + } + } + return $final_parts; + } + + /** + * Find all available parts + * + * @return array + * @throws MessageContentFetchingException + * @throws InvalidMessageDateException + */ + public function find_parts(){ + if($this->type === IMAP::MESSAGE_TYPE_MULTIPART) { + if (($boundary = $this->header->getBoundary()) === null) { + throw new MessageContentFetchingException("no content found", 0); + } + + return $this->detectParts($boundary, $this->raw); + } + + return [new Part($this->raw, $this->header)]; + } + + /** + * Try to find a boundary if possible + * + * @return string|null + * @Depricated since version 2.4.4 + */ + public function getBoundary(){ + return $this->header->getBoundary(); + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Support/AttachmentCollection.php b/htdocs/includes/webklex/php-imap/src/Support/AttachmentCollection.php new file mode 100644 index 00000000000..8b3f9c32213 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Support/AttachmentCollection.php @@ -0,0 +1,22 @@ +parent->content); + } + + /** + * Get an base64 image src string + * + * @return string|null + */ + public function getImageSrc() { + return 'data:'.$this->parent->content_type.';base64,'.$this->getContentBase64Encoded(); + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Support/Masks/Mask.php b/htdocs/includes/webklex/php-imap/src/Support/Masks/Mask.php new file mode 100755 index 00000000000..7483bd5e5b2 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Support/Masks/Mask.php @@ -0,0 +1,137 @@ +parent = $parent; + + if(method_exists($this->parent, 'getAttributes')){ + $this->attributes = array_merge($this->attributes, $this->parent->getAttributes()); + } + + $this->boot(); + } + + /** + * Boot method made to be used by any custom mask + */ + protected function boot(){} + + /** + * Call dynamic attribute setter and getter methods and inherit the parent calls + * @param string $method + * @param array $arguments + * + * @return mixed + * @throws MethodNotFoundException + */ + public function __call($method, $arguments) { + if(strtolower(substr($method, 0, 3)) === 'get') { + $name = Str::snake(substr($method, 3)); + + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + }elseif (strtolower(substr($method, 0, 3)) === 'set') { + $name = Str::snake(substr($method, 3)); + + if(isset($this->attributes[$name])) { + $this->attributes[$name] = array_pop($arguments); + + return $this->attributes[$name]; + } + + } + + if(method_exists($this->parent, $method) === true){ + return call_user_func_array([$this->parent, $method], $arguments); + } + + throw new MethodNotFoundException("Method ".self::class.'::'.$method.'() is not supported'); + } + + /** + * Magic setter + * @param $name + * @param $value + * + * @return mixed + */ + public function __set($name, $value) { + $this->attributes[$name] = $value; + + return $this->attributes[$name]; + } + + /** + * Magic getter + * @param $name + * + * @return mixed|null + */ + public function __get($name) { + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + return null; + } + + /** + * Get the parent instance + * + * @return mixed + */ + public function getParent(){ + return $this->parent; + } + + /** + * Get all available attributes + * + * @return array + */ + public function getAttributes(){ + return $this->attributes; + } + +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Support/Masks/MessageMask.php b/htdocs/includes/webklex/php-imap/src/Support/Masks/MessageMask.php new file mode 100644 index 00000000000..d072e8b6456 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Support/Masks/MessageMask.php @@ -0,0 +1,86 @@ +parent->getBodies(); + if (!isset($bodies['html'])) { + return null; + } + + if(is_object($bodies['html']) && property_exists($bodies['html'], 'content')) { + return $bodies['html']->content; + } + return $bodies['html']; + } + + /** + * Get the Message html body filtered by an optional callback + * @param callable|bool $callback + * + * @return string|null + */ + public function getCustomHTMLBody($callback = false) { + $body = $this->getHtmlBody(); + if($body === null) return null; + + if ($callback !== false) { + $aAttachment = $this->parent->getAttachments(); + $aAttachment->each(function($oAttachment) use(&$body, $callback) { + /** @var Attachment $oAttachment */ + if(is_callable($callback)) { + $body = $callback($body, $oAttachment); + }elseif(is_string($callback)) { + call_user_func($callback, [$body, $oAttachment]); + } + }); + } + + return $body; + } + + /** + * Get the Message html body with embedded base64 images + * the resulting $body. + * + * @return string|null + */ + public function getHTMLBodyWithEmbeddedBase64Images() { + return $this->getCustomHTMLBody(function($body, $oAttachment){ + /** @var Attachment $oAttachment */ + if ($oAttachment->id) { + $body = str_replace('cid:'.$oAttachment->id, 'data:'.$oAttachment->getContentType().';base64, '.base64_encode($oAttachment->getContent()), $body); + } + + return $body; + }); + } +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/Support/MessageCollection.php b/htdocs/includes/webklex/php-imap/src/Support/MessageCollection.php new file mode 100644 index 00000000000..6d1249fae52 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Support/MessageCollection.php @@ -0,0 +1,22 @@ +total ? $this->total : $this->count(); + + $results = !$prepaginated && $total ? $this->forPage($page, $per_page) : $this->all(); + + return $this->paginator($results, $total, $per_page, $page, [ + 'path' => Paginator::resolveCurrentPath(), + 'pageName' => $page_name, + ]); + } + + /** + * Create a new length-aware paginator instance. + * @param array $items + * @param int $total + * @param int $per_page + * @param int|null $current_page + * @param array $options + * + * @return LengthAwarePaginator + */ + protected function paginator($items, $total, $per_page, $current_page, array $options) { + return new LengthAwarePaginator($items, $total, $per_page, $current_page, $options); + } + + /** + * Get and set the total amount + * @param null $total + * + * @return int|null + */ + public function total($total = null) { + if($total === null) { + return $this->total; + } + + return $this->total = $total; + } +} diff --git a/htdocs/includes/webklex/php-imap/src/Traits/HasEvents.php b/htdocs/includes/webklex/php-imap/src/Traits/HasEvents.php new file mode 100644 index 00000000000..bc7ae68eb42 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/Traits/HasEvents.php @@ -0,0 +1,77 @@ +events[$section])) { + $this->events[$section][$event] = $class; + } + } + + /** + * Set all events + * @param $events + */ + public function setEvents($events) { + $this->events = $events; + } + + /** + * Get a specific event callback + * @param $section + * @param $event + * + * @return Event + * @throws EventNotFoundException + */ + public function getEvent($section, $event) { + if (isset($this->events[$section])) { + return $this->events[$section][$event]; + } + throw new EventNotFoundException(); + } + + /** + * Get all events + * + * @return array + */ + public function getEvents(){ + return $this->events; + } + +} \ No newline at end of file diff --git a/htdocs/includes/webklex/php-imap/src/config/imap.php b/htdocs/includes/webklex/php-imap/src/config/imap.php new file mode 100644 index 00000000000..1b605ee0465 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/src/config/imap.php @@ -0,0 +1,216 @@ + 'd-M-Y', + + /* + |-------------------------------------------------------------------------- + | Default account + |-------------------------------------------------------------------------- + | + | The default account identifier. It will be used as default for any missing account parameters. + | If however the default account is missing a parameter the package default will be used. + | Set to 'false' [boolean] to disable this functionality. + | + */ + 'default' => 'default', + + /* + |-------------------------------------------------------------------------- + | Available accounts + |-------------------------------------------------------------------------- + | + | Please list all IMAP accounts which you are planning to use within the + | array below. + | + */ + 'accounts' => [ + + 'default' => [// account identifier + 'host' => 'localhost', + 'port' => 993, + 'protocol' => 'imap', //might also use imap, [pop3 or nntp (untested)] + 'encryption' => 'ssl', // Supported: false, 'ssl', 'tls' + 'validate_cert' => true, + 'username' => 'root@example.com', + 'password' => '', + 'authentication' => null, + 'proxy' => [ + 'socket' => null, + 'request_fulluri' => false, + 'username' => null, + 'password' => null, + ], + "timeout" => 30 + ], + + /* + 'gmail' => [ // account identifier + 'host' => 'imap.gmail.com', + 'port' => 993, + 'encryption' => 'ssl', + 'validate_cert' => true, + 'username' => 'example@gmail.com', + 'password' => 'PASSWORD', + 'authentication' => 'oauth', + ], + + 'another' => [ // account identifier + 'host' => '', + 'port' => 993, + 'encryption' => false, + 'validate_cert' => true, + 'username' => '', + 'password' => '', + 'authentication' => null, + ] + */ + ], + + /* + |-------------------------------------------------------------------------- + | Available IMAP options + |-------------------------------------------------------------------------- + | + | Available php imap config parameters are listed below + | -Delimiter (optional): + | This option is only used when calling $oClient-> + | You can use any supported char such as ".", "/", (...) + | -Fetch option: + | IMAP::FT_UID - Message marked as read by fetching the body message + | IMAP::FT_PEEK - Fetch the message without setting the "seen" flag + | -Fetch sequence id: + | IMAP::ST_UID - Fetch message components using the message uid + | IMAP::ST_MSGN - Fetch message components using the message number + | -Body download option + | Default TRUE + | -Flag download option + | Default TRUE + | -Soft fail + | Default FALSE - Set to TRUE if you want to ignore certain exception while fetching bulk messages + | -RFC822 + | Default TRUE - Set to FALSE to prevent the usage of \imap_rfc822_parse_headers(). + | See https://github.com/Webklex/php-imap/issues/115 for more information. + | -Message key identifier option + | You can choose between the following: + | 'id' - Use the MessageID as array key (default, might cause hickups with yahoo mail) + | 'number' - Use the message number as array key (isn't always unique and can cause some interesting behavior) + | 'list' - Use the message list number as array key (incrementing integer (does not always start at 0 or 1) + | 'uid' - Use the message uid as array key (isn't always unique and can cause some interesting behavior) + | -Fetch order + | 'asc' - Order all messages ascending (probably results in oldest first) + | 'desc' - Order all messages descending (probably results in newest first) + | -Disposition types potentially considered an attachment + | Default ['attachment', 'inline'] + | -Common folders + | Default folder locations and paths assumed if none is provided + | -Open IMAP options: + | DISABLE_AUTHENTICATOR - Disable authentication properties. + | Use 'GSSAPI' if you encounter the following + | error: "Kerberos error: No credentials cache + | file found (try running kinit) (...)" + | or ['GSSAPI','PLAIN'] if you are using outlook mail + | -Decoder options (currently only the message subject and attachment name decoder can be set) + | 'utf-8' - Uses imap_utf8($string) to decode a string + | 'mimeheader' - Uses mb_decode_mimeheader($string) to decode a string + | + */ + 'options' => [ + 'delimiter' => '/', + 'fetch' => \Webklex\PHPIMAP\IMAP::FT_PEEK, + 'sequence' => \Webklex\PHPIMAP\IMAP::ST_MSGN, + 'fetch_body' => true, + 'fetch_flags' => true, + 'soft_fail' => false, + 'rfc822' => true, + 'message_key' => 'list', + 'fetch_order' => 'asc', + 'dispositions' => ['attachment', 'inline'], + 'common_folders' => [ + "root" => "INBOX", + "junk" => "INBOX/Junk", + "draft" => "INBOX/Drafts", + "sent" => "INBOX/Sent", + "trash" => "INBOX/Trash", + ], + 'decoder' => [ + 'message' => 'utf-8', // mimeheader + 'attachment' => 'utf-8' // mimeheader + ], + 'open' => [ + // 'DISABLE_AUTHENTICATOR' => 'GSSAPI' + ] + ], + + /* + |-------------------------------------------------------------------------- + | Available flags + |-------------------------------------------------------------------------- + | + | List all available / supported flags. Set to null to accept all given flags. + */ + 'flags' => ['recent', 'flagged', 'answered', 'deleted', 'seen', 'draft'], + + /* + |-------------------------------------------------------------------------- + | Available events + |-------------------------------------------------------------------------- + | + */ + 'events' => [ + "message" => [ + 'new' => \Webklex\PHPIMAP\Events\MessageNewEvent::class, + 'moved' => \Webklex\PHPIMAP\Events\MessageMovedEvent::class, + 'copied' => \Webklex\PHPIMAP\Events\MessageCopiedEvent::class, + 'deleted' => \Webklex\PHPIMAP\Events\MessageDeletedEvent::class, + 'restored' => \Webklex\PHPIMAP\Events\MessageRestoredEvent::class, + ], + "folder" => [ + 'new' => \Webklex\PHPIMAP\Events\FolderNewEvent::class, + 'moved' => \Webklex\PHPIMAP\Events\FolderMovedEvent::class, + 'deleted' => \Webklex\PHPIMAP\Events\FolderDeletedEvent::class, + ], + "flag" => [ + 'new' => \Webklex\PHPIMAP\Events\FlagNewEvent::class, + 'deleted' => \Webklex\PHPIMAP\Events\FlagDeletedEvent::class, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Available masking options + |-------------------------------------------------------------------------- + | + | By using your own custom masks you can implement your own methods for + | a better and faster access and less code to write. + | + | Checkout the two examples custom_attachment_mask and custom_message_mask + | for a quick start. + | + | The provided masks below are used as the default masks. + */ + 'masks' => [ + 'message' => \Webklex\PHPIMAP\Support\Masks\MessageMask::class, + 'attachment' => \Webklex\PHPIMAP\Support\Masks\AttachmentMask::class + ] +]; diff --git a/htdocs/includes/webklex/php-imap/vendor/autoload.php b/htdocs/includes/webklex/php-imap/vendor/autoload.php new file mode 100644 index 00000000000..f4e36963c6a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/autoload.php @@ -0,0 +1,74 @@ + __DIR__ . '/illuminate/macroable', + 1 => __DIR__ . '/illuminate/collections', + 2 => __DIR__ . '/illuminate/support', + 3 => __DIR__ . '/illuminate/contracts' + ); + foreach($listofdir as $dir) { + if (file_exists($dir . '/' . $class_name . '.php')) { + require_once $dir . '/' . $class_name . '.php'; + break; + } + } + } + + $preg_match = preg_match('/^Illuminate\\\Contracts\\\/', $class_name); + if (1 === $preg_match) { + $class_name = preg_replace('/\\\/', '/', $class_name); + $class_name = preg_replace('/^Illuminate\\/Contracts\\//', '', $class_name); + $listofdir = array( + 0 => __DIR__ . '/illuminate/contracts' + ); + foreach($listofdir as $dir) { + if (file_exists($dir . '/' . $class_name . '.php')) { + require_once $dir . '/' . $class_name . '.php'; + break; + } + } + } + + $preg_match = preg_match('/^Carbon\\\/', $class_name); + if (1 === $preg_match) { + $class_name = preg_replace('/\\\/', '/', $class_name); + $class_name = preg_replace('/^Carbon\\//', '', $class_name); + $listofdir = array( + 0 => __DIR__ . '/nesbot/carbon/src/Carbon' + ); + foreach($listofdir as $dir) { + if (file_exists($dir . '/' . $class_name . '.php')) { + require_once $dir . '/' . $class_name . '.php'; + break; + } + } + } + +}); diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/ClassLoader.php b/htdocs/includes/webklex/php-imap/vendor/composer/ClassLoader.php new file mode 100644 index 00000000000..afef3fa2ad8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/ClassLoader.php @@ -0,0 +1,572 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var ?string */ + private $vendorDir; + + // PSR-4 + /** + * @var array[] + * @psalm-var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array[] + * @psalm-var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var array[] + * @psalm-var array + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * @var array[] + * @psalm-var array> + */ + private $prefixesPsr0 = array(); + /** + * @var array[] + * @psalm-var array + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var string[] + * @psalm-var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var bool[] + * @psalm-var array + */ + private $missingClasses = array(); + + /** @var ?string */ + private $apcuPrefix; + + /** + * @var self[] + */ + private static $registeredLoaders = array(); + + /** + * @param ?string $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + } + + /** + * @return string[] + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array[] + * @psalm-return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return array[] + * @psalm-return array + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return array[] + * @psalm-return array + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return string[] Array of classname => path + * @psalm-return array + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param string[] $classMap Class to filename map + * @psalm-param array $classMap + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders indexed by their corresponding vendor directories. + * + * @return self[] + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + * @private + */ +function includeFile($file) +{ + include $file; +} diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/InstalledVersions.php b/htdocs/includes/webklex/php-imap/vendor/composer/InstalledVersions.php new file mode 100644 index 00000000000..c6b54af7ba2 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/InstalledVersions.php @@ -0,0 +1,352 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints($constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = require __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + $installed[] = self::$installed; + + return $installed; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/LICENSE b/htdocs/includes/webklex/php-imap/vendor/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +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. + diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/autoload_classmap.php b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_classmap.php new file mode 100644 index 00000000000..9a7ddd418e5 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_classmap.php @@ -0,0 +1,460 @@ + $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', + 'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', + 'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', + 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/Assert.php', + 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/AssertionFailedError.php', + 'PHPUnit\\Framework\\BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/BaseTestListener.php', + 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/Test.php', + 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestCase.php', + 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestListener.php', + 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestSuite.php', + 'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php', + 'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php', + 'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestCase.php', + 'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php', + 'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/src/Extensions/RepeatedTest.php', + 'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/src/Extensions/TestDecorator.php', + 'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/src/Extensions/TicketListener.php', + 'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php', + 'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', + 'PHPUnit_Framework_BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php', + 'PHPUnit_Framework_CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', + 'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint.php', + 'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/And.php', + 'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', + 'PHPUnit_Framework_Constraint_ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', + 'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', + 'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', + 'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', + 'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', + 'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', + 'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php', + 'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', + 'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', + 'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', + 'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php', + 'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', + 'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', + 'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', + 'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', + 'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', + 'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', + 'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', + 'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', + 'PHPUnit_Framework_Constraint_IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', + 'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', + 'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', + 'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', + 'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', + 'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php', + 'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', + 'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Not.php', + 'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', + 'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Or.php', + 'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php', + 'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', + 'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', + 'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', + 'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php', + 'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', + 'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', + 'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', + 'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Xor.php', + 'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error.php', + 'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', + 'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php', + 'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php', + 'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php', + 'PHPUnit_Framework_ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', + 'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', + 'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php', + 'PHPUnit_Framework_IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', + 'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', + 'PHPUnit_Framework_InvalidCoversTargetError' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php', + 'PHPUnit_Framework_InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', + 'PHPUnit_Framework_MockObject_BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php', + 'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php', + 'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php', + 'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php', + 'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php', + 'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php', + 'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php', + 'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php', + 'PHPUnit_Framework_MockObject_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php', + 'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php', + 'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php', + 'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php', + 'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php', + 'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php', + 'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php', + 'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php', + 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php', + 'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php', + 'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', + 'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php', + 'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php', + 'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php', + 'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php', + 'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php', + 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php', + 'PHPUnit_Framework_MockObject_RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php', + 'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php', + 'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php', + 'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php', + 'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php', + 'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php', + 'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php', + 'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php', + 'PHPUnit_Framework_RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php', + 'PHPUnit_Framework_RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php', + 'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php', + 'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php', + 'PHPUnit_Framework_SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', + 'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php', + 'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', + 'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php', + 'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php', + 'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php', + 'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php', + 'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php', + 'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php', + 'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', + 'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php', + 'PHPUnit_Framework_UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', + 'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php', + 'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', + 'PHPUnit_Runner_Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php', + 'PHPUnit_Runner_Filter_Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php', + 'PHPUnit_Runner_Filter_GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group.php', + 'PHPUnit_Runner_Filter_Group_Exclude' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php', + 'PHPUnit_Runner_Filter_Group_Include' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php', + 'PHPUnit_Runner_Filter_Test' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Test.php', + 'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', + 'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', + 'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', + 'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', + 'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', + 'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php', + 'PHPUnit_Util_Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php', + 'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php', + 'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php', + 'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php', + 'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', + 'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', + 'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php', + 'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', + 'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', + 'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JSON.php', + 'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php', + 'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TAP.php', + 'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/src/Util/PHP.php', + 'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Default.php', + 'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Windows.php', + 'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php', + 'PHPUnit_Util_Regex' => $vendorDir . '/phpunit/phpunit/src/Util/Regex.php', + 'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/src/Util/String.php', + 'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', + 'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', + 'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', + 'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php', + 'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php', + 'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Util/TestSuiteIterator.php', + 'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', + 'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/src/Util/XML.php', + 'PHP_CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', + 'PHP_CodeCoverage_Driver' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver.php', + 'PHP_CodeCoverage_Driver_HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php', + 'PHP_CodeCoverage_Driver_PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/PHPDBG.php', + 'PHP_CodeCoverage_Driver_Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php', + 'PHP_CodeCoverage_Exception' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Exception.php', + 'PHP_CodeCoverage_Exception_UnintentionallyCoveredCode' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php', + 'PHP_CodeCoverage_Filter' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Filter.php', + 'PHP_CodeCoverage_Report_Clover' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php', + 'PHP_CodeCoverage_Report_Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php', + 'PHP_CodeCoverage_Report_Factory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php', + 'PHP_CodeCoverage_Report_HTML' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php', + 'PHP_CodeCoverage_Report_HTML_Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php', + 'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php', + 'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php', + 'PHP_CodeCoverage_Report_HTML_Renderer_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php', + 'PHP_CodeCoverage_Report_Node' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php', + 'PHP_CodeCoverage_Report_Node_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php', + 'PHP_CodeCoverage_Report_Node_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php', + 'PHP_CodeCoverage_Report_Node_Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php', + 'PHP_CodeCoverage_Report_PHP' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php', + 'PHP_CodeCoverage_Report_Text' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php', + 'PHP_CodeCoverage_Report_XML' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php', + 'PHP_CodeCoverage_Report_XML_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php', + 'PHP_CodeCoverage_Report_XML_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php', + 'PHP_CodeCoverage_Report_XML_File_Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php', + 'PHP_CodeCoverage_Report_XML_File_Method' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php', + 'PHP_CodeCoverage_Report_XML_File_Report' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php', + 'PHP_CodeCoverage_Report_XML_File_Unit' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php', + 'PHP_CodeCoverage_Report_XML_Node' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php', + 'PHP_CodeCoverage_Report_XML_Project' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php', + 'PHP_CodeCoverage_Report_XML_Tests' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php', + 'PHP_CodeCoverage_Report_XML_Totals' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php', + 'PHP_CodeCoverage_Util' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Util.php', + 'PHP_CodeCoverage_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php', + 'PHP_Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', + 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ASYNC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AWAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMPILER_HALT_OFFSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENUM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EQUALS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ONUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SUPER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php', + 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', + 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHERE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_ATTRIBUTE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_CATEGORY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_CATEGORY_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_CHILDREN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_REQUIRED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_TAG_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_TAG_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_TEXT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', + 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', + 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', + 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', + 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', + 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php', + 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php', + 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php', + 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php', + 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php', + 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php', + 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php', + 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php', + 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php', + 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php', + 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php', + 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => $vendorDir . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php', + 'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php', + 'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php', + 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php', + 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', + 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', + 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php', + 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', + 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/Exception.php', + 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php', + 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/RuntimeException.php', + 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php', + 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php', + 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php', + 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php', + 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', + 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', + 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', + 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', + 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', +); diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/autoload_files.php b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_files.php new file mode 100644 index 00000000000..c4795d09367 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_files.php @@ -0,0 +1,15 @@ + $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', + 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', + '60799491728b879e74601d83e38b2cad' => $vendorDir . '/illuminate/collections/helpers.php', + '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', + '72579e7bd17821bb1321b87411366eae' => $vendorDir . '/illuminate/support/helpers.php', + '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', +); diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/autoload_namespaces.php b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_namespaces.php new file mode 100644 index 00000000000..15a2ff3ad6d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/voku/portable-ascii/src/voku'), + 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'), + 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'Webklex\\PHPIMAP\\' => array($baseDir . '/src'), + 'Tests\\' => array($baseDir . '/tests'), + 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), + 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), + 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), + 'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'), + 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), + 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'), + 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'), + 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), + 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'), + 'Illuminate\\Support\\' => array($vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/support'), + 'Illuminate\\Pagination\\' => array($vendorDir . '/illuminate/pagination'), + 'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), + 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), + 'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), + 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), +); diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/autoload_real.php b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_real.php new file mode 100644 index 00000000000..794a31affba --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_real.php @@ -0,0 +1,57 @@ +register(true); + + $includeFiles = \Composer\Autoload\ComposerStaticInit4da13270269c89a28e472e1f7324e6d1::$files; + foreach ($includeFiles as $fileIdentifier => $file) { + composerRequire4da13270269c89a28e472e1f7324e6d1($fileIdentifier, $file); + } + + return $loader; + } +} + +/** + * @param string $fileIdentifier + * @param string $file + * @return void + */ +function composerRequire4da13270269c89a28e472e1f7324e6d1($fileIdentifier, $file) +{ + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/autoload_static.php b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_static.php new file mode 100644 index 00000000000..0120578feb6 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/autoload_static.php @@ -0,0 +1,623 @@ + __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', + 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', + '60799491728b879e74601d83e38b2cad' => __DIR__ . '/..' . '/illuminate/collections/helpers.php', + '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', + '72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php', + '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'v' => + array ( + 'voku\\' => 5, + ), + 'p' => + array ( + 'phpDocumentor\\Reflection\\' => 25, + ), + 'W' => + array ( + 'Webmozart\\Assert\\' => 17, + 'Webklex\\PHPIMAP\\' => 16, + ), + 'T' => + array ( + // 'Tests\\' => 6, + ), + 'S' => + array ( + 'Symfony\\Polyfill\\Php80\\' => 23, + 'Symfony\\Polyfill\\Mbstring\\' => 26, + 'Symfony\\Polyfill\\Ctype\\' => 23, + 'Symfony\\Contracts\\Translation\\' => 30, + 'Symfony\\Component\\Yaml\\' => 23, + 'Symfony\\Component\\Translation\\' => 30, + 'Symfony\\Component\\HttpFoundation\\' => 33, + ), + 'P' => + array ( + 'Psr\\SimpleCache\\' => 16, + 'Psr\\Container\\' => 14, + 'Prophecy\\' => 9, + ), + 'I' => + array ( + 'Illuminate\\Support\\' => 19, + 'Illuminate\\Pagination\\' => 22, + 'Illuminate\\Contracts\\' => 21, + ), + 'D' => + array ( + 'Doctrine\\Instantiator\\' => 22, + 'Doctrine\\Inflector\\' => 19, + ), + 'C' => + array ( + 'Carbon\\' => 7, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'voku\\' => + array ( + 0 => __DIR__ . '/..' . '/voku/portable-ascii/src/voku', + ), + 'phpDocumentor\\Reflection\\' => + array ( + 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src', + 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', + 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', + ), + 'Webmozart\\Assert\\' => + array ( + 0 => __DIR__ . '/..' . '/webmozart/assert/src', + ), + 'Webklex\\PHPIMAP\\' => + array ( + 0 => __DIR__ . '/../..' . '/src', + ), + 'Tests\\' => + array ( + 0 => __DIR__ . '/../..' . '/tests', + ), + 'Symfony\\Polyfill\\Php80\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php80', + ), + 'Symfony\\Polyfill\\Mbstring\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', + ), + 'Symfony\\Polyfill\\Ctype\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', + ), + 'Symfony\\Contracts\\Translation\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/translation-contracts', + ), + 'Symfony\\Component\\Yaml\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/yaml', + ), + 'Symfony\\Component\\Translation\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/translation', + ), + 'Symfony\\Component\\HttpFoundation\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/http-foundation', + ), + 'Psr\\SimpleCache\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/simple-cache/src', + ), + 'Psr\\Container\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/container/src', + ), + 'Prophecy\\' => + array ( + 0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy', + ), + 'Illuminate\\Support\\' => + array ( + 0 => __DIR__ . '/..' . '/illuminate/macroable', + 1 => __DIR__ . '/..' . '/illuminate/collections', + 2 => __DIR__ . '/..' . '/illuminate/support', + ), + 'Illuminate\\Pagination\\' => + array ( + 0 => __DIR__ . '/..' . '/illuminate/pagination', + ), + 'Illuminate\\Contracts\\' => + array ( + 0 => __DIR__ . '/..' . '/illuminate/contracts', + ), + 'Doctrine\\Instantiator\\' => + array ( + 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', + ), + 'Doctrine\\Inflector\\' => + array ( + 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', + ), + 'Carbon\\' => + array ( + 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon', + ), + ); + + public static $classMap = array ( + 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', + 'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', + 'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', + 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/Assert.php', + 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/AssertionFailedError.php', + 'PHPUnit\\Framework\\BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/BaseTestListener.php', + 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/Test.php', + 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestCase.php', + 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestListener.php', + 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestSuite.php', + 'PHPUnit_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php', + 'PHPUnit_Extensions_GroupTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php', + 'PHPUnit_Extensions_PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestCase.php', + 'PHPUnit_Extensions_PhptTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php', + 'PHPUnit_Extensions_RepeatedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/RepeatedTest.php', + 'PHPUnit_Extensions_TestDecorator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TestDecorator.php', + 'PHPUnit_Extensions_TicketListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TicketListener.php', + 'PHPUnit_Framework_Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php', + 'PHPUnit_Framework_AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', + 'PHPUnit_Framework_BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/BaseTestListener.php', + 'PHPUnit_Framework_CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', + 'PHPUnit_Framework_Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint.php', + 'PHPUnit_Framework_Constraint_And' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/And.php', + 'PHPUnit_Framework_Constraint_ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', + 'PHPUnit_Framework_Constraint_ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', + 'PHPUnit_Framework_Constraint_Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', + 'PHPUnit_Framework_Constraint_Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', + 'PHPUnit_Framework_Constraint_ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', + 'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', + 'PHPUnit_Framework_Constraint_Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', + 'PHPUnit_Framework_Constraint_Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php', + 'PHPUnit_Framework_Constraint_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', + 'PHPUnit_Framework_Constraint_ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', + 'PHPUnit_Framework_Constraint_ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', + 'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php', + 'PHPUnit_Framework_Constraint_FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', + 'PHPUnit_Framework_Constraint_GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', + 'PHPUnit_Framework_Constraint_IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', + 'PHPUnit_Framework_Constraint_IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', + 'PHPUnit_Framework_Constraint_IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', + 'PHPUnit_Framework_Constraint_IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', + 'PHPUnit_Framework_Constraint_IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', + 'PHPUnit_Framework_Constraint_IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', + 'PHPUnit_Framework_Constraint_IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', + 'PHPUnit_Framework_Constraint_IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', + 'PHPUnit_Framework_Constraint_IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', + 'PHPUnit_Framework_Constraint_IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', + 'PHPUnit_Framework_Constraint_JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', + 'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php', + 'PHPUnit_Framework_Constraint_LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', + 'PHPUnit_Framework_Constraint_Not' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Not.php', + 'PHPUnit_Framework_Constraint_ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', + 'PHPUnit_Framework_Constraint_Or' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Or.php', + 'PHPUnit_Framework_Constraint_PCREMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php', + 'PHPUnit_Framework_Constraint_SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', + 'PHPUnit_Framework_Constraint_StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', + 'PHPUnit_Framework_Constraint_StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', + 'PHPUnit_Framework_Constraint_StringMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php', + 'PHPUnit_Framework_Constraint_StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', + 'PHPUnit_Framework_Constraint_TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', + 'PHPUnit_Framework_Constraint_TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', + 'PHPUnit_Framework_Constraint_Xor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Xor.php', + 'PHPUnit_Framework_Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error.php', + 'PHPUnit_Framework_Error_Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', + 'PHPUnit_Framework_Error_Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php', + 'PHPUnit_Framework_Error_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php', + 'PHPUnit_Framework_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php', + 'PHPUnit_Framework_ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', + 'PHPUnit_Framework_ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', + 'PHPUnit_Framework_IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php', + 'PHPUnit_Framework_IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', + 'PHPUnit_Framework_IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', + 'PHPUnit_Framework_InvalidCoversTargetError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php', + 'PHPUnit_Framework_InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', + 'PHPUnit_Framework_MockObject_BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php', + 'PHPUnit_Framework_MockObject_Builder_Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php', + 'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php', + 'PHPUnit_Framework_MockObject_Builder_Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php', + 'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php', + 'PHPUnit_Framework_MockObject_Builder_Namespace' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php', + 'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php', + 'PHPUnit_Framework_MockObject_Builder_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php', + 'PHPUnit_Framework_MockObject_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php', + 'PHPUnit_Framework_MockObject_Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php', + 'PHPUnit_Framework_MockObject_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php', + 'PHPUnit_Framework_MockObject_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php', + 'PHPUnit_Framework_MockObject_Invocation_Object' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php', + 'PHPUnit_Framework_MockObject_Invocation_Static' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php', + 'PHPUnit_Framework_MockObject_Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php', + 'PHPUnit_Framework_MockObject_Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php', + 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php', + 'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php', + 'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', + 'PHPUnit_Framework_MockObject_Matcher_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php', + 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php', + 'PHPUnit_Framework_MockObject_Matcher_MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php', + 'PHPUnit_Framework_MockObject_Matcher_Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php', + 'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php', + 'PHPUnit_Framework_MockObject_MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php', + 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php', + 'PHPUnit_Framework_MockObject_RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php', + 'PHPUnit_Framework_MockObject_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php', + 'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php', + 'PHPUnit_Framework_MockObject_Stub_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php', + 'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php', + 'PHPUnit_Framework_MockObject_Stub_Return' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php', + 'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php', + 'PHPUnit_Framework_MockObject_Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php', + 'PHPUnit_Framework_OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php', + 'PHPUnit_Framework_RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php', + 'PHPUnit_Framework_RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php', + 'PHPUnit_Framework_SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php', + 'PHPUnit_Framework_SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php', + 'PHPUnit_Framework_SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', + 'PHPUnit_Framework_SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php', + 'PHPUnit_Framework_SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', + 'PHPUnit_Framework_SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php', + 'PHPUnit_Framework_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php', + 'PHPUnit_Framework_TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php', + 'PHPUnit_Framework_TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php', + 'PHPUnit_Framework_TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php', + 'PHPUnit_Framework_TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php', + 'PHPUnit_Framework_TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', + 'PHPUnit_Framework_TestSuite_DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php', + 'PHPUnit_Framework_UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', + 'PHPUnit_Framework_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php', + 'PHPUnit_Runner_BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', + 'PHPUnit_Runner_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php', + 'PHPUnit_Runner_Filter_Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php', + 'PHPUnit_Runner_Filter_GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group.php', + 'PHPUnit_Runner_Filter_Group_Exclude' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php', + 'PHPUnit_Runner_Filter_Group_Include' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php', + 'PHPUnit_Runner_Filter_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Test.php', + 'PHPUnit_Runner_StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', + 'PHPUnit_Runner_TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', + 'PHPUnit_Runner_Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', + 'PHPUnit_TextUI_Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', + 'PHPUnit_TextUI_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', + 'PHPUnit_TextUI_TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php', + 'PHPUnit_Util_Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php', + 'PHPUnit_Util_Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php', + 'PHPUnit_Util_ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php', + 'PHPUnit_Util_Fileloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php', + 'PHPUnit_Util_Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', + 'PHPUnit_Util_Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', + 'PHPUnit_Util_Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php', + 'PHPUnit_Util_GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', + 'PHPUnit_Util_InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', + 'PHPUnit_Util_Log_JSON' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JSON.php', + 'PHPUnit_Util_Log_JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php', + 'PHPUnit_Util_Log_TAP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TAP.php', + 'PHPUnit_Util_PHP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP.php', + 'PHPUnit_Util_PHP_Default' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Default.php', + 'PHPUnit_Util_PHP_Windows' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Windows.php', + 'PHPUnit_Util_Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php', + 'PHPUnit_Util_Regex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Regex.php', + 'PHPUnit_Util_String' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/String.php', + 'PHPUnit_Util_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', + 'PHPUnit_Util_TestDox_NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', + 'PHPUnit_Util_TestDox_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', + 'PHPUnit_Util_TestDox_ResultPrinter_HTML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php', + 'PHPUnit_Util_TestDox_ResultPrinter_Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php', + 'PHPUnit_Util_TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestSuiteIterator.php', + 'PHPUnit_Util_Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', + 'PHPUnit_Util_XML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XML.php', + 'PHP_CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', + 'PHP_CodeCoverage_Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver.php', + 'PHP_CodeCoverage_Driver_HHVM' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php', + 'PHP_CodeCoverage_Driver_PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/PHPDBG.php', + 'PHP_CodeCoverage_Driver_Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php', + 'PHP_CodeCoverage_Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Exception.php', + 'PHP_CodeCoverage_Exception_UnintentionallyCoveredCode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php', + 'PHP_CodeCoverage_Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Filter.php', + 'PHP_CodeCoverage_Report_Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php', + 'PHP_CodeCoverage_Report_Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php', + 'PHP_CodeCoverage_Report_Factory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php', + 'PHP_CodeCoverage_Report_HTML' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php', + 'PHP_CodeCoverage_Report_HTML_Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php', + 'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php', + 'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php', + 'PHP_CodeCoverage_Report_HTML_Renderer_File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php', + 'PHP_CodeCoverage_Report_Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php', + 'PHP_CodeCoverage_Report_Node_Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php', + 'PHP_CodeCoverage_Report_Node_File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php', + 'PHP_CodeCoverage_Report_Node_Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php', + 'PHP_CodeCoverage_Report_PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php', + 'PHP_CodeCoverage_Report_Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php', + 'PHP_CodeCoverage_Report_XML' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php', + 'PHP_CodeCoverage_Report_XML_Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php', + 'PHP_CodeCoverage_Report_XML_File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php', + 'PHP_CodeCoverage_Report_XML_File_Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php', + 'PHP_CodeCoverage_Report_XML_File_Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php', + 'PHP_CodeCoverage_Report_XML_File_Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php', + 'PHP_CodeCoverage_Report_XML_File_Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php', + 'PHP_CodeCoverage_Report_XML_Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php', + 'PHP_CodeCoverage_Report_XML_Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php', + 'PHP_CodeCoverage_Report_XML_Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php', + 'PHP_CodeCoverage_Report_XML_Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php', + 'PHP_CodeCoverage_Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Util.php', + 'PHP_CodeCoverage_Util_InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php', + 'PHP_Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', + 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ASYNC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AWAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMPILER_HALT_OFFSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENUM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EQUALS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_JOIN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LAMBDA_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LAMBDA_CP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LAMBDA_OP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ONUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SHAPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SUPER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php', + 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', + 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TYPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TYPELIST_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TYPELIST_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHERE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_ATTRIBUTE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_CATEGORY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_CATEGORY_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_CHILDREN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_REQUIRED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_TAG_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_TAG_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XHP_TEXT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', + 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', + 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', + 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', + 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', + 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php', + 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php', + 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php', + 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php', + 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php', + 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php', + 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php', + 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php', + 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php', + 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php', + 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php', + 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php', + 'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php', + 'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php', + 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php', + 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', + 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', + 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php', + 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', + 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/Exception.php', + 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php', + 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/RuntimeException.php', + 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php', + 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php', + 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php', + 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php', + 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', + 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', + 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', + 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', + 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit4da13270269c89a28e472e1f7324e6d1::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit4da13270269c89a28e472e1f7324e6d1::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit4da13270269c89a28e472e1f7324e6d1::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/installed.json b/htdocs/includes/webklex/php-imap/vendor/composer/installed.json new file mode 100644 index 00000000000..ef8e77adb03 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/installed.json @@ -0,0 +1,2565 @@ +{ + "packages": [ + { + "name": "doctrine/inflector", + "version": "2.0.4", + "version_normalized": "2.0.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.10" + }, + "time": "2021-10-22T20:16:43+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "install-path": "../doctrine/inflector" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "version_normalized": "1.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "time": "2022-03-03T08:28:38+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "install-path": "../doctrine/instantiator" + }, + { + "name": "illuminate/collections", + "version": "v8.83.23", + "version_normalized": "8.83.23.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/collections.git", + "reference": "705a4e1ef93cd492c45b9b3e7911cccc990a07f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/collections/zipball/705a4e1ef93cd492c45b9b3e7911cccc990a07f4", + "reference": "705a4e1ef93cd492c45b9b3e7911cccc990a07f4", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "php": "^7.3|^8.0" + }, + "suggest": { + "symfony/var-dumper": "Required to use the dump method (^5.4)." + }, + "time": "2022-06-23T15:29:49+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "helpers.php" + ], + "psr-4": { + "Illuminate\\Support\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Collections package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "install-path": "../illuminate/collections" + }, + { + "name": "illuminate/contracts", + "version": "v8.83.23", + "version_normalized": "8.83.23.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/contracts.git", + "reference": "5e0fd287a1b22a6b346a9f7cd484d8cf0234585d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/5e0fd287a1b22a6b346a9f7cd484d8cf0234585d", + "reference": "5e0fd287a1b22a6b346a9f7cd484d8cf0234585d", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0", + "psr/container": "^1.0", + "psr/simple-cache": "^1.0" + }, + "time": "2022-01-13T14:47:47+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Illuminate\\Contracts\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Contracts package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "install-path": "../illuminate/contracts" + }, + { + "name": "illuminate/macroable", + "version": "v8.83.23", + "version_normalized": "8.83.23.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/macroable.git", + "reference": "aed81891a6e046fdee72edd497f822190f61c162" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/macroable/zipball/aed81891a6e046fdee72edd497f822190f61c162", + "reference": "aed81891a6e046fdee72edd497f822190f61c162", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "time": "2021-11-16T13:57:03+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Macroable package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "install-path": "../illuminate/macroable" + }, + { + "name": "illuminate/pagination", + "version": "v8.83.23", + "version_normalized": "8.83.23.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/pagination.git", + "reference": "16fe8dc35f9d18c58a3471469af656a02e9ab692" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/pagination/zipball/16fe8dc35f9d18c58a3471469af656a02e9ab692", + "reference": "16fe8dc35f9d18c58a3471469af656a02e9ab692", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" + }, + "time": "2022-06-27T13:26:06+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Illuminate\\Pagination\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Pagination package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "install-path": "../illuminate/pagination" + }, + { + "name": "illuminate/support", + "version": "v8.83.23", + "version_normalized": "8.83.23.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/support.git", + "reference": "c3d643e77082786ae8a51502c757e9b1a3ee254e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/support/zipball/c3d643e77082786ae8a51502c757e9b1a3ee254e", + "reference": "c3d643e77082786ae8a51502c757e9b1a3ee254e", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.4|^2.0", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "nesbot/carbon": "^2.53.1", + "php": "^7.3|^8.0", + "voku/portable-ascii": "^1.6.1" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "suggest": { + "illuminate/filesystem": "Required to use the composer class (^8.0).", + "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0.2).", + "ramsey/uuid": "Required to use Str::uuid() (^4.2.2).", + "symfony/process": "Required to use the composer class (^5.4).", + "symfony/var-dumper": "Required to use the dd function (^5.4).", + "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)." + }, + "time": "2022-06-27T13:26:30+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "helpers.php" + ], + "psr-4": { + "Illuminate\\Support\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Support package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "install-path": "../illuminate/support" + }, + { + "name": "nesbot/carbon", + "version": "2.61.0", + "version_normalized": "2.61.0.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bdf4f4fe3a3eac4de84dbec0738082a862c68ba6", + "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.0", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "time": "2022-08-06T12:41:24+00:00", + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "install-path": "../nesbot/carbon" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "version_normalized": "2.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "time": "2020-06-27T09:03:43+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "install-path": "../phpdocumentor/reflection-common" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "version_normalized": "5.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "time": "2021-10-19T17:43:47+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "install-path": "../phpdocumentor/reflection-docblock" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.1", + "version_normalized": "1.6.1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "77a32518733312af16a44300404e945338981de3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "psalm/phar": "^4.8" + }, + "time": "2022-03-15T21:29:03+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" + }, + "install-path": "../phpdocumentor/type-resolver" + }, + { + "name": "phpspec/prophecy", + "version": "v1.10.3", + "version_normalized": "1.10.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "451c3cd1418cf640de218914901e51b064abb093" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "time": "2020-03-05T15:02:03+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.10.3" + }, + "install-path": "../phpspec/prophecy" + }, + { + "name": "phpunit/php-code-coverage", + "version": "2.2.4", + "version_normalized": "2.2.4.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "~1.3", + "sebastian/environment": "^1.3.2", + "sebastian/version": "~1.0" + }, + "require-dev": { + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "~4" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.2.1", + "ext-xmlwriter": "*" + }, + "time": "2015-10-06T15:47:00+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/2.2" + }, + "install-path": "../phpunit/php-code-coverage" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.5", + "version_normalized": "1.4.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2017-11-27T13:52:08+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5" + }, + "install-path": "../phpunit/php-file-iterator" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "version_normalized": "1.2.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2015-06-21T13:50:34+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, + "install-path": "../phpunit/php-text-template" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "version_normalized": "1.0.9.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "time": "2017-02-26T11:10:40+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/master" + }, + "install-path": "../phpunit/php-timer" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.12", + "version_normalized": "1.4.12.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "time": "2017-12-04T08:55:13+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4" + }, + "abandoned": true, + "install-path": "../phpunit/php-token-stream" + }, + { + "name": "phpunit/phpunit", + "version": "4.8.36", + "version_normalized": "4.8.36.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "~2.1", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.2.2", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.3", + "sebastian/exporter": "~1.2", + "sebastian/global-state": "~1.0", + "sebastian/version": "~1.0", + "symfony/yaml": "~2.1|~3.0" + }, + "suggest": { + "phpunit/php-invoker": "~1.1" + }, + "time": "2017-06-21T08:07:12+00:00", + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.8.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/4.8.36" + }, + "install-path": "../phpunit/phpunit" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "2.3.8", + "version_normalized": "2.3.8.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": ">=5.3.3", + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "suggest": { + "ext-soap": "*" + }, + "time": "2015-10-02T06:51:40+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues", + "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/2.3" + }, + "abandoned": true, + "install-path": "../phpunit/phpunit-mock-objects" + }, + { + "name": "psr/container", + "version": "1.1.2", + "version_normalized": "1.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "time": "2021-11-05T16:50:12+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "install-path": "../psr/container" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2017-10-23T01:57:42+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "install-path": "../psr/simple-cache" + }, + { + "name": "sebastian/comparator", + "version": "1.2.4", + "version_normalized": "1.2.4.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "time": "2017-01-29T09:50:25+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/1.2" + }, + "install-path": "../sebastian/comparator" + }, + { + "name": "sebastian/diff", + "version": "1.4.3", + "version_normalized": "1.4.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "time": "2017-05-22T07:24:03+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/1.4" + }, + "install-path": "../sebastian/diff" + }, + { + "name": "sebastian/environment", + "version": "1.3.8", + "version_normalized": "1.3.8.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8 || ^5.0" + }, + "time": "2016-08-18T05:49:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/1.3" + }, + "install-path": "../sebastian/environment" + }, + { + "name": "sebastian/exporter", + "version": "1.2.2", + "version_normalized": "1.2.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~1.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" + }, + "time": "2016-06-17T09:04:28+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/master" + }, + "install-path": "../sebastian/exporter" + }, + { + "name": "sebastian/global-state", + "version": "1.1.1", + "version_normalized": "1.1.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "time": "2015-10-12T03:26:01+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1" + }, + "install-path": "../sebastian/global-state" + }, + { + "name": "sebastian/recursion-context", + "version": "1.0.5", + "version_normalized": "1.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "time": "2016-10-03T07:41:43+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/master" + }, + "install-path": "../sebastian/recursion-context" + }, + { + "name": "sebastian/version", + "version": "1.0.6", + "version_normalized": "1.0.6.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "shasum": "" + }, + "time": "2015-06-21T13:59:46+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/1.0.6" + }, + "install-path": "../sebastian/version" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.2", + "version_normalized": "2.5.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2022-01-02T09:53:40+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/deprecation-contracts" + }, + { + "name": "symfony/http-foundation", + "version": "v5.4.11", + "version_normalized": "5.4.11.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "0a5868e0999e9d47859ba3d918548ff6943e6389" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0a5868e0999e9d47859ba3d918548ff6943e6389", + "reference": "0a5868e0999e9d47859ba3d918548ff6943e6389", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "time": "2022-07-20T13:00:38+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/http-foundation" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.26.0", + "version_normalized": "1.26.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "time": "2022-05-24T11:49:31+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-ctype" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "version_normalized": "1.26.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "time": "2022-05-24T11:49:31+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-mbstring" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "version_normalized": "1.26.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2022-05-10T07:21:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-php80" + }, + { + "name": "symfony/translation", + "version": "v4.4.44", + "version_normalized": "4.4.44.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "af947fefc306cec6ea5a1f6160c7e305a71f2493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/af947fefc306cec6ea5a1f6160c7e305a71f2493", + "reference": "af947fefc306cec6ea5a1f6160c7e305a71f2493", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "symfony/translation-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "time": "2022-07-20T09:59:04+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/translation" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.5.2", + "version_normalized": "2.5.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "time": "2022-06-27T16:58:25+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/translation-contracts" + }, + { + "name": "symfony/yaml", + "version": "v3.4.47", + "version_normalized": "3.4.47.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "88289caa3c166321883f67fe5130188ebbb47094" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094", + "reference": "88289caa3c166321883f67fe5130188ebbb47094", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "time": "2020-10-24T10:57:07+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v3.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/yaml" + }, + { + "name": "voku/portable-ascii", + "version": "1.6.1", + "version_normalized": "1.6.1.0", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "time": "2022-01-24T18:55:24+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "install-path": "../voku/portable-ascii" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "version_normalized": "1.11.0.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "time": "2022-06-03T18:03:27+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "install-path": "../webmozart/assert" + } + ], + "dev": true, + "dev-package-names": [ + "doctrine/instantiator", + "phpdocumentor/reflection-common", + "phpdocumentor/reflection-docblock", + "phpdocumentor/type-resolver", + "phpspec/prophecy", + "phpunit/php-code-coverage", + "phpunit/php-file-iterator", + "phpunit/php-text-template", + "phpunit/php-timer", + "phpunit/php-token-stream", + "phpunit/phpunit", + "phpunit/phpunit-mock-objects", + "sebastian/comparator", + "sebastian/diff", + "sebastian/environment", + "sebastian/exporter", + "sebastian/global-state", + "sebastian/recursion-context", + "sebastian/version", + "symfony/polyfill-ctype", + "symfony/yaml", + "webmozart/assert" + ] +} diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/installed.php b/htdocs/includes/webklex/php-imap/vendor/composer/installed.php new file mode 100644 index 00000000000..8af6845c505 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/installed.php @@ -0,0 +1,371 @@ + array( + 'name' => 'webklex/php-imap', + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'reference' => '0f467d1c4283cc035ef474db3c733653feeb570f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + 'doctrine/inflector' => array( + 'pretty_version' => '2.0.4', + 'version' => '2.0.4.0', + 'reference' => '8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89', + 'type' => 'library', + 'install_path' => __DIR__ . '/../doctrine/inflector', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'doctrine/instantiator' => array( + 'pretty_version' => '1.4.1', + 'version' => '1.4.1.0', + 'reference' => '10dcfce151b967d20fde1b34ae6640712c3891bc', + 'type' => 'library', + 'install_path' => __DIR__ . '/../doctrine/instantiator', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'illuminate/collections' => array( + 'pretty_version' => 'v8.83.23', + 'version' => '8.83.23.0', + 'reference' => '705a4e1ef93cd492c45b9b3e7911cccc990a07f4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../illuminate/collections', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'illuminate/contracts' => array( + 'pretty_version' => 'v8.83.23', + 'version' => '8.83.23.0', + 'reference' => '5e0fd287a1b22a6b346a9f7cd484d8cf0234585d', + 'type' => 'library', + 'install_path' => __DIR__ . '/../illuminate/contracts', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'illuminate/macroable' => array( + 'pretty_version' => 'v8.83.23', + 'version' => '8.83.23.0', + 'reference' => 'aed81891a6e046fdee72edd497f822190f61c162', + 'type' => 'library', + 'install_path' => __DIR__ . '/../illuminate/macroable', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'illuminate/pagination' => array( + 'pretty_version' => 'v8.83.23', + 'version' => '8.83.23.0', + 'reference' => '16fe8dc35f9d18c58a3471469af656a02e9ab692', + 'type' => 'library', + 'install_path' => __DIR__ . '/../illuminate/pagination', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'illuminate/support' => array( + 'pretty_version' => 'v8.83.23', + 'version' => '8.83.23.0', + 'reference' => 'c3d643e77082786ae8a51502c757e9b1a3ee254e', + 'type' => 'library', + 'install_path' => __DIR__ . '/../illuminate/support', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'nesbot/carbon' => array( + 'pretty_version' => '2.61.0', + 'version' => '2.61.0.0', + 'reference' => 'bdf4f4fe3a3eac4de84dbec0738082a862c68ba6', + 'type' => 'library', + 'install_path' => __DIR__ . '/../nesbot/carbon', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'phpdocumentor/reflection-common' => array( + 'pretty_version' => '2.2.0', + 'version' => '2.2.0.0', + 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpdocumentor/reflection-common', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpdocumentor/reflection-docblock' => array( + 'pretty_version' => '5.3.0', + 'version' => '5.3.0.0', + 'reference' => '622548b623e81ca6d78b721c5e029f4ce664f170', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpdocumentor/reflection-docblock', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpdocumentor/type-resolver' => array( + 'pretty_version' => '1.6.1', + 'version' => '1.6.1.0', + 'reference' => '77a32518733312af16a44300404e945338981de3', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpdocumentor/type-resolver', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpspec/prophecy' => array( + 'pretty_version' => 'v1.10.3', + 'version' => '1.10.3.0', + 'reference' => '451c3cd1418cf640de218914901e51b064abb093', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpspec/prophecy', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-code-coverage' => array( + 'pretty_version' => '2.2.4', + 'version' => '2.2.4.0', + 'reference' => 'eabf68b476ac7d0f73793aada060f1c1a9bf8979', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-code-coverage', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-file-iterator' => array( + 'pretty_version' => '1.4.5', + 'version' => '1.4.5.0', + 'reference' => '730b01bc3e867237eaac355e06a36b85dd93a8b4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-file-iterator', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-text-template' => array( + 'pretty_version' => '1.2.1', + 'version' => '1.2.1.0', + 'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-text-template', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-timer' => array( + 'pretty_version' => '1.0.9', + 'version' => '1.0.9.0', + 'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-timer', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-token-stream' => array( + 'pretty_version' => '1.4.12', + 'version' => '1.4.12.0', + 'reference' => '1ce90ba27c42e4e44e6d8458241466380b51fa16', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-token-stream', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/phpunit' => array( + 'pretty_version' => '4.8.36', + 'version' => '4.8.36.0', + 'reference' => '46023de9a91eec7dfb06cc56cb4e260017298517', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/phpunit', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/phpunit-mock-objects' => array( + 'pretty_version' => '2.3.8', + 'version' => '2.3.8.0', + 'reference' => 'ac8e7a3db35738d56ee9a76e78a4e03d97628983', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/phpunit-mock-objects', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'psr/container' => array( + 'pretty_version' => '1.1.2', + 'version' => '1.1.2.0', + 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/container', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/simple-cache' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/simple-cache', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'sebastian/comparator' => array( + 'pretty_version' => '1.2.4', + 'version' => '1.2.4.0', + 'reference' => '2b7424b55f5047b47ac6e5ccb20b2aea4011d9be', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/comparator', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/diff' => array( + 'pretty_version' => '1.4.3', + 'version' => '1.4.3.0', + 'reference' => '7f066a26a962dbe58ddea9f72a4e82874a3975a4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/diff', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/environment' => array( + 'pretty_version' => '1.3.8', + 'version' => '1.3.8.0', + 'reference' => 'be2c607e43ce4c89ecd60e75c6a85c126e754aea', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/environment', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/exporter' => array( + 'pretty_version' => '1.2.2', + 'version' => '1.2.2.0', + 'reference' => '42c4c2eec485ee3e159ec9884f95b431287edde4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/exporter', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/global-state' => array( + 'pretty_version' => '1.1.1', + 'version' => '1.1.1.0', + 'reference' => 'bc37d50fea7d017d3d340f230811c9f1d7280af4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/global-state', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/recursion-context' => array( + 'pretty_version' => '1.0.5', + 'version' => '1.0.5.0', + 'reference' => 'b19cc3298482a335a95f3016d2f8a6950f0fbcd7', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/recursion-context', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/version' => array( + 'pretty_version' => '1.0.6', + 'version' => '1.0.6.0', + 'reference' => '58b3a85e7999757d6ad81c787a1fbf5ff6c628c6', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/version', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'symfony/deprecation-contracts' => array( + 'pretty_version' => 'v2.5.2', + 'version' => '2.5.2.0', + 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/http-foundation' => array( + 'pretty_version' => 'v5.4.11', + 'version' => '5.4.11.0', + 'reference' => '0a5868e0999e9d47859ba3d918548ff6943e6389', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/http-foundation', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/polyfill-ctype' => array( + 'pretty_version' => 'v1.26.0', + 'version' => '1.26.0.0', + 'reference' => '6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'symfony/polyfill-mbstring' => array( + 'pretty_version' => 'v1.26.0', + 'version' => '1.26.0.0', + 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/polyfill-php80' => array( + 'pretty_version' => 'v1.26.0', + 'version' => '1.26.0.0', + 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-php80', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/translation' => array( + 'pretty_version' => 'v4.4.44', + 'version' => '4.4.44.0', + 'reference' => 'af947fefc306cec6ea5a1f6160c7e305a71f2493', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/translation', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/translation-contracts' => array( + 'pretty_version' => 'v2.5.2', + 'version' => '2.5.2.0', + 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/translation-contracts', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/translation-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '1.0|2.0', + ), + ), + 'symfony/yaml' => array( + 'pretty_version' => 'v3.4.47', + 'version' => '3.4.47.0', + 'reference' => '88289caa3c166321883f67fe5130188ebbb47094', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/yaml', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'voku/portable-ascii' => array( + 'pretty_version' => '1.6.1', + 'version' => '1.6.1.0', + 'reference' => '87337c91b9dfacee02452244ee14ab3c43bc485a', + 'type' => 'library', + 'install_path' => __DIR__ . '/../voku/portable-ascii', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'webklex/php-imap' => array( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'reference' => '0f467d1c4283cc035ef474db3c733653feeb570f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'webmozart/assert' => array( + 'pretty_version' => '1.11.0', + 'version' => '1.11.0.0', + 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', + 'type' => 'library', + 'install_path' => __DIR__ . '/../webmozart/assert', + 'aliases' => array(), + 'dev_requirement' => true, + ), + ), +); diff --git a/htdocs/includes/webklex/php-imap/vendor/composer/platform_check.php b/htdocs/includes/webklex/php-imap/vendor/composer/platform_check.php new file mode 100644 index 00000000000..580fa960955 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 70400)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Arr.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Arr.php new file mode 100644 index 00000000000..fd7dca8a586 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Arr.php @@ -0,0 +1,747 @@ +all(); + } elseif (! is_array($values)) { + continue; + } + + $results[] = $values; + } + + return array_merge([], ...$results); + } + + /** + * Cross join the given arrays, returning all possible permutations. + * + * @param iterable ...$arrays + * @return array + */ + public static function crossJoin(...$arrays) + { + $results = [[]]; + + foreach ($arrays as $index => $array) { + $append = []; + + foreach ($results as $product) { + foreach ($array as $item) { + $product[$index] = $item; + + $append[] = $product; + } + } + + $results = $append; + } + + return $results; + } + + /** + * Divide an array into two arrays. One with keys and the other with values. + * + * @param array $array + * @return array + */ + public static function divide($array) + { + return [array_keys($array), array_values($array)]; + } + + /** + * Flatten a multi-dimensional associative array with dots. + * + * @param iterable $array + * @param string $prepend + * @return array + */ + public static function dot($array, $prepend = '') + { + $results = []; + + foreach ($array as $key => $value) { + if (is_array($value) && ! empty($value)) { + $results = array_merge($results, static::dot($value, $prepend.$key.'.')); + } else { + $results[$prepend.$key] = $value; + } + } + + return $results; + } + + /** + * Convert a flatten "dot" notation array into an expanded array. + * + * @param iterable $array + * @return array + */ + public static function undot($array) + { + $results = []; + + foreach ($array as $key => $value) { + static::set($results, $key, $value); + } + + return $results; + } + + /** + * Get all of the given array except for a specified array of keys. + * + * @param array $array + * @param array|string $keys + * @return array + */ + public static function except($array, $keys) + { + static::forget($array, $keys); + + return $array; + } + + /** + * Determine if the given key exists in the provided array. + * + * @param \ArrayAccess|array $array + * @param string|int $key + * @return bool + */ + public static function exists($array, $key) + { + if ($array instanceof Enumerable) { + return $array->has($key); + } + + if ($array instanceof ArrayAccess) { + return $array->offsetExists($key); + } + + return array_key_exists($key, $array); + } + + /** + * Return the first element in an array passing a given truth test. + * + * @param iterable $array + * @param callable|null $callback + * @param mixed $default + * @return mixed + */ + public static function first($array, callable $callback = null, $default = null) + { + if (is_null($callback)) { + if (empty($array)) { + return value($default); + } + + foreach ($array as $item) { + return $item; + } + } + + foreach ($array as $key => $value) { + if ($callback($value, $key)) { + return $value; + } + } + + return value($default); + } + + /** + * Return the last element in an array passing a given truth test. + * + * @param array $array + * @param callable|null $callback + * @param mixed $default + * @return mixed + */ + public static function last($array, callable $callback = null, $default = null) + { + if (is_null($callback)) { + return empty($array) ? value($default) : end($array); + } + + return static::first(array_reverse($array, true), $callback, $default); + } + + /** + * Flatten a multi-dimensional array into a single level. + * + * @param iterable $array + * @param int $depth + * @return array + */ + public static function flatten($array, $depth = INF) + { + $result = []; + + foreach ($array as $item) { + $item = $item instanceof Collection ? $item->all() : $item; + + if (! is_array($item)) { + $result[] = $item; + } else { + $values = $depth === 1 + ? array_values($item) + : static::flatten($item, $depth - 1); + + foreach ($values as $value) { + $result[] = $value; + } + } + } + + return $result; + } + + /** + * Remove one or many array items from a given array using "dot" notation. + * + * @param array $array + * @param array|string $keys + * @return void + */ + public static function forget(&$array, $keys) + { + $original = &$array; + + $keys = (array) $keys; + + if (count($keys) === 0) { + return; + } + + foreach ($keys as $key) { + // if the exact key exists in the top-level, remove it + if (static::exists($array, $key)) { + unset($array[$key]); + + continue; + } + + $parts = explode('.', $key); + + // clean up before each pass + $array = &$original; + + while (count($parts) > 1) { + $part = array_shift($parts); + + if (isset($array[$part]) && is_array($array[$part])) { + $array = &$array[$part]; + } else { + continue 2; + } + } + + unset($array[array_shift($parts)]); + } + } + + /** + * Get an item from an array using "dot" notation. + * + * @param \ArrayAccess|array $array + * @param string|int|null $key + * @param mixed $default + * @return mixed + */ + public static function get($array, $key, $default = null) + { + if (! static::accessible($array)) { + return value($default); + } + + if (is_null($key)) { + return $array; + } + + if (static::exists($array, $key)) { + return $array[$key]; + } + + if (strpos($key, '.') === false) { + return $array[$key] ?? value($default); + } + + foreach (explode('.', $key) as $segment) { + if (static::accessible($array) && static::exists($array, $segment)) { + $array = $array[$segment]; + } else { + return value($default); + } + } + + return $array; + } + + /** + * Check if an item or items exist in an array using "dot" notation. + * + * @param \ArrayAccess|array $array + * @param string|array $keys + * @return bool + */ + public static function has($array, $keys) + { + $keys = (array) $keys; + + if (! $array || $keys === []) { + return false; + } + + foreach ($keys as $key) { + $subKeyArray = $array; + + if (static::exists($array, $key)) { + continue; + } + + foreach (explode('.', $key) as $segment) { + if (static::accessible($subKeyArray) && static::exists($subKeyArray, $segment)) { + $subKeyArray = $subKeyArray[$segment]; + } else { + return false; + } + } + } + + return true; + } + + /** + * Determine if any of the keys exist in an array using "dot" notation. + * + * @param \ArrayAccess|array $array + * @param string|array $keys + * @return bool + */ + public static function hasAny($array, $keys) + { + if (is_null($keys)) { + return false; + } + + $keys = (array) $keys; + + if (! $array) { + return false; + } + + if ($keys === []) { + return false; + } + + foreach ($keys as $key) { + if (static::has($array, $key)) { + return true; + } + } + + return false; + } + + /** + * Determines if an array is associative. + * + * An array is "associative" if it doesn't have sequential numerical keys beginning with zero. + * + * @param array $array + * @return bool + */ + public static function isAssoc(array $array) + { + $keys = array_keys($array); + + return array_keys($keys) !== $keys; + } + + /** + * Determines if an array is a list. + * + * An array is a "list" if all array keys are sequential integers starting from 0 with no gaps in between. + * + * @param array $array + * @return bool + */ + public static function isList($array) + { + return ! self::isAssoc($array); + } + + /** + * Get a subset of the items from the given array. + * + * @param array $array + * @param array|string $keys + * @return array + */ + public static function only($array, $keys) + { + return array_intersect_key($array, array_flip((array) $keys)); + } + + /** + * Pluck an array of values from an array. + * + * @param iterable $array + * @param string|array|int|null $value + * @param string|array|null $key + * @return array + */ + public static function pluck($array, $value, $key = null) + { + $results = []; + + [$value, $key] = static::explodePluckParameters($value, $key); + + foreach ($array as $item) { + $itemValue = data_get($item, $value); + + // If the key is "null", we will just append the value to the array and keep + // looping. Otherwise we will key the array using the value of the key we + // received from the developer. Then we'll return the final array form. + if (is_null($key)) { + $results[] = $itemValue; + } else { + $itemKey = data_get($item, $key); + + if (is_object($itemKey) && method_exists($itemKey, '__toString')) { + $itemKey = (string) $itemKey; + } + + $results[$itemKey] = $itemValue; + } + } + + return $results; + } + + /** + * Explode the "value" and "key" arguments passed to "pluck". + * + * @param string|array $value + * @param string|array|null $key + * @return array + */ + protected static function explodePluckParameters($value, $key) + { + $value = is_string($value) ? explode('.', $value) : $value; + + $key = is_null($key) || is_array($key) ? $key : explode('.', $key); + + return [$value, $key]; + } + + /** + * Push an item onto the beginning of an array. + * + * @param array $array + * @param mixed $value + * @param mixed $key + * @return array + */ + public static function prepend($array, $value, $key = null) + { + if (func_num_args() == 2) { + array_unshift($array, $value); + } else { + $array = [$key => $value] + $array; + } + + return $array; + } + + /** + * Get a value from the array, and remove it. + * + * @param array $array + * @param string|int $key + * @param mixed $default + * @return mixed + */ + public static function pull(&$array, $key, $default = null) + { + $value = static::get($array, $key, $default); + + static::forget($array, $key); + + return $value; + } + + /** + * Convert the array into a query string. + * + * @param array $array + * @return string + */ + public static function query($array) + { + return http_build_query($array, '', '&', PHP_QUERY_RFC3986); + } + + /** + * Get one or a specified number of random values from an array. + * + * @param array $array + * @param int|null $number + * @param bool|false $preserveKeys + * @return mixed + * + * @throws \InvalidArgumentException + */ + public static function random($array, $number = null, $preserveKeys = false) + { + $requested = is_null($number) ? 1 : $number; + + $count = count($array); + + if ($requested > $count) { + throw new InvalidArgumentException( + "You requested {$requested} items, but there are only {$count} items available." + ); + } + + if (is_null($number)) { + return $array[array_rand($array)]; + } + + if ((int) $number === 0) { + return []; + } + + $keys = array_rand($array, $number); + + $results = []; + + if ($preserveKeys) { + foreach ((array) $keys as $key) { + $results[$key] = $array[$key]; + } + } else { + foreach ((array) $keys as $key) { + $results[] = $array[$key]; + } + } + + return $results; + } + + /** + * Set an array item to a given value using "dot" notation. + * + * If no key is given to the method, the entire array will be replaced. + * + * @param array $array + * @param string|null $key + * @param mixed $value + * @return array + */ + public static function set(&$array, $key, $value) + { + if (is_null($key)) { + return $array = $value; + } + + $keys = explode('.', $key); + + foreach ($keys as $i => $key) { + if (count($keys) === 1) { + break; + } + + unset($keys[$i]); + + // If the key doesn't exist at this depth, we will just create an empty array + // to hold the next value, allowing us to create the arrays to hold final + // values at the correct depth. Then we'll keep digging into the array. + if (! isset($array[$key]) || ! is_array($array[$key])) { + $array[$key] = []; + } + + $array = &$array[$key]; + } + + $array[array_shift($keys)] = $value; + + return $array; + } + + /** + * Shuffle the given array and return the result. + * + * @param array $array + * @param int|null $seed + * @return array + */ + public static function shuffle($array, $seed = null) + { + if (is_null($seed)) { + shuffle($array); + } else { + mt_srand($seed); + shuffle($array); + mt_srand(); + } + + return $array; + } + + /** + * Sort the array using the given callback or "dot" notation. + * + * @param array $array + * @param callable|array|string|null $callback + * @return array + */ + public static function sort($array, $callback = null) + { + return Collection::make($array)->sortBy($callback)->all(); + } + + /** + * Recursively sort an array by keys and values. + * + * @param array $array + * @param int $options + * @param bool $descending + * @return array + */ + public static function sortRecursive($array, $options = SORT_REGULAR, $descending = false) + { + foreach ($array as &$value) { + if (is_array($value)) { + $value = static::sortRecursive($value, $options, $descending); + } + } + + if (static::isAssoc($array)) { + $descending + ? krsort($array, $options) + : ksort($array, $options); + } else { + $descending + ? rsort($array, $options) + : sort($array, $options); + } + + return $array; + } + + /** + * Conditionally compile classes from an array into a CSS class list. + * + * @param array $array + * @return string + */ + public static function toCssClasses($array) + { + $classList = static::wrap($array); + + $classes = []; + + foreach ($classList as $class => $constraint) { + if (is_numeric($class)) { + $classes[] = $constraint; + } elseif ($constraint) { + $classes[] = $class; + } + } + + return implode(' ', $classes); + } + + /** + * Filter the array using the given callback. + * + * @param array $array + * @param callable $callback + * @return array + */ + public static function where($array, callable $callback) + { + return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH); + } + + /** + * Filter items where the value is not null. + * + * @param array $array + * @return array + */ + public static function whereNotNull($array) + { + return static::where($array, function ($value) { + return ! is_null($value); + }); + } + + /** + * If the given value is not an array and not null, wrap it in one. + * + * @param mixed $value + * @return array + */ + public static function wrap($value) + { + if (is_null($value)) { + return []; + } + + return is_array($value) ? $value : [$value]; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Collection.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Collection.php new file mode 100644 index 00000000000..61a48841c11 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Collection.php @@ -0,0 +1,1672 @@ +items = $this->getArrayableItems($items); + } + + /** + * Create a collection with the given range. + * + * @param int $from + * @param int $to + * @return static + */ + public static function range($from, $to) + { + return new static(range($from, $to)); + } + + /** + * Get all of the items in the collection. + * + * @return array + */ + public function all() + { + return $this->items; + } + + /** + * Get a lazy collection for the items in this collection. + * + * @return \Illuminate\Support\LazyCollection + */ + public function lazy() + { + return new LazyCollection($this->items); + } + + /** + * Get the average value of a given key. + * + * @param callable|string|null $callback + * @return mixed + */ + public function avg($callback = null) + { + $callback = $this->valueRetriever($callback); + + $items = $this->map(function ($value) use ($callback) { + return $callback($value); + })->filter(function ($value) { + return ! is_null($value); + }); + + if ($count = $items->count()) { + return $items->sum() / $count; + } + } + + /** + * Get the median of a given key. + * + * @param string|array|null $key + * @return mixed + */ + public function median($key = null) + { + $values = (isset($key) ? $this->pluck($key) : $this) + ->filter(function ($item) { + return ! is_null($item); + })->sort()->values(); + + $count = $values->count(); + + if ($count === 0) { + return; + } + + $middle = (int) ($count / 2); + + if ($count % 2) { + return $values->get($middle); + } + + return (new static([ + $values->get($middle - 1), $values->get($middle), + ]))->average(); + } + + /** + * Get the mode of a given key. + * + * @param string|array|null $key + * @return array|null + */ + public function mode($key = null) + { + if ($this->count() === 0) { + return; + } + + $collection = isset($key) ? $this->pluck($key) : $this; + + $counts = new static; + + $collection->each(function ($value) use ($counts) { + $counts[$value] = isset($counts[$value]) ? $counts[$value] + 1 : 1; + }); + + $sorted = $counts->sort(); + + $highestValue = $sorted->last(); + + return $sorted->filter(function ($value) use ($highestValue) { + return $value == $highestValue; + })->sort()->keys()->all(); + } + + /** + * Collapse the collection of items into a single array. + * + * @return static + */ + public function collapse() + { + return new static(Arr::collapse($this->items)); + } + + /** + * Determine if an item exists in the collection. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function contains($key, $operator = null, $value = null) + { + if (func_num_args() === 1) { + if ($this->useAsCallable($key)) { + $placeholder = new stdClass; + + return $this->first($key, $placeholder) !== $placeholder; + } + + return in_array($key, $this->items); + } + + return $this->contains($this->operatorForWhere(...func_get_args())); + } + + /** + * Determine if an item is not contained in the collection. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function doesntContain($key, $operator = null, $value = null) + { + return ! $this->contains(...func_get_args()); + } + + /** + * Cross join with the given lists, returning all possible permutations. + * + * @param mixed ...$lists + * @return static + */ + public function crossJoin(...$lists) + { + return new static(Arr::crossJoin( + $this->items, ...array_map([$this, 'getArrayableItems'], $lists) + )); + } + + /** + * Get the items in the collection that are not present in the given items. + * + * @param mixed $items + * @return static + */ + public function diff($items) + { + return new static(array_diff($this->items, $this->getArrayableItems($items))); + } + + /** + * Get the items in the collection that are not present in the given items, using the callback. + * + * @param mixed $items + * @param callable $callback + * @return static + */ + public function diffUsing($items, callable $callback) + { + return new static(array_udiff($this->items, $this->getArrayableItems($items), $callback)); + } + + /** + * Get the items in the collection whose keys and values are not present in the given items. + * + * @param mixed $items + * @return static + */ + public function diffAssoc($items) + { + return new static(array_diff_assoc($this->items, $this->getArrayableItems($items))); + } + + /** + * Get the items in the collection whose keys and values are not present in the given items, using the callback. + * + * @param mixed $items + * @param callable $callback + * @return static + */ + public function diffAssocUsing($items, callable $callback) + { + return new static(array_diff_uassoc($this->items, $this->getArrayableItems($items), $callback)); + } + + /** + * Get the items in the collection whose keys are not present in the given items. + * + * @param mixed $items + * @return static + */ + public function diffKeys($items) + { + return new static(array_diff_key($this->items, $this->getArrayableItems($items))); + } + + /** + * Get the items in the collection whose keys are not present in the given items, using the callback. + * + * @param mixed $items + * @param callable $callback + * @return static + */ + public function diffKeysUsing($items, callable $callback) + { + return new static(array_diff_ukey($this->items, $this->getArrayableItems($items), $callback)); + } + + /** + * Retrieve duplicate items from the collection. + * + * @param callable|string|null $callback + * @param bool $strict + * @return static + */ + public function duplicates($callback = null, $strict = false) + { + $items = $this->map($this->valueRetriever($callback)); + + $uniqueItems = $items->unique(null, $strict); + + $compare = $this->duplicateComparator($strict); + + $duplicates = new static; + + foreach ($items as $key => $value) { + if ($uniqueItems->isNotEmpty() && $compare($value, $uniqueItems->first())) { + $uniqueItems->shift(); + } else { + $duplicates[$key] = $value; + } + } + + return $duplicates; + } + + /** + * Retrieve duplicate items from the collection using strict comparison. + * + * @param callable|string|null $callback + * @return static + */ + public function duplicatesStrict($callback = null) + { + return $this->duplicates($callback, true); + } + + /** + * Get the comparison function to detect duplicates. + * + * @param bool $strict + * @return \Closure + */ + protected function duplicateComparator($strict) + { + if ($strict) { + return function ($a, $b) { + return $a === $b; + }; + } + + return function ($a, $b) { + return $a == $b; + }; + } + + /** + * Get all items except for those with the specified keys. + * + * @param \Illuminate\Support\Collection|mixed $keys + * @return static + */ + public function except($keys) + { + if ($keys instanceof Enumerable) { + $keys = $keys->all(); + } elseif (! is_array($keys)) { + $keys = func_get_args(); + } + + return new static(Arr::except($this->items, $keys)); + } + + /** + * Run a filter over each of the items. + * + * @param callable|null $callback + * @return static + */ + public function filter(callable $callback = null) + { + if ($callback) { + return new static(Arr::where($this->items, $callback)); + } + + return new static(array_filter($this->items)); + } + + /** + * Get the first item from the collection passing the given truth test. + * + * @param callable|null $callback + * @param mixed $default + * @return mixed + */ + public function first(callable $callback = null, $default = null) + { + return Arr::first($this->items, $callback, $default); + } + + /** + * Get a flattened array of the items in the collection. + * + * @param int $depth + * @return static + */ + public function flatten($depth = INF) + { + return new static(Arr::flatten($this->items, $depth)); + } + + /** + * Flip the items in the collection. + * + * @return static + */ + public function flip() + { + return new static(array_flip($this->items)); + } + + /** + * Remove an item from the collection by key. + * + * @param string|int|array $keys + * @return $this + */ + public function forget($keys) + { + foreach ((array) $keys as $key) { + $this->offsetUnset($key); + } + + return $this; + } + + /** + * Get an item from the collection by key. + * + * @param mixed $key + * @param mixed $default + * @return mixed + */ + public function get($key, $default = null) + { + if (array_key_exists($key, $this->items)) { + return $this->items[$key]; + } + + return value($default); + } + + /** + * Get an item from the collection by key or add it to collection if it does not exist. + * + * @param mixed $key + * @param mixed $value + * @return mixed + */ + public function getOrPut($key, $value) + { + if (array_key_exists($key, $this->items)) { + return $this->items[$key]; + } + + $this->offsetSet($key, $value = value($value)); + + return $value; + } + + /** + * Group an associative array by a field or using a callback. + * + * @param array|callable|string $groupBy + * @param bool $preserveKeys + * @return static + */ + public function groupBy($groupBy, $preserveKeys = false) + { + if (! $this->useAsCallable($groupBy) && is_array($groupBy)) { + $nextGroups = $groupBy; + + $groupBy = array_shift($nextGroups); + } + + $groupBy = $this->valueRetriever($groupBy); + + $results = []; + + foreach ($this->items as $key => $value) { + $groupKeys = $groupBy($value, $key); + + if (! is_array($groupKeys)) { + $groupKeys = [$groupKeys]; + } + + foreach ($groupKeys as $groupKey) { + $groupKey = is_bool($groupKey) ? (int) $groupKey : $groupKey; + + if (! array_key_exists($groupKey, $results)) { + $results[$groupKey] = new static; + } + + $results[$groupKey]->offsetSet($preserveKeys ? $key : null, $value); + } + } + + $result = new static($results); + + if (! empty($nextGroups)) { + return $result->map->groupBy($nextGroups, $preserveKeys); + } + + return $result; + } + + /** + * Key an associative array by a field or using a callback. + * + * @param callable|string $keyBy + * @return static + */ + public function keyBy($keyBy) + { + $keyBy = $this->valueRetriever($keyBy); + + $results = []; + + foreach ($this->items as $key => $item) { + $resolvedKey = $keyBy($item, $key); + + if (is_object($resolvedKey)) { + $resolvedKey = (string) $resolvedKey; + } + + $results[$resolvedKey] = $item; + } + + return new static($results); + } + + /** + * Determine if an item exists in the collection by key. + * + * @param mixed $key + * @return bool + */ + public function has($key) + { + $keys = is_array($key) ? $key : func_get_args(); + + foreach ($keys as $value) { + if (! array_key_exists($value, $this->items)) { + return false; + } + } + + return true; + } + + /** + * Determine if any of the keys exist in the collection. + * + * @param mixed $key + * @return bool + */ + public function hasAny($key) + { + if ($this->isEmpty()) { + return false; + } + + $keys = is_array($key) ? $key : func_get_args(); + + foreach ($keys as $value) { + if ($this->has($value)) { + return true; + } + } + + return false; + } + + /** + * Concatenate values of a given key as a string. + * + * @param string $value + * @param string|null $glue + * @return string + */ + public function implode($value, $glue = null) + { + $first = $this->first(); + + if (is_array($first) || (is_object($first) && ! $first instanceof Stringable)) { + return implode($glue ?? '', $this->pluck($value)->all()); + } + + return implode($value ?? '', $this->items); + } + + /** + * Intersect the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function intersect($items) + { + return new static(array_intersect($this->items, $this->getArrayableItems($items))); + } + + /** + * Intersect the collection with the given items by key. + * + * @param mixed $items + * @return static + */ + public function intersectByKeys($items) + { + return new static(array_intersect_key( + $this->items, $this->getArrayableItems($items) + )); + } + + /** + * Determine if the collection is empty or not. + * + * @return bool + */ + public function isEmpty() + { + return empty($this->items); + } + + /** + * Determine if the collection contains a single item. + * + * @return bool + */ + public function containsOneItem() + { + return $this->count() === 1; + } + + /** + * Join all items from the collection using a string. The final items can use a separate glue string. + * + * @param string $glue + * @param string $finalGlue + * @return string + */ + public function join($glue, $finalGlue = '') + { + if ($finalGlue === '') { + return $this->implode($glue); + } + + $count = $this->count(); + + if ($count === 0) { + return ''; + } + + if ($count === 1) { + return $this->last(); + } + + $collection = new static($this->items); + + $finalItem = $collection->pop(); + + return $collection->implode($glue).$finalGlue.$finalItem; + } + + /** + * Get the keys of the collection items. + * + * @return static + */ + public function keys() + { + return new static(array_keys($this->items)); + } + + /** + * Get the last item from the collection. + * + * @param callable|null $callback + * @param mixed $default + * @return mixed + */ + public function last(callable $callback = null, $default = null) + { + return Arr::last($this->items, $callback, $default); + } + + /** + * Get the values of a given key. + * + * @param string|array|int|null $value + * @param string|null $key + * @return static + */ + public function pluck($value, $key = null) + { + return new static(Arr::pluck($this->items, $value, $key)); + } + + /** + * Run a map over each of the items. + * + * @param callable $callback + * @return static + */ + public function map(callable $callback) + { + $keys = array_keys($this->items); + + $items = array_map($callback, $this->items, $keys); + + return new static(array_combine($keys, $items)); + } + + /** + * Run a dictionary map over the items. + * + * The callback should return an associative array with a single key/value pair. + * + * @param callable $callback + * @return static + */ + public function mapToDictionary(callable $callback) + { + $dictionary = []; + + foreach ($this->items as $key => $item) { + $pair = $callback($item, $key); + + $key = key($pair); + + $value = reset($pair); + + if (! isset($dictionary[$key])) { + $dictionary[$key] = []; + } + + $dictionary[$key][] = $value; + } + + return new static($dictionary); + } + + /** + * Run an associative map over each of the items. + * + * The callback should return an associative array with a single key/value pair. + * + * @param callable $callback + * @return static + */ + public function mapWithKeys(callable $callback) + { + $result = []; + + foreach ($this->items as $key => $value) { + $assoc = $callback($value, $key); + + foreach ($assoc as $mapKey => $mapValue) { + $result[$mapKey] = $mapValue; + } + } + + return new static($result); + } + + /** + * Merge the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function merge($items) + { + return new static(array_merge($this->items, $this->getArrayableItems($items))); + } + + /** + * Recursively merge the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function mergeRecursive($items) + { + return new static(array_merge_recursive($this->items, $this->getArrayableItems($items))); + } + + /** + * Create a collection by using this collection for keys and another for its values. + * + * @param mixed $values + * @return static + */ + public function combine($values) + { + return new static(array_combine($this->all(), $this->getArrayableItems($values))); + } + + /** + * Union the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function union($items) + { + return new static($this->items + $this->getArrayableItems($items)); + } + + /** + * Create a new collection consisting of every n-th element. + * + * @param int $step + * @param int $offset + * @return static + */ + public function nth($step, $offset = 0) + { + $new = []; + + $position = 0; + + foreach ($this->slice($offset)->items as $item) { + if ($position % $step === 0) { + $new[] = $item; + } + + $position++; + } + + return new static($new); + } + + /** + * Get the items with the specified keys. + * + * @param mixed $keys + * @return static + */ + public function only($keys) + { + if (is_null($keys)) { + return new static($this->items); + } + + if ($keys instanceof Enumerable) { + $keys = $keys->all(); + } + + $keys = is_array($keys) ? $keys : func_get_args(); + + return new static(Arr::only($this->items, $keys)); + } + + /** + * Get and remove the last N items from the collection. + * + * @param int $count + * @return mixed + */ + public function pop($count = 1) + { + if ($count === 1) { + return array_pop($this->items); + } + + if ($this->isEmpty()) { + return new static; + } + + $results = []; + + $collectionCount = $this->count(); + + foreach (range(1, min($count, $collectionCount)) as $item) { + array_push($results, array_pop($this->items)); + } + + return new static($results); + } + + /** + * Push an item onto the beginning of the collection. + * + * @param mixed $value + * @param mixed $key + * @return $this + */ + public function prepend($value, $key = null) + { + $this->items = Arr::prepend($this->items, ...func_get_args()); + + return $this; + } + + /** + * Push one or more items onto the end of the collection. + * + * @param mixed $values + * @return $this + */ + public function push(...$values) + { + foreach ($values as $value) { + $this->items[] = $value; + } + + return $this; + } + + /** + * Push all of the given items onto the collection. + * + * @param iterable $source + * @return static + */ + public function concat($source) + { + $result = new static($this); + + foreach ($source as $item) { + $result->push($item); + } + + return $result; + } + + /** + * Get and remove an item from the collection. + * + * @param mixed $key + * @param mixed $default + * @return mixed + */ + public function pull($key, $default = null) + { + return Arr::pull($this->items, $key, $default); + } + + /** + * Put an item in the collection by key. + * + * @param mixed $key + * @param mixed $value + * @return $this + */ + public function put($key, $value) + { + $this->offsetSet($key, $value); + + return $this; + } + + /** + * Get one or a specified number of items randomly from the collection. + * + * @param int|null $number + * @return static|mixed + * + * @throws \InvalidArgumentException + */ + public function random($number = null) + { + if (is_null($number)) { + return Arr::random($this->items); + } + + return new static(Arr::random($this->items, $number)); + } + + /** + * Replace the collection items with the given items. + * + * @param mixed $items + * @return static + */ + public function replace($items) + { + return new static(array_replace($this->items, $this->getArrayableItems($items))); + } + + /** + * Recursively replace the collection items with the given items. + * + * @param mixed $items + * @return static + */ + public function replaceRecursive($items) + { + return new static(array_replace_recursive($this->items, $this->getArrayableItems($items))); + } + + /** + * Reverse items order. + * + * @return static + */ + public function reverse() + { + return new static(array_reverse($this->items, true)); + } + + /** + * Search the collection for a given value and return the corresponding key if successful. + * + * @param mixed $value + * @param bool $strict + * @return mixed + */ + public function search($value, $strict = false) + { + if (! $this->useAsCallable($value)) { + return array_search($value, $this->items, $strict); + } + + foreach ($this->items as $key => $item) { + if ($value($item, $key)) { + return $key; + } + } + + return false; + } + + /** + * Get and remove the first N items from the collection. + * + * @param int $count + * @return mixed + */ + public function shift($count = 1) + { + if ($count === 1) { + return array_shift($this->items); + } + + if ($this->isEmpty()) { + return new static; + } + + $results = []; + + $collectionCount = $this->count(); + + foreach (range(1, min($count, $collectionCount)) as $item) { + array_push($results, array_shift($this->items)); + } + + return new static($results); + } + + /** + * Shuffle the items in the collection. + * + * @param int|null $seed + * @return static + */ + public function shuffle($seed = null) + { + return new static(Arr::shuffle($this->items, $seed)); + } + + /** + * Create chunks representing a "sliding window" view of the items in the collection. + * + * @param int $size + * @param int $step + * @return static + */ + public function sliding($size = 2, $step = 1) + { + $chunks = floor(($this->count() - $size) / $step) + 1; + + return static::times($chunks, function ($number) use ($size, $step) { + return $this->slice(($number - 1) * $step, $size); + }); + } + + /** + * Skip the first {$count} items. + * + * @param int $count + * @return static + */ + public function skip($count) + { + return $this->slice($count); + } + + /** + * Skip items in the collection until the given condition is met. + * + * @param mixed $value + * @return static + */ + public function skipUntil($value) + { + return new static($this->lazy()->skipUntil($value)->all()); + } + + /** + * Skip items in the collection while the given condition is met. + * + * @param mixed $value + * @return static + */ + public function skipWhile($value) + { + return new static($this->lazy()->skipWhile($value)->all()); + } + + /** + * Slice the underlying collection array. + * + * @param int $offset + * @param int|null $length + * @return static + */ + public function slice($offset, $length = null) + { + return new static(array_slice($this->items, $offset, $length, true)); + } + + /** + * Split a collection into a certain number of groups. + * + * @param int $numberOfGroups + * @return static + */ + public function split($numberOfGroups) + { + if ($this->isEmpty()) { + return new static; + } + + $groups = new static; + + $groupSize = floor($this->count() / $numberOfGroups); + + $remain = $this->count() % $numberOfGroups; + + $start = 0; + + for ($i = 0; $i < $numberOfGroups; $i++) { + $size = $groupSize; + + if ($i < $remain) { + $size++; + } + + if ($size) { + $groups->push(new static(array_slice($this->items, $start, $size))); + + $start += $size; + } + } + + return $groups; + } + + /** + * Split a collection into a certain number of groups, and fill the first groups completely. + * + * @param int $numberOfGroups + * @return static + */ + public function splitIn($numberOfGroups) + { + return $this->chunk(ceil($this->count() / $numberOfGroups)); + } + + /** + * Get the first item in the collection, but only if exactly one item exists. Otherwise, throw an exception. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return mixed + * + * @throws \Illuminate\Support\ItemNotFoundException + * @throws \Illuminate\Support\MultipleItemsFoundException + */ + public function sole($key = null, $operator = null, $value = null) + { + $filter = func_num_args() > 1 + ? $this->operatorForWhere(...func_get_args()) + : $key; + + $items = $this->when($filter)->filter($filter); + + if ($items->isEmpty()) { + throw new ItemNotFoundException; + } + + if ($items->count() > 1) { + throw new MultipleItemsFoundException; + } + + return $items->first(); + } + + /** + * Get the first item in the collection but throw an exception if no matching items exist. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return mixed + * + * @throws \Illuminate\Support\ItemNotFoundException + */ + public function firstOrFail($key = null, $operator = null, $value = null) + { + $filter = func_num_args() > 1 + ? $this->operatorForWhere(...func_get_args()) + : $key; + + $placeholder = new stdClass(); + + $item = $this->first($filter, $placeholder); + + if ($item === $placeholder) { + throw new ItemNotFoundException; + } + + return $item; + } + + /** + * Chunk the collection into chunks of the given size. + * + * @param int $size + * @return static + */ + public function chunk($size) + { + if ($size <= 0) { + return new static; + } + + $chunks = []; + + foreach (array_chunk($this->items, $size, true) as $chunk) { + $chunks[] = new static($chunk); + } + + return new static($chunks); + } + + /** + * Chunk the collection into chunks with a callback. + * + * @param callable $callback + * @return static + */ + public function chunkWhile(callable $callback) + { + return new static( + $this->lazy()->chunkWhile($callback)->mapInto(static::class) + ); + } + + /** + * Sort through each item with a callback. + * + * @param callable|int|null $callback + * @return static + */ + public function sort($callback = null) + { + $items = $this->items; + + $callback && is_callable($callback) + ? uasort($items, $callback) + : asort($items, $callback ?? SORT_REGULAR); + + return new static($items); + } + + /** + * Sort items in descending order. + * + * @param int $options + * @return static + */ + public function sortDesc($options = SORT_REGULAR) + { + $items = $this->items; + + arsort($items, $options); + + return new static($items); + } + + /** + * Sort the collection using the given callback. + * + * @param callable|array|string $callback + * @param int $options + * @param bool $descending + * @return static + */ + public function sortBy($callback, $options = SORT_REGULAR, $descending = false) + { + if (is_array($callback) && ! is_callable($callback)) { + return $this->sortByMany($callback); + } + + $results = []; + + $callback = $this->valueRetriever($callback); + + // First we will loop through the items and get the comparator from a callback + // function which we were given. Then, we will sort the returned values and + // grab all the corresponding values for the sorted keys from this array. + foreach ($this->items as $key => $value) { + $results[$key] = $callback($value, $key); + } + + $descending ? arsort($results, $options) + : asort($results, $options); + + // Once we have sorted all of the keys in the array, we will loop through them + // and grab the corresponding model so we can set the underlying items list + // to the sorted version. Then we'll just return the collection instance. + foreach (array_keys($results) as $key) { + $results[$key] = $this->items[$key]; + } + + return new static($results); + } + + /** + * Sort the collection using multiple comparisons. + * + * @param array $comparisons + * @return static + */ + protected function sortByMany(array $comparisons = []) + { + $items = $this->items; + + usort($items, function ($a, $b) use ($comparisons) { + foreach ($comparisons as $comparison) { + $comparison = Arr::wrap($comparison); + + $prop = $comparison[0]; + + $ascending = Arr::get($comparison, 1, true) === true || + Arr::get($comparison, 1, true) === 'asc'; + + $result = 0; + + if (! is_string($prop) && is_callable($prop)) { + $result = $prop($a, $b); + } else { + $values = [data_get($a, $prop), data_get($b, $prop)]; + + if (! $ascending) { + $values = array_reverse($values); + } + + $result = $values[0] <=> $values[1]; + } + + if ($result === 0) { + continue; + } + + return $result; + } + }); + + return new static($items); + } + + /** + * Sort the collection in descending order using the given callback. + * + * @param callable|string $callback + * @param int $options + * @return static + */ + public function sortByDesc($callback, $options = SORT_REGULAR) + { + return $this->sortBy($callback, $options, true); + } + + /** + * Sort the collection keys. + * + * @param int $options + * @param bool $descending + * @return static + */ + public function sortKeys($options = SORT_REGULAR, $descending = false) + { + $items = $this->items; + + $descending ? krsort($items, $options) : ksort($items, $options); + + return new static($items); + } + + /** + * Sort the collection keys in descending order. + * + * @param int $options + * @return static + */ + public function sortKeysDesc($options = SORT_REGULAR) + { + return $this->sortKeys($options, true); + } + + /** + * Sort the collection keys using a callback. + * + * @param callable $callback + * @return static + */ + public function sortKeysUsing(callable $callback) + { + $items = $this->items; + + uksort($items, $callback); + + return new static($items); + } + + /** + * Splice a portion of the underlying collection array. + * + * @param int $offset + * @param int|null $length + * @param mixed $replacement + * @return static + */ + public function splice($offset, $length = null, $replacement = []) + { + if (func_num_args() === 1) { + return new static(array_splice($this->items, $offset)); + } + + return new static(array_splice($this->items, $offset, $length, $this->getArrayableItems($replacement))); + } + + /** + * Take the first or last {$limit} items. + * + * @param int $limit + * @return static + */ + public function take($limit) + { + if ($limit < 0) { + return $this->slice($limit, abs($limit)); + } + + return $this->slice(0, $limit); + } + + /** + * Take items in the collection until the given condition is met. + * + * @param mixed $value + * @return static + */ + public function takeUntil($value) + { + return new static($this->lazy()->takeUntil($value)->all()); + } + + /** + * Take items in the collection while the given condition is met. + * + * @param mixed $value + * @return static + */ + public function takeWhile($value) + { + return new static($this->lazy()->takeWhile($value)->all()); + } + + /** + * Transform each item in the collection using a callback. + * + * @param callable $callback + * @return $this + */ + public function transform(callable $callback) + { + $this->items = $this->map($callback)->all(); + + return $this; + } + + /** + * Convert a flatten "dot" notation array into an expanded array. + * + * @return static + */ + public function undot() + { + return new static(Arr::undot($this->all())); + } + + /** + * Return only unique items from the collection array. + * + * @param string|callable|null $key + * @param bool $strict + * @return static + */ + public function unique($key = null, $strict = false) + { + if (is_null($key) && $strict === false) { + return new static(array_unique($this->items, SORT_REGULAR)); + } + + $callback = $this->valueRetriever($key); + + $exists = []; + + return $this->reject(function ($item, $key) use ($callback, $strict, &$exists) { + if (in_array($id = $callback($item, $key), $exists, $strict)) { + return true; + } + + $exists[] = $id; + }); + } + + /** + * Reset the keys on the underlying array. + * + * @return static + */ + public function values() + { + return new static(array_values($this->items)); + } + + /** + * Zip the collection together with one or more arrays. + * + * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]); + * => [[1, 4], [2, 5], [3, 6]] + * + * @param mixed ...$items + * @return static + */ + public function zip($items) + { + $arrayableItems = array_map(function ($items) { + return $this->getArrayableItems($items); + }, func_get_args()); + + $params = array_merge([function () { + return new static(func_get_args()); + }, $this->items], $arrayableItems); + + return new static(array_map(...$params)); + } + + /** + * Pad collection to the specified length with a value. + * + * @param int $size + * @param mixed $value + * @return static + */ + public function pad($size, $value) + { + return new static(array_pad($this->items, $size, $value)); + } + + /** + * Get an iterator for the items. + * + * @return \ArrayIterator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new ArrayIterator($this->items); + } + + /** + * Count the number of items in the collection. + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return count($this->items); + } + + /** + * Count the number of items in the collection by a field or using a callback. + * + * @param callable|string $countBy + * @return static + */ + public function countBy($countBy = null) + { + return new static($this->lazy()->countBy($countBy)->all()); + } + + /** + * Add an item to the collection. + * + * @param mixed $item + * @return $this + */ + public function add($item) + { + $this->items[] = $item; + + return $this; + } + + /** + * Get a base Support collection instance from this collection. + * + * @return \Illuminate\Support\Collection + */ + public function toBase() + { + return new self($this); + } + + /** + * Determine if an item exists at an offset. + * + * @param mixed $key + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($key) + { + return isset($this->items[$key]); + } + + /** + * Get an item at a given offset. + * + * @param mixed $key + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($key) + { + return $this->items[$key]; + } + + /** + * Set the item at a given offset. + * + * @param mixed $key + * @param mixed $value + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($key, $value) + { + if (is_null($key)) { + $this->items[] = $value; + } else { + $this->items[$key] = $value; + } + } + + /** + * Unset the item at a given offset. + * + * @param mixed $key + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($key) + { + unset($this->items[$key]); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Enumerable.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Enumerable.php new file mode 100644 index 00000000000..261a0c856b3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/Enumerable.php @@ -0,0 +1,1027 @@ +zip([4, 5, 6]); + * => [[1, 4], [2, 5], [3, 6]] + * + * @param mixed ...$items + * @return static + */ + public function zip($items); + + /** + * Collect the values into a collection. + * + * @return \Illuminate\Support\Collection + */ + public function collect(); + + /** + * Convert the collection to its string representation. + * + * @return string + */ + public function __toString(); + + /** + * Add a method to the list of proxied methods. + * + * @param string $method + * @return void + */ + public static function proxy($method); + + /** + * Dynamically access collection proxies. + * + * @param string $key + * @return mixed + * + * @throws \Exception + */ + public function __get($key); +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/HigherOrderCollectionProxy.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/HigherOrderCollectionProxy.php new file mode 100644 index 00000000000..106356c3acc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/HigherOrderCollectionProxy.php @@ -0,0 +1,63 @@ +method = $method; + $this->collection = $collection; + } + + /** + * Proxy accessing an attribute onto the collection items. + * + * @param string $key + * @return mixed + */ + public function __get($key) + { + return $this->collection->{$this->method}(function ($value) use ($key) { + return is_array($value) ? $value[$key] : $value->{$key}; + }); + } + + /** + * Proxy a method call onto the collection items. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->collection->{$this->method}(function ($value) use ($method, $parameters) { + return $value->{$method}(...$parameters); + }); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/HigherOrderWhenProxy.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/HigherOrderWhenProxy.php new file mode 100644 index 00000000000..6653c03a656 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/HigherOrderWhenProxy.php @@ -0,0 +1,63 @@ +condition = $condition; + $this->collection = $collection; + } + + /** + * Proxy accessing an attribute onto the collection. + * + * @param string $key + * @return mixed + */ + public function __get($key) + { + return $this->condition + ? $this->collection->{$key} + : $this->collection; + } + + /** + * Proxy a method call onto the collection. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->condition + ? $this->collection->{$method}(...$parameters) + : $this->collection; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/ItemNotFoundException.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/ItemNotFoundException.php new file mode 100644 index 00000000000..05a51d95475 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/ItemNotFoundException.php @@ -0,0 +1,9 @@ +source = $source; + } elseif (is_null($source)) { + $this->source = static::empty(); + } else { + $this->source = $this->getArrayableItems($source); + } + } + + /** + * Create a collection with the given range. + * + * @param int $from + * @param int $to + * @return static + */ + public static function range($from, $to) + { + return new static(function () use ($from, $to) { + if ($from <= $to) { + for (; $from <= $to; $from++) { + yield $from; + } + } else { + for (; $from >= $to; $from--) { + yield $from; + } + } + }); + } + + /** + * Get all items in the enumerable. + * + * @return array + */ + public function all() + { + if (is_array($this->source)) { + return $this->source; + } + + return iterator_to_array($this->getIterator()); + } + + /** + * Eager load all items into a new lazy collection backed by an array. + * + * @return static + */ + public function eager() + { + return new static($this->all()); + } + + /** + * Cache values as they're enumerated. + * + * @return static + */ + public function remember() + { + $iterator = $this->getIterator(); + + $iteratorIndex = 0; + + $cache = []; + + return new static(function () use ($iterator, &$iteratorIndex, &$cache) { + for ($index = 0; true; $index++) { + if (array_key_exists($index, $cache)) { + yield $cache[$index][0] => $cache[$index][1]; + + continue; + } + + if ($iteratorIndex < $index) { + $iterator->next(); + + $iteratorIndex++; + } + + if (! $iterator->valid()) { + break; + } + + $cache[$index] = [$iterator->key(), $iterator->current()]; + + yield $cache[$index][0] => $cache[$index][1]; + } + }); + } + + /** + * Get the average value of a given key. + * + * @param callable|string|null $callback + * @return mixed + */ + public function avg($callback = null) + { + return $this->collect()->avg($callback); + } + + /** + * Get the median of a given key. + * + * @param string|array|null $key + * @return mixed + */ + public function median($key = null) + { + return $this->collect()->median($key); + } + + /** + * Get the mode of a given key. + * + * @param string|array|null $key + * @return array|null + */ + public function mode($key = null) + { + return $this->collect()->mode($key); + } + + /** + * Collapse the collection of items into a single array. + * + * @return static + */ + public function collapse() + { + return new static(function () { + foreach ($this as $values) { + if (is_array($values) || $values instanceof Enumerable) { + foreach ($values as $value) { + yield $value; + } + } + } + }); + } + + /** + * Determine if an item exists in the enumerable. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function contains($key, $operator = null, $value = null) + { + if (func_num_args() === 1 && $this->useAsCallable($key)) { + $placeholder = new stdClass; + + return $this->first($key, $placeholder) !== $placeholder; + } + + if (func_num_args() === 1) { + $needle = $key; + + foreach ($this as $value) { + if ($value == $needle) { + return true; + } + } + + return false; + } + + return $this->contains($this->operatorForWhere(...func_get_args())); + } + + /** + * Determine if an item is not contained in the enumerable. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function doesntContain($key, $operator = null, $value = null) + { + return ! $this->contains(...func_get_args()); + } + + /** + * Cross join the given iterables, returning all possible permutations. + * + * @param array ...$arrays + * @return static + */ + public function crossJoin(...$arrays) + { + return $this->passthru('crossJoin', func_get_args()); + } + + /** + * Count the number of items in the collection by a field or using a callback. + * + * @param callable|string $countBy + * @return static + */ + public function countBy($countBy = null) + { + $countBy = is_null($countBy) + ? $this->identity() + : $this->valueRetriever($countBy); + + return new static(function () use ($countBy) { + $counts = []; + + foreach ($this as $key => $value) { + $group = $countBy($value, $key); + + if (empty($counts[$group])) { + $counts[$group] = 0; + } + + $counts[$group]++; + } + + yield from $counts; + }); + } + + /** + * Get the items that are not present in the given items. + * + * @param mixed $items + * @return static + */ + public function diff($items) + { + return $this->passthru('diff', func_get_args()); + } + + /** + * Get the items that are not present in the given items, using the callback. + * + * @param mixed $items + * @param callable $callback + * @return static + */ + public function diffUsing($items, callable $callback) + { + return $this->passthru('diffUsing', func_get_args()); + } + + /** + * Get the items whose keys and values are not present in the given items. + * + * @param mixed $items + * @return static + */ + public function diffAssoc($items) + { + return $this->passthru('diffAssoc', func_get_args()); + } + + /** + * Get the items whose keys and values are not present in the given items, using the callback. + * + * @param mixed $items + * @param callable $callback + * @return static + */ + public function diffAssocUsing($items, callable $callback) + { + return $this->passthru('diffAssocUsing', func_get_args()); + } + + /** + * Get the items whose keys are not present in the given items. + * + * @param mixed $items + * @return static + */ + public function diffKeys($items) + { + return $this->passthru('diffKeys', func_get_args()); + } + + /** + * Get the items whose keys are not present in the given items, using the callback. + * + * @param mixed $items + * @param callable $callback + * @return static + */ + public function diffKeysUsing($items, callable $callback) + { + return $this->passthru('diffKeysUsing', func_get_args()); + } + + /** + * Retrieve duplicate items. + * + * @param callable|string|null $callback + * @param bool $strict + * @return static + */ + public function duplicates($callback = null, $strict = false) + { + return $this->passthru('duplicates', func_get_args()); + } + + /** + * Retrieve duplicate items using strict comparison. + * + * @param callable|string|null $callback + * @return static + */ + public function duplicatesStrict($callback = null) + { + return $this->passthru('duplicatesStrict', func_get_args()); + } + + /** + * Get all items except for those with the specified keys. + * + * @param mixed $keys + * @return static + */ + public function except($keys) + { + return $this->passthru('except', func_get_args()); + } + + /** + * Run a filter over each of the items. + * + * @param callable|null $callback + * @return static + */ + public function filter(callable $callback = null) + { + if (is_null($callback)) { + $callback = function ($value) { + return (bool) $value; + }; + } + + return new static(function () use ($callback) { + foreach ($this as $key => $value) { + if ($callback($value, $key)) { + yield $key => $value; + } + } + }); + } + + /** + * Get the first item from the enumerable passing the given truth test. + * + * @param callable|null $callback + * @param mixed $default + * @return mixed + */ + public function first(callable $callback = null, $default = null) + { + $iterator = $this->getIterator(); + + if (is_null($callback)) { + if (! $iterator->valid()) { + return value($default); + } + + return $iterator->current(); + } + + foreach ($iterator as $key => $value) { + if ($callback($value, $key)) { + return $value; + } + } + + return value($default); + } + + /** + * Get a flattened list of the items in the collection. + * + * @param int $depth + * @return static + */ + public function flatten($depth = INF) + { + $instance = new static(function () use ($depth) { + foreach ($this as $item) { + if (! is_array($item) && ! $item instanceof Enumerable) { + yield $item; + } elseif ($depth === 1) { + yield from $item; + } else { + yield from (new static($item))->flatten($depth - 1); + } + } + }); + + return $instance->values(); + } + + /** + * Flip the items in the collection. + * + * @return static + */ + public function flip() + { + return new static(function () { + foreach ($this as $key => $value) { + yield $value => $key; + } + }); + } + + /** + * Get an item by key. + * + * @param mixed $key + * @param mixed $default + * @return mixed + */ + public function get($key, $default = null) + { + if (is_null($key)) { + return; + } + + foreach ($this as $outerKey => $outerValue) { + if ($outerKey == $key) { + return $outerValue; + } + } + + return value($default); + } + + /** + * Group an associative array by a field or using a callback. + * + * @param array|callable|string $groupBy + * @param bool $preserveKeys + * @return static + */ + public function groupBy($groupBy, $preserveKeys = false) + { + return $this->passthru('groupBy', func_get_args()); + } + + /** + * Key an associative array by a field or using a callback. + * + * @param callable|string $keyBy + * @return static + */ + public function keyBy($keyBy) + { + return new static(function () use ($keyBy) { + $keyBy = $this->valueRetriever($keyBy); + + foreach ($this as $key => $item) { + $resolvedKey = $keyBy($item, $key); + + if (is_object($resolvedKey)) { + $resolvedKey = (string) $resolvedKey; + } + + yield $resolvedKey => $item; + } + }); + } + + /** + * Determine if an item exists in the collection by key. + * + * @param mixed $key + * @return bool + */ + public function has($key) + { + $keys = array_flip(is_array($key) ? $key : func_get_args()); + $count = count($keys); + + foreach ($this as $key => $value) { + if (array_key_exists($key, $keys) && --$count == 0) { + return true; + } + } + + return false; + } + + /** + * Determine if any of the keys exist in the collection. + * + * @param mixed $key + * @return bool + */ + public function hasAny($key) + { + $keys = array_flip(is_array($key) ? $key : func_get_args()); + + foreach ($this as $key => $value) { + if (array_key_exists($key, $keys)) { + return true; + } + } + + return false; + } + + /** + * Concatenate values of a given key as a string. + * + * @param string $value + * @param string|null $glue + * @return string + */ + public function implode($value, $glue = null) + { + return $this->collect()->implode(...func_get_args()); + } + + /** + * Intersect the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function intersect($items) + { + return $this->passthru('intersect', func_get_args()); + } + + /** + * Intersect the collection with the given items by key. + * + * @param mixed $items + * @return static + */ + public function intersectByKeys($items) + { + return $this->passthru('intersectByKeys', func_get_args()); + } + + /** + * Determine if the items are empty or not. + * + * @return bool + */ + public function isEmpty() + { + return ! $this->getIterator()->valid(); + } + + /** + * Determine if the collection contains a single item. + * + * @return bool + */ + public function containsOneItem() + { + return $this->take(2)->count() === 1; + } + + /** + * Join all items from the collection using a string. The final items can use a separate glue string. + * + * @param string $glue + * @param string $finalGlue + * @return string + */ + public function join($glue, $finalGlue = '') + { + return $this->collect()->join(...func_get_args()); + } + + /** + * Get the keys of the collection items. + * + * @return static + */ + public function keys() + { + return new static(function () { + foreach ($this as $key => $value) { + yield $key; + } + }); + } + + /** + * Get the last item from the collection. + * + * @param callable|null $callback + * @param mixed $default + * @return mixed + */ + public function last(callable $callback = null, $default = null) + { + $needle = $placeholder = new stdClass; + + foreach ($this as $key => $value) { + if (is_null($callback) || $callback($value, $key)) { + $needle = $value; + } + } + + return $needle === $placeholder ? value($default) : $needle; + } + + /** + * Get the values of a given key. + * + * @param string|array $value + * @param string|null $key + * @return static + */ + public function pluck($value, $key = null) + { + return new static(function () use ($value, $key) { + [$value, $key] = $this->explodePluckParameters($value, $key); + + foreach ($this as $item) { + $itemValue = data_get($item, $value); + + if (is_null($key)) { + yield $itemValue; + } else { + $itemKey = data_get($item, $key); + + if (is_object($itemKey) && method_exists($itemKey, '__toString')) { + $itemKey = (string) $itemKey; + } + + yield $itemKey => $itemValue; + } + } + }); + } + + /** + * Run a map over each of the items. + * + * @param callable $callback + * @return static + */ + public function map(callable $callback) + { + return new static(function () use ($callback) { + foreach ($this as $key => $value) { + yield $key => $callback($value, $key); + } + }); + } + + /** + * Run a dictionary map over the items. + * + * The callback should return an associative array with a single key/value pair. + * + * @param callable $callback + * @return static + */ + public function mapToDictionary(callable $callback) + { + return $this->passthru('mapToDictionary', func_get_args()); + } + + /** + * Run an associative map over each of the items. + * + * The callback should return an associative array with a single key/value pair. + * + * @param callable $callback + * @return static + */ + public function mapWithKeys(callable $callback) + { + return new static(function () use ($callback) { + foreach ($this as $key => $value) { + yield from $callback($value, $key); + } + }); + } + + /** + * Merge the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function merge($items) + { + return $this->passthru('merge', func_get_args()); + } + + /** + * Recursively merge the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function mergeRecursive($items) + { + return $this->passthru('mergeRecursive', func_get_args()); + } + + /** + * Create a collection by using this collection for keys and another for its values. + * + * @param mixed $values + * @return static + */ + public function combine($values) + { + return new static(function () use ($values) { + $values = $this->makeIterator($values); + + $errorMessage = 'Both parameters should have an equal number of elements'; + + foreach ($this as $key) { + if (! $values->valid()) { + trigger_error($errorMessage, E_USER_WARNING); + + break; + } + + yield $key => $values->current(); + + $values->next(); + } + + if ($values->valid()) { + trigger_error($errorMessage, E_USER_WARNING); + } + }); + } + + /** + * Union the collection with the given items. + * + * @param mixed $items + * @return static + */ + public function union($items) + { + return $this->passthru('union', func_get_args()); + } + + /** + * Create a new collection consisting of every n-th element. + * + * @param int $step + * @param int $offset + * @return static + */ + public function nth($step, $offset = 0) + { + return new static(function () use ($step, $offset) { + $position = 0; + + foreach ($this->slice($offset) as $item) { + if ($position % $step === 0) { + yield $item; + } + + $position++; + } + }); + } + + /** + * Get the items with the specified keys. + * + * @param mixed $keys + * @return static + */ + public function only($keys) + { + if ($keys instanceof Enumerable) { + $keys = $keys->all(); + } elseif (! is_null($keys)) { + $keys = is_array($keys) ? $keys : func_get_args(); + } + + return new static(function () use ($keys) { + if (is_null($keys)) { + yield from $this; + } else { + $keys = array_flip($keys); + + foreach ($this as $key => $value) { + if (array_key_exists($key, $keys)) { + yield $key => $value; + + unset($keys[$key]); + + if (empty($keys)) { + break; + } + } + } + } + }); + } + + /** + * Push all of the given items onto the collection. + * + * @param iterable $source + * @return static + */ + public function concat($source) + { + return (new static(function () use ($source) { + yield from $this; + yield from $source; + }))->values(); + } + + /** + * Get one or a specified number of items randomly from the collection. + * + * @param int|null $number + * @return static|mixed + * + * @throws \InvalidArgumentException + */ + public function random($number = null) + { + $result = $this->collect()->random(...func_get_args()); + + return is_null($number) ? $result : new static($result); + } + + /** + * Replace the collection items with the given items. + * + * @param mixed $items + * @return static + */ + public function replace($items) + { + return new static(function () use ($items) { + $items = $this->getArrayableItems($items); + + foreach ($this as $key => $value) { + if (array_key_exists($key, $items)) { + yield $key => $items[$key]; + + unset($items[$key]); + } else { + yield $key => $value; + } + } + + foreach ($items as $key => $value) { + yield $key => $value; + } + }); + } + + /** + * Recursively replace the collection items with the given items. + * + * @param mixed $items + * @return static + */ + public function replaceRecursive($items) + { + return $this->passthru('replaceRecursive', func_get_args()); + } + + /** + * Reverse items order. + * + * @return static + */ + public function reverse() + { + return $this->passthru('reverse', func_get_args()); + } + + /** + * Search the collection for a given value and return the corresponding key if successful. + * + * @param mixed $value + * @param bool $strict + * @return mixed + */ + public function search($value, $strict = false) + { + $predicate = $this->useAsCallable($value) + ? $value + : function ($item) use ($value, $strict) { + return $strict ? $item === $value : $item == $value; + }; + + foreach ($this as $key => $item) { + if ($predicate($item, $key)) { + return $key; + } + } + + return false; + } + + /** + * Shuffle the items in the collection. + * + * @param int|null $seed + * @return static + */ + public function shuffle($seed = null) + { + return $this->passthru('shuffle', func_get_args()); + } + + /** + * Create chunks representing a "sliding window" view of the items in the collection. + * + * @param int $size + * @param int $step + * @return static + */ + public function sliding($size = 2, $step = 1) + { + return new static(function () use ($size, $step) { + $iterator = $this->getIterator(); + + $chunk = []; + + while ($iterator->valid()) { + $chunk[$iterator->key()] = $iterator->current(); + + if (count($chunk) == $size) { + yield tap(new static($chunk), function () use (&$chunk, $step) { + $chunk = array_slice($chunk, $step, null, true); + }); + + // If the $step between chunks is bigger than each chunk's $size + // we will skip the extra items (which should never be in any + // chunk) before we continue to the next chunk in the loop. + if ($step > $size) { + $skip = $step - $size; + + for ($i = 0; $i < $skip && $iterator->valid(); $i++) { + $iterator->next(); + } + } + } + + $iterator->next(); + } + }); + } + + /** + * Skip the first {$count} items. + * + * @param int $count + * @return static + */ + public function skip($count) + { + return new static(function () use ($count) { + $iterator = $this->getIterator(); + + while ($iterator->valid() && $count--) { + $iterator->next(); + } + + while ($iterator->valid()) { + yield $iterator->key() => $iterator->current(); + + $iterator->next(); + } + }); + } + + /** + * Skip items in the collection until the given condition is met. + * + * @param mixed $value + * @return static + */ + public function skipUntil($value) + { + $callback = $this->useAsCallable($value) ? $value : $this->equality($value); + + return $this->skipWhile($this->negate($callback)); + } + + /** + * Skip items in the collection while the given condition is met. + * + * @param mixed $value + * @return static + */ + public function skipWhile($value) + { + $callback = $this->useAsCallable($value) ? $value : $this->equality($value); + + return new static(function () use ($callback) { + $iterator = $this->getIterator(); + + while ($iterator->valid() && $callback($iterator->current(), $iterator->key())) { + $iterator->next(); + } + + while ($iterator->valid()) { + yield $iterator->key() => $iterator->current(); + + $iterator->next(); + } + }); + } + + /** + * Get a slice of items from the enumerable. + * + * @param int $offset + * @param int|null $length + * @return static + */ + public function slice($offset, $length = null) + { + if ($offset < 0 || $length < 0) { + return $this->passthru('slice', func_get_args()); + } + + $instance = $this->skip($offset); + + return is_null($length) ? $instance : $instance->take($length); + } + + /** + * Split a collection into a certain number of groups. + * + * @param int $numberOfGroups + * @return static + */ + public function split($numberOfGroups) + { + return $this->passthru('split', func_get_args()); + } + + /** + * Get the first item in the collection, but only if exactly one item exists. Otherwise, throw an exception. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return mixed + * + * @throws \Illuminate\Support\ItemNotFoundException + * @throws \Illuminate\Support\MultipleItemsFoundException + */ + public function sole($key = null, $operator = null, $value = null) + { + $filter = func_num_args() > 1 + ? $this->operatorForWhere(...func_get_args()) + : $key; + + return $this + ->when($filter) + ->filter($filter) + ->take(2) + ->collect() + ->sole(); + } + + /** + * Get the first item in the collection but throw an exception if no matching items exist. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return mixed + * + * @throws \Illuminate\Support\ItemNotFoundException + */ + public function firstOrFail($key = null, $operator = null, $value = null) + { + $filter = func_num_args() > 1 + ? $this->operatorForWhere(...func_get_args()) + : $key; + + return $this + ->when($filter) + ->filter($filter) + ->take(1) + ->collect() + ->firstOrFail(); + } + + /** + * Chunk the collection into chunks of the given size. + * + * @param int $size + * @return static + */ + public function chunk($size) + { + if ($size <= 0) { + return static::empty(); + } + + return new static(function () use ($size) { + $iterator = $this->getIterator(); + + while ($iterator->valid()) { + $chunk = []; + + while (true) { + $chunk[$iterator->key()] = $iterator->current(); + + if (count($chunk) < $size) { + $iterator->next(); + + if (! $iterator->valid()) { + break; + } + } else { + break; + } + } + + yield new static($chunk); + + $iterator->next(); + } + }); + } + + /** + * Split a collection into a certain number of groups, and fill the first groups completely. + * + * @param int $numberOfGroups + * @return static + */ + public function splitIn($numberOfGroups) + { + return $this->chunk(ceil($this->count() / $numberOfGroups)); + } + + /** + * Chunk the collection into chunks with a callback. + * + * @param callable $callback + * @return static + */ + public function chunkWhile(callable $callback) + { + return new static(function () use ($callback) { + $iterator = $this->getIterator(); + + $chunk = new Collection; + + if ($iterator->valid()) { + $chunk[$iterator->key()] = $iterator->current(); + + $iterator->next(); + } + + while ($iterator->valid()) { + if (! $callback($iterator->current(), $iterator->key(), $chunk)) { + yield new static($chunk); + + $chunk = new Collection; + } + + $chunk[$iterator->key()] = $iterator->current(); + + $iterator->next(); + } + + if ($chunk->isNotEmpty()) { + yield new static($chunk); + } + }); + } + + /** + * Sort through each item with a callback. + * + * @param callable|null|int $callback + * @return static + */ + public function sort($callback = null) + { + return $this->passthru('sort', func_get_args()); + } + + /** + * Sort items in descending order. + * + * @param int $options + * @return static + */ + public function sortDesc($options = SORT_REGULAR) + { + return $this->passthru('sortDesc', func_get_args()); + } + + /** + * Sort the collection using the given callback. + * + * @param callable|string $callback + * @param int $options + * @param bool $descending + * @return static + */ + public function sortBy($callback, $options = SORT_REGULAR, $descending = false) + { + return $this->passthru('sortBy', func_get_args()); + } + + /** + * Sort the collection in descending order using the given callback. + * + * @param callable|string $callback + * @param int $options + * @return static + */ + public function sortByDesc($callback, $options = SORT_REGULAR) + { + return $this->passthru('sortByDesc', func_get_args()); + } + + /** + * Sort the collection keys. + * + * @param int $options + * @param bool $descending + * @return static + */ + public function sortKeys($options = SORT_REGULAR, $descending = false) + { + return $this->passthru('sortKeys', func_get_args()); + } + + /** + * Sort the collection keys in descending order. + * + * @param int $options + * @return static + */ + public function sortKeysDesc($options = SORT_REGULAR) + { + return $this->passthru('sortKeysDesc', func_get_args()); + } + + /** + * Sort the collection keys using a callback. + * + * @param callable $callback + * @return static + */ + public function sortKeysUsing(callable $callback) + { + return $this->passthru('sortKeysUsing', func_get_args()); + } + + /** + * Take the first or last {$limit} items. + * + * @param int $limit + * @return static + */ + public function take($limit) + { + if ($limit < 0) { + return $this->passthru('take', func_get_args()); + } + + return new static(function () use ($limit) { + $iterator = $this->getIterator(); + + while ($limit--) { + if (! $iterator->valid()) { + break; + } + + yield $iterator->key() => $iterator->current(); + + if ($limit) { + $iterator->next(); + } + } + }); + } + + /** + * Take items in the collection until the given condition is met. + * + * @param mixed $value + * @return static + */ + public function takeUntil($value) + { + $callback = $this->useAsCallable($value) ? $value : $this->equality($value); + + return new static(function () use ($callback) { + foreach ($this as $key => $item) { + if ($callback($item, $key)) { + break; + } + + yield $key => $item; + } + }); + } + + /** + * Take items in the collection until a given point in time. + * + * @param \DateTimeInterface $timeout + * @return static + */ + public function takeUntilTimeout(DateTimeInterface $timeout) + { + $timeout = $timeout->getTimestamp(); + + return $this->takeWhile(function () use ($timeout) { + return $this->now() < $timeout; + }); + } + + /** + * Take items in the collection while the given condition is met. + * + * @param mixed $value + * @return static + */ + public function takeWhile($value) + { + $callback = $this->useAsCallable($value) ? $value : $this->equality($value); + + return $this->takeUntil(function ($item, $key) use ($callback) { + return ! $callback($item, $key); + }); + } + + /** + * Pass each item in the collection to the given callback, lazily. + * + * @param callable $callback + * @return static + */ + public function tapEach(callable $callback) + { + return new static(function () use ($callback) { + foreach ($this as $key => $value) { + $callback($value, $key); + + yield $key => $value; + } + }); + } + + /** + * Convert a flatten "dot" notation array into an expanded array. + * + * @return static + */ + public function undot() + { + return $this->passthru('undot', []); + } + + /** + * Return only unique items from the collection array. + * + * @param string|callable|null $key + * @param bool $strict + * @return static + */ + public function unique($key = null, $strict = false) + { + $callback = $this->valueRetriever($key); + + return new static(function () use ($callback, $strict) { + $exists = []; + + foreach ($this as $key => $item) { + if (! in_array($id = $callback($item, $key), $exists, $strict)) { + yield $key => $item; + + $exists[] = $id; + } + } + }); + } + + /** + * Reset the keys on the underlying array. + * + * @return static + */ + public function values() + { + return new static(function () { + foreach ($this as $item) { + yield $item; + } + }); + } + + /** + * Zip the collection together with one or more arrays. + * + * e.g. new LazyCollection([1, 2, 3])->zip([4, 5, 6]); + * => [[1, 4], [2, 5], [3, 6]] + * + * @param mixed ...$items + * @return static + */ + public function zip($items) + { + $iterables = func_get_args(); + + return new static(function () use ($iterables) { + $iterators = Collection::make($iterables)->map(function ($iterable) { + return $this->makeIterator($iterable); + })->prepend($this->getIterator()); + + while ($iterators->contains->valid()) { + yield new static($iterators->map->current()); + + $iterators->each->next(); + } + }); + } + + /** + * Pad collection to the specified length with a value. + * + * @param int $size + * @param mixed $value + * @return static + */ + public function pad($size, $value) + { + if ($size < 0) { + return $this->passthru('pad', func_get_args()); + } + + return new static(function () use ($size, $value) { + $yielded = 0; + + foreach ($this as $index => $item) { + yield $index => $item; + + $yielded++; + } + + while ($yielded++ < $size) { + yield $value; + } + }); + } + + /** + * Get the values iterator. + * + * @return \Traversable + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return $this->makeIterator($this->source); + } + + /** + * Count the number of items in the collection. + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + if (is_array($this->source)) { + return count($this->source); + } + + return iterator_count($this->getIterator()); + } + + /** + * Make an iterator from the given source. + * + * @param mixed $source + * @return \Traversable + */ + protected function makeIterator($source) + { + if ($source instanceof IteratorAggregate) { + return $source->getIterator(); + } + + if (is_array($source)) { + return new ArrayIterator($source); + } + + return $source(); + } + + /** + * Explode the "value" and "key" arguments passed to "pluck". + * + * @param string|array $value + * @param string|array|null $key + * @return array + */ + protected function explodePluckParameters($value, $key) + { + $value = is_string($value) ? explode('.', $value) : $value; + + $key = is_null($key) || is_array($key) ? $key : explode('.', $key); + + return [$value, $key]; + } + + /** + * Pass this lazy collection through a method on the collection class. + * + * @param string $method + * @param array $params + * @return static + */ + protected function passthru($method, array $params) + { + return new static(function () use ($method, $params) { + yield from $this->collect()->$method(...$params); + }); + } + + /** + * Get the current time. + * + * @return int + */ + protected function now() + { + return time(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/MultipleItemsFoundException.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/MultipleItemsFoundException.php new file mode 100644 index 00000000000..944b2dc6413 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/MultipleItemsFoundException.php @@ -0,0 +1,9 @@ +all() : $value; + } + + /** + * Create a new instance with no items. + * + * @return static + */ + public static function empty() + { + return new static([]); + } + + /** + * Create a new collection by invoking the callback a given amount of times. + * + * @param int $number + * @param callable|null $callback + * @return static + */ + public static function times($number, callable $callback = null) + { + if ($number < 1) { + return new static; + } + + return static::range(1, $number) + ->when($callback) + ->map($callback); + } + + /** + * Alias for the "avg" method. + * + * @param callable|string|null $callback + * @return mixed + */ + public function average($callback = null) + { + return $this->avg($callback); + } + + /** + * Alias for the "contains" method. + * + * @param mixed $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function some($key, $operator = null, $value = null) + { + return $this->contains(...func_get_args()); + } + + /** + * Determine if an item exists, using strict comparison. + * + * @param mixed $key + * @param mixed $value + * @return bool + */ + public function containsStrict($key, $value = null) + { + if (func_num_args() === 2) { + return $this->contains(function ($item) use ($key, $value) { + return data_get($item, $key) === $value; + }); + } + + if ($this->useAsCallable($key)) { + return ! is_null($this->first($key)); + } + + foreach ($this as $item) { + if ($item === $key) { + return true; + } + } + + return false; + } + + /** + * Dump the items and end the script. + * + * @param mixed ...$args + * @return void + */ + public function dd(...$args) + { + $this->dump(...$args); + + exit(1); + } + + /** + * Dump the items. + * + * @return $this + */ + public function dump() + { + (new Collection(func_get_args())) + ->push($this->all()) + ->each(function ($item) { + VarDumper::dump($item); + }); + + return $this; + } + + /** + * Execute a callback over each item. + * + * @param callable $callback + * @return $this + */ + public function each(callable $callback) + { + foreach ($this as $key => $item) { + if ($callback($item, $key) === false) { + break; + } + } + + return $this; + } + + /** + * Execute a callback over each nested chunk of items. + * + * @param callable $callback + * @return static + */ + public function eachSpread(callable $callback) + { + return $this->each(function ($chunk, $key) use ($callback) { + $chunk[] = $key; + + return $callback(...$chunk); + }); + } + + /** + * Determine if all items pass the given truth test. + * + * @param string|callable $key + * @param mixed $operator + * @param mixed $value + * @return bool + */ + public function every($key, $operator = null, $value = null) + { + if (func_num_args() === 1) { + $callback = $this->valueRetriever($key); + + foreach ($this as $k => $v) { + if (! $callback($v, $k)) { + return false; + } + } + + return true; + } + + return $this->every($this->operatorForWhere(...func_get_args())); + } + + /** + * Get the first item by the given key value pair. + * + * @param string $key + * @param mixed $operator + * @param mixed $value + * @return mixed + */ + public function firstWhere($key, $operator = null, $value = null) + { + return $this->first($this->operatorForWhere(...func_get_args())); + } + + /** + * Determine if the collection is not empty. + * + * @return bool + */ + public function isNotEmpty() + { + return ! $this->isEmpty(); + } + + /** + * Run a map over each nested chunk of items. + * + * @param callable $callback + * @return static + */ + public function mapSpread(callable $callback) + { + return $this->map(function ($chunk, $key) use ($callback) { + $chunk[] = $key; + + return $callback(...$chunk); + }); + } + + /** + * Run a grouping map over the items. + * + * The callback should return an associative array with a single key/value pair. + * + * @param callable $callback + * @return static + */ + public function mapToGroups(callable $callback) + { + $groups = $this->mapToDictionary($callback); + + return $groups->map([$this, 'make']); + } + + /** + * Map a collection and flatten the result by a single level. + * + * @param callable $callback + * @return static + */ + public function flatMap(callable $callback) + { + return $this->map($callback)->collapse(); + } + + /** + * Map the values into a new class. + * + * @param string $class + * @return static + */ + public function mapInto($class) + { + return $this->map(function ($value, $key) use ($class) { + return new $class($value, $key); + }); + } + + /** + * Get the min value of a given key. + * + * @param callable|string|null $callback + * @return mixed + */ + public function min($callback = null) + { + $callback = $this->valueRetriever($callback); + + return $this->map(function ($value) use ($callback) { + return $callback($value); + })->filter(function ($value) { + return ! is_null($value); + })->reduce(function ($result, $value) { + return is_null($result) || $value < $result ? $value : $result; + }); + } + + /** + * Get the max value of a given key. + * + * @param callable|string|null $callback + * @return mixed + */ + public function max($callback = null) + { + $callback = $this->valueRetriever($callback); + + return $this->filter(function ($value) { + return ! is_null($value); + })->reduce(function ($result, $item) use ($callback) { + $value = $callback($item); + + return is_null($result) || $value > $result ? $value : $result; + }); + } + + /** + * "Paginate" the collection by slicing it into a smaller collection. + * + * @param int $page + * @param int $perPage + * @return static + */ + public function forPage($page, $perPage) + { + $offset = max(0, ($page - 1) * $perPage); + + return $this->slice($offset, $perPage); + } + + /** + * Partition the collection into two arrays using the given callback or key. + * + * @param callable|string $key + * @param mixed $operator + * @param mixed $value + * @return static + */ + public function partition($key, $operator = null, $value = null) + { + $passed = []; + $failed = []; + + $callback = func_num_args() === 1 + ? $this->valueRetriever($key) + : $this->operatorForWhere(...func_get_args()); + + foreach ($this as $key => $item) { + if ($callback($item, $key)) { + $passed[$key] = $item; + } else { + $failed[$key] = $item; + } + } + + return new static([new static($passed), new static($failed)]); + } + + /** + * Get the sum of the given values. + * + * @param callable|string|null $callback + * @return mixed + */ + public function sum($callback = null) + { + $callback = is_null($callback) + ? $this->identity() + : $this->valueRetriever($callback); + + return $this->reduce(function ($result, $item) use ($callback) { + return $result + $callback($item); + }, 0); + } + + /** + * Apply the callback if the value is truthy. + * + * @param bool|mixed $value + * @param callable|null $callback + * @param callable|null $default + * @return static|mixed + */ + public function when($value, callable $callback = null, callable $default = null) + { + if (! $callback) { + return new HigherOrderWhenProxy($this, $value); + } + + if ($value) { + return $callback($this, $value); + } elseif ($default) { + return $default($this, $value); + } + + return $this; + } + + /** + * Apply the callback if the collection is empty. + * + * @param callable $callback + * @param callable|null $default + * @return static|mixed + */ + public function whenEmpty(callable $callback, callable $default = null) + { + return $this->when($this->isEmpty(), $callback, $default); + } + + /** + * Apply the callback if the collection is not empty. + * + * @param callable $callback + * @param callable|null $default + * @return static|mixed + */ + public function whenNotEmpty(callable $callback, callable $default = null) + { + return $this->when($this->isNotEmpty(), $callback, $default); + } + + /** + * Apply the callback if the value is falsy. + * + * @param bool $value + * @param callable $callback + * @param callable|null $default + * @return static|mixed + */ + public function unless($value, callable $callback, callable $default = null) + { + return $this->when(! $value, $callback, $default); + } + + /** + * Apply the callback unless the collection is empty. + * + * @param callable $callback + * @param callable|null $default + * @return static|mixed + */ + public function unlessEmpty(callable $callback, callable $default = null) + { + return $this->whenNotEmpty($callback, $default); + } + + /** + * Apply the callback unless the collection is not empty. + * + * @param callable $callback + * @param callable|null $default + * @return static|mixed + */ + public function unlessNotEmpty(callable $callback, callable $default = null) + { + return $this->whenEmpty($callback, $default); + } + + /** + * Filter items by the given key value pair. + * + * @param string $key + * @param mixed $operator + * @param mixed $value + * @return static + */ + public function where($key, $operator = null, $value = null) + { + return $this->filter($this->operatorForWhere(...func_get_args())); + } + + /** + * Filter items where the value for the given key is null. + * + * @param string|null $key + * @return static + */ + public function whereNull($key = null) + { + return $this->whereStrict($key, null); + } + + /** + * Filter items where the value for the given key is not null. + * + * @param string|null $key + * @return static + */ + public function whereNotNull($key = null) + { + return $this->where($key, '!==', null); + } + + /** + * Filter items by the given key value pair using strict comparison. + * + * @param string $key + * @param mixed $value + * @return static + */ + public function whereStrict($key, $value) + { + return $this->where($key, '===', $value); + } + + /** + * Filter items by the given key value pair. + * + * @param string $key + * @param mixed $values + * @param bool $strict + * @return static + */ + public function whereIn($key, $values, $strict = false) + { + $values = $this->getArrayableItems($values); + + return $this->filter(function ($item) use ($key, $values, $strict) { + return in_array(data_get($item, $key), $values, $strict); + }); + } + + /** + * Filter items by the given key value pair using strict comparison. + * + * @param string $key + * @param mixed $values + * @return static + */ + public function whereInStrict($key, $values) + { + return $this->whereIn($key, $values, true); + } + + /** + * Filter items such that the value of the given key is between the given values. + * + * @param string $key + * @param array $values + * @return static + */ + public function whereBetween($key, $values) + { + return $this->where($key, '>=', reset($values))->where($key, '<=', end($values)); + } + + /** + * Filter items such that the value of the given key is not between the given values. + * + * @param string $key + * @param array $values + * @return static + */ + public function whereNotBetween($key, $values) + { + return $this->filter(function ($item) use ($key, $values) { + return data_get($item, $key) < reset($values) || data_get($item, $key) > end($values); + }); + } + + /** + * Filter items by the given key value pair. + * + * @param string $key + * @param mixed $values + * @param bool $strict + * @return static + */ + public function whereNotIn($key, $values, $strict = false) + { + $values = $this->getArrayableItems($values); + + return $this->reject(function ($item) use ($key, $values, $strict) { + return in_array(data_get($item, $key), $values, $strict); + }); + } + + /** + * Filter items by the given key value pair using strict comparison. + * + * @param string $key + * @param mixed $values + * @return static + */ + public function whereNotInStrict($key, $values) + { + return $this->whereNotIn($key, $values, true); + } + + /** + * Filter the items, removing any items that don't match the given type(s). + * + * @param string|string[] $type + * @return static + */ + public function whereInstanceOf($type) + { + return $this->filter(function ($value) use ($type) { + if (is_array($type)) { + foreach ($type as $classType) { + if ($value instanceof $classType) { + return true; + } + } + + return false; + } + + return $value instanceof $type; + }); + } + + /** + * Pass the collection to the given callback and return the result. + * + * @param callable $callback + * @return mixed + */ + public function pipe(callable $callback) + { + return $callback($this); + } + + /** + * Pass the collection into a new class. + * + * @param string $class + * @return mixed + */ + public function pipeInto($class) + { + return new $class($this); + } + + /** + * Pass the collection through a series of callable pipes and return the result. + * + * @param array $pipes + * @return mixed + */ + public function pipeThrough($pipes) + { + return static::make($pipes)->reduce( + function ($carry, $pipe) { + return $pipe($carry); + }, + $this, + ); + } + + /** + * Pass the collection to the given callback and then return it. + * + * @param callable $callback + * @return $this + */ + public function tap(callable $callback) + { + $callback(clone $this); + + return $this; + } + + /** + * Reduce the collection to a single value. + * + * @param callable $callback + * @param mixed $initial + * @return mixed + */ + public function reduce(callable $callback, $initial = null) + { + $result = $initial; + + foreach ($this as $key => $value) { + $result = $callback($result, $value, $key); + } + + return $result; + } + + /** + * Reduce the collection to multiple aggregate values. + * + * @param callable $callback + * @param mixed ...$initial + * @return array + * + * @deprecated Use "reduceSpread" instead + * + * @throws \UnexpectedValueException + */ + public function reduceMany(callable $callback, ...$initial) + { + return $this->reduceSpread($callback, ...$initial); + } + + /** + * Reduce the collection to multiple aggregate values. + * + * @param callable $callback + * @param mixed ...$initial + * @return array + * + * @throws \UnexpectedValueException + */ + public function reduceSpread(callable $callback, ...$initial) + { + $result = $initial; + + foreach ($this as $key => $value) { + $result = call_user_func_array($callback, array_merge($result, [$value, $key])); + + if (! is_array($result)) { + throw new UnexpectedValueException(sprintf( + "%s::reduceMany expects reducer to return an array, but got a '%s' instead.", + class_basename(static::class), gettype($result) + )); + } + } + + return $result; + } + + /** + * Reduce an associative collection to a single value. + * + * @param callable $callback + * @param mixed $initial + * @return mixed + */ + public function reduceWithKeys(callable $callback, $initial = null) + { + return $this->reduce($callback, $initial); + } + + /** + * Create a collection of all elements that do not pass a given truth test. + * + * @param callable|mixed $callback + * @return static + */ + public function reject($callback = true) + { + $useAsCallable = $this->useAsCallable($callback); + + return $this->filter(function ($value, $key) use ($callback, $useAsCallable) { + return $useAsCallable + ? ! $callback($value, $key) + : $value != $callback; + }); + } + + /** + * Return only unique items from the collection array using strict comparison. + * + * @param string|callable|null $key + * @return static + */ + public function uniqueStrict($key = null) + { + return $this->unique($key, true); + } + + /** + * Collect the values into a collection. + * + * @return \Illuminate\Support\Collection + */ + public function collect() + { + return new Collection($this->all()); + } + + /** + * Get the collection of items as a plain array. + * + * @return array + */ + public function toArray() + { + return $this->map(function ($value) { + return $value instanceof Arrayable ? $value->toArray() : $value; + })->all(); + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return array_map(function ($value) { + if ($value instanceof JsonSerializable) { + return $value->jsonSerialize(); + } elseif ($value instanceof Jsonable) { + return json_decode($value->toJson(), true); + } elseif ($value instanceof Arrayable) { + return $value->toArray(); + } + + return $value; + }, $this->all()); + } + + /** + * Get the collection of items as JSON. + * + * @param int $options + * @return string + */ + public function toJson($options = 0) + { + return json_encode($this->jsonSerialize(), $options); + } + + /** + * Get a CachingIterator instance. + * + * @param int $flags + * @return \CachingIterator + */ + public function getCachingIterator($flags = CachingIterator::CALL_TOSTRING) + { + return new CachingIterator($this->getIterator(), $flags); + } + + /** + * Convert the collection to its string representation. + * + * @return string + */ + public function __toString() + { + return $this->escapeWhenCastingToString + ? e($this->toJson()) + : $this->toJson(); + } + + /** + * Indicate that the model's string representation should be escaped when __toString is invoked. + * + * @param bool $escape + * @return $this + */ + public function escapeWhenCastingToString($escape = true) + { + $this->escapeWhenCastingToString = $escape; + + return $this; + } + + /** + * Add a method to the list of proxied methods. + * + * @param string $method + * @return void + */ + public static function proxy($method) + { + static::$proxies[] = $method; + } + + /** + * Dynamically access collection proxies. + * + * @param string $key + * @return mixed + * + * @throws \Exception + */ + public function __get($key) + { + if (! in_array($key, static::$proxies)) { + throw new Exception("Property [{$key}] does not exist on this collection instance."); + } + + return new HigherOrderCollectionProxy($this, $key); + } + + /** + * Results array of items from Collection or Arrayable. + * + * @param mixed $items + * @return array + */ + protected function getArrayableItems($items) + { + if (is_array($items)) { + return $items; + } elseif ($items instanceof Enumerable) { + return $items->all(); + } elseif ($items instanceof Arrayable) { + return $items->toArray(); + } elseif ($items instanceof Jsonable) { + return json_decode($items->toJson(), true); + } elseif ($items instanceof JsonSerializable) { + return (array) $items->jsonSerialize(); + } elseif ($items instanceof Traversable) { + return iterator_to_array($items); + } elseif ($items instanceof UnitEnum) { + return [$items]; + } + + return (array) $items; + } + + /** + * Get an operator checker callback. + * + * @param string $key + * @param string|null $operator + * @param mixed $value + * @return \Closure + */ + protected function operatorForWhere($key, $operator = null, $value = null) + { + if (func_num_args() === 1) { + $value = true; + + $operator = '='; + } + + if (func_num_args() === 2) { + $value = $operator; + + $operator = '='; + } + + return function ($item) use ($key, $operator, $value) { + $retrieved = data_get($item, $key); + + $strings = array_filter([$retrieved, $value], function ($value) { + return is_string($value) || (is_object($value) && method_exists($value, '__toString')); + }); + + if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) { + return in_array($operator, ['!=', '<>', '!==']); + } + + switch ($operator) { + default: + case '=': + case '==': return $retrieved == $value; + case '!=': + case '<>': return $retrieved != $value; + case '<': return $retrieved < $value; + case '>': return $retrieved > $value; + case '<=': return $retrieved <= $value; + case '>=': return $retrieved >= $value; + case '===': return $retrieved === $value; + case '!==': return $retrieved !== $value; + } + }; + } + + /** + * Determine if the given value is callable, but not a string. + * + * @param mixed $value + * @return bool + */ + protected function useAsCallable($value) + { + return ! is_string($value) && is_callable($value); + } + + /** + * Get a value retrieving callback. + * + * @param callable|string|null $value + * @return callable + */ + protected function valueRetriever($value) + { + if ($this->useAsCallable($value)) { + return $value; + } + + return function ($item) use ($value) { + return data_get($item, $value); + }; + } + + /** + * Make a function to check an item's equality. + * + * @param mixed $value + * @return \Closure + */ + protected function equality($value) + { + return function ($item) use ($value) { + return $item === $value; + }; + } + + /** + * Make a function using another function, by negating its result. + * + * @param \Closure $callback + * @return \Closure + */ + protected function negate(Closure $callback) + { + return function (...$params) use ($callback) { + return ! $callback(...$params); + }; + } + + /** + * Make a function that returns what's passed to it. + * + * @return \Closure + */ + protected function identity() + { + return function ($value) { + return $value; + }; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/composer.json b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/composer.json new file mode 100644 index 00000000000..ecc45372663 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/composer.json @@ -0,0 +1,41 @@ +{ + "name": "illuminate/collections", + "description": "The Illuminate Collections package.", + "license": "MIT", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "require": { + "php": "^7.3|^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0" + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "suggest": { + "symfony/var-dumper": "Required to use the dump method (^5.4)." + }, + "config": { + "sort-packages": true + }, + "minimum-stability": "dev" +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/helpers.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/helpers.php new file mode 100644 index 00000000000..67669e5ce1c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/collections/helpers.php @@ -0,0 +1,186 @@ + $segment) { + unset($key[$i]); + + if (is_null($segment)) { + return $target; + } + + if ($segment === '*') { + if ($target instanceof Collection) { + $target = $target->all(); + } elseif (! is_array($target)) { + return value($default); + } + + $result = []; + + foreach ($target as $item) { + $result[] = data_get($item, $key); + } + + return in_array('*', $key) ? Arr::collapse($result) : $result; + } + + if (Arr::accessible($target) && Arr::exists($target, $segment)) { + $target = $target[$segment]; + } elseif (is_object($target) && isset($target->{$segment})) { + $target = $target->{$segment}; + } else { + return value($default); + } + } + + return $target; + } +} + +if (! function_exists('data_set')) { + /** + * Set an item on an array or object using dot notation. + * + * @param mixed $target + * @param string|array $key + * @param mixed $value + * @param bool $overwrite + * @return mixed + */ + function data_set(&$target, $key, $value, $overwrite = true) + { + $segments = is_array($key) ? $key : explode('.', $key); + + if (($segment = array_shift($segments)) === '*') { + if (! Arr::accessible($target)) { + $target = []; + } + + if ($segments) { + foreach ($target as &$inner) { + data_set($inner, $segments, $value, $overwrite); + } + } elseif ($overwrite) { + foreach ($target as &$inner) { + $inner = $value; + } + } + } elseif (Arr::accessible($target)) { + if ($segments) { + if (! Arr::exists($target, $segment)) { + $target[$segment] = []; + } + + data_set($target[$segment], $segments, $value, $overwrite); + } elseif ($overwrite || ! Arr::exists($target, $segment)) { + $target[$segment] = $value; + } + } elseif (is_object($target)) { + if ($segments) { + if (! isset($target->{$segment})) { + $target->{$segment} = []; + } + + data_set($target->{$segment}, $segments, $value, $overwrite); + } elseif ($overwrite || ! isset($target->{$segment})) { + $target->{$segment} = $value; + } + } else { + $target = []; + + if ($segments) { + data_set($target[$segment], $segments, $value, $overwrite); + } elseif ($overwrite) { + $target[$segment] = $value; + } + } + + return $target; + } +} + +if (! function_exists('head')) { + /** + * Get the first element of an array. Useful for method chaining. + * + * @param array $array + * @return mixed + */ + function head($array) + { + return reset($array); + } +} + +if (! function_exists('last')) { + /** + * Get the last element from an array. + * + * @param array $array + * @return mixed + */ + function last($array) + { + return end($array); + } +} + +if (! function_exists('value')) { + /** + * Return the default value of the given value. + * + * @param mixed $value + * @return mixed + */ + function value($value, ...$args) + { + return $value instanceof Closure ? $value(...$args) : $value; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/contracts/Auth/Access/Authorizable.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/contracts/Auth/Access/Authorizable.php new file mode 100644 index 00000000000..cedeb6ea344 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/contracts/Auth/Access/Authorizable.php @@ -0,0 +1,15 @@ +id = $id; + $this->class = $class; + $this->relations = $relations; + $this->connection = $connection; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/contracts/Debug/ExceptionHandler.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/contracts/Debug/ExceptionHandler.php new file mode 100644 index 00000000000..54381a179af --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/contracts/Debug/ExceptionHandler.php @@ -0,0 +1,46 @@ +getMethods( + ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED + ); + + foreach ($methods as $method) { + if ($replace || ! static::hasMacro($method->name)) { + $method->setAccessible(true); + static::macro($method->name, $method->invoke($mixin)); + } + } + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$macros[$name]); + } + + /** + * Flush the existing macros. + * + * @return void + */ + public static function flushMacros() + { + static::$macros = []; + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * + * @throws \BadMethodCallException + */ + public static function __callStatic($method, $parameters) + { + if (! static::hasMacro($method)) { + throw new BadMethodCallException(sprintf( + 'Method %s::%s does not exist.', static::class, $method + )); + } + + $macro = static::$macros[$method]; + + if ($macro instanceof Closure) { + $macro = $macro->bindTo(null, static::class); + } + + return $macro(...$parameters); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * + * @throws \BadMethodCallException + */ + public function __call($method, $parameters) + { + if (! static::hasMacro($method)) { + throw new BadMethodCallException(sprintf( + 'Method %s::%s does not exist.', static::class, $method + )); + } + + $macro = static::$macros[$method]; + + if ($macro instanceof Closure) { + $macro = $macro->bindTo($this, static::class); + } + + return $macro(...$parameters); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/macroable/composer.json b/htdocs/includes/webklex/php-imap/vendor/illuminate/macroable/composer.json new file mode 100644 index 00000000000..dfa5c62be19 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/macroable/composer.json @@ -0,0 +1,33 @@ +{ + "name": "illuminate/macroable", + "description": "The Illuminate Macroable package.", + "license": "MIT", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "require": { + "php": "^7.3|^8.0" + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + } + }, + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "config": { + "sort-packages": true + }, + "minimum-stability": "dev" +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/AbstractCursorPaginator.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/AbstractCursorPaginator.php new file mode 100644 index 00000000000..12344850b95 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/AbstractCursorPaginator.php @@ -0,0 +1,676 @@ +cursorName => $cursor->encode()]; + + if (count($this->query) > 0) { + $parameters = array_merge($this->query, $parameters); + } + + return $this->path() + .(Str::contains($this->path(), '?') ? '&' : '?') + .Arr::query($parameters) + .$this->buildFragment(); + } + + /** + * Get the URL for the previous page. + * + * @return string|null + */ + public function previousPageUrl() + { + if (is_null($previousCursor = $this->previousCursor())) { + return null; + } + + return $this->url($previousCursor); + } + + /** + * The URL for the next page, or null. + * + * @return string|null + */ + public function nextPageUrl() + { + if (is_null($nextCursor = $this->nextCursor())) { + return null; + } + + return $this->url($nextCursor); + } + + /** + * Get the "cursor" that points to the previous set of items. + * + * @return \Illuminate\Pagination\Cursor|null + */ + public function previousCursor() + { + if (is_null($this->cursor) || + ($this->cursor->pointsToPreviousItems() && ! $this->hasMore)) { + return null; + } + + if ($this->items->isEmpty()) { + return null; + } + + return $this->getCursorForItem($this->items->first(), false); + } + + /** + * Get the "cursor" that points to the next set of items. + * + * @return \Illuminate\Pagination\Cursor|null + */ + public function nextCursor() + { + if ((is_null($this->cursor) && ! $this->hasMore) || + (! is_null($this->cursor) && $this->cursor->pointsToNextItems() && ! $this->hasMore)) { + return null; + } + + if ($this->items->isEmpty()) { + return null; + } + + return $this->getCursorForItem($this->items->last(), true); + } + + /** + * Get a cursor instance for the given item. + * + * @param \ArrayAccess|\stdClass $item + * @param bool $isNext + * @return \Illuminate\Pagination\Cursor + */ + public function getCursorForItem($item, $isNext = true) + { + return new Cursor($this->getParametersForItem($item), $isNext); + } + + /** + * Get the cursor parameters for a given object. + * + * @param \ArrayAccess|\stdClass $item + * @return array + * + * @throws \Exception + */ + public function getParametersForItem($item) + { + return collect($this->parameters) + ->flip() + ->map(function ($_, $parameterName) use ($item) { + if ($item instanceof JsonResource) { + $item = $item->resource; + } + + if ($item instanceof Model && + ! is_null($parameter = $this->getPivotParameterForItem($item, $parameterName))) { + return $parameter; + } elseif ($item instanceof ArrayAccess || is_array($item)) { + return $this->ensureParameterIsPrimitive( + $item[$parameterName] ?? $item[Str::afterLast($parameterName, '.')] + ); + } elseif (is_object($item)) { + return $this->ensureParameterIsPrimitive( + $item->{$parameterName} ?? $item->{Str::afterLast($parameterName, '.')} + ); + } + + throw new Exception('Only arrays and objects are supported when cursor paginating items.'); + })->toArray(); + } + + /** + * Get the cursor parameter value from a pivot model if applicable. + * + * @param \ArrayAccess|\stdClass $item + * @param string $parameterName + * @return string|null + */ + protected function getPivotParameterForItem($item, $parameterName) + { + $table = Str::beforeLast($parameterName, '.'); + + foreach ($item->getRelations() as $relation) { + if ($relation instanceof Pivot && $relation->getTable() === $table) { + return $this->ensureParameterIsPrimitive( + $relation->getAttribute(Str::afterLast($parameterName, '.')) + ); + } + } + } + + /** + * Ensure the parameter is a primitive type. + * + * This can resolve issues that arise the developer uses a value object for an attribute. + * + * @param mixed $parameter + * @return mixed + */ + protected function ensureParameterIsPrimitive($parameter) + { + return is_object($parameter) && method_exists($parameter, '__toString') + ? (string) $parameter + : $parameter; + } + + /** + * Get / set the URL fragment to be appended to URLs. + * + * @param string|null $fragment + * @return $this|string|null + */ + public function fragment($fragment = null) + { + if (is_null($fragment)) { + return $this->fragment; + } + + $this->fragment = $fragment; + + return $this; + } + + /** + * Add a set of query string values to the paginator. + * + * @param array|string|null $key + * @param string|null $value + * @return $this + */ + public function appends($key, $value = null) + { + if (is_null($key)) { + return $this; + } + + if (is_array($key)) { + return $this->appendArray($key); + } + + return $this->addQuery($key, $value); + } + + /** + * Add an array of query string values. + * + * @param array $keys + * @return $this + */ + protected function appendArray(array $keys) + { + foreach ($keys as $key => $value) { + $this->addQuery($key, $value); + } + + return $this; + } + + /** + * Add all current query string values to the paginator. + * + * @return $this + */ + public function withQueryString() + { + if (! is_null($query = Paginator::resolveQueryString())) { + return $this->appends($query); + } + + return $this; + } + + /** + * Add a query string value to the paginator. + * + * @param string $key + * @param string $value + * @return $this + */ + protected function addQuery($key, $value) + { + if ($key !== $this->cursorName) { + $this->query[$key] = $value; + } + + return $this; + } + + /** + * Build the full fragment portion of a URL. + * + * @return string + */ + protected function buildFragment() + { + return $this->fragment ? '#'.$this->fragment : ''; + } + + /** + * Load a set of relationships onto the mixed relationship collection. + * + * @param string $relation + * @param array $relations + * @return $this + */ + public function loadMorph($relation, $relations) + { + $this->getCollection()->loadMorph($relation, $relations); + + return $this; + } + + /** + * Load a set of relationship counts onto the mixed relationship collection. + * + * @param string $relation + * @param array $relations + * @return $this + */ + public function loadMorphCount($relation, $relations) + { + $this->getCollection()->loadMorphCount($relation, $relations); + + return $this; + } + + /** + * Get the slice of items being paginated. + * + * @return array + */ + public function items() + { + return $this->items->all(); + } + + /** + * Transform each item in the slice of items using a callback. + * + * @param callable $callback + * @return $this + */ + public function through(callable $callback) + { + $this->items->transform($callback); + + return $this; + } + + /** + * Get the number of items shown per page. + * + * @return int + */ + public function perPage() + { + return $this->perPage; + } + + /** + * Get the current cursor being paginated. + * + * @return \Illuminate\Pagination\Cursor|null + */ + public function cursor() + { + return $this->cursor; + } + + /** + * Get the query string variable used to store the cursor. + * + * @return string + */ + public function getCursorName() + { + return $this->cursorName; + } + + /** + * Set the query string variable used to store the cursor. + * + * @param string $name + * @return $this + */ + public function setCursorName($name) + { + $this->cursorName = $name; + + return $this; + } + + /** + * Set the base path to assign to all URLs. + * + * @param string $path + * @return $this + */ + public function withPath($path) + { + return $this->setPath($path); + } + + /** + * Set the base path to assign to all URLs. + * + * @param string $path + * @return $this + */ + public function setPath($path) + { + $this->path = $path; + + return $this; + } + + /** + * Get the base path for paginator generated URLs. + * + * @return string|null + */ + public function path() + { + return $this->path; + } + + /** + * Resolve the current cursor or return the default value. + * + * @param string $cursorName + * @return \Illuminate\Pagination\Cursor|null + */ + public static function resolveCurrentCursor($cursorName = 'cursor', $default = null) + { + if (isset(static::$currentCursorResolver)) { + return call_user_func(static::$currentCursorResolver, $cursorName); + } + + return $default; + } + + /** + * Set the current cursor resolver callback. + * + * @param \Closure $resolver + * @return void + */ + public static function currentCursorResolver(Closure $resolver) + { + static::$currentCursorResolver = $resolver; + } + + /** + * Get an instance of the view factory from the resolver. + * + * @return \Illuminate\Contracts\View\Factory + */ + public static function viewFactory() + { + return Paginator::viewFactory(); + } + + /** + * Get an iterator for the items. + * + * @return \ArrayIterator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return $this->items->getIterator(); + } + + /** + * Determine if the list of items is empty. + * + * @return bool + */ + public function isEmpty() + { + return $this->items->isEmpty(); + } + + /** + * Determine if the list of items is not empty. + * + * @return bool + */ + public function isNotEmpty() + { + return $this->items->isNotEmpty(); + } + + /** + * Get the number of items for the current page. + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return $this->items->count(); + } + + /** + * Get the paginator's underlying collection. + * + * @return \Illuminate\Support\Collection + */ + public function getCollection() + { + return $this->items; + } + + /** + * Set the paginator's underlying collection. + * + * @param \Illuminate\Support\Collection $collection + * @return $this + */ + public function setCollection(Collection $collection) + { + $this->items = $collection; + + return $this; + } + + /** + * Get the paginator options. + * + * @return array + */ + public function getOptions() + { + return $this->options; + } + + /** + * Determine if the given item exists. + * + * @param mixed $key + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($key) + { + return $this->items->has($key); + } + + /** + * Get the item at the given offset. + * + * @param mixed $key + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($key) + { + return $this->items->get($key); + } + + /** + * Set the item at the given offset. + * + * @param mixed $key + * @param mixed $value + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($key, $value) + { + $this->items->put($key, $value); + } + + /** + * Unset the item at the given key. + * + * @param mixed $key + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($key) + { + $this->items->forget($key); + } + + /** + * Render the contents of the paginator to HTML. + * + * @return string + */ + public function toHtml() + { + return (string) $this->render(); + } + + /** + * Make dynamic calls into the collection. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->forwardCallTo($this->getCollection(), $method, $parameters); + } + + /** + * Render the contents of the paginator when casting to a string. + * + * @return string + */ + public function __toString() + { + return (string) $this->render(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/AbstractPaginator.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/AbstractPaginator.php new file mode 100644 index 00000000000..ac9ef403503 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/AbstractPaginator.php @@ -0,0 +1,782 @@ += 1 && filter_var($page, FILTER_VALIDATE_INT) !== false; + } + + /** + * Get the URL for the previous page. + * + * @return string|null + */ + public function previousPageUrl() + { + if ($this->currentPage() > 1) { + return $this->url($this->currentPage() - 1); + } + } + + /** + * Create a range of pagination URLs. + * + * @param int $start + * @param int $end + * @return array + */ + public function getUrlRange($start, $end) + { + return collect(range($start, $end))->mapWithKeys(function ($page) { + return [$page => $this->url($page)]; + })->all(); + } + + /** + * Get the URL for a given page number. + * + * @param int $page + * @return string + */ + public function url($page) + { + if ($page <= 0) { + $page = 1; + } + + // If we have any extra query string key / value pairs that need to be added + // onto the URL, we will put them in query string form and then attach it + // to the URL. This allows for extra information like sortings storage. + $parameters = [$this->pageName => $page]; + + if (count($this->query) > 0) { + $parameters = array_merge($this->query, $parameters); + } + + return $this->path() + .(Str::contains($this->path(), '?') ? '&' : '?') + .Arr::query($parameters) + .$this->buildFragment(); + } + + /** + * Get / set the URL fragment to be appended to URLs. + * + * @param string|null $fragment + * @return $this|string|null + */ + public function fragment($fragment = null) + { + if (is_null($fragment)) { + return $this->fragment; + } + + $this->fragment = $fragment; + + return $this; + } + + /** + * Add a set of query string values to the paginator. + * + * @param array|string|null $key + * @param string|null $value + * @return $this + */ + public function appends($key, $value = null) + { + if (is_null($key)) { + return $this; + } + + if (is_array($key)) { + return $this->appendArray($key); + } + + return $this->addQuery($key, $value); + } + + /** + * Add an array of query string values. + * + * @param array $keys + * @return $this + */ + protected function appendArray(array $keys) + { + foreach ($keys as $key => $value) { + $this->addQuery($key, $value); + } + + return $this; + } + + /** + * Add all current query string values to the paginator. + * + * @return $this + */ + public function withQueryString() + { + if (isset(static::$queryStringResolver)) { + return $this->appends(call_user_func(static::$queryStringResolver)); + } + + return $this; + } + + /** + * Add a query string value to the paginator. + * + * @param string $key + * @param string $value + * @return $this + */ + protected function addQuery($key, $value) + { + if ($key !== $this->pageName) { + $this->query[$key] = $value; + } + + return $this; + } + + /** + * Build the full fragment portion of a URL. + * + * @return string + */ + protected function buildFragment() + { + return $this->fragment ? '#'.$this->fragment : ''; + } + + /** + * Load a set of relationships onto the mixed relationship collection. + * + * @param string $relation + * @param array $relations + * @return $this + */ + public function loadMorph($relation, $relations) + { + $this->getCollection()->loadMorph($relation, $relations); + + return $this; + } + + /** + * Load a set of relationship counts onto the mixed relationship collection. + * + * @param string $relation + * @param array $relations + * @return $this + */ + public function loadMorphCount($relation, $relations) + { + $this->getCollection()->loadMorphCount($relation, $relations); + + return $this; + } + + /** + * Get the slice of items being paginated. + * + * @return array + */ + public function items() + { + return $this->items->all(); + } + + /** + * Get the number of the first item in the slice. + * + * @return int + */ + public function firstItem() + { + return count($this->items) > 0 ? ($this->currentPage - 1) * $this->perPage + 1 : null; + } + + /** + * Get the number of the last item in the slice. + * + * @return int + */ + public function lastItem() + { + return count($this->items) > 0 ? $this->firstItem() + $this->count() - 1 : null; + } + + /** + * Transform each item in the slice of items using a callback. + * + * @param callable $callback + * @return $this + */ + public function through(callable $callback) + { + $this->items->transform($callback); + + return $this; + } + + /** + * Get the number of items shown per page. + * + * @return int + */ + public function perPage() + { + return $this->perPage; + } + + /** + * Determine if there are enough items to split into multiple pages. + * + * @return bool + */ + public function hasPages() + { + return $this->currentPage() != 1 || $this->hasMorePages(); + } + + /** + * Determine if the paginator is on the first page. + * + * @return bool + */ + public function onFirstPage() + { + return $this->currentPage() <= 1; + } + + /** + * Determine if the paginator is on the last page. + * + * @return bool + */ + public function onLastPage() + { + return ! $this->hasMorePages(); + } + + /** + * Get the current page. + * + * @return int + */ + public function currentPage() + { + return $this->currentPage; + } + + /** + * Get the query string variable used to store the page. + * + * @return string + */ + public function getPageName() + { + return $this->pageName; + } + + /** + * Set the query string variable used to store the page. + * + * @param string $name + * @return $this + */ + public function setPageName($name) + { + $this->pageName = $name; + + return $this; + } + + /** + * Set the base path to assign to all URLs. + * + * @param string $path + * @return $this + */ + public function withPath($path) + { + return $this->setPath($path); + } + + /** + * Set the base path to assign to all URLs. + * + * @param string $path + * @return $this + */ + public function setPath($path) + { + $this->path = $path; + + return $this; + } + + /** + * Set the number of links to display on each side of current page link. + * + * @param int $count + * @return $this + */ + public function onEachSide($count) + { + $this->onEachSide = $count; + + return $this; + } + + /** + * Get the base path for paginator generated URLs. + * + * @return string|null + */ + public function path() + { + return $this->path; + } + + /** + * Resolve the current request path or return the default value. + * + * @param string $default + * @return string + */ + public static function resolveCurrentPath($default = '/') + { + if (isset(static::$currentPathResolver)) { + return call_user_func(static::$currentPathResolver); + } + + return $default; + } + + /** + * Set the current request path resolver callback. + * + * @param \Closure $resolver + * @return void + */ + public static function currentPathResolver(Closure $resolver) + { + static::$currentPathResolver = $resolver; + } + + /** + * Resolve the current page or return the default value. + * + * @param string $pageName + * @param int $default + * @return int + */ + public static function resolveCurrentPage($pageName = 'page', $default = 1) + { + if (isset(static::$currentPageResolver)) { + return (int) call_user_func(static::$currentPageResolver, $pageName); + } + + return $default; + } + + /** + * Set the current page resolver callback. + * + * @param \Closure $resolver + * @return void + */ + public static function currentPageResolver(Closure $resolver) + { + static::$currentPageResolver = $resolver; + } + + /** + * Resolve the query string or return the default value. + * + * @param string|array|null $default + * @return string + */ + public static function resolveQueryString($default = null) + { + if (isset(static::$queryStringResolver)) { + return (static::$queryStringResolver)(); + } + + return $default; + } + + /** + * Set with query string resolver callback. + * + * @param \Closure $resolver + * @return void + */ + public static function queryStringResolver(Closure $resolver) + { + static::$queryStringResolver = $resolver; + } + + /** + * Get an instance of the view factory from the resolver. + * + * @return \Illuminate\Contracts\View\Factory + */ + public static function viewFactory() + { + return call_user_func(static::$viewFactoryResolver); + } + + /** + * Set the view factory resolver callback. + * + * @param \Closure $resolver + * @return void + */ + public static function viewFactoryResolver(Closure $resolver) + { + static::$viewFactoryResolver = $resolver; + } + + /** + * Set the default pagination view. + * + * @param string $view + * @return void + */ + public static function defaultView($view) + { + static::$defaultView = $view; + } + + /** + * Set the default "simple" pagination view. + * + * @param string $view + * @return void + */ + public static function defaultSimpleView($view) + { + static::$defaultSimpleView = $view; + } + + /** + * Indicate that Tailwind styling should be used for generated links. + * + * @return void + */ + public static function useTailwind() + { + static::defaultView('pagination::tailwind'); + static::defaultSimpleView('pagination::simple-tailwind'); + } + + /** + * Indicate that Bootstrap 4 styling should be used for generated links. + * + * @return void + */ + public static function useBootstrap() + { + static::defaultView('pagination::bootstrap-4'); + static::defaultSimpleView('pagination::simple-bootstrap-4'); + } + + /** + * Indicate that Bootstrap 3 styling should be used for generated links. + * + * @return void + */ + public static function useBootstrapThree() + { + static::defaultView('pagination::default'); + static::defaultSimpleView('pagination::simple-default'); + } + + /** + * Get an iterator for the items. + * + * @return \ArrayIterator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return $this->items->getIterator(); + } + + /** + * Determine if the list of items is empty. + * + * @return bool + */ + public function isEmpty() + { + return $this->items->isEmpty(); + } + + /** + * Determine if the list of items is not empty. + * + * @return bool + */ + public function isNotEmpty() + { + return $this->items->isNotEmpty(); + } + + /** + * Get the number of items for the current page. + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return $this->items->count(); + } + + /** + * Get the paginator's underlying collection. + * + * @return \Illuminate\Support\Collection + */ + public function getCollection() + { + return $this->items; + } + + /** + * Set the paginator's underlying collection. + * + * @param \Illuminate\Support\Collection $collection + * @return $this + */ + public function setCollection(Collection $collection) + { + $this->items = $collection; + + return $this; + } + + /** + * Get the paginator options. + * + * @return array + */ + public function getOptions() + { + return $this->options; + } + + /** + * Determine if the given item exists. + * + * @param mixed $key + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($key) + { + return $this->items->has($key); + } + + /** + * Get the item at the given offset. + * + * @param mixed $key + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($key) + { + return $this->items->get($key); + } + + /** + * Set the item at the given offset. + * + * @param mixed $key + * @param mixed $value + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($key, $value) + { + $this->items->put($key, $value); + } + + /** + * Unset the item at the given key. + * + * @param mixed $key + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($key) + { + $this->items->forget($key); + } + + /** + * Render the contents of the paginator to HTML. + * + * @return string + */ + public function toHtml() + { + return (string) $this->render(); + } + + /** + * Make dynamic calls into the collection. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->forwardCallTo($this->getCollection(), $method, $parameters); + } + + /** + * Render the contents of the paginator when casting to a string. + * + * @return string + */ + public function __toString() + { + return (string) $this->render(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/Cursor.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/Cursor.php new file mode 100644 index 00000000000..e8edf6526bc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/Cursor.php @@ -0,0 +1,132 @@ +parameters = $parameters; + $this->pointsToNextItems = $pointsToNextItems; + } + + /** + * Get the given parameter from the cursor. + * + * @param string $parameterName + * @return string|null + * + * @throws \UnexpectedValueException + */ + public function parameter(string $parameterName) + { + if (! array_key_exists($parameterName, $this->parameters)) { + throw new UnexpectedValueException("Unable to find parameter [{$parameterName}] in pagination item."); + } + + return $this->parameters[$parameterName]; + } + + /** + * Get the given parameters from the cursor. + * + * @param array $parameterNames + * @return array + */ + public function parameters(array $parameterNames) + { + return collect($parameterNames)->map(function ($parameterName) { + return $this->parameter($parameterName); + })->toArray(); + } + + /** + * Determine whether the cursor points to the next set of items. + * + * @return bool + */ + public function pointsToNextItems() + { + return $this->pointsToNextItems; + } + + /** + * Determine whether the cursor points to the previous set of items. + * + * @return bool + */ + public function pointsToPreviousItems() + { + return ! $this->pointsToNextItems; + } + + /** + * Get the array representation of the cursor. + * + * @return array + */ + public function toArray() + { + return array_merge($this->parameters, [ + '_pointsToNextItems' => $this->pointsToNextItems, + ]); + } + + /** + * Get the encoded string representation of the cursor to construct a URL. + * + * @return string + */ + public function encode() + { + return str_replace(['+', '/', '='], ['-', '_', ''], base64_encode(json_encode($this->toArray()))); + } + + /** + * Get a cursor instance from the encoded string representation. + * + * @param string|null $encodedString + * @return static|null + */ + public static function fromEncoded($encodedString) + { + if (is_null($encodedString) || ! is_string($encodedString)) { + return null; + } + + $parameters = json_decode(base64_decode(str_replace(['-', '_'], ['+', '/'], $encodedString)), true); + + if (json_last_error() !== JSON_ERROR_NONE) { + return null; + } + + $pointsToNextItems = $parameters['_pointsToNextItems']; + + unset($parameters['_pointsToNextItems']); + + return new static($parameters, $pointsToNextItems); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/CursorPaginationException.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/CursorPaginationException.php new file mode 100644 index 00000000000..b12ca607f18 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/CursorPaginationException.php @@ -0,0 +1,13 @@ +options = $options; + + foreach ($options as $key => $value) { + $this->{$key} = $value; + } + + $this->perPage = $perPage; + $this->cursor = $cursor; + $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; + + $this->setItems($items); + } + + /** + * Set the items for the paginator. + * + * @param mixed $items + * @return void + */ + protected function setItems($items) + { + $this->items = $items instanceof Collection ? $items : Collection::make($items); + + $this->hasMore = $this->items->count() > $this->perPage; + + $this->items = $this->items->slice(0, $this->perPage); + + if (! is_null($this->cursor) && $this->cursor->pointsToPreviousItems()) { + $this->items = $this->items->reverse()->values(); + } + } + + /** + * Render the paginator using the given view. + * + * @param string|null $view + * @param array $data + * @return \Illuminate\Contracts\Support\Htmlable + */ + public function links($view = null, $data = []) + { + return $this->render($view, $data); + } + + /** + * Render the paginator using the given view. + * + * @param string|null $view + * @param array $data + * @return \Illuminate\Contracts\Support\Htmlable + */ + public function render($view = null, $data = []) + { + return static::viewFactory()->make($view ?: Paginator::$defaultSimpleView, array_merge($data, [ + 'paginator' => $this, + ])); + } + + /** + * Determine if there are more items in the data source. + * + * @return bool + */ + public function hasMorePages() + { + return (is_null($this->cursor) && $this->hasMore) || + (! is_null($this->cursor) && $this->cursor->pointsToNextItems() && $this->hasMore) || + (! is_null($this->cursor) && $this->cursor->pointsToPreviousItems()); + } + + /** + * Determine if there are enough items to split into multiple pages. + * + * @return bool + */ + public function hasPages() + { + return ! $this->onFirstPage() || $this->hasMorePages(); + } + + /** + * Determine if the paginator is on the first page. + * + * @return bool + */ + public function onFirstPage() + { + return is_null($this->cursor) || ($this->cursor->pointsToPreviousItems() && ! $this->hasMore); + } + + /** + * Get the instance as an array. + * + * @return array + */ + public function toArray() + { + return [ + 'data' => $this->items->toArray(), + 'path' => $this->path(), + 'per_page' => $this->perPage(), + 'next_page_url' => $this->nextPageUrl(), + 'prev_page_url' => $this->previousPageUrl(), + ]; + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Convert the object to its JSON representation. + * + * @param int $options + * @return string + */ + public function toJson($options = 0) + { + return json_encode($this->jsonSerialize(), $options); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/LICENSE.md b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/LICENSE.md new file mode 100644 index 00000000000..79810c848f8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Taylor Otwell + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/LengthAwarePaginator.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/LengthAwarePaginator.php new file mode 100644 index 00000000000..24f68b121b8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/LengthAwarePaginator.php @@ -0,0 +1,232 @@ +options = $options; + + foreach ($options as $key => $value) { + $this->{$key} = $value; + } + + $this->total = $total; + $this->perPage = $perPage; + $this->lastPage = max((int) ceil($total / $perPage), 1); + $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; + $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName); + $this->items = $items instanceof Collection ? $items : Collection::make($items); + } + + /** + * Get the current page for the request. + * + * @param int $currentPage + * @param string $pageName + * @return int + */ + protected function setCurrentPage($currentPage, $pageName) + { + $currentPage = $currentPage ?: static::resolveCurrentPage($pageName); + + return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; + } + + /** + * Render the paginator using the given view. + * + * @param string|null $view + * @param array $data + * @return \Illuminate\Contracts\Support\Htmlable + */ + public function links($view = null, $data = []) + { + return $this->render($view, $data); + } + + /** + * Render the paginator using the given view. + * + * @param string|null $view + * @param array $data + * @return \Illuminate\Contracts\Support\Htmlable + */ + public function render($view = null, $data = []) + { + return static::viewFactory()->make($view ?: static::$defaultView, array_merge($data, [ + 'paginator' => $this, + 'elements' => $this->elements(), + ])); + } + + /** + * Get the paginator links as a collection (for JSON responses). + * + * @return \Illuminate\Support\Collection + */ + public function linkCollection() + { + return collect($this->elements())->flatMap(function ($item) { + if (! is_array($item)) { + return [['url' => null, 'label' => '...', 'active' => false]]; + } + + return collect($item)->map(function ($url, $page) { + return [ + 'url' => $url, + 'label' => (string) $page, + 'active' => $this->currentPage() === $page, + ]; + }); + })->prepend([ + 'url' => $this->previousPageUrl(), + 'label' => function_exists('__') ? __('pagination.previous') : 'Previous', + 'active' => false, + ])->push([ + 'url' => $this->nextPageUrl(), + 'label' => function_exists('__') ? __('pagination.next') : 'Next', + 'active' => false, + ]); + } + + /** + * Get the array of elements to pass to the view. + * + * @return array + */ + protected function elements() + { + $window = UrlWindow::make($this); + + return array_filter([ + $window['first'], + is_array($window['slider']) ? '...' : null, + $window['slider'], + is_array($window['last']) ? '...' : null, + $window['last'], + ]); + } + + /** + * Get the total number of items being paginated. + * + * @return int + */ + public function total() + { + return $this->total; + } + + /** + * Determine if there are more items in the data source. + * + * @return bool + */ + public function hasMorePages() + { + return $this->currentPage() < $this->lastPage(); + } + + /** + * Get the URL for the next page. + * + * @return string|null + */ + public function nextPageUrl() + { + if ($this->hasMorePages()) { + return $this->url($this->currentPage() + 1); + } + } + + /** + * Get the last page. + * + * @return int + */ + public function lastPage() + { + return $this->lastPage; + } + + /** + * Get the instance as an array. + * + * @return array + */ + public function toArray() + { + return [ + 'current_page' => $this->currentPage(), + 'data' => $this->items->toArray(), + 'first_page_url' => $this->url(1), + 'from' => $this->firstItem(), + 'last_page' => $this->lastPage(), + 'last_page_url' => $this->url($this->lastPage()), + 'links' => $this->linkCollection()->toArray(), + 'next_page_url' => $this->nextPageUrl(), + 'path' => $this->path(), + 'per_page' => $this->perPage(), + 'prev_page_url' => $this->previousPageUrl(), + 'to' => $this->lastItem(), + 'total' => $this->total(), + ]; + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Convert the object to its JSON representation. + * + * @param int $options + * @return string + */ + public function toJson($options = 0) + { + return json_encode($this->jsonSerialize(), $options); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/PaginationServiceProvider.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/PaginationServiceProvider.php new file mode 100755 index 00000000000..e94cebd6caf --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/PaginationServiceProvider.php @@ -0,0 +1,34 @@ +loadViewsFrom(__DIR__.'/resources/views', 'pagination'); + + if ($this->app->runningInConsole()) { + $this->publishes([ + __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/pagination'), + ], 'laravel-pagination'); + } + } + + /** + * Register the service provider. + * + * @return void + */ + public function register() + { + PaginationState::resolveUsing($this->app); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/PaginationState.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/PaginationState.php new file mode 100644 index 00000000000..ff8150ff2a9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/PaginationState.php @@ -0,0 +1,41 @@ +url(); + }); + + Paginator::currentPageResolver(function ($pageName = 'page') use ($app) { + $page = $app['request']->input($pageName); + + if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { + return (int) $page; + } + + return 1; + }); + + Paginator::queryStringResolver(function () use ($app) { + return $app['request']->query(); + }); + + CursorPaginator::currentCursorResolver(function ($cursorName = 'cursor') use ($app) { + return Cursor::fromEncoded($app['request']->input($cursorName)); + }); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/Paginator.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/Paginator.php new file mode 100644 index 00000000000..733edb8e00f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/Paginator.php @@ -0,0 +1,177 @@ +options = $options; + + foreach ($options as $key => $value) { + $this->{$key} = $value; + } + + $this->perPage = $perPage; + $this->currentPage = $this->setCurrentPage($currentPage); + $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; + + $this->setItems($items); + } + + /** + * Get the current page for the request. + * + * @param int $currentPage + * @return int + */ + protected function setCurrentPage($currentPage) + { + $currentPage = $currentPage ?: static::resolveCurrentPage(); + + return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; + } + + /** + * Set the items for the paginator. + * + * @param mixed $items + * @return void + */ + protected function setItems($items) + { + $this->items = $items instanceof Collection ? $items : Collection::make($items); + + $this->hasMore = $this->items->count() > $this->perPage; + + $this->items = $this->items->slice(0, $this->perPage); + } + + /** + * Get the URL for the next page. + * + * @return string|null + */ + public function nextPageUrl() + { + if ($this->hasMorePages()) { + return $this->url($this->currentPage() + 1); + } + } + + /** + * Render the paginator using the given view. + * + * @param string|null $view + * @param array $data + * @return string + */ + public function links($view = null, $data = []) + { + return $this->render($view, $data); + } + + /** + * Render the paginator using the given view. + * + * @param string|null $view + * @param array $data + * @return \Illuminate\Contracts\Support\Htmlable + */ + public function render($view = null, $data = []) + { + return static::viewFactory()->make($view ?: static::$defaultSimpleView, array_merge($data, [ + 'paginator' => $this, + ])); + } + + /** + * Manually indicate that the paginator does have more pages. + * + * @param bool $hasMore + * @return $this + */ + public function hasMorePagesWhen($hasMore = true) + { + $this->hasMore = $hasMore; + + return $this; + } + + /** + * Determine if there are more items in the data source. + * + * @return bool + */ + public function hasMorePages() + { + return $this->hasMore; + } + + /** + * Get the instance as an array. + * + * @return array + */ + public function toArray() + { + return [ + 'current_page' => $this->currentPage(), + 'data' => $this->items->toArray(), + 'first_page_url' => $this->url(1), + 'from' => $this->firstItem(), + 'next_page_url' => $this->nextPageUrl(), + 'path' => $this->path(), + 'per_page' => $this->perPage(), + 'prev_page_url' => $this->previousPageUrl(), + 'to' => $this->lastItem(), + ]; + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Convert the object to its JSON representation. + * + * @param int $options + * @return string + */ + public function toJson($options = 0) + { + return json_encode($this->jsonSerialize(), $options); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/UrlWindow.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/UrlWindow.php new file mode 100644 index 00000000000..31c7cc2a430 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/UrlWindow.php @@ -0,0 +1,220 @@ +paginator = $paginator; + } + + /** + * Create a new URL window instance. + * + * @param \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator + * @return array + */ + public static function make(PaginatorContract $paginator) + { + return (new static($paginator))->get(); + } + + /** + * Get the window of URLs to be shown. + * + * @return array + */ + public function get() + { + $onEachSide = $this->paginator->onEachSide; + + if ($this->paginator->lastPage() < ($onEachSide * 2) + 8) { + return $this->getSmallSlider(); + } + + return $this->getUrlSlider($onEachSide); + } + + /** + * Get the slider of URLs there are not enough pages to slide. + * + * @return array + */ + protected function getSmallSlider() + { + return [ + 'first' => $this->paginator->getUrlRange(1, $this->lastPage()), + 'slider' => null, + 'last' => null, + ]; + } + + /** + * Create a URL slider links. + * + * @param int $onEachSide + * @return array + */ + protected function getUrlSlider($onEachSide) + { + $window = $onEachSide + 4; + + if (! $this->hasPages()) { + return ['first' => null, 'slider' => null, 'last' => null]; + } + + // If the current page is very close to the beginning of the page range, we will + // just render the beginning of the page range, followed by the last 2 of the + // links in this list, since we will not have room to create a full slider. + if ($this->currentPage() <= $window) { + return $this->getSliderTooCloseToBeginning($window, $onEachSide); + } + + // If the current page is close to the ending of the page range we will just get + // this first couple pages, followed by a larger window of these ending pages + // since we're too close to the end of the list to create a full on slider. + elseif ($this->currentPage() > ($this->lastPage() - $window)) { + return $this->getSliderTooCloseToEnding($window, $onEachSide); + } + + // If we have enough room on both sides of the current page to build a slider we + // will surround it with both the beginning and ending caps, with this window + // of pages in the middle providing a Google style sliding paginator setup. + return $this->getFullSlider($onEachSide); + } + + /** + * Get the slider of URLs when too close to beginning of window. + * + * @param int $window + * @param int $onEachSide + * @return array + */ + protected function getSliderTooCloseToBeginning($window, $onEachSide) + { + return [ + 'first' => $this->paginator->getUrlRange(1, $window + $onEachSide), + 'slider' => null, + 'last' => $this->getFinish(), + ]; + } + + /** + * Get the slider of URLs when too close to ending of window. + * + * @param int $window + * @param int $onEachSide + * @return array + */ + protected function getSliderTooCloseToEnding($window, $onEachSide) + { + $last = $this->paginator->getUrlRange( + $this->lastPage() - ($window + ($onEachSide - 1)), + $this->lastPage() + ); + + return [ + 'first' => $this->getStart(), + 'slider' => null, + 'last' => $last, + ]; + } + + /** + * Get the slider of URLs when a full slider can be made. + * + * @param int $onEachSide + * @return array + */ + protected function getFullSlider($onEachSide) + { + return [ + 'first' => $this->getStart(), + 'slider' => $this->getAdjacentUrlRange($onEachSide), + 'last' => $this->getFinish(), + ]; + } + + /** + * Get the page range for the current page window. + * + * @param int $onEachSide + * @return array + */ + public function getAdjacentUrlRange($onEachSide) + { + return $this->paginator->getUrlRange( + $this->currentPage() - $onEachSide, + $this->currentPage() + $onEachSide + ); + } + + /** + * Get the starting URLs of a pagination slider. + * + * @return array + */ + public function getStart() + { + return $this->paginator->getUrlRange(1, 2); + } + + /** + * Get the ending URLs of a pagination slider. + * + * @return array + */ + public function getFinish() + { + return $this->paginator->getUrlRange( + $this->lastPage() - 1, + $this->lastPage() + ); + } + + /** + * Determine if the underlying paginator being presented has pages to show. + * + * @return bool + */ + public function hasPages() + { + return $this->paginator->lastPage() > 1; + } + + /** + * Get the current page from the paginator. + * + * @return int + */ + protected function currentPage() + { + return $this->paginator->currentPage(); + } + + /** + * Get the last page from the paginator. + * + * @return int + */ + protected function lastPage() + { + return $this->paginator->lastPage(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/composer.json b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/composer.json new file mode 100755 index 00000000000..5c8a380b2a3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/composer.json @@ -0,0 +1,37 @@ +{ + "name": "illuminate/pagination", + "description": "The Illuminate Pagination package.", + "license": "MIT", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "require": { + "php": "^7.3|^8.0", + "ext-json": "*", + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/support": "^8.0" + }, + "autoload": { + "psr-4": { + "Illuminate\\Pagination\\": "" + } + }, + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "config": { + "sort-packages": true + }, + "minimum-stability": "dev" +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/bootstrap-4.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/bootstrap-4.blade.php new file mode 100644 index 00000000000..63c6f56b59e --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/bootstrap-4.blade.php @@ -0,0 +1,46 @@ +@if ($paginator->hasPages()) +
    +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/default.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/default.blade.php new file mode 100644 index 00000000000..0db70b56275 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/default.blade.php @@ -0,0 +1,46 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/semantic-ui.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/semantic-ui.blade.php new file mode 100644 index 00000000000..ef0dbb184c6 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/semantic-ui.blade.php @@ -0,0 +1,36 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-bootstrap-4.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-bootstrap-4.blade.php new file mode 100644 index 00000000000..4bb491742a3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-bootstrap-4.blade.php @@ -0,0 +1,27 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-default.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-default.blade.php new file mode 100644 index 00000000000..36bdbc18c65 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-default.blade.php @@ -0,0 +1,19 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-tailwind.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-tailwind.blade.php new file mode 100644 index 00000000000..6872cca360d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/simple-tailwind.blade.php @@ -0,0 +1,25 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/tailwind.blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/tailwind.blade.php new file mode 100644 index 00000000000..5bf323b406f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/pagination/resources/views/tailwind.blade.php @@ -0,0 +1,106 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/AggregateServiceProvider.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/AggregateServiceProvider.php new file mode 100644 index 00000000000..d7425c5c258 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/AggregateServiceProvider.php @@ -0,0 +1,52 @@ +instances = []; + + foreach ($this->providers as $provider) { + $this->instances[] = $this->app->register($provider); + } + } + + /** + * Get the services provided by the provider. + * + * @return array + */ + public function provides() + { + $provides = []; + + foreach ($this->providers as $provider) { + $instance = $this->app->resolveProvider($provider); + + $provides = array_merge($provides, $instance->provides()); + } + + return $provides; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Carbon.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Carbon.php new file mode 100644 index 00000000000..004b27b0751 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Carbon.php @@ -0,0 +1,18 @@ +files = $files; + $this->workingPath = $workingPath; + } + + /** + * Regenerate the Composer autoloader files. + * + * @param string|array $extra + * @return int + */ + public function dumpAutoloads($extra = '') + { + $extra = $extra ? (array) $extra : []; + + $command = array_merge($this->findComposer(), ['dump-autoload'], $extra); + + return $this->getProcess($command)->run(); + } + + /** + * Regenerate the optimized Composer autoloader files. + * + * @return int + */ + public function dumpOptimized() + { + return $this->dumpAutoloads('--optimize'); + } + + /** + * Get the composer command for the environment. + * + * @return array + */ + protected function findComposer() + { + if ($this->files->exists($this->workingPath.'/composer.phar')) { + return [$this->phpBinary(), 'composer.phar']; + } + + return ['composer']; + } + + /** + * Get the PHP binary. + * + * @return string + */ + protected function phpBinary() + { + return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)); + } + + /** + * Get a new Symfony process instance. + * + * @param array $command + * @return \Symfony\Component\Process\Process + */ + protected function getProcess(array $command) + { + return (new Process($command, $this->workingPath))->setTimeout(null); + } + + /** + * Set the working path used by the class. + * + * @param string $path + * @return $this + */ + public function setWorkingPath($path) + { + $this->workingPath = realpath($path); + + return $this; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ConfigurationUrlParser.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ConfigurationUrlParser.php new file mode 100644 index 00000000000..be54b9a83d5 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ConfigurationUrlParser.php @@ -0,0 +1,193 @@ + 'sqlsrv', + 'mysql2' => 'mysql', // RDS + 'postgres' => 'pgsql', + 'postgresql' => 'pgsql', + 'sqlite3' => 'sqlite', + 'redis' => 'tcp', + 'rediss' => 'tls', + ]; + + /** + * Parse the database configuration, hydrating options using a database configuration URL if possible. + * + * @param array|string $config + * @return array + */ + public function parseConfiguration($config) + { + if (is_string($config)) { + $config = ['url' => $config]; + } + + $url = Arr::pull($config, 'url'); + + if (! $url) { + return $config; + } + + $rawComponents = $this->parseUrl($url); + + $decodedComponents = $this->parseStringsToNativeTypes( + array_map('rawurldecode', $rawComponents) + ); + + return array_merge( + $config, + $this->getPrimaryOptions($decodedComponents), + $this->getQueryOptions($rawComponents) + ); + } + + /** + * Get the primary database connection options. + * + * @param array $url + * @return array + */ + protected function getPrimaryOptions($url) + { + return array_filter([ + 'driver' => $this->getDriver($url), + 'database' => $this->getDatabase($url), + 'host' => $url['host'] ?? null, + 'port' => $url['port'] ?? null, + 'username' => $url['user'] ?? null, + 'password' => $url['pass'] ?? null, + ], function ($value) { + return ! is_null($value); + }); + } + + /** + * Get the database driver from the URL. + * + * @param array $url + * @return string|null + */ + protected function getDriver($url) + { + $alias = $url['scheme'] ?? null; + + if (! $alias) { + return; + } + + return static::$driverAliases[$alias] ?? $alias; + } + + /** + * Get the database name from the URL. + * + * @param array $url + * @return string|null + */ + protected function getDatabase($url) + { + $path = $url['path'] ?? null; + + return $path && $path !== '/' ? substr($path, 1) : null; + } + + /** + * Get all of the additional database options from the query string. + * + * @param array $url + * @return array + */ + protected function getQueryOptions($url) + { + $queryString = $url['query'] ?? null; + + if (! $queryString) { + return []; + } + + $query = []; + + parse_str($queryString, $query); + + return $this->parseStringsToNativeTypes($query); + } + + /** + * Parse the string URL to an array of components. + * + * @param string $url + * @return array + * + * @throws \InvalidArgumentException + */ + protected function parseUrl($url) + { + $url = preg_replace('#^(sqlite3?):///#', '$1://null/', $url); + + $parsedUrl = parse_url($url); + + if ($parsedUrl === false) { + throw new InvalidArgumentException('The database configuration URL is malformed.'); + } + + return $parsedUrl; + } + + /** + * Convert string casted values to their native types. + * + * @param mixed $value + * @return mixed + */ + protected function parseStringsToNativeTypes($value) + { + if (is_array($value)) { + return array_map([$this, 'parseStringsToNativeTypes'], $value); + } + + if (! is_string($value)) { + return $value; + } + + $parsedValue = json_decode($value, true); + + if (json_last_error() === JSON_ERROR_NONE) { + return $parsedValue; + } + + return $value; + } + + /** + * Get all of the current drivers' aliases. + * + * @return array + */ + public static function getDriverAliases() + { + return static::$driverAliases; + } + + /** + * Add the given driver alias to the driver aliases array. + * + * @param string $alias + * @param string $driver + * @return void + */ + public static function addDriverAlias($alias, $driver) + { + static::$driverAliases[$alias] = $driver; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/DateFactory.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/DateFactory.php new file mode 100644 index 00000000000..f36cb46f312 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/DateFactory.php @@ -0,0 +1,231 @@ +$method(...$parameters); + } + + $dateClass = static::$dateClass ?: $defaultClassName; + + // Check if date can be created using public class method... + if (method_exists($dateClass, $method) || + method_exists($dateClass, 'hasMacro') && $dateClass::hasMacro($method)) { + return $dateClass::$method(...$parameters); + } + + // If that fails, create the date with the default class... + $date = $defaultClassName::$method(...$parameters); + + // If the configured class has an "instance" method, we'll try to pass our date into there... + if (method_exists($dateClass, 'instance')) { + return $dateClass::instance($date); + } + + // Otherwise, assume the configured class has a DateTime compatible constructor... + return new $dateClass($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Env.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Env.php new file mode 100644 index 00000000000..b3100730406 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Env.php @@ -0,0 +1,103 @@ +addAdapter(PutenvAdapter::class); + } + + static::$repository = $builder->immutable()->make(); + } + + return static::$repository; + } + + /** + * Gets the value of an environment variable. + * + * @param string $key + * @param mixed $default + * @return mixed + */ + public static function get($key, $default = null) + { + return Option::fromValue(static::getRepository()->get($key)) + ->map(function ($value) { + switch (strtolower($value)) { + case 'true': + case '(true)': + return true; + case 'false': + case '(false)': + return false; + case 'empty': + case '(empty)': + return ''; + case 'null': + case '(null)': + return; + } + + if (preg_match('/\A([\'"])(.*)\1\z/', $value, $matches)) { + return $matches[2]; + } + + return $value; + }) + ->getOrCall(function () use ($default) { + return value($default); + }); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/App.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/App.php new file mode 100755 index 00000000000..8fbec3d4c08 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/App.php @@ -0,0 +1,64 @@ +providerIsLoaded(UiServiceProvider::class)) { + throw new RuntimeException('In order to use the Auth::routes() method, please install the laravel/ui package.'); + } + + static::$app->make('router')->auth($options); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Blade.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Blade.php new file mode 100755 index 00000000000..81019e288de --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Blade.php @@ -0,0 +1,46 @@ +dispatch(); + } + + /** + * Get the registered name of the component. + * + * @return string + */ + protected static function getFacadeAccessor() + { + return BusDispatcherContract::class; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Cache.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Cache.php new file mode 100755 index 00000000000..70aa1dc4839 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Cache.php @@ -0,0 +1,40 @@ +cookie($key, null)); + } + + /** + * Retrieve a cookie from the request. + * + * @param string|null $key + * @param mixed $default + * @return string|array|null + */ + public static function get($key = null, $default = null) + { + return static::$app['request']->cookie($key, $default); + } + + /** + * Get the registered name of the component. + * + * @return string + */ + protected static function getFacadeAccessor() + { + return 'cookie'; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Crypt.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Crypt.php new file mode 100755 index 00000000000..61eaaa83e3f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Crypt.php @@ -0,0 +1,27 @@ +resolved($accessor) === true) { + $callback(static::getFacadeRoot()); + } + + static::$app->afterResolving($accessor, function ($service) use ($callback) { + $callback($service); + }); + } + + /** + * Convert the facade into a Mockery spy. + * + * @return \Mockery\MockInterface + */ + public static function spy() + { + if (! static::isMock()) { + $class = static::getMockableClass(); + + return tap($class ? Mockery::spy($class) : Mockery::spy(), function ($spy) { + static::swap($spy); + }); + } + } + + /** + * Initiate a partial mock on the facade. + * + * @return \Mockery\MockInterface + */ + public static function partialMock() + { + $name = static::getFacadeAccessor(); + + $mock = static::isMock() + ? static::$resolvedInstance[$name] + : static::createFreshMockInstance(); + + return $mock->makePartial(); + } + + /** + * Initiate a mock expectation on the facade. + * + * @return \Mockery\Expectation + */ + public static function shouldReceive() + { + $name = static::getFacadeAccessor(); + + $mock = static::isMock() + ? static::$resolvedInstance[$name] + : static::createFreshMockInstance(); + + return $mock->shouldReceive(...func_get_args()); + } + + /** + * Create a fresh mock instance for the given class. + * + * @return \Mockery\MockInterface + */ + protected static function createFreshMockInstance() + { + return tap(static::createMock(), function ($mock) { + static::swap($mock); + + $mock->shouldAllowMockingProtectedMethods(); + }); + } + + /** + * Create a fresh mock instance for the given class. + * + * @return \Mockery\MockInterface + */ + protected static function createMock() + { + $class = static::getMockableClass(); + + return $class ? Mockery::mock($class) : Mockery::mock(); + } + + /** + * Determines whether a mock is set as the instance of the facade. + * + * @return bool + */ + protected static function isMock() + { + $name = static::getFacadeAccessor(); + + return isset(static::$resolvedInstance[$name]) && + static::$resolvedInstance[$name] instanceof LegacyMockInterface; + } + + /** + * Get the mockable class for the bound instance. + * + * @return string|null + */ + protected static function getMockableClass() + { + if ($root = static::getFacadeRoot()) { + return get_class($root); + } + } + + /** + * Hotswap the underlying instance behind the facade. + * + * @param mixed $instance + * @return void + */ + public static function swap($instance) + { + static::$resolvedInstance[static::getFacadeAccessor()] = $instance; + + if (isset(static::$app)) { + static::$app->instance(static::getFacadeAccessor(), $instance); + } + } + + /** + * Get the root object behind the facade. + * + * @return mixed + */ + public static function getFacadeRoot() + { + return static::resolveFacadeInstance(static::getFacadeAccessor()); + } + + /** + * Get the registered name of the component. + * + * @return string + * + * @throws \RuntimeException + */ + protected static function getFacadeAccessor() + { + throw new RuntimeException('Facade does not implement getFacadeAccessor method.'); + } + + /** + * Resolve the facade root instance from the container. + * + * @param object|string $name + * @return mixed + */ + protected static function resolveFacadeInstance($name) + { + if (is_object($name)) { + return $name; + } + + if (isset(static::$resolvedInstance[$name])) { + return static::$resolvedInstance[$name]; + } + + if (static::$app) { + return static::$resolvedInstance[$name] = static::$app[$name]; + } + } + + /** + * Clear a resolved facade instance. + * + * @param string $name + * @return void + */ + public static function clearResolvedInstance($name) + { + unset(static::$resolvedInstance[$name]); + } + + /** + * Clear all of the resolved instances. + * + * @return void + */ + public static function clearResolvedInstances() + { + static::$resolvedInstance = []; + } + + /** + * Get the application instance behind the facade. + * + * @return \Illuminate\Contracts\Foundation\Application + */ + public static function getFacadeApplication() + { + return static::$app; + } + + /** + * Set the application instance. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return void + */ + public static function setFacadeApplication($app) + { + static::$app = $app; + } + + /** + * Handle dynamic, static calls to the object. + * + * @param string $method + * @param array $args + * @return mixed + * + * @throws \RuntimeException + */ + public static function __callStatic($method, $args) + { + $instance = static::getFacadeRoot(); + + if (! $instance) { + throw new RuntimeException('A facade root has not been set.'); + } + + return $instance->$method(...$args); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/File.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/File.php new file mode 100755 index 00000000000..c22d363a855 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/File.php @@ -0,0 +1,62 @@ +route($channel, $route); + } + + /** + * Get the registered name of the component. + * + * @return string + */ + protected static function getFacadeAccessor() + { + return ChannelManager::class; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/ParallelTesting.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/ParallelTesting.php new file mode 100644 index 00000000000..c3976113501 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/ParallelTesting.php @@ -0,0 +1,26 @@ +connection($name)->getSchemaBuilder(); + } + + /** + * Get a schema builder instance for the default connection. + * + * @return \Illuminate\Database\Schema\Builder + */ + protected static function getFacadeAccessor() + { + return static::$app['db']->connection()->getSchemaBuilder(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Session.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Session.php new file mode 100755 index 00000000000..a0723216912 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/Session.php @@ -0,0 +1,45 @@ +get('filesystems.default'); + + $root = storage_path('framework/testing/disks/'.$disk); + + if ($token = ParallelTesting::token()) { + $root = "{$root}_test_{$token}"; + } + + (new Filesystem)->cleanDirectory($root); + + static::set($disk, $fake = static::createLocalDriver(array_merge($config, [ + 'root' => $root, + ]))); + + return $fake; + } + + /** + * Replace the given disk with a persistent local testing disk. + * + * @param string|null $disk + * @param array $config + * @return \Illuminate\Contracts\Filesystem\Filesystem + */ + public static function persistentFake($disk = null, array $config = []) + { + $disk = $disk ?: static::$app['config']->get('filesystems.default'); + + static::set($disk, $fake = static::createLocalDriver(array_merge($config, [ + 'root' => storage_path('framework/testing/disks/'.$disk), + ]))); + + return $fake; + } + + /** + * Get the registered name of the component. + * + * @return string + */ + protected static function getFacadeAccessor() + { + return 'filesystem'; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/URL.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/URL.php new file mode 100755 index 00000000000..7d9941d7c02 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Facades/URL.php @@ -0,0 +1,38 @@ + $value) { + $this->attributes[$key] = $value; + } + } + + /** + * Get an attribute from the fluent instance. + * + * @param string $key + * @param mixed $default + * @return mixed + */ + public function get($key, $default = null) + { + if (array_key_exists($key, $this->attributes)) { + return $this->attributes[$key]; + } + + return value($default); + } + + /** + * Get the attributes from the fluent instance. + * + * @return array + */ + public function getAttributes() + { + return $this->attributes; + } + + /** + * Convert the fluent instance to an array. + * + * @return array + */ + public function toArray() + { + return $this->attributes; + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Convert the fluent instance to JSON. + * + * @param int $options + * @return string + */ + public function toJson($options = 0) + { + return json_encode($this->jsonSerialize(), $options); + } + + /** + * Determine if the given offset exists. + * + * @param string $offset + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($offset) + { + return isset($this->attributes[$offset]); + } + + /** + * Get the value for a given offset. + * + * @param string $offset + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($offset) + { + return $this->get($offset); + } + + /** + * Set the value at the given offset. + * + * @param string $offset + * @param mixed $value + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($offset, $value) + { + $this->attributes[$offset] = $value; + } + + /** + * Unset the value at the given offset. + * + * @param string $offset + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($offset) + { + unset($this->attributes[$offset]); + } + + /** + * Handle dynamic calls to the fluent instance to set attributes. + * + * @param string $method + * @param array $parameters + * @return $this + */ + public function __call($method, $parameters) + { + $this->attributes[$method] = count($parameters) > 0 ? $parameters[0] : true; + + return $this; + } + + /** + * Dynamically retrieve the value of an attribute. + * + * @param string $key + * @return mixed + */ + public function __get($key) + { + return $this->get($key); + } + + /** + * Dynamically set the value of an attribute. + * + * @param string $key + * @param mixed $value + * @return void + */ + public function __set($key, $value) + { + $this->offsetSet($key, $value); + } + + /** + * Dynamically check if an attribute is set. + * + * @param string $key + * @return bool + */ + public function __isset($key) + { + return $this->offsetExists($key); + } + + /** + * Dynamically unset an attribute. + * + * @param string $key + * @return void + */ + public function __unset($key) + { + $this->offsetUnset($key); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/HigherOrderTapProxy.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/HigherOrderTapProxy.php new file mode 100644 index 00000000000..bbf9b2e54db --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/HigherOrderTapProxy.php @@ -0,0 +1,38 @@ +target = $target; + } + + /** + * Dynamically pass method calls to the target. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + $this->target->{$method}(...$parameters); + + return $this->target; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/HtmlString.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/HtmlString.php new file mode 100644 index 00000000000..d6b71d46cde --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/HtmlString.php @@ -0,0 +1,66 @@ +html = $html; + } + + /** + * Get the HTML string. + * + * @return string + */ + public function toHtml() + { + return $this->html; + } + + /** + * Determine if the given HTML string is empty. + * + * @return bool + */ + public function isEmpty() + { + return $this->html === ''; + } + + /** + * Determine if the given HTML string is not empty. + * + * @return bool + */ + public function isNotEmpty() + { + return ! $this->isEmpty(); + } + + /** + * Get the HTML string. + * + * @return string + */ + public function __toString() + { + return $this->toHtml(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/InteractsWithTime.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/InteractsWithTime.php new file mode 100644 index 00000000000..2b617c392a5 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/InteractsWithTime.php @@ -0,0 +1,64 @@ +parseDateInterval($delay); + + return $delay instanceof DateTimeInterface + ? max(0, $delay->getTimestamp() - $this->currentTime()) + : (int) $delay; + } + + /** + * Get the "available at" UNIX timestamp. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @return int + */ + protected function availableAt($delay = 0) + { + $delay = $this->parseDateInterval($delay); + + return $delay instanceof DateTimeInterface + ? $delay->getTimestamp() + : Carbon::now()->addRealSeconds($delay)->getTimestamp(); + } + + /** + * If the given value is an interval, convert it to a DateTime instance. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @return \DateTimeInterface|int + */ + protected function parseDateInterval($delay) + { + if ($delay instanceof DateInterval) { + $delay = Carbon::now()->add($delay); + } + + return $delay; + } + + /** + * Get the current system time as a UNIX timestamp. + * + * @return int + */ + protected function currentTime() + { + return Carbon::now()->getTimestamp(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Js.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Js.php new file mode 100644 index 00000000000..6d6de3440d7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Js.php @@ -0,0 +1,145 @@ +js = $this->convertDataToJavaScriptExpression($data, $flags, $depth); + } + + /** + * Create a new JavaScript string from the given data. + * + * @param mixed $data + * @param int $flags + * @param int $depth + * @return static + * + * @throws \JsonException + */ + public static function from($data, $flags = 0, $depth = 512) + { + return new static($data, $flags, $depth); + } + + /** + * Convert the given data to a JavaScript expression. + * + * @param mixed $data + * @param int $flags + * @param int $depth + * @return string + * + * @throws \JsonException + */ + protected function convertDataToJavaScriptExpression($data, $flags = 0, $depth = 512) + { + if ($data instanceof self) { + return $data->toHtml(); + } + + $json = $this->jsonEncode($data, $flags, $depth); + + if (is_string($data)) { + return "'".substr($json, 1, -1)."'"; + } + + return $this->convertJsonToJavaScriptExpression($json, $flags); + } + + /** + * Encode the given data as JSON. + * + * @param mixed $data + * @param int $flags + * @param int $depth + * @return string + * + * @throws \JsonException + */ + protected function jsonEncode($data, $flags = 0, $depth = 512) + { + if ($data instanceof Jsonable) { + return $data->toJson($flags | static::REQUIRED_FLAGS); + } + + if ($data instanceof Arrayable && ! ($data instanceof JsonSerializable)) { + $data = $data->toArray(); + } + + return json_encode($data, $flags | static::REQUIRED_FLAGS, $depth); + } + + /** + * Convert the given JSON to a JavaScript expression. + * + * @param string $json + * @param int $flags + * @return string + * + * @throws \JsonException + */ + protected function convertJsonToJavaScriptExpression($json, $flags = 0) + { + if ('[]' === $json || '{}' === $json) { + return $json; + } + + if (Str::startsWith($json, ['"', '{', '['])) { + return "JSON.parse('".substr(json_encode($json, $flags | static::REQUIRED_FLAGS), 1, -1)."')"; + } + + return $json; + } + + /** + * Get the string representation of the data for use in HTML. + * + * @return string + */ + public function toHtml() + { + return $this->js; + } + + /** + * Get the string representation of the data for use in HTML. + * + * @return string + */ + public function __toString() + { + return $this->toHtml(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/LICENSE.md b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/LICENSE.md new file mode 100644 index 00000000000..79810c848f8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Taylor Otwell + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Manager.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Manager.php new file mode 100755 index 00000000000..f8ae0729b16 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Manager.php @@ -0,0 +1,193 @@ +container = $container; + $this->config = $container->make('config'); + } + + /** + * Get the default driver name. + * + * @return string + */ + abstract public function getDefaultDriver(); + + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * + * @throws \InvalidArgumentException + */ + public function driver($driver = null) + { + $driver = $driver ?: $this->getDefaultDriver(); + + if (is_null($driver)) { + throw new InvalidArgumentException(sprintf( + 'Unable to resolve NULL driver for [%s].', static::class + )); + } + + // If the given driver has not been created before, we will create the instances + // here and cache it so we can return it next time very quickly. If there is + // already a driver created by this name, we'll just return that instance. + if (! isset($this->drivers[$driver])) { + $this->drivers[$driver] = $this->createDriver($driver); + } + + return $this->drivers[$driver]; + } + + /** + * Create a new driver instance. + * + * @param string $driver + * @return mixed + * + * @throws \InvalidArgumentException + */ + protected function createDriver($driver) + { + // First, we will determine if a custom driver creator exists for the given driver and + // if it does not we will check for a creator method for the driver. Custom creator + // callbacks allow developers to build their own "drivers" easily using Closures. + if (isset($this->customCreators[$driver])) { + return $this->callCustomCreator($driver); + } else { + $method = 'create'.Str::studly($driver).'Driver'; + + if (method_exists($this, $method)) { + return $this->$method(); + } + } + + throw new InvalidArgumentException("Driver [$driver] not supported."); + } + + /** + * Call a custom driver creator. + * + * @param string $driver + * @return mixed + */ + protected function callCustomCreator($driver) + { + return $this->customCreators[$driver]($this->container); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return $this + */ + public function extend($driver, Closure $callback) + { + $this->customCreators[$driver] = $callback; + + return $this; + } + + /** + * Get all of the created "drivers". + * + * @return array + */ + public function getDrivers() + { + return $this->drivers; + } + + /** + * Get the container instance used by the manager. + * + * @return \Illuminate\Contracts\Container\Container + */ + public function getContainer() + { + return $this->container; + } + + /** + * Set the container instance used by the manager. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return $this + */ + public function setContainer(Container $container) + { + $this->container = $container; + + return $this; + } + + /** + * Forget all of the resolved driver instances. + * + * @return $this + */ + public function forgetDrivers() + { + $this->drivers = []; + + return $this; + } + + /** + * Dynamically call the default driver instance. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->driver()->$method(...$parameters); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/MessageBag.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/MessageBag.php new file mode 100755 index 00000000000..e53d509d37c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/MessageBag.php @@ -0,0 +1,418 @@ + $value) { + $value = $value instanceof Arrayable ? $value->toArray() : (array) $value; + + $this->messages[$key] = array_unique($value); + } + } + + /** + * Get the keys present in the message bag. + * + * @return array + */ + public function keys() + { + return array_keys($this->messages); + } + + /** + * Add a message to the message bag. + * + * @param string $key + * @param string $message + * @return $this + */ + public function add($key, $message) + { + if ($this->isUnique($key, $message)) { + $this->messages[$key][] = $message; + } + + return $this; + } + + /** + * Add a message to the message bag if the given conditional is "true". + * + * @param bool $boolean + * @param string $key + * @param string $message + * @return $this + */ + public function addIf($boolean, $key, $message) + { + return $boolean ? $this->add($key, $message) : $this; + } + + /** + * Determine if a key and message combination already exists. + * + * @param string $key + * @param string $message + * @return bool + */ + protected function isUnique($key, $message) + { + $messages = (array) $this->messages; + + return ! isset($messages[$key]) || ! in_array($message, $messages[$key]); + } + + /** + * Merge a new array of messages into the message bag. + * + * @param \Illuminate\Contracts\Support\MessageProvider|array $messages + * @return $this + */ + public function merge($messages) + { + if ($messages instanceof MessageProvider) { + $messages = $messages->getMessageBag()->getMessages(); + } + + $this->messages = array_merge_recursive($this->messages, $messages); + + return $this; + } + + /** + * Determine if messages exist for all of the given keys. + * + * @param array|string|null $key + * @return bool + */ + public function has($key) + { + if ($this->isEmpty()) { + return false; + } + + if (is_null($key)) { + return $this->any(); + } + + $keys = is_array($key) ? $key : func_get_args(); + + foreach ($keys as $key) { + if ($this->first($key) === '') { + return false; + } + } + + return true; + } + + /** + * Determine if messages exist for any of the given keys. + * + * @param array|string $keys + * @return bool + */ + public function hasAny($keys = []) + { + if ($this->isEmpty()) { + return false; + } + + $keys = is_array($keys) ? $keys : func_get_args(); + + foreach ($keys as $key) { + if ($this->has($key)) { + return true; + } + } + + return false; + } + + /** + * Get the first message from the message bag for a given key. + * + * @param string|null $key + * @param string|null $format + * @return string + */ + public function first($key = null, $format = null) + { + $messages = is_null($key) ? $this->all($format) : $this->get($key, $format); + + $firstMessage = Arr::first($messages, null, ''); + + return is_array($firstMessage) ? Arr::first($firstMessage) : $firstMessage; + } + + /** + * Get all of the messages from the message bag for a given key. + * + * @param string $key + * @param string|null $format + * @return array + */ + public function get($key, $format = null) + { + // If the message exists in the message bag, we will transform it and return + // the message. Otherwise, we will check if the key is implicit & collect + // all the messages that match the given key and output it as an array. + if (array_key_exists($key, $this->messages)) { + return $this->transform( + $this->messages[$key], $this->checkFormat($format), $key + ); + } + + if (Str::contains($key, '*')) { + return $this->getMessagesForWildcardKey($key, $format); + } + + return []; + } + + /** + * Get the messages for a wildcard key. + * + * @param string $key + * @param string|null $format + * @return array + */ + protected function getMessagesForWildcardKey($key, $format) + { + return collect($this->messages) + ->filter(function ($messages, $messageKey) use ($key) { + return Str::is($key, $messageKey); + }) + ->map(function ($messages, $messageKey) use ($format) { + return $this->transform( + $messages, $this->checkFormat($format), $messageKey + ); + })->all(); + } + + /** + * Get all of the messages for every key in the message bag. + * + * @param string|null $format + * @return array + */ + public function all($format = null) + { + $format = $this->checkFormat($format); + + $all = []; + + foreach ($this->messages as $key => $messages) { + $all = array_merge($all, $this->transform($messages, $format, $key)); + } + + return $all; + } + + /** + * Get all of the unique messages for every key in the message bag. + * + * @param string|null $format + * @return array + */ + public function unique($format = null) + { + return array_unique($this->all($format)); + } + + /** + * Format an array of messages. + * + * @param array $messages + * @param string $format + * @param string $messageKey + * @return array + */ + protected function transform($messages, $format, $messageKey) + { + return collect((array) $messages) + ->map(function ($message) use ($format, $messageKey) { + // We will simply spin through the given messages and transform each one + // replacing the :message place holder with the real message allowing + // the messages to be easily formatted to each developer's desires. + return str_replace([':message', ':key'], [$message, $messageKey], $format); + })->all(); + } + + /** + * Get the appropriate format based on the given format. + * + * @param string $format + * @return string + */ + protected function checkFormat($format) + { + return $format ?: $this->format; + } + + /** + * Get the raw messages in the message bag. + * + * @return array + */ + public function messages() + { + return $this->messages; + } + + /** + * Get the raw messages in the message bag. + * + * @return array + */ + public function getMessages() + { + return $this->messages(); + } + + /** + * Get the messages for the instance. + * + * @return \Illuminate\Support\MessageBag + */ + public function getMessageBag() + { + return $this; + } + + /** + * Get the default message format. + * + * @return string + */ + public function getFormat() + { + return $this->format; + } + + /** + * Set the default message format. + * + * @param string $format + * @return \Illuminate\Support\MessageBag + */ + public function setFormat($format = ':message') + { + $this->format = $format; + + return $this; + } + + /** + * Determine if the message bag has any messages. + * + * @return bool + */ + public function isEmpty() + { + return ! $this->any(); + } + + /** + * Determine if the message bag has any messages. + * + * @return bool + */ + public function isNotEmpty() + { + return $this->any(); + } + + /** + * Determine if the message bag has any messages. + * + * @return bool + */ + public function any() + { + return $this->count() > 0; + } + + /** + * Get the number of messages in the message bag. + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return count($this->messages, COUNT_RECURSIVE) - count($this->messages); + } + + /** + * Get the instance as an array. + * + * @return array + */ + public function toArray() + { + return $this->getMessages(); + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Convert the object to its JSON representation. + * + * @param int $options + * @return string + */ + public function toJson($options = 0) + { + return json_encode($this->jsonSerialize(), $options); + } + + /** + * Convert the message bag to its string representation. + * + * @return string + */ + public function __toString() + { + return $this->toJson(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/MultipleInstanceManager.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/MultipleInstanceManager.php new file mode 100644 index 00000000000..97cee33af20 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/MultipleInstanceManager.php @@ -0,0 +1,191 @@ +app = $app; + } + + /** + * Get the default instance name. + * + * @return string + */ + abstract public function getDefaultInstance(); + + /** + * Set the default instance name. + * + * @param string $name + * @return void + */ + abstract public function setDefaultInstance($name); + + /** + * Get the instance specific configuration. + * + * @param string $name + * @return array + */ + abstract public function getInstanceConfig($name); + + /** + * Get an instance instance by name. + * + * @param string|null $name + * @return mixed + */ + public function instance($name = null) + { + $name = $name ?: $this->getDefaultInstance(); + + return $this->instances[$name] = $this->get($name); + } + + /** + * Attempt to get an instance from the local cache. + * + * @param string $name + * @return mixed + */ + protected function get($name) + { + return $this->instances[$name] ?? $this->resolve($name); + } + + /** + * Resolve the given instance. + * + * @param string $name + * @return mixed + * + * @throws \InvalidArgumentException + */ + protected function resolve($name) + { + $config = $this->getInstanceConfig($name); + + if (is_null($config)) { + throw new InvalidArgumentException("Instance [{$name}] is not defined."); + } + + if (! array_key_exists('driver', $config)) { + throw new RuntimeException("Instance [{$name}] does not specify a driver."); + } + + if (isset($this->customCreators[$config['driver']])) { + return $this->callCustomCreator($config); + } else { + $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; + + if (method_exists($this, $driverMethod)) { + return $this->{$driverMethod}($config); + } else { + throw new InvalidArgumentException("Instance driver [{$config['driver']}] is not supported."); + } + } + } + + /** + * Call a custom instance creator. + * + * @param array $config + * @return mixed + */ + protected function callCustomCreator(array $config) + { + return $this->customCreators[$config['driver']]($this->app, $config); + } + + /** + * Unset the given instances. + * + * @param array|string|null $name + * @return $this + */ + public function forgetInstance($name = null) + { + $name = $name ?? $this->getDefaultInstance(); + + foreach ((array) $name as $instanceName) { + if (isset($this->instances[$instanceName])) { + unset($this->instances[$instanceName]); + } + } + + return $this; + } + + /** + * Disconnect the given instance and remove from local cache. + * + * @param string|null $name + * @return void + */ + public function purge($name = null) + { + $name = $name ?? $this->getDefaultInstance(); + + unset($this->instances[$name]); + } + + /** + * Register a custom instance creator Closure. + * + * @param string $name + * @param \Closure $callback + * @return $this + */ + public function extend($name, Closure $callback) + { + $this->customCreators[$name] = $callback->bindTo($this, $this); + + return $this; + } + + /** + * Dynamically call the default instance. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->instance()->$method(...$parameters); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/NamespacedItemResolver.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/NamespacedItemResolver.php new file mode 100755 index 00000000000..a0d8508b281 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/NamespacedItemResolver.php @@ -0,0 +1,112 @@ +parsed[$key])) { + return $this->parsed[$key]; + } + + // If the key does not contain a double colon, it means the key is not in a + // namespace, and is just a regular configuration item. Namespaces are a + // tool for organizing configuration items for things such as modules. + if (strpos($key, '::') === false) { + $segments = explode('.', $key); + + $parsed = $this->parseBasicSegments($segments); + } else { + $parsed = $this->parseNamespacedSegments($key); + } + + // Once we have the parsed array of this key's elements, such as its groups + // and namespace, we will cache each array inside a simple list that has + // the key and the parsed array for quick look-ups for later requests. + return $this->parsed[$key] = $parsed; + } + + /** + * Parse an array of basic segments. + * + * @param array $segments + * @return array + */ + protected function parseBasicSegments(array $segments) + { + // The first segment in a basic array will always be the group, so we can go + // ahead and grab that segment. If there is only one total segment we are + // just pulling an entire group out of the array and not a single item. + $group = $segments[0]; + + // If there is more than one segment in this group, it means we are pulling + // a specific item out of a group and will need to return this item name + // as well as the group so we know which item to pull from the arrays. + $item = count($segments) === 1 + ? null + : implode('.', array_slice($segments, 1)); + + return [null, $group, $item]; + } + + /** + * Parse an array of namespaced segments. + * + * @param string $key + * @return array + */ + protected function parseNamespacedSegments($key) + { + [$namespace, $item] = explode('::', $key); + + // First we'll just explode the first segment to get the namespace and group + // since the item should be in the remaining segments. Once we have these + // two pieces of data we can proceed with parsing out the item's value. + $itemSegments = explode('.', $item); + + $groupAndItem = array_slice( + $this->parseBasicSegments($itemSegments), 1 + ); + + return array_merge([$namespace], $groupAndItem); + } + + /** + * Set the parsed value of a key. + * + * @param string $key + * @param array $parsed + * @return void + */ + public function setParsedKey($key, $parsed) + { + $this->parsed[$key] = $parsed; + } + + /** + * Flush the cache of parsed keys. + * + * @return void + */ + public function flushParsedKeys() + { + $this->parsed = []; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Optional.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Optional.php new file mode 100644 index 00000000000..816190dd7a2 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Optional.php @@ -0,0 +1,135 @@ +value = $value; + } + + /** + * Dynamically access a property on the underlying object. + * + * @param string $key + * @return mixed + */ + public function __get($key) + { + if (is_object($this->value)) { + return $this->value->{$key} ?? null; + } + } + + /** + * Dynamically check a property exists on the underlying object. + * + * @param mixed $name + * @return bool + */ + public function __isset($name) + { + if (is_object($this->value)) { + return isset($this->value->{$name}); + } + + if (is_array($this->value) || $this->value instanceof ArrayObject) { + return isset($this->value[$name]); + } + + return false; + } + + /** + * Determine if an item exists at an offset. + * + * @param mixed $key + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($key) + { + return Arr::accessible($this->value) && Arr::exists($this->value, $key); + } + + /** + * Get an item at a given offset. + * + * @param mixed $key + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($key) + { + return Arr::get($this->value, $key); + } + + /** + * Set the item at a given offset. + * + * @param mixed $key + * @param mixed $value + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($key, $value) + { + if (Arr::accessible($this->value)) { + $this->value[$key] = $value; + } + } + + /** + * Unset the item at a given offset. + * + * @param string $key + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($key) + { + if (Arr::accessible($this->value)) { + unset($this->value[$key]); + } + } + + /** + * Dynamically pass a method to the underlying object. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + if (static::hasMacro($method)) { + return $this->macroCall($method, $parameters); + } + + if (is_object($this->value)) { + return $this->value->{$method}(...$parameters); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Pluralizer.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Pluralizer.php new file mode 100755 index 00000000000..109a10816d7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Pluralizer.php @@ -0,0 +1,142 @@ +pluralize($value); + + return static::matchCase($plural, $value); + } + + /** + * Get the singular form of an English word. + * + * @param string $value + * @return string + */ + public static function singular($value) + { + $singular = static::inflector()->singularize($value); + + return static::matchCase($singular, $value); + } + + /** + * Determine if the given value is uncountable. + * + * @param string $value + * @return bool + */ + protected static function uncountable($value) + { + return in_array(strtolower($value), static::$uncountable); + } + + /** + * Attempt to match the case on two strings. + * + * @param string $value + * @param string $comparison + * @return string + */ + protected static function matchCase($value, $comparison) + { + $functions = ['mb_strtolower', 'mb_strtoupper', 'ucfirst', 'ucwords']; + + foreach ($functions as $function) { + if ($function($comparison) === $comparison) { + return $function($value); + } + } + + return $value; + } + + /** + * Get the inflector instance. + * + * @return \Doctrine\Inflector\Inflector + */ + public static function inflector() + { + static $inflector; + + if (is_null($inflector)) { + $inflector = InflectorFactory::createForLanguage('english')->build(); + } + + return $inflector; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ProcessUtils.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ProcessUtils.php new file mode 100644 index 00000000000..1caa9e168a6 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ProcessUtils.php @@ -0,0 +1,69 @@ +isPublic(); + } + + if (is_object($var[0]) && method_exists($class, '__call')) { + return (new ReflectionMethod($class, '__call'))->isPublic(); + } + + if (! is_object($var[0]) && method_exists($class, '__callStatic')) { + return (new ReflectionMethod($class, '__callStatic'))->isPublic(); + } + + return false; + } + + /** + * Get the class name of the given parameter's type, if possible. + * + * @param \ReflectionParameter $parameter + * @return string|null + */ + public static function getParameterClassName($parameter) + { + $type = $parameter->getType(); + + if (! $type instanceof ReflectionNamedType || $type->isBuiltin()) { + return; + } + + return static::getTypeName($parameter, $type); + } + + /** + * Get the class names of the given parameter's type, including union types. + * + * @param \ReflectionParameter $parameter + * @return array + */ + public static function getParameterClassNames($parameter) + { + $type = $parameter->getType(); + + if (! $type instanceof ReflectionUnionType) { + return array_filter([static::getParameterClassName($parameter)]); + } + + $unionTypes = []; + + foreach ($type->getTypes() as $listedType) { + if (! $listedType instanceof ReflectionNamedType || $listedType->isBuiltin()) { + continue; + } + + $unionTypes[] = static::getTypeName($parameter, $listedType); + } + + return array_filter($unionTypes); + } + + /** + * Get the given type's class name. + * + * @param \ReflectionParameter $parameter + * @param \ReflectionNamedType $type + * @return string + */ + protected static function getTypeName($parameter, $type) + { + $name = $type->getName(); + + if (! is_null($class = $parameter->getDeclaringClass())) { + if ($name === 'self') { + return $class->getName(); + } + + if ($name === 'parent' && $parent = $class->getParentClass()) { + return $parent->getName(); + } + } + + return $name; + } + + /** + * Determine if the parameter's type is a subclass of the given type. + * + * @param \ReflectionParameter $parameter + * @param string $className + * @return bool + */ + public static function isParameterSubclassOf($parameter, $className) + { + $paramClassName = static::getParameterClassName($parameter); + + return $paramClassName + && (class_exists($paramClassName) || interface_exists($paramClassName)) + && (new ReflectionClass($paramClassName))->isSubclassOf($className); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ServiceProvider.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ServiceProvider.php new file mode 100755 index 00000000000..6c530c121d3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ServiceProvider.php @@ -0,0 +1,437 @@ +app = $app; + } + + /** + * Register any application services. + * + * @return void + */ + public function register() + { + // + } + + /** + * Register a booting callback to be run before the "boot" method is called. + * + * @param \Closure $callback + * @return void + */ + public function booting(Closure $callback) + { + $this->bootingCallbacks[] = $callback; + } + + /** + * Register a booted callback to be run after the "boot" method is called. + * + * @param \Closure $callback + * @return void + */ + public function booted(Closure $callback) + { + $this->bootedCallbacks[] = $callback; + } + + /** + * Call the registered booting callbacks. + * + * @return void + */ + public function callBootingCallbacks() + { + $index = 0; + + while ($index < count($this->bootingCallbacks)) { + $this->app->call($this->bootingCallbacks[$index]); + + $index++; + } + } + + /** + * Call the registered booted callbacks. + * + * @return void + */ + public function callBootedCallbacks() + { + $index = 0; + + while ($index < count($this->bootedCallbacks)) { + $this->app->call($this->bootedCallbacks[$index]); + + $index++; + } + } + + /** + * Merge the given configuration with the existing configuration. + * + * @param string $path + * @param string $key + * @return void + */ + protected function mergeConfigFrom($path, $key) + { + if (! ($this->app instanceof CachesConfiguration && $this->app->configurationIsCached())) { + $config = $this->app->make('config'); + + $config->set($key, array_merge( + require $path, $config->get($key, []) + )); + } + } + + /** + * Load the given routes file if routes are not already cached. + * + * @param string $path + * @return void + */ + protected function loadRoutesFrom($path) + { + if (! ($this->app instanceof CachesRoutes && $this->app->routesAreCached())) { + require $path; + } + } + + /** + * Register a view file namespace. + * + * @param string|array $path + * @param string $namespace + * @return void + */ + protected function loadViewsFrom($path, $namespace) + { + $this->callAfterResolving('view', function ($view) use ($path, $namespace) { + if (isset($this->app->config['view']['paths']) && + is_array($this->app->config['view']['paths'])) { + foreach ($this->app->config['view']['paths'] as $viewPath) { + if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) { + $view->addNamespace($namespace, $appPath); + } + } + } + + $view->addNamespace($namespace, $path); + }); + } + + /** + * Register the given view components with a custom prefix. + * + * @param string $prefix + * @param array $components + * @return void + */ + protected function loadViewComponentsAs($prefix, array $components) + { + $this->callAfterResolving(BladeCompiler::class, function ($blade) use ($prefix, $components) { + foreach ($components as $alias => $component) { + $blade->component($component, is_string($alias) ? $alias : null, $prefix); + } + }); + } + + /** + * Register a translation file namespace. + * + * @param string $path + * @param string $namespace + * @return void + */ + protected function loadTranslationsFrom($path, $namespace) + { + $this->callAfterResolving('translator', function ($translator) use ($path, $namespace) { + $translator->addNamespace($namespace, $path); + }); + } + + /** + * Register a JSON translation file path. + * + * @param string $path + * @return void + */ + protected function loadJsonTranslationsFrom($path) + { + $this->callAfterResolving('translator', function ($translator) use ($path) { + $translator->addJsonPath($path); + }); + } + + /** + * Register database migration paths. + * + * @param array|string $paths + * @return void + */ + protected function loadMigrationsFrom($paths) + { + $this->callAfterResolving('migrator', function ($migrator) use ($paths) { + foreach ((array) $paths as $path) { + $migrator->path($path); + } + }); + } + + /** + * Register Eloquent model factory paths. + * + * @deprecated Will be removed in a future Laravel version. + * + * @param array|string $paths + * @return void + */ + protected function loadFactoriesFrom($paths) + { + $this->callAfterResolving(ModelFactory::class, function ($factory) use ($paths) { + foreach ((array) $paths as $path) { + $factory->load($path); + } + }); + } + + /** + * Setup an after resolving listener, or fire immediately if already resolved. + * + * @param string $name + * @param callable $callback + * @return void + */ + protected function callAfterResolving($name, $callback) + { + $this->app->afterResolving($name, $callback); + + if ($this->app->resolved($name)) { + $callback($this->app->make($name), $this->app); + } + } + + /** + * Register paths to be published by the publish command. + * + * @param array $paths + * @param mixed $groups + * @return void + */ + protected function publishes(array $paths, $groups = null) + { + $this->ensurePublishArrayInitialized($class = static::class); + + static::$publishes[$class] = array_merge(static::$publishes[$class], $paths); + + foreach ((array) $groups as $group) { + $this->addPublishGroup($group, $paths); + } + } + + /** + * Ensure the publish array for the service provider is initialized. + * + * @param string $class + * @return void + */ + protected function ensurePublishArrayInitialized($class) + { + if (! array_key_exists($class, static::$publishes)) { + static::$publishes[$class] = []; + } + } + + /** + * Add a publish group / tag to the service provider. + * + * @param string $group + * @param array $paths + * @return void + */ + protected function addPublishGroup($group, $paths) + { + if (! array_key_exists($group, static::$publishGroups)) { + static::$publishGroups[$group] = []; + } + + static::$publishGroups[$group] = array_merge( + static::$publishGroups[$group], $paths + ); + } + + /** + * Get the paths to publish. + * + * @param string|null $provider + * @param string|null $group + * @return array + */ + public static function pathsToPublish($provider = null, $group = null) + { + if (! is_null($paths = static::pathsForProviderOrGroup($provider, $group))) { + return $paths; + } + + return collect(static::$publishes)->reduce(function ($paths, $p) { + return array_merge($paths, $p); + }, []); + } + + /** + * Get the paths for the provider or group (or both). + * + * @param string|null $provider + * @param string|null $group + * @return array + */ + protected static function pathsForProviderOrGroup($provider, $group) + { + if ($provider && $group) { + return static::pathsForProviderAndGroup($provider, $group); + } elseif ($group && array_key_exists($group, static::$publishGroups)) { + return static::$publishGroups[$group]; + } elseif ($provider && array_key_exists($provider, static::$publishes)) { + return static::$publishes[$provider]; + } elseif ($group || $provider) { + return []; + } + } + + /** + * Get the paths for the provider and group. + * + * @param string $provider + * @param string $group + * @return array + */ + protected static function pathsForProviderAndGroup($provider, $group) + { + if (! empty(static::$publishes[$provider]) && ! empty(static::$publishGroups[$group])) { + return array_intersect_key(static::$publishes[$provider], static::$publishGroups[$group]); + } + + return []; + } + + /** + * Get the service providers available for publishing. + * + * @return array + */ + public static function publishableProviders() + { + return array_keys(static::$publishes); + } + + /** + * Get the groups available for publishing. + * + * @return array + */ + public static function publishableGroups() + { + return array_keys(static::$publishGroups); + } + + /** + * Register the package's custom Artisan commands. + * + * @param array|mixed $commands + * @return void + */ + public function commands($commands) + { + $commands = is_array($commands) ? $commands : func_get_args(); + + Artisan::starting(function ($artisan) use ($commands) { + $artisan->resolveCommands($commands); + }); + } + + /** + * Get the services provided by the provider. + * + * @return array + */ + public function provides() + { + return []; + } + + /** + * Get the events that trigger this service provider to register. + * + * @return array + */ + public function when() + { + return []; + } + + /** + * Determine if the provider is deferred. + * + * @return bool + */ + public function isDeferred() + { + return $this instanceof DeferrableProvider; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Str.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Str.php new file mode 100644 index 00000000000..21e19040389 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Str.php @@ -0,0 +1,1033 @@ + 0; + } + + /** + * Convert a string to kebab case. + * + * @param string $value + * @return string + */ + public static function kebab($value) + { + return static::snake($value, '-'); + } + + /** + * Return the length of the given string. + * + * @param string $value + * @param string|null $encoding + * @return int + */ + public static function length($value, $encoding = null) + { + if ($encoding) { + return mb_strlen($value, $encoding); + } + + return mb_strlen($value); + } + + /** + * Limit the number of characters in a string. + * + * @param string $value + * @param int $limit + * @param string $end + * @return string + */ + public static function limit($value, $limit = 100, $end = '...') + { + if (mb_strwidth($value, 'UTF-8') <= $limit) { + return $value; + } + + return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end; + } + + /** + * Convert the given string to lower-case. + * + * @param string $value + * @return string + */ + public static function lower($value) + { + return mb_strtolower($value, 'UTF-8'); + } + + /** + * Limit the number of words in a string. + * + * @param string $value + * @param int $words + * @param string $end + * @return string + */ + public static function words($value, $words = 100, $end = '...') + { + preg_match('/^\s*+(?:\S++\s*+){1,'.$words.'}/u', $value, $matches); + + if (! isset($matches[0]) || static::length($value) === static::length($matches[0])) { + return $value; + } + + return rtrim($matches[0]).$end; + } + + /** + * Converts GitHub flavored Markdown into HTML. + * + * @param string $string + * @param array $options + * @return string + */ + public static function markdown($string, array $options = []) + { + $converter = new GithubFlavoredMarkdownConverter($options); + + return (string) $converter->convertToHtml($string); + } + + /** + * Masks a portion of a string with a repeated character. + * + * @param string $string + * @param string $character + * @param int $index + * @param int|null $length + * @param string $encoding + * @return string + */ + public static function mask($string, $character, $index, $length = null, $encoding = 'UTF-8') + { + if ($character === '') { + return $string; + } + + if (is_null($length) && PHP_MAJOR_VERSION < 8) { + $length = mb_strlen($string, $encoding); + } + + $segment = mb_substr($string, $index, $length, $encoding); + + if ($segment === '') { + return $string; + } + + $strlen = mb_strlen($string, $encoding); + $startIndex = $index; + + if ($index < 0) { + $startIndex = $index < -$strlen ? 0 : $strlen + $index; + } + + $start = mb_substr($string, 0, $startIndex, $encoding); + $segmentLen = mb_strlen($segment, $encoding); + $end = mb_substr($string, $startIndex + $segmentLen); + + return $start.str_repeat(mb_substr($character, 0, 1, $encoding), $segmentLen).$end; + } + + /** + * Get the string matching the given pattern. + * + * @param string $pattern + * @param string $subject + * @return string + */ + public static function match($pattern, $subject) + { + preg_match($pattern, $subject, $matches); + + if (! $matches) { + return ''; + } + + return $matches[1] ?? $matches[0]; + } + + /** + * Get the string matching the given pattern. + * + * @param string $pattern + * @param string $subject + * @return \Illuminate\Support\Collection + */ + public static function matchAll($pattern, $subject) + { + preg_match_all($pattern, $subject, $matches); + + if (empty($matches[0])) { + return collect(); + } + + return collect($matches[1] ?? $matches[0]); + } + + /** + * Pad both sides of a string with another. + * + * @param string $value + * @param int $length + * @param string $pad + * @return string + */ + public static function padBoth($value, $length, $pad = ' ') + { + return str_pad($value, strlen($value) - mb_strlen($value) + $length, $pad, STR_PAD_BOTH); + } + + /** + * Pad the left side of a string with another. + * + * @param string $value + * @param int $length + * @param string $pad + * @return string + */ + public static function padLeft($value, $length, $pad = ' ') + { + return str_pad($value, strlen($value) - mb_strlen($value) + $length, $pad, STR_PAD_LEFT); + } + + /** + * Pad the right side of a string with another. + * + * @param string $value + * @param int $length + * @param string $pad + * @return string + */ + public static function padRight($value, $length, $pad = ' ') + { + return str_pad($value, strlen($value) - mb_strlen($value) + $length, $pad, STR_PAD_RIGHT); + } + + /** + * Parse a Class[@]method style callback into class and method. + * + * @param string $callback + * @param string|null $default + * @return array + */ + public static function parseCallback($callback, $default = null) + { + return static::contains($callback, '@') ? explode('@', $callback, 2) : [$callback, $default]; + } + + /** + * Get the plural form of an English word. + * + * @param string $value + * @param int|array|\Countable $count + * @return string + */ + public static function plural($value, $count = 2) + { + return Pluralizer::plural($value, $count); + } + + /** + * Pluralize the last word of an English, studly caps case string. + * + * @param string $value + * @param int|array|\Countable $count + * @return string + */ + public static function pluralStudly($value, $count = 2) + { + $parts = preg_split('/(.)(?=[A-Z])/u', $value, -1, PREG_SPLIT_DELIM_CAPTURE); + + $lastWord = array_pop($parts); + + return implode('', $parts).self::plural($lastWord, $count); + } + + /** + * Generate a more truly "random" alpha-numeric string. + * + * @param int $length + * @return string + */ + public static function random($length = 16) + { + $string = ''; + + while (($len = strlen($string)) < $length) { + $size = $length - $len; + + $bytes = random_bytes($size); + + $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size); + } + + return $string; + } + + /** + * Repeat the given string. + * + * @param string $string + * @param int $times + * @return string + */ + public static function repeat(string $string, int $times) + { + return str_repeat($string, $times); + } + + /** + * Replace a given value in the string sequentially with an array. + * + * @param string $search + * @param array $replace + * @param string $subject + * @return string + */ + public static function replaceArray($search, array $replace, $subject) + { + $segments = explode($search, $subject); + + $result = array_shift($segments); + + foreach ($segments as $segment) { + $result .= (array_shift($replace) ?? $search).$segment; + } + + return $result; + } + + /** + * Replace the given value in the given string. + * + * @param string|string[] $search + * @param string|string[] $replace + * @param string|string[] $subject + * @return string + */ + public static function replace($search, $replace, $subject) + { + return str_replace($search, $replace, $subject); + } + + /** + * Replace the first occurrence of a given value in the string. + * + * @param string $search + * @param string $replace + * @param string $subject + * @return string + */ + public static function replaceFirst($search, $replace, $subject) + { + if ($search === '') { + return $subject; + } + + $position = strpos($subject, $search); + + if ($position !== false) { + return substr_replace($subject, $replace, $position, strlen($search)); + } + + return $subject; + } + + /** + * Replace the last occurrence of a given value in the string. + * + * @param string $search + * @param string $replace + * @param string $subject + * @return string + */ + public static function replaceLast($search, $replace, $subject) + { + if ($search === '') { + return $subject; + } + + $position = strrpos($subject, $search); + + if ($position !== false) { + return substr_replace($subject, $replace, $position, strlen($search)); + } + + return $subject; + } + + /** + * Remove any occurrence of the given string in the subject. + * + * @param string|array $search + * @param string $subject + * @param bool $caseSensitive + * @return string + */ + public static function remove($search, $subject, $caseSensitive = true) + { + $subject = $caseSensitive + ? str_replace($search, '', $subject) + : str_ireplace($search, '', $subject); + + return $subject; + } + + /** + * Reverse the given string. + * + * @param string $value + * @return string + */ + public static function reverse(string $value) + { + return implode(array_reverse(mb_str_split($value))); + } + + /** + * Begin a string with a single instance of a given value. + * + * @param string $value + * @param string $prefix + * @return string + */ + public static function start($value, $prefix) + { + $quoted = preg_quote($prefix, '/'); + + return $prefix.preg_replace('/^(?:'.$quoted.')+/u', '', $value); + } + + /** + * Convert the given string to upper-case. + * + * @param string $value + * @return string + */ + public static function upper($value) + { + return mb_strtoupper($value, 'UTF-8'); + } + + /** + * Convert the given string to title case. + * + * @param string $value + * @return string + */ + public static function title($value) + { + return mb_convert_case($value, MB_CASE_TITLE, 'UTF-8'); + } + + /** + * Convert the given string to title case for each word. + * + * @param string $value + * @return string + */ + public static function headline($value) + { + $parts = explode(' ', $value); + + $parts = count($parts) > 1 + ? $parts = array_map([static::class, 'title'], $parts) + : $parts = array_map([static::class, 'title'], static::ucsplit(implode('_', $parts))); + + $collapsed = static::replace(['-', '_', ' '], '_', implode('_', $parts)); + + return implode(' ', array_filter(explode('_', $collapsed))); + } + + /** + * Get the singular form of an English word. + * + * @param string $value + * @return string + */ + public static function singular($value) + { + return Pluralizer::singular($value); + } + + /** + * Generate a URL friendly "slug" from a given string. + * + * @param string $title + * @param string $separator + * @param string|null $language + * @return string + */ + public static function slug($title, $separator = '-', $language = 'en') + { + $title = $language ? static::ascii($title, $language) : $title; + + // Convert all dashes/underscores into separator + $flip = $separator === '-' ? '_' : '-'; + + $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title); + + // Replace @ with the word 'at' + $title = str_replace('@', $separator.'at'.$separator, $title); + + // Remove all characters that are not the separator, letters, numbers, or whitespace. + $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', static::lower($title)); + + // Replace all separator characters and whitespace by a single separator + $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title); + + return trim($title, $separator); + } + + /** + * Convert a string to snake case. + * + * @param string $value + * @param string $delimiter + * @return string + */ + public static function snake($value, $delimiter = '_') + { + $key = $value; + + if (isset(static::$snakeCache[$key][$delimiter])) { + return static::$snakeCache[$key][$delimiter]; + } + + if (! ctype_lower($value)) { + $value = preg_replace('/\s+/u', '', ucwords($value)); + + $value = static::lower(preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $value)); + } + + return static::$snakeCache[$key][$delimiter] = $value; + } + + /** + * Determine if a given string starts with a given substring. + * + * @param string $haystack + * @param string|string[] $needles + * @return bool + */ + public static function startsWith($haystack, $needles) + { + foreach ((array) $needles as $needle) { + if ((string) $needle !== '' && strncmp($haystack, $needle, strlen($needle)) === 0) { + return true; + } + } + + return false; + } + + /** + * Convert a value to studly caps case. + * + * @param string $value + * @return string + */ + public static function studly($value) + { + $key = $value; + + if (isset(static::$studlyCache[$key])) { + return static::$studlyCache[$key]; + } + + $words = explode(' ', static::replace(['-', '_'], ' ', $value)); + + $studlyWords = array_map(function ($word) { + return static::ucfirst($word); + }, $words); + + return static::$studlyCache[$key] = implode($studlyWords); + } + + /** + * Returns the portion of the string specified by the start and length parameters. + * + * @param string $string + * @param int $start + * @param int|null $length + * @return string + */ + public static function substr($string, $start, $length = null) + { + return mb_substr($string, $start, $length, 'UTF-8'); + } + + /** + * Returns the number of substring occurrences. + * + * @param string $haystack + * @param string $needle + * @param int $offset + * @param int|null $length + * @return int + */ + public static function substrCount($haystack, $needle, $offset = 0, $length = null) + { + if (! is_null($length)) { + return substr_count($haystack, $needle, $offset, $length); + } else { + return substr_count($haystack, $needle, $offset); + } + } + + /** + * Replace text within a portion of a string. + * + * @param string|array $string + * @param string|array $replace + * @param array|int $offset + * @param array|int|null $length + * @return string|array + */ + public static function substrReplace($string, $replace, $offset = 0, $length = null) + { + if ($length === null) { + $length = strlen($string); + } + + return substr_replace($string, $replace, $offset, $length); + } + + /** + * Swap multiple keywords in a string with other keywords. + * + * @param array $map + * @param string $subject + * @return string + */ + public static function swap(array $map, $subject) + { + return strtr($subject, $map); + } + + /** + * Make a string's first character uppercase. + * + * @param string $string + * @return string + */ + public static function ucfirst($string) + { + return static::upper(static::substr($string, 0, 1)).static::substr($string, 1); + } + + /** + * Split a string into pieces by uppercase characters. + * + * @param string $string + * @return array + */ + public static function ucsplit($string) + { + return preg_split('/(?=\p{Lu})/u', $string, -1, PREG_SPLIT_NO_EMPTY); + } + + /** + * Get the number of words a string contains. + * + * @param string $string + * @return int + */ + public static function wordCount($string) + { + return str_word_count($string); + } + + /** + * Generate a UUID (version 4). + * + * @return \Ramsey\Uuid\UuidInterface + */ + public static function uuid() + { + return static::$uuidFactory + ? call_user_func(static::$uuidFactory) + : Uuid::uuid4(); + } + + /** + * Generate a time-ordered UUID (version 4). + * + * @return \Ramsey\Uuid\UuidInterface + */ + public static function orderedUuid() + { + if (static::$uuidFactory) { + return call_user_func(static::$uuidFactory); + } + + $factory = new UuidFactory; + + $factory->setRandomGenerator(new CombGenerator( + $factory->getRandomGenerator(), + $factory->getNumberConverter() + )); + + $factory->setCodec(new TimestampFirstCombCodec( + $factory->getUuidBuilder() + )); + + return $factory->uuid4(); + } + + /** + * Set the callable that will be used to generate UUIDs. + * + * @param callable|null $factory + * @return void + */ + public static function createUuidsUsing(callable $factory = null) + { + static::$uuidFactory = $factory; + } + + /** + * Indicate that UUIDs should be created normally and not using a custom factory. + * + * @return void + */ + public static function createUuidsNormally() + { + static::$uuidFactory = null; + } + + /** + * Remove all strings from the casing caches. + * + * @return void + */ + public static function flushCache() + { + static::$snakeCache = []; + static::$camelCache = []; + static::$studlyCache = []; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Stringable.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Stringable.php new file mode 100644 index 00000000000..414be0c2735 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Stringable.php @@ -0,0 +1,1026 @@ +value = (string) $value; + } + + /** + * Return the remainder of a string after the first occurrence of a given value. + * + * @param string $search + * @return static + */ + public function after($search) + { + return new static(Str::after($this->value, $search)); + } + + /** + * Return the remainder of a string after the last occurrence of a given value. + * + * @param string $search + * @return static + */ + public function afterLast($search) + { + return new static(Str::afterLast($this->value, $search)); + } + + /** + * Append the given values to the string. + * + * @param array $values + * @return static + */ + public function append(...$values) + { + return new static($this->value.implode('', $values)); + } + + /** + * Transliterate a UTF-8 value to ASCII. + * + * @param string $language + * @return static + */ + public function ascii($language = 'en') + { + return new static(Str::ascii($this->value, $language)); + } + + /** + * Get the trailing name component of the path. + * + * @param string $suffix + * @return static + */ + public function basename($suffix = '') + { + return new static(basename($this->value, $suffix)); + } + + /** + * Get the basename of the class path. + * + * @return static + */ + public function classBasename() + { + return new static(class_basename($this->value)); + } + + /** + * Get the portion of a string before the first occurrence of a given value. + * + * @param string $search + * @return static + */ + public function before($search) + { + return new static(Str::before($this->value, $search)); + } + + /** + * Get the portion of a string before the last occurrence of a given value. + * + * @param string $search + * @return static + */ + public function beforeLast($search) + { + return new static(Str::beforeLast($this->value, $search)); + } + + /** + * Get the portion of a string between two given values. + * + * @param string $from + * @param string $to + * @return static + */ + public function between($from, $to) + { + return new static(Str::between($this->value, $from, $to)); + } + + /** + * Convert a value to camel case. + * + * @return static + */ + public function camel() + { + return new static(Str::camel($this->value)); + } + + /** + * Determine if a given string contains a given substring. + * + * @param string|array $needles + * @return bool + */ + public function contains($needles) + { + return Str::contains($this->value, $needles); + } + + /** + * Determine if a given string contains all array values. + * + * @param array $needles + * @return bool + */ + public function containsAll(array $needles) + { + return Str::containsAll($this->value, $needles); + } + + /** + * Get the parent directory's path. + * + * @param int $levels + * @return static + */ + public function dirname($levels = 1) + { + return new static(dirname($this->value, $levels)); + } + + /** + * Determine if a given string ends with a given substring. + * + * @param string|array $needles + * @return bool + */ + public function endsWith($needles) + { + return Str::endsWith($this->value, $needles); + } + + /** + * Determine if the string is an exact match with the given value. + * + * @param string $value + * @return bool + */ + public function exactly($value) + { + return $this->value === $value; + } + + /** + * Explode the string into an array. + * + * @param string $delimiter + * @param int $limit + * @return \Illuminate\Support\Collection + */ + public function explode($delimiter, $limit = PHP_INT_MAX) + { + return collect(explode($delimiter, $this->value, $limit)); + } + + /** + * Split a string using a regular expression or by length. + * + * @param string|int $pattern + * @param int $limit + * @param int $flags + * @return \Illuminate\Support\Collection + */ + public function split($pattern, $limit = -1, $flags = 0) + { + if (filter_var($pattern, FILTER_VALIDATE_INT) !== false) { + return collect(mb_str_split($this->value, $pattern)); + } + + $segments = preg_split($pattern, $this->value, $limit, $flags); + + return ! empty($segments) ? collect($segments) : collect(); + } + + /** + * Cap a string with a single instance of a given value. + * + * @param string $cap + * @return static + */ + public function finish($cap) + { + return new static(Str::finish($this->value, $cap)); + } + + /** + * Determine if a given string matches a given pattern. + * + * @param string|array $pattern + * @return bool + */ + public function is($pattern) + { + return Str::is($pattern, $this->value); + } + + /** + * Determine if a given string is 7 bit ASCII. + * + * @return bool + */ + public function isAscii() + { + return Str::isAscii($this->value); + } + + /** + * Determine if a given string is a valid UUID. + * + * @return bool + */ + public function isUuid() + { + return Str::isUuid($this->value); + } + + /** + * Determine if the given string is empty. + * + * @return bool + */ + public function isEmpty() + { + return $this->value === ''; + } + + /** + * Determine if the given string is not empty. + * + * @return bool + */ + public function isNotEmpty() + { + return ! $this->isEmpty(); + } + + /** + * Convert a string to kebab case. + * + * @return static + */ + public function kebab() + { + return new static(Str::kebab($this->value)); + } + + /** + * Return the length of the given string. + * + * @param string $encoding + * @return int + */ + public function length($encoding = null) + { + return Str::length($this->value, $encoding); + } + + /** + * Limit the number of characters in a string. + * + * @param int $limit + * @param string $end + * @return static + */ + public function limit($limit = 100, $end = '...') + { + return new static(Str::limit($this->value, $limit, $end)); + } + + /** + * Convert the given string to lower-case. + * + * @return static + */ + public function lower() + { + return new static(Str::lower($this->value)); + } + + /** + * Convert GitHub flavored Markdown into HTML. + * + * @param array $options + * @return static + */ + public function markdown(array $options = []) + { + return new static(Str::markdown($this->value, $options)); + } + + /** + * Masks a portion of a string with a repeated character. + * + * @param string $character + * @param int $index + * @param int|null $length + * @param string $encoding + * @return static + */ + public function mask($character, $index, $length = null, $encoding = 'UTF-8') + { + return new static(Str::mask($this->value, $character, $index, $length, $encoding)); + } + + /** + * Get the string matching the given pattern. + * + * @param string $pattern + * @return static + */ + public function match($pattern) + { + return new static(Str::match($pattern, $this->value)); + } + + /** + * Get the string matching the given pattern. + * + * @param string $pattern + * @return \Illuminate\Support\Collection + */ + public function matchAll($pattern) + { + return Str::matchAll($pattern, $this->value); + } + + /** + * Determine if the string matches the given pattern. + * + * @param string $pattern + * @return bool + */ + public function test($pattern) + { + return $this->match($pattern)->isNotEmpty(); + } + + /** + * Pad both sides of the string with another. + * + * @param int $length + * @param string $pad + * @return static + */ + public function padBoth($length, $pad = ' ') + { + return new static(Str::padBoth($this->value, $length, $pad)); + } + + /** + * Pad the left side of the string with another. + * + * @param int $length + * @param string $pad + * @return static + */ + public function padLeft($length, $pad = ' ') + { + return new static(Str::padLeft($this->value, $length, $pad)); + } + + /** + * Pad the right side of the string with another. + * + * @param int $length + * @param string $pad + * @return static + */ + public function padRight($length, $pad = ' ') + { + return new static(Str::padRight($this->value, $length, $pad)); + } + + /** + * Parse a Class@method style callback into class and method. + * + * @param string|null $default + * @return array + */ + public function parseCallback($default = null) + { + return Str::parseCallback($this->value, $default); + } + + /** + * Call the given callback and return a new string. + * + * @param callable $callback + * @return static + */ + public function pipe(callable $callback) + { + return new static(call_user_func($callback, $this)); + } + + /** + * Get the plural form of an English word. + * + * @param int $count + * @return static + */ + public function plural($count = 2) + { + return new static(Str::plural($this->value, $count)); + } + + /** + * Pluralize the last word of an English, studly caps case string. + * + * @param int $count + * @return static + */ + public function pluralStudly($count = 2) + { + return new static(Str::pluralStudly($this->value, $count)); + } + + /** + * Prepend the given values to the string. + * + * @param array $values + * @return static + */ + public function prepend(...$values) + { + return new static(implode('', $values).$this->value); + } + + /** + * Remove any occurrence of the given string in the subject. + * + * @param string|array $search + * @param bool $caseSensitive + * @return static + */ + public function remove($search, $caseSensitive = true) + { + return new static(Str::remove($search, $this->value, $caseSensitive)); + } + + /** + * Reverse the string. + * + * @return static + */ + public function reverse() + { + return new static(Str::reverse($this->value)); + } + + /** + * Repeat the string. + * + * @param int $times + * @return static + */ + public function repeat(int $times) + { + return new static(Str::repeat($this->value, $times)); + } + + /** + * Replace the given value in the given string. + * + * @param string|string[] $search + * @param string|string[] $replace + * @return static + */ + public function replace($search, $replace) + { + return new static(Str::replace($search, $replace, $this->value)); + } + + /** + * Replace a given value in the string sequentially with an array. + * + * @param string $search + * @param array $replace + * @return static + */ + public function replaceArray($search, array $replace) + { + return new static(Str::replaceArray($search, $replace, $this->value)); + } + + /** + * Replace the first occurrence of a given value in the string. + * + * @param string $search + * @param string $replace + * @return static + */ + public function replaceFirst($search, $replace) + { + return new static(Str::replaceFirst($search, $replace, $this->value)); + } + + /** + * Replace the last occurrence of a given value in the string. + * + * @param string $search + * @param string $replace + * @return static + */ + public function replaceLast($search, $replace) + { + return new static(Str::replaceLast($search, $replace, $this->value)); + } + + /** + * Replace the patterns matching the given regular expression. + * + * @param string $pattern + * @param \Closure|string $replace + * @param int $limit + * @return static + */ + public function replaceMatches($pattern, $replace, $limit = -1) + { + if ($replace instanceof Closure) { + return new static(preg_replace_callback($pattern, $replace, $this->value, $limit)); + } + + return new static(preg_replace($pattern, $replace, $this->value, $limit)); + } + + /** + * Parse input from a string to a collection, according to a format. + * + * @param string $format + * @return \Illuminate\Support\Collection + */ + public function scan($format) + { + return collect(sscanf($this->value, $format)); + } + + /** + * Begin a string with a single instance of a given value. + * + * @param string $prefix + * @return static + */ + public function start($prefix) + { + return new static(Str::start($this->value, $prefix)); + } + + /** + * Strip HTML and PHP tags from the given string. + * + * @param string $allowedTags + * @return static + */ + public function stripTags($allowedTags = null) + { + return new static(strip_tags($this->value, $allowedTags)); + } + + /** + * Convert the given string to upper-case. + * + * @return static + */ + public function upper() + { + return new static(Str::upper($this->value)); + } + + /** + * Convert the given string to title case. + * + * @return static + */ + public function title() + { + return new static(Str::title($this->value)); + } + + /** + * Convert the given string to title case for each word. + * + * @return static + */ + public function headline() + { + return new static(Str::headline($this->value)); + } + + /** + * Get the singular form of an English word. + * + * @return static + */ + public function singular() + { + return new static(Str::singular($this->value)); + } + + /** + * Generate a URL friendly "slug" from a given string. + * + * @param string $separator + * @param string|null $language + * @return static + */ + public function slug($separator = '-', $language = 'en') + { + return new static(Str::slug($this->value, $separator, $language)); + } + + /** + * Convert a string to snake case. + * + * @param string $delimiter + * @return static + */ + public function snake($delimiter = '_') + { + return new static(Str::snake($this->value, $delimiter)); + } + + /** + * Determine if a given string starts with a given substring. + * + * @param string|array $needles + * @return bool + */ + public function startsWith($needles) + { + return Str::startsWith($this->value, $needles); + } + + /** + * Convert a value to studly caps case. + * + * @return static + */ + public function studly() + { + return new static(Str::studly($this->value)); + } + + /** + * Returns the portion of the string specified by the start and length parameters. + * + * @param int $start + * @param int|null $length + * @return static + */ + public function substr($start, $length = null) + { + return new static(Str::substr($this->value, $start, $length)); + } + + /** + * Returns the number of substring occurrences. + * + * @param string $needle + * @param int|null $offset + * @param int|null $length + * @return int + */ + public function substrCount($needle, $offset = null, $length = null) + { + return Str::substrCount($this->value, $needle, $offset ?? 0, $length); + } + + /** + * Replace text within a portion of a string. + * + * @param string|array $replace + * @param array|int $offset + * @param array|int|null $length + * @return static + */ + public function substrReplace($replace, $offset = 0, $length = null) + { + return new static(Str::substrReplace($this->value, $replace, $offset, $length)); + } + + /** + * Swap multiple keywords in a string with other keywords. + * + * @param array $map + * @return static + */ + public function swap(array $map) + { + return new static(strtr($this->value, $map)); + } + + /** + * Trim the string of the given characters. + * + * @param string $characters + * @return static + */ + public function trim($characters = null) + { + return new static(trim(...array_merge([$this->value], func_get_args()))); + } + + /** + * Left trim the string of the given characters. + * + * @param string $characters + * @return static + */ + public function ltrim($characters = null) + { + return new static(ltrim(...array_merge([$this->value], func_get_args()))); + } + + /** + * Right trim the string of the given characters. + * + * @param string $characters + * @return static + */ + public function rtrim($characters = null) + { + return new static(rtrim(...array_merge([$this->value], func_get_args()))); + } + + /** + * Make a string's first character uppercase. + * + * @return static + */ + public function ucfirst() + { + return new static(Str::ucfirst($this->value)); + } + + /** + * Split a string by uppercase characters. + * + * @return \Illuminate\Support\Collection + */ + public function ucsplit() + { + return collect(Str::ucsplit($this->value)); + } + + /** + * Execute the given callback if the string contains a given substring. + * + * @param string|array $needles + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenContains($needles, $callback, $default = null) + { + return $this->when($this->contains($needles), $callback, $default); + } + + /** + * Execute the given callback if the string contains all array values. + * + * @param array $needles + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenContainsAll(array $needles, $callback, $default = null) + { + return $this->when($this->containsAll($needles), $callback, $default); + } + + /** + * Execute the given callback if the string is empty. + * + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenEmpty($callback, $default = null) + { + return $this->when($this->isEmpty(), $callback, $default); + } + + /** + * Execute the given callback if the string is not empty. + * + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenNotEmpty($callback, $default = null) + { + return $this->when($this->isNotEmpty(), $callback, $default); + } + + /** + * Execute the given callback if the string ends with a given substring. + * + * @param string|array $needles + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenEndsWith($needles, $callback, $default = null) + { + return $this->when($this->endsWith($needles), $callback, $default); + } + + /** + * Execute the given callback if the string is an exact match with the given value. + * + * @param string $value + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenExactly($value, $callback, $default = null) + { + return $this->when($this->exactly($value), $callback, $default); + } + + /** + * Execute the given callback if the string matches a given pattern. + * + * @param string|array $pattern + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenIs($pattern, $callback, $default = null) + { + return $this->when($this->is($pattern), $callback, $default); + } + + /** + * Execute the given callback if the string is 7 bit ASCII. + * + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenIsAscii($callback, $default = null) + { + return $this->when($this->isAscii(), $callback, $default); + } + + /** + * Execute the given callback if the string is a valid UUID. + * + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenIsUuid($callback, $default = null) + { + return $this->when($this->isUuid(), $callback, $default); + } + + /** + * Execute the given callback if the string starts with a given substring. + * + * @param string|array $needles + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenStartsWith($needles, $callback, $default = null) + { + return $this->when($this->startsWith($needles), $callback, $default); + } + + /** + * Execute the given callback if the string matches the given pattern. + * + * @param string $pattern + * @param callable $callback + * @param callable|null $default + * @return static + */ + public function whenTest($pattern, $callback, $default = null) + { + return $this->when($this->test($pattern), $callback, $default); + } + + /** + * Limit the number of words in a string. + * + * @param int $words + * @param string $end + * @return static + */ + public function words($words = 100, $end = '...') + { + return new static(Str::words($this->value, $words, $end)); + } + + /** + * Get the number of words a string contains. + * + * @return int + */ + public function wordCount() + { + return str_word_count($this->value); + } + + /** + * Convert the string into a `HtmlString` instance. + * + * @return \Illuminate\Support\HtmlString + */ + public function toHtmlString() + { + return new HtmlString($this->value); + } + + /** + * Dump the string. + * + * @return $this + */ + public function dump() + { + VarDumper::dump($this->value); + + return $this; + } + + /** + * Dump the string and end the script. + * + * @return never + */ + public function dd() + { + $this->dump(); + + exit(1); + } + + /** + * Convert the object to a string when JSON encoded. + * + * @return string + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->__toString(); + } + + /** + * Proxy dynamic properties onto methods. + * + * @param string $key + * @return mixed + */ + public function __get($key) + { + return $this->{$key}(); + } + + /** + * Get the raw string value. + * + * @return string + */ + public function __toString() + { + return (string) $this->value; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/BatchRepositoryFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/BatchRepositoryFake.php new file mode 100644 index 00000000000..d9661334ce0 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/BatchRepositoryFake.php @@ -0,0 +1,142 @@ +name, + count($batch->jobs), + count($batch->jobs), + 0, + [], + $batch->options, + CarbonImmutable::now(), + null, + null + ); + } + + /** + * Increment the total number of jobs within the batch. + * + * @param string $batchId + * @param int $amount + * @return void + */ + public function incrementTotalJobs(string $batchId, int $amount) + { + // + } + + /** + * Decrement the total number of pending jobs for the batch. + * + * @param string $batchId + * @param string $jobId + * @return \Illuminate\Bus\UpdatedBatchJobCounts + */ + public function decrementPendingJobs(string $batchId, string $jobId) + { + return new UpdatedBatchJobCounts; + } + + /** + * Increment the total number of failed jobs for the batch. + * + * @param string $batchId + * @param string $jobId + * @return \Illuminate\Bus\UpdatedBatchJobCounts + */ + public function incrementFailedJobs(string $batchId, string $jobId) + { + return new UpdatedBatchJobCounts; + } + + /** + * Mark the batch that has the given ID as finished. + * + * @param string $batchId + * @return void + */ + public function markAsFinished(string $batchId) + { + // + } + + /** + * Cancel the batch that has the given ID. + * + * @param string $batchId + * @return void + */ + public function cancel(string $batchId) + { + // + } + + /** + * Delete the batch that has the given ID. + * + * @param string $batchId + * @return void + */ + public function delete(string $batchId) + { + // + } + + /** + * Execute the given Closure within a storage specific transaction. + * + * @param \Closure $callback + * @return mixed + */ + public function transaction(Closure $callback) + { + return $callback(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/BusFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/BusFake.php new file mode 100644 index 00000000000..122252d8f00 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/BusFake.php @@ -0,0 +1,739 @@ +dispatcher = $dispatcher; + + $this->jobsToFake = Arr::wrap($jobsToFake); + } + + /** + * Assert if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + */ + public function assertDispatched($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + if (is_numeric($callback)) { + return $this->assertDispatchedTimes($command, $callback); + } + + PHPUnit::assertTrue( + $this->dispatched($command, $callback)->count() > 0 || + $this->dispatchedAfterResponse($command, $callback)->count() > 0 || + $this->dispatchedSync($command, $callback)->count() > 0, + "The expected [{$command}] job was not dispatched." + ); + } + + /** + * Assert if a job was pushed a number of times. + * + * @param string $command + * @param int $times + * @return void + */ + public function assertDispatchedTimes($command, $times = 1) + { + $count = $this->dispatched($command)->count() + + $this->dispatchedAfterResponse($command)->count() + + $this->dispatchedSync($command)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$command}] job was pushed {$count} times instead of {$times} times." + ); + } + + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + */ + public function assertNotDispatched($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + PHPUnit::assertTrue( + $this->dispatched($command, $callback)->count() === 0 && + $this->dispatchedAfterResponse($command, $callback)->count() === 0 && + $this->dispatchedSync($command, $callback)->count() === 0, + "The unexpected [{$command}] job was dispatched." + ); + } + + /** + * Assert that no jobs were dispatched. + * + * @return void + */ + public function assertNothingDispatched() + { + PHPUnit::assertEmpty($this->commands, 'Jobs were dispatched unexpectedly.'); + } + + /** + * Assert if a job was explicitly dispatched synchronously based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + */ + public function assertDispatchedSync($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + if (is_numeric($callback)) { + return $this->assertDispatchedSyncTimes($command, $callback); + } + + PHPUnit::assertTrue( + $this->dispatchedSync($command, $callback)->count() > 0, + "The expected [{$command}] job was not dispatched synchronously." + ); + } + + /** + * Assert if a job was pushed synchronously a number of times. + * + * @param string $command + * @param int $times + * @return void + */ + public function assertDispatchedSyncTimes($command, $times = 1) + { + $count = $this->dispatchedSync($command)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$command}] job was synchronously pushed {$count} times instead of {$times} times." + ); + } + + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + */ + public function assertNotDispatchedSync($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + PHPUnit::assertCount( + 0, $this->dispatchedSync($command, $callback), + "The unexpected [{$command}] job was dispatched synchronously." + ); + } + + /** + * Assert if a job was dispatched after the response was sent based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + */ + public function assertDispatchedAfterResponse($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + if (is_numeric($callback)) { + return $this->assertDispatchedAfterResponseTimes($command, $callback); + } + + PHPUnit::assertTrue( + $this->dispatchedAfterResponse($command, $callback)->count() > 0, + "The expected [{$command}] job was not dispatched after sending the response." + ); + } + + /** + * Assert if a job was pushed after the response was sent a number of times. + * + * @param string $command + * @param int $times + * @return void + */ + public function assertDispatchedAfterResponseTimes($command, $times = 1) + { + $count = $this->dispatchedAfterResponse($command)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$command}] job was pushed {$count} times instead of {$times} times." + ); + } + + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + */ + public function assertNotDispatchedAfterResponse($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + PHPUnit::assertCount( + 0, $this->dispatchedAfterResponse($command, $callback), + "The unexpected [{$command}] job was dispatched after sending the response." + ); + } + + /** + * Assert if a chain of jobs was dispatched. + * + * @param array $expectedChain + * @return void + */ + public function assertChained(array $expectedChain) + { + $command = $expectedChain[0]; + + $expectedChain = array_slice($expectedChain, 1); + + $callback = null; + + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } elseif (! is_string($command)) { + $instance = $command; + + $command = get_class($instance); + + $callback = function ($job) use ($instance) { + return serialize($this->resetChainPropertiesToDefaults($job)) === serialize($instance); + }; + } + + PHPUnit::assertTrue( + $this->dispatched($command, $callback)->isNotEmpty(), + "The expected [{$command}] job was not dispatched." + ); + + PHPUnit::assertTrue( + collect($expectedChain)->isNotEmpty(), + 'The expected chain can not be empty.' + ); + + $this->isChainOfObjects($expectedChain) + ? $this->assertDispatchedWithChainOfObjects($command, $expectedChain, $callback) + : $this->assertDispatchedWithChainOfClasses($command, $expectedChain, $callback); + } + + /** + * Reset the chain properties to their default values on the job. + * + * @param mixed $job + * @return mixed + */ + protected function resetChainPropertiesToDefaults($job) + { + return tap(clone $job, function ($job) { + $job->chainConnection = null; + $job->chainQueue = null; + $job->chainCatchCallbacks = null; + $job->chained = []; + }); + } + + /** + * Assert if a job was dispatched with an empty chain based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + */ + public function assertDispatchedWithoutChain($command, $callback = null) + { + if ($command instanceof Closure) { + [$command, $callback] = [$this->firstClosureParameterType($command), $command]; + } + + PHPUnit::assertTrue( + $this->dispatched($command, $callback)->isNotEmpty(), + "The expected [{$command}] job was not dispatched." + ); + + $this->assertDispatchedWithChainOfClasses($command, [], $callback); + } + + /** + * Assert if a job was dispatched with chained jobs based on a truth-test callback. + * + * @param string $command + * @param array $expectedChain + * @param callable|null $callback + * @return void + */ + protected function assertDispatchedWithChainOfObjects($command, $expectedChain, $callback) + { + $chain = collect($expectedChain)->map(function ($job) { + return serialize($job); + })->all(); + + PHPUnit::assertTrue( + $this->dispatched($command, $callback)->filter(function ($job) use ($chain) { + return $job->chained == $chain; + })->isNotEmpty(), + 'The expected chain was not dispatched.' + ); + } + + /** + * Assert if a job was dispatched with chained jobs based on a truth-test callback. + * + * @param string $command + * @param array $expectedChain + * @param callable|null $callback + * @return void + */ + protected function assertDispatchedWithChainOfClasses($command, $expectedChain, $callback) + { + $matching = $this->dispatched($command, $callback)->map->chained->map(function ($chain) { + return collect($chain)->map(function ($job) { + return get_class(unserialize($job)); + }); + })->filter(function ($chain) use ($expectedChain) { + return $chain->all() === $expectedChain; + }); + + PHPUnit::assertTrue( + $matching->isNotEmpty(), 'The expected chain was not dispatched.' + ); + } + + /** + * Determine if the given chain is entirely composed of objects. + * + * @param array $chain + * @return bool + */ + protected function isChainOfObjects($chain) + { + return ! collect($chain)->contains(function ($job) { + return ! is_object($job); + }); + } + + /** + * Assert if a batch was dispatched based on a truth-test callback. + * + * @param callable $callback + * @return void + */ + public function assertBatched(callable $callback) + { + PHPUnit::assertTrue( + $this->batched($callback)->count() > 0, + 'The expected batch was not dispatched.' + ); + } + + /** + * Assert the number of batches that have been dispatched. + * + * @param int $count + * @return void + */ + public function assertBatchCount($count) + { + PHPUnit::assertCount( + $count, $this->batches, + ); + } + + /** + * Get all of the jobs matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function dispatched($command, $callback = null) + { + if (! $this->hasDispatched($command)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return collect($this->commands[$command])->filter(function ($command) use ($callback) { + return $callback($command); + }); + } + + /** + * Get all of the jobs dispatched synchronously matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function dispatchedSync(string $command, $callback = null) + { + if (! $this->hasDispatchedSync($command)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return collect($this->commandsSync[$command])->filter(function ($command) use ($callback) { + return $callback($command); + }); + } + + /** + * Get all of the jobs dispatched after the response was sent matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function dispatchedAfterResponse(string $command, $callback = null) + { + if (! $this->hasDispatchedAfterResponse($command)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return collect($this->commandsAfterResponse[$command])->filter(function ($command) use ($callback) { + return $callback($command); + }); + } + + /** + * Get all of the pending batches matching a truth-test callback. + * + * @param callable $callback + * @return \Illuminate\Support\Collection + */ + public function batched(callable $callback) + { + if (empty($this->batches)) { + return collect(); + } + + return collect($this->batches)->filter(function ($batch) use ($callback) { + return $callback($batch); + }); + } + + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + */ + public function hasDispatched($command) + { + return isset($this->commands[$command]) && ! empty($this->commands[$command]); + } + + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + */ + public function hasDispatchedSync($command) + { + return isset($this->commandsSync[$command]) && ! empty($this->commandsSync[$command]); + } + + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + */ + public function hasDispatchedAfterResponse($command) + { + return isset($this->commandsAfterResponse[$command]) && ! empty($this->commandsAfterResponse[$command]); + } + + /** + * Dispatch a command to its appropriate handler. + * + * @param mixed $command + * @return mixed + */ + public function dispatch($command) + { + if ($this->shouldFakeJob($command)) { + $this->commands[get_class($command)][] = $command; + } else { + return $this->dispatcher->dispatch($command); + } + } + + /** + * Dispatch a command to its appropriate handler in the current process. + * + * Queueable jobs will be dispatched to the "sync" queue. + * + * @param mixed $command + * @param mixed $handler + * @return mixed + */ + public function dispatchSync($command, $handler = null) + { + if ($this->shouldFakeJob($command)) { + $this->commandsSync[get_class($command)][] = $command; + } else { + return $this->dispatcher->dispatchSync($command, $handler); + } + } + + /** + * Dispatch a command to its appropriate handler in the current process. + * + * @param mixed $command + * @param mixed $handler + * @return mixed + */ + public function dispatchNow($command, $handler = null) + { + if ($this->shouldFakeJob($command)) { + $this->commands[get_class($command)][] = $command; + } else { + return $this->dispatcher->dispatchNow($command, $handler); + } + } + + /** + * Dispatch a command to its appropriate handler behind a queue. + * + * @param mixed $command + * @return mixed + */ + public function dispatchToQueue($command) + { + if ($this->shouldFakeJob($command)) { + $this->commands[get_class($command)][] = $command; + } else { + return $this->dispatcher->dispatchToQueue($command); + } + } + + /** + * Dispatch a command to its appropriate handler. + * + * @param mixed $command + * @return mixed + */ + public function dispatchAfterResponse($command) + { + if ($this->shouldFakeJob($command)) { + $this->commandsAfterResponse[get_class($command)][] = $command; + } else { + return $this->dispatcher->dispatch($command); + } + } + + /** + * Create a new chain of queueable jobs. + * + * @param \Illuminate\Support\Collection|array $jobs + * @return \Illuminate\Foundation\Bus\PendingChain + */ + public function chain($jobs) + { + $jobs = Collection::wrap($jobs); + + return new PendingChainFake($this, $jobs->shift(), $jobs->toArray()); + } + + /** + * Attempt to find the batch with the given ID. + * + * @param string $batchId + * @return \Illuminate\Bus\Batch|null + */ + public function findBatch(string $batchId) + { + // + } + + /** + * Create a new batch of queueable jobs. + * + * @param \Illuminate\Support\Collection|array $jobs + * @return \Illuminate\Bus\PendingBatch + */ + public function batch($jobs) + { + return new PendingBatchFake($this, Collection::wrap($jobs)); + } + + /** + * Record the fake pending batch dispatch. + * + * @param \Illuminate\Bus\PendingBatch $pendingBatch + * @return \Illuminate\Bus\Batch + */ + public function recordPendingBatch(PendingBatch $pendingBatch) + { + $this->batches[] = $pendingBatch; + + return (new BatchRepositoryFake)->store($pendingBatch); + } + + /** + * Determine if a command should be faked or actually dispatched. + * + * @param mixed $command + * @return bool + */ + protected function shouldFakeJob($command) + { + if (empty($this->jobsToFake)) { + return true; + } + + return collect($this->jobsToFake) + ->filter(function ($job) use ($command) { + return $job instanceof Closure + ? $job($command) + : $job === get_class($command); + })->isNotEmpty(); + } + + /** + * Set the pipes commands should be piped through before dispatching. + * + * @param array $pipes + * @return $this + */ + public function pipeThrough(array $pipes) + { + $this->dispatcher->pipeThrough($pipes); + + return $this; + } + + /** + * Determine if the given command has a handler. + * + * @param mixed $command + * @return bool + */ + public function hasCommandHandler($command) + { + return $this->dispatcher->hasCommandHandler($command); + } + + /** + * Retrieve the handler for a command. + * + * @param mixed $command + * @return mixed + */ + public function getCommandHandler($command) + { + return $this->dispatcher->getCommandHandler($command); + } + + /** + * Map a command to a handler. + * + * @param array $map + * @return $this + */ + public function map(array $map) + { + $this->dispatcher->map($map); + + return $this; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/EventFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/EventFake.php new file mode 100644 index 00000000000..436173e9d3a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/EventFake.php @@ -0,0 +1,325 @@ +dispatcher = $dispatcher; + + $this->eventsToFake = Arr::wrap($eventsToFake); + } + + /** + * Assert if an event has a listener attached to it. + * + * @param string $expectedEvent + * @param string $expectedListener + * @return void + */ + public function assertListening($expectedEvent, $expectedListener) + { + foreach ($this->dispatcher->getListeners($expectedEvent) as $listenerClosure) { + $actualListener = (new ReflectionFunction($listenerClosure)) + ->getStaticVariables()['listener']; + + if (is_string($actualListener) && Str::endsWith($actualListener, '@handle')) { + $actualListener = Str::parseCallback($actualListener)[0]; + } + + if ($actualListener === $expectedListener || + ($actualListener instanceof Closure && + $expectedListener === Closure::class)) { + PHPUnit::assertTrue(true); + + return; + } + } + + PHPUnit::assertTrue( + false, + sprintf( + 'Event [%s] does not have the [%s] listener attached to it', + $expectedEvent, + print_r($expectedListener, true) + ) + ); + } + + /** + * Assert if an event was dispatched based on a truth-test callback. + * + * @param string|\Closure $event + * @param callable|int|null $callback + * @return void + */ + public function assertDispatched($event, $callback = null) + { + if ($event instanceof Closure) { + [$event, $callback] = [$this->firstClosureParameterType($event), $event]; + } + + if (is_int($callback)) { + return $this->assertDispatchedTimes($event, $callback); + } + + PHPUnit::assertTrue( + $this->dispatched($event, $callback)->count() > 0, + "The expected [{$event}] event was not dispatched." + ); + } + + /** + * Assert if an event was dispatched a number of times. + * + * @param string $event + * @param int $times + * @return void + */ + public function assertDispatchedTimes($event, $times = 1) + { + $count = $this->dispatched($event)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$event}] event was dispatched {$count} times instead of {$times} times." + ); + } + + /** + * Determine if an event was dispatched based on a truth-test callback. + * + * @param string|\Closure $event + * @param callable|null $callback + * @return void + */ + public function assertNotDispatched($event, $callback = null) + { + if ($event instanceof Closure) { + [$event, $callback] = [$this->firstClosureParameterType($event), $event]; + } + + PHPUnit::assertCount( + 0, $this->dispatched($event, $callback), + "The unexpected [{$event}] event was dispatched." + ); + } + + /** + * Assert that no events were dispatched. + * + * @return void + */ + public function assertNothingDispatched() + { + $count = count(Arr::flatten($this->events)); + + PHPUnit::assertSame( + 0, $count, + "{$count} unexpected events were dispatched." + ); + } + + /** + * Get all of the events matching a truth-test callback. + * + * @param string $event + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function dispatched($event, $callback = null) + { + if (! $this->hasDispatched($event)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return collect($this->events[$event])->filter(function ($arguments) use ($callback) { + return $callback(...$arguments); + }); + } + + /** + * Determine if the given event has been dispatched. + * + * @param string $event + * @return bool + */ + public function hasDispatched($event) + { + return isset($this->events[$event]) && ! empty($this->events[$event]); + } + + /** + * Register an event listener with the dispatcher. + * + * @param \Closure|string|array $events + * @param mixed $listener + * @return void + */ + public function listen($events, $listener = null) + { + $this->dispatcher->listen($events, $listener); + } + + /** + * Determine if a given event has listeners. + * + * @param string $eventName + * @return bool + */ + public function hasListeners($eventName) + { + return $this->dispatcher->hasListeners($eventName); + } + + /** + * Register an event and payload to be dispatched later. + * + * @param string $event + * @param array $payload + * @return void + */ + public function push($event, $payload = []) + { + // + } + + /** + * Register an event subscriber with the dispatcher. + * + * @param object|string $subscriber + * @return void + */ + public function subscribe($subscriber) + { + $this->dispatcher->subscribe($subscriber); + } + + /** + * Flush a set of pushed events. + * + * @param string $event + * @return void + */ + public function flush($event) + { + // + } + + /** + * Fire an event and call the listeners. + * + * @param string|object $event + * @param mixed $payload + * @param bool $halt + * @return array|null + */ + public function dispatch($event, $payload = [], $halt = false) + { + $name = is_object($event) ? get_class($event) : (string) $event; + + if ($this->shouldFakeEvent($name, $payload)) { + $this->events[$name][] = func_get_args(); + } else { + return $this->dispatcher->dispatch($event, $payload, $halt); + } + } + + /** + * Determine if an event should be faked or actually dispatched. + * + * @param string $eventName + * @param mixed $payload + * @return bool + */ + protected function shouldFakeEvent($eventName, $payload) + { + if (empty($this->eventsToFake)) { + return true; + } + + return collect($this->eventsToFake) + ->filter(function ($event) use ($eventName, $payload) { + return $event instanceof Closure + ? $event($eventName, $payload) + : $event === $eventName; + }) + ->isNotEmpty(); + } + + /** + * Remove a set of listeners from the dispatcher. + * + * @param string $event + * @return void + */ + public function forget($event) + { + // + } + + /** + * Forget all of the queued listeners. + * + * @return void + */ + public function forgetPushed() + { + // + } + + /** + * Dispatch an event and call the listeners. + * + * @param string|object $event + * @param mixed $payload + * @return array|null + */ + public function until($event, $payload = []) + { + return $this->dispatch($event, $payload, true); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/MailFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/MailFake.php new file mode 100644 index 00000000000..fff5f8fcb78 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/MailFake.php @@ -0,0 +1,445 @@ +prepareMailableAndCallback($mailable, $callback); + + if (is_numeric($callback)) { + return $this->assertSentTimes($mailable, $callback); + } + + $message = "The expected [{$mailable}] mailable was not sent."; + + if (count($this->queuedMailables) > 0) { + $message .= ' Did you mean to use assertQueued() instead?'; + } + + PHPUnit::assertTrue( + $this->sent($mailable, $callback)->count() > 0, + $message + ); + } + + /** + * Assert if a mailable was sent a number of times. + * + * @param string $mailable + * @param int $times + * @return void + */ + protected function assertSentTimes($mailable, $times = 1) + { + $count = $this->sent($mailable)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$mailable}] mailable was sent {$count} times instead of {$times} times." + ); + } + + /** + * Determine if a mailable was not sent or queued to be sent based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return void + */ + public function assertNotOutgoing($mailable, $callback = null) + { + $this->assertNotSent($mailable, $callback); + $this->assertNotQueued($mailable, $callback); + } + + /** + * Determine if a mailable was not sent based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return void + */ + public function assertNotSent($mailable, $callback = null) + { + [$mailable, $callback] = $this->prepareMailableAndCallback($mailable, $callback); + + PHPUnit::assertCount( + 0, $this->sent($mailable, $callback), + "The unexpected [{$mailable}] mailable was sent." + ); + } + + /** + * Assert that no mailables were sent or queued to be sent. + * + * @return void + */ + public function assertNothingOutgoing() + { + $this->assertNothingSent(); + $this->assertNothingQueued(); + } + + /** + * Assert that no mailables were sent. + * + * @return void + */ + public function assertNothingSent() + { + $mailableNames = collect($this->mailables)->map(function ($mailable) { + return get_class($mailable); + })->join(', '); + + PHPUnit::assertEmpty($this->mailables, 'The following mailables were sent unexpectedly: '.$mailableNames); + } + + /** + * Assert if a mailable was queued based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|int|null $callback + * @return void + */ + public function assertQueued($mailable, $callback = null) + { + [$mailable, $callback] = $this->prepareMailableAndCallback($mailable, $callback); + + if (is_numeric($callback)) { + return $this->assertQueuedTimes($mailable, $callback); + } + + PHPUnit::assertTrue( + $this->queued($mailable, $callback)->count() > 0, + "The expected [{$mailable}] mailable was not queued." + ); + } + + /** + * Assert if a mailable was queued a number of times. + * + * @param string $mailable + * @param int $times + * @return void + */ + protected function assertQueuedTimes($mailable, $times = 1) + { + $count = $this->queued($mailable)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$mailable}] mailable was queued {$count} times instead of {$times} times." + ); + } + + /** + * Determine if a mailable was not queued based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return void + */ + public function assertNotQueued($mailable, $callback = null) + { + [$mailable, $callback] = $this->prepareMailableAndCallback($mailable, $callback); + + PHPUnit::assertCount( + 0, $this->queued($mailable, $callback), + "The unexpected [{$mailable}] mailable was queued." + ); + } + + /** + * Assert that no mailables were queued. + * + * @return void + */ + public function assertNothingQueued() + { + $mailableNames = collect($this->queuedMailables)->map(function ($mailable) { + return get_class($mailable); + })->join(', '); + + PHPUnit::assertEmpty($this->queuedMailables, 'The following mailables were queued unexpectedly: '.$mailableNames); + } + + /** + * Get all of the mailables matching a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function sent($mailable, $callback = null) + { + [$mailable, $callback] = $this->prepareMailableAndCallback($mailable, $callback); + + if (! $this->hasSent($mailable)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return $this->mailablesOf($mailable)->filter(function ($mailable) use ($callback) { + return $callback($mailable); + }); + } + + /** + * Determine if the given mailable has been sent. + * + * @param string $mailable + * @return bool + */ + public function hasSent($mailable) + { + return $this->mailablesOf($mailable)->count() > 0; + } + + /** + * Get all of the queued mailables matching a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function queued($mailable, $callback = null) + { + [$mailable, $callback] = $this->prepareMailableAndCallback($mailable, $callback); + + if (! $this->hasQueued($mailable)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return $this->queuedMailablesOf($mailable)->filter(function ($mailable) use ($callback) { + return $callback($mailable); + }); + } + + /** + * Determine if the given mailable has been queued. + * + * @param string $mailable + * @return bool + */ + public function hasQueued($mailable) + { + return $this->queuedMailablesOf($mailable)->count() > 0; + } + + /** + * Get all of the mailed mailables for a given type. + * + * @param string $type + * @return \Illuminate\Support\Collection + */ + protected function mailablesOf($type) + { + return collect($this->mailables)->filter(function ($mailable) use ($type) { + return $mailable instanceof $type; + }); + } + + /** + * Get all of the mailed mailables for a given type. + * + * @param string $type + * @return \Illuminate\Support\Collection + */ + protected function queuedMailablesOf($type) + { + return collect($this->queuedMailables)->filter(function ($mailable) use ($type) { + return $mailable instanceof $type; + }); + } + + /** + * Get a mailer instance by name. + * + * @param string|null $name + * @return \Illuminate\Contracts\Mail\Mailer + */ + public function mailer($name = null) + { + $this->currentMailer = $name; + + return $this; + } + + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + */ + public function to($users) + { + return (new PendingMailFake($this))->to($users); + } + + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + */ + public function bcc($users) + { + return (new PendingMailFake($this))->bcc($users); + } + + /** + * Send a new message with only a raw text part. + * + * @param string $text + * @param \Closure|string $callback + * @return void + */ + public function raw($text, $callback) + { + // + } + + /** + * Send a new message using a view. + * + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param array $data + * @param \Closure|string|null $callback + * @return void + */ + public function send($view, array $data = [], $callback = null) + { + if (! $view instanceof Mailable) { + return; + } + + $view->mailer($this->currentMailer); + + if ($view instanceof ShouldQueue) { + return $this->queue($view, $data); + } + + $this->currentMailer = null; + + $this->mailables[] = $view; + } + + /** + * Queue a new e-mail message for sending. + * + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param string|null $queue + * @return mixed + */ + public function queue($view, $queue = null) + { + if (! $view instanceof Mailable) { + return; + } + + $view->mailer($this->currentMailer); + + $this->currentMailer = null; + + $this->queuedMailables[] = $view; + } + + /** + * Queue a new e-mail message for sending after (n) seconds. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param string|null $queue + * @return mixed + */ + public function later($delay, $view, $queue = null) + { + $this->queue($view, $queue); + } + + /** + * Get the array of failed recipients. + * + * @return array + */ + public function failures() + { + return []; + } + + /** + * Infer mailable class using reflection if a typehinted closure is passed to assertion. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return array + */ + protected function prepareMailableAndCallback($mailable, $callback) + { + if ($mailable instanceof Closure) { + return [$this->firstClosureParameterType($mailable), $mailable]; + } + + return [$mailable, $callback]; + } + + /** + * Forget all of the resolved mailer instances. + * + * @return $this + */ + public function forgetMailers() + { + $this->currentMailer = null; + + return $this; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/NotificationFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/NotificationFake.php new file mode 100644 index 00000000000..c7b12f42d47 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/NotificationFake.php @@ -0,0 +1,327 @@ +assertSentTo(new AnonymousNotifiable, $notification, $callback); + } + + /** + * Assert if a notification was sent based on a truth-test callback. + * + * @param mixed $notifiable + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * + * @throws \Exception + */ + public function assertSentTo($notifiable, $notification, $callback = null) + { + if (is_array($notifiable) || $notifiable instanceof Collection) { + if (count($notifiable) === 0) { + throw new Exception('No notifiable given.'); + } + + foreach ($notifiable as $singleNotifiable) { + $this->assertSentTo($singleNotifiable, $notification, $callback); + } + + return; + } + + if ($notification instanceof Closure) { + [$notification, $callback] = [$this->firstClosureParameterType($notification), $notification]; + } + + if (is_numeric($callback)) { + return $this->assertSentToTimes($notifiable, $notification, $callback); + } + + PHPUnit::assertTrue( + $this->sent($notifiable, $notification, $callback)->count() > 0, + "The expected [{$notification}] notification was not sent." + ); + } + + /** + * Assert if a notification was sent on-demand a number of times. + * + * @param string $notification + * @param int $times + * @return void + */ + public function assertSentOnDemandTimes($notification, $times = 1) + { + return $this->assertSentToTimes(new AnonymousNotifiable, $notification, $times); + } + + /** + * Assert if a notification was sent a number of times. + * + * @param mixed $notifiable + * @param string $notification + * @param int $times + * @return void + */ + public function assertSentToTimes($notifiable, $notification, $times = 1) + { + $count = $this->sent($notifiable, $notification)->count(); + + PHPUnit::assertSame( + $times, $count, + "Expected [{$notification}] to be sent {$times} times, but was sent {$count} times." + ); + } + + /** + * Determine if a notification was sent based on a truth-test callback. + * + * @param mixed $notifiable + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * + * @throws \Exception + */ + public function assertNotSentTo($notifiable, $notification, $callback = null) + { + if (is_array($notifiable) || $notifiable instanceof Collection) { + if (count($notifiable) === 0) { + throw new Exception('No notifiable given.'); + } + + foreach ($notifiable as $singleNotifiable) { + $this->assertNotSentTo($singleNotifiable, $notification, $callback); + } + + return; + } + + if ($notification instanceof Closure) { + [$notification, $callback] = [$this->firstClosureParameterType($notification), $notification]; + } + + PHPUnit::assertCount( + 0, $this->sent($notifiable, $notification, $callback), + "The unexpected [{$notification}] notification was sent." + ); + } + + /** + * Assert that no notifications were sent. + * + * @return void + */ + public function assertNothingSent() + { + PHPUnit::assertEmpty($this->notifications, 'Notifications were sent unexpectedly.'); + } + + /** + * Assert the total amount of times a notification was sent. + * + * @param string $notification + * @param int $expectedCount + * @return void + */ + public function assertSentTimes($notification, $expectedCount) + { + $actualCount = collect($this->notifications) + ->flatten(1) + ->reduce(function ($count, $sent) use ($notification) { + return $count + count($sent[$notification] ?? []); + }, 0); + + PHPUnit::assertSame( + $expectedCount, $actualCount, + "Expected [{$notification}] to be sent {$expectedCount} times, but was sent {$actualCount} times." + ); + } + + /** + * Assert the total amount of times a notification was sent. + * + * @param int $expectedCount + * @param string $notification + * @return void + * + * @deprecated Use the assertSentTimes method instead + */ + public function assertTimesSent($expectedCount, $notification) + { + $this->assertSentTimes($notification, $expectedCount); + } + + /** + * Get all of the notifications matching a truth-test callback. + * + * @param mixed $notifiable + * @param string $notification + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function sent($notifiable, $notification, $callback = null) + { + if (! $this->hasSent($notifiable, $notification)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + $notifications = collect($this->notificationsFor($notifiable, $notification)); + + return $notifications->filter(function ($arguments) use ($callback) { + return $callback(...array_values($arguments)); + })->pluck('notification'); + } + + /** + * Determine if there are more notifications left to inspect. + * + * @param mixed $notifiable + * @param string $notification + * @return bool + */ + public function hasSent($notifiable, $notification) + { + return ! empty($this->notificationsFor($notifiable, $notification)); + } + + /** + * Get all of the notifications for a notifiable entity by type. + * + * @param mixed $notifiable + * @param string $notification + * @return array + */ + protected function notificationsFor($notifiable, $notification) + { + return $this->notifications[get_class($notifiable)][$notifiable->getKey()][$notification] ?? []; + } + + /** + * Send the given notification to the given notifiable entities. + * + * @param \Illuminate\Support\Collection|array|mixed $notifiables + * @param mixed $notification + * @return void + */ + public function send($notifiables, $notification) + { + $this->sendNow($notifiables, $notification); + } + + /** + * Send the given notification immediately. + * + * @param \Illuminate\Support\Collection|array|mixed $notifiables + * @param mixed $notification + * @param array|null $channels + * @return void + */ + public function sendNow($notifiables, $notification, array $channels = null) + { + if (! $notifiables instanceof Collection && ! is_array($notifiables)) { + $notifiables = [$notifiables]; + } + + foreach ($notifiables as $notifiable) { + if (! $notification->id) { + $notification->id = Str::uuid()->toString(); + } + + $notifiableChannels = $channels ?: $notification->via($notifiable); + + if (method_exists($notification, 'shouldSend')) { + $notifiableChannels = array_filter( + $notifiableChannels, + function ($channel) use ($notification, $notifiable) { + return $notification->shouldSend($notifiable, $channel) !== false; + } + ); + + if (empty($notifiableChannels)) { + continue; + } + } + + $this->notifications[get_class($notifiable)][$notifiable->getKey()][get_class($notification)][] = [ + 'notification' => $notification, + 'channels' => $notifiableChannels, + 'notifiable' => $notifiable, + 'locale' => $notification->locale ?? $this->locale ?? value(function () use ($notifiable) { + if ($notifiable instanceof HasLocalePreference) { + return $notifiable->preferredLocale(); + } + }), + ]; + } + } + + /** + * Get a channel instance by name. + * + * @param string|null $name + * @return mixed + */ + public function channel($name = null) + { + // + } + + /** + * Set the locale of notifications. + * + * @param string $locale + * @return $this + */ + public function locale($locale) + { + $this->locale = $locale; + + return $this; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingBatchFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingBatchFake.php new file mode 100644 index 00000000000..c60b4b50ba7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingBatchFake.php @@ -0,0 +1,39 @@ +bus = $bus; + $this->jobs = $jobs; + } + + /** + * Dispatch the batch. + * + * @return \Illuminate\Bus\Batch + */ + public function dispatch() + { + return $this->bus->recordPendingBatch($this); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingChainFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingChainFake.php new file mode 100644 index 00000000000..533c6498b33 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingChainFake.php @@ -0,0 +1,56 @@ +bus = $bus; + $this->job = $job; + $this->chain = $chain; + } + + /** + * Dispatch the job with the given arguments. + * + * @return \Illuminate\Foundation\Bus\PendingDispatch + */ + public function dispatch() + { + if (is_string($this->job)) { + $firstJob = new $this->job(...func_get_args()); + } elseif ($this->job instanceof Closure) { + $firstJob = CallQueuedClosure::create($this->job); + } else { + $firstJob = $this->job; + } + + $firstJob->allOnConnection($this->connection); + $firstJob->allOnQueue($this->queue); + $firstJob->chain($this->chain); + $firstJob->delay($this->delay); + $firstJob->chainCatchCallbacks = $this->catchCallbacks(); + + return $this->bus->dispatch($firstJob); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingMailFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingMailFake.php new file mode 100644 index 00000000000..52251301ceb --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/PendingMailFake.php @@ -0,0 +1,42 @@ +mailer = $mailer; + } + + /** + * Send a new mailable message instance. + * + * @param \Illuminate\Contracts\Mail\Mailable $mailable + * @return void + */ + public function send(Mailable $mailable) + { + $this->mailer->send($this->fill($mailable)); + } + + /** + * Push the given mailable onto the queue. + * + * @param \Illuminate\Contracts\Mail\Mailable $mailable + * @return mixed + */ + public function queue(Mailable $mailable) + { + return $this->mailer->queue($this->fill($mailable)); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/QueueFake.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/QueueFake.php new file mode 100644 index 00000000000..d37cd67237a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Testing/Fakes/QueueFake.php @@ -0,0 +1,414 @@ +firstClosureParameterType($job), $job]; + } + + if (is_numeric($callback)) { + return $this->assertPushedTimes($job, $callback); + } + + PHPUnit::assertTrue( + $this->pushed($job, $callback)->count() > 0, + "The expected [{$job}] job was not pushed." + ); + } + + /** + * Assert if a job was pushed a number of times. + * + * @param string $job + * @param int $times + * @return void + */ + protected function assertPushedTimes($job, $times = 1) + { + $count = $this->pushed($job)->count(); + + PHPUnit::assertSame( + $times, $count, + "The expected [{$job}] job was pushed {$count} times instead of {$times} times." + ); + } + + /** + * Assert if a job was pushed based on a truth-test callback. + * + * @param string $queue + * @param string|\Closure $job + * @param callable|null $callback + * @return void + */ + public function assertPushedOn($queue, $job, $callback = null) + { + if ($job instanceof Closure) { + [$job, $callback] = [$this->firstClosureParameterType($job), $job]; + } + + $this->assertPushed($job, function ($job, $pushedQueue) use ($callback, $queue) { + if ($pushedQueue !== $queue) { + return false; + } + + return $callback ? $callback(...func_get_args()) : true; + }); + } + + /** + * Assert if a job was pushed with chained jobs based on a truth-test callback. + * + * @param string $job + * @param array $expectedChain + * @param callable|null $callback + * @return void + */ + public function assertPushedWithChain($job, $expectedChain = [], $callback = null) + { + PHPUnit::assertTrue( + $this->pushed($job, $callback)->isNotEmpty(), + "The expected [{$job}] job was not pushed." + ); + + PHPUnit::assertTrue( + collect($expectedChain)->isNotEmpty(), + 'The expected chain can not be empty.' + ); + + $this->isChainOfObjects($expectedChain) + ? $this->assertPushedWithChainOfObjects($job, $expectedChain, $callback) + : $this->assertPushedWithChainOfClasses($job, $expectedChain, $callback); + } + + /** + * Assert if a job was pushed with an empty chain based on a truth-test callback. + * + * @param string $job + * @param callable|null $callback + * @return void + */ + public function assertPushedWithoutChain($job, $callback = null) + { + PHPUnit::assertTrue( + $this->pushed($job, $callback)->isNotEmpty(), + "The expected [{$job}] job was not pushed." + ); + + $this->assertPushedWithChainOfClasses($job, [], $callback); + } + + /** + * Assert if a job was pushed with chained jobs based on a truth-test callback. + * + * @param string $job + * @param array $expectedChain + * @param callable|null $callback + * @return void + */ + protected function assertPushedWithChainOfObjects($job, $expectedChain, $callback) + { + $chain = collect($expectedChain)->map(function ($job) { + return serialize($job); + })->all(); + + PHPUnit::assertTrue( + $this->pushed($job, $callback)->filter(function ($job) use ($chain) { + return $job->chained == $chain; + })->isNotEmpty(), + 'The expected chain was not pushed.' + ); + } + + /** + * Assert if a job was pushed with chained jobs based on a truth-test callback. + * + * @param string $job + * @param array $expectedChain + * @param callable|null $callback + * @return void + */ + protected function assertPushedWithChainOfClasses($job, $expectedChain, $callback) + { + $matching = $this->pushed($job, $callback)->map->chained->map(function ($chain) { + return collect($chain)->map(function ($job) { + return get_class(unserialize($job)); + }); + })->filter(function ($chain) use ($expectedChain) { + return $chain->all() === $expectedChain; + }); + + PHPUnit::assertTrue( + $matching->isNotEmpty(), 'The expected chain was not pushed.' + ); + } + + /** + * Determine if the given chain is entirely composed of objects. + * + * @param array $chain + * @return bool + */ + protected function isChainOfObjects($chain) + { + return ! collect($chain)->contains(function ($job) { + return ! is_object($job); + }); + } + + /** + * Determine if a job was pushed based on a truth-test callback. + * + * @param string|\Closure $job + * @param callable|null $callback + * @return void + */ + public function assertNotPushed($job, $callback = null) + { + if ($job instanceof Closure) { + [$job, $callback] = [$this->firstClosureParameterType($job), $job]; + } + + PHPUnit::assertCount( + 0, $this->pushed($job, $callback), + "The unexpected [{$job}] job was pushed." + ); + } + + /** + * Assert that no jobs were pushed. + * + * @return void + */ + public function assertNothingPushed() + { + PHPUnit::assertEmpty($this->jobs, 'Jobs were pushed unexpectedly.'); + } + + /** + * Get all of the jobs matching a truth-test callback. + * + * @param string $job + * @param callable|null $callback + * @return \Illuminate\Support\Collection + */ + public function pushed($job, $callback = null) + { + if (! $this->hasPushed($job)) { + return collect(); + } + + $callback = $callback ?: function () { + return true; + }; + + return collect($this->jobs[$job])->filter(function ($data) use ($callback) { + return $callback($data['job'], $data['queue']); + })->pluck('job'); + } + + /** + * Determine if there are any stored jobs for a given class. + * + * @param string $job + * @return bool + */ + public function hasPushed($job) + { + return isset($this->jobs[$job]) && ! empty($this->jobs[$job]); + } + + /** + * Resolve a queue connection instance. + * + * @param mixed $value + * @return \Illuminate\Contracts\Queue\Queue + */ + public function connection($value = null) + { + return $this; + } + + /** + * Get the size of the queue. + * + * @param string|null $queue + * @return int + */ + public function size($queue = null) + { + return collect($this->jobs)->flatten(1)->filter(function ($job) use ($queue) { + return $job['queue'] === $queue; + })->count(); + } + + /** + * Push a new job onto the queue. + * + * @param string|object $job + * @param mixed $data + * @param string|null $queue + * @return mixed + */ + public function push($job, $data = '', $queue = null) + { + $this->jobs[is_object($job) ? get_class($job) : $job][] = [ + 'job' => $job, + 'queue' => $queue, + ]; + } + + /** + * Push a raw payload onto the queue. + * + * @param string $payload + * @param string|null $queue + * @param array $options + * @return mixed + */ + public function pushRaw($payload, $queue = null, array $options = []) + { + // + } + + /** + * Push a new job onto the queue after a delay. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @param string|object $job + * @param mixed $data + * @param string|null $queue + * @return mixed + */ + public function later($delay, $job, $data = '', $queue = null) + { + return $this->push($job, $data, $queue); + } + + /** + * Push a new job onto the queue. + * + * @param string $queue + * @param string|object $job + * @param mixed $data + * @return mixed + */ + public function pushOn($queue, $job, $data = '') + { + return $this->push($job, $data, $queue); + } + + /** + * Push a new job onto the queue after a delay. + * + * @param string $queue + * @param \DateTimeInterface|\DateInterval|int $delay + * @param string|object $job + * @param mixed $data + * @return mixed + */ + public function laterOn($queue, $delay, $job, $data = '') + { + return $this->push($job, $data, $queue); + } + + /** + * Pop the next job off of the queue. + * + * @param string|null $queue + * @return \Illuminate\Contracts\Queue\Job|null + */ + public function pop($queue = null) + { + // + } + + /** + * Push an array of jobs onto the queue. + * + * @param array $jobs + * @param mixed $data + * @param string|null $queue + * @return mixed + */ + public function bulk($jobs, $data = '', $queue = null) + { + foreach ($jobs as $job) { + $this->push($job, $data, $queue); + } + } + + /** + * Get the jobs that have been pushed. + * + * @return array + */ + public function pushedJobs() + { + return $this->jobs; + } + + /** + * Get the connection name for the queue. + * + * @return string + */ + public function getConnectionName() + { + // + } + + /** + * Set the connection name for the queue. + * + * @param string $name + * @return $this + */ + public function setConnectionName($name) + { + return $this; + } + + /** + * Override the QueueManager to prevent circular dependency. + * + * @param string $method + * @param array $parameters + * @return mixed + * + * @throws \BadMethodCallException + */ + public function __call($method, $parameters) + { + throw new BadMethodCallException(sprintf( + 'Call to undefined method %s::%s()', static::class, $method + )); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/CapsuleManagerTrait.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/CapsuleManagerTrait.php new file mode 100644 index 00000000000..0532755228b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/CapsuleManagerTrait.php @@ -0,0 +1,69 @@ +container = $container; + + if (! $this->container->bound('config')) { + $this->container->instance('config', new Fluent); + } + } + + /** + * Make this capsule instance available globally. + * + * @return void + */ + public function setAsGlobal() + { + static::$instance = $this; + } + + /** + * Get the IoC container instance. + * + * @return \Illuminate\Contracts\Container\Container + */ + public function getContainer() + { + return $this->container; + } + + /** + * Set the IoC container instance. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return void + */ + public function setContainer(Container $container) + { + $this->container = $container; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Conditionable.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Conditionable.php new file mode 100644 index 00000000000..798082794f1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Conditionable.php @@ -0,0 +1,44 @@ +{$method}(...$parameters); + } catch (Error|BadMethodCallException $e) { + $pattern = '~^Call to undefined method (?P[^:]+)::(?P[^\(]+)\(\)$~'; + + if (! preg_match($pattern, $e->getMessage(), $matches)) { + throw $e; + } + + if ($matches['class'] != get_class($object) || + $matches['method'] != $method) { + throw $e; + } + + static::throwBadMethodCallException($method); + } + } + + /** + * Forward a method call to the given object, returning $this if the forwarded call returned itself. + * + * @param mixed $object + * @param string $method + * @param array $parameters + * @return mixed + * + * @throws \BadMethodCallException + */ + protected function forwardDecoratedCallTo($object, $method, $parameters) + { + $result = $this->forwardCallTo($object, $method, $parameters); + + if ($result === $object) { + return $this; + } + + return $result; + } + + /** + * Throw a bad method call exception for the given method. + * + * @param string $method + * @return void + * + * @throws \BadMethodCallException + */ + protected static function throwBadMethodCallException($method) + { + throw new BadMethodCallException(sprintf( + 'Call to undefined method %s::%s()', static::class, $method + )); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Localizable.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Localizable.php new file mode 100644 index 00000000000..1e9fa58c90b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Localizable.php @@ -0,0 +1,34 @@ +getLocale(); + + try { + $app->setLocale($locale); + + return $callback(); + } finally { + $app->setLocale($original); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/ReflectsClosures.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/ReflectsClosures.php new file mode 100644 index 00000000000..bf47d7ec20c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/ReflectsClosures.php @@ -0,0 +1,88 @@ +closureParameterTypes($closure)); + + if (! $types) { + throw new RuntimeException('The given Closure has no parameters.'); + } + + if ($types[0] === null) { + throw new RuntimeException('The first parameter of the given Closure is missing a type hint.'); + } + + return $types[0]; + } + + /** + * Get the class names of the first parameter of the given Closure, including union types. + * + * @param \Closure $closure + * @return array + * + * @throws \ReflectionException + * @throws \RuntimeException + */ + protected function firstClosureParameterTypes(Closure $closure) + { + $reflection = new ReflectionFunction($closure); + + $types = collect($reflection->getParameters())->mapWithKeys(function ($parameter) { + if ($parameter->isVariadic()) { + return [$parameter->getName() => null]; + } + + return [$parameter->getName() => Reflector::getParameterClassNames($parameter)]; + })->filter()->values()->all(); + + if (empty($types)) { + throw new RuntimeException('The given Closure has no parameters.'); + } + + if (isset($types[0]) && empty($types[0])) { + throw new RuntimeException('The first parameter of the given Closure is missing a type hint.'); + } + + return $types[0]; + } + + /** + * Get the class names / types of the parameters of the given Closure. + * + * @param \Closure $closure + * @return array + * + * @throws \ReflectionException + */ + protected function closureParameterTypes(Closure $closure) + { + $reflection = new ReflectionFunction($closure); + + return collect($reflection->getParameters())->mapWithKeys(function ($parameter) { + if ($parameter->isVariadic()) { + return [$parameter->getName() => null]; + } + + return [$parameter->getName() => Reflector::getParameterClassName($parameter)]; + })->all(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Tappable.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Tappable.php new file mode 100644 index 00000000000..9353451ad0c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/Traits/Tappable.php @@ -0,0 +1,17 @@ +input = $input; + } + + /** + * Get a subset containing the provided keys with values from the input data. + * + * @param array|mixed $keys + * @return array + */ + public function only($keys) + { + $results = []; + + $input = $this->input; + + $placeholder = new stdClass; + + foreach (is_array($keys) ? $keys : func_get_args() as $key) { + $value = data_get($input, $key, $placeholder); + + if ($value !== $placeholder) { + Arr::set($results, $key, $value); + } + } + + return $results; + } + + /** + * Get all of the input except for a specified array of items. + * + * @param array|mixed $keys + * @return array + */ + public function except($keys) + { + $keys = is_array($keys) ? $keys : func_get_args(); + + $results = $this->input; + + Arr::forget($results, $keys); + + return $results; + } + + /** + * Merge the validated input with the given array of additional data. + * + * @param array $items + * @return static + */ + public function merge(array $items) + { + return new static(array_merge($this->input, $items)); + } + + /** + * Get the input as a collection. + * + * @return \Illuminate\Support\Collection + */ + public function collect() + { + return new Collection($this->input); + } + + /** + * Get the raw, underlying input array. + * + * @return array + */ + public function all() + { + return $this->input; + } + + /** + * Get the instance as an array. + * + * @return array + */ + public function toArray() + { + return $this->all(); + } + + /** + * Dynamically access input data. + * + * @param string $name + * @return mixed + */ + public function __get($name) + { + return $this->input[$name]; + } + + /** + * Dynamically set input data. + * + * @param string $name + * @param mixed $value + * @return mixed + */ + public function __set($name, $value) + { + $this->input[$name] = $value; + } + + /** + * Determine if an input key is set. + * + * @return bool + */ + public function __isset($name) + { + return isset($this->input[$name]); + } + + /** + * Remove an input key. + * + * @param string $name + * @return void + */ + public function __unset($name) + { + unset($this->input[$name]); + } + + /** + * Determine if an item exists at an offset. + * + * @param mixed $key + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists($key) + { + return isset($this->input[$key]); + } + + /** + * Get an item at a given offset. + * + * @param mixed $key + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet($key) + { + return $this->input[$key]; + } + + /** + * Set the item at a given offset. + * + * @param mixed $key + * @param mixed $value + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet($key, $value) + { + if (is_null($key)) { + $this->input[] = $value; + } else { + $this->input[$key] = $value; + } + } + + /** + * Unset the item at a given offset. + * + * @param string $key + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset($key) + { + unset($this->input[$key]); + } + + /** + * Get an iterator for the input. + * + * @return \ArrayIterator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + return new ArrayIterator($this->input); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ViewErrorBag.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ViewErrorBag.php new file mode 100644 index 00000000000..d51bb534d84 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/ViewErrorBag.php @@ -0,0 +1,131 @@ +bags[$key]); + } + + /** + * Get a MessageBag instance from the bags. + * + * @param string $key + * @return \Illuminate\Contracts\Support\MessageBag + */ + public function getBag($key) + { + return Arr::get($this->bags, $key) ?: new MessageBag; + } + + /** + * Get all the bags. + * + * @return array + */ + public function getBags() + { + return $this->bags; + } + + /** + * Add a new MessageBag instance to the bags. + * + * @param string $key + * @param \Illuminate\Contracts\Support\MessageBag $bag + * @return $this + */ + public function put($key, MessageBagContract $bag) + { + $this->bags[$key] = $bag; + + return $this; + } + + /** + * Determine if the default message bag has any messages. + * + * @return bool + */ + public function any() + { + return $this->count() > 0; + } + + /** + * Get the number of messages in the default bag. + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() + { + return $this->getBag('default')->count(); + } + + /** + * Dynamically call methods on the default bag. + * + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->getBag('default')->$method(...$parameters); + } + + /** + * Dynamically access a view error bag. + * + * @param string $key + * @return \Illuminate\Contracts\Support\MessageBag + */ + public function __get($key) + { + return $this->getBag($key); + } + + /** + * Dynamically set a view error bag. + * + * @param string $key + * @param \Illuminate\Contracts\Support\MessageBag $value + * @return void + */ + public function __set($key, $value) + { + $this->put($key, $value); + } + + /** + * Convert the default bag to its string representation. + * + * @return string + */ + public function __toString() + { + return (string) $this->getBag('default'); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/composer.json b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/composer.json new file mode 100644 index 00000000000..527bdcbb869 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/composer.json @@ -0,0 +1,55 @@ +{ + "name": "illuminate/support", + "description": "The Illuminate Support package.", + "license": "MIT", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "require": { + "php": "^7.3|^8.0", + "ext-json": "*", + "ext-mbstring": "*", + "doctrine/inflector": "^1.4|^2.0", + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "nesbot/carbon": "^2.53.1", + "voku/portable-ascii": "^1.6.1" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "suggest": { + "illuminate/filesystem": "Required to use the composer class (^8.0).", + "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0.2).", + "ramsey/uuid": "Required to use Str::uuid() (^4.2.2).", + "symfony/process": "Required to use the composer class (^5.4).", + "symfony/var-dumper": "Required to use the dd function (^5.4).", + "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)." + }, + "config": { + "sort-packages": true + }, + "minimum-stability": "dev" +} diff --git a/htdocs/includes/webklex/php-imap/vendor/illuminate/support/helpers.php b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/helpers.php new file mode 100755 index 00000000000..0b82fe76939 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/illuminate/support/helpers.php @@ -0,0 +1,379 @@ + $value) { + if (is_numeric($key)) { + $start++; + + $array[$start] = Arr::pull($array, $key); + } + } + + return $array; + } +} + +if (! function_exists('blank')) { + /** + * Determine if the given value is "blank". + * + * @param mixed $value + * @return bool + */ + function blank($value) + { + if (is_null($value)) { + return true; + } + + if (is_string($value)) { + return trim($value) === ''; + } + + if (is_numeric($value) || is_bool($value)) { + return false; + } + + if ($value instanceof Countable) { + return count($value) === 0; + } + + return empty($value); + } +} + +if (! function_exists('class_basename')) { + /** + * Get the class "basename" of the given object / class. + * + * @param string|object $class + * @return string + */ + function class_basename($class) + { + $class = is_object($class) ? get_class($class) : $class; + + return basename(str_replace('\\', '/', $class)); + } +} + +if (! function_exists('class_uses_recursive')) { + /** + * Returns all traits used by a class, its parent classes and trait of their traits. + * + * @param object|string $class + * @return array + */ + function class_uses_recursive($class) + { + if (is_object($class)) { + $class = get_class($class); + } + + $results = []; + + foreach (array_reverse(class_parents($class)) + [$class => $class] as $class) { + $results += trait_uses_recursive($class); + } + + return array_unique($results); + } +} + +if (! function_exists('e')) { + /** + * Encode HTML special characters in a string. + * + * @param \Illuminate\Contracts\Support\DeferringDisplayableValue|\Illuminate\Contracts\Support\Htmlable|string|null $value + * @param bool $doubleEncode + * @return string + */ + function e($value, $doubleEncode = true) + { + if ($value instanceof DeferringDisplayableValue) { + $value = $value->resolveDisplayableValue(); + } + + if ($value instanceof Htmlable) { + return $value->toHtml(); + } + + return htmlspecialchars($value ?? '', ENT_QUOTES, 'UTF-8', $doubleEncode); + } +} + +if (! function_exists('env')) { + /** + * Gets the value of an environment variable. + * + * @param string $key + * @param mixed $default + * @return mixed + */ + function env($key, $default = null) + { + return Env::get($key, $default); + } +} + +if (! function_exists('filled')) { + /** + * Determine if a value is "filled". + * + * @param mixed $value + * @return bool + */ + function filled($value) + { + return ! blank($value); + } +} + +if (! function_exists('object_get')) { + /** + * Get an item from an object using "dot" notation. + * + * @param object $object + * @param string|null $key + * @param mixed $default + * @return mixed + */ + function object_get($object, $key, $default = null) + { + if (is_null($key) || trim($key) === '') { + return $object; + } + + foreach (explode('.', $key) as $segment) { + if (! is_object($object) || ! isset($object->{$segment})) { + return value($default); + } + + $object = $object->{$segment}; + } + + return $object; + } +} + +if (! function_exists('optional')) { + /** + * Provide access to optional objects. + * + * @param mixed $value + * @param callable|null $callback + * @return mixed + */ + function optional($value = null, callable $callback = null) + { + if (is_null($callback)) { + return new Optional($value); + } elseif (! is_null($value)) { + return $callback($value); + } + } +} + +if (! function_exists('preg_replace_array')) { + /** + * Replace a given pattern with each value in the array in sequentially. + * + * @param string $pattern + * @param array $replacements + * @param string $subject + * @return string + */ + function preg_replace_array($pattern, array $replacements, $subject) + { + return preg_replace_callback($pattern, function () use (&$replacements) { + foreach ($replacements as $key => $value) { + return array_shift($replacements); + } + }, $subject); + } +} + +if (! function_exists('retry')) { + /** + * Retry an operation a given number of times. + * + * @param int $times + * @param callable $callback + * @param int|\Closure $sleepMilliseconds + * @param callable|null $when + * @return mixed + * + * @throws \Exception + */ + function retry($times, callable $callback, $sleepMilliseconds = 0, $when = null) + { + $attempts = 0; + + beginning: + $attempts++; + $times--; + + try { + return $callback($attempts); + } catch (Exception $e) { + if ($times < 1 || ($when && ! $when($e))) { + throw $e; + } + + if ($sleepMilliseconds) { + usleep(value($sleepMilliseconds, $attempts) * 1000); + } + + goto beginning; + } + } +} + +if (! function_exists('tap')) { + /** + * Call the given Closure with the given value then return the value. + * + * @param mixed $value + * @param callable|null $callback + * @return mixed + */ + function tap($value, $callback = null) + { + if (is_null($callback)) { + return new HigherOrderTapProxy($value); + } + + $callback($value); + + return $value; + } +} + +if (! function_exists('throw_if')) { + /** + * Throw the given exception if the given condition is true. + * + * @param mixed $condition + * @param \Throwable|string $exception + * @param mixed ...$parameters + * @return mixed + * + * @throws \Throwable + */ + function throw_if($condition, $exception = 'RuntimeException', ...$parameters) + { + if ($condition) { + if (is_string($exception) && class_exists($exception)) { + $exception = new $exception(...$parameters); + } + + throw is_string($exception) ? new RuntimeException($exception) : $exception; + } + + return $condition; + } +} + +if (! function_exists('throw_unless')) { + /** + * Throw the given exception unless the given condition is true. + * + * @param mixed $condition + * @param \Throwable|string $exception + * @param mixed ...$parameters + * @return mixed + * + * @throws \Throwable + */ + function throw_unless($condition, $exception = 'RuntimeException', ...$parameters) + { + throw_if(! $condition, $exception, ...$parameters); + + return $condition; + } +} + +if (! function_exists('trait_uses_recursive')) { + /** + * Returns all traits used by a trait and its traits. + * + * @param string $trait + * @return array + */ + function trait_uses_recursive($trait) + { + $traits = class_uses($trait) ?: []; + + foreach ($traits as $trait) { + $traits += trait_uses_recursive($trait); + } + + return $traits; + } +} + +if (! function_exists('transform')) { + /** + * Transform the given value if it is present. + * + * @param mixed $value + * @param callable $callback + * @param mixed $default + * @return mixed|null + */ + function transform($value, callable $callback, $default = null) + { + if (filled($value)) { + return $callback($value); + } + + if (is_callable($default)) { + return $default($value); + } + + return $default; + } +} + +if (! function_exists('windows_os')) { + /** + * Determine whether the current environment is Windows based. + * + * @return bool + */ + function windows_os() + { + return PHP_OS_FAMILY === 'Windows'; + } +} + +if (! function_exists('with')) { + /** + * Return the given value, optionally passed through the given callback. + * + * @param mixed $value + * @param callable|null $callback + * @return mixed + */ + function with($value, callable $callback = null) + { + return is_null($callback) ? $value : $callback($value); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/LICENSE b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/LICENSE new file mode 100644 index 00000000000..6de45ebf882 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) Brian Nesbitt + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/composer.json b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/composer.json new file mode 100644 index 00000000000..cdbbc1219d8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/composer.json @@ -0,0 +1,120 @@ +{ + "name": "nesbot/carbon", + "description": "An API extension for DateTime that supports 281 different languages.", + "license": "MIT", + "type": "library", + "keywords": [ + "date", + "time", + "DateTime" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "homepage": "https://carbon.nesbot.com", + "support": { + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon", + "docs": "https://carbon.nesbot.com/docs" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + } + ], + "require": { + "php": "^7.1.8 || ^8.0", + "ext-json": "*", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.0", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "minimum-stability": "dev", + "prefer-stable": true, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + }, + "files": [ + "tests/Laravel/ServiceProvider.php" + ] + }, + "bin": [ + "bin/carbon" + ], + "config": { + "allow-plugins": { + "phpstan/extension-installer": true, + "composer/package-versions-deprecated": true + }, + "process-timeout": 0, + "sort-packages": true + }, + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "scripts": { + "phpcs": "php-cs-fixer fix -v --diff --dry-run", + "phpdoc": "php phpdoc.php", + "phpmd": "phpmd src text /phpmd.xml", + "phpstan": "phpstan analyse --configuration phpstan.neon", + "phpunit": "phpunit --verbose", + "style-check": [ + "@phpcs", + "@phpstan", + "@phpmd" + ], + "test": [ + "@phpunit", + "@style-check" + ] + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/extension.neon b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/extension.neon new file mode 100644 index 00000000000..33bf794fc6c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/extension.neon @@ -0,0 +1,5 @@ +services: + - + class: Carbon\PHPStan\MacroExtension + tags: + - phpstan.broker.methodsClassReflectionExtension diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php new file mode 100644 index 00000000000..1504b0abc06 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use ReflectionMethod; + +if (!class_exists(AbstractReflectionMacro::class, false)) { + abstract class AbstractReflectionMacro extends AbstractMacro + { + /** + * {@inheritdoc} + */ + public function getReflection(): ?ReflectionMethod + { + return $this->reflectionFunction instanceof ReflectionMethod + ? $this->reflectionFunction + : null; + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php new file mode 100644 index 00000000000..450dceb8030 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection; +use ReflectionMethod; + +if (!class_exists(AbstractReflectionMacro::class, false)) { + abstract class AbstractReflectionMacro extends AbstractMacro + { + /** + * {@inheritdoc} + */ + public function getReflection(): ?Reflection\Adapter\ReflectionMethod + { + if ($this->reflectionFunction instanceof Reflection\Adapter\ReflectionMethod) { + return $this->reflectionFunction; + } + + return $this->reflectionFunction instanceof ReflectionMethod + ? new Reflection\Adapter\ReflectionMethod( + Reflection\ReflectionMethod::createFromName( + $this->reflectionFunction->getDeclaringClass()->getName(), + $this->reflectionFunction->getName() + ) + ) + : null; + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php new file mode 100644 index 00000000000..47002c47f32 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +if (!class_exists(LazyMacro::class, false)) { + abstract class LazyMacro extends AbstractReflectionMacro + { + /** + * {@inheritdoc} + */ + public function getFileName(): ?string + { + return $this->reflectionFunction->getFileName(); + } + + /** + * {@inheritdoc} + */ + public function getStartLine(): ?int + { + return $this->reflectionFunction->getStartLine(); + } + + /** + * {@inheritdoc} + */ + public function getEndLine(): ?int + { + return $this->reflectionFunction->getEndLine(); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php new file mode 100644 index 00000000000..c47d70ed5e9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +if (!class_exists(LazyMacro::class, false)) { + abstract class LazyMacro extends AbstractReflectionMacro + { + /** + * {@inheritdoc} + * + * @return string|false + */ + public function getFileName() + { + return $this->reflectionFunction->getFileName(); + } + + /** + * {@inheritdoc} + * + * @return int|false + */ + public function getStartLine() + { + return $this->reflectionFunction->getStartLine(); + } + + /** + * {@inheritdoc} + * + * @return int|false + */ + public function getEndLine() + { + return $this->reflectionFunction->getEndLine(); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/TranslatorStrongType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/TranslatorStrongType.php new file mode 100644 index 00000000000..d35308a66c2 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/TranslatorStrongType.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +if (!class_exists(LazyTranslator::class, false)) { + class LazyTranslator extends AbstractTranslator implements TranslatorStrongTypeInterface + { + public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string + { + return $this->translate($id, $parameters, $domain, $locale); + } + + public function getFromCatalogue(MessageCatalogueInterface $catalogue, string $id, string $domain = 'messages') + { + $messages = $this->getPrivateProperty($catalogue, 'messages'); + + if (isset($messages[$domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX][$id])) { + return $messages[$domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX][$id]; + } + + if (isset($messages[$domain][$id])) { + return $messages[$domain][$id]; + } + + $fallbackCatalogue = $this->getPrivateProperty($catalogue, 'fallbackCatalogue'); + + if ($fallbackCatalogue !== null) { + return $this->getFromCatalogue($fallbackCatalogue, $id, $domain); + } + + return $id; + } + + private function getPrivateProperty($instance, string $field) + { + return (function (string $field) { + return $this->$field; + })->call($instance, $field); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/TranslatorWeakType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/TranslatorWeakType.php new file mode 100644 index 00000000000..94dbdc30ae4 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/lazy/Carbon/TranslatorWeakType.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +if (!class_exists(LazyTranslator::class, false)) { + class LazyTranslator extends AbstractTranslator + { + /** + * Returns the translation. + * + * @param string|null $id + * @param array $parameters + * @param string|null $domain + * @param string|null $locale + * + * @return string + */ + public function trans($id, array $parameters = [], $domain = null, $locale = null) + { + return $this->translate($id, $parameters, $domain, $locale); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/readme.md b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/readme.md new file mode 100644 index 00000000000..100e60f200c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/readme.md @@ -0,0 +1,148 @@ +# Carbon + +[![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon) +[![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon) +[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://actions-badge.atrox.dev/briannesbitt/Carbon/goto) +[![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master) +[![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme) + +An international PHP extension for DateTime. [https://carbon.nesbot.com](https://carbon.nesbot.com) + +```php +toDateTimeString()); +printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); //implicit __toString() +$tomorrow = Carbon::now()->addDay(); +$lastWeek = Carbon::now()->subWeek(); +$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4); + +$officialDate = Carbon::now()->toRfc2822String(); + +$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age; + +$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London'); + +$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT'); + +// Don't really want this to happen so mock now +Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1)); + +// comparisons are always done in UTC +if (Carbon::now()->gte($internetWillBlowUpOn)) { + die(); +} + +// Phew! Return to normal behaviour +Carbon::setTestNow(); + +if (Carbon::now()->isWeekend()) { + echo 'Party!'; +} +// Over 200 languages (and over 500 regional variants) supported: +echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago' +echo Carbon::now()->subMinutes(2)->locale('zh_CN')->diffForHumans(); // '2分钟前' +echo Carbon::parse('2019-07-23 14:51')->isoFormat('LLLL'); // 'Tuesday, July 23, 2019 2:51 PM' +echo Carbon::parse('2019-07-23 14:51')->locale('fr_FR')->isoFormat('LLLL'); // 'mardi 23 juillet 2019 14:51' + +// ... but also does 'from now', 'after' and 'before' +// rolling up to seconds, minutes, hours, days, months, years + +$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays(); +``` + +[Get supported nesbot/carbon with the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme) + +## Installation + +### With Composer + +``` +$ composer require nesbot/carbon +``` + +```json +{ + "require": { + "nesbot/carbon": "^2.16" + } +} +``` + +```php + + +### Translators + +[Thanks to people helping us to translate Carbon in so many languages](https://carbon.nesbot.com/contribute/translators/) + +### Sponsors + +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. + + + + + + + + + + + + + +[[Become a sponsor](https://opencollective.com/Carbon#sponsor)] + +### Backers + +Thank you to all our backers! 🙏 + + + +[[Become a backer](https://opencollective.com/Carbon#backer)] + +## Carbon for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of ``Carbon`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php new file mode 100644 index 00000000000..949e159beef --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php @@ -0,0 +1,397 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Closure; +use ReflectionException; +use ReflectionFunction; +use Symfony\Component\Translation; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; +use Symfony\Component\Translation\Loader\ArrayLoader; + +abstract class AbstractTranslator extends Translation\Translator +{ + /** + * Translator singletons for each language. + * + * @var array + */ + protected static $singletons = []; + + /** + * List of custom localized messages. + * + * @var array + */ + protected $messages = []; + + /** + * List of custom directories that contain translation files. + * + * @var string[] + */ + protected $directories = []; + + /** + * Set to true while constructing. + * + * @var bool + */ + protected $initializing = false; + + /** + * List of locales aliases. + * + * @var string[] + */ + protected $aliases = [ + 'me' => 'sr_Latn_ME', + 'scr' => 'sh', + ]; + + /** + * Return a singleton instance of Translator. + * + * @param string|null $locale optional initial locale ("en" - english by default) + * + * @return static + */ + public static function get($locale = null) + { + $locale = $locale ?: 'en'; + $key = static::class === Translator::class ? $locale : static::class.'|'.$locale; + + if (!isset(static::$singletons[$key])) { + static::$singletons[$key] = new static($locale); + } + + return static::$singletons[$key]; + } + + public function __construct($locale, MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false) + { + parent::setLocale($locale); + $this->initializing = true; + $this->directories = [__DIR__.'/Lang']; + $this->addLoader('array', new ArrayLoader()); + parent::__construct($locale, $formatter, $cacheDir, $debug); + $this->initializing = false; + } + + /** + * Returns the list of directories translation files are searched in. + * + * @return array + */ + public function getDirectories(): array + { + return $this->directories; + } + + /** + * Set list of directories translation files are searched in. + * + * @param array $directories new directories list + * + * @return $this + */ + public function setDirectories(array $directories) + { + $this->directories = $directories; + + return $this; + } + + /** + * Add a directory to the list translation files are searched in. + * + * @param string $directory new directory + * + * @return $this + */ + public function addDirectory(string $directory) + { + $this->directories[] = $directory; + + return $this; + } + + /** + * Remove a directory from the list translation files are searched in. + * + * @param string $directory directory path + * + * @return $this + */ + public function removeDirectory(string $directory) + { + $search = rtrim(strtr($directory, '\\', '/'), '/'); + + return $this->setDirectories(array_filter($this->getDirectories(), function ($item) use ($search) { + return rtrim(strtr($item, '\\', '/'), '/') !== $search; + })); + } + + /** + * Reset messages of a locale (all locale if no locale passed). + * Remove custom messages and reload initial messages from matching + * file in Lang directory. + * + * @param string|null $locale + * + * @return bool + */ + public function resetMessages($locale = null) + { + if ($locale === null) { + $this->messages = []; + + return true; + } + + foreach ($this->getDirectories() as $directory) { + $data = @include sprintf('%s/%s.php', rtrim($directory, '\\/'), $locale); + + if ($data !== false) { + $this->messages[$locale] = $data; + $this->addResource('array', $this->messages[$locale], $locale); + + return true; + } + } + + return false; + } + + /** + * Returns the list of files matching a given locale prefix (or all if empty). + * + * @param string $prefix prefix required to filter result + * + * @return array + */ + public function getLocalesFiles($prefix = '') + { + $files = []; + + foreach ($this->getDirectories() as $directory) { + $directory = rtrim($directory, '\\/'); + + foreach (glob("$directory/$prefix*.php") as $file) { + $files[] = $file; + } + } + + return array_unique($files); + } + + /** + * Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * + * @param string $prefix prefix required to filter result + * + * @return array + */ + public function getAvailableLocales($prefix = '') + { + $locales = []; + foreach ($this->getLocalesFiles($prefix) as $file) { + $locales[] = substr($file, strrpos($file, '/') + 1, -4); + } + + return array_unique(array_merge($locales, array_keys($this->messages))); + } + + protected function translate(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string + { + if ($domain === null) { + $domain = 'messages'; + } + + $catalogue = $this->getCatalogue($locale); + $format = $this instanceof TranslatorStrongTypeInterface + ? $this->getFromCatalogue($catalogue, (string) $id, $domain) + : $this->getCatalogue($locale)->get((string) $id, $domain); // @codeCoverageIgnore + + if ($format instanceof Closure) { + // @codeCoverageIgnoreStart + try { + $count = (new ReflectionFunction($format))->getNumberOfRequiredParameters(); + } catch (ReflectionException $exception) { + $count = 0; + } + // @codeCoverageIgnoreEnd + + return $format( + ...array_values($parameters), + ...array_fill(0, max(0, $count - \count($parameters)), null) + ); + } + + return parent::trans($id, $parameters, $domain, $locale); + } + + /** + * Init messages language from matching file in Lang directory. + * + * @param string $locale + * + * @return bool + */ + protected function loadMessagesFromFile($locale) + { + return isset($this->messages[$locale]) || $this->resetMessages($locale); + } + + /** + * Set messages of a locale and take file first if present. + * + * @param string $locale + * @param array $messages + * + * @return $this + */ + public function setMessages($locale, $messages) + { + $this->loadMessagesFromFile($locale); + $this->addResource('array', $messages, $locale); + $this->messages[$locale] = array_merge( + $this->messages[$locale] ?? [], + $messages + ); + + return $this; + } + + /** + * Set messages of the current locale and take file first if present. + * + * @param array $messages + * + * @return $this + */ + public function setTranslations($messages) + { + return $this->setMessages($this->getLocale(), $messages); + } + + /** + * Get messages of a locale, if none given, return all the + * languages. + * + * @param string|null $locale + * + * @return array + */ + public function getMessages($locale = null) + { + return $locale === null ? $this->messages : $this->messages[$locale]; + } + + /** + * Set the current translator locale and indicate if the source locale file exists + * + * @param string $locale locale ex. en + * + * @return bool + */ + public function setLocale($locale) + { + $locale = preg_replace_callback('/[-_]([a-z]{2,}|\d{2,})/', function ($matches) { + // _2-letters or YUE is a region, _3+-letters is a variant + $upper = strtoupper($matches[1]); + + if ($upper === 'YUE' || $upper === 'ISO' || \strlen($upper) < 3) { + return "_$upper"; + } + + return '_'.ucfirst($matches[1]); + }, strtolower($locale)); + + $previousLocale = $this->getLocale(); + + if ($previousLocale === $locale && isset($this->messages[$locale])) { + return true; + } + + unset(static::$singletons[$previousLocale]); + + if ($locale === 'auto') { + $completeLocale = setlocale(LC_TIME, '0'); + $locale = preg_replace('/^([^_.-]+).*$/', '$1', $completeLocale); + $locales = $this->getAvailableLocales($locale); + + $completeLocaleChunks = preg_split('/[_.-]+/', $completeLocale); + + $getScore = function ($language) use ($completeLocaleChunks) { + return self::compareChunkLists($completeLocaleChunks, preg_split('/[_.-]+/', $language)); + }; + + usort($locales, function ($first, $second) use ($getScore) { + return $getScore($second) <=> $getScore($first); + }); + + $locale = $locales[0]; + } + + if (isset($this->aliases[$locale])) { + $locale = $this->aliases[$locale]; + } + + // If subtag (ex: en_CA) first load the macro (ex: en) to have a fallback + if (str_contains($locale, '_') && + $this->loadMessagesFromFile($macroLocale = preg_replace('/^([^_]+).*$/', '$1', $locale)) + ) { + parent::setLocale($macroLocale); + } + + if (!$this->loadMessagesFromFile($locale) && !$this->initializing) { + return false; + } + + parent::setLocale($locale); + + return true; + } + + /** + * Show locale on var_dump(). + * + * @return array + */ + public function __debugInfo() + { + return [ + 'locale' => $this->getLocale(), + ]; + } + + private static function compareChunkLists($referenceChunks, $chunks) + { + $score = 0; + + foreach ($referenceChunks as $index => $chunk) { + if (!isset($chunks[$index])) { + $score++; + + continue; + } + + if (strtolower($chunks[$index]) === strtolower($chunk)) { + $score += 10; + } + } + + return $score; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Carbon.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Carbon.php new file mode 100644 index 00000000000..e327590e2cd --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Carbon.php @@ -0,0 +1,523 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Traits\Date; +use Carbon\Traits\DeprecatedProperties; +use DateTime; +use DateTimeInterface; +use DateTimeZone; + +/** + * A simple API extension for DateTime. + * + * @mixin DeprecatedProperties + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method $this years(int $value) Set current instance year to the given value. + * @method $this year(int $value) Set current instance year to the given value. + * @method $this setYears(int $value) Set current instance year to the given value. + * @method $this setYear(int $value) Set current instance year to the given value. + * @method $this months(int $value) Set current instance month to the given value. + * @method $this month(int $value) Set current instance month to the given value. + * @method $this setMonths(int $value) Set current instance month to the given value. + * @method $this setMonth(int $value) Set current instance month to the given value. + * @method $this days(int $value) Set current instance day to the given value. + * @method $this day(int $value) Set current instance day to the given value. + * @method $this setDays(int $value) Set current instance day to the given value. + * @method $this setDay(int $value) Set current instance day to the given value. + * @method $this hours(int $value) Set current instance hour to the given value. + * @method $this hour(int $value) Set current instance hour to the given value. + * @method $this setHours(int $value) Set current instance hour to the given value. + * @method $this setHour(int $value) Set current instance hour to the given value. + * @method $this minutes(int $value) Set current instance minute to the given value. + * @method $this minute(int $value) Set current instance minute to the given value. + * @method $this setMinutes(int $value) Set current instance minute to the given value. + * @method $this setMinute(int $value) Set current instance minute to the given value. + * @method $this seconds(int $value) Set current instance second to the given value. + * @method $this second(int $value) Set current instance second to the given value. + * @method $this setSeconds(int $value) Set current instance second to the given value. + * @method $this setSecond(int $value) Set current instance second to the given value. + * @method $this millis(int $value) Set current instance millisecond to the given value. + * @method $this milli(int $value) Set current instance millisecond to the given value. + * @method $this setMillis(int $value) Set current instance millisecond to the given value. + * @method $this setMilli(int $value) Set current instance millisecond to the given value. + * @method $this milliseconds(int $value) Set current instance millisecond to the given value. + * @method $this millisecond(int $value) Set current instance millisecond to the given value. + * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method $this setMillisecond(int $value) Set current instance millisecond to the given value. + * @method $this micros(int $value) Set current instance microsecond to the given value. + * @method $this micro(int $value) Set current instance microsecond to the given value. + * @method $this setMicros(int $value) Set current instance microsecond to the given value. + * @method $this setMicro(int $value) Set current instance microsecond to the given value. + * @method $this microseconds(int $value) Set current instance microsecond to the given value. + * @method $this microsecond(int $value) Set current instance microsecond to the given value. + * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method $this addYear() Add one year to the instance (using date interval). + * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method $this subYear() Sub one year to the instance (using date interval). + * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method $this addMonth() Add one month to the instance (using date interval). + * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method $this subMonth() Sub one month to the instance (using date interval). + * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method $this addDay() Add one day to the instance (using date interval). + * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method $this subDay() Sub one day to the instance (using date interval). + * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method $this addHour() Add one hour to the instance (using date interval). + * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method $this subHour() Sub one hour to the instance (using date interval). + * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method $this addMinute() Add one minute to the instance (using date interval). + * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method $this subMinute() Sub one minute to the instance (using date interval). + * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method $this addSecond() Add one second to the instance (using date interval). + * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method $this subSecond() Sub one second to the instance (using date interval). + * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMilli() Add one millisecond to the instance (using date interval). + * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMilli() Sub one millisecond to the instance (using date interval). + * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMillisecond() Add one millisecond to the instance (using date interval). + * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMillisecond() Sub one millisecond to the instance (using date interval). + * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicro() Add one microsecond to the instance (using date interval). + * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicro() Sub one microsecond to the instance (using date interval). + * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicrosecond() Add one microsecond to the instance (using date interval). + * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method $this addMillennium() Add one millennium to the instance (using date interval). + * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method $this subMillennium() Sub one millennium to the instance (using date interval). + * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method $this addCentury() Add one century to the instance (using date interval). + * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method $this subCentury() Sub one century to the instance (using date interval). + * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method $this addDecade() Add one decade to the instance (using date interval). + * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method $this subDecade() Sub one decade to the instance (using date interval). + * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method $this addQuarter() Add one quarter to the instance (using date interval). + * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method $this subQuarter() Sub one quarter to the instance (using date interval). + * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method $this addWeek() Add one week to the instance (using date interval). + * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method $this subWeek() Sub one week to the instance (using date interval). + * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method $this addWeekday() Add one weekday to the instance (using date interval). + * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method $this subWeekday() Sub one weekday to the instance (using date interval). + * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicro() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMilli() Add one millisecond to the instance (using timestamp). + * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealSecond() Add one second to the instance (using timestamp). + * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMinute() Add one minute to the instance (using timestamp). + * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method $this addRealHour() Add one hour to the instance (using timestamp). + * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method $this subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDay() Add one day to the instance (using timestamp). + * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method $this addRealWeek() Add one week to the instance (using timestamp). + * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method $this subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMonth() Add one month to the instance (using timestamp). + * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method $this addRealQuarter() Add one quarter to the instance (using timestamp). + * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method $this addRealYear() Add one year to the instance (using timestamp). + * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method $this subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDecade() Add one decade to the instance (using timestamp). + * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method $this addRealCentury() Add one century to the instance (using timestamp). + * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method $this subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillennium() Add one millennium to the instance (using timestamp). + * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static Carbon|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new Carbon object according to the specified format. + * @method static Carbon __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * + * + */ +class Carbon extends DateTime implements CarbonInterface +{ + use Date; + + /** + * Returns true if the current class/instance is mutable. + * + * @return bool + */ + public static function isMutable() + { + return true; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php new file mode 100644 index 00000000000..1ce967b255b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use DateTimeInterface; + +interface CarbonConverterInterface +{ + public function convertDate(DateTimeInterface $dateTime, bool $negated = false): CarbonInterface; +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php new file mode 100644 index 00000000000..6d1194ee780 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php @@ -0,0 +1,582 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Traits\Date; +use Carbon\Traits\DeprecatedProperties; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; + +/** + * A simple API extension for DateTimeImmutable. + * + * @mixin DeprecatedProperties + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonImmutable years(int $value) Set current instance year to the given value. + * @method CarbonImmutable year(int $value) Set current instance year to the given value. + * @method CarbonImmutable setYears(int $value) Set current instance year to the given value. + * @method CarbonImmutable setYear(int $value) Set current instance year to the given value. + * @method CarbonImmutable months(int $value) Set current instance month to the given value. + * @method CarbonImmutable month(int $value) Set current instance month to the given value. + * @method CarbonImmutable setMonths(int $value) Set current instance month to the given value. + * @method CarbonImmutable setMonth(int $value) Set current instance month to the given value. + * @method CarbonImmutable days(int $value) Set current instance day to the given value. + * @method CarbonImmutable day(int $value) Set current instance day to the given value. + * @method CarbonImmutable setDays(int $value) Set current instance day to the given value. + * @method CarbonImmutable setDay(int $value) Set current instance day to the given value. + * @method CarbonImmutable hours(int $value) Set current instance hour to the given value. + * @method CarbonImmutable hour(int $value) Set current instance hour to the given value. + * @method CarbonImmutable setHours(int $value) Set current instance hour to the given value. + * @method CarbonImmutable setHour(int $value) Set current instance hour to the given value. + * @method CarbonImmutable minutes(int $value) Set current instance minute to the given value. + * @method CarbonImmutable minute(int $value) Set current instance minute to the given value. + * @method CarbonImmutable setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonImmutable setMinute(int $value) Set current instance minute to the given value. + * @method CarbonImmutable seconds(int $value) Set current instance second to the given value. + * @method CarbonImmutable second(int $value) Set current instance second to the given value. + * @method CarbonImmutable setSeconds(int $value) Set current instance second to the given value. + * @method CarbonImmutable setSecond(int $value) Set current instance second to the given value. + * @method CarbonImmutable millis(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable milli(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable micros(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable micro(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addYear() Add one year to the instance (using date interval). + * @method CarbonImmutable subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subYear() Sub one year to the instance (using date interval). + * @method CarbonImmutable addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMonth() Add one month to the instance (using date interval). + * @method CarbonImmutable subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMonth() Sub one month to the instance (using date interval). + * @method CarbonImmutable addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addDay() Add one day to the instance (using date interval). + * @method CarbonImmutable subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subDay() Sub one day to the instance (using date interval). + * @method CarbonImmutable addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addHour() Add one hour to the instance (using date interval). + * @method CarbonImmutable subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subHour() Sub one hour to the instance (using date interval). + * @method CarbonImmutable addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMinute() Add one minute to the instance (using date interval). + * @method CarbonImmutable subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMinute() Sub one minute to the instance (using date interval). + * @method CarbonImmutable addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addSecond() Add one second to the instance (using date interval). + * @method CarbonImmutable subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subSecond() Sub one second to the instance (using date interval). + * @method CarbonImmutable addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonImmutable subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonImmutable addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonImmutable subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonImmutable addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonImmutable subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonImmutable addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonImmutable subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonImmutable addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonImmutable subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonImmutable addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addCentury() Add one century to the instance (using date interval). + * @method CarbonImmutable subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subCentury() Sub one century to the instance (using date interval). + * @method CarbonImmutable addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addDecade() Add one decade to the instance (using date interval). + * @method CarbonImmutable subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subDecade() Sub one decade to the instance (using date interval). + * @method CarbonImmutable addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonImmutable subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonImmutable addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addWeek() Add one week to the instance (using date interval). + * @method CarbonImmutable subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subWeek() Sub one week to the instance (using date interval). + * @method CarbonImmutable addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonImmutable subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonImmutable addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonImmutable subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonImmutable addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonImmutable subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonImmutable addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonImmutable subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonImmutable addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonImmutable subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonImmutable addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonImmutable subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonImmutable addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonImmutable subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonImmutable addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonImmutable subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonImmutable addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealDay() Add one day to the instance (using timestamp). + * @method CarbonImmutable subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonImmutable addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonImmutable subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonImmutable addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonImmutable subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonImmutable addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonImmutable subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonImmutable addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealYear() Add one year to the instance (using timestamp). + * @method CarbonImmutable subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonImmutable addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonImmutable subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonImmutable addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonImmutable subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonImmutable addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonImmutable subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonImmutable roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonImmutable roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonImmutable floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonImmutable floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonImmutable ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonImmutable ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonImmutable roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonImmutable roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonImmutable floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonImmutable floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonImmutable ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonImmutable ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonImmutable roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonImmutable roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonImmutable floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonImmutable floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonImmutable ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonImmutable ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonImmutable roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonImmutable roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonImmutable floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonImmutable floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonImmutable ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonImmutable ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonImmutable roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonImmutable roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonImmutable floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonImmutable floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonImmutable ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonImmutable ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonImmutable roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonImmutable roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonImmutable floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonImmutable floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonImmutable ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonImmutable ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonImmutable roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonImmutable roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonImmutable floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonImmutable floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonImmutable ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonImmutable ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonImmutable roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonImmutable roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonImmutable floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonImmutable floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonImmutable ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonImmutable ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonImmutable roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonImmutable roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonImmutable floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonImmutable floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonImmutable ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonImmutable ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonImmutable roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonImmutable roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonImmutable floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonImmutable floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonImmutable ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonImmutable ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonImmutable roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonImmutable roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonImmutable floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonImmutable floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonImmutable ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonImmutable ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonImmutable roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonImmutable roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonImmutable floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonImmutable floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonImmutable ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonImmutable ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static CarbonImmutable|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format. + * @method static CarbonImmutable __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * + * + */ +class CarbonImmutable extends DateTimeImmutable implements CarbonInterface +{ + use Date { + __clone as dateTraitClone; + } + + public function __clone() + { + $this->dateTraitClone(); + $this->endOfTime = false; + $this->startOfTime = false; + } + + /** + * Create a very old date representing start of time. + * + * @return static + */ + public static function startOfTime(): self + { + $date = static::parse('0001-01-01')->years(self::getStartOfTimeYear()); + $date->startOfTime = true; + + return $date; + } + + /** + * Create a very far date representing end of time. + * + * @return static + */ + public static function endOfTime(): self + { + $date = static::parse('9999-12-31 23:59:59.999999')->years(self::getEndOfTimeYear()); + $date->endOfTime = true; + + return $date; + } + + /** + * @codeCoverageIgnore + */ + private static function getEndOfTimeYear(): int + { + if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) { + return 145261681241552; + } + + // Remove if https://bugs.php.net/bug.php?id=81107 is fixed + if (version_compare(PHP_VERSION, '8.1.0-dev', '>=')) { + return 1118290769066902787; + } + + return PHP_INT_MAX; + } + + /** + * @codeCoverageIgnore + */ + private static function getStartOfTimeYear(): int + { + if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) { + return -135908816449551; + } + + // Remove if https://bugs.php.net/bug.php?id=81107 is fixed + if (version_compare(PHP_VERSION, '8.1.0-dev', '>=')) { + return -1118290769066898816; + } + + return max(PHP_INT_MIN, -9223372036854773760); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php new file mode 100644 index 00000000000..c3db85043aa --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php @@ -0,0 +1,5078 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use BadMethodCallException; +use Carbon\Exceptions\BadComparisonUnitException; +use Carbon\Exceptions\ImmutableException; +use Carbon\Exceptions\InvalidDateException; +use Carbon\Exceptions\InvalidFormatException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownMethodException; +use Carbon\Exceptions\UnknownSetterException; +use Closure; +use DateInterval; +use DateTime; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; +use JsonSerializable; +use ReflectionException; +use ReturnTypeWillChange; +use Symfony\Component\Translation\TranslatorInterface; +use Throwable; + +/** + * Common interface for Carbon and CarbonImmutable. + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonInterface years(int $value) Set current instance year to the given value. + * @method CarbonInterface year(int $value) Set current instance year to the given value. + * @method CarbonInterface setYears(int $value) Set current instance year to the given value. + * @method CarbonInterface setYear(int $value) Set current instance year to the given value. + * @method CarbonInterface months(int $value) Set current instance month to the given value. + * @method CarbonInterface month(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonths(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonth(int $value) Set current instance month to the given value. + * @method CarbonInterface days(int $value) Set current instance day to the given value. + * @method CarbonInterface day(int $value) Set current instance day to the given value. + * @method CarbonInterface setDays(int $value) Set current instance day to the given value. + * @method CarbonInterface setDay(int $value) Set current instance day to the given value. + * @method CarbonInterface hours(int $value) Set current instance hour to the given value. + * @method CarbonInterface hour(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHours(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHour(int $value) Set current instance hour to the given value. + * @method CarbonInterface minutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface minute(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinute(int $value) Set current instance minute to the given value. + * @method CarbonInterface seconds(int $value) Set current instance second to the given value. + * @method CarbonInterface second(int $value) Set current instance second to the given value. + * @method CarbonInterface setSeconds(int $value) Set current instance second to the given value. + * @method CarbonInterface setSecond(int $value) Set current instance second to the given value. + * @method CarbonInterface millis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface micros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface micro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addYear() Add one year to the instance (using date interval). + * @method CarbonInterface subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subYear() Sub one year to the instance (using date interval). + * @method CarbonInterface addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMonth() Add one month to the instance (using date interval). + * @method CarbonInterface subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMonth() Sub one month to the instance (using date interval). + * @method CarbonInterface addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDay() Add one day to the instance (using date interval). + * @method CarbonInterface subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDay() Sub one day to the instance (using date interval). + * @method CarbonInterface addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addHour() Add one hour to the instance (using date interval). + * @method CarbonInterface subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subHour() Sub one hour to the instance (using date interval). + * @method CarbonInterface addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMinute() Add one minute to the instance (using date interval). + * @method CarbonInterface subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMinute() Sub one minute to the instance (using date interval). + * @method CarbonInterface addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addSecond() Add one second to the instance (using date interval). + * @method CarbonInterface subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subSecond() Sub one second to the instance (using date interval). + * @method CarbonInterface addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonInterface subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonInterface addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addCentury() Add one century to the instance (using date interval). + * @method CarbonInterface subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subCentury() Sub one century to the instance (using date interval). + * @method CarbonInterface addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDecade() Add one decade to the instance (using date interval). + * @method CarbonInterface subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDecade() Sub one decade to the instance (using date interval). + * @method CarbonInterface addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonInterface subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonInterface addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeek() Add one week to the instance (using date interval). + * @method CarbonInterface subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeek() Sub one week to the instance (using date interval). + * @method CarbonInterface addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonInterface subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonInterface addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonInterface subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonInterface addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonInterface subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonInterface addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonInterface subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonInterface addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDay() Add one day to the instance (using timestamp). + * @method CarbonInterface subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonInterface addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonInterface subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonInterface addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonInterface subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonInterface addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonInterface subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonInterface addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealYear() Add one year to the instance (using timestamp). + * @method CarbonInterface subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonInterface addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonInterface subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonInterface addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonInterface subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonInterface addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonInterface subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonInterface roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonInterface ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * + * + */ +interface CarbonInterface extends DateTimeInterface, JsonSerializable +{ + /** + * Diff wording options(expressed in octal). + */ + public const NO_ZERO_DIFF = 01; + public const JUST_NOW = 02; + public const ONE_DAY_WORDS = 04; + public const TWO_DAY_WORDS = 010; + public const SEQUENTIAL_PARTS_ONLY = 020; + public const ROUND = 040; + public const FLOOR = 0100; + public const CEIL = 0200; + + /** + * Diff syntax options. + */ + public const DIFF_ABSOLUTE = 1; // backward compatibility with true + public const DIFF_RELATIVE_AUTO = 0; // backward compatibility with false + public const DIFF_RELATIVE_TO_NOW = 2; + public const DIFF_RELATIVE_TO_OTHER = 3; + + /** + * Translate string options. + */ + public const TRANSLATE_MONTHS = 1; + public const TRANSLATE_DAYS = 2; + public const TRANSLATE_UNITS = 4; + public const TRANSLATE_MERIDIEM = 8; + public const TRANSLATE_DIFF = 0x10; + public const TRANSLATE_ALL = self::TRANSLATE_MONTHS | self::TRANSLATE_DAYS | self::TRANSLATE_UNITS | self::TRANSLATE_MERIDIEM | self::TRANSLATE_DIFF; + + /** + * The day constants. + */ + public const SUNDAY = 0; + public const MONDAY = 1; + public const TUESDAY = 2; + public const WEDNESDAY = 3; + public const THURSDAY = 4; + public const FRIDAY = 5; + public const SATURDAY = 6; + + /** + * The month constants. + * These aren't used by Carbon itself but exist for + * convenience sake alone. + */ + public const JANUARY = 1; + public const FEBRUARY = 2; + public const MARCH = 3; + public const APRIL = 4; + public const MAY = 5; + public const JUNE = 6; + public const JULY = 7; + public const AUGUST = 8; + public const SEPTEMBER = 9; + public const OCTOBER = 10; + public const NOVEMBER = 11; + public const DECEMBER = 12; + + /** + * Number of X in Y. + */ + public const YEARS_PER_MILLENNIUM = 1000; + public const YEARS_PER_CENTURY = 100; + public const YEARS_PER_DECADE = 10; + public const MONTHS_PER_YEAR = 12; + public const MONTHS_PER_QUARTER = 3; + public const QUARTERS_PER_YEAR = 4; + public const WEEKS_PER_YEAR = 52; + public const WEEKS_PER_MONTH = 4; + public const DAYS_PER_YEAR = 365; + public const DAYS_PER_WEEK = 7; + public const HOURS_PER_DAY = 24; + public const MINUTES_PER_HOUR = 60; + public const SECONDS_PER_MINUTE = 60; + public const MILLISECONDS_PER_SECOND = 1000; + public const MICROSECONDS_PER_MILLISECOND = 1000; + public const MICROSECONDS_PER_SECOND = 1000000; + + /** + * Special settings to get the start of week from current locale culture. + */ + public const WEEK_DAY_AUTO = 'auto'; + + /** + * RFC7231 DateTime format. + * + * @var string + */ + public const RFC7231_FORMAT = 'D, d M Y H:i:s \G\M\T'; + + /** + * Default format to use for __toString method when type juggling occurs. + * + * @var string + */ + public const DEFAULT_TO_STRING_FORMAT = 'Y-m-d H:i:s'; + + /** + * Format for converting mocked time, includes microseconds. + * + * @var string + */ + public const MOCK_DATETIME_FORMAT = 'Y-m-d H:i:s.u'; + + /** + * Pattern detection for ->isoFormat and ::createFromIsoFormat. + * + * @var string + */ + public const ISO_FORMAT_REGEXP = '(O[YMDHhms]|[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?|g{1,5}|G{1,5}|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?)'; + + // + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws UnknownMethodException|BadMethodCallException|ReflectionException|Throwable + * + * @return mixed + */ + public function __call($method, $parameters); + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws BadMethodCallException + * + * @return mixed + */ + public static function __callStatic($method, $parameters); + + /** + * Update constructedObjectId on cloned. + */ + public function __clone(); + + /** + * Create a new Carbon instance. + * + * Please see the testing aids section (specifically static::setTestNow()) + * for more on the possibility of this constructor returning a test instance. + * + * @param DateTimeInterface|string|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + */ + public function __construct($time = null, $tz = null); + + /** + * Show truthy properties on var_dump(). + * + * @return array + */ + public function __debugInfo(); + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function __get($name); + + /** + * Check if an attribute exists on the object + * + * @param string $name + * + * @return bool + */ + public function __isset($name); + + /** + * Set a part of the Carbon object + * + * @param string $name + * @param string|int|DateTimeZone $value + * + * @throws UnknownSetterException|ReflectionException + * + * @return void + */ + public function __set($name, $value); + + /** + * The __set_state handler. + * + * @param string|array $dump + * + * @return static + */ + #[ReturnTypeWillChange] + public static function __set_state($dump); + + /** + * Returns the list of properties to dump on serialize() called on. + * + * @return array + */ + public function __sleep(); + + /** + * Format the instance as a string using the set format + * + * @example + * ``` + * echo Carbon::now(); // Carbon instances can be casted to string + * ``` + * + * @return string + */ + public function __toString(); + + /** + * Add given units or interval to the current instance. + * + * @example $date->add('hour', 3) + * @example $date->add(15, 'days') + * @example $date->add(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function add($unit, $value = 1, $overflow = null); + + /** + * Add seconds to the instance using timestamp. Positive $value travels + * forward while negative $value travels into the past. + * + * @param string $unit + * @param int $value + * + * @return static + */ + public function addRealUnit($unit, $value = 1); + + /** + * Add given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function addUnit($unit, $value = 1, $overflow = null); + + /** + * Add any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to add to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function addUnitNoOverflow($valueUnit, $value, $overflowUnit); + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function ago($syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Modify the current instance to the average of a given instance (default now) and the current instance + * (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date + * + * @return static + */ + public function average($date = null); + + /** + * Clone the current instance if it's mutable. + * + * This method is convenient to ensure you don't mutate the initial object + * but avoid to make a useless copy of it if it's already immutable. + * + * @return static + */ + public function avoidMutation(); + + /** + * Determines if the instance is between two others. + * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function between($date1, $date2, $equal = true): bool; + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenExcluded($date1, $date2): bool; + + /** + * Determines if the instance is between two others, bounds included. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenIncluded($date1, $date2): bool; + + /** + * Returns either day of week + time (e.g. "Last Friday at 3:30 PM") if reference time is within 7 days, + * or a calendar date (e.g. "10/29/2017") otherwise. + * + * Language, date and time formats will change according to the current locale. + * + * @param Carbon|\DateTimeInterface|string|null $referenceTime + * @param array $formats + * + * @return string + */ + public function calendar($referenceTime = null, array $formats = []); + + /** + * Checks if the (date)time string is in a given format and valid to create a + * new instance. + * + * @example + * ``` + * Carbon::canBeCreatedFromFormat('11:12:45', 'h:i:s'); // true + * Carbon::canBeCreatedFromFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function canBeCreatedFromFormat($date, $format); + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|DateTimeInterface|string|null $date + * + * @return static + */ + public function carbonize($date = null); + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateTimeInterface + */ + public function cast(string $className); + + /** + * Ceil the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function ceil($precision = 1); + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function ceilUnit($unit, $precision = 1); + + /** + * Ceil the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function ceilWeek($weekStartsAt = null); + + /** + * Similar to native modify() method of DateTime but can handle more grammars. + * + * @example + * ``` + * echo Carbon::now()->change('next 2pm'); + * ``` + * + * @link https://php.net/manual/en/datetime.modify.php + * + * @param string $modifier + * + * @return static + */ + public function change($modifier); + + /** + * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested. + * foreach ($date as $_) {} + * serializer($date) + * var_export($date) + * get_object_vars($date) + */ + public function cleanupDumpProperties(); + + /** + * @alias copy + * + * Get a copy of the instance. + * + * @return static + */ + public function clone(); + + /** + * Get the closest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function closest($date1, $date2); + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy(); + + /** + * Create a new Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null); + + /** + * Create a Carbon instance from just a date. The time portion is set to now. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromDate($year = null, $month = null, $day = null, $tz = null); + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + #[ReturnTypeWillChange] + public static function createFromFormat($format, $time, $tz = null); + + /** + * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz optional timezone + * @param string|null $locale locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use) + * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null); + + /** + * Create a Carbon instance from a specific format and a string in a given language. + * + * @param string $format Datetime format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleFormat($format, $locale, $time, $tz = null); + + /** + * Create a Carbon instance from a specific ISO format and a string in a given language. + * + * @param string $format Datetime ISO format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null); + + /** + * Create a Carbon instance from just a time. The date portion is set to today. + * + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null); + + /** + * Create a Carbon instance from a time string. The date portion is set to today. + * + * @param string $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTimeString($time, $tz = null); + + /** + * Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestamp($timestamp, $tz = null); + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestampMs($timestamp, $tz = null); + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampMsUTC($timestamp); + + /** + * Create a Carbon instance from an timestamp keeping the timezone to UTC. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampUTC($timestamp); + + /** + * Create a Carbon instance from just a date. The time portion is set to midnight. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null); + + /** + * Create a new safe Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidDateException + * + * @return static|false + */ + public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null); + + /** + * Create a new Carbon instance from a specific date and time using strict validation. + * + * @see create() + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null); + + /** + * Get/set the day of year. + * + * @param int|null $value new value for day of year if using as setter. + * + * @return static|int + */ + public function dayOfYear($value = null); + + /** + * Get the difference as a CarbonInterval instance. + * Return relative interval (negative if $absolute flag is not set to true and the given date is before + * current one). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return CarbonInterval + */ + public function diffAsCarbonInterval($date = null, $absolute = true); + + /** + * Get the difference by the given interval using a filter closure. + * + * @param CarbonInterval $ci An interval to traverse by + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true); + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @example + * ``` + * echo Carbon::tomorrow()->diffForHumans() . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . "\n"; + * ``` + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'skip' entry, list of units to skip (array of strings or a single string, + * ` it can be the unit name (singular or plural) or its shortcut + * ` (y, m, w, d, h, min, s, ms, µs). + * - 'aUnit' entry, prefer "an hour" over "1 hour" if true + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get the difference in days rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDays($date = null, $absolute = true); + + /** + * Get the difference in days using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true); + + /** + * Get the difference in hours rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHours($date = null, $absolute = true); + + /** + * Get the difference in hours using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true); + + /** + * Get the difference in microseconds. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMicroseconds($date = null, $absolute = true); + + /** + * Get the difference in milliseconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMilliseconds($date = null, $absolute = true); + + /** + * Get the difference in minutes rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMinutes($date = null, $absolute = true); + + /** + * Get the difference in months rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMonths($date = null, $absolute = true); + + /** + * Get the difference in quarters rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInQuarters($date = null, $absolute = true); + + /** + * Get the difference in hours rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealHours($date = null, $absolute = true); + + /** + * Get the difference in microseconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMicroseconds($date = null, $absolute = true); + + /** + * Get the difference in milliseconds rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMilliseconds($date = null, $absolute = true); + + /** + * Get the difference in minutes rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMinutes($date = null, $absolute = true); + + /** + * Get the difference in seconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealSeconds($date = null, $absolute = true); + + /** + * Get the difference in seconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInSeconds($date = null, $absolute = true); + + /** + * Get the difference in weekdays rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekdays($date = null, $absolute = true); + + /** + * Get the difference in weekend days using a filter rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekendDays($date = null, $absolute = true); + + /** + * Get the difference in weeks rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeeks($date = null, $absolute = true); + + /** + * Get the difference in years + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInYears($date = null, $absolute = true); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function disableHumanDiffOption($humanDiffOption); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function enableHumanDiffOption($humanDiffOption); + + /** + * Modify to end of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function endOf($unit, ...$params); + + /** + * Resets the date to end of the century and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury(); + * ``` + * + * @return static + */ + public function endOfCentury(); + + /** + * Resets the time to 23:59:59.999999 end of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay(); + * ``` + * + * @return static + */ + public function endOfDay(); + + /** + * Resets the date to end of the decade and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade(); + * ``` + * + * @return static + */ + public function endOfDecade(); + + /** + * Modify to end of current hour, minutes and seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour(); + * ``` + * + * @return static + */ + public function endOfHour(); + + /** + * Resets the date to end of the millennium and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium(); + * ``` + * + * @return static + */ + public function endOfMillennium(); + + /** + * Modify to end of current minute, seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute(); + * ``` + * + * @return static + */ + public function endOfMinute(); + + /** + * Resets the date to end of the month and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth(); + * ``` + * + * @return static + */ + public function endOfMonth(); + + /** + * Resets the date to end of the quarter and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter(); + * ``` + * + * @return static + */ + public function endOfQuarter(); + + /** + * Modify to end of current second, microseconds become 999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->endOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function endOfSecond(); + + /** + * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . "\n"; + * ``` + * + * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week + * + * @return static + */ + public function endOfWeek($weekEndsAt = null); + + /** + * Resets the date to end of the year and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear(); + * ``` + * + * @return static + */ + public function endOfYear(); + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->eq(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see equalTo() + * + * @return bool + */ + public function eq($date): bool; + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function equalTo($date): bool; + + /** + * Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * + * @param string $locale locale ex. en + * @param callable $func + * + * @return mixed + */ + public static function executeWithLocale($locale, $func); + + /** + * Get the farthest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function farthest($date1, $date2); + + /** + * Modify to the first occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * first day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function firstOfMonth($dayOfWeek = null); + + /** + * Modify to the first occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * first day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfQuarter($dayOfWeek = null); + + /** + * Modify to the first occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * first day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfYear($dayOfWeek = null); + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInDays($date = null, $absolute = true); + + /** + * Get the difference in hours as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInHours($date = null, $absolute = true); + + /** + * Get the difference in minutes as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMinutes($date = null, $absolute = true); + + /** + * Get the difference in months as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMonths($date = null, $absolute = true); + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealDays($date = null, $absolute = true); + + /** + * Get the difference in hours as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealHours($date = null, $absolute = true); + + /** + * Get the difference in minutes as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMinutes($date = null, $absolute = true); + + /** + * Get the difference in months as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMonths($date = null, $absolute = true); + + /** + * Get the difference in seconds as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealSeconds($date = null, $absolute = true); + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealWeeks($date = null, $absolute = true); + + /** + * Get the difference in year as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealYears($date = null, $absolute = true); + + /** + * Get the difference in seconds as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInSeconds($date = null, $absolute = true); + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInWeeks($date = null, $absolute = true); + + /** + * Get the difference in year as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInYears($date = null, $absolute = true); + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function floor($precision = 1); + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function floorUnit($unit, $precision = 1); + + /** + * Truncate the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function floorWeek($weekStartsAt = null); + + /** + * Format the instance with the current locale. You can set the current + * locale using setlocale() https://php.net/setlocale. + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat() instead. + * Deprecated since 2.55.0 + * + * @param string $format + * + * @return string + */ + public function formatLocalized($format); + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get the difference in a human readable format in the current locale from current + * instance to now. + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function fromNow($syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Create an instance from a serialized string. + * + * @param string $value + * + * @throws InvalidFormatException + * + * @return static + */ + public static function fromSerialized($value); + + /** + * Register a custom macro. + * + * @param object|callable $macro + * @param int $priority marco with higher priority is tried first + * + * @return void + */ + public static function genericMacro($macro, $priority = 0); + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function get($name); + + /** + * Returns the alternative number for a given date property if available in the current locale. + * + * @param string $key date property + * + * @return string + */ + public function getAltNumber(string $key): string; + + /** + * Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * + * @return array + */ + public static function getAvailableLocales(); + + /** + * Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * + * @return Language[] + */ + public static function getAvailableLocalesInfo(); + + /** + * Returns list of calendar formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getCalendarFormats($locale = null); + + /** + * Get the days of the week + * + * @return array + */ + public static function getDays(); + + /** + * Get the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @return string|null + */ + public static function getFallbackLocale(); + + /** + * List of replacements from date() format to isoFormat(). + * + * @return array + */ + public static function getFormatsToIsoReplacements(); + + /** + * Return default humanDiff() options (merged flags as integer). + * + * @return int + */ + public static function getHumanDiffOptions(); + + /** + * Returns list of locale formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getIsoFormats($locale = null); + + /** + * Returns list of locale units for ISO formatting. + * + * @return array + */ + public static function getIsoUnits(); + + /** + * {@inheritdoc} + * + * @return array + */ + #[ReturnTypeWillChange] + public static function getLastErrors(); + + /** + * Get the raw callable macro registered globally or locally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public function getLocalMacro($name); + + /** + * Get the translator of the current instance or the default if none set. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public function getLocalTranslator(); + + /** + * Get the current translator locale. + * + * @return string + */ + public static function getLocale(); + + /** + * Get the raw callable macro registered globally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public static function getMacro($name); + + /** + * get midday/noon hour + * + * @return int + */ + public static function getMidDayAt(); + + /** + * Returns the offset hour and minute formatted with +/- and a given separator (":" by default). + * For example, if the time zone is 9 hours 30 minutes, you'll get "+09:30", with "@@" as first + * argument, "+09@@30", with "" as first argument, "+0930". Negative offset will return something + * like "-12:00". + * + * @param string $separator string to place between hours and minutes (":" by default) + * + * @return string + */ + public function getOffsetString($separator = ':'); + + /** + * Returns a unit of the instance padded with 0 by default or any other string if specified. + * + * @param string $unit Carbon unit name + * @param int $length Length of the output (2 by default) + * @param string $padString String to use for padding ("0" by default) + * @param int $padType Side(s) to pad (STR_PAD_LEFT by default) + * + * @return string + */ + public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = 0); + + /** + * Returns a timestamp rounded with the given precision (6 by default). + * + * @example getPreciseTimestamp() 1532087464437474 (microsecond maximum precision) + * @example getPreciseTimestamp(6) 1532087464437474 + * @example getPreciseTimestamp(5) 153208746443747 (1/100000 second precision) + * @example getPreciseTimestamp(4) 15320874644375 (1/10000 second precision) + * @example getPreciseTimestamp(3) 1532087464437 (millisecond precision) + * @example getPreciseTimestamp(2) 153208746444 (1/100 second precision) + * @example getPreciseTimestamp(1) 15320874644 (1/10 second precision) + * @example getPreciseTimestamp(0) 1532087464 (second precision) + * @example getPreciseTimestamp(-1) 153208746 (10 second precision) + * @example getPreciseTimestamp(-2) 15320875 (100 second precision) + * + * @param int $precision + * + * @return float + */ + public function getPreciseTimestamp($precision = 6); + + /** + * Returns current local settings. + * + * @return array + */ + public function getSettings(); + + /** + * Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * + * @return Closure|static the current instance used for testing + */ + public static function getTestNow(); + + /** + * Return a format from H:i to H:i:s.u according to given unit precision. + * + * @param string $unitPrecision "minute", "second", "millisecond" or "microsecond" + * + * @return string + */ + public static function getTimeFormatByPrecision($unitPrecision); + + /** + * Returns the timestamp with millisecond precision. + * + * @return int + */ + public function getTimestampMs(); + + /** + * Get the translation of the current week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "", "_short" or "_min" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null); + + /** + * Get the translation of the current abbreviated week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedMinDayName($context = null); + + /** + * Get the translation of the current month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "" or "_short" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null); + + /** + * Get the translation of the current short week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortDayName($context = null); + + /** + * Get the translation of the current short month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortMonthName($context = null); + + /** + * Returns raw translation message for a given key. + * + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * @param \Symfony\Component\Translation\TranslatorInterface $translator an optional translator to use + * + * @return string + */ + public function getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null); + + /** + * Returns raw translation message for a given key. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator the translator to use + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * + * @return string + */ + public static function getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null); + + /** + * Get the default translator instance in use. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public static function getTranslator(); + + /** + * Get the last day of week + * + * @return int + */ + public static function getWeekEndsAt(); + + /** + * Get the first day of week + * + * @return int + */ + public static function getWeekStartsAt(); + + /** + * Get weekend days + * + * @return array + */ + public static function getWeekendDays(); + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThan($date): bool; + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThanOrEqualTo($date): bool; + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function gt($date): bool; + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThanOrEqualTo() + * + * @return bool + */ + public function gte($date): bool; + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormat('11:12:45', 'h:i:s'); // true + * Carbon::hasFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormat($date, $format); + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormatWithModifiers('31/08/2015', 'd#m#Y'); // true + * Carbon::hasFormatWithModifiers('31/08/2015', 'm#d#Y'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormatWithModifiers($date, $format): bool; + + /** + * Checks if macro is registered globally or locally. + * + * @param string $name + * + * @return bool + */ + public function hasLocalMacro($name); + + /** + * Return true if the current instance has its own translator. + * + * @return bool + */ + public function hasLocalTranslator(); + + /** + * Checks if macro is registered globally. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name); + + /** + * Determine if a time string will produce a relative date. + * + * @param string $time + * + * @return bool true if time match a relative date, false if absolute or invalid time string + */ + public static function hasRelativeKeywords($time); + + /** + * Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * + * @return bool true if there is a test instance, otherwise false + */ + public static function hasTestNow(); + + /** + * Create a Carbon instance from a DateTime one. + * + * @param DateTimeInterface $date + * + * @return static + */ + public static function instance($date); + + /** + * Returns true if the current date matches the given string. + * + * @example + * ``` + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false + * ``` + * + * @param string $tester day name, month name, hour, date, etc. as string + * + * @return bool + */ + public function is(string $tester); + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function isAfter($date): bool; + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function isBefore($date): bool; + + /** + * Determines if the instance is between two others + * + * @example + * ``` + * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function isBetween($date1, $date2, $equal = true): bool; + + /** + * Check if its the birthday. Compares the date/month values of the two dates. + * + * @example + * ``` + * Carbon::now()->subYears(5)->isBirthday(); // true + * Carbon::now()->subYears(5)->subDay()->isBirthday(); // false + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-05')); // true + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-06')); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use current day. + * + * @return bool + */ + public function isBirthday($date = null); + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::now()->isCurrentUnit('hour'); // true + * Carbon::now()->subHours(2)->isCurrentUnit('hour'); // false + * ``` + * + * @param string $unit The unit to test. + * + * @throws BadMethodCallException + * + * @return bool + */ + public function isCurrentUnit($unit); + + /** + * Checks if this day is a specific day of the week. + * + * @example + * ``` + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::WEDNESDAY); // true + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::FRIDAY); // false + * Carbon::parse('2019-07-17')->isDayOfWeek('Wednesday'); // true + * Carbon::parse('2019-07-17')->isDayOfWeek('Friday'); // false + * ``` + * + * @param int $dayOfWeek + * + * @return bool + */ + public function isDayOfWeek($dayOfWeek); + + /** + * Check if the instance is end of day. + * + * @example + * ``` + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:58.999999')->isEndOfDay(); // false + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(true); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(true); // false + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isEndOfDay($checkMicroseconds = false); + + /** + * Returns true if the date was created using CarbonImmutable::endOfTime() + * + * @return bool + */ + public function isEndOfTime(): bool; + + /** + * Determines if the instance is in the future, ie. greater (after) than now. + * + * @example + * ``` + * Carbon::now()->addHours(5)->isFuture(); // true + * Carbon::now()->subHours(5)->isFuture(); // false + * ``` + * + * @return bool + */ + public function isFuture(); + + /** + * Returns true if the current class/instance is immutable. + * + * @return bool + */ + public static function isImmutable(); + + /** + * Check if today is the last day of the Month + * + * @example + * ``` + * Carbon::parse('2019-02-28')->isLastOfMonth(); // true + * Carbon::parse('2019-03-28')->isLastOfMonth(); // false + * Carbon::parse('2019-03-30')->isLastOfMonth(); // false + * Carbon::parse('2019-03-31')->isLastOfMonth(); // true + * Carbon::parse('2019-04-30')->isLastOfMonth(); // true + * ``` + * + * @return bool + */ + public function isLastOfMonth(); + + /** + * Determines if the instance is a leap year. + * + * @example + * ``` + * Carbon::parse('2020-01-01')->isLeapYear(); // true + * Carbon::parse('2019-01-01')->isLeapYear(); // false + * ``` + * + * @return bool + */ + public function isLeapYear(); + + /** + * Determines if the instance is a long year + * + * @example + * ``` + * Carbon::parse('2015-01-01')->isLongYear(); // true + * Carbon::parse('2016-01-01')->isLongYear(); // false + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongYear(); + + /** + * Check if the instance is midday. + * + * @example + * ``` + * Carbon::parse('2019-02-28 11:59:59.999999')->isMidday(); // false + * Carbon::parse('2019-02-28 12:00:00')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:00.999999')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:01')->isMidday(); // false + * ``` + * + * @return bool + */ + public function isMidday(); + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:01')->isMidnight(); // false + * ``` + * + * @return bool + */ + public function isMidnight(); + + /** + * Returns true if a property can be changed via setter. + * + * @param string $unit + * + * @return bool + */ + public static function isModifiableUnit($unit); + + /** + * Returns true if the current class/instance is mutable. + * + * @return bool + */ + public static function isMutable(); + + /** + * Determines if the instance is in the past, ie. less (before) than now. + * + * @example + * ``` + * Carbon::now()->subHours(5)->isPast(); // true + * Carbon::now()->addHours(5)->isPast(); // false + * ``` + * + * @return bool + */ + public function isPast(); + + /** + * Compares the formatted values of the two dates. + * + * @example + * ``` + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-12-13')); // true + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-06-14')); // false + * ``` + * + * @param string $format date formats to compare. + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date instance to compare with or null to use current day. + * + * @return bool + */ + public function isSameAs($format, $date = null); + + /** + * Checks if the passed in date is in the same month as the instance´s month. + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-01-01')); // true + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-02-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use the current date. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameMonth($date = null, $ofSameYear = true); + + /** + * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed). + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-03-01')); // true + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-04-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date The instance to compare with or null to use current day. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameQuarter($date = null, $ofSameYear = true); + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::parse('2019-01-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // true + * Carbon::parse('2018-12-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // false + * ``` + * + * @param string $unit singular unit string + * @param \Carbon\Carbon|\DateTimeInterface|null $date instance to compare with or null to use current day. + * + * @throws BadComparisonUnitException + * + * @return bool + */ + public function isSameUnit($unit, $date = null); + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:01')->isStartOfDay(); // false + * Carbon::parse('2019-02-28 00:00:00.000000')->isStartOfDay(true); // true + * Carbon::parse('2019-02-28 00:00:00.000012')->isStartOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isStartOfDay($checkMicroseconds = false); + + /** + * Returns true if the date was created using CarbonImmutable::startOfTime() + * + * @return bool + */ + public function isStartOfTime(): bool; + + /** + * Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * + * @return bool + */ + public static function isStrictModeEnabled(); + + /** + * Determines if the instance is today. + * + * @example + * ``` + * Carbon::today()->isToday(); // true + * Carbon::tomorrow()->isToday(); // false + * ``` + * + * @return bool + */ + public function isToday(); + + /** + * Determines if the instance is tomorrow. + * + * @example + * ``` + * Carbon::tomorrow()->isTomorrow(); // true + * Carbon::yesterday()->isTomorrow(); // false + * ``` + * + * @return bool + */ + public function isTomorrow(); + + /** + * Determines if the instance is a weekday. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekday(); // false + * Carbon::parse('2019-07-15')->isWeekday(); // true + * ``` + * + * @return bool + */ + public function isWeekday(); + + /** + * Determines if the instance is a weekend day. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekend(); // true + * Carbon::parse('2019-07-15')->isWeekend(); // false + * ``` + * + * @return bool + */ + public function isWeekend(); + + /** + * Determines if the instance is yesterday. + * + * @example + * ``` + * Carbon::yesterday()->isYesterday(); // true + * Carbon::tomorrow()->isYesterday(); // false + * ``` + * + * @return bool + */ + public function isYesterday(); + + /** + * Format in the current language using ISO replacement patterns. + * + * @param string $format + * @param string|null $originalFormat provide context if a chunk has been passed alone + * + * @return string + */ + public function isoFormat(string $format, ?string $originalFormat = null): string; + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function isoWeekday($value = null); + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null); + + /** + * Prepare the object for JSON serialization. + * + * @return array|string + */ + #[ReturnTypeWillChange] + public function jsonSerialize(); + + /** + * Modify to the last occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * last day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function lastOfMonth($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * last day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfQuarter($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * last day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfYear($dayOfWeek = null); + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThan($date): bool; + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThanOrEqualTo($date): bool; + + /** + * Get/set the locale for the current instance. + * + * @param string|null $locale + * @param string ...$fallbackLocales + * + * @return $this|string + */ + public function locale(?string $locale = null, ...$fallbackLocales); + + /** + * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffOneDayWords($locale); + + /** + * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffSyntax($locale); + + /** + * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffTwoDayWords($locale); + + /** + * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasPeriodSyntax($locale); + + /** + * Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasShortUnits($locale); + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function lt($date): bool; + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThanOrEqualTo() + * + * @return bool + */ + public function lte($date): bool; + + /** + * Register a custom macro. + * + * @example + * ``` + * $userSettings = [ + * 'locale' => 'pt', + * 'timezone' => 'America/Sao_Paulo', + * ]; + * Carbon::macro('userFormat', function () use ($userSettings) { + * return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar(); + * }); + * echo Carbon::yesterday()->hours(11)->userFormat(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro); + + /** + * Make a Carbon instance from given variable if possible. + * + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * + * @param mixed $var + * + * @throws InvalidFormatException + * + * @return static|null + */ + public static function make($var); + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function max($date = null); + + /** + * Create a Carbon instance for the greatest supported date. + * + * @return static + */ + public static function maxValue(); + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see max() + * + * @return static + */ + public function maximum($date = null); + + /** + * Return the meridiem of the current time in the current locale. + * + * @param bool $isLower if true, returns lowercase variant if available in the current locale. + * + * @return string + */ + public function meridiem(bool $isLower = false): string; + + /** + * Modify to midday, default to self::$midDayAt + * + * @return static + */ + public function midDay(); + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function min($date = null); + + /** + * Create a Carbon instance for the lowest supported date. + * + * @return static + */ + public static function minValue(); + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see min() + * + * @return static + */ + public function minimum($date = null); + + /** + * Mix another object into the class. + * + * @example + * ``` + * Carbon::mixin(new class { + * public function addMoon() { + * return function () { + * return $this->addDays(30); + * }; + * } + * public function subMoon() { + * return function () { + * return $this->subDays(30); + * }; + * } + * }); + * $fullMoon = Carbon::create('2018-12-22'); + * $nextFullMoon = $fullMoon->addMoon(); + * $blackMoon = Carbon::create('2019-01-06'); + * $previousBlackMoon = $blackMoon->subMoon(); + * echo "$nextFullMoon\n"; + * echo "$previousBlackMoon\n"; + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin); + + /** + * Calls \DateTime::modify if mutable or \DateTimeImmutable::modify else. + * + * @see https://php.net/manual/en/datetime.modify.php + * + * @return static|false + */ + #[ReturnTypeWillChange] + public function modify($modify); + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->ne(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($date): bool; + + /** + * Modify to the next occurrence of a given modifier such as a day of + * the week. If no modifier is provided, modify to the next occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static + */ + public function next($modifier = null); + + /** + * Go forward to the next weekday. + * + * @return static + */ + public function nextWeekday(); + + /** + * Go forward to the next weekend day. + * + * @return static + */ + public function nextWeekendDay(); + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function notEqualTo($date): bool; + + /** + * Get a Carbon instance for the current date and time. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function now($tz = null); + + /** + * Returns a present instance in the same timezone. + * + * @return static + */ + public function nowWithSameTz(); + + /** + * Modify to the given occurrence of a given day of the week + * in the current month. If the calculated occurrence is outside the scope + * of the current month, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfMonth($nth, $dayOfWeek); + + /** + * Modify to the given occurrence of a given day of the week + * in the current quarter. If the calculated occurrence is outside the scope + * of the current quarter, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfQuarter($nth, $dayOfWeek); + + /** + * Modify to the given occurrence of a given day of the week + * in the current year. If the calculated occurrence is outside the scope + * of the current year, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfYear($nth, $dayOfWeek); + + /** + * Return a property with its ordinal. + * + * @param string $key + * @param string|null $period + * + * @return string + */ + public function ordinal(string $key, ?string $period = null): string; + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parse($time = null, $tz = null); + + /** + * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * + * @param string $time date/time string in the given language (may also contain English). + * @param string|null $locale if locale is null or not specified, current global locale will be + * used instead. + * @param DateTimeZone|string|null $tz optional timezone for the new instance. + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parseFromLocale($time, $locale = null, $tz = null); + + /** + * Returns standardized plural of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function pluralUnit(string $unit): string; + + /** + * Modify to the previous occurrence of a given modifier such as a day of + * the week. If no dayOfWeek is provided, modify to the previous occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static + */ + public function previous($modifier = null); + + /** + * Go backward to the previous weekday. + * + * @return static + */ + public function previousWeekday(); + + /** + * Go backward to the previous weekend day. + * + * @return static + */ + public function previousWeekendDay(); + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|null $end period end date + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function range($end = null, $interval = null, $unit = null); + + /** + * Call native PHP DateTime/DateTimeImmutable add() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawAdd(DateInterval $interval); + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function rawCreateFromFormat($format, $time, $tz = null); + + /** + * @see https://php.net/manual/en/datetime.format.php + * + * @param string $format + * + * @return string + */ + public function rawFormat($format); + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function rawParse($time = null, $tz = null); + + /** + * Call native PHP DateTime/DateTimeImmutable sub() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawSub(DateInterval $interval); + + /** + * Remove all macros and generic macros. + */ + public static function resetMacros(); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetMonthsOverflow(); + + /** + * Reset the format used to the default when type juggling a Carbon instance to a string + * + * @return void + */ + public static function resetToStringFormat(); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetYearsOverflow(); + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return CarbonInterface + */ + public function round($precision = 1, $function = 'round'); + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int $precision + * @param string $function + * + * @return CarbonInterface + */ + public function roundUnit($unit, $precision = 1, $function = 'round'); + + /** + * Round the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function roundWeek($weekStartsAt = null); + + /** + * The number of seconds since midnight. + * + * @return int + */ + public function secondsSinceMidnight(); + + /** + * The number of seconds until 23:59:59. + * + * @return int + */ + public function secondsUntilEndOfDay(); + + /** + * Return a serialized string of the instance. + * + * @return string + */ + public function serialize(); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * + * JSON serialize all Carbon instances using the given callback. + * + * @param callable $callback + * + * @return void + */ + public static function serializeUsing($callback); + + /** + * Set a part of the Carbon object + * + * @param string|array $name + * @param string|int|DateTimeZone $value + * + * @throws ImmutableException|UnknownSetterException + * + * @return $this + */ + public function set($name, $value = null); + + /** + * Set the date with gregorian year, month and day numbers. + * + * @see https://php.net/manual/en/datetime.setdate.php + * + * @param int $year + * @param int $month + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setDate($year, $month, $day); + + /** + * Set the year, month, and date for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setDateFrom($date = null); + + /** + * Set the date and time all together. + * + * @param int $year + * @param int $month + * @param int $day + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0); + + /** + * Set the date and time for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date + * + * @return static + */ + public function setDateTimeFrom($date = null); + + /** + * Set the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @param string $locale + */ + public static function setFallbackLocale($locale); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOptions + */ + public static function setHumanDiffOptions($humanDiffOptions); + + /** + * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates. + * + * @see https://php.net/manual/en/datetime.setisodate.php + * + * @param int $year + * @param int $week + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setISODate($year, $week, $day = 1); + + /** + * Set the translator for the current instance. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return $this + */ + public function setLocalTranslator(TranslatorInterface $translator); + + /** + * Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function setLocale($locale); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * + * Set midday/noon hour + * + * @param int $hour midday hour + * + * @return void + */ + public static function setMidDayAt($hour); + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNow($testNow = null); + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNowAndTimezone($testNow = null, $tz = null); + + /** + * Resets the current time of the DateTime object to a different time. + * + * @see https://php.net/manual/en/datetime.settime.php + * + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTime($hour, $minute, $second = 0, $microseconds = 0); + + /** + * Set the hour, minute, second and microseconds for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setTimeFrom($date = null); + + /** + * Set the time by time string. + * + * @param string $time + * + * @return static + */ + public function setTimeFromTimeString($time); + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimestamp($unixTimestamp); + + /** + * Set the instance's timezone from a string or object. + * + * @param DateTimeZone|string $value + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimezone($value); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump an other string + * format. + * + * Set the default format used when type juggling a Carbon instance to a string + * + * @param string|Closure|null $format + * + * @return void + */ + public static function setToStringFormat($format); + + /** + * Set the default translator instance to use. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return void + */ + public static function setTranslator(TranslatorInterface $translator); + + /** + * Set specified unit to new given value. + * + * @param string $unit year, month, day, hour, minute, second or microsecond + * @param int $value new value for given unit + * + * @return static + */ + public function setUnit($unit, $value = null); + + /** + * Set any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value new value for the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function setUnitNoOverflow($valueUnit, $value, $overflowUnit); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * + * Set if UTF8 will be used for localized date/time. + * + * @param bool $utf8 + */ + public static function setUtf8($utf8); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * + * Set the last day of week + * + * @param int|string $day week end day (or 'auto' to get the day before the first day of week + * from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekEndsAt($day); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * + * Set the first day of week + * + * @param int|string $day week start day (or 'auto' to get the first day of week from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekStartsAt($day); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * + * Set weekend days + * + * @param array $days + * + * @return void + */ + public static function setWeekendDays($days); + + /** + * Set specific options. + * - strictMode: true|false|null + * - monthOverflow: true|false|null + * - yearOverflow: true|false|null + * - humanDiffOptions: int|null + * - toStringFormat: string|Closure|null + * - toJsonFormat: string|Closure|null + * - locale: string|null + * - timezone: \DateTimeZone|string|int|null + * - macros: array|null + * - genericMacros: array|null + * + * @param array $settings + * + * @return $this|static + */ + public function settings(array $settings); + + /** + * Set the instance's timezone from a string or object and add/subtract the offset difference. + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function shiftTimezone($value); + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowMonths(); + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowYears(); + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + */ + public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Returns standardized singular of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function singularUnit(string $unit): string; + + /** + * Modify to start of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function startOf($unit, ...$params); + + /** + * Resets the date to the first day of the century and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury(); + * ``` + * + * @return static + */ + public function startOfCentury(); + + /** + * Resets the time to 00:00:00 start of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay(); + * ``` + * + * @return static + */ + public function startOfDay(); + + /** + * Resets the date to the first day of the decade and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade(); + * ``` + * + * @return static + */ + public function startOfDecade(); + + /** + * Modify to start of current hour, minutes and seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour(); + * ``` + * + * @return static + */ + public function startOfHour(); + + /** + * Resets the date to the first day of the millennium and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium(); + * ``` + * + * @return static + */ + public function startOfMillennium(); + + /** + * Modify to start of current minute, seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute(); + * ``` + * + * @return static + */ + public function startOfMinute(); + + /** + * Resets the date to the first day of the month and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth(); + * ``` + * + * @return static + */ + public function startOfMonth(); + + /** + * Resets the date to the first day of the quarter and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter(); + * ``` + * + * @return static + */ + public function startOfQuarter(); + + /** + * Modify to start of current second, microseconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function startOfSecond(); + + /** + * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . "\n"; + * ``` + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return static + */ + public function startOfWeek($weekStartsAt = null); + + /** + * Resets the date to the first day of the year and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear(); + * ``` + * + * @return static + */ + public function startOfYear(); + + /** + * Subtract given units or interval to the current instance. + * + * @example $date->sub('hour', 3) + * @example $date->sub(15, 'days') + * @example $date->sub(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function sub($unit, $value = 1, $overflow = null); + + public function subRealUnit($unit, $value = 1); + + /** + * Subtract given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subUnit($unit, $value = 1, $overflow = null); + + /** + * Subtract any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to subtract to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function subUnitNoOverflow($valueUnit, $value, $overflowUnit); + + /** + * Subtract given units or interval to the current instance. + * + * @see sub() + * + * @param string|DateInterval $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subtract($unit, $value = 1, $overflow = null); + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @return string + */ + public function timespan($other = null, $timezone = null); + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + public function timestamp($unixTimestamp); + + /** + * @alias setTimezone + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function timezone($value); + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * When comparing a value in the past to default now: + * 1 hour from now + * 5 months from now + * + * When comparing a value in the future to default now: + * 1 hour ago + * 5 months ago + * + * When comparing a value in the past to another value: + * 1 hour after + * 5 months after + * + * When comparing a value in the future to another value: + * 1 hour before + * 5 months before + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get default array representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toArray()); + * ``` + * + * @return array + */ + public function toArray(); + + /** + * Format the instance as ATOM + * + * @example + * ``` + * echo Carbon::now()->toAtomString(); + * ``` + * + * @return string + */ + public function toAtomString(); + + /** + * Format the instance as COOKIE + * + * @example + * ``` + * echo Carbon::now()->toCookieString(); + * ``` + * + * @return string + */ + public function toCookieString(); + + /** + * @alias toDateTime + * + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDate()); + * ``` + * + * @return DateTime + */ + public function toDate(); + + /** + * Format the instance as date + * + * @example + * ``` + * echo Carbon::now()->toDateString(); + * ``` + * + * @return string + */ + public function toDateString(); + + /** + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTime()); + * ``` + * + * @return DateTime + */ + public function toDateTime(); + + /** + * Return native toDateTimeImmutable PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTimeImmutable()); + * ``` + * + * @return DateTimeImmutable + */ + public function toDateTimeImmutable(); + + /** + * Format the instance as date and time T-separated with no timezone + * + * @example + * ``` + * echo Carbon::now()->toDateTimeLocalString(); + * echo "\n"; + * echo Carbon::now()->toDateTimeLocalString('minute'); // You can specify precision among: minute, second, millisecond and microsecond + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeLocalString($unitPrecision = 'second'); + + /** + * Format the instance as date and time + * + * @example + * ``` + * echo Carbon::now()->toDateTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeString($unitPrecision = 'second'); + + /** + * Format the instance with day, date and time + * + * @example + * ``` + * echo Carbon::now()->toDayDateTimeString(); + * ``` + * + * @return string + */ + public function toDayDateTimeString(); + + /** + * Format the instance as a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDateString(); + * ``` + * + * @return string + */ + public function toFormattedDateString(); + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept: + * 1977-04-22T01:00:00-05:00). + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toISOString() . "\n"; + * echo Carbon::now('America/Toronto')->toISOString(true) . "\n"; + * ``` + * + * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC. + * + * @return null|string + */ + public function toISOString($keepOffset = false); + + /** + * Return a immutable copy of the instance. + * + * @return CarbonImmutable + */ + public function toImmutable(); + + /** + * Format the instance as ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601String(); + * ``` + * + * @return string + */ + public function toIso8601String(); + + /** + * Convert the instance to UTC and return as Zulu ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601ZuluString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toIso8601ZuluString($unitPrecision = 'second'); + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone. + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toJSON(); + * ``` + * + * @return null|string + */ + public function toJSON(); + + /** + * Return a mutable copy of the instance. + * + * @return Carbon + */ + public function toMutable(); + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function toNow($syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get default object representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toObject()); + * ``` + * + * @return object + */ + public function toObject(); + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|int|null $end period end date or recurrences count if int + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function toPeriod($end = null, $interval = null, $unit = null); + + /** + * Format the instance as RFC1036 + * + * @example + * ``` + * echo Carbon::now()->toRfc1036String(); + * ``` + * + * @return string + */ + public function toRfc1036String(); + + /** + * Format the instance as RFC1123 + * + * @example + * ``` + * echo Carbon::now()->toRfc1123String(); + * ``` + * + * @return string + */ + public function toRfc1123String(); + + /** + * Format the instance as RFC2822 + * + * @example + * ``` + * echo Carbon::now()->toRfc2822String(); + * ``` + * + * @return string + */ + public function toRfc2822String(); + + /** + * Format the instance as RFC3339 + * + * @param bool $extended + * + * @example + * ``` + * echo Carbon::now()->toRfc3339String() . "\n"; + * echo Carbon::now()->toRfc3339String(true) . "\n"; + * ``` + * + * @return string + */ + public function toRfc3339String($extended = false); + + /** + * Format the instance as RFC7231 + * + * @example + * ``` + * echo Carbon::now()->toRfc7231String(); + * ``` + * + * @return string + */ + public function toRfc7231String(); + + /** + * Format the instance as RFC822 + * + * @example + * ``` + * echo Carbon::now()->toRfc822String(); + * ``` + * + * @return string + */ + public function toRfc822String(); + + /** + * Format the instance as RFC850 + * + * @example + * ``` + * echo Carbon::now()->toRfc850String(); + * ``` + * + * @return string + */ + public function toRfc850String(); + + /** + * Format the instance as RSS + * + * @example + * ``` + * echo Carbon::now()->toRssString(); + * ``` + * + * @return string + */ + public function toRssString(); + + /** + * Returns english human readable complete date string. + * + * @example + * ``` + * echo Carbon::now()->toString(); + * ``` + * + * @return string + */ + public function toString(); + + /** + * Format the instance as time + * + * @example + * ``` + * echo Carbon::now()->toTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toTimeString($unitPrecision = 'second'); + + /** + * Format the instance as W3C + * + * @example + * ``` + * echo Carbon::now()->toW3cString(); + * ``` + * + * @return string + */ + public function toW3cString(); + + /** + * Create a Carbon instance for today. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function today($tz = null); + + /** + * Create a Carbon instance for tomorrow. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function tomorrow($tz = null); + + /** + * Translate using translation string or callback available. + * + * @param string $key + * @param array $parameters + * @param string|int|float|null $number + * @param \Symfony\Component\Translation\TranslatorInterface|null $translator + * @param bool $altNumbers + * + * @return string + */ + public function translate(string $key, array $parameters = [], $number = null, ?TranslatorInterface $translator = null, bool $altNumbers = false): string; + + /** + * Returns the alternative number for a given integer if available in the current locale. + * + * @param int $number + * + * @return string + */ + public function translateNumber(int $number): string; + + /** + * Translate a time string from a locale to an other. + * + * @param string $timeString date/time/duration string to translate (may also contain English) + * @param string|null $from input locale of the $timeString parameter (`Carbon::getLocale()` by default) + * @param string|null $to output locale of the result returned (`"en"` by default) + * @param int $mode specify what to translate with options: + * - self::TRANSLATE_ALL (default) + * - CarbonInterface::TRANSLATE_MONTHS + * - CarbonInterface::TRANSLATE_DAYS + * - CarbonInterface::TRANSLATE_UNITS + * - CarbonInterface::TRANSLATE_MERIDIEM + * You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS + * + * @return string + */ + public static function translateTimeString($timeString, $from = null, $to = null, $mode = self::TRANSLATE_ALL); + + /** + * Translate a time string from the current locale (`$date->locale()`) to an other. + * + * @param string $timeString time string to translate + * @param string|null $to output locale of the result returned ("en" by default) + * + * @return string + */ + public function translateTimeStringTo($timeString, $to = null); + + /** + * Translate using translation string or callback available. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * @param string $key + * @param array $parameters + * @param null $number + * + * @return string + */ + public static function translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string; + + /** + * Format as ->format() do (using date replacements patterns from https://php.net/manual/en/function.date.php) + * but translate words whenever possible (months, day names, etc.) using the current locale. + * + * @param string $format + * + * @return string + */ + public function translatedFormat(string $format): string; + + /** + * Set the timezone or returns the timezone name if no arguments passed. + * + * @param DateTimeZone|string $value + * + * @return static|string + */ + public function tz($value = null); + + /** + * @alias getTimestamp + * + * Returns the UNIX timestamp for the current date. + * + * @return int + */ + public function unix(); + + /** + * @alias to + * + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if months should be calculated with overflow. + * + * @param bool $monthsOverflow + * + * @return void + */ + public static function useMonthsOverflow($monthsOverflow = true); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * Enable the strict mode (or disable with passing false). + * + * @param bool $strictModeEnabled + */ + public static function useStrictMode($strictModeEnabled = true); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if years should be calculated with overflow. + * + * @param bool $yearsOverflow + * + * @return void + */ + public static function useYearsOverflow($yearsOverflow = true); + + /** + * Set the instance's timezone to UTC. + * + * @return static + */ + public function utc(); + + /** + * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed. + * + * @param int|null $minuteOffset + * + * @return int|static + */ + public function utcOffset(?int $minuteOffset = null); + + /** + * Returns the milliseconds timestamps used amongst other by Date javascript objects. + * + * @return float + */ + public function valueOf(); + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function week($week = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Get/set the weekday from 0 (Sunday) to 6 (Saturday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function weekday($value = null); + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function weeksInYear($dayOfWeek = null, $dayOfYear = null); + + /** + * Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * + * /!\ Use this method for unit tests only. + * + * @param Closure|static|string|false|null $testNow real or mock Carbon instance + * @param Closure|null $callback + * + * @return mixed + */ + public static function withTestNow($testNow = null, $callback = null); + + /** + * Create a Carbon instance for yesterday. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function yesterday($tz = null); + + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php new file mode 100644 index 00000000000..592eaa7a419 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php @@ -0,0 +1,2779 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\BadFluentConstructorException; +use Carbon\Exceptions\BadFluentSetterException; +use Carbon\Exceptions\InvalidCastException; +use Carbon\Exceptions\InvalidIntervalException; +use Carbon\Exceptions\ParseErrorException; +use Carbon\Exceptions\UnitNotConfiguredException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownSetterException; +use Carbon\Exceptions\UnknownUnitException; +use Carbon\Traits\IntervalRounding; +use Carbon\Traits\IntervalStep; +use Carbon\Traits\Mixin; +use Carbon\Traits\Options; +use Closure; +use DateInterval; +use DateTimeInterface; +use DateTimeZone; +use Exception; +use ReflectionException; +use ReturnTypeWillChange; +use Throwable; + +/** + * A simple API extension for DateInterval. + * The implementation provides helpers to handle weeks but only days are saved. + * Weeks are calculated based on the total days of the current instance. + * + * @property int $years Total years of the current interval. + * @property int $months Total months of the current interval. + * @property int $weeks Total weeks of the current interval calculated from the days. + * @property int $dayz Total days of the current interval (weeks * 7 + days). + * @property int $hours Total hours of the current interval. + * @property int $minutes Total minutes of the current interval. + * @property int $seconds Total seconds of the current interval. + * @property int $microseconds Total microseconds of the current interval. + * @property int $milliseconds Total microseconds of the current interval. + * @property int $microExcludeMilli Remaining microseconds without the milliseconds. + * @property int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7). + * @property int $daysExcludeWeeks alias of dayzExcludeWeeks + * @property-read float $totalYears Number of years equivalent to the interval. + * @property-read float $totalMonths Number of months equivalent to the interval. + * @property-read float $totalWeeks Number of weeks equivalent to the interval. + * @property-read float $totalDays Number of days equivalent to the interval. + * @property-read float $totalDayz Alias for totalDays. + * @property-read float $totalHours Number of hours equivalent to the interval. + * @property-read float $totalMinutes Number of minutes equivalent to the interval. + * @property-read float $totalSeconds Number of seconds equivalent to the interval. + * @property-read float $totalMilliseconds Number of milliseconds equivalent to the interval. + * @property-read float $totalMicroseconds Number of microseconds equivalent to the interval. + * @property-read string $locale locale of the current instance + * + * @method static CarbonInterval years($years = 1) Create instance specifying a number of years or modify the number of years if called on an instance. + * @method static CarbonInterval year($years = 1) Alias for years() + * @method static CarbonInterval months($months = 1) Create instance specifying a number of months or modify the number of months if called on an instance. + * @method static CarbonInterval month($months = 1) Alias for months() + * @method static CarbonInterval weeks($weeks = 1) Create instance specifying a number of weeks or modify the number of weeks if called on an instance. + * @method static CarbonInterval week($weeks = 1) Alias for weeks() + * @method static CarbonInterval days($days = 1) Create instance specifying a number of days or modify the number of days if called on an instance. + * @method static CarbonInterval dayz($days = 1) Alias for days() + * @method static CarbonInterval daysExcludeWeeks($days = 1) Create instance specifying a number of days or modify the number of days (keeping the current number of weeks) if called on an instance. + * @method static CarbonInterval dayzExcludeWeeks($days = 1) Alias for daysExcludeWeeks() + * @method static CarbonInterval day($days = 1) Alias for days() + * @method static CarbonInterval hours($hours = 1) Create instance specifying a number of hours or modify the number of hours if called on an instance. + * @method static CarbonInterval hour($hours = 1) Alias for hours() + * @method static CarbonInterval minutes($minutes = 1) Create instance specifying a number of minutes or modify the number of minutes if called on an instance. + * @method static CarbonInterval minute($minutes = 1) Alias for minutes() + * @method static CarbonInterval seconds($seconds = 1) Create instance specifying a number of seconds or modify the number of seconds if called on an instance. + * @method static CarbonInterval second($seconds = 1) Alias for seconds() + * @method static CarbonInterval milliseconds($milliseconds = 1) Create instance specifying a number of milliseconds or modify the number of milliseconds if called on an instance. + * @method static CarbonInterval millisecond($milliseconds = 1) Alias for milliseconds() + * @method static CarbonInterval microseconds($microseconds = 1) Create instance specifying a number of microseconds or modify the number of microseconds if called on an instance. + * @method static CarbonInterval microsecond($microseconds = 1) Alias for microseconds() + * @method $this addYears(int $years) Add given number of years to the current interval + * @method $this subYears(int $years) Subtract given number of years to the current interval + * @method $this addMonths(int $months) Add given number of months to the current interval + * @method $this subMonths(int $months) Subtract given number of months to the current interval + * @method $this addWeeks(int|float $weeks) Add given number of weeks to the current interval + * @method $this subWeeks(int|float $weeks) Subtract given number of weeks to the current interval + * @method $this addDays(int|float $days) Add given number of days to the current interval + * @method $this subDays(int|float $days) Subtract given number of days to the current interval + * @method $this addHours(int|float $hours) Add given number of hours to the current interval + * @method $this subHours(int|float $hours) Subtract given number of hours to the current interval + * @method $this addMinutes(int|float $minutes) Add given number of minutes to the current interval + * @method $this subMinutes(int|float $minutes) Subtract given number of minutes to the current interval + * @method $this addSeconds(int|float $seconds) Add given number of seconds to the current interval + * @method $this subSeconds(int|float $seconds) Subtract given number of seconds to the current interval + * @method $this addMilliseconds(int|float $milliseconds) Add given number of milliseconds to the current interval + * @method $this subMilliseconds(int|float $milliseconds) Subtract given number of milliseconds to the current interval + * @method $this addMicroseconds(int|float $microseconds) Add given number of microseconds to the current interval + * @method $this subMicroseconds(int|float $microseconds) Subtract given number of microseconds to the current interval + * @method $this roundYear(int|float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(int|float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(int|float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(int|float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(int|float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(int|float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(int|float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(int|float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(int|float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(int|float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(int|float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(int|float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundWeek(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundWeeks(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorWeek(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorWeeks(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilWeek(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilWeeks(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundDay(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(int|float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(int|float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(int|float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(int|float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(int|float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(int|float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(int|float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(int|float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(int|float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(int|float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(int|float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(int|float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(int|float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(int|float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(int|float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(int|float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(int|float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(int|float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(int|float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(int|float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(int|float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(int|float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(int|float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(int|float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(int|float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(int|float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(int|float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(int|float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(int|float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(int|float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(int|float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(int|float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(int|float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(int|float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(int|float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(int|float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(int|float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(int|float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(int|float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(int|float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(int|float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(int|float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(int|float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(int|float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(int|float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(int|float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(int|float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(int|float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(int|float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(int|float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(int|float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(int|float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(int|float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(int|float $precision = 1) Ceil the current instance microsecond with given precision. + */ +class CarbonInterval extends DateInterval implements CarbonConverterInterface +{ + use IntervalRounding; + use IntervalStep; + use Mixin { + Mixin::mixin as baseMixin; + } + use Options; + + /** + * Interval spec period designators + */ + public const PERIOD_PREFIX = 'P'; + public const PERIOD_YEARS = 'Y'; + public const PERIOD_MONTHS = 'M'; + public const PERIOD_DAYS = 'D'; + public const PERIOD_TIME_PREFIX = 'T'; + public const PERIOD_HOURS = 'H'; + public const PERIOD_MINUTES = 'M'; + public const PERIOD_SECONDS = 'S'; + + /** + * A translator to ... er ... translate stuff + * + * @var \Symfony\Component\Translation\TranslatorInterface + */ + protected static $translator; + + /** + * @var array|null + */ + protected static $cascadeFactors; + + /** + * @var array + */ + protected static $formats = [ + 'y' => 'y', + 'Y' => 'y', + 'o' => 'y', + 'm' => 'm', + 'n' => 'm', + 'W' => 'weeks', + 'd' => 'd', + 'j' => 'd', + 'z' => 'd', + 'h' => 'h', + 'g' => 'h', + 'H' => 'h', + 'G' => 'h', + 'i' => 'i', + 's' => 's', + 'u' => 'micro', + 'v' => 'milli', + ]; + + /** + * @var array|null + */ + private static $flipCascadeFactors; + + /** + * The registered macros. + * + * @var array + */ + protected static $macros = []; + + /** + * Timezone handler for settings() method. + * + * @var mixed + */ + protected $tzName; + + /** + * Set the instance's timezone from a string or object. + * + * @param \DateTimeZone|string $tzName + * + * @return static + */ + public function setTimezone($tzName) + { + $this->tzName = $tzName; + + return $this; + } + + /** + * @internal + * + * Set the instance's timezone from a string or object and add/subtract the offset difference. + * + * @param \DateTimeZone|string $tzName + * + * @return static + */ + public function shiftTimezone($tzName) + { + $this->tzName = $tzName; + + return $this; + } + + /** + * Mapping of units and factors for cascading. + * + * Should only be modified by changing the factors or referenced constants. + * + * @return array + */ + public static function getCascadeFactors() + { + return static::$cascadeFactors ?: [ + 'milliseconds' => [Carbon::MICROSECONDS_PER_MILLISECOND, 'microseconds'], + 'seconds' => [Carbon::MILLISECONDS_PER_SECOND, 'milliseconds'], + 'minutes' => [Carbon::SECONDS_PER_MINUTE, 'seconds'], + 'hours' => [Carbon::MINUTES_PER_HOUR, 'minutes'], + 'dayz' => [Carbon::HOURS_PER_DAY, 'hours'], + 'weeks' => [Carbon::DAYS_PER_WEEK, 'dayz'], + 'months' => [Carbon::WEEKS_PER_MONTH, 'weeks'], + 'years' => [Carbon::MONTHS_PER_YEAR, 'months'], + ]; + } + + private static function standardizeUnit($unit) + { + $unit = rtrim($unit, 'sz').'s'; + + return $unit === 'days' ? 'dayz' : $unit; + } + + private static function getFlipCascadeFactors() + { + if (!self::$flipCascadeFactors) { + self::$flipCascadeFactors = []; + + foreach (static::getCascadeFactors() as $to => [$factor, $from]) { + self::$flipCascadeFactors[self::standardizeUnit($from)] = [self::standardizeUnit($to), $factor]; + } + } + + return self::$flipCascadeFactors; + } + + /** + * Set default cascading factors for ->cascade() method. + * + * @param array $cascadeFactors + */ + public static function setCascadeFactors(array $cascadeFactors) + { + self::$flipCascadeFactors = null; + static::$cascadeFactors = $cascadeFactors; + } + + /////////////////////////////////////////////////////////////////// + //////////////////////////// CONSTRUCTORS ///////////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * Create a new CarbonInterval instance. + * + * @param Closure|DateInterval|string|int|null $years + * @param int|null $months + * @param int|null $weeks + * @param int|null $days + * @param int|null $hours + * @param int|null $minutes + * @param int|null $seconds + * @param int|null $microseconds + * + * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval. + */ + public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null) + { + if ($years instanceof Closure) { + $this->step = $years; + $years = null; + } + + if ($years instanceof DateInterval) { + parent::__construct(static::getDateIntervalSpec($years)); + $this->f = $years->f; + self::copyNegativeUnits($years, $this); + + return; + } + + $spec = $years; + + if (!\is_string($spec) || (float) $years || preg_match('/^[\d.]/', $years)) { + $spec = static::PERIOD_PREFIX; + + $spec .= $years > 0 ? $years.static::PERIOD_YEARS : ''; + $spec .= $months > 0 ? $months.static::PERIOD_MONTHS : ''; + + $specDays = 0; + $specDays += $weeks > 0 ? $weeks * static::getDaysPerWeek() : 0; + $specDays += $days > 0 ? $days : 0; + + $spec .= $specDays > 0 ? $specDays.static::PERIOD_DAYS : ''; + + if ($hours > 0 || $minutes > 0 || $seconds > 0) { + $spec .= static::PERIOD_TIME_PREFIX; + $spec .= $hours > 0 ? $hours.static::PERIOD_HOURS : ''; + $spec .= $minutes > 0 ? $minutes.static::PERIOD_MINUTES : ''; + $spec .= $seconds > 0 ? $seconds.static::PERIOD_SECONDS : ''; + } + + if ($spec === static::PERIOD_PREFIX) { + // Allow the zero interval. + $spec .= '0'.static::PERIOD_YEARS; + } + } + + parent::__construct($spec); + + if ($microseconds !== null) { + $this->f = $microseconds / Carbon::MICROSECONDS_PER_SECOND; + } + } + + /** + * Returns the factor for a given source-to-target couple. + * + * @param string $source + * @param string $target + * + * @return int|null + */ + public static function getFactor($source, $target) + { + $source = self::standardizeUnit($source); + $target = self::standardizeUnit($target); + $factors = self::getFlipCascadeFactors(); + + if (isset($factors[$source])) { + [$to, $factor] = $factors[$source]; + + if ($to === $target) { + return $factor; + } + + return $factor * static::getFactor($to, $target); + } + + return null; + } + + /** + * Returns the factor for a given source-to-target couple if set, + * else try to find the appropriate constant as the factor, such as Carbon::DAYS_PER_WEEK. + * + * @param string $source + * @param string $target + * + * @return int|null + */ + public static function getFactorWithDefault($source, $target) + { + $factor = self::getFactor($source, $target); + + if ($factor) { + return $factor; + } + + static $defaults = [ + 'month' => ['year' => Carbon::MONTHS_PER_YEAR], + 'week' => ['month' => Carbon::WEEKS_PER_MONTH], + 'day' => ['week' => Carbon::DAYS_PER_WEEK], + 'hour' => ['day' => Carbon::HOURS_PER_DAY], + 'minute' => ['hour' => Carbon::MINUTES_PER_HOUR], + 'second' => ['minute' => Carbon::SECONDS_PER_MINUTE], + 'millisecond' => ['second' => Carbon::MILLISECONDS_PER_SECOND], + 'microsecond' => ['millisecond' => Carbon::MICROSECONDS_PER_MILLISECOND], + ]; + + return $defaults[$source][$target] ?? null; + } + + /** + * Returns current config for days per week. + * + * @return int + */ + public static function getDaysPerWeek() + { + return static::getFactor('dayz', 'weeks') ?: Carbon::DAYS_PER_WEEK; + } + + /** + * Returns current config for hours per day. + * + * @return int + */ + public static function getHoursPerDay() + { + return static::getFactor('hours', 'dayz') ?: Carbon::HOURS_PER_DAY; + } + + /** + * Returns current config for minutes per hour. + * + * @return int + */ + public static function getMinutesPerHour() + { + return static::getFactor('minutes', 'hours') ?: Carbon::MINUTES_PER_HOUR; + } + + /** + * Returns current config for seconds per minute. + * + * @return int + */ + public static function getSecondsPerMinute() + { + return static::getFactor('seconds', 'minutes') ?: Carbon::SECONDS_PER_MINUTE; + } + + /** + * Returns current config for microseconds per second. + * + * @return int + */ + public static function getMillisecondsPerSecond() + { + return static::getFactor('milliseconds', 'seconds') ?: Carbon::MILLISECONDS_PER_SECOND; + } + + /** + * Returns current config for microseconds per second. + * + * @return int + */ + public static function getMicrosecondsPerMillisecond() + { + return static::getFactor('microseconds', 'milliseconds') ?: Carbon::MICROSECONDS_PER_MILLISECOND; + } + + /** + * Create a new CarbonInterval instance from specific values. + * This is an alias for the constructor that allows better fluent + * syntax as it allows you to do CarbonInterval::create(1)->fn() rather than + * (new CarbonInterval(1))->fn(). + * + * @param int $years + * @param int $months + * @param int $weeks + * @param int $days + * @param int $hours + * @param int $minutes + * @param int $seconds + * @param int $microseconds + * + * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval. + * + * @return static + */ + public static function create($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null) + { + return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $microseconds); + } + + /** + * Parse a string into a new CarbonInterval object according to the specified format. + * + * @example + * ``` + * echo Carboninterval::createFromFormat('H:i', '1:30'); + * ``` + * + * @param string $format Format of the $interval input string + * @param string|null $interval Input string to convert into an interval + * + * @throws \Carbon\Exceptions\ParseErrorException when the $interval cannot be parsed as an interval. + * + * @return static + */ + public static function createFromFormat(string $format, ?string $interval) + { + $instance = new static(0); + $length = mb_strlen($format); + + if (preg_match('/s([,.])([uv])$/', $format, $match)) { + $interval = explode($match[1], $interval); + $index = \count($interval) - 1; + $interval[$index] = str_pad($interval[$index], $match[2] === 'v' ? 3 : 6, '0'); + $interval = implode($match[1], $interval); + } + + $interval = $interval ?? ''; + + for ($index = 0; $index < $length; $index++) { + $expected = mb_substr($format, $index, 1); + $nextCharacter = mb_substr($interval, 0, 1); + $unit = static::$formats[$expected] ?? null; + + if ($unit) { + if (!preg_match('/^-?\d+/', $interval, $match)) { + throw new ParseErrorException('number', $nextCharacter); + } + + $interval = mb_substr($interval, mb_strlen($match[0])); + $instance->$unit += (int) ($match[0]); + + continue; + } + + if ($nextCharacter !== $expected) { + throw new ParseErrorException( + "'$expected'", + $nextCharacter, + 'Allowed substitutes for interval formats are '.implode(', ', array_keys(static::$formats))."\n". + 'See https://php.net/manual/en/function.date.php for their meaning' + ); + } + + $interval = mb_substr($interval, 1); + } + + if ($interval !== '') { + throw new ParseErrorException( + 'end of string', + $interval + ); + } + + return $instance; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy() + { + $date = new static(0); + $date->copyProperties($this); + $date->step = $this->step; + + return $date; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function clone() + { + return $this->copy(); + } + + /** + * Provide static helpers to create instances. Allows CarbonInterval::years(3). + * + * Note: This is done using the magic method to allow static and instance methods to + * have the same names. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @return static|null + */ + public static function __callStatic($method, $parameters) + { + try { + $interval = new static(0); + $localStrictModeEnabled = $interval->localStrictModeEnabled; + $interval->localStrictModeEnabled = true; + + $result = static::hasMacro($method) + ? static::bindMacroContext(null, function () use (&$method, &$parameters, &$interval) { + return $interval->callMacro($method, $parameters); + }) + : $interval->$method(...$parameters); + + $interval->localStrictModeEnabled = $localStrictModeEnabled; + + return $result; + } catch (BadFluentSetterException $exception) { + if (Carbon::isStrictModeEnabled()) { + throw new BadFluentConstructorException($method, 0, $exception); + } + + return null; + } + } + + /** + * Return the current context from inside a macro callee or a new one if static. + * + * @return static + */ + protected static function this() + { + return end(static::$macroContextStack) ?: new static(0); + } + + /** + * Creates a CarbonInterval from string. + * + * Format: + * + * Suffix | Unit | Example | DateInterval expression + * -------|---------|---------|------------------------ + * y | years | 1y | P1Y + * mo | months | 3mo | P3M + * w | weeks | 2w | P2W + * d | days | 28d | P28D + * h | hours | 4h | PT4H + * m | minutes | 12m | PT12M + * s | seconds | 59s | PT59S + * + * e. g. `1w 3d 4h 32m 23s` is converted to 10 days 4 hours 32 minutes and 23 seconds. + * + * Special cases: + * - An empty string will return a zero interval + * - Fractions are allowed for weeks, days, hours and minutes and will be converted + * and rounded to the next smaller value (caution: 0.5w = 4d) + * + * @param string $intervalDefinition + * + * @return static + */ + public static function fromString($intervalDefinition) + { + if (empty($intervalDefinition)) { + return new static(0); + } + + $years = 0; + $months = 0; + $weeks = 0; + $days = 0; + $hours = 0; + $minutes = 0; + $seconds = 0; + $milliseconds = 0; + $microseconds = 0; + + $pattern = '/(\d+(?:\.\d+)?)\h*([^\d\h]*)/i'; + preg_match_all($pattern, $intervalDefinition, $parts, PREG_SET_ORDER); + + while ([$part, $value, $unit] = array_shift($parts)) { + $intValue = (int) $value; + $fraction = (float) $value - $intValue; + + // Fix calculation precision + switch (round($fraction, 6)) { + case 1: + $fraction = 0; + $intValue++; + + break; + case 0: + $fraction = 0; + + break; + } + + switch ($unit === 'µs' ? 'µs' : strtolower($unit)) { + case 'millennia': + case 'millennium': + $years += $intValue * CarbonInterface::YEARS_PER_MILLENNIUM; + + break; + + case 'century': + case 'centuries': + $years += $intValue * CarbonInterface::YEARS_PER_CENTURY; + + break; + + case 'decade': + case 'decades': + $years += $intValue * CarbonInterface::YEARS_PER_DECADE; + + break; + + case 'year': + case 'years': + case 'y': + $years += $intValue; + + break; + + case 'quarter': + case 'quarters': + $months += $intValue * CarbonInterface::MONTHS_PER_QUARTER; + + break; + + case 'month': + case 'months': + case 'mo': + $months += $intValue; + + break; + + case 'week': + case 'weeks': + case 'w': + $weeks += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getDaysPerWeek(), 'd']; + } + + break; + + case 'day': + case 'days': + case 'd': + $days += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getHoursPerDay(), 'h']; + } + + break; + + case 'hour': + case 'hours': + case 'h': + $hours += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getMinutesPerHour(), 'm']; + } + + break; + + case 'minute': + case 'minutes': + case 'm': + $minutes += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getSecondsPerMinute(), 's']; + } + + break; + + case 'second': + case 'seconds': + case 's': + $seconds += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getMillisecondsPerSecond(), 'ms']; + } + + break; + + case 'millisecond': + case 'milliseconds': + case 'milli': + case 'ms': + $milliseconds += $intValue; + + if ($fraction) { + $microseconds += round($fraction * static::getMicrosecondsPerMillisecond()); + } + + break; + + case 'microsecond': + case 'microseconds': + case 'micro': + case 'µs': + $microseconds += $intValue; + + break; + + default: + throw new InvalidIntervalException( + sprintf('Invalid part %s in definition %s', $part, $intervalDefinition) + ); + } + } + + return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $milliseconds * Carbon::MICROSECONDS_PER_MILLISECOND + $microseconds); + } + + /** + * Creates a CarbonInterval from string using a different locale. + * + * @param string $interval interval string in the given language (may also contain English). + * @param string|null $locale if locale is null or not specified, current global locale will be used instead. + * + * @return static + */ + public static function parseFromLocale($interval, $locale = null) + { + return static::fromString(Carbon::translateTimeString($interval, $locale ?: static::getLocale(), 'en')); + } + + private static function castIntervalToClass(DateInterval $interval, string $className) + { + $mainClass = DateInterval::class; + + if (!is_a($className, $mainClass, true)) { + throw new InvalidCastException("$className is not a sub-class of $mainClass."); + } + + $microseconds = $interval->f; + $instance = new $className(static::getDateIntervalSpec($interval)); + + if ($microseconds) { + $instance->f = $microseconds; + } + + if ($interval instanceof self && is_a($className, self::class, true)) { + self::copyStep($interval, $instance); + } + + self::copyNegativeUnits($interval, $instance); + + return $instance; + } + + private static function copyNegativeUnits(DateInterval $from, DateInterval $to): void + { + $to->invert = $from->invert; + + foreach (['y', 'm', 'd', 'h', 'i', 's'] as $unit) { + if ($from->$unit < 0) { + $to->$unit *= -1; + } + } + } + + private static function copyStep(self $from, self $to): void + { + $to->setStep($from->getStep()); + } + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateInterval + */ + public function cast(string $className) + { + return self::castIntervalToClass($this, $className); + } + + /** + * Create a CarbonInterval instance from a DateInterval one. Can not instance + * DateInterval objects created from DateTime::diff() as you can't externally + * set the $days field. + * + * @param DateInterval $interval + * + * @return static + */ + public static function instance(DateInterval $interval) + { + return self::castIntervalToClass($interval, static::class); + } + + /** + * Make a CarbonInterval instance from given variable if possible. + * + * Always return a new instance. Parse only strings and only these likely to be intervals (skip dates + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * + * @param mixed|int|DateInterval|string|Closure|null $interval interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return static|null + */ + public static function make($interval, $unit = null) + { + if ($unit) { + $interval = "$interval ".Carbon::pluralUnit($unit); + } + + if ($interval instanceof DateInterval) { + return static::instance($interval); + } + + if ($interval instanceof Closure) { + return new static($interval); + } + + if (!\is_string($interval)) { + return null; + } + + return static::makeFromString($interval); + } + + protected static function makeFromString(string $interval) + { + $interval = preg_replace('/\s+/', ' ', trim($interval)); + + if (preg_match('/^P[T\d]/', $interval)) { + return new static($interval); + } + + if (preg_match('/^(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+$/i', $interval)) { + return static::fromString($interval); + } + + /** @var static $interval */ + $interval = static::createFromDateString($interval); + + return !$interval || $interval->isEmpty() ? null : $interval; + } + + protected function resolveInterval($interval) + { + if (!($interval instanceof self)) { + return self::make($interval); + } + + return $interval; + } + + /** + * Sets up a DateInterval from the relative parts of the string. + * + * @param string $time + * + * @return static + * + * @link https://php.net/manual/en/dateinterval.createfromdatestring.php + */ + #[ReturnTypeWillChange] + public static function createFromDateString($time) + { + $interval = @parent::createFromDateString(strtr($time, [ + ',' => ' ', + ' and ' => ' ', + ])); + + if ($interval instanceof DateInterval) { + $interval = static::instance($interval); + } + + return $interval; + } + + /////////////////////////////////////////////////////////////////// + ///////////////////////// GETTERS AND SETTERS ///////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * Get a part of the CarbonInterval object. + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return int|float|string + */ + public function get($name) + { + if (str_starts_with($name, 'total')) { + return $this->total(substr($name, 5)); + } + + switch ($name) { + case 'years': + return $this->y; + + case 'months': + return $this->m; + + case 'dayz': + return $this->d; + + case 'hours': + return $this->h; + + case 'minutes': + return $this->i; + + case 'seconds': + return $this->s; + + case 'milli': + case 'milliseconds': + return (int) (round($this->f * Carbon::MICROSECONDS_PER_SECOND) / Carbon::MICROSECONDS_PER_MILLISECOND); + + case 'micro': + case 'microseconds': + return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND); + + case 'microExcludeMilli': + return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND) % Carbon::MICROSECONDS_PER_MILLISECOND; + + case 'weeks': + return (int) ($this->d / static::getDaysPerWeek()); + + case 'daysExcludeWeeks': + case 'dayzExcludeWeeks': + return $this->d % static::getDaysPerWeek(); + + case 'locale': + return $this->getTranslatorLocale(); + + default: + throw new UnknownGetterException($name); + } + } + + /** + * Get a part of the CarbonInterval object. + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return int|float|string + */ + public function __get($name) + { + return $this->get($name); + } + + /** + * Set a part of the CarbonInterval object. + * + * @param string|array $name + * @param int $value + * + * @throws UnknownSetterException + * + * @return $this + */ + public function set($name, $value = null) + { + $properties = \is_array($name) ? $name : [$name => $value]; + + foreach ($properties as $key => $value) { + switch (Carbon::singularUnit(rtrim($key, 'z'))) { + case 'year': + $this->y = $value; + + break; + + case 'month': + $this->m = $value; + + break; + + case 'week': + $this->d = $value * static::getDaysPerWeek(); + + break; + + case 'day': + $this->d = $value; + + break; + + case 'daysexcludeweek': + case 'dayzexcludeweek': + $this->d = $this->weeks * static::getDaysPerWeek() + $value; + + break; + + case 'hour': + $this->h = $value; + + break; + + case 'minute': + $this->i = $value; + + break; + + case 'second': + $this->s = $value; + + break; + + case 'milli': + case 'millisecond': + $this->microseconds = $value * Carbon::MICROSECONDS_PER_MILLISECOND + $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND; + + break; + + case 'micro': + case 'microsecond': + $this->f = $value / Carbon::MICROSECONDS_PER_SECOND; + + break; + + default: + if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + throw new UnknownSetterException($key); + } + + $this->$key = $value; + } + } + + return $this; + } + + /** + * Set a part of the CarbonInterval object. + * + * @param string $name + * @param int $value + * + * @throws UnknownSetterException + */ + public function __set($name, $value) + { + $this->set($name, $value); + } + + /** + * Allow setting of weeks and days to be cumulative. + * + * @param int $weeks Number of weeks to set + * @param int $days Number of days to set + * + * @return static + */ + public function weeksAndDays($weeks, $days) + { + $this->dayz = ($weeks * static::getDaysPerWeek()) + $days; + + return $this; + } + + /** + * Returns true if the interval is empty for each unit. + * + * @return bool + */ + public function isEmpty() + { + return $this->years === 0 && + $this->months === 0 && + $this->dayz === 0 && + !$this->days && + $this->hours === 0 && + $this->minutes === 0 && + $this->seconds === 0 && + $this->microseconds === 0; + } + + /** + * Register a custom macro. + * + * @example + * ``` + * CarbonInterval::macro('twice', function () { + * return $this->times(2); + * }); + * echo CarbonInterval::hours(2)->twice(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro) + { + static::$macros[$name] = $macro; + } + + /** + * Register macros from a mixin object. + * + * @example + * ``` + * CarbonInterval::mixin(new class { + * public function daysToHours() { + * return function () { + * $this->hours += $this->days; + * $this->days = 0; + * + * return $this; + * }; + * } + * public function hoursToDays() { + * return function () { + * $this->days += $this->hours; + * $this->hours = 0; + * + * return $this; + * }; + * } + * }); + * echo CarbonInterval::hours(5)->hoursToDays() . "\n"; + * echo CarbonInterval::days(5)->daysToHours() . "\n"; + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin) + { + static::baseMixin($mixin); + } + + /** + * Check if macro is registered. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$macros[$name]); + } + + /** + * Call given macro. + * + * @param string $name + * @param array $parameters + * + * @return mixed + */ + protected function callMacro($name, $parameters) + { + $macro = static::$macros[$name]; + + if ($macro instanceof Closure) { + $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + } + + /** + * Allow fluent calls on the setters... CarbonInterval::years(3)->months(5)->day(). + * + * Note: This is done using the magic method to allow static and instance methods to + * have the same names. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws BadFluentSetterException|Throwable + * + * @return static + */ + public function __call($method, $parameters) + { + if (static::hasMacro($method)) { + return static::bindMacroContext($this, function () use (&$method, &$parameters) { + return $this->callMacro($method, $parameters); + }); + } + + $roundedValue = $this->callRoundMethod($method, $parameters); + + if ($roundedValue !== null) { + return $roundedValue; + } + + if (preg_match('/^(?add|sub)(?[A-Z].*)$/', $method, $match)) { + return $this->{$match['method']}($parameters[0], $match['unit']); + } + + try { + $this->set($method, \count($parameters) === 0 ? 1 : $parameters[0]); + } catch (UnknownSetterException $exception) { + if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + throw new BadFluentSetterException($method, 0, $exception); + } + } + + return $this; + } + + protected function getForHumansInitialVariables($syntax, $short) + { + if (\is_array($syntax)) { + return $syntax; + } + + if (\is_int($short)) { + return [ + 'parts' => $short, + 'short' => false, + ]; + } + + if (\is_bool($syntax)) { + return [ + 'short' => $syntax, + 'syntax' => CarbonInterface::DIFF_ABSOLUTE, + ]; + } + + return []; + } + + /** + * @param mixed $syntax + * @param mixed $short + * @param mixed $parts + * @param mixed $options + * + * @return array + */ + protected function getForHumansParameters($syntax = null, $short = false, $parts = -1, $options = null) + { + $optionalSpace = ' '; + $default = $this->getTranslationMessage('list.0') ?? $this->getTranslationMessage('list') ?? ' '; + $join = $default === '' ? '' : ' '; + $altNumbers = false; + $aUnit = false; + $minimumUnit = 's'; + $skip = []; + extract($this->getForHumansInitialVariables($syntax, $short)); + $skip = array_filter((array) $skip, static function ($value) { + return \is_string($value) && $value !== ''; + }); + + if ($syntax === null) { + $syntax = CarbonInterface::DIFF_ABSOLUTE; + } + + if ($parts === -1) { + $parts = INF; + } + + if ($options === null) { + $options = static::getHumanDiffOptions(); + } + + if ($join === false) { + $join = ' '; + } elseif ($join === true) { + $join = [ + $default, + $this->getTranslationMessage('list.1') ?? $default, + ]; + } + + if ($altNumbers && $altNumbers !== true) { + $language = new Language($this->locale); + $altNumbers = \in_array($language->getCode(), (array) $altNumbers, true); + } + + if (\is_array($join)) { + [$default, $last] = $join; + + if ($default !== ' ') { + $optionalSpace = ''; + } + + $join = function ($list) use ($default, $last) { + if (\count($list) < 2) { + return implode('', $list); + } + + $end = array_pop($list); + + return implode($default, $list).$last.$end; + }; + } + + if (\is_string($join)) { + if ($join !== ' ') { + $optionalSpace = ''; + } + + $glue = $join; + $join = function ($list) use ($glue) { + return implode($glue, $list); + }; + } + + $interpolations = [ + ':optional-space' => $optionalSpace, + ]; + + return [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit, $skip]; + } + + protected static function getRoundingMethodFromOptions(int $options): ?string + { + if ($options & CarbonInterface::ROUND) { + return 'round'; + } + + if ($options & CarbonInterface::CEIL) { + return 'ceil'; + } + + if ($options & CarbonInterface::FLOOR) { + return 'floor'; + } + + return null; + } + + /** + * Returns interval values as an array where key are the unit names and values the counts. + * + * @return int[] + */ + public function toArray() + { + return [ + 'years' => $this->years, + 'months' => $this->months, + 'weeks' => $this->weeks, + 'days' => $this->daysExcludeWeeks, + 'hours' => $this->hours, + 'minutes' => $this->minutes, + 'seconds' => $this->seconds, + 'microseconds' => $this->microseconds, + ]; + } + + /** + * Returns interval non-zero values as an array where key are the unit names and values the counts. + * + * @return int[] + */ + public function getNonZeroValues() + { + return array_filter($this->toArray(), 'intval'); + } + + /** + * Returns interval values as an array where key are the unit names and values the counts + * from the biggest non-zero one the the smallest non-zero one. + * + * @return int[] + */ + public function getValuesSequence() + { + $nonZeroValues = $this->getNonZeroValues(); + + if ($nonZeroValues === []) { + return []; + } + + $keys = array_keys($nonZeroValues); + $firstKey = $keys[0]; + $lastKey = $keys[\count($keys) - 1]; + $values = []; + $record = false; + + foreach ($this->toArray() as $unit => $count) { + if ($unit === $firstKey) { + $record = true; + } + + if ($record) { + $values[$unit] = $count; + } + + if ($unit === $lastKey) { + $record = false; + } + } + + return $values; + } + + /** + * Get the current interval in a human readable format in the current locale. + * + * @example + * ``` + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans() . "\n"; + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 2]) . "\n"; + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 3, 'join' => true]) . "\n"; + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['short' => true]) . "\n"; + * echo CarbonInterval::fromString('1d 24h')->forHumans(['join' => ' or ']) . "\n"; + * echo CarbonInterval::fromString('1d 24h')->forHumans(['minimumUnit' => 'hour']) . "\n"; + * ``` + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'skip' entry, list of units to skip (array of strings or a single string, + * ` it can be the unit name (singular or plural) or its shortcut + * ` (y, m, w, d, h, min, s, ms, µs). + * - 'aUnit' entry, prefer "an hour" over "1 hour" if true + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: -1: no limits) + * @param int $options human diff options + * + * @throws Exception + * + * @return string + */ + public function forHumans($syntax = null, $short = false, $parts = -1, $options = null) + { + [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit, $skip] = $this + ->getForHumansParameters($syntax, $short, $parts, $options); + + $interval = []; + + $syntax = (int) ($syntax ?? CarbonInterface::DIFF_ABSOLUTE); + $absolute = $syntax === CarbonInterface::DIFF_ABSOLUTE; + $relativeToNow = $syntax === CarbonInterface::DIFF_RELATIVE_TO_NOW; + $count = 1; + $unit = $short ? 's' : 'second'; + $isFuture = $this->invert === 1; + $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); + $declensionMode = null; + + /** @var \Symfony\Component\Translation\Translator $translator */ + $translator = $this->getLocalTranslator(); + + $handleDeclensions = function ($unit, $count, $index = 0, $parts = 1) use ($interpolations, $transId, $translator, $altNumbers, $absolute, &$declensionMode) { + if (!$absolute) { + $declensionMode = $declensionMode ?? $this->translate($transId.'_mode'); + + if ($this->needsDeclension($declensionMode, $index, $parts)) { + // Some languages have special pluralization for past and future tense. + $key = $unit.'_'.$transId; + $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers); + + if ($result !== $key) { + return $result; + } + } + } + + $result = $this->translate($unit, $interpolations, $count, $translator, $altNumbers); + + if ($result !== $unit) { + return $result; + } + + return null; + }; + + $intervalValues = $this; + $method = static::getRoundingMethodFromOptions($options); + + if ($method) { + $previousCount = INF; + + while ( + \count($intervalValues->getNonZeroValues()) > $parts && + ($count = \count($keys = array_keys($intervalValues->getValuesSequence()))) > 1 + ) { + $index = min($count, $previousCount - 1) - 2; + + if ($index < 0) { + break; + } + + $intervalValues = $this->copy()->roundUnit( + $keys[$index], + 1, + $method + ); + $previousCount = $count; + } + } + + $diffIntervalArray = [ + ['value' => $intervalValues->years, 'unit' => 'year', 'unitShort' => 'y'], + ['value' => $intervalValues->months, 'unit' => 'month', 'unitShort' => 'm'], + ['value' => $intervalValues->weeks, 'unit' => 'week', 'unitShort' => 'w'], + ['value' => $intervalValues->daysExcludeWeeks, 'unit' => 'day', 'unitShort' => 'd'], + ['value' => $intervalValues->hours, 'unit' => 'hour', 'unitShort' => 'h'], + ['value' => $intervalValues->minutes, 'unit' => 'minute', 'unitShort' => 'min'], + ['value' => $intervalValues->seconds, 'unit' => 'second', 'unitShort' => 's'], + ['value' => $intervalValues->milliseconds, 'unit' => 'millisecond', 'unitShort' => 'ms'], + ['value' => $intervalValues->microExcludeMilli, 'unit' => 'microsecond', 'unitShort' => 'µs'], + ]; + + if (!empty($skip)) { + foreach ($diffIntervalArray as $index => &$unitData) { + $nextIndex = $index + 1; + + if ($unitData['value'] && + isset($diffIntervalArray[$nextIndex]) && + \count(array_intersect([$unitData['unit'], $unitData['unit'].'s', $unitData['unitShort']], $skip)) + ) { + $diffIntervalArray[$nextIndex]['value'] += $unitData['value'] * + self::getFactorWithDefault($diffIntervalArray[$nextIndex]['unit'], $unitData['unit']); + $unitData['value'] = 0; + } + } + } + + $transChoice = function ($short, $unitData, $index, $parts) use ($absolute, $handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) { + $count = $unitData['value']; + + if ($short) { + $result = $handleDeclensions($unitData['unitShort'], $count, $index, $parts); + + if ($result !== null) { + return $result; + } + } elseif ($aUnit) { + $result = $handleDeclensions('a_'.$unitData['unit'], $count, $index, $parts); + + if ($result !== null) { + return $result; + } + } + + if (!$absolute) { + return $handleDeclensions($unitData['unit'], $count, $index, $parts); + } + + return $this->translate($unitData['unit'], $interpolations, $count, $translator, $altNumbers); + }; + + $fallbackUnit = ['second', 's']; + + foreach ($diffIntervalArray as $diffIntervalData) { + if ($diffIntervalData['value'] > 0) { + $unit = $short ? $diffIntervalData['unitShort'] : $diffIntervalData['unit']; + $count = $diffIntervalData['value']; + $interval[] = [$short, $diffIntervalData]; + } elseif ($options & CarbonInterface::SEQUENTIAL_PARTS_ONLY && \count($interval) > 0) { + break; + } + + // break the loop after we get the required number of parts in array + if (\count($interval) >= $parts) { + break; + } + + // break the loop after we have reached the minimum unit + if (\in_array($minimumUnit, [$diffIntervalData['unit'], $diffIntervalData['unitShort']], true)) { + $fallbackUnit = [$diffIntervalData['unit'], $diffIntervalData['unitShort']]; + + break; + } + } + + $actualParts = \count($interval); + + foreach ($interval as $index => &$item) { + $item = $transChoice($item[0], $item[1], $index, $actualParts); + } + + if (\count($interval) === 0) { + if ($relativeToNow && $options & CarbonInterface::JUST_NOW) { + $key = 'diff_now'; + $translation = $this->translate($key, $interpolations, null, $translator); + + if ($translation !== $key) { + return $translation; + } + } + + $count = $options & CarbonInterface::NO_ZERO_DIFF ? 1 : 0; + $unit = $fallbackUnit[$short ? 1 : 0]; + $interval[] = $this->translate($unit, $interpolations, $count, $translator, $altNumbers); + } + + // join the interval parts by a space + $time = $join($interval); + + unset($diffIntervalArray, $interval); + + if ($absolute) { + return $time; + } + + $isFuture = $this->invert === 1; + + $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); + + if ($parts === 1) { + if ($relativeToNow && $unit === 'day') { + if ($count === 1 && $options & CarbonInterface::ONE_DAY_WORDS) { + $key = $isFuture ? 'diff_tomorrow' : 'diff_yesterday'; + $translation = $this->translate($key, $interpolations, null, $translator); + + if ($translation !== $key) { + return $translation; + } + } + + if ($count === 2 && $options & CarbonInterface::TWO_DAY_WORDS) { + $key = $isFuture ? 'diff_after_tomorrow' : 'diff_before_yesterday'; + $translation = $this->translate($key, $interpolations, null, $translator); + + if ($translation !== $key) { + return $translation; + } + } + } + + $aTime = $aUnit ? $handleDeclensions('a_'.$unit, $count) : null; + + $time = $aTime ?: $handleDeclensions($unit, $count) ?: $time; + } + + $time = [':time' => $time]; + + return $this->translate($transId, array_merge($time, $interpolations, $time), null, $translator); + } + + /** + * Format the instance as a string using the forHumans() function. + * + * @throws Exception + * + * @return string + */ + public function __toString() + { + $format = $this->localToStringFormat; + + if (!$format) { + return $this->forHumans(); + } + + if ($format instanceof Closure) { + return $format($this); + } + + return $this->format($format); + } + + /** + * Return native DateInterval PHP object matching the current instance. + * + * @example + * ``` + * var_dump(CarbonInterval::hours(2)->toDateInterval()); + * ``` + * + * @return DateInterval + */ + public function toDateInterval() + { + return self::castIntervalToClass($this, DateInterval::class); + } + + /** + * Convert the interval to a CarbonPeriod. + * + * @param DateTimeInterface|string|int ...$params Start date, [end date or recurrences] and optional settings. + * + * @return CarbonPeriod + */ + public function toPeriod(...$params) + { + if ($this->tzName) { + $tz = \is_string($this->tzName) ? new DateTimeZone($this->tzName) : $this->tzName; + + if ($tz instanceof DateTimeZone) { + array_unshift($params, $tz); + } + } + + return CarbonPeriod::create($this, ...$params); + } + + /** + * Invert the interval. + * + * @param bool|int $inverted if a parameter is passed, the passed value casted as 1 or 0 is used + * as the new value of the ->invert property. + * + * @return $this + */ + public function invert($inverted = null) + { + $this->invert = (\func_num_args() === 0 ? !$this->invert : $inverted) ? 1 : 0; + + return $this; + } + + protected function solveNegativeInterval() + { + if (!$this->isEmpty() && $this->years <= 0 && $this->months <= 0 && $this->dayz <= 0 && $this->hours <= 0 && $this->minutes <= 0 && $this->seconds <= 0 && $this->microseconds <= 0) { + $this->years *= -1; + $this->months *= -1; + $this->dayz *= -1; + $this->hours *= -1; + $this->minutes *= -1; + $this->seconds *= -1; + $this->microseconds *= -1; + $this->invert(); + } + + return $this; + } + + /** + * Add the passed interval to the current instance. + * + * @param string|DateInterval $unit + * @param int|float $value + * + * @return $this + */ + public function add($unit, $value = 1) + { + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + if (\is_string($unit) && !preg_match('/^\s*\d/', $unit)) { + $unit = "$value $unit"; + $value = 1; + } + + $interval = static::make($unit); + + if (!$interval) { + throw new InvalidIntervalException('This type of data cannot be added/subtracted.'); + } + + if ($value !== 1) { + $interval->times($value); + } + + $sign = ($this->invert === 1) !== ($interval->invert === 1) ? -1 : 1; + $this->years += $interval->y * $sign; + $this->months += $interval->m * $sign; + $this->dayz += ($interval->days === false ? $interval->d : $interval->days) * $sign; + $this->hours += $interval->h * $sign; + $this->minutes += $interval->i * $sign; + $this->seconds += $interval->s * $sign; + $this->microseconds += $interval->microseconds * $sign; + + $this->solveNegativeInterval(); + + return $this; + } + + /** + * Subtract the passed interval to the current instance. + * + * @param string|DateInterval $unit + * @param int|float $value + * + * @return $this + */ + public function sub($unit, $value = 1) + { + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + return $this->add($unit, -(float) $value); + } + + /** + * Subtract the passed interval to the current instance. + * + * @param string|DateInterval $unit + * @param int|float $value + * + * @return $this + */ + public function subtract($unit, $value = 1) + { + return $this->sub($unit, $value); + } + + /** + * Add given parameters to the current interval. + * + * @param int $years + * @param int $months + * @param int|float $weeks + * @param int|float $days + * @param int|float $hours + * @param int|float $minutes + * @param int|float $seconds + * @param int|float $microseconds + * + * @return $this + */ + public function plus( + $years = 0, + $months = 0, + $weeks = 0, + $days = 0, + $hours = 0, + $minutes = 0, + $seconds = 0, + $microseconds = 0 + ): self { + return $this->add(" + $years years $months months $weeks weeks $days days + $hours hours $minutes minutes $seconds seconds $microseconds microseconds + "); + } + + /** + * Add given parameters to the current interval. + * + * @param int $years + * @param int $months + * @param int|float $weeks + * @param int|float $days + * @param int|float $hours + * @param int|float $minutes + * @param int|float $seconds + * @param int|float $microseconds + * + * @return $this + */ + public function minus( + $years = 0, + $months = 0, + $weeks = 0, + $days = 0, + $hours = 0, + $minutes = 0, + $seconds = 0, + $microseconds = 0 + ): self { + return $this->sub(" + $years years $months months $weeks weeks $days days + $hours hours $minutes minutes $seconds seconds $microseconds microseconds + "); + } + + /** + * Multiply current instance given number of times. times() is naive, it multiplies each unit + * (so day can be greater than 31, hour can be greater than 23, etc.) and the result is rounded + * separately for each unit. + * + * Use times() when you want a fast and approximated calculation that does not cascade units. + * + * For a precise and cascaded calculation, + * + * @see multiply() + * + * @param float|int $factor + * + * @return $this + */ + public function times($factor) + { + if ($factor < 0) { + $this->invert = $this->invert ? 0 : 1; + $factor = -$factor; + } + + $this->years = (int) round($this->years * $factor); + $this->months = (int) round($this->months * $factor); + $this->dayz = (int) round($this->dayz * $factor); + $this->hours = (int) round($this->hours * $factor); + $this->minutes = (int) round($this->minutes * $factor); + $this->seconds = (int) round($this->seconds * $factor); + $this->microseconds = (int) round($this->microseconds * $factor); + + return $this; + } + + /** + * Divide current instance by a given divider. shares() is naive, it divides each unit separately + * and the result is rounded for each unit. So 5 hours and 20 minutes shared by 3 becomes 2 hours + * and 7 minutes. + * + * Use shares() when you want a fast and approximated calculation that does not cascade units. + * + * For a precise and cascaded calculation, + * + * @see divide() + * + * @param float|int $divider + * + * @return $this + */ + public function shares($divider) + { + return $this->times(1 / $divider); + } + + protected function copyProperties(self $interval, $ignoreSign = false) + { + $this->years = $interval->years; + $this->months = $interval->months; + $this->dayz = $interval->dayz; + $this->hours = $interval->hours; + $this->minutes = $interval->minutes; + $this->seconds = $interval->seconds; + $this->microseconds = $interval->microseconds; + + if (!$ignoreSign) { + $this->invert = $interval->invert; + } + + return $this; + } + + /** + * Multiply and cascade current instance by a given factor. + * + * @param float|int $factor + * + * @return $this + */ + public function multiply($factor) + { + if ($factor < 0) { + $this->invert = $this->invert ? 0 : 1; + $factor = -$factor; + } + + $yearPart = (int) floor($this->years * $factor); // Split calculation to prevent imprecision + + if ($yearPart) { + $this->years -= $yearPart / $factor; + } + + return $this->copyProperties( + static::create($yearPart) + ->microseconds(abs($this->totalMicroseconds) * $factor) + ->cascade(), + true + ); + } + + /** + * Divide and cascade current instance by a given divider. + * + * @param float|int $divider + * + * @return $this + */ + public function divide($divider) + { + return $this->multiply(1 / $divider); + } + + /** + * Get the interval_spec string of a date interval. + * + * @param DateInterval $interval + * + * @return string + */ + public static function getDateIntervalSpec(DateInterval $interval, bool $microseconds = false) + { + $date = array_filter([ + static::PERIOD_YEARS => abs($interval->y), + static::PERIOD_MONTHS => abs($interval->m), + static::PERIOD_DAYS => abs($interval->d), + ]); + + $seconds = abs($interval->s); + if ($microseconds && $interval->f > 0) { + $seconds = sprintf('%d.%06d', $seconds, abs($interval->f) * 1000000); + } + + $time = array_filter([ + static::PERIOD_HOURS => abs($interval->h), + static::PERIOD_MINUTES => abs($interval->i), + static::PERIOD_SECONDS => $seconds, + ]); + + $specString = static::PERIOD_PREFIX; + + foreach ($date as $key => $value) { + $specString .= $value.$key; + } + + if (\count($time) > 0) { + $specString .= static::PERIOD_TIME_PREFIX; + foreach ($time as $key => $value) { + $specString .= $value.$key; + } + } + + return $specString === static::PERIOD_PREFIX ? 'PT0S' : $specString; + } + + /** + * Get the interval_spec string. + * + * @return string + */ + public function spec(bool $microseconds = false) + { + return static::getDateIntervalSpec($this, $microseconds); + } + + /** + * Comparing 2 date intervals. + * + * @param DateInterval $first + * @param DateInterval $second + * + * @return int + */ + public static function compareDateIntervals(DateInterval $first, DateInterval $second) + { + $current = Carbon::now(); + $passed = $current->avoidMutation()->add($second); + $current->add($first); + + if ($current < $passed) { + return -1; + } + if ($current > $passed) { + return 1; + } + + return 0; + } + + /** + * Comparing with passed interval. + * + * @param DateInterval $interval + * + * @return int + */ + public function compare(DateInterval $interval) + { + return static::compareDateIntervals($this, $interval); + } + + private function invertCascade(array $values) + { + return $this->set(array_map(function ($value) { + return -$value; + }, $values))->doCascade(true)->invert(); + } + + private function doCascade(bool $deep) + { + $originalData = $this->toArray(); + $originalData['milliseconds'] = (int) ($originalData['microseconds'] / static::getMicrosecondsPerMillisecond()); + $originalData['microseconds'] = $originalData['microseconds'] % static::getMicrosecondsPerMillisecond(); + $originalData['daysExcludeWeeks'] = $originalData['days']; + unset($originalData['days']); + $newData = $originalData; + + foreach (self::getFlipCascadeFactors() as $source => [$target, $factor]) { + foreach (['source', 'target'] as $key) { + if ($$key === 'dayz') { + $$key = 'daysExcludeWeeks'; + } + } + + $value = $newData[$source]; + $modulo = ($factor + ($value % $factor)) % $factor; + $newData[$source] = $modulo; + $newData[$target] += ($value - $modulo) / $factor; + } + + $positive = null; + + if (!$deep) { + foreach ($newData as $value) { + if ($value) { + if ($positive === null) { + $positive = ($value > 0); + + continue; + } + + if (($value > 0) !== $positive) { + return $this->invertCascade($originalData) + ->solveNegativeInterval(); + } + } + } + } + + return $this->set($newData) + ->solveNegativeInterval(); + } + + /** + * Convert overflowed values into bigger units. + * + * @return $this + */ + public function cascade() + { + return $this->doCascade(false); + } + + public function hasNegativeValues(): bool + { + foreach ($this->toArray() as $value) { + if ($value < 0) { + return true; + } + } + + return false; + } + + public function hasPositiveValues(): bool + { + foreach ($this->toArray() as $value) { + if ($value > 0) { + return true; + } + } + + return false; + } + + /** + * Get amount of given unit equivalent to the interval. + * + * @param string $unit + * + * @throws UnknownUnitException|UnitNotConfiguredException + * + * @return float + */ + public function total($unit) + { + $realUnit = $unit = strtolower($unit); + + if (\in_array($unit, ['days', 'weeks'])) { + $realUnit = 'dayz'; + } elseif (!\in_array($unit, ['microseconds', 'milliseconds', 'seconds', 'minutes', 'hours', 'dayz', 'months', 'years'])) { + throw new UnknownUnitException($unit); + } + + $result = 0; + $cumulativeFactor = 0; + $unitFound = false; + $factors = self::getFlipCascadeFactors(); + $daysPerWeek = static::getDaysPerWeek(); + + $values = [ + 'years' => $this->years, + 'months' => $this->months, + 'weeks' => (int) ($this->d / $daysPerWeek), + 'dayz' => $this->d % $daysPerWeek, + 'hours' => $this->hours, + 'minutes' => $this->minutes, + 'seconds' => $this->seconds, + 'milliseconds' => (int) ($this->microseconds / Carbon::MICROSECONDS_PER_MILLISECOND), + 'microseconds' => $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND, + ]; + + if (isset($factors['dayz']) && $factors['dayz'][0] !== 'weeks') { + $values['dayz'] += $values['weeks'] * $daysPerWeek; + $values['weeks'] = 0; + } + + foreach ($factors as $source => [$target, $factor]) { + if ($source === $realUnit) { + $unitFound = true; + $value = $values[$source]; + $result += $value; + $cumulativeFactor = 1; + } + + if ($factor === false) { + if ($unitFound) { + break; + } + + $result = 0; + $cumulativeFactor = 0; + + continue; + } + + if ($target === $realUnit) { + $unitFound = true; + } + + if ($cumulativeFactor) { + $cumulativeFactor *= $factor; + $result += $values[$target] * $cumulativeFactor; + + continue; + } + + $value = $values[$source]; + + $result = ($result + $value) / $factor; + } + + if (isset($target) && !$cumulativeFactor) { + $result += $values[$target]; + } + + if (!$unitFound) { + throw new UnitNotConfiguredException($unit); + } + + if ($this->invert) { + $result *= -1; + } + + if ($unit === 'weeks') { + return $result / $daysPerWeek; + } + + return $result; + } + + /** + * Determines if the instance is equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see equalTo() + * + * @return bool + */ + public function eq($interval): bool + { + return $this->equalTo($interval); + } + + /** + * Determines if the instance is equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function equalTo($interval): bool + { + $interval = $this->resolveInterval($interval); + + return $interval !== null && $this->totalMicroseconds === $interval->totalMicroseconds; + } + + /** + * Determines if the instance is not equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($interval): bool + { + return $this->notEqualTo($interval); + } + + /** + * Determines if the instance is not equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function notEqualTo($interval): bool + { + return !$this->eq($interval); + } + + /** + * Determines if the instance is greater (longer) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see greaterThan() + * + * @return bool + */ + public function gt($interval): bool + { + return $this->greaterThan($interval); + } + + /** + * Determines if the instance is greater (longer) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function greaterThan($interval): bool + { + $interval = $this->resolveInterval($interval); + + return $interval === null || $this->totalMicroseconds > $interval->totalMicroseconds; + } + + /** + * Determines if the instance is greater (longer) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see greaterThanOrEqualTo() + * + * @return bool + */ + public function gte($interval): bool + { + return $this->greaterThanOrEqualTo($interval); + } + + /** + * Determines if the instance is greater (longer) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function greaterThanOrEqualTo($interval): bool + { + return $this->greaterThan($interval) || $this->equalTo($interval); + } + + /** + * Determines if the instance is less (shorter) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see lessThan() + * + * @return bool + */ + public function lt($interval): bool + { + return $this->lessThan($interval); + } + + /** + * Determines if the instance is less (shorter) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function lessThan($interval): bool + { + $interval = $this->resolveInterval($interval); + + return $interval !== null && $this->totalMicroseconds < $interval->totalMicroseconds; + } + + /** + * Determines if the instance is less (shorter) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see lessThanOrEqualTo() + * + * @return bool + */ + public function lte($interval): bool + { + return $this->lessThanOrEqualTo($interval); + } + + /** + * Determines if the instance is less (shorter) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function lessThanOrEqualTo($interval): bool + { + return $this->lessThan($interval) || $this->equalTo($interval); + } + + /** + * Determines if the instance is between two others. + * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * + * @example + * ``` + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(2)); // true + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(2), false); // false + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function between($interval1, $interval2, $equal = true): bool + { + return $equal + ? $this->greaterThanOrEqualTo($interval1) && $this->lessThanOrEqualTo($interval2) + : $this->greaterThan($interval1) && $this->lessThan($interval2); + } + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // true + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * + * @return bool + */ + public function betweenIncluded($interval1, $interval2): bool + { + return $this->between($interval1, $interval2, true); + } + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // false + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * + * @return bool + */ + public function betweenExcluded($interval1, $interval2): bool + { + return $this->between($interval1, $interval2, false); + } + + /** + * Determines if the instance is between two others + * + * @example + * ``` + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(2)); // true + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(2), false); // false + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function isBetween($interval1, $interval2, $equal = true): bool + { + return $this->between($interval1, $interval2, $equal); + } + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int|string|DateInterval|null $precision + * @param string $function + * + * @throws Exception + * + * @return $this + */ + public function roundUnit($unit, $precision = 1, $function = 'round') + { + $base = CarbonImmutable::parse('2000-01-01 00:00:00', 'UTC') + ->roundUnit($unit, $precision, $function); + $next = $base->add($this); + $inverted = $next < $base; + + if ($inverted) { + $next = $base->sub($this); + } + + $this->copyProperties( + $next + ->roundUnit($unit, $precision, $function) + ->diffAsCarbonInterval($base) + ); + + return $this->invert($inverted); + } + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function floorUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'floor'); + } + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function ceilUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'ceil'); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|DateInterval|null $precision + * @param string $function + * + * @throws Exception + * + * @return $this + */ + public function round($precision = 1, $function = 'round') + { + return $this->roundWith($precision, $function); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function floor($precision = 1) + { + return $this->round($precision, 'floor'); + } + + /** + * Ceil the current instance second with given precision if specified. + * + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function ceil($precision = 1) + { + return $this->round($precision, 'ceil'); + } + + private function needsDeclension(string $mode, int $index, int $parts): bool + { + switch ($mode) { + case 'last': + return $index === $parts - 1; + default: + return true; + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php new file mode 100644 index 00000000000..e2be2cdae4f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php @@ -0,0 +1,2643 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\EndLessPeriodException; +use Carbon\Exceptions\InvalidCastException; +use Carbon\Exceptions\InvalidIntervalException; +use Carbon\Exceptions\InvalidPeriodDateException; +use Carbon\Exceptions\InvalidPeriodParameterException; +use Carbon\Exceptions\NotACarbonClassException; +use Carbon\Exceptions\NotAPeriodException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownMethodException; +use Carbon\Exceptions\UnreachableException; +use Carbon\Traits\IntervalRounding; +use Carbon\Traits\Mixin; +use Carbon\Traits\Options; +use Closure; +use Countable; +use DateInterval; +use DatePeriod; +use DateTime; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; +use InvalidArgumentException; +use Iterator; +use JsonSerializable; +use ReflectionException; +use ReturnTypeWillChange; +use RuntimeException; + +/** + * Substitution of DatePeriod with some modifications and many more features. + * + * @property-read int|float $recurrences number of recurrences (if end not set). + * @property-read bool $include_start_date rather the start date is included in the iteration. + * @property-read bool $include_end_date rather the end date is included in the iteration (if recurrences not set). + * @property-read CarbonInterface $start Period start date. + * @property-read CarbonInterface $current Current date from the iteration. + * @property-read CarbonInterface $end Period end date. + * @property-read CarbonInterval $interval Underlying date interval instance. Always present, one day by default. + * + * @method static CarbonPeriod start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance. + * @method static CarbonPeriod since($date, $inclusive = null) Alias for start(). + * @method static CarbonPeriod sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance. + * @method static CarbonPeriod end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance. + * @method static CarbonPeriod until($date = null, $inclusive = null) Alias for end(). + * @method static CarbonPeriod untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance. + * @method static CarbonPeriod dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. + * @method static CarbonPeriod between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. + * @method static CarbonPeriod recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance. + * @method static CarbonPeriod times($recurrences = null) Alias for recurrences(). + * @method static CarbonPeriod options($options = null) Create instance with options or modify the options if called on an instance. + * @method static CarbonPeriod toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance. + * @method static CarbonPeriod filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance. + * @method static CarbonPeriod push($callback, $name = null) Alias for filter(). + * @method static CarbonPeriod prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance. + * @method static CarbonPeriod filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance. + * @method static CarbonPeriod interval($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static CarbonPeriod each($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static CarbonPeriod every($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static CarbonPeriod step($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static CarbonPeriod stepBy($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static CarbonPeriod invert() Create instance with inverted date interval or invert the interval if called on an instance. + * @method static CarbonPeriod years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance. + * @method static CarbonPeriod year($years = 1) Alias for years(). + * @method static CarbonPeriod months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance. + * @method static CarbonPeriod month($months = 1) Alias for months(). + * @method static CarbonPeriod weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance. + * @method static CarbonPeriod week($weeks = 1) Alias for weeks(). + * @method static CarbonPeriod days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance. + * @method static CarbonPeriod dayz($days = 1) Alias for days(). + * @method static CarbonPeriod day($days = 1) Alias for days(). + * @method static CarbonPeriod hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance. + * @method static CarbonPeriod hour($hours = 1) Alias for hours(). + * @method static CarbonPeriod minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance. + * @method static CarbonPeriod minute($minutes = 1) Alias for minutes(). + * @method static CarbonPeriod seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance. + * @method static CarbonPeriod second($seconds = 1) Alias for seconds(). + * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundWeek(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundWeeks(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorWeek(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorWeeks(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilWeek(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilWeeks(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class CarbonPeriod implements Iterator, Countable, JsonSerializable +{ + use IntervalRounding; + use Mixin { + Mixin::mixin as baseMixin; + } + use Options; + + /** + * Built-in filter for limit by recurrences. + * + * @var callable + */ + public const RECURRENCES_FILTER = [self::class, 'filterRecurrences']; + + /** + * Built-in filter for limit to an end. + * + * @var callable + */ + public const END_DATE_FILTER = [self::class, 'filterEndDate']; + + /** + * Special value which can be returned by filters to end iteration. Also a filter. + * + * @var callable + */ + public const END_ITERATION = [self::class, 'endIteration']; + + /** + * Exclude start date from iteration. + * + * @var int + */ + public const EXCLUDE_START_DATE = 1; + + /** + * Exclude end date from iteration. + * + * @var int + */ + public const EXCLUDE_END_DATE = 2; + + /** + * Yield CarbonImmutable instances. + * + * @var int + */ + public const IMMUTABLE = 4; + + /** + * Number of maximum attempts before giving up on finding next valid date. + * + * @var int + */ + public const NEXT_MAX_ATTEMPTS = 1000; + + /** + * Number of maximum attempts before giving up on finding end date. + * + * @var int + */ + public const END_MAX_ATTEMPTS = 10000; + + /** + * The registered macros. + * + * @var array + */ + protected static $macros = []; + + /** + * Date class of iteration items. + * + * @var string + */ + protected $dateClass = Carbon::class; + + /** + * Underlying date interval instance. Always present, one day by default. + * + * @var CarbonInterval + */ + protected $dateInterval; + + /** + * Whether current date interval was set by default. + * + * @var bool + */ + protected $isDefaultInterval; + + /** + * The filters stack. + * + * @var array + */ + protected $filters = []; + + /** + * Period start date. Applied on rewind. Always present, now by default. + * + * @var CarbonInterface + */ + protected $startDate; + + /** + * Period end date. For inverted interval should be before the start date. Applied via a filter. + * + * @var CarbonInterface|null + */ + protected $endDate; + + /** + * Limit for number of recurrences. Applied via a filter. + * + * @var int|null + */ + protected $recurrences; + + /** + * Iteration options. + * + * @var int + */ + protected $options; + + /** + * Index of current date. Always sequential, even if some dates are skipped by filters. + * Equal to null only before the first iteration. + * + * @var int + */ + protected $key; + + /** + * Current date. May temporarily hold unaccepted value when looking for a next valid date. + * Equal to null only before the first iteration. + * + * @var CarbonInterface + */ + protected $current; + + /** + * Timezone of current date. Taken from the start date. + * + * @var \DateTimeZone|null + */ + protected $timezone; + + /** + * The cached validation result for current date. + * + * @var bool|string|null + */ + protected $validationResult; + + /** + * Timezone handler for settings() method. + * + * @var mixed + */ + protected $tzName; + + /** + * Make a CarbonPeriod instance from given variable if possible. + * + * @param mixed $var + * + * @return static|null + */ + public static function make($var) + { + try { + return static::instance($var); + } catch (NotAPeriodException $e) { + return static::create($var); + } + } + + /** + * Create a new instance from a DatePeriod or CarbonPeriod object. + * + * @param CarbonPeriod|DatePeriod $period + * + * @return static + */ + public static function instance($period) + { + if ($period instanceof static) { + return $period->copy(); + } + + if ($period instanceof self) { + return new static( + $period->getStartDate(), + $period->getEndDate() ?: $period->getRecurrences(), + $period->getDateInterval(), + $period->getOptions() + ); + } + + if ($period instanceof DatePeriod) { + return new static( + $period->start, + $period->end ?: ($period->recurrences - 1), + $period->interval, + $period->include_start_date ? 0 : static::EXCLUDE_START_DATE + ); + } + + $class = static::class; + $type = \gettype($period); + + throw new NotAPeriodException( + 'Argument 1 passed to '.$class.'::'.__METHOD__.'() '. + 'must be an instance of DatePeriod or '.$class.', '. + ($type === 'object' ? 'instance of '.\get_class($period) : $type).' given.' + ); + } + + /** + * Create a new instance. + * + * @return static + */ + public static function create(...$params) + { + return static::createFromArray($params); + } + + /** + * Create a new instance from an array of parameters. + * + * @param array $params + * + * @return static + */ + public static function createFromArray(array $params) + { + return new static(...$params); + } + + /** + * Create CarbonPeriod from ISO 8601 string. + * + * @param string $iso + * @param int|null $options + * + * @return static + */ + public static function createFromIso($iso, $options = null) + { + $params = static::parseIso8601($iso); + + $instance = static::createFromArray($params); + + if ($options !== null) { + $instance->setOptions($options); + } + + return $instance; + } + + /** + * Return whether given interval contains non zero value of any time unit. + * + * @param \DateInterval $interval + * + * @return bool + */ + protected static function intervalHasTime(DateInterval $interval) + { + return $interval->h || $interval->i || $interval->s || $interval->f; + } + + /** + * Return whether given variable is an ISO 8601 specification. + * + * Note: Check is very basic, as actual validation will be done later when parsing. + * We just want to ensure that variable is not any other type of a valid parameter. + * + * @param mixed $var + * + * @return bool + */ + protected static function isIso8601($var) + { + if (!\is_string($var)) { + return false; + } + + // Match slash but not within a timezone name. + $part = '[a-z]+(?:[_-][a-z]+)*'; + + preg_match("#\b$part/$part\b|(/)#i", $var, $match); + + return isset($match[1]); + } + + /** + * Parse given ISO 8601 string into an array of arguments. + * + * @SuppressWarnings(PHPMD.ElseExpression) + * + * @param string $iso + * + * @return array + */ + protected static function parseIso8601($iso) + { + $result = []; + + $interval = null; + $start = null; + $end = null; + + foreach (explode('/', $iso) as $key => $part) { + if ($key === 0 && preg_match('/^R(\d*|INF)$/', $part, $match)) { + $parsed = \strlen($match[1]) ? (($match[1] !== 'INF') ? (int) $match[1] : INF) : null; + } elseif ($interval === null && $parsed = CarbonInterval::make($part)) { + $interval = $part; + } elseif ($start === null && $parsed = Carbon::make($part)) { + $start = $part; + } elseif ($end === null && $parsed = Carbon::make(static::addMissingParts($start ?? '', $part))) { + $end = $part; + } else { + throw new InvalidPeriodParameterException("Invalid ISO 8601 specification: $iso."); + } + + $result[] = $parsed; + } + + return $result; + } + + /** + * Add missing parts of the target date from the soure date. + * + * @param string $source + * @param string $target + * + * @return string + */ + protected static function addMissingParts($source, $target) + { + $pattern = '/'.preg_replace('/\d+/', '[0-9]+', preg_quote($target, '/')).'$/'; + + $result = preg_replace($pattern, $target, $source, 1, $count); + + return $count ? $result : $target; + } + + /** + * Register a custom macro. + * + * @example + * ``` + * CarbonPeriod::macro('middle', function () { + * return $this->getStartDate()->average($this->getEndDate()); + * }); + * echo CarbonPeriod::since('2011-05-12')->until('2011-06-03')->middle(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro) + { + static::$macros[$name] = $macro; + } + + /** + * Register macros from a mixin object. + * + * @example + * ``` + * CarbonPeriod::mixin(new class { + * public function addDays() { + * return function ($count = 1) { + * return $this->setStartDate( + * $this->getStartDate()->addDays($count) + * )->setEndDate( + * $this->getEndDate()->addDays($count) + * ); + * }; + * } + * public function subDays() { + * return function ($count = 1) { + * return $this->setStartDate( + * $this->getStartDate()->subDays($count) + * )->setEndDate( + * $this->getEndDate()->subDays($count) + * ); + * }; + * } + * }); + * echo CarbonPeriod::create('2000-01-01', '2000-02-01')->addDays(5)->subDays(3); + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin) + { + static::baseMixin($mixin); + } + + /** + * Check if macro is registered. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$macros[$name]); + } + + /** + * Provide static proxy for instance aliases. + * + * @param string $method + * @param array $parameters + * + * @return mixed + */ + public static function __callStatic($method, $parameters) + { + $date = new static(); + + if (static::hasMacro($method)) { + return static::bindMacroContext(null, function () use (&$method, &$parameters, &$date) { + return $date->callMacro($method, $parameters); + }); + } + + return $date->$method(...$parameters); + } + + /** + * CarbonPeriod constructor. + * + * @SuppressWarnings(PHPMD.ElseExpression) + * + * @throws InvalidArgumentException + */ + public function __construct(...$arguments) + { + // Parse and assign arguments one by one. First argument may be an ISO 8601 spec, + // which will be first parsed into parts and then processed the same way. + + $argumentsCount = \count($arguments); + + if ($argumentsCount && static::isIso8601($iso = $arguments[0])) { + array_splice($arguments, 0, 1, static::parseIso8601($iso)); + } + + if ($argumentsCount === 1) { + if ($arguments[0] instanceof DatePeriod) { + $arguments = [ + $arguments[0]->start, + $arguments[0]->end ?: ($arguments[0]->recurrences - 1), + $arguments[0]->interval, + $arguments[0]->include_start_date ? 0 : static::EXCLUDE_START_DATE, + ]; + } elseif ($arguments[0] instanceof self) { + $arguments = [ + $arguments[0]->getStartDate(), + $arguments[0]->getEndDate() ?: $arguments[0]->getRecurrences(), + $arguments[0]->getDateInterval(), + $arguments[0]->getOptions(), + ]; + } + } + + foreach ($arguments as $argument) { + $parsedDate = null; + + if ($argument instanceof DateTimeZone) { + $this->setTimezone($argument); + } elseif ($this->dateInterval === null && + ( + (\is_string($argument) && preg_match( + '/^(-?\d(\d(?![\/-])|[^\d\/-]([\/-])?)*|P[T\d].*|(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+)$/i', + $argument + )) || + $argument instanceof DateInterval || + $argument instanceof Closure + ) && + $parsedInterval = @CarbonInterval::make($argument) + ) { + $this->setDateInterval($parsedInterval); + } elseif ($this->startDate === null && $parsedDate = $this->makeDateTime($argument)) { + $this->setStartDate($parsedDate); + } elseif ($this->endDate === null && ($parsedDate = $parsedDate ?? $this->makeDateTime($argument))) { + $this->setEndDate($parsedDate); + } elseif ($this->recurrences === null && $this->endDate === null && is_numeric($argument)) { + $this->setRecurrences($argument); + } elseif ($this->options === null && (\is_int($argument) || $argument === null)) { + $this->setOptions($argument); + } else { + throw new InvalidPeriodParameterException('Invalid constructor parameters.'); + } + } + + if ($this->startDate === null) { + $this->setStartDate(Carbon::now()); + } + + if ($this->dateInterval === null) { + $this->setDateInterval(CarbonInterval::day()); + + $this->isDefaultInterval = true; + } + + if ($this->options === null) { + $this->setOptions(0); + } + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy() + { + return clone $this; + } + + /** + * Get the getter for a property allowing both `DatePeriod` snakeCase and camelCase names. + * + * @param string $name + * + * @return callable|null + */ + protected function getGetter(string $name) + { + switch (strtolower(preg_replace('/[A-Z]/', '_$0', $name))) { + case 'start': + case 'start_date': + return [$this, 'getStartDate']; + case 'end': + case 'end_date': + return [$this, 'getEndDate']; + case 'interval': + case 'date_interval': + return [$this, 'getDateInterval']; + case 'recurrences': + return [$this, 'getRecurrences']; + case 'include_start_date': + return [$this, 'isStartIncluded']; + case 'include_end_date': + return [$this, 'isEndIncluded']; + case 'current': + return [$this, 'current']; + default: + return null; + } + } + + /** + * Get a property allowing both `DatePeriod` snakeCase and camelCase names. + * + * @param string $name + * + * @return bool|CarbonInterface|CarbonInterval|int|null + */ + public function get(string $name) + { + $getter = $this->getGetter($name); + + if ($getter) { + return $getter(); + } + + throw new UnknownGetterException($name); + } + + /** + * Get a property allowing both `DatePeriod` snakeCase and camelCase names. + * + * @param string $name + * + * @return bool|CarbonInterface|CarbonInterval|int|null + */ + public function __get(string $name) + { + return $this->get($name); + } + + /** + * Check if an attribute exists on the object + * + * @param string $name + * + * @return bool + */ + public function __isset(string $name): bool + { + return $this->getGetter($name) !== null; + } + + /** + * @alias copy + * + * Get a copy of the instance. + * + * @return static + */ + public function clone() + { + return clone $this; + } + + /** + * Set the iteration item class. + * + * @param string $dateClass + * + * @return $this + */ + public function setDateClass(string $dateClass) + { + if (!is_a($dateClass, CarbonInterface::class, true)) { + throw new NotACarbonClassException($dateClass); + } + + $this->dateClass = $dateClass; + + if (is_a($dateClass, Carbon::class, true)) { + $this->toggleOptions(static::IMMUTABLE, false); + } elseif (is_a($dateClass, CarbonImmutable::class, true)) { + $this->toggleOptions(static::IMMUTABLE, true); + } + + return $this; + } + + /** + * Returns iteration item date class. + * + * @return string + */ + public function getDateClass(): string + { + return $this->dateClass; + } + + /** + * Change the period date interval. + * + * @param DateInterval|string $interval + * + * @throws InvalidIntervalException + * + * @return $this + */ + public function setDateInterval($interval) + { + if (!$interval = CarbonInterval::make($interval)) { + throw new InvalidIntervalException('Invalid interval.'); + } + + if ($interval->spec() === 'PT0S' && !$interval->f && !$interval->getStep()) { + throw new InvalidIntervalException('Empty interval is not accepted.'); + } + + $this->dateInterval = $interval; + + $this->isDefaultInterval = false; + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Invert the period date interval. + * + * @return $this + */ + public function invertDateInterval() + { + $interval = $this->dateInterval->invert(); + + return $this->setDateInterval($interval); + } + + /** + * Set start and end date. + * + * @param DateTime|DateTimeInterface|string $start + * @param DateTime|DateTimeInterface|string|null $end + * + * @return $this + */ + public function setDates($start, $end) + { + $this->setStartDate($start); + $this->setEndDate($end); + + return $this; + } + + /** + * Change the period options. + * + * @param int|null $options + * + * @throws InvalidArgumentException + * + * @return $this + */ + public function setOptions($options) + { + if (!\is_int($options) && $options !== null) { + throw new InvalidPeriodParameterException('Invalid options.'); + } + + $this->options = $options ?: 0; + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Get the period options. + * + * @return int + */ + public function getOptions() + { + return $this->options; + } + + /** + * Toggle given options on or off. + * + * @param int $options + * @param bool|null $state + * + * @throws \InvalidArgumentException + * + * @return $this + */ + public function toggleOptions($options, $state = null) + { + if ($state === null) { + $state = ($this->options & $options) !== $options; + } + + return $this->setOptions( + $state ? + $this->options | $options : + $this->options & ~$options + ); + } + + /** + * Toggle EXCLUDE_START_DATE option. + * + * @param bool $state + * + * @return $this + */ + public function excludeStartDate($state = true) + { + return $this->toggleOptions(static::EXCLUDE_START_DATE, $state); + } + + /** + * Toggle EXCLUDE_END_DATE option. + * + * @param bool $state + * + * @return $this + */ + public function excludeEndDate($state = true) + { + return $this->toggleOptions(static::EXCLUDE_END_DATE, $state); + } + + /** + * Get the underlying date interval. + * + * @return CarbonInterval + */ + public function getDateInterval() + { + return $this->dateInterval->copy(); + } + + /** + * Get start date of the period. + * + * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval. + * + * @return CarbonInterface + */ + public function getStartDate(string $rounding = null) + { + $date = $this->startDate->avoidMutation(); + + return $rounding ? $date->round($this->getDateInterval(), $rounding) : $date; + } + + /** + * Get end date of the period. + * + * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval. + * + * @return CarbonInterface|null + */ + public function getEndDate(string $rounding = null) + { + if (!$this->endDate) { + return null; + } + + $date = $this->endDate->avoidMutation(); + + return $rounding ? $date->round($this->getDateInterval(), $rounding) : $date; + } + + /** + * Get number of recurrences. + * + * @return int|float|null + */ + public function getRecurrences() + { + return $this->recurrences; + } + + /** + * Returns true if the start date should be excluded. + * + * @return bool + */ + public function isStartExcluded() + { + return ($this->options & static::EXCLUDE_START_DATE) !== 0; + } + + /** + * Returns true if the end date should be excluded. + * + * @return bool + */ + public function isEndExcluded() + { + return ($this->options & static::EXCLUDE_END_DATE) !== 0; + } + + /** + * Returns true if the start date should be included. + * + * @return bool + */ + public function isStartIncluded() + { + return !$this->isStartExcluded(); + } + + /** + * Returns true if the end date should be included. + * + * @return bool + */ + public function isEndIncluded() + { + return !$this->isEndExcluded(); + } + + /** + * Return the start if it's included by option, else return the start + 1 period interval. + * + * @return CarbonInterface + */ + public function getIncludedStartDate() + { + $start = $this->getStartDate(); + + if ($this->isStartExcluded()) { + return $start->add($this->getDateInterval()); + } + + return $start; + } + + /** + * Return the end if it's included by option, else return the end - 1 period interval. + * Warning: if the period has no fixed end, this method will iterate the period to calculate it. + * + * @return CarbonInterface + */ + public function getIncludedEndDate() + { + $end = $this->getEndDate(); + + if (!$end) { + return $this->calculateEnd(); + } + + if ($this->isEndExcluded()) { + return $end->sub($this->getDateInterval()); + } + + return $end; + } + + /** + * Add a filter to the stack. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @param callable $callback + * @param string $name + * + * @return $this + */ + public function addFilter($callback, $name = null) + { + $tuple = $this->createFilterTuple(\func_get_args()); + + $this->filters[] = $tuple; + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Prepend a filter to the stack. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @param callable $callback + * @param string $name + * + * @return $this + */ + public function prependFilter($callback, $name = null) + { + $tuple = $this->createFilterTuple(\func_get_args()); + + array_unshift($this->filters, $tuple); + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Remove a filter by instance or name. + * + * @param callable|string $filter + * + * @return $this + */ + public function removeFilter($filter) + { + $key = \is_callable($filter) ? 0 : 1; + + $this->filters = array_values(array_filter( + $this->filters, + function ($tuple) use ($key, $filter) { + return $tuple[$key] !== $filter; + } + )); + + $this->updateInternalState(); + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Return whether given instance or name is in the filter stack. + * + * @param callable|string $filter + * + * @return bool + */ + public function hasFilter($filter) + { + $key = \is_callable($filter) ? 0 : 1; + + foreach ($this->filters as $tuple) { + if ($tuple[$key] === $filter) { + return true; + } + } + + return false; + } + + /** + * Get filters stack. + * + * @return array + */ + public function getFilters() + { + return $this->filters; + } + + /** + * Set filters stack. + * + * @param array $filters + * + * @return $this + */ + public function setFilters(array $filters) + { + $this->filters = $filters; + + $this->updateInternalState(); + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Reset filters stack. + * + * @return $this + */ + public function resetFilters() + { + $this->filters = []; + + if ($this->endDate !== null) { + $this->filters[] = [static::END_DATE_FILTER, null]; + } + + if ($this->recurrences !== null) { + $this->filters[] = [static::RECURRENCES_FILTER, null]; + } + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Add a recurrences filter (set maximum number of recurrences). + * + * @param int|float|null $recurrences + * + * @throws InvalidArgumentException + * + * @return $this + */ + public function setRecurrences($recurrences) + { + if ((!is_numeric($recurrences) && $recurrences !== null) || $recurrences < 0) { + throw new InvalidPeriodParameterException('Invalid number of recurrences.'); + } + + if ($recurrences === null) { + return $this->removeFilter(static::RECURRENCES_FILTER); + } + + $this->recurrences = $recurrences === INF ? INF : (int) $recurrences; + + if (!$this->hasFilter(static::RECURRENCES_FILTER)) { + return $this->addFilter(static::RECURRENCES_FILTER); + } + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Change the period start date. + * + * @param DateTime|DateTimeInterface|string $date + * @param bool|null $inclusive + * + * @throws InvalidPeriodDateException + * + * @return $this + */ + public function setStartDate($date, $inclusive = null) + { + if (!$this->isInfiniteDate($date) && !($date = ([$this->dateClass, 'make'])($date))) { + throw new InvalidPeriodDateException('Invalid start date.'); + } + + $this->startDate = $date; + + if ($inclusive !== null) { + $this->toggleOptions(static::EXCLUDE_START_DATE, !$inclusive); + } + + return $this; + } + + /** + * Change the period end date. + * + * @param DateTime|DateTimeInterface|string|null $date + * @param bool|null $inclusive + * + * @throws \InvalidArgumentException + * + * @return $this + */ + public function setEndDate($date, $inclusive = null) + { + if ($date !== null && !$this->isInfiniteDate($date) && !$date = ([$this->dateClass, 'make'])($date)) { + throw new InvalidPeriodDateException('Invalid end date.'); + } + + if (!$date) { + return $this->removeFilter(static::END_DATE_FILTER); + } + + $this->endDate = $date; + + if ($inclusive !== null) { + $this->toggleOptions(static::EXCLUDE_END_DATE, !$inclusive); + } + + if (!$this->hasFilter(static::END_DATE_FILTER)) { + return $this->addFilter(static::END_DATE_FILTER); + } + + $this->handleChangedParameters(); + + return $this; + } + + /** + * Check if the current position is valid. + * + * @return bool + */ + #[ReturnTypeWillChange] + public function valid() + { + return $this->validateCurrentDate() === true; + } + + /** + * Return the current key. + * + * @return int|null + */ + #[ReturnTypeWillChange] + public function key() + { + return $this->valid() + ? $this->key + : null; + } + + /** + * Return the current date. + * + * @return CarbonInterface|null + */ + #[ReturnTypeWillChange] + public function current() + { + return $this->valid() + ? $this->prepareForReturn($this->current) + : null; + } + + /** + * Move forward to the next date. + * + * @throws RuntimeException + * + * @return void + */ + #[ReturnTypeWillChange] + public function next() + { + if ($this->current === null) { + $this->rewind(); + } + + if ($this->validationResult !== static::END_ITERATION) { + $this->key++; + + $this->incrementCurrentDateUntilValid(); + } + } + + /** + * Rewind to the start date. + * + * Iterating over a date in the UTC timezone avoids bug during backward DST change. + * + * @see https://bugs.php.net/bug.php?id=72255 + * @see https://bugs.php.net/bug.php?id=74274 + * @see https://wiki.php.net/rfc/datetime_and_daylight_saving_time + * + * @throws RuntimeException + * + * @return void + */ + #[ReturnTypeWillChange] + public function rewind() + { + $this->key = 0; + $this->current = ([$this->dateClass, 'make'])($this->startDate); + $settings = $this->getSettings(); + + if ($this->hasLocalTranslator()) { + $settings['locale'] = $this->getTranslatorLocale(); + } + + $this->current->settings($settings); + $this->timezone = static::intervalHasTime($this->dateInterval) ? $this->current->getTimezone() : null; + + if ($this->timezone) { + $this->current = $this->current->utc(); + } + + $this->validationResult = null; + + if ($this->isStartExcluded() || $this->validateCurrentDate() === false) { + $this->incrementCurrentDateUntilValid(); + } + } + + /** + * Skip iterations and returns iteration state (false if ended, true if still valid). + * + * @param int $count steps number to skip (1 by default) + * + * @return bool + */ + public function skip($count = 1) + { + for ($i = $count; $this->valid() && $i > 0; $i--) { + $this->next(); + } + + return $this->valid(); + } + + /** + * Format the date period as ISO 8601. + * + * @return string + */ + public function toIso8601String() + { + $parts = []; + + if ($this->recurrences !== null) { + $parts[] = 'R'.$this->recurrences; + } + + $parts[] = $this->startDate->toIso8601String(); + + $parts[] = $this->dateInterval->spec(); + + if ($this->endDate !== null) { + $parts[] = $this->endDate->toIso8601String(); + } + + return implode('/', $parts); + } + + /** + * Convert the date period into a string. + * + * @return string + */ + public function toString() + { + $translator = ([$this->dateClass, 'getTranslator'])(); + + $parts = []; + + $format = !$this->startDate->isStartOfDay() || ($this->endDate && !$this->endDate->isStartOfDay()) + ? 'Y-m-d H:i:s' + : 'Y-m-d'; + + if ($this->recurrences !== null) { + $parts[] = $this->translate('period_recurrences', [], $this->recurrences, $translator); + } + + $parts[] = $this->translate('period_interval', [':interval' => $this->dateInterval->forHumans([ + 'join' => true, + ])], null, $translator); + + $parts[] = $this->translate('period_start_date', [':date' => $this->startDate->rawFormat($format)], null, $translator); + + if ($this->endDate !== null) { + $parts[] = $this->translate('period_end_date', [':date' => $this->endDate->rawFormat($format)], null, $translator); + } + + $result = implode(' ', $parts); + + return mb_strtoupper(mb_substr($result, 0, 1)).mb_substr($result, 1); + } + + /** + * Format the date period as ISO 8601. + * + * @return string + */ + public function spec() + { + return $this->toIso8601String(); + } + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DatePeriod + */ + public function cast(string $className) + { + if (!method_exists($className, 'instance')) { + if (is_a($className, DatePeriod::class, true)) { + return new $className( + $this->rawDate($this->getStartDate()), + $this->getDateInterval(), + $this->getEndDate() ? $this->rawDate($this->getIncludedEndDate()) : $this->getRecurrences(), + $this->isStartExcluded() ? DatePeriod::EXCLUDE_START_DATE : 0 + ); + } + + throw new InvalidCastException("$className has not the instance() method needed to cast the date."); + } + + return $className::instance($this); + } + + /** + * Return native DatePeriod PHP object matching the current instance. + * + * @example + * ``` + * var_dump(CarbonPeriod::create('2021-01-05', '2021-02-15')->toDatePeriod()); + * ``` + * + * @return DatePeriod + */ + public function toDatePeriod() + { + return $this->cast(DatePeriod::class); + } + + /** + * Return `true` if the period has no custom filter and is guaranteed to be endless. + * + * Note that we can't check if a period is endless as soon as it has custom filters + * because filters can emit `CarbonPeriod::END_ITERATION` to stop the iteration in + * a way we can't predict without actually iterating the period. + */ + public function isUnfilteredAndEndLess(): bool + { + foreach ($this->filters as $filter) { + switch ($filter) { + case [static::RECURRENCES_FILTER, null]: + if ($this->recurrences !== null && is_finite($this->recurrences)) { + return false; + } + + break; + + case [static::END_DATE_FILTER, null]: + if ($this->endDate !== null && !$this->endDate->isEndOfTime()) { + return false; + } + + break; + + default: + return false; + } + } + + return true; + } + + /** + * Convert the date period into an array without changing current iteration state. + * + * @return CarbonInterface[] + */ + public function toArray() + { + if ($this->isUnfilteredAndEndLess()) { + throw new EndLessPeriodException("Endless period can't be converted to array nor counted."); + } + + $state = [ + $this->key, + $this->current ? $this->current->avoidMutation() : null, + $this->validationResult, + ]; + + $result = iterator_to_array($this); + + [$this->key, $this->current, $this->validationResult] = $state; + + return $result; + } + + /** + * Count dates in the date period. + * + * @return int + */ + #[ReturnTypeWillChange] + public function count() + { + return \count($this->toArray()); + } + + /** + * Return the first date in the date period. + * + * @return CarbonInterface|null + */ + public function first() + { + if ($this->isUnfilteredAndEndLess()) { + foreach ($this as $date) { + $this->rewind(); + + return $date; + } + + return null; + } + + return ($this->toArray() ?: [])[0] ?? null; + } + + /** + * Return the last date in the date period. + * + * @return CarbonInterface|null + */ + public function last() + { + $array = $this->toArray(); + + return $array ? $array[\count($array) - 1] : null; + } + + /** + * Convert the date period into a string. + * + * @return string + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Add aliases for setters. + * + * CarbonPeriod::days(3)->hours(5)->invert() + * ->sinceNow()->until('2010-01-10') + * ->filter(...) + * ->count() + * + * Note: We use magic method to let static and instance aliases with the same names. + * + * @param string $method + * @param array $parameters + * + * @return mixed + */ + public function __call($method, $parameters) + { + if (static::hasMacro($method)) { + return static::bindMacroContext($this, function () use (&$method, &$parameters) { + return $this->callMacro($method, $parameters); + }); + } + + $roundedValue = $this->callRoundMethod($method, $parameters); + + if ($roundedValue !== null) { + return $roundedValue; + } + + $first = \count($parameters) >= 1 ? $parameters[0] : null; + $second = \count($parameters) >= 2 ? $parameters[1] : null; + + switch ($method) { + case 'start': + case 'since': + return $this->setStartDate($first, $second); + + case 'sinceNow': + return $this->setStartDate(new Carbon(), $first); + + case 'end': + case 'until': + return $this->setEndDate($first, $second); + + case 'untilNow': + return $this->setEndDate(new Carbon(), $first); + + case 'dates': + case 'between': + return $this->setDates($first, $second); + + case 'recurrences': + case 'times': + return $this->setRecurrences($first); + + case 'options': + return $this->setOptions($first); + + case 'toggle': + return $this->toggleOptions($first, $second); + + case 'filter': + case 'push': + return $this->addFilter($first, $second); + + case 'prepend': + return $this->prependFilter($first, $second); + + case 'filters': + return $this->setFilters($first ?: []); + + case 'interval': + case 'each': + case 'every': + case 'step': + case 'stepBy': + return $this->setDateInterval($first); + + case 'invert': + return $this->invertDateInterval(); + + case 'years': + case 'year': + case 'months': + case 'month': + case 'weeks': + case 'week': + case 'days': + case 'dayz': + case 'day': + case 'hours': + case 'hour': + case 'minutes': + case 'minute': + case 'seconds': + case 'second': + return $this->setDateInterval(( + // Override default P1D when instantiating via fluent setters. + [$this->isDefaultInterval ? new CarbonInterval('PT0S') : $this->dateInterval, $method] + )( + \count($parameters) === 0 ? 1 : $first + )); + } + + if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + throw new UnknownMethodException($method); + } + + return $this; + } + + /** + * Set the instance's timezone from a string or object and apply it to start/end. + * + * @param \DateTimeZone|string $timezone + * + * @return static + */ + public function setTimezone($timezone) + { + $this->tzName = $timezone; + $this->timezone = $timezone; + + if ($this->startDate) { + $this->setStartDate($this->startDate->setTimezone($timezone)); + } + + if ($this->endDate) { + $this->setEndDate($this->endDate->setTimezone($timezone)); + } + + return $this; + } + + /** + * Set the instance's timezone from a string or object and add/subtract the offset difference to start/end. + * + * @param \DateTimeZone|string $timezone + * + * @return static + */ + public function shiftTimezone($timezone) + { + $this->tzName = $timezone; + $this->timezone = $timezone; + + if ($this->startDate) { + $this->setStartDate($this->startDate->shiftTimezone($timezone)); + } + + if ($this->endDate) { + $this->setEndDate($this->endDate->shiftTimezone($timezone)); + } + + return $this; + } + + /** + * Returns the end is set, else calculated from start an recurrences. + * + * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval. + * + * @return CarbonInterface + */ + public function calculateEnd(string $rounding = null) + { + if ($end = $this->getEndDate($rounding)) { + return $end; + } + + if ($this->dateInterval->isEmpty()) { + return $this->getStartDate($rounding); + } + + $date = $this->getEndFromRecurrences() ?? $this->iterateUntilEnd(); + + if ($date && $rounding) { + $date = $date->avoidMutation()->round($this->getDateInterval(), $rounding); + } + + return $date; + } + + /** + * @return CarbonInterface|null + */ + private function getEndFromRecurrences() + { + if ($this->recurrences === null) { + throw new UnreachableException( + "Could not calculate period end without either explicit end or recurrences.\n". + "If you're looking for a forever-period, use ->setRecurrences(INF)." + ); + } + + if ($this->recurrences === INF) { + $start = $this->getStartDate(); + + return $start < $start->avoidMutation()->add($this->getDateInterval()) + ? CarbonImmutable::endOfTime() + : CarbonImmutable::startOfTime(); + } + + if ($this->filters === [[static::RECURRENCES_FILTER, null]]) { + return $this->getStartDate()->avoidMutation()->add( + $this->getDateInterval()->times( + $this->recurrences - ($this->isStartExcluded() ? 0 : 1) + ) + ); + } + + return null; + } + + /** + * @return CarbonInterface|null + */ + private function iterateUntilEnd() + { + $attempts = 0; + $date = null; + + foreach ($this as $date) { + if (++$attempts > static::END_MAX_ATTEMPTS) { + throw new UnreachableException( + 'Could not calculate period end after iterating '.static::END_MAX_ATTEMPTS.' times.' + ); + } + } + + return $date; + } + + /** + * Returns true if the current period overlaps the given one (if 1 parameter passed) + * or the period between 2 dates (if 2 parameters passed). + * + * @param CarbonPeriod|\DateTimeInterface|Carbon|CarbonImmutable|string $rangeOrRangeStart + * @param \DateTimeInterface|Carbon|CarbonImmutable|string|null $rangeEnd + * + * @return bool + */ + public function overlaps($rangeOrRangeStart, $rangeEnd = null) + { + $range = $rangeEnd ? static::create($rangeOrRangeStart, $rangeEnd) : $rangeOrRangeStart; + + if (!($range instanceof self)) { + $range = static::create($range); + } + + [$start, $end] = $this->orderCouple($this->getStartDate(), $this->calculateEnd()); + [$rangeStart, $rangeEnd] = $this->orderCouple($range->getStartDate(), $range->calculateEnd()); + + return $end > $rangeStart && $rangeEnd > $start; + } + + /** + * Execute a given function on each date of the period. + * + * @example + * ``` + * Carbon::create('2020-11-29')->daysUntil('2020-12-24')->forEach(function (Carbon $date) { + * echo $date->diffInDays('2020-12-25')." days before Christmas!\n"; + * }); + * ``` + * + * @param callable $callback + */ + public function forEach(callable $callback) + { + foreach ($this as $date) { + $callback($date); + } + } + + /** + * Execute a given function on each date of the period and yield the result of this function. + * + * @example + * ``` + * $period = Carbon::create('2020-11-29')->daysUntil('2020-12-24'); + * echo implode("\n", iterator_to_array($period->map(function (Carbon $date) { + * return $date->diffInDays('2020-12-25').' days before Christmas!'; + * }))); + * ``` + * + * @param callable $callback + * + * @return \Generator + */ + public function map(callable $callback) + { + foreach ($this as $date) { + yield $callback($date); + } + } + + /** + * Determines if the instance is equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @see equalTo() + * + * @return bool + */ + public function eq($period): bool + { + return $this->equalTo($period); + } + + /** + * Determines if the instance is equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @return bool + */ + public function equalTo($period): bool + { + if (!($period instanceof self)) { + $period = self::make($period); + } + + $end = $this->getEndDate(); + + return $period !== null + && $this->getDateInterval()->eq($period->getDateInterval()) + && $this->getStartDate()->eq($period->getStartDate()) + && ($end ? $end->eq($period->getEndDate()) : $this->getRecurrences() === $period->getRecurrences()) + && ($this->getOptions() & (~static::IMMUTABLE)) === ($period->getOptions() & (~static::IMMUTABLE)); + } + + /** + * Determines if the instance is not equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($period): bool + { + return $this->notEqualTo($period); + } + + /** + * Determines if the instance is not equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @return bool + */ + public function notEqualTo($period): bool + { + return !$this->eq($period); + } + + /** + * Determines if the start date is before an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsBefore($date = null): bool + { + return $this->getStartDate()->lessThan($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is before or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsBeforeOrAt($date = null): bool + { + return $this->getStartDate()->lessThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is after an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsAfter($date = null): bool + { + return $this->getStartDate()->greaterThan($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is after or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsAfterOrAt($date = null): bool + { + return $this->getStartDate()->greaterThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsAt($date = null): bool + { + return $this->getStartDate()->equalTo($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is before an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsBefore($date = null): bool + { + return $this->calculateEnd()->lessThan($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is before or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsBeforeOrAt($date = null): bool + { + return $this->calculateEnd()->lessThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is after an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsAfter($date = null): bool + { + return $this->calculateEnd()->greaterThan($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is after or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsAfterOrAt($date = null): bool + { + return $this->calculateEnd()->greaterThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsAt($date = null): bool + { + return $this->calculateEnd()->equalTo($this->resolveCarbon($date)); + } + + /** + * Return true if start date is now or later. + * (Rather start/end are included by options is ignored.) + * + * @return bool + */ + public function isStarted(): bool + { + return $this->startsBeforeOrAt(); + } + + /** + * Return true if end date is now or later. + * (Rather start/end are included by options is ignored.) + * + * @return bool + */ + public function isEnded(): bool + { + return $this->endsBeforeOrAt(); + } + + /** + * Return true if now is between start date (included) and end date (excluded). + * (Rather start/end are included by options is ignored.) + * + * @return bool + */ + public function isInProgress(): bool + { + return $this->isStarted() && !$this->isEnded(); + } + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return $this + */ + public function roundUnit($unit, $precision = 1, $function = 'round') + { + $this->setStartDate($this->getStartDate()->roundUnit($unit, $precision, $function)); + + if ($this->endDate) { + $this->setEndDate($this->getEndDate()->roundUnit($unit, $precision, $function)); + } + + $this->setDateInterval($this->getDateInterval()->roundUnit($unit, $precision, $function)); + + return $this; + } + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|\DateInterval|null $precision + * + * @return $this + */ + public function floorUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'floor'); + } + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|\DateInterval|null $precision + * + * @return $this + */ + public function ceilUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'ceil'); + } + + /** + * Round the current instance second with given precision if specified (else period interval is used). + * + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return $this + */ + public function round($precision = null, $function = 'round') + { + return $this->roundWith( + $precision ?? $this->getDateInterval()->setLocalTranslator(TranslatorImmutable::get('en'))->forHumans(), + $function + ); + } + + /** + * Round the current instance second with given precision if specified (else period interval is used). + * + * @param float|int|string|\DateInterval|null $precision + * + * @return $this + */ + public function floor($precision = null) + { + return $this->round($precision, 'floor'); + } + + /** + * Ceil the current instance second with given precision if specified (else period interval is used). + * + * @param float|int|string|\DateInterval|null $precision + * + * @return $this + */ + public function ceil($precision = null) + { + return $this->round($precision, 'ceil'); + } + + /** + * Specify data which should be serialized to JSON. + * + * @link https://php.net/manual/en/jsonserializable.jsonserialize.php + * + * @return CarbonInterface[] + */ + #[ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Return true if the given date is between start and end. + * + * @param \Carbon\Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|\DateTimeInterface|string|null $date + * + * @return bool + */ + public function contains($date = null): bool + { + $startMethod = 'startsBefore'.($this->isStartIncluded() ? 'OrAt' : ''); + $endMethod = 'endsAfter'.($this->isEndIncluded() ? 'OrAt' : ''); + + return $this->$startMethod($date) && $this->$endMethod($date); + } + + /** + * Return true if the current period follows a given other period (with no overlap). + * For instance, [2019-08-01 -> 2019-08-12] follows [2019-07-29 -> 2019-07-31] + * Note than in this example, follows() would be false if 2019-08-01 or 2019-07-31 was excluded by options. + * + * @param \Carbon\CarbonPeriod|\DatePeriod|string $period + * + * @return bool + */ + public function follows($period, ...$arguments): bool + { + $period = $this->resolveCarbonPeriod($period, ...$arguments); + + return $this->getIncludedStartDate()->equalTo($period->getIncludedEndDate()->add($period->getDateInterval())); + } + + /** + * Return true if the given other period follows the current one (with no overlap). + * For instance, [2019-07-29 -> 2019-07-31] is followed by [2019-08-01 -> 2019-08-12] + * Note than in this example, isFollowedBy() would be false if 2019-08-01 or 2019-07-31 was excluded by options. + * + * @param \Carbon\CarbonPeriod|\DatePeriod|string $period + * + * @return bool + */ + public function isFollowedBy($period, ...$arguments): bool + { + $period = $this->resolveCarbonPeriod($period, ...$arguments); + + return $period->follows($this); + } + + /** + * Return true if the given period either follows or is followed by the current one. + * + * @see follows() + * @see isFollowedBy() + * + * @param \Carbon\CarbonPeriod|\DatePeriod|string $period + * + * @return bool + */ + public function isConsecutiveWith($period, ...$arguments): bool + { + return $this->follows($period, ...$arguments) || $this->isFollowedBy($period, ...$arguments); + } + + /** + * Update properties after removing built-in filters. + * + * @return void + */ + protected function updateInternalState() + { + if (!$this->hasFilter(static::END_DATE_FILTER)) { + $this->endDate = null; + } + + if (!$this->hasFilter(static::RECURRENCES_FILTER)) { + $this->recurrences = null; + } + } + + /** + * Create a filter tuple from raw parameters. + * + * Will create an automatic filter callback for one of Carbon's is* methods. + * + * @param array $parameters + * + * @return array + */ + protected function createFilterTuple(array $parameters) + { + $method = array_shift($parameters); + + if (!$this->isCarbonPredicateMethod($method)) { + return [$method, array_shift($parameters)]; + } + + return [function ($date) use ($method, $parameters) { + return ([$date, $method])(...$parameters); + }, $method]; + } + + /** + * Return whether given callable is a string pointing to one of Carbon's is* methods + * and should be automatically converted to a filter callback. + * + * @param callable $callable + * + * @return bool + */ + protected function isCarbonPredicateMethod($callable) + { + return \is_string($callable) && str_starts_with($callable, 'is') && + (method_exists($this->dateClass, $callable) || ([$this->dateClass, 'hasMacro'])($callable)); + } + + /** + * Recurrences filter callback (limits number of recurrences). + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @param \Carbon\Carbon $current + * @param int $key + * + * @return bool|string + */ + protected function filterRecurrences($current, $key) + { + if ($key < $this->recurrences) { + return true; + } + + return static::END_ITERATION; + } + + /** + * End date filter callback. + * + * @param \Carbon\Carbon $current + * + * @return bool|string + */ + protected function filterEndDate($current) + { + if (!$this->isEndExcluded() && $current == $this->endDate) { + return true; + } + + if ($this->dateInterval->invert ? $current > $this->endDate : $current < $this->endDate) { + return true; + } + + return static::END_ITERATION; + } + + /** + * End iteration filter callback. + * + * @return string + */ + protected function endIteration() + { + return static::END_ITERATION; + } + + /** + * Handle change of the parameters. + */ + protected function handleChangedParameters() + { + if (($this->getOptions() & static::IMMUTABLE) && $this->dateClass === Carbon::class) { + $this->setDateClass(CarbonImmutable::class); + } elseif (!($this->getOptions() & static::IMMUTABLE) && $this->dateClass === CarbonImmutable::class) { + $this->setDateClass(Carbon::class); + } + + $this->validationResult = null; + } + + /** + * Validate current date and stop iteration when necessary. + * + * Returns true when current date is valid, false if it is not, or static::END_ITERATION + * when iteration should be stopped. + * + * @return bool|string + */ + protected function validateCurrentDate() + { + if ($this->current === null) { + $this->rewind(); + } + + // Check after the first rewind to avoid repeating the initial validation. + return $this->validationResult ?? ($this->validationResult = $this->checkFilters()); + } + + /** + * Check whether current value and key pass all the filters. + * + * @return bool|string + */ + protected function checkFilters() + { + $current = $this->prepareForReturn($this->current); + + foreach ($this->filters as $tuple) { + $result = \call_user_func( + $tuple[0], + $current->avoidMutation(), + $this->key, + $this + ); + + if ($result === static::END_ITERATION) { + return static::END_ITERATION; + } + + if (!$result) { + return false; + } + } + + return true; + } + + /** + * Prepare given date to be returned to the external logic. + * + * @param CarbonInterface $date + * + * @return CarbonInterface + */ + protected function prepareForReturn(CarbonInterface $date) + { + $date = ([$this->dateClass, 'make'])($date); + + if ($this->timezone) { + $date = $date->setTimezone($this->timezone); + } + + return $date; + } + + /** + * Keep incrementing the current date until a valid date is found or the iteration is ended. + * + * @throws RuntimeException + * + * @return void + */ + protected function incrementCurrentDateUntilValid() + { + $attempts = 0; + + do { + $this->current = $this->current->add($this->dateInterval); + + $this->validationResult = null; + + if (++$attempts > static::NEXT_MAX_ATTEMPTS) { + throw new UnreachableException('Could not find next valid date.'); + } + } while ($this->validateCurrentDate() === false); + } + + /** + * Call given macro. + * + * @param string $name + * @param array $parameters + * + * @return mixed + */ + protected function callMacro($name, $parameters) + { + $macro = static::$macros[$name]; + + if ($macro instanceof Closure) { + $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + } + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param \Carbon\Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|\DateTimeInterface|string|null $date + * + * @return \Carbon\CarbonInterface + */ + protected function resolveCarbon($date = null) + { + return $this->getStartDate()->nowWithSameTz()->carbonize($date); + } + + /** + * Resolve passed arguments or DatePeriod to a CarbonPeriod object. + * + * @param mixed $period + * @param mixed ...$arguments + * + * @return static + */ + protected function resolveCarbonPeriod($period, ...$arguments) + { + if ($period instanceof self) { + return $period; + } + + return $period instanceof DatePeriod + ? static::instance($period) + : static::create($period, ...$arguments); + } + + private function orderCouple($first, $second): array + { + return $first > $second ? [$second, $first] : [$first, $second]; + } + + private function makeDateTime($value): ?DateTimeInterface + { + if ($value instanceof DateTimeInterface) { + return $value; + } + + if (\is_string($value)) { + $value = trim($value); + + if (!preg_match('/^P[\dT]/', $value) && + !preg_match('/^R\d/', $value) && + preg_match('/[a-z\d]/i', $value) + ) { + return Carbon::parse($value, $this->tzName); + } + } + + return null; + } + + private function isInfiniteDate($date): bool + { + return $date instanceof CarbonInterface && ($date->isEndOfTime() || $date->isStartOfTime()); + } + + private function rawDate($date): ?DateTimeInterface + { + if ($date === false || $date === null) { + return null; + } + + if ($date instanceof CarbonInterface) { + return $date->isMutable() + ? $date->toDateTime() + : $date->toDateTimeImmutable(); + } + + if (\in_array(\get_class($date), [DateTime::class, DateTimeImmutable::class], true)) { + return $date; + } + + $class = $date instanceof DateTime ? DateTime::class : DateTimeImmutable::class; + + return new $class($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php new file mode 100644 index 00000000000..c81899f1ea4 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php @@ -0,0 +1,320 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\InvalidCastException; +use Carbon\Exceptions\InvalidTimeZoneException; +use DateTimeInterface; +use DateTimeZone; +use Throwable; + +class CarbonTimeZone extends DateTimeZone +{ + public function __construct($timezone = null) + { + parent::__construct(static::getDateTimeZoneNameFromMixed($timezone)); + } + + protected static function parseNumericTimezone($timezone) + { + if ($timezone <= -100 || $timezone >= 100) { + throw new InvalidTimeZoneException('Absolute timezone offset cannot be greater than 100.'); + } + + return ($timezone >= 0 ? '+' : '').ltrim($timezone, '+').':00'; + } + + protected static function getDateTimeZoneNameFromMixed($timezone) + { + if ($timezone === null) { + return date_default_timezone_get(); + } + + if (\is_string($timezone)) { + $timezone = preg_replace('/^\s*([+-]\d+)(\d{2})\s*$/', '$1:$2', $timezone); + } + + if (is_numeric($timezone)) { + return static::parseNumericTimezone($timezone); + } + + return $timezone; + } + + protected static function getDateTimeZoneFromName(&$name) + { + return @timezone_open($name = (string) static::getDateTimeZoneNameFromMixed($name)); + } + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateTimeZone + */ + public function cast(string $className) + { + if (!method_exists($className, 'instance')) { + if (is_a($className, DateTimeZone::class, true)) { + return new $className($this->getName()); + } + + throw new InvalidCastException("$className has not the instance() method needed to cast the date."); + } + + return $className::instance($this); + } + + /** + * Create a CarbonTimeZone from mixed input. + * + * @param DateTimeZone|string|int|null $object original value to get CarbonTimeZone from it. + * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages. + * + * @throws InvalidTimeZoneException + * + * @return false|static + */ + public static function instance($object = null, $objectDump = null) + { + $tz = $object; + + if ($tz instanceof static) { + return $tz; + } + + if ($tz === null) { + return new static(); + } + + if (!$tz instanceof DateTimeZone) { + $tz = static::getDateTimeZoneFromName($object); + } + + if ($tz !== false) { + return new static($tz->getName()); + } + + if (Carbon::isStrictModeEnabled()) { + throw new InvalidTimeZoneException('Unknown or bad timezone ('.($objectDump ?: $object).')'); + } + + return false; + } + + /** + * Returns abbreviated name of the current timezone according to DST setting. + * + * @param bool $dst + * + * @return string + */ + public function getAbbreviatedName($dst = false) + { + $name = $this->getName(); + + foreach ($this->listAbbreviations() as $abbreviation => $zones) { + foreach ($zones as $zone) { + if ($zone['timezone_id'] === $name && $zone['dst'] == $dst) { + return $abbreviation; + } + } + } + + return 'unknown'; + } + + /** + * @alias getAbbreviatedName + * + * Returns abbreviated name of the current timezone according to DST setting. + * + * @param bool $dst + * + * @return string + */ + public function getAbbr($dst = false) + { + return $this->getAbbreviatedName($dst); + } + + /** + * Get the offset as string "sHH:MM" (such as "+00:00" or "-12:30"). + * + * @param DateTimeInterface|null $date + * + * @return string + */ + public function toOffsetName(DateTimeInterface $date = null) + { + return static::getOffsetNameFromMinuteOffset( + $this->getOffset($date ?: Carbon::now($this)) / 60 + ); + } + + /** + * Returns a new CarbonTimeZone object using the offset string instead of region string. + * + * @param DateTimeInterface|null $date + * + * @return CarbonTimeZone + */ + public function toOffsetTimeZone(DateTimeInterface $date = null) + { + return new static($this->toOffsetName($date)); + } + + /** + * Returns the first region string (such as "America/Toronto") that matches the current timezone or + * false if no match is found. + * + * @see timezone_name_from_abbr native PHP function. + * + * @param DateTimeInterface|null $date + * @param int $isDst + * + * @return string|false + */ + public function toRegionName(DateTimeInterface $date = null, $isDst = 1) + { + $name = $this->getName(); + $firstChar = substr($name, 0, 1); + + if ($firstChar !== '+' && $firstChar !== '-') { + return $name; + } + + $date = $date ?: Carbon::now($this); + + // Integer construction no longer supported since PHP 8 + // @codeCoverageIgnoreStart + try { + $offset = @$this->getOffset($date) ?: 0; + } catch (Throwable $e) { + $offset = 0; + } + // @codeCoverageIgnoreEnd + + $name = @timezone_name_from_abbr('', $offset, $isDst); + + if ($name) { + return $name; + } + + foreach (timezone_identifiers_list() as $timezone) { + if (Carbon::instance($date)->tz($timezone)->getOffset() === $offset) { + return $timezone; + } + } + + return false; + } + + /** + * Returns a new CarbonTimeZone object using the region string instead of offset string. + * + * @param DateTimeInterface|null $date + * + * @return CarbonTimeZone|false + */ + public function toRegionTimeZone(DateTimeInterface $date = null) + { + $tz = $this->toRegionName($date); + + if ($tz !== false) { + return new static($tz); + } + + if (Carbon::isStrictModeEnabled()) { + throw new InvalidTimeZoneException('Unknown timezone for offset '.$this->getOffset($date ?: Carbon::now($this)).' seconds.'); + } + + return false; + } + + /** + * Cast to string (get timezone name). + * + * @return string + */ + public function __toString() + { + return $this->getName(); + } + + /** + * Return the type number: + * + * Type 1; A UTC offset, such as -0300 + * Type 2; A timezone abbreviation, such as GMT + * Type 3: A timezone identifier, such as Europe/London + */ + public function getType(): int + { + return preg_match('/"timezone_type";i:(\d)/', serialize($this), $match) ? (int) $match[1] : 3; + } + + /** + * Create a CarbonTimeZone from mixed input. + * + * @param DateTimeZone|string|int|null $object + * + * @return false|static + */ + public static function create($object = null) + { + return static::instance($object); + } + + /** + * Create a CarbonTimeZone from int/float hour offset. + * + * @param float $hourOffset number of hour of the timezone shift (can be decimal). + * + * @return false|static + */ + public static function createFromHourOffset(float $hourOffset) + { + return static::createFromMinuteOffset($hourOffset * Carbon::MINUTES_PER_HOUR); + } + + /** + * Create a CarbonTimeZone from int/float minute offset. + * + * @param float $minuteOffset number of total minutes of the timezone shift. + * + * @return false|static + */ + public static function createFromMinuteOffset(float $minuteOffset) + { + return static::instance(static::getOffsetNameFromMinuteOffset($minuteOffset)); + } + + /** + * Convert a total minutes offset into a standardized timezone offset string. + * + * @param float $minutes number of total minutes of the timezone shift. + * + * @return string + */ + public static function getOffsetNameFromMinuteOffset(float $minutes): string + { + $minutes = round($minutes); + $unsignedMinutes = abs($minutes); + + return ($minutes < 0 ? '-' : '+'). + str_pad((string) floor($unsignedMinutes / 60), 2, '0', STR_PAD_LEFT). + ':'. + str_pad((string) ($unsignedMinutes % 60), 2, '0', STR_PAD_LEFT); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php new file mode 100644 index 00000000000..4f35d6c618f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Cli; + +class Invoker +{ + public const CLI_CLASS_NAME = 'Carbon\\Cli'; + + protected function runWithCli(string $className, array $parameters): bool + { + $cli = new $className(); + + return $cli(...$parameters); + } + + public function __invoke(...$parameters): bool + { + if (class_exists(self::CLI_CLASS_NAME)) { + return $this->runWithCli(self::CLI_CLASS_NAME, $parameters); + } + + $function = (($parameters[1] ?? '') === 'install' ? ($parameters[2] ?? null) : null) ?: 'shell_exec'; + $function('composer require carbon-cli/carbon-cli --no-interaction'); + + echo 'Installation succeeded.'; + + return true; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php new file mode 100644 index 00000000000..ccc457fcd20 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Doctrine\DBAL\Platforms\AbstractPlatform; + +interface CarbonDoctrineType +{ + public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform); + + public function convertToPHPValue($value, AbstractPlatform $platform); + + public function convertToDatabaseValue($value, AbstractPlatform $platform); +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php new file mode 100644 index 00000000000..bf476a77e5b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Doctrine\DBAL\Platforms\AbstractPlatform; + +class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType +{ + /** + * {@inheritdoc} + * + * @return string + */ + public function getName() + { + return 'carbon_immutable'; + } + + /** + * {@inheritdoc} + * + * @return bool + */ + public function requiresSQLCommentHint(AbstractPlatform $platform) + { + return true; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php new file mode 100644 index 00000000000..9289d84d348 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Doctrine\DBAL\Platforms\AbstractPlatform; + +class CarbonType extends DateTimeType implements CarbonDoctrineType +{ + /** + * {@inheritdoc} + * + * @return string + */ + public function getName() + { + return 'carbon'; + } + + /** + * {@inheritdoc} + * + * @return bool + */ + public function requiresSQLCommentHint(AbstractPlatform $platform) + { + return true; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php new file mode 100644 index 00000000000..ecfe17e7938 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Carbon\Carbon; +use Carbon\CarbonInterface; +use DateTimeInterface; +use Doctrine\DBAL\Platforms\AbstractPlatform; +use Doctrine\DBAL\Types\ConversionException; +use Exception; + +/** + * @template T of CarbonInterface + */ +trait CarbonTypeConverter +{ + /** + * @return class-string + */ + protected function getCarbonClassName(): string + { + return Carbon::class; + } + + /** + * @return string + */ + public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform) + { + $precision = $fieldDeclaration['precision'] ?: 10; + + if ($fieldDeclaration['secondPrecision'] ?? false) { + $precision = 0; + } + + if ($precision === 10) { + $precision = DateTimeDefaultPrecision::get(); + } + + $type = parent::getSQLDeclaration($fieldDeclaration, $platform); + + if (!$precision) { + return $type; + } + + if (str_contains($type, '(')) { + return preg_replace('/\(\d+\)/', "($precision)", $type); + } + + [$before, $after] = explode(' ', "$type "); + + return trim("$before($precision) $after"); + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @return T|null + */ + public function convertToPHPValue($value, AbstractPlatform $platform) + { + $class = $this->getCarbonClassName(); + + if ($value === null || is_a($value, $class)) { + return $value; + } + + if ($value instanceof DateTimeInterface) { + return $class::instance($value); + } + + $date = null; + $error = null; + + try { + $date = $class::parse($value); + } catch (Exception $exception) { + $error = $exception; + } + + if (!$date) { + throw ConversionException::conversionFailedFormat( + $value, + $this->getName(), + 'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()', + $error + ); + } + + return $date; + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @return string|null + */ + public function convertToDatabaseValue($value, AbstractPlatform $platform) + { + if ($value === null) { + return $value; + } + + if ($value instanceof DateTimeInterface) { + return $value->format('Y-m-d H:i:s.u'); + } + + throw ConversionException::conversionFailedInvalidType( + $value, + $this->getName(), + ['null', 'DateTime', 'Carbon'] + ); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php new file mode 100644 index 00000000000..642fd41354b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +class DateTimeDefaultPrecision +{ + private static $precision = 6; + + /** + * Change the default Doctrine datetime and datetime_immutable precision. + * + * @param int $precision + */ + public static function set(int $precision): void + { + self::$precision = $precision; + } + + /** + * Get the default Doctrine datetime and datetime_immutable precision. + * + * @return int + */ + public static function get(): int + { + return self::$precision; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php new file mode 100644 index 00000000000..499271031e3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php @@ -0,0 +1,24 @@ + */ + use CarbonTypeConverter; + + /** + * @return class-string + */ + protected function getCarbonClassName(): string + { + return CarbonImmutable::class; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php new file mode 100644 index 00000000000..29b0bb955e3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php @@ -0,0 +1,16 @@ + */ + use CarbonTypeConverter; +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php new file mode 100644 index 00000000000..3ca8837d182 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Throwable; + +class BadComparisonUnitException extends UnitException +{ + /** + * The unit. + * + * @var string + */ + protected $unit; + + /** + * Constructor. + * + * @param string $unit + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + + parent::__construct("Bad comparison unit: '$unit'", $code, $previous); + } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php new file mode 100644 index 00000000000..2e222e54e96 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use BadMethodCallException as BaseBadMethodCallException; +use Throwable; + +class BadFluentConstructorException extends BaseBadMethodCallException implements BadMethodCallException +{ + /** + * The method. + * + * @var string + */ + protected $method; + + /** + * Constructor. + * + * @param string $method + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($method, $code = 0, Throwable $previous = null) + { + $this->method = $method; + + parent::__construct(sprintf("Unknown fluent constructor '%s'.", $method), $code, $previous); + } + + /** + * Get the method. + * + * @return string + */ + public function getMethod(): string + { + return $this->method; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php new file mode 100644 index 00000000000..4ceaa2ef066 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use BadMethodCallException as BaseBadMethodCallException; +use Throwable; + +class BadFluentSetterException extends BaseBadMethodCallException implements BadMethodCallException +{ + /** + * The setter. + * + * @var string + */ + protected $setter; + + /** + * Constructor. + * + * @param string $setter + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($setter, $code = 0, Throwable $previous = null) + { + $this->setter = $setter; + + parent::__construct(sprintf("Unknown fluent setter '%s'", $setter), $code, $previous); + } + + /** + * Get the setter. + * + * @return string + */ + public function getSetter(): string + { + return $this->setter; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php new file mode 100644 index 00000000000..108206d3eb7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface BadMethodCallException extends Exception +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php new file mode 100644 index 00000000000..e10492693c3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; + +final class EndLessPeriodException extends BaseRuntimeException implements RuntimeException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php new file mode 100644 index 00000000000..8ad747e75f8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface Exception +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php new file mode 100644 index 00000000000..db334c6c9cc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; +use Throwable; + +class ImmutableException extends BaseRuntimeException implements RuntimeException +{ + /** + * The value. + * + * @var string + */ + protected $value; + + /** + * Constructor. + * + * @param string $value the immutable type/value + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($value, $code = 0, Throwable $previous = null) + { + $this->value = $value; + parent::__construct("$value is immutable.", $code, $previous); + } + + /** + * Get the value. + * + * @return string + */ + public function getValue(): string + { + return $this->value; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php new file mode 100644 index 00000000000..5b013cd5078 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface InvalidArgumentException extends Exception +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php new file mode 100644 index 00000000000..a421401f6d9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidCastException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php new file mode 100644 index 00000000000..c9ecb6b0606 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class InvalidDateException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The invalid field. + * + * @var string + */ + private $field; + + /** + * The invalid value. + * + * @var mixed + */ + private $value; + + /** + * Constructor. + * + * @param string $field + * @param mixed $value + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($field, $value, $code = 0, Throwable $previous = null) + { + $this->field = $field; + $this->value = $value; + parent::__construct($field.' : '.$value.' is not a valid value.', $code, $previous); + } + + /** + * Get the invalid field. + * + * @return string + */ + public function getField() + { + return $this->field; + } + + /** + * Get the invalid value. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php new file mode 100644 index 00000000000..92d55fe3539 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidFormatException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php new file mode 100644 index 00000000000..69cf4128a9c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidIntervalException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php new file mode 100644 index 00000000000..9bd84a96d42 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidPeriodDateException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php new file mode 100644 index 00000000000..cf2c9024097 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidPeriodParameterException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php new file mode 100644 index 00000000000..f72595583c0 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidTimeZoneException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php new file mode 100644 index 00000000000..2c8ec9ba044 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidTypeException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php new file mode 100644 index 00000000000..7a87632c41a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Carbon\CarbonInterface; +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class NotACarbonClassException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The className. + * + * @var string + */ + protected $className; + + /** + * Constructor. + * + * @param string $className + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($className, $code = 0, Throwable $previous = null) + { + $this->className = $className; + + parent::__construct(sprintf('Given class does not implement %s: %s', CarbonInterface::class, $className), $code, $previous); + } + + /** + * Get the className. + * + * @return string + */ + public function getClassName(): string + { + return $this->className; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php new file mode 100644 index 00000000000..4edd7a4841c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class NotAPeriodException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php new file mode 100644 index 00000000000..f2c546843b1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class NotLocaleAwareException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * Constructor. + * + * @param mixed $object + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($object, $code = 0, Throwable $previous = null) + { + $dump = \is_object($object) ? \get_class($object) : \gettype($object); + + parent::__construct("$dump does neither implements Symfony\Contracts\Translation\LocaleAwareInterface nor getLocale() method.", $code, $previous); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php new file mode 100644 index 00000000000..2c586d0b760 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +// This will extends OutOfRangeException instead of InvalidArgumentException since 3.0.0 +// use OutOfRangeException as BaseOutOfRangeException; + +class OutOfRangeException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The unit or name of the value. + * + * @var string + */ + private $unit; + + /** + * The range minimum. + * + * @var mixed + */ + private $min; + + /** + * The range maximum. + * + * @var mixed + */ + private $max; + + /** + * The invalid value. + * + * @var mixed + */ + private $value; + + /** + * Constructor. + * + * @param string $unit + * @param mixed $min + * @param mixed $max + * @param mixed $value + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $min, $max, $value, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + $this->min = $min; + $this->max = $max; + $this->value = $value; + + parent::__construct("$unit must be between $min and $max, $value given", $code, $previous); + } + + /** + * @return mixed + */ + public function getMax() + { + return $this->max; + } + + /** + * @return mixed + */ + public function getMin() + { + return $this->min; + } + + /** + * @return mixed + */ + public function getUnit() + { + return $this->unit; + } + + /** + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php new file mode 100644 index 00000000000..5416fd1491b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class ParseErrorException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The expected. + * + * @var string + */ + protected $expected; + + /** + * The actual. + * + * @var string + */ + protected $actual; + + /** + * The help message. + * + * @var string + */ + protected $help; + + /** + * Constructor. + * + * @param string $expected + * @param string $actual + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($expected, $actual, $help = '', $code = 0, Throwable $previous = null) + { + $this->expected = $expected; + $this->actual = $actual; + $this->help = $help; + + $actual = $actual === '' ? 'data is missing' : "get '$actual'"; + + parent::__construct(trim("Format expected $expected but $actual\n$help"), $code, $previous); + } + + /** + * Get the expected. + * + * @return string + */ + public function getExpected(): string + { + return $this->expected; + } + + /** + * Get the actual. + * + * @return string + */ + public function getActual(): string + { + return $this->actual; + } + + /** + * Get the help message. + * + * @return string + */ + public function getHelp(): string + { + return $this->help; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php new file mode 100644 index 00000000000..ad196f79d58 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface RuntimeException extends Exception +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php new file mode 100644 index 00000000000..ee99953b4d3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class UnitException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php new file mode 100644 index 00000000000..0e7230563b4 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Throwable; + +class UnitNotConfiguredException extends UnitException +{ + /** + * The unit. + * + * @var string + */ + protected $unit; + + /** + * Constructor. + * + * @param string $unit + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + + parent::__construct("Unit $unit have no configuration to get total from other units.", $code, $previous); + } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php new file mode 100644 index 00000000000..5c504975aa0 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class UnknownGetterException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The getter. + * + * @var string + */ + protected $getter; + + /** + * Constructor. + * + * @param string $getter getter name + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($getter, $code = 0, Throwable $previous = null) + { + $this->getter = $getter; + + parent::__construct("Unknown getter '$getter'", $code, $previous); + } + + /** + * Get the getter. + * + * @return string + */ + public function getGetter(): string + { + return $this->getter; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php new file mode 100644 index 00000000000..75273a706e3 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use BadMethodCallException as BaseBadMethodCallException; +use Throwable; + +class UnknownMethodException extends BaseBadMethodCallException implements BadMethodCallException +{ + /** + * The method. + * + * @var string + */ + protected $method; + + /** + * Constructor. + * + * @param string $method + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($method, $code = 0, Throwable $previous = null) + { + $this->method = $method; + + parent::__construct("Method $method does not exist.", $code, $previous); + } + + /** + * Get the method. + * + * @return string + */ + public function getMethod(): string + { + return $this->method; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php new file mode 100644 index 00000000000..a795f5d725a --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class UnknownSetterException extends BaseInvalidArgumentException implements BadMethodCallException +{ + /** + * The setter. + * + * @var string + */ + protected $setter; + + /** + * Constructor. + * + * @param string $setter setter name + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($setter, $code = 0, Throwable $previous = null) + { + $this->setter = $setter; + + parent::__construct("Unknown setter '$setter'", $code, $previous); + } + + /** + * Get the setter. + * + * @return string + */ + public function getSetter(): string + { + return $this->setter; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php new file mode 100644 index 00000000000..ecd7f7a5925 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Throwable; + +class UnknownUnitException extends UnitException +{ + /** + * The unit. + * + * @var string + */ + protected $unit; + + /** + * Constructor. + * + * @param string $unit + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + + parent::__construct("Unknown unit '$unit'.", $code, $previous); + } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php new file mode 100644 index 00000000000..1654ab11b54 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; + +class UnreachableException extends BaseRuntimeException implements RuntimeException +{ + // +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Factory.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Factory.php new file mode 100644 index 00000000000..f8c72890cbc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Factory.php @@ -0,0 +1,326 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Closure; +use DateTimeInterface; +use ReflectionMethod; + +/** + * A factory to generate Carbon instances with common settings. + * + * + * + * @method bool canBeCreatedFromFormat($date, $format) Checks if the (date)time string is in a given format and valid to create a + * new instance. + * @method Carbon|false create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) Create a new Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * @method Carbon createFromDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to now. + * @method Carbon|false createFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method Carbon|false createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null) Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * @method Carbon|false createFromLocaleFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific format and a string in a given language. + * @method Carbon|false createFromLocaleIsoFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific ISO format and a string in a given language. + * @method Carbon createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null) Create a Carbon instance from just a time. The date portion is set to today. + * @method Carbon createFromTimeString($time, $tz = null) Create a Carbon instance from a time string. The date portion is set to today. + * @method Carbon createFromTimestamp($timestamp, $tz = null) Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createFromTimestampMs($timestamp, $tz = null) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createFromTimestampMsUTC($timestamp) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createFromTimestampUTC($timestamp) Create a Carbon instance from an timestamp keeping the timezone to UTC. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createMidnightDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to midnight. + * @method Carbon|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) Create a new safe Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * @method CarbonInterface createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null) Create a new Carbon instance from a specific date and time using strict validation. + * @method Carbon disableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method Carbon enableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method mixed executeWithLocale($locale, $func) Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * @method Carbon fromSerialized($value) Create an instance from a serialized string. + * @method void genericMacro($macro, $priority = 0) Register a custom macro. + * @method array getAvailableLocales() Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * @method Language[] getAvailableLocalesInfo() Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * @method array getDays() Get the days of the week + * @method string|null getFallbackLocale() Get the fallback locale. + * @method array getFormatsToIsoReplacements() List of replacements from date() format to isoFormat(). + * @method int getHumanDiffOptions() Return default humanDiff() options (merged flags as integer). + * @method array getIsoUnits() Returns list of locale units for ISO formatting. + * @method array getLastErrors() {@inheritdoc} + * @method string getLocale() Get the current translator locale. + * @method callable|null getMacro($name) Get the raw callable macro registered globally for a given name. + * @method int getMidDayAt() get midday/noon hour + * @method Closure|Carbon getTestNow() Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * @method string getTimeFormatByPrecision($unitPrecision) Return a format from H:i to H:i:s.u according to given unit precision. + * @method string getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) Returns raw translation message for a given key. + * @method \Symfony\Component\Translation\TranslatorInterface getTranslator() Get the default translator instance in use. + * @method int getWeekEndsAt() Get the last day of week + * @method int getWeekStartsAt() Get the first day of week + * @method array getWeekendDays() Get weekend days + * @method bool hasFormat($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasFormatWithModifiers($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasMacro($name) Checks if macro is registered globally. + * @method bool hasRelativeKeywords($time) Determine if a time string will produce a relative date. + * @method bool hasTestNow() Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * @method Carbon instance($date) Create a Carbon instance from a DateTime one. + * @method bool isImmutable() Returns true if the current class/instance is immutable. + * @method bool isModifiableUnit($unit) Returns true if a property can be changed via setter. + * @method bool isMutable() Returns true if the current class/instance is mutable. + * @method bool isStrictModeEnabled() Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * @method bool localeHasDiffOneDayWords($locale) Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * @method bool localeHasDiffSyntax($locale) Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasDiffTwoDayWords($locale) Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * @method bool localeHasPeriodSyntax($locale) Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasShortUnits($locale) Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * @method void macro($name, $macro) Register a custom macro. + * @method Carbon|null make($var) Make a Carbon instance from given variable if possible. + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * @method Carbon maxValue() Create a Carbon instance for the greatest supported date. + * @method Carbon minValue() Create a Carbon instance for the lowest supported date. + * @method void mixin($mixin) Mix another object into the class. + * @method Carbon now($tz = null) Get a Carbon instance for the current date and time. + * @method Carbon parse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method Carbon parseFromLocale($time, $locale = null, $tz = null) Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * @method string pluralUnit(string $unit) Returns standardized plural of a given singular/plural unit name (in English). + * @method Carbon|false rawCreateFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method Carbon rawParse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method Carbon resetMacros() Remove all macros and generic macros. + * @method void resetMonthsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void resetToStringFormat() Reset the format used to the default when type juggling a Carbon instance to a string + * @method void resetYearsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void serializeUsing($callback) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * JSON serialize all Carbon instances using the given callback. + * @method Carbon setFallbackLocale($locale) Set the fallback locale. + * @method Carbon setHumanDiffOptions($humanDiffOptions) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method bool setLocale($locale) Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * @method void setMidDayAt($hour) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * Set midday/noon hour + * @method Carbon setTestNow($testNow = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method Carbon setTestNowAndTimezone($testNow = null, $tz = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method void setToStringFormat($format) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump an other string + * format. + * Set the default format used when type juggling a Carbon instance to a string + * @method void setTranslator(TranslatorInterface $translator) Set the default translator instance to use. + * @method Carbon setUtf8($utf8) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * Set if UTF8 will be used for localized date/time. + * @method void setWeekEndsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * Set the last day of week + * @method void setWeekStartsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * Set the first day of week + * @method void setWeekendDays($days) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * Set weekend days + * @method bool shouldOverflowMonths() Get the month overflow global behavior (can be overridden in specific instances). + * @method bool shouldOverflowYears() Get the month overflow global behavior (can be overridden in specific instances). + * @method string singularUnit(string $unit) Returns standardized singular of a given singular/plural unit name (in English). + * @method Carbon today($tz = null) Create a Carbon instance for today. + * @method Carbon tomorrow($tz = null) Create a Carbon instance for tomorrow. + * @method string translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL) Translate a time string from a locale to an other. + * @method string translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available. + * @method void useMonthsOverflow($monthsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method Carbon useStrictMode($strictModeEnabled = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method void useYearsOverflow($yearsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method mixed withTestNow($testNow = null, $callback = null) Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * /!\ Use this method for unit tests only. + * @method Carbon yesterday($tz = null) Create a Carbon instance for yesterday. + * + * + */ +class Factory +{ + protected $className = Carbon::class; + + protected $settings = []; + + public function __construct(array $settings = [], ?string $className = null) + { + if ($className) { + $this->className = $className; + } + + $this->settings = $settings; + } + + public function getClassName() + { + return $this->className; + } + + public function setClassName(string $className) + { + $this->className = $className; + + return $this; + } + + public function className(string $className = null) + { + return $className === null ? $this->getClassName() : $this->setClassName($className); + } + + public function getSettings() + { + return $this->settings; + } + + public function setSettings(array $settings) + { + $this->settings = $settings; + + return $this; + } + + public function settings(array $settings = null) + { + return $settings === null ? $this->getSettings() : $this->setSettings($settings); + } + + public function mergeSettings(array $settings) + { + $this->settings = array_merge($this->settings, $settings); + + return $this; + } + + public function __call($name, $arguments) + { + $method = new ReflectionMethod($this->className, $name); + $settings = $this->settings; + + if ($settings && isset($settings['timezone'])) { + $tzParameters = array_filter($method->getParameters(), function ($parameter) { + return \in_array($parameter->getName(), ['tz', 'timezone'], true); + }); + + if (isset($arguments[0]) && \in_array($name, ['instance', 'make', 'create', 'parse'], true)) { + if ($arguments[0] instanceof DateTimeInterface) { + $settings['innerTimezone'] = $settings['timezone']; + } elseif (\is_string($arguments[0]) && date_parse($arguments[0])['is_localtime']) { + unset($settings['timezone'], $settings['innerTimezone']); + } + } elseif (\count($tzParameters)) { + array_splice($arguments, key($tzParameters), 0, [$settings['timezone']]); + unset($settings['timezone']); + } + } + + $result = $this->className::$name(...$arguments); + + return $result instanceof CarbonInterface && !empty($settings) + ? $result->settings($settings) + : $result; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php new file mode 100644 index 00000000000..596ee8064a9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php @@ -0,0 +1,243 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Closure; + +/** + * A factory to generate CarbonImmutable instances with common settings. + * + * + * + * @method bool canBeCreatedFromFormat($date, $format) Checks if the (date)time string is in a given format and valid to create a + * new instance. + * @method CarbonImmutable|false create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) Create a new Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * @method CarbonImmutable createFromDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to now. + * @method CarbonImmutable|false createFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method CarbonImmutable|false createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null) Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * @method CarbonImmutable|false createFromLocaleFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific format and a string in a given language. + * @method CarbonImmutable|false createFromLocaleIsoFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific ISO format and a string in a given language. + * @method CarbonImmutable createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null) Create a Carbon instance from just a time. The date portion is set to today. + * @method CarbonImmutable createFromTimeString($time, $tz = null) Create a Carbon instance from a time string. The date portion is set to today. + * @method CarbonImmutable createFromTimestamp($timestamp, $tz = null) Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createFromTimestampMs($timestamp, $tz = null) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createFromTimestampMsUTC($timestamp) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createFromTimestampUTC($timestamp) Create a Carbon instance from an timestamp keeping the timezone to UTC. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createMidnightDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to midnight. + * @method CarbonImmutable|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) Create a new safe Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * @method CarbonInterface createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null) Create a new Carbon instance from a specific date and time using strict validation. + * @method CarbonImmutable disableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method CarbonImmutable enableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method mixed executeWithLocale($locale, $func) Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * @method CarbonImmutable fromSerialized($value) Create an instance from a serialized string. + * @method void genericMacro($macro, $priority = 0) Register a custom macro. + * @method array getAvailableLocales() Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * @method Language[] getAvailableLocalesInfo() Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * @method array getDays() Get the days of the week + * @method string|null getFallbackLocale() Get the fallback locale. + * @method array getFormatsToIsoReplacements() List of replacements from date() format to isoFormat(). + * @method int getHumanDiffOptions() Return default humanDiff() options (merged flags as integer). + * @method array getIsoUnits() Returns list of locale units for ISO formatting. + * @method array getLastErrors() {@inheritdoc} + * @method string getLocale() Get the current translator locale. + * @method callable|null getMacro($name) Get the raw callable macro registered globally for a given name. + * @method int getMidDayAt() get midday/noon hour + * @method Closure|CarbonImmutable getTestNow() Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * @method string getTimeFormatByPrecision($unitPrecision) Return a format from H:i to H:i:s.u according to given unit precision. + * @method string getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) Returns raw translation message for a given key. + * @method \Symfony\Component\Translation\TranslatorInterface getTranslator() Get the default translator instance in use. + * @method int getWeekEndsAt() Get the last day of week + * @method int getWeekStartsAt() Get the first day of week + * @method array getWeekendDays() Get weekend days + * @method bool hasFormat($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasFormatWithModifiers($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasMacro($name) Checks if macro is registered globally. + * @method bool hasRelativeKeywords($time) Determine if a time string will produce a relative date. + * @method bool hasTestNow() Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * @method CarbonImmutable instance($date) Create a Carbon instance from a DateTime one. + * @method bool isImmutable() Returns true if the current class/instance is immutable. + * @method bool isModifiableUnit($unit) Returns true if a property can be changed via setter. + * @method bool isMutable() Returns true if the current class/instance is mutable. + * @method bool isStrictModeEnabled() Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * @method bool localeHasDiffOneDayWords($locale) Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * @method bool localeHasDiffSyntax($locale) Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasDiffTwoDayWords($locale) Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * @method bool localeHasPeriodSyntax($locale) Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasShortUnits($locale) Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * @method void macro($name, $macro) Register a custom macro. + * @method CarbonImmutable|null make($var) Make a Carbon instance from given variable if possible. + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * @method CarbonImmutable maxValue() Create a Carbon instance for the greatest supported date. + * @method CarbonImmutable minValue() Create a Carbon instance for the lowest supported date. + * @method void mixin($mixin) Mix another object into the class. + * @method CarbonImmutable now($tz = null) Get a Carbon instance for the current date and time. + * @method CarbonImmutable parse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method CarbonImmutable parseFromLocale($time, $locale = null, $tz = null) Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * @method string pluralUnit(string $unit) Returns standardized plural of a given singular/plural unit name (in English). + * @method CarbonImmutable|false rawCreateFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method CarbonImmutable rawParse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method CarbonImmutable resetMacros() Remove all macros and generic macros. + * @method void resetMonthsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void resetToStringFormat() Reset the format used to the default when type juggling a Carbon instance to a string + * @method void resetYearsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void serializeUsing($callback) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * JSON serialize all Carbon instances using the given callback. + * @method CarbonImmutable setFallbackLocale($locale) Set the fallback locale. + * @method CarbonImmutable setHumanDiffOptions($humanDiffOptions) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method bool setLocale($locale) Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * @method void setMidDayAt($hour) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * Set midday/noon hour + * @method CarbonImmutable setTestNow($testNow = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method CarbonImmutable setTestNowAndTimezone($testNow = null, $tz = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method void setToStringFormat($format) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump an other string + * format. + * Set the default format used when type juggling a Carbon instance to a string + * @method void setTranslator(TranslatorInterface $translator) Set the default translator instance to use. + * @method CarbonImmutable setUtf8($utf8) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * Set if UTF8 will be used for localized date/time. + * @method void setWeekEndsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * Set the last day of week + * @method void setWeekStartsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * Set the first day of week + * @method void setWeekendDays($days) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * Set weekend days + * @method bool shouldOverflowMonths() Get the month overflow global behavior (can be overridden in specific instances). + * @method bool shouldOverflowYears() Get the month overflow global behavior (can be overridden in specific instances). + * @method string singularUnit(string $unit) Returns standardized singular of a given singular/plural unit name (in English). + * @method CarbonImmutable today($tz = null) Create a Carbon instance for today. + * @method CarbonImmutable tomorrow($tz = null) Create a Carbon instance for tomorrow. + * @method string translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL) Translate a time string from a locale to an other. + * @method string translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available. + * @method void useMonthsOverflow($monthsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method CarbonImmutable useStrictMode($strictModeEnabled = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method void useYearsOverflow($yearsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method mixed withTestNow($testNow = null, $callback = null) Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * /!\ Use this method for unit tests only. + * @method CarbonImmutable yesterday($tz = null) Create a Carbon instance for yesterday. + * + * + */ +class FactoryImmutable extends Factory +{ + protected $className = CarbonImmutable::class; +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Language.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Language.php new file mode 100644 index 00000000000..1fb5bafdc84 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Language.php @@ -0,0 +1,342 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use JsonSerializable; +use ReturnTypeWillChange; + +class Language implements JsonSerializable +{ + /** + * @var array + */ + protected static $languagesNames; + + /** + * @var array + */ + protected static $regionsNames; + + /** + * @var string + */ + protected $id; + + /** + * @var string + */ + protected $code; + + /** + * @var string|null + */ + protected $variant; + + /** + * @var string|null + */ + protected $region; + + /** + * @var array + */ + protected $names; + + /** + * @var string + */ + protected $isoName; + + /** + * @var string + */ + protected $nativeName; + + public function __construct(string $id) + { + $this->id = str_replace('-', '_', $id); + $parts = explode('_', $this->id); + $this->code = $parts[0]; + + if (isset($parts[1])) { + if (!preg_match('/^[A-Z]+$/', $parts[1])) { + $this->variant = $parts[1]; + $parts[1] = $parts[2] ?? null; + } + if ($parts[1]) { + $this->region = $parts[1]; + } + } + } + + /** + * Get the list of the known languages. + * + * @return array + */ + public static function all() + { + if (!static::$languagesNames) { + static::$languagesNames = require __DIR__.'/List/languages.php'; + } + + return static::$languagesNames; + } + + /** + * Get the list of the known regions. + * + * @return array + */ + public static function regions() + { + if (!static::$regionsNames) { + static::$regionsNames = require __DIR__.'/List/regions.php'; + } + + return static::$regionsNames; + } + + /** + * Get both isoName and nativeName as an array. + * + * @return array + */ + public function getNames(): array + { + if (!$this->names) { + $this->names = static::all()[$this->code] ?? [ + 'isoName' => $this->code, + 'nativeName' => $this->code, + ]; + } + + return $this->names; + } + + /** + * Returns the original locale ID. + * + * @return string + */ + public function getId(): string + { + return $this->id; + } + + /** + * Returns the code of the locale "en"/"fr". + * + * @return string + */ + public function getCode(): string + { + return $this->code; + } + + /** + * Returns the variant code such as cyrl/latn. + * + * @return string|null + */ + public function getVariant(): ?string + { + return $this->variant; + } + + /** + * Returns the variant such as Cyrillic/Latin. + * + * @return string|null + */ + public function getVariantName(): ?string + { + if ($this->variant === 'Latn') { + return 'Latin'; + } + + if ($this->variant === 'Cyrl') { + return 'Cyrillic'; + } + + return $this->variant; + } + + /** + * Returns the region part of the locale. + * + * @return string|null + */ + public function getRegion(): ?string + { + return $this->region; + } + + /** + * Returns the region name for the current language. + * + * @return string|null + */ + public function getRegionName(): ?string + { + return $this->region ? (static::regions()[$this->region] ?? $this->region) : null; + } + + /** + * Returns the long ISO language name. + * + * @return string + */ + public function getFullIsoName(): string + { + if (!$this->isoName) { + $this->isoName = $this->getNames()['isoName']; + } + + return $this->isoName; + } + + /** + * Set the ISO language name. + * + * @param string $isoName + */ + public function setIsoName(string $isoName): self + { + $this->isoName = $isoName; + + return $this; + } + + /** + * Return the full name of the language in this language. + * + * @return string + */ + public function getFullNativeName(): string + { + if (!$this->nativeName) { + $this->nativeName = $this->getNames()['nativeName']; + } + + return $this->nativeName; + } + + /** + * Set the name of the language in this language. + * + * @param string $nativeName + */ + public function setNativeName(string $nativeName): self + { + $this->nativeName = $nativeName; + + return $this; + } + + /** + * Returns the short ISO language name. + * + * @return string + */ + public function getIsoName(): string + { + $name = $this->getFullIsoName(); + + return trim(strstr($name, ',', true) ?: $name); + } + + /** + * Get the short name of the language in this language. + * + * @return string + */ + public function getNativeName(): string + { + $name = $this->getFullNativeName(); + + return trim(strstr($name, ',', true) ?: $name); + } + + /** + * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getIsoDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Get a string with short native name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getNativeDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Get a string with long ISO name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getFullIsoDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getFullIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Get a string with long native name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getFullNativeDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getFullNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Returns the original locale ID. + * + * @return string + */ + public function __toString() + { + return $this->getId(); + } + + /** + * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + #[ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->getIsoDescription(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php new file mode 100644 index 00000000000..84e241e3eff --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php @@ -0,0 +1,127 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Laravel; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; +use Illuminate\Events\Dispatcher; +use Illuminate\Events\EventDispatcher; +use Illuminate\Support\Carbon as IlluminateCarbon; +use Illuminate\Support\Facades\Date; +use Throwable; + +class ServiceProvider extends \Illuminate\Support\ServiceProvider +{ + /** @var callable|null */ + protected $appGetter = null; + + /** @var callable|null */ + protected $localeGetter = null; + + public function setAppGetter(?callable $appGetter): void + { + $this->appGetter = $appGetter; + } + + public function setLocaleGetter(?callable $localeGetter): void + { + $this->localeGetter = $localeGetter; + } + + public function boot() + { + $this->updateLocale(); + + if (!$this->app->bound('events')) { + return; + } + + $service = $this; + $events = $this->app['events']; + + if ($this->isEventDispatcher($events)) { + $events->listen(class_exists('Illuminate\Foundation\Events\LocaleUpdated') ? 'Illuminate\Foundation\Events\LocaleUpdated' : 'locale.changed', function () use ($service) { + $service->updateLocale(); + }); + } + } + + public function updateLocale() + { + $locale = $this->getLocale(); + + if ($locale === null) { + return; + } + + Carbon::setLocale($locale); + CarbonImmutable::setLocale($locale); + CarbonPeriod::setLocale($locale); + CarbonInterval::setLocale($locale); + + if (class_exists(IlluminateCarbon::class)) { + IlluminateCarbon::setLocale($locale); + } + + if (class_exists(Date::class)) { + try { + $root = Date::getFacadeRoot(); + $root->setLocale($locale); + } catch (Throwable $e) { + // Non Carbon class in use in Date facade + } + } + } + + public function register() + { + // Needed for Laravel < 5.3 compatibility + } + + protected function getLocale() + { + if ($this->localeGetter) { + return ($this->localeGetter)(); + } + + $app = $this->getApp(); + $app = $app && method_exists($app, 'getLocale') + ? $app + : $this->getGlobalApp('translator'); + + return $app ? $app->getLocale() : null; + } + + protected function getApp() + { + if ($this->appGetter) { + return ($this->appGetter)(); + } + + return $this->app ?? $this->getGlobalApp(); + } + + protected function getGlobalApp(...$args) + { + return \function_exists('app') ? \app(...$args) : null; + } + + protected function isEventDispatcher($instance) + { + return $instance instanceof EventDispatcher + || $instance instanceof Dispatcher + || $instance instanceof DispatcherContract; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/List/languages.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/List/languages.php new file mode 100644 index 00000000000..5b5d9a1e7b7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/List/languages.php @@ -0,0 +1,1239 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + /* + * ISO 639-2 + */ + 'ab' => [ + 'isoName' => 'Abkhazian', + 'nativeName' => 'аҧсуа бызшәа, аҧсшәа', + ], + 'aa' => [ + 'isoName' => 'Afar', + 'nativeName' => 'Afaraf', + ], + 'af' => [ + 'isoName' => 'Afrikaans', + 'nativeName' => 'Afrikaans', + ], + 'ak' => [ + 'isoName' => 'Akan', + 'nativeName' => 'Akan', + ], + 'sq' => [ + 'isoName' => 'Albanian', + 'nativeName' => 'Shqip', + ], + 'am' => [ + 'isoName' => 'Amharic', + 'nativeName' => 'አማርኛ', + ], + 'ar' => [ + 'isoName' => 'Arabic', + 'nativeName' => 'العربية', + ], + 'an' => [ + 'isoName' => 'Aragonese', + 'nativeName' => 'aragonés', + ], + 'hy' => [ + 'isoName' => 'Armenian', + 'nativeName' => 'Հայերեն', + ], + 'as' => [ + 'isoName' => 'Assamese', + 'nativeName' => 'অসমীয়া', + ], + 'av' => [ + 'isoName' => 'Avaric', + 'nativeName' => 'авар мацӀ, магӀарул мацӀ', + ], + 'ae' => [ + 'isoName' => 'Avestan', + 'nativeName' => 'avesta', + ], + 'ay' => [ + 'isoName' => 'Aymara', + 'nativeName' => 'aymar aru', + ], + 'az' => [ + 'isoName' => 'Azerbaijani', + 'nativeName' => 'azərbaycan dili', + ], + 'bm' => [ + 'isoName' => 'Bambara', + 'nativeName' => 'bamanankan', + ], + 'ba' => [ + 'isoName' => 'Bashkir', + 'nativeName' => 'башҡорт теле', + ], + 'eu' => [ + 'isoName' => 'Basque', + 'nativeName' => 'euskara, euskera', + ], + 'be' => [ + 'isoName' => 'Belarusian', + 'nativeName' => 'беларуская мова', + ], + 'bn' => [ + 'isoName' => 'Bengali', + 'nativeName' => 'বাংলা', + ], + 'bh' => [ + 'isoName' => 'Bihari languages', + 'nativeName' => 'भोजपुरी', + ], + 'bi' => [ + 'isoName' => 'Bislama', + 'nativeName' => 'Bislama', + ], + 'bs' => [ + 'isoName' => 'Bosnian', + 'nativeName' => 'bosanski jezik', + ], + 'br' => [ + 'isoName' => 'Breton', + 'nativeName' => 'brezhoneg', + ], + 'bg' => [ + 'isoName' => 'Bulgarian', + 'nativeName' => 'български език', + ], + 'my' => [ + 'isoName' => 'Burmese', + 'nativeName' => 'ဗမာစာ', + ], + 'ca' => [ + 'isoName' => 'Catalan, Valencian', + 'nativeName' => 'català, valencià', + ], + 'ch' => [ + 'isoName' => 'Chamorro', + 'nativeName' => 'Chamoru', + ], + 'ce' => [ + 'isoName' => 'Chechen', + 'nativeName' => 'нохчийн мотт', + ], + 'ny' => [ + 'isoName' => 'Chichewa, Chewa, Nyanja', + 'nativeName' => 'chiCheŵa, chinyanja', + ], + 'zh' => [ + 'isoName' => 'Chinese', + 'nativeName' => '中文 (Zhōngwén), 汉语, 漢語', + ], + 'cv' => [ + 'isoName' => 'Chuvash', + 'nativeName' => 'чӑваш чӗлхи', + ], + 'kw' => [ + 'isoName' => 'Cornish', + 'nativeName' => 'Kernewek', + ], + 'co' => [ + 'isoName' => 'Corsican', + 'nativeName' => 'corsu, lingua corsa', + ], + 'cr' => [ + 'isoName' => 'Cree', + 'nativeName' => 'ᓀᐦᐃᔭᐍᐏᐣ', + ], + 'hr' => [ + 'isoName' => 'Croatian', + 'nativeName' => 'hrvatski jezik', + ], + 'cs' => [ + 'isoName' => 'Czech', + 'nativeName' => 'čeština, český jazyk', + ], + 'da' => [ + 'isoName' => 'Danish', + 'nativeName' => 'dansk', + ], + 'dv' => [ + 'isoName' => 'Divehi, Dhivehi, Maldivian', + 'nativeName' => 'ދިވެހި', + ], + 'nl' => [ + 'isoName' => 'Dutch, Flemish', + 'nativeName' => 'Nederlands, Vlaams', + ], + 'dz' => [ + 'isoName' => 'Dzongkha', + 'nativeName' => 'རྫོང་ཁ', + ], + 'en' => [ + 'isoName' => 'English', + 'nativeName' => 'English', + ], + 'eo' => [ + 'isoName' => 'Esperanto', + 'nativeName' => 'Esperanto', + ], + 'et' => [ + 'isoName' => 'Estonian', + 'nativeName' => 'eesti, eesti keel', + ], + 'ee' => [ + 'isoName' => 'Ewe', + 'nativeName' => 'Eʋegbe', + ], + 'fo' => [ + 'isoName' => 'Faroese', + 'nativeName' => 'føroyskt', + ], + 'fj' => [ + 'isoName' => 'Fijian', + 'nativeName' => 'vosa Vakaviti', + ], + 'fi' => [ + 'isoName' => 'Finnish', + 'nativeName' => 'suomi, suomen kieli', + ], + 'fr' => [ + 'isoName' => 'French', + 'nativeName' => 'français', + ], + 'ff' => [ + 'isoName' => 'Fulah', + 'nativeName' => 'Fulfulde, Pulaar, Pular', + ], + 'gl' => [ + 'isoName' => 'Galician', + 'nativeName' => 'Galego', + ], + 'ka' => [ + 'isoName' => 'Georgian', + 'nativeName' => 'ქართული', + ], + 'de' => [ + 'isoName' => 'German', + 'nativeName' => 'Deutsch', + ], + 'el' => [ + 'isoName' => 'Greek (modern)', + 'nativeName' => 'ελληνικά', + ], + 'gn' => [ + 'isoName' => 'Guaraní', + 'nativeName' => 'Avañe\'ẽ', + ], + 'gu' => [ + 'isoName' => 'Gujarati', + 'nativeName' => 'ગુજરાતી', + ], + 'ht' => [ + 'isoName' => 'Haitian, Haitian Creole', + 'nativeName' => 'Kreyòl ayisyen', + ], + 'ha' => [ + 'isoName' => 'Hausa', + 'nativeName' => '(Hausa) هَوُسَ', + ], + 'he' => [ + 'isoName' => 'Hebrew (modern)', + 'nativeName' => 'עברית', + ], + 'hz' => [ + 'isoName' => 'Herero', + 'nativeName' => 'Otjiherero', + ], + 'hi' => [ + 'isoName' => 'Hindi', + 'nativeName' => 'हिन्दी, हिंदी', + ], + 'ho' => [ + 'isoName' => 'Hiri Motu', + 'nativeName' => 'Hiri Motu', + ], + 'hu' => [ + 'isoName' => 'Hungarian', + 'nativeName' => 'magyar', + ], + 'ia' => [ + 'isoName' => 'Interlingua', + 'nativeName' => 'Interlingua', + ], + 'id' => [ + 'isoName' => 'Indonesian', + 'nativeName' => 'Bahasa Indonesia', + ], + 'ie' => [ + 'isoName' => 'Interlingue', + 'nativeName' => 'Originally called Occidental; then Interlingue after WWII', + ], + 'ga' => [ + 'isoName' => 'Irish', + 'nativeName' => 'Gaeilge', + ], + 'ig' => [ + 'isoName' => 'Igbo', + 'nativeName' => 'Asụsụ Igbo', + ], + 'ik' => [ + 'isoName' => 'Inupiaq', + 'nativeName' => 'Iñupiaq, Iñupiatun', + ], + 'io' => [ + 'isoName' => 'Ido', + 'nativeName' => 'Ido', + ], + 'is' => [ + 'isoName' => 'Icelandic', + 'nativeName' => 'Íslenska', + ], + 'it' => [ + 'isoName' => 'Italian', + 'nativeName' => 'Italiano', + ], + 'iu' => [ + 'isoName' => 'Inuktitut', + 'nativeName' => 'ᐃᓄᒃᑎᑐᑦ', + ], + 'ja' => [ + 'isoName' => 'Japanese', + 'nativeName' => '日本語 (にほんご)', + ], + 'jv' => [ + 'isoName' => 'Javanese', + 'nativeName' => 'ꦧꦱꦗꦮ, Basa Jawa', + ], + 'kl' => [ + 'isoName' => 'Kalaallisut, Greenlandic', + 'nativeName' => 'kalaallisut, kalaallit oqaasii', + ], + 'kn' => [ + 'isoName' => 'Kannada', + 'nativeName' => 'ಕನ್ನಡ', + ], + 'kr' => [ + 'isoName' => 'Kanuri', + 'nativeName' => 'Kanuri', + ], + 'ks' => [ + 'isoName' => 'Kashmiri', + 'nativeName' => 'कश्मीरी, كشميري‎', + ], + 'kk' => [ + 'isoName' => 'Kazakh', + 'nativeName' => 'қазақ тілі', + ], + 'km' => [ + 'isoName' => 'Central Khmer', + 'nativeName' => 'ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ', + ], + 'ki' => [ + 'isoName' => 'Kikuyu, Gikuyu', + 'nativeName' => 'Gĩkũyũ', + ], + 'rw' => [ + 'isoName' => 'Kinyarwanda', + 'nativeName' => 'Ikinyarwanda', + ], + 'ky' => [ + 'isoName' => 'Kirghiz, Kyrgyz', + 'nativeName' => 'Кыргызча, Кыргыз тили', + ], + 'kv' => [ + 'isoName' => 'Komi', + 'nativeName' => 'коми кыв', + ], + 'kg' => [ + 'isoName' => 'Kongo', + 'nativeName' => 'Kikongo', + ], + 'ko' => [ + 'isoName' => 'Korean', + 'nativeName' => '한국어', + ], + 'ku' => [ + 'isoName' => 'Kurdish', + 'nativeName' => 'Kurdî, کوردی‎', + ], + 'kj' => [ + 'isoName' => 'Kuanyama, Kwanyama', + 'nativeName' => 'Kuanyama', + ], + 'la' => [ + 'isoName' => 'Latin', + 'nativeName' => 'latine, lingua latina', + ], + 'lb' => [ + 'isoName' => 'Luxembourgish, Letzeburgesch', + 'nativeName' => 'Lëtzebuergesch', + ], + 'lg' => [ + 'isoName' => 'Ganda', + 'nativeName' => 'Luganda', + ], + 'li' => [ + 'isoName' => 'Limburgan, Limburger, Limburgish', + 'nativeName' => 'Limburgs', + ], + 'ln' => [ + 'isoName' => 'Lingala', + 'nativeName' => 'Lingála', + ], + 'lo' => [ + 'isoName' => 'Lao', + 'nativeName' => 'ພາສາລາວ', + ], + 'lt' => [ + 'isoName' => 'Lithuanian', + 'nativeName' => 'lietuvių kalba', + ], + 'lu' => [ + 'isoName' => 'Luba-Katanga', + 'nativeName' => 'Kiluba', + ], + 'lv' => [ + 'isoName' => 'Latvian', + 'nativeName' => 'latviešu valoda', + ], + 'gv' => [ + 'isoName' => 'Manx', + 'nativeName' => 'Gaelg, Gailck', + ], + 'mk' => [ + 'isoName' => 'Macedonian', + 'nativeName' => 'македонски јазик', + ], + 'mg' => [ + 'isoName' => 'Malagasy', + 'nativeName' => 'fiteny malagasy', + ], + 'ms' => [ + 'isoName' => 'Malay', + 'nativeName' => 'Bahasa Melayu, بهاس ملايو‎', + ], + 'ml' => [ + 'isoName' => 'Malayalam', + 'nativeName' => 'മലയാളം', + ], + 'mt' => [ + 'isoName' => 'Maltese', + 'nativeName' => 'Malti', + ], + 'mi' => [ + 'isoName' => 'Maori', + 'nativeName' => 'te reo Māori', + ], + 'mr' => [ + 'isoName' => 'Marathi', + 'nativeName' => 'मराठी', + ], + 'mh' => [ + 'isoName' => 'Marshallese', + 'nativeName' => 'Kajin M̧ajeļ', + ], + 'mn' => [ + 'isoName' => 'Mongolian', + 'nativeName' => 'Монгол хэл', + ], + 'na' => [ + 'isoName' => 'Nauru', + 'nativeName' => 'Dorerin Naoero', + ], + 'nv' => [ + 'isoName' => 'Navajo, Navaho', + 'nativeName' => 'Diné bizaad', + ], + 'nd' => [ + 'isoName' => 'North Ndebele', + 'nativeName' => 'isiNdebele', + ], + 'ne' => [ + 'isoName' => 'Nepali', + 'nativeName' => 'नेपाली', + ], + 'ng' => [ + 'isoName' => 'Ndonga', + 'nativeName' => 'Owambo', + ], + 'nb' => [ + 'isoName' => 'Norwegian Bokmål', + 'nativeName' => 'Norsk Bokmål', + ], + 'nn' => [ + 'isoName' => 'Norwegian Nynorsk', + 'nativeName' => 'Norsk Nynorsk', + ], + 'no' => [ + 'isoName' => 'Norwegian', + 'nativeName' => 'Norsk', + ], + 'ii' => [ + 'isoName' => 'Sichuan Yi, Nuosu', + 'nativeName' => 'ꆈꌠ꒿ Nuosuhxop', + ], + 'nr' => [ + 'isoName' => 'South Ndebele', + 'nativeName' => 'isiNdebele', + ], + 'oc' => [ + 'isoName' => 'Occitan', + 'nativeName' => 'occitan, lenga d\'òc', + ], + 'oj' => [ + 'isoName' => 'Ojibwa', + 'nativeName' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ', + ], + 'cu' => [ + 'isoName' => 'Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian', + 'nativeName' => 'ѩзыкъ словѣньскъ', + ], + 'om' => [ + 'isoName' => 'Oromo', + 'nativeName' => 'Afaan Oromoo', + ], + 'or' => [ + 'isoName' => 'Oriya', + 'nativeName' => 'ଓଡ଼ିଆ', + ], + 'os' => [ + 'isoName' => 'Ossetian, Ossetic', + 'nativeName' => 'ирон æвзаг', + ], + 'pa' => [ + 'isoName' => 'Panjabi, Punjabi', + 'nativeName' => 'ਪੰਜਾਬੀ', + ], + 'pi' => [ + 'isoName' => 'Pali', + 'nativeName' => 'पाऴि', + ], + 'fa' => [ + 'isoName' => 'Persian', + 'nativeName' => 'فارسی', + ], + 'pl' => [ + 'isoName' => 'Polish', + 'nativeName' => 'język polski, polszczyzna', + ], + 'ps' => [ + 'isoName' => 'Pashto, Pushto', + 'nativeName' => 'پښتو', + ], + 'pt' => [ + 'isoName' => 'Portuguese', + 'nativeName' => 'Português', + ], + 'qu' => [ + 'isoName' => 'Quechua', + 'nativeName' => 'Runa Simi, Kichwa', + ], + 'rm' => [ + 'isoName' => 'Romansh', + 'nativeName' => 'Rumantsch Grischun', + ], + 'rn' => [ + 'isoName' => 'Rundi', + 'nativeName' => 'Ikirundi', + ], + 'ro' => [ + 'isoName' => 'Romanian, Moldavian, Moldovan', + 'nativeName' => 'Română', + ], + 'ru' => [ + 'isoName' => 'Russian', + 'nativeName' => 'русский', + ], + 'sa' => [ + 'isoName' => 'Sanskrit', + 'nativeName' => 'संस्कृतम्', + ], + 'sc' => [ + 'isoName' => 'Sardinian', + 'nativeName' => 'sardu', + ], + 'sd' => [ + 'isoName' => 'Sindhi', + 'nativeName' => 'सिन्धी, سنڌي، سندھی‎', + ], + 'se' => [ + 'isoName' => 'Northern Sami', + 'nativeName' => 'Davvisámegiella', + ], + 'sm' => [ + 'isoName' => 'Samoan', + 'nativeName' => 'gagana fa\'a Samoa', + ], + 'sg' => [ + 'isoName' => 'Sango', + 'nativeName' => 'yângâ tî sängö', + ], + 'sr' => [ + 'isoName' => 'Serbian', + 'nativeName' => 'српски језик', + ], + 'gd' => [ + 'isoName' => 'Gaelic, Scottish Gaelic', + 'nativeName' => 'Gàidhlig', + ], + 'sn' => [ + 'isoName' => 'Shona', + 'nativeName' => 'chiShona', + ], + 'si' => [ + 'isoName' => 'Sinhala, Sinhalese', + 'nativeName' => 'සිංහල', + ], + 'sk' => [ + 'isoName' => 'Slovak', + 'nativeName' => 'Slovenčina, Slovenský Jazyk', + ], + 'sl' => [ + 'isoName' => 'Slovene', + 'nativeName' => 'Slovenski Jezik, Slovenščina', + ], + 'so' => [ + 'isoName' => 'Somali', + 'nativeName' => 'Soomaaliga, af Soomaali', + ], + 'st' => [ + 'isoName' => 'Southern Sotho', + 'nativeName' => 'Sesotho', + ], + 'es' => [ + 'isoName' => 'Spanish, Castilian', + 'nativeName' => 'Español', + ], + 'su' => [ + 'isoName' => 'Sundanese', + 'nativeName' => 'Basa Sunda', + ], + 'sw' => [ + 'isoName' => 'Swahili', + 'nativeName' => 'Kiswahili', + ], + 'ss' => [ + 'isoName' => 'Swati', + 'nativeName' => 'SiSwati', + ], + 'sv' => [ + 'isoName' => 'Swedish', + 'nativeName' => 'Svenska', + ], + 'ta' => [ + 'isoName' => 'Tamil', + 'nativeName' => 'தமிழ்', + ], + 'te' => [ + 'isoName' => 'Telugu', + 'nativeName' => 'తెలుగు', + ], + 'tg' => [ + 'isoName' => 'Tajik', + 'nativeName' => 'тоҷикӣ, toçikī, تاجیکی‎', + ], + 'th' => [ + 'isoName' => 'Thai', + 'nativeName' => 'ไทย', + ], + 'ti' => [ + 'isoName' => 'Tigrinya', + 'nativeName' => 'ትግርኛ', + ], + 'bo' => [ + 'isoName' => 'Tibetan', + 'nativeName' => 'བོད་ཡིག', + ], + 'tk' => [ + 'isoName' => 'Turkmen', + 'nativeName' => 'Türkmen, Түркмен', + ], + 'tl' => [ + 'isoName' => 'Tagalog', + 'nativeName' => 'Wikang Tagalog', + ], + 'tn' => [ + 'isoName' => 'Tswana', + 'nativeName' => 'Setswana', + ], + 'to' => [ + 'isoName' => 'Tongan (Tonga Islands)', + 'nativeName' => 'Faka Tonga', + ], + 'tr' => [ + 'isoName' => 'Turkish', + 'nativeName' => 'Türkçe', + ], + 'ts' => [ + 'isoName' => 'Tsonga', + 'nativeName' => 'Xitsonga', + ], + 'tt' => [ + 'isoName' => 'Tatar', + 'nativeName' => 'татар теле, tatar tele', + ], + 'tw' => [ + 'isoName' => 'Twi', + 'nativeName' => 'Twi', + ], + 'ty' => [ + 'isoName' => 'Tahitian', + 'nativeName' => 'Reo Tahiti', + ], + 'ug' => [ + 'isoName' => 'Uighur, Uyghur', + 'nativeName' => 'Uyƣurqə, ‫ئۇيغۇرچ', + ], + 'uk' => [ + 'isoName' => 'Ukrainian', + 'nativeName' => 'Українська', + ], + 'ur' => [ + 'isoName' => 'Urdu', + 'nativeName' => 'اردو', + ], + 'uz' => [ + 'isoName' => 'Uzbek', + 'nativeName' => 'Oʻzbek, Ўзбек, أۇزبېك‎', + ], + 've' => [ + 'isoName' => 'Venda', + 'nativeName' => 'Tshivenḓa', + ], + 'vi' => [ + 'isoName' => 'Vietnamese', + 'nativeName' => 'Tiếng Việt', + ], + 'vo' => [ + 'isoName' => 'Volapük', + 'nativeName' => 'Volapük', + ], + 'wa' => [ + 'isoName' => 'Walloon', + 'nativeName' => 'Walon', + ], + 'cy' => [ + 'isoName' => 'Welsh', + 'nativeName' => 'Cymraeg', + ], + 'wo' => [ + 'isoName' => 'Wolof', + 'nativeName' => 'Wollof', + ], + 'fy' => [ + 'isoName' => 'Western Frisian', + 'nativeName' => 'Frysk', + ], + 'xh' => [ + 'isoName' => 'Xhosa', + 'nativeName' => 'isiXhosa', + ], + 'yi' => [ + 'isoName' => 'Yiddish', + 'nativeName' => 'ייִדיש', + ], + 'yo' => [ + 'isoName' => 'Yoruba', + 'nativeName' => 'Yorùbá', + ], + 'za' => [ + 'isoName' => 'Zhuang, Chuang', + 'nativeName' => 'Saɯ cueŋƅ, Saw cuengh', + ], + 'zu' => [ + 'isoName' => 'Zulu', + 'nativeName' => 'isiZulu', + ], + /* + * Add ISO 639-3 languages available in Carbon + */ + 'agq' => [ + 'isoName' => 'Aghem', + 'nativeName' => 'Aghem', + ], + 'agr' => [ + 'isoName' => 'Aguaruna', + 'nativeName' => 'Aguaruna', + ], + 'anp' => [ + 'isoName' => 'Angika', + 'nativeName' => 'Angika', + ], + 'asa' => [ + 'isoName' => 'Asu', + 'nativeName' => 'Asu', + ], + 'ast' => [ + 'isoName' => 'Asturian', + 'nativeName' => 'Asturian', + ], + 'ayc' => [ + 'isoName' => 'Southern Aymara', + 'nativeName' => 'Southern Aymara', + ], + 'bas' => [ + 'isoName' => 'Basaa', + 'nativeName' => 'Basaa', + ], + 'bem' => [ + 'isoName' => 'Bemba', + 'nativeName' => 'Bemba', + ], + 'bez' => [ + 'isoName' => 'Bena', + 'nativeName' => 'Bena', + ], + 'bhb' => [ + 'isoName' => 'Bhili', + 'nativeName' => 'Bhili', + ], + 'bho' => [ + 'isoName' => 'Bhojpuri', + 'nativeName' => 'Bhojpuri', + ], + 'brx' => [ + 'isoName' => 'Bodo', + 'nativeName' => 'Bodo', + ], + 'byn' => [ + 'isoName' => 'Bilin', + 'nativeName' => 'Bilin', + ], + 'ccp' => [ + 'isoName' => 'Chakma', + 'nativeName' => 'Chakma', + ], + 'cgg' => [ + 'isoName' => 'Chiga', + 'nativeName' => 'Chiga', + ], + 'chr' => [ + 'isoName' => 'Cherokee', + 'nativeName' => 'Cherokee', + ], + 'cmn' => [ + 'isoName' => 'Chinese', + 'nativeName' => 'Chinese', + ], + 'crh' => [ + 'isoName' => 'Crimean Turkish', + 'nativeName' => 'Crimean Turkish', + ], + 'csb' => [ + 'isoName' => 'Kashubian', + 'nativeName' => 'Kashubian', + ], + 'dav' => [ + 'isoName' => 'Taita', + 'nativeName' => 'Taita', + ], + 'dje' => [ + 'isoName' => 'Zarma', + 'nativeName' => 'Zarma', + ], + 'doi' => [ + 'isoName' => 'Dogri (macrolanguage)', + 'nativeName' => 'Dogri (macrolanguage)', + ], + 'dsb' => [ + 'isoName' => 'Lower Sorbian', + 'nativeName' => 'Lower Sorbian', + ], + 'dua' => [ + 'isoName' => 'Duala', + 'nativeName' => 'Duala', + ], + 'dyo' => [ + 'isoName' => 'Jola-Fonyi', + 'nativeName' => 'Jola-Fonyi', + ], + 'ebu' => [ + 'isoName' => 'Embu', + 'nativeName' => 'Embu', + ], + 'ewo' => [ + 'isoName' => 'Ewondo', + 'nativeName' => 'Ewondo', + ], + 'fil' => [ + 'isoName' => 'Filipino', + 'nativeName' => 'Filipino', + ], + 'fur' => [ + 'isoName' => 'Friulian', + 'nativeName' => 'Friulian', + ], + 'gez' => [ + 'isoName' => 'Geez', + 'nativeName' => 'Geez', + ], + 'gom' => [ + 'isoName' => 'Konkani, Goan', + 'nativeName' => 'ಕೊಂಕಣಿ', + ], + 'gsw' => [ + 'isoName' => 'Swiss German', + 'nativeName' => 'Swiss German', + ], + 'guz' => [ + 'isoName' => 'Gusii', + 'nativeName' => 'Gusii', + ], + 'hak' => [ + 'isoName' => 'Hakka Chinese', + 'nativeName' => 'Hakka Chinese', + ], + 'haw' => [ + 'isoName' => 'Hawaiian', + 'nativeName' => 'Hawaiian', + ], + 'hif' => [ + 'isoName' => 'Fiji Hindi', + 'nativeName' => 'Fiji Hindi', + ], + 'hne' => [ + 'isoName' => 'Chhattisgarhi', + 'nativeName' => 'Chhattisgarhi', + ], + 'hsb' => [ + 'isoName' => 'Upper Sorbian', + 'nativeName' => 'Upper Sorbian', + ], + 'jgo' => [ + 'isoName' => 'Ngomba', + 'nativeName' => 'Ngomba', + ], + 'jmc' => [ + 'isoName' => 'Machame', + 'nativeName' => 'Machame', + ], + 'kab' => [ + 'isoName' => 'Kabyle', + 'nativeName' => 'Kabyle', + ], + 'kam' => [ + 'isoName' => 'Kamba', + 'nativeName' => 'Kamba', + ], + 'kde' => [ + 'isoName' => 'Makonde', + 'nativeName' => 'Makonde', + ], + 'kea' => [ + 'isoName' => 'Kabuverdianu', + 'nativeName' => 'Kabuverdianu', + ], + 'khq' => [ + 'isoName' => 'Koyra Chiini', + 'nativeName' => 'Koyra Chiini', + ], + 'kkj' => [ + 'isoName' => 'Kako', + 'nativeName' => 'Kako', + ], + 'kln' => [ + 'isoName' => 'Kalenjin', + 'nativeName' => 'Kalenjin', + ], + 'kok' => [ + 'isoName' => 'Konkani', + 'nativeName' => 'Konkani', + ], + 'ksb' => [ + 'isoName' => 'Shambala', + 'nativeName' => 'Shambala', + ], + 'ksf' => [ + 'isoName' => 'Bafia', + 'nativeName' => 'Bafia', + ], + 'ksh' => [ + 'isoName' => 'Colognian', + 'nativeName' => 'Colognian', + ], + 'lag' => [ + 'isoName' => 'Langi', + 'nativeName' => 'Langi', + ], + 'lij' => [ + 'isoName' => 'Ligurian', + 'nativeName' => 'Ligurian', + ], + 'lkt' => [ + 'isoName' => 'Lakota', + 'nativeName' => 'Lakota', + ], + 'lrc' => [ + 'isoName' => 'Northern Luri', + 'nativeName' => 'Northern Luri', + ], + 'luo' => [ + 'isoName' => 'Luo', + 'nativeName' => 'Luo', + ], + 'luy' => [ + 'isoName' => 'Luyia', + 'nativeName' => 'Luyia', + ], + 'lzh' => [ + 'isoName' => 'Literary Chinese', + 'nativeName' => 'Literary Chinese', + ], + 'mag' => [ + 'isoName' => 'Magahi', + 'nativeName' => 'Magahi', + ], + 'mai' => [ + 'isoName' => 'Maithili', + 'nativeName' => 'Maithili', + ], + 'mas' => [ + 'isoName' => 'Masai', + 'nativeName' => 'Masai', + ], + 'mer' => [ + 'isoName' => 'Meru', + 'nativeName' => 'Meru', + ], + 'mfe' => [ + 'isoName' => 'Morisyen', + 'nativeName' => 'Morisyen', + ], + 'mgh' => [ + 'isoName' => 'Makhuwa-Meetto', + 'nativeName' => 'Makhuwa-Meetto', + ], + 'mgo' => [ + 'isoName' => 'Metaʼ', + 'nativeName' => 'Metaʼ', + ], + 'mhr' => [ + 'isoName' => 'Eastern Mari', + 'nativeName' => 'Eastern Mari', + ], + 'miq' => [ + 'isoName' => 'Mískito', + 'nativeName' => 'Mískito', + ], + 'mjw' => [ + 'isoName' => 'Karbi', + 'nativeName' => 'Karbi', + ], + 'mni' => [ + 'isoName' => 'Manipuri', + 'nativeName' => 'Manipuri', + ], + 'mua' => [ + 'isoName' => 'Mundang', + 'nativeName' => 'Mundang', + ], + 'mzn' => [ + 'isoName' => 'Mazanderani', + 'nativeName' => 'Mazanderani', + ], + 'nan' => [ + 'isoName' => 'Min Nan Chinese', + 'nativeName' => 'Min Nan Chinese', + ], + 'naq' => [ + 'isoName' => 'Nama', + 'nativeName' => 'Nama', + ], + 'nds' => [ + 'isoName' => 'Low German', + 'nativeName' => 'Low German', + ], + 'nhn' => [ + 'isoName' => 'Central Nahuatl', + 'nativeName' => 'Central Nahuatl', + ], + 'niu' => [ + 'isoName' => 'Niuean', + 'nativeName' => 'Niuean', + ], + 'nmg' => [ + 'isoName' => 'Kwasio', + 'nativeName' => 'Kwasio', + ], + 'nnh' => [ + 'isoName' => 'Ngiemboon', + 'nativeName' => 'Ngiemboon', + ], + 'nso' => [ + 'isoName' => 'Northern Sotho', + 'nativeName' => 'Northern Sotho', + ], + 'nus' => [ + 'isoName' => 'Nuer', + 'nativeName' => 'Nuer', + ], + 'nyn' => [ + 'isoName' => 'Nyankole', + 'nativeName' => 'Nyankole', + ], + 'pap' => [ + 'isoName' => 'Papiamento', + 'nativeName' => 'Papiamento', + ], + 'prg' => [ + 'isoName' => 'Prussian', + 'nativeName' => 'Prussian', + ], + 'quz' => [ + 'isoName' => 'Cusco Quechua', + 'nativeName' => 'Cusco Quechua', + ], + 'raj' => [ + 'isoName' => 'Rajasthani', + 'nativeName' => 'Rajasthani', + ], + 'rof' => [ + 'isoName' => 'Rombo', + 'nativeName' => 'Rombo', + ], + 'rwk' => [ + 'isoName' => 'Rwa', + 'nativeName' => 'Rwa', + ], + 'sah' => [ + 'isoName' => 'Sakha', + 'nativeName' => 'Sakha', + ], + 'saq' => [ + 'isoName' => 'Samburu', + 'nativeName' => 'Samburu', + ], + 'sat' => [ + 'isoName' => 'Santali', + 'nativeName' => 'Santali', + ], + 'sbp' => [ + 'isoName' => 'Sangu', + 'nativeName' => 'Sangu', + ], + 'scr' => [ + 'isoName' => 'Serbo Croatian', + 'nativeName' => 'Serbo Croatian', + ], + 'seh' => [ + 'isoName' => 'Sena', + 'nativeName' => 'Sena', + ], + 'ses' => [ + 'isoName' => 'Koyraboro Senni', + 'nativeName' => 'Koyraboro Senni', + ], + 'sgs' => [ + 'isoName' => 'Samogitian', + 'nativeName' => 'Samogitian', + ], + 'shi' => [ + 'isoName' => 'Tachelhit', + 'nativeName' => 'Tachelhit', + ], + 'shn' => [ + 'isoName' => 'Shan', + 'nativeName' => 'Shan', + ], + 'shs' => [ + 'isoName' => 'Shuswap', + 'nativeName' => 'Shuswap', + ], + 'sid' => [ + 'isoName' => 'Sidamo', + 'nativeName' => 'Sidamo', + ], + 'smn' => [ + 'isoName' => 'Inari Sami', + 'nativeName' => 'Inari Sami', + ], + 'szl' => [ + 'isoName' => 'Silesian', + 'nativeName' => 'Silesian', + ], + 'tcy' => [ + 'isoName' => 'Tulu', + 'nativeName' => 'Tulu', + ], + 'teo' => [ + 'isoName' => 'Teso', + 'nativeName' => 'Teso', + ], + 'tet' => [ + 'isoName' => 'Tetum', + 'nativeName' => 'Tetum', + ], + 'the' => [ + 'isoName' => 'Chitwania Tharu', + 'nativeName' => 'Chitwania Tharu', + ], + 'tig' => [ + 'isoName' => 'Tigre', + 'nativeName' => 'Tigre', + ], + 'tlh' => [ + 'isoName' => 'Klingon', + 'nativeName' => 'tlhIngan Hol', + ], + 'tpi' => [ + 'isoName' => 'Tok Pisin', + 'nativeName' => 'Tok Pisin', + ], + 'twq' => [ + 'isoName' => 'Tasawaq', + 'nativeName' => 'Tasawaq', + ], + 'tzl' => [ + 'isoName' => 'Talossan', + 'nativeName' => 'Talossan', + ], + 'tzm' => [ + 'isoName' => 'Tamazight, Central Atlas', + 'nativeName' => 'ⵜⵎⴰⵣⵉⵖⵜ', + ], + 'unm' => [ + 'isoName' => 'Unami', + 'nativeName' => 'Unami', + ], + 'vai' => [ + 'isoName' => 'Vai', + 'nativeName' => 'Vai', + ], + 'vun' => [ + 'isoName' => 'Vunjo', + 'nativeName' => 'Vunjo', + ], + 'wae' => [ + 'isoName' => 'Walser', + 'nativeName' => 'Walser', + ], + 'wal' => [ + 'isoName' => 'Wolaytta', + 'nativeName' => 'Wolaytta', + ], + 'xog' => [ + 'isoName' => 'Soga', + 'nativeName' => 'Soga', + ], + 'yav' => [ + 'isoName' => 'Yangben', + 'nativeName' => 'Yangben', + ], + 'yue' => [ + 'isoName' => 'Cantonese', + 'nativeName' => 'Cantonese', + ], + 'yuw' => [ + 'isoName' => 'Yau (Morobe Province)', + 'nativeName' => 'Yau (Morobe Province)', + ], + 'zgh' => [ + 'isoName' => 'Standard Moroccan Tamazight', + 'nativeName' => 'Standard Moroccan Tamazight', + ], +]; diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/List/regions.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/List/regions.php new file mode 100644 index 00000000000..8ab8a9e3aef --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/List/regions.php @@ -0,0 +1,265 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * ISO 3166-2 + */ +return [ + 'AD' => 'Andorra', + 'AE' => 'United Arab Emirates', + 'AF' => 'Afghanistan', + 'AG' => 'Antigua and Barbuda', + 'AI' => 'Anguilla', + 'AL' => 'Albania', + 'AM' => 'Armenia', + 'AO' => 'Angola', + 'AQ' => 'Antarctica', + 'AR' => 'Argentina', + 'AS' => 'American Samoa', + 'AT' => 'Austria', + 'AU' => 'Australia', + 'AW' => 'Aruba', + 'AX' => 'Åland Islands', + 'AZ' => 'Azerbaijan', + 'BA' => 'Bosnia and Herzegovina', + 'BB' => 'Barbados', + 'BD' => 'Bangladesh', + 'BE' => 'Belgium', + 'BF' => 'Burkina Faso', + 'BG' => 'Bulgaria', + 'BH' => 'Bahrain', + 'BI' => 'Burundi', + 'BJ' => 'Benin', + 'BL' => 'Saint Barthélemy', + 'BM' => 'Bermuda', + 'BN' => 'Brunei Darussalam', + 'BO' => 'Bolivia (Plurinational State of)', + 'BQ' => 'Bonaire, Sint Eustatius and Saba', + 'BR' => 'Brazil', + 'BS' => 'Bahamas', + 'BT' => 'Bhutan', + 'BV' => 'Bouvet Island', + 'BW' => 'Botswana', + 'BY' => 'Belarus', + 'BZ' => 'Belize', + 'CA' => 'Canada', + 'CC' => 'Cocos (Keeling) Islands', + 'CD' => 'Congo, Democratic Republic of the', + 'CF' => 'Central African Republic', + 'CG' => 'Congo', + 'CH' => 'Switzerland', + 'CI' => 'Côte d\'Ivoire', + 'CK' => 'Cook Islands', + 'CL' => 'Chile', + 'CM' => 'Cameroon', + 'CN' => 'China', + 'CO' => 'Colombia', + 'CR' => 'Costa Rica', + 'CU' => 'Cuba', + 'CV' => 'Cabo Verde', + 'CW' => 'Curaçao', + 'CX' => 'Christmas Island', + 'CY' => 'Cyprus', + 'CZ' => 'Czechia', + 'DE' => 'Germany', + 'DJ' => 'Djibouti', + 'DK' => 'Denmark', + 'DM' => 'Dominica', + 'DO' => 'Dominican Republic', + 'DZ' => 'Algeria', + 'EC' => 'Ecuador', + 'EE' => 'Estonia', + 'EG' => 'Egypt', + 'EH' => 'Western Sahara', + 'ER' => 'Eritrea', + 'ES' => 'Spain', + 'ET' => 'Ethiopia', + 'FI' => 'Finland', + 'FJ' => 'Fiji', + 'FK' => 'Falkland Islands (Malvinas)', + 'FM' => 'Micronesia (Federated States of)', + 'FO' => 'Faroe Islands', + 'FR' => 'France', + 'GA' => 'Gabon', + 'GB' => 'United Kingdom of Great Britain and Northern Ireland', + 'GD' => 'Grenada', + 'GE' => 'Georgia', + 'GF' => 'French Guiana', + 'GG' => 'Guernsey', + 'GH' => 'Ghana', + 'GI' => 'Gibraltar', + 'GL' => 'Greenland', + 'GM' => 'Gambia', + 'GN' => 'Guinea', + 'GP' => 'Guadeloupe', + 'GQ' => 'Equatorial Guinea', + 'GR' => 'Greece', + 'GS' => 'South Georgia and the South Sandwich Islands', + 'GT' => 'Guatemala', + 'GU' => 'Guam', + 'GW' => 'Guinea-Bissau', + 'GY' => 'Guyana', + 'HK' => 'Hong Kong', + 'HM' => 'Heard Island and McDonald Islands', + 'HN' => 'Honduras', + 'HR' => 'Croatia', + 'HT' => 'Haiti', + 'HU' => 'Hungary', + 'ID' => 'Indonesia', + 'IE' => 'Ireland', + 'IL' => 'Israel', + 'IM' => 'Isle of Man', + 'IN' => 'India', + 'IO' => 'British Indian Ocean Territory', + 'IQ' => 'Iraq', + 'IR' => 'Iran (Islamic Republic of)', + 'IS' => 'Iceland', + 'IT' => 'Italy', + 'JE' => 'Jersey', + 'JM' => 'Jamaica', + 'JO' => 'Jordan', + 'JP' => 'Japan', + 'KE' => 'Kenya', + 'KG' => 'Kyrgyzstan', + 'KH' => 'Cambodia', + 'KI' => 'Kiribati', + 'KM' => 'Comoros', + 'KN' => 'Saint Kitts and Nevis', + 'KP' => 'Korea (Democratic People\'s Republic of)', + 'KR' => 'Korea, Republic of', + 'KW' => 'Kuwait', + 'KY' => 'Cayman Islands', + 'KZ' => 'Kazakhstan', + 'LA' => 'Lao People\'s Democratic Republic', + 'LB' => 'Lebanon', + 'LC' => 'Saint Lucia', + 'LI' => 'Liechtenstein', + 'LK' => 'Sri Lanka', + 'LR' => 'Liberia', + 'LS' => 'Lesotho', + 'LT' => 'Lithuania', + 'LU' => 'Luxembourg', + 'LV' => 'Latvia', + 'LY' => 'Libya', + 'MA' => 'Morocco', + 'MC' => 'Monaco', + 'MD' => 'Moldova, Republic of', + 'ME' => 'Montenegro', + 'MF' => 'Saint Martin (French part)', + 'MG' => 'Madagascar', + 'MH' => 'Marshall Islands', + 'MK' => 'Macedonia, the former Yugoslav Republic of', + 'ML' => 'Mali', + 'MM' => 'Myanmar', + 'MN' => 'Mongolia', + 'MO' => 'Macao', + 'MP' => 'Northern Mariana Islands', + 'MQ' => 'Martinique', + 'MR' => 'Mauritania', + 'MS' => 'Montserrat', + 'MT' => 'Malta', + 'MU' => 'Mauritius', + 'MV' => 'Maldives', + 'MW' => 'Malawi', + 'MX' => 'Mexico', + 'MY' => 'Malaysia', + 'MZ' => 'Mozambique', + 'NA' => 'Namibia', + 'NC' => 'New Caledonia', + 'NE' => 'Niger', + 'NF' => 'Norfolk Island', + 'NG' => 'Nigeria', + 'NI' => 'Nicaragua', + 'NL' => 'Netherlands', + 'NO' => 'Norway', + 'NP' => 'Nepal', + 'NR' => 'Nauru', + 'NU' => 'Niue', + 'NZ' => 'New Zealand', + 'OM' => 'Oman', + 'PA' => 'Panama', + 'PE' => 'Peru', + 'PF' => 'French Polynesia', + 'PG' => 'Papua New Guinea', + 'PH' => 'Philippines', + 'PK' => 'Pakistan', + 'PL' => 'Poland', + 'PM' => 'Saint Pierre and Miquelon', + 'PN' => 'Pitcairn', + 'PR' => 'Puerto Rico', + 'PS' => 'Palestine, State of', + 'PT' => 'Portugal', + 'PW' => 'Palau', + 'PY' => 'Paraguay', + 'QA' => 'Qatar', + 'RE' => 'Réunion', + 'RO' => 'Romania', + 'RS' => 'Serbia', + 'RU' => 'Russian Federation', + 'RW' => 'Rwanda', + 'SA' => 'Saudi Arabia', + 'SB' => 'Solomon Islands', + 'SC' => 'Seychelles', + 'SD' => 'Sudan', + 'SE' => 'Sweden', + 'SG' => 'Singapore', + 'SH' => 'Saint Helena, Ascension and Tristan da Cunha', + 'SI' => 'Slovenia', + 'SJ' => 'Svalbard and Jan Mayen', + 'SK' => 'Slovakia', + 'SL' => 'Sierra Leone', + 'SM' => 'San Marino', + 'SN' => 'Senegal', + 'SO' => 'Somalia', + 'SR' => 'Suriname', + 'SS' => 'South Sudan', + 'ST' => 'Sao Tome and Principe', + 'SV' => 'El Salvador', + 'SX' => 'Sint Maarten (Dutch part)', + 'SY' => 'Syrian Arab Republic', + 'SZ' => 'Eswatini', + 'TC' => 'Turks and Caicos Islands', + 'TD' => 'Chad', + 'TF' => 'French Southern Territories', + 'TG' => 'Togo', + 'TH' => 'Thailand', + 'TJ' => 'Tajikistan', + 'TK' => 'Tokelau', + 'TL' => 'Timor-Leste', + 'TM' => 'Turkmenistan', + 'TN' => 'Tunisia', + 'TO' => 'Tonga', + 'TR' => 'Turkey', + 'TT' => 'Trinidad and Tobago', + 'TV' => 'Tuvalu', + 'TW' => 'Taiwan, Province of China', + 'TZ' => 'Tanzania, United Republic of', + 'UA' => 'Ukraine', + 'UG' => 'Uganda', + 'UM' => 'United States Minor Outlying Islands', + 'US' => 'United States of America', + 'UY' => 'Uruguay', + 'UZ' => 'Uzbekistan', + 'VA' => 'Holy See', + 'VC' => 'Saint Vincent and the Grenadines', + 'VE' => 'Venezuela (Bolivarian Republic of)', + 'VG' => 'Virgin Islands (British)', + 'VI' => 'Virgin Islands (U.S.)', + 'VN' => 'Viet Nam', + 'VU' => 'Vanuatu', + 'WF' => 'Wallis and Futuna', + 'WS' => 'Samoa', + 'YE' => 'Yemen', + 'YT' => 'Mayotte', + 'ZA' => 'South Africa', + 'ZM' => 'Zambia', + 'ZW' => 'Zimbabwe', +]; diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php new file mode 100644 index 00000000000..0369e809f9f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php @@ -0,0 +1,212 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use Closure; +use PHPStan\Reflection\Php\BuiltinMethodReflection; +use PHPStan\TrinaryLogic; +use ReflectionClass; +use ReflectionFunction; +use ReflectionMethod; +use ReflectionParameter; +use ReflectionType; +use stdClass; +use Throwable; + +abstract class AbstractMacro implements BuiltinMethodReflection +{ + /** + * The reflection function/method. + * + * @var ReflectionFunction|ReflectionMethod + */ + protected $reflectionFunction; + + /** + * The class name. + * + * @var class-string + */ + private $className; + + /** + * The method name. + * + * @var string + */ + private $methodName; + + /** + * The parameters. + * + * @var ReflectionParameter[] + */ + private $parameters; + + /** + * The is static. + * + * @var bool + */ + private $static = false; + + /** + * Macro constructor. + * + * @param string $className + * @phpstan-param class-string $className + * + * @param string $methodName + * @param callable $macro + */ + public function __construct(string $className, string $methodName, $macro) + { + $this->className = $className; + $this->methodName = $methodName; + $this->reflectionFunction = \is_array($macro) + ? new ReflectionMethod($macro[0], $macro[1]) + : new ReflectionFunction($macro); + $this->parameters = $this->reflectionFunction->getParameters(); + + if ($this->reflectionFunction->isClosure()) { + try { + $closure = $this->reflectionFunction->getClosure(); + $boundClosure = Closure::bind($closure, new stdClass()); + $this->static = (!$boundClosure || (new ReflectionFunction($boundClosure))->getClosureThis() === null); + } catch (Throwable $e) { + $this->static = true; + } + } + } + + /** + * {@inheritdoc} + */ + public function getDeclaringClass(): ReflectionClass + { + return new ReflectionClass($this->className); + } + + /** + * {@inheritdoc} + */ + public function isPrivate(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isPublic(): bool + { + return true; + } + + /** + * {@inheritdoc} + */ + public function isFinal(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isInternal(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isAbstract(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isStatic(): bool + { + return $this->static; + } + + /** + * {@inheritdoc} + */ + public function getDocComment(): ?string + { + return $this->reflectionFunction->getDocComment() ?: null; + } + + /** + * {@inheritdoc} + */ + public function getName(): string + { + return $this->methodName; + } + + /** + * {@inheritdoc} + */ + public function getParameters(): array + { + return $this->parameters; + } + + /** + * {@inheritdoc} + */ + public function getReturnType(): ?ReflectionType + { + return $this->reflectionFunction->getReturnType(); + } + + /** + * {@inheritdoc} + */ + public function isDeprecated(): TrinaryLogic + { + return TrinaryLogic::createFromBoolean( + $this->reflectionFunction->isDeprecated() || + preg_match('/@deprecated/i', $this->getDocComment() ?: '') + ); + } + + /** + * {@inheritdoc} + */ + public function isVariadic(): bool + { + return $this->reflectionFunction->isVariadic(); + } + + /** + * {@inheritdoc} + */ + public function getPrototype(): BuiltinMethodReflection + { + return $this; + } + + public function getTentativeReturnType(): ?ReflectionType + { + return null; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php new file mode 100644 index 00000000000..de3e51f6a06 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection\Adapter; +use PHPStan\Reflection\Php\BuiltinMethodReflection; +use ReflectionMethod; + +$method = new ReflectionMethod(BuiltinMethodReflection::class, 'getReflection'); + +require $method->hasReturnType() && $method->getReturnType()->getName() === Adapter\ReflectionMethod::class + ? __DIR__.'/../../../lazy/Carbon/PHPStan/AbstractMacroStatic.php' + : __DIR__.'/../../../lazy/Carbon/PHPStan/AbstractMacroBuiltin.php'; + +$method = new ReflectionMethod(BuiltinMethodReflection::class, 'getFileName'); + +require $method->hasReturnType() + ? __DIR__.'/../../../lazy/Carbon/PHPStan/MacroStrongType.php' + : __DIR__.'/../../../lazy/Carbon/PHPStan/MacroWeakType.php'; + +final class Macro extends LazyMacro +{ +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php new file mode 100644 index 00000000000..8e2524c0991 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\Reflection\ClassReflection; +use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\MethodsClassReflectionExtension; +use PHPStan\Reflection\Php\PhpMethodReflectionFactory; +use PHPStan\Type\TypehintHelper; + +/** + * Class MacroExtension. + * + * @codeCoverageIgnore Pure PHPStan wrapper. + */ +final class MacroExtension implements MethodsClassReflectionExtension +{ + /** + * @var PhpMethodReflectionFactory + */ + protected $methodReflectionFactory; + + /** + * @var MacroScanner + */ + protected $scanner; + + /** + * Extension constructor. + * + * @param PhpMethodReflectionFactory $methodReflectionFactory + */ + public function __construct(PhpMethodReflectionFactory $methodReflectionFactory) + { + $this->scanner = new MacroScanner(); + $this->methodReflectionFactory = $methodReflectionFactory; + } + + /** + * {@inheritdoc} + */ + public function hasMethod(ClassReflection $classReflection, string $methodName): bool + { + return $this->scanner->hasMethod($classReflection->getName(), $methodName); + } + + /** + * {@inheritdoc} + */ + public function getMethod(ClassReflection $classReflection, string $methodName): MethodReflection + { + $builtinMacro = $this->scanner->getMethod($classReflection->getName(), $methodName); + + return $this->methodReflectionFactory->create( + $classReflection, + null, + $builtinMacro, + $classReflection->getActiveTemplateTypeMap(), + [], + TypehintHelper::decideTypeFromReflection($builtinMacro->getReturnType()), + null, + null, + $builtinMacro->isDeprecated()->yes(), + $builtinMacro->isInternal(), + $builtinMacro->isFinal(), + $builtinMacro->getDocComment() + ); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php new file mode 100644 index 00000000000..d169939d821 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use Carbon\CarbonInterface; +use ReflectionClass; +use ReflectionException; + +final class MacroScanner +{ + /** + * Return true if the given pair class-method is a Carbon macro. + * + * @param string $className + * @phpstan-param class-string $className + * + * @param string $methodName + * + * @return bool + */ + public function hasMethod(string $className, string $methodName): bool + { + return is_a($className, CarbonInterface::class, true) && + \is_callable([$className, 'hasMacro']) && + $className::hasMacro($methodName); + } + + /** + * Return the Macro for a given pair class-method. + * + * @param string $className + * @phpstan-param class-string $className + * + * @param string $methodName + * + * @throws ReflectionException + * + * @return Macro + */ + public function getMethod(string $className, string $methodName): Macro + { + $reflectionClass = new ReflectionClass($className); + $property = $reflectionClass->getProperty('globalMacros'); + + $property->setAccessible(true); + $macro = $property->getValue()[$methodName]; + + return new Macro( + $className, + $methodName, + $macro + ); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php new file mode 100644 index 00000000000..71bbb723015 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php @@ -0,0 +1,443 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Exceptions\UnknownUnitException; + +/** + * Trait Boundaries. + * + * startOf, endOf and derived method for each unit. + * + * Depends on the following properties: + * + * @property int $year + * @property int $month + * @property int $daysInMonth + * @property int $quarter + * + * Depends on the following methods: + * + * @method $this setTime(int $hour, int $minute, int $second = 0, int $microseconds = 0) + * @method $this setDate(int $year, int $month, int $day) + * @method $this addMonths(int $value = 1) + */ +trait Boundaries +{ + /** + * Resets the time to 00:00:00 start of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay(); + * ``` + * + * @return static + */ + public function startOfDay() + { + return $this->setTime(0, 0, 0, 0); + } + + /** + * Resets the time to 23:59:59.999999 end of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay(); + * ``` + * + * @return static + */ + public function endOfDay() + { + return $this->setTime(static::HOURS_PER_DAY - 1, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Resets the date to the first day of the month and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth(); + * ``` + * + * @return static + */ + public function startOfMonth() + { + return $this->setDate($this->year, $this->month, 1)->startOfDay(); + } + + /** + * Resets the date to end of the month and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth(); + * ``` + * + * @return static + */ + public function endOfMonth() + { + return $this->setDate($this->year, $this->month, $this->daysInMonth)->endOfDay(); + } + + /** + * Resets the date to the first day of the quarter and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter(); + * ``` + * + * @return static + */ + public function startOfQuarter() + { + $month = ($this->quarter - 1) * static::MONTHS_PER_QUARTER + 1; + + return $this->setDate($this->year, $month, 1)->startOfDay(); + } + + /** + * Resets the date to end of the quarter and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter(); + * ``` + * + * @return static + */ + public function endOfQuarter() + { + return $this->startOfQuarter()->addMonths(static::MONTHS_PER_QUARTER - 1)->endOfMonth(); + } + + /** + * Resets the date to the first day of the year and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear(); + * ``` + * + * @return static + */ + public function startOfYear() + { + return $this->setDate($this->year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the year and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear(); + * ``` + * + * @return static + */ + public function endOfYear() + { + return $this->setDate($this->year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of the decade and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade(); + * ``` + * + * @return static + */ + public function startOfDecade() + { + $year = $this->year - $this->year % static::YEARS_PER_DECADE; + + return $this->setDate($year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the decade and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade(); + * ``` + * + * @return static + */ + public function endOfDecade() + { + $year = $this->year - $this->year % static::YEARS_PER_DECADE + static::YEARS_PER_DECADE - 1; + + return $this->setDate($year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of the century and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury(); + * ``` + * + * @return static + */ + public function startOfCentury() + { + $year = $this->year - ($this->year - 1) % static::YEARS_PER_CENTURY; + + return $this->setDate($year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the century and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury(); + * ``` + * + * @return static + */ + public function endOfCentury() + { + $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_CENTURY + static::YEARS_PER_CENTURY; + + return $this->setDate($year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of the millennium and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium(); + * ``` + * + * @return static + */ + public function startOfMillennium() + { + $year = $this->year - ($this->year - 1) % static::YEARS_PER_MILLENNIUM; + + return $this->setDate($year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the millennium and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium(); + * ``` + * + * @return static + */ + public function endOfMillennium() + { + $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_MILLENNIUM + static::YEARS_PER_MILLENNIUM; + + return $this->setDate($year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . "\n"; + * ``` + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return static + */ + public function startOfWeek($weekStartsAt = null) + { + return $this->subDays((7 + $this->dayOfWeek - ($weekStartsAt ?? $this->firstWeekDay)) % 7)->startOfDay(); + } + + /** + * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . "\n"; + * ``` + * + * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week + * + * @return static + */ + public function endOfWeek($weekEndsAt = null) + { + return $this->addDays((7 - $this->dayOfWeek + ($weekEndsAt ?? $this->lastWeekDay)) % 7)->endOfDay(); + } + + /** + * Modify to start of current hour, minutes and seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour(); + * ``` + * + * @return static + */ + public function startOfHour() + { + return $this->setTime($this->hour, 0, 0, 0); + } + + /** + * Modify to end of current hour, minutes and seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour(); + * ``` + * + * @return static + */ + public function endOfHour() + { + return $this->setTime($this->hour, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Modify to start of current minute, seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute(); + * ``` + * + * @return static + */ + public function startOfMinute() + { + return $this->setTime($this->hour, $this->minute, 0, 0); + } + + /** + * Modify to end of current minute, seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute(); + * ``` + * + * @return static + */ + public function endOfMinute() + { + return $this->setTime($this->hour, $this->minute, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Modify to start of current second, microseconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function startOfSecond() + { + return $this->setTime($this->hour, $this->minute, $this->second, 0); + } + + /** + * Modify to end of current second, microseconds become 999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->endOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function endOfSecond() + { + return $this->setTime($this->hour, $this->minute, $this->second, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Modify to start of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function startOf($unit, ...$params) + { + $ucfUnit = ucfirst(static::singularUnit($unit)); + $method = "startOf$ucfUnit"; + if (!method_exists($this, $method)) { + throw new UnknownUnitException($unit); + } + + return $this->$method(...$params); + } + + /** + * Modify to end of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function endOf($unit, ...$params) + { + $ucfUnit = ucfirst(static::singularUnit($unit)); + $method = "endOf$ucfUnit"; + if (!method_exists($this, $method)) { + throw new UnknownUnitException($unit); + } + + return $this->$method(...$params); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php new file mode 100644 index 00000000000..5f7c7c011ab --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Exceptions\InvalidCastException; +use DateTimeInterface; + +/** + * Trait Cast. + * + * Utils to cast into an other class. + */ +trait Cast +{ + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateTimeInterface + */ + public function cast(string $className) + { + if (!method_exists($className, 'instance')) { + if (is_a($className, DateTimeInterface::class, true)) { + return new $className($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone()); + } + + throw new InvalidCastException("$className has not the instance() method needed to cast the date."); + } + + return $className::instance($this); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php new file mode 100644 index 00000000000..d4c2d8c8e2f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php @@ -0,0 +1,1099 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use BadMethodCallException; +use Carbon\CarbonInterface; +use Carbon\Exceptions\BadComparisonUnitException; +use InvalidArgumentException; + +/** + * Trait Comparison. + * + * Comparison utils and testers. All the following methods return booleans. + * nowWithSameTz + * + * Depends on the following methods: + * + * @method static resolveCarbon($date) + * @method static copy() + * @method static nowWithSameTz() + * @method static static yesterday($timezone = null) + * @method static static tomorrow($timezone = null) + */ +trait Comparison +{ + /** @var bool */ + protected $endOfTime = false; + + /** @var bool */ + protected $startOfTime = false; + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->eq(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see equalTo() + * + * @return bool + */ + public function eq($date): bool + { + return $this->equalTo($date); + } + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function equalTo($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this == $this->resolveCarbon($date); + } + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->ne(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($date): bool + { + return $this->notEqualTo($date); + } + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function notEqualTo($date): bool + { + return !$this->equalTo($date); + } + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function gt($date): bool + { + return $this->greaterThan($date); + } + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThan($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this > $this->resolveCarbon($date); + } + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function isAfter($date): bool + { + return $this->greaterThan($date); + } + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThanOrEqualTo() + * + * @return bool + */ + public function gte($date): bool + { + return $this->greaterThanOrEqualTo($date); + } + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThanOrEqualTo($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this >= $this->resolveCarbon($date); + } + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function lt($date): bool + { + return $this->lessThan($date); + } + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThan($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this < $this->resolveCarbon($date); + } + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function isBefore($date): bool + { + return $this->lessThan($date); + } + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThanOrEqualTo() + * + * @return bool + */ + public function lte($date): bool + { + return $this->lessThanOrEqualTo($date); + } + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThanOrEqualTo($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this <= $this->resolveCarbon($date); + } + + /** + * Determines if the instance is between two others. + * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function between($date1, $date2, $equal = true): bool + { + $date1 = $this->resolveCarbon($date1); + $date2 = $this->resolveCarbon($date2); + + if ($date1->greaterThan($date2)) { + [$date1, $date2] = [$date2, $date1]; + } + + if ($equal) { + return $this >= $date1 && $this <= $date2; + } + + return $this > $date1 && $this < $date2; + } + + /** + * Determines if the instance is between two others, bounds included. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenIncluded($date1, $date2): bool + { + return $this->between($date1, $date2, true); + } + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenExcluded($date1, $date2): bool + { + return $this->between($date1, $date2, false); + } + + /** + * Determines if the instance is between two others + * + * @example + * ``` + * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function isBetween($date1, $date2, $equal = true): bool + { + return $this->between($date1, $date2, $equal); + } + + /** + * Determines if the instance is a weekday. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekday(); // false + * Carbon::parse('2019-07-15')->isWeekday(); // true + * ``` + * + * @return bool + */ + public function isWeekday() + { + return !$this->isWeekend(); + } + + /** + * Determines if the instance is a weekend day. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekend(); // true + * Carbon::parse('2019-07-15')->isWeekend(); // false + * ``` + * + * @return bool + */ + public function isWeekend() + { + return \in_array($this->dayOfWeek, static::$weekendDays, true); + } + + /** + * Determines if the instance is yesterday. + * + * @example + * ``` + * Carbon::yesterday()->isYesterday(); // true + * Carbon::tomorrow()->isYesterday(); // false + * ``` + * + * @return bool + */ + public function isYesterday() + { + return $this->toDateString() === static::yesterday($this->getTimezone())->toDateString(); + } + + /** + * Determines if the instance is today. + * + * @example + * ``` + * Carbon::today()->isToday(); // true + * Carbon::tomorrow()->isToday(); // false + * ``` + * + * @return bool + */ + public function isToday() + { + return $this->toDateString() === $this->nowWithSameTz()->toDateString(); + } + + /** + * Determines if the instance is tomorrow. + * + * @example + * ``` + * Carbon::tomorrow()->isTomorrow(); // true + * Carbon::yesterday()->isTomorrow(); // false + * ``` + * + * @return bool + */ + public function isTomorrow() + { + return $this->toDateString() === static::tomorrow($this->getTimezone())->toDateString(); + } + + /** + * Determines if the instance is in the future, ie. greater (after) than now. + * + * @example + * ``` + * Carbon::now()->addHours(5)->isFuture(); // true + * Carbon::now()->subHours(5)->isFuture(); // false + * ``` + * + * @return bool + */ + public function isFuture() + { + return $this->greaterThan($this->nowWithSameTz()); + } + + /** + * Determines if the instance is in the past, ie. less (before) than now. + * + * @example + * ``` + * Carbon::now()->subHours(5)->isPast(); // true + * Carbon::now()->addHours(5)->isPast(); // false + * ``` + * + * @return bool + */ + public function isPast() + { + return $this->lessThan($this->nowWithSameTz()); + } + + /** + * Determines if the instance is a leap year. + * + * @example + * ``` + * Carbon::parse('2020-01-01')->isLeapYear(); // true + * Carbon::parse('2019-01-01')->isLeapYear(); // false + * ``` + * + * @return bool + */ + public function isLeapYear() + { + return $this->rawFormat('L') === '1'; + } + + /** + * Determines if the instance is a long year + * + * @example + * ``` + * Carbon::parse('2015-01-01')->isLongYear(); // true + * Carbon::parse('2016-01-01')->isLongYear(); // false + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongYear() + { + return static::create($this->year, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53; + } + + /** + * Compares the formatted values of the two dates. + * + * @example + * ``` + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-12-13')); // true + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-06-14')); // false + * ``` + * + * @param string $format date formats to compare. + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date instance to compare with or null to use current day. + * + * @return bool + */ + public function isSameAs($format, $date = null) + { + return $this->rawFormat($format) === $this->resolveCarbon($date)->rawFormat($format); + } + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::parse('2019-01-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // true + * Carbon::parse('2018-12-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // false + * ``` + * + * @param string $unit singular unit string + * @param \Carbon\Carbon|\DateTimeInterface|null $date instance to compare with or null to use current day. + * + * @throws BadComparisonUnitException + * + * @return bool + */ + public function isSameUnit($unit, $date = null) + { + $units = [ + // @call isSameUnit + 'year' => 'Y', + // @call isSameUnit + 'week' => 'o-W', + // @call isSameUnit + 'day' => 'Y-m-d', + // @call isSameUnit + 'hour' => 'Y-m-d H', + // @call isSameUnit + 'minute' => 'Y-m-d H:i', + // @call isSameUnit + 'second' => 'Y-m-d H:i:s', + // @call isSameUnit + 'micro' => 'Y-m-d H:i:s.u', + // @call isSameUnit + 'microsecond' => 'Y-m-d H:i:s.u', + ]; + + if (isset($units[$unit])) { + return $this->isSameAs($units[$unit], $date); + } + + if (isset($this->$unit)) { + return $this->resolveCarbon($date)->$unit === $this->$unit; + } + + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new BadComparisonUnitException($unit); + } + + return false; + } + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::now()->isCurrentUnit('hour'); // true + * Carbon::now()->subHours(2)->isCurrentUnit('hour'); // false + * ``` + * + * @param string $unit The unit to test. + * + * @throws BadMethodCallException + * + * @return bool + */ + public function isCurrentUnit($unit) + { + return $this->{'isSame'.ucfirst($unit)}(); + } + + /** + * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed). + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-03-01')); // true + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-04-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date The instance to compare with or null to use current day. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameQuarter($date = null, $ofSameYear = true) + { + $date = $this->resolveCarbon($date); + + return $this->quarter === $date->quarter && (!$ofSameYear || $this->isSameYear($date)); + } + + /** + * Checks if the passed in date is in the same month as the instance´s month. + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-01-01')); // true + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-02-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use the current date. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameMonth($date = null, $ofSameYear = true) + { + return $this->isSameAs($ofSameYear ? 'Y-m' : 'm', $date); + } + + /** + * Checks if this day is a specific day of the week. + * + * @example + * ``` + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::WEDNESDAY); // true + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::FRIDAY); // false + * Carbon::parse('2019-07-17')->isDayOfWeek('Wednesday'); // true + * Carbon::parse('2019-07-17')->isDayOfWeek('Friday'); // false + * ``` + * + * @param int $dayOfWeek + * + * @return bool + */ + public function isDayOfWeek($dayOfWeek) + { + if (\is_string($dayOfWeek) && \defined($constant = static::class.'::'.strtoupper($dayOfWeek))) { + $dayOfWeek = \constant($constant); + } + + return $this->dayOfWeek === $dayOfWeek; + } + + /** + * Check if its the birthday. Compares the date/month values of the two dates. + * + * @example + * ``` + * Carbon::now()->subYears(5)->isBirthday(); // true + * Carbon::now()->subYears(5)->subDay()->isBirthday(); // false + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-05')); // true + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-06')); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use current day. + * + * @return bool + */ + public function isBirthday($date = null) + { + return $this->isSameAs('md', $date); + } + + /** + * Check if today is the last day of the Month + * + * @example + * ``` + * Carbon::parse('2019-02-28')->isLastOfMonth(); // true + * Carbon::parse('2019-03-28')->isLastOfMonth(); // false + * Carbon::parse('2019-03-30')->isLastOfMonth(); // false + * Carbon::parse('2019-03-31')->isLastOfMonth(); // true + * Carbon::parse('2019-04-30')->isLastOfMonth(); // true + * ``` + * + * @return bool + */ + public function isLastOfMonth() + { + return $this->day === $this->daysInMonth; + } + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:01')->isStartOfDay(); // false + * Carbon::parse('2019-02-28 00:00:00.000000')->isStartOfDay(true); // true + * Carbon::parse('2019-02-28 00:00:00.000012')->isStartOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isStartOfDay($checkMicroseconds = false) + { + /* @var CarbonInterface $this */ + return $checkMicroseconds + ? $this->rawFormat('H:i:s.u') === '00:00:00.000000' + : $this->rawFormat('H:i:s') === '00:00:00'; + } + + /** + * Check if the instance is end of day. + * + * @example + * ``` + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:58.999999')->isEndOfDay(); // false + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(true); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(true); // false + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isEndOfDay($checkMicroseconds = false) + { + /* @var CarbonInterface $this */ + return $checkMicroseconds + ? $this->rawFormat('H:i:s.u') === '23:59:59.999999' + : $this->rawFormat('H:i:s') === '23:59:59'; + } + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:01')->isMidnight(); // false + * ``` + * + * @return bool + */ + public function isMidnight() + { + return $this->isStartOfDay(); + } + + /** + * Check if the instance is midday. + * + * @example + * ``` + * Carbon::parse('2019-02-28 11:59:59.999999')->isMidday(); // false + * Carbon::parse('2019-02-28 12:00:00')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:00.999999')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:01')->isMidday(); // false + * ``` + * + * @return bool + */ + public function isMidday() + { + /* @var CarbonInterface $this */ + return $this->rawFormat('G:i:s') === static::$midDayAt.':00:00'; + } + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormat('11:12:45', 'h:i:s'); // true + * Carbon::hasFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormat($date, $format) + { + // createFromFormat() is known to handle edge cases silently. + // E.g. "1975-5-1" (Y-n-j) will still be parsed correctly when "Y-m-d" is supplied as the format. + // To ensure we're really testing against our desired format, perform an additional regex validation. + + return self::matchFormatPattern((string) $date, preg_quote((string) $format, '/'), static::$regexFormats); + } + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormatWithModifiers('31/08/2015', 'd#m#Y'); // true + * Carbon::hasFormatWithModifiers('31/08/2015', 'm#d#Y'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormatWithModifiers($date, $format): bool + { + return self::matchFormatPattern((string) $date, (string) $format, array_merge(static::$regexFormats, static::$regexFormatModifiers)); + } + + /** + * Checks if the (date)time string is in a given format and valid to create a + * new instance. + * + * @example + * ``` + * Carbon::canBeCreatedFromFormat('11:12:45', 'h:i:s'); // true + * Carbon::canBeCreatedFromFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function canBeCreatedFromFormat($date, $format) + { + try { + // Try to create a DateTime object. Throws an InvalidArgumentException if the provided time string + // doesn't match the format in any way. + if (!static::rawCreateFromFormat($format, $date)) { + return false; + } + } catch (InvalidArgumentException $e) { + return false; + } + + return static::hasFormatWithModifiers($date, $format); + } + + /** + * Returns true if the current date matches the given string. + * + * @example + * ``` + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false + * ``` + * + * @param string $tester day name, month name, hour, date, etc. as string + * + * @return bool + */ + public function is(string $tester) + { + $tester = trim($tester); + + if (preg_match('/^\d+$/', $tester)) { + return $this->year === (int) $tester; + } + + if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) { + return $this->isSameMonth(static::parse($tester)); + } + + if (preg_match('/^\d{1,2}-\d{1,2}$/', $tester)) { + return $this->isSameDay(static::parse($this->year.'-'.$tester)); + } + + $modifier = preg_replace('/(\d)h$/i', '$1:00', $tester); + + /* @var CarbonInterface $max */ + $median = static::parse('5555-06-15 12:30:30.555555')->modify($modifier); + $current = $this->avoidMutation(); + /* @var CarbonInterface $other */ + $other = $this->avoidMutation()->modify($modifier); + + if ($current->eq($other)) { + return true; + } + + if (preg_match('/\d:\d{1,2}:\d{1,2}$/', $tester)) { + return $current->startOfSecond()->eq($other); + } + + if (preg_match('/\d:\d{1,2}$/', $tester)) { + return $current->startOfMinute()->eq($other); + } + + if (preg_match('/\d(h|am|pm)$/', $tester)) { + return $current->startOfHour()->eq($other); + } + + if (preg_match( + '/^(january|february|march|april|may|june|july|august|september|october|november|december)\s+\d+$/i', + $tester + )) { + return $current->startOfMonth()->eq($other->startOfMonth()); + } + + $units = [ + 'month' => [1, 'year'], + 'day' => [1, 'month'], + 'hour' => [0, 'day'], + 'minute' => [0, 'hour'], + 'second' => [0, 'minute'], + 'microsecond' => [0, 'second'], + ]; + + foreach ($units as $unit => [$minimum, $startUnit]) { + if ($minimum === $median->$unit) { + $current = $current->startOf($startUnit); + + break; + } + } + + return $current->eq($other); + } + + /** + * Checks if the (date)time string is in a given format with + * given list of pattern replacements. + * + * @example + * ``` + * Carbon::hasFormat('11:12:45', 'h:i:s'); // true + * Carbon::hasFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * @param array $replacements + * + * @return bool + */ + private static function matchFormatPattern(string $date, string $format, array $replacements): bool + { + // Preg quote, but remove escaped backslashes since we'll deal with escaped characters in the format string. + $regex = str_replace('\\\\', '\\', $format); + // Replace not-escaped letters + $regex = preg_replace_callback( + '/(?startOfTime ?? false; + } + + /** + * Returns true if the date was created using CarbonImmutable::endOfTime() + * + * @return bool + */ + public function isEndOfTime(): bool + { + return $this->endOfTime ?? false; + } + + private function discourageNull($value): void + { + if ($value === null) { + @trigger_error("Since 2.61.0, it's deprecated to compare a date to null, meaning of such comparison is ambiguous and will no longer be possible in 3.0.0, you should explicitly pass 'now' or make an other check to eliminate null values.", \E_USER_DEPRECATED); + } + } + + private function discourageBoolean($value): void + { + if (\is_bool($value)) { + @trigger_error("Since 2.61.0, it's deprecated to compare a date to true or false, meaning of such comparison is ambiguous and will no longer be possible in 3.0.0, you should explicitly pass 'now' or make an other check to eliminate boolean values.", \E_USER_DEPRECATED); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php new file mode 100644 index 00000000000..12689dc7805 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php @@ -0,0 +1,653 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Carbon\Exceptions\UnitException; +use Closure; +use DateTime; +use DateTimeImmutable; +use ReturnTypeWillChange; + +/** + * Trait Converter. + * + * Change date into different string formats and types and + * handle the string cast. + * + * Depends on the following methods: + * + * @method static copy() + */ +trait Converter +{ + /** + * Format to use for __toString method when type juggling occurs. + * + * @var string|Closure|null + */ + protected static $toStringFormat; + + /** + * Reset the format used to the default when type juggling a Carbon instance to a string + * + * @return void + */ + public static function resetToStringFormat() + { + static::setToStringFormat(null); + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump an other string + * format. + * + * Set the default format used when type juggling a Carbon instance to a string + * + * @param string|Closure|null $format + * + * @return void + */ + public static function setToStringFormat($format) + { + static::$toStringFormat = $format; + } + + /** + * Returns the formatted date string on success or FALSE on failure. + * + * @see https://php.net/manual/en/datetime.format.php + * + * @param string $format + * + * @return string + */ + #[ReturnTypeWillChange] + public function format($format) + { + $function = $this->localFormatFunction ?: static::$formatFunction; + + if (!$function) { + return $this->rawFormat($format); + } + + if (\is_string($function) && method_exists($this, $function)) { + $function = [$this, $function]; + } + + return $function(...\func_get_args()); + } + + /** + * @see https://php.net/manual/en/datetime.format.php + * + * @param string $format + * + * @return string + */ + public function rawFormat($format) + { + return parent::format($format); + } + + /** + * Format the instance as a string using the set format + * + * @example + * ``` + * echo Carbon::now(); // Carbon instances can be casted to string + * ``` + * + * @return string + */ + public function __toString() + { + $format = $this->localToStringFormat ?? static::$toStringFormat; + + return $format instanceof Closure + ? $format($this) + : $this->rawFormat($format ?: ( + \defined('static::DEFAULT_TO_STRING_FORMAT') + ? static::DEFAULT_TO_STRING_FORMAT + : CarbonInterface::DEFAULT_TO_STRING_FORMAT + )); + } + + /** + * Format the instance as date + * + * @example + * ``` + * echo Carbon::now()->toDateString(); + * ``` + * + * @return string + */ + public function toDateString() + { + return $this->rawFormat('Y-m-d'); + } + + /** + * Format the instance as a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDateString(); + * ``` + * + * @return string + */ + public function toFormattedDateString() + { + return $this->rawFormat('M j, Y'); + } + + /** + * Format the instance as time + * + * @example + * ``` + * echo Carbon::now()->toTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toTimeString($unitPrecision = 'second') + { + return $this->rawFormat(static::getTimeFormatByPrecision($unitPrecision)); + } + + /** + * Format the instance as date and time + * + * @example + * ``` + * echo Carbon::now()->toDateTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeString($unitPrecision = 'second') + { + return $this->rawFormat('Y-m-d '.static::getTimeFormatByPrecision($unitPrecision)); + } + + /** + * Return a format from H:i to H:i:s.u according to given unit precision. + * + * @param string $unitPrecision "minute", "second", "millisecond" or "microsecond" + * + * @return string + */ + public static function getTimeFormatByPrecision($unitPrecision) + { + switch (static::singularUnit($unitPrecision)) { + case 'minute': + return 'H:i'; + case 'second': + return 'H:i:s'; + case 'm': + case 'millisecond': + return 'H:i:s.v'; + case 'µ': + case 'microsecond': + return 'H:i:s.u'; + } + + throw new UnitException('Precision unit expected among: minute, second, millisecond and microsecond.'); + } + + /** + * Format the instance as date and time T-separated with no timezone + * + * @example + * ``` + * echo Carbon::now()->toDateTimeLocalString(); + * echo "\n"; + * echo Carbon::now()->toDateTimeLocalString('minute'); // You can specify precision among: minute, second, millisecond and microsecond + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeLocalString($unitPrecision = 'second') + { + return $this->rawFormat('Y-m-d\T'.static::getTimeFormatByPrecision($unitPrecision)); + } + + /** + * Format the instance with day, date and time + * + * @example + * ``` + * echo Carbon::now()->toDayDateTimeString(); + * ``` + * + * @return string + */ + public function toDayDateTimeString() + { + return $this->rawFormat('D, M j, Y g:i A'); + } + + /** + * Format the instance as ATOM + * + * @example + * ``` + * echo Carbon::now()->toAtomString(); + * ``` + * + * @return string + */ + public function toAtomString() + { + return $this->rawFormat(DateTime::ATOM); + } + + /** + * Format the instance as COOKIE + * + * @example + * ``` + * echo Carbon::now()->toCookieString(); + * ``` + * + * @return string + */ + public function toCookieString() + { + return $this->rawFormat(DateTime::COOKIE); + } + + /** + * Format the instance as ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601String(); + * ``` + * + * @return string + */ + public function toIso8601String() + { + return $this->toAtomString(); + } + + /** + * Format the instance as RFC822 + * + * @example + * ``` + * echo Carbon::now()->toRfc822String(); + * ``` + * + * @return string + */ + public function toRfc822String() + { + return $this->rawFormat(DateTime::RFC822); + } + + /** + * Convert the instance to UTC and return as Zulu ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601ZuluString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toIso8601ZuluString($unitPrecision = 'second') + { + return $this->avoidMutation() + ->utc() + ->rawFormat('Y-m-d\T'.static::getTimeFormatByPrecision($unitPrecision).'\Z'); + } + + /** + * Format the instance as RFC850 + * + * @example + * ``` + * echo Carbon::now()->toRfc850String(); + * ``` + * + * @return string + */ + public function toRfc850String() + { + return $this->rawFormat(DateTime::RFC850); + } + + /** + * Format the instance as RFC1036 + * + * @example + * ``` + * echo Carbon::now()->toRfc1036String(); + * ``` + * + * @return string + */ + public function toRfc1036String() + { + return $this->rawFormat(DateTime::RFC1036); + } + + /** + * Format the instance as RFC1123 + * + * @example + * ``` + * echo Carbon::now()->toRfc1123String(); + * ``` + * + * @return string + */ + public function toRfc1123String() + { + return $this->rawFormat(DateTime::RFC1123); + } + + /** + * Format the instance as RFC2822 + * + * @example + * ``` + * echo Carbon::now()->toRfc2822String(); + * ``` + * + * @return string + */ + public function toRfc2822String() + { + return $this->rawFormat(DateTime::RFC2822); + } + + /** + * Format the instance as RFC3339 + * + * @param bool $extended + * + * @example + * ``` + * echo Carbon::now()->toRfc3339String() . "\n"; + * echo Carbon::now()->toRfc3339String(true) . "\n"; + * ``` + * + * @return string + */ + public function toRfc3339String($extended = false) + { + $format = DateTime::RFC3339; + if ($extended) { + $format = DateTime::RFC3339_EXTENDED; + } + + return $this->rawFormat($format); + } + + /** + * Format the instance as RSS + * + * @example + * ``` + * echo Carbon::now()->toRssString(); + * ``` + * + * @return string + */ + public function toRssString() + { + return $this->rawFormat(DateTime::RSS); + } + + /** + * Format the instance as W3C + * + * @example + * ``` + * echo Carbon::now()->toW3cString(); + * ``` + * + * @return string + */ + public function toW3cString() + { + return $this->rawFormat(DateTime::W3C); + } + + /** + * Format the instance as RFC7231 + * + * @example + * ``` + * echo Carbon::now()->toRfc7231String(); + * ``` + * + * @return string + */ + public function toRfc7231String() + { + return $this->avoidMutation() + ->setTimezone('GMT') + ->rawFormat(\defined('static::RFC7231_FORMAT') ? static::RFC7231_FORMAT : CarbonInterface::RFC7231_FORMAT); + } + + /** + * Get default array representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toArray()); + * ``` + * + * @return array + */ + public function toArray() + { + return [ + 'year' => $this->year, + 'month' => $this->month, + 'day' => $this->day, + 'dayOfWeek' => $this->dayOfWeek, + 'dayOfYear' => $this->dayOfYear, + 'hour' => $this->hour, + 'minute' => $this->minute, + 'second' => $this->second, + 'micro' => $this->micro, + 'timestamp' => $this->timestamp, + 'formatted' => $this->rawFormat(\defined('static::DEFAULT_TO_STRING_FORMAT') ? static::DEFAULT_TO_STRING_FORMAT : CarbonInterface::DEFAULT_TO_STRING_FORMAT), + 'timezone' => $this->timezone, + ]; + } + + /** + * Get default object representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toObject()); + * ``` + * + * @return object + */ + public function toObject() + { + return (object) $this->toArray(); + } + + /** + * Returns english human readable complete date string. + * + * @example + * ``` + * echo Carbon::now()->toString(); + * ``` + * + * @return string + */ + public function toString() + { + return $this->avoidMutation()->locale('en')->isoFormat('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept: + * 1977-04-22T01:00:00-05:00). + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toISOString() . "\n"; + * echo Carbon::now('America/Toronto')->toISOString(true) . "\n"; + * ``` + * + * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC. + * + * @return null|string + */ + public function toISOString($keepOffset = false) + { + if (!$this->isValid()) { + return null; + } + + $yearFormat = $this->year < 0 || $this->year > 9999 ? 'YYYYYY' : 'YYYY'; + $tzFormat = $keepOffset ? 'Z' : '[Z]'; + $date = $keepOffset ? $this : $this->avoidMutation()->utc(); + + return $date->isoFormat("$yearFormat-MM-DD[T]HH:mm:ss.SSSSSS$tzFormat"); + } + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone. + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toJSON(); + * ``` + * + * @return null|string + */ + public function toJSON() + { + return $this->toISOString(); + } + + /** + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTime()); + * ``` + * + * @return DateTime + */ + public function toDateTime() + { + return new DateTime($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone()); + } + + /** + * Return native toDateTimeImmutable PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTimeImmutable()); + * ``` + * + * @return DateTimeImmutable + */ + public function toDateTimeImmutable() + { + return new DateTimeImmutable($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone()); + } + + /** + * @alias toDateTime + * + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDate()); + * ``` + * + * @return DateTime + */ + public function toDate() + { + return $this->toDateTime(); + } + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|int|null $end period end date or recurrences count if int + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function toPeriod($end = null, $interval = null, $unit = null) + { + if ($unit) { + $interval = CarbonInterval::make("$interval ".static::pluralUnit($unit)); + } + + $period = (new CarbonPeriod())->setDateClass(static::class)->setStartDate($this); + + if ($interval) { + $period->setDateInterval($interval); + } + + if (\is_int($end) || (\is_string($end) && ctype_digit($end))) { + $period->setRecurrences($end); + } elseif ($end) { + $period->setEndDate($end); + } + + return $period; + } + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|null $end period end date + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function range($end = null, $interval = null, $unit = null) + { + return $this->toPeriod($end, $interval, $unit); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php new file mode 100644 index 00000000000..c28fc368ea9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php @@ -0,0 +1,943 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Carbon\Exceptions\InvalidDateException; +use Carbon\Exceptions\InvalidFormatException; +use Carbon\Exceptions\OutOfRangeException; +use Carbon\Translator; +use Closure; +use DateTimeInterface; +use DateTimeZone; +use Exception; +use ReturnTypeWillChange; + +/** + * Trait Creator. + * + * Static creators. + * + * Depends on the following methods: + * + * @method static Carbon|CarbonImmutable getTestNow() + */ +trait Creator +{ + use ObjectInitialisation; + + /** + * The errors that can occur. + * + * @var array + */ + protected static $lastErrors; + + /** + * Create a new Carbon instance. + * + * Please see the testing aids section (specifically static::setTestNow()) + * for more on the possibility of this constructor returning a test instance. + * + * @param DateTimeInterface|string|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + */ + public function __construct($time = null, $tz = null) + { + if ($time instanceof DateTimeInterface) { + $time = $this->constructTimezoneFromDateTime($time, $tz)->format('Y-m-d H:i:s.u'); + } + + if (is_numeric($time) && (!\is_string($time) || !preg_match('/^\d{1,14}$/', $time))) { + $time = static::createFromTimestampUTC($time)->format('Y-m-d\TH:i:s.uP'); + } + + // If the class has a test now set and we are trying to create a now() + // instance then override as required + $isNow = empty($time) || $time === 'now'; + + if (method_exists(static::class, 'hasTestNow') && + method_exists(static::class, 'getTestNow') && + static::hasTestNow() && + ($isNow || static::hasRelativeKeywords($time)) + ) { + static::mockConstructorParameters($time, $tz); + } + + // Work-around for PHP bug https://bugs.php.net/bug.php?id=67127 + if (!str_contains((string) .1, '.')) { + $locale = setlocale(LC_NUMERIC, '0'); // @codeCoverageIgnore + setlocale(LC_NUMERIC, 'C'); // @codeCoverageIgnore + } + + try { + parent::__construct($time ?: 'now', static::safeCreateDateTimeZone($tz) ?: null); + } catch (Exception $exception) { + throw new InvalidFormatException($exception->getMessage(), 0, $exception); + } + + $this->constructedObjectId = spl_object_hash($this); + + if (isset($locale)) { + setlocale(LC_NUMERIC, $locale); // @codeCoverageIgnore + } + + self::setLastErrors(parent::getLastErrors()); + } + + /** + * Get timezone from a datetime instance. + * + * @param DateTimeInterface $date + * @param DateTimeZone|string|null $tz + * + * @return DateTimeInterface + */ + private function constructTimezoneFromDateTime(DateTimeInterface $date, &$tz) + { + if ($tz !== null) { + $safeTz = static::safeCreateDateTimeZone($tz); + + if ($safeTz) { + return $date->setTimezone($safeTz); + } + + return $date; + } + + $tz = $date->getTimezone(); + + return $date; + } + + /** + * Update constructedObjectId on cloned. + */ + public function __clone() + { + $this->constructedObjectId = spl_object_hash($this); + } + + /** + * Create a Carbon instance from a DateTime one. + * + * @param DateTimeInterface $date + * + * @return static + */ + public static function instance($date) + { + if ($date instanceof static) { + return clone $date; + } + + static::expectDateTime($date); + + $instance = new static($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); + + if ($date instanceof CarbonInterface) { + $settings = $date->getSettings(); + + if (!$date->hasLocalTranslator()) { + unset($settings['locale']); + } + + $instance->settings($settings); + } + + return $instance; + } + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function rawParse($time = null, $tz = null) + { + if ($time instanceof DateTimeInterface) { + return static::instance($time); + } + + try { + return new static($time, $tz); + } catch (Exception $exception) { + $date = @static::now($tz)->change($time); + + if (!$date) { + throw new InvalidFormatException("Could not parse '$time': ".$exception->getMessage(), 0, $exception); + } + + return $date; + } + } + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parse($time = null, $tz = null) + { + $function = static::$parseFunction; + + if (!$function) { + return static::rawParse($time, $tz); + } + + if (\is_string($function) && method_exists(static::class, $function)) { + $function = [static::class, $function]; + } + + return $function(...\func_get_args()); + } + + /** + * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * + * @param string $time date/time string in the given language (may also contain English). + * @param string|null $locale if locale is null or not specified, current global locale will be + * used instead. + * @param DateTimeZone|string|null $tz optional timezone for the new instance. + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parseFromLocale($time, $locale = null, $tz = null) + { + return static::rawParse(static::translateTimeString($time, $locale, 'en'), $tz); + } + + /** + * Get a Carbon instance for the current date and time. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function now($tz = null) + { + return new static(null, $tz); + } + + /** + * Create a Carbon instance for today. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function today($tz = null) + { + return static::rawParse('today', $tz); + } + + /** + * Create a Carbon instance for tomorrow. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function tomorrow($tz = null) + { + return static::rawParse('tomorrow', $tz); + } + + /** + * Create a Carbon instance for yesterday. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function yesterday($tz = null) + { + return static::rawParse('yesterday', $tz); + } + + /** + * Create a Carbon instance for the greatest supported date. + * + * @return static + */ + public static function maxValue() + { + if (self::$PHPIntSize === 4) { + // 32 bit + return static::createFromTimestamp(PHP_INT_MAX); // @codeCoverageIgnore + } + + // 64 bit + return static::create(9999, 12, 31, 23, 59, 59); + } + + /** + * Create a Carbon instance for the lowest supported date. + * + * @return static + */ + public static function minValue() + { + if (self::$PHPIntSize === 4) { + // 32 bit + return static::createFromTimestamp(~PHP_INT_MAX); // @codeCoverageIgnore + } + + // 64 bit + return static::create(1, 1, 1, 0, 0, 0); + } + + private static function assertBetween($unit, $value, $min, $max) + { + if (static::isStrictModeEnabled() && ($value < $min || $value > $max)) { + throw new OutOfRangeException($unit, $min, $max, $value); + } + } + + private static function createNowInstance($tz) + { + if (!static::hasTestNow()) { + return static::now($tz); + } + + $now = static::getTestNow(); + + if ($now instanceof Closure) { + return $now(static::now($tz)); + } + + return $now->avoidMutation()->tz($tz); + } + + /** + * Create a new Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) + { + if ((\is_string($year) && !is_numeric($year)) || $year instanceof DateTimeInterface) { + return static::parse($year, $tz ?: (\is_string($month) || $month instanceof DateTimeZone ? $month : null)); + } + + $defaults = null; + $getDefault = function ($unit) use ($tz, &$defaults) { + if ($defaults === null) { + $now = self::createNowInstance($tz); + + $defaults = array_combine([ + 'year', + 'month', + 'day', + 'hour', + 'minute', + 'second', + ], explode('-', $now->rawFormat('Y-n-j-G-i-s.u'))); + } + + return $defaults[$unit]; + }; + + $year = $year ?? $getDefault('year'); + $month = $month ?? $getDefault('month'); + $day = $day ?? $getDefault('day'); + $hour = $hour ?? $getDefault('hour'); + $minute = $minute ?? $getDefault('minute'); + $second = (float) ($second ?? $getDefault('second')); + + self::assertBetween('month', $month, 0, 99); + self::assertBetween('day', $day, 0, 99); + self::assertBetween('hour', $hour, 0, 99); + self::assertBetween('minute', $minute, 0, 99); + self::assertBetween('second', $second, 0, 99); + + $fixYear = null; + + if ($year < 0) { + $fixYear = $year; + $year = 0; + } elseif ($year > 9999) { + $fixYear = $year - 9999; + $year = 9999; + } + + $second = ($second < 10 ? '0' : '').number_format($second, 6); + $instance = static::rawCreateFromFormat('!Y-n-j G:i:s.u', sprintf('%s-%s-%s %s:%02s:%02s', $year, $month, $day, $hour, $minute, $second), $tz); + + if ($fixYear !== null) { + $instance = $instance->addYears($fixYear); + } + + return $instance; + } + + /** + * Create a new safe Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidDateException + * + * @return static|false + */ + public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) + { + $fields = static::getRangesByUnit(); + + foreach ($fields as $field => $range) { + if ($$field !== null && (!\is_int($$field) || $$field < $range[0] || $$field > $range[1])) { + if (static::isStrictModeEnabled()) { + throw new InvalidDateException($field, $$field); + } + + return false; + } + } + + $instance = static::create($year, $month, $day, $hour, $minute, $second, $tz); + + foreach (array_reverse($fields) as $field => $range) { + if ($$field !== null && (!\is_int($$field) || $$field !== $instance->$field)) { + if (static::isStrictModeEnabled()) { + throw new InvalidDateException($field, $$field); + } + + return false; + } + } + + return $instance; + } + + /** + * Create a new Carbon instance from a specific date and time using strict validation. + * + * @see create() + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null): self + { + $initialStrictMode = static::isStrictModeEnabled(); + static::useStrictMode(true); + + try { + $date = static::create($year, $month, $day, $hour, $minute, $second, $tz); + } finally { + static::useStrictMode($initialStrictMode); + } + + return $date; + } + + /** + * Create a Carbon instance from just a date. The time portion is set to now. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromDate($year = null, $month = null, $day = null, $tz = null) + { + return static::create($year, $month, $day, null, null, null, $tz); + } + + /** + * Create a Carbon instance from just a date. The time portion is set to midnight. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null) + { + return static::create($year, $month, $day, 0, 0, 0, $tz); + } + + /** + * Create a Carbon instance from just a time. The date portion is set to today. + * + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null) + { + return static::create(null, null, null, $hour, $minute, $second, $tz); + } + + /** + * Create a Carbon instance from a time string. The date portion is set to today. + * + * @param string $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTimeString($time, $tz = null) + { + return static::today($tz)->setTimeFromTimeString($time); + } + + /** + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $originalTz + * + * @return DateTimeInterface|false + */ + private static function createFromFormatAndTimezone($format, $time, $originalTz) + { + // Work-around for https://bugs.php.net/bug.php?id=75577 + // @codeCoverageIgnoreStart + if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) { + $format = str_replace('.v', '.u', $format); + } + // @codeCoverageIgnoreEnd + + if ($originalTz === null) { + return parent::createFromFormat($format, (string) $time); + } + + $tz = \is_int($originalTz) + ? @timezone_name_from_abbr('', (int) ($originalTz * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE), 1) + : $originalTz; + + $tz = static::safeCreateDateTimeZone($tz, $originalTz); + + if ($tz === false) { + return false; + } + + return parent::createFromFormat($format, (string) $time, $tz); + } + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function rawCreateFromFormat($format, $time, $tz = null) + { + // Work-around for https://bugs.php.net/bug.php?id=80141 + $format = preg_replace('/(?getTimezone(); + } + + // Set microseconds to zero to match behavior of DateTime::createFromFormat() + // See https://bugs.php.net/bug.php?id=74332 + $mock = $mock->copy()->microsecond(0); + + // Prepend mock datetime only if the format does not contain non escaped unix epoch reset flag. + if (!preg_match("/{$nonEscaped}[!|]/", $format)) { + $format = static::MOCK_DATETIME_FORMAT.' '.$format; + $time = ($mock instanceof self ? $mock->rawFormat(static::MOCK_DATETIME_FORMAT) : $mock->format(static::MOCK_DATETIME_FORMAT)).' '.$time; + } + + // Regenerate date from the modified format to base result on the mocked instance instead of now. + $date = self::createFromFormatAndTimezone($format, $time, $tz); + } + + if ($date instanceof DateTimeInterface) { + $instance = static::instance($date); + $instance::setLastErrors($lastErrors); + + return $instance; + } + + if (static::isStrictModeEnabled()) { + throw new InvalidFormatException(implode(PHP_EOL, $lastErrors['errors'])); + } + + return false; + } + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + #[ReturnTypeWillChange] + public static function createFromFormat($format, $time, $tz = null) + { + $function = static::$createFromFormatFunction; + + if (!$function) { + return static::rawCreateFromFormat($format, $time, $tz); + } + + if (\is_string($function) && method_exists(static::class, $function)) { + $function = [static::class, $function]; + } + + return $function(...\func_get_args()); + } + + /** + * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz optional timezone + * @param string|null $locale locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use) + * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null) + { + $format = preg_replace_callback('/(? static::getTranslationMessageWith($translator, 'formats.LT', $locale, 'h:mm A'), + 'LTS' => static::getTranslationMessageWith($translator, 'formats.LTS', $locale, 'h:mm:ss A'), + 'L' => static::getTranslationMessageWith($translator, 'formats.L', $locale, 'MM/DD/YYYY'), + 'LL' => static::getTranslationMessageWith($translator, 'formats.LL', $locale, 'MMMM D, YYYY'), + 'LLL' => static::getTranslationMessageWith($translator, 'formats.LLL', $locale, 'MMMM D, YYYY h:mm A'), + 'LLLL' => static::getTranslationMessageWith($translator, 'formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'), + ]; + } + + return $formats[$code] ?? preg_replace_callback( + '/MMMM|MM|DD|dddd/', + function ($code) { + return mb_substr($code[0], 1); + }, + $formats[strtoupper($code)] ?? '' + ); + }, $format); + + $format = preg_replace_callback('/(? 'd', + 'OM' => 'M', + 'OY' => 'Y', + 'OH' => 'G', + 'Oh' => 'g', + 'Om' => 'i', + 'Os' => 's', + 'D' => 'd', + 'DD' => 'd', + 'Do' => 'd', + 'd' => '!', + 'dd' => '!', + 'ddd' => 'D', + 'dddd' => 'D', + 'DDD' => 'z', + 'DDDD' => 'z', + 'DDDo' => 'z', + 'e' => '!', + 'E' => '!', + 'H' => 'G', + 'HH' => 'H', + 'h' => 'g', + 'hh' => 'h', + 'k' => 'G', + 'kk' => 'G', + 'hmm' => 'gi', + 'hmmss' => 'gis', + 'Hmm' => 'Gi', + 'Hmmss' => 'Gis', + 'm' => 'i', + 'mm' => 'i', + 'a' => 'a', + 'A' => 'a', + 's' => 's', + 'ss' => 's', + 'S' => '*', + 'SS' => '*', + 'SSS' => '*', + 'SSSS' => '*', + 'SSSSS' => '*', + 'SSSSSS' => 'u', + 'SSSSSSS' => 'u*', + 'SSSSSSSS' => 'u*', + 'SSSSSSSSS' => 'u*', + 'M' => 'm', + 'MM' => 'm', + 'MMM' => 'M', + 'MMMM' => 'M', + 'Mo' => 'm', + 'Q' => '!', + 'Qo' => '!', + 'G' => '!', + 'GG' => '!', + 'GGG' => '!', + 'GGGG' => '!', + 'GGGGG' => '!', + 'g' => '!', + 'gg' => '!', + 'ggg' => '!', + 'gggg' => '!', + 'ggggg' => '!', + 'W' => '!', + 'WW' => '!', + 'Wo' => '!', + 'w' => '!', + 'ww' => '!', + 'wo' => '!', + 'x' => 'U???', + 'X' => 'U', + 'Y' => 'Y', + 'YY' => 'y', + 'YYYY' => 'Y', + 'YYYYY' => 'Y', + 'YYYYYY' => 'Y', + 'z' => 'e', + 'zz' => 'e', + 'Z' => 'e', + 'ZZ' => 'e', + ]; + } + + $format = $replacements[$code] ?? '?'; + + if ($format === '!') { + throw new InvalidFormatException("Format $code not supported for creation."); + } + + return $format; + }, $format); + + return static::rawCreateFromFormat($format, $time, $tz); + } + + /** + * Create a Carbon instance from a specific format and a string in a given language. + * + * @param string $format Datetime format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleFormat($format, $locale, $time, $tz = null) + { + return static::rawCreateFromFormat($format, static::translateTimeString($time, $locale, 'en'), $tz); + } + + /** + * Create a Carbon instance from a specific ISO format and a string in a given language. + * + * @param string $format Datetime ISO format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null) + { + $time = static::translateTimeString($time, $locale, 'en', CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS | CarbonInterface::TRANSLATE_MERIDIEM); + + return static::createFromIsoFormat($format, $time, $tz, $locale); + } + + /** + * Make a Carbon instance from given variable if possible. + * + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * + * @param mixed $var + * + * @throws InvalidFormatException + * + * @return static|null + */ + public static function make($var) + { + if ($var instanceof DateTimeInterface) { + return static::instance($var); + } + + $date = null; + + if (\is_string($var)) { + $var = trim($var); + + if (!preg_match('/^P[\dT]/', $var) && + !preg_match('/^R\d/', $var) && + preg_match('/[a-z\d]/i', $var) + ) { + $date = static::parse($var); + } + } + + return $date; + } + + /** + * Set last errors. + * + * @param array $lastErrors + * + * @return void + */ + private static function setLastErrors(array $lastErrors) + { + static::$lastErrors = $lastErrors; + } + + /** + * {@inheritdoc} + * + * @return array + */ + #[ReturnTypeWillChange] + public static function getLastErrors() + { + return static::$lastErrors; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Date.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Date.php new file mode 100644 index 00000000000..b05b3652c40 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Date.php @@ -0,0 +1,2697 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use BadMethodCallException; +use Carbon\Carbon; +use Carbon\CarbonInterface; +use Carbon\CarbonPeriod; +use Carbon\CarbonTimeZone; +use Carbon\Exceptions\BadComparisonUnitException; +use Carbon\Exceptions\ImmutableException; +use Carbon\Exceptions\InvalidTimeZoneException; +use Carbon\Exceptions\InvalidTypeException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownMethodException; +use Carbon\Exceptions\UnknownSetterException; +use Carbon\Exceptions\UnknownUnitException; +use Closure; +use DateInterval; +use DatePeriod; +use DateTime; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; +use InvalidArgumentException; +use ReflectionException; +use ReturnTypeWillChange; +use Throwable; + +/** + * A simple API extension for DateTime. + * + * @mixin DeprecatedProperties + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonInterface years(int $value) Set current instance year to the given value. + * @method CarbonInterface year(int $value) Set current instance year to the given value. + * @method CarbonInterface setYears(int $value) Set current instance year to the given value. + * @method CarbonInterface setYear(int $value) Set current instance year to the given value. + * @method CarbonInterface months(int $value) Set current instance month to the given value. + * @method CarbonInterface month(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonths(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonth(int $value) Set current instance month to the given value. + * @method CarbonInterface days(int $value) Set current instance day to the given value. + * @method CarbonInterface day(int $value) Set current instance day to the given value. + * @method CarbonInterface setDays(int $value) Set current instance day to the given value. + * @method CarbonInterface setDay(int $value) Set current instance day to the given value. + * @method CarbonInterface hours(int $value) Set current instance hour to the given value. + * @method CarbonInterface hour(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHours(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHour(int $value) Set current instance hour to the given value. + * @method CarbonInterface minutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface minute(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinute(int $value) Set current instance minute to the given value. + * @method CarbonInterface seconds(int $value) Set current instance second to the given value. + * @method CarbonInterface second(int $value) Set current instance second to the given value. + * @method CarbonInterface setSeconds(int $value) Set current instance second to the given value. + * @method CarbonInterface setSecond(int $value) Set current instance second to the given value. + * @method CarbonInterface millis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface micros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface micro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addYear() Add one year to the instance (using date interval). + * @method CarbonInterface subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subYear() Sub one year to the instance (using date interval). + * @method CarbonInterface addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMonth() Add one month to the instance (using date interval). + * @method CarbonInterface subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMonth() Sub one month to the instance (using date interval). + * @method CarbonInterface addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDay() Add one day to the instance (using date interval). + * @method CarbonInterface subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDay() Sub one day to the instance (using date interval). + * @method CarbonInterface addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addHour() Add one hour to the instance (using date interval). + * @method CarbonInterface subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subHour() Sub one hour to the instance (using date interval). + * @method CarbonInterface addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMinute() Add one minute to the instance (using date interval). + * @method CarbonInterface subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMinute() Sub one minute to the instance (using date interval). + * @method CarbonInterface addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addSecond() Add one second to the instance (using date interval). + * @method CarbonInterface subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subSecond() Sub one second to the instance (using date interval). + * @method CarbonInterface addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonInterface subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonInterface addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addCentury() Add one century to the instance (using date interval). + * @method CarbonInterface subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subCentury() Sub one century to the instance (using date interval). + * @method CarbonInterface addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDecade() Add one decade to the instance (using date interval). + * @method CarbonInterface subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDecade() Sub one decade to the instance (using date interval). + * @method CarbonInterface addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonInterface subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonInterface addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeek() Add one week to the instance (using date interval). + * @method CarbonInterface subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeek() Sub one week to the instance (using date interval). + * @method CarbonInterface addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonInterface subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonInterface addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonInterface subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonInterface addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonInterface subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonInterface addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonInterface subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonInterface addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDay() Add one day to the instance (using timestamp). + * @method CarbonInterface subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonInterface addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonInterface subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonInterface addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonInterface subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonInterface addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonInterface subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonInterface addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealYear() Add one year to the instance (using timestamp). + * @method CarbonInterface subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonInterface addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonInterface subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonInterface addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonInterface subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonInterface addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonInterface subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonInterface roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonInterface ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * + * + */ +trait Date +{ + use Boundaries; + use Comparison; + use Converter; + use Creator; + use Difference; + use Macro; + use Modifiers; + use Mutability; + use ObjectInitialisation; + use Options; + use Rounding; + use Serialization; + use Test; + use Timestamp; + use Units; + use Week; + + /** + * Names of days of the week. + * + * @var array + */ + protected static $days = [ + // @call isDayOfWeek + CarbonInterface::SUNDAY => 'Sunday', + // @call isDayOfWeek + CarbonInterface::MONDAY => 'Monday', + // @call isDayOfWeek + CarbonInterface::TUESDAY => 'Tuesday', + // @call isDayOfWeek + CarbonInterface::WEDNESDAY => 'Wednesday', + // @call isDayOfWeek + CarbonInterface::THURSDAY => 'Thursday', + // @call isDayOfWeek + CarbonInterface::FRIDAY => 'Friday', + // @call isDayOfWeek + CarbonInterface::SATURDAY => 'Saturday', + ]; + + /** + * Will UTF8 encoding be used to print localized date/time ? + * + * @var bool + */ + protected static $utf8 = false; + + /** + * List of unit and magic methods associated as doc-comments. + * + * @var array + */ + protected static $units = [ + // @call setUnit + // @call addUnit + 'year', + // @call setUnit + // @call addUnit + 'month', + // @call setUnit + // @call addUnit + 'day', + // @call setUnit + // @call addUnit + 'hour', + // @call setUnit + // @call addUnit + 'minute', + // @call setUnit + // @call addUnit + 'second', + // @call setUnit + // @call addUnit + 'milli', + // @call setUnit + // @call addUnit + 'millisecond', + // @call setUnit + // @call addUnit + 'micro', + // @call setUnit + // @call addUnit + 'microsecond', + ]; + + /** + * Creates a DateTimeZone from a string, DateTimeZone or integer offset. + * + * @param DateTimeZone|string|int|null $object original value to get CarbonTimeZone from it. + * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages. + * + * @throws InvalidTimeZoneException + * + * @return CarbonTimeZone|false + */ + protected static function safeCreateDateTimeZone($object, $objectDump = null) + { + return CarbonTimeZone::instance($object, $objectDump); + } + + /** + * Get the TimeZone associated with the Carbon instance (as CarbonTimeZone). + * + * @return CarbonTimeZone + * + * @link https://php.net/manual/en/datetime.gettimezone.php + */ + #[ReturnTypeWillChange] + public function getTimezone() + { + return CarbonTimeZone::instance(parent::getTimezone()); + } + + /** + * List of minimum and maximums for each unit. + * + * @return array + */ + protected static function getRangesByUnit(int $daysInMonth = 31): array + { + return [ + // @call roundUnit + 'year' => [1, 9999], + // @call roundUnit + 'month' => [1, static::MONTHS_PER_YEAR], + // @call roundUnit + 'day' => [1, $daysInMonth], + // @call roundUnit + 'hour' => [0, static::HOURS_PER_DAY - 1], + // @call roundUnit + 'minute' => [0, static::MINUTES_PER_HOUR - 1], + // @call roundUnit + 'second' => [0, static::SECONDS_PER_MINUTE - 1], + ]; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy() + { + return clone $this; + } + + /** + * @alias copy + * + * Get a copy of the instance. + * + * @return static + */ + public function clone() + { + return clone $this; + } + + /** + * Clone the current instance if it's mutable. + * + * This method is convenient to ensure you don't mutate the initial object + * but avoid to make a useless copy of it if it's already immutable. + * + * @return static + */ + public function avoidMutation(): self + { + if ($this instanceof DateTimeImmutable) { + return $this; + } + + return clone $this; + } + + /** + * Returns a present instance in the same timezone. + * + * @return static + */ + public function nowWithSameTz() + { + return static::now($this->getTimezone()); + } + + /** + * Throws an exception if the given object is not a DateTime and does not implement DateTimeInterface. + * + * @param mixed $date + * @param string|array $other + * + * @throws InvalidTypeException + */ + protected static function expectDateTime($date, $other = []) + { + $message = 'Expected '; + foreach ((array) $other as $expect) { + $message .= "$expect, "; + } + + if (!$date instanceof DateTime && !$date instanceof DateTimeInterface) { + throw new InvalidTypeException( + $message.'DateTime or DateTimeInterface, '. + (\is_object($date) ? \get_class($date) : \gettype($date)).' given' + ); + } + } + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param Carbon|DateTimeInterface|string|null $date + * + * @return static + */ + protected function resolveCarbon($date = null) + { + if (!$date) { + return $this->nowWithSameTz(); + } + + if (\is_string($date)) { + return static::parse($date, $this->getTimezone()); + } + + static::expectDateTime($date, ['null', 'string']); + + return $date instanceof self ? $date : static::instance($date); + } + + /** + * Return the Carbon instance passed through, a now instance in UTC + * if null given or parse the input if string given (using current timezone + * then switching to UTC). + * + * @param Carbon|DateTimeInterface|string|null $date + * + * @return static + */ + protected function resolveUTC($date = null): self + { + if (!$date) { + return static::now('UTC'); + } + + if (\is_string($date)) { + return static::parse($date, $this->getTimezone())->utc(); + } + + static::expectDateTime($date, ['null', 'string']); + + return $date instanceof self ? $date : static::instance($date)->utc(); + } + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|DateTimeInterface|string|null $date + * + * @return static + */ + public function carbonize($date = null) + { + if ($date instanceof DateInterval) { + return $this->avoidMutation()->add($date); + } + + if ($date instanceof DatePeriod || $date instanceof CarbonPeriod) { + $date = $date->getStartDate(); + } + + return $this->resolveCarbon($date); + } + + /////////////////////////////////////////////////////////////////// + ///////////////////////// GETTERS AND SETTERS ///////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function __get($name) + { + return $this->get($name); + } + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function get($name) + { + static $formats = [ + // @property int + 'year' => 'Y', + // @property int + 'yearIso' => 'o', + // @property int + // @call isSameUnit + 'month' => 'n', + // @property int + 'day' => 'j', + // @property int + 'hour' => 'G', + // @property int + 'minute' => 'i', + // @property int + 'second' => 's', + // @property int + 'micro' => 'u', + // @property int + 'microsecond' => 'u', + // @property-read int 0 (for Sunday) through 6 (for Saturday) + 'dayOfWeek' => 'w', + // @property-read int 1 (for Monday) through 7 (for Sunday) + 'dayOfWeekIso' => 'N', + // @property-read int ISO-8601 week number of year, weeks starting on Monday + 'weekOfYear' => 'W', + // @property-read int number of days in the given month + 'daysInMonth' => 't', + // @property int|float|string seconds since the Unix Epoch + 'timestamp' => 'U', + // @property-read string "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + 'latinMeridiem' => 'a', + // @property-read string "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + 'latinUpperMeridiem' => 'A', + // @property string the day of week in English + 'englishDayOfWeek' => 'l', + // @property string the abbreviated day of week in English + 'shortEnglishDayOfWeek' => 'D', + // @property string the month in English + 'englishMonth' => 'F', + // @property string the abbreviated month in English + 'shortEnglishMonth' => 'M', + // @property string the day of week in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('MMM') instead. + // since: 2.55.0 + 'localeDayOfWeek' => '%A', + // @property string the abbreviated day of week in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('dddd') instead. + // since: 2.55.0 + 'shortLocaleDayOfWeek' => '%a', + // @property string the month in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('ddd') instead. + // since: 2.55.0 + 'localeMonth' => '%B', + // @property string the abbreviated month in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('MMMM') instead. + // since: 2.55.0 + 'shortLocaleMonth' => '%b', + // @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + 'timezoneAbbreviatedName' => 'T', + // @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + 'tzAbbrName' => 'T', + ]; + + switch (true) { + case isset($formats[$name]): + $format = $formats[$name]; + $method = str_starts_with($format, '%') ? 'formatLocalized' : 'rawFormat'; + $value = $this->$method($format); + + return is_numeric($value) ? (int) $value : $value; + + // @property-read string long name of weekday translated according to Carbon locale, in english if no translation available for current language + case $name === 'dayName': + return $this->getTranslatedDayName(); + // @property-read string short name of weekday translated according to Carbon locale, in english if no translation available for current language + case $name === 'shortDayName': + return $this->getTranslatedShortDayName(); + // @property-read string very short name of weekday translated according to Carbon locale, in english if no translation available for current language + case $name === 'minDayName': + return $this->getTranslatedMinDayName(); + // @property-read string long name of month translated according to Carbon locale, in english if no translation available for current language + case $name === 'monthName': + return $this->getTranslatedMonthName(); + // @property-read string short name of month translated according to Carbon locale, in english if no translation available for current language + case $name === 'shortMonthName': + return $this->getTranslatedShortMonthName(); + // @property-read string lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + case $name === 'meridiem': + return $this->meridiem(true); + // @property-read string uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + case $name === 'upperMeridiem': + return $this->meridiem(); + // @property-read int current hour from 1 to 24 + case $name === 'noZeroHour': + return $this->hour ?: 24; + // @property int + case $name === 'milliseconds': + // @property int + case $name === 'millisecond': + // @property int + case $name === 'milli': + return (int) floor(((int) $this->rawFormat('u')) / 1000); + + // @property int 1 through 53 + case $name === 'week': + return (int) $this->week(); + + // @property int 1 through 53 + case $name === 'isoWeek': + return (int) $this->isoWeek(); + + // @property int year according to week format + case $name === 'weekYear': + return (int) $this->weekYear(); + + // @property int year according to ISO week format + case $name === 'isoWeekYear': + return (int) $this->isoWeekYear(); + + // @property-read int 51 through 53 + case $name === 'weeksInYear': + return $this->weeksInYear(); + + // @property-read int 51 through 53 + case $name === 'isoWeeksInYear': + return $this->isoWeeksInYear(); + + // @property-read int 1 through 5 + case $name === 'weekOfMonth': + return (int) ceil($this->day / static::DAYS_PER_WEEK); + + // @property-read int 1 through 5 + case $name === 'weekNumberInMonth': + return (int) ceil(($this->day + $this->avoidMutation()->startOfMonth()->dayOfWeekIso - 1) / static::DAYS_PER_WEEK); + + // @property-read int 0 through 6 + case $name === 'firstWeekDay': + return $this->localTranslator ? ($this->getTranslationMessage('first_day_of_week') ?? 0) : static::getWeekStartsAt(); + + // @property-read int 0 through 6 + case $name === 'lastWeekDay': + return $this->localTranslator ? (($this->getTranslationMessage('first_day_of_week') ?? 0) + static::DAYS_PER_WEEK - 1) % static::DAYS_PER_WEEK : static::getWeekEndsAt(); + + // @property int 1 through 366 + case $name === 'dayOfYear': + return 1 + (int) ($this->rawFormat('z')); + + // @property-read int 365 or 366 + case $name === 'daysInYear': + return $this->isLeapYear() ? 366 : 365; + + // @property int does a diffInYears() with default parameters + case $name === 'age': + return $this->diffInYears(); + + // @property-read int the quarter of this instance, 1 - 4 + // @call isSameUnit + case $name === 'quarter': + return (int) ceil($this->month / static::MONTHS_PER_QUARTER); + + // @property-read int the decade of this instance + // @call isSameUnit + case $name === 'decade': + return (int) ceil($this->year / static::YEARS_PER_DECADE); + + // @property-read int the century of this instance + // @call isSameUnit + case $name === 'century': + $factor = 1; + $year = $this->year; + if ($year < 0) { + $year = -$year; + $factor = -1; + } + + return (int) ($factor * ceil($year / static::YEARS_PER_CENTURY)); + + // @property-read int the millennium of this instance + // @call isSameUnit + case $name === 'millennium': + $factor = 1; + $year = $this->year; + if ($year < 0) { + $year = -$year; + $factor = -1; + } + + return (int) ($factor * ceil($year / static::YEARS_PER_MILLENNIUM)); + + // @property int the timezone offset in seconds from UTC + case $name === 'offset': + return $this->getOffset(); + + // @property int the timezone offset in minutes from UTC + case $name === 'offsetMinutes': + return $this->getOffset() / static::SECONDS_PER_MINUTE; + + // @property int the timezone offset in hours from UTC + case $name === 'offsetHours': + return $this->getOffset() / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR; + + // @property-read bool daylight savings time indicator, true if DST, false otherwise + case $name === 'dst': + return $this->rawFormat('I') === '1'; + + // @property-read bool checks if the timezone is local, true if local, false otherwise + case $name === 'local': + return $this->getOffset() === $this->avoidMutation()->setTimezone(date_default_timezone_get())->getOffset(); + + // @property-read bool checks if the timezone is UTC, true if UTC, false otherwise + case $name === 'utc': + return $this->getOffset() === 0; + + // @property CarbonTimeZone $timezone the current timezone + // @property CarbonTimeZone $tz alias of $timezone + case $name === 'timezone' || $name === 'tz': + return CarbonTimeZone::instance($this->getTimezone()); + + // @property-read string $timezoneName the current timezone name + // @property-read string $tzName alias of $timezoneName + case $name === 'timezoneName' || $name === 'tzName': + return $this->getTimezone()->getName(); + + // @property-read string locale of the current instance + case $name === 'locale': + return $this->getTranslatorLocale(); + + default: + $macro = $this->getLocalMacro('get'.ucfirst($name)); + + if ($macro) { + return $this->executeCallableWithContext($macro); + } + + throw new UnknownGetterException($name); + } + } + + /** + * Check if an attribute exists on the object + * + * @param string $name + * + * @return bool + */ + public function __isset($name) + { + try { + $this->__get($name); + } catch (UnknownGetterException | ReflectionException $e) { + return false; + } + + return true; + } + + /** + * Set a part of the Carbon object + * + * @param string $name + * @param string|int|DateTimeZone $value + * + * @throws UnknownSetterException|ReflectionException + * + * @return void + */ + public function __set($name, $value) + { + if ($this->constructedObjectId === spl_object_hash($this)) { + $this->set($name, $value); + + return; + } + + $this->$name = $value; + } + + /** + * Set a part of the Carbon object + * + * @param string|array $name + * @param string|int|DateTimeZone $value + * + * @throws ImmutableException|UnknownSetterException + * + * @return $this + */ + public function set($name, $value = null) + { + if ($this->isImmutable()) { + throw new ImmutableException(sprintf('%s class', static::class)); + } + + if (\is_array($name)) { + foreach ($name as $key => $value) { + $this->set($key, $value); + } + + return $this; + } + + switch ($name) { + case 'milliseconds': + case 'millisecond': + case 'milli': + case 'microseconds': + case 'microsecond': + case 'micro': + if (str_starts_with($name, 'milli')) { + $value *= 1000; + } + + while ($value < 0) { + $this->subSecond(); + $value += static::MICROSECONDS_PER_SECOND; + } + + while ($value >= static::MICROSECONDS_PER_SECOND) { + $this->addSecond(); + $value -= static::MICROSECONDS_PER_SECOND; + } + + $this->modify($this->rawFormat('H:i:s.').str_pad((string) round($value), 6, '0', STR_PAD_LEFT)); + + break; + + case 'year': + case 'month': + case 'day': + case 'hour': + case 'minute': + case 'second': + [$year, $month, $day, $hour, $minute, $second] = array_map('intval', explode('-', $this->rawFormat('Y-n-j-G-i-s'))); + $$name = $value; + $this->setDateTime($year, $month, $day, $hour, $minute, $second); + + break; + + case 'week': + $this->week($value); + + break; + + case 'isoWeek': + $this->isoWeek($value); + + break; + + case 'weekYear': + $this->weekYear($value); + + break; + + case 'isoWeekYear': + $this->isoWeekYear($value); + + break; + + case 'dayOfYear': + $this->addDays($value - $this->dayOfYear); + + break; + + case 'timestamp': + $this->setTimestamp($value); + + break; + + case 'offset': + $this->setTimezone(static::safeCreateDateTimeZone($value / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR)); + + break; + + case 'offsetMinutes': + $this->setTimezone(static::safeCreateDateTimeZone($value / static::MINUTES_PER_HOUR)); + + break; + + case 'offsetHours': + $this->setTimezone(static::safeCreateDateTimeZone($value)); + + break; + + case 'timezone': + case 'tz': + $this->setTimezone($value); + + break; + + default: + $macro = $this->getLocalMacro('set'.ucfirst($name)); + + if ($macro) { + $this->executeCallableWithContext($macro, $value); + + break; + } + + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new UnknownSetterException($name); + } + + $this->$name = $value; + } + + return $this; + } + + protected function getTranslatedFormByRegExp($baseKey, $keySuffix, $context, $subKey, $defaultValue) + { + $key = $baseKey.$keySuffix; + $standaloneKey = "{$key}_standalone"; + $baseTranslation = $this->getTranslationMessage($key); + + if ($baseTranslation instanceof Closure) { + return $baseTranslation($this, $context, $subKey) ?: $defaultValue; + } + + if ( + $this->getTranslationMessage("$standaloneKey.$subKey") && + (!$context || (($regExp = $this->getTranslationMessage("{$baseKey}_regexp")) && !preg_match($regExp, $context))) + ) { + $key = $standaloneKey; + } + + return $this->getTranslationMessage("$key.$subKey", null, $defaultValue); + } + + /** + * Get the translation of the current week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "", "_short" or "_min" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null) + { + return $this->getTranslatedFormByRegExp('weekdays', $keySuffix, $context, $this->dayOfWeek, $defaultValue ?: $this->englishDayOfWeek); + } + + /** + * Get the translation of the current short week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortDayName($context = null) + { + return $this->getTranslatedDayName($context, '_short', $this->shortEnglishDayOfWeek); + } + + /** + * Get the translation of the current abbreviated week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedMinDayName($context = null) + { + return $this->getTranslatedDayName($context, '_min', $this->shortEnglishDayOfWeek); + } + + /** + * Get the translation of the current month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "" or "_short" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null) + { + return $this->getTranslatedFormByRegExp('months', $keySuffix, $context, $this->month - 1, $defaultValue ?: $this->englishMonth); + } + + /** + * Get the translation of the current short month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortMonthName($context = null) + { + return $this->getTranslatedMonthName($context, '_short', $this->shortEnglishMonth); + } + + /** + * Get/set the day of year. + * + * @param int|null $value new value for day of year if using as setter. + * + * @return static|int + */ + public function dayOfYear($value = null) + { + $dayOfYear = $this->dayOfYear; + + return $value === null ? $dayOfYear : $this->addDays($value - $dayOfYear); + } + + /** + * Get/set the weekday from 0 (Sunday) to 6 (Saturday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function weekday($value = null) + { + $dayOfWeek = ($this->dayOfWeek + 7 - (int) ($this->getTranslationMessage('first_day_of_week') ?? 0)) % 7; + + return $value === null ? $dayOfWeek : $this->addDays($value - $dayOfWeek); + } + + /** + * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function isoWeekday($value = null) + { + $dayOfWeekIso = $this->dayOfWeekIso; + + return $value === null ? $dayOfWeekIso : $this->addDays($value - $dayOfWeekIso); + } + + /** + * Set any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value new value for the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function setUnitNoOverflow($valueUnit, $value, $overflowUnit) + { + try { + $original = $this->avoidMutation(); + /** @var static $date */ + $date = $this->$valueUnit($value); + $end = $original->avoidMutation()->endOf($overflowUnit); + $start = $original->avoidMutation()->startOf($overflowUnit); + if ($date < $start) { + $date = $date->setDateTimeFrom($start); + } elseif ($date > $end) { + $date = $date->setDateTimeFrom($end); + } + + return $date; + } catch (BadMethodCallException | ReflectionException $exception) { + throw new UnknownUnitException($valueUnit, 0, $exception); + } + } + + /** + * Add any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to add to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function addUnitNoOverflow($valueUnit, $value, $overflowUnit) + { + return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit + $value, $overflowUnit); + } + + /** + * Subtract any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to subtract to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function subUnitNoOverflow($valueUnit, $value, $overflowUnit) + { + return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit - $value, $overflowUnit); + } + + /** + * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed. + * + * @param int|null $minuteOffset + * + * @return int|static + */ + public function utcOffset(int $minuteOffset = null) + { + if (\func_num_args() < 1) { + return $this->offsetMinutes; + } + + return $this->setTimezone(CarbonTimeZone::createFromMinuteOffset($minuteOffset)); + } + + /** + * Set the date with gregorian year, month and day numbers. + * + * @see https://php.net/manual/en/datetime.setdate.php + * + * @param int $year + * @param int $month + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setDate($year, $month, $day) + { + return parent::setDate((int) $year, (int) $month, (int) $day); + } + + /** + * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates. + * + * @see https://php.net/manual/en/datetime.setisodate.php + * + * @param int $year + * @param int $week + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setISODate($year, $week, $day = 1) + { + return parent::setISODate((int) $year, (int) $week, (int) $day); + } + + /** + * Set the date and time all together. + * + * @param int $year + * @param int $month + * @param int $day + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0) + { + return $this->setDate($year, $month, $day)->setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds); + } + + /** + * Resets the current time of the DateTime object to a different time. + * + * @see https://php.net/manual/en/datetime.settime.php + * + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTime($hour, $minute, $second = 0, $microseconds = 0) + { + return parent::setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds); + } + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimestamp($unixTimestamp) + { + [$timestamp, $microseconds] = self::getIntegerAndDecimalParts($unixTimestamp); + + return parent::setTimestamp((int) $timestamp)->setMicroseconds((int) $microseconds); + } + + /** + * Set the time by time string. + * + * @param string $time + * + * @return static + */ + public function setTimeFromTimeString($time) + { + if (!str_contains($time, ':')) { + $time .= ':0'; + } + + return $this->modify($time); + } + + /** + * @alias setTimezone + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function timezone($value) + { + return $this->setTimezone($value); + } + + /** + * Set the timezone or returns the timezone name if no arguments passed. + * + * @param DateTimeZone|string $value + * + * @return static|string + */ + public function tz($value = null) + { + if (\func_num_args() < 1) { + return $this->tzName; + } + + return $this->setTimezone($value); + } + + /** + * Set the instance's timezone from a string or object. + * + * @param DateTimeZone|string $value + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimezone($value) + { + $tz = static::safeCreateDateTimeZone($value); + + if ($tz === false && !self::isStrictModeEnabled()) { + $tz = new CarbonTimeZone(); + } + + return parent::setTimezone($tz); + } + + /** + * Set the instance's timezone from a string or object and add/subtract the offset difference. + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function shiftTimezone($value) + { + $dateTimeString = $this->format('Y-m-d H:i:s.u'); + + return $this + ->setTimezone($value) + ->modify($dateTimeString); + } + + /** + * Set the instance's timezone to UTC. + * + * @return static + */ + public function utc() + { + return $this->setTimezone('UTC'); + } + + /** + * Set the year, month, and date for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setDateFrom($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->setDate($date->year, $date->month, $date->day); + } + + /** + * Set the hour, minute, second and microseconds for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setTimeFrom($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->setTime($date->hour, $date->minute, $date->second, $date->microsecond); + } + + /** + * Set the date and time for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date + * + * @return static + */ + public function setDateTimeFrom($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->modify($date->rawFormat('Y-m-d H:i:s.u')); + } + + /** + * Get the days of the week + * + * @return array + */ + public static function getDays() + { + return static::$days; + } + + /////////////////////////////////////////////////////////////////// + /////////////////////// WEEK SPECIAL DAYS ///////////////////////// + /////////////////////////////////////////////////////////////////// + + private static function getFirstDayOfWeek(): int + { + return (int) static::getTranslationMessageWith( + static::getTranslator(), + 'first_day_of_week' + ); + } + + /** + * Get the first day of week + * + * @return int + */ + public static function getWeekStartsAt() + { + if (static::$weekStartsAt === static::WEEK_DAY_AUTO) { + return self::getFirstDayOfWeek(); + } + + return static::$weekStartsAt; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * + * Set the first day of week + * + * @param int|string $day week start day (or 'auto' to get the first day of week from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekStartsAt($day) + { + static::$weekStartsAt = $day === static::WEEK_DAY_AUTO ? $day : max(0, (7 + $day) % 7); + } + + /** + * Get the last day of week + * + * @return int + */ + public static function getWeekEndsAt() + { + if (static::$weekStartsAt === static::WEEK_DAY_AUTO) { + return (int) (static::DAYS_PER_WEEK - 1 + self::getFirstDayOfWeek()) % static::DAYS_PER_WEEK; + } + + return static::$weekEndsAt; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * + * Set the last day of week + * + * @param int|string $day week end day (or 'auto' to get the day before the first day of week + * from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekEndsAt($day) + { + static::$weekEndsAt = $day === static::WEEK_DAY_AUTO ? $day : max(0, (7 + $day) % 7); + } + + /** + * Get weekend days + * + * @return array + */ + public static function getWeekendDays() + { + return static::$weekendDays; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * + * Set weekend days + * + * @param array $days + * + * @return void + */ + public static function setWeekendDays($days) + { + static::$weekendDays = $days; + } + + /** + * Determine if a time string will produce a relative date. + * + * @param string $time + * + * @return bool true if time match a relative date, false if absolute or invalid time string + */ + public static function hasRelativeKeywords($time) + { + if (!$time || strtotime($time) === false) { + return false; + } + + $date1 = new DateTime('2000-01-01T00:00:00Z'); + $date1->modify($time); + $date2 = new DateTime('2001-12-25T00:00:00Z'); + $date2->modify($time); + + return $date1 != $date2; + } + + /////////////////////////////////////////////////////////////////// + /////////////////////// STRING FORMATTING ///////////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * + * Set if UTF8 will be used for localized date/time. + * + * @param bool $utf8 + */ + public static function setUtf8($utf8) + { + static::$utf8 = $utf8; + } + + /** + * Format the instance with the current locale. You can set the current + * locale using setlocale() https://php.net/setlocale. + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat() instead. + * Deprecated since 2.55.0 + * + * @param string $format + * + * @return string + */ + public function formatLocalized($format) + { + // Check for Windows to find and replace the %e modifier correctly. + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + $format = preg_replace('#(?toDateTimeString()); + $formatted = ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) + ? strftime($format, $time) + : @strftime($format, $time); + + return static::$utf8 + ? ( + \function_exists('mb_convert_encoding') + ? mb_convert_encoding($formatted, 'UTF-8', mb_list_encodings()) + : utf8_encode($formatted) + ) + : $formatted; + } + + /** + * Returns list of locale formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getIsoFormats($locale = null) + { + return [ + 'LT' => $this->getTranslationMessage('formats.LT', $locale, 'h:mm A'), + 'LTS' => $this->getTranslationMessage('formats.LTS', $locale, 'h:mm:ss A'), + 'L' => $this->getTranslationMessage('formats.L', $locale, 'MM/DD/YYYY'), + 'LL' => $this->getTranslationMessage('formats.LL', $locale, 'MMMM D, YYYY'), + 'LLL' => $this->getTranslationMessage('formats.LLL', $locale, 'MMMM D, YYYY h:mm A'), + 'LLLL' => $this->getTranslationMessage('formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'), + ]; + } + + /** + * Returns list of calendar formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getCalendarFormats($locale = null) + { + return [ + 'sameDay' => $this->getTranslationMessage('calendar.sameDay', $locale, '[Today at] LT'), + 'nextDay' => $this->getTranslationMessage('calendar.nextDay', $locale, '[Tomorrow at] LT'), + 'nextWeek' => $this->getTranslationMessage('calendar.nextWeek', $locale, 'dddd [at] LT'), + 'lastDay' => $this->getTranslationMessage('calendar.lastDay', $locale, '[Yesterday at] LT'), + 'lastWeek' => $this->getTranslationMessage('calendar.lastWeek', $locale, '[Last] dddd [at] LT'), + 'sameElse' => $this->getTranslationMessage('calendar.sameElse', $locale, 'L'), + ]; + } + + /** + * Returns list of locale units for ISO formatting. + * + * @return array + */ + public static function getIsoUnits() + { + static $units = null; + + if ($units === null) { + $units = [ + 'OD' => ['getAltNumber', ['day']], + 'OM' => ['getAltNumber', ['month']], + 'OY' => ['getAltNumber', ['year']], + 'OH' => ['getAltNumber', ['hour']], + 'Oh' => ['getAltNumber', ['h']], + 'Om' => ['getAltNumber', ['minute']], + 'Os' => ['getAltNumber', ['second']], + 'D' => 'day', + 'DD' => ['rawFormat', ['d']], + 'Do' => ['ordinal', ['day', 'D']], + 'd' => 'dayOfWeek', + 'dd' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedMinDayName($originalFormat); + }, + 'ddd' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedShortDayName($originalFormat); + }, + 'dddd' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedDayName($originalFormat); + }, + 'DDD' => 'dayOfYear', + 'DDDD' => ['getPaddedUnit', ['dayOfYear', 3]], + 'DDDo' => ['ordinal', ['dayOfYear', 'DDD']], + 'e' => ['weekday', []], + 'E' => 'dayOfWeekIso', + 'H' => ['rawFormat', ['G']], + 'HH' => ['rawFormat', ['H']], + 'h' => ['rawFormat', ['g']], + 'hh' => ['rawFormat', ['h']], + 'k' => 'noZeroHour', + 'kk' => ['getPaddedUnit', ['noZeroHour']], + 'hmm' => ['rawFormat', ['gi']], + 'hmmss' => ['rawFormat', ['gis']], + 'Hmm' => ['rawFormat', ['Gi']], + 'Hmmss' => ['rawFormat', ['Gis']], + 'm' => 'minute', + 'mm' => ['rawFormat', ['i']], + 'a' => 'meridiem', + 'A' => 'upperMeridiem', + 's' => 'second', + 'ss' => ['getPaddedUnit', ['second']], + 'S' => function (CarbonInterface $date) { + return (string) floor($date->micro / 100000); + }, + 'SS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 10000), 2, '0', STR_PAD_LEFT); + }, + 'SSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 1000), 3, '0', STR_PAD_LEFT); + }, + 'SSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 100), 4, '0', STR_PAD_LEFT); + }, + 'SSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 10), 5, '0', STR_PAD_LEFT); + }, + 'SSSSSS' => ['getPaddedUnit', ['micro', 6]], + 'SSSSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro * 10), 7, '0', STR_PAD_LEFT); + }, + 'SSSSSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro * 100), 8, '0', STR_PAD_LEFT); + }, + 'SSSSSSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro * 1000), 9, '0', STR_PAD_LEFT); + }, + 'M' => 'month', + 'MM' => ['rawFormat', ['m']], + 'MMM' => function (CarbonInterface $date, $originalFormat = null) { + $month = $date->getTranslatedShortMonthName($originalFormat); + $suffix = $date->getTranslationMessage('mmm_suffix'); + if ($suffix && $month !== $date->monthName) { + $month .= $suffix; + } + + return $month; + }, + 'MMMM' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedMonthName($originalFormat); + }, + 'Mo' => ['ordinal', ['month', 'M']], + 'Q' => 'quarter', + 'Qo' => ['ordinal', ['quarter', 'M']], + 'G' => 'isoWeekYear', + 'GG' => ['getPaddedUnit', ['isoWeekYear']], + 'GGG' => ['getPaddedUnit', ['isoWeekYear', 3]], + 'GGGG' => ['getPaddedUnit', ['isoWeekYear', 4]], + 'GGGGG' => ['getPaddedUnit', ['isoWeekYear', 5]], + 'g' => 'weekYear', + 'gg' => ['getPaddedUnit', ['weekYear']], + 'ggg' => ['getPaddedUnit', ['weekYear', 3]], + 'gggg' => ['getPaddedUnit', ['weekYear', 4]], + 'ggggg' => ['getPaddedUnit', ['weekYear', 5]], + 'W' => 'isoWeek', + 'WW' => ['getPaddedUnit', ['isoWeek']], + 'Wo' => ['ordinal', ['isoWeek', 'W']], + 'w' => 'week', + 'ww' => ['getPaddedUnit', ['week']], + 'wo' => ['ordinal', ['week', 'w']], + 'x' => ['valueOf', []], + 'X' => 'timestamp', + 'Y' => 'year', + 'YY' => ['rawFormat', ['y']], + 'YYYY' => ['getPaddedUnit', ['year', 4]], + 'YYYYY' => ['getPaddedUnit', ['year', 5]], + 'YYYYYY' => function (CarbonInterface $date) { + return ($date->year < 0 ? '' : '+').$date->getPaddedUnit('year', 6); + }, + 'z' => ['rawFormat', ['T']], + 'zz' => 'tzName', + 'Z' => ['getOffsetString', []], + 'ZZ' => ['getOffsetString', ['']], + ]; + } + + return $units; + } + + /** + * Returns a unit of the instance padded with 0 by default or any other string if specified. + * + * @param string $unit Carbon unit name + * @param int $length Length of the output (2 by default) + * @param string $padString String to use for padding ("0" by default) + * @param int $padType Side(s) to pad (STR_PAD_LEFT by default) + * + * @return string + */ + public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = STR_PAD_LEFT) + { + return ($this->$unit < 0 ? '-' : '').str_pad((string) abs($this->$unit), $length, $padString, $padType); + } + + /** + * Return a property with its ordinal. + * + * @param string $key + * @param string|null $period + * + * @return string + */ + public function ordinal(string $key, ?string $period = null): string + { + $number = $this->$key; + $result = $this->translate('ordinal', [ + ':number' => $number, + ':period' => (string) $period, + ]); + + return (string) ($result === 'ordinal' ? $number : $result); + } + + /** + * Return the meridiem of the current time in the current locale. + * + * @param bool $isLower if true, returns lowercase variant if available in the current locale. + * + * @return string + */ + public function meridiem(bool $isLower = false): string + { + $hour = $this->hour; + $index = $hour < 12 ? 0 : 1; + + if ($isLower) { + $key = 'meridiem.'.($index + 2); + $result = $this->translate($key); + + if ($result !== $key) { + return $result; + } + } + + $key = "meridiem.$index"; + $result = $this->translate($key); + if ($result === $key) { + $result = $this->translate('meridiem', [ + ':hour' => $this->hour, + ':minute' => $this->minute, + ':isLower' => $isLower, + ]); + + if ($result === 'meridiem') { + return $isLower ? $this->latinMeridiem : $this->latinUpperMeridiem; + } + } elseif ($isLower) { + $result = mb_strtolower($result); + } + + return $result; + } + + /** + * Returns the alternative number for a given date property if available in the current locale. + * + * @param string $key date property + * + * @return string + */ + public function getAltNumber(string $key): string + { + return $this->translateNumber(\strlen($key) > 1 ? $this->$key : $this->rawFormat('h')); + } + + /** + * Format in the current language using ISO replacement patterns. + * + * @param string $format + * @param string|null $originalFormat provide context if a chunk has been passed alone + * + * @return string + */ + public function isoFormat(string $format, ?string $originalFormat = null): string + { + $result = ''; + $length = mb_strlen($format); + $originalFormat = $originalFormat ?: $format; + $inEscaped = false; + $formats = null; + $units = null; + + for ($i = 0; $i < $length; $i++) { + $char = mb_substr($format, $i, 1); + + if ($char === '\\') { + $result .= mb_substr($format, ++$i, 1); + + continue; + } + + if ($char === '[' && !$inEscaped) { + $inEscaped = true; + + continue; + } + + if ($char === ']' && $inEscaped) { + $inEscaped = false; + + continue; + } + + if ($inEscaped) { + $result .= $char; + + continue; + } + + $input = mb_substr($format, $i); + + if (preg_match('/^(LTS|LT|[Ll]{1,4})/', $input, $match)) { + if ($formats === null) { + $formats = $this->getIsoFormats(); + } + + $code = $match[0]; + $sequence = $formats[$code] ?? preg_replace_callback( + '/MMMM|MM|DD|dddd/', + function ($code) { + return mb_substr($code[0], 1); + }, + $formats[strtoupper($code)] ?? '' + ); + $rest = mb_substr($format, $i + mb_strlen($code)); + $format = mb_substr($format, 0, $i).$sequence.$rest; + $length = mb_strlen($format); + $input = $sequence.$rest; + } + + if (preg_match('/^'.CarbonInterface::ISO_FORMAT_REGEXP.'/', $input, $match)) { + $code = $match[0]; + + if ($units === null) { + $units = static::getIsoUnits(); + } + + $sequence = $units[$code] ?? ''; + + if ($sequence instanceof Closure) { + $sequence = $sequence($this, $originalFormat); + } elseif (\is_array($sequence)) { + try { + $sequence = $this->{$sequence[0]}(...$sequence[1]); + } catch (ReflectionException | InvalidArgumentException | BadMethodCallException $e) { + $sequence = ''; + } + } elseif (\is_string($sequence)) { + $sequence = $this->$sequence ?? $code; + } + + $format = mb_substr($format, 0, $i).$sequence.mb_substr($format, $i + mb_strlen($code)); + $i += mb_strlen((string) $sequence) - 1; + $length = mb_strlen($format); + $char = $sequence; + } + + $result .= $char; + } + + return $result; + } + + /** + * List of replacements from date() format to isoFormat(). + * + * @return array + */ + public static function getFormatsToIsoReplacements() + { + static $replacements = null; + + if ($replacements === null) { + $replacements = [ + 'd' => true, + 'D' => 'ddd', + 'j' => true, + 'l' => 'dddd', + 'N' => true, + 'S' => function ($date) { + $day = $date->rawFormat('j'); + + return str_replace((string) $day, '', $date->isoFormat('Do')); + }, + 'w' => true, + 'z' => true, + 'W' => true, + 'F' => 'MMMM', + 'm' => true, + 'M' => 'MMM', + 'n' => true, + 't' => true, + 'L' => true, + 'o' => true, + 'Y' => true, + 'y' => true, + 'a' => 'a', + 'A' => 'A', + 'B' => true, + 'g' => true, + 'G' => true, + 'h' => true, + 'H' => true, + 'i' => true, + 's' => true, + 'u' => true, + 'v' => true, + 'E' => true, + 'I' => true, + 'O' => true, + 'P' => true, + 'Z' => true, + 'c' => true, + 'r' => true, + 'U' => true, + ]; + } + + return $replacements; + } + + /** + * Format as ->format() do (using date replacements patterns from https://php.net/manual/en/function.date.php) + * but translate words whenever possible (months, day names, etc.) using the current locale. + * + * @param string $format + * + * @return string + */ + public function translatedFormat(string $format): string + { + $replacements = static::getFormatsToIsoReplacements(); + $context = ''; + $isoFormat = ''; + $length = mb_strlen($format); + + for ($i = 0; $i < $length; $i++) { + $char = mb_substr($format, $i, 1); + + if ($char === '\\') { + $replacement = mb_substr($format, $i, 2); + $isoFormat .= $replacement; + $i++; + + continue; + } + + if (!isset($replacements[$char])) { + $replacement = preg_match('/^[A-Za-z]$/', $char) ? "\\$char" : $char; + $isoFormat .= $replacement; + $context .= $replacement; + + continue; + } + + $replacement = $replacements[$char]; + + if ($replacement === true) { + static $contextReplacements = null; + + if ($contextReplacements === null) { + $contextReplacements = [ + 'm' => 'MM', + 'd' => 'DD', + 't' => 'D', + 'j' => 'D', + 'N' => 'e', + 'w' => 'e', + 'n' => 'M', + 'o' => 'YYYY', + 'Y' => 'YYYY', + 'y' => 'YY', + 'g' => 'h', + 'G' => 'H', + 'h' => 'hh', + 'H' => 'HH', + 'i' => 'mm', + 's' => 'ss', + ]; + } + + $isoFormat .= '['.$this->rawFormat($char).']'; + $context .= $contextReplacements[$char] ?? ' '; + + continue; + } + + if ($replacement instanceof Closure) { + $replacement = '['.$replacement($this).']'; + $isoFormat .= $replacement; + $context .= $replacement; + + continue; + } + + $isoFormat .= $replacement; + $context .= $replacement; + } + + return $this->isoFormat($isoFormat, $context); + } + + /** + * Returns the offset hour and minute formatted with +/- and a given separator (":" by default). + * For example, if the time zone is 9 hours 30 minutes, you'll get "+09:30", with "@@" as first + * argument, "+09@@30", with "" as first argument, "+0930". Negative offset will return something + * like "-12:00". + * + * @param string $separator string to place between hours and minutes (":" by default) + * + * @return string + */ + public function getOffsetString($separator = ':') + { + $second = $this->getOffset(); + $symbol = $second < 0 ? '-' : '+'; + $minute = abs($second) / static::SECONDS_PER_MINUTE; + $hour = str_pad((string) floor($minute / static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); + $minute = str_pad((string) (((int) $minute) % static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); + + return "$symbol$hour$separator$minute"; + } + + protected static function executeStaticCallable($macro, ...$parameters) + { + return static::bindMacroContext(null, function () use (&$macro, &$parameters) { + if ($macro instanceof Closure) { + $boundMacro = @Closure::bind($macro, null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + }); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws BadMethodCallException + * + * @return mixed + */ + public static function __callStatic($method, $parameters) + { + if (!static::hasMacro($method)) { + foreach (static::getGenericMacros() as $callback) { + try { + return static::executeStaticCallable($callback, $method, ...$parameters); + } catch (BadMethodCallException $exception) { + continue; + } + } + if (static::isStrictModeEnabled()) { + throw new UnknownMethodException(sprintf('%s::%s', static::class, $method)); + } + + return null; + } + + return static::executeStaticCallable(static::$globalMacros[$method], ...$parameters); + } + + /** + * Set specified unit to new given value. + * + * @param string $unit year, month, day, hour, minute, second or microsecond + * @param int $value new value for given unit + * + * @return static + */ + public function setUnit($unit, $value = null) + { + $unit = static::singularUnit($unit); + $dateUnits = ['year', 'month', 'day']; + if (\in_array($unit, $dateUnits)) { + return $this->setDate(...array_map(function ($name) use ($unit, $value) { + return (int) ($name === $unit ? $value : $this->$name); + }, $dateUnits)); + } + + $units = ['hour', 'minute', 'second', 'micro']; + if ($unit === 'millisecond' || $unit === 'milli') { + $value *= 1000; + $unit = 'micro'; + } elseif ($unit === 'microsecond') { + $unit = 'micro'; + } + + return $this->setTime(...array_map(function ($name) use ($unit, $value) { + return (int) ($name === $unit ? $value : $this->$name); + }, $units)); + } + + /** + * Returns standardized singular of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function singularUnit(string $unit): string + { + $unit = rtrim(mb_strtolower($unit), 's'); + + if ($unit === 'centurie') { + return 'century'; + } + + if ($unit === 'millennia') { + return 'millennium'; + } + + return $unit; + } + + /** + * Returns standardized plural of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function pluralUnit(string $unit): string + { + $unit = rtrim(strtolower($unit), 's'); + + if ($unit === 'century') { + return 'centuries'; + } + + if ($unit === 'millennium' || $unit === 'millennia') { + return 'millennia'; + } + + return "{$unit}s"; + } + + protected function executeCallable($macro, ...$parameters) + { + if ($macro instanceof Closure) { + $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + } + + protected function executeCallableWithContext($macro, ...$parameters) + { + return static::bindMacroContext($this, function () use (&$macro, &$parameters) { + return $this->executeCallable($macro, ...$parameters); + }); + } + + protected static function getGenericMacros() + { + foreach (static::$globalGenericMacros as $list) { + foreach ($list as $macro) { + yield $macro; + } + } + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws UnknownMethodException|BadMethodCallException|ReflectionException|Throwable + * + * @return mixed + */ + public function __call($method, $parameters) + { + $diffSizes = [ + // @mode diffForHumans + 'short' => true, + // @mode diffForHumans + 'long' => false, + ]; + $diffSyntaxModes = [ + // @call diffForHumans + 'Absolute' => CarbonInterface::DIFF_ABSOLUTE, + // @call diffForHumans + 'Relative' => CarbonInterface::DIFF_RELATIVE_AUTO, + // @call diffForHumans + 'RelativeToNow' => CarbonInterface::DIFF_RELATIVE_TO_NOW, + // @call diffForHumans + 'RelativeToOther' => CarbonInterface::DIFF_RELATIVE_TO_OTHER, + ]; + $sizePattern = implode('|', array_keys($diffSizes)); + $syntaxPattern = implode('|', array_keys($diffSyntaxModes)); + + if (preg_match("/^(?$sizePattern)(?$syntaxPattern)DiffForHumans$/", $method, $match)) { + $dates = array_filter($parameters, function ($parameter) { + return $parameter instanceof DateTimeInterface; + }); + $other = null; + + if (\count($dates)) { + $key = key($dates); + $other = current($dates); + array_splice($parameters, $key, 1); + } + + return $this->diffForHumans($other, $diffSyntaxModes[$match['syntax']], $diffSizes[$match['size']], ...$parameters); + } + + $roundedValue = $this->callRoundMethod($method, $parameters); + + if ($roundedValue !== null) { + return $roundedValue; + } + + $unit = rtrim($method, 's'); + + if (str_starts_with($unit, 'is')) { + $word = substr($unit, 2); + + if (\in_array($word, static::$days, true)) { + return $this->isDayOfWeek($word); + } + + switch ($word) { + // @call is Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + case 'Utc': + case 'UTC': + return $this->utc; + // @call is Check if the current instance has non-UTC timezone. + case 'Local': + return $this->local; + // @call is Check if the current instance is a valid date. + case 'Valid': + return $this->year !== 0; + // @call is Check if the current instance is in a daylight saving time. + case 'DST': + return $this->dst; + } + } + + $action = substr($unit, 0, 3); + $overflow = null; + + if ($action === 'set') { + $unit = strtolower(substr($unit, 3)); + } + + if (\in_array($unit, static::$units, true)) { + return $this->setUnit($unit, ...$parameters); + } + + if ($action === 'add' || $action === 'sub') { + $unit = substr($unit, 3); + + if (str_starts_with($unit, 'Real')) { + $unit = static::singularUnit(substr($unit, 4)); + + return $this->{"{$action}RealUnit"}($unit, ...$parameters); + } + + if (preg_match('/^(Month|Quarter|Year|Decade|Century|Centurie|Millennium|Millennia)s?(No|With|Without|WithNo)Overflow$/', $unit, $match)) { + $unit = $match[1]; + $overflow = $match[2] === 'With'; + } + + $unit = static::singularUnit($unit); + } + + if (static::isModifiableUnit($unit)) { + return $this->{"{$action}Unit"}($unit, $parameters[0] ?? 1, $overflow); + } + + $sixFirstLetters = substr($unit, 0, 6); + $factor = -1; + + if ($sixFirstLetters === 'isLast') { + $sixFirstLetters = 'isNext'; + $factor = 1; + } + + if ($sixFirstLetters === 'isNext') { + $lowerUnit = strtolower(substr($unit, 6)); + + if (static::isModifiableUnit($lowerUnit)) { + return $this->copy()->addUnit($lowerUnit, $factor, false)->isSameUnit($lowerUnit, ...$parameters); + } + } + + if ($sixFirstLetters === 'isSame') { + try { + return $this->isSameUnit(strtolower(substr($unit, 6)), ...$parameters); + } catch (BadComparisonUnitException $exception) { + // Try next + } + } + + if (str_starts_with($unit, 'isCurrent')) { + try { + return $this->isCurrentUnit(strtolower(substr($unit, 9))); + } catch (BadComparisonUnitException | BadMethodCallException $exception) { + // Try next + } + } + + if (str_ends_with($method, 'Until')) { + try { + $unit = static::singularUnit(substr($method, 0, -5)); + + return $this->range($parameters[0] ?? $this, $parameters[1] ?? 1, $unit); + } catch (InvalidArgumentException $exception) { + // Try macros + } + } + + return static::bindMacroContext($this, function () use (&$method, &$parameters) { + $macro = $this->getLocalMacro($method); + + if (!$macro) { + foreach ([$this->localGenericMacros ?: [], static::getGenericMacros()] as $list) { + foreach ($list as $callback) { + try { + return $this->executeCallable($callback, $method, ...$parameters); + } catch (BadMethodCallException $exception) { + continue; + } + } + } + + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new UnknownMethodException($method); + } + + return null; + } + + return $this->executeCallable($macro, ...$parameters); + }); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/DeprecatedProperties.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/DeprecatedProperties.php new file mode 100644 index 00000000000..5acc6f5c7ef --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/DeprecatedProperties.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +trait DeprecatedProperties +{ + /** + * the day of week in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('MMM') instead. + * Deprecated since 2.55.0 + */ + public $localeDayOfWeek; + + /** + * the abbreviated day of week in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('dddd') instead. + * Deprecated since 2.55.0 + */ + public $shortLocaleDayOfWeek; + + /** + * the month in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('ddd') instead. + * Deprecated since 2.55.0 + */ + public $localeMonth; + + /** + * the abbreviated month in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('MMMM') instead. + * Deprecated since 2.55.0 + */ + public $shortLocaleMonth; +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php new file mode 100644 index 00000000000..e7045dc85b6 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php @@ -0,0 +1,1169 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Carbon\Translator; +use Closure; +use DateInterval; +use DateTimeInterface; +use ReturnTypeWillChange; + +/** + * Trait Difference. + * + * Depends on the following methods: + * + * @method bool lessThan($date) + * @method static copy() + * @method static resolveCarbon($date = null) + * @method static Translator translator() + */ +trait Difference +{ + /** + * @codeCoverageIgnore + * + * @param CarbonInterval $diff + */ + protected static function fixNegativeMicroseconds(CarbonInterval $diff) + { + if ($diff->s !== 0 || $diff->i !== 0 || $diff->h !== 0 || $diff->d !== 0 || $diff->m !== 0 || $diff->y !== 0) { + $diff->f = (round($diff->f * 1000000) + 1000000) / 1000000; + $diff->s--; + + if ($diff->s < 0) { + $diff->s += 60; + $diff->i--; + + if ($diff->i < 0) { + $diff->i += 60; + $diff->h--; + + if ($diff->h < 0) { + $diff->h += 24; + $diff->d--; + + if ($diff->d < 0) { + $diff->d += 30; + $diff->m--; + + if ($diff->m < 0) { + $diff->m += 12; + $diff->y--; + } + } + } + } + } + + return; + } + + $diff->f *= -1; + $diff->invert(); + } + + /** + * @param DateInterval $diff + * @param bool $absolute + * + * @return CarbonInterval + */ + protected static function fixDiffInterval(DateInterval $diff, $absolute) + { + $diff = CarbonInterval::instance($diff); + + // Work-around for https://bugs.php.net/bug.php?id=77145 + // @codeCoverageIgnoreStart + if ($diff->f > 0 && $diff->y === -1 && $diff->m === 11 && $diff->d >= 27 && $diff->h === 23 && $diff->i === 59 && $diff->s === 59) { + $diff->y = 0; + $diff->m = 0; + $diff->d = 0; + $diff->h = 0; + $diff->i = 0; + $diff->s = 0; + $diff->f = (1000000 - round($diff->f * 1000000)) / 1000000; + $diff->invert(); + } elseif ($diff->f < 0) { + static::fixNegativeMicroseconds($diff); + } + // @codeCoverageIgnoreEnd + + if ($absolute && $diff->invert) { + $diff->invert(); + } + + return $diff; + } + + /** + * Get the difference as a DateInterval instance. + * Return relative interval (negative if $absolute flag is not set to true and the given date is before + * current one). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return DateInterval + */ + #[ReturnTypeWillChange] + public function diff($date = null, $absolute = false) + { + $other = $this->resolveCarbon($date); + + // Work-around for https://bugs.php.net/bug.php?id=81458 + // It was initially introduced for https://bugs.php.net/bug.php?id=80998 + // The very specific case of 80998 was fixed in PHP 8.1beta3, but it introduced 81458 + // So we still need to keep this for now + // @codeCoverageIgnoreStart + if (version_compare(PHP_VERSION, '8.1.0-dev', '>=') && $other->tz !== $this->tz) { + $other = $other->avoidMutation()->tz($this->tz); + } + // @codeCoverageIgnoreEnd + + return parent::diff($other, (bool) $absolute); + } + + /** + * Get the difference as a CarbonInterval instance. + * Return relative interval (negative if $absolute flag is not set to true and the given date is before + * current one). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return CarbonInterval + */ + public function diffAsCarbonInterval($date = null, $absolute = true) + { + return static::fixDiffInterval($this->diff($this->resolveCarbon($date), $absolute), $absolute); + } + + /** + * Get the difference in years + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInYears($date = null, $absolute = true) + { + return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%y'); + } + + /** + * Get the difference in quarters rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInQuarters($date = null, $absolute = true) + { + return (int) ($this->diffInMonths($date, $absolute) / static::MONTHS_PER_QUARTER); + } + + /** + * Get the difference in months rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMonths($date = null, $absolute = true) + { + $date = $this->resolveCarbon($date); + + return $this->diffInYears($date, $absolute) * static::MONTHS_PER_YEAR + (int) $this->diff($date, $absolute)->format('%r%m'); + } + + /** + * Get the difference in weeks rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeeks($date = null, $absolute = true) + { + return (int) ($this->diffInDays($date, $absolute) / static::DAYS_PER_WEEK); + } + + /** + * Get the difference in days rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDays($date = null, $absolute = true) + { + return $this->getIntervalDayDiff($this->diff($this->resolveCarbon($date), $absolute)); + } + + /** + * Get the difference in days using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true) + { + return $this->diffFiltered(CarbonInterval::day(), $callback, $date, $absolute); + } + + /** + * Get the difference in hours using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true) + { + return $this->diffFiltered(CarbonInterval::hour(), $callback, $date, $absolute); + } + + /** + * Get the difference by the given interval using a filter closure. + * + * @param CarbonInterval $ci An interval to traverse by + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $inverse = false; + + if ($end < $start) { + $start = $end; + $end = $this; + $inverse = true; + } + + $options = CarbonPeriod::EXCLUDE_END_DATE | ($this->isMutable() ? 0 : CarbonPeriod::IMMUTABLE); + $diff = $ci->toPeriod($start, $end, $options)->filter($callback)->count(); + + return $inverse && !$absolute ? -$diff : $diff; + } + + /** + * Get the difference in weekdays rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekdays($date = null, $absolute = true) + { + return $this->diffInDaysFiltered(function (CarbonInterface $date) { + return $date->isWeekday(); + }, $date, $absolute); + } + + /** + * Get the difference in weekend days using a filter rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekendDays($date = null, $absolute = true) + { + return $this->diffInDaysFiltered(function (CarbonInterface $date) { + return $date->isWeekend(); + }, $date, $absolute); + } + + /** + * Get the difference in hours rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHours($date = null, $absolute = true) + { + return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR); + } + + /** + * Get the difference in hours rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealHours($date = null, $absolute = true) + { + return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR); + } + + /** + * Get the difference in minutes rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMinutes($date = null, $absolute = true) + { + return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE); + } + + /** + * Get the difference in minutes rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMinutes($date = null, $absolute = true) + { + return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE); + } + + /** + * Get the difference in seconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInSeconds($date = null, $absolute = true) + { + $diff = $this->diff($date); + + if ($diff->days === 0) { + $diff = static::fixDiffInterval($diff, $absolute); + } + + $value = (((($diff->m || $diff->y ? $diff->days : $diff->d) * static::HOURS_PER_DAY) + + $diff->h) * static::MINUTES_PER_HOUR + + $diff->i) * static::SECONDS_PER_MINUTE + + $diff->s; + + return $absolute || !$diff->invert ? $value : -$value; + } + + /** + * Get the difference in microseconds. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMicroseconds($date = null, $absolute = true) + { + $diff = $this->diff($date); + $value = (int) round(((((($diff->m || $diff->y ? $diff->days : $diff->d) * static::HOURS_PER_DAY) + + $diff->h) * static::MINUTES_PER_HOUR + + $diff->i) * static::SECONDS_PER_MINUTE + + ($diff->f + $diff->s)) * static::MICROSECONDS_PER_SECOND); + + return $absolute || !$diff->invert ? $value : -$value; + } + + /** + * Get the difference in milliseconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMilliseconds($date = null, $absolute = true) + { + return (int) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND); + } + + /** + * Get the difference in seconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealSeconds($date = null, $absolute = true) + { + /** @var CarbonInterface $date */ + $date = $this->resolveCarbon($date); + $value = $date->getTimestamp() - $this->getTimestamp(); + + return $absolute ? abs($value) : $value; + } + + /** + * Get the difference in microseconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMicroseconds($date = null, $absolute = true) + { + /** @var CarbonInterface $date */ + $date = $this->resolveCarbon($date); + $value = ($date->timestamp - $this->timestamp) * static::MICROSECONDS_PER_SECOND + + $date->micro - $this->micro; + + return $absolute ? abs($value) : $value; + } + + /** + * Get the difference in milliseconds rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMilliseconds($date = null, $absolute = true) + { + return (int) ($this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND); + } + + /** + * Get the difference in seconds as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInSeconds($date = null, $absolute = true) + { + return (float) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND); + } + + /** + * Get the difference in minutes as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMinutes($date = null, $absolute = true) + { + return $this->floatDiffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE; + } + + /** + * Get the difference in hours as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInHours($date = null, $absolute = true) + { + return $this->floatDiffInMinutes($date, $absolute) / static::MINUTES_PER_HOUR; + } + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInDays($date = null, $absolute = true) + { + $hoursDiff = $this->floatDiffInHours($date, $absolute); + $interval = $this->diff($date, $absolute); + + if ($interval->y === 0 && $interval->m === 0 && $interval->d === 0) { + return $hoursDiff / static::HOURS_PER_DAY; + } + + $daysDiff = $this->getIntervalDayDiff($interval); + + return $daysDiff + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY; + } + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInWeeks($date = null, $absolute = true) + { + return $this->floatDiffInDays($date, $absolute) / static::DAYS_PER_WEEK; + } + + /** + * Get the difference in months as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMonths($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $monthsDiff = $start->diffInMonths($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addMonths($monthsDiff); + + if ($floorEnd >= $end) { + return $sign * $monthsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */ + $startOfMonthAfterFloorEnd = $floorEnd->avoidMutation()->addMonth()->startOfMonth(); + + if ($startOfMonthAfterFloorEnd > $end) { + return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInMonth); + } + + return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInDays($end) / $end->daysInMonth); + } + + /** + * Get the difference in year as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInYears($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $yearsDiff = $start->diffInYears($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addYears($yearsDiff); + + if ($floorEnd >= $end) { + return $sign * $yearsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */ + $startOfYearAfterFloorEnd = $floorEnd->avoidMutation()->addYear()->startOfYear(); + + if ($startOfYearAfterFloorEnd > $end) { + return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInYear); + } + + return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInDays($end) / $end->daysInYear); + } + + /** + * Get the difference in seconds as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealSeconds($date = null, $absolute = true) + { + return $this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND; + } + + /** + * Get the difference in minutes as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMinutes($date = null, $absolute = true) + { + return $this->floatDiffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE; + } + + /** + * Get the difference in hours as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealHours($date = null, $absolute = true) + { + return $this->floatDiffInRealMinutes($date, $absolute) / static::MINUTES_PER_HOUR; + } + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealDays($date = null, $absolute = true) + { + $date = $this->resolveUTC($date); + $utc = $this->avoidMutation()->utc(); + $hoursDiff = $utc->floatDiffInRealHours($date, $absolute); + + return ($hoursDiff < 0 ? -1 : 1) * $utc->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY; + } + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealWeeks($date = null, $absolute = true) + { + return $this->floatDiffInRealDays($date, $absolute) / static::DAYS_PER_WEEK; + } + + /** + * Get the difference in months as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMonths($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $monthsDiff = $start->diffInMonths($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addMonths($monthsDiff); + + if ($floorEnd >= $end) { + return $sign * $monthsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */ + $startOfMonthAfterFloorEnd = $floorEnd->avoidMutation()->addMonth()->startOfMonth(); + + if ($startOfMonthAfterFloorEnd > $end) { + return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInMonth); + } + + return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInMonth); + } + + /** + * Get the difference in year as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealYears($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $yearsDiff = $start->diffInYears($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addYears($yearsDiff); + + if ($floorEnd >= $end) { + return $sign * $yearsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */ + $startOfYearAfterFloorEnd = $floorEnd->avoidMutation()->addYear()->startOfYear(); + + if ($startOfYearAfterFloorEnd > $end) { + return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInYear); + } + + return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInYear); + } + + /** + * The number of seconds since midnight. + * + * @return int + */ + public function secondsSinceMidnight() + { + return $this->diffInSeconds($this->avoidMutation()->startOfDay()); + } + + /** + * The number of seconds until 23:59:59. + * + * @return int + */ + public function secondsUntilEndOfDay() + { + return $this->diffInSeconds($this->avoidMutation()->endOfDay()); + } + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @example + * ``` + * echo Carbon::tomorrow()->diffForHumans() . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . "\n"; + * ``` + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'skip' entry, list of units to skip (array of strings or a single string, + * ` it can be the unit name (singular or plural) or its shortcut + * ` (y, m, w, d, h, min, s, ms, µs). + * - 'aUnit' entry, prefer "an hour" over "1 hour" if true + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + /* @var CarbonInterface $this */ + if (\is_array($other)) { + $other['syntax'] = \array_key_exists('syntax', $other) ? $other['syntax'] : $syntax; + $syntax = $other; + $other = $syntax['other'] ?? null; + } + + $intSyntax = &$syntax; + if (\is_array($syntax)) { + $syntax['syntax'] = $syntax['syntax'] ?? null; + $intSyntax = &$syntax['syntax']; + } + $intSyntax = (int) ($intSyntax ?? static::DIFF_RELATIVE_AUTO); + $intSyntax = $intSyntax === static::DIFF_RELATIVE_AUTO && $other === null ? static::DIFF_RELATIVE_TO_NOW : $intSyntax; + + $parts = min(7, max(1, (int) $parts)); + + return $this->diffAsCarbonInterval($other, false) + ->setLocalTranslator($this->getLocalTranslator()) + ->forHumans($syntax, (bool) $short, $parts, $options ?? $this->localHumanDiffOptions ?? static::getHumanDiffOptions()); + } + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->diffForHumans($other, $syntax, $short, $parts, $options); + } + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + */ + public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->diffForHumans($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * When comparing a value in the past to default now: + * 1 hour from now + * 5 months from now + * + * When comparing a value in the future to default now: + * 1 hour ago + * 5 months ago + * + * When comparing a value in the past to another value: + * 1 hour after + * 5 months after + * + * When comparing a value in the future to another value: + * 1 hour before + * 5 months before + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + if (!$syntax && !$other) { + $syntax = CarbonInterface::DIFF_RELATIVE_TO_NOW; + } + + return $this->resolveCarbon($other)->diffForHumans($this, $syntax, $short, $parts, $options); + } + + /** + * @alias to + * + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->to($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from current + * instance to now. + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function fromNow($syntax = null, $short = false, $parts = 1, $options = null) + { + $other = null; + + if ($syntax instanceof DateTimeInterface) { + [$other, $syntax, $short, $parts, $options] = array_pad(\func_get_args(), 5, null); + } + + return $this->from($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function toNow($syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->to(null, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function ago($syntax = null, $short = false, $parts = 1, $options = null) + { + $other = null; + + if ($syntax instanceof DateTimeInterface) { + [$other, $syntax, $short, $parts, $options] = array_pad(\func_get_args(), 5, null); + } + + return $this->from($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @return string + */ + public function timespan($other = null, $timezone = null) + { + if (!$other instanceof DateTimeInterface) { + $other = static::parse($other, $timezone); + } + + return $this->diffForHumans($other, [ + 'join' => ', ', + 'syntax' => CarbonInterface::DIFF_ABSOLUTE, + 'options' => CarbonInterface::NO_ZERO_DIFF, + 'parts' => -1, + ]); + } + + /** + * Returns either day of week + time (e.g. "Last Friday at 3:30 PM") if reference time is within 7 days, + * or a calendar date (e.g. "10/29/2017") otherwise. + * + * Language, date and time formats will change according to the current locale. + * + * @param Carbon|\DateTimeInterface|string|null $referenceTime + * @param array $formats + * + * @return string + */ + public function calendar($referenceTime = null, array $formats = []) + { + /** @var CarbonInterface $current */ + $current = $this->avoidMutation()->startOfDay(); + /** @var CarbonInterface $other */ + $other = $this->resolveCarbon($referenceTime)->avoidMutation()->setTimezone($this->getTimezone())->startOfDay(); + $diff = $other->diffInDays($current, false); + $format = $diff < -6 ? 'sameElse' : ( + $diff < -1 ? 'lastWeek' : ( + $diff < 0 ? 'lastDay' : ( + $diff < 1 ? 'sameDay' : ( + $diff < 2 ? 'nextDay' : ( + $diff < 7 ? 'nextWeek' : 'sameElse' + ) + ) + ) + ) + ); + $format = array_merge($this->getCalendarFormats(), $formats)[$format]; + if ($format instanceof Closure) { + $format = $format($current, $other) ?? ''; + } + + return $this->isoFormat((string) $format); + } + + private function getIntervalDayDiff(DateInterval $interval): int + { + $daysDiff = (int) $interval->format('%a'); + $sign = $interval->format('%r') === '-' ? -1 : 1; + + if (\is_int($interval->days) && + $interval->y === 0 && + $interval->m === 0 && + version_compare(PHP_VERSION, '8.1.0-dev', '<') && + abs($interval->d - $daysDiff) === 1 + ) { + $daysDiff = abs($interval->d); // @codeCoverageIgnore + } + + return $daysDiff * $sign; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php new file mode 100644 index 00000000000..4cd66b676f1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterval; +use Carbon\Exceptions\InvalidIntervalException; +use DateInterval; + +/** + * Trait to call rounding methods to interval or the interval of a period. + */ +trait IntervalRounding +{ + protected function callRoundMethod(string $method, array $parameters) + { + $action = substr($method, 0, 4); + + if ($action !== 'ceil') { + $action = substr($method, 0, 5); + } + + if (\in_array($action, ['round', 'floor', 'ceil'])) { + return $this->{$action.'Unit'}(substr($method, \strlen($action)), ...$parameters); + } + + return null; + } + + protected function roundWith($precision, $function) + { + $unit = 'second'; + + if ($precision instanceof DateInterval) { + $precision = (string) CarbonInterval::instance($precision); + } + + if (\is_string($precision) && preg_match('/^\s*(?\d+)?\s*(?\w+)(?\W.*)?$/', $precision, $match)) { + if (trim($match['other'] ?? '') !== '') { + throw new InvalidIntervalException('Rounding is only possible with single unit intervals.'); + } + + $precision = (int) ($match['precision'] ?: 1); + $unit = $match['unit']; + } + + return $this->roundUnit($unit, $precision, $function); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php new file mode 100644 index 00000000000..82d7c32649b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Closure; +use DateTimeImmutable; +use DateTimeInterface; + +trait IntervalStep +{ + /** + * Step to apply instead of a fixed interval to get the new date. + * + * @var Closure|null + */ + protected $step; + + /** + * Get the dynamic step in use. + * + * @return Closure + */ + public function getStep(): ?Closure + { + return $this->step; + } + + /** + * Set a step to apply instead of a fixed interval to get the new date. + * + * Or pass null to switch to fixed interval. + * + * @param Closure|null $step + */ + public function setStep(?Closure $step): void + { + $this->step = $step; + } + + /** + * Take a date and apply either the step if set, or the current interval else. + * + * The interval/step is applied negatively (typically subtraction instead of addition) if $negated is true. + * + * @param DateTimeInterface $dateTime + * @param bool $negated + * + * @return CarbonInterface + */ + public function convertDate(DateTimeInterface $dateTime, bool $negated = false): CarbonInterface + { + /** @var CarbonInterface $carbonDate */ + $carbonDate = $dateTime instanceof CarbonInterface ? $dateTime : $this->resolveCarbon($dateTime); + + if ($this->step) { + return $carbonDate->setDateTimeFrom(($this->step)($carbonDate->avoidMutation(), $negated)); + } + + if ($negated) { + return $carbonDate->rawSub($this); + } + + return $carbonDate->rawAdd($this); + } + + /** + * Convert DateTimeImmutable instance to CarbonImmutable instance and DateTime instance to Carbon instance. + * + * @param DateTimeInterface $dateTime + * + * @return Carbon|CarbonImmutable + */ + private function resolveCarbon(DateTimeInterface $dateTime) + { + if ($dateTime instanceof DateTimeImmutable) { + return CarbonImmutable::instance($dateTime); + } + + return Carbon::instance($dateTime); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php new file mode 100644 index 00000000000..bd641743255 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php @@ -0,0 +1,824 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\Exceptions\InvalidTypeException; +use Carbon\Exceptions\NotLocaleAwareException; +use Carbon\Language; +use Carbon\Translator; +use Carbon\TranslatorStrongTypeInterface; +use Closure; +use Symfony\Component\Translation\TranslatorBagInterface; +use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatorInterface as ContractsTranslatorInterface; + +if (interface_exists('Symfony\\Contracts\\Translation\\TranslatorInterface') && + !interface_exists('Symfony\\Component\\Translation\\TranslatorInterface') +) { + class_alias( + 'Symfony\\Contracts\\Translation\\TranslatorInterface', + 'Symfony\\Component\\Translation\\TranslatorInterface' + ); +} + +/** + * Trait Localization. + * + * Embed default and locale translators and translation base methods. + */ +trait Localization +{ + /** + * Default translator. + * + * @var \Symfony\Component\Translation\TranslatorInterface + */ + protected static $translator; + + /** + * Specific translator of the current instance. + * + * @var \Symfony\Component\Translation\TranslatorInterface + */ + protected $localTranslator; + + /** + * Options for diffForHumans(). + * + * @var int + */ + protected static $humanDiffOptions = CarbonInterface::NO_ZERO_DIFF; + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOptions + */ + public static function setHumanDiffOptions($humanDiffOptions) + { + static::$humanDiffOptions = $humanDiffOptions; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function enableHumanDiffOption($humanDiffOption) + { + static::$humanDiffOptions = static::getHumanDiffOptions() | $humanDiffOption; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function disableHumanDiffOption($humanDiffOption) + { + static::$humanDiffOptions = static::getHumanDiffOptions() & ~$humanDiffOption; + } + + /** + * Return default humanDiff() options (merged flags as integer). + * + * @return int + */ + public static function getHumanDiffOptions() + { + return static::$humanDiffOptions; + } + + /** + * Get the default translator instance in use. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public static function getTranslator() + { + return static::translator(); + } + + /** + * Set the default translator instance to use. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return void + */ + public static function setTranslator(TranslatorInterface $translator) + { + static::$translator = $translator; + } + + /** + * Return true if the current instance has its own translator. + * + * @return bool + */ + public function hasLocalTranslator() + { + return isset($this->localTranslator); + } + + /** + * Get the translator of the current instance or the default if none set. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public function getLocalTranslator() + { + return $this->localTranslator ?: static::translator(); + } + + /** + * Set the translator for the current instance. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return $this + */ + public function setLocalTranslator(TranslatorInterface $translator) + { + $this->localTranslator = $translator; + + return $this; + } + + /** + * Returns raw translation message for a given key. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator the translator to use + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * + * @return string + */ + public static function getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) + { + if (!($translator instanceof TranslatorBagInterface && $translator instanceof TranslatorInterface)) { + throw new InvalidTypeException( + 'Translator does not implement '.TranslatorInterface::class.' and '.TranslatorBagInterface::class.'. '. + (\is_object($translator) ? \get_class($translator) : \gettype($translator)).' has been given.' + ); + } + + if (!$locale && $translator instanceof LocaleAwareInterface) { + $locale = $translator->getLocale(); + } + + $result = self::getFromCatalogue($translator, $translator->getCatalogue($locale), $key); + + return $result === $key ? $default : $result; + } + + /** + * Returns raw translation message for a given key. + * + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * @param \Symfony\Component\Translation\TranslatorInterface $translator an optional translator to use + * + * @return string + */ + public function getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null) + { + return static::getTranslationMessageWith($translator ?: $this->getLocalTranslator(), $key, $locale, $default); + } + + /** + * Translate using translation string or callback available. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * @param string $key + * @param array $parameters + * @param null $number + * + * @return string + */ + public static function translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string + { + $message = static::getTranslationMessageWith($translator, $key, null, $key); + if ($message instanceof Closure) { + return (string) $message(...array_values($parameters)); + } + + if ($number !== null) { + $parameters['%count%'] = $number; + } + if (isset($parameters['%count%'])) { + $parameters[':count'] = $parameters['%count%']; + } + + // @codeCoverageIgnoreStart + $choice = $translator instanceof ContractsTranslatorInterface + ? $translator->trans($key, $parameters) + : $translator->transChoice($key, $number, $parameters); + // @codeCoverageIgnoreEnd + + return (string) $choice; + } + + /** + * Translate using translation string or callback available. + * + * @param string $key + * @param array $parameters + * @param string|int|float|null $number + * @param \Symfony\Component\Translation\TranslatorInterface|null $translator + * @param bool $altNumbers + * + * @return string + */ + public function translate(string $key, array $parameters = [], $number = null, ?TranslatorInterface $translator = null, bool $altNumbers = false): string + { + $translation = static::translateWith($translator ?: $this->getLocalTranslator(), $key, $parameters, $number); + + if ($number !== null && $altNumbers) { + return str_replace($number, $this->translateNumber($number), $translation); + } + + return $translation; + } + + /** + * Returns the alternative number for a given integer if available in the current locale. + * + * @param int $number + * + * @return string + */ + public function translateNumber(int $number): string + { + $translateKey = "alt_numbers.$number"; + $symbol = $this->translate($translateKey); + + if ($symbol !== $translateKey) { + return $symbol; + } + + if ($number > 99 && $this->translate('alt_numbers.99') !== 'alt_numbers.99') { + $start = ''; + foreach ([10000, 1000, 100] as $exp) { + $key = "alt_numbers_pow.$exp"; + if ($number >= $exp && $number < $exp * 10 && ($pow = $this->translate($key)) !== $key) { + $unit = floor($number / $exp); + $number -= $unit * $exp; + $start .= ($unit > 1 ? $this->translate("alt_numbers.$unit") : '').$pow; + } + } + $result = ''; + while ($number) { + $chunk = $number % 100; + $result = $this->translate("alt_numbers.$chunk").$result; + $number = floor($number / 100); + } + + return "$start$result"; + } + + if ($number > 9 && $this->translate('alt_numbers.9') !== 'alt_numbers.9') { + $result = ''; + while ($number) { + $chunk = $number % 10; + $result = $this->translate("alt_numbers.$chunk").$result; + $number = floor($number / 10); + } + + return $result; + } + + return (string) $number; + } + + /** + * Translate a time string from a locale to an other. + * + * @param string $timeString date/time/duration string to translate (may also contain English) + * @param string|null $from input locale of the $timeString parameter (`Carbon::getLocale()` by default) + * @param string|null $to output locale of the result returned (`"en"` by default) + * @param int $mode specify what to translate with options: + * - CarbonInterface::TRANSLATE_ALL (default) + * - CarbonInterface::TRANSLATE_MONTHS + * - CarbonInterface::TRANSLATE_DAYS + * - CarbonInterface::TRANSLATE_UNITS + * - CarbonInterface::TRANSLATE_MERIDIEM + * You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS + * + * @return string + */ + public static function translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL) + { + // Fallback source and destination locales + $from = $from ?: static::getLocale(); + $to = $to ?: 'en'; + + if ($from === $to) { + return $timeString; + } + + // Standardize apostrophe + $timeString = strtr($timeString, ['’' => "'"]); + + $fromTranslations = []; + $toTranslations = []; + + foreach (['from', 'to'] as $key) { + $language = $$key; + $translator = Translator::get($language); + $translations = $translator->getMessages(); + + if (!isset($translations[$language])) { + return $timeString; + } + + $translationKey = $key.'Translations'; + $messages = $translations[$language]; + $months = $messages['months'] ?? []; + $weekdays = $messages['weekdays'] ?? []; + $meridiem = $messages['meridiem'] ?? ['AM', 'PM']; + + if ($key === 'from') { + foreach (['months', 'weekdays'] as $variable) { + $list = $messages[$variable.'_standalone'] ?? null; + + if ($list) { + foreach ($$variable as $index => &$name) { + $name .= '|'.$messages[$variable.'_standalone'][$index]; + } + } + } + } + + $$translationKey = array_merge( + $mode & CarbonInterface::TRANSLATE_MONTHS ? static::getTranslationArray($months, 12, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_MONTHS ? static::getTranslationArray($messages['months_short'] ?? [], 12, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_DAYS ? static::getTranslationArray($weekdays, 7, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_DAYS ? static::getTranslationArray($messages['weekdays_short'] ?? [], 7, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_DIFF ? static::translateWordsByKeys([ + 'diff_now', + 'diff_today', + 'diff_yesterday', + 'diff_tomorrow', + 'diff_before_yesterday', + 'diff_after_tomorrow', + ], $messages, $key) : [], + $mode & CarbonInterface::TRANSLATE_UNITS ? static::translateWordsByKeys([ + 'year', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + ], $messages, $key) : [], + $mode & CarbonInterface::TRANSLATE_MERIDIEM ? array_map(function ($hour) use ($meridiem) { + if (\is_array($meridiem)) { + return $meridiem[$hour < 12 ? 0 : 1]; + } + + return $meridiem($hour, 0, false); + }, range(0, 23)) : [] + ); + } + + return substr(preg_replace_callback('/(?<=[\d\s+.\/,_-])('.implode('|', $fromTranslations).')(?=[\d\s+.\/,_-])/iu', function ($match) use ($fromTranslations, $toTranslations) { + [$chunk] = $match; + + foreach ($fromTranslations as $index => $word) { + if (preg_match("/^$word\$/iu", $chunk)) { + return $toTranslations[$index] ?? ''; + } + } + + return $chunk; // @codeCoverageIgnore + }, " $timeString "), 1, -1); + } + + /** + * Translate a time string from the current locale (`$date->locale()`) to an other. + * + * @param string $timeString time string to translate + * @param string|null $to output locale of the result returned ("en" by default) + * + * @return string + */ + public function translateTimeStringTo($timeString, $to = null) + { + return static::translateTimeString($timeString, $this->getTranslatorLocale(), $to); + } + + /** + * Get/set the locale for the current instance. + * + * @param string|null $locale + * @param string ...$fallbackLocales + * + * @return $this|string + */ + public function locale(string $locale = null, ...$fallbackLocales) + { + if ($locale === null) { + return $this->getTranslatorLocale(); + } + + if (!$this->localTranslator || $this->getTranslatorLocale($this->localTranslator) !== $locale) { + $translator = Translator::get($locale); + + if (!empty($fallbackLocales)) { + $translator->setFallbackLocales($fallbackLocales); + + foreach ($fallbackLocales as $fallbackLocale) { + $messages = Translator::get($fallbackLocale)->getMessages(); + + if (isset($messages[$fallbackLocale])) { + $translator->setMessages($fallbackLocale, $messages[$fallbackLocale]); + } + } + } + + $this->localTranslator = $translator; + } + + return $this; + } + + /** + * Get the current translator locale. + * + * @return string + */ + public static function getLocale() + { + return static::getLocaleAwareTranslator()->getLocale(); + } + + /** + * Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function setLocale($locale) + { + return static::getLocaleAwareTranslator()->setLocale($locale) !== false; + } + + /** + * Set the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @param string $locale + */ + public static function setFallbackLocale($locale) + { + $translator = static::getTranslator(); + + if (method_exists($translator, 'setFallbackLocales')) { + $translator->setFallbackLocales([$locale]); + + if ($translator instanceof Translator) { + $preferredLocale = $translator->getLocale(); + $translator->setMessages($preferredLocale, array_replace_recursive( + $translator->getMessages()[$locale] ?? [], + Translator::get($locale)->getMessages()[$locale] ?? [], + $translator->getMessages($preferredLocale) + )); + } + } + } + + /** + * Get the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @return string|null + */ + public static function getFallbackLocale() + { + $translator = static::getTranslator(); + + if (method_exists($translator, 'getFallbackLocales')) { + return $translator->getFallbackLocales()[0] ?? null; + } + + return null; + } + + /** + * Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * + * @param string $locale locale ex. en + * @param callable $func + * + * @return mixed + */ + public static function executeWithLocale($locale, $func) + { + $currentLocale = static::getLocale(); + $result = $func(static::setLocale($locale) ? static::getLocale() : false, static::translator()); + static::setLocale($currentLocale); + + return $result; + } + + /** + * Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasShortUnits($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return ($newLocale && (($y = static::translateWith($translator, 'y')) !== 'y' && $y !== static::translateWith($translator, 'year'))) || ( + ($y = static::translateWith($translator, 'd')) !== 'd' && + $y !== static::translateWith($translator, 'day') + ) || ( + ($y = static::translateWith($translator, 'h')) !== 'h' && + $y !== static::translateWith($translator, 'hour') + ); + }); + } + + /** + * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffSyntax($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + if (!$newLocale) { + return false; + } + + foreach (['ago', 'from_now', 'before', 'after'] as $key) { + if ($translator instanceof TranslatorBagInterface && + self::getFromCatalogue($translator, $translator->getCatalogue($newLocale), $key) instanceof Closure + ) { + continue; + } + + if ($translator->trans($key) === $key) { + return false; + } + } + + return true; + }); + } + + /** + * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffOneDayWords($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return $newLocale && + $translator->trans('diff_now') !== 'diff_now' && + $translator->trans('diff_yesterday') !== 'diff_yesterday' && + $translator->trans('diff_tomorrow') !== 'diff_tomorrow'; + }); + } + + /** + * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffTwoDayWords($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return $newLocale && + $translator->trans('diff_before_yesterday') !== 'diff_before_yesterday' && + $translator->trans('diff_after_tomorrow') !== 'diff_after_tomorrow'; + }); + } + + /** + * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasPeriodSyntax($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return $newLocale && + $translator->trans('period_recurrences') !== 'period_recurrences' && + $translator->trans('period_interval') !== 'period_interval' && + $translator->trans('period_start_date') !== 'period_start_date' && + $translator->trans('period_end_date') !== 'period_end_date'; + }); + } + + /** + * Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * + * @return array + */ + public static function getAvailableLocales() + { + $translator = static::getLocaleAwareTranslator(); + + return $translator instanceof Translator + ? $translator->getAvailableLocales() + : [$translator->getLocale()]; + } + + /** + * Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * + * @return Language[] + */ + public static function getAvailableLocalesInfo() + { + $languages = []; + foreach (static::getAvailableLocales() as $id) { + $languages[$id] = new Language($id); + } + + return $languages; + } + + /** + * Initialize the default translator instance if necessary. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + protected static function translator() + { + if (static::$translator === null) { + static::$translator = Translator::get(); + } + + return static::$translator; + } + + /** + * Get the locale of a given translator. + * + * If null or omitted, current local translator is used. + * If no local translator is in use, current global translator is used. + * + * @param null $translator + * + * @return string|null + */ + protected function getTranslatorLocale($translator = null): ?string + { + if (\func_num_args() === 0) { + $translator = $this->getLocalTranslator(); + } + + $translator = static::getLocaleAwareTranslator($translator); + + return $translator ? $translator->getLocale() : null; + } + + /** + * Throw an error if passed object is not LocaleAwareInterface. + * + * @param LocaleAwareInterface|null $translator + * + * @return LocaleAwareInterface|null + */ + protected static function getLocaleAwareTranslator($translator = null) + { + if (\func_num_args() === 0) { + $translator = static::translator(); + } + + if ($translator && !($translator instanceof LocaleAwareInterface || method_exists($translator, 'getLocale'))) { + throw new NotLocaleAwareException($translator); // @codeCoverageIgnore + } + + return $translator; + } + + /** + * @param mixed $translator + * @param \Symfony\Component\Translation\MessageCatalogueInterface $catalogue + * + * @return mixed + */ + private static function getFromCatalogue($translator, $catalogue, string $id, string $domain = 'messages') + { + return $translator instanceof TranslatorStrongTypeInterface + ? $translator->getFromCatalogue($catalogue, $id, $domain) // @codeCoverageIgnore + : $catalogue->get($id, $domain); + } + + /** + * Return the word cleaned from its translation codes. + * + * @param string $word + * + * @return string + */ + private static function cleanWordFromTranslationString($word) + { + $word = str_replace([':count', '%count', ':time'], '', $word); + $word = strtr($word, ['’' => "'"]); + $word = preg_replace('/({\d+(,(\d+|Inf))?}|[\[\]]\d+(,(\d+|Inf))?[\[\]])/', '', $word); + + return trim($word); + } + + /** + * Translate a list of words. + * + * @param string[] $keys keys to translate. + * @param string[] $messages messages bag handling translations. + * @param string $key 'to' (to get the translation) or 'from' (to get the detection RegExp pattern). + * + * @return string[] + */ + private static function translateWordsByKeys($keys, $messages, $key): array + { + return array_map(function ($wordKey) use ($messages, $key) { + $message = $key === 'from' && isset($messages[$wordKey.'_regexp']) + ? $messages[$wordKey.'_regexp'] + : ($messages[$wordKey] ?? null); + + if (!$message) { + return '>>DO NOT REPLACE<<'; + } + + $parts = explode('|', $message); + + return $key === 'to' + ? self::cleanWordFromTranslationString(end($parts)) + : '(?:'.implode('|', array_map([static::class, 'cleanWordFromTranslationString'], $parts)).')'; + }, $keys); + } + + /** + * Get an array of translations based on the current date. + * + * @param callable $translation + * @param int $length + * @param string $timeString + * + * @return string[] + */ + private static function getTranslationArray($translation, $length, $timeString): array + { + $filler = '>>DO NOT REPLACE<<'; + + if (\is_array($translation)) { + return array_pad($translation, $length, $filler); + } + + $list = []; + $date = static::now(); + + for ($i = 0; $i < $length; $i++) { + $list[] = $translation($date, $timeString, $i) ?? $filler; + } + + return $list; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php new file mode 100644 index 00000000000..92b6c9d866d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php @@ -0,0 +1,136 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait Macros. + * + * Allows users to register macros within the Carbon class. + */ +trait Macro +{ + use Mixin; + + /** + * The registered macros. + * + * @var array + */ + protected static $globalMacros = []; + + /** + * The registered generic macros. + * + * @var array + */ + protected static $globalGenericMacros = []; + + /** + * Register a custom macro. + * + * @example + * ``` + * $userSettings = [ + * 'locale' => 'pt', + * 'timezone' => 'America/Sao_Paulo', + * ]; + * Carbon::macro('userFormat', function () use ($userSettings) { + * return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar(); + * }); + * echo Carbon::yesterday()->hours(11)->userFormat(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro) + { + static::$globalMacros[$name] = $macro; + } + + /** + * Remove all macros and generic macros. + */ + public static function resetMacros() + { + static::$globalMacros = []; + static::$globalGenericMacros = []; + } + + /** + * Register a custom macro. + * + * @param object|callable $macro + * @param int $priority marco with higher priority is tried first + * + * @return void + */ + public static function genericMacro($macro, $priority = 0) + { + if (!isset(static::$globalGenericMacros[$priority])) { + static::$globalGenericMacros[$priority] = []; + krsort(static::$globalGenericMacros, SORT_NUMERIC); + } + + static::$globalGenericMacros[$priority][] = $macro; + } + + /** + * Checks if macro is registered globally. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$globalMacros[$name]); + } + + /** + * Get the raw callable macro registered globally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public static function getMacro($name) + { + return static::$globalMacros[$name] ?? null; + } + + /** + * Checks if macro is registered globally or locally. + * + * @param string $name + * + * @return bool + */ + public function hasLocalMacro($name) + { + return ($this->localMacros && isset($this->localMacros[$name])) || static::hasMacro($name); + } + + /** + * Get the raw callable macro registered globally or locally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public function getLocalMacro($name) + { + return ($this->localMacros ?? [])[$name] ?? static::getMacro($name); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php new file mode 100644 index 00000000000..88b251df480 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php @@ -0,0 +1,191 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Closure; +use Generator; +use ReflectionClass; +use ReflectionException; +use ReflectionMethod; +use Throwable; + +/** + * Trait Mixin. + * + * Allows mixing in entire classes with multiple macros. + */ +trait Mixin +{ + /** + * Stack of macro instance contexts. + * + * @var array + */ + protected static $macroContextStack = []; + + /** + * Mix another object into the class. + * + * @example + * ``` + * Carbon::mixin(new class { + * public function addMoon() { + * return function () { + * return $this->addDays(30); + * }; + * } + * public function subMoon() { + * return function () { + * return $this->subDays(30); + * }; + * } + * }); + * $fullMoon = Carbon::create('2018-12-22'); + * $nextFullMoon = $fullMoon->addMoon(); + * $blackMoon = Carbon::create('2019-01-06'); + * $previousBlackMoon = $blackMoon->subMoon(); + * echo "$nextFullMoon\n"; + * echo "$previousBlackMoon\n"; + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin) + { + \is_string($mixin) && trait_exists($mixin) + ? self::loadMixinTrait($mixin) + : self::loadMixinClass($mixin); + } + + /** + * @param object|string $mixin + * + * @throws ReflectionException + */ + private static function loadMixinClass($mixin) + { + $methods = (new ReflectionClass($mixin))->getMethods( + ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED + ); + + foreach ($methods as $method) { + if ($method->isConstructor() || $method->isDestructor()) { + continue; + } + + $method->setAccessible(true); + + static::macro($method->name, $method->invoke($mixin)); + } + } + + /** + * @param string $trait + */ + private static function loadMixinTrait($trait) + { + $context = eval(self::getAnonymousClassCodeForTrait($trait)); + $className = \get_class($context); + + foreach (self::getMixableMethods($context) as $name) { + $closureBase = Closure::fromCallable([$context, $name]); + + static::macro($name, function () use ($closureBase, $className) { + /** @phpstan-ignore-next-line */ + $context = isset($this) ? $this->cast($className) : new $className(); + + try { + // @ is required to handle error if not converted into exceptions + $closure = @$closureBase->bindTo($context); + } catch (Throwable $throwable) { // @codeCoverageIgnore + $closure = $closureBase; // @codeCoverageIgnore + } + + // in case of errors not converted into exceptions + $closure = $closure ?: $closureBase; + + return $closure(...\func_get_args()); + }); + } + } + + private static function getAnonymousClassCodeForTrait(string $trait) + { + return 'return new class() extends '.static::class.' {use '.$trait.';};'; + } + + private static function getMixableMethods(self $context): Generator + { + foreach (get_class_methods($context) as $name) { + if (method_exists(static::class, $name)) { + continue; + } + + yield $name; + } + } + + /** + * Stack a Carbon context from inside calls of self::this() and execute a given action. + * + * @param static|null $context + * @param callable $callable + * + * @throws Throwable + * + * @return mixed + */ + protected static function bindMacroContext($context, callable $callable) + { + static::$macroContextStack[] = $context; + $exception = null; + $result = null; + + try { + $result = $callable(); + } catch (Throwable $throwable) { + $exception = $throwable; + } + + array_pop(static::$macroContextStack); + + if ($exception) { + throw $exception; + } + + return $result; + } + + /** + * Return the current context from inside a macro callee or a null if static. + * + * @return static|null + */ + protected static function context() + { + return end(static::$macroContextStack) ?: null; + } + + /** + * Return the current context from inside a macro callee or a new one if static. + * + * @return static + */ + protected static function this() + { + return end(static::$macroContextStack) ?: new static(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php new file mode 100644 index 00000000000..164dbbd105d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php @@ -0,0 +1,472 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use ReturnTypeWillChange; + +/** + * Trait Modifiers. + * + * Returns dates relative to current date using modifier short-hand. + */ +trait Modifiers +{ + /** + * Midday/noon hour. + * + * @var int + */ + protected static $midDayAt = 12; + + /** + * get midday/noon hour + * + * @return int + */ + public static function getMidDayAt() + { + return static::$midDayAt; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * + * Set midday/noon hour + * + * @param int $hour midday hour + * + * @return void + */ + public static function setMidDayAt($hour) + { + static::$midDayAt = $hour; + } + + /** + * Modify to midday, default to self::$midDayAt + * + * @return static + */ + public function midDay() + { + return $this->setTime(static::$midDayAt, 0, 0, 0); + } + + /** + * Modify to the next occurrence of a given modifier such as a day of + * the week. If no modifier is provided, modify to the next occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static + */ + public function next($modifier = null) + { + if ($modifier === null) { + $modifier = $this->dayOfWeek; + } + + return $this->change( + 'next '.(\is_string($modifier) ? $modifier : static::$days[$modifier]) + ); + } + + /** + * Go forward or backward to the next week- or weekend-day. + * + * @param bool $weekday + * @param bool $forward + * + * @return static + */ + private function nextOrPreviousDay($weekday = true, $forward = true) + { + /** @var CarbonInterface $date */ + $date = $this; + $step = $forward ? 1 : -1; + + do { + $date = $date->addDays($step); + } while ($weekday ? $date->isWeekend() : $date->isWeekday()); + + return $date; + } + + /** + * Go forward to the next weekday. + * + * @return static + */ + public function nextWeekday() + { + return $this->nextOrPreviousDay(); + } + + /** + * Go backward to the previous weekday. + * + * @return static + */ + public function previousWeekday() + { + return $this->nextOrPreviousDay(true, false); + } + + /** + * Go forward to the next weekend day. + * + * @return static + */ + public function nextWeekendDay() + { + return $this->nextOrPreviousDay(false); + } + + /** + * Go backward to the previous weekend day. + * + * @return static + */ + public function previousWeekendDay() + { + return $this->nextOrPreviousDay(false, false); + } + + /** + * Modify to the previous occurrence of a given modifier such as a day of + * the week. If no dayOfWeek is provided, modify to the previous occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static + */ + public function previous($modifier = null) + { + if ($modifier === null) { + $modifier = $this->dayOfWeek; + } + + return $this->change( + 'last '.(\is_string($modifier) ? $modifier : static::$days[$modifier]) + ); + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * first day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function firstOfMonth($dayOfWeek = null) + { + $date = $this->startOfDay(); + + if ($dayOfWeek === null) { + return $date->day(1); + } + + return $date->modify('first '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * last day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function lastOfMonth($dayOfWeek = null) + { + $date = $this->startOfDay(); + + if ($dayOfWeek === null) { + return $date->day($date->daysInMonth); + } + + return $date->modify('last '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current month. If the calculated occurrence is outside the scope + * of the current month, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfMonth($nth, $dayOfWeek) + { + $date = $this->avoidMutation()->firstOfMonth(); + $check = $date->rawFormat('Y-m'); + $date = $date->modify('+'.$nth.' '.static::$days[$dayOfWeek]); + + return $date->rawFormat('Y-m') === $check ? $this->modify((string) $date) : false; + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * first day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfQuarter($dayOfWeek = null) + { + return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER - 2, 1)->firstOfMonth($dayOfWeek); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * last day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfQuarter($dayOfWeek = null) + { + return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER, 1)->lastOfMonth($dayOfWeek); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current quarter. If the calculated occurrence is outside the scope + * of the current quarter, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfQuarter($nth, $dayOfWeek) + { + $date = $this->avoidMutation()->day(1)->month($this->quarter * static::MONTHS_PER_QUARTER); + $lastMonth = $date->month; + $year = $date->year; + $date = $date->firstOfQuarter()->modify('+'.$nth.' '.static::$days[$dayOfWeek]); + + return ($lastMonth < $date->month || $year !== $date->year) ? false : $this->modify((string) $date); + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * first day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfYear($dayOfWeek = null) + { + return $this->month(1)->firstOfMonth($dayOfWeek); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * last day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfYear($dayOfWeek = null) + { + return $this->month(static::MONTHS_PER_YEAR)->lastOfMonth($dayOfWeek); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current year. If the calculated occurrence is outside the scope + * of the current year, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfYear($nth, $dayOfWeek) + { + $date = $this->avoidMutation()->firstOfYear()->modify('+'.$nth.' '.static::$days[$dayOfWeek]); + + return $this->year === $date->year ? $this->modify((string) $date) : false; + } + + /** + * Modify the current instance to the average of a given instance (default now) and the current instance + * (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date + * + * @return static + */ + public function average($date = null) + { + return $this->addRealMicroseconds((int) ($this->diffInRealMicroseconds($this->resolveCarbon($date), false) / 2)); + } + + /** + * Get the closest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function closest($date1, $date2) + { + return $this->diffInRealMicroseconds($date1) < $this->diffInRealMicroseconds($date2) ? $date1 : $date2; + } + + /** + * Get the farthest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function farthest($date1, $date2) + { + return $this->diffInRealMicroseconds($date1) > $this->diffInRealMicroseconds($date2) ? $date1 : $date2; + } + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function min($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->lt($date) ? $this : $date; + } + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see min() + * + * @return static + */ + public function minimum($date = null) + { + return $this->min($date); + } + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function max($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->gt($date) ? $this : $date; + } + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see max() + * + * @return static + */ + public function maximum($date = null) + { + return $this->max($date); + } + + /** + * Calls \DateTime::modify if mutable or \DateTimeImmutable::modify else. + * + * @see https://php.net/manual/en/datetime.modify.php + * + * @return static|false + */ + #[ReturnTypeWillChange] + public function modify($modify) + { + return parent::modify((string) $modify); + } + + /** + * Similar to native modify() method of DateTime but can handle more grammars. + * + * @example + * ``` + * echo Carbon::now()->change('next 2pm'); + * ``` + * + * @link https://php.net/manual/en/datetime.modify.php + * + * @param string $modifier + * + * @return static + */ + public function change($modifier) + { + return $this->modify(preg_replace_callback('/^(next|previous|last)\s+(\d{1,2}(h|am|pm|:\d{1,2}(:\d{1,2})?))$/i', function ($match) { + $match[2] = str_replace('h', ':00', $match[2]); + $test = $this->avoidMutation()->modify($match[2]); + $method = $match[1] === 'next' ? 'lt' : 'gt'; + $match[1] = $test->$method($this) ? $match[1].' day' : 'today'; + + return $match[1].' '.$match[2]; + }, strtr(trim($modifier), [ + ' at ' => ' ', + 'just now' => 'now', + 'after tomorrow' => 'tomorrow +1 day', + 'before yesterday' => 'yesterday -1 day', + ]))); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php new file mode 100644 index 00000000000..561c867d0f1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; + +/** + * Trait Mutability. + * + * Utils to know if the current object is mutable or immutable and convert it. + */ +trait Mutability +{ + use Cast; + + /** + * Returns true if the current class/instance is mutable. + * + * @return bool + */ + public static function isMutable() + { + return false; + } + + /** + * Returns true if the current class/instance is immutable. + * + * @return bool + */ + public static function isImmutable() + { + return !static::isMutable(); + } + + /** + * Return a mutable copy of the instance. + * + * @return Carbon + */ + public function toMutable() + { + /** @var Carbon $date */ + $date = $this->cast(Carbon::class); + + return $date; + } + + /** + * Return a immutable copy of the instance. + * + * @return CarbonImmutable + */ + public function toImmutable() + { + /** @var CarbonImmutable $date */ + $date = $this->cast(CarbonImmutable::class); + + return $date; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php new file mode 100644 index 00000000000..c77a102444e --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +trait ObjectInitialisation +{ + /** + * True when parent::__construct has been called. + * + * @var string + */ + protected $constructedObjectId; +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Options.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Options.php new file mode 100644 index 00000000000..0ddee8dd639 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Options.php @@ -0,0 +1,471 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use DateTimeInterface; +use Throwable; + +/** + * Trait Options. + * + * Embed base methods to change settings of Carbon classes. + * + * Depends on the following methods: + * + * @method \Carbon\Carbon|\Carbon\CarbonImmutable shiftTimezone($timezone) Set the timezone + */ +trait Options +{ + use Localization; + + /** + * Customizable PHP_INT_SIZE override. + * + * @var int + */ + public static $PHPIntSize = PHP_INT_SIZE; + + /** + * First day of week. + * + * @var int|string + */ + protected static $weekStartsAt = CarbonInterface::MONDAY; + + /** + * Last day of week. + * + * @var int|string + */ + protected static $weekEndsAt = CarbonInterface::SUNDAY; + + /** + * Days of weekend. + * + * @var array + */ + protected static $weekendDays = [ + CarbonInterface::SATURDAY, + CarbonInterface::SUNDAY, + ]; + + /** + * Format regex patterns. + * + * @var array + */ + protected static $regexFormats = [ + 'd' => '(3[01]|[12][0-9]|0[1-9])', + 'D' => '(Sun|Mon|Tue|Wed|Thu|Fri|Sat)', + 'j' => '([123][0-9]|[1-9])', + 'l' => '([a-zA-Z]{2,})', + 'N' => '([1-7])', + 'S' => '(st|nd|rd|th)', + 'w' => '([0-6])', + 'z' => '(36[0-5]|3[0-5][0-9]|[12][0-9]{2}|[1-9]?[0-9])', + 'W' => '(5[012]|[1-4][0-9]|0?[1-9])', + 'F' => '([a-zA-Z]{2,})', + 'm' => '(1[012]|0[1-9])', + 'M' => '([a-zA-Z]{3})', + 'n' => '(1[012]|[1-9])', + 't' => '(2[89]|3[01])', + 'L' => '(0|1)', + 'o' => '([1-9][0-9]{0,4})', + 'Y' => '([1-9]?[0-9]{4})', + 'y' => '([0-9]{2})', + 'a' => '(am|pm)', + 'A' => '(AM|PM)', + 'B' => '([0-9]{3})', + 'g' => '(1[012]|[1-9])', + 'G' => '(2[0-3]|1?[0-9])', + 'h' => '(1[012]|0[1-9])', + 'H' => '(2[0-3]|[01][0-9])', + 'i' => '([0-5][0-9])', + 's' => '([0-5][0-9])', + 'u' => '([0-9]{1,6})', + 'v' => '([0-9]{1,3})', + 'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)', + 'I' => '(0|1)', + 'O' => '([+-](1[012]|0[0-9])[0134][05])', + 'P' => '([+-](1[012]|0[0-9]):[0134][05])', + 'p' => '(Z|[+-](1[012]|0[0-9]):[0134][05])', + 'T' => '([a-zA-Z]{1,5})', + 'Z' => '(-?[1-5]?[0-9]{1,4})', + 'U' => '([0-9]*)', + + // The formats below are combinations of the above formats. + 'c' => '(([1-9]?[0-9]{4})-(1[012]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])[+-](1[012]|0[0-9]):([0134][05]))', // Y-m-dTH:i:sP + 'r' => '(([a-zA-Z]{3}), ([123][0-9]|0[1-9]) ([a-zA-Z]{3}) ([1-9]?[0-9]{4}) (2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]) [+-](1[012]|0[0-9])([0134][05]))', // D, d M Y H:i:s O + ]; + + /** + * Format modifiers (such as available in createFromFormat) regex patterns. + * + * @var array + */ + protected static $regexFormatModifiers = [ + '*' => '.+', + ' ' => '[ ]', + '#' => '[;:\\/.,()-]', + '?' => '([^a]|[a])', + '!' => '', + '|' => '', + '+' => '', + ]; + + /** + * Indicates if months should be calculated with overflow. + * Global setting. + * + * @var bool + */ + protected static $monthsOverflow = true; + + /** + * Indicates if years should be calculated with overflow. + * Global setting. + * + * @var bool + */ + protected static $yearsOverflow = true; + + /** + * Indicates if the strict mode is in use. + * Global setting. + * + * @var bool + */ + protected static $strictModeEnabled = true; + + /** + * Function to call instead of format. + * + * @var string|callable|null + */ + protected static $formatFunction; + + /** + * Function to call instead of createFromFormat. + * + * @var string|callable|null + */ + protected static $createFromFormatFunction; + + /** + * Function to call instead of parse. + * + * @var string|callable|null + */ + protected static $parseFunction; + + /** + * Indicates if months should be calculated with overflow. + * Specific setting. + * + * @var bool|null + */ + protected $localMonthsOverflow; + + /** + * Indicates if years should be calculated with overflow. + * Specific setting. + * + * @var bool|null + */ + protected $localYearsOverflow; + + /** + * Indicates if the strict mode is in use. + * Specific setting. + * + * @var bool|null + */ + protected $localStrictModeEnabled; + + /** + * Options for diffForHumans and forHumans methods. + * + * @var bool|null + */ + protected $localHumanDiffOptions; + + /** + * Format to use on string cast. + * + * @var string|null + */ + protected $localToStringFormat; + + /** + * Format to use on JSON serialization. + * + * @var string|null + */ + protected $localSerializer; + + /** + * Instance-specific macros. + * + * @var array|null + */ + protected $localMacros; + + /** + * Instance-specific generic macros. + * + * @var array|null + */ + protected $localGenericMacros; + + /** + * Function to call instead of format. + * + * @var string|callable|null + */ + protected $localFormatFunction; + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * Enable the strict mode (or disable with passing false). + * + * @param bool $strictModeEnabled + */ + public static function useStrictMode($strictModeEnabled = true) + { + static::$strictModeEnabled = $strictModeEnabled; + } + + /** + * Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * + * @return bool + */ + public static function isStrictModeEnabled() + { + return static::$strictModeEnabled; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if months should be calculated with overflow. + * + * @param bool $monthsOverflow + * + * @return void + */ + public static function useMonthsOverflow($monthsOverflow = true) + { + static::$monthsOverflow = $monthsOverflow; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetMonthsOverflow() + { + static::$monthsOverflow = true; + } + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowMonths() + { + return static::$monthsOverflow; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if years should be calculated with overflow. + * + * @param bool $yearsOverflow + * + * @return void + */ + public static function useYearsOverflow($yearsOverflow = true) + { + static::$yearsOverflow = $yearsOverflow; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetYearsOverflow() + { + static::$yearsOverflow = true; + } + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowYears() + { + return static::$yearsOverflow; + } + + /** + * Set specific options. + * - strictMode: true|false|null + * - monthOverflow: true|false|null + * - yearOverflow: true|false|null + * - humanDiffOptions: int|null + * - toStringFormat: string|Closure|null + * - toJsonFormat: string|Closure|null + * - locale: string|null + * - timezone: \DateTimeZone|string|int|null + * - macros: array|null + * - genericMacros: array|null + * + * @param array $settings + * + * @return $this|static + */ + public function settings(array $settings) + { + $this->localStrictModeEnabled = $settings['strictMode'] ?? null; + $this->localMonthsOverflow = $settings['monthOverflow'] ?? null; + $this->localYearsOverflow = $settings['yearOverflow'] ?? null; + $this->localHumanDiffOptions = $settings['humanDiffOptions'] ?? null; + $this->localToStringFormat = $settings['toStringFormat'] ?? null; + $this->localSerializer = $settings['toJsonFormat'] ?? null; + $this->localMacros = $settings['macros'] ?? null; + $this->localGenericMacros = $settings['genericMacros'] ?? null; + $this->localFormatFunction = $settings['formatFunction'] ?? null; + + if (isset($settings['locale'])) { + $locales = $settings['locale']; + + if (!\is_array($locales)) { + $locales = [$locales]; + } + + $this->locale(...$locales); + } + + if (isset($settings['innerTimezone'])) { + return $this->setTimezone($settings['innerTimezone']); + } + + if (isset($settings['timezone'])) { + return $this->shiftTimezone($settings['timezone']); + } + + return $this; + } + + /** + * Returns current local settings. + * + * @return array + */ + public function getSettings() + { + $settings = []; + $map = [ + 'localStrictModeEnabled' => 'strictMode', + 'localMonthsOverflow' => 'monthOverflow', + 'localYearsOverflow' => 'yearOverflow', + 'localHumanDiffOptions' => 'humanDiffOptions', + 'localToStringFormat' => 'toStringFormat', + 'localSerializer' => 'toJsonFormat', + 'localMacros' => 'macros', + 'localGenericMacros' => 'genericMacros', + 'locale' => 'locale', + 'tzName' => 'timezone', + 'localFormatFunction' => 'formatFunction', + ]; + + foreach ($map as $property => $key) { + $value = $this->$property ?? null; + + if ($value !== null) { + $settings[$key] = $value; + } + } + + return $settings; + } + + /** + * Show truthy properties on var_dump(). + * + * @return array + */ + public function __debugInfo() + { + $infos = array_filter(get_object_vars($this), function ($var) { + return $var; + }); + + foreach (['dumpProperties', 'constructedObjectId'] as $property) { + if (isset($infos[$property])) { + unset($infos[$property]); + } + } + + $this->addExtraDebugInfos($infos); + + return $infos; + } + + protected function addExtraDebugInfos(&$infos): void + { + if ($this instanceof DateTimeInterface) { + try { + if (!isset($infos['date'])) { + $infos['date'] = $this->format(CarbonInterface::MOCK_DATETIME_FORMAT); + } + + if (!isset($infos['timezone'])) { + $infos['timezone'] = $this->tzName; + } + } catch (Throwable $exception) { + // noop + } + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php new file mode 100644 index 00000000000..c991a9b0aa9 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php @@ -0,0 +1,239 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\Exceptions\UnknownUnitException; + +/** + * Trait Rounding. + * + * Round, ceil, floor units. + * + * Depends on the following methods: + * + * @method static copy() + * @method static startOfWeek(int $weekStartsAt = null) + */ +trait Rounding +{ + use IntervalRounding; + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int $precision + * @param string $function + * + * @return CarbonInterface + */ + public function roundUnit($unit, $precision = 1, $function = 'round') + { + $metaUnits = [ + // @call roundUnit + 'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'], + // @call roundUnit + 'century' => [static::YEARS_PER_CENTURY, 'year'], + // @call roundUnit + 'decade' => [static::YEARS_PER_DECADE, 'year'], + // @call roundUnit + 'quarter' => [static::MONTHS_PER_QUARTER, 'month'], + // @call roundUnit + 'millisecond' => [1000, 'microsecond'], + ]; + $normalizedUnit = static::singularUnit($unit); + $ranges = array_merge(static::getRangesByUnit($this->daysInMonth), [ + // @call roundUnit + 'microsecond' => [0, 999999], + ]); + $factor = 1; + $initialMonth = $this->month; + + if ($normalizedUnit === 'week') { + $normalizedUnit = 'day'; + $precision *= static::DAYS_PER_WEEK; + } + + if (isset($metaUnits[$normalizedUnit])) { + [$factor, $normalizedUnit] = $metaUnits[$normalizedUnit]; + } + + $precision *= $factor; + + if (!isset($ranges[$normalizedUnit])) { + throw new UnknownUnitException($unit); + } + + $found = false; + $fraction = 0; + $arguments = null; + $factor = $this->year < 0 ? -1 : 1; + $changes = []; + + foreach ($ranges as $unit => [$minimum, $maximum]) { + if ($normalizedUnit === $unit) { + $arguments = [$this->$unit, $minimum]; + $fraction = $precision - floor($precision); + $found = true; + + continue; + } + + if ($found) { + $delta = $maximum + 1 - $minimum; + $factor /= $delta; + $fraction *= $delta; + $arguments[0] += ($this->$unit - $minimum) * $factor; + $changes[$unit] = round( + $minimum + ($fraction ? $fraction * $function(($this->$unit - $minimum) / $fraction) : 0) + ); + + // Cannot use modulo as it lose double precision + while ($changes[$unit] >= $delta) { + $changes[$unit] -= $delta; + } + + $fraction -= floor($fraction); + } + } + + [$value, $minimum] = $arguments; + $normalizedValue = floor($function(($value - $minimum) / $precision) * $precision + $minimum); + + /** @var CarbonInterface $result */ + $result = $this->$normalizedUnit($normalizedValue); + + foreach ($changes as $unit => $value) { + $result = $result->$unit($value); + } + + return $normalizedUnit === 'month' && $precision <= 1 && abs($result->month - $initialMonth) === 2 + // Re-run the change in case an overflow occurred + ? $result->$normalizedUnit($normalizedValue) + : $result; + } + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function floorUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'floor'); + } + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function ceilUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'ceil'); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return CarbonInterface + */ + public function round($precision = 1, $function = 'round') + { + return $this->roundWith($precision, $function); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function floor($precision = 1) + { + return $this->round($precision, 'floor'); + } + + /** + * Ceil the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function ceil($precision = 1) + { + return $this->round($precision, 'ceil'); + } + + /** + * Round the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function roundWeek($weekStartsAt = null) + { + return $this->closest( + $this->avoidMutation()->floorWeek($weekStartsAt), + $this->avoidMutation()->ceilWeek($weekStartsAt) + ); + } + + /** + * Truncate the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function floorWeek($weekStartsAt = null) + { + return $this->startOfWeek($weekStartsAt); + } + + /** + * Ceil the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function ceilWeek($weekStartsAt = null) + { + if ($this->isMutable()) { + $startOfWeek = $this->avoidMutation()->startOfWeek($weekStartsAt); + + return $startOfWeek != $this ? + $this->startOfWeek($weekStartsAt)->addWeek() : + $this; + } + + $startOfWeek = $this->startOfWeek($weekStartsAt); + + return $startOfWeek != $this ? + $startOfWeek->addWeek() : + $this->avoidMutation(); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php new file mode 100644 index 00000000000..9e86bd3e9b7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php @@ -0,0 +1,304 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Exceptions\InvalidFormatException; +use ReturnTypeWillChange; +use Throwable; + +/** + * Trait Serialization. + * + * Serialization and JSON stuff. + * + * Depends on the following properties: + * + * @property int $year + * @property int $month + * @property int $daysInMonth + * @property int $quarter + * + * Depends on the following methods: + * + * @method string|static locale(string $locale = null, string ...$fallbackLocales) + * @method string toJSON() + */ +trait Serialization +{ + use ObjectInitialisation; + + /** + * The custom Carbon JSON serializer. + * + * @var callable|null + */ + protected static $serializer; + + /** + * List of key to use for dump/serialization. + * + * @var string[] + */ + protected $dumpProperties = ['date', 'timezone_type', 'timezone']; + + /** + * Locale to dump comes here before serialization. + * + * @var string|null + */ + protected $dumpLocale; + + /** + * Embed date properties to dump in a dedicated variables so it won't overlap native + * DateTime ones. + * + * @var array|null + */ + protected $dumpDateProperties; + + /** + * Return a serialized string of the instance. + * + * @return string + */ + public function serialize() + { + return serialize($this); + } + + /** + * Create an instance from a serialized string. + * + * @param string $value + * + * @throws InvalidFormatException + * + * @return static + */ + public static function fromSerialized($value) + { + $instance = @unserialize((string) $value); + + if (!$instance instanceof static) { + throw new InvalidFormatException("Invalid serialized value: $value"); + } + + return $instance; + } + + /** + * The __set_state handler. + * + * @param string|array $dump + * + * @return static + */ + #[ReturnTypeWillChange] + public static function __set_state($dump) + { + if (\is_string($dump)) { + return static::parse($dump); + } + + /** @var \DateTimeInterface $date */ + $date = get_parent_class(static::class) && method_exists(parent::class, '__set_state') + ? parent::__set_state((array) $dump) + : (object) $dump; + + return static::instance($date); + } + + /** + * Returns the list of properties to dump on serialize() called on. + * + * @return array + */ + public function __sleep() + { + $properties = $this->getSleepProperties(); + + if ($this->localTranslator ?? null) { + $properties[] = 'dumpLocale'; + $this->dumpLocale = $this->locale ?? null; + } + + return $properties; + } + + public function __serialize(): array + { + if (isset($this->timezone_type)) { + return [ + 'date' => $this->date ?? null, + 'timezone_type' => $this->timezone_type, + 'timezone' => $this->timezone ?? null, + ]; + } + + $timezone = $this->getTimezone(); + $export = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone_type' => $timezone->getType(), + 'timezone' => $timezone->getName(), + ]; + + // @codeCoverageIgnoreStart + if (\extension_loaded('msgpack') && isset($this->constructedObjectId)) { + $export['dumpDateProperties'] = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone' => serialize($this->timezone ?? null), + ]; + } + // @codeCoverageIgnoreEnd + + if ($this->localTranslator ?? null) { + $export['dumpLocale'] = $this->locale ?? null; + } + + return $export; + } + + /** + * Set locale if specified on unserialize() called. + * + * @return void + */ + #[ReturnTypeWillChange] + public function __wakeup() + { + if (parent::class && method_exists(parent::class, '__wakeup')) { + // @codeCoverageIgnoreStart + try { + parent::__wakeup(); + } catch (Throwable $exception) { + try { + // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. + ['date' => $date, 'timezone' => $timezone] = $this->dumpDateProperties; + parent::__construct($date, unserialize($timezone)); + } catch (Throwable $ignoredException) { + throw $exception; + } + } + // @codeCoverageIgnoreEnd + } + + $this->constructedObjectId = spl_object_hash($this); + + if (isset($this->dumpLocale)) { + $this->locale($this->dumpLocale); + $this->dumpLocale = null; + } + + $this->cleanupDumpProperties(); + } + + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + try { + $this->__construct($data['date'] ?? null, $data['timezone'] ?? null); + } catch (Throwable $exception) { + if (!isset($data['dumpDateProperties']['date'], $data['dumpDateProperties']['timezone'])) { + throw $exception; + } + + try { + // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. + ['date' => $date, 'timezone' => $timezone] = $data['dumpDateProperties']; + $this->__construct($date, unserialize($timezone)); + } catch (Throwable $ignoredException) { + throw $exception; + } + } + // @codeCoverageIgnoreEnd + + if (isset($data['dumpLocale'])) { + $this->locale($data['dumpLocale']); + } + } + + /** + * Prepare the object for JSON serialization. + * + * @return array|string + */ + #[ReturnTypeWillChange] + public function jsonSerialize() + { + $serializer = $this->localSerializer ?? static::$serializer; + + if ($serializer) { + return \is_string($serializer) + ? $this->rawFormat($serializer) + : $serializer($this); + } + + return $this->toJSON(); + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * + * JSON serialize all Carbon instances using the given callback. + * + * @param callable $callback + * + * @return void + */ + public static function serializeUsing($callback) + { + static::$serializer = $callback; + } + + /** + * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested. + * foreach ($date as $_) {} + * serializer($date) + * var_export($date) + * get_object_vars($date) + */ + public function cleanupDumpProperties() + { + if (PHP_VERSION < 8.2) { + foreach ($this->dumpProperties as $property) { + if (isset($this->$property)) { + unset($this->$property); + } + } + } + + return $this; + } + + private function getSleepProperties(): array + { + $properties = $this->dumpProperties; + + // @codeCoverageIgnoreStart + if (!\extension_loaded('msgpack')) { + return $properties; + } + + if (isset($this->constructedObjectId)) { + $this->dumpDateProperties = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone' => serialize($this->timezone ?? null), + ]; + + $properties[] = 'dumpDateProperties'; + } + + return $properties; + // @codeCoverageIgnoreEnd + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Test.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Test.php new file mode 100644 index 00000000000..e0c9e80683f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Test.php @@ -0,0 +1,226 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\CarbonTimeZone; +use Closure; +use DateTimeImmutable; +use DateTimeInterface; +use InvalidArgumentException; +use Throwable; + +trait Test +{ + /////////////////////////////////////////////////////////////////// + ///////////////////////// TESTING AIDS //////////////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * A test Carbon instance to be returned when now instances are created. + * + * @var Closure|static|null + */ + protected static $testNow; + + /** + * The timezone to resto to when clearing the time mock. + * + * @var string|null + */ + protected static $testDefaultTimezone; + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNow($testNow = null) + { + static::$testNow = $testNow instanceof self || $testNow instanceof Closure + ? $testNow + : static::make($testNow); + } + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNowAndTimezone($testNow = null, $tz = null) + { + if ($testNow) { + self::$testDefaultTimezone = self::$testDefaultTimezone ?? date_default_timezone_get(); + } + + $useDateInstanceTimezone = $testNow instanceof DateTimeInterface; + + if ($useDateInstanceTimezone) { + self::setDefaultTimezone($testNow->getTimezone()->getName(), $testNow); + } + + static::setTestNow($testNow); + + if (!$useDateInstanceTimezone) { + $now = static::getMockedTestNow(\func_num_args() === 1 ? null : $tz); + $tzName = $now ? $now->tzName : null; + self::setDefaultTimezone($tzName ?? self::$testDefaultTimezone ?? 'UTC', $now); + } + + if (!$testNow) { + self::$testDefaultTimezone = null; + } + } + + /** + * Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + * @param Closure|null $callback + * + * @return mixed + */ + public static function withTestNow($testNow = null, $callback = null) + { + static::setTestNow($testNow); + + try { + $result = $callback(); + } finally { + static::setTestNow(); + } + + return $result; + } + + /** + * Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * + * @return Closure|static the current instance used for testing + */ + public static function getTestNow() + { + return static::$testNow; + } + + /** + * Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * + * @return bool true if there is a test instance, otherwise false + */ + public static function hasTestNow() + { + return static::getTestNow() !== null; + } + + /** + * Get the mocked date passed in setTestNow() and if it's a Closure, execute it. + * + * @param string|\DateTimeZone $tz + * + * @return \Carbon\CarbonImmutable|\Carbon\Carbon|null + */ + protected static function getMockedTestNow($tz) + { + $testNow = static::getTestNow(); + + if ($testNow instanceof Closure) { + $realNow = new DateTimeImmutable('now'); + $testNow = $testNow(static::parse( + $realNow->format('Y-m-d H:i:s.u'), + $tz ?: $realNow->getTimezone() + )); + } + /* @var \Carbon\CarbonImmutable|\Carbon\Carbon|null $testNow */ + + return $testNow instanceof CarbonInterface + ? $testNow->avoidMutation()->tz($tz) + : $testNow; + } + + protected static function mockConstructorParameters(&$time, $tz) + { + /** @var \Carbon\CarbonImmutable|\Carbon\Carbon $testInstance */ + $testInstance = clone static::getMockedTestNow($tz); + + if (static::hasRelativeKeywords($time)) { + $testInstance = $testInstance->modify($time); + } + + $time = $testInstance instanceof self + ? $testInstance->rawFormat(static::MOCK_DATETIME_FORMAT) + : $testInstance->format(static::MOCK_DATETIME_FORMAT); + } + + private static function setDefaultTimezone($timezone, DateTimeInterface $date = null) + { + $previous = null; + $success = false; + + try { + $success = date_default_timezone_set($timezone); + } catch (Throwable $exception) { + $previous = $exception; + } + + if (!$success) { + $suggestion = @CarbonTimeZone::create($timezone)->toRegionName($date); + + throw new InvalidArgumentException( + "Timezone ID '$timezone' is invalid". + ($suggestion && $suggestion !== $timezone ? ", did you mean '$suggestion'?" : '.')."\n". + "It must be one of the IDs from DateTimeZone::listIdentifiers(),\n". + 'For the record, hours/minutes offset are relevant only for a particular moment, '. + 'but not as a default timezone.', + 0, + $previous + ); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php new file mode 100644 index 00000000000..88a465c938c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php @@ -0,0 +1,198 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait Timestamp. + */ +trait Timestamp +{ + /** + * Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestamp($timestamp, $tz = null) + { + return static::createFromTimestampUTC($timestamp)->setTimezone($tz); + } + + /** + * Create a Carbon instance from an timestamp keeping the timezone to UTC. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampUTC($timestamp) + { + [$integer, $decimal] = self::getIntegerAndDecimalParts($timestamp); + $delta = floor($decimal / static::MICROSECONDS_PER_SECOND); + $integer += $delta; + $decimal -= $delta * static::MICROSECONDS_PER_SECOND; + $decimal = str_pad((string) $decimal, 6, '0', STR_PAD_LEFT); + + return static::rawCreateFromFormat('U u', "$integer $decimal"); + } + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampMsUTC($timestamp) + { + [$milliseconds, $microseconds] = self::getIntegerAndDecimalParts($timestamp, 3); + $sign = $milliseconds < 0 || ($milliseconds === 0.0 && $microseconds < 0) ? -1 : 1; + $milliseconds = abs($milliseconds); + $microseconds = $sign * abs($microseconds) + static::MICROSECONDS_PER_MILLISECOND * ($milliseconds % static::MILLISECONDS_PER_SECOND); + $seconds = $sign * floor($milliseconds / static::MILLISECONDS_PER_SECOND); + $delta = floor($microseconds / static::MICROSECONDS_PER_SECOND); + $seconds += $delta; + $microseconds -= $delta * static::MICROSECONDS_PER_SECOND; + $microseconds = str_pad($microseconds, 6, '0', STR_PAD_LEFT); + + return static::rawCreateFromFormat('U u', "$seconds $microseconds"); + } + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestampMs($timestamp, $tz = null) + { + return static::createFromTimestampMsUTC($timestamp) + ->setTimezone($tz); + } + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + public function timestamp($unixTimestamp) + { + return $this->setTimestamp($unixTimestamp); + } + + /** + * Returns a timestamp rounded with the given precision (6 by default). + * + * @example getPreciseTimestamp() 1532087464437474 (microsecond maximum precision) + * @example getPreciseTimestamp(6) 1532087464437474 + * @example getPreciseTimestamp(5) 153208746443747 (1/100000 second precision) + * @example getPreciseTimestamp(4) 15320874644375 (1/10000 second precision) + * @example getPreciseTimestamp(3) 1532087464437 (millisecond precision) + * @example getPreciseTimestamp(2) 153208746444 (1/100 second precision) + * @example getPreciseTimestamp(1) 15320874644 (1/10 second precision) + * @example getPreciseTimestamp(0) 1532087464 (second precision) + * @example getPreciseTimestamp(-1) 153208746 (10 second precision) + * @example getPreciseTimestamp(-2) 15320875 (100 second precision) + * + * @param int $precision + * + * @return float + */ + public function getPreciseTimestamp($precision = 6) + { + return round(((float) $this->rawFormat('Uu')) / pow(10, 6 - $precision)); + } + + /** + * Returns the milliseconds timestamps used amongst other by Date javascript objects. + * + * @return float + */ + public function valueOf() + { + return $this->getPreciseTimestamp(3); + } + + /** + * Returns the timestamp with millisecond precision. + * + * @return int + */ + public function getTimestampMs() + { + return (int) $this->getPreciseTimestamp(3); + } + + /** + * @alias getTimestamp + * + * Returns the UNIX timestamp for the current date. + * + * @return int + */ + public function unix() + { + return $this->getTimestamp(); + } + + /** + * Return an array with integer part digits and decimals digits split from one or more positive numbers + * (such as timestamps) as string with the given number of decimals (6 by default). + * + * By splitting integer and decimal, this method obtain a better precision than + * number_format when the input is a string. + * + * @param float|int|string $numbers one or more numbers + * @param int $decimals number of decimals precision (6 by default) + * + * @return array 0-index is integer part, 1-index is decimal part digits + */ + private static function getIntegerAndDecimalParts($numbers, $decimals = 6) + { + if (\is_int($numbers) || \is_float($numbers)) { + $numbers = number_format($numbers, $decimals, '.', ''); + } + + $sign = str_starts_with($numbers, '-') ? -1 : 1; + $integer = 0; + $decimal = 0; + + foreach (preg_split('`[^\d.]+`', $numbers) as $chunk) { + [$integerPart, $decimalPart] = explode('.', "$chunk."); + + $integer += (int) $integerPart; + $decimal += (float) ("0.$decimalPart"); + } + + $overflow = floor($decimal); + $integer += $overflow; + $decimal -= $overflow; + + return [$sign * $integer, $decimal === 0.0 ? 0.0 : $sign * round($decimal * pow(10, $decimals))]; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Units.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Units.php new file mode 100644 index 00000000000..4fc7d23305b --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Units.php @@ -0,0 +1,404 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonConverterInterface; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\Exceptions\UnitException; +use Closure; +use DateInterval; +use ReturnTypeWillChange; + +/** + * Trait Units. + * + * Add, subtract and set units. + */ +trait Units +{ + /** + * Add seconds to the instance using timestamp. Positive $value travels + * forward while negative $value travels into the past. + * + * @param string $unit + * @param int $value + * + * @return static + */ + public function addRealUnit($unit, $value = 1) + { + switch ($unit) { + // @call addRealUnit + case 'micro': + + // @call addRealUnit + case 'microsecond': + /* @var CarbonInterface $this */ + $diff = $this->microsecond + $value; + $time = $this->getTimestamp(); + $seconds = (int) floor($diff / static::MICROSECONDS_PER_SECOND); + $time += $seconds; + $diff -= $seconds * static::MICROSECONDS_PER_SECOND; + $microtime = str_pad((string) $diff, 6, '0', STR_PAD_LEFT); + $tz = $this->tz; + + return $this->tz('UTC')->modify("@$time.$microtime")->tz($tz); + + // @call addRealUnit + case 'milli': + // @call addRealUnit + case 'millisecond': + return $this->addRealUnit('microsecond', $value * static::MICROSECONDS_PER_MILLISECOND); + + // @call addRealUnit + case 'second': + break; + + // @call addRealUnit + case 'minute': + $value *= static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'hour': + $value *= static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'day': + $value *= static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'week': + $value *= static::DAYS_PER_WEEK * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'month': + $value *= 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'quarter': + $value *= static::MONTHS_PER_QUARTER * 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'year': + $value *= 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'decade': + $value *= static::YEARS_PER_DECADE * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'century': + $value *= static::YEARS_PER_CENTURY * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'millennium': + $value *= static::YEARS_PER_MILLENNIUM * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + default: + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new UnitException("Invalid unit for real timestamp add/sub: '$unit'"); + } + + return $this; + } + + /* @var CarbonInterface $this */ + return $this->setTimestamp((int) ($this->getTimestamp() + $value)); + } + + public function subRealUnit($unit, $value = 1) + { + return $this->addRealUnit($unit, -$value); + } + + /** + * Returns true if a property can be changed via setter. + * + * @param string $unit + * + * @return bool + */ + public static function isModifiableUnit($unit) + { + static $modifiableUnits = [ + // @call addUnit + 'millennium', + // @call addUnit + 'century', + // @call addUnit + 'decade', + // @call addUnit + 'quarter', + // @call addUnit + 'week', + // @call addUnit + 'weekday', + ]; + + return \in_array($unit, $modifiableUnits, true) || \in_array($unit, static::$units, true); + } + + /** + * Call native PHP DateTime/DateTimeImmutable add() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawAdd(DateInterval $interval) + { + return parent::add($interval); + } + + /** + * Add given units or interval to the current instance. + * + * @example $date->add('hour', 3) + * @example $date->add(15, 'days') + * @example $date->add(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function add($unit, $value = 1, $overflow = null) + { + if (\is_string($unit) && \func_num_args() === 1) { + $unit = CarbonInterval::make($unit); + } + + if ($unit instanceof CarbonConverterInterface) { + return $this->resolveCarbon($unit->convertDate($this, false)); + } + + if ($unit instanceof Closure) { + return $this->resolveCarbon($unit($this, false)); + } + + if ($unit instanceof DateInterval) { + return parent::add($unit); + } + + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + return $this->addUnit($unit, $value, $overflow); + } + + /** + * Add given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function addUnit($unit, $value = 1, $overflow = null) + { + $date = $this; + + if (!is_numeric($value) || !(float) $value) { + return $date->isMutable() ? $date : $date->avoidMutation(); + } + + $unit = self::singularUnit($unit); + $metaUnits = [ + 'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'], + 'century' => [static::YEARS_PER_CENTURY, 'year'], + 'decade' => [static::YEARS_PER_DECADE, 'year'], + 'quarter' => [static::MONTHS_PER_QUARTER, 'month'], + ]; + + if (isset($metaUnits[$unit])) { + [$factor, $unit] = $metaUnits[$unit]; + $value *= $factor; + } + + if ($unit === 'weekday') { + $weekendDays = static::getWeekendDays(); + + if ($weekendDays !== [static::SATURDAY, static::SUNDAY]) { + $absoluteValue = abs($value); + $sign = $value / max(1, $absoluteValue); + $weekDaysCount = 7 - min(6, \count(array_unique($weekendDays))); + $weeks = floor($absoluteValue / $weekDaysCount); + + for ($diff = $absoluteValue % $weekDaysCount; $diff; $diff--) { + /** @var static $date */ + $date = $date->addDays($sign); + + while (\in_array($date->dayOfWeek, $weekendDays, true)) { + $date = $date->addDays($sign); + } + } + + $value = $weeks * $sign; + $unit = 'week'; + } + + $timeString = $date->toTimeString(); + } elseif ($canOverflow = (\in_array($unit, [ + 'month', + 'year', + ]) && ($overflow === false || ( + $overflow === null && + ($ucUnit = ucfirst($unit).'s') && + !($this->{'local'.$ucUnit.'Overflow'} ?? static::{'shouldOverflow'.$ucUnit}()) + )))) { + $day = $date->day; + } + + $value = (int) $value; + + if ($unit === 'milli' || $unit === 'millisecond') { + $unit = 'microsecond'; + $value *= static::MICROSECONDS_PER_MILLISECOND; + } + + // Work-around for bug https://bugs.php.net/bug.php?id=75642 + if ($unit === 'micro' || $unit === 'microsecond') { + $microseconds = $this->micro + $value; + $second = (int) floor($microseconds / static::MICROSECONDS_PER_SECOND); + $microseconds %= static::MICROSECONDS_PER_SECOND; + if ($microseconds < 0) { + $microseconds += static::MICROSECONDS_PER_SECOND; + } + $date = $date->microseconds($microseconds); + $unit = 'second'; + $value = $second; + } + $date = $date->modify("$value $unit"); + + if (isset($timeString)) { + $date = $date->setTimeFromTimeString($timeString); + } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) { + $date = $date->modify('last day of previous month'); + } + + if (!$date) { + throw new UnitException('Unable to add unit '.var_export(\func_get_args(), true)); + } + + return $date; + } + + /** + * Subtract given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subUnit($unit, $value = 1, $overflow = null) + { + return $this->addUnit($unit, -$value, $overflow); + } + + /** + * Call native PHP DateTime/DateTimeImmutable sub() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawSub(DateInterval $interval) + { + return parent::sub($interval); + } + + /** + * Subtract given units or interval to the current instance. + * + * @example $date->sub('hour', 3) + * @example $date->sub(15, 'days') + * @example $date->sub(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function sub($unit, $value = 1, $overflow = null) + { + if (\is_string($unit) && \func_num_args() === 1) { + $unit = CarbonInterval::make($unit); + } + + if ($unit instanceof CarbonConverterInterface) { + return $this->resolveCarbon($unit->convertDate($this, true)); + } + + if ($unit instanceof Closure) { + return $this->resolveCarbon($unit($this, true)); + } + + if ($unit instanceof DateInterval) { + return parent::sub($unit); + } + + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + return $this->addUnit($unit, -(float) $value, $overflow); + } + + /** + * Subtract given units or interval to the current instance. + * + * @see sub() + * + * @param string|DateInterval $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subtract($unit, $value = 1, $overflow = null) + { + if (\is_string($unit) && \func_num_args() === 1) { + $unit = CarbonInterval::make($unit); + } + + return $this->sub($unit, $value, $overflow); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Week.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Week.php new file mode 100644 index 00000000000..6f1481456ac --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Traits/Week.php @@ -0,0 +1,219 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait Week. + * + * week and ISO week number, year and count in year. + * + * Depends on the following properties: + * + * @property int $daysInYear + * @property int $dayOfWeek + * @property int $dayOfYear + * @property int $year + * + * Depends on the following methods: + * + * @method static addWeeks(int $weeks = 1) + * @method static copy() + * @method static dayOfYear(int $dayOfYear) + * @method string getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null) + * @method static next(int|string $day = null) + * @method static startOfWeek(int $day = 1) + * @method static subWeeks(int $weeks = 1) + * @method static year(int $year = null) + */ +trait Week +{ + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null) + { + return $this->weekYear( + $year, + $dayOfWeek ?? 1, + $dayOfYear ?? 4 + ); + } + + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null) + { + $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0; + $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1; + + if ($year !== null) { + $year = (int) round($year); + + if ($this->weekYear(null, $dayOfWeek, $dayOfYear) === $year) { + return $this->avoidMutation(); + } + + $week = $this->week(null, $dayOfWeek, $dayOfYear); + $day = $this->dayOfWeek; + $date = $this->year($year); + switch ($date->weekYear(null, $dayOfWeek, $dayOfYear) - $year) { + case 1: + $date = $date->subWeeks(26); + + break; + case -1: + $date = $date->addWeeks(26); + + break; + } + + $date = $date->addWeeks($week - $date->week(null, $dayOfWeek, $dayOfYear))->startOfWeek($dayOfWeek); + + if ($date->dayOfWeek === $day) { + return $date; + } + + return $date->next($day); + } + + $year = $this->year; + $day = $this->dayOfYear; + $date = $this->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + + if ($date->year === $year && $day < $date->dayOfYear) { + return $year - 1; + } + + $date = $this->avoidMutation()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + + if ($date->year === $year && $day >= $date->dayOfYear) { + return $year + 1; + } + + return $year; + } + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null) + { + return $this->weeksInYear( + $dayOfWeek ?? 1, + $dayOfYear ?? 4 + ); + } + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function weeksInYear($dayOfWeek = null, $dayOfYear = null) + { + $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0; + $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1; + $year = $this->year; + $start = $this->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + $startDay = $start->dayOfYear; + if ($start->year !== $year) { + $startDay -= $start->daysInYear; + } + $end = $this->avoidMutation()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + $endDay = $end->dayOfYear; + if ($end->year !== $year) { + $endDay += $this->daysInYear; + } + + return (int) round(($endDay - $startDay) / 7); + } + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function week($week = null, $dayOfWeek = null, $dayOfYear = null) + { + $date = $this; + $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0; + $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1; + + if ($week !== null) { + return $date->addWeeks(round($week) - $this->week(null, $dayOfWeek, $dayOfYear)); + } + + $start = $date->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + $end = $date->avoidMutation()->startOfWeek($dayOfWeek); + if ($start > $end) { + $start = $start->subWeeks(26)->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + } + $week = (int) ($start->diffInDays($end) / 7 + 1); + + return $week > $end->weeksInYear($dayOfWeek, $dayOfYear) ? 1 : $week; + } + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null) + { + return $this->week( + $week, + $dayOfWeek ?? 1, + $dayOfYear ?? 4 + ); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Translator.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Translator.php new file mode 100644 index 00000000000..491c9e72048 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/Translator.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use ReflectionMethod; +use Symfony\Component\Translation; +use Symfony\Contracts\Translation\TranslatorInterface; + +$transMethod = new ReflectionMethod( + class_exists(TranslatorInterface::class) + ? TranslatorInterface::class + : Translation\Translator::class, + 'trans' +); + +require $transMethod->hasReturnType() + ? __DIR__.'/../../lazy/Carbon/TranslatorStrongType.php' + : __DIR__.'/../../lazy/Carbon/TranslatorWeakType.php'; + +class Translator extends LazyTranslator +{ + // Proxy dynamically loaded LazyTranslator in a static way +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php new file mode 100644 index 00000000000..ad36c6704f1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php @@ -0,0 +1,99 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\ImmutableException; +use Symfony\Component\Config\ConfigCacheFactoryInterface; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +class TranslatorImmutable extends Translator +{ + /** @var bool */ + private $constructed = false; + + public function __construct($locale, MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false) + { + parent::__construct($locale, $formatter, $cacheDir, $debug); + $this->constructed = true; + } + + /** + * @codeCoverageIgnore + */ + public function setDirectories(array $directories) + { + $this->disallowMutation(__METHOD__); + + return parent::setDirectories($directories); + } + + public function setLocale($locale) + { + $this->disallowMutation(__METHOD__); + + return parent::setLocale($locale); + } + + /** + * @codeCoverageIgnore + */ + public function setMessages($locale, $messages) + { + $this->disallowMutation(__METHOD__); + + return parent::setMessages($locale, $messages); + } + + /** + * @codeCoverageIgnore + */ + public function setTranslations($messages) + { + $this->disallowMutation(__METHOD__); + + return parent::setTranslations($messages); + } + + /** + * @codeCoverageIgnore + */ + public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory) + { + $this->disallowMutation(__METHOD__); + + parent::setConfigCacheFactory($configCacheFactory); + } + + public function resetMessages($locale = null) + { + $this->disallowMutation(__METHOD__); + + return parent::resetMessages($locale); + } + + /** + * @codeCoverageIgnore + */ + public function setFallbackLocales(array $locales) + { + $this->disallowMutation(__METHOD__); + + parent::setFallbackLocales($locales); + } + + private function disallowMutation($method) + { + if ($this->constructed) { + throw new ImmutableException($method.' not allowed on '.static::class); + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/TranslatorStrongTypeInterface.php b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/TranslatorStrongTypeInterface.php new file mode 100644 index 00000000000..ef4dee8e287 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/nesbot/carbon/src/Carbon/TranslatorStrongTypeInterface.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +/** + * Mark translator using strong type from symfony/translation >= 6. + */ +interface TranslatorStrongTypeInterface +{ + public function getFromCatalogue(MessageCatalogueInterface $catalogue, string $id, string $domain = 'messages'); +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/.gitignore b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/.gitignore new file mode 100644 index 00000000000..c49a5d8df5c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/.gitignore @@ -0,0 +1,3 @@ +vendor/ +composer.lock +phpunit.xml diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/CHANGELOG.md b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/CHANGELOG.md new file mode 100644 index 00000000000..7932e26132d --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/CHANGELOG.md @@ -0,0 +1,5 @@ +CHANGELOG +========= + +The changelog is maintained for all Symfony contracts at the following URL: +https://github.com/symfony/contracts/blob/main/CHANGELOG.md diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/LICENSE b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/LICENSE new file mode 100644 index 00000000000..406242ff285 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020-2022 Fabien Potencier + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/README.md b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/README.md new file mode 100644 index 00000000000..4957933a6cc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/README.md @@ -0,0 +1,26 @@ +Symfony Deprecation Contracts +============================= + +A generic function and convention to trigger deprecation notices. + +This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices. + +By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component, +the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments. + +The function requires at least 3 arguments: + - the name of the Composer package that is triggering the deprecation + - the version of the package that introduced the deprecation + - the message of the deprecation + - more arguments can be provided: they will be inserted in the message using `printf()` formatting + +Example: +```php +trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin'); +``` + +This will generate the following message: +`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.` + +While not necessarily recommended, the deprecation notices can be completely ignored by declaring an empty +`function trigger_deprecation() {}` in your application. diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/composer.json b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/composer.json new file mode 100644 index 00000000000..cc7cc12372f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/composer.json @@ -0,0 +1,35 @@ +{ + "name": "symfony/deprecation-contracts", + "type": "library", + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1" + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/function.php b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/function.php new file mode 100644 index 00000000000..d4371504a03 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/deprecation-contracts/function.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (!function_exists('trigger_deprecation')) { + /** + * Triggers a silenced deprecation notice. + * + * @param string $package The name of the Composer package that is triggering the deprecation + * @param string $version The version of the package that introduced the deprecation + * @param string $message The message of the deprecation + * @param mixed ...$args Values to insert in the message using printf() formatting + * + * @author Nicolas Grekas + */ + function trigger_deprecation(string $package, string $version, string $message, ...$args): void + { + @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/Ctype.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/Ctype.php new file mode 100644 index 00000000000..ba75a2c95fc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/Ctype.php @@ -0,0 +1,232 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Ctype; + +/** + * Ctype implementation through regex. + * + * @internal + * + * @author Gert de Pagter + */ +final class Ctype +{ + /** + * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise. + * + * @see https://php.net/ctype-alnum + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_alnum($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text); + } + + /** + * Returns TRUE if every character in text is a letter, FALSE otherwise. + * + * @see https://php.net/ctype-alpha + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_alpha($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text); + } + + /** + * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise. + * + * @see https://php.net/ctype-cntrl + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_cntrl($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text); + } + + /** + * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise. + * + * @see https://php.net/ctype-digit + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_digit($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text); + } + + /** + * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise. + * + * @see https://php.net/ctype-graph + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_graph($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text); + } + + /** + * Returns TRUE if every character in text is a lowercase letter. + * + * @see https://php.net/ctype-lower + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_lower($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text); + } + + /** + * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all. + * + * @see https://php.net/ctype-print + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_print($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text); + } + + /** + * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise. + * + * @see https://php.net/ctype-punct + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_punct($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text); + } + + /** + * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters. + * + * @see https://php.net/ctype-space + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_space($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text); + } + + /** + * Returns TRUE if every character in text is an uppercase letter. + * + * @see https://php.net/ctype-upper + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_upper($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text); + } + + /** + * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise. + * + * @see https://php.net/ctype-xdigit + * + * @param mixed $text + * + * @return bool + */ + public static function ctype_xdigit($text) + { + $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); + + return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text); + } + + /** + * Converts integers to their char versions according to normal ctype behaviour, if needed. + * + * If an integer between -128 and 255 inclusive is provided, + * it is interpreted as the ASCII value of a single character + * (negative values have 256 added in order to allow characters in the Extended ASCII range). + * Any other integer is interpreted as a string containing the decimal digits of the integer. + * + * @param mixed $int + * @param string $function + * + * @return mixed + */ + private static function convert_int_to_char_for_ctype($int, $function) + { + if (!\is_int($int)) { + return $int; + } + + if ($int < -128 || $int > 255) { + return (string) $int; + } + + if (\PHP_VERSION_ID >= 80100) { + @trigger_error($function.'(): Argument of type int will be interpreted as string in the future', \E_USER_DEPRECATED); + } + + if ($int < 0) { + $int += 256; + } + + return \chr($int); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/LICENSE b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/LICENSE new file mode 100644 index 00000000000..3f853aaf35f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018-2019 Fabien Potencier + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/README.md b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/README.md new file mode 100644 index 00000000000..b144d03c3c6 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/README.md @@ -0,0 +1,12 @@ +Symfony Polyfill / Ctype +======================== + +This component provides `ctype_*` functions to users who run php versions without the ctype extension. + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/bootstrap.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/bootstrap.php new file mode 100644 index 00000000000..d54524b31b4 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/bootstrap.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Ctype as p; + +if (\PHP_VERSION_ID >= 80000) { + return require __DIR__.'/bootstrap80.php'; +} + +if (!function_exists('ctype_alnum')) { + function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); } +} +if (!function_exists('ctype_alpha')) { + function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); } +} +if (!function_exists('ctype_cntrl')) { + function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); } +} +if (!function_exists('ctype_digit')) { + function ctype_digit($text) { return p\Ctype::ctype_digit($text); } +} +if (!function_exists('ctype_graph')) { + function ctype_graph($text) { return p\Ctype::ctype_graph($text); } +} +if (!function_exists('ctype_lower')) { + function ctype_lower($text) { return p\Ctype::ctype_lower($text); } +} +if (!function_exists('ctype_print')) { + function ctype_print($text) { return p\Ctype::ctype_print($text); } +} +if (!function_exists('ctype_punct')) { + function ctype_punct($text) { return p\Ctype::ctype_punct($text); } +} +if (!function_exists('ctype_space')) { + function ctype_space($text) { return p\Ctype::ctype_space($text); } +} +if (!function_exists('ctype_upper')) { + function ctype_upper($text) { return p\Ctype::ctype_upper($text); } +} +if (!function_exists('ctype_xdigit')) { + function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/bootstrap80.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/bootstrap80.php new file mode 100644 index 00000000000..ab2f8611dac --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/bootstrap80.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Ctype as p; + +if (!function_exists('ctype_alnum')) { + function ctype_alnum(mixed $text): bool { return p\Ctype::ctype_alnum($text); } +} +if (!function_exists('ctype_alpha')) { + function ctype_alpha(mixed $text): bool { return p\Ctype::ctype_alpha($text); } +} +if (!function_exists('ctype_cntrl')) { + function ctype_cntrl(mixed $text): bool { return p\Ctype::ctype_cntrl($text); } +} +if (!function_exists('ctype_digit')) { + function ctype_digit(mixed $text): bool { return p\Ctype::ctype_digit($text); } +} +if (!function_exists('ctype_graph')) { + function ctype_graph(mixed $text): bool { return p\Ctype::ctype_graph($text); } +} +if (!function_exists('ctype_lower')) { + function ctype_lower(mixed $text): bool { return p\Ctype::ctype_lower($text); } +} +if (!function_exists('ctype_print')) { + function ctype_print(mixed $text): bool { return p\Ctype::ctype_print($text); } +} +if (!function_exists('ctype_punct')) { + function ctype_punct(mixed $text): bool { return p\Ctype::ctype_punct($text); } +} +if (!function_exists('ctype_space')) { + function ctype_space(mixed $text): bool { return p\Ctype::ctype_space($text); } +} +if (!function_exists('ctype_upper')) { + function ctype_upper(mixed $text): bool { return p\Ctype::ctype_upper($text); } +} +if (!function_exists('ctype_xdigit')) { + function ctype_xdigit(mixed $text): bool { return p\Ctype::ctype_xdigit($text); } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/composer.json b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/composer.json new file mode 100644 index 00000000000..ee5c931cd1c --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-ctype/composer.json @@ -0,0 +1,41 @@ +{ + "name": "symfony/polyfill-ctype", + "type": "library", + "description": "Symfony polyfill for ctype functions", + "keywords": ["polyfill", "compatibility", "portable", "ctype"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" }, + "files": [ "bootstrap.php" ] + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/LICENSE b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/LICENSE new file mode 100644 index 00000000000..4cd8bdd3007 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015-2019 Fabien Potencier + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Mbstring.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Mbstring.php new file mode 100644 index 00000000000..693749f22b8 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -0,0 +1,873 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Mbstring; + +/** + * Partial mbstring implementation in PHP, iconv based, UTF-8 centric. + * + * Implemented: + * - mb_chr - Returns a specific character from its Unicode code point + * - mb_convert_encoding - Convert character encoding + * - mb_convert_variables - Convert character code in variable(s) + * - mb_decode_mimeheader - Decode string in MIME header field + * - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED + * - mb_decode_numericentity - Decode HTML numeric string reference to character + * - mb_encode_numericentity - Encode character to HTML numeric string reference + * - mb_convert_case - Perform case folding on a string + * - mb_detect_encoding - Detect character encoding + * - mb_get_info - Get internal settings of mbstring + * - mb_http_input - Detect HTTP input character encoding + * - mb_http_output - Set/Get HTTP output character encoding + * - mb_internal_encoding - Set/Get internal character encoding + * - mb_list_encodings - Returns an array of all supported encodings + * - mb_ord - Returns the Unicode code point of a character + * - mb_output_handler - Callback function converts character encoding in output buffer + * - mb_scrub - Replaces ill-formed byte sequences with substitute characters + * - mb_strlen - Get string length + * - mb_strpos - Find position of first occurrence of string in a string + * - mb_strrpos - Find position of last occurrence of a string in a string + * - mb_str_split - Convert a string to an array + * - mb_strtolower - Make a string lowercase + * - mb_strtoupper - Make a string uppercase + * - mb_substitute_character - Set/Get substitution character + * - mb_substr - Get part of string + * - mb_stripos - Finds position of first occurrence of a string within another, case insensitive + * - mb_stristr - Finds first occurrence of a string within another, case insensitive + * - mb_strrchr - Finds the last occurrence of a character in a string within another + * - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive + * - mb_strripos - Finds position of last occurrence of a string within another, case insensitive + * - mb_strstr - Finds first occurrence of a string within another + * - mb_strwidth - Return width of string + * - mb_substr_count - Count the number of substring occurrences + * + * Not implemented: + * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more) + * - mb_ereg_* - Regular expression with multibyte support + * - mb_parse_str - Parse GET/POST/COOKIE data and set global variable + * - mb_preferred_mime_name - Get MIME charset string + * - mb_regex_encoding - Returns current encoding for multibyte regex as string + * - mb_regex_set_options - Set/Get the default options for mbregex functions + * - mb_send_mail - Send encoded mail + * - mb_split - Split multibyte string using regular expression + * - mb_strcut - Get part of string + * - mb_strimwidth - Get truncated string with specified width + * + * @author Nicolas Grekas + * + * @internal + */ +final class Mbstring +{ + public const MB_CASE_FOLD = \PHP_INT_MAX; + + private const CASE_FOLD = [ + ['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"], + ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'], + ]; + + private static $encodingList = ['ASCII', 'UTF-8']; + private static $language = 'neutral'; + private static $internalEncoding = 'UTF-8'; + + public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null) + { + if (\is_array($fromEncoding) || ($fromEncoding !== null && false !== strpos($fromEncoding, ','))) { + $fromEncoding = self::mb_detect_encoding($s, $fromEncoding); + } else { + $fromEncoding = self::getEncoding($fromEncoding); + } + + $toEncoding = self::getEncoding($toEncoding); + + if ('BASE64' === $fromEncoding) { + $s = base64_decode($s); + $fromEncoding = $toEncoding; + } + + if ('BASE64' === $toEncoding) { + return base64_encode($s); + } + + if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) { + if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) { + $fromEncoding = 'Windows-1252'; + } + if ('UTF-8' !== $fromEncoding) { + $s = \iconv($fromEncoding, 'UTF-8//IGNORE', $s); + } + + return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s); + } + + if ('HTML-ENTITIES' === $fromEncoding) { + $s = html_entity_decode($s, \ENT_COMPAT, 'UTF-8'); + $fromEncoding = 'UTF-8'; + } + + return \iconv($fromEncoding, $toEncoding.'//IGNORE', $s); + } + + public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars) + { + $ok = true; + array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) { + if (false === $v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding)) { + $ok = false; + } + }); + + return $ok ? $fromEncoding : false; + } + + public static function mb_decode_mimeheader($s) + { + return \iconv_mime_decode($s, 2, self::$internalEncoding); + } + + public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null) + { + trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', \E_USER_WARNING); + } + + public static function mb_decode_numericentity($s, $convmap, $encoding = null) + { + if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) { + trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING); + + return null; + } + + if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) { + return false; + } + + if (null !== $encoding && !is_scalar($encoding)) { + trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING); + + return ''; // Instead of null (cf. mb_encode_numericentity). + } + + $s = (string) $s; + if ('' === $s) { + return ''; + } + + $encoding = self::getEncoding($encoding); + + if ('UTF-8' === $encoding) { + $encoding = null; + if (!preg_match('//u', $s)) { + $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); + } + } else { + $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + } + + $cnt = floor(\count($convmap) / 4) * 4; + + for ($i = 0; $i < $cnt; $i += 4) { + // collector_decode_htmlnumericentity ignores $convmap[$i + 3] + $convmap[$i] += $convmap[$i + 2]; + $convmap[$i + 1] += $convmap[$i + 2]; + } + + $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) { + $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1]; + for ($i = 0; $i < $cnt; $i += 4) { + if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) { + return self::mb_chr($c - $convmap[$i + 2]); + } + } + + return $m[0]; + }, $s); + + if (null === $encoding) { + return $s; + } + + return \iconv('UTF-8', $encoding.'//IGNORE', $s); + } + + public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false) + { + if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) { + trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING); + + return null; + } + + if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) { + return false; + } + + if (null !== $encoding && !is_scalar($encoding)) { + trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING); + + return null; // Instead of '' (cf. mb_decode_numericentity). + } + + if (null !== $is_hex && !is_scalar($is_hex)) { + trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', \E_USER_WARNING); + + return null; + } + + $s = (string) $s; + if ('' === $s) { + return ''; + } + + $encoding = self::getEncoding($encoding); + + if ('UTF-8' === $encoding) { + $encoding = null; + if (!preg_match('//u', $s)) { + $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); + } + } else { + $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + } + + static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4]; + + $cnt = floor(\count($convmap) / 4) * 4; + $i = 0; + $len = \strlen($s); + $result = ''; + + while ($i < $len) { + $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"]; + $uchr = substr($s, $i, $ulen); + $i += $ulen; + $c = self::mb_ord($uchr); + + for ($j = 0; $j < $cnt; $j += 4) { + if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) { + $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3]; + $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';'; + continue 2; + } + } + $result .= $uchr; + } + + if (null === $encoding) { + return $result; + } + + return \iconv('UTF-8', $encoding.'//IGNORE', $result); + } + + public static function mb_convert_case($s, $mode, $encoding = null) + { + $s = (string) $s; + if ('' === $s) { + return ''; + } + + $encoding = self::getEncoding($encoding); + + if ('UTF-8' === $encoding) { + $encoding = null; + if (!preg_match('//u', $s)) { + $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); + } + } else { + $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + } + + if (\MB_CASE_TITLE == $mode) { + static $titleRegexp = null; + if (null === $titleRegexp) { + $titleRegexp = self::getData('titleCaseRegexp'); + } + $s = preg_replace_callback($titleRegexp, [__CLASS__, 'title_case'], $s); + } else { + if (\MB_CASE_UPPER == $mode) { + static $upper = null; + if (null === $upper) { + $upper = self::getData('upperCase'); + } + $map = $upper; + } else { + if (self::MB_CASE_FOLD === $mode) { + $s = str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s); + } + + static $lower = null; + if (null === $lower) { + $lower = self::getData('lowerCase'); + } + $map = $lower; + } + + static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4]; + + $i = 0; + $len = \strlen($s); + + while ($i < $len) { + $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"]; + $uchr = substr($s, $i, $ulen); + $i += $ulen; + + if (isset($map[$uchr])) { + $uchr = $map[$uchr]; + $nlen = \strlen($uchr); + + if ($nlen == $ulen) { + $nlen = $i; + do { + $s[--$nlen] = $uchr[--$ulen]; + } while ($ulen); + } else { + $s = substr_replace($s, $uchr, $i - $ulen, $ulen); + $len += $nlen - $ulen; + $i += $nlen - $ulen; + } + } + } + } + + if (null === $encoding) { + return $s; + } + + return \iconv('UTF-8', $encoding.'//IGNORE', $s); + } + + public static function mb_internal_encoding($encoding = null) + { + if (null === $encoding) { + return self::$internalEncoding; + } + + $normalizedEncoding = self::getEncoding($encoding); + + if ('UTF-8' === $normalizedEncoding || false !== @\iconv($normalizedEncoding, $normalizedEncoding, ' ')) { + self::$internalEncoding = $normalizedEncoding; + + return true; + } + + if (80000 > \PHP_VERSION_ID) { + return false; + } + + throw new \ValueError(sprintf('Argument #1 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + + public static function mb_language($lang = null) + { + if (null === $lang) { + return self::$language; + } + + switch ($normalizedLang = strtolower($lang)) { + case 'uni': + case 'neutral': + self::$language = $normalizedLang; + + return true; + } + + if (80000 > \PHP_VERSION_ID) { + return false; + } + + throw new \ValueError(sprintf('Argument #1 ($language) must be a valid language, "%s" given', $lang)); + } + + public static function mb_list_encodings() + { + return ['UTF-8']; + } + + public static function mb_encoding_aliases($encoding) + { + switch (strtoupper($encoding)) { + case 'UTF8': + case 'UTF-8': + return ['utf8']; + } + + return false; + } + + public static function mb_check_encoding($var = null, $encoding = null) + { + if (null === $encoding) { + if (null === $var) { + return false; + } + $encoding = self::$internalEncoding; + } + + return self::mb_detect_encoding($var, [$encoding]) || false !== @\iconv($encoding, $encoding, $var); + } + + public static function mb_detect_encoding($str, $encodingList = null, $strict = false) + { + if (null === $encodingList) { + $encodingList = self::$encodingList; + } else { + if (!\is_array($encodingList)) { + $encodingList = array_map('trim', explode(',', $encodingList)); + } + $encodingList = array_map('strtoupper', $encodingList); + } + + foreach ($encodingList as $enc) { + switch ($enc) { + case 'ASCII': + if (!preg_match('/[\x80-\xFF]/', $str)) { + return $enc; + } + break; + + case 'UTF8': + case 'UTF-8': + if (preg_match('//u', $str)) { + return 'UTF-8'; + } + break; + + default: + if (0 === strncmp($enc, 'ISO-8859-', 9)) { + return $enc; + } + } + } + + return false; + } + + public static function mb_detect_order($encodingList = null) + { + if (null === $encodingList) { + return self::$encodingList; + } + + if (!\is_array($encodingList)) { + $encodingList = array_map('trim', explode(',', $encodingList)); + } + $encodingList = array_map('strtoupper', $encodingList); + + foreach ($encodingList as $enc) { + switch ($enc) { + default: + if (strncmp($enc, 'ISO-8859-', 9)) { + return false; + } + // no break + case 'ASCII': + case 'UTF8': + case 'UTF-8': + } + } + + self::$encodingList = $encodingList; + + return true; + } + + public static function mb_strlen($s, $encoding = null) + { + $encoding = self::getEncoding($encoding); + if ('CP850' === $encoding || 'ASCII' === $encoding) { + return \strlen($s); + } + + return @\iconv_strlen($s, $encoding); + } + + public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) + { + $encoding = self::getEncoding($encoding); + if ('CP850' === $encoding || 'ASCII' === $encoding) { + return strpos($haystack, $needle, $offset); + } + + $needle = (string) $needle; + if ('' === $needle) { + if (80000 > \PHP_VERSION_ID) { + trigger_error(__METHOD__.': Empty delimiter', \E_USER_WARNING); + + return false; + } + + return 0; + } + + return \iconv_strpos($haystack, $needle, $offset, $encoding); + } + + public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) + { + $encoding = self::getEncoding($encoding); + if ('CP850' === $encoding || 'ASCII' === $encoding) { + return strrpos($haystack, $needle, $offset); + } + + if ($offset != (int) $offset) { + $offset = 0; + } elseif ($offset = (int) $offset) { + if ($offset < 0) { + if (0 > $offset += self::mb_strlen($needle)) { + $haystack = self::mb_substr($haystack, 0, $offset, $encoding); + } + $offset = 0; + } else { + $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding); + } + } + + $pos = '' !== $needle || 80000 > \PHP_VERSION_ID + ? \iconv_strrpos($haystack, $needle, $encoding) + : self::mb_strlen($haystack, $encoding); + + return false !== $pos ? $offset + $pos : false; + } + + public static function mb_str_split($string, $split_length = 1, $encoding = null) + { + if (null !== $string && !is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) { + trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', \E_USER_WARNING); + + return null; + } + + if (1 > $split_length = (int) $split_length) { + if (80000 > \PHP_VERSION_ID) { + trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING); + return false; + } + + throw new \ValueError('Argument #2 ($length) must be greater than 0'); + } + + if (null === $encoding) { + $encoding = mb_internal_encoding(); + } + + if ('UTF-8' === $encoding = self::getEncoding($encoding)) { + $rx = '/('; + while (65535 < $split_length) { + $rx .= '.{65535}'; + $split_length -= 65535; + } + $rx .= '.{'.$split_length.'})/us'; + + return preg_split($rx, $string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY); + } + + $result = []; + $length = mb_strlen($string, $encoding); + + for ($i = 0; $i < $length; $i += $split_length) { + $result[] = mb_substr($string, $i, $split_length, $encoding); + } + + return $result; + } + + public static function mb_strtolower($s, $encoding = null) + { + return self::mb_convert_case($s, \MB_CASE_LOWER, $encoding); + } + + public static function mb_strtoupper($s, $encoding = null) + { + return self::mb_convert_case($s, \MB_CASE_UPPER, $encoding); + } + + public static function mb_substitute_character($c = null) + { + if (null === $c) { + return 'none'; + } + if (0 === strcasecmp($c, 'none')) { + return true; + } + if (80000 > \PHP_VERSION_ID) { + return false; + } + if (\is_int($c) || 'long' === $c || 'entity' === $c) { + return false; + } + + throw new \ValueError('Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint'); + } + + public static function mb_substr($s, $start, $length = null, $encoding = null) + { + $encoding = self::getEncoding($encoding); + if ('CP850' === $encoding || 'ASCII' === $encoding) { + return (string) substr($s, $start, null === $length ? 2147483647 : $length); + } + + if ($start < 0) { + $start = \iconv_strlen($s, $encoding) + $start; + if ($start < 0) { + $start = 0; + } + } + + if (null === $length) { + $length = 2147483647; + } elseif ($length < 0) { + $length = \iconv_strlen($s, $encoding) + $length - $start; + if ($length < 0) { + return ''; + } + } + + return (string) \iconv_substr($s, $start, $length, $encoding); + } + + public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) + { + $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); + $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + + return self::mb_strpos($haystack, $needle, $offset, $encoding); + } + + public static function mb_stristr($haystack, $needle, $part = false, $encoding = null) + { + $pos = self::mb_stripos($haystack, $needle, 0, $encoding); + + return self::getSubpart($pos, $part, $haystack, $encoding); + } + + public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null) + { + $encoding = self::getEncoding($encoding); + if ('CP850' === $encoding || 'ASCII' === $encoding) { + $pos = strrpos($haystack, $needle); + } else { + $needle = self::mb_substr($needle, 0, 1, $encoding); + $pos = \iconv_strrpos($haystack, $needle, $encoding); + } + + return self::getSubpart($pos, $part, $haystack, $encoding); + } + + public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null) + { + $needle = self::mb_substr($needle, 0, 1, $encoding); + $pos = self::mb_strripos($haystack, $needle, $encoding); + + return self::getSubpart($pos, $part, $haystack, $encoding); + } + + public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) + { + $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); + $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + + return self::mb_strrpos($haystack, $needle, $offset, $encoding); + } + + public static function mb_strstr($haystack, $needle, $part = false, $encoding = null) + { + $pos = strpos($haystack, $needle); + if (false === $pos) { + return false; + } + if ($part) { + return substr($haystack, 0, $pos); + } + + return substr($haystack, $pos); + } + + public static function mb_get_info($type = 'all') + { + $info = [ + 'internal_encoding' => self::$internalEncoding, + 'http_output' => 'pass', + 'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)', + 'func_overload' => 0, + 'func_overload_list' => 'no overload', + 'mail_charset' => 'UTF-8', + 'mail_header_encoding' => 'BASE64', + 'mail_body_encoding' => 'BASE64', + 'illegal_chars' => 0, + 'encoding_translation' => 'Off', + 'language' => self::$language, + 'detect_order' => self::$encodingList, + 'substitute_character' => 'none', + 'strict_detection' => 'Off', + ]; + + if ('all' === $type) { + return $info; + } + if (isset($info[$type])) { + return $info[$type]; + } + + return false; + } + + public static function mb_http_input($type = '') + { + return false; + } + + public static function mb_http_output($encoding = null) + { + return null !== $encoding ? 'pass' === $encoding : 'pass'; + } + + public static function mb_strwidth($s, $encoding = null) + { + $encoding = self::getEncoding($encoding); + + if ('UTF-8' !== $encoding) { + $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + } + + $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide); + + return ($wide << 1) + \iconv_strlen($s, 'UTF-8'); + } + + public static function mb_substr_count($haystack, $needle, $encoding = null) + { + return substr_count($haystack, $needle); + } + + public static function mb_output_handler($contents, $status) + { + return $contents; + } + + public static function mb_chr($code, $encoding = null) + { + if (0x80 > $code %= 0x200000) { + $s = \chr($code); + } elseif (0x800 > $code) { + $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F); + } elseif (0x10000 > $code) { + $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F); + } else { + $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F); + } + + if ('UTF-8' !== $encoding = self::getEncoding($encoding)) { + $s = mb_convert_encoding($s, $encoding, 'UTF-8'); + } + + return $s; + } + + public static function mb_ord($s, $encoding = null) + { + if ('UTF-8' !== $encoding = self::getEncoding($encoding)) { + $s = mb_convert_encoding($s, 'UTF-8', $encoding); + } + + if (1 === \strlen($s)) { + return \ord($s); + } + + $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0; + if (0xF0 <= $code) { + return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80; + } + if (0xE0 <= $code) { + return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80; + } + if (0xC0 <= $code) { + return (($code - 0xC0) << 6) + $s[2] - 0x80; + } + + return $code; + } + + private static function getSubpart($pos, $part, $haystack, $encoding) + { + if (false === $pos) { + return false; + } + if ($part) { + return self::mb_substr($haystack, 0, $pos, $encoding); + } + + return self::mb_substr($haystack, $pos, null, $encoding); + } + + private static function html_encoding_callback(array $m) + { + $i = 1; + $entities = ''; + $m = unpack('C*', htmlentities($m[0], \ENT_COMPAT, 'UTF-8')); + + while (isset($m[$i])) { + if (0x80 > $m[$i]) { + $entities .= \chr($m[$i++]); + continue; + } + if (0xF0 <= $m[$i]) { + $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80; + } elseif (0xE0 <= $m[$i]) { + $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80; + } else { + $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80; + } + + $entities .= '&#'.$c.';'; + } + + return $entities; + } + + private static function title_case(array $s) + { + return self::mb_convert_case($s[1], \MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], \MB_CASE_LOWER, 'UTF-8'); + } + + private static function getData($file) + { + if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) { + return require $file; + } + + return false; + } + + private static function getEncoding($encoding) + { + if (null === $encoding) { + return self::$internalEncoding; + } + + if ('UTF-8' === $encoding) { + return 'UTF-8'; + } + + $encoding = strtoupper($encoding); + + if ('8BIT' === $encoding || 'BINARY' === $encoding) { + return 'CP850'; + } + + if ('UTF8' === $encoding) { + return 'UTF-8'; + } + + return $encoding; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/README.md b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/README.md new file mode 100644 index 00000000000..478b40da25e --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/README.md @@ -0,0 +1,13 @@ +Symfony Polyfill / Mbstring +=========================== + +This component provides a partial, native PHP implementation for the +[Mbstring](https://php.net/mbstring) extension. + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php new file mode 100644 index 00000000000..fac60b081a1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php @@ -0,0 +1,1397 @@ + 'a', + 'B' => 'b', + 'C' => 'c', + 'D' => 'd', + 'E' => 'e', + 'F' => 'f', + 'G' => 'g', + 'H' => 'h', + 'I' => 'i', + 'J' => 'j', + 'K' => 'k', + 'L' => 'l', + 'M' => 'm', + 'N' => 'n', + 'O' => 'o', + 'P' => 'p', + 'Q' => 'q', + 'R' => 'r', + 'S' => 's', + 'T' => 't', + 'U' => 'u', + 'V' => 'v', + 'W' => 'w', + 'X' => 'x', + 'Y' => 'y', + 'Z' => 'z', + 'À' => 'à', + 'Á' => 'á', + 'Â' => 'â', + 'Ã' => 'ã', + 'Ä' => 'ä', + 'Å' => 'å', + 'Æ' => 'æ', + 'Ç' => 'ç', + 'È' => 'è', + 'É' => 'é', + 'Ê' => 'ê', + 'Ë' => 'ë', + 'Ì' => 'ì', + 'Í' => 'í', + 'Î' => 'î', + 'Ï' => 'ï', + 'Ð' => 'ð', + 'Ñ' => 'ñ', + 'Ò' => 'ò', + 'Ó' => 'ó', + 'Ô' => 'ô', + 'Õ' => 'õ', + 'Ö' => 'ö', + 'Ø' => 'ø', + 'Ù' => 'ù', + 'Ú' => 'ú', + 'Û' => 'û', + 'Ü' => 'ü', + 'Ý' => 'ý', + 'Þ' => 'þ', + 'Ā' => 'ā', + 'Ă' => 'ă', + 'Ą' => 'ą', + 'Ć' => 'ć', + 'Ĉ' => 'ĉ', + 'Ċ' => 'ċ', + 'Č' => 'č', + 'Ď' => 'ď', + 'Đ' => 'đ', + 'Ē' => 'ē', + 'Ĕ' => 'ĕ', + 'Ė' => 'ė', + 'Ę' => 'ę', + 'Ě' => 'ě', + 'Ĝ' => 'ĝ', + 'Ğ' => 'ğ', + 'Ġ' => 'ġ', + 'Ģ' => 'ģ', + 'Ĥ' => 'ĥ', + 'Ħ' => 'ħ', + 'Ĩ' => 'ĩ', + 'Ī' => 'ī', + 'Ĭ' => 'ĭ', + 'Į' => 'į', + 'İ' => 'i̇', + 'IJ' => 'ij', + 'Ĵ' => 'ĵ', + 'Ķ' => 'ķ', + 'Ĺ' => 'ĺ', + 'Ļ' => 'ļ', + 'Ľ' => 'ľ', + 'Ŀ' => 'ŀ', + 'Ł' => 'ł', + 'Ń' => 'ń', + 'Ņ' => 'ņ', + 'Ň' => 'ň', + 'Ŋ' => 'ŋ', + 'Ō' => 'ō', + 'Ŏ' => 'ŏ', + 'Ő' => 'ő', + 'Œ' => 'œ', + 'Ŕ' => 'ŕ', + 'Ŗ' => 'ŗ', + 'Ř' => 'ř', + 'Ś' => 'ś', + 'Ŝ' => 'ŝ', + 'Ş' => 'ş', + 'Š' => 'š', + 'Ţ' => 'ţ', + 'Ť' => 'ť', + 'Ŧ' => 'ŧ', + 'Ũ' => 'ũ', + 'Ū' => 'ū', + 'Ŭ' => 'ŭ', + 'Ů' => 'ů', + 'Ű' => 'ű', + 'Ų' => 'ų', + 'Ŵ' => 'ŵ', + 'Ŷ' => 'ŷ', + 'Ÿ' => 'ÿ', + 'Ź' => 'ź', + 'Ż' => 'ż', + 'Ž' => 'ž', + 'Ɓ' => 'ɓ', + 'Ƃ' => 'ƃ', + 'Ƅ' => 'ƅ', + 'Ɔ' => 'ɔ', + 'Ƈ' => 'ƈ', + 'Ɖ' => 'ɖ', + 'Ɗ' => 'ɗ', + 'Ƌ' => 'ƌ', + 'Ǝ' => 'ǝ', + 'Ə' => 'ə', + 'Ɛ' => 'ɛ', + 'Ƒ' => 'ƒ', + 'Ɠ' => 'ɠ', + 'Ɣ' => 'ɣ', + 'Ɩ' => 'ɩ', + 'Ɨ' => 'ɨ', + 'Ƙ' => 'ƙ', + 'Ɯ' => 'ɯ', + 'Ɲ' => 'ɲ', + 'Ɵ' => 'ɵ', + 'Ơ' => 'ơ', + 'Ƣ' => 'ƣ', + 'Ƥ' => 'ƥ', + 'Ʀ' => 'ʀ', + 'Ƨ' => 'ƨ', + 'Ʃ' => 'ʃ', + 'Ƭ' => 'ƭ', + 'Ʈ' => 'ʈ', + 'Ư' => 'ư', + 'Ʊ' => 'ʊ', + 'Ʋ' => 'ʋ', + 'Ƴ' => 'ƴ', + 'Ƶ' => 'ƶ', + 'Ʒ' => 'ʒ', + 'Ƹ' => 'ƹ', + 'Ƽ' => 'ƽ', + 'DŽ' => 'dž', + 'Dž' => 'dž', + 'LJ' => 'lj', + 'Lj' => 'lj', + 'NJ' => 'nj', + 'Nj' => 'nj', + 'Ǎ' => 'ǎ', + 'Ǐ' => 'ǐ', + 'Ǒ' => 'ǒ', + 'Ǔ' => 'ǔ', + 'Ǖ' => 'ǖ', + 'Ǘ' => 'ǘ', + 'Ǚ' => 'ǚ', + 'Ǜ' => 'ǜ', + 'Ǟ' => 'ǟ', + 'Ǡ' => 'ǡ', + 'Ǣ' => 'ǣ', + 'Ǥ' => 'ǥ', + 'Ǧ' => 'ǧ', + 'Ǩ' => 'ǩ', + 'Ǫ' => 'ǫ', + 'Ǭ' => 'ǭ', + 'Ǯ' => 'ǯ', + 'DZ' => 'dz', + 'Dz' => 'dz', + 'Ǵ' => 'ǵ', + 'Ƕ' => 'ƕ', + 'Ƿ' => 'ƿ', + 'Ǹ' => 'ǹ', + 'Ǻ' => 'ǻ', + 'Ǽ' => 'ǽ', + 'Ǿ' => 'ǿ', + 'Ȁ' => 'ȁ', + 'Ȃ' => 'ȃ', + 'Ȅ' => 'ȅ', + 'Ȇ' => 'ȇ', + 'Ȉ' => 'ȉ', + 'Ȋ' => 'ȋ', + 'Ȍ' => 'ȍ', + 'Ȏ' => 'ȏ', + 'Ȑ' => 'ȑ', + 'Ȓ' => 'ȓ', + 'Ȕ' => 'ȕ', + 'Ȗ' => 'ȗ', + 'Ș' => 'ș', + 'Ț' => 'ț', + 'Ȝ' => 'ȝ', + 'Ȟ' => 'ȟ', + 'Ƞ' => 'ƞ', + 'Ȣ' => 'ȣ', + 'Ȥ' => 'ȥ', + 'Ȧ' => 'ȧ', + 'Ȩ' => 'ȩ', + 'Ȫ' => 'ȫ', + 'Ȭ' => 'ȭ', + 'Ȯ' => 'ȯ', + 'Ȱ' => 'ȱ', + 'Ȳ' => 'ȳ', + 'Ⱥ' => 'ⱥ', + 'Ȼ' => 'ȼ', + 'Ƚ' => 'ƚ', + 'Ⱦ' => 'ⱦ', + 'Ɂ' => 'ɂ', + 'Ƀ' => 'ƀ', + 'Ʉ' => 'ʉ', + 'Ʌ' => 'ʌ', + 'Ɇ' => 'ɇ', + 'Ɉ' => 'ɉ', + 'Ɋ' => 'ɋ', + 'Ɍ' => 'ɍ', + 'Ɏ' => 'ɏ', + 'Ͱ' => 'ͱ', + 'Ͳ' => 'ͳ', + 'Ͷ' => 'ͷ', + 'Ϳ' => 'ϳ', + 'Ά' => 'ά', + 'Έ' => 'έ', + 'Ή' => 'ή', + 'Ί' => 'ί', + 'Ό' => 'ό', + 'Ύ' => 'ύ', + 'Ώ' => 'ώ', + 'Α' => 'α', + 'Β' => 'β', + 'Γ' => 'γ', + 'Δ' => 'δ', + 'Ε' => 'ε', + 'Ζ' => 'ζ', + 'Η' => 'η', + 'Θ' => 'θ', + 'Ι' => 'ι', + 'Κ' => 'κ', + 'Λ' => 'λ', + 'Μ' => 'μ', + 'Ν' => 'ν', + 'Ξ' => 'ξ', + 'Ο' => 'ο', + 'Π' => 'π', + 'Ρ' => 'ρ', + 'Σ' => 'σ', + 'Τ' => 'τ', + 'Υ' => 'υ', + 'Φ' => 'φ', + 'Χ' => 'χ', + 'Ψ' => 'ψ', + 'Ω' => 'ω', + 'Ϊ' => 'ϊ', + 'Ϋ' => 'ϋ', + 'Ϗ' => 'ϗ', + 'Ϙ' => 'ϙ', + 'Ϛ' => 'ϛ', + 'Ϝ' => 'ϝ', + 'Ϟ' => 'ϟ', + 'Ϡ' => 'ϡ', + 'Ϣ' => 'ϣ', + 'Ϥ' => 'ϥ', + 'Ϧ' => 'ϧ', + 'Ϩ' => 'ϩ', + 'Ϫ' => 'ϫ', + 'Ϭ' => 'ϭ', + 'Ϯ' => 'ϯ', + 'ϴ' => 'θ', + 'Ϸ' => 'ϸ', + 'Ϲ' => 'ϲ', + 'Ϻ' => 'ϻ', + 'Ͻ' => 'ͻ', + 'Ͼ' => 'ͼ', + 'Ͽ' => 'ͽ', + 'Ѐ' => 'ѐ', + 'Ё' => 'ё', + 'Ђ' => 'ђ', + 'Ѓ' => 'ѓ', + 'Є' => 'є', + 'Ѕ' => 'ѕ', + 'І' => 'і', + 'Ї' => 'ї', + 'Ј' => 'ј', + 'Љ' => 'љ', + 'Њ' => 'њ', + 'Ћ' => 'ћ', + 'Ќ' => 'ќ', + 'Ѝ' => 'ѝ', + 'Ў' => 'ў', + 'Џ' => 'џ', + 'А' => 'а', + 'Б' => 'б', + 'В' => 'в', + 'Г' => 'г', + 'Д' => 'д', + 'Е' => 'е', + 'Ж' => 'ж', + 'З' => 'з', + 'И' => 'и', + 'Й' => 'й', + 'К' => 'к', + 'Л' => 'л', + 'М' => 'м', + 'Н' => 'н', + 'О' => 'о', + 'П' => 'п', + 'Р' => 'р', + 'С' => 'с', + 'Т' => 'т', + 'У' => 'у', + 'Ф' => 'ф', + 'Х' => 'х', + 'Ц' => 'ц', + 'Ч' => 'ч', + 'Ш' => 'ш', + 'Щ' => 'щ', + 'Ъ' => 'ъ', + 'Ы' => 'ы', + 'Ь' => 'ь', + 'Э' => 'э', + 'Ю' => 'ю', + 'Я' => 'я', + 'Ѡ' => 'ѡ', + 'Ѣ' => 'ѣ', + 'Ѥ' => 'ѥ', + 'Ѧ' => 'ѧ', + 'Ѩ' => 'ѩ', + 'Ѫ' => 'ѫ', + 'Ѭ' => 'ѭ', + 'Ѯ' => 'ѯ', + 'Ѱ' => 'ѱ', + 'Ѳ' => 'ѳ', + 'Ѵ' => 'ѵ', + 'Ѷ' => 'ѷ', + 'Ѹ' => 'ѹ', + 'Ѻ' => 'ѻ', + 'Ѽ' => 'ѽ', + 'Ѿ' => 'ѿ', + 'Ҁ' => 'ҁ', + 'Ҋ' => 'ҋ', + 'Ҍ' => 'ҍ', + 'Ҏ' => 'ҏ', + 'Ґ' => 'ґ', + 'Ғ' => 'ғ', + 'Ҕ' => 'ҕ', + 'Җ' => 'җ', + 'Ҙ' => 'ҙ', + 'Қ' => 'қ', + 'Ҝ' => 'ҝ', + 'Ҟ' => 'ҟ', + 'Ҡ' => 'ҡ', + 'Ң' => 'ң', + 'Ҥ' => 'ҥ', + 'Ҧ' => 'ҧ', + 'Ҩ' => 'ҩ', + 'Ҫ' => 'ҫ', + 'Ҭ' => 'ҭ', + 'Ү' => 'ү', + 'Ұ' => 'ұ', + 'Ҳ' => 'ҳ', + 'Ҵ' => 'ҵ', + 'Ҷ' => 'ҷ', + 'Ҹ' => 'ҹ', + 'Һ' => 'һ', + 'Ҽ' => 'ҽ', + 'Ҿ' => 'ҿ', + 'Ӏ' => 'ӏ', + 'Ӂ' => 'ӂ', + 'Ӄ' => 'ӄ', + 'Ӆ' => 'ӆ', + 'Ӈ' => 'ӈ', + 'Ӊ' => 'ӊ', + 'Ӌ' => 'ӌ', + 'Ӎ' => 'ӎ', + 'Ӑ' => 'ӑ', + 'Ӓ' => 'ӓ', + 'Ӕ' => 'ӕ', + 'Ӗ' => 'ӗ', + 'Ә' => 'ә', + 'Ӛ' => 'ӛ', + 'Ӝ' => 'ӝ', + 'Ӟ' => 'ӟ', + 'Ӡ' => 'ӡ', + 'Ӣ' => 'ӣ', + 'Ӥ' => 'ӥ', + 'Ӧ' => 'ӧ', + 'Ө' => 'ө', + 'Ӫ' => 'ӫ', + 'Ӭ' => 'ӭ', + 'Ӯ' => 'ӯ', + 'Ӱ' => 'ӱ', + 'Ӳ' => 'ӳ', + 'Ӵ' => 'ӵ', + 'Ӷ' => 'ӷ', + 'Ӹ' => 'ӹ', + 'Ӻ' => 'ӻ', + 'Ӽ' => 'ӽ', + 'Ӿ' => 'ӿ', + 'Ԁ' => 'ԁ', + 'Ԃ' => 'ԃ', + 'Ԅ' => 'ԅ', + 'Ԇ' => 'ԇ', + 'Ԉ' => 'ԉ', + 'Ԋ' => 'ԋ', + 'Ԍ' => 'ԍ', + 'Ԏ' => 'ԏ', + 'Ԑ' => 'ԑ', + 'Ԓ' => 'ԓ', + 'Ԕ' => 'ԕ', + 'Ԗ' => 'ԗ', + 'Ԙ' => 'ԙ', + 'Ԛ' => 'ԛ', + 'Ԝ' => 'ԝ', + 'Ԟ' => 'ԟ', + 'Ԡ' => 'ԡ', + 'Ԣ' => 'ԣ', + 'Ԥ' => 'ԥ', + 'Ԧ' => 'ԧ', + 'Ԩ' => 'ԩ', + 'Ԫ' => 'ԫ', + 'Ԭ' => 'ԭ', + 'Ԯ' => 'ԯ', + 'Ա' => 'ա', + 'Բ' => 'բ', + 'Գ' => 'գ', + 'Դ' => 'դ', + 'Ե' => 'ե', + 'Զ' => 'զ', + 'Է' => 'է', + 'Ը' => 'ը', + 'Թ' => 'թ', + 'Ժ' => 'ժ', + 'Ի' => 'ի', + 'Լ' => 'լ', + 'Խ' => 'խ', + 'Ծ' => 'ծ', + 'Կ' => 'կ', + 'Հ' => 'հ', + 'Ձ' => 'ձ', + 'Ղ' => 'ղ', + 'Ճ' => 'ճ', + 'Մ' => 'մ', + 'Յ' => 'յ', + 'Ն' => 'ն', + 'Շ' => 'շ', + 'Ո' => 'ո', + 'Չ' => 'չ', + 'Պ' => 'պ', + 'Ջ' => 'ջ', + 'Ռ' => 'ռ', + 'Ս' => 'ս', + 'Վ' => 'վ', + 'Տ' => 'տ', + 'Ր' => 'ր', + 'Ց' => 'ց', + 'Ւ' => 'ւ', + 'Փ' => 'փ', + 'Ք' => 'ք', + 'Օ' => 'օ', + 'Ֆ' => 'ֆ', + 'Ⴀ' => 'ⴀ', + 'Ⴁ' => 'ⴁ', + 'Ⴂ' => 'ⴂ', + 'Ⴃ' => 'ⴃ', + 'Ⴄ' => 'ⴄ', + 'Ⴅ' => 'ⴅ', + 'Ⴆ' => 'ⴆ', + 'Ⴇ' => 'ⴇ', + 'Ⴈ' => 'ⴈ', + 'Ⴉ' => 'ⴉ', + 'Ⴊ' => 'ⴊ', + 'Ⴋ' => 'ⴋ', + 'Ⴌ' => 'ⴌ', + 'Ⴍ' => 'ⴍ', + 'Ⴎ' => 'ⴎ', + 'Ⴏ' => 'ⴏ', + 'Ⴐ' => 'ⴐ', + 'Ⴑ' => 'ⴑ', + 'Ⴒ' => 'ⴒ', + 'Ⴓ' => 'ⴓ', + 'Ⴔ' => 'ⴔ', + 'Ⴕ' => 'ⴕ', + 'Ⴖ' => 'ⴖ', + 'Ⴗ' => 'ⴗ', + 'Ⴘ' => 'ⴘ', + 'Ⴙ' => 'ⴙ', + 'Ⴚ' => 'ⴚ', + 'Ⴛ' => 'ⴛ', + 'Ⴜ' => 'ⴜ', + 'Ⴝ' => 'ⴝ', + 'Ⴞ' => 'ⴞ', + 'Ⴟ' => 'ⴟ', + 'Ⴠ' => 'ⴠ', + 'Ⴡ' => 'ⴡ', + 'Ⴢ' => 'ⴢ', + 'Ⴣ' => 'ⴣ', + 'Ⴤ' => 'ⴤ', + 'Ⴥ' => 'ⴥ', + 'Ⴧ' => 'ⴧ', + 'Ⴭ' => 'ⴭ', + 'Ꭰ' => 'ꭰ', + 'Ꭱ' => 'ꭱ', + 'Ꭲ' => 'ꭲ', + 'Ꭳ' => 'ꭳ', + 'Ꭴ' => 'ꭴ', + 'Ꭵ' => 'ꭵ', + 'Ꭶ' => 'ꭶ', + 'Ꭷ' => 'ꭷ', + 'Ꭸ' => 'ꭸ', + 'Ꭹ' => 'ꭹ', + 'Ꭺ' => 'ꭺ', + 'Ꭻ' => 'ꭻ', + 'Ꭼ' => 'ꭼ', + 'Ꭽ' => 'ꭽ', + 'Ꭾ' => 'ꭾ', + 'Ꭿ' => 'ꭿ', + 'Ꮀ' => 'ꮀ', + 'Ꮁ' => 'ꮁ', + 'Ꮂ' => 'ꮂ', + 'Ꮃ' => 'ꮃ', + 'Ꮄ' => 'ꮄ', + 'Ꮅ' => 'ꮅ', + 'Ꮆ' => 'ꮆ', + 'Ꮇ' => 'ꮇ', + 'Ꮈ' => 'ꮈ', + 'Ꮉ' => 'ꮉ', + 'Ꮊ' => 'ꮊ', + 'Ꮋ' => 'ꮋ', + 'Ꮌ' => 'ꮌ', + 'Ꮍ' => 'ꮍ', + 'Ꮎ' => 'ꮎ', + 'Ꮏ' => 'ꮏ', + 'Ꮐ' => 'ꮐ', + 'Ꮑ' => 'ꮑ', + 'Ꮒ' => 'ꮒ', + 'Ꮓ' => 'ꮓ', + 'Ꮔ' => 'ꮔ', + 'Ꮕ' => 'ꮕ', + 'Ꮖ' => 'ꮖ', + 'Ꮗ' => 'ꮗ', + 'Ꮘ' => 'ꮘ', + 'Ꮙ' => 'ꮙ', + 'Ꮚ' => 'ꮚ', + 'Ꮛ' => 'ꮛ', + 'Ꮜ' => 'ꮜ', + 'Ꮝ' => 'ꮝ', + 'Ꮞ' => 'ꮞ', + 'Ꮟ' => 'ꮟ', + 'Ꮠ' => 'ꮠ', + 'Ꮡ' => 'ꮡ', + 'Ꮢ' => 'ꮢ', + 'Ꮣ' => 'ꮣ', + 'Ꮤ' => 'ꮤ', + 'Ꮥ' => 'ꮥ', + 'Ꮦ' => 'ꮦ', + 'Ꮧ' => 'ꮧ', + 'Ꮨ' => 'ꮨ', + 'Ꮩ' => 'ꮩ', + 'Ꮪ' => 'ꮪ', + 'Ꮫ' => 'ꮫ', + 'Ꮬ' => 'ꮬ', + 'Ꮭ' => 'ꮭ', + 'Ꮮ' => 'ꮮ', + 'Ꮯ' => 'ꮯ', + 'Ꮰ' => 'ꮰ', + 'Ꮱ' => 'ꮱ', + 'Ꮲ' => 'ꮲ', + 'Ꮳ' => 'ꮳ', + 'Ꮴ' => 'ꮴ', + 'Ꮵ' => 'ꮵ', + 'Ꮶ' => 'ꮶ', + 'Ꮷ' => 'ꮷ', + 'Ꮸ' => 'ꮸ', + 'Ꮹ' => 'ꮹ', + 'Ꮺ' => 'ꮺ', + 'Ꮻ' => 'ꮻ', + 'Ꮼ' => 'ꮼ', + 'Ꮽ' => 'ꮽ', + 'Ꮾ' => 'ꮾ', + 'Ꮿ' => 'ꮿ', + 'Ᏸ' => 'ᏸ', + 'Ᏹ' => 'ᏹ', + 'Ᏺ' => 'ᏺ', + 'Ᏻ' => 'ᏻ', + 'Ᏼ' => 'ᏼ', + 'Ᏽ' => 'ᏽ', + 'Ა' => 'ა', + 'Ბ' => 'ბ', + 'Გ' => 'გ', + 'Დ' => 'დ', + 'Ე' => 'ე', + 'Ვ' => 'ვ', + 'Ზ' => 'ზ', + 'Თ' => 'თ', + 'Ი' => 'ი', + 'Კ' => 'კ', + 'Ლ' => 'ლ', + 'Მ' => 'მ', + 'Ნ' => 'ნ', + 'Ო' => 'ო', + 'Პ' => 'პ', + 'Ჟ' => 'ჟ', + 'Რ' => 'რ', + 'Ს' => 'ს', + 'Ტ' => 'ტ', + 'Უ' => 'უ', + 'Ფ' => 'ფ', + 'Ქ' => 'ქ', + 'Ღ' => 'ღ', + 'Ყ' => 'ყ', + 'Შ' => 'შ', + 'Ჩ' => 'ჩ', + 'Ც' => 'ც', + 'Ძ' => 'ძ', + 'Წ' => 'წ', + 'Ჭ' => 'ჭ', + 'Ხ' => 'ხ', + 'Ჯ' => 'ჯ', + 'Ჰ' => 'ჰ', + 'Ჱ' => 'ჱ', + 'Ჲ' => 'ჲ', + 'Ჳ' => 'ჳ', + 'Ჴ' => 'ჴ', + 'Ჵ' => 'ჵ', + 'Ჶ' => 'ჶ', + 'Ჷ' => 'ჷ', + 'Ჸ' => 'ჸ', + 'Ჹ' => 'ჹ', + 'Ჺ' => 'ჺ', + 'Ჽ' => 'ჽ', + 'Ჾ' => 'ჾ', + 'Ჿ' => 'ჿ', + 'Ḁ' => 'ḁ', + 'Ḃ' => 'ḃ', + 'Ḅ' => 'ḅ', + 'Ḇ' => 'ḇ', + 'Ḉ' => 'ḉ', + 'Ḋ' => 'ḋ', + 'Ḍ' => 'ḍ', + 'Ḏ' => 'ḏ', + 'Ḑ' => 'ḑ', + 'Ḓ' => 'ḓ', + 'Ḕ' => 'ḕ', + 'Ḗ' => 'ḗ', + 'Ḙ' => 'ḙ', + 'Ḛ' => 'ḛ', + 'Ḝ' => 'ḝ', + 'Ḟ' => 'ḟ', + 'Ḡ' => 'ḡ', + 'Ḣ' => 'ḣ', + 'Ḥ' => 'ḥ', + 'Ḧ' => 'ḧ', + 'Ḩ' => 'ḩ', + 'Ḫ' => 'ḫ', + 'Ḭ' => 'ḭ', + 'Ḯ' => 'ḯ', + 'Ḱ' => 'ḱ', + 'Ḳ' => 'ḳ', + 'Ḵ' => 'ḵ', + 'Ḷ' => 'ḷ', + 'Ḹ' => 'ḹ', + 'Ḻ' => 'ḻ', + 'Ḽ' => 'ḽ', + 'Ḿ' => 'ḿ', + 'Ṁ' => 'ṁ', + 'Ṃ' => 'ṃ', + 'Ṅ' => 'ṅ', + 'Ṇ' => 'ṇ', + 'Ṉ' => 'ṉ', + 'Ṋ' => 'ṋ', + 'Ṍ' => 'ṍ', + 'Ṏ' => 'ṏ', + 'Ṑ' => 'ṑ', + 'Ṓ' => 'ṓ', + 'Ṕ' => 'ṕ', + 'Ṗ' => 'ṗ', + 'Ṙ' => 'ṙ', + 'Ṛ' => 'ṛ', + 'Ṝ' => 'ṝ', + 'Ṟ' => 'ṟ', + 'Ṡ' => 'ṡ', + 'Ṣ' => 'ṣ', + 'Ṥ' => 'ṥ', + 'Ṧ' => 'ṧ', + 'Ṩ' => 'ṩ', + 'Ṫ' => 'ṫ', + 'Ṭ' => 'ṭ', + 'Ṯ' => 'ṯ', + 'Ṱ' => 'ṱ', + 'Ṳ' => 'ṳ', + 'Ṵ' => 'ṵ', + 'Ṷ' => 'ṷ', + 'Ṹ' => 'ṹ', + 'Ṻ' => 'ṻ', + 'Ṽ' => 'ṽ', + 'Ṿ' => 'ṿ', + 'Ẁ' => 'ẁ', + 'Ẃ' => 'ẃ', + 'Ẅ' => 'ẅ', + 'Ẇ' => 'ẇ', + 'Ẉ' => 'ẉ', + 'Ẋ' => 'ẋ', + 'Ẍ' => 'ẍ', + 'Ẏ' => 'ẏ', + 'Ẑ' => 'ẑ', + 'Ẓ' => 'ẓ', + 'Ẕ' => 'ẕ', + 'ẞ' => 'ß', + 'Ạ' => 'ạ', + 'Ả' => 'ả', + 'Ấ' => 'ấ', + 'Ầ' => 'ầ', + 'Ẩ' => 'ẩ', + 'Ẫ' => 'ẫ', + 'Ậ' => 'ậ', + 'Ắ' => 'ắ', + 'Ằ' => 'ằ', + 'Ẳ' => 'ẳ', + 'Ẵ' => 'ẵ', + 'Ặ' => 'ặ', + 'Ẹ' => 'ẹ', + 'Ẻ' => 'ẻ', + 'Ẽ' => 'ẽ', + 'Ế' => 'ế', + 'Ề' => 'ề', + 'Ể' => 'ể', + 'Ễ' => 'ễ', + 'Ệ' => 'ệ', + 'Ỉ' => 'ỉ', + 'Ị' => 'ị', + 'Ọ' => 'ọ', + 'Ỏ' => 'ỏ', + 'Ố' => 'ố', + 'Ồ' => 'ồ', + 'Ổ' => 'ổ', + 'Ỗ' => 'ỗ', + 'Ộ' => 'ộ', + 'Ớ' => 'ớ', + 'Ờ' => 'ờ', + 'Ở' => 'ở', + 'Ỡ' => 'ỡ', + 'Ợ' => 'ợ', + 'Ụ' => 'ụ', + 'Ủ' => 'ủ', + 'Ứ' => 'ứ', + 'Ừ' => 'ừ', + 'Ử' => 'ử', + 'Ữ' => 'ữ', + 'Ự' => 'ự', + 'Ỳ' => 'ỳ', + 'Ỵ' => 'ỵ', + 'Ỷ' => 'ỷ', + 'Ỹ' => 'ỹ', + 'Ỻ' => 'ỻ', + 'Ỽ' => 'ỽ', + 'Ỿ' => 'ỿ', + 'Ἀ' => 'ἀ', + 'Ἁ' => 'ἁ', + 'Ἂ' => 'ἂ', + 'Ἃ' => 'ἃ', + 'Ἄ' => 'ἄ', + 'Ἅ' => 'ἅ', + 'Ἆ' => 'ἆ', + 'Ἇ' => 'ἇ', + 'Ἐ' => 'ἐ', + 'Ἑ' => 'ἑ', + 'Ἒ' => 'ἒ', + 'Ἓ' => 'ἓ', + 'Ἔ' => 'ἔ', + 'Ἕ' => 'ἕ', + 'Ἠ' => 'ἠ', + 'Ἡ' => 'ἡ', + 'Ἢ' => 'ἢ', + 'Ἣ' => 'ἣ', + 'Ἤ' => 'ἤ', + 'Ἥ' => 'ἥ', + 'Ἦ' => 'ἦ', + 'Ἧ' => 'ἧ', + 'Ἰ' => 'ἰ', + 'Ἱ' => 'ἱ', + 'Ἲ' => 'ἲ', + 'Ἳ' => 'ἳ', + 'Ἴ' => 'ἴ', + 'Ἵ' => 'ἵ', + 'Ἶ' => 'ἶ', + 'Ἷ' => 'ἷ', + 'Ὀ' => 'ὀ', + 'Ὁ' => 'ὁ', + 'Ὂ' => 'ὂ', + 'Ὃ' => 'ὃ', + 'Ὄ' => 'ὄ', + 'Ὅ' => 'ὅ', + 'Ὑ' => 'ὑ', + 'Ὓ' => 'ὓ', + 'Ὕ' => 'ὕ', + 'Ὗ' => 'ὗ', + 'Ὠ' => 'ὠ', + 'Ὡ' => 'ὡ', + 'Ὢ' => 'ὢ', + 'Ὣ' => 'ὣ', + 'Ὤ' => 'ὤ', + 'Ὥ' => 'ὥ', + 'Ὦ' => 'ὦ', + 'Ὧ' => 'ὧ', + 'ᾈ' => 'ᾀ', + 'ᾉ' => 'ᾁ', + 'ᾊ' => 'ᾂ', + 'ᾋ' => 'ᾃ', + 'ᾌ' => 'ᾄ', + 'ᾍ' => 'ᾅ', + 'ᾎ' => 'ᾆ', + 'ᾏ' => 'ᾇ', + 'ᾘ' => 'ᾐ', + 'ᾙ' => 'ᾑ', + 'ᾚ' => 'ᾒ', + 'ᾛ' => 'ᾓ', + 'ᾜ' => 'ᾔ', + 'ᾝ' => 'ᾕ', + 'ᾞ' => 'ᾖ', + 'ᾟ' => 'ᾗ', + 'ᾨ' => 'ᾠ', + 'ᾩ' => 'ᾡ', + 'ᾪ' => 'ᾢ', + 'ᾫ' => 'ᾣ', + 'ᾬ' => 'ᾤ', + 'ᾭ' => 'ᾥ', + 'ᾮ' => 'ᾦ', + 'ᾯ' => 'ᾧ', + 'Ᾰ' => 'ᾰ', + 'Ᾱ' => 'ᾱ', + 'Ὰ' => 'ὰ', + 'Ά' => 'ά', + 'ᾼ' => 'ᾳ', + 'Ὲ' => 'ὲ', + 'Έ' => 'έ', + 'Ὴ' => 'ὴ', + 'Ή' => 'ή', + 'ῌ' => 'ῃ', + 'Ῐ' => 'ῐ', + 'Ῑ' => 'ῑ', + 'Ὶ' => 'ὶ', + 'Ί' => 'ί', + 'Ῠ' => 'ῠ', + 'Ῡ' => 'ῡ', + 'Ὺ' => 'ὺ', + 'Ύ' => 'ύ', + 'Ῥ' => 'ῥ', + 'Ὸ' => 'ὸ', + 'Ό' => 'ό', + 'Ὼ' => 'ὼ', + 'Ώ' => 'ώ', + 'ῼ' => 'ῳ', + 'Ω' => 'ω', + 'K' => 'k', + 'Å' => 'å', + 'Ⅎ' => 'ⅎ', + 'Ⅰ' => 'ⅰ', + 'Ⅱ' => 'ⅱ', + 'Ⅲ' => 'ⅲ', + 'Ⅳ' => 'ⅳ', + 'Ⅴ' => 'ⅴ', + 'Ⅵ' => 'ⅵ', + 'Ⅶ' => 'ⅶ', + 'Ⅷ' => 'ⅷ', + 'Ⅸ' => 'ⅸ', + 'Ⅹ' => 'ⅹ', + 'Ⅺ' => 'ⅺ', + 'Ⅻ' => 'ⅻ', + 'Ⅼ' => 'ⅼ', + 'Ⅽ' => 'ⅽ', + 'Ⅾ' => 'ⅾ', + 'Ⅿ' => 'ⅿ', + 'Ↄ' => 'ↄ', + 'Ⓐ' => 'ⓐ', + 'Ⓑ' => 'ⓑ', + 'Ⓒ' => 'ⓒ', + 'Ⓓ' => 'ⓓ', + 'Ⓔ' => 'ⓔ', + 'Ⓕ' => 'ⓕ', + 'Ⓖ' => 'ⓖ', + 'Ⓗ' => 'ⓗ', + 'Ⓘ' => 'ⓘ', + 'Ⓙ' => 'ⓙ', + 'Ⓚ' => 'ⓚ', + 'Ⓛ' => 'ⓛ', + 'Ⓜ' => 'ⓜ', + 'Ⓝ' => 'ⓝ', + 'Ⓞ' => 'ⓞ', + 'Ⓟ' => 'ⓟ', + 'Ⓠ' => 'ⓠ', + 'Ⓡ' => 'ⓡ', + 'Ⓢ' => 'ⓢ', + 'Ⓣ' => 'ⓣ', + 'Ⓤ' => 'ⓤ', + 'Ⓥ' => 'ⓥ', + 'Ⓦ' => 'ⓦ', + 'Ⓧ' => 'ⓧ', + 'Ⓨ' => 'ⓨ', + 'Ⓩ' => 'ⓩ', + 'Ⰰ' => 'ⰰ', + 'Ⰱ' => 'ⰱ', + 'Ⰲ' => 'ⰲ', + 'Ⰳ' => 'ⰳ', + 'Ⰴ' => 'ⰴ', + 'Ⰵ' => 'ⰵ', + 'Ⰶ' => 'ⰶ', + 'Ⰷ' => 'ⰷ', + 'Ⰸ' => 'ⰸ', + 'Ⰹ' => 'ⰹ', + 'Ⰺ' => 'ⰺ', + 'Ⰻ' => 'ⰻ', + 'Ⰼ' => 'ⰼ', + 'Ⰽ' => 'ⰽ', + 'Ⰾ' => 'ⰾ', + 'Ⰿ' => 'ⰿ', + 'Ⱀ' => 'ⱀ', + 'Ⱁ' => 'ⱁ', + 'Ⱂ' => 'ⱂ', + 'Ⱃ' => 'ⱃ', + 'Ⱄ' => 'ⱄ', + 'Ⱅ' => 'ⱅ', + 'Ⱆ' => 'ⱆ', + 'Ⱇ' => 'ⱇ', + 'Ⱈ' => 'ⱈ', + 'Ⱉ' => 'ⱉ', + 'Ⱊ' => 'ⱊ', + 'Ⱋ' => 'ⱋ', + 'Ⱌ' => 'ⱌ', + 'Ⱍ' => 'ⱍ', + 'Ⱎ' => 'ⱎ', + 'Ⱏ' => 'ⱏ', + 'Ⱐ' => 'ⱐ', + 'Ⱑ' => 'ⱑ', + 'Ⱒ' => 'ⱒ', + 'Ⱓ' => 'ⱓ', + 'Ⱔ' => 'ⱔ', + 'Ⱕ' => 'ⱕ', + 'Ⱖ' => 'ⱖ', + 'Ⱗ' => 'ⱗ', + 'Ⱘ' => 'ⱘ', + 'Ⱙ' => 'ⱙ', + 'Ⱚ' => 'ⱚ', + 'Ⱛ' => 'ⱛ', + 'Ⱜ' => 'ⱜ', + 'Ⱝ' => 'ⱝ', + 'Ⱞ' => 'ⱞ', + 'Ⱡ' => 'ⱡ', + 'Ɫ' => 'ɫ', + 'Ᵽ' => 'ᵽ', + 'Ɽ' => 'ɽ', + 'Ⱨ' => 'ⱨ', + 'Ⱪ' => 'ⱪ', + 'Ⱬ' => 'ⱬ', + 'Ɑ' => 'ɑ', + 'Ɱ' => 'ɱ', + 'Ɐ' => 'ɐ', + 'Ɒ' => 'ɒ', + 'Ⱳ' => 'ⱳ', + 'Ⱶ' => 'ⱶ', + 'Ȿ' => 'ȿ', + 'Ɀ' => 'ɀ', + 'Ⲁ' => 'ⲁ', + 'Ⲃ' => 'ⲃ', + 'Ⲅ' => 'ⲅ', + 'Ⲇ' => 'ⲇ', + 'Ⲉ' => 'ⲉ', + 'Ⲋ' => 'ⲋ', + 'Ⲍ' => 'ⲍ', + 'Ⲏ' => 'ⲏ', + 'Ⲑ' => 'ⲑ', + 'Ⲓ' => 'ⲓ', + 'Ⲕ' => 'ⲕ', + 'Ⲗ' => 'ⲗ', + 'Ⲙ' => 'ⲙ', + 'Ⲛ' => 'ⲛ', + 'Ⲝ' => 'ⲝ', + 'Ⲟ' => 'ⲟ', + 'Ⲡ' => 'ⲡ', + 'Ⲣ' => 'ⲣ', + 'Ⲥ' => 'ⲥ', + 'Ⲧ' => 'ⲧ', + 'Ⲩ' => 'ⲩ', + 'Ⲫ' => 'ⲫ', + 'Ⲭ' => 'ⲭ', + 'Ⲯ' => 'ⲯ', + 'Ⲱ' => 'ⲱ', + 'Ⲳ' => 'ⲳ', + 'Ⲵ' => 'ⲵ', + 'Ⲷ' => 'ⲷ', + 'Ⲹ' => 'ⲹ', + 'Ⲻ' => 'ⲻ', + 'Ⲽ' => 'ⲽ', + 'Ⲿ' => 'ⲿ', + 'Ⳁ' => 'ⳁ', + 'Ⳃ' => 'ⳃ', + 'Ⳅ' => 'ⳅ', + 'Ⳇ' => 'ⳇ', + 'Ⳉ' => 'ⳉ', + 'Ⳋ' => 'ⳋ', + 'Ⳍ' => 'ⳍ', + 'Ⳏ' => 'ⳏ', + 'Ⳑ' => 'ⳑ', + 'Ⳓ' => 'ⳓ', + 'Ⳕ' => 'ⳕ', + 'Ⳗ' => 'ⳗ', + 'Ⳙ' => 'ⳙ', + 'Ⳛ' => 'ⳛ', + 'Ⳝ' => 'ⳝ', + 'Ⳟ' => 'ⳟ', + 'Ⳡ' => 'ⳡ', + 'Ⳣ' => 'ⳣ', + 'Ⳬ' => 'ⳬ', + 'Ⳮ' => 'ⳮ', + 'Ⳳ' => 'ⳳ', + 'Ꙁ' => 'ꙁ', + 'Ꙃ' => 'ꙃ', + 'Ꙅ' => 'ꙅ', + 'Ꙇ' => 'ꙇ', + 'Ꙉ' => 'ꙉ', + 'Ꙋ' => 'ꙋ', + 'Ꙍ' => 'ꙍ', + 'Ꙏ' => 'ꙏ', + 'Ꙑ' => 'ꙑ', + 'Ꙓ' => 'ꙓ', + 'Ꙕ' => 'ꙕ', + 'Ꙗ' => 'ꙗ', + 'Ꙙ' => 'ꙙ', + 'Ꙛ' => 'ꙛ', + 'Ꙝ' => 'ꙝ', + 'Ꙟ' => 'ꙟ', + 'Ꙡ' => 'ꙡ', + 'Ꙣ' => 'ꙣ', + 'Ꙥ' => 'ꙥ', + 'Ꙧ' => 'ꙧ', + 'Ꙩ' => 'ꙩ', + 'Ꙫ' => 'ꙫ', + 'Ꙭ' => 'ꙭ', + 'Ꚁ' => 'ꚁ', + 'Ꚃ' => 'ꚃ', + 'Ꚅ' => 'ꚅ', + 'Ꚇ' => 'ꚇ', + 'Ꚉ' => 'ꚉ', + 'Ꚋ' => 'ꚋ', + 'Ꚍ' => 'ꚍ', + 'Ꚏ' => 'ꚏ', + 'Ꚑ' => 'ꚑ', + 'Ꚓ' => 'ꚓ', + 'Ꚕ' => 'ꚕ', + 'Ꚗ' => 'ꚗ', + 'Ꚙ' => 'ꚙ', + 'Ꚛ' => 'ꚛ', + 'Ꜣ' => 'ꜣ', + 'Ꜥ' => 'ꜥ', + 'Ꜧ' => 'ꜧ', + 'Ꜩ' => 'ꜩ', + 'Ꜫ' => 'ꜫ', + 'Ꜭ' => 'ꜭ', + 'Ꜯ' => 'ꜯ', + 'Ꜳ' => 'ꜳ', + 'Ꜵ' => 'ꜵ', + 'Ꜷ' => 'ꜷ', + 'Ꜹ' => 'ꜹ', + 'Ꜻ' => 'ꜻ', + 'Ꜽ' => 'ꜽ', + 'Ꜿ' => 'ꜿ', + 'Ꝁ' => 'ꝁ', + 'Ꝃ' => 'ꝃ', + 'Ꝅ' => 'ꝅ', + 'Ꝇ' => 'ꝇ', + 'Ꝉ' => 'ꝉ', + 'Ꝋ' => 'ꝋ', + 'Ꝍ' => 'ꝍ', + 'Ꝏ' => 'ꝏ', + 'Ꝑ' => 'ꝑ', + 'Ꝓ' => 'ꝓ', + 'Ꝕ' => 'ꝕ', + 'Ꝗ' => 'ꝗ', + 'Ꝙ' => 'ꝙ', + 'Ꝛ' => 'ꝛ', + 'Ꝝ' => 'ꝝ', + 'Ꝟ' => 'ꝟ', + 'Ꝡ' => 'ꝡ', + 'Ꝣ' => 'ꝣ', + 'Ꝥ' => 'ꝥ', + 'Ꝧ' => 'ꝧ', + 'Ꝩ' => 'ꝩ', + 'Ꝫ' => 'ꝫ', + 'Ꝭ' => 'ꝭ', + 'Ꝯ' => 'ꝯ', + 'Ꝺ' => 'ꝺ', + 'Ꝼ' => 'ꝼ', + 'Ᵹ' => 'ᵹ', + 'Ꝿ' => 'ꝿ', + 'Ꞁ' => 'ꞁ', + 'Ꞃ' => 'ꞃ', + 'Ꞅ' => 'ꞅ', + 'Ꞇ' => 'ꞇ', + 'Ꞌ' => 'ꞌ', + 'Ɥ' => 'ɥ', + 'Ꞑ' => 'ꞑ', + 'Ꞓ' => 'ꞓ', + 'Ꞗ' => 'ꞗ', + 'Ꞙ' => 'ꞙ', + 'Ꞛ' => 'ꞛ', + 'Ꞝ' => 'ꞝ', + 'Ꞟ' => 'ꞟ', + 'Ꞡ' => 'ꞡ', + 'Ꞣ' => 'ꞣ', + 'Ꞥ' => 'ꞥ', + 'Ꞧ' => 'ꞧ', + 'Ꞩ' => 'ꞩ', + 'Ɦ' => 'ɦ', + 'Ɜ' => 'ɜ', + 'Ɡ' => 'ɡ', + 'Ɬ' => 'ɬ', + 'Ɪ' => 'ɪ', + 'Ʞ' => 'ʞ', + 'Ʇ' => 'ʇ', + 'Ʝ' => 'ʝ', + 'Ꭓ' => 'ꭓ', + 'Ꞵ' => 'ꞵ', + 'Ꞷ' => 'ꞷ', + 'Ꞹ' => 'ꞹ', + 'Ꞻ' => 'ꞻ', + 'Ꞽ' => 'ꞽ', + 'Ꞿ' => 'ꞿ', + 'Ꟃ' => 'ꟃ', + 'Ꞔ' => 'ꞔ', + 'Ʂ' => 'ʂ', + 'Ᶎ' => 'ᶎ', + 'Ꟈ' => 'ꟈ', + 'Ꟊ' => 'ꟊ', + 'Ꟶ' => 'ꟶ', + 'A' => 'a', + 'B' => 'b', + 'C' => 'c', + 'D' => 'd', + 'E' => 'e', + 'F' => 'f', + 'G' => 'g', + 'H' => 'h', + 'I' => 'i', + 'J' => 'j', + 'K' => 'k', + 'L' => 'l', + 'M' => 'm', + 'N' => 'n', + 'O' => 'o', + 'P' => 'p', + 'Q' => 'q', + 'R' => 'r', + 'S' => 's', + 'T' => 't', + 'U' => 'u', + 'V' => 'v', + 'W' => 'w', + 'X' => 'x', + 'Y' => 'y', + 'Z' => 'z', + '𐐀' => '𐐨', + '𐐁' => '𐐩', + '𐐂' => '𐐪', + '𐐃' => '𐐫', + '𐐄' => '𐐬', + '𐐅' => '𐐭', + '𐐆' => '𐐮', + '𐐇' => '𐐯', + '𐐈' => '𐐰', + '𐐉' => '𐐱', + '𐐊' => '𐐲', + '𐐋' => '𐐳', + '𐐌' => '𐐴', + '𐐍' => '𐐵', + '𐐎' => '𐐶', + '𐐏' => '𐐷', + '𐐐' => '𐐸', + '𐐑' => '𐐹', + '𐐒' => '𐐺', + '𐐓' => '𐐻', + '𐐔' => '𐐼', + '𐐕' => '𐐽', + '𐐖' => '𐐾', + '𐐗' => '𐐿', + '𐐘' => '𐑀', + '𐐙' => '𐑁', + '𐐚' => '𐑂', + '𐐛' => '𐑃', + '𐐜' => '𐑄', + '𐐝' => '𐑅', + '𐐞' => '𐑆', + '𐐟' => '𐑇', + '𐐠' => '𐑈', + '𐐡' => '𐑉', + '𐐢' => '𐑊', + '𐐣' => '𐑋', + '𐐤' => '𐑌', + '𐐥' => '𐑍', + '𐐦' => '𐑎', + '𐐧' => '𐑏', + '𐒰' => '𐓘', + '𐒱' => '𐓙', + '𐒲' => '𐓚', + '𐒳' => '𐓛', + '𐒴' => '𐓜', + '𐒵' => '𐓝', + '𐒶' => '𐓞', + '𐒷' => '𐓟', + '𐒸' => '𐓠', + '𐒹' => '𐓡', + '𐒺' => '𐓢', + '𐒻' => '𐓣', + '𐒼' => '𐓤', + '𐒽' => '𐓥', + '𐒾' => '𐓦', + '𐒿' => '𐓧', + '𐓀' => '𐓨', + '𐓁' => '𐓩', + '𐓂' => '𐓪', + '𐓃' => '𐓫', + '𐓄' => '𐓬', + '𐓅' => '𐓭', + '𐓆' => '𐓮', + '𐓇' => '𐓯', + '𐓈' => '𐓰', + '𐓉' => '𐓱', + '𐓊' => '𐓲', + '𐓋' => '𐓳', + '𐓌' => '𐓴', + '𐓍' => '𐓵', + '𐓎' => '𐓶', + '𐓏' => '𐓷', + '𐓐' => '𐓸', + '𐓑' => '𐓹', + '𐓒' => '𐓺', + '𐓓' => '𐓻', + '𐲀' => '𐳀', + '𐲁' => '𐳁', + '𐲂' => '𐳂', + '𐲃' => '𐳃', + '𐲄' => '𐳄', + '𐲅' => '𐳅', + '𐲆' => '𐳆', + '𐲇' => '𐳇', + '𐲈' => '𐳈', + '𐲉' => '𐳉', + '𐲊' => '𐳊', + '𐲋' => '𐳋', + '𐲌' => '𐳌', + '𐲍' => '𐳍', + '𐲎' => '𐳎', + '𐲏' => '𐳏', + '𐲐' => '𐳐', + '𐲑' => '𐳑', + '𐲒' => '𐳒', + '𐲓' => '𐳓', + '𐲔' => '𐳔', + '𐲕' => '𐳕', + '𐲖' => '𐳖', + '𐲗' => '𐳗', + '𐲘' => '𐳘', + '𐲙' => '𐳙', + '𐲚' => '𐳚', + '𐲛' => '𐳛', + '𐲜' => '𐳜', + '𐲝' => '𐳝', + '𐲞' => '𐳞', + '𐲟' => '𐳟', + '𐲠' => '𐳠', + '𐲡' => '𐳡', + '𐲢' => '𐳢', + '𐲣' => '𐳣', + '𐲤' => '𐳤', + '𐲥' => '𐳥', + '𐲦' => '𐳦', + '𐲧' => '𐳧', + '𐲨' => '𐳨', + '𐲩' => '𐳩', + '𐲪' => '𐳪', + '𐲫' => '𐳫', + '𐲬' => '𐳬', + '𐲭' => '𐳭', + '𐲮' => '𐳮', + '𐲯' => '𐳯', + '𐲰' => '𐳰', + '𐲱' => '𐳱', + '𐲲' => '𐳲', + '𑢠' => '𑣀', + '𑢡' => '𑣁', + '𑢢' => '𑣂', + '𑢣' => '𑣃', + '𑢤' => '𑣄', + '𑢥' => '𑣅', + '𑢦' => '𑣆', + '𑢧' => '𑣇', + '𑢨' => '𑣈', + '𑢩' => '𑣉', + '𑢪' => '𑣊', + '𑢫' => '𑣋', + '𑢬' => '𑣌', + '𑢭' => '𑣍', + '𑢮' => '𑣎', + '𑢯' => '𑣏', + '𑢰' => '𑣐', + '𑢱' => '𑣑', + '𑢲' => '𑣒', + '𑢳' => '𑣓', + '𑢴' => '𑣔', + '𑢵' => '𑣕', + '𑢶' => '𑣖', + '𑢷' => '𑣗', + '𑢸' => '𑣘', + '𑢹' => '𑣙', + '𑢺' => '𑣚', + '𑢻' => '𑣛', + '𑢼' => '𑣜', + '𑢽' => '𑣝', + '𑢾' => '𑣞', + '𑢿' => '𑣟', + '𖹀' => '𖹠', + '𖹁' => '𖹡', + '𖹂' => '𖹢', + '𖹃' => '𖹣', + '𖹄' => '𖹤', + '𖹅' => '𖹥', + '𖹆' => '𖹦', + '𖹇' => '𖹧', + '𖹈' => '𖹨', + '𖹉' => '𖹩', + '𖹊' => '𖹪', + '𖹋' => '𖹫', + '𖹌' => '𖹬', + '𖹍' => '𖹭', + '𖹎' => '𖹮', + '𖹏' => '𖹯', + '𖹐' => '𖹰', + '𖹑' => '𖹱', + '𖹒' => '𖹲', + '𖹓' => '𖹳', + '𖹔' => '𖹴', + '𖹕' => '𖹵', + '𖹖' => '𖹶', + '𖹗' => '𖹷', + '𖹘' => '𖹸', + '𖹙' => '𖹹', + '𖹚' => '𖹺', + '𖹛' => '𖹻', + '𖹜' => '𖹼', + '𖹝' => '𖹽', + '𖹞' => '𖹾', + '𖹟' => '𖹿', + '𞤀' => '𞤢', + '𞤁' => '𞤣', + '𞤂' => '𞤤', + '𞤃' => '𞤥', + '𞤄' => '𞤦', + '𞤅' => '𞤧', + '𞤆' => '𞤨', + '𞤇' => '𞤩', + '𞤈' => '𞤪', + '𞤉' => '𞤫', + '𞤊' => '𞤬', + '𞤋' => '𞤭', + '𞤌' => '𞤮', + '𞤍' => '𞤯', + '𞤎' => '𞤰', + '𞤏' => '𞤱', + '𞤐' => '𞤲', + '𞤑' => '𞤳', + '𞤒' => '𞤴', + '𞤓' => '𞤵', + '𞤔' => '𞤶', + '𞤕' => '𞤷', + '𞤖' => '𞤸', + '𞤗' => '𞤹', + '𞤘' => '𞤺', + '𞤙' => '𞤻', + '𞤚' => '𞤼', + '𞤛' => '𞤽', + '𞤜' => '𞤾', + '𞤝' => '𞤿', + '𞤞' => '𞥀', + '𞤟' => '𞥁', + '𞤠' => '𞥂', + '𞤡' => '𞥃', +); diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php new file mode 100644 index 00000000000..2a8f6e73b99 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php @@ -0,0 +1,5 @@ + 'A', + 'b' => 'B', + 'c' => 'C', + 'd' => 'D', + 'e' => 'E', + 'f' => 'F', + 'g' => 'G', + 'h' => 'H', + 'i' => 'I', + 'j' => 'J', + 'k' => 'K', + 'l' => 'L', + 'm' => 'M', + 'n' => 'N', + 'o' => 'O', + 'p' => 'P', + 'q' => 'Q', + 'r' => 'R', + 's' => 'S', + 't' => 'T', + 'u' => 'U', + 'v' => 'V', + 'w' => 'W', + 'x' => 'X', + 'y' => 'Y', + 'z' => 'Z', + 'µ' => 'Μ', + 'à' => 'À', + 'á' => 'Á', + 'â' => 'Â', + 'ã' => 'Ã', + 'ä' => 'Ä', + 'å' => 'Å', + 'æ' => 'Æ', + 'ç' => 'Ç', + 'è' => 'È', + 'é' => 'É', + 'ê' => 'Ê', + 'ë' => 'Ë', + 'ì' => 'Ì', + 'í' => 'Í', + 'î' => 'Î', + 'ï' => 'Ï', + 'ð' => 'Ð', + 'ñ' => 'Ñ', + 'ò' => 'Ò', + 'ó' => 'Ó', + 'ô' => 'Ô', + 'õ' => 'Õ', + 'ö' => 'Ö', + 'ø' => 'Ø', + 'ù' => 'Ù', + 'ú' => 'Ú', + 'û' => 'Û', + 'ü' => 'Ü', + 'ý' => 'Ý', + 'þ' => 'Þ', + 'ÿ' => 'Ÿ', + 'ā' => 'Ā', + 'ă' => 'Ă', + 'ą' => 'Ą', + 'ć' => 'Ć', + 'ĉ' => 'Ĉ', + 'ċ' => 'Ċ', + 'č' => 'Č', + 'ď' => 'Ď', + 'đ' => 'Đ', + 'ē' => 'Ē', + 'ĕ' => 'Ĕ', + 'ė' => 'Ė', + 'ę' => 'Ę', + 'ě' => 'Ě', + 'ĝ' => 'Ĝ', + 'ğ' => 'Ğ', + 'ġ' => 'Ġ', + 'ģ' => 'Ģ', + 'ĥ' => 'Ĥ', + 'ħ' => 'Ħ', + 'ĩ' => 'Ĩ', + 'ī' => 'Ī', + 'ĭ' => 'Ĭ', + 'į' => 'Į', + 'ı' => 'I', + 'ij' => 'IJ', + 'ĵ' => 'Ĵ', + 'ķ' => 'Ķ', + 'ĺ' => 'Ĺ', + 'ļ' => 'Ļ', + 'ľ' => 'Ľ', + 'ŀ' => 'Ŀ', + 'ł' => 'Ł', + 'ń' => 'Ń', + 'ņ' => 'Ņ', + 'ň' => 'Ň', + 'ŋ' => 'Ŋ', + 'ō' => 'Ō', + 'ŏ' => 'Ŏ', + 'ő' => 'Ő', + 'œ' => 'Œ', + 'ŕ' => 'Ŕ', + 'ŗ' => 'Ŗ', + 'ř' => 'Ř', + 'ś' => 'Ś', + 'ŝ' => 'Ŝ', + 'ş' => 'Ş', + 'š' => 'Š', + 'ţ' => 'Ţ', + 'ť' => 'Ť', + 'ŧ' => 'Ŧ', + 'ũ' => 'Ũ', + 'ū' => 'Ū', + 'ŭ' => 'Ŭ', + 'ů' => 'Ů', + 'ű' => 'Ű', + 'ų' => 'Ų', + 'ŵ' => 'Ŵ', + 'ŷ' => 'Ŷ', + 'ź' => 'Ź', + 'ż' => 'Ż', + 'ž' => 'Ž', + 'ſ' => 'S', + 'ƀ' => 'Ƀ', + 'ƃ' => 'Ƃ', + 'ƅ' => 'Ƅ', + 'ƈ' => 'Ƈ', + 'ƌ' => 'Ƌ', + 'ƒ' => 'Ƒ', + 'ƕ' => 'Ƕ', + 'ƙ' => 'Ƙ', + 'ƚ' => 'Ƚ', + 'ƞ' => 'Ƞ', + 'ơ' => 'Ơ', + 'ƣ' => 'Ƣ', + 'ƥ' => 'Ƥ', + 'ƨ' => 'Ƨ', + 'ƭ' => 'Ƭ', + 'ư' => 'Ư', + 'ƴ' => 'Ƴ', + 'ƶ' => 'Ƶ', + 'ƹ' => 'Ƹ', + 'ƽ' => 'Ƽ', + 'ƿ' => 'Ƿ', + 'Dž' => 'DŽ', + 'dž' => 'DŽ', + 'Lj' => 'LJ', + 'lj' => 'LJ', + 'Nj' => 'NJ', + 'nj' => 'NJ', + 'ǎ' => 'Ǎ', + 'ǐ' => 'Ǐ', + 'ǒ' => 'Ǒ', + 'ǔ' => 'Ǔ', + 'ǖ' => 'Ǖ', + 'ǘ' => 'Ǘ', + 'ǚ' => 'Ǚ', + 'ǜ' => 'Ǜ', + 'ǝ' => 'Ǝ', + 'ǟ' => 'Ǟ', + 'ǡ' => 'Ǡ', + 'ǣ' => 'Ǣ', + 'ǥ' => 'Ǥ', + 'ǧ' => 'Ǧ', + 'ǩ' => 'Ǩ', + 'ǫ' => 'Ǫ', + 'ǭ' => 'Ǭ', + 'ǯ' => 'Ǯ', + 'Dz' => 'DZ', + 'dz' => 'DZ', + 'ǵ' => 'Ǵ', + 'ǹ' => 'Ǹ', + 'ǻ' => 'Ǻ', + 'ǽ' => 'Ǽ', + 'ǿ' => 'Ǿ', + 'ȁ' => 'Ȁ', + 'ȃ' => 'Ȃ', + 'ȅ' => 'Ȅ', + 'ȇ' => 'Ȇ', + 'ȉ' => 'Ȉ', + 'ȋ' => 'Ȋ', + 'ȍ' => 'Ȍ', + 'ȏ' => 'Ȏ', + 'ȑ' => 'Ȑ', + 'ȓ' => 'Ȓ', + 'ȕ' => 'Ȕ', + 'ȗ' => 'Ȗ', + 'ș' => 'Ș', + 'ț' => 'Ț', + 'ȝ' => 'Ȝ', + 'ȟ' => 'Ȟ', + 'ȣ' => 'Ȣ', + 'ȥ' => 'Ȥ', + 'ȧ' => 'Ȧ', + 'ȩ' => 'Ȩ', + 'ȫ' => 'Ȫ', + 'ȭ' => 'Ȭ', + 'ȯ' => 'Ȯ', + 'ȱ' => 'Ȱ', + 'ȳ' => 'Ȳ', + 'ȼ' => 'Ȼ', + 'ȿ' => 'Ȿ', + 'ɀ' => 'Ɀ', + 'ɂ' => 'Ɂ', + 'ɇ' => 'Ɇ', + 'ɉ' => 'Ɉ', + 'ɋ' => 'Ɋ', + 'ɍ' => 'Ɍ', + 'ɏ' => 'Ɏ', + 'ɐ' => 'Ɐ', + 'ɑ' => 'Ɑ', + 'ɒ' => 'Ɒ', + 'ɓ' => 'Ɓ', + 'ɔ' => 'Ɔ', + 'ɖ' => 'Ɖ', + 'ɗ' => 'Ɗ', + 'ə' => 'Ə', + 'ɛ' => 'Ɛ', + 'ɜ' => 'Ɜ', + 'ɠ' => 'Ɠ', + 'ɡ' => 'Ɡ', + 'ɣ' => 'Ɣ', + 'ɥ' => 'Ɥ', + 'ɦ' => 'Ɦ', + 'ɨ' => 'Ɨ', + 'ɩ' => 'Ɩ', + 'ɪ' => 'Ɪ', + 'ɫ' => 'Ɫ', + 'ɬ' => 'Ɬ', + 'ɯ' => 'Ɯ', + 'ɱ' => 'Ɱ', + 'ɲ' => 'Ɲ', + 'ɵ' => 'Ɵ', + 'ɽ' => 'Ɽ', + 'ʀ' => 'Ʀ', + 'ʂ' => 'Ʂ', + 'ʃ' => 'Ʃ', + 'ʇ' => 'Ʇ', + 'ʈ' => 'Ʈ', + 'ʉ' => 'Ʉ', + 'ʊ' => 'Ʊ', + 'ʋ' => 'Ʋ', + 'ʌ' => 'Ʌ', + 'ʒ' => 'Ʒ', + 'ʝ' => 'Ʝ', + 'ʞ' => 'Ʞ', + 'ͅ' => 'Ι', + 'ͱ' => 'Ͱ', + 'ͳ' => 'Ͳ', + 'ͷ' => 'Ͷ', + 'ͻ' => 'Ͻ', + 'ͼ' => 'Ͼ', + 'ͽ' => 'Ͽ', + 'ά' => 'Ά', + 'έ' => 'Έ', + 'ή' => 'Ή', + 'ί' => 'Ί', + 'α' => 'Α', + 'β' => 'Β', + 'γ' => 'Γ', + 'δ' => 'Δ', + 'ε' => 'Ε', + 'ζ' => 'Ζ', + 'η' => 'Η', + 'θ' => 'Θ', + 'ι' => 'Ι', + 'κ' => 'Κ', + 'λ' => 'Λ', + 'μ' => 'Μ', + 'ν' => 'Ν', + 'ξ' => 'Ξ', + 'ο' => 'Ο', + 'π' => 'Π', + 'ρ' => 'Ρ', + 'ς' => 'Σ', + 'σ' => 'Σ', + 'τ' => 'Τ', + 'υ' => 'Υ', + 'φ' => 'Φ', + 'χ' => 'Χ', + 'ψ' => 'Ψ', + 'ω' => 'Ω', + 'ϊ' => 'Ϊ', + 'ϋ' => 'Ϋ', + 'ό' => 'Ό', + 'ύ' => 'Ύ', + 'ώ' => 'Ώ', + 'ϐ' => 'Β', + 'ϑ' => 'Θ', + 'ϕ' => 'Φ', + 'ϖ' => 'Π', + 'ϗ' => 'Ϗ', + 'ϙ' => 'Ϙ', + 'ϛ' => 'Ϛ', + 'ϝ' => 'Ϝ', + 'ϟ' => 'Ϟ', + 'ϡ' => 'Ϡ', + 'ϣ' => 'Ϣ', + 'ϥ' => 'Ϥ', + 'ϧ' => 'Ϧ', + 'ϩ' => 'Ϩ', + 'ϫ' => 'Ϫ', + 'ϭ' => 'Ϭ', + 'ϯ' => 'Ϯ', + 'ϰ' => 'Κ', + 'ϱ' => 'Ρ', + 'ϲ' => 'Ϲ', + 'ϳ' => 'Ϳ', + 'ϵ' => 'Ε', + 'ϸ' => 'Ϸ', + 'ϻ' => 'Ϻ', + 'а' => 'А', + 'б' => 'Б', + 'в' => 'В', + 'г' => 'Г', + 'д' => 'Д', + 'е' => 'Е', + 'ж' => 'Ж', + 'з' => 'З', + 'и' => 'И', + 'й' => 'Й', + 'к' => 'К', + 'л' => 'Л', + 'м' => 'М', + 'н' => 'Н', + 'о' => 'О', + 'п' => 'П', + 'р' => 'Р', + 'с' => 'С', + 'т' => 'Т', + 'у' => 'У', + 'ф' => 'Ф', + 'х' => 'Х', + 'ц' => 'Ц', + 'ч' => 'Ч', + 'ш' => 'Ш', + 'щ' => 'Щ', + 'ъ' => 'Ъ', + 'ы' => 'Ы', + 'ь' => 'Ь', + 'э' => 'Э', + 'ю' => 'Ю', + 'я' => 'Я', + 'ѐ' => 'Ѐ', + 'ё' => 'Ё', + 'ђ' => 'Ђ', + 'ѓ' => 'Ѓ', + 'є' => 'Є', + 'ѕ' => 'Ѕ', + 'і' => 'І', + 'ї' => 'Ї', + 'ј' => 'Ј', + 'љ' => 'Љ', + 'њ' => 'Њ', + 'ћ' => 'Ћ', + 'ќ' => 'Ќ', + 'ѝ' => 'Ѝ', + 'ў' => 'Ў', + 'џ' => 'Џ', + 'ѡ' => 'Ѡ', + 'ѣ' => 'Ѣ', + 'ѥ' => 'Ѥ', + 'ѧ' => 'Ѧ', + 'ѩ' => 'Ѩ', + 'ѫ' => 'Ѫ', + 'ѭ' => 'Ѭ', + 'ѯ' => 'Ѯ', + 'ѱ' => 'Ѱ', + 'ѳ' => 'Ѳ', + 'ѵ' => 'Ѵ', + 'ѷ' => 'Ѷ', + 'ѹ' => 'Ѹ', + 'ѻ' => 'Ѻ', + 'ѽ' => 'Ѽ', + 'ѿ' => 'Ѿ', + 'ҁ' => 'Ҁ', + 'ҋ' => 'Ҋ', + 'ҍ' => 'Ҍ', + 'ҏ' => 'Ҏ', + 'ґ' => 'Ґ', + 'ғ' => 'Ғ', + 'ҕ' => 'Ҕ', + 'җ' => 'Җ', + 'ҙ' => 'Ҙ', + 'қ' => 'Қ', + 'ҝ' => 'Ҝ', + 'ҟ' => 'Ҟ', + 'ҡ' => 'Ҡ', + 'ң' => 'Ң', + 'ҥ' => 'Ҥ', + 'ҧ' => 'Ҧ', + 'ҩ' => 'Ҩ', + 'ҫ' => 'Ҫ', + 'ҭ' => 'Ҭ', + 'ү' => 'Ү', + 'ұ' => 'Ұ', + 'ҳ' => 'Ҳ', + 'ҵ' => 'Ҵ', + 'ҷ' => 'Ҷ', + 'ҹ' => 'Ҹ', + 'һ' => 'Һ', + 'ҽ' => 'Ҽ', + 'ҿ' => 'Ҿ', + 'ӂ' => 'Ӂ', + 'ӄ' => 'Ӄ', + 'ӆ' => 'Ӆ', + 'ӈ' => 'Ӈ', + 'ӊ' => 'Ӊ', + 'ӌ' => 'Ӌ', + 'ӎ' => 'Ӎ', + 'ӏ' => 'Ӏ', + 'ӑ' => 'Ӑ', + 'ӓ' => 'Ӓ', + 'ӕ' => 'Ӕ', + 'ӗ' => 'Ӗ', + 'ә' => 'Ә', + 'ӛ' => 'Ӛ', + 'ӝ' => 'Ӝ', + 'ӟ' => 'Ӟ', + 'ӡ' => 'Ӡ', + 'ӣ' => 'Ӣ', + 'ӥ' => 'Ӥ', + 'ӧ' => 'Ӧ', + 'ө' => 'Ө', + 'ӫ' => 'Ӫ', + 'ӭ' => 'Ӭ', + 'ӯ' => 'Ӯ', + 'ӱ' => 'Ӱ', + 'ӳ' => 'Ӳ', + 'ӵ' => 'Ӵ', + 'ӷ' => 'Ӷ', + 'ӹ' => 'Ӹ', + 'ӻ' => 'Ӻ', + 'ӽ' => 'Ӽ', + 'ӿ' => 'Ӿ', + 'ԁ' => 'Ԁ', + 'ԃ' => 'Ԃ', + 'ԅ' => 'Ԅ', + 'ԇ' => 'Ԇ', + 'ԉ' => 'Ԉ', + 'ԋ' => 'Ԋ', + 'ԍ' => 'Ԍ', + 'ԏ' => 'Ԏ', + 'ԑ' => 'Ԑ', + 'ԓ' => 'Ԓ', + 'ԕ' => 'Ԕ', + 'ԗ' => 'Ԗ', + 'ԙ' => 'Ԙ', + 'ԛ' => 'Ԛ', + 'ԝ' => 'Ԝ', + 'ԟ' => 'Ԟ', + 'ԡ' => 'Ԡ', + 'ԣ' => 'Ԣ', + 'ԥ' => 'Ԥ', + 'ԧ' => 'Ԧ', + 'ԩ' => 'Ԩ', + 'ԫ' => 'Ԫ', + 'ԭ' => 'Ԭ', + 'ԯ' => 'Ԯ', + 'ա' => 'Ա', + 'բ' => 'Բ', + 'գ' => 'Գ', + 'դ' => 'Դ', + 'ե' => 'Ե', + 'զ' => 'Զ', + 'է' => 'Է', + 'ը' => 'Ը', + 'թ' => 'Թ', + 'ժ' => 'Ժ', + 'ի' => 'Ի', + 'լ' => 'Լ', + 'խ' => 'Խ', + 'ծ' => 'Ծ', + 'կ' => 'Կ', + 'հ' => 'Հ', + 'ձ' => 'Ձ', + 'ղ' => 'Ղ', + 'ճ' => 'Ճ', + 'մ' => 'Մ', + 'յ' => 'Յ', + 'ն' => 'Ն', + 'շ' => 'Շ', + 'ո' => 'Ո', + 'չ' => 'Չ', + 'պ' => 'Պ', + 'ջ' => 'Ջ', + 'ռ' => 'Ռ', + 'ս' => 'Ս', + 'վ' => 'Վ', + 'տ' => 'Տ', + 'ր' => 'Ր', + 'ց' => 'Ց', + 'ւ' => 'Ւ', + 'փ' => 'Փ', + 'ք' => 'Ք', + 'օ' => 'Օ', + 'ֆ' => 'Ֆ', + 'ა' => 'Ა', + 'ბ' => 'Ბ', + 'გ' => 'Გ', + 'დ' => 'Დ', + 'ე' => 'Ე', + 'ვ' => 'Ვ', + 'ზ' => 'Ზ', + 'თ' => 'Თ', + 'ი' => 'Ი', + 'კ' => 'Კ', + 'ლ' => 'Ლ', + 'მ' => 'Მ', + 'ნ' => 'Ნ', + 'ო' => 'Ო', + 'პ' => 'Პ', + 'ჟ' => 'Ჟ', + 'რ' => 'Რ', + 'ს' => 'Ს', + 'ტ' => 'Ტ', + 'უ' => 'Უ', + 'ფ' => 'Ფ', + 'ქ' => 'Ქ', + 'ღ' => 'Ღ', + 'ყ' => 'Ყ', + 'შ' => 'Შ', + 'ჩ' => 'Ჩ', + 'ც' => 'Ც', + 'ძ' => 'Ძ', + 'წ' => 'Წ', + 'ჭ' => 'Ჭ', + 'ხ' => 'Ხ', + 'ჯ' => 'Ჯ', + 'ჰ' => 'Ჰ', + 'ჱ' => 'Ჱ', + 'ჲ' => 'Ჲ', + 'ჳ' => 'Ჳ', + 'ჴ' => 'Ჴ', + 'ჵ' => 'Ჵ', + 'ჶ' => 'Ჶ', + 'ჷ' => 'Ჷ', + 'ჸ' => 'Ჸ', + 'ჹ' => 'Ჹ', + 'ჺ' => 'Ჺ', + 'ჽ' => 'Ჽ', + 'ჾ' => 'Ჾ', + 'ჿ' => 'Ჿ', + 'ᏸ' => 'Ᏸ', + 'ᏹ' => 'Ᏹ', + 'ᏺ' => 'Ᏺ', + 'ᏻ' => 'Ᏻ', + 'ᏼ' => 'Ᏼ', + 'ᏽ' => 'Ᏽ', + 'ᲀ' => 'В', + 'ᲁ' => 'Д', + 'ᲂ' => 'О', + 'ᲃ' => 'С', + 'ᲄ' => 'Т', + 'ᲅ' => 'Т', + 'ᲆ' => 'Ъ', + 'ᲇ' => 'Ѣ', + 'ᲈ' => 'Ꙋ', + 'ᵹ' => 'Ᵹ', + 'ᵽ' => 'Ᵽ', + 'ᶎ' => 'Ᶎ', + 'ḁ' => 'Ḁ', + 'ḃ' => 'Ḃ', + 'ḅ' => 'Ḅ', + 'ḇ' => 'Ḇ', + 'ḉ' => 'Ḉ', + 'ḋ' => 'Ḋ', + 'ḍ' => 'Ḍ', + 'ḏ' => 'Ḏ', + 'ḑ' => 'Ḑ', + 'ḓ' => 'Ḓ', + 'ḕ' => 'Ḕ', + 'ḗ' => 'Ḗ', + 'ḙ' => 'Ḙ', + 'ḛ' => 'Ḛ', + 'ḝ' => 'Ḝ', + 'ḟ' => 'Ḟ', + 'ḡ' => 'Ḡ', + 'ḣ' => 'Ḣ', + 'ḥ' => 'Ḥ', + 'ḧ' => 'Ḧ', + 'ḩ' => 'Ḩ', + 'ḫ' => 'Ḫ', + 'ḭ' => 'Ḭ', + 'ḯ' => 'Ḯ', + 'ḱ' => 'Ḱ', + 'ḳ' => 'Ḳ', + 'ḵ' => 'Ḵ', + 'ḷ' => 'Ḷ', + 'ḹ' => 'Ḹ', + 'ḻ' => 'Ḻ', + 'ḽ' => 'Ḽ', + 'ḿ' => 'Ḿ', + 'ṁ' => 'Ṁ', + 'ṃ' => 'Ṃ', + 'ṅ' => 'Ṅ', + 'ṇ' => 'Ṇ', + 'ṉ' => 'Ṉ', + 'ṋ' => 'Ṋ', + 'ṍ' => 'Ṍ', + 'ṏ' => 'Ṏ', + 'ṑ' => 'Ṑ', + 'ṓ' => 'Ṓ', + 'ṕ' => 'Ṕ', + 'ṗ' => 'Ṗ', + 'ṙ' => 'Ṙ', + 'ṛ' => 'Ṛ', + 'ṝ' => 'Ṝ', + 'ṟ' => 'Ṟ', + 'ṡ' => 'Ṡ', + 'ṣ' => 'Ṣ', + 'ṥ' => 'Ṥ', + 'ṧ' => 'Ṧ', + 'ṩ' => 'Ṩ', + 'ṫ' => 'Ṫ', + 'ṭ' => 'Ṭ', + 'ṯ' => 'Ṯ', + 'ṱ' => 'Ṱ', + 'ṳ' => 'Ṳ', + 'ṵ' => 'Ṵ', + 'ṷ' => 'Ṷ', + 'ṹ' => 'Ṹ', + 'ṻ' => 'Ṻ', + 'ṽ' => 'Ṽ', + 'ṿ' => 'Ṿ', + 'ẁ' => 'Ẁ', + 'ẃ' => 'Ẃ', + 'ẅ' => 'Ẅ', + 'ẇ' => 'Ẇ', + 'ẉ' => 'Ẉ', + 'ẋ' => 'Ẋ', + 'ẍ' => 'Ẍ', + 'ẏ' => 'Ẏ', + 'ẑ' => 'Ẑ', + 'ẓ' => 'Ẓ', + 'ẕ' => 'Ẕ', + 'ẛ' => 'Ṡ', + 'ạ' => 'Ạ', + 'ả' => 'Ả', + 'ấ' => 'Ấ', + 'ầ' => 'Ầ', + 'ẩ' => 'Ẩ', + 'ẫ' => 'Ẫ', + 'ậ' => 'Ậ', + 'ắ' => 'Ắ', + 'ằ' => 'Ằ', + 'ẳ' => 'Ẳ', + 'ẵ' => 'Ẵ', + 'ặ' => 'Ặ', + 'ẹ' => 'Ẹ', + 'ẻ' => 'Ẻ', + 'ẽ' => 'Ẽ', + 'ế' => 'Ế', + 'ề' => 'Ề', + 'ể' => 'Ể', + 'ễ' => 'Ễ', + 'ệ' => 'Ệ', + 'ỉ' => 'Ỉ', + 'ị' => 'Ị', + 'ọ' => 'Ọ', + 'ỏ' => 'Ỏ', + 'ố' => 'Ố', + 'ồ' => 'Ồ', + 'ổ' => 'Ổ', + 'ỗ' => 'Ỗ', + 'ộ' => 'Ộ', + 'ớ' => 'Ớ', + 'ờ' => 'Ờ', + 'ở' => 'Ở', + 'ỡ' => 'Ỡ', + 'ợ' => 'Ợ', + 'ụ' => 'Ụ', + 'ủ' => 'Ủ', + 'ứ' => 'Ứ', + 'ừ' => 'Ừ', + 'ử' => 'Ử', + 'ữ' => 'Ữ', + 'ự' => 'Ự', + 'ỳ' => 'Ỳ', + 'ỵ' => 'Ỵ', + 'ỷ' => 'Ỷ', + 'ỹ' => 'Ỹ', + 'ỻ' => 'Ỻ', + 'ỽ' => 'Ỽ', + 'ỿ' => 'Ỿ', + 'ἀ' => 'Ἀ', + 'ἁ' => 'Ἁ', + 'ἂ' => 'Ἂ', + 'ἃ' => 'Ἃ', + 'ἄ' => 'Ἄ', + 'ἅ' => 'Ἅ', + 'ἆ' => 'Ἆ', + 'ἇ' => 'Ἇ', + 'ἐ' => 'Ἐ', + 'ἑ' => 'Ἑ', + 'ἒ' => 'Ἒ', + 'ἓ' => 'Ἓ', + 'ἔ' => 'Ἔ', + 'ἕ' => 'Ἕ', + 'ἠ' => 'Ἠ', + 'ἡ' => 'Ἡ', + 'ἢ' => 'Ἢ', + 'ἣ' => 'Ἣ', + 'ἤ' => 'Ἤ', + 'ἥ' => 'Ἥ', + 'ἦ' => 'Ἦ', + 'ἧ' => 'Ἧ', + 'ἰ' => 'Ἰ', + 'ἱ' => 'Ἱ', + 'ἲ' => 'Ἲ', + 'ἳ' => 'Ἳ', + 'ἴ' => 'Ἴ', + 'ἵ' => 'Ἵ', + 'ἶ' => 'Ἶ', + 'ἷ' => 'Ἷ', + 'ὀ' => 'Ὀ', + 'ὁ' => 'Ὁ', + 'ὂ' => 'Ὂ', + 'ὃ' => 'Ὃ', + 'ὄ' => 'Ὄ', + 'ὅ' => 'Ὅ', + 'ὑ' => 'Ὑ', + 'ὓ' => 'Ὓ', + 'ὕ' => 'Ὕ', + 'ὗ' => 'Ὗ', + 'ὠ' => 'Ὠ', + 'ὡ' => 'Ὡ', + 'ὢ' => 'Ὢ', + 'ὣ' => 'Ὣ', + 'ὤ' => 'Ὤ', + 'ὥ' => 'Ὥ', + 'ὦ' => 'Ὦ', + 'ὧ' => 'Ὧ', + 'ὰ' => 'Ὰ', + 'ά' => 'Ά', + 'ὲ' => 'Ὲ', + 'έ' => 'Έ', + 'ὴ' => 'Ὴ', + 'ή' => 'Ή', + 'ὶ' => 'Ὶ', + 'ί' => 'Ί', + 'ὸ' => 'Ὸ', + 'ό' => 'Ό', + 'ὺ' => 'Ὺ', + 'ύ' => 'Ύ', + 'ὼ' => 'Ὼ', + 'ώ' => 'Ώ', + 'ᾀ' => 'ἈΙ', + 'ᾁ' => 'ἉΙ', + 'ᾂ' => 'ἊΙ', + 'ᾃ' => 'ἋΙ', + 'ᾄ' => 'ἌΙ', + 'ᾅ' => 'ἍΙ', + 'ᾆ' => 'ἎΙ', + 'ᾇ' => 'ἏΙ', + 'ᾐ' => 'ἨΙ', + 'ᾑ' => 'ἩΙ', + 'ᾒ' => 'ἪΙ', + 'ᾓ' => 'ἫΙ', + 'ᾔ' => 'ἬΙ', + 'ᾕ' => 'ἭΙ', + 'ᾖ' => 'ἮΙ', + 'ᾗ' => 'ἯΙ', + 'ᾠ' => 'ὨΙ', + 'ᾡ' => 'ὩΙ', + 'ᾢ' => 'ὪΙ', + 'ᾣ' => 'ὫΙ', + 'ᾤ' => 'ὬΙ', + 'ᾥ' => 'ὭΙ', + 'ᾦ' => 'ὮΙ', + 'ᾧ' => 'ὯΙ', + 'ᾰ' => 'Ᾰ', + 'ᾱ' => 'Ᾱ', + 'ᾳ' => 'ΑΙ', + 'ι' => 'Ι', + 'ῃ' => 'ΗΙ', + 'ῐ' => 'Ῐ', + 'ῑ' => 'Ῑ', + 'ῠ' => 'Ῠ', + 'ῡ' => 'Ῡ', + 'ῥ' => 'Ῥ', + 'ῳ' => 'ΩΙ', + 'ⅎ' => 'Ⅎ', + 'ⅰ' => 'Ⅰ', + 'ⅱ' => 'Ⅱ', + 'ⅲ' => 'Ⅲ', + 'ⅳ' => 'Ⅳ', + 'ⅴ' => 'Ⅴ', + 'ⅵ' => 'Ⅵ', + 'ⅶ' => 'Ⅶ', + 'ⅷ' => 'Ⅷ', + 'ⅸ' => 'Ⅸ', + 'ⅹ' => 'Ⅹ', + 'ⅺ' => 'Ⅺ', + 'ⅻ' => 'Ⅻ', + 'ⅼ' => 'Ⅼ', + 'ⅽ' => 'Ⅽ', + 'ⅾ' => 'Ⅾ', + 'ⅿ' => 'Ⅿ', + 'ↄ' => 'Ↄ', + 'ⓐ' => 'Ⓐ', + 'ⓑ' => 'Ⓑ', + 'ⓒ' => 'Ⓒ', + 'ⓓ' => 'Ⓓ', + 'ⓔ' => 'Ⓔ', + 'ⓕ' => 'Ⓕ', + 'ⓖ' => 'Ⓖ', + 'ⓗ' => 'Ⓗ', + 'ⓘ' => 'Ⓘ', + 'ⓙ' => 'Ⓙ', + 'ⓚ' => 'Ⓚ', + 'ⓛ' => 'Ⓛ', + 'ⓜ' => 'Ⓜ', + 'ⓝ' => 'Ⓝ', + 'ⓞ' => 'Ⓞ', + 'ⓟ' => 'Ⓟ', + 'ⓠ' => 'Ⓠ', + 'ⓡ' => 'Ⓡ', + 'ⓢ' => 'Ⓢ', + 'ⓣ' => 'Ⓣ', + 'ⓤ' => 'Ⓤ', + 'ⓥ' => 'Ⓥ', + 'ⓦ' => 'Ⓦ', + 'ⓧ' => 'Ⓧ', + 'ⓨ' => 'Ⓨ', + 'ⓩ' => 'Ⓩ', + 'ⰰ' => 'Ⰰ', + 'ⰱ' => 'Ⰱ', + 'ⰲ' => 'Ⰲ', + 'ⰳ' => 'Ⰳ', + 'ⰴ' => 'Ⰴ', + 'ⰵ' => 'Ⰵ', + 'ⰶ' => 'Ⰶ', + 'ⰷ' => 'Ⰷ', + 'ⰸ' => 'Ⰸ', + 'ⰹ' => 'Ⰹ', + 'ⰺ' => 'Ⰺ', + 'ⰻ' => 'Ⰻ', + 'ⰼ' => 'Ⰼ', + 'ⰽ' => 'Ⰽ', + 'ⰾ' => 'Ⰾ', + 'ⰿ' => 'Ⰿ', + 'ⱀ' => 'Ⱀ', + 'ⱁ' => 'Ⱁ', + 'ⱂ' => 'Ⱂ', + 'ⱃ' => 'Ⱃ', + 'ⱄ' => 'Ⱄ', + 'ⱅ' => 'Ⱅ', + 'ⱆ' => 'Ⱆ', + 'ⱇ' => 'Ⱇ', + 'ⱈ' => 'Ⱈ', + 'ⱉ' => 'Ⱉ', + 'ⱊ' => 'Ⱊ', + 'ⱋ' => 'Ⱋ', + 'ⱌ' => 'Ⱌ', + 'ⱍ' => 'Ⱍ', + 'ⱎ' => 'Ⱎ', + 'ⱏ' => 'Ⱏ', + 'ⱐ' => 'Ⱐ', + 'ⱑ' => 'Ⱑ', + 'ⱒ' => 'Ⱒ', + 'ⱓ' => 'Ⱓ', + 'ⱔ' => 'Ⱔ', + 'ⱕ' => 'Ⱕ', + 'ⱖ' => 'Ⱖ', + 'ⱗ' => 'Ⱗ', + 'ⱘ' => 'Ⱘ', + 'ⱙ' => 'Ⱙ', + 'ⱚ' => 'Ⱚ', + 'ⱛ' => 'Ⱛ', + 'ⱜ' => 'Ⱜ', + 'ⱝ' => 'Ⱝ', + 'ⱞ' => 'Ⱞ', + 'ⱡ' => 'Ⱡ', + 'ⱥ' => 'Ⱥ', + 'ⱦ' => 'Ⱦ', + 'ⱨ' => 'Ⱨ', + 'ⱪ' => 'Ⱪ', + 'ⱬ' => 'Ⱬ', + 'ⱳ' => 'Ⱳ', + 'ⱶ' => 'Ⱶ', + 'ⲁ' => 'Ⲁ', + 'ⲃ' => 'Ⲃ', + 'ⲅ' => 'Ⲅ', + 'ⲇ' => 'Ⲇ', + 'ⲉ' => 'Ⲉ', + 'ⲋ' => 'Ⲋ', + 'ⲍ' => 'Ⲍ', + 'ⲏ' => 'Ⲏ', + 'ⲑ' => 'Ⲑ', + 'ⲓ' => 'Ⲓ', + 'ⲕ' => 'Ⲕ', + 'ⲗ' => 'Ⲗ', + 'ⲙ' => 'Ⲙ', + 'ⲛ' => 'Ⲛ', + 'ⲝ' => 'Ⲝ', + 'ⲟ' => 'Ⲟ', + 'ⲡ' => 'Ⲡ', + 'ⲣ' => 'Ⲣ', + 'ⲥ' => 'Ⲥ', + 'ⲧ' => 'Ⲧ', + 'ⲩ' => 'Ⲩ', + 'ⲫ' => 'Ⲫ', + 'ⲭ' => 'Ⲭ', + 'ⲯ' => 'Ⲯ', + 'ⲱ' => 'Ⲱ', + 'ⲳ' => 'Ⲳ', + 'ⲵ' => 'Ⲵ', + 'ⲷ' => 'Ⲷ', + 'ⲹ' => 'Ⲹ', + 'ⲻ' => 'Ⲻ', + 'ⲽ' => 'Ⲽ', + 'ⲿ' => 'Ⲿ', + 'ⳁ' => 'Ⳁ', + 'ⳃ' => 'Ⳃ', + 'ⳅ' => 'Ⳅ', + 'ⳇ' => 'Ⳇ', + 'ⳉ' => 'Ⳉ', + 'ⳋ' => 'Ⳋ', + 'ⳍ' => 'Ⳍ', + 'ⳏ' => 'Ⳏ', + 'ⳑ' => 'Ⳑ', + 'ⳓ' => 'Ⳓ', + 'ⳕ' => 'Ⳕ', + 'ⳗ' => 'Ⳗ', + 'ⳙ' => 'Ⳙ', + 'ⳛ' => 'Ⳛ', + 'ⳝ' => 'Ⳝ', + 'ⳟ' => 'Ⳟ', + 'ⳡ' => 'Ⳡ', + 'ⳣ' => 'Ⳣ', + 'ⳬ' => 'Ⳬ', + 'ⳮ' => 'Ⳮ', + 'ⳳ' => 'Ⳳ', + 'ⴀ' => 'Ⴀ', + 'ⴁ' => 'Ⴁ', + 'ⴂ' => 'Ⴂ', + 'ⴃ' => 'Ⴃ', + 'ⴄ' => 'Ⴄ', + 'ⴅ' => 'Ⴅ', + 'ⴆ' => 'Ⴆ', + 'ⴇ' => 'Ⴇ', + 'ⴈ' => 'Ⴈ', + 'ⴉ' => 'Ⴉ', + 'ⴊ' => 'Ⴊ', + 'ⴋ' => 'Ⴋ', + 'ⴌ' => 'Ⴌ', + 'ⴍ' => 'Ⴍ', + 'ⴎ' => 'Ⴎ', + 'ⴏ' => 'Ⴏ', + 'ⴐ' => 'Ⴐ', + 'ⴑ' => 'Ⴑ', + 'ⴒ' => 'Ⴒ', + 'ⴓ' => 'Ⴓ', + 'ⴔ' => 'Ⴔ', + 'ⴕ' => 'Ⴕ', + 'ⴖ' => 'Ⴖ', + 'ⴗ' => 'Ⴗ', + 'ⴘ' => 'Ⴘ', + 'ⴙ' => 'Ⴙ', + 'ⴚ' => 'Ⴚ', + 'ⴛ' => 'Ⴛ', + 'ⴜ' => 'Ⴜ', + 'ⴝ' => 'Ⴝ', + 'ⴞ' => 'Ⴞ', + 'ⴟ' => 'Ⴟ', + 'ⴠ' => 'Ⴠ', + 'ⴡ' => 'Ⴡ', + 'ⴢ' => 'Ⴢ', + 'ⴣ' => 'Ⴣ', + 'ⴤ' => 'Ⴤ', + 'ⴥ' => 'Ⴥ', + 'ⴧ' => 'Ⴧ', + 'ⴭ' => 'Ⴭ', + 'ꙁ' => 'Ꙁ', + 'ꙃ' => 'Ꙃ', + 'ꙅ' => 'Ꙅ', + 'ꙇ' => 'Ꙇ', + 'ꙉ' => 'Ꙉ', + 'ꙋ' => 'Ꙋ', + 'ꙍ' => 'Ꙍ', + 'ꙏ' => 'Ꙏ', + 'ꙑ' => 'Ꙑ', + 'ꙓ' => 'Ꙓ', + 'ꙕ' => 'Ꙕ', + 'ꙗ' => 'Ꙗ', + 'ꙙ' => 'Ꙙ', + 'ꙛ' => 'Ꙛ', + 'ꙝ' => 'Ꙝ', + 'ꙟ' => 'Ꙟ', + 'ꙡ' => 'Ꙡ', + 'ꙣ' => 'Ꙣ', + 'ꙥ' => 'Ꙥ', + 'ꙧ' => 'Ꙧ', + 'ꙩ' => 'Ꙩ', + 'ꙫ' => 'Ꙫ', + 'ꙭ' => 'Ꙭ', + 'ꚁ' => 'Ꚁ', + 'ꚃ' => 'Ꚃ', + 'ꚅ' => 'Ꚅ', + 'ꚇ' => 'Ꚇ', + 'ꚉ' => 'Ꚉ', + 'ꚋ' => 'Ꚋ', + 'ꚍ' => 'Ꚍ', + 'ꚏ' => 'Ꚏ', + 'ꚑ' => 'Ꚑ', + 'ꚓ' => 'Ꚓ', + 'ꚕ' => 'Ꚕ', + 'ꚗ' => 'Ꚗ', + 'ꚙ' => 'Ꚙ', + 'ꚛ' => 'Ꚛ', + 'ꜣ' => 'Ꜣ', + 'ꜥ' => 'Ꜥ', + 'ꜧ' => 'Ꜧ', + 'ꜩ' => 'Ꜩ', + 'ꜫ' => 'Ꜫ', + 'ꜭ' => 'Ꜭ', + 'ꜯ' => 'Ꜯ', + 'ꜳ' => 'Ꜳ', + 'ꜵ' => 'Ꜵ', + 'ꜷ' => 'Ꜷ', + 'ꜹ' => 'Ꜹ', + 'ꜻ' => 'Ꜻ', + 'ꜽ' => 'Ꜽ', + 'ꜿ' => 'Ꜿ', + 'ꝁ' => 'Ꝁ', + 'ꝃ' => 'Ꝃ', + 'ꝅ' => 'Ꝅ', + 'ꝇ' => 'Ꝇ', + 'ꝉ' => 'Ꝉ', + 'ꝋ' => 'Ꝋ', + 'ꝍ' => 'Ꝍ', + 'ꝏ' => 'Ꝏ', + 'ꝑ' => 'Ꝑ', + 'ꝓ' => 'Ꝓ', + 'ꝕ' => 'Ꝕ', + 'ꝗ' => 'Ꝗ', + 'ꝙ' => 'Ꝙ', + 'ꝛ' => 'Ꝛ', + 'ꝝ' => 'Ꝝ', + 'ꝟ' => 'Ꝟ', + 'ꝡ' => 'Ꝡ', + 'ꝣ' => 'Ꝣ', + 'ꝥ' => 'Ꝥ', + 'ꝧ' => 'Ꝧ', + 'ꝩ' => 'Ꝩ', + 'ꝫ' => 'Ꝫ', + 'ꝭ' => 'Ꝭ', + 'ꝯ' => 'Ꝯ', + 'ꝺ' => 'Ꝺ', + 'ꝼ' => 'Ꝼ', + 'ꝿ' => 'Ꝿ', + 'ꞁ' => 'Ꞁ', + 'ꞃ' => 'Ꞃ', + 'ꞅ' => 'Ꞅ', + 'ꞇ' => 'Ꞇ', + 'ꞌ' => 'Ꞌ', + 'ꞑ' => 'Ꞑ', + 'ꞓ' => 'Ꞓ', + 'ꞔ' => 'Ꞔ', + 'ꞗ' => 'Ꞗ', + 'ꞙ' => 'Ꞙ', + 'ꞛ' => 'Ꞛ', + 'ꞝ' => 'Ꞝ', + 'ꞟ' => 'Ꞟ', + 'ꞡ' => 'Ꞡ', + 'ꞣ' => 'Ꞣ', + 'ꞥ' => 'Ꞥ', + 'ꞧ' => 'Ꞧ', + 'ꞩ' => 'Ꞩ', + 'ꞵ' => 'Ꞵ', + 'ꞷ' => 'Ꞷ', + 'ꞹ' => 'Ꞹ', + 'ꞻ' => 'Ꞻ', + 'ꞽ' => 'Ꞽ', + 'ꞿ' => 'Ꞿ', + 'ꟃ' => 'Ꟃ', + 'ꟈ' => 'Ꟈ', + 'ꟊ' => 'Ꟊ', + 'ꟶ' => 'Ꟶ', + 'ꭓ' => 'Ꭓ', + 'ꭰ' => 'Ꭰ', + 'ꭱ' => 'Ꭱ', + 'ꭲ' => 'Ꭲ', + 'ꭳ' => 'Ꭳ', + 'ꭴ' => 'Ꭴ', + 'ꭵ' => 'Ꭵ', + 'ꭶ' => 'Ꭶ', + 'ꭷ' => 'Ꭷ', + 'ꭸ' => 'Ꭸ', + 'ꭹ' => 'Ꭹ', + 'ꭺ' => 'Ꭺ', + 'ꭻ' => 'Ꭻ', + 'ꭼ' => 'Ꭼ', + 'ꭽ' => 'Ꭽ', + 'ꭾ' => 'Ꭾ', + 'ꭿ' => 'Ꭿ', + 'ꮀ' => 'Ꮀ', + 'ꮁ' => 'Ꮁ', + 'ꮂ' => 'Ꮂ', + 'ꮃ' => 'Ꮃ', + 'ꮄ' => 'Ꮄ', + 'ꮅ' => 'Ꮅ', + 'ꮆ' => 'Ꮆ', + 'ꮇ' => 'Ꮇ', + 'ꮈ' => 'Ꮈ', + 'ꮉ' => 'Ꮉ', + 'ꮊ' => 'Ꮊ', + 'ꮋ' => 'Ꮋ', + 'ꮌ' => 'Ꮌ', + 'ꮍ' => 'Ꮍ', + 'ꮎ' => 'Ꮎ', + 'ꮏ' => 'Ꮏ', + 'ꮐ' => 'Ꮐ', + 'ꮑ' => 'Ꮑ', + 'ꮒ' => 'Ꮒ', + 'ꮓ' => 'Ꮓ', + 'ꮔ' => 'Ꮔ', + 'ꮕ' => 'Ꮕ', + 'ꮖ' => 'Ꮖ', + 'ꮗ' => 'Ꮗ', + 'ꮘ' => 'Ꮘ', + 'ꮙ' => 'Ꮙ', + 'ꮚ' => 'Ꮚ', + 'ꮛ' => 'Ꮛ', + 'ꮜ' => 'Ꮜ', + 'ꮝ' => 'Ꮝ', + 'ꮞ' => 'Ꮞ', + 'ꮟ' => 'Ꮟ', + 'ꮠ' => 'Ꮠ', + 'ꮡ' => 'Ꮡ', + 'ꮢ' => 'Ꮢ', + 'ꮣ' => 'Ꮣ', + 'ꮤ' => 'Ꮤ', + 'ꮥ' => 'Ꮥ', + 'ꮦ' => 'Ꮦ', + 'ꮧ' => 'Ꮧ', + 'ꮨ' => 'Ꮨ', + 'ꮩ' => 'Ꮩ', + 'ꮪ' => 'Ꮪ', + 'ꮫ' => 'Ꮫ', + 'ꮬ' => 'Ꮬ', + 'ꮭ' => 'Ꮭ', + 'ꮮ' => 'Ꮮ', + 'ꮯ' => 'Ꮯ', + 'ꮰ' => 'Ꮰ', + 'ꮱ' => 'Ꮱ', + 'ꮲ' => 'Ꮲ', + 'ꮳ' => 'Ꮳ', + 'ꮴ' => 'Ꮴ', + 'ꮵ' => 'Ꮵ', + 'ꮶ' => 'Ꮶ', + 'ꮷ' => 'Ꮷ', + 'ꮸ' => 'Ꮸ', + 'ꮹ' => 'Ꮹ', + 'ꮺ' => 'Ꮺ', + 'ꮻ' => 'Ꮻ', + 'ꮼ' => 'Ꮼ', + 'ꮽ' => 'Ꮽ', + 'ꮾ' => 'Ꮾ', + 'ꮿ' => 'Ꮿ', + 'a' => 'A', + 'b' => 'B', + 'c' => 'C', + 'd' => 'D', + 'e' => 'E', + 'f' => 'F', + 'g' => 'G', + 'h' => 'H', + 'i' => 'I', + 'j' => 'J', + 'k' => 'K', + 'l' => 'L', + 'm' => 'M', + 'n' => 'N', + 'o' => 'O', + 'p' => 'P', + 'q' => 'Q', + 'r' => 'R', + 's' => 'S', + 't' => 'T', + 'u' => 'U', + 'v' => 'V', + 'w' => 'W', + 'x' => 'X', + 'y' => 'Y', + 'z' => 'Z', + '𐐨' => '𐐀', + '𐐩' => '𐐁', + '𐐪' => '𐐂', + '𐐫' => '𐐃', + '𐐬' => '𐐄', + '𐐭' => '𐐅', + '𐐮' => '𐐆', + '𐐯' => '𐐇', + '𐐰' => '𐐈', + '𐐱' => '𐐉', + '𐐲' => '𐐊', + '𐐳' => '𐐋', + '𐐴' => '𐐌', + '𐐵' => '𐐍', + '𐐶' => '𐐎', + '𐐷' => '𐐏', + '𐐸' => '𐐐', + '𐐹' => '𐐑', + '𐐺' => '𐐒', + '𐐻' => '𐐓', + '𐐼' => '𐐔', + '𐐽' => '𐐕', + '𐐾' => '𐐖', + '𐐿' => '𐐗', + '𐑀' => '𐐘', + '𐑁' => '𐐙', + '𐑂' => '𐐚', + '𐑃' => '𐐛', + '𐑄' => '𐐜', + '𐑅' => '𐐝', + '𐑆' => '𐐞', + '𐑇' => '𐐟', + '𐑈' => '𐐠', + '𐑉' => '𐐡', + '𐑊' => '𐐢', + '𐑋' => '𐐣', + '𐑌' => '𐐤', + '𐑍' => '𐐥', + '𐑎' => '𐐦', + '𐑏' => '𐐧', + '𐓘' => '𐒰', + '𐓙' => '𐒱', + '𐓚' => '𐒲', + '𐓛' => '𐒳', + '𐓜' => '𐒴', + '𐓝' => '𐒵', + '𐓞' => '𐒶', + '𐓟' => '𐒷', + '𐓠' => '𐒸', + '𐓡' => '𐒹', + '𐓢' => '𐒺', + '𐓣' => '𐒻', + '𐓤' => '𐒼', + '𐓥' => '𐒽', + '𐓦' => '𐒾', + '𐓧' => '𐒿', + '𐓨' => '𐓀', + '𐓩' => '𐓁', + '𐓪' => '𐓂', + '𐓫' => '𐓃', + '𐓬' => '𐓄', + '𐓭' => '𐓅', + '𐓮' => '𐓆', + '𐓯' => '𐓇', + '𐓰' => '𐓈', + '𐓱' => '𐓉', + '𐓲' => '𐓊', + '𐓳' => '𐓋', + '𐓴' => '𐓌', + '𐓵' => '𐓍', + '𐓶' => '𐓎', + '𐓷' => '𐓏', + '𐓸' => '𐓐', + '𐓹' => '𐓑', + '𐓺' => '𐓒', + '𐓻' => '𐓓', + '𐳀' => '𐲀', + '𐳁' => '𐲁', + '𐳂' => '𐲂', + '𐳃' => '𐲃', + '𐳄' => '𐲄', + '𐳅' => '𐲅', + '𐳆' => '𐲆', + '𐳇' => '𐲇', + '𐳈' => '𐲈', + '𐳉' => '𐲉', + '𐳊' => '𐲊', + '𐳋' => '𐲋', + '𐳌' => '𐲌', + '𐳍' => '𐲍', + '𐳎' => '𐲎', + '𐳏' => '𐲏', + '𐳐' => '𐲐', + '𐳑' => '𐲑', + '𐳒' => '𐲒', + '𐳓' => '𐲓', + '𐳔' => '𐲔', + '𐳕' => '𐲕', + '𐳖' => '𐲖', + '𐳗' => '𐲗', + '𐳘' => '𐲘', + '𐳙' => '𐲙', + '𐳚' => '𐲚', + '𐳛' => '𐲛', + '𐳜' => '𐲜', + '𐳝' => '𐲝', + '𐳞' => '𐲞', + '𐳟' => '𐲟', + '𐳠' => '𐲠', + '𐳡' => '𐲡', + '𐳢' => '𐲢', + '𐳣' => '𐲣', + '𐳤' => '𐲤', + '𐳥' => '𐲥', + '𐳦' => '𐲦', + '𐳧' => '𐲧', + '𐳨' => '𐲨', + '𐳩' => '𐲩', + '𐳪' => '𐲪', + '𐳫' => '𐲫', + '𐳬' => '𐲬', + '𐳭' => '𐲭', + '𐳮' => '𐲮', + '𐳯' => '𐲯', + '𐳰' => '𐲰', + '𐳱' => '𐲱', + '𐳲' => '𐲲', + '𑣀' => '𑢠', + '𑣁' => '𑢡', + '𑣂' => '𑢢', + '𑣃' => '𑢣', + '𑣄' => '𑢤', + '𑣅' => '𑢥', + '𑣆' => '𑢦', + '𑣇' => '𑢧', + '𑣈' => '𑢨', + '𑣉' => '𑢩', + '𑣊' => '𑢪', + '𑣋' => '𑢫', + '𑣌' => '𑢬', + '𑣍' => '𑢭', + '𑣎' => '𑢮', + '𑣏' => '𑢯', + '𑣐' => '𑢰', + '𑣑' => '𑢱', + '𑣒' => '𑢲', + '𑣓' => '𑢳', + '𑣔' => '𑢴', + '𑣕' => '𑢵', + '𑣖' => '𑢶', + '𑣗' => '𑢷', + '𑣘' => '𑢸', + '𑣙' => '𑢹', + '𑣚' => '𑢺', + '𑣛' => '𑢻', + '𑣜' => '𑢼', + '𑣝' => '𑢽', + '𑣞' => '𑢾', + '𑣟' => '𑢿', + '𖹠' => '𖹀', + '𖹡' => '𖹁', + '𖹢' => '𖹂', + '𖹣' => '𖹃', + '𖹤' => '𖹄', + '𖹥' => '𖹅', + '𖹦' => '𖹆', + '𖹧' => '𖹇', + '𖹨' => '𖹈', + '𖹩' => '𖹉', + '𖹪' => '𖹊', + '𖹫' => '𖹋', + '𖹬' => '𖹌', + '𖹭' => '𖹍', + '𖹮' => '𖹎', + '𖹯' => '𖹏', + '𖹰' => '𖹐', + '𖹱' => '𖹑', + '𖹲' => '𖹒', + '𖹳' => '𖹓', + '𖹴' => '𖹔', + '𖹵' => '𖹕', + '𖹶' => '𖹖', + '𖹷' => '𖹗', + '𖹸' => '𖹘', + '𖹹' => '𖹙', + '𖹺' => '𖹚', + '𖹻' => '𖹛', + '𖹼' => '𖹜', + '𖹽' => '𖹝', + '𖹾' => '𖹞', + '𖹿' => '𖹟', + '𞤢' => '𞤀', + '𞤣' => '𞤁', + '𞤤' => '𞤂', + '𞤥' => '𞤃', + '𞤦' => '𞤄', + '𞤧' => '𞤅', + '𞤨' => '𞤆', + '𞤩' => '𞤇', + '𞤪' => '𞤈', + '𞤫' => '𞤉', + '𞤬' => '𞤊', + '𞤭' => '𞤋', + '𞤮' => '𞤌', + '𞤯' => '𞤍', + '𞤰' => '𞤎', + '𞤱' => '𞤏', + '𞤲' => '𞤐', + '𞤳' => '𞤑', + '𞤴' => '𞤒', + '𞤵' => '𞤓', + '𞤶' => '𞤔', + '𞤷' => '𞤕', + '𞤸' => '𞤖', + '𞤹' => '𞤗', + '𞤺' => '𞤘', + '𞤻' => '𞤙', + '𞤼' => '𞤚', + '𞤽' => '𞤛', + '𞤾' => '𞤜', + '𞤿' => '𞤝', + '𞥀' => '𞤞', + '𞥁' => '𞤟', + '𞥂' => '𞤠', + '𞥃' => '𞤡', + 'ß' => 'SS', + 'ff' => 'FF', + 'fi' => 'FI', + 'fl' => 'FL', + 'ffi' => 'FFI', + 'ffl' => 'FFL', + 'ſt' => 'ST', + 'st' => 'ST', + 'և' => 'ԵՒ', + 'ﬓ' => 'ՄՆ', + 'ﬔ' => 'ՄԵ', + 'ﬕ' => 'ՄԻ', + 'ﬖ' => 'ՎՆ', + 'ﬗ' => 'ՄԽ', + 'ʼn' => 'ʼN', + 'ΐ' => 'Ϊ́', + 'ΰ' => 'Ϋ́', + 'ǰ' => 'J̌', + 'ẖ' => 'H̱', + 'ẗ' => 'T̈', + 'ẘ' => 'W̊', + 'ẙ' => 'Y̊', + 'ẚ' => 'Aʾ', + 'ὐ' => 'Υ̓', + 'ὒ' => 'Υ̓̀', + 'ὔ' => 'Υ̓́', + 'ὖ' => 'Υ̓͂', + 'ᾶ' => 'Α͂', + 'ῆ' => 'Η͂', + 'ῒ' => 'Ϊ̀', + 'ΐ' => 'Ϊ́', + 'ῖ' => 'Ι͂', + 'ῗ' => 'Ϊ͂', + 'ῢ' => 'Ϋ̀', + 'ΰ' => 'Ϋ́', + 'ῤ' => 'Ρ̓', + 'ῦ' => 'Υ͂', + 'ῧ' => 'Ϋ͂', + 'ῶ' => 'Ω͂', + 'ᾈ' => 'ἈΙ', + 'ᾉ' => 'ἉΙ', + 'ᾊ' => 'ἊΙ', + 'ᾋ' => 'ἋΙ', + 'ᾌ' => 'ἌΙ', + 'ᾍ' => 'ἍΙ', + 'ᾎ' => 'ἎΙ', + 'ᾏ' => 'ἏΙ', + 'ᾘ' => 'ἨΙ', + 'ᾙ' => 'ἩΙ', + 'ᾚ' => 'ἪΙ', + 'ᾛ' => 'ἫΙ', + 'ᾜ' => 'ἬΙ', + 'ᾝ' => 'ἭΙ', + 'ᾞ' => 'ἮΙ', + 'ᾟ' => 'ἯΙ', + 'ᾨ' => 'ὨΙ', + 'ᾩ' => 'ὩΙ', + 'ᾪ' => 'ὪΙ', + 'ᾫ' => 'ὫΙ', + 'ᾬ' => 'ὬΙ', + 'ᾭ' => 'ὭΙ', + 'ᾮ' => 'ὮΙ', + 'ᾯ' => 'ὯΙ', + 'ᾼ' => 'ΑΙ', + 'ῌ' => 'ΗΙ', + 'ῼ' => 'ΩΙ', + 'ᾲ' => 'ᾺΙ', + 'ᾴ' => 'ΆΙ', + 'ῂ' => 'ῊΙ', + 'ῄ' => 'ΉΙ', + 'ῲ' => 'ῺΙ', + 'ῴ' => 'ΏΙ', + 'ᾷ' => 'Α͂Ι', + 'ῇ' => 'Η͂Ι', + 'ῷ' => 'Ω͂Ι', +); diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/bootstrap.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/bootstrap.php new file mode 100644 index 00000000000..1fedd1f7c84 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -0,0 +1,147 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Mbstring as p; + +if (\PHP_VERSION_ID >= 80000) { + return require __DIR__.'/bootstrap80.php'; +} + +if (!function_exists('mb_convert_encoding')) { + function mb_convert_encoding($string, $to_encoding, $from_encoding = null) { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); } +} +if (!function_exists('mb_decode_mimeheader')) { + function mb_decode_mimeheader($string) { return p\Mbstring::mb_decode_mimeheader($string); } +} +if (!function_exists('mb_encode_mimeheader')) { + function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = "\r\n", $indent = 0) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); } +} +if (!function_exists('mb_decode_numericentity')) { + function mb_decode_numericentity($string, $map, $encoding = null) { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); } +} +if (!function_exists('mb_encode_numericentity')) { + function mb_encode_numericentity($string, $map, $encoding = null, $hex = false) { return p\Mbstring::mb_encode_numericentity($string, $map, $encoding, $hex); } +} +if (!function_exists('mb_convert_case')) { + function mb_convert_case($string, $mode, $encoding = null) { return p\Mbstring::mb_convert_case($string, $mode, $encoding); } +} +if (!function_exists('mb_internal_encoding')) { + function mb_internal_encoding($encoding = null) { return p\Mbstring::mb_internal_encoding($encoding); } +} +if (!function_exists('mb_language')) { + function mb_language($language = null) { return p\Mbstring::mb_language($language); } +} +if (!function_exists('mb_list_encodings')) { + function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); } +} +if (!function_exists('mb_encoding_aliases')) { + function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); } +} +if (!function_exists('mb_check_encoding')) { + function mb_check_encoding($value = null, $encoding = null) { return p\Mbstring::mb_check_encoding($value, $encoding); } +} +if (!function_exists('mb_detect_encoding')) { + function mb_detect_encoding($string, $encodings = null, $strict = false) { return p\Mbstring::mb_detect_encoding($string, $encodings, $strict); } +} +if (!function_exists('mb_detect_order')) { + function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); } +} +if (!function_exists('mb_parse_str')) { + function mb_parse_str($string, &$result = []) { parse_str($string, $result); return (bool) $result; } +} +if (!function_exists('mb_strlen')) { + function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); } +} +if (!function_exists('mb_strpos')) { + function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strpos($haystack, $needle, $offset, $encoding); } +} +if (!function_exists('mb_strtolower')) { + function mb_strtolower($string, $encoding = null) { return p\Mbstring::mb_strtolower($string, $encoding); } +} +if (!function_exists('mb_strtoupper')) { + function mb_strtoupper($string, $encoding = null) { return p\Mbstring::mb_strtoupper($string, $encoding); } +} +if (!function_exists('mb_substitute_character')) { + function mb_substitute_character($substitute_character = null) { return p\Mbstring::mb_substitute_character($substitute_character); } +} +if (!function_exists('mb_substr')) { + function mb_substr($string, $start, $length = 2147483647, $encoding = null) { return p\Mbstring::mb_substr($string, $start, $length, $encoding); } +} +if (!function_exists('mb_stripos')) { + function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_stripos($haystack, $needle, $offset, $encoding); } +} +if (!function_exists('mb_stristr')) { + function mb_stristr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_stristr($haystack, $needle, $before_needle, $encoding); } +} +if (!function_exists('mb_strrchr')) { + function mb_strrchr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrchr($haystack, $needle, $before_needle, $encoding); } +} +if (!function_exists('mb_strrichr')) { + function mb_strrichr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrichr($haystack, $needle, $before_needle, $encoding); } +} +if (!function_exists('mb_strripos')) { + function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strripos($haystack, $needle, $offset, $encoding); } +} +if (!function_exists('mb_strrpos')) { + function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strrpos($haystack, $needle, $offset, $encoding); } +} +if (!function_exists('mb_strstr')) { + function mb_strstr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strstr($haystack, $needle, $before_needle, $encoding); } +} +if (!function_exists('mb_get_info')) { + function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); } +} +if (!function_exists('mb_http_output')) { + function mb_http_output($encoding = null) { return p\Mbstring::mb_http_output($encoding); } +} +if (!function_exists('mb_strwidth')) { + function mb_strwidth($string, $encoding = null) { return p\Mbstring::mb_strwidth($string, $encoding); } +} +if (!function_exists('mb_substr_count')) { + function mb_substr_count($haystack, $needle, $encoding = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $encoding); } +} +if (!function_exists('mb_output_handler')) { + function mb_output_handler($string, $status) { return p\Mbstring::mb_output_handler($string, $status); } +} +if (!function_exists('mb_http_input')) { + function mb_http_input($type = null) { return p\Mbstring::mb_http_input($type); } +} + +if (!function_exists('mb_convert_variables')) { + function mb_convert_variables($to_encoding, $from_encoding, &...$vars) { return p\Mbstring::mb_convert_variables($to_encoding, $from_encoding, ...$vars); } +} + +if (!function_exists('mb_ord')) { + function mb_ord($string, $encoding = null) { return p\Mbstring::mb_ord($string, $encoding); } +} +if (!function_exists('mb_chr')) { + function mb_chr($codepoint, $encoding = null) { return p\Mbstring::mb_chr($codepoint, $encoding); } +} +if (!function_exists('mb_scrub')) { + function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); } +} +if (!function_exists('mb_str_split')) { + function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } +} + +if (extension_loaded('mbstring')) { + return; +} + +if (!defined('MB_CASE_UPPER')) { + define('MB_CASE_UPPER', 0); +} +if (!defined('MB_CASE_LOWER')) { + define('MB_CASE_LOWER', 1); +} +if (!defined('MB_CASE_TITLE')) { + define('MB_CASE_TITLE', 2); +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/bootstrap80.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/bootstrap80.php new file mode 100644 index 00000000000..82f5ac4d0f1 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -0,0 +1,143 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Mbstring as p; + +if (!function_exists('mb_convert_encoding')) { + function mb_convert_encoding(array|string|null $string, ?string $to_encoding, array|string|null $from_encoding = null): array|string|false { return p\Mbstring::mb_convert_encoding($string ?? '', (string) $to_encoding, $from_encoding); } +} +if (!function_exists('mb_decode_mimeheader')) { + function mb_decode_mimeheader(?string $string): string { return p\Mbstring::mb_decode_mimeheader((string) $string); } +} +if (!function_exists('mb_encode_mimeheader')) { + function mb_encode_mimeheader(?string $string, ?string $charset = null, ?string $transfer_encoding = null, ?string $newline = "\r\n", ?int $indent = 0): string { return p\Mbstring::mb_encode_mimeheader((string) $string, $charset, $transfer_encoding, (string) $newline, (int) $indent); } +} +if (!function_exists('mb_decode_numericentity')) { + function mb_decode_numericentity(?string $string, array $map, ?string $encoding = null): string { return p\Mbstring::mb_decode_numericentity((string) $string, $map, $encoding); } +} +if (!function_exists('mb_encode_numericentity')) { + function mb_encode_numericentity(?string $string, array $map, ?string $encoding = null, ?bool $hex = false): string { return p\Mbstring::mb_encode_numericentity((string) $string, $map, $encoding, (bool) $hex); } +} +if (!function_exists('mb_convert_case')) { + function mb_convert_case(?string $string, ?int $mode, ?string $encoding = null): string { return p\Mbstring::mb_convert_case((string) $string, (int) $mode, $encoding); } +} +if (!function_exists('mb_internal_encoding')) { + function mb_internal_encoding(?string $encoding = null): string|bool { return p\Mbstring::mb_internal_encoding($encoding); } +} +if (!function_exists('mb_language')) { + function mb_language(?string $language = null): string|bool { return p\Mbstring::mb_language($language); } +} +if (!function_exists('mb_list_encodings')) { + function mb_list_encodings(): array { return p\Mbstring::mb_list_encodings(); } +} +if (!function_exists('mb_encoding_aliases')) { + function mb_encoding_aliases(?string $encoding): array { return p\Mbstring::mb_encoding_aliases((string) $encoding); } +} +if (!function_exists('mb_check_encoding')) { + function mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool { return p\Mbstring::mb_check_encoding($value, $encoding); } +} +if (!function_exists('mb_detect_encoding')) { + function mb_detect_encoding(?string $string, array|string|null $encodings = null, ?bool $strict = false): string|false { return p\Mbstring::mb_detect_encoding((string) $string, $encodings, (bool) $strict); } +} +if (!function_exists('mb_detect_order')) { + function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order($encoding); } +} +if (!function_exists('mb_parse_str')) { + function mb_parse_str(?string $string, &$result = []): bool { parse_str((string) $string, $result); return (bool) $result; } +} +if (!function_exists('mb_strlen')) { + function mb_strlen(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strlen((string) $string, $encoding); } +} +if (!function_exists('mb_strpos')) { + function mb_strpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strpos((string) $haystack, (string) $needle, (int) $offset, $encoding); } +} +if (!function_exists('mb_strtolower')) { + function mb_strtolower(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtolower((string) $string, $encoding); } +} +if (!function_exists('mb_strtoupper')) { + function mb_strtoupper(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtoupper((string) $string, $encoding); } +} +if (!function_exists('mb_substitute_character')) { + function mb_substitute_character(string|int|null $substitute_character = null): string|int|bool { return p\Mbstring::mb_substitute_character($substitute_character); } +} +if (!function_exists('mb_substr')) { + function mb_substr(?string $string, ?int $start, ?int $length = null, ?string $encoding = null): string { return p\Mbstring::mb_substr((string) $string, (int) $start, $length, $encoding); } +} +if (!function_exists('mb_stripos')) { + function mb_stripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_stripos((string) $haystack, (string) $needle, (int) $offset, $encoding); } +} +if (!function_exists('mb_stristr')) { + function mb_stristr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_stristr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } +} +if (!function_exists('mb_strrchr')) { + function mb_strrchr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrchr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } +} +if (!function_exists('mb_strrichr')) { + function mb_strrichr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrichr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } +} +if (!function_exists('mb_strripos')) { + function mb_strripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strripos((string) $haystack, (string) $needle, (int) $offset, $encoding); } +} +if (!function_exists('mb_strrpos')) { + function mb_strrpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strrpos((string) $haystack, (string) $needle, (int) $offset, $encoding); } +} +if (!function_exists('mb_strstr')) { + function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } +} +if (!function_exists('mb_get_info')) { + function mb_get_info(?string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info((string) $type); } +} +if (!function_exists('mb_http_output')) { + function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); } +} +if (!function_exists('mb_strwidth')) { + function mb_strwidth(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strwidth((string) $string, $encoding); } +} +if (!function_exists('mb_substr_count')) { + function mb_substr_count(?string $haystack, ?string $needle, ?string $encoding = null): int { return p\Mbstring::mb_substr_count((string) $haystack, (string) $needle, $encoding); } +} +if (!function_exists('mb_output_handler')) { + function mb_output_handler(?string $string, ?int $status): string { return p\Mbstring::mb_output_handler((string) $string, (int) $status); } +} +if (!function_exists('mb_http_input')) { + function mb_http_input(?string $type = null): array|string|false { return p\Mbstring::mb_http_input($type); } +} + +if (!function_exists('mb_convert_variables')) { + function mb_convert_variables(?string $to_encoding, array|string|null $from_encoding, mixed &$var, mixed &...$vars): string|false { return p\Mbstring::mb_convert_variables((string) $to_encoding, $from_encoding ?? '', $var, ...$vars); } +} + +if (!function_exists('mb_ord')) { + function mb_ord(?string $string, ?string $encoding = null): int|false { return p\Mbstring::mb_ord((string) $string, $encoding); } +} +if (!function_exists('mb_chr')) { + function mb_chr(?int $codepoint, ?string $encoding = null): string|false { return p\Mbstring::mb_chr((int) $codepoint, $encoding); } +} +if (!function_exists('mb_scrub')) { + function mb_scrub(?string $string, ?string $encoding = null): string { $encoding ??= mb_internal_encoding(); return mb_convert_encoding((string) $string, $encoding, $encoding); } +} +if (!function_exists('mb_str_split')) { + function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); } +} + +if (extension_loaded('mbstring')) { + return; +} + +if (!defined('MB_CASE_UPPER')) { + define('MB_CASE_UPPER', 0); +} +if (!defined('MB_CASE_LOWER')) { + define('MB_CASE_LOWER', 1); +} +if (!defined('MB_CASE_TITLE')) { + define('MB_CASE_TITLE', 2); +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/composer.json b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/composer.json new file mode 100644 index 00000000000..9cd2e924e9f --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-mbstring/composer.json @@ -0,0 +1,41 @@ +{ + "name": "symfony/polyfill-mbstring", + "type": "library", + "description": "Symfony polyfill for the Mbstring extension", + "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" }, + "files": [ "bootstrap.php" ] + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/LICENSE b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/LICENSE new file mode 100644 index 00000000000..5593b1d84f7 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020 Fabien Potencier + +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. diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Php80.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Php80.php new file mode 100644 index 00000000000..362dd1a9596 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Php80.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Php80; + +/** + * @author Ion Bazan + * @author Nico Oelgart + * @author Nicolas Grekas + * + * @internal + */ +final class Php80 +{ + public static function fdiv(float $dividend, float $divisor): float + { + return @($dividend / $divisor); + } + + public static function get_debug_type($value): string + { + switch (true) { + case null === $value: return 'null'; + case \is_bool($value): return 'bool'; + case \is_string($value): return 'string'; + case \is_array($value): return 'array'; + case \is_int($value): return 'int'; + case \is_float($value): return 'float'; + case \is_object($value): break; + case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class'; + default: + if (null === $type = @get_resource_type($value)) { + return 'unknown'; + } + + if ('Unknown' === $type) { + $type = 'closed'; + } + + return "resource ($type)"; + } + + $class = \get_class($value); + + if (false === strpos($class, '@')) { + return $class; + } + + return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous'; + } + + public static function get_resource_id($res): int + { + if (!\is_resource($res) && null === @get_resource_type($res)) { + throw new \TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res))); + } + + return (int) $res; + } + + public static function preg_last_error_msg(): string + { + switch (preg_last_error()) { + case \PREG_INTERNAL_ERROR: + return 'Internal error'; + case \PREG_BAD_UTF8_ERROR: + return 'Malformed UTF-8 characters, possibly incorrectly encoded'; + case \PREG_BAD_UTF8_OFFSET_ERROR: + return 'The offset did not correspond to the beginning of a valid UTF-8 code point'; + case \PREG_BACKTRACK_LIMIT_ERROR: + return 'Backtrack limit exhausted'; + case \PREG_RECURSION_LIMIT_ERROR: + return 'Recursion limit exhausted'; + case \PREG_JIT_STACKLIMIT_ERROR: + return 'JIT stack limit exhausted'; + case \PREG_NO_ERROR: + return 'No error'; + default: + return 'Unknown error'; + } + } + + public static function str_contains(string $haystack, string $needle): bool + { + return '' === $needle || false !== strpos($haystack, $needle); + } + + public static function str_starts_with(string $haystack, string $needle): bool + { + return 0 === strncmp($haystack, $needle, \strlen($needle)); + } + + public static function str_ends_with(string $haystack, string $needle): bool + { + if ('' === $needle || $needle === $haystack) { + return true; + } + + if ('' === $haystack) { + return false; + } + + $needleLength = \strlen($needle); + + return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength); + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/PhpToken.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/PhpToken.php new file mode 100644 index 00000000000..fe6e6910562 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/PhpToken.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Php80; + +/** + * @author Fedonyuk Anton + * + * @internal + */ +class PhpToken implements \Stringable +{ + /** + * @var int + */ + public $id; + + /** + * @var string + */ + public $text; + + /** + * @var int + */ + public $line; + + /** + * @var int + */ + public $pos; + + public function __construct(int $id, string $text, int $line = -1, int $position = -1) + { + $this->id = $id; + $this->text = $text; + $this->line = $line; + $this->pos = $position; + } + + public function getTokenName(): ?string + { + if ('UNKNOWN' === $name = token_name($this->id)) { + $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text; + } + + return $name; + } + + /** + * @param int|string|array $kind + */ + public function is($kind): bool + { + foreach ((array) $kind as $value) { + if (\in_array($value, [$this->id, $this->text], true)) { + return true; + } + } + + return false; + } + + public function isIgnorable(): bool + { + return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true); + } + + public function __toString(): string + { + return (string) $this->text; + } + + /** + * @return static[] + */ + public static function tokenize(string $code, int $flags = 0): array + { + $line = 1; + $position = 0; + $tokens = token_get_all($code, $flags); + foreach ($tokens as $index => $token) { + if (\is_string($token)) { + $id = \ord($token); + $text = $token; + } else { + [$id, $text, $line] = $token; + } + $tokens[$index] = new static($id, $text, $line, $position); + $position += \strlen($text); + } + + return $tokens; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/README.md b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/README.md new file mode 100644 index 00000000000..3816c559d57 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/README.md @@ -0,0 +1,25 @@ +Symfony Polyfill / Php80 +======================== + +This component provides features added to PHP 8.0 core: + +- [`Stringable`](https://php.net/stringable) interface +- [`fdiv`](https://php.net/fdiv) +- [`ValueError`](https://php.net/valueerror) class +- [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class +- `FILTER_VALIDATE_BOOL` constant +- [`get_debug_type`](https://php.net/get_debug_type) +- [`PhpToken`](https://php.net/phptoken) class +- [`preg_last_error_msg`](https://php.net/preg_last_error_msg) +- [`str_contains`](https://php.net/str_contains) +- [`str_starts_with`](https://php.net/str_starts_with) +- [`str_ends_with`](https://php.net/str_ends_with) +- [`get_resource_id`](https://php.net/get_resource_id) + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php new file mode 100644 index 00000000000..7ea6d2772dc --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php @@ -0,0 +1,22 @@ +flags = $flags; + } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php new file mode 100644 index 00000000000..72f10812b36 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php @@ -0,0 +1,7 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Php80 as p; + +if (\PHP_VERSION_ID >= 80000) { + return; +} + +if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) { + define('FILTER_VALIDATE_BOOL', \FILTER_VALIDATE_BOOLEAN); +} + +if (!function_exists('fdiv')) { + function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); } +} +if (!function_exists('preg_last_error_msg')) { + function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); } +} +if (!function_exists('str_contains')) { + function str_contains(?string $haystack, ?string $needle): bool { return p\Php80::str_contains($haystack ?? '', $needle ?? ''); } +} +if (!function_exists('str_starts_with')) { + function str_starts_with(?string $haystack, ?string $needle): bool { return p\Php80::str_starts_with($haystack ?? '', $needle ?? ''); } +} +if (!function_exists('str_ends_with')) { + function str_ends_with(?string $haystack, ?string $needle): bool { return p\Php80::str_ends_with($haystack ?? '', $needle ?? ''); } +} +if (!function_exists('get_debug_type')) { + function get_debug_type($value): string { return p\Php80::get_debug_type($value); } +} +if (!function_exists('get_resource_id')) { + function get_resource_id($resource): int { return p\Php80::get_resource_id($resource); } +} diff --git a/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/composer.json b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/composer.json new file mode 100644 index 00000000000..cd3e9b65f46 --- /dev/null +++ b/htdocs/includes/webklex/php-imap/vendor/symfony/polyfill-php80/composer.json @@ -0,0 +1,40 @@ +{ + "name": "symfony/polyfill-php80", + "type": "library", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "keywords": ["polyfill", "shim", "compatibility", "portable"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, + "files": [ "bootstrap.php" ], + "classmap": [ "Resources/stubs" ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + } +} diff --git a/htdocs/index.php b/htdocs/index.php index 5593eaffacf..97b82fb93ba 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -114,7 +114,7 @@ if ($user->admin && empty($conf->global->MAIN_REMOVE_INSTALL_WARNING)) { $lockfile = DOL_DATA_ROOT.'/install.lock'; if (!empty($lockfile) && !file_exists($lockfile) && is_dir(DOL_DOCUMENT_ROOT."/install")) { $langs->load("errors"); - //if (! empty($message)) $message.='
    '; + //if (!empty($message)) $message.='
    '; $message .= info_admin($langs->trans("WarningLockFileDoesNotExists", DOL_DATA_ROOT).' '.$langs->trans("WarningUntilDirRemoved", DOL_DOCUMENT_ROOT."/install"), 0, 0, '1', 'clearboth'); } @@ -122,7 +122,7 @@ if ($user->admin && empty($conf->global->MAIN_REMOVE_INSTALL_WARNING)) { if (is_writable($conffile)) { $langs->load("errors"); //$langs->load("other"); - //if (! empty($message)) $message.='
    '; + //if (!empty($message)) $message.='
    '; $message .= info_admin($langs->transnoentities("WarningConfFileMustBeReadOnly").' '.$langs->trans("WarningUntilDirRemoved", DOL_DOCUMENT_ROOT."/install"), 0, 0, '1', 'clearboth'); } @@ -145,7 +145,6 @@ $boxstatFromHook = ''; $langs->loadLangs(array('commercial', 'bills', 'orders', 'contracts')); // Dolibarr Working Board with weather - if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { $showweather = (empty($conf->global->MAIN_DISABLE_METEO) || $conf->global->MAIN_DISABLE_METEO == 2) ? 1 : 0; @@ -156,28 +155,28 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { require_once DOL_DOCUMENT_ROOT.'/core/class/workboardresponse.class.php'; // Number of actions to do (late) - if (!empty($conf->agenda->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_AGENDA) && $user->rights->agenda->myactions->read) { + if (isModEnabled('agenda') && empty($conf->global->MAIN_DISABLE_BLOCK_AGENDA) && $user->hasRight('agenda', 'myactions', 'read')) { include_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; $board = new ActionComm($db); $dashboardlines[$board->element] = $board->load_board($user); } // Number of project opened - if (!empty($conf->projet->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_PROJECT) && $user->rights->projet->lire) { + if (isModEnabled('project') && empty($conf->global->MAIN_DISABLE_BLOCK_PROJECT) && $user->hasRight('projet', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; $board = new Project($db); $dashboardlines[$board->element] = $board->load_board($user); } // Number of tasks to do (late) - if (!empty($conf->projet->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_PROJECT) && empty($conf->global->PROJECT_HIDE_TASKS) && $user->rights->projet->lire) { + if (isModEnabled('project') && empty($conf->global->MAIN_DISABLE_BLOCK_PROJECT) && empty($conf->global->PROJECT_HIDE_TASKS) && $user->hasRight('projet', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; $board = new Task($db); $dashboardlines[$board->element] = $board->load_board($user); } // Number of commercial customer proposals open (expired) - if (!empty($conf->propal->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_CUSTOMER) && $user->rights->propale->lire) { + if (isModEnabled('propal') && empty($conf->global->MAIN_DISABLE_BLOCK_CUSTOMER) && $user->hasRight('propal', 'read')) { include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; $board = new Propal($db); $dashboardlines[$board->element.'_opened'] = $board->load_board($user, "opened"); @@ -186,7 +185,7 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { } // Number of supplier proposals open (expired) - if (!empty($conf->supplier_proposal->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_SUPPLIER) && $user->rights->supplier_proposal->lire) { + if (isModEnabled('supplier_proposal') && empty($conf->global->MAIN_DISABLE_BLOCK_SUPPLIER) && $user->hasRight('supplier_proposal', 'lire')) { $langs->load("supplier_proposal"); include_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; $board = new SupplierProposal($db); @@ -196,14 +195,14 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { } // Number of customer orders a deal - if (!empty($conf->commande->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_CUSTOMER) && $user->rights->commande->lire) { + if (isModEnabled('commande') && empty($conf->global->MAIN_DISABLE_BLOCK_CUSTOMER) && $user->hasRight('commande', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; $board = new Commande($db); $dashboardlines[$board->element] = $board->load_board($user); } // Number of suppliers orders a deal - if (!empty($conf->supplier_order->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_SUPPLIER) && $user->rights->fournisseur->commande->lire) { + if (isModEnabled('supplier_order') && empty($conf->global->MAIN_DISABLE_BLOCK_SUPPLIER) && $user->hasRight('fournisseur', 'commande', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; $board = new CommandeFournisseur($db); $dashboardlines[$board->element.'_opened'] = $board->load_board($user, "opened"); @@ -211,7 +210,7 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { } // Number of contract / services enabled (delayed) - if (!empty($conf->contrat->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_CONTRACT) && $user->rights->contrat->lire) { + if (isModEnabled('contrat') && empty($conf->global->MAIN_DISABLE_BLOCK_CONTRACT) && $user->hasRight('contrat', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; $board = new Contrat($db); $dashboardlines[$board->element.'_inactive'] = $board->load_board($user, "inactive"); @@ -220,7 +219,7 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { } // Number of tickets open - if (!empty($conf->ticket->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_TICKET) && $user->rights->ticket->read) { + if (isModEnabled('ticket') && empty($conf->global->MAIN_DISABLE_BLOCK_TICKET) && $user->hasRight('ticket', 'read')) { include_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php'; $board = new Ticket($db); $dashboardlines[$board->element.'_opened'] = $board->load_board($user, "opened"); @@ -229,21 +228,21 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { } // Number of invoices customers (paid) - if (!empty($conf->facture->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_CUSTOMER) && $user->rights->facture->lire) { + if (isModEnabled('facture') && empty($conf->global->MAIN_DISABLE_BLOCK_CUSTOMER) && $user->hasRight('facture', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $board = new Facture($db); $dashboardlines[$board->element] = $board->load_board($user); } // Number of supplier invoices (paid) - if (!empty($conf->supplier_invoice->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_SUPPLIER) && !empty($user->rights->fournisseur->facture->lire)) { + if (isModEnabled('supplier_invoice') && empty($conf->global->MAIN_DISABLE_BLOCK_SUPPLIER) && $user->hasRight('fournisseur', 'facture', 'lire')) { include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; $board = new FactureFournisseur($db); $dashboardlines[$board->element] = $board->load_board($user); } // Number of transactions to conciliate - if (!empty($conf->banque->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_BANK) && $user->rights->banque->lire && !$user->socid) { + if (isModEnabled('banque') && empty($conf->global->MAIN_DISABLE_BLOCK_BANK) && $user->hasRight('banque', 'lire') && !$user->socid) { include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $board = new Account($db); $nb = $board->countAccountToReconcile(); // Get nb of account to reconciliate @@ -254,26 +253,26 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { // Number of cheque to send - if (!empty($conf->banque->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_BANK) && $user->rights->banque->lire && !$user->socid) { + if (isModEnabled('banque') && empty($conf->global->MAIN_DISABLE_BLOCK_BANK) && $user->hasRight('banque', 'lire') && !$user->socid) { if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT)) { - include_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php'; + include_once DOL_DOCUMENT_ROOT . '/compta/paiement/cheque/class/remisecheque.class.php'; $board = new RemiseCheque($db); $dashboardlines[$board->element] = $board->load_board($user); } - if (!empty($conf->prelevement->enabled)) { + if (isModEnabled('prelevement')) { include_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; $board = new BonPrelevement($db); - $dashboardlines[$board->element.'_direct_debit'] = $board->load_board($user, 'direct_debit'); + $dashboardlines[$board->element . '_direct_debit'] = $board->load_board($user, 'direct_debit'); } - if (!empty($conf->paymentbybanktransfer->enabled)) { + if (isModEnabled('paymentbybanktransfer')) { include_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; $board = new BonPrelevement($db); - $dashboardlines[$board->element.'_credit_transfer'] = $board->load_board($user, 'credit_transfer'); + $dashboardlines[$board->element . '_credit_transfer'] = $board->load_board($user, 'credit_transfer'); } } // Number of foundation members - if (!empty($conf->adherent->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_ADHERENT) && $user->rights->adherent->lire && !$user->socid) { + if (isModEnabled('adherent') && empty($conf->global->MAIN_DISABLE_BLOCK_ADHERENT) && $user->hasRight('adherent', 'lire') && !$user->socid) { include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; $board = new Adherent($db); $dashboardlines[$board->element.'_shift'] = $board->load_board($user, 'shift'); @@ -281,21 +280,21 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { } // Number of expense reports to approve - if (!empty($conf->expensereport->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_EXPENSEREPORT) && $user->rights->expensereport->approve) { + if (isModEnabled('expensereport') && empty($conf->global->MAIN_DISABLE_BLOCK_EXPENSEREPORT) && $user->hasRight('expensereport', 'approve')) { include_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; $board = new ExpenseReport($db); $dashboardlines[$board->element.'_toapprove'] = $board->load_board($user, 'toapprove'); } // Number of expense reports to pay - if (!empty($conf->expensereport->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_EXPENSEREPORT) && $user->rights->expensereport->to_paid) { + if (isModEnabled('expensereport') && empty($conf->global->MAIN_DISABLE_BLOCK_EXPENSEREPORT) && $user->hasRight('expensereport', 'to_paid')) { include_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; $board = new ExpenseReport($db); $dashboardlines[$board->element.'_topay'] = $board->load_board($user, 'topay'); } // Number of holidays to approve - if (!empty($conf->holiday->enabled) && empty($conf->global->MAIN_DISABLE_BLOCK_HOLIDAY) && $user->rights->holiday->approve) { + if (isModEnabled('holiday') && empty($conf->global->MAIN_DISABLE_BLOCK_HOLIDAY) && $user->hasRight('holiday', 'approve')) { include_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; $board = new Holiday($db); $dashboardlines[$board->element] = $board->load_board($user); diff --git a/htdocs/install/check.php b/htdocs/install/check.php index f260be4f9fb..1923204c272 100644 --- a/htdocs/install/check.php +++ b/htdocs/install/check.php @@ -80,8 +80,8 @@ if (!empty($useragent)) { } -// Check PHP version -$arrayphpminversionerror = array(5, 5, 0); +// Check PHP version min +$arrayphpminversionerror = array(5, 6, 0); $arrayphpminversionwarning = array(5, 6, 0); if (versioncompare(versionphparray(), $arrayphpminversionerror) < 0) { // Minimum to use (error if lower) print 'Error '.$langs->trans("ErrorPHPVersionTooLow", versiontostring($arrayphpminversionerror)); @@ -97,6 +97,14 @@ if (empty($force_install_nophpinfo)) { } print "
    \n"; +// Check PHP version max +$arrayphpmaxversionwarning = array(8, 1, 0); +if (versioncompare(versionphparray(), $arrayphpmaxversionwarning) > 0 && versioncompare(versionphparray(), $arrayphpmaxversionwarning) < 3) { // Maximum to use (warning if higher) + print 'Error '.$langs->trans("ErrorPHPVersionTooHigh", versiontostring($arrayphpmaxversionwarning)); + $checksok = 1; // 0=error, 1=warning + print "
    \n"; +} + // Check PHP support for $_GET and $_POST if (!isset($_GET["testget"]) && !isset($_POST["testpost"])) { // We must keep $_GET and $_POST here @@ -118,10 +126,28 @@ if (!function_exists("session_id")) { } +// Check for mbstring extension +if (!extension_loaded("mbstring")) { + $langs->load("errors"); + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "MBString")."
    \n"; + // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) +} else { + print 'Ok '.$langs->trans("PHPSupport", "MBString")."
    \n"; +} + +// Check for json extension +if (!extension_loaded("json")) { + $langs->load("errors"); + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "JSON")."
    \n"; + // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) +} else { + print 'Ok '.$langs->trans("PHPSupport", "JSON")."
    \n"; +} + // Check if GD is supported (we need GD for image conversion) if (!function_exists("imagecreate")) { $langs->load("errors"); - print 'Error '.$langs->trans("ErrorPHPDoesNotSupportGD")."
    \n"; + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "GD")."
    \n"; // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) } else { print 'Ok '.$langs->trans("PHPSupport", "GD")."
    \n"; @@ -131,7 +157,7 @@ if (!function_exists("imagecreate")) { // Check if Curl is supported if (!function_exists("curl_init")) { $langs->load("errors"); - print 'Error '.$langs->trans("ErrorPHPDoesNotSupportCurl")."
    \n"; + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "Curl")."
    \n"; // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) } else { print 'Ok '.$langs->trans("PHPSupport", "Curl")."
    \n"; @@ -139,41 +165,49 @@ if (!function_exists("curl_init")) { // Check if PHP calendar extension is available if (!function_exists("easter_date")) { - print 'Error '.$langs->trans("ErrorPHPDoesNotSupportCalendar")."
    \n"; + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "Calendar")."
    \n"; } else { print 'Ok '.$langs->trans("PHPSupport", "Calendar")."
    \n"; } +// Check if Curl is supported +if (!function_exists("simplexml_load_string")) { + $langs->load("errors"); + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "Xml")."
    \n"; + // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) +} else { + print 'Ok '.$langs->trans("PHPSupport", "Xml")."
    \n"; +} // Check if UTF8 is supported if (!function_exists("utf8_encode")) { $langs->load("errors"); - print 'Error '.$langs->trans("ErrorPHPDoesNotSupportUTF8")."
    \n"; + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "UTF8")."
    \n"; // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) } else { print 'Ok '.$langs->trans("PHPSupport", "UTF8")."
    \n"; } -// Check for mbstring extension -if (!extension_loaded("mbstring")) { - $langs->load("errors"); - print 'Error '.$langs->trans("ErrorPHPDoesNotSupportMbstring")."
    \n"; - // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) -} else { - print 'Ok '.$langs->trans("PHPSupport", "mbstring")."
    \n"; -} - // Check if intl methods are supported if (empty($_SERVER["SERVER_ADMIN"]) || $_SERVER["SERVER_ADMIN"] != 'doliwamp@localhost') { if (!function_exists("locale_get_primary_language") || !function_exists("locale_get_region")) { $langs->load("errors"); - print 'Error '.$langs->trans("ErrorPHPDoesNotSupportIntl")."
    \n"; + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "Intl")."
    \n"; // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) } else { print 'Ok '.$langs->trans("PHPSupport", "Intl")."
    \n"; } } +// Check if Curl is supported +if (!function_exists("imap_open")) { + $langs->load("errors"); + print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "IMAP")."
    \n"; + // $checksok = 0; // If ko, just warning. So check must still be 1 (otherwise no way to install) +} else { + print 'Ok '.$langs->trans("PHPSupport", "IMAP")."
    \n"; +} + if (!class_exists('ZipArchive')) { $langs->load("errors"); print 'Error '.$langs->trans("ErrorPHPDoesNotSupport", "ZIP")."
    \n"; @@ -414,7 +448,7 @@ if (!file_exists($conffile)) { if (empty($dolibarr_main_db_host)) { // This means install process was not run $allowupgrade = false; } - if (defined("MAIN_NOT_INSTALLED")) { + if (getDolGlobalInt("MAIN_NOT_INSTALLED")) { $allowupgrade = false; } if (GETPOST('allowupgrade')) { @@ -428,10 +462,12 @@ if (!file_exists($conffile)) { $migrationscript = array(); $handle = opendir($dir); if (is_resource($handle)) { + $versiontousetoqualifyscript = preg_replace('/-.*/', '', DOL_VERSION); while (($file = readdir($handle)) !== false) { $reg = array(); if (preg_match('/^(\d+\.\d+\.\d+)-(\d+\.\d+\.\d+)\.sql$/i', $file, $reg)) { - if (!empty($reg[2]) && version_compare(DOL_VERSION, $reg[2])) { + //var_dump(DOL_VERSION." ".$reg[2]." ".$versiontousetoqualifyscript." ".version_compare($versiontousetoqualifyscript, $reg[2])); + if (!empty($reg[2]) && version_compare($versiontousetoqualifyscript, $reg[2]) >= 0) { $migrationscript[] = array('from' => $reg[1], 'to' => $reg[2]); } } diff --git a/htdocs/install/default.css b/htdocs/install/default.css index e7bbe6c7771..79f6d3eb9c1 100644 --- a/htdocs/install/default.css +++ b/htdocs/install/default.css @@ -129,6 +129,10 @@ a.button.runupgrade { padding: 10px; } +tr.title.tablesupport-title { + height: 100px; +} + /* Force values for small screen 570 */ @media only screen and (max-width: 570px) { @@ -464,7 +468,7 @@ table.login.tablesupport .title { } table.tablesupport { - min-height: 250px; + min-height: 300px; border: 1px solid #E0E0E0; background: #FFF; } diff --git a/htdocs/install/doctemplates/boms/template_bom.odt b/htdocs/install/doctemplates/boms/template_bom.odt index 701753c3dba..573e97a0a84 100644 Binary files a/htdocs/install/doctemplates/boms/template_bom.odt and b/htdocs/install/doctemplates/boms/template_bom.odt differ diff --git a/htdocs/install/doctemplates/websites/website_template-corporate.zip b/htdocs/install/doctemplates/websites/website_template-corporate.zip index dc0065bc12c..e7f645d168a 100644 Binary files a/htdocs/install/doctemplates/websites/website_template-corporate.zip and b/htdocs/install/doctemplates/websites/website_template-corporate.zip differ diff --git a/htdocs/install/doctemplates/websites/website_template-stellar.zip b/htdocs/install/doctemplates/websites/website_template-stellar.zip index 7607cb9bd8a..3c9643c8960 100644 Binary files a/htdocs/install/doctemplates/websites/website_template-stellar.zip and b/htdocs/install/doctemplates/websites/website_template-stellar.zip differ diff --git a/htdocs/install/doctemplates/websites/website_template-style01.jpg b/htdocs/install/doctemplates/websites/website_template-style01.jpg new file mode 100644 index 00000000000..5464bf5dd5d Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style01.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-style01.zip b/htdocs/install/doctemplates/websites/website_template-style01.zip new file mode 100644 index 00000000000..7bca0dd1e21 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style01.zip differ diff --git a/htdocs/install/doctemplates/websites/website_template-style02.jpg b/htdocs/install/doctemplates/websites/website_template-style02.jpg new file mode 100644 index 00000000000..63622f3b1cd Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style02.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-style03.jpg b/htdocs/install/doctemplates/websites/website_template-style03.jpg new file mode 100644 index 00000000000..1479f08b5d9 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style03.jpg differ diff --git a/htdocs/install/doctemplates/websites/website_template-style03.zip b/htdocs/install/doctemplates/websites/website_template-style03.zip new file mode 100644 index 00000000000..f2a7684cc4e Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style03.zip differ diff --git a/htdocs/install/doctemplates/websites/website_template-style04.png b/htdocs/install/doctemplates/websites/website_template-style04.png new file mode 100644 index 00000000000..26325e7e795 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style04.png differ diff --git a/htdocs/install/doctemplates/websites/website_template-style04.zip b/htdocs/install/doctemplates/websites/website_template-style04.zip new file mode 100644 index 00000000000..996d98697c3 Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-style04.zip differ diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 33c000e4475..f8dcdfe230b 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -143,7 +143,7 @@ if (!empty($force_install_message)) {
    @@ -448,7 +448,10 @@ if (!empty($force_install_noedit)) { > - @@ -503,7 +507,10 @@ if (!empty($force_install_noedit)) { > - @@ -613,29 +621,13 @@ jQuery(document).ready(function() { }); - function init_needroot() - { - /*alert(jQuery("#db_create_database").prop("checked")); */ - if (jQuery("#db_create_database").is(":checked") || jQuery("#db_create_user").is(":checked")) - { - jQuery(".hideroot").show(); - - jQuery(".needroot").removeAttr('disabled'); - - } - else - { - jQuery(".hideroot").hide(); - jQuery(".needroot").prop('disabled', true); - } - } - init_needroot(); jQuery("#db_create_database").click(function() { + console.log("click on db_create_database"); init_needroot(); }); jQuery("#db_create_user").click(function() { + console.log("click on db_create_user"); init_needroot(); }); @@ -643,6 +635,27 @@ jQuery(document).ready(function() { }); +function init_needroot() +{ + console.log("init_needroot force_install_noedit="); + /*alert(jQuery("#db_create_database").prop("checked")); */ + if (jQuery("#db_create_database").is(":checked") || jQuery("#db_create_user").is(":checked")) + { + console.log("init_needroot show root section"); + jQuery(".hideroot").show(); + + jQuery(".needroot").removeAttr('disabled'); + + } + else + { + console.log("init_needroot hide root section"); + jQuery(".hideroot").hide(); + jQuery(".needroot").prop('disabled', true); + } +} + function checkDatabaseName(databasename) { if (databasename.match(/[;\.]/)) { return false; } return true; @@ -650,6 +663,8 @@ function checkDatabaseName(databasename) { function jscheckparam() { + console.log("Click on jscheckparam"); + ok=true; if (document.forminstall.main_dir.value == '') @@ -687,12 +702,14 @@ function jscheckparam() { ok=false; alert('transnoentities("YouAskToCreateDatabaseSoRootRequired")); ?>'); + init_needroot(); } // If create user asked else if (document.forminstall.db_create_user.checked == true && (document.forminstall.db_user_root.value == '')) { ok=false; alert('transnoentities("YouAskToCreateDatabaseUserSoRootRequired")); ?>'); + init_needroot(); } return ok; diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index 27a3fc01abd..657e9841100 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -195,6 +195,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 +220,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").'
    '; @@ -419,6 +427,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 +530,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 09300a75721..a7ce50c819f 100644 --- a/htdocs/install/index.php +++ b/htdocs/install/index.php @@ -49,6 +49,12 @@ $formadmin = new FormAdmin(''); // Note: $db does not exist yet but we don't nee pHeader("", "check"); // Next step = check +if (!is_readable($conffile)) { + print '
    '; + print ''.$langs->trans("NoReadableConfFileSoStartInstall").''; +} + + // Ask installation language print '

    '; print '
    '.$propalstatic->getNomUrl(1).''.$propalstatic->getNomUrl(1).''.$warning.''.$formfile->getDocumentsLink($propalstatic->element, $filename, $filedir).'
    '.$companystatic->getNomUrl(1, 'customer', 44).''.dol_print_date($db->jdate($obj->dp), 'day').''; + print dol_print_date($datem, 'day', 'tzserver'); + print ''.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).''.$propalstatic->LibStatut($obj->fk_statut, 3).''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -1039,7 +1092,11 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { print ''; print ''; - print ''; + $datem = $db->jdate($obj->dv); + print ''; + print ''; print ''; 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 f82df06313b..e59389a87b7 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'; @@ -220,6 +221,7 @@ 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; @@ -258,7 +260,7 @@ 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)) { @@ -475,7 +477,7 @@ if (empty($reshook)) { } } - $trackid = 'emailingtest'; + $trackid = 'emailing-test'; $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'); $result = $mailfile->sendfile(); @@ -753,7 +755,7 @@ 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 '
    '; @@ -801,13 +803,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 +845,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")); } } @@ -961,12 +977,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->fk_user_valid == $user->id)) { + if (($object->statut == 1) && ($user->rights->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 (isModEnabled('fckeditor') && !empty($conf->global->FCKEDITOR_ENABLE_MAILING)) { print ''.$langs->trans("EditWithEditor").''; } else { print ''.$langs->trans("EditWithTextEditor").''; @@ -1066,7 +1082,7 @@ if ($action == 'create') { print dol_get_fiche_end(); - print dol_set_focus('#sendto'); + dol_set_focus('#sendto'); } @@ -1249,6 +1265,11 @@ if ($action == 'create') { $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 .= ''; @@ -1268,7 +1289,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') { diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 9069b63179f..1beefca8cf6 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'; @@ -135,7 +136,7 @@ if (GETPOST('exportcsv', 'int')) { $sql = "SELECT mc.rowid, mc.lastname, mc.firstname, mc.email, mc.other, mc.statut as status, mc.date_envoi, mc.tms,"; $sql .= " mc.source_id, mc.source_type, mc.error_text"; $sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc"; - $sql .= " WHERE mc.fk_mailing=".((int) $object->id); + $sql .= " WHERE mc.fk_mailing = ".((int) $object->id); $sql .= $db->order($sortfield, $sortorder); $resql = $db->query($sql); @@ -365,23 +366,26 @@ if ($object->fetch($id) >= 0) { $obj = new $classname($db); + // Check if qualified + $qualified = (is_null($obj->enabled) ? 1 : dol_eval($obj->enabled, 1)); + // Check dependencies - $qualified = (isset($obj->enabled) ? $obj->enabled : 1); foreach ($obj->require_module as $key) { - if (!$conf->$key->enabled || (!$user->admin && $obj->require_admin)) { + if (empty($conf->$key->enabled) || (empty($user->admin) && $obj->require_admin)) { $qualified = 0; //print "Les prerequis d'activation du module mailing ne sont pas respectes. Il ne sera pas actif"; break; } } - // Si le module mailing est qualifie + // If module is qualified if ($qualified) { $var = !$var; if ($allowaddtarget) { print '
    '; print ''; + print ''; } else { print '
    '; } @@ -402,7 +406,7 @@ if ($object->fetch($id) >= 0) { } print '
    '; - if ($nbofrecipient >= 0) { + if ($nbofrecipient === '' || $nbofrecipient >= 0) { print $nbofrecipient; } else { print $langs->trans("Error").' '.img_error($obj->error); @@ -426,7 +430,7 @@ if ($object->fetch($id) >= 0) { print '
    '; if ($allowaddtarget) { - print ''; + print ''; } else { print ''; //print $langs->trans("MailNoChangePossible"); @@ -512,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); } @@ -638,10 +642,10 @@ if ($object->fetch($id) >= 0) { $obj = $db->fetch_object($resql); print '
    '; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''; // Title - print ''; + print ''; // Date creation print ''; print ''; // Payment mode - 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.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("
    '.$orderstatic->getNomUrl(1).''.$orderstatic->getNomUrl(1).''.$formfile->getDocumentsLink($orderstatic->element, $filename, $filedir).'
    '.$companystatic->getNomUrl(1, 'customer', 44).''.dol_print_date($db->jdate($obj->dv), 'day').''; + print dol_print_date($datem, 'day', 'tzserver'); + print ''.price(!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc).''.$orderstatic->LibStatut($obj->fk_statut, $obj->billed, 3).'
    '.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 diff --git a/htdocs/comm/mailing/class/advtargetemailing.class.php b/htdocs/comm/mailing/class/advtargetemailing.class.php index 62dd24aaaf7..ea6ec241b16 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 @@ -159,7 +159,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 +188,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 +227,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 +282,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 +345,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 +410,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 +458,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 f4295fa6583..9e10d51031e 100644 --- a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php +++ b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php @@ -128,7 +128,8 @@ class FormAdvTargetEmailing extends Form $i++; } - array_multisort($label, SORT_ASC, $countryArray); + $array1_sort_order = SORT_ASC; + array_multisort($label, $array1_sort_order, $countryArray); foreach ($countryArray as $row) { $label = dol_trunc($row['label'], $maxlength, 'middle'); diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php index 588faa392e3..4ea794bfbd4 100644 --- a/htdocs/comm/mailing/class/mailing.class.php +++ b/htdocs/comm/mailing/class/mailing.class.php @@ -86,6 +86,11 @@ class Mailing extends CommonObject */ public $email_from; + /** + * @var string email to + */ + public $sendto; + /** * @var string email reply to */ @@ -175,6 +180,16 @@ class Mailing extends CommonObject */ public $statuts = array(); + /** + * @var array substitutionarray + */ + public $substitutionarray; + + /** + * @var array substitutionarrayfortest + */ + public $substitutionarrayfortest; + /** * Constructor @@ -713,13 +728,6 @@ class Mailing extends CommonObject } $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; - - /* - $hookmanager->initHooks(array('myobjectdao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } else { $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); } 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 be458d41fe3..13a7e63d364 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'; @@ -103,7 +104,7 @@ if (empty($reshook)) { }*/ $search_ref = ''; $search_all = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -277,7 +278,7 @@ if ($resql) { print '
    '.$obj->title.''.dol_escape_htmltag($obj->title).''; @@ -286,7 +287,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 f6989d90d59..0a1d1bdbc06 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,10 +48,9 @@ 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'; } @@ -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 @@ -276,6 +274,9 @@ 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; @@ -316,8 +317,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if (!empty($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 + if ($ret > 0) { + $object->fetch_thirdparty(); + } + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } } elseif ($action == 'setecheance' && $usercancreate) { @@ -326,8 +347,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) $newlang = $object->thirdparty->default_lang; if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); @@ -402,6 +423,7 @@ if (empty($reshook)) { $object->warehouse_id = GETPOST('warehouse_id', 'int'); $object->duree_validite = $duration; $object->cond_reglement_id = GETPOST('cond_reglement_id'); + $object->deposit_percent = GETPOST('cond_reglement_id_deposit_percent', 'alpha'); $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU', 2); // deprecated @@ -434,6 +456,7 @@ if (empty($reshook)) { $object->warehouse_id = GETPOST('warehouse_id', 'int'); $object->duree_validite = price2num(GETPOST('duree_validite', 'alpha')); $object->cond_reglement_id = GETPOST('cond_reglement_id', 'int'); + $object->deposit_percent = GETPOST('cond_reglement_id_deposit_percent', 'alpha'); $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); $object->fk_account = GETPOST('fk_account', 'int'); $object->contact_id = GETPOST('contactid', 'int'); @@ -449,7 +472,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'); } @@ -624,10 +647,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -678,7 +701,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')); @@ -687,10 +710,62 @@ if (empty($reshook)) { $error++; } + $deposit = null; + $locationTarget = ''; + + $deposit_percent_from_payment_terms = getDictionaryValue('c_payment_term', 'deposit_percent', $object->cond_reglement_id); + + 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) + ) { + require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; + + $date = dol_mktime(0, 0, 0, GETPOST('datefmonth', 'int'), GETPOST('datefday', 'int'), GETPOST('datefyear', 'int')); + $forceFields = array(); + + if (GETPOSTISSET('date_pointoftax')) { + $forceFields['date_pointoftax'] = dol_mktime(0, 0, 0, GETPOST('date_pointoftaxmonth', 'int'), GETPOST('date_pointoftaxday', 'int'), GETPOST('date_pointoftaxyear', 'int')); + } + + $deposit = Facture::createDepositFromOrigin($object, $date, GETPOST('cond_reglement_id', 'int'), $user, 0, GETPOST('validate_generated_deposit', 'alpha') == 'on', $forceFields); + + if ($deposit) { + setEventMessage('DepositGenerated'); + $locationTarget = DOL_URL_ROOT . '/compta/facture/card.php?id=' . $deposit->id; + } else { + $error++; + setEventMessages($object->error, $object->errors, 'errors'); + } + } + if (!$error) { $db->commit(); + + if ($deposit && empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { + $ret = $deposit->fetch($deposit->id); // Reload to get new records + $outputlangs = $langs; + + if (!empty($conf->global->MAIN_MULTILANGS)) { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($deposit->thirdparty->default_lang); + $outputlangs->load('products'); + } + + $result = $deposit->generateDocument($deposit->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + + if ($result < 0) { + setEventMessages($deposit->error, $deposit->errors, 'errors'); + } + } + + if ($locationTarget) { + header('Location: ' . $locationTarget); + exit; + } } else { $db->rollback(); + $action = ''; } } } @@ -700,7 +775,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++; @@ -823,7 +898,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); @@ -831,23 +906,47 @@ if (empty($reshook)) { 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->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 a discount for all lines + $remise_percent = (GETPOST('remiseforalllines') ? GETPOST('remiseforalllines') : 0); + $remise_percent = str_replace('*', '', $remise_percent); + foreach ($object->lines as $line) { + $result = $object->updateline($line->id, $line->subprice, $line->qty, $remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $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' && $usercancreate) { // Add line // 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(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; } @@ -868,7 +967,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++; } @@ -895,6 +994,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(); @@ -922,6 +1022,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 @@ -929,6 +1030,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])) { @@ -953,6 +1055,7 @@ if (empty($reshook)) { $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)) { @@ -1011,13 +1114,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 { @@ -1058,18 +1163,6 @@ 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 = '('; @@ -1116,15 +1209,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 @@ -1143,10 +1243,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_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) { // 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); @@ -1224,12 +1336,14 @@ 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')); @@ -1260,16 +1374,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_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++; + $action = 'editline'; + } 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++; + $action = 'editline'; + } } } else { $type = GETPOST('type'); @@ -1297,7 +1427,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(); @@ -1363,7 +1500,7 @@ if (empty($reshook)) { $result = $object->set_demand_reason($user, GETPOST('demand_reason_id', 'int')); } elseif ($action == 'setconditions' && $usercancreate) { // Terms of payment - $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); + $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'), GETPOST('cond_reglement_id_deposit_percent', 'alpha')); } elseif ($action == 'setremisepercent' && $usercancreate) { $result = $object->set_remise_percent($user, price2num(GETPOST('remise_percent'), '', 2)); } elseif ($action == 'setremiseabsolue' && $usercancreate) { @@ -1461,12 +1598,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(); @@ -1536,7 +1677,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; } @@ -1546,7 +1687,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; } } @@ -1579,20 +1720,20 @@ if ($action == 'create') { print '
    '.$langs->trans("Date").''.$langs->trans("PriceLevel").'
    '; // Reference - print ''; + print ''; // Ref customer - print ''; + print ''; print ''; // Third party - print ''; - print ''; + print ''; + print ''; $shipping_method_id = 0; if ($socid > 0) { - print ''; if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD) && !empty($soc->shipping_method_id)) { @@ -1600,7 +1741,7 @@ if ($action == 'create') { } //$warehouse_id = $soc->warehouse_id; } else { - print ''; // Third party discounts info line - print ''; // Validaty duration - print ''; + print ''; // Terms of payment - print ''; // Mode of payment - print ''; // Bank Account - if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && !empty($conf->banque->enabled)) { - print ''; } // Source / Channel - What trigger creation - print ''; // Delivery delay - print ''; // Shipping Method - if (!empty($conf->expedition->enabled)) { + if (isModEnabled("expedition")) { if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD) && !empty($soc->shipping_method_id)) { $shipping_method_id = $soc->shipping_method_id; } - print ''; @@ -1698,14 +1839,14 @@ if ($action == 'create') { if (!empty($conf->stock->enabled) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_PROPAL)) { require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); - print ''; } // Delivery date (or manufacturing) - print ''; - print ''; + print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); - print ''; - print ''; + print ''; @@ -1730,45 +1871,45 @@ if ($action == 'create') { // Incoterms if (!empty($conf->incoterm->enabled)) { - print ''; - print ''; - print ''; + print ''; + print ''; } // Template to use by default - print ''; - print ''; - print ''; + print ''; + print '"; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { - print ''; - print ''; - print ''; + print ''; + print ''; } // Public note - print ''; - print ''; - print ''; + print ''; + print ''; - print ''; - print ''; + print ''; + print '"; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print '"; print '"; @@ -1933,10 +2074,140 @@ if ($action == 'create') { if ($action == 'closeas') { //Form to close proposal (signed or not) - $formquestion = array( - array('type' => 'select', 'name' => 'statut', 'label' => ''.$langs->trans("CloseAs").'', 'values' => array($object::STATUS_SIGNED => $object->LibStatut($object::STATUS_SIGNED), $object::STATUS_NOTSIGNED => $object->LibStatut($object::STATUS_NOTSIGNED))), - array('type' => 'text', 'name' => 'note_private', 'label' => $langs->trans("Note"), 'value' => '') // Field to complete private note (not replace) - ); + $formquestion = array(); + if (empty($conf->global->PROPAL_SKIP_ACCEPT_REFUSE)) { + $formquestion[] = array('type' => 'select', 'name' => 'statut', 'label' => ''.$langs->trans("CloseAs").'', 'values' => array($object::STATUS_SIGNED => $object->LibStatut($object::STATUS_SIGNED), $object::STATUS_NOTSIGNED => $object->LibStatut($object::STATUS_NOTSIGNED))); + } + $formquestion[] = array('type' => 'text', 'name' => 'note_private', 'label' => $langs->trans("Note"), 'value' => ''); // Field to complete private note (not replace) + + if (getDolGlobalInt('PROPOSAL_SUGGEST_DOWN_PAYMENT_INVOICE_CREATION')) { + // This is a hidden option: + // Suggestion to create invoice during proposal signature is not enabled by default. + // Such choice should be managed by the workflow module and trigger. This option generates conflicts with some setup. + // It may also break step of creating an order when invoicing must be done from orders and not from proposal + $deposit_percent_from_payment_terms = getDictionaryValue('c_payment_term', 'deposit_percent', $object->cond_reglement_id); + + if (!empty($deposit_percent_from_payment_terms) && isModEnabled('facture') && !empty($user->rights->facture->creer)) { + require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; + + $object->fetchObjectLinked(); + + $eligibleForDepositGeneration = true; + + if (array_key_exists('facture', $object->linkedObjects)) { + foreach ($object->linkedObjects['facture'] as $invoice) { + if ($invoice->type == Facture::TYPE_DEPOSIT) { + $eligibleForDepositGeneration = false; + break; + } + } + } + + if ($eligibleForDepositGeneration && array_key_exists('commande', $object->linkedObjects)) { + foreach ($object->linkedObjects['commande'] as $order) { + $order->fetchObjectLinked(); + + if (array_key_exists('facture', $order->linkedObjects)) { + foreach ($order->linkedObjects['facture'] as $invoice) { + if ($invoice->type == Facture::TYPE_DEPOSIT) { + $eligibleForDepositGeneration = false; + break 2; + } + } + } + } + } + + + if ($eligibleForDepositGeneration) { + $formquestion[] = array( + 'type' => 'checkbox', + 'tdclass' => 'showonlyifsigned', + 'name' => 'generate_deposit', + 'morecss' => 'margintoponly marginbottomonly', + 'label' => $form->textwithpicto($langs->trans('GenerateDeposit', $object->deposit_percent), $langs->trans('DepositGenerationPermittedByThePaymentTermsSelected')) + ); + + $formquestion[] = array( + 'type' => 'date', + 'tdclass' => 'fieldrequired showonlyifgeneratedeposit', + 'name' => 'datef', + 'label' => $langs->trans('DateInvoice'), + 'value' => dol_now(), + 'datenow' => true + ); + + if (!empty($conf->global->INVOICE_POINTOFTAX_DATE)) { + $formquestion[] = array( + 'type' => 'date', + 'tdclass' => 'fieldrequired showonlyifgeneratedeposit', + 'name' => 'date_pointoftax', + 'label' => $langs->trans('DatePointOfTax'), + 'value' => dol_now(), + 'datenow' => true + ); + } + + $paymentTermsSelect = $form->getSelectConditionsPaiements(0, 'cond_reglement_id', -1, 0, 1, 'minwidth200'); + + $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', + 'morecss' => 'margintoponly marginbottomonly', + 'label' => $langs->trans('ValidateGeneratedDeposit') + ); + + $formquestion[] = array( + 'type' => 'onecolumn', + 'value' => ' + + ' + ); + } + } + } if (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php'; @@ -1946,7 +2217,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); @@ -2027,7 +2302,7 @@ if ($action == 'create') { $morehtmlref .= ' ('.$langs->trans("OtherProposals").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').''; if ($usercancreate) { @@ -2098,13 +2373,16 @@ if ($action == 'create') { // Date of proposal print ''; print '
    '.$langs->trans('Ref').''.$langs->trans("Draft").'
    '.$langs->trans('Ref').''.$langs->trans("Draft").'
    '.$langs->trans('RefCustomer').''; - print '
    '.$langs->trans('RefCustomer').''; + print '
    '.$langs->trans('Customer').'
    '.$langs->trans('Customer').''; - print $soc->getNomUrl(1); + print ''; + print $soc->getNomUrl(1, 'customer'); print ''; 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'); // reload page to retrieve customer informations if (empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE_DISABLED)) { @@ -1623,13 +1764,13 @@ if ($action == 'create') { if ($socid > 0) { // Contacts (ask contact only if thirdparty already defined). - print "
    ".$langs->trans("DefaultContact").''; + print '
    '.$langs->trans("DefaultContact").''; print img_picto('', 'contact'); print $form->selectcontacts($soc->id, $contactid, 'contactid', 1, '', '', 0, 'minwidth300'); print '
    '.$langs->trans('Discounts').''; + print '
    '.$langs->trans('Discounts').''; $absolute_discount = $soc->getAvailableDiscounts(); @@ -1641,54 +1782,54 @@ if ($action == 'create') { } // Date - print '
    '.$langs->trans('DatePropal').''; + print '
    '.$langs->trans('DatePropal').''; print $form->selectDate('', '', '', '', '', "addprop", 1, 1); print '
    '.$langs->trans("ValidityDuration").''.img_picto('', 'clock').'  '.$langs->trans("days").'
    '.$langs->trans("ValidityDuration").''.img_picto('', 'clock', 'class="paddingright"').' '.$langs->trans("days").'
    '.$langs->trans('PaymentConditionsShort').''; + print '
    '.$langs->trans('PaymentConditionsShort').''; print img_picto('', 'paiment'); - $form->select_conditions_paiements((GETPOSTISSET('cond_reglement_id') && GETPOST('cond_reglement_id') != 0) ? GETPOST('cond_reglement_id', 'int') : $soc->cond_reglement_id, 'cond_reglement_id', -1, 1); + print $form->getSelectConditionsPaiements((GETPOSTISSET('cond_reglement_id') && GETPOST('cond_reglement_id') != 0) ? GETPOST('cond_reglement_id', 'int') : $soc->cond_reglement_id, 'cond_reglement_id', 1, 1, 0, '', (GETPOSTISSET('cond_reglement_id_deposit_percent') ? GETPOST('cond_reglement_id_deposit_percent', 'alpha') : $soc->deposit_percent)); print '
    '.$langs->trans('PaymentMode').''; - print img_picto('', 'bank').' '; - $form->select_types_paiements((GETPOSTISSET('mode_reglement_id') ? GETPOST('mode_reglement_id', 'int') : $soc->mode_reglement_id), 'mode_reglement_id', 'CRDT', 0, 1, 0, 0, 1, 'maxwidth200 widthcentpercentminusx'); + print '
    '.$langs->trans('PaymentMode').''; + print img_picto('', 'bank', 'class="pictofixedwidth"'); + print $form->select_types_paiements((GETPOSTISSET('mode_reglement_id') && GETPOST('mode_reglement_id') != 0) ? GETPOST('mode_reglement_id', 'int') : $soc->mode_reglement_id, 'mode_reglement_id', 'CRDT', 0, 1, 0, 0, 1, 'maxwidth200 widthcentpercentminusx', 1); print '
    '.$langs->trans('BankAccount').''; + if (!empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && isModEnabled("banque")) { + print '
    '.$langs->trans('Source').''; + print '
    '.$langs->trans('Source').''; print img_picto('', 'question', 'class="pictofixedwidth"'); $form->selectInputReason('', 'demand_reason_id', "SRC_PROP", 1, 'maxwidth200 widthcentpercentminusx'); print '
    '.$langs->trans('AvailabilityPeriod'); - if (!empty($conf->commande->enabled)) { + print '
    '.$langs->trans('AvailabilityPeriod'); + if (isModEnabled('commande')) { print ' ('.$langs->trans('AfterOrder').')'; } - print ''; - print img_picto('', 'clock').' '; + print ''; + print img_picto('', 'clock', 'class="pictofixedwidth"'); $form->selectAvailabilityDelay('', 'availability_id', '', 1, 'maxwidth200 widthcentpercentminusx'); print '
    '.$langs->trans('SendingMethod').''; + print '
    '.$langs->trans('SendingMethod').''; print img_picto('', 'object_dollyrevert', 'class="pictofixedwidth"'); print $form->selectShippingMethod($shipping_method_id, 'shipping_method_id', '', 1, '', 0, 'maxwidth200 widthcentpercentminusx'); print '
    '.$langs->trans('Warehouse').''; + print '
    '.$langs->trans('Warehouse').''; print img_picto('', 'stock', 'class="pictofixedwidth"').$formproduct->selectWarehouses($warehouse_id, 'warehouse_id', '', 1, 0, 0, '', 0, 0, array(), 'maxwidth500 widthcentpercentminusxx'); print '
    '.$langs->trans("DeliveryDate").''; + print '
    '.$langs->trans("DeliveryDate").''; if (isset($conf->global->DATE_LIVRAISON_WEEK_DELAY) && is_numeric($conf->global->DATE_LIVRAISON_WEEK_DELAY)) { $tmpdte = time() + ((7 * $conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60); $syear = date("Y", $tmpdte); @@ -1718,10 +1859,10 @@ if ($action == 'create') { print '
    '.$langs->trans("Project").''; + print '
    '.$langs->trans("Project").''; print img_picto('', 'project', 'class="pictofixedwidth"').$formproject->select_projects(($soc->id > 0 ? $soc->id : -1), $projectid, 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500 widthcentpercentminusxx'); print ' id).'">'; print '
    '; + print '
    '; print $form->select_incoterms((!empty($soc->fk_incoterms) ? $soc->fk_incoterms : ''), (!empty($soc->location_incoterms) ? $soc->location_incoterms : '')); print '
    '.$langs->trans("DefaultModel").''; - print img_picto('', 'pdf').' '; + print '
    '.$langs->trans("DefaultModel").''; + print img_picto('', 'pdf', 'class="pictofixedwidth"'); $liste = ModelePDFPropales::liste_modeles($db); $preselected = (!empty($conf->global->PROPALE_ADDON_PDF_ODT_DEFAULT) ? $conf->global->PROPALE_ADDON_PDF_ODT_DEFAULT : getDolGlobalString("PROPALE_ADDON_PDF")); print $form->selectarray('model', $liste, $preselected, 0, 0, 0, '', 0, 0, 0, '', 'maxwidth200 widthcentpercentminusx', 1); print "
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; - print $form->selectMultiCurrency($currency_code, 'multicurrency_code', 0); + if (isModEnabled("multicurrency")) { + print '
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; + print img_picto('', 'currency', 'class="pictofixedwidth"').$form->selectMultiCurrency($currency_code, 'multicurrency_code', 0); print '
    '.$langs->trans('NotePublic').''; + print '
    '.$langs->trans('NotePublic').''; $note_public = $object->getDefaultCreateValueFor('note_public', (!empty($objectsrc) ? $objectsrc->note_public : null)); $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); // Private note if (empty($user->socid)) { - print '
    '.$langs->trans('NotePrivate').''; + print '
    '.$langs->trans('NotePrivate').''; $note_private = $object->getDefaultCreateValueFor('note_private', ((!empty($origin) && !empty($originid) && is_object($objectsrc)) ? $objectsrc->note_private : null)); $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); @@ -1786,7 +1927,7 @@ if ($action == 'create') { // Calcul contrat->price (HT), contrat->total (TTC), contrat->tva $objectsrc->remise_absolue = $remise_absolue; // deprecated $objectsrc->remise_percent = $remise_percent; - $objectsrc->update_price(1, - 1, 1); + $objectsrc->update_price(1, 'auto', 1); } print "\n"; @@ -1820,7 +1961,7 @@ if ($action == 'create') { } print '
    '.$langs->trans('AmountTTC').''.price($objectsrc->total_ttc, 0, $langs, 1, -1, -1, $conf->currency)."
    '.$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 ''; - 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 ''; @@ -2164,17 +2442,17 @@ if ($action == 'create') { print '
    '; print '
    '; if ($action == 'editconditions' && $usercancreate && $caneditfield) { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'cond_reglement_id'); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'cond_reglement_id', 0, '', 1, $object->deposit_percent); } else { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'none'); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'none', 0, '', 1, $object->deposit_percent); } print '
    '; - print ''; + print '
    '; + print '
    '; + print ''; if ($action != 'editmode' && $usercancreate && $caneditfield) { @@ -2193,7 +2471,7 @@ if ($action == 'create') { $langs->load('deliveries'); print ''; print ''; @@ -2201,7 +2479,7 @@ if ($action == 'create') { // Delivery delay print ''; 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; + } + print ''; - print ''; + print ''; print ''; print ''; // List of existing import profils @@ -1294,7 +1511,7 @@ if ($step == 4 && $datatoimport) { print $langs->trans("Everybody"); } else { $tmpuser->fetch($obj->fk_user); - print $tmpuser->getNomUrl(1); + print $tmpuser->getNomUrl(-1); } print ''; print ''; @@ -1471,11 +1688,25 @@ if ($step == 5 && $datatoimport) { if ($action == 'launchsimu') { print '   '.$langs->trans("Modify").''; } + if ($excludefirstline == 2) { + print $form->textwithpicto("", $langs->trans("WarningFirstImportedLine", $excludefirstline), 1, 'warning', "warningexcludefirstline"); + print ''; + } print ''; // Keys for data UPDATE (not INSERT of new data) print ''; @@ -1588,7 +1819,7 @@ if ($step == 5 && $datatoimport) { // Actions print '
    '; - if ($user->rights->import->run) { + if ($user->hasRight('import', 'run')) { print ''; } else { print ''.$langs->trans("RunSimulateImportFile").''; @@ -1675,16 +1906,17 @@ if ($step == 5 && $datatoimport) { // Show OK if (!count($arrayoferrors) && !count($arrayofwarnings)) { - print '
    '.img_picto($langs->trans("OK"), 'tick').' '.$langs->trans("NoError").'


    '; - print '
    '; + print '
    '; + print '
    '; + print '
    '.$langs->trans("ResultOfSimulationNoError").'
    '; print $langs->trans("NbInsert", empty($obj->nbinsert) ? 0 : $obj->nbinsert).'
    '; print $langs->trans("NbUpdate", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'
    '; print '
    '; print '
    '; } else { print '
    '; - print '
    '; - print $langs->trans("NbOfLinesOK", $nbok).'
    '; + print '
    '; + print $langs->trans("NbOfLinesOK", $nbok).'...
    '; print '
    '; print '
    '; } @@ -1700,9 +1932,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 '
    '; print $langs->trans('PaymentMode'); print '
    '; print $form->editfieldkey($langs->trans('DeliveryDate'), 'date_livraison', $object->delivery_date, $object, $usercancreate && $caneditfield, 'datepicker'); - print ''; + print ''; print $form->editfieldval($langs->trans('DeliveryDate'), 'date_livraison', $object->delivery_date, $object, $usercancreate && $caneditfield, 'datepicker'); print '
    '; print ''; // Shipping Method - if (!empty($conf->expedition->enabled)) { + if (isModEnabled("expedition")) { print ''; print ''; - if ($societe->id > 0) { + if (!empty($societe->id) && $societe->id > 0) { // Discounts for third party 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 ''; @@ -2034,7 +2048,7 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($usercancreate) { @@ -2079,8 +2093,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 ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print ''; print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { print ''; @@ -754,7 +743,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 ''; @@ -802,7 +791,7 @@ if ($id > 0 || !empty($ref)) { $nbfreeproduct++; } else { $remaintodispatch = price2num($objp->qty - ((float) $products_dispatched[$objp->rowid]), 5); // Calculation of dispatched - if ($remaintodispatch < 0) { + if ($remaintodispatch < 0 && empty($conf->global->SUPPLIER_ORDER_ALLOW_NEGATIVE_QTY_FOR_SUPPLIER_ORDER_RETURN)) { $remaintodispatch = 0; } @@ -832,7 +821,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 ''; - if (!empty($conf->productbatch->enabled) && $objp->tobatch > 0) { + if (isModEnabled('productbatch') && $objp->tobatch > 0) { $type = 'batch'; print ''; // Qty to dispatch @@ -993,7 +982,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 ''; print ''; print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { print ''; @@ -1190,7 +1179,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 +1191,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,7 +1202,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Reception ref - if (!empty($conf->reception->enabled)) { + if (isModEnabled("reception")) { print ''; print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if ($objp->batch) { include_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php'; $lot = new Productlot($db); @@ -1334,7 +1319,7 @@ if ($id > 0 || !empty($ref)) { } } print ''; - } elseif (!empty($conf->reception->enabled)) { + } elseif (isModEnabled("reception")) { print ''; } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } // Town if (!empty($arrayfields['s.town']['checked'])) { print ''; @@ -1419,6 +1443,16 @@ 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 '\n"; @@ -1532,7 +1575,10 @@ if ($resql) { $totalarray = array('nbfield' => 0, 'val' => array(), 'pos' => array()); $totalarray['val']['cf.total_ht'] = 0; $totalarray['val']['cf.total_ttc'] = 0; - while ($i < min($num, $limit)) { + $totalarray['val']['cf.total_tva'] = 0; + + $imaxinloop = ($limit ? min($num, $limit) : $num); + while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); $notshippable = 0; @@ -1618,7 +1664,17 @@ if ($resql) { $thirdpartytmp->id = $obj->socid; $thirdpartytmp->name = $obj->name; $thirdpartytmp->email = $obj->email; - print $thirdpartytmp->getNomUrl(1, 'supplier'); + $thirdpartytmp->name_alias = $obj->alias; + 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']++; @@ -1830,6 +1886,25 @@ 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 ''; + } + $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); @@ -1876,8 +1962,8 @@ if ($resql) { $urlsource .= str_replace('&', '&', $param); $filedir = $diroutputmassaction; - $genallowed = ($user->rights->fournisseur->commande->lire || $user->rights->supplier_order->lire); - $delallowed = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); + $genallowed = $permissiontoread; + $delallowed = $permissiontoadd; print $formfile->showdocuments('massfilesarea_supplier_order', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); } else { diff --git a/htdocs/fourn/commande/note.php b/htdocs/fourn/commande/note.php index 1c67c03d727..ee5c0335ce9 100644 --- a/htdocs/fourn/commande/note.php +++ b/htdocs/fourn/commande/note.php @@ -25,10 +25,11 @@ * \brief Fiche note commande */ +// 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'; } @@ -69,7 +70,7 @@ 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); @@ -106,7 +107,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->fournisseur->commande->creer || $user->rights->supplier_order->creer) { 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 502d0d124ce..f9c955e5c82 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'; @@ -112,10 +113,10 @@ $permissiontoedit = $user->rights->fournisseur->facture->creer || $user->rights- $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; @@ -185,10 +186,10 @@ if (empty($reshook)) { } if (! $error) { - $object->titre = GETPOST('title', 'nohtml'); // deprecated - $object->title = GETPOST('title', 'nohtml'); + $object->titre = GETPOST('title', 'alphanohtml'); // deprecated + $object->title = GETPOST('title', 'alphanohtml'); $object->fk_project = GETPOST('projectid', 'int'); - $object->ref_supplier = GETPOST('ref_supplier', 'nohtml'); + $object->ref_supplier = GETPOST('ref_supplier', 'alphanohtml'); $object->note_private = GETPOST('note_private', 'restricthtml'); $object->note_public = GETPOST('note_public', 'restricthtml'); @@ -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 (!empty($conf->global->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 (!empty($conf->global->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 '
    '; - 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'); @@ -2222,9 +2500,9 @@ if ($action == 'create') { print '
    '; - print ''."\n"; -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { // Customer Categories print ' - multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { ?> + multicurrency_code != $conf->currency) { ?> @@ -192,7 +193,7 @@ 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 +230,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") && empty($conf->service->enabled)) { $labelforradio = $langs->trans('PredefinedProductsToSell'); - } elseif ((empty($conf->product->enabled) && !empty($conf->service->enabled)) || ($object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS))) { + } elseif ((empty($conf->product->enabled) && 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") && empty($conf->service->enabled)) { $labelforradio = $langs->trans('PredefinedProductsToPurchase'); - } elseif (empty($conf->product->enabled) && !empty($conf->service->enabled)) { + } elseif (empty($conf->product->enabled) && isModEnabled("service")) { $labelforradio = $langs->trans('PredefinedServicesToPurchase'); } else { $labelforradio = $langs->trans('PredefinedProductsAndServicesToPurchase'); @@ -335,7 +336,7 @@ 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)) { echo '
    '; @@ -355,9 +356,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').' '; @@ -394,7 +399,7 @@ if ($nolinesbefore) { multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { + if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { $coldisplay++; ?>
    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 ''; @@ -730,7 +735,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) { $.post('/product/ajax/products.php?action=fetch', { 'id': $(this).val(), 'socid': socid; ?> }, function(data) { - console.log("Load unit price end, we got value "+data.price_ht); + console.log("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'); @@ -751,7 +756,11 @@ if (!empty($usemargins) && $user->rights->margins->creer) { jQuery('#date_end').removeClass('inputmandatory'); } - jQuery("#price_ht").val(data.price_ht); + if ( == 1 && data.pricebasetype == 'TTC') { + jQuery("#price_ttc").val(data.price_ttc); + } else { + jQuery("#price_ht").val(data.price_ht); + } global->PRODUIT_AUTOFILL_DESC) && $conf->global->PRODUIT_AUTOFILL_DESC == 1) { if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { ?> @@ -948,11 +957,14 @@ 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'));} - console.log("We find supplier price :"+up+" qty: "+qty+" discount: "+discount+" for product "+jQuery('#idprodfournprice').val()); + /* var tva_tx = $('option:selected', this).data('tvatx'); */ + + console.log("We find supplier price :"+up+" qty: "+qty+" tva_tx="+tva_tx+" discount: "+discount+" for product "+jQuery('#idprodfournprice').val()); jQuery("#price_ht").val(up); - if (jQuery("#qty").val() < qty) - { + /* $('#tva_tx option').removeAttr('selected').filter('[value='+tva_tx+']').prop('selected', true); */ + + if (jQuery("#qty").val() < qty) { jQuery("#qty").val(qty); } if (jQuery("#remise_percent").val() < discount) diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index c59949d5fb7..d755c3996a8 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 @@ -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++; } @@ -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; @@ -214,7 +214,7 @@ $coldisplay++; } print '>'; - if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { + if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { $coldisplay++; print ''; } @@ -290,7 +290,7 @@ $coldisplay++; ?> -service->enabled) && $line->product_type == 1 && $dateSelector) { ?> +product_type == 1 && $dateSelector) { ?> global->MAIN_VIEW_LINE_NUMBER)) { ?> diff --git a/htdocs/core/tpl/objectline_title.tpl.php b/htdocs/core/tpl/objectline_title.tpl.php index e8dbec2ac77..36403e56c72 100644 --- a/htdocs/core/tpl/objectline_title.tpl.php +++ b/htdocs/core/tpl/objectline_title.tpl.php @@ -61,14 +61,14 @@ if ($this->element == 'supplier_proposal' || $this->element == 'order_supplier' } // VAT -print ''; // Price HT -print ''; +print ''; // Multicurrency -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { +if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { print ''; } if ($inputalsopricewithtax) { - print ''; + print ''; } // Qty @@ -105,7 +105,24 @@ if (!empty($conf->global->PRODUCT_USE_UNITS)) { } // Reduction short -print ''; +print ''; // Fields for situation invoice if (isset($this->situation_cycle_ref) && $this->situation_cycle_ref) { @@ -135,7 +152,7 @@ if ($usemargins && !empty($conf->margin->enabled) && empty($user->socid)) { print ''; // Multicurrency -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { +if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { print ''; } @@ -143,7 +160,7 @@ if ($outputalsopricetotalwithtax) { print ''; } -if (!empty($conf->asset->enabled) && $object->element == 'invoice_supplier') { +if (isModEnabled('asset') && $object->element == 'invoice_supplier') { print ''; } diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index c2d81b81eb5..6adb3f97f5e 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -248,7 +248,7 @@ if ($user->rights->fournisseur->lire && $line->fk_fournprice > 0 && empty($conf- } } -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); @@ -280,17 +280,17 @@ print vatrate($positiverates.($line->vat_src_code ? ' ('.$line->vat_src_code.')' //print vatrate($line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''), '%', $line->info_bits); ?> - + -multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { ?> - +multicurrency_code != $conf->currency) { ?> + - + - '; - if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { + if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { print ''; $coldisplay++; } @@ -397,7 +397,7 @@ if ($this->statut == 0 && !empty($object_rights->creer) && $action != 'selectlin } } - if (!empty($conf->asset->enabled) && $object->element == 'invoice_supplier') { + if (isModEnabled('asset') && $object->element == 'invoice_supplier') { 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..9aaba5745bb 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -30,10 +30,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'; diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php index 1d46aec1008..73312ec52cf 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -71,27 +71,33 @@ 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; + } + return $ret; } - return $ret; } } // Order to invoice if ($action == 'ORDER_CLOSE') { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); - if (!empty($conf->facture->enabled) && !empty($conf->global->WORKFLOW_ORDER_AUTOCREATE_INVOICE)) { + if (isModEnabled('facture') && !empty($conf->global->WORKFLOW_ORDER_AUTOCREATE_INVOICE)) { include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $newobject = new Facture($this->db); @@ -111,7 +117,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 +142,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 +161,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,7 +179,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers } } - if (!empty($conf->expedition->enabled) && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE)) { + if (isModEnabled("expedition") && !empty($conf->workflow->enabled) && !empty($conf->global->WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE)) { /** @var Facture $object */ $object->fetchObjectLinked('', 'shipping', $object->id, $object->element); @@ -194,7 +200,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 +222,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; @@ -238,7 +244,7 @@ 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)) { + if (isModEnabled("reception") && !empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)) { $object->fetchObjectLinked('', 'reception', $object->id, $object->element); if (!empty($object->linkedObjects)) { $totalonlinkedelements = 0; @@ -266,7 +272,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 +296,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 +365,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')) diff --git a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php index cf6a8220c29..954949e427c 100644 --- a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php +++ b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php @@ -186,6 +186,14 @@ class InterfaceActionsAuto extends DolibarrTriggers } $object->actionmsg = $langs->transnoentities("PropalValidatedInDolibarr", ($object->newref ? $object->newref : $object->ref)); + $object->sendtoid = 0; + } elseif ($action == 'PROPAL_MODIFY') { + // Load translation files required by the page + $langs->loadLangs(array("agenda", "other", "propal")); + + if (empty($object->actionmsg2)) $object->actionmsg2 = $langs->transnoentities("PropalBackToDraftInDolibarr", ($object->newref ? $object->newref : $object->ref)); + $object->actionmsg = $langs->transnoentities("PropalBackToDraftInDolibarr", ($object->newref ? $object->newref : $object->ref)); + $object->sendtoid = 0; } elseif ($action == 'PROPAL_SENTBYMAIL') { // Load translation files required by the page @@ -790,6 +798,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 @@ -916,7 +936,8 @@ class InterfaceActionsAuto extends DolibarrTriggers } } - // If trackid is not defined, we set it + // If trackid is not defined, we set it. + // Note that it should be set by caller. This is for compatibility purpose only. if (empty($object->trackid)) { // See also similar list into emailcollector.class.php if (preg_match('/^COMPANY_/', $action)) { @@ -953,6 +974,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 = ''; } @@ -966,7 +989,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(); @@ -1031,15 +1054,17 @@ class InterfaceActionsAuto extends DolibarrTriggers $actioncomm->contact_id = $contactforaction->id; // deprecated, use ->socpeopleassigned instead $actioncomm->authorid = $user->id; // User saving action $actioncomm->userownerid = $user->id; // Owner of action - // Fields defined when action is an email (content should be into object->actionmsg to be added into note, subject into object->actionms2 to be added into label) - $actioncomm->email_msgid = empty($object->email_msgid) ? null : $object->email_msgid; - $actioncomm->email_from = empty($object->email_from) ? null : $object->email_from; - $actioncomm->email_sender = empty($object->email_sender) ? null : $object->email_sender; - $actioncomm->email_to = empty($object->email_to) ? null : $object->email_to; - $actioncomm->email_tocc = empty($object->email_tocc) ? null : $object->email_tocc; - $actioncomm->email_tobcc = empty($object->email_tobcc) ? null : $object->email_tobcc; - $actioncomm->email_subject = empty($object->email_subject) ? null : $object->email_subject; - $actioncomm->errors_to = empty($object->errors_to) ? null : $object->errors_to; + // Fields defined when action is an email (content should be into object->actionmsg to be added into event note, subject should be into object->actionms2 to be added into event label) + if (!property_exists($object, 'email_fields_no_propagate_in_actioncomm') || empty($object->email_fields_no_propagate_in_actioncomm)) { + $actioncomm->email_msgid = empty($object->email_msgid) ? null : $object->email_msgid; + $actioncomm->email_from = empty($object->email_from) ? null : $object->email_from; + $actioncomm->email_sender = empty($object->email_sender) ? null : $object->email_sender; + $actioncomm->email_to = empty($object->email_to) ? null : $object->email_to; + $actioncomm->email_tocc = empty($object->email_tocc) ? null : $object->email_tocc; + $actioncomm->email_tobcc = empty($object->email_tobcc) ? null : $object->email_tobcc; + $actioncomm->email_subject = empty($object->email_subject) ? null : $object->email_subject; + $actioncomm->errors_to = empty($object->errors_to) ? null : $object->errors_to; + } // Object linked (if link is for thirdparty, contact, project it is a recording error. We should not have links in link table // for such objects because there is already a dedicated field into table llx_actioncomm or llx_actioncomm_resources. diff --git a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php index 741cc4d09bc..275fc954ece 100644 --- a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php +++ b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php @@ -69,7 +69,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers 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); diff --git a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php index 6e4f8cb1563..dc02117da13 100644 --- a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php +++ b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php @@ -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'])) { diff --git a/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php b/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php index e13328e0a2a..87f707081bb 100644 --- a/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php +++ b/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php @@ -169,7 +169,7 @@ class InterfaceTicketEmail extends DolibarrTriggers } if ($sendto) { - $this->composeAndSendCustomerMessage($sendto, $subject_customer, $body_customer, $see_ticket_customer, $object, $langs, $conf); + $this->composeAndSendCustomerMessage($sendto, $subject_customer, $body_customer, $see_ticket_customer, $object, $langs); } } @@ -240,7 +240,7 @@ class InterfaceTicketEmail extends DolibarrTriggers unset($linked_contacts); } if ($sendto) { - $this->composeAndSendCustomerMessage($sendto, $subject_customer, $body_customer, $see_ticket_customer, $object, $langs, $conf); + $this->composeAndSendCustomerMessage($sendto, $subject_customer, $body_customer, $see_ticket_customer, $object, $langs); } } $ok = 1; @@ -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 dfac4c5b84d..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; */ @@ -202,8 +202,8 @@ class InterfaceStripe extends DolibarrTriggers $this->db->query($sql); } - // If payment mode is linked to Stripee, we update/delete Stripe too - if ($action == 'COMPANYPAYMENTMODE_MODIFY' && $object->type == 'card') { + // If payment mode is linked to Stripe, we update/delete Stripe too + if ($action == 'COMPANYPAYMENTMODE_CREATE' && $object->type == 'card') { // For creation of credit card, we do not create in Stripe automatically } if ($action == 'COMPANYPAYMENTMODE_MODIFY' && $object->type == 'card') { @@ -222,6 +222,7 @@ class InterfaceStripe extends DolibarrTriggers } if ($customer) { + dol_syslog("We got the customer, so now we update the credit card", LOG_DEBUG); $card = $stripe->cardStripe($customer, $object, $stripeacc, $servicestatus); if ($card) { $card->metadata = array('dol_id'=>$object->id, 'dol_version'=>DOL_VERSION, 'dol_entity'=>$conf->entity, 'ipaddress'=>(empty($_SERVER['REMOTE_ADDR']) ? '' : $_SERVER['REMOTE_ADDR'])); 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..a8932934bd1 --- /dev/null +++ b/htdocs/core/triggers/interface_95_modWebhook_WebhookTriggers.class.php @@ -0,0 +1,121 @@ + + * + * 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)) { + $jsonstr = '{"triggercode":'.json_encode($action).',"object":'.json_encode($object).'}'; + $response = getURLContent($tmpobject->url, 'POST', $jsonstr); + 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..eca74045316 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 . */ /** @@ -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); + */ } /** 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 77ace0e4937..ac28bc631a4 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'; @@ -337,7 +338,7 @@ if (($action == "create") || ($action == "edit")) { print '
    "; - print ""; print ""; @@ -353,7 +354,7 @@ if (($action == "create") || ($action == "edit")) { print '"; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; - print ''; print ''; +print ''; print ''; print ''; -print ''; -print ''; +//print ''; +//print ''; print ''; print ''; print ''; @@ -449,13 +456,14 @@ 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); 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("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); @@ -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 ''; @@ -594,24 +618,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 +411,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 ''; diff --git a/htdocs/delivery/class/delivery.class.php b/htdocs/delivery/class/delivery.class.php index f41b855e123..55f6293a9d2 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(); @@ -528,6 +530,8 @@ class Delivery extends CommonObject public function create_from_sending($user, $sending_id) { // phpcs:enable + global $conf; + $expedition = new Expedition($this->db); $result = $expedition->fetch($sending_id); @@ -772,9 +776,9 @@ class Delivery extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Load lines + * Load lines insto $this->lines. * - * @return void + * @return int <0 if KO, >0 if OK */ public function fetch_lines() { @@ -840,9 +844,11 @@ class Delivery extends CommonObject $i++; } $this->db->free($resql); - } - return $this->lines; + return 1; + } else { + return -1; + } } @@ -973,7 +979,7 @@ class Delivery extends CommonObject if ($resultSourceLine) { $num_lines = $this->db->num_rows($resultSourceLine); $i = 0; - $resultArray = array(); + $array = array(); while ($i < $num_lines) { $objSourceLine = $this->db->fetch_object($resultSourceLine); @@ -1133,14 +1139,6 @@ class DeliveryLine extends CommonObjectLine */ public $table_element = 'deliverydet'; - // From llx_expeditiondet - public $qty; - public $qty_asked; - public $qty_shipped; - public $price; - public $fk_product; - public $origin_id; - /** * @var string delivery note lines label */ @@ -1162,11 +1160,25 @@ class DeliveryLine extends CommonObjectLine */ public $libelle; - public $origin_line_id; + // From llx_expeditiondet + public $qty; + public $qty_asked; + public $qty_shipped; + public $fk_product; + public $product_desc; + public $product_type; public $product_ref; public $product_label; + public $fk_origin_line; + public $origin_id; + + public $price; + + public $origin_line_id; + + /** * Constructor * 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 +461,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 "".''; @@ -511,7 +512,7 @@ if ($action == 'create') { print ''; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print "\n"; @@ -591,7 +592,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'); @@ -700,7 +701,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 +757,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 '
    '; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; @@ -249,7 +250,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 +281,7 @@ if ($resql) { } 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); diff --git a/htdocs/don/payment/payment.php b/htdocs/don/payment/payment.php index 5128509c88c..6a2cc78f128 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++; } @@ -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++; @@ -149,7 +150,7 @@ $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); $sumpaid = $obj->total; - $db->free(); + $db->free($resql); } diff --git a/htdocs/don/stats/index.php b/htdocs/don/stats/index.php index f56bdcd15ac..4109c30d335 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'; 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 d8d1da60e24..3f4df8b847b 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) { @@ -569,7 +569,7 @@ class EcmFiles extends CommonObject $line = new EcmfilesLine(); $line->id = $obj->rowid; - $line->ref = $obj->ref; + $line->ref = $obj->rowid; $line->label = $obj->label; $line->share = $obj->share; $line->entity = $obj->entity; diff --git a/htdocs/ecm/dir_add_card.php b/htdocs/ecm/dir_add_card.php index d7de6acc727..01a1cfb63a9 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,7 +86,7 @@ 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; } @@ -230,7 +231,7 @@ if ($action == 'create') { print '
    '; + print ''; if ($action != 'editshippingmethod' && $usercancreate && $caneditfield) { @@ -2246,7 +2524,7 @@ if ($action == 'create') { $langs->load('stocks'); require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; $formproduct = new FormProduct($db); - 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'; 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 003cd999cde..676c5768ea3 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -76,47 +76,20 @@ class pdf_standard extends ModelePDFSuppliersPayments */ public $version = 'dolibarr'; - /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - /** * Issuer * @var Societe */ public $emetteur; + public $posxdate; + public $posxreffacturefourn; + public $posxreffacture; + public $posxtype; + public $posxtotalht; + public $posxtva; + public $posxtotalttc; + /** * Constructor @@ -158,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; @@ -447,6 +420,9 @@ class pdf_standard extends ModelePDFSuppliersPayments 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) { if ($pagenb == 1) { @@ -700,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; 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..292662a14ad 100644 --- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php +++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php @@ -61,11 +61,11 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments */ 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 b1b8e999ce9..c5db770bdb4 100644 --- a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php +++ b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php @@ -27,6 +27,41 @@ abstract class ModelePDFSuppliersPayments extends CommonDocGenerator */ public $error = ''; + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** 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 c79ee188213..b8148a35c5d 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 @@ -88,7 +88,6 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal $this->option_tva = 0; // Manage the vat option PROPALE_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 @@ -298,7 +297,7 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal $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); @@ -307,11 +306,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; @@ -319,8 +318,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 0c708351acc..8ca9a36b0f8 100644 --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php @@ -149,12 +149,12 @@ class pdf_aurore extends ModelePDFSupplierProposal $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // Display product-service code $this->option_multilang = 1; // Available in several languages $this->option_escompte = 1; // Displays if there has been a discount $this->option_credit_note = 1; // Support credit notes $this->option_freetext = 1; // Support add of a personalised text $this->option_draft_watermark = 1; //Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -205,7 +205,7 @@ class pdf_aurore extends ModelePDFSupplierProposal /** * Function to build pdf onto disk * - * @param Object $object Object to generate + * @param SupplierProposal $object Object to generate * @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 @@ -229,6 +229,11 @@ class pdf_aurore extends ModelePDFSupplierProposal // Load traductions files required by page $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "supplier_proposal")); + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->SUPPLIER_PROPOSAL_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->SUPPLIER_PROPOSAL_DRAFT_WATERMARK; + } + $nblines = count($object->lines); // Loop on each lines to detect if there is at least one image to show @@ -568,7 +573,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; @@ -654,6 +659,9 @@ class pdf_aurore extends ModelePDFSupplierProposal 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) { if ($pagenb == 1) { @@ -956,7 +964,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'))) { @@ -986,7 +994,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'))) { @@ -1040,7 +1048,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'))) { @@ -1070,7 +1078,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'))) { @@ -1284,11 +1292,6 @@ class pdf_aurore extends ModelePDFSupplierProposal pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->SUPPLIER_PROPOSAL_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->SUPPLIER_PROPOSAL_DRAFT_WATERMARK); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -1320,7 +1323,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,11 +1343,11 @@ 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")." : ".$outputlangs->convToOutputCharset($object->ref_client), '', 'R'); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefSupplier")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_fourn), 65), '', 'R'); } /* PHFAVRE $posy+=4; @@ -1496,6 +1499,6 @@ class pdf_aurore extends ModelePDFSupplierProposal { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'SUPPLIER_PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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/syslog/mod_syslog_file.php b/htdocs/core/modules/syslog/mod_syslog_file.php index 940f9a165d9..e99e16ef649 100644 --- a/htdocs/core/modules/syslog/mod_syslog_file.php +++ b/htdocs/core/modules/syslog/mod_syslog_file.php @@ -173,7 +173,7 @@ class mod_syslog_file extends LogHandler implements LogHandlerInterface $this->lastTime = $now; } - $message = strftime("%Y-%m-%d %H:%M:%S", time()).$delay." ".sprintf("%-7s", $logLevels[$content['level']])." ".sprintf("%-15s", $content['ip'])." ".($this->ident > 0 ?str_pad('', $this->ident, ' ') : '').$content['message']; + $message = dol_print_date(dol_now('gmt'), 'standard', 'gmt').$delay." ".sprintf("%-7s", $logLevels[$content['level']])." ".sprintf("%-15s", $content['ip'])." ".($this->ident > 0 ?str_pad('', $this->ident, ' ') : '').$content['message']; fwrite($filefd, $message."\n"); fclose($filefd); @chmod($logfile, octdec(empty($conf->global->MAIN_UMASK) ? '0664' : $conf->global->MAIN_UMASK)); 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..7b515ca6b3b 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 */ 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..89b3dbde5bc 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 */ 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..706977f72e6 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 @@ -166,7 +166,13 @@ class doc_generic_ticket_odt extends ModelePDFTicket $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 .= '
    '; @@ -260,7 +266,7 @@ class doc_generic_ticket_odt extends ModelePDFTicket $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 +275,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 +287,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_simple.php b/htdocs/core/modules/ticket/mod_ticket_simple.php index 523da47191d..76d8e4f8d79 100644 --- a/htdocs/core/modules/ticket/mod_ticket_simple.php +++ b/htdocs/core/modules/ticket/mod_ticket_simple.php @@ -129,7 +129,7 @@ class mod_ticket_simple extends ModeleNumRefTicket $sql .= " FROM ".MAIN_DB_PREFIX."ticket"; $search = $this->prefix."____-%"; $sql .= " WHERE ref LIKE '".$db->escape($search)."'"; - $sql .= " AND entity = ".$conf->entity; + $sql .= " AND entity IN (".getEntity('ticketnumber', 1, $ticket).")"; $resql = $db->query($sql); if ($resql) { diff --git a/htdocs/core/modules/ticket/mod_ticket_universal.php b/htdocs/core/modules/ticket/mod_ticket_universal.php index 176af782dc7..8efc2f6a4e5 100644 --- a/htdocs/core/modules/ticket/mod_ticket_universal.php +++ b/htdocs/core/modules/ticket/mod_ticket_universal.php @@ -81,7 +81,7 @@ class mod_ticket_universal extends ModeleNumRefTicket // Parametrage du prefix $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -127,15 +127,18 @@ 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'; return 0; } + // Get entities + $entity = getEntity('ticketnumber', 1, $ticket); + $date = empty($ticket->datec) ? dol_now() : $ticket->datec; - $numFinal = get_next_value($db, $mask, 'ticket', 'ref', '', $objsoc->code_client, $date); + $numFinal = get_next_value($db, $mask, 'ticket', 'ref', '', $objsoc->code_client, $date, 'next', false, null, $entity); return $numFinal; } 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 353d35fc182..505d68f0441 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 @@ -85,7 +85,6 @@ class doc_generic_user_odt extends ModelePDFUser $this->option_tva = 0; // Manage the vat option USER_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 @@ -198,7 +197,13 @@ class doc_generic_user_odt extends ModelePDFUser $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 .= '
    '; @@ -292,7 +297,7 @@ class doc_generic_user_odt extends ModelePDFUser $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); @@ -301,11 +306,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; @@ -313,8 +318,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/usergroup/doc/doc_generic_usergroup_odt.modules.php b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php index 7ba82f5825e..df3804670ad 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 @@ -88,7 +88,6 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup $this->option_tva = 0; // Manage the vat option USERGROUP_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 @@ -124,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 .= ''; @@ -170,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 $langs->trans('SendingMethod'); print '
    '; + print '
    '; $editenable = $usercancreate; print $form->editfieldkey("Warehouse", 'warehouse', '', $object, $editenable); print ''; @@ -2261,7 +2539,7 @@ if ($action == 'create') { // Origin of demand print '
    '; - print ''; - $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/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index e45630df298..426a582c3f4 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); } } @@ -393,6 +393,9 @@ class ImportCsv extends ModeleImports $newval = $arrayrecord[($key - 1)]['val']; // If type of field into input file is not empty string (so defined into input file), we get value } + //var_dump($newval);var_dump($val); + //var_dump($objimport->array_import_convertvalue[0][$val]); + // Make some tests on $newval // Is it a required field ? @@ -417,7 +420,7 @@ class ImportCsv extends ModeleImports } $newval = preg_replace('/^(id|ref):/i', '', $newval); // Remove id: or ref: that was used to force if field is id or ref - //print 'Val is now '.$newval.' and is type '.$isidorref."
    \n"; + //print 'Newval is now "'.$newval.'" and is type '.$isidorref."
    \n"; if ($isidorref == 'ref') { // If value into input import file is a ref, we apply the function defined into descriptor $file = (empty($objimport->array_import_convertvalue[0][$val]['classfile']) ? $objimport->array_import_convertvalue[0][$val]['file'] : $objimport->array_import_convertvalue[0][$val]['classfile']); @@ -432,6 +435,11 @@ class ImportCsv extends ModeleImports break; } $classinstance = new $class($this->db); + if ($class == 'CGenericDic') { + $classinstance->element = $objimport->array_import_convertvalue[0][$val]['element']; + $classinstance->table_element = $objimport->array_import_convertvalue[0][$val]['table_element']; + } + // Try the fetch from code or ref $param_array = array('', $newval); if ($class == 'AccountingAccount') { @@ -439,7 +447,7 @@ class ImportCsv extends ModeleImports /*include_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancysystem.class.php'; $tmpchartofaccount = new AccountancySystem($this->db); $tmpchartofaccount->fetch($conf->global->CHARTOFACCOUNTS); - var_dump($tmpchartofaccount->ref.' - '.$arrayrecord[0]['val']); + //var_dump($tmpchartofaccount->ref.' - '.$arrayrecord[0]['val']); if ((! ($conf->global->CHARTOFACCOUNTS > 0)) || $tmpchartofaccount->ref != $arrayrecord[0]['val']) { $this->errors[$error]['lib']=$langs->trans('ErrorImportOfChartLimitedToCurrentChart', $tmpchartofaccount->ref); @@ -462,9 +470,9 @@ 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, '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'; } @@ -504,7 +512,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'; } @@ -541,7 +549,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'; } @@ -552,8 +560,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)) { @@ -561,8 +569,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; + $newval = $this->thirdpartyobject->get_codefournisseur(0, 1); + $newval = $this->thirdpartyobject->code_fournisseur; //print 'code_fournisseur='.$newval; } if (empty($newval)) { @@ -570,8 +578,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)) { @@ -579,8 +587,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" } @@ -601,7 +609,7 @@ class ImportCsv extends ModeleImports $modForNumber = new $classModForNumber; $tmpobject = null; - // Set the object when we can + // Set the object with the date property when we can if (!empty($objimport->array_import_convertvalue[0][$val]['classobject'])) { $pathForObject = $objimport->array_import_convertvalue[0][$val]['pathobject']; require_once DOL_DOCUMENT_ROOT.$pathForObject; @@ -689,7 +697,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++; @@ -697,34 +705,62 @@ 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 - $listfields[] = $fieldname; - - // Note: arrayrecord (and 'type') is filled with ->import_read_record called by import.php page before calling import_insert - if (empty($newval) && $arrayrecord[($key - 1)]['type'] < 0) { - $listvalues[] = ($newval == '0' ? $newval : "null"); - } elseif (empty($newval) && $arrayrecord[($key - 1)]['type'] == 0) { - $listvalues[] = "''"; + if ($conf->socialnetworks->enabled && strpos($fieldname, "socialnetworks") !== false) { + if (!in_array("socialnetworks", $listfields)) { + $listfields[] = "socialnetworks"; + } + if (!empty($newval) && $arrayrecord[($key - 1)]['type'] > 0) { + $socialkey = array_search("socialnetworks", $listfields); + $socialnetwork = explode("_", $fieldname)[1]; + if (empty($listvalues[$socialkey]) || $listvalues[$socialkey] == "null") { + $json = new stdClass(); + $json->$socialnetwork = $newval; + $listvalues[$socialkey] = json_encode($json); + } else { + $jsondata = $listvalues[$socialkey]; + $json = json_decode($jsondata); + $json->$socialnetwork = $newval; + $listvalues[$socialkey] = json_encode($json); + } + } } else { - $listvalues[] = "'".$this->db->escape($newval)."'"; + $listfields[] = $fieldname; + // Note: arrayrecord (and 'type') is filled with ->import_read_record called by import.php page before calling import_insert + if (empty($newval) && $arrayrecord[($key - 1)]['type'] < 0) { + $listvalues[] = ($newval == '0' ? $newval : "null"); + } elseif (empty($newval) && $arrayrecord[($key - 1)]['type'] == 0) { + $listvalues[] = "''"; + } else { + $listvalues[] = "'".$this->db->escape($newval)."'"; + } } } $i++; } // We add hidden fields (but only if there is at least one field to add into table) - // We process here all the fields that were declared into the array ->import_fieldshidden_array of the descriptor file. + // We process here all the fields that were declared into the array $this->import_fieldshidden_array of the descriptor file. // Previously we processed the ->import_fields_array. if (!empty($listfields) && is_array($objimport->array_import_fieldshidden[0])) { // Loop on each hidden fields to add them into listfields/listvalues @@ -785,11 +821,18 @@ class ImportCsv extends ModeleImports $updatedone = false; $insertdone = false; + $is_table_category_link = false; + $fname = 'rowid'; + if (strpos($tablename, '_categorie_') !== false) { + $is_table_category_link = true; + $fname='*'; + } + if (!empty($updatekeys)) { // We do SELECT to get the rowid, if we already have the rowid, it's to be used below for related tables (extrafields) if (empty($lastinsertid)) { // No insert done yet for a parent table - $sqlSelect = "SELECT rowid FROM ".$tablename; + $sqlSelect = "SELECT ".$fname." FROM ".$tablename; $data = array_combine($listfields, $listvalues); $where = array(); @@ -797,18 +840,30 @@ class ImportCsv extends ModeleImports foreach ($updatekeys as $key) { $col = $objimport->array_import_updatekeys[0][$key]; $key = preg_replace('/^.*\./i', '', $key); - $where[] = $key.' = '.$data[$key]; - $filters[] = $col.' = '.$data[$key]; + if ($conf->socialnetworks->enabled && 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)."\"%'"; + } else { + $where[] = $key.' = '.$data[$key]; + $filters[] = $col.' = '.$data[$key]; + } } $sqlSelect .= " WHERE ".implode(' AND ', $where); $resql = $this->db->query($sqlSelect); if ($resql) { - $res = $this->db->fetch_object($resql); - if ($resql->num_rows == 1) { + $num_rows = $this->db->num_rows($resql); + if ($num_rows == 1) { + $res = $this->db->fetch_object($resql); $lastinsertid = $res->rowid; + if ($is_table_category_link) $lastinsertid = 'linktable'; // used to apply update on tables like llx_categorie_product and avoid being blocked for all file content if at least one entry already exists $last_insert_id_array[$tablename] = $lastinsertid; - } elseif ($resql->num_rows > 1) { + } elseif ($num_rows > 1) { $this->errors[$error]['lib'] = $langs->trans('MultipleRecordFoundWithTheseFilters', implode(', ', $filters)); $this->errors[$error]['type'] = 'SQL'; $error++; @@ -832,12 +887,12 @@ class ImportCsv extends ModeleImports if (empty($keyfield)) { $keyfield = 'rowid'; } - $sqlSelect .= " WHERE ".$keyfield.' = '.((int) $lastinsertid); + $sqlSelect .= " WHERE ".$keyfield." = ".((int) $lastinsertid); $resql = $this->db->query($sqlSelect); if ($resql) { $res = $this->db->fetch_object($resql); - if ($resql->num_rows == 1) { + if ($this->db->num_rows($resql) == 1) { // We have a row referencing this last foreign key, continue with UPDATE. } else { // No record found referencing this last foreign key, @@ -853,6 +908,13 @@ class ImportCsv extends ModeleImports } if (!empty($lastinsertid)) { + // We db escape social network field because he isn't in field creation + if (in_array("socialnetworks", $listfields)) { + $socialkey = array_search("socialnetworks", $listfields); + $tmpsql = $listvalues[$socialkey]; + $listvalues[$socialkey] = "'".$this->db->escape($tmpsql)."'"; + } + // Build SQL UPDATE request $sqlstart = "UPDATE ".$tablename; @@ -868,6 +930,10 @@ class ImportCsv extends ModeleImports } $sqlend = " WHERE ".$keyfield." = ".((int) $lastinsertid); + if ($is_table_category_link) { + $sqlend = " WHERE " . implode(' AND ', $where); + } + $sql = $sqlstart.$sqlend; // Run update request @@ -886,6 +952,13 @@ class ImportCsv extends ModeleImports // Update not done, we do insert if (!$error && !$updatedone) { + // We db escape social network field because he isn't in field creation + if (in_array("socialnetworks", $listfields)) { + $socialkey = array_search("socialnetworks", $listfields); + $tmpsql = $listvalues[$socialkey]; + $listvalues[$socialkey] = "'".$this->db->escape($tmpsql)."'"; + } + // Build SQL INSERT request $sqlstart = "INSERT INTO ".$tablename."(".implode(", ", $listfields).", import_key"; $sqlend = ") VALUES(".implode(', ', $listvalues).", '".$this->db->escape($importid)."'"; diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 9fa5cbf2c44..6d7c5bf82fd 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -1,6 +1,6 @@ - * Copyright (C) 2009-2012 Regis Houssin +/* Copyright (C) 2006-2012 Laurent Destailleur + * Copyright (C) 2009-2012 Regis Houssin * Copyright (C) 2012 Christophe Battarel * Copyright (C) 2012-2016 Juanjo Menent * @@ -86,6 +86,10 @@ class ImportXlsx extends ModeleImports public $cachefieldtable = array(); // Array to cache list of value found into fields@tables + public $nbinsert = 0; // # of insert done during the import + + public $nbupdate = 0; // # of update done during the import + public $workbook; // temporary import file public $record; // current record @@ -111,26 +115,25 @@ class ImportXlsx extends ModeleImports $this->extension = 'xlsx'; // Extension for generated file by this driver $this->picto = 'mime/xls'; // Picto (This is not used by the example file code as Mime type, too bad ...) $this->version = '1.0'; // Driver version + // If driver use an external library, put its name here require_once DOL_DOCUMENT_ROOT.'/includes/phpoffice/phpspreadsheet/src/autoloader.php'; require_once DOL_DOCUMENT_ROOT.'/includes/Psr/autoloader.php'; require_once PHPEXCELNEW_PATH.'Spreadsheet.php'; $this->workbook = new Spreadsheet(); - //if ($this->id == 'excel2007new') - { + // If driver use an external library, put its name here if (!class_exists('ZipArchive')) { // For Excel2007 $langs->load("errors"); $this->error = $langs->trans('ErrorPHPNeedModule', 'zip'); return -1; } - } $this->label_lib = 'PhpSpreadSheet'; $this->version_lib = '1.8.0'; $this->datatoimport = $datatoimport; if (preg_match('/^societe_/', $datatoimport)) { - $this->thirpartyobject = new Societe($this->db); + $this->thirdpartyobject = new Societe($this->db); } } @@ -436,11 +439,14 @@ class ImportXlsx extends ModeleImports $newval = $arrayrecord[($key)]['val']; // If type of field into input file is not empty string (so defined into input file), we get value } + //var_dump($newval);var_dump($val); + //var_dump($objimport->array_import_convertvalue[0][$val]); + // Make some tests on $newval // Is it a required field ? if (preg_match('/\*/', $objimport->array_import_fields[0][$val]) && ((string) $newval == '')) { - $this->errors[$error]['lib'] = $langs->trans('ErrorMissingMandatoryValue', $key); + $this->errors[$error]['lib'] = $langs->trans('ErrorMissingMandatoryValue', num2Alpha($key - 1)); $this->errors[$error]['type'] = 'NOTNULL'; $errorforthistable++; $error++; @@ -459,7 +465,7 @@ class ImportXlsx extends ModeleImports $isidorref = 'ref'; } $newval = preg_replace('/^(id|ref):/i', '', $newval); // Remove id: or ref: that was used to force if field is id or ref - //print 'Val is now '.$newval.' and is type '.$isidorref."
    \n"; + //print 'Newval is now "'.$newval.'" and is type '.$isidorref."
    \n"; if ($isidorref == 'ref') { // If value into input import file is a ref, we apply the function defined into descriptor $file = (empty($objimport->array_import_convertvalue[0][$val]['classfile']) ? $objimport->array_import_convertvalue[0][$val]['file'] : $objimport->array_import_convertvalue[0][$val]['classfile']); @@ -474,6 +480,11 @@ class ImportXlsx extends ModeleImports break; } $classinstance = new $class($this->db); + if ($class == 'CGenericDic') { + $classinstance->element = $objimport->array_import_convertvalue[0][$val]['element']; + $classinstance->table_element = $objimport->array_import_convertvalue[0][$val]['table_element']; + } + // Try the fetch from code or ref $param_array = array('', $newval); if ($class == 'AccountingAccount') { @@ -481,7 +492,7 @@ class ImportXlsx extends ModeleImports /*include_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancysystem.class.php'; $tmpchartofaccount = new AccountancySystem($this->db); $tmpchartofaccount->fetch($conf->global->CHARTOFACCOUNTS); - var_dump($tmpchartofaccount->ref.' - '.$arrayrecord[0]['val']); + //var_dump($tmpchartofaccount->ref.' - '.$arrayrecord[0]['val']); if ((! ($conf->global->CHARTOFACCOUNTS > 0)) || $tmpchartofaccount->ref != $arrayrecord[0]['val']) { $this->errors[$error]['lib']=$langs->trans('ErrorImportOfChartLimitedToCurrentChart', $tmpchartofaccount->ref); @@ -593,8 +604,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)) { @@ -602,8 +613,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; + $newval = $this->thirdpartyobject->get_codefournisseur(0, 1); + $newval = $this->thirdpartyobject->code_fournisseur; //print 'code_fournisseur='.$newval; } if (empty($newval)) { @@ -611,8 +622,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)) { @@ -620,8 +631,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" } @@ -672,7 +683,7 @@ class ImportXlsx extends ModeleImports break; } $classinstance = new $class($this->db); - $res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord)); + $res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $listfields, $key)); $newval = $res; // We get new value computed. } elseif ($objimport->array_import_convertvalue[0][$val]['rule'] == 'numeric') { $newval = price2num($newval); @@ -745,20 +756,49 @@ 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 - $listfields[] = $fieldname; - - // Note: arrayrecord (and 'type') is filled with ->import_read_record called by import.php page before calling import_insert - if (empty($newval) && $arrayrecord[($key)]['type'] < 0) { - $listvalues[] = ($newval == '0' ? $newval : "null"); - } elseif (empty($newval) && $arrayrecord[($key)]['type'] == 0) { - $listvalues[] = "''"; + if ($conf->socialnetworks->enabled && strpos($fieldname, "socialnetworks") !== false) { + if (!in_array("socialnetworks", $listfields)) { + $listfields[] = "socialnetworks"; + } + if (!empty($newval) && $arrayrecord[($key)]['type'] > 0) { + $socialkey = array_search("socialnetworks", $listfields); + $socialnetwork = explode("_", $fieldname)[1]; + if (empty($listvalues[$socialkey]) || $listvalues[$socialkey] == "null") { + $json = new stdClass(); + $json->$socialnetwork = $newval; + $listvalues[$socialkey] = json_encode($json); + } else { + $jsondata = $listvalues[$socialkey]; + $json = json_decode($jsondata); + $json->$socialnetwork = $newval; + $listvalues[$socialkey] = json_encode($json); + } + } } else { - $listvalues[] = "'" . $this->db->escape($newval) . "'"; + $listfields[] = $fieldname; + + // Note: arrayrecord (and 'type') is filled with ->import_read_record called by import.php page before calling import_insert + if (empty($newval) && $arrayrecord[($key)]['type'] < 0) { + $listvalues[] = ($newval == '0' ? $newval : "null"); + } elseif (empty($newval) && $arrayrecord[($key)]['type'] == 0) { + $listvalues[] = "''"; + } else { + $listvalues[] = "'" . $this->db->escape($newval) . "'"; + } } } $i++; @@ -800,7 +840,7 @@ class ImportXlsx extends ModeleImports break; } $classinstance = new $class($this->db); - $res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $fieldname, &$listfields, &$listvalues)); + $res = call_user_func_array(array($classinstance, $method), array(&$arrayrecord, $listfields, $key)); $fieldArr = explode('.', $fieldname); if (count($fieldArr) > 0) { $fieldname = $fieldArr[1]; @@ -825,11 +865,19 @@ class ImportXlsx extends ModeleImports if (!empty($listfields)) { $updatedone = false; $insertdone = false; + + $is_table_category_link = false; + $fname = 'rowid'; + if (strpos($tablename, '_categorie_') !== false) { + $is_table_category_link = true; + $fname='*'; + } + if (!empty($updatekeys)) { // We do SELECT to get the rowid, if we already have the rowid, it's to be used below for related tables (extrafields) if (empty($lastinsertid)) { // No insert done yet for a parent table - $sqlSelect = "SELECT rowid FROM " . $tablename; + $sqlSelect = "SELECT ".$fname." FROM " . $tablename; $data = array_combine($listfields, $listvalues); $where = array(); @@ -837,18 +885,30 @@ class ImportXlsx extends ModeleImports foreach ($updatekeys as $key) { $col = $objimport->array_import_updatekeys[0][$key]; $key = preg_replace('/^.*\./i', '', $key); - $where[] = $key . ' = ' . $data[$key]; - $filters[] = $col . ' = ' . $data[$key]; + if ($conf->socialnetworks->enabled && 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)."\"%'"; + } else { + $where[] = $key.' = '.$data[$key]; + $filters[] = $col.' = '.$data[$key]; + } } $sqlSelect .= " WHERE " . implode(' AND ', $where); $resql = $this->db->query($sqlSelect); if ($resql) { - $res = $this->db->fetch_object($resql); - if ($resql->num_rows == 1) { + $num_rows = $this->db->num_rows($resql); + if ($num_rows == 1) { + $res = $this->db->fetch_object($resql); $lastinsertid = $res->rowid; + if ($is_table_category_link) $lastinsertid = 'linktable'; // used to apply update on tables like llx_categorie_product and avoid being blocked for all file content if at least one entry already exists $last_insert_id_array[$tablename] = $lastinsertid; - } elseif ($resql->num_rows > 1) { + } elseif ($num_rows > 1) { $this->errors[$error]['lib'] = $langs->trans('MultipleRecordFoundWithTheseFilters', implode(', ', $filters)); $this->errors[$error]['type'] = 'SQL'; $error++; @@ -872,12 +932,12 @@ class ImportXlsx extends ModeleImports if (empty($keyfield)) { $keyfield = 'rowid'; } - $sqlSelect .= "WHERE " . $keyfield . " = " .((int) $lastinsertid); + $sqlSelect .= " WHERE ".$keyfield." = ".((int) $lastinsertid); $resql = $this->db->query($sqlSelect); if ($resql) { $res = $this->db->fetch_object($resql); - if ($resql->num_rows == 1) { + if ($this->db->num_rows($resql) == 1) { // We have a row referencing this last foreign key, continue with UPDATE. } else { // No record found referencing this last foreign key, @@ -893,13 +953,20 @@ class ImportXlsx extends ModeleImports } if (!empty($lastinsertid)) { + // We db escape social network field because he isn't in field creation + if (in_array("socialnetworks", $listfields)) { + $socialkey = array_search("socialnetworks", $listfields); + $tmpsql = $listvalues[$socialkey]; + $listvalues[$socialkey] = "'".$this->db->escape($tmpsql)."'"; + } + // Build SQL UPDATE request $sqlstart = "UPDATE " . $tablename; $data = array_combine($listfields, $listvalues); $set = array(); foreach ($data as $key => $val) { - $set[] = $key . ' = ' . $val; + $set[] = $key." = ".$val; } $sqlstart .= " SET " . implode(', ', $set); @@ -908,6 +975,10 @@ class ImportXlsx extends ModeleImports } $sqlend = " WHERE " . $keyfield . " = ".((int) $lastinsertid); + if ($is_table_category_link) { + $sqlend = " WHERE " . implode(' AND ', $where); + } + $sql = $sqlstart . $sqlend; // Run update request @@ -926,6 +997,13 @@ class ImportXlsx extends ModeleImports // Update not done, we do insert if (!$error && !$updatedone) { + // We db escape social network field because he isn't in field creation + if (in_array("socialnetworks", $listfields)) { + $socialkey = array_search("socialnetworks", $listfields); + $tmpsql = $listvalues[$socialkey]; + $listvalues[$socialkey] = "'".$this->db->escape($tmpsql)."'"; + } + // Build SQL INSERT request $sqlstart = "INSERT INTO " . $tablename . "(" . implode(", ", $listfields) . ", import_key"; $sqlend = ") VALUES(" . implode(', ', $listvalues) . ", '" . $this->db->escape($importid) . "'"; diff --git a/htdocs/core/modules/mailings/advthirdparties.modules.php b/htdocs/core/modules/mailings/advthirdparties.modules.php index 538e5389727..688db8b8e7f 100644 --- a/htdocs/core/modules/mailings/advthirdparties.modules.php +++ b/htdocs/core/modules/mailings/advthirdparties.modules.php @@ -42,6 +42,8 @@ class mailing_advthirdparties extends MailingTargets */ public $db; + public $enabled = '$conf->societe->enabled'; + /** * Constructor @@ -198,8 +200,8 @@ class mailing_advthirdparties extends MailingTargets * For example if this selector is used to extract 500 different * emails from a text file, this function must return 500. * - * @param string $sql Not use here - * @return int Nb of recipients + * @param string $sql Not use here + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -210,8 +212,7 @@ class mailing_advthirdparties extends MailingTargets $sql .= " WHERE s.email != ''"; $sql .= " AND s.entity IN (".getEntity('societe').")"; - // La requete doit retourner un champ "nb" pour etre comprise - // par parent::getNbOfRecipients + // La requete doit retourner un champ "nb" pour etre comprise par parent::getNbOfRecipients return parent::getNbOfRecipients($sql); } diff --git a/htdocs/core/modules/mailings/contacts1.modules.php b/htdocs/core/modules/mailings/contacts1.modules.php index d43c95720d3..decbc81716b 100644 --- a/htdocs/core/modules/mailings/contacts1.modules.php +++ b/htdocs/core/modules/mailings/contacts1.modules.php @@ -38,6 +38,8 @@ 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'; + /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ @@ -92,8 +94,8 @@ class mailing_contacts1 extends MailingTargets * 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 + * @param string $sql Requete sql de comptage + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -302,7 +304,15 @@ class mailing_contacts1 extends MailingTargets dol_print_error($this->db); } $s .= ''; + $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); + return $s; } @@ -336,6 +346,7 @@ class mailing_contacts1 extends MailingTargets $filter_category = GETPOST('filter_category', 'alpha'); $filter_category_customer = GETPOST('filter_category_customer', 'alpha'); $filter_category_supplier = GETPOST('filter_category_supplier', 'alpha'); + $filter_lang = GETPOST('filter_lang', 'alpha'); $cibles = array(); @@ -381,6 +392,7 @@ class mailing_contacts1 extends MailingTargets // Exclude unsubscribed email adresses $sql .= " AND sp.statut = 1"; $sql .= " AND sp.email NOT IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE fk_mailing=".((int) $mailing_id).")"; + // Filter on category if ($filter_category != 'all' && $filter_category != '-1') { $sql .= " AND cs.fk_categorie = c.rowid AND cs.fk_socpeople = sp.rowid"; @@ -394,6 +406,12 @@ class mailing_contacts1 extends MailingTargets $sql .= " AND c3s.fk_categorie = c3.rowid AND c3s.fk_soc = sp.fk_soc"; $sql .= " AND c3.label = '".$this->db->escape($filter_category_supplier)."'"; } + + // Filter on language + if ($filter_lang != '') { + $sql .= " AND sp.default_lang = '".$this->db->escape($filter_lang)."'"; + } + // Filter on nature $key = $filter; @@ -420,7 +438,7 @@ class mailing_contacts1 extends MailingTargets } $sql .= " ORDER BY sp.email"; - //print "wwwwwwx".$sql; + // print "wwwwwwx".$sql; // Stocke destinataires dans cibles $result = $this->db->query($sql); diff --git a/htdocs/core/modules/mailings/example.modules.php b/htdocs/core/modules/mailings/example.modules.php index bd553e1fd5d..739ab773196 100644 --- a/htdocs/core/modules/mailings/example.modules.php +++ b/htdocs/core/modules/mailings/example.modules.php @@ -111,8 +111,8 @@ class mailing_example extends MailingTargets * 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 Number of recipient or '?' + * @param string $sql Requete sql de comptage + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { diff --git a/htdocs/core/modules/mailings/fraise.modules.php b/htdocs/core/modules/mailings/fraise.modules.php index aa7c218417b..992539cc303 100644 --- a/htdocs/core/modules/mailings/fraise.modules.php +++ b/htdocs/core/modules/mailings/fraise.modules.php @@ -41,6 +41,8 @@ class mailing_fraise extends MailingTargets public $require_module = array('adherent'); + public $enabled = '$conf->adherent->enabled'; + /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ @@ -91,8 +93,8 @@ class mailing_fraise extends MailingTargets * 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 Nb of recipients + * @param string $sql Requete sql de comptage + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -100,8 +102,7 @@ class mailing_fraise extends MailingTargets $sql .= " FROM ".MAIN_DB_PREFIX."adherent as a"; $sql .= " WHERE (a.email IS NOT NULL AND a.email != '') AND a.entity IN (".getEntity('member').")"; - // La requete doit retourner un champ "nb" pour etre comprise - // par parent::getNbOfRecipients + // La requete doit retourner un champ "nb" pour etre comprise par parent::getNbOfRecipients return parent::getNbOfRecipients($sql); } diff --git a/htdocs/core/modules/mailings/modules_mailings.php b/htdocs/core/modules/mailings/modules_mailings.php index 9df8d44daf1..2064613d1e9 100644 --- a/htdocs/core/modules/mailings/modules_mailings.php +++ b/htdocs/core/modules/mailings/modules_mailings.php @@ -36,6 +36,11 @@ class MailingTargets // This can't be abstract as it is used for some method */ public $db; + /** + * @var string Condition to be enabled + */ + public $enabled; + /** * @var string Error code (or message) */ @@ -94,8 +99,8 @@ class MailingTargets // This can't be abstract as it is used for some method /** * Retourne nombre de destinataires * - * @param string $sql Sql request to count - * @return int Nb of recipient, or <0 if error + * @param string $sql Sql request to count + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql) { diff --git a/htdocs/core/modules/mailings/partnership.modules.php b/htdocs/core/modules/mailings/partnership.modules.php index b41a5e04c85..8a1fe0f2c16 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,6 +44,8 @@ class mailing_partnership extends MailingTargets */ public $db; + public $enabled = '$conf->partnership->enabled'; + /** * Constructor @@ -50,7 +55,7 @@ class mailing_partnership extends MailingTargets public function __construct($db) { global $conf, $langs; - $langs->load("companies"); + $langs->load('companies'); $this->db = $db; } @@ -164,8 +169,8 @@ class mailing_partnership extends MailingTargets * 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 Nb of recipients + * @param string $sql Requete sql de comptage + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -185,8 +190,7 @@ class mailing_partnership extends MailingTargets //print $sql; - // La requete doit retourner un champ "nb" pour etre comprise - // par parent::getNbOfRecipients + // La requete doit retourner un champ "nb" pour etre comprise par parent::getNbOfRecipients return parent::getNbOfRecipients($sql); } @@ -217,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) { @@ -252,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/pomme.modules.php b/htdocs/core/modules/mailings/pomme.modules.php index 56d62449bcf..7fdcdeb0c60 100644 --- a/htdocs/core/modules/mailings/pomme.modules.php +++ b/htdocs/core/modules/mailings/pomme.modules.php @@ -89,8 +89,8 @@ class mailing_pomme extends MailingTargets * For example if this selector is used to extract 500 different * emails from a text file, this function must return 500. * - * @param string $sql SQL request to use to count - * @return int Number of recipients + * @param string $sql SQL request to use to count + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -101,8 +101,7 @@ class mailing_pomme extends MailingTargets $sql .= " WHERE u.email != ''"; // u.email IS NOT NULL est implicite dans ce test $sql .= " AND u.entity IN (0,".$conf->entity.")"; - // La requete doit retourner un champ "nb" pour etre comprise - // par parent::getNbOfRecipients + // La requete doit retourner un champ "nb" pour etre comprise par parent::getNbOfRecipients return parent::getNbOfRecipients($sql); } diff --git a/htdocs/core/modules/mailings/thirdparties.modules.php b/htdocs/core/modules/mailings/thirdparties.modules.php index 23aaf6bcd59..335e3ac575a 100644 --- a/htdocs/core/modules/mailings/thirdparties.modules.php +++ b/htdocs/core/modules/mailings/thirdparties.modules.php @@ -31,6 +31,8 @@ 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'; + /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ @@ -78,6 +80,9 @@ class mailing_thirdparties extends MailingTargets $sql .= " WHERE s.email <> ''"; $sql .= " AND s.entity IN (".getEntity('societe').")"; $sql .= " AND s.email NOT IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE fk_mailing=".((int) $mailing_id).")"; + if (GETPOST('default_lang', 'alpha')) { + $sql .= " AND s.default_lang LIKE '".$this->db->escape(GETPOST('default_lang', 'alpha'))."%'"; + } } else { $addFilter = ""; if (GETPOSTISSET("filter_client") && GETPOST("filter_client") <> '-1') { @@ -108,6 +113,15 @@ class mailing_thirdparties extends MailingTargets $addDescription .= $langs->trans("Disabled"); } } + if (GETPOST('default_lang', 'alpha')) { + $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"; $sql .= " WHERE s.email <> ''"; @@ -201,8 +215,8 @@ class mailing_thirdparties extends MailingTargets * 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 Nb of recipients + * @param string $sql Requete sql de comptage + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -212,9 +226,8 @@ class mailing_thirdparties extends MailingTargets $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= " WHERE s.email <> ''"; $sql .= " AND s.entity IN (".getEntity('societe').")"; - - // La requete doit retourner un champ "nb" pour etre comprise - // par parent::getNbOfRecipients + $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); } @@ -302,6 +315,15 @@ class mailing_thirdparties extends MailingTargets $s .= ''; $s .= ''; $s .= ajax_combobox("filter_status_thirdparties"); + + if (!empty($conf->global->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 09f4cf76ae6..b5dec9cbbe0 100644 --- a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php +++ b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php @@ -29,6 +29,8 @@ class mailing_thirdparties_services_expired extends MailingTargets public $require_module = array('contrat'); + public $enabled = '$conf->societe->enabled'; + /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ @@ -182,8 +184,8 @@ class mailing_thirdparties_services_expired extends MailingTargets * For example if this selector is used to extract 500 different * emails from a text file, this function must return 500. * - * @param string $sql SQL request to use to count - * @return int Number of recipients + * @param string $sql SQL request to use to count + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { diff --git a/htdocs/core/modules/mailings/xinputfile.modules.php b/htdocs/core/modules/mailings/xinputfile.modules.php index 3ece88d4c1d..d698a646371 100644 --- a/htdocs/core/modules/mailings/xinputfile.modules.php +++ b/htdocs/core/modules/mailings/xinputfile.modules.php @@ -77,8 +77,8 @@ class mailing_xinputfile extends MailingTargets * For example if this selector is used to extract 500 different * emails from a text file, this function must return 500. * - * @param string $sql Sql request to count - * @return string '' means NA + * @param string $sql Sql request to count + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -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 b2874b43ca0..74ed18ba91f 100644 --- a/htdocs/core/modules/mailings/xinputuser.modules.php +++ b/htdocs/core/modules/mailings/xinputuser.modules.php @@ -77,8 +77,8 @@ class mailing_xinputuser extends MailingTargets * For example if this selector is used to extract 500 different * emails from a text file, this function must return 500. * - * @param string $sql Sql request to count - * @return string '' means NA + * @param string $sql Sql request to count + * @return int|string Nb of recipient, or <0 if error, or '' if NA */ public function getNbOfRecipients($sql = '') { @@ -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 91d2248fb48..0a196b49ae3 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 @@ -85,7 +85,6 @@ class doc_generic_member_odt extends ModelePDFMember $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 @@ -126,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/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 '
    '; + print ''; if ($action != 'editdemandreason' && $usercancreate) { @@ -2278,7 +2556,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 ''; - $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 c4d74d7b6d2..eee2190033e 100644 --- a/htdocs/core/modules/expensereport/modules_expensereport.php +++ b/htdocs/core/modules/expensereport/modules_expensereport.php @@ -28,6 +28,41 @@ abstract class ModeleExpenseReport extends CommonDocGenerator */ public $error = ''; + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index 88ae937bb6d..4b3ede2ae14 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -275,6 +275,7 @@ 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)) { @@ -338,13 +339,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/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php index e9b985ee151..f255fa52474 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 @@ -89,7 +89,6 @@ class doc_generic_invoice_odt extends ModelePDFFactures $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 @@ -180,7 +179,13 @@ class doc_generic_invoice_odt extends ModelePDFFactures $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 .= '
    '; @@ -273,7 +278,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures $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 +287,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; @@ -295,8 +300,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 8046347e881..2a94a94103e 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -164,12 +164,12 @@ class pdf_crabe extends ModelePDFFactures $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // Display product-service code $this->option_multilang = 1; // Available in several languages $this->option_escompte = 1; // Displays if there has been a discount $this->option_credit_note = 1; // Support credit notes $this->option_freetext = 1; // Support add of a personalised text $this->option_draft_watermark = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -249,6 +249,11 @@ class pdf_crabe extends ModelePDFFactures // Load translation files required by the page $outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies")); + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->FACTURE_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->FACTURE_DRAFT_WATERMARK; + } + global $outputlangsbis; $outputlangsbis = null; if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { @@ -293,9 +298,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) { @@ -447,8 +452,13 @@ class pdf_crabe extends ModelePDFFactures // 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( @@ -697,13 +707,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; @@ -790,6 +800,9 @@ class pdf_crabe extends ModelePDFFactures 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) { if ($pagenb == 1) { @@ -874,12 +887,12 @@ class pdf_crabe extends ModelePDFFactures /** * Show payments table * - * @param TCPDF $pdf Object PDF - * @param Facture $object Object invoice - * @param int $posy Position y in PDF - * @param Translate $outputlangs Object langs for output - * @param int $heightforfooter height for footer - * @return int <0 if KO, >0 if OK + * @param TCPDF $pdf Object PDF + * @param Facture $object Object invoice + * @param int $posy Position y in PDF + * @param Translate $outputlangs Object langs for output + * @param int $heightforfooter Height for footer + * @return int <0 if KO, >0 if OK */ protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs, $heightforfooter = 0) { @@ -953,7 +966,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); @@ -1003,7 +1016,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); @@ -1150,6 +1163,14 @@ 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(); @@ -1302,14 +1323,14 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetXY($col1x, $tab2_top + 0); $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 + 0); $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)) { @@ -1320,7 +1341,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'))) { @@ -1352,7 +1373,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'))) { @@ -1414,7 +1435,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'))) { @@ -1444,7 +1465,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'))) { @@ -1524,8 +1545,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)) { @@ -1718,11 +1739,6 @@ class pdf_crabe extends ModelePDFFactures pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->FACTURE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->FACTURE_DRAFT_WATERMARK); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -2048,6 +2064,6 @@ class pdf_crabe extends ModelePDFFactures { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'INVOICE_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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 39c76e780c8..cb1c2fb64e0 100644 --- a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php @@ -115,6 +115,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 @@ -165,12 +191,12 @@ class pdf_sponge extends ModelePDFFactures $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // Display product-service code $this->option_multilang = 1; // Available in several languages $this->option_escompte = 1; // Displays if there has been a discount $this->option_credit_note = 1; // Support credit notes $this->option_freetext = 1; // Support add of a personalised text $this->option_draft_watermark = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -234,6 +260,11 @@ class pdf_sponge extends ModelePDFFactures $outputlangsbis->loadLangs(array("main", "bills", "products", "dict", "companies")); } + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->FACTURE_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->FACTURE_DRAFT_WATERMARK; + } + $nblines = count($object->lines); $hidetop = 0; @@ -300,9 +331,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) { @@ -340,9 +371,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); @@ -424,14 +455,19 @@ class pdf_sponge extends ModelePDFFactures // $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; // top_shift is an addition for linked objects or addons (0 in most cases) + $this->tab_top_newpage = (empty($conf->global->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( @@ -442,7 +478,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; } @@ -459,32 +495,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)) { $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; } } @@ -511,7 +547,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; @@ -524,7 +560,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(); @@ -543,29 +579,29 @@ class pdf_sponge extends ModelePDFFactures $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; } @@ -578,11 +614,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 @@ -600,17 +636,17 @@ class pdf_sponge extends ModelePDFFactures if (empty($conf->global->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++; @@ -623,12 +659,12 @@ class pdf_sponge extends ModelePDFFactures $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; } @@ -638,10 +674,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(); @@ -657,8 +693,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; @@ -667,14 +703,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)) { @@ -701,14 +737,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)) { @@ -742,7 +778,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 @@ -835,13 +871,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; @@ -913,9 +949,9 @@ 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++; @@ -924,13 +960,16 @@ class pdf_sponge extends ModelePDFFactures if (empty($conf->global->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 @@ -947,11 +986,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 @@ -1089,7 +1128,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); @@ -1125,7 +1164,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,37 +1243,47 @@ class pdf_sponge extends ModelePDFFactures if (empty($object->mode_reglement_code) && empty($conf->global->FACTURE_CHQ_NUMBER) && empty($conf->global->FACTURE_RIB_NUMBER)) { - $this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"); + $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' && 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"); - $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->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; + $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'); + && $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'); + $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); - $posy = $pdf->GetY(); + //#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 online payment link @@ -1252,6 +1301,7 @@ class pdf_sponge extends ModelePDFFactures } } + if ($object->statut != Facture::STATUS_DRAFT && $useonlinepayment) { require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; global $langs; @@ -1419,10 +1469,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 (empty($conf->global->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(); } @@ -1482,9 +1537,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 (empty($conf->global->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(); } @@ -1496,7 +1557,7 @@ 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; @@ -1534,14 +1595,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)) { @@ -1552,7 +1613,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'))) { @@ -1584,7 +1645,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'))) { @@ -1669,7 +1730,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'))) { @@ -1700,7 +1761,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'))) { @@ -1786,8 +1847,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)) { @@ -1944,11 +2005,6 @@ class pdf_sponge extends ModelePDFFactures pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->FACTURE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->FACTURE_DRAFT_WATERMARK); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -2050,7 +2106,7 @@ class pdf_sponge extends ModelePDFFactures $posy += 4; $pdf->SetXY($posx, $posy); $pdf->SetTextColor(0, 0, 60); - $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".$outputlangs->convToOutputCharset($object->ref_client), '', 'R'); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_client), 65), '', 'R'); } if (!empty($conf->global->PDF_SHOW_PROJECT_TITLE)) { @@ -2274,7 +2330,7 @@ class pdf_sponge extends ModelePDFFactures { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'INVOICE_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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/mod_facture_mars.php b/htdocs/core/modules/facture/mod_facture_mars.php index ef34b145e52..9e0ff0d5b4e 100644 --- a/htdocs/core/modules/facture/mod_facture_mars.php +++ b/htdocs/core/modules/facture/mod_facture_mars.php @@ -55,7 +55,15 @@ class mod_facture_mars extends ModeleNumRefFactures */ public function __construct() { - global $conf; + global $conf, $mysoc; + + if ((float) $conf->global->MAIN_VERSION_LAST_INSTALL >= 16.0 && $mysoc->country_code != 'FR') { + $this->prefixinvoice = 'IN'; // We use correct standard code "IN = Invoice" + $this->prefixreplacement = 'IR'; + $this->prefixdeposit = 'ID'; + $this->prefixcreditnote = 'IC'; + } + if (!empty($conf->global->INVOICE_NUMBERING_MARS_FORCE_PREFIX)) { $this->prefixinvoice = $conf->global->INVOICE_NUMBERING_MARS_FORCE_PREFIX; } diff --git a/htdocs/core/modules/facture/mod_facture_terre.php b/htdocs/core/modules/facture/mod_facture_terre.php index 9660be93266..2b11ee3976f 100644 --- a/htdocs/core/modules/facture/mod_facture_terre.php +++ b/htdocs/core/modules/facture/mod_facture_terre.php @@ -42,6 +42,12 @@ class mod_facture_terre extends ModeleNumRefFactures */ public $prefixinvoice = 'FA'; + /** + * Prefix for replacement invoices + * @var string + */ + public $prefixreplacement = 'FA'; + /** * Prefix for credit note * @var string @@ -65,7 +71,15 @@ class mod_facture_terre extends ModeleNumRefFactures */ public function __construct() { - global $conf; + global $conf, $mysoc; + + if ((float) $conf->global->MAIN_VERSION_LAST_INSTALL >= 16.0 && $mysoc->country_code != 'FR') { + $this->prefixinvoice = 'IN'; // We use correct standard code "IN = Invoice" + $this->prefixreplacement = 'IR'; + $this->prefixdeposit = 'ID'; + $this->prefixcreditnote = 'IC'; + } + if (!empty($conf->global->INVOICE_NUMBERING_TERRE_FORCE_PREFIX)) { $this->prefixinvoice = $conf->global->INVOICE_NUMBERING_TERRE_FORCE_PREFIX; } diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index 719fb670672..bb4a6826278 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -146,9 +146,9 @@ class pdf_soleil extends ModelePDFFicheinter $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_draft_watermark = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -188,6 +188,11 @@ class pdf_soleil extends ModelePDFFicheinter // Load traductions files required by page $outputlangs->loadLangs(array("main", "interventions", "dict", "companies")); + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->FICHINTER_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->FICHINTER_DRAFT_WATERMARK; + } + if ($conf->ficheinter->dir_output) { $object->fetch_thirdparty(); @@ -413,6 +418,9 @@ class pdf_soleil extends ModelePDFFicheinter 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) { if ($pagenb == 1) { @@ -561,11 +569,6 @@ class pdf_soleil extends ModelePDFFicheinter pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - //Affiche le filigrane brouillon - Print Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->FICHINTER_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->FICHINTER_DRAFT_WATERMARK); - } - //Prepare next $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -613,6 +616,14 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->SetTextColor(0, 0, 60); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Date")." : ".dol_print_date($object->datec, "day", false, $outputlangs, true), '', 'R'); + if (!empty($object->ref_client)) { + $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'); + } + + if (empty($conf->global->MAIN_PDF_HIDE_CUSTOMER_CODE) && $object->thirdparty->code_client) { $posy += 4; $pdf->SetXY($posx, $posy); @@ -732,6 +743,6 @@ class pdf_soleil extends ModelePDFFicheinter { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'FICHINTER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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..8efd936601b 100644 --- a/htdocs/core/modules/fichinter/mod_arctic.php +++ b/htdocs/core/modules/fichinter/mod_arctic.php @@ -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/holiday/mod_holiday_immaculate.php b/htdocs/core/modules/holiday/mod_holiday_immaculate.php index a1647a67953..ce780a0ba58 100644 --- a/htdocs/core/modules/holiday/mod_holiday_immaculate.php +++ b/htdocs/core/modules/holiday/mod_holiday_immaculate.php @@ -85,7 +85,7 @@ class mod_holiday_immaculate extends ModelNumRefHolidays $tooltip .= $langs->trans("GenericMaskCodes5"); $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= '
    '; print $langs->trans('Source'); print '
    '; @@ -2340,7 +2618,7 @@ if ($action == 'create') { print '
    '; print ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -2409,48 +2687,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 @@ -2484,10 +2762,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 ' @@ -2511,8 +2794,6 @@ if ($action == 'create') { // 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'); @@ -2550,13 +2831,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") . ''; }*/ @@ -2566,7 +2847,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').''; } @@ -2583,7 +2864,7 @@ if ($action == 'create') { } // 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").''; } @@ -2591,7 +2872,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").''; } @@ -2599,7 +2880,7 @@ if ($action == 'create') { } // Create an intervention - if (!empty($conf->service->enabled) && !empty($conf->ficheinter->enabled) && $object->statut == Propal::STATUS_SIGNED) { + if (isModEnabled("service") && !empty($conf->ficheinter->enabled) && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateintervention) { $langs->load("interventions"); print ''.$langs->trans("AddIntervention").''; @@ -2607,7 +2888,7 @@ if ($action == 'create') { } // Create contract - if ($conf->contrat->enabled && $object->statut == Propal::STATUS_SIGNED) { + if (isModEnabled('contrat') && $object->statut == Propal::STATUS_SIGNED) { $langs->load("contracts"); if ($usercancreatecontract) { @@ -2617,7 +2898,7 @@ if ($action == 'create') { // Create an invoice and classify billed if ($object->statut == Propal::STATUS_SIGNED && empty($conf->global->PROPOSAL_ARE_NOT_BILLABLE)) { - if (!empty($conf->facture->enabled) && $usercancreateinvoice) { + if (isModEnabled('facture') && $usercancreateinvoice) { print ''.$langs->trans("CreateBill").''; } @@ -2631,14 +2912,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') . ''; } } @@ -2691,7 +2980,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 59a03f78bb2..cf675e01b62 100644 --- a/htdocs/comm/propal/class/api_proposals.class.php +++ b/htdocs/comm/propal/class/api_proposals.class.php @@ -135,8 +135,13 @@ class Proposals extends DolibarrApi } // Add external contacts ids. - $this->propal->contacts_ids = $this->propal->liste_contact(-1, 'external', $contact_list); + $tmparray = $this->propal->liste_contact(-1, 'external', $contact_list); + if (is_array($tmparray)) { + $this->propal->contacts_ids = $tmparray; + } + $this->propal->fetchObjectLinked(); + return $this->_cleanObjectDatas($this->propal); } @@ -228,7 +233,10 @@ class Proposals extends DolibarrApi $proposal_static = new Propal($this->db); if ($proposal_static->fetch($obj->rowid)) { // Add external contacts ids - $proposal_static->contacts_ids = $proposal_static->liste_contact(-1, 'external', 1); + $tmparray = $proposal_static->liste_contact(-1, 'external', 1); + if (is_array($tmparray)) { + $proposal_static->contacts_ids = $tmparray; + } $obj_ret[] = $this->_cleanObjectDatas($proposal_static); } $i++; @@ -343,8 +351,8 @@ class Proposals extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->propal->addline( $request_data->desc, @@ -488,8 +496,12 @@ class Proposals extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($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); @@ -519,7 +531,9 @@ class Proposals extends DolibarrApi isset($request_data->date_end) ? $request_data->date_end : $propalline->date_end, isset($request_data->array_options) ? $request_data->array_options : $propalline->array_options, isset($request_data->fk_unit) ? $request_data->fk_unit : $propalline->fk_unit, - isset($request_data->multicurrency_subprice) ? $request_data->multicurrency_subprice : $propalline->subprice + isset($request_data->multicurrency_subprice) ? $request_data->multicurrency_subprice : $propalline->subprice, + 0, + isset($request_data->rang) ? $request_data->rang : $propalline->rang ); if ($updateRes > 0) { @@ -643,7 +657,7 @@ class Proposals extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - $contacts = $this->invoice->liste_contact(); + $contacts = $this->propal->liste_contact(); foreach ($contacts as $contact) { if ($contact['id'] == $contactid && $contact['code'] == $type) { diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index cfe2a15f2db..0eaa9078cd7 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 @@ -206,6 +206,7 @@ class Propal extends CommonObject public $total; public $cond_reglement_code; + public $deposit_percent; public $mode_reglement_code; public $remise_percent; @@ -295,8 +296,8 @@ class Propal extends CommonObject 'ref' =>array('type'=>'varchar(30)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'showoncombobox'=>1, 'position'=>20), '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'=>1, 'visible'=>-1, 'position'=>23), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Fk projet', 'enabled'=>1, 'visible'=>-1, 'position'=>24), + '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'=>"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), @@ -316,16 +317,17 @@ class Propal extends CommonObject 'localtax1' =>array('type'=>'double(24,8)', 'label'=>'LocalTax1', 'enabled'=>1, 'visible'=>-1, 'position'=>135, 'isameasure'=>1), 'localtax2' =>array('type'=>'double(24,8)', 'label'=>'LocalTax2', '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), - 'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>1, 'visible'=>-1, 'position'=>150), + 'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>150), 'fk_currency' =>array('type'=>'varchar(3)', 'label'=>'Currency', 'enabled'=>1, 'visible'=>-1, 'position'=>155), '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), - 'fk_warehouse' =>array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Fk warehouse', 'enabled'=>1, 'visible'=>-1, 'position'=>191), + 'fk_warehouse' =>array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Fk warehouse', 'enabled'=>'$conf->stock->enabled', 'visible'=>-1, 'position'=>191), 'fk_availability' =>array('type'=>'integer', 'label'=>'Availability', 'enabled'=>1, 'visible'=>-1, 'position'=>195), 'fk_delivery_address' =>array('type'=>'integer', 'label'=>'DeliveryAddress', 'enabled'=>1, 'visible'=>0, 'position'=>200), // deprecated 'fk_input_reason' =>array('type'=>'integer', 'label'=>'InputReason', 'enabled'=>1, 'visible'=>-1, 'position'=>205), @@ -333,11 +335,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), @@ -382,7 +384,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); } @@ -488,7 +490,6 @@ class Propal extends CommonObject $line->subprice = -$remise->amount_ht; $line->fk_product = 0; // Id produit predefined $line->qty = 1; - $line->remise = 0; $line->remise_percent = 0; $line->rang = -1; $line->info_bits = 2; @@ -734,7 +735,6 @@ class Propal extends CommonObject // TODO deprecated $this->line->price = $price; - $this->line->remise = $remise; if (is_array($array_options) && count($array_options) > 0) { $this->line->array_options = $array_options; @@ -804,9 +804,10 @@ class Propal extends CommonObject * @param string $fk_unit Code of the unit to use. Null to use the default one * @param double $pu_ht_devise Unit price in currency * @param int $notrigger disable line update trigger + * @param integer $rang line rank * @return int 0 if OK, <0 if KO */ - public function updateline($rowid, $pu, $qty, $remise_percent, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $desc = '', $price_base_type = 'HT', $info_bits = 0, $special_code = 0, $fk_parent_line = 0, $skip_update_total = 0, $fk_fournprice = 0, $pa_ht = 0, $label = '', $type = 0, $date_start = '', $date_end = '', $array_options = 0, $fk_unit = null, $pu_ht_devise = 0, $notrigger = 0) + public function updateline($rowid, $pu, $qty, $remise_percent, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $desc = '', $price_base_type = 'HT', $info_bits = 0, $special_code = 0, $fk_parent_line = 0, $skip_update_total = 0, $fk_fournprice = 0, $pa_ht = 0, $label = '', $type = 0, $date_start = '', $date_end = '', $array_options = 0, $fk_unit = null, $pu_ht_devise = 0, $notrigger = 0, $rang = 0) { global $mysoc, $langs; @@ -892,6 +893,7 @@ class Propal extends CommonObject $line->oldline = $staticline; $this->line = $line; $this->line->context = $this->context; + $this->line->rang = $rang; // Reorder if fk_parent_line change if (!empty($fk_parent_line) && !empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line) { @@ -930,10 +932,6 @@ class Propal extends CommonObject $this->line->date_start = $date_start; $this->line->date_end = $date_end; - // TODO deprecated - $this->line->price = $price; - $this->line->remise = $remise; - 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) { @@ -1100,6 +1098,7 @@ class Propal extends CommonObject $sql .= ", model_pdf"; $sql .= ", fin_validite"; $sql .= ", fk_cond_reglement"; + $sql .= ", deposit_percent"; $sql .= ", fk_mode_reglement"; $sql .= ", fk_account"; $sql .= ", ref_client"; @@ -1133,6 +1132,7 @@ 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 .= ", ".($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)."'"; @@ -1360,10 +1360,11 @@ class Propal extends CommonObject if ($objsoc->fetch($socid) > 0) { $object->socid = $objsoc->id; $object->cond_reglement_id = (!empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + $object->deposit_percent = (!empty($objsoc->deposit_percent) ? $objsoc->deposit_percent : null); $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)) { @@ -1440,7 +1441,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); @@ -1503,16 +1504,18 @@ 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"; $sql .= ", p.datec"; + $sql .= ", p.date_signature as dates"; $sql .= ", p.date_valid as datev"; $sql .= ", p.datep as dp"; $sql .= ", p.fin_validite as dfv"; @@ -1536,7 +1539,7 @@ class Propal extends CommonObject $sql .= ", c.label as statut_label"; $sql .= ", ca.code as availability_code, ca.label as availability"; $sql .= ", dr.code as demand_reason_code, dr.label as demand_reason"; - $sql .= ", cr.code as cond_reglement_code, cr.libelle as cond_reglement, cr.libelle_facture as cond_reglement_libelle_doc"; + $sql .= ", cr.code as cond_reglement_code, cr.libelle as cond_reglement, cr.libelle_facture as cond_reglement_libelle_doc, p.deposit_percent"; $sql .= ", cp.code as mode_reglement_code, cp.libelle as mode_reglement"; $sql .= " FROM ".MAIN_DB_PREFIX."propal as p"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_propalst as c ON p.fk_statut = c.id'; @@ -1546,10 +1549,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); } @@ -1596,6 +1604,7 @@ class Propal extends CommonObject $this->date_creation = $this->db->jdate($obj->datec); //Creation date $this->date_validation = $this->db->jdate($obj->datev); //Validation date $this->date_modification = $this->db->jdate($obj->date_modification); // tms + $this->date_signature = $this->db->jdate($obj->dates); // Signature date $this->date = $this->db->jdate($obj->dp); // Proposal date $this->datep = $this->db->jdate($obj->dp); // deprecated $this->fin_validite = $this->db->jdate($obj->dfv); @@ -1619,6 +1628,7 @@ class Propal extends CommonObject $this->cond_reglement_code = $obj->cond_reglement_code; $this->cond_reglement = $obj->cond_reglement; $this->cond_reglement_doc = $obj->cond_reglement_libelle_doc; + $this->deposit_percent = $obj->deposit_percent; $this->extraparams = (array) json_decode($obj->extraparams, true); @@ -1728,6 +1738,7 @@ 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 .= " 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").","; @@ -1891,14 +1902,15 @@ class Propal extends CommonObject // multilangs if (!empty($conf->global->MAIN_MULTILANGS) && !empty($objp->fk_product) && !empty($loadalsotranslation)) { - $line = new Product($this->db); - $line->fetch($objp->fk_product); - $line->getMultiLangs(); + $tmpproduct = new Product($this->db); + $tmpproduct->fetch($objp->fk_product); + $tmpproduct->getMultiLangs(); + + $line->multilangs = $tmpproduct->multilangs; } $this->lines[$i] = $line; - //dol_syslog("1 ".$line->fk_product); - //print "xx $i ".$this->lines[$i]->fk_product; + $i++; } @@ -2605,8 +2617,22 @@ 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); @@ -2653,7 +2679,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; } @@ -3249,7 +3275,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); @@ -3265,7 +3291,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); @@ -3664,6 +3690,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'); } @@ -3786,7 +3815,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) @@ -3984,6 +4013,7 @@ class PropaleLigne extends CommonObjectLine public $multicurrency_total_tva; public $multicurrency_total_ttc; + /** * Class line Contructor * @@ -4123,9 +4153,6 @@ class PropaleLigne extends CommonObjectLine if (empty($this->rang)) { $this->rang = 0; } - if (empty($this->remise)) { - $this->remise = 0; - } if (empty($this->remise_percent) || !is_numeric($this->remise_percent)) { $this->remise_percent = 0; } @@ -4355,9 +4382,6 @@ class PropaleLigne extends CommonObjectLine if (empty($this->price)) { $this->price = 0; // TODO A virer } - if (empty($this->remise)) { - $this->remise = 0; // TODO A virer - } if (empty($this->remise_percent)) { $this->remise_percent = 0; } diff --git a/htdocs/comm/propal/class/propalestats.class.php b/htdocs/comm/propal/class/propalestats.class.php index 2b8c5d9047d..1e688457623 100644 --- a/htdocs/comm/propal/class/propalestats.class.php +++ b/htdocs/comm/propal/class/propalestats.class.php @@ -172,7 +172,7 @@ 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; diff --git a/htdocs/comm/propal/contact.php b/htdocs/comm/propal/contact.php index 989dcfe7098..97fceb99f9e 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'; @@ -112,8 +113,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); @@ -137,7 +139,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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) { diff --git a/htdocs/comm/propal/document.php b/htdocs/comm/propal/document.php index 804fedd623b..f58ed518517 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'; } @@ -104,7 +105,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); @@ -136,7 +137,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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) { diff --git a/htdocs/comm/propal/index.php b/htdocs/comm/propal/index.php index 9f020bc1613..a3b46dfec24 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,7 +77,7 @@ 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 .= " FROM ".MAIN_DB_PREFIX."propal as p"; @@ -226,7 +227,7 @@ if ($resql) { /* * Open (validated) proposals */ -if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { +if (isModEnabled("propal") && $user->rights->propale->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 (!empty($conf->propal->enabled)) { $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 (!empty($conf->propal->enabled)) { $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..933791bbec2 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'; } @@ -59,7 +60,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); @@ -83,7 +84,7 @@ $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_cl // 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->propal->creer) { diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 561682ba02f..9ba246171f3 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 @@ -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'; @@ -52,7 +53,7 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.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')); } @@ -204,8 +205,8 @@ $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)), + 'pr.ref'=>array('label'=>"ProjectRef", 'checked'=>1, 'enabled'=>(!isModEnabled('project') ? 0 : 1)), + 'pr.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(!isModEnabled('project') ? 0 : 1)), 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1), 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>-1), 's.town'=>array('label'=>"Town", 'checked'=>-1), @@ -218,7 +219,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,16 +228,16 @@ $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' => ($conf->global->MARGIN_TYPE == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 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)), @@ -340,7 +341,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_availability = ''; $search_status = ''; $object_statut = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); $search_categ_cus = 0; $search_fk_cond_reglement = ''; @@ -377,14 +378,14 @@ if ($action == 'validate' && $permissiontovalidate) { if ($tmpproposal->fetch($checked) > 0) { if ($tmpproposal->statut == $tmpproposal::STATUS_DRAFT) { if ($tmpproposal->valid($user) > 0) { - setEventMessage($langs->trans('hasBeenValidated', $tmpproposal->ref), 'mesgs'); + setEventMessages($langs->trans('hasBeenValidated', $tmpproposal->ref), null, 'mesgs'); } else { - setEventMessage($tmpproposal->error, $tmpproposal->errors, 'errors'); + setEventMessages($tmpproposal->error, $tmpproposal->errors, 'errors'); $error++; } } else { $langs->load("errors"); - setEventMessage($langs->trans('ErrorIsNotADraft', $tmpproposal->ref), 'errors'); + setEventMessages($langs->trans('ErrorIsNotADraft', $tmpproposal->ref), null, 'errors'); $error++; } } else { @@ -410,7 +411,7 @@ if ($action == "sign" && $permissiontoclose) { if ($tmpproposal->statut == $tmpproposal::STATUS_VALIDATED) { $tmpproposal->statut = $tmpproposal::STATUS_SIGNED; if ($tmpproposal->closeProposal($user, $tmpproposal::STATUS_SIGNED) >= 0) { - setEventMessage($tmpproposal->ref." ".$langs->trans('Signed'), 'mesgs'); + setEventMessages($tmpproposal->ref." ".$langs->trans('Signed'), null, 'mesgs'); } else { setEventMessages($tmpproposal->error, $tmpproposal->errors, 'errors'); $error++; @@ -520,8 +521,9 @@ $companystatic = new Societe($db); $projectstatic = new Project($db); $formcompany = new FormCompany($db); +$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) { @@ -537,7 +539,7 @@ $sql .= ' p.fk_multicurrency, p.multicurrency_code, p.multicurrency_tx, p.multic $sql .= ' p.datec as date_creation, p.tms as date_update, p.date_cloture as date_cloture,'; $sql .= ' p.date_signature as dsignature,'; $sql .= ' p.note_public, p.note_private,'; -$sql .= ' p.fk_cond_reglement,p.fk_mode_reglement,p.fk_shipping_method,p.fk_input_reason,'; +$sql .= ' p.fk_cond_reglement,p.deposit_percent,p.fk_mode_reglement,p.fk_shipping_method,p.fk_input_reason,'; $sql .= " pr.rowid as project_id, pr.ref as project_ref, pr.title as project_label,"; $sql .= ' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity as user_entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender'; if (empty($user->rights->societe->client->voir) && !$socid) { @@ -765,12 +767,12 @@ if ($resql) { if ($socid > 0) { $soc = new Societe($db); $soc->fetch($socid); - $title = $langs->trans('ListOfProposals').' - '.$soc->name; + $title = $langs->trans('Proposals').' - '.$soc->name; if (empty($search_societe)) { $search_societe = $soc->name; } } else { - $title = $langs->trans('ListOfProposals'); + $title = $langs->trans('Proposals'); } $num = $db->num_rows($resql); @@ -786,8 +788,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); @@ -1043,7 +1043,7 @@ if ($resql) { $moreforfilter = ''; // If the user can view prospects other than his' - if ($user->rights->societe->client->voir || $socid) { + if ($user->rights->user->user->lire) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -1051,14 +1051,14 @@ if ($resql) { $moreforfilter .= '
    '; } // If the user can view prospects other than his' - if ($user->rights->societe->client->voir || $socid) { + if ($user->rights->user->user->lire) { $moreforfilter .= '
    '; - $tmptitle = $langs->trans('LinkedToSpecificUsers'); + $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 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'); @@ -1066,7 +1066,7 @@ 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, (empty($conf->dol_optimize_smallscreen) ? 'maxwidth300 widthcentpercentminusx' : 'maxwidth250 widthcentpercentminusx'), 1); $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'); @@ -1096,13 +1096,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 '
    '.$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).'
    '."\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'])) { @@ -1365,16 +1374,20 @@ if ($resql) { 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"], "", '', '', '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); } @@ -1527,7 +1540,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(); @@ -1608,6 +1623,19 @@ if ($resql) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!empty($arrayfields['p.ref']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -2097,7 +2125,7 @@ if ($resql) { // Note public if (!empty($arrayfields['p.note_public']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -2106,7 +2134,7 @@ if ($resql) { // Note private if (!empty($arrayfields['p.note_private']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -2120,20 +2148,22 @@ if ($resql) { } } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } - print "\n"; + print ''."\n"; $i++; } @@ -2141,6 +2171,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/comm/propal/note.php b/htdocs/comm/propal/note.php index 13fa42edb29..d2e453eac9e 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'; } @@ -81,8 +82,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) { @@ -107,7 +109,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').' '; if ($user->rights->propal->creer) { diff --git a/htdocs/comm/propal/stats/index.php b/htdocs/comm/propal/stats/index.php index 0a182e6dcbe..af5247fb10f 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'; @@ -335,11 +336,11 @@ foreach ($data as $val) { print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; $oldyear = $year; } diff --git a/htdocs/comm/prospect/index.php b/htdocs/comm/prospect/index.php index 0bcf2662a44..83c30743c77 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->propale->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"; @@ -169,14 +170,14 @@ print '
    '; /* * Actions commerciales a faire */ -if (!empty($conf->agenda->enabled)) { +if (isModEnabled('agenda')) { show_array_actions_to_do(10); } /* * Dernieres propales ouvertes */ -if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { +if (isModEnabled("propal") && $user->rights->propale->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 ee32c0dd016..60295558621 100644 --- a/htdocs/comm/recap-client.php +++ b/htdocs/comm/recap-client.php @@ -22,13 +22,14 @@ * \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'; // Load translation files required by the page $langs->load("companies"); -if (!empty($conf->facture->enabled)) { +if (isModEnabled('facture')) { $langs->load("bills"); } 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 c0e96aa4b15..b28af96527e 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'; @@ -284,11 +285,11 @@ if ($socid > 0) { } print '
    '; - print ''; + print ''; if (!empty($user->fk_soc)) { // No need to show this for external users print ''; - print ''; + print ''; } } @@ -314,11 +315,11 @@ if ($socid > 0) { } print ''; - print ''; + print ''; if (!empty($user->fk_soc)) { // No need to show this for external users print ''; - print ''; + print ''; } } @@ -353,7 +354,7 @@ if ($socid > 0) { 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 ''; @@ -445,7 +446,7 @@ if ($socid > 0) { $obj = $db->fetch_object($resql); print ''; - print ''; + print ''; if (preg_match('/\(CREDIT_NOTE\)/', $obj->description)) { print ''; } - print ''; - print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + print ''; + print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; - print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; @@ -562,13 +563,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 ''; @@ -583,7 +584,7 @@ if ($socid > 0) { $obj = $db->fetch_object($resql); print ''; - print ''; + print ''; if (preg_match('/\(CREDIT_NOTE\)/', $obj->description)) { print ''; } - print ''; - print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + print ''; + print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; - print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; + print ''; + if (isModEnabled('multicompany')) { + print ''; } print ''; @@ -735,13 +736,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 ''; @@ -766,7 +767,8 @@ if ($socid > 0) { $tab_sqlobjOrder[] = $db->jdate($sqlobj->dc); } $db->free($resql2); - array_multisort($tab_sqlobjOrder, SORT_DESC, $tab_sqlobj); + $array1_sort_order = SORT_DESC; + array_multisort($tab_sqlobjOrder, $array1_sort_order, $tab_sqlobj); $num = count($tab_sqlobj); if ($num > 0) { @@ -807,12 +809,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 ''; @@ -895,13 +897,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 ''; @@ -926,7 +928,8 @@ if ($socid > 0) { $tab_sqlobjOrder[] = $db->jdate($sqlobj->dc); } $db->free($resql2); - array_multisort($tab_sqlobjOrder, SORT_DESC, $tab_sqlobj); + $array1_sort_order = SORT_DESC; + array_multisort($tab_sqlobjOrder, $array1_sort_order, $tab_sqlobj); $num = count($tab_sqlobj); if ($num > 0) { @@ -967,12 +970,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 53b6d40d6b0..47da6a86e13 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 customer 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'; - require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -} -require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.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'; +} if (!empty($conf->variants->enabled)) { 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)) { $langs->load('incoterm'); } if (!empty($conf->margin->enabled)) { $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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -272,6 +283,7 @@ if (empty($reshook)) { $object->ref_client = GETPOST('ref_client', 'alpha'); $object->model_pdf = GETPOST('model'); $object->cond_reglement_id = GETPOST('cond_reglement_id'); + $object->deposit_percent = GETPOST('cond_reglement_id_deposit_percent', 'alpha'); $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); $object->availability_id = GETPOST('availability_id'); @@ -434,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; @@ -571,7 +583,7 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); } } elseif ($action == 'setconditions' && $usercancreate) { - $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); + $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'), GETPOST('cond_reglement_id_deposit_percent', 'alpha')); if ($result < 0) { dol_print_error($db, $object->error); } else { @@ -579,7 +591,7 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = GETPOST('lang_id', 'alpha'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -628,6 +640,13 @@ if (empty($reshook)) { 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->date_start, $line->date_end, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->fk_unit, $line->multicurrency_subprice); } + } elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('remiseforalllines', 'alpha') !== '' && $usercancreate) { + // Define remise_percent + $remise_percent = (GETPOST('remiseforalllines') ? GETPOST('remiseforalllines') : 0); + $remise_percent = str_replace('*', '', $remise_percent); + foreach ($object->lines as $line) { + $result = $object->updateline($line->id, $line->desc, $line->subprice, $line->qty, $remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->date_start, $line->date_end, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->fk_unit, $line->multicurrency_subprice); + } } elseif ($action == 'addline' && $usercancreate) { // Add a new line $langs->load('errors'); $error = 0; @@ -635,19 +654,35 @@ 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'); - + $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; @@ -672,7 +707,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++; } @@ -729,6 +764,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 @@ -736,6 +772,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])) { @@ -759,6 +796,7 @@ if (empty($reshook)) { $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)) { @@ -818,13 +856,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 { @@ -911,14 +951,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 @@ -929,17 +977,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_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) { // 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); @@ -1007,11 +1064,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')); - $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'); // Define info_bits $info_bits = 0; @@ -1058,13 +1120,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_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++; + $action = 'editline'; + } 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++; + $action = 'editline'; + } } } else { $type = GETPOST('type'); @@ -1094,17 +1168,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1169,28 +1251,76 @@ if (empty($reshook)) { } if (!$error) { + $locationTarget = ''; + $db->begin(); $result = $object->valid($user, $idwarehouse); if ($result >= 0) { - // 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 + $error = 0; + $deposit = null; - $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + $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) + ) { + require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; + + $date = dol_mktime(0, 0, 0, GETPOST('datefmonth', 'int'), GETPOST('datefday', 'int'), GETPOST('datefyear', 'int')); + $forceFields = array(); + + if (GETPOSTISSET('date_pointoftax')) { + $forceFields['date_pointoftax'] = dol_mktime(0, 0, 0, GETPOST('date_pointoftaxmonth', 'int'), GETPOST('date_pointoftaxday', 'int'), GETPOST('date_pointoftaxyear', 'int')); + } + + $deposit = Facture::createDepositFromOrigin($object, $date, GETPOST('cond_reglement_id', 'int'), $user, 0, GETPOST('validate_generated_deposit', 'alpha') == 'on', $forceFields); + + if ($deposit) { + setEventMessage('DepositGenerated'); + $locationTarget = DOL_URL_ROOT . '/compta/facture/card.php?id=' . $deposit->id; + } else { + $error++; + setEventMessages($object->error, $object->errors, 'errors'); + } + } + + // Define output language + if (! $error) { + $db->commit(); + + if (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 + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + + if ($deposit) { + $deposit->fetch($deposit->id); // Reload to get new records + $deposit->generateDocument($deposit->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + + if ($locationTarget) { + header('Location: ' . $locationTarget); + exit; + } + } else { + $db->rollback(); } } else { + $db->rollback(); setEventMessages($object->error, $object->errors, 'errors'); } } @@ -1221,10 +1351,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1428,15 +1558,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); } @@ -1453,6 +1587,10 @@ if ($action == 'create' && $usercancreate) { $currency_code = $conf->currency; + $cond_reglement_id = GETPOST('cond_reglement_id', 'int'); + $deposit_percent = GETPOST('cond_reglement_id_deposit_percent', 'alpha'); + $mode_reglement_id = GETPOST('mode_reglement_id', 'int'); + if (!empty($origin) && !empty($originid)) { // Parse element/subelement (ex: project_task) $element = $subelement = $origin; @@ -1468,6 +1606,9 @@ if ($action == 'create' && $usercancreate) { if (!$cond_reglement_id) { $cond_reglement_id = $soc->cond_reglement_id; } + if (!$deposit_percent) { + $deposit_percent = $soc->deposit_percent; + } if (!$mode_reglement_id) { $mode_reglement_id = $soc->mode_reglement_id; } @@ -1508,6 +1649,7 @@ if ($action == 'create' && $usercancreate) { $soc = $objectsrc->thirdparty; $cond_reglement_id = (!empty($objectsrc->cond_reglement_id) ? $objectsrc->cond_reglement_id : (!empty($soc->cond_reglement_id) ? $soc->cond_reglement_id : 0)); // TODO maybe add default value option + $deposit_percent = (!empty($objectsrc->deposit_percent) ? $objectsrc->deposit_percent : (!empty($soc->deposit_percent) ? $soc->deposit_percent : null)); $mode_reglement_id = (!empty($objectsrc->mode_reglement_id) ? $objectsrc->mode_reglement_id : (!empty($soc->mode_reglement_id) ? $soc->mode_reglement_id : 0)); $fk_account = (!empty($objectsrc->fk_account) ? $objectsrc->fk_account : (!empty($soc->fk_account) ? $soc->fk_account : 0)); $availability_id = (!empty($objectsrc->availability_id) ? $objectsrc->availability_id : 0); @@ -1523,7 +1665,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; } @@ -1540,17 +1682,18 @@ if ($action == 'create' && $usercancreate) { } } else { $cond_reglement_id = $soc->cond_reglement_id; + $deposit_percent = $soc->deposit_percent; $mode_reglement_id = $soc->mode_reglement_id; $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; } @@ -1632,8 +1775,8 @@ if ($action == 'create' && $usercancreate) { if ($socid > 0) { // Contacts (ask contact only if thirdparty already defined). print "'; // Ligne info remises tiers @@ -1657,7 +1800,7 @@ if ($action == 'create' && $usercancreate) { // Date delivery planned print ''; print '\n"; print ''; @@ -1668,30 +1811,29 @@ if ($action == 'create' && $usercancreate) { $form->selectAvailabilityDelay($availability_id, 'availability_id', '', 1, 'maxwidth200 widthcentpercentminusx'); print ''; - // Terms of the settlement + // Terms of payment print ''; // Payment mode print ''; // 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 ''; } // Shipping Method - if (!empty($conf->expedition->enabled)) { + if (isModEnabled('expedition')) { print ''; } @@ -1713,7 +1855,7 @@ if ($action == 'create' && $usercancreate) { // TODO How record was recorded OrderMode (llx_c_input_method) // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); print ''; print ''; print '"; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print ''; print ''; } @@ -1846,7 +1993,7 @@ if ($action == 'create' && $usercancreate) { print '"; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print '"; print '"; @@ -1959,6 +2106,114 @@ if ($action == 'create' && $usercancreate) { } if ($nbMandated > 0 ) $text .= '
    '.$langs->trans("mandatoryPeriodNeedTobeSetMsgValidate").'
    '; + if (getDolGlobalInt('SALE_ORDER_SUGGEST_DOWN_PAYMENT_INVOICE_CREATION')) { + // This is a hidden option: + // Suggestion to create invoice during order validation is not enabled by default. + // Such choice should be managed by the workflow module and trigger. This option generates conflicts with some setup. + // It may also break step of creating an order when invoicing must be done from proposals and not from orders + $deposit_percent_from_payment_terms = getDictionaryValue('c_payment_term', 'deposit_percent', $object->cond_reglement_id); + + if (!empty($deposit_percent_from_payment_terms) && !empty($conf->facture->enabled) && !empty($user->rights->facture->creer)) { + require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; + + $object->fetchObjectLinked(); + + $eligibleForDepositGeneration = true; + + if (array_key_exists('facture', $object->linkedObjects)) { + foreach ($object->linkedObjects['facture'] as $invoice) { + if ($invoice->type == Facture::TYPE_DEPOSIT) { + $eligibleForDepositGeneration = false; + break; + } + } + } + + if ($eligibleForDepositGeneration && array_key_exists('propal', $object->linkedObjects)) { + foreach ($object->linkedObjects['propal'] as $proposal) { + $proposal->fetchObjectLinked(); + + if (array_key_exists('facture', $proposal->linkedObjects)) { + foreach ($proposal->linkedObjects['facture'] as $invoice) { + if ($invoice->type == Facture::TYPE_DEPOSIT) { + $eligibleForDepositGeneration = false; + break 2; + } + } + } + } + } + + if ($eligibleForDepositGeneration) { + $formquestion[] = array( + 'type' => 'checkbox', + 'tdclass' => '', + 'name' => 'generate_deposit', + 'label' => $form->textwithpicto($langs->trans('GenerateDeposit', $object->deposit_percent), $langs->trans('DepositGenerationPermittedByThePaymentTermsSelected')) + ); + + $formquestion[] = array( + 'type' => 'date', + 'tdclass' => 'fieldrequired showonlyifgeneratedeposit', + 'name' => 'datef', + 'label' => $langs->trans('DateInvoice'), + 'value' => dol_now(), + 'datenow' => true + ); + + if (!empty($conf->global->INVOICE_POINTOFTAX_DATE)) { + $formquestion[] = array( + 'type' => 'date', + 'tdclass' => 'fieldrequired showonlyifgeneratedeposit', + 'name' => 'date_pointoftax', + 'label' => $langs->trans('DatePointOfTax'), + 'value' => dol_now(), + 'datenow' => true + ); + } + + + $paymentTermsSelect = $form->getSelectConditionsPaiements(0, 'cond_reglement_id', -1, 0, 0, 'minwidth200'); + + $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 (!$error) { $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220); @@ -2076,7 +2331,7 @@ if ($action == 'create' && $usercancreate) { $morehtmlref .= ' ('.$langs->trans("OtherOrders").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($usercancreate) { @@ -2213,7 +2468,7 @@ if ($action == 'create' && $usercancreate) { print ''; // Shipping Method - if (!empty($conf->expedition->enabled)) { + if (isModEnabled('expedition')) { print ''; @@ -2284,7 +2539,7 @@ if ($action == 'create' && $usercancreate) { print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Multicurrency code print ''; print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -1224,13 +1233,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 ''; - $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 ''; @@ -1821,7 +1849,7 @@ if ($resql) { // Payment terms if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { print ''; - $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none'); + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); 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; - 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 '
    '.$langs->trans("NoRecordFound").'
    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").'%
    '.$langs->trans("CustomerAbsoluteDiscountAllUsers").''.$remise_all.' '.$langs->trans("Currency".$conf->currency).' '.$langs->trans("HT").'
    '.price($remise_all, 1, $langs, 1, -1, -1, $conf->currency).' '.$langs->trans("HT").'
    '.$langs->trans("CustomerAbsoluteDiscountMy").''.$remise_user.' '.$langs->trans("Currency".$conf->currency).' '.$langs->trans("HT").'
    '.price($remise_user, 1, $langs, 1, -1, -1, $conf->currency).' '.$langs->trans("HT").'
    '.$langs->trans("SupplierAbsoluteDiscountAllUsers").''.$remise_all.' '.$langs->trans("Currency".$conf->currency).' '.$langs->trans("HT").'
    '.price($remise_all, 1, $langs, 1, -1, -1, $conf->currency).' '.$langs->trans("HT").'
    '.$langs->trans("SupplierAbsoluteDiscountMy").''.$remise_user.' '.$langs->trans("Currency".$conf->currency).' '.$langs->trans("HT").'
    '.price($remise_user, 1, $langs, 1, -1, -1, $conf->currency).' '.$langs->trans("HT").'
    '.$langs->trans("AmountHT").''; + print ''; print ' '.$langs->trans("Currency".$conf->currency).'
    '.$langs->trans("VAT").''; @@ -382,7 +383,7 @@ if ($socid > 0) { print '
    '; - if ($_GET['action'] == 'remove') { + if ($action == 'remove') { print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&remid='.GETPOST('remid'), $langs->trans('RemoveDiscount'), $langs->trans('ConfirmRemoveDiscount'), 'confirm_remove', '', 0, 1); } @@ -424,13 +425,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").' 
    '.dol_print_date($db->jdate($obj->dc), 'dayhour').''.dol_print_date($db->jdate($obj->dc), 'dayhour', 'tzuserrel').''; $facturestatic->id = $obj->fk_facture_source; @@ -472,15 +473,15 @@ if ($socid > 0) { print $obj->description; print ''.$langs->trans("NotConsumed").''.price($obj->amount_ht).''.price($obj->multicurrency_amount_ht).''.$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).''.price($obj->amount_ttc).''.price($obj->multicurrency_amount_ttc).''; print ''.img_object($langs->trans("ShowUser"), 'user').' '.$obj->login.''; @@ -503,7 +504,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").' 
    '.dol_print_date($db->jdate($obj->dc), 'dayhour').''.dol_print_date($db->jdate($obj->dc), 'dayhour', 'tzuserrel').''; $facturefournstatic->id = $obj->fk_invoice_supplier_source; @@ -610,15 +611,15 @@ if ($socid > 0) { print $obj->description; print ''.$langs->trans("NotConsumed").''.price($obj->amount_ht).''.price($obj->multicurrency_amount_ht).''.$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).''.price($obj->amount_ttc).''.price($obj->multicurrency_amount_ttc).''; print ''.img_object($langs->trans("ShowUser"), 'user').' '.$obj->login.''; @@ -641,7 +642,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).''; @@ -824,7 +826,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).''; @@ -984,7 +987,7 @@ if ($socid > 0) { } } else { $colspan = 8; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicompany')) { $colspan += 2; } print '
    '.$langs->trans("None").'
    ".$langs->trans("DefaultContact").''; - print img_picto('', 'contact'); - print $form->selectcontacts($soc->id, $contactid, 'contactid', 1, $srccontactslist, '', 1); + print img_picto('', 'contact', 'class="pictofixedwidth"'); + print $form->selectcontacts($soc->id, $contactid, 'contactid', 1, !empty($srccontactslist)?$srccontactslist:"", '', 1, 'maxwidth200 widthcentpercentminusx'); print '
    '.$langs->trans("DateDeliveryPlanned").''; - $date_delivery = ($date_delivery ? $date_delivery : $object->date_delivery); + $date_delivery = ($date_delivery ? $date_delivery : $object->delivery_date); print $form->selectDate($date_delivery ? $date_delivery : -1, 'liv_', 1, 1, 1); print "
    '.$langs->trans('PaymentConditionsShort').''; - print img_picto('', 'paiment'); - $form->select_conditions_paiements($cond_reglement_id, 'cond_reglement_id', - 1, 1); + print img_picto('', 'payment', 'class="pictofixedwidth"'); + print $form->getSelectConditionsPaiements($cond_reglement_id, 'cond_reglement_id', 1, 1, 0, 'maxwidth200 widthcentpercentminusx', $deposit_percent); print '
    '.$langs->trans('PaymentMode').''; print img_picto('', 'bank', 'class="pictofixedwidth"'); - $form->select_types_paiements($mode_reglement_id, 'mode_reglement_id', 'CRDT', 0, 1, 0, 0, 1, 'maxwidth200 widthcentpercentminusx'); + print $form->select_types_paiements($mode_reglement_id, 'mode_reglement_id', 'CRDT', 0, 1, 0, 0, 1, 'maxwidth200 widthcentpercentminusx', 1); print '
    '.$langs->trans('BankAccount').''; print img_picto('', 'bank_account', 'class="pictofixedwidth"').$form->select_comptes($fk_account, 'fk_account', 0, '', 1, '', 0, 'maxwidth200 widthcentpercentminusx', 1); print '
    '.$langs->trans('SendingMethod').''; - print img_picto('', 'object_dollyrevert', 'class="pictofixedwidth"'); - print $form->selectShippingMethod($shipping_method_id, 'shipping_method_id', '', 1, '', 0, 'maxwidth200 widthcentpercentminusx'); + print img_picto('', 'object_dolly', 'class="pictofixedwidth"').$form->selectShippingMethod($shipping_method_id, 'shipping_method_id', '', 1, '', 0, 'maxwidth200 widthcentpercentminusx'); print '
    '.$langs->trans("Project").''; @@ -1739,7 +1881,12 @@ if ($action == 'create' && $usercancreate) { } // Other attributes - $parameters = array('objectsrc' => $objectsrc, 'socid'=>$socid); + $parameters = array(); + if (!empty($origin) && !empty($originid) && is_object($objectsrc)) { + $parameters['objectsrc'] = $objectsrc; + } + $parameters['socid'] = $socid; + // Note that $action and $object may be modified by hook $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); print $hookmanager->resPrint; @@ -1759,19 +1906,19 @@ if ($action == 'create' && $usercancreate) { // Template to use by default print '
    '.$langs->trans('DefaultModel').''; - print img_picto('', 'pdf', 'class="pictofixedwidth"'); include_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; $liste = ModelePDFCommandes::liste_modeles($db); $preselected = $conf->global->COMMANDE_ADDON_PDF; + print img_picto('', 'pdf', 'class="pictofixedwidth"'); print $form->selectarray('model', $liste, $preselected, 0, 0, 0, '', 0, 0, 0, '', 'maxwidth200 widthcentpercentminusx', 1); print "
    '.$form->editfieldkey("Currency", 'multicurrency_code', '', $object, 0).''; - print $form->selectMultiCurrency($currency_code, 'multicurrency_code'); + print img_picto('', 'currency', 'class="pictofixedwidth"').$form->selectMultiCurrency($currency_code, 'multicurrency_code', 0, '', false, 'maxwidth200 widthcentpercentminusx'); 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)."
    '; $editenable = $usercancreate; print $form->editfieldkey("SendingMethod", 'shippingmethod', '', $object, $editenable); @@ -2263,9 +2518,9 @@ if ($action == 'create' && $usercancreate) { print $form->editfieldkey("PaymentConditionsShort", 'conditions', '', $object, $editenable); print ''; if ($action == 'editconditions') { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'cond_reglement_id', 1); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'cond_reglement_id', 1, '', 1, $object->deposit_percent); } else { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'none', 1); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'none', 1, '', 1, $object->deposit_percent); } print '
    '; @@ -2370,7 +2625,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); @@ -2395,20 +2650,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 ''; } @@ -2418,23 +2673,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 ''; @@ -2467,9 +2722,16 @@ if ($action == 'create' && $usercancreate) { /* * Lines */ + + // Get object lines $result = $object->getLinesArray(); - print ' + // Add products/services form + //$forceall = 1; + global $inputalsopricewithtax; + $inputalsopricewithtax = 1; + + print ' @@ -2547,7 +2809,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 ($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 @@ -2557,7 +2819,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, ''); } @@ -2565,12 +2827,12 @@ if ($action == 'create' && $usercancreate) { } // Create intervention - if ($conf->ficheinter->enabled) { + if (!empty($conf->ficheinter->enabled)) { $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); } @@ -2578,22 +2840,22 @@ if ($action == 'create' && $usercancreate) { } // Create contract - if ($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, ''); } } // Ship $numshipping = 0; - if (!empty($conf->expedition->enabled)) { + if (isModEnabled('expedition')) { $numshipping = $object->nb_expedition(); if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && ($object->getNbOfProductsLines() > 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES))) { - if (($conf->expedition_bon->enabled && $user->rights->expedition->creer) || ($conf->delivery_note->enabled && $user->rights->expedition->delivery->creer)) { - if ($user->rights->expedition->creer) { + if ((isModEnabled('expedition_bon') && $user->rights->expedition->creer) || ($conf->delivery_note->enabled && $user->rights->expedition->delivery->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); @@ -2612,7 +2874,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 (!empty($conf->facture->enabled) && $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)) { @@ -2630,8 +2892,8 @@ 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 diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php index 17528001d1b..2c916abda9a 100644 --- a/htdocs/commande/class/api_orders.class.php +++ b/htdocs/commande/class/api_orders.class.php @@ -133,7 +133,10 @@ class Orders extends DolibarrApi } // Add external contacts ids - $this->commande->contacts_ids = $this->commande->liste_contact(-1, 'external', $contact_list); + $tmparray = $this->commande->liste_contact(-1, 'external', $contact_list); + if (is_array($tmparray)) { + $this->commande->contacts_ids = $tmparray; + } $this->commande->fetchObjectLinked(); // Add online_payment_url, cf #20477 @@ -234,7 +237,10 @@ class Orders extends DolibarrApi $commande_static = new Commande($this->db); if ($commande_static->fetch($obj->rowid)) { // Add external contacts ids - $commande_static->contacts_ids = $commande_static->liste_contact(-1, 'external', 1); + $tmparray = $commande_static->liste_contact(-1, 'external', 1); + if (is_array($tmparray)) { + $commande_static->contacts_ids = $tmparray; + } // Add online_payment_url, cf #20477 require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; $commande_static->online_payment_url = getOnlinePaymentUrl(0, 'order', $commande_static->ref); @@ -344,8 +350,8 @@ class Orders extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->commande->addline( $request_data->desc, @@ -412,8 +418,8 @@ class Orders extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->commande->updateline( $lineid, @@ -439,7 +445,8 @@ class Orders extends DolibarrApi $request_data->fk_unit, $request_data->multicurrency_subprice, 0, - $request_data->ref_ext + $request_data->ref_ext, + $request_data->rang ); if ($updateRes > 0) { diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 58395162f87..301bbe761be 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,12 +93,12 @@ 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; @@ -134,6 +134,11 @@ class Commande extends CommonOrder */ public $cond_reglement_code; + /** + * @var double Deposit % for payment terms + */ + public $deposit_percent; + /** * @var int bank account ID */ @@ -308,8 +313,8 @@ class Commande extends CommonOrder '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'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>20), - 'fk_projet' =>array('type'=>'integer:Project:projet/class/project.class.php:1:fk_statut=1', 'label'=>'Project', 'enabled'=>1, 'visible'=>-1, 'position'=>25), + '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'=>"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), @@ -325,35 +330,36 @@ 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'=>1, 'visible'=>-1, 'position'=>170), + 'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>170), 'fk_currency' =>array('type'=>'varchar(3)', 'label'=>'MulticurrencyID', 'enabled'=>1, 'visible'=>-1, 'position'=>175), 'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'PaymentTerm', 'enabled'=>1, 'visible'=>-1, 'position'=>180), + 'deposit_percent' =>array('type'=>'varchar(63)', 'label'=>'DepositPercent', 'enabled'=>1, 'visible'=>-1, 'position'=>181), 'fk_mode_reglement' =>array('type'=>'integer', 'label'=>'PaymentMode', 'enabled'=>1, 'visible'=>-1, 'position'=>185), 'date_livraison' =>array('type'=>'date', 'label'=>'DateDeliveryPlanned', 'enabled'=>1, 'visible'=>-1, 'position'=>190), 'fk_shipping_method' =>array('type'=>'integer', 'label'=>'ShippingMethod', 'enabled'=>1, 'visible'=>-1, 'position'=>195), - 'fk_warehouse' =>array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Fk warehouse', 'enabled'=>1, 'visible'=>-1, 'position'=>200), + 'fk_warehouse' =>array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Fk warehouse', 'enabled'=>'$conf->stock->enabled', 'visible'=>-1, 'position'=>200), 'fk_availability' =>array('type'=>'integer', 'label'=>'Availability', 'enabled'=>1, 'visible'=>-1, 'position'=>205), 'fk_input_reason' =>array('type'=>'integer', 'label'=>'InputReason', 'enabled'=>1, 'visible'=>-1, 'position'=>210), //'fk_delivery_address' =>array('type'=>'integer', 'label'=>'DeliveryAddress', 'enabled'=>1, 'visible'=>-1, 'position'=>215), '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), 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-1, 'position'=>300), 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>302), - 'date_creation' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>304), + 'date_creation' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>304), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>306), 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>400), 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Status', 'enabled'=>1, 'visible'=>-1, 'position'=>500), @@ -501,7 +507,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); @@ -940,7 +946,7 @@ class Commande extends CommonOrder $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 .= ", model_pdf, fk_cond_reglement, fk_mode_reglement, fk_account, fk_availability, fk_input_reason, date_livraison, fk_delivery_address"; + $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"; $sql .= ", remise_absolue, remise_percent"; @@ -961,6 +967,7 @@ class Commande extends CommonOrder $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 .= ", ".($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"); @@ -1212,6 +1219,7 @@ class Commande extends CommonOrder if ($objsoc->fetch($socid) > 0) { $this->socid = $objsoc->id; $this->cond_reglement_id = (!empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + $this->deposit_percent = (!empty($objsoc->deposit_percent) ? $objsoc->deposit_percent : null); $this->mode_reglement_id = (!empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); $this->fk_project = 0; $this->fk_delivery_address = 0; @@ -1226,7 +1234,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 = ''; @@ -1354,6 +1363,7 @@ class Commande extends CommonOrder $this->socid = $object->socid; $this->fk_project = $object->fk_project; $this->cond_reglement_id = $object->cond_reglement_id; + $this->deposit_percent = $object->deposit_percent; $this->mode_reglement_id = $object->mode_reglement_id; $this->fk_account = $object->fk_account; $this->availability_id = $object->availability_id; @@ -1657,7 +1667,6 @@ class Commande extends CommonOrder // TODO Ne plus utiliser $this->line->price = $price; - $this->line->remise = $remise; if (is_array($array_options) && count($array_options) > 0) { $this->line->array_options = $array_options; @@ -1773,7 +1782,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); @@ -1811,7 +1820,7 @@ class Commande extends CommonOrder } $sql = 'SELECT c.rowid, c.entity, c.date_creation, c.ref, c.fk_soc, c.fk_user_author, c.fk_user_valid, c.fk_user_modif, c.fk_statut'; - $sql .= ', c.amount_ht, c.total_ht, c.total_ttc, c.total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_availability, c.fk_input_reason'; + $sql .= ', c.amount_ht, c.total_ht, c.total_ttc, c.total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.deposit_percent, c.fk_mode_reglement, c.fk_availability, c.fk_input_reason'; $sql .= ', c.fk_account'; $sql .= ', c.date_commande, c.date_valid, c.tms'; $sql .= ', c.date_livraison as delivery_date'; @@ -1874,8 +1883,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; @@ -1904,6 +1916,7 @@ class Commande extends CommonOrder $this->cond_reglement_code = $obj->cond_reglement_code; $this->cond_reglement = $obj->cond_reglement_libelle; $this->cond_reglement_doc = $obj->cond_reglement_libelle_doc; + $this->deposit_percent = $obj->deposit_percent; $this->fk_account = $obj->fk_account; $this->availability_id = $obj->fk_availability; $this->availability_code = $obj->availability_code; @@ -2000,7 +2013,6 @@ class Commande extends CommonOrder $line->price = -$remise->amount_ht; $line->fk_product = 0; // Id produit predefini $line->qty = 1; - $line->remise = 0; $line->remise_percent = 0; $line->rang = -1; $line->info_bits = 2; @@ -2115,9 +2127,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; @@ -2144,9 +2156,11 @@ class Commande extends CommonOrder // multilangs if (!empty($conf->global->MAIN_MULTILANGS) && !empty($objp->fk_product) && !empty($loadalsotranslation)) { - $line = new Product($this->db); - $line->fetch($objp->fk_product); - $line->getMultiLangs(); + $tmpproduct = new Product($this->db); + $tmpproduct->fetch($objp->fk_product); + $tmpproduct->getMultiLangs(); + + $line->multilangs = $tmpproduct->multilangs; } $this->lines[$i] = $line; @@ -2254,8 +2268,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); @@ -3077,9 +3091,10 @@ class Commande extends CommonOrder * @param double $pu_ht_devise Amount in currency * @param int $notrigger disable line update trigger * @param string $ref_ext external reference + * @param integer $rang line rank * @return int < 0 if KO, > 0 if OK */ - public function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $price_base_type = 'HT', $info_bits = 0, $date_start = '', $date_end = '', $type = 0, $fk_parent_line = 0, $skip_update_total = 0, $fk_fournprice = null, $pa_ht = 0, $label = '', $special_code = 0, $array_options = 0, $fk_unit = null, $pu_ht_devise = 0, $notrigger = 0, $ref_ext = '') + public function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $price_base_type = 'HT', $info_bits = 0, $date_start = '', $date_end = '', $type = 0, $fk_parent_line = 0, $skip_update_total = 0, $fk_fournprice = null, $pa_ht = 0, $label = '', $special_code = 0, $array_options = 0, $fk_unit = null, $pu_ht_devise = 0, $notrigger = 0, $ref_ext = '', $rang = 0) { global $conf, $mysoc, $langs, $user; @@ -3204,6 +3219,7 @@ class Commande extends CommonOrder $line->oldline = $staticline; $this->line = $line; $this->line->context = $this->context; + $this->line->rang = $rang; // Reorder if fk_parent_line change if (!empty($fk_parent_line) && !empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line) { @@ -3250,7 +3266,6 @@ class Commande extends CommonOrder // TODO deprecated $this->line->price = $price; - $this->line->remise = $remise; if (is_array($array_options) && count($array_options) > 0) { // We replace values in this->line->array_options only for entries defined into $array_options @@ -3337,9 +3352,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 .= " 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").","; @@ -3694,7 +3710,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; @@ -3825,21 +3841,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); @@ -4391,9 +4399,6 @@ class OrderLine extends CommonOrderLine if (empty($this->rang)) { $this->rang = 0; } - if (empty($this->remise)) { - $this->remise = 0; - } if (empty($this->remise_percent)) { $this->remise_percent = 0; } @@ -4434,7 +4439,7 @@ class OrderLine extends CommonOrderLine $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet'; $sql .= ' (fk_commande, fk_parent_line, label, description, qty, ref_ext,'; $sql .= ' vat_src_code, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,'; - $sql .= ' fk_product, product_type, remise_percent, subprice, price, remise, fk_remise_except,'; + $sql .= ' fk_product, product_type, remise_percent, subprice, price, fk_remise_except,'; $sql .= ' special_code, rang, fk_product_fournisseur_price, buy_price_ht,'; $sql .= ' info_bits, total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, date_start, date_end,'; $sql .= ' fk_unit'; @@ -4457,7 +4462,6 @@ class OrderLine extends CommonOrderLine $sql .= " '".price2num($this->remise_percent)."',"; $sql .= " ".(price2num($this->subprice) !== '' ?price2num($this->subprice) : "null").","; $sql .= " ".($this->price != '' ? "'".price2num($this->price)."'" : "null").","; - $sql .= " '".price2num($this->remise)."',"; $sql .= ' '.(!empty($this->fk_remise_except) ? $this->fk_remise_except : "null").','; $sql .= ' '.((int) $this->special_code).','; $sql .= ' '.((int) $this->rang).','; @@ -4566,9 +4570,6 @@ class OrderLine extends CommonOrderLine if (empty($this->marge_tx)) { $this->marge_tx = 0; } - if (empty($this->remise)) { - $this->remise = 0; - } if (empty($this->remise_percent)) { $this->remise_percent = 0; } diff --git a/htdocs/commande/contact.php b/htdocs/commande/contact.php index b89623fc3a0..c353287962e 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'; @@ -96,10 +97,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 +114,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'); @@ -131,7 +132,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/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..c341ae59b4e 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'; } @@ -96,7 +97,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); @@ -130,7 +131,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/commande/index.php b/htdocs/commande/index.php index 03644fe5690..9ee103911f7 100644 --- a/htdocs/commande/index.php +++ b/htdocs/commande/index.php @@ -25,6 +25,8 @@ * \brief Home page of customer 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..4442af6a679 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'; } @@ -83,7 +84,7 @@ $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_cl // 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/commande/list.php b/htdocs/commande/list.php index 52071b672fe..7578f75cc1f 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'; @@ -49,8 +51,9 @@ 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'); @@ -58,6 +61,7 @@ $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'orderlist'; +// 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,6 +74,7 @@ $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'); @@ -77,22 +82,25 @@ $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'); +$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 +111,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,8 +174,8 @@ $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), 's.town'=>array('label'=>"Town", 'checked'=>-1, 'position'=>35), @@ -176,21 +185,21 @@ $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' => ($conf->global->MARGIN_TYPE == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 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)), @@ -199,11 +208,12 @@ $arrayfields = array( '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), + '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'; @@ -267,7 +277,7 @@ if (empty($reshook)) { $search_project = ''; $search_status = ''; $search_billed = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); $search_categ_cus = 0; $search_datecloture_start = ''; @@ -302,6 +312,355 @@ if (empty($reshook)) { $uploaddir = $conf->commande->multidir_output[$conf->entity]; $triggersendname = 'ORDER_SENTBYMAIL'; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; + + if ($massaction == 'confirm_createbills') { // Create bills from orders. + $orders = GETPOST('toselect', 'array'); + $createbills_onebythird = GETPOST('createbills_onebythird', 'int'); + $validate_invoices = GETPOST('validate_invoices', 'int'); + + $errors = array(); + + $TFact = array(); + $TFactThird = array(); + $TFactThirdNbLines = array(); + + $nb_bills_created = 0; + $lastid= 0; + $lastref = ''; + + $db->begin(); + + $nbOrders = is_array($orders) ? count($orders) : 1; + + foreach ($orders as $id_order) { + $cmd = new Commande($db); + if ($cmd->fetch($id_order) <= 0) { + continue; + } + $cmd->fetch_thirdparty(); + + $objecttmp = new Facture($db); + if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) { + // If option "one bill per third" is set, and an invoice for this thirdparty was already created, we re-use it. + $objecttmp = $TFactThird[$cmd->socid]; + } else { + // If we want one invoice per order or if there is no first invoice yet for this thirdparty. + $objecttmp->socid = $cmd->socid; + $objecttmp->thirdparty = $cmd->thirdparty; + + $objecttmp->type = $objecttmp::TYPE_STANDARD; + $objecttmp->cond_reglement_id = !empty($cmd->cond_reglement_id) ? $cmd->cond_reglement_id : $cmd->thirdparty->cond_reglement_id; + $objecttmp->mode_reglement_id = !empty($cmd->mode_reglement_id) ? $cmd->mode_reglement_id : $cmd->thirdparty->mode_reglement_id; + + $objecttmp->fk_project = $cmd->fk_project; + $objecttmp->multicurrency_code = $cmd->multicurrency_code; + if (empty($createbills_onebythird)) { + $objecttmp->ref_client = $cmd->ref_client; + } + + $datefacture = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); + if (empty($datefacture)) { + $datefacture = dol_now(); + } + + $objecttmp->date = $datefacture; + $objecttmp->origin = 'commande'; + $objecttmp->origin_id = $id_order; + + $objecttmp->array_options = $cmd->array_options; // Copy extrafields + + $res = $objecttmp->create($user); + + if ($res > 0) { + $nb_bills_created++; + $lastref = $objecttmp->ref; + $lastid = $objecttmp->id; + + $TFactThird[$cmd->socid] = $objecttmp; + $TFactThirdNbLines[$cmd->socid] = 0; //init nblines to have lines ordered by expedition and rang + } else { + $langs->load("errors"); + $errors[] = $cmd->ref.' : '.$langs->trans($objecttmp->errors[0]); + $error++; + } + } + + if ($objecttmp->id > 0) { + $res = $objecttmp->add_object_linked($objecttmp->origin, $id_order); + + if ($res == 0) { + $errors[] = $cmd->ref.' : '.$langs->trans($objecttmp->errors[0]); + $error++; + } + + if (!$error) { + $lines = $cmd->lines; + if (empty($lines) && method_exists($cmd, 'fetch_lines')) { + $cmd->fetch_lines(); + $lines = $cmd->lines; + } + + $fk_parent_line = 0; + $num = count($lines); + + for ($i = 0; $i < $num; $i++) { + $desc = ($lines[$i]->desc ? $lines[$i]->desc : ''); + // If we build one invoice for several orders, we must put the ref of order on the invoice line + if (!empty($createbills_onebythird)) { + $desc = dol_concatdesc($desc, $langs->trans("Order").' '.$cmd->ref.' - '.dol_print_date($cmd->date, 'day')); + } + + if ($lines[$i]->subprice < 0) { + // Negative line, we create a discount line + $discount = new DiscountAbsolute($db); + $discount->fk_soc = $objecttmp->socid; + $discount->amount_ht = abs($lines[$i]->total_ht); + $discount->amount_tva = abs($lines[$i]->total_tva); + $discount->amount_ttc = abs($lines[$i]->total_ttc); + $discount->tva_tx = $lines[$i]->tva_tx; + $discount->fk_user = $user->id; + $discount->description = $desc; + $discountid = $discount->create($user); + if ($discountid > 0) { + $result = $objecttmp->insert_discount($discountid); + //$result=$discount->link_to_invoice($lineid,$id); + } else { + setEventMessages($discount->error, $discount->errors, 'errors'); + $error++; + break; + } + } else { + // Positive line + $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0); + // Date start + $date_start = false; + if ($lines[$i]->date_debut_prevue) { + $date_start = $lines[$i]->date_debut_prevue; + } + if ($lines[$i]->date_debut_reel) { + $date_start = $lines[$i]->date_debut_reel; + } + if ($lines[$i]->date_start) { + $date_start = $lines[$i]->date_start; + } + //Date end + $date_end = false; + if ($lines[$i]->date_fin_prevue) { + $date_end = $lines[$i]->date_fin_prevue; + } + if ($lines[$i]->date_fin_reel) { + $date_end = $lines[$i]->date_fin_reel; + } + if ($lines[$i]->date_end) { + $date_end = $lines[$i]->date_end; + } + // Reset fk_parent_line for no child products and special product + if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) { + $fk_parent_line = 0; + } + + // Extrafields + if (method_exists($lines[$i], 'fetch_optionals')) { + $lines[$i]->fetch_optionals(); + $array_options = $lines[$i]->array_options; + } + + $objecttmp->context['createfromclone']; + + $rang = ($nbOrders > 1) ? -1 : $lines[$i]->rang; + //there may already be rows from previous orders + if (!empty($createbills_onebythird)) { + $rang = $TFactThirdNbLines[$cmd->socid]; + } + + $result = $objecttmp->addline( + $desc, + $lines[$i]->subprice, + $lines[$i]->qty, + $lines[$i]->tva_tx, + $lines[$i]->localtax1_tx, + $lines[$i]->localtax2_tx, + $lines[$i]->fk_product, + $lines[$i]->remise_percent, + $date_start, + $date_end, + 0, + $lines[$i]->info_bits, + $lines[$i]->fk_remise_except, + 'HT', + 0, + $product_type, + $rang, + $lines[$i]->special_code, + $objecttmp->origin, + $lines[$i]->rowid, + $fk_parent_line, + $lines[$i]->fk_fournprice, + $lines[$i]->pa_ht, + $lines[$i]->label, + $array_options, + 100, + 0, + $lines[$i]->fk_unit + ); + if ($result > 0) { + $lineid = $result; + if (!empty($createbills_onebythird)) //increment rang to keep order + $TFactThirdNbLines[$rcp->socid]++; + } else { + $lineid = 0; + $error++; + break; + } + // Defined the new fk_parent_line + if ($result > 0 && $lines[$i]->product_type == 9) { + $fk_parent_line = $result; + } + } + } + } + } + + //$cmd->classifyBilled($user); // Disabled. This behavior must be set or not using the workflow module. + + if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) { + $TFactThird[$cmd->socid] = $objecttmp; + } else { + $TFact[$objecttmp->id] = $objecttmp; + } + } + + // Build doc with all invoices + $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird; + $toselect = array(); + + if (!$error && $validate_invoices) { + $massaction = $action = 'builddoc'; + + foreach ($TAllFact as &$objecttmp) { + $result = $objecttmp->validate($user); + if ($result <= 0) { + $error++; + setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); + break; + } + + $id = $objecttmp->id; // For builddoc action + + // Builddoc + $donotredirect = 1; + $upload_dir = $conf->facture->dir_output; + $permissiontoadd = $user->rights->facture->creer; + + // Call action to build doc + $savobject = $object; + $object = $objecttmp; + include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; + $object = $savobject; + } + + $massaction = $action = 'confirm_createbills'; + } + + if (!$error) { + $db->commit(); + + if ($nb_bills_created == 1) { + $texttoshow = $langs->trans('BillXCreated', '{s1}'); + $texttoshow = str_replace('{s1}', ''.$lastref.'', $texttoshow); + setEventMessages($texttoshow, null, 'mesgs'); + } else { + setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs'); + } + + // Make a redirect to avoid to bill twice if we make a refresh or back + $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_orderday) { + $param .= '&search_orderday='.urlencode($search_orderday); + } + if ($search_ordermonth) { + $param .= '&search_ordermonth='.urlencode($search_ordermonth); + } + if ($search_orderyear) { + $param .= '&search_orderyear='.urlencode($search_orderyear); + } + if ($search_deliveryday) { + $param .= '&search_deliveryday='.urlencode($search_deliveryday); + } + if ($search_deliverymonth) { + $param .= '&search_deliverymonth='.urlencode($search_deliverymonth); + } + if ($search_deliveryyear) { + $param .= '&search_deliveryyear='.urlencode($search_deliveryyear); + } + if ($search_ref) { + $param .= '&search_ref='.urlencode($search_ref); + } + if ($search_company) { + $param .= '&search_company='.urlencode($search_company); + } + 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_project_ref >= 0) { + $param .= "&search_project_ref=".urlencode($search_project_ref); + } + if ($show_files) { + $param .= '&show_files='.urlencode($show_files); + } + if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); + } + if ($billed != '') { + $param .= '&billed='.urlencode($billed); + } + + header("Location: ".$_SERVER['PHP_SELF'].'?'.$param); + exit; + } else { + $db->rollback(); + + $action = 'create'; + $_GET["origin"] = $_POST["origin"]; + $_GET["originid"] = $_POST["originid"]; + if (!empty($errors)) { + setEventMessages(null, $errors, 'errors'); + } else { + setEventMessages("Error", null, 'errors'); + } + $error++; + } + } } if ($action == 'validate' && $permissiontoadd) { if (GETPOST('confirm') == 'yes') { @@ -370,6 +729,7 @@ if ($action == 'shipped' && $permissiontoadd) { } } } + // Closed records if (!$error && $massaction === 'setbilled' && $permissiontoclose) { $db->begin(); @@ -406,10 +766,12 @@ if (!$error && $massaction === 'setbilled' && $permissiontoclose) { } } + /* * View */ + $now = dol_now(); $form = new Form($db); @@ -425,7 +787,6 @@ $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) { @@ -441,17 +802,19 @@ $sql .= ' c.date_valid, c.date_commande, c.note_public, c.note_private, c.date_l $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.fk_mode_reglement,c.fk_shipping_method,'; +$sql .= ' c.fk_cond_reglement,c.deposit_percent,c.fk_mode_reglement,c.fk_shipping_method,'; $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 @@ -669,12 +1032,12 @@ if ($resql) { if ($socid > 0) { $soc = new Societe($db); $soc->fetch($socid); - $title = $langs->trans('ListOfOrders').' - '.$soc->name; + $title = $langs->trans('CustomersOrders').' - '.$soc->name; if (empty($search_company)) { $search_company = $soc->name; } } else { - $title = $langs->trans('ListOfOrders'); + $title = $langs->trans('CustomersOrders'); } if (strval($search_status) == '0') { $title .= ' - '.$langs->trans('StatusOrderDraftShort'); @@ -868,7 +1231,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->rights->facture->creer) { $arrayofmassactions['createbills'] = img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans("CreateInvoiceForThisCustomer"); } if ($permissiontoclose) { @@ -974,8 +1337,8 @@ if ($resql) { $moreforfilter = ''; - // If the user can view prospects other than his' - if ($user->rights->societe->client->voir || $socid) { + // If the user can view prospects? sales other than his own + if ($user->rights->user->user->lire) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -989,8 +1352,9 @@ if ($resql) { $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->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'); @@ -998,13 +1362,15 @@ 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->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 Stock is enabled 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); @@ -1028,7 +1394,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')) { @@ -1045,6 +1411,14 @@ if ($resql) { 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) . '
    '."\n"; print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + // Ref if (!empty($arrayfields['c.ref']['checked'])) { print ''; } // Payment mode if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { print ''; } // Channel @@ -1148,60 +1522,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 ''; } @@ -1221,12 +1596,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 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); } @@ -1409,8 +1792,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, @@ -1448,7 +1833,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; @@ -1475,8 +1862,9 @@ if ($resql) { $total_ht = 0; $total_margin = 0; + $imaxinloop = ($limit ? min($num, $limit) : $num); $last_num = min($num, $limit); - while ($i < $last_num) { + while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); $notshippable = 0; @@ -1528,6 +1916,18 @@ if ($resql) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print '\n"; @@ -1629,6 +2033,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Country if (!empty($arrayfields['country.code_iso']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; } } + // Payment mode if (!empty($arrayfields['c.fk_mode_reglement']['checked'])) { print '\n"; if (!$i) { @@ -1725,6 +2137,7 @@ if ($resql) { $totalarray['val']['c.total_ht'] = $obj->total_ht; } } + // Amount VAT if (!empty($arrayfields['c.total_vat']['checked'])) { print '\n"; @@ -1736,7 +2149,8 @@ if ($resql) { } $totalarray['val']['c.total_tva'] += $obj->total_tva; } - // Amount TTC + + // Amount TTC / gross if (!empty($arrayfields['c.total_ttc']['checked'])) { print '\n"; if (!$i) { @@ -1765,21 +2179,22 @@ if ($resql) { $totalarray['nbfield']++; } } - // Amount HT + + // Amount HT/net in foreign currency if (!empty($arrayfields['c.multicurrency_total_ht']['checked'])) { print '\n"; if (!$i) { $totalarray['nbfield']++; } } - // Amount VAT + // Amount VAT in foreign currency if (!empty($arrayfields['c.multicurrency_total_vat']['checked'])) { print '\n"; if (!$i) { $totalarray['nbfield']++; } } - // Amount TTC + // Amount TTC / gross in foreign currency if (!empty($arrayfields['c.multicurrency_total_ttc']['checked'])) { print '\n"; if (!$i) { @@ -1815,8 +2230,8 @@ if ($resql) { } } + // Sales representatives if (!empty($arrayfields['sale_representative']['checked'])) { - // Sales representatives print ''; @@ -1880,6 +2296,7 @@ if ($resql) { } $totalarray['val']['total_margin'] += $marginInfo['total_margin']; } + // Total margin rate if (!empty($arrayfields['total_margin_rate']['checked'])) { print ''; @@ -1887,6 +2304,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Total mark rate if (!empty($arrayfields['total_mark_rate']['checked'])) { print ''; @@ -1944,8 +2362,8 @@ if ($resql) { // Note public if (!empty($arrayfields['c.note_public']['checked'])) { - print ''; if (!$i) { $totalarray['nbfield']++; @@ -1954,8 +2372,8 @@ if ($resql) { // Note private if (!empty($arrayfields['c.note_private']['checked'])) { - print ''; if (!$i) { $totalarray['nbfield']++; @@ -1972,8 +2390,11 @@ if ($resql) { $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]; - + 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; @@ -2005,7 +2426,7 @@ if ($resql) { $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 (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']; @@ -2014,7 +2435,7 @@ if ($resql) { } $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 ((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']; @@ -2035,7 +2456,7 @@ if ($resql) { } 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)) { + 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).')' : ''); @@ -2072,6 +2493,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Import key if (!empty($arrayfields['c.import_key']['checked'])) { print ''; @@ -2079,6 +2501,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Status if (!empty($arrayfields['c.fk_statut']['checked'])) { print ''; @@ -2088,13 +2511,15 @@ if ($resql) { } // Action column - print ''; if (!$i) { @@ -2111,6 +2536,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/commande/note.php b/htdocs/commande/note.php index 55140c30ae2..452e58076c7 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'; } @@ -77,7 +78,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); @@ -102,7 +103,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/commande/stats/index.php b/htdocs/commande/stats/index.php index 603627ee91e..15642da2d39 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'; @@ -394,11 +395,11 @@ foreach ($data as $val) { print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; $oldyear = $year; } diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php index 8c1df906ab7..819a6ecb74f 100644 --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php @@ -53,7 +53,7 @@ foreach ($linkedObjectBlock as $key => $objectlink) { 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 +834,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 +848,7 @@ if (!empty($date_start) && !empty($date_stop)) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print "\n"; @@ -824,7 +859,7 @@ if (!empty($date_start) && !empty($date_stop)) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { print ''; } print "\n"; @@ -835,7 +870,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..aeb8d164928 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'); 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 36a9d17315a..610cf17498c 100644 --- a/htdocs/compta/bank/annuel.php +++ b/htdocs/compta/bank/annuel.php @@ -1,8 +1,8 @@ - * Copyright (C) 2004-2017 Laurent Destailleur - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2013 Charles-Fr BENKE +/* Copyright (C) 2005 Rodolphe Quiedeville + * Copyright (C) 2004-2017 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2013 Charles-Fr 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 @@ -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'; @@ -61,10 +62,6 @@ if (!$year_start) { * View */ -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("IOMonthlyReporting"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $form = new Form($db); // Get account informations @@ -78,6 +75,13 @@ if (!empty($ref)) { $id = $object->id; } +$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 @@ -189,17 +193,20 @@ 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 '"; for ($annee = $year_start; $annee <= $year_end; $annee++) { - print ''; + print ''; + print ''; } print "\n"; @@ -245,6 +253,7 @@ if ($resql) { print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -1133,13 +1507,13 @@ if ($resql) { // Payment term if (!empty($arrayfields['c.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 ''; print ''; print ''; print $form->selectMultiCurrency($search_multicurrency_code, 'search_multicurrency_code', 1); print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; @@ -1297,15 +1675,20 @@ 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 ''; + } + } + // Ref if (!empty($arrayfields['c.ref']['checked'])) { print ''; @@ -1582,7 +1982,7 @@ if ($resql) { print $getNomUrl_cache[$obj->socid]; // If module invoices enabled and user with invoice creation permissions - if (!empty($conf->facture->enabled) && !empty($conf->global->ORDER_BILLING_ALL_CUSTOMER)) { + 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 ' '; @@ -1595,6 +1995,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Alias name if (!empty($arrayfields['s.name_alias']['checked'])) { print ''; @@ -1604,6 +2005,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Town if (!empty($arrayfields['s.town']['checked'])) { print ''; @@ -1613,6 +2015,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Zip if (!empty($arrayfields['s.zip']['checked'])) { print ''; @@ -1622,6 +2025,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // State if (!empty($arrayfields['state.nom']['checked'])) { print "".$obj->state_name."'; @@ -1639,6 +2044,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Type ent if (!empty($arrayfields['typent.code']['checked'])) { print ''; @@ -1665,6 +2071,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Plannned date of delivery if (!empty($arrayfields['c.date_delivery']['checked'])) { print ''; @@ -1674,6 +2081,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Shipping Method if (!empty($arrayfields['c.fk_shipping_method']['checked'])) { print ''; @@ -1683,15 +2091,17 @@ if ($resql) { $totalarray['nbfield']++; } } + // Payment terms if (!empty($arrayfields['c.fk_cond_reglement']['checked'])) { print ''; - $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none'); + $form->form_conditions_reglement($_SERVER['PHP_SELF'], $obj->fk_cond_reglement, 'none', 0, '', 1, $obj->deposit_percent); print ''; @@ -1701,6 +2111,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Channel if (!empty($arrayfields['c.fk_input_reason']['checked'])) { print ''; @@ -1710,7 +2121,8 @@ if ($resql) { $totalarray['nbfield']++; } } - // Amount HT + + // Amount HT/net if (!empty($arrayfields['c.total_ht']['checked'])) { print ''.price($obj->total_ht)."'.price($obj->total_tva)."'.price($obj->total_ttc)."'.price($obj->multicurrency_total_ht)."'.price($obj->multicurrency_total_vat)."'.price($obj->multicurrency_total_ttc)."'; if ($obj->socid > 0) { $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user); @@ -1869,6 +2284,7 @@ if ($resql) { $totalarray['nbfield']++; } } + // Total margin if (!empty($arrayfields['total_margin']['checked'])) { print ''.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_escape_htmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_public); print ''; - print dol_escape_htmltag($obj->note_private); + print ''; + print dol_string_nohtmltag($obj->note_private); 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; + 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 '
    '.$langs->trans("NoRecordFound").'
    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").'%
    '.$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 8f61261bc11..7e9264614cd 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)); } @@ -127,14 +135,14 @@ if (empty($entity)) { $error = 0; $listofchoices = array( - 'selectinvoices'=>array('label'=>'Invoices', 'lang'=>'bills', 'enabled' => !empty($conf->facture->enabled), '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)), + 'selectinvoices'=>array('label'=>'Invoices', 'lang'=>'bills', 'enabled' => isModEnabled('facture'), 'perms' => !empty($user->rights->facture->lire)), + '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"; } @@ -443,7 +457,7 @@ if ($result && $action == "dl" && !$error) { dol_mkdir($dirfortmpfile); $log = $langs->transnoentitiesnoconv("Type"); - if (!empty($conf->multicompany->enabled) && is_object($mc)) { + if (isModEnabled('multicompany') && is_object($mc)) { $log .= ','.$langs->transnoentitiesnoconv("Entity"); } $log .= ','.$langs->transnoentitiesnoconv("Date"); @@ -460,7 +474,15 @@ if ($result && $action == "dl" && !$error) { $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'; + $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); @@ -477,7 +499,7 @@ if ($result && $action == "dl" && !$error) { } $log .= '"'.$langs->trans($file['item']).'"'; - if (!empty($conf->multicompany->enabled) && is_object($mc)) { + if (isModEnabled('multicompany') && is_object($mc)) { $log .= ',"'.(empty($arrayofentities[$file['entity']]) ? $file['entity'] : $arrayofentities[$file['entity']]).'"'; } $log .= ','.dol_print_date($file['date'], 'dayrfc'); @@ -548,7 +570,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 +583,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 +600,16 @@ if (!empty($conf->multicompany->enabled) && is_object($mc)) { print '
    '; +// Project filter +if (!empty($conf->projet->enabled)) { + $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 +628,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 +649,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")." '; - if ($decaiss[$case] > 0) { + if (isset($decaiss[$case]) && $decaiss[$case] > 0) { print price($decaiss[$case]); $totsorties[$annee] += $decaiss[$case]; } print " '; - if ($encaiss[$case] > 0) { + if (isset($encaiss[$case]) && $encaiss[$case] > 0) { print price($encaiss[$case]); $totentrees[$annee] += $encaiss[$case]; } @@ -211,7 +218,8 @@ for ($mois = 1; $mois < 13; $mois++) { // Total debit-credit print '
    '.$langs->trans("Total")."'.price($totsorties[$annee]).''.price($totentrees[$annee]).''. (isset($totsorties[$annee]) ? price($totsorties[$annee]) : '') .''. (isset($totentrees[$annee]) ? price($totentrees[$annee]) : '') .'
    '; +$nbcol = ''; print '"; print ''; print "\n"; @@ -267,7 +276,7 @@ if ($result < 0) { $sql .= ", ".MAIN_DB_PREFIX."bank_account as ba"; $sql .= " WHERE b.fk_account = ba.rowid"; $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; - if ($id && $_GET["option"] != 'all') { + if ($id && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($id).")"; } @@ -299,7 +308,7 @@ if ($result < 0) { $sql .= " AND b.datev >= '".($year - $annee)."-01-01 00:00:00'"; $sql .= " AND b.datev <= '".($year - $annee)."-12-31 23:59:59'"; $sql .= " AND b.amount > 0"; - if ($id && $_GET["option"] != 'all') { + if ($id && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($id).")"; } $sql .= " GROUP BY date_format(b.datev,'%m');"; @@ -381,7 +390,7 @@ if ($result < 0) { $sql .= " AND b.datev >= '".($year - $annee)."-01-01 00:00:00'"; $sql .= " AND b.datev <= '".($year - $annee)."-12-31 23:59:59'"; $sql .= " AND b.amount < 0"; - if ($id && $_GET["option"] != 'all') { + if ($id && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($id).")"; } $sql .= " GROUP BY date_format(b.datev,'%m');"; diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index 4d133c50dda..c6ec38abded 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -31,15 +31,17 @@ * \brief List of bank transactions */ +// 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.formaccounting.class.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/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; - require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/paymentvat.class.php'; @@ -54,6 +56,7 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php'; // Load translation files required by the page $langs->loadLangs(array("banks", "bills", "categories", "companies", "margins", "salaries", "loan", "donations", "trips", "members", "compta", "accountancy")); @@ -99,6 +102,7 @@ $search_thirdparty_user = GETPOST("search_thirdparty", 'alpha') ?GETPOST("search $search_req_nb = GETPOST("req_nb", 'alpha'); $search_num_releve = GETPOST("search_num_releve", 'alpha'); $search_conciliated = GETPOST("search_conciliated", 'int'); +$search_fk_bordereau = GETPOST("search_fk_bordereau", 'int'); $optioncss = GETPOST('optioncss', 'alpha'); $toselect = GETPOST('toselect', 'array'); $num_releve = GETPOST("num_releve", "alpha"); @@ -157,20 +161,21 @@ $extrafields->fetch_name_optionals_label('banktransaction'); $search_array_options = $extrafields->getOptionalsFromPost('banktransaction', '', 'search_'); $arrayfields = array( - 'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), - 'b.label'=>array('label'=>$langs->trans("Description"), 'checked'=>1), - 'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1), - 'b.datev'=>array('label'=>$langs->trans("DateValueShort"), 'checked'=>1), - 'type'=>array('label'=>$langs->trans("Type"), 'checked'=>1), - 'b.num_chq'=>array('label'=>$langs->trans("Numero"), 'checked'=>1), - 'bu.label'=>array('label'=>$langs->trans("ThirdParty").'/'.$langs->trans("User"), 'checked'=>1, 'position'=>500), - 'ba.ref'=>array('label'=>$langs->trans("BankAccount"), 'checked'=>(($id > 0 || !empty($ref)) ? 0 : 1), 'position'=>1000), - 'b.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1, 'position'=>600), - 'b.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1, 'position'=>605), - 'balancebefore'=>array('label'=>$langs->trans("BalanceBefore"), 'checked'=>0, 'position'=>1000), - 'balance'=>array('label'=>$langs->trans("Balance"), 'checked'=>1, 'position'=>1001), - 'b.num_releve'=>array('label'=>$langs->trans("AccountStatement"), 'checked'=>1, 'position'=>1010), - 'b.conciliated'=>array('label'=>$langs->trans("BankLineReconciled"), 'enabled'=> $object->rappro, 'checked'=>($action == 'reconcile' ? 1 : 0), 'position'=>1020), + 'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1,'position'=>10), + 'b.label'=>array('label'=>$langs->trans("Description"), 'checked'=>1,'position'=>20), + 'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1,'position'=>30), + 'b.datev'=>array('label'=>$langs->trans("DateValueShort"), 'checked'=>1,'position'=>40), + 'type'=>array('label'=>$langs->trans("Type"), 'checked'=>1,'position'=>50), + 'b.num_chq'=>array('label'=>$langs->trans("Numero"), 'checked'=>1,'position'=>60), + 'bu.label'=>array('label'=>$langs->trans("ThirdParty").'/'.$langs->trans("User"), 'checked'=>1, 'position'=>70), + 'ba.ref'=>array('label'=>$langs->trans("BankAccount"), 'checked'=>(($id > 0 || !empty($ref)) ? 0 : 1), 'position'=>80), + 'b.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1, 'position'=>90), + 'b.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1, 'position'=>100), + 'balancebefore'=>array('label'=>$langs->trans("BalanceBefore"), 'checked'=>0, 'position'=>110), + 'balance'=>array('label'=>$langs->trans("Balance"), 'checked'=>1, 'position'=>120), + 'b.num_releve'=>array('label'=>$langs->trans("AccountStatement"), 'checked'=>1, 'position'=>130), + 'b.conciliated'=>array('label'=>$langs->trans("BankLineReconciled"), 'enabled'=> $object->rappro, 'checked'=>($action == 'reconcile' ? 1 : 0), 'position'=>140), + 'b.fk_bordereau'=>array('label'=>$langs->trans("ChequeReceipt"), 'checked'=>0, 'position'=>150), ); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -178,7 +183,6 @@ 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 */ @@ -214,7 +218,8 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_thirdparty_user = ''; $search_num_releve = ''; $search_conciliated = ''; - $toselect = ''; + $search_fk_bordereau = ''; + $toselect = array(); $search_account = ""; if ($id > 0 || !empty($ref)) { @@ -231,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; @@ -353,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++; @@ -390,8 +399,6 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && !empty($user->rights->ba } } - - /* * View */ @@ -421,6 +428,7 @@ $paymentvariousstatic = new PaymentVarious($db); $paymentexpensereportstatic = new PaymentExpenseReport($db); $bankstatic = new Account($db); $banklinestatic = new AccountLine($db); +$bordereaustatic = new RemiseCheque($db); $now = dol_now(); @@ -465,6 +473,9 @@ if (!empty($search_num_releve)) { if ($search_conciliated != '' && $search_conciliated != '-1') { $param .= '&search_conciliated='.urlencode($search_conciliated); } +if ($search_fk_bordereau > 0) { + $param .= '$&search_fk_bordereau='.urlencode($search_fk_bordereau); +} if ($search_bid > 0) { $param .= '&search_bid='.urlencode($search_bid); } @@ -506,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); @@ -547,7 +564,7 @@ if ($id > 0 || !empty($ref)) { if ($user->rights->banque->consolidate) { $newparam = $param; $newparam = preg_replace('/search_conciliated=\d+/i', '', $newparam); - $buttonreconcile = ''.$titletoconciliatemanual.''; + $buttonreconcile = ''.$titletoconciliatemanual.''; } else { $buttonreconcile = ''.$titletoconciliatemanual.''; } @@ -557,19 +574,17 @@ if ($id > 0 || !empty($ref)) { if ($user->rights->banque->consolidate) { $newparam = $param; $newparam = preg_replace('/search_conciliated=\d+/i', '', $newparam); - $buttonreconcile .= ' '.$titletoconciliateauto.''; + $buttonreconcile .= ' '.$titletoconciliateauto.''; } else { $buttonreconcile .= ' '.$titletoconciliateauto.''; } } } } -} 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,"; +$sql .= " b.fk_account, b.fk_type, b.fk_bordereau,"; $sql .= " ba.rowid as bankid, ba.ref as bankref"; // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { @@ -621,6 +636,9 @@ if ($search_num_releve) { if ($search_conciliated != '' && $search_conciliated != '-1') { $sql .= " AND b.rappro = ".((int) $search_conciliated); } +if ($search_fk_bordereau > 0) { + $sql .= " AND b.fk_bordereau = " . ((int) $search_fk_bordereau); +} if ($search_thirdparty_user) { $sql.= " AND (b.rowid IN "; $sql.= " ( SELECT bu.fk_bank FROM ".MAIN_DB_PREFIX."bank_url AS bu"; @@ -737,6 +755,9 @@ if ($search_conciliated != '' && $search_conciliated != '-1') { if (!empty($search_num_releve)) { $mode_balance_ok = false; } +if (!empty($search_fk_bordereau)) { + $mode_balance_ok = false; +} $sql .= $db->plimit($limit + 1, $offset); //print $sql; @@ -862,7 +883,7 @@ if ($resql) { print ''; print ''; print ''; - /*if (! empty($conf->accounting->enabled)) + /*if (isModEnabled('accounting')) { print ''; print ''; - /*if (! empty($conf->accounting->enabled)) + /*if (isModEnabled('accounting')) { print ''; } + // Numero if (!empty($arrayfields['b.num_chq']['checked'])) { - // Numero print ''; } + // Checked if (!empty($arrayfields['bu.label']['checked'])) { print ''; } + // Ref if (!empty($arrayfields['ba.ref']['checked'])) { print ''; } + // Debit if (!empty($arrayfields['b.debit']['checked'])) { print ''; } + // Credit if (!empty($arrayfields['b.credit']['checked'])) { print ''; } + // Balance before if (!empty($arrayfields['balancebefore']['checked'])) { print ''; } + // Balance if (!empty($arrayfields['balance']['checked'])) { print ''; } + // Bordereau + if (!empty($arrayfields['b.fk_bordereau']['checked'])) { + print ''; + } + // Actions and select print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Action edit/delete and select print ''; // Tags-Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print ''; @@ -540,7 +550,7 @@ if ($action == 'create') { print ''; print ''; - if ($conf->paymentbybanktransfer->enabled) { + if (isModEnabled('paymentbybanktransfer')) { print ''; print ''; print ''; print ''; print ''; // Accountancy journal - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print ''; print ''; + } - $db->free($result); + $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 + print $hookmanager->resPrint; + + print '
    '.$langs->trans("CurrentBalance")."'.price($balance).'
    '.$langs->trans("BankAccount").''.$langs->trans("Debit").''.$langs->trans("Credit").''; print $langs->trans("AccountAccounting"); @@ -897,7 +918,7 @@ if ($resql) { //} print ''; print $formaccounting->select_account($search_accountancy_code, 'search_accountancy_code', 1, null, 1, 1, ''); @@ -1006,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 @@ -1064,37 +1085,43 @@ 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 ''; $form->select_comptes($search_account, 'search_account', 0, '', 1, ($id > 0 || !empty($ref) ? ' disabled="disabled"' : ''), 0, 'maxwidth100'); print ''; print ''; print ''; print ''; print ''; $htmltext = $langs->trans("BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv("DateValue")); print $form->textwithpicto('', $htmltext, 1); print ''; $htmltext = $langs->trans("BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv("DateValue")); @@ -1111,6 +1138,11 @@ if ($resql) { print $form->selectyesno('search_conciliated', $search_conciliated, 1, false, 1, 1); print ''; $searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1); @@ -1162,6 +1194,10 @@ if ($resql) { if (!empty($arrayfields['b.conciliated']['checked'])) { print_liste_field_titre($arrayfields['b.conciliated']['label'], $_SERVER['PHP_SELF'], 'b.rappro', '', $param, '', $sortfield, $sortorder, "center "); } + if (!empty($arrayfields['b.fk_bordereau']['checked'])) { + print_liste_field_titre($arrayfields['b.fk_bordereau']['label'], $_SERVER['PHP_SELF'], 'b.fk_bordereau', '', $param, '', $sortfield, $sortorder, "center "); + } + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields @@ -1242,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'])) { @@ -1673,6 +1709,16 @@ if ($resql) { } } + if (!empty($arrayfields['b.fk_bordereau']['checked'])) { + $bordereaustatic->fetch($objp->fk_bordereau); + print ''; + print $bordereaustatic->getNomUrl(); + print ''; // Transaction reconciliated or edit link 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 8ca3272dd78..a923f3a0829 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -6,7 +6,8 @@ * 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 * it under the terms of the GNU General Public License as published by @@ -28,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'; @@ -35,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'; } @@ -67,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); @@ -124,11 +135,11 @@ if (empty($reshook)) { $object->cle_rib = trim(GETPOST("cle_rib")); $object->bic = trim(GETPOST("bic")); $object->iban = trim(GETPOST("iban")); - $object->domiciliation = trim(GETPOST("domiciliation", "nohtml")); + $object->domiciliation = trim(GETPOST("domiciliation", "alphanohtml")); $object->pti_in_ctti = empty(GETPOST("pti_in_ctti")) ? 0 : 1; $object->proprio = trim(GETPOST("proprio", 'alphanohtml')); - $object->owner_address = trim(GETPOST("owner_address", 'nohtml')); + $object->owner_address = trim(GETPOST("owner_address", 'alphanohtml')); $object->ics = trim(GETPOST("ics", 'alpha')); $object->ics_transfer = trim(GETPOST("ics_transfer", 'alpha')); @@ -225,11 +236,11 @@ if (empty($reshook)) { $object->cle_rib = trim(GETPOST("cle_rib")); $object->bic = trim(GETPOST("bic")); $object->iban = trim(GETPOST("iban")); - $object->domiciliation = trim(GETPOST("domiciliation", "nohtml")); + $object->domiciliation = trim(GETPOST("domiciliation", "alphanohtml")); $object->pti_in_ctti = empty(GETPOST("pti_in_ctti")) ? 0 : 1; $object->proprio = trim(GETPOST("proprio", 'alphanohtml')); - $object->owner_address = trim(GETPOST("owner_address", 'nohtml')); + $object->owner_address = trim(GETPOST("owner_address", 'alphanohtml')); $object->ics = trim(GETPOST("ics", 'alpha')); $object->ics_transfer = trim(GETPOST("ics_transfer", 'alpha')); @@ -318,6 +329,7 @@ if (empty($reshook)) { } } + /* * View */ @@ -325,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) { @@ -436,7 +446,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACCOUNT, '', 'parent', 64, 0, 1); @@ -457,7 +467,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, '90%'); + $doleditor = new DolEditor('account_comment', (GETPOST("account_comment") ?GETPOST("account_comment") : $object->comment), '', 90, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_4, '90%'); $doleditor->Create(); print '
    '.$langs->trans($bickey).'
    '.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").' '; print img_picto($langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp"), 'info'); @@ -572,7 +582,7 @@ if ($action == 'create') { $fieldrequired = 'fieldrequired '; } - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print '
    '.$langs->trans("AccountancyCode").''; print $formaccounting->select_account($object->account_number, 'account_number', 1, '', 1, 1); @@ -583,7 +593,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); @@ -598,22 +608,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'); @@ -676,7 +672,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); @@ -687,7 +683,7 @@ if ($action == 'create') { print '
    '.$langs->trans("AccountancyJournal").''; @@ -713,7 +709,7 @@ if ($action == 'create') { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -756,7 +752,7 @@ if ($action == 'create') { } print ''; - print ''; - if ($conf->prelevement->enabled) { - print ''; + if (isModEnabled('prelevement')) { + print ''; print ''; print ''; } - if ($conf->paymentbybanktransfer->enabled) { - print ''; + // TODO ICS is not used with bank transfer ! + if (isModEnabled('paymentbybanktransfer')) { + print ''; print ''; print ''; @@ -840,9 +837,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) { @@ -965,7 +959,7 @@ if ($action == 'create') { print ''; // Tags-Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print ''; @@ -1011,9 +1005,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 ''; - if ($conf->prelevement->enabled) { - print ''; + if (isModEnabled('prelevement')) { + print ''; print ''; } - if ($conf->paymentbybanktransfer->enabled) { - print ''; + if (isModEnabled('paymentbybanktransfer')) { + print ''; print ''; print ''; diff --git a/htdocs/compta/bank/categ.php b/htdocs/compta/bank/categ.php index 2605bc39d30..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"); - /* @@ -113,7 +122,7 @@ if ($action != 'edit') { print ''; print ''; print ''; - print ''; + print ''; print ''; } diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 429d7c704c8..6549809b803 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -145,6 +145,12 @@ class Account extends CommonObject */ public $iban_prefix; + /** + * Address of the bank + * @var string + */ + public $domiciliation; + /** * XML SEPA format: place Payment Type Information (PmtTpInf) in Credit Transfer Transaction Information (CdtTrfTxInf) * @var int @@ -309,7 +315,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), @@ -612,7 +618,7 @@ class Account extends CommonObject $this->error = $this->db->lasterror(); $this->db->rollback(); - return -3; + return -4; } } @@ -624,7 +630,7 @@ class Account extends CommonObject $this->errors = $accline->errors; $this->db->rollback(); - return -2; + return -5; } } @@ -1200,7 +1206,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) */ @@ -1375,6 +1381,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").''; @@ -1383,7 +1390,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; @@ -1391,7 +1398,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); @@ -1701,19 +1708,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; @@ -2383,7 +2391,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 23d4c2eefbb..8e38d1ffe78 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -250,7 +250,7 @@ class BankAccounts extends DolibarrApi } // Clean data - $description = checkVal($description, 'alphanohtml'); + $description = sanitizeVal($description, 'alphanohtml'); /** @@ -498,13 +498,13 @@ class BankAccounts extends DolibarrApi throw new RestException(404, 'account not found'); } - $type = checkVal($type); - $label = checkVal($label); - $cheque_number = checkVal($cheque_number); - $cheque_writer = checkVal($cheque_writer); - $cheque_bank = checkVal($cheque_bank); - $accountancycode = checkVal($accountancycode); - $num_releve = checkVal($num_releve); + $type = sanitizeVal($type); + $label = sanitizeVal($label); + $cheque_number = sanitizeVal($cheque_number); + $cheque_writer = sanitizeVal($cheque_writer); + $cheque_bank = sanitizeVal($cheque_bank); + $accountancycode = sanitizeVal($accountancycode); + $num_releve = sanitizeVal($num_releve); $result = $account->addline( $date, @@ -557,9 +557,9 @@ class BankAccounts extends DolibarrApi throw new RestException(404, 'account line not found'); } - $url = checkVal($url); - $label = checkVal($label); - $type = checkVal($type); + $url = sanitizeVal($url); + $label = sanitizeVal($label); + $type = sanitizeVal($type); $result = $account->add_url_line($line_id, $url_id, $url, $label, $type); if ($result < 0) { diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index cdcd26490a3..3d07c280559 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -165,7 +165,7 @@ class PaymentVarious extends CommonObject * * @param DoliDB $db Database handler */ - public function __construct($db) + public function __construct(DoliDB $db) { $this->db = $db; $this->element = 'payment_various'; @@ -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); } @@ -694,13 +669,6 @@ class PaymentVarious extends CommonObject } $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; - - /* - $hookmanager->initHooks(array('myobjectdao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } else { $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); } diff --git a/htdocs/compta/bank/document.php b/htdocs/compta/bank/document.php index 78d45beadf3..595d627609b 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 @@ -93,8 +92,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 4c0efec57d2..a3fd0b0b15b 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'; @@ -55,11 +56,6 @@ $error = 0; /* * View */ - -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("Graph"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $form = new Form($db); $datetime = dol_now(); @@ -83,6 +79,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"); @@ -95,7 +95,7 @@ if ($result < 0) { $sql .= ", ".MAIN_DB_PREFIX."bank_account as ba"; $sql .= " WHERE b.fk_account = ba.rowid"; $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } @@ -137,7 +137,7 @@ if ($result < 0) { $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; $sql .= " AND b.datev >= '".$db->escape($year)."-".$db->escape($month)."-01 00:00:00'"; $sql .= " AND b.datev < '".$db->escape($yearnext)."-".$db->escape($monthnext)."-01 00:00:00'"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%Y%m%d')"; @@ -165,7 +165,7 @@ if ($result < 0) { $sql .= " WHERE b.fk_account = ba.rowid"; $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; $sql .= " AND b.datev < '".$db->escape($year)."-".sprintf("%02s", $month)."-01'"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } @@ -279,7 +279,7 @@ if ($result < 0) { $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; $sql .= " AND b.datev >= '".$db->escape($year)."-01-01 00:00:00'"; $sql .= " AND b.datev <= '".$db->escape($year)."-12-31 23:59:59'"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%Y%m%d')"; @@ -307,7 +307,7 @@ if ($result < 0) { $sql .= " WHERE b.fk_account = ba.rowid"; $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; $sql .= " AND b.datev < '".$db->escape($year)."-01-01'"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } @@ -415,7 +415,7 @@ if ($result < 0) { $sql .= ", ".MAIN_DB_PREFIX."bank_account as ba"; $sql .= " WHERE b.fk_account = ba.rowid"; $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%Y%m%d')"; @@ -540,7 +540,7 @@ if ($result < 0) { $sql .= " AND b.datev >= '".$db->escape($year)."-".$db->escape($month)."-01 00:00:00'"; $sql .= " AND b.datev < '".$db->escape($yearnext)."-".$db->escape($monthnext)."-01 00:00:00'"; $sql .= " AND b.amount > 0"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%d')"; @@ -575,7 +575,7 @@ if ($result < 0) { $sql .= " AND b.datev >= '".$db->escape($year)."-".$db->escape($month)."-01 00:00:00'"; $sql .= " AND b.datev < '".$db->escape($yearnext)."-".$db->escape($monthnext)."-01 00:00:00'"; $sql .= " AND b.amount < 0"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%d')"; @@ -649,7 +649,7 @@ if ($result < 0) { $sql .= " AND b.datev >= '".$db->escape($year)."-01-01 00:00:00'"; $sql .= " AND b.datev <= '".$db->escape($year)."-12-31 23:59:59'"; $sql .= " AND b.amount > 0"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%m');"; @@ -676,7 +676,7 @@ if ($result < 0) { $sql .= " AND b.datev >= '".$db->escape($year)."-01-01 00:00:00'"; $sql .= " AND b.datev <= '".$db->escape($year)."-12-31 23:59:59'"; $sql .= " AND b.amount < 0"; - if ($account && $_GET["option"] != 'all') { + if ($account && GETPOST("option") != 'all') { $sql .= " AND b.fk_account IN (".$db->sanitize($account).")"; } $sql .= " GROUP BY date_format(b.datev,'%m')"; @@ -748,7 +748,7 @@ if ($account) { if (!preg_match('/,/', $account)) { $moreparam = '&month='.$month.'&year='.$year.($mode == 'showalltime' ? '&mode=showalltime' : ''); - if ($_GET["option"] != 'all') { + if (GETPOST("option") != 'all') { $morehtml = ''.$langs->trans("ShowAllAccounts").''; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', '', $moreparam, 0, '', '', 1); } else { 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 bc70d27ba70..49edf3c3a1a 100644 --- a/htdocs/compta/bank/line.php +++ b/htdocs/compta/bank/line.php @@ -30,6 +30,7 @@ * \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'; @@ -37,26 +38,27 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.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"); } $id = GETPOST('rowid', 'int'); -$accountid = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('account', 'int')); +$rowid = GETPOST("rowid", 'int'); +$accountoldid = GETPOST('account', 'int'); // GETPOST('account') is old account id +$accountid = GETPOST('accountid', 'int'); // GETPOST('accountid') is new account id $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); -$rowid = GETPOST("rowid", 'int'); $orig_account = GETPOST("orig_account"); $backtopage = GETPOST('backtopage', 'alpha'); $cancel = GETPOST('cancel', 'alpha'); @@ -69,7 +71,7 @@ if ($user->socid) { $socid = $user->socid; } -$result = restrictedArea($user, 'banque', $accountid, 'bank_account'); +$result = restrictedArea($user, 'banque', $accountoldid, 'bank_account'); if (empty($user->rights->banque->lire) && empty($user->rights->banque->consolidate)) { accessforbidden(); } @@ -124,18 +126,26 @@ if ($user->rights->banque->modifier && $action == "update") { $error = 0; $acline = new AccountLine($db); - $acline->fetch($rowid); + $result = $acline->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; + } $acsource = new Account($db); - $acsource->fetch($id); + $acsource->fetch($accountoldid); $actarget = new Account($db); if (GETPOST('accountid', 'int') > 0 && !$acline->rappro && !$acline->getVentilExportCompta()) { // We ask to change bank account $actarget->fetch(GETPOST('accountid', 'int')); } else { - $actarget->fetch($id); + $actarget->fetch($accountoldid); } + if (!($actarget->id > 0)) { + setEventMessages($langs->trans("ErrorFailedToLoadBankAccount"), null, 'errors'); + $error++; + } if ($actarget->courant == Account::TYPE_CASH && GETPOST('value', 'alpha') != 'LIQ') { setEventMessages($langs->trans("ErrorCashAccountAcceptsOnlyCashMoney"), null, 'errors'); $error++; @@ -229,7 +239,7 @@ if ($user->rights->banque->consolidate && ($action == 'num_releve' || $action == $db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."bank"; - $sql .= " SET num_releve=".($num_rel ? "'".$db->escape($num_rel)."'" : "null"); + $sql .= " SET num_releve = ".($num_rel ? "'".$db->escape($num_rel)."'" : "null"); if (empty($num_rel)) { $sql .= ", rappro = 0"; } else { @@ -307,7 +317,6 @@ if ($result) { print ''; print ''; print ''; - print ''; print dol_get_fiche_head($head, 'bankline', $langs->trans('LineRecord'), 0, 'accountline', 0); @@ -326,11 +335,12 @@ if ($result) { // Bank account print ''; print ''; print ''; @@ -571,7 +581,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 diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 9b9781b31a0..48ddda5db2c 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,7 @@ $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)) { +if (isModEnabled('categorie')) { $search_category_list = GETPOST("search_category_".Categorie::TYPE_ACCOUNT."_list", "array"); } @@ -69,7 +70,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 +117,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), @@ -197,7 +198,7 @@ if (!empty($extrafields->attributes[$object->table_element]['label']) && is_arra $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (b.rowid = ef.fk_object)"; } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { $sql .= Categorie::getFilterJoinQuery(Categorie::TYPE_ACCOUNT, "b.rowid"); } @@ -209,7 +210,7 @@ if ($search_status == 'closed') { $sql .= " AND clos = 1"; } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { $sql .= Categorie::getFilterSelectQuery(Categorie::TYPE_ACCOUNT, "b.rowid", $search_category_list); } @@ -344,7 +345,7 @@ 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); } @@ -534,7 +535,7 @@ foreach ($accounts as $key => $type) { // Ref if (!empty($arrayfields['b.ref']['checked'])) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -550,7 +551,7 @@ foreach ($accounts as $key => $type) { // Account type if (!empty($arrayfields['accountype']['checked'])) { - print ''; if (!$i) { @@ -569,7 +570,7 @@ foreach ($accounts as $key => $type) { // Account number if (!empty($arrayfields['b.account_number']['checked'])) { print ''; if (!$i) { @@ -612,9 +617,18 @@ foreach ($accounts as $key => $type) { // Transactions to reconcile if (!empty($arrayfields['toreconcile']['checked'])) { - print ''; if (!$i) { @@ -668,7 +682,7 @@ foreach ($accounts as $key => $type) { } // Date modification if (!empty($arrayfields['b.tms']['checked'])) { - print ''; if (!$i) { diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index 2385f2210a5..8f5e7f29069 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -1,10 +1,11 @@ - * Copyright (C) 2004-2019 Laurent Destailleur - * Copyright (C) 2005-2013 Regis Houssin - * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2017 Patrick Delcroix - * Copyright (C) 2019 Nicolas ZABOURI +/* Copyright (C) 2001-2003 Rodolphe Quiedeville + * Copyright (C) 2004-2019 Laurent Destailleur + * Copyright (C) 2005-2013 Regis Houssin + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2017 Patrick Delcroix + * Copyright (C) 2019 Nicolas ZABOURI + * 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 @@ -26,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'; @@ -57,6 +59,8 @@ $ve = GETPOST("ve", 'alpha'); $brref = GETPOST('brref', 'alpha'); $oldbankreceipt = GETPOST('oldbankreceipt', 'alpha'); $newbankreceipt = GETPOST('newbankreceipt', 'alpha'); +$rel = GETPOST("rel", 'alphanohtml'); +$backtopage = GETPOST('backtopage', 'alpha'); // Security check $fieldid = (!empty($ref) ? $ref : $id); @@ -112,7 +116,7 @@ $contextpage = 'banktransactionlist'.(empty($object->ref) ? '' : '-'.$object->id // Define number of receipt to show (current, previous or next one ?) $found = false; -if ($_GET["rel"] == 'prev') { +if ($rel == 'prev') { // Recherche valeur pour num = numero releve precedent $sql = "SELECT DISTINCT(b.num_releve) as num"; $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; @@ -130,7 +134,7 @@ if ($_GET["rel"] == 'prev') { $found = true; } } -} elseif ($_GET["rel"] == 'next') { +} elseif ($rel == 'next') { // Recherche valeur pour num = numero releve precedent $sql = "SELECT DISTINCT(b.num_releve) as num"; $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; @@ -194,11 +198,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); @@ -225,6 +224,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'; @@ -237,10 +247,10 @@ if (empty($numref)) { $sql .= $db->order($sortfield, $sortorder); // Count total nb of records - $nbtotalofrecords = ''; + $totalnboflines = 0; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + $totalnboflines = $db->num_rows($result); } $sql .= $db->plimit($conf->liste_limit + 1, $offset); @@ -276,7 +286,7 @@ if (empty($numref)) { // If not cash account and can be reconciliate if ($user->rights->banque->consolidate) { - $buttonreconcile = ''.$titletoconciliatemanual.''; + $buttonreconcile = ''.$titletoconciliatemanual.''; } else { $buttonreconcile = ''.$titletoconciliatemanual.''; } @@ -287,7 +297,7 @@ if (empty($numref)) { if ($user->rights->banque->consolidate) { $newparam = $param; $newparam = preg_replace('/search_conciliated=\d+/i', '', $newparam); - $buttonreconcile .= ' '.$titletoconciliateauto.''; + $buttonreconcile .= ' '.$titletoconciliateauto.''; } else { $buttonreconcile .= ' '.$titletoconciliateauto.''; } @@ -399,9 +409,8 @@ if (empty($numref)) { $title = $langs->trans("AccountStatement").' '.$numref.' - '.$langs->trans("BankAccount").' '.$object->getNomUrl(1, 'receipts'); print load_fiche_titre($title, $morehtmlright, ''); - //print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, 0, $nbtotalofrecords, 'bank_account', 0, '', '', 0, 1); - print "
    "; + print ''; print ''; print ''; 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 ''; print ''; - if ($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED) { + if (getDolGlobalInt('MULTICOMPANY_INVOICE_SHARING_ENABLED')) { print ''; } print ''; @@ -295,7 +294,7 @@ if (GETPOST("account") || GETPOST("ref")) { } print ""; print ""; - if ($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED) { + if (getDolGlobalString("MULTICOMPANY_INVOICE_SHARING_ENABLED")) { if ($tmpobj->family == 'invoice') { $mc->getInfo($tmpobj->entity); print ""; diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index ab4b24e3889..0b044f8f806 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 @@ -409,7 +414,7 @@ if ($action == 'create') { 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 bbec4f23fc6..93ec0ed20dc 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,6 +24,7 @@ * \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'; @@ -35,12 +36,13 @@ 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) { $socid = $user->socid; } -$result = restrictedArea($user, 'banque', '', '', ''); $optioncss = GETPOST('optioncss', 'alpha'); @@ -76,6 +78,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'); @@ -95,19 +98,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 = ''; @@ -121,7 +111,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')); @@ -162,17 +152,22 @@ $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), ); $arrayfields = dol_sort_array($arrayfields, 'position'); +$object = new PaymentVarious($db); + +$result = restrictedArea($user, 'banque', '', '', ''); + + /* * Actions */ @@ -196,7 +191,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']) { @@ -261,8 +256,8 @@ 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); @@ -271,26 +266,26 @@ if ($search_all) { $sql .= $db->order($sortfield, $sortorder); $totalnboflines = 0; -$result = $db->query($sql); -if ($result) { - $totalnboflines = $db->num_rows($result); +$resql = $db->query($sql); +if ($resql) { + $totalnboflines = $db->num_rows($resql); } $sql .= $db->plimit($limit + 1, $offset); -$result = $db->query($sql); -if ($result) { - $num = $db->num_rows($result); +$resql = $db->query($sql); +if ($resql) { + $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) { - $obj = $db->fetch_object($result); + $obj = $db->fetch_object($resql); $id = $obj->rowid; header("Location: ".DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='.$id); exit; } // must be place behind the last "header(...)" call - llxHeader(); + llxHeader('', $langs->trans("VariousPayments")); $i = 0; $total = 0; @@ -320,8 +315,8 @@ if ($result) { 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); @@ -371,6 +366,7 @@ if ($result) { $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $moreforfilter= ''; print '
    '; 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'); @@ -777,14 +773,15 @@ if ($action == 'create') { } print '
    '.$langs->trans("ICS").' ('.$langs->trans("StandingOrder").')
    '.$form->textwithpicto($langs->trans("ICS"), $langs->trans("ICS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("StandingOrder")).')').''.$object->ics.'
    '.$langs->trans("ICS").' ('.$langs->trans("BankTransfer").')
    '.$form->textwithpicto($langs->trans("IDS"), $langs->trans("IDS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("BankTransfer")).')').''.$object->ics_transfer.'
    '.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACCOUNT, '', 'parent', 64, 0, 1); $c = new Categorie($db); @@ -984,7 +978,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).'">'; @@ -1021,7 +1015,7 @@ if ($action == 'create') { print '
    '.$langs->trans("AccountancyJournal").''; print $formaccounting->select_journal($object->fk_accountancy_journal, 'fk_accountancy_journal', 4, 1, 0, 0); @@ -1081,13 +1075,13 @@ if ($action == 'create') { print '
    '.$langs->trans($bickey).'
    '.$langs->trans("ICS").' ('.$langs->trans("StandingOrder").')
    '.$form->textwithpicto($langs->trans("ICS"), $langs->trans("ICS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("StandingOrder")).')').'
    '.$langs->trans("ICS").' ('.$langs->trans("BankTransfer").')
    '.$form->textwithpicto($langs->trans("IDS"), $langs->trans("IDS").' ('.$langs->trans("UsedFor", $langs->transnoentitiesnoconv("BankTransfer")).')').'
    '.$langs->trans("SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation").'
     
    '.$langs->trans("Account").''; - if (!$objp->rappro && !$bankline->getVentilExportCompta()) { - print img_picto('', 'bank_account', 'class="paddingright"'); - print $form->select_comptes($acct->id, 'accountid', 0, '', 0, '', 0, '', 1); - } else { + // $objp->fk_account may be not > 0 if data was lost by an old bug. In such a case, we let a chance to user to fix it. + if (($objp->rappro || $bankline->getVentilExportCompta()) && $objp->fk_account > 0) { print $acct->getNomUrl(1, 'transactions', 'reflabel'); + } else { + print img_picto('', 'bank_account', 'class="paddingright"'); + print $form->select_comptes($acct->id, 'accountid', 0, '', ($acct->id > 0 ? $acct->id : 1), '', 0, '', 1); } print '
    '.$objecttmp->getNomUrl(1).''.$objecttmp->getNomUrl(1).''; + print ''; print $objecttmp->type_lib[$objecttmp->type]; print ''; - 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 ''; @@ -586,11 +587,15 @@ foreach ($accounts as $key => $type) { // Accountancy journal if (!empty($arrayfields['b.fk_accountancy_journal']['checked'])) { - print ''; - if (!empty($conf->accounting->enabled) && !empty($objecttmp->fk_accountancy_journal)) { - $accountingjournal = new AccountingJournal($db); - $accountingjournal->fetch($objecttmp->fk_accountancy_journal); - print $accountingjournal->getNomUrl(0, 1, 1, '', 1); + print ''; + if (isModEnabled('accounting')) { + if (empty($objecttmp->fk_accountancy_journal)) { + print img_warning($langs->trans("Mandatory")); + } else { + $accountingjournal = new AccountingJournal($db); + $accountingjournal->fetch($objecttmp->fk_accountancy_journal); + print $accountingjournal->getNomUrl(0, 1, 1, '', 1); + } } else { print ''; } @@ -602,7 +607,7 @@ foreach ($accounts as $key => $type) { // Currency if (!empty($arrayfields['b.currency_code']['checked'])) { - print ''; + print ''; print $objecttmp->currency_code; print ''; - $conciliate = $objecttmp->canBeConciliated(); + + $labeltoshow = ''; + if ($conciliate == -2) { + $labeltoshow = $langs->trans("CashAccount"); + } elseif ($conciliate == -3) { + $labeltoshow = $langs->trans("Closed"); + } elseif (empty($objecttmp->rappro)) { + $labeltoshow = $langs->trans("ConciliationDisabled"); + } + + print ''; if ($conciliate == -2) { print ''.$langs->trans("CashAccount").''; } elseif ($conciliate == -3) { @@ -626,7 +640,7 @@ foreach ($accounts as $key => $type) { if ($result < 0) { setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); } else { - print ''; + print ''; print ''; print $result->nbtodo; print ''; @@ -659,7 +673,7 @@ foreach ($accounts as $key => $type) { print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['b.datec']['checked'])) { - print ''; + print ''; print dol_print_date($objecttmp->date_creation, 'dayhour'); print ''; + print ''; print dol_print_date($objecttmp->date_update, 'dayhour'); 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 98a51947c0e..32fbe92b90d 100644 --- a/htdocs/compta/bank/treso.php +++ b/htdocs/compta/bank/treso.php @@ -1,8 +1,8 @@ - * Copyright (C) 2008-2009 Laurent Destailleur (Eldy) - * Copyright (C) 2008 Raphael Bertrand (Resultic) - * Copyright (C) 2015 Marcos García + * Copyright (C) 2008-2009 Laurent Destailleur (Eldy) + * Copyright (C) 2008 Raphael Bertrand (Resultic) + * Copyright (C) 2015 Marcos García * * This program is free software; you can redistribute it and/or modify @@ -25,6 +25,7 @@ * \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'; @@ -57,11 +58,6 @@ $hookmanager->initHooks(array('banktreso', 'globalcard')); /* * View */ - -$title = $langs->trans("FinancialAccount").' - '.$langs->trans("PlannedTransactions"); -$helpurl = ""; -llxHeader('', $title, $helpurl); - $societestatic = new Societe($db); $facturestatic = new Facture($db); $facturefournstatic = new FactureFournisseur($db); @@ -85,6 +81,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); @@ -185,7 +184,7 @@ if (GETPOST("account") || GETPOST("ref")) { $solde = $object->solde(0); - if ($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED) { + if (getDolGlobalInt('MULTICOMPANY_INVOICE_SHARING_ENABLED')) { $colspan = 6; } else { $colspan = 5; @@ -199,7 +198,7 @@ if (GETPOST("account") || GETPOST("ref")) { print '
    '.$langs->trans("DateDue").''.$langs->trans("Description").''.$langs->trans("Entity").''.$langs->trans("ThirdParty").'".$ref."".$mc->label."
    '; 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 '
    '; @@ -423,7 +419,7 @@ if ($result) { // Payment type if ($arrayfields['type']['checked']) { print ''; } @@ -535,13 +531,17 @@ if ($result) { $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'maxwidthsearch '); + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'maxwidthsearch center '); print ''; $totalarray = array(); + $totalarray['nbfield'] = 0; + $totalarray['val']['total_cred'] = 0; + $totalarray['val']['total_deb'] = 0; + while ($i < min($num, $limit)) { - $obj = $db->fetch_object($result); + $obj = $db->fetch_object($resql); $variousstatic->id = $obj->rowid; $variousstatic->ref = $obj->rowid; @@ -622,7 +622,7 @@ if ($result) { $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); @@ -652,7 +652,7 @@ if ($result) { if ($arrayfields['account']['checked']) { $accountingaccount->fetch('', $obj->accountancy_code, 1); - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -660,7 +660,7 @@ if ($result) { // Accounting subledger account if ($arrayfields['subledger']['checked']) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -704,7 +704,7 @@ if ($result) { $totalarray['nbfield']++; } - print ""; + print ''."\n"; $i++; } @@ -712,11 +712,27 @@ if ($result) { // Show total line include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; - 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 '
    '.$accountingaccount->getNomUrl(0, 1, 1, '', 1).''.$accountingaccount->getNomUrl(0, 1, 1, '', 1).''.length_accounta($obj->subledger_account).''.length_accounta($obj->subledger_account).'
    "; - print ''; - print ''; + // 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 ''."\n"; + + print ''."\n"; } else { dol_print_error($db); } diff --git a/htdocs/compta/cashcontrol/cashcontrol_card.php b/htdocs/compta/cashcontrol/cashcontrol_card.php index 149710c975b..78ba0e2335e 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 @@ -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 { @@ -647,7 +648,7 @@ if (empty($action) || $action == "view" || $action == "close") { print '
    '; print ''; - print '
    >'; + print '
    '; print '
    '; print ''; @@ -659,11 +660,11 @@ if (empty($action) || $action == "view" || $action == "close") { print ''; print '"; foreach ($arrayofpaymentmode as $key => $val) { print '"; } diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php index 7822819c06a..5b764cfb730 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_list.php +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php @@ -22,6 +22,7 @@ * \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'; @@ -165,7 +166,7 @@ if (empty($reshook)) { $search[$key.'_dtend'] = ''; } } - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -269,7 +270,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 diff --git a/htdocs/compta/cashcontrol/class/cashcontrol.class.php b/htdocs/compta/cashcontrol/class/cashcontrol.class.php index 63dae3a3a1c..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); @@ -439,13 +439,6 @@ class CashControl extends CommonObject } $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; - - /* - $hookmanager->initHooks(array('myobjectdao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } else { $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); } diff --git a/htdocs/compta/cashcontrol/report.php b/htdocs/compta/cashcontrol/report.php index af61af5e836..a617c99e7af 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'; diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php index 78f9eae72a0..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); @@ -153,7 +155,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { $sql = "SELECT c.id, c.libelle as label,"; $sql .= " cs.rowid, cs.libelle, cs.fk_type as type, cs.periode, cs.date_ech, cs.amount as total,"; - $sql .= " pc.rowid as pid, pc.datep, pc.amount as totalpaye, pc.num_paiement as num_payment, pc.fk_bank,"; + $sql .= " pc.rowid as pid, pc.datep, pc.amount as totalpaid, pc.num_paiement as num_payment, pc.fk_bank,"; $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."c_chargesociales as c,"; @@ -184,8 +186,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { $num = $db->num_rows($resql); $i = 0; $total = 0; - $totalnb = 0; - $totalpaye = 0; + $totalpaid = 0; while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); @@ -204,7 +205,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print $socialcontrib->getNomUrl(1, '20'); 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 ''; print ''; $total = $total + $obj->total; - $totalnb = $totalnb + $obj->nb; - $totalpaye = $totalpaye + $obj->totalpaye; + $totalpaid = $totalpaid + $obj->totalpaid; $i++; } print ''; @@ -255,10 +255,10 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print ''; print ''; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } - print '"; + print '"; print ""; } else { dol_print_error($db); @@ -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 ''; print '"; - // Project - if (!empty($conf->projet->enabled) && is_object($object->thirdparty) && $object->thirdparty->id > 0) { - $projectid = GETPOST('projectid') ?GETPOST('projectid') : $object->fk_project; - $langs->load('projects'); - print ''; - } - // Bank account if ($object->fk_account > 0) { print ""; } + // Project + if (isModEnabled('project') && is_object($object->thirdparty) && $object->thirdparty->id > 0) { + $projectid = GETPOST('projectid') ?GETPOST('projectid') : $object->fk_project; + $langs->load('projects'); + print ''; + } + // Model pdf print ""; @@ -1115,9 +1118,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"); } @@ -1201,7 +1204,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) { @@ -1308,7 +1311,7 @@ if ($action == 'create') { print ''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled('multicurrency')) { // Multicurrency code print ''; print ''; } $out .= ''; $out .= ''; } @@ -886,6 +838,7 @@ class FormFile // Show file name with link to download $out .= ''; // Show file size @@ -986,6 +938,8 @@ class FormFile $out .= ''; + // for share link of files + $out .= ''; if ($delallowed || $printer || $morepicto) { $out .= ''; } @@ -1039,7 +993,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 @@ -1160,12 +1114,13 @@ class FormFile * @param string $sortfield Sort field ('name', 'size', 'position', ...) * @param string $sortorder Sort order ('ASC' or 'DESC') * @param int $disablemove 1=Disable move button, 0=Position move is possible. - * @param int $addfilterfields Add line with filters + * @param int $addfilterfields Add the line with filters * @param int $disablecrop Disable crop feature on images (-1 = auto, prefer to set it explicitely to 0 or 1) + * @param string $moreattrondiv More attributes on the div for responsive. Example 'style="height:280px; overflow: auto;"' * @return int <0 if KO, nb of files shown if OK * @see list_of_autoecmfiles() */ - public function list_of_documents($filearray, $object, $modulepart, $param = '', $forcedownload = 0, $relativepath = '', $permonobject = 1, $useinecm = 0, $textifempty = '', $maxlength = 0, $title = '', $url = '', $showrelpart = 0, $permtoeditline = -1, $upload_dir = '', $sortfield = '', $sortorder = 'ASC', $disablemove = 1, $addfilterfields = 0, $disablecrop = -1) + public function list_of_documents($filearray, $object, $modulepart, $param = '', $forcedownload = 0, $relativepath = '', $permonobject = 1, $useinecm = 0, $textifempty = '', $maxlength = 0, $title = '', $url = '', $showrelpart = 0, $permtoeditline = -1, $upload_dir = '', $sortfield = '', $sortorder = 'ASC', $disablemove = 1, $addfilterfields = 0, $disablecrop = -1, $moreattrondiv = '') { // phpcs:enable global $user, $conf, $langs, $hookmanager, $form; @@ -1270,7 +1225,7 @@ class FormFile print ''; } - print '
    '; + print '
    '; print '
    '.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").''; - print price($object->opening, 0, $langs, 1, -1, -1, $conf->currency); + print ''.price($object->opening, 0, $langs, 1, -1, -1, $conf->currency).''; print "
    '.$langs->trans($val).''; - print price($object->$key, 0, $langs, 1, -1, -1, $conf->currency); + print ''.price($object->$key, 0, $langs, 1, -1, -1, $conf->currency).''; print "
    '.$obj->label.''.$obj->label.''.price($obj->total).''; if ($obj->fk_bank > 0) { //$accountstatic->fetch($obj->fk_bank); @@ -239,15 +240,14 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { } // Paid print ''; - if ($obj->totalpaye) { - print price($obj->totalpaye); + if ($obj->totalpaid) { + print price($obj->totalpaid); } print '
    '.$langs->trans("Total").'   '.price($totalpaye)."'.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..cd472c270e3 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'; diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php index 33b453cd0b4..f8e5f3ba03b 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 '
    '; diff --git a/htdocs/compta/deplacement/class/deplacement.class.php b/htdocs/compta/deplacement/class/deplacement.class.php index e05750918da..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 @@ -121,12 +123,13 @@ class Deplacement extends CommonObject * * @param DoliDB $db Database handler */ - public function __construct($db) + public function __construct(DoliDB $db) { $this->db = $db; $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..a4a782de603 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'; 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 9f92cecc4a7..cae06774332 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'; @@ -158,7 +159,7 @@ if ($resql) { print ''; } print ''; - $formother->select_year($year ? $year : -1, 'year', 1, 20, 5); + print $formother->selectyear($year ? $year : -1, 'year', 1, 20, 5); print ''; print ''; diff --git a/htdocs/compta/deplacement/stats/index.php b/htdocs/compta/deplacement/stats/index.php index 7da90915b18..50848654a71 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'; diff --git a/htdocs/compta/facture/admin/facture_cust_extrafields.php b/htdocs/compta/facture/admin/facture_cust_extrafields.php index b3ca5f5f233..4268bd19fa1 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'; @@ -83,7 +84,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php b/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php index 7d2d2b1df97..d595a665daa 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'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php index 05aa47737be..0c24c6ed2b4 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'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php index 6ebdfae6277..06553dcbdcf 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'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php index 6d7f7f6010e..95073a83b9d 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'; } @@ -201,12 +202,12 @@ if (empty($reshook)) { } if (!$error) { - $object->titre = GETPOST('title', 'nohtml'); // deprecated - $object->title = GETPOST('title', 'nohtml'); + $object->titre = GETPOST('title', 'alphanohtml'); // deprecated + $object->title = GETPOST('title', 'alphanohtml'); $object->note_private = GETPOST('note_private', 'restricthtml'); $object->note_public = GETPOST('note_public', 'restricthtml'); - $object->model_pdf = GETPOST('modelpdf', 'alpha'); - $object->usenewprice = GETPOST('usenewprice', 'alpha'); + $object->model_pdf = GETPOST('modelpdf', 'alphanohtml'); + $object->usenewprice = GETPOST('usenewprice', 'alphanohtml'); $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); $object->cond_reglement_id = GETPOST('cond_reglement_id', 'int'); @@ -641,7 +642,7 @@ if (empty($reshook)) { setEventMessages($mesg, null, 'errors'); } else { // Insert line - $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); + $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, -1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); if ($result > 0) { // Define output language and generate document @@ -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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } @@ -857,11 +858,11 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } @@ -924,7 +925,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 +955,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 +991,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"); @@ -1034,21 +1035,11 @@ if ($action == 'create') { // Payment mode print "
    ".$langs->trans("PaymentMode").""; + print img_picto('', 'payment', 'class="pictofixedwidth"'); print $form->select_types_paiements(GETPOSTISSET('mode_reglement_id') ? GETPOST('mode_reglement_id', 'int') : $object->mode_reglement_id, 'mode_reglement_id', '', 0, 1, 0, 0, 1, '', 1); //$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', '', 1); print "
    '.$langs->trans('Project').''; - print img_picto('', '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 : '')).'">'.img_object($langs->trans("AddProject"), 'add').''; - print '
    ".$langs->trans('BankAccount').""; @@ -1056,10 +1047,22 @@ if ($action == 'create') { print "
    '.$langs->trans('Project').''; + print img_picto('', 'project', 'class="pictofixedwidth"'); + $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 : '')).'">'.img_object($langs->trans("AddProject"), 'add').''; + print '
    ".$langs->trans('Model').""; include_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php'; $list = ModelePDFFactures::liste_modeles($db); + print img_picto('', 'generic', 'class="pictofixedwidth"'); print $form->selectarray('modelpdf', $list, $conf->global->FACTURE_ADDON_PDF); print "
    '; @@ -1571,7 +1574,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"))); } @@ -1605,19 +1608,19 @@ if ($action == 'create') { // Lines - print ' - - - - - '; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; if (!empty($conf->use_javascript_ajax) && $object->statut == 0) { include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; } print '
    '; - print ''; + print '
    '; // Show object lines if (!empty($object->lines)) { $canchangeproduct = 1; @@ -1693,7 +1696,20 @@ if ($action == 'create') { $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); - print ''; + print ''; + print '
    '; + + $MAXEVENT = 10; + + //$morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', dol_buildpath('/mymodule/myobject_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, (is_object($object->thirdparty) ? $object->thirdparty->id : 0), 1, '', $MAXEVENT, '', $morehtmlcenter); + + print '
    '; + print ''; } } diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 10a9429fbe2..3edefe8f159 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,10 +148,10 @@ 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)); -$usercancreatemargin = $user->rights->margins->creer; -$usercanreadallmargin = $user->rights->margins->liretous; -$usercancreatewithdrarequest = $user->rights->prelevement->bons->creer; +$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); $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php $permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php @@ -272,10 +279,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id')) { $newlang = GETPOST('lang_id'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -305,7 +312,7 @@ if (empty($reshook)) { $object->fetch($id); if (!empty($conf->global-> INVOICE_CHECK_POSTERIOR_DATE)) { - $last_of_type = $object->willBeLastOfSameType(); + $last_of_type = $object->willBeLastOfSameType(true); if (empty($object->date_validation) && !$last_of_type[0]) { setEventMessages($langs->transnoentities("ErrorInvoiceIsNotLastOfSameType", $object->ref, dol_print_date($object->date, 'day'), dol_print_date($last_of_type[1], 'day')), null, 'errors'); $action = ''; @@ -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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -725,14 +732,14 @@ if (empty($reshook)) { while ($i < $num) { $objp = $db->fetch_object($result); - $totalpaye += $objp->amount; + $totalpaid += $objp->amount; $i++; } } else { dol_print_error($db, ''); } - $resteapayer = $object->total_ttc - $totalpaye; + $resteapayer = $object->total_ttc - $totalpaid; // We check that invlice lines are transferred into accountancy $ventilExportCompta = $object->getVentilExportCompta(); @@ -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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -987,6 +994,10 @@ if (empty($reshook)) { } $selectedLines = GETPOST('toselect', 'array'); + if (GETPOST('type', 'int') === '') { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); + } + $db->begin(); $error = 0; @@ -1026,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'); @@ -1079,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'); @@ -1251,10 +1262,10 @@ if (empty($reshook)) { if (GETPOST('invoiceAvoirWithPaymentRestAmount', 'int') == 1 && $id > 0) { if ($facture_source->fetch($object->fk_facture_source) > 0) { - $totalpaye = $facture_source->getSommePaiement(); + $totalpaid = $facture_source->getSommePaiement(); $totalcreditnotes = $facture_source->getSumCreditNotesUsed(); $totaldeposits = $facture_source->getSumDepositsUsed(); - $remain_to_pay = abs($facture_source->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits); + $remain_to_pay = abs($facture_source->total_ttc - $totalpaid - $totalcreditnotes - $totaldeposits); $object->addline($langs->trans('invoiceAvoirLineWithPaymentRestAmount'), $remain_to_pay, 1, 0, 0, 0, 0, 0, '', '', 'TTC'); } @@ -1571,8 +1582,15 @@ if (empty($reshook)) { 0, 0, 0, - 0 - //,$langs->trans('Deposit') //Deprecated + 0, + '', + 0, + 100, + 0, + null, + 0, + '', + 1 ); } @@ -1739,7 +1757,10 @@ if (empty($reshook)) { $array_options, $lines[$i]->situation_percent, $lines[$i]->fk_prev_id, - $lines[$i]->fk_unit + $lines[$i]->fk_unit, + 0, + '', + 1 ); if ($result > 0) { @@ -1762,9 +1783,11 @@ if (empty($reshook)) { } } + $object->update_price(1, 'auto', 0, $mysoc); + // 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; @@ -1809,9 +1832,11 @@ if (empty($reshook)) { $product->fetch(GETPOST('idprod'.$i, 'int')); $startday = dol_mktime(12, 0, 0, GETPOST('date_start'.$i.'month'), GETPOST('date_start'.$i.'day'), GETPOST('date_start'.$i.'year')); $endday = dol_mktime(12, 0, 0, GETPOST('date_end'.$i.'month'), GETPOST('date_end'.$i.'day'), GETPOST('date_end'.$i.'year')); - $result = $object->addline($product->description, $product->price, price2num(GETPOST('qty'.$i), 'MS'), $product->tva_tx, $product->localtax1_tx, $product->localtax2_tx, GETPOST('idprod'.$i, 'int'), price2num(GETPOST('remise_percent'.$i), '', 2), $startday, $endday, 0, 0, '', $product->price_base_type, $product->price_ttc, $product->type, -1, 0, '', 0, 0, null, 0, '', 0, 100, '', $product->fk_unit); + $result = $object->addline($product->description, $product->price, price2num(GETPOST('qty'.$i), 'MS'), $product->tva_tx, $product->localtax1_tx, $product->localtax2_tx, GETPOST('idprod'.$i, 'int'), price2num(GETPOST('remise_percent'.$i), '', 2), $startday, $endday, 0, 0, '', $product->price_base_type, $product->price_ttc, $product->type, -1, 0, '', 0, 0, null, 0, '', 0, 100, '', $product->fk_unit, 0, '', 1); } } + + $object->update_price(1, 'auto', 0, $mysoc); } } } @@ -1938,10 +1963,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1976,6 +2001,13 @@ if (empty($reshook)) { foreach ($object->lines as $line) { $result = $object->updateline($line->id, $line->desc, $line->subprice, $line->qty, $line->remise_percent, $line->date_start, $line->date_end, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit, $line->multicurrency_subprice); } + } elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('remiseforalllines', 'alpha') !== '' && $usercancreate) { + // Define vat_rate + $remise_percent = (GETPOST('remiseforalllines') ? GETPOST('remiseforalllines') : 0); + $remise_percent = str_replace('*', '', $remise_percent); + foreach ($object->lines as $line) { + $result = $object->updateline($line->id, $line->desc, $line->subprice, $line->qty, $remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit, $line->multicurrency_subprice); + } } elseif ($action == 'addline' && $usercancreate) { // Add a new line $langs->load('errors'); $error = 0; @@ -1983,19 +2015,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); @@ -2022,8 +2074,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. @@ -2051,7 +2103,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); @@ -2101,20 +2153,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 { @@ -2202,7 +2258,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)) { @@ -2212,9 +2268,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 @@ -2231,6 +2295,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; } @@ -2240,13 +2305,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).' '; @@ -2261,10 +2339,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -2335,10 +2413,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; @@ -2409,15 +2493,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 && ((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++; + $action = 'editline'; + } 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++; + $action = 'editline'; + } } } else { $type = GETPOST('type'); @@ -2434,8 +2531,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. @@ -2463,10 +2560,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, @@ -2474,7 +2578,7 @@ if (empty($reshook)) { $vat_rate, $localtax1_rate, $localtax2_rate, - 'HT', + $price_base_type, $info_bits, $type, GETPOST('fk_parent_line', 'int'), @@ -2494,10 +2598,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -2849,14 +2953,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); @@ -2969,7 +3075,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; } @@ -2991,7 +3097,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; } } @@ -3068,7 +3174,7 @@ if ($action == 'create') { // If thirdparty known and not a predefined invoiced without a recurring rule print ''; print ''; $formconfirm .= ''; $formconfirm .= ''; $formconfirm .= ''."\n"; @@ -5243,14 +5350,18 @@ class Form /** * Show a form to select payment conditions * - * @param int $page Page - * @param string $selected Id condition pre-selectionne - * @param string $htmlname Name of select html field - * @param int $addempty Add empty entry - * @param string $type Type ('direct-debit' or 'bank-transfer') + * @param int $page Page + * @param string $selected Id condition pre-selectionne + * @param string $htmlname Name of select html field + * @param int $addempty Add empty entry + * @param string $type Type ('direct-debit' or 'bank-transfer') + * @param int $filtertype If > 0, include payment terms with deposit percentage (for objects other than invoices and invoice templates) + * @param string $deposit_percent < 0 : deposit_percent input makes no sense (for example, in list filters) + * 0 : use default deposit percentage from entry + * > 0 : force deposit percentage (for example, from company object) * @return void */ - public function form_conditions_reglement($page, $selected = '', $htmlname = 'cond_reglement_id', $addempty = 0, $type = '') + public function form_conditions_reglement($page, $selected = '', $htmlname = 'cond_reglement_id', $addempty = 0, $type = '', $filtertype = -1, $deposit_percent = -1) { // phpcs:enable global $langs; @@ -5261,14 +5372,20 @@ class Form if ($type) { print ''; } - $this->select_conditions_paiements($selected, $htmlname, -1, $addempty, 0, ''); + print $this->getSelectConditionsPaiements($selected, $htmlname, $filtertype, $addempty, 0, '', $deposit_percent); print ''; print ''; } else { if ($selected) { $this->load_cache_conditions_paiements(); if (isset($this->cache_conditions_paiements[$selected])) { - print $this->cache_conditions_paiements[$selected]['label']; + $label = $this->cache_conditions_paiements[$selected]['label']; + + if (!empty($this->cache_conditions_paiements[$selected]['deposit_percent'])) { + $label = str_replace('__DEPOSIT_PERCENT__', $deposit_percent > 0 ? $deposit_percent : $this->cache_conditions_paiements[$selected]['deposit_percent'], $label); + } + + print $label; } else { $langs->load('errors'); print $langs->trans('ErrorNotInDictionaryPaymentConditions'); @@ -5633,6 +5750,7 @@ class Form if ($filter) { $newfilter .= ' AND ('.$filter.')'; } + // output the combo of discounts $nbqualifiedlines = $this->select_remises($selected, $htmlname, $newfilter, $socid, $maxvalue); if ($nbqualifiedlines > 0) { print '   '; + if ($useempty) { + $out .= ''; + } foreach ($langs->cache_currencies as $code_iso => $currency) { $labeltoshow = $currency['label']; if ($mode == 1) { @@ -5819,14 +5941,16 @@ class Form /** * Return array of currencies in user language * - * @param string $selected preselected currency code - * @param string $htmlname name of HTML select list - * @param integer $useempty 1=Add empty line - * @param string $filter Optional filters criteras (example: 'code <> x', ' in (1,3)') - * @param bool $excludeConfCurrency false = If company current currency not in table, we add it into list. Should always be available. true = we are in currency_rate update , we don't want to see conf->currency in select + * @param string $selected Preselected currency code + * @param string $htmlname Name of HTML select list + * @param integer $useempty 1=Add empty line + * @param string $filter Optional filters criteras (example: 'code <> x', ' in (1,3)') + * @param bool $excludeConfCurrency false = If company current currency not in table, we add it into list. Should always be available. + * true = we are in currency_rate update , we don't want to see conf->currency in select + * @param string $morecss More css * @return string */ - public function selectMultiCurrency($selected = '', $htmlname = 'multicurrency_code', $useempty = 0, $filter = '', $excludeConfCurrency = false) + public function selectMultiCurrency($selected = '', $htmlname = 'multicurrency_code', $useempty = 0, $filter = '', $excludeConfCurrency = false, $morecss = '') { global $conf, $langs; @@ -5847,7 +5971,7 @@ class Form } $out = ''; - $out .= ''; if ($useempty) { $out .= ''; } @@ -5872,6 +5996,7 @@ class Form } $out .= ''; + // Make select dynamic include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; $out .= ajax_combobox($htmlname); @@ -6107,7 +6232,7 @@ class Form } } $return .= '>'; - //if (! empty($conf->global->MAIN_VAT_SHOW_POSITIVE_RATES)) + //if (!empty($conf->global->MAIN_VAT_SHOW_POSITIVE_RATES)) if ($mysoc->country_code == 'IN' || !empty($conf->global->MAIN_VAT_LABEL_IS_POSITIVE_RATES)) { $return .= $rate['labelpositiverates']; } else { @@ -6201,24 +6326,24 @@ class Form * - local date in user area, if set_time is '' (so if set_time is '', output may differs when done from two different location) * - Empty (fields empty), if set_time is -1 (in this case, parameter empty must also have value 1) * - * @param integer $set_time Pre-selected date (must be a local PHP server timestamp), -1 to keep date not preselected, '' to use current date with 00:00 hour (Parameter 'empty' must be 0 or 2). - * @param string $prefix Prefix for fields name - * @param int $h 1 or 2=Show also hours (2=hours on a new line), -1 has same effect but hour and minutes are prefilled with 23:59 if date is empty, 3 show hour always empty - * @param int $m 1=Show also minutes, -1 has same effect but hour and minutes are prefilled with 23:59 if date is empty, 3 show minutes always empty - * @param int $empty 0=Fields required, 1=Empty inputs are allowed, 2=Empty inputs are allowed for hours only - * @param string $form_name Not used - * @param int $d 1=Show days, month, years - * @param int $addnowlink Add a link "Now", 1 with server time, 2 with local computer time - * @param int $disabled Disable input fields - * @param int $fullday When a checkbox with id #fullday is checked, hours are set with 00:00 (if value if 'fulldaystart') or 23:59 (if value is 'fulldayend') - * @param string $addplusone Add a link "+1 hour". Value must be name of another selectDate field. - * @param datetime $adddateof Add a link "Date of ..." using the following date. See also $labeladddateof for the label used. - * @param string $openinghours Specify hour start and hour end for the select ex 8,20 - * @param int $stepminutes Specify step for minutes between 1 and 30 - * @param string $labeladddateof Label to use for the $adddateof parameter. - * @param string $placeholder Placeholder - * @param mixed $gm 'auto' (for backward compatibility, avoid this), 'gmt' or 'tzserver' or 'tzuserrel' - * @return string Html for selectDate + * @param integer|string $set_time Pre-selected date (must be a local PHP server timestamp), -1 to keep date not preselected, '' to use current date with 00:00 hour (Parameter 'empty' must be 0 or 2). + * @param string $prefix Prefix for fields name + * @param int $h 1 or 2=Show also hours (2=hours on a new line), -1 has same effect but hour and minutes are prefilled with 23:59 if date is empty, 3 show hour always empty + * @param int $m 1=Show also minutes, -1 has same effect but hour and minutes are prefilled with 23:59 if date is empty, 3 show minutes always empty + * @param int $empty 0=Fields required, 1=Empty inputs are allowed, 2=Empty inputs are allowed for hours only + * @param string $form_name Not used + * @param int $d 1=Show days, month, years + * @param int $addnowlink Add a link "Now", 1 with server time, 2 with local computer time + * @param int $disabled Disable input fields + * @param int $fullday When a checkbox with id #fullday is checked, hours are set with 00:00 (if value if 'fulldaystart') or 23:59 (if value is 'fulldayend') + * @param string $addplusone Add a link "+1 hour". Value must be name of another selectDate field. + * @param datetime $adddateof Add a link "Date of ..." using the following date. See also $labeladddateof for the label used. + * @param string $openinghours Specify hour start and hour end for the select ex 8,20 + * @param int $stepminutes Specify step for minutes between 1 and 30 + * @param string $labeladddateof Label to use for the $adddateof parameter. + * @param string $placeholder Placeholder + * @param mixed $gm 'auto' (for backward compatibility, avoid this), 'gmt' or 'tzserver' or 'tzuserrel' + * @return string Html for selectDate * @see form_date(), select_month(), select_year(), select_dayofweek() */ public function selectDate($set_time = '', $prefix = 're', $h = 0, $m = 0, $empty = 0, $form_name = "", $d = 1, $addnowlink = 0, $disabled = 0, $fullday = '', $addplusone = '', $adddateof = '', $openinghours = '', $stepminutes = 1, $labeladddateof = '', $placeholder = '', $gm = 'auto') @@ -6266,6 +6391,9 @@ class Form // Analysis of the pre-selection date $reg = array(); + $shour = ''; + $smin = ''; + $ssec = ''; if (preg_match('/^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?/', $set_time, $reg)) { // deprecated usage // Date format 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM:SS' $syear = (!empty($reg[1]) ? $reg[1] : ''); @@ -6282,10 +6410,6 @@ class Form $shour = dol_print_date($set_time, "%H", $gm); $smin = dol_print_date($set_time, "%M", $gm); $ssec = dol_print_date($set_time, "%S", $gm); - } else { - $shour = ''; - $smin = ''; - $ssec = ''; } } else { // Date est '' ou vaut -1 @@ -6348,11 +6472,15 @@ class Form } elseif ($usecalendar == 'jquery') { if (!$disabled) { // Output javascript for datepicker + $minYear = getDolGlobalInt('MIN_YEAR_SELECT_DATE', (date('Y') - 100)); + $maxYear = getDolGlobalInt('MAX_YEAR_SELECT_DATE', (date('Y') + 100)); + $retstring .= "'; + } + return $retstring; } } diff --git a/htdocs/core/class/html.formaccounting.class.php b/htdocs/core/class/html.formaccounting.class.php index 67d12147a3a..10e23f3d2e4 100644 --- a/htdocs/core/class/html.formaccounting.class.php +++ b/htdocs/core/class/html.formaccounting.class.php @@ -283,7 +283,7 @@ class FormAccounting extends Form $out .= ''; //if ($user->admin && $help) $out .= info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); } else { - $out .= $langs->trans("ErrorNoAccountingCategoryForThisCountry", $mysoc->country_code); + $out = $langs->trans("ErrorNoAccountingCategoryForThisCountry", $mysoc->country_code); } } else { dol_print_error($this->db); @@ -505,6 +505,7 @@ class FormAccounting extends Form } // Build select + $out = ''; $out .= Form::selectarray($htmlname, $aux_account, $selectid, ($showempty ? (is_numeric($showempty) ? 1 : $showempty): 0), 0, 0, '', 0, 0, 0, '', $morecss, 1); //automatic filling if we give the name of the subledger_label input if (!empty($conf->use_javascript_ajax) && !empty($labelhtmlname)) { diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index 457d310492c..99003f00276 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -86,23 +86,21 @@ class FormActions select_status(); $('#select' + htmlname).change(function() { + console.log('We change field select '+htmlname); select_status(); }); - // FIXME use another method for update combobox - //$('#val' + htmlname).change(function() { - //select_status(); - //}); }); function select_status() { var defaultvalue = $('#select' + htmlname).val(); + console.log('val='+defaultvalue); var percentage = $('input[name=percentage]'); var selected = '".(isset($selected) ? dol_escape_js($selected) : '')."'; var value = (selected>0?selected:(defaultvalue>=0?defaultvalue:'')); percentage.val(value); - if (defaultvalue == -1) { + if (defaultvalue == 'na' || defaultvalue == -1) { percentage.prop('disabled', true); $('.hideifna').hide(); } @@ -131,7 +129,7 @@ class FormActions } print ''; @@ -306,7 +303,7 @@ class FormActions print ''; // Label - print ''; + print ''; // Date print ''; + print ''; } if ($max && $num > $max) { - print ''; + print ''; } print '
    '.$langs->trans('Customer').''; - print $soc->getNomUrl(1); + print $soc->getNomUrl(1, 'customer'); print ''; // Outstanding Bill $arrayoutstandingbills = $soc->getOutstandingBills(); @@ -3162,6 +3268,9 @@ if ($action == 'create') { $i++; } print ''; + + print ajax_combobox("fac_rec"); + // Option to reload page to retrieve customer informations. Note, this clear other input if (empty($conf->global->RELOAD_PAGE_ON_TEMPLATE_CHANGE_DISABLED)) { print ''; + } + return $out; } @@ -4072,7 +4155,7 @@ class Form * @param int $active Active or not, -1 = all * @param string $morecss Add more CSS on select tag * @param int $nooutput 1=Return string, do not send to output - * @return void + * @return string|void String for the HTML select component */ public function select_types_paiements($selected = '', $htmlname = 'paiementtype', $filtertype = '', $format = 0, $empty = 1, $noadmininfo = 0, $maxlength = 0, $active = 1, $morecss = '', $nooutput = 0) { @@ -4139,6 +4222,7 @@ class Form } } $out .= '>'; + $value = ''; if ($format == 0) { $value = ($maxlength ?dol_trunc($arraytypes['label'], $maxlength) : $arraytypes['label']); } elseif ($format == 1) { @@ -4299,6 +4383,7 @@ class Form print ' selected'; } print '>'; + $value = ''; if ($format == 0) { $value = ($maxlength ?dol_trunc($arraytypes['label'], $maxlength) : $arraytypes['label']); } elseif ($format == 1) { @@ -4685,7 +4770,7 @@ class Form print img_picto('', 'bank_account', 'class="pictofixedwidth"'); $nbaccountfound = $this->select_comptes($selected, $htmlname, 0, '', $addempty); if ($nbaccountfound > 0) { - print ''; + print ''; } print ''; } else { @@ -4720,7 +4805,7 @@ class Form * @param int $outputmode 0=HTML select string, 1=Array * @param int $include [=0] Removed or 1=Keep only * @param string $morecss More CSS - * @return string + * @return string|array * @see select_categories() */ public function select_all_categories($type, $selected = '', $htmlname = "parent", $maxlength = 64, $markafterid = 0, $outputmode = 0, $include = 0, $morecss = '') @@ -4830,16 +4915,19 @@ class Form * @param string $title Title * @param string $question Question * @param string $action Action - * @param array|string $formquestion An array with complementary inputs to add into forms: array(array('label'=> ,'type'=> , 'size'=>, 'morecss'=>, 'moreattr'=>)) - * type can be 'hidden', 'text', 'password', 'checkbox', 'radio', 'date', 'morecss', 'other' or 'onecolumn'... - * @param string $selectedchoice '' or 'no', or 'yes' or '1' or '0' + * @param array|string $formquestion An array with complementary inputs to add into forms: array(array('label'=> ,'type'=> , 'size'=>, 'morecss'=>, 'moreattr'=>'autofocus' or 'style=...')) + * 'type' can be 'text', 'password', 'checkbox', 'radio', 'date', 'select', 'multiselect', 'morecss', + * 'other', 'onecolumn' or 'hidden'... + * @param int|string $selectedchoice '' or 'no', or 'yes' or '1', 1, '0' or 0 * @param int|string $useajax 0=No, 1=Yes, 2=Yes but submit page with &confirm=no if choice is No, 'xxx'=Yes and preoutput confirm box with div id=dialog-confirm-xxx * @param int|string $height Force height of box (0 = auto) * @param int $width Force width of box ('999' or '90%'). Ignored and forced to 90% on smartphones. * @param int $disableformtag 1=Disable form tag. Can be used if we are already inside a
    section. + * @param string $labelbuttonyes Label for Yes + * @param string $labelbuttonno Label for No * @return string HTML ajax code if a confirm ajax popup is required, Pure HTML code if it's an html form */ - public function formconfirm($page, $title, $question, $action, $formquestion = '', $selectedchoice = '', $useajax = 0, $height = 0, $width = 500, $disableformtag = 0) + public function formconfirm($page, $title, $question, $action, $formquestion = '', $selectedchoice = '', $useajax = 0, $height = 0, $width = 500, $disableformtag = 0, $labelbuttonyes = 'Yes', $labelbuttonno = 'No') { global $langs, $conf; @@ -4867,7 +4955,10 @@ class Form foreach ($formquestion as $key => $input) { if (is_array($input) && !empty($input)) { if ($input['type'] == 'hidden') { - $more .= ''."\n"; + $moreattr = (!empty($input['moreattr']) ? ' '.$input['moreattr'] : ''); + $morecss = (!empty($input['morecss']) ? ' '.$input['morecss'] : ''); + + $more .= ''."\n"; } } } @@ -4897,7 +4988,7 @@ class Form $moreonecolumn .= $input['value']; $moreonecolumn .= ''; $moreonecolumn .= ''; - } elseif ($input['type'] == 'select') { + } elseif (in_array($input['type'], ['select', 'multiselect'])) { if (empty($morecss)) { $morecss = 'minwidth100'; } @@ -4914,12 +5005,16 @@ class Form if (!empty($input['label'])) { $more .= $input['label'].'
    '; } - $more .= $this->selectarray($input['name'], $input['values'], $input['default'], $show_empty, $key_in_label, $value_as_key, $moreattr, $translate, $maxlen, $disabled, $sort, $morecss); + if ($input['type'] == 'select') { + $more .= $this->selectarray($input['name'], $input['values'], $input['default'], $show_empty, $key_in_label, $value_as_key, $moreattr, $translate, $maxlen, $disabled, $sort, $morecss); + } else { + $more .= $this->multiselectarray($input['name'], $input['values'], is_array($input['default']) ? $input['default'] : [$input['default']], $key_in_label, $value_as_key, $morecss, $translate, $maxlen, $moreattr); + } $more .= '
    '."\n"; } elseif ($input['type'] == 'checkbox') { $more .= '
    '; $more .= '
    '.$input['label'].'
    '; - $more .= ' 
    '; } $more .= '
    '.$selval.''; + $more .= ''; $more .= '
    '."\n"; $i++; } @@ -5007,8 +5102,8 @@ class Form $autoOpen = false; $dialogconfirm .= '-'.$button; } - $pageyes = $page.(preg_match('/\?/', $page) ? '&' : '?').'action='.$action.'&confirm=yes'; - $pageno = ($useajax == 2 ? $page.(preg_match('/\?/', $page) ? '&' : '?').'confirm=no' : ''); + $pageyes = $page.(preg_match('/\?/', $page) ? '&' : '?').'action='.urlencode($action).'&confirm=yes'; + $pageno = ($useajax == 2 ? $page.(preg_match('/\?/', $page) ? '&' : '?').'action='.urlencode($action).'&confirm=no' : ''); // Add input fields into list of fields to read during submit (inputok and inputko) if (is_array($formquestion)) { @@ -5054,6 +5149,7 @@ class Form $(this).parent().find("button.ui-button:eq(2)").focus(); },'; } + $formconfirm .= ' resizable: false, height: "'.$height.'", @@ -5061,9 +5157,10 @@ class Form modal: true, closeOnEscape: false, buttons: { - "'.dol_escape_js($langs->transnoentities("Yes")).'": function() { - var options = "&token='.urlencode(newToken()).'"; + "'.dol_escape_js($langs->transnoentities($labelbuttonyes)).'": function() { + var options = "token='.urlencode(newToken()).'"; var inputok = '.json_encode($inputok).'; /* List of fields into form */ + var page = "'.dol_escape_js(!empty($page) ? $page : '').'"; var pageyes = "'.dol_escape_js(!empty($pageyes) ? $pageyes : '').'"; if (inputok.length>0) { $.each(inputok, function(i, inputname) { @@ -5080,13 +5177,19 @@ class Form options += "&" + inputname + "=" + encodeURIComponent(inputvalue); }); } - var urljump = pageyes + (pageyes.indexOf("?") < 0 ? "?" : "") + options; - if (pageyes.length > 0) { location.href = urljump; } + if (pageyes.length > 0) { + var post = $.post( + pageyes, + options, + (data) => {$("body").html(data)} + ); + } $(this).dialog("close"); }, - "'.dol_escape_js($langs->transnoentities("No")).'": function() { - var options = "&token='.urlencode(newToken()).'"; + "'.dol_escape_js($langs->transnoentities($labelbuttonno)).'": function() { + var options = "token='.urlencode(newToken()).'"; var inputko = '.json_encode($inputko).'; /* List of fields into form */ + var page = "'.dol_escape_js(!empty($page) ? $page : '').'"; var pageno="'.dol_escape_js(!empty($pageno) ? $pageno : '').'"; if (inputko.length>0) { $.each(inputko, function(i, inputname) { @@ -5097,9 +5200,13 @@ class Form options += "&" + inputname + "=" + encodeURIComponent(inputvalue); }); } - var urljump=pageno + (pageno.indexOf("?") < 0 ? "?" : "") + options; - //alert(urljump); - if (pageno.length > 0) { location.href = urljump; } + if (pageno.length > 0) { + var post = $.post( + pageno, + options, + (data) => {$("body").html(data)} + ); + } $(this).dialog("close"); } } @@ -5149,7 +5256,7 @@ class Form $formconfirm .= '
    '.$question.''; - $formconfirm .= $this->selectyesno("confirm", $newselectedchoice, 0, false, 0, 0, 'marginleftonly marginrightonly'); + $formconfirm .= $this->selectyesno("confirm", $newselectedchoice, 0, false, 0, 0, 'marginleftonly marginrightonly', $labelbuttonyes, $labelbuttonno); $formconfirm .= ''; $formconfirm .= '
    '.$label.''.$actioncomm->getNomUrl(0, 36).''.dol_print_date($actioncomm->datep, 'dayhour', 'tzuserrel'); @@ -330,11 +327,11 @@ class FormActions $cursorevent++; } } else { - print '
    '.$langs->trans("None").'
    '.$langs->trans("None").'
    '.$langs->trans("More").'...
    '.$langs->trans("More").'...
    '; diff --git a/htdocs/core/class/html.formadmin.class.php b/htdocs/core/class/html.formadmin.class.php index 9f9a096c0b9..a0d0dd2758e 100644 --- a/htdocs/core/class/html.formadmin.class.php +++ b/htdocs/core/class/html.formadmin.class.php @@ -113,7 +113,7 @@ class FormAdmin $out .= '>'.$langs->trans("AutoDetectLang").''; } - asort($langs_available); + asort($langs_available); // array('XX' => 'Language (Country)', ...) foreach ($langs_available as $key => $value) { $valuetoshow = $value; @@ -343,6 +343,8 @@ class FormAdmin print ''."\n"; } print ''; + + print ajax_combobox($htmlname); } diff --git a/htdocs/core/class/html.formbarcode.class.php b/htdocs/core/class/html.formbarcode.class.php index 8c3d84dffa4..9b2b9082a53 100644 --- a/htdocs/core/class/html.formbarcode.class.php +++ b/htdocs/core/class/html.formbarcode.class.php @@ -80,8 +80,8 @@ class FormBarCode } // We check if barcode is already selected by default - if (((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) || - (!empty($conf->societe->enabled) && $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY == $code_id)) { + if (((isModEnabled("product") || isModEnabled("service")) && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) || + (isModEnabled("societe") && $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY == $code_id)) { $disable = 'disabled'; } diff --git a/htdocs/core/class/html.formcategory.class.php b/htdocs/core/class/html.formcategory.class.php index 707b5d5d0ac..c0e07b6bb7a 100644 --- a/htdocs/core/class/html.formcategory.class.php +++ b/htdocs/core/class/html.formcategory.class.php @@ -72,7 +72,10 @@ class FormCategory extends Form { global $conf; - $sql = "SELECT cp.fk_categorie as cat_index, cat.label FROM `llx_categorie_product` as cp INNER JOIN llx_categorie as cat ON cat.rowid = cp.fk_categorie GROUP BY cp.fk_categorie;"; + $sql = "SELECT cp.fk_categorie as cat_index, cat.label"; + $sql .= " FROM ".MAIN_DB_PREFIX."categorie_product as cp"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."categorie as cat ON cat.rowid = cp.fk_categorie"; + $sql .= " GROUP BY cp.fk_categorie, cat.label"; dol_syslog(get_class($this)."::selectProductCategory", LOG_DEBUG); $resql = $this->db->query($sql); diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index f976fac978d..915a5083ce8 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -183,7 +183,7 @@ class FormCompany extends Form if (!empty($htmlname) && $user->admin) { print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } - print ''; + print ''; print ''; } @@ -234,7 +234,7 @@ class FormCompany extends Form if (!empty($htmlname) && $user->admin) { print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } - print ''; + 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 @@ -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..6267c6ff390 100644 --- a/htdocs/core/class/html.formcontract.class.php +++ b/htdocs/core/class/html.formcontract.class.php @@ -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.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 1d3faca93cb..ba9ebfd81c4 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -7,7 +7,7 @@ * Copyright (C) 2014 Marcos García * Copyright (C) 2015 Bahfir Abbes * Copyright (C) 2016-2017 Ferran Marcet - * 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 @@ -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 .= '
    '; - $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=""'); @@ -246,10 +198,10 @@ class FormFile $out .= ''.$options.''; - $out .= ' '; - $out .= ''; + $out .= ' '; + $out .= ''; + $out .= ''; $out .= '
    '; + $out .= $this->showPreview($file, $modulepart, $relativepath, 0, $param, 'paddingright')."\n"; $out .= 'trans("File").': '.$file["name"]); $out .= dol_trunc($file["name"], 150); - $out .= ''."\n"; - $out .= $this->showPreview($file, $modulepart, $relativepath, 0, $param); + $out .= ''; $out .= ''; $out .= dol_print_date($file->datea, 'dayhour'); $out .= '
    '."\n"; if (!empty($addfilterfields)) { @@ -1328,7 +1283,7 @@ class FormFile if ($file['name'] != '.' && $file['name'] != '..' && !preg_match('/\.meta$/i', $file['name'])) { - if ($filearray[$key]['rowid'] > 0) { + if (array_key_exists('rowid', $filearray[$key]) && $filearray[$key]['rowid'] > 0) { $lastrowid = $filearray[$key]['rowid']; } $filepath = $relativepath.$file['name']; @@ -1337,12 +1292,19 @@ class FormFile $nboflines++; print ''."\n"; // Do we have entry into database ? - print ''."\n"; - print ''; + + print ''."\n"; + print ''; + // File name print ''; } else { @@ -1850,7 +1808,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 } @@ -1933,7 +1891,7 @@ class FormFile print img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; print ''; } - //if (! empty($useinecm) && $useinecm != 6) print ''; //print img_view().'   '; @@ -1963,37 +1921,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 * @@ -2146,9 +2073,10 @@ class FormFile * @param string $relativepath Relative path of docs * @param integer $ruleforpicto Rule for picto: 0=Use the generic preview picto, 1=Use the picto of mime type of file). Use a negative value to show a generic picto even if preview not available. * @param string $param More param on http links + * @param string $moreclass Add more class to class style * @return string $out Output string with HTML */ - public function showPreview($file, $modulepart, $relativepath, $ruleforpicto = 0, $param = '') + public function showPreview($file, $modulepart, $relativepath, $ruleforpicto = 0, $param = '', $moreclass = '') { global $langs, $conf; @@ -2156,7 +2084,7 @@ class FormFile if ($conf->browser->layout != 'phone' && !empty($conf->use_javascript_ajax)) { $urladvancedpreview = getAdvancedPreviewUrl($modulepart, $relativepath, 1, $param); // Return if a file is qualified for preview. if (count($urladvancedpreview)) { - $out .= ''; + $out .= ''; //$out.= ''; if (empty($ruleforpicto)) { //$out.= img_picto($langs->trans('Preview').' '.$file['name'], 'detail'); diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index 0c9a1b2531a..48e6eab2484 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -4,7 +4,8 @@ * 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 * it under the terms of the GNU General Public License as published by @@ -84,7 +85,7 @@ class FormMail extends Form public $toid; /** - * @var string replyto name + * @var string Reply-to name */ public $replytoname; @@ -94,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; @@ -115,6 +121,7 @@ class FormMail extends Form * @var int|string|array */ public $withto; // Show recipient emails + public $withreplyto; /** * @var int|string 0 = Do not Show free text for recipient emails @@ -394,7 +401,7 @@ class FormMail extends Form // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && !empty($this->param['langsmodels'])) { $newlang = $this->param['langsmodels']; } if (!empty($newlang)) { @@ -421,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)); } @@ -447,6 +454,7 @@ class FormMail extends Form $out .= ''; $out .= ''; $out .= ''; + $out .= ''; } if (!empty($this->withfrom)) { if (!empty($this->withfromreadonly)) { @@ -456,7 +464,7 @@ class FormMail extends Form } foreach ($this->param as $key => $value) { if (is_array($value)) { - $out .= "\n"; + $out .= "\n"; } else { $out .= ''."\n"; } @@ -503,7 +511,7 @@ class FormMail extends Form } $out .= '   '; - $out .= ''; + $out .= ''; $out .= '   '; $out .= ''; } elseif (!empty($this->param['models']) && in_array($this->param['models'], array( @@ -583,7 +591,10 @@ class FormMail extends Form } // Add also company main email - $liste['company'] = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>'; + if (!empty($conf->global->MAIN_INFO_SOCIETE_MAIL)) { + $liste['company'] = !empty($conf->global->MAIN_INFO_SOCIETE_NOM)?$conf->global->MAIN_INFO_SOCIETE_NOM:$conf->global->MAIN_INFO_SOCIETE_MAIL; + $liste['company'].=' <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>'; + } // Add also email aliases if there is some $listaliases = array( @@ -593,7 +604,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.'>'; @@ -637,19 +648,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"; @@ -781,7 +782,11 @@ class FormMail extends Form } elseif ($this->withmaindocfile == -1) { $out .= ''; } - $out .= '
    '; + if (!empty($conf->global->MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND)) { + $out .= '
    '; + } else { + $out .= '
    '; + } } if (is_numeric($this->withfile)) { @@ -820,6 +825,11 @@ class FormMail extends Form $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)) { $out .= ''; @@ -827,7 +837,7 @@ class FormMail extends Form $out .= ''; } $out .= ' '; - $out .= ''; + $out .= ''; } } else { $out .= $this->withfile; @@ -900,6 +910,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++; } @@ -913,6 +926,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,7 +956,7 @@ class FormMail extends Form $out .= ''; } else { if (!isset($this->ckeditortoolbar)) { - $this->ckeditortoolbar = 'dolibarr_notes'; + $this->ckeditortoolbar = 'dolibarr_mailings'; } // Editor wysiwyg @@ -1052,6 +1068,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); } @@ -1060,6 +1077,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, ""); } } @@ -1087,6 +1105,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 @@ -1162,7 +1181,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 = '
    \n"; @@ -1254,9 +1276,9 @@ class FormMail extends Form * @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 Translate $outputlangs Output lang object - * @param int $id Id of template to find, 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 $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 + * @param string $label Label of template to get * @return ModelMail|integer One instance of ModelMail or -1 if error */ public function getEMailTemplate($dbs, $type_template, $user, $outputlangs, $id = 0, $active = 1, $label = '') @@ -1487,7 +1509,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 @@ -1526,13 +1548,15 @@ class FormMail extends Form if (!is_object($extrafields)) { $extrafields = new ExtraFields($this->db); } - $extrafields->fetch_name_optionals_label('product', true); $product = new Product($this->db); $product->fetch($line->fk_product, '', '', 1); $product->fetch_optionals(); - if (is_array($extrafields->attributes[$product->table_element]['label']) && count($extrafields->attributes[$product->table_element]['label']) > 0) { + + $extrafields->fetch_name_optionals_label($product->table_element, true); + + 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] : ''; } } } @@ -1584,7 +1608,8 @@ 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 @@ -1602,36 +1627,36 @@ class FormMail extends Form if ($onlinepaymentenabled && !empty($conf->global->PAYMENT_SECURITY_TOKEN)) { $tmparray['__SECUREKEYPAYMENT__'] = $conf->global->PAYMENT_SECURITY_TOKEN; if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - if ($conf->adherent->enabled) { + if (isModEnabled('adherent')) { $tmparray['__SECUREKEYPAYMENT_MEMBER__'] = 'SecureKeyPAYMENTUniquePerMember'; } - if ($conf->donation->enabled) { + if (!empty($conf->don->enabled)) { $tmparray['__SECUREKEYPAYMENT_DONATION__'] = 'SecureKeyPAYMENTUniquePerDonation'; } - if ($conf->facture->enabled) { + if (isModEnabled('facture')) { $tmparray['__SECUREKEYPAYMENT_INVOICE__'] = 'SecureKeyPAYMENTUniquePerInvoice'; } - if ($conf->commande->enabled) { + if (isModEnabled('commande')) { $tmparray['__SECUREKEYPAYMENT_ORDER__'] = 'SecureKeyPAYMENTUniquePerOrder'; } - if ($conf->contrat->enabled) { + if (isModEnabled('contrat')) { $tmparray['__SECUREKEYPAYMENT_CONTRACTLINE__'] = 'SecureKeyPAYMENTUniquePerContractLine'; } //Online payement link - if ($conf->adherent->enabled) { + if (isModEnabled('adherent')) { $tmparray['__ONLINEPAYMENTLINK_MEMBER__'] = 'OnlinePaymentLinkUniquePerMember'; } - if ($conf->donation->enabled) { + if (!empty($conf->don->enabled)) { $tmparray['__ONLINEPAYMENTLINK_DONATION__'] = 'OnlinePaymentLinkUniquePerDonation'; } - if ($conf->facture->enabled) { + if (isModEnabled('facture')) { $tmparray['__ONLINEPAYMENTLINK_INVOICE__'] = 'OnlinePaymentLinkUniquePerInvoice'; } - if ($conf->commande->enabled) { + if (isModEnabled('commande')) { $tmparray['__ONLINEPAYMENTLINK_ORDER__'] = 'OnlinePaymentLinkUniquePerOrder'; } - if ($conf->contrat->enabled) { + if (isModEnabled('contrat')) { $tmparray['__ONLINEPAYMENTLINK_CONTRACTLINE__'] = 'OnlinePaymentLinkUniquePerContractLine'; } } @@ -1662,6 +1687,8 @@ class FormMail extends Form /** * ModelMail + * + * Object of table llx_c_email_templates */ class ModelMail { @@ -1675,6 +1702,16 @@ class ModelMail */ public $label; + /** + * @var int Owner of email template + */ + public $fk_user; + + /** + * @var int Is template private + */ + public $private; + /** * @var string Model mail topic */ @@ -1687,4 +1724,14 @@ class ModelMail public $content_lines; public $lang; public $joinfiles; + + /** + * @var string Module the template is dedicated for + */ + public $module; + + /** + * @var int Position of template in a combo list + */ + public $position; } diff --git a/htdocs/core/class/html.formmargin.class.php b/htdocs/core/class/html.formmargin.class.php index f39680d1fe3..38ec91ff143 100644 --- a/htdocs/core/class/html.formmargin.class.php +++ b/htdocs/core/class/html.formmargin.class.php @@ -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 23881c0c9eb..103b370dcb0 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -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 .= ' > '; @@ -1000,7 +1005,7 @@ class FormOther 6=>$langs->trans("Day6") ); - $select_week = ''; if ($useempty) { $select_week .= ''; } @@ -1014,6 +1019,9 @@ class FormOther $select_week .= ''; } $select_week .= ''; + + $select_week .= ajax_combobox($htmlname); + return $select_week; } @@ -1080,12 +1088,14 @@ class FormOther * @param int $invert Invert * @param string $option Option * @param string $morecss More CSS + * @param bool $addjscombo Add js combo * @return string + * @deprecated */ - public function select_year($selected = '', $htmlname = 'yearid', $useempty = 0, $min_year = 10, $max_year = 5, $offset = 0, $invert = 0, $option = '', $morecss = 'valignmiddle maxwidth75imp') + public function select_year($selected = '', $htmlname = 'yearid', $useempty = 0, $min_year = 10, $max_year = 5, $offset = 0, $invert = 0, $option = '', $morecss = 'valignmiddle maxwidth75imp', $addjscombo = false) { // phpcs:enable - print $this->selectyear($selected, $htmlname, $useempty, $min_year, $max_year, $offset, $invert, $option, $morecss); + print $this->selectyear($selected, $htmlname, $useempty, $min_year, $max_year, $offset, $invert, $option, $morecss, $addjscombo); } /** @@ -1503,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; @@ -1513,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 aa7a38969be..4d34211ed17 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -56,28 +56,34 @@ class FormProjets /** * Output a combo list with projects qualified for a third party / user * - * @param int $socid Id third party (-1=all, 0=only projects not linked to a third party, id=projects not linked or linked to third party id) - * @param string $selected Id project preselected ('' or id of project) - * @param string $htmlname Name of HTML field - * @param int $maxlength Maximum length of label - * @param int $option_only Return only html options lines without the select tag - * @param int $show_empty Add an empty line - * @param int $discard_closed Discard closed projects (0=Keep, 1=hide completely, 2=Disable). Use a negative value to not show the "discarded" tooltip. - * @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 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 - * @return string Return html content + * @param int $socid Id third party (-1=all, 0=only projects not linked to a third party, id=projects not linked or linked to third party id) + * @param string|Project $selected Id of preselected project or Project (or ''). Note: If you know the ref, you can also provide it into $selected_input_value to save one request in some cases. + * @param string $htmlname Name of HTML field + * @param int $maxlength Maximum length of label + * @param int $option_only Return only html options lines without the select tag + * @param int $show_empty Add an empty line + * @param int $discard_closed Discard closed projects (0=Keep, 1=hide completely, 2=Disable). Use a negative value to not show the "discarded" tooltip. + * @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 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 + * @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 = '') { // phpcs:enable global $langs, $conf, $form; + $selected_input_value = ''; + if (is_object($selected)) { + $selected_input_value = $selected->ref; + $selected = $selected->id; + } + $out = ''; if (!empty($conf->use_javascript_ajax) && !empty($conf->global->PROJECT_USE_SEARCH_TO_SELECT)) { @@ -89,22 +95,20 @@ class FormProjets $project->fetch($selected); $selected_input_value = $project->ref; } - $urloption = 'socid='.$socid.'&htmlname='.$htmlname.'&discardclosed='.$discard_closed; + $urloption = 'socid='.((int) $socid).'&htmlname='.urlencode($htmlname).'&discardclosed='.((int) $discard_closed); + + $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 .= ''; } 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); } if ($discard_closed > 0) { - if (class_exists('Form')) { - if (!is_object($form)) { - $form = new Form($this->db); - } + if (!empty($form)) { $out .= $form->textwithpicto('', $langs->trans("ClosedProjectsAreHidden")); } } @@ -187,14 +191,9 @@ class FormProjets $resql = $this->db->query($sql); if ($resql) { - // Use select2 selector if (!empty($conf->use_javascript_ajax)) { - include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; - $comboenhancement = ajax_combobox($htmlid, array(), 0, $forcefocus); - $out .= $comboenhancement; $morecss .= ' minwidth100'; } - if (empty($option_only)) { $out .= ''; } + + // Use select2 selector + if (!empty($conf->use_javascript_ajax)) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; + $comboenhancement = ajax_combobox($htmlid, array(), 0, $forcefocus); + $out .= $comboenhancement; + $morecss .= ' minwidth100'; + } + if (empty($nooutput)) { print $out; return ''; @@ -373,9 +381,9 @@ class FormProjets if (!empty($show_empty)) { $out .= ''; } @@ -238,10 +240,24 @@ class FormSetup * saveConfFromPost * * @param bool $noMessageInUpdate display event message on errors and success - * @return void|null + * @return int -1 if KO, 1 if OK */ public function saveConfFromPost($noMessageInUpdate = false) { + global $hookmanager; + + $parameters = array(); + $reshook = $hookmanager->executeHooks('formSetupBeforeSaveConfFromPost', $parameters, $this); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) { + $this->setErrors($hookmanager->errors); + return -1; + } + + if ($reshook > 0) { + return $reshook; + } + + if (empty($this->items)) { return null; } @@ -263,11 +279,13 @@ class FormSetup if (empty($noMessageInUpdate)) { setEventMessages($this->langs->trans("SetupSaved"), null); } + return 1; } else { $this->db->rollback(); if (empty($noMessageInUpdate)) { setEventMessages($this->langs->trans("SetupNotSaved"), null, 'errors'); } + return -1; } } @@ -283,8 +301,13 @@ class FormSetup $out = ''; if ($item->enabled==1) { + $trClass = 'oddeven'; + if ($item->getType() == 'title') { + $trClass = 'liste_titre'; + } + $this->setupNotEmpty++; - $out.= ''; + $out.= ''; $out.= ''; + + if ($with_contact) { + // contact search and result + $html_contact_search = ''; + $html_contact_search .= ''; + $html_contact_search .= ''; + $html_contact_search .= ''; + $html_contact_search .= ''; + print $html_contact_search; + // contact lastname + $html_contact_lastname = ''; + $html_contact_lastname .= ''; + print $html_contact_lastname; + // contact firstname + $html_contact_firstname = ''; + $html_contact_firstname .= ''; + print $html_contact_firstname; + // company name + $html_company_name = ''; + $html_company_name .= ''; + print $html_company_name; + // contact phone + $html_contact_phone = ''; + $html_contact_phone .= ''; + print $html_contact_phone; + + // search contact form email + $langs->load('errors'); + print ''; + } } // If ticket created from another object + $subelement = ''; if (isset($this->param['origin']) && $this->param['originid'] > 0) { // Parse element/subelement (ex: project_task) $element = $subelement = $this->param['origin']; @@ -210,7 +316,7 @@ class FormTicket // Type print ''; // Group @@ -219,12 +325,12 @@ class FormTicket 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 ''; // Severity - print ''; // Subject @@ -236,15 +342,17 @@ class FormTicket print $langs->trans('SubjectAnswerToTicket').' '.$this->topic_title; print ''; } else { - if ($this->withthreadid > 0) { - $subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withthreadid.' : '.$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 ''; } } - if ($conf->knowledgemanagement->enabled) { + if (!empty($conf->knowledgemanagement->enabled)) { // KM Articles print ''; print ' @@ -309,11 +417,11 @@ class FormTicket $toolbarname = 'dolibarr_notes'; if ($this->ispublic) { $toolbarname = 'dolibarr_details'; - print '
    '.($conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE ? $conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE : $langs->trans('TicketPublicPleaseBeAccuratelyDescribe')).'
    '; + print '
    '.(getDolGlobalString("TICKET_PUBLIC_TEXT_HELP_MESSAGE", $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'))).'
    '; } include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $uselocalbrowser = true; - $doleditor = new DolEditor('message', $msg, '100%', 230, $toolbarname, 'In', true, $uselocalbrowser, $conf->global->FCKEDITOR_ENABLE_TICKET, ROWS_8, '90%'); + $doleditor = new DolEditor('message', $msg, '100%', 230, $toolbarname, 'In', true, $uselocalbrowser, getDolGlobalInt('FCKEDITOR_ENABLE_TICKET'), ROWS_8, '90%'); $doleditor->Create(); print ''; @@ -325,13 +433,13 @@ class FormTicket print ''; print ''; print ''; - print ''.img_picto($langs->trans("Refresh"), 'refresh', 'id="captcha_refresh_img"').''; + print ''.img_picto($langs->trans("Refresh"), 'refresh', 'id="captcha_refresh_img"').''; print ''; print ''; } // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $cate_arbo = $form->select_all_categories(Categorie::TYPE_TICKET, '', 'parent', 64, 0, 1); @@ -386,6 +494,11 @@ class FormTicket $out .= $langs->trans("NoAttachedFiles").'
    '; } if ($this->withfile == 2) { // Can add other files + $maxfilesizearray = getMaxFileSizeArray(); + $maxmin = $maxfilesizearray['maxmin']; + if ($maxmin > 0) { + $out .= ''; // MAX_FILE_SIZE must precede the field type=file + } $out .= ''; $out .= ' '; $out .= ''; @@ -510,7 +623,7 @@ class FormTicket } if ($subelement != 'project') { - if (!empty($conf->projet->enabled) && !$this->ispublic) { + if (isModEnabled('project') && !$this->ispublic) { $formproject = new FormProjets($this->db); print ''; - print ''; // Destinataires print ''; @@ -1381,7 +1519,7 @@ class FormTicket //$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 = new DolEditor('message', $defaultmessage, '100%', 200, $toolbarname, '', false, $uselocalbrowser, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_5, 70); $doleditor->Create(); print ''; @@ -1393,7 +1531,7 @@ class FormTicket print $form->textwithpicto('', $langs->trans("TicketMessageMailSignatureHelp"), 1, 'help'); print ''; } diff --git a/htdocs/core/class/html.formwebsite.class.php b/htdocs/core/class/html.formwebsite.class.php index 083e571cf35..c6a6826251f 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 .= ''; diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php index 9e2c45fd634..6f54229c993 100644 --- a/htdocs/core/class/ldap.class.php +++ b/htdocs/core/class/ldap.class.php @@ -234,7 +234,7 @@ class Ldap } } - if (is_resource($this->connection)) { + if (is_resource($this->connection) || is_object($this->connection)) { // Upgrade connexion to TLS, if requested by the configuration if (!empty($conf->global->LDAP_SERVER_USE_TLS)) { // For test/debug diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php index 6b45cd08f98..caeece975f2 100644 --- a/htdocs/core/class/menubase.class.php +++ b/htdocs/core/class/menubase.class.php @@ -181,21 +181,21 @@ class Menubase if (!isset($this->enabled)) { $this->enabled = '1'; } - $this->menu_handler = trim($this->menu_handler); - $this->module = trim($this->module); - $this->type = trim($this->type); - $this->mainmenu = trim($this->mainmenu); - $this->leftmenu = trim($this->leftmenu); + $this->menu_handler = trim((string) $this->menu_handler); + $this->module = trim((string) $this->module); + $this->type = trim((string) $this->type); + $this->mainmenu = trim((string) $this->mainmenu); + $this->leftmenu = trim((string) $this->leftmenu); $this->fk_menu = (int) $this->fk_menu; // If -1, fk_mainmenu and fk_leftmenu must be defined - $this->fk_mainmenu = trim($this->fk_mainmenu); - $this->fk_leftmenu = trim($this->fk_leftmenu); + $this->fk_mainmenu = trim((string) $this->fk_mainmenu); + $this->fk_leftmenu = trim((string) $this->fk_leftmenu); $this->position = (int) $this->position; - $this->url = trim($this->url); - $this->target = trim($this->target); - $this->title = trim($this->title); - $this->langs = trim($this->langs); - $this->perms = trim($this->perms); - $this->enabled = trim($this->enabled); + $this->url = trim((string) $this->url); + $this->target = trim((string) $this->target); + $this->title = trim((string) $this->title); + $this->langs = trim((string) $this->langs); + $this->perms = trim((string) $this->perms); + $this->enabled = trim((string) $this->enabled); $this->user = (int) $this->user; if (empty($this->position)) { $this->position = 0; diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php index 452d066886e..5e12a30ba0e 100644 --- a/htdocs/core/class/notify.class.php +++ b/htdocs/core/class/notify.class.php @@ -456,7 +456,7 @@ class Notify $notifcodedefid = $obj->adid; $trackid = ''; if ($obj->type_target == 'tocontactid') { - $trackid = 'con'.$obj->cid; + $trackid = 'ctc'.$obj->cid; } if ($obj->type_target == 'touserid') { $trackid = 'use'.$obj->cid; @@ -615,7 +615,7 @@ class Notify $ref = dol_sanitizeFileName($newref); $pdf_path = $dir_output."/".$ref.".pdf"; - if (!dol_is_file($pdf_path)) { + if (!dol_is_file($pdf_path)||(is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0 && !$arraydefaultmessage->joinfiles)) { // We can't add PDF as it is not generated yet. $filepdf = ''; } else { @@ -847,6 +847,7 @@ class Notify $mimefilename_list[] = $ref.".pdf"; } + $message = ''; $message .= $langs->transnoentities("YouReceiveMailBecauseOfNotification2", $application, $mysoc->name)."\n"; $message .= "\n"; $message .= $mesg; diff --git a/htdocs/core/class/rssparser.class.php b/htdocs/core/class/rssparser.class.php index c3c434d1aed..66e9241d9f5 100644 --- a/htdocs/core/class/rssparser.class.php +++ b/htdocs/core/class/rssparser.class.php @@ -49,6 +49,14 @@ class RssParser private $_lastfetchdate; // Last successful fetch private $_rssarray = array(); + private $current_namespace; + + private $initem; + private $intextinput; + private $incontent; + private $inimage; + private $inchannel; + // For parsing with xmlparser public $stack = array(); // parser stack private $_CONTENT_CONSTRUCTS = array('content', 'summary', 'info', 'title', 'tagline', 'copyright'); @@ -227,11 +235,16 @@ class RssParser } else { try { $result = getURLContent($this->_urlRSS, 'GET', '', 1, array(), array('http', 'https'), 0); + if (!empty($result['content'])) { $str = $result['content']; + } elseif (!empty($result['curl_error_msg'])) { + $this->error = 'Error retrieving URL '.$this->_urlRSS.' - '.$result['curl_error_msg']; + return -1; } } catch (Exception $e) { - print 'Error retrieving URL '.$this->_urlRSS.' - '.$e->getMessage(); + $this->error = 'Error retrieving URL '.$this->_urlRSS.' - '.$e->getMessage(); + return -2; } } @@ -247,19 +260,26 @@ class RssParser return -1; } - $xmlparser = xml_parser_create(''); - if (!is_resource($xmlparser)) { - $this->error = "ErrorFailedToCreateParser"; - return -1; - } + try { + $xmlparser = xml_parser_create(null); - xml_set_object($xmlparser, $this); - xml_set_element_handler($xmlparser, 'feed_start_element', 'feed_end_element'); - xml_set_character_data_handler($xmlparser, 'feed_cdata'); - $status = xml_parse($xmlparser, $str); - xml_parser_free($xmlparser); - $rss = $this; - //var_dump($rss->_format);exit; + if (!is_resource($xmlparser) && !is_object($xmlparser)) { + $this->error = "ErrorFailedToCreateParser"; + return -1; + } + + xml_set_object($xmlparser, $this); + xml_set_element_handler($xmlparser, 'feed_start_element', 'feed_end_element'); + xml_set_character_data_handler($xmlparser, 'feed_cdata'); + + $status = xml_parse($xmlparser, $str, false); + + xml_parser_free($xmlparser); + $rss = $this; + //var_dump($status.' '.$rss->_format);exit; + } catch (Exception $e) { + $rss = null; + } } } @@ -434,7 +454,7 @@ class RssParser // Loop on each category $itemCategory = array(); - if (is_array($item->category)) { + if (!empty($item->category) && is_array($item->category)) { foreach ($item->category as $cat) { $itemCategory[] = (string) $cat; } @@ -505,7 +525,7 @@ class RssParser * @param array $attrs Attributes of tags * @return void */ - public function feed_start_element($p, $element, &$attrs) + public function feed_start_element($p, $element, $attrs) { // phpcs:enable $el = $element = strtolower($element); @@ -672,9 +692,9 @@ class RssParser public function append_content($text) { // phpcs:enable - if ($this->initem) { + if (!empty($this->initem)) { $this->concat($this->current_item[$this->incontent], $text); - } elseif ($this->inchannel) { + } elseif (!empty($this->inchannel)) { $this->concat($this->channel[$this->incontent], $text); } } @@ -691,24 +711,24 @@ class RssParser if (!$el) { return; } - if ($this->current_namespace) { - if ($this->initem) { + if (!empty($this->current_namespace)) { + if (!empty($this->initem)) { $this->concat($this->current_item[$this->current_namespace][$el], $text); - } elseif ($this->inchannel) { + } elseif (!empty($this->inchannel)) { $this->concat($this->channel[$this->current_namespace][$el], $text); - } elseif ($this->intextinput) { + } elseif (!empty($this->intextinput)) { $this->concat($this->textinput[$this->current_namespace][$el], $text); - } elseif ($this->inimage) { + } elseif (!empty($this->inimage)) { $this->concat($this->image[$this->current_namespace][$el], $text); } } else { - if ($this->initem) { + if (!empty($this->initem)) { $this->concat($this->current_item[$el], $text); - } elseif ($this->intextinput) { + } elseif (!empty($this->intextinput)) { $this->concat($this->textinput[$el], $text); - } elseif ($this->inimage) { + } elseif (!empty($this->inimage)) { $this->concat($this->image[$el], $text); - } elseif ($this->inchannel) { + } elseif (!empty($this->inchannel)) { $this->concat($this->channel[$el], $text); } } diff --git a/htdocs/core/class/smtps.class.php b/htdocs/core/class/smtps.class.php index dbaaacc2d18..06ada5c4911 100644 --- a/htdocs/core/class/smtps.class.php +++ b/htdocs/core/class/smtps.class.php @@ -68,6 +68,11 @@ class SMTPs */ private $_smtpsPW = null; + /** + * Token in case we use OAUTH2 + */ + private $_smtpsToken = null; + /** * Who sent the Message * This can be defined via a INI file or via a setter method @@ -565,13 +570,13 @@ class SMTPs } // Default authentication method is LOGIN - if (empty($conf->global->MAIL_SMTP_AUTH_TYPE)) { - $conf->global->MAIL_SMTP_AUTH_TYPE = 'LOGIN'; + if (empty($conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE)) { + $conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE = 'LOGIN'; } // Send Authentication to Server // Check for errors along the way - switch ($conf->global->MAIL_SMTP_AUTH_TYPE) { + switch ($conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE) { case 'NONE': // Do not send the 'AUTH type' message. For test purpose, if you don't need authentication, it is better to not enter login/pass into setup. $_retVal = true; @@ -581,6 +586,16 @@ class SMTPs // The error here just means the ID/password combo doesn't work. $_retVal = $this->socket_send_str(base64_encode("\0".$this->_smtpsID."\0".$this->_smtpsPW), '235'); break; + case 'XOAUTH2': + // "user=$email\1auth=Bearer $token\1\1" + $user = $this->_smtpsID; + $token = $this->_smtpsToken; + $initRes = "user=".$user."\001auth=Bearer ".$token."\001\001"; + $_retVal = $this->socket_send_str('AUTH XOAUTH2 '.base64_encode($initRes), '235'); + if (!$_retVal) { + $this->_setErr(130, 'Error when asking for AUTH XOAUTH2'); + } + break; case 'LOGIN': // most common case default: $_retVal = $this->socket_send_str('AUTH LOGIN', '334'); @@ -590,7 +605,7 @@ class SMTPs // User name will not return any error, server will take anything we give it. $this->socket_send_str(base64_encode($this->_smtpsID), '334'); // The error here just means the ID/password combo doesn't work. - // There is not a method to determine which is the problem, ID or password + // There is no method to determine which is the problem, ID or password $_retVal = $this->socket_send_str(base64_encode($this->_smtpsPW), '235'); } break; @@ -622,7 +637,7 @@ class SMTPs // Connect to Server if ($this->socket = $this->_server_connect()) { // If a User ID *and* a password is given, assume Authentication is desired - if (!empty($this->_smtpsID) && !empty($this->_smtpsPW)) { + if (!empty($this->_smtpsID) && (!empty($this->_smtpsPW) || !empty($this->_smtpsToken))) { // Send the RFC2554 specified EHLO. $_retVal = $this->_server_authenticate(); } else { @@ -914,6 +929,27 @@ class SMTPs return $this->_smtpsPW; } + /** + * User token for OAUTH2 + * + * @param string $_strToken User token + * @return void + */ + public function setToken($_strToken) + { + $this->_smtpsToken = $_strToken; + } + + /** + * Retrieves the User token for OAUTH2 + * + * @return string User token for OAUTH2 + */ + public function getToken() + { + return $this->_smtpsToken; + } + /** * Character set used for current message * Character set is defaulted to 'iso-8859-1'; @@ -1857,7 +1893,7 @@ class SMTPs } if (!(substr($server_response, 0, 3) == $response)) { - $this->_setErr(120, "Ran into problems sending Mail.\r\nResponse: $server_response"); + $this->_setErr(120, "Ran into problems sending Mail.\r\nResponse:".$server_response); $_retVal = false; } diff --git a/htdocs/core/class/stats.class.php b/htdocs/core/class/stats.class.php index ae9a8e56e58..63125fffd9f 100644 --- a/htdocs/core/class/stats.class.php +++ b/htdocs/core/class/stats.class.php @@ -33,6 +33,13 @@ abstract class Stats protected $lastfetchdate = array(); // Dates of cache file read by methods public $cachefilesuffix = ''; // Suffix to add to name of cache file (to avoid file name conflicts) + /** + * @param int $year number + * @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 int value + */ + protected abstract function getNbByMonth($year, $format = 0); + /** * Return nb of elements by month for several years * @@ -123,6 +130,13 @@ abstract class Stats return $data; } + /** + * @param int $year year number + * @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 int value + */ + protected abstract function getAmountByMonth($year, $format = 0); + /** * Return amount of elements by month for several years. * Criterias used to build request are defined into the constructor of parent class into xxx/class/xxxstats.class.php @@ -219,6 +233,12 @@ abstract class Stats return $data; } + /** + * @param int $year year number + * @return int value + */ + protected abstract function getAverageByMonth($year); + /** * Return average of entity by month for several years * @@ -460,7 +480,6 @@ abstract class Stats return $data; } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Return the amount per month for a given year diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 27f3ca1c836..29db15e0a0b 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -637,7 +637,11 @@ class Translate ); if (strpos($key, 'Format') !== 0) { - $str = sprintf($str, $param1, $param2, $param3, $param4); // Replace %s and %d except for FormatXXX strings. + try { + $str = sprintf($str, $param1, $param2, $param3, $param4); // Replace %s and %d except for FormatXXX strings. + } catch (Exception $e) { + // No exception managed + } } // Crypt string into HTML @@ -904,11 +908,11 @@ class Translate * This function need module "numberwords" to be installed. If not it will return * same number (this module is not provided by default as it use non GPL source code). * - * @param int $number Number to encode in full text - * @param string $isamount ''=it's just a number, '1'=It's an amount (default currency), 'currencycode'=It's an amount (foreign currency) - * @return string Label translated in UTF8 (but without entities) - * 10 if setDefaultLang was en_US => ten - * 123 if setDefaultLang was fr_FR => cent vingt trois + * @param int|string $number Number to encode in full text + * @param string $isamount ''=it's just a number, '1'=It's an amount (default currency), 'currencycode'=It's an amount (foreign currency) + * @return string Label translated in UTF8 (but without entities) + * 10 if setDefaultLang was en_US => ten + * 123 if setDefaultLang was fr_FR => cent vingt trois */ public function getLabelFromNumber($number, $isamount = '') { @@ -1089,11 +1093,12 @@ class Translate $i = 0; while ($i < $num) { $obj = $db->fetch_object($resql); - - // Si traduction existe, on l'utilise, sinon on prend le libelle par defaut - $this->cache_currencies[$obj->code_iso]['label'] = ($obj->code_iso && $this->trans("Currency".$obj->code_iso) != "Currency".$obj->code_iso ? $this->trans("Currency".$obj->code_iso) : ($obj->label != '-' ? $obj->label : '')); - $this->cache_currencies[$obj->code_iso]['unicode'] = (array) json_decode($obj->unicode, true); - $label[$obj->code_iso] = $this->cache_currencies[$obj->code_iso]['label']; + if ($obj) { + // If a translation exists, we use it lese we use the default label + $this->cache_currencies[$obj->code_iso]['label'] = ($obj->code_iso && $this->trans("Currency".$obj->code_iso) != "Currency".$obj->code_iso ? $this->trans("Currency".$obj->code_iso) : ($obj->label != '-' ? $obj->label : '')); + $this->cache_currencies[$obj->code_iso]['unicode'] = (array) json_decode($obj->unicode, true); + $label[$obj->code_iso] = $this->cache_currencies[$obj->code_iso]['label']; + } $i++; } if (empty($currency_code)) { diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php index f3d46e09f30..f15d9f4d732 100644 --- a/htdocs/core/class/utils.class.php +++ b/htdocs/core/class/utils.class.php @@ -52,8 +52,8 @@ class Utils * Purge files into directory of data files. * CAN BE A CRON TASK * - * @param string $choices Choice of purge mode ('tempfiles', 'tempfilesold' to purge temp older than $nbsecondsold seconds, 'logfiles', or mix of this). Note 'allfiles' is possible too but very dangerous. - * @param int $nbsecondsold Nb of seconds old to accept deletion of a directory if $choice is 'tempfilesold' + * @param string $choices Choice of purge mode ('tempfiles', 'tempfilesold' to purge temp older than $nbsecondsold seconds, 'logfiles', or mix of this). Note that 'allfiles' is also possible but very dangerous. + * @param int $nbsecondsold Nb of seconds old to accept deletion of a directory if $choice is 'tempfilesold', or deletion of file if $choice is 'allfiles' * @return int 0 if OK, < 0 if KO (this function is used also by cron so only 0 is OK) */ public function purgeFiles($choices = 'tempfilesold+logfiles', $nbsecondsold = 86400) @@ -67,6 +67,9 @@ class Utils if (empty($choices)) { $choices = 'tempfilesold+logfiles'; } + if ($choices == 'allfiles' && $nbsecondsold > 0) { + $choices = 'allfilesold'; + } dol_syslog("Utils::purgeFiles choice=".$choices, LOG_DEBUG); @@ -77,6 +80,7 @@ class Utils $choicesarray = preg_split('/[\+,]/', $choices); foreach ($choicesarray as $choice) { + $now = dol_now(); $filesarray = array(); if ($choice == 'tempfiles' || $choice == 'tempfilesold') { @@ -85,7 +89,6 @@ class Utils $filesarray = dol_dir_list($dolibarr_main_data_root, "directories", 1, '^temp$', '', 'name', SORT_ASC, 2, 0, '', 1); // Do not follow symlinks if ($choice == 'tempfilesold') { - $now = dol_now(); foreach ($filesarray as $key => $val) { if ($val['date'] > ($now - ($nbsecondsold))) { unset($filesarray[$key]); // Discard temp dir not older than $nbsecondsold @@ -98,7 +101,14 @@ class Utils if ($choice == 'allfiles') { // Delete all files (except install.lock, do not follow symbolic links) if ($dolibarr_main_data_root) { - $filesarray = dol_dir_list($dolibarr_main_data_root, "all", 0, '', 'install\.lock$', 'name', SORT_ASC, 0, 0, '', 1); + $filesarray = dol_dir_list($dolibarr_main_data_root, "all", 0, '', 'install\.lock$', 'name', SORT_ASC, 0, 0, '', 1); // No need to use recursive, we will delete directory + } + } + + if ($choice == 'allfilesold') { + // Delete all files (except install.lock, do not follow symbolic links) + if ($dolibarr_main_data_root) { + $filesarray = dol_dir_list($dolibarr_main_data_root, "files", 1, '', 'install\.lock$', 'name', SORT_ASC, 0, 0, '', 1, $nbsecondsold); // No need to use recursive, we will delete directory } } @@ -138,14 +148,16 @@ class Utils $countdeleted += $tmpcountdeleted; } } elseif ($filesarray[$key]['type'] == 'file') { - // If (file that is not logfile) or (if mode is logfile) - if ($filesarray[$key]['fullname'] != $filelog || $choice == 'logfile' || $choice == 'logfiles') { - $result = dol_delete_file($filesarray[$key]['fullname'], 1, 1); - if ($result) { - $count++; - $countdeleted++; - } else { - $counterror++; + if ($choice != 'allfilesold' || $filesarray[$key]['date'] < ($now - $nbsecondsold)) { + // If (file that is not logfile) or (if mode is logfile) + if ($filesarray[$key]['fullname'] != $filelog || $choice == 'logfile' || $choice == 'logfiles') { + $result = dol_delete_file($filesarray[$key]['fullname'], 1, 1); + if ($result) { + $count++; + $countdeleted++; + } else { + $counterror++; + } } } } @@ -233,7 +245,7 @@ class Utils $prefix = 'pg_dump'; $ext = 'sql'; } - $file = $prefix.'_'.$dolibarr_main_db_name.'_'.dol_sanitizeFileName(DOL_VERSION).'_'.strftime("%Y%m%d%H%M").'.'.$ext; + $file = $prefix.'_'.$dolibarr_main_db_name.'_'.dol_sanitizeFileName(DOL_VERSION).'_'.dol_print_date(dol_now('gmt'), "dayhourlogsmall", 'tzuser').'.'.$ext; } $outputdir = $conf->admin->dir_output.'/backup'; @@ -276,7 +288,7 @@ class Utils $param = $dolibarr_main_db_name." -h ".$dolibarr_main_db_host; $param .= " -u ".$dolibarr_main_db_user; if (!empty($dolibarr_main_db_port)) { - $param .= " -P ".$dolibarr_main_db_port; + $param .= " -P ".$dolibarr_main_db_port." --protocol=tcp"; } if (GETPOST("use_transaction", "alpha")) { $param .= " --single-transaction"; @@ -342,7 +354,7 @@ class Utils $handle = ''; - $lowmemorydump = GETPOSTISSET("lowmemorydump", "alpha") ? GETPOST("lowmemorydump") : getDolGlobalString('MAIN_LOW_MEMORY_DUMP'); + $lowmemorydump = GETPOSTISSET("lowmemorydump") ? GETPOST("lowmemorydump") : getDolGlobalString('MAIN_LOW_MEMORY_DUMP'); // Start call method to execute dump $fullcommandcrypted = $command." ".$paramcrypted." 2>&1"; @@ -614,7 +626,7 @@ class Utils //if ($compression == 'bz') $paramcrypted = $param; $paramclear = $param; - /*if (! empty($dolibarr_main_db_pass)) + /*if (!empty($dolibarr_main_db_pass)) { $paramcrypted.=" -W".preg_replace('/./i','*',$dolibarr_main_db_pass); $paramclear.=" -W".$dolibarr_main_db_pass; @@ -652,7 +664,7 @@ class Utils * @param string $outputfile A path for an output file (used only when method is 2). For example: $conf->admin->dir_temp.'/out.tmp'; * @param int $execmethod 0=Use default method (that is 1 by default), 1=Use the PHP 'exec', 2=Use the 'popen' method * @param string $redirectionfile If defined, a redirection of output to this file is added. - * @param int $noescapecommand 1=Do not escape command. Warning: Using this parameter need you alreay sanitized the command. if not, it will lead to security vulnerability. + * @param int $noescapecommand 1=Do not escape command. Warning: Using this parameter needs you alreay have sanitized the command. if not, it will lead to security vulnerability. * This parameter is provided for backward compatibility with external modules. Always use 0 in core. * @param string $redirectionfileerr If defined, a redirection of error is added to this file instead of to channel 1. * @return array array('result'=>...,'output'=>...,'error'=>...). result = 0 means OK. @@ -952,7 +964,7 @@ class Utils dol_include_once('/core/lib/files.lib.php'); - $nbSaves = empty($conf->global->SYSLOG_FILE_SAVES) ? 10 : intval($conf->global->SYSLOG_FILE_SAVES); + $nbSaves = intval(getDolGlobalString('SYSLOG_FILE_SAVES', 10)); if (empty($conf->global->SYSLOG_FILE)) { $mainlogdir = DOL_DATA_ROOT; @@ -1334,4 +1346,74 @@ class Utils return $result; } } + + /** + * Clean unfinished cronjob in processing when pid is no longer present in the system + * CAN BE A CRON TASK + * + * @return int 0 if OK, < 0 if KO (this function is used also by cron so only 0 is OK) + * @throws Exception + */ + public function cleanUnfinishedCronjob() + { + global $db, $user; + dol_syslog("Utils::cleanUnfinishedCronjob Starting cleaning"); + + // Import Cronjob class if not present + dol_include_once('/cron/class/cronjob.class.php'); + + // Get this job object + $this_job = new Cronjob($db); + $this_job->fetch(-1, 'Utils', 'cleanUnfinishedCronjob'); + if (empty($this_job->id) || !empty($this_job->error)) { + dol_syslog("Utils::cleanUnfinishedCronjob Unable to fetch himself: ".$this_job->error, LOG_ERR); + return -1; + } + + // Set this job processing to 0 to avoid being locked by his processing state + $this_job->processing = 0; + if ($this_job->update($user) < 0) { + dol_syslog("Utils::cleanUnfinishedCronjob Unable to update himself: ".implode(', ', $this_job->errors), LOG_ERR); + return -1; + } + + $cron_job = new Cronjob($db); + $cron_job->fetchAll('DESC', 't.rowid', 100, 0, 1, '', 1); // Fetch jobs that are currently running + + // Iterate over all jobs in processing (this can't be this job since his state is set to 0 before) + foreach ($cron_job->lines as $job_line) { + // Avoid job with no PID + if (empty($job_line->pid)) { + dol_syslog("Utils::cleanUnfinishedCronjob Cronjob ".$job_line->id." don't have a PID", LOG_DEBUG); + continue; + } + + $job = new Cronjob($db); + $job->fetch($job_line->id); + if (empty($job->id) || !empty($job->error)) { + dol_syslog("Utils::cleanUnfinishedCronjob Cronjob ".$job_line->id." can't be fetch: ".$job->error, LOG_ERR); + continue; + } + + // Calling posix_kill with the 0 kill signal will return true if the process is running, false otherwise. + if (! posix_kill($job->pid, 0)) { + // Clean processing and pid values + $job->processing = 0; + $job->pid = null; + + // Set last result as an error and add the reason on the last output + $job->lastresult = -1; + $job->lastoutput = 'Job killed by job cleanUnfinishedCronjob'; + + if ($job->update($user) < 0) { + dol_syslog("Utils::cleanUnfinishedCronjob Cronjob ".$job_line->id." can't be updated: ".implode(', ', $job->errors), LOG_ERR); + continue; + } + dol_syslog("Utils::cleanUnfinishedCronjob Cronjob ".$job_line->id." cleaned"); + } + } + + dol_syslog("Utils::cleanUnfinishedCronjob Cleaning completed"); + return 0; + } } diff --git a/htdocs/core/class/utils_diff.class.php b/htdocs/core/class/utils_diff.class.php index e18418d78a6..2925bffc3b6 100644 --- a/htdocs/core/class/utils_diff.class.php +++ b/htdocs/core/class/utils_diff.class.php @@ -12,6 +12,7 @@ /** * A class containing functions for computing diffs and formatting the output. + * We can compare 2 strings or 2 files (as one string or line by line) */ class Diff { @@ -236,7 +237,7 @@ class Diff * within 'span' elements, deletions are contained within 'del' elements, and * insertions are contained within 'ins' elements. The parameters are: * - * @param string $diff the diff array + * @param array $diff the diff array * @param string $separator the separator between lines; this optional parameter defaults to '
    ' * @return string HTML string */ @@ -246,6 +247,7 @@ class Diff $html = ''; // loop over the lines in the diff + $element = 'unknown'; foreach ($diff as $line) { // extend the HTML with the line switch ($line[1]) { @@ -259,10 +261,7 @@ class Diff $element = 'ins'; break; } - $html .= - '<'.$element.'>' - . htmlspecialchars($line[0]) - . ''; + $html .= '<'.$element.'>'.dol_escape_htmltag($line[0]).''; // extend the HTML with the separator $html .= $separator; @@ -275,7 +274,7 @@ class Diff /** * Returns a diff as an HTML table. The parameters are: * - * @param string $diff the diff array + * @param array $diff the diff array * @param string $indentation indentation to add to every line of the generated HTML; this optional parameter defaults to '' * @param string $separator the separator between lines; this optional parameter defaults to '
    ' * @return string HTML string @@ -285,9 +284,12 @@ class Diff // initialise the HTML $html = $indentation."
    '; + // Preview link + if (!$editline) { + print $this->showPreview($file, $modulepart, $filepath, 0, '&entity='.(!empty($object->entity) ? $object->entity : $conf->entity), 'paddingright') . "\n"; + } + // Show file name with link to download //print "XX".$file['name']; //$file['name'] must be utf8 print '\n"; @@ -1466,7 +1424,7 @@ class FormFile print ''; if ($useinecm == 1 || $useinecm == 5) { // ECM manual tree only // $section is inside $param - $newparam .= preg_replace('/&file=.*$/', '', $param); // We don't need param file= + $newparam = preg_replace('/&file=.*$/', '', $param); // We don't need param file= $backtopage = DOL_URL_ROOT.'/ecm/index.php?§ion_dir='.urlencode($relativepath).$newparam; print ''.img_edit('default', 0, 'class="paddingrightonly"').''; } @@ -1481,7 +1439,7 @@ class FormFile if ($permtoeditline) { // Link to resize $moreparaminurl = ''; - if ($object->id > 0) { + if (!empty($object->id) && $object->id > 0) { $moreparaminurl = '&id='.$object->id; } elseif (GETPOST('website', 'alpha')) { $moreparaminurl = '&website='.GETPOST('website', 'alpha'); @@ -1514,10 +1472,10 @@ class FormFile if ($nboffiles > 1 && $conf->browser->layout != 'phone') { print ''; 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 '
    '.$langs->trans("MailErrorsTo").''; $out .= ''; @@ -1202,6 +1221,9 @@ class FormMail extends Form if (!empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_INVOICE) && !empty($this->param['models']) && $this->param['models'] == 'facture_send') { $defaultvaluefordeliveryreceipt = 1; } + 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 .= "
    ' . $langs->trans('MarginOnProducts') . '
    ' . $langs->trans('MarginOnServices') . '' . price($marginInfo['pv_services']) . '
    ' . $langs->trans('TotalMargin') . '' . price($marginInfo['pv_total']) . '
    '; $out.= ''; @@ -399,7 +422,7 @@ class FormSetup if (!array($this->items)) { return false; } foreach ($this->items as $item) { - $item->reloadValueFromConf(); + $item->loadValueFromConf(); } return true; @@ -564,8 +587,11 @@ class FormSetupItem /** @var string $fieldValue */ public $fieldValue; + /** @var string $defaultFieldValue */ + public $defaultFieldValue = null; + /** @var array $fieldAttr fields attribute only for compatible fields like input text */ - public $fieldAttr; + public $fieldAttr = array(); /** @var bool|string set this var to override field output will override $fieldInputOverride and $fieldOutputOverride too */ public $fieldOverride = false; @@ -579,6 +605,15 @@ class FormSetupItem /** @var int $rank */ public $rank = 0; + /** @var array set this var for options on select and multiselect items */ + public $fieldOptions = array(); + + /** @var callable $saveCallBack */ + public $saveCallBack; + + /** @var callable $setValueFromPostCallBack */ + public $setValueFromPostCallBack; + /** * @var string $errors */ @@ -616,17 +651,33 @@ class FormSetupItem $this->entity = $conf->entity; $this->confKey = $confKey; - $this->fieldValue = $conf->global->{$this->confKey}; + $this->loadValueFromConf(); } /** - * reload conf value from databases - * @return null + * load conf value from databases + * @return bool + */ + public function loadValueFromConf() + { + global $conf; + if (isset($conf->global->{$this->confKey})) { + $this->fieldValue = $conf->global->{$this->confKey}; + return true; + } else { + $this->fieldValue = null; + return false; + } + } + + /** + * reload conf value from databases is an aliase of loadValueFromConf + * @deprecated + * @return bool */ public function reloadValueFromConf() { - global $conf; - $this->fieldValue = $conf->global->{$this->confKey}; + return $this->loadValueFromConf(); } @@ -636,6 +687,24 @@ class FormSetupItem */ public function saveConfValue() { + global $hookmanager; + + $parameters = array(); + $reshook = $hookmanager->executeHooks('formSetupBeforeSaveConfValue', $parameters, $this); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) { + $this->setErrors($hookmanager->errors); + return -1; + } + + if ($reshook > 0) { + return $reshook; + } + + + if (!empty($this->saveCallBack) && is_callable($this->saveCallBack)) { + return call_user_func($this->saveCallBack, $this); + } + // Modify constant only if key was posted (avoid resetting key to the null value) if ($this->type != 'title') { $result = dolibarr_set_const($this->db, $this->confKey, $this->fieldValue, 'chaine', 0, '', $this->entity); @@ -647,6 +716,25 @@ class FormSetupItem } } + /** + * Set an override function for saving data + * @param callable $callBack a callable function + * @return void + */ + public function setSaveCallBack(callable $callBack) + { + $this->saveCallBack = $callBack; + } + + /** + * Set an override function for get data from post + * @param callable $callBack a callable function + * @return void + */ + public function setValueFromPostCallBack(callable $callBack) + { + $this->setValueFromPostCallBack = $callBack; + } /** * Save const value based on htdocs/core/actions_setmoduleoptions.inc.php @@ -654,6 +742,10 @@ class FormSetupItem */ public function setValueFromPost() { + if (!empty($this->setValueFromPostCallBack) && is_callable($this->setValueFromPostCallBack)) { + return call_user_func($this->setValueFromPostCallBack); + } + // Modify constant only if key was posted (avoid resetting key to the null value) if ($this->type != 'title') { if (preg_match('/category:/', $this->type)) { @@ -662,6 +754,13 @@ class FormSetupItem } else { $val_const = GETPOST($this->confKey, 'int'); } + } elseif ($this->type == 'multiselect') { + $val = GETPOST($this->confKey, 'array'); + if ($val && is_array($val)) { + $val_const = implode(',', $val); + } + } elseif ($this->type == 'html') { + $val_const = GETPOST($this->confKey, 'restricthtml'); } else { $val_const = GETPOST($this->confKey, 'alpha'); } @@ -711,6 +810,12 @@ class FormSetupItem return $this->fieldInputOverride; } + // Set default value + if (is_null($this->fieldValue)) { + $this->fieldValue = $this->defaultFieldValue; + } + + $this->fieldAttr['name'] = $this->confKey; $this->fieldAttr['id'] = 'setup-'.$this->confKey; $this->fieldAttr['value'] = $this->fieldValue; @@ -719,12 +824,22 @@ class FormSetupItem if ($this->type == 'title') { $out.= $this->generateOutputField(); // title have no input + } elseif ($this->type == 'multiselect') { + $out.= $this->generateInputFieldMultiSelect(); + } elseif ($this->type == 'select') { + $out.= $this->generateInputFieldSelect(); } elseif ($this->type == 'textarea') { $out.= $this->generateInputFieldTextarea(); } elseif ($this->type== 'html') { $out.= $this->generateInputFieldHtml(); + } 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)) { @@ -736,19 +851,27 @@ 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); } } else { - if (empty($this->fieldAttr)) { $this->fieldAttr['class'] = 'flat '.(empty($this->cssClass) ? 'minwidth200' : $this->cssClass); } - - $out.= 'fieldAttr).' />'; + $out.= $this->generateInputFieldText(); } return $out; } + /** + * generatec default input field + * @return string + */ + public function generateInputFieldText() + { + if (empty($this->fieldAttr)) { $this->fieldAttr['class'] = 'flat '.(empty($this->cssClass) ? 'minwidth200' : $this->cssClass); } + return 'fieldAttr).' />'; + } + /** * generate input field for textarea * @return string @@ -833,24 +956,37 @@ 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; } + + /** + * @return string + */ + public function generateInputFieldMultiSelect() + { + $TSelected = array(); + if ($this->fieldValue) { + $TSelected = explode(',', $this->fieldValue); + } + + return $this->form->multiselectarray($this->confKey, $this->fieldOptions, $TSelected, 0, 0, '', 0, 0, 'style="min-width:100px"'); + } + + + /** + * @return string + */ + public function generateInputFieldSelect() + { + return $this->form->selectarray($this->confKey, $this->fieldOptions, $this->fieldValue); + } + /** * get the type : used for old module builder setup conf style conversion and tests * because this two class will quickly evolve it's important to not set or get directly $this->type (will be protected) so this method exist @@ -900,7 +1036,7 @@ class FormSetupItem */ public function generateOutputField() { - global $conf, $user; + global $conf, $user, $langs; if (!empty($this->fieldOverride)) { return $this->fieldOverride; @@ -916,10 +1052,24 @@ class FormSetupItem // nothing to do } elseif ($this->type == 'textarea') { $out.= dol_nl2br($this->fieldValue); + } elseif ($this->type == 'multiselect') { + $out.= $this->generateOutputFieldMultiSelect(); + } elseif ($this->type == 'select') { + $out.= $this->generateOutputFieldSelect(); } elseif ($this->type== 'html') { $out.= $this->fieldValue; + } 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); @@ -932,6 +1082,7 @@ class FormSetupItem } $out.= $this->langs->trans($template->label); } elseif (preg_match('/category:/', $this->type)) { + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $c = new Categorie($this->db); $result = $c->fetch($this->fieldValue); if ($result < 0) { @@ -954,6 +1105,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) { @@ -969,6 +1121,57 @@ class FormSetupItem } + /** + * @return string + */ + public function generateOutputFieldMultiSelect() + { + $outPut = ''; + $TSelected = array(); + if (!empty($this->fieldValue)) { + $TSelected = explode(',', $this->fieldValue); + } + + if (!empty($TSelected)) { + foreach ($TSelected as $selected) { + if (!empty($this->fieldOptions[$selected])) { + $outPut.= dolGetBadge('', $this->fieldOptions[$selected], 'info').' '; + } + } + } + return $outPut; + } + + /** + * @return string + */ + public function generateOutputFieldColor() + { + $this->fieldAttr['disabled']=null; + return $this->generateInputField(); + } + /** + * @return string + */ + public function generateInputFieldColor() + { + $this->fieldAttr['type']= 'color'; + return $this->generateInputFieldText(); + } + + /** + * @return string + */ + public function generateOutputFieldSelect() + { + $outPut = ''; + if (!empty($this->fieldOptions[$this->fieldValue])) { + $outPut = $this->fieldOptions[$this->fieldValue]; + } + + return $outPut; + } + /* * METHODS FOR SETTING DISPLAY TYPE */ @@ -983,6 +1186,16 @@ class FormSetupItem return $this; } + /** + * Set type of input as color + * @return self + */ + public function setAsColor() + { + $this->type = 'color'; + return $this; + } + /** * Set type of input as textarea * @return self @@ -1076,4 +1289,37 @@ class FormSetupItem $this->type = 'title'; return $this; } + + + /** + * Set type of input as a simple title + * no data to store + * @param array $fieldOptions A table of field options + * @return self + */ + public function setAsMultiSelect($fieldOptions) + { + if (is_array($fieldOptions)) { + $this->fieldOptions = $fieldOptions; + } + + $this->type = 'multiselect'; + return $this; + } + + /** + * Set type of input as a simple title + * no data to store + * @param array $fieldOptions A table of field options + * @return self + */ + public function setAsSelect($fieldOptions) + { + if (is_array($fieldOptions)) { + $this->fieldOptions = $fieldOptions; + } + + $this->type = 'select'; + return $this; + } } diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index aba62587fa1..7c5007ddca2 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -47,6 +47,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; /** @@ -73,6 +76,8 @@ class FormTicket public $ispublic; // To show information or not into public form public $withtitletopic; + public $withtopicreadonly; + public $withreadid; public $withcompany; // affiche liste déroulante company public $withfromsocid; public $withfromcontactid; @@ -84,6 +89,11 @@ class FormTicket public $withcancel; + public $type_code; + public $category_code; + public $severity_code; + + /** * * @var array $substit Substitutions @@ -110,10 +120,10 @@ class FormTicket $this->action = 'add'; - $this->withcompany = $conf->societe->enabled ? 1 : 0; + $this->withcompany = isModEnabled("societe"); $this->withfromsocid = 0; $this->withfromcontactid = 0; - //$this->withthreadid=0; + //$this->withreadid=0; //$this->withtitletopic=''; $this->withnotifytiersatcreate = 0; $this->withusercreate = 1; @@ -127,12 +137,13 @@ class FormTicket /** * Show the form to input ticket * - * @param int $withdolfichehead With dol_get_fiche_head() and dol_get_fiche_end() - * @param string $mode Mode ('create' or 'edit') - * @param int $public 1=If we show the form for the public interface + * @param int $withdolfichehead With dol_get_fiche_head() and dol_get_fiche_end() + * @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 * @return void */ - public function showForm($withdolfichehead = 0, $mode = 'edit', $public = 0) + public function showForm($withdolfichehead = 0, $mode = 'edit', $public = 0, Contact $with_contact = null) { global $conf, $langs, $user, $hookmanager; @@ -159,7 +170,7 @@ class FormTicket print dol_get_fiche_head(null, 'card', '', 0, ''); } - print '
    '; + print 'param["returnurl"] : "").'">'; print ''; print ''; foreach ($this->param as $key => $value) { @@ -178,13 +189,108 @@ class FormTicket } // TITLE + $email = GETPOSTISSET('email') ? GETPOST('email', 'alphanohtml') : ''; if ($this->withemail) { print '
    '; - print ''; + print ''; print '
    '; + $html_contact_search .= ''; + $html_contact_search .= ''; + $html_contact_search .= '
    '; + $html_contact_lastname .= ''; + $html_contact_lastname .= '
    '; + $html_contact_firstname .= ''; + $html_contact_firstname .= '
    '; + $html_company_name .= ''; + $html_company_name .= '
    '; + $html_contact_phone .= ''; + $html_contact_phone .= '
    '; - $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 '
    '; - $this->selectSeveritiesTickets((GETPOST('severity_code') ? GETPOST('severity_code') : $this->severity_code), 'severity_code', '', 2, 0); + print '
    '; + $this->selectSeveritiesTickets((GETPOST('severity_code') ? GETPOST('severity_code') : $this->severity_code), 'severity_code', '', 2, 1); print '
    '; print img_picto('', 'project').$formproject->select_projects(-1, GETPOST('projectid', 'int'), 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500'); @@ -531,13 +644,13 @@ class FormTicket print dol_get_fiche_end(); } - print '
    '; + print '

    '; - print $form->buttonsSaveCancel((($this->withthreadid > 0) ? "SendResponse" : "CreateTicket"), ($this->withcancel ? "Cancel" : "")); + print $form->buttonsSaveCancel(((isset($this->withreadid) && $this->withreadid > 0) ? "SendResponse" : "CreateTicket"), ($this->withcancel ? "Cancel" : "")); /* print '
    '; - print ''; + print ''; if ($this->withcancel) { print "      "; print ''; @@ -623,6 +736,7 @@ class FormTicket } print '>'; + $value = ' '; if ($format == 0) { $value = ($maxlength ? dol_trunc($arraytypes['label'], $maxlength) : $arraytypes['label']); @@ -634,12 +748,12 @@ class FormTicket $value = $arraytypes['code']; } - print $value; + print $value ? $value : ' '; print ''; } } print ''; - if ($user->admin && !$noadmininfo) { + if (isset($user->admin) && $user->admin && !$noadmininfo) { print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } @@ -729,6 +843,7 @@ class FormTicket print '>'; + $value = ''; if ($format == 0) { $value = ($maxlength ? dol_trunc($label, $maxlength) : $label); } @@ -750,7 +865,7 @@ class FormTicket } } print ''; - if ($user->admin && !$noadmininfo) { + if (isset($user->admin) && $user->admin && !$noadmininfo) { print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } @@ -1062,6 +1177,8 @@ class FormTicket } print '>'; + + $value = ''; if ($format == 0) { $value = ($maxlength ? dol_trunc($arrayseverities['label'], $maxlength) : $arrayseverities['label']); } @@ -1083,7 +1200,7 @@ class FormTicket } } print ''; - if ($user->admin && !$noadmininfo) { + if (isset($user->admin) && $user->admin && !$noadmininfo) { print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } @@ -1109,7 +1226,7 @@ class FormTicket dol_delete_dir_recursive($upload_dir); } - $keytoavoidconflict = empty($this->trackid) ? '' : '-'.$this->trackid; // this->trackid must be defined + $keytoavoidconflict = empty($this->track_id) ? '' : '-'.$this->track_id; // track_id instead of trackid unset($_SESSION["listofpaths".$keytoavoidconflict]); unset($_SESSION["listofnames".$keytoavoidconflict]); unset($_SESSION["listofmimes".$keytoavoidconflict]); @@ -1143,7 +1260,7 @@ class FormTicket // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $this->param['langsmodels']; } if (!empty($newlang)) { @@ -1167,12 +1284,12 @@ class FormTicket $listofpaths = array(); $listofnames = array(); $listofmimes = array(); - $keytoavoidconflict = empty($this->trackid) ? '' : '-'.$this->trackid; // this->trackid must be defined + $keytoavoidconflict = empty($this->track_id) ? '' : '-'.$this->track_id; // track_id instead of trackid if (GETPOST('mode', 'alpha') == 'init' || (GETPOST('modelmailselected', 'alpha') && GETPOST('modelmailselected', 'alpha') != '-1')) { if (!empty($arraydefaultmessage->joinfiles) && is_array($this->param['fileinit'])) { foreach ($this->param['fileinit'] as $file) { - $this->add_attached_files($file, basename($file), dol_mimetype($file)); + $formmail->add_attached_files($file, basename($file), dol_mimetype($file)); } } } @@ -1190,7 +1307,7 @@ class FormTicket // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $this->param['langsmodels']; } if (!empty($newlang)) { @@ -1208,19 +1325,37 @@ class FormTicket jQuery(document).ready(function() { send_email=' . $send_email.'; if (send_email) { + if (!jQuery("#send_msg_email").is(":checked")) { + jQuery("#send_msg_email").prop("checked", true).trigger("change"); + } jQuery(".email_line").show(); } else { + if (!jQuery("#private_message").is(":checked")) { + jQuery("#private_message").prop("checked", true).trigger("change"); + } jQuery(".email_line").hide(); } jQuery("#send_msg_email").click(function() { if(jQuery(this).is(":checked")) { + if (jQuery("#private_message").is(":checked")) { + jQuery("#private_message").prop("checked", false).trigger("change"); + } jQuery(".email_line").show(); } else { jQuery(".email_line").hide(); } - });'; + }); + + jQuery("#private_message").click(function() { + if (jQuery(this).is(":checked")) { + if (jQuery("#send_msg_email").is(":checked")) { + jQuery("#send_msg_email").prop("checked", false).trigger("change"); + } + jQuery(".email_line").hide(); + } + });'; print '}); '; @@ -1252,6 +1387,9 @@ class FormTicket // External users can't send message email if ($user->rights->ticket->write && !$user->socid) { + $ticketstat = new Ticket($this->db); + $res = $ticketstat->fetch('', '', $this->track_id); + print '
    '; $checkbox_selected = (GETPOST('send_email') == "1" ? ' checked' : ($conf->global->TICKETS_MESSAGE_FORCE_MAIL?'checked':'')); print ' '; @@ -1282,18 +1420,18 @@ class FormTicket // Subject print '
    '; include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('mail_signature', $mail_signature, '100%', 150, 'dolibarr_details', '', false, $uselocalbrowser, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70); + $doleditor = new DolEditor('mail_signature', $mail_signature, '100%', 150, 'dolibarr_details', '', false, $uselocalbrowser, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_2, 70); $doleditor->Create(); print '
    \n"; + $rightCell = $leftCell = ''; + // loop over the lines in the diff $index = 0; - while ($index < count($diff)) { + $nbdiff = count($diff); + while ($index < $nbdiff) { // determine the line type switch ($diff[$index][1]) { // display the content on the left and right @@ -365,7 +367,7 @@ class Diff * Returns the content of the cell, for use in the toTable function. The * parameters are: * - * @param string $diff the diff array + * @param array $diff the diff array * @param string $indentation indentation to add to every line of the generated HTML * @param string $separator the separator between lines * @param string $index the current index, passes by reference diff --git a/htdocs/core/class/validate.class.php b/htdocs/core/class/validate.class.php index d3aa5707c05..9d8832c36ce 100644 --- a/htdocs/core/class/validate.class.php +++ b/htdocs/core/class/validate.class.php @@ -281,14 +281,17 @@ class Validate } foreach ($value_arr as $val) { - $sql = "SELECT ".$col." FROM ".$this->db->prefix().$table." WHERE ".$col." = '".$this->db->escape($val)."'"; // nore quick than count(*) to check existing of a row - $resql = $this->db->getRow($sql); + $sql = "SELECT ".$col." FROM ".$this->db->prefix().$table." WHERE ".$col." = '".$this->db->escape($val)."' LIMIT 1"; // more quick than count(*) to check existing of a row + $resql = $this->db->query($sql); if ($resql) { - continue; - } else { - $this->error = $this->outputLang->trans('RequireValidExistingElement'); - return false; + $obj = $this->db->fetch_object($resql); + if ($obj) { + continue; + } } + // If something was wrong + $this->error = $this->outputLang->trans('RequireValidExistingElement'); + return false; } return true; @@ -297,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)) { @@ -316,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..dbe505a894b 100644 --- a/htdocs/core/class/vcard.class.php +++ b/htdocs/core/class/vcard.class.php @@ -195,14 +195,14 @@ class vCard // $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; $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.";CHARSET=".$this->encoding] == '') { //$this->setLabel($postoffice, $extended, $street, $city, $region, $zip, $country, $type); - } + //} } /** 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 2d00677b20a..8fe774df32d 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,14 +476,14 @@ $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 $count = 0; print '
    '; print '
    '; -print $formother->selectGroupByField($object, $search_groupby, $arrayofgroupby, 'minwidth200 maxwidth250', $langs->trans("GroupBy")); // Fill the array $arrayofgroupby with possible fields +print $formother->selectGroupByField($object, $search_groupby, $arrayofgroupby, 'minwidth250 maxwidth300', $langs->trans("GroupBy")); // Fill the array $arrayofgroupby with possible fields print '
    '; @@ -507,16 +525,16 @@ if ($mode == 'grid') { ); } } - // Add measure from extrafields - if ($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'))) { - $arrayofyaxis['te.'.$key] = array( - 'label' => $extrafields->attributes[$object->table_element]['label'][$key], - 'position' => (int) $extrafields->attributes[$object->table_element]['pos'][$key], - 'table' => $object->table_element - ); - } + } + // Add measure from extrafields + if ($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'))) { + $arrayofyaxis['te.'.$key] = array( + 'label' => $extrafields->attributes[$object->table_element]['label'][$key], + 'position' => (int) $extrafields->attributes[$object->table_element]['pos'][$key], + 'table' => $object->table_element + ); } } } @@ -880,8 +898,8 @@ if ($mode == 'graph') { $px1 = new DolGraph(); $mesg = $px1->isGraphKo(); if (!$mesg) { - /*var_dump($legend); - var_dump($data);*/ + //var_dump($legend); + //var_dump($data); $px1->SetData($data); unset($data); @@ -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); @@ -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,7 +1215,7 @@ 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', 'parent', 'photo', 'socialnetworks', 'webservices_url', 'webservices_key'))) { @@ -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 e349072ddec..1d24b058614 100644 --- a/htdocs/core/db/Database.interface.php +++ b/htdocs/core/db/Database.interface.php @@ -502,8 +502,8 @@ interface Database /** * Returns the current line (as an object) for the resultset cursor * - * @param resource $resultset Cursor of the desired request - * @return Object Object result line or false if KO or end of cursor + * @param resource|Connection $resultset Handler of the desired request + * @return Object Object result line or false if KO or end of cursor */ public function fetch_object($resultset); // phpcs:enable diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 582fd08811f..1fe4ce77414 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -92,14 +92,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 +204,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 +222,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 +234,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 +421,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,7 +471,7 @@ class DoliDBMysqli extends DoliDB */ public function escape($stringtoencode) { - return $this->db->real_escape_string($stringtoencode); + return $this->db->real_escape_string((string) $stringtoencode); } /** @@ -470,7 +482,7 @@ class DoliDBMysqli extends DoliDB */ public function escapeunderscore($stringtoencode) { - return str_replace('_', '\_', $stringtoencode); + return str_replace('_', '\_', (string) $stringtoencode); } /** @@ -746,6 +758,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 74abf7a1e36..d33affec476 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -116,7 +116,7 @@ class DoliDBPgsql extends DoliDB $this->connected = false; $this->ok = false; $this->error = 'Host, login or password incorrect'; - dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Connect ".$this->error, LOG_ERR); + dol_syslog(get_class($this)."::DoliDBPgsql : Erreur Connect ".$this->error.'. Failed to connect to host='.$host.' port='.$port.' user='.$user, LOG_ERR); } // Si connexion serveur ok et si connexion base demandee, on essaie connexion base @@ -419,11 +419,15 @@ 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 - if (!$this->db) { + if (empty($this->db)) { if (!$host) { $host = "localhost"; } @@ -432,7 +436,11 @@ class DoliDBPgsql extends DoliDB } $con_string = "host='".$host."' port='".$port."' dbname='".$name."' user='".$login."' password='".$passwd."'"; - $this->db = @pg_connect($con_string); + try { + $this->db = @pg_connect($con_string); + } catch (Exception $e) { + print $e->getMessage(); + } } // now we test if at least one connect method was a success @@ -580,7 +588,7 @@ class DoliDBPgsql extends DoliDB { // phpcs:enable // If resultset not provided, we take the last used by connexion - if (!is_resource($resultset)) { + if (!is_resource($resultset) && !is_object($resultset)) { $resultset = $this->_results; } return pg_fetch_object($resultset); @@ -597,7 +605,7 @@ class DoliDBPgsql extends DoliDB { // phpcs:enable // If resultset not provided, we take the last used by connexion - if (!is_resource($resultset)) { + if (!is_resource($resultset) && !is_object($resultset)) { $resultset = $this->_results; } return pg_fetch_array($resultset); @@ -614,7 +622,7 @@ class DoliDBPgsql extends DoliDB { // phpcs:enable // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion - if (!is_resource($resultset)) { + if (!is_resource($resultset) && !is_object($resultset)) { $resultset = $this->_results; } return pg_fetch_row($resultset); @@ -632,7 +640,7 @@ class DoliDBPgsql extends DoliDB { // phpcs:enable // If resultset not provided, we take the last used by connexion - if (!is_resource($resultset)) { + if (!is_resource($resultset) && !is_object($resultset)) { $resultset = $this->_results; } return pg_num_rows($resultset); @@ -650,7 +658,7 @@ class DoliDBPgsql extends DoliDB { // phpcs:enable // If resultset not provided, we take the last used by connexion - if (!is_resource($resultset)) { + if (!is_resource($resultset) && !is_object($resultset)) { $resultset = $this->_results; } // pgsql necessite un resultset pour cette fonction contrairement @@ -668,11 +676,11 @@ class DoliDBPgsql extends DoliDB public function free($resultset = null) { // If resultset not provided, we take the last used by connexion - if (!is_resource($resultset)) { + if (!is_resource($resultset) && !is_object($resultset)) { $resultset = $this->_results; } // Si resultset en est un, on libere la memoire - if (is_resource($resultset)) { + if (is_resource($resultset) || is_object($resultset)) { pg_free_result($resultset); } } @@ -867,10 +875,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; @@ -916,7 +924,8 @@ class DoliDBPgsql extends DoliDB // Test charset match LC_TYPE (pgsql error otherwise) //print $charset.' '.setlocale(LC_CTYPE,'0'); exit; - $sql = "CREATE DATABASE '".$this->escape($database)."' OWNER '".$this->escape($owner)."' ENCODING '".$this->escape($charset)."'"; + // NOTE: Do not use ' around the database name + $sql = "CREATE DATABASE ".$this->escape($database)." OWNER '".$this->escape($owner)."' ENCODING '".$this->escape($charset)."'"; dol_syslog($sql, LOG_DEBUG); $ret = $this->query($sql); return $ret; diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php index 10f9c021c0d..8d0141e8ca6 100644 --- a/htdocs/core/db/sqlite3.class.php +++ b/htdocs/core/db/sqlite3.class.php @@ -38,7 +38,10 @@ class DoliDBSqlite3 extends DoliDB const LABEL = 'Sqlite3'; //! Version min database const VERSIONMIN = '3.0.0'; - /** @var SQLite3Result Resultset of last query */ + + /** + * @var SQLite3Result|boolean Resultset of last query + */ private $_results; const WEEK_MONDAY_FIRST = 1; @@ -1026,7 +1029,7 @@ class DoliDBSqlite3 extends DoliDB * * @param string $table Name of table * @param string $field Optionnel : Name of field if we want description of field - * @return SQLite3Result Resource + * @return bool|SQLite3Result Resource */ public function DDLDescTable($table, $field = "") { diff --git a/htdocs/core/extrafieldsinimport.inc.php b/htdocs/core/extrafieldsinimport.inc.php index 4845d9a6d44..395b67520d1 100644 --- a/htdocs/core/extrafieldsinimport.inc.php +++ b/htdocs/core/extrafieldsinimport.inc.php @@ -11,7 +11,7 @@ if (empty($keyforselect) || empty($keyforelement) || empty($keyforaliasextra)) { } // Add extra fields -$sql = "SELECT name, label, type, param, fieldcomputed, fielddefault FROM ".MAIN_DB_PREFIX."extrafields"; +$sql = "SELECT name, label, type, param, fieldcomputed, fielddefault, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields"; $sql .= " WHERE elementtype = '".$this->db->escape($keyforselect)."' AND type <> 'separate' AND entity IN (0, ".((int) $conf->entity).') ORDER BY pos ASC'; //print $sql; $resql = $this->db->query($sql); 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(); + ?> - '; + '; + } return $out; } @@ -1738,7 +1901,7 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab $out .= '
    '; if (!empty($links[$i][0])) { $titletoshow = preg_replace('/<.*$/', '', $links[$i][1]); - $out .= ''; + $out .= ''; } $out .= $links[$i][1]; if (!empty($links[$i][0])) { @@ -1786,7 +1949,7 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab if (empty($tabsname)) { $tabsname = str_replace("@", "", $picto); } - $out .= '
    '; + $out .= '
    '; $out .= ''; // Do not use "reposition" class in the "More". $out .= '
    '; $out .= $outmore; @@ -2049,7 +2212,7 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi } if ($showbarcode) { - $morehtmlleft .= '
    '.$form->showbarcode($object, 100, 'photoref').'
    '; + $morehtmlleft .= '
    '.$form->showbarcode($object, 100, 'photoref valignmiddle').'
    '; } if ($object->element == 'societe') { @@ -2073,9 +2236,9 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi $morehtmlstatus .= ''.$object->getLibStatut(6, 1).''; } } elseif (in_array($object->element, array('facture', 'invoice', 'invoice_supplier', 'chargesociales', 'loan', 'tva', 'salary'))) { - $tmptxt = $object->getLibStatut(6, $object->totalpaye); + $tmptxt = $object->getLibStatut(6, $object->totalpaid); if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3)) { - $tmptxt = $object->getLibStatut(5, $object->totalpaye); + $tmptxt = $object->getLibStatut(5, $object->totalpaid); } $morehtmlstatus .= $tmptxt; } elseif ($object->element == 'contrat' || $object->element == 'contract') { @@ -2109,7 +2272,7 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi } // Add if object was dispatched "into accountancy" - if (!empty($conf->accounting->enabled) && in_array($object->element, array('bank', 'paiementcharge', 'facture', 'invoice', 'invoice_supplier', 'expensereport', 'payment_various'))) { + if (isModEnabled('accounting') && in_array($object->element, array('bank', 'paiementcharge', 'facture', 'invoice', 'invoice_supplier', 'expensereport', 'payment_various'))) { // Note: For 'chargesociales', 'salaries'... this is the payments that are dispatched (so element = 'bank') if (method_exists($object, 'getVentilExportCompta')) { $accounted = $object->getVentilExportCompta(); @@ -2130,6 +2293,7 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi } } + // Show address and email if (method_exists($object, 'getBannerAddress') && !in_array($object->element, array('product', 'bookmark', 'ecm_directories', 'ecm_files'))) { $moreaddress = $object->getBannerAddress('refaddress', $object); if ($moreaddress) { @@ -2219,7 +2383,7 @@ function dol_bc($var, $moreclass = '') */ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs = '', $mode = 0, $extralangcode = '') { - global $conf, $langs; + global $conf, $langs, $hookmanager; $ret = ''; $countriesusingstate = array('AU', 'CA', 'US', 'IN', 'GB', 'ES', 'UK', 'TR', 'CN'); // See also MAIN_FORCE_STATE_INTO_ADDRESS @@ -2233,12 +2397,13 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs if (isset($object->country_code) && in_array($object->country_code, array('AU', 'CA', 'US', 'CN')) || !empty($conf->global->MAIN_FORCE_STATE_INTO_ADDRESS)) { // US: title firstname name \n address lines \n town, state, zip \n country $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : (empty($object->town) ? '' : $object->town)); - $ret .= ($ret ? $sep : '').$town; + $ret .= (($ret && $town) ? $sep : '').$town; + if (!empty($object->state)) { - $ret .= ($ret ? ", " : '').$object->state; + $ret .= ($ret ? ($town ? ", " : $sep) : '').$object->state; } if (!empty($object->zip)) { - $ret .= ($ret ? ", " : '').$object->zip; + $ret .= ($ret ? (($town || $object->state) ? ", " : $sep) : '').$object->zip; } } elseif (isset($object->country_code) && in_array($object->country_code, array('GB', 'UK'))) { // UK: title firstname name \n address lines \n town state \n zip \n country @@ -2285,6 +2450,14 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs $langs->load("dict"); $ret .= (empty($object->country_code) ? '' : ($ret ? $sep : '').$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$object->country_code))); } + if ($hookmanager) { + $parameters = array('withcountry' => $withcountry, 'sep' => $sep, 'outputlangs' => $outputlangs,'mode' => $mode, 'extralangcode' => $extralangcode); + $reshook = $hookmanager->executeHooks('formatAddress', $parameters, $object); + if ($reshook > 0) { + $ret = ''; + } + $ret .= $hookmanager->resPrint; + } return $ret; } @@ -2322,7 +2495,7 @@ function dol_strftime($fmt, $ts = false, $is_gmt = false) * @param string $tzoutput true or 'gmt' => string is for Greenwich location * false or 'tzserver' => output string is for local PHP server TZ usage * 'tzuser' => output string is for user TZ (current browser TZ with current dst) => In a future, we should have same behaviour than 'tzuserrel' - * 'tzuserrel' => output string is for user TZ (current browser TZ with dst or not, depending on date position) (TODO not implemented yet) + * 'tzuserrel' => output string is for user TZ (current browser TZ with dst or not, depending on date position) * @param Translate $outputlangs Object lang that contains language for text translation. * @param boolean $encodetooutput false=no convert into output pagecode * @return string Formated date or '' if time is null @@ -2410,6 +2583,9 @@ function dol_print_date($time, $format = '', $tzoutput = 'auto', $outputlangs = } elseif ($format == 'dayhourlog') { // Format not sensitive to language $format = '%Y%m%d%H%M%S'; + } elseif ($format == 'dayhourlogsmall') { + // Format not sensitive to language + $format = '%Y%m%d%H%M'; } elseif ($format == 'dayhourldap') { $format = '%Y%m%d%H%M%SZ'; } elseif ($format == 'dayhourxcard') { @@ -2638,7 +2814,7 @@ function dol_mktime($hour, $minute, $second, $month, $day, $year, $gm = 'auto', } //var_dump($localtz); //var_dump($year.'-'.$month.'-'.$day.'-'.$hour.'-'.$minute); - $dt = new DateTime(null, $localtz); + $dt = new DateTime('now', $localtz); $dt->setDate((int) $year, (int) $month, (int) $day); $dt->setTime((int) $hour, (int) $minute, (int) $second); $date = $dt->getTimestamp(); // should include daylight saving time @@ -2769,7 +2945,7 @@ function dol_print_url($url, $target = '_blank', $max = 32, $withpicto = 0) * @param int $addlink 0=no link, 1=email has a html email link (+ link to create action if constant AGENDA_ADDACTIONFOREMAIL is on) * @param int $max Max number of characters to show * @param int $showinvalid 1=Show warning if syntax email is wrong - * @param int $withpicto Show picto + * @param int|string $withpicto Show picto * @return string HTML Link */ function dol_print_email($email, $cid = 0, $socid = 0, $addlink = 0, $max = 64, $showinvalid = 1, $withpicto = 0) @@ -2800,7 +2976,7 @@ function dol_print_email($email, $cid = 0, $socid = 0, $addlink = 0, $max = 64, $newemail .= img_warning($langs->trans("ErrorBadEMail", $email)); } - if (($cid || $socid) && !empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) { + if (($cid || $socid) && isModEnabled('agenda') && $user->rights->agenda->myactions->create) { $type = 'AC_EMAIL'; $link = ''; if (!empty($conf->global->AGENDA_ADDACTIONFOREMAIL)) { @@ -2818,10 +2994,11 @@ function dol_print_email($email, $cid = 0, $socid = 0, $addlink = 0, $max = 64, } //$rep = '
    '; - $rep = ($withpicto ? img_picto($langs->trans("EMail").' : '.$email, 'object_email.png').' ' : '').$newemail; + $rep = ($withpicto ? img_picto($langs->trans("EMail").' : '.$email, (is_numeric($withpicto) ? 'email' : $withpicto)).' ' : '').$newemail; //$rep .= '
    '; if ($hookmanager) { $parameters = array('cid' => $cid, 'socid' => $socid, 'addlink' => $addlink, 'picto' => $withpicto); + $reshook = $hookmanager->executeHooks('printEmail', $parameters, $email); if ($reshook > 0) { $rep = ''; @@ -2905,7 +3082,7 @@ function dol_print_socialnetworks($value, $cid, $socid, $type, $dictsocialnetwor $htmllink .= '?chat" alt="'.$langs->trans("Chat").' '.$value.'" title="'.dol_escape_htmltag($langs->trans("Chat").' '.$value).'">'; $htmllink .= ''; $htmllink .= ''; - if (($cid || $socid) && !empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) { + if (($cid || $socid) && isModEnabled('agenda') && $user->rights->agenda->myactions->create) { $addlink = 'AC_SKYPE'; $link = ''; if (!empty($conf->global->AGENDA_ADDACTIONFORSKYPE)) { @@ -2915,8 +3092,29 @@ function dol_print_socialnetworks($value, $cid, $socid, $type, $dictsocialnetwor } } else { if (!empty($dictsocialnetworks[$type]['url'])) { + $tmpvirginurl = preg_replace('/\/?{socialid}/', '', $dictsocialnetworks[$type]['url']); + if ($tmpvirginurl) { + $value = preg_replace('/^www\.'.preg_quote($tmpvirginurl, '/').'\/?/', '', $value); + $value = preg_replace('/^'.preg_quote($tmpvirginurl, '/').'\/?/', '', $value); + + $tmpvirginurl3 = preg_replace('/^https:\/\//i', 'https://www.', $tmpvirginurl); + if ($tmpvirginurl3) { + $value = preg_replace('/^www\.'.preg_quote($tmpvirginurl3, '/').'\/?/', '', $value); + $value = preg_replace('/^'.preg_quote($tmpvirginurl3, '/').'\/?/', '', $value); + } + + $tmpvirginurl2 = preg_replace('/^https?:\/\//i', '', $tmpvirginurl); + if ($tmpvirginurl2) { + $value = preg_replace('/^www\.'.preg_quote($tmpvirginurl2, '/').'\/?/', '', $value); + $value = preg_replace('/^'.preg_quote($tmpvirginurl2, '/').'\/?/', '', $value); + } + } $link = str_replace('{socialid}', $value, $dictsocialnetworks[$type]['url']); - $htmllink .= ' '.dol_escape_htmltag($value).''; + if (preg_match('/^https?:\/\//i', $link)) { + $htmllink .= ' '.dol_escape_htmltag($value).''; + } else { + $htmllink .= ' '.dol_escape_htmltag($value).''; + } } else { $htmllink .= dol_escape_htmltag($value); } @@ -2987,7 +3185,7 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli if (!empty($conf->global->MAIN_PHONE_SEPAR)) { $separ = $conf->global->MAIN_PHONE_SEPAR; } - if (empty($countrycode)) { + if (empty($countrycode) && is_object($mysoc)) { $countrycode = $mysoc->country_code; } @@ -3009,6 +3207,8 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli $newphone = substr($newphone, 0, 3).$separ.substr($newphone, 3, 2).$separ.substr($newphone, 5, 2).$separ.substr($newphone, 7, 2).$separ.substr($newphone, 9, 2); } elseif (dol_strlen($phone) == 12) { $newphone = substr($newphone, 0, 3).$separ.substr($newphone, 3, 1).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 2).$separ.substr($newphone, 10, 2); + } elseif (dol_strlen($phone) == 13) { + $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 3).$separ.substr($newphone, 11, 2); } } elseif (strtoupper($countrycode) == "CA") { if (dol_strlen($phone) == 10) { @@ -3120,8 +3320,8 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli $newphone = substr($newphone, 0, 5).$separ.substr($newphone, 5, 3).$separ.substr($newphone, 8, 4); } } elseif (strtoupper($countrycode) == "MG") {//Madagascar - if (dol_strlen($phone) == 13) {//ex: +261_AB_CD_EF_GHI - $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 2).$separ.substr($newphone, 10, 3); + if (dol_strlen($phone) == 13) {//ex: +261_AB_CD_EFG_HI + $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 3).$separ.substr($newphone, 11, 2); } } elseif (strtoupper($countrycode) == "GB") {//Royaume uni if (dol_strlen($phone) == 13) {//ex: +44_ABCD_EFG_HIJ @@ -3161,6 +3361,17 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli //ex: +61_A_BCDE_FGHI $newphone = substr($newphone, 0, 3).$separ.substr($newphone, 3, 1).$separ.substr($newphone, 4, 4).$separ.substr($newphone, 8, 4); } + } elseif (strtoupper($countrycode) == "LU") { + // Luxembourg + if (dol_strlen($phone) == 10) {// fixe 6 chiffres +352_AA_BB_CC + $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 2); + } elseif (dol_strlen($phone) == 11) {// fixe 7 chiffres +352_AA_BB_CC_D + $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 2).$separ.substr($newphone, 10, 1); + } elseif (dol_strlen($phone) == 12) {// fixe 8 chiffres +352_AA_BB_CC_DD + $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 2).$separ.substr($newphone, 6, 2).$separ.substr($newphone, 8, 2).$separ.substr($newphone, 10, 2); + } elseif (dol_strlen($phone) == 13) {// mobile +352_AAA_BB_CC_DD + $newphone = substr($newphone, 0, 4).$separ.substr($newphone, 4, 3).$separ.substr($newphone, 7, 2).$separ.substr($newphone, 9, 2).$separ.substr($newphone, 11, 2); + } } if (!empty($addlink)) { // Link on phone number (+ link to add action if conf->global->AGENDA_ADDACTIONFORPHONE set) if ($conf->browser->layout == 'phone' || (!empty($conf->clicktodial->enabled) && !empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS))) { // If phone or option for, we use link of phone @@ -3207,8 +3418,8 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli } } - //if (($cid || $socid) && ! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) - if (!empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) { + //if (($cid || $socid) && !empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) + if (isModEnabled('agenda') && $user->rights->agenda->myactions->create) { $type = 'AC_TEL'; $link = ''; if ($addlink == 'AC_FAX') { @@ -3353,7 +3564,7 @@ function dolGetCountryCodeFromIp($ip) $countrycode = ''; if (!empty($conf->geoipmaxmind->enabled)) { - $datafile = $conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE; + $datafile = getDolGlobalString('GEOIPMAXMIND_COUNTRY_DATAFILE'); //$ip='24.24.24.24'; //$datafile='/usr/share/GeoIP/GeoIP.dat'; Note that this must be downloaded datafile (not same than datafile provided with ubuntu packages) include_once DOL_DOCUMENT_ROOT.'/core/class/dolgeoip.class.php'; @@ -3380,7 +3591,7 @@ function dol_user_country() $ret = ''; if (!empty($conf->geoipmaxmind->enabled)) { $ip = getUserRemoteIP(); - $datafile = $conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE; + $datafile = getDolGlobalString('GEOIPMAXMIND_COUNTRY_DATAFILE'); //$ip='24.24.24.24'; //$datafile='E:\Mes Sites\Web\Admin1\awstats\maxmind\GeoIP.dat'; include_once DOL_DOCUMENT_ROOT.'/core/class/dolgeoip.class.php'; @@ -3671,6 +3882,7 @@ function dol_trunc($string, $size = 40, $trunc = 'right', $stringencoding = 'UTF function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $srconly = 0, $notitle = 0, $alt = '', $morecss = '', $marginleftonlyshort = 2) { global $conf, $langs; + // We forge fullpathpicto for image to $path/img/$picto. By default, we take DOL_URL_ROOT/theme/$conf->theme/img/$picto $url = DOL_URL_ROOT; $theme = isset($conf->theme) ? $conf->theme : null; @@ -3689,15 +3901,28 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ } } else { $pictowithouttext = preg_replace('/(\.png|\.gif|\.svg)$/', '', $picto); + $pictowithouttext = str_replace('object_', '', $pictowithouttext); - if (strpos($pictowithouttext, 'fontawesome_') !== false) { - $pictowithouttext = explode('_', $pictowithouttext); + if (strpos($pictowithouttext, 'fontawesome_') !== false || preg_match('/^fa-/', $pictowithouttext)) { + // This is a font awesome image 'fonwtawesome_xxx' or 'fa-xxx' + $pictowithouttext = str_replace('fontawesome_', '', $pictowithouttext); + $pictowithouttext = str_replace('fa-', '', $pictowithouttext); + + $pictowithouttextarray = explode('_', $pictowithouttext); $marginleftonlyshort = 0; - $fakey = 'fa-'.$pictowithouttext[1]; - $fa = $pictowithouttext[2] ? $pictowithouttext[2] : 'fa'; - $facolor = $pictowithouttext[3] ? $pictowithouttext[3] : ''; - $fasize = $pictowithouttext[4] ? $pictowithouttext[4] : ''; + if (!empty($pictowithouttextarray[1])) { + // Syntax is 'fontawesome_fakey_faprefix_facolor_fasize' or 'fa-fakey_faprefix_facolor_fasize' + $fakey = 'fa-'.$pictowithouttextarray[0]; + $fa = empty($pictowithouttextarray[1]) ? 'fa' : $pictowithouttextarray[1]; + $facolor = empty($pictowithouttextarray[2]) ? '' : $pictowithouttextarray[2]; + $fasize = empty($pictowithouttextarray[3]) ? '' : $pictowithouttextarray[3]; + } else { + $fakey = 'fa-'.$pictowithouttext; + $fa = 'fa'; + $facolor = ''; + $fasize = ''; + } // This snippet only needed since function img_edit accepts only one additional parameter: no separate one for css only. // class/style need to be extracted to avoid duplicate class/style validation errors when $moreatt is added to the end of the attributes. @@ -3723,16 +3948,15 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ return $enabledisablehtml; } - $pictowithouttext = str_replace('object_', '', $pictowithouttext); if (empty($srconly) && in_array($pictowithouttext, array( '1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected', 'accountancy', 'accounting_account', 'account', 'accountline', 'action', 'add', 'address', 'angle-double-down', 'angle-double-up', 'asset', 'bank_account', 'barcode', 'bank', 'bell', 'bill', 'billa', 'billr', 'billd', 'bookmark', 'bom', 'briefcase-medical', 'bug', 'building', - 'card', 'calendar', 'calendarmonth', 'calendarweek', 'calendarday', 'calendarperuser', 'calendarpertype', + 'card', 'calendarlist', 'calendar', 'calendarmonth', 'calendarweek', 'calendarday', 'calendarperuser', 'calendarpertype', 'cash-register', 'category', 'chart', 'check', 'clock', 'close_title', 'cog', 'collab', 'company', 'contact', 'country', 'contract', 'conversation', 'cron', 'cubes', - 'multicurrency', + 'currency', 'multicurrency', 'delete', 'dolly', 'dollyrevert', 'donation', 'download', 'dynamicprice', - 'edit', 'ellipsis-h', 'email', 'entity', 'eraser', 'establishment', 'expensereport', 'external-link-alt', 'external-link-square-alt', + 'edit', 'ellipsis-h', 'email', 'entity', 'envelope', 'eraser', 'establishment', 'expensereport', 'external-link-alt', 'external-link-square-alt', 'filter', 'file-code', 'file-export', 'file-import', 'file-upload', 'autofill', 'folder', 'folder-open', 'folder-plus', 'generate', 'globe', 'globe-americas', 'graph', 'grip', 'grip_title', 'group', 'help', 'holiday', @@ -3742,7 +3966,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'off', 'on', 'order', 'paiment', 'paragraph', 'play', 'pdf', 'phone', 'phoning', 'phoning_mobile', 'phoning_fax', 'playdisabled', 'previous', 'poll', 'pos', 'printer', 'product', 'propal', 'puce', 'stock', 'resize', 'service', 'stats', 'trip', - 'security', 'setup', 'share-alt', 'sign-out', 'split', 'stripe', 'stripe-s', 'switch_off', 'switch_on', 'switch_on_red', 'tools', 'unlink', 'uparrow', 'user', 'vcard', 'wrench', + 'security', 'setup', 'share-alt', 'sign-out', 'split', 'stripe', 'stripe-s', 'switch_off', 'switch_on', 'switch_on_red', 'tools', 'unlink', 'uparrow', 'user', 'user-tie', 'vcard', 'wrench', 'github', 'google', 'jabber', 'skype', 'twitter', 'facebook', 'linkedin', 'instagram', 'snapchat', 'youtube', 'google-plus-g', 'whatsapp', 'chevron-left', 'chevron-right', 'chevron-down', 'chevron-top', 'commercial', 'companies', 'generic', 'home', 'hrm', 'members', 'products', 'invoicing', @@ -3750,10 +3974,10 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'salary', 'shipment', 'state', 'supplier_invoice', 'supplier_invoicea', 'supplier_invoicer', 'supplier_invoiced', 'technic', 'ticket', 'error', 'warning', - 'recent', 'reception', 'recruitmentcandidature', 'recruitmentjobposition', 'resource', 'recurring', + 'recent', 'reception', 'recruitmentcandidature', 'recruitmentjobposition', 'resource', 'recurring','rss', 'shapes', 'square', 'stop-circle', 'supplier', 'supplier_proposal', 'supplier_order', 'supplier_invoice', 'timespent', 'title_setup', 'title_accountancy', 'title_bank', 'title_hrm', 'title_agenda', - 'uncheck', 'user-cog', 'user-injured', 'user-md', 'vat', 'website', 'workstation', + 'uncheck', 'user-cog', 'user-injured', 'user-md', 'vat', 'website', 'workstation', 'webhook', 'world', 'private', 'conferenceorbooth', 'eventorganization' ))) { $fakey = $pictowithouttext; @@ -3788,8 +4012,8 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'sign-out'=>'sign-out-alt', 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'switch_on_red'=>'toggle-on', 'check'=>'check', 'bookmark'=>'star', 'bank'=>'university', 'close_title'=>'times', 'delete'=>'trash', 'filter'=>'filter', - 'list-alt'=>'list-alt', 'calendar'=>'calendar-alt', 'calendarmonth'=>'calendar-alt', 'calendarweek'=>'calendar-week', 'calendarday'=>'calendar-day', 'calendarperuser'=>'table', - 'intervention'=>'ambulance', 'invoice'=>'file-invoice-dollar', 'multicurrency'=>'dollar-sign', 'order'=>'file-invoice', + 'list-alt'=>'list-alt', 'calendarlist'=>'bars', 'calendar'=>'calendar-alt', 'calendarmonth'=>'calendar-alt', 'calendarweek'=>'calendar-week', 'calendarday'=>'calendar-day', 'calendarperuser'=>'table', + 'intervention'=>'ambulance', 'invoice'=>'file-invoice-dollar', 'currency'=>'dollar-sign', 'multicurrency'=>'dollar-sign', 'order'=>'file-invoice', 'error'=>'exclamation-triangle', 'warning'=>'exclamation-triangle', 'other'=>'square', 'playdisabled'=>'play', 'pdf'=>'file-pdf', 'poll'=>'check-double', 'pos'=>'cash-register', 'preview'=>'binoculars', 'project'=>'project-diagram', 'projectpub'=>'project-diagram', 'projecttask'=>'tasks', 'propal'=>'file-signature', @@ -3804,7 +4028,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'title_agenda'=>'calendar-alt', 'uncheck'=>'times', 'uparrow'=>'share', 'vat'=>'money-check-alt', 'vcard'=>'address-card', 'jabber'=>'comment-o', - 'website'=>'globe-americas', 'workstation'=>'pallet', + 'website'=>'globe-americas', 'workstation'=>'pallet', 'webhook'=>'bullseye', 'world'=>'globe', 'private'=>'user-lock', 'conferenceorbooth'=>'chalkboard-teacher', 'eventorganization'=>'project-diagram' ); if ($pictowithouttext == 'off') { @@ -3866,14 +4090,15 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'ecm'=>'infobox-action', 'eventorganization'=>'infobox-project', 'hrm'=>'infobox-adherent', 'group'=>'infobox-adherent', 'intervention'=>'infobox-contrat', 'incoterm'=>'infobox-supplier_proposal', - 'multicurrency'=>'infobox-bank_account', + 'currency'=>'infobox-bank_account', 'multicurrency'=>'infobox-bank_account', 'members'=>'infobox-adherent', 'member'=>'infobox-adherent', 'money-bill-alt'=>'infobox-bank_account', 'order'=>'infobox-commande', 'user'=>'infobox-adherent', 'users'=>'infobox-adherent', 'error'=>'pictoerror', 'warning'=>'pictowarning', 'switch_on'=>'font-status4', 'switch_on_red'=>'font-status8', 'holiday'=>'infobox-holiday', 'info'=>'opacityhigh', 'invoice'=>'infobox-commande', 'knowledgemanagement'=>'infobox-contrat rotate90', 'loan'=>'infobox-bank_account', - 'payment'=>'infobox-bank_account', 'payment_vat'=>'infobox-bank_account', 'poll'=>'infobox-adherent', 'pos'=>'infobox-bank_account', 'project'=>'infobox-project', 'projecttask'=>'infobox-project', 'propal'=>'infobox-propal', + 'payment'=>'infobox-bank_account', 'payment_vat'=>'infobox-bank_account', 'poll'=>'infobox-adherent', 'pos'=>'infobox-bank_account', 'project'=>'infobox-project', 'projecttask'=>'infobox-project', + 'propal'=>'infobox-propal', 'private'=>'infobox-project', 'reception'=>'flip', 'recruitmentjobposition'=>'infobox-adherent', 'recruitmentcandidature'=>'infobox-adherent', 'resource'=>'infobox-action', 'salary'=>'infobox-bank_account', 'shipment'=>'infobox-commande', 'supplier_invoice'=>'infobox-order_supplier', 'supplier_invoicea'=>'infobox-order_supplier', 'supplier_invoiced'=>'infobox-order_supplier', @@ -3896,7 +4121,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ //'dolly'=>'#a69944', 'dollyrevert'=>'#a69944', 'lot'=>'#a69944', 'map-marker-alt'=>'#aaa', 'mrp'=>'#a69944', 'product'=>'#a69944', 'service'=>'#a69944', 'inventory'=>'#a69944', 'stock'=>'#a69944', 'movement'=>'#a69944', - 'other'=>'#ddd', + 'other'=>'#ddd', 'world'=>'#986c6a', 'partnership'=>'#6c6aa8', 'playdisabled'=>'#ccc', 'printer'=>'#444', 'projectpub'=>'#986c6a', 'reception'=>'#a69944', 'resize'=>'#444', 'rss'=>'#cba', //'shipment'=>'#a69944', 'security'=>'#999', 'square'=>'#888', 'stop-circle'=>'#888', 'stats'=>'#444', 'switch_off'=>'#999', 'technic'=>'#999', 'timespent'=>'#555', @@ -4576,19 +4801,19 @@ function img_searchclear($titlealt = 'default', $other = '') * @param string $textfordropdown Show a text to click to dropdown the info box. * @return string String with info text */ -function info_admin($text, $infoonimgalt = 0, $nodiv = 0, $admin = '1', $morecss = '', $textfordropdown = '') +function info_admin($text, $infoonimgalt = 0, $nodiv = 0, $admin = '1', $morecss = 'hideonsmartphone', $textfordropdown = '') { global $conf, $langs; if ($infoonimgalt) { - $result = img_picto($text, 'info', 'class="hideonsmartphone'.($morecss ? ' '.$morecss : '').'"'); + $result = img_picto($text, 'info', 'class="'.($morecss ? ' '.$morecss : '').'"'); } else { if (empty($conf->use_javascript_ajax)) { $textfordropdown = ''; } $class = (empty($admin) ? 'undefined' : ($admin == '1' ? 'info' : $admin)); - $result = ($nodiv ? '' : '
    ').' '.$text.($nodiv ? '' : '
    '); + $result = ($nodiv ? '' : '
    ').' '.$text.($nodiv ? '' : '
    '); if ($textfordropdown) { $tmpresult = ''.$langs->trans($textfordropdown).' '.img_picto($langs->trans($textfordropdown), '1downarrow').''; @@ -4730,8 +4955,9 @@ function dol_print_error($db = '', $error = '', $errors = null) $out .= "
    \n"; } - // Return a http error code if possible + // Return a http header with error code if possible if (!headers_sent()) { + top_httphead(); http_response_code(500); } @@ -4794,7 +5020,7 @@ function dol_print_error_email($prefixcode, $errormessage = '', $errormessages = * @param string $field Field to use for new sorting * @param string $begin ("" by defaut) * @param string $moreparam Add more parameters on sort url links ("" by default) - * @param string $moreattrib Options of attribute td ("" by defaut, example: 'align="center"') + * @param string $moreattrib Options of attribute td ("" by defaut) * @param string $sortfield Current field used to sort * @param string $sortorder Current sort order * @param string $prefix Prefix for css. Use space after prefix to add your own CSS tag. @@ -4816,7 +5042,7 @@ function print_liste_field_titre($name, $file = "", $field = "", $begin = "", $m * @param string $field Field to use for new sorting. Empty if this field is not sortable. Example "t.abc" or "t.abc,t.def" * @param string $begin ("" by defaut) * @param string $moreparam Add more parameters on sort url links ("" by default) - * @param string $moreattrib Add more attributes on th ("" by defaut, example: 'align="center"'). To add more css class, use param $prefix. + * @param string $moreattrib Add more attributes on th ("" by defaut). To add more css class, use param $prefix. * @param string $sortfield Current field used to sort (Ex: 'd.datep,d.id') * @param string $sortorder Current sort order (Ex: 'asc,desc') * @param string $prefix Prefix for css. Use space after prefix to add your own CSS tag, for example 'mycss '. @@ -4860,10 +5086,10 @@ function getTitleFieldOfList($name, $thead = 0, $file = "", $field = "", $begin $liste_titre = 'liste_titre_sel'; } - $out .= '<'.$tag.' class="'.$prefix.$liste_titre.'" '.$moreattrib; + $tagstart = '<'.$tag.' class="'.$prefix.$liste_titre.'" '.$moreattrib; //$out .= (($field && empty($conf->global->MAIN_DISABLE_WRAPPING_ON_COLUMN_TITLE) && preg_match('/^[a-zA-Z_0-9\s\.\-:&;]*$/', $name)) ? ' title="'.dol_escape_htmltag($langs->trans($name)).'"' : ''); - $out .= ($name && empty($conf->global->MAIN_DISABLE_WRAPPING_ON_COLUMN_TITLE) && empty($forcenowrapcolumntitle) && !dol_textishtml($name)) ? ' title="'.dol_escape_htmltag($langs->trans($name)).'"' : ''; - $out .= '>'; + $tagstart .= ($name && empty($conf->global->MAIN_DISABLE_WRAPPING_ON_COLUMN_TITLE) && empty($forcenowrapcolumntitle) && !dol_textishtml($name)) ? ' title="'.dol_escape_htmltag($langs->trans($name)).'"' : ''; + $tagstart .= '>'; if (empty($thead) && $field && empty($disablesortlink)) { // If this is a sort field $options = preg_replace('/sortfield=([a-zA-Z0-9,\s\.]+)/i', '', (is_scalar($moreparam) ? $moreparam : '')); @@ -4877,12 +5103,10 @@ function getTitleFieldOfList($name, $thead = 0, $file = "", $field = "", $begin if ($field1 != $sortfield1) { // We are on another field than current sorted field if (preg_match('/^DESC/i', $sortorder)) { $sortordertouseinlink .= str_repeat('desc,', count(explode(',', $field))); - } else // We reverse the var $sortordertouseinlink - { + } else { // We reverse the var $sortordertouseinlink $sortordertouseinlink .= str_repeat('asc,', count(explode(',', $field))); } - } else // We are on field that is the first current sorting criteria - { + } else { // We are on field that is the first current sorting criteria if (preg_match('/^ASC/i', $sortorder)) { // We reverse the var $sortordertouseinlink $sortordertouseinlink .= str_repeat('desc,', count(explode(',', $field))); } else { @@ -4895,8 +5119,12 @@ function getTitleFieldOfList($name, $thead = 0, $file = "", $field = "", $begin $out .= '>'; } if ($tooltip) { - // You can also use 'TranslationString:keyfortooltiponlick' for a tooltip on click. - $tmptooltip = explode(':', $tooltip); + // You can also use 'TranslationString:keyfortooltiponclick' for a tooltip on click. + if (preg_match('/:\w+$/', $tooltip)) { + $tmptooltip = explode(':', $tooltip); + } else { + $tmptooltip = array($tooltip); + } $out .= $form->textwithpicto($langs->trans($name), $langs->trans($tmptooltip[0]), 1, 'help', '', 0, 3, (empty($tmptooltip[1]) ? '' : 'extra_'.str_replace('.', '_', $field).'_'.$tmptooltip[1])); } else { $out .= $langs->trans($name); @@ -4921,19 +5149,19 @@ function getTitleFieldOfList($name, $thead = 0, $file = "", $field = "", $begin if (preg_match('/^DESC/', $sortorder)) { //$out.= ''.img_down("A-Z",0).''; //$out.= ''.img_up("Z-A",1).''; - $sortimg .= ''.img_up("Z-A", 0, 'paddingleft').''; + $sortimg .= ''.img_up("Z-A", 0, 'paddingright').''; } if (preg_match('/^ASC/', $sortorder)) { //$out.= ''.img_down("A-Z",1).''; //$out.= ''.img_up("Z-A",0).''; - $sortimg .= ''.img_down("A-Z", 0, 'paddingleft').''; + $sortimg .= ''.img_down("A-Z", 0, 'paddingright').''; } } } - $out .= $sortimg; + $tagend = ''; - $out .= ''; + $out = $tagstart.$sortimg.$out.$tagend; return $out; } @@ -5192,7 +5420,8 @@ function print_fleche_navigation($page, $file, $options = '', $nextpage = 0, $be print ''; } if ((int) $limit > 0 && empty($hideselectlimit)) { - $pagesizechoices = '10:10,15:15,20:20,30:30,40:40,50:50,100:100,250:250,500:500,1000:1000,5000:5000,25000:25000'; + $pagesizechoices = '10:10,15:15,20:20,30:30,40:40,50:50,100:100,250:250,500:500,1000:1000'; + $pagesizechoices .= ',5000:5000,10000:10000,20000:20000'; //$pagesizechoices.=',0:'.$langs->trans("All"); // Not yet supported //$pagesizechoices.=',2:2'; if (!empty($conf->global->MAIN_PAGESIZE_CHOICES)) { @@ -5266,9 +5495,10 @@ function print_fleche_navigation($page, $file, $options = '', $nextpage = 0, $be * @param boolean $addpercent Add a percent % sign in output * @param int $info_bits Miscellaneous information on vat (0=Default, 1=French NPR vat) * @param int $usestarfornpr -1=Never show, 0 or 1=Use '*' for NPR vat rates + * @param int $html Used for html output * @return string String with formated amounts ('19,6' or '19,6%' or '8.5% (NPR)' or '8.5% *' or '19,6 (CODEX)') */ -function vatrate($rate, $addpercent = false, $info_bits = 0, $usestarfornpr = 0) +function vatrate($rate, $addpercent = false, $info_bits = 0, $usestarfornpr = 0, $html = 0) { $morelabel = ''; @@ -5276,9 +5506,11 @@ function vatrate($rate, $addpercent = false, $info_bits = 0, $usestarfornpr = 0) $rate = str_replace('%', '', $rate); $addpercent = true; } + $reg = array(); if (preg_match('/\((.*)\)/', $rate, $reg)) { $morelabel = ' ('.$reg[1].')'; $rate = preg_replace('/\s*'.preg_quote($morelabel, '/').'/', '', $rate); + $morelabel = ' '.($html ? '' : '').'('.$reg[1].')'.($html ? '' : ''); } if (preg_match('/\*/', $rate)) { $rate = str_replace('*', '', $rate); @@ -5306,7 +5538,7 @@ function vatrate($rate, $addpercent = false, $info_bits = 0, $usestarfornpr = 0) * * @param float $amount Amount to format * @param integer $form Type of format, HTML or not (not by default) - * @param Translate|string $outlangs Object langs for output + * @param Translate|string $outlangs Object langs for output. '' use default lang. 'none' use international separators. * @param int $trunc 1=Truncate if there is more decimals than MAIN_MAX_DECIMALS_SHOWN (default), 0=Does not truncate. Deprecated because amount are rounded (to unit or total amount accurancy) before beeing inserted into database or after a computation, so this parameter should be useless. * @param int $rounding Minimum number of decimal to show. If 0, no change, if -1, we use min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT) * @param int $forcerounding Force the number of decimal to forcerounding decimal (-1=do not force) @@ -5329,25 +5561,31 @@ function price($amount, $form = 0, $outlangs = '', $trunc = 1, $rounding = -1, $ } $nbdecimal = $rounding; - // Output separators by default (french) - $dec = ','; - $thousand = ' '; - - // If $outlangs not forced, we use use language - if (!is_object($outlangs)) { - $outlangs = $langs; - } - - if ($outlangs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") { - $dec = $outlangs->transnoentitiesnoconv("SeparatorDecimal"); - } - if ($outlangs->transnoentitiesnoconv("SeparatorThousand") != "SeparatorThousand") { - $thousand = $outlangs->transnoentitiesnoconv("SeparatorThousand"); - } - if ($thousand == 'None') { + if ($outlangs === 'none') { + // Use international separators + $dec = '.'; $thousand = ''; - } elseif ($thousand == 'Space') { + } else { + // Output separators by default (french) + $dec = ','; $thousand = ' '; + + // If $outlangs not forced, we use use language + if (!is_object($outlangs)) { + $outlangs = $langs; + } + + if ($outlangs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") { + $dec = $outlangs->transnoentitiesnoconv("SeparatorDecimal"); + } + if ($outlangs->transnoentitiesnoconv("SeparatorThousand") != "SeparatorThousand") { + $thousand = $outlangs->transnoentitiesnoconv("SeparatorThousand"); + } + if ($thousand == 'None') { + $thousand = ''; + } elseif ($thousand == 'Space') { + $thousand = ' '; + } } //print "outlangs=".$outlangs->defaultlang." amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'
    "; @@ -5386,7 +5624,7 @@ function price($amount, $form = 0, $outlangs = '', $trunc = 1, $rounding = -1, $ } // Add symbol of currency if requested $cursymbolbefore = $cursymbolafter = ''; - if ($currency_code) { + if ($currency_code && is_object($outlangs)) { if ($currency_code == 'auto') { $currency_code = $conf->currency; } @@ -6262,6 +6500,7 @@ function get_default_localtax($thirdparty_seller, $thirdparty_buyer, $local, $id function yn($yesno, $case = 1, $color = 0) { global $langs; + $result = 'unknown'; $classname = ''; if ($yesno == 1 || strtolower($yesno) == 'yes' || strtolower($yesno) == 'true') { // A mettre avant test sur no a cause du == 0 @@ -6367,10 +6606,10 @@ function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart = ' * * @param string $dir Directory to create (Separator must be '/'. Example: '/mydir/mysubdir') * @param string $dataroot Data root directory (To avoid having the data root in the loop. Using this will also lost the warning on first dir PHP has no permission when open_basedir is used) - * @param string|null $newmask Mask for new file (Defaults to $conf->global->MAIN_UMASK or 0755 if unavailable). Example: '0444' + * @param string $newmask Mask for new file (Defaults to $conf->global->MAIN_UMASK or 0755 if unavailable). Example: '0444' * @return int < 0 if KO, 0 = already exists, > 0 if OK */ -function dol_mkdir($dir, $dataroot = '', $newmask = null) +function dol_mkdir($dir, $dataroot = '', $newmask = '') { global $conf; @@ -6411,7 +6650,7 @@ function dol_mkdir($dir, $dataroot = '', $newmask = null) dol_syslog("functions.lib::dol_mkdir: Directory '".$ccdir."' does not exists or is outside open_basedir PHP setting.", LOG_DEBUG); umask(0); - $dirmaskdec = octdec($newmask); + $dirmaskdec = octdec((string) $newmask); if (empty($newmask)) { $dirmaskdec = empty($conf->global->MAIN_UMASK) ? octdec('0755') : octdec($conf->global->MAIN_UMASK); } @@ -6476,12 +6715,22 @@ function dol_string_nohtmltag($stringtoclean, $removelinefeed = 1, $pagecodeto = if ($strip_tags) { $temp = strip_tags($temp); } else { - $temp = str_replace('<>', '', $temp); // No reason to have this into a text, except if value is to try bypass the next html cleaning + // Remove '<' into remainging, so remove non closing html tags like '0000-021 - $temp = preg_replace($pattern, "", $temp); // pass 1 - $temp after pass 1: 0000-021 - $temp = preg_replace($pattern, "", $temp); // pass 2 - $temp after pass 2: 0000-021 - // Remove '<' into remainging, so remove non closing html tags like '0000-021 + // pass 2 - $temp after pass 2: 0000-021 + $tempbis = $temp; + do { + $temp = $tempbis; + $tempbis = str_replace('<>', '', $temp); // No reason to have this into a text, except if value is to try bypass the next html cleaning + $tempbis = preg_replace($pattern, '', $tempbis); + //$idowhile++; print $temp.'-'.$tempbis."\n"; if ($idowhile > 100) break; + } while ($tempbis != $temp); + + $temp = $tempbis; + + // Remove '<' into remaining, so remove non closing html tags like 'getElementsByTagname('*'), $i = $els->length - 1; $i >= 0; $i--) { for ($attrs = $els->item($i)->attributes, $ii = $attrs->length - 1; $ii >= 0; $ii--) { //var_dump($attrs->item($ii)); - if (! empty($attrs->item($ii)->name)) { - // Delete attribute if not into allowed_attributes + if (!empty($attrs->item($ii)->name)) { if (! in_array($attrs->item($ii)->name, $allowed_attributes)) { + // Delete attribute if not into allowed_attributes $els->item($i)->removeAttribute($attrs->item($ii)->name); } elseif (in_array($attrs->item($ii)->name, array('style'))) { + // If attribute is 'style' $valuetoclean = $attrs->item($ii)->value; if (isset($valuetoclean)) { @@ -6602,10 +6852,14 @@ function dol_string_onlythesehtmlattributes($stringtoclean, $allowed_attributes $valuetoclean = preg_replace('/\/\*.*\*\//m', '', $valuetoclean); // clean css comments $valuetoclean = preg_replace('/position\s*:\s*[a-z]+/mi', '', $valuetoclean); if ($els->item($i)->tagName == 'a') { // more paranoiac cleaning for clickable tags. - $valuetoclean = preg_replace('/display\s*://m', '', $valuetoclean); - $valuetoclean = preg_replace('/z-index\s*://m', '', $valuetoclean); - $valuetoclean = preg_replace('/\s+(top|left|right|bottom)\s*://m', '', $valuetoclean); + $valuetoclean = preg_replace('/display\s*:/mi', '', $valuetoclean); + $valuetoclean = preg_replace('/z-index\s*:/mi', '', $valuetoclean); + $valuetoclean = preg_replace('/\s+(top|left|right|bottom)\s*:/mi', '', $valuetoclean); } + + // We do not allow logout|passwordforgotten.php and action= into the content of a "style" tag + $valuetoclean = preg_replace('/(logout|passwordforgotten)\.php/mi', '', $valuetoclean); + $valuetoclean = preg_replace('/action=/mi', '', $valuetoclean); } while ($oldvaluetoclean != $valuetoclean); } @@ -6815,7 +7069,7 @@ function dol_html_entity_decode($a, $b, $c = 'UTF-8', $keepsomeentities = 0) if ($keepsomeentities) { $newstring = strtr($newstring, array('&'=>'__andamp__', '<'=>'__andlt__', '>'=>'__andgt__', '"'=>'__dquot__')); } - $newstring = html_entity_decode($newstring, $b, $c); + $newstring = html_entity_decode((string) $newstring, (int) $b, (string) $c); if ($keepsomeentities) { $newstring = strtr($newstring, array('__andamp__'=>'&', '__andlt__'=>'<', '__andgt__'=>'>', '__dquot__'=>'"')); } @@ -6958,6 +7212,8 @@ function dol_textishtml($msg, $option = 0) } return false; } else { + // Remove all urls because 'http://aa?param1=abc&param2=def' must not be used inside detection + $msg = preg_replace('/https?:\/\/[^"\'\s]+/i', '', $msg); if (preg_match('//i', $msg)) { return true; } elseif (preg_match('/&[A-Z0-9]{1,6};/i', $msg)) { + // TODO If content is 'A link https://aaa?param=abc&param2=def', it return true but must be false return true; // Html entities names (http://www.w3schools.com/tags/ref_entities.asp) } elseif (preg_match('/&#[0-9]{2,3};/i', $msg)) { return true; // Html entities numbers (http://www.w3schools.com/tags/ref_entities.asp) @@ -7038,9 +7295,12 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, if (empty($exclude) || !in_array('user', $exclude)) { // Add SIGNATURE into substitutionarray first, so, when we will make the substitution, // this will include signature content first and then replace var found into content of signature - $signature = $user->signature; + //var_dump($onlykey); + $emailsendersignature = $user->signature; // dy default, we use the signature of current user. We must complete substitution with signature in c_email_senderprofile of array after calling getCommonSubstitutionArray() + $usersignature = $user->signature; $substitutionarray = array_merge($substitutionarray, array( - '__USER_SIGNATURE__' => (string) (($signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? ($onlykey == 2 ? dol_trunc(dol_string_nohtmltag($signature), 30) : $signature) : '') + '__SENDEREMAIL_SIGNATURE__' => (string) ((empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? ($onlykey == 2 ? dol_trunc('SignatureFromTheSelectedSenderProfile', 30) : $emailsendersignature) : ''), + '__USER_SIGNATURE__' => (string) (($usersignature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? ($onlykey == 2 ? dol_trunc(dol_string_nohtmltag($usersignature), 30) : $usersignature) : '') )); if (is_object($user)) { @@ -7090,13 +7350,14 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__ID__'] = '__ID__'; $substitutionarray['__REF__'] = '__REF__'; $substitutionarray['__NEWREF__'] = '__NEWREF__'; + $substitutionarray['__LABEL__'] = '__LABEL__'; $substitutionarray['__REF_CLIENT__'] = '__REF_CLIENT__'; $substitutionarray['__REF_SUPPLIER__'] = '__REF_SUPPLIER__'; $substitutionarray['__NOTE_PUBLIC__'] = '__NOTE_PUBLIC__'; $substitutionarray['__NOTE_PRIVATE__'] = '__NOTE_PRIVATE__'; $substitutionarray['__EXTRAFIELD_XXX__'] = '__EXTRAFIELD_XXX__'; - if (!empty($conf->societe->enabled)) { // Most objects are concerned + if (isModEnabled("societe")) { // Most objects are concerned $substitutionarray['__THIRDPARTY_ID__'] = '__THIRDPARTY_ID__'; $substitutionarray['__THIRDPARTY_NAME__'] = '__THIRDPARTY_NAME__'; $substitutionarray['__THIRDPARTY_NAME_ALIAS__'] = '__THIRDPARTY_NAME_ALIAS__'; @@ -7118,7 +7379,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__THIRDPARTY_NOTE_PUBLIC__'] = '__THIRDPARTY_NOTE_PUBLIC__'; $substitutionarray['__THIRDPARTY_NOTE_PRIVATE__'] = '__THIRDPARTY_NOTE_PRIVATE__'; } - if (!empty($conf->adherent->enabled) && (!is_object($object) || $object->element == 'adherent')) { + if (isModEnabled('adherent') && (!is_object($object) || $object->element == 'adherent')) { $substitutionarray['__MEMBER_ID__'] = '__MEMBER_ID__'; $substitutionarray['__MEMBER_CIVILITY__'] = '__MEMBER_CIVILITY__'; $substitutionarray['__MEMBER_FIRSTNAME__'] = '__MEMBER_FIRSTNAME__'; @@ -7140,24 +7401,27 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__TICKET_USER_ASSIGN__'] = '__TICKET_USER_ASSIGN__'; } - if (!empty($conf->recruitment->enabled) && (!is_object($object) || $object->element == 'candidature')) { + if (isModEnabled('recruitment') && (!is_object($object) || $object->element == 'recruitmentcandidature')) { $substitutionarray['__CANDIDATE_FULLNAME__'] = '__CANDIDATE_FULLNAME__'; $substitutionarray['__CANDIDATE_FIRSTNAME__'] = '__CANDIDATE_FIRSTNAME__'; $substitutionarray['__CANDIDATE_LASTNAME__'] = '__CANDIDATE_LASTNAME__'; } - if (!empty($conf->projet->enabled)) { // Most objects + if (isModEnabled('project')) { // Most objects $substitutionarray['__PROJECT_ID__'] = '__PROJECT_ID__'; $substitutionarray['__PROJECT_REF__'] = '__PROJECT_REF__'; $substitutionarray['__PROJECT_NAME__'] = '__PROJECT_NAME__'; /*$substitutionarray['__PROJECT_NOTE_PUBLIC__'] = '__PROJECT_NOTE_PUBLIC__'; $substitutionarray['__PROJECT_NOTE_PRIVATE__'] = '__PROJECT_NOTE_PRIVATE__';*/ } - if (!empty($conf->contrat->enabled) && (!is_object($object) || $object->element == 'contract')) { + if (isModEnabled('contrat') && (!is_object($object) || $object->element == 'contract')) { $substitutionarray['__CONTRACT_HIGHEST_PLANNED_START_DATE__'] = 'Highest date planned for a service start'; $substitutionarray['__CONTRACT_HIGHEST_PLANNED_START_DATETIME__'] = 'Highest date and hour planned for service start'; $substitutionarray['__CONTRACT_LOWEST_EXPIRATION_DATE__'] = 'Lowest data for planned expiration of service'; $substitutionarray['__CONTRACT_LOWEST_EXPIRATION_DATETIME__'] = 'Lowest date and hour for planned expiration of service'; } + if (isModEnabled("propal") && (!is_object($object) || $object->element == 'propal')) { + $substitutionarray['__ONLINE_SIGN_URL__'] = 'ToOfferALinkForOnlineSignature'; + } $substitutionarray['__ONLINE_PAYMENT_URL__'] = 'UrlToPayOnlineIfApplicable'; $substitutionarray['__ONLINE_PAYMENT_TEXT_AND_URL__'] = 'TextAndUrlToPayOnlineIfApplicable'; $substitutionarray['__SECUREKEYPAYMENT__'] = 'Security key (if key is not unique per record)'; @@ -7172,11 +7436,11 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__DIRECTDOWNLOAD_URL_CONTRACT__'] = 'Direct download url of a contract'; $substitutionarray['__DIRECTDOWNLOAD_URL_SUPPLIER_PROPOSAL__'] = 'Direct download url of a supplier proposal'; - if (!empty($conf->expedition->enabled) && (!is_object($object) || $object->element == 'shipping')) { + if (isModEnabled("expedition") && (!is_object($object) || $object->element == 'shipping')) { $substitutionarray['__SHIPPINGTRACKNUM__'] = 'Shipping tracking number'; $substitutionarray['__SHIPPINGTRACKNUMURL__'] = 'Shipping tracking url'; } - if (!empty($conf->reception->enabled) && (!is_object($object) || $object->element == 'reception')) { + if (isModEnabled("reception") && (!is_object($object) || $object->element == 'reception')) { $substitutionarray['__RECEPTIONTRACKNUM__'] = 'Shippin tracking number of shipment'; $substitutionarray['__RECEPTIONTRACKNUMURL__'] = 'Shipping tracking url'; } @@ -7184,6 +7448,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__ID__'] = $object->id; $substitutionarray['__REF__'] = $object->ref; $substitutionarray['__NEWREF__'] = $object->newref; + $substitutionarray['__LABEL__'] = (isset($object->label) ? $object->label : (isset($object->title) ? $object->title : null)); $substitutionarray['__REF_CLIENT__'] = (isset($object->ref_client) ? $object->ref_client : (isset($object->ref_customer) ? $object->ref_customer : null)); $substitutionarray['__REF_SUPPLIER__'] = (isset($object->ref_supplier) ? $object->ref_supplier : null); $substitutionarray['__NOTE_PUBLIC__'] = (isset($object->note_public) ? $object->note_public : null); @@ -7232,8 +7497,8 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__MEMBER_PHONEMOBILE__'] = (isset($object->phone_mobile) ? dol_print_phone($object->phone_mobile) : ''); $substitutionarray['__MEMBER_TYPE__'] = (isset($object->type) ? $object->type : ''); $substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE__'] = dol_print_date($object->first_subscription_date, 'dayrfc'); - $substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_START__'] = dol_print_date($object->first_subscription_date_start, 'dayrfc'); - $substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_END__'] = dol_print_date($object->first_subscription_date_end, 'dayrfc'); + $substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_START__'] = (isset($object->first_subscription_date_start) ? dol_print_date($object->first_subscription_date_start, 'dayrfc') : ''); + $substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_END__'] = (isset($object->first_subscription_date_end) ? dol_print_date($object->first_subscription_date_end, 'dayrfc') : ''); $substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE__'] = dol_print_date($object->last_subscription_date, 'dayrfc'); $substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE_START__'] = dol_print_date($object->last_subscription_date_start, 'dayrfc'); $substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE_END__'] = dol_print_date($object->last_subscription_date_end, 'dayrfc'); @@ -7289,8 +7554,8 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, if (is_object($object) && $object->element == 'recruitmentcandidature') { $substitutionarray['__CANDIDATE_FULLNAME__'] = $object->getFullName($outputlangs); - $substitutionarray['__CANDIDATE_FIRSTNAME__'] = $object->firstname; - $substitutionarray['__CANDIDATE_LASTNAME__'] = $object->lastname; + $substitutionarray['__CANDIDATE_FIRSTNAME__'] = isset($object->firstname) ? $object->firstname : ''; + $substitutionarray['__CANDIDATE_LASTNAME__'] = isset($object->lastname) ? $object->lastname : ''; } if (is_object($object->project)) { @@ -7414,6 +7679,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, $substitutionarray['__ONLINE_PAYMENT_URL__'] = $paymenturl; if (is_object($object) && $object->element == 'propal') { + require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php'; $substitutionarray['__ONLINE_SIGN_URL__'] = getOnlineSignatureUrl(0, 'proposal', $object->ref); } if (!empty($conf->global->PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'propal') { @@ -7555,7 +7821,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null, )); } - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $substitutionarray = array_merge($substitutionarray, array('__ENTITY_ID__' => $conf->entity)); } if (empty($exclude) || !in_array('system', $exclude)) { @@ -7620,6 +7886,7 @@ function make_substitutions($text, $substitutionarray, $outputlangs = null, $con } else { if (! $msgishtml) { $valueishtml = dol_textishtml($value, 1); + //var_dump("valueishtml=".$valueishtml); if ($valueishtml) { $text = dol_htmlentitiesbr($text); @@ -7664,13 +7931,13 @@ function make_substitutions($text, $substitutionarray, $outputlangs = null, $con } } - // Make substitition for array $substitutionarray + // Make substitution for array $substitutionarray foreach ($substitutionarray as $key => $value) { if (!isset($value)) { continue; // If value is null, it same than not having substitution key at all into array, we do not replace. } - if ($key == '__USER_SIGNATURE__' && (!empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) { + if (($key == '__USER_SIGNATURE__' || $key == '__SENDEREMAIL_SIGNATURE__') && (!empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) { $value = ''; // Protection } @@ -7985,7 +8252,6 @@ function get_htmloutput_mesg($mesgstring = '', $mesgarray = '', $style = 'ok', $ } } if ($mesgstring) { - $langs->load("errors"); $ret++; $out .= $langs->trans($mesgstring); } @@ -8337,7 +8603,7 @@ function verifCond($strToEvaluate) //dol_eval($str, 0, 1, '2'); // The dol_eval must contains all the global $xxx used into a condition //var_dump($strToEvaluate); $rep = dol_eval($strToEvaluate, 1, 1, '1'); // The dol_eval must contains all the global $xxx for all variables $xxx found into the string condition - $rights = (($rep && strpos($rep, 'Bad string syntax to evaluate') === false) ? true : false); + $rights = $rep && (!is_string($rep) || strpos($rep, 'Bad string syntax to evaluate') === false); //var_dump($rights); } return $rights; @@ -8350,7 +8616,7 @@ function verifCond($strToEvaluate) * @param string $s String to evaluate * @param int $returnvalue 0=No return (used to execute eval($a=something)). 1=Value of eval is returned (used to eval($something)). * @param int $hideerrors 1=Hide errors - * @param string $onlysimplestring 0=Accept all chars, 1=Accept only simple string with char 'a-z0-9\s^$_->&|=!?():"\',/' and restrict use of (, 2=Accept also ';' and no restriction on (. + * @param string $onlysimplestring 0=Accept all chars, 1=Accept only simple string with char 'a-z0-9\s^$_+-.*\/>&|=!?():"\',/';', 2=Accept also ';[]' * @return mixed Nothing or return result of eval */ function dol_eval($s, $returnvalue = 0, $hideerrors = 1, $onlysimplestring = '1') @@ -8369,7 +8635,8 @@ function dol_eval($s, $returnvalue = 0, $hideerrors = 1, $onlysimplestring = '1' if ($onlysimplestring == '1') { // We must accept: '1 && getDolGlobalInt("doesnotexist1") && $conf->global->MAIN_FEATURES_LEVEL' // We must accept: '$conf->barcode->enabled && preg_match(\'/^(AAA|BBB)/\',$leftmenu)' - if (preg_match('/[^a-z0-9\s'.preg_quote('^$_+-*>&|=!?():"\',/', '/').']/i', $s)) { + // We must accept: '$user->rights->cabinetmed->read && $object->canvas=="patient@cabinetmed"' + if (preg_match('/[^a-z0-9\s'.preg_quote('^$_+-.*>&|=!?():"\',/@', '/').']/i', $s)) { if ($returnvalue) { return 'Bad string syntax to evaluate (found chars that are not chars for simplestring): '.$s; } else { @@ -8381,7 +8648,7 @@ function dol_eval($s, $returnvalue = 0, $hideerrors = 1, $onlysimplestring = '1' } } elseif ($onlysimplestring == '2') { // We must accept: (($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" - if (preg_match('/[^a-z0-9\s'.preg_quote('^$_+-*>&|=!?():"\',/;[]', '/').']/i', $s)) { + if (preg_match('/[^a-z0-9\s'.preg_quote('^$_+-.*>&|=!?():"\',/@;[]', '/').']/i', $s)) { if ($returnvalue) { return 'Bad string syntax to evaluate (found chars that are not chars for simplestring): '.$s; } else { @@ -8406,7 +8673,7 @@ function dol_eval($s, $returnvalue = 0, $hideerrors = 1, $onlysimplestring = '1' return ''; } } - if (strpos($s, '.') !== false) { + if (preg_match('/[^0-9]+\.[^0-9]+/', $s)) { // We refuse . if not between 2 numbers if ($returnvalue) { return 'Bad string syntax to evaluate (dot char is forbidden): '.$s; } else { @@ -8781,8 +9048,12 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, foreach ($conf->modules_parts['tabs'][$type] as $value) { $values = explode(':', $value); + $reg = array(); if ($mode == 'add' && !preg_match('/^\-/', $values[1])) { - if (count($values) == 6) { // new declaration with permissions: $value='objecttype:+tabname1:Title1:langfile@mymodule:$user->rights->mymodule->read:/mymodule/mynewtab1.php?id=__ID__' + if (count($values) == 6) { + // new declaration with permissions: + // $value='objecttype:+tabname1:Title1:langfile@mymodule:$user->rights->mymodule->read:/mymodule/mynewtab1.php?id=__ID__' + // $value='objecttype:+tabname1:Title1,class,pathfile,method:langfile@mymodule:$user->rights->mymodule->read:/mymodule/mynewtab1.php?id=__ID__' if ($values[0] != $type) { continue; } @@ -8796,7 +9067,7 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, complete_substitutions_array($substitutionarray, $langs, $object, array('needforkey'=>$values[2])); $label = make_substitutions($reg[1], $substitutionarray); } else { - $labeltemp = explode(':', $values[2]); + $labeltemp = explode(',', $values[2]); $label = $langs->trans($labeltemp[0]); if (!empty($labeltemp[1]) && is_object($object) && !empty($object->id)) { dol_include_once($labeltemp[2]); @@ -8905,6 +9176,7 @@ function printCommonFooter($zone = 'private') print "\n"; if (!empty($conf->use_javascript_ajax)) { + print "\n\n"; print ''; + } +} diff --git a/htdocs/core/lib/sendings.lib.php b/htdocs/core/lib/sendings.lib.php index e2ab74b8cfc..df6e3231a0b 100644 --- a/htdocs/core/lib/sendings.lib.php +++ b/htdocs/core/lib/sendings.lib.php @@ -280,7 +280,7 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') print '
    '; } /*TODO Add link to expeditiondet_batch - if (! empty($conf->productbatch->enabled)) + if (!empty($conf->productbatch->enabled)) { print ''; @@ -396,9 +396,9 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') // Batch number managment /*TODO Add link to expeditiondet_batch - if (! empty($conf->productbatch->enabled)) + if (!empty($conf->productbatch->enabled)) { - var_dump($objp->edrowid); + //var_dump($objp->edrowid); $lines[$i]->detail_batch if (isset($lines[$i]->detail_batch)) { diff --git a/htdocs/core/lib/signature.lib.php b/htdocs/core/lib/signature.lib.php index c57807800d7..d2f0c64f463 100644 --- a/htdocs/core/lib/signature.lib.php +++ b/htdocs/core/lib/signature.lib.php @@ -77,7 +77,7 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1) $securekeyseed = ''; if ($type == 'proposal') { - $securekeyseed = $conf->global->PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN; + $securekeyseed = isset($conf->global->PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN) ? $conf->global->PROPOSAL_ONLINE_SIGNATURE_SECURITY_TOKEN : ''; $out = $urltouse.'/public/onlinesign/newonlinesign.php?source=proposal&ref='.($mode ? '' : ''); if ($mode == 1) { @@ -90,7 +90,7 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1) if ($mode == 1) { $out .= "hash('".$securekeyseed."' + '".$type."' + proposal_ref)"; } else { - $out .= '&securekey='.dol_hash($securekeyseed.$type.$ref, '0'); + $out .= '&securekey='.dol_hash($securekeyseed.$type.$ref.(!isModEnabled('multicompany') ? '' : $object->entity), '0'); } /* if ($mode == 1) { @@ -119,7 +119,7 @@ function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1) } // 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/core/lib/stock.lib.php b/htdocs/core/lib/stock.lib.php index c6b1bdefe6c..afad01ebcff 100644 --- a/htdocs/core/lib/stock.lib.php +++ b/htdocs/core/lib/stock.lib.php @@ -54,7 +54,7 @@ function stock_prepare_head($object) */ /* Disabled because will never be implemented. Table always empty. - if (! empty($conf->global->STOCK_USE_WAREHOUSE_BY_USER)) + if (!empty($conf->global->STOCK_USE_WAREHOUSE_BY_USER)) { // Should not be enabled by defaut because does not work yet correctly because // personnal stocks are not tagged into table llx_entrepot diff --git a/htdocs/core/lib/takepos.lib.php b/htdocs/core/lib/takepos.lib.php index d983f0298ce..c7714501d90 100644 --- a/htdocs/core/lib/takepos.lib.php +++ b/htdocs/core/lib/takepos.lib.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2009 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 @@ -53,10 +54,10 @@ function takepos_admin_prepare_head() $head[$h][2] = 'bar'; $h++; - $numterminals = max(1, $conf->global->TAKEPOS_NUM_TERMINALS); + $numterminals = max(1, getDolGlobalInt('TAKEPOS_NUM_TERMINALS', 1)); for ($i = 1; $i <= $numterminals; $i++) { $head[$h][0] = DOL_URL_ROOT.'/takepos/admin/terminal.php?terminal='.$i; - $head[$h][1] = $langs->trans("Terminal")." ".$i; + $head[$h][1] = getDolGlobalString('TAKEPOS_TERMINAL_NAME_'.$i, $langs->trans("TerminalName", $i)); $head[$h][2] = 'terminal'.$i; $h++; } diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index 2e70bfba3b9..5fd2682d175 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -1,7 +1,7 @@ * Copyright (C) 2016 Christophe Battarel - * Copyright (C) 2019-2020 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 @@ -84,7 +84,7 @@ function ticket_prepare_head($object) $head[$h][2] = 'tabTicket'; $h++; - if (empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && empty($user->socid) && $conf->societe->enabled) { + if (empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && empty($user->socid) && isModEnabled("societe")) { $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/ticket/contact.php?track_id='.$object->track_id; $head[$h][1] = $langs->trans('ContactsAddresses'); @@ -126,7 +126,7 @@ function ticket_prepare_head($object) $head[$h][0] = DOL_URL_ROOT.'/ticket/agenda.php?track_id='.$object->track_id; } $head[$h][1] = $langs->trans('Events'); - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $head[$h][1] .= '/'; $head[$h][1] .= $langs->trans("Agenda"); } @@ -206,7 +206,7 @@ function generate_random_id($car = 16) function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '') { global $user, $conf, $langs, $mysoc; - + $urllogo = ""; top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss, 0, 1); // Show html headers print ''; @@ -233,7 +233,7 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $ print '
    '; print '
    '; if ($urllogo) { - print ''; + print ''; print ''; print ''; @@ -250,7 +250,7 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $ if (!empty($conf->global->TICKET_IMAGE_PUBLIC_INTERFACE)) { print '
    '; - print ''; + print ''; print '
    '; } @@ -304,7 +304,7 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no } $sortfield_new = implode(',', $sortfield_new_list); - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { // Search histo on actioncomm if (is_object($objcon) && $objcon->id > 0) { $sql = "SELECT DISTINCT a.id, a.label as label,"; @@ -440,7 +440,7 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no } // Add also event from emailings. TODO This should be replaced by an automatic event ? May be it's too much for very large emailing. - if (!empty($conf->mailing->enabled) && !empty($objcon->email) + if (isModEnabled('mailing') && !empty($objcon->email) && (empty($actioncode) || $actioncode == 'AC_OTH_AUTO' || $actioncode == 'AC_EMAILING')) { $langs->load("mails"); @@ -560,12 +560,12 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no // Set $out to sow events $out = ''; - if (empty($conf->agenda->enabled)) { + if (!isModEnabled('agenda')) { $langs->loadLangs(array("admin", "errors")); $out = info_admin($langs->trans("WarningModuleXDisabledSoYouMayMissEventHere", $langs->transnoentitiesnoconv("Module2400Name")), 0, 0, 'warning'); } - if (!empty($conf->agenda->enabled) || (!empty($conf->mailing->enabled) && !empty($objcon->email))) { + if (isModEnabled('agenda') || (isModEnabled('mailing') && !empty($objcon->email))) { $delay_warning = $conf->global->MAIN_DELAY_ACTIONS_TODO * 24 * 60 * 60; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; @@ -697,8 +697,8 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no // $out.=''.$langs->trans('Show').''; //} - if ($user->rights->agenda->allactions->create || - (($actionstatic->authorid == $user->id || $actionstatic->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { + if (!empty($user->rights->agenda->allactions->create) || + (($actionstatic->authorid == $user->id || $actionstatic->userownerid == $user->id) && !empty($user->rights->agenda->myactions->create))) { $out .= ''; } diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index c963c74c8b6..bbfef844bb6 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -29,10 +29,10 @@ /** * Prepare array with list of tabs * - * @param Object $object Object related to tabs + * @param User $object Object related to tabs * @return array Array of tabs to show */ -function user_prepare_head($object) +function user_prepare_head(User $object) { global $langs, $conf, $user, $db; @@ -72,7 +72,7 @@ function user_prepare_head($object) $head[$h][2] = 'guisetup'; $h++; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (empty($conf->global->AGENDA_EXT_NB)) { $conf->global->AGENDA_EXT_NB = 5; } @@ -142,9 +142,9 @@ function user_prepare_head($object) complete_head_from_modules($conf, $langs, $object, $head, $h, 'user'); if ((!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read)) - || (!empty($conf->hrm->enabled) && !empty($user->rights->hrm->employee->read)) - || (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall)) - || (!empty($conf->holiday->enabled) && !empty($user->rights->holiday->read) && ($user->id == $object->id || $user->rights->holiday->readall)) + || (isModEnabled('hrm') && !empty($user->rights->hrm->employee->read)) + || (isModEnabled('expensereport') && !empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall)) + || (isModEnabled('holiday') && !empty($user->rights->holiday->read) && ($user->id == $object->id || $user->rights->holiday->readall)) ) { // Bank $head[$h][0] = DOL_URL_ROOT.'/user/bank.php?id='.$object->id; @@ -212,7 +212,7 @@ function group_prepare_head($object) $head = array(); $head[$h][0] = DOL_URL_ROOT.'/user/group/card.php?id='.$object->id; - $head[$h][1] = $langs->trans("GroupCard"); + $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'group'; $h++; @@ -367,11 +367,17 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) $url = 'https://www.dolistore.com/9-skins'; print ''; print $langs->trans('DownloadMoreSkins'); + print img_picto('', 'globe', 'class="paddingleft"'); print ''; print '
    '; } - print ''; @@ -225,6 +236,7 @@ class doc_generic_bom_odt extends ModelePDFBom $sav_charset_output = $outputlangs->charset_output; $outputlangs->charset_output = 'UTF-8'; + // Load translation files required by the page $outputlangs->loadLangs(array("main", "dict", "companies", "bills")); if ($conf->bom->dir_output) { @@ -240,6 +252,7 @@ class doc_generic_bom_odt extends ModelePDFBom } $object->fetch_thirdparty(); + $object->fetch_product(); $dir = $conf->bom->multidir_output[isset($object->entity) ? $object->entity : 1]; $objectref = dol_sanitizeFileName($object->ref); @@ -261,7 +274,7 @@ class doc_generic_bom_odt extends ModelePDFBom $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -270,11 +283,11 @@ class doc_generic_bom_odt extends ModelePDFBom 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; @@ -282,8 +295,8 @@ class doc_generic_bom_odt extends ModelePDFBom dol_mkdir($conf->bom->dir_temp); if (!is_writable($conf->bom->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->bom->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->bom->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } @@ -406,10 +419,22 @@ class doc_generic_bom_odt extends ModelePDFBom $foundtagforlines = 0; dol_syslog($e->getMessage(), LOG_INFO); } + if ($foundtagforlines) { $linenumber = 0; foreach ($object->lines as $line) { $linenumber++; + + if ($line->fk_product > 0) { + $line->fetch_product(); + + $line->product_ref = $line->product->ref; + $line->product_desc = $line->product->description; + $line->product_label = $line->product->label; + $line->product_type = $line->product->type; + $line->product_barcode = $line->product->barcode; + } + $tmparray = $this->get_substitutionarray_lines($line, $outputlangs, $linenumber); complete_substitutions_array($tmparray, $outputlangs, $object, $line, "completesubstitutionarray_lines"); // Call the ODTSubstitutionLine hook diff --git a/htdocs/core/modules/bom/mod_bom_advanced.php b/htdocs/core/modules/bom/mod_bom_advanced.php index 09faf05d7d6..2228d643434 100644 --- a/htdocs/core/modules/bom/mod_bom_advanced.php +++ b/htdocs/core/modules/bom/mod_bom_advanced.php @@ -79,7 +79,7 @@ class mod_bom_advanced extends ModeleNumRefboms // Parametrage du prefix $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -128,7 +128,7 @@ class mod_bom_advanced extends ModeleNumRefboms require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->BOM_ADVANCED_MASK; + $mask = getDolGlobalString('BOM_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php index c59d1c40ee9..b9ff88c4fe6 100644 --- a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php +++ b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php @@ -90,7 +90,6 @@ class doc_generic_order_odt extends ModelePDFCommandes $this->option_tva = 0; // Manage the vat option COMMANDE_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 @@ -182,7 +181,13 @@ class doc_generic_order_odt extends ModelePDFCommandes $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 .= '
    '; @@ -275,7 +280,7 @@ class doc_generic_order_odt extends ModelePDFCommandes $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -284,11 +289,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; @@ -296,8 +301,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 db961962ba6..b1476b393d0 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -158,12 +158,12 @@ class pdf_einstein extends ModelePDFCommandes $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -236,6 +236,11 @@ class pdf_einstein extends ModelePDFCommandes // Load translation files required by the page $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; + } + global $outputlangsbis; $outputlangsbis = null; if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { @@ -524,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; @@ -606,6 +611,9 @@ class pdf_einstein extends ModelePDFCommandes 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) { if ($pagenb == 1) { @@ -742,6 +750,9 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetXY($posxval, $posy); $lib_condition_paiement = $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) != ('PaymentCondition'.$object->cond_reglement_code) ? $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) : $outputlangs->convToOutputCharset($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement_label); $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + if ($object->deposit_percent > 0) { + $lib_condition_paiement = str_replace('__DEPOSIT_PERCENT__', $object->deposit_percent, $lib_condition_paiement); + } $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); $posy = $pdf->GetY() + 3; @@ -763,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); @@ -927,14 +938,14 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $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)) { @@ -943,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'))) { @@ -973,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'))) { @@ -1033,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'))) { @@ -1064,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'))) { @@ -1282,11 +1293,6 @@ class pdf_einstein 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); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -1531,6 +1537,6 @@ class pdf_einstein extends ModelePDFCommandes // phpcs:enable global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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 3b946d1f3ce..34cdb41e6b8 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -27,7 +27,7 @@ /** * \file htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php * \ingroup commande - * \brief File of Class to generate PDF orders with template Eratosthène + * \brief File of Class to generate PDF orders with template Eratosthene */ require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; @@ -163,12 +163,12 @@ class pdf_eratosthene extends ModelePDFCommandes $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -220,6 +220,11 @@ class pdf_eratosthene extends ModelePDFCommandes // Load translation files required by the page $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; + } + global $outputlangsbis; $outputlangsbis = null; if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { @@ -749,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; @@ -830,6 +835,9 @@ class pdf_eratosthene extends ModelePDFCommandes 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) { if ($pagenb == $pageposafter) { @@ -960,6 +968,9 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->SetXY($posxval, $posy); $lib_condition_paiement = $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) != ('PaymentCondition'.$object->cond_reglement_code) ? $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) : $outputlangs->convToOutputCharset($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement_label); $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + if ($object->deposit_percent > 0) { + $lib_condition_paiement = str_replace('__DEPOSIT_PERCENT__', $object->deposit_percent, $lib_condition_paiement); + } $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); $posy = $pdf->GetY() + 3; @@ -981,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); @@ -1141,14 +1152,14 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->SetFillColor(255, 255, 255); $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $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)) { @@ -1157,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'))) { @@ -1186,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'))) { @@ -1246,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'))) { @@ -1277,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'))) { @@ -1449,11 +1460,6 @@ class pdf_eratosthene 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); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -1528,7 +1534,7 @@ class pdf_eratosthene extends ModelePDFCommandes $posy += 4; $pdf->SetXY($posx, $posy); $pdf->SetTextColor(0, 0, 60); - $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".$outputlangs->convToOutputCharset($object->ref_client), '', 'R'); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_client), 65), '', 'R'); } if (!empty($conf->global->PDF_SHOW_PROJECT_TITLE)) { @@ -1716,7 +1722,7 @@ class pdf_eratosthene extends ModelePDFCommandes // phpcs:enable global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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/mod_commande_marbre.php b/htdocs/core/modules/commande/mod_commande_marbre.php index 0cc9324ef16..8c9ef0385eb 100644 --- a/htdocs/core/modules/commande/mod_commande_marbre.php +++ b/htdocs/core/modules/commande/mod_commande_marbre.php @@ -48,6 +48,18 @@ class mod_commande_marbre extends ModeleNumRefCommandes public $name = 'Marbre'; + /** + * Constructor + */ + public function __construct() + { + global $conf, $mysoc; + + if ((float) $conf->global->MAIN_VERSION_LAST_INSTALL >= 16.0 && $mysoc->country_code != 'FR') { + $this->prefix = 'SO'; // We use correct standard code "SO = Sale Order" + } + } + /** * Return description of numbering module * diff --git a/htdocs/core/modules/commande/mod_commande_saphir.php b/htdocs/core/modules/commande/mod_commande_saphir.php index ffb53480aa3..ad2b109f2d1 100644 --- a/htdocs/core/modules/commande/mod_commande_saphir.php +++ b/htdocs/core/modules/commande/mod_commande_saphir.php @@ -79,7 +79,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes // Parametrage du prefix $texte .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -104,7 +104,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes $old_code_type = $mysoc->typent_code; $mysoc->code_client = 'CCCCCCCCCC'; $mysoc->typent_code = 'TTTTTTTTTT'; - $numExample = $this->getNextValue($mysoc, ''); + $numExample = $this->getNextValue($mysoc, null); $mysoc->code_client = $old_code_client; $mysoc->typent_code = $old_code_type; @@ -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'; @@ -138,7 +138,11 @@ class mod_commande_saphir extends ModeleNumRefCommandes // Get entities $entity = getEntity('ordernumber', 1, $object); - $date = ($object->date_commande ? $object->date_commande : $object->date); + if (is_object($object)) { + $date = ($object->date_commande ? $object->date_commande : $object->date); + } else { + $date = dol_now(); + } $numFinal = get_next_value($db, $mask, 'commande', 'ref', '', $objsoc, $date, 'next', false, null, $entity); 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 d673379b32d..df584348e5e 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 @@ -88,7 +88,6 @@ class doc_generic_contract_odt extends ModelePDFContract $this->option_tva = 0; // Manage the vat CONTRACT_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 @@ -167,7 +166,13 @@ class doc_generic_contract_odt extends ModelePDFContract } // 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 .= '
    '; @@ -261,7 +266,7 @@ class doc_generic_contract_odt extends ModelePDFContract $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); @@ -270,11 +275,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; @@ -282,8 +287,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; } diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index 085f7bee190..1875cfb833c 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -154,7 +154,6 @@ class pdf_strato extends ModelePDFContract $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 = 0; // Available in several languages $this->option_draft_watermark = 1; // Support add of a watermark on drafts @@ -438,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) { 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 .= '
    '; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= '
    '.$langs->trans("Warehouse").''; print '
    '; + print '
    '; + + if (!empty($conf->global->MAIN_FORCETHEME)) { + $langs->load("errors"); + print $langs->trans("WarningThemeForcedTo", $conf->global->MAIN_FORCETHEME); + } print ''; + print ''; + print ''; + print $form->textwithpicto('', $langs->trans("DoesNotWorkWithAllThemes")); print ''; - /* - print ''; - print "";*/ } @@ -473,7 +483,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print ''; print ''; print ''; - print ''; print '';*/ } else { - $default = $langs->trans('No'); + $listoftopmenumodes = array( + '0' => $langs->transnoentitiesnoconv("IconAndText"), + '1' => $langs->transnoentitiesnoconv("TextOnly"), + '2' => $langs->transnoentitiesnoconv("IconOnlyAllTextsOnHover"), + '3' => $langs->transnoentitiesnoconv("IconOnlyTextOnHover"), + '4' => $langs->transnoentitiesnoconv("IconOnly"), + ); print ''; print ''; print ''; print ''; } + // Show logo + if ($foruserprofile) { + // Nothing + } else { + // Show logo + print ''; + print ''; + /* + print ''; + print "";*/ + } + // BorderTableActive if ($foruserprofile) { } else { - $default = $langs->trans('No'); print ''; print ''; print ''; print ''; } @@ -531,7 +565,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) 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 ''; @@ -1045,17 +1079,15 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print ''; print ''; } else { - /*var_dump($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER); + //var_dump($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER); + /* $default=$langs->trans('No'); print ''; print ''; print ''; - $texte .= ''; + $texte .= ''; $texte .= ''; @@ -131,7 +131,7 @@ class mod_asset_advanced extends ModeleNumRefAsset require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->ASSET_ASSET_ADVANCED_MASK; + $mask = getDolGlobalString('ASSET_ASSET_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/asset/modules_asset.php b/htdocs/core/modules/asset/modules_asset.php index e158b5bdfe9..f7f361a10cc 100644 --- a/htdocs/core/modules/asset/modules_asset.php +++ b/htdocs/core/modules/asset/modules_asset.php @@ -37,6 +37,41 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // requir */ abstract class ModelePDFAsset extends CommonDocGenerator { + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** diff --git a/htdocs/core/modules/bank/doc/pdf_ban.modules.php b/htdocs/core/modules/bank/doc/pdf_ban.modules.php index 2a76b04fa41..3ab1cdcc193 100644 --- a/htdocs/core/modules/bank/doc/pdf_ban.modules.php +++ b/htdocs/core/modules/bank/doc/pdf_ban.modules.php @@ -74,7 +74,6 @@ class pdf_ban extends ModeleBankAccountDoc $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; // Display product-service code // Retrieves transmitter $this->emetteur = $mysoc; @@ -356,7 +355,7 @@ class pdf_ban extends ModeleBankAccountDoc foreach($object->linkedObjects as $objecttype => $objects) { - var_dump($objects);exit; + //var_dump($objects);exit; if ($objecttype == 'commande') { $outputlangs->load('orders'); diff --git a/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php b/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php index b73a173e015..314a1fa7853 100644 --- a/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php +++ b/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php @@ -1,6 +1,4 @@ * Copyright (C) 2020 Josep Lluís Amador * @@ -79,7 +77,6 @@ class pdf_sepamandate extends ModeleBankAccountDoc $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; //Display product-service code // Retrieves transmitter $this->emetteur = $mysoc; @@ -397,11 +394,11 @@ class pdf_sepamandate extends ModeleBankAccountDoc $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; } - /*var_dump($tab_top); - var_dump($heightforinfotot); - var_dump($heightforfreetext); - var_dump($heightforfooter); - var_dump($bottomlasttab);*/ + //var_dump($tab_top); + //var_dump($heightforinfotot); + //var_dump($heightforfreetext); + //var_dump($heightforfooter); + //var_dump($bottomlasttab); // Affiche zone infos $posy = $this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs); diff --git a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php index 443e3f436f8..4add94ffafb 100644 --- a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php +++ b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php @@ -183,16 +183,16 @@ class modPhpbarcode extends ModeleBarCode */ public function writeBarCode($code, $encoding, $readable = 'Y', $scale = 1, $nooutputiferror = 0) { - global $conf, $filebarcode; + global $conf, $filebarcode, $langs; dol_mkdir($conf->barcode->dir_temp); if (!is_writable($conf->barcode->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->barcode->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->barcode->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } - $file = $conf->barcode->dir_temp.'/barcode_'.$code.'_'.$encoding.'.png'; + $file = $conf->barcode->dir_temp . '/barcode_' . $code . '_' . $encoding . '.png'; $filebarcode = $file; // global var to be used in barcode_outimage called by barcode_print in buildBarCode diff --git a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php index ed32667a67e..9536251c36a 100644 --- a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php +++ b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php @@ -155,16 +155,16 @@ class modTcpdfbarcode extends ModeleBarCode */ public function writeBarCode($code, $encoding, $readable = 'Y', $scale = 1, $nooutputiferror = 0) { - global $conf, $_GET; + global $conf, $langs, $_GET; dol_mkdir($conf->barcode->dir_temp); if (!is_writable($conf->barcode->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->barcode->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->barcode->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } - $file = $conf->barcode->dir_temp.'/barcode_'.$code.'_'.$encoding.'.png'; + $file = $conf->barcode->dir_temp . '/barcode_' . $code . '_' . $encoding . '.png'; $tcpdfEncoding = $this->getTcpdfEncodingType($encoding); if (empty($tcpdfEncoding)) { diff --git a/htdocs/core/modules/barcode/mod_barcode_product_standard.php b/htdocs/core/modules/barcode/mod_barcode_product_standard.php index 17b5a9bb16a..f4bf05afb3b 100644 --- a/htdocs/core/modules/barcode/mod_barcode_product_standard.php +++ b/htdocs/core/modules/barcode/mod_barcode_product_standard.php @@ -109,7 +109,7 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode //$texte.= ''; $texte .= ''; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $texte .= '
    '; @@ -435,7 +441,9 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) $colorbacktitle1 = ''; $colortexttitle = ''; $colorbacklineimpair1 = ''; + $colorbacklineimpair2 = ''; $colorbacklinepair1 = ''; + $colorbacklinepair2 = ''; $colortextlink = ''; $colorbacklinepairhover = ''; $colorbacklinepairhover = ''; @@ -447,23 +455,25 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) include DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php'; } - // Show logo + //Dark mode if ($foruserprofile) { - // Nothing + //Nothing } else { - // Show logo - print '
    '.$langs->trans("EnableShowLogo").''; + $listofdarkmodes = array( + '0' => $langs->trans("AlwaysDisabled"), + '1' => $langs->trans("AccordingToBrowser"), + '2' => $langs->trans("AlwaysEnabled") + ); + print '
    '.$langs->trans("DarkThemeMode").''; if ($edit) { - print ajax_constantonoff('MAIN_SHOW_LOGO', array(), null, 0, 0, 1); - //print $form->selectyesno('MAIN_SHOW_LOGO', $conf->global->MAIN_SHOW_LOGO, 1); + print $form->selectarray('THEME_DARKMODEENABLED', $listofdarkmodes, isset($conf->global->THEME_DARKMODEENABLED) ? $conf->global->THEME_DARKMODEENABLED : 0); } else { - print yn($conf->global->MAIN_SHOW_LOGO); + print $listofdarkmodes[isset($conf->global->THEME_DARKMODEENABLED) ? $conf->global->THEME_DARKMODEENABLED : 0]; } - print '
    '.$langs->trans("EnableShowLogo").'' . yn($conf->global->MAIN_SHOW_LOGO) . '
    '.$langs->trans("TopMenuDisableImages").''.($conf->global->THEME_TOPMENU_DISABLE_IMAGE?$conf->global->THEME_TOPMENU_DISABLE_IMAGE:$langs->trans("Default")).'conf->THEME_ELDY_TEXTLINK)?" checked":""); + print 'conf->THEME_ELDY_TEXTLINK)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -490,26 +500,51 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) if ($edit) print '
    ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; print '
    '.$langs->trans("TopMenuDisableImages").''; if ($edit) { - print ajax_constantonoff('THEME_TOPMENU_DISABLE_IMAGE', array(), null, 0, 0, 1); - //print $form->selectyesno('THEME_TOPMENU_DISABLE_IMAGE', $conf->global->THEME_TOPMENU_DISABLE_IMAGE, 1); + //print ajax_constantonoff('THEME_TOPMENU_DISABLE_IMAGE', array(), null, 0, 0, 1); + print $form->selectarray('THEME_TOPMENU_DISABLE_IMAGE', $listoftopmenumodes, isset($conf->global->THEME_TOPMENU_DISABLE_IMAGE)?$conf->global->THEME_TOPMENU_DISABLE_IMAGE:0); } else { - print yn($conf->global->THEME_TOPMENU_DISABLE_IMAGE); + $listoftopmenumodes[$conf->global->THEME_TOPMENU_DISABLE_IMAGE]; + //print yn($conf->global->THEME_TOPMENU_DISABLE_IMAGE); } - print '   '.$langs->trans("Default").': '.$default.' '; - print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis")); + print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes")); print '
    '.$langs->trans("EnableShowLogo").''; + if ($edit) { + print ajax_constantonoff('MAIN_SHOW_LOGO', array(), null, 0, 0, 1); + //print $form->selectyesno('MAIN_SHOW_LOGO', $conf->global->MAIN_SHOW_LOGO, 1); + } else { + print yn($conf->global->MAIN_SHOW_LOGO); + } + print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes")); + print '
    '.$langs->trans("EnableShowLogo").'' . yn($conf->global->MAIN_SHOW_LOGO) . '
    '.$langs->trans("UseBorderOnTable").''; @@ -519,8 +554,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { print yn($conf->global->THEME_ELDY_USEBORDERONTABLE); } - print '   '.$langs->trans("Default").': '.$default.' '; - print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis")); + print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes")); print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); + print 'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -574,7 +608,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); + print 'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -618,7 +652,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_VERMENU_BACK1:$langs->trans("Default")).'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); + print 'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -746,7 +780,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print ''.$langs->trans("BackgroundTableLineOddColor").''; if ($edit) { - print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEIMPAIR1) ? $conf->global->THEME_ELDY_LINEIMPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEIMPAIR1', '', 1, '', '', 'colorbacklinepair2').' '; + print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEIMPAIR1) ? $conf->global->THEME_ELDY_LINEIMPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEIMPAIR1', '', 1, '', '', 'colorbacklineimpair2').' '; } else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEIMPAIR1, array()), ''); if ($color) { @@ -770,7 +804,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print ''.$langs->trans("BackgroundTableLineEvenColor").''; if ($edit) { - print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEPAIR1) ? $conf->global->THEME_ELDY_LINEPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEPAIR1', '', 1, '', '', 'colorbacklineimpair2').' '; + print $formother->selectColor(colorArrayToHex(colorStringToArray((!empty($conf->global->THEME_ELDY_LINEPAIR1) ? $conf->global->THEME_ELDY_LINEPAIR1 : ''), array()), ''), 'THEME_ELDY_LINEPAIR1', '', 1, '', '', 'colorbacklinepair2').' '; } else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEPAIR1, array()), ''); if ($color) { @@ -791,7 +825,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TEXTLINK:$langs->trans("Default")).'conf->THEME_ELDY_TEXTLINK)?" checked":""); + print 'conf->THEME_ELDY_TEXTLINK)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -934,7 +968,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_BTNACTION:$langs->trans("Default")).'conf->THEME_ELDY_BTNACTION)?" checked":""); + print 'conf->THEME_ELDY_BTNACTION)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -980,7 +1014,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TEXTBTNACTION:$langs->trans("Default")).'conf->THEME_ELDY_TEXTBTNACTION)?" checked":""); + print 'conf->THEME_ELDY_TEXTBTNACTION)?" checked":""); print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo print '> '.$langs->trans("UsePersonalValue").''; @@ -1021,7 +1055,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } // Use MAIN_OPTIMIZEFORTEXTBROWSER - if ($foruserprofile && !empty($fuser->conf->MAIN_OPTIMIZEFORTEXTBROWSER)) { + if ($foruserprofile) { //$default=yn($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER); $default = $langs->trans('No'); print '
    '.$langs->trans("MAIN_OPTIMIZEFORTEXTBROWSER").''; - if ($edit) - { + if ($edit) { print $form->selectyesno('MAIN_OPTIMIZEFORTEXTBROWSER', $conf->global->MAIN_OPTIMIZEFORTEXTBROWSER, 1); - } - else - { + } else { print yn($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER); } print '   wspan class="opacitymedium">'.$langs->trans("Default").': '.$default.' '; diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 138be225166..18bd7226400 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -213,6 +213,53 @@ function dolWebsiteReplacementOfLinks($website, $content, $removephppart = 0, $c return $content; } +/** + * Converts smiley string into the utf8 sequence. + * @param string $content Content to replace + * @return string Replacement of all smiley strings with their utf8 code + * @see dolWebsiteOutput() + */ +function dolReplaceSmileyCodeWithUTF8($content) +{ + $map = array( + ":face_with_tears_of_joy:" => "\xF0\x9F\x98\x82", + ":grinning_face_with_smiling_eyes:" => "\xF0\x9F\x98\x81", + ":smiling_face_with_open_mouth:" => "\xF0\x9F\x98\x83", + ":smiling_face_with_open_mouth_and_cold_sweat:" => "\xF0\x9F\x98\x85", + ":smiling_face_with_open_mouth_and_tightly_closed_eyes:" => "\xF0\x9F\x98\x86", + ":winking_face:" => "\xF0\x9F\x98\x89", + ":smiling_face_with_smiling_eyes:" => "\xF0\x9F\x98\x8A", + ":face_savouring_delicious_food:" => "\xF0\x9F\x98\x8B", + ":relieved_face:" => "\xF0\x9F\x98\x8C", + ":smiling_face_with_heart_shaped_eyes:" => "\xF0\x9F\x98\x8D", + ":smiling_face_with_sunglasses:" => "\xF0\x9F\x98\x8E", + ":smirking_face:" => "\xF0\x9F\x98\x8F", + ":neutral_face:" => "\xF0\x9F\x98\x90", + ":expressionless_face:" => "\xF0\x9F\x98\x91", + ":unamused_face:" => "\xF0\x9F\x98\x92", + ":face_with_cold_sweat:" => "\xF0\x9F\x98\x93", + ":pensive_face:" => "\xF0\x9F\x98\x94", + ":confused_face:" => "\xF0\x9F\x98\x95", + ":confounded_face:" => "\xF0\x9F\x98\x96", + ":kissing_face:" => "\xF0\x9F\x98\x97", + ":face_throwing_a_kiss:" => "\xF0\x9F\x98\x98", + ":kissing_face_with_smiling_eyes:" => "\xF0\x9F\x98\x99", + ":kissing_face_with_closed_eyes:" => "\xF0\x9F\x98\x9A", + ":face_with_stuck_out_tongue:" => "\xF0\x9F\x98\x9B", + ":face_with_stuck_out_tongue_and_winking_eye:" => "\xF0\x9F\x98\x9C", + ":face_with_stuck_out_tongue_and_tightly_closed_eyes:" => "\xF0\x9F\x98\x9D", + ":disappointed_face:" => "\xF0\x9F\x98\x9E", + ":worried_face:" => "\xF0\x9F\x98\x9F", + ":angry_face:" => "\xF0\x9F\x98\xA0", + ":face_with_symbols_on_mouth:" => "\xF0\x9F\x98\xA1", + ); + foreach ($map as $key => $value) { + $content = str_replace($key, $value, $content); + } + return $content; +} + + /** * Render a string of an HTML content and output it. * Used to ouput the page when viewed from a server (Dolibarr or Apache). @@ -369,6 +416,8 @@ function dolWebsiteOutput($content, $contenttype = 'html', $containerid = '') $content = str_replace('entity > 1 ? '/'.$conf->entity : '').'/website/'.$websitekey.'/'.$containerref; if (empty($includehtmlcontentopened)) { $includehtmlcontentopened = 0; @@ -988,7 +1037,7 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so if (!$error && (empty($max) || ($found < $max)) && (preg_match('/sitefiles/', $algo))) { global $dolibarr_main_data_root; - $pathofwebsite = $dolibarr_main_data_root.'/website/'.$website->ref; + $pathofwebsite = $dolibarr_main_data_root.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/'.$website->ref; $filehtmlheader = $pathofwebsite.'/htmlheader.html'; $filecss = $pathofwebsite.'/styles.css.php'; $filejs = $pathofwebsite.'/javascript.js.php'; diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index f61bd298c62..6f532e078b3 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -49,7 +49,7 @@ function dolSaveMasterFile($filemaster) @chmod($filemaster, octdec($conf->global->MAIN_UMASK)); } - return $result; + return $result; } /** @@ -291,11 +291,12 @@ function dolSavePageContent($filetpl, Website $object, WebsitePage $objectpage, * @param string $fileindex Full path of file index.php * @param string $filetpl File tpl the index.php page redirect to (used only if $fileindex is provided) * @param string $filewrapper Full path of file wrapper.php + * @param Website $object Object website * @return boolean True if OK */ -function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper) +function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper, $object = null) { - global $conf; + global $conf, $db; $result1 = false; $result2 = false; @@ -308,7 +309,7 @@ function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper) $indexcontent .= "// BEGIN PHP File generated to provide an index.php as Home Page or alias redirector - DO NOT MODIFY - It is just a generated wrapper.\n"; $indexcontent .= '$websitekey=basename(__DIR__); if (empty($websitepagefile)) $websitepagefile=__FILE__;'."\n"; $indexcontent .= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Load master if not already loaded\n"; - $indexcontent .= 'if (! empty($_GET[\'pageref\']) || ! empty($_GET[\'pagealiasalt\']) || ! empty($_GET[\'pageid\'])) {'."\n"; + $indexcontent .= 'if (!empty($_GET[\'pageref\']) || !empty($_GET[\'pagealiasalt\']) || !empty($_GET[\'pageid\'])) {'."\n"; $indexcontent .= " require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n"; $indexcontent .= " require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n"; $indexcontent .= ' redirectToContainer($_GET[\'pageref\'], $_GET[\'pagealiasalt\'], $_GET[\'pageid\']);'."\n"; @@ -320,6 +321,44 @@ function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper) if (!empty($conf->global->MAIN_UMASK)) { @chmod($fileindex, octdec($conf->global->MAIN_UMASK)); } + + if (is_object($object) && $object->fk_default_home > 0) { + $objectpage = new WebsitePage($db); + $objectpage->fetch($object->fk_default_home); + + // Create a version for sublanguages + if (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { + if (empty($conf->global->WEBSITE_DISABLE_MAIN_LANGUAGE_INTO_LANGSUBDIR) && is_object($object) && !empty($object->otherlang)) { + $dirname = dirname($fileindex); + foreach (explode(',', $object->otherlang) as $sublang) { + // Avoid to erase main alias file if $sublang is empty string + if (empty(trim($sublang))) continue; + $fileindexsub = $dirname.'/'.$sublang.'/index.php'; + + // Same indexcontent than previously but with ../ instead of ./ for master and tpl file include/require_once. + $relpath = '..'; + $indexcontent = ''."\n"; + $result = file_put_contents($fileindexsub, $indexcontent); + if ($result === false) { + dol_syslog("Failed to write file ".$fileindexsub, LOG_WARNING); + } + if (!empty($conf->global->MAIN_UMASK)) { + @chmod($fileindexsub, octdec($conf->global->MAIN_UMASK)); + } + } + } + } + } } else { $result1 = true; } @@ -491,9 +530,30 @@ function dolSaveReadme($file, $content) @chmod($file, octdec($conf->global->MAIN_UMASK)); } - return $result; + return $result; } +/** + * Save content of a page on disk + * + * @param string $file Full path of filename to generate + * @param string $content Content of file + * @return boolean True if OK + */ +function dolSaveLicense($file, $content) +{ + global $conf, $pathofwebsite; + + dol_syslog("Save LICENSE file into ".$file); + + dol_mkdir($pathofwebsite); + $result = file_put_contents($file, $content); + if (!empty($conf->global->MAIN_UMASK)) { + @chmod($file, octdec($conf->global->MAIN_UMASK)); + } + + return $result; +} /** * Show list of themes. Show all thumbs of themes/skins @@ -545,9 +605,9 @@ function showWebsiteTemplates(Website $website) while (($subdir = readdir($handle)) !== false) { if (is_file($dirtheme."/".$subdir) && substr($subdir, 0, 1) <> '.' && substr($subdir, 0, 3) <> 'CVS' && preg_match('/\.zip$/i', $subdir)) { - $subdirwithoutzip = preg_replace('/\.zip$/i', '', $subdir); + $subdirwithoutzip = preg_replace('/\.zip$/i', '', $subdir); - // Disable not stable themes (dir ends with _exp or _dev) + // Disable not stable themes (dir ends with _exp or _dev) if ($conf->global->MAIN_FEATURES_LEVEL < 2 && preg_match('/_dev$/i', $subdir)) { continue; } @@ -555,38 +615,38 @@ function showWebsiteTemplates(Website $website) continue; } - print '
    '; + print '
    '; - $file = $dirtheme."/".$subdirwithoutzip.".jpg"; - $url = DOL_URL_ROOT.'/viewimage.php?modulepart=doctemplateswebsite&file='.$subdirwithoutzip.".jpg"; + $file = $dirtheme."/".$subdirwithoutzip.".jpg"; + $url = DOL_URL_ROOT.'/viewimage.php?modulepart=doctemplateswebsite&file='.$subdirwithoutzip.".jpg"; if (!file_exists($file)) { $url = DOL_URL_ROOT.'/public/theme/common/nophoto.png'; } - $originalfile = basename($file); - $entity = $conf->entity; - $modulepart = 'doctemplateswebsite'; - $cache = ''; - $title = $file; + $originalfile = basename($file); + $entity = $conf->entity; + $modulepart = 'doctemplateswebsite'; + $cache = ''; + $title = $file; - $ret = ''; - $urladvanced = getAdvancedPreviewUrl($modulepart, $originalfile, 1, '&entity='.$entity); + $ret = ''; + $urladvanced = getAdvancedPreviewUrl($modulepart, $originalfile, 1, '&entity='.$entity); if (!empty($urladvanced)) { $ret .= ''; } else { $ret .= ''; } - print $ret; - print ''.$title.''; - print ''; + print $ret; + print ''.$title.''; + print ''; - print '
    '; - print $subdir.' ('.dol_print_size(dol_filesize($dirtheme."/".$subdir), 1, 1).')'; - print '
    ref.'&templateuserfile='.$subdir.'" class="button">'.$langs->trans("Load").''; - print '
    '; + print '
    '; + print $subdir.' ('.dol_print_size(dol_filesize($dirtheme."/".$subdir), 1, 1).')'; + print '
    ref.'&templateuserfile='.$subdir.'" class="button">'.$langs->trans("Load").''; + print '
    '; - $i++; + $i++; } } } diff --git a/htdocs/core/lib/xcal.lib.php b/htdocs/core/lib/xcal.lib.php index 97ada3e3d4f..6b5c92881c5 100644 --- a/htdocs/core/lib/xcal.lib.php +++ b/htdocs/core/lib/xcal.lib.php @@ -301,7 +301,7 @@ function build_calfile($format, $title, $desc, $events_array, $outputfile) * @param string $format "rss" * @param string $title Title of export * @param string $desc Description of export - * @param array $events_array Array of events ("uid","startdate","summary","url","desc","author","category") or Array of WebsitePage + * @param array $events_array Array of events ("uid","startdate","summary","url","desc","author","category","image") or Array of WebsitePage * @param string $outputfile Output file * @param string $filter (optional) Filter * @param string $url Url (If empty, forge URL for agenda RSS export) @@ -377,7 +377,7 @@ function build_rssfile($format, $title, $desc, $events_array, $outputfile, $filt $tmpevent['author'] = $event->author_alias ? $event->author_alias : 'unknown'; //$tmpevent['category'] = ''; $tmpevent['desc'] = $event->description; - + $tmpevent['image'] = $GLOBALS['website']->virtualhost.'/medias/'.$event->image; $event = $tmpevent; } @@ -387,7 +387,9 @@ function build_rssfile($format, $title, $desc, $events_array, $outputfile, $filt $url = $event["url"]; $author = $event["author"]; $category = $event["category"]; - + if (!empty($event["image"])) { + $image = $event["image"]; + } /* No place inside a RSS $priority = $event["priority"]; $fulldayevent = $event["fulldayevent"]; @@ -404,6 +406,10 @@ function build_rssfile($format, $title, $desc, $events_array, $outputfile, $filt fwrite($fichier, "\n"); fwrite($fichier, "

    '); + } + if ($description) { fwrite($fichier, $description); } diff --git a/htdocs/core/login/functions_dolibarr.php b/htdocs/core/login/functions_dolibarr.php index 610072aa35a..c4825998b3a 100644 --- a/htdocs/core/login/functions_dolibarr.php +++ b/htdocs/core/login/functions_dolibarr.php @@ -40,7 +40,7 @@ function check_user_password_dolibarr($usertotest, $passwordtotest, $entitytotes // Force master entity in transversal mode $entity = $entitytotest; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $entity = 1; } @@ -134,11 +134,11 @@ function check_user_password_dolibarr($usertotest, $passwordtotest, $entitytotes } // We must check entity - if ($passok && !empty($conf->multicompany->enabled)) { // We must check entity + if ($passok && isModEnabled('multicompany')) { // We must check entity global $mc; if (!isset($mc)) { - $conf->multicompany->enabled = false; // Global not available, disable $conf->multicompany->enabled for safety + !isModEnabled('multicompany'); // Global not available, disable $conf->multicompany->enabled for safety } else { $ret = $mc->checkRight($obj->rowid, $entitytotest); if ($ret < 0) { diff --git a/htdocs/core/login/functions_ldap.php b/htdocs/core/login/functions_ldap.php index 1d86bd19549..18800c3a19e 100644 --- a/htdocs/core/login/functions_ldap.php +++ b/htdocs/core/login/functions_ldap.php @@ -46,7 +46,7 @@ function check_user_password_ldap($usertotest, $passwordtotest, $entitytotest) // Force master entity in transversal mode $entity = $entitytotest; - if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { + if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) { $entity = 1; } @@ -228,7 +228,7 @@ function check_user_password_ldap($usertotest, $passwordtotest, $entitytotest) unset($usertmp); } - if (!empty($conf->multicompany->enabled)) { // We must check entity (even if sync is not active) + if (isModEnabled('multicompany')) { // We must check entity (even if sync is not active) global $mc; $usertmp = new User($db); @@ -260,7 +260,7 @@ function check_user_password_ldap($usertotest, $passwordtotest, $entitytotest) ** 53 - Account inactive (manually locked out by administrator) */ dol_syslog("functions_ldap::check_user_password_ldap Authentication KO failed to connect to LDAP for '".$usertotest."'", LOG_NOTICE); - if (is_resource($ldap->connection)) { // If connection ok but bind ko + if (is_resource($ldap->connection) || is_object($ldap->connection)) { // If connection ok but bind ko $ldap->ldapErrorCode = ldap_errno($ldap->connection); $ldap->ldapErrorText = ldap_error($ldap->connection); dol_syslog("functions_ldap::check_user_password_ldap ".$ldap->ldapErrorCode." ".$ldap->ldapErrorText); diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 9a91aa58ac1..8a9186e49c0 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -12,10 +12,10 @@ delete from llx_menu where menu_handler=__HANDLER__ and entity=__ENTITY__; -- Top-Menu -- old: (module, enabled, rowid, ...) insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 1__+MAX_llx_menu__, '', '1', __HANDLER__, 'top', 'home', '', 0, '/index.php?mainmenu=home&leftmenu=', 'Home', -1, '', '', '', 2, 10, __ENTITY__); -insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 2__+MAX_llx_menu__, 'societe|fournisseur|supplier_order|supplier_invoice', '($conf->societe->enabled && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) || !empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || $conf->supplier_order->enabled || $conf->supplier_invoice->enabled))', __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 20, __ENTITY__); +insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 2__+MAX_llx_menu__, 'societe|fournisseur|supplier_order|supplier_invoice', '($conf->societe->enabled && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) || isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || $conf->supplier_order->enabled || $conf->supplier_invoice->enabled))', __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 20, __ENTITY__); insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 3__+MAX_llx_menu__, 'product|service', '$conf->product->enabled || $conf->service->enabled', __HANDLER__, 'top', 'products', '', 0, '/product/index.php?mainmenu=products&leftmenu=', 'ProductsPipeServices', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 30, __ENTITY__); insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 16__+MAX_llx_menu__, 'bom|mrp', '$conf->bom->enabled || $conf->mrp->enabled', __HANDLER__, 'top', 'mrp', '', 0, '/mrp/index.php?mainmenu=mrp&leftmenu=', 'MRP', -1, 'mrp', '$user->rights->bom->read||$user->rights->mrp->read', '', 0, 31, __ENTITY__); -insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 7__+MAX_llx_menu__, 'projet', '$conf->projet->enabled', __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 32, __ENTITY__); +insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 7__+MAX_llx_menu__, 'projet', '$conf->project->enabled', __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 32, __ENTITY__); insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 5__+MAX_llx_menu__, 'propal|commande|fournisseur|supplier_order|supplier_invoice|contrat|ficheinter', '$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled', __HANDLER__, 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 40, __ENTITY__); insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 6__+MAX_llx_menu__, 'facture|don|tax|salaries|loan|banque', '$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 || $conf->banque->enabled', __HANDLER__, 'top', 'billing', '', 0, '/compta/index.php?mainmenu=billing&leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read || $user->rights->banque->lire', '', 2, 50, __ENTITY__); insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 14__+MAX_llx_menu__, 'banque|prelevement', '$conf->banque->enabled || $conf->prelevement->enabled', __HANDLER__, 'top', 'bank', '', 0, '/compta/bank/list.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', -1, 'banks', '$user->rights->banque->lire || $user->rights->prelevement->bons->lire', '', 0, 52, __ENTITY__); @@ -86,8 +86,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 500__+MAX_llx_menu__, 'companies', 'thirdparties', 2__+MAX_llx_menu__, '/societe/index.php?mainmenu=companies&leftmenu=thirdparties', 'ThirdParty', 0, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 501__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&action=create', 'MenuNewThirdParty', 1, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&leftmenu=thirdparties', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=p&leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=prospects&action=create&type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=c&leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__); @@ -99,7 +99,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 602__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 604__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=p', 'ThirdPartyProspects', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 605__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=c', 'ThirdPartyCustomers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 2, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))', __HANDLER__, 'left', 606__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=f', 'ThirdPartySuppliers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 3, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 606__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=f', 'ThirdPartySuppliers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 607__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=o', 'Others', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 4, __ENTITY__); -- Third parties - Category customer @@ -107,8 +107,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 651__+MAX_llx_menu__, 'companies', '', 650__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=1', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); -- Third parties - Category supplier -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $conf->categorie->enabled', __HANDLER__, 'left', 660__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=2', 'CustomersProspectsCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && $conf->categorie->enabled', __HANDLER__, 'left', 661__+MAX_llx_menu__, 'companies', '', 660__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=2', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $conf->categorie->enabled', __HANDLER__, 'left', 660__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=2', 'CustomersProspectsCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $conf->categorie->enabled', __HANDLER__, 'left', 661__+MAX_llx_menu__, 'companies', '', 660__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=2', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); -- Third parties - Category contact insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 670__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=4', 'ContactCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__); @@ -119,7 +119,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/card.php?mainmenu=products&leftmenu=product&action=create&type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/list.php?mainmenu=products&leftmenu=product&type=0', 'List', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?mainmenu=products&type=0', 'MenuStocks', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 4, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassortlot.php?mainmenu=products&type=0', 'StocksByLotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 5, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassortlot.php?mainmenu=products&type=0&search_subjecttolotserial=1', 'StocksByLotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 5, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2806__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stock/productlot_list.php?mainmenu=products', 'LotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 6, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->variants->enabled', __HANDLER__, 'left', 2807__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/variants/list.php?mainmenu=products', 'VariantAttributes', 1, 'products', '$user->rights->produit->lire', '', 2, 7, __ENTITY__); @@ -257,7 +257,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2251__+MAX_llx_menu__, 'billing', '', 2250__+MAX_llx_menu__, '/compta/sociales/card.php?mainmenu=billing&leftmenu=tax_social&action=create', 'MenuNewSocialContribution', 2, '', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2252__+MAX_llx_menu__, 'billing', '', 2250__+MAX_llx_menu__, '/compta/sociales/payments.php?mainmenu=billing&leftmenu=tax_social', 'Payments', 2, '', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__); --- VAT/TVA/IVA +-- VAT/TVA/IVA insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)', __HANDLER__, 'left', 2300__+MAX_llx_menu__, 'billing', 'tax_vat', 2200__+MAX_llx_menu__, '/compta/tva/list.php?mainmenu=billing&leftmenu=tax_vat', 'VAT', 1, 'companies', '$user->rights->tax->charges->lire', '', 0, 7, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?mainmenu=billing&leftmenu=tax_vat&action=create', 'New', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/list.php?mainmenu=billing&leftmenu=tax_vat', 'List', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__); @@ -313,9 +313,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)', __HANDLER__, 'left', 2401__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_customer', 2400__+MAX_llx_menu__, '/accountancy/customer/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer', 'CustomersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES) && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2402__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES) && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2403__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 4, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)', __HANDLER__, 'left', 2410__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_supplier', 2400__+MAX_llx_menu__, '/accountancy/supplier/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier', 'SuppliersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2411__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2412__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)', __HANDLER__, 'left', 2410__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_supplier', 2400__+MAX_llx_menu__, '/accountancy/supplier/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier', 'SuppliersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2411__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2412__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)', __HANDLER__, 'left', 2420__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_expensereport', 2400__+MAX_llx_menu__, '/accountancy/expensereport/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport', 'ExpenseReportsVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS) && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2421__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS) && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2422__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__); @@ -365,9 +365,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled', __HANDLER__, 'left', 3000__+MAX_llx_menu__, 'accountancy', 'asset', 9__+MAX_llx_menu__, '/asset/list.php?mainmenu=accountancy&leftmenu=asset', 'MenuAssets', 1, 'assets', '$user->rights->asset->read', '', 0, 20, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3001__+MAX_llx_menu__, 'asset', '', 3000__+MAX_llx_menu__, '/asset/card.php?mainmenu=accountancy&leftmenu=asset&action=create', 'MenuNewAsset', 2, 'assets', '$user->rights->asset->write', '', 0, 21, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3003__+MAX_llx_menu__, 'asset', '', 3000__+MAX_llx_menu__, '/asset/list.php?mainmenu=accountancy&leftmenu=asset', 'MenuListAssets', 2, 'assets', '$user->rights->asset->read', '', 0, 22, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3004__+MAX_llx_menu__, 'asset', 'asset_type', 3000__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy&leftmenu=asset', 'MenuTypeAssets', 2, 'assets', '$user->rights->asset->read', '', 0, 23, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3005__+MAX_llx_menu__, 'asset', '', 3004__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy&action=create', 'MenuNewTypeAssets', 3, 'assets', '$user->rights->asset->setup_advance', '', 0, 24, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3006__+MAX_llx_menu__, 'asset', '', 3004__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy', 'MenuListTypeAssets', 3, 'assets', '$user->rights->asset->read', '', 0, 25, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3004__+MAX_llx_menu__, 'asset', 'asset_type', 3000__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy&leftmenu=asset', 'MenuTypeAssets', 2, 'assets', '($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->asset->model_advance->read:$user->rights->asset->read)', '', 0, 23, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3005__+MAX_llx_menu__, 'asset', '', 3004__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy&action=create', 'MenuNewTypeAssets', 3, 'assets', '($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->asset->model_advance->write:$user->rights->asset->write)', '', 0, 24, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3006__+MAX_llx_menu__, 'asset', '', 3004__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy', 'MenuListTypeAssets', 3, 'assets', '($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->asset->model_advance->read:$user->rights->asset->read)', '', 0, 25, __ENTITY__); -- Check deposit insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1711__+MAX_llx_menu__, 'accountancy', 'checks', 14__+MAX_llx_menu__, '/compta/paiement/cheque/index.php?mainmenu=bank&leftmenu=checks', 'MenuChequeDeposits', 0, 'bills', '$user->rights->banque->lire', '', 2, 9, __ENTITY__); @@ -404,19 +404,19 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left -- Project -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3600__+MAX_llx_menu__, 'project', 'projects', 7__+MAX_llx_menu__, '/projet/index.php?mainmenu=project&leftmenu=projects', 'LeadsOrProjects', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3601__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/card.php?mainmenu=project&leftmenu=projects&action=create', 'New', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3602__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_OPPORTUNITIES != 0', __HANDLER__, 'left', 3603__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&leftmenu=projects&search_opp_status=openedopp&search_status=99', 'ListOpenLeads', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_OPPORTUNITIES != 2', __HANDLER__, 'left', 3604__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&leftmenu=projects&search_opp_status=notopenedopp&search_status=99', 'ListOpenProjects', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3605__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/stats/index.php?mainmenu=project&leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled', __HANDLER__, 'left', 3600__+MAX_llx_menu__, 'project', 'projects', 7__+MAX_llx_menu__, '/projet/index.php?mainmenu=project&leftmenu=projects', 'LeadsOrProjects', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled', __HANDLER__, 'left', 3601__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/card.php?mainmenu=project&leftmenu=projects&action=create', 'New', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled', __HANDLER__, 'left', 3602__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && $conf->global->PROJECT_USE_OPPORTUNITIES != 0', __HANDLER__, 'left', 3603__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&leftmenu=projects&search_opp_status=openedopp&search_status=99', 'ListOpenLeads', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && $conf->global->PROJECT_USE_OPPORTUNITIES != 2', __HANDLER__, 'left', 3604__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&leftmenu=projects&search_opp_status=notopenedopp&search_status=99', 'ListOpenProjects', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled', __HANDLER__, 'left', 3605__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/stats/index.php?mainmenu=project&leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?mainmenu=project&leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?mainmenu=project&leftmenu=projects&action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?mainmenu=project&leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?mainmenu=project&leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?mainmenu=project&leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?mainmenu=project&leftmenu=projects&action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?mainmenu=project&leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?mainmenu=project&leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?mainmenu=project&leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->project->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?mainmenu=project&leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__); -- Project - Categories insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 7__+MAX_llx_menu__, '/categories/index.php?mainmenu=project&leftmenu=cat&type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__); diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 6b415aec7a2..037d1fee8c2 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2010-2022 Laurent Destailleur * Copyright (C) 2010-2012 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -64,14 +64,15 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout // Show/Hide vertical menu. The hamburger icon for .menuhider action. if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $showmode = 1; - $classname = 'class="tmenu menuhider"'; + $classname = 'class="tmenu menuhider nohover"'; $idsel = 'menu'; - $menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); + $menu->add('#', (getDolGlobalInt('THEME_TOPMENU_DISABLE_IMAGE') == 1 ? '' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); } $num = count($newTabMenu); for ($i = 0; $i < $num; $i++) { + //var_dump($type_user.' '.$newTabMenu[$i]['url'].' '.$showmode.' '.$newTabMenu[$i]['perms']); $idsel = (empty($newTabMenu[$i]['mainmenu']) ? 'none' : $newTabMenu[$i]['mainmenu']); $shorturl = ''; @@ -80,9 +81,9 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout if ($showmode == 1) { $newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray); + // url = url from host, shorturl = relative path into dolibarr sources $url = $shorturl = $newTabMenu[$i]['url']; - - if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) { + if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) { // Do not change url content for external links $tmp = explode('?', $newTabMenu[$i]['url'], 2); $url = $shorturl = $tmp[0]; $param = (isset($tmp[1]) ? $tmp[1] : ''); @@ -147,7 +148,7 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout if (!empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); - /*} elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) + /*} elseif (!empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_mini); }*/ @@ -229,24 +230,33 @@ function print_start_menu_entry_auguria($idsel, $classname, $showmode) */ function print_text_menu_entry_auguria($text, $showmode, $url, $id, $idsel, $classname, $atarget) { - global $langs; + global $langs, $conf; + + $classnameimg = str_replace('class="', 'class="tmenuimage ', $classname); + $classnametxt = str_replace('class="', 'class="tmenulabel ', $classname); if ($showmode == 1) { - print ''; - print '
    '; - print '
    '; - print ''; - print ''; - print $text; - print ''; + print ''; + print '
    '; print '
    '; + if (empty($conf->global->THEME_TOPMENU_DISABLE_TEXT)) { + print ''; + print ''; + print $text; + print ''; + print ''; + } } elseif ($showmode == 2) { - print '
    '; - print ''; - print ''; - print $text; - print ''; - print ''; + print '
    '; + print '
    '; + print '
    '; + if (empty($conf->global->THEME_TOPMENU_DISABLE_TEXT)) { + print ''; + print ''; + print $text; + print ''; + print ''; + } } } @@ -291,11 +301,13 @@ function print_end_menu_array_auguria() * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all). If value come being '', we change it to value in session and 'none' if not defined in session. * @param array $moredata An array with more data to output + * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @return int Nb of menu entries */ -function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null) +function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0) { - global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc; + global $user, $conf, $langs, $hookmanager; + global $dolibarr_main_db_name, $mysoc; $newmenu = $menu; @@ -330,7 +342,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t $newmenu = $menuArbo->menuLeftCharger($newmenu, $mainmenu, $leftmenu, ($user->socid ? 1 : 0), 'auguria', $tabMenu); // We update newmenu for special dynamic menus - if ($conf->banque->enabled && $user->rights->banque->lire && $mainmenu == 'bank') { // Entry for each bank account + if (isModEnabled('banque') && $user->rights->banque->lire && $mainmenu == 'bank') { // Entry for each bank account include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Required for to get Account::TYPE_CASH for example $sql = "SELECT rowid, label, courant, rappro, courant"; @@ -362,7 +374,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t $db->free($resql); } - if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') { // Entry in accountancy journal for each bank account + if (isModEnabled('accounting') && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') { // Entry in accountancy journal for each bank account $newmenu->add('', $langs->trans("RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire, '', 'accountancy', 'accountancy', 10); // Multi journal @@ -384,18 +396,18 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t $nature = ''; // Must match array $sourceList defined into journals_list.php - if ($objp->nature == 2 && !empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) { + if ($objp->nature == 2 && isModEnabled('facture') && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) { $nature = "sells"; } if ($objp->nature == 3 - && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled)) + && ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_invoice')) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) { $nature = "purchases"; } - if ($objp->nature == 4 && !empty($conf->banque->enabled)) { + if ($objp->nature == 4 && isModEnabled('banque')) { $nature = "bank"; } - if ($objp->nature == 5 && !empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) { + if ($objp->nature == 5 && isModEnabled('expensereport') && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) { $nature = "expensereports"; } if ($objp->nature == 1) { @@ -432,7 +444,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t $db->free($resql); } - if (!empty($conf->ftp->enabled) && $mainmenu == 'ftp') { // Entry for FTP + if (isModEnabled('ftp') && $mainmenu == 'ftp') { // Entry for FTP $MAXFTP = 20; $i = 1; while ($i <= $MAXFTP) { @@ -463,6 +475,29 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t return 0; } + // Allow the $menu_array of the menu to be manipulated by modules + $parameters = array( + 'mainmenu' => $mainmenu, + ); + $hook_items = $menu_array; + $reshook = $hookmanager->executeHooks('menuLeftMenuItems', $parameters, $hook_items); // Note that $action and $object may have been modified by some hooks + + if (is_numeric($reshook)) { + if ($reshook == 0 && !empty($hookmanager->results)) { + $menu_array[] = $hookmanager->results; // add + } elseif ($reshook == 1) { + $menu_array = $hookmanager->results; // replace + } + + // @todo Sort menu items by 'position' value + // $position = array(); + // foreach ($menu_array as $key => $row) { + // $position[$key] = $row['position']; + // } + // $array1_sort_order = SORT_ASC; + // array_multisort($position, $array1_sort_order, $menu_array); + } + // Show menu $invert = empty($conf->global->MAIN_MENU_INVERT) ? "" : "invert"; if (empty($noout)) { @@ -533,7 +568,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t if ($menu_array[$i]['enabled']) { // Enabled so visible print ''."\n"; $lastlevel0 = 'enabled'; } elseif ($showmenu) { // Not enabled but visible (so greyed) - print ''."\n"; + print ''."\n"; $lastlevel0 = 'greyed'; } else { $lastlevel0 = 'hidden'; @@ -563,10 +602,12 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url'])); } - if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') { // Enabled so visible, except if parent was not enabled. - print '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Mask").' ('.$langs->trans("BarCodeModel").'):
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).'   
    '; diff --git a/htdocs/core/modules/barcode/mod_barcode_thirdparty_standard.php b/htdocs/core/modules/barcode/mod_barcode_thirdparty_standard.php new file mode 100644 index 00000000000..e25cd1dd115 --- /dev/null +++ b/htdocs/core/modules/barcode/mod_barcode_thirdparty_standard.php @@ -0,0 +1,358 @@ + + * Copyright (C) 2006-2014 Laurent Destailleur + * Copyright (C) 2007-2012 Regis Houssin + * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2022 Faustin Boitel + * + * 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/barcode/mod_barcode_thirdparty_standard.php + * \ingroup barcode + * \brief File of class to manage barcode numbering with standard rule + */ + +require_once DOL_DOCUMENT_ROOT.'/core/modules/barcode/modules_barcode.class.php'; + + +/** + * Class to manage barcode with standard rule + */ +class mod_barcode_thirdparty_standard extends ModeleNumRefBarCode +{ + public $name = 'Standard'; // Model Name + + public $code_modifiable; // Editable code + + public $code_modifiable_invalide; // Modified code if it is invalid + + public $code_modifiable_null; // Modified code if it is null + + public $code_null; // Optional code + + /** + * Dolibarr version of the loaded document + * @var string + */ + public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr' + + /** + * @var int Automatic numbering + */ + public $code_auto; + + public $searchcode; // Search string + + public $numbitcounter; // Number of digits the counter + + public $prefixIsRequired; // The prefix field of third party must be filled when using {pre} + + + /** + * Constructor + */ + public function __construct() + { + $this->code_null = 0; + $this->code_modifiable = 1; + $this->code_modifiable_invalide = 1; + $this->code_modifiable_null = 1; + $this->code_auto = 1; + $this->prefixIsRequired = 0; + } + + + /** Return description of module + * + * @param Translate $langs Object langs + * @return string Description of module + */ + public function info($langs) + { + global $conf, $mc; + global $form; + + $langs->load("thirdparties"); + + $disabled = ((!empty($mc->sharings['referent']) && $mc->sharings['referent'] != $conf->entity) ? ' disabled' : ''); + + $texte = $langs->trans('GenericNumRefModelDesc')."
    \n"; + $texte .= ''; + $texte .= ''; + $texte .= ''; + $texte .= ''; + $texte .= ''; + $texte .= ''; + + $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("BarCode"), $langs->transnoentities("BarCode")); + $tooltip .= $langs->trans("GenericMaskCodes3EAN"); + $tooltip .= ''.$langs->trans("Example").':
    '; + $tooltip .= '020{000000000}? (for internal use)
    '; + $tooltip .= '9771234{00000}? (example of ISSN code with prefix 1234)
    '; + $tooltip .= '9791234{00000}? (example of ISMN code with prefix 1234)
    '; + //$tooltip.=$langs->trans("GenericMaskCodes5"); + + // Mask parameter + //$texte.= ''; + $texte .= ''; + $texte .= ''; + $texte .= ''; + $texte .= ''; + + $texte .= '
    '.$langs->trans("Mask").' ('.$langs->trans("BarCodeModel").'):
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; + $texte .= ''; + + return $texte; + } + + + /** + * Return an example of result returned by getNextValue + * + * @param Translate $langs Object langs + * @param Societe $objthirdparty Object third-party + * @return string Return string example + */ + public function getExample($langs, $objthirdparty = 0) + { + $examplebarcode = $this->getNextValue($objthirdparty, ''); + if (!$examplebarcode) { + $examplebarcode = $langs->trans('NotConfigured'); + } + if ($examplebarcode == "ErrorBadMask") { + $langs->load("errors"); + $examplebarcode = $langs->trans($examplebarcode); + } + + return $examplebarcode; + } + /** + * Return literal barcode type code from numerical rowid type of barcode + * + * @param Database $db Database + * @param int $type Type of barcode (EAN, ISBN, ...) as rowid + * @return string + */ + public function literalBarcodeType($db, $type = '') + { + global $conf; + $out = ''; + + $sql = "SELECT rowid, code, libelle as label"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; + $sql .= " WHERE rowid = '".$db->escape($type)."'"; + $sql .= " AND entity = ".((int) $conf->entity); + $result = $db->query($sql); + if ($result) { + $num = $db->num_rows($result); + + if ($num > 0) { + $obj = $db->fetch_object($result); + $out .= $obj->label; //take the label corresponding to the type rowid in the database + } + } else { + dol_print_error($db); + } + + return $out; + } + /** + * Return next value + * + * @param Societe $objthirdparty Object third-party + * @param string $type Type of barcode (EAN, ISBN, ...) + * @return string Value if OK, '' if module not configured, <0 if KO + */ + public function getNextValue($objthirdparty, $type = '') + { + global $db, $conf; + + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/lib/barcode.lib.php'; // to be able to call function barcode_gen_ean_sum($ean) + + if (empty($type)) { + $type = $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY; + } //get barcode type configuration for companies if $type not set + + // TODO + + // Get Mask value + $mask = ''; + if (!empty($conf->global->BARCODE_STANDARD_THIRDPARTY_MASK)) { + $mask = $conf->global->BARCODE_STANDARD_THIRDPARTY_MASK; + } + + if (empty($mask)) { + $this->error = 'NotConfigured'; + return ''; + } + + $field = 'barcode'; + $where = ''; + + $now = dol_now(); + + $numFinal = get_next_value($db, $mask, 'societe', $field, $where, '', $now); + //Begin barcode with key: for barcode with key (EAN13...) calculate and substitute the last character (* or ?) used in the mask by the key + if ((substr($numFinal, -1)=='*') or (substr($numFinal, -1)=='?')) { // if last mask character is * or ? a joker, probably we have to calculate a key as last character (EAN13...) + $literaltype = ''; + $literaltype = $this->literalBarcodeType($db, $type);//get literal_Barcode_Type + switch ($literaltype) { + case 'EAN13': //EAN13 rowid = 2 + if (strlen($numFinal)==13) {// be sure that the mask length is correct for EAN13 + $ean = substr($numFinal, 0, 12); //take first 12 digits + $eansum = barcode_gen_ean_sum($ean); + $ean .= $eansum; //substitute the las character by the key + $numFinal = $ean; + } + break; + // Other barcode cases with key could be written here + default: + break; + } + } + //End barcode with key + return $numFinal; + } + + + /** + * Check validity of code according to its rules + * + * @param DoliDB $db Database handler + * @param string $code Code to check/correct + * @param Societe $thirdparty Object third-party + * @param int $thirdparty_type 0 = customer/prospect , 1 = supplier + * @param string $type type of barcode (EAN, ISBN, ...) + * @return int 0 if OK + * -1 ErrorBadCustomerCodeSyntax + * -2 ErrorCustomerCodeRequired + * -3 ErrorCustomerCodeAlreadyUsed + * -4 ErrorPrefixRequired + */ + public function verif($db, &$code, $thirdparty, $thirdparty_type, $type) + { + global $conf; + + //var_dump($code.' '.$thirdparty->ref.' '.$thirdparty_type);exit; + + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + + $result = 0; + $code = strtoupper(trim($code)); + + if (empty($code) && $this->code_null && empty($conf->global->BARCODE_STANDARD_THIRDPARTY_MASK)) { + $result = 0; + } elseif (empty($code) && (!$this->code_null || !empty($conf->global->BARCODE_STANDARD_THIRDPARTY_MASK))) { + $result = -2; + } else { + if ($this->verif_syntax($code, $type) >= 0) { + $is_dispo = $this->verif_dispo($db, $code, $thirdparty); + if ($is_dispo <> 0) { + $result = -3; + } else { + $result = 0; + } + } else { + if (dol_strlen($code) == 0) { + $result = -2; + } else { + $result = -1; + } + } + } + + dol_syslog(get_class($this)."::verif type=".$thirdparty_type." result=".$result); + return $result; + } + + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return if a code is used (by other element) + * + * @param DoliDB $db Handler acces base + * @param string $code Code to check + * @param Societe $thirdparty Objet third-party + * @return int 0 if available, <0 if KO + */ + public function verif_dispo($db, $code, $thirdparty) + { + // phpcs:enable + $sql = "SELECT barcode FROM ".MAIN_DB_PREFIX."societe"; + $sql .= " WHERE barcode = '".$db->escape($code)."'"; + if ($thirdparty->id > 0) { + $sql .= " AND rowid <> ".$thirdparty->id; + } + + $resql = $db->query($sql); + if ($resql) { + if ($db->num_rows($resql) == 0) { + return 0; + } else { + return -1; + } + } else { + return -2; + } + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return if a barcode value match syntax + * + * @param string $codefortest Code to check syntax + * @param string $typefortest Type of barcode (ISBN, EAN, ...) + * @return int 0 if OK, <0 if KO + */ + public function verif_syntax($codefortest, $typefortest) + { + // phpcs:enable + global $conf; + + $result = 0; + + // Get Mask value + $mask = empty($conf->global->BARCODE_STANDARD_THIRDPARTY_MASK) ? '' : $conf->global->BARCODE_STANDARD_THIRDPARTY_MASK; + if (!$mask) { + $this->error = 'NotConfigured'; + return -1; + } + + dol_syslog(get_class($this).'::verif_syntax codefortest='.$codefortest." typefortest=".$typefortest); + + $newcodefortest = $codefortest; + + // Special case, if mask is on 12 digits instead of 13, we remove last char into code to test + if (in_array($typefortest, array('EAN13', 'ISBN'))) { // We remove the CRC char not included into mask + if (preg_match('/\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}/i', $mask, $reg)) { + if (strlen($reg[1]) == 12) { + $newcodefortest = substr($newcodefortest, 0, 12); + } + dol_syslog(get_class($this).'::verif_syntax newcodefortest='.$newcodefortest); + } + } + + $result = check_value($mask, $newcodefortest); + if (is_string($result)) { + $this->error = $result; + return -1; + } + + return $result; + } +} diff --git a/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php b/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php index 761aae99142..514a6c162fd 100644 --- a/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php +++ b/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php @@ -89,7 +89,7 @@ class doc_generic_bom_odt extends ModelePDFBom $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 @@ -113,7 +113,7 @@ class doc_generic_bom_odt extends ModelePDFBom $form = new Form($this->db); $texte = $this->description.".
    \n"; - $texte .= '
    '; + $texte .= ''; $texte .= ''; $texte .= ''; $texte .= ''; @@ -169,10 +169,21 @@ class doc_generic_bom_odt extends ModelePDFBom $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; } $texte .= '
    '; } + // Add input to upload a new template file. + $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 .= '
    '; $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).' 
    '; @@ -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/delivery/doc/pdf_storm.modules.php b/htdocs/core/modules/delivery/doc/pdf_storm.modules.php index 65912a8b9a0..7d880328663 100644 --- a/htdocs/core/modules/delivery/doc/pdf_storm.modules.php +++ b/htdocs/core/modules/delivery/doc/pdf_storm.modules.php @@ -147,7 +147,6 @@ class pdf_storm extends ModelePDFDeliveryOrder $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; // Display product-service code // Get source company $this->emetteur = $mysoc; @@ -575,6 +574,9 @@ class pdf_storm extends ModelePDFDeliveryOrder 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) { if ($pagenb == 1) { diff --git a/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php b/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php index 5875814b546..2e0c3f2d05c 100644 --- a/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php @@ -146,7 +146,6 @@ class pdf_typhon extends ModelePDFDeliveryOrder $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; // Display product-service code // Get source company $this->emetteur = $mysoc; @@ -499,6 +498,9 @@ class pdf_typhon extends ModelePDFDeliveryOrder 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) { if ($pagenb == 1) { 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 a916bcc534f..8d6e980bdc5 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 @@ -90,7 +90,6 @@ class doc_generic_shipment_odt extends ModelePdfExpedition $this->option_tva = 0; // Manage the vat option EXPEDITION_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 @@ -181,7 +180,13 @@ class doc_generic_shipment_odt extends ModelePdfExpedition $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 .= '
    '; @@ -273,7 +278,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -282,11 +287,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; @@ -294,8 +299,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 efc061b9e67..9e2e5286874 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -120,7 +120,7 @@ class pdf_espadon extends ModelePdfExpedition * * @param DoliDB $db Database handler */ - public function __construct($db = 0) + public function __construct(DoliDB $db) { global $conf, $langs, $mysoc; @@ -140,6 +140,8 @@ class pdf_espadon extends ModelePdfExpedition $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; $this->option_logo = 1; // Display logo + $this->option_draft_watermark = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -180,6 +182,11 @@ class pdf_espadon extends ModelePdfExpedition // Load traductions files required by page $outputlangs->loadLangs(array("main", "bills", "orders", "products", "dict", "companies", "propal", "deliveries", "sendings", "productbatch")); + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->SHIPPING_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->SHIPPING_DRAFT_WATERMARK; + } + global $outputlangsbis; $outputlangsbis = null; if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { @@ -642,7 +649,7 @@ class pdf_espadon extends ModelePdfExpedition if ($this->getColumnStatus('weight')) { - $this->printStdColumnContent($pdf, $curY, 'weight', $weighttxt.(($weighttxt && $voltxt) ? '
    ' : '').$voltxt, array('html'=>1)); + $this->printStdColumnContent($pdf, $curY, 'weight', $weighttxt.(($weighttxt && $voltxt) ? '
    ' : '').$voltxt); $nexY = max($pdf->GetY(), $nexY); } @@ -701,6 +708,9 @@ class pdf_espadon extends ModelePdfExpedition 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) { if ($pagenb == 1) { @@ -947,11 +957,6 @@ class pdf_espadon extends ModelePdfExpedition pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->SHIPPING_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->SHIPPING_DRAFT_WATERMARK); - } - //Prepare next $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -964,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 (empty($conf->global->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) @@ -981,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); @@ -1186,7 +1199,7 @@ class pdf_espadon extends ModelePdfExpedition { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'SHIPPING_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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 9a905422ff1..e37977144d2 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -121,7 +121,7 @@ class pdf_merou extends ModelePdfExpedition * * @param DoliDB $db Database handler */ - public function __construct($db = 0) + public function __construct(DoliDB $db) { global $conf, $langs, $mysoc; @@ -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 (empty($conf->global->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) @@ -584,7 +592,7 @@ class pdf_merou extends ModelePdfExpedition $origin_id = $object->origin_id; // Add list of linked elements - $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size - 1, $hookmanager); + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size - 1); //$this->Code39($Xoff+43, $Yoff+1, $object->commande->ref,$ext = true, $cks = false, $w = 0.4, $h = 4, $wide = true); //Definition Location of the Company block diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index 211231b9812..0237c294a0d 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -121,7 +121,7 @@ class pdf_rouget extends ModelePdfExpedition * * @param DoliDB $db Database handler */ - public function __construct($db = 0) + public function __construct(DoliDB $db) { global $conf, $langs, $mysoc; @@ -141,6 +141,8 @@ class pdf_rouget extends ModelePdfExpedition $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; $this->option_logo = 1; // Display logo + $this->option_draft_watermark = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -212,7 +214,12 @@ class pdf_rouget extends ModelePdfExpedition } // Load traductions files required by page - $outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies", "propal", "deliveries", "sendings", "productbatch")); + $outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies", "propal", "deliveries", "sendings", "productbatch", "other")); + + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->SHIPPING_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->SHIPPING_DRAFT_WATERMARK; + } $nblines = count($object->lines); @@ -607,6 +614,9 @@ class pdf_rouget extends ModelePdfExpedition 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) { if ($pagenb == 1) { @@ -892,11 +902,6 @@ class pdf_rouget extends ModelePdfExpedition pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->SHIPPING_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->SHIPPING_DRAFT_WATERMARK); - } - //Prepare la suite $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -909,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 (empty($conf->global->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) @@ -926,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); @@ -1131,6 +1144,6 @@ class pdf_rouget extends ModelePdfExpedition { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'SHIPPING_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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 .= '
    '.$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/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index a4e3ab491a5..f6536cbb1df 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 @@ -81,47 +81,20 @@ class pdf_standard extends ModeleExpenseReport */ public $version = 'dolibarr'; - /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - /** * Issuer * @var Societe */ public $emetteur; + public $posxpiece; + public $posxcomment; + public $posxtva; + public $posxup; + public $posxqty; + public $postotalht; + public $postotalttc; + /** * Constructor @@ -155,7 +128,6 @@ class pdf_standard extends ModeleExpenseReport $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 @@ -180,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; @@ -478,6 +450,9 @@ class pdf_standard extends ModeleExpenseReport 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) { if ($pagenb == 1) { @@ -609,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; } @@ -625,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); @@ -983,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); @@ -1068,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); } @@ -1108,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); } diff --git a/htdocs/core/modules/expensereport/mod_expensereport_sand.php b/htdocs/core/modules/expensereport/mod_expensereport_sand.php index c403aa8c228..d14f17de067 100644 --- a/htdocs/core/modules/expensereport/mod_expensereport_sand.php +++ b/htdocs/core/modules/expensereport/mod_expensereport_sand.php @@ -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).' 
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; @@ -127,7 +127,7 @@ class mod_holiday_immaculate extends ModelNumRefHolidays require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $mask = $conf->global->HOLIDAY_IMMACULATE_MASK; + $mask = getDolGlobalString('HOLIDAY_IMMACULATE_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/hrm/mod_evaluation_advanced.php b/htdocs/core/modules/hrm/mod_evaluation_advanced.php index 0468c9ebb30..cdb1cc20109 100644 --- a/htdocs/core/modules/hrm/mod_evaluation_advanced.php +++ b/htdocs/core/modules/hrm/mod_evaluation_advanced.php @@ -79,9 +79,9 @@ class mod_evaluation_advanced extends ModeleNumRefEvaluation // Parametrage du prefix $texte .= '
    '.$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); @@ -152,7 +151,7 @@ class doc_generic_member_odt extends ModelePDFMember $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); $texte .= '
    '; $texte .= ''; $texte .= '
    '; $texte .= ''; @@ -170,7 +169,13 @@ class doc_generic_member_odt extends ModelePDFMember $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 .= '
    '; @@ -263,7 +268,7 @@ class doc_generic_member_odt extends ModelePDFMember $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); @@ -272,11 +277,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; @@ -284,8 +289,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..91206c2dd9f 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 : "") ); } diff --git a/htdocs/core/modules/modAdherent.class.php b/htdocs/core/modules/modAdherent.class.php index 0d4a85e00ae..2db6311b172 100644 --- a/htdocs/core/modules/modAdherent.class.php +++ b/htdocs/core/modules/modAdherent.class.php @@ -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 ffd8fde5f1d..cac9047e56e 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -211,8 +211,8 @@ class modAgenda extends DolibarrModules 'url'=>'/comm/action/index.php', 'langs'=>'agenda', 'position'=>86, - 'perms'=>'$user->rights->agenda->myactions->read', - 'enabled'=>'$conf->agenda->enabled', + 'perms'=>'$user->rights->agenda->myactions->read || $user->rights->resource->read', + 'enabled'=>'$conf->agenda->enabled || $conf->resource->enabled', 'target'=>'', 'user'=>2, ); diff --git a/htdocs/core/modules/modAsset.class.php b/htdocs/core/modules/modAsset.class.php index 2146de367e1..a217cb8d72c 100644 --- a/htdocs/core/modules/modAsset.class.php +++ b/htdocs/core/modules/modAsset.class.php @@ -240,7 +240,7 @@ class modAsset extends DolibarrModules */ public function init($options = '') { - $result = $this->_load_tables('/install/mysql/tables/', 'asset'); + $result = $this->_load_tables('/install/mysql/', 'asset'); 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') } 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..0a07fff6aaf 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(); diff --git a/htdocs/core/modules/modBom.class.php b/htdocs/core/modules/modBom.class.php index 5eba97b1103..2e92d3baeaf 100644 --- a/htdocs/core/modules/modBom.class.php +++ b/htdocs/core/modules/modBom.class.php @@ -170,20 +170,6 @@ class modBom extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'mylangfile@bom', - 'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"), // List of tables we want to see into dictonnary editor - 'tablib'=>array("Table1","Table2","Table3"), // Label of tables - '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'), // Request to select fields - 'tabsqlsort'=>array("label ASC","label ASC","label ASC"), // Sort order - 'tabfield'=>array("code,label","code,label","code,label"), // List of fields (result of select to show dictionary) - 'tabfieldvalue'=>array("code,label","code,label","code,label"), // List of fields (list of fields to edit a record) - 'tabfieldinsert'=>array("code,label","code,label","code,label"), // List of fields (list of fields for insert) - 'tabrowid'=>array("rowid","rowid","rowid"), // Name of columns with primary key (try to always name it 'rowid') - 'tabcond'=>array($conf->bom->enabled,$conf->bom->enabled,$conf->bom->enabled) // Condition to show each dictionary - ); - */ // Boxes/Widgets diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index c3b7f256b4b..96f84ecc198 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)) { @@ -157,15 +157,16 @@ class modCategorie extends DolibarrModules if (!empty($conf->stock->enabled)) { $typeexample .= ($typeexample ? " / " : "")."9=Warehouse"; } - if (!empty($conf->agenda->enabled)) { + 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") || !empty($conf->service->enabled)'; $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'=>"List:societe:nom:rowid", '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 @@ -481,10 +489,11 @@ class modCategorie extends DolibarrModules 'cp.fk_product'=>array('rule'=>'fetchidfromref', 'classfile'=>'/product/class/product.class.php', 'class'=>'Product', 'method'=>'fetch', 'element'=>'Product') ); $this->import_examplevalues_array[$r] = array('cp.fk_categorie'=>"rowid or label", 'cp.fk_product'=>"rowid or ref"); + $this->import_updatekeys_array[$r] = array('cp.fk_categorie' => 'Category', 'cp.fk_product' => 'ProductRef'); } // 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 @@ -505,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 @@ -526,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 @@ -544,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 @@ -567,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 9aac30fe8a5..6a88c14271b 100644 --- a/htdocs/core/modules/modCommande.class.php +++ b/htdocs/core/modules/modCommande.class.php @@ -139,9 +139,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'; @@ -203,7 +211,7 @@ class modCommande 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'; @@ -213,12 +221,12 @@ 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'; } } //$this->export_TypeFields_array[$r]=array( - // 's.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label', + // 's.rowid'=>"Numeric",'s.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.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','cd.description'=>"Text", @@ -320,7 +328,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'; @@ -370,7 +378,7 @@ class modCommande extends DolibarrModules ), ); - //Import CPV Lines + //Import Order Lines $r++; $this->import_code[$r] = 'commande_lines_'.$r; $this->import_label[$r] = 'SaleOrderLines'; @@ -397,7 +405,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 2fc0c7f1e0d..89081551ddc 100644 --- a/htdocs/core/modules/modContrat.class.php +++ b/htdocs/core/modules/modContrat.class.php @@ -181,7 +181,7 @@ class modContrat extends DolibarrModules 'cod.date_ouverture'=>"contract_line", 'cod.date_ouverture_prevue'=>"contract_line", 'cod.date_fin_validite'=>"contract_line", 'cod.date_cloture'=>"contract_line", 'p.rowid'=>'product', 'p.ref'=>'product', 'p.label'=>'product'); - $this->export_TypeFields_array[$r] = array('s.rowid'=>"List:societe:nom", 's.nom'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 'c.code'=>'Text', + $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.code_compta_fournisseur'=>'Text', 's.tva_intra'=>'Text', 'co.ref'=>"Text", 'co.datec'=>"Date", 'co.date_contrat'=>"Date", diff --git a/htdocs/core/modules/modCron.class.php b/htdocs/core/modules/modCron.class.php index 290eea449f5..3a84b28eef3 100644 --- a/htdocs/core/modules/modCron.class.php +++ b/htdocs/core/modules/modCron.class.php @@ -101,6 +101,7 @@ class modCron extends DolibarrModules 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\'))'), + 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..9145b689f51 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,7 +105,7 @@ 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->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) @@ -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 46168280575..685158141e4 100644 --- a/htdocs/core/modules/modDav.class.php +++ b/htdocs/core/modules/modDav.class.php @@ -145,20 +145,6 @@ class modDav extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'mylangfile@dav', - 'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"), // List of tables we want to see into dictonnary editor - 'tablib'=>array("Table1","Table2","Table3"), // Label of tables - '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'), // Request to select fields - 'tabsqlsort'=>array("label ASC","label ASC","label ASC"), // Sort order - 'tabfield'=>array("code,label","code,label","code,label"), // List of fields (result of select to show dictionary) - 'tabfieldvalue'=>array("code,label","code,label","code,label"), // List of fields (list of fields to edit a record) - 'tabfieldinsert'=>array("code,label","code,label","code,label"), // List of fields (list of fields for insert) - 'tabrowid'=>array("rowid","rowid","rowid"), // Name of columns with primary key (try to always name it 'rowid') - 'tabcond'=>array($conf->dav->enabled,$conf->dav->enabled,$conf->dav->enabled) // Condition to show each dictionary - ); - */ // Boxes/Widgets diff --git a/htdocs/core/modules/modDeplacement.class.php b/htdocs/core/modules/modDeplacement.class.php index bceb313e120..88b239917f6 100644 --- a/htdocs/core/modules/modDeplacement.class.php +++ b/htdocs/core/modules/modDeplacement.class.php @@ -121,7 +121,7 @@ class modDeplacement extends DolibarrModules $this->export_label[$r] = 'ListTripsAndExpenses'; $this->export_permission[$r] = array(array("deplacement", "export")); $this->export_fields_array[$r] = array('u.login'=>'Login', 'u.lastname'=>'Lastname', 'u.firstname'=>'Firstname', 'd.rowid'=>"TripId", 'd.type'=>"Type", 'd.km'=>"FeesKilometersOrAmout", 'd.dated'=>"Date", 'd.note_private'=>'NotePrivate', 'd.note_public'=>'NotePublic', 's.nom'=>'ThirdParty'); - $this->export_TypeFields_array[$r] = array('u.rowid'=>'List:user:name', 'u.login'=>'Text', 'u.lastname'=>'Text', 'u.firstname'=>'Text', 'd.type'=>"Text", 'd.km'=>"Numeric", 'd.dated'=>"Date", 'd.note_private'=>'Text', 'd.note_public'=>'Text', 's.rowid'=>"List:societe:CompanyName", 's.nom'=>'Text'); + $this->export_TypeFields_array[$r] = array('u.rowid'=>'List:user:name', 'u.login'=>'Text', 'u.lastname'=>'Text', 'u.firstname'=>'Text', 'd.type'=>"Text", 'd.km'=>"Numeric", 'd.dated'=>"Date", 'd.note_private'=>'Text', 'd.note_public'=>'Text', 's.rowid'=>"Numeric", 's.nom'=>'Text'); $this->export_entities_array[$r] = array('u.login'=>'user', 'u.lastname'=>'user', 'u.firstname'=>'user', 'd.rowid'=>"trip", 'd.type'=>"trip", 'd.km'=>"trip", 'd.dated'=>"trip", 'd.note_private'=>'trip', 'd.note_public'=>'trip', 's.nom'=>'company'); $this->export_dependencies_array[$r] = array('trip'=>'d.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them @@ -159,7 +159,7 @@ class modDeplacement extends DolibarrModules */ public function init($options = '') { - $result = $this->_load_tables('/install/mysql/tables/', 'deplacement'); + $result = $this->_load_tables('/install/mysql/', 'deplacement'); 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') } diff --git a/htdocs/core/modules/modDon.class.php b/htdocs/core/modules/modDon.class.php index f2564cd3cc6..c5c790ca28c 100644 --- a/htdocs/core/modules/modDon.class.php +++ b/htdocs/core/modules/modDon.class.php @@ -155,7 +155,7 @@ class modDon extends DolibarrModules { global $conf; - $result = $this->_load_tables('/install/mysql/tables/', 'deplacement'); + $result = $this->_load_tables('/install/mysql/', 'don'); 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') } diff --git a/htdocs/core/modules/modECM.class.php b/htdocs/core/modules/modECM.class.php index 8b846089a03..e90b42a40aa 100644 --- a/htdocs/core/modules/modECM.class.php +++ b/htdocs/core/modules/modECM.class.php @@ -182,7 +182,7 @@ 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) && !empty($conf->global->ECM_AUTO_TREE_ENABLED)', '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 566d050aacd..ef823856a57 100644 --- a/htdocs/core/modules/modEmailCollector.class.php +++ b/htdocs/core/modules/modEmailCollector.class.php @@ -145,20 +145,6 @@ class modEmailCollector extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'mylangfile@dav', - 'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"), // List of tables we want to see into dictonnary editor - 'tablib'=>array("Table1","Table2","Table3"), // Label of tables - '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'), // Request to select fields - 'tabsqlsort'=>array("label ASC","label ASC","label ASC"), // Sort order - 'tabfield'=>array("code,label","code,label","code,label"), // List of fields (result of select to show dictionary) - 'tabfieldvalue'=>array("code,label","code,label","code,label"), // List of fields (list of fields to edit a record) - 'tabfieldinsert'=>array("code,label","code,label","code,label"), // List of fields (list of fields for insert) - 'tabrowid'=>array("rowid","rowid","rowid"), // Name of columns with primary key (try to always name it 'rowid') - 'tabcond'=>array($conf->dav->enabled,$conf->dav->enabled,$conf->dav->enabled) // Condition to show each dictionary - ); - */ // Boxes/Widgets @@ -180,77 +166,21 @@ class modEmailCollector extends DolibarrModules // Permissions $this->rights = array(); // Permission array used by this module - /* - $r=0; - $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) - $this->rights[$r][1] = 'Read myobject of dav'; // Permission label - $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'read'; // In php code, permission will be checked by test if ($user->rights->dav->level1->level2) - $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->dav->level1->level2) - - $r++; - $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) - $this->rights[$r][1] = 'Create/Update myobject of dav'; // Permission label - $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'write'; // In php code, permission will be checked by test if ($user->rights->dav->level1->level2) - $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->dav->level1->level2) - - $r++; - $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) - $this->rights[$r][1] = 'Delete myobject of dav'; // Permission label - $this->rights[$r][3] = 0; // Permission by default for new user (0/1) - $this->rights[$r][4] = 'delete'; // In php code, permission will be checked by test if ($user->rights->dav->level1->level2) - $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->dav->level1->level2) - */ - // Main menu entries $this->menu = array(); // List of menus to add + $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'=>'dav', - 'mainmenu'=>'dav', - 'leftmenu'=>'', - 'url'=>'/dav/davindex.php', - 'langs'=>'dav@dav', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>1000+$r, - 'enabled'=>'$conf->dav->enabled', // Define condition to show or hide menu entry. Use '$conf->dav->enabled' if entry must be visible if module is enabled. - 'perms'=>'1', // Use 'perms'=>'$user->rights->dav->level1->level2' 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 MYOBJECT - $this->menu[$r++]=array( 'fk_menu'=>'fk_mainmenu=dav', // '' 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 MyObject', - 'mainmenu'=>'dav', - 'leftmenu'=>'dav_myobject_list', - 'url'=>'/dav/myobject_list.php', - 'langs'=>'dav@dav', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>1000+$r, - 'enabled'=>'$conf->dav->enabled', // Define condition to show or hide menu entry. Use '$conf->dav->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->dav->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=dav,fk_leftmenu=dav', // '' 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 MyObject', - 'mainmenu'=>'dav', - 'leftmenu'=>'dav_myobject_new', - 'url'=>'/dav/myobject_page.php?action=create', - 'langs'=>'dav@dav', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. - 'position'=>1000+$r, - 'enabled'=>'$conf->dav->enabled', // Define condition to show or hide menu entry. Use '$conf->dav->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->dav->level1->level2' if you want your menu with a permission rules - 'target'=>'', - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - END MODULEBUILDER LEFTMENU MYOBJECT */ + $this->menu[$r] = array('fk_menu'=>'fk_mainmenu=home,fk_leftmenu=admintools', // 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'=>'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'=>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'=>'', + 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both + $r++; } /** @@ -263,7 +193,8 @@ class modEmailCollector extends DolibarrModules */ public function init($options = '') { - global $conf, $user; + global $conf, $user, $langs; + $langs->load("admin"); $sql = array(); @@ -271,27 +202,28 @@ class modEmailCollector extends DolibarrModules $tmpresql = $this->db->query($tmpsql); if ($tmpresql) { if ($this->db->num_rows($tmpresql) == 0) { - $descriptionA1 = '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.'; - $descriptionA1 .= ' 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.'; - + $descriptionA1 = $langs->trans('EmailCollectorExampleToCollectTicketRequestsDesc'); + $label = $langs->trans('EmailCollectorExampleToCollectTicketRequests'); $sqlforexampleA1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollector (entity, ref, label, description, source_directory, date_creation, fk_user_creat, status)"; - $sqlforexampleA1 .= " VALUES (".$conf->entity.", 'Collect_Ticket_Requets', 'Example to collect ticket requests', '".$this->db->escape($descriptionA1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; + $sqlforexampleA1 .= " VALUES (".$conf->entity.", 'Collect_Ticket_Requests', '".$this->db->escape($label)."', '".$this->db->escape($descriptionA1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; $sqlforexampleFilterA1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleFilterA1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requets' and entity = ".$conf->entity."), 'isnotanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleFilterA2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleFilterA2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requets' and entity = ".$conf->entity."), 'withouttrackingid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleFilterA1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requests' and entity = ".$conf->entity."), 'isnotanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + //$sqlforexampleFilterA2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; + //$sqlforexampleFilterA2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requests' and entity = ".$conf->entity."), 'withouttrackingid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sqlforexampleFilterA3 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue, date_creation, fk_user_creat, status)"; - $sqlforexampleFilterA3 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requets' and entity = ".$conf->entity."), 'to', 'support@example.com', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleFilterA3 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requests' and entity = ".$conf->entity."), 'to', 'support@example.com', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleA4 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleA4 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requets' and entity = ".$conf->entity."), 'ticket', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleActionA1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, date_creation, fk_user_creat, status)"; + $sqlforexampleActionA1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Ticket_Requests' and entity = ".$conf->entity."), 'ticket', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sql[] = $sqlforexampleA1; + $sql[] = $sqlforexampleFilterA1; - $sql[] = $sqlforexampleFilterA2; + //$sql[] = $sqlforexampleFilterA2; $sql[] = $sqlforexampleFilterA3; - $sql[] = $sqlforexampleA4; + + $sql[] = $sqlforexampleActionA1; } } else { dol_print_error($this->db); @@ -301,21 +233,24 @@ class modEmailCollector extends DolibarrModules $tmpresql = $this->db->query($tmpsql); if ($tmpresql) { if ($this->db->num_rows($tmpresql) == 0) { - $descriptionA1 = 'This collector will 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.'; - + $descriptionA1 = $langs->trans('EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware'); + $label = $langs->trans('EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware'); $sqlforexampleA1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollector (entity, ref, label, description, source_directory, date_creation, fk_user_creat, status)"; - $sqlforexampleA1 .= " VALUES (".$conf->entity.", 'Collect_Responses_Out', 'Example to collect answers to emails done from your external email software', '".$this->db->escape($descriptionA1)."', 'Sent', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; + $sqlforexampleA1 .= " VALUES (".$conf->entity.", 'Collect_Responses_Out', '".$this->db->escape($label)."', '".$this->db->escape($descriptionA1)."', 'Sent', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; $sqlforexampleFilterA1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; $sqlforexampleFilterA1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_Out' and entity = ".((int) $conf->entity)."), 'isanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sqlforexampleFilterA2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; $sqlforexampleFilterA2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_Out' and entity = ".((int) $conf->entity)."), 'withouttrackingidinmsgid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleActionA1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, date_creation, fk_user_creat, status)"; $sqlforexampleActionA1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_Out' and entity = ".((int) $conf->entity)."), 'recordevent', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sql[] = $sqlforexampleA1; + $sql[] = $sqlforexampleFilterA1; $sql[] = $sqlforexampleFilterA2; + $sql[] = $sqlforexampleActionA1; } } @@ -324,18 +259,22 @@ class modEmailCollector extends DolibarrModules $tmpresql = $this->db->query($tmpsql); if ($tmpresql) { if ($this->db->num_rows($tmpresql) == 0) { - $descriptionB1 = 'This collector will scan your mailbox to find 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.'; - + $descriptionB1 = $langs->trans('EmailCollectorExampleToCollectDolibarrAnswersDesc'); + $label = $langs->trans('EmailCollectorExampleToCollectDolibarrAnswers'); $sqlforexampleB1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollector (entity, ref, label, description, source_directory, date_creation, fk_user_creat, status)"; - $sqlforexampleB1 .= " VALUES (".$conf->entity.", 'Collect_Responses_In', 'Example to collect any received email that is a response of an email sent from Dolibarr', '".$this->db->escape($descriptionB1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; - $sqlforexampleB2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleB2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_In' and entity = ".((int) $conf->entity)."), 'isanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleB3 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleB3 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_In' and entity = ".((int) $conf->entity)."), 'recordevent', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleB1 .= " VALUES (".$conf->entity.", 'Collect_Responses_In', '".$this->db->escape($label)."', '".$this->db->escape($descriptionB1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; + + $sqlforexampleFilterB2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; + $sqlforexampleFilterB2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_In' and entity = ".((int) $conf->entity)."), 'isanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + + $sqlforexampleActionB3 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, date_creation, fk_user_creat, status)"; + $sqlforexampleActionB3 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Responses_In' and entity = ".((int) $conf->entity)."), 'recordevent', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sql[] = $sqlforexampleB1; - $sql[] = $sqlforexampleB2; - $sql[] = $sqlforexampleB3; + + $sql[] = $sqlforexampleFilterB2; + + $sql[] = $sqlforexampleActionB3; } } else { dol_print_error($this->db); @@ -345,28 +284,28 @@ class modEmailCollector extends DolibarrModules $tmpresql = $this->db->query($tmpsql); if ($tmpresql) { if ($this->db->num_rows($tmpresql) == 0) { - $descriptionC1 = "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."; - $descriptionC1 .= " 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.
    "; - $descriptionC1 .= "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."; - + $descriptionC1 = $langs->trans("EmailCollectorExampleToCollectLeadsDesc"); + $label = $langs->trans('EmailCollectorExampleToCollectLeads'); $sqlforexampleC1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollector (entity, ref, label, description, source_directory, date_creation, fk_user_creat, status)"; - $sqlforexampleC1 .= " VALUES (".$conf->entity.", 'Collect_Leads', 'Example to collect leads', '".$this->db->escape($descriptionC1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; + $sqlforexampleC1 .= " VALUES (".$conf->entity.", 'Collect_Leads', '".$this->db->escape($label)."', '".$this->db->escape($descriptionC1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; $sqlforexampleFilterC1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; $sqlforexampleFilterC1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Leads' and entity = ".((int) $conf->entity)."), 'isnotanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleFilterC2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleFilterC2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Leads' and entity = ".((int) $conf->entity)."), 'withouttrackingid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + //$sqlforexampleFilterC2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; + //$sqlforexampleFilterC2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Leads' and entity = ".((int) $conf->entity)."), 'withouttrackingid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sqlforexampleFilterC3 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue, date_creation, fk_user_creat, status)"; $sqlforexampleFilterC3 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Leads' and entity = ".((int) $conf->entity)."), 'to', 'sales@example.com', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleC4 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, actionparam, date_creation, fk_user_creat, status)"; - $sqlforexampleC4 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Leads' and entity = ".((int) $conf->entity)."), 'project', 'tmp_from=EXTRACT:HEADER:^From:(.*);socid=SETIFEMPTY:1;usage_opportunity=SET:1;description=EXTRACT:BODY:(.*);title=SET:Lead or message from __tmp_from__ received by email', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleActionC4 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, actionparam, date_creation, fk_user_creat, status)"; + $sqlforexampleActionC4 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Leads' and entity = ".((int) $conf->entity)."), 'project', 'tmp_from=EXTRACT:HEADER:^From:(.*);socid=SETIFEMPTY:1;usage_opportunity=SET:1;description=EXTRACT:BODY:(.*);title=SET:Lead or message from __tmp_from__ received by email', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sql[] = $sqlforexampleC1; + $sql[] = $sqlforexampleFilterC1; - $sql[] = $sqlforexampleFilterC2; + //$sql[] = $sqlforexampleFilterC2; $sql[] = $sqlforexampleFilterC3; - $sql[] = $sqlforexampleC4; + + $sql[] = $sqlforexampleActionC4; } } else { dol_print_error($this->db); @@ -376,27 +315,28 @@ class modEmailCollector extends DolibarrModules $tmpresql = $this->db->query($tmpsql); if ($tmpresql) { if ($this->db->num_rows($tmpresql) == 0) { - $descriptionC1 = "This collector will scan your mailbox to find emails send for a recruitment (Module Recruitment must be enabled). You can complete this collector if you want to automaticallycreate a candidature for a job request."; - $descriptionC1 .= "Note: With this initial example, the title of the candidature is generated including the email."; - + $descriptionC1 = $langs->trans("EmailCollectorExampleToCollectJobCandidaturesDesc"); + $label = $langs->trans('EmailCollectorExampleToCollectJobCandidatures'); $sqlforexampleC1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollector (entity, ref, label, description, source_directory, date_creation, fk_user_creat, status)"; - $sqlforexampleC1 .= " VALUES (".$conf->entity.", 'Collect_Candidatures', 'Example to collect email for job candidatures', '".$this->db->escape($descriptionC1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; + $sqlforexampleC1 .= " VALUES (".$conf->entity.", 'Collect_Candidatures', '".$this->db->escape($label)."', '".$this->db->escape($descriptionC1)."', 'INBOX', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 0)"; $sqlforexampleFilterC1 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; $sqlforexampleFilterC1 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Candidatures' and entity = ".((int) $conf->entity)."), 'isnotanswer', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleFilterC2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; - $sqlforexampleFilterC2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Candidatures' and entity = ".((int) $conf->entity)."), 'withouttrackingid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + //$sqlforexampleFilterC2 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, date_creation, fk_user_creat, status)"; + //$sqlforexampleFilterC2 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Candidatures' and entity = ".((int) $conf->entity)."), 'withouttrackingid', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sqlforexampleFilterC3 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue, date_creation, fk_user_creat, status)"; $sqlforexampleFilterC3 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Candidatures' and entity = ".((int) $conf->entity)."), 'to', 'jobs@example.com', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; - $sqlforexampleC4 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, actionparam, date_creation, fk_user_creat, status)"; - $sqlforexampleC4 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Candidatures' and entity = ".((int) $conf->entity)."), 'candidature', 'tmp_from=EXTRACT:HEADER:^From:(.*)(<.*>)?;fk_recruitmentjobposition=EXTRACT:HEADER:^To:[^\n]*\+([^\n]*);description=EXTRACT:BODY:(.*);lastname=SET:__tmp_from__', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; + $sqlforexampleActionC4 = "INSERT INTO ".MAIN_DB_PREFIX."emailcollector_emailcollectoraction (fk_emailcollector, type, actionparam, date_creation, fk_user_creat, status)"; + $sqlforexampleActionC4 .= " VALUES ((SELECT rowid FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector WHERE ref = 'Collect_Candidatures' and entity = ".((int) $conf->entity)."), 'candidature', 'tmp_from=EXTRACT:HEADER:^From:(.*)(<.*>)?;fk_recruitmentjobposition=EXTRACT:HEADER:^To:[^\n]*\+([^\n]*);description=EXTRACT:BODY:(.*);lastname=SET:__tmp_from__', '".$this->db->idate(dol_now())."', ".((int) $user->id).", 1)"; $sql[] = $sqlforexampleC1; + $sql[] = $sqlforexampleFilterC1; - $sql[] = $sqlforexampleFilterC2; + //$sql[] = $sqlforexampleFilterC2; $sql[] = $sqlforexampleFilterC3; - $sql[] = $sqlforexampleC4; + + $sql[] = $sqlforexampleActionC4; } } else { dol_print_error($this->db); diff --git a/htdocs/core/modules/modEventOrganization.class.php b/htdocs/core/modules/modEventOrganization.class.php index f2dc614cb03..c2c9309cd44 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,7 +56,7 @@ 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) @@ -181,29 +182,6 @@ class modEventOrganization extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'eventorganization@eventorganization', - // 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->eventorganization->enabled, $conf->eventorganization->enabled, $conf->eventorganization->enabled) - ); - */ // Boxes/Widgets // Add here list of php file(s) stored in eventorganization/core/boxes that contains a class to show a widget. @@ -280,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. @@ -390,7 +368,9 @@ class modEventOrganization extends DolibarrModules } } - return $this->_init($sql, $options); + $init = $this->_init($sql, $options); + + return $init; } /** diff --git a/htdocs/core/modules/modExpedition.class.php b/htdocs/core/modules/modExpedition.class.php index c10e13a46d8..80625817b22 100644 --- a/htdocs/core/modules/modExpedition.class.php +++ b/htdocs/core/modules/modExpedition.class.php @@ -255,7 +255,7 @@ class modExpedition extends DolibarrModules $this->export_fields_array[$r] += array('sp.rowid'=>'IdContact', 'sp.lastname'=>'Lastname', 'sp.firstname'=>'Firstname', 'sp.note_public'=>'NotePublic'); } //$this->export_TypeFields_array[$r]=array( - // 's.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label', + // 's.rowid'=>"Numeric",'s.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.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric", // 'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text" 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 817fa1b53cf..f7d902d22f1 100644 --- a/htdocs/core/modules/modFacture.class.php +++ b/htdocs/core/modules/modFacture.class.php @@ -134,7 +134,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, @@ -224,15 +224,285 @@ class modFacture extends DolibarrModules $this->menu = 1; // This module add menu entries. They are coded into menu manager. + // Imports + //-------- + $r = 1; + + $r++; + $this->import_code[$r] = $this->rights_class.'_'.$r; + $this->import_label[$r] = "Invoices"; // 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('f' => MAIN_DB_PREFIX.'facture', 'extra' => MAIN_DB_PREFIX.'facture_extrafields'); + $this->import_tables_creator_array[$r] = array('f' => 'fk_user_author'); // Fields to store import user id + $this->import_fields_array[$r] = array( + 'f.ref' => 'InvoiceRef*', + 'f.ref_ext' => 'ExternalRef', + 'f.ref_int' => 'ExternalRef', + 'f.ref_client' => 'CutomerRef', + 'f.type' => 'Type*', + 'f.fk_soc' => 'Customer*', + 'f.datec' => 'InvoiceDateCreation', + 'f.datef' => 'DateInvoice', + 'f.date_valid' => 'Validation Date', + 'f.paye' => 'InvoicePaid', + 'f.remise_percent' => 'RemisePercent', + 'f.remise_absolue' => 'RemiseAbsolue', + 'f.remise' => 'Remise', + 'f.total_tva' => 'TotalVAT', + 'f.total_ht' => 'TotalHT', + 'f.total_ttc' => 'TotalTTC', + 'f.fk_statut' => 'InvoiceStatus', + 'f.fk_user_modif' => 'Modifier Id', + 'f.fk_user_valid' => 'Validator Id', + 'f.fk_user_closing' => 'Closer Id', + 'f.fk_facture_source' => 'Invoice Source Id', + 'f.fk_projet' => 'Project Id', + 'f.fk_account' => 'Bank Account', + 'f.fk_currency' => 'Currency*', + 'f.fk_cond_reglement' => 'Payment Condition', + 'f.fk_mode_reglement' => 'Payment Mode', + 'f.date_lim_reglement' => 'DateMaxPayment', + 'f.note_public' => 'InvoiceNote', + 'f.note_private' => 'NotePrivate', + 'f.model_pdf' => 'Model' + ); + 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'; + $this->import_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT'; + $this->import_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; + } + // Add extra fields + $import_extrafield_sample = array(); + $sql = "SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture' AND entity IN (0, ".$conf->entity.")"; + $resql = $this->db->query($sql); + if ($resql) { + while ($obj = $this->db->fetch_object($resql)) { + $fieldname = 'extra.'.$obj->name; + $fieldlabel = ucfirst($obj->label); + $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ? '*' : ''); + $import_extrafield_sample[$fieldname] = $fieldlabel; + } + } + // End add extra fields + $this->import_fieldshidden_array[$r] = array('extra.fk_object' => 'lastrowid-'.MAIN_DB_PREFIX.'facture'); + $this->import_regex_array[$r] = array('f.multicurrency_code' => 'code@'.MAIN_DB_PREFIX.'multicurrency'); + $import_sample = array( + 'f.ref' => '(PROV0001)', + 'f.ref_ext' => '', + 'f.ref_int' => '', + 'f.ref_client' => '', + 'f.type' => '0', + 'f.fk_soc' => '80LIMIT', + 'f.datec' => '2021-11-24', + 'f.datef' => '2021-11-24', + 'f.date_valid' => '2021-11-24', + 'f.paye' => '1', + 'f.remise_percent' => '0', + 'f.remise_absolue' => '0', + 'f.remise' => '0', + 'f.total_tva' => '21', + 'f.total_ht' => '100', + 'f.total_ttc' => '121', + 'f.fk_statut' => '1', + 'f.fk_user_modif' => '', + 'f.fk_user_valid' => '', + 'f.fk_user_closing' => '', + 'f.fk_facture_source' => '', + 'f.fk_projet' => '', + 'f.fk_account' => '', + 'f.fk_currency' => 'EUR', + 'f.fk_cond_reglement' => '30D', + 'f.fk_mode_reglement' => 'VIR', + 'f.date_lim_reglement' => '2021-12-24', + 'f.note_public' => '', + 'f.note_private' => '', + 'f.model_pdf' => 'crabe', + 'f.multicurrency_code' => 'EUR', + 'f.multicurrency_tx' => '1', + 'f.multicurrency_total_ht' => '100', + 'f.multicurrency_total_tva' => '21', + 'f.multicurrency_total_ttc' => '121' + ); + $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); + $this->import_updatekeys_array[$r] = array('f.ref' => 'Ref'); + $this->import_convertvalue_array[$r] = array( + 'f.fk_soc' => array( + 'rule' => 'fetchidfromref', + 'file' => '/societe/class/societe.class.php', + 'class' => 'Societe', + 'method' => 'fetch', + 'element' => 'ThirdParty' + ), + 'f.fk_projet' => array( + 'rule' => 'fetchidfromref', + 'file' => '/projet/class/project.class.php', + 'class' => 'Project', + 'method' => 'fetch', + 'element' => 'facture' + ), + 'f.fk_cond_reglement' => array( + 'rule' => 'fetchidfromcodeorlabel', + 'file' => '/compta/facture/class/paymentterm.class.php', + 'class' => 'PaymentTerm', + 'method' => 'fetch', + 'element' => 'c_payment_term' + ) + ); + + //Import Supplier Invoice Lines + $r++; + $this->import_code[$r] = $this->rights_class.'_'.$r; + $this->import_label[$r] = "InvoiceLine"; // 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('fd' => MAIN_DB_PREFIX.'facturedet', 'extra' => MAIN_DB_PREFIX.'facturedet_extrafields'); + $this->import_fields_array[$r] = array( + 'fd.fk_facture' => 'InvoiceRef*', + 'fd.fk_parent_line' => 'FacParentLine', + 'fd.fk_product' => 'IdProduct', + 'fd.label' => 'Label', + 'fd.description' => 'LineDescription*', + 'fd.vat_src_code' => 'Vat Source Code', + 'fd.tva_tx' => 'LineVATRate*', + // localtax1_tx + // localtax1_type + // localtax2_tx + // localtax2_type + 'fd.qty' => 'LineQty', + 'fd.remise_percent' => 'Reduc. (%)', + // remise + // fk_remise_except + // subprice + // price + 'fd.total_ht' => 'LineTotalHT', + 'fd.total_tva' => 'LineTotalVAT', + // total_localtax1 + // total_localtax2 + 'fd.total_ttc' => 'LineTotalTTC', + 'fd.product_type' => 'TypeOfLineServiceOrProduct', + 'fd.date_start' => 'Start Date', + 'fd.date_end' => 'End Date', + // info_bits + // buy_price_ht + // fk_product_fournisseur_price + // specia_code + // rang + // fk_contract_line + 'fd.fk_unit' => 'Unit', + // fk_code_ventilation + // situation_percent + // fk_prev_id + // fk_user_author + // fk_user_modif + // ref_ext + ); + 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'; + $this->import_fields_array[$r]['fd.multicurrency_total_tva'] = 'MulticurrencyAmountVAT'; + $this->import_fields_array[$r]['fd.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; + } + // Add extra fields + $import_extrafield_sample = array(); + $sql = "SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_det' AND entity IN (0, ".$conf->entity.")"; + $resql = $this->db->query($sql); + if ($resql) { + while ($obj = $this->db->fetch_object($resql)) { + $fieldname = 'extra.'.$obj->name; + $fieldlabel = ucfirst($obj->label); + $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ? '*' : ''); + $import_extrafield_sample[$fieldname] = $fieldlabel; + } + } + // End add extra fields + $this->import_fieldshidden_array[$r] = array('extra.fk_object' => 'lastrowid-'.MAIN_DB_PREFIX.'facturedet'); + $this->import_regex_array[$r] = array( + 'fd.fk_product' => 'rowid@'.MAIN_DB_PREFIX.'product', + 'fd.multicurrency_code' => 'code@'.MAIN_DB_PREFIX.'multicurrency' + ); + $import_sample = array( + 'fd.fk_facture' => '(PROV00001)', + 'fd.fk_parent_line' => '', + 'fd.fk_product' => '', + 'fd.label' => '', + 'fd.description' => 'Test product', + 'fd.vat_src_code' => '', + 'fd.tva_tx' => '21', + // localtax1_tx + // localtax1_type + // localtax2_tx + // localtax2_type + 'fd.qty' => '1', + 'fd.remise_percent' => '0', + // remise + // fk_remise_except + // subprice + // price + 'fd.total_ht' => '100', + 'fd.total_tva' => '21', + // total_localtax1 + // total_localtax2 + 'fd.total_ttc' => '121', + 'fd.product_type' => '0', + 'fd.date_start' => '', + 'fd.date_end' => '', + // info_bits + // buy_price_ht + // fk_product_fournisseur_price + // specia_code + // rang + // fk_contract_line + 'fd.fk_unit' => '', + // fk_code_ventilation + // situation_percent + // fk_prev_id + // fk_user_author + // fk_user_modif + // ref_ext + 'fd.multicurrency_code' => 'EUR', + 'fd.multicurrency_tx' => '21', + 'fd.multicurrency_total_ht' => '100', + 'fd.multicurrency_total_tva' => '21', + 'fd.multicurrency_total_ttc' => '121' + ); + $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample); + $this->import_updatekeys_array[$r] = array( + 'fd.rowid' => 'Row Id', + 'fd.fk_facture' => 'Invoice Id' + ); + $this->import_convertvalue_array[$r] = array( + 'fd.fk_facture' => array( + 'rule' => 'fetchidfromref', + 'file' => '/compta/facture/class/facture.class.php', + 'class' => 'Facture', + 'method' => 'fetch', + 'element' => 'facture' + ), + 'fd.fk_projet' => array( + 'rule' => 'fetchidfromref', + 'file' => '/projet/class/project.class.php', + 'class' => 'Project', + 'method' => 'fetch', + 'element' => 'facture' + ), + ); + + // Exports //-------- $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', @@ -240,60 +510,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 @@ -317,6 +601,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'; } @@ -334,6 +619,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)) { @@ -361,7 +647,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/modFournisseur.class.php b/htdocs/core/modules/modFournisseur.class.php index aef28514c61..e05d7964094 100644 --- a/htdocs/core/modules/modFournisseur.class.php +++ b/htdocs/core/modules/modFournisseur.class.php @@ -317,7 +317,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'; @@ -325,7 +325,7 @@ class modFournisseur extends DolibarrModules $this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; } //$this->export_TypeFields_array[$r]=array( - // 's.rowid'=>"List:societe:CompanyName",'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.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.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric", // 'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_ttc'=>"Numeric", // 'fd.tva'=>"Numeric",'fd.product_type'=>'Numeric','fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text' @@ -391,7 +391,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'; @@ -399,7 +399,7 @@ class modFournisseur extends DolibarrModules $this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; } //$this->export_TypeFields_array[$r]=array( - // 's.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text', + // '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.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date", // 'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text", // 'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric' @@ -458,7 +458,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 +557,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'; @@ -649,7 +649,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 +735,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 +817,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'; diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php index bd81f06dae7..7df3bcc6dcf 100644 --- a/htdocs/core/modules/modHRM.class.php +++ b/htdocs/core/modules/modHRM.class.php @@ -280,7 +280,7 @@ class modHRM extends DolibarrModules // Permissions $this->remove($options); - $result = $this->_load_tables('/install/mysql/tables/', 'hrm'); + $result = $this->_load_tables('/install/mysql/', 'hrm'); 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') } diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php index 53f69dfefaf..429e511de48 100644 --- a/htdocs/core/modules/modHoliday.class.php +++ b/htdocs/core/modules/modHoliday.class.php @@ -140,7 +140,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/modIncoterm.class.php b/htdocs/core/modules/modIncoterm.class.php index 9ef50fe3aac..110afe442c2 100644 --- a/htdocs/core/modules/modIncoterm.class.php +++ b/htdocs/core/modules/modIncoterm.class.php @@ -85,7 +85,7 @@ class modIncoterm extends DolibarrModules } $this->dictionaries = array( 'langs'=>'incoterm', - 'tabname'=>array(MAIN_DB_PREFIX."c_incoterms"), // List of tables we want to see into dictonnary editor + 'tabname'=>array("c_incoterms"), // List of tables we want to see into dictonnary editor 'tablib'=>array("Incoterms"), // Label of tables 'tabsql'=>array('SELECT rowid, code, libelle, active FROM '.MAIN_DB_PREFIX.'c_incoterms'), // Request to select fields 'tabsqlsort'=>array("rowid ASC"), // Sort order @@ -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 817c893934b..4a9de11109a 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 . */ /** @@ -50,7 +50,7 @@ class modIntracommreport extends DolibarrModules $this->description = "Intracomm report management (Support for French DEB/DES format)"; // Possible values for version are: 'development', 'experimental', 'dolibarr' or 'dolibarr_deprecated' or version - $this->version = 'experimental'; + $this->version = 'development'; $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); $this->picto = 'intracommreport'; @@ -138,7 +138,7 @@ class modIntracommreport extends DolibarrModules { global $conf; - $result = $this->_load_tables('/install/mysql/tables/', 'intracommreport'); + $result = $this->_load_tables('/install/mysql/', 'intracommreport'); 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') } diff --git a/htdocs/core/modules/modKnowledgeManagement.class.php b/htdocs/core/modules/modKnowledgeManagement.class.php index 93b44f31204..0df2f20992f 100644 --- a/htdocs/core/modules/modKnowledgeManagement.class.php +++ b/htdocs/core/modules/modKnowledgeManagement.class.php @@ -197,29 +197,6 @@ class modKnowledgeManagement extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'knowledgemanagement@knowledgemanagement', - // 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->knowledgemanagement->enabled, $conf->knowledgemanagement->enabled, $conf->knowledgemanagement->enabled) - ); - */ // Boxes/Widgets // Add here list of php file(s) stored in knowledgemanagement/core/boxes that contains a class to show a widget. @@ -442,7 +419,7 @@ class modKnowledgeManagement extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'knowledgemanagement'); + $result = $this->_load_tables('/install/mysql/', 'knowledgemanagement'); 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') } diff --git a/htdocs/core/modules/modLoan.class.php b/htdocs/core/modules/modLoan.class.php index e19ec1b81f8..8f9de88b83f 100644 --- a/htdocs/core/modules/modLoan.class.php +++ b/htdocs/core/modules/modLoan.class.php @@ -160,7 +160,7 @@ class modLoan extends DolibarrModules { global $conf; - $result = $this->_load_tables('/install/mysql/tables/', 'loan'); + $result = $this->_load_tables('/install/mysql/', 'loan'); 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') } diff --git a/htdocs/core/modules/modMailing.class.php b/htdocs/core/modules/modMailing.class.php index 1a31aad9c8b..7e3d4b6aeb1 100644 --- a/htdocs/core/modules/modMailing.class.php +++ b/htdocs/core/modules/modMailing.class.php @@ -159,7 +159,7 @@ class modMailing extends DolibarrModules */ public function init($options = '') { - $result = $this->_load_tables('/install/mysql/tables/', 'mailing'); + $result = $this->_load_tables('/install/mysql/', 'mailing'); 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') } diff --git a/htdocs/core/modules/modMrp.class.php b/htdocs/core/modules/modMrp.class.php index 2bfc026d959..1fd806bdc56 100644 --- a/htdocs/core/modules/modMrp.class.php +++ b/htdocs/core/modules/modMrp.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 . */ /** @@ -181,29 +181,6 @@ class modMrp extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'mylangfile@mrp', - // 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->mrp->enabled,$conf->mrp->enabled,$conf->mrp->enabled) - ); - */ // Boxes/Widgets // Add here list of php file(s) stored in mrp/core/boxes that contains a class to show a widget. diff --git a/htdocs/core/modules/modMultiCurrency.class.php b/htdocs/core/modules/modMultiCurrency.class.php index bc7e044c7af..28f2f7cdd16 100644 --- a/htdocs/core/modules/modMultiCurrency.class.php +++ b/htdocs/core/modules/modMultiCurrency.class.php @@ -131,22 +131,7 @@ class modMultiCurrency extends DolibarrModules $conf->multicurrency->enabled = 0; } $this->dictionaries = array(); - /* Example: - if (! isset($conf->multicurrency->enabled)) $conf->multicurrency->enabled=0; // This is to avoid warnings - $this->dictionaries=array( - 'langs'=>'mylangfile@multicurrency', - 'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"), // List of tables we want to see into dictonnary editor - 'tablib'=>array("Table1","Table2","Table3"), // Label of tables - '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'), // Request to select fields - // Sort order - 'tabsqlsort'=>array("label ASC","label ASC","label ASC"), - 'tabfield'=>array("code,label","code,label","code,label"), // List of fields (result of select to show dictionary) - 'tabfieldvalue'=>array("code,label","code,label","code,label"), // List of fields (list of fields to edit a record) - 'tabfieldinsert'=>array("code,label","code,label","code,label"), // List of fields (list of fields for insert) - 'tabrowid'=>array("rowid","rowid","rowid"), // Name of columns with primary key (try to always name it 'rowid') - 'tabcond'=>array($conf->multicurrency->enabled,$conf->multicurrency->enabled,$conf->multicurrency->enabled) // Condition to show each dictionary - ); - */ + // Boxes // Add here list of php file(s) stored in core/boxes that contains class to show a box. @@ -301,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/modOpenSurvey.class.php b/htdocs/core/modules/modOpenSurvey.class.php index 9cc9310cd19..04a8cd54082 100644 --- a/htdocs/core/modules/modOpenSurvey.class.php +++ b/htdocs/core/modules/modOpenSurvey.class.php @@ -184,7 +184,7 @@ class modOpenSurvey extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'opensurvey'); + $result = $this->_load_tables('/install/mysql/', 'opensurvey'); 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') } diff --git a/htdocs/core/modules/modPartnership.class.php b/htdocs/core/modules/modPartnership.class.php index 3bec23d0d37..7ba10ca4536 100644 --- a/htdocs/core/modules/modPartnership.class.php +++ b/htdocs/core/modules/modPartnership.class.php @@ -75,7 +75,7 @@ class modPartnership extends DolibarrModules // $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 = 'experimental'; + $this->version = 'dolibarr'; // Url to the file with your last numberversion of this module //$this->url_last_version = 'http://www.example.com/versionmodule.txt'; @@ -177,8 +177,7 @@ class modPartnership extends DolibarrModules // Array to add new pages in new tabs $this->tabs = array(); - $tabtoadd = (!empty(getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR')) && getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') ? 'member' : 'thirdparty'; - + $tabtoadd = getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty'); if ($tabtoadd == 'member') { $fk_mainmenu = "members"; } else { @@ -215,23 +214,25 @@ class modPartnership extends DolibarrModules $this->dictionaries=array( 'langs'=>'partnership@partnership', // List of tables we want to see into dictonnary editor - 'tabname'=>array(MAIN_DB_PREFIX."c_partnership_type"), + 'tabname'=>array("c_partnership_type"), // Label of tables 'tablib'=>array("PartnershipType"), // Request to select fields - 'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'c_partnership_type as f WHERE f.entity = '.$conf->entity), + 'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.keyword, f.active FROM '.MAIN_DB_PREFIX.'c_partnership_type as f WHERE f.entity = '.((int) $conf->entity)), // Sort order 'tabsqlsort'=>array("label ASC"), // List of fields (result of select to show dictionary) - 'tabfield'=>array("code,label"), + 'tabfield'=>array("code,label,keyword"), // List of fields (list of fields to edit a record) - 'tabfieldvalue'=>array("code,label"), + 'tabfieldvalue'=>array("code,label,keyword"), // List of fields (list of fields for insert) - 'tabfieldinsert'=>array("code,label"), + 'tabfieldinsert'=>array("code,label,keyword"), // Name of columns with primary key (try to always name it 'rowid') 'tabrowid'=>array("rowid"), // Condition to show each dictionary - 'tabcond'=>array($conf->partnership->enabled) + 'tabcond'=>array($conf->partnership->enabled), + // Help tooltip for each fields of the dictionary + 'tabhelp'=>array(array('keyword'=>$langs->trans('KeywordToCheckInWebsite'))) ); // Boxes/Widgets @@ -408,7 +409,7 @@ class modPartnership extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'partnership'); + $result = $this->_load_tables('/install/mysql/', 'partnership'); 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') } @@ -428,7 +429,7 @@ class modPartnership extends DolibarrModules $sql = array(); // Document templates - $moduledir = 'partnership'; + $moduledir = dol_sanitizeFileName('partnership'); $myTmpObjects = array(); $myTmpObjects['Partnership'] = array('includerefgeneration'=>0, 'includedocgeneration'=>0); @@ -437,8 +438,8 @@ class modPartnership extends DolibarrModules continue; } if ($myTmpObjectArray['includerefgeneration']) { - $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/partnership/template_partnerships.odt'; - $dirodt = DOL_DATA_ROOT.'/doctemplates/partnership'; + $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/'.$moduledir.'/template_partnerships.odt'; + $dirodt = DOL_DATA_ROOT.'/doctemplates/'.$moduledir; $dest = $dirodt.'/template_partnerships.odt'; if (file_exists($src) && !file_exists($dest)) { diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index b18d10a29b1..604d96fd4cd 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -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,20 +211,20 @@ 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") || !empty($conf->margin->enabled)) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); } if (!empty($conf->stock->enabled)) { $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)) { @@ -247,10 +255,10 @@ class modProduct extends DolibarrModules if (!empty($conf->stock->enabled)) { $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)) { @@ -266,10 +274,10 @@ class modProduct extends DolibarrModules if (!empty($conf->stock->enabled)) { $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)) { @@ -281,10 +289,10 @@ class modProduct extends DolibarrModules if (!empty($conf->stock->enabled)) { $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)) { @@ -305,7 +313,7 @@ class modProduct extends DolibarrModules $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)) { @@ -404,7 +412,7 @@ class modProduct extends DolibarrModules if (!empty($conf->stock->enabled)) { $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')); @@ -420,7 +428,7 @@ class modProduct extends DolibarrModules if (!empty($conf->stock->enabled)) { $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')); @@ -436,7 +444,7 @@ class modProduct extends DolibarrModules if (!empty($conf->stock->enabled)) { $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')); @@ -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") || !empty($conf->margin->enabled)) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); } if (is_object($mysoc) && $usenpr) { @@ -629,7 +637,7 @@ 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)) { @@ -710,7 +718,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") || !empty($conf->margin->enabled)) { $import_sample = array_merge($import_sample, array('p.cost_price'=>'90')); } if (is_object($mysoc) && $usenpr) { @@ -722,7 +730,7 @@ 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)) { @@ -745,11 +753,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 +791,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 +853,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', diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index 08eb3c58adc..5f1ad7d2099 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -152,7 +152,7 @@ class modProjet extends DolibarrModules $r++; $this->rights[$r][0] = 41; // id de la permission - $this->rights[$r][1] = "Read projects and tasks (shared projects or projects I am contact for). Can also enter time consumed on assigned tasks (timesheet)"; // libelle de la permission + $this->rights[$r][1] = "Read projects and tasks (shared projects or projects I am contact for)"; // libelle de la permission $this->rights[$r][2] = 'r'; // 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] = 'lire'; @@ -188,7 +188,7 @@ class modProjet extends DolibarrModules $r++; $this->rights[$r][0] = 142; // id de la permission - $this->rights[$r][1] = "Create/modify all projects and tasks (also private projects I am not contact for). Can also enter time consumed on assigned tasks (timesheet)"; // libelle de la permission + $this->rights[$r][1] = "Create/modify all projects and tasks (also private projects I am not contact for)"; // 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] = 'all'; @@ -202,6 +202,12 @@ class modProjet extends DolibarrModules $this->rights[$r][4] = 'all'; $this->rights[$r][5] = 'supprimer'; + $r++; + $this->rights[$r][0] = 145; // id de la permission + $this->rights[$r][1] = "Can enter time consumed on assigned tasks (timesheet)"; // 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] = 'time'; // Menus //------- @@ -218,13 +224,13 @@ class modProjet extends DolibarrModules $this->export_dependencies_array[$r] = array('projecttask'=>'pt.rowid', 'task_time'=>'ptt.rowid'); $this->export_TypeFields_array[$r] = array( - 's.rowid'=>"List:societe:nom::thirdparty", 's.nom'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 's.fk_pays'=>'List:c_country:label', + 's.rowid'=>"Numeric", 's.nom'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 's.fk_pays'=>'List:c_country:label', 's.phone'=>'Text', 's.email'=>'Text', 's.siren'=>'Text', 's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 's.code_compta'=>'Text', 's.code_compta_fournisseur'=>'Text', - 'p.rowid'=>"List:projet:ref::project", 'p.ref'=>"Text", 'p.title'=>"Text", + 'p.rowid'=>"Numeric", 'p.ref'=>"Text", 'p.title'=>"Text", 'p.usage_opportunity'=>'Boolean', 'p.usage_task'=>'Boolean', 'p.usage_bill_time'=>'Boolean', - 'p.datec'=>"Date", 'p.dateo'=>"Date", 'p.datee'=>"Date", 'p.fk_statut'=>'Status', 'cls.code'=>"Text", 'p.opp_percent'=>'Numeric', 'p.opp_amount'=>'Numeric', 'p.description'=>"Text", 'p.entity'=>'Numeric', + 'p.datec'=>"Date", 'p.dateo'=>"Date", 'p.datee'=>"Date", 'p.fk_statut'=>'Status', 'cls.code'=>"Text", 'p.opp_percent'=>'Numeric', 'p.opp_amount'=>'Numeric', 'p.description'=>"Text", 'p.entity'=>'Numeric', 'p.budget_amount'=>'Numeric', 'pt.rowid'=>'Numeric', 'pt.ref'=>'Text', 'pt.label'=>'Text', 'pt.dateo'=>"Date", 'pt.datee'=>"Date", 'pt.duration_effective'=>"Duree", 'pt.planned_workload'=>"Numeric", 'pt.progress'=>"Numeric", 'pt.description'=>"Text", - 'ptt.rowid'=>'Numeric', 'ptt.task_date'=>'Date', 'ptt.task_duration'=>"Duree", 'ptt.fk_user'=>"List:user:CONCAT(lastname,' ',firstname)", 'ptt.note'=>"Text" + 'ptt.rowid'=>'Numeric', 'ptt.task_date'=>'Date', 'ptt.task_duration'=>"Duree", 'ptt.fk_user'=>"FormSelect:select_dolusers", 'ptt.note'=>"Text" ); $this->export_entities_array[$r] = array( 's.rowid'=>"company", 's.nom'=>'company', 's.address'=>'company', 's.zip'=>'company', 's.town'=>'company', 's.fk_pays'=>'company', @@ -235,12 +241,12 @@ class modProjet extends DolibarrModules 's.phone'=>'Phone', 's.email'=>'Email', 's.siren'=>'ProfId1', 's.siret'=>'ProfId2', 's.ape'=>'ProfId3', 's.idprof4'=>'ProfId4', 's.code_compta'=>'CustomerAccountancyCode', 's.code_compta_fournisseur'=>'SupplierAccountancyCode', 'p.rowid'=>"ProjectId", 'p.ref'=>"RefProject", 'p.title'=>'ProjectLabel', 'p.usage_opportunity'=>'ProjectFollowOpportunity', 'p.usage_task'=>'ProjectFollowTasks', 'p.usage_bill_time'=>'BillTime', - 'p.datec'=>"DateCreation", 'p.dateo'=>"DateStart", 'p.datee'=>"DateEnd", 'p.fk_statut'=>'ProjectStatus', 'cls.code'=>'OpportunityStatus', 'p.opp_percent'=>'OpportunityProbability', 'p.opp_amount'=>'OpportunityAmount', 'p.description'=>"Description" + 'p.datec'=>"DateCreation", 'p.dateo'=>"DateStart", 'p.datee'=>"DateEnd", 'p.fk_statut'=>'ProjectStatus', 'cls.code'=>'OpportunityStatus', 'p.opp_percent'=>'OpportunityProbability', 'p.opp_amount'=>'OpportunityAmount', 'p.budget_amount'=>'Budget', 'p.description'=>"Description" ); // 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'); } } diff --git a/htdocs/core/modules/modPropale.class.php b/htdocs/core/modules/modPropale.class.php index 3419d4c866e..524aa0086ea 100644 --- a/htdocs/core/modules/modPropale.class.php +++ b/htdocs/core/modules/modPropale.class.php @@ -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,12 +207,12 @@ 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'; } } //$this->export_TypeFields_array[$r]=array( - // 's.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.code'=>'Text','s.phone'=>'Text', + // 's.rowid'=>"Numeric",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','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.datec'=>"Date",'c.datep'=>"Date", // 'c.fin_validite'=>"Date",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.fk_statut'=>'Status','c.note_public'=>"Text", // 'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric", @@ -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/modReception.class.php b/htdocs/core/modules/modReception.class.php index 29c10ccb3e5..6e7cba2b053 100644 --- a/htdocs/core/modules/modReception.class.php +++ b/htdocs/core/modules/modReception.class.php @@ -189,7 +189,7 @@ class modReception extends DolibarrModules if ($idcontacts && !empty($conf->global->RECEPTION_ADD_CONTACTS_IN_EXPORT)) { $this->export_fields_array[$r] += array('sp.rowid'=>'IdContact', 'sp.lastname'=>'Lastname', 'sp.firstname'=>'Firstname', 'sp.note_public'=>'NotePublic'); } - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.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.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text"); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"Numeric",'s.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.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text"); $this->export_TypeFields_array[$r] = array( 's.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', diff --git a/htdocs/core/modules/modRecruitment.class.php b/htdocs/core/modules/modRecruitment.class.php index c4bbd573fa9..ed67430bce5 100644 --- a/htdocs/core/modules/modRecruitment.class.php +++ b/htdocs/core/modules/modRecruitment.class.php @@ -134,9 +134,20 @@ class modRecruitment extends DolibarrModules // Example: $this->const=array(1 => array('RECRUITMENT_MYNEWCONST1', 'chaine', 'myvalue', 'This is a constant to add', 1), // 2 => array('RECRUITMENT_MYNEWCONST2', 'chaine', 'myvalue', 'This is another constant to add', 0, 'current', 1) // ); - $this->const = array( - // 1 => array('RECRUITMENT_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1) - ); + $r = 0; + $this->const[$r][0] = "RECRUITMENT_RECRUITMENTJOBPOSITION_ADDON"; + $this->const[$r][1] = "chaine"; + $this->const[$r][2] = "mod_recruitmentjobposition_standard"; + $this->const[$r][3] = 'Name of manager to generate recruitment job position ref number'; + $this->const[$r][4] = 0; + $r++; + + $this->const[$r][0] = "RECRUITMENT_RECRUITMENTCANDIDATURE_ADDON"; + $this->const[$r][1] = "chaine"; + $this->const[$r][2] = "mod_recruitmentcandidature_standard"; + $this->const[$r][3] = 'Name of manager to generate recruitment candidature ref number'; + $this->const[$r][4] = 0; + $r++; // Some keys to add into the overwriting translation tables /*$this->overwrite_translation = array( @@ -179,29 +190,6 @@ class modRecruitment extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'recruitment', - // 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->recruitment->enabled, $conf->recruitment->enabled, $conf->recruitment->enabled) - ); - */ // Boxes/Widgets // Add here list of php file(s) stored in recruitment/core/boxes that contains a class to show a widget. @@ -273,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. @@ -403,7 +391,7 @@ class modRecruitment extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'recruitment'); + $result = $this->_load_tables('/install/mysql/', 'recruitment'); 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') } @@ -423,7 +411,7 @@ class modRecruitment extends DolibarrModules $sql = array(); // Document template - $moduledir = 'mymodule'; + $moduledir = 'recruitment'; $myTmpObjects = array(); $myTmpObjects['RecruitmentJobPosition'] = array('includerefgeneration'=>1, 'includedocgeneration'=>1); @@ -431,10 +419,10 @@ class modRecruitment extends DolibarrModules if ($myTmpObjectKey == 'MyObject') { continue; } - if ($myTmpObjectArray['includerefgeneration']) { - $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/mymodule/template_myobjects.odt'; - $dirodt = DOL_DATA_ROOT.'/doctemplates/mymodule'; - $dest = $dirodt.'/template_myobjects.odt'; + if ($myTmpObjectArray['includedocgeneration']) { + $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/'.$moduledir.'/template_recruitmentjobposition.odt'; + $dirodt = DOL_DATA_ROOT.'/doctemplates/'.$moduledir; + $dest = $dirodt.'/template_recruitmentjobposition.odt'; if (file_exists($src) && !file_exists($dest)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -450,6 +438,7 @@ class modRecruitment extends DolibarrModules $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).")" )); diff --git a/htdocs/core/modules/modResource.class.php b/htdocs/core/modules/modResource.class.php index da1fdcbf016..1d1d37ac240 100644 --- a/htdocs/core/modules/modResource.class.php +++ b/htdocs/core/modules/modResource.class.php @@ -185,11 +185,11 @@ class modResource extends DolibarrModules // Menus declaration $this->menu[$r] = array( - 'fk_menu'=>'fk_mainmenu=tools', + 'fk_menu'=>'fk_mainmenu=agenda', 'type'=>'left', 'titre'=> 'MenuResourceIndex', 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth em92"'), - 'mainmenu'=>'tools', + 'mainmenu'=>'agenda', 'leftmenu'=> 'resource', 'url'=> '/resource/list.php', 'langs'=> 'resource', @@ -201,10 +201,10 @@ class modResource extends DolibarrModules $r++; $this->menu[$r++] = array( - 'fk_menu'=>'fk_mainmenu=tools,fk_leftmenu=resource', //On utilise les ancres définis dans le menu parent déclaré au dessus + 'fk_menu'=>'fk_mainmenu=agenda,fk_leftmenu=resource', //On utilise les ancres définis dans le menu parent déclaré au dessus 'type'=> 'left', // Toujours un menu gauche 'titre'=> 'MenuResourceAdd', - 'mainmenu'=> 'tools', + 'mainmenu'=> 'agenda', 'leftmenu'=> 'resource_add', 'url'=> '/resource/card.php?action=create', 'langs'=> 'resource', @@ -216,10 +216,10 @@ class modResource extends DolibarrModules ); $this->menu[$r++] = array( - 'fk_menu'=>'fk_mainmenu=tools,fk_leftmenu=resource', //On utilise les ancres définis dans le menu parent déclaré au dessus + 'fk_menu'=>'fk_mainmenu=agenda,fk_leftmenu=resource', //On utilise les ancres définis dans le menu parent déclaré au dessus 'type'=> 'left', // Toujours un menu gauche 'titre'=> 'List', - 'mainmenu'=> 'tools', + 'mainmenu'=> 'agenda', 'leftmenu'=> 'resource_list', 'url'=> '/resource/list.php', 'langs'=> 'resource', @@ -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/modService.class.php b/htdocs/core/modules/modService.class.php index bdc3388da5c..d2431d3e22c 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -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,20 +176,20 @@ 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") || !empty($conf->margin->enabled)) { $this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); } if (!empty($conf->stock->enabled)) { $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)) { @@ -210,10 +218,10 @@ class modService extends DolibarrModules if (!empty($conf->stock->enabled)) { $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)) { @@ -229,10 +237,10 @@ class modService extends DolibarrModules if (!empty($conf->stock->enabled)) { $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)) { @@ -244,10 +252,10 @@ class modService extends DolibarrModules if (!empty($conf->stock->enabled)) { $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)) { @@ -268,7 +276,7 @@ class modService extends DolibarrModules $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').')'; @@ -363,7 +371,7 @@ class modService extends DolibarrModules if (!empty($conf->stock->enabled)) { $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')); @@ -379,7 +387,7 @@ class modService extends DolibarrModules if (!empty($conf->stock->enabled)) { $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')); @@ -395,7 +403,7 @@ class modService extends DolibarrModules if (!empty($conf->stock->enabled)) { $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')); @@ -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") || !empty($conf->margin->enabled)) { $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); } if (is_object($mysoc) && $usenpr) { @@ -576,7 +584,7 @@ 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)) { @@ -655,7 +663,7 @@ class modService 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") || !empty($conf->margin->enabled)) { $import_sample = array_merge($import_sample, array('p.cost_price'=>'90')); } if (is_object($mysoc) && $usenpr) { @@ -667,7 +675,7 @@ 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)) { @@ -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', diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 09089d57563..5f898584ba4 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -44,7 +44,7 @@ class modSociete extends DolibarrModules */ public function __construct($db) { - global $conf, $user; + global $conf, $user, $mysoc, $langs; $this->db = $db; $this->numero = 1; @@ -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'); } } @@ -306,7 +306,7 @@ class modSociete extends DolibarrModules $this->export_fields_array[$r] += array('u.login'=>'SaleRepresentativeLogin', 'u.firstname'=>'SaleRepresentativeFirstname', 'u.lastname'=>'SaleRepresentativeLastname'); //$this->export_TypeFields_array[$r]=array( - // 's.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date", + // 's.rowid'=>"Numeric",'s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date", // 's.code_client'=>"Text",'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",'s.default_lang'=>"Text",'s.canvas' => "Canvas",'s.siret'=>"Text",'s.siren'=>"Text", // 's.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note'=>"Text", @@ -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'; @@ -397,7 +397,7 @@ class modSociete extends DolibarrModules 'c.address'=>"Text", 'c.zip'=>"Text", 'c.town'=>"Text", 'd.nom'=>'Text', 'r.nom'=>'Text', 'co.label'=>"List:c_country:label:rowid", 'co.code'=>"Text", 'c.phone'=>"Text", 'c.fax'=>"Text", 'c.email'=>"Text", 'c.statut'=>"Status", - 's.rowid'=>"List:societe:nom::thirdparty", 's.nom'=>"Text", 's.status'=>"Status", 's.code_client'=>"Text", 's.code_fournisseur'=>"Text", + 's.rowid'=>"Numeric", 's.nom'=>"Text", 's.status'=>"Status", 's.code_client'=>"Text", 's.code_fournisseur'=>"Text", 's.code_compta'=>"Text", 's.code_compta_fournisseur'=>"Text", 's.client'=>"Text", 's.fournisseur'=>"Text", 's.address'=>"Text", 's.zip'=>"Text", 's.town'=>"Text", 's.phone'=>"Text", 's.email'=>"Text", @@ -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 (empty($conf->fournisseur->enabled) && 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']); } @@ -467,7 +467,7 @@ class modSociete extends DolibarrModules 's.nom' => "Name*", 's.name_alias' => "AliasNameShort", 's.parent' => "ParentCompany", - 's.status' => "Status", + 's.status' => "Status*", 's.code_client' => "CustomerCode", 's.code_fournisseur' => "SupplierCode", 's.code_compta' => "CustomerAccountancyCode", @@ -519,6 +519,16 @@ class modSociete extends DolibarrModules if (!empty($conf->global->ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY)) { $this->import_fields_array[$r] += array('s.accountancy_code_sell'=>'ProductAccountancySellCode', 's.accountancy_code_buy'=>'ProductAccountancyBuyCode'); } + // Add social networks fields + 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)) { + $fieldname = 's.socialnetworks_'.$obj->code; + $fieldlabel = ucfirst($obj->label); + $this->import_fields_array[$r][$fieldname] = $fieldlabel; + } + } // Add extra fields $sql = "SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE type <> 'separate' AND elementtype = 'societe' AND entity IN (0, ".$conf->entity.")"; $resql = $this->db->query($sql); @@ -576,7 +586,26 @@ class modSociete extends DolibarrModules 'class' => 'Account', 'method' => 'fetch', 'element' => 'BankAccount' - // ), + ), + 's.fk_stcomm' => array( + 'rule' => 'fetchidfromcodeid', + 'classfile' => '/core/class/cgenericdic.class.php', + 'class' => 'CGenericDic', + 'method' => 'fetch', + 'dict' => 'DictionaryProspectStatus', + 'element' => 'c_stcomm', + 'table_element' => 'c_stcomm' + ), + /* + 's.fk_prospectlevel' => array( + 'rule' => 'fetchidfromcodeid', + 'classfile' => '/core/class/cgenericdic.class.php', + 'class' => 'CGenericDic', + 'method' => 'fetch', + 'dict' => 'DictionaryProspectLevel', + 'element' => 'c_prospectlevel', + 'table_element' => 'c_prospectlevel' + ),*/ // TODO // 's.fk_incoterms' => array( // 'rule' => 'fetchidfromcodeid', @@ -584,7 +613,7 @@ class modSociete extends DolibarrModules // 'class' => 'Cincoterm', // 'method' => 'fetch', // 'dict' => 'IncotermLabel' - ) + // ) ); //$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t'); $this->import_regex_array[$r] = array(//field order as per structure of table llx_societe @@ -657,11 +686,43 @@ class modSociete extends DolibarrModules ); $this->import_updatekeys_array[$r] = array( 's.nom' => 'Name', + 's.zip' => 'Zip', + 's.email' => 'Email', 's.code_client' => 'CustomerCode', 's.code_fournisseur' => 'SupplierCode', 's.code_compta' => 'CustomerAccountancyCode', 's.code_compta_fournisseur' => 'SupplierAccountancyCode' ); + 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)) { + $fieldname = 's.socialnetworks_'.$obj->code; + $fieldlabel = ucfirst($obj->label); + $this->import_updatekeys_array[$r][$fieldname] = $fieldlabel; + } + } + // Add profids as criteria to search duplicates + $langs->load("companies"); + $i=1; + while ($i <= 6) { + if ($i == 1) { + $this->import_updatekeys_array[$r]['s.siren'] = 'ProfId1'.(empty($mysoc->country_code) ? '' : $mysoc->country_code); + } + if ($i == 2) { + $this->import_updatekeys_array[$r]['s.siret'] = 'ProfId2'.(empty($mysoc->country_code) ? '' : $mysoc->country_code); + } + if ($i == 3) { + $this->import_updatekeys_array[$r]['s.ape'] = 'ProfId3'.(empty($mysoc->country_code) ? '' : $mysoc->country_code); + } + if ($i >= 4) { + //var_dump($langs->trans('ProfId'.$i.(empty($mysoc->country_code) ? '' : $mysoc->country_code))); + if ($langs->trans('ProfId'.$i.(empty($mysoc->country_code) ? '' : $mysoc->country_code)) != '-') { + $this->import_updatekeys_array[$r]['s.idprof'.$i] = 'ProfId'.$i.(empty($mysoc->country_code) ? '' : $mysoc->country_code); + } + } + $i++; + } // Import list of contacts/additional addresses and attributes $r++; @@ -695,6 +756,16 @@ class modSociete extends DolibarrModules 's.note_private' => "NotePrivate", 's.note_public' => "NotePublic" ); + // Add social networks fields + 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)) { + $fieldname = 's.socialnetworks_'.$obj->code; + $fieldlabel = ucfirst($obj->label); + $this->import_fields_array[$r][$fieldname] = $fieldlabel; + } + } // 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.")"; $resql = $this->db->query($sql); @@ -761,8 +832,18 @@ class modSociete extends DolibarrModules 's.note_public' => "My public note" ); $this->import_updatekeys_array[$r] = array( - 's.rowid' => 'Id' + 's.rowid' => 'Id', + 's.lastname' => "Lastname", ); + 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)) { + $fieldname = 's.socialnetworks_'.$obj->code; + $fieldlabel = ucfirst($obj->label); + $this->import_updatekeys_array[$r][$fieldname] = $fieldlabel; + } + } // Import Bank Accounts $r++; diff --git a/htdocs/core/modules/modStock.class.php b/htdocs/core/modules/modStock.class.php index 839a62325f3..87ea6303742 100644 --- a/htdocs/core/modules/modStock.class.php +++ b/htdocs/core/modules/modStock.class.php @@ -239,7 +239,7 @@ class modStock extends DolibarrModules ); $this->export_TypeFields_array[$r] = array( 'e.rowid'=>'List:entrepot:ref::stock', 'e.ref'=>'Text', 'e.lieu'=>'Text', 'e.address'=>'Text', 'e.zip'=>'Text', 'e.town'=>'Text', - 'p.rowid'=>"List:product:label::product", 'p.ref'=>"Text", 'p.fk_product_type'=>"Text", 'p.label'=>"Text", 'p.description'=>"Text", 'p.note'=>"Text", + 'p.rowid'=>"Numeric", 'p.ref'=>"Text", 'p.fk_product_type'=>"Text", 'p.label'=>"Text", 'p.description'=>"Text", 'p.note'=>"Text", 'p.price'=>"Numeric", 'p.tva_tx'=>'Numeric', 'p.tosell'=>"Boolean", 'p.tobuy'=>"Boolean", 'p.duration'=>"Duree", 'p.datec'=>'Date', 'p.tms'=>'Date', 'p.pmp'=>'Numeric', 'p.cost_price'=>'Numeric', 'ps.reel'=>'Numeric', @@ -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 @@ -286,7 +286,7 @@ class modStock extends DolibarrModules ); $this->export_TypeFields_array[$r] = array( 'e.rowid'=>'List:entrepot:ref::stock', 'e.ref'=>'Text', 'e.lieu'=>'Text', 'e.description'=>'Text', 'e.address'=>'Text', 'e.zip'=>'Text', 'e.town'=>'Text', - 'p.rowid'=>"List:product:label::product", 'p.ref'=>"Text", 'p.fk_product_type'=>"Text", 'p.label'=>"Text", 'p.description'=>"Text", 'p.note'=>"Text", + 'p.rowid'=>"Numeric", 'p.ref'=>"Text", 'p.fk_product_type'=>"Text", 'p.label'=>"Text", 'p.description'=>"Text", 'p.note'=>"Text", 'p.price'=>"Numeric", 'p.tva_tx'=>'Numeric', 'p.tosell'=>"Boolean", 'p.tobuy'=>"Boolean", 'p.duration'=>"Duree", 'p.datec'=>'DateCreation', 'p.tms'=>'DateModification', 'p.pmp'=>'PMPValue', 'p.cost_price'=>'CostPrice', 'pb.batch'=>'Text', 'pb.qty'=>'Numeric', @@ -332,7 +332,7 @@ class modStock extends DolibarrModules $this->export_TypeFields_array[$r] = array( 'sm.rowid'=>'Numeric', 'sm.value'=>'Numeric', 'sm.datem'=>'Date', 'sm.batch'=>'Text', 'sm.label'=>'Text', 'sm.inventorycode'=>'Text', 'e.rowid'=>'List:entrepot:ref::stock', 'e.ref'=>'Text', 'e.description'=>'Text', 'e.lieu'=>'Text', 'e.address'=>'Text', 'e.zip'=>'Text', 'e.town'=>'Text', - 'p.rowid'=>"List:product:label::product", 'p.ref'=>"Text", 'p.fk_product_type'=>"Text", 'p.label'=>"Text", 'p.description'=>"Text", 'p.note'=>"Text", + 'p.rowid'=>"Numeric", 'p.ref'=>"Text", 'p.fk_product_type'=>"Text", 'p.label'=>"Text", 'p.description'=>"Text", 'p.note'=>"Text", 'p.price'=>"Numeric", 'p.tva_tx'=>'Numeric', 'p.tosell'=>"Boolean", 'p.tobuy'=>"Boolean", 'p.duration'=>"Duree", 'p.datec'=>'Date', 'p.tms'=>'Date' ); $this->export_entities_array[$r] = array( @@ -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'; @@ -434,7 +434,7 @@ class modStock extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'stock'); + $result = $this->_load_tables('/install/mysql/', 'stock'); 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') } diff --git a/htdocs/core/modules/modStockTransfer.class.php b/htdocs/core/modules/modStockTransfer.class.php new file mode 100644 index 00000000000..376cf9409f2 --- /dev/null +++ b/htdocs/core/modules/modStockTransfer.class.php @@ -0,0 +1,507 @@ + + * Copyright (C) 2018-2019 Nicolas ZABOURI + * Copyright (C) 2019-2020 Frédéric France + * Copyright (C) 2021 SuperAdmin + * 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 + * 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 stocktransfer Module StockTransfer + * \brief StockTransfer module descriptor. + * + * \file htdocs/stocktransfer/core/modules/modStockTransfer.class.php + * \ingroup stocktransfer + * \brief Description and activation file for module StockTransfer + */ +include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php'; + +/** + * Description and activation class for module StockTransfer + */ +class modStockTransfer extends DolibarrModules +{ + /** + * Constructor. Define names, constants, directories, boxes, permissions + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $langs, $conf; + $this->db = $db; + + $langs->load('stocks'); + // 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 = 701; // 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 = '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"; + // 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 'ModuleStockTransferName' not found (StockTransfer is name of module). + $this->name = preg_replace('/^mod/i', '', get_class($this)); + // Module description, used if translation string 'ModuleStockTransferDesc' not found (StockTransfer is name of module). + $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'; + // 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 STOCKTRANSFER 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' + $this->picto = 'stock'; + // 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' => 1, + // 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( + // '/stocktransfer/css/stocktransfer.css.php', + ), + // Set this to relative path of js file if module must load a js on all pages + 'js' => array( + // '/stocktransfer/js/stocktransfer.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, + 'contactelement'=>1 + ); + // Data directories to create when module is enabled. + // Example: this->dirs = array("/stocktransfer/temp","/stocktransfer/subdir"); + $this->dirs = array("/stocktransfer/temp"); + // Config pages. Put here list of php page, stored into stocktransfer/admin directory, to use to setup module. + $this->config_page_url = array("stocktransfer.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('modStock', 'modProduct'); + $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->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'); + //$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('STOCKTRANSFER_MYNEWCONST1', 'chaine', 'myvalue', 'This is a constant to add', 1), + // 2 => array('STOCKTRANSFER_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->stocktransfer) || !isset($conf->stocktransfer->enabled)) { + $conf->stocktransfer = new stdClass(); + $conf->stocktransfer->enabled = 0; + } + + // Array to add new pages in new tabs + $this->tabs = array(); + // Example: + // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@stocktransfer:$user->rights->stocktransfer->read:/stocktransfer/mynewtab1.php?id=__ID__'); // To add a new tab identified by code tabname1 + // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@stocktransfer:$user->rights->othermodule->read:/stocktransfer/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'=>'stocktransfer@stocktransfer', + // 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->stocktransfer->enabled, $conf->stocktransfer->enabled, $conf->stocktransfer->enabled) + ); + */ + + // Boxes/Widgets + // Add here list of php file(s) stored in stocktransfer/core/boxes that contains a class to show a widget. + $this->boxes = array( + // 0 => array( + // 'file' => 'stocktransferwidget1.php@stocktransfer', + // 'note' => 'Widget provided by StockTransfer', + // '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' => '/stocktransfer/class/stocktransfer.class.php', + // 'objectname' => 'StockTransfer', + // 'method' => 'doScheduledJob', + // 'parameters' => '', + // 'comment' => 'Comment', + // 'frequency' => 2, + // 'unitfrequency' => 3600, + // 'status' => 0, + // 'test' => '$conf->stocktransfer->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->stocktransfer->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->stocktransfer->enabled', 'priority'=>50) + // ); + + // Permissions provided by this module + $this->rights = array(); + $r = 10; + // Add here entries to declare new permissions + /* BEGIN MODULEBUILDER PERMISSIONS */ + $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) + $this->rights[$r][1] = $langs->trans('StockTransferRightRead'); // Permission label + $this->rights[$r][4] = 'stocktransfer'; // In php code, permission will be checked by test if ($user->rights->stocktransfer->level1->level2) + $this->rights[$r][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->stocktransfer->level1->level2) + $r++; + $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) + $this->rights[$r][1] = $langs->trans('StockTransferRightCreateUpdate'); // Permission label + $this->rights[$r][4] = 'stocktransfer'; // In php code, permission will be checked by test if ($user->rights->stocktransfer->level1->level2) + $this->rights[$r][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->stocktransfer->level1->level2) + $r++; + $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) + $this->rights[$r][1] = $langs->trans('StockTransferRightDelete'); // Permission label + $this->rights[$r][4] = 'stocktransfer'; // In php code, permission will be checked by test if ($user->rights->stocktransfer->level1->level2) + $this->rights[$r][5] = 'delete'; // In php code, permission will be checked by test if ($user->rights->stocktransfer->level1->level2) + $r++; + /* END MODULEBUILDER PERMISSIONS */ + + // Main menu entries to add + $langs->load('stocktransfer@stocktransfer'); + $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'=>'ModuleStockTransferName', + 'mainmenu'=>'stocktransfer', + 'leftmenu'=>'', + 'url'=>'/stocktransfer/stocktransferindex.php', + 'langs'=>'stocktransfer@stocktransfer', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000 + $r, + 'enabled'=>'$conf->stocktransfer->enabled', // Define condition to show or hide menu entry. Use '$conf->stocktransfer->enabled' if entry must be visible if module is enabled. + 'perms'=>'1', // Use 'perms'=>'$user->rights->stocktransfer->stocktransfer->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 STOCKTRANSFER + $this->menu[$r++]=array( + 'fk_menu'=>'fk_mainmenu=stocktransfer', // '' 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 Top menu entry + 'titre'=>'StockTransfer', + 'mainmenu'=>'stocktransfer', + 'leftmenu'=>'stocktransfer', + 'url'=>'/stocktransfer/stocktransferindex.php', + 'langs'=>'stocktransfer@stocktransfer', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->stocktransfer->enabled', // Define condition to show or hide menu entry. Use '$conf->stocktransfer->enabled' if entry must be visible if module is enabled. + 'perms'=>'$user->rights->stocktransfer->stocktransfer->read', // Use 'perms'=>'$user->rights->stocktransfer->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=stocktransfer,fk_leftmenu=stocktransfer', // '' 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 StockTransfer', + 'mainmenu'=>'stocktransfer', + 'leftmenu'=>'stocktransfer_stocktransfer_list', + 'url'=>'/stocktransfer/stocktransfer_list.php', + 'langs'=>'stocktransfer@stocktransfer', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->stocktransfer->enabled', // Define condition to show or hide menu entry. Use '$conf->stocktransfer->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->rights->stocktransfer->stocktransfer->read', // Use 'perms'=>'$user->rights->stocktransfer->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=stocktransfer,fk_leftmenu=stocktransfer', // '' 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 StockTransfer', + 'mainmenu'=>'stocktransfer', + 'leftmenu'=>'stocktransfer_stocktransfer_new', + 'url'=>'/stocktransfer/stocktransfer_card.php?action=create', + 'langs'=>'stocktransfer@stocktransfer', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'position'=>1000+$r, + 'enabled'=>'$conf->stocktransfer->enabled', // Define condition to show or hide menu entry. Use '$conf->stocktransfer->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->rights->stocktransfer->stocktransfer->write', // Use 'perms'=>'$user->rights->stocktransfer->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=products,fk_leftmenu=stock', + // This is a Left menu entry + 'type'=>'left', + 'titre'=>$langs->trans('StockTransferNew'), + 'mainmenu'=>'products', + 'leftmenu'=>'stocktransfer_stocktransfer', + 'url'=>'/stocktransfer/stocktransfer_card.php?action=create', + // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'langs'=>'stocktransfer@stocktransfer', + 'position'=>1100+$r, + // Define condition to show or hide menu entry. Use '$conf->stocktransfer->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'enabled'=>'$conf->stocktransfer->enabled', + // Use 'perms'=>'$user->rights->stocktransfer->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=products,fk_leftmenu=stock', + // This is a Left menu entry + 'type'=>'left', + 'titre'=>$langs->trans('StockTransferList'), + 'mainmenu'=>'products', + 'leftmenu'=>'stocktransfer_stocktransferlist', + 'url'=>'/stocktransfer/stocktransfer_list.php', + // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. + 'langs'=>'stocktransfer@stocktransfer', + 'position'=>1100+$r, + // Define condition to show or hide menu entry. Use '$conf->stocktransfer->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'enabled'=>'$conf->stocktransfer->enabled', + // Use 'perms'=>'$user->rights->stocktransfer->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 STOCKTRANSFER */ + + // Exports profiles provided by this module + $r = 1; + /* BEGIN MODULEBUILDER EXPORT STOCKTRANSFER */ + /* + $langs->load("stocktransfer@stocktransfer"); + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='StockTransferLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='stocktransfer@stocktransfer'; + // Define $this->export_fields_array, $this->export_TypeFields_array and $this->export_entities_array + $keyforclass = 'StockTransfer'; $keyforclassfile='/stocktransfer/class/stocktransfer.class.php'; $keyforelement='stocktransfer@stocktransfer'; + 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 = 'StockTransferLine'; $keyforclassfile='/stocktransfer/class/stocktransfer.class.php'; $keyforelement='stocktransferline@stocktransfer'; $keyforalias='tl'; + //include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + $keyforselect='stocktransfer'; $keyforaliasextra='extra'; $keyforelement='stocktransfer@stocktransfer'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$keyforselect='stocktransferline'; $keyforaliasextra='extraline'; $keyforelement='stocktransferline@stocktransfer'; + //include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r] = array('stocktransferline'=>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.'stocktransfer as t'; + //$this->export_sql_end[$r] =' LEFT JOIN '.MAIN_DB_PREFIX.'stocktransfer_line as tl ON tl.fk_stocktransfer = t.rowid'; + $this->export_sql_end[$r] .=' WHERE 1 = 1'; + $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('stocktransfer').')'; + $r++; */ + /* END MODULEBUILDER EXPORT STOCKTRANSFER */ + + // Imports profiles provided by this module + $r = 1; + /* BEGIN MODULEBUILDER IMPORT STOCKTRANSFER */ + /* + $langs->load("stocktransfer@stocktransfer"); + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='StockTransferLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='stocktransfer@stocktransfer'; + $keyforclass = 'StockTransfer'; $keyforclassfile='/stocktransfer/class/stocktransfer.class.php'; $keyforelement='stocktransfer@stocktransfer'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + $keyforselect='stocktransfer'; $keyforaliasextra='extra'; $keyforelement='stocktransfer@stocktransfer'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r]=array('mysubobject'=>'ts.rowid', 't.myfield'=>array('t.myfield2','t.myfield3')); // 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_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'stocktransfer as t'; + $this->export_sql_end[$r] .=' WHERE 1 = 1'; + $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('stocktransfer').')'; + $r++; */ + /* END MODULEBUILDER IMPORT STOCKTRANSFER */ + } + + /** + * 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/', '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); + + $sql = array(); + + // Rôles + $resql = $this->db->query('SELECT rowid FROM '.MAIN_DB_PREFIX.'c_type_contact WHERE code = "STDEST" AND element = "StockTransfer" AND source = "internal"'); + $res = $this->db->fetch_object($resql); + $nextid=$this->getNextId(); + if (empty($res)) $this->db->query('INSERT INTO '.MAIN_DB_PREFIX.'c_type_contact(rowid, element, source, code, libelle, active, module, position) VALUES('.((int) $nextid).', "StockTransfer", "internal", "STRESP", "Responsable du transfert de stocks", 1, NULL, 0)'); + + $resql = $this->db->query('SELECT rowid FROM '.MAIN_DB_PREFIX.'c_type_contact WHERE code = "STFROM" AND element = "StockTransfer" AND source = "external"'); + $res = $this->db->fetch_object($resql); + $nextid=$this->getNextId(); + if (empty($res)) $this->db->query('INSERT INTO '.MAIN_DB_PREFIX.'c_type_contact(rowid, element, source, code, libelle, active, module, position) VALUES('.((int) $nextid).', "StockTransfer", "external", "STFROM", "Contact expéditeur transfert de stocks", 1, NULL, 0)'); + + $resql = $this->db->query('SELECT rowid FROM '.MAIN_DB_PREFIX.'c_type_contact WHERE code = "STDEST" AND element = "StockTransfer" AND source = "external"'); + $res = $this->db->fetch_object($resql); + $nextid=$this->getNextId(); + if (empty($res)) $this->db->query('INSERT INTO '.MAIN_DB_PREFIX.'c_type_contact(rowid, element, source, code, libelle, active, module, position) VALUES('.((int) $nextid).', "StockTransfer", "external", "STDEST", "Contact destinataire transfert de stocks", 1, NULL, 0)'); + + return $this->_init($sql, $options); + } + + /** + * Returns next available id to insert new roles in llx_c_type_contact + * @return int > 0 if OK, < 0 if KO + */ + public function getNextId() + { + // Get free id for insert + $newid = 0; + $sql = "SELECT max(rowid) newid from ".MAIN_DB_PREFIX."c_type_contact"; + $result = $this->db->query($sql); + if ($result) { + $obj = $this->db->fetch_object($result); + $newid = ($obj->newid + 1); + } else { + dol_print_error($this->db); + return -1; + } + return $newid; + } + + /** + * 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/modTakePos.class.php b/htdocs/core/modules/modTakePos.class.php index 6c7d43a8388..e0ee972e7ca 100644 --- a/htdocs/core/modules/modTakePos.class.php +++ b/htdocs/core/modules/modTakePos.class.php @@ -156,20 +156,6 @@ class modTakePos extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'mylangfile@takepos', - 'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"), // List of tables we want to see into dictonnary editor - 'tablib'=>array("Table1","Table2","Table3"), // Label of tables - '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'), // Request to select fields - 'tabsqlsort'=>array("label ASC","label ASC","label ASC"), // Sort order - 'tabfield'=>array("code,label","code,label","code,label"), // List of fields (result of select to show dictionary) - 'tabfieldvalue'=>array("code,label","code,label","code,label"), // List of fields (list of fields to edit a record) - 'tabfieldinsert'=>array("code,label","code,label","code,label"), // List of fields (list of fields for insert) - 'tabrowid'=>array("rowid","rowid","rowid"), // Name of columns with primary key (try to always name it 'rowid') - 'tabcond'=>array($conf->takepos->enabled,$conf->takepos->enabled,$conf->takepos->enabled) // Condition to show each dictionary - ); - */ // Boxes/Widgets diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php index ff7eb1ee18f..13967fc4096 100644 --- a/htdocs/core/modules/modTicket.class.php +++ b/htdocs/core/modules/modTicket.class.php @@ -40,6 +40,7 @@ class modTicket extends DolibarrModules public function __construct($db) { global $langs, $conf; + $langs->load("ticket"); $this->db = $db; @@ -103,6 +104,7 @@ class modTicket extends DolibarrModules // 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')); $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), @@ -111,7 +113,11 @@ class modTicket extends DolibarrModules 5 => array('TICKET_DELAY_BEFORE_FIRST_RESPONSE', 'chaine', '0', 'Maximum wanted elapsed time before a first answer to a ticket (in hours). Display a warning in tickets list if not respected.', 0), 6 => array('TICKET_DELAY_SINCE_LAST_RESPONSE', 'chaine', '0', 'Maximum wanted elapsed time between two answers on the same ticket (in hours). Display a warning in tickets list if not respected.', 0), 7 => array('TICKET_NOTIFY_AT_CLOSING', 'chaine', '0', 'Default notify contacts when closing a module', 0), - 8 => array('TICKET_PRODUCT_CATEGORY', 'chaine', 0, 'The category of product that is being used for ticket accounting', 0) + 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) ); @@ -128,10 +134,10 @@ class modTicket extends DolibarrModules $this->dictionaries = array( 'langs' => 'ticket', 'tabname' => array( - MAIN_DB_PREFIX."c_ticket_type", - MAIN_DB_PREFIX."c_ticket_severity", - MAIN_DB_PREFIX."c_ticket_category", - MAIN_DB_PREFIX."c_ticket_resolution" + "c_ticket_type", + "c_ticket_severity", + "c_ticket_category", + "c_ticket_resolution" ), 'tablib' => array( "TicketDictType", @@ -165,8 +171,8 @@ class modTicket extends DolibarrModules 0=>array('file'=>'box_last_ticket.php', 'enabledbydefaulton'=>'Home'), 1=>array('file'=>'box_last_modified_ticket.php', 'enabledbydefaulton'=>'Home'), 2=>array('file'=>'box_ticket_by_severity.php', 'enabledbydefaulton'=>'ticketindex'), - 3=>array('file'=>'box_nb_ticket_last_x_days.php', 'enabledbydefaulton'=>'ticketindex'), - 4=>array('file'=>'box_nb_tickets_type.php', 'enabledbydefaulton'=>'ticketindex'), + 3=>array('file'=>'box_graph_nb_ticket_last_x_days.php', 'enabledbydefaulton'=>'ticketindex'), + 4=>array('file'=>'box_graph_nb_tickets_type.php', 'enabledbydefaulton'=>'ticketindex'), 5=>array('file'=>'box_new_vs_close_ticket.php', 'enabledbydefaulton'=>'ticketindex') ); // Boxes list @@ -325,7 +331,7 @@ class modTicket extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'ticket'); + $result = $this->_load_tables('/install/mysql/', 'ticket'); 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') } diff --git a/htdocs/core/modules/modUser.class.php b/htdocs/core/modules/modUser.class.php index f77f1dacedf..dc0da3e0ac3 100644 --- a/htdocs/core/modules/modUser.class.php +++ b/htdocs/core/modules/modUser.class.php @@ -225,13 +225,16 @@ 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'=>'DateEmployment', 'u.salary'=>'Salary', 'u.color'=>'Color', 'u.api_key'=>'ApiKey', + 'u.dateemployment'=>'DateEmploymentStart', 'u.dateemploymentend'=>'DateEmploymentEnd', 'u.salary'=>'Salary', 'u.color'=>'Color', 'u.api_key'=>'ApiKey', 'u.birth'=>'DateOfBirth', 'u.datec'=>"DateCreation", 'u.tms'=>"DateLastModification", 'u.admin'=>"Administrator", 'u.statut'=>'Status', 'u.datelastlogin'=>'LastConnexion', 'u.datepreviouslogin'=>'PreviousConnexion', - 'u.fk_socpeople'=>"IdContact", 'u.fk_soc'=>"IdCompany", 'u.fk_member'=>"MemberId", + 'u.fk_socpeople'=>"IdContact", 'u.fk_soc'=>"IdCompany", + 'u.fk_member'=>"MemberId", + "a.firstname"=>"MemberFirstname", + "a.lastname"=>"MemberLastname", 'g.nom'=>"Group" ); $this->export_TypeFields_array[$r] = array( @@ -239,10 +242,18 @@ 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.fk_user'=>"List:user:login", + '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', 'u.fk_soc'=>"List:societe:nom:rowid", 'u.fk_member'=>"List:adherent:firstname", + 'u.datepreviouslogin'=>'Date', + 'u.fk_socpeople'=>'FormSelect:selectcontacts', + 'u.fk_soc'=>"FormSelect:select_company", + 'u.tjm'=>"Numeric", 'u.thm'=>"Numeric", 'u.fk_member'=>"Numeric", + 'u.weeklyhours'=>"Numeric", + 'u.dateemployment'=>"Date", 'u.dateemploymentend'=>"Date", 'u.salary'=>"Numeric", + 'u.color'=>'Text', 'u.api_key'=>'Text', + 'a.firstname'=>'Text', + 'a.lastname'=>'Text', 'g.nom'=>"Text" ); $this->export_entities_array[$r] = array( @@ -250,13 +261,14 @@ 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.salary'=>'user', 'u.color'=>'user', 'u.api_key'=>'user', + 'u.dateemployment'=>'user', 'u.dateemploymentend'=>'user', 'u.salary'=>'user', 'u.color'=>'user', 'u.api_key'=>'user', 'u.birth'=>'user', 'u.datec'=>"user", 'u.tms'=>"user", 'u.admin'=>"user", 'u.statut'=>'user', 'u.datelastlogin'=>'user', 'u.datepreviouslogin'=>'user', 'u.fk_socpeople'=>"contact", 'u.fk_soc'=>"company", 'u.fk_member'=>"member", + 'a.firstname'=>"member", 'a.lastname'=>"member", 'g.nom'=>"Group" ); $keyforselect = 'user'; @@ -272,6 +284,7 @@ class modUser extends DolibarrModules $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user_extrafields as extra ON u.rowid = extra.fk_object'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'usergroup_user as ug ON u.rowid = ug.fk_user'; $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'usergroup as g ON ug.fk_usergroup = g.rowid'; + $this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'adherent as a ON u.fk_member = a.rowid'; $this->export_sql_end[$r] .= ' WHERE u.entity IN ('.getEntity('user').')'; // Imports @@ -290,9 +303,9 @@ 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'=>'DateEmployment', 'u.salary'=>'Salary', 'u.color'=>'Color', 'u.api_key'=>'ApiKey', + 'u.dateemployment'=>'DateEmploymentStart', 'u.dateemploymentend'=>'DateEmploymentEnd', 'u.salary'=>'Salary', 'u.color'=>'Color', 'u.api_key'=>'ApiKey', 'u.birth'=>'DateOfBirth', 'u.datec'=>"DateCreation", 'u.statut'=>'Status' @@ -326,7 +339,7 @@ class modUser extends DolibarrModules '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.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..8c330044cb0 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 diff --git a/htdocs/core/modules/modWebhook.class.php b/htdocs/core/modules/modWebhook.class.php new file mode 100644 index 00000000000..fd7f658bd48 --- /dev/null +++ b/htdocs/core/modules/modWebhook.class.php @@ -0,0 +1,542 @@ + + * Copyright (C) 2018-2019 Nicolas ZABOURI + * Copyright (C) 2019-2020 Frédéric France + * Copyright (C) 2022 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 . + */ + +/** + * \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"; + + // Author + $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'; + // 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(5, 6); // 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 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'=>'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 7ea6b5a890c..6e0dc80e41c 100644 --- a/htdocs/core/modules/modWebsite.class.php +++ b/htdocs/core/modules/modWebsite.class.php @@ -164,7 +164,9 @@ class modWebsite extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'website'); + $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,11 +187,16 @@ 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'; @@ -205,9 +212,15 @@ 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++; } } + if ($error) { + return 0; + } + $sql = array(); return $this->_init($sql, $options); diff --git a/htdocs/core/modules/modWorkstation.class.php b/htdocs/core/modules/modWorkstation.class.php index 854dd45b969..da1aca4f770 100644 --- a/htdocs/core/modules/modWorkstation.class.php +++ b/htdocs/core/modules/modWorkstation.class.php @@ -179,29 +179,6 @@ class modWorkstation extends DolibarrModules // Dictionaries $this->dictionaries = array(); - /* Example: - $this->dictionaries=array( - 'langs'=>'workstation@workstation', - // 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->workstation->enabled, $conf->workstation->enabled, $conf->workstation->enabled) - ); - */ // Boxes/Widgets // Add here list of php file(s) stored in workstation/core/boxes that contains a class to show a widget. @@ -390,7 +367,7 @@ class modWorkstation extends DolibarrModules { global $conf, $langs; - $result = $this->_load_tables('/install/mysql/tables/', 'workstation'); + $result = $this->_load_tables('/install/mysql/', 'workstation'); 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') } diff --git a/htdocs/core/modules/modZapier.class.php b/htdocs/core/modules/modZapier.class.php index e638d906693..b0a1daf642e 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 @@ -180,31 +182,10 @@ class modZapier extends DolibarrModules // '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'=>'mylangfile@zapier', - // 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->zapier->enabled,$conf->zapier->enabled,$conf->zapier->enabled) - ); - */ + // Boxes/Widgets // Add here list of php file(s) stored in zapier/core/boxes that contains class to show a widget. $this->boxes = array( @@ -281,7 +262,7 @@ class modZapier extends DolibarrModules */ public function init($options = '') { - $result = $this->_load_tables('/install/mysql/tables/', 'zapier'); + $result = $this->_load_tables('/install/mysql/', 'zapier'); 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') } diff --git a/htdocs/core/modules/movement/doc/pdf_standard.modules.php b/htdocs/core/modules/movement/doc/pdf_standard.modules.php index 48483066e5e..6f2a6fcf694 100644 --- a/htdocs/core/modules/movement/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/movement/doc/pdf_standard.modules.php @@ -52,6 +52,11 @@ class pdf_standard extends ModelePDFMovement */ public $description; + /** + * @var int Save the name of generated file as the main doc when generating a doc with this template + */ + public $update_main_doc_field; + /** * @var string document type */ @@ -70,46 +75,25 @@ class pdf_standard extends ModelePDFMovement public $version = 'dolibarr'; /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - - /** - * @var Societe Issuer + * Issuer + * @var Societe Object that emits */ public $emetteur; + public $wref; + public $posxidref; + public $posxdatemouv; + public $posxdesc; + public $posxlabel; + public $posxtva; + public $posxqty; + public $posxup; + public $posxunit; + public $posxdiscount; + public $postotalht; + + /** * Constructor * @@ -126,7 +110,7 @@ class pdf_standard extends ModelePDFMovement $this->name = "stdmouvement"; $this->description = $langs->trans("DocumentModelStandardPDF"); - // Page size for A4 format + // Dimension page $this->type = 'pdf'; $formatarray = pdf_getFormat(); $this->page_largeur = $formatarray['width']; @@ -144,7 +128,7 @@ class pdf_standard extends ModelePDFMovement // Get source company $this->emetteur = $mysoc; - if (!$this->emetteur->country_code) { + if (empty($this->emetteur->country_code)) { $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default if not defined } @@ -174,11 +158,6 @@ class pdf_standard extends ModelePDFMovement $this->posxdiscount -= 20; $this->postotalht -= 20; } - $this->tva = array(); - $this->localtax1 = array(); - $this->localtax2 = array(); - $this->atleastoneratenotnull = 0; - $this->atleastonediscount = 0; } @@ -194,10 +173,12 @@ class pdf_standard extends ModelePDFMovement * @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) + public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0) { // phpcs:enable - global $user, $langs, $conf, $mysoc, $db, $hookmanager; + global $user, $langs, $conf, $mysoc, $db, $hookmanager, $nblines; + + dol_syslog("write_file outputlangs->defaultlang=".(is_object($outputlangs) ? $outputlangs->defaultlang : 'null')); if (!is_object($outputlangs)) { $outputlangs = $langs; @@ -207,7 +188,7 @@ class pdf_standard extends ModelePDFMovement $outputlangs->charset_output = 'ISO-8859-1'; } - // Load traductions files required by page + // Load traductions files required by the page $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "stocks", "orders", "deliveries")); /** @@ -395,19 +376,6 @@ class pdf_standard extends ModelePDFMovement } $num = $this->db->num_rows($resql); - - $arrayofselected = is_array($toselect) ? $toselect : array(); - - $i = 0; - $help_url = 'EN:Module_Stocks_En|FR:Module_Stock|ES:Módulo_Stocks'; - if ($msid) { - $texte = $langs->trans('StockMovementForId', $msid); - } else { - $texte = $langs->trans("ListOfStockMovements"); - if ($id) { - $texte .= ' ('.$langs->trans("ForThisWarehouse").')'; - } - } } // Definition of $dir and $file @@ -492,7 +460,7 @@ class pdf_standard extends ModelePDFMovement $pdf->useTemplate($tplidx); } $pagenb++; - $this->_pagehead($pdf, $object, 1, $outputlangs); + $top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs); $pdf->SetFont('', '', $default_font_size - 1); $pdf->MultiCell(0, 3, ''); // Set interline to 3 $pdf->SetTextColor(0, 0, 0); @@ -504,7 +472,8 @@ class pdf_standard extends ModelePDFMovement // Show list of product of the MouvementStock - $nexY += 5; + $nexY = $tab_top - 1; + $nexY = $pdf->GetY(); $nexY += 10; @@ -706,6 +675,9 @@ class pdf_standard extends ModelePDFMovement 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) { if ($pagenb == 1) { @@ -1147,7 +1119,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 diff --git a/htdocs/core/modules/movement/modules_movement.php b/htdocs/core/modules/movement/modules_movement.php index 77ff0c42fab..1af966faf22 100644 --- a/htdocs/core/modules/movement/modules_movement.php +++ b/htdocs/core/modules/movement/modules_movement.php @@ -35,6 +35,44 @@ abstract class ModelePDFMovement extends CommonDocGenerator */ public $error = ''; + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + + + public $option_codestockservice; + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** 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 1df69d7ae53..1c08dd7228d 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 @@ -89,7 +89,6 @@ class doc_generic_mo_odt extends ModelePDFMo $this->option_tva = 0; // Manage the vat option $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 @@ -268,7 +267,7 @@ class doc_generic_mo_odt extends ModelePDFMo $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -277,11 +276,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; @@ -289,8 +288,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 0927c795749..ed10b5ee2bf 100644 --- a/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php +++ b/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php @@ -150,7 +150,6 @@ class pdf_vinci extends ModelePDFMo $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; $this->option_logo = 1; // Display logo - $this->option_codeproduitservice = 1; // 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 @@ -820,7 +819,7 @@ class pdf_vinci extends ModelePDFMo $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, 'R', 1); @@ -876,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) { @@ -906,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) { @@ -944,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); @@ -1086,7 +1085,7 @@ 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 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) { pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); }*/ diff --git a/htdocs/core/modules/mrp/mod_mo_advanced.php b/htdocs/core/modules/mrp/mod_mo_advanced.php index ba518159dbf..5588d1cae16 100644 --- a/htdocs/core/modules/mrp/mod_mo_advanced.php +++ b/htdocs/core/modules/mrp/mod_mo_advanced.php @@ -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..f30d73c2d4e 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 (empty($keyforprovider) && !empty($_SESSION["oauthkeyforproviderbeforeoauthjump"]) && (GETPOST('code') || $action == 'delete')) { + // If we are coming from the Oauth page + $keyforprovider = $_SESSION["oauthkeyforproviderbeforeoauthjump"]; +} /** @@ -63,23 +69,25 @@ $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'; @@ -88,6 +96,8 @@ if ($action != 'delete' && empty($requestedpermissionsarray)) { //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 +111,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 +134,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 +191,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/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..391f5b435d7 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 diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php index bf1da990923..c1b93be6653 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; 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 c1f6769579a..c4167847986 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 @@ -87,7 +87,6 @@ class doc_generic_product_odt extends ModelePDFProduct $this->option_tva = 0; // Manage the vat option PRODUCT_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 @@ -178,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 .= '
    '; @@ -273,7 +278,7 @@ class doc_generic_product_odt extends ModelePDFProduct $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 +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; @@ -294,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; } diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php index 940aa1d4279..e4bcc0e4f04 100644 --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php @@ -68,41 +68,6 @@ class pdf_standard extends ModelePDFProduct */ public $version = 'dolibarr'; - /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - /** * Issuer * @var Societe @@ -138,7 +103,6 @@ class pdf_standard extends ModelePDFProduct $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; $this->option_logo = 1; // Display logo - $this->option_codeproduitservice = 0; // Display product-service code $this->option_multilang = 1; // Available in several languages $this->option_freetext = 0; // Support add of a personalised text @@ -387,7 +351,7 @@ 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($tplidx)) $pdf->useTemplate($tplidx); if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter+1); } @@ -457,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; @@ -475,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] : ''; @@ -493,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))); @@ -535,7 +499,7 @@ 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); } @@ -811,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 diff --git a/htdocs/core/modules/product/mod_codeproduct_elephant.php b/htdocs/core/modules/product/mod_codeproduct_elephant.php index ff724ab209d..b2164e80175 100644 --- a/htdocs/core/modules/product/mod_codeproduct_elephant.php +++ b/htdocs/core/modules/product/mod_codeproduct_elephant.php @@ -145,6 +145,8 @@ class mod_codeproduct_elephant extends ModeleProductCode */ public function getExample($langs, $objproduct = 0, $type = -1) { + $exampleproduct = $exampleservice = ''; + if ($type == 0 || $type == -1) { $exampleproduct = $this->getNextValue($objproduct, 0); if (!$exampleproduct) { diff --git a/htdocs/core/modules/product/modules_product.class.php b/htdocs/core/modules/product/modules_product.class.php index 4b00cbe132e..6c47847ef60 100644 --- a/htdocs/core/modules/product/modules_product.class.php +++ b/htdocs/core/modules/product/modules_product.class.php @@ -38,6 +38,41 @@ abstract class ModelePDFProduct extends CommonDocGenerator */ public $error = ''; + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** diff --git a/htdocs/core/modules/product_batch/mod_lot_advanced.php b/htdocs/core/modules/product_batch/mod_lot_advanced.php index d56178697f5..0e108b6b021 100644 --- a/htdocs/core/modules/product_batch/mod_lot_advanced.php +++ b/htdocs/core/modules/product_batch/mod_lot_advanced.php @@ -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 .= ''; @@ -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 .= '
    '.$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').''; @@ -139,7 +142,7 @@ 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'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/core/modules/product_batch/mod_sn_advanced.php b/htdocs/core/modules/product_batch/mod_sn_advanced.php index 6ee931d51a9..f8d61c43c61 100644 --- a/htdocs/core/modules/product_batch/mod_sn_advanced.php +++ b/htdocs/core/modules/product_batch/mod_sn_advanced.php @@ -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').''; @@ -139,7 +142,7 @@ 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'); if (!$mask) { $this->error = 'NotConfigured'; 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 d653ed760a6..29050c6b780 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,34 +37,34 @@ 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 (!empty($conf->facture->enabled)) { +if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; } -if (!empty($conf->facture->enabled)) { +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)) { 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 (!empty($conf->agenda->enabled)) { +if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } @@ -124,7 +124,6 @@ class doc_generic_project_odt extends ModelePDFProjects $this->option_tva = 0; // Manage the vat option COMMANDE_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 @@ -523,7 +522,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; @@ -537,7 +536,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; @@ -557,7 +556,7 @@ class doc_generic_project_odt extends ModelePDFProjects $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -566,20 +565,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; } @@ -616,7 +615,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' => '}' @@ -827,7 +826,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); @@ -862,7 +861,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) { @@ -972,13 +971,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 776f2f9d1e6..df013a2fad0 100644 --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php @@ -146,7 +146,6 @@ class pdf_baleine extends ModelePDFProjects $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; // Display product-service code // Get source company $this->emetteur = $mysoc; @@ -196,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; } @@ -471,6 +470,9 @@ class pdf_baleine extends ModelePDFProjects 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) { if ($pagenb == 1) { @@ -662,7 +664,7 @@ class pdf_baleine extends ModelePDFProjects foreach($object->linkedObjects as $objecttype => $objects) { - var_dump($objects);exit; + //var_dump($objects);exit; if ($objecttype == 'commande') { $outputlangs->load('orders'); diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index f71b0cdb6a7..1dc5b7bf3f9 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -138,6 +138,14 @@ class pdf_beluga extends ModelePDFProjects */ public $emetteur; + public $posxref; + public $posxdate; + public $posxsociete; + public $posxamountht; + public $posxamountttc; + public $posstatut; + + /** * Constructor * @@ -174,7 +182,6 @@ class pdf_beluga extends ModelePDFProjects $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; // Display product-service code // Get source company $this->emetteur = $mysoc; @@ -235,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; } @@ -400,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", @@ -409,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", @@ -480,7 +487,7 @@ class pdf_beluga extends ModelePDFProjects } //var_dump("$key, $tablename, $datefieldname, $dates, $datee"); - $elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee, $projectField); + $elementarray = $object->get_element_list($key, $tablename, $datefieldname, '', '', $projectField); $num = count($elementarray); if ($num >= 0) { @@ -493,7 +500,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetXY($this->posxref, $curY); $pdf->MultiCell($this->posxstatut - $this->posxref, 3, $outputlangs->transnoentities($title), 0, 'L'); - $selectList = $formproject->select_element($tablename, $project->thirdparty->id, '', -2, $projectField); + $selectList = $formproject->select_element($tablename, $object->thirdparty->id, '', -2, $projectField); $nexY = $pdf->GetY() + 1; $curY = $nexY; $pdf->SetXY($this->posxref, $curY); @@ -736,6 +743,9 @@ class pdf_beluga extends ModelePDFProjects if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { $this->_pagehead($pdf, $object, 0, $outputlangs); } + if (!empty($tplidx)) { + $pdf->useTemplate($tplidx); + } } } @@ -791,8 +801,6 @@ class pdf_beluga extends ModelePDFProjects */ protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { - global $conf, $mysoc; - $heightoftitleline = 10; $default_font_size = pdf_getPDFFontSize($outputlangs); @@ -807,24 +815,6 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $pdf->SetFont('', '', $default_font_size); - - $pdf->SetXY($this->posxref, $tab_top + 1); - $pdf->MultiCell($this->posxlabel - $this->posxref, 3, $outputlangs->transnoentities("Tasks"), '', 'L'); - - $pdf->SetXY($this->posxlabel, $tab_top + 1); - $pdf->MultiCell($this->posxworkload - $this->posxlabel, 3, $outputlangs->transnoentities("Description"), 0, 'L'); - - $pdf->SetXY($this->posxworkload, $tab_top + 1); - $pdf->MultiCell($this->posxprogress - $this->posxworkload, 3, $outputlangs->transnoentities("PlannedWorkloadShort"), 0, 'R'); - - $pdf->SetXY($this->posxprogress, $tab_top + 1); - $pdf->MultiCell($this->posxdatestart - $this->posxprogress, 3, '%', 0, 'R'); - - $pdf->SetXY($this->posxdatestart, $tab_top + 1); - $pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, '', 0, 'C'); - - $pdf->SetXY($this->posxdateend, $tab_top + 1); - $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdatestart, 3, '', 0, 'C'); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore diff --git a/htdocs/core/modules/project/doc/pdf_timespent.modules.php b/htdocs/core/modules/project/doc/pdf_timespent.modules.php index 991ff794d72..9d118b2a555 100644 --- a/htdocs/core/modules/project/doc/pdf_timespent.modules.php +++ b/htdocs/core/modules/project/doc/pdf_timespent.modules.php @@ -145,7 +145,6 @@ class pdf_timespent extends ModelePDFProjects $this->option_logo = 1; // Display logo FAC_PDF_LOGO $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION - $this->option_codeproduitservice = 1; // Display product-service code // Get source company $this->emetteur = $mysoc; @@ -196,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; } @@ -474,6 +473,9 @@ class pdf_timespent extends ModelePDFProjects 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) { if ($pagenb == 1) { @@ -658,7 +660,7 @@ class pdf_timespent extends ModelePDFProjects foreach($object->linkedObjects as $objecttype => $objects) { - var_dump($objects);exit; + //var_dump($objects);exit; if ($objecttype == 'commande') { $outputlangs->load('orders'); diff --git a/htdocs/core/modules/project/mod_project_simple.php b/htdocs/core/modules/project/mod_project_simple.php index b1dbe4bae48..921b68f492b 100644 --- a/htdocs/core/modules/project/mod_project_simple.php +++ b/htdocs/core/modules/project/mod_project_simple.php @@ -125,14 +125,14 @@ class mod_project_simple extends ModeleNumRefProjects */ public function getNextValue($objsoc, $project) { - global $db, $conf; + global $db; // 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."projet"; $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; - $sql .= " AND entity = ".$conf->entity; + $sql .= " AND entity IN (".getEntity('projectnumber', 1, $project).")"; $resql = $db->query($sql); if ($resql) { @@ -147,7 +147,7 @@ class mod_project_simple extends ModeleNumRefProjects return -1; } - $date = empty($project->date_c) ?dol_now() : $project->date_c; + $date = (empty($project->date_c) ? dol_now() : $project->date_c); //$yymm = strftime("%y%m",time()); $yymm = strftime("%y%m", $date); diff --git a/htdocs/core/modules/project/mod_project_universal.php b/htdocs/core/modules/project/mod_project_universal.php index 550d72c4f68..47fd83842ed 100644 --- a/htdocs/core/modules/project/mod_project_universal.php +++ b/htdocs/core/modules/project/mod_project_universal.php @@ -136,8 +136,11 @@ class mod_project_universal extends ModeleNumRefProjects return 0; } - $date = empty($project->date_c) ?dol_now() : $project->date_c; - $numFinal = get_next_value($db, $mask, 'projet', 'ref', '', (is_object($objsoc) ? $objsoc->code_client : ''), $date); + // Get entities + $entity = getEntity('projectnumber', 1, $project); + + $date = (empty($project->date_c) ? dol_now() : $project->date_c); + $numFinal = get_next_value($db, $mask, 'projet', 'ref', '', (is_object($objsoc) ? $objsoc : ''), $date, 'next', false, null, $entity); return $numFinal; } 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 7849e46edbe..35f00912143 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,34 +38,34 @@ 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 (!empty($conf->facture->enabled)) { +if (isModEnabled('facture')) { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; } -if (!empty($conf->facture->enabled)) { +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)) { 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 (!empty($conf->agenda->enabled)) { +if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } @@ -125,7 +125,6 @@ class doc_generic_task_odt extends ModelePDFTask $this->option_tva = 0; // Manage the vat option COMMANDE_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 = 0; // Available in several languages $this->option_escompte = 0; // Displays if there has been a discount $this->option_credit_note = 0; // Support credit notes @@ -134,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 } } @@ -482,7 +481,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; @@ -497,7 +496,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; @@ -518,18 +517,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; } @@ -551,7 +550,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' => '}' @@ -709,7 +708,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); @@ -742,7 +741,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/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php index e2e3ffd2a21..dfcc9273505 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 @@ -31,6 +31,7 @@ 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'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php'; /** @@ -70,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 @@ -86,7 +88,6 @@ class doc_generic_proposal_odt extends ModelePDFPropales $this->option_tva = 0; // Manage the vat option PROPALE_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 @@ -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,7 +187,7 @@ 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 .= ''; @@ -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 .= '
    '; @@ -304,7 +311,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales $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 5135a1708af..c2971c9344e 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -154,12 +154,12 @@ class pdf_azur extends ModelePDFPropales $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -242,6 +242,11 @@ class pdf_azur extends ModelePDFPropales $outputlangsbis->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; + } + $nblines = count($object->lines); // Loop on each lines to detect if there is at least one image to show @@ -635,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; @@ -721,6 +726,9 @@ class pdf_azur extends ModelePDFPropales 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) { if ($pagenb == 1) { @@ -785,7 +793,7 @@ class pdf_azur extends ModelePDFPropales // Find the desire PDF $filetomerge = new Propalmergepdfproduct($this->db); - if ($conf->global->MAIN_MULTILANGS) { + if (!empty($conf->global->MAIN_MULTILANGS)) { $filetomerge->fetch_by_product($line->fk_product, $outputlangs->defaultlang); } else { $filetomerge->fetch_by_product($line->fk_product); @@ -807,15 +815,15 @@ class pdf_azur extends ModelePDFPropales 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 (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'); } } @@ -964,6 +972,9 @@ class pdf_azur extends ModelePDFPropales $pdf->SetXY($posxval, $posy); $lib_condition_paiement = $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) != ('PaymentCondition'.$object->cond_reglement_code) ? $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) : $outputlangs->convToOutputCharset($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement_label); $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + if ($object->deposit_percent > 0) { + $lib_condition_paiement = str_replace('__DEPOSIT_PERCENT__', $object->deposit_percent, $lib_condition_paiement); + } $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); $posy = $pdf->GetY() + 3; @@ -1102,14 +1113,14 @@ class pdf_azur extends ModelePDFPropales $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $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)) { @@ -1118,7 +1129,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'))) { @@ -1148,7 +1159,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'))) { @@ -1210,7 +1221,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'))) { @@ -1240,7 +1251,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'))) { @@ -1288,7 +1299,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) { @@ -1455,9 +1466,10 @@ class pdf_azur extends ModelePDFPropales * @param Propal $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output + * @param Translate $outputlangsbis Object lang for output bis * @return void */ - protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $outputlangsbis = null) { global $conf, $langs; @@ -1471,11 +1483,6 @@ class pdf_azur extends ModelePDFPropales pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->PROPALE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->PROPALE_DRAFT_WATERMARK); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -1726,7 +1733,7 @@ class pdf_azur extends ModelePDFPropales { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 66882166722..9d52132db56 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -157,12 +157,12 @@ class pdf_cyan extends ModelePDFPropales $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -216,6 +216,11 @@ class pdf_cyan extends ModelePDFPropales // Load translation files required by page $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; + } + global $outputlangsbis; $outputlangsbis = null; if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { @@ -759,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; @@ -845,6 +850,9 @@ class pdf_cyan extends ModelePDFPropales 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) { @@ -910,7 +918,7 @@ class pdf_cyan extends ModelePDFPropales // Find the desire PDF $filetomerge = new Propalmergepdfproduct($this->db); - if ($conf->global->MAIN_MULTILANGS) { + if (!empty($conf->global->MAIN_MULTILANGS)) { $filetomerge->fetch_by_product($line->fk_product, $outputlangs->defaultlang); } else { $filetomerge->fetch_by_product($line->fk_product); @@ -932,15 +940,15 @@ class pdf_cyan extends ModelePDFPropales 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 (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'); } } @@ -1083,6 +1091,9 @@ class pdf_cyan extends ModelePDFPropales $pdf->SetXY($posxval, $posy); $lib_condition_paiement = $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) != ('PaymentCondition'.$object->cond_reglement_code) ? $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) : $outputlangs->convToOutputCharset($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement_label); $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + if ($object->deposit_percent > 0) { + $lib_condition_paiement = str_replace('__DEPOSIT_PERCENT__', $object->deposit_percent, $lib_condition_paiement); + } $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); $posy = $pdf->GetY() + 3; @@ -1227,14 +1238,14 @@ class pdf_cyan extends ModelePDFPropales $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $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)) { @@ -1243,7 +1254,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'))) { @@ -1274,7 +1285,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'))) { @@ -1331,7 +1342,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'))) { @@ -1362,7 +1373,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'))) { @@ -1412,7 +1423,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) { @@ -1543,11 +1554,6 @@ class pdf_cyan extends ModelePDFPropales pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->PROPALE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->PROPALE_DRAFT_WATERMARK); - } - $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -1618,7 +1624,7 @@ class pdf_cyan extends ModelePDFPropales $posy += 4; $pdf->SetXY($posx, $posy); $pdf->SetTextColor(0, 0, 60); - $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".$outputlangs->convToOutputCharset($object->ref_client), '', 'R'); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_client), 65), '', 'R'); } if (!empty($conf->global->PDF_SHOW_PROJECT_TITLE)) { @@ -1815,7 +1821,7 @@ class pdf_cyan extends ModelePDFPropales { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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); } /** diff --git a/htdocs/core/modules/propale/mod_propale_saphir.php b/htdocs/core/modules/propale/mod_propale_saphir.php index af7579fb142..2cb10e3d932 100644 --- a/htdocs/core/modules/propale/mod_propale_saphir.php +++ b/htdocs/core/modules/propale/mod_propale_saphir.php @@ -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'; diff --git a/htdocs/core/modules/propale/modules_propale.php b/htdocs/core/modules/propale/modules_propale.php index ee7df804c59..dcb386947a3 100644 --- a/htdocs/core/modules/propale/modules_propale.php +++ b/htdocs/core/modules/propale/modules_propale.php @@ -67,7 +67,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 { diff --git a/htdocs/core/modules/rapport/pdf_paiement.class.php b/htdocs/core/modules/rapport/pdf_paiement.class.php index 215987054ce..e4991a5830d 100644 --- a/htdocs/core/modules/rapport/pdf_paiement.class.php +++ b/htdocs/core/modules/rapport/pdf_paiement.class.php @@ -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').")"; 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 f8fd829591d..18afd4fd054 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 @@ -83,7 +83,6 @@ class doc_generic_reception_odt extends ModelePdfReception $this->option_tva = 0; // Manage the vat option RECEPTION_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 @@ -174,7 +173,13 @@ class doc_generic_reception_odt extends ModelePdfReception $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 .= '
    '; @@ -266,7 +271,7 @@ class doc_generic_reception_odt extends ModelePdfReception $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -275,11 +280,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; @@ -287,8 +292,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 9f03abef52c..050459d91d2 100644 --- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php @@ -44,7 +44,7 @@ class pdf_squille extends ModelePdfReception * * @param DoliDB $db Database handler */ - public function __construct($db = 0) + public function __construct(DoliDB $db) { global $conf, $langs, $mysoc; @@ -63,6 +63,8 @@ class pdf_squille extends ModelePdfReception $this->marge_basse = isset($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? $conf->global->MAIN_PDF_MARGIN_BOTTOM : 10; $this->option_logo = 1; // Display logo + $this->option_draft_watermark = 1; // Support add of a watermark on drafts + $this->watermark = ''; // Get source company $this->emetteur = $mysoc; @@ -105,7 +107,7 @@ class pdf_squille extends ModelePdfReception /** * Function to build pdf onto disk * - * @param Object $object Object reception to generate (or id if old method) + * @param Reception $object Object reception to generate (or id if old method) * @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 @@ -130,6 +132,11 @@ class pdf_squille extends ModelePdfReception $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "propal", "deliveries", "receptions", "productbatch", "sendings")); + // Show Draft Watermark + if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->RECEPTION_DRAFT_WATERMARK))) { + $this->watermark = $conf->global->RECEPTION_DRAFT_WATERMARK; + } + $nblines = count($object->lines); // Loop on each lines to detect if there is at least one image to show @@ -523,20 +530,23 @@ class pdf_squille extends ModelePdfReception while ($pagenb < $pageposafter) { $pdf->setPage($pagenb); if ($pagenb == 1) { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1); + $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object); } else { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1); + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object); } $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($tplidx)) { + $pdf->useTemplate($tplidx); + } } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1); + $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object); } else { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1); + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object); } $this->_pagefoot($pdf, $object, $outputlangs, 1); // New page @@ -550,10 +560,10 @@ class pdf_squille extends ModelePdfReception // Show square if ($pagenb == 1) { - $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0); + $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0, $object); $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; } else { - $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0); + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object); $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; } @@ -719,9 +729,10 @@ class pdf_squille extends ModelePdfReception * @param Translate $outputlangs Langs object * @param int $hidetop Hide top bar of array * @param int $hidebottom Hide bottom bar of array + * @param Object|NULL $object Object reception to generate * @return void */ - protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $object = null) { global $conf; @@ -767,7 +778,18 @@ class pdf_squille extends ModelePdfReception $pdf->line($this->posxqtytoship - 1, $tab_top, $this->posxqtytoship - 1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxqtytoship, $tab_top + 1); - $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities("QtyToReceive"), '', 'C'); + $statusreceived = Reception::STATUS_CLOSED; + if (getDolGlobalInt("STOCK_CALCULATE_ON_RECEPTION")) { + $statusreceived = Reception::STATUS_VALIDATED; + } + if (getDolGlobalInt("STOCK_CALCULATE_ON_RECEPTION_CLOSE")) { + $statusreceived = Reception::STATUS_CLOSED; + } + if ($object && $object->statut < $statusreceived) { + $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities('QtyToReceive'), '', 'C'); + } else { + $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities('QtyReceived'), '', 'C'); + } } if (!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) { @@ -805,11 +827,6 @@ class pdf_squille extends ModelePdfReception pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); - // Show Draft Watermark - if ($object->statut == 0 && (!empty($conf->global->RECEPTION_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->RECEPTION_DRAFT_WATERMARK); - } - //Prepare la suite $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -839,20 +856,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); @@ -900,7 +917,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'; @@ -1043,6 +1060,6 @@ class pdf_squille extends ModelePdfReception { global $conf; $showdetails = empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? 0 : $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; - return pdf_pagefoot($pdf, $outputlangs, 'RECEPTION_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + 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("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/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..e0dd2046020 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"; 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..4a63e9c91f6 100644 --- a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php +++ b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php @@ -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..820dfafdc7e 100644 --- a/htdocs/core/modules/societe/mod_codeclient_elephant.php +++ b/htdocs/core/modules/societe/mod_codeclient_elephant.php @@ -161,31 +161,39 @@ 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", ); if ($type != 1) { $examplecust = $this->getNextValue($objsoc, 0); if (!$examplecust) { - $examplecust = $langs->trans('NotConfigured'); + $examplecust = '
    '.$langs->trans('NotConfigured').'
    '; + $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'); + $examplesup = '
    '.$langs->trans('NotConfigured').'
    '; + $error = 1; } if (in_array($examplesup, $errmsg)) { $langs->load("errors"); - $examplesup = $langs->trans($examplesup); + $examplesup = '
    '.$langs->trans($examplesup).'
    '; + $error = 1; } } @@ -194,7 +202,11 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode } elseif ($type == 1) { return $examplesup; } else { - return $examplecust.'
    '.$examplesup; + if ($error == 1) { + return $examplecust.' '.$examplesup; + } else { + return $examplecust.'
    '.$examplesup; + } } } 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/stock/doc/doc_generic_stock_odt.modules.php b/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php index 1fb120d4d29..c5a6ae75389 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 @@ -86,7 +86,6 @@ class doc_generic_stock_odt extends ModelePDFStock $this->option_tva = 0; // Manage the vat option STOCK_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 @@ -178,7 +177,13 @@ class doc_generic_stock_odt extends ModelePDFStock $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 .= '
    '; @@ -274,7 +279,7 @@ class doc_generic_stock_odt extends ModelePDFStock $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 +288,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; @@ -295,8 +300,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 f66e7e6e5d1..3fd3917da2d 100644 --- a/htdocs/core/modules/stock/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_standard.modules.php @@ -1,6 +1,7 @@ * Copyright (C) 2022 Ferran Marcet + * Copyright (C) 2022 Nicolas Silobre * * 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 @@ -69,47 +70,24 @@ class pdf_standard extends ModelePDFStock */ public $version = 'dolibarr'; - /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - /** * Issuer * @var Societe */ public $emetteur; + public $wref; + public $posxdesc; + public $posxlabel; + public $posxtva; + public $posxqty; + public $posxup; + public $posxunit; + public $posxdiscount; + public $postotalht; + + public $tabTitleHeight; + /** * Constructor @@ -173,12 +151,6 @@ class pdf_standard extends ModelePDFStock $this->posxdiscount -= 20; $this->postotalht -= 20; } - $this->tva = array(); - $this->tva_array = array(); - $this->localtax1 = array(); - $this->localtax2 = array(); - $this->atleastoneratenotnull = 0; - $this->atleastonediscount = 0; $this->tabTitleHeight = 11; } @@ -255,6 +227,9 @@ class pdf_standard extends ModelePDFStock $heightforinfotot = 40; // Height reserved to output the info and total 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 + 8; // Height reserved to output the footer (value include bottom margin) + if (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS)) { + $heightforfooter += 6; + } if (class_exists('TCPDF')) { $pdf->setPrintHeader(false); @@ -485,6 +460,9 @@ class pdf_standard extends ModelePDFStock 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) { if ($pagenb == 1) { @@ -520,7 +498,7 @@ class pdf_standard extends ModelePDFStock $pdf->SetLineStyle(array('dash'=>0)); $pdf->SetFont('', 'B', $default_font_size - 1); - $pdf->SetTextColor(0, 0, 120); + $pdf->SetTextColor(0, 0, 0); // Ref. $pdf->SetXY($this->posxdesc, $curY); @@ -677,58 +655,60 @@ class pdf_standard extends ModelePDFStock } $pdf->SetDrawColor(128, 128, 128); + $pdf->SetFont('', 'B', $default_font_size - 3); // Output Rect - //$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect takes a length in 3rd parameter and 4th parameter + $this->printRect($pdf, $this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect takes a length in 3rd parameter and 4th parameter $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(200, 200, 200))); $pdf->SetDrawColor(200, 200, 200); $pdf->line($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_droite, $tab_top); $pdf->SetLineStyle(array('dash'=>0)); $pdf->SetDrawColor(128, 128, 128); - $pdf->SetTextColor(0, 0, 120); + $pdf->SetTextColor(0, 0, 0); + if (empty($hidetop)) { - //$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5); // line takes a position y in 2nd parameter and 4th parameter + $pdf->line($this->marge_gauche, $tab_top+11, $this->page_largeur-$this->marge_droite, $tab_top+11); // line takes a position y in 2nd parameter and 4th parameter $pdf->SetXY($this->posxdesc - 1, $tab_top + 1); $pdf->MultiCell($this->wref, 3, $outputlangs->transnoentities("Ref"), '', 'L'); } - //$pdf->line($this->posxlabel-1, $tab_top, $this->posxlabel-1, $tab_top + $tab_height); + $pdf->line($this->posxlabel-1, $tab_top, $this->posxlabel-1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxlabel - 1, $tab_top + 1); - $pdf->MultiCell($this->posxqty - $this->posxlabel - 1, 2, $outputlangs->transnoentities("Label"), '', 'L'); + $pdf->MultiCell($this->posxqty - $this->posxlabel - 1, 2, $outputlangs->transnoentities("Label"), '', 'C'); } - //$pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height); + $pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxqty - 1, $tab_top + 1); - $pdf->MultiCell($this->posxup - $this->posxqty - 1, 2, $outputlangs->transnoentities("Units"), '', 'R'); + $pdf->MultiCell($this->posxup - $this->posxqty - 1, 2, $outputlangs->transnoentities("Units"), '', 'C'); } - //$pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $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->posxunit - $this->posxup - 1, 2, $outputlangs->transnoentities("AverageUnitPricePMPShort"), '', 'R'); + $pdf->MultiCell($this->posxunit - $this->posxup - 1, 2, $outputlangs->transnoentities("AverageUnitPricePMPShort"), '', 'C'); } - //$pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height); + $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); - $pdf->MultiCell($this->posxdiscount - $this->posxunit - 1, 2, $outputlangs->transnoentities("EstimatedStockValueShort"), '', 'R'); + $pdf->MultiCell($this->posxdiscount - $this->posxunit - 1, 2, $outputlangs->transnoentities("EstimatedStockValueShort"), '', 'C'); } - //$pdf->line($this->posxdiscount-1, $tab_top, $this->posxdiscount-1, $tab_top + $tab_height); + $pdf->line($this->posxdiscount-1, $tab_top, $this->posxdiscount-1, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxdiscount - 1, $tab_top + 1); - $pdf->MultiCell($this->postotalht - $this->posxdiscount + 1, 2, $outputlangs->transnoentities("SellPriceMin"), '', 'R'); + $pdf->MultiCell($this->postotalht - $this->posxdiscount + 1, 2, $outputlangs->transnoentities("SellPriceMin"), '', 'C'); } - //$pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height); + $pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->postotalht - 1, $tab_top + 1); - $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 2, $outputlangs->transnoentities("EstimatedStockValueSellShort"), '', 'R'); + $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 2, $outputlangs->transnoentities("EstimatedStockValueSellShort"), '', 'C'); } if (empty($hidetop)) { @@ -810,7 +790,10 @@ class pdf_standard extends ModelePDFStock $pdf->SetFont('', '', $default_font_size - 1); $pdf->SetXY($posx, $posy); $pdf->SetTextColor(0, 0, 60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Label").' : '.$object->lieu, '', 'R'); + if (!empty($object->lieu)) { + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Label").' : '.$object->lieu, '', 'R'); + } + $posy += 4; $pdf->SetXY($posx, $posy); @@ -831,51 +814,54 @@ class pdf_standard extends ModelePDFStock $yafterright = $pdf->GetY(); // Description - $nexY = max($yafterleft, $yafterright); - $nexY += 5; - $pdf->SetXY($posx, $posy); - $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("Description").' : '.nl2br($object->description), 0, 1); - $nexY = $pdf->GetY(); + $nbpage = $pdf->getPage(); + if ($nbpage == 1) { + $nexY = max($yafterleft, $yafterright); + $nexY += 5; + $pdf->SetXY($posx, $posy); + $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("Description").' : '.nl2br($object->description), 0, 1); + $nexY = $pdf->GetY(); - $calcproductsunique = $object->nb_different_products(); - $calcproducts = $object->nb_products(); + $calcproductsunique = $object->nb_different_products(); + $calcproducts = $object->nb_products(); - // Total nb of different products - $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("NumberOfDifferentProducts").' : '.(empty($calcproductsunique['nb']) ? '0' : $calcproductsunique['nb']), 0, 1); - $nexY = $pdf->GetY(); + // Total nb of different products + $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("NumberOfDifferentProducts").' : '.(empty($calcproductsunique['nb']) ? '0' : $calcproductsunique['nb']), 0, 1); + $nexY = $pdf->GetY(); - // Nb of products - $valtoshow = price2num($calcproducts['nb'], 'MS'); - $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("NumberOfProducts").' : '.(empty($valtoshow) ? '0' : $valtoshow), 0, 1); - $nexY = $pdf->GetY(); + // Nb of products + $valtoshow = price2num($calcproducts['nb'], 'MS'); + $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("NumberOfProducts").' : '.(empty($valtoshow) ? '0' : $valtoshow), 0, 1); + $nexY = $pdf->GetY(); - // Value - $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("EstimatedStockValueShort").' : '.price((empty($calcproducts['value']) ? '0' : price2num($calcproducts['value'], 'MT')), 0, $langs, 0, -1, -1, $conf->currency), 0, 1); - $nexY = $pdf->GetY(); + // Value + $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("EstimatedStockValueShort").' : '.price((empty($calcproducts['value']) ? '0' : price2num($calcproducts['value'], 'MT')), 0, $langs, 0, -1, -1, $conf->currency), 0, 1); + $nexY = $pdf->GetY(); - // Value - $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("Date").' : '.dol_print_date(dol_now(), 'dayhour'), 0, 1); - $nexY = $pdf->GetY(); + // Value + $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("Date").' : '.dol_print_date(dol_now(), 'dayhour'), 0, 1); + $nexY = $pdf->GetY(); - // Last movement - $sql = "SELECT max(m.datem) as datem"; - $sql .= " FROM ".MAIN_DB_PREFIX."stock_mouvement as m"; - $sql .= " WHERE m.fk_entrepot = ".((int) $object->id); - $resqlbis = $this->db->query($sql); - if ($resqlbis) { - $obj = $this->db->fetch_object($resqlbis); - $lastmovementdate = $this->db->jdate($obj->datem); - } else { - dol_print_error($this->db); + // Last movement + $sql = "SELECT max(m.datem) as datem"; + $sql .= " FROM ".MAIN_DB_PREFIX."stock_mouvement as m"; + $sql .= " WHERE m.fk_entrepot = ".((int) $object->id); + $resqlbis = $this->db->query($sql); + if ($resqlbis) { + $obj = $this->db->fetch_object($resqlbis); + $lastmovementdate = $this->db->jdate($obj->datem); + } else { + dol_print_error($this->db); + } + + if ($lastmovementdate) { + $toWrite = dol_print_date($lastmovementdate, 'dayhour').' '; + } else { + $toWrite = $outputlangs->transnoentities("None"); + } + + $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("LastMovement").' : '.$toWrite, 0, 1); } - - if ($lastmovementdate) { - $toWrite = dol_print_date($lastmovementdate, 'dayhour').' '; - } else { - $toWrite = $outputlangs->transnoentities("None"); - } - - $pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, ''.$outputlangs->transnoentities("LastMovement").' : '.$toWrite, 0, 1); $nexY = $pdf->GetY(); $posy += 2; diff --git a/htdocs/core/modules/stock/modules_stock.php b/htdocs/core/modules/stock/modules_stock.php index 2c9f9e82591..73092bb0bf6 100644 --- a/htdocs/core/modules/stock/modules_stock.php +++ b/htdocs/core/modules/stock/modules_stock.php @@ -28,6 +28,41 @@ abstract class ModelePDFStock extends CommonDocGenerator */ public $error = ''; + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** diff --git a/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php b/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php new file mode 100644 index 00000000000..87a6bcf0e38 --- /dev/null +++ b/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php @@ -0,0 +1,1174 @@ + + * Copyright (C) 2005-2012 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2014-2015 Marcos García + * Copyright (C) 2018 Frédéric France + * 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 + * 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/expedition/doc/pdf_eagle.modules.php + * \ingroup expedition + * \brief Class file used to generate the dispatch slips for the Eagle model + */ + +require_once DOL_DOCUMENT_ROOT . '/core/modules/stocktransfer/modules_stocktransfer.php'; +require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; + + +/** + * Class to build sending documents with model Eagle + */ +class pdf_eagle extends ModelePdfStockTransfer +{ + /** + * @var DoliDb Database handler + */ + public $db; + + /** + * @var string model name + */ + public $name; + + /** + * @var string model description (short text) + */ + public $description; + + /** + * @var string document type + */ + public $type; + + /** + * @var array Minimum version of PHP required by module. + * e.g.: PHP ≥ 5.5 = array(5, 5) + */ + public $phpmin = array(5, 5); + + /** + * Dolibarr version of the loaded document + * @var string + */ + public $version = 'dolibarr'; + + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + + /** + * Issuer + * @var Societe object that emits + */ + public $emetteur; + + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db = 0) + { + global $conf, $langs, $mysoc; + + $this->db = $db; + $this->name = $langs->trans("StockTransferSheet"); + $this->description = $langs->trans("DocumentModelStandardPDF"); + + $this->type = 'pdf'; + $formatarray = pdf_getFormat(); + $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->option_logo = 1; // Display logo + + // Get source company + $this->emetteur = $mysoc; + if (!$this->emetteur->country_code) $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default if not defined + + // Define position of columns + $this->posxdesc = $this->marge_gauche + 1; + $this->posxlot = $this->page_largeur - $this->marge_droite - 135; + $this->posxweightvol = $this->page_largeur - $this->marge_droite - 115; + $this->posxqty = $this->page_largeur - $this->marge_droite - 95; + $this->posxwarehousesource = $this->page_largeur - $this->marge_droite - 70; + $this->posxwarehousedestination = $this->page_largeur - $this->marge_droite - 35; + $this->posxpuht = $this->page_largeur - $this->marge_droite; + + /*if (!empty($conf->global->STOCKTRANSFER_PDF_DISPLAY_AMOUNT_HT)) { // Show also the prices + $this->posxqty = $this->page_largeur - $this->marge_droite - 118; + $this->posxwarehousesource = $this->page_largeur - $this->marge_droite - 96; + $this->posxwarehousedestination = $this->page_largeur - $this->marge_droite - 68; + $this->posxpuht = $this->page_largeur - $this->marge_droite - 40; + $this->posxtotalht = $this->page_largeur - $this->marge_droite - 20; + }*/ + + if (!empty($conf->global->STOCKTRANSFER_PDF_HIDE_WEIGHT_AND_VOLUME)) $this->posxweightvol = $this->posxqty; + + $this->posxpicture = $this->posxweightvol - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images + //var_dump($this->posxpicture, $this->posxweightvol);exit; + + // To work with US executive format + if ($this->page_largeur < 210) { + $this->posxqty -= 20; + $this->posxpicture -= 20; + $this->posxwarehousesource -= 20; + $this->posxwarehousedestination -= 20; + } + + /*if (!empty($conf->global->STOCKTRANSFER_PDF_HIDE_ORDERED)) { + $this->posxqty += ($this->posxwarehousedestination - $this->posxwarehousesource); + $this->posxpicture += ($this->posxwarehousedestination - $this->posxwarehousesource); + $this->posxwarehousesource = $this->posxwarehousedestination; + }*/ + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Function to build pdf onto disk + * + * @param Object $object Object StockTransfer to generate (or id if old method) + * @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=OK, 0=KO + */ + public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0) + { + // phpcs:enable + global $db, $user, $conf, $langs, $hookmanager; + + $object->fetch_thirdparty(); + + $this->atLeastOneBatch = $this->atLeastOneBatch($object); + + if (!is_object($outputlangs)) $outputlangs = $langs; + // For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO + if (!empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output = 'ISO-8859-1'; + + // Load traductions files required by page + $outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies", "propal", "deliveries", "sendings", "productbatch", "stocks", "stocktransfer@stocktransfer")); + + $nblines = count($object->lines); + + // Loop on each lines to detect if there is at least one image to show + $realpatharray = array(); + if (!empty($conf->global->MAIN_GENERATE_STOCKTRANSFER_WITH_PICTURE)) { + $objphoto = new Product($this->db); + + for ($i = 0; $i < $nblines; $i++) { + if (empty($object->lines[$i]->fk_product)) continue; + + $objphoto = new Product($this->db); + $objphoto->fetch($object->lines[$i]->fk_product); + if (!empty($conf->global->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 { + $pdir = get_exdir(0, 2, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; + $dir = $conf->product->dir_output.'/'.$pdir; + } + + $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 ($obj['photo_vignette']) { + $filename = $obj['photo_vignette']; + } else { + $filename = $obj['photo']; + } + } else { + $filename = $obj['photo']; + } + + $realpath = $dir.$filename; + break; + } + + if ($realpath) $realpatharray[$i] = $realpath; + } + } + + if (count($realpatharray) == 0) $this->posxpicture = $this->posxweightvol; + + + if (!empty($this->atLeastOneBatch)) { + $this->posxpicture = $this->posxlot; + if (!empty($conf->global->MAIN_GENERATE_STOCKTRANSFER_WITH_PICTURE)) $this->posxpicture -= (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images + } + + if ($conf->stocktransfer->dir_output) { + // Definition de $dir et $file + if ($object->specimen) { + $dir = $conf->stocktransfer->dir_output; + $file = $dir."/SPECIMEN.pdf"; + } else { + $stocktransferref = dol_sanitizeFileName($object->ref); + $dir = $conf->stocktransfer->dir_output.'/'.$object->element."/".$stocktransferref; + $file = $dir."/".$stocktransferref.".pdf"; + } + + if (!file_exists($dir)) { + if (dol_mkdir($dir) < 0) { + $this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir); + return 0; + } + } + + if (file_exists($dir)) { + // Add pdfgeneration hook + if (!is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($this->db); + } + $hookmanager->initHooks(array('pdfgeneration')); + $parameters = array('file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs); + global $action; + $reshook = $hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks + + // Set nblines with the new facture lines content after hook + $nblines = count($object->lines); + + $pdf = pdf_getInstance($this->format); + $default_font_size = pdf_getPDFFontSize($outputlangs); + $heightforinfotot = 8; // Height reserved to output the info and total 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 + 8; // Height reserved to output the footer (value include bottom margin) + if ($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS > 0) $heightforfooter += 6; + $pdf->SetAutoPageBreak(1, 0); + + if (class_exists('TCPDF')) { + $pdf->setPrintHeader(false); + $pdf->setPrintFooter(false); + } + $pdf->SetFont(pdf_getPDFFont($outputlangs)); + // Set path to the background PDF File + if (!empty($conf->global->MAIN_ADD_PDF_BACKGROUND)) { + $pagecount = $pdf->setSourceFile($conf->mycompany->dir_output.'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND); + $tplidx = $pdf->importPage(1); + } + + $pdf->Open(); + $pagenb = 0; + $pdf->SetDrawColor(128, 128, 128); + + if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages(); + + $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); + $pdf->SetSubject($outputlangs->transnoentities("Shipment")); + $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); + + $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right + + // New page + $pdf->AddPage(); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + $pagenb++; + $this->_pagehead($pdf, $object, 1, $outputlangs); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->MultiCell(0, 3, ''); // Set interline to 3 + $pdf->SetTextColor(0, 0, 0); + + $tab_top = 90; + $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_height = 130; + $tab_height_newpage = 150; + + // Incoterm + $height_incoterms = 0; + if ($conf->incoterm->enabled) { + $desc_incoterms = $object->getIncotermsForPDF(); + if ($desc_incoterms) { + $tab_top = 88; + + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $tab_top - 1, dol_htmlentitiesbr($desc_incoterms), 0, 1); + $nexY = $pdf->GetY(); + $height_incoterms = $nexY - $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); + + $tab_top = $nexY + 6; + $height_incoterms += 4; + } + } + + if (!empty($object->note_public) || !empty($object->tracking_number)) { + $tab_top = 88 + $height_incoterms; + $tab_top_alt = $tab_top; + + $pdf->SetFont('', 'B', $default_font_size - 2); + + //$tab_top_alt += 1; + + // Tracking number + if (!empty($object->tracking_number)) { + $pdf->writeHTMLCell(60, 4, $this->posxdesc - 1, $tab_top - 1, $outputlangs->transnoentities("TrackingNumber")." : ".$object->tracking_number, 0, 1, false, true, 'L'); + $tab_top_alt = $pdf->GetY(); + + $object->getUrlTrackingStatus($object->tracking_number); + if (!empty($object->tracking_url)) { + if ($object->shipping_method_id > 0) { + // Get code using getLabelFromKey + $code = $outputlangs->getLabelFromKey($this->db, $object->shipping_method_id, 'c_shipment_mode', 'rowid', 'code'); + $label = ''; + if ($object->tracking_url != $object->tracking_number) $label .= $outputlangs->trans("LinkToTrackYourPackage")."
    "; + $label .= $outputlangs->trans("SendingMethod").": ".$outputlangs->trans("SendingMethod".strtoupper($code)); + //var_dump($object->tracking_url != $object->tracking_number);exit; + if ($object->tracking_url != $object->tracking_number) { + $label .= " : "; + $label .= $object->tracking_url; + } + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->writeHTMLCell(60, 4, $this->posxdesc - 1, $tab_top_alt, $label, 0, 1, false, true, 'L'); + + $tab_top_alt = $pdf->GetY(); + } + } + } + + // Notes + if (!empty($object->note_public)) { + $pdf->SetFont('', '', $default_font_size - 1); // Dans boucle pour gerer multi-page + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $tab_top_alt, dol_htmlentitiesbr($object->note_public), 0, 1); + } + + $nexY = $pdf->GetY(); + $height_note = $nexY - $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_note + 1); + + $tab_height = $tab_height - $height_note; + $tab_top = $nexY + 6; + } else { + $height_note = 0; + } + + $iniY = $tab_top + 7; + $curY = $tab_top + 7; + $nexY = $tab_top + 7; + + $TCacheEntrepots=array(); + // Loop on each lines + for ($i = 0; $i < $nblines; $i++) { + $curY = $nexY; + $pdf->SetFont('', '', $default_font_size - 1); // Into loop to work with multipage + $pdf->SetTextColor(0, 0, 0); + + // Define size of image if we need it + $imglinesize = array(); + if (!empty($realpatharray[$i])) $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. + $pageposbefore = $pdf->getPage(); + + $showpricebeforepagebreak = 1; + $posYAfterImage = 0; + $posYAfterDescription = 0; + + // 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 + $pdf->AddPage('', '', true); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + $pdf->setPage($pageposbefore + 1); + + $curY = $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)) + $showpricebeforepagebreak = 1; + else $showpricebeforepagebreak = 0; + } + + if (isset($imglinesize['width']) && isset($imglinesize['height'])) { + $curX = $this->posxpicture - 1; + $pdf->Image($realpatharray[$i], $curX + (($this->posxqty - $this->posxweightvol - $imglinesize['width'] + + (!empty($conf->global->STOCKTRANSFER_PDF_HIDE_WEIGHT_AND_VOLUME) ? (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) : 0)) / 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']; + } + + // Description of product line + $curX = $this->posxdesc - 1; + + $pdf->startTransaction(); + if (method_exists($object->lines[$i], 'fetch_product')) { + $object->lines[$i]->fetch_product(); + $object->lines[$i]->label = $object->lines[$i]->product->label; + $object->lines[$i]->description = $object->lines[$i]->product->description; + $object->lines[$i]->weight = $object->lines[$i]->product->weight; + $object->lines[$i]->weight_units = $object->lines[$i]->product->weight_units; + $object->lines[$i]->length = $object->lines[$i]->product->length; + $object->lines[$i]->length_units = $object->lines[$i]->product->length_units; + $object->lines[$i]->surface = $object->lines[$i]->product->surface; + $object->lines[$i]->surface_units = $object->lines[$i]->product->surface_units; + $object->lines[$i]->volume = $object->lines[$i]->product->volume; + $object->lines[$i]->volume_units = $object->lines[$i]->product->volume_units; + $object->lines[$i]->fk_unit = $object->lines[$i]->product->fk_unit; + //var_dump($object->lines[$i]);exit; + } + + pdf_writelinedesc($pdf, $object, $i, $outputlangs, $this->posxpicture - $curX, 3, $curX, $curY, $hideref, $hidedesc); + + $pageposafter = $pdf->getPage(); + if ($pageposafter > $pageposbefore) { // There is a pagebreak + $pdf->rollbackTransaction(true); + $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, $this->posxpicture - $curX, 3, $curX, $curY, $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 + 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); + $pdf->setPage($pageposafter + 1); + } + } else { + // We found a page break + + // 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)) + $showpricebeforepagebreak = 1; + else $showpricebeforepagebreak = 0; + } + } else // No pagebreak + { + $pdf->commitTransaction(); + } + $posYAfterDescription = $pdf->GetY(); + + $nexY = $pdf->GetY(); + $pageposafter = $pdf->getPage(); + + $pdf->setPage($pageposbefore); + $pdf->setTopMargin($this->marge_haute); + $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. + + // 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; + } + + // We suppose that a too long description is moved completely on next page + if ($pageposafter > $pageposbefore) { + $pdf->setPage($pageposafter); $curY = $tab_top_newpage; + } + + $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut + + // Lot / série + if (isModEnabled('productbatch')) { + $pdf->SetXY($this->posxlot, $curY); + $pdf->MultiCell(($this->posxweightvol - $this->posxlot), 3, $object->lines[$i]->batch, '', 'C'); + } + + // Weight + $pdf->SetXY($this->posxweightvol, $curY); + $weighttxt = ''; + if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->weight) { + $weighttxt = round($object->lines[$i]->weight * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "weight", $object->lines[$i]->weight_units, 1); + } + $voltxt = ''; + if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->volume) { + $voltxt = round($object->lines[$i]->volume * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "volume", $object->lines[$i]->volume_units ? $object->lines[$i]->volume_units : 0, 1); + } + + // Weight + if (empty($conf->global->STOCKTRANSFER_PDF_HIDE_WEIGHT_AND_VOLUME)) { + $pdf->writeHTMLCell($this->posxqty - $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 + $pdf->SetXY($this->posxqty, $curY); + $pdf->writeHTMLCell($this->posxwarehousesource - $this->posxqty + 2, 3, $this->posxqty - 1, $curY, $object->lines[$i]->qty, 0, 0, false, true, 'C'); + //$pdf->MultiCell(($this->posxwarehousesource - $this->posxqty), 3, $weighttxt.(($weighttxt && $voltxt)?'
    ':'').$voltxt,'','C'); + + // Warehouse source + $wh_source = new Entrepot($db); + if (!empty($TCacheEntrepots[$object->lines[$i]->fk_warehouse_source])) $wh_source = $TCacheEntrepots[$object->lines[$i]->fk_warehouse_source]; + else { + $wh_source->fetch($object->lines[$i]->fk_warehouse_source); + $TCacheEntrepots[$object->lines[$i]->fk_warehouse_source] = $wh_source; + } + $pdf->SetXY($this->posxwarehousesource, $curY); + $pdf->MultiCell(($this->posxwarehousedestination - $this->posxwarehousesource), 3, $wh_source->ref.(!empty($wh_source->lieu) ? ' - '.$wh_source->lieu : ''), '', 'C'); + + // Warehouse destination + $wh_destination = new Entrepot($db); + if (!empty($TCacheEntrepots[$object->lines[$i]->fk_warehouse_destination])) $wh_destination = $TCacheEntrepots[$object->lines[$i]->fk_warehouse_destination]; + else { + $wh_destination->fetch($object->lines[$i]->fk_warehouse_destination); + $TCacheEntrepots[$object->lines[$i]->fk_warehouse_destination] = $wh_destination; + } + $pdf->SetXY($this->posxwarehousedestination, $curY); + $pdf->MultiCell(($this->posxpuht - $this->posxwarehousedestination), 3, $wh_destination->ref.(!empty($wh_destination->lieu) ? ' - '.$wh_destination->lieu : ''), '', 'C'); + + if (!empty($conf->global->STOCKTRANSFER_PDF_DISPLAY_AMOUNT_HT)) { + $pdf->SetXY($this->posxpuht, $curY); + $pdf->MultiCell(($this->posxtotalht - $this->posxpuht - 1), 3, price($object->lines[$i]->subprice, 0, $outputlangs), '', 'R'); + + $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'); + } + + $nexY += 3; + if ($weighttxt && $voltxt) $nexY += 2; + + // Add line + 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))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY - 1, $this->page_largeur - $this->marge_droite, $nexY - 1); + $pdf->SetLineStyle(array('dash'=>0)); + } + + // Detect if some page were added automatically and output _tableau for past pages + while ($pagenb < $pageposafter) { + $pdf->setPage($pagenb); + if ($pagenb == 1) { + $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1); + } else { + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1); + } + $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)) $this->_pagehead($pdf, $object, 0, $outputlangs); + } + if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { + if ($pagenb == 1) { + $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1); + } else { + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1); + } + $this->_pagefoot($pdf, $object, $outputlangs, 1); + // New page + $pdf->AddPage(); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + $pagenb++; + if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + } + } + + // Show square + if ($pagenb == 1) { + $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0); + $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; + } else { + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0); + $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; + } + + // Affiche zone totaux + $posy = $this->_tableau_tot($pdf, $object, 0, $bottomlasttab, $outputlangs); + + // Pied de page + $this->_pagefoot($pdf, $object, $outputlangs); + if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages(); + + $pdf->Close(); + + $pdf->Output($file, 'F'); + + // Add pdfgeneration hook + $hookmanager->initHooks(array('pdfgeneration')); + $parameters = array('file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs); + global $action; + $reshook = $hookmanager->executeHooks('afterPDFCreation', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) { + $this->error = $hookmanager->error; + $this->errors = $hookmanager->errors; + } + + if (!empty($conf->global->MAIN_UMASK)) + @chmod($file, octdec($conf->global->MAIN_UMASK)); + + $this->result = array('fullpath'=>$file); + + return 1; // No error + } else { + $this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir); + return 0; + } + } else { + $this->error = $langs->transnoentities("ErrorConstantNotDefined", "EXP_OUTPUTDIR"); + return 0; + } + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Show total to pay + * + * @param PDF $pdf Object PDF + * @param Facture $object Object invoice + * @param int $deja_regle Montant deja regle + * @param int $posy Position depart + * @param Translate $outputlangs Objet langs + * @return int Position pour suite + */ + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + { + // phpcs:enable + global $conf, $mysoc; + + $sign = 1; + + $default_font_size = pdf_getPDFFontSize($outputlangs); + + $tab2_top = $posy; + $tab2_hl = 4; + $pdf->SetFont('', 'B', $default_font_size - 1); + + // Tableau total + $col1x = $this->posxqty - 50; $col2x = $this->posxqty; + /*if ($this->page_largeur < 210) // To work with US executive format + { + $col2x-=20; + }*/ + if (empty($conf->global->STOCKTRANSFER_PDF_HIDE_ORDERED)) $largcol2 = ($this->posxwarehousesource - $this->posxqty); + else $largcol2 = ($this->posxwarehousedestination - $this->posxqty); + + $useborder = 0; + $index = 0; + + $totalWeighttoshow = ''; + $totalVolumetoshow = ''; + + // Load dim data + $tmparray = $object->getTotalWeightVolume(); + $totalWeight = $tmparray['weight']; + $totalVolume = $tmparray['volume']; + $totalQty = 0; + if (!empty($object->lines)) + foreach ($object->lines as $line) { + $totalQty+=$line->qty; + } + // Set trueVolume and volume_units not currently stored into database + if ($object->trueWidth && $object->trueHeight && $object->trueDepth) { + $object->trueVolume = price(($object->trueWidth * $object->trueHeight * $object->trueDepth), 0, $outputlangs, 0, 0); + $object->volume_units = $object->size_units * 3; + } + + if ($totalWeight != '') $totalWeighttoshow = showDimensionInBestUnit($totalWeight, 0, "weight", $outputlangs); + if ($totalVolume != '') $totalVolumetoshow = showDimensionInBestUnit($totalVolume, 0, "volume", $outputlangs); + if ($object->trueWeight) $totalWeighttoshow = showDimensionInBestUnit($object->trueWeight, $object->weight_units, "weight", $outputlangs); + if ($object->trueVolume) $totalVolumetoshow = showDimensionInBestUnit($object->trueVolume, $object->volume_units, "volume", $outputlangs); + + $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); + + if (empty($conf->global->STOCKTRANSFER_PDF_HIDE_ORDERED)) { + $pdf->SetXY($this->posxqty, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell($this->posxwarehousesource - $this->posxqty, $tab2_hl, $totalQty, 0, 'C', 1); + } + + if (!empty($conf->global->STOCKTRANSFER_PDF_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); + } + + if (empty($conf->global->STOCKTRANSFER_PDF_HIDE_WEIGHT_AND_VOLUME)) { + // Total Weight + if ($totalWeighttoshow) { + $pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell(($this->posxqty - $this->posxweightvol), $tab2_hl, $totalWeighttoshow, 0, 'C', 1); + + $index++; + } + if ($totalVolumetoshow) { + $pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell(($this->posxqty - $this->posxweightvol), $tab2_hl, $totalVolumetoshow, 0, 'C', 1); + + $index++; + } + if (!$totalWeighttoshow && !$totalVolumetoshow) $index++; + } + + $pdf->SetTextColor(0, 0, 0); + + return ($tab2_top + ($tab2_hl * $index)); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Show table for lines + * + * @param PDF $pdf Object PDF + * @param string $tab_top Top position of table + * @param string $tab_height Height of table (rectangle) + * @param int $nexY Y + * @param Translate $outputlangs Langs object + * @param int $hidetop Hide top bar of array + * @param int $hidebottom Hide bottom bar of array + * @return void + */ + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + { + // phpcs:enable + global $conf; + + // Force to disable hidetop and hidebottom + $hidebottom = 0; + if ($hidetop) $hidetop = -1; + + $default_font_size = pdf_getPDFFontSize($outputlangs); + + // Amount in (at tab_top - 1) + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + + // Output Rect + $this->printRect($pdf, $this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect takes a length in 3rd parameter and 4th parameter + + $pdf->SetDrawColor(128, 128, 128); + $pdf->SetFont('', '', $default_font_size - 1); + + if (empty($hidetop)) { + $pdf->line($this->marge_gauche, $tab_top + 5, $this->page_largeur - $this->marge_droite, $tab_top + 5); + + $pdf->SetXY($this->posxdesc - 1, $tab_top + 1); + $pdf->MultiCell($this->posxlot - $this->posxdesc, 2, $outputlangs->transnoentities("Description"), '', 'L'); + } + + 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); + $pdf->MultiCell(($this->posxweightvol - $this->posxlot), 2, $outputlangs->transnoentities("Batch"), '', 'C'); + } + } + + if (empty($conf->global->STOCKTRANSFER_PDF_HIDE_WEIGHT_AND_VOLUME)) { + $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->posxqty - $this->posxweightvol), 2, $outputlangs->transnoentities("WeightVolShort"), '', 'C'); + } + } + + $pdf->line($this->posxqty - 1, $tab_top, $this->posxqty - 1, $tab_top + $tab_height); + if (empty($hidetop)) { + $pdf->SetXY($this->posxqty - 1, $tab_top + 1); + $pdf->MultiCell(($this->posxwarehousesource - $this->posxqty), 2, $outputlangs->transnoentities("Qty"), '', 'C'); + } + + $pdf->line($this->posxwarehousesource - 1, $tab_top, $this->posxwarehousesource - 1, $tab_top + $tab_height); + if (empty($hidetop)) { + $pdf->SetXY($this->posxwarehousesource - 1, $tab_top + 1); + $pdf->MultiCell(($this->posxwarehousedestination - $this->posxwarehousesource), 2, $outputlangs->transnoentities("WarehouseSource"), '', 'C'); + } + + + $pdf->line($this->posxwarehousedestination - 1, $tab_top, $this->posxwarehousedestination - 1, $tab_top + $tab_height); + if (empty($hidetop)) { + $pdf->SetXY($this->posxwarehousedestination-2.5, $tab_top + 1); + $pdf->MultiCell(($this->posxpuht - $this->posxwarehousedestination+4), 2, $outputlangs->transnoentities("WarehouseTarget"), '', 'C'); + } + + /*if (!empty($conf->global->STOCKTRANSFER_PDF_DISPLAY_AMOUNT_HT)) { + $pdf->line($this->posxpuht - 1, $tab_top, $this->posxpuht - 1, $tab_top + $tab_height); + if (empty($hidetop)) + { + $pdf->SetXY($this->posxpuht - 1, $tab_top + 1); + $pdf->MultiCell(($this->posxtotalht - $this->posxpuht), 2, $outputlangs->transnoentities("PriceUHT"), '', 'C'); + } + + $pdf->line($this->posxtotalht - 1, $tab_top, $this->posxtotalht - 1, $tab_top + $tab_height); + if (empty($hidetop)) + { + $pdf->SetXY($this->posxtotalht - 1, $tab_top + 1); + $pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxtotalht), 2, $outputlangs->transnoentities("TotalHT"), '', 'C'); + } + }*/ + } + + /** + * Used to know if at least one line of Stock Transfer object has a batch set + * + * @param Object $object Stock Transfer object + * @return boolean true if at least one line has batch set, false if not + */ + public function atLeastOneBatch($object) + { + + global $conf; + + $atLeastOneBatch = false; + + if (empty($conf->productbatch->enabled)) return false; + + foreach ($object->lines as $line) { + if (!empty($line->batch)) { + return true; + } + } + + return false; + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Show top header of page. + * + * @param PDF $pdf Object PDF + * @param Object $object Object to show + * @param int $showaddress 0=no, 1=yes + * @param Translate $outputlangs Object lang for output + * @return void + */ + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + { + // phpcs:enable + global $conf, $langs, $mysoc; + + $langs->load("orders"); + + $default_font_size = pdf_getPDFFontSize($outputlangs); + + pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); + + // Show Draft Watermark + if ($object->statut == 0 && (!empty($conf->global->SHIPPING_DRAFT_WATERMARK))) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->SHIPPING_DRAFT_WATERMARK); + } + + //Prepare la suite + $pdf->SetTextColor(0, 0, 60); + $pdf->SetFont('', 'B', $default_font_size + 3); + + $w = 110; + + $posy = $this->marge_haute; + $posx = $this->page_largeur - $this->marge_droite - $w; + + $pdf->SetXY($this->marge_gauche, $posy); + + // Logo + $logo = $conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo; + if ($this->emetteur->logo) { + if (is_readable($logo)) { + $height = pdf_getHeightForLogo($logo); + $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height); // width=0 (auto) + } else { + $pdf->SetTextColor(200, 0, 0); + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound", $logo), 0, 'L'); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L'); + } + } else { + $text = $this->emetteur->name; + $pdf->MultiCell($w, 4, $outputlangs->convToOutputCharset($text), 0, 'L'); + } + + // Show barcode + 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 (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 (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); + } + + + $posx = $this->page_largeur - $w - $this->marge_droite; + $posy = $this->marge_haute; + + $pdf->SetFont('', 'B', $default_font_size + 2); + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $title = $outputlangs->transnoentities("StockTransferSheet"); + $pdf->MultiCell($w, 4, $title, '', 'R'); + + $pdf->SetFont('', '', $default_font_size + 1); + + $posy += 5; + + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("Ref")." : ".$object->ref, '', 'R'); + + // Date prévue depart + if (!empty($object->date_prevue_depart)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DatePrevueDepart")." : ".dol_print_date($object->date_prevue_depart, "day", false, $outputlangs, true), '', 'R'); + } + + // Date prévue arrivée + if (!empty($object->date_prevue_arrivee)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DatePrevueArrivee")." : ".dol_print_date($object->date_prevue_arrivee, "day", false, $outputlangs, true), '', 'R'); + } + + // Date reelle depart + if (!empty($object->date_reelle_depart)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DateReelleDepart")." : ".dol_print_date($object->date_reelle_depart, "day", false, $outputlangs, true), '', 'R'); + } + + // Date reelle arrivée + if (!empty($object->date_reelle_arrivee)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DateReelleArrivee")." : ".dol_print_date($object->date_reelle_arrivee, "day", false, $outputlangs, true), '', 'R'); + } + + if (!empty($object->thirdparty->code_client)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("CustomerCode")." : ".$outputlangs->transnoentities($object->thirdparty->code_client), '', 'R'); + } + + + $pdf->SetFont('', '', $default_font_size + 3); + $Yoff = 25; + + // Add list of linked orders + $origin = $object->origin; + $origin_id = $object->origin_id; + + // TODO move to external function + if (!empty($conf->$origin->enabled)) { // commonly $origin='commande' + $outputlangs->load('orders'); + + $classname = ucfirst($origin); + $linkedobject = new $classname($this->db); + $result = $linkedobject->fetch($origin_id); + if ($result >= 0) { + //$linkedobject->fetchObjectLinked() Get all linked object to the $linkedobject (commonly order) into $linkedobject->linkedObjects + + $pdf->SetFont('', '', $default_font_size - 2); + $text = $linkedobject->ref; + if ($linkedobject->ref_client) $text .= ' ('.$linkedobject->ref_client.')'; + $Yoff = $Yoff + 8; + $pdf->SetXY($this->page_largeur - $this->marge_droite - $w, $Yoff); + $pdf->MultiCell($w, 2, $outputlangs->transnoentities("RefOrder")." : ".$outputlangs->transnoentities($text), 0, 'R'); + $Yoff = $Yoff + 3; + $pdf->SetXY($this->page_largeur - $this->marge_droite - $w, $Yoff); + $pdf->MultiCell($w, 2, $outputlangs->transnoentities("OrderDate")." : ".dol_print_date($linkedobject->date, "day", false, $outputlangs, true), 0, 'R'); + } + } + + if ($showaddress) { + // Sender properties + $carac_emetteur = ''; + // Add internal contact of origin element if defined + $arrayidcontact = array(); + $arrayidcontact = $object->getIdContact('external', 'STFROM'); + + $usecontact = false; + if (count($arrayidcontact) > 0) { + /*$object->fetch_user(reset($arrayidcontact)); + $carac_emetteur .= ($carac_emetteur ? "\n" : '').$outputlangs->transnoentities("Name").": ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";*/ + $usecontact = true; + $result = $object->fetch_contact($arrayidcontact[0]); + } + + if ($usecontact) $thirdparty = $object->contact; + else $thirdparty = $this->emetteur; + + if (!empty($thirdparty)) $carac_emetteur_name = pdfBuildThirdpartyName($thirdparty, $outputlangs); + + if ($usecontact) $carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, $object->contact, 1, 'targetwithdetails', $object); + else $carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'source', $object); + + // Show sender + $posy = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42; + $posx = $this->marge_gauche; + if (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx = $this->page_largeur - $this->marge_droite - 80; + + $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 + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posx, $posy - 5); + $pdf->MultiCell(66, 5, $outputlangs->transnoentities("Sender").":", 0, 'L'); + $pdf->SetXY($posx, $posy); + $pdf->SetFillColor(230, 230, 230); + $pdf->MultiCell($widthrecbox, $hautcadre, "", 0, 'R', 1); + $pdf->SetTextColor(0, 0, 60); + $pdf->SetFillColor(255, 255, 255); + + // Show sender name + $pdf->SetXY($posx + 2, $posy + 3); + $pdf->SetFont('', 'B', $default_font_size); + $pdf->MultiCell($widthrecbox - 2, 4, $outputlangs->convToOutputCharset($carac_emetteur_name), 0, 'L'); + $posy = $pdf->getY(); + + // Show sender information + $pdf->SetXY($posx + 2, $posy); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->MultiCell($widthrecbox - 2, 4, $carac_emetteur, 0, 'L'); + + + // If SHIPPING contact defined, we use it + $usecontact = false; + $arrayidcontact = $object->getIdContact('external', 'STDEST'); + if (count($arrayidcontact) > 0) { + $usecontact = true; + $result = $object->fetch_contact($arrayidcontact[0]); + } + + //Recipient name + // On peut utiliser le nom de la societe du contact + if ($usecontact/* && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)*/) { + $thirdparty = $object->contact; + } else { + $thirdparty = $object->thirdparty; + } + + if (!empty($thirdparty)) $carac_client_name = pdfBuildThirdpartyName($thirdparty, $outputlangs); + + $carac_client = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, (!empty($object->contact) ? $object->contact : null), $usecontact, 'targetwithdetails', $object); + + // Show recipient + $widthrecbox = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 100; + if ($this->page_largeur < 210) $widthrecbox = 84; // To work with US executive format + $posy = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42; + $posx = $this->page_largeur - $this->marge_droite - $widthrecbox; + if (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx = $this->marge_gauche; + + // Show recipient frame + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posx + 2, $posy - 5); + $pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("Recipient").":", 0, 'L'); + $pdf->Rect($posx, $posy, $widthrecbox, $hautcadre); + + // Show recipient name + $pdf->SetXY($posx + 2, $posy + 3); + $pdf->SetFont('', 'B', $default_font_size); + $pdf->MultiCell($widthrecbox, 2, $carac_client_name, 0, 'L'); + + $posy = $pdf->getY(); + + // Show recipient information + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->SetXY($posx + 2, $posy); + $pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L'); + } + + $pdf->SetTextColor(0, 0, 0); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Show footer of page. Need this->emetteur object + * + * @param PDF $pdf PDF + * @param Object $object Object to show + * @param Translate $outputlangs Object lang for output + * @param int $hidefreetext 1=Hide free text + * @return int Return height of bottom margin including footer text + */ + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + { + // phpcs:enable + global $conf; + $showdetails = $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + 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 new file mode 100644 index 00000000000..fa49b0b6d44 --- /dev/null +++ b/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php @@ -0,0 +1,1635 @@ + + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand + * Copyright (C) 2010-2013 Juanjo Menent + * Copyright (C) 2012 Christophe Battarel + * Copyright (C) 2012 Cedric Salvador + * Copyright (C) 2015 Marcos García + * Copyright (C) 2017 Ferran Marcet + * Copyright (C) 2018-2019 Frédéric France + * 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 + * 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/commande/doc/pdf_eagle_proforma.modules.php + * \ingroup commande + * \brief File of Class to generate PDF orders with template Eagle + */ + +require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.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/pdf.lib.php'; + + +/** + * Class to generate PDF orders with template Eagle + */ +class pdf_eagle_proforma extends ModelePDFCommandes +{ + /** + * @var DoliDb Database handler + */ + public $db; + + /** + * @var string model name + */ + public $name; + + /** + * @var string model description (short text) + */ + public $description; + + /** + * @var int Save the name of generated file as the main doc when generating a doc with this template + */ + public $update_main_doc_field; + + /** + * @var string document type + */ + public $type; + + /** + * @var array Minimum version of PHP required by module. + * e.g.: PHP ≥ 5.5 = array(5, 5) + */ + public $phpmin = array(5, 5); + + /** + * Dolibarr version of the loaded document + * @var string + */ + public $version = 'dolibarr'; + + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + + /** + * Issuer + * @var Societe Object that emits + */ + public $emetteur; + + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $conf, $langs, $mysoc; + + // Translations + $langs->loadLangs(array("main", "bills", "products")); + + $this->db = $db; + $this->name = $langs->trans("StockTransferSheetProforma"); + $this->description = $langs->trans('StockTransferSheetProforma'); + $this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template + + // Dimension page + $this->type = 'pdf'; + $formatarray = pdf_getFormat(); + $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->option_logo = 1; // Display logo + $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION + $this->option_modereg = 1; // Display payment mode + $this->option_condreg = 1; // Display payment terms + $this->option_codeproduitservice = 1; // 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 = 1; // Support add of a watermark on drafts + + // Get source company + $this->emetteur = $mysoc; + if (empty($this->emetteur->country_code)) $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default, if was not defined + + // Define position of columns + $this->posxdesc = $this->marge_gauche + 1; + + + $this->tabTitleHeight = 5; // default height + + $this->tva = array(); + $this->localtax1 = array(); + $this->localtax2 = array(); + $this->atleastoneratenotnull = 0; + $this->atleastonediscount = 0; + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Function to build pdf onto disk + * + * @param Object $object Object to generate + * @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=OK, 0=KO + */ + public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0) + { + // phpcs:enable + global $user, $langs, $conf, $mysoc, $db, $hookmanager, $nblines; + + if (!is_object($outputlangs)) $outputlangs = $langs; + // For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO + if (!empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output = 'ISO-8859-1'; + + // Load translation files required by the page + $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries")); + + if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { + global $outputlangsbis; + $outputlangsbis = new Translate('', $conf); + $outputlangsbis->setDefaultLang($conf->global->PDF_USE_ALSO_LANGUAGE_CODE); + $outputlangsbis->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries")); + } + + $nblines = count($object->lines); + + $hidetop = 0; + if (!empty($conf->global->MAIN_PDF_DISABLE_COL_HEAD_TITLE)) { + $hidetop = $conf->global->MAIN_PDF_DISABLE_COL_HEAD_TITLE; + } + + // Loop on each lines to detect if there is at least one image to show + $realpatharray = array(); + $this->atleastonephoto = false; + if (!empty($conf->global->MAIN_GENERATE_ORDERS_WITH_PICTURE)) { + $objphoto = new Product($this->db); + + for ($i = 0; $i < $nblines; $i++) { + if (empty($object->lines[$i]->fk_product)) continue; + + $objphoto->fetch($object->lines[$i]->fk_product); + //var_dump($objphoto->ref);exit; + if (!empty($conf->global->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 { + $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; // default + $pdir[1] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; // alternative + } + + $arephoto = false; + foreach ($pdir as $midir) { + if (!$arephoto) { + $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 ($obj['photo_vignette']) { + $filename = $obj['photo_vignette']; + } else { + $filename = $obj['photo']; + } + } else { + $filename = $obj['photo']; + } + + $realpath = $dir.$filename; + $arephoto = true; + $this->atleastonephoto = true; + } + } + } + + if ($realpath && $arephoto) $realpatharray[$i] = $realpath; + } + } + + + + if ($conf->stocktransfer->dir_output) { + $object->fetch_thirdparty(); + + $deja_regle = 0; + + // Definition of $dir and $file + if ($object->specimen) { + $dir = $conf->stocktransfer->multidir_output[$conf->entity]; + $file = $dir."/SPECIMEN.pdf"; + } else { + $objectref = dol_sanitizeFileName($object->ref); + $dir = $conf->stocktransfer->multidir_output[$conf->entity]."/".$object->element."/".$objectref; + $file = $dir."/".$objectref."-proforma.pdf"; + } + + if (!file_exists($dir)) { + if (dol_mkdir($dir) < 0) { + $this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir); + return 0; + } + } + + if (file_exists($dir)) { + // Add pdfgeneration hook + if (!is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager = new HookManager($this->db); + } + $hookmanager->initHooks(array('pdfgeneration')); + $parameters = array('file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs); + global $action; + $reshook = $hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks + + // Create pdf instance + $pdf = pdf_getInstance($this->format); + $default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance + $pdf->SetAutoPageBreak(1, 0); + + $heightforinfotot = 40; // Height reserved to output the info and total 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) + + if (class_exists('TCPDF')) { + $pdf->setPrintHeader(false); + $pdf->setPrintFooter(false); + } + $pdf->SetFont(pdf_getPDFFont($outputlangs)); + // Set path to the background PDF File + if (!empty($conf->global->MAIN_ADD_PDF_BACKGROUND)) { + $pagecount = $pdf->setSourceFile($conf->mycompany->multidir_output[$object->entity].'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND); + $tplidx = $pdf->importPage(1); + } + + $pdf->Open(); + $pagenb = 0; + $pdf->SetDrawColor(128, 128, 128); + + $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); + $pdf->SetSubject($outputlangs->transnoentities("PdfOrderTitle")); + $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); + + $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right + + /// Does we have at least one line with discount $this->atleastonediscount + foreach ($object->lines as $line) { + if ($line->remise_percent) { + $this->atleastonediscount = true; + break; + } + } + + + // New page + $pdf->AddPage(); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + $pagenb++; + $top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->MultiCell(0, 3, ''); // Set interline to 3 + $pdf->SetTextColor(0, 0, 0); + + + $tab_top = 90 + $top_shift; + $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + + // Incoterm + if ($conf->incoterm->enabled) { + $desc_incoterms = $object->getIncotermsForPDF(); + if ($desc_incoterms) { + $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); + $nexY = $pdf->GetY(); + $height_incoterms = $nexY - $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); + + $tab_top = $nexY + 6; + } + } + + // Displays notes + $notetoshow = empty($object->note_public) ? '' : $object->note_public; + if (!empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) { + // Get first sale rep + if (is_object($object->thirdparty)) { + $salereparray = $object->thirdparty->getSalesRepresentatives($user); + $salerepobj = new User($this->db); + $salerepobj->fetch($salereparray[0]['id']); + if (!empty($salerepobj->signature)) $notetoshow = dol_concatdesc($notetoshow, $salerepobj->signature); + } + } + + // Extrafields in note + $extranote = $this->getExtrafieldsInHtml($object, $outputlangs); + if (!empty($extranote)) { + $notetoshow = dol_concatdesc($notetoshow, $extranote); + } + + $pagenb = $pdf->getPage(); + if ($notetoshow) { + $tab_width = $this->page_largeur - $this->marge_gauche - $this->marge_droite; + $pageposbeforenote = $pagenb; + + $substitutionarray = pdf_getSubstitutionArray($outputlangs, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); + $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); + $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); + + $tab_top -= 2; + + $pdf->startTransaction(); + + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1); + // Description + $pageposafternote = $pdf->getPage(); + $posyafter = $pdf->GetY(); + + if ($pageposafternote > $pageposbeforenote) { + $pdf->rollbackTransaction(true); + + // prepare pages to receive notes + while ($pagenb < $pageposafternote) { + $pdf->AddPage(); + $pagenb++; + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + if (empty($conf->global->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. + $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext); + } + + // back to start + $pdf->setPage($pageposbeforenote); + $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->writeHTMLCell(190, 3, $this->posxdesc - 1, $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 + $pdf->AddPage('', '', true); + $pagenb++; + $pageposafternote++; + $pdf->setPage($pageposafternote); + $pdf->setTopMargin($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; + } + + + // apply note frame to previous pages + $i = $pageposbeforenote; + while ($i < $pageposafternote) { + $pdf->setPage($i); + + + $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); + } else { + $height_note = $this->page_hauteur - ($tab_top + $heightforfooter); + $pdf->Rect($this->marge_gauche, $tab_top - 1, $tab_width, $height_note + 1); + } + + // Add footer + $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. + $this->_pagefoot($pdf, $object, $outputlangs, 1); + + $i++; + } + + // 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); + $height_note = $posyafter - $tab_top_newpage; + $pdf->Rect($this->marge_gauche, $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); + + + if ($posyafter > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + 20))) { + // not enough space, need to add page + $pdf->AddPage('', '', true); + $pagenb++; + $pageposafternote++; + $pdf->setPage($pageposafternote); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + + $posyafter = $tab_top_newpage; + } + } + + $tab_height = $tab_height - $height_note; + $tab_top = $posyafter + 6; + } else { + $height_note = 0; + } + + + // Use new auto column system + $this->prepareArrayColumnField($object, $outputlangs, $hidedetails, $hidedesc, $hideref); + + // tab simulation to know line height + $pdf->startTransaction(); + $this->pdfTabTitles($pdf, $tab_top, $tab_height, $outputlangs, $hidetop); + $pdf->rollbackTransaction(true); + + $nexY = $tab_top + $this->tabTitleHeight; + + // Loop on each lines + $pageposbeforeprintlines = $pdf->getPage(); + $pagenb = $pageposbeforeprintlines; + for ($i = 0; $i < $nblines; $i++) { + $curY = $nexY; + $pdf->SetFont('', '', $default_font_size - 1); // Into loop to work with multipage + $pdf->SetTextColor(0, 0, 0); + + // Define size of image if we need it + $imglinesize = array(); + if (!empty($realpatharray[$i])) $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. + $pageposbefore = $pdf->getPage(); + + + $showpricebeforepagebreak = 1; + $posYAfterImage = 0; + + 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 + $pdf->AddPage('', '', true); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + $pdf->setPage($pageposbefore + 1); + + $curY = $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)) + $showpricebeforepagebreak = 1; + else $showpricebeforepagebreak = 0; + } + + if (!empty($this->cols['photo']) && isset($imglinesize['width']) && isset($imglinesize['height'])) { + $pdf->Image($realpatharray[$i], $this->getColumnContentXStart('photo'), $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']; + } + } + + if ($this->getColumnStatus('desc')) { + $pdf->startTransaction(); + + if (method_exists($object->lines[$i], 'fetch_product')) { + $object->lines[$i]->fetch_product(); + $object->lines[$i]->label = $object->lines[$i]->product->label; + $object->lines[$i]->description = $object->lines[$i]->product->description; + $object->lines[$i]->fk_unit = $object->lines[$i]->product->fk_unit; + } + + $this->printColDescContent($pdf, $curY, 'desc', $object, $i, $outputlangs, $hideref, $hidedesc); + + $pageposafter = $pdf->getPage(); + if ($pageposafter > $pageposbefore) { // There is a pagebreak + $pdf->rollbackTransaction(true); + $pageposafter = $pageposbefore; + //print $pageposafter.'-'.$pageposbefore;exit; + $pdf->setPageOrientation('', 1, $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(); + if ($posyafter > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + $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)) $pdf->useTemplate($tplidx); + //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + $pdf->setPage($pageposafter + 1); + } + } else { + // We found a page break + // 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)) + $showpricebeforepagebreak = 1; + else $showpricebeforepagebreak = 0; + } + } else // No pagebreak + { + $pdf->commitTransaction(); + } + } + + + + $nexY = max($pdf->GetY(), $posYAfterImage); + + + $pageposafter = $pdf->getPage(); + + $pdf->setPage($pageposbefore); + $pdf->setTopMargin($this->marge_haute); + $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. + + // We suppose that a too long description is moved completely on next page + if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) { + $pdf->setPage($pageposafter); $curY = $tab_top_newpage; + } + + $pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font + + // VAT Rate + if ($this->getColumnStatus('vat')) { + $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails); + $this->printStdColumnContent($pdf, $curY, 'vat', $vat_rate); + $nexY = max($pdf->GetY(), $nexY); + } + + // Unit price before discount + if ($this->getColumnStatus('subprice')) { + $pmp = $object->lines[$i]->pmp; + $this->printStdColumnContent($pdf, $curY, 'subprice', price($pmp)); + $nexY = max($pdf->GetY(), $nexY); + } + + // Quantity + // Enough for 6 chars + if ($this->getColumnStatus('qty')) { + $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails); + $this->printStdColumnContent($pdf, $curY, 'qty', $qty); + $nexY = max($pdf->GetY(), $nexY); + } + + + // Unit + if ($this->getColumnStatus('unit')) { + $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager); + $this->printStdColumnContent($pdf, $curY, 'unit', $unit); + $nexY = max($pdf->GetY(), $nexY); + } + + // Discount on line + if ($this->getColumnStatus('discount') && $object->lines[$i]->remise_percent) { + $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails); + $this->printStdColumnContent($pdf, $curY, 'discount', $remise_percent); + $nexY = max($pdf->GetY(), $nexY); + } + + // Total HT line + if ($this->getColumnStatus('totalexcltax')) { + $pmp_qty = $pmp * $object->lines[$i]->qty; + $this->printStdColumnContent($pdf, $curY, 'totalexcltax', price($pmp_qty)); + $nexY = max($pdf->GetY(), $nexY); + } + + // Extrafields + if (!empty($object->lines[$i]->array_options)) { + foreach ($object->lines[$i]->array_options as $extrafieldColKey => $extrafieldValue) { + if ($this->getColumnStatus($extrafieldColKey)) { + $extrafieldValue = $this->getExtrafieldContent($object->lines[$i], $extrafieldColKey); + $this->printStdColumnContent($pdf, $curY, $extrafieldColKey, $extrafieldValue); + $nexY = max($pdf->GetY(), $nexY); + } + } + } + + $parameters = array( + 'object' => $object, + 'i' => $i, + 'pdf' =>& $pdf, + 'curY' =>& $curY, + 'nexY' =>& $nexY, + 'outputlangs' => $outputlangs, + 'hidedetails' => $hidedetails + ); + $reshook = $hookmanager->executeHooks('printPDFline', $parameters, $this); // Note that $object may have been modified by hook + + + // Collection of totals by value of vat in $this->tva["rate"] = 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; + $localtax2ligne = $object->lines[$i]->total_localtax2; + $localtax1_rate = $object->lines[$i]->localtax1_tx; + $localtax2_rate = $object->lines[$i]->localtax2_tx; + $localtax1_type = $object->lines[$i]->localtax1_type; + $localtax2_type = $object->lines[$i]->localtax2_type; + + if ($object->remise_percent) $tvaligne -= ($tvaligne * $object->remise_percent) / 100; + if ($object->remise_percent) $localtax1ligne -= ($localtax1ligne * $object->remise_percent) / 100; + if ($object->remise_percent) $localtax2ligne -= ($localtax2ligne * $object->remise_percent) / 100; + + $vatrate = (string) $object->lines[$i]->tva_tx; + + // 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 + $localtaxtmp_array = getLocalTaxesFromRate($vatrate, 0, $object->thirdparty, $mysoc); + $localtax1_type = $localtaxtmp_array[0]; + $localtax2_type = $localtaxtmp_array[2]; + } + + // retrieve global local tax + if ($localtax1_type && $localtax1ligne != 0) + $this->localtax1[$localtax1_type][$localtax1_rate] += $localtax1ligne; + if ($localtax2_type && $localtax2ligne != 0) + $this->localtax2[$localtax2_type][$localtax2_rate] += $localtax2ligne; + + if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate .= '*'; + if (!isset($this->tva[$vatrate])) $this->tva[$vatrate] = 0; + $this->tva[$vatrate] += $tvaligne; + + // Add line + 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))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY, $this->page_largeur - $this->marge_droite, $nexY); + $pdf->SetLineStyle(array('dash'=>0)); + } + + + // Detect if some page were added automatically and output _tableau for past pages + 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); + } else { + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code); + } + $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)) $this->_pagehead($pdf, $object, 0, $outputlangs); + } + 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); + } else { + $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code); + } + $this->_pagefoot($pdf, $object, $outputlangs, 1); + // New page + $pdf->AddPage(); + if (!empty($tplidx)) $pdf->useTemplate($tplidx); + $pagenb++; + if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + } + } + + // 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); + else $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code); + $bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; + + // Affiche zone infos + // ! No paiement information for this model ! + //$posy = $this->drawInfoTable($pdf, $object, $bottomlasttab, $outputlangs); + + // Affiche zone totaux + $posy = $this->drawTotalTable($pdf, $object, $deja_regle, $bottomlasttab, $outputlangs); + + // Affiche zone versements + /* + if ($deja_regle) + { + $posy=$this->drawPaymentsTable($pdf, $object, $posy, $outputlangs); + } + */ + + // Pied de page + $this->_pagefoot($pdf, $object, $outputlangs); + if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages(); + + $pdf->Close(); + + $pdf->Output($file, 'F'); + + // Add pdfgeneration hook + $hookmanager->initHooks(array('pdfgeneration')); + $parameters = array('file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs); + global $action; + $reshook = $hookmanager->executeHooks('afterPDFCreation', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) { + $this->error = $hookmanager->error; + $this->errors = $hookmanager->errors; + } + + if (!empty($conf->global->MAIN_UMASK)) + @chmod($file, octdec($conf->global->MAIN_UMASK)); + + $this->result = array('fullpath'=>$file); + + return 1; // No error + } else { + $this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir); + return 0; + } + } else { + $this->error = $langs->transnoentities("ErrorConstantNotDefined", "STOCKTRANSFER_OUTPUTDIR"); + return 0; + } + } + + /** + * Show payments table + * + * @param TCPDF $pdf Object PDF + * @param Object $object Object order + * @param int $posy Position y in PDF + * @param Translate $outputlangs Object langs for output + * @return int <0 if KO, >0 if OK + */ + protected function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs) + { + } + + /** + * Show miscellaneous information (payment mode, payment term, ...) + * + * @param TCPDF $pdf Object PDF + * @param Object $object Object to show + * @param int $posy Y + * @param Translate $outputlangs Langs object + * @return int Pos y + */ + protected function drawInfoTable(&$pdf, $object, $posy, $outputlangs) + { + global $conf, $mysoc; + $default_font_size = pdf_getPDFFontSize($outputlangs); + + $pdf->SetFont('', '', $default_font_size - 1); + + // If France, show VAT mention if not applicable + if ($this->emetteur->country_code == 'FR' && empty($mysoc->tva_assuj)) { + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0); + + $posy = $pdf->GetY() + 4; + } + + $posxval = 52; + + // Show payments conditions + if ($object->cond_reglement_code || $object->cond_reglement) { + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $titre = $outputlangs->transnoentities("PaymentConditions").':'; + $pdf->MultiCell(43, 4, $titre, 0, 'L'); + + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $lib_condition_paiement = $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) != ('PaymentCondition'.$object->cond_reglement_code) ? $outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code) : $outputlangs->convToOutputCharset($object->cond_reglement_doc); + $lib_condition_paiement = str_replace('\n', "\n", $lib_condition_paiement); + $pdf->MultiCell(67, 4, $lib_condition_paiement, 0, 'L'); + + $posy = $pdf->GetY() + 3; + } + + // Check a payment mode is defined + /* Not used with orders + 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(80, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0); + $pdf->SetTextColor(0,0,0); + + $posy=$pdf->GetY()+1; + } + */ + /* TODO + else if (!empty($object->availability_code)) + { + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->SetTextColor(200,0,0); + $pdf->SetFont('','B', $default_font_size - 2); + $pdf->MultiCell(80, 3, $outputlangs->transnoentities("AvailabilityPeriod").': '.,0,'L',0); + $pdf->SetTextColor(0,0,0); + + $posy=$pdf->GetY()+1; + }*/ + + // Show planed date of delivery + if (!empty($object->date_livraison)) { + $outputlangs->load("sendings"); + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $titre = $outputlangs->transnoentities("DateDeliveryPlanned").':'; + $pdf->MultiCell(80, 4, $titre, 0, 'L'); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $dlp = dol_print_date($object->date_livraison, "daytext", false, $outputlangs, true); + $pdf->MultiCell(80, 4, $dlp, 0, 'L'); + + $posy = $pdf->GetY() + 1; + } elseif ($object->availability_code || $object->availability) { // Show availability conditions + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->SetXY($this->marge_gauche, $posy); + $titre = $outputlangs->transnoentities("AvailabilityPeriod").':'; + $pdf->MultiCell(80, 4, $titre, 0, 'L'); + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posxval, $posy); + $lib_availability = $outputlangs->transnoentities("AvailabilityType".$object->availability_code) != ('AvailabilityType'.$object->availability_code) ? $outputlangs->transnoentities("AvailabilityType".$object->availability_code) : $outputlangs->convToOutputCharset(isset($object->availability) ? $object->availability : ''); + $lib_availability = str_replace('\n', "\n", $lib_availability); + $pdf->MultiCell(80, 4, $lib_availability, 0, 'L'); + + $posy = $pdf->GetY() + 1; + } + + // Show payment mode + if ($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(80, 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(80, 5, $lib_mode_reg, 0, 'L'); + + $posy = $pdf->GetY() + 2; + } + + // Show payment mode CHQ + if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') { + // Si mode reglement non force ou si force a CHQ + if (!empty($conf->global->FACTURE_CHQ_NUMBER)) { + if ($conf->global->FACTURE_CHQ_NUMBER > 0) { + $account = new Account($this->db); + $account->fetch($conf->global->FACTURE_CHQ_NUMBER); + + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->SetFont('', 'B', $default_font_size - 3); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo', $account->proprio), 0, 'L', 0); + $posy = $pdf->GetY() + 1; + + if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS)) { + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->SetFont('', '', $default_font_size - 3); + $pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($account->owner_address), 0, 'L', 0); + $posy = $pdf->GetY() + 2; + } + } + if ($conf->global->FACTURE_CHQ_NUMBER == -1) { + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->SetFont('', 'B', $default_font_size - 3); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo', $this->emetteur->name), 0, 'L', 0); + $posy = $pdf->GetY() + 1; + + if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS)) { + $pdf->SetXY($this->marge_gauche, $posy); + $pdf->SetFont('', '', $default_font_size - 3); + $pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0); + $posy = $pdf->GetY() + 2; + } + } + } + } + + // 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)) { + $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); + $account->fetch($bankid); + + $curx = $this->marge_gauche; + $cury = $posy; + + $posy = pdf_bank($pdf, $outputlangs, $curx, $cury, $account, 0, $default_font_size); + + $posy += 2; + } + } + + return $posy; + } + + + /** + * Show total to pay + * + * @param TCPDF $pdf Object PDF + * @param Facture $object Object invoice + * @param int $deja_regle Montant deja regle + * @param int $posy Position depart + * @param Translate $outputlangs Objet langs + * @return int Position pour suite + */ + protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) + { + global $conf, $mysoc; + + $default_font_size = pdf_getPDFFontSize($outputlangs); + + $tab2_top = $posy; + $tab2_hl = 4; + $pdf->SetFont('', '', $default_font_size - 1); + + // Tableau total + $col1x = 120; $col2x = 170; + if ($this->page_largeur < 210) { // To work with US executive format + $col2x -= 20; + } + $largcol2 = ($this->page_largeur - $this->marge_droite - $col2x); + $useborder = 0; + $index = 0; + + $outputlangsbis = null; + if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) && $outputlangs->defaultlang != $conf->global->PDF_USE_ALSO_LANGUAGE_CODE) { + $outputlangsbis = new Translate('', $conf); + $outputlangsbis->setDefaultLang($conf->global->PDF_USE_ALSO_LANGUAGE_CODE); + $outputlangsbis->loadLangs(array("main", "dict", "companies", "bills", "products", "propal")); + } + + // Total HT + /*$pdf->SetFillColor(255, 255, 255); + $pdf->SetXY($col1x, $tab2_top + 0); + $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("TotalHT") : ''), 0, 'L', 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 + 0); + $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 = $object->getValorisationTotale(); + + $this->atleastoneratenotnull = 0; + + // Total TTC + $index++; + $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); + $pdf->SetTextColor(0, 0, 60); + $pdf->SetFillColor(224, 224, 224); + $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("Total").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("Total", $mysoc->country_code) : ''), $useborder, 'L', 1); + + $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1); + + $pdf->SetTextColor(0, 0, 0); + + $creditnoteamount = 0; + $depositsamount = 0; + //$creditnoteamount=$object->getSumCreditNotesUsed(); + //$depositsamount=$object->getSumDepositsUsed(); + //print "x".$creditnoteamount."-".$depositsamount;exit; + $resteapayer = price2num($total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT'); + if (!empty($object->paye)) $resteapayer = 0; + + if ($deja_regle > 0) { + // Already paid + Deposits + $index++; + + $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("AlreadyPaid").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("AlreadyPaid") : ''), 0, 'L', 0); + $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle, 0, $outputlangs), 0, 'R', 0); + + $index++; + $pdf->SetTextColor(0, 0, 60); + $pdf->SetFillColor(224, 224, 224); + $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell($col2x - $col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay").(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transnoentities("AlreadyPaid") : ''), $useborder, 'L', 1); + + $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index); + $pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer, 0, $outputlangs), $useborder, 'R', 1); + + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->SetTextColor(0, 0, 0); + } + + $index++; + return ($tab2_top + ($tab2_hl * $index)); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Show table for lines + * + * @param TCPDF $pdf Object PDF + * @param string $tab_top Top position of table + * @param string $tab_height Height of table (rectangle) + * @param int $nexY Y (not used) + * @param Translate $outputlangs Langs object + * @param int $hidetop 1=Hide top bar of array and title, 0=Hide nothing, -1=Hide only title + * @param int $hidebottom Hide bottom bar of array + * @param string $currency Currency code + * @return void + */ + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + { + global $conf; + + // Force to disable hidetop and hidebottom + $hidebottom = 0; + if ($hidetop) $hidetop = -1; + + $currency = !empty($currency) ? $currency : $conf->currency; + $default_font_size = pdf_getPDFFontSize($outputlangs); + + // Amount in (at tab_top - 1) + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + + if (empty($hidetop)) { + $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); + + //$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR='230,230,230'; + if (!empty($conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)) { + $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_droite - $this->marge_gauche, $this->tabTitleHeight, 'F', null, explode(',', $conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)); + } + } + + $pdf->SetDrawColor(128, 128, 128); + $pdf->SetFont('', '', $default_font_size - 1); + + // Output Rect + $this->printRect($pdf, $this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect takes a length in 3rd parameter and 4th parameter + + + $this->pdfTabTitles($pdf, $tab_top, $tab_height, $outputlangs, $hidetop); + + if (empty($hidetop)) { + $pdf->line($this->marge_gauche, $tab_top + $this->tabTitleHeight, $this->page_largeur - $this->marge_droite, $tab_top + $this->tabTitleHeight); // line takes a position y in 2nd parameter and 4th parameter + } + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Show top header of page. + * + * @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 + * @param string $titlekey Translation key to show as title of document + * @return int Return topshift value + */ + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "StockTransferSheetProforma") + { + // phpcs:enable + global $conf, $langs, $hookmanager; + + // Load traductions files required by page + $outputlangs->loadLangs(array("main", "bills", "propal", "orders", "companies")); + + $default_font_size = pdf_getPDFFontSize($outputlangs); + + 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); + } + + $pdf->SetTextColor(0, 0, 60); + $pdf->SetFont('', 'B', $default_font_size + 3); + + $posy = $this->marge_haute; + $posx = $this->page_largeur - $this->marge_droite - 100; + + $pdf->SetXY($this->marge_gauche, $posy); + + // Logo + if (empty($conf->global->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)) { + $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) + } else { + $pdf->SetTextColor(200, 0, 0); + $pdf->SetFont('', 'B', $default_font_size - 2); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound", $logo), 0, 'L'); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L'); + } + } else { + $text = $this->emetteur->name; + $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L'); + } + } + + $pdf->SetFont('', 'B', $default_font_size + 3); + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $title = $outputlangs->transnoentities($titlekey); + $pdf->MultiCell(100, 3, $title, '', 'R'); + + $pdf->SetFont('', 'B', $default_font_size); + + $posy += 5; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : ".$outputlangs->convToOutputCharset($object->ref), '', 'R'); + + $posy += 1; + $pdf->SetFont('', '', $default_font_size - 1); + + // Date prévue depart + if (!empty($object->date_prevue_depart)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DatePrevueDepart")." : ".dol_print_date($object->date_prevue_depart, "day", false, $outputlangs, true), '', 'R'); + } + + // Date prévue arrivée + if (!empty($object->date_prevue_arrivee)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DatePrevueArrivee")." : ".dol_print_date($object->date_prevue_arrivee, "day", false, $outputlangs, true), '', 'R'); + } + + // Date reelle depart + if (!empty($object->date_reelle_depart)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DateReelleDepart")." : ".dol_print_date($object->date_reelle_depart, "day", false, $outputlangs, true), '', 'R'); + } + + // Date reelle arrivée + if (!empty($object->date_reelle_arrivee)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 4, $outputlangs->transnoentities("DateReelleArrivee")." : ".dol_print_date($object->date_reelle_arrivee, "day", false, $outputlangs, true), '', 'R'); + } + + if ($object->ref_client) { + $posy += 5; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : ".$outputlangs->convToOutputCharset($object->ref_client), '', 'R'); + } + + if (!empty($conf->global->PDF_SHOW_PROJECT_TITLE)) { + $object->fetch_projet(); + if (!empty($object->project->ref)) { + $posy += 3; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("Project")." : ".(empty($object->project->title) ? '' : $object->projet->title), '', 'R'); + } + } + + if (!empty($conf->global->PDF_SHOW_PROJECT)) { + $object->fetch_projet(); + if (!empty($object->project->ref)) { + $posy += 3; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefProject")." : ".(empty($object->project->ref) ? '' : $object->projet->ref), '', 'R'); + } + } + + if (!empty($conf->global->DOC_SHOW_CUSTOMER_CODE) && !empty($object->thirdparty->code_client)) { + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : ".$outputlangs->transnoentities($object->thirdparty->code_client), '', 'R'); + } + + // Get contact + if (!empty($conf->global->DOC_SHOW_FIRST_SALES_REP)) { + $arrayidcontact = $object->getIdContact('internal', 'SALESREPFOLL'); + if (count($arrayidcontact) > 0) { + $usertmp = new User($this->db); + $usertmp->fetch($arrayidcontact[0]); + $posy += 4; + $pdf->SetXY($posx, $posy); + $pdf->SetTextColor(0, 0, 60); + $pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R'); + } + } + + $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) { + // Sender properties + $carac_emetteur = ''; + // Add internal contact of origin element if defined + $arrayidcontact = array(); + $arrayidcontact = $object->getIdContact('external', 'STFROM'); + + $usecontact = false; + if (count($arrayidcontact) > 0) { + /*$object->fetch_user(reset($arrayidcontact)); + $carac_emetteur .= ($carac_emetteur ? "\n" : '').$outputlangs->transnoentities("Name").": ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";*/ + $usecontact = true; + $result = $object->fetch_contact($arrayidcontact[0]); + } + + if ($usecontact) $thirdparty = $object->contact; + else $thirdparty = $this->emetteur; + + if (!empty($thirdparty)) $carac_emetteur_name = pdfBuildThirdpartyName($thirdparty, $outputlangs); + + if ($usecontact) $carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, $object->contact, 1, 'targetwithdetails', $object); + else $carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'source', $object); + + // Show sender + $posy = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42; + $posx = $this->marge_gauche; + if (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx = $this->page_largeur - $this->marge_droite - 80; + + $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 + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posx, $posy - 5); + $pdf->MultiCell(66, 5, $outputlangs->transnoentities("Sender").":", 0, 'L'); + $pdf->SetXY($posx, $posy); + $pdf->SetFillColor(230, 230, 230); + $pdf->MultiCell($widthrecbox, $hautcadre, "", 0, 'R', 1); + $pdf->SetTextColor(0, 0, 60); + $pdf->SetFillColor(255, 255, 255); + + // Show sender name + $pdf->SetXY($posx + 2, $posy + 3); + $pdf->SetFont('', 'B', $default_font_size); + $pdf->MultiCell($widthrecbox - 2, 4, $outputlangs->convToOutputCharset($carac_emetteur_name), 0, 'L'); + $posy = $pdf->getY(); + + // Show sender information + $pdf->SetXY($posx + 2, $posy); + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->MultiCell($widthrecbox - 2, 4, $carac_emetteur, 0, 'L'); + + + // If SHIPPING contact defined, we use it + $usecontact = false; + $arrayidcontact = $object->getIdContact('external', 'STDEST'); + if (count($arrayidcontact) > 0) { + $usecontact = true; + $result = $object->fetch_contact($arrayidcontact[0]); + } + + //Recipient name + // On peut utiliser le nom de la societe du contact + if ($usecontact/* && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)*/) { + $thirdparty = $object->contact; + } else { + $thirdparty = $object->thirdparty; + } + + if (!empty($thirdparty)) $carac_client_name = pdfBuildThirdpartyName($thirdparty, $outputlangs); + + $carac_client = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, (!empty($object->contact) ? $object->contact : null), $usecontact, 'targetwithdetails', $object); + + // Show recipient + $widthrecbox = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 100; + if ($this->page_largeur < 210) $widthrecbox = 84; // To work with US executive format + $posy = !empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42; + $posx = $this->page_largeur - $this->marge_droite - $widthrecbox; + if (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx = $this->marge_gauche; + + // Show recipient frame + $pdf->SetTextColor(0, 0, 0); + $pdf->SetFont('', '', $default_font_size - 2); + $pdf->SetXY($posx + 2, $posy - 5); + $pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("Recipient").":", 0, 'L'); + $pdf->Rect($posx, $posy, $widthrecbox, $hautcadre); + + // Show recipient name + $pdf->SetXY($posx + 2, $posy + 3); + $pdf->SetFont('', 'B', $default_font_size); + $pdf->MultiCell($widthrecbox, 2, $carac_client_name, 0, 'L'); + + $posy = $pdf->getY(); + + // Show recipient information + $pdf->SetFont('', '', $default_font_size - 1); + $pdf->SetXY($posx + 2, $posy); + $pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L'); + } + + $pdf->SetTextColor(0, 0, 0); + return $top_shift; + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore + /** + * Show footer of page. Need this->emetteur object + * + * @param TCPDF $pdf PDF + * @param Object $object Object to show + * @param Translate $outputlangs Object lang for output + * @param int $hidefreetext 1=Hide free text + * @return int Return height of bottom margin including footer text + */ + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + { + // phpcs:enable + global $conf; + $showdetails = $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; + return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); + } + + + + /** + * Define Array Column Field + * + * @param object $object common object + * @param Translate $outputlangs langs + * @param int $hidedetails Do not show line details + * @param int $hidedesc Do not show desc + * @param int $hideref Do not show ref + * @return null + */ + public function defineColumnField($object, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0) + { + global $conf, $hookmanager; + + // Default field style for content + $this->defaultContentsFieldsStyle = array( + 'align' => 'R', // R,C,L + 'padding' => array(1, 0.5, 1, 0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ); + + // Default field style for content + $this->defaultTitlesFieldsStyle = array( + 'align' => 'C', // R,C,L + 'padding' => array(0.5, 0, 0.5, 0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ); + + /* + * For exemple + $this->cols['theColKey'] = array( + 'rank' => $rank, // int : use for ordering columns + 'width' => 20, // the column width in mm + 'title' => array( + 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label + 'label' => ' ', // the final label : used fore final generated text + 'align' => 'L', // text alignement : R,C,L + 'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ), + 'content' => array( + 'align' => 'L', // text alignement : R,C,L + 'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ), + ); + */ + + $rank = 0; // do not use negative rank + $this->cols['desc'] = array( + 'rank' => $rank, + 'width' => false, // only for desc + 'status' => true, + 'title' => array( + 'textkey' => 'Designation', // use lang key is usefull in somme case with module + 'align' => 'L', + // 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label + // 'label' => ' ', // the final label + 'padding' => array(0.5, 1, 0.5, 1.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ), + 'content' => array( + 'align' => 'L', + 'padding' => array(1, 0.5, 1, 1.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ), + ); + + $rank = $rank + 10; + $this->cols['photo'] = array( + 'rank' => $rank, + 'width' => (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH) ? 20 : $conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH), // in mm + 'status' => false, + 'title' => array( + 'textkey' => 'Photo', + 'label' => ' ' + ), + 'content' => array( + 'padding' => array(0, 0, 0, 0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left + ), + 'border-left' => false, // remove left line separator + ); + + if (!empty($conf->global->MAIN_GENERATE_ORDERS_WITH_PICTURE)) { + $this->cols['photo']['status'] = true; + } + + + $rank = $rank + 10; + $this->cols['vat'] = array( + 'rank' => $rank, + 'status' => false, + 'width' => 16, // in mm + 'title' => array( + 'textkey' => 'VAT' + ), + 'border-left' => true, // add left line separator + ); + + /*if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) && empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN)) + { + $this->cols['vat']['status'] = true; + }*/ + + $rank = $rank + 10; + $this->cols['subprice'] = array( + 'rank' => $rank, + 'width' => 19, // in mm + 'status' => true, + 'title' => array( + 'textkey' => 'PMPValueShort' + ), + 'border-left' => true, // add left line separator + ); + + // Adapt dynamically the width of subprice, if text is too long. + $tmpwidth = 0; + $nblines = count($object->lines); + for ($i = 0; $i < $nblines; $i++) { + $tmpwidth2 = dol_strlen(dol_string_nohtmltag(pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails))); + $tmpwidth = max($tmpwidth, $tmpwidth2); + } + if ($tmpwidth > 10) { + $this->cols['subprice']['width'] += (2 * ($tmpwidth - 10)); + } + + $rank = $rank + 10; + $this->cols['qty'] = array( + 'rank' => $rank, + 'width' => 16, // in mm + 'status' => true, + 'title' => array( + 'textkey' => 'Qty' + ), + 'border-left' => true, // add left line separator + ); + + $rank = $rank + 10; + $this->cols['unit'] = array( + 'rank' => $rank, + 'width' => 11, // in mm + 'status' => false, + 'title' => array( + 'textkey' => 'Unit' + ), + 'border-left' => true, // add left line separator + ); + if ($conf->global->PRODUCT_USE_UNITS) { + $this->cols['unit']['status'] = true; + } + + $rank = $rank + 10; + $this->cols['discount'] = array( + 'rank' => $rank, + 'width' => 13, // in mm + 'status' => false, + 'title' => array( + 'textkey' => 'ReductionShort' + ), + 'border-left' => true, // add left line separator + ); + if ($this->atleastonediscount) { + $this->cols['discount']['status'] = true; + } + + $rank = $rank + 1000; // add a big offset to be sure is the last col because default extrafield rank is 100 + $this->cols['totalexcltax'] = array( + 'rank' => $rank, + 'width' => 26, // in mm + 'status' => true, + 'title' => array( + 'textkey' => 'PMPValue' + ), + 'border-left' => true, // add left line separator + ); + + // Add extrafields cols + if (!empty($object->lines)) { + $line = reset($object->lines); + $this->defineColumnExtrafield($line, $outputlangs, $hidedetails); + } + + $parameters = array( + 'object' => $object, + 'outputlangs' => $outputlangs, + 'hidedetails' => $hidedetails, + 'hidedesc' => $hidedesc, + 'hideref' => $hideref + ); + + $reshook = $hookmanager->executeHooks('defineColumnField', $parameters, $this); // Note that $object may have been modified by hook + if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + } elseif (empty($reshook)) { + $this->cols = array_replace($this->cols, $hookmanager->resArray); // array_replace is used to preserve keys + } else { + $this->cols = $hookmanager->resArray; + } + } +} diff --git a/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php b/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php new file mode 100644 index 00000000000..dd29e48d0b8 --- /dev/null +++ b/htdocs/core/modules/stocktransfer/mod_stocktransfer_advanced.php @@ -0,0 +1,149 @@ + + * 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 + * 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 + * 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/stocktransfer/mod_stocktransfer_advanced.php + * \ingroup stocktransfer + * \brief File containing class for advanced numbering model of StockTransfer + */ + +require_once DOL_DOCUMENT_ROOT . '/core/modules/stocktransfer/modules_stocktransfer.php'; + + +/** + * Class to manage customer Bom numbering rules advanced + */ +class mod_stocktransfer_advanced extends ModeleNumRefStockTransfer +{ + /** + * 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 = 'got2be'; + + + /** + * Returns the description of the numbering model + * + * @return string Texte descripif + */ + 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("StockTransfer"), $langs->transnoentities("StockTransfer")); + $tooltip .= $langs->trans("GenericMaskCodes2"); + $tooltip .= $langs->trans("GenericMaskCodes3"); + $tooltip .= $langs->trans("GenericMaskCodes4a", $langs->transnoentities("StockTransfer"), $langs->transnoentities("StockTransfer")); + $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, $db, $langs, $mysoc; + + $object = new StockTransfer($db); + $object->initAsSpecimen(); + + /*$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;*/ + + 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('STOCKTRANSFER_STOCKTRANSFER_ADVANCED_MASK'); + + if (!$mask) { + $this->error = 'NotConfigured'; + return 0; + } + + $date = $object->date; + + $numFinal = get_next_value($db, $mask, 'stocktransfer_stocktransfer', 'ref', '', null, $date); + + return $numFinal; + } +} diff --git a/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php b/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php new file mode 100644 index 00000000000..6a6c7c556e6 --- /dev/null +++ b/htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php @@ -0,0 +1,154 @@ + + * Copyright (C) 2005-2009 Regis Houssin + * 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 + * 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/stocktransfer/mod_stocktransfer_standard.php + * \ingroup stocktransfer + * \brief File of class to manage StockTransfer numbering rules standard + */ +require_once DOL_DOCUMENT_ROOT . '/core/modules/stocktransfer/modules_stocktransfer.php'; + + +/** + * Class to manage customer order numbering rules standard + */ +class mod_stocktransfer_standard extends ModeleNumRefStockTransfer +{ + /** + * Dolibarr version of the loaded document + * @var string + */ + public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr' + + public $prefix = 'ST'; + + /** + * @var string Error code (or message) + */ + public $error = ''; + + /** + * @var string name + */ + public $name = 'standard'; + + + /** + * Return description of numbering module + * + * @return string Text with description + */ + public function info() + { + global $langs; + return $langs->trans("SimpleNumRefModelDesc", $this->prefix); + } + + + /** + * Return an example of numbering + * + * @return string Example + */ + public function getExample() + { + return $this->prefix."0501-0001"; + } + + + /** + * Checks if the numbers already in the database do not + * cause conflicts that would prevent this numbering working. + * + * @param Object $object Object we need next value for + * @return boolean false if conflict, true if ok + */ + public function canBeActivated($object) + { + 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."stocktransfer_stocktransfer"; + $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; + if ($object->ismultientitymanaged == 1) { + $sql .= " AND entity = ".$conf->entity; + } elseif ($object->ismultientitymanaged == 2) { + // TODO + } + + $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)) { + $langs->load("errors"); + $this->error = $langs->trans('ErrorNumRefModel', $max); + return false; + } + + return true; + } + + /** + * 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; + + // 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."stocktransfer_stocktransfer"; + $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; + if ($object->ismultientitymanaged == 1) { + $sql .= " AND entity = ".$conf->entity; + } elseif ($object->ismultientitymanaged == 2) { + // TODO + } + + $resql = $db->query($sql); + if ($resql) { + $obj = $db->fetch_object($resql); + if ($obj) $max = intval($obj->max); + else $max = 0; + } else { + dol_syslog("mod_stocktransfer_standard::getNextValue", LOG_DEBUG); + return -1; + } + + //$date=time(); + $date = $object->date_creation; + $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_stocktransfer_standard::getNextValue return ".$this->prefix.$yymm."-".$num); + return $this->prefix.$yymm."-".$num; + } +} diff --git a/htdocs/core/modules/stocktransfer/modules_stocktransfer.php b/htdocs/core/modules/stocktransfer/modules_stocktransfer.php new file mode 100644 index 00000000000..3da0a0ae644 --- /dev/null +++ b/htdocs/core/modules/stocktransfer/modules_stocktransfer.php @@ -0,0 +1,151 @@ + + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2004 Eric Seigne + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2006 Andre Cianfarani + * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2014 Marcos García + * 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 + * 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/stocktransfer/modules_stocktransfer.php + * \ingroup stocktransfer + * \brief File that contains parent class for stocktransfers document models and parent class for stocktransfers numbering models + */ + +require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // required for use by classes that inherit + + +/** + * Parent class for documents models + */ +abstract class ModelePDFStockTransfer extends CommonDocGenerator +{ + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return list of active generation modules + * + * @param DoliDB $db Database handler + * @param integer $maxfilenamelength Max length of value to show + * @return array List of templates + */ + public static function liste_modeles($db, $maxfilenamelength = 0) + { + // phpcs:enable + global $conf; + + $type = 'stocktransfer'; + $list = array(); + + include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + $list = getListOfModels($db, $type, $maxfilenamelength); + + return $list; + } +} + + + +/** + * Parent class to manage numbering of StockTransfer + */ +abstract class ModeleNumRefStockTransfer +{ + /** + * @var string Error code (or message) + */ + public $error = ''; + + /** + * Return if a module can be used or not + * + * @return boolean true if module can be used + */ + public function isEnabled() + { + return true; + } + + /** + * Returns the default description of the numbering template + * + * @return string Texte descripif + */ + public function info() + { + global $langs; + $langs->load("stocktransfer@stocktransfer"); + return $langs->trans("NoDescription"); + } + + /** + * Returns an example of numbering + * + * @return string Example + */ + public function getExample() + { + global $langs; + $langs->load("stocktransfer@stocktransfer"); + return $langs->trans("NoExample"); + } + + /** + * Checks if the numbers already in the database do not + * cause conflicts that would prevent this numbering working. + * + * @param Object $object Object we need next value for + * @return boolean false if conflict, true if ok + */ + public function canBeActivated($object) + { + return true; + } + + /** + * Returns next assigned value + * + * @param Object $object Object we need next value for + * @return string Valeur + */ + public function getNextValue($object) + { + global $langs; + return $langs->trans("NotAvailable"); + } + + /** + * Returns version of numbering module + * + * @return string Valeur + */ + public function getVersion() + { + global $langs; + $langs->load("admin"); + + if ($this->version == 'development') return $langs->trans("VersionDevelopment"); + if ($this->version == 'experimental') return $langs->trans("VersionExperimental"); + if ($this->version == 'dolibarr') return DOL_VERSION; + if ($this->version) return $this->version; + return $langs->trans("NotAvailable"); + } +} 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 23a38b961ec..39a9aab7e78 100644 --- a/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php @@ -150,7 +150,6 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // Display product-service code $this->option_multilang = 1; // Available in several languages // Define column position @@ -168,7 +167,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $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; @@ -233,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) { @@ -500,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; @@ -684,14 +683,14 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $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) { @@ -741,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) { @@ -766,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) { @@ -803,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)) { @@ -967,13 +966,14 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * Show payments table * - * @param TCPDF $pdf Object PDF - * @param Object $object Object to show - * @param int $posy Position y in PDF - * @param Translate $outputlangs Object langs for output - * @return int <0 if KO, >0 if OK + * @param TCPDF $pdf Object PDF + * @param Object $object Object to show + * @param int $posy Position y in PDF + * @param Translate $outputlangs Object langs for output + * @param int $heightforfooter Height for footer + * @return int <0 if KO, >0 if OK */ - protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs, $heightforfooter = 0) { // phpcs:enable global $conf; @@ -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); 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_order/doc/doc_generic_supplier_order_odt.modules.php b/htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php index 68caf286682..4e577795ceb 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 @@ -90,8 +90,6 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders $this->option_tva = 0; // Manage the vat option COMMANDE_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 @@ -264,7 +262,7 @@ class doc_generic_supplier_order_odt extends ModelePDFSuppliersOrders $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -273,11 +271,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; @@ -285,8 +283,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 2be12805685..00d1e2e28e7 100644 --- a/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php +++ b/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php @@ -152,7 +152,6 @@ class pdf_cornas extends ModelePDFSuppliersOrders $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 @@ -694,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; @@ -778,6 +777,9 @@ class pdf_cornas extends ModelePDFSuppliersOrders 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) { if ($pagenb == $pageposafter) { @@ -973,7 +975,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, 'R', 1); @@ -1029,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) { @@ -1059,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) { @@ -1097,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); @@ -1239,7 +1241,7 @@ 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 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) { pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); }*/ 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 11ae04993eb..410a631fa62 100644 --- a/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php @@ -152,7 +152,6 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // 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 @@ -574,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; @@ -660,6 +659,9 @@ class pdf_muscadet extends ModelePDFSuppliersOrders 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) { if ($pagenb == 1) { @@ -854,7 +856,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetXY($col1x, $tab2_top + 0); $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); + $total_ht = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (!empty($object->remise) ? $object->remise : 0)), 0, 'R', 1); @@ -910,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) { @@ -940,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) { @@ -978,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); @@ -1148,7 +1150,7 @@ 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 && (!empty($conf->global->COMMANDE_DRAFT_WATERMARK)) ) { pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK); }*/ 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..8f67f28b42d 100644 --- a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php +++ b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php @@ -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).'   
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '; @@ -282,7 +281,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup $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); @@ -291,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; @@ -303,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/workstation/mod_workstation_advanced.php b/htdocs/core/modules/workstation/mod_workstation_advanced.php index 6611f8d926e..125aa0f7c53 100644 --- a/htdocs/core/modules/workstation/mod_workstation_advanced.php +++ b/htdocs/core/modules/workstation/mod_workstation_advanced.php @@ -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/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..6797f12593f 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'; @@ -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; @@ -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'); @@ -505,8 +507,8 @@ 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 ''; @@ -564,12 +566,12 @@ if (!empty($conf->use_javascript_ajax)) { print '
    '.$langs->trans("NewSizeAfterCropping").': - - - - - - +   +   +   +   +   +  
    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 9b46fba6c67..97748290bd7 100644 --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php @@ -145,9 +145,9 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    - + - + -multicompany->enabled)) { ?> + diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php index c055dd1d3b5..7814560be9b 100644 --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php @@ -191,16 +191,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 @@ -295,7 +296,7 @@ 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..285b7eb30a4 100644 --- a/htdocs/core/tpl/admin_extrafields_view.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_view.tpl.php @@ -38,7 +38,7 @@ $langs->load("modulebuilder"); '.$langs->trans("DefineHereComplementaryAttributes", $textobject).'
    '."\n"; +print ''.$langs->trans("DefineHereComplementaryAttributes", empty($textobject) ? '': $textobject).'
    '."\n"; print '
    '; // Load $extrafields->attributes @@ -65,7 +65,7 @@ print ''; print ''; print ''; print ''; -if (!empty($conf->multicompany->enabled)) { +if (isModEnabled('multicompany')) { print ''; } print ''; @@ -113,7 +113,7 @@ if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafiel print '\n"; // Summable print '\n"; - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { print ''."\n"; } -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { // Customer Categories print '
    trans("LabelOrTranslationKey"); ?>
    trans("LabelOrTranslationKey"); ?>
    trans("AttributeCode"); ?> (trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)
    trans("AttributeCode"); ?> (trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)
    trans("Type"); ?> selectarray('type', $type2label, GETPOST('type', 'alpha'), 0, 0, 0, '', 0, 0, 0, '', '', 1); ?> @@ -205,7 +205,7 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php
    Contact:con
    trans("Totalizable"); ?>>
    textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?>
    trans("AllEntities"); ?>>
    textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?>
    trans("AllEntities"); ?>>
    '.$langs->trans("AlwaysEditable").''.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).''.$form->textwithpicto($langs->trans("DisplayOnPdf"), $langs->trans("DisplayOnPdfDesc")).''.$form->textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")).''.$langs->trans("Entity").' '.dol_escape_htmltag($extrafields->attributes[$elementtype]['printable'][$key])."'.yn($extrafields->attributes[$elementtype]['totalizable'][$key])."'; if (empty($extrafields->attributes[$elementtype]['entityid'][$key])) { print $langs->trans("All"); @@ -139,7 +139,7 @@ if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafiel } } else { $colspan = 14; - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { $colspan++; } diff --git a/htdocs/core/tpl/advtarget.tpl.php b/htdocs/core/tpl/advtarget.tpl.php index 86292ec0ff4..07595012466 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'; } @@ -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/ajaxrow.tpl.php b/htdocs/core/tpl/ajaxrow.tpl.php index 61428170f50..0be260194c2 100644 --- a/htdocs/core/tpl/ajaxrow.tpl.php +++ b/htdocs/core/tpl/ajaxrow.tpl.php @@ -43,7 +43,6 @@ $forcereloadpage = empty($conf->global->MAIN_FORCE_RELOAD_PAGE) ? 0 : 1; $tagidfortablednd = (empty($tagidfortablednd) ? 'tablelines' : $tagidfortablednd); $filepath = (empty($filepath) ? '' : $filepath); - if (GETPOST('action', 'aZ09') != 'editline' && $nboflines > 1 && $conf->browser->layout != 'phone') { ?> '; + $outputShowOutputFields.= ''; + + + + $formquestion[] = array( + 'type' => 'other', + 'value' => $outputShowOutputFields + ); + + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmEditExtrafield"), $langs->trans("ConfirmEditExtrafieldQuestion", count($toselect)), "confirm_edit_value_extrafields", $formquestion, 1, 0, 200, 500, 1); + } else { + setEventMessage($langs->trans("noExtrafields")); + } +} + if ($massaction == 'preenable') { print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassEnabling"), $langs->trans("ConfirmMassEnablingQuestion", count($toselect)), "enable", null, 'yes', 0, 200, 500, 1); } diff --git a/htdocs/core/tpl/notes.tpl.php b/htdocs/core/tpl/notes.tpl.php index e0f0c5d9142..dfa9b0e4591 100644 --- a/htdocs/core/tpl/notes.tpl.php +++ b/htdocs/core/tpl/notes.tpl.php @@ -91,20 +91,22 @@ if ($module == 'propal') { $permission = $user->rights->produit->creer; } elseif ($module == 'ecmfiles') { $permission = $user->rights->ecm->setup; +} elseif ($module == 'user') { + $permission = $user->hasRight("user", "self", "write"); } //else dol_print_error('','Bad value '.$module.' for param module'); -if (!empty($conf->fckeditor->enabled) && !empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) { +if (isModEnabled('fckeditor') && !empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) { $typeofdata = 'ckeditor:dolibarr_notes:100%:200::1:12:95%:0'; // Rem: This var is for all notes, not only thirdparties note. } else { $typeofdata = 'textarea:12:95%'; } -if (!empty($conf->fckeditor->enabled) && !empty($conf->global->FCKEDITOR_ENABLE_NOTE_PUBLIC)) { +if (isModEnabled('fckeditor') && !empty($conf->global->FCKEDITOR_ENABLE_NOTE_PUBLIC)) { $typeofdatapub = 'ckeditor:dolibarr_notes:100%:200::1:12:95%:0'; // Rem: This var is for all notes, not only thirdparties note. } else { $typeofdatapub = 'textarea:12:95%'; } -if (!empty($conf->fckeditor->enabled) && !empty($conf->global->FCKEDITOR_ENABLE_NOTE_PRIVATE)) { +if (isModEnabled('fckeditor') && !empty($conf->global->FCKEDITOR_ENABLE_NOTE_PRIVATE)) { $typeofdatapriv = 'ckeditor:dolibarr_notes:100%:200::1:12:95%:0'; // Rem: This var is for all notes, not only thirdparties note. } else { $typeofdatapriv = 'textarea:12:95%'; diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index f009b80301e..81a1692c6a3 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -48,6 +48,7 @@ if (!isset($dateSelector)) { global $dateSelector; // Take global var only if not already defined into function calling (for example formAddObjectLine) } global $forceall, $forcetoshowtitlelines, $senderissupplier, $inputalsopricewithtax; + if (!isset($dateSelector)) { $dateSelector = 1; // For backward compatibility } elseif (empty($dateSelector)) { @@ -64,13 +65,13 @@ if (empty($inputalsopricewithtax)) { } // Define colspan for the button 'Add' $colspan = 3; // Columns: total ht + col edit + col delete -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { +if (isModEnabled("multicurrency") && $this->multicurrency_code != $conf->currency) { $colspan++; //Add column for Total (currency) if required } if (in_array($object->element, array('propal', 'commande', 'order', 'facture', 'facturerec', 'invoice', 'supplier_proposal', 'order_supplier', 'invoice_supplier', 'invoice_supplier_rec'))) { $colspan++; // With this, there is a column move button } -if (!empty($conf->asset->enabled) && $object->element == 'invoice_supplier') { +if (isModEnabled('asset') && $object->element == 'invoice_supplier') { $colspan++; } @@ -118,7 +119,7 @@ if ($nolinesbefore) { ?>
    trans('VAT'); ?> trans('PriceUHT'); ?>trans('PriceUHTCurrency'); ?> @@ -441,7 +446,7 @@ if ($nolinesbefore) { ?> - product->enabled) || !empty($conf->service->enabled)) { ?> + @@ -466,7 +471,7 @@ if ($nolinesbefore) {
    - product->enabled) || !empty($conf->service->enabled)) { ?> + @@ -325,12 +325,12 @@ $coldisplay++; - ">
    - "> + ">
    + ">
    '; +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)) { @@ -85,15 +85,15 @@ if (in_array($object->element, array('propal', 'commande', 'facture')) && $objec print ''.$langs->trans('PriceUHT').''.$langs->trans('PriceUHT').''.$langs->trans('PriceUHTCurrency', $this->multicurrency_code).''.$langs->trans('PriceUTTC').''.$langs->trans('PriceUTTC').''.$langs->trans('ReductionShort').''; +print $langs->trans('ReductionShort'); + +if (in_array($object->element, array('propal', 'commande', 'facture')) && $object->status == $object::STATUS_DRAFT) { + global $mysoc; + + if (empty($disableedit)) { + print 'id.'">'.img_edit($langs->trans("UpdateForAllLines"), 0, 'class="clickvatforalllines opacitymedium paddingleft cursorpointer"').''; + } + //print ''; + if (GETPOST('mode', 'aZ09') == 'remiseforalllines') { + print '
    '; + print ''; + print ''; + print '
    '; + } +} +print '
    '.$langs->trans('TotalHTShort').''.$langs->trans('TotalHTShortCurrency', $this->multicurrency_code).''.$langs->trans('TotalTTCShort').'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 @@ -378,7 +378,7 @@ if ($line->special_code == 3) { ?> print ''; } print ''.price($sign * $line->multicurrency_total_ht).''; $coldisplay++; if (!empty($product_static->accountancy_code_buy) || 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 06d93e5ea5f..611c556d98c 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,18 +43,18 @@ 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 ''; } print '
    '; } -if (!empty($conf->facture->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 (!empty($conf->facture->enabled)) { 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,10 +109,10 @@ 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 ''; } @@ -120,7 +120,7 @@ if (!empty($conf->adherent->enabled)) { } if (!empty($conf->don->enabled)) { 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 +363,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronClassFile').""; - print ' '; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronClassFileHelp"), 1, 'help'); @@ -371,7 +372,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 +381,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronMethod').""; - print ' '; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronMethodHelp"), 1, 'help'); @@ -389,7 +390,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 +399,7 @@ if (($action == "create") || ($action == "edit")) { print '
    '; print $langs->trans('CronCommand').""; - print "command."\" /> "; + print ' '; print ""; print $form->textwithpicto('', $langs->trans("CronCommandHelp"), 1, 'help'); @@ -471,7 +472,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, '', "cronform"); } print ""; @@ -483,7 +484,7 @@ if (($action == "create") || ($action == "edit")) { if (!empty($object->dateend)) { print $form->selectDate($object->dateend, 'dateend', 1, 1, '', "cronform"); } else { - print $form->selectDate(-1, 'dateend', 1, 1, 1, "cronform"); + print $form->selectDate(-1, 'dateend', 1, 1, '', "cronform"); } print ""; @@ -514,7 +515,7 @@ if (($action == "create") || ($action == "edit")) { print "
    '; + print '
    '; print $langs->trans('CronDtNextLaunch'); print ' ('.$langs->trans('CronFrom').')'; print ""; @@ -545,22 +546,32 @@ 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($labeltoshow); $morehtmlref .= '
    '; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); // box add_jobs_box print '
    '; + print '
    '; + print '
    '; print ''; - print '"; print ""; + print "";*/ - print ""; @@ -602,14 +613,14 @@ if (($action == "create") || ($action == "edit")) { } print ""; - if (!empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { print '"; } @@ -617,10 +628,8 @@ if (($action == "create") || ($action == "edit")) { print '
    '; + /*print '
    '; print $langs->trans('CronLabel')."".$langs->trans($object->label); - print "
    "; + print '
    '; print $langs->trans('CronType').""; print $formCron->select_typejob('jobtype', $object->jobtype, 1); print "
    '; print $langs->trans('Entity').""; - if (!$object->entity) { - print $langs->trans("AllEntities"); + if (empty($object->entity)) { + print img_picto($langs->trans("AllEntities"), 'entity', 'class="pictofixedwidth"').$langs->trans("AllEntities"); } else { $mc->getInfo($object->entity); - print $mc->label; + print img_picto($langs->trans("AllEntities"), 'entity', 'class="pictofixedwidth"').$mc->label; } print "
    '; print '
    '; - print '
    '; + print '
    '; - - print '
    '; print '
    '; print ''; @@ -693,11 +702,11 @@ if (($action == "create") || ($action == "edit")) { print ""; print '
    '; - print '
    '; + print '
    '; - print '
    '; + print '
    '; print ''; @@ -715,7 +724,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 ""; @@ -736,8 +749,12 @@ if (($action == "create") || ($action == "edit")) { print ""; print '
    '; + print '
    '; + print '
    '; + + print dol_get_fiche_end(); @@ -759,7 +776,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..033e6512bd8 100644 --- a/htdocs/cron/class/cronjob.class.php +++ b/htdocs/cron/class/cronjob.class.php @@ -108,57 +108,62 @@ 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 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; @@ -262,8 +267,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)) { @@ -377,10 +382,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 +427,7 @@ class Cronjob extends CommonObject $sql .= " t.frequency,"; $sql .= " t.status,"; $sql .= " t.processing,"; + $sql .= " t.pid,"; $sql .= " t.fk_user_author,"; $sql .= " t.fk_user_mod,"; $sql .= " t.note as note_private,"; @@ -474,6 +476,7 @@ class Cronjob extends CommonObject $this->frequency = $obj->frequency; $this->status = $obj->status; $this->processing = $obj->processing; + $this->pid = $obj->pid; $this->fk_user_author = $obj->fk_user_author; $this->fk_user_mod = $obj->fk_user_mod; $this->note_private = $obj->note_private; @@ -491,9 +494,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 +507,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 +537,7 @@ class Cronjob extends CommonObject $sql .= " t.frequency,"; $sql .= " t.status,"; $sql .= " t.processing,"; + $sql .= " t.pid,"; $sql .= " t.fk_user_author,"; $sql .= " t.fk_user_mod,"; $sql .= " t.note as note_private,"; @@ -613,6 +614,7 @@ class Cronjob extends CommonObject $line->frequency = $obj->frequency; $line->status = $obj->status; $line->processing = $obj->processing; + $line->pid = $obj->pid; $line->fk_user_author = $obj->fk_user_author; $line->fk_user_mod = $obj->fk_user_mod; $line->note_private = $obj->note_private; @@ -715,10 +717,14 @@ class Cronjob extends CommonObject $this->processing = 0; } + if (empty($this->pid)) { + $this->pid = null; + } + // 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)) { @@ -780,6 +786,7 @@ 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 .= " pid=".(isset($this->pid) ? $this->pid : "null").","; $sql .= " fk_user_mod=".$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").","; @@ -873,7 +880,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 +939,7 @@ class Cronjob extends CommonObject $this->frequency = ''; $this->status = 0; $this->processing = 0; + $this->pid = null; $this->fk_user_author = 0; $this->fk_user_mod = 0; $this->note_private = ''; @@ -968,7 +976,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 +1049,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); @@ -1122,6 +1140,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) { @@ -1313,6 +1332,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); @@ -1465,6 +1485,8 @@ class Cronjobline */ public $id; + public $entity; + /** * @var string Ref */ @@ -1491,10 +1513,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 +1536,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 6adc9da030e..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"; @@ -57,6 +58,7 @@ print dol_get_fiche_head($head, 'info', $langs->trans("CronTask"), -1, 'cron'); $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; +$morehtmlref .= $langs->trans($object->label); $morehtmlref .= '
    '; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php index 7ee64ec2c6f..a2c3b1d4807 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; /* @@ -115,7 +122,7 @@ if (empty($reshook)) { $search_label = ''; $search_status = -1; $search_lastresult = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -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 ''; @@ -430,10 +436,11 @@ print '
    '; print ''; 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"); @@ -553,6 +575,7 @@ if ($num > 0) { } print ''; if (!empty($obj->datestart)) { print dol_print_date($db->jdate($obj->datestart), 'dayhour', 'tzserver'); @@ -564,15 +587,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 '
    '.$langs->trans("RefOrder").'
    '.$langs->trans("RefProposal").''.$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 699bcdf7379..7d774478217 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'; @@ -80,7 +81,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/don/card.php b/htdocs/don/card.php index 960ff7e7b2d..dfc4a128dc0 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,13 +39,13 @@ 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'); $action = GETPOST('action', 'aZ09'); @@ -119,10 +120,10 @@ if (empty($reshook)) { if (method_exists($object, 'generateDocument')) { $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -211,7 +212,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 +352,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && !empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) $newlang=$object->thirdparty->default_lang; + if (!empty($newlang)) { $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); @@ -382,7 +383,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 +403,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("Project").""; $formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth500'); print "
    '.$langs->trans("ThirdParty").''; @@ -639,7 +640,7 @@ if (!empty($id) && $action == 'edit') { print "
    '.$langs->trans("Status").''.$object->getLibStatut(4).'
    '.$langs->trans("ThirdParty").''; diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php index 0ce92f44e1b..080ac3b9540 100644 --- a/htdocs/don/class/don.class.php +++ b/htdocs/don/class/don.class.php @@ -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,16 +985,9 @@ 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); } diff --git a/htdocs/don/class/paymentdonation.class.php b/htdocs/don/class/paymentdonation.class.php index 6de83f5570e..e4928ac9363 100644 --- a/htdocs/don/class/paymentdonation.class.php +++ b/htdocs/don/class/paymentdonation.class.php @@ -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..219a5116658 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'); @@ -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..9dc14918477 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'; diff --git a/htdocs/don/info.php b/htdocs/don/info.php index 0057bf87dce..82dd9842210 100644 --- a/htdocs/don/info.php +++ b/htdocs/don/info.php @@ -21,16 +21,17 @@ * \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'); @@ -45,17 +46,22 @@ $result = restrictedArea($user, 'don', $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 +69,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 +83,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..1ab7220d894 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'; @@ -93,7 +94,7 @@ $fieldstosearchall = array( $donationstatic = new Don($db); $form = new Form($db); -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $projectstatic = new Project($db); } @@ -219,7 +220,7 @@ if ($resql) { print '
    '; print ' '; print ''; print ' '; 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..4d84c4b1417 100644 --- a/htdocs/don/note.php +++ b/htdocs/don/note.php @@ -25,17 +25,18 @@ * \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'); @@ -60,6 +61,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 +75,7 @@ if ($action == 'classin' && $user->rights->don->creer) { $object->setProject($projectid); } + /* * View */ @@ -84,7 +87,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 +103,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..f5507e5e6c7 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).'
    '; // Label - print ''."\n"; + print ''."\n"; print ''; @@ -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') { diff --git a/htdocs/ecm/file_note.php b/htdocs/ecm/file_note.php index 43dcc20e744..07534dc5ae8 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'; @@ -47,6 +48,8 @@ if ($user->socid > 0) { $socid = $user->socid; } +$backtopage = GETPOST('backtopage', 'alpha'); + $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma'); @@ -78,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; } diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index 2b68206d70a..79c4d7dcc24 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'); @@ -58,13 +59,13 @@ if (!$sortorder) { $sortorder = "ASC"; } if (!$sortfield) { - $sortfield = "fullname"; + $sortfield = "name"; } $ecmdir = new EcmDirectory($db); if ($section > 0) { $result = $ecmdir->fetch($section); - if (!$result > 0) { + if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } diff --git a/htdocs/ecm/index_auto.php b/htdocs/ecm/index_auto.php index 3b906883c00..88c3802fba5 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; } @@ -309,36 +310,36 @@ llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $m $rowspan = 0; $sectionauto = array(); if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + 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)) { + if (isModEnabled("propal")) { $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 (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { $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 (!empty($conf->commande->enabled)) { + if (isModEnabled('commande')) { $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 (!empty($conf->facture->enabled)) { + 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"))); } - 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"))); } - 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"))); @@ -347,23 +348,23 @@ if (!empty($conf->global->ECM_AUTO_TREE_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"))); } - 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)) { $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"))); } - 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"))); } - 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"))); } - 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"))); @@ -372,7 +373,7 @@ if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { $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"))); } - 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"))); } diff --git a/htdocs/ecm/search.php b/htdocs/ecm/search.php index 42b8efba42f..77ae4408da3 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,7 +79,7 @@ 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; } @@ -113,55 +114,55 @@ $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)) { +if (isModEnabled("propal")) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Proposals"))); } -if (!empty($conf->contrat->enabled)) { +if (isModEnabled('contrat')) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'contract', 'test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Contracts"))); } -if (!empty($conf->commande->enabled)) { +if (isModEnabled('commande')) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order', 'test'=>$conf->commande->enabled, 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsBy", $langs->transnoentitiesnoconv("Orders"))); } -if (!empty($conf->facture->enabled)) { +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"))); } -if (!empty($conf->supplier_proposal->enabled)) { +if (isModEnabled('supplier_proposal')) { $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 ((!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)) { +if (isModEnabled('tax')) { $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 (!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 (!empty($conf->expensereport->enabled)) { +if (isModEnabled('expensereport')) { $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 (!empty($conf->holiday->enabled)) { +if (isModEnabled('holiday')) { $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 (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { $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 (!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 (!empty($conf->recruitment->enabled)) { +if (isModEnabled('recruitment')) { $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"))); } diff --git a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php index 6397a333fb0..1f5e52e4577 100644 --- a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php +++ b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php @@ -36,6 +36,9 @@ if (empty($conf) || !is_object($conf)) { if (empty($module)) { $module = 'ecm'; } +if (empty($nameforformuserfile)) { + $nameforformuserfile = ''; +} $paramwithoutsection = preg_replace('/&?section=(\d+)/', '', $param); $openeddir = '/'; // The root directory shown diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php index 032ee4b534b..47d62197a70 100644 --- a/htdocs/emailcollector/class/emailcollector.class.php +++ b/htdocs/emailcollector/class/emailcollector.class.php @@ -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/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'; @@ -36,9 +37,22 @@ require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; // Ship 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 +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.'/expensereport/class/expensereport.class.php'; // expernse repor + + +// 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; /** @@ -109,22 +123,25 @@ 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'), - 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1, 'help'=>'Example: My Email collector'), - 'description' => array('type'=>'text', 'label'=>'Description', 'visible'=>-1, 'enabled'=>1, 'position'=>60, 'notnull'=>-1), - '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'), - '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'), + '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'), + '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'=>'tdoverflow125', '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"), 'maxemailpercollect' => array('type'=>'integer', 'label'=>'MaxEmailCollectPerCollect', 'visible'=>-1, 'enabled'=>1, 'position'=>111, 'default'=>100), - 'datelastresult' => array('type'=>'datetime', 'label'=>'DateLastCollectResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>121, 'notnull'=>-1,), + 'datelastresult' => array('type'=>'datetime', 'label'=>'DateLastCollectResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>121, 'notnull'=>-1, 'csslist'=>'nowraponall'), 'codelastresult' => array('type'=>'varchar(16)', 'label'=>'CodeLastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>122, 'notnull'=>-1,), - 'lastresult' => array('type'=>'varchar(255)', 'label'=>'LastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>123, 'notnull'=>-1,), - 'datelastok' => array('type'=>'datetime', 'label'=>'DateLastcollectResultOk', 'visible'=>1, 'enabled'=>'$action != "create"', 'position'=>125, 'notnull'=>-1,), + 'lastresult' => array('type'=>'varchar(255)', 'label'=>'LastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>123, 'notnull'=>-1, 'csslist'=>'small'), + 'datelastok' => array('type'=>'datetime', 'label'=>'DateLastcollectResultOk', 'visible'=>1, 'enabled'=>'$action != "create"', 'position'=>125, 'notnull'=>-1, 'csslist'=>'nowraponall'), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'visible'=>0, 'enabled'=>1, 'position'=>61, 'notnull'=>-1,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'visible'=>0, 'enabled'=>1, 'position'=>62, 'notnull'=>-1,), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'visible'=>-2, 'enabled'=>1, 'position'=>500, 'notnull'=>1,), @@ -191,9 +208,12 @@ class EmailCollector extends CommonObject public $host; + public $port; public $hostcharset; public $login; public $password; + public $acces_type; + public $oauth_service; public $source_directory; public $target_directory; public $maxemailpercollect; @@ -231,10 +251,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'])) { @@ -270,8 +311,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); @@ -330,6 +376,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; @@ -381,7 +428,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; } @@ -476,7 +527,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; } /** @@ -503,7 +561,7 @@ class EmailCollector extends CommonObject */ public function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) { - global $conf, $langs, $hookmanager; + global $conf, $langs, $action, $hookmanager; if (!empty($conf->dol_no_mouse_hover)) { $notooltip = 1; // Force disable tooltips @@ -536,13 +594,6 @@ class EmailCollector extends CommonObject } $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; - - /* - $hookmanager->initHooks(array('myobjectdao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } else { $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); } @@ -561,7 +612,6 @@ class EmailCollector extends CommonObject $result .= $linkend; //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); - global $action, $hookmanager; $hookmanager->initHooks(array('emailcollectordao')); $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 @@ -621,7 +671,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); @@ -630,27 +680,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); @@ -768,7 +802,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; } @@ -900,9 +934,17 @@ class EmailCollector extends CommonObject // Overwrite param $tmpproperty $valueextracted = isset($regforval[count($regforval) - 1]) ?trim($regforval[count($regforval) - 1]) : null; if (strtolower($sourcefield) == 'header') { - $object->$tmpproperty = $this->decodeSMTPSubject($valueextracted); + if (preg_match('/^options_/', $tmpproperty)) { + $object->array_options[preg_replace('/^options_/', '', $tmpproperty)] = $this->decodeSMTPSubject($valueextracted); + } else { + $object->$tmpproperty = $this->decodeSMTPSubject($valueextracted); + } } else { - $object->$tmpproperty = $valueextracted; + if (preg_match('/^options_/', $tmpproperty)) { + $object->array_options[preg_replace('/^options_/', '', $tmpproperty)] = $this->decodeSMTPSubject($valueextracted); + } else { + $object->$tmpproperty = $this->decodeSMTPSubject($valueextracted); + } } } else { // Regex not found @@ -963,13 +1005,14 @@ class EmailCollector extends CommonObject */ public function doCollectOneCollector() { - global $conf, $langs, $user; + global $db, $conf, $langs, $user; + global $hookmanager; //$conf->global->SYSLOG_FILE = 'DOL_DATA_ROOT/dolibarr_mydedicatedlofile.log'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; - dol_syslog("EmailCollector::doCollectOneCollector start for id=".$this->id, LOG_DEBUG); + dol_syslog("EmailCollector::doCollectOneCollector start for id=".$this->id." - ".$this->ref, LOG_DEBUG); $langs->loadLangs(array("project", "companies", "mails", "errors", "ticket", "agenda", "commercial")); @@ -979,6 +1022,7 @@ class EmailCollector extends CommonObject $now = dol_now(); + if (empty($this->host)) { $this->error = $langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('EMailHost')); return -1; @@ -991,149 +1035,386 @@ 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 + $search = ''; + $searchhead = ''; + $searchfilterdoltrackid = 0; + $searchfilternodoltrackid = 0; + $searchfilterisanswer = 0; + $searchfilterisnotanswer = 0; + 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 + $searchhead = ''; + $searchfilterdoltrackid = 0; + $searchfilternodoltrackid = 0; + $searchfilterisanswer = 0; + $searchfilterisnotanswer = 0; + 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; + } } } @@ -1141,77 +1422,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; @@ -1219,22 +1443,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']; @@ -1245,23 +1472,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); - dol_syslog("** Process email ".$iforemailloop." References: ".$headers['References']); - //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"; + + dol_syslog("** Process email ".$iforemailloop." References: ".$headers['References']." Subject: ".$headers['Subject']); + + + $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|job|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++; - 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 - Suffix found into email or Header References found and matching signature of application so with a trackid"); continue; // Exclude email } } @@ -1269,6 +1517,7 @@ class EmailCollector extends CommonObject if ($searchfilterisanswer > 0) { if (empty($headers['In-Reply-To'])) { $nbemailprocessed++; + dol_syslog(" Discarded - Email is not an answer (no In-Reply-To header)"); continue; // Exclude email } // Note: we can have @@ -1282,6 +1531,7 @@ class EmailCollector extends CommonObject if (!$isanswer) { $nbemailprocessed++; + dol_syslog(" Discarded - Email is not an answer (no RE prefix in subject)"); continue; // Exclude email } } @@ -1297,6 +1547,7 @@ class EmailCollector extends CommonObject //if ($headers['In-Reply-To'] != $headers['Message-ID'] && !empty($headers['References']) && strpos($headers['References'], $headers['Message-ID']) !== false) $isanswer = 1; if ($isanswer) { $nbemailprocessed++; + dol_syslog(" Discarded - Email is an answer"); continue; // Exclude email } } @@ -1320,34 +1571,54 @@ 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); - - //print $plainmsg; var_dump($plainmsg); exit; + 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; //$htmlmsg,$plainmsg,$charset,$attachments $messagetext = $plainmsg ? $plainmsg : dol_string_nohtmltag($htmlmsg, 0); // Removed emojis $messagetext = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $messagetext); - /*var_dump($plainmsg); - var_dump($htmlmsg); - var_dump($messagetext);*/ - /*var_dump($charset); - var_dump($attachments); - exit;*/ + //var_dump($plainmsg); + //var_dump($htmlmsg); + //var_dump($messagetext); + //var_dump($charset); + //var_dump($attachments); + //exit; // Parse IMAP email structure /* @@ -1380,11 +1651,13 @@ class EmailCollector extends CommonObject } } } - //var_dump($result); var_dump($partplain); var_dump($parthtml); + //var_dump($result); + //var_dump($partplain); + //var_dump($parthtml); - var_dump($structure); - var_dump($parthtml); - var_dump($partplain); + //var_dump($structure); + //var_dump($parthtml); + //var_dump($partplain); $messagetext = imap_fetchbody($connection, $imapemail, ($parthtml != '-1' ? $parthtml : ($partplain != '-1' ? $partplain : 1)), FT_PEEK); */ @@ -1395,16 +1668,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)) { @@ -1435,8 +1721,19 @@ 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"; - if (preg_match('/dolibarr-([a-z]+)([0-9]+)@'.preg_quote($host, '/').'/', $reference, $reg)) { - // This is a Dolibarr reference + 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 (!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]; @@ -1777,8 +2074,9 @@ class EmailCollector extends CommonObject dol_syslog("Third party with id=".$idtouseforthirdparty." email=".$emailtouseforthirdparty." name=".$nametouseforthirdparty." was not found"); $errorforactions++; - $this->error = 'ErrorFailedToLoadThirdParty'; - $this->errors[] = 'ErrorFailedToLoadThirdParty'; + $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."); @@ -1853,8 +2151,8 @@ class EmailCollector extends CommonObject $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->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; @@ -1885,12 +2183,12 @@ class EmailCollector extends CommonObject // 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;*/ + //var_dump($fk_element_id); + //var_dump($fk_element_type); + //var_dump($alreadycreated); + //var_dump($operation['type']); + //var_dump($actioncomm); + //exit; if ($errorforthisaction) { $errorforactions++; @@ -1908,49 +2206,49 @@ class EmailCollector extends CommonObject $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 . "%'"; + $sql = "SELECT rowid as id FROM ".MAIN_DB_PREFIX."user WHERE email LIKE '%".$this->db->escape($from)."%'"; $resql = $this->db->query($sql); - if ($resql->num_rows == 0) { - $this->errors = 'User Not allowed to add documents'; + 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', - 'object' => 'Propal'), + 'fields' => array('ref'), + 'class' => 'comm/propal/class/propal.class.php', + 'object' => 'Propal'), 'holiday' => array('table' => 'holiday', - 'fields' => array('ref'), - 'class' => 'holiday/class/holiday.class.php', - 'object' => 'Holiday'), + 'fields' => array('ref'), + 'class' => 'holiday/class/holiday.class.php', + 'object' => 'Holiday'), 'expensereport' => array('table' => 'expensereport', - 'fields' => array('ref'), - 'class' => 'expensereport/class/expensereport.class.php', - 'object' => 'ExpenseReport'), + 'fields' => array('ref'), + 'class' => 'expensereport/class/expensereport.class.php', + 'object' => 'ExpenseReport'), 'recruitment/recruitmentjobposition' => array('table' => 'recruitment_recruitmentjobposition', - 'fields' => array('ref'), - 'class' => 'recruitment/class/recruitmentjobposition.class.php', - 'object' => 'RecruitmentJobPosition'), + 'fields' => array('ref'), + 'class' => 'recruitment/class/recruitmentjobposition.class.php', + 'object' => 'RecruitmentJobPosition'), 'recruitment/recruitmentjobposition' => array('table' => 'recruitment_recruitmentcandidature', - 'fields' => array('ref'), - 'class' => 'recruitment/class/recruitmentcandidature.class.php', - 'object' => ' RecruitmentCandidature'), + 'fields' => array('ref'), + 'class' => 'recruitment/class/recruitmentcandidature.class.php', + 'object' => ' RecruitmentCandidature'), 'societe' => array('table' => 'societe', 'fields' => array('code_client', 'code_fournisseur'), 'class' => 'societe/class/societe.class.php', 'object' => 'Societe'), - 'commande' => array('table' => 'commande', + 'commande' => array('table' => 'commande', 'fields' => array('ref'), 'class' => 'commande/class/commande.class.php', 'object' => 'Commande'), - 'expedition' => array('table' => 'expedition', + 'expedition' => array('table' => 'expedition', 'fields' => array('ref'), 'class' => 'expedition/class/expedition.class.php', 'object' => 'Expedition'), - 'contract' => array('table' => 'contrat', + 'contract' => array('table' => 'contrat', 'fields' => array('ref'), 'class' => 'contrat/class/contrat.class.php', 'object' => 'Contrat'), - 'fichinter' => array('table' => 'fichinter', + 'fichinter' => array('table' => 'fichinter', 'fields' => array('ref'), 'class' => 'fichinter/class/fichinter.class.php', 'object' => 'Fichinter'), @@ -1958,60 +2256,66 @@ class EmailCollector extends CommonObject 'fields' => array('ref'), 'class' => 'ticket/class/ticket.class.php', 'object' => ' Ticket'), - 'knowledgemanagement' => array('table' => 'knowledgemanagement_knowledgerecord', + 'knowledgemanagement' => array('table' => 'knowledgemanagement_knowledgerecord', 'fields' => array('ref'), 'class' => 'knowledgemanagement/class/knowledgemanagement.class.php', 'object' => 'KnowledgeRecord'), - 'supplier_proposal' => array('table' => 'supplier_proposal', + 'supplier_proposal' => array('table' => 'supplier_proposal', 'fields' => array('ref'), 'class' => 'supplier_proposal/class/supplier_proposal.class.php', 'object' => 'SupplierProposal'), - 'fournisseur/commande' => array('table' => 'commande_fournisseur', + 'fournisseur/commande' => array('table' => 'commande_fournisseur', 'fields' => array('ref', 'ref_supplier'), 'class' => 'fourn/class/fournisseur.commande.class.php', 'object' => 'SupplierProposal'), - 'facture' => array('table' => 'facture', + 'facture' => array('table' => 'facture', 'fields' => array('ref'), 'class' => 'compta/facture/class/facture.class.php', 'object' => 'Facture'), - 'fournisseur/facture' => array('table' => 'facture_fourn', + 'fournisseur/facture' => array('table' => 'facture_fourn', 'fields' => array('ref', ref_client), 'class' => 'fourn/class/fournisseur.facture.class.php', 'object' => 'FactureFournisseur'), - 'produit' => array('table' => 'product', + 'produit' => array('table' => 'product', 'fields' => array('ref'), 'class' => 'product/class/product.class.php', 'object' => 'Product'), - 'productlot' => array('table' => 'product_lot', + 'productlot' => array('table' => 'product_lot', 'fields' => array('batch'), 'class' => 'product/stock/class/productlot.class.php', 'object' => 'Productlot'), - 'projet' => array('table' => 'projet', + 'projet' => array('table' => 'projet', 'fields' => array('ref'), 'class' => 'projet/class/projet.class.php', 'object' => 'Project'), - 'projet_task' => array('table' => 'projet_task', + 'projet_task' => array('table' => 'projet_task', 'fields' => array('ref'), 'class' => 'projet/class/task.class.php', 'object' => 'Task'), - 'ressource' => array('table' => 'resource', + 'ressource' => array('table' => 'resource', 'fields' => array('ref'), 'class' => 'ressource/class/dolressource.class.php', 'object' => 'Dolresource'), - 'bom' => array('table' => 'bom_bom', + 'bom' => array('table' => 'bom_bom', 'fields' => array('ref'), 'class' => 'bom/class/bom.class.php', 'object' => 'BOM'), - 'mrp' => array('table' => 'mrp_mo', + 'mrp' => array('table' => 'mrp_mo', '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; + if ($reshook > 0) { + $arrayobject = $hookmanager->resArray; + } $resultobj = array(); @@ -2043,7 +2347,7 @@ class EmailCollector extends CommonObject $path = ($objectmanaged->entity > 1 ? "/" . $objectmanaged->entity : ''); $dirs[] = DOL_DATA_ROOT . $path . "/" . $elementpath . '/' . dol_sanitizeFileName($objectmanaged->ref) . '/'; } else { - $this->errors = 'object not found'; + $this->errors[] = 'object not found'; } } } @@ -2053,17 +2357,16 @@ class EmailCollector extends CommonObject $resr = saveAttachment($target, $prefix . '_' . $filename, $content); if ($resr == -1) { - $this->errors = 'Doc not saved'; + $this->errors[] = 'Doc not saved'; } } } } else { - $this->errors = 'no joined piece'; + $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) { @@ -2095,7 +2398,7 @@ class EmailCollector extends CommonObject $percent_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'percent'); $projecttocreate->title = $subject; - $projecttocreate->date_start = $date; + $projecttocreate->date_start = $date; // date of email $projecttocreate->date_end = ''; $projecttocreate->opp_status = $id_opp_status; $projecttocreate->opp_percent = $percent_opp_status; @@ -2147,6 +2450,7 @@ class EmailCollector extends CommonObject $projecttocreate->ref = $defaultref; } + if ($errorforthisaction) { $errorforactions++; } else { @@ -2160,6 +2464,20 @@ class EmailCollector extends CommonObject $errorforactions++; $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); + } + } } } } @@ -2203,12 +2521,13 @@ class EmailCollector extends CommonObject $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->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; $savesocid = $tickettocreate->socid; @@ -2272,6 +2591,12 @@ class EmailCollector extends CommonObject $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); } } @@ -2303,12 +2628,13 @@ class EmailCollector extends CommonObject $candidaturetocreate->email = $from; //$candidaturetocreate->lastname = $langs->trans("Anonymous").' - '.$from; $candidaturetocreate->fk_user_creat = $user->id; - $candidaturetocreate->date_creation = $date; + $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; @@ -2371,8 +2697,6 @@ class EmailCollector extends CommonObject } elseif (substr($operation['type'], 0, 4) == 'hook') { // Create event specific on hook // this code action is hook..... for support this call - global $hookmanager; - if (!is_object($hookmanager)) { include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; $hookmanager = new HookManager($this->db); @@ -2397,9 +2721,9 @@ class EmailCollector extends CommonObject 'header'=>$header, 'attachments'=>$attachments, ); - $res = $hookmanager->executeHooks('doCollectOneCollector', $parameters, $this, $operation['type']); + $reshook = $hookmanager->executeHooks('doColleimapctOneCollector', $parameters, $this, $operation['type']); - if ($res < 0) { + if ($reshook < 0) { $errorforthisaction++; $this->error = $hookmanager->resPrint; } @@ -2408,6 +2732,7 @@ class EmailCollector extends CommonObject } } + if (!$errorforactions) { $nbactiondoneforemail++; } @@ -2415,22 +2740,26 @@ class EmailCollector extends CommonObject // 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 (empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + 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()); + } + } else { + dol_syslog("EmailCollector::doCollectOneCollector message ".$imapemail." to ".$connectstringtarget." was set to read", LOG_DEBUG); + // TODO Make the move } - } else { - dol_syslog("EmailCollector::doCollectOneCollector message ".$imapemail." to ".$connectstringtarget." was set to read", LOG_DEBUG); } } else { $errorforemail++; } + unset($objectemail); unset($projectstatic); unset($thirdpartystatic); @@ -2463,9 +2792,13 @@ class EmailCollector extends CommonObject $output = $langs->trans('NoNewEmailToProcess'); } - imap_expunge($connection); // To validate any move + if (!empty($conf->global->MAIN_IMAP_USE_PHPIMAP)) { + $client->disconnect(); + } else { + imap_expunge($connection); // To validate any move - imap_close($connection); + imap_close($connection); + } $this->datelastresult = $now; $this->lastresult = $output; @@ -2479,7 +2812,7 @@ class EmailCollector extends CommonObject } if (!empty($this->errors)) { - $this->lastresult .= " - ".join(" - ", $this->errors); + $this->lastresult .= "
    ".join("
    ", $this->errors); } $this->codelastresult = ($error ? 'KO' : 'OK'); $this->update($user); diff --git a/htdocs/emailcollector/class/emailcollectoraction.class.php b/htdocs/emailcollector/class/emailcollectoraction.class.php index eaa4b0737b9..46b787fc6fd 100644 --- a/htdocs/emailcollector/class/emailcollectoraction.class.php +++ b/htdocs/emailcollector/class/emailcollectoraction.class.php @@ -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; } @@ -233,7 +233,8 @@ class EmailCollectorAction extends CommonObject foreach ($object->array_options as $key => $option) { $shortkey = preg_replace('/options_/', '', $key); if (!empty($extrafields->attributes[$this->element]['unique'][$shortkey])) { - //var_dump($key); var_dump($clonedObj->array_options[$key]); exit; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -270,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; } @@ -483,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 a99c5198d72..c19610f14ad 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; } @@ -207,7 +207,8 @@ class EmailCollectorFilter extends CommonObject foreach ($object->array_options as $key => $option) { $shortkey = preg_replace('/options_/', '', $key); if (!empty($extrafields->attributes[$this->element]['unique'][$shortkey])) { - //var_dump($key); var_dump($clonedObj->array_options[$key]); exit; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -457,27 +458,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 15493425231..cdb67a2c37b 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', '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'=>'1', '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'=>'1', '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; } @@ -444,8 +444,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 +468,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 +492,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 +679,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); diff --git a/htdocs/eventorganization/class/conferenceorboothattendee.class.php b/htdocs/eventorganization/class/conferenceorboothattendee.class.php index bdd81660a12..222a0c78946 100644 --- a/htdocs/eventorganization/class/conferenceorboothattendee.class.php +++ b/htdocs/eventorganization/class/conferenceorboothattendee.class.php @@ -104,11 +104,13 @@ class ConferenceOrBoothAttendee 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, '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'=>'1', '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), - 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status = 1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'enabled'=>'1', 'position'=>40, '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', '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'), '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'=>'1', 'position'=>57, 'notnull'=>0, 'visible'=>-1, 'index'=>0, 'picto'=>'bill', 'css'=>'tdoverflowmax150 maxwidth500'), + '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",), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>'1', 'position'=>61, 'notnull'=>0, 'visible'=>3,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>3,), @@ -126,6 +128,8 @@ class ConferenceOrBoothAttendee extends CommonObject public $fk_soc; public $fk_actioncomm; public $email; + public $firstname; + public $lastname; public $date_subscription; public $fk_invoice; public $amount; @@ -192,7 +196,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; } @@ -314,7 +318,8 @@ class ConferenceOrBoothAttendee extends CommonObject 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; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -536,8 +541,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); @@ -679,8 +684,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; @@ -703,8 +708,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; @@ -727,8 +732,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; @@ -942,27 +947,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); diff --git a/htdocs/eventorganization/conferenceorbooth_card.php b/htdocs/eventorganization/conferenceorbooth_card.php index 0d14811ef67..1e71af81492 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' : ''); @@ -218,7 +222,7 @@ if (!empty($withproject)) { 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); diff --git a/htdocs/ecm/dir_card.php b/htdocs/ecm/dir_card.php index 930575d1778..c36cebfc80c 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'; diff --git a/htdocs/ecm/file_card.php b/htdocs/ecm/file_card.php index fb6d868f830..f55ad4061a4 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; } @@ -346,7 +347,7 @@ if ($action != 'edit') { print $fulllink; } if ($action != 'edit') { - print ' '.$langs->trans("Download").''; // No target here. + print ' '.img_picto($langs->trans("Download"), 'download', 'class="opacitymedium paddingrightonly"').''; // No target here. } 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); @@ -299,7 +303,7 @@ if (!empty($withproject)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -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 = ''; diff --git a/htdocs/eventorganization/conferenceorbooth_contact.php b/htdocs/eventorganization/conferenceorbooth_contact.php index 67cb2c659ee..2c304bd8562 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); @@ -201,7 +206,7 @@ if (!empty($withproject)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, Categorie::TYPE_PROJECT, 1); 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); @@ -282,7 +287,7 @@ if (!empty($withproject)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -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 742585ffb16..56b34f68b03 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); @@ -176,7 +179,7 @@ if (!empty($withproject)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, Categorie::TYPE_PROJECT, 1); 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); @@ -257,7 +260,7 @@ if (!empty($withproject)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/eventorganization/conferenceorbooth_list.php b/htdocs/eventorganization/conferenceorbooth_list.php index 943205adca2..520435c9cdc 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 ? @@ -205,7 +211,7 @@ if (empty($reshook)) { $search[$key.'_dtend'] = ''; } } - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -300,7 +306,7 @@ if ($projectid > 0) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, Categorie::TYPE_PROJECT, 1); 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); @@ -333,10 +339,12 @@ if ($projectid > 0) { // Visibility print ''; @@ -375,46 +383,52 @@ if ($projectid > 0) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; - if ($project->public) { - print $langs->trans('SharedProject'); + if ($project->public == 0) { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); + print $langs->trans("PrivateProject"); } else { - print $langs->trans('PrivateProject'); + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); + print $langs->trans("SharedProject"); } print '
    '; // Description - print ''; // Categories - if ($conf->categorie->enabled) { - print '"; } - print '"; - print '"; - print '"; - print '"; - print '"; + + print '"; // Link to the submit vote/register page - print ''; // Link to the subscribe - 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 +388,7 @@ if ($object->id > 0) { $boxstat .= '
    '.$langs->trans("Description").''; + print '
    '.$langs->trans("Description").''; print nl2br($project->description); print '
    '.$langs->trans("Categories").''; + if (isModEnabled('categorie')) { + print '
    '.$langs->trans("Categories").''; print $form->showCategories($project->id, Categorie::TYPE_PROJECT, 1); print "
    '; + print '
    '; $typeofdata = 'checkbox:'.($project->accept_conference_suggestions ? ' checked="checked"' : ''); $htmltext = $langs->trans("AllowUnknownPeopleSuggestConfHelp"); print $form->editfieldkey('AllowUnknownPeopleSuggestConf', 'accept_conference_suggestions', '', $project, $permissiontoadd, $typeofdata, '', 0, 0, 'projectid', $htmltext); - print ''; + print ''; print $form->editfieldval('AllowUnknownPeopleSuggestConf', 'accept_conference_suggestions', '1', $project, $permissiontoadd, $typeofdata, '', 0, 0, '', 0, '', 'projectid'); print "
    '; + print '
    '; $typeofdata = 'checkbox:'.($project->accept_booth_suggestions ? ' checked="checked"' : ''); $htmltext = $langs->trans("AllowUnknownPeopleSuggestBoothHelp"); print $form->editfieldkey('AllowUnknownPeopleSuggestBooth', 'accept_booth_suggestions', '', $project, $permissiontoadd, $typeofdata, '', 0, 0, 'projectid', $htmltext); - print ''; + print ''; print $form->editfieldval('AllowUnknownPeopleSuggestBooth', 'accept_booth_suggestions', '1', $project, $permissiontoadd, $typeofdata, '', 0, 0, '', 0, '', 'projectid'); print "
    '; + print '
    '; print $form->editfieldkey($form->textwithpicto($langs->trans('PriceOfBooth'), $langs->trans("PriceOfBoothHelp")), 'price_booth', '', $project, $permissiontoadd, 'amount', '', 0, 0, 'projectid'); - print ''; + print ''; print $form->editfieldval($form->textwithpicto($langs->trans('PriceOfBooth'), $langs->trans("PriceOfBoothHelp")), 'price_booth', $project->price_booth, $project, $permissiontoadd, 'amount', '', 0, 0, '', 0, '', 'projectid'); print "
    '; + print '
    '; print $form->editfieldkey($form->textwithpicto($langs->trans('PriceOfRegistration'), $langs->trans("PriceOfRegistrationHelp")), 'price_registration', '', $project, $permissiontoadd, 'amount', '', 0, 0, 'projectid'); - print ''; + print ''; print $form->editfieldval($form->textwithpicto($langs->trans('PriceOfRegistration'), $langs->trans("PriceOfRegistrationHelp")), 'price_registration', $project->price_registration, $project, $permissiontoadd, 'amount', '', 0, 0, '', 0, '', 'projectid'); print "
    '.$langs->trans("EventOrganizationICSLink").''; + print '
    '; + print $form->editfieldkey($form->textwithpicto($langs->trans('MaxNbOfAttendees'), ''), 'max_attendees', '', $project, $permissiontoadd, 'integer:3', '', 0, 0, 'projectid'); + print ''; + print $form->editfieldval($form->textwithpicto($langs->trans('MaxNbOfAttendees'), ''), 'max_attendees', $project->max_attendees, $project, $permissiontoadd, 'integer:3', '', 0, 0, '', 0, '', 'projectid'); + print "
    '.$langs->trans("EventOrganizationICSLink").''; // Define $urlwithroot $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; @@ -427,11 +441,11 @@ if ($projectid > 0) { print "
    '; + print '
    '; //print ''; print $form->textwithpicto($langs->trans("SuggestOrVoteForConfOrBooth"), $langs->trans("EvntOrgRegistrationHelpMessage")); //print ''; - print ''; + print ''; $linksuggest = $dolibarr_main_url_root.'/public/project/index.php?id='.((int) $project->id); $encodedsecurekey = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'conferenceorbooth'.((int) $project->id), 'md5'); $linksuggest .= '&securekey='.urlencode($encodedsecurekey); @@ -444,11 +458,11 @@ if ($projectid > 0) { print '
    '; + print '
    '; //print ''; print $langs->trans("PublicAttendeeSubscriptionGlobalPage"); //print ''; - print ''; + print ''; $link_subscription = $dolibarr_main_url_root.'/public/eventorganization/attendee_new.php?id='.((int) $project->id).'&type=global'; $encodedsecurekey = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'conferenceorbooth'.((int) $project->id), 'md5'); $link_subscription .= '&securekey='.urlencode($encodedsecurekey); @@ -699,15 +713,16 @@ print ''; foreach ($object->fields as $key => $val) { - $cssforfield = (empty($val['css']) ? '' : $val['css']); $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')) && !in_array($key, array('rowid', 'ref')) && $val['label'] != 'TechnicalID') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { diff --git a/htdocs/eventorganization/conferenceorboothattendee_card.php b/htdocs/eventorganization/conferenceorboothattendee_card.php index c60c0418d43..14a8c871232 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); @@ -249,7 +253,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 ''; @@ -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); @@ -327,7 +331,7 @@ if (!empty($withproject)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/eventorganization/conferenceorboothattendee_list.php b/htdocs/eventorganization/conferenceorboothattendee_list.php index ab2699187b2..167a79959f5 100644 --- a/htdocs/eventorganization/conferenceorboothattendee_list.php +++ b/htdocs/eventorganization/conferenceorboothattendee_list.php @@ -17,22 +17,25 @@ */ /** - * \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'; -if ($conf->categorie->enabled) { +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,21 +47,23 @@ 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'); $withproject = GETPOST('withproject', 'int'); $fk_project = GETPOST('fk_project', 'int') ? GETPOST('fk_project', 'int') : GETPOST('projectid', 'int'); +$projectid = $fk_project; $withProjectUrl=''; @@ -138,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; @@ -206,7 +212,7 @@ if (empty($reshook)) { $search[$key.'_dtend'] = ''; } } - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -278,7 +284,7 @@ $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; if (!empty($confOrBooth->id)) { $sql .= " INNER JOIN ".MAIN_DB_PREFIX."actioncomm as a on a.id=t.fk_actioncomm AND a.id=".((int) $confOrBooth->id); } -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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 @@ -426,7 +432,7 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); 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 ''; @@ -449,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); @@ -459,10 +465,12 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { // Visibility print ''; @@ -507,7 +515,7 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -541,6 +549,12 @@ if ($projectstatic->id > 0 || $confOrBooth > 0) { print $form->editfieldval($form->textwithpicto($langs->trans('PriceOfRegistration'), $langs->trans("PriceOfRegistrationHelp")), 'price_registration', $projectstatic->price_registration, $projectstatic, 0, 'amount', '', 0, 0, '', 0, '', 'projectid'); print ""; + print '"; + print ''."\n"; // Detect if we need a fetch on each output line $needToFetchEachLine = 0; -if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 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 @@ -938,7 +952,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..a446c04ca9a 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 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 8045edde410..dc9a5c04b6e 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -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'; } @@ -67,7 +68,7 @@ $langs->loadLangs(array("sendings", "companies", "bills", 'deliveries', 'orders' if (!empty($conf->incoterm->enabled)) { $langs->load('incoterm'); } -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { $langs->load('productbatch'); } @@ -258,7 +259,7 @@ 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 + if (isModEnabled('productbatch') && $objectsrc->lines[$i]->product_tobatch) { // If product need a batch number if (GETPOSTISSET($batch)) { //shipment line with batch-enable product $qty .= '_'.$j; @@ -268,7 +269,10 @@ if (empty($reshook)) { $sub_qty[$j]['id_batch'] = GETPOST($batch, 'int'); // the id into llx_product_batch of stock record to move $subtotalqty += $sub_qty[$j]['q']; - //var_dump($qty);var_dump($batch);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']); $j++; $batch = "batchl".$i."_".$j; @@ -325,7 +329,6 @@ if (empty($reshook)) { //var_dump($batch_line[2]); if ($totalqty > 0) { // There is at least one thing to ship - //var_dump($_POST);exit; for ($i = 0; $i < $num; $i++) { $qty = "qtyl".$i; if (!isset($batch_line[$i])) { @@ -405,11 +408,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' && @@ -427,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -464,7 +473,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) @@ -546,6 +555,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++) { @@ -587,6 +597,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); @@ -761,10 +772,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -802,9 +813,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'; @@ -813,7 +828,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); } @@ -869,10 +884,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; @@ -980,7 +995,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; @@ -1027,7 +1042,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++; @@ -1176,7 +1191,7 @@ if ($action == 'create') { // Qty already shipped print ''; @@ -1186,14 +1201,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 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; @@ -1208,7 +1227,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 ''; } @@ -1305,10 +1324,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; @@ -1392,7 +1411,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 ''; } @@ -1516,6 +1535,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) { @@ -1536,7 +1561,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. @@ -1569,7 +1594,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; @@ -1578,6 +1604,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); @@ -1696,11 +1723,11 @@ 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); } @@ -1714,7 +1741,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 (0) { // Do not change on shipment @@ -1761,7 +1788,7 @@ if ($action == 'create') { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; - if ($projectstatic->public) { - print $langs->trans('SharedProject'); + if ($projectstatic->public == 0) { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); + print $langs->trans("PrivateProject"); } else { - print $langs->trans('PrivateProject'); + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); + print $langs->trans("SharedProject"); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); print "
    '; + print $form->editfieldkey($form->textwithpicto($langs->trans('MaxNbOfAttendees'), ''), 'max_attendees', '', $projectstatic, $permissiontoadd, 'integer:3', '&withproject=1', 0, 0, 'projectid'); + print ''; + print $form->editfieldval($form->textwithpicto($langs->trans('MaxNbOfAttendees'), ''), 'max_attendees', $projectstatic->max_attendees, $projectstatic, $permissiontoadd, 'integer:3', '', 0, 0, '&withproject=1', 0, '', 'projectid'); + print "
    '.$langs->trans("EventOrganizationICSLink").''; // Define $urlwithroot $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); @@ -828,7 +842,7 @@ 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 ''; @@ -900,7 +915,7 @@ if ($action == 'create') { print '
    '; - $quantityDelivered = $object->expeditions[$line->id]; + $quantityDelivered = isset($object->expeditions[$line->id]) ? $object->expeditions[$line->id] : ''; print $quantityDelivered; print ''; print ''.$unit_order.'
    '; // 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 ''; @@ -2044,7 +2071,7 @@ if ($action == 'create') { print ''; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; } } @@ -2096,7 +2123,7 @@ if ($action == 'create') { //if ($filter) $sql.= $filter; $sql .= " ORDER BY obj.fk_product"; - dol_syslog("get list of shipment lines", LOG_DEBUG); + dol_syslog("expedition/card.php get list of shipment lines", LOG_DEBUG); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -2340,7 +2367,7 @@ if ($action == 'create') { } // Batch number managment - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if (isset($lines[$i]->detail_batch)) { print ''; print '"; - // Display lines extrafields + // Display lines extrafields. + // $line is a line of shipment if (!empty($extrafields)) { $colspan = 6; if ($origin && $origin_id > 0) { $colspan++; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { $colspan++; } if (!empty($conf->stock->enabled)) { @@ -2475,7 +2503,7 @@ if ($action == 'create') { // TODO add alternative status // 0=draft, 1=validated, 2=billed, we miss a status "delivered" (only available on order) if ($object->statut == Expedition::STATUS_CLOSED && $user->rights->expedition->creer) { - if (!empty($conf->facture->enabled) && !empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) { // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ? + if (isModEnabled('facture') && !empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) { // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ? print dolGetButtonAction('', $langs->trans('ClassifyUnbilled'), 'default', $_SERVER["PHP_SELF"].'?action=reopen&token='.newToken().'&id='.$object->id, ''); } else { print dolGetButtonAction('', $langs->trans('ReOpen'), 'default', $_SERVER["PHP_SELF"].'?action=reopen&token='.newToken().'&id='.$object->id, ''); @@ -2494,9 +2522,9 @@ if ($action == 'create') { } // Create bill - if (!empty($conf->facture->enabled) && ($object->statut == Expedition::STATUS_VALIDATED || $object->statut == Expedition::STATUS_CLOSED)) { + 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, ''); } @@ -2512,7 +2540,7 @@ if ($action == 'create') { if ($user->rights->expedition->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 shipments instead of orders - if (!empty($conf->facture->enabled) && !empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) { // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ? + if (isModEnabled('facture') && !empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) { // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ? $label = "ClassifyBilled"; $paramaction = 'classifybilled'; } @@ -2556,8 +2584,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 402fbdc04d1..357683ef35a 100644 --- a/htdocs/expedition/class/api_shipments.class.php +++ b/htdocs/expedition/class/api_shipments.class.php @@ -279,8 +279,8 @@ class Shipments extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->shipment->addline( $request_data->desc, @@ -347,8 +347,8 @@ class Shipments extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->shipment->updateline( $lineid, diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 0dec85b2e4f..b1a767e197d 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'; @@ -625,7 +625,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; } @@ -752,14 +752,14 @@ class Expedition extends CommonObject //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++; @@ -772,7 +772,7 @@ class Expedition 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. // 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); + $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 +781,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 +898,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) @@ -927,7 +934,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,7 +965,7 @@ 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)) { + if (isModEnabled('productbatch') && !empty($orderline->fk_product) && !empty($orderline->product_tobatch)) { $this->error = 'ADDLINE_WAS_CALLED_INSTEAD_OF_ADDLINEBATCH'; return -4; } @@ -1244,10 +1251,11 @@ 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++; $this->errors[] = "Error ".$this->db->lasterror(); + $error++; + $this->errors[] = "Error ".$this->db->lasterror(); } } @@ -1257,7 +1265,8 @@ class Expedition extends CommonObject // We use warehouse selected for each line $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty, 0, $langs->trans("ShipmentCanceledInDolibarr", $this->ref)); // Price is set to 0, because we don't want to see WAP changed if ($result < 0) { - $error++; $this->errors = $this->errors + $mouvS->errors; + $error++; + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } else { @@ -1266,7 +1275,8 @@ class Expedition extends CommonObject foreach ($lotArray as $lot) { $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $lot->qty, 0, $langs->trans("ShipmentCanceledInDolibarr", $this->ref), $lot->eatby, $lot->sellby, $lot->batch); // Price is set to 0, because we don't want to see WAP changed if ($result < 0) { - $error++; $this->errors = $this->errors + $mouvS->errors; + $error++; + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } @@ -1281,7 +1291,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(); @@ -1441,7 +1451,8 @@ class Expedition extends CommonObject // We use warehouse selected for each line $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty, 0, $langs->trans("ShipmentDeletedInDolibarr", $this->ref)); // Price is set to 0, because we don't want to see WAP changed if ($result < 0) { - $error++; $this->errors = $this->errors + $mouvS->errors; + $error++; + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } else { @@ -1450,7 +1461,8 @@ class Expedition extends CommonObject foreach ($lotArray as $lot) { $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $lot->qty, 0, $langs->trans("ShipmentDeletedInDolibarr", $this->ref), $lot->eatby, $lot->sellby, $lot->batch); // Price is set to 0, because we don't want to see WAP changed if ($result < 0) { - $error++; $this->errors = $this->errors + $mouvS->errors; + $error++; + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } @@ -1704,7 +1716,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)) { @@ -2069,69 +2081,6 @@ class Expedition extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Update/create delivery method. - * - * @param string $id id method to activate - * - * @return void - */ - public function update_delivery_method($id = '') - { - // phpcs:enable - if ($id == '') { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (code, libelle, description, tracking)"; - $sql .= " VALUES ('".$this->db->escape($this->update['code'])."','".$this->db->escape($this->update['libelle'])."','".$this->db->escape($this->update['description'])."','".$this->db->escape($this->update['tracking'])."')"; - $resql = $this->db->query($sql); - } else { - $sql = "UPDATE ".MAIN_DB_PREFIX."c_shipment_mode SET"; - $sql .= " code='".$this->db->escape($this->update['code'])."'"; - $sql .= ",libelle='".$this->db->escape($this->update['libelle'])."'"; - $sql .= ",description='".$this->db->escape($this->update['description'])."'"; - $sql .= ",tracking='".$this->db->escape($this->update['tracking'])."'"; - $sql .= " WHERE rowid=".((int) $id); - $resql = $this->db->query($sql); - } - if ($resql < 0) { - dol_print_error($this->db, ''); - } - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Activate delivery method. - * - * @param int $id id method to activate - * @return void - */ - public function activ_delivery_method($id) - { - // phpcs:enable - $sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=1'; - $sql .= " WHERE rowid = ".((int) $id); - - $resql = $this->db->query($sql); - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * DesActivate delivery method. - * - * @param int $id id method to desactivate - * - * @return void - */ - public function disable_delivery_method($id) - { - // phpcs:enable - $sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=0'; - $sql .= " WHERE rowid= ".((int) $id); - - $resql = $this->db->query($sql); - } - - /** * Forge an set tracking url * @@ -2258,7 +2207,8 @@ class Expedition extends CommonObject if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; - $error++; break; + $error++; + break; } } else { // line with batch detail @@ -2268,7 +2218,8 @@ class Expedition extends CommonObject if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; - $error++; break; + $error++; + break; } } } @@ -2432,7 +2383,8 @@ class Expedition extends CommonObject if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; - $error++; break; + $error++; + break; } } else { // line with batch detail @@ -2442,7 +2394,8 @@ class Expedition extends CommonObject if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; - $error++; break; + $error++; + break; } } } @@ -2835,7 +2788,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); @@ -2948,7 +2901,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/contact.php b/htdocs/expedition/contact.php index 944f76266d2..4c540adcd9e 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); } @@ -149,7 +150,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 (0) { // Do not change on shipment @@ -196,7 +197,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("RefOrder").''; @@ -1769,7 +1796,7 @@ if ($action == 'create') { print "
    '; print $langs->trans("RefProposal").''; @@ -2030,7 +2057,7 @@ if ($action == 'create') { if (!empty($conf->stock->enabled)) { print $langs->trans("WarehouseSource").' - '; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print $langs->trans("Batch"); } print ''.$langs->trans("WarehouseSource").''.$langs->trans("Batch").''; @@ -2412,13 +2439,14 @@ 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 '\n"; print ''; } - if ($typeobject == 'propal' && $object->$typeobject->id && !empty($conf->propal->enabled)) { + if ($typeobject == 'propal' && $object->$typeobject->id && isModEnabled("propal")) { print ''; } // Date approve if (!empty($arrayfields['d.date_approve']['checked'])) { print ''; } // Amount with no tax 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..316dccd91d8 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 '
    '; $objectsrc = new Commande($db); $objectsrc->fetch($object->$typeobject->id); @@ -206,7 +207,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..71e325677e6 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'; } @@ -123,7 +124,7 @@ if ($id > 0 || !empty($ref)) { $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 (0) { // Do not change on shipment 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 0d079f5dbdc..e697c0be6c3 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'; @@ -196,7 +197,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_datereceipt_start = ''; $search_datereceipt_end = ''; $search_status = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); $search_categ_cus = 0; } @@ -261,7 +262,10 @@ if ($sall || $search_product_category > 0 || $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,"; @@ -298,8 +302,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'"; @@ -369,26 +376,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); @@ -560,11 +569,11 @@ if ($sall) { $moreforfilter = ''; // If the user can view prospects other than his' -if ($user->rights->societe->client->voir || $socid) { +if ($user->rights->user->user->lire) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); - $moreforfilter .= img_picto($tmptitle, 'user'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"'); $moreforfilter .= $formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth200'); $moreforfilter .= '
    '; } @@ -572,12 +581,12 @@ if ($user->rights->societe->client->voir || $socid) { if ($user->rights->user->user->lire) { $moreforfilter .= '
    '; $tmptitle = $langs->trans('LinkedToSpecificUsers'); - $moreforfilter .= img_picto($tmptitle, 'user'); + $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"'); $moreforfilter .= $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)) { +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'); @@ -588,7 +597,7 @@ if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($use $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 +620,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 +630,13 @@ print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} // Ref if (!empty($arrayfields['e.ref']['checked'])) { print '\n"; } // Tracking number @@ -742,13 +758,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 +830,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); @@ -832,6 +855,18 @@ 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 ''; } @@ -1008,15 +1043,17 @@ while ($i < min($num, $limit)) { } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/expedition/note.php b/htdocs/expedition/note.php index d8d70b3cc49..d23bb0298ea 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); } @@ -110,7 +111,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 (0) { // Do not change on shipment diff --git a/htdocs/expedition/shipment.php b/htdocs/expedition/shipment.php index 2919a42bdb7..4aa9a9a7f54 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)) { 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'; } @@ -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); @@ -287,7 +288,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$soc->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->commande->creer) { @@ -558,7 +559,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -686,7 +702,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 "'; -$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 ''; @@ -932,7 +967,7 @@ while ($i < min($num, $limit)) { 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 ''; + print ''; if ($shipment->shipping_method_id > 0) print $langs->trans("SendingMethod".strtoupper($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 '
    '; - 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 +611,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 +636,19 @@ if ($id > 0 || !empty($ref)) { if ($resql) { $num = $db->num_rows($resql); $i = 0; - + print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; if (!empty($conf->stock->enabled)) { - print ''; + print ''; } else { - print ''; + print ''; } print "\n"; + print ''; $toBeShipped = array(); $toBeShippedTotal = 0; @@ -797,6 +799,10 @@ if ($id > 0 || !empty($ref)) { 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 ''; } else { 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..34842efaaf3 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'; 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 6cd8c05fe5b..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'; @@ -51,6 +48,8 @@ $langs->loadlangs(array('errors', 'trips')); $fk_expense = GETPOST('fk_expense', 'int'); $fk_c_exp_tax_cat = GETPOST('fk_c_exp_tax_cat', 'int'); +$vatrate = GETPOST('vatrate', 'int'); +$qty = GETPOST('qty', 'int'); // Security check $result = restrictedArea($user, 'expensereport', $fk_expense, 'expensereport'); @@ -61,30 +60,45 @@ $result = restrictedArea($user, 'expensereport', $fk_expense, 'expensereport'); */ top_httphead(); +$rep = new stdClass(); +$rep->response_status = 0; +$rep->data = null; +$rep->error = '';//@todo deprecated use error_message instead +$rep->errorMessage = ''; + if (empty($fk_expense) || $fk_expense < 0) { - echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorBadValueForParameter', $fk_expense, 'fk_expense'))); + $rep->errorMessage = $langs->transnoentitiesnoconv('ErrorBadValueForParameter', $fk_expense, 'fk_expense'); } elseif (empty($fk_c_exp_tax_cat) || $fk_c_exp_tax_cat < 0) { - echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorBadValueForParameter', $fk_c_exp_tax_cat, 'fk_c_exp_tax_cat'))); + $rep->errorMessage = $langs->transnoentitiesnoconv('ErrorBadValueForParameter', $fk_c_exp_tax_cat, 'fk_c_exp_tax_cat'); + + $rep->response_status = 'error'; } else { // @see ndfp.class.php:3576 (method: compute_total_km) $expense = new ExpenseReport($db); if ($expense->fetch($fk_expense) <= 0) { - echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorRecordNotFound'), 'fk_expense' => $fk_expense)); + $rep->errorMessage = $langs->transnoentitiesnoconv('ErrorRecordNotFound'); + $rep->response_status = 'error'; } else { $userauthor = new User($db); if ($userauthor->fetch($expense->fk_user_author) <= 0) { - echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorRecordNotFound'), 'fk_user_author' => $expense->fk_user_author)); + $rep->errorMessage = $langs->transnoentitiesnoconv('ErrorRecordNotFound'); + $rep->response_status = 'error'; } else { - $expenseik = new ExpenseReportIk($db); - $range = $expenseik->getRangeByUser($userauthor, $fk_c_exp_tax_cat); - - if (empty($range)) { - echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorRecordNotFound'), 'range' => $range)); - } else { - $ikoffset = price($range->ikoffset, 0, $langs, 1, -1, -1, $conf->currency); - echo json_encode(array('up' => $range->coef, 'ikoffset' => $range->ikoffset, 'title' => $langs->transnoentitiesnoconv('ExpenseRangeOffset', $ikoffset), 'comment' => 'offset should be applied on addline or updateline')); + $expense = new ExpenseReport($db); + $result = $expense->fetch($fk_expense); + if ($result) { + $result = $expense->computeTotalKm($fk_c_exp_tax_cat, $qty, $vatrate); + if ($result < 0) { + $rep->error = $result; + $rep->errorMessage = $langs->trans('errorComputeTtcOnMileageExpense'); + $rep->response_status = 'error'; + } else { + $rep->data = $result; + $rep->response_status = 'success'; + } } } } } +echo json_encode($rep); diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index c89723af2b9..a0d02e10bbd 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; } @@ -263,7 +264,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)) { @@ -383,10 +384,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -493,10 +494,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -603,10 +604,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -717,10 +718,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -831,10 +832,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -943,10 +944,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -982,10 +983,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1011,10 +1012,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1229,10 +1230,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1321,10 +1322,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1467,6 +1468,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 +1625,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 @@ -1691,7 +1698,7 @@ if ($action == 'create') { // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -1711,7 +1718,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)) { $proj = new Project($db); $proj->fetch($object->fk_project); $morehtmlref.=''; @@ -1923,7 +1930,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 +1942,7 @@ if ($action == 'create') { print ''; print ''; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } print ''; @@ -1943,7 +1951,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 +1970,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 +2065,7 @@ if ($action == 'create') { print ''; //print ''; print ''; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } print ''; @@ -2100,7 +2110,7 @@ if ($action == 'create') { print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } @@ -2260,7 +2271,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)) { @@ -2335,7 +2346,7 @@ if ($action == 'create') { print ''; // Select project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; @@ -2376,7 +2387,7 @@ if ($action == 'create') { // Quantity print ''; //print ''; @@ -2408,7 +2419,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') { @@ -2485,7 +2496,7 @@ if ($action == 'create') { print ''; print ''; print ''; - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; } print ''; @@ -2514,7 +2525,7 @@ if ($action == 'create') { print ''; // Select project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; @@ -2558,7 +2569,7 @@ if ($action == 'create') { // Quantity print ''; // Picture @@ -2578,7 +2589,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Description").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyShipped").''.$langs->trans("KeepToShip").''.$langs->trans("Description").''.$langs->trans("QtyOrdered").''.$langs->trans("QtyShipped").''.$langs->trans("KeepToShip").''.$langs->trans("RealStock").''.$langs->trans("RealStock").'  
    '.$langs->trans('NotePublic').''; @@ -1476,6 +1479,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 +2122,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); @@ -2135,7 +2145,8 @@ if ($action == 'create') { // IK if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) { print ''; - print dol_getIdFromCode($db, $line->fk_c_exp_tax_cat, 'c_exp_tax_cat', 'rowid', 'label'); + $exp_tax_cat_label = dol_getIdFromCode($db, $line->fk_c_exp_tax_cat, 'c_exp_tax_cat', 'rowid', 'label'); + print $langs->trans($exp_tax_cat_label); print ''; $formproject->select_projects(-1, $line->fk_project, 'fk_project', 0, 0, $projectRequired ? 0 : 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth300'); print ''; - print ''; // We must be able to enter decimal qty + print ''; // We must be able to enter decimal qty print ''.$langs->trans('AmountHT').'
    '.$langs->trans('Date').''.$form->textwithpicto($langs->trans('Project'), $langs->trans("ClosedProjectsAreHidden")).''.$langs->trans('Type').''; $formproject->select_projects(-1, $fk_project, 'fk_project', 0, 0, $projectRequired ? 0 : 1, -1, 0, 0, 0, '', 0, 0, 'maxwidth300'); print ''; - print ''; // We must be able to enter decimal qty + print ''; // We must be able to enter decimal qty print '
    '; print '
    '; - + //var_dump($object); print ''; @@ -2711,7 +2768,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/api_expensereports.class.php b/htdocs/expensereport/class/api_expensereports.class.php index 37319a3ec71..876b08f18f0 100644 --- a/htdocs/expensereport/class/api_expensereports.class.php +++ b/htdocs/expensereport/class/api_expensereports.class.php @@ -251,8 +251,8 @@ class ExpenseReports extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->expensereport->addline( $request_data->desc, @@ -319,8 +319,8 @@ class ExpenseReports extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); - $request_data->label = checkVal($request_data->label); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); + $request_data->label = sanitizeVal($request_data->label); $updateRes = $this->expensereport->updateline( $lineid, diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 1ed0e7a30f5..ca8f1698767 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -112,6 +112,9 @@ class ExpenseReport extends CommonObject public $fk_user_validator; // User that is defined to approve // Validation + /* @deprecated */ + public $datevalid; + public $date_valid; // User making validation public $fk_user_valid; public $user_valid_infos; @@ -126,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 @@ -395,7 +402,6 @@ class ExpenseReport extends CommonObject } } - /** * Load an object from its id and create a new one in database * @@ -1806,8 +1812,6 @@ class ExpenseReport extends CommonObject // We don't know seller and buyer for expense reports $seller = $mysoc; // We use same than current company (expense report are often done in same country) $seller->tva_assuj = 1; // Most seller uses vat - $seller->localtax1_assuj = $mysoc->localtax1_assuj; // We don't know, we reuse the state of company - $seller->localtax2_assuj = $mysoc->localtax1_assuj; // We don't know, we reuse the state of company $buyer = new Societe($this->db); $localtaxes_type = getLocalTaxesFromRate($vatrate, 0, $buyer, $seller); @@ -1891,10 +1895,7 @@ class ExpenseReport extends CommonObject if (!is_object($seller)) { $seller = $mysoc; // We use same than current company (expense report are often done in same country) $seller->tva_assuj = 1; // Most seller uses vat - $seller->localtax1_assuj = $mysoc->localtax1_assuj; // We don't know, we reuse the state of company - $seller->localtax2_assuj = $mysoc->localtax1_assuj; // We don't know, we reuse the state of company } - //$buyer = new Societe($this->db); $expensereportrule = new ExpenseReportRule($db); $rulestocheck = $expensereportrule->getAllRule($this->line->fk_c_type_fees, $this->line->date, $this->fk_user_author); @@ -1979,10 +1980,7 @@ class ExpenseReport extends CommonObject if (!is_object($seller)) { $seller = $mysoc; // We use same than current company (expense report are often done in same country) $seller->tva_assuj = 1; // Most seller uses vat - $seller->localtax1_assuj = $mysoc->localtax1_assuj; // We don't know, we reuse the state of company - $seller->localtax2_assuj = $mysoc->localtax1_assuj; // We don't know, we reuse the state of company } - //$buyer = new Societe($this->db); $expenseik = new ExpenseReportIk($this->db); $range = $expenseik->getRangeByUser($userauthor, $this->line->fk_c_exp_tax_cat); @@ -2564,6 +2562,106 @@ class ExpenseReport extends CommonObject return -1; } } + + /** + * \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 + * @return int <0 if KO, total ttc if OK + */ + public function computeTotalKm($fk_cat, $qty, $tva) + { + global $langs,$user,$db,$conf; + + + $cumulYearQty = 0; + $ranges = array(); + $coef = 0; + + + if ($fk_cat < 0) { + $this->error = $langs->trans('ErrorBadParameterCat'); + return -1; + } + + if ($qty <= 0) { + $this->error = $langs->trans('ErrorBadParameterQty'); + return -1; + } + + $currentUser = new User($db); + $currentUser->fetch($this->fk_user); + $currentUser->getrights('expensereport'); + //Clean + $qty = price2num($qty); + + $sql = " SELECT r.range_ik, t.ikoffset as offset, t.coef"; + $sql .= " FROM ".MAIN_DB_PREFIX."expensereport_ik t"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_exp_tax_range r ON r.rowid = t.fk_range"; + $sql .= " WHERE t.fk_c_exp_tax_cat = ".(int) $fk_cat; + $sql .= " ORDER BY r.range_ik ASC"; + + dol_syslog("expenseReport::computeTotalkm sql=".$sql, LOG_DEBUG); + + $result = $this->db->query($sql); + + if ($result) { + if ($conf->global->EXPENSEREPORT_CALCULATE_MILEAGE_EXPENSE_COEFFICIENT_ON_CURRENT_YEAR) { + $arrayDate = dol_getdate(dol_now()); + $sql = " SELECT count(n.qty) as cumul FROM ".MAIN_DB_PREFIX."expensereport_det n"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport e ON e.rowid = n.fk_expensereport"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_type_fees tf ON tf.id = n.fk_c_type_fees"; + $sql.= " WHERE e.fk_user_author = ".(int) $this->fk_user_author; + $sql.= " AND YEAR(n.date) = ".(int) $arrayDate['year']; + $sql.= " AND tf.code = 'EX_KME' "; + $sql.= " AND e.fk_statut = ".(int) ExpenseReport::STATUS_VALIDATED; + + $resql = $this->db->query($sql); + + if ($resql) { + $obj = $this->db->fetch_object($resql); + $cumulYearQty = $obj->cumul; + } + $qty = $cumulYearQty + $qty; + } + + $num = $this->db->num_rows($result); + + if ($num) { + for ($i = 0; $i < $num; $i++) { + $obj = $this->db->fetch_object($result); + + $ranges[$i] = $obj; + } + + + for ($i = 0; $i < $num; $i++) { + if ($i < ($num - 1)) { + if ($qty > $ranges[$i]->range_ik && $qty < $ranges[$i+1]->range_ik) { + $coef = $ranges[$i]->coef; + $offset = $ranges[$i]->offset; + } + } else { + if ($qty > $ranges[$i]->range_ik) { + $coef = $ranges[$i]->coef; + $offset = $ranges[$i]->offset; + } + } + } + $total_ht = $coef; + return $total_ht; + } else { + $this->error = $langs->trans('TaxUndefinedForThisCategory'); + return 0; + } + } else { + $this->error = $this->db->error()." sql=".$sql; + + return -1; + } + } } @@ -2618,9 +2716,11 @@ class ExpenseReportLine extends CommonObjectLine public $projet_ref; public $projet_title; + public $rang; public $vatrate; public $vat_src_code; + public $tva_tx; public $localtax1_tx; public $localtax2_tx; public $localtax1_type; @@ -2944,4 +3044,6 @@ class ExpenseReportLine extends CommonObjectLine return -2; } } + + // ajouter ici comput_ ... } diff --git a/htdocs/expensereport/class/expensereport_ik.class.php b/htdocs/expensereport/class/expensereport_ik.class.php index 53cf3695b12..0d374f1c722 100644 --- a/htdocs/expensereport/class/expensereport_ik.class.php +++ b/htdocs/expensereport/class/expensereport_ik.class.php @@ -22,12 +22,12 @@ * \brief File of class to manage expense ik */ -require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** * Class to manage inventories */ -class ExpenseReportIk extends CoreObject +class ExpenseReportIk extends CommonObject { /** * @var string ID to identify managed object @@ -68,6 +68,7 @@ class ExpenseReportIk extends CoreObject */ public $ikoffset; + /** * Attribute object linked with database * @var array @@ -80,17 +81,75 @@ class ExpenseReportIk extends CoreObject ,'ikoffset'=>array('type'=>'double') ); + /** * Constructor * * @param DoliDB $db Database handler */ - public function __construct(DoliDB &$db) + public function __construct(DoliDB $db) { - parent::__construct($db); - parent::init(); + $this->db = $db; + } - $this->errors = array(); + + /** + * 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; + } + + + /** + * 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; + } + + + /** + * 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); } @@ -138,12 +197,13 @@ class ExpenseReportIk extends CoreObject { $default_range = (int) $userauthor->default_range; // if not defined, then 0 $ranges = $this->getRangesByCategory($fk_c_exp_tax_cat); - + // prevent out of range -1 indice + $indice = $default_range > 0 ? $default_range - 1 : 0; // substract 1 because array start from 0 - if (empty($ranges) || !isset($ranges[$default_range - 1])) { + if (empty($ranges) || !isset($ranges[$indice])) { return false; } else { - return $ranges[$default_range - 1]; + return $ranges[$indice]; } } diff --git a/htdocs/expensereport/class/expensereport_rule.class.php b/htdocs/expensereport/class/expensereport_rule.class.php index ae89b4b0f51..02bf8b8ce5c 100644 --- a/htdocs/expensereport/class/expensereport_rule.class.php +++ b/htdocs/expensereport/class/expensereport_rule.class.php @@ -22,12 +22,12 @@ * \brief File of class to manage expense ik */ -require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** * Class to manage inventories */ -class ExpenseReportRule extends CoreObject +class ExpenseReportRule extends CommonObject { /** * @var string ID to identify managed object @@ -125,21 +125,78 @@ class ExpenseReportRule extends CoreObject ,'entity'=>array('type'=>'integer') ); + /** * Constructor * * @param DoliDB $db Database handler */ - public function __construct(DoliDB &$db) + public function __construct(DoliDB $db) { - global $conf; - - parent::__construct($db); - parent::init(); - - $this->errors = array(); + $this->db = $db; } + + /** + * 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; + } + + + /** + * 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; + } + + + /** + * 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); + } + + /** * Return all rules or filtered by something * diff --git a/htdocs/expensereport/class/paymentexpensereport.class.php b/htdocs/expensereport/class/paymentexpensereport.class.php index 5f9e9f17e6f..e871cba86b3 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); @@ -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..fced8a58e14 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'; 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 760c25e4db8..896bb29cf43 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'; @@ -224,7 +225,7 @@ if (empty($reshook)) { $search_date_endendyear = ''; $search_date_end = ''; $search_date_endend = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -285,7 +286,7 @@ $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."expensereport as d"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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)"; } $sql .= ", ".MAIN_DB_PREFIX."user as u"; @@ -482,7 +483,7 @@ if ($resql) { if ($canedit) { print '
    '.$langs->trans("AddTrip").''; } else { - print ''.$langs->trans("AddTrip").''; + print ''.$langs->trans("AddTrip").''; } print ''; @@ -580,14 +581,14 @@ if ($resql) { if (!empty($arrayfields['d.date_valid']['checked'])) { print '
    '; //print ''; - //$formother->select_year($year_end,'year_end',1, $min_year, $max_year); + //print $formother->selectyear($year_end,'year_end',1, $min_year, $max_year); print ''; //print ''; - //$formother->select_year($year_end,'year_end',1, $min_year, $max_year); + //print $formother->selectyear($year_end,'year_end',1, $min_year, $max_year); 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); diff --git a/htdocs/expensereport/payment/info.php b/htdocs/expensereport/payment/info.php index a654c77b6cd..b5d87b81a51 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'; diff --git a/htdocs/expensereport/payment/list.php b/htdocs/expensereport/payment/list.php new file mode 100644 index 00000000000..cb93aae4ff0 --- /dev/null +++ b/htdocs/expensereport/payment/list.php @@ -0,0 +1,598 @@ + + * Copyright (C) 2004 Eric Seigne + * Copyright (C) 2004-2020 Laurent Destailleur + * Copyright (C) 2004 Christophe Combelles + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> + * Copyright (C) 2015 Marcos García + * Copyright (C) 2015 Juanjo Menent + * Copyright (C) 2017-2021 Alexandre Spangaro + * Copyright (C) 2018-2021 Frédéric France + * Copyright (C) 2020 Tobias Sekan + * Copyright (C) 2021 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 + * 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/expensereport/payment/list.php +* \ingroup expensereport + * \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'; +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.'/accountancy/class/accountingjournal.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array('expensereports', 'bills', 'banks', 'compta')); + +$action = GETPOST('action', 'alpha'); +$massaction = GETPOST('massaction', 'alpha'); +$optioncss = GETPOST('optioncss', 'alpha'); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'vendorpaymentlist'; + +$socid = GETPOST('socid', 'int'); + +// Security check +if ($user->socid) $socid = $user->socid; + +$search_ref = GETPOST('search_ref', 'alpha'); +$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_user = GETPOST('search_user', 'alpha'); +$search_payment_type = GETPOST('search_payment_type'); +$search_cheque_num = GETPOST('search_cheque_num', 'alpha'); +$search_bank_account = GETPOST('search_bank_account', 'int'); +$search_amount = GETPOST('search_amount', 'alpha'); // alpha because we must be able to search on '< x' + +$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 = "DESC"; +} +if (!$sortfield) { + $sortfield = "pndf.datep"; +} + +$search_all = trim(GETPOSTISSET("search_all") ? GETPOST("search_all", 'alpha') : GETPOST('sall')); + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array( + 'pndf.rowid'=>"RefPayment", + 'u.login'=>"User", + 'pndf.num_payment'=>"Numero", + 'pndf.amount'=>"Amount", +); + +$arrayfields = array( + 'pndf.rowid' =>array('label'=>"RefPayment", 'checked'=>1, 'position'=>10), + 'pndf.datep' =>array('label'=>"Date", 'checked'=>1, 'position'=>20), + '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'=>(isModEnabled("banque"))), + 'pndf.amount' =>array('label'=>"Amount", 'checked'=>1, 'position'=>70), +); +$arrayfields = dol_sort_array($arrayfields, 'position'); + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('paymentexpensereportlist')); +$object = new PaymentExpenseReport($db); + +// Security check +if ($user->socid) { + $socid = $user->socid; +} + +// doesn't work :-( +// restrictedArea($user, 'fournisseur'); +// doesn't work :-( +// require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; +// $object = new PaiementFourn($db); +// restrictedArea($user, $object->element); +if (empty($user->rights->expensereport->lire)) { + accessforbidden(); +} + + +/* + * Actions + */ + +$childids = $user->getAllChildIds(1); + +$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)) { + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + 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_ref = ''; + $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_user = ''; + $search_payment_type = ''; + $search_cheque_num = ''; + $search_bank_account = ''; + $search_amount = ''; + } +} + +/* + * View + */ + +llxHeader('', $langs->trans('ListPayment')); + +$form = new Form($db); +$formother = new FormOther($db); +$accountstatic = new Account($db); +$userstatic = new User($db); +$paymentexpensereportstatic = new PaymentExpenseReport($db); + +$sql = 'SELECT pndf.rowid, pndf.rowid as ref, pndf.datep, pndf.amount as pamount, pndf.num_payment'; +$sql .= ', u.rowid as userid, u.login, u.lastname, u.firstname'; +$sql .= ', c.code as paiement_type, c.libelle as paiement_libelle'; +$sql .= ', ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.iban_prefix, ba.bic, ba.currency_code, ba.fk_accountancy_journal as accountancy_journal'; +$sql .= ', SUM(pndf.amount)'; +$sql .= ' FROM '.MAIN_DB_PREFIX.'payment_expensereport AS pndf'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'expensereport AS ndf ON ndf.rowid=pndf.fk_expensereport'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement AS c ON pndf.fk_typepayment = c.id'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user AS u ON u.rowid = ndf.fk_user_author'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON pndf.fk_bank = b.rowid'; +$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank_account as ba ON b.fk_account = ba.rowid'; +$sql .= ' WHERE ndf.entity IN ('.getEntity("expensereport").')'; + +// RESTRICT RIGHTS +if (empty($user->rights->expensereport->readall) && empty($user->rights->expensereport->lire_tous) + && (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->expensereport->writeall_advance))) { + $sql .= " AND ndf.fk_user_author IN (".$db->sanitize(join(',', $childids)).")\n"; +} + +if ($search_ref) { + $sql .= natural_search('pndf.rowid', $search_ref); +} +if ($search_date_start) { + $sql .= " AND pndf.datep >= '" . $db->idate($search_date_start) . "'"; +} +if ($search_date_end) { + $sql .=" AND pndf.datep <= '" . $db->idate($search_date_end) . "'"; +} + +if ($search_user) { + $sql .= natural_search(array('u.login', 'u.lastname', 'u.firstname'), $search_user); +} +if ($search_payment_type != '') { + $sql .= " AND c.code='".$db->escape($search_payment_type)."'"; +} +if ($search_cheque_num != '') { + $sql .= natural_search('pndf.num_payment', $search_cheque_num); +} +if ($search_amount) { + $sql .= natural_search('pndf.amount', $search_amount, 1); +} +if ($search_bank_account > 0) { + $sql .= ' AND b.fk_account = '.((int) $search_bank_account); +} +if ($search_all) { + $sql .= natural_search(array_keys($fieldstosearchall), $search_all); +} + +// Add where from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; + +$sql .= ' GROUP BY pndf.rowid, pndf.datep, pndf.amount, pndf.num_payment, u.rowid, u.login, u.lastname, u.firstname, c.code, c.libelle,'; +$sql .= ' ba.rowid, ba.ref, ba.label, ba.number, ba.account_number, ba.iban_prefix, ba.bic, ba.currency_code, ba.fk_accountancy_journal'; + +$sql .= $db->order($sortfield, $sortorder); + +$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); + +$resql = $db->query($sql); +if (!$resql) { + dol_print_error($db); + llxFooter(); + $db->close(); + exit; +} + +$num = $db->num_rows($resql); +$i = 0; + +$param = ''; +if (!empty($contextpage) && $contextpage != $_SERVER['PHP_SELF']) { + $param .= '&contextpage='.urlencode($contextpage); +} +if ($limit > 0 && $limit != $conf->liste_limit) { + $param .= '&limit='.urlencode($limit); +} +if ($optioncss != '') { + $param .= '&optioncss='.urlencode($optioncss); +} + +if ($search_ref) { + $param .= '&search_ref='.urlencode($search_ref); +} +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_user) { + $param .= '&search_user='.urlencode($search_user); +} +if ($search_payment_type) { + $param .= '&search_payment_type='.urlencode($search_payment_type); +} +if ($search_cheque_num) { + $param .= '&search_cheque_num='.urlencode($search_cheque_num); +} +if ($search_amount) { + $param .= '&search_amount='.urlencode($search_amount); +} + +if ($search_bank_account) { + $param .= '&search_bank_account='.urlencode($search_bank_account); +} + +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; + +print '
    '; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +print_barre_liste($langs->trans('ExpenseReportPayments'), $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'expensereport', 0, '', '', $limit, 0, 0, 1); + +if ($search_all) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); + } + print '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '; +} + +$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 (!empty($massactionbutton)) { + $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); +} + +print '
    '; +print ''; + +print ''; + +// Filter: Ref +if (!empty($arrayfields['pndf.rowid']['checked'])) { + print ''; +} + +// Filter: Date +if (!empty($arrayfields['pndf.datep']['checked'])) { + print ''; +} + +// Filter: Thirdparty +if (!empty($arrayfields['u.login']['checked'])) { + print ''; +} + +// Filter: Payment type +if (!empty($arrayfields['c.libelle']['checked'])) { + print ''; +} + +// Filter: Cheque number (fund transfer) +if (!empty($arrayfields['pndf.num_payment']['checked'])) { + print ''; +} + +// Filter: Bank account +if (!empty($arrayfields['ba.label']['checked'])) { + print ''; +} + +// Filter: Amount +if (!empty($arrayfields['pndf.amount']['checked'])) { + print ''; +} + +// 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; + +// Buttons +print ''; + +print ''; + +$totalarray = array(); +$totalarray['nbfield'] = 0; + +print ''; +if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print_liste_field_titre('#', $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['pndf.rowid']['checked'])) { + print_liste_field_titre($arrayfields['pndf.rowid']['label'], $_SERVER["PHP_SELF"], 'pndf.rowid', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['pndf.datep']['checked'])) { + print_liste_field_titre($arrayfields['pndf.datep']['label'], $_SERVER["PHP_SELF"], 'pndf.datep', '', $param, '', $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['u.login']['checked'])) { + print_liste_field_titre($arrayfields['u.login']['label'], $_SERVER["PHP_SELF"], 'u.lastname', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['c.libelle']['checked'])) { + print_liste_field_titre($arrayfields['c.libelle']['label'], $_SERVER["PHP_SELF"], 'c.libelle', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['pndf.num_payment']['checked'])) { + print_liste_field_titre($arrayfields['pndf.num_payment']['label'], $_SERVER["PHP_SELF"], "pndf.num_payment", '', $param, '', $sortfield, $sortorder, '', $arrayfields['pndf.num_payment']['tooltip']); +} +if (!empty($arrayfields['ba.label']['checked'])) { + print_liste_field_titre($arrayfields['ba.label']['label'], $_SERVER["PHP_SELF"], 'ba.label', '', $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['pndf.amount']['checked'])) { + print_liste_field_titre($arrayfields['pndf.amount']['label'], $_SERVER["PHP_SELF"], 'pndf.amount', '', $param, '', $sortfield, $sortorder, 'right '); +} + +// 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; + +print_liste_field_titre($selectedfields, $_SERVER['PHP_SELF'], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); +print ''; + +$checkedCount = 0; +foreach ($arrayfields as $column) { + if ($column['checked']) { + $checkedCount++; + } +} + +// Loop on record +// -------------------------------------------------------------------- +$i = 0; +$savnbfield = $totalarray['nbfield']; +$totalarray = array(); +$totalarray['nbfield'] = 0; +while ($i < min($num, $limit)) { + $objp = $db->fetch_object($resql); + + $paymentexpensereportstatic->id = $objp->rowid; + $paymentexpensereportstatic->ref = $objp->ref; + $paymentexpensereportstatic->datepaye = $objp->datep; + + $userstatic->id = $objp->userid; + $userstatic->lastname = $objp->lastname; + $userstatic->firstname = $objp->firstname; + + print ''; + + // No + if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER_IN_LIST)) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Ref + if (!empty($arrayfields['pndf.rowid']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Date + if (!empty($arrayfields['pndf.datep']['checked'])) { + $dateformatforpayment = 'dayhour'; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Thirdparty + if (!empty($arrayfields['u.login']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Pyament type + if (!empty($arrayfields['c.libelle']['checked'])) { + $payment_type = $langs->trans("PaymentType".$objp->paiement_type) != ("PaymentType".$objp->paiement_type) ? $langs->trans("PaymentType".$objp->paiement_type) : $objp->paiement_libelle; + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Cheque number (fund transfer) + if (!empty($arrayfields['pndf.num_payment']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Bank account + if (!empty($arrayfields['ba.label']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Amount + if (!empty($arrayfields['pndf.amount']['checked'])) { + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + $totalarray['pos'][$checkedCount] = 'amount'; + if (empty($totalarray['val']['amount'])) { + $totalarray['val']['amount'] = $objp->pamount; + } else { + $totalarray['val']['amount'] += $objp->pamount; + } + } + + // Buttons + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + + print ''; + $i++; +} + +// Show total line +include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + +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 ''; + $form->select_types_paiements($search_payment_type, 'search_payment_type', '', 2, 1, 1); + print ''; + print ''; + print ''; + $form->select_comptes($search_bank_account, 'search_bank_account', 0, '', 1); + print ''; + print ''; + print ''; +print $form->showFilterAndCheckAddButtons(0); +print '
    '.(($offset * $limit) + $i).''.$paymentexpensereportstatic->getNomUrl(1).''.dol_print_date($db->jdate($objp->datep), $dateformatforpayment).''; + if ($userstatic->id > 0) { + print $userstatic->getNomUrl(1); + } + print ''.$payment_type.' '.dol_trunc($objp->num_payment, 32).''.$objp->num_payment.''; + if ($objp->bid) { + $accountstatic->id = $objp->bid; + $accountstatic->ref = $objp->bref; + $accountstatic->label = $objp->blabel; + $accountstatic->number = $objp->number; + $accountstatic->iban = $objp->iban_prefix; + $accountstatic->bic = $objp->bic; + $accountstatic->currency_code = $objp->currency_code; + $accountstatic->account_number = $objp->account_number; + + $accountingjournal = new AccountingJournal($db); + $accountingjournal->fetch($objp->accountancy_journal); + $accountstatic->accountancy_journal = $accountingjournal->code; + + print $accountstatic->getNomUrl(1); + } else { + print ' '; + } + print ''.price($objp->pamount).'
    '; +print '
    '; +print '
    '; + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php index ee80c9bc24a..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 ''."\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"; @@ -212,10 +217,10 @@ if ($action == 'create' || empty($action)) { if ($resql) { $obj = $db->fetch_object($resql); $sumpaid = $obj->total; - $db->free(); + $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..b4d11320411 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'; diff --git a/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php b/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php index 76a11c7121b..3835740dd40 100644 --- a/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php +++ b/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php @@ -102,7 +102,9 @@ if (empty($conf->global->EXPENSEREPORT_DISABLE_ATTACHMENT_ON_LINES)) { } print '
    '; $checked = ''; - //var_dump(GETPOST($file['relativename'])); var_dump($file['relativename']); var_dump($_FILES['userfile']['name']); + //var_dump(GETPOST($file['relativename'])); + //var_dump($file['relativename']); + //var_dump($_FILES['userfile']['name']); // If a file was just uploaded, we check to preselect it if (is_array($_FILES['userfile']['name'])) { foreach ($_FILES['userfile']['name'] as $tmpfile) { diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index c87f03f3110..883ba7ea11e 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -268,7 +268,7 @@ class Export continue; } if ($value != '') { - $sqlWhere .= " and ".$this->build_filterQuery($this->array_export_TypeFields[$indice][$key], $key, $array_filterValue[$key]); + $sqlWhere .= " AND ".$this->build_filterQuery($this->array_export_TypeFields[$indice][$key], $key, $array_filterValue[$key]); } } $sql .= $sqlWhere; @@ -302,7 +302,7 @@ class Export public function build_filterQuery($TypeField, $NameField, $ValueField) { // phpcs:enable - $NameField = checkVal($NameField, 'aZ09'); + $NameField = sanitizeVal($NameField, 'aZ09'); $szFilterQuery = ''; //print $TypeField." ".$NameField." ".$ValueField; @@ -350,6 +350,13 @@ class Export case 'Boolean': $szFilterQuery = " ".$NameField."=".(is_numeric($ValueField) ? $ValueField : ($ValueField == 'yes' ? 1 : 0)); break; + case 'FormSelect': + if (is_numeric($ValueField) && $ValueField > 0) { + $szFilterQuery = " ".$NameField." = ".((float) $ValueField); + } else { + $szFilterQuery = " 1=1"; // Test always true + } + break; case 'Status': case 'List': if (is_numeric($ValueField)) { @@ -402,7 +409,7 @@ class Export public function build_filterField($TypeField, $NameField, $ValueField) { // phpcs:enable - global $conf, $langs; + global $conf, $langs, $form; $szFilterField = ''; $InfoFieldList = explode(":", $TypeField); @@ -443,6 +450,16 @@ class Export $szFilterField .= ' value="0">'.yn(0).''; $szFilterField .= ""; break; + case 'FormSelect': + //var_dump($NameField); + if ($InfoFieldList[1] == 'select_company') { + $szFilterField .= $form->select_company('', $NameField, '', 1); + } elseif ($InfoFieldList[1] == 'selectcontacts') { + $szFilterField .= $form->selectcontacts(0, '', $NameField, ' '); + } elseif ($InfoFieldList[1] == 'select_dolusers') { + $szFilterField .= $form->select_dolusers('', $NameField, 1); + } + break; case 'List': // 0 : Type du champ // 1 : Nom de la table @@ -615,6 +632,9 @@ class Export } else { $filename = "export_".$datatoexport; } + if (!empty($conf->global->EXPORT_NAME_WITH_DT)) { + $filename .= dol_print_date(dol_now(), '%Y%m%d%_%H%M'); + } $filename .= '.'.$objmodel->getDriverExtension(); $dirname = $conf->export->dir_temp.'/'.$user->id; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index b07d68f8591..4591ccd0bf3 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -451,7 +451,7 @@ if ($step == 1 || !$datatoexport) { print $label; print ''; print ''; - // List of filtered fiels + // List of filtered fields if (isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) { print ''; $list = ''; if (!empty($array_filtervalue)) { foreach ($array_filtervalue as $code => $value) { + if (preg_match('/^FormSelect:/', $objexport->array_export_TypeFields[0][$code])) { + // We discard this filter if it is a FromSelect field with a value of -1. + if ($value == -1) { + continue; + } + } 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] : '')."'"; } } } @@ -1015,7 +1021,7 @@ if ($step == 4 && $datatoexport) { print $form->selectarray('visibility', $arrayvisibility, 'private'); print ''; print ''; $tmpuser = new User($db); @@ -1148,12 +1154,18 @@ if ($step == 5 && $datatoexport) { $list = ''; if (!empty($array_filtervalue)) { foreach ($array_filtervalue as $code => $value) { + if (preg_match('/^FormSelect:/', $objexport->array_export_TypeFields[0][$code])) { + // We discard this filter if it is a FromSelect field with a value of -1. + if ($value == -1) { + continue; + } + } 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] : '')."'"; } } } diff --git a/htdocs/exports/index.php b/htdocs/exports/index.php index 3ba5e0a3591..41d6cd18ed0 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); 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 552d9f70c97..67427f8f73b 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'; @@ -83,7 +84,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/fichinter/admin/fichinterdet_extrafields.php b/htdocs/fichinter/admin/fichinterdet_extrafields.php index 439cad6c532..69913abd188 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'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/fichinter/card-rec.php b/htdocs/fichinter/card-rec.php index 0953d314202..6c07ec6837d 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'; } @@ -166,7 +167,7 @@ if ($action == 'add') { // on récupère les enregistrements $object->fetch($id); - + $res = $object->fetch_lines(); // on transfert les données de l'un vers l'autre if ($object->socid > 0) { $newinter->socid = $object->socid; @@ -194,7 +195,7 @@ if ($action == 'add') { if ($newfichinterid > 0) { // Now we add line of details foreach ($object->lines as $line) { - $newinter->addline($user, $newfichinterid, $line->desc, '', $line->duree, ''); + $newinter->addline($user, $newfichinterid, $line->desc, $line->datei, $line->duree, ''); } // on update le nombre d'inter crée à partir du modèle @@ -241,10 +242,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); } @@ -272,10 +273,10 @@ if ($action == 'create') { 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++; } @@ -314,7 +315,7 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); 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 '); @@ -834,7 +835,7 @@ if ($action == 'create') { print ''; } - if (!empty($conf->contrat->enabled)) { + if (isModEnabled('contrat')) { print ''; } - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { print ''; + // Ref customer + print ''; + print ''; + // Description (must be a textarea and not html must be allowed (used in list view) print ''; print ''; // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load("project"); @@ -906,7 +929,7 @@ if ($action == 'create') { } // Contract - if ($conf->contrat->enabled) { + if (isModEnabled('contrat')) { $langs->load("contracts"); print '"; - if (!empty($conf->multicurrency->enabled)) + if (isModEnabled("multicurrency")) { print ''; print '"; @@ -1040,9 +1063,7 @@ if ($action == 'create') { print ''; } } elseif ($id > 0 || !empty($ref)) { - /* - * Affichage en mode visu - */ + // View mode $object->fetch($id, $ref); $object->fetch_thirdparty(); @@ -1134,12 +1155,12 @@ if ($action == 'create') { $morehtmlref = '
    '; // Ref customer - //$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->fichinter->creer, 'string', '', 0, 1); - //$morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->fichinter->creer, 'string', '', null, null, '', 1); + $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); + $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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) { @@ -1179,7 +1200,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 ($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").''; } @@ -519,7 +519,7 @@ if ($step == 2 && $datatoexport) { print ''.$langs->trans("SelectExportFields").' '; $htmlother->select_export_model($exportmodelid, 'exportmodelid', $datatoexport, 1, $user->id); print ' '; - print ''; + print ''; print ''; print ''; @@ -868,18 +868,24 @@ if ($step == 4 && $datatoexport) { print ''.$list.'
    '.$langs->trans("FilteredFields").''; - print ''; + print ''; print '
    ".$langs->trans("Project").""; $projectid = GETPOST('projectid') ?GETPOST('projectid') : $object->fk_project; @@ -328,7 +329,7 @@ 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; @@ -484,7 +485,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').' '; @@ -539,7 +540,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Description").''.nl2br($object->description)."
    '; @@ -737,7 +738,7 @@ if ($action == 'create') { print ''; + print $langs->trans("AddIntervention").''; } if ($user->rights->ficheinter->supprimer) { @@ -800,10 +801,10 @@ if ($action == 'create') { print '
    '.$langs->trans("None").''; if ($objp->fk_contrat > 0) { $contratstatic->fetch($objp->fk_contrat); @@ -842,7 +843,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 0d7e5278a14..a090c8573c4 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -5,9 +5,9 @@ * Copyright (C) 2011-2020 Juanjo Menent * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2018 Ferran Marcet - * Copyright (C) 2014-2018 Charlene Benke + * 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,17 +30,18 @@ * \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'; } -if ($conf->contrat->enabled) { +if (isModEnabled('contrat')) { require_once DOL_DOCUMENT_ROOT."/core/class/html.formcontract.class.php"; require_once DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php"; } @@ -55,6 +56,7 @@ $langs->loadLangs(array('bills', 'companies', 'interventions', 'stocks')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); +$ref_client = GETPOST('ref_client', 'alpha'); $socid = (int) GETPOST('socid', 'int'); $contratid = (int) GETPOST('contratid', 'int'); $action = GETPOST('action', 'alpha'); @@ -64,6 +66,7 @@ $mesg = GETPOST('msg', 'alpha'); $origin = GETPOST('origin', 'alpha'); $originid = (GETPOST('originid', 'int') ?GETPOST('originid', 'int') : GETPOST('origin_id', 'int')); // For backward compatibility $note_public = GETPOST('note_public', 'restricthtml'); +$note_private = GETPOST('note_private', 'restricthtml'); $lineid = GETPOST('line_id', 'int'); $error = 0; @@ -78,6 +81,7 @@ $hookmanager->initHooks(array('interventioncard', 'globalcard')); $object = new Fichinter($db); $extrafields = new ExtraFields($db); +$objectsrc = null; $extrafields->fetch_name_optionals_label($object->table_element); @@ -170,10 +174,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -195,10 +199,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -222,6 +226,7 @@ if (empty($reshook)) { $object->author = $user->id; $object->description = GETPOST('description', 'restricthtml'); $object->ref = $ref; + $object->ref_client = $ref_client; $object->model_pdf = GETPOST('model', 'alpha'); $object->note_private = GETPOST('note_private', 'restricthtml'); $object->note_public = GETPOST('note_public', 'restricthtml'); @@ -390,11 +395,15 @@ if (empty($reshook)) { } } } else { - $mesg = $srcobject->error; + $langs->load("errors"); + setEventMessages($srcobject->error, $srcobject->errors, 'errors'); + $action = 'create'; $error++; } } else { - $mesg = $object->error; + $langs->load("errors"); + setEventMessages($object->error, $object->errors, 'errors'); + $action = 'create'; $error++; } } else { @@ -418,12 +427,14 @@ if (empty($reshook)) { $langs->load("errors"); setEventMessages($object->error, $object->errors, 'errors'); $action = 'create'; + $error++; } } } } else { $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ThirdParty")); $action = 'create'; + $error++; } } elseif ($action == 'update' && $user->rights->ficheinter->creer) { $object->socid = $socid; @@ -432,6 +443,7 @@ if (empty($reshook)) { $object->author = $user->id; $object->description = GETPOST('description', 'restricthtml'); $object->ref = $ref; + $object->ref_client = $ref_client; $result = $object->update($user); if ($result < 0) { @@ -449,6 +461,12 @@ if (empty($reshook)) { if ($result < 0) { dol_print_error($db, $object->error); } + } elseif ($action == 'setref_client' && $user->rights->ficheinter->creer) { + // Positionne ref client + $result = $object->setRefClient($user, GETPOST('ref_client', 'alpha')); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } } elseif ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->ficheinter->supprimer) { $result = $object->delete($user); if ($result < 0) { @@ -499,10 +517,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -595,10 +613,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -628,10 +646,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -648,10 +666,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -670,10 +688,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -767,10 +785,10 @@ if (empty($reshook)) { $form = new Form($db); $formfile = new FormFile($db); -if ($conf->contrat->enabled) { +if (isModEnabled('contrat')) { $formcontract = new FormContract($db); } -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $formproject = new FormProjets($db); } @@ -879,6 +897,11 @@ if ($action == 'create') { // Ref print '
    '.$langs->trans('Ref').''.$langs->trans("Draft").'
    '.$langs->trans('RefCustomer').''; + print '
    '.$langs->trans("Description").''; @@ -886,7 +909,7 @@ if ($action == 'create') { print '
    '.$langs->trans("Contract").''; $numcontrat = $formcontract->select_contract($soc->id, GETPOST('contratid', 'int'), 'contratid', 0, 1, 1); @@ -976,7 +999,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 @@ -1208,12 +1229,12 @@ if ($action == 'create') { print ''; print ''; // Contract - if ($conf->contrat->enabled) { + if (isModEnabled('contrat')) { $langs->load('contracts'); 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 $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 '
    '; @@ -1413,7 +1434,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); @@ -1496,7 +1517,7 @@ if ($action == 'create') { // editeur wysiwyg if (empty($conf->global->FICHINTER_EMPTY_LINE_DESC)) { require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('np_desc', GETPOST('np_desc', 'restricthtml'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, '90%'); + $doleditor = new DolEditor('np_desc', GETPOST('np_desc', 'restricthtml'), '', 100, 'dolibarr_details', '', false, true, !empty($conf->global->FCKEDITOR_ENABLE_DETAILS), ROWS_2, '90%'); $doleditor->Create(); } @@ -1625,7 +1646,7 @@ if ($action == 'create') { } // 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) { @@ -1637,7 +1658,7 @@ if ($action == 'create') { } // Invoicing - if (!empty($conf->facture->enabled) && $object->statut > Fichinter::STATUS_DRAFT) { + if (isModEnabled('facture') && $object->statut > Fichinter::STATUS_DRAFT) { $langs->load("bills"); if ($object->statut < Fichinter::STATUS_BILLED) { if ($user->rights->facture->creer) { diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index b5e3a13f3c0..7a5f3bc73ad 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -36,35 +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'=>1, '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'=>1, 'visible'=>-1, 'position'=>20), - 'fk_contrat' =>array('type'=>'integer', 'label'=>'Fk contrat', 'enabled'=>1, '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), - '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 */ @@ -146,6 +147,12 @@ class Fichinter extends CommonObject */ public $fk_project = 0; + /** + * Customer Ref + * @var string + */ + public $ref_client; + /** * @var array extraparams */ @@ -253,6 +260,9 @@ class Fichinter extends CommonObject if (!is_numeric($this->duration)) { $this->duration = 0; } + if (isset($this->ref_client)) { + $this->ref_client = trim($this->ref_client); + } if ($this->socid <= 0) { $this->error = 'ErrorFicheinterCompanyDoesNotExist'; @@ -271,6 +281,7 @@ class Fichinter extends CommonObject $sql .= "fk_soc"; $sql .= ", datec"; $sql .= ", ref"; + $sql .= ", ref_client"; $sql .= ", entity"; $sql .= ", fk_user_author"; $sql .= ", fk_user_modif"; @@ -286,6 +297,7 @@ class Fichinter extends CommonObject $sql .= $this->socid; $sql .= ", '".$this->db->idate($now)."'"; $sql .= ", '".$this->db->escape($this->ref)."'"; + $sql .= ", ".($this->ref_client ? "'".$this->db->escape($this->ref_client)."'" : "null"); $sql .= ", ".((int) $conf->entity); $sql .= ", ".((int) $user->id); $sql .= ", ".((int) $user->id); @@ -372,6 +384,9 @@ class Fichinter extends CommonObject if (!dol_strlen($this->fk_project)) { $this->fk_project = 0; } + if (isset($this->ref_client)) { + $this->ref_client = trim($this->ref_client); + } $error = 0; @@ -380,6 +395,7 @@ class Fichinter extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter SET "; $sql .= "description = '".$this->db->escape($this->description)."'"; $sql .= ", duree = ".((int) $this->duration); + $sql .= ", ref_client = ".($this->ref_client ? "'".$this->db->escape($this->ref_client)."'" : "null"); $sql .= ", fk_projet = ".((int) $this->fk_project); $sql .= ", note_private = ".($this->note_private ? "'".$this->db->escape($this->note_private)."'" : "null"); $sql .= ", note_public = ".($this->note_public ? "'".$this->db->escape($this->note_public)."'" : "null"); @@ -422,7 +438,7 @@ class Fichinter extends CommonObject */ public function fetch($rowid, $ref = '') { - $sql = "SELECT f.rowid, f.ref, f.description, f.fk_soc, f.fk_statut,"; + $sql = "SELECT f.rowid, f.ref, f.ref_client, f.description, f.fk_soc, f.fk_statut,"; $sql .= " f.datec, f.dateo, f.datee, f.datet, f.fk_user_author,"; $sql .= " f.date_valid as datev,"; $sql .= " f.tms as datem,"; @@ -443,6 +459,7 @@ class Fichinter extends CommonObject $this->id = $obj->rowid; $this->ref = $obj->ref; + $this->ref_client = $obj->ref_client; $this->description = $obj->description; $this->socid = $obj->fk_soc; $this->statut = $obj->fk_statut; @@ -507,6 +524,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"; @@ -515,10 +534,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); @@ -573,7 +588,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"; @@ -1172,8 +1187,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 = ''; } @@ -1187,7 +1202,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 = ''; @@ -1202,7 +1217,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 @@ -1252,7 +1267,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) { @@ -1289,6 +1305,7 @@ class Fichinter extends CommonObject // Initialise parametres $this->id = 0; $this->ref = 'SPECIMEN'; + $this->ref_client = 'SPECIMEN CLIENT'; $this->specimen = 1; $this->socid = 1; $this->datec = $now; @@ -1300,7 +1317,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; @@ -1343,13 +1361,12 @@ 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(); $this->lines[$i] = $line; - $i++; } $this->db->free($resql); @@ -1377,6 +1394,63 @@ class Fichinter extends CommonObject return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Set customer reference number + * + * @param User $user Object user that modify + * @param string $ref_client Customer reference + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return int <0 if ko, >0 if ok + */ + public function setRefClient($user, $ref_client, $notrigger = 0) + { + // phpcs:enable + if (!empty($user->rights->ficheinter->creer)) { + $error = 0; + + $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); + + dol_syslog(__METHOD__.' $this->id='.$this->id.', ref_client='.$ref_client, LOG_DEBUG); + $resql = $this->db->query($sql); + if (!$resql) { + $this->errors[] = $this->db->error(); + $error++; + } + + if (!$error) { + $this->ref_client = $ref_client; + } + + if (!$notrigger && empty($error)) { + // Call trigger + $result = $this->call_trigger('FICHINTER_MODIFY', $user); + if ($result < 0) { + $error++; + } + // End call triggers + } + + if (!$error) { + $this->db->commit(); + return 1; + } else { + foreach ($this->errors as $errmsg) { + dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); + } + $this->db->rollback(); + return -1 * $error; + } + } else { + return -1; + } + } } /** @@ -1400,10 +1474,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 @@ -1420,6 +1506,8 @@ class FichinterLigne extends CommonObjectLine */ public $fk_element = 'fk_fichinter'; + + /** * Constructor * @@ -1438,8 +1526,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); @@ -1450,7 +1537,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; @@ -1478,6 +1566,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; @@ -1501,7 +1593,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 .= ')'; @@ -1563,14 +1655,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 4488b4643b8..96ef9e97314 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; @@ -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, @@ -350,8 +349,8 @@ class FichinterRec extends Fichinter // phpcs:enable $this->lines = array(); - $sql = 'SELECT l.rowid, l.fk_product, l.product_type, l.label as custom_label, l.description, '; - $sql .= ' l.price, l.qty, l.tva_tx, l.remise, 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,'; @@ -370,7 +369,6 @@ class FichinterRec extends Fichinter $objp = $this->db->fetch_object($result); $line = new FichinterLigne($this->db); - $line->id = $objp->rowid; $line->label = $objp->custom_label; // Label line $line->desc = $objp->description; // Description line @@ -378,33 +376,24 @@ class FichinterRec extends Fichinter $line->product_ref = $objp->product_ref; // Ref product $line->product_label = $objp->product_label; // Label product $line->product_desc = $objp->product_desc; // Description product - $line->fk_product_type = $objp->fk_product_type; // Type of product + $line->fk_product_type = $objp->fk_product_type; // Type in product $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_product = $objp->fk_product; - $line->date_start = $objp->date_start; - $line->date_end = $objp->date_end; - $line->date_start = $objp->date_start; - $line->date_end = $objp->date_end; $line->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; - // Ne plus utiliser - $line->price = $objp->price; - $line->remise = $objp->remise; - $this->lines[$i] = $line; $i++; @@ -467,7 +456,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 @@ -484,7 +473,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; @@ -527,6 +516,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); @@ -546,8 +537,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"; @@ -558,7 +548,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")); @@ -566,8 +556,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)."'"; 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..06e5ca0b21f 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) 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 46a9f2eee3f..731442695d2 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"); } @@ -58,6 +59,7 @@ $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'interventionlist'; $search_ref = GETPOST('search_ref') ?GETPOST('search_ref', 'alpha') : GETPOST('search_inter', 'alpha'); +$search_ref_client = GETPOST('search_ref_client', 'alpha'); $search_company = GETPOST('search_company', 'alpha'); $search_desc = GETPOST('search_desc', 'alpha'); $search_projet_ref = GETPOST('search_projet_ref', 'alpha'); @@ -67,22 +69,17 @@ $sall = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', $optioncss = GETPOST('optioncss', 'alpha'); $socid = GETPOST('socid', 'int'); -// Security check -$id = GETPOST('id', 'int'); -if ($user->socid) { - $socid = $user->socid; -} -$result = restrictedArea($user, 'ficheinter', $id, 'fichinter'); - $diroutputmassaction = $conf->ficheinter->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'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -if (empty($page) || $page == -1) { +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 +} $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -99,7 +96,7 @@ $hookmanager->initHooks(array('interventionlist')); $extrafields = new ExtraFields($db); -// fetch optionals attributes and labels +// Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); @@ -122,8 +119,9 @@ if (!empty($conf->global->FICHINTER_DISABLE_DETAILS)) { // Definition of fields for list $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), @@ -133,7 +131,7 @@ $arrayfields = array( '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), - 'fd.duree'=>array('label'=>'DurationOfLine', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS) ? 1 : 0), + 'fd.duree'=>array('label'=>'DurationOfLine', 'type'=> 'duration', 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS) ? 1 : 0), //type duration is here because in database, column 'duree' is double ); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -141,15 +139,26 @@ 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 +$id = GETPOST('id', 'int'); +if ($user->socid) { + $socid = $user->socid; +} +$result = restrictedArea($user, 'ficheinter', $id, 'fichinter'); + +$permissiontoread = $user->rights->ficheinter->lire; +$permissiontodelete = $user->rights->ficheinter->supprimer; + /* * Actions */ if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } @@ -166,20 +175,19 @@ if (empty($reshook)) { // 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_ref = ""; + $search_ref_client = ""; $search_company = ""; $search_projet_ref = ""; $search_contrat_ref = ""; $search_desc = ""; $search_status = ""; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } // Mass actions $objectclass = 'Fichinter'; $objectlabel = 'Interventions'; - $permissiontoread = $user->rights->ficheinter->lire; - $permissiontodelete = $user->rights->ficheinter->supprimer; $uploaddir = $conf->ficheinter->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -190,21 +198,25 @@ if (empty($reshook)) { * View */ -$now = dol_now(); $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"); -llxHeader('', $title); +$morejs = array(); +$morecss = array(); + $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields @@ -218,15 +230,15 @@ foreach ($arrayfields as $tmpkey => $tmpval) { } $sql = "SELECT"; -$sql .= " f.ref, f.rowid, f.fk_statut as status, f.description, f.datec as date_creation, f.tms as date_update, f.note_public, f.note_private,"; +$sql .= " f.ref, f.ref_client, f.rowid, f.fk_statut as status, f.description, f.datec as date_creation, f.tms as date_update, f.note_public, f.note_private,"; 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 @@ -240,13 +252,13 @@ $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."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 (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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)"; } if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) { @@ -267,6 +279,9 @@ $sql .= " AND f.fk_soc = s.rowid"; if ($search_ref) { $sql .= natural_search('f.ref', $search_ref); } +if ($search_ref_client) { + $sql .= natural_search('f.ref_client', $search_ref_client); +} if ($search_company) { $sql .= natural_search('s.nom', $search_company); } @@ -299,453 +314,541 @@ if ($sall) { 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); // 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; -$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 + /* 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); + $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); } -$sql .= $db->plimit($limit + 1, $offset); -//print $sql; +// 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) { - $num = $db->num_rows($resql); +if (!$resql) { + dol_print_error($db); + exit; +} - $arrayofselected = is_array($toselect) ? $toselect : array(); +$num = $db->num_rows($resql); - if ($socid > 0) { - $soc = new Societe($db); - $soc->fetch($socid); - if (empty($search_company)) { - $search_company = $soc->name; - } - } - $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) { - $param .= "&socid=".urlencode($socid); - } - if ($search_ref) { - $param .= "&search_ref=".urlencode($search_ref); - } - if ($search_company) { - $param .= "&search_company=".urlencode($search_company); - } - if ($search_desc) { - $param .= "&search_desc=".urlencode($search_desc); - } - if ($search_status != '' && $search_status > -1) { - $param .= "&search_status=".urlencode($search_status); - } - if ($show_files) { - $param .= '&show_files='.urlencode($show_files); - } - if ($optioncss != '') { - $param .= '&optioncss='.urlencode($optioncss); - } - // Add $param from extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; +// 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('/mymodule/myobject_card.php', 1).'?id='.$id); + exit; +} - // 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'=>$langs->trans("SendByMail"), - ); - if ($user->rights->ficheinter->supprimer) { - $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); - } - if (in_array($massaction, array('presend', 'predelete'))) { - $arrayofmassactions = array(); - } - $massactionbutton = $form->selectMassAction('', $arrayofmassactions); - $newcardbutton = ''; +// Output page +// -------------------------------------------------------------------- - $url = DOL_URL_ROOT.'/fichinter/card.php?action=create'; - if (!empty($socid)) { - $url .= '&socid='.$socid; - } - $newcardbutton = dolGetButtonTitle($langs->trans('NewIntervention'), '', 'fa fa-plus-circle', $url, '', $user->rights->ficheinter->creer); +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); - // Lines of title fields - print '
    '."\n"; - if ($optioncss != '') { - print ''; - } - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print_barre_liste($title, $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'commercial', 0, $newcardbutton, '', $limit, 0, 0, 1); +$arrayofselected = is_array($toselect) ? $toselect : array(); - $topicmail = "Information"; - $modelmail = "intervention"; - $objecttmp = new Fichinter($db); - $trackid = 'int'.$object->id; - include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; +if ($socid > 0) { + $soc = new Societe($db); + $soc->fetch($socid); + if (empty($search_company)) { + $search_company = $soc->name; + } +} - if ($sall) { - foreach ($fieldstosearchall as $key => $val) { - $fieldstosearchall[$key] = $langs->trans($val); - } - print '
    '.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
    '; - } +$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 ($socid) { + $param .= "&socid=".urlencode($socid); +} +if ($search_ref) { + $param .= "&search_ref=".urlencode($search_ref); +} +if ($search_ref_client) { + $param .= "&search_ref_client=".urlencode($search_ref_client); +} +if ($search_company) { + $param .= "&search_company=".urlencode($search_company); +} +if ($search_desc) { + $param .= "&search_desc=".urlencode($search_desc); +} +if ($search_status != '' && $search_status > -1) { + $param .= "&search_status=".urlencode($search_status); +} +if ($show_files) { + $param .= '&show_files='.urlencode($show_files); +} +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; - $moreforfilter = ''; +// 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'=>$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); - $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 '
    '; - } +print ''."\n"; +if ($optioncss != '') { + print ''; +} +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; - if ($massactionbutton) { - $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); - } +$newcardbutton = ''; +$url = DOL_URL_ROOT.'/fichinter/card.php?action=create'; +if (!empty($socid)) { + $url .= '&socid='.$socid; +} +$newcardbutton = dolGetButtonTitle($langs->trans('NewIntervention'), '', 'fa fa-plus-circle', $url, '', $user->rights->ficheinter->creer); - 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_barre_liste($title, $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1); - print ''; - if (!empty($arrayfields['f.ref']['checked'])) { - print ''; - } - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - } - if (!empty($arrayfields['pr.ref']['checked'])) { - print ''; - } - if (!empty($arrayfields['c.ref']['checked'])) { - print ''; - } - if (!empty($arrayfields['f.description']['checked'])) { - print ''; - } - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; +$topicmail = "Information"; +$modelmail = "intervention"; +$objecttmp = new Fichinter($db); +$trackid = 'int'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.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; - if (!empty($arrayfields['f.datec']['checked'])) { - // Date creation - print ''; +if ($sall) { + foreach ($fieldstosearchall as $key => $val) { + $fieldstosearchall[$key] = $langs->trans($val); } - if (!empty($arrayfields['f.tms']['checked'])) { - // Date modification - print ''; - } - if (!empty($arrayfields['f.note_public']['checked'])) { - // Note public - print ''; - } - if (!empty($arrayfields['f.note_private']['checked'])) { - // Note private - print ''; - } - // Status - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; - } - // Fields of detail line - if (!empty($arrayfields['fd.description']['checked'])) { - print ''; - } - if (!empty($arrayfields['fd.date']['checked'])) { - print ''; - } - if (!empty($arrayfields['fd.duree']['checked'])) { - print ''; + print '
    '.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'
    '; +} + +$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 '
    '; +print '
    '; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - 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 '   
    '."\n"; + +// Fields title search +// -------------------------------------------------------------------- +print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} +if (!empty($arrayfields['f.ref']['checked'])) { + print ''; +} +if (!empty($arrayfields['f.ref_client']['checked'])) { + print ''; +} +if (!empty($arrayfields['s.nom']['checked'])) { + print ''; +} +if (!empty($arrayfields['pr.ref']['checked'])) { + print ''; +} +if (!empty($arrayfields['c.ref']['checked'])) { + print ''; +} +if (!empty($arrayfields['f.description']['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['f.datec']['checked'])) { + // Date creation + print ''; +} +if (!empty($arrayfields['f.tms']['checked'])) { + // Date modification + print ''; +} +if (!empty($arrayfields['f.note_public']['checked'])) { + // Note public + print ''; +} +if (!empty($arrayfields['f.note_private']['checked'])) { + // Note private + print ''; +} +// Status +if (!empty($arrayfields['f.fk_statut']['checked'])) { + print ''; +} +// Fields of detail line +if (!empty($arrayfields['fd.description']['checked'])) { + print ''; +} +if (!empty($arrayfields['fd.date']['checked'])) { + print ''; +} +if (!empty($arrayfields['fd.duree']['checked'])) { + print ''; +} +// Action column +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { print ''; +} +print ''."\n"; - print "\n"; +$totalarray = array(); +$totalarray['nbfield'] = 0; + +// Fields title label +// -------------------------------------------------------------------- +print ''; +if (!empty($arrayfields['f.ref']['checked'])) { + print_liste_field_titre($arrayfields['f.ref']['label'], $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); +} +if (!empty($arrayfields['f.ref_client']['checked'])) { + print_liste_field_titre($arrayfields['f.ref_client']['label'], $_SERVER["PHP_SELF"], "f.ref_client", "", $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['pr.ref']['checked'])) { + print_liste_field_titre($arrayfields['pr.ref']['label'], $_SERVER["PHP_SELF"], "pr.ref", "", $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['f.description']['checked'])) { + print_liste_field_titre($arrayfields['f.description']['label'], $_SERVER["PHP_SELF"], "f.description", "", $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['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.note_public']['checked'])) { + print_liste_field_titre($arrayfields['f.note_public']['label'], $_SERVER["PHP_SELF"], "f.note_public", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['f.note_private']['checked'])) { + print_liste_field_titre($arrayfields['f.note_private']['label'], $_SERVER["PHP_SELF"], "f.note_private", "", $param, '', $sortfield, $sortorder, 'center nowrap '); +} +if (!empty($arrayfields['f.fk_statut']['checked'])) { + print_liste_field_titre($arrayfields['f.fk_statut']['label'], $_SERVER["PHP_SELF"], "f.fk_statut", "", $param, '', $sortfield, $sortorder, 'right '); +} +if (!empty($arrayfields['fd.description']['checked'])) { + print_liste_field_titre($arrayfields['fd.description']['label'], $_SERVER["PHP_SELF"], ''); +} +if (!empty($arrayfields['fd.date']['checked'])) { + print_liste_field_titre($arrayfields['fd.date']['label'], $_SERVER["PHP_SELF"], "fd.date", "", $param, '', $sortfield, $sortorder, 'center '); +} +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 '); +print "\n"; + + +// Loop on record +// -------------------------------------------------------------------- +$total = 0; +$i = 0; +$savnbfield = $totalarray['nbfield']; +$totalarray = array(); +$totalarray['nbfield'] = 0; +$totalarray['val'] = array(); +$totalarray['val']['fd.duree'] = 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); + + $objectstatic->id = $obj->rowid; + $objectstatic->ref = $obj->ref; + $objectstatic->ref_client = $obj->ref_client; + $objectstatic->statut = $obj->status; + $objectstatic->status = $obj->status; + + $companystatic->name = $obj->name; + $companystatic->id = $obj->socid; + $companystatic->client = $obj->client; + $companystatic->fournisseur = $obj->fournisseur; + $companystatic->email = $obj->email; + $companystatic->status = $obj->thirdpartystatus; + + print ''; - print ''; if (!empty($arrayfields['f.ref']['checked'])) { - print_liste_field_titre($arrayfields['f.ref']['label'], $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); + print "\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } + if (!empty($arrayfields['f.ref_client']['checked'])) { + // Customer ref + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['s.nom']['checked'])) { - print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], "s.nom", "", $param, '', $sortfield, $sortorder); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['pr.ref']['checked'])) { - print_liste_field_titre($arrayfields['pr.ref']['label'], $_SERVER["PHP_SELF"], "pr.ref", "", $param, '', $sortfield, $sortorder); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['c.ref']['checked'])) { - print_liste_field_titre($arrayfields['c.ref']['label'], $_SERVER["PHP_SELF"], "c.ref", "", $param, '', $sortfield, $sortorder); + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['f.description']['checked'])) { - print_liste_field_titre($arrayfields['f.description']['label'], $_SERVER["PHP_SELF"], "f.description", "", $param, '', $sortfield, $sortorder); + print ''; + if (!$i) { + $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); - $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook + 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_liste_field_titre($arrayfields['f.datec']['label'], $_SERVER["PHP_SELF"], "f.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + // Date modification if (!empty($arrayfields['f.tms']['checked'])) { - print_liste_field_titre($arrayfields['f.tms']['label'], $_SERVER["PHP_SELF"], "f.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + // Note public if (!empty($arrayfields['f.note_public']['checked'])) { - print_liste_field_titre($arrayfields['f.note_public']['label'], $_SERVER["PHP_SELF"], "f.note_public", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + // Note private if (!empty($arrayfields['f.note_private']['checked'])) { - print_liste_field_titre($arrayfields['f.note_private']['label'], $_SERVER["PHP_SELF"], "f.note_private", "", $param, '', $sortfield, $sortorder, 'center nowrap '); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + // Status if (!empty($arrayfields['f.fk_statut']['checked'])) { - print_liste_field_titre($arrayfields['f.fk_statut']['label'], $_SERVER["PHP_SELF"], "f.fk_statut", "", $param, '', $sortfield, $sortorder, 'right '); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } + // Fields of detail of line if (!empty($arrayfields['fd.description']['checked'])) { - print_liste_field_titre($arrayfields['fd.description']['label'], $_SERVER["PHP_SELF"], ''); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['fd.date']['checked'])) { - print_liste_field_titre($arrayfields['fd.date']['label'], $_SERVER["PHP_SELF"], "fd.date", "", $param, '', $sortfield, $sortorder, 'center '); + print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } } if (!empty($arrayfields['fd.duree']['checked'])) { - print_liste_field_titre($arrayfields['fd.duree']['label'], $_SERVER["PHP_SELF"], "fd.duree", "", $param, '', $sortfield, $sortorder, 'right '); + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + if (!$i) { + $totalarray['type'][$totalarray['nbfield']] = 'duration'; + } + $totalarray['val']['fd.duree'] += $obj->duree; } - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); - print "\n"; - - $total = 0; - $i = 0; - $totalarray = array(); - $totalarray['nbfield'] = 0; - $totalarray['val'] = array(); - $totalarray['val']['fd.duree'] = 0; - while ($i < min($num, $limit)) { - $obj = $db->fetch_object($resql); - - $objectstatic->id = $obj->rowid; - $objectstatic->ref = $obj->ref; - $objectstatic->statut = $obj->status; - $objectstatic->status = $obj->status; - - $companystatic->name = $obj->name; - $companystatic->id = $obj->socid; - $companystatic->client = $obj->client; - $companystatic->fournisseur = $obj->fournisseur; - $companystatic->email = $obj->email; - $companystatic->status = $obj->thirdpartystatus; - - print ''; - - if (!empty($arrayfields['f.ref']['checked'])) { - print "\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['s.nom']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['pr.ref']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['c.ref']['checked'])) { - print ''; - } - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['f.description']['checked'])) { - print ''; - 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']++; - } - } - // Note public - if (!empty($arrayfields['f.note_public']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Note private - if (!empty($arrayfields['f.note_private']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Status - if (!empty($arrayfields['f.fk_statut']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - // Fields of detail of line - if (!empty($arrayfields['fd.description']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['fd.date']['checked'])) { - print '\n"; - if (!$i) { - $totalarray['nbfield']++; - } - } - if (!empty($arrayfields['fd.duree']['checked'])) { - print ''; - if (!$i) { - $totalarray['nbfield']++; - } - if (!$i) { - $totalarray['type'][$totalarray['nbfield']] = 'duration'; - $totalarray['pos'][$totalarray['nbfield']] = 'fd.duree'; - } - $totalarray['val']['fd.duree'] += $obj->duree; - } - // Action column + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { print ''; - if (!$i) { - $totalarray['nbfield']++; - } - - print "\n"; - - $total += $obj->duree; - $i++; + } + if (!$i) { + $totalarray['nbfield']++; } - // Show total line - include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; + print ''."\n"; - $db->free($resql); + $total += $obj->duree; + $i++; +} - $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 ''; + 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 '   '; $searchpicto = $form->showFilterButtons(); print $searchpicto; print '
    "; + + print ''; + // Picto + Ref + print ''; + // Warning + $warnornote = ''; + //if ($obj->fk_statut == 1 && $db->jdate($obj->dfv) < ($now - $conf->fichinter->warning_delay)) $warnornote.=img_warning($langs->trans("Late")); + if (!empty($obj->note_private)) { + $warnornote .= ($warnornote ? ' ' : ''); + $warnornote .= ''; + $warnornote .= ''.img_picto($langs->trans("ViewPrivateNote"), 'object_generic').''; + $warnornote .= ''; + } + if ($warnornote) { + print ''; + } + + // Other picto tool + print '
    '; + print $objectstatic->getNomUrl(1); + print ''; + print $warnornote; + print ''; + $filename = dol_sanitizeFileName($obj->ref); + $filedir = $conf->ficheinter->dir_output.'/'.dol_sanitizeFileName($obj->ref); + $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; + print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); + print '
    '; + + print "
    '; + print dol_escape_htmltag($obj->ref_client); + print ''; + print $companystatic->getNomUrl(1, '', 44); + print ''; + $projetstatic->id = $obj->projet_id; + $projetstatic->ref = $obj->projet_ref; + $projetstatic->title = $obj->projet_title; + if ($projetstatic->id > 0) { + print $projetstatic->getNomUrl(1, ''); + } + print ''; + $contratstatic->id = $obj->contrat_id; + $contratstatic->ref = $obj->contrat_ref; + $contratstatic->ref_customer = $obj->contrat_ref_customer; + $contratstatic->ref_supplier = $obj->contrat_ref_supplier; + if ($contratstatic->id > 0) { + print $contratstatic->getNomUrl(1, ''); + print ''.dol_trunc(dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1)), 48).''; + 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_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''.$objectstatic->getLibStatut(5).''.dol_trunc(dolGetFirstLineOfText(dol_string_nohtmltag($obj->descriptiondetail, 1)), 48).''.dol_print_date($db->jdate($obj->dp), 'dayhour')."'.convertSecondToTime($obj->duree, 'allhourmin').'
    "; - - print ''; - // Picto + Ref - print ''; - // Warning - $warnornote = ''; - //if ($obj->fk_statut == 1 && $db->jdate($obj->dfv) < ($now - $conf->fichinter->warning_delay)) $warnornote.=img_warning($langs->trans("Late")); - if (!empty($obj->note_private)) { - $warnornote .= ($warnornote ? ' ' : ''); - $warnornote .= ''; - $warnornote .= ''.img_picto($langs->trans("ViewPrivateNote"), 'object_generic').''; - $warnornote .= ''; - } - if ($warnornote) { - print ''; - } - - // Other picto tool - print '
    '; - print $objectstatic->getNomUrl(1); - print ''; - print $warnornote; - print ''; - $filename = dol_sanitizeFileName($obj->ref); - $filedir = $conf->ficheinter->dir_output.'/'.dol_sanitizeFileName($obj->ref); - $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; - print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); - print '
    '; - - print "
    '; - print $companystatic->getNomUrl(1, '', 44); - print ''; - $projetstatic->id = $obj->projet_id; - $projetstatic->ref = $obj->projet_ref; - $projetstatic->title = $obj->projet_title; - if ($projetstatic->id > 0) { - print $projetstatic->getNomUrl(1, ''); - } - print ''; - $contratstatic->id = $obj->contrat_id; - $contratstatic->ref = $obj->contrat_ref; - $contratstatic->ref_customer = $obj->contrat_ref_customer; - $contratstatic->ref_supplier = $obj->contrat_ref_supplier; - if ($contratstatic->id > 0) { - print $contratstatic->getNomUrl(1, ''); - print ''.dol_trunc(dolGetFirstLineOfText(dol_string_nohtmltag($obj->description, 1)), 48).''; - 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_escape_htmltag($obj->note_public); - print ''; - print dol_escape_htmltag($obj->note_private); - print ''.$objectstatic->getLibStatut(5).''.dol_trunc(dolGetFirstLineOfText(dol_string_nohtmltag($obj->descriptiondetail, 1)), 48).''.dol_print_date($db->jdate($obj->dp), 'dayhour')."'.convertSecondToTime($obj->duree, 'allhourmin').''; 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; @@ -755,35 +858,52 @@ if ($resql) { print ''; } print '
    '."\n"; - print '
    '; +// Show total line +include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; - print "\n"; +// 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 ''."\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); @@ -793,10 +913,8 @@ if ($resql) { $delallowed = $user->rights->ficheinter->creer; print $formfile->showdocuments('massfilesarea_interventions', '', $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/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..f1ab4b08fec 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'; diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index e14322a62e9..ccd85e47810 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-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c + define('DOL_VERSION', '17.0.0-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c } if (!defined('EURO')) { @@ -115,6 +115,13 @@ if (!$result && !empty($_SERVER["GATEWAY_INTERFACE"])) { // If install not do } header("Location: ".$path."install/index.php"); + + /* + print '
    '; + print 'The conf/conf.php file was not found or is not readable by the web server. If this is your first access, click here to start the Dolibarr installation process to create it...'; + print '

    '; + */ + exit; } @@ -172,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 } @@ -287,8 +297,9 @@ $suburi = strstr($uri, '/'); // $suburi contains url without domain:port if ($suburi == '/') { $suburi = ''; // If $suburi is /, it is now '' } -define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...) - +if (!defined('DOL_URL_ROOT')) { + define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...) +} //print DOL_MAIN_URL_ROOT.'-'.DOL_URL_ROOT."\n"; // Define prefix MAIN_DB_PREFIX diff --git a/htdocs/fourn/ajax/getSupplierPrices.php b/htdocs/fourn/ajax/getSupplierPrices.php index 6cfc4fbe7b9..632a8fcb6cb 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'; @@ -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 9298c67ad9f..00a3ba55caa 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); @@ -147,6 +148,7 @@ if (empty($reshook)) { if (!$error) { $result = $object->insertExtraFields('COMPANY_MODIFY'); if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); $error++; } } @@ -170,6 +172,7 @@ if ($id > 0 && empty($object->id)) { $res = $object->fetch($id); if ($object->id <= 0) { dol_print_error($db, $object->error); + exit(-1); } } @@ -266,7 +269,7 @@ if ($object->id > 0) { print '
    '; print '
    '; if ($action == 'editconditions') { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_supplier_id, 'cond_reglement_supplier_id', -1, 1); + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_supplier_id, 'cond_reglement_supplier_id', 1); } else { $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_supplier_id, 'none'); } @@ -326,7 +329,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 +341,7 @@ if ($object->id > 0) { } // Categories - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { $langs->load("categories"); print '
    '.$langs->trans("SuppliersCategoriesShort").''; @@ -351,7 +354,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 +409,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 +430,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 +515,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,7 +843,7 @@ 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, ''); @@ -881,7 +884,7 @@ if ($object->id > 0) { } // Add action - if (!empty($conf->agenda->enabled) && !empty($conf->global->MAIN_REPEATTASKONEACHTAB) && $object->status == 1) { + if (isModEnabled('agenda') && !empty($conf->global->MAIN_REPEATTASKONEACHTAB) && $object->status == 1) { if ($user->rights->agenda->myactions->create) { print dolGetButtonAction('', $langs->trans('AddAction'), 'default', DOL_URL_ROOT.'/comm/action/card.php?action=create&socid='.$object->id, ''); } else { diff --git a/htdocs/fourn/class/api_supplier_invoices.class.php b/htdocs/fourn/class/api_supplier_invoices.class.php index 35e783729ff..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'); } @@ -450,9 +450,9 @@ class SupplierInvoices extends DolibarrApi } // Calculate amount to pay - $totalpaye = $this->invoice->getSommePaiement(); + $totalpaid = $this->invoice->getSommePaiement(); $totaldeposits = $this->invoice->getSumDepositsUsed(); - $resteapayer = price2num($this->invoice->total_ttc - $totalpaye - $totaldeposits, 'MT'); + $resteapayer = price2num($this->invoice->total_ttc - $totalpaid - $totaldeposits, 'MT'); $this->db->begin(); @@ -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(); @@ -558,8 +557,8 @@ class SupplierInvoices extends DolibarrApi $request_data = (object) $request_data; - $request_data->description = checkVal($request_data->description, 'restricthtml'); - $request_data->ref_supplier = checkVal($request_data->ref_supplier); + $request_data->description = sanitizeVal($request_data->description, 'restricthtml'); + $request_data->ref_supplier = sanitizeVal($request_data->ref_supplier); $updateRes = $this->invoice->addline( $request_data->description, @@ -625,8 +624,8 @@ class SupplierInvoices extends DolibarrApi $request_data = (object) $request_data; - $request_data->description = checkVal($request_data->description, 'restricthtml'); - $request_data->ref_supplier = checkVal($request_data->ref_supplier); + $request_data->description = sanitizeVal($request_data->description, 'restricthtml'); + $request_data->ref_supplier = sanitizeVal($request_data->ref_supplier); $updateRes = $this->invoice->updateline( $lineid, @@ -647,7 +646,8 @@ class SupplierInvoices extends DolibarrApi $request_data->array_options, $request_data->fk_unit, $request_data->multicurrency_subprice, - $request_data->ref_supplier + $request_data->ref_supplier, + $request_data->rang ); if ($updateRes > 0) { diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 128c2ab3356..c33c404664e 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -36,7 +36,7 @@ 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)) { +if (isModEnabled('productbatch')) { require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php'; } require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; @@ -191,7 +191,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 +218,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'=>1, '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,24 +236,24 @@ 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), 'fk_mode_reglement' =>array('type'=>'integer', 'label'=>'PaymentMode', 'enabled'=>1, 'visible'=>3, 'position'=>180), 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>0, 'position'=>190), - 'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>1, 'visible'=>3, 'position'=>200), + 'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>'$conf->banque->enabled', 'visible'=>3, 'position'=>200), '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'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>46), + '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), 'tms'=>array('type'=>'datetime', 'label'=>"DateModificationShort", 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>501), 'last_main_doc' =>array('type'=>'varchar(255)', 'label'=>'LastMainDoc', 'enabled'=>1, 'visible'=>0, 'position'=>700), @@ -856,6 +856,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'); } @@ -1429,7 +1432,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 +1454,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 +1582,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").","; @@ -1676,7 +1680,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 +1746,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; @@ -1868,7 +1873,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,13 +1882,13 @@ class CommandeFournisseur extends CommonOrder if (!empty($prod->packaging) && ($qty % $prod->packaging) > 0) { $coeff = intval($qty / $prod->packaging) + 1; $qty = $prod->packaging * $coeff; + setEventMessage($langs->trans('QtyRecalculatedWithPackaging'), 'mesgs'); } } - setEventMessage($langs->trans('QtyRecalculatedWithPackaging'), 'mesgs'); } } - if (!empty($conf->multicurrency->enabled) && $pu_ht_devise > 0) { + if (isModEnabled("multicurrency") && $pu_ht_devise > 0) { $pu = 0; } @@ -1954,7 +1959,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; @@ -2084,7 +2089,12 @@ class CommandeFournisseur extends CommonOrder // $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); - $result = $mouv->reception($user, $product, $entrepot, $qty, $price, $comment, $eatby, $sellby, $batch); + // 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); + } else { + $result = $mouv->reception($user, $product, $entrepot, $qty, $price, $comment, $eatby, $sellby, $batch); + } if ($result < 0) { $this->error = $mouv->error; $this->errors = $mouv->errors; @@ -2821,7 +2831,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'); @@ -2848,7 +2858,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; @@ -3357,7 +3367,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(); @@ -3394,12 +3404,12 @@ class CommandeFournisseur extends CommonOrder $diff_array = array_diff_assoc($qtydelivered, $qtywished); // Warning: $diff_array is done only on common keys. $keysinwishednotindelivered = array_diff(array_keys($qtywished), array_keys($qtydelivered)); // To check we also have same number of keys $keysindeliverednotinwished = array_diff(array_keys($qtydelivered), array_keys($qtywished)); // To check we also have same number of keys - /*var_dump(array_keys($qtydelivered)); - var_dump(array_keys($qtywished)); - var_dump($diff_array); - var_dump($keysinwishednotindelivered); - var_dump($keysindeliverednotinwished); - exit;*/ + //var_dump(array_keys($qtydelivered)); + //var_dump(array_keys($qtywished)); + //var_dump($diff_array); + //var_dump($keysinwishednotindelivered); + //var_dump($keysindeliverednotinwished); + //exit; if (count($diff_array) == 0 && count($keysinwishednotindelivered) == 0 && count($keysindeliverednotinwished) == 0) { //No diff => mean everythings is received if ($closeopenorder) { @@ -3486,6 +3496,8 @@ class CommandeFournisseur extends CommonOrder { $this->receptions = array(); + dol_syslog(get_class($this)."::loadReceptions", LOG_DEBUG); + $sql = 'SELECT cd.rowid, cd.fk_product,'; $sql .= ' sum(cfd.qty) as qty'; $sql .= ' FROM '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch as cfd,'; @@ -3507,18 +3519,16 @@ class CommandeFournisseur extends CommonOrder } $sql .= ' GROUP BY cd.rowid, cd.fk_product'; - - dol_syslog(get_class($this)."::loadReceptions", LOG_DEBUG); - $result = $this->db->query($sql); - if ($result) { - $num = $this->db->num_rows($result); + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); $i = 0; while ($i < $num) { - $obj = $this->db->fetch_object($result); + $obj = $this->db->fetch_object($resql); empty($this->receptions[$obj->rowid]) ? $this->receptions[$obj->rowid] = $obj->qty : $this->receptions[$obj->rowid] += $obj->qty; $i++; } - $this->db->free(); + $this->db->free($resql); return $num; } else { @@ -3746,9 +3756,6 @@ class CommandeFournisseurLigne extends CommonOrderLine if (empty($this->rang)) { $this->rang = 0; } - if (empty($this->remise)) { - $this->remise = 0; - } if (empty($this->remise_percent)) { $this->remise_percent = 0; } diff --git a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php index 2ed936ee1f6..dfb1e371636 100644 --- a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php +++ b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php @@ -75,11 +75,21 @@ 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; + + public $libelle; + public $desc; + public $tva_tx; + public $vat_src_code; + public $ref_supplier; /** * @var int ID diff --git a/htdocs/fourn/class/fournisseur.facture-rec.class.php b/htdocs/fourn/class/fournisseur.facture-rec.class.php index ab68cd3ecc6..b2b30ebe281 100644 --- a/htdocs/fourn/class/fournisseur.facture-rec.class.php +++ b/htdocs/fourn/class/fournisseur.facture-rec.class.php @@ -127,6 +127,13 @@ class FactureFournisseurRec extends CommonInvoice public $model_pdf; + /** + * Invoice lines + * @var FactureFournisseurLigneRec[] + */ + public $lines = array(); + + /* Override fields in CommonObject public $entity; public $date_creation; @@ -174,7 +181,7 @@ class FactureFournisseurRec extends CommonInvoice 'titre' =>array('type'=>'varchar(100)', 'label'=>'Titre', 'enabled'=>1, 'showoncombobox' => 1, 'visible'=>-1, 'position'=>15), 'ref_supplier' =>array('type'=>'varchar(180)', 'label'=>'RefSupplier', 'enabled'=>1, 'showoncombobox' => 1, 'visible'=>-1, 'position'=>20), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>25, 'index'=>1), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>30), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>30), 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>35), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>40), 'suspended' =>array('type'=>'integer', 'label'=>'Suspended', 'enabled'=>1, 'visible'=>-1, 'position'=>225), @@ -188,8 +195,8 @@ 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'=>1, 'visible'=>-1, 'position'=>85), - 'fk_account' =>array('type'=>'integer', 'label'=>'Fk account', 'enabled'=>1, 'visible'=>-1, 'position'=>175), + '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), 'date_lim_reglement' =>array('type'=>'date', 'label'=>'Date lim reglement', 'enabled'=>1, 'visible'=>-1, 'position'=>100), @@ -557,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'; @@ -603,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; @@ -975,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); @@ -2147,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 94f66f0d0b3..a875cf85a81 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -40,10 +40,10 @@ 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'; -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'; } @@ -277,7 +277,7 @@ class FactureFournisseur extends CommonInvoice 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>25, 'index'=>1), 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'RefExt', 'enabled'=>1, 'visible'=>0, 'position'=>30), 'type' =>array('type'=>'smallint(6)', 'label'=>'Type', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>35), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>40), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>'$conf->societe->enabled', 'visible'=>-1, 'notnull'=>1, 'position'=>40), 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>45), 'datef' =>array('type'=>'date', 'label'=>'Date', 'enabled'=>1, 'visible'=>-1, 'position'=>50), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>55), @@ -297,13 +297,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'=>1, 'visible'=>-1, 'position'=>145), - 'fk_account' =>array('type'=>'integer', 'label'=>'Account', 'enabled'=>1, 'visible'=>-1, 'position'=>150), + '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 +433,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 +443,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 +464,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 +504,13 @@ class FactureFournisseur extends CommonInvoice $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($this->thirdparty->default_lang)) { + if (!empty($conf->global->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 (!empty($conf->global->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 +540,7 @@ class FactureFournisseur extends CommonInvoice } // Define due date if not already defined - if (! empty($forceduedate)) { + if (!empty($forceduedate)) { $this->date_echeance = $forceduedate; } @@ -759,9 +760,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 (!empty($conf->stock->enabled) && ($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) { @@ -2073,7 +2074,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 Product($this->db); if ($prod->fetch($fk_product) > 0) { $product_type = $prod->type; $label = $prod->label; @@ -2124,7 +2125,7 @@ class FactureFournisseur extends CommonInvoice $product_type = $type; } - if (!empty($conf->multicurrency->enabled) && $pu_devise > 0) { + if (isModEnabled("multicurrency") && $pu_devise > 0) { $pu = 0; } @@ -2277,9 +2278,10 @@ class FactureFournisseur extends CommonInvoice * @param string $fk_unit Code of the unit to use. Null to use the default one * @param double $pu_devise Amount in currency * @param string $ref_supplier Supplier ref + * @param integer $rang line rank * @return int <0 if KO, >0 if OK */ - public function updateline($id, $desc, $pu, $vatrate, $txlocaltax1 = 0, $txlocaltax2 = 0, $qty = 1, $idproduct = 0, $price_base_type = 'HT', $info_bits = 0, $type = 0, $remise_percent = 0, $notrigger = false, $date_start = '', $date_end = '', $array_options = 0, $fk_unit = null, $pu_devise = 0, $ref_supplier = '') + public function updateline($id, $desc, $pu, $vatrate, $txlocaltax1 = 0, $txlocaltax2 = 0, $qty = 1, $idproduct = 0, $price_base_type = 'HT', $info_bits = 0, $type = 0, $remise_percent = 0, $notrigger = false, $date_start = '', $date_end = '', $array_options = 0, $fk_unit = null, $pu_devise = 0, $ref_supplier = '', $rang = 0) { global $mysoc, $langs; @@ -2353,14 +2355,6 @@ class FactureFournisseur extends CommonInvoice $info_bits = 0; } - if ($idproduct) { - $product = new Product($this->db); - $result = $product->fetch($idproduct); - $product_type = $product->type; - } else { - $product_type = $type; - } - //Fetch current line from the database and then clone the object and set it in $oldline property $line = new SupplierInvoiceLine($this->db); $line->fetch($id); @@ -2368,6 +2362,15 @@ class FactureFournisseur extends CommonInvoice $staticline = clone $line; + if ($idproduct) { + $product = new Product($this->db); + $result = $product->fetch($idproduct); + $product_type = $product->type; + } else { + $idproduct = $staticline->fk_product; + $product_type = $type; + } + $line->oldline = $staticline; $line->context = $this->context; @@ -2401,6 +2404,7 @@ class FactureFournisseur extends CommonInvoice $line->product_type = $product_type; $line->info_bits = $info_bits; $line->fk_unit = $fk_unit; + $line->rang = $rang; if (is_array($array_options) && count($array_options) > 0) { // We replace values in this->line->array_options only for entries defined into $array_options @@ -3056,7 +3060,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 = ''; @@ -3686,6 +3690,10 @@ class SupplierInvoiceLine extends CommonObjectLine $sql .= ", info_bits = ".((int) $this->info_bits); $sql .= ", fk_unit = ".($fk_unit > 0 ? (int) $fk_unit : 'null'); + if (!empty($this->rang)) { + $sql .= ", rang=".((int) $this->rang); + } + // Multicurrency $sql .= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; $sql .= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; @@ -3853,7 +3861,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 55aabde8141..5524783e275 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -32,6 +32,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 +257,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 +296,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 +409,21 @@ 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) $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); @@ -448,11 +464,11 @@ class ProductFournisseur extends Product // Add price for this quantity to supplier $sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price("; $sql .= " multicurrency_price, multicurrency_unitprice, multicurrency_tx, fk_multicurrency, multicurrency_code,"; - $sql .= "datec, fk_product, fk_soc, ref_fourn, desc_fourn, fk_user, price, quantity, remise_percent, remise, unitprice, tva_tx, charges, fk_availability, default_vat_code, info_bits, entity, delivery_time_days, supplier_reputation, barcode, fk_barcode_type)"; + $sql .= "datec, fk_product, fk_soc, ref_fourn, desc_fourn, fk_user, price, quantity, remise_percent, remise, unitprice, tva_tx, charges, fk_availability, default_vat_code, info_bits, entity, delivery_time_days, supplier_reputation, barcode, fk_barcode_type"; if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) { $sql .= ", packaging"; } - $sql .= " values("; + $sql .= ") values("; $sql .= (isset($multicurrency_buyprice) ? "'".$this->db->escape(price2num($multicurrency_buyprice))."'" : 'null').","; $sql .= (isset($multicurrency_unitBuyPrice) ? "'".$this->db->escape(price2num($multicurrency_unitBuyPrice))."'" : 'null').","; $sql .= (isset($multicurrency_tx) ? "'".$this->db->escape($multicurrency_tx)."'" : '1').","; @@ -493,6 +509,20 @@ class ProductFournisseur extends Product $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) $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 +578,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 +594,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 +621,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; @@ -640,7 +671,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 +700,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,7 +733,7 @@ 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"]; } @@ -778,7 +811,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 @@ -930,7 +963,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 +981,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 ? ')' : ''); } @@ -1091,12 +1124,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 +1143,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 +1176,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 +1215,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 +1269,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 bf3d7052a86..e0b3fcac0c6 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -67,6 +67,15 @@ class PaiementFourn extends Paiement */ public $type_code; + /** + * @var string Id of prelevement + */ + public $id_prelevement; + + /** + * @var string num_prelevement + */ + public $num_prelevement; /** @@ -340,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $invoice->thirdparty->default_lang; } if (!empty($newlang)) { @@ -853,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 a945a03b85d..3a0568c8fbe 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 @@ -33,6 +33,7 @@ * \brief Card supplier order */ +// 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'; @@ -43,13 +44,13 @@ 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'; } @@ -143,9 +144,9 @@ $usercandelete = (($user->rights->fournisseur->commande->supprimer || $user->rig $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($usercancreate)) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->fournisseur->supplier_order_advance->validate))); // Additional area permissions -$usercanapprove = $user->rights->fournisseur->commande->approuver; -$usercanapprovesecond = $user->rights->fournisseur->commande->approve2; -$usercanorder = $user->rights->fournisseur->commande->commander; +$usercanapprove = !empty($user->rights->fournisseur->commande->approuver) ? $user->rights->fournisseur->commande->approuver : 0; +$usercanapprovesecond = !empty($user->rights->fournisseur->commande->approve2) ? $user->rights->fournisseur->commande->approve2 : 0; +$usercanorder = !empty($user->rights->fournisseur->commande->commander) ? $user->rights->fournisseur->commande->commander : 0; if (empty($conf->reception->enabled)) { $usercanreceive = $user->rights->fournisseur->commande->receptionner; } else { @@ -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 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, $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); + } + } elseif ($action == 'addline' && $usercancreate) { $db->begin(); $langs->load('errors'); @@ -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 (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -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; } @@ -1627,10 +1641,10 @@ if ($action == 'create') { // Object source contacts list $srccontactslist = $objectsrc->liste_contact(-1, 'external', 1); } else { - $cond_reglement_id = $societe->cond_reglement_supplier_id; - $mode_reglement_id = $societe->mode_reglement_supplier_id; + $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; } @@ -1674,7 +1688,7 @@ if ($action == 'create') { print '
    '.$langs->trans('Supplier').''; - if ($societe->id > 0) { + if (!empty($societe->id) && $societe->id > 0) { print $societe->getNomUrl(1, 'supplier'); print ''; } else { @@ -1696,7 +1710,7 @@ if ($action == 'create') { } print '
    '.$langs->trans('Discounts').''; @@ -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,13 +1760,13 @@ if ($action == 'create') { } // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $formproject = new FormProjets($db); $langs->load('projects'); print '
    '.$langs->trans('Project').''; print img_picto('', 'project').$formproject->select_projects((empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $societe->id : -1), $projectid, 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500'); - print '   id).'">'; + print '   id) ? '&socid='.$societe->id : "")).'">'; 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"); } @@ -2157,7 +2175,7 @@ if ($action == 'create') { print '
    '; @@ -2207,7 +2225,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 ''; - print ''; + print ''; print ''; // Multicurrency Amount VAT print ''; - print ''; + print ''; print ''; // Multicurrency Amount TTC print ''; - print ''; + print ''; print ''; } @@ -2321,33 +2339,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('BankAccount'); @@ -2301,17 +2319,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 (!empty($conf->margin->enabled)) { $formmargin->displayMarginInfos($object); }*/ @@ -2428,206 +2448,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 (!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; + } } } } - } - 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 (! empty($conf->facture->enabled)) - //{ - 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 (empty($conf->facture->enabled)) { - 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"; @@ -2663,7 +2683,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 +2701,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 @@ -2912,11 +2937,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..92859d2eb1f 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'; } @@ -99,10 +100,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); $contactstatic = new Contact($db); @@ -121,6 +118,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'); @@ -135,7 +136,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->fournisseur->commande->creer || $user->rights->supplier_order->creer) { diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 166da07ab03..1383ebd8b0f 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -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'); } @@ -243,7 +244,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 +270,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 +312,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 +345,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 +374,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(); @@ -505,10 +493,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); @@ -553,7 +542,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->fournisseur->commande->creer || $user->rights->supplier_order->creer) { @@ -733,7 +722,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").''; @@ -881,7 +870,7 @@ if ($id > 0 || !empty($ref)) { // Already dispatched print ''.$products_dispatched[$objp->rowid].''; 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,7 +992,7 @@ if ($id > 0 || !empty($ref)) { print ''; print ''; @@ -1174,7 +1163,7 @@ if ($id > 0 || !empty($ref)) { print ''.$langs->trans("Product").''.$langs->trans("DateCreation").''.$langs->trans("DateDeliveryPlanned").''.$langs->trans("batch_number").''.$langs->trans("SellByDate").''.$langs->trans("Status").'
    '; if (!empty($objp->fk_reception)) { $reception = new Reception($db); @@ -1243,7 +1228,7 @@ if ($id > 0 || !empty($ref)) { print ''.dol_print_date($db->jdate($objp->datec), 'day').''.dol_print_date($db->jdate($objp->date_delivery), 'day').''; if (!empty($reception->id)) { print $reception->getLibStatut(5); diff --git a/htdocs/fourn/commande/document.php b/htdocs/fourn/commande/document.php index d54d5553efb..0eba3dbc601 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); @@ -131,7 +132,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').' '; if ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer) { diff --git a/htdocs/fourn/commande/index.php b/htdocs/fourn/commande/index.php index 7d6b3b6936a..5fc4d46072e 100644 --- a/htdocs/fourn/commande/index.php +++ b/htdocs/fourn/commande/index.php @@ -25,6 +25,7 @@ * \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'; @@ -172,7 +173,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 +220,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 6c64672ee84..017818e3e6b 100644 --- a/htdocs/fourn/commande/info.php +++ b/htdocs/fourn/commande/info.php @@ -24,12 +24,13 @@ * \brief Fiche commande */ +// Load Dolibarr environment require '../../main.inc.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'; } @@ -113,7 +114,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"); } @@ -139,7 +140,7 @@ $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->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->fournisseur->commande->creer || $user->rights->supplier_order->creer) { @@ -201,7 +202,7 @@ if ($permok) { print '
    '; -if (!empty($conf->agenda->enabled)) { +if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 3ddb1350a8b..4b8c1cffc6d 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 * @@ -31,6 +31,7 @@ * \brief List of purchase 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'; @@ -93,6 +94,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 +121,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 +183,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'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES)), 'position'=>100), + 'cf.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES)), 'position'=>110), ); foreach ($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field @@ -209,6 +214,12 @@ $arrayfields = dol_sort_array($arrayfields, 'position'); $error = 0; +$permissiontoread = ($user->rights->fournisseur->commande->lire || $user->rights->supplier_order->lire); +$permissiontoadd = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); +$permissiontodelete = ($user->rights->fournisseur->commande->supprimer || $user->rights->supplier_order->supprimer); +$permissiontovalidate = $permissiontoadd; +$permissiontoapprove = ($user->rights->fournisseur->commande->approuver || $user->rights->supplier_order->approuver); + /* * Actions @@ -240,6 +251,7 @@ if (empty($reshook)) { $search_ref = ''; $search_refsupp = ''; $search_company = ''; + $search_company_alias = ''; $search_town = ''; $search_zip = ""; $search_state = ""; @@ -291,7 +303,7 @@ if (empty($reshook)) { $search_date_approve_end = ''; $billed = ''; $search_billed = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -302,9 +314,6 @@ if (empty($reshook)) { // Mass actions $objectclass = 'CommandeFournisseur'; $objectlabel = 'SupplierOrders'; - $permissiontoread = $user->rights->fournisseur->commande->lire; - $permissiontodelete = $user->rights->fournisseur->commande->supprimer; - $permissiontovalidate = $user->rights->fournisseur->commande->creer; $uploaddir = $conf->fournisseur->commande->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; @@ -321,7 +330,7 @@ if (empty($reshook)) { $result = $objecttmp->valid($user); if ($result >= 0) { // If we have permission, and if we don't need to provide the idwarehouse, we go directly on approved step - if (empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE) && $user->rights->fournisseur->commande->approuver && !(!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $objecttmp->hasProductsOrServices(1))) { + if (empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE) && $permissiontoapprove && !(!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $objecttmp->hasProductsOrServices(1))) { $result = $objecttmp->approve($user); setEventMessages($langs->trans("SupplierOrderValidatedAndApproved"), array($objecttmp->ref)); } else { @@ -654,6 +663,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); @@ -711,7 +723,7 @@ $formorder = new FormOrder($db); $formother = new FormOther($db); $formcompany = new FormCompany($db); -$title = $langs->trans("ListOfSupplierOrders"); +$title = $langs->trans("SuppliersOrders"); if ($socid > 0) { $fourn = new Fournisseur($db); $fourn->fetch($socid); @@ -732,13 +744,12 @@ 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); $sql = 'SELECT'; if ($sall || $search_product_category > 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, 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.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,"; @@ -800,6 +811,9 @@ if ($sall) { 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); } @@ -858,6 +872,9 @@ if ($search_type_thirdparty != '' && $search_type_thirdparty > 0) { 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); } @@ -1029,6 +1046,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); } @@ -1096,7 +1116,7 @@ if ($resql) { ); if ($permissiontovalidate) { - if ($user->rights->fournisseur->commande->approuver && empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE)) { + if ($permissiontoapprove && empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE)) { $arrayofmassactions['prevalidate'] = img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("ValidateAndApprove"); } else { $arrayofmassactions['prevalidate'] = img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate"); @@ -1106,7 +1126,7 @@ if ($resql) { if ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer) { $arrayofmassactions['createbills'] = img_picto('', 'bill', 'class="pictofixedwidth"').$langs->trans("CreateInvoiceForThisSupplier"); } - if ($user->rights->fournisseur->commande->supprimer) { + if ($permissiontodelete) { $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } if (in_array($massaction, array('presend', 'predelete', 'createbills'))) { @@ -1119,7 +1139,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, '', ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer)); + $newcardbutton = dolGetButtonTitle($langs->trans('NewSupplierOrderShort'), '', 'fa fa-plus-circle', $url, '', $permissiontoadd); // Lines of title fields print ''; @@ -1195,7 +1215,7 @@ if ($resql) { $moreforfilter = ''; // If the user can view prospects other than his' - if ($user->rights->societe->client->voir || $socid) { + if ($user->rights->user->user->lire) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -1210,7 +1230,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'); @@ -1272,6 +1292,10 @@ if ($resql) { if (!empty($arrayfields['cf.fk_soc']['checked'])) { print '
    '; + print ''; + print ''; $searchpicto = $form->showFilterButtons(); @@ -1444,6 +1478,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); } @@ -1516,6 +1553,12 @@ 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 '); } + 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 '); + } print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "
    '; + print $obj->alias; print ''; + print dol_string_nohtmltag($obj->note_public); + print ''; + print dol_string_nohtmltag($obj->note_private); + print ''; @@ -1855,6 +1930,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 '
    '.$langs->trans("NoRecordFound").'
    '; @@ -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 "'; // Action button print ''; print ''; } @@ -764,9 +742,54 @@ if ($step == 3 && $datatoimport) { // STEP 4: Page to make matching between source file and database fields 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"] : ''; + $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]; + $val = (isset($tabelem[1]) ? $tabelem[1] : ''); + if ($key && $val) { + $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); + if (empty($separator)) { + $separator = (empty($conf->global->IMPORT_CSV_SEPARATOR_TO_USE) ? ',' : $conf->global->IMPORT_CSV_SEPARATOR_TO_USE); + } + + // The separator has been defined, if it is a unique char, we check it is valid by reading the source file + if ($model == 'csv' && strlen($separator) == 1 && !GETPOSTISSET('separator')) { + // Count the char in first line of file. + $fh = fopen($conf->import->dir_temp.'/'.$filetoimport, 'r'); + if ($fh) { + $sline = fgets($fh, 1000000); + fclose($fh); + $nboccurence = substr_count($sline, $separator); + $nboccurencea = substr_count($sline, ','); + $nboccurenceb = substr_count($sline, ';'); + //var_dump($nboccurence." ".$nboccurencea." ".$nboccurenceb);exit; + if ($nboccurence == 0) { + if ($nboccurencea > 2) { + $separator = ','; + } elseif ($nboccurenceb > 2) { + $separator = ';'; + } + } + } + } + + // The value to use + $separator_used = str_replace('\t', "\t", $separator); + // Create classe to use for import $dir = DOL_DOCUMENT_ROOT."/core/modules/import/"; $file = "import_".$model.".modules.php"; @@ -800,19 +823,25 @@ if ($step == 4 && $datatoimport) { // Put into array fieldssource starting with 1. $i = 1; foreach ($arrayrecord as $key => $val) { - $fieldssource[$i]['example1'] = dol_trunc($val['val'], 24); - $i++; + if ($val["type"] != -1) { + $fieldssource[$i]['example1'] = dol_trunc($val['val'], 128); + $i++; + } } $obj->import_close_file(); } // Load targets fields in database $fieldstarget = $objimport->array_import_fields[0]; - - $maxpos = max(count($fieldssource), count($fieldstarget)); - + $minpos = min(count($fieldssource), count($fieldstarget)); //var_dump($array_match_file_to_database); + + $initialloadofstep4 = false; + if (empty($_SESSION['dol_array_match_file_to_database_select'])) { + $initialloadofstep4 = true; + } + // Is it a first time in page (if yes, we must initialize array_match_file_to_database) if (count($array_match_file_to_database) == 0) { // This is first input in screen, we need to define @@ -831,22 +860,56 @@ 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"] = $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); + $position = 0; + foreach ($fieldstarget as $key => $label) { + $isrequired = preg_match('/\*$/', $label); + if (!empty($isrequired)) { + $newlabel = substr($label, 0, -1); + $fieldstarget_tmp[$key] = array("label"=>$newlabel, "required"=>true); + } else { + $fieldstarget_tmp[$key] = array("label"=>$label, "required"=>false); + } + if (!empty($array_match_database_to_file[$key])) { + $fieldstarget_tmp[$key]["imported"] = true; + $fieldstarget_tmp[$key]["position"] = $array_match_database_to_file[$key]-1; + $keytoswap = $key; + while (!empty($array_match_database_to_file[$keytoswap])) { + if ($position+1 > $array_match_database_to_file[$keytoswap]) { + $keytoswapwith = $array_match_database_to_file[$keytoswap]-1; + $tmp = [$keytoswap=>$fieldstarget_tmp[$keytoswap]]; + unset($fieldstarget_tmp[$keytoswap]); + $fieldstarget_tmp = arrayInsert($fieldstarget_tmp, $keytoswapwith, $tmp); + $keytoswapwith = $arraykeysfieldtarget[$array_match_database_to_file[$keytoswap]-1]; + $tmp = $fieldstarget_tmp[$keytoswapwith]; + unset($fieldstarget_tmp[$keytoswapwith]); + $fieldstarget_tmp[$keytoswapwith] = $tmp; + $keytoswap = $keytoswapwith; + } else { + break; + } + } + } else { + $fieldstarget_tmp[$key]["imported"] = false; + } + $position++; + } + $fieldstarget = $fieldstarget_tmp; //print $serialized_array_match_file_to_database; //print $_SESSION["dol_array_match_file_to_database"]; + //print $_SESSION["dol_array_match_file_to_database_select"]; //var_dump($array_match_file_to_database);exit; // Now $array_match_file_to_database contains fieldnb(1,2,3...)=>fielddatabase(key in $array_match_file_to_database) @@ -874,7 +937,7 @@ if ($step == 4 && $datatoimport) { print '
    '; print '
    '; - print '
    ' . $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 ''; } diff --git a/htdocs/hrm/admin/evaluation_extrafields.php b/htdocs/hrm/admin/evaluation_extrafields.php index a9614ccd03f..6513ea311e3 100644 --- a/htdocs/hrm/admin/evaluation_extrafields.php +++ b/htdocs/hrm/admin/evaluation_extrafields.php @@ -27,33 +27,7 @@ */ // 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'; @@ -91,6 +65,8 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ +$textobject = $langs->transnoentitiesnoconv("Evaluation"); + $help_url = ''; $page_name = "HrmSetup"; @@ -103,7 +79,7 @@ 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'; @@ -113,7 +89,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/hrm/admin/job_extrafields.php b/htdocs/hrm/admin/job_extrafields.php index 4b0d76e5187..5d6ea5d6990 100644 --- a/htdocs/hrm/admin/job_extrafields.php +++ b/htdocs/hrm/admin/job_extrafields.php @@ -27,33 +27,7 @@ */ // 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'; @@ -91,6 +65,8 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ +$textobject = $langs->transnoentitiesnoconv("Job"); + $help_url = ''; $page_name = "HrmSetup"; @@ -103,7 +79,7 @@ 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'; @@ -113,7 +89,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/hrm/admin/skill_extrafields.php b/htdocs/hrm/admin/skill_extrafields.php index f8d123cce74..adcf6277dd0 100644 --- a/htdocs/hrm/admin/skill_extrafields.php +++ b/htdocs/hrm/admin/skill_extrafields.php @@ -27,33 +27,7 @@ */ // 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'; @@ -91,6 +65,8 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ +$textobject = $langs->transnoentitiesnoconv("Skills"); + $help_url = ''; $page_name = "HrmSetup"; @@ -103,7 +79,7 @@ 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'; @@ -113,7 +89,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } 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..879acff61fa 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 @@ -189,7 +189,7 @@ class Evaluation 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; } @@ -878,27 +878,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); diff --git a/htdocs/hrm/class/evaluationdet.class.php b/htdocs/hrm/class/evaluationdet.class.php index 0ca56d84e60..e8476d0449d 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; } @@ -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); @@ -618,8 +618,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 +642,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 +666,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 +850,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); diff --git a/htdocs/hrm/class/job.class.php b/htdocs/hrm/class/job.class.php index c7f2e1a5f6b..117878c10c9 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); @@ -652,8 +652,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 +676,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 +700,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 +884,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); diff --git a/htdocs/hrm/class/position.class.php b/htdocs/hrm/class/position.class.php index f83fa5901d8..19246dc2313 100644 --- a/htdocs/hrm/class/position.class.php +++ b/htdocs/hrm/class/position.class.php @@ -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); diff --git a/htdocs/hrm/class/skill.class.php b/htdocs/hrm/class/skill.class.php index ececc70b4f1..2c86c5dca56 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; @@ -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); @@ -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..4f6d43baa59 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; } @@ -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 aa1d70b430f..6db80642bab 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; } @@ -414,15 +414,15 @@ class SkillRank extends CommonObject if (count($filter) > 0) { 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).'\''; + $sqlwhere[] = $key." = ".((int) $value); + } elseif ($key != 'customsql' && 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)).')'; + $sqlwhere[] = $key." IN (".$this->db->sanitize($this->db->escape($value)).")"; } else { - $sqlwhere[] = $key.' LIKE \'%'.$this->db->escape($value).'%\''; + $sqlwhere[] = $key." LIKE '%".$this->db->escape($value)."%'"; } } } @@ -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); diff --git a/htdocs/hrm/compare.php b/htdocs/hrm/compare.php index c8bb01d85e5..686d5820695 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 * @@ -33,23 +33,29 @@ * */ + +// 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'); +// 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 diff --git a/htdocs/hrm/establishment/card.php b/htdocs/hrm/establishment/card.php index 1fe67dd0bd1..14ae1364494 100644 --- a/htdocs/hrm/establishment/card.php +++ b/htdocs/hrm/establishment/card.php @@ -20,6 +20,7 @@ * \brief Page to show an establishment */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php'; @@ -178,7 +179,7 @@ if ($action == 'create') { // Entity /* - if (! empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { print ''; print ''; print ''; print ''; print ''; print ''; diff --git a/htdocs/hrm/establishment/info.php b/htdocs/hrm/establishment/info.php index b1f7057f6a5..bae5f28376d 100644 --- a/htdocs/hrm/establishment/info.php +++ b/htdocs/hrm/establishment/info.php @@ -20,6 +20,7 @@ * \brief Page to show info of an establishment */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -123,7 +124,7 @@ $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); @@ -147,7 +148,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') . ' '; @@ -168,7 +169,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(); diff --git a/htdocs/hrm/evaluation_agenda.php b/htdocs/hrm/evaluation_agenda.php index 87a09043a62..ed9e9ecc196 100644 --- a/htdocs/hrm/evaluation_agenda.php +++ b/htdocs/hrm/evaluation_agenda.php @@ -134,7 +134,7 @@ $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); @@ -198,7 +198,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -208,7 +208,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/hrm/evaluation_card.php b/htdocs/hrm/evaluation_card.php index 71d3101e1c7..9c73d8c99b6 100644 --- a/htdocs/hrm/evaluation_card.php +++ b/htdocs/hrm/evaluation_card.php @@ -680,7 +680,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/hrm/evaluation_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/hrm/evaluation_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/hrm/evaluation_contact.php b/htdocs/hrm/evaluation_contact.php index 61af793b28a..205192055c6 100644 --- a/htdocs/hrm/evaluation_contact.php +++ b/htdocs/hrm/evaluation_contact.php @@ -139,7 +139,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') . ' '; @@ -160,7 +160,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/hrm/evaluation_document.php b/htdocs/hrm/evaluation_document.php index 215756eff8b..cf93c75edbf 100644 --- a/htdocs/hrm/evaluation_document.php +++ b/htdocs/hrm/evaluation_document.php @@ -54,7 +54,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) { diff --git a/htdocs/hrm/evaluation_list.php b/htdocs/hrm/evaluation_list.php index 466741153c4..cc584b2e8d4 100644 --- a/htdocs/hrm/evaluation_list.php +++ b/htdocs/hrm/evaluation_list.php @@ -208,7 +208,7 @@ $now = dol_now(); //$help_url="EN:Module_Evaluation|FR:Module_Evaluation_FR|ES:Módulo_Evaluation"; $help_url = ''; -$title = $langs->trans("List").' '.$langs->trans('Evaluations'); +$title = $langs->trans('Evaluations'); $morejs = array(); $morecss = array(); diff --git a/htdocs/hrm/index.php b/htdocs/hrm/index.php index c573b78ed51..e8554c9da3d 100644 --- a/htdocs/hrm/index.php +++ b/htdocs/hrm/index.php @@ -26,6 +26,8 @@ * \brief Home page for HRM area. */ + +// 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'; @@ -34,26 +36,30 @@ require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.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 (!empty($conf->recruitment->enabled)) { +if (isModEnabled('recruitment')) { require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; } -if (!empty($conf->holiday->enabled)) { +if (isModEnabled('holiday')) { require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; } + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager = new HookManager($db); $hookmanager->initHooks('hrmindex'); // Load translation files required by the page $langs->loadLangs(array('users', 'holiday', 'trips', 'boxes')); +// Get Parameters $socid = GETPOST("socid", "int"); // Protection if external user @@ -73,7 +79,7 @@ $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; */ // Update sold -if (!empty($conf->holiday->enabled) && !empty($setupcompanynotcomplete)) { +if (isModEnabled('holiday') && !empty($setupcompanynotcomplete)) { $holidaystatic = new Holiday($db); $result = $holidaystatic->updateBalance(); } @@ -106,15 +112,15 @@ if (!empty($setupcompanynotcomplete)) { print '
    '; if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) { // This is useless due to the global search combo - if (!empty($conf->holiday->enabled) && $user->rights->holiday->read) { + if (isModEnabled('holiday') && $user->rights->holiday->read) { $langs->load("holiday"); $listofsearchfields['search_holiday'] = array('text'=>'TitreRequestCP'); } - if (!empty($conf->deplacement->enabled) && $user->rights->deplacement->lire) { + if (isModEnabled('deplacement') && $user->rights->deplacement->lire) { $langs->load("trips"); $listofsearchfields['search_deplacement'] = array('text'=>'ExpenseReport'); } - if (!empty($conf->expensereport->enabled) && $user->rights->expensereport->lire) { + if (isModEnabled('expensereport') && $user->rights->expensereport->lire) { $langs->load("trips"); $listofsearchfields['search_expensereport'] = array('text'=>'ExpenseReport'); } @@ -144,7 +150,7 @@ if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) { // This is usel } -if (!empty($conf->holiday->enabled)) { +if (isModEnabled('holiday')) { if (empty($conf->global->HOLIDAY_HIDE_BALANCE)) { $holidaystatic = new Holiday($db); $user_id = $user->id; @@ -181,7 +187,7 @@ print '
    '; // Latest leave requests -if (!empty($conf->holiday->enabled) && $user->rights->holiday->read) { +if (isModEnabled('holiday') && $user->rights->holiday->read) { $sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.email, u.photo, u.statut as user_status,"; $sql .= " x.rowid, x.ref, x.fk_type, x.date_debut as date_start, x.date_fin as date_end, x.halfday, x.tms as dm, x.statut as status"; $sql .= " FROM ".MAIN_DB_PREFIX."holiday as x, ".MAIN_DB_PREFIX."user as u"; @@ -264,7 +270,7 @@ if (!empty($conf->holiday->enabled) && $user->rights->holiday->read) { // Latest expense report -if (!empty($conf->expensereport->enabled) && $user->rights->expensereport->lire) { +if (isModEnabled('expensereport') && $user->hasRight('expensereport', 'read')) { $sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.email, u.statut as user_status, u.photo,"; $sql .= " x.rowid, x.ref, x.date_debut as date, x.tms as dm, x.total_ttc, x.fk_statut as status"; $sql .= " FROM ".MAIN_DB_PREFIX."expensereport as x, ".MAIN_DB_PREFIX."user as u"; @@ -336,18 +342,18 @@ if (!empty($conf->expensereport->enabled) && $user->rights->expensereport->lire) // Last modified job position -if (!empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitmentjobposition->read) { +if (isModEnabled('recruitment') && $user->hasRight('recruitment', 'recruitmentjobposition', 'read')) { $staticrecruitmentcandidature = new RecruitmentCandidature($db); $staticrecruitmentjobposition = new RecruitmentJobPosition($db); $sql = "SELECT rc.rowid, rc.ref, rc.email, rc.lastname, rc.firstname, rc.date_creation, rc.tms, rc.status,"; $sql.= " rp.rowid as jobid, rp.ref as jobref, rp.label"; $sql .= " FROM ".MAIN_DB_PREFIX."recruitment_recruitmentcandidature as rc"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."recruitment_recruitmentjobposition as rp ON rc.fk_recruitmentjobposition = rp.rowid"; - if ($conf->societe->enabled && empty($user->rights->societe->client->voir) && !$socid) { + if (isModEnabled('societe') && empty($user->rights->societe->client->voir) && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } $sql .= " WHERE rc.entity IN (".getEntity($staticrecruitmentcandidature->element).")"; - if ($conf->societe->enabled && empty($user->rights->societe->client->voir) && !$socid) { + if (isModEnabled('societe') && empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND rp.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } if ($socid) { diff --git a/htdocs/hrm/job_agenda.php b/htdocs/hrm/job_agenda.php index 0d966e67416..b6ce99c9801 100644 --- a/htdocs/hrm/job_agenda.php +++ b/htdocs/hrm/job_agenda.php @@ -133,7 +133,7 @@ $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); @@ -189,14 +189,14 @@ if ($object->id > 0) { } - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { $newcardbutton = ''; $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); } } - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/hrm/job_card.php b/htdocs/hrm/job_card.php index 906eb83b945..a9ec4f77121 100644 --- a/htdocs/hrm/job_card.php +++ b/htdocs/hrm/job_card.php @@ -21,8 +21,8 @@ /** * \file job_card.php - * \ingroup hrm - * \brief Page to create/edit/view job + * \ingroup hrm + * \brief Page to create/edit/view job */ @@ -451,7 +451,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/hrm/job_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/hrm/job_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; diff --git a/htdocs/hrm/job_contact.php b/htdocs/hrm/job_contact.php index 67da8ecfd91..4a6c9995127 100644 --- a/htdocs/hrm/job_contact.php +++ b/htdocs/hrm/job_contact.php @@ -139,7 +139,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') . ' '; @@ -160,7 +160,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/hrm/job_document.php b/htdocs/hrm/job_document.php index 83745962052..0e4d34e0412 100644 --- a/htdocs/hrm/job_document.php +++ b/htdocs/hrm/job_document.php @@ -52,7 +52,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) { diff --git a/htdocs/hrm/job_list.php b/htdocs/hrm/job_list.php index 33f4ea46305..53cb43ad080 100644 --- a/htdocs/hrm/job_list.php +++ b/htdocs/hrm/job_list.php @@ -208,7 +208,7 @@ $now = dol_now(); //$help_url="EN:Module_Job|FR:Module_Job_FR|ES:Módulo_Job"; $help_url = ''; -$title = $langs->trans("ListOf", $langs->transnoentities('Jobs')); +$title = $langs->trans("JobsPosition"); $morejs = array(); $morecss = array(); diff --git a/htdocs/hrm/lib/hrm_job.lib.php b/htdocs/hrm/lib/hrm_job.lib.php index f465d934b0f..6a948b00439 100644 --- a/htdocs/hrm/lib/hrm_job.lib.php +++ b/htdocs/hrm/lib/hrm_job.lib.php @@ -39,17 +39,17 @@ function jobPrepareHead($object) $h = 0; $head = array(); - $head[$h][0] = dol_buildpath("/hrm/job_card.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("JobCard"); + $head[$h][0] = DOL_URL_ROOT."/hrm/job_card.php?id=".$object->id; + $head[$h][1] = $langs->trans("JobPosition"); $head[$h][2] = 'job_card'; $h++; - $head[$h][0] = dol_buildpath("/hrm/skill_tab.php", 1).'?id='.$object->id.'&objecttype=job'; + $head[$h][0] = DOL_URL_ROOT."/hrm/skill_tab.php?id=".$object->id.'&objecttype=job'; $head[$h][1] = $langs->trans("RequiredSkills"); $head[$h][2] = 'skill_tab'; $h++; - $head[$h][0] = dol_buildpath("/hrm/position.php", 1).'?fk_job='.$object->id; + $head[$h][0] = DOL_URL_ROOT."/hrm/position.php?fk_job=".$object->id; $head[$h][1] = $langs->trans("EmployeesInThisPosition"); $head[$h][2] = 'position'; $h++; diff --git a/htdocs/hrm/lib/hrm_position.lib.php b/htdocs/hrm/lib/hrm_position.lib.php index da9a7b3123a..37eaa3c5684 100644 --- a/htdocs/hrm/lib/hrm_position.lib.php +++ b/htdocs/hrm/lib/hrm_position.lib.php @@ -31,7 +31,7 @@ * @param Position $object Position * @return array Array of tabs */ -function PositionCardPrepareHead($object) +function positionCardPrepareHead($object) { global $db, $langs, $conf; @@ -41,7 +41,7 @@ function PositionCardPrepareHead($object) $head = array(); $head[$h][0] = dol_buildpath("/hrm/position_card.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("PositionCard"); + $head[$h][1] = $langs->trans("EmployeePosition"); $head[$h][2] = 'position'; $h++; diff --git a/htdocs/hrm/position.php b/htdocs/hrm/position.php index 78838136a1e..7a1114ac4a0 100644 --- a/htdocs/hrm/position.php +++ b/htdocs/hrm/position.php @@ -20,9 +20,9 @@ */ /** - * \file position.php - * \ingroup hrm - * \brief Page to create/edit/view position + * \file htdocs/hrm/position.php + * \ingroup hrm + * \brief Page to create/edit/view position */ //if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db @@ -31,7 +31,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 @@ -41,7 +40,6 @@ //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 @@ -88,10 +86,6 @@ require_once DOL_DOCUMENT_ROOT . '/hrm/class/job.class.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_position.lib.php'; require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_job.lib.php'; -$action = GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... -$backtopage = GETPOST('backtopage', 'alpha'); -$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); -$fk_job = GETPOST('fk_job', 'int'); // Get parameters $id = GETPOST('fk_job', 'int'); @@ -105,12 +99,18 @@ $confirm = GETPOST('confirm', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'positioncard'; // To manage different context of search +$action = GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$backtopage = GETPOST('backtopage', 'alpha'); +$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); +$fk_job = GETPOST('fk_job', 'int'); + // Initialize technical objects $object = new Job($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->hrm->dir_output . '/temp/massgeneration/' . $user->id; + $hookmanager->initHooks(array('positiontab', 'globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels @@ -130,6 +130,7 @@ foreach ($object->fields as $key => $val) { // Load object include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php'; // Must be include, not include_once. +// Permissions $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 $permissiontodelete = $user->rights->hrm->all->delete; diff --git a/htdocs/hrm/position_agenda.php b/htdocs/hrm/position_agenda.php index fda60a29259..fc90a24dec6 100644 --- a/htdocs/hrm/position_agenda.php +++ b/htdocs/hrm/position_agenda.php @@ -134,14 +134,14 @@ $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)) { $langs->load("mails"); } - $head = PositionCardPrepareHead($object); + $head = positionCardPrepareHead($object); print dol_get_fiche_head($head, 'agenda', $langs->trans("Agenda"), -1, $object->picto); @@ -197,7 +197,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -207,7 +207,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/hrm/position_card.php b/htdocs/hrm/position_card.php index c26d981a324..746e1265a0b 100644 --- a/htdocs/hrm/position_card.php +++ b/htdocs/hrm/position_card.php @@ -171,18 +171,18 @@ if (empty($reshook)) { include DOL_DOCUMENT_ROOT . '/core/actions_sendmails.inc.php'; } -DisplayPositionCard($object); + +displayPositionCard($object); + /** * Show the card of a position * * @param Position $object Position object - * * @return void */ -function DisplayPositionCard(&$object) +function displayPositionCard(&$object) { - global $user, $langs, $db, $conf, $extrafields, $hookmanager, $action, $permissiontoadd, $permissiontodelete; $id = $object->id; @@ -245,7 +245,7 @@ function DisplayPositionCard(&$object) $res = $object->fetch_optionals(); - $head = PositionCardPrepareHead($object); + $head = positionCardPrepareHead($object); print dol_get_fiche_head($head, 'position', $langs->trans("Workstation"), -1, $object->picto); $formconfirm = ''; @@ -348,7 +348,7 @@ function DisplayPositionCard(&$object) // // $MAXEVENT = 10; // -// $morehtmlright = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id); +// $morehtmlright = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id); // // // List of actions on element // include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; @@ -377,7 +377,7 @@ if ($action !== 'edit' && $action !== 'create') { $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/hrm/position_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/hrm/position_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; diff --git a/htdocs/hrm/position_contact.php b/htdocs/hrm/position_contact.php index a7246e3a82b..f443099a9e4 100644 --- a/htdocs/hrm/position_contact.php +++ b/htdocs/hrm/position_contact.php @@ -125,7 +125,7 @@ if ($object->id) { /* * Show tabs */ - $head = PositionCardPrepareHead($object); + $head = positionCardPrepareHead($object); print dol_get_fiche_head($head, 'contact', '', -1, $object->picto); @@ -139,7 +139,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') . ' '; @@ -160,7 +160,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/hrm/position_document.php b/htdocs/hrm/position_document.php index 845f846a212..c51f2204441 100644 --- a/htdocs/hrm/position_document.php +++ b/htdocs/hrm/position_document.php @@ -53,7 +53,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) { @@ -113,7 +113,7 @@ if ($object->id) { /* * Show tabs */ - $head = PositionCardPrepareHead($object); + $head = positionCardPrepareHead($object); print dol_get_fiche_head($head, 'document', $langs->trans("Document"), -1, $object->picto); diff --git a/htdocs/hrm/position_list.php b/htdocs/hrm/position_list.php index f193783cb42..e9eb83e12e4 100644 --- a/htdocs/hrm/position_list.php +++ b/htdocs/hrm/position_list.php @@ -208,7 +208,7 @@ $now = dol_now(); //$help_url="EN:Module_Position|FR:Module_Position_FR|ES:Módulo_Position"; $help_url = ''; -$title = $langs->trans("ListOf", $langs->trans('Positions')); +$title = $langs->trans('EmployeePositions'); $morejs = array(); $morecss = array(); diff --git a/htdocs/hrm/position_note.php b/htdocs/hrm/position_note.php index 1eea4b82676..99d6581247f 100644 --- a/htdocs/hrm/position_note.php +++ b/htdocs/hrm/position_note.php @@ -96,7 +96,7 @@ llxHeader('', $langs->trans('Position'), $help_url); if ($id > 0 || !empty($ref)) { $object->fetch_thirdparty(); - $head = PositionCardPrepareHead($object); + $head = positionCardPrepareHead($object); print dol_get_fiche_head($head, 'note', $langs->trans("Notes"), -1, $object->picto); diff --git a/htdocs/hrm/skill_agenda.php b/htdocs/hrm/skill_agenda.php index d73271a4f26..23f98d75f3f 100644 --- a/htdocs/hrm/skill_agenda.php +++ b/htdocs/hrm/skill_agenda.php @@ -133,7 +133,7 @@ $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); @@ -191,7 +191,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -201,7 +201,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/hrm/skill_card.php b/htdocs/hrm/skill_card.php index 6cac7b4d448..4fd3a0bc28b 100644 --- a/htdocs/hrm/skill_card.php +++ b/htdocs/hrm/skill_card.php @@ -47,7 +47,7 @@ $cancel = GETPOST('cancel', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'skillcard'; // 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 Skill($db); @@ -123,11 +123,11 @@ if (empty($reshook)) { // 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'; + $noback = 1; + include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; // action update on Skilldet - - $skilldetArray = GETPOST("descriptionline", "array"); + $skilldetArray = GETPOST("descriptionline", "array:alphanohtml"); if (!$error) { if (is_array($skilldetArray) && count($skilldetArray) > 0) { @@ -577,7 +577,7 @@ if ($action != "create" && $action != "edit") { $title = $langs->transnoentitiesnoconv("Skilldets"); $morejs = array(); $morecss = array(); - + $nbtotalofrecords = 0; // Build and execute select // -------------------------------------------------------------------- @@ -626,8 +626,10 @@ if ($action != "create" && $action != "edit") { print ''; } - $param_fk = "&fk_skill=" . $id . "&fk_user_creat=" . $user->rowid; + $param_fk = "&fk_skill=" . $id . "&fk_user_creat=" . (!empty($user->rowid) ? $user->rowid :0); $backtopage = dol_buildpath('/hrm/skill_card.php', 1) . '?id=' . $id; + $param = ""; + $massactionbutton = ""; //$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/hrm/skilldet_card.php', 1) . '?action=create&backtopage=' . urlencode($_SERVER['PHP_SELF']) . $param_fk . '&backtopage=' . $backtopage, '', $permissiontoadd); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_' . $object->picto, 0, "", '', '', 0, 0, 1); @@ -688,7 +690,7 @@ if ($action != "create" && $action != "edit") { // $cssforfield .= ($cssforfield ? ' ' : '') . 'right'; // } 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"; + print getTitleFieldOfList($arrayfields['t.' . $key]['label'], 0, $_SERVER['PHP_SELF'], 't.' . $key, '', $param, (!empty($cssforfield) ? 'class="' . $cssforfield . '"' : ''), $sortfield, $sortorder, (!empty($cssforfield) ? $cssforfield . ' ' : '')) . "\n"; } } print '
    '; @@ -814,8 +816,7 @@ if ($action != "create" && $action != "edit") { print ''; } - - $db->free($resql); + if (!empty($resql)) $db->free($resql); $parameters = array('arrayfields' => $arrayfields, 'sql' => $sql); $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $objectline); // Note that $action and $objectline may have been modified by hook @@ -856,7 +857,7 @@ if ($action != "create" && $action != "edit") { $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/hrm/skill_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/hrm/skill_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; diff --git a/htdocs/hrm/skill_contact.php b/htdocs/hrm/skill_contact.php index d8fecd74610..c5fe154557c 100644 --- a/htdocs/hrm/skill_contact.php +++ b/htdocs/hrm/skill_contact.php @@ -139,7 +139,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') . ' '; @@ -160,7 +160,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/hrm/skill_document.php b/htdocs/hrm/skill_document.php index f305ecd1e2e..c0fe492be06 100644 --- a/htdocs/hrm/skill_document.php +++ b/htdocs/hrm/skill_document.php @@ -53,7 +53,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) { diff --git a/htdocs/hrm/skill_list.php b/htdocs/hrm/skill_list.php index 9c5a4740c15..65a3cac0ecf 100644 --- a/htdocs/hrm/skill_list.php +++ b/htdocs/hrm/skill_list.php @@ -208,7 +208,7 @@ $now = dol_now(); //$help_url="EN:Module_Skill|FR:Module_Skill_FR|ES:Módulo_Skill"; $help_url = ''; -$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("Skills")); +$title = $langs->trans("Skills"); $morejs = array(); $morecss = array(); diff --git a/htdocs/hrm/skill_tab.php b/htdocs/hrm/skill_tab.php index 0bbc039152c..393e20ba3c4 100644 --- a/htdocs/hrm/skill_tab.php +++ b/htdocs/hrm/skill_tab.php @@ -64,7 +64,9 @@ if (in_array($objecttype, $TAuthorizedObjects)) { } 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 @@ -120,10 +122,10 @@ if (empty($reshook)) { $skillAdded->fk_object = $id; $skillAdded->objecttype = $objecttype; $ret = $skillAdded->create($user); - if ($ret < 0) setEventMessage($skillAdded->error, 'errors'); + if ($ret < 0) setEventMessages($skillAdded->error, null, 'errors'); //else unset($TSkillsToAdd); } - if ($ret > 0) setEventMessage($langs->trans("SaveAddSkill")); + if ($ret > 0) setEventMessages($langs->trans("SaveAddSkill"), null); } } elseif ($action == 'saveSkill') { if (!empty($TNote)) { @@ -136,14 +138,14 @@ if (empty($reshook)) { } } } - setEventMessage($langs->trans("SaveLevelSkill")); - header("Location: " . dol_buildpath('/hrm/skill_tab.php', 1) . '?id=' . $id. '&objecttype=job'); + setEventMessages($langs->trans("SaveLevelSkill"), null); + header("Location: " . DOL_URL_ROOT.'/hrm/skill_tab.php?id=' . $id. '&objecttype=job'); exit; } } elseif ($action == 'confirm_deleteskill' && $confirm == 'yes') { $skillToDelete = new SkillRank($db); $ret = $skillToDelete->fetch($lineid); - setEventMessage($langs->trans("DeleteSkill")); + setEventMessages($langs->trans("DeleteSkill"), null); if ($ret > 0) { $skillToDelete->delete($user); } @@ -152,8 +154,6 @@ if (empty($reshook)) { /* * View - * - * Put here all code to build page */ $form = new Form($db); @@ -216,9 +216,9 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // ------------------------------------------------------------ $linkback = '' . $langs->trans("BackToList") . ''; - $morehtmlref = '
    '; - $morehtmlref.= $object->label; - $morehtmlref .= '
    '; + $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); @@ -247,12 +247,67 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
    '; print '
    '; + 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) { diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 7e5746bf9bb..5069842a7fd 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,11 +46,11 @@ 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'; } @@ -57,7 +58,7 @@ if (!empty($conf->projet->enabled)) { if (!empty($conf->variants->enabled)) { 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'; } @@ -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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) + if (!empty($conf->global->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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -714,12 +715,17 @@ if (empty($reshook)) { $dateinvoice = dol_mktime(0, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'), 'tzserver'); // If we enter the 02 january, we need to save the 02 january for server $datedue = dol_mktime(0, 0, 0, GETPOST('echmonth', 'int'), GETPOST('echday', 'int'), GETPOST('echyear', 'int'), 'tzserver'); - /*var_dump($dateinvoice.' '.dol_print_date($dateinvoice, 'dayhour')); - var_dump(dol_now('tzuserrel').' '.dol_get_last_hour(dol_now('tzuserrel')).' '.dol_print_date(dol_now('tzuserrel'),'dayhour').' '.dol_print_date(dol_get_last_hour(dol_now('tzuserrel')), 'dayhour')); - var_dump($db->idate($dateinvoice)); - exit;*/ + //var_dump($dateinvoice.' '.dol_print_date($dateinvoice, 'dayhour')); + //var_dump(dol_now('tzuserrel').' '.dol_get_last_hour(dol_now('tzuserrel')).' '.dol_print_date(dol_now('tzuserrel'),'dayhour').' '.dol_print_date(dol_get_last_hour(dol_now('tzuserrel')), 'dayhour')); + //var_dump($db->idate($dateinvoice)); + //exit; // Replacement invoice + if (GETPOST('type', 'int') === '') { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); + $error++; + } + if (GETPOST('type') == FactureFournisseur::TYPE_REPLACEMENT) { if (empty($dateinvoice)) { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentities('DateInvoice')), null, 'errors'); @@ -742,10 +748,10 @@ if (empty($reshook)) { $result = $object->fetch(GETPOST('fac_replacement', 'int')); $object->fetch_thirdparty(); - $object->ref = GETPOST('ref', 'nohtml'); + $object->ref = GETPOST('ref', 'alphanohtml'); $object->ref_supplier = GETPOST('ref_supplier', 'alpha'); $object->socid = GETPOST('socid', 'int'); - $object->libelle = GETPOST('label', 'nohtml'); + $object->libelle = GETPOST('label', 'alphanohtml'); $object->date = $dateinvoice; $object->date_echeance = $datedue; $object->note_public = GETPOST('note_public', 'restricthtml'); @@ -807,11 +813,11 @@ if (empty($reshook)) { $tmpproject = GETPOST('projectid', 'int'); // Creation facture - $object->ref = GETPOST('ref', 'nohtml'); - $object->ref_supplier = GETPOST('ref_supplier', 'nohtml'); + $object->ref = GETPOST('ref', 'alphanohtml'); + $object->ref_supplier = GETPOST('ref_supplier', 'alphanohtml'); $object->socid = GETPOST('socid', 'int'); - $object->libelle = GETPOST('label', 'nohtml'); - $object->label = GETPOST('label', 'nohtml'); + $object->libelle = GETPOST('label', 'alphanohtml'); + $object->label = GETPOST('label', 'alphanohtml'); $object->date = $dateinvoice; $object->date_echeance = $datedue; $object->note_public = GETPOST('note_public', 'restricthtml'); @@ -875,10 +881,10 @@ if (empty($reshook)) { if (GETPOST('invoiceAvoirWithPaymentRestAmount', 'int') == 1 && $id > 0) { $facture_source = new FactureFournisseur($db); // fetch origin object if not previously defined if ($facture_source->fetch($object->fk_facture_source) > 0) { - $totalpaye = $facture_source->getSommePaiement(); + $totalpaid = $facture_source->getSommePaiement(); $totalcreditnotes = $facture_source->getSumCreditNotesUsed(); $totaldeposits = $facture_source->getSumDepositsUsed(); - $remain_to_pay = abs($facture_source->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits); + $remain_to_pay = abs($facture_source->total_ttc - $totalpaid - $totalcreditnotes - $totaldeposits); $object->addline($langs->trans('invoiceAvoirLineWithPaymentRestAmount'), $remain_to_pay, 0, 0, 0, 1, 0, 0, '', '', 'TTC'); } @@ -898,13 +904,13 @@ if (empty($reshook)) { if (!$error) { $object->socid = GETPOST('socid', 'int'); - $object->type = GETPOST('type'); - $object->ref = GETPOST('ref'); + $object->type = GETPOST('type', 'alphanohtml'); + $object->ref = GETPOST('ref', 'alphanohtml'); $object->date = $dateinvoice; $object->note_public = trim(GETPOST('note_public', 'restricthtml')); $object->note_private = trim(GETPOST('note_private', 'restricthtml')); - $object->ref_supplier = GETPOST('ref_supplier', 'nohtml'); - $object->model_pdf = GETPOST('model'); + $object->ref_supplier = GETPOST('ref_supplier', 'alphanohtml'); + $object->model_pdf = GETPOST('model', 'alphanohtml'); $object->fk_project = GETPOST('projectid', 'int'); $object->cond_reglement_id = (GETPOST('type') == 3 ? 1 : GETPOST('cond_reglement_id')); $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); @@ -957,12 +963,12 @@ if (empty($reshook)) { // Creation invoice $object->socid = GETPOST('socid', 'int'); - $object->type = GETPOST('type'); - $object->ref = GETPOST('ref', 'nohtml'); - $object->ref_supplier = GETPOST('ref_supplier', 'nohtml'); + $object->type = GETPOST('type', 'alphanohtml'); + $object->ref = GETPOST('ref', 'alphanohtml'); + $object->ref_supplier = GETPOST('ref_supplier', 'alphanohtml'); $object->socid = GETPOST('socid', 'int'); - $object->libelle = GETPOST('label', 'nohtml'); // deprecated - $object->label = GETPOST('label', 'nohtml'); + $object->libelle = GETPOST('label', 'alphanohtml'); // deprecated + $object->label = GETPOST('label', 'alphanohtml'); $object->date = $dateinvoice; $object->date_echeance = $datedue; $object->note_public = GETPOST('note_public', 'restricthtml'); @@ -1378,6 +1384,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(); @@ -1643,10 +1658,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1707,8 +1722,8 @@ if (empty($reshook)) { // Set invoice to draft status $object->fetch($id); - $totalpaye = $object->getSommePaiement(); - $resteapayer = $object->total_ttc - $totalpaye; + $totalpaid = $object->getSommePaiement(); + $resteapayer = $object->total_ttc - $totalpaid; // We check that lines of invoices are exported in accountancy $ventilExportCompta = $object->getVentilExportCompta(); @@ -1743,10 +1758,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1883,13 +1898,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); @@ -1897,17 +1915,17 @@ 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(); $currency_code = $conf->currency; $societe = ''; - if (GETPOST('socid') > 0) { + 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; } } @@ -1956,7 +1974,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; } @@ -1974,16 +1992,16 @@ if ($action == 'create') { $objectsrc->fetch_optionals(); $object->array_options = $objectsrc->array_options; } else { - $cond_reglement_id = $societe->cond_reglement_supplier_id; - $mode_reglement_id = $societe->mode_reglement_supplier_id; - $transport_mode_id = $societe->transport_mode_supplier_id; - $fk_account = $societe->fk_account; + $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; + $transport_mode_id = !empty($societe->transport_mode_supplier_id) ? $societe->transport_mode_supplier_id : 0; + $fk_account = !empty($societe->fk_account) ? $societe->fk_account : 0; $datetmp = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); $dateinvoice = ($datetmp == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '') : $datetmp); $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; } } @@ -2004,7 +2022,7 @@ if ($action == 'create') { print ''; print ''; print ''; - if ($societe->id > 0) { + if (!empty($societe->id) && $societe->id > 0) { print ''."\n"; } print ''; @@ -2030,12 +2048,12 @@ if ($action == 'create') { print ''; 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 ''; @@ -246,17 +220,10 @@ if ($object->id) { } // Description - if (!$edit) { - print ''; - print ''; - print ''; - print ''; - } else { - print ''; - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; + print ''; print ''; print ''; @@ -273,8 +240,7 @@ if ($object->id) { print '
    '.$langs->trans('Supplier').''; - if ($societe->id > 0 && ($fac_recid <= 0 || !empty($invoice_predefined->frequency))) { + if (!empty($societe->id) && $societe->id > 0 && ($fac_recid <= 0 || !empty($invoice_predefined->frequency))) { $absolute_discount = $societe->getAvailableDiscounts('', '', 0, 1); print $societe->getNomUrl(1, 'supplier'); print ''; } else { - print img_picto('', 'company').$form->select_company($societe->id, 'socid', 's.fournisseur=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300 widthcentpercentminusxx maxwidth500'); + 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'); // reload page to retrieve supplier informations if (!empty($conf->global->RELOAD_PAGE_ON_SUPPLIER_CHANGE)) { print ''."\n"; + + + // Formulaire de demande + print ''."\n"; + print ''."\n"; + print ''."\n"; + + print dol_get_fiche_head(); + + print ''; + 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 $id validator for current leave represented by (id) + * @param $cancreate flag for user right + * @param $now date + * @param $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 d0bed943429..102d37620bc 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,20 +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 approval + */ + public $date_approval; + + /** + * @var int ID of user that has approved + */ + public $fk_user_approve; /** * @var int Date for refuse @@ -379,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,"; @@ -416,6 +421,8 @@ 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->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); @@ -469,6 +476,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,"; @@ -521,6 +530,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; @@ -536,6 +546,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); @@ -594,6 +606,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,"; @@ -645,7 +659,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); @@ -660,6 +676,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; @@ -704,7 +722,7 @@ class Holiday extends CommonObject require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $error = 0; - $checkBalance = getDictionaryValue(MAIN_DB_PREFIX.'c_holiday_types', 'block_if_negative', $this->fk_type); + $checkBalance = getDictionaryValue('c_holiday_types', 'block_if_negative', $this->fk_type); if ($checkBalance > 0) { $balance = $this->getCPforUser($this->fk_user, $this->fk_type); @@ -817,7 +835,7 @@ class Holiday extends CommonObject global $conf, $langs; $error = 0; - $checkBalance = getDictionaryValue(MAIN_DB_PREFIX.'c_holiday_types', 'block_if_negative', $this->fk_type); + $checkBalance = getDictionaryValue('c_holiday_types', 'block_if_negative', $this->fk_type); if ($checkBalance > 0) { $balance = $this->getCPforUser($this->fk_user, $this->fk_type); @@ -864,6 +882,16 @@ class Holiday extends CommonObject } 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 = '".$this->db->escape($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 { @@ -936,7 +964,7 @@ class Holiday extends CommonObject global $conf, $langs; $error = 0; - $checkBalance = getDictionaryValue(MAIN_DB_PREFIX.'c_holiday_types', 'block_if_negative', $this->fk_type); + $checkBalance = getDictionaryValue('c_holiday_types', 'block_if_negative', $this->fk_type); if ($checkBalance > 0 && $this->statut != self::STATUS_DRAFT) { $balance = $this->getCPforUser($this->fk_user, $this->fk_type); @@ -979,17 +1007,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,"; } @@ -999,7 +1037,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,"; } @@ -1111,17 +1149,15 @@ 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']); - var_dump("new: ".dol_print_date($dateStart,'dayhour').' '.dol_print_date($dateEnd,'dayhour').' '.$halfday); - */ + //var_dump("--"); + //var_dump("old: ".dol_print_date($infos_CP['date_debut'],'dayhour').' '.dol_print_date($infos_CP['date_fin'],'dayhour').' '.$infos_CP['halfday']); + //var_dump("new: ".dol_print_date($dateStart,'dayhour').' '.dol_print_date($dateEnd,'dayhour').' '.$halfday); if ($halfday == 0) { if ($dateStart >= $infos_CP['date_debut'] && $dateStart <= $infos_CP['date_fin']) { @@ -1440,7 +1476,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 @@ -1729,13 +1765,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')."))"; @@ -1819,13 +1855,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')."))"; @@ -1853,6 +1889,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; @@ -1895,6 +1932,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; @@ -2129,6 +2167,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; @@ -2170,13 +2209,14 @@ class Holiday extends CommonObject if ($affect >= 0) { $sql .= " AND affect = ".((int) $affect); } + $sql .= " ORDER BY sortorder"; $result = $this->db->query($sql); if ($result) { $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; @@ -2203,12 +2243,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); @@ -2224,38 +2265,34 @@ 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); - $cuser = new User($this->db); - $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; - - if ($obj->fk_user_creation) { + if (!empty($obj->fk_user_creation)) { $cuser = new User($this->db); $cuser->fetch($obj->fk_user_creation); $this->user_creation = $cuser; } - if ($obj->fk_user_valid) { + if (!empty($obj->fk_user_valid)) { $vuser = new User($this->db); $vuser->fetch($obj->fk_user_valid); $this->user_validation = $vuser; } - if ($obj->fk_user_modification) { + if (!empty($obj->fk_user_modification)) { $muser = new User($this->db); $muser->fetch($obj->fk_user_modification); $this->user_modification = $muser; } 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); + $auser->fetch($obj->fk_user_approval_done); $this->user_approve = $auser; } } else { - if ($obj->fk_user_approve_expected) { + if (!empty($obj->fk_user_approval_expected)) { $auser = new User($this->db); - $auser->fetch($obj->fk_user_approve_expected); + $auser->fetch($obj->fk_user_approval_expected); $this->user_approve = $auser; } } diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index 12a32ba3f50..486315f36ac 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'; @@ -35,6 +36,8 @@ $langs->loadlangs(array('users', 'other', 'holiday', 'hrm')); $action = GETPOST('action', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'defineholidaylist'; +$massaction = GETPOST('massaction', 'alpha'); +$optioncss = GETPOST('optioncss', 'alpha'); $search_name = GETPOST('search_name', 'alpha'); $search_supervisor = GETPOST('search_supervisor', 'int'); @@ -58,6 +61,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(); @@ -69,23 +83,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 */ @@ -111,7 +108,7 @@ if (empty($reshook)) { 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_name = ''; $search_supervisor = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } @@ -128,12 +125,15 @@ if (empty($reshook)) { // Si il y a une action de mise à jour 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]; @@ -148,20 +148,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 @@ -177,7 +183,13 @@ if (empty($reshook)) { } if (!$error) { - setEventMessages('UpdateConfCPOK', '', 'mesgs'); + $db->commit(); + + if ($nbok > 0) { + setEventMessages('UpdateConfCPOK', '', 'mesgs'); + } + } else { + $db->rollback(); } } } @@ -195,7 +207,6 @@ $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) { diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php index 1e9c5602704..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,7 +125,6 @@ $title = $langs->trans("Leave").' - '.$langs->trans("Files"); llxHeader('', $title); - if ($object->id) { $valideur = new User($db); $valideur->fetch($object->fk_validator); @@ -175,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 $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 ''; @@ -283,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 bcae536f720..8f16676f9ce 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -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; @@ -101,7 +79,7 @@ if (!$sortorder) { $sortorder = "DESC"; } if (!$sortfield) { - $sortfield = "cp.rowid"; + $sortfield = "cp.ref"; } $sall = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); @@ -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 @@ -200,7 +199,7 @@ if (empty($reshook)) { $search_valideur = ""; $search_status = ""; $search_type = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -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'; } @@ -304,7 +303,7 @@ $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."holiday as cp"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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)"; } $sql .= ", ".MAIN_DB_PREFIX."user as uu, ".MAIN_DB_PREFIX."user as ua"; @@ -582,7 +581,7 @@ if ($resql) { // Approver if (!empty($arrayfields['cp.fk_validator']['checked'])) { - if ($user->rights->holiday->readall) { + if ($user->hasRight('holiday', 'readall')) { print ''; } @@ -633,7 +632,7 @@ if ($resql) { if (!empty($arrayfields['cp.date_fin']['checked'])) { print ''; } @@ -654,7 +653,7 @@ if ($resql) { if (!empty($arrayfields['cp.date_create']['checked'])) { print ''; } @@ -662,7 +661,7 @@ if ($resql) { if (!empty($arrayfields['cp.tms']['checked'])) { print ''; } diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php index e76d316bf6c..a3b8171cc62 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'; @@ -36,6 +37,8 @@ $langs->loadLangs(array('holiday', 'hrm')); // Security check $socid = 0; +$id = GETPOST('id', 'int'); + if ($user->socid > 0) { // Protection if external user //$socid = $user->socid; accessforbidden(); @@ -63,6 +66,11 @@ if (!$sortorder) { $sortorder = "ASC"; } +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page == -1) { + $page = 0; +} + $hookmanager->initHooks(array('leavemovementlist')); $arrayfields = array(); @@ -95,7 +103,7 @@ if (empty($reshook)) { $search_employee = ''; $search_type = ''; $search_description = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php index 1a621d55a98..7642fc6b84d 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(); } @@ -133,7 +129,7 @@ if (empty($reshook)) { $search_type = ''; $search_prev_solde = ''; $search_new_solde = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } @@ -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), ); @@ -306,6 +302,9 @@ print ''; print '
    '; $moreforfilter = ''; +$morefilter = ''; +$disabled = 0; +$include = ''; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; $selectedfields = ''; @@ -400,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 '); @@ -481,15 +480,18 @@ while ($i < min($num, $limit)) { // Description if (!empty($arrayfields['cpl.type_action']['checked'])) { - print ''; + print ''; } // Type if (!empty($arrayfields['cpl.fk_type']['checked'])) { - if ($alltypeleaves[$holidaylogstatic->type]['code'] && $langs->trans($alltypeleaves[$holidaylogstatic->type]['code']) != $alltypeleaves[$holidaylogstatic->type]['code']) { - $label = $langs->trans($alltypeleaves[$holidaylogstatic->type]['code']); - } else { - $label = $alltypeleaves[$holidaylogstatic->type]['label']; + $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']); + } else { + $label = $alltypeleaves[$holidaylogstatic->type]['label']; + } } print ''; + print ''; } // New Balance diff --git a/htdocs/hrm/admin/admin_establishment.php b/htdocs/hrm/admin/admin_establishment.php index bf1886f4bca..f28c0285e1f 100644 --- a/htdocs/hrm/admin/admin_establishment.php +++ b/htdocs/hrm/admin/admin_establishment.php @@ -40,6 +40,24 @@ $permissiontoadd = $user->admin; if (empty($conf->hrm->enabled)) 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 +77,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').''; $validator = new UserGroup($db); $excludefilter = $user->admin ? '' : 'u.rowid <> '.$user->id; @@ -625,7 +624,7 @@ if ($resql) { if (!empty($arrayfields['cp.date_debut']['checked'])) { print ''; print ''; - $formother->select_year($search_year_start, 'search_year_start', 1, $min_year, $max_year); + print $formother->selectyear($search_year_start, 'search_year_start', 1, $min_year, $max_year); print ''; print ''; - $formother->select_year($search_year_end, 'search_year_end', 1, $min_year, $max_year); + print $formother->selectyear($search_year_end, 'search_year_end', 1, $min_year, $max_year); print ''; print ''; - $formother->select_year($search_year_create, 'search_year_create', 1, $min_year, 0); + print $formother->selectyear($search_year_create, 'search_year_create', 1, $min_year, 0); print ''; print ''; - $formother->select_year($search_year_update, 'search_year_update', 1, $min_year, 0); + print $formother->selectyear($search_year_update, 'search_year_update', 1, $min_year, 0); print '
    '.$holidaylogstatic->description.''.dol_escape_htmltag($holidaylogstatic->description).''; @@ -505,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 ''.$detasign.$delta.''; + if ($delta > 0) { + print '+'.$delta.''; + } else { + print ''.$delta.''; + } + print '
    '; print ''; print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.ref", "", "", "", $sortfield, $sortorder); @@ -139,6 +161,7 @@ if ($result) { } print '
    '; + print ''; } else { dol_print_error($db); } diff --git a/htdocs/hrm/admin/admin_hrm.php b/htdocs/hrm/admin/admin_hrm.php index 810c0da870d..6763fb43f8e 100644 --- a/htdocs/hrm/admin/admin_hrm.php +++ b/htdocs/hrm/admin/admin_hrm.php @@ -109,7 +109,7 @@ foreach ($list as $key) { // Value print '
    '; - print ''; + print ''; print '
    '.$form->editfieldkey('Parent', 'entity', '', $object, 0, 'string', '', 1).''; @@ -254,7 +255,7 @@ if ($action == 'create') { } // Part to edit record -if (($id || $ref) && $action == 'edit') { +if ((!empty($id) || !empty($ref)) && $action == 'edit') { $result = $object->fetch($id); if ($result > 0) { $head = establishment_prepare_head($object); @@ -282,7 +283,7 @@ if (($id || $ref) && $action == 'edit') { // Entity /* - if (! empty($conf->multicompany->enabled)) { + if (isModEnabled('multicompany')) { print '
    '.$form->editfieldkey('Parent', 'entity', '', $object, 0, 'string', '', 1).''; print $object->entity > 0 ? $object->entity : $conf->entity; @@ -371,7 +372,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Entity /* - if ($conf->multicompany->enabled) { + if (!isModEnabled('multicompany') { print '
    '.$langs->trans("Entity").''.$object->entity.'
    ' . $langs->trans("NoRecordFound") . '
    ' . "\n"; + print '
    '; + + // Login + print ''; + if (!empty($object->ldap_sid) && $object->statut == 0) { + print ''; + } else { + print ''; + } + print ''."\n"; + $object->fields['label']['visible']=0; // Already in banner - include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; + $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 (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($object->login).$addadmin; + 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 '
    '; + print '
    '; + print ''; + print '

    '; @@ -262,6 +317,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; print ''; + print ''; print '
    '; print ''; print ''; @@ -281,6 +337,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; print ''; + print ''; print ''; } print '
    '; @@ -296,7 +353,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } print ''; if (!is_array($TSkillsJob) || empty($TSkillsJob)) { - print '
    '; + print ''; } else { $sk = new Skill($db); foreach ($TSkillsJob as $skillElement) { 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 01f152f1ea5..2c85007c086 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 @@ -135,12 +136,12 @@ $confirm = GETPOST('confirm', 'alpha'); $step = (GETPOST('step') ? GETPOST('step') : 1); $import_name = GETPOST('import_name'); $hexa = GETPOST('hexa'); -$importmodelid = GETPOST('importmodelid'); -$excludefirstline = (GETPOST('excludefirstline') ? GETPOST('excludefirstline') : 1); +$importmodelid = GETPOST('importmodelid', 'int'); +$excludefirstline = (GETPOST('excludefirstline') ? GETPOST('excludefirstline') : 2); $endatlinenb = (GETPOST('endatlinenb') ? GETPOST('endatlinenb') : ''); $updatekeys = (GETPOST('updatekeys', 'array') ? GETPOST('updatekeys', 'array') : array()); -$separator = (GETPOST('separator', 'nohtml') ? GETPOST('separator', 'nohtml') : (!empty($conf->global->IMPORT_CSV_SEPARATOR_TO_USE) ? $conf->global->IMPORT_CSV_SEPARATOR_TO_USE : ',')); -$enclosure = (GETPOST('enclosure', 'nohtml') ? GETPOST('enclosure', 'nohtml') : '"'); +$separator = (GETPOST('separator', 'alphanohtml') ? GETPOST('separator', 'alphanohtml', 3) : ''); +$enclosure = (GETPOST('enclosure', 'nohtml') ? GETPOST('enclosure', 'nohtml') : '"'); // We must use 'nohtml' and not 'alphanohtml' because we must accept " $separator_used = str_replace('\t', "\t", $separator); $objimport = new Import($db); @@ -153,15 +154,17 @@ $htmlother = new FormOther($db); $formfile = new FormFile($db); // Init $array_match_file_to_database from _SESSION -$serialized_array_match_file_to_database = isset($_SESSION["dol_array_match_file_to_database"]) ? $_SESSION["dol_array_match_file_to_database"] : ''; -$array_match_file_to_database = array(); -$fieldsarray = explode(',', $serialized_array_match_file_to_database); -foreach ($fieldsarray as $elem) { - $tabelem = explode('=', $elem, 2); - $key = $tabelem[0]; - $val = (isset($tabelem[1]) ? $tabelem[1] : ''); - if ($key && $val) { - $array_match_file_to_database[$key] = $val; +if (empty($array_match_file_to_database)) { + $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); + foreach ($fieldsarray as $elem) { + $tabelem = explode('=', $elem, 2); + $key = $tabelem[0]; + $val = (isset($tabelem[1]) ? $tabelem[1] : ''); + if ($key && $val) { + $array_match_file_to_database[$key] = $val; + } } } @@ -304,60 +307,28 @@ if ($step == 4 && $action == 'select_model') { } } $_SESSION["dol_array_match_file_to_database"] = $serialized_array_match_file_to_database; + $_SESSION['dol_array_match_file_to_database_select'] = $_SESSION["dol_array_match_file_to_database"]; } } - -if ($action == 'saveorder') { +if ($action == 'saveselectorder') { // Enregistrement de la position des champs - dol_syslog("boxorder=".GETPOST('boxorder')." datatoimport=".GETPOST("datatoimport"), LOG_DEBUG); - $part = explode(':', GETPOST('boxorder')); - $colonne = $part[0]; - $list = $part[1]; - dol_syslog('column='.$colonne.' list='.$list); - - // Init targets fields array - $fieldstarget = $objimport->array_import_fields[0]; - - // Reinit match arrays. We redefine array_match_file_to_database $serialized_array_match_file_to_database = ''; - $array_match_file_to_database = array(); - $fieldsarray = explode(',', $list); - $pos = 0; - foreach ($fieldsarray as $fieldnb) { // For each elem in list. fieldnb start from 1 to ... - // Get name of database fields at position $pos and put it into $namefield - $posbis = 0; $namefield = ''; - foreach ($fieldstarget as $key => $val) { // key: val: - //dol_syslog('AjaxImport key='.$key.' val='.$val); - if ($posbis < $pos) { - $posbis++; - continue; - } - // We found the key of targets that is at position pos - $namefield = $key; - //dol_syslog('AjaxImport Field name found for file field nb '.$fieldnb.'='.$namefield); - - break; - } - - if ($fieldnb && $namefield) { - $array_match_file_to_database[$fieldnb] = $namefield; - if ($serialized_array_match_file_to_database) { - $serialized_array_match_file_to_database .= ','; - } - $serialized_array_match_file_to_database .= ($fieldnb.'='.$namefield); - } - - $pos++; + dol_syslog("selectorder=".GETPOST('selectorder'), LOG_DEBUG); + $selectorder = explode(",", GETPOST('selectorder')); + $fieldtarget = $fieldstarget = $objimport->array_import_fields[0]; + foreach ($selectorder as $key => $code) { + $serialized_array_match_file_to_database .= $key.'='.$code; + $serialized_array_match_file_to_database .= ','; } - - // We save new matching in session - $_SESSION["dol_array_match_file_to_database"] = $serialized_array_match_file_to_database; - dol_syslog('dol_array_match_file_to_database='.$serialized_array_match_file_to_database); + $serialized_array_match_file_to_database = substr($serialized_array_match_file_to_database, 0, -1); + dol_syslog('dol_array_match_file_to_database_select='.$serialized_array_match_file_to_database); + $_SESSION["dol_array_match_file_to_database_select"] = $serialized_array_match_file_to_database; + echo "{}"; + exit(0); } - /* * View */ @@ -372,6 +343,7 @@ if ($step == 1 || !$datatoimport) { $serialized_array_match_file_to_database = ''; $array_match_file_to_database = array(); $_SESSION["dol_array_match_file_to_database"] = ''; + $_SESSION["dol_array_match_file_to_database_select"] = ''; $param = ''; if ($excludefirstline) { @@ -422,7 +394,7 @@ if ($step == 1 || !$datatoimport) { print $objimport->array_import_label[$key]; print ''; $list = $objmodelimport->liste_modeles($db); @@ -520,13 +491,15 @@ if ($step == 2 && $datatoimport) { $text = $objmodelimport->getDriverDescForKey($key); print ''; print ''; // Action button print ''; print ''; } @@ -609,9 +582,11 @@ if ($step == 3 && $datatoimport) { $text = $objmodelimport->getDriverDescForKey($format); print $form->textwithpicto($objmodelimport->getDriverLabelForKey($format), $text); print ''; print '
    ' . $langs->trans('AddSkill') . '
    ' . $langs->trans("NoRecordFound") . '
    ' . $langs->trans("NoRecordFound") . '
    '; 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"); } @@ -492,7 +464,6 @@ if ($step == 2 && $datatoimport) { print ''; print ''; - print ''; print '
    '; @@ -510,7 +481,7 @@ if ($step == 2 && $datatoimport) { $filetoimport = ''; // Add format informations and link to download example - print '
    '; + print '
    '; print $langs->trans("FileMustHaveOneOfFollowingFormat"); print '
    '.$form->textwithpicto($objmodelimport->getDriverLabelForKey($key), $text).''; - print img_picto('', 'download', 'class="paddingright opacitymedium"').''.$langs->trans("DownloadEmptyExample"); + print ''; + print img_picto('', 'download', 'class="paddingright opacitymedium"'); + print $langs->trans("DownloadEmptyExampleShort"); print ''; - print ' ('.$langs->trans("StarAreMandatory").')'; + print $form->textwithpicto('', $langs->trans("DownloadEmptyExample").'.
    '.$langs->trans("StarAreMandatory")); print '
    '; - print ''.img_picto($langs->trans("SelectFormat"), 'next', 'class="fa-15x"').''; + print ''.img_picto($langs->trans("SelectFormat"), 'next', 'class="fa-15"').''; print '
    '; - print img_picto('', 'download', 'class="paddingright opacitymedium"').''.$langs->trans("DownloadEmptyExample"); + print ''; + print img_picto('', 'download', 'class="paddingright opacitymedium"'); + print $langs->trans("DownloadEmptyExampleShort"); print ''; - print ' ('.$langs->trans("StarAreMandatory").')'; + print $form->textwithpicto('', $langs->trans("DownloadEmptyExample").'.
    '.$langs->trans("StarAreMandatory")); print '
    '; @@ -626,12 +601,10 @@ if ($step == 3 && $datatoimport) { } - print '
    '; + print '

    '; - print ''; + print ''; print ''; - print ''; - print ''; print ''; print ''; @@ -650,6 +623,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 ''; @@ -658,29 +636,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) * 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) * 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; @@ -749,7 +727,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 '
    '; + print '
    '; // Module print ''; @@ -916,7 +979,7 @@ if ($step == 4 && $datatoimport) { if ($model == 'csv') { print ''; print ''; } @@ -941,6 +1004,7 @@ if ($step == 4 && $datatoimport) { print ''; print img_mime($file, '', 'pictofixedwidth'); print $filetoimport; + print img_picto($langs->trans("Download"), 'download', 'class="paddingleft opacitymedium"'); print ''; print ''; @@ -954,7 +1018,7 @@ if ($step == 4 && $datatoimport) { // List of source fields print ''."\n"; - print ''; + print ''; print ''; print ''; print ''; @@ -966,14 +1030,15 @@ if ($step == 4 && $datatoimport) { print ''; print ''; + // Import profile to use/load print '
    '; print ''; - $s = $langs->trans("SelectImportFields", '{s1}'); + $s = $langs->trans("SelectImportFieldsSource", '{s1}'); $s = str_replace('{s1}', img_picto('', 'grip_title', '', false, 0, 0, '', '', 0), $s); print $s; print ' '; $htmlother->select_import_model($importmodelid, 'importmodelid', $datatoimport, 1, $user->id); - print ''; + print ''; print '
    '; print ''; @@ -987,7 +1052,7 @@ if ($step == 4 && $datatoimport) { //var_dump($array_match_file_to_database); - print ''; - // List of not imported fields - print ''; - - print ''; - print ''; + // Lines for remark + print ''; + print ''; print '
    '.$langs->trans("Module").'
    '.$langs->trans("CsvOptions").''; - print ''; + print ''; print ''; print ''; print ''; @@ -925,10 +988,10 @@ if ($step == 4 && $datatoimport) { print ''; print ''; print $langs->trans("Separator").' : '; - print ''; + print ''; print '    '.$langs->trans("Enclosure").' : '; - print ' '; - print ''; + print ' '; + print ''; print ''; print '
    '; + print '
    '; $fieldsplaced = array(); $valforsourcefieldnb = array(); @@ -1000,12 +1065,10 @@ if ($step == 4 && $datatoimport) { print '
    '."\n"; // List of source fields - $var = true; + $var = false; $lefti = 1; - foreach ($array_match_file_to_database as $key => $val) { - $var = !$var; + foreach ($fieldssource as $key => $val) { show_elem($fieldssource, $key, $val, $var); // key is field number in source file - //print '> '.$lefti.'-'.$key.'-'.$val; $listofkeys[$key] = 1; $fieldsplaced[$key] = 1; $valforsourcefieldnb[$lefti] = $key; @@ -1017,200 +1080,348 @@ if ($step == 4 && $datatoimport) { } //var_dump($valforsourcefieldnb); - // Complete source fields from count($fieldssource)+1 to count($fieldstarget) - $more = 1; - $num = count($fieldssource); - while ($lefti <= $num) { - $var = !$var; - $newkey = getnewkey($fieldssource, $listofkeys); - show_elem($fieldssource, $newkey, '', $var); // key start after field number in source file - //print '> '.$lefti.'-'.$newkey; - $listofkeys[$key] = 1; - $lefti++; - $more++; - } - print "
    \n"; print "\n"; - print '
    '; + print ''; - // List of target fields - $height = '24px'; //needs px for css height attribute below + // Set the list of all possible target fields in Dolibarr. + $optionsall = array(); + foreach ($fieldstarget as $code => $line) { + //var_dump($line); + + $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) { + $optionsall[$code]['picto'] = $picto; + } + } + // $optionsall is an array of all possible target fields. key=>array('label'=>..., 'xxx') + + $height = '32px'; //needs px for css height attribute below $i = 0; $mandatoryfieldshavesource = true; + $more = ""; + //var_dump($fieldstarget); + //var_dump($optionsall); + //exit; - print ''; - foreach ($fieldstarget as $code => $label) { - print ''; + //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); - $i++; + $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. + if ($i == $minpos) { + break; + } + 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 = $objimport->array_import_tables[0][$tablealias]; - - $entityicon = $entitytoicon[$entity] ? $entitytoicon[$entity] : $entity; // $entityicon must string name of picto of the field like 'project', 'company', 'contact', 'modulename', ... + $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 ''; - // Info field - print ''; + // Tooltip at end of line + print ''; print ''; + $i++; } print '
    =>'.img_object('', $entityicon).' '.$langs->trans($entitylang).'=> '.img_object('', $entityicon).' '.$langs->trans($entitylang).'=> '; - $newlabel = preg_replace('/\*$/', '', $label); - $text = $langs->trans($newlabel); - $more = ''; - if (preg_match('/\*$/', $label)) { - $text = ''.$text.''; - $more = ((!empty($valforsourcefieldnb[$i]) && $valforsourcefieldnb[$i] <= count($fieldssource)) ? '' : img_warning($langs->trans("FieldNeedSource"))); - if ($mandatoryfieldshavesource) { - $mandatoryfieldshavesource = (!empty($valforsourcefieldnb[$i]) && ($valforsourcefieldnb[$i] <= count($fieldssource))); - } - //print 'xx'.($i).'-'.$valforsourcefieldnb[$i].'-'.$mandatoryfieldshavesource; - } - print $text; - print ''; - $filecolumn = $array_match_database_to_file[$code]; - // Source field info - $htmltext = ''.$langs->trans("FieldSource").'
    '; - if ($filecolumn > count($fieldssource)) { - $htmltext .= $langs->trans("DataComeFromNoWhere").'
    '; + + //var_dump($_SESSION['dol_array_match_file_to_database_select']); + //var_dump($_SESSION['dol_array_match_file_to_database']); + + $selectforline = ''; + $selectforline .= ''; + $selectforline .= ajax_combobox('selectorderimport_'.($i+1)); + + print $selectforline; + print '
    '; + + // Source field info + $htmltext = ''.$langs->trans("FieldSource").'
    '; + $filecolumntoshow = num2Alpha($i); + $htmltext .= $langs->trans("DataComeFromFileFieldNb", $filecolumntoshow).'
    '; + + print $form->textwithpicto('', $htmltext); + + print '
    '; print '
    '.$langs->trans("NotImportedFields").'
    '; - - print "\n\n"; - print '\n"; - print "\n"; - - print ''; - $i = 0; - while ($i < $nbofnotimportedfields) { - // Print empty cells - show_elem('', '', 'none', $var, 'nostyle'); - $i++; - } - print '
    '.$langs->trans("Remark").'
    '; print ''; - if ($conf->use_javascript_ajax) { - print ''."\n"; } @@ -1221,7 +1432,7 @@ if ($step == 4 && $datatoimport) { if (count($array_match_file_to_database)) { if ($mandatoryfieldshavesource) { - print ''.$langs->trans("NextStep").''; + print ''.$langs->trans("NextStep").''; } else { print ''.$langs->trans("NextStep").''; } @@ -1246,6 +1457,7 @@ if ($step == 4 && $datatoimport) { print ''; print ''; print ''; + print ''; print ''; print ''; @@ -1257,14 +1469,19 @@ if ($step == 4 && $datatoimport) { print '
    '; $arrayvisibility = array('private'=>$langs->trans("Private"), 'all'=>$langs->trans("Everybody")); print $form->selectarray('visibility', $arrayvisibility, 'private'); print ''; - print ''; + print ''; print '
    '; @@ -1315,7 +1532,6 @@ if ($step == 4 && $datatoimport) { } } - // STEP 5: Summary of choices and launch simulation if ($step == 5 && $datatoimport) { $max_execution_time_for_importexport = (empty($conf->global->IMPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->IMPORT_MAX_EXECUTION_TIME); // 5mn if not defined @@ -1369,7 +1585,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); @@ -1439,6 +1655,7 @@ if ($step == 5 && $datatoimport) { print ''; print img_mime($file, '', 'pictofixedwidth'); print $filetoimport; + print img_picto($langs->trans("Download"), 'download', 'class="paddingleft opacitymedium"'); print ''; print '
    '; - print $langs->trans("KeysToUseForUpdates"); + print $form->textwithpicto($langs->trans("KeysToUseForUpdates"), $langs->trans("SelectPrimaryColumnsForUpdateAttempt")); print ''; if ($action == 'launchsimu') { if (count($updatekeys)) { @@ -1490,7 +1721,7 @@ if ($step == 5 && $datatoimport) { } else { if (is_array($objimport->array_import_updatekeys[0]) && count($objimport->array_import_updatekeys[0])) { //TODO dropdown UL is created inside nested SPANS print $form->multiselectarray('updatekeys', $objimport->array_import_updatekeys[0], $updatekeys, 0, 0, '', 1, '80%'); - print $form->textwithpicto("", $langs->trans("SelectPrimaryColumnsForUpdateAttempt")); + //print $form->textwithpicto("", $langs->trans("SelectPrimaryColumnsForUpdateAttempt")); } else { print ''.$langs->trans("UpdateNotYetSupportedForThisImport").''; } @@ -1569,7 +1800,7 @@ if ($step == 5 && $datatoimport) { } //print $code.'-'.$label; $alias = preg_replace('/(\..*)$/i', '', $label); - $listfields[$i] = $langs->trans("Field").' '.$code.'->'.$label; + $listfields[$i] = ''.$langs->trans("Column").' '.num2Alpha($code - 1).' -> '.$label.''; } print count($listfields) ? (join(', ', $listfields)) : $langs->trans("Error"); print '
    '; @@ -1720,9 +1952,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 '
    '; @@ -1743,7 +1975,7 @@ if ($step == 5 && $datatoimport) { // Actions print '
    '; - if ($user->rights->import->run) { + if ($user->hasRight('import', 'run')) { if (empty($nboferrors)) { print ''.$langs->trans("RunImportFile").''; } else { @@ -1819,7 +2051,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); @@ -2070,10 +2302,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).'
    '; @@ -2096,39 +2328,40 @@ $db->close(); * @param array $fieldssource List of source fields * @param int $pos Pos * @param string $key Key - * @param boolean $var Line style (odd or not) + * @param boolean $var Line style (odd or not). No more used. * @param int $nostyle Hide style * @return void */ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '') { - global $langs, $bc; + global $langs; - $height = '24px'; + $height = '32px'; if ($key == 'none') { //stop multiple duplicate ids with no number print "\n\n\n"; print '
    '."\n"; - print ''."\n"; + print '
    '."\n"; } else { print "\n\n\n"; print '
    '."\n"; - print '
    '."\n"; + print '
    '."\n"; } - if ($pos && $pos > count($fieldssource)) { // No fields - print ''; + if (($pos && $pos > count($fieldssource)) && (!isset($fieldssource[$pos]["imported"]))) { // No fields + /* + print ''; print ''; print ''; print ''; + */ } elseif ($key == 'none') { // Empty line - print ''; + print ''; print ''; @@ -2138,19 +2371,30 @@ function show_elem($fieldssource, $pos, $key, $var, $nostyle = '') print ''; } else { // Print field of source file - print ''; + print ''; print ''; - print ''; print ''; @@ -2190,3 +2434,30 @@ function getnewkey(&$fieldssource, &$listofkey) $listofkey[$i] = 1; return $i; } +/** + * Return array with element inserted in it at position $position + * + * @param array $array Array of field source + * @param mixed $position key of postion to insert to + * @param array $insertArray Array to insert + * @return array + */ +function arrayInsert($array, $position, $insertArray) +{ + $ret = []; + + if ($position == count($array)) { + $ret = $array + $insertArray; + } else { + $i = 0; + foreach ($array as $key => $value) { + if ($position == $i++) { + $ret += $insertArray; + } + + $ret[$key] = $value; + } + } + + return $ret; +} diff --git a/htdocs/includes/OAuth/Common/Storage/DoliStorage.php b/htdocs/includes/OAuth/Common/Storage/DoliStorage.php index b2a79dc4751..3e09e53fbe6 100644 --- a/htdocs/includes/OAuth/Common/Storage/DoliStorage.php +++ b/htdocs/includes/OAuth/Common/Storage/DoliStorage.php @@ -29,257 +29,300 @@ 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, $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/ckeditor/UPGRADE.md b/htdocs/includes/ckeditor/UPGRADE.md index e35dc6cff39..73d46f6eb74 100644 --- a/htdocs/includes/ckeditor/UPGRADE.md +++ b/htdocs/includes/ckeditor/UPGRADE.md @@ -6,4 +6,4 @@ To upgrade ckeditor: - Choose skin mona-lisa - Choose all languages - Download -- Repalce files and remove dir 'samples'. \ No newline at end of file +- Replace files and remove dir 'samples'. \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/CHANGES.md b/htdocs/includes/ckeditor/ckeditor/CHANGES.md index 225251b7913..94ecf8517b9 100644 --- a/htdocs/includes/ckeditor/ckeditor/CHANGES.md +++ b/htdocs/includes/ckeditor/ckeditor/CHANGES.md @@ -1,71 +1,495 @@ CKEditor 4 Changelog ==================== +## CKEditor 4.18.0 + +**Security Updates:** + +* Fixed an XSS vulnerability in the core module reported by GitHub Security Lab team member [Kevin Backhouse](https://github.com/kevinbackhouse). + + Issue summary: The vulnerability allowed to inject malformed HTML bypassing content sanitization, which could result in executing a JavaScript code. See [CVE-2022-24728](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-4fc4-4p5g-6w89) for more details. + +* Fixed a Regular expression Denial of Service (ReDoS) vulnerability in dialog plugin discovered by the CKEditor 4 team during our regular security audit. + + Issue summary: The vulnerability allowed to abuse a dialog input validator regular expression, which could cause a significant performance drop resulting in a browser tab freeze. See [CVE-2022-24729](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-f6rf-9m92-x2hh) for more details. + +You can read more details in the relevant security advisory and [contact us](security@cksource.com) if you have more questions. + +**An upgrade is highly recommended!** + +**Highlights:** + +[Web Spell Checker](https://webspellchecker.com/) ended support for WebSpellChecker Dialog on December 31st, 2021. This means the plugin is not supported any longer. Therefore, we decided to deprecate and remove the WebSpellChecker Dialog plugin from CKEditor 4 presets. + +We strongly encourage everyone to choose one of the other available spellchecking solutions - [Spell Check As You Type (SCAYT)](https://ckeditor.com/cke4/addon/scayt) or [WProofreader](https://ckeditor.com/cke4/addon/wproofreader). + +Fixed issues: + +* [#5097](https://github.com/ckeditor/ckeditor4/issues/5097): [Chrome] Fixed: Incorrect conversion of points to pixels while using [`CKEDITOR.tools.convertToPx()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-convertToPx). +* [#5044](https://github.com/ckeditor/ckeditor4/issues/5044): Fixed: `select` elements with `multiple` attribute had incorrect styling. Thanks to [John R. D'Orazio](https://github.com/JohnRDOrazio)! + +Other changes: + +* [#5093](https://github.com/ckeditor/ckeditor4/issues/5093): Deprecated and removed WebSpellChecker Dialog from presets. +* [#5127](https://github.com/ckeditor/ckeditor4/issues/5127): Deprecated the [`CKEDITOR.rnd`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-rnd) property to discourage using it in a security-sensitive context. +* [#5087](https://github.com/ckeditor/ckeditor4/issues/5087): Improved the jQuery adapter by replacing a deprecated jQuery API with existing counterparts. Thanks to [Fran Boon](https://github.com/flavour)! +* [#5128](https://github.com/ckeditor/ckeditor4/issues/5128): Improved the [Emoji](https://ckeditor.com/cke4/addon/emoji) definitions encoding set by the [`config.emoji_emojiListUrl`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-emoji_emojiListUrl) configuration option. + +## CKEditor 4.17.2 + +Fixed issues: + +* [#4934](https://github.com/ckeditor/ckeditor4/issues/4934): Fixed: Active focus in dialog tabs is not visible in the High Contrast mode. +* [#547](https://github.com/ckeditor/ckeditor4/issues/547): Fixed: Dragging and dropping elements like images within a table is no longer available. +* [#4875](https://github.com/ckeditor/ckeditor4/issues/4875): Fixed: It is not possible to delete multiple selected lists. +* [#4873](https://github.com/ckeditor/ckeditor4/issues/4873): Fixed: Pasting content from MS Word and Outlook with horizontal lines prevents images from being uploaded. +* [#4952](https://github.com/ckeditor/ckeditor4/issues/4952): Fixed: Dragging and dropping images within a table cell appends additional elements. +* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): Fixed: Some CSS files are missing unique timestamp used to prevent browser to cache static resources between editor releases. +* [#4987](https://github.com/ckeditor/ckeditor4/issues/4987): Fixed: [Find/Replace](https://ckeditor.com/cke4/addon/find) is not recognizing more than one space character. +* [#5061](https://github.com/ckeditor/ckeditor4/issues/5061): Fixed: [Find/Replace](https://ckeditor.com/cke4/addon/find) plugin incorrectly handles multiple whitespace during replacing text. +* [#5004](https://github.com/ckeditor/ckeditor4/issues/5004): Fixed: `MutationObserver` used in [IFrame Editing Area](https://ckeditor.com/cke4/addon/wysiwygarea) plugin causes memory leaks. +* [#4994](https://github.com/ckeditor/ckeditor4/issues/4994): Fixed: [Easy Image](https://ckeditor.com/cke4/addon/easyimage) plugin caused content pasted from Word to turn into an image. + +API changes: + +* [#4918](https://github.com/ckeditor/ckeditor4/issues/4918): Explicitly set the [`config.useComputedState`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-useComputedState) default value to `true`. Thanks to [Shabab Karim](https://github.com/shabab477)! +* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): The [`CKEDITOR.appendTimestamp()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-appendTimestamp) function was added. +* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): [`CKEDITOR.dom.document#appendStyleSheet()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_document.html#method-appendStyleSheet) and [`CKEDITOR.tools.buildStyleHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-buildStyleHtml) now use the newly added [`CKEDITOR.appendTimestamp()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-appendTimestamp) function to correctly handle caching of CSS files. + +Other changes: + +* [#5014](https://github.com/ckeditor/ckeditor4/issues/5014): Fixed: Toolbar configurator fails when plugin does not define a toolbar group. Thanks to [SuperPat](https://github.com/SuperPat45)! + +## CKEditor 4.17.1 + +**Highlights:** + +Due to a regression in CKEeditor 4.17.0 version that was only revealed after the release and affected a limited area of operation, CSS assets loaded via relative links started to point into invalid location when loaded from external resources. + +We have therefore decided to immediately release CKEditor 4.17.1 that fixed this problem. If you have already upgraded to v4.17.0, make sure to upgrade to v4.17.1 to avoid this regression. + +Fixed issues: + +* [#4979](https://github.com/ckeditor/ckeditor4/issues/3757): Fixed: Added cache key in [#4761](https://github.com/ckeditor/ckeditor4/issues/4761) started to breaking relative links for external CSS resources. The fix has been reverted and will be corrected in the next editor version. + +## CKEditor 4.17 + +**Security Updates:** + +* Fixed XSS vulnerability in the core module reported by [William Bowling](https://github.com/wbowling). + + Issue summary: The vulnerability allowed to inject malformed comments HTML bypassing content sanitization, which could result in executing JavaScript code. See [CVE-2021-41165](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-7h26-63m7-qhf2) for more details. + +* Fixed XSS vulnerability in the core module reported by [Maurice Dauer](https://twitter.com/laytonctf). + + Issue summary: The vulnerability allowed to inject malformed HTML bypassing content sanitization, which could result in executing JavaScript code. See [CVE-2021-41164](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-pvmx-g8h5-cprj) for more details. + +You can read more details in the relevant security advisory and [contact us](security@cksource.com) if you have more questions. + +**An upgrade is highly recommended!** + +**Highlights:** + +Adobe [ended support of Flash Player](https://www.adobe.com/products/flashplayer/end-of-life.html) on December 31, 2020 and blocked Flash content from running in Flash Player beginning January 12, 2021. +We have decided to deprecate and remove the [Flash](https://ckeditor.com/cke4/addon/flash) plugin from CKEditor 4 to help protect users' systems and discourage using insecure software. + +New Features: + +* [#3433](https://github.com/ckeditor/ckeditor4/issues/3433): Marked required fields in dialogs with asterisk (`*`) symbol. +* [#4374](https://github.com/ckeditor/ckeditor4/issues/4374): Integrated the [Maximize](https://ckeditor.com/cke4/addon/maximize) plugin with browser's History API. +* [#4461](https://github.com/ckeditor/ckeditor4/issues/4461): Introduced the possibility to delay editor initialization while it is in a detached DOM element. +* [#4462](https://github.com/ckeditor/ckeditor4/issues/4462): Introduced support for reattaching editor container element to DOM. +* [#4612](https://github.com/ckeditor/ckeditor4/issues/4612): Allow pasting images as Base64 from [clipboard](https://ckeditor.com/cke4/addon/clipboard) in all browsers except IE. +* [#4681](https://github.com/ckeditor/ckeditor4/issues/4681): Allow drag and drop images as Base64. +* [#4750](https://github.com/ckeditor/ckeditor4/issues/4750): Added notification for pasting and dropping unsupported file types into the editor. +* [#4807](https://github.com/ckeditor/ckeditor4/issues/4807): [Chrome] Improved the performance of pasting large images. Thanks to [FlowIT-JIT](https://github.com/FlowIT-JIT)! +* [#4850](https://github.com/ckeditor/ckeditor4/issues/4850): Added support for loading [content templates](https://ckeditor.com/cke4/addon/templates) from HTML files. Thanks to [Fynn96](https://github.com/Fynn96)! +* [#4874](https://github.com/ckeditor/ckeditor4/issues/4874): Added the [`config.clipboard_handleImages`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-clipboard_handleImages) configuration option for enabling and disabling built-in support for pasting and dropping images in the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin. Thanks to [FlowIT-JIT](https://github.com/FlowIT-JIT)! +* [#4026](https://github.com/ckeditor/ckeditor4/issues/4026): [Preview](https://ckeditor.com/cke4/addon/preview) plugin now uses the [`editor#title`](http://localhost/ckeditor4-docs/build/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-title) property for the title of the preview window. Thanks to [Ely](https://github.com/Elyasin)! +* [#4467](https://github.com/ckeditor/ckeditor4/issues/4467): Added support for inserting content next to a block [widgets](https://ckeditor.com/cke4/addon/widget) using keyboard navigation. Thanks to [bunglegrind](https://github.com/bunglegrind)! + +Fixed Issues: + +* [#3757](https://github.com/ckeditor/ckeditor4/issues/3757): [Firefox] Fixed: images pasted from [clipboard](https://ckeditor.com/cke4/addon/clipboard) are not inserted as Base64-encoded images. +* [#3876](https://github.com/ckeditor/ckeditor4/issues/3876): Fixed: The [Print](https://ckeditor.com/cke4/addon/print) plugin incorrectly prints links and images. +* [#4444](https://github.com/ckeditor/ckeditor4/issues/4444): [Firefox] Fixed: Print preview is incorrectly loaded from CDN. +* [#4596](https://github.com/ckeditor/ckeditor4/issues/4596): Fixed: Incorrect handling of HSL/HSLA values in [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html). +* [#4597](https://github.com/ckeditor/ckeditor4/issues/4597): Fixed: Incorrect color conversion for HSL/HSLA values in [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html). +* [#4604](https://github.com/ckeditor/ckeditor4/issues/4604): Fixed: [`CKEDITOR.plugins.clipboard.dataTransfer#getTypes()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_clipboard_dataTransfer.html#method-getTypes) returns no types. +* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): Fixed: Not all resources loaded by the editor respect the cache key. +* [#4783](https://github.com/ckeditor/ckeditor4/issues/4783): Fixed: The [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) dialog does not contain info about focus being moved back to the editing area upon activating a toolbar button. +* [#4790](https://github.com/ckeditor/ckeditor4/issues/4790): Fixed: Printing page is invoked before the printed page is fully loaded. +* [#4874](https://github.com/ckeditor/ckeditor4/issues/4874): Fixed: Built-in support for pasting and dropping images in the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin restricts third party plugins from handling image pasting. Thanks to [FlowIT-JIT](https://github.com/FlowIT-JIT)! +* [#4888](https://github.com/ckeditor/ckeditor4/issues/4888): Fixed: The [`CKEDITOR.dialog#setState()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-setState) method throws error when there is no "OK" button in the dialog. +* [#4858](https://github.com/ckeditor/ckeditor4/issues/4858): Fixed: The [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin incorrectly escapes the `&` characters when pasting links into the editor. +* [#4892](https://github.com/ckeditor/ckeditor4/issues/4892): Fixed: Focus of buttons in dialogs is not visible enough in High Contrast mode. +* [#3858](https://github.com/ckeditor/ckeditor4/issues/3858): Fixed: Pasting content in `ENTER_BR` [enter mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) crashes the editor. +* [#4891](https://github.com/ckeditor/ckeditor4/issues/4891): Fixed: The [Autogrow](https://ckeditor.com/cke4/addon/autogrow) plugin applies fixed width to the editor. + +API Changes: + +* [#4462](https://github.com/ckeditor/ckeditor4/issues/4462): [`CKEDITOR.editor#getSelection()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelection) now returns `null` if the editor is in recreating state. +* [#4583](https://github.com/ckeditor/ckeditor4/issues/4583): Added support for new, comma-less color syntax to [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html). +* [#4604](https://github.com/ckeditor/ckeditor4/issues/4604): Added the [`CKEDITOR.plugins.clipboard.dataTransfer#isFileTransfer()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_clipboard_dataTransfer.html#method-isFileTransfer) method. +* [#4790](https://github.com/ckeditor/ckeditor4/issues/4790): Added `callback` parameter to [`CKEDITOR.plugins.preview#createPreview()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_preview.html#method-createPreview) method. + +Other Changes: + +* [#4866](https://github.com/ckeditor/ckeditor4/issues/#4866): The [Flash](https://ckeditor.com/cke4/addon/flash) plugin is now deprecated and has been removed from CKEditor 4. +* [#4901](https://github.com/ckeditor/ckeditor4/issues/4901): Redesigned buttons placement in the [Content templates](https://ckeditor.com/cke4/addon/templates) dialog to make it more UX friendly. Thanks to [Fynn96](https://github.com/Fynn96)! + +## CKEditor 4.16.2 + +**Security Updates:** + +* Fixed XSS vulnerability in the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin reported by [Anton Subbotin](https://github.com/skavans). + + Issue summary: The vulnerability allowed to abuse paste functionality using malformed HTML, which could result in injecting arbitrary HTML into the editor. See [CVE-2021-32809](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-7889-rm5j-hpgg) for more details. + +* Fixed XSS vulnerability in the [Widget](https://ckeditor.com/cke4/addon/widget) plugin reported by [Anton Subbotin](https://github.com/skavans). + + Issue summary: The vulnerability allowed to abuse undo functionality using malformed [Widget](https://ckeditor.com/cke4/addon/widget) HTML, which could result in executing JavaScript code. See [CVE-2021-32808](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-6226-h7ff-ch6c) for more details. + +* Fixed XSS vulnerability in the [Fake Objects](https://ckeditor.com/cke4/addon/fakeobjects) plugin reported by [Mika Kulmala](https://github.com/kulmik). + + Issue summary: The vulnerability allowed to inject malformed [Fake Objects](https://ckeditor.com/cke4/addon/fakeobjects) HTML, which could result in executing JavaScript code. See [CVE-2021-37695](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-m94c-37g6-cjhc) for more details. + +You can read more details in the relevant security advisory and [contact us](security@cksource.com) if you have more questions. + +**An upgrade is highly recommended!** + +Fixed Issues: +* [#4777](https://github.com/ckeditor/ckeditor4/issues/4777): Fixed: HTML comments in widgets not processed correctly. +* [#4733](https://github.com/ckeditor/ckeditor4/pull/4733): Fixed: [Link](https://ckeditor.com/cke4/addon/link) prevent duplicate anchors in text with styles. + * [#4728](https://github.com/ckeditor/ckeditor4/issues/4728): Fixed: Multiple anchors in one line and multi-line with text style. + * [#3863](https://github.com/ckeditor/ckeditor4/issues/3863): Fixed: Multiple anchors in single word with text style. +* [#3819](https://github.com/ckeditor/ckeditor4/issues/3819): [Chrome] Fixed: After removing one of the two consecutive spaces, the ` ` character appears in the editor instead of a space. +* [#4666](https://github.com/ckeditor/ckeditor4/pull/4666): [IE] Introduce CSS.escape polyfill. Thanks to [limingli0707](https://github.com/limingli0707)! + * [#681](https://github.com/ckeditor/ckeditor4/issues/681): Fixed: Table elements (td, tr, th, ..) with an id that starts with dot (.) causes javascript runtime err. + * [#641](https://github.com/ckeditor/ckeditor4/issues/641): Fixed: UploadImage Plugin Widgets not working in IE, Opera, Safari, PhantomJS. +* [#3638](https://github.com/ckeditor/ckeditor4/issues/3638): Fixed: Opening the same dialog twice causes it to become hidden under the dialog's page cover. +* [#4247](https://github.com/ckeditor/ckeditor4/issues/4247): Fixed: [Color Button](https://ckeditor.com/cke4/addon/colorbutton)'s incorrect rendering on the first opening. +* [#4555](https://github.com/ckeditor/ckeditor4/issues/4555): Fixed: [Font](https://ckeditor.com/cke4/addon/font) styles with attributes are not applied correctly when used multiple times over the same selection. +* [#4782](https://github.com/ckeditor/ckeditor4/issues/4782): [Firefox] Fixed: `TypeError` is thrown when switching to Source View and back while [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) plugin is enabled. + +## CKEditor 4.16.1 + +Fixed Issues: +* [#4617](https://github.com/ckeditor/ckeditor4/issues/4617): Fixed: [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) is not accessible in inline editors. +* [#4493](https://github.com/ckeditor/ckeditor4/issues/4493): Fixed: The [drop-down](https://ckeditor.com/cke4/addon/richcombo) label does not reflect the current value of the drop-down. +* [#1572](https://github.com/ckeditor/ckeditor4/issues/1572): Fixed: A paragraph before or after a [widget](https://ckeditor.com/cke4/addon/widget) cannot be removed. Thanks to [bunglegrind](https://github.com/bunglegrind)! +* [#4301](https://github.com/ckeditor/ckeditor4/issues/4301): Fixed: Pasted content is overwritten when pasted in an initially empty editor with the [`div` Enter mode](https://ckeditor.com/docs/ckeditor4/latest/features/enterkey.html). +* [#4351](https://github.com/ckeditor/ckeditor4/issues/4351): Fixed: Incorrect values for RGBA/HSLA colors in [Color Dialog](https://ckeditor.com/cke4/addon/colordialog). +* [#4509](https://github.com/ckeditor/ckeditor4/issues/4509): Fixed: Incorrect handling of drag & drop inside [widgets](https://ckeditor.com/cke4/addon/widget) and nested editables. +* [#4611](https://github.com/ckeditor/ckeditor4/issues/4611): [Android, iOS] Fixed: Incorrect hover styles for buttons in the toolbar on mobile devices. +* [#4652](https://github.com/ckeditor/ckeditor4/issues/4652): Fixed: [Event data](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_eventInfo.html) set to `false` is treated as an event cancellation. +* [#4659](https://github.com/ckeditor/ckeditor4/issues/4659): Fixed: [`CKEDITOR.htmlParser`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlParser.html) does not treat `--!>` as a comment end tag correctly. + +## CKEditor 4.16 + +**Security Updates:** + +* Fixed ReDoS vulnerability in the [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin. + + Issue summary: It was possible to execute a ReDoS-type attack inside CKEditor 4 by persuading a victim to paste a specially crafted URL-like text into the editor and press Enter or Space. + +* Fixed ReDoS vulnerability in the [Advanced Tab for Dialogs](https://ckeditor.com/cke4/addon/dialogadvtab) plugin. + + Issue summary: It was possible to execute a ReDoS-type attack inside CKEditor 4 by persuading a victim to paste a specially crafted text into the Styles dialog. + +**An upgrade is highly recommended!** + +New Features: + +* [#2800](https://github.com/ckeditor/ckeditor4/issues/2800): Unsupported image formats are now gracefully handled by the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin on paste, additionally showing descriptive error messages. +* [#2800](https://github.com/ckeditor/ckeditor4/issues/2800): Unsupported image formats are now gracefully handled by the [Paste from LibreOffice](https://ckeditor.com/cke4/addon/pastefromlibreoffice) plugin on paste, additionally showing descriptive error messages. +* [#3582](https://github.com/ckeditor/ckeditor4/issues/3582): Introduced smart positioning of the [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) panel used by the [Mentions](https://ckeditor.com/cke4/addon/mentions) and [Emoji](https://ckeditor.com/cke4/addon/emoji) plugins. The panel will now be additionally positioned related to the browser viewport to be always fully visible. +* [#4388](https://github.com/ckeditor/ckeditor4/issues/4388): Added the option to remove an iframe created with the [IFrame Dialog](https://ckeditor.com/cke4/addon/iframe) plugin from the sequential keyboard navigation using the `tabindex` attribute. Thanks to [Timo Kirkkala](https://github.com/kirkkala)! + +Fixed Issues: + +* [#1134](https://github.com/ckeditor/ckeditor4/issues/1134): [Safari] Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not embed images. +* [#2800](https://github.com/ckeditor/ckeditor4/issues/2800): Fixed: No images are imported from Microsoft Word when the content is pasted via the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin if there is at least one image of unsupported format. +* [#4379](https://github.com/ckeditor/ckeditor4/issues/4379): [Edge] Fixed: Incorrect detection of the [high contrast mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_a11y.html#high-contrast-mode). +* [#4422](https://github.com/ckeditor/ckeditor4/issues/4422): Fixed: Missing space between the button name and the keyboard shortcut inside the button label in the [high contrast mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_a11y.html#high-contrast-mode). +* [#2208](https://github.com/ckeditor/ckeditor4/issues/2208): [IE] Fixed: The [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin duplicates the native browser implementation. +* [#1824](https://github.com/ckeditor/ckeditor4/issues/1824): Fixed: The [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin should require the [Link](https://ckeditor.com/cke4/addon/link) plugin. +* [#4253](https://github.com/ckeditor/ckeditor4/issues/4253): Fixed: The [Editor Placeholder](https://ckeditor.com/cke4/addon/editorplaceholder) plugin throws an error during the editor initialization with [`config.fullPage`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fullPage) enabled when there is no `` tag in the editor content. +* [#4372](https://github.com/ckeditor/ckeditor4/issues/4372): Fixed: The [Autogrow](https://ckeditor.com/cke4/addon/autogrow) plugin changes the editor's width when used with an absolute [`config.width`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-width) value. + +API Changes: + +* [#4358](https://github.com/ckeditor/ckeditor4/issues/4358): Introduced the [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html) class which adds colors validation and methods for converting colors between various formats: named colors, HEX, RGB, RGBA, HSL and HSLA. +* [#3782](https://github.com/ckeditor/ckeditor4/issues/3782): Moved the [`CKEDITOR.plugins.pastetools.filters.word.images`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pastetools_filters_word_images.html) filters to the [`CKEDITOR.plugins.pastetools.filters.image`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pastetools_filters_image.html) namespace. +* [#4297](https://github.com/ckeditor/ckeditor4/issues/4297): All [`CKEDITOR.plugins.pastetools.filters`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pastetools_filters.html) are now available under the [`CKEDITOR.pasteTools`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-pasteTools) alias. +* [#4394](https://github.com/ckeditor/ckeditor4/issues/4394): Introduced [`CKEDITOR.ajax`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html) specialized loading methods for loading binary ([`CKEDITOR.ajax.loadBinary()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html#method-loadBinary)) and text ([`CKEDITOR.ajax.loadText()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html#method-loadText)) data. + +Other Changes: + +* The [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) plugin is now disabled by default in [Standard and Full presets](https://ckeditor.com/cke4/presets). It can be enabled via [`extraPlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-extraPlugins) configuration option. + +## CKEditor 4.15.1 + +**Security Updates:** + +* Fixed XSS vulnerability in the [Color History feature](https://ckeditor.com/docs/ckeditor4/latest/features/colorbutton.html#color-history) reported by [Mark Wade](https://github.com/mark-wade). + + Issue summary: It was possible to execute an XSS-type attack inside CKEditor 4 by persuading a victim to paste a specially crafted HTML code into the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) dialog. + +**An upgrade is highly recommended!** + +Fixed Issues: + +* [#4293](https://github.com/ckeditor/ckeditor4/issues/4293): Fixed: The [`CKEDITOR.inlineAll()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-inlineAll) method tries to initialize inline editor also on elements with an editor already attached to them. +* [#3961](https://github.com/ckeditor/ckeditor4/issues/3961): Fixed: The [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin prevents editing of merged cells. +* [#3649](https://github.com/ckeditor/ckeditor4/issues/3649): Fixed: Applying a [block format](https://ckeditor.com/docs/ckeditor4/latest/features/format.html) should remove existing block styles. +* [#4282](https://github.com/ckeditor/ckeditor4/issues/4282): Fixed: The [script loader](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_scriptLoader.html) does not execute callback for scripts already loaded when called for the second time. Thanks to [Alexander Korotkevich](https://github.com/aldoom)! +* [#4273](https://github.com/ckeditor/ckeditor4/issues/4273): Fixed: A memory leak in the [`CKEDITOR.domReady()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-domReady) method connected with not removing `load` event listeners. Thanks to [rohit1](https://github.com/rohit1)! +* [#1330](https://github.com/ckeditor/ckeditor4/issues/1330): Fixed: Incomplete CSS margin parsing if an `auto` or `0` value is used. +* [#4286](https://github.com/ckeditor/ckeditor4/issues/4286): Fixed: The [Auto Grow](https://ckeditor.com/cke4/addon/autogrow) plugin causes the editor width to be set to `0` on editor resize. +* [#848](https://github.com/ckeditor/ckeditor4/issues/848): Fixed: Arabic text not being "bound" correctly when pasting. Thanks to [Thomas Hunkapiller](https://github.com/devoidfury) and [J. Ivan Duarte Rodríguez](https://github.com/jidrone-mbm)! + +API Changes: + +* [#3649](https://github.com/ckeditor/ckeditor4/issues/3649): Added a new [`stylesRemove`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-stylesRemove) editor event. + +Other Changes: + +* [#4262](https://github.com/ckeditor/ckeditor4/issues/4262): Removed the global reference to the `stylesLoaded` variable. Thanks to [Levi Carter](https://github.com/swiftMessenger)! +* Updated the [Export to PDF](https://ckeditor.com/cke4/addon/exportpdf) plugin to `1.0.1` version: + * Improved external CSS support for [classic editor](https://ckeditor.com/docs/ckeditor4/latest/examples/classic.html) by handling exceptions and displaying convenient [error messages](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_errors.html#exportpdf-stylesheets-incaccessible). + +## CKEditor 4.15 + +New features: + +* [#3940](https://github.com/ckeditor/ckeditor4/issues/3940): Introduced the `colorName` property for customizing foreground and background styles in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin via the [`config.colorButton_foreStyle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_foreStyle) and [`config.colorButton_backStyle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_backStyle) configuration options. +* [#3793](https://github.com/ckeditor/ckeditor4/issues/3793): Introduced the [Editor Placeholder](https://ckeditor.com/cke4/addon/editorplaceholder) plugin. +* [#1795](https://github.com/ckeditor/ckeditor4/issues/1795): The colors picked from the [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) are now stored in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) palette and can be reused easily. +* [#3783](https://github.com/ckeditor/ckeditor4/issues/3783): The colors used in the document are now displayed as a part of the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) palette. + +Fixed Issues: + +* [#4060](https://github.com/ckeditor/ckeditor4/issues/4060): Fixed: The content inside a [widget](https://ckeditor.com/cke4/addon/widget) nested editable is escaped twice. +* [#4183](https://github.com/ckeditor/ckeditor4/issues/4183): [Safari] Fixed: Incorrect image dimensions when using the [Easy Image](https://ckeditor.com/cke4/addon/easyimage) plugin alongside the [IFrame Editing Area](https://ckeditor.com/cke4/addon/wysiwygarea) plugin. +* [#3693](https://github.com/ckeditor/ckeditor4/issues/3693): Fixed: Incorrect default values for several [Color Button](https://ckeditor.com/cke4/addon/colorbutton) configuration variables in the API documentation. +* [#3795](https://github.com/ckeditor/ckeditor4/issues/3795): Fixed: Setting the [`config.dataIndentationChars`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-dataIndentationChars) configuration option to an empty string is ignored and replaced by a tab (`\t`) character. Thanks to [Thomas Grinderslev](https://github.com/Znegl)! +* [#4107](https://github.com/ckeditor/ckeditor4/issues/4107): Fixed: Multiple [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) instances cause keyboard navigation issues. +* [#4041](https://github.com/ckeditor/ckeditor4/issues/4041): Fixed: The[`selection.scrollIntoView`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-scrollIntoView) method throws an error when the editor selection is not set. +* [#3361](https://github.com/ckeditor/ckeditor4/issues/3361): Fixed: Loading multiple [custom editor configurations](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-customConfig) is prone to a race condition between these. +* [#4007](https://github.com/ckeditor/ckeditor4/issues/4007): Fixed: Screen readers do not announce the [Rich Combo](https://ckeditor.com/cke4/addon/richcombo) plugin is collapsed or expanded. +* [#4141](https://github.com/ckeditor/ckeditor4/issues/4141): Fixed: The styles are incorrectly applied when there is a ` + +

    Divarea Editor

    +
    + Divarea Editor +
    + +

    Inline Editor

    +
    + Inline Editor +
    + + diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.md b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.md new file mode 100644 index 00000000000..96a3d8725e7 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/stylesheets.md @@ -0,0 +1,19 @@ +@bender-tags: exportpdf, feature, 31 +@bender-ui: collapsed +@bender-include: ../_helpers/tools.js +@bender-ckeditor-plugins: toolbar, basicstyles, notification + +**Note:** This test uses Bootstrap CDN. If something goes wrong, check if the link works correctly first. + +1. Use `Export to PDF` button in the first editor. +1. Open generated file. + + **Expected:** + + Text from editor was converted to a green badge. + + **Unexpected:** + + Content is the same as in the editor. + +1. Repeat the same steps for the second and third editor. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.html b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.html new file mode 100644 index 00000000000..60d8205cb13 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.html @@ -0,0 +1,23 @@ +
    +

    Foo bar

    +
    + +
    + + diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.md b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.md new file mode 100644 index 00000000000..de9ba3587c2 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.md @@ -0,0 +1,19 @@ +@bender-tags: exportpdf, feature, 77 +@bender-ui: collapsed +@bender-include: ../_helpers/tools.js +@bender-ckeditor-plugins: wysiwygarea, toolbar, basicstyles, notification, format + +Note: You need the Internet connection to run this test. + +1. Click `Export to PDF` toolbar button. +1. Examine the area in the red frame below. + + **Expected:** There is a long token string in the frame. + + **Unexpected:** Frame is empty or says 'undefined'. + +1. Wait for the file to download and open it. + + **Expected:** No information about being created with CKEditor was added. + + **Unexpected:** There is an additional note about CKEditor at the bottom of page. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.html b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.html new file mode 100644 index 00000000000..183c3df0c57 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.html @@ -0,0 +1,38 @@ +

    Editor 1

    +
    +

    Foo bar

    +
    +
    + +

    Editor 2

    +
    +

    Foo bar

    +
    +
    + + diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.md b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.md new file mode 100644 index 00000000000..3f6b9bfe548 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.md @@ -0,0 +1,14 @@ +@bender-tags: exportpdf, feature, 77 +@bender-ui: collapsed +@bender-include: ../_helpers/tools.js +@bender-ckeditor-plugins: wysiwygarea, toolbar, basicstyles, notification, format + +Note: You need the Internet connection to run this test. + +1. Click `Export to PDF` button in both editors. + +1. Examine the area in the red frames below each editor. + + **Expected:** Content of two boxes are two different long strings. + + **Unexpected:** Values in both boxes are the same or one of them says `undefined`. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.html b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.html new file mode 100644 index 00000000000..f3efc6c03a4 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.html @@ -0,0 +1,38 @@ +

    Editor 1

    +
    +

    Foo bar

    +
    +
    + +

    Editor 2

    +
    +

    Foo bar

    +
    +
    + + diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.md b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.md new file mode 100644 index 00000000000..a718c443f2a --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.md @@ -0,0 +1,14 @@ +@bender-tags: exportpdf, feature, 77 +@bender-ui: collapsed +@bender-include: ../_helpers/tools.js +@bender-ckeditor-plugins: wysiwygarea, toolbar, basicstyles, notification, format + +Note: You need the Internet connection to run this test. + +1. Click `Export to PDF` button in both editors. + +1. Examine the area in the red frames below each editor. + + **Expected:** First box contains token value and the second one `undefined`. + + **Unexpected:** Values in both boxes are the same or none of them is `undefined`. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.html b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.html new file mode 100644 index 00000000000..a7236ab7a59 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.html @@ -0,0 +1,19 @@ +
    +

    Foo bar

    +
    + +
    + + diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.md b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.md new file mode 100644 index 00000000000..2de03aaee32 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.md @@ -0,0 +1,31 @@ +@bender-tags: exportpdf, feature, 77 +@bender-ui: collapsed +@bender-include: ../_helpers/tools.js +@bender-ckeditor-plugins: wysiwygarea, toolbar, basicstyles, notification, format + +Note: You need the Internet connection to run this test. + +1. Open and examine console. + + **Expected:** `exportpdf-no-token-url` warning appeared. + + **Unexpected:** No warning. + +1. Click `Export to PDF` button in the editor. +1. Examine the area in the red frame below. + + **Expected:** Frame has text `undefined`. + + **Unexpected:** There is a long token string in the frame. + +1. Examine console. + + **Expected:** `exportpdf-no-token` warning appeared. + + **Unexpected:** No warning. + +1. Wait for the file to download and open it. + + **Expected:** File contains info about being created with CKEditor. + + **Unexpected:** No copyright info was added. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.html b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.html new file mode 100644 index 00000000000..efd801dbc71 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.html @@ -0,0 +1,21 @@ +
    +

    Hello world!

    +
    + +
    +

    Hello world!

    +
    + + diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.md b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.md new file mode 100644 index 00000000000..7231719ad77 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.md @@ -0,0 +1,34 @@ +@bender-tags: exportpdf, feature, 4 +@bender-ui: collapsed +@bender-include: ../_helpers/tools.js +@bender-ckeditor-plugins: wysiwygarea, toolbar, notification + +**Note:** Errors in console during this test are allowed. + +1. Click `Export to PDF` button in the first editor. + + **Expected:** + + * Warning notification with `Error occured.` message appeared. + * Button is clickable. + * File wasn't downloaded. + + **Unexpected:** + + * Notification didn't show up. + * Button wasn't reenabled. + * File was downloaded. + +2. Click `Export to PDF` button in the second editor. + + **Expected:** + + * Alert appeared instead of notification. + * Button is clickable. + * File wasn't downloaded. + + **Unexpected:** + + * Notification didn't show up. + * Button wasn't reenabled. + * File was downloaded. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/notification.js b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/notification.js new file mode 100644 index 00000000000..ebd706d9ede --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/notification.js @@ -0,0 +1,4 @@ +(function(){bender.loadExternalPlugin("exportpdf","/apps/plugin/");CKEDITOR.plugins.load("exportpdf",function(){function c(a,b){var c=a._.notificationArea.notifications[0];assert.areSame(b.message,c.message,"Message should be the same.");assert.areSame(b.type,c.type,"Type should be the same.");assert.areSame(b.progress,c.progress,"Progress should be the same.")}bender.editors={successEditor:{config:exportPdfUtils.getDefaultConfig("unit")},errorEditor:{config:exportPdfUtils.getDefaultConfig("unit")}}; +bender.test({setUp:function(){bender.tools.ignoreUnsupportedEnvironment("exportpdf");sinon.stub(CKEDITOR.plugins.exportpdf,"downloadFile")},tearDown:function(){CKEDITOR.plugins.exportpdf.downloadFile.restore()},"test notifications and progress steps are correct in happy path":function(){var a=this.editors.successEditor;this.editorBots.successEditor.setHtmlWithSelection('\x3cp id\x3d"test"\x3eHello, World!\x3c/p\x3e^');a.once("exportPdf",function(){c(a,{message:"Processing PDF document...",type:"progress", +progress:0})});a.once("exportPdf",function(){c(a,{message:"Processing PDF document...",type:"progress",progress:.2})},null,null,16);exportPdfUtils.useXHR(a,function(b){b.addEventListener("progress",function(){c(a,{message:"Processing PDF document...",type:"progress",progress:.8})});b.addEventListener("loadend",function(){c(a,{message:"Document is ready!",type:"success",progress:1})});b.respond(200,{},"")})},"test notifications and progress steps are correct in sad path":function(){var a=this.editors.errorEditor; +this.editorBots.errorEditor.setHtmlWithSelection('\x3cp id\x3d"test"\x3eHello, World!\x3c/p\x3e^');exportPdfUtils.useXHR(a,function(b){var d=sinon.stub(console,"error",function(a){assert.areSame("Validation failed.",a.message,"Message from endpoint is incorrect.");d.restore()});b.addEventListener("loadend",function(){c(a,{message:"Error occurred.",type:"warning"})});b.respond(400,{},'{ "message": "Validation failed." }')})}})})})(); \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/resourcespaths.js b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/resourcespaths.js new file mode 100644 index 00000000000..1964499f080 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/exportpdf/tests/resourcespaths.js @@ -0,0 +1,9 @@ +(function(){bender.loadExternalPlugin("exportpdf","/apps/plugin/");CKEDITOR.plugins.load("exportpdf",function(){function a(a,d,b){b=exportPdfUtils.getDefaultConfig("unit",b||{});bender.editorBot.create({name:"editor"+Date.now(),config:b},function(b){var c=b.editor;b.setHtmlWithSelection(a);c.once("exportPdf",function(b){assert.areEqual(a,b.data.html)},null,null,10);c.once("exportPdf",function(a){a.cancel();assert.areEqual('\x3cdiv class\x3d"cke_editable cke_contents_ltr"\x3e'+d+"\x3c/div\x3e",a.data.html)}, +null,null,16);c.execCommand("exportPdf")})}function b(a,b){a=a.replace(/\/$/g,"");b&&0b.length){var d=this._.walker.textNode;if(d)a.setStartAfter(d);else return null}else d=b[0],b=b[b.length-1],a.setStart(d.textNode,d.offset),a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new n(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched= -!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1>this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();z.applyToRange(a,c);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();z.removeFromRange(this._.highlightRange, -c);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange);this._.highlightRange=null}},isReadOnly:function(){return this._.highlightRange?this._.highlightRange.startContainer.isReadOnly():0},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a); -b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors;return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,d;d=this._.cursors;d=(b=d[d.length-1])&&b.textNode?new n(y(b)):this._.walker;return new t(d,a)},getCursors:function(){return this._.cursors}};var A=function(a,b){var d=[-1];b&&(a=a.toLowerCase());for(var c=0;c=b||8192<=b&& -8202>=b||E.test(a)},f={searchRange:null,matchRange:null,find:function(a,b,d,e,D,u){this.matchRange?(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(a.length)):this.matchRange=new t(new n(this.searchRange),a.length);for(var h=new A(a,!b),k=0,l="%";null!==l;){for(this.matchRange.moveNext();l=this.matchRange.getEndCharacter();){k=h.feedCharacter(l);if(2==k)break;this.matchRange.moveNext().hitMatchBoundary&&h.reset()}if(2==k){if(d){var g=this.matchRange.getCursors(), -p=g[g.length-1],g=g[0],m=c.createRange();m.setStartAt(c.editable(),CKEDITOR.POSITION_AFTER_START);m.setEnd(g.textNode,g.offset);g=m;p=y(p);g.trim();p.trim();g=new n(g,!0);p=new n(p,!0);if(!B(g.back().character)||!B(p.next().character))continue}this.matchRange.setMatched();!1!==D&&this.matchRange.highlight();return!0}}this.matchRange.clearMatched();this.matchRange.removeHighlight();return e&&!u?(this.searchRange=r(1),this.matchRange=null,f.find.apply(this,Array.prototype.slice.call(arguments).concat([!0]))): -!1},replaceCounter:0,replace:function(a,b,d,e,f,u,h){m=1;a=0;a=this.hasMatchOptionsChanged(b,e,f);if(!this.matchRange||!this.matchRange.isMatched()||this.matchRange._.isReplaced||this.matchRange.isReadOnly()||a)a&&this.matchRange&&(this.matchRange.clearMatched(),this.matchRange.removeHighlight(),this.matchRange=null),a=this.find(b,e,f,u,!h);else{this.matchRange.removeHighlight();b=this.matchRange.toDomRange();d=c.document.createText(d);if(!h){var k=c.getSelection();k.selectRanges([b]);c.fire("saveSnapshot")}b.deleteContents(); -b.insertNode(d);h||(k.selectRanges([b]),c.fire("saveSnapshot"));this.matchRange.updateFromDomRange(b);h||this.matchRange.highlight();this.matchRange._.isReplaced=!0;this.replaceCounter++;a=1}m=0;return a},matchOptions:null,hasMatchOptionsChanged:function(a,b,d){a=[a,b,d].join(".");b=this.matchOptions&&this.matchOptions!=a;this.matchOptions=a;return b}},e=c.lang.find;return{title:e.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton(c,{label:c.lang.common.close})], -contents:[{id:"find",label:e.find,title:e.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:e.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:e.find,onClick:function(){var a=this.getDialog();f.find(a.getValueOf("find","txtFindFind"),a.getValueOf("find","txtFindCaseChk"),a.getValueOf("find","txtFindWordChk"),a.getValueOf("find","txtFindCyclic"))||alert(e.notFoundMsg)}}]}, -{type:"fieldset",className:"cke_dialog_find_fieldset",label:CKEDITOR.tools.htmlEncode(e.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:e.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:e.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0,label:e.matchCyclic}]}]}]},{id:"replace",label:e.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text", -id:"txtFindReplace",label:e.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:e.replace,onClick:function(){var a=this.getDialog();f.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),a.getValueOf("replace","txtReplaceCyclic"))||alert(e.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text", -id:"txtReplace",label:e.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:e.replaceAll,isChanged:!1,onClick:function(){var a=this.getDialog();f.replaceCounter=0;f.searchRange=r(1);f.matchRange&&(f.matchRange.removeHighlight(),f.matchRange=null);for(c.fire("saveSnapshot");f.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace", -"txtReplaceWordChk"),!1,!0););f.replaceCounter?(alert(e.replaceSuccessMsg.replace(/%1/,f.replaceCounter)),c.fire("saveSnapshot")):alert(e.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(e.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:e.matchCase},{type:"checkbox",id:"txtReplaceWordChk",isChanged:!1,label:e.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:e.matchCyclic}]}]}]}],onLoad:function(){var a= -this,b,d=0;this.on("hide",function(){d=0});this.on("show",function(){d=1});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(c){return function(e){c.call(a,e);var f=a._.tabs[e],h;h="find"===e?"txtFindWordChk":"txtReplaceWordChk";b=a.getContentElement(e,"find"===e?"txtFindFind":"txtFindReplace");a.getContentElement(e,h);f.initialized||(CKEDITOR.document.getById(b._.inputId),f.initialized=!0);if(d){var k;e="find"===e?1:0;var f=1-e,l,g=q.length;for(l=0;l=b||8192<=b&&8202>=b||F.test(a)}function r(a){var b=d.getSelection().getRanges()[0],c=d.editable();b&&!a?(a=b.clone(),a.collapse(!0)):(a=d.createRange(),a.setStartAt(c,CKEDITOR.POSITION_AFTER_START));a.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);return a}function G(a,b){var c=b.replace(H,function(a){a=a.split("");return CKEDITOR.tools.array.map(a,function(a,b){return 0=== +b%2?" ":a}).join("")});return a.document.createText(c)}var A=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1},fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},d.config.find_highlight,!0));n.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(a){var b=this.textNode;if(null===b)return w.call(this);this._.matchBoundary=!1;if(b&&a&&0b.length){var c=this._.walker.textNode;if(c)a.setStartAfter(c);else return null}else c=b[0],b=b[b.length-1],a.setStart(c.textNode,c.offset), +a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new n(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1>this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();A.applyToRange(a, +d);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();A.removeFromRange(this._.highlightRange,d);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange);this._.highlightRange=null}},isReadOnly:function(){return this._.highlightRange?this._.highlightRange.startContainer.isReadOnly(): +0},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a);b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors;return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,c;c=this._.cursors;c=(b=c[c.length- +1])&&b.textNode?new n(y(b)):this._.walker;return new u(c,a)},getCursors:function(){return this._.cursors}};var B=function(a,b){var c=[-1];b&&(a=a.toLowerCase());for(var d=0;dCKEDITOR.document.$.documentMode?b.document.createElement('\x3cinput name\x3d"'+CKEDITOR.tools.htmlEncode(a)+'"\x3e'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title,elements:[{id:"_cke_saved_name", -type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}}]}]}}); \ No newline at end of file +CKEDITOR.dialog.add("hiddenfield",function(c){return{title:c.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,getModel:function(a){return(a=a.getSelection().getSelectedElement())&&a.data("cke-real-element-type")&&"hiddenfield"==a.data("cke-real-element-type")?a:null},onShow:function(){var a=this.getParentEditor(),b=this.getModel(a);b&&(this.setupContent(a.restoreRealElement(b)),a.getSelection().selectElement(b))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name"),b= +this.getParentEditor(),a=CKEDITOR.env.ie&&8>CKEDITOR.document.$.documentMode?b.document.createElement('\x3cinput name\x3d"'+CKEDITOR.tools.htmlEncode(a)+'"\x3e'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);var a=b.createFakeElement(a,"cke_hidden","hiddenfield"),c=this.getModel(b);c?(a.replace(c),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:c.lang.forms.hidden.title,title:c.lang.forms.hidden.title,elements:[{id:"_cke_saved_name", +type:"text",label:c.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:c.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}}]}]}}); \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/radio.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/radio.js index 2c6ab56087d..a9d2543edfe 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/radio.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/radio.js @@ -1,8 +1,8 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ -CKEDITOR.dialog.add("radio",function(c){return{title:c.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"input"==a.getName()&&"radio"==a.getAttribute("type")&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"),a.insertElement(b));this.commitContent({element:b})}, +CKEDITOR.dialog.add("radio",function(c){return{title:c.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,getModel:function(a){return(a=a.getSelection().getSelectedElement())&&"input"==a.getName()&&"radio"==a.getAttribute("type")?a:null},onShow:function(){var a=this.getModel(this.getParentEditor());a&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor(),b=this.getModel(a);b||(b=a.document.createElement("input"),b.setAttribute("type","radio"),a.insertElement(b));this.commitContent({element:b})}, contents:[{id:"info",label:c.lang.forms.checkboxAndRadio.radioTitle,title:c.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:c.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:c.lang.forms.checkboxAndRadio.value,"default":"", accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:c.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var d=b.getAttribute("checked"),e=!!this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('\x3cinput type\x3d"radio"'+ (e?' checked\x3d"checked"':"")+"\x3e\x3c/input\x3e",c.document),b.copyAttributes(d,{type:1,checked:1}),d.replace(b),e&&d.setAttribute("checked","checked"),c.getSelection().selectElement(d),a.element=d)}else a=this.getValue(),CKEDITOR.env.webkit&&(b.$.checked=a),a?b.setAttribute("checked","checked"):b.removeAttribute("checked")}},{id:"required",type:"checkbox",label:c.lang.forms.checkboxAndRadio.required,"default":"",accessKey:"Q",value:"required",setup:CKEDITOR.plugins.forms._setupRequiredAttribute, diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/select.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/select.js index 5cf2de518ef..d8242545113 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/select.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/select.js @@ -1,21 +1,21 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.dialog.add("select",function(c){function h(a,b,e,d,c){a=f(a);d=d?d.createElement("OPTION"):document.createElement("OPTION");if(a&&d&&"option"==d.getName())CKEDITOR.env.ie?(isNaN(parseInt(c,10))?a.$.options.add(d.$):a.$.options.add(d.$,c),d.$.innerHTML=0c?0:c).insertBeforeMe(d):a.append(d),d.setText(0b)return!1;a=a.getChild(b);a.setText(e);a.setValue(d);return a}function m(a){for(a=f(a);a.getChild(0)&&a.getChild(0).remove(););}function l(a,b,e){a=f(a);var d=g(a);if(0>d)return!1;b=d+b;b=0>b?0:b;b=b>=a.getChildCount()?a.getChildCount()-1:b;if(d==b)return!1;var d=a.getChild(d),c=d.getText(),r=d.getValue();d.remove();d=h(a,c,r,e?e:null,b);k(a,b);return d}function g(a){return(a=f(a))?a.$.selectedIndex:-1} -function k(a,b){a=f(a);if(0>b)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function n(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){delete this.selectBox;this.setupContent("clear");var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"select"==a.getName()){this.selectBox= -a;this.setupContent(a.getName(),a);for(var a=n(a),b=0;bb)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function n(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,getModel:function(a){return(a=a.getSelection().getSelectedElement())&&"select"==a.getName()?a:null},onShow:function(){this.setupContent("clear");var a= +this.getModel(this.getParentEditor());if(a){this.setupContent(a.getName(),a);for(var a=n(a),b=0;bCKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,a.applyToRange(b)))},onHide:function(){delete this._.selectedElement},onShow:function(){var b=c.getSelection(),a;a=b.getRanges()[0];var d=b.getSelectedElement();a.shrink(CKEDITOR.SHRINK_ELEMENT);a=(d=a.getEnclosedNode())&&d.type===CKEDITOR.NODE_ELEMENT&&("anchor"===d.data("cke-real-element-type")|| -d.is("a"))?d:void 0;var f=(d=a&&a.data("cke-realelement"))?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a):CKEDITOR.plugins.link.getSelectedLink(c);if(f){this._.selectedElement=f;var e=f.data("cke-saved-name");this.setValueOf("info","txtName",e||"");!d&&b.selectElement(f);a&&(this._.selectedElement=a)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()? -!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}}); \ No newline at end of file +CKEDITOR.dialog.add("anchor",function(c){function f(b,a){return b.createFakeElement(b.document.createElement("a",{attributes:a}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,getModel:function(b){var a=b.getSelection();b=a.getRanges()[0];a=a.getSelectedElement();b.shrink(CKEDITOR.SHRINK_ELEMENT);(a=b.getEnclosedNode())&&a.type===CKEDITOR.NODE_TEXT&&(a=a.getParent());a&&!a.is("a")&&(a=a.getAscendant("a")||a);b=a&&a.type===CKEDITOR.NODE_ELEMENT&&("anchor"=== +a.data("cke-real-element-type")||a.is("a"))?a:void 0;return b||null},onOk:function(){var b=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),b={id:b,name:b,"data-cke-saved-name":b},a=this.getModel(c);if(a)a.data("cke-realelement")?(b=f(c,b),b.replace(a),CKEDITOR.env.ie&&c.getSelection().selectElement(b)):a.setAttributes(b);else if(a=(a=c.getSelection())&&a.getRanges()[0],a.collapsed)b=f(c,b),a.insertNode(b);else{CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(b["class"]="cke_anchor");var d=a.clone(); +d.enlarge(CKEDITOR.ENLARGE_ELEMENT);for(var e=new CKEDITOR.dom.walker(d),d=d.collapsed?d.startContainer:e.next(),g=a.createBookmark();d;)d.type===CKEDITOR.NODE_ELEMENT&&d.getAttribute("data-cke-saved-name")&&(d.remove(!0),e.reset()),d=e.next();a.moveToBookmark(g);b=new CKEDITOR.style({element:"a",attributes:b});b.type=CKEDITOR.STYLE_INLINE;b.applyToRange(a)}},onShow:function(){var b=c.getSelection(),a=this.getModel(c),d=a&&a.data("cke-realelement");if(a=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, +a):CKEDITOR.plugins.link.getSelectedLink(c)){var e=a.data("cke-saved-name");this.setValueOf("info","txtName",e||"");!d&&b.selectElement(a)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}}); \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/link.js b/htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/link.js index 7305fd2df24..51bd322e210 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/link.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/link.js @@ -1,30 +1,30 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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(){function u(){var c=this.getDialog(),p=c._.editor,n=p.config.linkPhoneRegExp,q=p.config.linkPhoneMsg,p=CKEDITOR.dialog.validate.notEmpty(p.lang.link.noTel).apply(this);if(!c.getContentElement("info","linkType")||"tel"!=c.getValueOf("info","linkType"))return!0;if(!0!==p)return p;if(n)return CKEDITOR.dialog.validate.regex(n,q).call(this)}CKEDITOR.dialog.add("link",function(c){function p(a,b){var c=a.createRange();c.setStartBefore(b);c.setEndAfter(b);return c}var n=CKEDITOR.plugins.link,q, -t=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),r=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),r){case "frame":a.setLabel(c.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(c.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(r),a.getElement().hide()}},l=function(a){a.target&&this.setValue(a.target[this.id]||"")},e=function(a){a.advanced&& -this.setValue(a.advanced[this.id]||"")},k=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},m=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},g=c.lang.common,b=c.lang.link,d;return{title:b.title,minWidth:"moono-lisa"==(CKEDITOR.skinName||c.config.skin)?450:350,minHeight:240,contents:[{id:"info",label:b.info,title:b.info,elements:[{type:"text",id:"linkDisplayText",label:b.displayText,setup:function(){this.enable();this.setValue(c.getSelection().getSelectedText()); -q=this.getValue()},commit:function(a){a.linkText=this.isEnabled()?this.getValue():""}},{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"],[b.toPhone,"tel"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions","telOptions"],r=this.getValue(),f=a.definition.getContents("upload"),f=f&&f.hidden;"url"==r?(c.config.linkShowTargetTab&&a.showPage("target"),f||a.showPage("upload")):(a.hidePage("target"), -f||a.hidePage("upload"));for(f=0;f=f.length&&n.showDisplayTextForElement(h,a)?c.show():c.hide();this._.selectedElements=f;this.setupContent(b)},onOk:function(){var a={};this.commitContent(a);if(this._.selectedElements.length){var b=this._.selectedElements,g=n.getLinkAttributes(c,a),f=[],h,d,l,e,k;for(k=0;k=f.length&&n.showDisplayTextForElement(m,a)?c.show():c.hide();this._.selectedElements=f;this.setupContent(b)},onOk:function(){var a={};this.commitContent(a);if(this._.selectedElements.length){var b=this._.selectedElements,h=n.getLinkAttributes(c,a),f=[],m,l,d,g,e,k;for(k=0;k/g,"]--\x3e");var f=CKEDITOR.htmlParser.fragment.fromHtml(a),g={root:function(a){a.filterChildren(p);CKEDITOR.plugins.pastefromword.lists.cleanup(h.createLists(a))},elementNames:[[/^\?xml:namespace$/,""],[/^v:shapetype/,""],[new RegExp(A.join("|")),""]],elements:{a:function(a){if(a.attributes.name){if("_GoBack"==a.attributes.name){delete a.name;return}if(a.attributes.name.match(/^OLE_LINK\d+$/)){delete a.name;return}}if(a.attributes.href&&a.attributes.href.match(/#.+$/)){var b= -a.attributes.href.match(/#(.+)$/)[1];y[b]=a}a.attributes.name&&y[a.attributes.name]&&(a=y[a.attributes.name],a.attributes.href=a.attributes.href.replace(/.*#(.*)$/,"#$1"))},div:function(a){if(b.plugins.pagebreak&&a.attributes["data-cke-pagebreak"])return a;k.createStyleStack(a,p,b)},img:function(a){if(a.parent&&a.parent.attributes){var b=a.parent.attributes;(b=b.style||b.STYLE)&&b.match(/mso\-list:\s?Ignore/)&&(a.attributes["cke-ignored"]=!0)}k.mapCommonStyles(a);a.attributes.src&&a.attributes.src.match(/^file:\/\//)&& -a.attributes.alt&&a.attributes.alt.match(/^https?:\/\//)&&(a.attributes.src=a.attributes.alt);a=a.attributes["v:shapes"]?a.attributes["v:shapes"].split(" "):[];b=CKEDITOR.tools.array.every(a,function(a){return-1/)?!0:!1},convertToFakeListItem:function(a,b){r.isDegenerateListItem(a,b)&&r.assignListLevels(a,b);this.getListItemInfo(b);if(!b.attributes["cke-dissolved"]){var c;b.forEach(function(a){!c&&"img"==a.name&&a.attributes["cke-ignored"]&&"*"==a.attributes.alt&&(c="·",a.remove())},CKEDITOR.NODE_ELEMENT);b.forEach(function(a){c||a.value.match(/^ /)||(c=a.value)},CKEDITOR.NODE_TEXT);if("undefined"==typeof c)return; -b.attributes["cke-symbol"]=c.replace(/(?: | ).*$/,"");h.removeSymbolText(b)}var d=b.attributes&&m.parseCssText(b.attributes.style);if(d["margin-left"]){var e=d["margin-left"],f=b.attributes["cke-list-level"];(e=Math.max(CKEDITOR.tools.convertToPx(e)-40*f,0))?d["margin-left"]=e+"px":delete d["margin-left"];b.attributes.style=CKEDITOR.tools.writeCssText(d)}b.name="cke:li"},convertToRealListItems:function(a){var b=[];a.forEach(function(a){"cke:li"==a.name&&(a.name="li",b.push(a))},CKEDITOR.NODE_ELEMENT, -!1);return b},removeSymbolText:function(a){var b=a.attributes["cke-symbol"],c=a.findOne(function(a){return a.value&&-1b&&(a.attributes.dir="rtl")},createList:function(a){return(a.attributes["cke-symbol"].match(/([\da-np-zA-NP-Z]).?/)||[])[1]?new CKEDITOR.htmlParser.element("ol"):new CKEDITOR.htmlParser.element("ul")},createLists:function(a){function b(a){return CKEDITOR.tools.array.reduce(a,function(a,b){if(b.attributes&&b.attributes.style)var c=CKEDITOR.tools.parseCssText(b.attributes.style)["margin-left"]; -return c?a+parseInt(c,10):a},0)}var c,d,e,f=h.convertToRealListItems(a);if(0===f.length)return[];var g=h.groupLists(f);for(a=0;al.length;){var m=h.createList(c),u=n.children;0e;e++)c[e]&&delete c[e];c[a[f].attributes["cke-list-level"]]=l;d[d.length-1].push(a[f]);e=k}[].splice.apply(b,[].concat([m.indexOf(b,a),1],d))},isAListContinuation:function(a){var b=a;do if((b=b.previous)&&b.type===CKEDITOR.NODE_ELEMENT){if(void 0=== -b.attributes["cke-list-level"])break;if(b.attributes["cke-list-level"]===a.attributes["cke-list-level"])return b.attributes["cke-list-id"]===a.attributes["cke-list-id"]}while(b);return!1},getElementIndentation:function(a){a=m.parseCssText(a.attributes.style);if(a.margin||a.MARGIN){a.margin=a.margin||a.MARGIN;var b={styles:{margin:a.margin}};CKEDITOR.filter.transformationsTools.splitMarginShorthand(b);a["margin-left"]=b.styles["margin-left"]}return parseInt(m.convertToPx(a["margin-left"]||"0px"),10)}, -toArabic:function(a){return a.match(/[ivxl]/i)?a.match(/^l/i)?50+h.toArabic(a.slice(1)):a.match(/^lx/i)?40+h.toArabic(a.slice(1)):a.match(/^x/i)?10+h.toArabic(a.slice(1)):a.match(/^ix/i)?9+h.toArabic(a.slice(2)):a.match(/^v/i)?5+h.toArabic(a.slice(1)):a.match(/^iv/i)?4+h.toArabic(a.slice(2)):a.match(/^i/i)?1+h.toArabic(a.slice(1)):h.toArabic(a.slice(1)):0},getSymbolInfo:function(a,b){var c=a.toUpperCase()==a?"upper-":"lower-",d={"·":["disc",-1],o:["circle",-2],"§":["square",-3]};if(a in d||b&&b.match(/(disc|circle|square)/))return{index:d[a][1], -type:d[a][0]};if(a.match(/\d/))return{index:a?parseInt(h.getSubsectionSymbol(a),10):0,type:"decimal"};a=a.replace(/\W/g,"").toLowerCase();return!b&&a.match(/[ivxl]+/i)||b&&"alpha"!=b||"roman"==b?{index:h.toArabic(a),type:c+"roman"}:a.match(/[a-z]/i)?{index:a.charCodeAt(0)-97,type:c+"alpha"}:{index:-1,type:"disc"}},getListItemInfo:function(a){if(void 0!==a.attributes["cke-list-id"])return{id:a.attributes["cke-list-id"],level:a.attributes["cke-list-level"]};var b=m.parseCssText(a.attributes.style)["mso-list"], -c={id:"0",level:"1"};b&&(b+=" ",c.level=b.match(/level(.+?)\s+/)[1],c.id=b.match(/l(\d+?)\s+/)[1]);a.attributes["cke-list-level"]=void 0!==a.attributes["cke-list-level"]?a.attributes["cke-list-level"]:c.level;a.attributes["cke-list-id"]=c.id;return c}};h=CKEDITOR.plugins.pastefromword.lists;CKEDITOR.plugins.pastefromword.images={extractFromRtf:function(a){var b=[],c=/\{\\pict[\s\S]+?\\bliptag\-?\d+(\\blipupi\-?\d+)?(\{\\\*\\blipuid\s?[\da-fA-F]+)?[\s\}]*?/,d;a=a.match(new RegExp("(?:("+c.source+"))([\\da-fA-F\\s]+)\\}", -"g"));if(!a)return b;for(var e=0;e]+src="([^"]+)[^>]+/g,c=[],d;d=b.exec(a);)c.push(d[1]);return c}};CKEDITOR.plugins.pastefromword.heuristics={isEdgeListItem:function(a,b){if(!CKEDITOR.env.edge||!a.config.pasteFromWord_heuristicsEdgeList)return!1; -var c="";b.forEach&&b.forEach(function(a){c+=a.value},CKEDITOR.NODE_TEXT);return c.match(/^(?: | )*\(?[a-zA-Z0-9]+?[\.\)](?: | ){2,}/)?!0:r.isDegenerateListItem(a,b)},cleanupEdgeListItem:function(a){var b=!1;a.forEach(function(a){b||(a.value=a.value.replace(/^(?: |[\s])+/,""),a.value.length&&(b=!0))},CKEDITOR.NODE_TEXT)},isDegenerateListItem:function(a,b){return!!b.attributes["cke-list-level"]||b.attributes.style&&!b.attributes.style.match(/mso\-list/)&&!!b.find(function(a){if(a.type== -CKEDITOR.NODE_ELEMENT&&b.name.match(/h\d/i)&&a.getHtml().match(/^[a-zA-Z0-9]+?[\.\)]$/))return!0;var d=m.parseCssText(a.attributes&&a.attributes.style,!0);if(!d)return!1;var e=d["font-family"]||"";return(d.font||d["font-size"]||"").match(/7pt/i)&&!!a.previous||e.match(/symbol/i)},!0).length},assignListLevels:function(a,b){if(!b.attributes||void 0===b.attributes["cke-list-level"]){for(var c=[h.getElementIndentation(b)],d=[b],e=[],f=CKEDITOR.tools.array,g=f.map;b.next&&b.next.attributes&&!b.next.attributes["cke-list-level"]&& -r.isDegenerateListItem(a,b.next);)b=b.next,c.push(h.getElementIndentation(b)),d.push(b);var k=g(c,function(a,b){return 0===b?0:a-c[b-1]}),l=this.guessIndentationStep(f.filter(c,function(a){return 0!==a})),e=g(c,function(a){return Math.round(a/l)});-1!==f.indexOf(e,0)&&(e=g(e,function(a){return a+1}));f.forEach(d,function(a,b){a.attributes["cke-list-level"]=e[b]});return{indents:c,levels:e,diffs:k}}},guessIndentationStep:function(a){return a.length?Math.min.apply(null,a):null},correctLevelShift:function(a){if(this.isShifted(a)){var b= -CKEDITOR.tools.array.filter(a.children,function(a){return"ul"==a.name||"ol"==a.name}),c=CKEDITOR.tools.array.reduce(b,function(a,b){return(b.children&&1==b.children.length&&r.isShifted(b.children[0])?[b]:b.children).concat(a)},[]);CKEDITOR.tools.array.forEach(b,function(a){a.remove()});CKEDITOR.tools.array.forEach(c,function(b){a.add(b)});delete a.name}},isShifted:function(a){return"li"!==a.name?!1:0===CKEDITOR.tools.array.filter(a.children,function(a){return a.name&&("ul"==a.name||"ol"==a.name|| -"p"==a.name&&0===a.children.length)?!1:!0}).length}};r=CKEDITOR.plugins.pastefromword.heuristics;h.setListSymbol.removeRedundancies=function(a,b){(1===b&&"disc"===a["list-style-type"]||"decimal"===a["list-style-type"])&&delete a["list-style-type"]};CKEDITOR.plugins.pastefromword.createAttributeStack=z;CKEDITOR.config.pasteFromWord_heuristicsEdgeList=!0})(); \ No newline at end of file +(function(){function r(){return!1}var n=CKEDITOR.tools,B=CKEDITOR.plugins.pastetools,t=B.filters.common,k=t.styles,C=t.createAttributeStack,z=t.lists.getElementIndentation,D=["o:p","xml","script","meta","link"],E="v:arc v:curve v:line v:oval v:polyline v:rect v:roundrect v:group".split(" "),A={},y=0,q={},g,p;CKEDITOR.plugins.pastetools.filters.word=q;CKEDITOR.plugins.pastefromword=q;q.rules=function(c,b,d){function e(a){(a.attributes["o:gfxdata"]||"v:group"===a.parent.name)&&l.push(a.attributes.id)} +var f=Boolean(c.match(/mso-list:\s*l\d+\s+level\d+\s+lfo\d+/)),l=[],w={root:function(a){a.filterChildren(d);CKEDITOR.plugins.pastefromword.lists.cleanup(g.createLists(a))},elementNames:[[/^\?xml:namespace$/,""],[/^v:shapetype/,""],[new RegExp(D.join("|")),""]],elements:{a:function(a){if(a.attributes.name){if("_GoBack"==a.attributes.name){delete a.name;return}if(a.attributes.name.match(/^OLE_LINK\d+$/)){delete a.name;return}}if(a.attributes.href&&a.attributes.href.match(/#.+$/)){var b=a.attributes.href.match(/#(.+)$/)[1]; +A[b]=a}a.attributes.name&&A[a.attributes.name]&&(a=A[a.attributes.name],a.attributes.href=a.attributes.href.replace(/.*#(.*)$/,"#$1"))},div:function(a){if(b.plugins.pagebreak&&a.attributes["data-cke-pagebreak"])return a;k.createStyleStack(a,d,b)},img:function(a){if(a.parent&&a.parent.attributes){var b=a.parent.attributes;(b=b.style||b.STYLE)&&b.match(/mso\-list:\s?Ignore/)&&(a.attributes["cke-ignored"]=!0)}k.mapCommonStyles(a);a.attributes.src&&a.attributes.src.match(/^file:\/\//)&&a.attributes.alt&& +a.attributes.alt.match(/^https?:\/\//)&&(a.attributes.src=a.attributes.alt);a=a.attributes["v:shapes"]?a.attributes["v:shapes"].split(" "):[];b=CKEDITOR.tools.array.every(a,function(a){return-1/)?!0:!1},convertToFakeListItem:function(c,b){p.isDegenerateListItem(c,b)&&p.assignListLevels(c, +b);this.getListItemInfo(b);if(!b.attributes["cke-dissolved"]){var d;b.forEach(function(b){!d&&"img"==b.name&&b.attributes["cke-ignored"]&&"*"==b.attributes.alt&&(d="·",b.remove())},CKEDITOR.NODE_ELEMENT);b.forEach(function(b){d||b.value.match(/^ /)||(d=b.value)},CKEDITOR.NODE_TEXT);if("undefined"==typeof d)return;b.attributes["cke-symbol"]=d.replace(/(?: | ).*$/,"");g.removeSymbolText(b)}var e=b.attributes&&n.parseCssText(b.attributes.style);if(e["margin-left"]){var f=e["margin-left"],l=b.attributes["cke-list-level"]; +(f=Math.max(CKEDITOR.tools.convertToPx(f)-40*l,0))?e["margin-left"]=f+"px":delete e["margin-left"];b.attributes.style=CKEDITOR.tools.writeCssText(e)}b.name="cke:li"},convertToRealListItems:function(c){var b=[];c.forEach(function(c){"cke:li"==c.name&&(c.name="li",b.push(c))},CKEDITOR.NODE_ELEMENT,!1);return b},removeSymbolText:function(c){var b=c.attributes["cke-symbol"],d=c.findOne(function(c){return c.value&&-1b&&(c.attributes.dir="rtl")},createList:function(c){return(c.attributes["cke-symbol"].match(/([\da-np-zA-NP-Z]).?/)||[])[1]? +new CKEDITOR.htmlParser.element("ol"):new CKEDITOR.htmlParser.element("ul")},createLists:function(c){function b(b){return CKEDITOR.tools.array.reduce(b,function(b,a){if(a.attributes&&a.attributes.style)var c=CKEDITOR.tools.parseCssText(a.attributes.style)["margin-left"];return c?b+parseInt(c,10):b},0)}var d,e,f,l=g.convertToRealListItems(c);if(0===l.length)return[];var k=g.groupLists(l);for(c=0;ch.length;){var v=g.createList(d),x=m.children;0f;f++)d[f]&&delete d[f];d[c[l].attributes["cke-list-level"]]=h;e[e.length-1].push(c[l]);f=a}[].splice.apply(b,[].concat([n.indexOf(b,c),1],e))},isAListContinuation:function(c){var b=c;do if((b=b.previous)&&b.type===CKEDITOR.NODE_ELEMENT){if(void 0===b.attributes["cke-list-level"])break;if(b.attributes["cke-list-level"]===c.attributes["cke-list-level"])return b.attributes["cke-list-id"]===c.attributes["cke-list-id"]}while(b);return!1},toArabic:function(c){return c.match(/[ivxl]/i)?c.match(/^l/i)? +50+g.toArabic(c.slice(1)):c.match(/^lx/i)?40+g.toArabic(c.slice(1)):c.match(/^x/i)?10+g.toArabic(c.slice(1)):c.match(/^ix/i)?9+g.toArabic(c.slice(2)):c.match(/^v/i)?5+g.toArabic(c.slice(1)):c.match(/^iv/i)?4+g.toArabic(c.slice(2)):c.match(/^i/i)?1+g.toArabic(c.slice(1)):g.toArabic(c.slice(1)):0},getSymbolInfo:function(c,b){var d=c.toUpperCase()==c?"upper-":"lower-",e={"·":["disc",-1],o:["circle",-2],"§":["square",-3]};if(c in e||b&&b.match(/(disc|circle|square)/))return{index:e[c][1],type:e[c][0]}; +if(c.match(/\d/))return{index:c?parseInt(g.getSubsectionSymbol(c),10):0,type:"decimal"};c=c.replace(/\W/g,"").toLowerCase();return!b&&c.match(/[ivxl]+/i)||b&&"alpha"!=b||"roman"==b?{index:g.toArabic(c),type:d+"roman"}:c.match(/[a-z]/i)?{index:c.charCodeAt(0)-97,type:d+"alpha"}:{index:-1,type:"disc"}},getListItemInfo:function(c){if(void 0!==c.attributes["cke-list-id"])return{id:c.attributes["cke-list-id"],level:c.attributes["cke-list-level"]};var b=n.parseCssText(c.attributes.style)["mso-list"],d= +{id:"0",level:"1"};b&&(b+=" ",d.level=b.match(/level(.+?)\s+/)[1],d.id=b.match(/l(\d+?)\s+/)[1]);c.attributes["cke-list-level"]=void 0!==c.attributes["cke-list-level"]?c.attributes["cke-list-level"]:d.level;c.attributes["cke-list-id"]=d.id;return d}};g=q.lists;q.heuristics={isEdgeListItem:function(c,b){if(!CKEDITOR.env.edge||!c.config.pasteFromWord_heuristicsEdgeList)return!1;var d="";b.forEach&&b.forEach(function(b){d+=b.value},CKEDITOR.NODE_TEXT);return d.match(/^(?: | )*\(?[a-zA-Z0-9]+?[\.\)](?: | ){2,}/)? +!0:p.isDegenerateListItem(c,b)},cleanupEdgeListItem:function(c){var b=!1;c.forEach(function(c){b||(c.value=c.value.replace(/^(?: |[\s])+/,""),c.value.length&&(b=!0))},CKEDITOR.NODE_TEXT)},isDegenerateListItem:function(c,b){return!!b.attributes["cke-list-level"]||b.attributes.style&&!b.attributes.style.match(/mso\-list/)&&!!b.find(function(c){if(c.type==CKEDITOR.NODE_ELEMENT&&b.name.match(/h\d/i)&&c.getHtml().match(/^[a-zA-Z0-9]+?[\.\)]$/))return!0;var e=n.parseCssText(c.attributes&&c.attributes.style, +!0);if(!e)return!1;var f=e["font-family"]||"";return(e.font||e["font-size"]||"").match(/7pt/i)&&!!c.previous||f.match(/symbol/i)},!0).length},assignListLevels:function(c,b){if(!b.attributes||void 0===b.attributes["cke-list-level"]){for(var d=[z(b)],e=[b],f=[],g=CKEDITOR.tools.array,k=g.map;b.next&&b.next.attributes&&!b.next.attributes["cke-list-level"]&&p.isDegenerateListItem(c,b.next);)b=b.next,d.push(z(b)),e.push(b);var a=k(d,function(a,b){return 0===b?0:a-d[b-1]}),h=this.guessIndentationStep(g.filter(d, +function(a){return 0!==a})),f=k(d,function(a){return Math.round(a/h)});-1!==g.indexOf(f,0)&&(f=k(f,function(a){return a+1}));g.forEach(e,function(a,b){a.attributes["cke-list-level"]=f[b]});return{indents:d,levels:f,diffs:a}}},guessIndentationStep:function(c){return c.length?Math.min.apply(null,c):null},correctLevelShift:function(c){if(this.isShifted(c)){var b=CKEDITOR.tools.array.filter(c.children,function(b){return"ul"==b.name||"ol"==b.name}),d=CKEDITOR.tools.array.reduce(b,function(b,c){return(c.children&& +1==c.children.length&&p.isShifted(c.children[0])?[c]:c.children).concat(b)},[]);CKEDITOR.tools.array.forEach(b,function(b){b.remove()});CKEDITOR.tools.array.forEach(d,function(b){c.add(b)});delete c.name}},isShifted:function(c){return"li"!==c.name?!1:0===CKEDITOR.tools.array.filter(c.children,function(b){return b.name&&("ul"==b.name||"ol"==b.name||"p"==b.name&&0===b.children.length)?!1:!0}).length}};p=q.heuristics;g.setListSymbol.removeRedundancies=function(c,b){(1===b&&"disc"===c["list-style-type"]|| +"decimal"===c["list-style-type"])&&delete c["list-style-type"]};CKEDITOR.cleanWord=CKEDITOR.pasteFilters.word=B.createFilter({rules:[t.rules,q.rules],additionalTransforms:function(c){CKEDITOR.plugins.clipboard.isCustomDataTypesSupported&&(c=t.styles.inliner.inline(c).getBody().getHtml());return c.replace(//g,"]--\x3e")}});CKEDITOR.config.pasteFromWord_heuristicsEdgeList=!0})(); \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/pastetools/filter/common.js b/htdocs/includes/ckeditor/ckeditor/plugins/pastetools/filter/common.js new file mode 100644 index 00000000000..bce639a9dd8 --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/pastetools/filter/common.js @@ -0,0 +1,24 @@ +/* + 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(){function q(a,b,c){b+=c;for(var d=a[b],e=/[\s]/;d&&e.test(d);)b+=c,d=a[b];return d}function r(a){return/%$/.test(a)?a:a+"px"}function t(a){var b=a.margin?"margin":a.MARGIN?"MARGIN":!1,c,d;if(b){d=CKEDITOR.tools.style.parse.margin(a[b]);for(c in d)a["margin-"+c]=d[c];delete a[b]}}function u(a){var b="background-color:transparent;background:transparent;background-color:none;background:none;background-position:initial initial;background-repeat:initial initial;caret-color;font-family:-webkit-standard;font-variant-caps;letter-spacing:normal;orphans;widows;text-transform:none;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;text-indent:0px;margin-bottom:0in".split(";"), +c=CKEDITOR.tools.parseCssText(a.attributes.style),d,e;for(d in c)e=d+":"+c[d],CKEDITOR.tools.array.some(b,function(a){return e.substring(0,a.length).toLowerCase()===a})&&delete c[d];c=CKEDITOR.tools.writeCssText(c);""!==c?a.attributes.style=c:delete a.attributes.style}function v(a){a=a.config.font_names;var b=[];if(!a||!a.length)return!1;b=CKEDITOR.tools.array.map(a.split(";"),function(a){return-1===a.indexOf("/")?a:a.split("/")[1]});return b.length?b:!1}function w(a,b){var c=a.split(",");return CKEDITOR.tools.array.find(b, +function(a){for(var e=0;e]+src="([^"]+)[^>]+/g,b=[],e;e=c.exec(a);)b.push(e[1]);return b}function t(a){var c=CKEDITOR.tools.array.find(CKEDITOR.pasteFilters.image.recognizableImageTypes, +function(b){return b.marker.test(a)});return c?c.type:"unknown"}function h(a){var c=-1!==CKEDITOR.tools.array.indexOf(CKEDITOR.pasteFilters.image.supportedImageTypes,a.type),b=a.hex;if(!c)return null;"string"===typeof b&&(b=CKEDITOR.tools.convertHexStringToBytes(a.hex));return a.type?"data:"+a.type+";base64,"+CKEDITOR.tools.convertBytesToBase64(b):null}function m(a){return new CKEDITOR.tools.promise(function(c){CKEDITOR.ajax.load(a,function(a){a=new Uint8Array(a);var e=r(a);a=h({type:e,hex:a});c(a)}, +"arraybuffer")})}function r(a){a=a.subarray(0,4);var c=CKEDITOR.tools.array.map(a,function(a){return a.toString(16)}).join("");return(a=CKEDITOR.tools.array.find(CKEDITOR.pasteFilters.image.recognizableImageSignatures,function(a){return 0===c.indexOf(a.signature)}))?a.type:null}CKEDITOR.pasteFilters.image=function(a,c,b){var e;if(c.activeFilter&&!c.activeFilter.check("img[src]"))return a;e=q(a);return 0===e.length?a:b?u(a,b,e):v(c,a,e)};CKEDITOR.pasteFilters.image.extractFromRtf=l;CKEDITOR.pasteFilters.image.extractTagsFromHtml= +q;CKEDITOR.pasteFilters.image.getImageType=t;CKEDITOR.pasteFilters.image.createSrcWithBase64=h;CKEDITOR.pasteFilters.image.convertBlobUrlToBase64=m;CKEDITOR.pasteFilters.image.getImageTypeFromSignature=r;CKEDITOR.pasteFilters.image.supportedImageTypes=["image/png","image/jpeg","image/gif"];CKEDITOR.pasteFilters.image.recognizableImageTypes=[{marker:/\\pngblip/,type:"image/png"},{marker:/\\jpegblip/,type:"image/jpeg"},{marker:/\\emfblip/,type:"image/emf"},{marker:/\\wmetafile\d/,type:"image/wmf"}]; +CKEDITOR.pasteFilters.image.recognizableImageSignatures=[{signature:"ffd8ff",type:"image/jpeg"},{signature:"47494638",type:"image/gif"},{signature:"89504e47",type:"image/png"}]})(); \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/preview/images/pagebreak.gif b/htdocs/includes/ckeditor/ckeditor/plugins/preview/images/pagebreak.gif new file mode 100644 index 00000000000..a27b1684983 Binary files /dev/null and b/htdocs/includes/ckeditor/ckeditor/plugins/preview/images/pagebreak.gif differ diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/preview/styles/screen.css b/htdocs/includes/ckeditor/ckeditor/plugins/preview/styles/screen.css new file mode 100644 index 00000000000..b9b07f3cf2b --- /dev/null +++ b/htdocs/includes/ckeditor/ckeditor/plugins/preview/styles/screen.css @@ -0,0 +1,10 @@ +div[style*="page-break-after"] { + background:url( ../images/pagebreak.gif ) no-repeat center center; + clear:both; + width:100%; + border-top:#999 1px dotted; + border-bottom:#999 1px dotted; + padding:0; + height:7px; + cursor:default; +} diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/scayt/CHANGELOG.md b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/CHANGELOG.md index 05cf2ddc7e4..b07ce7fc7af 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/scayt/CHANGELOG.md +++ b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/CHANGELOG.md @@ -1,20 +1,4 @@ SCAYT plugin for CKEditor 4 Changelog ==================== -### CKEditor 4.5.6 -New Features: -* CKEditor [language addon](http://ckeditor.com/addon/language) support -* CKEditor [placeholder addon](http://ckeditor.com/addon/placeholder) support -* Drag and Drop support -* *Experimental* GRAYT functionality http://www.webspellchecker.net/samples/scayt-ckeditor-plugin.html#25 - -Fixed issues: -* [#98](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/98) SCAYT Affects Dialog Double Click. Fixed in SCAYT Core. -* [#102](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/102) SCAYT Core performance enhancements -* [#104](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/104) SCAYT's spans leak into the clipboard and after pasting -* [#105](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/105) Javascript error fired in case of multiple instances of CKEditor in one page -* [#107](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/107) SCAYT should not check non-editable parts of content -* [#108](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/108) Latest SCAYT copies id of editor element to the iframe -* SCAYT stops working when CKEditor Undo plug-in not enabled -* Issue with pasting SCAYT markup in CKEditor -* [#32](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/32) SCAYT stops working after pressing Cancel button in WSC dialog +The full changelog of the SCAYT plugin for CKEditor 4 can be found on our website under the [release notes](https://webspellchecker.com/release-notes/) section. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md index f6ae334d229..610c807808b 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md +++ b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md @@ -7,10 +7,10 @@ Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All Licensed under the terms of any of the following licenses at your choice: * GNU General Public License Version 2 or later (the "GPL"): - https://www.gnu.org/licenses/gpl.html + http://www.gnu.org/licenses/gpl.html * GNU Lesser General Public License Version 2.1 or later (the "LGPL"): - https://www.gnu.org/licenses/lgpl.html + http://www.gnu.org/licenses/lgpl.html * Mozilla Public License Version 1.1 or later (the "MPL"): http://www.mozilla.org/MPL/MPL-1.1.html diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md index eef5ffad887..62e5e6200a8 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md +++ b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md @@ -1,4 +1,4 @@ -SCAYT Plugin for CKEditor 4 +SCAYT plugin for CKEditor 4 ===================== SpellCheckAsYouType (SCAYT) instantly underlines spelling and grammar errors while users type. To correct spelling or grammar error, a user simply needs to right-click the marked word to select from suggested corrections. @@ -16,14 +16,14 @@ Demo ------------ SCAYT plugin for CKEditor 4: https://webspellchecker.com/wsc-scayt-ckeditor4/ -Supported Languages +Supported languages ------------ The SCAYT plugin for CKEditor as a part of the free services supports the next languages for check spelling: American English, British English, Canadian English, Canadian French, Danish, Dutch, Finnish, French, German, Greek, Italian, Norwegian Bokmal, Spanish, Swedish. There are also additional languages and specialized dictionaries available for a commercial license, you can check the full list [here](https://webspellchecker.com/additional-dictionaries/). -Get Started +Get started ------------ 1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation. @@ -33,7 +33,7 @@ Get Started That's all. SCAYT will appear on the editor toolbar under the ABC button and will be ready to use. -Supported Browsers +Supported browsers ------- This is the list of officially supported browsers for the SCAYT plugin for CKEditor 4. SCAYT may also work in other browsers and environments but we unable to check all of them and guarantee proper work. @@ -57,7 +57,7 @@ Resources * CKEditor’s How-Tos for SCAYT: https://ckeditor.com/docs/ckeditor4/latest/guide/dev_howtos_scayt.html * CKEditor’s example of SCAYT: https://ckeditor.com/docs/ckeditor4/latest/examples/spellchecker.html -Technical Support or Questions +Technical support or questions ------- In cooperation with the CKEditor team, during the past 10 years we have simplified the installation and built the extensive amount of documentation devoted to SCAYT plugin for CKEditor 4 and less. @@ -66,7 +66,7 @@ If you are experiencing any difficulties with the setup of the plugin, please ch Holders of an active subscription to the services or a commercial license have access to professional technical assistance directly from the WebSpellChecker team. [Contact us here](https://webspellchecker.com/contact-us/)! -Reporting Issues +Reporting issues ------- Please use the [SCAYT plugin for CKEditor 4 GitHub issue page](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues) to report bugs and feature requests. We will do our best to reply at our earliest convenience. @@ -74,7 +74,7 @@ Please use the [SCAYT plugin for CKEditor 4 GitHub issue page](https://github.co License ------- -This plugin is licensed under the terms of any of the following licenses at your choice: [GPL](https://www.gnu.org/licenses/gpl.html), [LGPL](https://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). +This plugin is licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). See LICENSE.md for more information. diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js index 8c8e59c2a73..3048f31c176 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,k,m=function(l){var c=l.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);k.hide();l.data.preventDefault()},q=CKEDITOR.tools.addFunction(function(a,c){a= diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt index 13193043856..422ab45cbdb 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -1,4 +1,4 @@ -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 cs.js Found: 118 Missing: 0 diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/af.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/af.js index c51dafb6b55..de40926b39e 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/af.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/af.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","af",{euro:"Euroteken",lsquo:"Linker enkelkwotasie",rsquo:"Regter enkelkwotasie",ldquo:"Linker dubbelkwotasie",rdquo:"Regter dubbelkwotasie",ndash:"Kortkoppelteken",mdash:"Langkoppelteken",iexcl:"Omgekeerdeuitroepteken",cent:"Centteken",pound:"Pondteken",curren:"Geldeenheidteken",yen:"Yenteken",brvbar:"Gebreekte balk",sect:"Afdeelingsteken",uml:"Deelteken",copy:"Kopieregteken",ordf:"Vroulikekenteken",laquo:"Linkgeoorienteerde aanhaalingsteken",not:"Verbodeteken", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js index 9e3125409e2..d81a3369230 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/az.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/az.js index df50d52fe39..f41941f08d1 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/az.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/az.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","az",{euro:"Avropa valyuta işarəsi",lsquo:"Sol tək dırnaq işarəsi",rsquo:"Sağ tək dırnaq işarəsi",ldquo:"Sol cüt dırnaq işarəsi",rdquo:"Sağ cüt dırnaq işarəsi",ndash:"Çıxma işarəsi",mdash:"Tire",iexcl:"Çevrilmiş nida işarəsi",cent:"Sent işarəsi",pound:"Funt sterlinq işarəsi",curren:"Valyuta işarəsi",yen:"İena işarəsi",brvbar:"Sınmış zolaq",sect:"Paraqraf işarəsi",uml:"Umlyaut",copy:"Müəllif hüquqları haqqında işarəsi",ordf:"Qadın sıra indikatoru (a)",laquo:"Sola göstərən cüt bucaqlı dırnaq", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js index 8288d8ce599..9635a0007ca 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Женски ординарен индикатор",laquo:"Знак с двоен ъгъл за означаване на лява посока", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js index 28c03c042c9..1bea341ac13 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js index 60a1a127307..c3414236bd0 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js index cb704233d44..8e243481f5e 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/da.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/da.js index a565eaec4bf..c1d3b37a054 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/da.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/da.js @@ -1,10 +1,10 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ -CKEDITOR.plugins.setLang("specialchar","da",{euro:"Euro-tegn",lsquo:"Venstre enkelt anførselstegn",rsquo:"Højre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Højre dobbelt anførselstegn",ndash:"Bindestreg",mdash:"Tankestreg",iexcl:"Omvendt udråbstegn",cent:"Cent-tegn",pound:"Pund-tegn",curren:"Kurs-tegn",yen:"Yen-tegn",brvbar:"Brudt streg",sect:"Paragraftegn",uml:"Umlaut",copy:"Copyright-tegn",ordf:"Feminin ordinal indikator",laquo:"Venstre dobbel citations-vinkel",not:"Negation", +CKEDITOR.plugins.setLang("specialchar","da",{euro:"Euro-tegn",lsquo:"Venstre enkelt anførselstegn",rsquo:"Højre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Højre dobbelt anførselstegn",ndash:"Bindestreg",mdash:"Tankestreg",iexcl:"Omvendt udråbstegn",cent:"Cent-tegn",pound:"Pund-tegn",curren:"Valuta-tegn",yen:"Yen-tegn",brvbar:"Brudt streg",sect:"Paragraftegn",uml:"Umlaut",copy:"Copyright-tegn",ordf:"Feminin ordinal indikator",laquo:"Venstre dobbel citations-vinkel",not:"Negation", reg:"Registreret varemærke tegn",macr:"Macron",deg:"Grad-tegn",sup2:"Superscript to",sup3:"Superscript tre",acute:"Prim-tegn",micro:"Mikro-tegn",para:"Pilcrow-tegn",middot:"Punkt-tegn",cedil:"Cedille",sup1:"Superscript et",ordm:"Maskulin ordinal indikator",raquo:"Højre dobbel citations-vinkel",frac14:"En fjerdedel",frac12:"En halv",frac34:"En tredjedel",iquest:"Omvendt udråbstegn",Agrave:"Stort A med accent grave",Aacute:"Stort A med accent aigu",Acirc:"Stort A med cirkumfleks",Atilde:"Stort A med tilde", -Auml:"Stort A med umlaut",Aring:"Stort Å",AElig:"Latin capital letter Æ",Ccedil:"Stort C med cedille",Egrave:"Stort E med accent grave",Eacute:"Stort E med accent aigu",Ecirc:"Stort E med cirkumfleks",Euml:"Stort E med umlaut",Igrave:"Stort I med accent grave",Iacute:"Stort I med accent aigu",Icirc:"Stort I med cirkumfleks",Iuml:"Stort I med umlaut",ETH:"Stort Ð (edd)",Ntilde:"Stort N med tilde",Ograve:"Stort O med accent grave",Oacute:"Stort O med accent aigu",Ocirc:"Stort O med cirkumfleks",Otilde:"Stort O med tilde", +Auml:"Stort A med umlaut",Aring:"Stort Å",AElig:"Stort Æ",Ccedil:"Stort C med cedille",Egrave:"Stort E med accent grave",Eacute:"Stort E med accent aigu",Ecirc:"Stort E med cirkumfleks",Euml:"Stort E med umlaut",Igrave:"Stort I med accent grave",Iacute:"Stort I med accent aigu",Icirc:"Stort I med cirkumfleks",Iuml:"Stort I med umlaut",ETH:"Stort Ð (edd)",Ntilde:"Stort N med tilde",Ograve:"Stort O med accent grave",Oacute:"Stort O med accent aigu",Ocirc:"Stort O med cirkumfleks",Otilde:"Stort O med tilde", Ouml:"Stort O med umlaut",times:"Gange-tegn",Oslash:"Stort Ø",Ugrave:"Stort U med accent grave",Uacute:"Stort U med accent aigu",Ucirc:"Stort U med cirkumfleks",Uuml:"Stort U med umlaut",Yacute:"Stort Y med accent aigu",THORN:"Stort Thorn",szlig:"Lille eszett",agrave:"Lille a med accent grave",aacute:"Lille a med accent aigu",acirc:"Lille a med cirkumfleks",atilde:"Lille a med tilde",auml:"Lille a med umlaut",aring:"Lilla å",aelig:"Lille æ",ccedil:"Lille c med cedille",egrave:"Lille e med accent grave", eacute:"Lille e med accent aigu",ecirc:"Lille e med cirkumfleks",euml:"Lille e med umlaut",igrave:"Lille i med accent grave",iacute:"Lille i med accent aigu",icirc:"Lille i med cirkumfleks",iuml:"Lille i med umlaut",eth:"Lille ð (edd)",ntilde:"Lille n med tilde",ograve:"Lille o med accent grave",oacute:"Lille o med accent aigu",ocirc:"Lille o med cirkumfleks",otilde:"Lille o med tilde",ouml:"Lille o med umlaut",divide:"Divisions-tegn",oslash:"Lille ø",ugrave:"Lille u med accent grave",uacute:"Lille u med accent aigu", ucirc:"Lille u med cirkumfleks",uuml:"Lille u med umlaut",yacute:"Lille y med accent aigu",thorn:"Lille thorn",yuml:"Lille y med umlaut",OElig:"Stort Æ",oelig:"Lille æ",372:"Stort W med cirkumfleks",374:"Stort Y med cirkumfleks",373:"Lille w med cirkumfleks",375:"Lille y med cirkumfleks",sbquo:"Lavt enkelt 9-komma citationstegn",8219:"Højt enkelt 9-komma citationstegn",bdquo:"Dobbelt 9-komma citationstegn",hellip:"Tre horizontale prikker",trade:"Varemærke-tegn",9658:"Sort højre pil",bull:"Punkt", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js index 1752c85d08f..e7fb7234224 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js @@ -1,12 +1,12 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ -CKEDITOR.plugins.setLang("specialchar","de-ch",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen", -not:"Not-Zeichen",reg:"Registriert-Zeichen",macr:"Längezeichen",deg:"Grad-Zeichen",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Mikro-Zeichen",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent", -Acirc:"Lateinischer Buchstabe A mit Zirkumflex",Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent", -Icirc:"Lateinischer Buchstabe I mit Zirkumflex",Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave", -Uacute:"Lateinischer Buchstabe U mit Akutakzent",Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema", +CKEDITOR.plugins.setLang("specialchar","de-ch",{euro:"Euro-Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen", +not:"Not-Zeichen",reg:"Registriert-Zeichen",macr:"Längezeichen",deg:"Grad-Zeichen",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Mikro-Zeichen",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit Accent grave",Aacute:"Lateinischer Buchstabe A mit Akutakzent", +Acirc:"Lateinischer Buchstabe A mit Zirkumflex",Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit Accent grave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit Accent grave",Iacute:"Lateinischer Buchstabe I mit Akutakzent", +Icirc:"Lateinischer Buchstabe I mit Zirkumflex",Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit Accent grave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Accent grave", +Uacute:"Lateinischer Buchstabe U mit Akutakzent",Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfem s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema", aring:"Kleiner lateinischer Buchstabe a mit Ring oben",aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex", iuml:"Kleiner lateinischer Buchstabe i mit Trema",eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave", uacute:"Kleiner lateinischer Buchstabe u mit Akut",ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js index 9373218d05a..8519b532ee2 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js index 8f23000e581..aa1843c5c86 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας ευθύγραμμων εισαγωγικών",rdquo:"Δεξιός χαρακτήρας ευθύγραμμων εισαγωγικών",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-au.js index 3bba46bef39..2c03bce69cd 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-au.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-au.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","en-au",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js index babe6216f64..ca807e43694 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","en-ca",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js index 4853b56d53b..e6b649ffd4e 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js index d06f12bb84a..b5d78fd40a6 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js index f64714b2ec5..7c26ff97892 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js index 0e3b429c29d..44aef0dd83b 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","es-mx",{euro:"Signo de Euro",lsquo:"Comillas simple izquierda",rsquo:"Comillas simple derecha",ldquo:"Comillas dobles izquierda",rdquo:"Comillas dobles derecha",ndash:"Guión corto",mdash:"Guión largo",iexcl:"Signo de exclamación invertido",cent:"Signo de centavo",pound:"Signo de Libra",curren:"Signo de moneda",yen:"Signo de Yen",brvbar:"Barra rota",sect:"Signo de la sección",uml:"Diéresis",copy:"Signo de Derechos reservados",ordf:"Indicador ordinal femenino", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js index 54d0d29edf9..2d90d98a81b 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js index 4e06ffca0a3..04e8dfcdd5c 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Naissoost järjestuse märk",laquo:"Alustav kahekordne nurk jutumärk",not:"Ei-märk", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eu.js index d49fca75eed..aed5e196afa 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eu.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eu.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","eu",{euro:"Euro zeinua",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Libera zeinua",curren:"Currency sign",yen:"Yen zeinua",brvbar:"Broken bar",sect:"Section sign",uml:"Dieresia",copy:"Copyright zeinua",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js index 92112b17adf..257f89c6407 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js index 8d61ad3c734..acd0285b746 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js index 07ed4ea8cdd..54ec8009196 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js index 2bf4d8e99b9..38974037985 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret demi-cadratin",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole cent",pound:"Symbole Livre sterling",curren:"Symbole monétaire",yen:"Symbole yen",brvbar:"Barre verticale scindée",sect:"Signe de section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js index 75aced81531..4708165a75a 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js index 2514bbddc64..6f0c7e039dc 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js index 6a8139008cd..9cf926d731e 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Ženska redna oznaka",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js index b5e8c2c5173..cccdca33af3 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js index b90e48ede7e..d88fdff141e 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -1,13 +1,13 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ -CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Tanda kutip tunggal kiri",rsquo:"Tanda kutip tunggal kanan",ldquo:"Tanda kutip ganda kiri",rdquo:"Tanda kutip ganda kanan",ndash:"Tanda hubung",mdash:"Sisipan",iexcl:"Tanda seru terbalik",cent:"Tanda cent",pound:"Tanda pound",curren:"Tanda mata uang",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Penanda bagian",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Indikator ordinal feminin",laquo:"Tanda kutip sudut ganda mengarah ke kiri",not:"Bukan tanda", +reg:"Tanda Telah Terdaftar",macr:"Garis makron",deg:"Tanda derajat",sup2:"Superskrip dua",sup3:"Superskrip tiga",acute:"Aksen akut",micro:"Tanda mikro",para:"Tanda Pilcrow",middot:"Titik tengah",cedil:"Cedilla",sup1:"Superskrip satu",ordm:"Indikator ordinal maskulin",raquo:"Tanda kutip sudut ganda menunjuk ke kanan",frac14:"Bilangan Pecahan seperempat",frac12:"Bilangan Pecahan setengah",frac34:"Bilangan Pecahan tigaperempat",iquest:"Tanda baca terbalik",Agrave:"Huruf kapital Latin A dengan aksen grave", +Aacute:"Huruf kapital Latin A dengan aksen acute",Acirc:"Huruf kapital Latin A dengan circumflex",Atilde:"Huruf kapital Latin A dengan tilde",Auml:"Huruf kapital Latin A dengan diaeresis",Aring:"Huruf kapital Latin A dengan cincin di atas",AElig:"huruf kapital latin Æ",Ccedil:"Huruf kapital latin C dengan cedilla",Egrave:"Huruf kapital Latin E dengan aksen grave",Eacute:"Huruf kapital Latin E dengan aksen acute",Ecirc:"Huruf kapital Latin E dengan circumflex",Euml:"Latin capital letter E with diaeresis", +Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", +times:"Tanda perkalian",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex", +atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex", +iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Tanda bagi",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", +uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js index a59329614d6..ab291bd853e 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js index 4fdda60fd00..cccb9dfffa6 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js index a9d2c34fbbb..7845bde63d6 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ko.js index 89f0cf92221..0800139d0d0 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ko.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ko.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ko",{euro:"유로화 기호",lsquo:"왼쪽 외 따옴표",rsquo:"오른쪽 외 따옴표",ldquo:"왼쪽 쌍 따옴표",rdquo:"오른쪽 쌍 따옴표",ndash:"반각 대시",mdash:"전각 대시",iexcl:"반전된 느낌표",cent:"센트 기호",pound:"파운드화 기호",curren:"커런시 기호",yen:"위안화 기호",brvbar:"파선",sect:"섹션 기호",uml:"분음 부호",copy:"저작권 기호",ordf:"Feminine ordinal indicator",laquo:"왼쪽 쌍꺽쇠 인용 부호",not:"금지 기호",reg:"등록 기호",macr:"장음 기호",deg:"도 기호",sup2:"위첨자 2",sup3:"위첨자 3",acute:"양음 악센트 부호",micro:"마이크로 기호",para:"단락 기호",middot:"가운데 점",cedil:"세디유",sup1:"위첨자 1",ordm:"Masculine ordinal indicator", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js index 685c66929fb..a8a7d7f1627 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lt.js index 262c938a9ae..8fbf8d70900 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lt.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lt.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","lt",{euro:"Euro ženklas",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cento ženklas",pound:"Svaro ženklas",curren:"Valiutos ženklas",yen:"Jenos ženklas",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js index d19268a008b..1ac0378e4cd 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js index 1de7165a7f4..9f3d75b8c42 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js index c934128a067..e32d9858158 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js index 010be984b1e..7b73e3e9ca4 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/oc.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/oc.js index 52fdbe21b0c..5a51193a908 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/oc.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/oc.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","oc",{euro:"Simbòl èuro",lsquo:"Vergueta simpla dobrenta",rsquo:"Vergueta simpla tampanta",ldquo:"Vergueta dobla dobrenta",rdquo:"Vergueta dobla tampanta",ndash:"Jonhent semi-quadratin",mdash:"Jonhent quadratin",iexcl:"Punt d'exclamacion inversat",cent:"Simbòl cent",pound:"Simbòl Liura sterling",curren:"Simbòl monetari",yen:"Simbòl ièn",brvbar:"Barra verticala separada",sect:"Signe de seccion",uml:"Trèma",copy:"Simbòl Copyright",ordf:"Indicador ordinal femenin", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js index 98d73bd12f4..35ee2ee6bc9 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js index 7b7b6e483c8..7cb124b4d8a 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js index 125f29b611a..966e9508adc 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo de Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão simples",mdash:"Travessão longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo de cêntimo",pound:"Símbolo de Libra",curren:"Símbolo de Moeda",yen:"Símbolo de Iene",brvbar:"Barra quebrada",sect:"Símbolo de secção",uml:"Trema",copy:"Símbolo de direitos de autor",ordf:"Indicador ordinal feminino",laquo:"Aspa esquerda ângulo duplo", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ro.js index 38209aa3896..3441ddfa476 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ro.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ro.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ro",{euro:"Simbol EURO €",lsquo:"Ghilimea simplă stânga",rsquo:"Ghilimea simplă dreapta",ldquo:"Ghilimea dublă stânga",rdquo:"Ghilimea dublă dreapta",ndash:"liniuță despărțire cu spații",mdash:"liniuță despărțire cuvinte fără spații",iexcl:"semnul exclamației inversat",cent:"simbol cent",pound:"simbol lira sterlină",curren:"simbol monedă",yen:"simbol yen",brvbar:"bara verticală întreruptă",sect:"simbol paragraf",uml:"tréma",copy:"simbol drept de autor",ordf:"Indicatorul ordinal feminin a superscript", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js index 5c0559b519e..292dfe4739f 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js index b3df79fb0b5..e2524473bab 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js index 93a910192a5..2e51979a88b 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js index f544d36b662..be829056119 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Znak za evro",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"Pomišljaj",mdash:"Dolgi pomišljaj",iexcl:"Obrnjen klicaj",cent:"Znak za cent",pound:"Znak za funt",curren:"Znak valute",yen:"Znak za jen",brvbar:"Zlomljena črta",sect:"Znak za člen",uml:"Diereza",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi dvojni lomljeni narekovaj",not:"Znak za ne", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js index 14a1a339d5f..9a2aaa8ae51 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Tregues rendor femror",laquo:"Thonjëz me dy kënde e kthyer majtas", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js index 789d280d307..b8a24741a70 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","sr-latn",{euro:"Znak eura",lsquo:"Levi simpli znak navoda",rsquo:"Desni simpli znak navoda",ldquo:"Levi dupli znak navoda",rdquo:"Desni dupli znak navoda",ndash:"Kratka crtica",mdash:"Dugačka crtica",iexcl:"Obrnuti uzvičnik",cent:"Znak za cent",pound:"Znak za funtе",curren:"Znak za valutu",yen:"Znak za jenа",brvbar:"Traka sa prekidom",sect:"Znak paragrafa",uml:"Umlaut",copy:"Znak za autorsko pravo",ordf:"Ženski redni indikator",laquo:"Dupla strelica levo",not:"Bez znaka", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr.js index 3364448a1e4..27d6229fb46 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sr.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","sr",{euro:"Знак еура",lsquo:"Леви симпли знак навода",rsquo:"Десни симпли знак навода",ldquo:"Леви дупли знак навода",rdquo:"Десни дупли знак навода",ndash:"Кратка цртица",mdash:"Дугачка цртица",iexcl:"Обрнути узвичник",cent:"Знак цент",pound:"Знак фунте",curren:"Знак валуте",yen:"Знак јена",brvbar:"Трака са прекидом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак ауторско право",ordf:"Женски редни индикатор",laquo:"Дупла стрелица лево",not:"Без знака",reg:"Регистровани знак", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js index 7d0fbc389be..3a44aa2a205 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js index 5edb8d1a42c..4ed9ad93c50 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js index bc368dfebf9..73c34eeecd1 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tt.js index 1cff50350bc..3c3f13291fe 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tt.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tt.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Параграф билгесе",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js index b7d1c1d610e..3929c61da89 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js index d1f95d10d65..d99c4b70e17 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js index e135b331685..775516f7b6c 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js index ad19c2e20eb..f57e3dfab3c 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js index cfadf205dbb..fbcdb3621a4 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"破折號",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"微",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"二分之一符號",frac34:"四分之三符號", diff --git a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js index 2f19c856048..f93434466ef 100644 --- a/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js +++ b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -1,14 +1,14 @@ /* - Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + 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 */ -CKEDITOR.dialog.add("specialchar",function(k){var e,n=k.lang.specialchar,m=function(c){var b;c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);"a"==c.getName()&&(b=c.getChild(0).getHtml())&&(c.removeClass("cke_light_background"),e.hide(),c=k.document.createElement("span"),c.setHtml(b),k.insertText(c.getText()))},p=CKEDITOR.tools.addFunction(m),l,g=function(c,b){var a;b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){l&&d(null,l); -var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");l=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml("\x26nbsp;"),e.getContentElement("info","htmlPreview").getElement().setHtml("\x26nbsp;"),b.getParent().removeClass("cke_light_background"), -l=void 0)},q=CKEDITOR.tools.addFunction(function(c){c=new CKEDITOR.dom.event(c);var b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==k.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:(a=b.getParent().getParent().getNext())&&(a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type&&(a.focus(),d(null,b),g(null,a));c.preventDefault();break;case 32:m({data:c});c.preventDefault(); -break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): -d(null,b)}});return{title:n.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=k.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=['\x3ctable role\x3d"listbox" aria-labelledby\x3d"'+a+'" style\x3d"width: 320px; height: 100%; border-collapse: separate;" align\x3d"center" cellspacing\x3d"2" cellpadding\x3d"2" border\x3d"0"\x3e'],d=0,g=b.length,h,e;dp&&(p=f)}return p}function t(a){return function(){var f=this.getValue(),f=!!(CKEDITOR.dialog.validate.integer().call(this,f)&&0r.getSize("width")?"100%":500:0,getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1", -a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("width",this.getValue())},setup:function(a){a=a.getStyle("width");this.setValue(a)},commit:n}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1", -a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:n}]},{type:"html",html:"\x26nbsp;"},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing), -setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing",this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a, -d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right",html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0p&&(p=f)}return p}function t(a){return function(){var f=this.getValue(),f=!!(CKEDITOR.dialog.validate.integer().call(this,f)&&0r.getSize("width")?"100%":500:0,getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("width",this.getValue())},setup:function(a){a=a.getStyle("width");this.setValue(a)},commit:n}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em", +label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:n}]},{type:"html",html:"\x26nbsp;"},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]", +controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,e){this.getValue()?e.setAttribute("cellSpacing",this.getValue()):e.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")? +1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,e){this.getValue()?e.setAttribute("cellPadding",this.getValue()):e.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right",html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0=m/2?h[2].children.push(a):h[0].children.push(a)});CKEDITOR.tools.array.forEach(h,function(a){a.isSpacer||(a=a.children,a[a.length-1].isSpacer&&a.pop())});return{title:c.title,minWidth:1===h.length?205:410,minHeight:50,contents:[{id:"info",label:c.title,accessKey:"I",elements:[{type:"hbox",widths:1===h.length?["100%"]:["40%","5%","40%"],children:h}]}],onShow:function(){this.cells= -CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d=m/2?g[2].children.push(a):g[0].children.push(a)});CKEDITOR.tools.array.forEach(g,function(a){a.isSpacer||(a=a.children,a[a.length-1].isSpacer&&a.pop())});return{title:d.title,minWidth:1===g.length?205:410,minHeight:50,contents:[{id:"info",label:d.title,accessKey:"I",elements:[{type:"hbox",widths:1===g.length?["100%"]:["40%","5%","40%"],children:g}]}],getModel:function(a){return CKEDITOR.plugins.tabletools.getSelectedCells(a.getSelection())},onShow:function(){var a=this.getModel(this.getParentEditor()); +this.setupContent(a)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.getParentEditor(),d=this.getModel(c),e=0;ea.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px} \ No newline at end of file +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css index 4a9d1b9adda..bbc2fea5696 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css index 625d1349b8a..8627bc8b458 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button{min-height:18px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{min-height:18px}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus{padding-top:4px;padding-bottom:2px}select.cke_dialog_ui_input_select{width:100%!important}select.cke_dialog_ui_input_select:focus{margin-left:1px;width:100%!important;padding-top:2px;padding-bottom:2px} \ No newline at end of file +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button{min-height:18px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{min-height:18px}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus{padding-top:4px;padding-bottom:2px}select.cke_dialog_ui_input_select{width:100%!important}select.cke_dialog_ui_input_select:focus{margin-left:1px;width:100%!important;padding-top:2px;padding-bottom:2px} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css index c634bfae056..a9a450db99a 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor.css index d6f888e9831..f706e84427d 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -504px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -528px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -552px !important;}.cke_button__replace_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -576px !important;}.cke_button__flash_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2016px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2040px !important;}.cke_rtl .cke_button__sourcedialog_icon, .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2064px !important;}.cke_ltr .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2088px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2016px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2040px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2064px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2088px !important;background-size: 16px !important;} \ No newline at end of file +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all select[multiple] option:checked{background-color:#cecece}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -504px !important;}.cke_button__exportpdf_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -528px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -552px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -576px !important;}.cke_button__replace_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__exportpdf_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css index ac2bc8c3290..b9080ae9529 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -504px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -528px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -552px !important;}.cke_button__replace_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -576px !important;}.cke_button__flash_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2016px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2040px !important;}.cke_rtl .cke_button__sourcedialog_icon, .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2064px !important;}.cke_ltr .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2088px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2016px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2040px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2064px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2088px !important;background-size: 16px !important;} \ No newline at end of file +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all select[multiple] option:checked{background-color:#cecece}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -504px !important;}.cke_button__exportpdf_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -528px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -552px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -576px !important;}.cke_button__replace_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__exportpdf_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie.css index d4d1e68c6af..b5797adf434 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -504px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -528px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -552px !important;}.cke_button__replace_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -576px !important;}.cke_button__flash_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2016px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2040px !important;}.cke_rtl .cke_button__sourcedialog_icon, .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2064px !important;}.cke_ltr .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2088px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2016px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2040px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2064px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2088px !important;background-size: 16px !important;} \ No newline at end of file +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all select[multiple] option:checked{background-color:#cecece}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -504px !important;}.cke_button__exportpdf_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -528px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -552px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -576px !important;}.cke_button__replace_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__exportpdf_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css index 7f1f2167a7b..acf8132314e 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbar{position:relative}.cke_rtl .cke_toolbar_end{right:auto;left:0}.cke_toolbar_end:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:1px;right:2px}.cke_rtl .cke_toolbar_end:after{right:auto;left:2px}.cke_hc .cke_toolbar_end:after{top:2px;right:5px;border-color:#000}.cke_hc.cke_rtl .cke_toolbar_end:after{right:auto;left:5px}.cke_combo+.cke_toolbar_end:after,.cke_toolbar.cke_toolbar_last .cke_toolbar_end:after{content:none;border:0}.cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:0}.cke_rtl .cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:auto;left:0}.cke_button__about_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -504px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -528px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -552px !important;}.cke_button__replace_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -576px !important;}.cke_button__flash_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2016px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2040px !important;}.cke_rtl .cke_button__sourcedialog_icon, .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2064px !important;}.cke_ltr .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2088px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2016px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2040px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2064px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2088px !important;background-size: 16px !important;} \ No newline at end of file +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all select[multiple] option:checked{background-color:#cecece}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbar{position:relative}.cke_rtl .cke_toolbar_end{right:auto;left:0}.cke_toolbar_end:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:1px;right:2px}.cke_rtl .cke_toolbar_end:after{right:auto;left:2px}.cke_hc .cke_toolbar_end:after{top:2px;right:5px;border-color:#000}.cke_hc.cke_rtl .cke_toolbar_end:after{right:auto;left:5px}.cke_combo+.cke_toolbar_end:after,.cke_toolbar.cke_toolbar_last .cke_toolbar_end:after{content:none;border:0}.cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:0}.cke_rtl .cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:auto;left:0}.cke_button__about_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -504px !important;}.cke_button__exportpdf_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -528px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -552px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -576px !important;}.cke_button__replace_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__exportpdf_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css index 6a94fa6a3c6..e383bb7cb82 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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 */ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -504px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -528px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -552px !important;}.cke_button__replace_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -576px !important;}.cke_button__flash_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2016px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2040px !important;}.cke_rtl .cke_button__sourcedialog_icon, .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2064px !important;}.cke_ltr .cke_button__sourcedialog_icon {background: url(icons.png?t=64749bb245) no-repeat 0 -2088px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2016px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2040px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2064px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon {background: url(icons_hidpi.png?t=64749bb245) no-repeat 0 -2088px !important;background-size: 16px !important;} \ No newline at end of file +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all select[multiple] option:checked{background-color:#cecece}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -456px !important;}.cke_button__copyformatting_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -480px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -504px !important;}.cke_button__exportpdf_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -528px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -552px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -576px !important;}.cke_button__replace_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -600px !important;}.cke_button__button_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -624px !important;}.cke_button__checkbox_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -648px !important;}.cke_button__form_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -672px !important;}.cke_button__hiddenfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -696px !important;}.cke_button__imagebutton_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -720px !important;}.cke_button__radio_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -744px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -768px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -840px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -864px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -888px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -912px !important;}.cke_button__iframe_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -936px !important;}.cke_button__image_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1008px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1032px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1056px !important;}.cke_button__smiley_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1080px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1104px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1128px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1152px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1176px !important;}.cke_button__language_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1200px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1224px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1248px !important;}.cke_button__link_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1272px !important;}.cke_button__unlink_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1368px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1392px !important;}.cke_button__maximize_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1416px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1440px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1464px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1488px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1512px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1536px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1560px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1584px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1608px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1632px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1656px !important;}.cke_button__print_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1680px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1704px !important;}.cke_button__save_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1728px !important;}.cke_button__selectall_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1752px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1776px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1800px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1824px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1848px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1872px !important;}.cke_button__scayt_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1896px !important;}.cke_button__table_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1920px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1944px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1968px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -1992px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=5fe059002f) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__copyformatting_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__exportpdf_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=5fe059002f) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons.png b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons.png index 8cd0b9b72cf..b2f6d6d634c 100644 Binary files a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons.png and b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons.png differ diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png index 185b9918826..bc5403c2569 100644 Binary files a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png and b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png differ diff --git a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/readme.md b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/readme.md index 76d1e72727b..dc2b1440f8b 100644 --- a/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/readme.md +++ b/htdocs/includes/ckeditor/ckeditor/skins/moono-lisa/readme.md @@ -41,6 +41,6 @@ Other parts: License ------- -Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. +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](https://ckeditor.com/legal/ckeditor-oss-license) diff --git a/htdocs/includes/ckeditor/ckeditor/styles.js b/htdocs/includes/ckeditor/ckeditor/styles.js index 69b040ab23b..8682bcb4646 100644 --- a/htdocs/includes/ckeditor/ckeditor/styles.js +++ b/htdocs/includes/ckeditor/ckeditor/styles.js @@ -1,5 +1,5 @@ /** - * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. + * 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 */ 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:"
    '; - print img_picto(($pos > 0 ? $langs->trans("MoveField", $pos) : ''), 'grip_title', 'class="boxhandle" style="cursor:move;"'); print ''; print $langs->trans("NoFields"); print '
    '; print ' '; print '
    '; // The image must have the class 'boxhandle' beause it's value used in DOM draggable objects to define the area used to catch the full object - print img_picto($langs->trans("MoveField", $pos), 'grip_title', 'class="boxhandle" style="cursor:move;"'); + //print img_picto($langs->trans("MoveField", $pos), 'grip_title', 'class="boxhandle" style="cursor:move;"'); + print img_picto($langs->trans("Column").' '.num2Alpha($pos - 1), 'file', 'class="pictofixedwith"'); print ''; - print $langs->trans("Field").' '.$pos; - $example = $fieldssource[$pos]['example1']; + if (isset($fieldssource[$pos]['imported']) && $fieldssource[$pos]['imported'] == false) { + print ''; + } else { + print ''; + } + print $langs->trans("Column").' '.num2Alpha($pos - 1).' (#'.$pos.')'; + if (empty($fieldssource[$pos]['example1'])) { + $example = $fieldssource[$pos]['label']; + } else { + $example = $fieldssource[$pos]['example1']; + } if ($example) { if (!utf8_check($example)) { $example = utf8_encode($example); } - print ' ('.$example.')'; + print ' - '; + //print ''.$langs->trans("ExampleOnFirstLine").': '; + print ''.$example.''; } 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("
      @@ -178,7 +178,7 @@ if (!empty($force_install_noedit)) { $dolibarr_main_data_root = @$force_install_main_data_root; } if (empty($dolibarr_main_data_root)) { - $dolibarr_main_data_root = GETPOSTISSET('main_data_dir', 'alpha') ? GETPOST('main_data_dir') : detect_dolibarr_main_data_root($dolibarr_main_document_root); + $dolibarr_main_data_root = GETPOSTISSET('main_data_dir') ? GETPOST('main_data_dir') : detect_dolibarr_main_data_root($dolibarr_main_document_root); } ?> @@ -207,7 +207,7 @@ if (!empty($force_install_noedit)) {
    trans("CheckToCreateDatabase"); ?> + + trans("CheckToCreateDatabase"); ?>
    trans("CheckToCreateUser"); ?> + + trans("CheckToCreateUser"); ?>
    '; @@ -61,7 +67,9 @@ print ''; print '
    '; -print '

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

    '.$langs->trans("SomeTranslationAreUncomplete").''; // If there's no error, we display the next step button if ($err == 0) { diff --git a/htdocs/install/mysql/data/llx_00_c_country.sql b/htdocs/install/mysql/data/llx_00_c_country.sql index 61b3f346b39..d8c193bce19 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 @@ -89,21 +89,21 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (58 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 (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','République centrafricaine',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','Chili',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','République démocratique du 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','Croatie',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); @@ -138,17 +138,17 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (10 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 (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','Indonésie',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','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 (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); @@ -167,7 +167,7 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (13 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 (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); diff --git a/htdocs/install/mysql/data/llx_10_c_regions.sql b/htdocs/install/mysql/data/llx_10_c_regions.sql index 368b6d9dccf..ffd02aa9cf9 100644 --- a/htdocs/install/mysql/data/llx_10_c_regions.sql +++ b/htdocs/install/mysql/data/llx_10_c_regions.sql @@ -146,6 +146,27 @@ INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 5 INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 56, 5601, '', 0, 'Brasil'); +-- Burundi Regions (id country=61) -- https://fr.wikipedia.org/wiki/Provinces_du_Burundi +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6101, '', 0, 'Bubanza'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6102, '', 0, 'Bujumbura Mairie'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6103, '', 0, 'Bujumbura Rural'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6104, '', 0, 'Bururi'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6105, '', 0, 'Cankuzo'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6106, '', 0, 'Cibitoke'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6107, '', 0, 'Gitega'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6108, '', 0, 'Karuzi'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6109, '', 0, 'Kayanza'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6110, '', 0, 'Kirundo'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6111, '', 0, 'Makamba'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6112, '', 0, 'Muramvya'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6113, '', 0, 'Muyinga'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6114, '', 0, 'Mwaro'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6115, '', 0, 'Ngozi'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6116, '', 0, 'Rumonge'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6117, '', 0, 'Rutana'); +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ( 61, 6118, '', 0, 'Ruyigi'); + + -- Canada Region (id country=14) INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 14, 1401, '', 0, 'Canada'); @@ -512,3 +533,5 @@ INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 2 INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 232, 23208, '', 0, 'Nor-Oriental'); INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 232, 23209, '', 0, 'Zuliana'); +-- Japan Region (id country=123) +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) values ( 123, 12301, '', 0,'日本'); diff --git a/htdocs/install/mysql/data/llx_20_c_departements.sql b/htdocs/install/mysql/data/llx_20_c_departements.sql index a49d74b8a3a..b0ffb509c18 100644 --- a/htdocs/install/mysql/data/llx_20_c_departements.sql +++ b/htdocs/install/mysql/data/llx_20_c_departements.sql @@ -14,6 +14,7 @@ -- Copyright (C) 2015 Ferran Marcet -- Copyright (C) 2020-2021 Udo Tamm -- Copyright (C) 2022 Miro Sertić +-- Copyright (C) 2022 ButterflyOfFire -- -- License ---------------------------------------------------------------------- @@ -39,7 +40,9 @@ -- NOTES/CONTENT --------------------------------------------------------------- --- Departements/Cantons/Provinces/States +-- +-- Table of Content (TOC) +-- Departements/Cantons/Provinces/States: -- -- Algeria -- Andorra @@ -56,6 +59,7 @@ -- Croatia -- France -- Germany +-- Greece -- Honduras -- Hungary -- Italy @@ -80,58 +84,69 @@ -- 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) -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL01', '', 0, '', 'Wilaya d''Adrar'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL02', '', 0, '', 'Wilaya de Chlef'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL03', '', 0, '', 'Wilaya de Laghouat'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL04', '', 0, '', 'Wilaya d''Oum El Bouaghi'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL05', '', 0, '', 'Wilaya de Batna'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL06', '', 0, '', 'Wilaya de Béjaïa'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL07', '', 0, '', 'Wilaya de Biskra'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL08', '', 0, '', 'Wilaya de Béchar'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL09', '', 0, '', 'Wilaya de Blida'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL10', '', 0, '', 'Wilaya de Bouira'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL11', '', 0, '', 'Wilaya de Tamanrasset'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL12', '', 0, '', 'Wilaya de Tébessa'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL13', '', 0, '', 'Wilaya de Tlemcen'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL14', '', 0, '', 'Wilaya de Tiaret'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL15', '', 0, '', 'Wilaya de Tizi Ouzou'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL16', '', 0, '', 'Wilaya d''Alger'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL17', '', 0, '', 'Wilaya de Djelfa'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL18', '', 0, '', 'Wilaya de Jijel'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL19', '', 0, '', 'Wilaya de Sétif'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL20', '', 0, '', 'Wilaya de Saïda'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL21', '', 0, '', 'Wilaya de Skikda'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL22', '', 0, '', 'Wilaya de Sidi Bel Abbès'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL23', '', 0, '', 'Wilaya d''Annaba'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL24', '', 0, '', 'Wilaya de Guelma'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL25', '', 0, '', 'Wilaya de Constantine'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL26', '', 0, '', 'Wilaya de Médéa'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL27', '', 0, '', 'Wilaya de Mostaganem'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL28', '', 0, '', 'Wilaya de M''Sila'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL29', '', 0, '', 'Wilaya de Mascara'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL30', '', 0, '', 'Wilaya d''Ouargla'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL31', '', 0, '', 'Wilaya d''Oran'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL32', '', 0, '', 'Wilaya d''El Bayadh'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL33', '', 0, '', 'Wilaya d''Illizi'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL34', '', 0, '', 'Wilaya de Bordj Bou Arreridj'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL35', '', 0, '', 'Wilaya de Boumerdès'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL36', '', 0, '', 'Wilaya d''El Tarf'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL37', '', 0, '', 'Wilaya de Tindouf'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL38', '', 0, '', 'Wilaya de Tissemsilt'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL39', '', 0, '', 'Wilaya d''El Oued'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL40', '', 0, '', 'Wilaya de Khenchela'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL41', '', 0, '', 'Wilaya de Souk Ahras'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL42', '', 0, '', 'Wilaya de Tipaza'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL43', '', 0, '', 'Wilaya de Mila'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL44', '', 0, '', 'Wilaya d''Aïn Defla'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL45', '', 0, '', 'Wilaya de Naâma'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL46', '', 0, '', 'Wilaya d''Aïn Témouchent'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL47', '', 0, '', 'Wilaya de Ghardaia'); -INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, 'AL48', '', 0, '', 'Wilaya de Relizane'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '01', '', 0, '', 'Adrar'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '02', '', 0, '', 'Chlef'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '03', '', 0, '', 'Laghouat'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '04', '', 0, '', 'Oum El Bouaghi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '05', '', 0, '', 'Batna'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '06', '', 0, '', 'Béjaïa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '07', '', 0, '', 'Biskra'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '08', '', 0, '', 'Béchar'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '09', '', 0, '', 'Blida'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '10', '', 0, '', 'Bouira'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '11', '', 0, '', 'Tamanrasset'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '12', '', 0, '', 'Tébessa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '13', '', 0, '', 'Tlemcen'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '14', '', 0, '', 'Tiaret'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '15', '', 0, '', 'Tizi Ouzou'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '16', '', 0, '', 'Alger'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '17', '', 0, '', 'Djelfa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '18', '', 0, '', 'Jijel'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '19', '', 0, '', 'Sétif'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '20', '', 0, '', 'Saïda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '21', '', 0, '', 'Skikda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '22', '', 0, '', 'Sidi Bel Abbès'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '23', '', 0, '', 'Annaba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '24', '', 0, '', 'Guelma'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '25', '', 0, '', 'Constantine'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '26', '', 0, '', 'Médéa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '27', '', 0, '', 'Mostaganem'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '28', '', 0, '', 'M''Sila'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '29', '', 0, '', 'Mascara'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '30', '', 0, '', 'Ouargla'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '31', '', 0, '', 'Oran'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '32', '', 0, '', 'El Bayadh'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '33', '', 0, '', 'Illizi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '34', '', 0, '', 'Bordj Bou Arreridj'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '35', '', 0, '', 'Boumerdès'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '36', '', 0, '', 'El Tarf'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '37', '', 0, '', 'Tindouf'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '38', '', 0, '', 'Tissemsilt'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '39', '', 0, '', 'El Oued'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '40', '', 0, '', 'Khenchela'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '41', '', 0, '', 'Souk Ahras'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '42', '', 0, '', 'Tipaza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '43', '', 0, '', 'Mila'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '44', '', 0, '', 'Aïn Defla'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '45', '', 0, '', 'Naâma'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '46', '', 0, '', 'Aïn Témouchent'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '47', '', 0, '', 'Ghardaïa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '48', '', 0, '', 'Relizane'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '49', '', 0, '', 'Timimoun'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '50', '', 0, '', 'Bordj Badji Mokhtar'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '51', '', 0, '', 'Ouled Djellal'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '52', '', 0, '', 'Béni Abbès'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '53', '', 0, '', 'In Salah'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '54', '', 0, '', 'In Guezzam'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '55', '', 0, '', 'Touggourt'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '56', '', 0, '', 'Djanet'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '57', '', 0, '', 'El M''Ghair'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (1301, '58', '', 0, '', 'El Ménéa'); -- Andorra Parròquies (id country=34) @@ -529,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'); @@ -1261,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) @@ -1430,77 +1515,6 @@ 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); @@ -1759,6 +1773,127 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('VE-S', 23209, '', 0, 'VE-S', 'Táchira', 1); +-- Burundi Communes (id country=61) -- https://fr.wikipedia.org/wiki/Communes_du_Burundi +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6101, 'BI0001', '', 0, '', 'Bubanza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6101, 'BI0002', '', 0, '', 'Gihanga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6101, 'BI0003', '', 0, '', 'Musigati'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6101, 'BI0004', '', 0, '', 'Mpanda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6101, 'BI0005', '', 0, '', 'Rugazi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6102, 'BI0006', '', 0, '', 'Muha'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6102, 'BI0007', '', 0, '', 'Mukaza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6102, 'BI0008', '', 0, '', 'Ntahangwa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0009', '', 0, '', 'Isale'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0010', '', 0, '', 'Kabezi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0011', '', 0, '', 'Kanyosha'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0012', '', 0, '', 'Mubimbi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0013', '', 0, '', 'Mugongomanga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0014', '', 0, '', 'Mukike'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0015', '', 0, '', 'Mutambu'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0016', '', 0, '', 'Mutimbuzi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6103, 'BI0017', '', 0, '', 'Nyabiraba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6104, 'BI0018', '', 0, '', 'Bururi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6104, 'BI0019', '', 0, '', 'Matana'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6104, 'BI0020', '', 0, '', 'Mugamba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6104, 'BI0021', '', 0, '', 'Rutovu'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6104, 'BI0022', '', 0, '', 'Songa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6104, 'BI0023', '', 0, '', 'Vyanda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6105, 'BI0024', '', 0, '', 'Cankuzo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6105, 'BI0025', '', 0, '', 'Cendajuru'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6105, 'BI0026', '', 0, '', 'Gisagara'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6105, 'BI0027', '', 0, '', 'Kigamba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6105, 'BI0028', '', 0, '', 'Mishiha'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6106, 'BI0029', '', 0, '', 'Buganda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6106, 'BI0030', '', 0, '', 'Bukinanyana'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6106, 'BI0031', '', 0, '', 'Mabayi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6106, 'BI0032', '', 0, '', 'Mugina'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6106, 'BI0033', '', 0, '', 'Murwi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6106, 'BI0034', '', 0, '', 'Rugombo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0035', '', 0, '', 'Bugendana'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0036', '', 0, '', 'Bukirasazi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0037', '', 0, '', 'Buraza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0038', '', 0, '', 'Giheta'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0039', '', 0, '', 'Gishubi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0040', '', 0, '', 'Gitega'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0041', '', 0, '', 'Itaba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0042', '', 0, '', 'Makebuko'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0043', '', 0, '', 'Mutaho'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0044', '', 0, '', 'Nyanrusange'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6107, 'BI0045', '', 0, '', 'Ryansoro'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0046', '', 0, '', 'Bugenyuzi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0047', '', 0, '', 'Buhiga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0048', '', 0, '', 'Gihogazi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0049', '', 0, '', 'Gitaramuka'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0050', '', 0, '', 'Mutumba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0051', '', 0, '', 'Nyabikere'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6108, 'BI0052', '', 0, '', 'Shombo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0053', '', 0, '', 'Butaganzwa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0054', '', 0, '', 'Gahombo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0055', '', 0, '', 'Gatara'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0056', '', 0, '', 'Kabarore'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0057', '', 0, '', 'Kayanza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0058', '', 0, '', 'Matongo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0059', '', 0, '', 'Muhanga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0060', '', 0, '', 'Muruta'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6109, 'BI0061', '', 0, '', 'Rango'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0062', '', 0, '', 'Bugabira'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0063', '', 0, '', 'Busoni'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0064', '', 0, '', 'Bwambarangwe'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0065', '', 0, '', 'Gitobe'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0066', '', 0, '', 'Kirundo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0067', '', 0, '', 'Ntega'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6110, 'BI0068', '', 0, '', 'Vumbi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6111, 'BI0069', '', 0, '', 'Kayogoro'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6111, 'BI0070', '', 0, '', 'Kibago'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6111, 'BI0071', '', 0, '', 'Mabanda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6111, 'BI0072', '', 0, '', 'Makamba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6111, 'BI0073', '', 0, '', 'Nyanza-Lac'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6111, 'BI0074', '', 0, '', 'Vugizo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6112, 'BI0075', '', 0, '', 'Bukeye'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6112, 'BI0076', '', 0, '', 'Kiganda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6112, 'BI0077', '', 0, '', 'Mbuye'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6112, 'BI0078', '', 0, '', 'Muramvya'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6112, 'BI0079', '', 0, '', 'Rutegama'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0080', '', 0, '', 'Buhinyuza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0081', '', 0, '', 'Butihinda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0082', '', 0, '', 'Gashoho'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0083', '', 0, '', 'Gasorwe'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0084', '', 0, '', 'Giteranyi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0085', '', 0, '', 'Muyinga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6113, 'BI0086', '', 0, '', 'Mwakiro'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6114, 'BI0087', '', 0, '', 'Bisoro'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6114, 'BI0088', '', 0, '', 'Gisozi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6114, 'BI0089', '', 0, '', 'Kayokwe'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6114, 'BI0090', '', 0, '', 'Ndava'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6114, 'BI0091', '', 0, '', 'Nyabihanga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6114, 'BI0092', '', 0, '', 'Rusaka'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0093', '', 0, '', 'Busiga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0094', '', 0, '', 'Gashikanwa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0095', '', 0, '', 'Kiremba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0096', '', 0, '', 'Marangara'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0097', '', 0, '', 'Mwumba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0098', '', 0, '', 'Ngozi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0099', '', 0, '', 'Nyamurenza'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0100', '', 0, '', 'Ruhororo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6115, 'BI0101', '', 0, '', 'Tangara'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6116, 'BI0102', '', 0, '', 'Bugarama'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6116, 'BI0103', '', 0, '', 'Burambi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6116, 'BI0104', '', 0, '', 'Buyengero'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6116, 'BI0105', '', 0, '', 'Muhuta'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6116, 'BI0106', '', 0, '', 'Rumonge'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6117, 'BI0107', '', 0, '', 'Bukemba'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6117, 'BI0108', '', 0, '', 'Giharo'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6117, 'BI0109', '', 0, '', 'Gitanga'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6117, 'BI0110', '', 0, '', 'Mpinga-Kayove'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6117, 'BI0111', '', 0, '', 'Musongati'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6117, 'BI0112', '', 0, '', 'Rutana'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0113', '', 0, '', 'Butaganzwa'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0114', '', 0, '', 'Butezi'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0115', '', 0, '', 'Bweru'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0116', '', 0, '', 'Gisuru'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0117', '', 0, '', 'Kinyinya'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0118', '', 0, '', 'Nyabitsinda'); +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (6118, 'BI0119', '', 0, '', 'Ruyigi'); + -- Provinces United Arab Emirates (id country=227) INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AE-1', 22701, '', 0, '', 'Abu Dhabi'); INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AE-2', 22701, '', 0, '', 'Dubai'); @@ -1768,3 +1903,51 @@ 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-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 806d084ce85..8874fad0784 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 @@ -114,9 +114,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); @@ -176,8 +175,14 @@ INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUE -- Description of chart of account USA US-BASE INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES ( 11, 'US-BASE', 'USA basic chart of accounts', 1); +-- Description of chart of account USA US-GAAP-BASIC +INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES ( 11, 'US-GAAP-BASIC', 'USA GAAP basic chart of accounts', 1); + -- Description of chart of account Canada CA-ENG-BASE INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES ( 14, 'CA-ENG-BASE', 'Canadian basic chart of accounts - English', 1); -- 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 402e6893e6b..08cf24ec51a 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_at.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_at.sql @@ -22,324 +22,533 @@ -- Descriptif des plans comptables autrichiens standard -- ADD 4100000 to rowid # Do no remove this comment -- -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 1, 'AT-BASE','GROUP0','110','0','Patentrechte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 2, 'AT-BASE','GROUP0','120','0','Software'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 3, 'AT-BASE','GROUP0','121','0','ERP System'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 4, 'AT-BASE','GROUP0','122','0','Homepage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 5, 'AT-BASE','GROUP0','125','0','Software Fremdentwicklung_noch nicht aktivieren'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 6, 'AT-BASE','GROUP0','160','0','Umgründungsmehrwert'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 7, 'AT-BASE','GROUP0','250','0','Mieterinvestitionen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 8, 'AT-BASE','GROUP0','400','0','Maschinen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 9, 'AT-BASE','GROUP0','600','0','Betriebs u. Geschäftsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 10, 'AT-BASE','GROUP0','601','0','Ausstellungsstücke'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 11, 'AT-BASE','GROUP0','602','0','Leihstellungsstücke'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 12, 'AT-BASE','GROUP0','603','0','Getriebeprüfstand_hinten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 13, 'AT-BASE','GROUP0','604','0','Wuchtstand_links_AQ'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 14, 'AT-BASE','GROUP0','605','0','Messlabor(Messraum)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 15, 'AT-BASE','GROUP0','606','0','PAK-System'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 16, 'AT-BASE','GROUP0','607','0','Server'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 17, 'AT-BASE','GROUP0','608','0','EDV-Ausstattung (Hardware)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 18, 'AT-BASE','GROUP0','609','0','Werkstattausstattung (Werkzeug)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 19, 'AT-BASE','GROUP0','610','0','Wuchtprüfstand neu_noch nicht in Betrieb genommen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 20, 'AT-BASE','GROUP0','611','0','Messequipment/Ausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 21, 'AT-BASE','GROUP0','630','0','PKW'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 22, 'AT-BASE','GROUP0','640','0','LKW'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 23, 'AT-BASE','GROUP0','680','0','GWG-Geschäftsausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 24, 'AT-BASE','GROUP0','710','0','Anlagen in Bau'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 25, 'AT-BASE','GROUP1','1100','0','Rohstoffe'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 26, 'AT-BASE','GROUP1','1200','0','Bezogenen Teile'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 27, 'AT-BASE','GROUP1','1300','0','Hilfsstoffe und Betriebsstoffe'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 28, 'AT-BASE','GROUP1','1400','0','fertige Erzeugnisse'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 29, 'AT-BASE','GROUP1','1500','0','unfertige Erzeugnisse'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 30, 'AT-BASE','GROUP1','1600','0','Waren'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 31, 'AT-BASE','GROUP1','1700','0','Noch nicht abrechenbare Leist.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 32, 'AT-BASE','GROUP1','1701','0','Bestandsveränderung laufend'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 33, 'AT-BASE','GROUP1','1800','0','Vorrat Verpackungsmaterial'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 34, 'AT-BASE','GROUP1','1810','0','Vorrat Werbematerial'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 35, 'AT-BASE','GROUP2','2000','0','Lieferforderungen Inland I'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 36, 'AT-BASE','GROUP2','2080','0','Einzelwertb. Ford. Inland'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 37, 'AT-BASE','GROUP2','2292','0','geleistete Anzahlungen (20%)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 38, 'AT-BASE','GROUP2','2293','0','gel. Anzahlungen i.g.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 39, 'AT-BASE','GROUP2','2301','0','Forderung Forschungsprämie'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 40, 'AT-BASE','GROUP2','2302','0','Forderungen gelieferte (noch nicht fakturierte Waren)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 41, 'AT-BASE','GROUP2','2303','0','Vorauszahlung Leasing Server'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 42, 'AT-BASE','GROUP2','2306','0','Kaution Pfauengarten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 43, 'AT-BASE','GROUP2','2307','0','Kaution Werkstatt'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 44, 'AT-BASE','GROUP2','2308','0','Kaution Parkplatz PKW'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 45, 'AT-BASE','GROUP2','2309','0','Kaution Werkstatt'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 46, 'AT-BASE','GROUP2','2310','0','Kaution Studentenwohnheim'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 47, 'AT-BASE','GROUP2','2311','0','Kaution China'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 48, 'AT-BASE','GROUP2','2312','0','Vorauszahlung Xerox'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 49, 'AT-BASE','GROUP2','2313','0','Verrechnung Bildungsscheck'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 50, 'AT-BASE','GROUP2','2315','0','Aktivierung Körperschaftsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 51, 'AT-BASE','GROUP2','2500','0','Vorsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 52, 'AT-BASE','GROUP2','2501','0','Vorsteuer aus i. g. Erwerb'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 53, 'AT-BASE','GROUP2','2502','0','Vorsteuer reverse charge syst.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 54, 'AT-BASE','GROUP2','2503','0','Vorsteuer Reverse Charge § 19/1d'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 55, 'AT-BASE','GROUP2','2508','0','Vorsteuer sonstige Leistungen EU'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 56, 'AT-BASE','GROUP2','2509','0','EUSt Forderung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 57, 'AT-BASE','GROUP2','2510','0','Einfuhrumsatzsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 58, 'AT-BASE','GROUP2','2531','0','Vorsteuer Frankreich'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 59, 'AT-BASE','GROUP2','2532','0','Vorsteuer Niederlande'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 60, 'AT-BASE','GROUP2','2533','0','Vorsteuer GB'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 61, 'AT-BASE','GROUP2','2534','0','Vorsteuer Belgien'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 62, 'AT-BASE','GROUP2','2535','0','Vorsteuer GB'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 63, 'AT-BASE','GROUP2','2901','0','Leasingvorauszahlung Vito'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 64, 'AT-BASE','GROUP3','3020','0','Rückstellung für Körperschaftsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 65, 'AT-BASE','GROUP3','3060','0','Rst. für Beratungskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 66, 'AT-BASE','GROUP3','3064','0','Rst. für Sonderzahlungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 67, 'AT-BASE','GROUP3','3072','0','Rst. für nicht konsum. Urlaube'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 68, 'AT-BASE','GROUP3','3214','0','Raika 40-00.800.185'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 69, 'AT-BASE','GROUP3','3286','0','Darlehen Dipl. Ing. REICH GMBH'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 70, 'AT-BASE','GROUP3','3287','0','Darlehen Dr.Höfler'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 71, 'AT-BASE','GROUP3','3288','0','Darlehen DI Mayrhofer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 72, 'AT-BASE','GROUP3','3289','0','Darlehen AWS'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 73, 'AT-BASE','GROUP3','3292','0','Anzahlungen von Kunden 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 74, 'AT-BASE','GROUP3','3294','0','Anzahlungen von Kunden Drittland'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 75, 'AT-BASE','GROUP3','3300','0','Lieferverbindlichkeiten I'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 76, 'AT-BASE','GROUP3','3481','0','Verrechnungskto DI Mayrhofer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 77, 'AT-BASE','GROUP3','3500','0','Umsatzsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 78, 'AT-BASE','GROUP3','3501','0','Umsatzsteuer aus i. g. Erwerb'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 79, 'AT-BASE','GROUP3','3502','0','USt § 19/Art 19 (reverse Charge)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 80, 'AT-BASE','GROUP3','3503','0','Umsatzsteuer Reverse Charge § 19/1d'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 81, 'AT-BASE','GROUP3','3508','0','Umsatzsteuer sonstige Leistung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 82, 'AT-BASE','GROUP3','3531','0','FA-Zahllast Dezember'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 83, 'AT-BASE','GROUP3','3533','0','Umsatzsteuer 2012'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 84, 'AT-BASE','GROUP3','3535','0','Umsatzsteuer 2013'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 85, 'AT-BASE','GROUP3','3536','0','Umsatzsteuer 2014'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 86, 'AT-BASE','GROUP3','3537','0','Umsatzsteuer 2015'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 87, 'AT-BASE','GROUP3','3632','0','Verrechnungskonto EUSt'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 88, 'AT-BASE','GROUP3','3892','0','Verbindlichkeiten Anzahlungsrechn.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 89, 'AT-BASE','GROUP3','3898','0','Abgrenzung Sonderzahlungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 90, 'AT-BASE','GROUP4','4000','0','Erlöse Lieferungen 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 91, 'AT-BASE','GROUP4','4001','0','Erlöse i.g. Lieferung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 92, 'AT-BASE','GROUP4','4002','0','Erlöse Dienstleistungen EU'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 93, 'AT-BASE','GROUP4','4003','0','Erlöse Dienstleistungen 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 94, 'AT-BASE','GROUP4','4004','0','Erlöse Software 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 95, 'AT-BASE','GROUP4','4005','0','Erlöse Software EU'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 96, 'AT-BASE','GROUP4','4006','0','Evidenz Kfd. Reverse Charge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 97, 'AT-BASE','GROUP4','4050','0','Erlöse 0 % Drittland'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 98, 'AT-BASE','GROUP4','4051','0','Erlöse Dienstleistungen Drittland'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 99, 'AT-BASE','GROUP4','4052','0','Erlöse Software Drittland'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 100, 'AT-BASE','GROUP4','4069','0','Erlöse § 19/1d Schrott'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 101, 'AT-BASE','GROUP4','4400','0','Kundenskonto 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 102, 'AT-BASE','GROUP4','4405','0','Kundenskonto 0 % Ausfuhrlieferungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 103, 'AT-BASE','GROUP4','4410','0','Skontoaufwand i.g. Lieferung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 104, 'AT-BASE','GROUP4','4413','0','Kundenskonto sonstige Leistung EU'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 105, 'AT-BASE','GROUP4','4420','0','Kundenskonto EU-Land A x %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 106, 'AT-BASE','GROUP4','4450','0','Kundenrabatt 20%'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 107, 'AT-BASE','GROUP4','4500','0','Bestandsveränderungen fertige Erzeugnisse'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 108, 'AT-BASE','GROUP4','4510','0','Best.Veränd.Halbf.Erzeugnisse'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 109, 'AT-BASE','GROUP4','4519','0','Bestandsveränderung laufend'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 110, 'AT-BASE','GROUP4','4520','0','Best.Veränd.n.n.abger.Leist.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 111, 'AT-BASE','GROUP4','4530','0','Gelieferte (noch nicht fakturierte Waren)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 112, 'AT-BASE','GROUP4','4580','0','Aktivierte Eigenleistung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 113, 'AT-BASE','GROUP4','4630','0','Erträge aus d.Abgang v.Anlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 114, 'AT-BASE','GROUP4','4801','0','Zuwendungen a.öffentl. Mitteln'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 115, 'AT-BASE','GROUP4','4831','0','sonstige betriebliche Erträge (nicht steuerbar)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 116, 'AT-BASE','GROUP4','4840','0','Sonstige Erlöse 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 117, 'AT-BASE','GROUP4','4850','0','Erl. Aufwandersätze'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 118, 'AT-BASE','GROUP4','4881','0','Versicherungsvergütungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 119, 'AT-BASE','GROUP4','4885','0','Zuschreibungen zum Umlaufvermögen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 120, 'AT-BASE','GROUP4','4950','0','Privatanteil 20 %'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 121, 'AT-BASE','GROUP4','4991','0','Sachbezüge 20%'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 122, 'AT-BASE','GROUP5','5000','0','Handelswareneinsatz'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 123, 'AT-BASE','GROUP5','5001','0','Materialeinkauf Fremdfertigung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 124, 'AT-BASE','GROUP5','5002','0','Wareneinkauf Verkauf'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 125, 'AT-BASE','GROUP5','5020','0','Materialeinkauf'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 126, 'AT-BASE','GROUP5','5090','0','Bezugskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 127, 'AT-BASE','GROUP5','5100','0','Verbrauch Rohstoffe'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 128, 'AT-BASE','GROUP5','5199','0','Aufwand für TW-AFA Vorräte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 129, 'AT-BASE','GROUP5','5200','0','Verbrauch bezogenen Teile'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 130, 'AT-BASE','GROUP5','5300','0','Verbrauch Hilfsstoffe'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 131, 'AT-BASE','GROUP5','5400','0','Hilfsstoffverbrauch'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 132, 'AT-BASE','GROUP5','5440','0','Inventurveränderung Fremdbarb. + GK'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 133, 'AT-BASE','GROUP5','5441','0','GWG Fremdbarb. + GK'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 134, 'AT-BASE','GROUP5','5450','0','Verpackungsmaterial'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 135, 'AT-BASE','GROUP5','5800','0','Fremdleistungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 136, 'AT-BASE','GROUP5','5880','0','Lieferantenskonti'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 137, 'AT-BASE','GROUP5','5900','0','Skontoertrag ig.E. 0% (m.VST)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 138, 'AT-BASE','GROUP5','5920','0','Skontoertrag ig.E. 20% (m.VST)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 139, 'AT-BASE','GROUP6','6000','0','Löhne'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 140, 'AT-BASE','GROUP6','6001','0','Rückerstattung AUVA Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 141, 'AT-BASE','GROUP6','6010','0','Lehrlingsentschädigung Arb.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 142, 'AT-BASE','GROUP6','6020','0','Nichtleistungslöhne'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 143, 'AT-BASE','GROUP6','6100','0','Leihpersonal Aufwand'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 144, 'AT-BASE','GROUP6','6150','0','Sonderzahlungen Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 145, 'AT-BASE','GROUP6','6200','0','Gehälter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 146, 'AT-BASE','GROUP6','6201','0','Förderung AMS'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 147, 'AT-BASE','GROUP6','6202','0','Rückerstattung AUVA Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 148, 'AT-BASE','GROUP6','6210','0','Veränderung Mehrarbeitsvergütung RSt Ang'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 149, 'AT-BASE','GROUP6','6211','0','Veränderung Mehrarbeitsvergütung RSt Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 150, 'AT-BASE','GROUP6','6230','0','Sonderzahlungen Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 151, 'AT-BASE','GROUP6','6231','0','Dotierung RST Sonderzahlungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 152, 'AT-BASE','GROUP6','6255','0','Geschäftsführerbezüge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 153, 'AT-BASE','GROUP6','6256','0','Geschäftsführersachbezüge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 154, 'AT-BASE','GROUP6','6300','0','Sonderzahlung aliquot vorläufig'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 155, 'AT-BASE','GROUP6','6310','0','Dotierung Urlaubsrückstellung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 156, 'AT-BASE','GROUP6','6311','0','Veränderung Urlaubsrückstellung Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 157, 'AT-BASE','GROUP6','6402','0','Betriebliche Vorsorgekassa Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 158, 'AT-BASE','GROUP6','6407','0','Betriebliche Vorsorgekassa Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 159, 'AT-BASE','GROUP6','6416','0','Veränderung Pensionsrückstellung (Angestellte)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 160, 'AT-BASE','GROUP6','6435','0','sonstige Beiträge für die Altersversorgung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 161, 'AT-BASE','GROUP6','6500','0','Gesetzlicher Sozialaufwand'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 162, 'AT-BASE','GROUP6','6600','0','Gesetzlicher Sozialaufwand Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 163, 'AT-BASE','GROUP6','6605','0','Gesetzlicher Sozialaufwand Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 164, 'AT-BASE','GROUP6','6610','0','Dienstgeberbeitrag Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 165, 'AT-BASE','GROUP6','6611','0','Dienstgeberbeitrag Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 166, 'AT-BASE','GROUP6','6620','0','Zuschlag zum DB'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 167, 'AT-BASE','GROUP6','6621','0','Zuschlag zum DB Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 168, 'AT-BASE','GROUP6','6630','0','Ausgleichstaxe'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 169, 'AT-BASE','GROUP6','6690','0','Lohnsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 170, 'AT-BASE','GROUP6','6693','0','Kommunalsteuer Arbeiter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 171, 'AT-BASE','GROUP6','6694','0','Kommunalsteuer Angestellte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 172, 'AT-BASE','GROUP6','6700','0','Freiwilliger Sozialaufwand'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 173, 'AT-BASE','GROUP6','6710','0','Arbeitskleidung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 174, 'AT-BASE','GROUP6','6720','0','Fahrspesen Dienstnehmer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 175, 'AT-BASE','GROUP6','6730','0','Weihnachtsgeschenke Arbeitnehmer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 176, 'AT-BASE','GROUP6','6740','0','Betriebsveranstaltungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 177, 'AT-BASE','GROUP6','6750','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 178, 'AT-BASE','GROUP6','6760','0','Vergleichszahlung Dienstnehmer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 179, 'AT-BASE','GROUP7','7030','0','Abschreibung G W G'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 180, 'AT-BASE','GROUP7','7070','0','Buchwert ausgeschiedener Anlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 181, 'AT-BASE','GROUP7','7080','0','Planmäßige AFA immat.WG.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 182, 'AT-BASE','GROUP7','7081','0','Planmäßige Abschreibung für Sachanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 183, 'AT-BASE','GROUP7','7100','0','Nicht abzugsfähige Vorsteuer (VStK)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 184, 'AT-BASE','GROUP7','7110','0','Gebühren und Abgaben_Zoll'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 185, 'AT-BASE','GROUP7','7111','0','Kammerumlage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 186, 'AT-BASE','GROUP7','7200','0','Instandhaltung Gebäude'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 187, 'AT-BASE','GROUP7','7201','0','Instandhaltung Außenanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 188, 'AT-BASE','GROUP7','7202','0','Instandh. - Maschinen u. Anl.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 189, 'AT-BASE','GROUP7','7204','0','Instandhaltung und Betriebskosten Betriebs und Geschäftsgebäude'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 190, 'AT-BASE','GROUP7','7205','0','Verbrauchsmaterial Werkstatt'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 191, 'AT-BASE','GROUP7','7210','0','Müllentsorgung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 192, 'AT-BASE','GROUP7','7211','0','Entsorgungskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 193, 'AT-BASE','GROUP7','7230','0','Reinigungsmaterial (div. Verbrauchsmaterial)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 194, 'AT-BASE','GROUP7','7231','0','Berufsbekleidung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 195, 'AT-BASE','GROUP7','7235','0','Reinigung durch Dritte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 196, 'AT-BASE','GROUP7','7240','0','LKW-Betriebskosten Vito G 437 MB'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 197, 'AT-BASE','GROUP7','7241','0','Leasing Mercedes Vito G 437 MB'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 198, 'AT-BASE','GROUP7','7250','0','KFZ Betriebskosten allgemein'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 199, 'AT-BASE','GROUP7','7251','0','KFZ Leasing allgemein'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 200, 'AT-BASE','GROUP7','7252','0','KFZ Versicherungen allgemein'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 201, 'AT-BASE','GROUP7','7253','0','Wachdienst'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 202, 'AT-BASE','GROUP7','7254','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 203, 'AT-BASE','GROUP7','7255','0','Aufwand Leihwagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 204, 'AT-BASE','GROUP7','7256','0','PKW-Betriebskosten VW Golf G 854 SH Versuchsfahrzeug'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 205, 'AT-BASE','GROUP7','7257','0','Leasing VW Golf G 854 SH'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 206, 'AT-BASE','GROUP7','7258','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 207, 'AT-BASE','GROUP7','7285','0','Strom'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 208, 'AT-BASE','GROUP7','7286','0','Betriebskosten/Beheizung Mietobjekte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 209, 'AT-BASE','GROUP7','7300','0','Transporte durch Dritte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 210, 'AT-BASE','GROUP7','7330','0','Reise und Fahrtspesen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 211, 'AT-BASE','GROUP7','7331','0','Kilometergelder'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 212, 'AT-BASE','GROUP7','7360','0','Reisediäten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 213, 'AT-BASE','GROUP7','7380','0','Telefon'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 214, 'AT-BASE','GROUP7','7381','0','Internet'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 215, 'AT-BASE','GROUP7','7382','0','Wartung Homepage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 216, 'AT-BASE','GROUP7','7390','0','Postgebühren'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 217, 'AT-BASE','GROUP7','7400','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 218, 'AT-BASE','GROUP7','7401','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 219, 'AT-BASE','GROUP7','7402','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 220, 'AT-BASE','GROUP7','7403','0','Miete Büro Linz'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 221, 'AT-BASE','GROUP7','7404','0','Miete Gradnerstraße'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 222, 'AT-BASE','GROUP7','7410','0','Maschinen u. Gerätemieten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 223, 'AT-BASE','GROUP7','7411','0','Wartungskosten BuG Ausstattung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 224, 'AT-BASE','GROUP7','7420','0','Mobilien-Leasing '); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 225, 'AT-BASE','GROUP7','7421','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 226, 'AT-BASE','GROUP7','7422','0','Leasing Server'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 227, 'AT-BASE','GROUP7','7423','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 228, 'AT-BASE','GROUP7','7424','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 229, 'AT-BASE','GROUP7','7480','0','Lizenzgebühren'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 230, 'AT-BASE','GROUP7','7540','0','Provisionen an Dritte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 231, 'AT-BASE','GROUP7','7600','0','Büromaterial'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 232, 'AT-BASE','GROUP7','7601','0','EDV-Material'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 233, 'AT-BASE','GROUP7','7610','0','Drucksorten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 234, 'AT-BASE','GROUP7','7620','0','Fachliteratur und Zeitungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 235, 'AT-BASE','GROUP7','7630','0','Gästeunt. u. Zeitschriften'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 236, 'AT-BASE','GROUP7','7650','0','Werbeaufwand/Inserate'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 237, 'AT-BASE','GROUP7','7651','0','Anbahnung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 238, 'AT-BASE','GROUP7','7652','0','Aufwand Messen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 239, 'AT-BASE','GROUP7','7653','0','Konto frei'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 240, 'AT-BASE','GROUP7','7654','0','Inserate'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 241, 'AT-BASE','GROUP7','7670','0','Bewirtungskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 242, 'AT-BASE','GROUP7','7690','0','Trinkgelder u. Spenden'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 243, 'AT-BASE','GROUP7','7691','0','Spenden an begünstigte Institutionen/Sponsoring'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 244, 'AT-BASE','GROUP7','7696','0','Säumnis- und Verspätungszuschläge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 245, 'AT-BASE','GROUP7','7700','0','Betriebsversicherungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 246, 'AT-BASE','GROUP7','7701','0','Transportversicherungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 247, 'AT-BASE','GROUP7','7710','0','Pflichtversich. Unternehmer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 248, 'AT-BASE','GROUP7','7749','0','Aufwand Japan'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 249, 'AT-BASE','GROUP7','7750','0','Steuerberatung (Lohnverrechnung, Buchhaltung)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 250, 'AT-BASE','GROUP7','7751','0','Patentkosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 251, 'AT-BASE','GROUP7','7752','0','Rechtsberatung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 252, 'AT-BASE','GROUP7','7753','0','Unternehmensberatung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 253, 'AT-BASE','GROUP7','7754','0','Aufwand tectos China'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 254, 'AT-BASE','GROUP7','7755','0','Wartung (Betreuung EDV)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 255, 'AT-BASE','GROUP7','7756','0','Lizenzgebühren Abaqus'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 256, 'AT-BASE','GROUP7','7757','0','Lizenzgebühren Sonstige'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 257, 'AT-BASE','GROUP7','7758','0','Sonstige Beratungskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 258, 'AT-BASE','GROUP7','7759','0','EDV-Beratung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 259, 'AT-BASE','GROUP7','7760','0','Mitgliedsbeiträge/freiwillige Beiträge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 260, 'AT-BASE','GROUP7','7761','0','Prüfung Jahresabschluss'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 261, 'AT-BASE','GROUP7','7770','0','Aus- und Fortbildung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 262, 'AT-BASE','GROUP7','7775','0','Forschung und Entwicklung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 263, 'AT-BASE','GROUP7','7776','0','Messentwicklung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 264, 'AT-BASE','GROUP7','7777','0','Produktentwicklung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 265, 'AT-BASE','GROUP7','7785','0','Freiwillige Verbandsbeiträge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 266, 'AT-BASE','GROUP7','7790','0','Spesen des Geldverkehrs'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 267, 'AT-BASE','GROUP7','7791','0','Kursdifferenzen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 268, 'AT-BASE','GROUP7','7800','0','Betriebsbedingte Schadensfälle'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 269, 'AT-BASE','GROUP7','7801','0','Ausgaben nicht absetzbar'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 270, 'AT-BASE','GROUP7','7802','0','Strafen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 271, 'AT-BASE','GROUP7','7805','0','Forderungsverluste 20'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 272, 'AT-BASE','GROUP7','7806','0','Abschreibungen auf Forderungen (EU)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 273, 'AT-BASE','GROUP7','7807','0','Abschreibungen auf Forderungen (Drittland)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 274, 'AT-BASE','GROUP7','7810','0','Zuweisung an Einzel-WB Forderungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 275, 'AT-BASE','GROUP7','7811','0','Zuweisung pauschale Wertberichtigungen zu Exportforderungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 276, 'AT-BASE','GROUP7','7812','0','Abschreibungen auf Vorräte'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 277, 'AT-BASE','GROUP7','7820','0','Buchwert abgegangener Sachanlagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 278, 'AT-BASE','GROUP7','7840','0','Gründungskosten'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 279, 'AT-BASE','GROUP7','7850','0','Sonstiger Aufwand'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 280, 'AT-BASE','GROUP7','7851','0','Sonstiger Aufwand Gewinnanteil Reich'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 281, 'AT-BASE','GROUP7','7930','0','Aufw. Gewährleistungsverpfl.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 282, 'AT-BASE','GROUP7','7940','0','Aufwand aus Vorperioden'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 283, 'AT-BASE','GROUP8','8020','0','Gewinnüberrg. v. Organgesell.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 284, 'AT-BASE','GROUP8','8060','0','Zinserträge'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 285, 'AT-BASE','GROUP8','8090','0','Ertr.a.Ant.a.and. Unternehmen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 286, 'AT-BASE','GROUP8','8100','0','Habenzinsen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 287, 'AT-BASE','GROUP8','8280','0','Zinsen f. Kredite u. Darlehen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 288, 'AT-BASE','GROUP8','8286','0','Kursgewinne/Kursverluste'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 289, 'AT-BASE','GROUP8','8288','0','Zinsen auf Lieferantenkredite'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 290, 'AT-BASE','GROUP8','8291','0','Sonst. Zinsen und ähnliche Aufwendungen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 291, 'AT-BASE','GROUP8','8500','0','Körperschaftsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 292, 'AT-BASE','GROUP8','8505','0','Kapitalertragsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 293, 'AT-BASE','GROUP8','8510','0','Körperschaftsteuervorauszahl.'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 294, 'AT-BASE','GROUP8','8511','0','Dotierung KöSt-Rückstellung'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 295, 'AT-BASE','GROUP8','8512','0','Aktivierung Körperschaftsteuer'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 296, 'AT-BASE','GROUP8','8513','0','Köst Vorperioden'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 297, 'AT-BASE','GROUP8','8520','0','Forschungsprämie'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 298, 'AT-BASE','GROUP8','8595','0','Ertrag aus der Aktivierung latenter Steuern'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 299, 'AT-BASE','GROUP8','8610','0','Auflösung sonstiger unversteuerter Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 300, 'AT-BASE','GROUP8','8700','0','Auflösung gebundener Kapitalrücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 301, 'AT-BASE','GROUP8','8710','0','Auflösung 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__, 302, 'AT-BASE','GROUP8','8720','0','Auflösung nicht gebundene Kapitalrücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 303, 'AT-BASE','GROUP8','8750','0','Auflösung gesetzliche Rücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 304, 'AT-BASE','GROUP8','8760','0','Auflösung satzungsmäßige Rücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 305, 'AT-BASE','GROUP8','8770','0','Auflösung andere (freie) Rücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 306, 'AT-BASE','GROUP8','8810','0','Zuweisung sonstige unversteuerte Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 307, 'AT-BASE','GROUP8','8820','0','Zuweisung Inv. Rücklage'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 308, 'AT-BASE','GROUP8','8890','0','Zuw.Bew.Res.GWG'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 309, 'AT-BASE','GROUP8','8900','0','Zuweisung gesetzliche Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 310, 'AT-BASE','GROUP8','8910','0','Zuweisung satzungsmäßige Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 311, 'AT-BASE','GROUP8','8920','0','Zuweisung andere (freie) Rücklagen'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 312, 'AT-BASE','GROUP9','9390','0','Bilanzgewinn'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 313, 'AT-BASE','GROUP9','9391','0','Bilanzverlust'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 314, 'AT-BASE','GROUP9','9700','0','Wachdienst'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 315, 'AT-BASE','GROUP9','9991','0','Gewinnvortrag'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 316, 'AT-BASE','GROUP9','9993','0','Verlustvortrag'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 317, 'AT-BASE','GROUP9','9994','0','Verlustvortrag'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 318, 'AT-BASE','GROUP5','50200','0','Materialeinkauf'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 319, 'AT-BASE','GROUP6','60000','0','kalk. Löhne u Gehälter'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 320, 'AT-BASE','GROUP6','64160','0','Veränderung Pensionsrückstellung (Angestellte)'); -INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label) VALUES (__ENTITY__, 321, 'AT-BASE','GROUP6','66300','0','Leistungserfassung'); + +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1, 'AT-BASE','GROUP0','110','0','Patentrechte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 2, 'AT-BASE','GROUP0','120','0','Software', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 3, 'AT-BASE','GROUP0','121','0','ERP System', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 4, 'AT-BASE','GROUP0','122','0','Homepage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 5, 'AT-BASE','GROUP0','125','0','Software Fremdentwicklung_noch nicht aktivieren', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 6, 'AT-BASE','GROUP0','160','0','Umgründungsmehrwert', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 7, 'AT-BASE','GROUP0','250','0','Mieterinvestitionen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 8, 'AT-BASE','GROUP0','400','0','Maschinen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 9, 'AT-BASE','GROUP0','600','0','Betriebs u. Geschäftsausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10, 'AT-BASE','GROUP0','601','0','Ausstellungsstücke', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 11, 'AT-BASE','GROUP0','602','0','Leihstellungsstücke', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 12, 'AT-BASE','GROUP0','603','0','Getriebeprüfstand_hinten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 13, 'AT-BASE','GROUP0','604','0','Wuchtstand_links_AQ', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 14, 'AT-BASE','GROUP0','605','0','Messlabor(Messraum)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 15, 'AT-BASE','GROUP0','606','0','PAK-System', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 16, 'AT-BASE','GROUP0','607','0','Server', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 17, 'AT-BASE','GROUP0','608','0','EDV-Ausstattung (Hardware)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 18, 'AT-BASE','GROUP0','609','0','Werkstattausstattung (Werkzeug)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 19, 'AT-BASE','GROUP0','610','0','Wuchtprüfstand neu_noch nicht in Betrieb genommen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 20, 'AT-BASE','GROUP0','611','0','Messequipment/Ausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 21, 'AT-BASE','GROUP0','630','0','PKW', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 22, 'AT-BASE','GROUP0','640','0','LKW', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 23, 'AT-BASE','GROUP0','680','0','GWG-Geschäftsausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 24, 'AT-BASE','GROUP0','710','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__, 25, 'AT-BASE','GROUP1','1100','0','Rohstoffe', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 26, 'AT-BASE','GROUP1','1200','0','Bezogenen Teile', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 27, 'AT-BASE','GROUP1','1300','0','Hilfsstoffe und Betriebsstoffe', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 28, 'AT-BASE','GROUP1','1400','0','fertige Erzeugnisse', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 29, 'AT-BASE','GROUP1','1500','0','unfertige Erzeugnisse', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 30, 'AT-BASE','GROUP1','1600','0','Waren', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 31, 'AT-BASE','GROUP1','1700','0','Noch nicht abrechenbare Leist.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 32, 'AT-BASE','GROUP1','1701','0','Bestandsveränderung laufend', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 33, 'AT-BASE','GROUP1','1800','0','Vorrat Verpackungsmaterial', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 34, 'AT-BASE','GROUP1','1810','0','Vorrat Werbematerial', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 35, 'AT-BASE','GROUP2','2000','0','Lieferforderungen Inland I', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 36, 'AT-BASE','GROUP2','2080','0','Einzelwertb. Ford. Inland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 37, 'AT-BASE','GROUP2','2292','0','geleistete Anzahlungen (20%)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 38, 'AT-BASE','GROUP2','2293','0','gel. Anzahlungen i.g.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 39, 'AT-BASE','GROUP2','2301','0','Forderung Forschungsprämie', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 40, 'AT-BASE','GROUP2','2302','0','Forderungen gelieferte (noch nicht fakturierte Waren)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 41, 'AT-BASE','GROUP2','2303','0','Vorauszahlung Leasing Server', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 42, 'AT-BASE','GROUP2','2306','0','Kaution Pfauengarten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 43, 'AT-BASE','GROUP2','2307','0','Kaution Werkstatt', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 44, 'AT-BASE','GROUP2','2308','0','Kaution Parkplatz PKW', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 45, 'AT-BASE','GROUP2','2309','0','Kaution Werkstatt', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 46, 'AT-BASE','GROUP2','2310','0','Kaution Studentenwohnheim', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 47, 'AT-BASE','GROUP2','2311','0','Kaution China', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 48, 'AT-BASE','GROUP2','2312','0','Vorauszahlung Xerox', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 49, 'AT-BASE','GROUP2','2313','0','Verrechnung Bildungsscheck', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 50, 'AT-BASE','GROUP2','2315','0','Aktivierung Körperschaftsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 51, 'AT-BASE','GROUP2','2500','0','Vorsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 52, 'AT-BASE','GROUP2','2501','0','Vorsteuer aus i. g. Erwerb', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 53, 'AT-BASE','GROUP2','2502','0','Vorsteuer reverse charge syst.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 54, 'AT-BASE','GROUP2','2503','0','Vorsteuer Reverse Charge § 19/1d', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 55, 'AT-BASE','GROUP2','2508','0','Vorsteuer sonstige Leistungen EU', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 56, 'AT-BASE','GROUP2','2509','0','EUSt Forderung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 57, 'AT-BASE','GROUP2','2510','0','Einfuhrumsatzsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 58, 'AT-BASE','GROUP2','2531','0','Vorsteuer Frankreich', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 59, 'AT-BASE','GROUP2','2532','0','Vorsteuer Niederlande', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 60, 'AT-BASE','GROUP2','2533','0','Vorsteuer GB', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 61, 'AT-BASE','GROUP2','2534','0','Vorsteuer Belgien', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 62, 'AT-BASE','GROUP2','2535','0','Vorsteuer GB', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 63, 'AT-BASE','GROUP2','2901','0','Leasingvorauszahlung Vito', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 64, 'AT-BASE','GROUP3','3020','0','Rückstellung für Körperschaftsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 65, 'AT-BASE','GROUP3','3060','0','Rst. für Beratungskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 66, 'AT-BASE','GROUP3','3064','0','Rst. für Sonderzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 67, 'AT-BASE','GROUP3','3072','0','Rst. für nicht konsum. Urlaube', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 68, 'AT-BASE','GROUP3','3214','0','Raika 40-00.800.185', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 69, 'AT-BASE','GROUP3','3286','0','Darlehen Dipl. Ing. REICH GMBH', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 70, 'AT-BASE','GROUP3','3287','0','Darlehen Dr.Höfler', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 71, 'AT-BASE','GROUP3','3288','0','Darlehen DI Mayrhofer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 72, 'AT-BASE','GROUP3','3289','0','Darlehen AWS', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 73, 'AT-BASE','GROUP3','3292','0','Anzahlungen von Kunden 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 74, 'AT-BASE','GROUP3','3294','0','Anzahlungen von Kunden Drittland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 75, 'AT-BASE','GROUP3','3300','0','Lieferverbindlichkeiten I', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 76, 'AT-BASE','GROUP3','3481','0','Verrechnungskto DI Mayrhofer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 77, 'AT-BASE','GROUP3','3500','0','Umsatzsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 78, 'AT-BASE','GROUP3','3501','0','Umsatzsteuer aus i. g. Erwerb', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 79, 'AT-BASE','GROUP3','3502','0','USt § 19/Art 19 (reverse Charge)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 80, 'AT-BASE','GROUP3','3503','0','Umsatzsteuer Reverse Charge § 19/1d', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 81, 'AT-BASE','GROUP3','3508','0','Umsatzsteuer sonstige Leistung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 82, 'AT-BASE','GROUP3','3531','0','FA-Zahllast Dezember', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 83, 'AT-BASE','GROUP3','3533','0','Umsatzsteuer 2012', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 84, 'AT-BASE','GROUP3','3535','0','Umsatzsteuer 2013', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 85, 'AT-BASE','GROUP3','3536','0','Umsatzsteuer 2014', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 86, 'AT-BASE','GROUP3','3537','0','Umsatzsteuer 2015', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 87, 'AT-BASE','GROUP3','3632','0','Verrechnungskonto EUSt', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 88, 'AT-BASE','GROUP3','3892','0','Verbindlichkeiten Anzahlungsrechn.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 89, 'AT-BASE','GROUP3','3898','0','Abgrenzung Sonderzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 90, 'AT-BASE','GROUP4','4000','0','Erlöse Lieferungen 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 91, 'AT-BASE','GROUP4','4001','0','Erlöse i.g. Lieferung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 92, 'AT-BASE','GROUP4','4002','0','Erlöse Dienstleistungen EU', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 93, 'AT-BASE','GROUP4','4003','0','Erlöse Dienstleistungen 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 94, 'AT-BASE','GROUP4','4004','0','Erlöse Software 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 95, 'AT-BASE','GROUP4','4005','0','Erlöse Software EU', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 96, 'AT-BASE','GROUP4','4006','0','Evidenz Kfd. Reverse Charge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 97, 'AT-BASE','GROUP4','4050','0','Erlöse 0 % Drittland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 98, 'AT-BASE','GROUP4','4051','0','Erlöse Dienstleistungen Drittland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 99, 'AT-BASE','GROUP4','4052','0','Erlöse Software Drittland', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 100, 'AT-BASE','GROUP4','4069','0','Erlöse § 19/1d Schrott', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 101, 'AT-BASE','GROUP4','4400','0','Kundenskonto 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 102, 'AT-BASE','GROUP4','4405','0','Kundenskonto 0 % Ausfuhrlieferungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 103, 'AT-BASE','GROUP4','4410','0','Skontoaufwand i.g. Lieferung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 104, 'AT-BASE','GROUP4','4413','0','Kundenskonto sonstige Leistung EU', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 105, 'AT-BASE','GROUP4','4420','0','Kundenskonto EU-Land A x %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 106, 'AT-BASE','GROUP4','4450','0','Kundenrabatt 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 107, 'AT-BASE','GROUP4','4500','0','Bestandsveränderungen fertige Erzeugnisse', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 108, 'AT-BASE','GROUP4','4510','0','Best.Veränd.Halbf.Erzeugnisse', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 109, 'AT-BASE','GROUP4','4519','0','Bestandsveränderung laufend', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 110, 'AT-BASE','GROUP4','4520','0','Best.Veränd.n.n.abger.Leist.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 111, 'AT-BASE','GROUP4','4530','0','Gelieferte (noch nicht fakturierte Waren)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 112, 'AT-BASE','GROUP4','4580','0','Aktivierte Eigenleistung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 113, 'AT-BASE','GROUP4','4630','0','Erträge aus d.Abgang v.Anlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 114, 'AT-BASE','GROUP4','4801','0','Zuwendungen a.öffentl. Mitteln', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 115, 'AT-BASE','GROUP4','4831','0','sonstige betriebliche Erträge (nicht steuerbar)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 116, 'AT-BASE','GROUP4','4840','0','Sonstige Erlöse 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 117, 'AT-BASE','GROUP4','4850','0','Erl. Aufwandersätze', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 118, 'AT-BASE','GROUP4','4881','0','Versicherungsvergütungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 119, 'AT-BASE','GROUP4','4885','0','Zuschreibungen zum Umlaufvermögen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 120, 'AT-BASE','GROUP4','4950','0','Privatanteil 20 %', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 121, 'AT-BASE','GROUP4','4991','0','Sachbezüge 20%', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 122, 'AT-BASE','GROUP5','5000','0','Handelswareneinsatz', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 123, 'AT-BASE','GROUP5','5001','0','Materialeinkauf Fremdfertigung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 124, 'AT-BASE','GROUP5','5002','0','Wareneinkauf Verkauf', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 125, 'AT-BASE','GROUP5','5020','0','Materialeinkauf', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 126, 'AT-BASE','GROUP5','5090','0','Bezugskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 127, 'AT-BASE','GROUP5','5100','0','Verbrauch Rohstoffe', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 128, 'AT-BASE','GROUP5','5199','0','Aufwand für TW-AFA Vorräte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 129, 'AT-BASE','GROUP5','5200','0','Verbrauch bezogenen Teile', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 130, 'AT-BASE','GROUP5','5300','0','Verbrauch Hilfsstoffe', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 131, 'AT-BASE','GROUP5','5400','0','Hilfsstoffverbrauch', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 132, 'AT-BASE','GROUP5','5440','0','Inventurveränderung Fremdbarb. + GK', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 133, 'AT-BASE','GROUP5','5441','0','GWG Fremdbarb. + GK', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 134, 'AT-BASE','GROUP5','5450','0','Verpackungsmaterial', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 135, 'AT-BASE','GROUP5','5800','0','Fremdleistungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 136, 'AT-BASE','GROUP5','5880','0','Lieferantenskonti', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 137, 'AT-BASE','GROUP5','5900','0','Skontoertrag ig.E. 0% (m.VST)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 138, 'AT-BASE','GROUP5','5920','0','Skontoertrag ig.E. 20% (m.VST)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 139, 'AT-BASE','GROUP6','6000','0','Löhne', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 140, 'AT-BASE','GROUP6','6001','0','Rückerstattung AUVA Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 141, 'AT-BASE','GROUP6','6010','0','Lehrlingsentschädigung Arb.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 142, 'AT-BASE','GROUP6','6020','0','Nichtleistungslöhne', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 143, 'AT-BASE','GROUP6','6100','0','Leihpersonal Aufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 144, 'AT-BASE','GROUP6','6150','0','Sonderzahlungen Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 145, 'AT-BASE','GROUP6','6200','0','Gehälter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 146, 'AT-BASE','GROUP6','6201','0','Förderung AMS', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 147, 'AT-BASE','GROUP6','6202','0','Rückerstattung AUVA Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 148, 'AT-BASE','GROUP6','6210','0','Veränderung Mehrarbeitsvergütung RSt Ang', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 149, 'AT-BASE','GROUP6','6211','0','Veränderung Mehrarbeitsvergütung RSt Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 150, 'AT-BASE','GROUP6','6230','0','Sonderzahlungen Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 151, 'AT-BASE','GROUP6','6231','0','Dotierung RST Sonderzahlungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 152, 'AT-BASE','GROUP6','6255','0','Geschäftsführerbezüge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 153, 'AT-BASE','GROUP6','6256','0','Geschäftsführersachbezüge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 154, 'AT-BASE','GROUP6','6300','0','Sonderzahlung aliquot vorläufig', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 155, 'AT-BASE','GROUP6','6310','0','Dotierung Urlaubsrückstellung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 156, 'AT-BASE','GROUP6','6311','0','Veränderung Urlaubsrückstellung Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 157, 'AT-BASE','GROUP6','6402','0','Betriebliche Vorsorgekassa Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 158, 'AT-BASE','GROUP6','6407','0','Betriebliche Vorsorgekassa Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 159, 'AT-BASE','GROUP6','6416','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__, 160, 'AT-BASE','GROUP6','6435','0','sonstige Beiträge für die Altersversorgung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 161, 'AT-BASE','GROUP6','6500','0','Gesetzlicher Sozialaufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 162, 'AT-BASE','GROUP6','6600','0','Gesetzlicher Sozialaufwand Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 163, 'AT-BASE','GROUP6','6605','0','Gesetzlicher Sozialaufwand Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 164, 'AT-BASE','GROUP6','6610','0','Dienstgeberbeitrag Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 165, 'AT-BASE','GROUP6','6611','0','Dienstgeberbeitrag Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 166, 'AT-BASE','GROUP6','6620','0','Zuschlag zum DB', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 167, 'AT-BASE','GROUP6','6621','0','Zuschlag zum DB Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 168, 'AT-BASE','GROUP6','6630','0','Ausgleichstaxe', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 169, 'AT-BASE','GROUP6','6690','0','Lohnsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 170, 'AT-BASE','GROUP6','6693','0','Kommunalsteuer Arbeiter', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 171, 'AT-BASE','GROUP6','6694','0','Kommunalsteuer Angestellte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 172, 'AT-BASE','GROUP6','6700','0','Freiwilliger Sozialaufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 173, 'AT-BASE','GROUP6','6710','0','Arbeitskleidung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 174, 'AT-BASE','GROUP6','6720','0','Fahrspesen Dienstnehmer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 175, 'AT-BASE','GROUP6','6730','0','Weihnachtsgeschenke Arbeitnehmer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 176, 'AT-BASE','GROUP6','6740','0','Betriebsveranstaltungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 177, 'AT-BASE','GROUP6','6750','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 178, 'AT-BASE','GROUP6','6760','0','Vergleichszahlung Dienstnehmer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 179, 'AT-BASE','GROUP7','7030','0','Abschreibung G W G', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 180, 'AT-BASE','GROUP7','7070','0','Buchwert ausgeschiedener Anlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 181, 'AT-BASE','GROUP7','7080','0','Planmäßige AFA immat.WG.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 182, 'AT-BASE','GROUP7','7081','0','Planmäßige Abschreibung für Sachanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 183, 'AT-BASE','GROUP7','7100','0','Nicht abzugsfähige Vorsteuer (VStK)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 184, 'AT-BASE','GROUP7','7110','0','Gebühren und Abgaben_Zoll', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 185, 'AT-BASE','GROUP7','7111','0','Kammerumlage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 186, 'AT-BASE','GROUP7','7200','0','Instandhaltung Gebäude', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 187, 'AT-BASE','GROUP7','7201','0','Instandhaltung Außenanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 188, 'AT-BASE','GROUP7','7202','0','Instandh. - Maschinen u. Anl.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 189, 'AT-BASE','GROUP7','7204','0','Instandhaltung und Betriebskosten Betriebs und Geschäftsgebäude', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 190, 'AT-BASE','GROUP7','7205','0','Verbrauchsmaterial Werkstatt', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 191, 'AT-BASE','GROUP7','7210','0','Müllentsorgung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 192, 'AT-BASE','GROUP7','7211','0','Entsorgungskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 193, 'AT-BASE','GROUP7','7230','0','Reinigungsmaterial (div. Verbrauchsmaterial)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 194, 'AT-BASE','GROUP7','7231','0','Berufsbekleidung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 195, 'AT-BASE','GROUP7','7235','0','Reinigung durch Dritte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 196, 'AT-BASE','GROUP7','7240','0','LKW-Betriebskosten Vito G 437 MB', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 197, 'AT-BASE','GROUP7','7241','0','Leasing Mercedes Vito G 437 MB', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 198, 'AT-BASE','GROUP7','7250','0','KFZ Betriebskosten allgemein', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 199, 'AT-BASE','GROUP7','7251','0','KFZ Leasing allgemein', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 200, 'AT-BASE','GROUP7','7252','0','KFZ Versicherungen allgemein', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 201, 'AT-BASE','GROUP7','7253','0','Wachdienst', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 202, 'AT-BASE','GROUP7','7254','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 203, 'AT-BASE','GROUP7','7255','0','Aufwand Leihwagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 204, 'AT-BASE','GROUP7','7256','0','PKW-Betriebskosten VW Golf G 854 SH Versuchsfahrzeug', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 205, 'AT-BASE','GROUP7','7257','0','Leasing VW Golf G 854 SH', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 206, 'AT-BASE','GROUP7','7258','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 207, 'AT-BASE','GROUP7','7285','0','Strom', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 208, 'AT-BASE','GROUP7','7286','0','Betriebskosten/Beheizung Mietobjekte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 209, 'AT-BASE','GROUP7','7300','0','Transporte durch Dritte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 210, 'AT-BASE','GROUP7','7330','0','Reise und Fahrtspesen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 211, 'AT-BASE','GROUP7','7331','0','Kilometergelder', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 212, 'AT-BASE','GROUP7','7360','0','Reisediäten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 213, 'AT-BASE','GROUP7','7380','0','Telefon', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 214, 'AT-BASE','GROUP7','7381','0','Internet', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 215, 'AT-BASE','GROUP7','7382','0','Wartung Homepage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 216, 'AT-BASE','GROUP7','7390','0','Postgebühren', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 217, 'AT-BASE','GROUP7','7400','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 218, 'AT-BASE','GROUP7','7401','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 219, 'AT-BASE','GROUP7','7402','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 220, 'AT-BASE','GROUP7','7403','0','Miete Büro Linz', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 221, 'AT-BASE','GROUP7','7404','0','Miete Gradnerstraße', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 222, 'AT-BASE','GROUP7','7410','0','Maschinen u. Gerätemieten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 223, 'AT-BASE','GROUP7','7411','0','Wartungskosten BuG Ausstattung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 224, 'AT-BASE','GROUP7','7420','0','Mobilien-Leasing ', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 225, 'AT-BASE','GROUP7','7421','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 226, 'AT-BASE','GROUP7','7422','0','Leasing Server', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 227, 'AT-BASE','GROUP7','7423','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 228, 'AT-BASE','GROUP7','7424','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 229, 'AT-BASE','GROUP7','7480','0','Lizenzgebühren', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 230, 'AT-BASE','GROUP7','7540','0','Provisionen an Dritte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 231, 'AT-BASE','GROUP7','7600','0','Büromaterial', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 232, 'AT-BASE','GROUP7','7601','0','EDV-Material', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 233, 'AT-BASE','GROUP7','7610','0','Drucksorten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 234, 'AT-BASE','GROUP7','7620','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__, 235, 'AT-BASE','GROUP7','7630','0','Gästeunt. u. Zeitschriften', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 236, 'AT-BASE','GROUP7','7650','0','Werbeaufwand/Inserate', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 237, 'AT-BASE','GROUP7','7651','0','Anbahnung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 238, 'AT-BASE','GROUP7','7652','0','Aufwand Messen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 239, 'AT-BASE','GROUP7','7653','0','Konto frei', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 240, 'AT-BASE','GROUP7','7654','0','Inserate', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 241, 'AT-BASE','GROUP7','7670','0','Bewirtungskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 242, 'AT-BASE','GROUP7','7690','0','Trinkgelder u. Spenden', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 243, 'AT-BASE','GROUP7','7691','0','Spenden an begünstigte Institutionen/Sponsoring', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 244, 'AT-BASE','GROUP7','7696','0','Säumnis- und Verspätungszuschläge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 245, 'AT-BASE','GROUP7','7700','0','Betriebsversicherungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 246, 'AT-BASE','GROUP7','7701','0','Transportversicherungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 247, 'AT-BASE','GROUP7','7710','0','Pflichtversich. Unternehmer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 248, 'AT-BASE','GROUP7','7749','0','Aufwand Japan', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 249, 'AT-BASE','GROUP7','7750','0','Steuerberatung (Lohnverrechnung, Buchhaltung)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 250, 'AT-BASE','GROUP7','7751','0','Patentkosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 251, 'AT-BASE','GROUP7','7752','0','Rechtsberatung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 252, 'AT-BASE','GROUP7','7753','0','Unternehmensberatung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 253, 'AT-BASE','GROUP7','7754','0','Aufwand tectos China', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 254, 'AT-BASE','GROUP7','7755','0','Wartung (Betreuung EDV)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 255, 'AT-BASE','GROUP7','7756','0','Lizenzgebühren Abaqus', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 256, 'AT-BASE','GROUP7','7757','0','Lizenzgebühren Sonstige', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 257, 'AT-BASE','GROUP7','7758','0','Sonstige Beratungskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 258, 'AT-BASE','GROUP7','7759','0','EDV-Beratung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 259, 'AT-BASE','GROUP7','7760','0','Mitgliedsbeiträge/freiwillige Beiträge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 260, 'AT-BASE','GROUP7','7761','0','Prüfung Jahresabschluss', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 261, 'AT-BASE','GROUP7','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__, 262, 'AT-BASE','GROUP7','7775','0','Forschung und Entwicklung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 263, 'AT-BASE','GROUP7','7776','0','Messentwicklung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 264, 'AT-BASE','GROUP7','7777','0','Produktentwicklung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 265, 'AT-BASE','GROUP7','7785','0','Freiwillige Verbandsbeiträge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 266, 'AT-BASE','GROUP7','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__, 267, 'AT-BASE','GROUP7','7791','0','Kursdifferenzen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 268, 'AT-BASE','GROUP7','7800','0','Betriebsbedingte Schadensfälle', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 269, 'AT-BASE','GROUP7','7801','0','Ausgaben nicht absetzbar', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 270, 'AT-BASE','GROUP7','7802','0','Strafen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 271, 'AT-BASE','GROUP7','7805','0','Forderungsverluste 20', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 272, 'AT-BASE','GROUP7','7806','0','Abschreibungen auf Forderungen (EU)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 273, 'AT-BASE','GROUP7','7807','0','Abschreibungen auf Forderungen (Drittland)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 274, 'AT-BASE','GROUP7','7810','0','Zuweisung an Einzel-WB Forderungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 275, 'AT-BASE','GROUP7','7811','0','Zuweisung pauschale Wertberichtigungen zu Exportforderungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 276, 'AT-BASE','GROUP7','7812','0','Abschreibungen auf Vorräte', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 277, 'AT-BASE','GROUP7','7820','0','Buchwert abgegangener Sachanlagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 278, 'AT-BASE','GROUP7','7840','0','Gründungskosten', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 279, 'AT-BASE','GROUP7','7850','0','Sonstiger Aufwand', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 280, 'AT-BASE','GROUP7','7851','0','Sonstiger Aufwand Gewinnanteil Reich', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 281, 'AT-BASE','GROUP7','7930','0','Aufw. Gewährleistungsverpfl.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 282, 'AT-BASE','GROUP7','7940','0','Aufwand aus Vorperioden', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 283, 'AT-BASE','GROUP8','8020','0','Gewinnüberrg. v. Organgesell.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 284, 'AT-BASE','GROUP8','8060','0','Zinserträge', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 285, 'AT-BASE','GROUP8','8090','0','Ertr.a.Ant.a.and. Unternehmen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 286, 'AT-BASE','GROUP8','8100','0','Habenzinsen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 287, 'AT-BASE','GROUP8','8280','0','Zinsen f. Kredite u. Darlehen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 288, 'AT-BASE','GROUP8','8286','0','Kursgewinne/Kursverluste', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 289, 'AT-BASE','GROUP8','8288','0','Zinsen auf Lieferantenkredite', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 290, 'AT-BASE','GROUP8','8291','0','Sonst. Zinsen und ähnliche Aufwendungen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 291, 'AT-BASE','GROUP8','8500','0','Körperschaftsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 292, 'AT-BASE','GROUP8','8505','0','Kapitalertragsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 293, 'AT-BASE','GROUP8','8510','0','Körperschaftsteuervorauszahl.', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 294, 'AT-BASE','GROUP8','8511','0','Dotierung KöSt-Rückstellung', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 295, 'AT-BASE','GROUP8','8512','0','Aktivierung Körperschaftsteuer', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 296, 'AT-BASE','GROUP8','8513','0','Köst Vorperioden', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 297, 'AT-BASE','GROUP8','8520','0','Forschungsprämie', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 298, 'AT-BASE','GROUP8','8595','0','Ertrag aus der Aktivierung latenter Steuern', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 299, 'AT-BASE','GROUP8','8610','0','Auflösung sonstiger unversteuerter Rücklagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 300, 'AT-BASE','GROUP8','8700','0','Auflösung gebundener Kapitalrücklage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 301, 'AT-BASE','GROUP8','8710','0','Auflösung Rücklage für eigene Anteile', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 302, 'AT-BASE','GROUP8','8720','0','Auflösung nicht gebundene Kapitalrücklage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 303, 'AT-BASE','GROUP8','8750','0','Auflösung gesetzliche Rücklage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 304, 'AT-BASE','GROUP8','8760','0','Auflösung satzungsmäßige Rücklage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 305, 'AT-BASE','GROUP8','8770','0','Auflösung andere (freie) Rücklage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 306, 'AT-BASE','GROUP8','8810','0','Zuweisung sonstige unversteuerte Rücklagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 307, 'AT-BASE','GROUP8','8820','0','Zuweisung Inv. Rücklage', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 308, 'AT-BASE','GROUP8','8890','0','Zuw.Bew.Res.GWG', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 309, 'AT-BASE','GROUP8','8900','0','Zuweisung gesetzliche Rücklagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 310, 'AT-BASE','GROUP8','8910','0','Zuweisung satzungsmäßige Rücklagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 311, 'AT-BASE','GROUP8','8920','0','Zuweisung andere (freie) Rücklagen', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 312, 'AT-BASE','GROUP9','9390','0','Bilanzgewinn', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 313, 'AT-BASE','GROUP9','9391','0','Bilanzverlust', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 314, 'AT-BASE','GROUP9','9700','0','Wachdienst', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 315, 'AT-BASE','GROUP9','9991','0','Gewinnvortrag', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 316, 'AT-BASE','GROUP9','9993','0','Verlustvortrag', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 317, 'AT-BASE','GROUP9','9994','0','Verlustvortrag', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 318, 'AT-BASE','GROUP5','50200','0','Materialeinkauf', 1); +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_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..831ac6b8f08 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_accounting_account_us.sql b/htdocs/install/mysql/data/llx_accounting_account_us.sql index f0ca038ca08..3b0fade993a 100644 --- a/htdocs/install/mysql/data/llx_accounting_account_us.sql +++ b/htdocs/install/mysql/data/llx_accounting_account_us.sql @@ -20,9 +20,9 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- --- Note: INCOME = REVENUE --- Note: EXPENSE = EXPENSES --- Note: CAPITAL = EQUITY +-- Note (US-BASE): INCOME = REVENUE +-- Note (US-BASE): EXPENSE = EXPENSES +-- Note (US-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. @@ -31,6 +31,7 @@ -- Descriptif des plans comptables USA US-BASE -- ID 1000 - 9999 +-- ID 10000 - 10999 -- ADD 1100000 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__, 1000, 'US-BASE', 'ASSETS', '1', '0', 'Assets', 1); @@ -171,3 +172,144 @@ 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__, 1136, 'US-BASE', 'OTHER_EXPENSES', '8800', '8000', 'Utilities Expense', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1137, 'US-BASE', 'OTHER_EXPENSES', '8900', '8000', 'Gain/Loss on Sale of Assets', 1); INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1138, 'US-BASE', 'OTHER_EXPENSES', '8950', '8000', 'Other Expense', 1); + + +-- US-GAAP-Basic + + +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10000, 'US-GAAP-BASIC', 'ASSETS', '1', '0', 'Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10001, 'US-GAAP-BASIC', 'ASSETS', '11', '10000', 'Cash And Financial Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10002, 'US-GAAP-BASIC', 'ASSETS', '111', '10001', '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__, 10003, 'US-GAAP-BASIC', 'ASSETS', '112', '10001', 'Financial Assets (Investments)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10004, 'US-GAAP-BASIC', 'ASSETS', '113', '10001', 'Restricted Cash And Financial Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10005, 'US-GAAP-BASIC', 'ASSETS', '114', '10001', 'Additional Financial Assets And Investments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10006, 'US-GAAP-BASIC', 'ASSETS', '12', '10000', 'Receivables And Contracts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10007, 'US-GAAP-BASIC', 'ASSETS', '121', '10006', 'Accounts, Notes And Loans Receivable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10008, 'US-GAAP-BASIC', 'ASSETS', '122', '10006', 'Contracts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10009, 'US-GAAP-BASIC', 'ASSETS', '123', '10006', 'Nontrade And Other Receivables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10010, 'US-GAAP-BASIC', 'ASSETS', '13', '10000', 'Inventory', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10011, 'US-GAAP-BASIC', 'ASSETS', '131', '10010', 'Merchandise', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10012, 'US-GAAP-BASIC', 'ASSETS', '132', '10010', 'Raw Material, Parts And Supplies', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10013, 'US-GAAP-BASIC', 'ASSETS', '133', '10010', 'Work In Process', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10014, 'US-GAAP-BASIC', 'ASSETS', '134', '10010', 'Finished Goods', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10015, 'US-GAAP-BASIC', 'ASSETS', '135', '10010', 'Other Inventory', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10016, 'US-GAAP-BASIC', 'ASSETS', '14', '10000', 'Accruals And Additional Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10017, 'US-GAAP-BASIC', 'ASSETS', '141', '10016', 'Prepaid Expense', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10018, 'US-GAAP-BASIC', 'ASSETS', '142', '10016', 'Accrued Income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10019, 'US-GAAP-BASIC', 'ASSETS', '143', '10016', 'Additional Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10020, 'US-GAAP-BASIC', 'ASSETS', '15', '10000', '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__, 10021, 'US-GAAP-BASIC', 'ASSETS', '151', '10020', 'Land And Land Improvements', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10022, 'US-GAAP-BASIC', 'ASSETS', '152', '10020', 'Buildings, Structures And Improvements', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10023, 'US-GAAP-BASIC', 'ASSETS', '153', '10020', 'Machinery And Equipment', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10024, 'US-GAAP-BASIC', 'ASSETS', '154', '10020', 'Furniture And Fixtures', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10025, 'US-GAAP-BASIC', 'ASSETS', '155', '10020', 'Additional 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__, 10026, 'US-GAAP-BASIC', 'ASSETS', '156', '10020', 'Construction In Progress', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10027, 'US-GAAP-BASIC', 'ASSETS', '16', '10000', 'Intangible Assets (Excluding Goodwill)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10028, 'US-GAAP-BASIC', 'ASSETS', '161', '10027', 'Intellectual Property', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10029, 'US-GAAP-BASIC', 'ASSETS', '162', '10027', 'Computer Software', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10030, 'US-GAAP-BASIC', 'ASSETS', '163', '10027', 'Trade And Distribution Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10031, 'US-GAAP-BASIC', 'ASSETS', '164', '10027', 'Contracts And Rights', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10032, 'US-GAAP-BASIC', 'ASSETS', '165', '10027', 'Right To Use Assets (Classified By Type)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10033, 'US-GAAP-BASIC', 'ASSETS', '166', '10027', 'Other Intangible Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10034, 'US-GAAP-BASIC', 'ASSETS', '167', '10027', 'Acquisition In Progress', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10035, 'US-GAAP-BASIC', 'ASSETS', '17', '10000', 'Goodwill', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10036, 'US-GAAP-BASIC', 'LIABILITIES', '2', '0', 'Liabilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10037, 'US-GAAP-BASIC', 'LIABILITIES', '21', '10036', 'Payables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10038, 'US-GAAP-BASIC', 'LIABILITIES', '211', '10037', 'Trade Payables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10039, 'US-GAAP-BASIC', 'LIABILITIES', '212', '10037', 'Dividends Payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10040, 'US-GAAP-BASIC', 'LIABILITIES', '213', '10037', 'Interest Payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10041, 'US-GAAP-BASIC', 'LIABILITIES', '214', '10037', 'Other Payables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10042, 'US-GAAP-BASIC', 'LIABILITIES', '22', '10036', 'Accruals And Other Liabilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10043, 'US-GAAP-BASIC', 'LIABILITIES', '221', '10042', 'Accrued Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10044, 'US-GAAP-BASIC', 'LIABILITIES', '222', '10042', 'Deferred Income (Unearned Revenue) ', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10045, 'US-GAAP-BASIC', 'LIABILITIES', '223', '10042', 'Accrued Taxes (Other Than Payroll)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10046, 'US-GAAP-BASIC', 'LIABILITIES', '224', '10042', 'Other Liabilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10047, 'US-GAAP-BASIC', 'LIABILITIES', '23', '10036', 'Financial Labilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10048, 'US-GAAP-BASIC', 'LIABILITIES', '231', '10047', 'Notes Payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10049, 'US-GAAP-BASIC', 'LIABILITIES', '232', '10047', 'Loans Payable', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10050, 'US-GAAP-BASIC', 'LIABILITIES', '233', '10047', 'Bonds (Debentures)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10051, 'US-GAAP-BASIC', 'LIABILITIES', '234', '10047', 'Other Debts And Borrowings', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10052, 'US-GAAP-BASIC', 'LIABILITIES', '235', '10047', 'Lease Obligations', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10053, 'US-GAAP-BASIC', 'LIABILITIES', '236', '10047', 'Derivative Financial Liabilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10054, 'US-GAAP-BASIC', 'LIABILITIES', '24', '10036', 'Provisions (Contingencies)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10055, 'US-GAAP-BASIC', 'LIABILITIES', '241', '10054', 'Customer Related Provisions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10056, 'US-GAAP-BASIC', 'LIABILITIES', '242', '10054', 'Ligation And Regulatory Provisions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10057, 'US-GAAP-BASIC', 'LIABILITIES', '243', '10054', 'Additional Provisions', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10058, 'US-GAAP-BASIC', 'EQUITY', '3', '0', 'Equity', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10059, 'US-GAAP-BASIC', 'EQUITY', '31', '10058', 'Owners Equity (Attributable To Owners Of Parent)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10060, 'US-GAAP-BASIC', 'EQUITY', '311', '10059', 'Equity At Par (Issued Capital)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10061, 'US-GAAP-BASIC', 'EQUITY', '312', '10059', 'Additional Paid-In Capital', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10062, 'US-GAAP-BASIC', 'EQUITY', '32', '10058', 'Retained Earnings', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10063, 'US-GAAP-BASIC', 'EQUITY', '321', '10062', 'Appropriated', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10064, 'US-GAAP-BASIC', 'EQUITY', '322', '10062', 'Unappropriated', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10065, 'US-GAAP-BASIC', 'EQUITY', '323', '10062', 'Deficit ', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10066, 'US-GAAP-BASIC', 'EQUITY', '324', '10062', 'In Suspense', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10067, 'US-GAAP-BASIC', 'EQUITY', '33', '10058', 'Accumulated OCI', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10068, 'US-GAAP-BASIC', 'EQUITY', '331', '10067', 'Exchange Differences On Translation', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10069, 'US-GAAP-BASIC', 'EQUITY', '332', '10067', 'Remeasurements Cash Flow Hedges', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10070, 'US-GAAP-BASIC', 'EQUITY', '333', '10067', 'Remeasurements Available-For-Sale Financial Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10071, 'US-GAAP-BASIC', 'EQUITY', '334', '10067', 'Remeasurement Of Defined Benefit Plans', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10072, 'US-GAAP-BASIC', 'EQUITY', '34', '10058', 'Other Equity Items', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10073, 'US-GAAP-BASIC', 'EQUITY', '341', '10072', 'ESOP Related Items', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10074, 'US-GAAP-BASIC', 'EQUITY', '342', '10072', 'Subscribed Stock Receivables', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10075, 'US-GAAP-BASIC', 'EQUITY', '343', '10072', 'Treasury Stock', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10076, 'US-GAAP-BASIC', 'EQUITY', '344', '10072', 'Miscellaneous Equity', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10077, 'US-GAAP-BASIC', 'EQUITY', '35', '10058', 'Non-controlling (Minority) Interest', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10078, 'US-GAAP-BASIC', 'REVENUE', '4', '0', 'Revenue', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10079, 'US-GAAP-BASIC', 'REVENUE', '41', '10078', 'Recognized Point Of Time', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10080, 'US-GAAP-BASIC', 'REVENUE', '411', '10079', 'Goods', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10081, 'US-GAAP-BASIC', 'REVENUE', '412', '10079', 'Services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10082, 'US-GAAP-BASIC', 'REVENUE', '42', '10078', 'Recognized Over Time', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10083, 'US-GAAP-BASIC', 'REVENUE', '421', '10082', 'Products', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10084, 'US-GAAP-BASIC', 'REVENUE', '422', '10082', 'Services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10085, 'US-GAAP-BASIC', 'REVENUE', '43', '10078', 'Adjustments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10086, 'US-GAAP-BASIC', 'REVENUE', '431', '10085', 'Variable Consideration', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10087, 'US-GAAP-BASIC', 'REVENUE', '432', '10085', 'Consideration Paid (Payable) To Customers', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10088, 'US-GAAP-BASIC', 'REVENUE', '433', '10085', 'Other Adjustments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10089, 'US-GAAP-BASIC', 'EXPENSES', '5', '0', 'Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10090, 'US-GAAP-BASIC', 'EXPENSES', '51', '10089', 'Expenses Classified By Nature', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10091, 'US-GAAP-BASIC', 'EXPENSES', '511', '10090', 'Material And Merchandise', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10092, 'US-GAAP-BASIC', 'EXPENSES', '512', '10090', 'Employee Benefits', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10093, 'US-GAAP-BASIC', 'EXPENSES', '513', '10090', 'Services', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10094, 'US-GAAP-BASIC', 'EXPENSES', '514', '10090', 'Rent, Depreciation, Amortization And Depletion', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10095, 'US-GAAP-BASIC', 'EXPENSES', '52', '10089', 'Expenses Classified By Function', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10096, 'US-GAAP-BASIC', 'EXPENSES', '521', '10095', 'Cost Of Sales', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10097, 'US-GAAP-BASIC', 'EXPENSES', '522', '10095', 'Selling, General And Administrative ', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10098, 'US-GAAP-BASIC', 'EXPENSES', '523', '10095', 'Provision For Doubtful Accounts (US GAAP)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10099, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '6', '0', 'Other (Non-Operating) Income And Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10100, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '61', '10099', 'Other Revenue And Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10101, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '611', '10100', 'Other Revenue', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10102, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '612', '10100', 'Other Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10103, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '62', '10099', 'Gains And Losses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10104, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '621', '10103', 'Foreign Currency Transaction Gain (Loss)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10105, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '622', '10103', 'Gain (Loss) On Investments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10106, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '623', '10103', 'Gain (Loss) On Derivatives', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10107, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '624', '10103', 'Gain (Loss) On Disposal Of Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10108, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '625', '10103', 'Debt Related Gain (Loss)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10109, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '626', '10103', 'Impairment Loss', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10110, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '628', '10103', 'Other Gains And (Losses)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10111, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '63', '10099', 'Taxes (Other Than Income And Payroll) And Fees', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10112, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '631', '10111', 'Real Estate Taxes And Insurance', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10113, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '632', '10111', 'Highway (Road) Taxes And Tolls', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10114, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '633', '10111', 'Direct Tax And License Fees', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10115, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '634', '10111', 'Excise And Sales Taxes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10116, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '635', '10111', 'Customs Fees And Duties (Not Classified As Sales Or Excise)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10117, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '636', '10111', 'Non-Deductible VAT (GST)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10118, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '637', '10111', 'General Insurance Expense', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10119, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '638', '10111', 'Administrative Fees (Revenue Stamps)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10120, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '639', '10111', 'Fines And Penalties', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10121, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '6310', '10111', 'Miscellaneous Taxes', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10122, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '6311', '10111', 'Other Taxes And Fees', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10123, 'US-GAAP-BASIC', 'OTHER_INCOME_EXPENSES', '64', '10099', 'Income Tax Expense (Benefit)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10124, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '7', '0', 'Intercompany And Related Party Accounts', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10125, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '71', '10124', 'Intercompany And Related Party Assets', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10126, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '711', '10125', 'Intercompany Balances (Eliminated In Consolidation)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10127, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '712', '10125', 'Related Party Balances (Reported Or Disclosed)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10128, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '713', '10125', 'Intercompany Investments', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10129, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '72', '10124', 'Intercompany And Related Party Liabilities', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10130, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '721', '10129', 'Intercompany Balances (Eliminated In Consolidation)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10131, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '722', '10129', 'Related Party Balances (Reported Or Disclosed)', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10132, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '73', '10124', 'Intercompany And Related Party Income And Expense', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10133, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '731', '10132', 'Intercompany And Related Party Income', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10134, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '732', '10132', 'Intercompany And Related Party Expenses', 1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 10135, 'US-GAAP-BASIC', 'INTERCOMPANY_RELPARTY_ACCOUNTS', '733', '10132', 'Income (Loss) From Equity Method Investments', 1); diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql index d039c285a3e..e4936c53ba3 100644 --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql @@ -167,10 +167,16 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value 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); --- oliday +-- 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); 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_availability.sql b/htdocs/install/mysql/data/llx_c_availability.sql index 9b5d1ca5e32..b98db76b48e 100644 --- a/htdocs/install/mysql/data/llx_c_availability.sql +++ b/htdocs/install/mysql/data/llx_c_availability.sql @@ -1,6 +1,8 @@ -- Copyright (C) 2011 Philippe GRAND -- Copyright (C) 2020 Alexandre SPANGARO +-- Copyright (C) 2022 Udo Tamm, dolibit -- + -- 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 @@ -16,7 +18,12 @@ -- -- +-- WARNING +-- Do not place a comment at the end of the line, this file is parsed during +-- installation and all '--' symbols are removed. -- + +-- ATTENTION -- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors -- de l'install et tous les sigles '--' sont supprimés. -- @@ -25,9 +32,15 @@ -- Availability type -- -INSERT INTO llx_c_availability (code,label,type_duration,qty,active,position) VALUES ('AV_NOW', 'Immediate', null, 0, 1, 10); -INSERT INTO llx_c_availability (code,label,type_duration,qty,active,position) VALUES ('AV_1W', '1 week', 'w', 1, 1, 20); -INSERT INTO llx_c_availability (code,label,type_duration,qty,active,position) VALUES ('AV_2W', '2 weeks', 'w', 2, 1, 30); -INSERT INTO llx_c_availability (code,label,type_duration,qty,active,position) VALUES ('AV_3W', '3 weeks', 'w', 3, 1, 40); -INSERT INTO llx_c_availability (code,label,type_duration,qty,active,position) VALUES ('AV_4W', '4 weeks', 'w', 4, 1, 50); - +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_NOW', 'Immediate', null, 0, 1, 10); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_1W', '1 week', 'w', 1, 1, 20); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_2W', '2 weeks', 'w', 2, 1, 30); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_3W', '3 weeks', 'w', 3, 1, 40); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_4W', '4 weeks', 'w', 4, 1, 50); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_5W', '5 weeks', 'w', 5, 1, 60); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_6W', '6 weeks', 'w', 6, 1, 70); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_8W', '8 weeks', 'w', 8, 1, 80); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_10W', '10 weeks', 'w', 10, 1, 90); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_12W', '12 weeks', 'w', 12, 1, 100); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_14W', '14 weeks', 'w', 14, 1, 110); +INSERT INTO llx_c_availability (code, label, type_duration, qty, active, position) VALUES ('AV_16W', '16 weeks', 'w', 16, 1, 120); diff --git a/htdocs/install/mysql/data/llx_c_currencies.sql b/htdocs/install/mysql/data/llx_c_currencies.sql index df887d68be7..04d17e98b6a 100644 --- a/htdocs/install/mysql/data/llx_c_currencies.sql +++ b/htdocs/install/mysql/data/llx_c_currencies.sql @@ -7,6 +7,7 @@ -- Copyright (C) 2007 Patrick Raguin -- Copyright (C) 2011 Juanjo Menent -- Copyright (C) 2020 Udo Tamm +-- Copyright (C) 2022 Éric Seigne -- Copyright (C) 2021 Lenin Rivas -- -- This program is free software; you can redistribute it and/or modify @@ -57,6 +58,7 @@ INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BWP' INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BGN', '[1083,1074]', 1, 'Bulgaria Lev'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BRL', '[82,36]', 1, 'Brazil Real'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BND', '[36]', 1, 'Brunei Darussalam Dollar'); +INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BIF', NULL, 1, 'Burundi Franc'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KHR', '[6107]', 1, 'Cambodia Riel'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CAD', '[36]', 1, 'Canada Dollar'); INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CVE', '[4217]', 1, 'Cap Verde Escudo'); @@ -114,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_forme_juridique.sql b/htdocs/install/mysql/data/llx_c_forme_juridique.sql index 2b3accc5482..c35824fa235 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)'); @@ -384,6 +384,13 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (20, '2010', ' INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (20, '2011', 'Ideell förening'); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (20, '2012', 'Stiftelse'); +-- Burundi (id contry=61) +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (61,'6100','Indépendant - Personne physique'); +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (61,'6101','Société Unipersonnelle'); +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (61,'6102','Société de personne à responsabilité limité (SPRL)'); +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (61,'6103','Société anonyme (SA)'); +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (61,'6104','Société coopérative'); + -- Croatia (id country=76) INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (76, '7601', 'Društvo s ograničenom odgovornošću (d.o.o.)'); INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (76, '7602', 'Jednostavno društvo s ograničenom odgovornošću (j.d.o.o.)'); @@ -396,3 +403,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_holiday_type.sql b/htdocs/install/mysql/data/llx_c_holiday_type.sql index 65f9a51b037..99ddc9e61e5 100644 --- a/htdocs/install/mysql/data/llx_c_holiday_type.sql +++ b/htdocs/install/mysql/data/llx_c_holiday_type.sql @@ -25,12 +25,12 @@ -- -- Generic to all countries -insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, active) values ('LEAVE_SICK', 'Sick leave', 0, 0, 0, NULL, 1); -insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, active) values ('LEAVE_OTHER', 'Other leave', 0, 0, 0, NULL, 1); +insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, sortorder, active) values ('LEAVE_SICK', 'Sick leave', 0, 0, 0, NULL, 1, 1); +insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, sortorder, active) values ('LEAVE_OTHER', 'Other leave', 0, 0, 0, NULL, 2, 1); -- Not enabled by default, we prefer to have an entrey dedicated to country -insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, active) values ('LEAVE_PAID', 'Paid vacation', 1, 7, 0, NULL, 0); +insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, sortorder, active) values ('LEAVE_PAID', 'Paid vacation', 1, 7, 0, NULL, 3, 0); -- Leaves specific to France -insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, active) values ('LEAVE_RTT_FR', 'RTT' , 1, 7, 0.83, 1, 1); -insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, active) values ('LEAVE_PAID_FR', 'Paid vacation', 1, 30, 2.08334, 1, 1); +insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, sortorder, active) values ('LEAVE_RTT_FR', 'RTT' , 1, 7, 0.83, 1, 4, 1); +insert into llx_c_holiday_types(code, label, affect, delay, newbymonth, fk_country, sortorder, active) values ('LEAVE_PAID_FR', 'Paid vacation', 1, 30, 2.08334, 1, 5, 1); 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..a8e9ac3be80 100644 --- a/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql +++ b/htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql @@ -47,6 +47,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); diff --git a/htdocs/install/mysql/data/llx_c_partnership_type.sql b/htdocs/install/mysql/data/llx_c_partnership_type-partnership.sql similarity index 100% rename from htdocs/install/mysql/data/llx_c_partnership_type.sql rename to htdocs/install/mysql/data/llx_c_partnership_type-partnership.sql diff --git a/htdocs/install/mysql/data/llx_c_payment_term.sql b/htdocs/install/mysql/data/llx_c_payment_term.sql index b5ff008912b..5a48e57a443 100644 --- a/htdocs/install/mysql/data/llx_c_payment_term.sql +++ b/htdocs/install/mysql/data/llx_c_payment_term.sql @@ -26,17 +26,18 @@ -- Do not include comments at end of line, this file is parsed during install and string '--' are removed. -- -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (1 ,'RECEP', 1,1, 'Due upon receipt','Due upon receipt',0,1); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (2 ,'30D', 2,1, '30 days','Due in 30 days',0,30); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (3 ,'30DENDMONTH', 3,1, '30 days end of month','Due in 30 days, end of month',1,30); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (4 ,'60D', 4,1, '60 days','Due in 60 days, end of month',0,60); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (5 ,'60DENDMONTH', 5,1, '60 days end of month','Due in 60 days, end of month',1,60); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (6 ,'PT_ORDER', 6,1, 'Due on order','Due on order',0,1); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (7 ,'PT_DELIVERY', 7,1, 'Due on delivery','Due on delivery',0,1); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (8 ,'PT_5050', 8,1, '50 and 50','50% on order, 50% on delivery',0,1); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (1 ,'RECEP', 1,1, 'Due upon receipt','Due upon receipt',0,1,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (2 ,'30D', 2,1, '30 days','Due in 30 days',0,30,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (3 ,'30DENDMONTH', 3,1, '30 days end of month','Due in 30 days, end of month',1,30,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (4 ,'60D', 4,1, '60 days','Due in 60 days, end of month',0,60,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (5 ,'60DENDMONTH', 5,1, '60 days end of month','Due in 60 days, end of month',1,60,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (6 ,'PT_ORDER', 6,1, 'Due on order','Due on order',0,1,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (7 ,'PT_DELIVERY', 7,1, 'Due on delivery','Due on delivery',0,1,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (8 ,'PT_5050', 8,1, '50 and 50','50% on order, 50% on delivery',0,1,NULL); -- Add additional payment terms often needed in Austria -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (9 ,'10D', 9,1, '10 days','Due in 10 days',0,10); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (10,'10DENDMONTH', 10,1, '10 days end of month','Due in 10 days, end of month',1,10); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (11,'14D', 11,1, '14 days','Due in 14 days',0,14); -insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour) values (12,'14DENDMONTH', 12,1, '14 days end of month','Due in 14 days, end of month',1,14); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (9 ,'10D', 9,1, '10 days','Due in 10 days',0,10,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (10,'10DENDMONTH', 10,1, '10 days end of month','Due in 10 days, end of month',1,10,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (11,'14D', 11,1, '14 days','Due in 14 days',0,14,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (12,'14DENDMONTH', 12,1, '14 days end of month','Due in 14 days, end of month',1,14,NULL); +insert into llx_c_payment_term(rowid, code, sortorder, active, libelle, libelle_facture, type_cdr, nbjour, deposit_percent) values (13,'DEP30PCTDEL', 13,0, '__DEPOSIT_PERCENT__% deposit','__DEPOSIT_PERCENT__% deposit, remainder on delivery',0,1,'30'); 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 b041e07b95f..d78fea4ad4d 100644 --- a/htdocs/install/mysql/data/llx_c_tva.sql +++ b/htdocs/install/mysql/data/llx_c_tva.sql @@ -400,5 +400,7 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (23 --delete from llx_c_tva where rowid = 1181; -- to delete a record that does not follow rules for rowid (fk_pays+'1') --insert into llx_c_tva(rowid, fk_pays, taux, recuperableonly, note, active) SELECT CONCAT(c.rowid, '1'), c.rowid, 0, 0, 'No VAT', 1 from llx_c_country as c where c.rowid not in (select fk_pays from llx_c_tva); - - +-- BURUNDI (id country=61) -- https://www.objectif-import-export.fr/fr/marches-internationaux/fiche-pays/burundi/presentation-fiscalite +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (2335,61, '0','0','No VAT',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (2336,61, '10','0','VAT 10%',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (2337,61, '18','0','VAT 18%',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_c_type_resource.sql b/htdocs/install/mysql/data/llx_c_type_resource.sql index fb93d6ff68b..2ecb837ff15 100644 --- a/htdocs/install/mysql/data/llx_c_type_resource.sql +++ b/htdocs/install/mysql/data/llx_c_type_resource.sql @@ -30,6 +30,6 @@ -- Type resources -- -insert into llx_c_type_resource (code,label,active) values ('RES_ROOMS', 'Rooms', 1); -insert into llx_c_type_resource (code,label,active) values ('RES_CARS', 'Cars', 1); +insert into llx_c_type_resource (code, label, active) values ('RES_ROOMS', 'Rooms', 1); +insert into llx_c_type_resource (code, label, active) values ('RES_CARS', 'Cars', 1); 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 4b34d3a72ac..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 @@ -36,7 +36,9 @@ -- VPGSQL8.2 ALTER TABLE llx_partnership ALTER COLUMN date_partnership_end DROP NOT NULL; 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; ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_export datetime DEFAULT NULL; @@ -119,8 +121,8 @@ ALTER TABLE llx_product ADD COLUMN mandatory_period tinyint NULL DEFAULT 0; ALTER TABLE llx_holiday ADD COLUMN date_approve DATETIME DEFAULT NULL; ALTER TABLE llx_holiday ADD COLUMN fk_user_approve integer DEFAULT NULL; -ALTER TABLE llx_ticket MODIFY COLUMN progress integer; - +-- VMYSQL4.3 ALTER TABLE llx_ticket MODIFY COLUMN progress integer; +-- VPGSQL8.2 ALTER TABLE llx_ticket MODIFY COLUMN progress integer USING progress::integer; ALTER TABLE llx_emailcollector_emailcollectoraction MODIFY COLUMN actionparam TEXT; @@ -537,6 +539,21 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, -- VMYSQL4.3 ALTER TABLE llx_user MODIFY COLUMN fk_soc integer NULL; -- VPGSQL8.2 ALTER TABLE llx_user ALTER COLUMN fk_soc DROP NOT NULL; +CREATE TABLE llx_element_tag +( + 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_tag ADD COLUMN fk_categorie integer; +ALTER TABLE llx_element_tag ADD COLUMN fk_element integer; + +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); + -- Add column to help to fix a very critical bug when transferring into accounting bank record of a bank account into another currency. -- Idea is to update this column manually in v15 with value in currency of company for bank that are not into the main currency and the transfer -- into accounting will use it in priority if value is not null. The script repair.sql contains the sequence to fix datas in llx_bank. 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 39560240475..6d9aebf934f 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 @@ -14,7 +14,9 @@ -- 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 CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; +-- 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); @@ -30,10 +32,40 @@ -- -- VPGSQL8.2 SELECT dol_util_rebuild_sequences(); -ALTER TABLE llx_holiday ADD COLUMN nb_open_day double(24,8) DEFAULT NULL; -- Missing in v15 or lower +-- VMYSQL4.3 ALTER TABLE llx_c_civility ADD PRIMARY KEY(rowid); +-- VMYSQL4.3 ALTER TABLE llx_c_civility CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; + +-- VMYSQL4.3 ALTER TABLE llx_c_payment_term ADD PRIMARY KEY(rowid); +-- VMYSQL4.3 ALTER TABLE llx_c_payment_term CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; + +-- VPGSQL8.2 CREATE SEQUENCE llx_c_civility_rowid_seq OWNED BY llx_c_civility.rowid; +-- VPGSQL8.2 ALTER TABLE llx_c_civility ADD PRIMARY KEY (rowid); +-- VPGSQL8.2 ALTER TABLE llx_c_civility ALTER COLUMN rowid SET DEFAULT nextval('llx_c_civility_rowid_seq'); +-- VPGSQL8.2 SELECT setval('llx_c_civility_rowid_seq', MAX(rowid)) FROM llx_c_civility; + +-- VPGSQL8.2 CREATE SEQUENCE llx_c_payment_term_rowid_seq OWNED BY llx_c_payment_term.rowid; +-- VPGSQL8.2 ALTER TABLE llx_c_payment_term ADD PRIMARY KEY (rowid); +-- 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); + +ALTER TABLE llx_c_shipment_mode MODIFY COLUMN tracking varchar(255) NULL; + +ALTER TABLE llx_holiday ADD COLUMN nb_open_day double(24,8) DEFAULT NULL; + +ALTER TABLE llx_element_tag ADD COLUMN fk_categorie INTEGER; + + +insert into llx_c_type_resource (code, label, active) values ('RES_ROOMS', 'Rooms', 1); +insert into llx_c_type_resource (code, label, active) values ('RES_CARS', 'Cars', 1); + ALTER TABLE llx_c_actioncomm MODIFY COLUMN libelle varchar(128); ALTER TABLE llx_c_availability MODIFY COLUMN label varchar(128); ALTER TABLE llx_c_barcode_type MODIFY COLUMN libelle varchar(128); @@ -103,8 +135,38 @@ 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; + UPDATE llx_cronjob set label = 'RecurringInvoicesJob' where label = 'RecurringInvoices'; UPDATE llx_cronjob set label = 'RecurringSupplierInvoicesJob' where label = 'RecurringSupplierInvoices'; @@ -112,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); @@ -144,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); @@ -214,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, @@ -248,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); @@ -273,9 +340,12 @@ ALTER TABLE llx_product_attribute_value MODIFY COLUMN value VARCHAR(255) NOT NUL ALTER TABLE llx_product_attribute_value ADD COLUMN position INTEGER NOT NULL DEFAULT 0; ALTER TABLE llx_product_attribute CHANGE rang position INTEGER DEFAULT 0 NOT NULL; +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN position INTEGER NOT NULL DEFAULT 0; + 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 ( @@ -285,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); @@ -294,6 +365,234 @@ ALTER TABLE llx_bank_account ADD COLUMN pti_in_ctti smallint DEFAULT 0 AFTER dom -- Set default ticket type to OTHER if no default exists 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 +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; @@ -325,13 +624,68 @@ UPDATE llx_c_availability SET type_duration = 'w', qty = 2 WHERE code = 'AV_2W'; UPDATE llx_c_availability SET type_duration = 'w', qty = 3 WHERE code = 'AV_3W'; 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; + +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'); + + ALTER TABLE llx_boxes_def ADD COLUMN fk_user integer DEFAULT 0 NOT NULL; ALTER TABLE llx_contratdet ADD COLUMN rang integer DEFAULT 0 AFTER info_bits; ALTER TABLE llx_actioncomm MODIFY COLUMN note mediumtext; -DELETE FROM llx_boxes WHERE box_id IN (select rowid FROM llx_boxes_def WHERE file IN ('box_bom.php@bom', 'box_bom.php')); -DELETE FROM llx_boxes_def WHERE file IN ('box_bom.php@bom', 'box_bom.php'); +DELETE FROM llx_boxes WHERE box_id IN (select rowid FROM llx_boxes_def WHERE file IN ('box_bom.php@bom', 'box_bom.php', 'box_members.php', 'box_last_modified_ticket', 'box_members_last_subscriptions', 'box_members_last_modified', 'box_members_subscriptions_by_year')); +DELETE FROM llx_boxes_def WHERE file IN ('box_bom.php@bom', 'box_bom.php', 'box_members.php', 'box_last_modified_ticket', 'box_members_last_subscriptions', 'box_members_last_modified', 'box_members_subscriptions_by_year'); -ALTER TABLE llx_takepos_floor_tables ADD UNIQUE(entity,label); \ No newline at end of file +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_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_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; + +ALTER TABLE llx_c_holiday_types ADD COLUMN sortorder smallint; + +ALTER TABLE llx_expedition MODIFY COLUMN ref_customer varchar(255); + +ALTER TABLE llx_extrafields ADD COLUMN css varchar(128); +ALTER TABLE llx_extrafields ADD COLUMN cssview varchar(128); +ALTER TABLE llx_extrafields ADD COLUMN csslist varchar(128); + +ALTER TABLE llx_cronjob ADD COLUMN email_alert varchar(128); + +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); 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..01cbb851d51 --- /dev/null +++ b/htdocs/install/mysql/migration/16.0.0-17.0.0.sql @@ -0,0 +1,172 @@ +-- +-- 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; + + +-- v17 + +-- 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_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_ticket ADD COLUMN ip varchar(250); + +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_societe ADD last_main_doc VARCHAR(255) NULL AFTER model_pdf; + +ALTER TABLE llx_ticket ADD COLUMN ip varchar(250); + +ALTER TABLE llx_ticket ADD email_date datetime after email_msgid; + +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_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_rights_def ADD COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; + + +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_fk_categorie(rowid); diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 070f3a2c5da..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); @@ -559,6 +566,13 @@ DELETE FROM llx_rights_def WHERE module = 'hrm' AND perms = 'employee'; -- Sequence to fix the content of llx_bank.amount_main_currency +-- Note: amount is amount in currency of bank account +-- Note: pamount is always amount into the main currency +-- Note: pmulticurrencyamount is in currency of invoice +-- Note: amount_main_currency must be amount in main currency -- DROP TABLE tmp_bank; -- CREATE TABLE tmp_bank SELECT b.rowid, b.amount, p.rowid as pid, p.amount as pamount, p.multicurrency_amount as pmulticurrencyamount FROM llx_bank as b INNER JOIN llx_bank_url as bu ON bu.fk_bank=b.rowid AND bu.type = 'payment' INNER JOIN llx_paiement as p ON bu.url_id = p.rowid WHERE p.multicurrency_amount <> 0 AND p.multicurrency_amount <> p.amount; -- UPDATE llx_bank as b SET b.amount_main_currency = (SELECT tb.pamount FROM tmp_bank as tb WHERE tb.rowid = b.rowid) WHERE b.amount_main_currency IS NULL; +-- DROP TABLE tmp_bank2; +-- CREATE TABLE tmp_bank2 SELECT b.rowid, b.amount, p.rowid as pid, p.amount as pamount, p.multicurrency_amount as pmulticurrencyamount FROM llx_bank as b INNER JOIN llx_bank_url as bu ON bu.fk_bank=b.rowid AND bu.type = 'payment_supplier' INNER JOIN llx_paiementfourn as p ON bu.url_id = p.rowid WHERE p.multicurrency_amount <> 0 AND p.multicurrency_amount <> p.amount; +-- UPDATE llx_bank as b SET b.amount_main_currency = (SELECT tb.pamount FROM tmp_bank2 as tb WHERE tb.rowid = b.rowid) WHERE b.amount_main_currency IS NULL; 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.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_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_asset_type_extrafields-asset.key.sql b/htdocs/install/mysql/tables/llx_bank_extrafields.key.sql similarity index 68% rename from htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.key.sql rename to htdocs/install/mysql/tables/llx_bank_extrafields.key.sql index ec0b4b28619..3d308e79684 100644 --- a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.key.sql +++ b/htdocs/install/mysql/tables/llx_bank_extrafields.key.sql @@ -1,4 +1,5 @@ --- Copyright (C) 2018 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 @@ -12,6 +13,8 @@ -- -- 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); +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_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_email_templates.sql b/htdocs/install/mysql/tables/llx_c_email_templates.sql index 04130a208fe..4d22767bc58 100644 --- a/htdocs/install/mysql/tables/llx_c_email_templates.sql +++ b/htdocs/install/mysql/tables/llx_c_email_templates.sql @@ -32,6 +32,10 @@ create table llx_c_email_templates position smallint, -- Position enabled varchar(255) DEFAULT '1', -- Condition to have this module visible active tinyint DEFAULT 1 NOT NULL, + email_from varchar(255), -- default email from + email_to varchar(255), -- default email to + email_tocc varchar(255), -- default email to cc + email_tobcc varchar(255), -- default email to bcc topic text, -- Predefined topic joinfiles text, -- Files to attach content mediumtext, -- Predefined text diff --git a/htdocs/install/mysql/tables/llx_c_holiday_types.sql b/htdocs/install/mysql/tables/llx_c_holiday_types.sql index 63a6e522822..438c2deb400 100644 --- a/htdocs/install/mysql/tables/llx_c_holiday_types.sql +++ b/htdocs/install/mysql/tables/llx_c_holiday_types.sql @@ -25,5 +25,6 @@ CREATE TABLE llx_c_holiday_types ( newbymonth double(8,5) DEFAULT 0 NOT NULL, -- Amount of new days for each user each month fk_country integer DEFAULT NULL, -- This type is dedicated to a country block_if_negative integer NOT NULL DEFAULT 0, + sortorder smallint, active integer DEFAULT 1 ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_c_partnership_type.key.sql b/htdocs/install/mysql/tables/llx_c_partnership_type-partnership.key.sql similarity index 100% rename from htdocs/install/mysql/tables/llx_c_partnership_type.key.sql rename to htdocs/install/mysql/tables/llx_c_partnership_type-partnership.key.sql diff --git a/htdocs/install/mysql/tables/llx_c_partnership_type.sql b/htdocs/install/mysql/tables/llx_c_partnership_type-partnership.sql similarity index 92% rename from htdocs/install/mysql/tables/llx_c_partnership_type.sql rename to htdocs/install/mysql/tables/llx_c_partnership_type-partnership.sql index 99841f967cb..fe4dd904662 100644 --- a/htdocs/install/mysql/tables/llx_c_partnership_type.sql +++ b/htdocs/install/mysql/tables/llx_c_partnership_type-partnership.sql @@ -31,6 +31,7 @@ create table llx_c_partnership_type entity integer DEFAULT 1 NOT NULL, code varchar(32) NOT NULL, label varchar(128) NOT NULL, + keyword varchar(128), -- a keyword to check into url of partner website or a dedicated url defined into partneship record active tinyint DEFAULT 1 NOT NULL )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_c_payment_term.sql b/htdocs/install/mysql/tables/llx_c_payment_term.sql index 087ab63c184..e7b2b606b65 100644 --- a/htdocs/install/mysql/tables/llx_c_payment_term.sql +++ b/htdocs/install/mysql/tables/llx_c_payment_term.sql @@ -30,6 +30,7 @@ create table llx_c_payment_term type_cdr tinyint, -- Type of change date reckoning. 1=Payment at end of current month, 2=the Nth of next month nbjour smallint, decalage smallint, + deposit_percent varchar(63) DEFAULT NULL, module varchar(32) NULL, position integer NOT NULL DEFAULT 0 )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_c_stcomm.sql b/htdocs/install/mysql/tables/llx_c_stcomm.sql index aa5d58a280f..f94ba35be7b 100644 --- a/htdocs/install/mysql/tables/llx_c_stcomm.sql +++ b/htdocs/install/mysql/tables/llx_c_stcomm.sql @@ -21,7 +21,7 @@ create table llx_c_stcomm ( id integer PRIMARY KEY, - code varchar(12) NOT NULL, + code varchar(24) NOT NULL, libelle varchar(128), picto 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 5b8a78c7bf8..862d3c733fc 100644 --- a/htdocs/install/mysql/tables/llx_commande.sql +++ b/htdocs/install/mysql/tables/llx_commande.sql @@ -47,11 +47,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), @@ -63,6 +66,7 @@ create table llx_commande fk_account integer, -- bank account fk_currency varchar(3), -- currency code fk_cond_reglement integer, -- condition de reglement + deposit_percent varchar(63) DEFAULT NULL, -- default deposit % if payment term needs it fk_mode_reglement integer, -- mode de reglement date_livraison datetime default NULL, 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 a9aa8960991..012801c28bb 100644 --- a/htdocs/install/mysql/tables/llx_cronjob.sql +++ b/htdocs/install/mysql/tables/llx_cronjob.sql @@ -23,12 +23,12 @@ CREATE TABLE llx_cronjob rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, datec datetime, - jobtype varchar(10) NOT NULL, - label text NOT NULL, + jobtype varchar(10) NOT NULL, -- 'method', 'function' or 'command' + label varchar(255) NOT NULL, command varchar(255), - classesname varchar(255), + classesname varchar(255), -- when jobtype is 'method', name of the class file containing the method. objectname varchar(255), - methodename varchar(255), + methodename varchar(255), -- name of method or function params text, md5params varchar(32), module_name varchar(255), @@ -47,12 +47,14 @@ 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, fk_mailing integer DEFAULT NULL, -- id of emailing if job was queued to send mass emailing note text, - libname varchar(255), + libname varchar(255), -- when jobtype is 'function', name of the library file containing the function. + email_alert varchar(128), -- email for alert entity integer DEFAULT 0 )ENGINE=innodb; 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_categorie.key.sql b/htdocs/install/mysql/tables/llx_element_categorie.key.sql new file mode 100644 index 00000000000..5ad41616d38 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_element_categorie.key.sql @@ -0,0 +1,22 @@ +-- ============================================================================ +-- 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 . +-- +-- ============================================================================ + + +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_fk_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 389093241ce..f13fff71a6f 100644 --- a/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql @@ -16,29 +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, 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, - import_key varchar(14), + 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), 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_eventorganization_conferenceorboothattendee.sql b/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql index d6139f48f21..973c738a076 100644 --- a/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql +++ b/htdocs/install/mysql/tables/llx_eventorganization_conferenceorboothattendee.sql @@ -1,4 +1,4 @@ --- Copyright (C) ---Put here your own copyright and developer email--- +-- Copyright (C) 2021-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,7 +22,10 @@ CREATE TABLE llx_eventorganization_conferenceorboothattendee( fk_actioncomm integer, fk_project integer NOT NULL, fk_invoice integer NULL, - email varchar(100), + email varchar(128), + email_company varchar(128), + firstname varchar(100), + lastname varchar(100), date_subscription datetime, amount double DEFAULT NULL, note_public text, diff --git a/htdocs/install/mysql/tables/llx_extrafields.sql b/htdocs/install/mysql/tables/llx_extrafields.sql index 1ade8502bf5..33a317d4abd 100644 --- a/htdocs/install/mysql/tables/llx_extrafields.sql +++ b/htdocs/install/mysql/tables/llx_extrafields.sql @@ -40,6 +40,9 @@ create table llx_extrafields totalizable boolean DEFAULT FALSE, -- is extrafield totalizable on list langs varchar(64), -- example: fileofmymodule@mymodule help text, -- to store help tooltip + css varchar(128), -- to store css on create/update forms + cssview varchar(128), -- to store css on view form + csslist varchar(128), -- to store css on list fk_user_author integer, -- user making creation fk_user_modif integer, -- user making last change datec datetime, -- date de creation diff --git a/htdocs/install/mysql/tables/llx_facture.sql b/htdocs/install/mysql/tables/llx_facture.sql index 8c7e2db385c..3e8ac2b7a50 100644 --- a/htdocs/install/mysql/tables/llx_facture.sql +++ b/htdocs/install/mysql/tables/llx_facture.sql @@ -48,6 +48,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 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_fichinter.sql b/htdocs/install/mysql/tables/llx_fichinter.sql index 7c1ef4cf184..b9f9008f202 100644 --- a/htdocs/install/mysql/tables/llx_fichinter.sql +++ b/htdocs/install/mysql/tables/llx_fichinter.sql @@ -25,6 +25,7 @@ create table llx_fichinter fk_contrat integer DEFAULT 0, -- contrat auquel est rattache la fiche ref varchar(30) NOT NULL, -- number ref_ext varchar(255), + ref_client varchar(255), -- customer intervention number entity integer DEFAULT 1 NOT NULL, -- multi company id tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, datec datetime, -- date de creation 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_asset_type-asset.key.sql b/htdocs/install/mysql/tables/llx_loan_schedule-loan.key.sql similarity index 68% rename from htdocs/install/mysql/tables/llx_asset_type-asset.key.sql rename to htdocs/install/mysql/tables/llx_loan_schedule-loan.key.sql index 4a7c4cb1145..8d47d879a2d 100644 --- a/htdocs/install/mysql/tables/llx_asset_type-asset.key.sql +++ b/htdocs/install/mysql/tables/llx_loan_schedule-loan.key.sql @@ -1,4 +1,5 @@ --- Copyright (C) 2018 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 @@ -12,5 +13,8 @@ -- -- 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); -ALTER TABLE llx_asset_type ADD UNIQUE INDEX uk_asset_type_label (label, entity); 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_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_paiement.sql b/htdocs/install/mysql/tables/llx_paiement.sql index bbf7d52e6c7..84cdc86b29a 100644 --- a/htdocs/install/mysql/tables/llx_paiement.sql +++ b/htdocs/install/mysql/tables/llx_paiement.sql @@ -32,7 +32,7 @@ create table llx_paiement fk_paiement integer NOT NULL, -- type of payment in llx_c_paiement num_paiement varchar(50), note text, - ext_payment_id varchar(128), -- external id of payment (for example Stripe charge id) + ext_payment_id varchar(255), -- external id of payment (for example Stripe charge id) ext_payment_site varchar(128), -- name of external paymentmode (for example 'stripe') fk_bank integer NOT NULL DEFAULT 0, fk_user_creat integer, -- utilisateur qui a cree l'info diff --git a/htdocs/install/mysql/tables/llx_partnership-partnership.sql b/htdocs/install/mysql/tables/llx_partnership-partnership.sql index e3a5cb37e05..d023e67920e 100644 --- a/htdocs/install/mysql/tables/llx_partnership-partnership.sql +++ b/htdocs/install/mysql/tables/llx_partnership-partnership.sql @@ -28,14 +28,16 @@ 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, note_public text, last_main_doc varchar(255), - count_last_url_check_error integer DEFAULT '0', - last_check_backlink datetime NULL, + 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_donation.sql b/htdocs/install/mysql/tables/llx_payment_donation.sql index a93a6c1a0e9..c14ec9b00de 100644 --- a/htdocs/install/mysql/tables/llx_payment_donation.sql +++ b/htdocs/install/mysql/tables/llx_payment_donation.sql @@ -27,7 +27,7 @@ create table llx_payment_donation fk_typepayment integer NOT NULL, num_payment varchar(50), note text, - ext_payment_id varchar(128), -- external id of payment (for example Stripe charge id) + ext_payment_id varchar(255), -- external id of payment (for example Stripe charge id) ext_payment_site varchar(128), -- name of external paymentmode (for example 'stripe') fk_bank integer NOT NULL, fk_user_creat integer, -- creation user diff --git a/htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql b/htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql index 4e1f37c6d3f..9837f709777 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql +++ b/htdocs/install/mysql/tables/llx_prelevement_facture_demande.sql @@ -35,6 +35,6 @@ create table llx_prelevement_facture_demande code_guichet varchar(6), number varchar(255), cle_rib varchar(5), - ext_payment_id varchar(128), + ext_payment_id varchar(255), ext_payment_site varchar(128) )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql index 80e3f90b828..a234ae8ddb1 100644 --- a/htdocs/install/mysql/tables/llx_product.sql +++ b/htdocs/install/mysql/tables/llx_product.sql @@ -40,8 +40,8 @@ create table llx_product customcode varchar(32), -- Optionnal custom code fk_country integer DEFAULT NULL, -- Optionnal id of original country fk_state integer DEFAULT NULL, -- Optionnal id of original state/province - price double(24,8) DEFAULT 0, - price_ttc double(24,8) DEFAULT 0, + price double(24,8) DEFAULT 0, -- price without tax + price_ttc double(24,8) DEFAULT 0, -- price inc vat (but not localtax1 nor localtax2) price_min double(24,8) DEFAULT 0, price_min_ttc double(24,8) DEFAULT 0, price_base_type varchar(3) DEFAULT 'HT', @@ -59,6 +59,7 @@ create table llx_product 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) 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), diff --git a/htdocs/install/mysql/tables/llx_product_price.sql b/htdocs/install/mysql/tables/llx_product_price.sql index 77a00939428..2a64fc92c30 100644 --- a/htdocs/install/mysql/tables/llx_product_price.sql +++ b/htdocs/install/mysql/tables/llx_product_price.sql @@ -29,8 +29,8 @@ create table llx_product_price fk_product integer NOT NULL, date_price datetime NOT NULL, price_level smallint NULL DEFAULT 1, - price double(24,8) DEFAULT NULL, - price_ttc double(24,8) DEFAULT NULL, + price double(24,8) DEFAULT NULL, -- price without tax + price_ttc double(24,8) DEFAULT NULL, -- price inc vat (but not localtax1 nor localtax2) price_min double(24,8) default NULL, price_min_ttc double(24,8) default NULL, price_base_type varchar(3) DEFAULT 'HT', 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_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 3499a51e8b8..a8f0aa3e2c9 100644 --- a/htdocs/install/mysql/tables/llx_propal.sql +++ b/htdocs/install/mysql/tables/llx_propal.sql @@ -58,6 +58,7 @@ create table llx_propal fk_account integer, -- bank account fk_currency varchar(3), -- currency code fk_cond_reglement integer, -- condition de reglement (30 jours, fin de mois ...) + deposit_percent varchar(63) DEFAULT NULL, -- default deposit % if payment term needs it fk_mode_reglement integer, -- mode de reglement (Virement, Prelevement) online_sign_ip varchar(48), 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.sql b/htdocs/install/mysql/tables/llx_societe.sql index c27a0fb2910..3c2f8a67be1 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -52,15 +52,6 @@ create table llx_societe email varchar(128), -- socialnetworks text DEFAULT NULL, -- json with socialnetworks - --skype varchar(255), -- deprecated - --twitter varchar(255), -- deprecated - --facebook varchar(255), -- deprecated - --linkedin varchar(255), -- deprecated - --instagram varchar(255), -- deprecated - --snapchat varchar(255), -- deprecated - --googleplus varchar(255), -- deprecated - --youtube varchar(255), -- deprecated - --whatsapp varchar(255), -- deprecated fk_effectif integer DEFAULT 0, -- fk_typent integer DEFAULT NULL, -- type ent @@ -93,6 +84,7 @@ create table llx_societe remise_supplier real DEFAULT 0, -- discount by default granted by this supplier mode_reglement tinyint, -- payment mode customer cond_reglement tinyint, -- payment term customer + deposit_percent varchar(63) DEFAULT NULL, -- default deposit % if payment term needs it transport_mode tinyint, -- transport mode customer (Intracomm report) mode_reglement_supplier tinyint, -- payment mode supplier cond_reglement_supplier tinyint, -- payment term supplier diff --git a/htdocs/install/mysql/tables/llx_societe_account.key.sql b/htdocs/install/mysql/tables/llx_societe_account.key.sql index e86c12aa306..e889a38d527 100644 --- a/htdocs/install/mysql/tables/llx_societe_account.key.sql +++ b/htdocs/install/mysql/tables/llx_societe_account.key.sql @@ -25,6 +25,8 @@ ALTER TABLE llx_societe_account ADD INDEX idx_societe_account_fk_soc (fk_soc); ALTER TABLE llx_societe_account ADD UNIQUE INDEX uk_societe_account_login_website_soc(entity, fk_soc, login, site, fk_website); ALTER TABLE llx_societe_account ADD UNIQUE INDEX uk_societe_account_key_account_soc(entity, fk_soc, key_account, site, fk_website); -ALTER TABLE llx_societe_account ADD CONSTRAINT llx_societe_account_fk_website FOREIGN KEY (fk_website) REFERENCES llx_website(rowid); +-- Table website does not always exists +--ALTER TABLE llx_societe_account ADD CONSTRAINT llx_societe_account_fk_website FOREIGN KEY (fk_website) REFERENCES llx_website(rowid); + ALTER TABLE llx_societe_account ADD CONSTRAINT llx_societe_account_fk_societe FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid); 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_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_stocktransfer_stocktransfer-stocktransfer.key.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer-stocktransfer.key.sql new file mode 100644 index 00000000000..74108a5face --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer-stocktransfer.key.sql @@ -0,0 +1,29 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransfer ADD INDEX idx_stocktransfer_stocktransfer_rowid (rowid); +ALTER TABLE llx_stocktransfer_stocktransfer ADD INDEX idx_stocktransfer_stocktransfer_ref (ref); +ALTER TABLE llx_stocktransfer_stocktransfer ADD INDEX idx_stocktransfer_stocktransfer_fk_soc (fk_soc); +ALTER TABLE llx_stocktransfer_stocktransfer ADD INDEX idx_stocktransfer_stocktransfer_fk_project (fk_project); +ALTER TABLE llx_stocktransfer_stocktransfer ADD CONSTRAINT llx_stocktransfer_stocktransfer_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user(rowid); +ALTER TABLE llx_stocktransfer_stocktransfer ADD INDEX idx_stocktransfer_stocktransfer_status (status); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_stocktransfer_stocktransfer ADD UNIQUE INDEX uk_stocktransfer_stocktransfer_fieldxy(fieldx, fieldy); + +--ALTER TABLE llx_stocktransfer_stocktransfer ADD CONSTRAINT llx_stocktransfer_stocktransfer_fk_field FOREIGN KEY (fk_field) REFERENCES llx_stocktransfer_myotherobject(rowid); + diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer-stocktransfer.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer-stocktransfer.sql new file mode 100644 index 00000000000..e04a6dcb1ec --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer-stocktransfer.sql @@ -0,0 +1,46 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransfer( + -- BEGIN MODULEBUILDER FIELDS + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + entity integer DEFAULT 1 NOT NULL, + ref varchar(128) DEFAULT '(PROV)' NOT NULL, + label varchar(255), + fk_soc integer, + fk_project integer, + fk_warehouse_source integer, + fk_warehouse_destination integer, + description text, + note_public text, + note_private text, + tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + date_creation datetime NOT NULL, + date_prevue_depart date DEFAULT NULL, + date_reelle_depart date DEFAULT NULL, + date_prevue_arrivee date DEFAULT NULL, + date_reelle_arrivee date DEFAULT NULL, + lead_time_for_warning integer DEFAULT NULL, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + import_key varchar(14), + model_pdf varchar(255), + last_main_doc varchar(255), + status smallint NOT NULL, + fk_incoterms integer, -- for incoterms + location_incoterms varchar(255) + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer_extrafields-stocktransfer.key.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer_extrafields-stocktransfer.key.sql new file mode 100644 index 00000000000..36850341a6c --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer_extrafields-stocktransfer.key.sql @@ -0,0 +1,19 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransfer_extrafields ADD INDEX idx_fk_object(fk_object); +-- END MODULEBUILDER INDEXES diff --git a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer_extrafields-stocktransfer.sql similarity index 76% rename from htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.sql rename to htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer_extrafields-stocktransfer.sql index 7ff09176216..e03a0bf5343 100644 --- a/htdocs/install/mysql/tables/llx_asset_type_extrafields-asset.sql +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer_extrafields-stocktransfer.sql @@ -1,5 +1,5 @@ --- Copyright (C) 2018 Alexandre Spangaro --- +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 -- the Free Software Foundation; either version 3 of the License, or @@ -11,9 +11,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 https://www.gnu.org/licenses/. -create table llx_asset_type_extrafields +create table llx_stocktransfer_stocktransfer_extrafields ( rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline-stocktransfer.key.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline-stocktransfer.key.sql new file mode 100644 index 00000000000..32dfbd8bcd2 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline-stocktransfer.key.sql @@ -0,0 +1,24 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransferline ADD INDEX idx_stocktransfer_stocktransferline_rowid (rowid); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_stocktransfer_stocktransferline ADD UNIQUE INDEX uk_stocktransfer_stocktransferline_fieldxy(fieldx, fieldy); + +--ALTER TABLE llx_stocktransfer_stocktransferline ADD CONSTRAINT llx_stocktransfer_stocktransferline_fk_field FOREIGN KEY (fk_field) REFERENCES llx_stocktransfer_myotherobject(rowid); + diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline-stocktransfer.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline-stocktransfer.sql new file mode 100644 index 00000000000..10c22fed32c --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline-stocktransfer.sql @@ -0,0 +1,31 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransferline( + -- BEGIN MODULEBUILDER FIELDS + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + amount double DEFAULT NULL, + qty real, + fk_warehouse_source integer NOT NULL, + fk_warehouse_destination integer NOT NULL, + fk_stocktransfer integer NOT NULL, + fk_product integer NOT NULL, + batch varchar(128) DEFAULT NULL, -- Lot or serial number + pmp double, + rang integer DEFAULT 0, + fk_parent_line integer NULL + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline_extrafields-stocktransfer.key.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline_extrafields-stocktransfer.key.sql new file mode 100644 index 00000000000..a35079cbf0c --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline_extrafields-stocktransfer.key.sql @@ -0,0 +1,19 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransferline_extrafields ADD INDEX idx_fk_object(fk_object); +-- END MODULEBUILDER INDEXES diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline_extrafields-stocktransfer.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline_extrafields-stocktransfer.sql new file mode 100644 index 00000000000..ecb256699b5 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransferline_extrafields-stocktransfer.sql @@ -0,0 +1,23 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- 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 +-- 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_stocktransfer_stocktransferline_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_ticket-ticket.sql b/htdocs/install/mysql/tables/llx_ticket-ticket.sql index d079fdf3964..278d62894bc 100644 --- a/htdocs/install/mysql/tables/llx_ticket-ticket.sql +++ b/htdocs/install/mysql/tables/llx_ticket-ticket.sql @@ -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..7b86b5c3396 100644 --- a/htdocs/install/mysql/tables/llx_user.sql +++ b/htdocs/install/mysql/tables/llx_user.sql @@ -19,95 +19,95 @@ 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 + 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/mysql/tables/llx_webhook_target-webhook.key.sql b/htdocs/install/mysql/tables/llx_webhook_target-webhook.key.sql new file mode 100644 index 00000000000..04a0dbb306a --- /dev/null +++ b/htdocs/install/mysql/tables/llx_webhook_target-webhook.key.sql @@ -0,0 +1,27 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- +-- 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_webhook_target ADD INDEX idx_webhook_target_rowid (rowid); +ALTER TABLE llx_webhook_target ADD INDEX idx_webhook_target_ref (ref); +ALTER TABLE llx_webhook_target ADD CONSTRAINT llx_webhook_target_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user(rowid); +ALTER TABLE llx_webhook_target ADD INDEX idx_webhook_target_status (status); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_webhook_target ADD UNIQUE INDEX uk_webhook_target_fieldxy(fieldx, fieldy); + +--ALTER TABLE llx_webhook_target ADD CONSTRAINT llx_webhook_target_fk_field FOREIGN KEY (fk_field) REFERENCES llx_webhook_myotherobject(rowid); + diff --git a/htdocs/install/mysql/tables/llx_webhook_target-webhook.sql b/htdocs/install/mysql/tables/llx_webhook_target-webhook.sql new file mode 100644 index 00000000000..28802156847 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_webhook_target-webhook.sql @@ -0,0 +1,36 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- +-- 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_webhook_target( + -- 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, + import_key varchar(14), + status integer DEFAULT 0 NOT NULL, + url varchar(255) NOT NULL, + connection_method varchar(255) NULL, -- to store the way to authenticate to the webhook + connection_data varchar(255) NULL, -- to store the data to use to authenticate to the webhook + trigger_codes text NULL -- list of selected trigger that must call the webhook + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_website.sql b/htdocs/install/mysql/tables/llx_website-website.sql similarity index 100% rename from htdocs/install/mysql/tables/llx_website.sql rename to htdocs/install/mysql/tables/llx_website-website.sql diff --git a/htdocs/install/pgsql/functions/functions-don.sql b/htdocs/install/pgsql/functions/functions-don.sql new file mode 100644 index 00000000000..a1a51b57e6d --- /dev/null +++ b/htdocs/install/pgsql/functions/functions-don.sql @@ -0,0 +1,20 @@ +-- ============================================================================ +-- Copyright (C) 2010 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 . +-- +-- ============================================================================ + +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_don FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_don_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); diff --git a/htdocs/install/mysql/tables/llx_element_tag.key.sql b/htdocs/install/pgsql/functions/functions-loan.sql similarity index 73% rename from htdocs/install/mysql/tables/llx_element_tag.key.sql rename to htdocs/install/pgsql/functions/functions-loan.sql index d3a0b38afa9..d63e394e5c9 100644 --- a/htdocs/install/mysql/tables/llx_element_tag.key.sql +++ b/htdocs/install/pgsql/functions/functions-loan.sql @@ -1,5 +1,5 @@ -- ============================================================================ --- Copyright (C) 2021 Maxime Kohlhaas +-- Copyright (C) 2010 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,6 +16,4 @@ -- -- ============================================================================ -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); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_loan FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); diff --git a/htdocs/install/pgsql/functions/functions-mailing.sql b/htdocs/install/pgsql/functions/functions-mailing.sql new file mode 100644 index 00000000000..d45d620399f --- /dev/null +++ b/htdocs/install/pgsql/functions/functions-mailing.sql @@ -0,0 +1,20 @@ +-- ============================================================================ +-- Copyright (C) 2010 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 . +-- +-- ============================================================================ + +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mailing FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mailing_cibles FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); diff --git a/htdocs/install/pgsql/functions/functions-opensurvey.sql b/htdocs/install/pgsql/functions/functions-opensurvey.sql new file mode 100644 index 00000000000..d42a8311cb2 --- /dev/null +++ b/htdocs/install/pgsql/functions/functions-opensurvey.sql @@ -0,0 +1,21 @@ +-- ============================================================================ +-- Copyright (C) 2010 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 . +-- +-- ============================================================================ + +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_comments FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_sondage FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_user_studs FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); diff --git a/htdocs/install/pgsql/functions/functions-partnership.sql b/htdocs/install/pgsql/functions/functions-partnership.sql new file mode 100644 index 00000000000..61e991e1197 --- /dev/null +++ b/htdocs/install/pgsql/functions/functions-partnership.sql @@ -0,0 +1,20 @@ +-- ============================================================================ +-- Copyright (C) 2010 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 . +-- +-- ============================================================================ + +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_partnership FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_partnership_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); diff --git a/htdocs/install/pgsql/functions/functions-recruitment.sql b/htdocs/install/pgsql/functions/functions-recruitment.sql new file mode 100644 index 00000000000..9fa6023be1a --- /dev/null +++ b/htdocs/install/pgsql/functions/functions-recruitment.sql @@ -0,0 +1,23 @@ +-- ============================================================================ +-- Copyright (C) 2010 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 . +-- +-- ============================================================================ + +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentjobposition FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentjobposition_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentcandidature FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentcandidature_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); + diff --git a/htdocs/install/pgsql/functions/functions-website.sql b/htdocs/install/pgsql/functions/functions-website.sql new file mode 100644 index 00000000000..a5597837466 --- /dev/null +++ b/htdocs/install/pgsql/functions/functions-website.sql @@ -0,0 +1,21 @@ +-- ============================================================================ +-- Copyright (C) 2010 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 . +-- +-- ============================================================================ + +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website_page FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); + diff --git a/htdocs/install/pgsql/functions/functions.sql b/htdocs/install/pgsql/functions/functions.sql index d73678bcbab..35bc4e05c11 100644 --- a/htdocs/install/pgsql/functions/functions.sql +++ b/htdocs/install/pgsql/functions/functions.sql @@ -100,9 +100,6 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_contratdet_extrafiel CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_contratdet_log FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_subscription FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_cronjob FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_deplacement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_don FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_don_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_ecm_directories FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_ecm_files FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_element_resources FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); @@ -126,19 +123,13 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_fichinter FOR EACH R CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_fichinter_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_fichinterdet_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_delivery FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_loan FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_localtax FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mailing FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mailing_cibles FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_menu FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mrp_mo FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mrp_mo_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_mrp_production FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_notify FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_notify_def FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_comments FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_sondage FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_user_studs FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiementcharge FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiementfourn FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); @@ -165,10 +156,6 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_propal_extrafields F CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_propal_merge_pdf_product FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_propaldet_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_resource FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentjobposition FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentjobposition_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentcandidature FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_recruitment_recruitmentcandidature_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_salary FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_societe FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_societe_address FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); @@ -187,5 +174,3 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user FOR EACH ROW EX CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website_page FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index 63b8d66539b..24b5dba4d01 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'; @@ -261,6 +269,7 @@ if (!$error) { $error++; } } + // If we need simple access if (!$error && (empty($db_create_database) && empty($db_create_user))) { $db = getDoliDBInstance($db_type, $db_host, $db_user, $db_pass, $db_name, $db_port); @@ -910,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"); diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php index 33e69377904..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 @@ -295,8 +295,8 @@ if ($action == "set") { // MySQL if ($choix == 1 && preg_match('/^--\sV([0-9\.]+)/i', $buf, $reg)) { $versioncommande = explode('.', $reg[1]); - //print var_dump($versioncommande); - //print var_dump($versionarray); + //var_dump($versioncommande); + //var_dump($versionarray); if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0) { // Version qualified, delete SQL comments @@ -307,8 +307,8 @@ if ($action == "set") { // PGSQL if ($choix == 2 && preg_match('/^--\sPOSTGRESQL\sV([0-9\.]+)/i', $buf, $reg)) { $versioncommande = explode('.', $reg[1]); - //print var_dump($versioncommande); - //print var_dump($versionarray); + //var_dump($versioncommande); + //var_dump($versionarray); if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0) { // Version qualified, delete SQL comments diff --git a/htdocs/install/step4.php b/htdocs/install/step4.php index e1890656f4b..1b179cf98ab 100644 --- a/htdocs/install/step4.php +++ b/htdocs/install/step4.php @@ -80,11 +80,11 @@ $db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf if ($db->ok) { print '
    '; - print '
    '; - print '
    '; - print '
    '; + print '
    '; if (isset($_GET["error"]) && $_GET["error"] == 1) { diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index 89681794aeb..ee592007522 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -228,7 +228,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { $success = 1; } else { dolibarr_install_syslog('step5: FailedToCreateAdminLogin '.$newuser->error, LOG_ERR); - setEventMessage($langs->trans("FailedToCreateAdminLogin").' '.$newuser->error, null, 'errors'); + setEventMessages($langs->trans("FailedToCreateAdminLogin").' '.$newuser->error, null, 'errors'); //header("Location: step4.php?error=3&selectlang=$setuplang".(isset($login) ? '&login='.$login : '')); print '
    '.$langs->trans("FailedToCreateAdminLogin").': '.$newuser->error.'


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

    '; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 924d251702c..94eeb6d6243 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -167,20 +167,25 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ } $conf->db->dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey; - // Chargement config - if (!$error) { - $conf->setValues($db); - // Reset forced setup after the setValues - if (defined('SYSLOG_FILE')) { - $conf->global->SYSLOG_FILE = constant('SYSLOG_FILE'); - } - $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; - } + // Load global conf + $conf->setValues($db); + + + $listofentities = array(1); // Create the global $hookmanager object include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; $hookmanager = new HookManager($db); - $hookmanager->initHooks(array('upgrade')); + $hookmanager->initHooks(array('upgrade2')); + + $parameters = array('versionfrom' => $versionfrom, 'versionto' => $versionto); + $object = new stdClass(); + $action = "upgrade"; + $reshook = $hookmanager->executeHooks('doUpgradeBefore', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks + if ($reshook >= 0 && is_array($hookmanager->resArray)) { + // Example: $hookmanager->resArray = array(2, 3, 10); + $listofentities = array_unique(array_merge($listofentities, $hookmanager->resArray)); + } /*************************************************************************************** @@ -188,385 +193,399 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ * Migration of data * ***************************************************************************************/ + + // Force to execute this at begin to avoid the new core code into Dolibarr to be broken. + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN birth date'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemployment date'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemploymentend date'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_range integer'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_c_exp_tax_cat integer'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN langs varchar(24)'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN fieldcomputed text'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN fielddefault varchar(255)'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX."extrafields ADD COLUMN enabled varchar(255) DEFAULT '1'"; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN help text'; + $db->query($sql, 1); + $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user_rights ADD COLUMN entity integer DEFAULT 1 NOT NULL'; + $db->query($sql, 1); + + $db->begin(); - if (!$error) { - // Current version is $conf->global->MAIN_VERSION_LAST_UPGRADE - // Version to install is DOL_VERSION - $dolibarrlastupgradeversionarray = preg_split('/[\.-]/', isset($conf->global->MAIN_VERSION_LAST_UPGRADE) ? $conf->global->MAIN_VERSION_LAST_UPGRADE : (isset($conf->global->MAIN_VERSION_LAST_INSTALL) ? $conf->global->MAIN_VERSION_LAST_INSTALL : '')); - - // Chaque action de migration doit renvoyer une ligne sur 4 colonnes avec - // dans la 1ere colonne, la description de l'action a faire - // dans la 4eme colonne, le texte 'OK' si fait ou 'AlreadyDone' si rien n'est fait ou 'Error' - - $versiontoarray = explode('.', $versionto); - $versionranarray = explode('.', DOL_VERSION); - - - // Force to execute this at begin to avoid the new core code into Dolibarr to be broken. - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN birth date'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemployment date'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemploymentend date'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_range integer'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_c_exp_tax_cat integer'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN langs varchar(24)'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN fieldcomputed text'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN fielddefault varchar(255)'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX."extrafields ADD COLUMN enabled varchar(255) DEFAULT '1'"; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN help text'; - $db->query($sql, 1); - $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user_rights ADD COLUMN entity integer DEFAULT 1 NOT NULL'; - $db->query($sql, 1); - - - $afterversionarray = explode('.', '2.0.0'); - $beforeversionarray = explode('.', '2.7.9'); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - // Script pour V2 -> V2.1 - migrate_paiements($db, $langs, $conf); - - migrate_contracts_det($db, $langs, $conf); - - migrate_contracts_date1($db, $langs, $conf); - - migrate_contracts_date2($db, $langs, $conf); - - migrate_contracts_date3($db, $langs, $conf); - - migrate_contracts_open($db, $langs, $conf); - - migrate_modeles($db, $langs, $conf); - - migrate_price_propal($db, $langs, $conf); - - migrate_price_commande($db, $langs, $conf); - - migrate_price_commande_fournisseur($db, $langs, $conf); - - migrate_price_contrat($db, $langs, $conf); - - migrate_paiementfourn_facturefourn($db, $langs, $conf); - - - // Script pour V2.1 -> V2.2 - migrate_paiements_orphelins_1($db, $langs, $conf); - - migrate_paiements_orphelins_2($db, $langs, $conf); - - migrate_links_transfert($db, $langs, $conf); - - - // Script pour V2.2 -> V2.4 - migrate_commande_expedition($db, $langs, $conf); - - migrate_commande_livraison($db, $langs, $conf); - - migrate_detail_livraison($db, $langs, $conf); - - - // Script pour V2.5 -> V2.6 - migrate_stocks($db, $langs, $conf); - - - // Script pour V2.6 -> V2.7 - migrate_menus($db, $langs, $conf); - - migrate_commande_deliveryaddress($db, $langs, $conf); - - migrate_restore_missing_links($db, $langs, $conf); - - migrate_rename_directories($db, $langs, $conf, '/compta', '/banque'); - - migrate_rename_directories($db, $langs, $conf, '/societe', '/mycompany'); + foreach ($listofentities as $entity) { + // Set $conf context for entity + $conf->setEntityValues($db, $entity); + // Reset forced setup after the setValues + if (defined('SYSLOG_FILE')) { + $conf->global->SYSLOG_FILE = constant('SYSLOG_FILE'); } + $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; - // Script for 2.8 - $afterversionarray = explode('.', '2.7.9'); - $beforeversionarray = explode('.', '2.8.9'); - //print $versionto.' '.versioncompare($versiontoarray,$afterversionarray).' '.versioncompare($versiontoarray,$beforeversionarray); - if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { - migrate_price_facture($db, $langs, $conf); // Code of this function works for 2.8+ because need a field tva_tx + if (!$error) { + if (count($listofentities) > 1) { + print '
    *** '.$langs->trans("Entity").' '.$entity.'
    '; - print ''.$langs->trans('UpgradeExternalModule').': '; - print $hookmanager->error; - print ""; - print '
    '; - print ''.$langs->trans('UpgradeExternalModule').': OK'; - print ""; - print '
    '; - print ''.$langs->trans('UpgradeExternalModule').': '.$langs->trans("None"); - print '
    '; + print ''.$langs->trans('UpgradeExternalModule').': '; + print $hookmanager->error; + print ""; + print '
    '; + print ''.$langs->trans('UpgradeExternalModule').' (DB): OK'; + print ""; + print '
    '; + print ''.$langs->trans('UpgradeExternalModule').': '.$langs->trans("NodoUpgradeAfterDB"); + print '
    '; - if (!$error) { // Set constant to ask to remake a new ping to inform about upgrade (if first ping was done and OK) $sql = 'UPDATE '.MAIN_DB_PREFIX."const SET VALUE = 'torefresh' WHERE name = 'MAIN_FIRST_PING_OK_ID'"; @@ -576,23 +595,68 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ // We always commit. // Process is designed so we can run it several times whatever is situation. $db->commit(); + + + /*************************************************************************************** + * + * Migration of files + * + ***************************************************************************************/ + + foreach ($listofentities as $entity) { + // Set $conf context for entity + $conf->setEntityValues($db, $entity); + // Reset forced setup after the setValues + if (defined('SYSLOG_FILE')) { + $conf->global->SYSLOG_FILE = constant('SYSLOG_FILE'); + } + $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; + + + // Copy directory medias + $srcroot = DOL_DOCUMENT_ROOT.'/install/medias'; + $destroot = DOL_DATA_ROOT.'/medias'; + dolCopyDir($srcroot, $destroot, 0, 0); + + + // Actions for all versions (no database change but delete some files and directories) + migrate_delete_old_files($db, $langs, $conf); + migrate_delete_old_dir($db, $langs, $conf); + // Actions for all versions (no database change but create some directories) + dol_mkdir(DOL_DATA_ROOT.'/bank'); + // Actions for all versions (no database change but rename some directories) + migrate_rename_directories($db, $langs, $conf, '/banque/bordereau', '/bank/checkdeposits'); + + + $parameters = array('versionfrom' => $versionfrom, 'versionto' => $versionto, 'conf'=>$conf); + $object = new stdClass(); + $action = "upgrade"; + $reshook = $hookmanager->executeHooks('doUpgradeAfterFiles', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks + if ($hookmanager->resNbOfHooks > 0) { + if ($reshook < 0) { + print '
    '; + print ''.$langs->trans('UpgradeExternalModule').': '; + print $hookmanager->error; + print ""; + print '
    '; + print ''.$langs->trans('UpgradeExternalModule').' (Files): OK'; + print ""; + print '
    '; + print ''.$langs->trans('UpgradeExternalModule').': '.$langs->trans("NodoUpgradeAfterFiles"); + print '
    '; @@ -1358,11 +1422,9 @@ function migrate_paiementfourn_facturefourn($db, $langs, $conf) if ($select_resql) { $select_num = $db->num_rows($select_resql); $i = 0; - $var = true; // Pour chaque paiement fournisseur, on insere une ligne dans paiementfourn_facturefourn while (($i < $select_num) && (!$error)) { - $var = !$var; $select_obj = $db->fetch_object($select_resql); // Verifier si la ligne est deja dans la nouvelle table. On ne veut pas inserer de doublons. @@ -1949,7 +2011,7 @@ function migrate_modeles($db, $langs, $conf) dolibarr_install_syslog("upgrade2::migrate_modeles"); - if (!empty($conf->facture->enabled)) { + if (isModEnabled('facture')) { include_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php'; $modellist = ModelePDFFactures::liste_modeles($db); if (count($modellist) == 0) { @@ -1962,7 +2024,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) { @@ -1975,7 +2037,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) { @@ -4032,6 +4094,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', @@ -4051,8 +4115,10 @@ function migrate_delete_old_files($db, $langs, $conf) '/core/modules/facture/pdf_oursin.modules.php', '/core/modules/export/export_excel.modules.php', '/core/modules/export/export_excel2007new.modules.php', + '/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', @@ -4560,7 +4626,7 @@ function migrate_user_photospath2() if ($entity > 1) { $dir = DOL_DATA_ROOT.'/'.$entity.'/users'; } else { - $dir = $conf->user->multidir_output[$entity]; // $conf->user->multidir_output[] for each entity is construct by the multicompany module + $dir = DOL_DATA_ROOT.'/users'; } if ($dir) { 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 c769b89f9b8..f2c88d7a217 100644 --- a/htdocs/intracommreport/card.php +++ b/htdocs/intracommreport/card.php @@ -23,7 +23,8 @@ */ -/** Terms +/** + * Terms * * DEB = Declaration d'Exchanges de Biens (FR) = Declaration of Exchange of Goods (EN) * DES = Déclaration Européenne de Services (FR) = European Declaration of Services (EN) @@ -32,14 +33,17 @@ * */ - +// 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 $year = GETPOSTINT('year'); @@ -47,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"), @@ -55,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); @@ -65,9 +72,27 @@ $formother = new FormOther($db); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('intracommcard', 'globalcard')); +$error = 0; + +// Permissions +$permissiontoread = $user->rights->intracommreport->read; +$permissiontoadd = $user->rights->intracommreport->write; +$permissiontodelete = $user->rights->intracommreport->delete; + +// 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->intracommreport->enabled)) accessforbidden(); +if (!$permissiontoread) accessforbidden(); + + + /* * Actions */ + $parameters = array('id' => $id); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); @@ -75,7 +100,7 @@ if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } -if ($user->rights->intracommreport->delete && $action == 'confirm_delete' && $confirm == 'yes') { +if ($permissiontodelete && $action == 'confirm_delete' && $confirm == 'yes') { $result = $object->delete($id, $user); if ($result > 0) { if (!empty($backtopage)) { @@ -90,7 +115,7 @@ if ($user->rights->intracommreport->delete && $action == 'confirm_delete' && $co } } -if ($action == 'add' && $user->rights->intracommreport->write) { +if ($action == 'add' && $permissiontoadd) { $object->label = trim($label); $object->type = trim($exporttype); $object->type_declaration = $type_declaration; @@ -132,14 +157,16 @@ if ($action == 'add' && $user->rights->intracommreport->write) { } } + /* * 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 ''; @@ -151,7 +178,7 @@ if ($action == 'create') { print '
    '.$label.''; - print ''; + print ''; print '
    '.$label.''; - print ''; + print ''; print '
    '; // Label - print ''; + print ''; // Declaration print ''; print ''; print ''; @@ -275,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 d3f34fc149b..18e6e0ecc84 100644 --- a/htdocs/intracommreport/class/intracommreport.class.php +++ b/htdocs/intracommreport/class/intracommreport.class.php @@ -14,16 +14,19 @@ * 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'; + /** * Class to manage intracomm report */ @@ -50,7 +53,7 @@ class IntracommReport extends CommonObject public $declaration_number; /** - * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe + * 0 = No test on entity, 1 = Test with field entity, 2 = Test with link by societe * @var int */ public $ismultientitymanaged = 1; @@ -82,7 +85,8 @@ class IntracommReport extends CommonObject } /** - * Fonction create + * Function create + * * @param User $user User * @param int $notrigger notrigger * @return int @@ -93,7 +97,8 @@ class IntracommReport extends CommonObject } /** - * Fonction fetch + * Function fetch + * * @param int $id object ID * @return int */ @@ -103,7 +108,8 @@ class IntracommReport extends CommonObject } /** - * Fonction delete + * Function delete + * * @param int $id object ID * @param User $user User * @param int $notrigger notrigger @@ -124,7 +130,6 @@ class IntracommReport extends CommonObject */ public function getXML($mode = 'O', $type = 'introduction', $period_reference = '') { - global $conf, $mysoc; /**************Construction de quelques variables********************/ @@ -231,7 +236,7 @@ class IntracommReport extends CommonObject if ($resql) { $i = 1; - if (empty($resql->num_rows)) { + if ($this->db->num_rows($resql) <= 0) { $this->errors[] = 'No data for this period'; return 0; } @@ -286,34 +291,34 @@ class IntracommReport extends CommonObject global $mysoc, $conf; if ($type == 'expedition' || $exporttype == 'des') { - $sql = 'SELECT f.ref as refinvoice, f.total_ht'; + $sql = "SELECT f.ref as refinvoice, f.total_ht"; $table = 'facture'; $table_extraf = 'facture_extrafields'; $tabledet = 'facturedet'; $field_link = 'fk_facture'; } else { // Introduction - $sql = 'SELECT f.ref_supplier as refinvoice, f.total_ht'; + $sql = "SELECT f.ref_supplier as refinvoice, f.total_ht"; $table = 'facture_fourn'; $table_extraf = 'facture_fourn_extrafields'; $tabledet = 'facture_fourn_det'; $field_link = 'fk_facture_fourn'; } - $sql .= ', l.fk_product, l.qty + $sql .= ", l.fk_product, l.qty , p.weight, p.rowid as id_prod, p.customcode , s.rowid as id_client, s.nom, s.zip, s.fk_pays, s.tva_intra , c.code , ext.mode_transport - FROM '.MAIN_DB_PREFIX.$tabledet.' l - INNER JOIN '.MAIN_DB_PREFIX.$table.' f ON (f.rowid = l.'.$field_link.') - LEFT JOIN '.MAIN_DB_PREFIX.$table_extraf.' ext ON (ext.fk_object = f.rowid) - INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = l.fk_product) - INNER JOIN '.MAIN_DB_PREFIX.'societe s ON (s.rowid = f.fk_soc) - LEFT JOIN '.MAIN_DB_PREFIX.'c_country c ON (c.rowid = s.fk_pays) + FROM ".MAIN_DB_PREFIX.$tabledet." l + INNER JOIN ".MAIN_DB_PREFIX.$table." f ON (f.rowid = l.".$this->db->escape($field_link).") + LEFT JOIN ".MAIN_DB_PREFIX.$table_extraf." ext ON (ext.fk_object = f.rowid) + INNER JOIN ".MAIN_DB_PREFIX."product p ON (p.rowid = l.fk_product) + INNER JOIN ".MAIN_DB_PREFIX."societe s ON (s.rowid = f.fk_soc) + LEFT JOIN ".MAIN_DB_PREFIX."c_country c ON (c.rowid = s.fk_pays) WHERE f.fk_statut > 0 - AND l.product_type = '.($exporttype == 'des' ? 1 : 0).' - AND f.entity = '.$conf->entity.' - AND (s.fk_pays <> '.$mysoc->country_id.' OR s.fk_pays IS NULL) - AND f.datef BETWEEN "'.$period_reference.'-01" AND "'.$period_reference.'-'.date('t').'"'; + AND l.product_type = ".($exporttype == "des" ? 1 : 0)." + AND f.entity = ".((int) $conf->entity)." + AND (s.fk_pays <> ".((int) $mysoc->country_id)." OR s.fk_pays IS NULL) + AND f.datef BETWEEN '".$this->db->escape($period_reference)."-01' AND '".$this->db->escape($period_reference)."-".date('t')."'"; return $sql; } @@ -399,27 +404,27 @@ class IntracommReport extends CommonObject } foreach ($TLinesFraisDePort as $res) { - $sql = 'SELECT p.customcode - FROM '.MAIN_DB_PREFIX.$tabledet.' d - INNER JOIN '.MAIN_DB_PREFIX.$table.' f ON (f.rowid = d.'.$field_link.') - INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = d.fk_product) + $sql = "SELECT p.customcode + FROM ".MAIN_DB_PREFIX.$tabledet." d + INNER JOIN ".MAIN_DB_PREFIX.$table." f ON (f.rowid = d.".$this->db->escape($field_link).") + INNER JOIN ".MAIN_DB_PREFIX."product p ON (p.rowid = d.fk_product) WHERE d.fk_product IS NOT NULL - AND f.entity = '.$conf->entity.' - AND '.$more_sql.' = "'.$res->refinvoice.'" + AND f.entity = ".((int) $conf->entity)." + AND ".$more_sql." = '".$this->db->escape($res->refinvoice)."' AND d.total_ht = ( SELECT MAX(d.total_ht) - FROM '.MAIN_DB_PREFIX.$tabledet.' d - INNER JOIN '.MAIN_DB_PREFIX.$table.' f ON (f.rowid = d.'.$field_link.') + FROM ".MAIN_DB_PREFIX.$tabledet." d + INNER JOIN ".MAIN_DB_PREFIX.$table." f ON (f.rowid = d.".$this->db->escape($field_link).") WHERE d.fk_product IS NOT NULL - AND '.$more_sql.' = "'.$res->refinvoice.'" + AND ".$more_sql." = '".$this->db->escape($res->refinvoice)."' AND d.fk_product NOT IN ( SELECT fk_product - FROM '.MAIN_DB_PREFIX.'categorie_product - WHERE fk_categorie = '.((int) $categ_fraisdeport->id).' + FROM ".MAIN_DB_PREFIX."categorie_product + WHERE fk_categorie = ".((int) $categ_fraisdeport->id)." ) - )'; + )"; $resql = $this->db->query($sql); $ress = $this->db->fetch_object($resql); @@ -437,7 +442,9 @@ class IntracommReport extends CommonObject */ public function getNextDeclarationNumber() { - $resql = $this->db->query('SELECT MAX(numero_declaration) as max_declaration_number FROM '.MAIN_DB_PREFIX.$this->table_element." WHERE exporttype='".$this->db->escape($this->exporttype)."'"); + $sql = "SELECT MAX(numero_declaration) as max_declaration_number FROM ".MAIN_DB_PREFIX.$this->table_element; + $sql .= " WHERE exporttype = '".$this->db->escape($this->exporttype)."'"; + $resql = $this->db->query($sql); if ($resql) { $res = $this->db->fetch_object($resql); } @@ -463,7 +470,6 @@ class IntracommReport extends CommonObject */ public function generateXMLFile() { - $name = $this->periode.'.xml'; $fname = sys_get_temp_dir().'/'.$name; $f = fopen($fname, 'w+'); diff --git a/htdocs/intracommreport/list.php b/htdocs/intracommreport/list.php index fa88f6f0456..4cac639acf7 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'); @@ -82,7 +84,7 @@ $form = new Form($db); /* // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('intracommreport'); +$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); */ @@ -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'=>(!empty($conf->produit->enabled) && isModEnabled("service"))), ); + /* // Extra fields -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) +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'); @@ -206,10 +210,11 @@ $title = $langs->trans('IntracommReportList'.$type); $sql = 'SELECT DISTINCT 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 @@ -217,7 +222,7 @@ $sql .= $hookmanager->resPrint; $sql .= ' FROM '.MAIN_DB_PREFIX.'intracommreport as i'; -// if (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)"; +// 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').')'; @@ -255,7 +260,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 : ''); } */ diff --git a/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php b/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php index 5d26fa90137..ccf54b1d6d9 100644 --- a/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php +++ b/htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php @@ -19,6 +19,7 @@ use Luracast\Restler\RestException; dol_include_once('/knowledgemanagement/class/knowledgerecord.class.php'); +dol_include_once('/categories/class/categorie.class.php'); @@ -85,24 +86,58 @@ class KnowledgeManagement extends DolibarrApi return $this->_cleanObjectDatas($this->knowledgerecord); } + /** + * Get categories for a knowledgerecord object + * + * @param int $id ID of knowledgerecord object + * @param string $sortfield Sort field + * @param string $sortorder Sort order + * @param int $limit Limit for list + * @param int $page Page number + * + * @return mixed + * + * @url GET /knowledgerecords/{id}/categories + */ + public function getCategories($id, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0) + { + if (!DolibarrApiAccess::$user->rights->categorie->lire) { + throw new RestException(401); + } + + $categories = new Categorie($this->db); + + $result = $categories->getListForItem($id, 'knowledgemanagement', $sortfield, $sortorder, $limit, $page); + + if (empty($result)) { + throw new RestException(404, 'No category found'); + } + + if ($result < 0) { + throw new RestException(503, 'Error when retrieve category list : '.array_merge(array($categories->error), $categories->errors)); + } + + return $result; + } /** * List knowledgerecords * * 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; @@ -132,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 @@ -154,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)) { @@ -218,7 +261,7 @@ class KnowledgeManagement extends DolibarrApi } // Clean data - // $this->knowledgerecord->abc = checkVal($this->knowledgerecord->abc, 'alphanohtml'); + // $this->knowledgerecord->abc = sanitizeVal($this->knowledgerecord->abc, 'alphanohtml'); if ($this->knowledgerecord->create(DolibarrApiAccess::$user)<0) { throw new RestException(500, "Error creating KnowledgeRecord", array_merge(array($this->knowledgerecord->error), $this->knowledgerecord->errors)); @@ -260,7 +303,7 @@ class KnowledgeManagement extends DolibarrApi } // Clean data - // $this->knowledgerecord->abc = checkVal($this->knowledgerecord->abc, 'alphanohtml'); + // $this->knowledgerecord->abc = sanitizeVal($this->knowledgerecord->abc, 'alphanohtml'); if ($this->knowledgerecord->update(DolibarrApiAccess::$user, false) > 0) { return $this->get($id); diff --git a/htdocs/knowledgemanagement/class/knowledgerecord.class.php b/htdocs/knowledgemanagement/class/knowledgerecord.class.php index a2f03a64e41..c20fa91c621 100644 --- a/htdocs/knowledgemanagement/class/knowledgerecord.class.php +++ b/htdocs/knowledgemanagement/class/knowledgerecord.class.php @@ -101,10 +101,10 @@ class KnowledgeRecord 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, 'default'=>'(PROV)', 'visible'=>5, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", "showoncombobox"=>1), + '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'), - 'lang' => array('type'=>'varchar(6)', 'label'=>'Language', 'enabled'=>'1', 'position'=>40, 'notnull'=>0, 'visible'=>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,), @@ -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; } @@ -284,7 +284,8 @@ class KnowledgeRecord extends CommonObject 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; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -467,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); } @@ -511,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); @@ -629,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; @@ -653,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; @@ -677,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; @@ -861,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); diff --git a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php index 8cdbee53395..ba0cf9818dc 100644 --- a/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php +++ b/htdocs/knowledgemanagement/core/modules/knowledgemanagement/mod_knowledgerecord_advanced.php @@ -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/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 81750e720c7..475fbdccb30 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); @@ -80,7 +81,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->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 @@ -125,7 +126,7 @@ $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); @@ -149,7 +150,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 +170,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(); @@ -218,7 +219,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -228,7 +229,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/knowledgemanagement/knowledgerecord_card.php b/htdocs/knowledgemanagement/knowledgerecord_card.php index 91f127b0057..c68389f2b86 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); @@ -189,7 +189,7 @@ if ($action == 'create') { // Common attributes include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; - 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)) { @@ -236,7 +236,7 @@ if (($id || $ref) && $action == 'edit') { // Common attributes include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_edit.tpl.php'; - 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)) { @@ -294,7 +294,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 (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -319,7 +319,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 (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -366,7 +366,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 +384,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(); @@ -411,7 +411,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '
    "; @@ -521,7 +521,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/knowledgemanagement/knowledgerecord_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/knowledgemanagement/knowledgerecord_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/knowledgemanagement/knowledgerecord_contact.php b/htdocs/knowledgemanagement/knowledgerecord_contact.php index c338653b840..e1c77ab0d7b 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_contact.php +++ b/htdocs/knowledgemanagement/knowledgerecord_contact.php @@ -132,7 +132,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 +153,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..fff7ad68601 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) { @@ -130,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 (isModEnabled('project')) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; @@ -151,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(); diff --git a/htdocs/knowledgemanagement/knowledgerecord_list.php b/htdocs/knowledgemanagement/knowledgerecord_list.php index feadd8d9800..92b2b3f2adc 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'); @@ -95,16 +96,15 @@ if (!$sortorder) { } // 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') !== '') { - 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')); @@ -124,11 +124,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'] : '' ); @@ -189,7 +189,7 @@ if (empty($reshook)) { $search[$key.'_dtend'] = ''; } } - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -222,7 +222,7 @@ $now = dol_now(); //$help_url="EN:Module_KnowledgeRecord|FR:Module_KnowledgeRecord_FR|ES:Módulo_KnowledgeRecord"; $help_url = ''; -$title = $langs->trans('ListKnowledgeRecord'); +$title = $langs->trans('KnowledgeRecords'); $morejs = array(); $morecss = array(); @@ -234,13 +234,13 @@ $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.', ' : ''); + $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('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); $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'])) { @@ -278,10 +278,10 @@ foreach ($search as $key => $val) { $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])."'"; } } } @@ -330,7 +330,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 @@ -340,35 +340,34 @@ $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 $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); @@ -381,12 +380,15 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ // Output page // -------------------------------------------------------------------- -llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'classforhorizontalscrolloftabs'); +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); $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); } @@ -396,9 +398,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) { foreach ($search as $key => $val) { if (is_array($search[$key]) && count($search[$key])) { foreach ($search[$key] as $skey) { - $param .= '&search_'.$key.'[]='.urlencode($skey); + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } } - } else { + } elseif ($search[$key] != '') { $param .= '&search_'.$key.'='.urlencode($search[$key]); } } @@ -455,10 +459,13 @@ $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 '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '; + print ''."\n"; + print '
    '.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'
    '."\n"; } $moreforfilter = ''; @@ -468,7 +475,7 @@ $moreforfilter.= '';*/ // Filter on categories $moreforfilter = ''; -if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { +if (isModEnabled('categorie') && $user->rights->categorie->lire) { $moreforfilter .= '
    '; $moreforfilter .= img_picto($langs->trans('Categories'), 'category', 'class="pictofixedwidth"'); $categoriesKnowledgeArr = $form->select_all_categories(Categorie::TYPE_KNOWLEDGEMANAGEMENT, '', '', 64, 0, 1); @@ -503,6 +510,13 @@ print '
    '.$langs->trans("Label").'
    '.$langs->trans("Label").'
    '.$langs->trans("Declaration")."\n"; @@ -164,8 +191,8 @@ if ($action == 'create') { print $langs->trans("AnalysisPeriod"); print ''; - print $formother->select_month($month ? date('M') : $month, 'month', 0, 1, 'widthauto valignmiddle '); - print $formother->select_year($year ? date('Y') : $year, 'year', 0, 3, 3); + print $formother->select_month($month ? date('M') : $month, 'month', 0, 1, 'widthauto valignmiddle ', true); + print $formother->selectyear($year ? date('Y') : $year, 'year', 0, 3, 3, 0, 0, '', '', true); print '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_KNOWLEDGEMANAGEMENT, 1); 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['css']) ? '' : $val['css']); @@ -512,16 +526,16 @@ 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') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { print ''; } @@ -545,16 +561,23 @@ $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 ''; +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') { @@ -563,11 +586,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') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $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 @@ -577,7 +602,10 @@ $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 (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"; @@ -595,8 +623,10 @@ if (!empty($extrafields->attributes[$object->table_element]['computed']) && is_a // Loop on record // -------------------------------------------------------------------- $i = 0; -$totalarray = array(); -while ($i < ($limit ? min($num, $limit) : $num)) { +$savnbfield = $totalarray['nbfield']; +$totalarray['nbfield'] = 0; +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); if (empty($obj)) { break; // Should not happen @@ -606,8 +636,20 @@ while ($i < ($limit ? min($num, $limit) : $num)) { $object->setVarsFromFetchObj($obj); // Show here line of result - print ''; - $totalarray['nbfield'] = 0; + $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'))) { @@ -622,14 +664,20 @@ while ($i < ($limit ? min($num, $limit) : $num)) { $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; } - if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status'))) { + 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 ''; + print ''; if ($key == 'status') { print $object->getLibStatut(5); + } elseif ($key == 'rowid') { + print $object->showOutputField($val, $key, $object->id, ''); } elseif ($key == 'fk_user_creat') { if ($object->fk_user_creat > 0) { if (isset($conf->cache['user'][$object->fk_user_creat])) { @@ -695,15 +743,17 @@ while ($i < ($limit ? min($num, $limit) : $num)) { $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 (!$i) { $totalarray['nbfield']++; } @@ -724,14 +774,14 @@ 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 '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { - print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $searchkey, $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', 1); } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:')=== 0)) { - print $object->showInputField($val, $key, $searchkey, '', '', 'search_', 'maxwidth125', 1); + 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')); @@ -530,9 +544,11 @@ foreach ($object->fields as $key => $val) { 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') { - print $formadmin->select_language($searchkey, 'search_lang', 0, null, 1, 0, 0, 'minwidth150 maxwidth200', 2); + 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 ''; } 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($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; + 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 '
    '.$langs->trans("NoRecordFound").'
    '.$langs->trans("NoRecordFound").'
    '."\n"; diff --git a/htdocs/knowledgemanagement/knowledgerecord_note.php b/htdocs/knowledgemanagement/knowledgerecord_note.php index 2e58480adec..3abc9e71866 100644 --- a/htdocs/knowledgemanagement/knowledgerecord_note.php +++ b/htdocs/knowledgemanagement/knowledgerecord_note.php @@ -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/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/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 new file mode 100644 index 00000000000..84a3c7e398f --- /dev/null +++ b/htdocs/langs/ar_EG/accountancy.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - accountancy +Selectformat=حدد حجم الملف +ACCOUNTING_EXPORT_FORMAT=حدد حجم الملف +BackToChartofaccounts=مخطط إرجاع الحسابات +CountriesNotInEEC=بلدان غير أعضاء في المجموعة اﻹقتصادية أﻷوروبية diff --git a/htdocs/langs/ar_EG/assets.lang b/htdocs/langs/ar_EG/assets.lang deleted file mode 100644 index 9fd138a21f5..00000000000 --- a/htdocs/langs/ar_EG/assets.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - assets -Settings =الإعدادات diff --git a/htdocs/langs/ar_EG/exports.lang b/htdocs/langs/ar_EG/exports.lang new file mode 100644 index 00000000000..d70b140c1fb --- /dev/null +++ b/htdocs/langs/ar_EG/exports.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - exports +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. diff --git a/htdocs/langs/ar_EG/products.lang b/htdocs/langs/ar_EG/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/ar_EG/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/ar_IQ/accountancy.lang b/htdocs/langs/ar_IQ/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/ar_IQ/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/ar_IQ/admin.lang b/htdocs/langs/ar_IQ/admin.lang new file mode 100644 index 00000000000..ac3d7ce6798 --- /dev/null +++ b/htdocs/langs/ar_IQ/admin.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - admin +Permission144=Delete all projects and tasks (also private projects i am not contact for) diff --git a/htdocs/langs/ar_IQ/exports.lang b/htdocs/langs/ar_IQ/exports.lang new file mode 100644 index 00000000000..d70b140c1fb --- /dev/null +++ b/htdocs/langs/ar_IQ/exports.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - exports +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. diff --git a/htdocs/langs/ar_IQ/products.lang b/htdocs/langs/ar_IQ/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/ar_IQ/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/ar_IQ/projects.lang b/htdocs/langs/ar_IQ/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/ar_IQ/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default 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 591cb9dccbc..495ece856df 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -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=عرض حسب الحساب المحاسبة الفرعي @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=حساب المحاسبة الرئي AccountancyArea=منطقة المحاسبة AccountancyAreaDescIntro=استخدام وحدة المحاسبة تم في عدة خطوات: AccountancyAreaDescActionOnce=عادة ما يتم تنفيذ الإجراءات التالية مرة واحدة فقط ، أو مرة واحدة في السنة. -AccountancyAreaDescActionOnceBis=يجب اتخاذ الخطوات التالية لتوفير الوقت في المستقبل من خلال اقتراح حساب المحاسبة الافتراضي الصحيح عند إجراء التسجيل (كتابة السجل في اليوميات ودفتر الأستاذ العام) +AccountancyAreaDescActionOnceBis=يجب القيام بالخطوات التالية لتوفير الوقت في المستقبل من خلال اقتراح حساب المحاسبة الافتراضي الصحيح تلقائيًا عند نقل البيانات في المحاسبة AccountancyAreaDescActionFreq=يتم تنفيذ الإجراءات التالية عادةً كل شهر أو أسبوع أو كل يوم للشركات الكبيرة جدًا . -AccountancyAreaDescJournalSetup=الخطوة %s: قم بإنشاء أو التحقق من محتوى قائمة دفتر اليومية الخاصة بك من القائمة %s +AccountancyAreaDescJournalSetup=الخطوة %s: تحقق من محتوى قائمة مجلاتك من القائمة %s AccountancyAreaDescChartModel=الخطوة %s: تحقق من وجود نموذج لمخطط الحساب أو قم بإنشاء نموذج من القائمة %s AccountancyAreaDescChart=الخطوة %s : حدد و / أو أكمل مخطط حسابك من القائمة %s AccountancyAreaDescVat=الخطوة %s: تحديد حسابات المحاسبة لكل معدلات ضريبة القيمة المضافة. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescDefault=الخطوة %s: تحديد حسابات المحاسبة الافتراضية. لهذا ، استخدم إدخال القائمة %s. -AccountancyAreaDescExpenseReport=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لكل نوع من تقارير المصروفات. لهذا ، استخدم إدخال القائمة %s. +AccountancyAreaDescExpenseReport=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لكل نوع من أنواع تقرير المصاريف. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescSal=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لدفع الرواتب. لهذا ، استخدم إدخال القائمة %s. -AccountancyAreaDescContrib=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للنفقات الخاصة (ضرائب متنوعة). لهذا ، استخدم إدخال القائمة %s. +AccountancyAreaDescContrib=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للضرائب (نفقات خاصة). لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescDonation=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للتبرع. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescSubscription=الخطوة %s: تحديد حسابات المحاسبة الافتراضية لاشتراك الأعضاء. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescMisc=الخطوة %s: تحديد الحساب الافتراضي الإلزامي وحسابات المحاسبة الافتراضية للمعاملات المتنوعة. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescLoan=الخطوة %s: تحديد حسابات المحاسبة الافتراضية للقروض. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescBank=الخطوة %s: تحديد الحسابات المحاسبية ورمز دفتر اليومية لكل حساب بنكي والحسابات المالية. لهذا ، استخدم إدخال القائمة %s. -AccountancyAreaDescProd=الخطوة %s: تحديد حسابات المحاسبة لمنتجاتك او خدماتك. لهذا ، استخدم إدخال القائمة %s. +AccountancyAreaDescProd=الخطوة %s: تحديد حسابات المحاسبة لمنتجاتك / خدماتك. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescBind=الخطوة %s: تحقق من الربط بين سطور %s الحالية وحساب المحاسبة ، لتمكين التطبيق من تسجيل المعاملات في دفتر الأستاذ بنقرة واحدة. إكمال الارتباطات المفقودة. لهذا ، استخدم إدخال القائمة %s. AccountancyAreaDescWriteRecords=الخطوة %s: اكتب المعاملات في دفتر الأستاذ. لهذا ، انتقل إلى القائمة %s ، وانقر فوق الزر %s . @@ -132,7 +133,7 @@ InvoiceLinesDone=بنود الفواتير المقيدة ExpenseReportLines=بنود تقارير المصاريف المراد ربطها ExpenseReportLinesDone=البنود المقيدة لتقارير المصروفات IntoAccount=ربط البند مع حساب المحاسبة -TotalForAccount=Total accounting account +TotalForAccount=حساب المحاسبة الإجمالي Ventilate=ربط @@ -156,12 +157,12 @@ 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=دفتر الشراء اليومي @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=حساب تسجيل التبرعات ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=حساب تسجيل الاشتراكات ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=حساب افتراضي لتسجيل إيداع العميل +UseAuxiliaryAccountOnCustomerDeposit=تخزين حساب العميل كحساب فردي في دفتر الأستاذ الفرعي لخطوط الدفعات المقدمة (إذا تم تعطيله ، فسيظل الحساب الفردي لبنود الدَفعة المقدمة فارغًا) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Accounting account by default to register supplier deposit +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=حساب افتراضي للمنتجات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة المنتج) @@ -192,7 +196,7 @@ ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=حساب افتراضي للمنتجات ACCOUNTING_SERVICE_BUY_ACCOUNT=حساب افتراضي للخدمات المشتراة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=حساب افتراضي للخدمات المشتراة في الاتحاد الاوروبي (يستخدم إذا لم يتم تحديده في ورقة الخدمة) -ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=حساب افتراضي للخدمات المشتراة والمستوردة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=حساب افتراضي للخدمات المشتراة والمستوردة من المجموعة اﻹقتصادية اﻷوروبية(تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) ACCOUNTING_SERVICE_SOLD_ACCOUNT=حساب افتراضي للخدمات المباعة (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=حساب افتراضي للخدمات المباعة في الاتحاد الاوروبي (يُستخدم إذا لم يتم تحديده في ورقة الخدمة) ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=حساب افتراضي للخدمات المباعة والمصدرة من الاتحاد الاوروبي (تُستخدم إذا لم يتم تحديدها في ورقة الخدمة) @@ -202,29 +206,29 @@ 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=مجموعة مخصصة GroupByAccountAccounting=تجميع حسب حساب دفتر الأستاذ العام GroupBySubAccountAccounting=تجميع حسب حساب دفتر الأستاذ الفرعي AccountingAccountGroupsDesc=يمكنك هنا تحديد بعض مجموعات الحساب. سيتم استخدامها لتقارير المحاسبة الشخصية. ByAccounts=حسب الحسابات ByPredefinedAccountGroups=من خلال مجموعات محددة مسبقًا ByPersonalizedAccountGroups=بواسطة مجموعات شخصية -ByYear=بحلول العام +ByYear=سنويا NotMatch=Not Set -DeleteMvt=حذف بعض بنود العمليات من المحاسبة +DeleteMvt=حذف بعض البنود من المحاسبة DelMonth=شهر للحذف DelYear=السنة للحذف DelJournal=دفتر يومية للحذف -ConfirmDeleteMvt=سيؤدي هذا إلى حذف جميع بنود العمليات المحاسبية للسنة / الشهر و / أو يوميات معينة (يفضل معيار واحد على الأقل). سيتعين عليك إعادة استخدام الميزة "%s" لاستعادة السجل المحذوف في دفتر الأستاذ. -ConfirmDeleteMvtPartial=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع بنود العمليات المتعلقة بنفس المعاملة) +ConfirmDeleteMvt=سيؤدي هذا إلى حذف جميع سطور المحاسبة للسنة / الشهر و / أو لمجلة معينة (مطلوب معيار واحد على الأقل). سيتعين عليك إعادة استخدام الميزة "%s" لإعادة السجل المحذوف إلى دفتر الأستاذ. +ConfirmDeleteMvtPartial=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة) FinanceJournal=دفتر المالية اليومي ExpenseReportsJournal=دفتر تقارير المصاريف DescFinanceJournal=دفتر المالية اليومي المتضمن لجميع الدفعات عن طريق الحساب المصرفي @@ -246,9 +250,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=الرصيد الافتتاحي @@ -278,30 +282,31 @@ DescVentilExpenseReportMore=إذا قمت بإعداد حساب على نوع ب DescVentilDoneExpenseReport=راجع هنا قائمة بنود تقارير المصروفات وحساب رسومها Closure=الإغلاق السنوي -DescClosure=راجع هنا عدد الحركات حسب الشهر التي لم يتم اعتمادها والسنوات المالية المفتوحة -OverviewOfMovementsNotValidated=الخطوة الاولى نظرة عامة على الحركات التي لم يتم اعتمادها. (ضروري لإغلاق السنة المالية) -AllMovementsWereRecordedAsValidated=تم تسجيل جميع الحركات على أنها معتمدة -NotAllMovementsCouldBeRecordedAsValidated=لا يمكن تسجيل جميع الحركات على انها معتمدة -ValidateMovements=اعتماد الحركات +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=الحركة غير متوازنة بشكل صحيح. الخصم = %s | الائتمان = %s +MvtNotCorrectlyBalanced=الحركة غير متوازنة بشكل صحيح. الخصم = %s والائتمان = %s Balancing=موازنة FicheVentilation=بطاقة مرتبطة GeneralLedgerIsWritten=المعاملات مكتوبة في دفتر الأستاذ GeneralLedgerSomeRecordWasNotRecorded=لا يمكن تسجيل بعض المعاملات. إذا لم تكن هناك رسالة خطأ أخرى ، فربما يكون ذلك بسبب تسجيلها في دفتر اليومية بالفعل. -NoNewRecordSaved=لا مزيد من التسجيل لليوميات +NoNewRecordSaved=لا يوجد المزيد من السجلات لنقلها ListOfProductsWithoutAccountingAccount=قائمة المنتجات غير مرتبطة بأي حساب ChangeBinding=تغيير الربط Accounted=حسب في دفتر الأستاذ -NotYetAccounted=Not yet transferred to accounting +NotYetAccounted=لم يتم تحويلها بعد إلى المحاسبة ShowTutorial=عرض البرنامج التعليمي NotReconciled=لم يتم تسويتة -WarningRecordWithoutSubledgerAreExcluded=تحذير ، كل العمليات التي لم يتم تحديد حساب دفتر الأستاذ الفرعي لها تتم تصفيتها واستبعادها من طريقة العرض هذه +WarningRecordWithoutSubledgerAreExcluded=تحذير ، كل الأسطر التي لم يتم تحديد حساب دفتر الأستاذ الفرعي تتم تصفيتها واستبعادها من طريقة العرض هذه +AccountRemovedFromCurrentChartOfAccount=حساب محاسبي غير موجود في مخطط الحسابات الحالي ## Admin BindingOptions=خيارات الربط @@ -318,7 +323,7 @@ AccountingJournalType2=مبيعات AccountingJournalType3=مشتريات AccountingJournalType4=بنك AccountingJournalType5=تقرير مصروفات -AccountingJournalType8=المخزون +AccountingJournalType8=الجرد AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=هذه الدفتر مستخدم بالفعل AccountingAccountForSalesTaxAreDefinedInto=ملاحظة: تم تعريف حساب ضريبة المبيعات في القائمة %s - %s @@ -329,9 +334,10 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=تعطيل الربط والتحويل ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=تعطيل الربط والتحويل في المحاسبة على تقارير المصروفات (لن يتم أخذ تقارير المصروفات في الاعتبار في المحاسبة) ## 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 ? +NotifiedExportDate=ضع علامة على الخطوط المصدرة كـ (لتعديل سطر ، ستحتاج إلى حذف المعاملة بالكامل وإعادة تحويلها إلى المحاسبة) +NotifiedValidationDate=تحقق من صحة الإدخالات التي تم تصديرها وقفلها (نفس التأثير من ميزة "%s" ، ولن يكون تعديل الأسطر وحذفها بالتأكيد ممكنًا) +DateValidationAndLock=التحقق من صحة التاريخ والقفل +ConfirmExportFile=تأكيد إنشاء ملف محاسبي تصدير؟ ExportDraftJournal=تصدير مسودة دفتر اليومية Modelcsv=نموذج التصدير Selectmodelcsv=تحديد نموذج للتصدير @@ -339,11 +345,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) @@ -351,10 +357,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 @@ -387,13 +393,28 @@ 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=غير قابل للتوفيق +AccountancyNoLetteringModified=لم يتم تعديل تسوية +AccountancyOneLetteringModifiedSuccessfully=تم تعديل أحد التوفيق بنجاح +AccountancyLetteringModifiedSuccessfully=تعديل %s بنجاح +AccountancyNoUnletteringModified=لم يتم تعديل عدم التوفيق بينها +AccountancyOneUnletteringModifiedSuccessfully=تم تعديل أحد ملفات التوفيق بنجاح +AccountancyUnletteringModifiedSuccessfully=تم تعديل %s بنجاح + +## Confirm box +ConfirmMassUnlettering=تأكيد مجمّع غير قابل للتسوية +ConfirmMassUnletteringQuestion=هل أنت متأكد من أنك تريد إلغاء التوفيق بين التسجيلة (السجلات) المحددة %s؟ +ConfirmMassDeleteBookkeepingWriting=تأكيد الحذف الضخم +ConfirmMassDeleteBookkeepingWritingQuestion=سيؤدي هذا إلى حذف المعاملة من المحاسبة (سيتم حذف جميع الأسطر المتعلقة بنفس المعاملة) هل أنت متأكد من أنك تريد حذف السجل (السجلات) المحددة %s؟ + ## Error SomeMandatoryStepsOfSetupWereNotDone=لم يتم تنفيذ بعض خطوات الإعداد الإلزامية ، يرجى إكمالها ErrorNoAccountingCategoryForThisCountry=لا توجد مجموعة حسابات متاحة للبلد %s (انظر الصفحة الرئيسية - الإعداد - القواميس) @@ -405,29 +426,33 @@ NoJournalDefined=لم يتم تحديد دفتر Binded=البنود مرتبطة ToBind=بنود للربط UseMenuToSetBindindManualy=البنود غير مرتبطة بعد ، استخدم القائمة %s لإجراء الربط يدويًا -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +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=تحذير ، هذا التقرير لا يستند إلى دفتر الأستاذ ، لذلك لا يحتوي على معاملة تم تعديلها يدويًا في دفتر الأستاذ. إذا كان تسجيل دفتر اليومية الخاص بك محدثًا ، فسيكون عرض مسك الدفاتر أكثر دقة. diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 7e2bcb6f6be..16ed55874ab 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=الناشر @@ -64,7 +64,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 +77,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 +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=الحجم الأقصى لتحميل الملفات (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 +120,7 @@ MultiCurrencySetup=إعدادات تعدد العملات MenuLimits=الحدود و الدقة MenuIdParent=رمز القائمة العليا DetailMenuIdParent=رمز القائمة العليا (فراغ للقائمة العليا) -ParentID=Parent ID +ParentID=معرف الوالدين DetailPosition=رتب الرقم لتعريف موقع القائمة AllMenus=الكل NotConfigured=الوحدة النمطية | التطبيق غير مهيأ @@ -160,38 +160,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 +205,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 +256,75 @@ 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 ) 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 +332,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 +376,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 +406,301 @@ 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 = الأسعار ExtrafieldMail = Email -ExtrafieldUrl = Url +ExtrafieldUrl = عنوان Url 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=كذلك ، يوصى بتغيير طريقة إرسال رسائل البريد الإلكتروني إلى القيمة "SMTP". إذا كنت تريد حقًا الاحتفاظ بالطريقة الافتراضية "PHP" لإرسال رسائل البريد الإلكتروني ، فما عليك سوى تجاهل هذا التحذير أو إزالته عن طريق ضبط MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP ثابتًا على 1 في Home - Setup - Other. +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=تفعيل استخدام الترجمة المكتوبة +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. +Module2500Desc=نظام إدارة الوثائق / إدارة المحتوى الإلكتروني. التنظيم التلقائي للمستندات التي تم إنشاؤها أو تخزينها. شاركهم عند الحاجة. Module2600Name=خدمات API / ويب (خادم SOAP) Module2600Desc=تمكين الخدمات API Dolibarr الخادم SOAP توفير Module2610Name=خدمات API / ويب (خادم REST) 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=إدارة الموارد (طابعات ، سيارات ، غرف ، ...) لتخصيصها للمناسبات Permission11=قراءة الفواتير Permission12=إنشاء / تعديل فواتير العملاء -Permission13=Invalidate customer invoices +Permission13=إبطال فواتير العميل Permission14=التحقق من صحة الفواتير Permission15=ارسال الفواتير عن طريق البريد الإلكتروني Permission16=إنشاء مدفوعات الفواتير العملاء @@ -714,31 +714,33 @@ Permission27=حذف مقترحات تجارية Permission28=الصادرات التجارية مقترحات Permission31=قراءة المنتجات Permission32=إنشاء / تعديل المنتجات +Permission33=Read prices products 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) -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,53 +753,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 (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=حذف جميع المشاريع والمهام (أيضا مشاريع خاصة وأنا لا اتصال لل) +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=من أجل وصلات @@ -822,13 +825,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=قضية الفواتير @@ -838,10 +841,10 @@ Permission283=حذف اتصالات Permission286=تصدير اتصالات Permission291=قراءة التعريفات Permission292=مجموعة أذونات على التعريفات -Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission293=تعديل تعريفات العميل +Permission300=قراءة الباركود +Permission301=إنشاء / تعديل الباركود +Permission302=حذف الباركود Permission311=قراءة الخدمات Permission312=تعيين خدمة / الاشتراك في التعاقد Permission331=قراءة العناوين @@ -860,11 +863,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=إنشاء / تعديل القروض @@ -873,240 +876,247 @@ 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 -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 -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=اقرأ فواتير البائع +Permission1232=إنشاء / تعديل فواتير البائعين +Permission1233=التحقق من صحة فواتير البائع +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 -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=حذف المهارة / الوظيفة / المنصب +Permission4020=اقرأ التقييمات +Permission4021=إنشاء / تعديل التقييم الخاص بك +Permission4022=التحقق من صحة التقييم +Permission4023=حذف التقييم +Permission4030=انظر قائمة المقارنة +Permission4031=اقرأ المعلومات الشخصية +Permission4032=اكتب معلومات شخصية +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 -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. +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 @@ -1114,20 +1124,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=دليل ملفات البيانات @@ -1145,7 +1155,7 @@ DatabaseUser=قاعدة بيانات المستخدم DatabasePassword=قاعدة بيانات كلمة السر Tables=الجداول TableName=اسم الجدول -NbOfRecord=No. of records +NbOfRecord=عدد السجلات Host=الخادم DriverType=سائق نوع SummarySystem=نظام معلومات موجزة @@ -1157,17 +1167,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=الرمز البريدي @@ -1175,50 +1185,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=Delay before 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 @@ -1228,203 +1238,207 @@ 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 +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 هو رقم متسلسل يتزايد تلقائيًا بدون إعادة تعيين +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 وحدة -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=قم بإرجاع كلمة المرور التي تم إنشاؤها وفقًا لخوارزمية Dolibarr الداخلية: %s أحرف تحتوي على أرقام وأحرف مشتركة بأحرف صغيرة. +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 +SupplierPaymentSetup=إعداد مدفوعات البائعين +InvoiceCheckPosteriorDate=تحقق من تاريخ التجهيز قبل المصادقة +InvoiceCheckPosteriorDateHelp=يُمنع التحقق من صحة الفاتورة إذا كان تاريخها سابقًا لتاريخ آخر فاتورة من نفس النوع. ##### 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=اسأل عن وجهة الحساب المصرفي للاقتراح @@ -1437,10 +1451,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=بناء على أوامر النص الحر @@ -1463,12 +1477,12 @@ WatermarkOnDraftContractCards=العلامة المائية على مسودات MembersSetup=أعضاء وحدة الإعداد MemberMainOptions=الخيارات الرئيسية 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=يمكن للزائر الاختيار من بين طرق الدفع المتاحة +MEMBER_REMINDER_EMAIL=قم بتمكين التذكير التلقائي عبر البريد الإلكتروني بالاشتراكات منتهية الصلاحية. ملاحظة: يجب تمكين الوحدة النمطية %s وإعدادها بشكل صحيح لإرسال التذكيرات. +MembersDocModules=قوالب المستندات للوثائق التي تم إنشاؤها من سجل الأعضاء ##### LDAP setup ##### LDAPSetup=LDAP الإعداد LDAPGlobalParameters=المعايير العالمية @@ -1486,17 +1500,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ù= المستخدمين ، العاصمة= المجتمع ، العاصمة= كوم) @@ -1510,7 +1524,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ù= اتصالات العاصمة= المجتمع ، العاصمة= كوم) @@ -1518,8 +1532,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 @@ -1533,125 +1547,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=تحديد وحدة قياس لكمية خلال النظام، الطبعة اقتراح أو فاتورة خطوط @@ -1666,10 +1680,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=قالب من استلام التبرع @@ -1692,7 +1706,7 @@ GenbarcodeLocation=شريط أدوات سطر الأوامر رمز جيل (ال BarcodeInternalEngine=Internal engine BarCodeNumberManager=مدير لصناعة السيارات تحديد أرقام الباركود ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=إعداد مدفوعات الخصم المباشر للوحدة ##### ExternalRSS ##### ExternalRSSSetup=RSS الواردات الخارجية الإعداد NewRSS=الجديد تغذية RSS @@ -1700,22 +1714,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=تلقي شحنات المنتجات الترقيم وحدة @@ -1725,28 +1739,28 @@ 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 +FCKeditorForNotePublic=إنشاء / إصدار WYSIWIG لعناصر الحقل "الملاحظات العامة" +FCKeditorForNotePrivate=إنشاء / إصدار WYSIWIG للحقل "ملاحظات خاصة" للعناصر +FCKeditorForCompany=إنشاء / إصدار WYSIWIG للوصف الميداني للعناصر (باستثناء المنتجات / الخدمات) +FCKeditorForProduct=إنشاء / إصدار WYSIWIG للوصف الميداني للمنتجات / الخدمات FCKeditorForProductDetails=إنشاء \\ تعديل تفاصيل المنتجات على طريقة الطباعة "ما تراه ستحصل عليه" لجميع المستندات (المقترحات،الاوامر،الفواتير،...) تحذير: إستخدام هذه الخاصية غير منصوح به بشدة بسبب مشاكل المحارف الخاصة وتنسيق الصفحات وذلك عند توليد ملفات بصيغة المستندات المتنقلة . 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=اسم وحدة قائمة في حال الدخول من وحدة @@ -1758,22 +1772,22 @@ 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=على فاتورة @@ -1782,86 +1796,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=رمز المفتاح لـ "Enter" المحدد في قارئ الرمز الشريطي (مثال: 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=مسار الملف الذي يحتوي على Maxmind ip لترجمة الدولة.
    أمثلة:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat a0342fccfda19bzeo /usr/Ghare/Lite2IP/ NoteOnPathLocation=لاحظ أن الملكية الفكرية الخاصة بك على البيانات القطرية الملف يجب أن تكون داخل الدليل الخاص بي يمكن قراءة (راجع الإعداد open_basedir بى وأذونات نظام الملفات). YouCanDownloadFreeDatFileTo=يمكنك تحميل نسخة تجريبية مجانية من GeoIP ملف Maxmind البلاد في ٪ s. YouCanDownloadAdvancedDatFileTo=كما يمكنك تحميل نسخة كاملة أكثر من ذلك ، مع التحديثات ، من GeoIP ملف Maxmind البلاد في ٪ s. @@ -1872,17 +1886,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=الحد الأدنى لعدد الأحرف الكبيرة @@ -1893,330 +1907,403 @@ 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=لهذا السبب ، فإن عملية الترقية الموضحة هنا هي عملية يدوية لا يجوز إلا لمستخدم ذي امتيازات القيام بها. 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) -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 dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +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 data about European companies/citizens, 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=مكرر غير مسموح به +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 -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? -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, with no 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=أقصى عدد من رسائل البريد الإلكتروني التي تم جمعها لكل مجموعة +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=Enable feature to check if a resource is in use in an event -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 access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts 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=الاسم المستعار للطرف الثالث - اسم الطرف الثالث 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=لغرض الصدفة (مثل النسخ الاحتياطي للوظيفة المجدولة أو تشغيل برنامج منشط) ، يجب أن تحتفظ بوظائف PHP +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 sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale 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 -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 +NotRecommended=لا ينصح +ARestrictedPath=بعض المسار المقيد +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=استخدم وضع الذاكرة المنخفضة لتنفيذ تنفيذ التفريغ (يتم الضغط من خلال أنبوب بدلاً من ذاكرة PHP). لا تسمح هذه الطريقة بالتحقق من اكتمال الملف ولا يمكن الإبلاغ عن رسالة الخطأ إذا فشلت. + +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 السويسري على الفواتير +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 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/banks.lang b/htdocs/langs/ar_SA/banks.lang index 115a17ff3e0..6d2a2eaf6eb 100644 --- a/htdocs/langs/ar_SA/banks.lang +++ b/htdocs/langs/ar_SA/banks.lang @@ -95,11 +95,11 @@ LineRecord=المعاملة AddBankRecord=إضافة قيد AddBankRecordLong=إضافة قيد يدوي Conciliated=تمت تسويتة -ConciliatedBy=تمت التسوية بواسطة +ReConciliedBy=تمت التسوية بواسطة DateConciliating=تاريخ التسوية BankLineConciliated=تمت تسوية القيدمع إيصال البنك -Reconciled=تمت تسويتة -NotReconciled=لم يتم تسويتة +BankLineReconciled=تمت تسويتة +BankLineNotReconciled=لم يتم تسويتة CustomerInvoicePayment=مدفوعات العميل SupplierInvoicePayment=دفعة المورد SubscriptionPayment=دفع الاشتراك @@ -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=مراقبة مكتب النقدية في نقاط البيع -NewCashFence=إفتتاح او إغلاق جديد لصنوق النقدية +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=تلوين الحركات BankColorizeMovementDesc=إذا تم تمكين هذه الوظيفة ، يمكنك اختيار لون خلفية محدد لحركات الخصم أو الائتمان BankColorizeMovementName1=لون الخلفية لحركة الخصم @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=إذا لم تقم بإجراء التسويا 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 diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index 7d018917ac0..bb5be211cb6 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -156,6 +156,7 @@ 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. 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=تحويل إلى قالب فاتورة @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=مدفوعات الشيكات (شامل الضرا SendTo=أرسل إلى PaymentByTransferOnThisBankAccount=الدفع عن طريق التحويل إلى الحساب المصرفي التالي VATIsNotUsedForInvoice=* غير سارية ضريبة القيمة المضافة art-293B من CGI +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=من خلال تطبيق القانون 80.335 من 12/05/80 LawApplicationPart2=البضاعة تظل ملكا لل LawApplicationPart3=البائع حتى السداد الكامل ل @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=تم حذف فاتورة المورد UnitPriceXQtyLessDiscount=سعر الوحدة × الكمية - الخصم CustomersInvoicesArea=منطقة فواتير العملاء SupplierInvoicesArea=منطقة فواتير المورد -FacParentLine=أصل سطر الفاتورة SituationTotalRayToRest=ما تبقى للدفع بدون ضريبة PDFSituationTitle=Situation n° %d SituationTotalProgress=إجمالي التقدم %d %% @@ -607,3 +610,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/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/companies.lang b/htdocs/langs/ar_SA/companies.lang index f1d23eb6216..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,6 +19,7 @@ ProspectionArea=منطقة الفرص IdThirdParty=معرف الطرف الثالث IdCompany=معرف الشركة IdContact=معرف جهة الاتصال +ThirdPartyAddress=عنوان الطرف الثالث ThirdPartyContacts=جهات اتصال الطرف الثالث ThirdPartyContact=جهة اتصال | عنوان الطرف الثالث Company=شركة @@ -51,25 +52,28 @@ CivilityCode=قواعد السلوك RegisteredOffice=مكتب مسجل Lastname=اللقب Firstname=الاسم الاول +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=رفض الرسائل الإلكترونية الجماعية @@ -78,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=لا عميل ولا مورد، ولا توجد كائنات مرجعية متاحة @@ -102,6 +106,7 @@ WrongSupplierCode=كود المورد غير صالح CustomerCodeModel=العميل رمز النموذج SupplierCodeModel=نموذج كود المورد Gencod=الباركود +GencodBuyPrice=الباركود السعر المرجع ##### Professional ID ##### ProfId1Short=هوية مهنية 1 ProfId2Short=هوية مهنية 2 @@ -157,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=- -ProfId5CM=- +ProfId1CM=هوية شخصية. الأستاذ. 1 (السجل التجاري) +ProfId2CM=هوية شخصية. الأستاذ. 2 (رقم دافع الضرائب) +ProfId3CM=هوية شخصية. الأستاذ. 3 (رقم مرسوم الانشاء) +ProfId4CM=هوية شخصية. الأستاذ. 4 (رقم شهادة الإيداع) +ProfId5CM=هوية شخصية. الأستاذ. 5 (أخرى) ProfId6CM=- -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId1ShortCM=السجل التجاري +ProfId2ShortCM=رقم دافع الضرائب +ProfId3ShortCM=رقم مرسوم الانشاء +ProfId4ShortCM=شهادة الايداع رقم +ProfId5ShortCM=آخرون ProfId6ShortCM=- ProfId1CO=الهوية المهنية 1 (R.U.T.) ProfId2CO=- @@ -185,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=- @@ -251,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 @@ -275,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) @@ -283,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 @@ -349,7 +354,7 @@ CustomerCodeDesc=كود العميل فريد لجميع العملاء SupplierCodeDesc=كود المورد ، فريد لجميع الموردين RequiredIfCustomer=مطلوب ، إذا كان الطرف الثالث عميلاً أو فرصة RequiredIfSupplier=مطلوب إذا كان الطرف الثالث موردا -ValidityControledByModule=Validity controlled by the module +ValidityControledByModule=يتم التحكم في الصلاحية بواسطة الوحدة ThisIsModuleRules=قواعد هذه الوحدة ProspectToContact=فرصة للاتصال CompanyDeleted=تم حذف شركة "%s" من قاعدة البيانات. @@ -359,7 +364,7 @@ ListOfThirdParties=قائمة الأطراف الثالثة ShowCompany=طرف ثالث ShowContact=عنوان الإتصال ContactsAllShort=الكل (بدون فلتر) -ContactType=نوع الاتصال +ContactType=دور الاتصال ContactForOrders=جهة اتصال الامر ContactForOrdersOrShipments=جهة اتصال الامر أو الشحنة ContactForProposals=جهة اتصال العروض @@ -381,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=نوع الكيان التجاري @@ -457,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=الأعلى لفاتورة مستحقة وصلت @@ -472,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/errors.lang b/htdocs/langs/ar_SA/errors.lang index 0b94eabbb83..f251d252aaa 100644 --- a/htdocs/langs/ar_SA/errors.lang +++ b/htdocs/langs/ar_SA/errors.lang @@ -4,14 +4,15 @@ 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=لم يتم العثور على السجل. ErrorFailToCopyFile=فشل في نسخ الملف '%s' إلى '%s ". ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. @@ -26,34 +27,34 @@ 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=لم يكتب في دليل ٪ ق 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 +63,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=يجب ألا يحتوي الحقل %s على أحرف خاصة ولا أحرف كبيرة ولا يمكن أن يحتوي على أرقام فقط. +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 +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 +144,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 +156,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 +165,7 @@ ErrorPriceExpression5=غير متوقع '٪ ق' ErrorPriceExpression6=عدد خاطئ من الوسائط (٪ ق معين،٪ المتوقعة الصورة) ErrorPriceExpression8=مشغل غير متوقع '٪ ق' ErrorPriceExpression9=حدث خطأ غير متوقع -ErrorPriceExpression10=Operator '%s' lacks operand +ErrorPriceExpression10=عامل التشغيل "%s" يفتقر إلى المعامل ErrorPriceExpression11=تتوقع '٪ ق' ErrorPriceExpression14=القسمة على صفر ErrorPriceExpression17=غير معرف متغير '٪ ق' @@ -171,12 +173,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 +189,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 +212,99 @@ 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 +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=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary +CheckVersionFail=فشل التحقق من الإصدار +ErrorWrongFileName=لا يمكن أن يحتوي اسم الملف على __SOMETHING__ فيه +ErrorNotInDictionaryPaymentConditions=ليس في قاموس شروط الدفع ، يرجى التعديل. +ErrorIsNotADraft=%s ليس مسودة +ErrorExecIdFailed=لا يمكن تنفيذ الأمر "id" +ErrorBadCharIntoLoginName=شخصية غير مصرح بها في اسم تسجيل الدخول +ErrorRequestTooLarge=خطأ ، الطلب كبير جدًا +ErrorNotApproverForHoliday=أنت لست المعتمد للمغادرة %s +ErrorAttributeIsUsedIntoProduct=تُستخدم هذه السمة في متغير منتج واحد أو أكثر +ErrorAttributeValueIsUsedIntoProduct=تُستخدم قيمة السمة هذه في متغير منتج واحد أو أكثر +ErrorPaymentInBothCurrency=خطأ ، يجب إدخال جميع المبالغ في نفس العمود +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=تحاول دفع الفواتير بالعملة %s من حساب بالعملة %s +ErrorInvoiceLoadThirdParty=لا يمكن تحميل كائن جهة خارجية للفاتورة "%s" +ErrorInvoiceLoadThirdPartyKey=مفتاح الجهة الخارجية "%s" لم يتم تعيينه للفاتورة "%s" +ErrorDeleteLineNotAllowedByObjectStatus=حذف سطر غير مسموح به من خلال حالة الكائن الحالية +ErrorAjaxRequestFailed=الطلب فشل +ErrorThirpdartyOrMemberidIsMandatory=طرف ثالث أو عضو في الشراكة إلزامي +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. +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=Click here to setup main parameters +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=ستبقى جميع التحذيرات الأمنية (المرئية من قبل المستخدمين المسؤولين فقط) نشطة طالما أن الثغرة الأمنية موجودة (أو أن MAIN_REMOVE_INSTALL_WARNING الثابت مضاف في الإعداد-> الإعداد الآخر). WarningCloseAlways=تحذير، ويتم إغلاق حتى إذا قدر يختلف بين عناصر المصدر والهدف. تمكين هذه الميزة بحذر. WarningUsingThisBoxSlowDown=تحذير، وذلك باستخدام هذا الإطار تبطئ على محمل الجد كل الصفحات التي تظهر مربع. WarningClickToDialUserSetupNotComplete=إعداد المعلومات ClickToDial لالمستخدم الخاص بك ليست كاملة (انظر التبويب ClickToDial على بطاقة المستخدم الخاص بك). @@ -300,35 +314,36 @@ 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 # 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/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/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 384d4409b11..cbe4aa51b37 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -2,40 +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. +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. -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. +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=ملفات @@ -48,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=إنشاء قاعدة بيانات الأجسام @@ -75,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 بنجاح. @@ -85,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=بيانات الهجرة للحصول على عقود @@ -167,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=سوء قيمة العقد تصحيح التاريخ @@ -191,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/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/loan.lang b/htdocs/langs/ar_SA/loan.lang index 104e03f9ae2..c2caa6426d9 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 = Can't generate a timeline for a loan with a payment started +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 +CreateCalcSchedule=تحرير الالتزام المالي diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index 274db74a867..5bf59f3f85c 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=. @@ -67,7 +73,7 @@ ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يتم تحديد معدل ErrorNoSocialContributionForSellerCountry=خطأ ، لم يتم تحديد نوع الضرائب الاجتماعية | المالية للبلد "%s". ErrorFailedToSaveFile=خطأ، فشل في حفظ الملف. ErrorCannotAddThisParentWarehouse=أنت تحاول إضافة مستودع رئيسي هو بالفعل تابع لمستودع موجود -FieldCannotBeNegative=Field "%s" cannot be negative +FieldCannotBeNegative=لا يمكن أن يكون الحقل "%s" سالبًا MaxNbOfRecordPerPage=عدد السجلات الاعلى في الصفحة الواحدة NotAuthorized=غير مصرح لك ان تفعل ذلك. SetDate=تحديد التاريخ @@ -88,7 +94,7 @@ FileWasNotUploaded=تم تحديد ملف للإرفاق ولكن لم يتم ت NbOfEntries=عدد الإدخالات GoToWikiHelpPage=قراءة التعليمات عبر الإنترنت (يلزم الاتصال بالإنترنت) GoToHelpPage=قراءة المساعدة -DedicatedPageAvailable=Dedicated help page related to your current screen +DedicatedPageAvailable=صفحة مساعدة مخصصة تتعلق بشاشتك الحالية HomePage=الصفحة الرئيسية RecordSaved=تم حفظ سجل RecordDeleted=سجل محذوف @@ -115,7 +121,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 +187,7 @@ SaveAndNew=حفظ وجديد TestConnection=اختبار الاتصال ToClone=استنساخ ConfirmCloneAsk=هل أنت متأكد أنك تريد استنساخ الكائن %s ؟ -ConfirmClone=Choose the data you want to clone: +ConfirmClone=اختر البيانات التي تريد نسخها: NoCloneOptionsSpecified=لا توجد بيانات لاستنساخ محددة. Of=من Go=اذهب @@ -212,8 +218,8 @@ User=المستعمل Users=المستخدمين Group=مجموعة Groups=المجموعات -UserGroup=User group -UserGroups=User groups +UserGroup=مجموعة المستخدمين +UserGroups=مجموعات الاعضاء NoUserGroupDefined=لم يتم تحديد مجموعة مستخدمين Password=كلمة المرور PasswordRetype=أعد كتابة كلمة المرور @@ -244,12 +250,13 @@ Designation=الوصف DescriptionOfLine=وصف البند DateOfLine=تاريخ البند DurationOfLine=مدة البند +ParentLine=معرف خط الأصل Model=قالب المستند DefaultModel=قالب المستند الافتراضي Action=حدث About=حول Number=عدد -NumberByMonth=Total reports by month +NumberByMonth=إجمالي التقارير حسب الشهر AmountByMonth=المبلغ بالشهر Numero=عدد Limit=الحد @@ -344,8 +351,8 @@ KiloBytes=كيلو بايت MegaBytes=ميغابايت GigaBytes=غيغا بايت TeraBytes=تيرابايت -UserAuthor=Ceated by -UserModif=Updated by +UserAuthor=تم الإنشاء بواسطة +UserModif=تم التحديث بواسطة b=بايت Kb=كيلوبايت Mb=ميغابايت @@ -433,7 +440,7 @@ LT1IN=CGST LT2IN=SGST LT1GC=Additionnal cents VATRate=معدل الضريبة -RateOfTaxN=Rate of tax %s +RateOfTaxN=معدل الضريبة %s VATCode=كود معدل الضريبة VATNPR=معدل ضريبة NPR DefaultTaxRate=معدل الضريبة الافتراضي @@ -517,6 +524,7 @@ or=أو Other=آخر Others=آخرون OtherInformations=معلومات أخرى +Workflow=سير العمل Quantity=كمية Qty=الكمية ChangedBy=تغيير من قبل @@ -619,6 +627,7 @@ MonthVeryShort11=11 MonthVeryShort12=12 AttachedFiles=الملفات والمستندات المرفقة JoinMainDoc=ضم إلى المستند الرئيسي +JoinMainDocOrLastGenerated=أرسل المستند الرئيسي أو آخر مستند تم إنشاؤه إذا لم يتم العثور عليه DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +718,7 @@ FeatureDisabled=ميزة معطلة MoveBox=نقل البريمج Offered=معروض NotEnoughPermissions=ليس لديك إذن بهذا الإجراء +UserNotInHierachy=هذا الإجراء محجوز لمشرفي هذا المستخدم SessionName=اسم الجلسة Method=الطريقة Receive=استقبال @@ -733,7 +743,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=الواجهة الحالية @@ -807,7 +817,7 @@ LinkToSupplierInvoice=ربط مع فاتورة المورد LinkToContract=ربط مع العقد LinkToIntervention=ربط مع التداخل LinkToTicket=ربط مع التذكرة -LinkToMo=Link to Mo +LinkToMo=رابط إلى Mo CreateDraft=إنشاء مسودة SetToDraft=العودة إلى المسودة ClickToEdit=انقر للتحرير @@ -851,7 +861,7 @@ XMoreLines=%s بند (بنود) مخفي ShowMoreLines=عرض المزيد | أقل من البنود PublicUrl=URL العام AddBox=إضافة مربع -SelectElementAndClick=Select an element and click on %s +SelectElementAndClick=حدد عنصرًا وانقر فوق %s PrintFile=طباعة الملف %s ShowTransaction=عرض الإدخال في الحساب المصرفي ShowIntervention=عرض التدخل @@ -862,8 +872,8 @@ Denied=مرفوض ListOf=قائمة %s ListOfTemplates=قائمة القوالب Gender=جنس -Genderman=Male -Genderwoman=Female +Genderman=ذكر +Genderwoman=أنثى Genderother=الآخر ViewList=عرض القائمة ViewGantt=عرض Gantt @@ -909,7 +919,7 @@ 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=رابط التحميل الخاص @@ -1078,7 +1088,7 @@ ValidFrom=صالح من ValidUntil=صالح حتى NoRecordedUsers=لايوجد مستخدمين ToClose=لغلق -ToRefuse=To refuse +ToRefuse=رفض ToProcess=لعملية ToApprove=للموافقة GlobalOpenedElemView=نظرة شاملة @@ -1133,34 +1143,47 @@ UpdateForAllLines=تحديث لجميع البنود OnHold=في الانتظار Civility=Civility AffectTag=Affect Tag -CreateExternalUser=Create external user +CreateExternalUser=إنشاء مستخدم خارجي ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? CategTypeNotFound=لا يوجد ملصق لنوع السجل 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 +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=مندوبي المبيعات يتأثرون +CommercialAffected=مندوب المبيعات يتأثر +YourMessage=رسالتك +YourMessageHasBeenReceived=وقد وردت الرسالة. سنقوم بالرد أو الاتصال بك في أقرب وقت ممكن. +UrlToCheck=عنوان Url المراد التحقق منه +Automation=أتمتة +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang index 2a8a76108e3..f8764aafc0f 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,28 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=عضو آخر (الاسم : ٪ ق< ErrorUserPermissionAllowsToLinksToItselfOnly=لأسباب أمنية ، يجب أن تمنح أذونات لتحرير جميع المستخدمين لتكون قادرة على ربط عضو لمستخدم هذا ليس لك. SetLinkToUser=وصلة إلى مستخدم Dolibarr SetLinkToThirdParty=وصلة إلى طرف ثالث Dolibarr -MembersCards=Business cards for members +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=بدون مساهمة +MemberId=معرف العضو +MemberRef=عضو المرجع NewMember=عضو جديد MemberType=عضو نوع MemberTypeId=عضو نوع معرف @@ -43,110 +44,110 @@ 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=إسهام +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:

    +ThisIsContentOfYourMembershipRequestWasReceived=نريد إخبارك بأنه قد تم استلام طلب العضوية الخاص بك.

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

    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 +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 +157,67 @@ 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 -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionsOnSubscription=يُقترح إجراء تكميلي بشكل افتراضي عند تسجيل مساهمة ، ويتم إجراؤه تلقائيًا عند الدفع عبر الإنترنت للمساهمة +MoreActionBankDirect=إنشاء قيد مباشر في الحساب المصرفي +MoreActionBankViaInvoice=قم بإنشاء فاتورة ودفع على حساب بنكي MoreActionInvoiceOnly=إنشاء فاتورة مع دفع أي مبلغ -LinkToGeneratedPages=بطاقات زيارة انتج +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 +DefaultAmount=المبلغ الافتراضي للمساهمة 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. +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=اسم العائلة للعضو 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/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/other.lang b/htdocs/langs/ar_SA/other.lang index fb7e8ef709e..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=تدير متجر مع مكتب النقدية -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,64 +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 = الملء التلقائي + +# 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/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/projects.lang b/htdocs/langs/ar_SA/projects.lang index 7c52187cf3d..21a8c799261 100644 --- a/htdocs/langs/ar_SA/projects.lang +++ b/htdocs/langs/ar_SA/projects.lang @@ -3,51 +3,51 @@ RefProject=المرجع. مشروع ProjectRef=المرجع المشروع. ProjectId=رقم المشروع ProjectLabel=تسمية المشروع -ProjectsArea=Projects Area +ProjectsArea=منطقة المشاريع ProjectStatus=حالة المشروع SharedProject=مشاريع مشتركة -PrivateProject=مشروع اتصالات -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=تظهر فقط المهام المعينة لك. إذا كنت بحاجة إلى إدخال الوقت في مهمة وإذا كانت المهمة غير مرئية هنا ، فأنت بحاجة إلى تعيين المهمة لنفسك. +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=وتظهر هذه المهمة SetProject=وضع المشروع 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 +56,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 +67,80 @@ 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=أغلق المشروع أيضًا (اتركه مفتوحًا إذا كنت لا تزال بحاجة إلى متابعة مهام الإنتاج عليه) 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 +148,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=المقدار المرجح للفرصة +OpportunityWeightedAmountShort=مقابل. الكمية المرجحة +OpportunityAmountAverageShort=متوسط مبلغ الرصاص +OpportunityAmountWeigthedShort=مبلغ الرصاص المرجح +WonLostExcluded=فاز / خسر مستبعد ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=مشروع زعيم TypeContact_project_external_PROJECTLEADER=مشروع زعيم @@ -183,52 +183,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=يجب التحقق من صحة المشروع أولا -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=مقترح @@ -236,54 +237,60 @@ 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=السماح بربط مشروع من شركة أخرى

    القيم المدعومة:
    - احتفظ به فارغًا: يمكنك ربط أي مشروع من مشاريع الشركة (افتراضي) a0342fccfda019b34 معرفات الجهات الخارجية مفصولة بفواصل: يمكن ربط جميع مشاريع هذه الأطراف الثالثة (مثال: 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 +OneLinePerUser=خط واحد لكل مستخدم 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 +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=ملاحظة: المشاريع الحالية مع جميع المهام في 100%% لن يتأثر التقدم: سيكون عليك إغلاقها يدويًا. يؤثر هذا الخيار فقط على المشاريع المفتوحة. +SelectLinesOfTimeSpentToInvoice=حدد سطور الوقت المستغرقة التي لم يتم تحرير فواتير بها ، ثم قم بإجراء جماعي "إنشاء الفاتورة" لفواتيرها +ProjectTasksWithoutTimeSpent=مهام المشروع دون إضاعة الوقت +FormForNewLeadDesc=شكرا لملء النموذج التالي للاتصال بنا. يمكنك أيضًا إرسال بريد إلكتروني إلينا مباشرة إلى %s . +ProjectsHavingThisContact=المشاريع التي لديها هذا الاتصال StartDateCannotBeAfterEndDate=تاريخ نهاية لا يمكن أن يكون قبل تاريخ البدء +ErrorPROJECTLEADERRoleMissingRestoreIt=دور "PROJECTLEADER" مفقود أو تم إلغاء تنشيطه ، يرجى الاستعادة في قاموس أنواع جهات الاتصال +LeadPublicFormDesc=يمكنك هنا تمكين صفحة عامة للسماح لآفاقك بإجراء أول اتصال لك من نموذج عام عبر الإنترنت +EnablePublicLeadForm=قم بتمكين النموذج العام للاتصال +NewLeadbyWeb=تم تسجيل رسالتك أو طلبك. سوف نقوم بالرد أو الاتصال بك قريبا. +NewLeadForm=استمارة اتصال جديدة +LeadFromPublicForm=عميل محتمل عبر الإنترنت من شكل عام 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/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 cb685433765..9ffe6e01161 100644 --- a/htdocs/langs/ar_SA/ticket.lang +++ b/htdocs/langs/ar_SA/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=واجهة عامة لا تتطلب توثيق متاحة ع TicketSetupDictionaries=انواع التذاكر ، الأولويات و الوسوم التحليلية متاحة عن طريق القواميس TicketParamModule=إعداد متغيرات الوحدة TicketParamMail=إعدادات البريد الإلكتروني -TicketEmailNotificationFrom=إشعار البريد الإلكتروني من -TicketEmailNotificationFromHelp=يستخدم في رسائل التذاكر ، الإجابات مثلاَ -TicketEmailNotificationTo=إشعار البريد الإلكتروني الى -TicketEmailNotificationToHelp=إرسال اشعار البريد الإلكتروني الى هذا العنوان +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 TicketNewEmailBodyLabel=النص المرسل بعد إنشاء التذكرة TicketNewEmailBodyHelp=النص المدخل هنا سيتم إدراجه في إشعار البريد الإلكتروني الذى يؤكد إنشاء التذكرة من الواجهة العامة. معلومات تداول التذكرة ستضاف تلقائيا. TicketParamPublicInterface=إعدادات الواجهة العامة @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=ترتيب تصاعديا حسب التاريخ OrderByDateDesc=ترتيب تنازليا حسب التاريخ ShowAsConversation=عرض كقائمة محادثات MessageListViewType=عرض كقائمة جداول +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=المستقبل خالي. لم ي TicketGoIntoContactTab=يرجى الذهاب الى تبويب "جهات الإتصال" لاختيارهم TicketMessageMailIntro=مقدمة TicketMessageMailIntroHelp=يضاف هذا النص فقط في بداية البريد الإلكتروني و لن يتم حفظه -TicketMessageMailIntroLabelAdmin=مقدمة الرسالة عند إرسال البريد الإلكتروني -TicketMessageMailIntroText=مرحبا
    ، تم إضافة إستجابة جديدة على تذكرة انت على إتصال بها ، وهذا نص الرسالة :
    -TicketMessageMailIntroHelpAdmin=هذا النص سيتم إدراجه قبل نص الإستجابة للتذكرة. +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=

    بإخلاص

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=توقيع بريد الإستجابة TicketMessageMailSignatureHelpAdmin=هذا النص سيتم إدراجه بعد رسالة الإستجابة TicketMessageHelp=فقط هذا النص سيتم حفظه في قائمة الرسائل في بطاقة التذكرة @@ -238,9 +252,16 @@ TicketChangeStatus=تغيير الحالة TicketConfirmChangeStatus=تأكيد تغيير الحالة: %s ؟ TicketLogStatusChanged=تم تغيير الحالى : %s الى %s TicketNotNotifyTiersAtCreate=لا تخطر الشركات عند الإنشاء +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=هذا بريد إلكتروني تلقائي لتأكيد ق TicketNewEmailBodyCustomer=هذا بريد إلكتروني تلقائي لتأكيد إنشاء تذكرة جديدة على حسابك TicketNewEmailBodyInfosTicket=معلومات مراقبة التذكرة TicketNewEmailBodyInfosTrackId=رقم تتبع التذكرة: %s -TicketNewEmailBodyInfosTrackUrl=يمكنك متابعة التذكرة بالضغط على الرابط اعلاه. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=يمكنك متابعة التذكرة على الواجهة المعينة بالضغط على الرابط التالي +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=يرجى عدم الرد على هذا البريد الإلكتروني ! إستخدم الرابط للرد على الواجهة. TicketPublicInfoCreateTicket=تتيح لك هذه الإستمارة تسجيل تذكرة دعم فني لدى نظامنا الإداري. TicketPublicPleaseBeAccuratelyDescribe=يرجى وصف المشكلة بدقة. وذكر اكبر قدر من المعلومات بما يتيح لنا معرفة طلبك بشكل جيد. @@ -291,6 +313,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: TicketNotificationEmailSubject=تم تعديل التذكرة %s. TicketNotificationEmailBody=هذه رسالة تلقائية لإعلامك بأن التذكرة %s تم تعديلها TicketNotificationRecipient=مستلم الإشعار diff --git a/htdocs/langs/ar_SY/accountancy.lang b/htdocs/langs/ar_SY/accountancy.lang new file mode 100644 index 00000000000..8283da55f41 --- /dev/null +++ b/htdocs/langs/ar_SY/accountancy.lang @@ -0,0 +1,457 @@ +# 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 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 + +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, select period show 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 + +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 "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 ? +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 + +## 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/ar_SY/admin.lang b/htdocs/langs/ar_SY/admin.lang new file mode 100644 index 00000000000..15bd75f5d50 --- /dev/null +++ b/htdocs/langs/ar_SY/admin.lang @@ -0,0 +1,2254 @@ +# 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 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) +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 (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) +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=Hide images 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 dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +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 data about European companies/citizens, 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, with no 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=Enable feature to check if a resource is in use in an event +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_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. +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. diff --git a/htdocs/langs/ar_SY/agenda.lang b/htdocs/langs/ar_SY/agenda.lang new file mode 100644 index 00000000000..845bcc53ee5 --- /dev/null +++ b/htdocs/langs/ar_SY/agenda.lang @@ -0,0 +1,176 @@ +# 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 +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/ar_SY/assets.lang b/htdocs/langs/ar_SY/assets.lang new file mode 100644 index 00000000000..fd7185d93c0 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/banks.lang b/htdocs/langs/ar_SY/banks.lang new file mode 100644 index 00000000000..a3e0bc2f901 --- /dev/null +++ b/htdocs/langs/ar_SY/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 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 +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/ar_SY/bills.lang b/htdocs/langs/ar_SY/bills.lang new file mode 100644 index 00000000000..5935f3f41e8 --- /dev/null +++ b/htdocs/langs/ar_SY/bills.lang @@ -0,0 +1,614 @@ +# 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 +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 +# 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/ar_SY/blockedlog.lang b/htdocs/langs/ar_SY/blockedlog.lang new file mode 100644 index 00000000000..12f28737d49 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/bookmarks.lang b/htdocs/langs/ar_SY/bookmarks.lang new file mode 100644 index 00000000000..be0f2f7e25d --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/boxes.lang b/htdocs/langs/ar_SY/boxes.lang new file mode 100644 index 00000000000..2ace1eb97e1 --- /dev/null +++ b/htdocs/langs/ar_SY/boxes.lang @@ -0,0 +1,120 @@ +# 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 +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/ar_SY/cashdesk.lang b/htdocs/langs/ar_SY/cashdesk.lang new file mode 100644 index 00000000000..bcd3afb52e2 --- /dev/null +++ b/htdocs/langs/ar_SY/cashdesk.lang @@ -0,0 +1,138 @@ +# 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 desk closing +CashFenceDone=Cash desk 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" 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 +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
    diff --git a/htdocs/langs/ar_SY/categories.lang b/htdocs/langs/ar_SY/categories.lang new file mode 100644 index 00000000000..a2d05767cae --- /dev/null +++ b/htdocs/langs/ar_SY/categories.lang @@ -0,0 +1,101 @@ +# 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 +ActionCommCategoriesArea=Event Categories +WebsitePagesCategoriesArea=Page-Container Categories +KnowledgemanagementsCategoriesArea=KM article Categories +UseOrOperatorForCategories=Use 'OR' operator for categories diff --git a/htdocs/langs/ar_SY/commercial.lang b/htdocs/langs/ar_SY/commercial.lang new file mode 100644 index 00000000000..21d282cd794 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/companies.lang b/htdocs/langs/ar_SY/companies.lang new file mode 100644 index 00000000000..47bda98308b --- /dev/null +++ b/htdocs/langs/ar_SY/companies.lang @@ -0,0 +1,498 @@ +# 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 +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 +##### 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 (Decree of creation) +ProfId4CM=- +ProfId5CM=- +ProfId6CM=- +ProfId1ShortCM=Trade Register +ProfId2ShortCM=Taxpayer No. +ProfId3ShortCM=Decree of creation +ProfId4ShortCM=- +ProfId5ShortCM=- +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/ar_SY/compta.lang b/htdocs/langs/ar_SY/compta.lang new file mode 100644 index 00000000000..0e61076345b --- /dev/null +++ b/htdocs/langs/ar_SY/compta.lang @@ -0,0 +1,302 @@ +# 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 ? diff --git a/htdocs/langs/ar_SY/contracts.lang b/htdocs/langs/ar_SY/contracts.lang new file mode 100644 index 00000000000..8d209623c1b --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/cron.lang b/htdocs/langs/ar_SY/cron.lang new file mode 100644 index 00000000000..9705f8823b0 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/deliveries.lang b/htdocs/langs/ar_SY/deliveries.lang new file mode 100644 index 00000000000..cd8a36e6c70 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/dict.lang b/htdocs/langs/ar_SY/dict.lang new file mode 100644 index 00000000000..0524cf1ca18 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/donations.lang b/htdocs/langs/ar_SY/donations.lang new file mode 100644 index 00000000000..d512abb2eea --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/ecm.lang b/htdocs/langs/ar_SY/ecm.lang new file mode 100644 index 00000000000..494a6c55164 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/errors.lang b/htdocs/langs/ar_SY/errors.lang new file mode 100644 index 00000000000..8097d3a5b6f --- /dev/null +++ b/htdocs/langs/ar_SY/errors.lang @@ -0,0 +1,340 @@ +# 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 +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 + +# 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. + +# 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/ar_SY/eventorganization.lang b/htdocs/langs/ar_SY/eventorganization.lang new file mode 100644 index 00000000000..858e0937788 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/exports.lang b/htdocs/langs/ar_SY/exports.lang new file mode 100644 index 00000000000..f2f2d2cf587 --- /dev/null +++ b/htdocs/langs/ar_SY/exports.lang @@ -0,0 +1,137 @@ +# 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. +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 +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... +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 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. +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 field number %s in source file. +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. +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 diff --git a/htdocs/langs/ar_SY/help.lang b/htdocs/langs/ar_SY/help.lang new file mode 100644 index 00000000000..d699cb56fd2 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/holiday.lang b/htdocs/langs/ar_SY/holiday.lang new file mode 100644 index 00000000000..3d0ae64be0f --- /dev/null +++ b/htdocs/langs/ar_SY/holiday.lang @@ -0,0 +1,139 @@ +# Dolibarr language file - Source file is en_US - holiday +HRM=HRM +Holidays=Leave +CPTitreMenu=Leave +MenuReportMonth=Monthly statement +MenuAddCP=New 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. +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. +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/ar_SY/hrm.lang b/htdocs/langs/ar_SY/hrm.lang new file mode 100644 index 00000000000..ff917913eee --- /dev/null +++ b/htdocs/langs/ar_SY/hrm.lang @@ -0,0 +1,90 @@ +# 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 - Department list +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 +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 +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) diff --git a/htdocs/langs/ar_SY/install.lang b/htdocs/langs/ar_SY/install.lang new file mode 100644 index 00000000000..18a2eee941c --- /dev/null +++ b/htdocs/langs/ar_SY/install.lang @@ -0,0 +1,220 @@ +# 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 reabable. 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. +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=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 is required. +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. +ErrorDatabaseAlreadyExists=Database '%s' already exists. +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/ar_SY/interventions.lang b/htdocs/langs/ar_SY/interventions.lang new file mode 100644 index 00000000000..a57a84fc4c8 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/intracommreport.lang b/htdocs/langs/ar_SY/intracommreport.lang new file mode 100644 index 00000000000..93c46f112bb --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/knowledgemanagement.lang b/htdocs/langs/ar_SY/knowledgemanagement.lang new file mode 100644 index 00000000000..bcdf9740cdd --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/languages.lang b/htdocs/langs/ar_SY/languages.lang new file mode 100644 index 00000000000..1b1bdd3e27f --- /dev/null +++ b/htdocs/langs/ar_SY/languages.lang @@ -0,0 +1,120 @@ +# 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_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_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_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/ar_SY/ldap.lang b/htdocs/langs/ar_SY/ldap.lang new file mode 100644 index 00000000000..62f90d795a4 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/link.lang b/htdocs/langs/ar_SY/link.lang new file mode 100644 index 00000000000..1ffcd41a18b --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/loan.lang b/htdocs/langs/ar_SY/loan.lang new file mode 100644 index 00000000000..d271ed0c140 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/mailmanspip.lang b/htdocs/langs/ar_SY/mailmanspip.lang new file mode 100644 index 00000000000..bab4b3576b4 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/mails.lang b/htdocs/langs/ar_SY/mails.lang new file mode 100644 index 00000000000..52c4d4dbf69 --- /dev/null +++ b/htdocs/langs/ar_SY/mails.lang @@ -0,0 +1,180 @@ +# 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 diff --git a/htdocs/langs/ar_SY/main.lang b/htdocs/langs/ar_SY/main.lang new file mode 100644 index 00000000000..530f3b6af0e --- /dev/null +++ b/htdocs/langs/ar_SY/main.lang @@ -0,0 +1,1176 @@ +# 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=Ceated 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 +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 +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 diff --git a/htdocs/langs/ar_SY/margins.lang b/htdocs/langs/ar_SY/margins.lang new file mode 100644 index 00000000000..a91b139ec7b --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/members.lang b/htdocs/langs/ar_SY/members.lang new file mode 100644 index 00000000000..5d7828a8432 --- /dev/null +++ b/htdocs/langs/ar_SY/members.lang @@ -0,0 +1,220 @@ +# 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 +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 +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.

    +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 +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. diff --git a/htdocs/langs/ar_SY/modulebuilder.lang b/htdocs/langs/ar_SY/modulebuilder.lang new file mode 100644 index 00000000000..416ff013219 --- /dev/null +++ b/htdocs/langs/ar_SY/modulebuilder.lang @@ -0,0 +1,152 @@ +# 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, 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. diff --git a/htdocs/langs/ar_SY/mrp.lang b/htdocs/langs/ar_SY/mrp.lang new file mode 100644 index 00000000000..9060feb3afd --- /dev/null +++ b/htdocs/langs/ar_SY/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 +BOMNetNeeds=Net Needs +TreeStructure=Tree structure +GroupByProduct=Group by product diff --git a/htdocs/langs/ar_SY/multicurrency.lang b/htdocs/langs/ar_SY/multicurrency.lang new file mode 100644 index 00000000000..26313c6bfb9 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/oauth.lang b/htdocs/langs/ar_SY/oauth.lang new file mode 100644 index 00000000000..2afc3870f29 --- /dev/null +++ b/htdocs/langs/ar_SY/oauth.lang @@ -0,0 +1,32 @@ +# 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 +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 diff --git a/htdocs/langs/ar_SY/opensurvey.lang b/htdocs/langs/ar_SY/opensurvey.lang new file mode 100644 index 00000000000..9fafacaf8bf --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/orders.lang b/htdocs/langs/ar_SY/orders.lang new file mode 100644 index 00000000000..a4261f8e62c --- /dev/null +++ b/htdocs/langs/ar_SY/orders.lang @@ -0,0 +1,200 @@ +# Dolibarr language file - Source file is en_US - orders +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/ar_SY/other.lang b/htdocs/langs/ar_SY/other.lang new file mode 100644 index 00000000000..c1a217fa960 --- /dev/null +++ b/htdocs/langs/ar_SY/other.lang @@ -0,0 +1,306 @@ +# 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 desk +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 diff --git a/htdocs/langs/ar_SY/partnership.lang b/htdocs/langs/ar_SY/partnership.lang new file mode 100644 index 00000000000..a52f2af9ff7 --- /dev/null +++ b/htdocs/langs/ar_SY/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. + +# +# 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 + +# +# 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 +# +PartnershipDraft=Draft +PartnershipAccepted=Accepted +PartnershipRefused=Refused +PartnershipCanceled=Canceled +PartnershipManagedFor=Partners are + diff --git a/htdocs/langs/ar_SY/paybox.lang b/htdocs/langs/ar_SY/paybox.lang new file mode 100644 index 00000000000..a2bfb1773e4 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/paypal.lang b/htdocs/langs/ar_SY/paypal.lang new file mode 100644 index 00000000000..beaf9a5ea3f --- /dev/null +++ b/htdocs/langs/ar_SY/paypal.lang @@ -0,0 +1,36 @@ +# 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 diff --git a/htdocs/langs/ar_SY/printing.lang b/htdocs/langs/ar_SY/printing.lang new file mode 100644 index 00000000000..bd9094f213d --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/productbatch.lang b/htdocs/langs/ar_SY/productbatch.lang new file mode 100644 index 00000000000..4bd64f44577 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/products.lang b/htdocs/langs/ar_SY/products.lang new file mode 100644 index 00000000000..2d8ef240ef1 --- /dev/null +++ b/htdocs/langs/ar_SY/products.lang @@ -0,0 +1,426 @@ +# 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 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. +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 diff --git a/htdocs/langs/ar_SY/projects.lang b/htdocs/langs/ar_SY/projects.lang new file mode 100644 index 00000000000..d461f4f152d --- /dev/null +++ b/htdocs/langs/ar_SY/projects.lang @@ -0,0 +1,291 @@ +# 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=Project 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 +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 diff --git a/htdocs/langs/ar_SY/propal.lang b/htdocs/langs/ar_SY/propal.lang new file mode 100644 index 00000000000..d86268dcc44 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/receiptprinter.lang b/htdocs/langs/ar_SY/receiptprinter.lang new file mode 100644 index 00000000000..2b0264bdfa7 --- /dev/null +++ b/htdocs/langs/ar_SY/receiptprinter.lang @@ -0,0 +1,82 @@ +# 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_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/ar_SY/receptions.lang b/htdocs/langs/ar_SY/receptions.lang new file mode 100644 index 00000000000..7f1a97d16a9 --- /dev/null +++ b/htdocs/langs/ar_SY/receptions.lang @@ -0,0 +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 +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 +ByingPrice=Bying price +ReceptionBackToDraftInDolibarr=Reception %s back to draft +ReceptionClassifyClosedInDolibarr=Reception %s classified Closed +ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open diff --git a/htdocs/langs/ar_SY/recruitment.lang b/htdocs/langs/ar_SY/recruitment.lang new file mode 100644 index 00000000000..888f6fe5225 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/resource.lang b/htdocs/langs/ar_SY/resource.lang new file mode 100644 index 00000000000..e8574dc680f --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/salaries.lang b/htdocs/langs/ar_SY/salaries.lang new file mode 100644 index 00000000000..20a10694500 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/sendings.lang b/htdocs/langs/ar_SY/sendings.lang new file mode 100644 index 00000000000..8f10b1e9404 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/sms.lang b/htdocs/langs/ar_SY/sms.lang new file mode 100644 index 00000000000..055085eb16a --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/stocks.lang b/htdocs/langs/ar_SY/stocks.lang new file mode 100644 index 00000000000..2e6d7e518c7 --- /dev/null +++ b/htdocs/langs/ar_SY/stocks.lang @@ -0,0 +1,274 @@ +# 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. +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 diff --git a/htdocs/langs/ar_SY/stripe.lang b/htdocs/langs/ar_SY/stripe.lang new file mode 100644 index 00000000000..2c95bcfce27 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/supplier_proposal.lang b/htdocs/langs/ar_SY/supplier_proposal.lang new file mode 100644 index 00000000000..a68319fb2df --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/suppliers.lang b/htdocs/langs/ar_SY/suppliers.lang new file mode 100644 index 00000000000..52bf033c62e --- /dev/null +++ b/htdocs/langs/ar_SY/suppliers.lang @@ -0,0 +1,56 @@ +# Dolibarr language file - Source file is en_US - vendors +Suppliers=Vendors +SuppliersInvoice=Vendor invoice +SupplierInvoices=Vendor invoices +ShowSupplierInvoice=Show Vendor Invoice +NewSupplier=New vendor +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/ar_SY/ticket.lang b/htdocs/langs/ar_SY/ticket.lang new file mode 100644 index 00000000000..51555c8c206 --- /dev/null +++ b/htdocs/langs/ar_SY/ticket.lang @@ -0,0 +1,350 @@ +# 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 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 +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. +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/ar_SY/trips.lang b/htdocs/langs/ar_SY/trips.lang new file mode 100644 index 00000000000..9210ede360c --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/users.lang b/htdocs/langs/ar_SY/users.lang new file mode 100644 index 00000000000..1806e1ef75e --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/website.lang b/htdocs/langs/ar_SY/website.lang new file mode 100644 index 00000000000..2bf46e63e9d --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/withdrawals.lang b/htdocs/langs/ar_SY/withdrawals.lang new file mode 100644 index 00000000000..82cd908c6a8 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/workflow.lang b/htdocs/langs/ar_SY/workflow.lang new file mode 100644 index 00000000000..2d7914f6139 --- /dev/null +++ b/htdocs/langs/ar_SY/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/ar_SY/zapier.lang b/htdocs/langs/ar_SY/zapier.lang new file mode 100644 index 00000000000..b4cc4ccba4a --- /dev/null +++ b/htdocs/langs/ar_SY/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/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 4f2e627335a..aea81c1d3a5 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Основна счетоводна AccountancyArea=Секция за счетоводство AccountancyAreaDescIntro=Използването на счетоводния модул се извършва на няколко стъпки: AccountancyAreaDescActionOnce=Следните действия се изпълняват обикновено само веднъж или веднъж годишно... -AccountancyAreaDescActionOnceBis=Следващите стъпки трябва да се направят, за да ви спестят време в бъдеще, като ви предлагат правилната счетоводна сметка по подразбиране при извършване на осчетоводяване (добавяне на записи в журнали и в главната счетоводна книга) +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=Следните действия се изпълняват обикновено всеки месец, седмица или ден при много големи компании... -AccountancyAreaDescJournalSetup=СТЪПКА %s: Създайте или проверете съдържанието на списъка с журнали от меню %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=СТЪПКА %s: Проверете дали съществува шаблон за сметкоплан или създайте такъв от меню %s AccountancyAreaDescChart=СТЪПКА %s: Изберете и / или попълнете вашият сметкоплан от меню %s AccountancyAreaDescVat=СТЪПКА %s: Определете счетоводните сметки за всяка ставка на ДДС. За това използвайте менюто %s. AccountancyAreaDescDefault=СТЪПКА %s: Определете счетоводните сметки по подразбиране. За това използвайте менюто %s. -AccountancyAreaDescExpenseReport=СТЪПКА %s: Определете счетоводните сметки по подразбиране за всеки вид разходен отчет. За това използвайте менюто %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=СТЪПКА %s: Определете счетоводните сметки по подразбиране за плащане на заплати. За това използвайте менюто %s. -AccountancyAreaDescContrib=СТЪПКА %s: Определете счетоводните сметки по подразбиране за специални разходи (различни данъци). За това използвайте менюто %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=СТЪПКА %s: Определете счетоводните сметки по подразбиране за дарения. За това използвайте менюто %s. AccountancyAreaDescSubscription=СТЪПКА %s: Определете счетоводните сметки по подразбиране за членски внос. За това използвайте менюто %s. AccountancyAreaDescMisc=СТЪПКА %s: Определете задължителната сметка по подразбиране и счетоводните сметки по подразбиране за различни транзакции. За това използвайте менюто %s. AccountancyAreaDescLoan=СТЪПКА %s: Определете счетоводните сметки по подразбиране за кредити. За това използвайте менюто %s. AccountancyAreaDescBank=СТЪПКА %s: Определете счетоводните сметки и кодът на журнала за всяка банка и финансови сметки. За това използвайте менюто %s. -AccountancyAreaDescProd=СТЪПКА %s: Определете счетоводните сметки за вашите продукти / услуги. За това използвайте менюто %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=СТЪПКА %s: Проверете обвързването между съществуващите %s реда и готовия счетоводен акаунт, така че системата да е в състояние да осчетоводи транзакции в главната счетоводна книга с едно кликване. Осъществете липсващите връзки. За това използвайте менюто %s. AccountancyAreaDescWriteRecords=СТЪПКА %s: Запишете транзакции в главната счетоводна книга. За това влезте в меню %s и кликнете върху бутон %s. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Приключване MenuAccountancyValidationMovements=Валидиране на движения ProductsBinding=Сметки за продукти TransferInAccounting=Прехвърляне към счетоводство -RegistrationInAccounting=Регистриране в счетоводство +RegistrationInAccounting=Recording in accounting Binding=Обвързване към сметки CustomersVentilation=Обвързване на фактура за продажба SuppliersVentilation=Обвързване на фактура за доставка @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Обвързващ на разходен отчет CreateMvts=Създаване на нова транзакция UpdateMvts=Променяне на транзакция ValidTransaction=Валидиране на транзакция -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Главна счетоводна книга BookkeepingSubAccount=Subledger AccountBalance=Салдо по сметка @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Счетоводна сметка за регистр ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Счетоводен акаунт за регистриране на членски внос ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines ACCOUNTING_PRODUCT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти (използва се, ако не е определена в продуктовата карта) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти в ЕИО (използва се, ако не е дефинирана в картата на продукта) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=По предварително определени ByPersonalizedAccountGroups=По персонализирани групи ByYear=По година NotMatch=Не е зададено -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Месец за изтриване DelYear=Година за изтриване DelJournal=Журнал за изтриване -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=Финансов журнал ExpenseReportsJournal=Журнал за разходни отчети DescFinanceJournal=Финансов журнал, включващ всички видове плащания по банкова сметка @@ -278,30 +279,31 @@ DescVentilExpenseReportMore=Ако настроите счетоводна см DescVentilDoneExpenseReport=Преглед на списъка с редове на разходни отчети и тяхната счетоводна сметка за такса Closure=Annual closure -DescClosure=Преглед на броя движения за месец, които не са валидирани за активните фискални години -OverviewOfMovementsNotValidated=Стъпка 1 / Преглед на движенията, които не са валидирани (необходимо за приключване на фискална година) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Валидиране на движения +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=Всякакви промени или изтриване на написаното ще бъдат забранени. Всички записи за изпълнение трябва да бъдат валидирани, в противен случай приключването няма да е възможно. ValidateHistory=Автоматично свързване AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) ErrorAccountancyCodeIsAlreadyUse=Грешка, не може да изтриете тази счетоводна сметка, защото се използва. -MvtNotCorrectlyBalanced=Движението не е правилно балансирано. Дебит = %s | Credit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Балансиране FicheVentilation=Свързваща карта GeneralLedgerIsWritten=Транзакциите са записани в главната счетоводна книга GeneralLedgerSomeRecordWasNotRecorded=Някои от транзакциите не бяха осчетоводени. Ако няма друго съобщение за грешка, то това вероятно е, защото те вече са били осчетоводени. -NoNewRecordSaved=Няма повече записи за осчетоводяване +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Списък на продукти, които не са свързани с нито една счетоводна сметка ChangeBinding=Промяна на свързване Accounted=Осчетоводено в книгата NotYetAccounted=Not yet transferred to accounting ShowTutorial=Показване на урок NotReconciled=Не е съгласувано -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 @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=Експортиране на журнал в чернова Modelcsv=Модел на експортиране @@ -394,6 +397,21 @@ 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 + +## Confirm box +ConfirmMassUnlettering=Bulk 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 SomeMandatoryStepsOfSetupWereNotDone=Някои задължителни стъпки за настройка не са направени, моля изпълнете ги. ErrorNoAccountingCategoryForThisCountry=Няма налична група счетоводни сметки за държава %s (Вижте Начално -> Настройка -> Речници) @@ -406,6 +424,9 @@ 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 ## Import ImportAccountingEntries=Счетоводни записи diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 08f7a113d11..f5b3ddc3cbc 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/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=Максимален размер за качени файлове (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= Още параметри в командния ред @@ -477,7 +477,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=Всички стойности на баркода са премахнати @@ -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=Ако вашият 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=Този модул изисква модул(и) @@ -714,13 +714,14 @@ Permission27=Изтриване на търговски предложения Permission28=Експортиране на търговски предложения Permission31=Преглед на продукти Permission32=Създаване / променяне на продукти +Permission33=Read prices products Permission34=Изтриване на продукти Permission36=Преглед / управление на скрити продукти Permission38=Експортиране на продукти Permission39=Ignore minimum price -Permission41=Преглед на проекти и задачи (споделени проекти и проекти, в които съм определен за контакт). Въвеждане на отделено време, за служителя или неговите подчинени, по възложени задачи (График) -Permission42=Създаване / променяне на проекти (споделени проекти и проекти, в които съм определен за контакт). Създаване на задачи и възлагане на проекти и задачи на потребители -Permission44=Изтриване на проекти (споделени проекти и проекти, в които съм определен за контакт) +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=Експортиране на проекти Permission61=Преглед на интервенции Permission62=Създаване / променяне на интервенции @@ -739,6 +740,7 @@ Permission79=Създаване / променяне на абонаменти Permission81=Преглед на поръчки за продажба Permission82=Създаване / променяне на поръчки за продажба Permission84=Валидиране на поръчки за продажба +Permission85=Generate the documents sales orders Permission86=Изпращане на поръчки за продажба Permission87=Приключване на поръчки за продажба Permission88=Анулиране на поръчки за продажба @@ -766,9 +768,10 @@ Permission122=Създаване / променяне на контрагент Permission125=Изтриване на контрагенти, свързани с потребителя Permission126=Експортиране на контрагенти Permission130=Create/modify third parties payment information -Permission141=Преглед на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) -Permission142=Създаване / променяне на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) -Permission144=Изтриване на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) +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=Преглед на платежни нареждания за директен дебит @@ -873,6 +876,7 @@ Permission525=Достъп до кредитен калкулатор Permission527=Експортиране на кредити Permission531=Преглед на услуги Permission532=Създаване / променяне на услуги +Permission533=Read prices services Permission534=Изтриване на услуги Permission536=Преглед / управление на скрити услуги Permission538=Експортиране на услуги @@ -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=Преглед на спецификации Permission651=Създаване / променяне на спецификации Permission652=Изтриване на спецификации @@ -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=Преглед на съдържание в уебсайт Permission10002=Създаване / променяне на съдържание в уебсайт (html и javascript) Permission10003=Създаване / променяне на съдържание в уебсайт (динамичен php код). Опасно, трябва да бъде използвано само за ограничен кръг разработчици. @@ -1068,6 +1077,7 @@ 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=Настройката не е запазена @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Стойност на конфигурационна конс ConstantIsOn=Option %s is on NbOfDays=Брой дни AtEndOfMonth=В края на месеца -CurrentNext=Текущ/Следващ +CurrentNext=A given day in month Offset=Офсет AlwaysActive=Винаги активна Upgrade=Актуализация @@ -1187,7 +1197,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=Закъснение преди показване на предупредителен сигнал за: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Задаване на закъснение, преди на екрана да се покаже иконата за предупреждение %s за закъснелия елемент. Delays_MAIN_DELAY_ACTIONS_TODO=Планирани събития (събития в календара), които не са завършени Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Проект, който не е приключен навреме @@ -1228,6 +1238,7 @@ BrowserName=Име на браузър BrowserOS=ОС на браузър ListOfSecurityEvents=Списък на събития относно сигурността в Dolibarr SecurityEventsPurged=Събитията относно сигурността са премахнати +TrackableSecurityEvents=Trackable security events LogEventDesc=Активиране на регистрирането за конкретни събития за сигурност. Администриране на записаните събития, чрез меню %s - %s. Внимание, тази функция може да генерира голямо количество данни в базата данни. AreaForAdminOnly=Параметрите за настройка могат да се задават само от Администратори. SystemInfoDesc=Системната информация е различна техническа информация, която получавате в режим само за четене и е видима само за администратори. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Наложихте нов превод за клю TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=Трябва да активирате поне 1 модул +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Не е намерен клас %s в описания PHP път YesInSummer=Да през лятото OnlyFollowingModulesAreOpenedToExternalUsers=Забележка: Само следните модули са достъпни за външни потребители (независимо от правата им), ако са им предоставени съответните права.
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Воден знак върху чернови факт PaymentsNumberingModule=Модел за номериране на плащания 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. ##### Proposals ##### PropalSetup=Настройка на модула за търговски предложения ProposalsNumberingModules=Модели за номериране на търговски предложения @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Инсталирането или създаванет HighlightLinesOnMouseHover=Маркиране на редове в таблица, когато мишката преминава отгоре HighlightLinesColor=Цвят на подчертания ред при преминаване на мишката отгоре (използвайте 'ffffff', ако не искате да се подчертава) HighlightLinesChecked=Цвят на подчертания ред, когато е маркиран (използвайте 'ffffff',ако не искате да се подчертава) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Цвят на текста в заглавието на страницата @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=Натиснете CTRL + F5 на клавиатура NotSupportedByAllThemes=Ще работи с основните теми, но може да не се поддържат външни теми. BackgroundColor=Цвят на фона TopMenuBackgroundColor=Цвят на фона в горното меню -TopMenuDisableImages=Скриване на изображения в горното меню +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Цвят на фона в лявото меню BackgroundTableTitleColor=Цвят на фона в реда със заглавието на таблица BackgroundTableTitleTextColor=Цвят на текста в заглавието на таблиците @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Въведете 0 или 1 UnicodeCurrency=Въведете тук между скобите, десетичен код, който представлява символа на валутата. Например: за $, въведете [36] - за Бразилски Реал R$ [82,36] - за €, въведете [8364] ColorFormat=RGB цвета е в HEX формат, например: 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=Позиция на реда в комбинирани списъци SellTaxRate=Sales tax rate RecuperableOnly=Да за ДДС "Не възприеман, но възстановим", предназначен за някои области във Франция. Запазете стойността "Не" във всички останали случаи. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Поръчки за покупка MailToSendSupplierInvoice=Фактури за доставка MailToSendContract=Договори MailToSendReception=Стокови разписки +MailToExpenseReport=Разходни отчети MailToThirdparty=Контрагенти MailToMember=Членове MailToUser=Потребители @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex филтър за изчистване на COMPANY_DIGITARIA_CLEAN_REGEX=Regex филтър за чиста стойност (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Дублирането не е позволено GDPRContact=Длъжностно лице по защита на данните (DPO, защита на лични данни или GDPR контакт) -GDPRContactDesc=Ако съхранявате данни за европейски компании / граждани, тук може да посочите контакт, който е отговорен за Общия регламент за защита на данните /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=Подсказка HelpOnTooltipDesc=Поставете тук текст или ключ за превод, който да се покаже в подсказка, когато това поле се появи във формуляр YouCanDeleteFileOnServerWith=Може да изтриете този файл от сървъра с команда в терминала:
    %s @@ -2048,27 +2065,46 @@ 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=Максимален брой събрани имейли при колекциониране CollectNow=Колекциониране -ConfirmCloneEmailCollector=Сигурни ли сте, че искате да клонирате имейл колектора %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=Последен резултат +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=Потвърждение за колекциониране на имейли -EmailCollectorConfirmCollect=Искате ли да стартирате колекционирането на този колекционер? +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=Няма нови имейли (отговарящи на заложените филтри) за обработка 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, 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=Код на последния резултат NbOfEmailsInInbox=Брой имейли в директорията източник LoadThirdPartyFromName=Зареждане на името на контрагента от %s (само за зареждане) @@ -2082,14 +2118,14 @@ 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=Конфигурация на модул Ресурси UseSearchToSelectResource=Използване на поле за търсене при избор на ресурс (вместо избор от списък в падащо меню) DisabledResourceLinkUser=Деактивиране на функция за свързване на ресурс от потребители DisabledResourceLinkContact=Деактивиране на функция за свързване на ресурс от контакти -EnableResourceUsedInEventCheck=Активиране на функция за проверка дали даден ресурс се използва в събитие +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Потвърдете задаването на първоначални настройки на модула OnMobileOnly=Само при малък екран (смартфон) 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=Изтриване на имейл колекционер ConfirmDeleteEmailCollector=Сигурни ли те, че искате да изтриете този колекционер на имейли? RecipientEmailsWillBeReplacedWithThisValue=Имейлите на получателите винаги ще бъдат заменени с тази стойност AtLeastOneDefaultBankAccountMandatory=Трябва да бъде дефинирана поне 1 банкова сметка по подразбиране -RESTRICT_ON_IP=Разрешаване на достъп само до някои IP адреси (заместващи знаци не са разрешени, използвайте интервал между стойностите). Липсата на стойност означава, че всеки IP адрес може да има достъп. +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=Въз основа на версията на библиотеката SabreDAV NotAPublicIp=Не е публичен IP адрес @@ -2144,6 +2180,9 @@ 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 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. @@ -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= Настройка на инвентаризация +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 = Настройки +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/bg_BG/companies.lang b/htdocs/langs/bg_BG/companies.lang index 465553ffb56..949d19feac9 100644 --- a/htdocs/langs/bg_BG/companies.lang +++ b/htdocs/langs/bg_BG/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Секция с потенциални клиенти IdThirdParty=Идентификатор на контрагент IdCompany=Идентификатор на фирма IdContact=Идентификатор на контакт +ThirdPartyAddress=Third-party address ThirdPartyContacts=Контакти на контрагента ThirdPartyContact=Контакт / Адрес на контрагента Company=Фирма @@ -51,19 +52,22 @@ CivilityCode=Код на обръщение RegisteredOffice=Седалище и адрес на управление Lastname=Фамилия Firstname=Собствено име +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Длъжност UserTitle=Обръщение NatureOfThirdParty=Произход на контрагента NatureOfContact=Произход на контакта Address=Адрес State=Област +StateId=State ID StateCode=Код на област StateShort=Област Region=Регион Region-State=Регион - Област Country=Държава CountryCode=Код на държава -CountryId=Идентификатор на държава +CountryId=Country ID Phone=Телефон PhoneShort=Тел. Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=Невалиден код на доставчик CustomerCodeModel=Модел за код на клиент SupplierCodeModel=Модел за код на доставчик Gencod=Баркод +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Идент. 1 ProfId2Short=Идент. 2 @@ -159,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=Други ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Списък на контрагенти ShowCompany=Контрагент ShowContact=Показване на Контакт / Адрес ContactsAllShort=Всички (без филтър) -ContactType=Тип контакт +ContactType=Contact role ContactForOrders=Контакт за поръчка ContactForOrdersOrShipments=Контакт за поръчка или доставка ContactForProposals=Контакт за предложение @@ -439,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/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/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 ae71b99ab7b..d058e9ff73f 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Конфигурационният файл %s н ConfFileIsWritable=Конфигурационният файл %s е презаписваем. ConfFileMustBeAFileNotADir=Конфигурационният файл %s трябва да е файл, а не директория. ConfFileReload=Презареждане на параметри от конфигурационен файл. +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 поддържа сесии. @@ -16,13 +17,6 @@ PHPMemoryOK=Максималният размер на паметта за PHP PHPMemoryTooLow=Вашият максимален размер на паметта за PHP сесия е настроен на %s байта. Това е твърде ниско. Променете php.ini като зададете стойност на параметър memory_limit поне %s байта. Recheck=Кликнете тук за по-подробен тест ErrorPHPDoesNotSupportSessions=Вашата PHP инсталация не поддържа сесии. Тази функция е необходима, за да позволи на Dolibarr да работи. Проверете настройките на PHP и разрешенията на директорията за сесиите. -ErrorPHPDoesNotSupportGD=Вашата PHP инсталация не поддържа GD графични функции. Няма да се показват графики. -ErrorPHPDoesNotSupportCurl=Вашата PHP инсталация не поддържа Curl. -ErrorPHPDoesNotSupportCalendar=Вашата PHP инсталация не поддържа разширения за календар. -ErrorPHPDoesNotSupportUTF8=Вашата PHP инсталация не поддържа UTF8 функции. Dolibarr не може да работи правилно. Решете това преди да инсталирате Dolibarr. -ErrorPHPDoesNotSupportIntl=Вашата PHP инсталация не поддържа Intl функции. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Вашата PHP инсталация не поддържа разширени функции за отстраняване на грешки. ErrorPHPDoesNotSupport=Вашата PHP инсталация не поддържа %s функции. ErrorDirDoesNotExists=Директорията %s не съществува. ErrorGoBackAndCorrectParameters=Върнете се назад и проверете / коригирайте параметрите. @@ -30,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/main.lang b/htdocs/langs/bg_BG/main.lang index 1cfcc08a9e9..78822836149 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -244,6 +244,7 @@ Designation=Описание DescriptionOfLine=Описание на реда DateOfLine=Дата на реда DurationOfLine=Продължителност на реда +ParentLine=Parent line ID Model=Шаблон за документ DefaultModel=Шаблон на документ по подразбиране Action=Събитие @@ -344,7 +345,7 @@ KiloBytes=Килобайта MegaBytes=Мегабайта GigaBytes=Гигабайта TeraBytes=Терабайта -UserAuthor=Ceated by +UserAuthor=Създаден от UserModif=Updated by b=б. Kb=Кб @@ -517,6 +518,7 @@ or=или Other=Друг Others=Други OtherInformations=Друга информация +Workflow=Работен процес Quantity=Количество Qty=Кол. ChangedBy=Променено от @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=Функцията е изключена MoveBox=Преместване на джаджа Offered=100% NotEnoughPermissions=Вие нямате разрешение за това действие +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Име на сесия Method=Метод Receive=Получаване @@ -798,6 +802,7 @@ URLPhoto=URL адрес на снимка / лого SetLinkToAnotherThirdParty=Връзка към друг контрагент LinkTo=Връзка към LinkToProposal=Връзка към предложение +LinkToExpedition= Link to expedition LinkToOrder=Връзка към поръчка LinkToInvoice=Връзка към фактура LinkToTemplateInvoice=Връзка към шаблонна фактура @@ -1164,3 +1169,14 @@ 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 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/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index 5eae7f3bf97..64e685b7522 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Друг член (име: %s, ErrorUserPermissionAllowsToLinksToItselfOnly=От съображения за сигурност трябва да имате права за променяне на всички потребители, за да може да свържете член с потребител, който не сте вие. SetLinkToUser=Свързване към Dolibarr потребител SetLinkToThirdParty=Свързване към Dolibarr контрагент -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Списък на членове MembersListToValid=Списък на чернови членове (за валидиране) MembersListValid=Списък на валидирани членове @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Идентификатор на член +MemberId=Member Id +MemberRef=Member Ref NewMember=Нов член MemberType=Тип член MemberTypeId=Идентификатор за тип на член @@ -159,11 +160,11 @@ HTPasswordExport=Генериране на htpassword файл NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Допълнително действие при регистриране -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=Създаване на директен запис по банкова сметка MoreActionBankViaInvoice=Създаване на фактура и плащане по банкова сметка MoreActionInvoiceOnly=Създаване на фактура без плащане -LinkToGeneratedPages=Генериране на визитни картички +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Този екран позволява да генерирате PDF файлове с визитни картички за всички ваши членове или за конкретен член. DocForAllMembersCards=Генериране на визитни картички за всички членове DocForOneMemberCards=Генериране на визитна картичка за конкретен член @@ -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/bg_BG/modulebuilder.lang b/htdocs/langs/bg_BG/modulebuilder.lang index a07656e9b96..e4b8a5eb0eb 100644 --- a/htdocs/langs/bg_BG/modulebuilder.lang +++ b/htdocs/langs/bg_BG/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=Въведете име на модул / приложение за създаване, без интервали. Използвайте главни букви за отделяне на думи (Например: MyModule, EcommerceForShop, SyncWithMySystem ...). -EnterNameOfObjectDesc=Въведете име на обект, който да създадете, без интервали. Използвайте главни букви за отделяне на думи (Например: MyObject, Student, Teacher ...). CRUD class файл, API файл, страници за листване / добавяне / променяне / изтриване на обект и SQL файлове ще бъдат генерирани. +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=Път, където модулите се генерират / променят (главна директория за външни модули, дефинирани в %s): %s ModuleBuilderDesc3=Намерени генерирани / променяеми модули: %s ModuleBuilderDesc4=Един модул се открива като 'променяем', когато файлът %s съществува в главната директория на модула. NewModule=Нов модул NewObjectInModulebuilder=Нов обект +NewDictionary=New dictionary ModuleKey=Модулен ключ ObjectKey=Обектен ключ +DicKey=Dictionary key ModuleInitialized=Модулът е инициализиран FilesForObjectInitialized=Файловете за нов обект '%s' са инициализирани FilesForObjectUpdated=Файловете за обект '%s' са актуализирани (.sql файлове и .class.php файл) @@ -52,7 +55,7 @@ LanguageFile=Езиков файл ObjectProperties=Свойства на обект ConfirmDeleteProperty=Сигурни ли сте, че искате да изтриете свойство %s? Това ще промени кода в PHP класа, но също така ще премахне колоната от дефиниращата таблица на обекта. NotNull=Не нулева -NotNullDesc=1 = Не позволява в базата данни нулеви стойности. -1 = Позволява нулеви стойности и принуждава стойността да бъде нула, ако липсва такава ('' или 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=Използва се за 'търсене на всичко' DatabaseIndex=Индекс на база данни FileAlreadyExists=Файлът %s вече съществува @@ -94,7 +97,7 @@ LanguageDefDesc=Въведете в тези файлове всички клю MenusDefDesc=Дефинирайте тук менюта, предоставени от вашия модул. DictionariesDefDesc=Дефинирайте тук речници, предоставени от вашия модул. PermissionsDefDesc=Дефинирайте тук нови права, предоставени от вашия модул. -MenusDefDescTooltip=Менютата, предоставени от вашия модул / приложение са дефинирани в масива $this->menus във файл дескриптора на модула. Може да промените ръчно този файл или да използвате вградения редактор.

    Забележка: След като бъдат дефинирани (и модулът е повторно активиран), менютата се виждат и в меню редактора, достъпен за администратори в %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=Речниците, предоставени от вашия модул / приложение, са дефинирани в масива $this->dictionaries във файл дескриптора на модула. Може да промените ръчно този файл или да използвате вградения редактор.

    Забележка: След като бъдат дефинирани (и модулът е повторно активиран), речниците се виждат и в секцията за настройка, достъпна за администратори в %s. PermissionsDefDescTooltip=Правата, предоставени от вашия модул / приложение са дефинирани в масива $this->rights във файл дескриптора на модула. Може да промените ръчно този файл или да използвате вградения редактор.

    Забележка: След като бъдат дефинирани (и модулът е повторно активиран), правата се виждат и в настройките за права по подразбиране %s. HooksDefDesc=Определете в свойството module_parts['hooks'], в дескриптора на модула, контекста на куките, които искате да управлявате (списък на контексти може да бъде намерен, чрез търсене на 'initHooks' в основния код).
    Редактирайте файла с куката, за да добавите код на своите свързващи функции (свързващи функции могат да бъдат намерени, чрез търсене в 'ExecuteHooks' в основния код). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destroy table if empty) TableDoesNotExists=Таблицата %s не съществува TableDropped=Таблица %s е изтрита InitStructureFromExistingTable=Създаване на низова структура в масив на съществуваща таблица -UseAboutPage=Деактивиране на страница 'Относно' +UseAboutPage=Do not generate the About page UseDocFolder=Деактивиране на папка с документация UseSpecificReadme=Използване на конкретен ReadMe файл ContentOfREADMECustomized=Забележка: Съдържанието на файла README.md е заменено със специфичната стойност, дефинирана в настройката на дизайнера за модули и приложения. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Използване на конкретен URL адре UseSpecificFamily = Използване на конкретна фамилия UseSpecificAuthor = Използване на конкретен автор UseSpecificVersion = Използване на конкретна първоначална версия -IncludeRefGeneration=Референцията на обекта трябва да се генерира автоматично -IncludeRefGenerationHelp=Маркирайте това, ако искате да включите код за управление на автоматичното генериране на референция. -IncludeDocGeneration=Искам да генерирам някои документи от обекта +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=Ако маркирате това, ще се генерира код, който да добави поле 'Генериране на документ' върху записа. ShowOnCombobox=Показване на стойност в комбиниран списък KeyForTooltip=Ключ за подсказка @@ -138,10 +141,15 @@ CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Непроменяем ForeignKey=Външен ключ -TypeOfFieldsHelp=Тип на полета:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] (например '1' означава, че добавяме бутон + след комбинирания списък, за да създадем записа, 'filter' може да бъде 'status=1 AND fk_user=__USER_ID AND entity IN (__SHARED_ENTITIES__)') +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 към 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=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=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. 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 a66f6c66ddb..2b82bd98036 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...или създайте свой собствен п DemoFundation=Управление на членове в организация DemoFundation2=Управление на членове и банкова сметка в организация DemoCompanyServiceOnly=Фирма или фрийлансър продаващи само услуги -DemoCompanyShopWithCashDesk=Управление на магазин с каса +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Магазин продаващ продукти с ПОС DemoCompanyManufacturing=Фирма произвеждаща продукти DemoCompanyAll=Фирма с множество дейности (всички основни модули) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Приключване +Autofill = Autofill diff --git a/htdocs/langs/bg_BG/projects.lang b/htdocs/langs/bg_BG/projects.lang index f1c73f32c82..c8da54cf865 100644 --- a/htdocs/langs/bg_BG/projects.lang +++ b/htdocs/langs/bg_BG/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Име на проект ProjectsArea=Секция с проекти ProjectStatus=Статус на проект SharedProject=Всички -PrivateProject=Участници в проекта +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=Всеки проект, който мога да прочета (мой и публичен) AllProjects=Всички проекти @@ -190,6 +190,7 @@ PlannedWorkload=Планирана натовареност PlannedWorkloadShort=Натовареност ProjectReferers=Свързани елементи ProjectMustBeValidatedFirst=Проектът трябва първо да бъде валидиран +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Определете потребителски ресурс като участници в проекта, за да разпределите времето. InputPerDay=За ден InputPerWeek=За седмица @@ -287,3 +288,9 @@ 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=Крайната дата не може да бъде преди началната дата +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 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 d3ba07f9fdf..b3e2d54fa24 100644 --- a/htdocs/langs/bg_BG/ticket.lang +++ b/htdocs/langs/bg_BG/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=Публичен интерфейс, който не изис TicketSetupDictionaries=Видът на тикета, приоритетът и категорията се конфигурират от речници TicketParamModule=Настройка на променливите в модула TicketParamMail=Настройка за имейл известяване -TicketEmailNotificationFrom=Известяващ имейл от -TicketEmailNotificationFromHelp=Използван при отговор и изпращане на тикет съобщения -TicketEmailNotificationTo=Известяващ имейл до -TicketEmailNotificationToHelp=Използван за получаване на известия от тикет съобщения +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 TicketNewEmailBodyLabel=Текстово съобщение, изпратено след създаване на тикет TicketNewEmailBodyHelp=Текстът, посочен тук, ще бъде включен в имейла, потвърждаващ създаването на нов тикет от публичния интерфейс. Информацията с детайлите на тикета се добавя автоматично. TicketParamPublicInterface=Настройка на публичен интерфейс @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=Сортиране по възходяща дата OrderByDateDesc=Сортиране по низходяща дата ShowAsConversation=Показване като списък със съобщения MessageListViewType=Показване като списък с таблици +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Полето за получате TicketGoIntoContactTab=Моля отидете в раздел "Контакти" откъдето може да изберете TicketMessageMailIntro=Въведение TicketMessageMailIntroHelp=Този текст се добавя само в началото на имейла и няма да бъде запазен. -TicketMessageMailIntroLabelAdmin=Въведение към съобщението при изпращане на имейл -TicketMessageMailIntroText=Здравейте,
    Беше добавено ново съобщение към тикет, в който сте посочен като контакт. Ето и съобщението:
    -TicketMessageMailIntroHelpAdmin=Този текст ще бъде вмъкнат преди текста на съобщението към тикета. +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=

    Поздрави,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Подпис в отговора към имейла TicketMessageMailSignatureHelpAdmin=Този текст ще бъде вмъкнат след съобщението за отговор. TicketMessageHelp=Само този текст ще бъде запазен в списъка със съобщения към тикета. @@ -238,9 +252,16 @@ TicketChangeStatus=Промяна на статус TicketConfirmChangeStatus=Потвърдете промяната на статуса на: %s? TicketLogStatusChanged=Статусът е променен: от %s на %s TicketNotNotifyTiersAtCreate=Да не се уведомява фирмата при създаване на тикета +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=Това е автоматичен имейл, който п TicketNewEmailBodyCustomer=Това е автоматичен имейл, който потвърждава, че е създаден нов тикет във вашият фирмен профил. TicketNewEmailBodyInfosTicket=Информация за наблюдение на тикета TicketNewEmailBodyInfosTrackId=Проследяващ код на тикета: %s -TicketNewEmailBodyInfosTrackUrl=Може да следите напредъка по тикета като кликнете на връзката по-горе. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Може да следите напредъка по тикета в специалния интерфейс като кликнете върху следната връзка +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Моля, не отговаряйте директно на този имейл! Използвайте връзката, за да отговорите, чрез интерфейса. TicketPublicInfoCreateTicket=Тази форма позволява да регистрирате тикет в системата за управление и обслужване на запитвания. TicketPublicPleaseBeAccuratelyDescribe=Моля, опишете подробно проблема. Посочете възможно най-много информация, за да ни позволите да идентифицираме правилно това запитване. @@ -291,6 +313,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: TicketNotificationEmailSubject=Тикет с проследяващ код %s е актуализиран TicketNotificationEmailBody=Здравейте,\nТова е автоматично съобщение, което има за цел да ви уведоми, че тикет с проследяващ код %s е актуализиран. TicketNotificationRecipient=Получател на известието diff --git a/htdocs/langs/bg_BG/users.lang b/htdocs/langs/bg_BG/users.lang index 7a3dbbcfa19..908b2062568 100644 --- a/htdocs/langs/bg_BG/users.lang +++ b/htdocs/langs/bg_BG/users.lang @@ -114,7 +114,7 @@ UserLogoff=Излизане от потребителя UserLogged=Потребителят е регистриран DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Дата на назначаване +DateEmploymentStart=Дата на назначаване DateEmploymentEnd=Дата на освобождаване RangeOfLoginValidity=Access validity date range CantDisableYourself=Не можете да забраните собствения си потребителски запис @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=По подразбиране валидиращ UserPersonalEmail=Личен имейл UserPersonalMobile=Личен моб. телефон 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/bn_BD/companies.lang b/htdocs/langs/bn_BD/companies.lang index cc2c1bed349..c076f6e9ded 100644 --- a/htdocs/langs/bn_BD/companies.lang +++ b/htdocs/langs/bn_BD/companies.lang @@ -19,6 +19,7 @@ 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 @@ -51,6 +52,8 @@ 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 @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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 989f6aa9793..6aee82bacec 100644 --- a/htdocs/langs/bn_BD/install.lang +++ b/htdocs/langs/bn_BD/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Your PHP max session memory is set to %s. This should be enou 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=Directory %s does not exist. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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/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/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/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 d55125112f1..d97b5328f14 100644 --- a/htdocs/langs/bs_BA/companies.lang +++ b/htdocs/langs/bs_BA/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Područje za moguće kupce IdThirdParty=ID subjekta IdCompany=ID kompanije IdContact=ID kontakta +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Kompanija @@ -51,19 +52,22 @@ CivilityCode=Pravila ponašanja RegisteredOffice=Registrovan ured Lastname=Prezime Firstname=Ime +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Pozicija UserTitle=Titula 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Nevažeća šifra prodavača CustomerCodeModel=Model šifre kupca SupplierCodeModel=Model šifre prodavača Gencod=Barcode +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=ID broj 1 ProfId2Short=ID broj 2 @@ -159,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=Drugi ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Svi (bez filtera) -ContactType=Tip kontakta +ContactType=Contact role ContactForOrders=Kontakt narudžbe ContactForOrdersOrShipments=Kontakt za narudžbu ili slanje ContactForProposals=Kontakt prijedloga 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/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 25dcf3ba9f1..ad77b76a54f 100644 --- a/htdocs/langs/bs_BA/install.lang +++ b/htdocs/langs/bs_BA/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Vaša maksimalna memorija za PHP sesiju je postavljena na %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=Direktorij %s ne postoji. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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/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/projects.lang b/htdocs/langs/bs_BA/projects.lang index ba1f4b44551..202506d0118 100644 --- a/htdocs/langs/bs_BA/projects.lang +++ b/htdocs/langs/bs_BA/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Oznaka projekta ProjectsArea=Područje projekta ProjectStatus=Status projekta SharedProject=Zajednički projekti -PrivateProject=Kontakti projekta +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=Svi projekti koje mogu gledati (moji + javni) AllProjects=Svi projekti @@ -190,6 +190,7 @@ PlannedWorkload=Planned workload PlannedWorkloadShort=Workload ProjectReferers=Povezane stavke 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 @@ -287,3 +288,9 @@ 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=Datum završetka ne može biti prije datuma početka +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 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/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index c2ef03783fb..e640d6fe233 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -48,10 +48,11 @@ 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ó @@ -61,25 +62,25 @@ MainAccountForSubscriptionPaymentNotDefined=Compte comptable per a IVA no defini 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 ... -AccountancyAreaDescActionOnceBis=Cal fer els passos següents per a estalviar-vos temps en el futur, suggerint-vos el compte comptable per defecte correcte quan feu els diaris (escriptura dels registres en els Diaris i Llibre major) -AccountancyAreaDescActionFreq=Les següents accions s'executen normalment cada mes, setmana o dia per empreses molt grans ... +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 accions següents s'executen normalment cada mes, setmana o dia per empreses molt grans... -AccountancyAreaDescJournalSetup=PAS %s: Crea o consulta el contingut dels teus diaris des del menú %s +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 AccountancyAreaDescChart=PAS %s: Seleccioneu o completeu el vostre pla comptable al menú %s AccountancyAreaDescVat=PAS %s: Defineix comptes comptables per cada tipus d'IVA. Per això, utilitzeu l'entrada del menú %s. AccountancyAreaDescDefault=PAS %s: Definiu comptes comptables per defecte. Per a això, utilitzeu l'entrada de menú %s. -AccountancyAreaDescExpenseReport=PAS %s: Defineix els comptes comptables per defecte per a cada tipus d'informe de despeses. Per això, utilitzeu l'entrada del menú %s. +AccountancyAreaDescExpenseReport=PAS %s: Definiu els comptes de comptabilitat predeterminats per a cada tipus d'informe de despeses. Per a això, utilitzeu l'entrada del menú %s. AccountancyAreaDescSal=PAS %s: Defineix comptes comptables per defecte per al pagament de salaris. Per això, utilitzeu l'entrada del menú %s. -AccountancyAreaDescContrib=PAS %s: defineix comptes de comptabilitat per defecte per a despeses especials (impostos diversos). Per això, utilitzeu l'entrada del menú %s. +AccountancyAreaDescContrib=PAS %s: Definiu els comptes de comptabilitat predeterminats per a Impostos (despeses especials). Per a això, utilitzeu l'entrada del menú %s. AccountancyAreaDescDonation=PAS %s: Defineix comptes comptables per defecte per a les donacions. Per això, utilitzeu l'entrada del menú %s. AccountancyAreaDescSubscription=PAS %s: Defineix comptes comptables per defecte per a les donacions. Per això, utilitzeu l'entrada del menú %s. AccountancyAreaDescMisc=PAS %s: Defineix el compte comptable obligatori per defecte i els comptes comptables per defecte pels assentaments diversos. Per això, utilitzeu l'entrada del menú %s. AccountancyAreaDescLoan=PAS %s: Defineix comptes comptables per defecte per als préstecs. Per això, utilitzeu l'entrada del menú %s. AccountancyAreaDescBank=PAS %s: definiu comptes comptables i codis diaris per a cada compte bancari i financer. Per això, utilitzeu l'entrada del menú %s. -AccountancyAreaDescProd=PAS %s: Defineix comptes comptables als vostres productes/serveis. Per això, utilitzeu l'entrada del menú %s. +AccountancyAreaDescProd=PAS %s: defineix els comptes de comptabilitat als teus productes/serveis. Per a això, utilitzeu l'entrada del menú %s. AccountancyAreaDescBind=PAS %s: Comproveu que els enllaços entre les línies %s existents i els comptes comptables és correcta, de manera que l'aplicació podrà registrar els assentaments al Llibre Major en un sol clic. Completa les unions que falten. Per això, utilitzeu l'entrada del menú %s. AccountancyAreaDescWriteRecords=PAS %s: Escriu els assentaments al Llibre Major. Per això, aneu al menú %s, i feu clic al botó %s. @@ -112,7 +113,7 @@ MenuAccountancyClosure=Tancament MenuAccountancyValidationMovements=Valida moviments ProductsBinding=Comptes de producte TransferInAccounting=Transferència en comptabilitat -RegistrationInAccounting=Inscripció en comptabilitat +RegistrationInAccounting=Registre en comptabilitat Binding=Comptabilitzar en comptes CustomersVentilation=Comptabilització de factura de client SuppliersVentilation=Comptabilització de la factura del proveïdor @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Comptabilització d'informes de despeses CreateMvts=Crea una transacció nova UpdateMvts=Modificació d'una transacció ValidTransaction=Valida l'assentament -WriteBookKeeping=Registra transaccions en comptabilitat +WriteBookKeeping=Registrar transaccions en comptabilitat Bookkeeping=Llibre major BookkeepingSubAccount=Subcompte AccountBalance=Compte saldo @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Compte comptable per a registrar les donacions ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Compte comptable per a registrar les donacions ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Compte comptable per defecte per a registrar el dipòsit del client +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=Compte comptable per defecte per a registrar el dipòsit del proveïdor +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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=Per grups predefinits ByPersonalizedAccountGroups=Per grups personalitzats ByYear=Per any NotMatch=No definit -DeleteMvt=Elimina algunes línies d'operació de la comptabilitat +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 d'operació de la comptabilitat de l'any/mes o d'un diari específic (cal un criteri com a mínim). Haureu d'utilitzar la funció «%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 d’operació relacionades amb la mateixa transacció) +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 DescFinanceJournal=Diari financer que inclou tots els tipus de pagaments per compte bancari @@ -278,30 +282,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=Consulteu aquí el nombre de moviments mensuals que no estan validats i els exercicis fiscals encara oberts -OverviewOfMovementsNotValidated=Pas 1 / Visió general dels moviments no validats. (Cal tancar un exercici) -AllMovementsWereRecordedAsValidated=Tots els moviments es van registrar com a validats -NotAllMovementsCouldBeRecordedAsValidated=No es poden registrar tots els moviments com a validats -ValidateMovements=Valida moviments +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=Valida i bloqueja el registre... 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=Assentament comptabilitzat incorrectament. Deure = %s | Haver = %s +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 pel diari +NoNewRecordSaved=No hi ha més registres per a transferir ListOfProductsWithoutAccountingAccount=Llista de productes no comptabilitzats en cap compte comptable 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=Advertiment: totes les operacions sense subcompte comptable definit es filtren i s'exclouen d'aquesta vista +WarningRecordWithoutSubledgerAreExcluded=Avís, totes les línies sense un compte de registre secundari definit es filtren i s'exclouen d'aquesta vista +AccountRemovedFromCurrentChartOfAccount=Compte comptable que no existeix al pla comptable actual ## Admin BindingOptions=Opcions d'enquadernació @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactiva la vinculació i transferènci 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) ## Export -NotifiedExportDate=Marca les línies exportades com a exportades (no serà possible la modificació de les línies) -NotifiedValidationDate=Validar les entrades exportades (no serà possible modificar o eliminar les línies) +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 (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 Modelcsv=Model d'exportació @@ -394,6 +400,21 @@ Range=Rang de compte comptable Calculated=Calculat Formula=Fórmula +## Reconcile +Unlettering=No reconciliar +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=Confirmació de desfer la conciliació massiva +ConfirmMassUnletteringQuestion=Esteu segur que voleu anul·lar la conciliació dels registres seleccionats %s? +ConfirmMassDeleteBookkeepingWriting=Confirmació d'esborrament massiu +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 ErrorNoAccountingCategoryForThisCountry=No hi ha cap grup de comptes comptables disponible per al país %s (Vegeu Inici - Configuració - Diccionaris) @@ -406,6 +427,10 @@ 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=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 diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index 02a196db0e8..133b33e1d24 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -109,7 +109,7 @@ 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. 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ó +UseCaptchaCode=Utilitzeu el codi gràfic (CAPTCHA) a la pàgina d'inici de sessió i en algunes pàgines públiques AntiVirusCommand=Ruta completa cap al comandament 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 @@ -159,7 +159,7 @@ 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. PurgeDeleteTemporaryFilesShort=Suprimeix els fitxers de registre i temporals (sense risc de perdre dades) @@ -235,7 +235,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 @@ -249,9 +249,9 @@ 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"; +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 @@ -309,9 +309,9 @@ 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 +358,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 +390,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 +403,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 @@ -417,7 +417,7 @@ 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 +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 @@ -440,7 +440,7 @@ Boolean=Boleà (una casella de selecció) ExtrafieldPhone = Telèfon ExtrafieldPrice = Preu ExtrafieldMail = Correu electrònic -ExtrafieldUrl = Url +ExtrafieldUrl = URL ExtrafieldSelect = Llista de selecció ExtrafieldSelectList = Llista de selecció de table ExtrafieldSeparator=Separador (no és un camp) @@ -453,12 +453,12 @@ 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 @@ -471,13 +471,13 @@ 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 @@ -498,20 +498,20 @@ ModuleCompanyCodeSupplierDigitaria=%s seguit pel nom abreujat del proveïdor pel 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). 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. 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 @@ -580,8 +580,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 +611,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 +630,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 @@ -660,7 +660,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 @@ -714,13 +714,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=Consulta projectes i tasques (projecte compartit i projectes dels qui en soc contacte). També pot introduir temps consumits, per a mi o dels meus subordinats, en tasques assignades (Fulls de temps). -Permission42=Crea/modifica projectes (projecte compartit i projectes dels qui en soc contacte). També pot crear tasques i assignar usuaris al projecte i tasques -Permission44=Elimina projectes (projecte compartit i projectes de qui en soc contacte) +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 +740,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,9 +768,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=Consulta tots els projectes i tasques (també els projectes privats dels qui no en soc contacte) -Permission142=Crea/modifica tots els projectes i tasques (també projectes privats dels qui no en soc contacte) -Permission144=Elimina tots els projectes i tasques (també els projectes privats dels qui no en soc contacte) +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 @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Registra dèbits/rebutjos de transferència de crèdit Permission601=Consulta adhesius Permission602=Crea/modifica adhesius Permission609=Elimina adhesius +Permission611=Llegir els atributs de les variants +Permission612=Crear/Actualitzar atributs de variants +Permission613=Elimina els atributs de les variants Permission650=Llegeix llistes de materials Permission651=Crea / actualitza llistes de materials Permission652=Elimina llistes de materials @@ -892,7 +899,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 @@ -969,6 +976,8 @@ Permission4021=Crea/modifica la teva avaluació Permission4022=Valida l'avaluació Permission4023=Elimina l'avaluació Permission4030=Veure menú comparatiu +Permission4031=Llegeix informació personal +Permission4032=Escriu informació personal 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Informe de despeses - Categories de transport DictionaryExpenseTaxRange=Informe de despeses - Rang per categoria de transport DictionaryTransportMode=Informe intracomm: mode de transport DictionaryBatchStatus=Estat del control de qualitat del lot / sèrie del producte +DictionaryAssetDisposalType=Tipus d'alienació d'actius TypeOfUnit=Tipus d’unitat SetupSaved=Configuració desada SetupNotSaved=Configuració no desada @@ -1095,12 +1105,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,7 +1132,7 @@ 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ó @@ -1185,9 +1195,9 @@ 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=Retard abans de mostrar una alerta d'advertència per a: +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. Delays_MAIN_DELAY_ACTIONS_TODO=Esdeveniments planificats (esdeveniments de l'agenda) no completats Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projecte no tancat a temps @@ -1228,6 +1238,7 @@ 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. @@ -1244,9 +1255,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. @@ -1339,6 +1350,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=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 +1388,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 @@ -1384,7 +1396,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: @@ -1404,7 +1416,7 @@ TechnicalServicesProvided=Prestació de serveis tècnics 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 @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Marca d'aigua en les factures esborrany (en cas d'estar PaymentsNumberingModule=Model de numeració de pagaments 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. ##### Proposals ##### PropalSetup=Configuració del mòdul Pressupostos ProposalsNumberingModules=Models de numeració de pressupostos @@ -1565,10 +1579,10 @@ LDAPFieldFirstName=Nom LDAPFieldFirstNameExample=Exemple: givenName LDAPFieldMail=E-Mail LDAPFieldMailExample=Exemple: correu electrònic -LDAPFieldPhone=Número de telèfon de treball -LDAPFieldPhoneExample=Exemple: número de telèfon -LDAPFieldHomePhone=Número de telèfon personal -LDAPFieldHomePhoneExample=Exemple: telèfon d'inici +LDAPFieldPhone=Telèfon professional +LDAPFieldPhoneExample=Exemple: numerodetelefon +LDAPFieldHomePhone=Telèfon personal +LDAPFieldHomePhoneExample=Exemple: telefondecasa LDAPFieldMobile=Telèfon mòbil LDAPFieldMobileExample=Exemple: mòbil LDAPFieldFax=Fax @@ -1708,7 +1722,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 @@ -1782,14 +1796,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) @@ -1817,7 +1831,7 @@ CashDeskBankAccountForCheque=Compte a utilitzar per defecte per a rebre pagament CashDeskBankAccountForCB=Compte predeterminat que cal utilitzar per a rebre cobraments amb targeta de crèdit CashDeskBankAccountForSumup=Compte bancari per defecte que es farà servir per a rebre pagaments de SumUp CashDeskDoNotDecreaseStock=Desactiva la reducció d'estoc quan es fa una venda des del punt de venda (si és "no", la reducció d'estoc es realitza per a cada venda realitzada des del TPV, independentment de l'opció establerta al mòdul Estoc). -CashDeskIdWareHouse=Força i restringeix el magatzem a utilitzar per disminuir l'estoc +CashDeskIdWareHouse=Força i restringeix el magatzem a utilitzar per a disminuir l'estoc StockDecreaseForPointOfSaleDisabled=La disminució d'estocs des del punt de venda està desactivat StockDecreaseForPointOfSaleDisabledbyBatch=La disminució d'accions en POS no és compatible amb el mòdul de gestió de Serial / Lot (actualment actiu) perquè la disminució de l'estoc està desactivada. CashDeskYouDidNotDisableStockDecease=No vau desactivar la disminució de l'estoc en fer una venda des del TPV. Per tant, es requereix un magatzem. @@ -1906,26 +1920,27 @@ ListOfNotificationsPerUser=Llista de notificacions automàtiques per usuari * ListOfNotificationsPerUserOrContact=Llista de possibles notificacions automàtiques (en un esdeveniment comercial) disponibles per usuari* o per contacte** ListOfFixedNotifications=Llista de notificacions fixes automàtiques GoOntoUserCardToAddMore=Aneu a la pestanya "Notificacions" d'un usuari per a afegir o eliminar notificacions per als usuaris -GoOntoContactCardToAddMore=Vagi a la pestanya "Notificacions" d'un contacte de tercers per afegir o eliminar notificacions per contactes/direccions +GoOntoContactCardToAddMore=Aneu a la pestanya "Notificacions" d'un tercer per a afegir o eliminar notificacions de contactes/adreces Threshold=Valor mínim/llindar BackupDumpWizard=Assistent per a crear el fitxer d'exportació de la base de dades 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. -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 permetre aquesta funció. +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=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 @@ -1938,12 +1953,12 @@ 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=Nom de la icona en format dolibarr ("image.png" si es troba al directori temàtic actual, "image.png@nom_du_module" si es troba al directori / img / d'un mòdul) +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. UrlTrackingDesc=Si el proveïdor o el servei de transport ofereix una pàgina o un lloc web per a comprovar l'estat dels vostres enviaments, podeu introduir-lo aquí. Podeu utilitzar la clau {TRACKID} als paràmetres d'URL perquè el sistema la substitueixi pel número de seguiment que l'usuari va introduir a la fitxa d'enviament. -OpportunityPercent=Quan creeu un avantatge, definiran una quantitat estimada de projecte / avantatge. Segons l'estat del lideratge, aquesta quantitat es pot multiplicar per aquesta taxa per avaluar una quantitat total que pot generar tots els vostres clients potencials. El valor és un percentatge (entre 0 i 100). +OpportunityPercent=Quan creeu un client potencial, definireu una quantitat estimada de projecte/potencial. Segons l'estat del client potencial, aquesta quantitat es pot multiplicar per aquesta taxa per a avaluar la quantitat total que tots els vostres clients potencials poden generar. El valor és un percentatge (entre 0 i 100). TemplateForElement=Aquesta plantilla de correu està relacionada amb quin tipus d'objecte? Una plantilla de correu electrònic només està disponible quan s'utilitza el botó "Envia un correu electrònic" de l'objecte relacionat. TypeOfTemplate=Tipus de plantilla TemplateIsVisibleByOwnerOnly=La plantilla només és visible pel propietari @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Comandes de compra MailToSendSupplierInvoice=Factures del proveïdor MailToSendContract=Contractes MailToSendReception=Recepcions +MailToExpenseReport=Informes de despeses MailToThirdparty=Tercers MailToMember=Socis MailToUser=Usuaris @@ -1975,7 +1991,7 @@ 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. +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. 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. 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 @@ -2009,8 +2025,8 @@ 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. 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 arribar al final del mes (+ opcional "%s" en dies)
    Utilitzeu "Corrent / 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) +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 (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. @@ -2019,6 +2035,7 @@ 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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex per a netejar el valor (COMPANY_AQUARI COMPANY_DIGITARIA_CLEAN_REGEX=Filtre Regex al valor net (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=No es permet la duplicació GDPRContact=Oficial de protecció de dades (PDO, privadesa de dades o contacte amb GDPR) -GDPRContactDesc=Si emmagatzemen dades sobre empreses o ciutadans europeus, podeu indicar aquí el contacte que és responsable del Reglament General de Protecció de Dades +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 @@ -2048,27 +2065,46 @@ 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 CollectNow=Recolliu ara -ConfirmCloneEmailCollector=Esteu segur que voleu clonar el recollidor de correu electrònic %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=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=Voleu executar ara la recol·lecció d’aquest col·lector? +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=Crear un bitllet (enllaçat a un tercer si el tercer s'ha carregat per una operació anterior, sense cap tercer d'altra manera) +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) @@ -2082,21 +2118,21 @@ 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 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 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) 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=Activa la funció per a comprovar si s’utilitza un recurs en un esdeveniment +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=Habiliteu aquesta opció si sou daltònics, en algun cas la interfície canviarà la configuració del color per augmentar el contrast. +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 Deuteranopes=Deuteranops Tritanopes=Tritanops @@ -2114,7 +2150,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 @@ -2134,7 +2170,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=Permet l'accés només a alguna IP de l'amfitrió (no es permet comodí, utilitzeu espai entre valors). Buit significa que hi poden accedir tots els amfitrions. +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 @@ -2144,6 +2180,9 @@ 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 +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 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. @@ -2159,7 +2198,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 @@ -2172,26 +2211,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=Per a propòsits d'intèrpret d'ordres (com ara una còpia de seguretat programada o executar un programa antivirus), heu de mantenir les funcions PHP 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 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 @@ -2205,13 +2245,13 @@ 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) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si voleu utilitzar un segon impost, heu d’habilitar també el primer impost de venda -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si voleu utilitzar un tercer impost, també heu d’habilitar l’impost de primera venda +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ó SkinAndColors=Pell i colors -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si voleu utilitzar un segon impost, heu d’habilitar també el primer impost de venda -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si voleu utilitzar un tercer impost, també heu d’habilitar l’impost de primera venda +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 PDF_USE_1A=Genereu PDF amb format PDF/A-1b MissingTranslationForConfKey = Falta traducció per a %s NativeModules=Mòduls nadius @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Desactiva la compressió de les respostes de l'API EachTerminalHasItsOwnCounter=Cada terminal utilitza el seu propi comptador. FillAndSaveAccountIdAndSecret=Primer ompliu i deseu l'identificador del compte i el secret PreviousHash=Hash anterior +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. + +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 +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 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/banks.lang b/htdocs/langs/ca_ES/banks.lang index 338012f07cd..a8c84c96961 100644 --- a/htdocs/langs/ca_ES/banks.lang +++ b/htdocs/langs/ca_ES/banks.lang @@ -95,11 +95,11 @@ LineRecord=Registre AddBankRecord=Afegeix entrada AddBankRecordLong=Afegir registre manualment Conciliated=Conciliat -ConciliatedBy=Conciliat per +ReConciliedBy=Conciliat per DateConciliating=Data conciliació BankLineConciliated=Entrada conciliada amb el rebut bancari -Reconciled=Conciliat -NotReconciled=No conciliat +BankLineReconciled=Conciliat +BankLineNotReconciled=No conciliat CustomerInvoicePayment=Cobrament a client SupplierInvoicePayment=Pagament al proveïdor SubscriptionPayment=Pagament de quota @@ -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 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 objectiu. Es farà servir 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, etiqueta 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 @@ -172,8 +172,8 @@ 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=Control de caixa TPV -NewCashFence=Obertura o tancament de caixa nou +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 @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty=Si no feu cap conciliació bancària en alguns 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 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 +BanklineExtraFields=Camps extra de la línia bancària diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index d61d7fc719f..627f4f31374 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -129,9 +129,9 @@ BillStatusConverted=Pagada (llesta per a utilitzar-se en la factura final) BillStatusCanceled=Abandonada BillStatusValidated=Validada (a pagar) BillStatusStarted=Pagada parcialment -BillStatusNotPaid=Pendent de pagament +BillStatusNotPaid=Pendent BillStatusNotRefunded=No reemborsat -BillStatusClosedUnpaid=Tancada (pendent de pagament) +BillStatusClosedUnpaid=Tancada (Pendent) BillStatusClosedPaidPartially=Pagada (parcialment) BillShortStatusDraft=Esborrany BillShortStatusPaid=Pagada @@ -141,7 +141,7 @@ BillShortStatusConverted=Tractada BillShortStatusCanceled=Abandonada BillShortStatusValidated=Validada BillShortStatusStarted=Començada -BillShortStatusNotPaid=Pendent de cobrament +BillShortStatusNotPaid=Pendent BillShortStatusNotRefunded=No reemborsat BillShortStatusClosedUnpaid=Tancada BillShortStatusClosedPaidPartially=Pagada (parcial) @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Error, una factura rectificativa ha de tenir un ErrorInvoiceOfThisTypeMustBePositive=Error, aquest tipus de factura ha de tenir un import exclòs l’impost positiu (o nul) ErrorCantCancelIfReplacementInvoiceNotValidated=Error, no és possible cancel·lar una factura que ha estat substituïda per una altra que es troba en l'estat 'esborrany'. ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Aquesta part o una altra ja s'utilitza, de manera que la sèrie de descompte no es pot treure. +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 ActionsOnBill=Accions en la factura @@ -236,7 +237,7 @@ 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 RemainderToPayBackMulticurrency=Import restant per reembossar, moneda original @@ -282,6 +283,8 @@ RecurringInvoices=Factures recurrents RecurringInvoice=Factura recurrent RepeatableInvoice=Factura recurrent RepeatableInvoices=Factures recurrents +RecurringInvoicesJob=Generació de factures recurrents (factures de vendes) +RecurringSupplierInvoicesJob=Generació de factures recurrents (factures de compra) Repeatable=Recurrent Repeatables=Recurrents ChangeIntoRepeatableInvoice=Converteix-la en plantilla @@ -426,14 +429,24 @@ PaymentConditionShort14D=14 dies PaymentCondition14D=14 dies PaymentConditionShort14DENDMONTH=14 dies final de mes PaymentCondition14DENDMONTH=En els 14 dies següents a final de mes +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% dipòsit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% dipòsit, la resta a l'entrega FixAmount=Import fixe: 1 línia amb l'etiqueta '%s' VarAmount=Import variable (%% total) VarAmountOneLine=Quantitat variable (%% tot.) - 1 línia amb l'etiqueta '%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 @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Pagament mitjançant xec (incl. impostos) nominati SendTo=enviat a PaymentByTransferOnThisBankAccount=Pagament mitjançant transferència sobre el compte bancari següent VATIsNotUsedForInvoice=* IVA no aplicable art-293B del CGI +VATIsNotUsedForInvoiceAsso=* IVA no aplicable art-261-7 del CGI LawApplicationPart1=Per aplicació de la llei 80.335 de 12.05.80 LawApplicationPart2=les mercaderies romanen en propietat de LawApplicationPart3=el venedor fins al cobrament de @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=S'ha suprimit la factura de proveïdor UnitPriceXQtyLessDiscount=Descompte - Preu unitari x Quantitat CustomersInvoicesArea=Àrea de facturació del client SupplierInvoicesArea=Àrea de facturació del proveïdor -FacParentLine=Línia de factura origen SituationTotalRayToRest=Resta a pagar sense impostos PDFSituationTitle=Situació núm. %d SituationTotalProgress=Progrés total %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Cerqueu factures pendents de pagament amb data d NoPaymentAvailable=No hi ha cap pagament disponible per %s PaymentRegisteredAndInvoiceSetToPaid=Pagament registrat i factura %s configurada a pagada 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) 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..86ca76c2032 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 diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang index 5daeefd8246..1067b12b9da 100644 --- a/htdocs/langs/ca_ES/cashdesk.lang +++ b/htdocs/langs/ca_ES/cashdesk.lang @@ -51,7 +51,7 @@ AmountAtEndOfPeriod=Import al final del període (dia, mes o any) TheoricalAmount=Import teòric RealAmount=Import real CashFence=Tancament de caixa -CashFenceDone=Tancament de caixa realitzat pel període +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 @@ -102,7 +102,7 @@ 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=Obriu la finestra emergent "Control efectiu" en obrir el TPV +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 @@ -113,7 +113,7 @@ 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 @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=Afegeix el botó "Imprimeix sense detalls". PrintWithoutDetailsLabelDefault=Etiqueta 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
    +AlreadyPrinted=Ja està imprès diff --git a/htdocs/langs/ca_ES/categories.lang b/htdocs/langs/ca_ES/categories.lang index d5c556fd63b..ccfbb202ba0 100644 --- a/htdocs/langs/ca_ES/categories.lang +++ b/htdocs/langs/ca_ES/categories.lang @@ -90,11 +90,14 @@ CategorieRecursivHelp=Si l'opció està activada, quan afegiu un producte a una 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 +AddObjectIntoCategory=Afegeix un objecte a la categoria diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang index 0412b592ca6..d98fa1ebfe0 100644 --- a/htdocs/langs/ca_ES/companies.lang +++ b/htdocs/langs/ca_ES/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Àrea de pressupostos IdThirdParty=ID tercer IdCompany=Id empresa IdContact=Id contacte +ThirdPartyAddress=Adreça de tercers ThirdPartyContacts=Àrea de tercers i contactes ThirdPartyContact=Àrea d'adreces de tercers i contactes Company=Empresa @@ -51,25 +52,28 @@ CivilityCode=Codi cortesia RegisteredOffice=Domicili social Lastname=Cognoms Firstname=Nom +RefEmployee=Referència de l'empleat +NationalRegistrationNumber=Número de registre nacional PostOrFunction=Càrrec laboral UserTitle=Títol cortesia 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 Call=Trucar Chat=Xat -PhonePro=Autobús. telèfon +PhonePro=Tel. feina PhonePerso=Tel. personal PhoneMobile=Mòbil No_Email=No enviar e-mailings massius @@ -102,6 +106,7 @@ 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=Codi de barres de preu ref ##### Professional ID ##### ProfId1Short=CIF/NIF ProfId2Short=Núm. S.S. @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Registre Mercantil) ProfId2CM=Id. prof. 2 (núm. contribuent) -ProfId3CM=Id. prof. 3 (Decret de creació) -ProfId4CM=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=Nº de decret de creació +ProfId4ShortCM=Certificat de dipòsit núm. +ProfId5ShortCM=Altres ProfId6ShortCM=- ProfId1CO=CIF/NIF ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Llista de tercers ShowCompany=Tercer ShowContact=Contacte-Adreça ContactsAllShort=Tots (sense filtre) -ContactType=Tipus de contacte +ContactType=Rol de contacte ContactForOrders=Contacte de comandes ContactForOrdersOrShipments=Contacte de la comanda o enviament ContactForProposals=Contacte de pressupostos diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index 9d3361a1b79..e68a0629945 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Esteu segur que voleu classificar aquesta targeta salarial com DeleteSocialContribution=Elimina un pagament d'impost varis DeleteVAT=Suprimeix una declaració d’IVA DeleteSalary=Elimina una fitxa salarial +DeleteVariousPayment=Suprimir un pagament diferent ConfirmDeleteSocialContribution=Esteu segur que voleu suprimir aquest pagament d'impostos varis? ConfirmDeleteVAT=Esteu segur que voleu suprimir aquesta declaració d'IVA? ConfirmDeleteSalary=Esteu segur que voleu suprimir aquest sou? +ConfirmDeleteVariousPayment=Esteu segur que voleu suprimir aquest pagament? ExportDataset_tax_1=Impostos varis i pagaments CalcModeVATDebt=Mode d'%sIVA sobre comptabilitat de compromís%s . CalcModeVATEngagement=Mode d'%sIVA sobre ingressos-despeses%s. @@ -202,8 +204,8 @@ LT1ReportByQuarters=Informe impost 2 per tipus LT2ReportByQuarters=Informe impost 3 per tipus LT1ReportByQuartersES=Informe per taxa de RE LT2ReportByQuartersES=Informe per taxa de IRPF -SeeVATReportInInputOutputMode=Consulteu l'informe %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ó. +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. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Volum de compres facturat ReportPurchaseTurnoverCollected=Volum de compres recollit IncludeVarpaysInResults = Incloure varis pagaments als informes IncludeLoansInResults = Inclou préstecs en informes -InvoiceLate30Days = Factures amb retard (> 30 dies) -InvoiceLate15Days = Factures amb retard (entre 15 i 30 dies) -InvoiceLateMinus15Days = Factures amb retard (< 15 dies) +InvoiceLate30Days = Tard (> 30 dies) +InvoiceLate15Days = Tard (15 a 30 dies) +InvoiceLateMinus15Days = Tard (< 15 dies) InvoiceNotLate = A recollir (< 15 dies) InvoiceNotLate15Days = A recollir (de 15 a 30 dies) InvoiceNotLate30Days = A recollir (> 30 dies) @@ -298,3 +300,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 45eb0a496bc..e88c7dfe87c 100644 --- a/htdocs/langs/ca_ES/contracts.lang +++ b/htdocs/langs/ca_ES/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Contractes/Subscripcions ContractsAndLine=Contractes i línia de contractes Contract=Contracte ContractLine=Línia de contracte +ContractLines=Línies de contracte Closing=Tancament NoContracts=Sense contractes MenuServices=Serveis @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Contacte client signant del contracte HideClosedServiceByDefault=Oculta els serveis tancats per defecte ShowClosedServices=Mostra els serveis tancats HideClosedServices=Oculta els serveis tancats +UserStartingService=Servei d'inici d'usuari +UserClosingService=Servei de tancament d'usuaris diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index 9f038bdf256..aecba7b6975 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=El correu electrònic %s sembla incorrecte (el domini no té ca ErrorBadUrl=L'URL %s no és correcta ErrorBadValueForParamNotAString=Valor incorrecte del paràmetre. Acostuma a passar quan falta la traducció. ErrorRefAlreadyExists=La referència %s ja existeix. +ErrorTitleAlreadyExists=El títol %s ja existeix. ErrorLoginAlreadyExists=El nom d'usuari %s ja existeix. ErrorGroupAlreadyExists=El grup %s ja existeix. ErrorEmailAlreadyExists=El correu electrònic %s ja existeix. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Ja existeix un altre fitxer amb el nom %s ErrorPartialFile=Arxiu no rebut íntegrament pel servidor. ErrorNoTmpDir=Directori temporal de recepció %s inexistent ErrorUploadBlockedByAddon=Càrrega bloquejada per un connector PHP/Apache. -ErrorFileSizeTooLarge=La mida del fitxer és massa gran. +ErrorFileSizeTooLarge=La mida del fitxer és massa gran o no s'ha proporcionat el fitxer. ErrorFieldTooLong=El camp %s és massa llarg. ErrorSizeTooLongForIntType=Longitud del camp massa llarg per al tipus int (màxim %s xifres) ErrorSizeTooLongForVarcharType=Longitud del camp massa llarg per al tipus cadena (màxim %s xifres) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=S'han trobat %s errors @@ -196,10 +198,10 @@ ErrorFileMustHaveFormat=El fitxer té format %s ErrorFilenameCantStartWithDot=El nom de fitxer no pot començar amb un '.' ErrorSupplierCountryIsNotDefined=El país d'aquest proveïdor no està definit. Corregeix-lo primer. ErrorsThirdpartyMerge=No s'han pogut combinar els dos registres. Sol·licitud cancel·lada. -ErrorStockIsNotEnoughToAddProductOnOrder=No hi ha suficient estoc del producte %s per afegir-ho en una nova comanda. -ErrorStockIsNotEnoughToAddProductOnInvoice=No hi ha suficient estoc del producte %s per afegir-ho en una nova factura. -ErrorStockIsNotEnoughToAddProductOnShipment=No hi ha suficient estoc del producte %s per afegir-ho en una nova entrega. -ErrorStockIsNotEnoughToAddProductOnProposal=No hi ha suficient estoc del producte %s per afegir-ho en un nou pressupost +ErrorStockIsNotEnoughToAddProductOnOrder=No hi ha suficient estoc del producte %s per a afegir-ho en una nova comanda. +ErrorStockIsNotEnoughToAddProductOnInvoice=No hi ha suficient estoc del producte %s per a afegir-ho en una nova factura. +ErrorStockIsNotEnoughToAddProductOnShipment=No hi ha suficient estoc del producte %s per a afegir-ho en una nova entrega. +ErrorStockIsNotEnoughToAddProductOnProposal=No hi ha suficient estoc del producte %s per a afegir-ho en un nou pressupost ErrorFailedToLoadLoginFileForMode=No s'ha pogut obtenir la clau d'inici de sessió pel mode '%s'. ErrorModuleNotFound=No s'ha trobat el fitxer del mòdul. ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) @@ -224,12 +226,12 @@ ErrorChooseBetweenFreeEntryOrPredefinedProduct=Heu de triar si l'article és un ErrorDiscountLargerThanRemainToPaySplitItBefore=El descompte que intenteu aplicar és més gran del que queda per a pagar. Dividiu el descompte en 2 descomptes més petits abans. ErrorFileNotFoundWithSharedLink=No s'ha trobat el fitxer. Pot ser que la clau compartida s'hagi modificat o el fitxer s'hagi eliminat recentment. ErrorProductBarCodeAlreadyExists=El codi de barres de producte %s ja existeix en la referència d'un altre producte. -ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Tingueu en compte també que no és possible l'ús de kits per augmentar/disminuir automàticament els subproductes quan almenys un subproducte (o subproducte de subproductes) necessita un número de sèrie/lot. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Tingueu en compte també que l'ús de kits per a augmentar/disminuir automàticament els subproductes no és possible quan almenys un subproducte (o subproducte de subproductes) necessita un número de sèrie/lot. ErrorDescRequiredForFreeProductLines=La descripció és obligatòria per a línies amb producte de lliure edició 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: // @@ -269,7 +271,7 @@ 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. @@ -277,11 +279,23 @@ 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 +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 # 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. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = El valor no és vàlid diff --git a/htdocs/langs/ca_ES/eventorganization.lang b/htdocs/langs/ca_ES/eventorganization.lang index 870941b0fff..8ad5bd64b6c 100644 --- a/htdocs/langs/ca_ES/eventorganization.lang +++ b/htdocs/langs/ca_ES/eventorganization.lang @@ -37,8 +37,9 @@ 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_LABELTooltip = Quan es valida un esdeveniment organitzat, es poden crear automàticament algunes tasques al projecte

    Per exemple:
    Enviar trucada de Conferència
    Enviar trucada de estand
    Rebre trucada de conferències
    Rebre trucada de estand
    Subscripcions obertes als esdeveniments pels assistents
    Enviar recordatori de l'esdeveniment als ponents
    Envia recordatori de l'esdeveniment a l'organitzador de l'estand
    Envia recordatori de l'esdeveniment als assistents -EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoria per afegir a tercers creada automàticament quan algú suggereix una conferència +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 EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categoria per a afegir a tercers creada automàticament quan suggereixen un estand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Plantilla de correu electrònic per a enviar després de rebre un suggeriment d'una conferència. EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Plantilla de correu electrònic per a enviar després de rebre un suggeriment d'un estand. @@ -59,6 +60,8 @@ 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 @@ -138,6 +141,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 @@ -162,6 +166,7 @@ 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 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=Nombre màxim d'assistents diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index 87d841f6c93..cc36d947d53 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 ... @@ -53,8 +54,9 @@ 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=Baixeu el fitxer de plantilla amb informació de contingut del camp -StarAreMandatory=* són camps obligatoris +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 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 ... SourceFileFormat=Format de l'arxiu origen @@ -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é de la columna %s del fitxer font s'utilitzarà per a trobar l'identificador de l'objecte pare que s'utilitzarà (per tant, l'objecte %s que té referència del fitxer font ha d'existir a la base de dades). +DataComeFromIdFoundFromCodeId=El codi que prové de la columna %s del fitxer font s'utilitzarà per a trobar l'identificador de l'objecte principal que cal utilitzar (per tant, el codi del fitxer font 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ó hauria de funcionar en ambdós casos. 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: @@ -135,3 +137,9 @@ NbInsert=Nombre de línies afegides: %s NbUpdate=Nombre de línies actualitzades: %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=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..3a8eed8851f 100644 --- a/htdocs/langs/ca_ES/holiday.lang +++ b/htdocs/langs/ca_ES/holiday.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - holiday -HRM=RRHH +HRM=RH Holidays=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 +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 diff --git a/htdocs/langs/ca_ES/hrm.lang b/htdocs/langs/ca_ES/hrm.lang index 4f56f1a6c8c..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,12 +70,23 @@ 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 HowManyUserWithThisMaxNote=Nombre d'usuaris amb aquest rànquing HighestRank=Grau més alt SkillComparison=Comparació d'habilitats +ActionsOnJob=Esdeveniments en aquesta feina +VacantPosition=oferta d'ocupació +VacantCheckboxHelper=Si marqueu aquesta opció, es mostraran les posicions no ocupades (vacant) +SaveAddSkill = Habilitats afegides +SaveLevelSkill = S'ha guardat el nivell d'habilitats +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 e1143e0d0cc..e87de98def3 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -8,6 +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=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 @@ -16,13 +17,6 @@ PHPMemoryOK=La seva memòria màxima de sessió PHP està definida a %s. PHPMemoryTooLow=La seva memòria màxima de sessió PHP està definida a %s bytes. Això és molt poc. Es recomana modificar el paràmetre memory_limit del seu arxiu php.ini a almenys %s octets. Recheck=Faci clic aquí per realitzar un test més exhaustiu ErrorPHPDoesNotSupportSessions=La vostra instal·lació de PHP no admet sessions. Aquesta funció és necessària per a permetre que Dolibarr funcioni. Comproveu la configuració de PHP i els permisos del directori de sessions. -ErrorPHPDoesNotSupportGD=La vostra instal·lació de PHP no és compatible amb les funcions gràfiques de GD. No hi haurà gràfics disponibles. -ErrorPHPDoesNotSupportCurl=La vostra instal·lació de PHP no admet Curl. -ErrorPHPDoesNotSupportCalendar=La vostra instal·lació de PHP no admet extensions de calendari php. -ErrorPHPDoesNotSupportUTF8=La vostra instal·lació de PHP no admet funcions UTF8. Dolibarr no pot funcionar correctament. Resoleu-ho abans d’instal·lar Dolibarr. -ErrorPHPDoesNotSupportIntl=La vostra instal·lació de PHP no admet funcions Intl. -ErrorPHPDoesNotSupportMbstring=La vostra instal·lació de PHP no admet les funcions mbstring. -ErrorPHPDoesNotSupportxDebug=La vostra instal·lació de PHP no admet funcions de depuració extres. ErrorPHPDoesNotSupport=La teva instal·lació PHP no admet funcions %s. ErrorDirDoesNotExists=La carpeta %s no existeix o no és accessible. ErrorGoBackAndCorrectParameters=Torneu enrere i verifiqueu / corregiu els paràmetres. @@ -30,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". @@ -81,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ó) @@ -107,7 +102,7 @@ UpgradeDesc=Utilitzeu aquest mètode després d'haver actualitzat els fitxers d' Start=Comença InstallNotAllowed=Instal·lació no autoritzada per els permisos de l'arxiu conf.php YouMustCreateWithPermission=Ha de crear un fitxer %s i donar-li els drets d'escriptura al servidor web durant el procés d'instal·lació. -CorrectProblemAndReloadPage=Corregiu el problema i premeu F5 per tornar a carregar la pàgina. +CorrectProblemAndReloadPage=Solucioneu el problema i premeu F5 per a tornar a carregar la pàgina. AlreadyDone=Ja migrada DatabaseVersion=Versió de la base de dades ServerVersion=Versió del servidor de la base de dades @@ -136,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. @@ -197,8 +192,8 @@ MigrationProjectTaskTime=Actualitza el temps dedicat en segons MigrationActioncommElement=Actualització de dades d'accions MigrationPaymentMode=Migració de dades per tipus de pagament MigrationCategorieAssociation=Actualització de les categories -MigrationEvents=Migració d'esdeveniments per afegir el propietari de l'esdeveniment a la taula d'assignacions -MigrationEventsContact=Migració d'esdeveniments per afegir contacte d'esdeveniments a la taula d'assignacions +MigrationEvents=Migració d'esdeveniments per a afegir el propietari de l'esdeveniment a la taula d'assignació +MigrationEventsContact=Migració d'esdeveniments per a afegir contacte d'esdeveniments a la taula d'assignacions MigrationRemiseEntity=Actualitza el valor del camp entity de llx_societe_remise MigrationRemiseExceptEntity=Actualitza el valor del camp entity de llx_societe_remise_except MigrationUserRightsEntity=Actualitza el valor del camp de l'entitat llx_user_rights diff --git a/htdocs/langs/ca_ES/interventions.lang b/htdocs/langs/ca_ES/interventions.lang index cdb63941d43..1ec9149bf55 100644 --- a/htdocs/langs/ca_ES/interventions.lang +++ b/htdocs/langs/ca_ES/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Plantilla d’intervenció ToCreateAPredefinedIntervention=Per a crear una intervenció predefinida o recurrent, creeu una intervenció comuna i convertiu-la en plantilla d'intervenció ConfirmReopenIntervention=Esteu segur que voleu tornar a obrir la intervenció %s ? 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ó. 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 32c178e92d6..11ba5a08955 100644 --- a/htdocs/langs/ca_ES/languages.lang +++ b/htdocs/langs/ca_ES/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Etíop Language_ar_AR=Àrab Language_ar_DZ=Àrab (Algèria) Language_ar_EG=Àrab (Egipte) +Language_ar_JO=Àrab (Jordània) Language_ar_MA=Àrab (marroquí) Language_ar_SA=Àrab Language_ar_TN=Àrab (Tunísia) @@ -15,6 +16,7 @@ Language_bg_BG=Búlgar Language_bs_BA=Bosni Language_ca_ES=Català Language_cs_CZ=Txec +Language_cy_GB=Gal·lès Language_da_DA=Danès Language_da_DK=Danès Language_de_DE=Alemany @@ -22,6 +24,7 @@ Language_de_AT=Alemany (Austria) Language_de_CH=Alemany (Suïssa) 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_GB=Anglès (Regne Unit) @@ -83,6 +86,7 @@ Language_lt_LT=Lituà Language_lv_LV=Letó Language_mk_MK=Macedoni Language_mn_MN=Mongol +Language_my_MM=Birmà Language_nb_NO=Noruec (Bokmal) Language_ne_NP=Nepalí Language_nl_BE=Neerlandès (Bèlgica) @@ -95,6 +99,7 @@ Language_ro_MD=Romanès (Moldàvia) Language_ro_RO=Romanès Language_ru_RU=Rus Language_ru_UA=Rus (Ucraïna) +Language_ta_IN=Tamil Language_tg_TJ=Tadjik Language_tr_TR=Turc Language_sl_SI=Eslovè @@ -106,6 +111,7 @@ Language_sr_RS=Serbi Language_sw_SW=Kiswahili Language_th_TH=Tailandès Language_uk_UA=Ucraïnès +Language_ur_PK=Urdú Language_uz_UZ=Uzbek Language_vi_VN=Vietnamita Language_zh_CN=Xinès diff --git a/htdocs/langs/ca_ES/loan.lang b/htdocs/langs/ca_ES/loan.lang index ce9fae18c7b..ac2dd4e3c13 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 @@ -24,7 +24,7 @@ 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 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 2144d2ecf0a..e316bb74b99 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=, @@ -69,7 +75,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 @@ -244,6 +250,7 @@ Designation=Descripció DescriptionOfLine=Descripció de línia DateOfLine=Data de la línia DurationOfLine=Durada de la línia +ParentLine=Identificador de línia principal Model=Plantilla del document DefaultModel=Plantilla del document per defecte Action=Acció @@ -344,7 +351,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Enganyat per +UserAuthor=Creat per UserModif=Actualitzat per b=b. Kb=Kb @@ -517,6 +524,7 @@ or=o Other=Altres Others=Altres OtherInformations=Una altra informació +Workflow=Flux de treball Quantity=Quantitat Qty=Qt. ChangedBy=Modificat per @@ -547,8 +555,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 @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Arxius i documents adjunts JoinMainDoc=Unir al document principal +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 @@ -709,6 +718,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ó @@ -742,7 +752,7 @@ Browser=Navegador Layout=Presentació Screen=Pantalla DisabledModules=Mòduls desactivats -For=Per a +For=A favor ForCustomer=Per a client Signature=Signatura DateOfSignature=Data de signatura @@ -909,7 +919,7 @@ ViewFlatList=Veure llista plana ViewAccountList=Veure llibre major ViewSubAccountList=Vegeu el subcompte del llibre major RemoveString=Eliminar cadena '%s' -SomeTranslationAreUncomplete=Alguns dels idiomes que s'ofereixen poden estar traduïts només parcialment o poden contenir errors. Si us plau, ajudeu a corregir el vostre idioma registrant-vos a https://transifex.com/projects/p/dolibarr/ per afegir les vostres millores. +SomeTranslationAreUncomplete=Alguns dels idiomes que s'ofereixen poden estar traduïts només parcialment o poden contenir errors. Si us plau, ajudeu a corregir el vostre idioma registrant-vos a https://transifex.com/projects/p/dolibarr/ per a afegir les vostres millores. DirectDownloadLink=Enllaç de descàrrega públic PublicDownloadLinkDesc=Per baixar el fitxer només es necessita l'enllaç DirectDownloadInternalLink=Enllaç de descàrrega privat @@ -927,8 +937,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? @@ -1110,7 +1120,7 @@ StatusOfRefMustBe=L'estat de %s ha de ser %s DeleteFileHeader=Confirma l'eliminació del fitxer DeleteFileText=Realment vols suprimir aquest fitxer? ShowOtherLanguages=Mostrar altres idiomes -SwitchInEditModeToAddTranslation=Canviar a mode d'edició per afegir traduccions per a aquest idioma +SwitchInEditModeToAddTranslation=Canviar a mode d'edició per a afegir traduccions per a aquest idioma NotUsedForThisCustomer=No s'utilitza per a aquest client AmountMustBePositive=L'import ha de ser positiu ByStatus=Per estat @@ -1164,3 +1174,16 @@ NotClosedYet=Encara no tancat ClearSignature=Restableix la signatura CanceledHidden=Cancel·lat ocult CanceledShown=Es mostra cancel·lada +Terminate=Dona de baixa +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 +YourMessage=El teu missatge +YourMessageHasBeenReceived=S'ha rebut el teu missatge. Et respondrem o contactarem el 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 diff --git a/htdocs/langs/ca_ES/members.lang b/htdocs/langs/ca_ES/members.lang index 9ed01b35226..68bcc3adf9f 100644 --- a/htdocs/langs/ca_ES/members.lang +++ b/htdocs/langs/ca_ES/members.lang @@ -15,7 +15,7 @@ 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=Targetes de visita per a socis +MembersCards=Generació de carnets per a socis MembersList=Llistat de socis MembersListToValid=Llistat de socis esborrany (per a validar) MembersListValid=Llistat de socis validats @@ -35,7 +35,8 @@ DateEndSubscription=Data de finalització de la subscripció EndSubscription=Fi de la pertinença SubscriptionId=Identificador de contribució WithoutSubscription=Sense aportació -MemberId=ID de soci +MemberId=Identificador de membre +MemberRef=Membre Ref NewMember=Soci nou MemberType=Tipus de soci MemberTypeId=ID de tipus de soci @@ -102,7 +103,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 @@ -155,15 +156,15 @@ 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 -MoreActionsOnSubscription=Acció complementària, suggerida per defecte quan es registra una contribució +MoreActionsOnSubscription=Acció complementària suggerida per defecte a l'hora de registrar una contribució, també feta automàticament en el pagament en línia d'una contribució 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=Generació de targetes de presentació +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,7 +199,7 @@ 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ó +CanEditAmount=Visitor can choose/edit amount of its contribution MEMBER_NEWFORM_PAYONLINE=Anar a la pàgina integrada de pagament en línia ByProperties=Per naturalesa MembersStatisticsByProperties=Estadístiques dels membres per naturalesa @@ -218,3 +219,5 @@ 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 diff --git a/htdocs/langs/ca_ES/modulebuilder.lang b/htdocs/langs/ca_ES/modulebuilder.lang index 116ea41d0b1..0ca1913650a 100644 --- a/htdocs/langs/ca_ES/modulebuilder.lang +++ b/htdocs/langs/ca_ES/modulebuilder.lang @@ -1,14 +1,17 @@ # 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=Introduïu el nom del mòdul/aplicació per a crear sense espais. Utilitzeu majúscules per separar paraules (per exemple: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Introduïu el nom de l'objecte que voleu crear sense espais. Utilitzeu majúscules per separar paraules (Per exemple: MyObject, Estudiant, Professor...). El fitxer de classes CRUD, però també el fitxer API, pàgines per a llistar/afegir/editar/eliminar objectes i els fitxers SQL es generaran. +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 separar paraules (per exemple: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Introduïu el nom de l'objecte que voleu crear sense espais. Utilitzeu majúscules per separar paraules (per exemple: El meu objecte, Estudiant, Professor...). Es generaran el fitxer de classe CRUD, però també el fitxer API, les pàgines per 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 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=Nou diccionari ModuleKey=Clau del mòdul ObjectKey=Clau de l'objecte +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) @@ -52,7 +55,7 @@ LanguageFile=Arxiu del llenguatge ObjectProperties=Propietats de l'objecte 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=Estableix la base de dades a NOT NULL. -1=Permet els valors nuls i força el valor a ser NULL si és buit ('' ó 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 @@ -84,7 +87,7 @@ 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) +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 a 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 IsAMeasureDesc=Es pot acumular el valor del camp per a obtenir un total a la llista? (Exemples: 1 o 0) @@ -94,10 +97,10 @@ LanguageDefDesc=Introduïu a aquests fitxers, totes les claus i les traduccions MenusDefDesc=Definiu aquí els menús proporcionats pel vostre mòdul DictionariesDefDesc=Defineix aquí els diccionaris que ofereix el teu mòdul PermissionsDefDesc=Definiu aquí els nous permisos proporcionats pel vostre mòdul -MenusDefDescTooltip=Els menús proporcionats pel vostre mòdul / aplicació es defineixen a la matriu $ this-> menús al fitxer descriptor del mòdul. Podeu editar manualment aquest fitxer o utilitzar l’editor incrustat.

    Nota: un cop definits (i el mòdul es reactiven), els menús també es visualitzen a l'editor de menús disponible per als usuaris administradors de %s. +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 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 @@ -110,7 +113,7 @@ DropTableIfEmpty=(Suprimeix la taula si està buida) TableDoesNotExists=La taula %s no existeix TableDropped=S'ha esborrat la taula %s InitStructureFromExistingTable=Creeu la cadena de la matriu d'estructura d'una taula existent -UseAboutPage=Desactiva la pàgina sobre +UseAboutPage=No generar la pàgina Sobre UseDocFolder=Desactiva la carpeta de documentació UseSpecificReadme=Utilitzeu un ReadMe específic ContentOfREADMECustomized=Nota: El contingut del fitxer README.md s'ha substituït pel valor específic definit a la configuració de ModuleBuilder. @@ -127,10 +130,10 @@ 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=La referència de l’objecte s’ha de generar automàticament -IncludeRefGenerationHelp=Marca-ho si vols incloure codi per a gestionar la generació automàtica de la referència -IncludeDocGeneration=Vull generar alguns documents des de l'objecte -IncludeDocGenerationHelp=Si ho marques, es generarà el codi per afegir una casella "Generar document" al registre. +IncludeRefGeneration=La referència de l'objecte s'ha de generar automàticament mitjançant regles de numeració personalitzades +IncludeRefGenerationHelp=Marqueu-ho si voleu incloure codi per gestionar automàticament la generació de la referència mitjançant regles de numeració personalitzades +IncludeDocGeneration=Vull generar alguns documents a partir de plantilles per a l'objecte +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 KeyForTooltip=Clau per donar més informació CSSClass=CSS per a editar/crear un formulari @@ -138,10 +141,16 @@ 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' significa que afegim un botó + després del desplegable per a crear el registre, 'filtre' pot ser 'status=1 AND fk_user=__USER_ID AND entity IN (__SHARED_ENTITIES__)' per exemple) +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__)' 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=Poseu 1 si aquest camp s'ha de validar amb $ this-> validateField () o 0 si cal una validació +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ó. +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 diff --git a/htdocs/langs/ca_ES/mrp.lang b/htdocs/langs/ca_ES/mrp.lang index b15fd5c4f1e..ac57dc2e1cd 100644 --- a/htdocs/langs/ca_ES/mrp.lang +++ b/htdocs/langs/ca_ES/mrp.lang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=Per desmuntar una quantitat de %s ConfirmValidateMo=Voleu validar aquesta Ordre de Fabricació? ConfirmProductionDesc=Fent clic a '%s' validareu el consum i/o la producció per a les quantitats establertes. També s’actualitzarà l'estoc i es registrarà els moviments d'estoc. ProductionForRef=Producció de %s +CancelProductionForRef=Cancel·lació de la disminució de l'estoc del producte %s +TooltipDeleteAndRevertStockMovement=Suprimeix la línia i reverteix el moviment d'existències AutoCloseMO=Tancar automàticament l’Ordre de Fabricació si s’arriba a les quantitats establertes a consumir i produir NoStockChangeOnServices=Sense canvi d’estoc en serveis ProductQtyToConsumeByMO=Quantitat de producte que encara es pot consumir amb OP obertes @@ -107,3 +109,6 @@ 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 diff --git a/htdocs/langs/ca_ES/oauth.lang b/htdocs/langs/ca_ES/oauth.lang index d5808930a4f..8c0cc35de63 100644 --- a/htdocs/langs/ca_ES/oauth.lang +++ b/htdocs/langs/ca_ES/oauth.lang @@ -9,12 +9,13 @@ 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 +RequestAccess=Feu clic aquí per sol·licitar/renovar l'accés i rebre un nou testimoni DeleteAccess=Feu clic aquí per a suprimir 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 crear/obtenir un ID i un secret OAuth i deseu-los aquí. Un cop fet, activeu l'altra pestanya per 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 +24,13 @@ 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 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 l'etiqueta diff --git a/htdocs/langs/ca_ES/opensurvey.lang b/htdocs/langs/ca_ES/opensurvey.lang index e81e66a4551..a19413eadc3 100644 --- a/htdocs/langs/ca_ES/opensurvey.lang +++ b/htdocs/langs/ca_ES/opensurvey.lang @@ -37,7 +37,7 @@ 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 af74cb905ed..5660430496e 100644 --- a/htdocs/langs/ca_ES/orders.lang +++ b/htdocs/langs/ca_ES/orders.lang @@ -68,6 +68,8 @@ CreateOrder=Crear comanda RefuseOrder=Rebutja la comanda ApproveOrder=Aprova la comanda Approve2Order=Aprovar comanda (segon nivell) +UserApproval=Usuari per a l'aprovació +UserApproval2=Usuari per aprovació (segon nivell) ValidateOrder=Validar la comanda UnvalidateOrder=Desvalidar la comanda DeleteOrder=Elimina la comanda @@ -102,6 +104,8 @@ ConfirmCancelOrder=Vols anul·lar aquesta comanda? ConfirmMakeOrder=Vols confirmar la creació d'aquesta comanda a data de %s? GenerateBill=Facturar ClassifyShipped=Classifica enviat +PassedInShippedStatus=classificat lliurat +YouCantShipThis=Això no ho puc classificar. Si us plau, comproveu els permisos dels usuaris DraftOrders=Esborranys de comandes DraftSuppliersOrders=Esborrany de comandes de compra OnProcessOrders=Comandes en procés diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 4154ffc475a..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=Gestió d'una botiga amb caixa +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,8 +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/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 82eb754189e..0db9bb1aec9 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -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,7 +73,7 @@ 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 @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Esteu segur que voleu suprimir aquesta línia de produc ProductSpecial=Especial QtyMin=Min. quantitat de compra PriceQtyMin=Preu mínim -PriceQtyMinCurrency=Preu (moneda) per aquesta quantitat (sense descompte) +PriceQtyMinCurrency=Preu (moneda) per a aquesta quantitat. +WithoutDiscount=Sense descompte VATRateForSupplierProduct=Tipus d'IVA (per a aquest venedor/producte) DiscountQtyMin=Descompte per aquesta quantitat. NoPriceDefinedForThisSupplier=Sense preu ni quantitat definida per aquest proveïdor / producte @@ -261,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 @@ -283,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# @@ -306,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ó @@ -346,7 +347,7 @@ UseProductFournDesc=Afegiu una característica per definir la descripció del pr 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) PackagingForThisProduct=Embalatge -PackagingForThisProductDesc=En fer la comanda del proveïdor, s'ordenarà automàticament aquesta quantitat (o un múltiple d’aquesta quantitat). No pot ser inferior a la quantitat mínima de compra +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 #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Marqueu-ho si voleu un missatge a l'usuari en crear/validar una DefaultBOM=Matèria predeterminada per defecte DefaultBOMDesc=Es recomana utilitzar la llista de materials predeterminada per fabricar aquest producte. Aquest camp només es pot establir si la naturalesa del producte és "%s". Rank=Classificació +MergeOriginProduct=Producte duplicat (producte que voleu suprimir) +MergeProducts=Combinar productes +ConfirmMergeProducts=Esteu segur que voleu combinar el producte escollit amb l'actual? Tots els objectes enllaçats (factures, comandes, ...) es traslladaran al producte actual, després del qual s'eliminarà el producte escollit. +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 StockMouvementExtraFields= Camps addicionals (moviment d'existències) +InventoryExtraFields= Camps addicionals (inventari) +ScanOrTypeOrCopyPasteYourBarCodes=Escaneja o escriviu o copieu/enganxeu els vostres codis de barres +PuttingPricesUpToDate=Actualitza els preus amb els preus actuals coneguts +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 diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index 49a2835884b..cacab31b903 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Etiqueta de projecte ProjectsArea=Àrea de projectes ProjectStatus=Estat el projecte SharedProject=Projecte compartit -PrivateProject=Contactes del projecte +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,7 +20,7 @@ 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. ImportDatasetTasks=Tasques de projectes @@ -190,6 +190,7 @@ PlannedWorkload=Càrrega de treball prevista PlannedWorkloadShort=Càrrega de treball ProjectReferers=Registres relacionats ProjectMustBeValidatedFirst=El projecte primer ha de ser validat +MustBeValidatedToBeSigned=Primer s'ha de validar %s per establir-lo com a Signat. FirstAddRessourceToAllocateTime=Assigneu un recurs d'usuari com a contacte del projecte per a assignar temps InputPerDay=Entrada per dia InputPerWeek=Entrada per setmana @@ -287,3 +288,9 @@ 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=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 diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang index 10ca43312b5..23d054a0aa2 100644 --- a/htdocs/langs/ca_ES/propal.lang +++ b/htdocs/langs/ca_ES/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Sense pressupostos esborrany CopyPropalFrom=Crea un pressupost per còpia d'un d'existent CreateEmptyPropal=Creeu una proposta comercial buida o des de la llista de productes / serveis DefaultProposalDurationValidity=Termini de validesa per defecte (en dies) +DefaultPuttingPricesUpToDate=Per defecte, actualitzeu els preus amb els preus actuals coneguts en clonar una proposta UseCustomerContactAsPropalRecipientIfExist=Utilitzeu el contacte / adreça amb el tipus "proposta de seguiment de contacte" si es defineix en comptes de l'adreça de tercers com a adreça de destinatari de la proposta ConfirmClonePropal=Estàs segur que vols clonar la proposta comercial %s? ConfirmReOpenProp=Esteu segur que voleu tornar a obrir el pressupost %s? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Acceptació per escrit, segell de l'empresa, data i si 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 +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 IdProduct=ID de producte -PrParentLine=Línia de pressupost origen LineBuyPriceHT=Preu de compra sense impostos per línia SignPropal=Acceptar la proposta RefusePropal=Rebutja la proposta Sign=Signe +NoSign=Conjunt no signat PropalAlreadySigned=Proposta ja acceptada PropalAlreadyRefused=Proposta ja rebutjada PropalSigned=S'accepta la proposta 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..cef3f462b29 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -74,7 +74,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 +86,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 @@ -151,9 +151,9 @@ RecordMovement=Registre de transferència 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) +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=Etiqueta del moviment TypeMovement=Direcció de moviment DateMovement=Data de moviment @@ -171,12 +171,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 @@ -254,7 +254,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 +265,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 7da1703c601..7aa1e274dca 100644 --- a/htdocs/langs/ca_ES/ticket.lang +++ b/htdocs/langs/ca_ES/ticket.lang @@ -90,15 +90,17 @@ 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=Notificació de correu electrònic procedent de -TicketEmailNotificationFromHelp=S'utilitza en la resposta del tiquet per exemple -TicketEmailNotificationTo=Notificacions de correu electrònic a -TicketEmailNotificationToHelp=Enviar notificacions per correu electrònic a aquesta adreça. +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 crear un tercer amb contacte. PublicInterface=Interfície pública TicketUrlPublicInterfaceLabelAdmin=URL alternativa 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) @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Envieu correu(s) electrònic(s) quan s'afege TicketsPublicNotificationNewMessageHelp=Envia correus electrònics quan s'afegeixi un missatge nou des de la interfície pública (a l'usuari assignat o al correu electrònic de notificacions a (actualitzar) i/o al correu electrònic de notificacions) TicketPublicNotificationNewMessageDefaultEmail=Notificar correu electrònic cap a (actualitzar) TicketPublicNotificationNewMessageDefaultEmailHelp=Envieu un correu electrònic a aquesta adreça per a cada nova notificació de missatges si el bitllet no té assignat cap usuari o si l’usuari no té cap correu electrònic conegut. +TicketsAutoReadTicket=Marca automàticament el bitllet com a llegit (quan es crea des del backoffice) +TicketsAutoReadTicketHelp=Marca automàticament el bitllet com a llegit quan es crea des del backoffice. Quan el bitllet es crea des de la interfície pública, el bitllet es manté amb l'estat "No llegit". +TicketsDelayBeforeFirstAnswer=Un bitllet nou hauria de rebre una primera resposta abans (hores): +TicketsDelayBeforeFirstAnswerHelp=Si un nou bitllet no ha rebut resposta després d'aquest període de temps (en hores), es mostrarà una icona d'advertència important a la vista de llista. +TicketsDelayBetweenAnswers=Un bitllet no resolt no hauria d'estar inactiu durant (hores): +TicketsDelayBetweenAnswersHelp=Si un tiquet no resolt que ja ha rebut una resposta no ha tingut més interacció després d'aquest període de temps (en hores), es mostrarà una icona d'advertència a la vista de llista. +TicketsAutoNotifyClose=Aviseu automàticament a tercers quan tanqueu un bitllet +TicketsAutoNotifyCloseHelp=Quan tanqueu un bitllet, se us proposarà enviar un missatge a un dels contactes de tercers. En el tancament massiu, s'enviarà un missatge a un contacte del tercer vinculat al bitllet. +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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Ordena per data ascendent OrderByDateDesc=Ordena per data descendent ShowAsConversation=Mostrar com a llista de converses MessageListViewType=Mostra com a llista de taula +ConfirmMassTicketClosingSendEmail=Envieu correus electrònics automàticament quan tanqueu els tiquets +ConfirmMassTicketClosingSendEmailQuestion=Voleu notificar als tercers quan tanqueu aquests tiquets? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatari està buit. Email n TicketGoIntoContactTab=Aneu a la pestanya "Contactes" per seleccionar-los TicketMessageMailIntro=Introducció TicketMessageMailIntroHelp=Aquest text només s'afegeix al principi del correu electrònic i no es desarà. -TicketMessageMailIntroLabelAdmin=Introducció al missatge en enviar missatges de correu electrònic -TicketMessageMailIntroText=Hola,
    S'ha enviat una nova resposta en un tiquet que n'ets contacte. Aquest és el missatge:
    -TicketMessageMailIntroHelpAdmin=Aquest text s'inserirà abans del text de la resposta a un tiquet. +TicketMessageMailIntroLabelAdmin=Text d'introducció a totes les respostes dels bitllets +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 TicketMessageMailSignature=Signatura TicketMessageMailSignatureHelp=Aquest text només s'afegeix al final del correu electrònic i no es desarà. -TicketMessageMailSignatureText=

    Cordialment,

    --

    +TicketMessageMailSignatureText=Missatge enviat per %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Signatura del correu electrònic de resposta TicketMessageMailSignatureHelpAdmin=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. @@ -226,7 +242,7 @@ TicketAssignedToYou=Tiquet assignat TicketAssignedEmailBody=Se us ha assignat el tiquet # %s per %s MarkMessageAsPrivate=Marcar el missatge com privat 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 @@ -238,9 +254,16 @@ TicketChangeStatus=Canvia l'estat TicketConfirmChangeStatus=Confirmeu el canvi d'estat: %s? TicketLogStatusChanged=Estat canviat: %s a %s TicketNotNotifyTiersAtCreate=No es notifica a l'empresa a crear +NotifyThirdpartyOnTicketClosing=Contactes per a notificar mentre es tanca el tiquet +TicketNotifyAllTiersAtClose=Tots els contactes relacionats +TicketNotNotifyTiersAtClose=Cap contacte relacionat Unread=No llegit TicketNotCreatedFromPublicInterface=No disponible El tiquet no s'ha creat des de la interfície pública. ErrorTicketRefRequired=El nom de referència del tiquet és obligatori +TicketsDelayForFirstResponseTooLong=Ha passat massa temps des de l'obertura del bitllet sense cap resposta. +TicketsDelayFromLastResponseTooLong=Ha passat massa temps des de l'última resposta en aquest bitllet. +TicketNoContractFoundToLink=No s'ha trobat cap contracte vinculat automàticament a aquest bitllet. Enllaceu un contracte manualment. +TicketManyContractsLinked=Molts contractes s'han vinculat automàticament a aquest bitllet. Assegureu-vos de verificar quina s'ha de triar. # # Logs @@ -268,8 +291,9 @@ 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=Podeu veure el progrés del tiquet fent clic a l'enllaç de dalt. +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. @@ -291,6 +315,10 @@ NewUser=Usuari nou NumberOfTicketsByMonth=Nombre d’entrades mensuals NbOfTickets=Nombre d’entrades # notifications +TicketCloseEmailSubjectCustomer=Tiquet tancat +TicketCloseEmailBodyCustomer=Aquest és un missatge automàtic per notificar-vos que el bitllet %s s'acaba de tancar. +TicketCloseEmailSubjectAdmin=Entrada tancada - Ref %s (ID de bitllet públic %s) +TicketCloseEmailBodyAdmin=S'acaba de tancar un tiquet amb ID #%s, vegeu la informació: TicketNotificationEmailSubject=Tiquet %s actualitzat TicketNotificationEmailBody=Aquest és un missatge automàtic per a notificar-vos que el tiquet %s s'acaba d'actualitzar TicketNotificationRecipient=Destinatari de la notificació 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 c1aa83d1a12..0fbf167ffb5 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -36,7 +36,7 @@ SuperAdministrator=Super Administrador SuperAdministratorDesc=Administrador global AdministratorDesc=Administrador DefaultRights=Permisos per defecte -DefaultRightsDesc=Definiu aquí els permisos per defecte que es concedeixen automàticament a un usuari nou (per modificar els permisos dels usuaris existents, aneu a la targeta d'usuari). +DefaultRightsDesc=Definiu aquí els permisos per defecte que es concedeixen automàticament a un usuari nou (per a modificar els permisos dels usuaris existents, aneu a la fitxa d'usuari). DolibarrUsers=Usuaris Dolibarr LastName=Cognoms FirstName=Nom @@ -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) @@ -114,7 +114,7 @@ UserLogoff=Usuari desconnectat UserLogged=Usuari connectat DateOfEmployment=Data de treball DateEmployment=Ocupació -DateEmploymentstart=Data d'inici de l'ocupació +DateEmploymentStart=Data d'inici de l'ocupació DateEmploymentEnd=Data de finalització de l'ocupació RangeOfLoginValidity=Accés a l'interval de dates de validesa CantDisableYourself=No podeu desactivar el vostre propi registre d'usuari @@ -123,4 +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 +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 fdcbe9b1f36..9a6743cfa97 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Factura de venedor en espera de pagament mitjanç InvoiceWaitingWithdraw=Factura esperant per domiciliació bancària InvoiceWaitingPaymentByBankTransfer=Factura en espera de transferència bancària 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. ResponsibleUser=Usuari responsable @@ -90,7 +91,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 @@ -116,7 +117,7 @@ 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 +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) %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. CreditorIdentifier=Identificador del creditor CreditorName=Nom del creditor @@ -127,7 +128,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 @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Data d'execució CreateForSepa=Crea un fitxer de domiciliació bancària ICS=Identificador del creditor - ICS +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ó @@ -154,3 +156,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=S'utilitza per a %s diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang index 4465cf9ca53..1b8a1353a66 100644 --- a/htdocs/langs/ca_ES/workflow.lang +++ b/htdocs/langs/ca_ES/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automàticament una comanda de client descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crea automàticament una factura del client després de signar un pressupost (la nova factura tindrà el mateix import que el pressupost) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de validar un contracte descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crea automàticament una factura de client després de tancar una comanda de client (la nova factura tindrà el mateix import que la comanda) +descWORKFLOW_TICKET_CREATE_INTERVENTION=En crear el bitllet, creeu automàticament una intervenció. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica el pressupost d'origen com a facturat quan la comanda del client es posi com a facturada (i si l'import de la comanda és igual a l'import total del pressupost signat vinculat) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la factura del client es validi (i si l'import de la factura és igual a l'import total dels pressupostos signats vinculats) @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classifica l'ordre de compra d'or 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) # Autoclassify purchase invoice descWORKFLOW_BILL_ON_RECEPTION=Classifica les recepcions com a "facturades" quan es valida una comanda de proveïdor enllaçada +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Tanca totes les intervencions vinculades quan es tanca un tiquet 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 +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 3e9c0c1d344..9017f3151eb 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Účet hlavního účtu je platba p AccountancyArea=Účetní oblast AccountancyAreaDescIntro=Použití účetního modulu se provádí v několika krocích: AccountancyAreaDescActionOnce=Tyto akce jsou obvykle prováděny pouze jednou, nebo jednou za rok ... -AccountancyAreaDescActionOnceBis=Další kroky by měly být provedeny, abyste ušetřili čas v budoucnu tím, že vám při vytváření žurnálu navrhujete správný výchozí účetní účet (zápis do časopisů a hlavní knihy) +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=Tyto akce jsou proto zpravidla prováděny každý měsíc, týden nebo den pro velmi velké společnosti ... -AccountancyAreaDescJournalSetup=KROK %s: Vytvořte nebo zkontrolujte obsah vašeho seznamu časopisů z nabídky %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=KROK %s: Zkontrolujte, zda existuje model účtové osnovy, nebo vytvořte jeden z nabídky %s. AccountancyAreaDescChart=KROK %s: Vyberte a | nebo dokončete svůj účtový graf z nabídky %s AccountancyAreaDescVat=KROK %s: Definujte účetní účty pro každou DPH. K tomu použijte položku nabídky %s. AccountancyAreaDescDefault=KROK %s: Definujte výchozí účetní účty. K tomu použijte položku nabídky %s. -AccountancyAreaDescExpenseReport=KROK %s: Definujte výchozí účetní účty pro každý typ výkazu výdajů. K tomu použijte položku nabídky %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=KROK %s: Definujte výchozí účty pro výplatu mezd. K tomu použijte položku nabídky %s. -AccountancyAreaDescContrib=KROK %s: Definujte výchozí účetní účty pro zvláštní výdaje (různé daně). K tomu použijte položku nabídky %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=KROK %s: Definujte výchozí účetní účty pro dárcovství. K tomu použijte položku nabídky %s. AccountancyAreaDescSubscription=KROK %s: Definujte výchozí účetní účty pro členské předplatné. K tomu použijte položku nabídky %s. AccountancyAreaDescMisc=KROK %s: Definujte povinné výchozí účty a výchozí účetní účty pro různé transakce. K tomu použijte položku nabídky %s. AccountancyAreaDescLoan=KROK %s: Definujte výchozí účetní účty pro úvěry. K tomu použijte položku nabídky %s. AccountancyAreaDescBank=KROK %s: Definujte účetní účty a kód časopisu pro jednotlivé bankovní a finanční účty. K tomu použijte položku nabídky %s. -AccountancyAreaDescProd=KROK %s: Definujte účetní účty ve vašich produktech / službách. K tomu použijte položku nabídky %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=KROK %s: Zkontrolujte vazbu mezi existujícími řádky %s a účetní účet se provádí, takže aplikace bude schopna provádět evidenci transakcí v Ledgeru jedním klepnutím. Vyplňte chybějící vazby. K tomu použijte položku nabídky %s. AccountancyAreaDescWriteRecords=KROK %s: Napište transakce do knihy. K tomu přejděte do menu %s a klikněte na tlačítko %s . @@ -112,7 +112,7 @@ MenuAccountancyClosure=Uzavření MenuAccountancyValidationMovements=Ověřte pohyby ProductsBinding=Produkty účty TransferInAccounting=Transfer v účetnictví -RegistrationInAccounting=Registrace v účetnictví +RegistrationInAccounting=Recording in accounting Binding=Vazba na účetní závěrky CustomersVentilation=Zákaznické fakturační závazky SuppliersVentilation=Závazná faktura dodavatele @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Záväzná zpráva o výdajích CreateMvts=Vytvořit novou transakci UpdateMvts=Modifikace transakce ValidTransaction=Ověřte transakci -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=účetní kniha BookkeepingSubAccount=Subledger AccountBalance=Zůstatek na účtu @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Účtování účet registrovaných darů ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Účtovací účet pro registraci předplatného ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Podle předdefinovaných skupin ByPersonalizedAccountGroups=Individuálními skupinami ByYear=Podle roku NotMatch=Nenastaveno -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Měsíc k odstranění DelYear=Odstrannění roku DelJournal=Journal, který chcete smazat -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í deník ExpenseReportsJournal=Výdajové zprávy journal DescFinanceJournal=Finanční deník včetně všech typů plateb prostřednictvím bankovního účtu @@ -278,30 +279,31 @@ 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=Zde se podívejte na počet pohybů za měsíc, kteří nejsou validováni a fiskální roky již otevřeny -OverviewOfMovementsNotValidated=Krok 1 / Přehled pohybů neověřených. (Nezbytné uzavřít fiskální rok) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Ověřte pohyby +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=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 -MvtNotCorrectlyBalanced=Pohyb není správně vyvážený. Debit = %s | Úvěr = %s +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=Žádný další záznam, který by se publikoval +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Seznam výrobků, které nejsou vázány na kterémkoli účetním účtu ChangeBinding=Změnit vazby Accounted=Účtováno v knize NotYetAccounted=Not yet transferred to accounting ShowTutorial=Zobrazit výuku NotReconciled=Nesladěno -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 @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=Exportovat deník návrhu Modelcsv=Model exportu @@ -394,6 +397,21 @@ Range=Řada účetních účtu Calculated=počítáno Formula=Vzorec +## 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=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)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Některé povinné kroky nastavení nebyly provedeny, vyplňte je ErrorNoAccountingCategoryForThisCountry=Účetnictví skupiny účtů není k dispozici pro země %s (viz Home - instalace - slovníky) @@ -406,6 +424,9 @@ Binded=linky vázané ToBind=Linky k vazbě UseMenuToSetBindindManualy=Řádky, které ještě nejsou vázány, použijte nabídku %s k vytvoření vazby ručně 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 ## Import ImportAccountingEntries=Účetní zápisy diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index 5934fa549c3..11d510faad1 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -109,7 +109,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 @@ -477,7 +477,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ů @@ -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=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) @@ -714,13 +714,14 @@ 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ů Permission39=Ignore minimum price -Permission41=Přečtěte si projekty a úkoly (sdílený projekt a projekty, pro které jsem kontakt). Může také zadat časově náročnou, pro mne nebo svou hierarchii, na přiřazené úkoly (Timesheet) -Permission42=Vytvořte / upravte projekty (sdílený projekt a projekty, pro které jsem kontaktován). Může také vytvářet úkoly a přiřazovat uživatele k projektu a úkolům -Permission44=Smazat projekty (sdílený projekt a projekty, pro které jsem kontakt) +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 projektů Permission61=Přečtěte intervence Permission62=Vytvářejte/upravujte intervence @@ -739,6 +740,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ů @@ -766,9 +768,10 @@ Permission122=Vytvořit/modifikovat subjekty spojené s uživateli Permission125=Smazat subjekty propojené s uživatelem Permission126=Export subjektu Permission130=Create/modify third parties payment information -Permission141=Přečtěte si všechny projekty a úkoly (také soukromé projekty, pro které nejsem kontakt) -Permission142=Vytvářet / upravovat všechny projekty a úkoly (také soukromé projekty, pro které nejsem kontakt) -Permission144=Smazat všechny projekty a úkoly (také soukromé projekty, pro které nejsem kontakt) +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=Přečtěte si poskytovatele Permission147=Přečtěte si statistiky Permission151=Číst přímé debetní platební příkazy @@ -873,6 +876,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 @@ -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=Přečtěte si kusovníky Permission651=Vytvářejte/aktualizujte kusovníky Permission652=Smazat kusovníky @@ -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=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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Zpráva o výdajích - Kategorie dopravy DictionaryExpenseTaxRange=Výkaz výdajů - Rozsah podle kategorie dopravy DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Nastavení uloženo SetupNotSaved=Nastavení nebylo uloženo @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Modul bankovních účtů není povolen 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=Upozornění -DelaysOfToleranceBeforeWarning=Zpoždění před zobrazením varovného upozornění: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Nastavte zpoždění před zobrazením ikony výstrahy %s na obrazovce pro pozdní prvek. Delays_MAIN_DELAY_ACTIONS_TODO=Plánované události (události agendy) nebyly dokončeny Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekt nebyl uzavřen včas @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Vynutili jste nový překlad překladového klíče TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=Musíte povolit alespoň jeden modul +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Třída %s nebyla nalezena v PHP cestě YesInSummer=Ano v létě OnlyFollowingModulesAreOpenedToExternalUsers=Poznámka: externí uživatelé mají k dispozici pouze následující moduly (bez ohledu na oprávnění takových uživatelů) a pouze pokud jsou udělena oprávnění:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Vodoznak na návrh faktur (není-li prázdný) PaymentsNumberingModule=Model číslování plateb 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. ##### Proposals ##### PropalSetup=Nastavení modulu komerčních návrhů ProposalsNumberingModules=Modely číslování komerčních nabídek @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Instalace nebo sestavení externího modulu z aplikace HighlightLinesOnMouseHover=Zvýrazněte řádky tabulky, když pohyb myší projde HighlightLinesColor=Zvýrazněte barvu čáry, když myš přejde (použijte "ffffff"aby nebylo zvýrazněno) HighlightLinesChecked=Zvýrazněte barvu čáry, když je zaškrtnuta (pro zvýraznění použijte "ffffff") +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Barva textu titulku stránky @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Zadejte 0 nebo 1 UnicodeCurrency=Zde zadejte mezi zarážkami, seznam čísel bytu, který představuje symbol měny. Například: pro $, zadejte [36] - pro Brazílii skutečné R $ [82,36] - za €, zadejte [8364] ColorFormat=RGB barva je ve formátu HEX, např. 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=Umístění řádku do seznamů combo SellTaxRate=Sales tax rate RecuperableOnly=Ano pro DPH "Neočekávané, ale obnovitelné" určené pro některé státy ve Francii. U všech ostatních případů udržujte hodnotu "Ne". @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Objednávky MailToSendSupplierInvoice=Faktury dodavatele MailToSendContract=Smlouvy MailToSendReception=Recepce +MailToExpenseReport=Výkazy výdajů MailToThirdparty=Subjekty MailToMember=Členové MailToUser=Uživatelé @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtr Regex pro vyčištění hodnoty (COMPANY_AQUA COMPANY_DIGITARIA_CLEAN_REGEX=Filtr Regex pro vyčištění hodnoty (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikát není povolen GDPRContact=Úředník pro ochranu údajů (DPO, ochrana dat nebo kontakt GDPR) -GDPRContactDesc=Pokud uchováváte údaje o evropských společnostech / občanech, můžete zde jmenovat kontaktní osobu, která je odpovědná za nařízení o obecné ochraně údajů +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 HelpOnTooltipDesc=Vložte zde textový nebo překladový klíč, aby se text zobrazil v popisku, když se toto pole zobrazí ve formuláři YouCanDeleteFileOnServerWith=Tento soubor můžete smazat na serveru pomocí příkazového řádku:
    %s @@ -2048,27 +2065,46 @@ 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 CollectNow=Sbírat nyní -ConfirmCloneEmailCollector=Opravdu chcete klonovat sběratel e-mailů %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=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 an agenda event. EmailCollectorConfirmCollectTitle=Potvrzení sběru e-mailu -EmailCollectorConfirmCollect=Chcete nyní spustit kolekci tohoto sběratele? +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=Žá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, 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=Výstup posledního kódu NbOfEmailsInInbox=Počet e-mailů ve zdrojovém adresáři LoadThirdPartyFromName=Načíst vyhledávání subjektem na adrese %s (pouze načíst) @@ -2082,14 +2118,14 @@ 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ů UseSearchToSelectResource=Použijte vyhledávací formulář k výběru zdroje (spíše než rozevírací seznam). DisabledResourceLinkUser=Zakázat funkci propojit prostředek s uživateli DisabledResourceLinkContact=Zakázat funkci propojit prostředek s kontakty -EnableResourceUsedInEventCheck=Povolte funkci a zkontrolujte, zda se zdroj používá v události +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Potvrďte resetování modulu OnMobileOnly=Pouze na malé obrazovce (smartphone) 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=Smazat sběratele e-mailu ConfirmDeleteEmailCollector=Opravdu chcete smazat tohoto sběratele e-mailů? RecipientEmailsWillBeReplacedWithThisValue=E-maily příjemce budou vždy nahrazeny touto hodnotou AtLeastOneDefaultBankAccountMandatory=Musí být definován alespoň 1 výchozí bankovní účet -RESTRICT_ON_IP=Povolit přístup pouze k některé hostitelské IP adrese (zástupné znaky nejsou povoleny, použijte mezeru mezi hodnotami). Prázdný znamená, že k němu mají přístup všichni hostitelé. +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=Na základě knihovny SabreDAV verze NotAPublicIp=Není veřejná IP @@ -2144,6 +2180,9 @@ 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 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. @@ -2167,7 +2206,7 @@ SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show 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 +MailToSendEventOrganization=Organizace události MailToPartnership=Partnership AGENDA_EVENT_DEFAULT_STATUS=Default event status when creating a event from the form YouShouldDisablePHPFunctions=You should disable PHP functions @@ -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= 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. + +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 +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/cs_CZ/companies.lang b/htdocs/langs/cs_CZ/companies.lang index d9f445c958c..92768a1b43b 100644 --- a/htdocs/langs/cs_CZ/companies.lang +++ b/htdocs/langs/cs_CZ/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Oblast cílových kontaktů IdThirdParty=ID subjektu IdCompany=ID společnosti IdContact=ID kontaktu +ThirdPartyAddress=Third-party address ThirdPartyContacts=Kontakty subjektu ThirdPartyContact=Kontakty/adresy subjektu Company=Společnost @@ -51,19 +52,22 @@ CivilityCode=Etický kodex RegisteredOffice=Sídlo společnosti Lastname=Příjmení Firstname=Křestní jméno +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Pracovní pozice UserTitle=Titul 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Kód dodavatele je neplatný CustomerCodeModel=Vzorový kód zákazníka SupplierCodeModel=Vzorový kód dodavatele Gencod=Čárový kód +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof id 1 ProfId2Short=Prof id 2 @@ -159,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=Ostatní ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Seznam subjektů ShowCompany=Subjekt ShowContact=Kontaktní adresa ContactsAllShort=Vše (Bez filtru) -ContactType=Typ kontaktu +ContactType=Contact role ContactForOrders=Kontakt objednávky ContactForOrdersOrShipments=Kontakt na objednávku nebo zásilku ContactForProposals=Kontakt nabídky 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/eventorganization.lang b/htdocs/langs/cs_CZ/eventorganization.lang index d3d9a2ad7ad..a0c0b966489 100644 --- a/htdocs/langs/cs_CZ/eventorganization.lang +++ b/htdocs/langs/cs_CZ/eventorganization.lang @@ -17,45 +17,46 @@ # # 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 = Organizace události +EventOrganizationDescription = Organizace událostí prostřednictvím modulu Projekt +EventOrganizationDescriptionLong= Správa organizace události (výstavy, konference, účastníci nebo řečníci, s veřejnými stránkami pro návrhy, hlasování nebo registraci). # # Menu # -EventOrganizationMenuLeft = Organized events -EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth +EventOrganizationMenuLeft = Organizované akce +EventOrganizationConferenceOrBoothMenuLeft = Konference nebo stánek -PaymentEvent=Payment of event +PaymentEvent=Platba akce # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Event Organization setup -EventOrganization=Event organization +NewRegistration=Registrace +EventOrganizationSetup=Nastavení organizace události +EventOrganization=Organizace události Settings=Nastavení 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. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Šablona e-mailu, který se odešle po obdržení návrhu konference. 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_CAT = Ve formuláři pro vytvoření/přidání účastníka omezuje seznam subjektů na subjekt v dané kategorii. 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 +EventOrganizationConfOrBooth= Konference nebo stánek ManageOrganizeEvent = Manage the organization of an event -ConferenceOrBooth = Conference Or Booth -ConferenceOrBoothTab = Conference Or Booth +ConferenceOrBooth = Konference nebo stánek +ConferenceOrBoothTab = Konference nebo stánek AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Conference Or Booth Attendee @@ -130,7 +131,7 @@ ConferenceIsNotConfirmed=Registration not available, conference is not confirmed DateMustBeBeforeThan=%s must be before %s DateMustBeAfterThan=%s must be after %s -NewSubscription=Registration +NewSubscription=Registrace 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 @@ -165,3 +166,4 @@ EmailCompanyForInvoice=Company email (for invoice, if different of attendee emai 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/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/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 132133eac1a..7723af4ffbd 100644 --- a/htdocs/langs/cs_CZ/install.lang +++ b/htdocs/langs/cs_CZ/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Maximální velikost relace je nastavena na %s. To by mělo s PHPMemoryTooLow=Maximální velikost relace je nastavena na %s bajtů. To bohužel nestačí. Zvyšte svůj parametr memory_limit ve Vašem php.ini na minimální velikost %s bajtů. Recheck=Klikněte zde pro více vypovídající test ErrorPHPDoesNotSupportSessions=Vaše instalace PHP nepodporuje relace. Tato funkce je nutná, pro správnou funkčnost Dolibarr. Zkontrolujte Vaše PHP nastavení a oprávnění v adresáři relace. -ErrorPHPDoesNotSupportGD=Tato PHP instalace nepodporuje GD grafické funkce. Žádný graf nebude k dispozici. -ErrorPHPDoesNotSupportCurl=Vaše instalace PHP nepodporuje Curl. -ErrorPHPDoesNotSupportCalendar=Vaše instalace PHP nepodporuje rozšíření kalendáře php. -ErrorPHPDoesNotSupportUTF8=Tato PHP instalace nepodporuje UTF8 funkce. Tato funkce je nutná, pro správnou funkčnost Dolibarr. Zkontrolujte Vaše PHP nastavení. -ErrorPHPDoesNotSupportIntl=Instalace PHP nepodporuje funkce Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Vaše instalace PHP nepodporuje funkce rozšířeného ladění. ErrorPHPDoesNotSupport=Vaše instalace PHP nepodporuje funkce %s. ErrorDirDoesNotExists=Adresář %s neexistuje. ErrorGoBackAndCorrectParameters=Vraťte se zpět a zkontrolujte / opravte špatné parametry. @@ -30,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..6811cae63d8 100644 --- a/htdocs/langs/cs_CZ/loan.lang +++ b/htdocs/langs/cs_CZ/loan.lang @@ -24,7 +24,7 @@ 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 diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index 6b8b2ce6f07..3c96294a8fa 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -244,6 +244,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 +345,7 @@ KiloBytes=Kilobajty MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabajtů -UserAuthor=Ceated by +UserAuthor=Vytvořil UserModif=Updated by b=b. Kb=Kb @@ -517,6 +518,7 @@ or=nebo Other=Ostatní Others=Ostatní OtherInformations=Jiná informace +Workflow=Workflow Quantity=Množství Qty=Množství ChangedBy=Změnil @@ -619,6 +621,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 +712,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 +802,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 @@ -1164,3 +1169,14 @@ 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 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/cs_CZ/members.lang b/htdocs/langs/cs_CZ/members.lang index 3849f280b6f..80249603e87 100644 --- a/htdocs/langs/cs_CZ/members.lang +++ b/htdocs/langs/cs_CZ/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Seznam členů MembersListToValid=Seznam členů návrhu (bude ověřeno) MembersListValid=Seznam platných členů @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID člena +MemberId=Member Id +MemberRef=Member Ref NewMember=Nový člen MemberType=Členské typ MemberTypeId=Členské typ id @@ -159,11 +160,11 @@ HTPasswordExport=htpassword generování souboru NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Doplňková akce při nahrávání -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=Vytvořte přímý záznam na bankovním účtu MoreActionBankViaInvoice=Vytvoření faktury a platby na bankovní účet MoreActionInvoiceOnly=Vytvořte fakturu bez zaplacení -LinkToGeneratedPages=Generujte vizitky +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Tato obrazovka umožňuje vytvářet PDF soubory s vizitkami všech vašich členů nebo konkrétního člena. DocForAllMembersCards=Vytvořit vizitky pro všechny členy DocForOneMemberCards=Vytvořit vizitky pro konkrétní člena @@ -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/cs_CZ/modulebuilder.lang b/htdocs/langs/cs_CZ/modulebuilder.lang index c33c5f1ac88..2a3a143f2d5 100644 --- a/htdocs/langs/cs_CZ/modulebuilder.lang +++ b/htdocs/langs/cs_CZ/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=Zadejte název modulu/aplikace pro vytvoření bez mezer. Použijte velká slova k oddělení slov (například: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Zadejte název objektu, který chcete vytvořit, bez mezer. Použijte velká písmena pro oddělení slov (například: MyObject, Student, Teacher ...). Bude vygenerován soubor třídy CRUD, ale také soubor API, stránky pro zápis / přidání / úpravy / odstranění objektů a souborů SQL. +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=Cesta, kde jsou moduly generovány/editovány (první adresář pro externí moduly definované v %s): %s ModuleBuilderDesc3=Generované / upravitelné moduly nalezené: %s ModuleBuilderDesc4=Modul je detekován jako "upravitelný", když soubor %s existuje v kořenovém adresáři modulu NewModule=Nový modul NewObjectInModulebuilder=Nový objekt +NewDictionary=New dictionary ModuleKey=Klávesa modulu ObjectKey=Klíč objektu +DicKey=Dictionary key ModuleInitialized=Modul byl inicializován FilesForObjectInitialized=Soubory pro nový objekt '%s' byly inicializovány FilesForObjectUpdated=Soubory pro aktualizaci objektu '%s' (soubory .sql a soubor .class.php) @@ -52,7 +55,7 @@ LanguageFile=Soubor pro jazyk ObjectProperties=Vlastnosti objektu ConfirmDeleteProperty=Opravdu chcete odstranit vlastnost %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 = Nastavte databázi na hodnotu NULL. -1 = Povolit hodnoty null a hodnotu síly na hodnotu NULL, pokud je prázdná ('' nebo 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=Používá se pro "vyhledávání všech" DatabaseIndex=Databázový index FileAlreadyExists=Soubor %s již existuje @@ -94,7 +97,7 @@ LanguageDefDesc=Do těchto souborů zadejte všechny klíče a překlad pro kaž MenusDefDesc=Zde definujte nabídky poskytované vaším modulem DictionariesDefDesc=Zde definujte slovníky poskytované vaším modulem PermissionsDefDesc=Zde definujte nová oprávnění poskytovaná vaším modulem -MenusDefDescTooltip=Nabídky poskytované modulem / aplikací jsou definovány v menu $ this-> do souboru deskriptoru modulu. Tento soubor můžete upravit ručně nebo použít vložený editor.

    Poznámka: Po definování (a opětovném aktivaci modulu) jsou menu zobrazena také v editoru menu, který je k dispozici administrátorům na %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=Slovníky poskytované vaším modulem / aplikací jsou definovány do pole $ this-> slovníky do souboru deskriptoru modulu. Tento soubor můžete upravit ručně nebo použít zabudovaný editor.

    Poznámka: Jakmile je definován (a modul je znovu aktivován), jsou v oblasti nastavení také viditelné slovníky pro administrátorské uživatele na %s. PermissionsDefDescTooltip=Oprávnění poskytnutá vaším modulem / aplikací jsou definována do pole $ this-> práva do souboru deskriptoru modulu. Tento soubor můžete upravit ručně nebo použít vložený editor.

    Poznámka: Po definování (a opětovném aktivaci modulu) jsou oprávnění viditelná ve výchozím nastavení oprávnění %s. HooksDefDesc=Definujte v module_parts ['hooks'] vlastnost, v deskriptoru modulu, kontext háčků, které chcete spravovat (seznam kontextů lze nalézt při hledání na ' initHooks (' v jádrovém kódu)
    Editovat soubor háku přidáte kód vašich háknutých funkcí (hákovatelné funkce lze nalézt při hledání na ' executeHooks ' v jádrovém kódu). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destroy table if empty) TableDoesNotExists=Tabulka %s neexistuje TableDropped=Tabulka %s byla smazána InitStructureFromExistingTable=Vytvořte řetězec struktury pole existující tabulky -UseAboutPage=Zakažte stránku +UseAboutPage=Do not generate the About page UseDocFolder=Zakázat složku dokumentace UseSpecificReadme=Použijte konkrétní ReadMe ContentOfREADMECustomized=Poznámka: Obsah souboru README.md byl nahrazen konkrétní hodnotou definovanou v nastavení modulu ModuleBuilder. @@ -127,9 +130,9 @@ 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=Odkaz na objekt musí být generován automaticky -IncludeRefGenerationHelp=Zaškrtněte toto, pokud chcete zahrnout kód pro automatické generování reference -IncludeDocGeneration=Chci z objektu vygenerovat nějaké dokumenty +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=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 KeyForTooltip=Klíč pro popis @@ -138,10 +141,15 @@ CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Nelze upravovat ForeignKey=Cizí klíč -TypeOfFieldsHelp=Typ polí:
    varchar (99), dvojitý (24,8), reálný, text, html, datetime, timestamp, celé číslo, celé číslo: ClassName: relativní cesta / do / classfile.class.php [: 1 [: filter]] ('1' znamená, že přidáme tlačítko + za kombajn pro vytvoření záznamu, 'filter' může být 'status = 1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)) +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=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=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=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. 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 b9baa429d2f..d0657a03dde 100644 --- a/htdocs/langs/cs_CZ/other.lang +++ b/htdocs/langs/cs_CZ/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... nebo vytvořit vlastní profil
    (manuální vý DemoFundation=Spravovat nadaci, nebo neziskovou organizaci a její členy DemoFundation2=Správa členů a bankovních účtů nadace nebo neziskové organizace DemoCompanyServiceOnly=Správa pouze prodejní činnosti malé firmy nebo nadace -DemoCompanyShopWithCashDesk=Správa obchodu s pokladnou, e-shopu nebo obchodní činnost +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop prodávající výrobky přes POS - Point Of Sales DemoCompanyManufacturing=Společnost vyrábějící produkty DemoCompanyAll=Správa malé nebo střední firmy s více činnostmi (všechny hlavní moduly) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zavřít +Autofill = Autofill diff --git a/htdocs/langs/cs_CZ/projects.lang b/htdocs/langs/cs_CZ/projects.lang index c8b1ec2f289..d175d94ba51 100644 --- a/htdocs/langs/cs_CZ/projects.lang +++ b/htdocs/langs/cs_CZ/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Označení projektu ProjectsArea=Oblast projektů ProjectStatus=Stav projektu SharedProject=Všichni -PrivateProject=Kontakty projektu +PrivateProject=Assigned contacts ProjectsImContactFor=Projekty, pro které jsem výslovně kontakt AllAllowedProjects=Celý projekt mohu číst (moje + veřejnost) AllProjects=Všechny projekty @@ -190,6 +190,7 @@ PlannedWorkload=Plánované vytížení PlannedWorkloadShort=Pracovní zátěž ProjectReferers=Související zboží ProjectMustBeValidatedFirst=Projekt musí být nejdříve ověřen +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Přiřaďte uživatelský zdroj jako kontakt projektu a přidělte čas InputPerDay=Vstup za den InputPerWeek=Vstup za týden @@ -287,3 +288,9 @@ 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=Datum ukončení nemůže být před datem zahájení +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 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 c86456f7618..5994bc6752a 100644 --- a/htdocs/langs/cs_CZ/ticket.lang +++ b/htdocs/langs/cs_CZ/ticket.lang @@ -90,10 +90,10 @@ 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=E-mailová zpráva od uživatele -TicketEmailNotificationFromHelp=Použije se jako odpověď na lístek -TicketEmailNotificationTo=E-mailová upozornění na -TicketEmailNotificationToHelp=Odeslat e-mailová upozornění na tuto adresu. +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 TicketNewEmailBodyLabel=Textová zpráva odeslaná po vytvoření vstupenky TicketNewEmailBodyHelp=Zde zadaný text bude vložen do e-mailu s potvrzením vytvoření nové vstupenky z veřejného rozhraní. Informace o konzultaci s letenkou jsou automaticky přidány. TicketParamPublicInterface=Nastavení veřejného rozhraní @@ -136,6 +136,18 @@ TicketsPublicNotificationNewMessage=Send email(s) when a new message/comment is TicketsPublicNotificationNewMessageHelp=Odeslat e-mail(y) při přidání nové zprávy z veřejného rozhraní (přiřazenému uživateli nebo e-mailu s oznámením do (aktualizace) a/nebo e-mailu s oznámením do) TicketPublicNotificationNewMessageDefaultEmail=E-mail s oznámeními (aktualizace) 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 # @@ -151,6 +163,8 @@ OrderByDateAsc=Seřadit podle vzestupného data OrderByDateDesc=Seřadit podle sestupného data ShowAsConversation=Zobrazit jako seznam konverzací MessageListViewType=Zobrazit jako seznam tabulek +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Příjemce je prázdný. Neposíla TicketGoIntoContactTab=Přejděte na kartu Kontakty a vyberte je TicketMessageMailIntro=Úvod TicketMessageMailIntroHelp=Tento text bude přidán pouze na začátek e-mailu a nebude uložen. -TicketMessageMailIntroLabelAdmin=Úvod do zprávy při odesílání e-mailu -TicketMessageMailIntroText=Ahoj,
    Na lístek, který kontaktujete, byla odeslána nová odpověď. Zde je zpráva:
    -TicketMessageMailIntroHelpAdmin=Tento text bude vložen před text odpovědi na lístek +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=

    S pozdravem,

    -

    +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í. TicketMessageHelp=Pouze tento text bude uložen do seznamu zpráv na kartě lístků. @@ -238,9 +252,16 @@ TicketChangeStatus=Změnit stav TicketConfirmChangeStatus=Potvrďte změnu stavu: %s? TicketLogStatusChanged=Stav změněn: %s až %s TicketNotNotifyTiersAtCreate=Neinformovat společnost na vytvoření +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Nepřečtený TicketNotCreatedFromPublicInterface=Není dostupný. Vstupenka nebyla vytvořena z veřejného rozhraní. ErrorTicketRefRequired=Je vyžadován referenční název vstupenky +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,8 +289,9 @@ TicketNewEmailBody=Jedná se o automatický e-mail, který potvrzuje, že jste z TicketNewEmailBodyCustomer=Jedná se o automatický e-mail, který potvrzuje, že byl do vašeho účtu právě vytvořen nový lístek. TicketNewEmailBodyInfosTicket=Informace pro sledování lístku TicketNewEmailBodyInfosTrackId=Číslo sledování jízdenek: %s -TicketNewEmailBodyInfosTrackUrl=Průběh lístku si můžete prohlédnout kliknutím na výše uvedený odkaz. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Průběh vstupenky můžete zobrazit v konkrétním rozhraní klepnutím na následující odkaz +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. @@ -291,6 +313,10 @@ NewUser=Nový uživatel NumberOfTicketsByMonth=Počet vstupenek za měsíc NbOfTickets=Počet vstupenek # 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=Vstupenka %s aktualizována TicketNotificationEmailBody=Toto je automatická zpráva, která vás upozorní, že právě byla aktualizována vstupenka %s TicketNotificationRecipient=Příjemce oznámení diff --git a/htdocs/langs/cs_CZ/users.lang b/htdocs/langs/cs_CZ/users.lang index 1af03130234..ac1ac080612 100644 --- a/htdocs/langs/cs_CZ/users.lang +++ b/htdocs/langs/cs_CZ/users.lang @@ -114,7 +114,7 @@ UserLogoff=odhlášení uživatele UserLogged=přihlášený uživatel DateOfEmployment=Datum zaměstnání DateEmployment=Zaměstnanost -DateEmploymentstart=Datum zahájení zaměstnání +DateEmploymentStart=Datum zahájení zaměstnání DateEmploymentEnd=Datum ukončení zaměstnání RangeOfLoginValidity=Access validity date range CantDisableYourself=Nelze zakázat vlastní uživatelský záznam @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Ve výchozím nastavení je validátor nadřazen UserPersonalEmail=Osobní email UserPersonalMobile=Osobní mobilní telefon WarningNotLangOfInterface=Varování, toto je hlavní jazyk, kterým uživatel hovoří, nikoli jazyk rozhraní, které se rozhodl zobrazit. Chcete-li změnit jazyk rozhraní viditelný tímto uživatelem, přejděte na kartu %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/cy_GB/accountancy.lang b/htdocs/langs/cy_GB/accountancy.lang new file mode 100644 index 00000000000..7ee1fd821b4 --- /dev/null +++ b/htdocs/langs/cy_GB/accountancy.lang @@ -0,0 +1,460 @@ +# Dolibarr language file - en_US - Accountancy (Double entries) +Accountancy=Cyfrifyddiaeth +Accounting=Cyfrifo +ACCOUNTING_EXPORT_SEPARATORCSV=Gwahanydd colofn ar gyfer ffeil allforio +ACCOUNTING_EXPORT_DATE=Fformat dyddiad ar gyfer ffeil allforio +ACCOUNTING_EXPORT_PIECE=Allforio nifer y darn +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Allforio gyda chyfrif byd-eang +ACCOUNTING_EXPORT_LABEL=Label allforio +ACCOUNTING_EXPORT_AMOUNT=Swm allforio +ACCOUNTING_EXPORT_DEVISE=Allforio arian cyfred +Selectformat=Dewiswch y fformat ar gyfer y ffeil +ACCOUNTING_EXPORT_FORMAT=Dewiswch y fformat ar gyfer y ffeil +ACCOUNTING_EXPORT_ENDLINE=Dewiswch y math dychwelyd cerbyd +ACCOUNTING_EXPORT_PREFIX_SPEC=Nodwch y rhagddodiad ar gyfer enw'r ffeil +ThisService=Y gwasanaeth hwn +ThisProduct=Mae'r cynnyrch hwn +DefaultForService=Diofyn ar gyfer gwasanaeth +DefaultForProduct=Diofyn ar gyfer cynnyrch +ProductForThisThirdparty=Cynnyrch ar gyfer y trydydd parti hwn +ServiceForThisThirdparty=Gwasanaeth ar gyfer y trydydd parti hwn +CantSuggest=Methu awgrymu +AccountancySetupDoneFromAccountancyMenu=Mae'r rhan fwyaf o sefydlu'r cyfrifyddiaeth yn cael ei wneud o'r ddewislen %s +ConfigAccountingExpert=Ffurfwedd cyfrifo'r modiwl (cofnod dwbl) +Journalization=Newyddiaduraeth +Journals=Dyddlyfrau +JournalFinancial=Cylchgronau ariannol +BackToChartofaccounts=Dychwelyd siart cyfrifon +Chartofaccounts=Siart o gyfrifon +ChartOfSubaccounts=Siart o gyfrifon unigol +ChartOfIndividualAccountsOfSubsidiaryLedger=Siart o gyfrifon unigol yr is-gyfriflyfr +CurrentDedicatedAccountingAccount=Cyfrif pwrpasol cyfredol +AssignDedicatedAccountingAccount=Cyfrif newydd i'w aseinio +InvoiceLabel=Label anfoneb +OverviewOfAmountOfLinesNotBound=Trosolwg o nifer y llinellau nad ydynt wedi'u rhwymo i gyfrif cyfrifyddu +OverviewOfAmountOfLinesBound=Trosolwg o nifer y llinellau sydd eisoes wedi'u rhwymo i gyfrif cyfrifyddu +OtherInfo=Gwybodaeth arall +DeleteCptCategory=Dileu cyfrif cyfrifo o'r grŵp +ConfirmDeleteCptCategory=Ydych chi'n siŵr eich bod am ddileu'r cyfrif cyfrifyddu hwn o'r grŵp cyfrifon cyfrifyddu? +JournalizationInLedgerStatus=Statws newyddiaduraeth +AlreadyInGeneralLedger=Eisoes wedi'i drosglwyddo i gyfnodolion cyfrifyddu a chyfriflyfr +NotYetInGeneralLedger=Heb ei drosglwyddo eto i gyfnodolion accouting a chyfriflyfr +GroupIsEmptyCheckSetup=Mae'r grŵp yn wag, gwiriwch setup y grŵp cyfrifo personol +DetailByAccount=Dangos manylion fesul cyfrif +AccountWithNonZeroValues=Cyfrifon gyda gwerthoedd heb fod yn sero +ListOfAccounts=Rhestr o gyfrifon +CountriesInEEC=Gwledydd yn EEC +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=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 + +MainAccountForCustomersNotDefined=Prif gyfrif cyfrifo ar gyfer cwsmeriaid heb ei ddiffinio yn y gosodiad +MainAccountForSuppliersNotDefined=Prif gyfrif cyfrifo ar gyfer gwerthwyr heb ei ddiffinio yn y gosodiad +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 + +AccountancyArea=Maes cyfrifo +AccountancyAreaDescIntro=Gwneir defnydd o'r modiwl cyfrifeg mewn sawl cam: +AccountancyAreaDescActionOnce=Mae'r camau gweithredu canlynol fel arfer yn cael eu cyflawni unwaith yn unig, neu unwaith y flwyddyn ... +AccountancyAreaDescActionOnceBis=Dylid cymryd y camau nesaf i arbed amser i chi yn y dyfodol trwy awgrymu'r cyfrif cyfrifo rhagosodedig cywir yn awtomatig wrth drosglwyddo data mewn cyfrifeg +AccountancyAreaDescActionFreq=Mae'r camau gweithredu canlynol fel arfer yn cael eu gweithredu bob mis, wythnos neu ddiwrnod ar gyfer cwmnïau mawr iawn ... + +AccountancyAreaDescJournalSetup=CAM %s: Gwiriwch gynnwys eich rhestr dyddlyfr o'r ddewislen %s +AccountancyAreaDescChartModel=CAM %s: Gwiriwch fod model o siart cyfrif yn bodoli neu crëwch un o'r ddewislen %s +AccountancyAreaDescChart=CAM %s: Dewiswch a|neu cwblhewch eich siart cyfrif o'r ddewislen %s + +AccountancyAreaDescVat=CAM %s: Diffinio cyfrifon cyfrifo ar gyfer pob Cyfradd TAW. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescDefault=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescExpenseReport=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig ar gyfer pob math o adroddiad Treuliau. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescSal=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig ar gyfer talu cyflogau. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescContrib=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig ar gyfer Trethi (treuliau arbennig). Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescDonation=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig ar gyfer rhoddion. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescSubscription=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig ar gyfer tanysgrifiad aelodau. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescMisc=STEP %s: Diffinio cyfrif rhagosodedig gorfodol a chyfrifon cyfrifyddu diofyn ar gyfer trafodion amrywiol. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescLoan=CAM %s: Diffinio cyfrifon cyfrifo rhagosodedig ar gyfer benthyciadau. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescBank=CAM %s: Diffinio cyfrifon cyfrifyddu a chod dyddlyfr ar gyfer pob cyfrif banc ac ariannol. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescProd=CAM %s: Diffinio cyfrifon cyfrifyddu ar eich Cynhyrchion/Gwasanaethau. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. + +AccountancyAreaDescBind=CAM %s: Gwiriwch y rhwymiad rhwng llinellau %s presennol a'r cyfrif cyfrifo yn cael ei wneud, felly bydd y cais yn gallu journalize trafodion yn y Cyfriflyfr mewn un clic. Cwblhau rhwymiadau coll. Ar gyfer hyn, defnyddiwch y cofnod dewislen %s. +AccountancyAreaDescWriteRecords=CAM %s: Ysgrifennu trafodion yn y Cyfriflyfr. Ar gyfer hyn, ewch i'r ddewislen %s , a chliciwch i mewn i'r botwm %s a0a65d071 6fc. +AccountancyAreaDescAnalyze=CAM %s: Ychwanegu neu olygu trafodion presennol a chynhyrchu adroddiadau ac allforion. + +AccountancyAreaDescClosePeriod=CAM %s: Cyfnod cau fel na allwn wneud addasiad yn y dyfodol. + +TheJournalCodeIsNotDefinedOnSomeBankAccount=Nid yw cam gosod gorfodol wedi'i gwblhau (dyddlyfr cod cyfrifeg heb ei ddiffinio ar gyfer pob cyfrif banc) +Selectchartofaccounts=Dewiswch siart gweithredol o gyfrifon +ChangeAndLoad=Newid a llwytho +Addanaccount=Ychwanegu cyfrif cyfrifo +AccountAccounting=Cyfrif cyfrif +AccountAccountingShort=Cyfrif +SubledgerAccount=Cyfrif subledger +SubledgerAccountLabel=Label cyfrif Subledger +ShowAccountingAccount=Dangos cyfrif cyfrifeg +ShowAccountingJournal=Dangos dyddlyfr cyfrifo +ShowAccountingAccountInLedger=Dangos cyfrif cyfrifeg yn y cyfriflyfr +ShowAccountingAccountInJournals=Dangos cyfrif cyfrifeg mewn cyfnodolion +AccountAccountingSuggest=Awgrymu cyfrif cyfrifo +MenuDefaultAccounts=Cyfrifon rhagosodedig +MenuBankAccounts=Cyfrifon banc +MenuVatAccounts=Cyfrifon TAW +MenuTaxAccounts=Cyfrifon treth +MenuExpenseReportAccounts=Cyfrifon adroddiadau treuliau +MenuLoanAccounts=Cyfrifon benthyciad +MenuProductsAccounts=Cyfrifon cynnyrch +MenuClosureAccounts=Cyfrifon cau +MenuAccountancyClosure=Cau +MenuAccountancyValidationMovements=Dilysu symudiadau +ProductsBinding=Cyfrifon cynhyrchion +TransferInAccounting=Trosglwyddo mewn cyfrifeg +RegistrationInAccounting=Cofnodi mewn cyfrifeg +Binding=Rhwymo i gyfrifon +CustomersVentilation=Rhwymo anfoneb cwsmeriaid +SuppliersVentilation=Anfoneb y gwerthwr yn rhwymo +ExpenseReportsVentilation=Rhwymo adroddiad treuliau +CreateMvts=Creu trafodiad newydd +UpdateMvts=Addasu trafodiad +ValidTransaction=Dilysu trafodiad +WriteBookKeeping=Cofnodi trafodion mewn cyfrifeg +Bookkeeping=Cyfriflyfr +BookkeepingSubAccount=Subledger +AccountBalance=Balans cyfrif +ObjectsRef=Ffynhonnell gwrthrych cyf +CAHTF=Cyfanswm y gwerthwr pryniant cyn treth +TotalExpenseReport=Adroddiad cyfanswm gwariant +InvoiceLines=Llinellau anfonebau i'w rhwymo +InvoiceLinesDone=Llinellau anfonebau wedi'u rhwymo +ExpenseReportLines=Llinellau adroddiadau gwariant i'w rhwymo +ExpenseReportLinesDone=Llinellau rhwymedig o adroddiadau treuliau +IntoAccount=Llinell rwymo gyda'r cyfrif cyfrifo +TotalForAccount=Cyfanswm cyfrif cyfrifeg + + +Ventilate=Rhwymo +LineId=Id llinell +Processing=Prosesu +EndProcessing=Proses wedi'i therfynu. +SelectedLines=Llinellau dethol +Lineofinvoice=Llinell anfoneb +LineOfExpenseReport=Llinell adroddiad gwariant +NoAccountSelected=Dim cyfrif cyfrifo wedi'i ddewis +VentilatedinAccount=Wedi'i rwymo'n llwyddiannus i'r cyfrif cyfrifyddu +NotVentilatedinAccount=Heb ei rwymo i'r cyfrif cyfrifo +XLineSuccessfullyBinded=%s cynhyrchion/gwasanaethau wedi'u rhwymo'n llwyddiannus i gyfrif cyfrifyddu +XLineFailedToBeBinded=%s nid oedd cynhyrchion/gwasanaethau wedi'u rhwymo i unrhyw gyfrif cyfrifyddu + +ACCOUNTING_LIMIT_LIST_VENTILATION=Uchafswm nifer y llinellau ar y rhestr a'r dudalen rhwymo (argymhellir: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Dechrau didoli'r dudalen "Rhwymo i'w wneud" yn ôl yr elfennau mwyaf diweddar +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Dechrau didoli'r dudalen "Rhwymo wedi'i wneud" yn ôl yr elfennau mwyaf diweddar + +ACCOUNTING_LENGTH_DESCRIPTION=Torri'r disgrifiad o gynnyrch a gwasanaethau mewn rhestrau ar ôl x chars (Gorau = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Torri ffurflen disgrifiad cyfrif cynnyrch a gwasanaethau mewn rhestrau ar ôl x chars (Gorau = 50) +ACCOUNTING_LENGTH_GACCOUNT=Hyd y cyfrifon cyfrifyddu cyffredinol (Os gosodwch werth i 6 yma, bydd y cyfrif '706' yn ymddangos fel '706000' ar y sgrin) +ACCOUNTING_LENGTH_AACCOUNT=Hyd y cyfrifon cyfrifo trydydd parti (Os ydych yn gosod gwerth i 6 yma, bydd y cyfrif '401' yn ymddangos fel '401000' ar y sgrin) +ACCOUNTING_MANAGE_ZERO=Caniatáu i reoli nifer gwahanol o sero ar ddiwedd cyfrif cyfrifyddu. Ei angen gan rai gwledydd (fel y Swistir). Os caiff ei osod i ffwrdd (diofyn), gallwch osod y ddau baramedr canlynol i ofyn i'r rhaglen ychwanegu sero rhithwir. +BANK_DISABLE_DIRECT_INPUT=Analluogi cofnodi trafodion yn uniongyrchol yn y cyfrif banc +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=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_EXPENSEREPORT_JOURNAL=Cyfnodolyn adroddiad treuliau +ACCOUNTING_SOCIAL_JOURNAL=Cylchgrawn cymdeithasol +ACCOUNTING_HAS_NEW_JOURNAL=Mae ganddo Newyddiadur newydd + +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 +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_CUSTOMER_DEPOSIT=Cyfrif cyfrifo yn ddiofyn i gofrestru blaendal cwsmer +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=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_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) + +Doctype=Math o ddogfen +Docdate=Dyddiad +Docref=Cyfeiriad +LabelAccount=Label cyfrif +LabelOperation=Gweithrediad label +Sens=Cyfeiriad +AccountingDirectionHelp=Ar gyfer cyfrif cyfrifyddu cwsmer, defnyddiwch Gredyd i gofnodi taliad a gawsoch
    Ar gyfer cyfrif cyfrifyddu cyflenwr, defnyddiwch Debyd i gofnodi taliad a wnaethoch +LetteringCode=Cod llythrennu +Lettering=Llythyrenu +Codejournal=Dyddlyfr +JournalLabel=Label cyfnodolyn +NumPiece=Rhif y darn +TransactionNumShort=Rhif. trafodiad +AccountingCategory=Grŵp personol +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. +ByAccounts=Trwy gyfrifon +ByPredefinedAccountGroups=Gan grwpiau wedi'u diffinio ymlaen llaw +ByPersonalizedAccountGroups=Gan grwpiau personol +ByYear=Erbyn blwyddyn +NotMatch=Heb ei Gosod +DeleteMvt=Dileu rhai llinellau o gyfrifo +DelMonth=Mis i ddileu +DelYear=Blwyddyn i ddileu +DelJournal=Dyddlyfr i ddileu +ConfirmDeleteMvt=Bydd hyn yn dileu pob llinell mewn cyfrifyddiaeth am y flwyddyn/mis a/neu ar gyfer dyddlyfr penodol (Mae angen o leiaf un maen prawf). Bydd yn rhaid i chi ailddefnyddio'r nodwedd '%s' i gael y cofnod wedi'i ddileu yn ôl yn y cyfriflyfr. +ConfirmDeleteMvtPartial=Bydd hyn yn dileu'r trafodiad o'r cyfrifeg (bydd pob llinell sy'n ymwneud â'r un trafodiad yn cael ei dileu) +FinanceJournal=Cylchgrawn cyllid +ExpenseReportsJournal=Cyfnodolyn adroddiadau treuliau +DescFinanceJournal=Cyfnodolyn cyllid gan gynnwys pob math o daliadau trwy gyfrif banc +DescJournalOnlyBindedVisible=Golwg ar gofnod yw hwn sydd wedi'i rwymo i gyfrif cyfrifyddu a gellir ei gofnodi yn y Cyfnodolion a'r Cyfriflyfr. +VATAccountNotDefined=Cyfrif ar gyfer TAW heb ei ddiffinio +ThirdpartyAccountNotDefined=Cyfrif ar gyfer trydydd parti heb ei ddiffinio +ProductAccountNotDefined=Nid yw'r cyfrif am y cynnyrch wedi'i ddiffinio +FeeAccountNotDefined=Cyfrif am ffi heb ei ddiffinio +BankAccountNotDefined=Cyfrif ar gyfer banc heb ei ddiffinio +CustomerInvoicePayment=Talu cwsmer anfoneb +ThirdPartyAccount=Cyfrif trydydd parti +NewAccountingMvt=Trafodiad newydd +NumMvts=Nifer y trafodiad +ListeMvts=Rhestr o symudiadau +ErrorDebitCredit=Ni all Debyd a Chredyd fod â gwerth ar yr un pryd +AddCompteFromBK=Ychwanegu cyfrifon cyfrifo i'r grŵp +ReportThirdParty=Rhestru cyfrif trydydd parti +DescThirdPartyReport=Ymgynghorwch yma â'r rhestr o gwsmeriaid a gwerthwyr trydydd parti a'u cyfrifon cyfrifyddu +ListAccounts=Rhestr o'r cyfrifon cyfrifo +UnknownAccountForThirdparty=Cyfrif trydydd parti anhysbys. Byddwn yn defnyddio %s +UnknownAccountForThirdpartyBlocking=Cyfrif trydydd parti anhysbys. Gwall blocio +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Cyfrif subledger heb ei ddiffinio neu trydydd parti neu ddefnyddiwr yn anhysbys. Byddwn yn defnyddio %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Trydydd parti anhysbys ac is-gyfriflyfr heb ei ddiffinio ar y taliad. Byddwn yn cadw gwerth y cyfrif subledger yn wag. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Cyfrif subledger heb ei ddiffinio neu trydydd parti neu ddefnyddiwr yn anhysbys. Gwall blocio. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Cyfrif trydydd parti anhysbys a chyfrif aros heb eu diffinio. Gwall blocio +PaymentsNotLinkedToProduct=Taliad ddim yn gysylltiedig ag unrhyw gynnyrch / gwasanaeth +OpeningBalance=Balans agoriadol +ShowOpeningBalance=Dangos balans agoriadol +HideOpeningBalance=Cuddio balans agoriadol +ShowSubtotalByGroup=Dangos is-gyfanswm yn ôl lefel + +Pcgtype=Grŵp o gyfrifon +PcgtypeDesc=Defnyddir grŵp cyfrifon fel meini prawf 'hidlo' a 'grwpio' rhagnodedig ar gyfer rhai adroddiadau cyfrifyddu. Er enghraifft, defnyddir 'INCOME' neu 'GREUL' fel grwpiau ar gyfer cyfrifon cyfrifon cynhyrchion i adeiladu'r adroddiad treuliau/incwm. + +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: +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) +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 +DescVentilExpenseReportMore=Os ydych chi'n gosod cyfrif cyfrifyddu ar y math o linellau adrodd am draul, bydd y cais yn gallu gwneud yr holl rwymiad rhwng eich llinellau adroddiad treuliau a chyfrif cyfrifo'ch siart cyfrifon, dim ond mewn un clic gyda'r botwm "%s" . Os na osodwyd y cyfrif ar y geiriadur ffioedd neu os oes gennych rai llinellau heb eu rhwymo i unrhyw gyfrif o hyd, bydd yn rhaid i chi wneud rhwymiad â llaw o'r ddewislen " %s ". +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 +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... +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 +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 +ChangeBinding=Newid y rhwymiad +Accounted=Cyfrifir yn y cyfriflyfr +NotYetAccounted=Heb ei drosglwyddo eto i gyfrifeg +ShowTutorial=Dangos Tiwtorial +NotReconciled=Heb ei gymodi +WarningRecordWithoutSubledgerAreExcluded=Rhybudd, mae pob llinell heb gyfrif subledger diffiniedig yn cael eu hidlo a'u heithrio o'r olwg hon +AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts + +## Admin +BindingOptions=Opsiynau rhwymo +ApplyMassCategories=Cymhwyso categorïau màs +AddAccountFromBookKeepingWithNoCategories=Nid yw'r cyfrif sydd ar gael eto yn y grŵp personol +CategoryDeleted=Mae categori'r cyfrif cyfrifyddu wedi'i ddileu +AccountingJournals=Cylchgronau cyfrifeg +AccountingJournal=Cyfnodolyn cyfrifo +NewAccountingJournal=Cylchgrawn cyfrifyddu newydd +ShowAccountingJournal=Dangos dyddlyfr cyfrifo +NatureOfJournal=Natur y Newyddiadur +AccountingJournalType1=Gweithrediadau amrywiol +AccountingJournalType2=Gwerthiant +AccountingJournalType3=Pryniannau +AccountingJournalType4=Banc +AccountingJournalType5=Adroddiad treuliau +AccountingJournalType8=Stocrestr +AccountingJournalType9=Wedi-newydd +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 +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) + +## Export +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=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 +Modelcsv=Model allforio +Selectmodelcsv=Dewiswch fodel allforio +Modelcsv_normal=Allforio clasurol +Modelcsv_CEGID=Allforio ar gyfer CEGID Expert Comptabilité +Modelcsv_COALA=Allforio ar gyfer Sage Coala +Modelcsv_bob50=Allforio ar gyfer Sage BOB 50 +Modelcsv_ciel=Allforio ar gyfer Sage50, Ciel Compta neu Compta Evo. (Fformat XIMPORT) +Modelcsv_quadratus=Allforio ar gyfer Quadratus QuadraCompta +Modelcsv_ebp=Allforio ar gyfer PAB +Modelcsv_cogilog=Allforio ar gyfer Cogilog +Modelcsv_agiris=Allforio ar gyfer Agiris Isacompta +Modelcsv_LDCompta=Allforio ar gyfer LD Compta (v9) (Prawf) +Modelcsv_LDCompta10=Allforio ar gyfer LD Compta (v10 ac uwch) +Modelcsv_openconcerto=Allforio ar gyfer OpenConcerto (Prawf) +Modelcsv_configurable=Allforio CSV Ffurfweddadwy +Modelcsv_FEC=Allforio FEC +Modelcsv_FEC2=Allforio FEC (Gyda dyddiadau cynhyrchu ysgrifennu / dogfen wedi'i wrthdroi) +Modelcsv_Sage50_Swiss=Allforio ar gyfer Sage 50 Swistir +Modelcsv_winfic=Allforio ar gyfer Winfic - eWinfic - WinSis Compta +Modelcsv_Gestinumv3=Allforio ar gyfer Gestinum (v3) +Modelcsv_Gestinumv5=Allforio ar gyfer Gestinum (v5) +Modelcsv_charlemagne=Allforio ar gyfer Aplim Charlemagne +ChartofaccountsId=Id siart o gyfrifon + +## Tools - Init accounting account on product / service +InitAccountancy=Init cyfrifeg +InitAccountancyDesc=Gellir defnyddio'r dudalen hon i gychwyn cyfrif cyfrifyddu ar gynhyrchion a gwasanaethau nad oes ganddynt gyfrif cyfrifyddu wedi'i ddiffinio ar gyfer gwerthiannau a phryniannau. +DefaultBindingDesc=Gellir defnyddio'r dudalen hon i osod cyfrif rhagosodedig i'w ddefnyddio i gysylltu cofnod trafodion am gyflogau talu, rhoddion, trethi a thaw pan nad oedd cyfrif cyfrifyddu penodol eisoes wedi'i osod. +DefaultClosureDesc=Gellir defnyddio'r dudalen hon i osod paramedrau a ddefnyddir ar gyfer cau cyfrifon. +Options=Opsiynau +OptionModeProductSell=Modd gwerthu +OptionModeProductSellIntra=Gwerthiannau modd allforio yn EEC +OptionModeProductSellExport=Gwerthiannau modd allforio mewn gwledydd eraill +OptionModeProductBuy=Prynu modd +OptionModeProductBuyIntra=Prynu modd wedi'i fewnforio i EEC +OptionModeProductBuyExport=Modd a brynwyd wedi'i fewnforio o wledydd eraill +OptionModeProductSellDesc=Dangoswch yr holl gynhyrchion sydd â chyfrif cyfrifo ar gyfer gwerthiannau. +OptionModeProductSellIntraDesc=Dangoswch yr holl gynhyrchion sydd â chyfrif cyfrifo ar gyfer gwerthiannau yn EEC. +OptionModeProductSellExportDesc=Dangoswch yr holl gynhyrchion sydd â chyfrif cyfrifo ar gyfer gwerthiannau tramor eraill. +OptionModeProductBuyDesc=Dangoswch yr holl gynhyrchion sydd â chyfrif cyfrifo ar gyfer pryniannau. +OptionModeProductBuyIntraDesc=Dangos pob cynnyrch gyda chyfrif cyfrif ar gyfer pryniannau yn EEC. +OptionModeProductBuyExportDesc=Dangoswch yr holl gynhyrchion sydd â chyfrif cyfrifo ar gyfer pryniannau tramor eraill. +CleanFixHistory=Tynnwch y cod cyfrifo o linellau nad ydynt yn bodoli i'r siartiau cyfrif +CleanHistory=Ailosod yr holl rwymiadau ar gyfer y flwyddyn a ddewiswyd +PredefinedGroups=Grwpiau wedi'u diffinio ymlaen llaw +WithoutValidAccount=Heb gyfrif pwrpasol dilys +WithValidAccount=Gyda chyfrif pwrpasol dilys +ValueNotIntoChartOfAccount=Nid yw gwerth y cyfrif hwn yn bodoli yn y siart cyfrifon +AccountRemovedFromGroup=Cafodd y cyfrif ei dynnu o'r grŵp +SaleLocal=Gwerthiant lleol +SaleExport=Gwerthu allforio +SaleEEC=Gwerthu yn EEC +SaleEECWithVAT=Gwerthiant mewn EEC gyda TAW nid nwl, felly mae'n debyg NID yw hwn yn werthiant mewngymunedol a'r cyfrif a awgrymir yw'r cyfrif cynnyrch safonol. +SaleEECWithoutVATNumber=Gwerthu mewn EEC heb TAW ond nid yw ID TAW trydydd parti wedi'i ddiffinio. Rydym wrth gefn ar y cyfrif cynnyrch ar gyfer gwerthiannau safonol. Gallwch drwsio ID TAW trydydd parti neu gyfrif y cynnyrch os oes angen. +ForbiddenTransactionAlreadyExported=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu a/neu ei allforio. +ForbiddenTransactionAlreadyValidated=Wedi'i wahardd: Mae'r trafodiad wedi'i ddilysu. +## Dictionary +Range=Ystod y cyfrif cyfrifo +Calculated=Wedi'i gyfrifo +Formula=Fformiwla + +## 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=Ni wnaethpwyd rhai camau gosod gorfodol, cwblhewch nhw +ErrorNoAccountingCategoryForThisCountry=Dim grŵp cyfrif cyfrifo ar gael ar gyfer y wlad %s (Gweler Cartref - Gosod - Geiriaduron) +ErrorInvoiceContainsLinesNotYetBounded=Rydych chi'n ceisio newyddiadura rhai llinellau o'r anfoneb %s , ond nid yw rhai llinellau eraill wedi'u cyfyngu i'r cyfrif cyfrifyddu eto. Gwrthodir dyddiaduroli pob llinell anfoneb ar gyfer yr anfoneb hon. +ErrorInvoiceContainsLinesNotYetBoundedShort=Nid yw rhai llinellau ar anfoneb wedi'u rhwymo i'r cyfrif cyfrifyddu. +ExportNotSupported=Nid yw'r fformat allforio a osodwyd yn cael ei gefnogi i'r dudalen hon +BookeppingLineAlreayExists=Llinellau sy'n bodoli eisoes i gadw cyfrifon +NoJournalDefined=Dim cyfnodolyn wedi'i ddiffinio +Binded=Llinellau wedi eu rhwymo +ToBind=Llinellau i rwymo +UseMenuToSetBindindManualy=Llinellau heb eu rhwymo eto, defnyddiwch ddewislen %s i wneud y rhwymiad â llaw +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Mae'n ddrwg gennym nid yw'r modiwl hwn yn gydnaws â nodwedd arbrofol anfonebau sefyllfa +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 +ImportAccountingEntriesFECFormat=Cofnodion cyfrifeg - fformat FEC +FECFormatJournalCode=Dyddiadur cod (JournalCode) +FECFormatJournalLabel=Cyfnodolyn label (JournalLib) +FECFormatEntryNum=Rhif darn (EcritureNum) +FECFormatEntryDate=Dyddiad darn (EcritureDate) +FECFormatGeneralAccountNumber=Rhif cyfrif cyffredinol (CompNum) +FECFormatGeneralAccountLabel=Label cyfrif cyffredinol (CompteLib) +FECFormatSubledgerAccountNumber=Rhif cyfrif Subledger (CompAuxNum) +FECFormatSubledgerAccountLabel=Rhif cyfrif Subledger (CompAuxLib) +FECFormatPieceRef=Darn Cyfeirnod (PieceRef) +FECFormatPieceDate=Creu dyddiad darn (PieceDate) +FECFormatLabelOperation=Gweithrediad label (EcritureLib) +FECFormatDebit=Debyd (Debyd) +FECFormatCredit=Credyd (Credyd) +FECFormatReconcilableCode=Cod cymodi (EcritureLet) +FECFormatReconcilableDate=Dyddiad cymodi (Dyddiad Gosod) +FECFormatValidateDate=Dyddiad darn wedi'i ddilysu (ValidDate) +FECFormatMulticurrencyAmount=Swm aml-arian (Montantdevise) +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 new file mode 100644 index 00000000000..8fb094542d6 --- /dev/null +++ b/htdocs/langs/cy_GB/admin.lang @@ -0,0 +1,2281 @@ +# Dolibarr language file - Source file is en_US - admin +BoldRefAndPeriodOnPDF=Argraffu cyfeirnod a chyfnod yr eitem cynnyrch mewn PDF +BoldLabelOnPDF=Argraffu label eitem cynnyrch mewn Trwm mewn PDF +Foundation=Sylfaen +Version=Fersiwn +Publisher=Cyhoeddwr +VersionProgram=Rhaglen fersiwn +VersionLastInstall=Fersiwn gosod cychwynnol +VersionLastUpgrade=Uwchraddio fersiwn diweddaraf +VersionExperimental=Arbrofol +VersionDevelopment=Datblygiad +VersionUnknown=Anhysbys +VersionRecommanded=Argymhellir +FileCheck=Gwiriadau Cywirdeb Set Ffeiliau +FileCheckDesc=Mae'r offeryn hwn yn caniatáu ichi wirio cywirdeb ffeiliau a gosodiad eich cais, gan gymharu pob ffeil â'r un swyddogol. Efallai y bydd gwerth rhai cysonion gosod hefyd yn cael ei wirio. Gallwch ddefnyddio'r offeryn hwn i benderfynu a yw unrhyw ffeiliau wedi'u haddasu (e.e. gan haciwr). +FileIntegrityIsStrictlyConformedWithReference=Mae cywirdeb ffeiliau yn cydymffurfio'n llwyr â'r cyfeirnod. +FileIntegrityIsOkButFilesWereAdded=Mae gwiriad cywirdeb ffeiliau wedi mynd heibio, ond mae rhai ffeiliau newydd wedi'u hychwanegu. +FileIntegritySomeFilesWereRemovedOrModified=Mae'r gwiriad cywirdeb ffeiliau wedi methu. Cafodd rhai ffeiliau eu haddasu, eu dileu neu eu hychwanegu. +GlobalChecksum=Gwiriad byd-eang +MakeIntegrityAnalysisFrom=Gwneud dadansoddiad cywirdeb o ffeiliau cais o +LocalSignature=Llofnod lleol wedi'i fewnosod (llai dibynadwy) +RemoteSignature=Llofnod pell o bell (mwy dibynadwy) +FilesMissing=Ffeiliau Coll +FilesUpdated=Ffeiliau wedi'u Diweddaru +FilesModified=Ffeiliau wedi'u Haddasu +FilesAdded=Ffeiliau Ychwanegwyd +FileCheckDolibarr=Gwirio cywirdeb ffeiliau cais +AvailableOnlyOnPackagedVersions=Dim ond pan fydd y cais wedi'i osod o becyn swyddogol y mae'r ffeil leol ar gyfer gwirio cywirdeb ar gael +XmlNotFound=Uniondeb Xml Heb ddod o hyd i ffeil y cymhwysiad +SessionId=ID y sesiwn +SessionSaveHandler=Triniwr i gadw sesiynau +SessionSavePath=Lleoliad arbed sesiwn +PurgeSessions=Cael gwared ar sesiynau +ConfirmPurgeSessions=Ydych chi wir eisiau cael gwared ar bob sesiwn? Bydd hyn yn datgysylltu pob defnyddiwr (ac eithrio eich hun). +NoSessionListWithThisHandler=Nid yw triniwr sesiwn cadw sydd wedi'i ffurfweddu yn eich PHP yn caniatáu rhestru'r holl sesiynau rhedeg. +LockNewSessions=Cloi cysylltiadau newydd +ConfirmLockNewSessions=Ydych chi'n siŵr eich bod am gyfyngu ar unrhyw gysylltiad newydd â Dolibarr i chi'ch hun? Dim ond defnyddiwr %s fydd yn gallu cysylltu ar ôl hynny. +UnlockNewSessions=Dileu clo cysylltiad +YourSession=Eich sesiwn +Sessions=Sesiynau Defnyddwyr +WebUserGroup=Defnyddiwr/grŵp gweinydd gwe +PermissionsOnFiles=Caniatâd ar ffeiliau +PermissionsOnFilesInWebRoot=Caniatâd ar ffeiliau yn y cyfeiriadur gwraidd gwe +PermissionsOnFile=Caniatadau ar ffeil %s +NoSessionFound=Mae'n ymddangos nad yw eich ffurfweddiad PHP yn caniatáu rhestru sesiynau gweithredol. Gall y cyfeiriadur a ddefnyddir i gadw sesiynau ( %s ) gael ei ddiogelu (er enghraifft trwy ganiatâd OS neu gan gyfarwyddeb PHP open_basedir). +DBStoringCharset=Set nodau cronfa ddata i storio data +DBSortingCharset=Set nodau cronfa ddata i ddidoli data +HostCharset=Set nodau gwesteiwr +ClientCharset=Set nodau cleient +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 +GUISetup=Arddangos +SetupArea=Gosod +UploadNewTemplate=Uwchlwytho templed(au) newydd +FormToTestFileUploadForm=Ffurflen i brofi uwchlwytho ffeil (yn ôl gosod) +ModuleMustBeEnabled=Rhaid galluogi'r modiwl/cais %s +ModuleIsEnabled=Mae'r modiwl/cais %s wedi'i alluogi +IfModuleEnabled=Nodyn: ie dim ond os yw modiwl %s wedi'i alluogi +RemoveLock=Tynnwch/ail-enwi ffeil %s os yw'n bodoli, i ganiatáu defnydd o'r teclyn Diweddaru/Gosod. +RestoreLock=Adfer ffeil %s , gyda chaniatâd darllen yn unig, i analluogi unrhyw ddefnydd pellach o'r teclyn Diweddaru/Gosod. +SecuritySetup=Gosodiad diogelwch +PHPSetup=Gosod PHP +OSSetup=Gosodiad OS +SecurityFilesDesc=Diffiniwch yma opsiynau sy'n ymwneud â diogelwch am uwchlwytho ffeiliau. +ErrorModuleRequirePHPVersion=Gwall, mae angen fersiwn PHP %s neu uwch ar y modiwl hwn +ErrorModuleRequireDolibarrVersion=Gwall, mae angen fersiwn Dolibarr %s neu uwch ar gyfer y modiwl hwn +ErrorDecimalLargerThanAreForbidden=Gwall, ni chefnogir cywirdeb uwch na %s . +DictionarySetup=Gosod geiriadur +Dictionary=Geiriaduron +ErrorReservedTypeSystemSystemAuto=Cedwir gwerth 'system' a 'systemauto' ar gyfer math. Gallwch ddefnyddio 'defnyddiwr' fel gwerth i ychwanegu eich cofnod eich hun +ErrorCodeCantContainZero=Ni all y cod gynnwys gwerth 0 +DisableJavascript=Analluogi swyddogaethau JavaScript ac Ajax +DisableJavascriptNote=Nodyn: At ddiben prawf neu ddadfygio yn unig. Ar gyfer optimeiddio ar gyfer pobl ddall neu borwyr testun, efallai y byddai'n well gennych ddefnyddio'r gosodiad ar broffil y defnyddiwr +UseSearchToSelectCompanyTooltip=Hefyd, os oes gennych nifer fawr o drydydd parti (> 100 000), gallwch gynyddu cyflymder drwy osod cyson COMPANY_DONOTSEARCH_ANYWHERE i 1 yn Setup->Arall. Bydd y chwiliad wedyn yn cael ei gyfyngu i ddechrau'r llinyn. +UseSearchToSelectContactTooltip=Hefyd, os oes gennych nifer fawr o drydydd parti (> 100 000), gallwch gynyddu cyflymder trwy osod CONTACT_DONOTSEARCH_ANYWHERE cyson i 1 yn Gosod->Arall. Bydd y chwiliad wedyn yn cael ei gyfyngu i ddechrau'r llinyn. +DelaiedFullListToSelectCompany=Arhoswch nes bod allwedd yn cael ei wasgu cyn llwytho cynnwys rhestr combo Trydydd Partïon.
    Gall hyn gynyddu perfformiad os oes gennych nifer fawr o drydydd parti, ond mae'n llai cyfleus. +DelaiedFullListToSelectContact=Arhoswch nes bod allwedd yn cael ei wasgu cyn llwytho cynnwys rhestr combo Contact.
    Gall hyn gynyddu perfformiad os oes gennych nifer fawr o gysylltiadau, ond mae'n llai cyfleus. +NumberOfKeyToSearch=Nifer y nodau i sbarduno chwiliad: %s +NumberOfBytes=Nifer Beitiau +SearchString=Llinyn chwilio +NotAvailableWhenAjaxDisabled=Ddim ar gael pan mae Ajax wedi'i analluogi +AllowToSelectProjectFromOtherCompany=Ar ddogfen trydydd parti, yn gallu dewis prosiect sy'n gysylltiedig â thrydydd parti arall +TimesheetPreventAfterFollowingMonths=Atal cofnodi amser a dreulir ar ôl y nifer o fisoedd canlynol +JavascriptDisabled=Mae JavaScript wedi'i analluogi +UsePreviewTabs=Defnyddiwch dabiau rhagolwg +ShowPreview=Dangos rhagolwg +ShowHideDetails=Dangos-Cuddio manylion +PreviewNotAvailable=Rhagolwg ddim ar gael +ThemeCurrentlyActive=Thema yn weithredol ar hyn o bryd +MySQLTimeZone=TimeZone MySql (cronfa ddata) +TZHasNoEffect=Mae dyddiadau'n cael eu storio a'u dychwelyd gan weinydd y gronfa ddata fel pe baent yn cael eu cadw fel llinyn a gyflwynwyd. Dim ond wrth ddefnyddio swyddogaeth UNIX_TIMESTAMP y mae'r gylchfa amser yn cael effaith (ni ddylai Dolibarr ei defnyddio, felly ni ddylai cronfa ddata TZ gael unrhyw effaith, hyd yn oed os caiff ei newid ar ôl i ddata gael ei fewnbynnu). +Space=Gofod +Table=Bwrdd +Fields=Caeau +Index=Mynegai +Mask=Mwgwd +NextValue=Gwerth nesaf +NextValueForInvoices=Gwerth nesaf (anfonebau) +NextValueForCreditNotes=Gwerth nesaf (nodiadau credyd) +NextValueForDeposit=Gwerth nesaf (taliad i lawr) +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=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 +AntiVirusParamExample=Enghraifft ar gyfer ClamAv Daemon: --fdpass
    Enghraifft ar gyfer ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ComptaSetup=Gosod modiwl cyfrifo +UserSetup=Gosodiad rheoli defnyddwyr +MultiCurrencySetup=Gosodiad aml-arian +MenuLimits=Cyfyngiadau a chywirdeb +MenuIdParent=ID dewislen rhiant +DetailMenuIdParent=ID y ddewislen rhiant (gwag ar gyfer y ddewislen uchaf) +ParentID=ID Rhiant +DetailPosition=Trefnu rhif i ddiffinio safle'r ddewislen +AllMenus=I gyd +NotConfigured=Modiwl/Cais heb ei ffurfweddu +Active=Actif +SetupShort=Gosod +OtherOptions=Opsiynau eraill +OtherSetup=Gosod Arall +CurrentValueSeparatorDecimal=Gwahanydd degol +CurrentValueSeparatorThousand=Mil gwahanydd +Destination=Cyrchfan +IdModule=ID y modiwl +IdPermissions=ID Caniatâd +LanguageBrowserParameter=Paramedr %s +LocalisationDolibarrParameters=Paramedrau lleoleiddio +ClientHour=Amser cleient (defnyddiwr) +OSTZ=Parth Amser Gweinydd AO +PHPTZ=Parth Amser gweinydd PHP +DaylingSavingTime=Arbed amser golau dydd +CurrentHour=Amser PHP (gweinydd) +CurrentSessionTimeOut=Goramser sesiwn cyfredol +YouCanEditPHPTZ=I osod cylchfa amser PHP gwahanol (dim angen), gallwch geisio ychwanegu ffeil .htaccess gyda llinell fel hon "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Rhybudd, yn groes i sgriniau eraill, nid yw oriau ar y dudalen hon yn eich cylchfa amser leol, ond o gylchfa amser y gweinydd. +Box=Teclyn +Boxes=Teclynnau +MaxNbOfLinesForBoxes=Max. nifer y llinellau ar gyfer teclynnau +AllWidgetsWereEnabled=Mae'r holl widgets sydd ar gael wedi'u galluogi +PositionByDefault=Gorchymyn diofyn +Position=Swydd +MenusDesc=Mae rheolwyr dewislen yn gosod cynnwys y ddau far dewislen (llorweddol a fertigol). +MenusEditorDesc=Mae golygydd y ddewislen yn caniatáu ichi ddiffinio cofnodion dewislen wedi'u teilwra. Defnyddiwch ef yn ofalus i osgoi ansadrwydd a chofnodion dewislen na ellir eu cyrraedd yn barhaol.
    Mae rhai modiwlau yn ychwanegu cofnodion dewislen (yn y ddewislen Pob un yn bennaf). Os byddwch yn dileu rhai o'r cofnodion hyn trwy gamgymeriad, gallwch eu hadfer gan analluogi ac ailalluogi'r modiwl. +MenuForUsers=Dewislen i ddefnyddwyr +LangFile=ffeil .lang +Language_en_US_es_MX_etc=Iaith (en_US, es_MX, ...) +System=System +SystemInfo=Gwybodaeth system +SystemToolsArea=Ardal offer system +SystemToolsAreaDesc=Mae'r maes hwn yn darparu swyddogaethau gweinyddol. Defnyddiwch y ddewislen i ddewis y nodwedd ofynnol. +Purge=Purge +PurgeAreaDesc=Mae'r dudalen hon yn eich galluogi i ddileu pob ffeil a gynhyrchir neu a storir gan Dolibarr (ffeiliau dros dro neu bob ffeil yn %s cyfeiriadur). Nid oes angen defnyddio'r nodwedd hon fel arfer. Fe'i darperir fel ateb i ddefnyddwyr y mae eu Dolibarr yn cael ei letya gan ddarparwr nad yw'n cynnig caniatâd i ddileu ffeiliau a gynhyrchir gan y gweinydd gwe. +PurgeDeleteLogFile=Dileu ffeiliau log, gan gynnwys %s diffiniedig ar gyfer modiwl Syslog (dim risg o golli data) +PurgeDeleteTemporaryFiles=Dileu pob ffeil log a dros dro (dim risg o golli data). Gall paramedr fod yn 'tempfilesold', 'logfiles' neu'r ddau yn 'tempfilesold+logfiles'. Nodyn: Dim ond os crëwyd y cyfeiriadur dros dro fwy na 24 awr yn ôl y caiff ffeiliau dros dro eu dileu. +PurgeDeleteTemporaryFilesShort=Dileu log a ffeiliau dros dro (dim risg o golli data) +PurgeDeleteAllFilesInDocumentsDir=Dileu pob ffeil yn y cyfeiriadur: %s .
    Bydd hyn yn dileu'r holl ddogfennau a gynhyrchwyd sy'n ymwneud ag elfennau (trydydd parti, anfonebau ac ati...), ffeiliau a uwchlwythwyd i'r modiwl ECM, dympiau wrth gefn cronfa ddata a ffeiliau dros dro. +PurgeRunNow=Glanhewch yn awr +PurgeNothingToDelete=Dim cyfeiriadur na ffeiliau i'w dileu. +PurgeNDirectoriesDeleted= %s ffeiliau neu gyfeiriaduron wedi'u dileu. +PurgeNDirectoriesFailed=Wedi methu dileu %s ffeiliau neu gyfeiriaduron. +PurgeAuditEvents=Cael gwared ar bob digwyddiad diogelwch +ConfirmPurgeAuditEvents=A ydych yn siŵr eich bod am gael gwared ar yr holl ddigwyddiadau diogelwch? Bydd yr holl logiau diogelwch yn cael eu dileu, ni fydd unrhyw ddata arall yn cael ei ddileu. +GenerateBackup=Cynhyrchu copi wrth gefn +Backup=Wrth gefn +Restore=Adfer +RunCommandSummary=Mae copi wrth gefn wedi'i lansio gyda'r gorchymyn canlynol +BackupResult=Canlyniad wrth gefn +BackupFileSuccessfullyCreated=Ffeil wrth gefn wedi'i chynhyrchu'n llwyddiannus +YouCanDownloadBackupFile=Gellir lawrlwytho'r ffeil a gynhyrchir nawr +NoBackupFileAvailable=Dim ffeiliau wrth gefn ar gael. +ExportMethod=Dull allforio +ImportMethod=Dull mewnforio +ToBuildBackupFileClickHere=I adeiladu ffeil wrth gefn, cliciwch yma . +ImportMySqlDesc=I fewnforio ffeil wrth gefn MySQL, gallwch ddefnyddio phpMyAdmin trwy'ch gwesteiwr neu ddefnyddio'r gorchymyn mysql o'r llinell orchymyn.
    Er enghraifft: +ImportPostgreSqlDesc=I fewnforio ffeil wrth gefn, rhaid i chi ddefnyddio gorchymyn pg_restore o'r llinell orchymyn: +ImportMySqlCommand=%s %s < mybackupfile.sql +ImportPostgreSqlCommand=%s %s mybackupfile.sql +FileNameToGenerate=Enw ffeil ar gyfer copi wrth gefn: +Compression=Cywasgu +CommandsToDisableForeignKeysForImport=Gorchymyn i analluogi allweddi tramor wrth fewnforio +CommandsToDisableForeignKeysForImportWarning=Gorfodol os ydych chi am allu adfer eich domen sql yn ddiweddarach +ExportCompatibility=Cydnawsedd y ffeil allforio a gynhyrchir +ExportUseMySQLQuickParameter=Defnyddiwch y paramedr --cyflym +ExportUseMySQLQuickParameterHelp=Mae'r paramedr '--quick' yn helpu i gyfyngu ar y defnydd o RAM ar gyfer byrddau mawr. +MySqlExportParameters=Paramedrau allforio MySQL +PostgreSqlExportParameters= Paramedrau allforio PostgreSQL +UseTransactionnalMode=Defnyddiwch y modd trafodol +FullPathToMysqldumpCommand=Llwybr llawn i orchymyn mysqldump +FullPathToPostgreSQLdumpCommand=Llwybr llawn i orchymyn pg_dump +AddDropDatabase=Ychwanegu gorchymyn DROP DATACASE +AddDropTable=Ychwanegu gorchymyn DROP TABL +ExportStructure=Strwythur +NameColumn=Enw colofnau +ExtendedInsert=Mewnosod estynedig +NoLockBeforeInsert=Dim gorchmynion cloi o amgylch INSERT +DelayedInsert=Oedi mewnosod +EncodeBinariesInHexa=Amgodio data deuaidd mewn hecsadegol +IgnoreDuplicateRecords=Anwybyddu gwallau cofnod dyblyg (INSERT IGNORE) +AutoDetectLang=Canfod yn awtomatig (iaith porwr) +FeatureDisabledInDemo=Nodwedd wedi'i hanalluogi yn y demo +FeatureAvailableOnlyOnStable=Nodwedd yn unig ar gael ar fersiynau sefydlog swyddogol +BoxesDesc=Mae teclynnau yn gydrannau sy'n dangos rhywfaint o wybodaeth y gallwch chi ei hychwanegu i bersonoli rhai tudalennau. Gallwch ddewis rhwng dangos y teclyn ai peidio trwy ddewis y dudalen darged a chlicio ar 'Activate', neu drwy glicio ar y bin sbwriel i'w analluogi. +OnlyActiveElementsAreShown=Dim ond elfennau o fodiwlau galluogi a ddangosir. +ModulesDesc=Mae'r modiwlau/cymwysiadau yn pennu pa nodweddion sydd ar gael yn y meddalwedd. Mae rhai modiwlau yn gofyn am ganiatâd i ddefnyddwyr ar ôl actifadu'r modiwl. Cliciwch y botwm ymlaen/diffodd %s o bob modiwl i alluogi neu analluogi modiwl/cymhwysiad. +ModulesDesc2=Cliciwch y botwm olwyn %s i ffurfweddu'r modiwl/cymhwysiad. +ModulesMarketPlaceDesc=Gallwch ddod o hyd i ragor o fodiwlau i'w llwytho i lawr ar wefannau allanol ar y Rhyngrwyd... +ModulesDeployDesc=Os yw caniatâd ar eich system ffeiliau yn caniatáu hynny, gallwch ddefnyddio'r offeryn hwn i ddefnyddio modiwl allanol. Yna bydd y modiwl i'w weld ar y tab %s . +ModulesMarketPlaces=Dod o hyd i ap/modiwlau allanol +ModulesDevelopYourModule=Datblygwch eich app/modiwlau eich hun +ModulesDevelopDesc=Gallwch hefyd ddatblygu eich modiwl eich hun neu ddod o hyd i bartner i ddatblygu un i chi. +DOLISTOREdescriptionLong=Yn lle troi gwefan www.dolistore.com ymlaen i ddod o hyd i fodiwl allanol, gallwch ddefnyddio'r offeryn mewnol hwn a fydd yn gwneud y chwiliad ar y farchnad allanol i chi (efallai ei fod yn araf, angen mynediad i'r rhyngrwyd)... +NewModule=Modiwl newydd +FreeModule=Rhad ac am ddim +CompatibleUpTo=Yn gydnaws â fersiwn %s +NotCompatible=Nid yw'n ymddangos bod y modiwl hwn yn gydnaws â'ch Dolibarr %s (Min %s - Max %s). +CompatibleAfterUpdate=Mae'r modiwl hwn angen diweddariad i'ch Dolibarr %s (Min %s - Max %s). +SeeInMarkerPlace=Gweler yn Market Place +SeeSetupOfModule=Gweler gosodiad y modiwl %s +SetOptionTo=Gosod opsiwn %s i %s +Updated=Wedi'i ddiweddaru +AchatTelechargement=Prynu / Lawrlwytho +GoModuleSetupArea=I ddefnyddio / gosod modiwl newydd, ewch i ardal gosod y Modiwl: %s . +DoliStoreDesc=DoliStore, y farchnad swyddogol ar gyfer modiwlau allanol Dolibarr ERP/CRM +DoliPartnersDesc=Rhestr o gwmnïau sy'n darparu modiwlau neu nodweddion sydd wedi'u datblygu'n arbennig.
    Nodyn: gan fod Dolibarr yn gymhwysiad ffynhonnell agored, dylai unrhyw un profiadol mewn rhaglennu PHP allu datblygu modiwl. +WebSiteDesc=Gwefannau allanol ar gyfer mwy o fodiwlau ychwanegol (di-graidd)... +DevelopYourModuleDesc=Rhai atebion i ddatblygu eich modiwl eich hun... +URL=URL +RelativeURL=URL cymharol +BoxesAvailable=Teclynnau ar gael +BoxesActivated=Widgets wedi'u hysgogi +ActivateOn=Ysgogi ar +ActiveOn=Wedi'i actifadu ar +ActivatableOn=Actifadwy ar +SourceFile=Ffeil ffynhonnell +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Ar gael dim ond os nad yw JavaScript wedi'i analluogi +Required=Angenrheidiol +UsedOnlyWithTypeOption=Defnyddir gan rai opsiwn agenda yn unig +Security=Diogelwch +Passwords=Cyfrineiriau +DoNotStoreClearPassword=Amgryptio cyfrineiriau sydd wedi'u storio yn y gronfa ddata (NID fel testun plaen). Argymhellir yn gryf actifadu'r opsiwn hwn. +MainDbPasswordFileConfEncrypted=Amgryptio cyfrinair cronfa ddata wedi'i storio yn conf.php. Argymhellir yn gryf actifadu'r opsiwn hwn. +InstrucToEncodePass=I gael cyfrinair wedi'i amgodio i'r ffeil conf.php , disodli'r llinell
    $dolibarr_main_db_pass="...";
    gan
    $dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=I gael cyfrinair wedi'i ddatgodio (clir) i'r ffeil conf.php , disodli'r llinell
    $dolibarr_main_db_pass;"
    gan
    $dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Diogelu ffeiliau PDF a gynhyrchir. NID yw hyn yn cael ei argymell gan ei fod yn torri cynhyrchu PDF swmp. +ProtectAndEncryptPdfFilesDesc=Mae diogelu dogfen PDF yn ei chadw ar gael i'w darllen a'i hargraffu gydag unrhyw borwr PDF. Fodd bynnag, nid yw golygu a chopïo yn bosibl mwyach. Sylwch fod defnyddio'r nodwedd hon yn golygu nad yw adeiladu PDFs cyfun byd-eang yn gweithio. +Feature=Nodwedd +DolibarrLicense=Trwydded +Developpers=Datblygwyr/cyfranwyr +OfficialWebSite=Gwefan swyddogol Dolibarr +OfficialWebSiteLocal=Gwefan leol (%s) +OfficialWiki=Dogfennaeth Dolibarr / Wiki +OfficialDemo=Demo ar-lein Dolibarr +OfficialMarketPlace=Marchnad swyddogol ar gyfer modiwlau/ychwanegion allanol +OfficialWebHostingService=Gwasanaethau gwe-letya y cyfeiriwyd atynt (Cloud hosting) +ReferencedPreferredPartners=Partneriaid a Ffefrir +OtherResources=Adnoddau eraill +ExternalResources=Adnoddau Allanol +SocialNetworks=Rhwydweithiau Cymdeithasol +SocialNetworkId=ID Rhwydwaith Cymdeithasol +ForDocumentationSeeWiki=Ar gyfer dogfennaeth defnyddiwr neu ddatblygwr (Doc, FAQs...),
    cymerwch olwg ar Wiki Dolibarr:
    a0ecb2ec87f4908fzd0 a0ecb2ec87f49087f +ForAnswersSeeForum=Ar gyfer unrhyw gwestiynau/cymorth eraill, gallwch ddefnyddio fforwm Dolibarr:
    %s a09a4b739zf +HelpCenterDesc1=Dyma rai adnoddau ar gyfer cael cymorth a chefnogaeth gyda Dolibarr. +HelpCenterDesc2=Dim ond yn english y mae rhai o'r adnoddau hyn ar gael. +CurrentMenuHandler=Triniwr dewislen cyfredol +MeasuringUnit=Uned fesur +LeftMargin=Ymyl chwith +TopMargin=Ymyl uchaf +PaperSize=Math o bapur +Orientation=Cyfeiriadedd +SpaceX=Gofod X +SpaceY=Gofod Y +FontSize=Maint y ffont +Content=Cynnwys +ContentForLines=Cynnwys i'w arddangos ar gyfer pob cynnyrch neu wasanaeth (o newidyn __LINES__ o Gynnwys) +NoticePeriod=Cyfnod rhybudd +NewByMonth=Newydd fesul mis +Emails=E-byst +EMailsSetup=Gosodiad e-byst +EMailsDesc=Mae'r dudalen hon yn eich galluogi i osod paramedrau neu opsiynau ar gyfer anfon e-bost. +EmailSenderProfiles=Proffiliau anfonwr e-bost +EMailsSenderProfileDesc=Gallwch gadw'r adran hon yn wag. Os rhowch rai e-byst yma, byddant yn cael eu hychwanegu at y rhestr o anfonwyr posibl i'r blwch combo pan fyddwch yn ysgrifennu e-bost newydd. +MAIN_MAIL_SMTP_PORT=Porth SMTP/SMTPS (gwerth diofyn yn php.ini: %s ) +MAIN_MAIL_SMTP_SERVER=Gwesteiwr SMTP/SMTPS (gwerth diofyn yn php.ini: %s ) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porth SMTP/SMTPS (Heb ei ddiffinio i PHP ar systemau tebyg i Unix) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Gwesteiwr SMTP/SMTPS (Heb ei ddiffinio i PHP ar systemau tebyg i Unix) +MAIN_MAIL_EMAIL_FROM=E-bost anfonwr ar gyfer e-byst awtomatig (gwerth diofyn yn php.ini: %s ) +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) +MAIN_MAIL_FORCE_SENDTO=Anfon pob e-bost at (yn lle derbynwyr go iawn, at ddibenion prawf) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Awgrymu e-byst gweithwyr (os ydynt wedi'u diffinio) yn y rhestr o dderbynwyr rhagddiffiniedig wrth ysgrifennu e-bost newydd +MAIN_MAIL_SENDMODE=Dull anfon e-bost +MAIN_MAIL_SMTPS_ID=ID SMTP (os oes angen dilysu anfon y gweinydd) +MAIN_MAIL_SMTPS_PW=Cyfrinair SMTP (os oes angen dilysu anfon y gweinydd) +MAIN_MAIL_EMAIL_TLS=Defnyddiwch amgryptio TLS (SSL). +MAIN_MAIL_EMAIL_STARTTLS=Defnyddiwch amgryptio TLS (STARTTLS). +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Awdurdodi les certificats auto-signés +MAIN_MAIL_EMAIL_DKIM_ENABLED=Defnyddiwch DKIM i gynhyrchu llofnod e-bost +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Parth E-bost i'w ddefnyddio gyda dkim +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Enw'r dewisydd dkim +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Allwedd breifat ar gyfer arwyddo dkim +MAIN_DISABLE_ALL_SMS=Analluogi anfon SMS (at ddibenion prawf neu demos) +MAIN_SMS_SENDMODE=Dull i'w ddefnyddio i anfon SMS +MAIN_MAIL_SMS_FROM=Rhif ffôn anfonwr diofyn ar gyfer anfon SMS +MAIN_MAIL_DEFAULT_FROMTYPE=E-bost anfonwr diofyn ar gyfer anfon â llaw (E-bost defnyddiwr neu e-bost Cwmni) +UserEmail=E-bost defnyddiwr +CompanyEmail=E-bost y Cwmni +FeatureNotAvailableOnLinux=Nid yw'r nodwedd ar gael ar systemau tebyg i Unix. Profwch eich rhaglen sendmail yn lleol. +FixOnTransifex=Trwsiwch y cyfieithiad ar lwyfan cyfieithu ar-lein y prosiect +SubmitTranslation=Os nad yw'r cyfieithiad ar gyfer yr iaith hon yn gyflawn neu os byddwch yn dod o hyd i wallau, gallwch gywiro hyn trwy olygu ffeiliau yn y cyfeiriadur langs/%s a chyflwyno'ch newid i www.transifex.com/dolibarr-association/dolibarrciation +SubmitTranslationENUS=Os nad yw'r cyfieithiad ar gyfer yr iaith hon yn gyflawn neu os byddwch yn dod o hyd i wallau, gallwch gywiro hyn trwy olygu ffeiliau i gyfeiriadur langs/%s a chyflwyno ffeiliau wedi'u haddasu ar dolibarr.org/forum neu, os ydych yn ddatblygwr PR, gyda github .com/Dolibarr/dolibarr +ModuleSetup=Gosod modiwl +ModulesSetup=Modiwlau/Gosod Cymhwysiad +ModuleFamilyBase=System +ModuleFamilyCrm=Rheoli Perthynas Cwsmer (CRM) +ModuleFamilySrm=Rheoli Perthynas Gwerthwr (VRM) +ModuleFamilyProducts=Rheoli Cynnyrch (PM) +ModuleFamilyHr=Rheoli Adnoddau Dynol (AD) +ModuleFamilyProjects=Prosiectau/Gwaith Cydweithredol +ModuleFamilyOther=Arall +ModuleFamilyTechnic=Offer aml-fodiwlau +ModuleFamilyExperimental=Modiwlau arbrofol +ModuleFamilyFinancial=Modiwlau Ariannol (Cyfrifo/Trysorlys) +ModuleFamilyECM=Rheoli Cynnwys Electronig (ECM) +ModuleFamilyPortal=Gwefannau a rhaglenni blaen eraill +ModuleFamilyInterface=Rhyngwynebau â systemau allanol +MenuHandlers=Trinwyr bwydlenni +MenuAdmin=Golygydd dewislen +DoNotUseInProduction=Peidiwch â defnyddio wrth gynhyrchu +ThisIsProcessToFollow=Gweithdrefn uwchraddio: +ThisIsAlternativeProcessToFollow=Mae hwn yn osodiad amgen i'w brosesu â llaw: +StepNb=Cam %s +FindPackageFromWebSite=Dewch o hyd i becyn sy'n darparu'r nodweddion sydd eu hangen arnoch chi (er enghraifft ar y wefan swyddogol %s). +DownloadPackageFromWebSite=Lawrlwythwch y pecyn (er enghraifft o'r wefan swyddogol %s). +UnpackPackageInDolibarrRoot=Dadbacio/dadsipio'r ffeiliau sydd wedi'u pecynnu i'ch cyfeiriadur gweinydd Dolibarr: %s +UnpackPackageInModulesRoot=I ddefnyddio / gosod modiwl allanol, rhaid i chi ddadbacio / dadsipio'r ffeil archif i'r cyfeiriadur gweinyddwr sy'n ymroddedig i fodiwlau allanol:
    %s +SetupIsReadyForUse=Mae gosod y modiwl wedi'i orffen. Fodd bynnag, rhaid i chi alluogi a gosod y modiwl yn eich cais trwy fynd i'r modiwlau gosod tudalen: %s . +NotExistsDirect=Nid yw'r cyfeiriadur gwraidd amgen wedi'i ddiffinio i gyfeiriadur sy'n bodoli eisoes.
    +InfDirAlt=Ers fersiwn 3, mae'n bosibl diffinio cyfeiriadur gwraidd amgen. Mae hyn yn caniatáu ichi storio ategion a thempledi personol mewn cyfeiriadur pwrpasol.
    Crëwch gyfeiriadur wrth wraidd Dolibarr (ee: arferiad).
    +InfDirExample=
    Yna ei ddatgan yn y ffeil conf.php
    $ dolibarr_main_url_root_alt = '/ arfer'
    $ dolibarr_main_document_root_alt = '/ llwybr / o / dolibarr / htdocs / arfer'
    Os llinellau hyn yn cael eu gwneud sylwadau gyda "#", er mwyn eu galluogi , dim ond dadwneud sylw trwy gael gwared ar y nod "#". +YouCanSubmitFile=Gallwch uwchlwytho'r ffeil .zip o becyn modiwl o'r fan hon: +CurrentVersion=Fersiwn gyfredol Dolibarr +CallUpdatePage=Porwch i'r dudalen sy'n diweddaru strwythur a data'r gronfa ddata: %s. +LastStableVersion=Fersiwn sefydlog diweddaraf +LastActivationDate=Dyddiad actifadu diweddaraf +LastActivationAuthor=Awdur activation diweddaraf +LastActivationIP=IP actifadu diweddaraf +LastActivationVersion=Fersiwn actifadu diweddaraf +UpdateServerOffline=Diweddaru gweinydd all-lein +WithCounter=Rheoli cownter +GenericMaskCodes=Gallwch nodi unrhyw fwgwd rhifo. Yn y mwgwd hwn, gellir defnyddio'r tagiau canlynol: mae
    {000000} yn cyfateb i rif a fydd yn cael ei gynyddu ar bob %s. Rhowch gymaint o sero â hyd dymunol y rhifydd. Bydd y cownter yn cael ei gwblhau gan sero o'r chwith er mwyn cael cymaint o sero â'r mwgwd.
    {000000+000} yr un fath â'r un blaenorol ond gweithredir gwrthbwyso sy'n cyfateb i'r rhif i'r dde o'r arwydd + gan ddechrau ar yr %s cyntaf.
    {000000@x} yr un peth â'r un blaenorol ond mae'r rhifydd yn cael ei ailosod i sero pan gyrhaeddir mis x (x rhwng 1 a 12, neu 0 i ddefnyddio misoedd cynnar blwyddyn ariannol 99 yn eich cyfluniad, neu ailosod i sero bob mis). Os defnyddir yr opsiwn hwn a bod x yn 2 neu'n uwch, yna mae angen y dilyniant {yy}{mm} neu {bby}{mm} hefyd.
    {dd} diwrnod (01 i 31).
    {mm} mis (01 i 12).
    {yy} , {yyyy} neu a0aee833601 rifau dros y flwyddyn, {yy} {bbbb} neu a0aee833601 {b}
    +GenericMaskCodes2= {cccc} cod y cleient ar nodau n
    {a0a29d2eab421b af cod afz0 {a0a29d2eab421b afz0 {a0a29d2ea421b afz0 {a0a29d2ea421b afz0 {a0a29d2ea421b afz018365837fz0 {a0a29d2ea421b afz0 afz0183365837fz0 {a0a29d2ea421b af. Mae'r cownter hwn sy'n ymroddedig i gwsmer yn cael ei ailosod ar yr un pryd â'r cownter byd-eang.
    {tttt} Cod math trydydd parti ar n nodau (gweler y ddewislen Cartref - Gosod - Geiriadur - Mathau o drydydd parti). Os ychwanegwch y tag hwn, bydd y cownter yn wahanol ar gyfer pob math o drydydd parti.
    +GenericMaskCodes3=Bydd yr holl gymeriadau eraill yn y mwgwd yn aros yn gyfan.
    Ni chaniateir bylchau.
    +GenericMaskCodes3EAN=Bydd pob nod arall yn y mwgwd yn aros yn gyfan (ac eithrio * neu ? yn y 13eg safle yn EAN13).
    Ni chaniateir bylchau.
    Yn EAN13, dylai'r nod olaf ar ôl y } olaf yn y 13eg safle fod yn * neu ? . Bydd yn cael ei ddisodli gan yr allwedd a gyfrifwyd.
    +GenericMaskCodes4a= Enghraifft ar y 99fed %s o'r trydydd parti TheCompany, gyda dyddiad 2007-01-31:
    +GenericMaskCodes4b= Enghraifft ar drydydd parti a grëwyd ar 2007-03-01:
    +GenericMaskCodes4c= Enghraifft ar gynnyrch a grëwyd ar 2007-03-01:
    +GenericMaskCodes5= ABC {} {yy mm} - {} 000000 yn rhoi ABC0701-000099
    {0000 + 100 @ 1} -ZZZ / {dd} / XXX yn rhoi 0199-zzz / 31 / XXX
    IN{yy}{mm}-{0000}-{t} bydd yn rhoi IN0701-0099-A os yw'r math o gwmni yn 'Asesponding' yn cynnwys 'A4b739f17f8z0 code +GenericNumRefModelDesc=Yn dychwelyd rhif y gellir ei addasu yn ôl mwgwd diffiniedig. +ServerAvailableOnIPOrPort=Mae'r gweinydd ar gael yn y cyfeiriad %s ar borthladd %s +ServerNotAvailableOnIPOrPort=Nid yw'r gweinydd ar gael yn y cyfeiriad %s ar borthladd %s +DoTestServerAvailability=Profi cysylltedd gweinydd +DoTestSend=Prawf anfon +DoTestSendHTML=Prawf anfon HTML +ErrorCantUseRazIfNoYearInMask=Gwall, ni ellir defnyddio opsiwn @ i ailosod cownter bob blwyddyn os nad yw dilyniant {yy} neu {yyyy} mewn mwgwd. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Gwall, ni allwn ddefnyddio opsiwn @ os nad yw dilyniant {yy}{mm} neu {yyyy}{mm} mewn mwgwd. +UMask=Paramedr UMask ar gyfer ffeiliau newydd ar system ffeiliau Unix/Linux/BSD/Mac. +UMaskExplanation=Mae'r paramedr hwn yn caniatáu ichi ddiffinio caniatâd a osodwyd yn ddiofyn ar ffeiliau a grëwyd gan Dolibarr ar y gweinydd (yn ystod uwchlwytho er enghraifft).
    Rhaid iddo fod y gwerth wythol (er enghraifft, mae 0666 yn golygu darllen ac ysgrifennu i bawb).
    Mae'r paramedr hwn yn ddiwerth ar weinydd Windows. +SeeWikiForAllTeam=Cymerwch olwg ar y dudalen Wiki am restr o gyfranwyr a'u sefydliad +UseACacheDelay= Oedi ar gyfer caching ymateb allforio mewn eiliadau (0 neu wag am ddim celc) +DisableLinkToHelpCenter=Cuddio'r ddolen " Angen help neu gefnogaeth " ar y dudalen mewngofnodi +DisableLinkToHelp=Cuddio'r ddolen i'r help ar-lein " %s " +AddCRIfTooLong=Nid oes lapio testun yn awtomatig, ni fydd testun sy'n rhy hir yn cael ei arddangos ar ddogfennau. Ychwanegwch ddychweliadau cerbyd yn yr ardal testun os oes angen. +ConfirmPurge=Ydych chi'n siŵr eich bod am weithredu'r glanhau hwn?
    Bydd hyn yn dileu eich holl ffeiliau data yn barhaol heb unrhyw ffordd i'w hadfer (ffeiliau ECM, ffeiliau atodedig...). +MinLength=Hyd lleiaf +LanguageFilesCachedIntoShmopSharedMemory=Ffeiliau .lang wedi'u llwytho mewn cof a rennir +LanguageFile=Ffeil iaith +ExamplesWithCurrentSetup=Enghreifftiau gyda ffurfweddiad cyfredol +ListOfDirectories=Rhestr o gyfeiriaduron templedi OpenDocument +ListOfDirectoriesForModelGenODT=Rhestr o gyfeiriaduron yn cynnwys ffeiliau templedi gyda fformat OpenDocument.

    Rhowch lwybr llawn o gyfeiriaduron yma.
    Ychwanegu dychweliad cerbyd rhwng cyfeiriadur eah.
    I ychwanegu cyfeiriadur o'r modiwl GED, ychwanegwch yma DOL_DATA_ROOT/ecm/yourdirectoryname .

    Rhaid i ffeiliau yn y cyfeiriaduron hynny ddod i ben gydag .odt neu .ods a09a17f739 +NumberOfModelFilesFound=Nifer y ffeiliau templed ODT/ODS a geir yn y cyfeiriaduron hyn +ExampleOfDirectoriesForModelGen=Enghreifftiau o gystrawen:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    I wybod sut i greu eich templedi dogfen odt, cyn eu storio yn y cyfeiriaduron hynny, darllenwch ddogfennaeth wiki: +FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template +FirstnameNamePosition=Safle Enw/Cyfenw +DescWeather=Bydd y delweddau canlynol yn cael eu dangos ar y dangosfwrdd pan fydd nifer y gweithredoedd hwyr yn cyrraedd y gwerthoedd canlynol: +KeyForWebServicesAccess=Allwedd i ddefnyddio Gwasanaethau Gwe (paramedr "dolibarrkey" mewn gwasanaethau gwe) +TestSubmitForm=Ffurflen prawf mewnbwn +ThisForceAlsoTheme=Bydd defnyddio'r rheolwr dewislen hwn hefyd yn defnyddio ei thema ei hun beth bynnag fo dewis y defnyddiwr. Hefyd nid yw hwn rheolwr dewislen arbenigol ar gyfer ffonau clyfar yn gweithio ar bob ffôn clyfar. Defnyddiwch reolwr dewislen arall os ydych chi'n cael problemau gyda'ch un chi. +ThemeDir=Cyfeiriadur crwyn +ConnectionTimeout=Goramser cysylltiad +ResponseTimeout=Goramser ymateb +SmsTestMessage=Neges prawf o __PHONEFROM__ i __PHONETO__ +ModuleMustBeEnabledFirst=Rhaid galluogi modiwl %s yn gyntaf os oes angen y nodwedd hon arnoch. +SecurityToken=Allwedd i sicrhau URLs +NoSmsEngine=Dim rheolwr anfon SMS ar gael. Nid yw rheolwr anfonwr SMS wedi'i osod gyda'r dosbarthiad rhagosodedig oherwydd ei fod yn dibynnu ar werthwr allanol, ond gallwch ddod o hyd i rai ar %s +PDF=PDF +PDFDesc=Opsiynau byd-eang ar gyfer cynhyrchu PDF +PDFOtherDesc=PDF Opsiwn sy'n benodol i rai modiwlau +PDFAddressForging=Rheolau ar gyfer yr adran cyfeiriad +HideAnyVATInformationOnPDF=Cuddio'r holl wybodaeth sy'n ymwneud â Threth Gwerthu / TAW +PDFRulesForSalesTax=Rheolau Treth Gwerthu / TAW +PDFLocaltax=Rheolau ar gyfer %s +HideLocalTaxOnPDF=Cuddio cyfradd %s yn y golofn Treth Gwerthu / TAW +HideDescOnPDF=Cuddio disgrifiad cynnyrch +HideRefOnPDF=Cuddio cynhyrchion cyf. +HideDetailsOnPDF=Cuddio manylion llinellau cynnyrch +PlaceCustomerAddressToIsoLocation=Defnyddiwch safle safonol Ffrengig (La Poste) ar gyfer safle cyfeiriad cwsmer +Library=Llyfrgell +UrlGenerationParameters=Paramedrau i sicrhau URLs +SecurityTokenIsUnique=Defnyddiwch baramedr allwedd ddiogel unigryw ar gyfer pob URL +EnterRefToBuildUrl=Rhowch gyfeirnod ar gyfer gwrthrych %s +GetSecuredUrl=Cael URL cyfrifo +ButtonHideUnauthorized=Cuddio botymau gweithredu anawdurdodedig hefyd ar gyfer defnyddwyr mewnol (dim ond llwyd fel arall) +OldVATRates=Hen gyfradd TAW +NewVATRates=Cyfradd TAW newydd +PriceBaseTypeToChange=Addasu ar brisiau gyda gwerth cyfeirio sylfaenol wedi'i ddiffinio ar +MassConvert=Lansio trosi swmp +PriceFormatInCurrentLanguage=Fformat Pris Yn yr Iaith Bresennol +String=Llinyn +String1Line=Llinyn (1 llinell) +TextLong=Testun hir +TextLongNLines=Testun hir (n llinell) +HtmlText=Testun Html +Int=Cyfanrif +Float=Arnofio +DateAndTime=Dyddiad ac awr +Unique=Unigryw +Boolean=Boolean (un blwch ticio) +ExtrafieldPhone = Ffon +ExtrafieldPrice = Pris +ExtrafieldMail = Ebost +ExtrafieldUrl = Url +ExtrafieldSelect = Dewiswch restr +ExtrafieldSelectList = Dewiswch o'r tabl +ExtrafieldSeparator=Gwahanydd (nid maes) +ExtrafieldPassword=Cyfrinair +ExtrafieldRadio=Botymau radio (un dewis yn unig) +ExtrafieldCheckBox=Blychau ticio +ExtrafieldCheckBoxFromList=Blychau ticio o'r bwrdd +ExtrafieldLink=Cyswllt i wrthrych +ComputedFormula=Maes cyfrifiadurol +ComputedFormulaDesc=Gallwch chi nodi fformiwla yma gan ddefnyddio priodweddau gwrthrych arall neu unrhyw god PHP i gael gwerth cyfrifiadurol deinamig. Gallwch ddefnyddio unrhyw fformiwlâu sy'n gydnaws â PHP gan gynnwys y "?" gweithredwr cyflwr, a gwrthrych byd-eang canlynol: $db, $conf, $langs, $mysoc, $user, $object .
    RHYBUDD : Dim ond rhai priodweddau $object all fod ar gael. Os oes angen eiddo arnoch heb ei lwytho, rhowch y gwrthrych i'ch fformiwla fel yn yr ail enghraifft.
    Mae defnyddio maes cyfrifiadurol yn golygu na allwch nodi unrhyw werth o'r rhyngwyneb i chi'ch hun. Hefyd, os oes gwall cystrawen, efallai na fydd y fformiwla yn dychwelyd dim.

    Enghraifft o fformiwla:
    $object->id < 10 ? round($object-> id / 2, 2): ($object->id + 2 * $user->id) * ($mys) substr($mys) substr(>2), )

    Enghraifft i ail-lwytho gwrthrych
    (($reloadedobj = Cymdeithas newydd($db)) && ($reloadedobj->fetchNoCompute($obj->id ?> ($obj->id ): $obj->id >rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->cyfalaf / 5: '-1'

    Enghraifft arall o fformiwla i orfodi llwyth o wrthrych a'i riant wrthrych: a0342fccfda(19reloadbz0($j) newydd )) && ($reloadedobj->fetchNoCompute($object->id)> 0) && ($secondloadedobj = Prosiect newydd($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Heb ganfod y prosiect rhiant' +Computedpersistent=Storio maes cyfrifiadurol +ComputedpersistentDesc=Bydd meysydd ychwanegol a gyfrifir yn cael eu storio yn y gronfa ddata, fodd bynnag, dim ond pan fydd gwrthrych y maes hwn yn cael ei newid y bydd y gwerth yn cael ei ailgyfrifo. Os yw'r maes a gyfrifwyd yn dibynnu ar wrthrychau eraill neu ddata byd-eang efallai bod y gwerth hwn yn anghywir!! +ExtrafieldParamHelpPassword=Mae gadael y maes hwn yn wag yn golygu y bydd y gwerth hwn yn cael ei storio heb ei amgryptio (rhaid cuddio'r maes gyda seren ar y sgrin yn unig).
    Gosod 'auto' i ddefnyddio'r rheol amgryptio rhagosodedig i gadw cyfrinair yn y gronfa ddata (yna y gwerth a ddarllenir fydd y stwnsh yn unig, dim ffordd i adfer y gwerth gwreiddiol) +ExtrafieldParamHelpselect=Rhaid Rhestr o werthoedd yn llinellau gyda fformat allweddol, gwerth (lle allwedd ni all fod yn '0')

    er enghraifft:
    1, value1
    2, value2
    code3, value3
    ...

    Er mwyn cael y rhestr yn dibynnu ar restr priodoledd ategol arall:
    1, value1 | options_ parent_list_code : parent_key
    2, value2 | options_ parent_list_code : parent_key

    er mwyn cael y rhestr yn dibynnu ar rhestr arall:
    1, value1 | parent_list_code : rhiant_key
    2,gwerth2| rhiant_rhestr_cod : rhiant_allwedd +ExtrafieldParamHelpcheckbox=Rhaid i'r rhestr o werthoedd fod yn linellau gydag allwedd fformat, gwerth (lle na all yr allwedd fod yn '0')

    er enghraifft:
    1,value1
    2,value2 a0393bzfc a039342fc a03426fc +ExtrafieldParamHelpradio=Rhaid i'r rhestr o werthoedd fod yn linellau gydag allwedd fformat, gwerth (lle na all yr allwedd fod yn '0')

    er enghraifft:
    1,value1
    2,value2 a0393bzfc a039342fc a03426fc +ExtrafieldParamHelpsellist=Rhestr o werthoedd yn dod o Tabl A0342FCCFA19BZ0 cystrawen: Label_field: Id_field :: Filtersql A0342FCCFA19BZ0 Enghraifft: C_Ypent: Libele: ID :: Fidtersql A0342fCCFDA19BZ0 - ID_field Mae int A0342FCCFA19BZ0 - Fidtersql yn gyflwr SQL. Gall fod yn brawf syml (e.e. gweithredol=1) i ddangos gwerth gweithredol yn unig
    Gallwch hefyd ddefnyddio $ID$ yn yr hidlydd sef ID cyfredol y gwrthrych cyfredol
    I ddefnyddio SELECT yn yr hidlydd defnyddiwch yr allweddair $SEL$ i ffordd osgoi amddiffyn gwrth-chwistrellu.
    os ydych am hidlo ar extrafields defnyddiwch gystrawen extra.fieldcode=... (lle mae'r cod maes yn god extrafield)

    Er mwyn cael y rhestr yn dibynnu ar restr priodoleddau cyflenwol arall:
    :
    :belle parent_list_code | parent_column: hidlo

    er mwyn cael y rhestr yn dibynnu ar rhestr arall:
    c_typent: libelle: id: parent_list_code | parent_column: hidlo +ExtrafieldParamHelpchkbxlst=Daw'r rhestr o werthoedd o dabl
    Cystrawen: table_name:label_field:id_field::filtersql
    Enghraifft: c_typent:libelle: id::filtersql



    yn actif yn unig gwerth dangoswch i testcfda19 gwerth yn syml testcfda19 a testcfda19 yn actif i test=19b hidlydd hefyd yn gallu defnyddio $ID$ yn filter witch yw ID cyfredol y gwrthrych cyfredol
    I wneud SELECT yn yr hidlydd defnyddiwch $SEL$
    os ydych am hidlo ar feysydd ychwanegol defnyddiwch gystrawen extra.fieldcode=... (lle mae cod y maes yw'r cod maes cod extrafield)

    er mwyn cael y rhestr yn dibynnu ar restr priodoledd ategol arall:
    c_typent: libelle: id: options_ parent_list_code | parent_column: hidlo

    er mwyn cael y rhestr yn dibynnu ar rhestr arall: c_typent
    : enllib: id: parent_list_code | rhiant_colofn: hidlo +ExtrafieldParamHelplink=Rhaid i baramedrau fod yn Enw Gwrthrych:Classpath
    Cystrawen: Enw Gwrthrych:Llwybr Dosbarth +ExtrafieldParamHelpSeparator=Cadwch yn wag ar gyfer gwahanydd syml
    Gosodwch hwn i 1 ar gyfer gwahanydd sy'n cwympo (ar agor yn ddiofyn ar gyfer sesiwn newydd, yna cedwir statws ar gyfer pob sesiwn defnyddiwr)
    Gosodwch hwn i 2 ar gyfer gwahanydd sy'n cwympo (wedi cwympo yn ddiofyn ar gyfer sesiwn newydd, yna statws yn cael ei gadw ar gyfer pob sesiwn defnyddiwr) +LibraryToBuildPDF=Llyfrgell a ddefnyddir ar gyfer cynhyrchu PDF +LocalTaxDesc=Gall rhai gwledydd gymhwyso dwy neu dair treth ar bob llinell anfoneb. Os yw hyn yn wir, dewiswch y math ar gyfer yr ail a'r drydedd dreth a'i chyfradd. Y mathau posibl yw:
    1: treth leol yn berthnasol ar gynhyrchion a gwasanaethau heb TAW (cyfrifir localaltax ar y swm heb dreth)
    2: treth leol yn berthnasol ar gynhyrchion a gwasanaethau gan gynnwys TAW (cyfrifir localaltax ar y swm + prif dreth)
    3: treth leol yn berthnasol ar gynhyrchion heb TAW (cyfrifir localaltax ar swm heb dreth)
    4: mae treth leol yn gymwys ar gynhyrchion sy'n cynnwys TAW (cyfrifir localaltax ar y swm + prif TAW)
    5: treth leol yn berthnasol ar wasanaethau heb TAW (cyfrifir localaltax ar swm heb dreth)
    6: treth leol yn gymwys ar wasanaethau gan gynnwys TAW (cyfrifir localaltax ar swm + treth) +SMS=SMS +LinkToTestClickToDial=Rhowch rif ffôn i'w ffonio i ddangos dolen i brofi'r url ClickToDial ar gyfer defnyddiwr %s +RefreshPhoneLink=Adnewyddu dolen +LinkToTest=Dolen y gellir ei chlicio wedi'i chynhyrchu ar gyfer defnyddiwr %s (cliciwch y rhif ffôn i brofi) +KeepEmptyToUseDefault=Cadwch yn wag i ddefnyddio gwerth diofyn +KeepThisEmptyInMostCases=Yn y rhan fwyaf o achosion, gallwch chi gadw'r maes hwn yn wag. +DefaultLink=Dolen ddiofyn +SetAsDefault=Osod fel ddiofyn +ValueOverwrittenByUserSetup=Rhybudd, gall y gwerth hwn gael ei drosysgrifo gan osodiad defnyddiwr penodol (gall pob defnyddiwr osod ei url clictodial ei hun) +ExternalModule=Modiwl allanol +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=Init value for next %s empty records +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 +NoBarcodeNumberingTemplateDefined=Dim templed cod bar rhifo wedi'i alluogi yn y gosodiad modiwl Cod Bar. +EnableFileCache=Galluogi storfa ffeil +ShowDetailsInPDFPageFoot=Ychwanegwch fwy o fanylion yn y troedyn, megis cyfeiriad cwmni neu enwau rheolwr (yn ogystal ag id proffesiynol, cyfalaf cwmni a rhif TAW). +NoDetails=Dim manylion ychwanegol yn y troedyn +DisplayCompanyInfo=Arddangos cyfeiriad y cwmni +DisplayCompanyManagers=Arddangos enwau rheolwyr +DisplayCompanyInfoAndManagers=Arddangos cyfeiriad cwmni ac enwau rheolwr +EnableAndSetupModuleCron=Os ydych am i'r anfoneb gylchol hon gael ei chynhyrchu'n awtomatig, rhaid galluogi modiwl *%s* a gosod yn gywir. Fel arall, rhaid cynhyrchu anfonebau â llaw o'r templed hwn gan ddefnyddio'r botwm *Creu*. Sylwch, hyd yn oed os gwnaethoch alluogi cynhyrchu awtomatig, gallwch barhau i lansio cynhyrchu â llaw yn ddiogel. Nid yw'n bosibl cynhyrchu copïau dyblyg am yr un cyfnod. +ModuleCompanyCodeCustomerAquarium=%s ac yna cod cwsmer ar gyfer cod cyfrifo cwsmer +ModuleCompanyCodeSupplierAquarium=%s ac yna cod gwerthwr ar gyfer cod cyfrifo gwerthwr +ModuleCompanyCodePanicum=Dychwelyd cod cyfrifo gwag. +ModuleCompanyCodeDigitaria=Yn dychwelyd cod cyfrifo cyfansawdd yn ôl enw'r trydydd parti. Mae'r cod yn cynnwys rhagddodiad y gellir ei ddiffinio yn y safle cyntaf ac yna nifer y nodau a ddiffinnir yn y cod trydydd parti. +ModuleCompanyCodeCustomerDigitaria=%s ac yna enw'r cwsmer cwtogi yn ôl nifer y nodau: %s ar gyfer y cod cyfrifo cwsmeriaid. +ModuleCompanyCodeSupplierDigitaria=%s ac yna enw'r cyflenwr cwtogi yn ôl nifer y nodau: %s ar gyfer cod cyfrifyddu'r cyflenwr. +Use3StepsApproval=Yn ddiofyn, mae angen i Archebion Prynu gael eu creu a'u cymeradwyo gan 2 ddefnyddiwr gwahanol (un cam/defnyddiwr i'w greu ac un cam/defnyddiwr i'w gymeradwyo. Sylwch os oes gan y defnyddiwr ganiatâd i greu a chymeradwyo, bydd un cam/defnyddiwr yn ddigon) . Gallwch ofyn gyda'r opsiwn hwn i gyflwyno trydydd cam/cymeradwyaeth defnyddiwr, os yw'r swm yn uwch na'r gwerth penodol (felly bydd angen 3 cham: 1 = dilysu, 2 = cymeradwyaeth gyntaf a 3 = ail gymeradwyaeth os yw'r swm yn ddigon).
    Gosodwch hwn i wag os yw un gymeradwyaeth (2 gam) yn ddigon, gosodwch ef i werth isel iawn (0.1) os oes angen ail gymeradwyaeth (3 cham) bob amser. +UseDoubleApproval=Defnyddiwch gymeradwyaeth 3 cham pan fydd y swm (heb dreth) yn uwch na... +WarningPHPMail=RHYBUDD: Mae'r gosodiad i anfon e-byst o'r rhaglen yn defnyddio'r gosodiad generig rhagosodedig. Yn aml mae'n well gosod e-byst sy'n mynd allan i ddefnyddio gweinydd e-bost eich Darparwr Gwasanaeth E-bost yn lle'r gosodiad rhagosodedig am sawl rheswm: +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. +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=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) +TheKeyIsTheNameOfHtmlField=Dyma enw'r maes HTML. Mae angen gwybodaeth dechnegol i ddarllen cynnwys y dudalen HTML i gael enw allweddol maes. +PageUrlForDefaultValues=Rhaid i chi nodi llwybr cymharol URL y dudalen. Os ydych chi'n cynnwys paramedrau yn URL, bydd y gwerthoedd rhagosodedig yn effeithiol os yw'r holl baramedrau wedi'u gosod i'r un gwerth. +PageUrlForDefaultValuesCreate=
    Enghraifft:
    Ar gyfer y ffurflen i greu trydydd parti newydd, mae'n %s .
    Ar gyfer URL modiwlau allanol sydd wedi'u gosod mewn cyfeiriadur arferol, peidiwch â chynnwys y "custom/", felly defnyddiwch lwybr fel mymodule/mypage.php ac nid custom/mymodule/mypage.php.
    Os ydych chi eisiau gwerth rhagosodedig dim ond os oes gan url rywfaint o baramedr, gallwch ddefnyddio %s +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 +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 +ProductDocumentTemplates=Templedi dogfen i gynhyrchu dogfen cynnyrch +FreeLegalTextOnExpenseReports=Testun cyfreithiol am ddim ar adroddiadau treuliau +WatermarkOnDraftExpenseReports=Dyfrnod ar adroddiadau treuliau drafft +ProjectIsRequiredOnExpenseReports=Mae'r prosiect yn orfodol ar gyfer cofnodi adroddiad treuliau +PrefillExpenseReportDatesWithCurrentMonth=Dyddiadau cychwyn a gorffen cyn-llenwi adroddiad costau newydd gyda dyddiadau dechrau a gorffen y mis cyfredol +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Gorfodi cofnod o symiau adroddiad treuliau bob amser mewn swm gyda threthi +AttachMainDocByDefault=Gosodwch hwn i 1 os ydych am atodi'r brif ddogfen i e-bost yn ddiofyn (os yw'n berthnasol) +FilesAttachedToEmail=Atodwch ffeil +SendEmailsReminders=Anfon nodiadau atgoffa agenda trwy e-byst +davDescription=Gosod gweinydd WebDAV +DAVSetup=Gosod modiwl DAV +DAV_ALLOW_PRIVATE_DIR=Galluogi'r cyfeiriadur preifat generig (cyfeirlyfr pwrpasol WebDAV o'r enw "preifat" - angen mewngofnodi) +DAV_ALLOW_PRIVATE_DIRTooltip=Mae'r cyfeiriadur preifat generig yn gyfeiriadur WebDAV y gall unrhyw un ei gyrchu gyda'i fewngofnod / pasiad cais. +DAV_ALLOW_PUBLIC_DIR=Galluogi'r cyfeiriadur cyhoeddus generig (cyfeirlyfr pwrpasol WebDAV o'r enw "cyhoeddus" - nid oes angen mewngofnodi) +DAV_ALLOW_PUBLIC_DIRTooltip=Mae'r cyfeiriadur cyhoeddus generig yn gyfeiriadur WebDAV y gall unrhyw un ei gyrchu (yn y modd darllen ac ysgrifennu), heb unrhyw awdurdodiad (cyfrif mewngofnodi / cyfrinair). +DAV_ALLOW_ECM_DIR=Galluogi cyfeiriadur preifat DMS/ECM (cyfeiriadur gwraidd y modiwl DMS/ECM - angen mewngofnodi) +DAV_ALLOW_ECM_DIRTooltip=Y cyfeiriadur gwraidd lle mae'r holl ffeiliau'n cael eu huwchlwytho â llaw wrth ddefnyddio'r modiwl DMS / ECM. Yn yr un modd â mynediad o'r rhyngwyneb gwe, bydd angen mewngofnodi/cyfrinair dilys gyda chaniatâd digonol i gael mynediad iddo. +# Modules +Module0Name=Defnyddwyr a Grwpiau +Module0Desc=Rheoli Defnyddwyr / Gweithwyr a Grwpiau +Module1Name=Trydydd Partïon +Module1Desc=Rheoli cwmnïau a chysylltiadau (cwsmeriaid, rhagolygon...) +Module2Name=Masnachol +Module2Desc=Rheolaeth fasnachol +Module10Name=Cyfrifeg (syml) +Module10Desc=Adroddiadau cyfrifo syml (cyfnodolion, trosiant) yn seiliedig ar gynnwys cronfa ddata. Nid yw'n defnyddio unrhyw fwrdd cyfriflyfr. +Module20Name=Cynigion +Module20Desc=Rheoli cynigion masnachol +Module22Name=E-byst Torfol +Module22Desc=Rheoli e-bostio swmp +Module23Name=Egni +Module23Desc=Monitro'r defnydd o egni +Module25Name=Gorchmynion Gwerthu +Module25Desc=Rheoli archebion gwerthu +Module30Name=Anfonebau +Module30Desc=Rheoli anfonebau a nodiadau credyd ar gyfer cwsmeriaid. Rheoli anfonebau a nodiadau credyd ar gyfer cyflenwyr +Module40Name=Gwerthwyr +Module40Desc=Gwerthwyr a rheoli pryniant (archebion prynu a bilio anfonebau cyflenwyr) +Module42Name=Logiau Dadfygio +Module42Desc=Cyfleusterau logio (ffeil, syslog, ...). Mae logiau o'r fath at ddibenion technegol / dadfygio. +Module43Name=Bar Dadfygio +Module43Desc=Offeryn ar gyfer datblygwr sy'n ychwanegu bar dadfygio yn eich porwr. +Module49Name=Golygyddion +Module49Desc=Rheoli golygyddion +Module50Name=Cynhyrchion +Module50Desc=Rheoli Cynhyrchion +Module51Name=Post torfol +Module51Desc=Rheoli postio papur torfol +Module52Name=Stociau +Module52Desc=Rheoli stoc +Module53Name=Gwasanaethau +Module53Desc=Rheoli Gwasanaethau +Module54Name=Contractau/Tanysgrifiadau +Module54Desc=Rheoli contractau (gwasanaethau neu danysgrifiadau cylchol) +Module55Name=Codau bar +Module55Desc=Rheoli cod bar neu god QR +Module56Name=Taliad trwy drosglwyddiad credyd +Module56Desc=Rheoli taliadau cyflenwyr drwy orchmynion Trosglwyddo Credyd. Mae'n cynnwys cynhyrchu ffeil SEPA ar gyfer gwledydd Ewropeaidd. +Module57Name=Taliadau trwy Ddebyd Uniongyrchol +Module57Desc=Rheoli gorchmynion Debyd Uniongyrchol. Mae'n cynnwys cynhyrchu ffeil SEPA ar gyfer gwledydd Ewropeaidd. +Module58Name=CliciwchToDial +Module58Desc=Integreiddio system ClickToDial (Asterisk, ...) +Module60Name=Sticeri +Module60Desc=Rheoli sticeri +Module70Name=Ymyriadau +Module70Desc=Rheoli ymyrraeth +Module75Name=Nodiadau treuliau a thaith +Module75Desc=Rheoli treuliau a nodiadau taith +Module80Name=Cludo +Module80Desc=Rheoli nodyn cludo a danfon +Module85Name=Banciau ac Arian Parod +Module85Desc=Rheoli cyfrifon banc neu arian parod +Module100Name=Safle Allanol +Module100Desc=Ychwanegu dolen i wefan allanol fel eicon prif ddewislen. Mae'r wefan yn cael ei dangos mewn ffrâm o dan y ddewislen uchaf. +Module105Name=Mailman a SPIP +Module105Desc=Rhyngwyneb Mailman neu SPIP ar gyfer modiwl aelod +Module200Name=LDAP +Module200Desc=Cydamseru cyfeiriadur LDAP +Module210Name=PostNuke +Module210Desc=Integreiddio postNuke +Module240Name=Allforion data +Module240Desc=Offeryn i allforio data Dolibarr (gyda chymorth) +Module250Name=Mewnforio data +Module250Desc=Offeryn i fewnforio data i Ddolibarr (gyda chymorth) +Module310Name=Aelodau +Module310Desc=Rheoli aelodau sylfaen +Module320Name=Porthiant RSS +Module320Desc=Ychwanegu porthwr RSS i dudalennau Dolibarr +Module330Name=Llyfrnodau a Llwybrau Byr +Module330Desc=Crëwch lwybrau byr, sydd bob amser yn hygyrch, i'r tudalennau mewnol neu allanol yr ydych yn cyrchu'n aml iddynt +Module400Name=Prosiectau neu Arweinwyr +Module400Desc=Rheoli prosiectau, arweinwyr/cyfleoedd a/neu dasgau. Gallwch hefyd aseinio unrhyw elfen (anfoneb, archeb, cynnig, ymyrraeth, ...) i brosiect a chael golwg ar draws o olwg y prosiect. +Module410Name=Gwecalendr +Module410Desc=Integreiddio gwe-calendr +Module500Name=Trethi a Threuliau Arbennig +Module500Desc=Rheoli treuliau eraill (trethi gwerthu, trethi cymdeithasol neu gyllidol, difidendau, ...) +Module510Name=Cyflogau +Module510Desc=Cofnodi ac olrhain taliadau gweithwyr +Module520Name=Benthyciadau +Module520Desc=Rheoli benthyciadau +Module600Name=Hysbysiadau am ddigwyddiad busnes +Module600Desc=Anfon hysbysiadau e-bost a ysgogwyd gan ddigwyddiad busnes: fesul defnyddiwr (sefydliad wedi'i ddiffinio ar bob defnyddiwr), fesul cysylltiadau trydydd parti (sefydliad wedi'i ddiffinio ar gyfer pob trydydd parti) neu drwy e-byst penodol +Module600Long=Sylwch fod y modiwl hwn yn anfon e-byst mewn amser real pan fydd digwyddiad busnes penodol yn digwydd. Os ydych yn chwilio am nodwedd i anfon e-byst atgoffa ar gyfer digwyddiadau agenda, ewch i mewn i osod Agenda modiwl. +Module610Name=Amrywiadau Cynnyrch +Module610Desc=Creu amrywiadau cynnyrch (lliw, maint ac ati) +Module700Name=Rhoddion +Module700Desc=Rheoli rhoddion +Module770Name=Adroddiadau Treuliau +Module770Desc=Rheoli hawliadau adroddiadau treuliau (cludiant, pryd bwyd, ...) +Module1120Name=Cynigion Masnachol Gwerthwr +Module1120Desc=Cais am gynnig a phrisiau masnachol y gwerthwr +Module1200Name=Mantis +Module1200Desc=Integreiddio mantis +Module1520Name=Cynhyrchu Dogfennau +Module1520Desc=Cynhyrchu dogfennau e-bost torfol +Module1780Name=Tagiau/Categorïau +Module1780Desc=Creu tagiau/categori (cynhyrchion, cwsmeriaid, cyflenwyr, cysylltiadau neu aelodau) +Module2000Name=golygydd WYSIWYG +Module2000Desc=Caniatáu i feysydd testun gael eu golygu/fformatio gan ddefnyddio CKEditor (html) +Module2200Name=Prisiau Dynamig +Module2200Desc=Defnyddiwch ymadroddion mathemateg i gynhyrchu prisiau'n awtomatig +Module2300Name=Swyddi wedi'u hamserlennu +Module2300Desc=Rheoli swyddi a drefnwyd (alias cron neu dabl crono) +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) +Module2600Desc=Galluogi gweinydd SOAP Dolibarr sy'n darparu gwasanaethau API +Module2610Name=API/Gwasanaethau gwe (gweinydd REST) +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.) +Module2700Name=Gravatar +Module2700Desc=Defnyddiwch wasanaeth Gravatar ar-lein (www.gravatar.com) i ddangos llun o ddefnyddwyr/aelodau (a geir gyda'u negeseuon e-bost). Angen mynediad i'r Rhyngrwyd +Module2800Desc=Cleient FTP +Module2900Name=GeoIPMaxmind +Module2900Desc=Galluoedd trosi GeoIP Maxmind +Module3200Name=Archifau Annewidiadwy +Module3200Desc=Galluogi log na ellir ei newid o ddigwyddiadau busnes. Mae digwyddiadau'n cael eu harchifo mewn amser real. Mae'r log yn dabl darllen yn unig o ddigwyddiadau cadwyn y gellir eu hallforio. Gall y modiwl hwn fod yn orfodol ar gyfer rhai gwledydd. +Module3400Name=Rhwydweithiau Cymdeithasol +Module3400Desc=Galluogi meysydd Rhwydweithiau Cymdeithasol yn drydydd partïon a chyfeiriadau (skype, twitter, facebook, ...). +Module4000Name=HRM +Module4000Desc=Rheoli adnoddau dynol (rheoli adran, contractau gweithwyr a theimladau) +Module5000Name=Aml-gwmni +Module5000Desc=Yn eich galluogi i reoli cwmnïau lluosog +Module6000Name=Llif Gwaith Rhyng-fodiwlau +Module6000Desc=Rheoli llif gwaith rhwng gwahanol fodiwlau (creu gwrthrych a/neu newid statws yn awtomatig) +Module10000Name=Gwefannau +Module10000Desc=Creu gwefannau (cyhoeddus) gyda golygydd WYSIWYG. CMS gwefeistr neu ddatblygwr yw hwn (mae'n well gwybod iaith HTML a CSS). Gosodwch eich gweinydd gwe (Apache, Nginx, ...) i bwyntio at gyfeiriadur pwrpasol Dolibarr i'w gael ar-lein ar y rhyngrwyd gyda'ch enw parth eich hun. +Module20000Name=Gadael Rheoli Ceisiadau +Module20000Desc=Diffinio ac olrhain ceisiadau am wyliau gweithwyr +Module39000Name=Llawer Cynnyrch +Module39000Desc=Llawer, rhifau cyfresol, rheoli dyddiad bwyta-wrth/gwerthu ar gyfer cynhyrchion +Module40000Name=Aml-arian +Module40000Desc=Defnyddiwch arian cyfred amgen mewn prisiau a dogfennau +Module50000Name=PayBox +Module50000Desc=Cynnig tudalen talu ar-lein PayBox (cardiau credyd/debyd) i gwsmeriaid. Gellir defnyddio hwn i ganiatáu i'ch cwsmeriaid wneud taliadau ad-hoc neu daliadau sy'n ymwneud â gwrthrych penodol o Dolibarr (anfoneb, archeb ac ati...) +Module50100Name=POS SimplePOS +Module50100Desc=Modiwl Man Gwerthu SimplePOS (POS syml). +Module50150Name=POS TakePOS +Module50150Desc=Modiwl Man Gwerthu TakePOS (POS sgrin gyffwrdd, ar gyfer siopau, bariau neu fwytai). +Module50200Name=Paypal +Module50200Desc=Cynnig tudalen talu ar-lein PayPal i gwsmeriaid (cyfrif PayPal neu gardiau credyd/debyd). Gellir defnyddio hwn i ganiatáu i'ch cwsmeriaid wneud taliadau ad-hoc neu daliadau sy'n ymwneud â gwrthrych penodol o Dolibarr (anfoneb, archeb ac ati...) +Module50300Name=Streipen +Module50300Desc=Cynnig tudalen dalu ar-lein Stripe (cardiau credyd/debyd) i gwsmeriaid. Gellir defnyddio hwn i ganiatáu i'ch cwsmeriaid wneud taliadau ad-hoc neu daliadau sy'n ymwneud â gwrthrych penodol o Dolibarr (anfoneb, archeb ac ati...) +Module50400Name=Cyfrifeg (cofnod dwbl) +Module50400Desc=Rheoli cyfrifyddu (cofnodion dwbl, cefnogi Cyfrifon Cyffredinol ac Atodol). Allforio'r cyfriflyfr mewn sawl fformat meddalwedd cyfrifo arall. +Module54000Name=PrintIPP +Module54000Desc=Argraffu uniongyrchol (heb agor y dogfennau) gan ddefnyddio rhyngwyneb Cups IPP (Rhaid i'r argraffydd fod yn weladwy o'r gweinydd, a rhaid gosod CUPS ar y gweinydd). +Module55000Name=Pleidlais, Arolwg neu Bleidlais +Module55000Desc=Creu polau piniwn ar-lein, arolygon neu bleidleisiau (fel Doodle, Studs, RDVz ac ati...) +Module59000Name=Ymylon +Module59000Desc=Modiwl i ddilyn ymylon +Module60000Name=Comisiynau +Module60000Desc=Modiwl i reoli comisiynau +Module62000Name=Incoterms +Module62000Desc=Ychwanegu nodweddion i reoli Incoterms +Module63000Name=Adnoddau +Module63000Desc=Rheoli adnoddau (argraffwyr, ceir, ystafelloedd, ...) ar gyfer dyrannu i ddigwyddiadau +Permission11=Darllenwch anfonebau cwsmeriaid +Permission12=Creu/addasu anfonebau cwsmeriaid +Permission13=Annilysu anfonebau cwsmeriaid +Permission14=Dilysu anfonebau cwsmeriaid +Permission15=Anfon anfonebau cwsmeriaid trwy e-bost +Permission16=Creu taliadau ar gyfer anfonebau cwsmeriaid +Permission19=Dileu anfonebau cwsmeriaid +Permission21=Darllenwch gynigion masnachol +Permission22=Creu/addasu cynigion masnachol +Permission24=Dilysu cynigion masnachol +Permission25=Anfon cynigion masnachol +Permission26=Cau cynigion masnachol +Permission27=Dileu cynigion masnachol +Permission28=Cynigion masnachol allforio +Permission31=Darllen cynhyrchion +Permission32=Creu/addasu cynhyrchion +Permission34=Dileu cynhyrchion +Permission36=Gweld/rheoli cynhyrchion cudd +Permission38=Cynnyrch allforio +Permission39=Anwybyddu'r isafswm pris +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=Prosiectau allforio +Permission61=Darllenwch ymyriadau +Permission62=Creu/addasu ymyriadau +Permission64=Dileu ymyriadau +Permission67=Ymyriadau allforio +Permission68=Anfonwch ymyriadau trwy e-bost +Permission69=Dilysu ymyriadau +Permission70=Ymyriadau annilys +Permission71=Darllen yr aelodau +Permission72=Creu/addasu aelodau +Permission74=Dileu aelodau +Permission75=Sefydlu mathau o aelodaeth +Permission76=Allforio data +Permission78=Darllen tanysgrifiadau +Permission79=Creu/addasu tanysgrifiadau +Permission81=Darllenwch archebion cwsmeriaid +Permission82=Creu/addasu archebion cwsmeriaid +Permission84=Dilysu archebion cwsmeriaid +Permission86=Anfon archebion cwsmeriaid +Permission87=Cau archebion cwsmeriaid +Permission88=Canslo archebion cwsmeriaid +Permission89=Dileu archebion cwsmeriaid +Permission91=Darllenwch drethi cymdeithasol neu gyllidol a thaw +Permission92=Creu/addasu trethi cymdeithasol neu gyllidol a thaw +Permission93=Dileu trethi cymdeithasol neu gyllidol a thaw +Permission94=Allforio trethi cymdeithasol neu gyllidol +Permission95=Darllen adroddiadau +Permission101=Darllen yr anfoniadau +Permission102=Creu/addasu anfoniadau +Permission104=Dilysu anfoniadau +Permission105=Anfon anfoniadau trwy e-bost +Permission106=Anfoniadau allforio +Permission109=Dileu anfoniadau +Permission111=Darllenwch gyfrifon ariannol +Permission112=Creu/addasu/dileu a chymharu trafodion +Permission113=Sefydlu cyfrifon ariannol (creu, rheoli categorïau o drafodion banc) +Permission114=Cysoni trafodion +Permission115=Trafodion allforio a datganiadau cyfrif +Permission116=Trosglwyddiadau rhwng cyfrifon +Permission117=Rheoli anfon sieciau +Permission121=Darllen trydydd parti sy'n gysylltiedig â defnyddiwr +Permission122=Creu/addasu trydydd parti sy'n gysylltiedig â'r defnyddiwr +Permission125=Dileu trydydd partïon sy'n gysylltiedig â defnyddiwr +Permission126=Allforio trydydd parti +Permission130=Creu/addasu gwybodaeth talu trydydd 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) +Permission146=Darllen darparwyr +Permission147=Darllenwch ystadegau +Permission151=Darllenwch orchmynion talu debyd uniongyrchol +Permission152=Creu/addasu gorchmynion talu debyd uniongyrchol +Permission153=Anfon/Trosglwyddo gorchmynion talu debyd uniongyrchol +Permission154=Credydau Cofnod/Gwrthod gorchmynion talu debyd uniongyrchol +Permission161=Darllenwch gontractau/tanysgrifiadau +Permission162=Creu/addasu cytundebau/tanysgrifiadau +Permission163=Ysgogi gwasanaeth/tanysgrifiad o gontract +Permission164=Analluogi gwasanaeth/tanysgrifiad o gontract +Permission165=Dileu contractau/tanysgrifiadau +Permission167=Contractau allforio +Permission171=Darllen teithiau a threuliau (eich un chi a'ch is-weithwyr) +Permission172=Creu/addasu teithiau a threuliau +Permission173=Dileu teithiau a threuliau +Permission174=Darllenwch yr holl deithiau a threuliau +Permission178=Teithiau allforio a threuliau +Permission180=Darllenwch y cyflenwyr +Permission181=Darllenwch archebion prynu +Permission182=Creu/addasu archebion prynu +Permission183=Dilysu archebion prynu +Permission184=Cymeradwyo archebion prynu +Permission185=Archebu neu ganslo archebion prynu +Permission186=Derbyn archebion prynu +Permission187=Cau gorchmynion prynu +Permission188=Canslo archebion prynu +Permission192=Creu llinellau +Permission193=Canslo llinellau +Permission194=Darllenwch y llinellau lled band +Permission202=Creu cysylltiadau ADSL +Permission203=Archebu gorchmynion cysylltiadau +Permission204=Archebu cysylltiadau +Permission205=Rheoli cysylltiadau +Permission206=Darllen cysylltiadau +Permission211=Darllen Teleffoni +Permission212=Llinellau archebu +Permission213=Actifadu llinell +Permission214=Gosod Teleffoni +Permission215=Gosod darparwyr +Permission221=Darllen e-byst +Permission222=Creu/addasu e-byst (pwnc, derbynwyr...) +Permission223=Dilysu e-byst (yn caniatáu anfon) +Permission229=Dileu negeseuon e-bost +Permission237=Gweld derbynwyr a gwybodaeth +Permission238=Anfon post â llaw +Permission239=Dileu postiadau ar ôl eu dilysu neu eu hanfon +Permission241=Darllen categorïau +Permission242=Creu/addasu categorïau +Permission243=Dileu categorïau +Permission244=Gweld cynnwys y categorïau cudd +Permission251=Darllenwch ddefnyddwyr a grwpiau eraill +PermissionAdvanced251=Darllenwch ddefnyddwyr eraill +Permission252=Darllen caniatadau defnyddwyr eraill +Permission253=Creu/addasu defnyddwyr, grwpiau a chaniatadau eraill +PermissionAdvanced253=Creu/addasu defnyddwyr mewnol/allanol a chaniatâd +Permission254=Creu/addasu defnyddwyr allanol yn unig +Permission255=Addasu cyfrinair defnyddwyr eraill +Permission256=Dileu neu analluogi defnyddwyr eraill +Permission262=Ymestyn mynediad i bob trydydd parti A'u hamcanion (nid yn unig trydydd parti y mae'r defnyddiwr yn gynrychiolydd gwerthu ar eu cyfer).
    Ddim yn effeithiol ar gyfer defnyddwyr allanol (bob amser yn gyfyngedig iddynt hwy eu hunain ar gyfer cynigion, archebion, anfonebau, contractau, ac ati).
    Ddim yn effeithiol ar gyfer prosiectau (dim ond rheolau ar ganiatadau prosiect, gwelededd a materion aseiniad). +Permission263=Ymestyn mynediad i bob trydydd parti HEB eu hamcanion (nid dim ond trydydd parti y mae'r defnyddiwr yn gynrychiolydd gwerthu ar eu cyfer).
    Ddim yn effeithiol ar gyfer defnyddwyr allanol (bob amser yn gyfyngedig iddynt hwy eu hunain ar gyfer cynigion, archebion, anfonebau, contractau, ac ati).
    Ddim yn effeithiol ar gyfer prosiectau (dim ond rheolau ar ganiatadau prosiect, gwelededd a materion aseiniad). +Permission271=Darllenwch CA +Permission272=Darllen anfonebau +Permission273=Anfon anfonebau +Permission281=Darllen cysylltiadau +Permission282=Creu/addasu cysylltiadau +Permission283=Dileu cysylltiadau +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 +Permission311=Darllen gwasanaethau +Permission312=Neilltuo gwasanaeth/tanysgrifiad i gontract +Permission331=Darllenwch nodau tudalen +Permission332=Creu/addasu nodau tudalen +Permission333=Dileu nodau tudalen +Permission341=Darllenwch ei ganiatadau ei hun +Permission342=Creu/addasu ei wybodaeth defnyddiwr ei hun +Permission343=Addasu ei gyfrinair ei hun +Permission344=Addasu ei ganiatadau ei hun +Permission351=Darllen grwpiau +Permission352=Darllen caniatadau grwpiau +Permission353=Creu/addasu grwpiau +Permission354=Dileu neu analluogi grwpiau +Permission358=Defnyddwyr allforio +Permission401=Darllenwch ostyngiadau +Permission402=Creu/addasu gostyngiadau +Permission403=Dilysu gostyngiadau +Permission404=Dileu gostyngiadau +Permission430=Defnyddiwch Bar Dadfygio +Permission511=Darllenwch gyflogau a thaliadau (eich un chi ac is-weithwyr) +Permission512=Creu/addasu cyflogau a thaliadau +Permission514=Dileu cyflogau a thaliadau +Permission517=Darllenwch gyflogau a thaliadau pawb +Permission519=Cyflogau allforio +Permission520=Darllen Benthyciadau +Permission522=Creu/addasu benthyciadau +Permission524=Dileu benthyciadau +Permission525=Cyfrifiannell benthyciad mynediad +Permission527=Benthyciadau allforio +Permission531=Darllen gwasanaethau +Permission532=Creu/addasu gwasanaethau +Permission534=Dileu gwasanaethau +Permission536=Gweld/rheoli gwasanaethau cudd +Permission538=Gwasanaethau allforio +Permission561=Darllenwch orchmynion talu trwy drosglwyddiad credyd +Permission562=Creu/addasu archeb talu trwy drosglwyddiad credyd +Permission563=Anfon/Trosglwyddo archeb talu trwy drosglwyddiad credyd +Permission564=Cofnodi Debydau/Gwrthod trosglwyddo credyd +Permission601=Darllen sticeri +Permission602=Creu/addasu sticeri +Permission609=Dileu sticeri +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants +Permission650=Darllen Mesurau o Ddeunyddiau +Permission651=Creu/Diweddaru Biliau o Ddeunyddiau +Permission652=Dileu Biliau o Ddeunyddiau +Permission660=Darllen Gorchymyn Gweithgynhyrchu (MO) +Permission661=Creu/Diweddaru Gorchymyn Gweithgynhyrchu (MO) +Permission662=Dileu Gorchymyn Gweithgynhyrchu (MO) +Permission701=Darllenwch roddion +Permission702=Creu/addasu rhoddion +Permission703=Dileu rhoddion +Permission771=Darllenwch adroddiadau treuliau (eich un chi a'ch is-weithwyr) +Permission772=Creu/addasu adroddiadau treuliau (i chi a'ch is-weithwyr) +Permission773=Dileu adroddiadau treuliau +Permission775=Cymeradwyo adroddiadau treuliau +Permission776=Adroddiadau costau talu +Permission777=Darllenwch yr holl adroddiadau treuliau (hyd yn oed adroddiadau defnyddwyr nid is-weithwyr) +Permission778=Creu/addasu adroddiadau treuliau pawb +Permission779=Adroddiadau costau allforio +Permission1001=Darllenwch stociau +Permission1002=Creu/addasu warysau +Permission1003=Dileu warysau +Permission1004=Darllenwch symudiadau stoc +Permission1005=Creu/addasu symudiadau stoc +Permission1011=Gweld rhestrau eiddo +Permission1012=Creu rhestr newydd +Permission1014=Dilysu rhestr eiddo +Permission1015=Caniatáu i newid gwerth PMP ar gyfer cynnyrch +Permission1016=Dileu rhestr eiddo +Permission1101=Darllenwch dderbynebau danfon +Permission1102=Creu/addasu derbynebau danfon +Permission1104=Dilysu derbynebau danfon +Permission1109=Dileu derbynebau danfon +Permission1121=Darllenwch gynigion cyflenwyr +Permission1122=Creu/addasu cynigion cyflenwyr +Permission1123=Dilysu cynigion cyflenwyr +Permission1124=Anfon cynigion cyflenwyr +Permission1125=Dileu cynigion cyflenwyr +Permission1126=Cau ceisiadau pris cyflenwr +Permission1181=Darllenwch y cyflenwyr +Permission1182=Darllenwch archebion prynu +Permission1183=Creu/addasu archebion prynu +Permission1184=Dilysu archebion prynu +Permission1185=Cymeradwyo archebion prynu +Permission1186=Archebion prynu +Permission1187=Cydnabod derbyn archebion prynu +Permission1188=Dileu archebion prynu +Permission1189=Gwiriwch/Dad-diciwch dderbynfa archeb brynu +Permission1190=Cymeradwyo (ail gymeradwyaeth) archebion prynu +Permission1191=Allforio archebion cyflenwyr a'u priodoleddau +Permission1201=Cael canlyniad allforio +Permission1202=Creu/Addasu allforyn +Permission1231=Darllen anfonebau gwerthwr +Permission1232=Creu/addasu anfonebau gwerthwr +Permission1233=Dilysu anfonebau gwerthwr +Permission1234=Dileu anfonebau gwerthwr +Permission1235=Anfon anfonebau gwerthwr trwy e-bost +Permission1236=Allforio anfonebau gwerthwr, priodoleddau a thaliadau +Permission1237=Allforio archebion prynu a'u manylion +Permission1251=Rhedeg mewnforion data allanol torfol i gronfa ddata (llwyth data) +Permission1321=Allforio anfonebau cwsmeriaid, priodoleddau a thaliadau +Permission1322=Ailagor bil a dalwyd +Permission1421=Gorchmynion gwerthu allforio a phriodoleddau +Permission1521=Darllen dogfennau +Permission1522=Dileu dogfennau +Permission2401=Darllen gweithredoedd (digwyddiadau neu dasgau) sy'n gysylltiedig â'i gyfrif defnyddiwr (os yw perchennog y digwyddiad neu newydd ei neilltuo iddo) +Permission2402=Creu/addasu gweithredoedd (digwyddiadau neu dasgau) sy'n gysylltiedig â'i gyfrif defnyddiwr (os yw'n berchennog y digwyddiad) +Permission2403=Dileu gweithredoedd (digwyddiadau neu dasgau) sy'n gysylltiedig â'i gyfrif defnyddiwr (os yw'n berchennog y digwyddiad) +Permission2411=Darllen gweithredoedd (digwyddiadau neu dasgau) pobl eraill +Permission2412=Creu/addasu gweithredoedd (digwyddiadau neu dasgau) pobl eraill +Permission2413=Dileu gweithredoedd (digwyddiadau neu dasgau) pobl eraill +Permission2414=Allforio gweithredoedd/tasgau pobl eraill +Permission2501=Darllen/Lawrlwytho dogfennau +Permission2502=Lawrlwytho dogfennau +Permission2503=Cyflwyno neu ddileu dogfennau +Permission2515=Gosod cyfeiriaduron dogfennau +Permission2801=Defnyddiwch gleient FTP yn y modd darllen (pori a lawrlwytho yn unig) +Permission2802=Defnyddio cleient FTP yn y modd ysgrifennu (dileu neu uwchlwytho ffeiliau) +Permission3200=Darllenwch ddigwyddiadau wedi'u harchifo ac olion bysedd +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 +Permission4031=Read personal information +Permission4032=Write personal information +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. +Permission10005=Dileu cynnwys gwefan +Permission20001=Darllenwch geisiadau gwyliau (eich gwyliau a rhai eich is-weithwyr) +Permission20002=Creu/addasu eich ceisiadau am wyliau (eich gwyliau a rhai eich is-weithwyr) +Permission20003=Dileu ceisiadau am wyliau +Permission20004=Darllen pob cais am wyliau (hyd yn oed rhai defnyddwyr nid is-weithwyr) +Permission20005=Creu/addasu ceisiadau am wyliau i bawb (hyd yn oed rhai defnyddwyr nad ydynt yn is-weithwyr) +Permission20006=Gweinyddu ceisiadau am wyliau (gosod a diweddaru balans) +Permission20007=Cymeradwyo ceisiadau am wyliau +Permission23001=Darllenwch Swydd wedi'i Amserlennu +Permission23002=Creu/diweddaru swydd a drefnwyd +Permission23003=Dileu swydd a drefnwyd +Permission23004=Cyflawni swydd a drefnwyd +Permission50101=Defnyddio Pwynt Gwerthu (SimplePOS) +Permission50151=Defnyddio Man Gwerthu (TakePOS) +Permission50152=Golygu llinellau gwerthu +Permission50153=Golygu llinellau gwerthu archebedig +Permission50201=Darllen trafodion +Permission50202=Mewnforio trafodion +Permission50330=Darllen gwrthrychau Zapier +Permission50331=Creu/Diweddaru gwrthrychau Zapier +Permission50332=Dileu gwrthrychau Zapier +Permission50401=Rhwymo cynhyrchion ac anfonebau gyda chyfrifon cyfrifyddu +Permission50411=Darllen gweithrediadau yn y cyfriflyfr +Permission50412=Ysgrifennu/Golygu gweithrediadau yn y cyfriflyfr +Permission50414=Dileu gweithrediadau yn y cyfriflyfr +Permission50415=Dileu pob gweithrediad fesul blwyddyn a dyddlyfr yn y cyfriflyfr +Permission50418=Gweithrediadau allforio'r cyfriflyfr +Permission50420=Adrodd ac allforio adroddiadau (trosiant, balans, cyfnodolion, cyfriflyfr) +Permission50430=Diffinio cyfnodau cyllidol. Dilysu trafodion a chau cyfnodau cyllidol. +Permission50440=Rheoli siart cyfrifon, sefydlu cyfrifyddiaeth +Permission51001=Darllen asedau +Permission51002=Creu/Diweddaru asedau +Permission51003=Dileu asedau +Permission51005=Gosod mathau o asedau +Permission54001=Argraffu +Permission55001=Darllen polau +Permission55002=Creu/addasu polau piniwn +Permission59001=Darllenwch ymylon masnachol +Permission59002=Diffinio elw masnachol +Permission59003=Darllenwch ymyl pob defnyddiwr +Permission63001=Darllen adnoddau +Permission63002=Creu/addasu adnoddau +Permission63003=Dileu adnoddau +Permission63004=Cysylltu adnoddau â digwyddiadau agenda +Permission64001=Caniatáu argraffu uniongyrchol +Permission67000=Caniatáu argraffu derbynebau +Permission68001=Darllenwch adroddiad intracomm +Permission68002=Creu/addasu adroddiad intracomm +Permission68004=Dileu adroddiad intracomm +Permission941601=Darllen derbynebau +Permission941602=Creu ac addasu derbynebau +Permission941603=Dilysu derbynebau +Permission941604=Anfon derbynebau trwy e-bost +Permission941605=Derbynebau allforio +Permission941606=Dileu derbynebau +DictionaryCompanyType=Mathau trydydd parti +DictionaryCompanyJuridicalType=Endidau cyfreithiol trydydd parti +DictionaryProspectLevel=Lefel rhagolygon posibl ar gyfer cwmnïau +DictionaryProspectContactLevel=Rhagolwg lefel bosibl ar gyfer cysylltiadau +DictionaryCanton=Taleithiau/Gwladwriaethau +DictionaryRegion=Rhanbarthau +DictionaryCountry=Gwledydd +DictionaryCurrency=Arian cyfred +DictionaryCivility=Teitlau anrhydeddus +DictionaryActions=Mathau o ddigwyddiadau ar yr agenda +DictionarySocialContributions=Mathau o drethi cymdeithasol neu gyllidol +DictionaryVAT=Cyfraddau TAW neu Gyfraddau Treth Gwerthu +DictionaryRevenueStamp=Swm y stampiau treth +DictionaryPaymentConditions=Telerau Talu +DictionaryPaymentModes=Dulliau Talu +DictionaryTypeContact=Mathau o Gyswllt/Cyfeiriad +DictionaryTypeOfContainer=Gwefan - Math o dudalennau gwefan/cynwysyddion +DictionaryEcotaxe=Treth eco (WEEE) +DictionaryPaperFormat=Fformatau papur +DictionaryFormatCards=Fformatau cardiau +DictionaryFees=Adroddiad treuliau - Mathau o linellau adroddiad treuliau +DictionarySendingMethods=Dulliau cludo +DictionaryStaff=Nifer y Gweithwyr +DictionaryAvailability=Oedi cyflwyno +DictionaryOrderMethods=Dulliau archebu +DictionarySource=Tarddiad cynigion/gorchmynion +DictionaryAccountancyCategory=Grwpiau personol ar gyfer adroddiadau +DictionaryAccountancysystem=Modelau ar gyfer siart cyfrifon +DictionaryAccountancyJournal=Cylchgronau cyfrifeg +DictionaryEMailTemplates=Templedi E-bost +DictionaryUnits=Unedau +DictionaryMeasuringUnits=Unedau Mesur +DictionarySocialNetworks=Rhwydweithiau Cymdeithasol +DictionaryProspectStatus=Statws rhagolygon ar gyfer cwmnïau +DictionaryProspectContactStatus=Statws rhagolygon ar gyfer cysylltiadau +DictionaryHolidayTypes=Gadael - Mathau o wyliau +DictionaryOpportunityStatus=Statws arweiniol ar gyfer prosiect/arweinydd +DictionaryExpenseTaxCat=Adroddiad treuliau - Categorïau Trafnidiaeth +DictionaryExpenseTaxRange=Adroddiad treuliau - Ystod yn ôl categori cludiant +DictionaryTransportMode=Adroddiad Intracomm - Dull trafnidiaeth +DictionaryBatchStatus=Lot cynnyrch/statws Rheoli Ansawdd cyfresol +DictionaryAssetDisposalType=Math o waredu asedau +TypeOfUnit=Math o uned +SetupSaved=Gosodiad wedi'i gadw +SetupNotSaved=Nid yw'r gosodiad wedi'i gadw +BackToModuleList=Yn ôl i'r rhestr modiwlau +BackToDictionaryList=Yn ôl i'r rhestr Geiriaduron +TypeOfRevenueStamp=Math o stamp treth +VATManagement=Rheoli Treth Gwerthu +VATIsUsedDesc=Yn ddiofyn wrth greu rhagolygon, anfonebau, archebion ac ati, mae'r gyfradd Treth Gwerthu yn dilyn y rheol safonol weithredol:
    Os nad yw'r gwerthwr yn destun treth Gwerthiant, yna mae'r dreth Gwerthiant yn methu â chyrraedd 0. Diwedd y rheol.
    Os yw'r (gwlad y gwerthwr = gwlad y prynwr), yna mae'r dreth Werthu yn ddiofyn yn hafal i dreth Gwerthiant y cynnyrch yng ngwlad y gwerthwr. Diwedd y rheol.
    Os yw'r gwerthwr a'r prynwr yn y Gymuned Ewropeaidd a bod nwyddau'n gynhyrchion sy'n gysylltiedig â thrafnidiaeth (cludo, cludo, cwmni hedfan), y TAW rhagosodedig yw 0. Mae'r rheol hon yn dibynnu ar wlad y gwerthwr - ymgynghorwch â'ch cyfrifydd. Dylai'r TAW gael ei thalu gan y prynwr i'r swyddfa dollau yn ei wlad ac nid i'r gwerthwr. Diwedd y rheol.
    Os yw'r gwerthwr a'r prynwr ill dau yn y Gymuned Ewropeaidd ac nad yw'r prynwr yn gwmni (gyda rhif TAW cofrestredig o fewn y Gymuned) yna mae'r TAW yn ddiofyn i gyfradd TAW gwlad y gwerthwr. Diwedd y rheol.
    Os yw'r gwerthwr a'r prynwr ill dau yn y Gymuned Ewropeaidd a bod y prynwr yn gwmni (gyda rhif TAW cofrestredig o fewn y Gymuned), yna'r TAW yw 0 yn ddiofyn. Diwedd y rheol.
    Mewn unrhyw achos arall y rhagosodiad arfaethedig yw Treth Gwerthu=0. Diwedd y rheol. +VATIsNotUsedDesc=Yn ddiofyn, y dreth Gwerthiant arfaethedig yw 0 y gellir ei defnyddio ar gyfer achosion fel cymdeithasau, unigolion neu gwmnïau bach. +VATIsUsedExampleFR=Yn Ffrainc, mae'n golygu cwmnïau neu sefydliadau sydd â system gyllidol go iawn (Simplified real neu normal real). System lle mae TAW yn cael ei datgan. +VATIsNotUsedExampleFR=Yn Ffrainc, mae'n golygu cymdeithasau nad ydynt yn datgan treth Gwerthu neu gwmnïau, sefydliadau neu broffesiynau rhyddfrydol sydd wedi dewis y system gyllidol micro-fenter (Treth werthu mewn masnachfraint) ac wedi talu Treth Gwerthu masnachfraint heb unrhyw ddatganiad Treth Gwerthiant. Bydd y dewis hwn yn dangos y cyfeirnod "Treth Gwerthiant Amherthnasol - art-293B o CGI" ar anfonebau. +##### Local Taxes ##### +TypeOfSaleTaxes=Math o dreth gwerthu +LTRate=Cyfradd +LocalTax1IsNotUsed=Peidiwch â defnyddio ail dreth +LocalTax1IsUsedDesc=Defnyddiwch ail fath o dreth (heblaw am y dreth gyntaf) +LocalTax1IsNotUsedDesc=Peidiwch â defnyddio math arall o dreth (heblaw am y dreth gyntaf) +LocalTax1Management=Ail fath o dreth +LocalTax1IsUsedExample= +LocalTax1IsNotUsedExample= +LocalTax2IsNotUsed=Peidiwch â defnyddio trydydd treth +LocalTax2IsUsedDesc=Defnyddiwch drydydd math o dreth (heblaw am un cyntaf) +LocalTax2IsNotUsedDesc=Peidiwch â defnyddio math arall o dreth (heblaw am y dreth gyntaf) +LocalTax2Management=Trydydd math o dreth +LocalTax2IsUsedExample= +LocalTax2IsNotUsedExample= +LocalTax1ManagementES=Rheolaeth AG +LocalTax1IsUsedDescES=Mae'r gyfradd AG yn ddiofyn wrth greu rhagolygon, anfonebau, archebion ac ati yn dilyn y rheol safonol weithredol:
    Os nad yw'r prynwr yn destun RE, RE yn ddiofyn=0. Diwedd y rheol.
    Os yw'r prynwr yn destun AG yna'r AG yn ddiofyn. Diwedd y rheol.
    +LocalTax1IsNotUsedDescES=Yn ddiofyn, yr AG arfaethedig yw 0. Diwedd y rheol. +LocalTax1IsUsedExampleES=Yn Sbaen maent yn weithwyr proffesiynol sy'n ddarostyngedig i rai adrannau penodol o'r IAE Sbaeneg. +LocalTax1IsNotUsedExampleES=Yn Sbaen maent yn broffesiynol ac yn gymdeithasau ac yn ddarostyngedig i rai adrannau o'r IAE Sbaeneg. +LocalTax2ManagementES=Rheolaeth IRPF +LocalTax2IsUsedDescES=Mae cyfradd yr IRPF yn ddiofyn wrth greu rhagolygon, anfonebau, archebion ac ati yn dilyn y rheol safonol weithredol:
    Os nad yw'r gwerthwr yn destun IRPF, yna IRPF yn ddiofyn=0. Diwedd y rheol.
    Os yw'r gwerthwr yn destun IRPF yna'r IRPF yn ddiofyn. Diwedd y rheol.
    +LocalTax2IsNotUsedDescES=Yn ddiofyn, yr IRPF arfaethedig yw 0. Diwedd y rheol. +LocalTax2IsUsedExampleES=Yn Sbaen, gweithwyr llawrydd a gweithwyr proffesiynol annibynnol sy'n darparu gwasanaethau a chwmnïau sydd wedi dewis y system dreth o fodiwlau. +LocalTax2IsNotUsedExampleES=Yn Sbaen maent yn fusnesau nad ydynt yn destun system dreth o fodiwlau. +RevenueStampDesc=Mae'r "stamp treth" neu'r "stamp refeniw" yn dreth sefydlog ar bob anfoneb (Nid yw'n dibynnu ar swm yr anfoneb). Gall hefyd fod yn dreth y cant ond mae defnyddio'r ail neu'r trydydd math o dreth yn well ar gyfer trethi canrannol gan nad yw stampiau treth yn darparu unrhyw adrodd. Dim ond ychydig o wledydd sy'n defnyddio'r math hwn o dreth. +UseRevenueStamp=Defnyddiwch stamp treth +UseRevenueStampExample=Mae gwerth stamp treth yn cael ei ddiffinio yn ddiofyn yn y broses o osod geiriaduron (%s - %s - %s) +CalcLocaltax=Adroddiadau ar drethi lleol +CalcLocaltax1=Gwerthiant - Pryniannau +CalcLocaltax1Desc=Mae adroddiadau Trethi Lleol yn cael eu cyfrifo gyda'r gwahaniaeth rhwng gwerthiannau trethi lleol a phryniannau trethi lleol +CalcLocaltax2=Pryniannau +CalcLocaltax2Desc=Adroddiadau Trethi Lleol yw cyfanswm pryniannau trethi lleol +CalcLocaltax3=Gwerthiant +CalcLocaltax3Desc=Adroddiadau Trethi Lleol yw cyfanswm gwerthiant trethi lleol +NoLocalTaxXForThisCountry=Yn ôl y drefn o drethi (Gweler %s - %s - %s), nid oes angen i'ch gwlad ddefnyddio'r math hwn o dreth +LabelUsedByDefault=Label a ddefnyddir yn ddiofyn os na ellir dod o hyd i gyfieithiad ar gyfer cod +LabelOnDocuments=Label ar ddogfennau +LabelOrTranslationKey=Label neu allwedd cyfieithu +ValueOfConstantKey=Gwerth cysonyn cyfluniad +ConstantIsOn=Mae opsiwn %s ymlaen +NbOfDays=Nifer y dyddiau +AtEndOfMonth=Ar ddiwedd y mis +CurrentNext=A given day in month +Offset=Gwrthbwyso +AlwaysActive=Bob amser yn weithgar +Upgrade=Uwchraddio +MenuUpgrade=Uwchraddio / Ymestyn +AddExtensionThemeModuleOrOther=Defnyddio / gosod app / modiwl allanol +WebServer=Gweinydd gwe +DocumentRootServer=Cyfeiriadur gwraidd gweinydd gwe +DataRootServer=Cyfeiriadur ffeiliau data +IP=IP +Port=Porthladd +VirtualServerName=Enw gweinydd rhithwir +OS=OS +PhpWebLink=Dolen we-Php +Server=Gweinydd +Database=Cronfa Ddata +DatabaseServer=Gwesteiwr cronfa ddata +DatabaseName=Enw cronfa ddata +DatabasePort=Porth cronfa ddata +DatabaseUser=Defnyddiwr cronfa ddata +DatabasePassword=Cyfrinair cronfa ddata +Tables=Byrddau +TableName=Enw tabl +NbOfRecord=Nifer y cofnodion +Host=Gweinydd +DriverType=Math gyrrwr +SummarySystem=Crynodeb gwybodaeth system +SummaryConst=Rhestr o holl baramedrau gosod Dolibarr +MenuCompanySetup=Cwmni/Sefydliad +DefaultMenuManager= Rheolwr dewislen safonol +DefaultMenuSmartphoneManager=Rheolwr dewislen ffôn clyfar +Skin=Thema croen +DefaultSkin=Thema croen diofyn +MaxSizeList=Hyd mwyaf ar gyfer y rhestr +DefaultMaxSizeList=Uchafswm hyd rhagosodedig ar gyfer rhestrau +DefaultMaxSizeShortList=Hyd mwyaf rhagosodedig ar gyfer rhestrau byr (h.y. mewn cerdyn cwsmer) +MessageOfDay=Neges y dydd +MessageLogin=Neges tudalen mewngofnodi +LoginPage=Tudalen mewngofnodi +BackgroundImageLogin=Delwedd gefndir +PermanentLeftSearchForm=Ffurflen chwilio parhaol ar y ddewislen chwith +DefaultLanguage=Iaith ddiofyn +EnableMultilangInterface=Galluogi cefnogaeth amlieithog ar gyfer perthnasoedd cwsmeriaid neu werthwyr +EnableShowLogo=Dangoswch logo'r cwmni yn y ddewislen +CompanyInfo=Cwmni/Sefydliad +CompanyIds=Hunaniaethau Cwmni/Sefydliad +CompanyName=Enw +CompanyAddress=Cyfeiriad +CompanyZip=Sip +CompanyTown=Tref +CompanyCountry=Gwlad +CompanyCurrency=Prif arian cyfred +CompanyObject=Gwrthrych y cwmni +IDCountry=ID gwlad +Logo=Logo +LogoDesc=Prif logo'r cwmni. Bydd yn cael ei ddefnyddio mewn dogfennau a gynhyrchir (PDF, ...) +LogoSquarred=Logo (sgwar) +LogoSquarredDesc=Rhaid iddo fod yn eicon sgwarog (lled = uchder). Bydd y logo hwn yn cael ei ddefnyddio fel yr hoff eicon neu angen arall fel ar gyfer y bar dewislen uchaf (os nad yw wedi'i analluogi i'r gosodiad arddangos). +DoNotSuggestPaymentMode=Peidiwch ag awgrymu +NoActiveBankAccountDefined=Dim cyfrif banc gweithredol wedi'i ddiffinio +OwnerOfBankAccount=Perchennog cyfrif banc %s +BankModuleNotActive=Modiwl cyfrifon banc heb ei alluogi +ShowBugTrackLink=Dangos y ddolen " %s " +ShowBugTrackLinkDesc=Cadwch yn wag i beidio ag arddangos y ddolen hon, defnyddiwch werth 'gitub' ar gyfer y ddolen i brosiect Dolibarr neu diffiniwch url 'https://...' yn uniongyrchol +Alerts=Rhybuddion +DelaysOfToleranceBeforeWarning=Yn dangos rhybudd ar gyfer... +DelaysOfToleranceDesc=Gosodwch yr oedi cyn i eicon rhybudd %s gael ei ddangos ar y sgrin ar gyfer yr elfen hwyr. +Delays_MAIN_DELAY_ACTIONS_TODO=Digwyddiadau a gynlluniwyd (digwyddiadau agenda) heb eu cwblhau +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Prosiect heb ei gau mewn amser +Delays_MAIN_DELAY_TASKS_TODO=Tasg a gynlluniwyd (tasgau prosiect) heb ei chwblhau +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Archeb heb ei phrosesu +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Archeb brynu heb ei phrosesu +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Cynnig heb ei gau +Delays_MAIN_DELAY_PROPALS_TO_BILL=Cynnig heb ei filio +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Gwasanaeth i actifadu +Delays_MAIN_DELAY_RUNNING_SERVICES=Gwasanaeth wedi dod i ben +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Anfoneb gwerthwr heb ei thalu +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Anfoneb cwsmer heb ei thalu +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Wrthi'n aros am gysoniad banc +Delays_MAIN_DELAY_MEMBERS=Tâl aelodaeth gohiriedig +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Gwirio blaendal heb ei wneud +Delays_MAIN_DELAY_EXPENSEREPORTS=Adroddiad gwariant i'w gymeradwyo +Delays_MAIN_DELAY_HOLIDAYS=Gadael ceisiadau i gymeradwyo +SetupDescription1=Cyn dechrau defnyddio Dolibarr rhaid diffinio rhai paramedrau cychwynnol a galluogi/ffurfweddu modiwlau. +SetupDescription2=Mae'r ddwy adran ganlynol yn orfodol (y ddau gofnod cyntaf yn y ddewislen Gosod): +SetupDescription3= %s -> %s

    Paramedrau sylfaenol a ddefnyddir i addasu ymddygiad diofyn eich gwlad. +SetupDescription4= %s -> %s

    Mae'r meddalwedd hwn yn gyfres o lawer o fodiwlau/applications. Rhaid galluogi a ffurfweddu'r modiwlau sy'n gysylltiedig â'ch anghenion. Bydd cofnodion dewislen yn ymddangos gyda gweithrediad y modiwlau hyn. +SetupDescription5=Mae cofnodion dewislen Setup eraill yn rheoli paramedrau dewisol. +SetupDescriptionLink= %s - %s +SetupDescription3b=Paramedrau sylfaenol a ddefnyddir i addasu ymddygiad diofyn eich cais (e.e. ar gyfer nodweddion sy'n gysylltiedig â gwlad). +SetupDescription4b=Mae'r feddalwedd hon yn gyfres o lawer o fodiwlau/cymwysiadau. Rhaid galluogi a ffurfweddu'r modiwlau sy'n gysylltiedig â'ch anghenion. Bydd cofnodion dewislen yn ymddangos gyda gweithrediad y modiwlau hyn. +AuditedSecurityEvents=Digwyddiadau diogelwch sy'n cael eu harchwilio +NoSecurityEventsAreAduited=Nid oes unrhyw ddigwyddiadau diogelwch yn cael eu harchwilio. Gallwch eu galluogi o ddewislen %s +Audit=Digwyddiadau diogelwch +InfoDolibarr=Am Ddolibarr +InfoBrowser=Am Porwr +InfoOS=Am OS +InfoWebServer=Ynglŷn â Gweinydd Gwe +InfoDatabase=Ynghylch Cronfa Ddata +InfoPHP=Ynglŷn â PHP +InfoPerf=Am Berfformiadau +InfoSecurity=Am Ddiogelwch +BrowserName=Enw porwr +BrowserOS=Porwr OS +ListOfSecurityEvents=Rhestr o ddigwyddiadau diogelwch Dolibarr +SecurityEventsPurged=Cael gwared ar ddigwyddiadau diogelwch +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. +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. +AvailableModules=Ap/modiwlau ar gael +ToActivateModule=I actifadu modiwlau, ewch ar setup Area (Cartref-> Setup-> Modiwlau). +SessionTimeOut=Amser allan ar gyfer sesiwn +SessionExplanation=Mae'r rhif hwn yn gwarantu na fydd y sesiwn byth yn dod i ben cyn yr oedi hwn, os gwneir y glanhawr sesiwn gan lanhawr sesiwn PHP Mewnol (a dim byd arall). Nid yw glanhawr sesiwn PHP mewnol yn gwarantu y bydd y sesiwn yn dod i ben ar ôl yr oedi hwn. Bydd yn dod i ben, ar ôl yr oedi hwn, a phan fydd y glanhawr sesiwn yn cael ei redeg, felly mae pob mynediad %s/%s
    , ond dim ond yn ystod mynediad a wneir gan sesiynau eraill (os mai dim ond 0 yw'r gwerth allanol a wneir, ond dim ond yn ystod mynediad a wneir gan sesiynau eraill y mae gwerth 0 yn cael ei wneud. broses).
    Nodyn: ar rai gweinyddwyr gyda mecanwaith glanhau sesiwn allanol (cron o dan debian, ubuntu ...), gellir dinistrio'r sesiynau ar ôl cyfnod a ddiffinnir gan osodiad allanol, ni waeth beth yw'r gwerth a nodir yma. +SessionsPurgedByExternalSystem=Mae'n ymddangos bod sesiynau ar y gweinydd hwn yn cael eu glanhau gan fecanwaith allanol (cron o dan debian, ubuntu ...), mae'n debyg bob %s eiliad (= gwerth y paramedr a0aee833658307fz04444444487fz083365837fz040000000000000000000) Rhaid i chi ofyn i weinyddwr y gweinydd newid oedi sesiwn. +TriggersAvailable=Sbardunau sydd ar gael +TriggersDesc=Sbardunau yw ffeiliau a fydd yn addasu ymddygiad llif gwaith Dolibarr ar ôl ei gopïo i'r cyfeiriadur htdocs/core/triggers . Maent yn gwireddu camau gweithredu newydd, wedi'u actifadu ar ddigwyddiadau Dolibarr (creu cwmni newydd, dilysu anfonebau, ...). +TriggerDisabledByName=Mae sbardunau yn y ffeil hon wedi'u hanalluogi gan yr ôl-ddodiad -NORUN yn eu henw. +TriggerDisabledAsModuleDisabled=Mae sbardunau yn y ffeil hon wedi'u hanalluogi gan fod modiwl %s wedi'i analluogi. +TriggerAlwaysActive=Mae sbardunau yn y ffeil hon bob amser yn weithredol, beth bynnag yw'r modiwlau Dolibarr actifedig. +TriggerActiveAsModuleActive=Mae sbardunau yn y ffeil hon yn weithredol gan fod modiwl %s wedi'i alluogi. +GeneratedPasswordDesc=Dewiswch y dull i'w ddefnyddio ar gyfer cyfrineiriau a gynhyrchir yn awtomatig. +DictionaryDesc=Mewnosodwch yr holl ddata cyfeirio. Gallwch ychwanegu eich gwerthoedd at y rhagosodiad. +ConstDesc=Mae'r dudalen hon yn eich galluogi i olygu (diystyru) paramedrau nad ydynt ar gael mewn tudalennau eraill. Paramedrau neilltuedig yw'r rhain yn bennaf ar gyfer datblygwyr / datrys problemau uwch yn unig. +MiscellaneousDesc=Mae'r holl baramedrau eraill sy'n ymwneud â diogelwch wedi'u diffinio yma. +LimitsSetup=Cyfyngiadau / Gosodiad manwl gywir +LimitsDesc=Gallwch ddiffinio terfynau, manwl gywirdeb ac optimeiddiadau a ddefnyddir gan Dolibarr yma +MAIN_MAX_DECIMALS_UNIT=Max. degolion ar gyfer prisiau uned +MAIN_MAX_DECIMALS_TOT=Max. degolion am gyfanswm prisiau +MAIN_MAX_DECIMALS_SHOWN=Max. degolion ar gyfer prisiau a ddangosir ar y sgrin . Ychwanegu ellipsis ... ar ôl y paramedr hwn (e.e. "2...") os ydych am weld " ... " wedi'i atodi i'r pris. +MAIN_ROUNDING_RULE_TOT=Cam yr ystod talgrynnu (ar gyfer gwledydd lle mae talgrynnu yn cael ei wneud ar rywbeth heblaw sylfaen 10. Er enghraifft, rhowch 0.05 os gwneir talgrynnu fesul 0.05 cam) +UnitPriceOfProduct=Pris uned net cynnyrch +TotalPriceAfterRounding=Cyfanswm y pris (heb gynnwys treth/taw/gan gynnwys treth) ar ôl talgrynnu +ParameterActiveForNextInputOnly=Paramedr yn effeithiol ar gyfer mewnbwn nesaf yn unig +NoEventOrNoAuditSetup=Nid oes unrhyw ddigwyddiad diogelwch wedi'i gofnodi. Mae hyn yn arferol os nad yw Archwilio wedi'i alluogi yn y dudalen "Setup - Security - Events". +NoEventFoundWithCriteria=Ni chanfuwyd unrhyw ddigwyddiad diogelwch ar gyfer y maen prawf chwilio hwn. +SeeLocalSendMailSetup=Gweld eich gosodiad anfonbost lleol +BackupDesc=Mae angen dau gam ar gyfer copi wrth gefn cyflawn o osodiad Dolibarr. +BackupDesc2=Gwneud copi wrth gefn o gynnwys y cyfeiriadur "dogfennau" ( %s ) sy'n cynnwys yr holl ffeiliau a uwchlwythwyd ac a gynhyrchir. Bydd hyn hefyd yn cynnwys yr holl ffeiliau dympio a gynhyrchir yng Ngham 1. Gall y llawdriniaeth hon bara sawl munud. +BackupDesc3=Gwneud copi wrth gefn o strwythur a chynnwys eich cronfa ddata ( %s ) i mewn i ffeil dympio. Ar gyfer hyn, gallwch ddefnyddio'r cynorthwyydd canlynol. +BackupDescX=Dylid storio'r cyfeiriadur sydd wedi'i archifo mewn man diogel. +BackupDescY=Dylid storio'r ffeil dympio a gynhyrchir mewn man diogel. +BackupPHPWarning=Ni ellir gwarantu copi wrth gefn gyda'r dull hwn. Argymhellir yr un blaenorol. +RestoreDesc=I adfer copi wrth gefn Dolibarr, mae angen dau gam. +RestoreDesc2=Adfer y ffeil wrth gefn (ffeil zip er enghraifft) o'r cyfeiriadur "dogfennau" i osodiad Dolibarr newydd neu i'r cyfeiriadur dogfennau cyfredol hwn ( %s ). +RestoreDesc3=Adfer strwythur y gronfa ddata a data o ffeil dympio wrth gefn i gronfa ddata gosodiad newydd Dolibarr neu i gronfa ddata'r gosodiad cyfredol hwn ( %s ). Rhybudd, unwaith y bydd yr adferiad wedi'i gwblhau, rhaid i chi ddefnyddio mewngofnodi / cyfrinair, a oedd yn bodoli o'r amser / gosodiad wrth gefn i gysylltu eto.
    I adfer cronfa ddata wrth gefn i'r gosodiad cyfredol hwn, gallwch ddilyn y cynorthwyydd hwn. +RestoreMySQL=Mewnforio MySQL +ForcedToByAModule=Mae'r rheol hon yn cael ei gorfodi i %s gan fodiwl wedi'i actifadu +ValueIsForcedBySystem=Mae'r gwerth hwn yn cael ei orfodi gan y system. Ni allwch ei newid. +PreviousDumpFiles=Ffeiliau wrth gefn presennol +PreviousArchiveFiles=Ffeiliau archif presennol +WeekStartOnDay=Diwrnod cyntaf yr wythnos +RunningUpdateProcessMayBeRequired=Mae'n ymddangos bod angen rhedeg y broses uwchraddio (mae fersiwn y rhaglen %s yn wahanol i fersiwn Cronfa Ddata %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Rhaid i chi redeg y gorchymyn hwn o'r llinell orchymyn ar ôl mewngofnodi i gragen gyda defnyddiwr %s neu mae'n rhaid i chi ychwanegu -W opsiwn ar ddiwedd y llinell orchymyn i ddarparu a0ecb49f8z0 cyfrinair %s. +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 +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 +TranslationUncomplete=Cyfieithiad rhannol +MAIN_DISABLE_METEO=Analluogi bawd tywydd +MeteoStdMod=Modd safonol +MeteoStdModEnabled=Modd safonol wedi'i alluogi +MeteoPercentageMod=Modd canrannol +MeteoPercentageModEnabled=Modd canrannol wedi'i alluogi +MeteoUseMod=Cliciwch i ddefnyddio %s +TestLoginToAPI=Profi mewngofnodi i API +ProxyDesc=Mae rhai o nodweddion Dolibarr angen mynediad i'r rhyngrwyd. Diffiniwch yma baramedrau cysylltiad rhyngrwyd fel mynediad trwy weinydd dirprwy os oes angen. +ExternalAccess=Mynediad Allanol/Rhyngrwyd +MAIN_PROXY_USE=Defnyddiwch weinydd dirprwyol (fel arall mae mynediad uniongyrchol i'r rhyngrwyd) +MAIN_PROXY_HOST=Gweinydd dirprwyol: Enw/Cyfeiriad +MAIN_PROXY_PORT=Gweinydd dirprwyol: Port +MAIN_PROXY_USER=Gweinydd dirprwy: Mewngofnodi / Defnyddiwr +MAIN_PROXY_PASS=Gweinydd dirprwyol: Cyfrinair +DefineHereComplementaryAttributes=Diffiniwch unrhyw briodoleddau ychwanegol / arfer y mae'n rhaid eu hychwanegu at: %s +ExtraFields=Priodoleddau cyflenwol +ExtraFieldsLines=Priodoleddau cyflenwol (llinellau) +ExtraFieldsLinesRec=Priodoleddau cyflenwol (templedi llinellau anfonebau) +ExtraFieldsSupplierOrdersLines=Priodoleddau cyflenwol (llinellau archeb) +ExtraFieldsSupplierInvoicesLines=Priodoleddau cyflenwol (llinellau anfoneb) +ExtraFieldsThirdParties=Nodweddion cyflenwol (trydydd parti) +ExtraFieldsContacts=Priodoleddau cyflenwol (cysylltiadau/cyfeiriad) +ExtraFieldsMember=Priodoleddau cyflenwol (aelod) +ExtraFieldsMemberType=Priodoleddau cyflenwol (math o aelod) +ExtraFieldsCustomerInvoices=Priodoleddau cyflenwol (anfonebau) +ExtraFieldsCustomerInvoicesRec=Priodoleddau cyflenwol (anfonebau templedi) +ExtraFieldsSupplierOrders=Priodoleddau cyflenwol (gorchmynion) +ExtraFieldsSupplierInvoices=Priodoleddau cyflenwol (anfonebau) +ExtraFieldsProject=Priodoleddau cyflenwol (prosiectau) +ExtraFieldsProjectTask=Priodoleddau cyflenwol (tasgau) +ExtraFieldsSalaries=Priodoleddau cyflenwol (cyflogau) +ExtraFieldHasWrongValue=Mae gan briodwedd %s werth anghywir. +AlphaNumOnlyLowerCharsAndNoSpace=dim ond alffaniwmerig a llythrennau bach heb ofod +SendmailOptionNotComplete=Rhybudd, ar rai systemau Linux, i anfon e-bost o'ch e-bost, rhaid i setup gweithredu sendmail gynnwys opsiwn -ba (paramedr mail.force_extra_parameters i mewn i'ch ffeil php.ini). Os nad yw rhai derbynwyr byth yn derbyn e-byst, ceisiwch olygu'r paramedr PHP hwn gyda mail.force_extra_parameters = -ba). +PathToDocuments=Llwybr i ddogfennau +PathDirectory=Cyfeiriadur +SendmailOptionMayHurtBuggedMTA=Bydd nodwedd i anfon post gan ddefnyddio'r dull "Post PHP mail Direct" yn cynhyrchu neges e-bost na fydd efallai'n cael ei dosrannu'n gywir gan rai gweinyddwyr post sy'n derbyn. Y canlyniad yw na all rhai postiadau gael eu darllen gan bobl sy'n cael eu cynnal gan y platfformau bygio hynny. Mae hyn yn wir am rai darparwyr Rhyngrwyd (Ex: Orange in France). Nid yw hyn yn broblem gyda Dolibarr neu PHP ond gyda'r gweinydd post derbyn. Fodd bynnag, gallwch ychwanegu opsiwn MAIN_FIX_FOR_BUGGED_MTA i 1 yn Gosod - Arall i addasu Dolibarr i osgoi hyn. Fodd bynnag, efallai y byddwch yn cael problemau gyda gweinyddwyr eraill sy'n defnyddio'r safon SMTP yn llym. Yr ateb arall (a argymhellir) yw defnyddio'r dull "llyfrgell soced SMTP" nad oes ganddo unrhyw anfanteision. +TranslationSetup=Gosod cyfieithiad +TranslationKeySearch=Chwilio allwedd neu linyn cyfieithu +TranslationOverwriteKey=Trosysgrifo llinyn cyfieithu +TranslationDesc=Sut i osod yr iaith arddangos: A0342FCCFA19BZ0 * DEFAUTY / SYSTEMWIDE: MENU Hafan -> Arddangos A0A65D071F6FCC9Z0 A0A62FCCFA19BZ0 * Fesul Defnyddiwr: Cliciwch ar yr Enw Defnyddiwr ar ben y sgrin ac Addaswch y Setup Arddangos Defnyddiwr A0A65D071F6FCC9z0 ar y defnyddiwr cerdyn. +TranslationOverwriteDesc=Gallwch hefyd ddiystyru llinynnau llenwi'r tabl canlynol. Dewiswch eich iaith o'r gwymplen "%s", rhowch y llinyn allwedd cyfieithu i "%s" a'ch cyfieithiad newydd i "%s" +TranslationOverwriteDesc2=Gallwch ddefnyddio'r tab arall i'ch helpu chi i wybod pa allwedd cyfieithu i'w defnyddio +TranslationString=Llinyn cyfieithu +CurrentTranslationString=Llinyn cyfieithu cyfredol +WarningAtLeastKeyOrTranslationRequired=Mae angen meini prawf chwilio o leiaf ar gyfer allwedd neu linyn cyfieithu +NewTranslationStringToShow=Llinyn cyfieithu newydd i'w ddangos +OriginalValueWas=Mae'r cyfieithiad gwreiddiol wedi'i drosysgrifennu. Gwerth gwreiddiol oedd:

    %s +TransKeyWithoutOriginalValue=Rydych wedi gorfodi cyfieithiad newydd ar gyfer yr allwedd cyfieithu ' %s ' nad yw'n bodoli mewn unrhyw ffeil iaith +TitleNumberOfActivatedModules=Modiwlau wedi'u hysgogi +TotalNumberOfActivatedModules=Modiwlau wedi'u hysgogi: %s / %s +YouMustEnableOneModule=Rhaid i chi alluogi 1 modiwl o leiaf +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +ClassNotFoundIntoPathWarning=Dosbarth %s heb ei ganfod yn llwybr PHP +YesInSummer=Ie yn yr haf +OnlyFollowingModulesAreOpenedToExternalUsers=Sylwch, dim ond y modiwlau canlynol sydd ar gael i ddefnyddwyr allanol (waeth beth fo caniatâd defnyddwyr o'r fath) a dim ond os rhoddir caniatâd:
    +SuhosinSessionEncrypt=Storfa sesiwn wedi'i hamgryptio gan Suhosin +ConditionIsCurrently=Y cyflwr ar hyn o bryd yw %s +YouUseBestDriver=Rydych chi'n defnyddio gyrrwr %s sef y gyrrwr gorau sydd ar gael ar hyn o bryd. +YouDoNotUseBestDriver=Rydych chi'n defnyddio gyrrwr %s ond argymhellir gyrrwr %s. +NbOfObjectIsLowerThanNoPb=Dim ond %s %s sydd gennych yn y gronfa ddata. Nid yw hyn yn gofyn am unrhyw optimeiddio penodol. +ComboListOptim=Optimeiddio llwytho rhestr combo +SearchOptim=Chwilio optimeiddio +YouHaveXObjectUseComboOptim=Mae gennych %s %s yn y gronfa ddata. Gallwch chi fynd i mewn i osod modiwl i alluogi llwytho'r rhestr combo ar ddigwyddiad gwasgu allweddol. +YouHaveXObjectUseSearchOptim=Mae gennych %s %s yn y gronfa ddata. Gallwch ychwanegu'r %s cyson i 1 yn Home-Setup-Other. +YouHaveXObjectUseSearchOptimDesc=Mae hyn yn cyfyngu'r chwiliad i ddechrau llinynnau sy'n ei gwneud yn bosibl i'r gronfa ddata ddefnyddio mynegeion a dylech gael ymateb ar unwaith. +YouHaveXObjectAndSearchOptimOn=Mae gennych %s %s yn y gronfa ddata ac mae %s cyson wedi'i osod i %s yn Home-Setup-Arall. +BrowserIsOK=Rydych chi'n defnyddio'r porwr gwe %s. Mae'r porwr hwn yn iawn ar gyfer diogelwch a pherfformiad. +BrowserIsKO=Rydych chi'n defnyddio'r porwr gwe %s. Mae'n hysbys bod y porwr hwn yn ddewis gwael o ran diogelwch, perfformiad a dibynadwyedd. Rydym yn argymell defnyddio Firefox, Chrome, Opera neu Safari. +PHPModuleLoaded=Mae elfen PHP %s yn cael ei lwytho +PreloadOPCode=Defnyddir OPCode wedi'i lwytho ymlaen llaw +AddRefInList=Arddangos Cwsmer/Gwerthwr cyf. i mewn i restrau combo.
    Bydd Trydydd Partïon yn ymddangos gyda fformat enw o "CC12345 - SC45678 - The Big Company corp." yn lle "Corp y Cwmni Mawr". +AddVatInList=Arddangos rhif TAW Cwsmer/Gwerthwr i restrau combo. +AddAdressInList=Arddangos cyfeiriad Cwsmer / Gwerthwr i restrau combo.
    Bydd Trydydd Partïon yn ymddangos gyda fformat enw o "The Big Company Corp. - 21 jump street 123456 Big town - USA" yn lle "The Big Company corp". +AddEmailPhoneTownInContactList=Arddangos E-bost Cyswllt (neu ffonau os nad ydynt wedi'u diffinio) a rhestr gwybodaeth tref (rhestr ddewisol neu flwch combo)
    Bydd cysylltiadau yn ymddangos gyda fformat enw o "Dupond Durand - dupond.durand@email.com - Paris" neu "Dupond Durand - 06 07 59 65 66 - Paris" yn lle "Dupond Durand". +AskForPreferredShippingMethod=Gofynnwch am y dull cludo a ffefrir ar gyfer Trydydd Partïon. +FieldEdition=Argraffiad maes %s +FillThisOnlyIfRequired=Enghraifft: +2 (llenwi dim ond os ceir problemau gwrthbwyso cylchfa amser) +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. +PasswordGenerationNone=Peidiwch ag awgrymu cyfrinair a gynhyrchir. Rhaid teipio cyfrinair â llaw. +PasswordGenerationPerso=Dychwelwch gyfrinair yn ôl eich cyfluniad personol. +SetupPerso=Yn ôl eich cyfluniad +PasswordPatternDesc=Disgrifiad patrwm cyfrinair +##### Users setup ##### +RuleForGeneratedPasswords=Rheolau i gynhyrchu a dilysu cyfrineiriau +DisableForgetPasswordLinkOnLogonPage=Peidiwch â dangos y ddolen "Anghofio Cyfrinair" ar y dudalen Mewngofnodi +UsersSetup=Gosod modiwlau defnyddwyr +UserMailRequired=Mae angen e-bost i greu defnyddiwr newydd +UserHideInactive=Cuddio defnyddwyr anactif o bob rhestr gyfun o ddefnyddwyr (Heb ei hargymell: gall hyn olygu na fyddwch yn gallu hidlo na chwilio ar hen ddefnyddwyr ar rai tudalennau) +UsersDocModules=Templedi dogfen ar gyfer dogfennau a gynhyrchir o gofnod defnyddiwr +GroupsDocModules=Templedi dogfen ar gyfer dogfennau a gynhyrchir o gofnod grŵp +##### HRM setup ##### +HRMSetup=Gosod modiwl HRM +##### Company setup ##### +CompanySetup=Gosod modiwlau cwmnïau +CompanyCodeChecker=Opsiynau ar gyfer cynhyrchu codau cwsmer/gwerthwr yn awtomatig +AccountCodeManager=Opsiynau ar gyfer cynhyrchu codau cyfrifo cwsmeriaid/gwerthwr yn awtomatig +NotificationsDesc=Gellir anfon hysbysiadau e-bost yn awtomatig ar gyfer rhai digwyddiadau Dolibarr.
    Gellir diffinio derbynwyr hysbysiadau: +NotificationsDescUser=* fesul defnyddiwr, un defnyddiwr ar y tro. +NotificationsDescContact=* fesul cyswllt trydydd parti (cwsmeriaid neu werthwyr), un cyswllt ar y tro. +NotificationsDescGlobal=* neu drwy osod cyfeiriadau e-bost byd-eang ar dudalen gosod y modiwl. +ModelModules=Templedi Dogfennau +DocumentModelOdt=Cynhyrchu dogfennau o dempledi OpenDocument (ffeiliau .ODT / .ODS o LibreOffice, OpenOffice, KOffice, TextEdit,...) +WatermarkOnDraft=Dyfrnod ar y ddogfen ddrafft +JSOnPaimentBill=Ysgogi'r nodwedd i awtolenwi llinellau talu ar y ffurflen dalu +CompanyIdProfChecker=Rheolau ar gyfer IDau Proffesiynol +MustBeUnique=Rhaid bod yn unigryw? +MustBeMandatory=Gorfodol creu trydydd parti (os yw rhif TAW neu fath o gwmni wedi'i ddiffinio) ? +MustBeInvoiceMandatory=Gorfodol i ddilysu anfonebau? +TechnicalServicesProvided=Gwasanaethau technegol a ddarperir +#####DAV ##### +WebDAVSetupDesc=Dyma'r ddolen i gael mynediad i gyfeiriadur WebDAV. Mae'n cynnwys cyfeiriad "cyhoeddus" sy'n agored i unrhyw ddefnyddiwr sy'n gwybod yr URL (os caniateir mynediad i'r cyfeiriadur cyhoeddus) a chyfeiriadur "preifat" sydd angen cyfrif mewngofnodi / cyfrinair presennol ar gyfer mynediad. +WebDavServer=URL gwraidd gweinydd %s: %s +##### Webcal setup ##### +WebCalUrlForVCalExport=Mae dolen allforio i fformat %s ar gael yn y ddolen ganlynol: %s +##### Invoices ##### +BillsSetup=Gosod modiwlau anfonebau +BillsNumberingModule=Model rhifo anfonebau a nodiadau credyd +BillsPDFModules=Modelau dogfennau anfoneb +BillsPDFModulesAccordindToInvoiceType=Modelau dogfennau anfoneb yn ôl math o anfoneb +PaymentsPDFModules=Modelau dogfennau talu +ForceInvoiceDate=Gorfodi dyddiad anfoneb i'r dyddiad dilysu +SuggestedPaymentModesIfNotDefinedInInvoice=Modd talu a awgrymir ar anfoneb yn ddiofyn os nad yw wedi'i ddiffinio ar yr anfoneb +SuggestPaymentByRIBOnAccount=Awgrymu taliad trwy godi arian ar gyfrif +SuggestPaymentByChequeToAddress=Awgrymu taliad gyda siec i +FreeLegalTextOnInvoices=Testun am ddim ar anfonebau +WatermarkOnDraftInvoices=Dyfrnod ar anfonebau drafft (dim os yn wag) +PaymentsNumberingModule=Model rhifo taliadau +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. +##### Proposals ##### +PropalSetup=Gosod modiwlau cynigion masnachol +ProposalsNumberingModules=Modelau rhifo cynigion masnachol +ProposalsPDFModules=Modelau dogfennau cynnig masnachol +SuggestedPaymentModesIfNotDefinedInProposal=Modd talu a awgrymir ar gynnig yn ddiofyn os na chaiff ei ddiffinio ar y cynnig +FreeLegalTextOnProposal=Testun rhydd ar gynigion masnachol +WatermarkOnDraftProposal=Dyfrnod ar gynigion masnachol drafft (dim os yn wag) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Gofynnwch am gyrchfan cyfrif banc y cynnig +##### SupplierProposal ##### +SupplierProposalSetup=Pris yn gofyn am osod modiwlau cyflenwyr +SupplierProposalNumberingModules=Pris yn gofyn am fodelau rhifo cyflenwyr +SupplierProposalPDFModules=Pris ceisiadau cyflenwyr dogfennau modelau +FreeLegalTextOnSupplierProposal=Testun am ddim ar gyflenwyr ceisiadau pris +WatermarkOnDraftSupplierProposal=Dyfrnod ar bris drafft yn gofyn am gyflenwyr (dim os yw'n wag) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Gofynnwch am gyrchfan cyfrif banc y cais pris +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Gofynnwch am Warehouse Source am archeb +##### Suppliers Orders ##### +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Gofynnwch am gyrchfan cyfrif banc archeb brynu +##### Orders ##### +SuggestedPaymentModesIfNotDefinedInOrder=Modd talu a awgrymir ar orchymyn gwerthu yn ddiofyn os na chaiff ei ddiffinio ar yr archeb +OrdersSetup=Trefniant rheoli Gorchmynion Gwerthu +OrdersNumberingModules=Gorchmynion rhifo modelau +OrdersModelModule=Archebu modelau dogfennau +FreeLegalTextOnOrders=Testun am ddim ar archebion +WatermarkOnDraftOrders=Dyfrnod ar orchmynion drafft (dim os yn wag) +ShippableOrderIconInList=Ychwanegu eicon yn y rhestr Gorchmynion sy'n nodi a oes modd anfon archeb +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Gofynnwch am gyrchfan archeb cyfrif banc +##### Interventions ##### +InterventionsSetup=Gosod modiwl ymyriadau +FreeLegalTextOnInterventions=Testun rhydd ar ddogfennau ymyrraeth +FicheinterNumberingModules=Modelau rhifo ymyrraeth +TemplatePDFInterventions=Modelau dogfennau cerdyn ymyrraeth +WatermarkOnDraftInterventionCards=Dyfrnod ar ddogfennau cerdyn ymyrryd (dim os yw'n wag) +##### Contracts ##### +ContractsSetup=Gosod modiwlau Contractau/Tanysgrifiadau +ContractsNumberingModules=Modiwlau rhifo contractau +TemplatePDFContracts=Modelau dogfennau contract +FreeLegalTextOnContracts=Testun am ddim ar gontractau +WatermarkOnDraftContractCards=Dyfrnod ar gontractau drafft (dim os yn wag) +##### Members ##### +MembersSetup=Gosod modiwl aelodau +MemberMainOptions=Prif opsiynau +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 +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 ##### +LDAPSetup=Gosod LDAP +LDAPGlobalParameters=Paramedrau byd-eang +LDAPUsersSynchro=Defnyddwyr +LDAPGroupsSynchro=Grwpiau +LDAPContactsSynchro=Cysylltiadau +LDAPMembersSynchro=Aelodau +LDAPMembersTypesSynchro=Mathau o aelodau +LDAPSynchronization=Cydamseru LDAP +LDAPFunctionsNotAvailableOnPHP=Nid yw swyddogaethau LDAP ar gael ar eich PHP +LDAPToDolibarr=LDAP -> Dolibarr +DolibarrToLDAP=Dolibarr -> LDAP +LDAPNamingAttribute=Allwedd yn LDAP +LDAPSynchronizeUsers=Trefniadaeth defnyddwyr yn LDAP +LDAPSynchronizeGroups=Trefniadaeth grwpiau yn LDAP +LDAPSynchronizeContacts=Trefniadaeth cysylltiadau yn LDAP +LDAPSynchronizeMembers=Trefniadaeth aelodau'r sefydliad yn LDAP +LDAPSynchronizeMembersTypes=Trefniadaeth mathau o aelodau'r sefydliad yn LDAP +LDAPPrimaryServer=Gweinydd cynradd +LDAPSecondaryServer=Gweinydd eilaidd +LDAPServerPort=Porth gweinydd +LDAPServerPortExample=Safonol neu StartTLS: 389, LDAPs: 636 +LDAPServerProtocolVersion=Fersiwn protocol +LDAPServerUseTLS=Defnyddiwch TLS +LDAPServerUseTLSExample=Mae eich gweinydd LDAP yn defnyddio StartTLS +LDAPServerDn=Gweinydd DN +LDAPAdminDn=Gweinyddwr DN +LDAPAdminDnExample=Cwblhau DN (e.e.: cn = admin, dc = enghraifft, dc = com neu cn = Gweinyddwr, cn = Defnyddwyr, dc = enghraifft, dc = com ar gyfer cyfeiriadur gweithredol) +LDAPPassword=Cyfrinair gweinyddwr +LDAPUserDn=DN Defnyddwyr +LDAPUserDnExample=Cwblhau DN (ex: ou = defnyddwyr, dc = enghraifft, dc = com) +LDAPGroupDn=DN Grwpiau +LDAPGroupDnExample=Cwblhau DN (ex: ou=grwpiau, dc=enghraifft, dc=com) +LDAPServerExample=Cyfeiriad gweinydd (e.e.: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerDnExample=Cwblhau DN (ex: dc = enghraifft, dc = com) +LDAPDnSynchroActive=Cydamseru defnyddwyr a grwpiau +LDAPDnSynchroActiveExample=Cydamseru LDAP i Ddolibarr neu Ddolibarr i LDAP +LDAPDnContactActive=Cydamseru cysylltiadau +LDAPDnContactActiveExample=Cydamseru wedi'i actifadu / heb ei actifadu +LDAPDnMemberActive=Cydamseru aelodau +LDAPDnMemberActiveExample=Cydamseru wedi'i actifadu / heb ei actifadu +LDAPDnMemberTypeActive=Cydamseru mathau aelodau +LDAPDnMemberTypeActiveExample=Cydamseru wedi'i actifadu / heb ei actifadu +LDAPContactDn=DN cysylltiadau Dolibarr +LDAPContactDnExample=Cwblhau DN (e.e. ou = cysylltiadau, dc = enghraifft, dc = com) +LDAPMemberDn=aelodau Dolibarr DN +LDAPMemberDnExample=Cwblhau DN (ex: ou = aelodau, dc = enghraifft, dc = com) +LDAPMemberObjectClassList=Rhestr o objectClass +LDAPMemberObjectClassListExample=Rhestr o briodweddau cofnod diffinio objectClass (e.e.: top, inetOrgPerson neu top, defnyddiwr ar gyfer cyfeiriadur gweithredol) +LDAPMemberTypeDn=Mae aelodau Dolibarr yn teipio DN +LDAPMemberTypepDnExample=Cwblhau DN (e.e.: ou = mathau o aelodau, dc = enghraifft, dc = com) +LDAPMemberTypeObjectClassList=Rhestr o objectClass +LDAPMemberTypeObjectClassListExample=Rhestr o briodweddau cofnod diffinio objectClass (e.e.: top,groupOfUniqueNames) +LDAPUserObjectClassList=Rhestr o objectClass +LDAPUserObjectClassListExample=Rhestr o briodweddau cofnod diffinio objectClass (e.e.: top, inetOrgPerson neu top, defnyddiwr ar gyfer cyfeiriadur gweithredol) +LDAPGroupObjectClassList=Rhestr o objectClass +LDAPGroupObjectClassListExample=Rhestr o briodweddau cofnod diffinio objectClass (e.e.: top,groupOfUniqueNames) +LDAPContactObjectClassList=Rhestr o objectClass +LDAPContactObjectClassListExample=Rhestr o briodweddau cofnod diffinio objectClass (e.e.: top, inetOrgPerson neu top, defnyddiwr ar gyfer cyfeiriadur gweithredol) +LDAPTestConnect=Profi cysylltiad LDAP +LDAPTestSynchroContact=Profi cydamseru cysylltiadau +LDAPTestSynchroUser=Profi cydamseriad defnyddiwr +LDAPTestSynchroGroup=Profi cydamseru grŵp +LDAPTestSynchroMember=Profi cydamseriad aelod +LDAPTestSynchroMemberType=Profi cydamseriad math aelod +LDAPTestSearch= Profwch chwiliad LDAP +LDAPSynchroOK=Prawf cysoni yn llwyddiannus +LDAPSynchroKO=Prawf cydamseru wedi methu +LDAPSynchroKOMayBePermissions=Prawf cydamseru wedi methu. Gwiriwch fod y cysylltiad â'r gweinydd wedi'i ffurfweddu'n gywir ac yn caniatáu diweddariadau LDAP +LDAPTCPConnectOK=TCP cysylltu â gweinydd LDAP yn llwyddiannus (Gweinydd=%s, Port=%s) +LDAPTCPConnectKO=Methodd TCP cysylltu â gweinydd LDAP (Gweinydd=%s, Port=%s) +LDAPBindOK=Cysylltu/Dilysu â gweinydd LDAP yn llwyddiannus (Gweinydd=%s, Port=%s, Gweinyddwr=%s, Cyfrinair=%s) +LDAPBindKO=Methodd cysylltu/Dilysu â gweinydd LDAP (Gweinydd=%s, Port=%s, Gweinyddwr=%s, Cyfrinair=%s) +LDAPSetupForVersion3=Gweinydd LDAP wedi'i ffurfweddu ar gyfer fersiwn 3 +LDAPSetupForVersion2=Gweinydd LDAP wedi'i ffurfweddu ar gyfer fersiwn 2 +LDAPDolibarrMapping=Mapio Dolibarr +LDAPLdapMapping=Mapio LDAP +LDAPFieldLoginUnix=Mewngofnodi (unix) +LDAPFieldLoginExample=Enghraifft: uid +LDAPFilterConnection=Hidlydd chwilio +LDAPFilterConnectionExample=Enghraifft: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Enghraifft: &(objectClass=groupOfUsers) +LDAPFieldLoginSamba=Mewngofnodi (samba, cyfeiriadur gweithredol) +LDAPFieldLoginSambaExample=Enghraifft: samaccountname +LDAPFieldFullname=Enw llawn +LDAPFieldFullnameExample=Enghraifft: cn +LDAPFieldPasswordNotCrypted=Cyfrinair heb ei amgryptio +LDAPFieldPasswordCrypted=Cyfrinair wedi'i amgryptio +LDAPFieldPasswordExample=Enghraifft: userPassword +LDAPFieldCommonNameExample=Enghraifft: cn +LDAPFieldName=Enw +LDAPFieldNameExample=Enghraifft: sn +LDAPFieldFirstName=Enw cyntaf +LDAPFieldFirstNameExample=Enghraifft: a roddwydName +LDAPFieldMail=Cyfeiriad ebost +LDAPFieldMailExample=Enghraifft: post +LDAPFieldPhone=Rhif ffôn proffesiynol +LDAPFieldPhoneExample=Enghraifft: rhif ffôn +LDAPFieldHomePhone=Rhif ffôn personol +LDAPFieldHomePhoneExample=Enghraifft: ffôn cartref +LDAPFieldMobile=Ffôn symudol +LDAPFieldMobileExample=Enghraifft: symudol +LDAPFieldFax=Rhif ffacs +LDAPFieldFaxExample=Enghraifft: rhif ffôn ffacs +LDAPFieldAddress=Stryd +LDAPFieldAddressExample=Enghraifft: stryd +LDAPFieldZip=Sip +LDAPFieldZipExample=Enghraifft: cod post +LDAPFieldTown=Tref +LDAPFieldTownExample=Enghraifft: l +LDAPFieldCountry=Gwlad +LDAPFieldDescription=Disgrifiad +LDAPFieldDescriptionExample=Enghraifft: disgrifiad +LDAPFieldNotePublic=Nodyn Cyhoeddus +LDAPFieldNotePublicExample=Enghraifft: nodyn cyhoeddus +LDAPFieldGroupMembers= Aelodau'r grŵp +LDAPFieldGroupMembersExample= Enghraifft: Aelod unigryw +LDAPFieldBirthdate=Dyddiad Geni +LDAPFieldCompany=Cwmni +LDAPFieldCompanyExample=Enghraifft: o +LDAPFieldSid=SID +LDAPFieldSidExample=Enghraifft: objectid +LDAPFieldEndLastSubscription=Dyddiad diwedd y tanysgrifiad +LDAPFieldTitle=Safle swydd +LDAPFieldTitleExample=Enghraifft: teitl +LDAPFieldGroupid=ID grŵp +LDAPFieldGroupidExample=Enghraifft: rhif gid +LDAPFieldUserid=ID Defnyddiwr +LDAPFieldUseridExample=Enghraifft : rhif uid +LDAPFieldHomedirectory=Cyfeiriadur cartref +LDAPFieldHomedirectoryExample=Enghraifft : cyfeiriadur cartref +LDAPFieldHomedirectoryprefix=Rhagddodiad cyfeiriadur cartref +LDAPSetupNotComplete=Nid yw gosodiad LDAP wedi'i gwblhau (ewch ar dabiau eraill) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Ni ddarparwyd gweinyddwr na chyfrinair. Bydd mynediad LDAP yn ddienw ac yn y modd darllen yn unig. +LDAPDescContact=Mae'r dudalen hon yn caniatáu ichi ddiffinio enw priodoleddau LDAP yn y goeden LDAP ar gyfer pob data a geir ar gysylltiadau Dolibarr. +LDAPDescUsers=Mae'r dudalen hon yn caniatáu ichi ddiffinio enw priodoleddau LDAP yn y goeden LDAP ar gyfer pob data a geir ar ddefnyddwyr Dolibarr. +LDAPDescGroups=Mae'r dudalen hon yn caniatáu ichi ddiffinio enw priodoleddau LDAP yn y goeden LDAP ar gyfer pob data a geir ar grwpiau Dolibarr. +LDAPDescMembers=Mae'r dudalen hon yn caniatáu ichi ddiffinio enw priodoleddau LDAP yn y goeden LDAP ar gyfer pob data a geir ar fodiwl aelodau Dolibarr. +LDAPDescMembersTypes=Mae'r dudalen hon yn caniatáu ichi ddiffinio enw priodoleddau LDAP mewn coeden LDAP ar gyfer pob data a geir ar fathau o aelodau Dolibarr. +LDAPDescValues=Mae gwerthoedd enghreifftiol wedi'u cynllunio ar gyfer OpenLDAP gyda'r sgemâu llwytho canlynol: core.schema, cosine.schema, inetorgperson.schema a09a4b739f17f). Os ydych chi'n defnyddio'r gwerthoedd hynny ac OpenLDAP, addaswch eich ffeil ffurfweddu LDAP slapd.conf i gael yr holl sgemâu hynny wedi'u llwytho. +ForANonAnonymousAccess=Ar gyfer mynediad dilys (ar gyfer mynediad ysgrifennu er enghraifft) +PerfDolibarr=Adroddiad sefydlu/optimeiddio perfformiad +YouMayFindPerfAdviceHere=Mae'r dudalen hon yn darparu rhai gwiriadau neu gyngor yn ymwneud â pherfformiad. +NotInstalled=Heb ei osod. +NotSlowedDownByThis=Heb ei arafu gan hyn. +NotRiskOfLeakWithThis=Dim risg o ollyngiad gyda hyn. +ApplicativeCache=celc cymhwysiadol +MemcachedNotAvailable=Ni chanfuwyd celc cymhwysiadol. Gallwch wella perfformiad trwy osod gweinydd cache Memcached a modiwl sy'n gallu defnyddio'r gweinydd cache hwn.
    Mwy o wybodaeth yma http://wiki.dolibarr.org/index.php/Module_MemCached_CY .
    Sylwch nad yw llawer o ddarparwr gwe-letya yn darparu gweinydd storfa o'r fath. +MemcachedModuleAvailableButNotSetup=Modiwl memcached ar gyfer celc cymhwysol wedi'i ganfod ond nid yw gosod y modiwl wedi'i gwblhau. +MemcachedAvailableAndSetup=Mae modiwl memcached pwrpasol i ddefnyddio gweinydd memcached wedi'i alluogi. +OPCodeCache=storfa OPCode +NoOPCodeCacheFound=Ni chanfuwyd celc OPCode. Efallai eich bod yn defnyddio storfa OPCode heblaw XCache neu eAccelerator (da), neu efallai nad oes gennych storfa OPCode (drwg iawn). +HTTPCacheStaticResources=storfa HTTP ar gyfer adnoddau statig (css, img, javascript) +FilesOfTypeCached=Mae ffeiliau o'r math %s yn cael eu storio gan weinydd HTTP +FilesOfTypeNotCached=Nid yw ffeiliau o'r math %s yn cael eu storio gan weinydd HTTP +FilesOfTypeCompressed=Mae ffeiliau o'r math %s yn cael eu cywasgu gan weinydd HTTP +FilesOfTypeNotCompressed=Nid yw ffeiliau o'r math %s yn cael eu cywasgu gan weinydd HTTP +CacheByServer=Cache gan y gweinydd +CacheByServerDesc=Er enghraifft, defnyddio cyfarwyddeb Apache "ExpiresByType image/gif A2592000" +CacheByClient=Cache gan borwr +CompressionOfResources=Cywasgu ymatebion HTTP +CompressionOfResourcesDesc=Er enghraifft gan ddefnyddio cyfarwyddeb Apache "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=Nid yw canfodiad awtomatig o'r fath yn bosibl gyda phorwyr cyfredol +DefaultValuesDesc=Yma gallwch ddiffinio'r gwerth rhagosodedig yr hoffech ei ddefnyddio wrth greu cofnod newydd, a/neu hidlwyr rhagosodedig neu'r drefn ddidoli pan fyddwch yn rhestru cofnodion. +DefaultCreateForm=Gwerthoedd rhagosodedig (i'w defnyddio ar ffurflenni) +DefaultSearchFilters=Hidlyddion chwilio diofyn +DefaultSortOrder=Gorchmynion didoli rhagosodedig +DefaultFocus=Meysydd ffocws diofyn +DefaultMandatory=Meysydd ffurf gorfodol +##### Products ##### +ProductSetup=Gosodiad modiwl cynhyrchion +ServiceSetup=Gosod modiwl gwasanaethau +ProductServiceSetup=Gosod modiwlau Cynhyrchion a Gwasanaethau +NumberOfProductShowInSelect=Uchafswm nifer y cynhyrchion i'w dangos mewn rhestrau dethol combo (0= dim terfyn) +ViewProductDescInFormAbility=Arddangos disgrifiadau cynnyrch mewn llinellau o eitemau (fel arall dangoswch y disgrifiad mewn naidlen cyngor) +OnProductSelectAddProductDesc=Sut i ddefnyddio'r disgrifiad o'r cynhyrchion wrth ychwanegu cynnyrch fel llinell o ddogfen +AutoFillFormFieldBeforeSubmit=Llenwch y maes mewnbwn disgrifiad yn awtomatig gyda'r disgrifiad o'r cynnyrch +DoNotAutofillButAutoConcat=Peidiwch â llenwi'r maes mewnbwn yn awtomatig â disgrifiad o'r cynnyrch. Bydd disgrifiad o'r cynnyrch yn cael ei gydgatenu i'r disgrifiad a gofnodwyd yn awtomatig. +DoNotUseDescriptionOfProdut=Ni fydd disgrifiad o'r cynnyrch byth yn cael ei gynnwys yn y disgrifiad o linellau o ddogfennau +MergePropalProductCard=Ysgogi yn y cynnyrch/gwasanaeth Atodir Ffeiliau tab opsiwn i gyfuno cynnyrch dogfen PDF i gynnig PDF azur os yw'r cynnyrch/gwasanaeth yn y cynnig +ViewProductDescInThirdpartyLanguageAbility=Arddangos disgrifiadau cynnyrch mewn ffurfiau yn iaith y trydydd parti (fel arall yn iaith y defnyddiwr) +UseSearchToSelectProductTooltip=Hefyd, os oes gennych nifer fawr o gynhyrchion (> 100 000), gallwch gynyddu cyflymder trwy osod cyson PRODUCT_DONOTSEARCH_ANYWHERE i 1 yn Gosod->Arall. Bydd y chwiliad wedyn yn cael ei gyfyngu i ddechrau'r llinyn. +UseSearchToSelectProduct=Arhoswch nes i chi wasgu allwedd cyn llwytho cynnwys y rhestr combo cynnyrch (Gall hyn gynyddu perfformiad os oes gennych nifer fawr o gynhyrchion, ond mae'n llai cyfleus) +SetDefaultBarcodeTypeProducts=Math o god bar rhagosodedig i'w ddefnyddio ar gyfer cynhyrchion +SetDefaultBarcodeTypeThirdParties=Math o god bar rhagosodedig i'w ddefnyddio ar gyfer trydydd parti +UseUnits=Diffinio uned fesur ar gyfer Nifer yn ystod argraffiad archeb, cynnig neu linellau anfoneb +ProductCodeChecker= Modiwl ar gyfer cynhyrchu a gwirio cod cynnyrch (cynnyrch neu wasanaeth) +ProductOtherConf= Ffurfweddiad Cynnyrch/Gwasanaeth +IsNotADir=nid yw'n gyfeiriadur! +##### Syslog ##### +SyslogSetup=Logiau gosod modiwl +SyslogOutput=Logiau allbynnau +SyslogFacility=Cyfleuster +SyslogLevel=Lefel +SyslogFilename=Enw ffeil a llwybr +YouCanUseDOL_DATA_ROOT=Gallwch ddefnyddio DOL_DATA_ROOT/dolibarr.log ar gyfer ffeil log yng nghyfeiriadur "dogfennau" Dolibarr. Gallwch chi osod llwybr gwahanol i storio'r ffeil hon. +ErrorUnknownSyslogConstant=Nid yw cyson %s yn gysonyn Syslog hysbys +OnlyWindowsLOG_USER=Ar Windows, dim ond y cyfleuster LOG_USER fydd yn cael ei gefnogi +CompressSyslogs=Cywasgu a gwneud copi wrth gefn o ffeiliau log dadfygio (a gynhyrchir gan Log modiwl ar gyfer dadfygio) +SyslogFileNumberOfSaves=Nifer y logiau wrth gefn i'w cadw +ConfigureCleaningCronjobToSetFrequencyOfSaves=Ffurfweddu tasg glanhau a drefnwyd i osod amlder wrth gefn log +##### Donations ##### +DonationsSetup=Gosod modiwl rhodd +DonationsReceiptModel=Templed derbynneb rhodd +##### Barcode ##### +BarcodeSetup=Gosod cod bar +PaperFormatModule=Modiwl fformat argraffu +BarcodeEncodeModule=Math amgodio cod bar +CodeBarGenerator=Generadur cod bar +ChooseABarCode=Dim generadur wedi'i ddiffinio +FormatNotSupportedByGenerator=Nid yw'r fformat hwn yn cael ei gynnal gan y generadur hwn +BarcodeDescEAN8=Cod bar math EAN8 +BarcodeDescEAN13=Cod bar math EAN13 +BarcodeDescUPC=Cod bar math UPC +BarcodeDescISBN=Cod bar math ISBN +BarcodeDescC39=Cod bar math C39 +BarcodeDescC128=Cod bar math C128 +BarcodeDescDATAMATRIX=Cod bar math Datamatrix +BarcodeDescQRCODE=Cod bar math o god QR +GenbarcodeLocation=Offeryn llinell orchymyn cynhyrchu cod bar (a ddefnyddir gan injan fewnol ar gyfer rhai mathau o god bar). Rhaid iddo fod yn gydnaws â "genbarcode".
    Er enghraifft: /usr/local/bin/genbarcode +BarcodeInternalEngine=Peiriant mewnol +BarCodeNumberManager=Rheolwr i ddiffinio rhifau cod bar yn awtomatig +##### Prelevements ##### +WithdrawalsSetup=Sefydlu taliadau Debyd Uniongyrchol modiwl +##### ExternalRSS ##### +ExternalRSSSetup=Gosodiad mewnforion RSS allanol +NewRSS=Porthiant RSS newydd +RSSUrl=URL RSS +RSSUrlExample=Porthiant RSS diddorol +##### Mailing ##### +MailingSetup=Gosod modiwl e-bostio +MailingEMailFrom=E-bost anfonwr (From) ar gyfer negeseuon e-bost a anfonwyd trwy e-bostio modiwl +MailingEMailError=Dychwelyd E-bost (Gwallau-i) ar gyfer e-byst gyda gwallau +MailingDelay=Eiliadau i aros ar ôl anfon y neges nesaf +##### Notification ##### +NotificationSetup=Gosod modiwl Hysbysiad E-bost +NotificationEMailFrom=E-bost anfonwr (From) ar gyfer negeseuon e-bost a anfonwyd gan y modiwl Hysbysiadau +FixedEmailTarget=Derbynnydd +NotificationDisableConfirmMessageContact=Cuddiwch y rhestr o dderbynwyr (wedi tanysgrifio fel cyswllt) o hysbysiadau yn y neges gadarnhau +NotificationDisableConfirmMessageUser=Cuddiwch y rhestr o dderbynwyr (wedi tanysgrifio fel defnyddiwr) o hysbysiadau yn y neges gadarnhau +NotificationDisableConfirmMessageFix=Cuddiwch y rhestr o dderbynwyr (wedi'u tanysgrifio fel e-bost byd-eang) o hysbysiadau yn y neges gadarnhau +##### Sendings ##### +SendingsSetup=Gosod modiwl cludo +SendingsReceiptModel=Model derbynneb anfon +SendingsNumberingModules=Yn anfon modiwlau rhifo +SendingsAbility=Cefnogi taflenni cludo ar gyfer danfoniadau cwsmeriaid +NoNeedForDeliveryReceipts=Yn y rhan fwyaf o achosion, defnyddir taflenni cludo fel taflenni ar gyfer danfoniadau cwsmeriaid (rhestr o gynhyrchion i'w hanfon) a thaflenni sy'n cael eu derbyn a'u llofnodi gan y cwsmer. Felly mae derbynneb danfon cynnyrch yn nodwedd ddyblyg ac anaml y caiff ei actifadu. +FreeLegalTextOnShippings=Testun am ddim ar gludo nwyddau +##### Deliveries ##### +DeliveryOrderNumberingModules=Modiwl rhifo derbynneb danfoniadau cynhyrchion +DeliveryOrderModel=Model derbynneb danfon nwyddau +DeliveriesOrderAbility=Derbynebau danfon nwyddau cymorth +FreeLegalTextOnDeliveryReceipts=Testun am ddim ar dderbynebau danfon +##### FCKeditor ##### +AdvancedEditor=Golygydd uwch +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. +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) +FCKeditorForTicket=Creu/argraffiad WYSIWIG ar gyfer tocynnau +##### Stock ##### +StockSetup=Gosod modiwl stoc +IfYouUsePointOfSaleCheckModule=Os ydych chi'n defnyddio'r modiwl Pwynt Gwerthu (POS) a ddarperir yn ddiofyn neu fodiwl allanol, efallai y bydd eich modiwl POS yn anwybyddu'r gosodiad hwn. Mae'r rhan fwyaf o fodiwlau POS wedi'u cynllunio yn ddiofyn i greu anfoneb ar unwaith a lleihau stoc waeth beth fo'r opsiynau yma. Felly os oes angen gostyngiad mewn stoc arnoch neu beidio wrth gofrestru gwerthiant o'ch POS, gwiriwch hefyd eich gosodiad modiwl POS. +##### Menu ##### +MenuDeleted=Dewislen wedi'i dileu +Menu=Bwydlen +Menus=Bwydlenni +TreeMenuPersonalized=Bwydlenni personol +NotTopTreeMenuPersonalized=Bwydlenni personol heb eu cysylltu â chofnod ar y ddewislen uchaf +NewMenu=Bwydlen newydd +MenuHandler=Triniwr dewislen +MenuModule=Modiwl ffynhonnell +HideUnauthorizedMenu=Cuddio bwydlenni anawdurdodedig hefyd ar gyfer defnyddwyr mewnol (dim ond llwyd fel arall) +DetailId=Dewislen ID +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://) +DetailEnabled=Amod i ddangos neu beidio mynediad +DetailRight=Amod i arddangos bwydlenni llwyd anawdurdodedig +DetailLangs=Enw ffeil Lang ar gyfer cyfieithu cod label +DetailUser=Intern / Allanol / Pawb +Target=Targed +DetailTarget=Targed ar gyfer dolenni (_blank top yn agor ffenestr newydd) +DetailLevel=Lefel (-1: dewislen uchaf, 0: dewislen pennawd, > 0 dewislen ac is-ddewislen) +ModifMenu=Newid bwydlen +DeleteMenu=Dileu cofnod dewislen +ConfirmDeleteMenu=Ydych chi'n siŵr eich bod am ddileu cofnod dewislen %s ? +FailedToInitializeMenu=Wedi methu cychwyn y ddewislen +##### Tax ##### +TaxSetup=Sefydlu modiwlau trethi, trethi cymdeithasol neu gyllidol a difidendau +OptionVatMode=TAW yn ddyledus +OptionVATDefault=Sail safonol +OptionVATDebitOption=Sail cronni +OptionVatDefaultDesc=Mae TAW yn ddyledus:
    - ar ddanfon nwyddau (yn seiliedig ar ddyddiad yr anfoneb)
    - ar daliadau am wasanaethau +OptionVatDebitOptionDesc=Mae TAW yn ddyledus:
    - ar ddanfon nwyddau (yn seiliedig ar ddyddiad yr anfoneb)
    - ar anfoneb (debyd) am wasanaethau +OptionPaymentForProductAndServices=Sail arian parod ar gyfer cynhyrchion a gwasanaethau +OptionPaymentForProductAndServicesDesc=Mae TAW yn ddyledus:
    - ar daliad am nwyddau
    - ar daliadau am wasanaethau +SummaryOfVatExigibilityUsedByDefault=Amser cymhwyso TAW yn ddiofyn yn ôl yr opsiwn a ddewiswyd: +OnDelivery=Ar ddanfon +OnPayment=Ar daliad +OnInvoice=Ar anfoneb +SupposedToBePaymentDate=Dyddiad talu a ddefnyddiwyd +SupposedToBeInvoiceDate=Dyddiad anfoneb a ddefnyddiwyd +Buy=Prynwch +Sell=Gwerthu +InvoiceDateUsed=Dyddiad anfoneb a ddefnyddiwyd +YourCompanyDoesNotUseVAT=Diffiniwyd eich cwmni i beidio â defnyddio TAW (Cartref - Setup - Cwmni/Sefydliad), felly nid oes unrhyw opsiynau TAW i'w sefydlu. +AccountancyCode=Cod Cyfrifo +AccountancyCodeSell=Cyfrif gwerthu. côd +AccountancyCodeBuy=Cyfrif prynu. côd +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Cadwch y blwch ticio “Creu'r taliad yn awtomatig” yn wag yn ddiofyn wrth greu treth newydd +##### Agenda ##### +AgendaSetup=Digwyddiadau a gosod modiwlau agenda +PasswordTogetVCalExport=Allwedd i awdurdodi dolen allforio +SecurityKey = Allwedd diogelwch +PastDelayVCalExport=Peidiwch ag allforio digwyddiad hŷn na +AGENDA_USE_EVENT_TYPE=Defnyddiwch fathau o ddigwyddiadau (a reolir yn y ddewislen Gosod -> Geiriaduron -> Math o ddigwyddiadau agenda) +AGENDA_USE_EVENT_TYPE_DEFAULT=Gosodwch y gwerth rhagosodedig hwn yn awtomatig ar gyfer y math o ddigwyddiad ar ffurf creu digwyddiad +AGENDA_DEFAULT_FILTER_TYPE=Gosod y math hwn o ddigwyddiad yn awtomatig yn hidlydd chwilio gwedd agenda +AGENDA_DEFAULT_FILTER_STATUS=Gosodwch y statws hwn yn awtomatig ar gyfer digwyddiadau yn hidlydd chwilio gwedd agenda +AGENDA_DEFAULT_VIEW=Pa wedd ydych chi am ei hagor yn ddiofyn wrth ddewis Agenda ddewislen +AGENDA_REMINDER_BROWSER=Galluogi nodyn atgoffa digwyddiad ar borwr defnyddiwr (Pan gyrhaeddir y dyddiad atgoffa, bydd y porwr yn dangos naidlen. Gall pob defnyddiwr analluogi hysbysiadau o'r fath o osod hysbysiadau ei borwr). +AGENDA_REMINDER_BROWSER_SOUND=Galluogi hysbysiad sain +AGENDA_REMINDER_EMAIL=Galluogi nodyn atgoffa digwyddiad trwy e-byst (gellir diffinio opsiwn atgoffa / oedi ar bob digwyddiad). +AGENDA_REMINDER_EMAIL_NOTE=Sylwer: Rhaid i amlder y swydd a drefnwyd %s fod yn ddigon i sicrhau bod yr atgoffa'n cael ei anfon ar yr adeg gywir. +AGENDA_SHOW_LINKED_OBJECT=Dangos gwrthrych cysylltiedig i wedd agenda +##### Clicktodial ##### +ClickToDialSetup=Cliciwch I Ddeialu gosodiad modiwl +ClickToDialUrlDesc=Galwodd Url pan fydd llun clic ar y ffôn wedi'i wneud. Yn URL, gallwch ddefnyddio tagiau
    __PHONETO__ y bydd yn cael ei ddisodli gyda rhif ffôn y person i alw
    __PHONEFROM__ fydd yn cael eu disodli gyda rhif ffôn alw person (eich un chi)
    __LOGIN__ fydd yn cael eu disodli gyda clicktodial mewngofnodi (wedi'i ddiffinio ar gerdyn defnyddiwr)
    __PASS__ a fydd yn cael ei ddisodli gan gyfrinair clicktodial (a ddiffinnir ar gerdyn defnyddiwr). +ClickToDialDesc=Mae'r modiwl hwn yn newid rhifau ffôn, wrth ddefnyddio cyfrifiadur bwrdd gwaith, yn ddolenni clicadwy. Bydd clic yn galw'r rhif. Gellir defnyddio hwn i gychwyn yr alwad ffôn wrth ddefnyddio ffôn meddal ar eich bwrdd gwaith neu wrth ddefnyddio system CTI yn seiliedig ar brotocol SIP er enghraifft. Nodyn: Wrth ddefnyddio ffôn clyfar, mae modd clicio ar rifau ffôn bob amser. +ClickToDialUseTelLink=Defnyddiwch ddolen "ffôn:" ar rifau ffôn yn unig +ClickToDialUseTelLinkDesc=Defnyddiwch y dull hwn os oes gan eich defnyddwyr ffôn meddal neu ryngwyneb meddalwedd, wedi'i osod ar yr un cyfrifiadur â'r porwr, a'i alw pan fyddwch chi'n clicio ar ddolen sy'n dechrau gyda "tel:" yn eich porwr. Os oes angen dolen arnoch sy'n dechrau gyda "sip:" neu ddatrysiad gweinydd llawn (dim angen gosod meddalwedd lleol), rhaid i chi osod hwn i "Na" a llenwi'r maes nesaf. +##### Point Of Sale (CashDesk) ##### +CashDesk=Pwynt Gwerthu +CashDeskSetup=Gosod modiwl Pwynt Gwerthu +CashDeskThirdPartyForSell=Trydydd parti generig diofyn i'w ddefnyddio ar gyfer gwerthu +CashDeskBankAccountForSell=Cyfrif rhagosodedig i'w ddefnyddio i dderbyn taliadau arian parod +CashDeskBankAccountForCheque=Cyfrif diofyn i'w ddefnyddio i dderbyn taliadau gyda siec +CashDeskBankAccountForCB=Cyfrif diofyn i'w ddefnyddio i dderbyn taliadau gyda chardiau credyd +CashDeskBankAccountForSumup=Cyfrif banc diofyn i'w ddefnyddio i dderbyn taliadau gan SumUp +CashDeskDoNotDecreaseStock=Analluogi gostyngiad stoc pan wneir gwerthiant o'r Pwynt Gwerthu (os "na", gwneir gostyngiad stoc ar gyfer pob gwerthiant a wneir o POS, waeth beth fo'r opsiwn a osodwyd yn Stoc y modiwl). +CashDeskIdWareHouse=Gorfodi a chyfyngu ar warws i'w ddefnyddio i leihau stoc +StockDecreaseForPointOfSaleDisabled=Gostyngiad stoc o'r Man Gwerthu anabl +StockDecreaseForPointOfSaleDisabledbyBatch=Nid yw gostyngiad stoc mewn POS yn gydnaws â rheolaeth Cyfres/Lot modiwl (yn weithredol ar hyn o bryd) felly mae gostyngiad stoc wedi'i analluogi. +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) +##### 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. +NbOfBoomarkToShow=Uchafswm nifer y nodau tudalen i'w dangos yn y ddewislen chwith +##### WebServices ##### +WebServicesSetup=Gosod modiwl gwasanaethau gwe +WebServicesDesc=Trwy alluogi'r modiwl hwn, mae Dolibarr yn dod yn weinydd gwasanaeth gwe i ddarparu gwasanaethau gwe amrywiol. +WSDLCanBeDownloadedHere=Gellir lawrlwytho ffeiliau disgrifydd WSDL o wasanaethau a ddarperir yma +EndPointIs=Rhaid i gleientiaid SEBON anfon eu ceisiadau i bwynt terfyn Dolibarr sydd ar gael yn URL +##### API #### +ApiSetup=Gosod modiwl API +ApiDesc=Trwy alluogi'r modiwl hwn, mae Dolibarr yn dod yn weinydd REST i ddarparu gwasanaethau gwe amrywiol. +ApiProductionMode=Galluogi modd cynhyrchu (bydd hyn yn actifadu'r defnydd o storfa ar gyfer rheoli gwasanaethau) +ApiExporerIs=Gallwch archwilio a phrofi'r APIs yn URL +OnlyActiveElementsAreExposed=Dim ond elfennau o fodiwlau wedi'u galluogi sy'n cael eu hamlygu +ApiKey=Allwedd ar gyfer API +WarningAPIExplorerDisabled=Mae'r fforiwr API wedi'i analluogi. Nid oes angen API Explorer i ddarparu gwasanaethau API. Mae'n offeryn i ddatblygwr ddod o hyd i / profi REST APIs. Os oes angen yr offeryn hwn arnoch, ewch i osod modiwl API REST i'w actifadu. +##### Bank ##### +BankSetupModule=Gosod modiwl banc +FreeLegalTextOnChequeReceipts=Testun am ddim ar dderbynebau siec +BankOrderShow=Arddangos trefn cyfrifon banc ar gyfer gwledydd gan ddefnyddio "rhif banc manwl" +BankOrderGlobal=Cyffredinol +BankOrderGlobalDesc=Gorchymyn arddangos cyffredinol +BankOrderES=Sbaeneg +BankOrderESDesc=Gorchymyn arddangos Sbaeneg +ChequeReceiptsNumberingModule=Modiwl Rhifo Derbynebau Gwirio +##### Multicompany ##### +MultiCompanySetup=Gosod modiwl aml-gwmni +##### Suppliers ##### +SuppliersSetup=Gosod modiwl gwerthwr +SuppliersCommandModel=Templed cyflawn o Archeb Brynu +SuppliersCommandModelMuscadet=Templed Archeb Brynu cyflawn (hen weithredu templed cornas) +SuppliersInvoiceModel=Templed cyflawn o Anfoneb Gwerthwr +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 +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. +TestGeoIPResult=Prawf o IP trosi -> gwlad +##### Projects ##### +ProjectsNumberingModules=Modiwl rhifo prosiectau +ProjectsSetup=Gosod modiwl prosiect +ProjectsModelModule=Model dogfen adroddiadau prosiect +TasksNumberingModules=Modiwl rhifo tasgau +TaskModelModule=Model dogfen adroddiadau tasgau +UseSearchToSelectProject=Arhoswch nes bod allwedd yn cael ei wasgu cyn llwytho cynnwys rhestr combo Prosiect.
    Gall hyn wella perfformiad os oes gennych nifer fawr o brosiectau, ond mae'n llai cyfleus. +##### ECM (GED) ##### +##### Fiscal Year ##### +AccountingPeriods=Cyfnodau cyfrifo +AccountingPeriodCard=Cyfnod cyfrifo +NewFiscalYear=Cyfnod cyfrifo newydd +OpenFiscalYear=Cyfnod cyfrifo agored +CloseFiscalYear=Cyfnod cyfrifo cau +DeleteFiscalYear=Dileu cyfnod cyfrifo +ConfirmDeleteFiscalYear=A ydych yn sicr o ddileu'r cyfnod cyfrifo hwn? +ShowFiscalYear=Dangos cyfnod cyfrifo +AlwaysEditable=Gellir ei olygu bob amser +MAIN_APPLICATION_TITLE=Gorfodi enw gweladwy'r cais (rhybudd: gall gosod eich enw eich hun yma dorri'r nodwedd mewngofnodi awtolenwi wrth ddefnyddio cymhwysiad symudol DoliDroid) +NbMajMin=Nifer lleiaf o nodau priflythrennau +NbNumMin=Isafswm nifer y nodau rhifol +NbSpeMin=Nifer lleiaf o nodau arbennig +NbIteConsecutive=Uchafswm nifer yr un nodau sy'n ailadrodd +NoAmbiCaracAutoGeneration=Peidiwch â defnyddio nodau amwys ("1",,"l",,"i", "|", "0",,"O") ar gyfer cynhyrchu awtomatig +SalariesSetup=Sefydlu cyflogau modiwlau +SortOrder=Trefnu trefn +Format=Fformat +TypePaymentDesc=0: Math o daliad cwsmeriaid, 1: Math o daliad gwerthwr, 2: Math o daliad cwsmeriaid a chyflenwyr +IncludePath=Cynnwys llwybr (a ddiffinnir yn newidyn %s) +ExpenseReportsSetup=Sefydlu Adroddiadau Treuliau modiwl +TemplatePDFExpenseReports=Templedi dogfen i gynhyrchu dogfen adroddiad costau +ExpenseReportsRulesSetup=Sefydlu Adroddiadau Treuliau modiwl - Rheolau +ExpenseReportNumberingModules=Modiwl rhifo adroddiadau treuliau +NoModueToManageStockIncrease=Nid oes unrhyw fodiwl sy'n gallu rheoli cynnydd stoc awtomatig wedi'i weithredu. Bydd cynnydd stoc yn cael ei wneud ar fewnbwn â llaw yn unig. +YouMayFindNotificationsFeaturesIntoModuleNotification=Efallai y byddwch yn dod o hyd i opsiynau ar gyfer hysbysiadau e-bost trwy alluogi a ffurfweddu'r modiwl "Hysbysiad". +TemplatesForNotifications=Templedi ar gyfer hysbysiadau +ListOfNotificationsPerUser=Rhestr o hysbysiadau awtomatig fesul defnyddiwr* +ListOfNotificationsPerUserOrContact=Rhestr o hysbysiadau awtomatig posibl (ar ddigwyddiad busnes) ar gael fesul defnyddiwr* neu fesul cyswllt** +ListOfFixedNotifications=Rhestr o hysbysiadau sefydlog awtomatig +GoOntoUserCardToAddMore=Ewch i'r tab "Hysbysiadau" defnyddiwr i ychwanegu neu ddileu hysbysiadau ar gyfer defnyddwyr +GoOntoContactCardToAddMore=Ewch i'r tab "Hysbysiadau" trydydd parti i ychwanegu neu ddileu hysbysiadau ar gyfer cysylltiadau / cyfeiriadau +Threshold=Trothwy +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. +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 +HighlightLinesColor=Amlygwch liw'r llinell pan fydd y llygoden yn pasio drosodd (defnyddiwch 'ffffff' am ddim uchafbwynt) +HighlightLinesChecked=Amlygwch liw'r llinell pan gaiff ei gwirio (defnyddiwch 'ffffff' am ddim uchafbwynt) +UseBorderOnTable=Show left-right borders on tables +BtnActionColor=Lliw y botwm gweithredu +TextBtnActionColor=Lliw testun y botwm gweithredu +TextTitleColor=Lliw testun teitl y dudalen +LinkColor=Lliw dolenni +PressF5AfterChangingThis=Pwyswch CTRL+F5 ar fysellfwrdd neu cliriwch storfa eich porwr ar ôl newid y gwerth hwn i'w gael yn effeithiol +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=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 +BackgroundTableTitleTextlinkColor=Lliw testun ar gyfer llinell gyswllt teitl Tabl +BackgroundTableLineOddColor=Lliw cefndir ar gyfer llinellau bwrdd odrif +BackgroundTableLineEvenColor=Lliw cefndir ar gyfer llinellau tabl eilrif +MinimumNoticePeriod=Isafswm cyfnod rhybudd (Rhaid gwneud eich cais am wyliau cyn yr oedi hwn) +NbAddedAutomatically=Nifer y dyddiau a ychwanegir at gownteri defnyddwyr (yn awtomatig) bob mis +EnterAnyCode=Mae'r maes hwn yn cynnwys cyfeiriad i nodi'r llinell. Nodwch unrhyw werth o'ch dewis, ond heb nodau arbennig. +Enter0or1=Rhowch 0 neu 1 +UnicodeCurrency=Rhowch yma rhwng braces, rhestr o rif beit sy'n cynrychioli'r symbol arian cyfred. Er enghraifft: ar gyfer $, nodwch [36] - ar gyfer brazil real R$ [82,36] - am €, nodwch [8364] +ColorFormat=Mae'r lliw RGB mewn fformat HEX, ee: 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=Safle'r llinell mewn rhestrau combo +SellTaxRate=Cyfradd treth gwerthu +RecuperableOnly=Ie ar gyfer TAW "Ddim yn Canfyddedig ond Adenilladwy" ymroddedig ar gyfer rhai dalaith yn Ffrainc. Cadwch y gwerth i "Na" ym mhob achos arall. +UrlTrackingDesc=Os yw'r darparwr neu'r gwasanaeth trafnidiaeth yn cynnig tudalen neu wefan i wirio statws eich llwythi, gallwch ei nodi yma. Gallwch ddefnyddio'r allwedd {TRACKID} yn y paramedrau URL felly bydd y system yn rhoi'r rhif olrhain a roddodd y defnyddiwr i'r cerdyn cludo yn ei le. +OpportunityPercent=Pan fyddwch yn creu arweinydd, byddwch yn diffinio swm amcangyfrifedig o brosiect/arweiniad. Yn ôl statws y plwm, efallai y bydd y swm hwn yn cael ei luosi â'r gyfradd hon i werthuso cyfanswm y gall eich holl dennyn ei gynhyrchu. Mae gwerth yn ganran (rhwng 0 a 100). +TemplateForElement=Mae'r templed post hwn yn gysylltiedig â pha fath o wrthrych? Mae templed e-bost ar gael dim ond wrth ddefnyddio'r botwm "Anfon E-bost" o'r gwrthrych cysylltiedig. +TypeOfTemplate=Math o dempled +TemplateIsVisibleByOwnerOnly=Mae'r templed yn weladwy i'r perchennog yn unig +VisibleEverywhere=Gweladwy ym mhobman +VisibleNowhere=Yn weladwy yn unman +FixTZ=Trwsio Parth Amser +FillFixTZOnlyIfRequired=Enghraifft: +2 (llenwi dim ond os cafwyd problem) +ExpectedChecksum=Gwiriad Disgwyliedig +CurrentChecksum=Checksum Cyfredol +ExpectedSize=Maint disgwyliedig +CurrentSize=Maint presennol +ForcedConstants=Gwerthoedd cyson gofynnol +MailToSendProposal=Cynigion cwsmeriaid +MailToSendOrder=Gorchmynion gwerthu +MailToSendInvoice=Anfonebau cwsmeriaid +MailToSendShipment=Cludo +MailToSendIntervention=Ymyriadau +MailToSendSupplierRequestForQuotation=Cais am ddyfynbris +MailToSendSupplierOrder=Archebion prynu +MailToSendSupplierInvoice=Anfonebau gwerthwr +MailToSendContract=Contractau +MailToSendReception=Derbyniadau +MailToThirdparty=Trydydd partïon +MailToMember=Aelodau +MailToUser=Defnyddwyr +MailToProject=Prosiectau +MailToTicket=Tocynnau +ByDefaultInList=Dangos yn ddiofyn ar olwg rhestr +YouUseLastStableVersion=Rydych chi'n defnyddio'r fersiwn sefydlog ddiweddaraf +TitleExampleForMajorRelease=Enghraifft o neges y gallwch ei defnyddio i gyhoeddi'r datganiad mawr hwn (mae croeso i chi ei ddefnyddio ar eich gwefannau) +TitleExampleForMaintenanceRelease=Enghraifft o neges y gallwch ei defnyddio i gyhoeddi'r datganiad cynnal a chadw hwn (mae croeso i chi ei ddefnyddio ar eich gwefannau) +ExampleOfNewsMessageForMajorRelease=Mae Dolibarr ERP & CRM %s ar gael. Mae fersiwn %s yn ddatganiad mawr gyda llawer o nodweddion newydd i ddefnyddwyr a datblygwyr. Gallwch ei lawrlwytho o ardal lawrlwytho porth https://www.dolibarr.org (fersiynau sefydlog yr is-gyfeiriadur). Gallwch ddarllen ChangeLog i gael rhestr gyflawn o newidiadau. +ExampleOfNewsMessageForMaintenanceRelease=Mae Dolibarr ERP & CRM %s ar gael. Mae fersiwn %s yn fersiwn cynnal a chadw, felly mae'n cynnwys dim ond atgyweiriadau nam. Rydym yn argymell bod pob defnyddiwr yn uwchraddio i'r fersiwn hon. Nid yw datganiad cynnal a chadw yn cyflwyno nodweddion newydd na newidiadau i'r gronfa ddata. Gallwch ei lawrlwytho o ardal lawrlwytho porth https://www.dolibarr.org (fersiynau Sefydlog yr is-gyfeiriadur). Gallwch ddarllen yr ChangeLog i gael rhestr gyflawn o newidiadau. +MultiPriceRuleDesc=Pan fydd opsiwn "Sawl lefel o brisiau fesul cynnyrch / gwasanaeth" wedi'i alluogi, gallwch ddiffinio prisiau gwahanol (un fesul lefel pris) ar gyfer pob cynnyrch. Er mwyn arbed amser i chi, yma gallwch nodi rheol i gyfrifo pris yn awtomatig ar gyfer pob lefel yn seiliedig ar bris y lefel gyntaf, felly dim ond pris ar gyfer y lefel gyntaf y bydd yn rhaid i chi ei nodi ar gyfer pob cynnyrch. Cynlluniwyd y dudalen hon i arbed amser i chi ond mae'n ddefnyddiol dim ond os yw'ch prisiau ar gyfer pob lefel yn gymharol â'r lefel gyntaf. Gallwch anwybyddu'r dudalen hon yn y rhan fwyaf o achosion. +ModelModulesProduct=Templedi ar gyfer dogfennau cynnyrch +WarehouseModelModules=Templedi ar gyfer dogfennau warysau +ToGenerateCodeDefineAutomaticRuleFirst=Er mwyn gallu cynhyrchu codau yn awtomatig, yn gyntaf rhaid i chi ddiffinio rheolwr i ddiffinio'r rhif cod bar yn awtomatig. +SeeSubstitutionVars=Gweler * nodyn am restr o newidynnau amnewid posibl +SeeChangeLog=Gweler ffeil ChangeLog (Saesneg yn unig) +AllPublishers=Pob cyhoeddwr +UnknownPublishers=Cyhoeddwyr anhysbys +AddRemoveTabs=Ychwanegu neu ddileu tabiau +AddDataTables=Ychwanegu tablau gwrthrych +AddDictionaries=Ychwanegu tablau geiriaduron +AddData=Ychwanegu gwrthrychau neu ddata geiriaduron +AddBoxes=Ychwanegu teclynnau +AddSheduledJobs=Ychwanegu swyddi wedi'u hamserlennu +AddHooks=Ychwanegu bachau +AddTriggers=Ychwanegu sbardunau +AddMenus=Ychwanegu bwydlenni +AddPermissions=Ychwanegu caniatadau +AddExportProfiles=Ychwanegu proffiliau allforio +AddImportProfiles=Ychwanegu proffiliau mewnforio +AddOtherPagesOrServices=Ychwanegu tudalennau neu wasanaethau eraill +AddModels=Ychwanegu dogfen neu dempledi rhifo +AddSubstitutions=Ychwanegu amnewidiadau bysellau +DetectionNotPossible=Nid yw canfod yn bosibl +UrlToGetKeyToUseAPIs=Url i gael tocyn i ddefnyddio API (unwaith y bydd y tocyn wedi'i dderbyn mae'n cael ei gadw yn nhabl defnyddiwr y gronfa ddata a rhaid ei ddarparu ar bob galwad API) +ListOfAvailableAPIs=Rhestr o'r APIs sydd ar gael +activateModuleDependNotSatisfied=Mae modiwl "%s" yn dibynnu ar fodiwl "%s", sydd ar goll, felly efallai na fydd modiwl "%1$s" yn gweithio'n gywir. Gosodwch fodiwl "%2$s" neu analluoga modiwl "%1$s" os ydych chi am fod yn ddiogel rhag unrhyw syndod +CommandIsNotInsideAllowedCommands=Nid yw'r gorchymyn yr ydych yn ceisio ei redeg yn y rhestr o orchmynion a ganiateir a ddiffinnir yn y paramedr $dolibarr_main_restrict_os_commands yn yr conf.php a0a65dz0 file +LandingPage=Tudalen lanio +SamePriceAlsoForSharedCompanies=Os ydych chi'n defnyddio modiwl aml-gwmni, gyda'r dewis "Pris sengl", bydd y pris hefyd yr un peth i bob cwmni os yw cynhyrchion yn cael eu rhannu rhwng amgylcheddau +ModuleEnabledAdminMustCheckRights=Modiwl wedi'i actifadu. Rhoddwyd caniatâd ar gyfer modiwl(au) actifedig i ddefnyddwyr gweinyddol yn unig. Efallai y bydd angen i chi roi caniatâd i ddefnyddwyr neu grwpiau eraill â llaw os oes angen. +UserHasNoPermissions=Nid oes gan y defnyddiwr hwn unrhyw ganiatâd wedi'i ddiffinio +TypeCdr=Defnyddiwch "Dim" os yw dyddiad y tymor talu yn ddyddiad yr anfoneb ynghyd â delta mewn dyddiau (delta yw maes "%s")
    Defnyddiwch "Ar ddiwedd y mis", os, ar ôl delta, mae'n rhaid cynyddu'r dyddiad i gyrraedd y diwedd o'r mis (+ "%s" opsiynol mewn dyddiau)
    Defnyddiwch "Cyfredol/Nesaf" i gael dyddiad tymor talu yw'r Nfed cyntaf o'r mis ar ôl delta (delta yw maes "%s", N yn cael ei storio yn y maes "874cbfz0") +BaseCurrency=Cyfredol cyfeirio'r cwmni (ewch i sefydlu'r cwmni i newid hyn) +WarningNoteModuleInvoiceForFrenchLaw=Mae'r modiwl hwn %s yn cydymffurfio â chyfreithiau Ffrainc (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Mae'r modiwl hwn %s yn cydymffurfio â chyfreithiau Ffrainc (Loi Finance 2016) oherwydd bod Logiau Di-wrthdroadwy modiwl yn cael eu gweithredu'n awtomatig. +WarningInstallationMayBecomeNotCompliantWithLaw=Rydych chi'n ceisio gosod modiwl %s sy'n fodiwl allanol. Mae gweithredu modiwl allanol yn golygu eich bod yn ymddiried yng nghyhoeddwr y modiwl hwnnw a'ch bod yn sicr nad yw'r modiwl hwn yn effeithio'n andwyol ar ymddygiad eich cais, a'i fod yn cydymffurfio â chyfreithiau eich gwlad (%s). Os yw'r modiwl yn cyflwyno nodwedd anghyfreithlon, byddwch yn dod yn gyfrifol am ddefnyddio meddalwedd anghyfreithlon. +MAIN_PDF_MARGIN_LEFT=Ymyl chwith ar PDF +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 +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 +MAIN_PDF_NO_RECIPENT_FRAME=Cuddio borderi ar ffrâm cyfeiriad y rysáit +MAIN_PDF_HIDE_CUSTOMER_CODE=Cuddio cod cwsmer +MAIN_PDF_HIDE_SENDER_NAME=Cuddio enw'r anfonwr/cwmni yn y bloc cyfeiriad +PROPOSAL_PDF_HIDE_PAYMENTTERM=Cuddio amodau taliadau +PROPOSAL_PDF_HIDE_PAYMENTMODE=Cuddio modd talu +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Ychwanegu arwydd electronig mewn PDF +NothingToSetup=Nid oes angen gosodiad penodol ar gyfer y modiwl hwn. +SetToYesIfGroupIsComputationOfOtherGroups=Gosodwch hwn i ie os yw'r grŵp hwn yn gyfrifiad o grwpiau eraill +EnterCalculationRuleIfPreviousFieldIsYes=Rhowch y rheol cyfrifo os gosodwyd y maes blaenorol i Ie.
    Er enghraifft:
    CODEGRP1+CODEGRP2 +SeveralLangugeVariatFound=Cafwyd hyd i sawl amrywiad iaith +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 +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 +HelpOnTooltipDesc=Rhowch destun neu allwedd cyfieithu yma er mwyn i'r testun ddangos mewn cyngor pan fydd y maes hwn yn ymddangos ar ffurf +YouCanDeleteFileOnServerWith=Gallwch ddileu'r ffeil hon ar y gweinydd gyda'r Llinell Reoli:
    %s +ChartLoaded=Siart cyfrif wedi'i lwytho +SocialNetworkSetup=Sefydlu modiwl Rhwydweithiau Cymdeithasol +EnableFeatureFor=Galluogi nodweddion ar gyfer %s +VATIsUsedIsOff=Nodyn: Mae'r opsiwn i ddefnyddio Treth Gwerthu neu TAW wedi'i osod i Off yn y ddewislen %s - %s, felly bydd y dreth werthu neu'r TAW a ddefnyddir bob amser yn 0 ar gyfer gwerthiant. +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 +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 +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 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 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=Dim e-bost newydd (cyfateb hidlwyr) i'w prosesu +NothingProcessed=Dim byd wedi'i wneud +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) +CodeLastResult=Cod canlyniad diweddaraf +NbOfEmailsInInbox=Nifer y negeseuon e-bost yn y cyfeiriadur ffynhonnell +LoadThirdPartyFromName=Llwytho chwiliad trydydd parti ar %s (llwyth yn unig) +LoadThirdPartyFromNameOrCreate=Llwythwch chwiliad trydydd parti ar %s (creu os na chanfyddir) +AttachJoinedDocumentsToObject=Cadw'r ffeiliau sydd wedi'u hatodi i mewn i ddogfennau gwrthrych os canfyddir cyf o wrthrych ym mhwnc e-bost. +WithDolTrackingID=Neges o sgwrs a gychwynnwyd gan e-bost cyntaf a anfonwyd o Ddolibarr +WithoutDolTrackingID=Neges o sgwrs a gychwynnwyd gan e-bost cyntaf NID anfonwyd o Ddolibarr +WithDolTrackingIDInMsgId=Neges wedi'i hanfon o Ddolibarr +WithoutDolTrackingIDInMsgId=NID anfonwyd y neges o Ddolibarr +CreateCandidature=Creu cais am swydd +FormatZip=Sip +MainMenuCode=Cod mynediad dewislen (prif ddewislen) +ECMAutoTree=Dangos coeden ECM awtomatig +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=Oriau agor +OpeningHoursDesc=Nodwch yma oriau agor arferol eich cwmni. +ResourceSetup=Ffurfweddu modiwl Adnodd +UseSearchToSelectResource=Defnyddiwch ffurflen chwilio i ddewis adnodd (yn hytrach na gwymplen). +DisabledResourceLinkUser=Analluogi nodwedd i gysylltu adnodd â defnyddwyr +DisabledResourceLinkContact=Analluogi nodwedd i gysylltu adnodd â chysylltiadau +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +ConfirmUnactivation=Cadarnhau ailosod modiwl +OnMobileOnly=Ar sgrin fach (ffôn clyfar) yn unig +DisableProspectCustomerType=Analluoga'r math trydydd parti "Prospect + Cwsmer" (felly rhaid i drydydd parti fod yn "Prospect" neu "Cwsmer", ond ni all fod y ddau) +MAIN_OPTIMIZEFORTEXTBROWSER=Symleiddio rhyngwyneb ar gyfer person dall +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Galluogi'r opsiwn hwn os ydych chi'n berson dall, neu os ydych chi'n defnyddio'r rhaglen o borwr testun fel Lynx neu Links. +MAIN_OPTIMIZEFORCOLORBLIND=Newid lliw y rhyngwyneb ar gyfer person dall lliw +MAIN_OPTIMIZEFORCOLORBLINDDesc=Galluogi'r opsiwn hwn os ydych chi'n berson dall lliw, mewn rhai achosion bydd rhyngwyneb yn newid gosodiad lliw i gynyddu cyferbyniad. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopau +ThisValueCanOverwrittenOnUserLevel=Gall pob defnyddiwr drosysgrifennu'r gwerth hwn o'i dudalen defnyddiwr - tab '%s' +DefaultCustomerType=Math trydydd parti rhagosodedig ar gyfer ffurflen creu "Cwsmer newydd". +ABankAccountMustBeDefinedOnPaymentModeSetup=Nodyn: Rhaid diffinio'r cyfrif banc ar fodiwl pob dull talu (Paypal, Stripe, ...) i gael y nodwedd hon yn gweithio. +RootCategoryForProductsToSell=Categori gwraidd y cynhyrchion i'w gwerthu +RootCategoryForProductsToSellDesc=Os cânt eu diffinio, dim ond cynhyrchion o fewn y categori hwn neu blant o'r categori hwn fydd ar gael yn y Man Gwerthu +DebugBar=Bar Dadfygio +DebugBarDesc=Bar offer sy'n dod gyda digon o offer i symleiddio dadfygio +DebugBarSetup=Gosod Bar Dadfygio +GeneralOptions=Opsiynau Cyffredinol +LogsLinesNumber=Nifer y llinellau i'w dangos ar y tab logiau +UseDebugBar=Defnyddiwch y bar dadfygio +DEBUGBAR_LOGS_LINES_NUMBER=Nifer y llinellau log olaf i'w cadw yn y consol +WarningValueHigherSlowsDramaticalyOutput=Rhybudd, mae gwerthoedd uwch yn arafu allbwn yn ddramatig +ModuleActivated=Mae modiwl %s wedi'i actifadu ac yn arafu'r rhyngwyneb +ModuleActivatedWithTooHighLogLevel=Mae modiwl %s wedi'i actifadu gyda lefel logio rhy uchel (ceisiwch ddefnyddio lefel is ar gyfer perfformiadau a diogelwch gwell) +ModuleSyslogActivatedButLevelNotTooVerbose=Modiwl %s wedi'i actifadu ac mae lefel y log (%s) yn gywir (ddim yn rhy lafar) +IfYouAreOnAProductionSetThis=Os ydych ar amgylchedd cynhyrchu, dylech osod yr eiddo hwn i %s. +AntivirusEnabledOnUpload=Mae gwrthfeirws wedi'i alluogi ar ffeiliau sydd wedi'u llwytho i fyny +SomeFilesOrDirInRootAreWritable=Nid yw rhai ffeiliau neu gyfeiriaduron mewn modd darllen yn unig +EXPORTS_SHARE_MODELS=Mae modelau allforio yn cael eu rhannu â phawb +ExportSetup=Gosod Allforio modiwl +ImportSetup=Gosod Mewnforio modiwl +InstanceUniqueID=ID unigryw'r enghraifft +SmallerThan=Llai na +LargerThan=Mwy na +IfTrackingIDFoundEventWillBeLinked=Sylwch, Os canfyddir ID olrhain gwrthrych i mewn i e-bost, neu os yw'r e-bost yn ateb e-bost a gasglwyd ac a gysylltir â gwrthrych, bydd y digwyddiad a grëwyd yn cael ei gysylltu'n awtomatig â'r gwrthrych cysylltiedig hysbys. +WithGMailYouCanCreateADedicatedPassword=Gyda chyfrif GMail, os gwnaethoch alluogi'r dilysiad 2 gam, argymhellir creu ail gyfrinair pwrpasol ar gyfer y cais yn lle defnyddio cyfrinair eich cyfrif eich hun o https://myaccount.google.com/. +EmailCollectorTargetDir=Gall fod yn ymddygiad dymunol symud yr e-bost i dag/cyfeiriadur arall pan gafodd ei brosesu'n llwyddiannus. Gosodwch enw'r cyfeiriadur yma i ddefnyddio'r nodwedd hon (PEIDIWCH â defnyddio nodau arbennig yn yr enw). Sylwch fod yn rhaid i chi hefyd ddefnyddio cyfrif mewngofnodi darllen/ysgrifennu. +EmailCollectorLoadThirdPartyHelp=Gallwch ddefnyddio'r weithred hon i ddefnyddio'r cynnwys e-bost i ganfod a llwytho trydydd parti sy'n bodoli eisoes yn eich cronfa ddata. Bydd y trydydd parti a ddarganfuwyd (neu a grëwyd) yn cael ei ddefnyddio ar gyfer y camau gweithredu canlynol sydd eu hangen.
    Er enghraifft, os ydych am greu trydydd parti gydag enw wedi'i dynnu o linyn 'Enw: enw i'w ddarganfod' yn bresennol yn y corff, defnyddiwch yr e-bost anfonwr fel e-bost, gallwch osod y maes paramedr fel hyn:
    'email= HEADER:^O:(.*);enw=DYFYNIAD:CORFF:Enw:\\s([^\\s]*); cleient=SET:2;'
    +EndPointFor=Pwynt gorffen ar gyfer %s : %s +DeleteEmailCollector=Dileu casglwr e-bost +ConfirmDeleteEmailCollector=Ydych chi'n siŵr eich bod am ddileu'r casglwr e-bost hwn? +RecipientEmailsWillBeReplacedWithThisValue=Bydd e-byst derbynwyr bob amser yn cael eu disodli gan y gwerth hwn +AtLeastOneDefaultBankAccountMandatory=Rhaid diffinio o leiaf 1 cyfrif banc diofyn +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=Yn seiliedig ar fersiwn SabreDAV y llyfrgell +NotAPublicIp=Ddim yn IP cyhoeddus +MakeAnonymousPing=Gwnewch Ping '+1' dienw i weinydd sylfaen Dolibarr (wedi'i wneud 1 amser yn unig ar ôl ei osod) i ganiatáu i'r sylfaen gyfrif nifer gosod Dolibarr. +FeatureNotAvailableWithReceptionModule=Nid yw'r nodwedd ar gael pan fydd Derbynfa'r modiwl wedi'i galluogi +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 +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. +RssNote=Nodyn: Mae pob diffiniad porthiant RSS yn darparu teclyn y mae'n rhaid i chi ei alluogi i'w gael ar y dangosfwrdd +JumpToBoxes=Neidio i Gosod -> Widgets +MeasuringUnitTypeDesc=Defnyddiwch yma werth fel "maint", "wyneb", "cyfaint", "pwysau", "amser" +MeasuringScaleDesc=Y raddfa yw nifer y lleoedd sydd gennych i symud y rhan ddegol i gyd-fynd â'r uned gyfeirio ddiofyn. Ar gyfer math o uned "amser", dyma nifer yr eiliadau. Mae gwerthoedd rhwng 80 a 99 yn werthoedd neilltuedig. +TemplateAdded=Templed wedi'i ychwanegu +TemplateUpdated=Templed wedi'i ddiweddaru +TemplateDeleted=Templed wedi'i ddileu +MailToSendEventPush=E-bost atgoffa digwyddiad +SwitchThisForABetterSecurity=Argymhellir newid y gwerth hwn i %s ar gyfer mwy o ddiogelwch +DictionaryProductNature= Natur y cynnyrch +CountryIfSpecificToOneCountry=Gwlad (os yw'n benodol i wlad benodol) +YouMayFindSecurityAdviceHere=Efallai y byddwch chi'n dod o hyd i gyngor diogelwch yma +ModuleActivatedMayExposeInformation=Gall yr estyniad PHP hwn ddatgelu data sensitif. Os nad oes ei angen arnoch, analluoga ef. +ModuleActivatedDoNotUseInProduction=Mae modiwl a ddyluniwyd ar gyfer y datblygiad wedi'i alluogi. Peidiwch â'i alluogi ar amgylchedd cynhyrchu. +CombinationsSeparator=Cymeriad gwahanydd ar gyfer cyfuniadau cynnyrch +SeeLinkToOnlineDocumentation=Gweler y ddolen i ddogfennaeth ar-lein ar y ddewislen uchaf am enghreifftiau +SHOW_SUBPRODUCT_REF_IN_PDF=Os defnyddir nodwedd "%s" modiwl %s , dangoswch fanylion isgynhyrchion pecyn ar PDF. +AskThisIDToYourBank=Cysylltwch â'ch banc i gael yr ID hwn +AdvancedModeOnly=Caniatâd ar gael yn y modd caniatâd Uwch yn unig +ConfFileIsReadableOrWritableByAnyUsers=Mae'r ffeil conf yn ddarllenadwy neu'n ysgrifennadwy gan unrhyw ddefnyddwyr. Rhowch ganiatâd i ddefnyddiwr gweinydd gwe a grŵp yn unig. +MailToSendEventOrganization=Trefniadaeth Digwyddiadau +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 +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 +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 +NoExternalModuleWithUpdate=Ni chanfuwyd unrhyw ddiweddariadau ar gyfer modiwlau allanol +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 +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 +YouShouldSetThisToOff=Dylech osod hwn i 0 neu i ffwrdd +InstallAndUpgradeLockedBy=Mae gosod ac uwchraddio yn cael eu cloi gan y ffeil %s +OldImplementation=Hen weithrediad +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Os yw rhai modiwlau talu ar-lein wedi'u galluogi (Paypal, Stripe, ...), ychwanegwch ddolen ar y PDF i wneud y taliad ar-lein +DashboardDisableGlobal=Analluoga yn fyd-eang holl fodiau gwrthrychau agored +BoxstatsDisableGlobal=Analluogi ystadegau blwch llwyr +DashboardDisableBlocks=Bodiau gwrthrychau agored (i'w prosesu neu'n hwyr) ar y prif ddangosfwrdd +DashboardDisableBlockAgenda=Analluoga'r bawd ar gyfer agenda +DashboardDisableBlockProject=Analluoga'r bawd ar gyfer prosiectau +DashboardDisableBlockCustomer=Analluoga'r bawd i gwsmeriaid +DashboardDisableBlockSupplier=Analluoga'r bawd i gyflenwyr +DashboardDisableBlockContract=Analluoga'r bawd ar gyfer contractau +DashboardDisableBlockTicket=Analluoga'r bawd am docynnau +DashboardDisableBlockBank=Analluoga'r bawd ar gyfer banciau +DashboardDisableBlockAdherent=Analluoga'r bawd ar gyfer aelodaeth +DashboardDisableBlockExpenseReport=Analluoga'r bawd ar gyfer adroddiadau treuliau +DashboardDisableBlockHoliday=Analluoga'r bawd ar gyfer dail +EnabledCondition=Amod i alluogi'r maes (os na chaiff ei alluogi, bydd y gwelededd bob amser i ffwrdd) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Os ydych chi am ddefnyddio ail dreth, rhaid i chi alluogi'r dreth werthiant gyntaf hefyd +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Os ydych chi am ddefnyddio trydedd dreth, rhaid i chi alluogi'r dreth werthiant gyntaf hefyd +LanguageAndPresentation=Iaith a chyflwyniad +SkinAndColors=Croen a lliwiau +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Os ydych chi am ddefnyddio ail dreth, rhaid i chi alluogi'r dreth werthiant gyntaf hefyd +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Os ydych chi am ddefnyddio trydedd dreth, rhaid i chi alluogi'r dreth werthiant gyntaf hefyd +PDF_USE_1A=Cynhyrchu PDF gyda fformat PDF/A-1b +MissingTranslationForConfKey = Cyfieithiad ar goll ar gyfer %s +NativeModules=Modiwlau brodorol +NoDeployedModulesFoundWithThisSearchCriteria=Ni chanfuwyd unrhyw fodiwlau ar gyfer y meini prawf chwilio hyn +API_DISABLE_COMPRESSION=Analluogi cywasgu ymatebion API +EachTerminalHasItsOwnCounter=Mae pob terfynell yn defnyddio ei cownter ei hun. +FillAndSaveAccountIdAndSecret=Llenwch ac arbed ID cyfrif a chyfrinach yn gyntaf +PreviousHash=hash blaenorol +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. + +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/cy_GB/agenda.lang b/htdocs/langs/cy_GB/agenda.lang new file mode 100644 index 00000000000..b24b0b988cd --- /dev/null +++ b/htdocs/langs/cy_GB/agenda.lang @@ -0,0 +1,176 @@ +# Dolibarr language file - Source file is en_US - agenda +IdAgenda=Digwyddiad adnabod +Actions=Digwyddiadau +Agenda=Agenda +TMenuAgenda=Agenda +Agendas=Agendâu +LocalAgenda=Calendr diofyn +ActionsOwnedBy=Digwyddiad sy'n eiddo i +ActionsOwnedByShort=Perchennog +AffectedTo=Neilltuo i +Event=Digwyddiad +Events=Digwyddiadau +EventsNb=Nifer o ddigwyddiadau +ListOfActions=Rhestr o ddigwyddiadau +EventReports=Adroddiadau digwyddiad +Location=Lleoliad +ToUserOfGroup=Digwyddiad a neilltuwyd i unrhyw ddefnyddiwr yn y grŵp +EventOnFullDay=Digwyddiad trwy'r diwrnod(au) +MenuToDoActions=Pob digwyddiad anghyflawn +MenuDoneActions=Pob digwyddiad terfynedig +MenuToDoMyActions=Fy nigwyddiadau anghyflawn +MenuDoneMyActions=Fy digwyddiadau terfynu +ListOfEvents=Rhestr o ddigwyddiadau (calendr diofyn) +ActionsAskedBy=Digwyddiadau a adroddwyd gan +ActionsToDoBy=Digwyddiadau a neilltuwyd iddynt +ActionsDoneBy=Digwyddiadau a wneir gan +ActionAssignedTo=Digwyddiad wedi'i neilltuo i +ViewCal=Golwg mis +ViewDay=Golygfa dydd +ViewWeek=Golygfa wythnos +ViewPerUser=Fesul golwg defnyddiwr +ViewPerType=Golwg fesul math +AutoActions= Llenwi'n awtomatig +AgendaAutoActionDesc= Yma gallwch ddiffinio digwyddiadau yr ydych am i Dolibarr eu creu yn awtomatig yn Agenda. Os na chaiff unrhyw beth ei wirio, dim ond gweithredoedd â llaw fydd yn cael eu cynnwys mewn logiau a'u harddangos yn Agenda. Ni fydd tracio awtomatig o weithredoedd busnes a wneir ar wrthrychau (dilysu, newid statws) yn cael ei gadw. +AgendaSetupOtherDesc= Mae'r dudalen hon yn darparu opsiynau i ganiatáu allforio eich digwyddiadau Dolibarr i galendr allanol (Thunderbird, Google Calendar ac ati...) +AgendaExtSitesDesc=Mae'r dudalen hon yn caniatáu i chi ddatgan ffynonellau allanol o galendrau i weld eu digwyddiadau ar agenda Dolibarr. +ActionsEvents=Digwyddiadau y bydd Dolibarr yn creu gweithred ar yr agenda ar eu cyfer yn awtomatig +EventRemindersByEmailNotEnabled=Ni alluogwyd nodiadau atgoffa digwyddiadau trwy e-bost i osod modiwl %s. +##### Agenda event labels ##### +NewCompanyToDolibarr=Trydydd parti %s creu +COMPANY_MODIFYInDolibarr=Trydydd parti %s wedi'i addasu +COMPANY_DELETEInDolibarr=Trydydd parti %s wedi'i ddileu +ContractValidatedInDolibarr=Contract %s wedi'i ddilysu +CONTRACT_DELETEInDolibarr=Contract %s wedi'i ddileu +PropalClosedSignedInDolibarr=Cynnig %s wedi'i lofnodi +PropalClosedRefusedInDolibarr=Gwrthodwyd cynnig %s +PropalValidatedInDolibarr=Cynnig %s wedi'i ddilysu +PropalBackToDraftInDolibarr=Proposal %s go back to draft status +PropalClassifiedBilledInDolibarr=Cynnig %s dosbarthedig wedi'i filio +InvoiceValidatedInDolibarr=Anfoneb %s wedi'i ddilysu +InvoiceValidatedInDolibarrFromPos=Anfoneb %s wedi'i dilysu o POS +InvoiceBackToDraftInDolibarr=Anfoneb %s mynd yn ôl i statws drafft +InvoiceDeleteDolibarr=Anfoneb %s wedi'i ddileu +InvoicePaidInDolibarr=Anfoneb %s wedi'i newid i'w thalu +InvoiceCanceledInDolibarr=Anfoneb %s wedi'i ganslo +MemberValidatedInDolibarr=Aelod %s wedi'i ddilysu +MemberModifiedInDolibarr=Aelod %s wedi'i addasu +MemberResiliatedInDolibarr=Aelod %s terfynu +MemberDeletedInDolibarr=Aelod %s wedi'i ddileu +MemberSubscriptionAddedInDolibarr=Ychwanegwyd tanysgrifiad %s ar gyfer aelod %s +MemberSubscriptionModifiedInDolibarr=Tanysgrifiad %s ar gyfer aelod %s wedi'i addasu +MemberSubscriptionDeletedInDolibarr=Tanysgrifiad %s ar gyfer aelod %s wedi'i ddileu +ShipmentValidatedInDolibarr=Cludo %s wedi'i ddilysu +ShipmentClassifyClosedInDolibarr=Cludo %s dosbarthu bilio +ShipmentUnClassifyCloseddInDolibarr=Cludo %s dosbarthu ail-agor +ShipmentBackToDraftInDolibarr=Cludo %s mynd yn ôl i statws drafft +ShipmentDeletedInDolibarr=Cludo %s wedi'i ddileu +ShipmentCanceledInDolibarr=Cludo %s wedi'i ganslo +ReceptionValidatedInDolibarr=Derbyniad %s wedi'i ddilysu +ReceptionClassifyClosedInDolibarr=Reception %s classified closed +OrderCreatedInDolibarr=Gorchymyn %s wedi'i greu +OrderValidatedInDolibarr=Gorchymyn %s wedi'i ddilysu +OrderDeliveredInDolibarr=Dosbarthwyd archeb %s +OrderCanceledInDolibarr=Archeb %s wedi'i ganslo +OrderBilledInDolibarr=Archeb %s dosbarthu wedi'i bilio +OrderApprovedInDolibarr=Gorchymyn %s wedi'i gymeradwyo +OrderRefusedInDolibarr=Gwrthodwyd y gorchymyn %s +OrderBackToDraftInDolibarr=Gorchymyn %s mynd yn ôl i statws drafft +ProposalSentByEMail=Cynnig masnachol %s wedi'i anfon trwy e-bost +ContractSentByEMail=Contract %s wedi'i anfon trwy e-bost +OrderSentByEMail=Gorchymyn gwerthu %s wedi'i anfon trwy e-bost +InvoiceSentByEMail=Anfoneb cwsmer %s trwy e-bost +SupplierOrderSentByEMail=Archeb prynu %s wedi'i anfon trwy e-bost +ORDER_SUPPLIER_DELETEInDolibarr=Archeb prynu %s wedi'i ddileu +SupplierInvoiceSentByEMail=Anfoneb gwerthwr %s drwy e-bost +ShippingSentByEMail=Cludo %s wedi'i anfon trwy e-bost +ShippingValidated= Cludo %s wedi'i ddilysu +InterventionSentByEMail=Ymyrraeth %s wedi'i anfon trwy e-bost +ProposalDeleted=Cynnig wedi'i ddileu +OrderDeleted=Gorchymyn wedi'i ddileu +InvoiceDeleted=Anfoneb wedi'i dileu +DraftInvoiceDeleted=Anfoneb ddrafft wedi'i dileu +CONTACT_CREATEInDolibarr=Cyswllt %s wedi'i greu +CONTACT_MODIFYInDolibarr=Cyswllt %s wedi'i addasu +CONTACT_DELETEInDolibarr=Cyswllt %s wedi'i ddileu +PRODUCT_CREATEInDolibarr=Cynnyrch %s wedi'i greu +PRODUCT_MODIFYInDolibarr=Cynnyrch %s wedi'i addasu +PRODUCT_DELETEInDolibarr=Cynnyrch %s wedi'i ddileu +HOLIDAY_CREATEInDolibarr=Cais am wyliau %s wedi'i greu +HOLIDAY_MODIFYInDolibarr=Cais am absenoldeb %s wedi'i addasu +HOLIDAY_APPROVEInDolibarr=Cais am wyliau %s wedi'i gymeradwyo +HOLIDAY_VALIDATEInDolibarr=Cais am wyliau %s wedi'i ddilysu +HOLIDAY_DELETEInDolibarr=Cais am wyliau %s wedi'i ddileu +EXPENSE_REPORT_CREATEInDolibarr=Adroddiad treuliau %s wedi'i greu +EXPENSE_REPORT_VALIDATEInDolibarr=Adroddiad treuliau %s wedi'i ddilysu +EXPENSE_REPORT_APPROVEInDolibarr=Adroddiad treuliau %s wedi'i gymeradwyo +EXPENSE_REPORT_DELETEInDolibarr=Adroddiad treuliau %s wedi'i ddileu +EXPENSE_REPORT_REFUSEDInDolibarr=Gwrthodwyd adroddiad treuliau %s +PROJECT_CREATEInDolibarr=Prosiect %s wedi'i greu +PROJECT_MODIFYInDolibarr=Prosiect %s wedi'i addasu +PROJECT_DELETEInDolibarr=Prosiect %s wedi'i ddileu +TICKET_CREATEInDolibarr=Tocyn %s wedi'i greu +TICKET_MODIFYInDolibarr=Tocyn %s wedi'i addasu +TICKET_ASSIGNEDInDolibarr=Tocyn %s wedi'i neilltuo +TICKET_CLOSEInDolibarr=Tocyn %s ar gau +TICKET_DELETEInDolibarr=Tocyn %s wedi'i ddileu +BOM_VALIDATEInDolibarr=BOM wedi'i ddilysu +BOM_UNVALIDATEInDolibarr=BOM heb ei ddilysu +BOM_CLOSEInDolibarr=BOM wedi'i analluogi +BOM_REOPENInDolibarr=BOM yn ailagor +BOM_DELETEInDolibarr=BOM wedi'i ddileu +MRP_MO_VALIDATEInDolibarr=MO wedi'i ddilysu +MRP_MO_UNVALIDATEInDolibarr=MO wedi'i osod i statws drafft +MRP_MO_PRODUCEDInDolibarr=MO cynhyrchu +MRP_MO_DELETEInDolibarr=MO wedi'i ddileu +MRP_MO_CANCELInDolibarr=MO wedi'i ganslo +PAIDInDolibarr=%s talu +##### End agenda events ##### +AgendaModelModule=Templedi dogfen ar gyfer digwyddiad +DateActionStart=Dyddiad cychwyn +DateActionEnd=Dyddiad Gorffen +AgendaUrlOptions1=Gallwch hefyd ychwanegu paramedrau canlynol at allbwn hidlo: +AgendaUrlOptions3= logina=%s i gyfyngu allbwn i weithredoedd sy'n eiddo i ddefnyddiwr %s a09a4b739zf 1. +AgendaUrlOptionsNotAdmin= logina=!%s i gyfyngu allbwn i weithredoedd nad ydynt yn eiddo i'r defnyddiwr %s a09a4b73zf . +AgendaUrlOptions4= logint=%s i gyfyngu allbwn i gamau gweithredu a neilltuwyd i ddefnyddiwr %s a09a4b739zf17 (perchennog ac eraill). +AgendaUrlOptionsProject= prosiect=__PROJECT_ID__ i gyfyngu allbwn i gamau gweithredu sy'n gysylltiedig â phrosiect __PROJECT_ID__ . +AgendaUrlOptionsNotAutoEvent= notactiontype=systemauto i eithrio digwyddiadau awtomatig. +AgendaUrlOptionsIncludeHolidays= includeholidays=1 i gynnwys digwyddiadau o wyliau. +AgendaShowBirthdayEvents=Penblwyddi cysylltiadau +AgendaHideBirthdayEvents=Cuddio penblwyddi cysylltiadau +Busy=Prysur +ExportDataset_event1=Rhestr o ddigwyddiadau ar yr agenda +DefaultWorkingDays=Ystod dyddiau gwaith diofyn yn ystod yr wythnos (Enghraifft: 1-5, 1-6) +DefaultWorkingHours=Oriau gwaith diofyn yn ystod y dydd (Enghraifft: 9-18) +# External Sites ical +ExportCal=Allforio calendr +ExtSites=Mewnforio calendrau allanol +ExtSitesEnableThisTool=Dangos calendrau allanol (a ddiffinnir mewn gosodiad byd-eang) yn Agenda. Nid yw'n effeithio ar galendrau allanol a ddiffinnir gan ddefnyddwyr. +ExtSitesNbOfAgenda=Nifer y calendrau +AgendaExtNb=Calendr rhif. %s +ExtSiteUrlAgenda=URL i gael mynediad at ffeil .ical +ExtSiteNoLabel=Dim Disgrifiad +VisibleTimeRange=Amrediad amser gweladwy +VisibleDaysRange=Amrediad dyddiau gweladwy +AddEvent=Creu digwyddiad +MyAvailability=Fy argaeledd +ActionType=Math o ddigwyddiad +DateActionBegin=Dyddiad cychwyn y digwyddiad +ConfirmCloneEvent=Ydych chi'n siŵr eich bod am glonio'r digwyddiad %s ? +RepeatEvent=Digwyddiad ailadrodd +OnceOnly=Unwaith yn unig +EveryWeek=Pob wythnos +EveryMonth=Pob mis +DayOfMonth=Diwrnod y mis +DayOfWeek=Diwrnod yr wythnos +DateStartPlusOne=Dyddiad cychwyn + 1 awr +SetAllEventsToTodo=Gosodwch yr holl ddigwyddiadau i'w gwneud +SetAllEventsToInProgress=Gosodwch yr holl ddigwyddiadau ar y gweill +SetAllEventsToFinished=Gosod pob digwyddiad i orffen +ReminderTime=Cyfnod atgoffa cyn y digwyddiad +TimeType=Math o hyd +ReminderType=Math o alwad yn ôl +AddReminder=Creu hysbysiad atgoffa awtomatig ar gyfer y digwyddiad hwn +ErrorReminderActionCommCreation=Gwall wrth greu'r hysbysiad atgoffa ar gyfer y digwyddiad hwn +BrowserPush=Hysbysiad Naid Porwr +ActiveByDefault=Wedi'i alluogi yn ddiofyn diff --git a/htdocs/langs/cy_GB/assets.lang b/htdocs/langs/cy_GB/assets.lang new file mode 100644 index 00000000000..6ac7318454f --- /dev/null +++ b/htdocs/langs/cy_GB/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=Ased newydd +AccountancyCodeAsset=Cod cyfrifo (ased) +AccountancyCodeDepreciationAsset=Cod cyfrifyddu (cyfrif ased dibrisiant) +AccountancyCodeDepreciationExpense=Cod cyfrifyddu (cyfrif cost dibrisiant) +AssetsLines=Asedau +DeleteType=Dileu +DeleteAnAssetType=Dileu model ased +ConfirmDeleteAssetType=Ydych chi'n siŵr eich bod am ddileu'r model ased hwn? +ShowTypeCard=Dangos model '%s' + +# Module label 'ModuleAssetsName' +ModuleAssetsName=Asedau +# Module description 'ModuleAssetsDesc' +ModuleAssetsDesc=Disgrifiad o'r asedau + +# +# Admin page +# +AssetSetup=Gosodiad asedau +AssetSetupPage=Tudalen gosod asedau +ExtraFieldsAssetModel=Priodoleddau cyflenwol (model Asset) + +AssetsType=Model asedau +AssetsTypeId=ID model asedau +AssetsTypeLabel=Label model asedau +AssetsTypes=Modelau asedau +ASSET_ACCOUNTANCY_CATEGORY=Grŵp cyfrifo asedau sefydlog + +# +# Menu +# +MenuAssets=Asedau +MenuNewAsset=Ased newydd +MenuAssetModels=Asedau model +MenuListAssets=Rhestr +MenuNewAssetModel=Model ased newydd +MenuListAssetModels=Rhestr + +# +# Module +# +ConfirmDeleteAsset=Ydych chi wir eisiau dileu'r ased hwn? + +# +# Tab +# +AssetDepreciationOptions=Opsiynau dibrisiant +AssetAccountancyCodes=Cyfrifon cyfrifo +AssetDepreciation=Dibrisiant + +# +# Asset +# +Asset=Ased +Assets=Asedau +AssetReversalAmountHT=Swm gwrthdroi (heb drethi) +AssetAcquisitionValueHT=Swm caffael (heb drethi) +AssetRecoveredVAT=TAW wedi'i adennill +AssetReversalDate=Dyddiad gwrthdroi +AssetDateAcquisition=Dyddiad caffael +AssetDateStart=Dyddiad cychwyn +AssetAcquisitionType=Math o gaffaeliad +AssetAcquisitionTypeNew=Newydd +AssetAcquisitionTypeOccasion=Defnyddiwyd +AssetType=Math o ased +AssetTypeIntangible=Anniriaethol +AssetTypeTangible=diriaethol +AssetTypeInProgress=Ar y gweill +AssetTypeFinancial=Ariannol +AssetNotDepreciated=Heb ei ddibrisio +AssetDisposal=Gwaredu +AssetConfirmDisposalAsk=A ydych yn siŵr eich bod am gael gwared ar yr ased %s ? +AssetConfirmReOpenAsk=A ydych yn siŵr eich bod am ailagor yr ased %s ? + +# +# Asset status +# +AssetInProgress=Ar y gweill +AssetDisposed=Gwaredwyd +AssetRecorded=Cyfrifwyd + +# +# Asset disposal +# +AssetDisposalDate=Dyddiad gwaredu +AssetDisposalAmount=Gwerth gwaredu +AssetDisposalType=Math o waredu +AssetDisposalDepreciated=Dibrisio'r flwyddyn drosglwyddo +AssetDisposalSubjectToVat=Gwaredu yn amodol ar TAW + +# +# Asset model +# +AssetModel=Model Asset +AssetModels=Modelau Asset + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Dibrisiant economaidd +AssetDepreciationOptionAcceleratedDepreciation=Dibrisiant cyflymedig (treth) +AssetDepreciationOptionDepreciationType=Math o ddibrisiant +AssetDepreciationOptionDepreciationTypeLinear=Llinol +AssetDepreciationOptionDepreciationTypeDegressive=Graddol +AssetDepreciationOptionDepreciationTypeExceptional=Eithriadol +AssetDepreciationOptionDegressiveRate=Cyfradd ddisgynnol +AssetDepreciationOptionAcceleratedDepreciation=Dibrisiant cyflymedig (treth) +AssetDepreciationOptionDuration=Hyd +AssetDepreciationOptionDurationType=Math hyd +AssetDepreciationOptionDurationTypeAnnual=Blynyddol +AssetDepreciationOptionDurationTypeMonthly=Yn fisol +AssetDepreciationOptionDurationTypeDaily=Dyddiol +AssetDepreciationOptionRate=Cyfradd (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Sylfaen dibrisiant (ac eithrio TAW) +AssetDepreciationOptionAmountBaseDeductibleHT=Sylfaen dynadwy (ac eithrio TAW) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Cyfanswm y dibrisiant diwethaf (ac eithrio TAW) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Dibrisiant economaidd +AssetAccountancyCodeAsset=Ased +AssetAccountancyCodeDepreciationAsset=Dibrisiant +AssetAccountancyCodeDepreciationExpense=Traul dibrisiant +AssetAccountancyCodeValueAssetSold=Gwerth yr ased a waredwyd +AssetAccountancyCodeReceivableOnAssignment=Derbyniadwy wrth waredu +AssetAccountancyCodeProceedsFromSales=Elw o waredu +AssetAccountancyCodeVatCollected=TAW a gasglwyd +AssetAccountancyCodeVatDeductible=Adenillwyd TAW ar asedau +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Dibrisiant cyflymedig (treth) +AssetAccountancyCodeAcceleratedDepreciation=Cyfrif +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Traul dibrisiant +AssetAccountancyCodeProvisionAcceleratedDepreciation=Adfeddiannu/Darpariaeth + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Sail dibrisiant (ac eithrio TAW) +AssetDepreciationBeginDate=Dechrau dibrisiant ymlaen +AssetDepreciationDuration=Hyd +AssetDepreciationRate=Cyfradd (%%) +AssetDepreciationDate=Dyddiad dibrisiant +AssetDepreciationHT=Dibrisiant (ac eithrio TAW) +AssetCumulativeDepreciationHT=Dibrisiant cronnus (ac eithrio TAW) +AssetResidualHT=Gwerth gweddilliol (ac eithrio TAW) +AssetDispatchedInBookkeeping=Dibrisiant wedi'i gofnodi +AssetFutureDepreciationLine=Dibrisiant yn y dyfodol +AssetDepreciationReversal=Gwrthdroad + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Nid yw id yr ased neu sain y model wedi'i ddarparu +AssetErrorFetchAccountancyCodesForMode=Gwall wrth adalw'r cyfrifon cyfrifo ar gyfer y modd dibrisiant '%s' +AssetErrorDeleteAccountancyCodesForMode=Gwall wrth ddileu cyfrifon cyfrifo o'r modd dibrisiant '%s' +AssetErrorInsertAccountancyCodesForMode=Gwall wrth fewnosod cyfrifon cyfrifo'r modd dibrisiant '%s' +AssetErrorFetchDepreciationOptionsForMode=Gwall wrth adalw opsiynau ar gyfer y modd dibrisiant '%s' +AssetErrorDeleteDepreciationOptionsForMode=Gwall wrth ddileu'r opsiynau modd dibrisiant '%s' +AssetErrorInsertDepreciationOptionsForMode=Gwall wrth fewnosod yr opsiynau modd dibrisiant '%s' +AssetErrorFetchDepreciationLines=Gwall wrth adalw llinellau dibrisiant a gofnodwyd +AssetErrorClearDepreciationLines=Gwall wrth gael gwared ar linellau dibrisiant a gofnodwyd (gwrthdroi a dyfodol) +AssetErrorAddDepreciationLine=Gwall wrth ychwanegu llinell dibrisiant +AssetErrorCalculationDepreciationLines=Gwall wrth gyfrifo'r llinellau dibrisiant (adferiad a dyfodol) +AssetErrorReversalDateNotProvidedForMode=Ni ddarperir y dyddiad gwrthdroi ar gyfer y dull dibrisiant '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Rhaid i'r dyddiad gwrthdroi fod yn fwy neu'n hafal i ddechrau'r flwyddyn ariannol gyfredol ar gyfer y dull dibrisiant '%s' +AssetErrorReversalAmountNotProvidedForMode=Ni ddarperir y swm gwrthdroi ar gyfer y modd dibrisiant '%s'. +AssetErrorFetchCumulativeDepreciation=Gwall wrth adalw swm y dibrisiant cronedig o'r llinell dibrisiant +AssetErrorSetLastCumulativeDepreciation=Gwall wrth gofnodi'r swm dibrisiant cronedig diwethaf diff --git a/htdocs/langs/cy_GB/banks.lang b/htdocs/langs/cy_GB/banks.lang new file mode 100644 index 00000000000..8fc024a5506 --- /dev/null +++ b/htdocs/langs/cy_GB/banks.lang @@ -0,0 +1,187 @@ +# Dolibarr language file - Source file is en_US - banks +Bank=Banc +MenuBankCash=Banciau | Arian parod +MenuVariousPayment=Taliadau amrywiol +MenuNewVariousPayment=Taliad Amrywiol Newydd +BankName=Enw banc +FinancialAccount=Cyfrif +BankAccount=cyfrif banc +BankAccounts=Cyfrifon banc +BankAccountsAndGateways=Cyfrifon banc | Pyrth +ShowAccount=Dangos Cyfrif +AccountRef=Cyfrif ariannol cyf +AccountLabel=Label cyfrif ariannol +CashAccount=Cyfrif arian parod +CashAccounts=Cyfrifon arian parod +CurrentAccounts=Cyfrifon cyfredol +SavingAccounts=Cyfrifon cynilo +ErrorBankLabelAlreadyExists=Mae label cyfrif ariannol eisoes yn bodoli +BankBalance=Cydbwysedd +BankBalanceBefore=Balans o'r blaen +BankBalanceAfter=Balans ar ôl +BalanceMinimalAllowed=Balans lleiaf a ganiateir +BalanceMinimalDesired=Isafswm cydbwysedd dymunol +InitialBankBalance=Cydbwysedd cychwynnol +EndBankBalance=Cydbwysedd diwedd +CurrentBalance=Balans presennol +FutureBalance=Cydbwysedd yn y dyfodol +ShowAllTimeBalance=Dangos cydbwysedd o'r dechrau +AllTime=O'r dechrau +Reconciliation=Cymod +RIB=Rhif Cyfrif Banc +IBAN=rhif IBAN +BIC=Cod BIC/SWIFT +SwiftValid=BIC/SWIFT yn ddilys +SwiftNotValid=BIC/SWIFT ddim yn ddilys +IbanValid=BAN yn ddilys +IbanNotValid=BAN ddim yn ddilys +StandingOrders=Gorchmynion debyd uniongyrchol +StandingOrder=Gorchymyn debyd uniongyrchol +PaymentByDirectDebit=Talu trwy ddebyd uniongyrchol +PaymentByBankTransfers=Taliadau trwy drosglwyddiad credyd +PaymentByBankTransfer=Taliad trwy drosglwyddiad credyd +AccountStatement=Datganiad cyfrif +AccountStatementShort=Datganiad +AccountStatements=Datganiadau cyfrif +LastAccountStatements=Datganiadau cyfrif diwethaf +IOMonthlyReporting=Adroddiadau misol +BankAccountDomiciliation=Cyfeiriad banc +BankAccountCountry=Gwlad cyfrif +BankAccountOwner=Enw perchennog y cyfrif +BankAccountOwnerAddress=Cyfeiriad perchennog y cyfrif +CreateAccount=Creu cyfrif +NewBankAccount=Cyfrif newydd +NewFinancialAccount=Cyfrif ariannol newydd +MenuNewFinancialAccount=Cyfrif ariannol newydd +EditFinancialAccount=Golygu cyfrif +LabelBankCashAccount=Label banc neu arian parod +AccountType=Math o gyfrif +BankType0=Cyfrif cynilo +BankType1=Cyfrif cerdyn credyd neu gyfredol +BankType2=Cyfrif arian parod +AccountsArea=Maes cyfrifon +AccountCard=Cerdyn cyfrif +DeleteAccount=Dileu cyfrif +ConfirmDeleteAccount=Ydych chi'n siŵr eich bod am ddileu'r cyfrif hwn? +Account=Cyfrif +BankTransactionByCategories=Cofnodion banc yn ôl categorïau +BankTransactionForCategory=Cofnodion banc ar gyfer categori %s +RemoveFromRubrique=Dileu dolen gyda chategori +RemoveFromRubriqueConfirm=Ydych chi'n siŵr eich bod am ddileu'r ddolen rhwng y cofnod a'r categori? +ListBankTransactions=Rhestr o gofnodion banc +IdTransaction=ID trafodiad +BankTransactions=Cofnodion banc +BankTransaction=Mynediad banc +ListTransactions=Rhestr cofnodion +ListTransactionsByCategory=Rhestrwch gofnodion/categori +TransactionsToConciliate=Cofnodion i'w cysoni +TransactionsToConciliateShort=I gymodi +Conciliable=Gellir ei gysoni +Conciliate=Cymodi +Conciliation=Cymod +SaveStatementOnly=Cadw datganiad yn unig +ReconciliationLate=Cymod yn hwyr +IncludeClosedAccount=Cynhwyswch gyfrifon caeedig +OnlyOpenedAccount=Dim ond cyfrifon agored +AccountToCredit=Cyfrif i gredyd +AccountToDebit=Cyfrif i ddebyd +DisableConciliation=Analluogi nodwedd cysoni ar gyfer y cyfrif hwn +ConciliationDisabled=Analluogwyd y nodwedd cysoni +LinkedToAConciliatedTransaction=Yn gysylltiedig â chofnod wedi'i gymodi +StatusAccountOpened=Agored +StatusAccountClosed=Ar gau +AccountIdShort=Rhif +LineRecord=Trafodyn +AddBankRecord=Ychwanegu cofnod +AddBankRecordLong=Ychwanegu cofnod â llaw +Conciliated=Wedi cymodi +ReConciliedBy=Reconciled by +DateConciliating=Cysoni dyddiad +BankLineConciliated=Mae'r mynediad wedi'i gysoni â derbynneb banc +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled +CustomerInvoicePayment=Taliad cwsmer +SupplierInvoicePayment=Taliad gwerthwr +SubscriptionPayment=Taliad tanysgrifiad +WithdrawalPayment=Gorchymyn talu debyd +SocialContributionPayment=Taliad treth cymdeithasol/cyllidol +BankTransfer=Trosglwyddo credyd +BankTransfers=Trosglwyddiadau credyd +MenuBankInternalTransfer=Trosglwyddo mewnol +TransferDesc=Defnyddiwch drosglwyddiad mewnol i drosglwyddo o un cyfrif i'r llall, bydd y cais yn ysgrifennu dau gofnod: debyd yn y cyfrif ffynhonnell a chredyd yn y cyfrif targed. Bydd yr un swm, label a dyddiad yn cael eu defnyddio ar gyfer y trafodiad hwn. +TransferFrom=Oddiwrth +TransferTo=I +TransferFromToDone=Mae trosglwyddo o %s i %s o %s %s wedi cael ei gofnodi. +CheckTransmitter=Anfonwr +ValidateCheckReceipt=Dilysu'r dderbynneb siec hon? +ConfirmValidateCheckReceipt=A ydych yn siŵr eich bod am gyflwyno'r dderbynneb siec hon i'w dilysu? Ni fydd unrhyw newidiadau yn bosibl ar ôl eu dilysu. +DeleteCheckReceipt=Dileu'r dderbynneb siec hon? +ConfirmDeleteCheckReceipt=Ydych chi'n siŵr eich bod am ddileu'r dderbynneb siec hon? +BankChecks=Sieciau banc +BankChecksToReceipt=Sieciau yn aros am flaendal +BankChecksToReceiptShort=Sieciau yn aros am flaendal +ShowCheckReceipt=Dangos derbynneb blaendal siec +NumberOfCheques=Nifer y siec +DeleteTransaction=Dileu cofnod +ConfirmDeleteTransaction=Ydych chi'n siŵr eich bod am ddileu'r cofnod hwn? +ThisWillAlsoDeleteBankRecord=Bydd hyn hefyd yn dileu cofnod banc a gynhyrchir +BankMovements=Symudiadau +PlannedTransactions=Cofnodion wedi'u cynllunio +Graph=Graffiau +ExportDataset_banque_1=Cofnodion banc a datganiad cyfrif +ExportDataset_banque_2=Slip blaendal +TransactionOnTheOtherAccount=Trafodyn ar y cyfrif arall +PaymentNumberUpdateSucceeded=Diweddarwyd y rhif taliad yn llwyddiannus +PaymentNumberUpdateFailed=Ni fu modd diweddaru'r rhif talu +PaymentDateUpdateSucceeded=Dyddiad talu wedi'i ddiweddaru'n llwyddiannus +PaymentDateUpdateFailed=Ni fu modd diweddaru'r dyddiad talu +Transactions=Trafodion +BankTransactionLine=Mynediad banc +AllAccounts=Pob cyfrif banc ac arian parod +BackToAccount=Yn ôl i'r cyfrif +ShowAllAccounts=Dangoswch ar gyfer pob cyfrif +FutureTransaction=Trafodiad yn y dyfodol. Methu cysoni. +SelectChequeTransactionAndGenerate=Dewiswch/hidlo'r sieciau sydd i'w cynnwys yn y dderbynneb blaendal siec. Yna, cliciwch ar "Creu". +InputReceiptNumber=Dewiswch y cyfriflen banc sy'n gysylltiedig â'r cymodi. Defnyddiwch werth rhifol y gellir ei ddidoli: BBBB neu BBBBBB +EventualyAddCategory=Yn y pen draw, nodwch gategori ar gyfer dosbarthu'r cofnodion +ToConciliate=I gymodi? +ThenCheckLinesAndConciliate=Yna, gwiriwch y llinellau sy'n bresennol yn y cyfriflen banc a chliciwch +DefaultRIB=BAN ddiofyn +AllRIB=Pob BAN +LabelRIB=Label BAN +NoBANRecord=Dim cofnod BAN +DeleteARib=Dileu cofnod BAN +ConfirmDeleteRib=Ydych chi'n siŵr eich bod am ddileu'r cofnod BAN hwn? +RejectCheck=Dychwelwyd siec +ConfirmRejectCheck=Ydych chi'n siŵr eich bod am farcio'r siec hon fel un a wrthodwyd? +RejectCheckDate=Dyddiad dychwelyd y siec +CheckRejected=Dychwelwyd siec +CheckRejectedAndInvoicesReopened=Dychwelwyd siec ac mae anfonebau'n ailagor +BankAccountModelModule=Templedi dogfennau ar gyfer cyfrifon banc +DocumentModelSepaMandate=Templed mandad SEPA. Yn ddefnyddiol i wledydd Ewropeaidd yn y CEE yn unig. +DocumentModelBan=Templed i argraffu tudalen gyda gwybodaeth BAN. +NewVariousPayment=Taliad amrywiol newydd +VariousPayment=Taliad amrywiol +VariousPayments=Taliadau amrywiol +ShowVariousPayment=Dangos taliad amrywiol +AddVariousPayment=Ychwanegu taliad amrywiol +VariousPaymentId=ID taliad amrywiol +VariousPaymentLabel=Label talu amrywiol +ConfirmCloneVariousPayment=Cadarnhewch y clon o daliad amrywiol +SEPAMandate=mandad SEPA +YourSEPAMandate=Eich mandad SEPA +FindYourSEPAMandate=Dyma eich mandad SEPA i awdurdodi ein cwmni i wneud archeb debyd uniongyrchol i'ch banc. Dychwelwch wedi'i lofnodi (sgan o'r ddogfen wedi'i llofnodi) neu anfonwch hi drwy'r post i +AutoReportLastAccountStatement=Llenwch y maes 'rhif y cyfriflen banc' yn awtomatig gyda rhif y gyfriflen olaf wrth wneud cysoniad +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) +BankColorizeMovement=Lliwiwch symudiadau +BankColorizeMovementDesc=Os yw'r swyddogaeth hon wedi'i galluogi, gallwch ddewis lliw cefndir penodol ar gyfer symudiadau debyd neu gredyd +BankColorizeMovementName1=Lliw cefndir ar gyfer symudiad debyd +BankColorizeMovementName2=Lliw cefndir ar gyfer symudiad credyd +IfYouDontReconcileDisableProperty=Os na fyddwch yn gwneud y cysoniadau banc ar rai cyfrifon banc, analluoga'r eiddo "%s" arnynt i gael gwared ar y rhybudd hwn. +NoBankAccountDefined=Dim cyfrif banc wedi'i ddiffinio +NoRecordFoundIBankcAccount=Heb ganfod cofnod yn y cyfrif banc. Yn gyffredin, mae hyn yn digwydd pan fydd cofnod wedi'i ddileu â llaw o'r rhestr o drafodion yn y cyfrif banc (er enghraifft yn ystod cysoniad o'r cyfrif banc). Rheswm arall yw bod y taliad wedi'i gofnodi pan oedd y modiwl "%s" yn anabl. +AlreadyOneBankAccount=Eisoes un cyfrif banc wedi'i ddiffinio +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Trosglwyddiad SEPA: 'Math o Daliad' ar lefel 'Trosglwyddo Credyd' +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=I greu cofnod banc cysylltiedig coll diff --git a/htdocs/langs/cy_GB/bills.lang b/htdocs/langs/cy_GB/bills.lang new file mode 100644 index 00000000000..2207f6dc82e --- /dev/null +++ b/htdocs/langs/cy_GB/bills.lang @@ -0,0 +1,614 @@ +# Dolibarr language file - Source file is en_US - bills +Bill=Anfoneb +Bills=Anfonebau +BillsCustomers=Anfonebau cwsmeriaid +BillsCustomer=Anfoneb cwsmer +BillsSuppliers=Anfonebau gwerthwr +BillsCustomersUnpaid=Anfonebau cwsmeriaid heb eu talu +BillsCustomersUnpaidForCompany=Anfonebau cwsmeriaid heb eu talu ar gyfer %s +BillsSuppliersUnpaid=Anfonebau gwerthwr heb eu talu +BillsSuppliersUnpaidForCompany=Anfonebau gwerthwyr di-dâl ar gyfer %s +BillsLate=Taliadau hwyr +BillsStatistics=Ystadegau anfonebau cwsmeriaid +BillsStatisticsSuppliers=Ystadegau anfonebu gwerthwyr +DisabledBecauseDispatchedInBookkeeping=Wedi'i analluogi oherwydd bod yr anfoneb wedi'i hanfon i gadw cyfrifon +DisabledBecauseNotLastInvoice=Analluogwyd oherwydd ni ellir dileu anfoneb. Cofnodwyd rhai anfonebau ar ôl yr un yma a bydd yn creu tyllau yn y cownter. +DisabledBecauseNotErasable=Analluogwyd oherwydd ni ellir ei ddileu +InvoiceStandard=Anfoneb safonol +InvoiceStandardAsk=Anfoneb safonol +InvoiceStandardDesc=Y math hwn o anfoneb yw'r anfoneb gyffredin. +InvoiceDeposit=Anfoneb taliad i lawr +InvoiceDepositAsk=Anfoneb taliad i lawr +InvoiceDepositDesc=Gwneir y math hwn o anfoneb pan fydd taliad i lawr wedi'i dderbyn. +InvoiceProForma=Anfoneb profforma +InvoiceProFormaAsk=Anfoneb profforma +InvoiceProFormaDesc= Mae anfoneb profforma yn ddelwedd o anfoneb wir ond nid oes ganddo werth cyfrifyddiaeth. +InvoiceReplacement=Anfoneb newydd +InvoiceReplacementAsk=Anfoneb newydd ar gyfer anfoneb +InvoiceReplacementDesc= Anfoneb newydd yn cael ei ddefnyddio i amnewid anfoneb yn gyfan gwbl heb unrhyw daliad eisoes wedi'i dderbyn.

    Nodyn: Dim ond anfonebau heb daliad arno y gellir eu disodli. Os nad yw'r anfoneb y byddwch yn ei disodli wedi'i chau eto, caiff ei chau'n awtomatig i 'wedi'i gadael'. +InvoiceAvoir=Nodyn credyd +InvoiceAvoirAsk=Nodyn credyd i gywiro anfoneb +InvoiceAvoirDesc=Mae'r nodyn credyd yn anfoneb negyddol a ddefnyddir i gywiro'r ffaith bod anfoneb yn dangos swm sy'n wahanol i'r swm a dalwyd mewn gwirionedd (e.e. y cwsmer wedi talu gormod trwy gamgymeriad, neu ni fydd yn talu'r swm cyflawn ers dychwelyd rhai cynhyrchion) . +invoiceAvoirWithLines=Creu Nodyn Credyd gyda llinellau o'r anfoneb tarddiad +invoiceAvoirWithPaymentRestAmount=Creu Nodyn Credyd gyda'r anfoneb wreiddiol heb ei thalu +invoiceAvoirLineWithPaymentRestAmount=Nodyn Credyd ar gyfer y swm sy'n weddill heb ei dalu +ReplaceInvoice=Disodli anfoneb %s +ReplacementInvoice=Anfoneb newydd +ReplacedByInvoice=Wedi'i ddisodli gan anfoneb %s +ReplacementByInvoice=Wedi'i ddisodli gan anfoneb +CorrectInvoice=Anfoneb gywir %s +CorrectionInvoice=Anfoneb cywiro +UsedByInvoice=Wedi'i ddefnyddio i dalu anfoneb %s +ConsumedBy=Wedi'i fwyta gan +NotConsumed=Heb ei fwyta +NoReplacableInvoice=Dim anfonebau y gellir eu cyfnewid +NoInvoiceToCorrect=Dim anfoneb i'w chywiro +InvoiceHasAvoir=Oedd yn ffynhonnell o un neu nifer o nodiadau credyd +CardBill=Cerdyn anfoneb +PredefinedInvoices=Anfonebau Rhagosodol +Invoice=Anfoneb +PdfInvoiceTitle=Anfoneb +Invoices=Anfonebau +InvoiceLine=Llinell anfoneb +InvoiceCustomer=Anfoneb cwsmer +CustomerInvoice=Anfoneb cwsmer +CustomersInvoices=Anfonebau cwsmeriaid +SupplierInvoice=Anfoneb gwerthwr +SuppliersInvoices=Anfonebau gwerthwr +SupplierInvoiceLines=Llinellau anfoneb y gwerthwr +SupplierBill=Anfoneb gwerthwr +SupplierBills=Anfonebau gwerthwr +Payment=Taliad +PaymentBack=Ad-daliad +CustomerInvoicePaymentBack=Ad-daliad +Payments=Taliadau +PaymentsBack=Ad-daliadau +paymentInInvoiceCurrency=mewn arian cyfred anfonebau +PaidBack=Talwyd yn ôl +DeletePayment=Dileu taliad +ConfirmDeletePayment=A ydych yn siŵr eich bod am ddileu'r taliad hwn? +ConfirmConvertToReduc=Ydych chi am drosi'r %s hwn yn gredyd sydd ar gael? +ConfirmConvertToReduc2=Bydd y swm yn cael ei arbed ymhlith yr holl ostyngiadau a gellid ei ddefnyddio fel gostyngiad ar gyfer anfoneb gyfredol neu anfoneb yn y dyfodol ar gyfer y cwsmer hwn. +ConfirmConvertToReducSupplier=Ydych chi am drosi'r %s hwn yn gredyd sydd ar gael? +ConfirmConvertToReducSupplier2=Bydd y swm yn cael ei arbed ymhlith yr holl ostyngiadau a gellid ei ddefnyddio fel gostyngiad ar gyfer anfoneb gyfredol neu anfoneb yn y dyfodol ar gyfer y gwerthwr hwn. +SupplierPayments=Taliadau gwerthwr +ReceivedPayments=Wedi derbyn taliadau +ReceivedCustomersPayments=Taliadau a dderbyniwyd gan gwsmeriaid +PayedSuppliersPayments=Taliadau a dalwyd i werthwyr +ReceivedCustomersPaymentsToValid=Wedi derbyn taliadau cwsmeriaid i ddilysu +PaymentsReportsForYear=Adroddiadau taliadau ar gyfer %s +PaymentsReports=Adroddiadau taliadau +PaymentsAlreadyDone=Taliadau wedi eu gwneud yn barod +PaymentsBackAlreadyDone=Ad-daliadau wedi eu gwneud yn barod +PaymentRule=Rheol talu +PaymentMode=Dull talu +PaymentModes=Dulliau talu +DefaultPaymentMode=Dull Talu Rhagosodedig +DefaultBankAccount=Cyfrif Banc Diofyn +IdPaymentMode=Dull talu (id) +CodePaymentMode=Dull talu (cod) +LabelPaymentMode=Dull talu (label) +PaymentModeShort=Dull talu +PaymentTerm=Tymor Talu +PaymentConditions=Telerau Talu +PaymentConditionsShort=Telerau Talu +PaymentAmount=Swm taliad +PaymentHigherThanReminderToPay=Taliad uwch na nodyn atgoffa i dalu +HelpPaymentHigherThanReminderToPay=Sylwch, mae swm talu un neu fwy o filiau yn uwch na'r swm sy'n ddyledus i'w dalu.
    Golygwch eich cofnod, fel arall cadarnhewch ac ystyriwch greu nodyn credyd ar gyfer y gormodedd a dderbyniwyd ar gyfer pob anfoneb a ordalwyd. +HelpPaymentHigherThanReminderToPaySupplier=Sylwch, mae swm talu un neu fwy o filiau yn uwch na'r swm sy'n ddyledus i'w dalu.
    Golygwch eich cofnod, fel arall cadarnhewch ac ystyriwch greu nodyn credyd ar gyfer y gormodedd a dalwyd am bob anfoneb a ordalwyd. +ClassifyPaid=Dosbarthu 'Talwyd' +ClassifyUnPaid=Dosbarthu 'Di-dâl' +ClassifyPaidPartially=Dosbarthu 'Talwyd yn rhannol' +ClassifyCanceled=Dosbarthu 'Gadael' +ClassifyClosed=Dosbarthu 'Ar Gau' +ClassifyUnBilled=Dosbarthu 'Heb fil' +CreateBill=Creu Anfoneb +CreateCreditNote=Creu nodyn credyd +AddBill=Creu anfoneb neu nodyn credyd +AddToDraftInvoices=Ychwanegu at yr anfoneb ddrafft +DeleteBill=Dileu anfoneb +SearchACustomerInvoice=Chwilio am anfoneb cwsmer +SearchASupplierInvoice=Chwilio am anfoneb gwerthwr +CancelBill=Canslo anfoneb +SendRemindByMail=Anfon nodyn atgoffa trwy e-bost +DoPayment=Rhowch daliad +DoPaymentBack=Rhowch ad-daliad +ConvertToReduc=Marciwch fel credyd sydd ar gael +ConvertExcessReceivedToReduc=Trosi gormodedd a dderbyniwyd yn gredyd sydd ar gael +ConvertExcessPaidToReduc=Troswch y swm dros ben a dalwyd yn ddisgownt sydd ar gael +EnterPaymentReceivedFromCustomer=Nodwch y taliad a dderbyniwyd gan y cwsmer +EnterPaymentDueToCustomer=Gwneud taliad sy'n ddyledus i'r cwsmer +DisabledBecauseRemainderToPayIsZero=Wedi'i analluogi oherwydd bod yr aros yn ddi-dâl yn sero +PriceBase=Pris sylfaenol +BillStatus=Statws anfoneb +StatusOfGeneratedInvoices=Statws anfonebau a gynhyrchir +BillStatusDraft=Drafft (angen ei ddilysu) +BillStatusPaid=Talwyd +BillStatusPaidBackOrConverted=Ad-daliad nodyn credyd neu wedi'i nodi fel credyd ar gael +BillStatusConverted=Talwyd (yn barod i'w fwyta yn yr anfoneb derfynol) +BillStatusCanceled=Wedi'i adael +BillStatusValidated=Wedi'i ddilysu (angen talu) +BillStatusStarted=Dechreuwyd +BillStatusNotPaid=Heb ei dalu +BillStatusNotRefunded=Heb ei ad-dalu +BillStatusClosedUnpaid=Ar gau (di-dâl) +BillStatusClosedPaidPartially=Taledig (rhannol) +BillShortStatusDraft=Drafft +BillShortStatusPaid=Talwyd +BillShortStatusPaidBackOrConverted=Wedi'i ad-dalu neu ei drosi +Refunded=Ad-dalwyd +BillShortStatusConverted=Talwyd +BillShortStatusCanceled=Wedi'i adael +BillShortStatusValidated=Wedi'i ddilysu +BillShortStatusStarted=Dechreuwyd +BillShortStatusNotPaid=Heb ei dalu +BillShortStatusNotRefunded=Heb ei ad-dalu +BillShortStatusClosedUnpaid=Ar gau +BillShortStatusClosedPaidPartially=Taledig (rhannol) +PaymentStatusToValidShort=I ddilysu +ErrorVATIntraNotConfigured=Rhif TAW o fewn y Gymuned heb ei ddiffinio eto +ErrorNoPaiementModeConfigured=Dim math taliad rhagosodedig wedi'i ddiffinio. Ewch i osod modiwl Anfoneb i drwsio hyn. +ErrorCreateBankAccount=Creu cyfrif banc, yna ewch i'r panel Gosod y modiwl Anfoneb i ddiffinio mathau o daliadau +ErrorBillNotFound=Nid yw anfoneb %s yn bodoli +ErrorInvoiceAlreadyReplaced=Gwall, fe wnaethoch geisio dilysu anfoneb i ddisodli anfoneb %s. Ond mae'r un hwn eisoes wedi'i ddisodli gan anfoneb %s. +ErrorDiscountAlreadyUsed=Gwall, disgownt a ddefnyddiwyd eisoes +ErrorInvoiceAvoirMustBeNegative=Gwall, rhaid i anfoneb gywir gael swm negyddol +ErrorInvoiceOfThisTypeMustBePositive=Gwall, rhaid bod gan y math hwn o anfoneb swm heb gynnwys treth bositif (neu null) +ErrorCantCancelIfReplacementInvoiceNotValidated=Gwall, ni fu modd canslo anfoneb sydd wedi'i disodli gan anfoneb arall sy'n dal i fod mewn statws drafft +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Mae'r rhan hon neu'r llall eisoes yn cael ei defnyddio felly ni ellir dileu cyfres ddisgownt. +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=Oddiwrth +BillTo=I +ActionsOnBill=Camau gweithredu ar anfoneb +RecurringInvoiceTemplate=Templed / Anfoneb cylchol +NoQualifiedRecurringInvoiceTemplateFound=Dim anfoneb templed cylchol yn gymwys ar gyfer cynhyrchu. +FoundXQualifiedRecurringInvoiceTemplate=Wedi dod o hyd %s anfoneb(au) templed cylchol yn gymwys ar gyfer cynhyrchu. +NotARecurringInvoiceTemplate=Ddim yn anfoneb templed cylchol +NewBill=Anfoneb newydd +LastBills=Anfonebau %s diweddaraf +LatestTemplateInvoices=Anfonebau templed diweddaraf %s +LatestCustomerTemplateInvoices=Anfonebau templed cwsmeriaid diweddaraf %s +LatestSupplierTemplateInvoices=Anfonebau templed gwerthwr %s diweddaraf +LastCustomersBills=Anfonebau cwsmeriaid %s diweddaraf +LastSuppliersBills=Anfonebau gwerthwr %s diweddaraf +AllBills=Pob anfoneb +AllCustomerTemplateInvoices=Pob anfoneb templed +OtherBills=Anfonebau eraill +DraftBills=Anfonebau drafft +CustomersDraftInvoices=Anfonebau drafft cwsmeriaid +SuppliersDraftInvoices=Anfonebau drafft y gwerthwr +Unpaid=Di-dâl +ErrorNoPaymentDefined=Gwall Dim taliad wedi'i ddiffinio +ConfirmDeleteBill=Ydych chi'n siŵr eich bod am ddileu'r anfoneb hon? +ConfirmValidateBill=A ydych yn siŵr eich bod am ddilysu'r anfoneb hon gyda'r cyfeirnod %s ? +ConfirmUnvalidateBill=Ydych chi'n siŵr eich bod am newid yr anfoneb %s i statws drafft? +ConfirmClassifyPaidBill=Ydych chi'n siŵr eich bod am newid yr anfoneb %s i'r statws a dalwyd? +ConfirmCancelBill=A ydych yn siŵr eich bod am ganslo anfoneb %s ? +ConfirmCancelBillQuestion=Pam ydych chi am ddosbarthu'r anfoneb hon fel 'wedi'i gadael'? +ConfirmClassifyPaidPartially=Ydych chi'n siŵr eich bod am newid yr anfoneb %s i'r statws a dalwyd? +ConfirmClassifyPaidPartiallyQuestion=Nid yw'r anfoneb hon wedi'i thalu'n llwyr. Beth yw'r rheswm dros gau'r anfoneb hon? +ConfirmClassifyPaidPartiallyReasonAvoir=Mae gweddill di-dâl (%s %s) yn ddisgownt a roddwyd oherwydd bod taliad wedi'i wneud cyn y tymor. Rwy'n rheoleiddio'r TAW gyda nodyn credyd. +ConfirmClassifyPaidPartiallyReasonDiscount=Mae gweddill di-dâl (%s %s) yn ddisgownt a roddwyd oherwydd bod taliad wedi'i wneud cyn y tymor. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Mae gweddill di-dâl (%s %s) yn ddisgownt a roddwyd oherwydd bod taliad wedi'i wneud cyn y tymor. Rwy'n derbyn colli'r TAW ar y gostyngiad hwn. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Mae gweddill di-dâl (%s %s) yn ddisgownt a roddwyd oherwydd bod taliad wedi'i wneud cyn y tymor. Rwy'n adennill y TAW ar y gostyngiad hwn heb nodyn credyd. +ConfirmClassifyPaidPartiallyReasonBadCustomer=Cwsmer drwg +ConfirmClassifyPaidPartiallyReasonBankCharge=Didyniad gan fanc (ffioedd banc cyfryngol) +ConfirmClassifyPaidPartiallyReasonProductReturned=Cynhyrchion wedi'u dychwelyd yn rhannol +ConfirmClassifyPaidPartiallyReasonOther=Swm wedi'i adael am reswm arall +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Mae'r dewis hwn yn bosibl os yw eich anfoneb wedi'i darparu gyda sylwadau addas. (Enghraifft «Dim ond y dreth sy'n cyfateb i'r pris a dalwyd mewn gwirionedd sy'n rhoi'r hawl i ddidynnu») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Mewn rhai gwledydd, efallai mai dim ond os yw'ch anfoneb yn cynnwys nodiadau cywir y bydd y dewis hwn yn bosibl. +ConfirmClassifyPaidPartiallyReasonAvoirDesc=Defnyddiwch y dewis hwn os nad yw pob un arall yn addas +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Mae cwsmer drwg yn gwsmer sy'n gwrthod talu ei ddyled. +ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Defnyddir y dewis hwn pan nad yw'r taliad wedi'i gwblhau oherwydd bod rhai o'r cynhyrchion wedi'u dychwelyd +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=Y swm heb ei dalu yw ffioedd banc cyfryngol , wedi'i ddidynnu'n uniongyrchol o'r swm cywir a dalwyd gan y Cwsmer. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Defnyddiwch y dewis hwn os nad yw pob un arall yn addas, er enghraifft yn y sefyllfa ganlynol:
    - taliad heb ei gwblhau oherwydd bod rhai cynhyrchion wedi'u hanfon yn ôl
    - swm a hawliwyd yn rhy bwysig oherwydd bod gostyngiad wedi'i anghofio
    Ym mhob achos, rhaid cywiro'r swm a or-hawlwyd yn y system gyfrifyddiaeth trwy greu nodyn credyd. +ConfirmClassifyAbandonReasonOther=Arall +ConfirmClassifyAbandonReasonOtherDesc=Defnyddir y dewis hwn ym mhob achos arall. Er enghraifft oherwydd eich bod yn bwriadu creu anfoneb newydd. +ConfirmCustomerPayment=A ydych chi'n cadarnhau'r mewnbwn taliad hwn ar gyfer %s %s? +ConfirmSupplierPayment=A ydych chi'n cadarnhau'r mewnbwn taliad hwn ar gyfer %s %s? +ConfirmValidatePayment=A ydych yn siŵr eich bod am ddilysu'r taliad hwn? Ni ellir gwneud unrhyw newid unwaith y bydd y taliad wedi'i ddilysu. +ValidateBill=Dilysu anfoneb +UnvalidateBill=Anfoneb annilys +NumberOfBills=Nifer yr anfonebau +NumberOfBillsByMonth=Nifer yr anfonebau y mis +AmountOfBills=Swm yr anfonebau +AmountOfBillsHT=Swm yr anfonebau (net o dreth) +AmountOfBillsByMonthHT=Swm yr anfonebau fesul mis (net o dreth) +UseSituationInvoices=Caniatáu anfoneb sefyllfa +UseSituationInvoicesCreditNote=Caniatáu nodyn credyd anfoneb sefyllfa +Retainedwarranty=Gwarant cadw +AllowedInvoiceForRetainedWarranty=Gwarant wrth gefn y gellir ei defnyddio ar y mathau canlynol o anfonebau +RetainedwarrantyDefaultPercent=Gwarant diofyn y cant +RetainedwarrantyOnlyForSituation=Gwnewch "warant wrth gefn" ar gael ar gyfer anfonebau sefyllfa yn unig +RetainedwarrantyOnlyForSituationFinal=Ar anfonebau sefyllfa mae'r didyniad "gwarant wrth gefn" fyd-eang yn cael ei gymhwyso ar y sefyllfa derfynol yn unig +ToPayOn=I dalu ar %s +toPayOn=i dalu ar %s +RetainedWarranty=Gwarant Wrth Gefn +PaymentConditionsShortRetainedWarranty=Telerau talu gwarant a gadwyd +DefaultPaymentConditionsRetainedWarranty=Telerau talu gwarant a gadwyd rhagosodedig +setPaymentConditionsShortRetainedWarranty=Gosod telerau talu gwarant a gadwyd +setretainedwarranty=Gosod gwarant cadw +setretainedwarrantyDateLimit=Gosod terfyn dyddiad gwarant a gadwyd +RetainedWarrantyDateLimit=Terfyn dyddiad gwarant a gadwyd +RetainedWarrantyNeed100Percent=Mae angen i'r anfoneb sefyllfa fod yn 100%% cynnydd i'w harddangos ar PDF +AlreadyPaid=Eisoes wedi talu +AlreadyPaidBack=Eisoes wedi talu yn ôl +AlreadyPaidNoCreditNotesNoDeposits=Eisoes wedi'i dalu (heb nodiadau credyd a thaliadau i lawr) +Abandoned=Wedi'i adael +RemainderToPay=Aros yn ddi-dâl +RemainderToPayMulticurrency=Arian cyfred gwreiddiol, di-dâl sy'n weddill +RemainderToTake=Swm sy'n weddill i'w gymryd +RemainderToTakeMulticurrency=Swm sy'n weddill i'w gymryd, arian cyfred gwreiddiol +RemainderToPayBack=Swm sy'n weddill i'w ad-dalu +RemainderToPayBackMulticurrency=Swm sy'n weddill i'w ad-dalu, arian cyfred gwreiddiol +NegativeIfExcessRefunded=negyddol os caiff gormodedd ei ad-dalu +Rest=Arfaeth +AmountExpected=Swm a hawlir +ExcessReceived=Derbynnir gormodedd +ExcessReceivedMulticurrency=Derbynnir gormodedd, arian cyfred gwreiddiol +NegativeIfExcessReceived=negyddol os derbynnir gormodedd +ExcessPaid=Telir gormodedd +ExcessPaidMulticurrency=Talu gormodol, arian cyfred gwreiddiol +EscompteOffered=Gostyngiad a gynigir (taliad cyn y tymor) +EscompteOfferedShort=Disgownt +SendBillRef=Cyflwyno anfoneb %s +SendReminderBillRef=Cyflwyno anfoneb %s (atgoffa) +SendPaymentReceipt=Cyflwyno derbynneb taliad %s +NoDraftBills=Dim anfonebau drafft +NoOtherDraftBills=Dim anfonebau drafft eraill +NoDraftInvoices=Dim anfonebau drafft +RefBill=Cyfeirnod yr anfoneb +ToBill=I fil +RemainderToBill=Gweddill i'r bil +SendBillByMail=Anfon anfoneb trwy e-bost +SendReminderBillByMail=Anfon nodyn atgoffa trwy e-bost +RelatedCommercialProposals=Cynigion masnachol cysylltiedig +RelatedRecurringCustomerInvoices=Anfonebau cwsmeriaid cylchol cysylltiedig +MenuToValid=I ddilys +DateMaxPayment=Taliad yn ddyledus ymlaen +DateInvoice=Dyddiad yr anfoneb +DatePointOfTax=Pwynt treth +NoInvoice=Dim anfoneb +NoOpenInvoice=Dim anfoneb agored +NbOfOpenInvoices=Nifer yr anfonebau agored +ClassifyBill=Dosbarthu anfoneb +SupplierBillsToPay=Anfonebau gwerthwr heb eu talu +CustomerBillsUnpaid=Anfonebau cwsmeriaid heb eu talu +NonPercuRecuperable=Anadferadwy +SetConditions=Gosod Telerau Talu +SetMode=Gosod Math Taliad +SetRevenuStamp=Gosod stamp refeniw +Billed=Wedi'i filio +RecurringInvoices=Anfonebau cylchol +RecurringInvoice=Anfoneb cylchol +RepeatableInvoice=Anfoneb templed +RepeatableInvoices=Anfonebau templed +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) +Repeatable=Templed +Repeatables=Templedi +ChangeIntoRepeatableInvoice=Trosi yn anfoneb dempled +CreateRepeatableInvoice=Creu anfoneb templed +CreateFromRepeatableInvoice=Creu o anfoneb templed +CustomersInvoicesAndInvoiceLines=Anfonebau cwsmeriaid a manylion anfonebau +CustomersInvoicesAndPayments=Anfonebau a thaliadau cwsmeriaid +ExportDataset_invoice_1=Anfonebau cwsmeriaid a manylion anfonebau +ExportDataset_invoice_2=Anfonebau a thaliadau cwsmeriaid +ProformaBill=Bil Profforma: +Reduction=Gostyngiad +ReductionShort=Disg. +Reductions=Gostyngiadau +ReductionsShort=Disg. +Discounts=Gostyngiadau +AddDiscount=Creu gostyngiad +AddRelativeDiscount=Creu gostyngiad cymharol +EditRelativeDiscount=Golygu disgownt cymharol +AddGlobalDiscount=Creu gostyngiad llwyr +EditGlobalDiscounts=Golygu gostyngiadau absoliwt +AddCreditNote=Creu nodyn credyd +ShowDiscount=Dangos gostyngiad +ShowReduc=Dangoswch y gostyngiad +ShowSourceInvoice=Dangos yr anfoneb ffynhonnell +RelativeDiscount=Gostyngiad cymharol +GlobalDiscount=Gostyngiad byd-eang +CreditNote=Nodyn credyd +CreditNotes=Nodiadau credyd +CreditNotesOrExcessReceived=Nodiadau credyd neu ormodedd a dderbyniwyd +Deposit=Taliad i lawr +Deposits=Taliadau i lawr +DiscountFromCreditNote=Gostyngiad o nodyn credyd %s +DiscountFromDeposit=Taliadau i lawr o anfoneb %s +DiscountFromExcessReceived=Taliadau dros yr anfoneb %s +DiscountFromExcessPaid=Taliadau dros yr anfoneb %s +AbsoluteDiscountUse=Gellir defnyddio'r math hwn o gredyd ar anfoneb cyn ei ddilysu +CreditNoteDepositUse=Rhaid dilysu anfoneb i ddefnyddio'r math hwn o gredydau +NewGlobalDiscount=Disgownt absoliwt newydd +NewRelativeDiscount=Gostyngiad cymharol newydd +DiscountType=Math o ddisgownt +NoteReason=Nodyn/Rheswm +ReasonDiscount=Rheswm +DiscountOfferedBy=Caniatawyd gan +DiscountStillRemaining=Gostyngiadau neu gredydau ar gael +DiscountAlreadyCounted=Gostyngiadau neu gredydau a ddefnyddiwyd eisoes +CustomerDiscounts=Gostyngiadau cwsmeriaid +SupplierDiscounts=Gostyngiadau gwerthwyr +BillAddress=Anerchiad bil +HelpEscompte=Mae'r gostyngiad hwn yn ddisgownt a roddir i gwsmer oherwydd bod taliad wedi'i wneud cyn y tymor. +HelpAbandonBadCustomer=Mae'r swm hwn wedi'i adael (dywedwyd bod y cwsmer yn gwsmer gwael) ac fe'i hystyrir yn golled eithriadol. +HelpAbandonOther=Mae'r swm hwn wedi'i adael gan ei fod yn gamgymeriad (cwsmer anghywir neu anfoneb wedi'i ddisodli gan un arall er enghraifft) +IdSocialContribution=ID taliad treth cymdeithasol/cyllidol +PaymentId=ID taliad +PaymentRef=Taliad cyf. +InvoiceId=ID anfoneb +InvoiceRef=Cyfeirnod yr anfoneb. +InvoiceDateCreation=Dyddiad creu anfoneb +InvoiceStatus=Statws anfoneb +InvoiceNote=Nodyn anfoneb +InvoicePaid=Talwyd anfoneb +InvoicePaidCompletely=Wedi'i dalu'n llwyr +InvoicePaidCompletelyHelp=Anfoneb a delir yn gyfan gwbl. Nid yw hyn yn cynnwys anfonebau a delir yn rhannol. I gael rhestr o'r holl anfonebau 'Ar Gau' neu anfonebau nad ydynt yn 'Gau', mae'n well gennych ddefnyddio hidlydd ar statws yr anfoneb. +OrderBilled=Archeb wedi'i bilio +DonationPaid=Rhodd wedi ei dalu +PaymentNumber=Rhif talu +RemoveDiscount=Dileu disgownt +WatermarkOnDraftBill=Dyfrnod ar anfonebau drafft (dim byd os yn wag) +InvoiceNotChecked=Dim anfoneb wedi'i dewis +ConfirmCloneInvoice=A ydych yn siŵr eich bod am glonio'r anfoneb hon %s ? +DisabledBecauseReplacedInvoice=Gweithred wedi'i hanalluogi oherwydd bod yr anfoneb wedi'i disodli +DescTaxAndDividendsArea=Mae'r maes hwn yn cyflwyno crynodeb o'r holl daliadau a wnaed ar gyfer treuliau arbennig. Dim ond cofnodion gyda thaliadau yn ystod y flwyddyn sefydlog sydd wedi'u cynnwys yma. +NbOfPayments=Nifer y taliadau +SplitDiscount=Rhannwch y gostyngiad yn ddau +ConfirmSplitDiscount=A ydych yn siŵr eich bod am rannu'r gostyngiad hwn o %s a09a4b739fz0 %s yn ddau ddisgownt llai? +TypeAmountOfEachNewDiscount=Swm mewnbwn ar gyfer pob un o'r ddwy ran: +TotalOfTwoDiscountMustEqualsOriginal=Rhaid i gyfanswm y ddau ddisgownt newydd fod yn hafal i swm y disgownt gwreiddiol. +ConfirmRemoveDiscount=Ydych chi'n siŵr eich bod am ddileu'r gostyngiad hwn? +RelatedBill=Anfoneb gysylltiedig +RelatedBills=Anfonebau cysylltiedig +RelatedCustomerInvoices=Anfonebau cwsmeriaid cysylltiedig +RelatedSupplierInvoices=Anfonebau gwerthwr cysylltiedig +LatestRelatedBill=Anfoneb berthnasol ddiweddaraf +WarningBillExist=Rhybudd, mae un neu fwy o anfonebau eisoes yn bodoli +MergingPDFTool=Uno offeryn PDF +AmountPaymentDistributedOnInvoice=Swm taliad wedi'i ddosbarthu ar yr anfoneb +PaymentOnDifferentThirdBills=Caniatáu taliadau ar filiau trydydd parti gwahanol ond yr un rhiant-gwmni +PaymentNote=Nodyn talu +ListOfPreviousSituationInvoices=Rhestr o anfonebau sefyllfa flaenorol +ListOfNextSituationInvoices=Rhestr o anfonebau sefyllfa nesaf +ListOfSituationInvoices=Rhestr o anfonebau sefyllfa +CurrentSituationTotal=Cyfanswm y sefyllfa bresennol +DisabledBecauseNotEnouthCreditNote=I ddileu anfoneb sefyllfa o'r cylch, rhaid i gyfanswm nodyn credyd yr anfoneb hon gynnwys cyfanswm yr anfoneb hon +RemoveSituationFromCycle=Tynnwch yr anfoneb hon o'r cylch +ConfirmRemoveSituationFromCycle=Tynnu'r anfoneb hon %s o'r cylch ? +ConfirmOuting=Cadarnhau taith +FrequencyPer_d=Bob diwrnod %s +FrequencyPer_m=Bob %s mis +FrequencyPer_y=Bob %s mlynedd +FrequencyUnit=Uned amlder +toolTipFrequency=Enghreifftiau:
    Set 7, Day : rhoi anfoneb newydd bob 7 diwrnod
    Set 3, Month a new month +NextDateToExecution=Dyddiad ar gyfer y genhedlaeth nesaf o anfonebau +NextDateToExecutionShort=Dyddiad gen nesaf. +DateLastGeneration=Dyddiad y genhedlaeth ddiweddaraf +DateLastGenerationShort=Dyddiad gen diweddaraf. +MaxPeriodNumber=Max. nifer yr anfonebau a gynhyrchir +NbOfGenerationDone=Nifer yr anfonebau a gynhyrchwyd eisoes +NbOfGenerationOfRecordDone=Nifer y recordiadau a gynhyrchwyd eisoes +NbOfGenerationDoneShort=Nifer y genhedlaeth a wnaed +MaxGenerationReached=Cyrhaeddwyd y nifer uchaf o genedlaethau +InvoiceAutoValidate=Dilysu anfonebau yn awtomatig +GeneratedFromRecurringInvoice=Cynhyrchwyd o dempled anfoneb gylchol %s +DateIsNotEnough=Dyddiad heb ei gyrraedd eto +InvoiceGeneratedFromTemplate=Anfoneb %s wedi'i chynhyrchu o anfoneb templed cylchol %s +GeneratedFromTemplate=Wedi'i gynhyrchu o anfoneb dempled %s +WarningInvoiceDateInFuture=Rhybudd, mae dyddiad yr anfoneb yn uwch na'r dyddiad cyfredol +WarningInvoiceDateTooFarInFuture=Rhybudd, mae dyddiad yr anfoneb yn rhy bell o'r dyddiad cyfredol +ViewAvailableGlobalDiscounts=Gweld y gostyngiadau sydd ar gael +GroupPaymentsByModOnReports=Grwpio taliadau fesul modd ar adroddiadau +# PaymentConditions +Statut=Statws +PaymentConditionShortRECEP=Yn ddyledus ar Dderbyn +PaymentConditionRECEP=Yn ddyledus ar Dderbyn +PaymentConditionShort30D=30 diwrnod +PaymentCondition30D=30 diwrnod +PaymentConditionShort30DENDMONTH=30 diwrnod o ddiwedd y mis +PaymentCondition30DENDMONTH=O fewn 30 diwrnod yn dilyn diwedd y mis +PaymentConditionShort60D=60 diwrnod +PaymentCondition60D=60 diwrnod +PaymentConditionShort60DENDMONTH=60 diwrnod o ddiwedd y mis +PaymentCondition60DENDMONTH=O fewn 60 diwrnod yn dilyn diwedd y mis +PaymentConditionShortPT_DELIVERY=Cyflwyno +PaymentConditionPT_DELIVERY=Ar ddanfon +PaymentConditionShortPT_ORDER=Gorchymyn +PaymentConditionPT_ORDER=Ar archeb +PaymentConditionShortPT_5050=50-50 +PaymentConditionPT_5050=50%% ymlaen llaw, 50%% wrth ddanfon +PaymentConditionShort10D=10 diwrnod +PaymentCondition10D=10 diwrnod +PaymentConditionShort10DENDMONTH=10 diwrnod o ddiwedd y mis +PaymentCondition10DENDMONTH=O fewn 10 diwrnod yn dilyn diwedd y mis +PaymentConditionShort14D=14 diwrnod +PaymentCondition14D=14 diwrnod +PaymentConditionShort14DENDMONTH=14 diwrnod o ddiwedd y mis +PaymentCondition14DENDMONTH=O fewn 14 diwrnod yn dilyn diwedd y mis +FixAmount=Swm sefydlog - 1 llinell gyda label '%s' +VarAmount=Swm amrywiol (%% tot.) +VarAmountOneLine=Swm amrywiol (%% tot.) - 1 llinell gyda label '%s' +VarAmountAllLines=Swm amrywiol (%% tot.) - pob llinell o'r tarddiad +# PaymentType +PaymentTypeVIR=Trosglwyddiad banc +PaymentTypeShortVIR=Trosglwyddiad banc +PaymentTypePRE=Gorchymyn talu debyd uniongyrchol +PaymentTypeShortPRE=Gorchymyn talu debyd +PaymentTypeLIQ=Arian parod +PaymentTypeShortLIQ=Arian parod +PaymentTypeCB=Cerdyn credyd +PaymentTypeShortCB=Cerdyn credyd +PaymentTypeCHQ=Gwirio +PaymentTypeShortCHQ=Gwirio +PaymentTypeTIP=AWGRYM (Dogfennau yn erbyn Taliad) +PaymentTypeShortTIP=Taliad AWGRYM +PaymentTypeVAD=Taliad ar-lein +PaymentTypeShortVAD=Taliad ar-lein +PaymentTypeTRA=Drafft banc +PaymentTypeShortTRA=Drafft +PaymentTypeFAC=Ffactor +PaymentTypeShortFAC=Ffactor +PaymentTypeDC=Cerdyn Debyd/Credyd +PaymentTypePP=PayPal +BankDetails=Manylion banc +BankCode=Cod banc +DeskCode=Cod cangen +BankAccountNumber=Rhif cyfrif +BankAccountNumberKey=Siecswm +Residence=Cyfeiriad +IBANNumber=Rhif cyfrif IBAN +IBAN=IBAN +CustomerIBAN=IBAN o gwsmer +SupplierIBAN=IBAN y gwerthwr +BIC=BIC/SWIFT +BICNumber=Cod BIC/SWIFT +ExtraInfos=Gwybodaeth ychwanegol +RegulatedOn=Wedi'i reoleiddio ar +ChequeNumber=Gwiriwch N° +ChequeOrTransferNumber=Gwirio/Trosglwyddo Rhif ° +ChequeBordereau=Gwirio amserlen +ChequeMaker=Gwirio/Trosglwyddo anfonwr +ChequeBank=Banc o Siec +CheckBank=Gwirio +NetToBePaid=Net i'w dalu +PhoneNumber=Ffon +FullPhoneNumber=Ffon +TeleFax=Ffacs +PrettyLittleSentence=Derbyn swm y taliadau sy’n ddyledus drwy sieciau a roddwyd yn fy enw i fel Aelod o gymdeithas gyfrifo a gymeradwyir gan y Weinyddiaeth Gyllid. +IntracommunityVATNumber=ID TAW o fewn y Gymuned +PaymentByChequeOrderedTo=Mae taliadau siec (gan gynnwys treth) yn daladwy i %s, anfonwch at +PaymentByChequeOrderedToShort=Mae taliadau siec (gan gynnwys treth) yn daladwy i +SendTo=anfon i +PaymentByTransferOnThisBankAccount=Taliad trwy drosglwyddiad i'r cyfrif banc canlynol +VATIsNotUsedForInvoice=* Amherthnasol TAW celf-293B o CGI +VATIsNotUsedForInvoiceAsso=* TAW nad yw'n gymwys-261-7 o CGI +LawApplicationPart1=Trwy gymhwyso'r gyfraith 80.335 o 12/05/80 +LawApplicationPart2=y nwyddau yn parhau yn eiddo i +LawApplicationPart3=y gwerthwr hyd nes y taliad llawn o +LawApplicationPart4=eu pris. +LimitedLiabilityCompanyCapital=SARL gyda Capital of +UseLine=Ymgeisiwch +UseDiscount=Defnyddiwch ddisgownt +UseCredit=Defnyddiwch gredyd +UseCreditNoteInInvoicePayment=Gostyngwch y swm i'w dalu gyda'r credyd hwn +MenuChequeDeposits=Blaendaliadau Siec +MenuCheques=Sieciau +MenuChequesReceipts=Gwirio derbynebau +NewChequeDeposit=Blaendal newydd +ChequesReceipts=Gwirio derbynebau +ChequesArea=Gwirio ardal adneuon +ChequeDeposits=Gwirio blaendaliadau +Cheques=Sieciau +DepositId=Id blaendal +NbCheque=Nifer y sieciau +CreditNoteConvertedIntoDiscount=Mae'r %s hwn wedi'i drawsnewid yn %s +UsBillingContactAsIncoiveRecipientIfExist=Defnyddiwch y cyswllt/cyfeiriad gyda'r math 'cyswllt bilio' yn lle cyfeiriad trydydd parti fel derbynnydd ar gyfer anfonebau +ShowUnpaidAll=Dangos pob anfoneb heb ei thalu +ShowUnpaidLateOnly=Dangos anfonebau hwyr heb eu talu yn unig +PaymentInvoiceRef=Anfoneb talu %s +ValidateInvoice=Dilysu anfoneb +ValidateInvoices=Dilysu anfonebau +Cash=Arian parod +Reported=Oedi +DisabledBecausePayments=Ddim yn bosibl gan fod rhai taliadau +CantRemovePaymentWithOneInvoicePaid=Ni fu modd dileu'r taliad gan fod o leiaf un anfoneb wedi'i thalu wedi'i dosbarthu +CantRemovePaymentVATPaid=Nid oes modd dileu taliad gan fod datganiad TAW wedi'i ddosbarthu wedi'i dalu +CantRemovePaymentSalaryPaid=Methu â dileu'r taliad oherwydd bod y cyflog wedi'i dalu +ExpectedToPay=Taliad disgwyliedig +CantRemoveConciliatedPayment=Ni fu modd dileu taliad cysonedig +PayedByThisPayment=Wedi'i dalu gan y taliad hwn +ClosePaidInvoicesAutomatically=Dosbarthu'r holl anfonebau safonol, taliad i lawr neu amnewid yn awtomatig fel rhai "Talwyd" pan wneir y taliad yn gyfan gwbl. +ClosePaidCreditNotesAutomatically=Dosbarthwch yr holl nodiadau credyd yn awtomatig fel rhai "Talwyd" pan wneir ad-daliad yn gyfan gwbl. +ClosePaidContributionsAutomatically=Dosbarthu'r holl gyfraniadau cymdeithasol neu gyllidol yn awtomatig fel "Talwyd" pan wneir y taliad yn gyfan gwbl. +ClosePaidVATAutomatically=Dosbarthu datganiad TAW yn awtomatig fel "Talwyd" pan wneir y taliad yn gyfan gwbl. +ClosePaidSalaryAutomatically=Dosbarthu cyflog yn awtomatig fel "Talwyd" pan wneir taliad yn gyfan gwbl. +AllCompletelyPayedInvoiceWillBeClosed=Bydd yr holl anfonebau heb weddill i'w talu yn cael eu cau'n awtomatig gyda statws "Talwyd". +ToMakePayment=Talu +ToMakePaymentBack=Talu'n ôl +ListOfYourUnpaidInvoices=Rhestr o anfonebau heb eu talu +NoteListOfYourUnpaidInvoices=Sylwer: Mae'r rhestr hon yn cynnwys anfonebau ar gyfer trydydd partïon yr ydych yn gysylltiedig â nhw fel cynrychiolydd gwerthu yn unig. +RevenueStamp=Stamp treth +YouMustCreateInvoiceFromThird=Dim ond wrth greu anfoneb o'r tab "Cwsmer" trydydd parti y mae'r opsiwn hwn ar gael +YouMustCreateInvoiceFromSupplierThird=Dim ond wrth greu anfoneb o'r tab "Vendor" trydydd parti y mae'r opsiwn hwn ar gael +YouMustCreateStandardInvoiceFirstDesc=Mae'n rhaid i chi greu anfoneb safonol yn gyntaf a'i throsi i "templed" i greu anfoneb templed newydd +PDFCrabeDescription=Anfoneb PDF Templed Crabe. Templed anfoneb cyflawn (hen weithrediad templed Sbwng) +PDFSpongeDescription=Anfoneb PDF templed Sbwng. Templed anfoneb cyflawn +PDFCrevetteDescription=Anfoneb PDF Templed Crevette. Templed anfoneb cyflawn ar gyfer anfonebau sefyllfa +TerreNumRefModelDesc1=Rhif dychwelyd yn y fformat %syymm-nnnn ar gyfer anfonebau safonol ac %syymm-nnnn ar gyfer nodiadau credyd lle yy yw'r flwyddyn, mm yw'r mis ac mae nnnn yn rhif auto-cynnydd dilyniannol heb unrhyw doriad a dim dychwelyd i 0 +MarsNumRefModelDesc1=Rhif dychwelyd yn y fformat %syymm-nnnn ar gyfer anfonebau safonol, %syymm-nnnn ar gyfer anfonebau newydd, %syymm-nnnn ar gyfer anfonebau taliad i lawr ac a0ecb2ec87fz0yymnnnnym-nincial ar gyfer anfonebau mis awtomataidd, %syymm-nnnymnnynnynnrhefyd ar gyfer anfonebau taliad i lawr ac a0ecb2ec87fnnnynnynnyn credyd ar gyfer nodiadau blwyddyn auto heb unrhyw egwyl a dim dychwelyd i 0 +TerreNumRefModelError=Mae bil sy'n dechrau gyda $syymm eisoes yn bodoli ac nid yw'n gydnaws â'r model dilyniant hwn. Tynnwch ef neu ei ailenwi i actifadu'r modiwl hwn. +CactusNumRefModelDesc1=Rhif dychwelyd yn y fformat %syymm-nnnn ar gyfer anfonebau safonol, %syymm-nnnn ar gyfer nodiadau credyd ac %syymm-nnnn ar gyfer anfonebau taliad i lawr lle yy yw'r flwyddyn, mmn yw'r mis a'r rhif awtomataidd yw dychwelyd rhif a dilyniant di-dor. 0 +EarlyClosingReason=Rheswm cau cynnar +EarlyClosingComment=Nodyn cau cynnar +##### Types de contacts ##### +TypeContact_facture_internal_SALESREPFOLL=Cynrychiolydd yn dilyn anfoneb cwsmer +TypeContact_facture_external_BILLING=Cyswllt anfoneb cwsmer +TypeContact_facture_external_SHIPPING=Cyswllt cludo cwsmeriaid +TypeContact_facture_external_SERVICE=Cyswllt gwasanaeth cwsmeriaid +TypeContact_invoice_supplier_internal_SALESREPFOLL=Anfoneb gwerthwr dilynol cynrychiolydd +TypeContact_invoice_supplier_external_BILLING=Cyswllt anfoneb y gwerthwr +TypeContact_invoice_supplier_external_SHIPPING=Cyswllt cludo gwerthwr +TypeContact_invoice_supplier_external_SERVICE=Cyswllt gwasanaeth gwerthwr +# Situation invoices +InvoiceFirstSituationAsk=Anfoneb sefyllfa gyntaf +InvoiceFirstSituationDesc=Mae anfonebau sefyllfa yn gysylltiedig â sefyllfaoedd sy'n ymwneud â dilyniant, er enghraifft dilyniant adeiladwaith. Mae pob sefyllfa ynghlwm wrth anfoneb. +InvoiceSituation=Anfoneb sefyllfa +PDFInvoiceSituation=Anfoneb sefyllfa +InvoiceSituationAsk=Anfoneb yn dilyn y sefyllfa +InvoiceSituationDesc=Creu sefyllfa newydd yn dilyn un sydd eisoes yn bodoli +SituationAmount=Swm anfoneb sefyllfa (net) +SituationDeduction=Tynnu sefyllfa +ModifyAllLines=Addasu pob llinell +CreateNextSituationInvoice=Creu sefyllfa nesaf +ErrorFindNextSituationInvoice=Gwall methu dod o hyd i'r cylch sefyllfa nesaf cyf +ErrorOutingSituationInvoiceOnUpdate=Methu â mynd allan yr anfoneb sefyllfa hon. +ErrorOutingSituationInvoiceCreditNote=Methu â mynd allan nodyn credyd cysylltiedig. +NotLastInCycle=Nid yr anfoneb hon yw'r diweddaraf yn y cylch ac ni ddylid ei haddasu. +DisabledBecauseNotLastInCycle=Mae'r sefyllfa nesaf eisoes yn bodoli. +DisabledBecauseFinal=Mae'r sefyllfa hon yn derfynol. +situationInvoiceShortcode_AS=AS +situationInvoiceShortcode_S=S +CantBeLessThanMinPercent=Ni all y cynnydd fod yn llai na'i werth yn y sefyllfa flaenorol. +NoSituations=Dim sefyllfaoedd agored +InvoiceSituationLast=Anfoneb derfynol a chyffredinol +PDFCrevetteSituationNumber=Sefyllfa N°%s +PDFCrevetteSituationInvoiceLineDecompte=Anfoneb sefyllfa - COUNT +PDFCrevetteSituationInvoiceTitle=Anfoneb sefyllfa +PDFCrevetteSituationInvoiceLine=Sefyllfa N°%s: Cyf. N°%s ar %s +TotalSituationInvoice=Cyfanswm y sefyllfa +invoiceLineProgressError=Ni all cynnydd llinell anfoneb fod yn fwy neu'n hafal i'r llinell anfoneb nesaf +updatePriceNextInvoiceErrorUpdateline=Gwall: pris diweddaru ar linell anfoneb: %s +ToCreateARecurringInvoice=I greu anfoneb gylchol ar gyfer y contract hwn, crëwch yr anfoneb ddrafft hon yn gyntaf, yna trowch hi'n dempled anfoneb a diffiniwch amlder cynhyrchu anfonebau yn y dyfodol. +ToCreateARecurringInvoiceGene=I gynhyrchu anfonebau yn y dyfodol yn rheolaidd ac â llaw, ewch ar y ddewislen %s - %s - %s . +ToCreateARecurringInvoiceGeneAuto=Os oes angen i anfonebau o'r fath gael eu cynhyrchu'n awtomatig, gofynnwch i'ch gweinyddwr alluogi a gosod modiwl %s . Sylwch y gellir defnyddio'r ddau ddull (â llaw ac awtomatig) ynghyd â dim risg o ddyblygu. +DeleteRepeatableInvoice=Dileu anfoneb templed +ConfirmDeleteRepeatableInvoice=A ydych yn siŵr eich bod am ddileu'r anfoneb templed? +CreateOneBillByThird=Creu un anfoneb fesul trydydd parti (fel arall, un anfoneb fesul gwrthrych a ddewiswyd) +BillCreated=%s anfoneb(au) wedi'u cynhyrchu +BillXCreated=Anfoneb %s wedi'i chynhyrchu +StatusOfGeneratedDocuments=Statws cynhyrchu dogfennau +DoNotGenerateDoc=Peidiwch â chynhyrchu ffeil dogfen +AutogenerateDoc=Cynhyrchu ffeil ddogfen yn awtomatig +AutoFillDateFrom=Gosod dyddiad cychwyn ar gyfer llinell gwasanaeth gyda dyddiad anfoneb +AutoFillDateFromShort=Gosod dyddiad cychwyn +AutoFillDateTo=Gosod dyddiad gorffen ar gyfer llinell gwasanaeth gyda dyddiad anfoneb nesaf +AutoFillDateToShort=Gosod dyddiad gorffen +MaxNumberOfGenerationReached=Uchafswm nifer y gen. cyrraedd +BILL_DELETEInDolibarr=Anfoneb wedi'i dileu +BILL_SUPPLIER_DELETEInDolibarr=Anfoneb y cyflenwr wedi'i dileu +UnitPriceXQtyLessDiscount=Pris uned x Qty - Gostyngiad +CustomersInvoicesArea=Ardal bilio cwsmeriaid +SupplierInvoicesArea=Ardal bilio cyflenwyr +SituationTotalRayToRest=Gweddill i dalu heb dreth +PDFSituationTitle=Sefyllfa n° %d +SituationTotalProgress=Cyfanswm cynnydd %d %% +SearchUnpaidInvoicesWithDueDate=Chwiliwch am anfonebau heb eu talu gyda dyddiad dyledus = %s +NoPaymentAvailable=Dim taliad ar gael am %s +PaymentRegisteredAndInvoiceSetToPaid=Taliad wedi'i gofrestru ac anfoneb %s wedi'i gosod i'w thalu +SendEmailsRemindersOnInvoiceDueDate=Anfonwch nodyn atgoffa trwy e-bost am anfonebau heb eu talu +MakePaymentAndClassifyPayed=Cofnodi taliad +BulkPaymentNotPossibleForInvoice=Nid yw taliad swmp yn bosibl ar gyfer anfoneb %s (math neu statws gwael) diff --git a/htdocs/langs/cy_GB/blockedlog.lang b/htdocs/langs/cy_GB/blockedlog.lang new file mode 100644 index 00000000000..9b5dbef0dc0 --- /dev/null +++ b/htdocs/langs/cy_GB/blockedlog.lang @@ -0,0 +1,57 @@ +BlockedLog=Logiau na ellir eu newid +Field=Maes +BlockedLogDesc=Mae'r modiwl hwn yn olrhain rhai digwyddiadau i mewn i log na ellir ei newid (na allwch ei addasu ar ôl ei recordio) yn gadwyn bloc, mewn amser real. Mae'r modiwl hwn yn darparu cysondeb â gofynion cyfreithiau rhai gwledydd (fel Ffrainc gyda'r gyfraith Cyllid 2016 - Norme NF525). +Fingerprints=Digwyddiadau wedi'u harchifo ac olion bysedd +FingerprintsDesc=Dyma'r offeryn i bori neu echdynnu'r logiau na ellir eu newid. Mae logiau na ellir eu newid yn cael eu cynhyrchu a'u harchifo'n lleol i mewn i dabl pwrpasol, mewn amser real pan fyddwch chi'n recordio digwyddiad busnes. Gallwch ddefnyddio'r offeryn hwn i allforio'r archif hwn a'i gadw i mewn i gynhaliaeth allanol (mae rhai gwledydd, fel Ffrainc, yn gofyn ichi ei wneud bob blwyddyn). Sylwch, nid oes unrhyw nodwedd i gael gwared ar y log hwn a bydd pob newid y ceisir ei wneud yn uniongyrchol i'r log hwn (gan haciwr er enghraifft) yn cael ei adrodd gydag olion bysedd nad yw'n ddilys. Os oes gwir angen i chi gael gwared ar y tabl hwn oherwydd eich bod wedi defnyddio'ch cais at ddiben demo / prawf ac eisiau glanhau'ch data i gychwyn eich cynhyrchiad, gallwch ofyn i'ch ailwerthwr neu integreiddiwr ailosod eich cronfa ddata (bydd eich holl ddata yn cael ei ddileu). +CompanyInitialKey=Allwedd gychwynnol y cwmni (hash bloc genesis) +BrowseBlockedLog=Logiau na ellir eu newid +ShowAllFingerPrintsMightBeTooLong=Dangos yr holl logiau sydd wedi'u harchifo (gall fod yn hir) +ShowAllFingerPrintsErrorsMightBeTooLong=Dangos pob log archif nad yw'n ddilys (gall fod yn hir) +DownloadBlockChain=Lawrlwythwch olion bysedd +KoCheckFingerprintValidity=Nid yw cofnod log wedi'i archifo yn ddilys. Mae'n golygu bod rhywun (haciwr?) wedi addasu rhywfaint o ddata'r cofnod hwn ar ôl iddo gael ei recordio, neu wedi dileu'r cofnod archif blaenorol (gwiriwch fod y llinell â # blaenorol yn bodoli) neu wedi addasu siec swm y cofnod blaenorol. +OkCheckFingerprintValidity=Mae cofnod log wedi'i archifo yn ddilys. Ni addaswyd y data ar y llinell hon ac mae'r cofnod yn dilyn yr un blaenorol. +OkCheckFingerprintValidityButChainIsKo=Mae log wedi'i archifo yn ymddangos yn ddilys o'i gymharu â'r un blaenorol ond roedd y gadwyn wedi'i llygru o'r blaen. +AddedByAuthority=Wedi'i storio mewn awdurdod anghysbell +NotAddedByAuthorityYet=Heb ei storio eto mewn awdurdod o bell +ShowDetails=Dangos manylion sydd wedi'u storio +logPAYMENT_VARIOUS_CREATE=Taliad (heb ei aseinio i anfoneb) wedi'i greu +logPAYMENT_VARIOUS_MODIFY=Taliad (heb ei aseinio i anfoneb) wedi'i addasu +logPAYMENT_VARIOUS_DELETE=Taliad (heb ei neilltuo i anfoneb) dileu rhesymegol +logPAYMENT_ADD_TO_BANK=Taliad wedi'i ychwanegu at y banc +logPAYMENT_CUSTOMER_CREATE=Taliad cwsmer wedi'i greu +logPAYMENT_CUSTOMER_DELETE=Dileu rhesymegol taliad cwsmer +logDONATION_PAYMENT_CREATE=Taliad rhodd wedi'i greu +logDONATION_PAYMENT_DELETE=Dileu taliad rhodd yn rhesymegol +logBILL_PAYED=Talwyd anfoneb cwsmer +logBILL_UNPAYED=Anfoneb cwsmer wedi'i gosod heb ei thalu +logBILL_VALIDATE=Anfoneb cwsmer wedi'i dilysu +logBILL_SENTBYMAIL=Anfoneb cwsmer drwy'r post +logBILL_DELETE=Anfoneb cwsmer wedi'i dileu yn rhesymegol +logMODULE_RESET=Analluogwyd Modiwl BlockedLog +logMODULE_SET=Cafodd Modiwl BlockedLog ei alluogi +logDON_VALIDATE=Rhodd wedi'i ddilysu +logDON_MODIFY=Rhodd wedi'i addasu +logDON_DELETE=Rhoi dileu rhesymegol +logMEMBER_SUBSCRIPTION_CREATE=Tanysgrifiad aelod wedi'i greu +logMEMBER_SUBSCRIPTION_MODIFY=Tanysgrifiad aelod wedi'i addasu +logMEMBER_SUBSCRIPTION_DELETE=Dileu tanysgrifiad aelod yn rhesymegol +logCASHCONTROL_VALIDATE=Recordiad cau desg arian parod +BlockedLogBillDownload=Lawrlwytho anfoneb cwsmer +BlockedLogBillPreview=Rhagolwg anfoneb cwsmer +BlockedlogInfoDialog=Manylion Log +ListOfTrackedEvents=Rhestr o ddigwyddiadau wedi'u tracio +Fingerprint=Olion bysedd +DownloadLogCSV=Allforio logiau wedi'u harchifo (CSV) +logDOC_PREVIEW=Rhagolwg o ddogfen wedi'i dilysu er mwyn ei hargraffu neu ei lawrlwytho +logDOC_DOWNLOAD=Lawrlwytho dogfen ddilysedig er mwyn ei hargraffu neu ei hanfon +DataOfArchivedEvent=Data llawn o ddigwyddiad wedi'i archifo +ImpossibleToReloadObject=Gwrthrych gwreiddiol (math %s, id %s) heb ei gysylltu (gweler y golofn 'Data llawn' i gael data sydd wedi'i gadw na ellir ei newid) +BlockedLogAreRequiredByYourCountryLegislation=Mae'n bosibl y bydd angen modiwl Logiau na ellir eu newid yn ôl deddfwriaeth eich gwlad. Gallai analluogi’r modiwl hwn wneud unrhyw drafodion yn y dyfodol yn annilys o ran y gyfraith a’r defnydd o feddalwedd gyfreithiol gan na allant gael eu dilysu gan archwiliad treth. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Gweithredwyd modiwl Logiau Unalterable oherwydd deddfwriaeth eich gwlad. Gallai analluogi’r modiwl hwn wneud unrhyw drafodion yn y dyfodol yn annilys o ran y gyfraith a’r defnydd o feddalwedd gyfreithiol gan na ellir eu dilysu gan archwiliad treth. +BlockedLogDisableNotAllowedForCountry=Rhestr o wledydd lle mae defnydd o'r modiwl hwn yn orfodol (dim ond i atal i analluogi'r modiwl trwy gamgymeriad, os yw eich gwlad yn y rhestr hon, nid yw analluogi modiwl yn bosibl heb olygu'r rhestr hon yn gyntaf. Sylwch hefyd y bydd galluogi / analluogi'r modiwl hwn yn cadwch olwg ar y log na ellir ei newid). +OnlyNonValid=Di-ddilys +TooManyRecordToScanRestrictFilters=Gormod o gofnodion i'w sganio/dadansoddi. Os gwelwch yn dda cyfyngu rhestr gyda hidlwyr mwy cyfyngol. +RestrictYearToExport=Cyfyngu mis / blwyddyn i allforio +BlockedLogEnabled=Mae system i olrhain digwyddiadau i mewn i logiau na ellir eu newid wedi'i galluogi +BlockedLogDisabled=Mae'r system i olrhain digwyddiadau i mewn i logiau na ellir eu newid wedi'i hanalluogi ar ôl i rywfaint o recordio gael ei wneud. Rydym yn arbed Olion Bysedd arbennig i olrhain y gadwyn fel torri +BlockedLogDisabledBis=Mae'r system i olrhain digwyddiadau i mewn i logiau na ellir eu newid wedi'i hanalluogi. Mae hyn yn bosibl oherwydd ni wnaed unrhyw gofnod eto. diff --git a/htdocs/langs/cy_GB/bookmarks.lang b/htdocs/langs/cy_GB/bookmarks.lang new file mode 100644 index 00000000000..eb2bae46bde --- /dev/null +++ b/htdocs/langs/cy_GB/bookmarks.lang @@ -0,0 +1,22 @@ +# Dolibarr language file - Source file is en_US - marque pages +AddThisPageToBookmarks=Ychwanegu tudalen gyfredol at nodau tudalen +Bookmark=Llyfrnod +Bookmarks=Llyfrnodau +ListOfBookmarks=Rhestr o nodau tudalen +EditBookmarks=Rhestru/golygu nodau tudalen +NewBookmark=Nod tudalen newydd +ShowBookmark=Dangos nod tudalen +OpenANewWindow=Agor tab newydd +ReplaceWindow=Amnewid y tab cyfredol +BookmarkTargetNewWindowShort=Tab newydd +BookmarkTargetReplaceWindowShort=Tab cyfredol +BookmarkTitle=Enw nod tudalen +UrlOrLink=URL +BehaviourOnClick=Ymddygiad pan ddewisir URL nod tudalen +CreateBookmark=Creu nod tudalen +SetHereATitleForLink=Gosodwch enw ar gyfer y nod tudalen +UseAnExternalHttpLinkOrRelativeDolibarrLink=Defnyddiwch ddolen allanol/absoliwt (https://externalurl.com) neu ddolen fewnol/perthynol (/mypage.php). Gallwch hefyd ddefnyddio ffôn fel ffôn: 0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Dewiswch a ddylai'r dudalen gysylltiedig agor yn y tab cyfredol neu dab newydd +BookmarksManagement=Rheoli nodau tudalen +BookmarksMenuShortCut=Ctrl + shifft + m +NoBookmarks=Dim nodau tudalen wedi'u diffinio diff --git a/htdocs/langs/cy_GB/boxes.lang b/htdocs/langs/cy_GB/boxes.lang new file mode 100644 index 00000000000..59cab3f09fb --- /dev/null +++ b/htdocs/langs/cy_GB/boxes.lang @@ -0,0 +1,120 @@ +# Dolibarr language file - Source file is en_US - boxes +BoxDolibarrStateBoard=Ystadegau ar brif wrthrychau busnes yn y gronfa ddata +BoxLoginInformation=Gwybodaeth Mewngofnodi +BoxLastRssInfos=Gwybodaeth RSS +BoxLastProducts=Cynhyrchion/Gwasanaethau %s diweddaraf +BoxProductsAlertStock=Rhybuddion stoc ar gyfer cynhyrchion +BoxLastProductsInContract=Cynhyrchion/gwasanaethau contractio diweddaraf %s +BoxLastSupplierBills=Anfonebau diweddaraf y Gwerthwr +BoxLastCustomerBills=Anfonebau Cwsmer diweddaraf +BoxOldestUnpaidCustomerBills=Anfonebau hynaf cwsmeriaid heb eu talu +BoxOldestUnpaidSupplierBills=Anfonebau hynaf y gwerthwr heb eu talu +BoxLastProposals=Cynigion masnachol diweddaraf +BoxLastProspects=Y rhagolygon diwygiedig diweddaraf +BoxLastCustomers=Cwsmeriaid wedi'u haddasu diweddaraf +BoxLastSuppliers=Y cyflenwyr wedi'u haddasu diweddaraf +BoxLastCustomerOrders=Gorchmynion gwerthu diweddaraf +BoxLastActions=Camau gweithredu diweddaraf +BoxLastContracts=Contractau diweddaraf +BoxLastContacts=Cysylltiadau/cyfeiriadau diweddaraf +BoxLastMembers=Aelodau diweddaraf +BoxLastModifiedMembers=Yr aelodau diweddaraf wedi'u haddasu +BoxLastMembersSubscriptions=Tanysgrifiadau aelodau diweddaraf +BoxFicheInter=Ymyriadau diweddaraf +BoxCurrentAccounts=Balans cyfrifon agored +BoxTitleMemberNextBirthdays=Penblwyddi y mis hwn (aelodau) +BoxTitleMembersByType=Aelodau yn ôl math a statws +BoxTitleMembersSubscriptionsByYear=Tanysgrifiadau Aelodau fesul blwyddyn +BoxTitleLastRssInfos=Newyddion diweddaraf %s o %s +BoxTitleLastProducts=Cynhyrchion/Gwasanaethau: %s diwethaf wedi'i addasu +BoxTitleProductsAlertStock=Cynhyrchion: rhybudd stoc +BoxTitleLastSuppliers=Cyflenwyr cofnodedig %s diweddaraf +BoxTitleLastModifiedSuppliers=Gwerthwyr: %s diwethaf wedi'i addasu +BoxTitleLastModifiedCustomers=Cwsmeriaid: %s diwethaf wedi'i addasu +BoxTitleLastCustomersOrProspects=Cwsmeriaid neu ragolygon %s diweddaraf +BoxTitleLastCustomerBills=Anfonebau Cwsmer diweddaraf %s wedi'u haddasu +BoxTitleLastSupplierBills=Anfonebau Gwerthwr diweddaraf %s wedi'u haddasu +BoxTitleLastModifiedProspects=Rhagolygon: %s diwethaf wedi'u haddasu +BoxTitleLastModifiedMembers=%s aelodau diweddaraf +BoxTitleLastFicheInter=Ymyriadau diweddaraf wedi'u haddasu %s +BoxTitleOldestUnpaidCustomerBills=Anfonebau Cwsmer: %s hynaf heb eu talu +BoxTitleOldestUnpaidSupplierBills=Anfonebau Gwerthwr: %s hynaf heb eu talu +BoxTitleCurrentAccounts=Cyfrifon Agored: balansau +BoxTitleSupplierOrdersAwaitingReception=Archebion cyflenwyr yn aros am dderbyniad +BoxTitleLastModifiedContacts=Cysylltiadau/Cyfeiriadau: %s diwethaf wedi'i addasu +BoxMyLastBookmarks=Llyfrnodau: %s diweddaraf +BoxOldestExpiredServices=Gwasanaethau hynaf gweithredol sydd wedi dod i ben +BoxLastExpiredServices=Y cysylltiadau hynaf %s diweddaraf â gwasanaethau gweithredol sydd wedi dod i ben +BoxTitleLastActionsToDo=Camau gweithredu %s diweddaraf i'w gwneud +BoxTitleLastContracts=Contractau %s diweddaraf a gafodd eu haddasu +BoxTitleLastModifiedDonations=Y rhoddion diweddaraf %s a addaswyd +BoxTitleLastModifiedExpenses=Adroddiadau treuliau diweddaraf %s a addaswyd +BoxTitleLatestModifiedBoms=%s BOMs diweddaraf a addaswyd +BoxTitleLatestModifiedMos=Gorchmynion Gweithgynhyrchu %s diweddaraf a gafodd eu haddasu +BoxTitleLastOutstandingBillReached=Rhagorwyd ar y cwsmeriaid ag uchafswm sy'n weddill +BoxGlobalActivity=Gweithgarwch byd-eang (anfonebau, cynigion, archebion) +BoxGoodCustomers=Cwsmeriaid da +BoxTitleGoodCustomers=%s Cwsmeriaid da +BoxScheduledJobs=Swyddi wedi'u hamserlennu +BoxTitleFunnelOfProspection=Twmffat arweiniol +FailedToRefreshDataInfoNotUpToDate=Wedi methu ag adnewyddu fflwcs RSS. Dyddiad adnewyddu llwyddiannus diweddaraf: %s +LastRefreshDate=Dyddiad adnewyddu diweddaraf +NoRecordedBookmarks=Dim nodau tudalen wedi'u diffinio. +ClickToAdd=Cliciwch yma i ychwanegu. +NoRecordedCustomers=Dim cwsmeriaid wedi'u recordio +NoRecordedContacts=Dim cysylltiadau wedi'u recordio +NoActionsToDo=Dim gweithredoedd i'w gwneud +NoRecordedOrders=Dim archebion gwerthu wedi'u cofnodi +NoRecordedProposals=Dim cynigion wedi'u cofnodi +NoRecordedInvoices=Dim anfonebau cwsmeriaid wedi'u cofnodi +NoUnpaidCustomerBills=Dim anfonebau cwsmeriaid heb eu talu +NoUnpaidSupplierBills=Dim anfonebau gwerthwr heb eu talu +NoModifiedSupplierBills=Dim anfonebau gwerthwr wedi'u cofnodi +NoRecordedProducts=Dim cynhyrchion/gwasanaethau wedi'u recordio +NoRecordedProspects=Dim rhagolygon wedi'u cofnodi +NoContractedProducts=Dim cynnyrch/gwasanaeth wedi'i gontractio +NoRecordedContracts=Dim contractau wedi'u cofnodi +NoRecordedInterventions=Dim ymyriadau wedi'u cofnodi +BoxLatestSupplierOrders=Gorchmynion prynu diweddaraf +BoxLatestSupplierOrdersAwaitingReception=Archebion Prynu Diweddaraf (gyda derbyniad yn yr arfaeth) +NoSupplierOrder=Dim archeb brynu wedi'i chofnodi +BoxCustomersInvoicesPerMonth=Anfonebau Cwsmer y mis +BoxSuppliersInvoicesPerMonth=Anfonebau Gwerthwr y mis +BoxCustomersOrdersPerMonth=Gorchmynion Gwerthu y mis +BoxSuppliersOrdersPerMonth=Gorchmynion Gwerthwr y mis +BoxProposalsPerMonth=Cynigion y mis +NoTooLowStockProducts=Nid oes unrhyw gynhyrchion o dan y terfyn stoc isel +BoxProductDistribution=Dosbarthu Cynhyrchion/Gwasanaethau +ForObject=Ar %s +BoxTitleLastModifiedSupplierBills=Anfonebau Gwerthwr: %s diwethaf wedi'u haddasu +BoxTitleLatestModifiedSupplierOrders=Gorchmynion Gwerthwr: %s diwethaf wedi'i addasu +BoxTitleLastModifiedCustomerBills=Anfonebau Cwsmer: %s diwethaf wedi'u haddasu +BoxTitleLastModifiedCustomerOrders=Gorchmynion Gwerthu: %s diwethaf wedi'u haddasu +BoxTitleLastModifiedPropals=Cynigion wedi'u haddasu diweddaraf %s +BoxTitleLatestModifiedJobPositions=Swyddi swyddi wedi'u haddasu %s diweddaraf +BoxTitleLatestModifiedCandidatures=Ceisiadau swyddi wedi'u haddasu diweddaraf %s +ForCustomersInvoices=Anfonebau cwsmeriaid +ForCustomersOrders=Gorchmynion cwsmeriaid +ForProposals=Cynigion +LastXMonthRolling=Y diweddaraf %s mis treigl +ChooseBoxToAdd=Ychwanegu teclyn i'ch dangosfwrdd +BoxAdded=Ychwanegwyd teclyn yn eich dangosfwrdd +BoxTitleUserBirthdaysOfMonth=Penblwyddi'r mis hwn (defnyddwyr) +BoxLastManualEntries=Cofnod diweddaraf mewn cyfrifyddiaeth wedi'i gofnodi â llaw neu heb ddogfen ffynhonnell +BoxTitleLastManualEntries=%s cofnod diweddaraf wedi'i gofnodi â llaw neu heb ddogfen ffynhonnell +NoRecordedManualEntries=Dim cofnodion llaw mewn cyfrifeg +BoxSuspenseAccount=Cyfrif gweithrediad cyfrif gyda chyfrif dros dro +BoxTitleSuspenseAccount=Nifer y llinellau heb eu dyrannu +NumberOfLinesInSuspenseAccount=Nifer y llinell yn y cyfrif crog +SuspenseAccountNotDefined=Nid yw cyfrif atal wedi'i ddiffinio +BoxLastCustomerShipments=Cludo cwsmeriaid diwethaf +BoxTitleLastCustomerShipments=Cludo cwsmeriaid %s diweddaraf +NoRecordedShipments=Dim llwyth cwsmer wedi'i gofnodi +BoxCustomersOutstandingBillReached=Cwsmeriaid gyda therfyn rhagorol wedi'i gyrraedd +# Pages +UsersHome=Defnyddwyr cartref a grwpiau +MembersHome=Aelodaeth Cartref +ThirdpartiesHome=Trydydd partïon cartref +TicketsHome=Tocynnau Cartref +AccountancyHome=Cyfrifyddiaeth Cartref +ValidatedProjects=Prosiectau wedi'u dilysu diff --git a/htdocs/langs/cy_GB/cashdesk.lang b/htdocs/langs/cy_GB/cashdesk.lang new file mode 100644 index 00000000000..aa17b648e38 --- /dev/null +++ b/htdocs/langs/cy_GB/cashdesk.lang @@ -0,0 +1,138 @@ +# Language file - Source file is en_US - cashdesk +CashDeskMenu=Pwynt gwerthu +CashDesk=Pwynt gwerthu +CashDeskBankCash=Cyfrif banc (arian parod) +CashDeskBankCB=Cyfrif banc (cerdyn) +CashDeskBankCheque=Cyfrif banc (siec) +CashDeskWarehouse=Warws +CashdeskShowServices=Gwerthu gwasanaethau +CashDeskProducts=Cynhyrchion +CashDeskStock=Stoc +CashDeskOn=ymlaen +CashDeskThirdParty=Trydydd parti +ShoppingCart=Cert siopa +NewSell=Gwerthu newydd +AddThisArticle=Ychwanegwch yr erthygl hon +RestartSelling=Mynd yn ôl ar werthu +SellFinished=Gwerthiant wedi'i gwblhau +PrintTicket=Argraffu tocyn +SendTicket=Anfon tocyn +NoProductFound=Heb ganfod erthygl +ProductFound=cynnyrch wedi'i ddarganfod +NoArticle=Dim erthygl +Identification=Adnabod +Article=Erthygl +Difference=Gwahaniaeth +TotalTicket=Cyfanswm tocyn +NoVAT=Dim TAW ar gyfer y gwerthiant hwn +Change=Derbynnir gormodedd +BankToPay=Cyfrif am daliad +ShowCompany=Cwmni sioe +ShowStock=Dangos warws +DeleteArticle=Cliciwch i gael gwared ar yr erthygl hon +FilterRefOrLabelOrBC=Chwilio (Cyf/Label) +UserNeedPermissionToEditStockToUsePos=Rydych yn gofyn am leihau stoc wrth greu anfonebau, felly mae angen i ddefnyddiwr sy'n defnyddio POS gael caniatâd i olygu stoc. +DolibarrReceiptPrinter=Argraffydd Derbynneb Dolibarr +PointOfSale=Pwynt Gwerthu +PointOfSaleShort=POS +CloseBill=Cau'r Bil +Floors=Lloriau +Floor=Llawr +AddTable=Ychwanegu tabl +Place=Lle +TakeposConnectorNecesary=Mae angen 'TakePOS Connector' +OrderPrinters=Ychwanegu botwm i anfon yr archeb at rai argraffwyr penodol, heb dâl (er enghraifft i anfon archeb i gegin) +NotAvailableWithBrowserPrinter=Ddim ar gael pan fydd yr argraffydd i'w dderbyn wedi'i osod i'r porwr +SearchProduct=Chwilio cynnyrch +Receipt=Derbynneb +Header=Pennawd +Footer=Troedyn +AmountAtEndOfPeriod=Swm ar ddiwedd y cyfnod (diwrnod, mis neu flwyddyn) +TheoricalAmount=Swm damcaniaethol +RealAmount=Swm go iawn +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period +NbOfInvoices=Nb o anfonebau +Paymentnumpad=Math o Pad i nodi taliad +Numberspad=Pad Rhifau +BillsCoinsPad=Darnau arian ac arian papur Pad +DolistorePosCategory=Modiwlau TakePOS ac atebion POS eraill ar gyfer Dolibarr +TakeposNeedsCategories=Mae angen o leiaf un categori cynnyrch ar TakePOS i weithio +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=Mae angen o leiaf 1 categori cynnyrch ar TakePOS o dan y categori %s i weithio +OrderNotes=Yn gallu ychwanegu rhai nodiadau at bob eitem a archebir +CashDeskBankAccountFor=Cyfrif diofyn i'w ddefnyddio ar gyfer taliadau i mewn +NoPaimementModesDefined=Dim modd talu wedi'i ddiffinio yng nghyfluniad TakePOS +TicketVatGrouped=Grwpio TAW yn ôl cyfradd mewn tocynnau|derbynebau +AutoPrintTickets=Argraffu tocynnau yn awtomatig|derbynebau +PrintCustomerOnReceipts=Argraffu cwsmer ar docynnau|derbynebau +EnableBarOrRestaurantFeatures=Galluogi nodweddion ar gyfer Bar neu Fwyty +ConfirmDeletionOfThisPOSSale=A ydych yn cadarnhau dileu'r gwerthiant presennol hwn? +ConfirmDiscardOfThisPOSSale=Ydych chi am gael gwared ar y gwerthiant cyfredol hwn? +History=Hanes +ValidateAndClose=Dilysu a chau +Terminal=Terfynell +NumberOfTerminals=Nifer y Terfynau +TerminalSelect=Dewiswch derfynell rydych chi am ei defnyddio: +POSTicket=Tocyn POS +POSTerminal=Terfynell POS +POSModule=Modiwl POS +BasicPhoneLayout=Defnyddiwch gynllun sylfaenol ar gyfer ffonau +SetupOfTerminalNotComplete=Nid yw gosod terfynell %s wedi'i gwblhau +DirectPayment=Taliad uniongyrchol +DirectPaymentButton=Ychwanegu botwm "Taliad arian parod uniongyrchol". +InvoiceIsAlreadyValidated=Mae'r anfoneb eisoes wedi'i dilysu +NoLinesToBill=Dim llinellau i fil +CustomReceipt=Derbynneb Custom +ReceiptName=Enw Derbynneb +ProductSupplements=Rheoli atchwanegiadau o gynhyrchion +SupplementCategory=Categori atodiad +ColorTheme=Thema lliw +Colorful=Lliwgar +HeadBar=Bar Pen +SortProductField=Maes ar gyfer didoli cynhyrchion +Browser=Porwr +BrowserMethodDescription=Argraffu derbynneb syml a hawdd. Dim ond ychydig o baramedrau i ffurfweddu'r dderbynneb. Argraffu trwy borwr. +TakeposConnectorMethodDescription=Modiwl allanol gyda nodweddion ychwanegol. Posibilrwydd argraffu o'r cwmwl. +PrintMethod=Dull argraffu +ReceiptPrinterMethodDescription=Dull pwerus gyda llawer o baramedrau. Llawn customizable gyda thempledi. Ni all y gweinydd sy'n cynnal y rhaglen fod yn y Cwmwl (rhaid iddo allu cyrraedd yr argraffwyr yn eich rhwydwaith). +ByTerminal=Erbyn terfynell +TakeposNumpadUsePaymentIcon=Defnyddiwch eicon yn lle testun ar fotymau talu numpad +CashDeskRefNumberingModules=Modiwl rhifo ar gyfer gwerthiannau POS +CashDeskGenericMaskCodes6 =
    {TN} tag yn cael ei ddefnyddio i ychwanegu rhif y derfynell +TakeposGroupSameProduct=Grwpiwch yr un llinellau cynhyrchion +StartAParallelSale=Dechrau arwerthiant cyfochrog newydd +SaleStartedAt=Dechreuwyd gwerthu am %s +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control +CashReport=Adroddiad arian parod +MainPrinterToUse=Prif argraffydd i'w ddefnyddio +OrderPrinterToUse=Archebwch argraffydd i'w ddefnyddio +MainTemplateToUse=Prif dempled i'w ddefnyddio +OrderTemplateToUse=Templed archeb i'w ddefnyddio +BarRestaurant=Bwyty Bar +AutoOrder=Archeb gan y cwsmer ei hun +RestaurantMenu=Bwydlen +CustomerMenu=Dewislen cwsmeriaid +ScanToMenu=Sganiwch y cod QR i weld y ddewislen +ScanToOrder=Sganiwch y cod QR i archebu +Appearance=Ymddangosiad +HideCategoryImages=Cuddio Delweddau Categori +HideProductImages=Cuddio Delweddau Cynnyrch +NumberOfLinesToShow=Nifer y llinellau o ddelweddau i'w dangos +DefineTablePlan=Diffinio cynllun tablau +GiftReceiptButton=Ychwanegu botwm "Derbynneb rhodd". +GiftReceipt=Derbynneb rhodd +ModuleReceiptPrinterMustBeEnabled=Mae'n rhaid bod argraffydd Derbynneb Modiwl wedi'i alluogi yn gyntaf +AllowDelayedPayment=Caniatáu oedi wrth dalu +PrintPaymentMethodOnReceipts=Argraffu dull talu ar docynnau|derbynebau +WeighingScale=Graddfa pwyso +ShowPriceHT = Dangoswch y golofn gyda'r pris heb gynnwys treth (ar y sgrin) +ShowPriceHTOnReceipt = Dangoswch y golofn gyda'r pris heb gynnwys treth (ar y dderbynneb) +CustomerDisplay=Arddangosfa cwsmeriaid +SplitSale=Gwerthu rhanedig +PrintWithoutDetailsButton=Ychwanegu botwm "Argraffu heb fanylion". +PrintWithoutDetailsLabelDefault=Label llinell yn ddiofyn ar argraffu heb fanylion +PrintWithoutDetails=Argraffu heb fanylion +YearNotDefined=Nid yw blwyddyn wedi'i diffinio +TakeposBarcodeRuleToInsertProduct=Rheol cod bar i fewnosod cynnyrch +TakeposBarcodeRuleToInsertProductDesc=Rheol i echdynnu cyfeirnod y cynnyrch + swm o god bar wedi'i sganio.
    Os yn wag (gwerth diofyn), bydd y cais yn defnyddio'r cod bar llawn wedi'i sganio i ddod o hyd i'r cynnyrch.

    Os diffinio, rhaid cystrawen fod yn:
    cyf: DS + qu: DS + QD: DS + eraill: DS
    lle DS yw'r nifer o gymeriadau i'w defnyddio at ddata detholiad o'r cod bar sganio gyda:
    • cyf : cyfeirnod cynnyrch
    • qu : faint i set wrth fewnosod eitem (uned)
    • QD : faint i set wrth fewnosod eitem (degolion)
    • arall: pobl eraill cymeriadau
    diff --git a/htdocs/langs/cy_GB/categories.lang b/htdocs/langs/cy_GB/categories.lang new file mode 100644 index 00000000000..298fa93b3b9 --- /dev/null +++ b/htdocs/langs/cy_GB/categories.lang @@ -0,0 +1,101 @@ +# Dolibarr language file - Source file is en_US - categories +Rubrique=Tag/Categori +Rubriques=Tagiau/Categorïau +RubriquesTransactions=Tagiau/Categorïau trafodion +categories=tagiau/categorïau +NoCategoryYet=Nid oes tag/categori o'r math hwn wedi'i greu +In=Yn +AddIn=Ychwanegu i fewn +modify=addasu +Classify=Dosbarthu +CategoriesArea=Ardal Tagiau/Categorïau +ProductsCategoriesArea=Ardal tagiau Cynnyrch/Gwasanaeth/categorïau +SuppliersCategoriesArea=Ardal tagiau/categorïau gwerthwr +CustomersCategoriesArea=Ardal tagiau cwsmeriaid/categorïau +MembersCategoriesArea=Ardal tagiau/categorïau aelodau +ContactsCategoriesArea=Ardal tagiau/categorïau cyswllt +AccountsCategoriesArea=Ardal tagiau/categorïau cyfrif banc +ProjectsCategoriesArea=Ardal tagiau/categorïau prosiect +UsersCategoriesArea=Ardal tagiau defnyddiwr/categorïau +SubCats=Is-gategorïau +CatList=Rhestr o dagiau/categorïau +CatListAll=Rhestr o dagiau/categorïau (pob math) +NewCategory=Tag/categori newydd +ModifCat=Addasu tag/categori +CatCreated=Tag/categori wedi'i greu +CreateCat=Creu tag/categori +CreateThisCat=Creu'r tag/categori hwn +NoSubCat=Dim is-gategori. +SubCatOf=Is-gategori +FoundCats=Wedi dod o hyd i dagiau/categorïau +ImpossibleAddCat=Amhosib ychwanegu'r tag/categori %s +WasAddedSuccessfully= %s ychwanegwyd yn llwyddiannus. +ObjectAlreadyLinkedToCategory=Mae'r elfen eisoes yn gysylltiedig â'r tag/categori hwn. +ProductIsInCategories=Mae cynnyrch/gwasanaeth yn gysylltiedig â'r tagiau/categorïau canlynol +CompanyIsInCustomersCategories=Mae'r trydydd parti hwn yn gysylltiedig â thagiau/categorïau cwsmeriaid/rhagolygon a ganlyn +CompanyIsInSuppliersCategories=Mae'r trydydd parti hwn yn gysylltiedig â thagiau/categorïau gwerthwyr a ganlyn +MemberIsInCategories=Mae'r aelod hwn yn gysylltiedig â thagiau/categorïau aelodau canlynol +ContactIsInCategories=Mae'r cyswllt hwn yn gysylltiedig â'r tagiau/categorïau cysylltiadau canlynol +ProductHasNoCategory=Nid yw'r cynnyrch/gwasanaeth hwn mewn unrhyw dagiau/categorïau +CompanyHasNoCategory=Nid yw'r trydydd parti hwn mewn unrhyw dagiau/categorïau +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 +NotCategorized=Heb dag/categori +CategoryExistsAtSameLevel=Mae'r categori hwn eisoes yn bodoli gyda'r cyf +ContentsVisibleByAllShort=Cynnwys yn weladwy gan bawb +ContentsNotVisibleByAllShort=Nid yw'r cynnwys yn weladwy gan bawb +DeleteCategory=Dileu tag/categori +ConfirmDeleteCategory=Ydych chi'n siŵr eich bod am ddileu'r tag/categori hwn? +NoCategoriesDefined=Dim tag/categori wedi'i ddiffinio +SuppliersCategoryShort=Tag / categori gwerthwyr +CustomersCategoryShort=Tag cwsmeriaid/categori +ProductsCategoryShort=Tag cynnyrch/categori +MembersCategoryShort=Tag aelodau/categori +SuppliersCategoriesShort=Tagiau/categorïau gwerthwyr +CustomersCategoriesShort=Tagiau/categorïau cwsmeriaid +ProspectsCategoriesShort=Rhagolygon tagiau/categorïau +CustomersProspectsCategoriesShort=Cust./Prosp. tagiau/categorïau +ProductsCategoriesShort=Tagiau cynnyrch/categorïau +MembersCategoriesShort=Tagiau/categorïau aelodau +ContactCategoriesShort=Tagiau/categorïau cysylltiadau +AccountsCategoriesShort=Tagiau/categorïau cyfrifon +ProjectsCategoriesShort=Tagiau/categorïau prosiectau +UsersCategoriesShort=Tagiau defnyddwyr/categorïau +StockCategoriesShort=Tagiau/categorïau warws +ThisCategoryHasNoItems=Nid yw'r categori hwn yn cynnwys unrhyw eitemau. +CategId=ID tag/categori +ParentCategory=Tag rhiant/categori +ParentCategoryLabel=Label y tag rhiant/categori +CatSupList=Rhestr o dagiau/categorïau gwerthwyr +CatCusList=Rhestr o gwsmeriaid/tagiau rhagolygon/categorïau +CatProdList=Rhestr o gynhyrchion tagiau/categorïau +CatMemberList=Rhestr o dagiau/categorïau aelodau +CatContactList=Rhestr o dagiau/categorïau cysylltiadau +CatProjectsList=Rhestr o dagiau/categorïau prosiectau +CatUsersList=Rhestr o dagiau/categorïau defnyddwyr +CatSupLinks=Cysylltiadau rhwng gwerthwyr a thagiau/categorïau +CatCusLinks=Cysylltiadau rhwng cwsmeriaid/rhagolygon a thagiau/categorïau +CatContactsLinks=Cysylltiadau rhwng cysylltiadau/cyfeiriadau a thagiau/categorïau +CatProdLinks=Cysylltiadau rhwng cynhyrchion/gwasanaethau a thagiau/categorïau +CatMembersLinks=Cysylltiadau rhwng aelodau a thagiau/categorïau +CatProjectsLinks=Cysylltiadau rhwng prosiectau a thagiau/categorïau +CatUsersLinks=Cysylltiadau rhwng defnyddwyr a thagiau/categorïau +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. +AddProductServiceIntoCategory=Ychwanegwch y cynnyrch/gwasanaeth canlynol +AddCustomerIntoCategory=Neilltuo categori i gwsmer +AddSupplierIntoCategory=Neilltuo categori i gyflenwr +AssignCategoryTo=Assign category to +ShowCategory=Dangos tag/categori +ByDefaultInList=Yn ddiofyn yn y rhestr +ChooseCategory=Dewiswch gategori +StocksCategoriesArea=Categorïau Warws +ActionCommCategoriesArea=Categorïau Digwyddiad +WebsitePagesCategoriesArea=Categorïau Cynhwysydd Tudalen +KnowledgemanagementsCategoriesArea=Categorïau erthygl KM +UseOrOperatorForCategories=Defnyddiwch weithredwr 'OR' ar gyfer categorïau diff --git a/htdocs/langs/cy_GB/commercial.lang b/htdocs/langs/cy_GB/commercial.lang new file mode 100644 index 00000000000..4d1455d274f --- /dev/null +++ b/htdocs/langs/cy_GB/commercial.lang @@ -0,0 +1,81 @@ +# Dolibarr language file - Source file is en_US - commercial +Commercial=Masnach +CommercialArea=Ardal fasnach +Customer=Cwsmer +Customers=Cwsmeriaid +Prospect=Rhagolygon +Prospects=Rhagolygon +DeleteAction=Dileu digwyddiad +NewAction=Digwyddiad newydd +AddAction=Creu digwyddiad +AddAnAction=Creu digwyddiad +AddActionRendezVous=Creu digwyddiad Rendez-vous +ConfirmDeleteAction=Ydych chi'n siŵr eich bod am ddileu'r digwyddiad hwn? +CardAction=Cerdyn digwyddiad +ActionOnCompany=Cwmni cysylltiedig +ActionOnContact=Cyswllt cysylltiedig +TaskRDVWith=Cyfarfod ag %s +ShowTask=Dangos tasg +ShowAction=Dangos digwyddiad +ActionsReport=Adroddiad digwyddiadau +ThirdPartiesOfSaleRepresentative=Trydydd partïon gyda chynrychiolydd gwerthu +SaleRepresentativesOfThirdParty=Cynrychiolwyr gwerthu trydydd parti +SalesRepresentative=Cynrychiolydd gwerthu +SalesRepresentatives=Cynrychiolwyr gwerthu +SalesRepresentativeFollowUp=Cynrychiolydd gwerthu (dilynol) +SalesRepresentativeSignature=Cynrychiolydd gwerthu (llofnod) +NoSalesRepresentativeAffected=Dim cynrychiolydd gwerthu penodol wedi'i neilltuo +ShowCustomer=Dangos cwsmer +ShowProspect=Dangos rhagolygon +ListOfProspects=Rhestr o ragolygon +ListOfCustomers=Rhestr o gwsmeriaid +LastDoneTasks=Y camau gweithredu diweddaraf %s wedi'u cwblhau +LastActionsToDo=Hynaf %s camau gweithredu heb eu cwblhau +DoneAndToDoActions=Cwblhawyd ac I'w wneud digwyddiadau +DoneActions=Digwyddiadau wedi'u cwblhau +ToDoActions=Digwyddiadau anghyflawn +SendPropalRef=Cyflwyno cynnig masnachol %s +SendOrderRef=Cyflwyno gorchymyn %s +StatusNotApplicable=Amherthnasol +StatusActionToDo=Gwneud +StatusActionDone=Cyflawn +StatusActionInProcess=Yn y broses +TasksHistoryForThisContact=Digwyddiadau ar gyfer y cyswllt hwn +LastProspectDoNotContact=Peidiwch â chysylltu +LastProspectNeverContacted=Heb gysylltu erioed +LastProspectToContact=I gysylltu +LastProspectContactInProcess=Cysylltwch yn y broses +LastProspectContactDone=Cyswllt wedi'i wneud +ActionAffectedTo=Digwyddiad wedi'i neilltuo i +ActionDoneBy=Digwyddiad wedi'i wneud gan +ActionAC_TEL=Galwad ffon +ActionAC_FAX=Anfon ffacs +ActionAC_PROP=Anfon cynnig drwy'r post +ActionAC_EMAIL=Anfon e-bost +ActionAC_EMAIL_IN=Derbyn E-bost +ActionAC_RDV=Cyfarfodydd +ActionAC_INT=Ymyrraeth ar y safle +ActionAC_FAC=Anfon anfoneb cwsmer drwy'r post +ActionAC_REL=Anfon anfoneb cwsmer drwy'r post (atgoffa) +ActionAC_CLO=Cau +ActionAC_EMAILING=Anfon e-bost torfol +ActionAC_COM=Anfonwch archeb gwerthu trwy'r post +ActionAC_SHIP=Anfon llongau drwy'r post +ActionAC_SUP_ORD=Anfon archeb brynu drwy'r post +ActionAC_SUP_INV=Anfon anfoneb y gwerthwr drwy'r post +ActionAC_OTH=Arall +ActionAC_OTH_AUTO=Car arall +ActionAC_MANUAL=Digwyddiadau a fewnosodwyd â llaw +ActionAC_AUTO=Digwyddiadau wedi'u mewnosod yn awtomatig +ActionAC_OTH_AUTOShort=Arall +ActionAC_EVENTORGANIZATION=Digwyddiadau trefnu digwyddiadau +Stats=Ystadegau gwerthiant +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 +SignatureProposalRef=Llofnod y dyfynbris/cynnig masnachol %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 new file mode 100644 index 00000000000..122154593a4 --- /dev/null +++ b/htdocs/langs/cy_GB/companies.lang @@ -0,0 +1,500 @@ +# Dolibarr language file - Source file is en_US - companies +ErrorCompanyNameAlreadyExists=Mae enw'r cwmni %s eisoes yn bodoli. Dewiswch un arall. +ErrorSetACountryFirst=Gosodwch y wlad yn gyntaf +SelectThirdParty=Dewiswch drydydd parti +ConfirmDeleteCompany=Ydych chi'n siŵr eich bod am ddileu'r cwmni hwn a'r holl wybodaeth gysylltiedig? +DeleteContact=Dileu cyswllt/cyfeiriad +ConfirmDeleteContact=Ydych chi'n siŵr eich bod am ddileu'r cyswllt hwn a'r holl wybodaeth gysylltiedig? +MenuNewThirdParty=Trydydd Parti Newydd +MenuNewCustomer=Cwsmer Newydd +MenuNewProspect=Rhagolygon Newydd +MenuNewSupplier=Gwerthwr Newydd +MenuNewPrivateIndividual=Unigolyn preifat newydd +NewCompany=Cwmni newydd (rhagolygon, cwsmer, gwerthwr) +NewThirdParty=Trydydd Parti Newydd (rhagolygon, cwsmer, gwerthwr) +CreateDolibarrThirdPartySupplier=Creu trydydd parti (gwerthwr) +CreateThirdPartyOnly=Creu trydydd parti +CreateThirdPartyAndContact=Creu trydydd parti + cyswllt plentyn +ProspectionArea=Ardal rhagolygon +IdThirdParty=Id trydydd parti +IdCompany=Id Cwmni +IdContact=ID Cyswllt +ThirdPartyAddress=Third-party address +ThirdPartyContacts=Cysylltiadau trydydd parti +ThirdPartyContact=Cyswllt/cyfeiriad trydydd parti +Company=Cwmni +CompanyName=Enw cwmni +AliasNames=Enw Alias (masnachol, nod masnach, ...) +AliasNameShort=Enw Alias +Companies=Cwmnïau +CountryIsInEEC=Mae'r wlad y tu mewn i'r Gymuned Economaidd Ewropeaidd +PriceFormatInCurrentLanguage=Fformat arddangos pris yn yr iaith gyfredol ac arian cyfred +ThirdPartyName=Enw trydydd parti +ThirdPartyEmail=E-bost trydydd parti +ThirdParty=Trydydd parti +ThirdParties=Trydydd partïon +ThirdPartyProspects=Rhagolygon +ThirdPartyProspectsStats=Rhagolygon +ThirdPartyCustomers=Cwsmeriaid +ThirdPartyCustomersStats=Cwsmeriaid +ThirdPartyCustomersWithIdProf12=Cwsmeriaid ag %s neu %s +ThirdPartySuppliers=Gwerthwyr +ThirdPartyType=Math trydydd parti +Individual=Unigolyn preifat +ToCreateContactWithSameName=Bydd yn creu cyswllt / cyfeiriad yn awtomatig gyda'r un wybodaeth â'r trydydd parti o dan y trydydd parti. Yn y rhan fwyaf o achosion, hyd yn oed os yw'ch trydydd parti yn berson corfforol, mae creu trydydd parti yn unig yn ddigon. +ParentCompany=Rhiant-gwmni +Subsidiaries=Is-gwmnïau +ReportByMonth=Adroddiad y mis +ReportByCustomers=Adroddiad fesul cwsmer +ReportByThirdparties=Adroddiad fesul trydydd parti +ReportByQuarter=Adroddiad fesul cyfradd +CivilityCode=Cod gwareiddiad +RegisteredOffice=Swyddfa gofrestredig +Lastname=Enw olaf +Firstname=Enw cyntaf +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number +PostOrFunction=Safle swydd +UserTitle=Teitl +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=Country ID +Phone=Ffon +PhoneShort=Ffon +Skype=Skype +Call=Galwch +Chat=Sgwrsio +PhonePro=Bws. ffôn +PhonePerso=Pers. ffôn +PhoneMobile=Symudol +No_Email=Gwrthod negeseuon e-bost swmp +Fax=Ffacs +Zip=Côd post +Town=Dinas +Web=Gwe +Poste= Swydd +DefaultLang=Iaith ddiofyn +VATIsUsed=Treth gwerthu a ddefnyddir +VATIsUsedWhenSelling=Mae hyn yn diffinio a yw'r trydydd parti hwn yn cynnwys treth werthu ai peidio pan fydd yn gwneud anfoneb i'w gwsmeriaid ei hun +VATIsNotUsed=Ni ddefnyddir treth gwerthu +CopyAddressFromSoc=Copïo cyfeiriad o fanylion trydydd parti +ThirdpartyNotCustomerNotSupplierSoNoRef=Nid yw trydydd parti yn gwsmer na gwerthwr, dim gwrthrychau cyfeirio ar gael +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Nid yw trydydd parti yn gwsmer nac yn werthwr, nid oes gostyngiadau ar gael +PaymentBankAccount=Cyfrif banc talu +OverAllProposals=Cynigion +OverAllOrders=Archebion +OverAllInvoices=Anfonebau +OverAllSupplierProposals=Ceisiadau pris +##### Local Taxes ##### +LocalTax1IsUsed=Defnyddiwch ail dreth +LocalTax1IsUsedES= Defnyddir AG +LocalTax1IsNotUsedES= Ni ddefnyddir AG +LocalTax2IsUsed=Defnyddiwch drydedd dreth +LocalTax2IsUsedES= Defnyddir IRPF +LocalTax2IsNotUsedES= Ni ddefnyddir IRPF +WrongCustomerCode=Cod cwsmer yn annilys +WrongSupplierCode=Cod y gwerthwr yn annilys +CustomerCodeModel=Model cod cwsmer +SupplierCodeModel=Model cod gwerthwr +Gencod=Cod bar +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=ID Proffesiynol 1 +ProfId2=ID Proffesiynol 2 +ProfId3=ID Proffesiynol 3 +ProfId4=ID Proffesiynol 4 +ProfId5=ID Proffesiynol 5 +ProfId6=ID Proffesiynol 6 +ProfId1AR=Athro Id 1 (CUIT/CUIL) +ProfId2AR=Yr Athro Id 2 (Revenu brutes) +ProfId3AR=- +ProfId4AR=- +ProfId5AR=- +ProfId6AR=- +ProfId1AT=Prof Id 1 (USt.-IdNr) +ProfId2AT=Prof Id 2 (USt.-Nr) +ProfId3AT=Yr Athro Id 3 (Handelsregister-Nr.) +ProfId4AT=- +ProfId5AT=Rhif EORI +ProfId6AT=- +ProfId1AU=Athro Id 1 (ABN) +ProfId2AU=- +ProfId3AU=- +ProfId4AU=- +ProfId5AU=- +ProfId6AU=- +ProfId1BE=Athro Id 1 (Rhif proffesiynol) +ProfId2BE=- +ProfId3BE=- +ProfId4BE=- +ProfId5BE=Rhif EORI +ProfId6BE=- +ProfId1BR=- +ProfId2BR=IE (Inscricao Ystad) +ProfId3BR=IM (Inscricao Municipal) +ProfId4BR=CPF +#ProfId5BR=CNAE +#ProfId6BR=INSS +ProfId1CH=UID-Rhif +ProfId2CH=- +ProfId3CH=Athro Id 1 (Rhif Ffederal) +ProfId4CH=Yr Athro Id 2 (Rhif Cofnod Masnachol) +ProfId5CH=Rhif EORI +ProfId6CH=- +ProfId1CL=Athro Id 1 (R.U.T.) +ProfId2CL=- +ProfId3CL=- +ProfId4CL=- +ProfId5CL=- +ProfId6CL=- +ProfId1CM=Id. prof. 1 (Cofrestr Fasnach) +ProfId2CM=Id. prof. 2 (Rhif trethdalwr) +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=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others +ProfId6ShortCM=- +ProfId1CO=Athro Id 1 (R.U.T.) +ProfId2CO=- +ProfId3CO=- +ProfId4CO=- +ProfId5CO=- +ProfId6CO=- +ProfId1DE=Prof Id 1 (USt.-IdNr) +ProfId2DE=Prof Id 2 (USt.-Nr) +ProfId3DE=Yr Athro Id 3 (Handelsregister-Nr.) +ProfId4DE=- +ProfId5DE=Rhif EORI +ProfId6DE=- +ProfId1ES=Athro Id 1 (CIF/NIF) +ProfId2ES=Prof Id 2 (Rhif nawdd cymdeithasol) +ProfId3ES=Yr Athro Id 3 (CNAE) +ProfId4ES=Yr Athro Id 4 (Rhif colegol) +ProfId5ES=Prof Id 5 (rhif EORI) +ProfId6ES=- +ProfId1FR=Athro Id 1 (SIREN) +ProfId2FR=Yr Athro Id 2 (SIRET) +ProfId3FR=Yr Athro Id 3 (NAF, hen APE) +ProfId4FR=Athro Id 4 (RCS/RM) +ProfId5FR=Yr Athro Id 5 (rhif EORI) +ProfId6FR=- +ProfId1ShortFR=SEREN +ProfId2ShortFR=SIRET +ProfId3ShortFR=NAF +ProfId4ShortFR=RCS +ProfId5ShortFR=EORI +ProfId6ShortFR=- +ProfId1GB=Rhif Cofrestru +ProfId2GB=- +ProfId3GB=SIC +ProfId4GB=- +ProfId5GB=- +ProfId6GB=- +ProfId1HN=Id prof. 1 (RTN) +ProfId2HN=- +ProfId3HN=- +ProfId4HN=- +ProfId5HN=- +ProfId6HN=- +ProfId1IN=Prof ID 1 (TIN) +ProfId2IN=Athro Id 2 (PAN) +ProfId3IN=Yr Athro Id 3 (TRETH SRVC) +ProfId4IN=Prof id 4 +ProfId5IN=Prof ID 5 +ProfId6IN=- +ProfId1IT=- +ProfId2IT=- +ProfId3IT=- +ProfId4IT=- +ProfId5IT=Rhif EORI +ProfId6IT=- +ProfId1LU=Id. prof. 1 (R.C.S. Lwcsembwrg) +ProfId2LU=Id. prof. 2 (Trwydded busnes) +ProfId3LU=- +ProfId4LU=- +ProfId5LU=Rhif EORI +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=Proffeswr Id 1 (R.F.C). +ProfId2MX=Yr Athro Id 2 (R..P. IMSS) +ProfId3MX=Yr Athro Id 3 (Siarter Proffesiynol) +ProfId4MX=- +ProfId5MX=- +ProfId6MX=- +ProfId1NL=rhif KVK +ProfId2NL=- +ProfId3NL=- +ProfId4NL=Burgerservicenummer (BSN) +ProfId5NL=Rhif EORI +ProfId6NL=- +ProfId1PT=Athro Id 1 (NIPC) +ProfId2PT=Prof Id 2 (Rhif nawdd cymdeithasol) +ProfId3PT=Yr Athro Id 3 (Rhif Cofnod Masnachol) +ProfId4PT=Yr Athro Id 4 (Eulfan) +ProfId5PT=Prof Id 5 (rhif EORI) +ProfId6PT=- +ProfId1SN=RC +ProfId2SN=NINEA +ProfId3SN=- +ProfId4SN=- +ProfId5SN=- +ProfId6SN=- +ProfId1TN=Athro Id 1 (RC) +ProfId2TN=Yr Athro Id 2 (matriciwl cyllidol) +ProfId3TN=Yr Athro Id 3 (cod Douane) +ProfId4TN=Prof Id 4 (BAN) +ProfId5TN=- +ProfId6TN=- +ProfId1US=Yr Athro Id (FEIN) +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- +ProfId1RO=Athro Id 1 (CUI) +ProfId2RO=Prof Id 2 (Ger. Înmatriculare) +ProfId3RO=Yr Athro Id 3 (CAEN) +ProfId4RO=Yr Athro Id 5 (EUID) +ProfId5RO=Prof Id 5 (rhif EORI) +ProfId6RO=- +ProfId1RU=Athro Id 1 (OGRN) +ProfId2RU=Yr Athro Id 2 (INN) +ProfId3RU=Prof Id 3 (KPP) +ProfId4RU=Yr Athro Id 4 (OKPO) +ProfId5RU=- +ProfId6RU=- +ProfId1UA=Athro Id 1 (EDRPOU) +ProfId2UA=Yr Athro Id 2 (DRFO) +ProfId3UA=Yr Athro Id 3 (INN) +ProfId4UA=Yr Athro Id 4 (Tystysgrif) +ProfId5UA=Yr Athro Id 5 (RNOKPP) +ProfId6UA=Yr Athro Id 6 (TRDPAU) +ProfId1DZ=RC +ProfId2DZ=Celf. +ProfId3DZ=NIF +ProfId4DZ=NIS +VATIntra=ID TAW +VATIntraShort=ID TAW +VATIntraSyntaxIsValid=Mae cystrawen yn ddilys +VATReturn=Ffurflen TAW +ProspectCustomer=Rhagolygon / Cwsmer +Prospect=Rhagolwg +CustomerCard=Cerdyn Cwsmer +Customer=Cwsmer +CustomerRelativeDiscount=Gostyngiad cwsmer cymharol +SupplierRelativeDiscount=Gostyngiad gwerthwr cymharol +CustomerRelativeDiscountShort=Gostyngiad cymharol +CustomerAbsoluteDiscountShort=Disgownt llwyr +CompanyHasRelativeDiscount=Mae gan y cwsmer hwn ddisgownt rhagosodedig o %s%% +CompanyHasNoRelativeDiscount=Nid oes gan y cwsmer hwn unrhyw ddisgownt cymharol yn ddiofyn +HasRelativeDiscountFromSupplier=Mae gennych ddisgownt rhagosodedig o %s%% gan y gwerthwr hwn +HasNoRelativeDiscountFromSupplier=Nid oes gennych unrhyw ostyngiad cymharol diofyn gan y gwerthwr hwn +CompanyHasAbsoluteDiscount=Mae gan y cwsmer hwn ostyngiadau ar gael (nodiadau credyd neu daliadau i lawr) ar gyfer %s %s +CompanyHasDownPaymentOrCommercialDiscount=Mae gan y cwsmer hwn ostyngiadau ar gael (masnachol, taliadau i lawr) ar gyfer %s %s +CompanyHasCreditNote=Mae gan y cwsmer hwn nodiadau credyd o hyd ar gyfer %s %s +HasNoAbsoluteDiscountFromSupplier=Nid oes gennych unrhyw gredyd disgownt ar gael gan y gwerthwr hwn +HasAbsoluteDiscountFromSupplier=Mae gennych ostyngiadau ar gael (nodiadau credyd neu daliadau i lawr) ar gyfer %s %s gan y gwerthwr hwn +HasDownPaymentOrCommercialDiscountFromSupplier=Mae gennych ostyngiadau ar gael (masnachol, taliadau i lawr) ar gyfer %s %s gan y gwerthwr hwn +HasCreditNoteFromSupplier=Mae gennych nodiadau credyd ar gyfer %s %s gan y gwerthwr hwn +CompanyHasNoAbsoluteDiscount=Nid oes gan y cwsmer hwn unrhyw gredyd disgownt ar gael +CustomerAbsoluteDiscountAllUsers=Gostyngiadau cwsmeriaid absoliwt (a roddir gan bob defnyddiwr) +CustomerAbsoluteDiscountMy=Gostyngiadau cwsmeriaid absoliwt (a roddir gennych chi) +SupplierAbsoluteDiscountAllUsers=Gostyngiadau gwerthwyr absoliwt (wedi'u nodi gan bob defnyddiwr) +SupplierAbsoluteDiscountMy=Gostyngiadau gwerthwr absoliwt (wedi'u nodi gennych chi'ch hun) +DiscountNone=Dim +Vendor=Gwerthwr +Supplier=Gwerthwr +AddContact=Creu cyswllt +AddContactAddress=Creu cyswllt/cyfeiriad +EditContact=Golygu cyswllt +EditContactAddress=Golygu cyswllt/cyfeiriad +Contact=Cyswllt/Cyfeiriad +Contacts=Cysylltiadau/Cyfeiriadau +ContactId=ID cyswllt +ContactsAddresses=Cysylltiadau/Cyfeiriadau +FromContactName=Enw: +NoContactDefinedForThirdParty=Dim cyswllt wedi'i ddiffinio ar gyfer y trydydd parti hwn +NoContactDefined=Dim cyswllt wedi'i ddiffinio +DefaultContact=Cyswllt/cyfeiriad diofyn +ContactByDefaultFor=Cyswllt/cyfeiriad diofyn ar gyfer +AddThirdParty=Creu trydydd parti +DeleteACompany=Dileu cwmni +PersonalInformations=Data personol +AccountancyCode=Cyfrif cyfrif +CustomerCode=Cod Cwsmer +SupplierCode=Cod Gwerthwr +CustomerCodeShort=Cod Cwsmer +SupplierCodeShort=Cod Gwerthwr +CustomerCodeDesc=Cod Cwsmer, unigryw i bob cwsmer +SupplierCodeDesc=Cod Gwerthwr, sy'n unigryw i bob gwerthwr +RequiredIfCustomer=Yn ofynnol os yw trydydd parti yn gwsmer neu ragolygon +RequiredIfSupplier=Yn ofynnol os yw trydydd parti yn werthwr +ValidityControledByModule=Dilysrwydd a reolir gan y modiwl +ThisIsModuleRules=Rheolau ar gyfer y modiwl hwn +ProspectToContact=Rhagolygon cysylltu +CompanyDeleted=Cwmni "%s" wedi'i ddileu o'r gronfa ddata. +ListOfContacts=Rhestr o gysylltiadau/cyfeiriadau +ListOfContactsAddresses=Rhestr o gysylltiadau/cyfeiriadau +ListOfThirdParties=Rhestr o Drydydd Partïon +ShowCompany=Trydydd parti +ShowContact=Cyswllt-Cyfeiriad +ContactsAllShort=Pawb (Dim hidlydd) +ContactType=Contact role +ContactForOrders=Cyswllt yr archeb +ContactForOrdersOrShipments=Cyswllt archeb neu lwyth +ContactForProposals=Cyswllt y cynnig +ContactForContracts=Cyswllt y contract +ContactForInvoices=Cyswllt anfoneb +NoContactForAnyOrder=Nid yw'r cyswllt hwn yn gyswllt ar gyfer unrhyw archeb +NoContactForAnyOrderOrShipments=Nid yw'r cyswllt hwn yn gyswllt ar gyfer unrhyw archeb neu lwyth +NoContactForAnyProposal=Nid yw'r cyswllt hwn yn gyswllt ar gyfer unrhyw gynnig masnachol +NoContactForAnyContract=Nid yw'r cyswllt hwn yn gyswllt ar gyfer unrhyw gontract +NoContactForAnyInvoice=Nid yw'r cyswllt hwn yn gyswllt ar gyfer unrhyw anfoneb +NewContact=Cyswllt newydd +NewContactAddress=Cyswllt/Cyfeiriad Newydd +MyContacts=Fy nghysylltiadau +Capital=Cyfalaf +CapitalOf=Cyfalaf o %s +EditCompany=Golygu cwmni +ThisUserIsNot=Nid yw'r defnyddiwr hwn yn ddarpar, cwsmer neu werthwr +VATIntraCheck=Gwirio +VATIntraCheckDesc=Rhaid i'r ID TAW gynnwys rhagddodiad y wlad. Mae'r ddolen %s yn defnyddio'r gwasanaeth gwirio TAW Ewropeaidd (VIES) sy'n gofyn am fynediad i'r rhyngrwyd o weinydd Dolibarr. +VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do +VATIntraCheckableOnEUSite=Gwiriwch yr ID TAW o fewn y Gymuned ar wefan y Comisiwn Ewropeaidd +VATIntraManualCheck=Gallwch hefyd wirio â llaw ar wefan y Comisiwn Ewropeaidd %s +ErrorVATCheckMS_UNAVAILABLE=Gwirio ddim yn bosibl. Ni ddarperir gwasanaeth gwirio gan yr aelod-wladwriaeth (%s). +NorProspectNorCustomer=Nid gobaith, na chwsmer +JuridicalStatus=Math o endid busnes +Workforce=Gweithlu +Staff=Gweithwyr +ProspectLevelShort=Potensial +ProspectLevel=Potensial rhagolygon +ContactPrivate=Preifat +ContactPublic=Wedi'i rannu +ContactVisibility=Gwelededd +ContactOthers=Arall +OthersNotLinkedToThirdParty=Eraill, nad ydynt yn gysylltiedig â thrydydd parti +ProspectStatus=Statws rhagolygon +PL_NONE=Dim +PL_UNKNOWN=Anhysbys +PL_LOW=Isel +PL_MEDIUM=Canolig +PL_HIGH=Uchel +TE_UNKNOWN=- +TE_STARTUP=Cychwyn +TE_GROUP=Cwmni mawr +TE_MEDIUM=Cwmni canolig +TE_ADMIN=Llywodraethol +TE_SMALL=Cwmni bach +TE_RETAIL=Manwerthwr +TE_WHOLE=Cyfanwerthwr +TE_PRIVATE=Unigolyn preifat +TE_OTHER=Arall +StatusProspect-1=Peidiwch â chysylltu +StatusProspect0=Heb gysylltu erioed +StatusProspect1=I'w gysylltu +StatusProspect2=Cysylltwch yn y broses +StatusProspect3=Cyswllt wedi'i wneud +ChangeDoNotContact=Newid statws i 'Peidiwch â chysylltu' +ChangeNeverContacted=Newid statws i 'Peidiwch byth â chysylltu' +ChangeToContact=Newid statws i 'I'w gysylltu' +ChangeContactInProcess=Newid statws i 'Cysylltiad yn y broses' +ChangeContactDone=Newid statws i 'Cysylltiad wedi'i wneud' +ProspectsByStatus=Rhagolygon yn ôl statws +NoParentCompany=Dim +ExportCardToFormat=Allforio cerdyn i fformat +ContactNotLinkedToCompany=Nid yw'r cyswllt yn gysylltiedig ag unrhyw drydydd parti +DolibarrLogin=Mewngofnod Dolibarr +NoDolibarrAccess=Dim mynediad i Ddolibarr +ExportDataset_company_1=Trydydd partïon (cwmnïau/sylfeini/pobl gorfforol) a’u priodweddau +ExportDataset_company_2=Cysylltiadau a'u heiddo +ImportDataset_company_1=Trydydd partïon a'u priodweddau +ImportDataset_company_2=Cysylltiadau/cyfeiriadau a phriodoleddau ychwanegol trydydd parti +ImportDataset_company_3=Cyfrifon banc trydydd parti +ImportDataset_company_4=Cynrychiolwyr gwerthu trydydd parti (aseinio cynrychiolwyr gwerthu/defnyddwyr i gwmnïau) +PriceLevel=Lefel Pris +PriceLevelLabels=Labeli Lefel Pris +DeliveryAddress=Cyfeiriad dosbarthu +AddAddress=Ychwanegu cyfeiriad +SupplierCategory=Categori gwerthwr +JuridicalStatus200=Annibynol +DeleteFile=Dileu ffeil +ConfirmDeleteFile=Are you sure you want to delete this file? +AllocateCommercial=Wedi'i neilltuo i gynrychiolydd gwerthu +Organization=Sefydliad +FiscalYearInformation=Blwyddyn Gyllidol +FiscalMonthStart=Mis cychwyn y flwyddyn ariannol +SocialNetworksInformation=Rhwydweithiau cymdeithasol +SocialNetworksFacebookURL=URL Facebook +SocialNetworksTwitterURL=URL Twitter +SocialNetworksLinkedinURL=URL Linkedin +SocialNetworksInstagramURL=URL Instagram +SocialNetworksYoutubeURL=URL YouTube +SocialNetworksGithubURL=URL Github +YouMustAssignUserMailFirst=Rhaid i chi greu e-bost ar gyfer y defnyddiwr hwn cyn gallu ychwanegu hysbysiad e-bost. +YouMustCreateContactFirst=Er mwyn gallu ychwanegu hysbysiadau e-bost, yn gyntaf rhaid i chi ddiffinio cysylltiadau â negeseuon e-bost dilys ar gyfer y trydydd parti +ListSuppliersShort=Rhestr o Werthwyr +ListProspectsShort=Rhestr o Ragolygon +ListCustomersShort=Rhestr o Gwsmeriaid +ThirdPartiesArea=Trydydd Partïon/Cysylltiadau +LastModifiedThirdParties=%s Trydydd Partïon diweddaraf a addaswyd +UniqueThirdParties=Cyfanswm y Trydydd Partïon +InActivity=Agored +ActivityCeased=Ar gau +ThirdPartyIsClosed=Trydydd parti ar gau +ProductsIntoElements=Rhestr o gynhyrchion/gwasanaethau wedi'u mapio i %s +CurrentOutstandingBill=Bil cyfredol sy'n weddill +OutstandingBill=Max. am fil sy'n weddill +OutstandingBillReached=Max. am bil heb ei gyrraedd +OrderMinAmount=Isafswm ar gyfer archeb +MonkeyNumRefModelDesc=Dychwelwch rif yn y fformat %syymm-nnnn ar gyfer y cod cwsmer ac %syymm-nnnn ar gyfer y cod gwerthwr lle mae yy yn flwyddyn, mm yw mis ac mae nnnn yn rhif auto-cynyddu dilynol heb unrhyw doriad a dim dychwelyd i 0. +LeopardNumRefModelDesc=Mae'r cod yn rhad ac am ddim. Gellir addasu'r cod hwn unrhyw bryd. +ManagingDirectors=Enw'r rheolwr(wyr) (Prif Swyddog Gweithredol, cyfarwyddwr, llywydd...) +MergeOriginThirdparty=Trydydd parti dyblyg (trydydd parti rydych chi am ei ddileu) +MergeThirdparties=Cyfuno trydydd parti +ConfirmMergeThirdparties=A ydych yn siŵr eich bod am gyfuno'r trydydd parti a ddewiswyd â'r un presennol? Bydd yr holl wrthrychau cysylltiedig (anfonebau, archebion, ...) yn cael eu symud i'r trydydd parti cyfredol, ac ar ôl hynny bydd y trydydd parti a ddewiswyd yn cael ei ddileu. +ThirdpartiesMergeSuccess=Mae trydydd partïon wedi'u huno +SaleRepresentativeLogin=Mewngofnodi cynrychiolydd gwerthu +SaleRepresentativeFirstname=Enw cyntaf y cynrychiolydd gwerthu +SaleRepresentativeLastname=Enw olaf y cynrychiolydd gwerthu +ErrorThirdpartiesMerge=Bu gwall wrth ddileu'r trydydd parti. Gwiriwch y log. Mae newidiadau wedi'u dychwelyd. +NewCustomerSupplierCodeProposed=Cod cwsmer neu werthwr a ddefnyddiwyd eisoes, awgrymir cod newydd +KeepEmptyIfGenericAddress=Cadwch y maes hwn yn wag os yw'r cyfeiriad hwn yn gyfeiriad cyffredinol +#Imports +PaymentTypeCustomer=Math o Daliad - Cwsmer +PaymentTermsCustomer=Telerau Talu - Cwsmer +PaymentTypeSupplier=Math o Daliad - Gwerthwr +PaymentTermsSupplier=Tymor Talu - Gwerthwr +PaymentTypeBoth=Math o Daliad - Cwsmer a Gwerthwr +MulticurrencyUsed=Defnyddiwch Multicurrency +MulticurrencyCurrency=Arian cyfred +InEEC=Ewrop (CEE) +RestOfEurope=Gweddill Ewrop (CEE) +OutOfEurope=Allan o Ewrop (CEE) +CurrentOutstandingBillLate=Bil cyfredol sy'n ddyledus yn hwyr +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Byddwch yn ofalus, yn dibynnu ar eich gosodiadau pris cynnyrch, dylech newid trydydd parti cyn ychwanegu cynnyrch at POS. diff --git a/htdocs/langs/cy_GB/compta.lang b/htdocs/langs/cy_GB/compta.lang new file mode 100644 index 00000000000..9ae8b92d461 --- /dev/null +++ b/htdocs/langs/cy_GB/compta.lang @@ -0,0 +1,302 @@ +# Dolibarr language file - Source file is en_US - compta +MenuFinancial=Bilio | Taliad +TaxModuleSetupToModifyRules=Ewch i Gosodiad modiwl Trethi i addasu rheolau ar gyfer cyfrifo +TaxModuleSetupToModifyRulesLT=Ewch i Sefydlu cwmni i addasu rheolau ar gyfer cyfrifo +OptionMode=Opsiwn ar gyfer cyfrifyddiaeth +OptionModeTrue=Incwm Opsiwn-Treuliau +OptionModeVirtual=Hawliadau Opsiwn-Dyledion +OptionModeTrueDesc=Yn y cyd-destun hwn, cyfrifir y trosiant dros daliadau (dyddiad taliadau). Sicrheir dilysrwydd y ffigurau dim ond os creffir ar y cadw cyfrifon trwy fewnbwn/allbwn ar y cyfrifon trwy anfonebau. +OptionModeVirtualDesc=Yn y cyd-destun hwn, cyfrifir y trosiant dros anfonebau (dyddiad dilysu). Pan fydd yr anfonebau hyn yn ddyledus, p'un a ydynt wedi'u talu ai peidio, cânt eu rhestru yn yr allbwn trosiant. +FeatureIsSupportedInInOutModeOnly=Nodwedd yn unig ar gael yn y modd cyfrifeg CREDITS-DEBTS (Gweler ffurfweddiad modiwl Cyfrifeg) +VATReportBuildWithOptionDefinedInModule=Cyfrifir y symiau a ddangosir yma gan ddefnyddio rheolau a ddiffinnir gan osod modiwlau Treth. +LTReportBuildWithOptionDefinedInModule=Cyfrifir y symiau a ddangosir yma gan ddefnyddio rheolau a ddiffinnir gan drefniant y Cwmni. +Param=Gosod +RemainingAmountPayment=Swm taliad yn weddill: +Account=Cyfrif +Accountparent=Cyfrif rhiant +Accountsparent=Cyfrifon rhieni +Income=Incwm +Outcome=Traul +MenuReportInOut=Incwm / Treuliau +ReportInOut=Balans incwm a threuliau +ReportTurnover=Trosiant wedi'i anfonebu +ReportTurnoverCollected=Trosiant wedi'i gasglu +PaymentsNotLinkedToInvoice=Taliadau nad ydynt yn gysylltiedig ag unrhyw anfoneb, felly heb eu cysylltu ag unrhyw drydydd parti +PaymentsNotLinkedToUser=Taliadau nad ydynt yn gysylltiedig ag unrhyw ddefnyddiwr +Profit=Elw +AccountingResult=Canlyniad cyfrifo +BalanceBefore=Balans (cyn) +Balance=Cydbwysedd +Debit=Debyd +Credit=Credyd +Piece=Dogfen Cyfrifo. +AmountHTVATRealReceived=Net wedi'i gasglu +AmountHTVATRealPaid=Talwyd net +VATToPay=Gwerthiant treth +VATReceived=Treth a dderbyniwyd +VATToCollect=Pryniannau treth +VATSummary=Treth yn fisol +VATBalance=Balans Treth +VATPaid=Treth a dalwyd +LT1Summary=Treth 2 crynodeb +LT2Summary=Treth 3 crynodeb +LT1SummaryES=Cydbwysedd AG +LT2SummaryES=Balans yr IRPF +LT1SummaryIN=Balans CGST +LT2SummaryIN=Balans SGST +LT1Paid=Treth 2 a dalwyd +LT2Paid=Treth 3 a dalwyd +LT1PaidES=AG Talwyd +LT2PaidES=IRPF Taledig +LT1PaidIN=CGST Taledig +LT2PaidIN=SGST Taledig +LT1Customer=Treth 2 gwerthiant +LT1Supplier=Treth 2 pryniannau +LT1CustomerES=Gwerthiant AG +LT1SupplierES=Pryniannau AG +LT1CustomerIN=Gwerthiannau CGST +LT1SupplierIN=CGST yn prynu +LT2Customer=Treth 3 gwerthiant +LT2Supplier=Treth 3 pryniant +LT2CustomerES=Gwerthiannau IRPF +LT2SupplierES=Pryniannau gan yr IRPF +LT2CustomerIN=Gwerthiant SGST +LT2SupplierIN=SGST yn prynu +VATCollected=TAW a gasglwyd +StatusToPay=I dalu +SpecialExpensesArea=Ardal ar gyfer pob taliad arbennig +VATExpensesArea=Ardal ar gyfer pob taliad TVA +SocialContribution=Treth gymdeithasol neu gyllidol +SocialContributions=Trethi cymdeithasol neu gyllidol +SocialContributionsDeductibles=Trethi cymdeithasol neu gyllidol didynnu +SocialContributionsNondeductibles=Trethi cymdeithasol neu gyllidol na ellir eu tynnu +DateOfSocialContribution=Dyddiad treth gymdeithasol neu gyllidol +LabelContrib=Label cyfraniad +TypeContrib=Math cyfraniad +MenuSpecialExpenses=Treuliau arbennig +MenuTaxAndDividends=Trethi a difidendau +MenuSocialContributions=Trethi cymdeithasol/cyllid +MenuNewSocialContribution=Treth gymdeithasol/gyllidol newydd +NewSocialContribution=Treth gymdeithasol/gyllidol newydd +AddSocialContribution=Ychwanegu treth gymdeithasol/gyllidol +ContributionsToPay=Trethi cymdeithasol/cyllidol i'w talu +AccountancyTreasuryArea=Ardal bilio a thalu +NewPayment=Taliad newydd +PaymentCustomerInvoice=Taliad anfoneb cwsmer +PaymentSupplierInvoice=taliad anfoneb y gwerthwr +PaymentSocialContribution=Taliad treth cymdeithasol/cyllidol +PaymentVat=Taliad TAW +AutomaticCreationPayment=Cofnodwch y taliad yn awtomatig +ListPayment=Rhestr o daliadau +ListOfCustomerPayments=Rhestr o daliadau cwsmeriaid +ListOfSupplierPayments=Rhestr o daliadau gwerthwr +DateStartPeriod=Dyddiad cyfnod dechrau +DateEndPeriod=Dyddiad diwedd cyfnod +newLT1Payment=Taliad treth 2 newydd +newLT2Payment=Taliad treth 3 newydd +LT1Payment=Taliad treth 2 +LT1Payments=Treth 2 taliad +LT2Payment=Treth 3 taliad +LT2Payments=Treth 3 taliad +newLT1PaymentES=Taliad AG newydd +newLT2PaymentES=Taliad IRPF newydd +LT1PaymentES=Taliad AG +LT1PaymentsES=Taliadau AG +LT2PaymentES=Taliad IRPF +LT2PaymentsES=Taliadau IRPF +VATPayment=Taliad treth gwerthu +VATPayments=Taliadau treth gwerthu +VATDeclarations=datganiadau TAW +VATDeclaration=datganiad TAW +VATRefund=Ad-daliad treth gwerthiant +NewVATPayment=Taliad treth gwerthu newydd +NewLocalTaxPayment=Taliad treth newydd %s +Refund=Ad-daliad +SocialContributionsPayments=Taliadau trethi cymdeithasol/cyllidol +ShowVatPayment=Dangos taliad TAW +TotalToPay=Cyfanswm i dalu +BalanceVisibilityDependsOnSortAndFilters=Mae balans i'w weld yn y rhestr hon dim ond os yw'r tabl wedi'i ddidoli ar %s a'i hidlo ar 1 cyfrif banc (heb unrhyw hidlwyr eraill) +CustomerAccountancyCode=Cod cyfrifo cwsmeriaid +SupplierAccountancyCode=Cod cyfrifo gwerthwr +CustomerAccountancyCodeShort=Cust. cyfrif. côd +SupplierAccountancyCodeShort=Sup. cyfrif. côd +AccountNumber=Rhif cyfrif +NewAccountingAccount=Cyfrif newydd +Turnover=Trosiant wedi'i anfonebu +TurnoverCollected=Trosiant wedi'i gasglu +SalesTurnoverMinimum=Isafswm trosiant +ByExpenseIncome=Trwy dreuliau ac incwm +ByThirdParties=Gan drydydd partïon +ByUserAuthorOfInvoice=Gan awdur anfoneb +CheckReceipt=Gwirio blaendal +CheckReceiptShort=Gwirio blaendal +LastCheckReceiptShort=Derbynebau siec diweddaraf %s +NewCheckReceipt=Gostyngiad newydd +NewCheckDeposit=Blaendal siec newydd +NewCheckDepositOn=Creu derbynneb ar gyfer blaendal ar gyfrif: %s +NoWaitingChecks=Dim sieciau yn aros am flaendal. +DateChequeReceived=Gwiriwch y dyddiad derbyn +NbOfCheques=Nifer y sieciau +PaySocialContribution=Talu treth gymdeithasol/gyllidol +PayVAT=Talu datganiad TAW +PaySalary=Talu cerdyn cyflog +ConfirmPaySocialContribution=A ydych yn siŵr eich bod am ddosbarthu'r dreth gymdeithasol neu gyllidol hon fel un a dalwyd? +ConfirmPayVAT=A ydych yn siŵr eich bod am ddosbarthu'r datganiad TAW hwn fel un a dalwyd ? +ConfirmPaySalary=Ydych chi'n siŵr eich bod am ddosbarthu'r cerdyn cyflog hwn fel un taledig? +DeleteSocialContribution=Dileu taliad treth cymdeithasol neu gyllidol +DeleteVAT=Dileu datganiad TAW +DeleteSalary=Dileu cerdyn cyflog +DeleteVariousPayment=Delete a various payment +ConfirmDeleteSocialContribution=A ydych yn siŵr eich bod am ddileu'r taliad treth cymdeithasol/cyllidol hwn ? +ConfirmDeleteVAT=A ydych yn siŵr eich bod am ddileu'r datganiad TAW hwn ? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? +ExportDataset_tax_1=Trethi a thaliadau cymdeithasol a chyllidol +CalcModeVATDebt=Modd %sVAT ar ymrwymiad account%s . +CalcModeVATEngagement=Modd %sVAT ar incwm-expenses%s . +CalcModeDebt=Dadansoddiad o ddogfennau cofnodedig hysbys hyd yn oed os nad ydynt eto wedi'u cyfrif yn y cyfriflyfr. +CalcModeEngagement=Dadansoddiad o daliadau hysbys a gofnodwyd, hyd yn oed os nad ydynt eto wedi'u cyfrifo yn y Cyfriflyfr. +CalcModeBookkeeping=Dadansoddiad o'r data wedi'i newyddiaduro yn y tabl Cyfriflyfr Cadw Cyfrifon. +CalcModeLT1= Modd %sRE ar anfonebau cwsmeriaid - anfoneb cyflenwyrs%s +CalcModeLT1Debt=Modd %sRE ar anfoneb cwsmers%s +CalcModeLT1Rec= Modd %sRE ar gyflenwyr anfonebs%s +CalcModeLT2= Modd %sIRPF ar anfonebau cwsmeriaid - anfoneb cyflenwyrs%s +CalcModeLT2Debt=Modd %sIRPF ar anfoneb cwsmers%s +CalcModeLT2Rec= Modd %sIRPF ar gyflenwyr anfonebs%s +AnnualSummaryDueDebtMode=Balans incwm a threuliau, crynodeb blynyddol +AnnualSummaryInputOutputMode=Balans incwm a threuliau, crynodeb blynyddol +AnnualByCompanies=Balans incwm a threuliau, yn ôl grwpiau cyfrif a ddiffiniwyd ymlaen llaw +AnnualByCompaniesDueDebtMode=Cydbwysedd incwm a threuliau, manylion yn ôl grwpiau rhagosodol, modd %sClaims-Debts%s Dywedodd a0aee83365837fz cyfrifo a0aee83365837fz a0aee83365837fz a0aee83365837fz. +AnnualByCompaniesInputOutputMode=Cydbwysedd incwm a threuliau, manylion yn ôl grwpiau rhagosodol, modd %sIncomes-Treuliau-Treuliau0ecb2ec87f49fz0 dywedodd a0aee833658370z0 cash. +SeeReportInInputOutputMode=Gweler %sdadansoddiad o daliadau%s am gyfrifiad yn seiliedig ar taliadau a gofnodwyd a09a4b739fz0 hyd yn oed yn cael eu gwneud yn y cyfrif +SeeReportInDueDebtMode=Gweler %sdadansoddiad o ddogfennau a gofnodwyd%s am gyfrifiad yn seiliedig ar hysbys dogfennau a gofnodwyd a09a4b739fz0 hyd yn oed yn cyfrif os nad ydynt wedi'u cofnodi eto. +SeeReportInBookkeepingMode=Gweler %sdadansoddiad o gyfriflyfr cadw llyfrau table%s am adroddiad yn seiliedig ar Cadw cyfrifon table%s +RulesAmountWithTaxIncluded=- Mae'r symiau a ddangosir gyda'r holl drethi wedi'u cynnwys +RulesAmountWithTaxExcluded=- Mae symiau'r anfonebau a ddangosir gyda'r holl drethi wedi'u heithrio +RulesResultDue=- Mae'n cynnwys yr holl anfonebau, treuliau, TAW, rhoddion, cyflogau, p'un a ydynt yn cael eu talu ai peidio.
    - Mae'n seiliedig ar ddyddiad bilio anfonebau ac ar y dyddiad dyledus ar gyfer treuliau neu daliadau treth. Ar gyfer cyflogau, defnyddir dyddiad diwedd y cyfnod. +RulesResultInOut=- Mae'n cynnwys y taliadau gwirioneddol a wneir ar anfonebau, treuliau, TAW a chyflogau.
    - Mae'n seiliedig ar ddyddiadau talu'r anfonebau, treuliau, TAW, rhoddion a chyflogau. +RulesCADue=- Mae'n cynnwys anfonebau dyledus y cwsmer p'un a ydynt yn cael eu talu ai peidio.
    - Mae'n seiliedig ar ddyddiad bilio'r anfonebau hyn.
    +RulesCAIn=- Mae'n cynnwys yr holl daliadau effeithiol o anfonebau a dderbyniwyd gan gwsmeriaid.
    - Mae'n seiliedig ar ddyddiad talu'r anfonebau hyn
    +RulesCATotalSaleJournal=Mae'n cynnwys yr holl linellau credyd o'r cyfnodolyn Sale. +RulesSalesTurnoverOfIncomeAccounts=Mae'n cynnwys (credyd - debyd) o linellau ar gyfer cyfrifon cynnyrch yn INCWM grŵp +RulesAmountOnInOutBookkeepingRecord=Mae'n cynnwys cofnod yn eich Cyfriflyfr gyda chyfrifon cyfrifo sydd â'r grŵp "GOST" neu "INCWM" +RulesResultBookkeepingPredefined=Mae'n cynnwys cofnod yn eich Cyfriflyfr gyda chyfrifon cyfrifo sydd â'r grŵp "GOST" neu "INCWM" +RulesResultBookkeepingPersonalized=Mae'n dangos cofnod yn eich Cyfriflyfr gyda chyfrifon cyfrifo wedi'u grwpio yn ôl grwpiau personol +SeePageForSetup=Gweler y ddewislen %s am setup +DepositsAreNotIncluded=- Nid yw anfonebau taliad i lawr wedi'u cynnwys +DepositsAreIncluded=- Mae anfonebau taliad i lawr wedi'u cynnwys +LT1ReportByMonth=Treth 2 adroddiad fesul mis +LT2ReportByMonth=Treth 3 adroddiad fesul mis +LT1ReportByCustomers=Rhoi gwybod am dreth 2 gan drydydd parti +LT2ReportByCustomers=Rhoi gwybod am dreth 3 gan drydydd parti +LT1ReportByCustomersES=Adroddiad gan drydydd parti RE +LT2ReportByCustomersES=Adroddiad gan drydydd parti IRPF +VATReport=Adroddiad treth gwerthiant +VATReportByPeriods=Adroddiad treth gwerthiant yn ôl cyfnod +VATReportByMonth=Adroddiad treth gwerthu fesul mis +VATReportByRates=Adroddiad treth gwerthiant yn ôl cyfradd +VATReportByThirdParties=Adroddiad treth gwerthu gan drydydd parti +VATReportByCustomers=Adroddiad treth gwerthu gan gwsmer +VATReportByCustomersInInputOutputMode=Adroddiad gan y cwsmer TAW a gasglwyd ac a dalwyd +VATReportByQuartersInInputOutputMode=Adroddiad gan gyfradd treth Gwerthu o'r dreth a gasglwyd ac a dalwyd +VATReportShowByRateDetails=Dangoswch fanylion y gyfradd hon +LT1ReportByQuarters=Adrodd treth 2 yn ôl cyfradd +LT2ReportByQuarters=Adrodd treth 3 yn ôl cyfradd +LT1ReportByQuartersES=Adroddiad yn ôl cyfradd AG +LT2ReportByQuartersES=Adroddiad yn ôl cyfradd yr IRPF +SeeVATReportInInputOutputMode=Gweler yr adroddiad %sVAT collection%s ar gyfer cyfrifiad safonol +SeeVATReportInDueDebtMode=Gweler yr adroddiad %sVAT ar debit%s am gyfrifiad gydag opsiwn ar yr anfonebu +RulesVATInServices=- Ar gyfer gwasanaethau, mae'r adroddiad yn cynnwys y TAW o daliadau a dderbyniwyd neu a dalwyd mewn gwirionedd ar sail y dyddiad talu. +RulesVATInProducts=- Ar gyfer asedau materol, mae'r adroddiad yn cynnwys y TAW ar sail y dyddiad talu. +RulesVATDueServices=- Ar gyfer gwasanaethau, mae'r adroddiad yn cynnwys TAW ar anfonebau dyledus, wedi'u talu neu beidio, yn seiliedig ar ddyddiad yr anfoneb. +RulesVATDueProducts=- Ar gyfer asedau materol, mae'r adroddiad yn cynnwys y TAW ar anfonebau dyledus, yn seiliedig ar ddyddiad yr anfoneb. +OptionVatInfoModuleComptabilite=Sylwer: Ar gyfer asedau materol, dylai ddefnyddio'r dyddiad cyflwyno i fod yn decach. +ThisIsAnEstimatedValue=Rhagolwg yw hwn, yn seiliedig ar ddigwyddiadau busnes ac nid o'r tabl cyfriflyfr terfynol, felly gall canlyniadau terfynol fod yn wahanol i'r gwerthoedd rhagolwg hwn +PercentOfInvoice=%%/anfoneb +NotUsedForGoods=Heb ei ddefnyddio ar nwyddau +ProposalStats=Ystadegau ar gynigion +OrderStats=Ystadegau ar orchmynion +InvoiceStats=Ystadegau ar filiau +Dispatch=Anfon +Dispatched=Anfonwyd +ToDispatch=I anfon +ThirdPartyMustBeEditAsCustomer=Rhaid diffinio trydydd parti fel cwsmer +SellsJournal=Cylchgrawn Gwerthiant +PurchasesJournal=Dyddiadur Pryniannau +DescSellsJournal=Cylchgrawn Gwerthiant +DescPurchasesJournal=Dyddiadur Pryniannau +CodeNotDef=Heb ei ddiffinio +WarningDepositsNotIncluded=Nid yw anfonebau taliad i lawr wedi'u cynnwys yn y fersiwn hwn gyda'r modiwl cyfrifeg hwn. +DatePaymentTermCantBeLowerThanObjectDate=Ni all dyddiad tymor talu fod yn is na dyddiad y gwrthrych. +Pcg_version=Modelau siart cyfrifon +Pcg_type=Pcg math +Pcg_subtype=Pcg isdeip +InvoiceLinesToDispatch=Llinellau anfoneb i'w hanfon +ByProductsAndServices=Yn ôl cynnyrch a gwasanaeth +RefExt=Cyf allanol +ToCreateAPredefinedInvoice=I greu anfoneb templed, creu anfoneb safonol, yna, heb ei ddilysu, cliciwch ar y botwm "%s". +LinkedOrder=Dolen i archeb +Mode1=Dull 1 +Mode2=Dull 2 +CalculationRuleDesc=I gyfrifo cyfanswm TAW, mae dau ddull:
    Mae dull 1 yn talgrynnu TAW ar bob llinell, yna'n eu crynhoi.
    Dull 2 yw crynhoi'r holl TAW ar bob llinell, yna talgrynnu canlyniad.
    Gall canlyniad terfynol fod yn wahanol i ychydig cents. Modd rhagosodedig yw modd %s . +CalculationRuleDescSupplier=Yn ôl y gwerthwr, dewiswch ddull priodol i gymhwyso'r un rheol gyfrifo a chael yr un canlyniad a ddisgwylir gan eich gwerthwr. +TurnoverPerProductInCommitmentAccountingNotRelevant=Nid yw'r adroddiad o'r Trosiant a gasglwyd fesul cynnyrch ar gael. Mae'r adroddiad hwn ar gael ar gyfer trosiant a anfonebwyd yn unig. +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_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_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 +ConfirmCloneSalary=Cadarnhau clon cyflog +CloneTaxForNextMonth=Cloniwch ef ar gyfer y mis nesaf +SimpleReport=Adroddiad syml +AddExtraReport=Adroddiadau ychwanegol (ychwanegu adroddiad cwsmeriaid tramor a chenedlaethol) +OtherCountriesCustomersReport=Adroddiad cwsmeriaid tramor +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Yn seiliedig ar fod dwy lythyren gyntaf y rhif TAW yn wahanol i god gwlad eich cwmni eich hun +SameCountryCustomersWithVAT=Adroddiad cwsmeriaid cenedlaethol +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Yn seiliedig ar fod dwy lythyren gyntaf y rhif TAW yr un fath â chod gwlad eich cwmni eich hun +LinkedFichinter=Cysylltiad ag ymyriad +ImportDataset_tax_contrib=Trethi cymdeithasol/cyllid +ImportDataset_tax_vat=Taliadau TAW +ErrorBankAccountNotFound=Gwall: Heb ganfod cyfrif banc +FiscalPeriod=Cyfnod cyfrifo +ListSocialContributionAssociatedProject=Rhestr o gyfraniadau cymdeithasol sy'n gysylltiedig â'r prosiect +DeleteFromCat=Dileu o'r grŵp cyfrifo +AccountingAffectation=Aseiniad cyfrifo +LastDayTaxIsRelatedTo=Diwrnod olaf y cyfnod y mae’r dreth yn berthnasol iddo +VATDue=Treth gwerthu a hawlir +ClaimedForThisPeriod=Wedi'i hawlio am y cyfnod +PaidDuringThisPeriod=Talwyd am y cyfnod hwn +PaidDuringThisPeriodDesc=Dyma swm yr holl daliadau sy'n gysylltiedig â datganiadau TAW sydd â dyddiad diwedd cyfnod yn yr ystod dyddiadau a ddewiswyd. +ByVatRate=Trwy gyfradd treth gwerthu +TurnoverbyVatrate=Trosiant wedi'i anfonebu yn ôl cyfradd treth gwerthu +TurnoverCollectedbyVatrate=Trosiant a gasglwyd yn ôl cyfradd treth gwerthu +PurchasebyVatrate=Prynu trwy gyfradd treth gwerthu +LabelToShow=Label byr +PurchaseTurnover=Trosiant prynu +PurchaseTurnoverCollected=Trosiant pryniant wedi'i gasglu +RulesPurchaseTurnoverDue=- Mae'n cynnwys anfonebau dyledus y cyflenwr p'un a ydynt yn cael eu talu ai peidio.
    - Mae'n seiliedig ar ddyddiad anfonebu'r anfonebau hyn.
    +RulesPurchaseTurnoverIn=- Mae'n cynnwys yr holl daliadau effeithiol o anfonebau a wneir i gyflenwyr.
    - Mae'n seiliedig ar ddyddiad talu'r anfonebau hyn
    +RulesPurchaseTurnoverTotalPurchaseJournal=Mae'n cynnwys yr holl linellau debyd o'r cyfnodolyn prynu. +RulesPurchaseTurnoverOfExpenseAccounts=Mae'n cynnwys (debyd - credyd) llinellau ar gyfer cyfrifon cynnyrch mewn TREULIAU grŵp +ReportPurchaseTurnover=Trosiant pryniant wedi'i anfonebu +ReportPurchaseTurnoverCollected=Trosiant pryniant wedi'i gasglu +IncludeVarpaysInResults = Cynnwys taliadau amrywiol mewn adroddiadau +IncludeLoansInResults = Cynnwys benthyciadau mewn adroddiadau +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) +InvoiceNotLate = I'w gasglu (< 15 diwrnod) +InvoiceNotLate15Days = I'w gasglu (15 i 30 diwrnod) +InvoiceNotLate30Days = I'w gasglu (> 30 diwrnod) +InvoiceToPay=I dalu (< 15 diwrnod) +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 ? diff --git a/htdocs/langs/cy_GB/contracts.lang b/htdocs/langs/cy_GB/contracts.lang new file mode 100644 index 00000000000..5b2df05bc7a --- /dev/null +++ b/htdocs/langs/cy_GB/contracts.lang @@ -0,0 +1,107 @@ +# Dolibarr language file - Source file is en_US - contracts +ContractsArea=Maes contractau +ListOfContracts=Rhestr o gontractau +AllContracts=Pob contract +ContractCard=Cerdyn contract +ContractStatusNotRunning=Ddim yn rhedeg +ContractStatusDraft=Drafft +ContractStatusValidated=Wedi'i ddilysu +ContractStatusClosed=Ar gau +ServiceStatusInitial=Ddim yn rhedeg +ServiceStatusRunning=Rhedeg +ServiceStatusNotLate=Rhedeg, heb ddod i ben +ServiceStatusNotLateShort=Heb ddod i ben +ServiceStatusLate=Yn rhedeg, wedi dod i ben +ServiceStatusLateShort=Wedi dod i ben +ServiceStatusClosed=Ar gau +ShowContractOfService=Dangos cytundeb gwasanaeth +Contracts=Contractau +ContractsSubscriptions=Contractau/Tanysgrifiadau +ContractsAndLine=Contractau a llinell gontractau +Contract=Cytundeb +ContractLine=Llinell contract +ContractLines=Llinellau contract +Closing=Cau +NoContracts=Dim cytundebau +MenuServices=Gwasanaethau +MenuInactiveServices=Gwasanaethau ddim yn weithredol +MenuRunningServices=Rhedeg gwasanaethau +MenuExpiredServices=Gwasanaethau sydd wedi dod i ben +MenuClosedServices=Gwasanaethau caeedig +NewContract=Cytundeb newydd +NewContractSubscription=Contract neu danysgrifiad newydd +AddContract=Creu contract +DeleteAContract=Dileu contract +ActivateAllOnContract=Ysgogi'r holl wasanaethau +CloseAContract=Cau contract +ConfirmDeleteAContract=A ydych yn siŵr eich bod am ddileu'r contract hwn a'i holl wasanaethau? +ConfirmValidateContract=A ydych yn siŵr eich bod am ddilysu'r contract hwn dan yr enw %s ? +ConfirmActivateAllOnContract=Bydd hyn yn agor pob gwasanaeth (ddim yn weithredol eto). Ydych chi'n siŵr eich bod am agor pob gwasanaeth? +ConfirmCloseContract=Bydd hyn yn cau pob gwasanaeth (wedi dod i ben ai peidio). Ydych chi'n siŵr eich bod am gau'r contract hwn? +ConfirmCloseService=A ydych yn siŵr eich bod am gau'r gwasanaeth hwn gyda dyddiad %s ? +ValidateAContract=Dilysu contract +ActivateService=Ysgogi gwasanaeth +ConfirmActivateService=Ydych chi'n siŵr eich bod am actifadu'r gwasanaeth hwn gyda dyddiad %s ? +RefContract=Cyfeirnod contract +DateContract=Dyddiad contract +DateServiceActivate=Dyddiad cychwyn gwasanaeth +ListOfServices=Rhestr o wasanaethau +ListOfInactiveServices=Rhestr o wasanaethau nad ydynt yn weithredol +ListOfExpiredServices=Rhestr o wasanaethau gweithredol sydd wedi dod i ben +ListOfClosedServices=Rhestr o wasanaethau caeedig +ListOfRunningServices=Rhestr o wasanaethau rhedeg +NotActivatedServices=Gwasanaethau anactif (ymhlith contractau a ddilyswyd) +BoardNotActivatedServices=Gwasanaethau i'w rhoi ar waith ymhlith contractau wedi'u dilysu +BoardNotActivatedServicesShort=Gwasanaethau i actifadu +LastContracts=Contractau %s diweddaraf +LastModifiedServices=Gwasanaethau diweddaraf %s wedi'u haddasu +ContractStartDate=Dyddiad cychwyn +ContractEndDate=Dyddiad Gorffen +DateStartPlanned=Dyddiad cychwyn arfaethedig +DateStartPlannedShort=Dyddiad cychwyn arfaethedig +DateEndPlanned=Dyddiad gorffen arfaethedig +DateEndPlannedShort=Dyddiad gorffen arfaethedig +DateStartReal=Dyddiad cychwyn go iawn +DateStartRealShort=Dyddiad cychwyn go iawn +DateEndReal=Dyddiad gorffen go iawn +DateEndRealShort=Dyddiad gorffen go iawn +CloseService=Gwasanaeth cau +BoardRunningServices=Gwasanaethau yn rhedeg +BoardRunningServicesShort=Gwasanaethau yn rhedeg +BoardExpiredServices=Gwasanaethau wedi dod i ben +BoardExpiredServicesShort=Gwasanaethau wedi dod i ben +ServiceStatus=Statws y gwasanaeth +DraftContracts=Yn drafftio cytundebau +CloseRefusedBecauseOneServiceActive=Ni ellir cau'r contract gan fod o leiaf un gwasanaeth agored arno +ActivateAllContracts=Ysgogi holl linellau contract +CloseAllContracts=Cau pob llinell gontract +DeleteContractLine=Dileu llinell contract +ConfirmDeleteContractLine=Ydych chi'n siŵr eich bod am ddileu'r llinell gontract hon? +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) +ExpiredSince=Dyddiad dod i ben +NoExpiredServices=Dim gwasanaethau gweithredol wedi dod i ben +ListOfServicesToExpireWithDuration=Rhestr o Wasanaethau i ddod i ben mewn %s diwrnod +ListOfServicesToExpireWithDurationNeg=Rhestr o Wasanaethau wedi dod i ben o fwy na %s diwrnod +ListOfServicesToExpire=Rhestr o Wasanaethau i ddod i ben +NoteListOfYourExpiredServices=Mae'r rhestr hon yn cynnwys gwasanaethau o gontractau ar gyfer trydydd partïon yr ydych yn gysylltiedig â nhw fel cynrychiolydd gwerthu yn unig. +StandardContractsTemplate=Templed contractau safonol +ContactNameAndSignature=Ar gyfer %s, enw a llofnod: +OnlyLinesWithTypeServiceAreUsed=Dim ond llinellau gyda math "Gwasanaeth" fydd yn cael eu clonio. +ConfirmCloneContract=A ydych yn siŵr eich bod am glonio'r contract %s ? +LowerDateEndPlannedShort=Dyddiad gorffen cynlluniedig is ar gyfer gwasanaethau gweithredol +SendContractRef=Gwybodaeth cytundeb __REF__ +OtherContracts=Contractau eraill +##### Types de contacts ##### +TypeContact_contrat_internal_SALESREPSIGN=Cynrychiolydd gwerthu yn llofnodi contract +TypeContact_contrat_internal_SALESREPFOLL=Contract dilynol cynrychiolydd gwerthu +TypeContact_contrat_external_BILLING=Cyswllt cwsmer bilio +TypeContact_contrat_external_CUSTOMER=Cyswllt cwsmer dilynol +TypeContact_contrat_external_SALESREPSIGN=Arwyddo contract cyswllt cwsmer +HideClosedServiceByDefault=Cuddio gwasanaethau caeedig yn ddiofyn +ShowClosedServices=Dangos Gwasanaethau Caeedig +HideClosedServices=Cuddio Gwasanaethau Caeedig +UserStartingService=User starting service +UserClosingService=User closing service diff --git a/htdocs/langs/cy_GB/cron.lang b/htdocs/langs/cy_GB/cron.lang new file mode 100644 index 00000000000..c91962f9317 --- /dev/null +++ b/htdocs/langs/cy_GB/cron.lang @@ -0,0 +1,93 @@ +# Dolibarr language file - Source file is en_US - cron +# About page +# Right +Permission23101 = Darllenwch Swydd wedi'i Amserlennu +Permission23102 = Creu/diweddaru swydd a drefnwyd +Permission23103 = Dileu swydd a drefnwyd +Permission23104 = Cyflawni swydd a drefnwyd +# Admin +CronSetup=Trefniant rheoli swydd wedi'i drefnu +URLToLaunchCronJobs=URL i wirio a lansio swyddi cron cymwys o borwr +OrToLaunchASpecificJob=Neu i wirio a lansio swydd benodol o borwr +KeyForCronAccess=Allwedd ddiogelwch ar gyfer URL i lansio swyddi cron +FileToLaunchCronJobs=Llinell orchymyn i wirio a lansio swyddi cron cymwys +CronExplainHowToRunUnix=Ar amgylchedd Unix dylech ddefnyddio'r cofnod crontab canlynol i redeg y llinell orchymyn bob 5 munud +CronExplainHowToRunWin=Ar amgylchedd Microsoft(tm) Windows gallwch ddefnyddio offer Tasg wedi'i Drefnu i redeg y llinell orchymyn bob 5 munud +CronMethodDoesNotExists=Nid yw dosbarth %s yn cynnwys unrhyw ddull %s +CronMethodNotAllowed=Mae dull %s o ddosbarth %s ar y rhestr ddu o ddulliau gwaharddedig +CronJobDefDesc=Mae proffiliau swyddi Cron yn cael eu diffinio yn ffeil disgrifydd y modiwl. Pan fydd modiwl wedi'i actifadu, maen nhw'n cael eu llwytho ac ar gael fel y gallwch chi weinyddu'r swyddi o'r ddewislen offer gweinyddol %s. +CronJobProfiles=Rhestr o broffiliau swyddi cron rhagosodedig +# Menu +EnabledAndDisabled=Wedi'i alluogi a'i analluogi +# Page list +CronLastOutput=Allbwn rhedeg diweddaraf +CronLastResult=Cod canlyniad diweddaraf +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 +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 +CronNone=Dim +CronDtStart=Nid o'r blaen +CronDtEnd=Nid ar ôl +CronDtNextLaunch=Dienyddiad nesaf +CronDtLastLaunch=Dyddiad dechrau gweithredu diweddaraf +CronDtLastResult=Dyddiad gorffen y gweithredu diweddaraf +CronFrequency=Amlder +CronClass=Dosbarth +CronMethod=Dull +CronModule=Modiwl +CronNoJobs=Dim swyddi wedi'u cofrestru +CronPriority=Blaenoriaeth +CronLabel=Label +CronNbRun=Nifer o lansiadau +CronMaxRun=Uchafswm nifer y lansiadau +CronEach=Pob +JobFinished=Lansio a gorffen swydd +Scheduled=Wedi'i drefnu +#Page card +CronAdd= Ychwanegu swyddi +CronEvery=Cyflawni swydd yr un +CronObject=Enghraifft / Gwrthrych i'w greu +CronArgs=Paramedrau +CronSaveSucess=Arbed yn llwyddiannus +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 +CronStatusInactiveBtn=Analluogi +CronTaskInactive=Mae'r swydd hon wedi'i hanalluogi (ddim wedi'i hamserlennu) +CronId=Id +CronClassFile=Enw ffeil gyda dosbarth +CronModuleHelp=Enw cyfeiriadur modiwl Dolibarr (hefyd yn gweithio gyda modiwl allanol Dolibarr).
    Er enghraifft i alw'r dull nôl gwrthrych Cynnyrch Dolibarr /htdocs/ cynnyrch /class/product.class.php, y gwerth ar gyfer modiwl yw
    ccze7180 a0478fdca4dz0 /class/product.class.php +CronClassFileHelp=Y llwybr cymharol ac enw'r ffeil i'w llwytho (mae'r llwybr yn gymharol â chyfeiriadur gwraidd gweinydd gwe).
    Er enghraifft i alw'r dull nôl o gwrthrych cynnyrch Dolibarr htdocs/product/class/ product.class.php , y gwerth ar gyfer enw ffeil dosbarth yw a0342fccfda19bz71080 a0342fccfda19bz71080 a0342fccfda19bz71080 a0342fccfda19bz7130 a0342fccfda19bz71080 a0342fccfda19bz7180 a0342fccfda19bz7180 a0342fccfda19bz7180 a0342fccfda19bz71080804 a0342fccfda19bz7180 a0342fccfda19bz7180 a0342fccfda. +CronObjectHelp=Enw'r gwrthrych i'w lwytho.
    Er enghraifft i alw'r dull nôl gwrthrych Cynnyrch Dolibarr /htdocs/product/class/product.class.php, y gwerth ar gyfer enw ffeil dosbarth yw
    Cynnyrch +CronMethodHelp=Y dull gwrthrych i'w lansio.
    Er enghraifft i alw'r dull nôl o gwrthrych Cynnyrch Dolibarr /htdocs/product/class/product.class.php, gwerth y dull yw
    fetch +CronArgsHelp=Mae'r dadleuon dull.
    Er enghraifft i alw'r dull nôl gwrthrych Cynnyrch Dolibarr /htdocs/product/class/product.class.php, gall y gwerth ar gyfer paramedrau fod yn
    0, ProductRef a0bae63758 +CronCommandHelp=Llinell orchymyn y system i'w gweithredu. +CronCreateJob=Creu Swydd Restredig newydd +CronFrom=Oddiwrth +# Info +# Common +CronType=Math o swydd +CronType_method=Dull galw Dosbarth PHP +CronType_command=Gorchymyn cregyn +CronCannotLoadClass=Methu llwytho ffeil dosbarth %s (i ddefnyddio dosbarth %s) +CronCannotLoadObject=Cafodd ffeil dosbarth %s ei llwytho, ond ni ddaethpwyd o hyd i wrthrych %s ynddi +UseMenuModuleToolsToAddCronJobs=Ewch i'r ddewislen " Cartref - Offer gweinyddol - Swyddi wedi'u hamserlennu " i weld a golygu swyddi sydd wedi'u hamserlennu. +JobDisabled=Swydd yn anabl +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) +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 +# 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 diff --git a/htdocs/langs/cy_GB/deliveries.lang b/htdocs/langs/cy_GB/deliveries.lang new file mode 100644 index 00000000000..a59d56f6963 --- /dev/null +++ b/htdocs/langs/cy_GB/deliveries.lang @@ -0,0 +1,33 @@ +# Dolibarr language file - Source file is en_US - deliveries +Delivery=Cyflwyno +DeliveryRef=Cyf Cludiad +DeliveryCard=Cerdyn derbynneb +DeliveryOrder=Derbynneb danfon +DeliveryDate=Dyddiad dosbarthu +CreateDeliveryOrder=Cynhyrchu derbynneb danfon +DeliveryStateSaved=Cyflwr dosbarthu wedi'i gadw +SetDeliveryDate=Gosod dyddiad cludo +ValidateDeliveryReceipt=Dilysu derbynneb danfon +ValidateDeliveryReceiptConfirm=A ydych yn siŵr eich bod am ddilysu'r dderbynneb danfon hon? +DeleteDeliveryReceipt=Dileu derbynneb danfon +DeleteDeliveryReceiptConfirm=A ydych yn siŵr eich bod am ddileu derbynneb danfon %s ? +DeliveryMethod=Dull cyflwyno +TrackingNumber=Rhif tracio +DeliveryNotValidated=Cyflwyno heb ei ddilysu +StatusDeliveryCanceled=Wedi'i ganslo +StatusDeliveryDraft=Drafft +StatusDeliveryValidated=Derbyniwyd +# merou PDF model +NameAndSignature=Enw a Llofnod: +ToAndDate=I ___________________________________ ar ____/_____/__________ +GoodStatusDeclaration=Wedi derbyn y nwyddau uchod mewn cyflwr da, +Deliverer=Dosbarthwr: +Sender=Anfonwr +Recipient=Derbynnydd +ErrorStockIsNotEnough=Does dim digon o stoc +Shippable=Shippable +NonShippable=Ddim yn Shippable +ShowShippableStatus=Dangos statws shippable +ShowReceiving=Dangos derbynneb danfoniad +NonExistentOrder=Trefn ddim yn bodoli +StockQuantitiesAlreadyAllocatedOnPreviousLines = Meintiau stoc a ddyrannwyd eisoes ar linellau blaenorol diff --git a/htdocs/langs/cy_GB/dict.lang b/htdocs/langs/cy_GB/dict.lang new file mode 100644 index 00000000000..9b640ef35a3 --- /dev/null +++ b/htdocs/langs/cy_GB/dict.lang @@ -0,0 +1,359 @@ +# Dolibarr language file - Source file is en_US - dict +CountryFR=Ffrainc +CountryBE=Gwlad Belg +CountryIT=Eidal +CountryES=Sbaen +CountryDE=Almaen +CountryCH=Swistir +# Warning, country code GB is for United Kingdom. UK Does not exists as country code in ISO standard. +CountryGB=Deyrnas Unedig +CountryUK=Deyrnas Unedig +CountryIE=Iwerddon +CountryCN=Tsieina +CountryTN=Tiwnisia +CountryUS=Unol Daleithiau +CountryMA=Morocco +CountryDZ=Algeria +CountryCA=Canada +CountryTG=I fynd +CountryGA=Gabon +CountryNL=yr Iseldiroedd +CountryHU=Hwngari +CountryRU=Rwsia +CountrySE=Sweden +CountryCI=Arfordir Ifori +CountrySN=Senegal +CountryAR=Ariannin +CountryCM=Camerŵn +CountryPT=Portiwgal +CountrySA=Sawdi Arabia +CountryMC=Monaco +CountryAU=Awstralia +CountrySG=Singapôr +CountryAF=Afghanistan +CountryAX=Ynysoedd Åland +CountryAL=Albania +CountryAS=Samoa Americanaidd +CountryAD=Andorra +CountryAO=Angola +CountryAI=Anguilla +CountryAQ=Antarctica +CountryAG=Antigua a Barbuda +CountryAM=Armenia +CountryAW=Arwba +CountryAT=Awstria +CountryAZ=Azerbaijan +CountryBS=Bahamas +CountryBH=Bahrain +CountryBD=Bangladesh +CountryBB=Barbados +CountryBY=Belarws +CountryBZ=Belize +CountryBJ=Benin +CountryBM=Bermuda +CountryBT=Bhutan +CountryBO=Bolivia +CountryBA=Bosnia a Herzegovina +CountryBW=Botswana +CountryBV=Ynys Bouvet +CountryBR=Brasil +CountryIO=Tiriogaeth Cefnfor India Prydain +CountryBN=Brunei Darussalam +CountryBG=Bwlgaria +CountryBF=Burkina Faso +CountryBI=Burundi +CountryKH=Cambodia +CountryCV=Cape Verde +CountryKY=Ynysoedd y Cayman +CountryCF=Gweriniaeth Canolbarth Affrica +CountryTD=Chad +CountryCL=Chile +CountryCX=Ynys y Nadolig +CountryCC=Ynysoedd Cocos (Keeling). +CountryCO=Colombia +CountryKM=Comoros +CountryCG=Congo +CountryCD=Congo, Gweriniaeth Ddemocrataidd y +CountryCK=Ynysoedd Cook +CountryCR=Costa Rica +CountryHR=Croatia +CountryCU=Ciwba +CountryCY=Cyprus +CountryCZ=Gweriniaeth Tsiec +CountryDK=Denmarc +CountryDJ=Djibouti +CountryDM=Dominica +CountryDO=Gweriniaeth Dominica +CountryEC=Ecuador +CountryEG=yr Aifft +CountrySV=El Salvador +CountryGQ=Gini Gyhydeddol +CountryER=Eritrea +CountryEE=Estonia +CountryET=Ethiopia +CountryFK=Ynysoedd Falkland +CountryFO=Ynysoedd Faroe +CountryFJ=Ynysoedd Fiji +CountryFI=Ffindir +CountryGF=Guiana Ffrengig +CountryPF=Polynesia Ffrainc +CountryTF=Tiriogaethau Deheuol Ffrainc +CountryGM=Gambia +CountryGE=Georgia +CountryGH=Ghana +CountryGI=Gibraltar +CountryGR=Groeg +CountryGL=Yr Ynys Las +CountryGD=Grenada +CountryGP=Guadeloupe +CountryGU=Gwam +CountryGT=Gwatemala +CountryGN=Gini +CountryGW=Gini-Bissau +CountryGY=Guyana +CountryHT=Haiti +CountryHM=Ynys Heard a McDonald +CountryVA=Sanctaidd Sanctaidd (Dinas-wladwriaeth y Fatican) +CountryHN=Honduras +CountryHK=Hong Kong +CountryIS=Gwlad yr Iâ +CountryIN=India +CountryID=Indonesia +CountryIR=Iran +CountryIQ=Irac +CountryIL=Israel +CountryJM=Jamaica +CountryJP=Japan +CountryJO=Iorddonen +CountryKZ=Casachstan +CountryKE=Cenia +CountryKI=Ciribati +CountryKP=Gogledd Corea +CountryKR=De Corea +CountryKW=Kuwait +CountryKG=Kyrgyzstan +CountryLA=Lao +CountryLV=Latfia +CountryLB=Libanus +CountryLS=Lesotho +CountryLR=Liberia +CountryLY=Libya +CountryLI=Liechtenstein +CountryLT=Lithwania +CountryLU=Lwcsembwrg +CountryMO=Macao +CountryMK=Macedonia, cyn Iwgoslafia o +CountryMG=Madagascar +CountryMW=Malawi +CountryMY=Malaysia +CountryMV=Maldives +CountryML=Mali +CountryMT=Malta +CountryMH=Ynysoedd Marshall +CountryMQ=Martinique +CountryMR=Mauritania +CountryMU=Mauritius +CountryYT=Mayotte +CountryMX=Mecsico +CountryFM=Micronesia +CountryMD=Moldofa +CountryMN=Mongolia +CountryMS=Monserrat +CountryMZ=Mozambique +CountryMM=Myanmar (Burma) +CountryNA=Namibia +CountryNR=Nauru +CountryNP=Nepal +CountryAN=Antilles yr Iseldiroedd +CountryNC=Caledonia Newydd +CountryNZ=Seland Newydd +CountryNI=Nicaragua +CountryNE=Niger +CountryNG=Nigeria +CountryNU=Niue +CountryNF=Ynys Norfolk +CountryMP=Ynysoedd Gogledd Mariana +CountryNO=Norwy +CountryOM=Oman +CountryPK=Pacistan +CountryPW=Palau +CountryPS=Tiriogaeth Palestina, Wedi ei meddiannu +CountryPA=Panama +CountryPG=Papwa Gini Newydd +CountryPY=Paraguay +CountryPE=Periw +CountryPH=Pilipinas +CountryPN=Ynysoedd Pitcairn +CountryPL=Gwlad Pwyl +CountryPR=Puerto Rico +CountryQA=Qatar +CountryRE=Aduniad +CountryRO=Rwmania +CountryRW=Rwanda +CountrySH=Santes Helena +CountryKN=Sant Crist a Nevis +CountryLC=Sant Lucia +CountryPM=Sant Pierre a Miquelon +CountryVC=Saint Vincent a'r Grenadines +CountryWS=Samoa +CountrySM=San Marino +CountryST=Sao Tome a Principe +CountryRS=Serbia +CountrySC=Seychelles +CountrySL=Sierra Leone +CountrySK=Slofacia +CountrySI=Slofenia +CountrySB=Ynysoedd Solomon +CountrySO=Somalia +CountryZA=De Affrica +CountryGS=De Georgia ac Ynysoedd Sandwich y De +CountryLK=Sri Lanca +CountrySD=Swdan +CountrySR=Suriname +CountrySJ=Svalbard a Jan Mayen +CountrySZ=Gwlad Swazi +CountrySY=Syriaeg +CountryTW=Taiwan +CountryTJ=Tajicistan +CountryTZ=Tanzania +CountryTH=Gwlad Thai +CountryTL=Timor-Leste +CountryTK=Tokelau +CountryTO=Tonga +CountryTT=Trinidad a Tobago +CountryTR=Twrci +CountryTM=Tyrcmenistan +CountryTC=Ynysoedd Turks a Caicos +CountryTV=Twfalw +CountryUG=Uganda +CountryUA=Wcráin +CountryAE=Emiradau Arabaidd Unedig +CountryUM=Ynysoedd Mân Ymylol yr Unol Daleithiau +CountryUY=Uruguay +CountryUZ=Wsbecistan +CountryVU=Vanuatu +CountryVE=Feneswela +CountryVN=Fiet-nam +CountryVG=Ynysoedd y Wyryf, Prydeinig +CountryVI=Ynysoedd y Wyryf, U.S. +CountryWF=Wallis a Futuna +CountryEH=Gorllewin y Sahara +CountryYE=Yemen +CountryZM=Zambia +CountryZW=Zimbabwe +CountryGG=Guernsey +CountryIM=Ynys Manaw +CountryJE=Jersey +CountryME=Montenegro +CountryBL=Sant Barthelemi +CountryMF=Sant Martin + +##### Civilities ##### +CivilityMME=Mrs. +CivilityMR=Mr. +CivilityMLE=Ms. +CivilityMTRE=Meistr +CivilityDR=Meddyg +##### Currencies ##### +Currencyeuros=Ewros +CurrencyAUD=Doler yr UA +CurrencySingAUD=Doler yr UA +CurrencyCAD=Dollars CAN +CurrencySingCAD=CAN Doler +CurrencyCHF=Ffranc y Swistir +CurrencySingCHF=Ffranc y Swistir +CurrencyEUR=Ewros +CurrencySingEUR=Ewro +CurrencyFRF=Ffrancwyr +CurrencySingFRF=Ffrancwr +CurrencyGBP=Punnoedd GB +CurrencySingGBP=Punt GB +CurrencyINR=Rwpi Indiaidd +CurrencySingINR=Rwpi Indiaidd +CurrencyMAD=Dirham +CurrencySingMAD=Dirham +CurrencyMGA=Ariary +CurrencySingMGA=Ariary +CurrencyMUR=Rwpi Mauritius +CurrencySingMUR=Mauritius rupee +CurrencyNOK=krones Norwy +CurrencySingNOK=kronas Norwy +CurrencyTND=dinars Tiwnisia +CurrencySingTND=Ingo Tiwnisia +CurrencyUSD=Doler yr Unol Daleithiau +CurrencySingUSD=Doler yr UD +CurrencyUAH=Hryvnia +CurrencySingUAH=Hryvnia +CurrencyXAF=Ffranc CFA BEAC +CurrencySingXAF=Ffranc CFA BEAC +CurrencyXOF=Ffranc CFA BCEAO +CurrencySingXOF=Ffranc CFA BCEAO +CurrencyXPF=Ffranc CFP +CurrencySingXPF=CFP Ffranc +CurrencyCentEUR=cents +CurrencyCentSingEUR=cant +CurrencyCentINR=paisa +CurrencyCentSingINR=pais +CurrencyThousandthSingTND=milfed +#### Input reasons ##### +DemandReasonTypeSRC_INTE=Rhyngrwyd +DemandReasonTypeSRC_CAMP_MAIL=Ymgyrch bostio +DemandReasonTypeSRC_CAMP_EMAIL=Ymgyrch e-bostio +DemandReasonTypeSRC_CAMP_PHO=Ymgyrch ffôn +DemandReasonTypeSRC_CAMP_FAX=Ymgyrch ffacs +DemandReasonTypeSRC_COMM=Cyswllt masnachol +DemandReasonTypeSRC_SHOP=Cyswllt siop +DemandReasonTypeSRC_WOM=Ar lafar gwlad +DemandReasonTypeSRC_PARTNER=Partner +DemandReasonTypeSRC_EMPLOYEE=Gweithiwr +DemandReasonTypeSRC_SPONSORING=Nawdd +DemandReasonTypeSRC_SRC_CUSTOMER=Cyswllt cwsmer sy'n dod i mewn +#### Paper formats #### +PaperFormatEU4A0=Fformat 4A0 +PaperFormatEU2A0=Fformat 2A0 +PaperFormatEUA0=Fformat A0 +PaperFormatEUA1=Fformat A1 +PaperFormatEUA2=Fformat A2 +PaperFormatEUA3=Fformat A3 +PaperFormatEUA4=Fformat A4 +PaperFormatEUA5=Fformat A5 +PaperFormatEUA6=Fformat A6 +PaperFormatUSLETTER=Fformat Llythyr UD +PaperFormatUSLEGAL=Fformat Cyfreithiol UDA +PaperFormatUSEXECUTIVE=Fformat Gweithredwr UDA +PaperFormatUSLEDGER=Fformat Cyfriflyfr/Tabloid +PaperFormatCAP1=Fformat P1 Canada +PaperFormatCAP2=Fformat P2 Canada +PaperFormatCAP3=Fformat P3 Canada +PaperFormatCAP4=Fformat P4 Canada +PaperFormatCAP5=Fformat P5 Canada +PaperFormatCAP6=Fformat P6 Canada +#### Expense report categories #### +ExpAutoCat=Car +ExpCycloCat=Moped +ExpMotoCat=Beic modur +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 a mwy +ExpAuto4PCV=4 CV a mwy +ExpAuto5PCV=5 CV a mwy +ExpAuto6PCV=6 CV a mwy +ExpAuto7PCV=7 CV a mwy +ExpAuto8PCV=8 CV a mwy +ExpAuto9PCV=9 CV a mwy +ExpAuto10PCV=10 CV a mwy +ExpAuto11PCV=11 CV a mwy +ExpAuto12PCV=12 CV a mwy +ExpAuto13PCV=13 CV a mwy +ExpCyclo=Cynhwysedd yn is i 50cm3 +ExpMoto12CV=Beic modur 1 neu 2 CV +ExpMoto345CV=Beic modur 3, 4 neu 5 CV +ExpMoto5PCV=CV beic modur 5 a mwy diff --git a/htdocs/langs/cy_GB/donations.lang b/htdocs/langs/cy_GB/donations.lang new file mode 100644 index 00000000000..9dc4ad27d1c --- /dev/null +++ b/htdocs/langs/cy_GB/donations.lang @@ -0,0 +1,35 @@ +# Dolibarr language file - Source file is en_US - donations +Donation=Rhodd +Donations=Rhoddion +DonationRef=Cyf rhodd. +Donor=Rhoddwr +AddDonation=Creu rhodd +NewDonation=Rhodd newydd +DeleteADonation=Dileu rhodd +ConfirmDeleteADonation=Ydych chi'n siŵr eich bod am ddileu'r rhodd hon? +PublicDonation=Rhodd gyhoeddus +DonationsArea=Ardal rhoddion +DonationStatusPromiseNotValidated=Addewid drafft +DonationStatusPromiseValidated=Addewid wedi'i ddilysu +DonationStatusPaid=Rhodd a dderbyniwyd +DonationStatusPromiseNotValidatedShort=Drafft +DonationStatusPromiseValidatedShort=Wedi'i ddilysu +DonationStatusPaidShort=Derbyniwyd +DonationTitle=Derbynneb rhodd +DonationDate=Dyddiad rhoi +DonationDatePayment=Dyddiad talu +ValidPromess=Dilysu addewid +DonationReceipt=Derbynneb rhodd +DonationsModels=Dogfennau modelau ar gyfer derbynebau rhoddion +LastModifiedDonations=Y rhoddion diweddaraf %s wedi'u haddasu +DonationRecipient=Derbynnydd rhodd +IConfirmDonationReception=Mae'r derbynnydd yn datgan derbyniad, fel rhodd, o'r swm canlynol +MinimumAmount=Y swm lleiaf yw %s +FreeTextOnDonations=Testun am ddim i'w ddangos yn y troedyn +FrenchOptions=Opsiynau ar gyfer Ffrainc +DONATION_ART200=Dangoswch erthygl 200 o CGI os ydych yn bryderus +DONATION_ART238=Dangoswch erthygl 238 o CGI os ydych yn bryderus +DONATION_ART885=Dangoswch erthygl 885 o CGI os ydych yn bryderus +DonationPayment=Taliad rhodd +DonationValidated=Rhodd %s wedi'i ddilysu +DonationUseThirdparties=Defnyddio trydydd parti presennol fel cyfesurynnau rhoddwyr diff --git a/htdocs/langs/cy_GB/ecm.lang b/htdocs/langs/cy_GB/ecm.lang new file mode 100644 index 00000000000..ba165c03711 --- /dev/null +++ b/htdocs/langs/cy_GB/ecm.lang @@ -0,0 +1,49 @@ +# Dolibarr language file - Source file is en_US - ecm +ECMNbOfDocs=Nifer y dogfennau yn y cyfeiriadur +ECMSection=Cyfeiriadur +ECMSectionManual=Cyfeiriadur â llaw +ECMSectionAuto=Cyfeiriadur awtomatig +ECMSectionsManual=Coeden â llaw +ECMSectionsAuto=Coeden awtomatig +ECMSections=Cyfeirlyfrau +ECMRoot=Gwraidd ECM +ECMNewSection=Cyfeiriadur newydd +ECMAddSection=Ychwanegu cyfeiriadur +ECMCreationDate=Dyddiad creu +ECMNbOfFilesInDir=Nifer y ffeiliau yn y cyfeiriadur +ECMNbOfSubDir=Nifer yr is-gyfeiriaduron +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. +ECMSectionWasRemoved=Cyfeiriadur %s wedi'i ddileu. +ECMSectionWasCreated=Cyfeiriadur %s wedi'i greu. +ECMSearchByKeywords=Chwilio yn ôl allweddeiriau +ECMSearchByEntity=Chwilio yn ôl gwrthrych +ECMSectionOfDocuments=Cyfeirlyfrau o ddogfennau +ECMTypeAuto=Awtomatig +ECMDocsBy=Dogfennau sy'n gysylltiedig ag %s +ECMNoDirectoryYet=Dim cyfeiriadur wedi'i greu +ShowECMSection=Dangos cyfeiriadur +DeleteSection=Dileu cyfeiriadur +ConfirmDeleteSection=A allwch gadarnhau eich bod am ddileu'r cyfeiriadur %s ? +ECMDirectoryForFiles=Cyfeiriadur cymharol ar gyfer ffeiliau +CannotRemoveDirectoryContainsFilesOrDirs=Nid yw'n bosibl ei ddileu oherwydd ei fod yn cynnwys rhai ffeiliau neu is-gyfeiriaduron +CannotRemoveDirectoryContainsFiles=Nid yw'n bosibl ei ddileu oherwydd ei fod yn cynnwys rhai ffeiliau +ECMFileManager=Rheolwr ffeil +ECMSelectASection=Dewiswch gyfeiriadur yn y goeden... +DirNotSynchronizedSyncFirst=Mae'n ymddangos bod y cyfeiriadur hwn wedi'i greu neu ei addasu y tu allan i fodiwl ECM. Rhaid i chi glicio ar y botwm "Ailsyncroneiddio" yn gyntaf i gysoni disg a chronfa ddata i gael cynnwys y cyfeiriadur hwn. +ReSyncListOfDir=Rhestr ail-gydamseru o gyfeiriaduron +HashOfFileContent=Hash o gynnwys ffeil +NoDirectoriesFound=Heb ganfod cyfeiriaduron +FileNotYetIndexedInDatabase=Ffeil heb ei mynegeio i'r gronfa ddata eto (ceisiwch ei hail-lwytho i fyny) +ExtraFieldsEcmFiles=Ffeiliau Ecm Extrafields +ExtraFieldsEcmDirectories=Cyfeiriaduron Ecm Extrafields +ECMSetup=Gosod ECM +GenerateImgWebp=Dyblygu pob delwedd gyda fersiwn arall gyda fformat .webp +ConfirmGenerateImgWebp=Os byddwch yn cadarnhau, byddwch yn cynhyrchu delwedd mewn fformat .webp ar gyfer yr holl ddelweddau sydd yn y ffolder hwn ar hyn o bryd (nid yw is-ffolderi wedi'u cynnwys)... +ConfirmImgWebpCreation=Cadarnhau dyblygu pob delwedd +SucessConvertImgWebp=Llwyddwyd i ddyblygu delweddau +ECMDirName=Enw cyfeiriad +ECMParentDirectory=Cyfeiriadur rhieni diff --git a/htdocs/langs/cy_GB/errors.lang b/htdocs/langs/cy_GB/errors.lang new file mode 100644 index 00000000000..8e58924da0f --- /dev/null +++ b/htdocs/langs/cy_GB/errors.lang @@ -0,0 +1,349 @@ +# Dolibarr language file - Source file is en_US - errors + +# No errors +NoErrorCommitIsDone=Dim camgymeriad, rydym yn ymrwymo +# Errors +ErrorButCommitIsDone=Canfuwyd gwallau ond rydym yn dilysu er gwaethaf hyn +ErrorBadEMail=Mae'r e-bost %s yn anghywir +ErrorBadMXDomain=Mae e-bost %s yn ymddangos yn anghywir (nid oes gan y parth gofnod MX dilys) +ErrorBadUrl=Mae Url %s yn anghywir +ErrorBadValueForParamNotAString=Gwerth gwael ar gyfer eich paramedr. Mae'n atodi'n gyffredinol pan fydd cyfieithu ar goll. +ErrorRefAlreadyExists=Mae cyfeirnod %s eisoes yn bodoli. +ErrorTitleAlreadyExists=Mae teitl %s eisoes yn bodoli. +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. +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 '. +ErrorFailToDeleteFile=Wedi methu tynnu ffeil ' %s '. +ErrorFailToCreateFile=Wedi methu creu ffeil ' %s '. +ErrorFailToRenameDir=Wedi methu ag ailenwi'r cyfeiriadur ' %s ' i ' %s a09a4b739zf17 '. +ErrorFailToCreateDir=Wedi methu creu cyfeiriadur ' %s '. +ErrorFailToDeleteDir=Wedi methu dileu cyfeiriadur ' %s '. +ErrorFailToMakeReplacementInto=Wedi methu â gwneud amnewid yn ffeil ' %s '. +ErrorFailToGenerateFile=Wedi methu cynhyrchu ffeil ' %s '. +ErrorThisContactIsAlreadyDefinedAsThisType=Mae'r cyswllt hwn eisoes wedi'i ddiffinio fel cyswllt ar gyfer y math hwn. +ErrorCashAccountAcceptsOnlyCashMoney=Mae'r cyfrif banc hwn yn gyfrif arian parod, felly mae'n derbyn taliadau o fath arian parod yn unig. +ErrorFromToAccountsMustDiffers=Rhaid i gyfrifon banc ffynhonnell a thargedau fod yn wahanol. +ErrorBadThirdPartyName=Gwerth gwael ar gyfer enw trydydd parti +ForbiddenBySetupRules=Wedi'i wahardd gan reolau gosod +ErrorProdIdIsMandatory=Mae'r %s yn orfodol +ErrorAccountancyCodeCustomerIsMandatory=Mae cod cyfrifeg cwsmer %s yn orfodol +ErrorBadCustomerCodeSyntax=Cystrawen ddrwg ar gyfer cod cwsmer +ErrorBadBarCodeSyntax=Cystrawen ddrwg ar gyfer cod bar. Efallai eich bod wedi gosod math cod bar gwael neu wedi diffinio mwgwd cod bar ar gyfer rhifo nad yw'n cyfateb i'r gwerth a sganiwyd. +ErrorCustomerCodeRequired=Angen cod cwsmer +ErrorBarCodeRequired=Angen cod bar +ErrorCustomerCodeAlreadyUsed=Cod cwsmer eisoes wedi'i ddefnyddio +ErrorBarCodeAlreadyUsed=Cod bar a ddefnyddiwyd eisoes +ErrorPrefixRequired=Angen rhagddodiad +ErrorBadSupplierCodeSyntax=Cystrawen ddrwg ar gyfer cod gwerthwr +ErrorSupplierCodeRequired=Angen cod gwerthwr +ErrorSupplierCodeAlreadyUsed=Cod gwerthwr eisoes wedi'i ddefnyddio +ErrorBadParameters=Paramedrau drwg +ErrorWrongParameters=Paramedrau anghywir neu ar goll +ErrorBadValueForParameter=Gwerth anghywir '%s' ar gyfer paramedr '%s' +ErrorBadImageFormat=Nid oes gan ffeil delwedd fformat a gefnogir (Nid yw eich PHP yn cefnogi swyddogaethau i drosi delweddau o'r fformat hwn) +ErrorBadDateFormat=Mae fformat dyddiad anghywir gan werth '%s' +ErrorWrongDate=Nid yw'r dyddiad yn gywir! +ErrorFailedToWriteInDir=Wedi methu ag ysgrifennu yn y cyfeiriadur %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. +ErrorSubjectIsRequired=Mae angen pwnc yr e-bost +ErrorFailedToCreateDir=Wedi methu creu cyfeiriadur. Gwiriwch fod gan ddefnyddiwr gweinydd Gwe ganiatâd i ysgrifennu i gyfeiriadur dogfennau Dolibarr. Os yw paramedr safe_mode wedi'i alluogi ar y PHP hwn, gwiriwch fod ffeiliau php Dolibarr yn berchen i ddefnyddiwr gweinydd gwe (neu grŵp). +ErrorNoMailDefinedForThisUser=Dim post wedi'i ddiffinio ar gyfer y defnyddiwr hwn +ErrorSetupOfEmailsNotComplete=Nid yw gosod e-byst yn gyflawn +ErrorFeatureNeedJavascript=Mae angen javascript i weithredu'r nodwedd hon i weithio. Newidiwch hyn yn y gosodiad - arddangos. +ErrorTopMenuMustHaveAParentWithId0=Ni all dewislen o'r math 'Top' gael dewislen rhiant. Rhowch 0 yn newislen rhiant neu dewiswch ddewislen o'r math 'Chwith'. +ErrorLeftMenuMustHaveAParentId=Rhaid i ddewislen o'r math 'Chwith' gael ID rhiant. +ErrorFileNotFound=Ffeil %s heb ei chanfod (Llwybr gwael, caniatâd anghywir neu fynediad wedi'i wrthod gan PHP openbasedir neu safe_mode parameter) +ErrorDirNotFound=Cyfeiriadur %s heb ei ganfod (Llwybr gwael, caniatâd anghywir neu fynediad wedi'i wrthod gan PHP openbasedir neu safe_mode parameter) +ErrorFunctionNotAvailableInPHP=Mae angen swyddogaeth %s ar gyfer y nodwedd hon ond nid yw ar gael yn y fersiwn / gosodiad hwn o PHP. +ErrorDirAlreadyExists=Mae cyfeiriadur gyda'r enw hwn eisoes yn bodoli. +ErrorFileAlreadyExists=Mae ffeil gyda'r enw hwn eisoes yn bodoli. +ErrorDestinationAlreadyExists=Mae ffeil arall gyda'r enw %s eisoes yn bodoli. +ErrorPartialFile=Ffeil heb ei dderbyn yn gyfan gwbl gan y gweinydd. +ErrorNoTmpDir=Nid yw cyfeiriad dros dro %s yn bodoli. +ErrorUploadBlockedByAddon=Llwythiad wedi'i rwystro gan ategyn PHP/Apache. +ErrorFileSizeTooLarge=Mae maint y ffeil yn rhy fawr neu ni ddarparwyd y ffeil. +ErrorFieldTooLong=Mae maes %s yn rhy hir. +ErrorSizeTooLongForIntType=Maint yn rhy hir ar gyfer math int (uchafswm digid %s) +ErrorSizeTooLongForVarcharType=Maint yn rhy hir ar gyfer math o linyn (uchafswm siars %s) +ErrorNoValueForSelectType=Llenwch y gwerth ar gyfer y rhestr ddethol +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. +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. +ErrorLDAPSetupNotComplete=Nid yw paru Dolibarr-LDAP wedi'i gwblhau. +ErrorLDAPMakeManualTest=Mae ffeil .ldif wedi'i chynhyrchu yn y cyfeiriadur %s. Ceisiwch ei lwytho â llaw o'r llinell orchymyn i gael mwy o wybodaeth am wallau. +ErrorCantSaveADoneUserWithZeroPercentage=Methu â chadw gweithred gyda "statws heb ei gychwyn" os yw maes "done by" hefyd wedi'i lenwi. +ErrorRefAlreadyExists=Mae cyfeirnod %s eisoes yn bodoli. +ErrorPleaseTypeBankTransactionReportName=Rhowch enw'r cyfriflen banc lle mae'n rhaid rhoi gwybod am y cofnod (Fformat BBBB neu BBBBBB) +ErrorRecordHasChildren=Wedi methu â dileu cofnod gan fod ganddo rai cofnodion plant. +ErrorRecordHasAtLeastOneChildOfType=Mae gan Object %s o leiaf un plentyn o'r math %s +ErrorRecordIsUsedCantDelete=Methu dileu cofnod. Mae eisoes yn cael ei ddefnyddio neu ei gynnwys mewn gwrthrych arall. +ErrorModuleRequireJavascript=Rhaid peidio ag analluogi Javascript i gael y nodwedd hon yn gweithio. I alluogi/analluogi Javascript, ewch i ddewislen Hafan-> Gosod-> Arddangos. +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 +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 +ErrorModuleSetupNotComplete=Mae'n ymddangos bod gosodiad y modiwl %s yn anghyflawn. Ewch Adref - Gosod - Modiwlau i'w cwblhau. +ErrorBadMask=Gwall ar y mwgwd +ErrorBadMaskFailedToLocatePosOfSequence=Gwall, mwgwd heb rif dilyniant +ErrorBadMaskBadRazMonth=Gwall, gwerth ailosod gwael +ErrorMaxNumberReachForThisMask=Cyrhaeddwyd y nifer uchaf ar gyfer y mwgwd hwn +ErrorCounterMustHaveMoreThan3Digits=Rhaid i'r cownter fod â mwy na 3 digid +ErrorSelectAtLeastOne=Gwall, dewiswch o leiaf un cofnod. +ErrorDeleteNotPossibleLineIsConsolidated=Dileu ddim yn bosibl oherwydd bod cofnod yn gysylltiedig â thrafodiad banc sy'n cael ei gymodi +ErrorProdIdAlreadyExist=%s yn cael ei neilltuo i draean arall +ErrorFailedToSendPassword=Wedi methu ag anfon cyfrinair +ErrorFailedToLoadRSSFile=Yn methu â chael porthiant RSS. Ceisiwch ychwanegu MAIN_SIMPLEXMLLOAD_DEBUG cyson os nad yw negeseuon gwall yn rhoi digon o wybodaeth. +ErrorForbidden=Mynediad wedi ei wrthod.
    Rydych yn ceisio cyrchu tudalen, ardal neu nodwedd modiwl anabl neu heb fod mewn sesiwn wedi'i dilysu neu nad yw'n cael ei chaniatáu i'ch defnyddiwr. +ErrorForbidden2=Gall eich gweinyddwr Dolibarr ddiffinio caniatâd ar gyfer y mewngofnodi hwn o ddewislen %s->%s. +ErrorForbidden3=Mae'n ymddangos nad yw Dolibarr yn cael ei ddefnyddio trwy sesiwn ddilysu. Edrychwch ar ddogfennaeth gosod Dolibarr i wybod sut i reoli dilysiadau (htaccess, mod_auth neu arall...). +ErrorForbidden4=Sylwch: cliriwch gwcis eich porwr i ddinistrio sesiynau presennol ar gyfer y mewngofnodi hwn. +ErrorNoImagickReadimage=Nid yw Class Imagick i'w gael yn y PHP hwn. Ni all rhagolwg fod ar gael. Gall gweinyddwyr analluogi'r tab hwn o Setup menu - Display. +ErrorRecordAlreadyExists=Mae'r cofnod eisoes yn bodoli +ErrorLabelAlreadyExists=Mae'r label hwn yn bodoli eisoes +ErrorCantReadFile=Wedi methu darllen ffeil '%s' +ErrorCantReadDir=Wedi methu darllen cyfeiriadur '%s' +ErrorBadLoginPassword=Gwerth gwael ar gyfer mewngofnodi neu gyfrinair +ErrorLoginDisabled=Mae eich cyfrif wedi'i analluogi +ErrorFailedToRunExternalCommand=Wedi methu rhedeg gorchymyn allanol. Gwiriwch ei fod ar gael ac yn rhedegadwy gan eich defnyddiwr gweinydd PHP. Gwiriwch hefyd nad yw'r gorchymyn wedi'i ddiogelu ar lefel y gragen gan haen ddiogelwch fel offer. +ErrorFailedToChangePassword=Wedi methu â newid cyfrinair +ErrorLoginDoesNotExists=Ni fu modd dod o hyd i ddefnyddiwr â mewngofnodi %s . +ErrorLoginHasNoEmail=Nid oes gan y defnyddiwr hwn unrhyw gyfeiriad e-bost. Erthylu'r broses. +ErrorBadValueForCode=Gwerth gwael ar gyfer cod diogelwch. Ceisiwch eto gyda gwerth newydd... +ErrorBothFieldCantBeNegative=Ni all meysydd %s ac %s fod yn negyddol +ErrorFieldCantBeNegativeOnInvoice=Ni all maes %s fod yn negyddol ar y math hwn o anfoneb. Os oes angen i chi ychwanegu llinell ddisgownt, crëwch y gostyngiad yn gyntaf (o faes '%s' mewn cerdyn trydydd parti) a'i gymhwyso i'r anfoneb. +ErrorLinesCantBeNegativeForOneVATRate=Ni all cyfanswm y llinellau (net o dreth) fod yn negyddol ar gyfer cyfradd TAW nad yw'n nwl a roddir (Canfuwyd cyfanswm negyddol ar gyfer cyfradd TAW %s %%). +ErrorLinesCantBeNegativeOnDeposits=Ni all llinellau fod yn negyddol mewn blaendal. Byddwch yn wynebu problemau pan fydd angen i chi ddefnyddio'r blaendal yn yr anfoneb derfynol os gwnewch hynny. +ErrorQtyForCustomerInvoiceCantBeNegative=Ni all y swm ar gyfer llinell i anfonebau cwsmeriaid fod yn negyddol +ErrorWebServerUserHasNotPermission=Nid oes gan y cyfrif defnyddiwr %s a ddefnyddir i weithredu gweinydd gwe ganiatâd ar gyfer hynny +ErrorNoActivatedBarcode=Dim math cod bar wedi'i actifadu +ErrUnzipFails=Wedi methu dadsipio %s gyda ZipArchive +ErrNoZipEngine=Dim injan i zipio/dadsipio ffeil %s yn y PHP hwn +ErrorFileMustBeADolibarrPackage=Rhaid i'r ffeil %s fod yn becyn zip Dolibarr +ErrorModuleFileRequired=Rhaid i chi ddewis ffeil pecyn modiwl Dolibarr +ErrorPhpCurlNotInstalled=Nid yw'r PHP CURL wedi'i osod, mae hyn yn hanfodol i siarad â Paypal +ErrorFailedToAddToMailmanList=Wedi methu ychwanegu cofnod %s i restr Mailman %s neu sylfaen SPIP +ErrorFailedToRemoveToMailmanList=Wedi methu tynnu cofnod %s i restr Mailman %s neu sylfaen SPIP +ErrorNewValueCantMatchOldValue=Ni all gwerth newydd fod yn hafal i'r hen un +ErrorFailedToValidatePasswordReset=Wedi methu ag ailosod y cyfrinair. Efallai bod y gwaith ail-wneud eisoes wedi'i wneud (dim ond un tro y gellir defnyddio'r ddolen hon). Os na, ceisiwch ailgychwyn y broses reinit. +ErrorToConnectToMysqlCheckInstance=Cysylltu i gronfa ddata yn methu. Gwiriwch fod gweinydd cronfa ddata yn rhedeg (er enghraifft, gyda mysql / mariadb, gallwch ei lansio o'r llinell orchymyn gyda 'cychwyn gwasanaeth mysql sudo'). +ErrorFailedToAddContact=Wedi methu ag ychwanegu cyswllt +ErrorDateMustBeBeforeToday=Rhaid i'r dyddiad fod yn is na heddiw +ErrorDateMustBeInFuture=Rhaid i'r dyddiad fod yn fwy na heddiw +ErrorPaymentModeDefinedToWithoutSetup=Gosodwyd modd talu i deipio %s ond ni chwblhawyd gosod Anfoneb modiwl i ddiffinio gwybodaeth i'w dangos ar gyfer y dull talu hwn. +ErrorPHPNeedModule=Gwall, rhaid bod modiwl %s wedi'i osod ar eich PHP i ddefnyddio'r nodwedd hon. +ErrorOpenIDSetupNotComplete=Rydych yn gosod ffeil ffurfweddu Dolibarr i ganiatáu dilysu OpenID, ond nid yw URL gwasanaeth OpenID wedi'i ddiffinio i %s cyson +ErrorWarehouseMustDiffers=Rhaid i warysau ffynhonnell a tharged fod yn wahanol +ErrorBadFormat=Fformat gwael! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Gwall, nid yw'r aelod hwn wedi'i gysylltu ag unrhyw drydydd parti eto. Cysylltwch aelod â thrydydd parti presennol neu crëwch drydydd parti newydd cyn creu tanysgrifiad gydag anfoneb. +ErrorThereIsSomeDeliveries=Gwall, mae rhai danfoniadau yn gysylltiedig â'r llwyth hwn. Gwrthodwyd y dileu. +ErrorCantDeletePaymentReconciliated=Ni fu modd dileu taliad a oedd wedi cynhyrchu cofnod banc a gysonwyd +ErrorCantDeletePaymentSharedWithPayedInvoice=Ni fu modd dileu taliad a rennir gan o leiaf un anfoneb gyda statws Talwyd +ErrorPriceExpression1=Methu aseinio i '%s' cyson +ErrorPriceExpression2=Methu ailddiffinio swyddogaeth adeiledig '%s' +ErrorPriceExpression3=Newidyn anniffiniedig '%s' yn niffiniad swyddogaeth +ErrorPriceExpression4=Cymeriad anghyfreithlon '%s' +ErrorPriceExpression5='%s' annisgwyl +ErrorPriceExpression6=Nifer anghywir o ddadleuon (%s wedi'i roi, %s wedi'i ddisgwyl) +ErrorPriceExpression8=Gweithredwr annisgwyl '%s' +ErrorPriceExpression9=Digwyddodd gwall annisgwyl +ErrorPriceExpression10=Gweithredwr '%s' yn brin o operand +ErrorPriceExpression11=Disgwyl '%s' +ErrorPriceExpression14=Rhannu gan sero +ErrorPriceExpression17=Newidyn anniffiniedig '%s' +ErrorPriceExpression19=Mynegiant heb ei ganfod +ErrorPriceExpression20=Mynegiant gwag +ErrorPriceExpression21=Canlyniad gwag '%s' +ErrorPriceExpression22=Canlyniad negyddol '%s' +ErrorPriceExpression23=Newidyn anhysbys neu heb ei osod '%s' yn %s +ErrorPriceExpression24=Mae '%s' amrywiol yn bodoli ond nid oes ganddo unrhyw werth +ErrorPriceExpressionInternal=Gwall mewnol '%s' +ErrorPriceExpressionUnknown=Gwall anhysbys '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Rhaid i warysau ffynhonnell a tharged fod yn wahanol +ErrorTryToMakeMoveOnProductRequiringBatchData=Gwall, wrth geisio symud stoc heb lawer o wybodaeth/gwybodaeth gyfresol, ar gynnyrch '%s' sy'n gofyn am wybodaeth lot/cyfres +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Rhaid i bob derbyniad a recordiwyd gael ei ddilysu (cymeradwyo neu wrthod) yn gyntaf cyn cael caniatâd i wneud hyn +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Rhaid i bob derbyniad a recordiwyd gael ei ddilysu (cymeradwyo) yn gyntaf cyn cael caniatâd i wneud hyn +ErrorGlobalVariableUpdater0=Cais HTTP wedi methu gyda gwall '%s' +ErrorGlobalVariableUpdater1=Fformat JSON annilys '%s' +ErrorGlobalVariableUpdater2=Paramedr ar goll '%s' +ErrorGlobalVariableUpdater3=Ni chanfuwyd y data y gofynnwyd amdano yn y canlyniad +ErrorGlobalVariableUpdater4=Methodd cleient SEBON gyda gwall '%s' +ErrorGlobalVariableUpdater5=Dim newidyn byd-eang wedi'i ddewis +ErrorFieldMustBeANumeric=Rhaid i faes %s fod yn werth rhifol +ErrorMandatoryParametersNotProvided=Paramedr(au) gorfodol heb eu darparu +ErrorOppStatusRequiredIfAmount=Rydych chi'n pennu swm amcangyfrifedig ar gyfer yr arweiniad hwn. Felly mae'n rhaid i chi hefyd nodi ei statws. +ErrorFailedToLoadModuleDescriptorForXXX=Wedi methu llwytho dosbarth disgrifydd modiwl ar gyfer %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Diffiniad Gwael o Arae Dewislen Mewn Disgrifydd Modiwl (gwerth drwg ar gyfer fk_menu allweddol) +ErrorSavingChanges=Mae gwall wedi digwydd wrth gadw'r newidiadau +ErrorWarehouseRequiredIntoShipmentLine=Mae angen warws ar y llinell i'w llongio +ErrorFileMustHaveFormat=Rhaid i'r ffeil fod â fformat %s +ErrorFilenameCantStartWithDot=Ni all enw ffeil ddechrau gyda '.' +ErrorSupplierCountryIsNotDefined=Nid yw gwlad y gwerthwr hwn wedi'i ddiffinio. Cywirwch hyn yn gyntaf. +ErrorsThirdpartyMerge=Wedi methu ag uno'r ddwy record. Cais wedi'i ganslo. +ErrorStockIsNotEnoughToAddProductOnOrder=Nid yw stoc yn ddigon i gynnyrch %s ei ychwanegu at archeb newydd. +ErrorStockIsNotEnoughToAddProductOnInvoice=Nid yw stoc yn ddigon i gynnyrch %s ei ychwanegu at anfoneb newydd. +ErrorStockIsNotEnoughToAddProductOnShipment=Nid yw stoc yn ddigon i gynnyrch %s ei ychwanegu at lwyth newydd. +ErrorStockIsNotEnoughToAddProductOnProposal=Nid yw stoc yn ddigon i gynnyrch %s ei ychwanegu at gynnig newydd. +ErrorFailedToLoadLoginFileForMode=Wedi methu â chael yr allwedd mewngofnodi ar gyfer modd '%s'. +ErrorModuleNotFound=Ni chanfuwyd ffeil y modiwl. +ErrorFieldAccountNotDefinedForBankLine=Gwerth ar gyfer Cyfrifyddu heb ei ddiffinio ar gyfer llinell ffynhonnell id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Gwerth ar gyfer Cyfrifyddu heb ei ddiffinio ar gyfer anfoneb id %s (%s) +ErrorFieldAccountNotDefinedForLine=Gwerth ar gyfer Cyfrifyddu heb ei ddiffinio ar gyfer y llinell (%s) +ErrorBankStatementNameMustFollowRegex=Gwall, rhaid i enw cyfriflen banc ddilyn y rheol gystrawen ganlynol %s +ErrorPhpMailDelivery=Gwiriwch nad ydych yn defnyddio nifer rhy uchel o dderbynwyr ac nad yw cynnwys eich e-bost yn debyg i Sbam. Gofynnwch hefyd i'ch gweinyddwr wirio wal dân a ffeiliau logiau gweinydd am wybodaeth fwy cyflawn. +ErrorUserNotAssignedToTask=Rhaid neilltuo defnyddiwr i'r dasg i allu nodi'r amser a dreuliwyd. +ErrorTaskAlreadyAssigned=Tasg eisoes wedi'i neilltuo i'r defnyddiwr +ErrorModuleFileSeemsToHaveAWrongFormat=Mae'n ymddangos bod gan y pecyn modiwl fformat anghywir. +ErrorModuleFileSeemsToHaveAWrongFormat2=Rhaid bod o leiaf un cyfeiriadur gorfodol yn sip y modiwl: %s neu %s a0a65fz01 +ErrorFilenameDosNotMatchDolibarrPackageRules=Nid yw enw'r pecyn modiwl ( %s ) yn cyd-fynd â chystrawen yr enw disgwyliedig: %s a0765d9 +ErrorDuplicateTrigger=Gwall, dyblyg enw sbardun %s. Eisoes wedi'i lwytho o %s. +ErrorNoWarehouseDefined=Gwall, dim warysau wedi'u diffinio. +ErrorBadLinkSourceSetButBadValueForRef=Nid yw'r ddolen a ddefnyddiwch yn ddilys. Diffinnir 'ffynhonnell' ar gyfer taliad, ond nid yw gwerth 'cyf' yn ddilys. +ErrorTooManyErrorsProcessStopped=Gormod o wallau. Stopiwyd y broses. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Nid yw dilysu màs yn bosibl pan fydd opsiwn i gynyddu/lleihau stoc yn cael ei osod ar y cam hwn (rhaid i chi ddilysu fesul un er mwyn i chi allu diffinio'r warws i gynyddu/gostwng) +ErrorObjectMustHaveStatusDraftToBeValidated=Rhaid i wrthrych %s gael statws 'Drafft' i'w ddilysu. +ErrorObjectMustHaveLinesToBeValidated=Rhaid i wrthrych %s gael llinellau i'w dilysu. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Dim ond anfonebau dilys y gellir eu hanfon gan ddefnyddio'r weithred dorfol "Anfon drwy e-bost". +ErrorChooseBetweenFreeEntryOrPredefinedProduct=Rhaid i chi ddewis a yw'r erthygl yn gynnyrch wedi'i ddiffinio ymlaen llaw ai peidio +ErrorDiscountLargerThanRemainToPaySplitItBefore=Mae'r gostyngiad rydych chi'n ceisio ei gymhwyso yn fwy na'r hyn sy'n weddill i'w dalu. Rhannwch y gostyngiad yn 2 ostyngiad llai o'r blaen. +ErrorFileNotFoundWithSharedLink=Ni chanfuwyd y ffeil. Efallai fod yr allwedd rhannu wedi'i haddasu neu bod y ffeil wedi'i thynnu'n ddiweddar. +ErrorProductBarCodeAlreadyExists=Mae'r cod bar cynnyrch %s eisoes yn bodoli ar gyfeirnod cynnyrch arall. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Sylwch hefyd nad yw'n bosibl defnyddio citiau i gael cynnydd/gostyngiad ceir mewn isgynhyrchion pan fo angen rhif cyfresol/lot ar o leiaf un is-gynnyrch (neu isgynnyrch o isgynhyrchion). +ErrorDescRequiredForFreeProductLines=Mae disgrifiad yn orfodol ar gyfer llinellau gyda chynnyrch am ddim +ErrorAPageWithThisNameOrAliasAlreadyExists=Mae gan y dudalen/cynhwysydd %s yr un enw neu enw arall â'r un rydych chi'n ceisio'i ddefnyddio +ErrorDuringChartLoad=Gwall wrth lwytho siart cyfrifon. Os nad oes llawer o gyfrifon wedi'u llwytho, gallwch chi eu nodi â llaw o hyd. +ErrorBadSyntaxForParamKeyForContent=Cystrawen ddrwg ar gyfer bysellwedd param. Rhaid bod â gwerth yn dechrau gyda %s neu %s +ErrorVariableKeyForContentMustBeSet=Gwall, rhaid gosod y cysonyn gydag enw %s (gyda chynnwys testun i'w ddangos) neu %s (gyda'r url allanol i'w ddangos). +ErrorURLMustEndWith=Rhaid i URL %s ddod i ben %s +ErrorURLMustStartWithHttp=Rhaid i URL %s ddechrau gyda http:// neu https:// +ErrorHostMustNotStartWithHttp=Ni ddylai enw gwesteiwr %s ddechrau gyda http:// neu https:// +ErrorNewRefIsAlreadyUsed=Gwall, mae'r cyfeirnod newydd eisoes yn cael ei ddefnyddio +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Gwall, nid yw'n bosibl dileu taliad sy'n gysylltiedig ag anfoneb gaeedig. +ErrorSearchCriteriaTooSmall=Meini prawf chwilio yn rhy fach. +ErrorObjectMustHaveStatusActiveToBeDisabled=Rhaid i wrthrychau gael statws 'Gweithredol' i fod yn anabl +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 +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. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Gwall, mae iaith yn orfodol os ydych chi'n gosod y dudalen fel cyfieithiad o un arall. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Gwall, mae iaith y dudalen wedi'i chyfieithu yr un peth â'r un hon. +ErrorBatchNoFoundForProductInWarehouse=Ni chanfuwyd lot/cyfres ar gyfer cynnyrch "%s" yn y warws "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Dim digon o swm ar gyfer y lot / gyfres hon ar gyfer cynnyrch "%s" yn y warws "%s". +ErrorOnlyOneFieldForGroupByIsPossible=Dim ond 1 maes ar gyfer y 'Grŵp erbyn' sy'n bosibl (mae eraill yn cael eu taflu) +ErrorTooManyDifferentValueForSelectedGroupBy=Wedi dod o hyd i ormod o werth gwahanol (mwy na %s ) ar gyfer y maes ' %s a09a4b739fz0 ) ar gyfer y maes ' %s a09a4b70zf fel y gellir defnyddio'r graffeg. Mae'r maes 'Group By' wedi'i ddileu. Efallai eich bod am ei ddefnyddio fel Echel X ? +ErrorReplaceStringEmpty=Gwall, mae'r llinyn i'w ddisodli yn wag +ErrorProductNeedBatchNumber=Gwall, cynnyrch ' %s ' angen llawer/rhif cyfresol +ErrorProductDoesNotNeedBatchNumber=Gwall, nid yw cynnyrch ' %s ' yn derbyn llawer/rhif cyfresol +ErrorFailedToReadObject=Gwall, methu darllen gwrthrych o'r math %s +ErrorParameterMustBeEnabledToAllwoThisFeature=Gwall, rhaid galluogi paramedr %s i mewn i conf/conf.php er mwyn caniatáu defnyddio'r amserlen Command Liner mewnol +ErrorLoginDateValidity=Gwall, mae'r mewngofnodi hwn y tu allan i'r ystod dyddiad dilysrwydd +ErrorValueLength=Rhaid i hyd y cae ' %s ' fod yn uwch na ' %s a09a4b7839zf ' +ErrorReservedKeyword=Mae'r gair ' %s ' yn allweddair neilltuedig +ErrorNotAvailableWithThisDistribution=Ddim ar gael gyda'r dosbarthiad hwn +ErrorPublicInterfaceNotEnabled=Nid oedd rhyngwyneb cyhoeddus wedi'i alluogi +ErrorLanguageRequiredIfPageIsTranslationOfAnother=Rhaid diffinio iaith tudalen newydd os caiff ei gosod fel cyfieithiad o dudalen arall +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=Ni ddylai iaith tudalen newydd fod yn iaith ffynhonnell os caiff ei gosod fel cyfieithiad o dudalen arall +ErrorAParameterIsRequiredForThisOperation=Mae paramedr yn orfodol ar gyfer y llawdriniaeth hon +ErrorDateIsInFuture=Gwall, ni all y dyddiad fod yn y dyfodol +ErrorAnAmountWithoutTaxIsRequired=Gwall, mae swm yn orfodol +ErrorAPercentIsRequired=Gwall, llenwch y ganran yn gywir +ErrorYouMustFirstSetupYourChartOfAccount=Yn gyntaf rhaid i chi osod eich siart cyfrif +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=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 +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 + +# 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=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. +WarningPassIsEmpty=Rhybudd, cyfrinair cronfa ddata yn wag. Mae hwn yn dwll diogelwch. Dylech ychwanegu cyfrinair at eich cronfa ddata a newid eich ffeil conf.php i adlewyrchu hyn. +WarningConfFileMustBeReadOnly=Rhybudd, gall eich ffeil ffurfweddu ( htdocs/conf/conf.php ) gael ei drosysgrifo gan y gweinydd gwe. Mae hwn yn dwll diogelwch difrifol. Addasu caniatadau ar ffeil i fod yn y modd darllen yn unig ar gyfer defnyddiwr y system weithredu a ddefnyddir gan weinydd y We. Os ydych chi'n defnyddio fformat Windows a FAT ar gyfer eich disg, rhaid i chi wybod nad yw'r system ffeiliau hon yn caniatáu ychwanegu caniatâd ar ffeil, felly ni all fod yn gwbl ddiogel. +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). +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). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Nodwedd wedi'i hanalluogi pan fydd y gosodiad arddangos wedi'i optimeiddio ar gyfer pobl ddall neu borwyr testun. +WarningPaymentDateLowerThanInvoiceDate=Mae'r dyddiad talu (%s) yn gynharach na dyddiad yr anfoneb (%s) ar gyfer anfoneb %s. +WarningTooManyDataPleaseUseMoreFilters=Gormod o ddata (mwy na llinellau %s). Defnyddiwch fwy o ffilterau neu gosodwch yr %s cyson i derfyn uwch. +WarningSomeLinesWithNullHourlyRate=Cofnodwyd rhai adegau gan rai defnyddwyr tra nad oedd eu cyfradd fesul awr wedi'i diffinio. Defnyddiwyd gwerth o 0 %s yr awr ond gallai hyn arwain at brisiad anghywir o'r amser a dreuliwyd. +WarningYourLoginWasModifiedPleaseLogin=Addaswyd eich mewngofnodi. At ddibenion diogelwch bydd yn rhaid i chi fewngofnodi gyda'ch mewngofnodi newydd cyn y camau nesaf. +WarningAnEntryAlreadyExistForTransKey=Mae cofnod eisoes yn bodoli ar gyfer allwedd cyfieithu'r iaith hon +WarningNumberOfRecipientIsRestrictedInMassAction=Rhybudd, mae nifer y derbynnydd gwahanol wedi'i gyfyngu i %s wrth ddefnyddio'r gweithredoedd màs ar restrau +WarningDateOfLineMustBeInExpenseReportRange=Rhybudd, nid yw dyddiad y llinell yn ystod yr adroddiad treuliau +WarningProjectDraft=Mae'r prosiect yn dal i fod yn y modd drafft. Peidiwch ag anghofio ei ddilysu os ydych chi'n bwriadu defnyddio tasgau. +WarningProjectClosed=Prosiect ar gau. Rhaid i chi ei ail-agor yn gyntaf. +WarningSomeBankTransactionByChequeWereRemovedAfter=Cafodd rhai trafodion banc eu dileu ar ôl i'r derbynneb gan gynnwys nhw gael ei chynhyrchu. Felly gall ds o sieciau a chyfanswm derbynneb fod yn wahanol i nifer a chyfanswm yn y rhestr. +WarningFailedToAddFileIntoDatabaseIndex=Rhybudd, methu ag ychwanegu cofnod ffeil i mewn i dabl mynegai cronfa ddata ECM +WarningTheHiddenOptionIsOn=Rhybudd, mae'r opsiwn cudd %s ymlaen. +WarningCreateSubAccounts=Rhybudd, ni allwch greu is-gyfrif yn uniongyrchol, rhaid i chi greu trydydd parti neu ddefnyddiwr a aseinio cod cyfrifyddu iddynt ddod o hyd iddynt yn y rhestr hon +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 + +# Validate +RequireValidValue = Gwerth ddim yn ddilys +RequireAtLeastXString = Angen o leiaf %s nod(au) +RequireXStringMax = Angen %s nod(au) max +RequireAtLeastXDigits = Angen o leiaf %s digid(au) +RequireXDigitsMax = Angen %s digid(au) ar y mwyaf +RequireValidNumeric = Mae angen gwerth rhifol +RequireValidEmail = Nid yw'r cyfeiriad e-bost yn ddilys +RequireMaxLength = Rhaid i'r hyd fod yn llai na chars %s +RequireMinLength = Rhaid i'r hyd fod yn fwy na %s torgoch +RequireValidUrl = Angen URL dilys +RequireValidDate = Angen dyddiad dilys +RequireANotEmptyValue = Yn ofynnol +RequireValidDuration = Angen cyfnod dilys +RequireValidExistingElement = Angen gwerth presennol +RequireValidBool = Angen boolean dilys +BadSetupOfField = Gwall gosod y maes yn wael +BadSetupOfFieldClassNotFoundForValidation = Gwall gosod y maes yn wael : Dosbarth heb ei ganfod i'w ddilysu +BadSetupOfFieldFileNotFound = Gwall gosod y maes yn wael : Ffeil heb ei chanfod i'w chynnwys +BadSetupOfFieldFetchNotCallable = Gwall gosod y maes yn wael : Ni ellir galw nôl ar y dosbarth diff --git a/htdocs/langs/cy_GB/eventorganization.lang b/htdocs/langs/cy_GB/eventorganization.lang new file mode 100644 index 00000000000..b15bb10faaa --- /dev/null +++ b/htdocs/langs/cy_GB/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 = Trefniadaeth Digwyddiadau +EventOrganizationDescription = Trefnu Digwyddiad trwy Brosiect Modiwl +EventOrganizationDescriptionLong= Rheoli trefniadaeth digwyddiad (sioe, cynadleddau, mynychwyr neu siaradwyr, gyda thudalennau cyhoeddus ar gyfer awgrymiadau, pleidlais neu gofrestru) +# +# Menu +# +EventOrganizationMenuLeft = Digwyddiadau wedi'u trefnu +EventOrganizationConferenceOrBoothMenuLeft = Cynhadledd Neu Booth + +PaymentEvent=Talu digwyddiad + +# +# Admin page +# +NewRegistration=Cofrestru +EventOrganizationSetup=Gosodiad Trefniadaeth Digwyddiad +EventOrganization=Trefniadaeth digwyddiad +Settings=Gosodiadau +EventOrganizationSetupPage = Tudalen gosod Trefniadaeth Digwyddiad +EVENTORGANIZATION_TASK_LABEL = Label o dasgau i'w creu'n awtomatig pan fydd y prosiect yn cael ei ddilysu +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 = Categori i ychwanegu at drydydd parti yn cael ei greu yn awtomatig pan fydd rhywun yn awgrymu cynhadledd +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categori i ychwanegu at drydydd parti yn cael ei greu yn awtomatig pan fyddant yn awgrymu bwth +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Templed e-bost i'w anfon ar ôl derbyn awgrym o gynhadledd. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Templed e-bost i'w anfon ar ôl derbyn awgrym o fwth. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Templed e-bost i'w anfon ar ôl i gofrestriad i fwth gael ei dalu. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Templed e-bost i'w anfon ar ôl i gofrestriad i ddigwyddiad gael ei dalu. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Templed e-bost i'w ddefnyddio wrth anfon e-byst o'r massaction "Anfon e-byst" at siaradwyr +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Templed e-bost i'w ddefnyddio wrth anfon e-byst o'r massaction "Anfon e-byst" ar restr mynychwyr +EVENTORGANIZATION_FILTERATTENDEES_CAT = Yn y ffurflen i greu / ychwanegu mynychwr, yn cyfyngu'r rhestr o drydydd partïon i drydydd partïon yn y categori +EVENTORGANIZATION_FILTERATTENDEES_TYPE = Yn y ffurf i greu / ychwanegu mynychwr, yn cyfyngu'r rhestr o drydydd partïon i drydydd partïon â natur + +# +# Object +# +EventOrganizationConfOrBooth= Cynhadledd Neu Booth +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 + +# +# Template Mail +# +YourOrganizationEventConfRequestWasReceived = Derbyniwyd eich cais am gynhadledd +YourOrganizationEventBoothRequestWasReceived = Derbyniwyd eich cais am fwth +EventOrganizationEmailAskConf = Cais am gynhadledd +EventOrganizationEmailAskBooth = Cais am fwth +EventOrganizationEmailBoothPayment = Talu eich bwth +EventOrganizationEmailRegistrationPayment = Cofrestru ar gyfer digwyddiad +EventOrganizationMassEmailAttendees = Cyfathrebu i fynychwyr +EventOrganizationMassEmailSpeakers = Cyfathrebu â siaradwyr +ToSpeakers=I siaradwyr + +# +# Event +# +AllowUnknownPeopleSuggestConf=Caniatáu i bobl awgrymu cynadleddau +AllowUnknownPeopleSuggestConfHelp=Caniatáu i bobl anhysbys awgrymu cynhadledd y maent am ei gwneud +AllowUnknownPeopleSuggestBooth=Caniatáu i bobl wneud cais am fwth +AllowUnknownPeopleSuggestBoothHelp=Caniatáu i bobl anhysbys wneud cais am fwth +PriceOfRegistration=Pris cofrestru +PriceOfRegistrationHelp=Pris i'w dalu i gofrestru neu gymryd rhan yn y digwyddiad +PriceOfBooth=Pris tanysgrifiad i sefyll bwth +PriceOfBoothHelp=Pris tanysgrifiad i sefyll bwth +EventOrganizationICSLink=Cyswllt ICS ar gyfer cynadleddau +ConferenceOrBoothInformation=Gwybodaeth Cynhadledd Neu Booth +Attendees=Mynychwyr +ListOfAttendeesOfEvent=Rhestr o fynychwyr prosiect y digwyddiad +DownloadICSLink = Lawrlwythwch y ddolen ICS +EVENTORGANIZATION_SECUREKEY = Hedyn i sicrhau'r allwedd ar gyfer y dudalen cofrestru cyhoeddus i awgrymu cynhadledd +SERVICE_BOOTH_LOCATION = Gwasanaeth a ddefnyddir ar gyfer y rhes anfoneb am leoliad bwth +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Gwasanaeth a ddefnyddir ar gyfer y rhes anfonebau ynghylch tanysgrifiad mynychwr i ddigwyddiad +NbVotes=Nifer y pleidleisiau +# +# Status +# +EvntOrgDraft = Drafft +EvntOrgSuggested = Awgrymir +EvntOrgConfirmed = Cadarnhawyd +EvntOrgNotQualified = Ddim yn Gymwys +EvntOrgDone = Wedi'i wneud +EvntOrgCancelled = Wedi'i ganslo +# +# Public page +# +SuggestForm = Tudalen awgrymiadau +SuggestOrVoteForConfOrBooth = Tudalen ar gyfer awgrym neu bleidlais +EvntOrgRegistrationHelpMessage = Yma, gallwch chi bleidleisio dros gynhadledd neu awgrymu un newydd ar gyfer y digwyddiad. Gallwch hefyd wneud cais i gael bwth yn ystod y digwyddiad. +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 +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 +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 +EventType = Math o ddigwyddiad +LabelOfBooth=Label Booth +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 + +NewSubscription=Cofrestru +OrganizationEventConfRequestWasReceived=Mae eich awgrym ar gyfer cynhadledd wedi dod i law +OrganizationEventBoothRequestWasReceived=Mae eich cais am fwth wedi dod i law +OrganizationEventPaymentOfBoothWasReceived=Mae eich taliad ar gyfer eich bwth wedi'i gofnodi +OrganizationEventPaymentOfRegistrationWasReceived=Mae eich taliad ar gyfer eich cofrestriad digwyddiad wedi'i gofnodi +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) + +NewSuggestionOfBooth=Cais am fwth +NewSuggestionOfConference=Cais am gynhadledd + +# +# Vote page +# +EvntOrgRegistrationWelcomeMessage = Croeso i dudalen awgrymiadau'r gynhadledd neu'r bwth. +EvntOrgRegistrationConfWelcomeMessage = Croeso i dudalen awgrymiadau'r gynhadledd. +EvntOrgRegistrationBoothWelcomeMessage = Croeso i dudalen awgrymiadau'r bwth. +EvntOrgVoteHelpMessage = Yma, gallwch weld a phleidleisio ar gyfer y digwyddiadau a awgrymir ar gyfer y prosiect +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 +ConfAttendeeSubscriptionConfirmation = Cadarnhad o'ch tanysgrifiad i ddigwyddiad +Attendee = Mynychwr +PaymentConferenceAttendee = Taliad mynychwyr y gynhadledd +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 +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 +NoPublicActionsAllowedForThisEvent=Nid oes unrhyw gamau gweithredu cyhoeddus yn agored i'r cyhoedd ar gyfer y digwyddiad hwn +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/cy_GB/exports.lang b/htdocs/langs/cy_GB/exports.lang new file mode 100644 index 00000000000..0861d99969b --- /dev/null +++ b/htdocs/langs/cy_GB/exports.lang @@ -0,0 +1,140 @@ +# Dolibarr language file - Source file is en_US - exports +ExportsArea=Allforion +ImportArea=Mewnforio +NewExport=Allforio Newydd +NewImport=Mewnforio Newydd +ExportableDatas=Set ddata allgludadwy +ImportableDatas=Set ddata y gellir ei fewnforio +SelectExportDataSet=Dewiswch set ddata rydych am ei hallforio... +SelectImportDataSet=Dewiswch set ddata rydych chi am ei fewnforio... +SelectExportFields=Dewiswch y meysydd rydych chi am eu hallforio, neu dewiswch broffil allforio wedi'i ddiffinio ymlaen llaw +SelectImportFields=Dewiswch y meysydd ffeil ffynhonnell rydych chi am eu mewnforio a'u maes targed yn y gronfa ddata trwy eu symud i fyny ac i lawr gydag angor %s, neu dewiswch broffil mewnforio wedi'i ddiffinio ymlaen llaw: +NotImportedFields=Meysydd ffeil ffynhonnell heb eu mewnforio +SaveExportModel=Arbedwch eich dewisiadau fel proffil/templed allforio (i'w hailddefnyddio). +SaveImportModel=Cadw'r proffil mewnforio hwn (i'w ailddefnyddio) ... +ExportModelName=Allforio enw proffil +ExportModelSaved=Proffil allforio wedi'i gadw fel %s . +ExportableFields=Meysydd y gellir eu hallforio +ExportedFields=Meysydd wedi'u hallforio +ImportModelName=Mewnforio enw proffil +ImportModelSaved=Proffil mewnforio wedi'i gadw fel %s . +DatasetToExport=Set ddata i'w hallforio +DatasetToImport=Mewnforio ffeil i'r set ddata +ChooseFieldsOrdersAndTitle=Dewiswch drefn meysydd... +FieldsTitle=Teitl y meysydd +FieldTitle=Teitl maes +NowClickToGenerateToBuildExportFile=Nawr, dewiswch y fformat ffeil yn y blwch combo a chliciwch ar "Cynhyrchu" i adeiladu'r ffeil allforio ... +AvailableFormats=Fformatau Sydd ar Gael +LibraryShort=Llyfrgell +ExportCsvSeparator=Gwahanydd cymeriad Csv +ImportCsvSeparator=Gwahanydd cymeriad Csv +Step=Cam +FormatedImport=Cynorthwyydd Mewnforio +FormatedImportDesc1=Mae'r modiwl hwn yn eich galluogi i ddiweddaru data presennol neu ychwanegu gwrthrychau newydd i'r gronfa ddata o ffeil heb wybodaeth dechnegol, gan ddefnyddio cynorthwyydd. +FormatedImportDesc2=Y cam cyntaf yw dewis y math o ddata rydych chi am ei fewnforio, yna fformat y ffeil ffynhonnell, yna'r meysydd rydych chi am eu mewnforio. +FormatedExport=Cynorthwy-ydd Allforio +FormatedExportDesc1=Mae'r offer hyn yn caniatáu allforio data personol gan ddefnyddio cynorthwyydd, i'ch helpu yn y broses heb fod angen gwybodaeth dechnegol. +FormatedExportDesc2=Y cam cyntaf yw dewis set ddata wedi'i diffinio ymlaen llaw, yna pa feysydd rydych chi am eu hallforio, ac ym mha drefn. +FormatedExportDesc3=Pan ddewisir data i'w allforio, gallwch ddewis fformat y ffeil allbwn. +Sheet=Cynfas +NoImportableData=Dim data y gellir ei fewnforio (dim modiwl gyda diffiniadau i ganiatáu mewnforio data) +FileSuccessfullyBuilt=Ffeil wedi'i chynhyrchu +SQLUsedForExport=Cais SQL a ddefnyddir i echdynnu data +LineId=Id y llinell +LineLabel=Label y llinell +LineDescription=Disgrifiad o'r llinell +LineUnitPrice=Pris uned y llinell +LineVATRate=TAW Cyfradd llinell +LineQty=Nifer ar gyfer llinell +LineTotalHT=Swm heb gynnwys. treth ar gyfer llinell +LineTotalTTC=Swm gyda threth ar gyfer llinell +LineTotalVAT=Swm y TAW ar gyfer llinell +TypeOfLineServiceOrProduct=Math o linell (0=cynnyrch, 1=gwasanaeth) +FileWithDataToImport=Ffeil gyda data i fewnforio +FileToImport=Ffeil ffynhonnell i fewnforio +FileMustHaveOneOfFollowingFormat=Rhaid i ffeil i'w mewnforio gael un o'r fformatau canlynol +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=Dewiswch y fformat ffeil i'w ddefnyddio fel fformat ffeil mewnforio trwy glicio ar yr eicon %s i'w ddewis... +ChooseFileToImport=Llwythwch ffeil i fyny ac yna cliciwch ar yr eicon %s i ddewis ffeil fel ffeil mewnforio ffynhonnell... +SourceFileFormat=Fformat ffeil ffynhonnell +FieldsInSourceFile=Meysydd yn y ffeil ffynhonnell +FieldsInTargetDatabase=Meysydd targed yng nghronfa ddata Dolibarr (bold = gorfodol) +Field=Maes +NoFields=Dim caeau +MoveField=Symud rhif colofn maes %s +ExampleOfImportFile=Enghraifft_o_mewnforio_ffeil +SaveImportProfile=Cadw'r proffil mewnforio hwn +ErrorImportDuplicateProfil=Wedi methu cadw'r proffil mewngludo hwn gyda'r enw hwn. Mae proffil sy'n bodoli eisoes yn bodoli gyda'r enw hwn. +TablesTarget=Tablau wedi'u targedu +FieldsTarget=Meysydd wedi'u targedu +FieldTarget=Maes wedi'i dargedu +FieldSource=Maes ffynhonnell +NbOfSourceLines=Nifer y llinellau yn y ffeil ffynhonnell +NowClickToTestTheImport=Gwiriwch fod fformat ffeil (amffinyddion maes a llinyn) eich ffeil yn cyfateb i'r opsiynau a ddangosir a'ch bod wedi hepgor y llinell pennawd, neu bydd y rhain yn cael eu nodi fel gwallau yn yr efelychiad canlynol.
    Cliciwch ar " " %s " " botwm i redeg gwiriad o strwythur/cynnwys y ffeil ac efelychu'r broses fewngludo.
    Ni fydd unrhyw ddata yn cael ei newid yn eich cronfa ddata . +RunSimulateImportFile=Rhedeg Mewnforio Efelychu +FieldNeedSource=Mae'r maes hwn angen data o'r ffeil ffynhonnell +SomeMandatoryFieldHaveNoSource=Nid oes gan rai meysydd gorfodol ffynhonnell o ffeil ddata +InformationOnSourceFile=Gwybodaeth ar ffeil ffynhonnell +InformationOnTargetTables=Gwybodaeth am feysydd targed +SelectAtLeastOneField=Newidiwch o leiaf un maes ffynhonnell yn y golofn meysydd i'w allforio +SelectFormat=Dewiswch y fformat ffeil mewnforio hwn +RunImportFile=Mewnforio Data +NowClickToRunTheImport=Gwiriwch ganlyniadau'r efelychiad mewnforio. Cywirwch unrhyw wallau ac ail-brofi.
    Pan fydd yr efelychiad yn adrodd nad oes unrhyw wallau gallwch symud ymlaen i fewnforio'r data i'r gronfa ddata. +DataLoadedWithId=Bydd gan y data a fewnforir faes ychwanegol ym mhob tabl cronfa ddata gyda'r id mewnforio hwn: %s , i ganiatáu iddo fod yn chwiliadwy yn achos ymchwilio i broblem yn ymwneud â'r mewnforio hwn. +ErrorMissingMandatoryValue=Mae data gorfodol yn wag yn y ffeil ffynhonnell ar gyfer maes %s . +TooMuchErrors=Mae yna %s llinellau ffynhonnell eraill gyda gwallau ond mae'r allbwn wedi bod yn gyfyngedig. +TooMuchWarnings=Mae yna %s llinellau ffynhonnell eraill gyda rhybuddion ond mae'r allbwn wedi bod yn gyfyngedig. +EmptyLine=Llinell wag (yn cael ei thaflu) +CorrectErrorBeforeRunningImport=Rhaid ichi gywiro pob gwall cyn rhedeg y mewnforio diffiniol. +FileWasImported=Mewnforiwyd ffeil gyda'r rhif %s . +YouCanUseImportIdToFindRecord=Gallwch ddod o hyd i'r holl gofnodion a fewnforiwyd yn eich cronfa ddata trwy hidlo ar faes import_key='%s' . +NbOfLinesOK=Nifer y llinellau heb unrhyw wallau a dim rhybuddion: %s . +NbOfLinesImported=Nifer y llinellau a fewnforiwyd yn llwyddiannus: %s . +DataComeFromNoWhere=Nid yw gwerth i'w fewnosod yn dod o unman yn y ffeil ffynhonnell. +DataComeFromFileFieldNb=Daw gwerth i'w fewnosod o rif maes %s yn y ffeil ffynhonnell. +DataComeFromIdFoundFromRef=Gwerth sy'n dod o'r maes rhif %s y ffeil ffynhonnell bydd yn cael ei ddefnyddio i ddod o hyd i'r id y rhiant gwrthrych i'w ddefnyddio (felly mae'r gwrthrych a0ecb2eczb7fz0 a0ecb2c87fz088fz0 a0ecb2eczb7fz0837fz0 a0ecb2eczb7fz09 ffeil yn bodoli. +DataComeFromIdFoundFromCodeId=Cod sy'n dod o rif maes %s Bydd A09A4B739F17f8Z0 o ffeil ffynhonnell yn cael ei ddefnyddio i ddod o hyd i ID y rhiant yn gwrthwynebu ei ddefnyddio (felly mae'n rhaid i'r cod o ffeil ffynhonnell fodoli yn y geiriadur A0AEE836837FZ0 A0ECB2EC87F17F8z0). Sylwch, os ydych chi'n gwybod yr id, gallwch chi hefyd ei ddefnyddio yn y ffeil ffynhonnell yn lle'r cod. Dylai mewnforio weithio yn y ddau achos. +DataIsInsertedInto=Bydd data sy'n dod o'r ffeil ffynhonnell yn cael ei fewnosod yn y maes canlynol: +DataIDSourceIsInsertedInto=Bydd id y rhiant gwrthrych, a ganfuwyd gan ddefnyddio'r data yn y ffeil ffynhonnell, yn cael ei fewnosod yn y maes canlynol: +DataCodeIDSourceIsInsertedInto=Bydd id y rhiant-linell, a ganfuwyd o'r cod, yn cael ei fewnosod yn y maes canlynol: +SourceRequired=Mae gwerth data yn orfodol +SourceExample=Enghraifft o werth data posibl +ExampleAnyRefFoundIntoElement=Unrhyw gyf a ddarganfuwyd ar gyfer elfen %s +ExampleAnyCodeOrIdFoundIntoDictionary=Unrhyw god (neu id) a geir mewn geiriadur %s +CSVFormatDesc= Gwerth Gwahanedig Coma fformat ffeil (.csv).
    Fformat ffeil testun yw hwn lle mae gwahanydd yn gwahanu meysydd [ %s ]. Os canfyddir gwahanydd y tu mewn i gynnwys cae, caiff y cae ei dalgrynnu gan nod crwn [ %s ]. Cymeriad dianc i ddianc o gymeriad crwn yw [ %s ]. +Excel95FormatDesc= Excel Fformat ffeil (.xls)
    Dyma fformat brodorol Excel 95 (BIFF5). +Excel2007FormatDesc= Excel Fformat ffeil (.xlsx)
    Dyma fformat brodorol Excel 2007 (SpreadsheetML). +TsvFormatDesc= Tab Gwerth Gwahanedig fformat ffeil (.tsv)
    Fformat ffeil testun yw hwn lle mae meysydd yn cael eu gwahanu gan dabulator [tab]. +ExportFieldAutomaticallyAdded=Ychwanegwyd maes %s yn awtomatig. Bydd yn eich osgoi rhag cael llinellau tebyg i'w trin fel cofnod dyblyg (gyda'r maes hwn wedi'i ychwanegu, bydd pob llinell yn berchen ar ei ID ei hun a bydd yn wahanol). +CsvOptions=Opsiynau fformat CSV +Separator=Gwahanydd Maes +Enclosure=Amffinydd Llinynnol +SpecialCode=Cod arbennig +ExportStringFilter=%% yn caniatáu amnewid un neu fwy o nodau yn y testun +ExportDateFilter=BBBB, BBBB, BBBB MDD: hidlwyr fesul blwyddyn/mis/dydd
    BBBB+BBBB, BBBB+BBBBBB, BBBBMDD+BBYYMMDD: ffilterau dros ystod o flynyddoedd/mis/dyddiaucf a0342zfc: ffilter dros ystod o flynyddoedd/misoedd/dyddiaucf a0342bYM ymlaen > YMCHWIL blynyddoedd/misoedd/diwrnodau dilynol
    < BBBB, < BBBB, < BBYYMMDD: hidlyddion ar bob blwyddyn/mis/diwrnod blaenorol +ExportNumericFilter=Hidlyddion NNNNN yn ôl un gwerth
    Hidlyddion NNNNN+NNNNN dros ystod o werthoedd
    < Hidlyddion NNNNN yn ôl gwerthoedd is
    > Hidlyddion NNNNN yn ôl gwerthoedd uwch +ImportFromLine=Mewnforio yn dechrau o rif llinell +EndAtLineNb=Diwedd ar rif y llinell +ImportFromToLine=Amrediad terfyn (O - I). ae. i hepgor llinell(au) pennawd. +SetThisValueTo2ToExcludeFirstLine=Er enghraifft, gosodwch y gwerth hwn i 3 i hepgor y 2 linell gyntaf.
    Os NAD yw'r llinellau pennyn yn cael eu hepgor, bydd hyn yn arwain at wallau lluosog yn yr Efelychu Mewnforio. +KeepEmptyToGoToEndOfFile=Cadwch y maes hwn yn wag i brosesu pob llinell i ddiwedd y ffeil. +SelectPrimaryColumnsForUpdateAttempt=Dewiswch golofn(au) i'w defnyddio fel allwedd gynradd ar gyfer mewnforio DIWEDDARIAD +UpdateNotYetSupportedForThisImport=Ni chefnogir diweddariad ar gyfer y math hwn o fewnforio (mewnosod yn unig) +NoUpdateAttempt=Ni wnaethpwyd unrhyw ymgais i ddiweddaru, dim ond mewnosod +ImportDataset_user_1=Defnyddwyr (gweithwyr neu beidio) ac eiddo +ComputedField=Maes cyfrifiadurol +## filters +SelectFilterFields=Os ydych chi eisiau hidlo rhai gwerthoedd, dim ond mewnbynnu gwerthoedd yma. +FilteredFields=Meysydd wedi'u hidlo +FilteredFieldsValues=Gwerth ar gyfer hidlydd +FormatControlRule=Rheol rheoli fformat +## imports updates +KeysToUseForUpdates=Allwedd (colofn) i'w ddefnyddio ar gyfer diweddaru data presennol +NbInsert=Nifer y llinellau a fewnosodwyd: %s +NbUpdate=Nifer y llinellau wedi'u diweddaru: %s +MultipleRecordFoundWithTheseFilters=Mae cofnodion lluosog wedi'u canfod gyda'r hidlwyr hyn: %s +StocksWithBatch=Stociau a lleoliad (warws) cynhyrchion gyda rhif swp/cyfres +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: diff --git a/htdocs/langs/cy_GB/help.lang b/htdocs/langs/cy_GB/help.lang new file mode 100644 index 00000000000..7925961a2e7 --- /dev/null +++ b/htdocs/langs/cy_GB/help.lang @@ -0,0 +1,23 @@ +# Dolibarr language file - Source file is en_US - help +CommunitySupport=Cefnogaeth Fforwm/Wici +EMailSupport=Cefnogaeth e-byst +RemoteControlSupport=Cefnogaeth amser real / o bell ar-lein +OtherSupport=Cefnogaeth arall +ToSeeListOfAvailableRessources=I gysylltu/weld yr adnoddau sydd ar gael: +HelpCenter=Canolfan Gymorth +DolibarrHelpCenter=Canolfan Gymorth a Chymorth Dolibarr +ToGoBackToDolibarr=Fel arall, cliciwch yma i barhau i ddefnyddio Dolibarra . +TypeOfSupport=Math o gefnogaeth +TypeSupportCommunauty=Cymuned (am ddim) +TypeSupportCommercial=Masnachol +TypeOfHelp=Math +NeedHelpCenter=Angen cymorth neu gefnogaeth? +Efficiency=Effeithlonrwydd +TypeHelpOnly=Help yn unig +TypeHelpDev=Cymorth+Datblygiad +TypeHelpDevForm=Cymorth+Datblygiad+Hyfforddiant +BackToHelpCenter=Fel arall, ewch yn ôl i dudalen gartref y ganolfan Gymorth . +LinkToGoldMember=Gallwch ffonio un o'r hyfforddwyr a ddewiswyd gan Dolibarr ar gyfer eich iaith (%s) trwy glicio ar eu Widget (mae statws ac uchafswm pris yn cael eu diweddaru'n awtomatig): +PossibleLanguages=Ieithoedd a gefnogir +SubscribeToFoundation=Helpwch brosiect Dolibarr, tanysgrifiwch i'r sylfaen +SeeOfficalSupport=Am gefnogaeth swyddogol Dolibarr yn eich iaith:
    %s diff --git a/htdocs/langs/cy_GB/holiday.lang b/htdocs/langs/cy_GB/holiday.lang new file mode 100644 index 00000000000..f3872ea8296 --- /dev/null +++ b/htdocs/langs/cy_GB/holiday.lang @@ -0,0 +1,139 @@ +# Dolibarr language file - Source file is en_US - holiday +HRM=HRM +Holidays=Gadael +CPTitreMenu=Gadael +MenuReportMonth=Datganiad misol +MenuAddCP=Cais am wyliau newydd +NotActiveModCP=Rhaid i chi alluogi'r modiwl Leave i weld y dudalen hon. +AddCP=Gwnewch gais am wyliau +DateDebCP=Dyddiad cychwyn +DateFinCP=Dyddiad Gorffen +DraftCP=Drafft +ToReviewCP=Aros am gymeradwyaeth +ApprovedCP=Cymmeradwy +CancelCP=Wedi'i ganslo +RefuseCP=Gwrthodwyd +ValidatorCP=Cymmeradwy +ListeCP=Rhestr o wyliau +Leave=Gadael cais +LeaveId=Gadael ID +ReviewedByCP=Bydd yn cael ei gymeradwyo gan +UserID=ID Defnyddiwr +UserForApprovalID=Defnyddiwr ar gyfer ID cymeradwyo +UserForApprovalFirstname=Enw cyntaf defnyddiwr cymeradwyo +UserForApprovalLastname=Enw olaf defnyddiwr cymeradwyo +UserForApprovalLogin=Mewngofnodi defnyddiwr cymeradwyo +DescCP=Disgrifiad +SendRequestCP=Creu cais gwyliau +DelayToRequestCP=Rhaid gwneud ceisiadau am wyliau o leiaf %s diwrnod(au) cyn iddynt. +MenuConfCP=Balans gwyliau +SoldeCPUser=Gadael balans (mewn dyddiau) %s +ErrorEndDateCP=Rhaid i chi ddewis dyddiad gorffen sy'n fwy na'r dyddiad dechrau. +ErrorSQLCreateCP=Digwyddodd gwall SQL wrth greu: +ErrorIDFicheCP=Mae gwall wedi digwydd, nid yw'r cais am ganiatâd yn bodoli. +ReturnCP=Dychwelyd i'r dudalen flaenorol +ErrorUserViewCP=Nid oes gennych awdurdod i ddarllen y cais hwn am wyliau. +InfosWorkflowCP=Llif Gwaith Gwybodaeth +RequestByCP=Cais gan +TitreRequestCP=Gadael cais +TypeOfLeaveId=ID math o absenoldeb +TypeOfLeaveCode=Math o god gadael +TypeOfLeaveLabel=Math o label gadael +NbUseDaysCP=Nifer y dyddiau o wyliau a ddefnyddiwyd +NbUseDaysCPHelp=Mae'r cyfrifiad yn cymryd i ystyriaeth y diwrnodau di-waith a'r gwyliau a ddiffinnir yn y geiriadur. +NbUseDaysCPShort=Dyddiau o wyliau +NbUseDaysCPShortInMonth=Diwrnodau o wyliau mewn mis +DayIsANonWorkingDay=%s yn ddiwrnod di-waith +DateStartInMonth=Dyddiad cychwyn yn y mis +DateEndInMonth=Dyddiad gorffen yn y mis +EditCP=Golygu +DeleteCP=Dileu +ActionRefuseCP=Gwrthod +ActionCancelCP=Canslo +StatutCP=Statws +TitleDeleteCP=Dileu'r cais am wyliau +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. +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. +TitleValidCP=Cymeradwyo'r cais am wyliau +ConfirmValidCP=Ydych chi'n siŵr eich bod am gymeradwyo'r cais am wyliau? +DateValidCP=Dyddiad cymeradwyo +TitleToValidCP=Anfon cais am wyliau +ConfirmToValidCP=Ydych chi'n siŵr eich bod am anfon y cais am wyliau? +TitleRefuseCP=Gwrthod y cais am wyliau +ConfirmRefuseCP=A ydych yn siŵr eich bod am wrthod y cais am wyliau? +NoMotifRefuseCP=Rhaid i chi ddewis rheswm dros wrthod y cais. +TitleCancelCP=Canslo'r cais am wyliau +ConfirmCancelCP=Ydych chi'n siŵr eich bod am ganslo'r cais am wyliau? +DetailRefusCP=Rheswm dros wrthod +DateRefusCP=Dyddiad gwrthod +DateCancelCP=Dyddiad canslo +DefineEventUserCP=Neilltuo absenoldeb eithriadol i ddefnyddiwr +addEventToUserCP=Neilltuo absenoldeb +NotTheAssignedApprover=Nid chi yw'r cymeradwywr penodedig +MotifCP=Rheswm +UserCP=Defnyddiwr +ErrorAddEventToUserCP=Digwyddodd gwall wrth ychwanegu'r gwyliau eithriadol. +AddEventToUserOkCP=Mae ychwanegu'r gwyliau eithriadol wedi'i gwblhau. +MenuLogCP=Gweld logiau newid +LogCP=Log o'r holl ddiweddariadau a wnaed i "Cydbwysedd Absenoldeb" +ActionByCP=Diweddarwyd gan +UserUpdateCP=Diweddarwyd ar gyfer +PrevSoldeCP=Balans Blaenorol +NewSoldeCP=Balans Newydd +alreadyCPexist=Mae cais am wyliau eisoes wedi'i wneud ar y cyfnod hwn. +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 +HolidaysMonthlyUpdate=Diweddariad misol +ManualUpdate=Diweddariad â llaw +HolidaysCancelation=Gadael canslo cais +EmployeeLastname=Enw olaf y gweithiwr +EmployeeFirstname=Enw cyntaf y gweithiwr +TypeWasDisabledOrRemoved=Cafodd y math o wyliau (id %s) ei analluogi neu ei ddileu +LastHolidays=Ceisiadau gwyliau diweddaraf %s +AllHolidays=Pob cais am wyliau +HalfDay=Hanner diwrnod +NotTheAssignedApprover=Nid chi yw'r cymeradwywr penodedig +LEAVE_PAID=Gwyliau â thâl +LEAVE_SICK=Absenoldeb salwch +LEAVE_OTHER=Eraill yn gadael +LEAVE_PAID_FR=Gwyliau â thâl +## Configuration du Module ## +LastUpdateCP=Diweddariad awtomatig diwethaf o'r dyraniad gwyliau +MonthOfLastMonthlyUpdate=Mis y diweddariad awtomatig diwethaf o'r dyraniad gwyliau +UpdateConfCPOK=Wedi'i ddiweddaru'n llwyddiannus. +Module27130Name= Rheoli ceisiadau am wyliau +Module27130Desc= Rheoli ceisiadau am wyliau +ErrorMailNotSend=Digwyddodd gwall wrth anfon e-bost: +NoticePeriod=Cyfnod rhybudd +#Messages +HolidaysToValidate=Dilysu ceisiadau am wyliau +HolidaysToValidateBody=Isod mae cais am wyliau i ddilysu +HolidaysToValidateDelay=Bydd y cais hwn am wyliau yn digwydd o fewn cyfnod o lai nag %s diwrnod. +HolidaysToValidateAlertSolde=Nid oes gan y defnyddiwr a wnaeth y cais hwn am wyliau ddigon o ddiwrnodau ar gael. +HolidaysValidated=Ceisiadau gwyliau wedi'u dilysu +HolidaysValidatedBody=Mae eich cais am absenoldeb ar gyfer %s i %s wedi'i ddilysu. +HolidaysRefused=Gwrthodwyd y cais +HolidaysRefusedBody=Mae eich cais am ganiatâd i adael %s i %s wedi'i wrthod am y rheswm canlynol: +HolidaysCanceled=Cais wedi'i ganslo wedi'i ganslo +HolidaysCanceledBody=Mae eich cais am wyliau ar gyfer %s i %s wedi'i ganslo. +FollowedByACounter=1: Mae angen cownter i ddilyn y math hwn o wyliau. Cynyddir y cownter â llaw neu'n awtomatig a phan fydd cais am wyliau'n cael ei ddilysu, caiff y cownter ei ostwng.
    0: Heb ei ddilyn gan gownter. +NoLeaveWithCounterDefined=Nid oes unrhyw fathau o wyliau wedi'u diffinio y mae angen eu dilyn gan gownter +GoIntoDictionaryHolidayTypes=Ewch i mewn i Cartref - Gosod - Geiriaduron - Math o absenoldeb i osod y gwahanol fathau o ddail. +HolidaySetup=Sefydlu Absenoldeb modiwl +HolidaysNumberingModules=Modelau rhifo ar gyfer ceisiadau am wyliau +TemplatePDFHolidays=Templed ar gyfer ceisiadau am wyliau PDF +FreeLegalTextOnHolidays=Testun am ddim ar PDF +WatermarkOnDraftHolidayCards=Dyfrnodau ar geisiadau gwyliau drafft +HolidaysToApprove=Gwyliau i'w cymeradwyo +NobodyHasPermissionToValidateHolidays=Nid oes gan neb ganiatâd i ddilysu gwyliau +HolidayBalanceMonthlyUpdate=Diweddariad misol o falans gwyliau +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 diff --git a/htdocs/langs/cy_GB/hrm.lang b/htdocs/langs/cy_GB/hrm.lang new file mode 100644 index 00000000000..a2119f4a432 --- /dev/null +++ b/htdocs/langs/cy_GB/hrm.lang @@ -0,0 +1,91 @@ +# Dolibarr language file - en_US - hrm + + +# Admin +HRM_EMAIL_EXTERNAL_SERVICE=E-bost i atal gwasanaeth allanol HRM +Establishments=Sefydliadau +Establishment=Sefydliad +NewEstablishment=Sefydliad newydd +DeleteEstablishment=Dileu sefydliad +ConfirmDeleteEstablishment=A ydych yn siŵr eich bod am ddileu'r sefydliad hwn? +OpenEtablishment=Sefydliad agored +CloseEtablishment=Sefydliad agos +# Dictionary +DictionaryPublicHolidays=Gadael - Gwyliau cyhoeddus +DictionaryDepartment=HRM - Organizational Unit +DictionaryFunction=RhAD - Swyddi +# Module +Employees=Gweithwyr +Employee=Gweithiwr +NewEmployee=Gweithiwr newydd +ListOfEmployees=Rhestr o weithwyr +HrmSetup=Gosod modiwl HRM +SkillsManagement=Rheoli sgiliau +HRM_MAXRANK=Uchafswm nifer y lefelau i raddio sgil +HRM_DEFAULT_SKILL_DESCRIPTION=Disgrifiad rhagosodedig o'r rhengoedd pan fydd sgil yn cael ei greu +deplacement=Turn +DateEval=Dyddiad gwerthuso +JobCard=Cerdyn swydd +JobPosition=Job +JobsPosition=Swyddi +NewSkill=Sgil Newydd +SkillType=Math o sgil +Skilldets=Rhestr o'r rhengoedd ar gyfer y sgil hwn +Skilldet=Lefel sgil +rank=Safle +ErrNoSkillSelected=Dim sgil wedi'i ddewis +ErrSkillAlreadyAdded=Mae'r sgil hwn eisoes yn y rhestr +SkillHasNoLines=Nid oes gan y sgil hon unrhyw linellau +skill=Sgil +Skills=Sgiliau +SkillCard=Cerdyn sgil +EmployeeSkillsUpdated=Mae sgiliau gweithwyr wedi'u diweddaru (gweler y tab "Sgiliau" ar gerdyn y gweithiwr) +Eval=Gwerthusiad +Evals=Gwerthusiadau +NewEval=Gwerthusiad newydd +ValidateEvaluation=Dilysu gwerthusiad +ConfirmValidateEvaluation=A ydych yn siŵr eich bod am ddilysu'r gwerthusiad hwn gyda'r cyfeirnod %s ? +EvaluationCard=Cerdyn gwerthuso +RequiredRank=Safle gofynnol ar gyfer y swydd hon +EmployeeRank=Safle gweithiwr ar gyfer y sgil hwn +EmployeePosition=Swydd gweithiwr +EmployeePositions=Swyddi gweithwyr +EmployeesInThisPosition=Gweithwyr yn y sefyllfa hon +group1ToCompare=Grŵp defnyddwyr i ddadansoddi +group2ToCompare=Ail grŵp defnyddwyr er mwyn cymharu +OrJobToCompare=Cymharwch â gofynion sgiliau swydd +difference=Gwahaniaeth +CompetenceAcquiredByOneOrMore=Cymhwysedd wedi'i gaffael gan un neu fwy o ddefnyddwyr ond nad yw'r ail gymharydd yn gofyn amdano +MaxlevelGreaterThan=Lefel uchaf yn fwy na'r un y gofynnwyd amdani +MaxLevelEqualTo=Lefel uchaf sy'n cyfateb i'r galw hwnnw +MaxLevelLowerThan=Lefel uchaf yn is na'r galw hwnnw +MaxlevelGreaterThanShort=Lefel y gweithiwr yn uwch na'r un y gofynnwyd amdani +MaxLevelEqualToShort=Mae lefel y gweithiwr yn cyfateb i'r galw hwnnw +MaxLevelLowerThanShort=Lefel y gweithiwr yn is na'r galw hwnnw +SkillNotAcquired=Sgil heb ei gaffael gan bob defnyddiwr ac y mae'r ail gymharydd yn gofyn amdani +legend=Chwedl +TypeSkill=Math o sgil +AddSkill=Ychwanegu sgiliau at swydd +RequiredSkills=Sgiliau gofynnol ar gyfer y swydd hon +UserRank=Safle Defnyddiwr +SkillList=Rhestr sgiliau +SaveRank=Cadw rheng +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 +HowManyUserWithThisMaxNote=Nifer y defnyddwyr gyda'r safle hwn +HighestRank=Safle uchaf +SkillComparison=Cymhariaeth sgiliau +ActionsOnJob=Digwyddiadau yn y swydd hon +VacantPosition=swydd wag +VacantCheckboxHelper=Bydd gwirio'r opsiwn hwn yn dangos swyddi heb eu llenwi (swydd wag) +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/cy_GB/install.lang b/htdocs/langs/cy_GB/install.lang new file mode 100644 index 00000000000..d2ad4f7b112 --- /dev/null +++ b/htdocs/langs/cy_GB/install.lang @@ -0,0 +1,215 @@ +# Dolibarr language file - Source file is en_US - install +InstallEasy=Dilynwch y cyfarwyddiadau cam wrth gam. +MiscellaneousChecks=Gwiriad rhagofynion +ConfFileExists=Mae ffeil ffurfweddu %s yn bodoli. +ConfFileDoesNotExistsAndCouldNotBeCreated=Nid yw ffeil ffurfweddu %s yn bodoli ac ni ellid ei greu! +ConfFileCouldBeCreated=Gellid creu ffeil ffurfweddu %s . +ConfFileIsNotWritable=Nid yw ffeil ffurfweddu %s yn ysgrifenadwy. Gwirio caniatadau. I'w osod gyntaf, rhaid i'ch gweinydd gwe allu ysgrifennu i'r ffeil hon yn ystod y broses ffurfweddu ("chmod 666" er enghraifft ar Unix fel OS). +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 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. +PHPSupport=Mae'r PHP hwn yn cefnogi swyddogaethau %s. +PHPMemoryOK=Mae eich cof sesiwn PHP max wedi'i osod i %s . Dylai hyn fod yn ddigon. +PHPMemoryTooLow=Mae eich cof sesiwn PHP max wedi'i osod i %s bytes. Mae hyn yn rhy isel. Newidiwch eich php.ini i osod memory_limit paramedr i o leiaf a0aee82365837fz0903f 17f8z0 947af +Recheck=Cliciwch yma am brawf manylach +ErrorPHPDoesNotSupportSessions=Nid yw eich gosodiad PHP yn cefnogi sesiynau. Mae angen y nodwedd hon i ganiatáu i Ddolibarr weithio. Gwiriwch eich gosodiad PHP a chaniatâd y cyfeiriadur sesiynau. +ErrorPHPDoesNotSupport=Nid yw eich gosodiad PHP yn cefnogi swyddogaethau %s. +ErrorDirDoesNotExists=Nid yw cyfeiriadur %s yn bodoli. +ErrorGoBackAndCorrectParameters=Ewch yn ôl a gwirio / cywiro'r paramedrau. +ErrorWrongValueForParameter=Efallai eich bod wedi teipio gwerth anghywir ar gyfer paramedr '%s'. +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=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. +PHPVersion=Fersiwn PHP +License=Defnyddio trwydded +ConfigurationFile=Ffeil ffurfweddu +WebPagesDirectory=Cyfeiriadur lle mae tudalennau gwe yn cael eu storio +DocumentsDirectory=Cyfeiriadur i storio dogfennau sydd wedi'u llwytho i fyny ac wedi'u cynhyrchu +URLRoot=Gwraidd URL +ForceHttps=Gorfodi cysylltiadau diogel (https) +CheckToForceHttps=Gwiriwch yr opsiwn hwn i orfodi cysylltiadau diogel (https).
    Mae hyn yn gofyn bod y gweinydd gwe wedi'i ffurfweddu gyda thystysgrif SSL. +DolibarrDatabase=Cronfa Ddata Dolibarr +DatabaseType=Math o gronfa ddata +DriverType=Math gyrrwr +Server=Gweinydd +ServerAddressDescription=Enw neu gyfeiriad ip ar gyfer gweinydd y gronfa ddata. Fel arfer 'localhost' pan fydd gweinydd y gronfa ddata yn cael ei gynnal ar yr un gweinydd â'r gweinydd gwe. +ServerPortDescription=Porth gweinydd cronfa ddata. Cadwch yn wag os nad yw'n hysbys. +DatabaseServer=Gweinydd cronfa ddata +DatabaseName=Enw cronfa ddata +DatabasePrefix=Rhagddodiad tabl cronfa ddata +DatabasePrefixDescription=Rhagddodiad tabl cronfa ddata. Os yn wag, rhagosodwch i llx_. +AdminLogin=Cyfrif defnyddiwr ar gyfer perchennog cronfa ddata Dolibarr. +PasswordAgain=Ail-deipiwch cadarnhad cyfrinair +AdminPassword=Cyfrinair ar gyfer perchennog cronfa ddata Dolibarr. +CreateDatabase=Creu cronfa ddata +CreateUser=Creu cyfrif defnyddiwr neu roi caniatâd cyfrif defnyddiwr ar gronfa ddata Dolibarr +DatabaseSuperUserAccess=Gweinydd cronfa ddata - mynediad Superuser +CheckToCreateDatabase=Ticiwch y blwch os nad yw'r gronfa ddata yn bodoli eto ac felly mae'n rhaid ei chreu.
    Yn yr achos hwn, rhaid i chi hefyd lenwi'r enw defnyddiwr a chyfrinair ar gyfer y cyfrif uwch-ddefnyddiwr ar waelod y dudalen hon. +CheckToCreateUser=Ticiwch y blwch os:
    nad yw cyfrif defnyddiwr y gronfa ddata yn bodoli eto ac felly mae'n rhaid ei greu, neu
    os yw'r cyfrif defnyddiwr yn bodoli ond nid yw'r gronfa ddata yn bodoli a rhaid rhoi caniatâd.
    Yn yr achos hwn, rhaid i chi nodi'r cyfrif defnyddiwr a'r cyfrinair ac hefyd enw a chyfrinair y cyfrif defnyddiwr uwch ar waelod y dudalen hon. Os nad yw'r blwch hwn wedi'i wirio, rhaid i berchennog cronfa ddata a chyfrinair fodoli eisoes. +DatabaseRootLoginDescription=Enw cyfrif Superuser (i greu cronfeydd data newydd neu ddefnyddwyr newydd), yn orfodol os nad yw'r gronfa ddata neu ei pherchennog yn bodoli eisoes. +KeepEmptyIfNoPassword=Gadewch yn wag os nad oes gan y superuser gyfrinair (NID argymhellir) +SaveConfigurationFile=Arbed paramedrau i +ServerConnection=Cysylltiad gweinydd +DatabaseCreation=Creu cronfa ddata +CreateDatabaseObjects=Creu gwrthrychau cronfa ddata +ReferenceDataLoading=Llwytho data cyfeirio +TablesAndPrimaryKeysCreation=Creu tablau a bysellau Cynradd +CreateTableAndPrimaryKey=Creu tabl %s +CreateOtherKeysForTable=Creu allweddi a mynegeion tramor ar gyfer tabl %s +OtherKeysCreation=Allweddi tramor a chreu mynegeion +FunctionsCreation=Creu swyddogaethau +AdminAccountCreation=Creu mewngofnodi gweinyddwr +PleaseTypePassword=Teipiwch gyfrinair, ni chaniateir cyfrineiriau gwag! +PleaseTypeALogin=Teipiwch fewngofnod! +PasswordsMismatch=Mae cyfrineiriau yn wahanol, ceisiwch eto! +SetupEnd=Diwedd y gosodiad +SystemIsInstalled=Mae'r gosodiad hwn wedi'i gwblhau. +SystemIsUpgraded=Mae Dolibarr wedi'i uwchraddio'n llwyddiannus. +YouNeedToPersonalizeSetup=Mae angen i chi ffurfweddu Dolibarr i weddu i'ch anghenion (golwg, nodweddion, ...). I wneud hyn, dilynwch y ddolen isod: +AdminLoginCreatedSuccessfuly=Mewngofnod gweinyddwr Dolibarr ' %s ' wedi'i greu'n llwyddiannus. +GoToDolibarr=Ewch i Ddolibarr +GoToSetupArea=Ewch i Ddolibarr (ardal gosod) +MigrationNotFinished=Nid yw fersiwn y gronfa ddata yn gwbl gyfoes: rhedwch y broses uwchraddio eto. +GoToUpgradePage=Ewch i uwchraddio'r dudalen eto +WithNoSlashAtTheEnd=Heb y slaes "/" ar y diwedd +DirectoryRecommendation= PWYSIG : Rhaid i chi ddefnyddio cyfeiriadur sydd y tu allan i'r tudalennau gwe (felly peidiwch â defnyddio is-gyfeiriadur o baramedr blaenorol). +LoginAlreadyExists=Eisoes yn bodoli +DolibarrAdminLogin=Mewngofnod gweinyddol Dolibarr +AdminLoginAlreadyExists=Mae cyfrif gweinyddwr Dolibarr ' %s ' eisoes yn bodoli. Ewch yn ôl os ydych am greu un arall. +FailedToCreateAdminLogin=Wedi methu creu cyfrif gweinyddwr Dolibarr. +WarningRemoveInstallDir=Rhybudd, am resymau diogelwch, unwaith y bydd y gosodiad neu'r uwchraddiad wedi'i gwblhau, dylech ychwanegu ffeil o'r enw install.lock i gyfeiriadur dogfennau Dolibarr er mwyn atal defnydd damweiniol/maleisus o'r offer gosod eto. +FunctionNotAvailableInThisPHP=Ddim ar gael yn y PHP hwn +ChoosedMigrateScript=Dewiswch sgript mudo +DataMigration=Mudo cronfa ddata (data) +DatabaseMigration=Mudo cronfa ddata (strwythur + rhywfaint o ddata) +ProcessMigrateScript=Prosesu sgript +ChooseYourSetupMode=Dewiswch eich modd gosod a chliciwch ar "Cychwyn"... +FreshInstall=Gosod ffres +FreshInstallDesc=Defnyddiwch y modd hwn os mai hwn yw eich gosodiad cyntaf. Os na, gall y modd hwn atgyweirio gosodiad blaenorol anghyflawn. Os ydych chi am uwchraddio'ch fersiwn, dewiswch y modd "Uwchraddio". +Upgrade=Uwchraddio +UpgradeDesc=Defnyddiwch y modd hwn os ydych wedi disodli hen ffeiliau Dolibarr â ffeiliau o fersiwn mwy diweddar. Bydd hyn yn uwchraddio eich cronfa ddata a data. +Start=Dechrau +InstallNotAllowed=Ni chaniateir gosod gan ganiatadau conf.php +YouMustCreateWithPermission=Rhaid i chi greu ffeil %s a gosod caniatâd ysgrifennu arno ar gyfer y gweinydd gwe yn ystod y broses osod. +CorrectProblemAndReloadPage=Trwsiwch y broblem a gwasgwch F5 i ail-lwytho'r dudalen. +AlreadyDone=Wedi mudo yn barod +DatabaseVersion=Fersiwn cronfa ddata +ServerVersion=Fersiwn gweinydd cronfa ddata +YouMustCreateItAndAllowServerToWrite=Rhaid i chi greu'r cyfeiriadur hwn a chaniatáu i'r gweinydd gwe ysgrifennu ynddo. +DBSortingCollation=Trefn didoli cymeriad +YouAskDatabaseCreationSoDolibarrNeedToConnect=Rydych yn dewis creu cronfa ddata %s , ond ar gyfer hyn, mae angen Dolibarr cysylltu â'r gweinydd %s gyda defnyddiwr super %s caniatâd. +YouAskLoginCreationSoDolibarrNeedToConnect=Rydych yn dewis creu defnyddiwr cronfa ddata %s , ond ar gyfer hyn, mae angen Dolibarr cysylltu â'r gweinydd %s gyda defnyddiwr super %s caniatâd. +BecauseConnectionFailedParametersMayBeWrong=Methodd y cysylltiad cronfa ddata: rhaid i baramedrau'r gwesteiwr neu'r uwch-ddefnyddiwr fod yn anghywir. +OrphelinsPaymentsDetectedByMethod=Canfod taliad amddifad trwy ddull %s +RemoveItManuallyAndPressF5ToContinue=Tynnwch ef â llaw a gwasgwch F5 i barhau. +FieldRenamed=Maes wedi'i ailenwi +IfLoginDoesNotExistsCheckCreateUser=Os nad yw'r defnyddiwr yn bodoli eto, rhaid i chi wirio opsiwn "Creu defnyddiwr" +ErrorConnection=Gall Gweinydd " %s ", enw cronfa ddata " %s ", mewngofnodi " %s ", neu gyfrinair gronfa ddata fod yn anghywir, neu efallai y bydd y fersiwn cleient PHP yn rhy hen o'i gymharu â'r fersiwn gronfa ddata. +InstallChoiceRecommanded=Dewis a argymhellir i osod fersiwn %s o'ch fersiwn gyfredol %s a09a4b739zf17f +InstallChoiceSuggested= Dewis gosod a awgrymir gan y gosodwr . +MigrateIsDoneStepByStep=Mae gan y fersiwn wedi'i dargedu (%s) fwlch o sawl fersiwn. Bydd y dewin gosod yn dod yn ôl i awgrymu mudo pellach unwaith y bydd yr un hwn wedi'i gwblhau. +CheckThatDatabasenameIsCorrect=Gwiriwch fod enw'r gronfa ddata " %s " yn gywir. +IfAlreadyExistsCheckOption=Os yw'r enw hwn yn gywir ac nad yw'r gronfa ddata honno'n bodoli eto, rhaid i chi wirio'r opsiwn "Creu cronfa ddata". +OpenBaseDir=PHP openbasedir paramedr +YouAskToCreateDatabaseSoRootRequired=Fe wnaethoch chi dicio'r blwch "Creu cronfa ddata". Ar gyfer hyn, mae angen i chi ddarparu mewngofnodi / cyfrinair uwch-ddefnyddiwr (gwaelod y ffurflen). +YouAskToCreateDatabaseUserSoRootRequired=Fe wnaethoch chi dicio'r blwch "Creu perchennog cronfa ddata". Ar gyfer hyn, mae angen i chi ddarparu mewngofnodi / cyfrinair uwch-ddefnyddiwr (gwaelod y ffurflen). +NextStepMightLastALongTime=Gall y cam presennol gymryd sawl munud. Arhoswch nes bydd y sgrin nesaf yn cael ei dangos yn gyfan gwbl cyn parhau. +MigrationCustomerOrderShipping=Mudo llongau ar gyfer storio archebion gwerthu +MigrationShippingDelivery=Uwchraddio storio llongau +MigrationShippingDelivery2=Uwchraddio storfa llongau 2 +MigrationFinished=Mudo wedi gorffen +LastStepDesc= Cam olaf : Diffiniwch yma y mewngofnodi a'r cyfrinair yr hoffech eu defnyddio i gysylltu â Dolibarr. Peidiwch â cholli hwn gan mai dyma'r prif gyfrif i weinyddu pob cyfrif defnyddiwr arall/ychwanegol. +ActivateModule=Ysgogi modiwl %s +ShowEditTechnicalParameters=Cliciwch yma i ddangos/golygu paramedrau uwch (modd arbenigol) +WarningUpgrade=Rhybudd:\nWnaethoch chi redeg cronfa ddata wrth gefn yn gyntaf?\nArgymhellir hyn yn fawr. Gall fod yn bosibl colli data (oherwydd er enghraifft chwilod yn fersiwn mysql 5.5.40/41/42/43) yn ystod y broses hon, felly mae'n hanfodol cymryd dymp cyflawn o'ch cronfa ddata cyn dechrau unrhyw fudo.\n\nCliciwch OK i gychwyn y broses fudo... +ErrorDatabaseVersionForbiddenForMigration=Fersiwn eich cronfa ddata yw %s. Mae ganddo nam critigol, sy'n golygu bod modd colli data os gwnewch newidiadau strwythurol yn eich cronfa ddata, fel sy'n ofynnol gan y broses fudo. Am ei reswm ef, ni chaniateir mudo nes i chi uwchraddio'ch cronfa ddata i fersiwn haen (clytiog) (rhestr o fersiynau bygi hysbys: %s) +KeepDefaultValuesWamp=Fe wnaethoch chi ddefnyddio dewin gosod Dolibarr o DoliWamp, felly mae'r gwerthoedd a gynigir yma eisoes wedi'u hoptimeiddio. Newidiwch nhw dim ond os ydych chi'n gwybod beth rydych chi'n ei wneud. +KeepDefaultValuesDeb=Fe wnaethoch chi ddefnyddio dewin gosod Dolibarr o becyn Linux (Ubuntu, Debian, Fedora...), felly mae'r gwerthoedd a gynigir yma eisoes wedi'u hoptimeiddio. Dim ond cyfrinair perchennog y gronfa ddata i'w greu y mae'n rhaid ei nodi. Newid paramedrau eraill dim ond os ydych yn gwybod beth yr ydych yn ei wneud. +KeepDefaultValuesMamp=Fe wnaethoch chi ddefnyddio dewin gosod Dolibarr o DoliMamp, felly mae'r gwerthoedd a gynigir yma eisoes wedi'u hoptimeiddio. Newidiwch nhw dim ond os ydych chi'n gwybod beth rydych chi'n ei wneud. +KeepDefaultValuesProxmox=Fe wnaethoch chi ddefnyddio dewin gosod Dolibarr o declyn rhithwir Proxmox, felly mae'r gwerthoedd a gynigir yma eisoes wedi'u hoptimeiddio. Newidiwch nhw dim ond os ydych chi'n gwybod beth rydych chi'n ei wneud. +UpgradeExternalModule=Rhedeg proses uwchraddio pwrpasol o fodiwl allanol +SetAtLeastOneOptionAsUrlParameter=Gosodwch o leiaf un opsiwn fel paramedr yn URL. Er enghraifft: '...repair.php?standard=confirmed' +NothingToDelete=Dim byd i'w lanhau/dileu +NothingToDo=Dim byd i wneud +######### +# upgrade +MigrationFixData=Atgyweiria ar gyfer data dadnormaleiddio +MigrationOrder=Mudo data ar gyfer archebion cwsmeriaid +MigrationSupplierOrder=Mudo data ar gyfer archebion gwerthwr +MigrationProposal=Mudo data ar gyfer cynigion masnachol +MigrationInvoice=Mudo data ar gyfer anfonebau cwsmeriaid +MigrationContract=Mudo data ar gyfer contractau +MigrationSuccessfullUpdate=Uwchraddio yn llwyddiannus +MigrationUpdateFailed=Wedi methu'r broses uwchraddio +MigrationRelationshipTables=Mudo data ar gyfer tablau perthnasoedd (%s) +MigrationPaymentsUpdate=Cywiro data talu +MigrationPaymentsNumberToUpdate=%s taliad(au) i'w diweddaru +MigrationProcessPaymentUpdate=Diweddaru taliad(au) %s +MigrationPaymentsNothingToUpdate=Dim mwy o bethau i'w gwneud +MigrationPaymentsNothingUpdatable=Dim mwy o daliadau y gellir eu cywiro +MigrationContractsUpdate=Cywiro data contract +MigrationContractsNumberToUpdate=%s contract(au) i'w diweddaru +MigrationContractsLineCreation=Creu llinell gontract ar gyfer contract cyf %s +MigrationContractsNothingToUpdate=Dim mwy o bethau i'w gwneud +MigrationContractsFieldDontExist=Nid yw maes fk_facture yn bodoli mwyach. Dim byd i wneud. +MigrationContractsEmptyDatesUpdate=Cywiro dyddiad gwag y contract +MigrationContractsEmptyDatesUpdateSuccess=Cywiro dyddiad gwag y contract wedi'i wneud yn llwyddiannus +MigrationContractsEmptyDatesNothingToUpdate=Dim dyddiad gwag cytundeb i'w gywiro +MigrationContractsEmptyCreationDatesNothingToUpdate=Dim dyddiad creu contract i'w gywiro +MigrationContractsInvalidDatesUpdate=Cywiro contract dyddiad gwerth gwael +MigrationContractsInvalidDateFix=Contract cywir %s (Dyddiad y contract=%s, dyddiad dechrau gwasanaeth min=%s) +MigrationContractsInvalidDatesNumber=%s contractau wedi'u haddasu +MigrationContractsInvalidDatesNothingToUpdate=Dim dyddiad gyda gwerth drwg i'w gywiro +MigrationContractsIncoherentCreationDateUpdate=Cywiro dyddiad creu contract gwerth drwg +MigrationContractsIncoherentCreationDateUpdateSuccess=Cywiriad dyddiad creu contract gwerth drwg wedi'i wneud yn llwyddiannus +MigrationContractsIncoherentCreationDateNothingToUpdate=Dim gwerth drwg ar gyfer dyddiad creu contract i'w gywiro +MigrationReopeningContracts=Contract agored wedi'i gau trwy gamgymeriad +MigrationReopenThisContract=Ailagor contract %s +MigrationReopenedContractsNumber=%s contractau wedi'u haddasu +MigrationReopeningContractsNothingToUpdate=Dim cytundeb caeedig i agor +MigrationBankTransfertsUpdate=Diweddaru'r cysylltiadau rhwng cofnod banc a throsglwyddiad banc +MigrationBankTransfertsNothingToUpdate=Mae pob dolen yn gyfredol +MigrationShipmentOrderMatching=Yn anfon diweddariad derbynneb +MigrationDeliveryOrderMatching=Diweddariad derbynneb danfon +MigrationDeliveryDetail=Diweddariad dosbarthu +MigrationStockDetail=Diweddaru gwerth stoc y cynhyrchion +MigrationMenusDetail=Diweddaru tablau dewislenni deinamig +MigrationDeliveryAddress=Diweddaru'r cyfeiriad dosbarthu mewn llwythi +MigrationProjectTaskActors=Mudo data ar gyfer tabl llx_projet_task_actors +MigrationProjectUserResp=Maes mudo data fk_user_resp o llx_projet i llx_element_contact +MigrationProjectTaskTime=Diweddaru'r amser a dreulir mewn eiliadau +MigrationActioncommElement=Diweddaru data ar gamau gweithredu +MigrationPaymentMode=Mudo data ar gyfer math o daliad +MigrationCategorieAssociation=Mudo categorïau +MigrationEvents=Mudo digwyddiadau i ychwanegu perchennog digwyddiad i'r tabl aseiniadau +MigrationEventsContact=Mudo digwyddiadau i ychwanegu cyswllt digwyddiad i'r tabl aseiniadau +MigrationRemiseEntity=Diweddaru gwerth maes endid llx_societe_remise +MigrationRemiseExceptEntity=Diweddaru gwerth maes endid o llx_societe_remise_except +MigrationUserRightsEntity=Diweddaru gwerth maes endid llx_user_rights +MigrationUserGroupRightsEntity=Diweddaru gwerth maes endid o llx_usergroup_rights +MigrationUserPhotoPath=Mudo llwybrau lluniau ar gyfer defnyddwyr +MigrationFieldsSocialNetworks=Mudo defnyddwyr mewn meysydd rhwydweithiau cymdeithasol (%s) +MigrationReloadModule=Ail-lwytho modiwl %s +MigrationResetBlockedLog=Ailosod modiwl BlockedLog ar gyfer algorithm v7 +MigrationImportOrExportProfiles=Mudo proffiliau mewnforio neu allforio (%s) +ShowNotAvailableOptions=Dangos opsiynau nad ydynt ar gael +HideNotAvailableOptions=Cuddio opsiynau nad ydynt ar gael +ErrorFoundDuringMigration=Adroddwyd am wall(au) yn ystod y broses fudo felly nid yw'r cam nesaf ar gael. I anwybyddu gwallau, gallwch cliciwch yma , ond efallai na fydd y cais neu rai nodweddion yn gweithio'n gywir nes bod y gwallau wedi'u datrys. +YouTryInstallDisabledByDirLock=Ceisiodd y rhaglen hunan-uwchraddio, ond mae'r tudalennau gosod/uwchraddio wedi'u hanalluogi er diogelwch (cyfeiriadur wedi'i ailenwi ag ôl-ddodiad .lock).
    +YouTryInstallDisabledByFileLock=Ceisiodd y cymhwysiad hunan-uwchraddio, ond mae'r tudalennau gosod/uwchraddio wedi'u hanalluogi er diogelwch (trwy fodolaeth ffeil clo install.lock yn y cyfeiriadur dogfennau dolibarr).
    +ClickHereToGoToApp=Cliciwch yma i fynd i'ch cais +ClickOnLinkOrRemoveManualy=Os oes uwchraddiad ar y gweill, arhoswch. Os na, cliciwch ar y ddolen ganlynol. Os byddwch bob amser yn gweld yr un dudalen hon, rhaid i chi dynnu / ailenwi'r ffeil install.lock yn y cyfeiriadur dogfennau. +Loaded=Wedi'i lwytho +FunctionTest=Prawf swyddogaeth diff --git a/htdocs/langs/cy_GB/interventions.lang b/htdocs/langs/cy_GB/interventions.lang new file mode 100644 index 00000000000..199e7015404 --- /dev/null +++ b/htdocs/langs/cy_GB/interventions.lang @@ -0,0 +1,70 @@ +# Dolibarr language file - Source file is en_US - interventions +Intervention=Ymyrraeth +Interventions=Ymyriadau +InterventionCard=Cerdyn ymyrraeth +NewIntervention=Ymyrraeth newydd +AddIntervention=Creu ymyrraeth +ChangeIntoRepeatableIntervention=Newid i ymyrraeth amlroddadwy +ListOfInterventions=Rhestr o ymyriadau +ActionsOnFicheInter=Camau gweithredu ar ymyrraeth +LastInterventions=Ymyriadau %s diweddaraf +AllInterventions=Pob ymyriad +CreateDraftIntervention=Creu drafft +InterventionContact=Cyswllt ymyrraeth +DeleteIntervention=Dileu ymyriad +ValidateIntervention=Dilysu ymyriad +ModifyIntervention=Addasu ymyriad +DeleteInterventionLine=Dileu llinell ymyrraeth +ConfirmDeleteIntervention=Ydych chi'n siŵr eich bod am ddileu'r ymyriad hwn? +ConfirmValidateIntervention=A ydych yn siŵr eich bod am ddilysu'r ymyriad hwn o dan yr enw %s ? +ConfirmModifyIntervention=A ydych yn siŵr eich bod am addasu'r ymyriad hwn? +ConfirmDeleteInterventionLine=Ydych chi'n siŵr eich bod am ddileu'r llinell ymyrraeth hon? +ConfirmCloneIntervention=A ydych yn siŵr eich bod am glonio'r ymyriad hwn? +NameAndSignatureOfInternalContact=Enw a llofnod yr ymyrrwr: +NameAndSignatureOfExternalContact=Enw a llofnod y cwsmer: +DocumentModelStandard=Model dogfen safonol ar gyfer ymyriadau +InterventionCardsAndInterventionLines=Ymyriadau a llinellau ymyriadau +InterventionClassifyBilled=Dosbarthu "Bil" +InterventionClassifyUnBilled=Dosbarthu "Heb fil" +InterventionClassifyDone=Dosbarthu "Gwneud" +StatusInterInvoiced=Wedi'i filio +SendInterventionRef=Cyflwyno ymyriad %s +SendInterventionByMail=Anfonwch ymyriad trwy e-bost +InterventionCreatedInDolibarr=Ymyrraeth %s wedi'i greu +InterventionValidatedInDolibarr=Ymyrraeth %s wedi'i ddilysu +InterventionModifiedInDolibarr=Ymyrraeth %s wedi'i addasu +InterventionClassifiedBilledInDolibarr=Ymyrraeth %s wedi'i osod fel y'i bil +InterventionClassifiedUnbilledInDolibarr=Ymyrraeth %s wedi'i osod fel un heb ei filio +InterventionSentByEMail=Ymyrraeth %s wedi'i anfon trwy e-bost +InterventionDeletedInDolibarr=Ymyrraeth %s wedi'i ddileu +InterventionsArea=Maes ymyriadau +DraftFichinter=Ymyriadau drafft +LastModifiedInterventions=Ymyriadau diweddaraf wedi'u haddasu %s +FichinterToProcess=Ymyriadau i'w prosesu +TypeContact_fichinter_external_CUSTOMER=Cyswllt dilynol â chwsmeriaid +PrintProductsOnFichinter=Argraffwch hefyd linellau o fath "cynnyrch" (nid gwasanaethau yn unig) ar gerdyn ymyrraeth +PrintProductsOnFichinterDetails=ymyriadau a gynhyrchir o orchmynion +UseServicesDurationOnFichinter=Defnyddio hyd gwasanaethau ar gyfer ymyriadau a gynhyrchir o orchmynion +UseDurationOnFichinter=Yn cuddio'r maes hyd ar gyfer cofnodion ymyrraeth +UseDateWithoutHourOnFichinter=Yn cuddio oriau a munudau oddi ar y maes dyddiad ar gyfer cofnodion ymyrraeth +InterventionStatistics=Ystadegau ymyriadau +NbOfinterventions=Nifer y cardiau ymyrraeth +NumberOfInterventionsByMonth=Nifer y cardiau ymyrryd fesul mis (dyddiad dilysu) +AmountOfInteventionNotIncludedByDefault=Nid yw swm yr ymyriad yn cael ei gynnwys yn yr elw yn ddiofyn (yn y rhan fwyaf o achosion, defnyddir taflenni amser i gyfrif yr amser a dreuliwyd). Ychwanegu opsiwn PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT i 1 i'r gosodiad cartref-arall i'w cynnwys. +InterId=ID ymyrraeth +InterRef=Cyf ymyrraeth. +InterDateCreation=Ymyrraeth creu dyddiad +InterDuration=Hyd ymyriad +InterStatus=Ymyrraeth statws +InterNote=Nodwch ymyriad +InterLine=Llinell ymyrraeth +InterLineId=Llinell id ymyrraeth +InterLineDate=Ymyrraeth dyddiad llinell +InterLineDuration=Ymyrraeth hyd llinell +InterLineDesc=Ymyrraeth disgrifiad llinell +RepeatableIntervention=Templed ymyrraeth +ToCreateAPredefinedIntervention=I greu ymyriad rhagddiffiniedig neu gylchol, creu ymyriad cyffredin a'i drosi'n dempled ymyrraeth +ConfirmReopenIntervention=A ydych yn siŵr eich bod am agor yr ymyriad %s ? +GenerateInter=Cynhyrchu ymyrraeth +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/cy_GB/intracommreport.lang b/htdocs/langs/cy_GB/intracommreport.lang new file mode 100644 index 00000000000..095b4f8ef61 --- /dev/null +++ b/htdocs/langs/cy_GB/intracommreport.lang @@ -0,0 +1,40 @@ +Module68000Name = Adroddiad Intracomm +Module68000Desc = Rheoli adroddiadau Intracomm (Cymorth ar gyfer fformat DEB/DES Ffrangeg) +IntracommReportSetup = Gosod modiwl Intracommreport +IntracommReportAbout = Ynglŷn ag adroddiad intracomm + +# Setup +INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement) +INTRACOMMREPORT_TYPE_ACTEUR=Math d'acteur +INTRACOMMREPORT_ROLE_ACTEUR=Rôl 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=Categori gwasanaethau o'r math "Frais de port" + +INTRACOMMREPORT_NUM_DECLARATION=Rhif declarant + +# Menu +MenuIntracommReport=Adroddiad Intracomm +MenuIntracommReportNew=Datganiad newydd +MenuIntracommReportList=Rhestr + +# View +NewDeclaration=Datganiad newydd +Declaration=Datganiad +AnalysisPeriod=Cyfnod dadansoddi +TypeOfDeclaration=Math o ddatganiad +DEB=Datganiad cyfnewid nwyddau (DEB) +DES=Datganiad cyfnewid gwasanaethau (DES) + +# Export page +IntracommReportTitle=Paratoi ffeil XML mewn fformat ProDouane + +# List +IntracommReportList=Rhestr o ddatganiadau a gynhyrchwyd +IntracommReportNumber=Nifer y datganiad +IntracommReportPeriod=Cyfnod dadansoddi +IntracommReportTypeDeclaration=Math o ddatganiad +IntracommReportDownload=lawrlwytho ffeil XML + +# Invoice +IntracommReportTransportMode=Dull trafnidiaeth diff --git a/htdocs/langs/cy_GB/knowledgemanagement.lang b/htdocs/langs/cy_GB/knowledgemanagement.lang new file mode 100644 index 00000000000..10de67e111d --- /dev/null +++ b/htdocs/langs/cy_GB/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 = System Rheoli Gwybodaeth +# Module description 'ModuleKnowledgeManagementDesc' +ModuleKnowledgeManagementDesc=Rheoli sylfaen Rheoli Gwybodaeth (KM) neu Ddesg Gymorth + +# +# Admin page +# +KnowledgeManagementSetup = Sefydlu System Rheoli Gwybodaeth +Settings = Gosodiadau +KnowledgeManagementSetupPage = Tudalen sefydlu System Rheoli Gwybodaeth + + +# +# About page +# +About = Ynghylch +KnowledgeManagementAbout = Am Reoli Gwybodaeth +KnowledgeManagementAboutPage = Rheoli Gwybodaeth am dudalen + +KnowledgeManagementArea = Rheoli Gwybodaeth +MenuKnowledgeRecord = Sylfaen wybodaeth +ListKnowledgeRecord = Rhestr o erthyglau +NewKnowledgeRecord = Erthygl newydd +ValidateReply = Dilysu ateb +KnowledgeRecords = Erthyglau +KnowledgeRecord = Erthygl +KnowledgeRecordExtraFields = Extrafields ar gyfer Erthygl +GroupOfTicket=Grŵp o docynnau +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 +ConfirmCloseKM=A ydych yn cadarnhau cau'r erthygl hon fel un sydd wedi darfod ? +ConfirmReopenKM=Ydych chi am adfer yr erthygl hon i statws "Dilyswyd" ? diff --git a/htdocs/langs/cy_GB/languages.lang b/htdocs/langs/cy_GB/languages.lang new file mode 100644 index 00000000000..9869f173335 --- /dev/null +++ b/htdocs/langs/cy_GB/languages.lang @@ -0,0 +1,120 @@ +# Dolibarr language file - Source file is en_US - languages +Language_am_ET=Ethiopiad +Language_ar_AR=Arabeg +Language_ar_DZ=Arabeg (Algeria) +Language_ar_EG=Arabeg (yr Aifft) +Language_ar_JO=Arabeg (Jordania) +Language_ar_MA=Arabeg (Moroco) +Language_ar_SA=Arabeg +Language_ar_TN=Arabeg (Tiwnisia) +Language_ar_IQ=Arabeg (Irac) +Language_as_IN=Asameg +Language_az_AZ=Azerbaijani +Language_bn_BD=Bengali +Language_bn_IN=Bengaleg (India) +Language_bg_BG=Bwlgareg +Language_bs_BA=Bosnieg +Language_ca_ES=Catalaneg +Language_cs_CZ=Tsiec +Language_cy_GB=Welsh +Language_da_DA=Daneg +Language_da_DK=Daneg +Language_de_DE=Almaeneg +Language_de_AT=Almaeneg (Awstria) +Language_de_CH=Almaeneg (y Swistir) +Language_el_GR=Groeg +Language_el_CY=Groeg (Cyprus) +Language_en_AE=Saesneg (Emiradau Arabaidd Unedig) +Language_en_AU=Saesneg (Awstralia) +Language_en_CA=Saesneg (Canada) +Language_en_GB=Saesneg (y Deyrnas Unedig) +Language_en_IN=Saesneg (India) +Language_en_NZ=Saesneg (Seland Newydd) +Language_en_SA=Saesneg (Saudi Arabia) +Language_en_SG=Saesneg (Singapôr) +Language_en_US=Saesneg (Unol Daleithiau) +Language_en_ZA=Saesneg (De Affrica) +Language_es_ES=Sbaeneg +Language_es_AR=Sbaeneg (Ariannin) +Language_es_BO=Sbaeneg (Bolivia) +Language_es_CL=Sbaeneg (Chile) +Language_es_CO=Sbaeneg (Colombia) +Language_es_DO=Sbaeneg (Gweriniaeth Ddominicaidd) +Language_es_EC=Sbaeneg (Ecwador) +Language_es_GT=Sbaeneg (Guatemala) +Language_es_HN=Sbaeneg (Honduras) +Language_es_MX=Sbaeneg (Mecsico) +Language_es_PA=Sbaeneg (Panama) +Language_es_PY=Sbaeneg (Paragwâi) +Language_es_PE=Sbaeneg (Periw) +Language_es_PR=Sbaeneg (Puerto Rico) +Language_es_US=Sbaeneg (UDA) +Language_es_UY=Sbaeneg (Urwgwai) +Language_es_GT=Sbaeneg (Guatemala) +Language_es_VE=Sbaeneg (Fenisela) +Language_et_EE=Estoneg +Language_eu_ES=Basgeg +Language_fa_IR=Perseg +Language_fi_FI=Ffinneg +Language_fr_BE=Ffrangeg (Gwlad Belg) +Language_fr_CA=Ffrangeg (Canada) +Language_fr_CH=Ffrangeg (y Swistir) +Language_fr_CI=Ffrangeg (Cost Ifori) +Language_fr_CM=Ffrangeg (Cameroon) +Language_fr_FR=Ffrangeg +Language_fr_GA=Ffrangeg (Gabon) +Language_fr_NC=Ffrangeg (Caledonia Newydd) +Language_fr_SN=Ffrangeg (Senegal) +Language_fy_NL=Ffriseg +Language_gl_ES=Galiseg +Language_he_IL=Hebraeg +Language_hi_IN=Hindi (India) +Language_hr_HR=Croateg +Language_hu_HU=Hwngareg +Language_id_ID=Indoneseg +Language_is_IS=Islandeg +Language_it_IT=Eidaleg +Language_it_CH=Eidaleg (y Swistir) +Language_ja_JP=Japaneaidd +Language_ka_GE=Sioraidd +Language_kk_KZ=Kazakh +Language_km_KH=Khmer +Language_kn_IN=Kannada +Language_ko_KR=Corëeg +Language_lo_LA=Lao +Language_lt_LT=Lithwaneg +Language_lv_LV=Latfieg +Language_mk_MK=Macedoneg +Language_mn_MN=Mongoleg +Language_my_MM=Byrmaneg +Language_nb_NO=Norwyeg (Bokmål) +Language_ne_NP=Nepali +Language_nl_BE=Iseldireg (Gwlad Belg) +Language_nl_NL=Iseldireg +Language_pl_PL=Pwyleg +Language_pt_AO=Portiwgaleg (Angola) +Language_pt_BR=Portiwgaleg (Brasil) +Language_pt_PT=Portiwgaleg +Language_ro_MD=Rwmaneg (Moldafia) +Language_ro_RO=Rwmania +Language_ru_RU=Rwsieg +Language_ru_UA=Rwsieg (Wcráin) +Language_ta_IN=Tamil +Language_tg_TJ=Tajiceg +Language_tr_TR=Twrceg +Language_sl_SI=Slofeneg +Language_sv_SV=Swedeg +Language_sv_SE=Swedeg +Language_sq_AL=Albaneg +Language_sk_SK=Slofacia +Language_sr_RS=Serbeg +Language_sw_SW=Ciswahili +Language_th_TH=Thai +Language_uk_UA=Wcrain +Language_ur_PK=Wrdw +Language_uz_UZ=Wsbeceg +Language_vi_VN=Fietnameg +Language_zh_CN=Tseiniaidd +Language_zh_TW=Tsieinëeg (Traddodiadol) +Language_zh_HK=Tsieinëeg (Hong Kong) +Language_bh_MY=Maleieg diff --git a/htdocs/langs/cy_GB/ldap.lang b/htdocs/langs/cy_GB/ldap.lang new file mode 100644 index 00000000000..b3f5f675270 --- /dev/null +++ b/htdocs/langs/cy_GB/ldap.lang @@ -0,0 +1,31 @@ +# Dolibarr language file - Source file is en_US - ldap +YouMustChangePassNextLogon=Rhaid newid cyfrinair ar gyfer defnyddiwr %s ar y parth %s +UserMustChangePassNextLogon=Rhaid i ddefnyddiwr newid cyfrinair ar y parth %s +LDAPInformationsForThisContact=Gwybodaeth yng nghronfa ddata LDAP ar gyfer y cyswllt hwn +LDAPInformationsForThisUser=Gwybodaeth yng nghronfa ddata LDAP ar gyfer y defnyddiwr hwn +LDAPInformationsForThisGroup=Gwybodaeth yng nghronfa ddata LDAP ar gyfer y grŵp hwn +LDAPInformationsForThisMember=Gwybodaeth yng nghronfa ddata LDAP ar gyfer yr aelod hwn +LDAPInformationsForThisMemberType=Gwybodaeth yng nghronfa ddata LDAP ar gyfer y math hwn o aelod +LDAPAttributes=Priodoleddau LDAP +LDAPCard=cerdyn LDAP +LDAPRecordNotFound=Ni chanfuwyd y cofnod yng nghronfa ddata LDAP +LDAPUsers=Defnyddwyr cronfa ddata LDAP +LDAPFieldStatus=Statws +LDAPFieldFirstSubscriptionDate=Dyddiad tanysgrifio cyntaf +LDAPFieldFirstSubscriptionAmount=Swm y tanysgrifiad cyntaf +LDAPFieldLastSubscriptionDate=Dyddiad tanysgrifio diweddaraf +LDAPFieldLastSubscriptionAmount=Swm y tanysgrifiad diweddaraf +LDAPFieldSkype=ID Skype +LDAPFieldSkypeExample=Enghraifft: skypeName +UserSynchronized=Defnyddiwr wedi'i gysoni +GroupSynchronized=Grŵp wedi'i gysoni +MemberSynchronized=Aelod wedi'i gysoni +MemberTypeSynchronized=Math o aelod wedi'i gysoni +ContactSynchronized=Cyswllt wedi'i gysoni +ForceSynchronize=Gorfodi cysoni Dolibarr -> LDAP +ErrorFailedToReadLDAP=Wedi methu darllen cronfa ddata LDAP. Gwiriwch osod modiwl LDAP a hygyrchedd cronfa ddata. +PasswordOfUserInLDAP=Cyfrinair defnyddiwr yn LDAP +LDAPPasswordHashType=Math o hash cyfrinair +LDAPPasswordHashTypeExample=Math o hash cyfrinair a ddefnyddir ar y gweinydd +SupportedForLDAPExportScriptOnly=Cefnogir gan sgript allforio ldap yn unig +SupportedForLDAPImportScriptOnly=Cefnogir gan sgript mewnforio ldap yn unig diff --git a/htdocs/langs/cy_GB/link.lang b/htdocs/langs/cy_GB/link.lang new file mode 100644 index 00000000000..2cdbc0e3d5b --- /dev/null +++ b/htdocs/langs/cy_GB/link.lang @@ -0,0 +1,11 @@ +# Dolibarr language file - Source file is en_US - languages +LinkANewFile=Cysylltwch ffeil/dogfen newydd +LinkedFiles=Ffeiliau a dogfennau cysylltiedig +NoLinkFound=Dim dolenni cofrestredig +LinkComplete=Mae'r ffeil wedi'i chysylltu'n llwyddiannus +ErrorFileNotLinked=Nid oedd modd cysylltu'r ffeil +LinkRemoved=Mae'r cyswllt %s wedi'i ddileu +ErrorFailedToDeleteLink= Wedi methu tynnu dolen ' %s ' +ErrorFailedToUpdateLink= Wedi methu diweddaru'r ddolen ' %s ' +URLToLink=URL i'r ddolen +OverwriteIfExists=Trosysgrifo ffeil os yw'n bodoli diff --git a/htdocs/langs/cy_GB/loan.lang b/htdocs/langs/cy_GB/loan.lang new file mode 100644 index 00000000000..9905e346b7a --- /dev/null +++ b/htdocs/langs/cy_GB/loan.lang @@ -0,0 +1,34 @@ +# Dolibarr language file - Source file is en_US - loan +Loan=Benthyciad +Loans=Benthyciadau +NewLoan=Benthyciad Newydd +ShowLoan=Benthyciad Dangos +PaymentLoan=Taliad benthyciad +LoanPayment=Taliad benthyciad +ShowLoanPayment=Dangos Taliad Benthyciad +LoanCapital=Cyfalaf +Insurance=Yswiriant +Interest=Llog +Nbterms=Nifer y termau +Term=Tymor +LoanAccountancyCapitalCode=Cyfalaf cyfrif cyfrifo +LoanAccountancyInsuranceCode=Yswiriant cyfrif cyfrifeg +LoanAccountancyInterestCode=Llog cyfrif cyfrifeg +ConfirmDeleteLoan=Cadarnhewch ddileu'r benthyciad hwn +LoanDeleted=Benthyciad wedi'i Dileu'n Llwyddiannus +ConfirmPayLoan=Cadarnhewch y talwyd y benthyciad hwn gan y dosbarth +LoanPaid=Benthyciad a Dalwyd +ListLoanAssociatedProject=Rhestr o fenthyciadau sy'n gysylltiedig â'r prosiect +AddLoan=Creu benthyciad +FinancialCommitment=Ymrwymiad ariannol +InterestAmount=Llog +CapitalRemain=Cyfalaf yn aros +TermPaidAllreadyPaid = Mae'r tymor hwn eisoes wedi'i dalu +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 +CreateCalcSchedule=Golygu ymrwymiad ariannol diff --git a/htdocs/langs/cy_GB/mailmanspip.lang b/htdocs/langs/cy_GB/mailmanspip.lang new file mode 100644 index 00000000000..1db1989b38a --- /dev/null +++ b/htdocs/langs/cy_GB/mailmanspip.lang @@ -0,0 +1,27 @@ +# Dolibarr language file - Source file is en_US - mailmanspip +MailmanSpipSetup=Gosod modiwl Mailman a SPIP +MailmanTitle=System rhestr bostio Mailman +TestSubscribe=I brofi tanysgrifiad i restrau Mailman +TestUnSubscribe=I brofi dad-danysgrifio o restrau Mailman +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_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) +SPIPTitle=System Rheoli Cynnwys SPIP +DescADHERENT_SPIP_SERVEUR=Gweinydd SPIP +DescADHERENT_SPIP_DB=Enw cronfa ddata SPIP +DescADHERENT_SPIP_USER=Mewngofnod cronfa ddata SPIP +DescADHERENT_SPIP_PASS=Cyfrinair cronfa ddata SPIP +AddIntoSpip=Ychwanegu i SPIP +AddIntoSpipConfirmation=Ydych chi'n siŵr eich bod am ychwanegu'r aelod hwn i SPIP? +AddIntoSpipError=Wedi methu ag ychwanegu'r defnyddiwr yn SPIP +DeleteIntoSpip=Dileu o SPIP +DeleteIntoSpipConfirmation=Ydych chi'n siŵr eich bod am dynnu'r aelod hwn o SPIP? +DeleteIntoSpipError=Wedi methu ag atal y defnyddiwr rhag SPIP +SPIPConnectionFailed=Wedi methu cysylltu â SPIP +SuccessToAddToMailmanList=%s wedi'i ychwanegu'n llwyddiannus at restr postmon %s neu gronfa ddata SPIP +SuccessToRemoveToMailmanList=%s wedi'i dynnu'n llwyddiannus o restr postmon %s neu gronfa ddata SPIP diff --git a/htdocs/langs/cy_GB/mails.lang b/htdocs/langs/cy_GB/mails.lang new file mode 100644 index 00000000000..e8abe9219d3 --- /dev/null +++ b/htdocs/langs/cy_GB/mails.lang @@ -0,0 +1,180 @@ +# Dolibarr language file - Source file is en_US - mails +Mailing=E-bostio +EMailing=E-bostio +EMailings=E-byst +AllEMailings=Pob e-bost +MailCard=Cerdyn e-bost +MailRecipients=Derbynwyr +MailRecipient=Derbynnydd +MailTitle=Disgrifiad +MailFrom=Anfonwr +MailErrorsTo=Gwallau i +MailReply=Ateb i +MailTo=Derbynnydd +MailToUsers=I ddefnyddiwr(wyr) +MailCC=Copi i +MailToCCUsers=Copïo i ddefnyddiwr(wyr) +MailCCC=Copi wedi'i gadw i +MailTopic=Testun e-bost +MailText=Neges +MailFile=Ffeiliau wedi'u hatodi +MailMessage=Corff e-bost +SubjectNotIn=Ddim mewn Pwnc +BodyNotIn=Ddim yn y Corff +ShowEMailing=Dangos e-bostio +ListOfEMailings=Rhestr o negeseuon e-bost +NewMailing=E-bostio newydd +EditMailing=Golygu e-byst +ResetMailing=Ail-anfon e-bost +DeleteMailing=Dileu e-bostio +DeleteAMailing=Dileu e-bost +PreviewMailing=Rhagolwg o'r e-bostio +CreateMailing=Creu e-bostio +TestMailing=Prawf e-bost +ValidMailing=E-bostio dilys +MailingStatusDraft=Drafft +MailingStatusValidated=Wedi'i ddilysu +MailingStatusSent=Anfonwyd +MailingStatusSentPartialy=Wedi'i anfon yn rhannol +MailingStatusSentCompletely=Wedi'i anfon yn llwyr +MailingStatusError=Gwall +MailingStatusNotSent=Heb ei anfon +MailSuccessfulySent=Derbyniwyd e-bost (o %s i %s) yn llwyddiannus i'w ddosbarthu +MailingSuccessfullyValidated=E-bostio wedi'i ddilysu'n llwyddiannus +MailUnsubcribe=Dad-danysgrifio +MailingStatusNotContact=Peidiwch â chysylltu mwyach +MailingStatusReadAndUnsubscribe=Darllen a dad-danysgrifio +ErrorMailRecipientIsEmpty=Derbynnydd e-bost yn wag +WarningNoEMailsAdded=Dim e-bost newydd i'w ychwanegu at restr y derbynwyr. +ConfirmValidMailing=Ydych chi'n siŵr eich bod am ddilysu'r e-bost hwn? +ConfirmResetMailing=Rhybudd, trwy ail-gychwyn e-bostio %s , byddwch yn caniatáu ail-anfon yr e-bost hwn mewn swmp-bost. Ydych chi'n siŵr eich bod am wneud hyn? +ConfirmDeleteMailing=Ydych chi'n siŵr eich bod am ddileu'r e-bost hwn? +NbOfUniqueEMails=Nifer yr e-byst unigryw +NbOfEMails=Nifer yr E-byst +TotalNbOfDistinctRecipients=Nifer y derbynwyr gwahanol +NoTargetYet=Dim derbynwyr wedi'u diffinio eto (Ewch ar y tab 'Derbynwyr') +NoRecipientEmail=Dim e-bost derbynnydd ar gyfer %s +RemoveRecipient=Dileu derbynnydd +YouCanAddYourOwnPredefindedListHere=I greu eich modiwl dewiswr e-bost, gweler htdocs/core/modules/mailings/README. +EMailTestSubstitutionReplacedByGenericValues=Wrth ddefnyddio modd prawf, mae gwerthoedd generig yn disodli newidynnau amnewidion +MailingAddFile=Atodwch y ffeil hon +NoAttachedFiles=Dim ffeiliau ynghlwm +BadEMail=Gwerth gwael ar gyfer E-bost +EMailNotDefined=E-bost heb ei ddiffinio +ConfirmCloneEMailing=Ydych chi'n siŵr eich bod am glonio'r e-bost hwn? +CloneContent=Neges clôn +CloneReceivers=Derbynwyr cloner +DateLastSend=Dyddiad anfon diweddaraf +DateSending=Dyddiad anfon +SentTo=Anfon i %s +MailingStatusRead=Darllen +YourMailUnsubcribeOK=Mae'r e-bost %s wedi'i ddad-danysgrifio'n gywir o'r rhestr bostio +ActivateCheckReadKey=Defnyddir yr allwedd i amgryptio URL a ddefnyddir ar gyfer y nodwedd "Darllen Derbyn" a "Dad-danysgrifio". +EMailSentToNRecipients=Anfonwyd e-bost at dderbynwyr %s. +EMailSentForNElements=E-bost wedi'i anfon ar gyfer elfennau %s. +XTargetsAdded= %s derbynwyr wedi'u hychwanegu at y rhestr darged +OnlyPDFattachmentSupported=Os oedd y dogfennau PDF eisoes wedi'u cynhyrchu i'r gwrthrychau eu hanfon, byddant yn cael eu hatodi i e-bost. Os na, ni fydd unrhyw e-bost yn cael ei anfon (sylwer hefyd mai dim ond dogfennau pdf sy'n cael eu cefnogi fel atodiadau wrth anfon y fersiwn hon). +AllRecipientSelected=Derbynwyr y cofnod %s a ddewiswyd (os yw eu e-bost yn hysbys). +GroupEmails=E-byst grŵp +OneEmailPerRecipient=Un e-bost fesul derbynnydd (yn ddiofyn, dewiswyd un e-bost fesul cofnod) +WarningIfYouCheckOneRecipientPerEmail=Rhybudd, os byddwch yn ticio'r blwch hwn, mae'n golygu mai dim ond un e-bost fydd yn cael ei anfon ar gyfer sawl cofnod gwahanol a ddewiswyd, felly, os yw'ch neges yn cynnwys newidynnau amnewid sy'n cyfeirio at ddata cofnod, ni fydd yn bosibl eu disodli. +ResultOfMailSending=Canlyniad anfon e-bost torfol +NbSelected=Nifer a ddewiswyd +NbIgnored=Nifer wedi ei hanwybyddu +NbSent=Nifer a anfonwyd +SentXXXmessages=%s neges(nau) wedi'u hanfon. +ConfirmUnvalidateEmailing=Ydych chi'n siŵr eich bod am newid e-bost %s i statws drafft? +MailingModuleDescContactsWithThirdpartyFilter=Cysylltwch â hidlwyr cwsmeriaid +MailingModuleDescContactsByCompanyCategory=Cysylltiadau yn ôl categori trydydd parti +MailingModuleDescContactsByCategory=Cysylltiadau yn ôl categorïau +MailingModuleDescContactsByFunction=Cysylltiadau yn ôl swydd +MailingModuleDescEmailsFromFile=E-byst o ffeil +MailingModuleDescEmailsFromUser=Mewnbwn e-byst gan ddefnyddiwr +MailingModuleDescDolibarrUsers=Defnyddwyr ag E-byst +MailingModuleDescThirdPartiesByCategories=Trydydd partïon (yn ôl categorïau) +SendingFromWebInterfaceIsNotAllowed=Ni chaniateir anfon o ryngwyneb gwe. +EmailCollectorFilterDesc=Rhaid i bob hidlydd gyfateb i gael e-bost yn cael ei gasglu + +# Libelle des modules de liste de destinataires mailing +LineInFile=Llinell %s yn y ffeil +RecipientSelectionModules=Ceisiadau diffiniedig ar gyfer dewis derbynnydd +MailSelectedRecipients=Derbynwyr dethol +MailingArea=Maes e-byst +LastMailings=Yr e-byst %s diweddaraf +TargetsStatistics=Ystadegau targedau +NbOfCompaniesContacts=Cysylltiadau/cyfeiriadau unigryw +MailNoChangePossible=Nid oes modd newid y sawl sy'n derbyn e-byst dilys +SearchAMailing=Chwilio drwy'r post +SendMailing=Anfon e-bost +SentBy=Anfonwyd gan +MailingNeedCommand=Gellir anfon e-bost o'r llinell orchymyn. Gofynnwch i'ch gweinyddwr gweinyddwr lansio'r gorchymyn canlynol i anfon yr e-bost at yr holl dderbynwyr: +MailingNeedCommand2=Fodd bynnag, gallwch eu hanfon ar-lein trwy ychwanegu paramedr MAILING_LIMIT_SENDBYWEB gyda gwerth uchafswm yr e-byst rydych am eu hanfon fesul sesiwn. Ar gyfer hyn, ewch ymlaen Cartref - Gosod - Arall. +ConfirmSendingEmailing=Os ydych am anfon e-byst yn uniongyrchol o'r sgrin hon, cadarnhewch eich bod yn siŵr eich bod am anfon e-byst nawr o'ch porwr ? +LimitSendingEmailing=Nodyn: Anfonir e-byst o ryngwyneb gwe sawl gwaith am resymau diogelwch a goramser, %s derbynwyr ar y tro ar gyfer pob sesiwn anfon. +TargetsReset=Rhestr glir +ToClearAllRecipientsClickHere=Cliciwch yma i glirio'r rhestr derbynwyr ar gyfer yr e-bost hwn +ToAddRecipientsChooseHere=Ychwanegwch dderbynwyr trwy ddewis o'r rhestrau +NbOfEMailingsReceived=Derbyniwyd e-byst torfol +NbOfEMailingsSend=Anfonwyd e-byst torfol +IdRecord=Cofnod ID +DeliveryReceipt=Cludo Ack. +YouCanUseCommaSeparatorForSeveralRecipients=Gallwch ddefnyddio'r gwahanydd atalnod i nodi sawl derbynnydd. +TagCheckMail=Agor post trac +TagUnsubscribe=Dolen dad-danysgrifio +TagSignature=Llofnod y defnyddiwr anfon +EMailRecipient=E-bost Derbynnydd +TagMailtoEmail=E-bost Derbynnydd (gan gynnwys dolen html "mailto:") +NoEmailSentBadSenderOrRecipientEmail=Dim e-bost wedi'i anfon. E-bost anfonwr neu dderbynnydd gwael. Gwirio proffil defnyddiwr. +# Module Notifications +Notifications=Hysbysiadau +NotificationsAuto=Hysbysiadau Auto. +NoNotificationsWillBeSent=Nid oes unrhyw hysbysiadau e-bost awtomatig wedi'u cynllunio ar gyfer y math hwn o ddigwyddiad a chwmni +ANotificationsWillBeSent=Bydd 1 hysbysiad awtomatig yn cael ei anfon trwy e-bost +SomeNotificationsWillBeSent=%s bydd hysbysiadau awtomatig yn cael eu hanfon trwy e-bost +AddNewNotification=Tanysgrifio i hysbysiad e-bost awtomatig newydd (targed/digwyddiad) +ListOfActiveNotifications=Rhestr o'r holl danysgrifiadau gweithredol (targedau/digwyddiadau) ar gyfer hysbysiad e-bost awtomatig +ListOfNotificationsDone=Rhestr o'r holl hysbysiadau e-bost awtomatig a anfonwyd +MailSendSetupIs=Mae ffurfweddiad anfon e-bost wedi'i osod i '%s'. Ni ellir defnyddio'r modd hwn i anfon e-byst torfol. +MailSendSetupIs2=Yn gyntaf rhaid i chi fynd, gyda chyfrif gweinyddol, i'r ddewislen %sHome - Gosod - EMails%s i newid paramedr '%s' a0a65d0709f usefc modec. Gyda'r modd hwn, gallwch chi nodi gosodiad y gweinydd SMTP a ddarperir gan eich Darparwr Gwasanaeth Rhyngrwyd a defnyddio nodwedd e-bostio Offeren. +MailSendSetupIs3=Os oes gennych unrhyw gwestiynau ar sut i osod eich gweinydd SMTP, gallwch ofyn i %s. +YouCanAlsoUseSupervisorKeyword=Gallwch hefyd ychwanegu'r allweddair __SUPERVISOREMAIL__ i anfon e-bost at y goruchwyliwr defnyddiwr (yn gweithio dim ond os yw e-bost wedi'i ddiffinio ar gyfer y goruchwyliwr hwn) +NbOfTargetedContacts=Nifer presennol yr e-byst cyswllt wedi'u targedu +UseFormatFileEmailToTarget=Rhaid i ffeil a fewnforiwyd fod â fformat e-bost; enw; enw cyntaf; arall +UseFormatInputEmailToTarget=Rhowch linyn gyda fformat e-bost; enw; enw cyntaf; arall +MailAdvTargetRecipients=Derbynwyr (detholiad uwch) +AdvTgtTitle=Llenwch y meysydd mewnbwn i ragddewis y trydydd parti neu'r cysylltiadau/cyfeiriadau i'w targedu +AdvTgtSearchTextHelp=Defnyddiwch %% fel cardiau gwyllt. Er enghraifft i ddod o hyd i bob eitem fel jean, joe, jim , gallwch fewnbynnu j%% hefyd; fel gwahanydd am werth, a defnydd ! canys heblaw y gwerth hwn. Er enghraifft jean;joe;jim%%;!jimo;!jima%% fydd yn targedu pob jean, joe, dechreuwch gyda jim ond nid jimo ac nid popeth sy'n dechrau gyda jimo +AdvTgtSearchIntHelp=Defnyddiwch cyfwng i ddewis gwerth int neu arnofio +AdvTgtMinVal=Gwerth lleiaf +AdvTgtMaxVal=Gwerth uchaf +AdvTgtSearchDtHelp=Defnyddiwch gyfwng i ddewis gwerth dyddiad +AdvTgtStartDt=Dechrau dt. +AdvTgtEndDt=Diwedd dt. +AdvTgtTypeOfIncudeHelp=Targed E-bost trydydd parti ac e-bost cyswllt y trydydd parti, neu e-bost trydydd parti yn unig neu e-bost cyswllt yn unig +AdvTgtTypeOfIncude=Math o e-bost wedi'i dargedu +AdvTgtContactHelp=Defnyddiwch dim ond os ydych chi'n targedu cyswllt i mewn i "Math o e-bost wedi'i dargedu" +AddAll=Ychwanegwch y cyfan +RemoveAll=Tynnwch y cyfan +ItemsCount=Eitemau) +AdvTgtNameTemplate=Enw hidlo +AdvTgtAddContact=Ychwanegu e-byst yn unol â meini prawf +AdvTgtLoadFilter=Llwytho hidlydd +AdvTgtDeleteFilter=Dileu hidlydd +AdvTgtSaveFilter=Arbed hidlydd +AdvTgtCreateFilter=Creu hidlydd +AdvTgtOrCreateNewFilter=Enw'r hidlydd newydd +NoContactWithCategoryFound=Ni chanfuwyd unrhyw gategori yn gysylltiedig â rhai cysylltiadau/cyfeiriadau +NoContactLinkedToThirdpartieWithCategoryFound=Ni chanfuwyd unrhyw gategori yn gysylltiedig â rhai trydydd parti +OutGoingEmailSetup=E-byst sy'n mynd allan +InGoingEmailSetup=E-byst sy'n dod i mewn +OutGoingEmailSetupForEmailing=E-byst sy'n mynd allan (ar gyfer modiwl %s) +DefaultOutgoingEmailSetup=Yr un ffurfweddiad â'r gosodiad e-bost Outgoing byd-eang +Information=Gwybodaeth +ContactsWithThirdpartyFilter=Cysylltiadau â hidlydd trydydd parti +Unanswered=Heb ateb +Answered=Atebwyd +IsNotAnAnswer=Ddim yn ateb (e-bost cychwynnol) +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 diff --git a/htdocs/langs/cy_GB/main.lang b/htdocs/langs/cy_GB/main.lang new file mode 100644 index 00000000000..d1564b719da --- /dev/null +++ b/htdocs/langs/cy_GB/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=%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=%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=Cysylltiad cronfa ddata +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 +CurrentTimeZone=TimeZone PHP (gweinydd) +EmptySearchString=Rhowch feini prawf chwilio nad ydynt yn wag +EnterADateCriteria=Rhowch feini prawf dyddiad +NoRecordFound=Heb ganfod cofnod +NoRecordDeleted=Dim cofnod wedi'i ddileu +NotEnoughDataYet=Dim digon o ddata +NoError=Dim gwall +Error=Gwall +Errors=Gwallau +ErrorFieldRequired=Mae angen maes '%s' +ErrorFieldFormat=Mae gan faes '%s' werth drwg +ErrorFileDoesNotExists=Nid yw'r ffeil %s yn bodoli +ErrorFailedToOpenFile=Wedi methu agor y ffeil %s +ErrorCanNotCreateDir=Methu creu dir %s +ErrorCanNotReadDir=Methu darllen dir %s +ErrorConstantNotDefined=Paramedr %s heb ei ddiffinio +ErrorUnknown=Gwall anhysbys +ErrorSQL=Gwall SQL +ErrorLogoFileNotFound=Ni ddaethpwyd o hyd i ffeil logo '%s' +ErrorGoToGlobalSetup=Ewch i'r gosodiad 'Cwmni/Sefydliad' i drwsio hyn +ErrorGoToModuleSetup=Ewch i Gosodiad Modiwl i drwsio hyn +ErrorFailedToSendMail=Wedi methu ag anfon post (anfonwr=%s, derbynnydd=%s) +ErrorFileNotUploaded=Ni uwchlwythwyd y ffeil. Gwiriwch nad yw'r maint yn fwy na'r uchafswm a ganiateir, bod gofod rhydd ar gael ar ddisg ac nad oes ffeil gyda'r un enw yn y cyfeiriadur hwn eisoes. +ErrorInternalErrorDetected=Gwall wedi'i ganfod +ErrorWrongHostParameter=Paramedr gwesteiwr anghywir +ErrorYourCountryIsNotDefined=Nid yw eich gwlad wedi'i diffinio. Ewch i Home-Setup-Edit a phostiwch y ffurflen eto. +ErrorRecordIsUsedByChild=Wedi methu dileu'r cofnod hwn. Defnyddir y cofnod hwn gan o leiaf un cofnod plentyn. +ErrorWrongValue=Gwerth anghywir +ErrorWrongValueForParameterX=Gwerth anghywir ar gyfer paramedr %s +ErrorNoRequestInError=Dim cais mewn camgymeriad +ErrorServiceUnavailableTryLater=Gwasanaeth ddim ar gael ar hyn o bryd. Ceisiwch eto yn nes ymlaen. +ErrorDuplicateField=Gwerth dyblyg mewn maes unigryw +ErrorSomeErrorWereFoundRollbackIsDone=Canfuwyd rhai gwallau. Mae newidiadau wedi'u treiglo'n ôl. +ErrorConfigParameterNotDefined=Nid yw'r paramedr %s wedi'i ddiffinio yn ffeil config Dolibarr conf.php . +ErrorCantLoadUserFromDolibarrDatabase=Wedi methu dod o hyd i ddefnyddiwr %s yng nghronfa ddata Dolibarr. +ErrorNoVATRateDefinedForSellerCountry=Gwall, dim cyfraddau TAW wedi'u diffinio ar gyfer gwlad '%s'. +ErrorNoSocialContributionForSellerCountry=Gwall, dim math o drethi cymdeithasol/cyllidol wedi'u diffinio ar gyfer gwlad '%s'. +ErrorFailedToSaveFile=Gwall, methu cadw'r ffeil. +ErrorCannotAddThisParentWarehouse=Rydych chi'n ceisio ychwanegu warws rhiant sydd eisoes yn blentyn i warws sy'n bodoli eisoes +FieldCannotBeNegative=Ni all maes "%s" fod yn negyddol +MaxNbOfRecordPerPage=Max. nifer y cofnodion ar bob tudalen +NotAuthorized=Nid ydych wedi'ch awdurdodi i wneud hynny. +SetDate=Gosod dyddiad +SelectDate=Dewiswch ddyddiad +SeeAlso=Gweler hefyd %s +SeeHere=Gweler yma +ClickHere=Cliciwch yma +Here=Yma +Apply=Ymgeisiwch +BackgroundColorByDefault=Lliw cefndir diofyn +FileRenamed=Cafodd y ffeil ei hailenwi'n llwyddiannus +FileGenerated=Cynhyrchwyd y ffeil yn llwyddiannus +FileSaved=Llwyddwyd i gadw'r ffeil +FileUploaded=Llwythwyd y ffeil i fyny yn llwyddiannus +FileTransferComplete=Ffeil(iau) wedi'u llwytho i fyny yn llwyddiannus +FilesDeleted=Ffeil(iau) wedi'u dileu yn llwyddiannus +FileWasNotUploaded=Mae ffeil wedi'i dewis i'w hatodi ond nid yw wedi'i huwchlwytho eto. Cliciwch ar "Atodwch ffeil" ar gyfer hyn. +NbOfEntries=Nifer y cofnodion +GoToWikiHelpPage=Darllenwch help ar-lein (angen mynediad i'r rhyngrwyd) +GoToHelpPage=Darllenwch help +DedicatedPageAvailable=Tudalen gymorth bwrpasol yn ymwneud â'ch sgrin gyfredol +HomePage=Tudalen Gartref +RecordSaved=Cofnod wedi'i gadw +RecordDeleted=Cofnod wedi'i ddileu +RecordGenerated=Cynhyrchwyd y cofnod +LevelOfFeature=Lefel y nodweddion +NotDefined=Heb ei ddiffinio +DolibarrInHttpAuthenticationSoPasswordUseless=Mae modd dilysu Dolibarr wedi'i osod i %s a09a4b739fz0 mewn ffeil ffurfweddu conf.php .
    Mae hyn yn golygu bod y gronfa ddata cyfrinair y tu allan i Ddolibarr, felly efallai na fydd newid y maes hwn yn cael unrhyw effaith. +Administrator=Gweinyddwr +Undefined=Anniffiniedig +PasswordForgotten=Cyfrinair wedi'i anghofio? +NoAccount=Dim cyfrif? +SeeAbove=Gweler uchod +HomeArea=Cartref +LastConnexion=Mewngofnod diwethaf +PreviousConnexion=Mewngofnodi blaenorol +PreviousValue=Gwerth blaenorol +ConnectedOnMultiCompany=Yn gysylltiedig â'r amgylchedd +ConnectedSince=Wedi cysylltu ers hynny +AuthenticationMode=Modd dilysu +RequestedUrl=URL y gofynnwyd amdano +DatabaseTypeManager=Rheolwr math cronfa ddata +RequestLastAccessInError=Gwall cais mynediad cronfa ddata diweddaraf +ReturnCodeLastAccessInError=Cod dychwelyd ar gyfer y gwall cais mynediad cronfa ddata diweddaraf +InformationLastAccessInError=Gwybodaeth ar gyfer y gwall cais mynediad cronfa ddata diweddaraf +DolibarrHasDetectedError=Mae Dolibarr wedi canfod gwall technegol +YouCanSetOptionDolibarrMainProdToZero=Gallwch ddarllen ffeil log neu osod opsiwn $dolibarr_main_prod i '0' yn eich ffeil ffurfweddu i gael rhagor o wybodaeth. +InformationToHelpDiagnose=Gall y wybodaeth hon fod yn ddefnyddiol at ddibenion diagnostig (gallwch osod yr opsiwn $dolibarr_main_prod i '1' i guddio gwybodaeth sensitif) +MoreInformation=Mwy o wybodaeth +TechnicalInformation=Gwybodaeth dechnegol +TechnicalID=ID Technegol +LineID=ID llinell +NotePublic=Nodyn (cyhoeddus) +NotePrivate=Nodyn (preifat) +PrecisionUnitIsLimitedToXDecimals=Sefydlwyd Dolibarr i gyfyngu cywirdeb prisiau uned i %s degolion. +DoTest=Prawf +ToFilter=Hidlo +NoFilter=Dim hidlydd +WarningYouHaveAtLeastOneTaskLate=Rhybudd, mae gennych o leiaf un elfen sydd wedi mynd y tu hwnt i'r amser goddefgarwch. +yes=oes +Yes=Oes +no=nac oes +No=Nac ydw +All=I gyd +Home=Cartref +Help=Help +OnlineHelp=Cymorth ar-lein +PageWiki=Tudalen Wici +MediaBrowser=Porwr cyfryngau +Always=Bob amser +Never=Byth +Under=dan +Period=Cyfnod +PeriodEndDate=Dyddiad gorffen ar gyfer y cyfnod +SelectedPeriod=Cyfnod dethol +PreviousPeriod=Cyfnod blaenorol +Activate=Ysgogi +Activated=Wedi'i actifadu +Closed=Ar gau +Closed2=Ar gau +NotClosed=Heb ei gau +Enabled=Galluogwyd +Enable=Galluogi +Deprecated=anghymeradwy +Disable=Analluogi +Disabled=Anabl +Add=Ychwanegu +AddLink=Ychwanegu dolen +RemoveLink=Dileu cyswllt +AddToDraft=Ychwanegu at y drafft +Update=Diweddariad +Close=Cau +CloseAs=Gosod statws i +CloseBox=Tynnwch y teclyn o'ch dangosfwrdd +Confirm=Cadarnhau +ConfirmSendCardByMail=Ydych chi wir eisiau anfon cynnwys y cerdyn hwn trwy'r post i %s ? +Delete=Dileu +Remove=Dileu +Resiliate=Terfynu +Cancel=Canslo +Modify=Addasu +Edit=Golygu +Validate=Dilysu +ValidateAndApprove=Dilysu a Chymeradwyo +ToValidate=I ddilysu +NotValidated=Heb ei ddilysu +Save=Arbed +SaveAs=Arbed Fel +SaveAndStay=Arbed ac aros +SaveAndNew=Arbed a newydd +TestConnection=Prawf cysylltiad +ToClone=Clôn +ConfirmCloneAsk=Ydych chi'n siŵr eich bod am glonio'r gwrthrych %s ? +ConfirmClone=Dewiswch y data rydych chi am ei glonio: +NoCloneOptionsSpecified=Dim data i glonio wedi'i ddiffinio. +Of=o +Go=Ewch +Run=Rhedeg +CopyOf=Copi o +Show=Sioe +Hide=Cuddio +ShowCardHere=Dangos cerdyn +Search=Chwiliwch +SearchOf=Chwiliwch +SearchMenuShortCut=Ctrl + shifft + f +QuickAdd=Ychwanegu cyflym +QuickAddMenuShortCut=Ctrl + sifft + l +Valid=Dilys +Approve=Cymeradwyo +Disapprove=Anghymeradwyo +ReOpen=Ail-agor +Upload=Llwytho i fyny +ToLink=Cyswllt +Select=Dewiswch +SelectAll=Dewiswch bob un +Choose=Dewiswch +Resize=Newid maint +ResizeOrCrop=Newid Maint neu Gnwd +Recenter=Diweddar +Author=Awdur +User=Defnyddiwr +Users=Defnyddwyr +Group=Grwp +Groups=Grwpiau +UserGroup=Grŵp defnyddwyr +UserGroups=Grwpiau defnyddwyr +NoUserGroupDefined=Dim grŵp defnyddwyr wedi'i ddiffinio +Password=Cyfrinair +PasswordRetype=Ail-deipiwch eich cyfrinair +NoteSomeFeaturesAreDisabled=Sylwch fod llawer o nodweddion/modiwlau wedi'u hanalluogi yn yr arddangosiad hwn. +Name=Enw +NameSlashCompany=Enw / Cwmni +Person=Person +Parameter=Paramedr +Parameters=Paramedrau +Value=Gwerth +PersonalValue=Gwerth personol +NewObject=%s newydd +NewValue=Gwerth newydd +OldValue=Hen werth %s +CurrentValue=Gwerth cyfredol +Code=Côd +Type=Math +Language=Iaith +MultiLanguage=Aml-iaith +Note=Nodyn +Title=Teitl +Label=Label +RefOrLabel=Cyf. neu label +Info=Log +Family=Teulu +Description=Disgrifiad +Designation=Disgrifiad +DescriptionOfLine=Disgrifiad o'r llinell +DateOfLine=Dyddiad y llinell +DurationOfLine=Hyd y llinell +ParentLine=Parent line ID +Model=Templed dogfen +DefaultModel=Templed doc rhagosodedig +Action=Digwyddiad +About=Ynghylch +Number=Rhif +NumberByMonth=Cyfanswm adroddiadau fesul mis +AmountByMonth=Swm fesul mis +Numero=Rhif +Limit=Terfyn +Limits=Terfynau +Logout=Allgofnodi +NoLogoutProcessWithAuthMode=Dim nodwedd datgysylltu cymwys gyda modd dilysu %s +Connection=Mewngofnodi +Setup=Gosod +Alert=Rhybudd +MenuWarnings=Rhybuddion +Previous=Blaenorol +Next=Nesaf +Cards=Cardiau +Card=Cerdyn +Now=Yn awr +HourStart=Awr cychwyn +Deadline=Dyddiad cau +Date=Dyddiad +DateAndHour=Dyddiad ac awr +DateToday=Dyddiad heddiw +DateReference=Dyddiad cyfeirio +DateStart=Dyddiad cychwyn +DateEnd=Dyddiad Gorffen +DateCreation=Dyddiad creu +DateCreationShort=Creu. dyddiad +IPCreation=IP Creu +DateModification=Dyddiad addasu +DateModificationShort=Modif. dyddiad +IPModification=Addasu IP +DateLastModification=Dyddiad addasu diweddaraf +DateValidation=Dyddiad dilysu +DateSigning=Dyddiad arwyddo +DateClosing=Dyddiad cau +DateDue=Dyddiad dyledus +DateValue=Dyddiad gwerth +DateValueShort=Dyddiad gwerth +DateOperation=Dyddiad gweithredu +DateOperationShort=Opera. Dyddiad +DateLimit=Dyddiad terfyn +DateRequest=Dyddiad cais +DateProcess=Dyddiad prosesu +DateBuild=Rhoi gwybod am ddyddiad adeiladu +DatePayment=Dyddiad talu +DateApprove=Dyddiad cymeradwyo +DateApprove2=Dyddiad cymeradwyo (ail gymeradwyaeth) +RegistrationDate=Dyddiad cofrestru +UserCreation=Defnyddiwr creu +UserModification=Defnyddiwr addasu +UserValidation=Defnyddiwr dilysu +UserCreationShort=Creu. defnyddiwr +UserModificationShort=Modif. defnyddiwr +UserValidationShort=Dilys. defnyddiwr +DurationYear=blwyddyn +DurationMonth=mis +DurationWeek=wythnos +DurationDay=Dydd +DurationYears=blynyddoedd +DurationMonths=misoedd +DurationWeeks=wythnosau +DurationDays=dyddiau +Year=Blwyddyn +Month=Mis +Week=Wythnos +WeekShort=Wythnos +Day=Dydd +Hour=Awr +Minute=Munud +Second=Yn ail +Years=Blynyddoedd +Months=Misoedd +Days=Dyddiau +days=dyddiau +Hours=Oriau +Minutes=Munudau +Seconds=Eiliadau +Weeks=Wythnosau +Today=Heddiw +Yesterday=Ddoe +Tomorrow=yfory +Morning=Bore +Afternoon=Prynhawn +Quadri=Quadri +MonthOfDay=Mis o'r dydd +DaysOfWeek=Dyddiau'r wythnos +HourShort=H +MinuteShort=mn +Rate=Cyfradd +CurrencyRate=Cyfradd trosi arian cyfred +UseLocalTax=Cynhwyswch dreth +Bytes=Beitiau +KiloBytes=Cilobytes +MegaBytes=Megabeit +GigaBytes=Gigabeit +TeraBytes=Terabytes +UserAuthor=Created by +UserModif=Diweddarwyd gan +b=b. +Kb=Kb +Mb=Mb +Gb=Gb +Tb=Tb +Cut=Torri +Copy=Copi +Paste=Gludo +Default=Diofyn +DefaultValue=Gwerth diofyn +DefaultValues=Gwerthoedd / hidlwyr / didoli rhagosodedig +Price=Pris +PriceCurrency=Pris (arian cyfred) +UnitPrice=Pris uned +UnitPriceHT=Pris uned (ac eithrio) +UnitPriceHTCurrency=Pris uned (ac eithrio) (arian cyfred) +UnitPriceTTC=Pris uned +PriceU=Mae U.P. +PriceUHT=Mae U.P. (rhwyd) +PriceUHTCurrency=U.P (net) (arian cyfred) +PriceUTTC=Mae U.P. (gan gynnwys treth) +Amount=Swm +AmountInvoice=Swm yr anfoneb +AmountInvoiced=Swm a anfonebwyd +AmountInvoicedHT=Swm a anfonebwyd (ac eithrio treth) +AmountInvoicedTTC=Swm a anfonebwyd (gan gynnwys treth) +AmountPayment=Swm taliad +AmountHTShort=Swm (ac eithrio) +AmountTTCShort=Swm (gan gynnwys treth) +AmountHT=Swm (ac eithrio treth) +AmountTTC=Swm (gan gynnwys treth) +AmountVAT=Treth swm +MulticurrencyAlreadyPaid=Eisoes wedi'i dalu, arian cyfred gwreiddiol +MulticurrencyRemainderToPay=Aros i dalu, arian cyfred gwreiddiol +MulticurrencyPaymentAmount=Swm taliad, arian cyfred gwreiddiol +MulticurrencyAmountHT=Swm (ac eithrio treth), arian cyfred gwreiddiol +MulticurrencyAmountTTC=Swm (gan gynnwys treth), arian cyfred gwreiddiol +MulticurrencyAmountVAT=Treth swm, arian cyfred gwreiddiol +MulticurrencySubPrice=Swm is-bris aml-arian cyfred +AmountLT1=Swm treth 2 +AmountLT2=Swm treth 3 +AmountLT1ES=Swm AG +AmountLT2ES=Swm IRPF +AmountTotal=Cyfanswm +AmountAverage=Swm cyfartalog +PriceQtyMinHT=Min maint pris. (ac eithrio treth) +PriceQtyMinHTCurrency=Min maint pris. (ac eithrio treth) (arian cyfred) +PercentOfOriginalObject=Canran y gwrthrych gwreiddiol +AmountOrPercent=Swm neu y cant +Percentage=Canran +Total=Cyfanswm +SubTotal=Is-gyfanswm +TotalHTShort=Cyfanswm (ac eithrio) +TotalHT100Short=Cyfanswm 100%% (ac eithrio) +TotalHTShortCurrency=Cyfanswm (ac eithrio mewn arian cyfred) +TotalTTCShort=Cyfanswm (gan gynnwys treth) +TotalHT=Cyfanswm (ac eithrio treth) +TotalHTforthispage=Cyfanswm (heb gynnwys treth) ar gyfer y dudalen hon +Totalforthispage=Cyfanswm ar gyfer y dudalen hon +TotalTTC=Cyfanswm (gan gynnwys treth) +TotalTTCToYourCredit=Cyfanswm (gan gynnwys treth) i'ch credyd +TotalVAT=Cyfanswm treth +TotalVATIN=Cyfanswm IGST +TotalLT1=Cyfanswm treth 2 +TotalLT2=Cyfanswm treth 3 +TotalLT1ES=Cyfanswm AG +TotalLT2ES=Cyfanswm yr IRPF +TotalLT1IN=Cyfanswm CGST +TotalLT2IN=Cyfanswm SGST +HT=Ac eithrio. treth +TTC=gan gynnwys treth +INCVATONLY=gan gynnwys TAW +INCT=gan gynnwys yr holl drethi +VAT=Treth gwerthiant +VATIN=IGST +VATs=Trethi gwerthu +VATINs=Trethi IGST +LT1=Treth gwerthiant 2 +LT1Type=Treth gwerthu 2 math +LT2=Treth gwerthiant 3 +LT2Type=Treth gwerthu 3 math +LT1ES=Addysg Grefyddol +LT2ES=IRPF +LT1IN=CGST +LT2IN=SGST +LT1GC=cents ychwanegol +VATRate=Gyfradd dreth +RateOfTaxN=Cyfradd y dreth %s +VATCode=Cod Cyfradd Treth +VATNPR=Cyfradd Treth NPR +DefaultTaxRate=Cyfradd dreth ddiofyn +Average=Cyfartaledd +Sum=Swm +Delta=Delta +StatusToPay=I dalu +RemainToPay=Aros i dalu +Module=Modiwl/Cais +Modules=Modiwlau/Ceisiadau +Option=Opsiwn +Filters=Hidlau +List=Rhestr +FullList=Rhestr lawn +FullConversation=Sgwrs lawn +Statistics=Ystadegau +OtherStatistics=Ystadegau eraill +Status=Statws +Favorite=Hoff +ShortInfo=Gwybodaeth. +Ref=Cyf. +ExternalRef=Cyf. allanol +RefSupplier=Cyf. gwerthwr +RefPayment=Cyf. taliad +CommercialProposalsShort=Cynigion masnachol +Comment=Sylw +Comments=Sylwadau +ActionsToDo=Digwyddiadau i'w gwneud +ActionsToDoShort=Gwneud +ActionsDoneShort=Wedi'i wneud +ActionNotApplicable=Amherthnasol +ActionRunningNotStarted=I ddechrau +ActionRunningShort=Ar y gweill +ActionDoneShort=Wedi gorffen +ActionUncomplete=Anghyflawn +LatestLinkedEvents=Digwyddiadau cysylltiedig %s diweddaraf +CompanyFoundation=Cwmni/Sefydliad +Accountant=Cyfrifydd +ContactsForCompany=Cysylltiadau ar gyfer y trydydd parti hwn +ContactsAddressesForCompany=Cysylltiadau/cyfeiriadau ar gyfer y trydydd parti hwn +AddressesForCompany=Cyfeiriadau ar gyfer y trydydd parti hwn +ActionsOnCompany=Digwyddiadau ar gyfer y trydydd parti hwn +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 +NActionsLate=%s hwyr +ToDo=Gwneud +Completed=Cwblhawyd +Running=Ar y gweill +RequestAlreadyDone=Cais wedi'i gofnodi eisoes +Filter=Hidlo +FilterOnInto=Meini prawf chwilio ' %s ' i mewn i feysydd %s +RemoveFilter=Tynnu'r hidlydd +ChartGenerated=Siart wedi'i gynhyrchu +ChartNotGenerated=Siart heb ei gynhyrchu +GeneratedOn=Adeiladu ar %s +Generate=Cynhyrchu +Duration=Hyd +TotalDuration=Cyfanswm hyd +Summary=Crynodeb +DolibarrStateBoard=Ystadegau Cronfa Ddata +DolibarrWorkBoard=Eitemau Agored +NoOpenedElementToProcess=Dim elfen agored i'w phrosesu +Available=Ar gael +NotYetAvailable=Ddim ar gael eto +NotAvailable=Dim ar gael +Categories=Tagiau/categorïau +Category=Tag/categori +By=Gan +From=Oddiwrth +FromDate=Oddiwrth +FromLocation=Oddiwrth +to=i +To=i +ToDate=i +ToLocation=i +at=yn +and=a +or=neu +Other=Arall +Others=Eraill +OtherInformations=Gwybodaeth arall +Workflow=Llif gwaith +Quantity=Nifer +Qty=Qty +ChangedBy=Newidiwyd gan +ApprovedBy=Cymeradwywyd gan +ApprovedBy2=Cymeradwywyd gan (ail gymeradwyaeth) +Approved=Cymmeradwy +Refused=Gwrthodwyd +ReCalculate=Ailgyfrifo +ResultKo=Methiant +Reporting=Adrodd +Reportings=Adrodd +Draft=Drafft +Drafts=Drafftiau +StatusInterInvoiced=Anfoneb +Validated=Wedi'i ddilysu +ValidatedToProduce=Wedi'i ddilysu (I gynhyrchu) +Opened=Agored +OpenAll=Agored (Pawb) +ClosedAll=Ar gau (Pob un) +New=Newydd +Discount=Disgownt +Unknown=Anhysbys +General=Cyffredinol +Size=Maint +OriginalSize=Maint gwreiddiol +Received=Derbyniwyd +Paid=Talwyd +Topic=Pwnc +ByCompanies=Gan drydydd partïon +ByUsers=Gan ddefnyddiwr +Links=Cysylltiadau +Link=Cyswllt +Rejects=Yn gwrthod +Preview=Rhagolwg +NextStep=Cam nesaf +Datas=Data +None=Dim +NoneF=Dim +NoneOrSeveral=Dim neu sawl un +Late=Hwyr +LateDesc=Diffinnir eitem fel Wedi'i Oedi yn unol â chyfluniad y system yn y ddewislen Cartref - Gosod - Rhybuddion. +NoItemLate=Dim eitem hwyr +Photo=Llun +Photos=Lluniau +AddPhoto=Ychwanegu llun +DeletePicture=Dileu llun +ConfirmDeletePicture=Cadarnhau dileu llun? +Login=Mewngofnodi +LoginEmail=Mewngofnodi (e-bost) +LoginOrEmail=Mewngofnodi neu E-bost +CurrentLogin=Mewngofnodi cyfredol +EnterLoginDetail=Rhowch fanylion mewngofnodi +January=Ionawr +February=Chwefror +March=Mawrth +April=Ebrill +May=Mai +June=Mehefin +July=Gorffennaf +August=Awst +September=Medi +October=Hydref +November=Tachwedd +December=Rhagfyr +Month01=Ionawr +Month02=Chwefror +Month03=Mawrth +Month04=Ebrill +Month05=Mai +Month06=Mehefin +Month07=Gorffennaf +Month08=Awst +Month09=Medi +Month10=Hydref +Month11=Tachwedd +Month12=Rhagfyr +MonthShort01=Ion +MonthShort02=Chwef +MonthShort03=Mar +MonthShort04=Ebr +MonthShort05=Mai +MonthShort06=Meh +MonthShort07=Gorff +MonthShort08=Awst +MonthShort09=Medi +MonthShort10=Hyd +MonthShort11=Tach +MonthShort12=Rhag +MonthVeryShort01=J +MonthVeryShort02=Dd +MonthVeryShort03=M +MonthVeryShort04=A +MonthVeryShort05=M +MonthVeryShort06=J +MonthVeryShort07=J +MonthVeryShort08=A +MonthVeryShort09=S +MonthVeryShort10=O +MonthVeryShort11=N +MonthVeryShort12=D +AttachedFiles=Ffeiliau a dogfennau atodedig +JoinMainDoc=Ymunwch â'r brif ddogfen +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found +DateFormatYYYYMM=BBBB-MM +DateFormatYYYYMMDD=BBBB-MM-DD +DateFormatYYYYMMDDHHMM=BBBB-MM-DD HH:SS +ReportName=Enw'r adroddiad +ReportPeriod=Cyfnod adrodd +ReportDescription=Disgrifiad +Report=Adroddiad +Keyword=Allweddair +Origin=Tarddiad +Legend=Chwedl +Fill=Llenwch +Reset=Ail gychwyn +File=Ffeil +Files=Ffeiliau +NotAllowed=Ni chaniateir +ReadPermissionNotAllowed=Ni chaniateir caniatâd darllen +AmountInCurrency=Swm mewn arian cyfred %s +Example=Enghraifft +Examples=Enghreifftiau +NoExample=Dim enghraifft +FindBug=Adrodd byg +NbOfThirdParties=Nifer y trydydd parti +NbOfLines=Nifer y llinellau +NbOfObjects=Nifer o wrthrychau +NbOfObjectReferers=Nifer o eitemau cysylltiedig +Referers=Eitemau cysylltiedig +TotalQuantity=Cyfanswm maint +DateFromTo=O %s i %s +DateFrom=O %s +DateUntil=Tan %s +Check=Gwirio +Uncheck=Dad-diciwch +Internal=Mewnol +External=Allanol +Internals=Mewnol +Externals=Allanol +Warning=Rhybudd +Warnings=Rhybuddion +BuildDoc=Adeiladu Doc +Entity=Amgylchedd +Entities=Endidau +CustomerPreview=Rhagolwg cwsmer +SupplierPreview=Rhagolwg gwerthwr +ShowCustomerPreview=Dangos rhagolwg cwsmer +ShowSupplierPreview=Dangos rhagolwg gwerthwr +RefCustomer=Cyf. cwsmer +InternalRef=Cyf mewnol. +Currency=Arian cyfred +InfoAdmin=Gwybodaeth i weinyddwyr +Undo=Dadwneud +Redo=Ail-wneud +ExpandAll=Ehangu i gyd +UndoExpandAll=Dadwneud ehangu +SeeAll=Gweld y cyfan +Reason=Rheswm +FeatureNotYetSupported=Nodwedd heb ei chefnogi eto +CloseWindow=Caewch y ffenestr +Response=Ymateb +Priority=Blaenoriaeth +SendByMail=Anfon trwy e-bost +MailSentBy=Anfonwyd e-bost gan +NotSent=Heb ei anfon +TextUsedInTheMessageBody=Corff e-bost +SendAcknowledgementByMail=Anfon e-bost cadarnhau +SendMail=Anfon e-bost +Email=Ebost +NoEMail=Dim e-bost +AlreadyRead=Wedi darllen yn barod +NotRead=Heb ei ddarllen +NoMobilePhone=Dim ffôn symudol +Owner=Perchennog +FollowingConstantsWillBeSubstituted=Bydd y cysonion canlynol yn cael eu disodli gan y gwerth cyfatebol. +Refresh=Adnewyddu +BackToList=Yn ôl i'r rhestr +BackToTree=Yn ôl i'r goeden +GoBack=Mynd yn ôl +CanBeModifiedIfOk=Gellir ei addasu os yw'n ddilys +CanBeModifiedIfKo=Gellir ei addasu os nad yw'n ddilys +ValueIsValid=Gwerth yn ddilys +ValueIsNotValid=Nid yw gwerth yn ddilys +RecordCreatedSuccessfully=Crëwyd y cofnod yn llwyddiannus +RecordModifiedSuccessfully=Addaswyd y cofnod yn llwyddiannus +RecordsModified=%s cofnod(au) wedi'u haddasu +RecordsDeleted=%s cofnod(au) wedi'u dileu +RecordsGenerated=%s cofnod(au) wedi'u cynhyrchu +AutomaticCode=Cod awtomatig +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 +CompleteOrNoMoreReceptionExpected=Cyflawn neu ddim mwy i'w ddisgwyl +ExpectedValue=Gwerth Disgwyliedig +ExpectedQty=Disgwylir Qty +PartialWoman=Rhannol +TotalWoman=Cyfanswm +NeverReceived=Byth yn derbyn +Canceled=Wedi'i ganslo +YouCanChangeValuesForThisListFromDictionarySetup=Gallwch newid gwerthoedd ar gyfer y rhestr hon o'r ddewislen Gosod - Geiriaduron +YouCanChangeValuesForThisListFrom=Gallwch newid gwerthoedd ar gyfer y rhestr hon o ddewislen %s +YouCanSetDefaultValueInModuleSetup=Gallwch osod y gwerth rhagosodedig a ddefnyddir wrth greu cofnod newydd wrth osod modiwl +Color=Lliw +Documents=Ffeiliau cysylltiedig +Documents2=Dogfennau +UploadDisabled=Analluogwyd uwchlwytho +MenuAccountancy=Cyfrifo +MenuECM=Dogfennau +MenuAWStats=AWStats +MenuMembers=Aelodau +MenuAgendaGoogle=Agenda Google +MenuTaxesAndSpecialExpenses=Trethi | Treuliau arbennig +ThisLimitIsDefinedInSetup=Terfyn Dolibarr (Dewislen cartref-setup-diogelwch): %s Kb, terfyn PHP: %s Kb +ThisLimitIsDefinedInSetupAt=Terfyn Dolibarr (Dewislen %s): %s Kb, terfyn PHP (Param %s): %s Kb +NoFileFound=Dim dogfennau wedi'u llwytho i fyny +CurrentUserLanguage=Iaith gyfredol +CurrentTheme=Thema gyfredol +CurrentMenuManager=Rheolwr dewislen presennol +Browser=Porwr +Layout=Gosodiad +Screen=Sgrin +DisabledModules=Modiwlau anabl +For=Canys +ForCustomer=Ar gyfer cwsmer +Signature=Llofnod +DateOfSignature=Dyddiad y llofnod +HidePassword=Dangos gorchymyn gyda chyfrinair wedi'i guddio +UnHidePassword=Dangos gorchymyn go iawn gyda chyfrinair clir +Root=Gwraidd +RootOfMedias=Gwraidd cyfryngau cyhoeddus (/cyfryngau) +Informations=Gwybodaeth +Page=Tudalen +Notes=Nodiadau +AddNewLine=Ychwanegu llinell newydd +AddFile=Ychwanegu ffeil +FreeZone=Cynnyrch testun rhydd +FreeLineOfType=Eitem testun rhydd, math: +CloneMainAttributes=Clonio gwrthrych gyda'i brif nodweddion +ReGeneratePDF=Ail-greu PDF +PDFMerge=Cyfuno PDF +Merge=Uno +DocumentModelStandardPDF=Templed PDF safonol +PrintContentArea=Dangos tudalen i argraffu prif faes cynnwys +MenuManager=Rheolwr dewislen +WarningYouAreInMaintenanceMode=Rhybudd, rydych chi yn y modd cynnal a chadw: dim ond mewngofnodi %s a ganiateir i ddefnyddio'r cymhwysiad yn y modd hwn. +CoreErrorTitle=Gwall system +CoreErrorMessage=Mae'n ddrwg gennym, bu gwall. Cysylltwch â gweinyddwr eich system i wirio'r logiau neu analluogi $dolibarr_main_prod=1 i gael rhagor o wybodaeth. +CreditCard=Cerdyn credyd +ValidatePayment=Dilysu taliad +CreditOrDebitCard=Cerdyn credyd neu ddebyd +FieldsWithAreMandatory=Mae meysydd ag %s yn orfodol +FieldsWithIsForPublic=Mae meysydd ag %s yn cael eu dangos yn rhestr gyhoeddus yr aelodau. Os nad ydych chi eisiau hyn, dad-diciwch y blwch "cyhoeddus". +AccordingToGeoIPDatabase=(yn ôl trosi GeoIP) +Line=Llinell +NotSupported=Heb ei gefnogi +RequiredField=Maes gofynnol +Result=Canlyniad +ToTest=Prawf +ValidateBefore=Rhaid dilysu'r eitem cyn defnyddio'r nodwedd hon +Visibility=Gwelededd +Totalizable=Cyfanswmadwy +TotalizableDesc=Mae'r maes hwn yn gyfanswmizable yn y rhestr +Private=Preifat +Hidden=Cudd +Resources=Adnoddau +Source=Ffynhonnell +Prefix=Rhagddodiad +Before=Cyn +After=Wedi +IPAddress=Cyfeiriad IP +Frequency=Amlder +IM=Negeseuon gwib +NewAttribute=Priodoledd newydd +AttributeCode=Cod priodoledd +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 +LinkToSupplierOrder=Dolen i archeb brynu +LinkToSupplierProposal=Dolen i gynnig y gwerthwr +LinkToSupplierInvoice=Dolen i anfoneb y gwerthwr +LinkToContract=Dolen i'r contract +LinkToIntervention=Cysylltiad ag ymyriad +LinkToTicket=Dolen i'r tocyn +LinkToMo=Dolen i Mo +CreateDraft=Creu drafft +SetToDraft=Yn ôl i'r drafft +ClickToEdit=Cliciwch i olygu +ClickToRefresh=Cliciwch i adnewyddu +EditWithEditor=Golygu gyda CKEditor +EditWithTextEditor=Golygu gyda golygydd testun +EditHTMLSource=Golygu Ffynhonnell HTML +ObjectDeleted=Gwrthrych %s wedi'i ddileu +ByCountry=Yn ôl gwlad +ByTown=Wrth dref +ByDate=Erbyn dyddiad +ByMonthYear=Yn ôl mis / blwyddyn +ByYear=Erbyn blwyddyn +ByMonth=Erbyn mis +ByDay=Yn ystod y dydd +BySalesRepresentative=Gan gynrychiolydd gwerthu +LinkedToSpecificUsers=Yn gysylltiedig â chyswllt defnyddiwr penodol +NoResults=Dim canlyniadau +AdminTools=Offer Gweinyddol +SystemTools=Offer system +ModulesSystemTools=Offer modiwlau +Test=Prawf +Element=Elfen +NoPhotoYet=Dim lluniau ar gael eto +Dashboard=Dangosfwrdd +MyDashboard=Fy Dangosfwrdd +Deductible=tynadwy +from=rhag +toward=tuag at +Access=Mynediad +SelectAction=Dewiswch weithred +SelectTargetUser=Dewiswch y defnyddiwr/gweithiwr targed +HelpCopyToClipboard=Defnyddiwch Ctrl+C i gopïo i'r clipfwrdd +SaveUploadedFileWithMask=Cadw ffeil ar y gweinydd gyda'r enw " %s " (fel arall "%s") +OriginFileName=Enw ffeil gwreiddiol +SetDemandReason=Gosod ffynhonnell +SetBankAccount=Diffinio Cyfrif Banc +AccountCurrency=Arian cyfred cyfrif +ViewPrivateNote=Gweld nodiadau +XMoreLines=%s llinell(au) wedi'u cuddio +ShowMoreLines=Dangos mwy/llai o linellau +PublicUrl=URL cyhoeddus +AddBox=Ychwanegu blwch +SelectElementAndClick=Dewiswch elfen a chliciwch ar %s +PrintFile=Argraffu Ffeil %s +ShowTransaction=Dangos cofnod ar gyfrif banc +ShowIntervention=Dangos ymyrraeth +ShowContract=Dangos contract +GoIntoSetupToChangeLogo=Ewch i Cartref - Gosod - Cwmni i newid logo neu ewch i Cartref - Gosod - Arddangos i guddio. +Deny=Gwadu +Denied=Gwadu +ListOf=Rhestr o %s +ListOfTemplates=Rhestr o dempledi +Gender=Rhyw +Genderman=Gwryw +Genderwoman=Benyw +Genderother=Arall +ViewList=Golwg rhestr +ViewGantt=Golygfa Gantt +ViewKanban=golygfa Kanban +Mandatory=Gorfodol +Hello=Helo +GoodBye=Hwyl fawr +Sincerely=Yn gywir +ConfirmDeleteObject=Ydych chi'n siŵr eich bod am ddileu'r gwrthrych hwn? +DeleteLine=Dileu llinell +ConfirmDeleteLine=Ydych chi'n siŵr eich bod am ddileu'r llinell hon? +ErrorPDFTkOutputFileNotFound=Gwall: ni chynhyrchwyd y ffeil. Gwiriwch fod y gorchymyn 'pdftk' wedi'i osod mewn cyfeiriadur sydd wedi'i gynnwys yn y newidyn amgylchedd $ PATH (linux/unix yn unig) neu cysylltwch â gweinyddwr eich system. +NoPDFAvailableForDocGenAmongChecked=Nid oedd PDF ar gael ar gyfer cynhyrchu dogfennau ymhlith y cofnod wedi'i wirio +TooManyRecordForMassAction=Gormod o gofnodion wedi'u dewis ar gyfer gweithredu torfol. Mae'r weithred wedi'i chyfyngu i restr o gofnodion %s. +NoRecordSelected=Dim cofnod wedi'i ddewis +MassFilesArea=Ardal ar gyfer ffeiliau a adeiladwyd gan gamau gweithredu torfol +ShowTempMassFilesArea=Dangos arwynebedd y ffeiliau a adeiladwyd gan weithredoedd torfol +ConfirmMassDeletion=Cadarnhad Swmp Dileu +ConfirmMassDeletionQuestion=A ydych yn siŵr eich bod am ddileu'r cofnod(au) %s a ddewiswyd? +RelatedObjects=Gwrthrychau Cysylltiedig +ClassifyBilled=Dosbarthu wedi'i bilio +ClassifyUnbilled=Dosbarthu heb ei filio +Progress=Cynnydd +ProgressShort=Rhaglen. +FrontOffice=Swyddfa flaen +BackOffice=Swyddfa gefn +Submit=Cyflwyno +View=Golwg +Export=Allforio +Exports=Allforion +ExportFilteredList=Allforio rhestr wedi'i hidlo +ExportList=Rhestr allforio +ExportOptions=Opsiynau Allforio +IncludeDocsAlreadyExported=Cynnwys dogfennau sydd eisoes wedi'u hallforio +ExportOfPiecesAlreadyExportedIsEnable=Allforio darnau a allforiwyd eisoes yn galluogi +ExportOfPiecesAlreadyExportedIsDisable=Mae allforio darnau sydd eisoes wedi'u hallforio yn analluog +AllExportedMovementsWereRecordedAsExported=Cofnodwyd bod yr holl symudiadau a allforiwyd wedi'u hallforio +NotAllExportedMovementsCouldBeRecordedAsExported=Ni ellid cofnodi pob symudiad a allforiwyd fel un wedi'i allforio +Miscellaneous=Amrywiol +Calendar=Calendr +GroupBy=Grwpio gan... +ViewFlatList=Gweld rhestr fflat +ViewAccountList=Gweld cyfriflyfr +ViewSubAccountList=Gweld cyfriflyfr isgyfrif +RemoveString=Tynnu llinyn '%s' +SomeTranslationAreUncomplete=Gall rhai o'r ieithoedd a gynigir gael eu cyfieithu'n rhannol yn unig neu gallant gynnwys gwallau. Helpwch i gywiro eich iaith drwy gofrestru ar https://transifex.com/projects/p/dolibarr/ i ychwanegu eich gwelliannau. +DirectDownloadLink=Dolen lawrlwytho cyhoeddus +PublicDownloadLinkDesc=Dim ond y ddolen sydd ei angen i lawrlwytho'r ffeil +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 +ActualizeCurrency=Diweddaru cyfradd arian cyfred +Fiscalyear=Blwyddyn ariannol +ModuleBuilder=Adeiladwr Modiwl a Chymhwysiad +SetMultiCurrencyCode=Gosod arian cyfred +BulkActions=Gweithrediadau swmp +ClickToShowHelp=Cliciwch i ddangos cymorth cyngor +WebSite=Gwefan +WebSites=Gwefannau +WebSiteAccounts=Cyfrifon gwefan +ExpenseReport=Adroddiad treuliau +ExpenseReports=Adroddiadau treuliau +HR=AD +HRAndBank=AD a Banc +AutomaticallyCalculated=Wedi'i gyfrifo'n awtomatig +TitleSetToDraft=Ewch yn ôl i'r drafft +ConfirmSetToDraft=Ydych chi'n siŵr eich bod am fynd yn ôl i statws Drafft? +ImportId=ID mewnforio +Events=Digwyddiadau +EMailTemplates=Templedi e-bost +FileNotShared=Ffeil heb ei rhannu i'r cyhoedd allanol +Project=Prosiect +Projects=Prosiectau +LeadOrProject=Arwain | Prosiect +LeadsOrProjects=Arweinwyr | Prosiectau +Lead=Arwain +Leads=Arweinwyr +ListOpenLeads=Rhestrwch arweinwyr agored +ListOpenProjects=Rhestrwch brosiectau agored +NewLeadOrProject=Arweinydd neu brosiect newydd +Rights=Caniatadau +LineNb=Llinell rhif. +IncotermLabel=Incoterms +TabLetteringCustomer=Llythyru cwsmeriaid +TabLetteringSupplier=Llythrennu gwerthwr +Monday=Dydd Llun +Tuesday=Dydd Mawrth +Wednesday=Mercher +Thursday=Dydd Iau +Friday=Gwener +Saturday=dydd Sadwrn +Sunday=Sul +MondayMin=Mo +TuesdayMin=Tu +WednesdayMin=Rydym ni +ThursdayMin=Th +FridayMin=Mae Tad +SaturdayMin=Sa +SundayMin=Su +Day1=Dydd Llun +Day2=Dydd Mawrth +Day3=Mercher +Day4=Dydd Iau +Day5=Gwener +Day6=dydd Sadwrn +Day0=Sul +ShortMonday=M +ShortTuesday=T +ShortWednesday=W +ShortThursday=T +ShortFriday=Dd +ShortSaturday=S +ShortSunday=S +one=un +two=dwy +three=tri +four=pedwar +five=pump +six=chwech +seven=saith +eight=wyth +nine=naw +ten=deg +eleven=unarddeg +twelve=deuddeg +thirteen=trydydd ar ddeg +fourteen=Pedwar ar ddeg +fifteen=pymtheg +sixteen=un ar bymtheg +seventeen=dwy ar bymtheg +eighteen=deunaw +nineteen=pedwar ar bymtheg +twenty=ugain +thirty=deg ar hugain +forty=deugain +fifty=hanner cant +sixty=trigain +seventy=saith deg +eighty=wythdeg +ninety=naw deg +hundred=cant +thousand=mil +million=miliwn +billion=biliwn +trillion=triliwn +quadrillion=quadrillion +SelectMailModel=Dewiswch dempled e-bost +SetRef=Gosod cyf +Select2ResultFoundUseArrows=Cafwyd rhai canlyniadau. Defnyddiwch saethau i ddewis. +Select2NotFound=Heb ganfod canlyniad +Select2Enter=Ewch i mewn +Select2MoreCharacter=neu fwy o gymeriad +Select2MoreCharacters=neu fwy o gymeriadau +Select2MoreCharactersMore= Search cystrawen:
    | NEU (a | b)
    * Unrhyw gymeriad (a * b)
    ^ Dechrau gyda Diwedd (^ ab)
    $ gyda ( ab$)
    +Select2LoadingMoreResults=Wrthi'n llwytho mwy o ganlyniadau... +Select2SearchInProgress=Chwilio ar y gweill... +SearchIntoThirdparties=Trydydd partïon +SearchIntoContacts=Cysylltiadau +SearchIntoMembers=Aelodau +SearchIntoUsers=Defnyddwyr +SearchIntoProductsOrServices=Cynhyrchion neu wasanaethau +SearchIntoBatch=Llawer / Cyfresi +SearchIntoProjects=Prosiectau +SearchIntoMO=Gorchmynion Gweithgynhyrchu +SearchIntoTasks=Tasgau +SearchIntoCustomerInvoices=Anfonebau cwsmeriaid +SearchIntoSupplierInvoices=Anfonebau gwerthwr +SearchIntoCustomerOrders=Gorchmynion gwerthu +SearchIntoSupplierOrders=Archebion prynu +SearchIntoCustomerProposals=Cynigion masnachol +SearchIntoSupplierProposals=Cynigion gwerthwr +SearchIntoInterventions=Ymyriadau +SearchIntoContracts=Contractau +SearchIntoCustomerShipments=Cludo cwsmeriaid +SearchIntoExpenseReports=Adroddiadau treuliau +SearchIntoLeaves=Gadael +SearchIntoTickets=Tocynnau +SearchIntoCustomerPayments=Taliadau cwsmeriaid +SearchIntoVendorPayments=Taliadau gwerthwr +SearchIntoMiscPayments=Taliadau amrywiol +CommentLink=Sylwadau +NbComments=Nifer o sylwadau +CommentPage=Gofod sylwadau +CommentAdded=Sylw wedi'i ychwanegu +CommentDeleted=Sylw wedi'i ddileu +Everybody=Pawb +PayedBy=Talwyd gan +PayedTo=Talwyd i +Monthly=Yn fisol +Quarterly=Chwarterol +Annual=Blynyddol +Local=Lleol +Remote=Anghysbell +LocalAndRemote=Lleol ac Anghysbell +KeyboardShortcut=Llwybr byr bysellfwrdd +AssignedTo=Neilltuo i +Deletedraft=Dileu drafft +ConfirmMassDraftDeletion=Cadarnhad dileu màs drafft +FileSharedViaALink=Ffeil wedi'i rhannu â dolen gyhoeddus +SelectAThirdPartyFirst=Dewiswch drydydd parti yn gyntaf... +YouAreCurrentlyInSandboxMode=Rydych chi yn y modd "blwch tywod" %s ar hyn o bryd +Inventory=Stocrestr +AnalyticCode=Cod dadansoddol +TMenuMRP=MRP +ShowCompanyInfos=Dangos gwybodaeth cwmni +ShowMoreInfos=Dangos Mwy o Wybodaeth +NoFilesUploadedYet=Uwchlwythwch ddogfen yn gyntaf +SeePrivateNote=Gweler nodyn preifat +PaymentInformation=Gwybodaeth talu +ValidFrom=Yn ddilys o +ValidUntil=Dilys tan +NoRecordedUsers=Dim defnyddwyr +ToClose=I gau +ToRefuse=I wrthod +ToProcess=I brosesu +ToApprove=I gymeradwyo +GlobalOpenedElemView=Golygfa fyd-eang +NoArticlesFoundForTheKeyword=Ni chafwyd hyd i erthygl ar gyfer yr allweddair ' %s ' +NoArticlesFoundForTheCategory=Ni chafwyd hyd i erthygl ar gyfer y categori +ToAcceptRefuse=I dderbyn | gwrthod +ContactDefault_agenda=Digwyddiad +ContactDefault_commande=Gorchymyn +ContactDefault_contrat=Cytundeb +ContactDefault_facture=Anfoneb +ContactDefault_fichinter=Ymyrraeth +ContactDefault_invoice_supplier=Anfoneb Cyflenwr +ContactDefault_order_supplier=Archeb Brynu +ContactDefault_project=Prosiect +ContactDefault_project_task=Tasg +ContactDefault_propal=Cynnig +ContactDefault_supplier_proposal=Cynnig Cyflenwr +ContactDefault_ticket=Tocyn +ContactAddedAutomatically=Ychwanegwyd cyswllt o rolau trydydd parti cyswllt +More=Mwy +ShowDetails=Dangos Manylion +CustomReports=Adroddiadau personol +StatisticsOn=Ystadegau ar +SelectYourGraphOptionsFirst=Dewiswch eich opsiynau graff i adeiladu graff +Measures=Mesurau +XAxis=Echel X +YAxis=Y-Echel +StatusOfRefMustBe=Rhaid i statws %s fod yn %s +DeleteFileHeader=Cadarnhau dileu ffeil +DeleteFileText=Ydych chi wir eisiau dileu'r ffeil hon? +ShowOtherLanguages=Dangos ieithoedd eraill +SwitchInEditModeToAddTranslation=Newidiwch y modd golygu i ychwanegu cyfieithiadau ar gyfer yr iaith hon +NotUsedForThisCustomer=Heb ei ddefnyddio ar gyfer y cwsmer hwn +AmountMustBePositive=Rhaid i'r swm fod yn bositif +ByStatus=Yn ôl statws +InformationMessage=Gwybodaeth +Used=Defnyddiwyd +ASAP=Mor fuan â phosib +CREATEInDolibarr=Record %s wedi'i chreu +MODIFYInDolibarr=Cofnod %s wedi'i addasu +DELETEInDolibarr=Cofnod %s wedi'i ddileu +VALIDATEInDolibarr=Cofnod %s wedi'i ddilysu +APPROVEDInDolibarr=Cofnod %s wedi'i gymeradwyo +DefaultMailModel=Model Post rhagosodedig +PublicVendorName=Enw cyhoeddus y gwerthwr +DateOfBirth=Dyddiad Geni +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Mae tocyn diogelwch wedi dod i ben, felly mae gweithredu wedi'i ganslo. Trio eto os gwelwch yn dda. +UpToDate=Yn gyfoes +OutOfDate=Wedi dyddio +EventReminder=Nodyn Atgoffa am Ddigwyddiad +UpdateForAllLines=Diweddariad ar gyfer pob llinell +OnHold=Ar stop +Civility=Gwareiddiad +AffectTag=Effeithio Tag +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? +CategTypeNotFound=Ni chanfuwyd math o dag ar gyfer y math o gofnodion +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 +SetToEnabled=Wedi'i osod i alluogi +SetToDisabled=Wedi'i osod i analluogi +ConfirmMassEnabling=cadarnhad galluogi màs +ConfirmMassEnablingQuestion=A ydych yn siŵr eich bod am alluogi'r cofnod(au) %s a ddewiswyd? +ConfirmMassDisabling=cadarnhad anablu torfol +ConfirmMassDisablingQuestion=A ydych yn siŵr eich bod am analluogi'r cofnod(au) %s a ddewiswyd? +RecordsEnabled=%s cofnod(au) wedi'u galluogi +RecordsDisabled=%s cofnod(au) wedi'u hanalluogi +RecordEnabled=Cofnod wedi'i alluogi +RecordDisabled=Record wedi'i hanalluogi +Forthcoming=Ar ddod +Currently=Ar hyn o bryd +ConfirmMassLeaveApprovalQuestion=Ydych chi'n siŵr eich bod am gymeradwyo'r cofnod(au) dethol %s? +ConfirmMassLeaveApproval=Cadarnhad cymeradwyaeth absenoldeb màs +RecordAproved=Cymeradwywyd y cofnod +RecordsApproved=%s Cofnod(ion) wedi'u cymeradwyo +Properties=Priodweddau +hasBeenValidated=%s wedi'i ddilysu +ClientTZ=Parth Amser Cleient (defnyddiwr) +NotClosedYet=Heb ei gau eto +ClearSignature=Ailosod llofnod +CanceledHidden=Wedi'i ganslo cudd +CanceledShown=Wedi'i ganslo a ddangosir +Terminate=Terfynu +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 +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/cy_GB/margins.lang b/htdocs/langs/cy_GB/margins.lang new file mode 100644 index 00000000000..cc87638d2fe --- /dev/null +++ b/htdocs/langs/cy_GB/margins.lang @@ -0,0 +1,45 @@ +# Dolibarr language file - Source file is en_US - marges + +Margin=Ymylon +Margins=Ymylon +TotalMargin=Cyfanswm Ymyl +MarginOnProducts=Ymyl / Cynhyrchion +MarginOnServices=Ymyl / Gwasanaethau +MarginRate=Cyfradd ymyl +MarkRate=Cyfradd marcio +DisplayMarginRates=Arddangos cyfraddau ymyl +DisplayMarkRates=Arddangos cyfraddau marciau +InputPrice=Pris mewnbwn +margin=Rheoli maint yr elw +margesSetup=Gosodiad rheoli elw +MarginDetails=Manylion ymyl +ProductMargins=Ymylon cynnyrch +CustomerMargins=Ffiniau cwsmeriaid +SalesRepresentativeMargins=Elw cynrychiolydd gwerthu +ContactOfInvoice=Cyswllt yr anfoneb +UserMargins=Ymylon defnyddwyr +ProductService=Cynnyrch neu Wasanaeth +AllProducts=Pob cynnyrch a gwasanaeth +ChooseProduct/Service=Dewiswch gynnyrch neu wasanaeth +ForceBuyingPriceIfNull=Gorfodi pris prynu/costio i bris gwerthu os nad yw wedi'i ddiffinio +ForceBuyingPriceIfNullDetails=Os na ddarperir pris prynu / cost pan fyddwn yn ychwanegu llinell newydd, a bod yr opsiwn hwn "YMLAEN", yr ymyl fydd 0%% ar y llinell newydd (pris prynu / cost = pris gwerthu). Os yw'r opsiwn hwn "OFF" (argymhellir), bydd yr ymyl yn hafal i'r gwerth a awgrymir yn ddiofyn (a gall fod yn 100%% os na ellir dod o hyd i werth rhagosodedig). +MARGIN_METHODE_FOR_DISCOUNT=Dull ymyl ar gyfer gostyngiadau byd-eang +UseDiscountAsProduct=Fel cynnyrch +UseDiscountAsService=Fel gwasanaeth +UseDiscountOnTotal=Ar is-gyfanswm +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Yn diffinio a yw disgownt byd-eang yn cael ei drin fel cynnyrch, gwasanaeth, neu dim ond ar is-gyfanswm ar gyfer cyfrifo'r elw. +MARGIN_TYPE=Awgrymir pris prynu/cost yn ddiofyn ar gyfer cyfrifo'r elw +MargeType1=Gorswm ar y Pris Gwerthwr Gorau +MargeType2=Elw ar Bris Cyfartalog Pwysol (WAP) +MargeType3=Gorswm ar Bris Cost +MarginTypeDesc=* Ymyl ar y pris prynu gorau = Pris gwerthu - Pris gwerthwr gorau wedi'i ddiffinio ar gerdyn cynnyrch
    * Ymyl y Pris Cyfartalog Pwysol (WAP) = Pris gwerthu - Pris Cyfartalog Pwysoli Cynnyrch (WAP) neu'r pris gwerthwr gorau os nad yw WAP wedi'i ddiffinio eto
    * Ymyl ar bris cost = pris gwerthu - pris cost wedi'i ddiffinio ar gerdyn cynnyrch neu WAP os nad yw'r pris cost wedi'i ddiffinio, neu'r pris gwerthwr gorau os nad yw WAP wedi'i ddiffinio eto +CostPrice=Pris cost +UnitCharges=Costau uned +Charges=Taliadau +AgentContactType=Math cyswllt asiant masnachol +AgentContactTypeDetails=Diffinio pa fath o gyswllt (yn gysylltiedig ar anfonebau) a ddefnyddir ar gyfer adroddiad ymyl fesul cyswllt/cyfeiriad. Sylwch nad yw darllen ystadegau ar gyswllt yn ddibynadwy oherwydd yn y rhan fwyaf o achosion efallai na fydd y cyswllt wedi'i ddiffinio'n benodol ar yr anfonebau. +rateMustBeNumeric=Rhaid i'r gyfradd fod yn werth rhifol +markRateShouldBeLesserThan100=Dylai cyfradd y marciau fod yn is na 100 +ShowMarginInfos=Dangos gwybodaeth ymyl +CheckMargins=Manylion ymylon +MarginPerSaleRepresentativeWarning=Mae'r adroddiad elw fesul defnyddiwr yn defnyddio'r cyswllt rhwng trydydd parti a chynrychiolwyr gwerthu i gyfrifo ffin pob cynrychiolydd gwerthu. Oherwydd ei bod yn bosibl na fydd gan rai trydydd partïon unrhyw gynrychiolydd gwerthu penodol ac y gallai rhai trydydd partïon fod yn gysylltiedig â sawl un, efallai na fydd rhai symiau’n cael eu cynnwys yn yr adroddiad hwn (os nad oes cynrychiolydd gwerthu) a gall rhai ymddangos ar linellau gwahanol (ar gyfer pob cynrychiolydd gwerthu) . diff --git a/htdocs/langs/cy_GB/members.lang b/htdocs/langs/cy_GB/members.lang new file mode 100644 index 00000000000..45526b3900a --- /dev/null +++ b/htdocs/langs/cy_GB/members.lang @@ -0,0 +1,230 @@ +# Dolibarr language file - Source file is en_US - members +MembersArea=Ardal aelodau +MemberCard=Cerdyn aelod +SubscriptionCard=Cerdyn tanysgrifio +Member=Aelod +Members=Aelodau +ShowMember=Dangos cerdyn aelod +UserNotLinkedToMember=Defnyddiwr heb ei gysylltu ag aelod +ThirdpartyNotLinkedToMember=Trydydd parti heb fod yn gysylltiedig ag aelod +MembersTickets=Taflen cyfeiriad aelodaeth +FundationMembers=Aelodau sylfaen +ListOfValidatedPublicMembers=Rhestr o aelodau cyhoeddus dilys +ErrorThisMemberIsNotPublic=Nid yw'r aelod hwn yn gyhoeddus +ErrorMemberIsAlreadyLinkedToThisThirdParty=Aelod (enw: %s , login: %s ) arall yn barod gysylltu i drydydd parti %s . Tynnwch y ddolen hon yn gyntaf oherwydd ni ellir cysylltu trydydd parti ag aelod yn unig (ac i'r gwrthwyneb). +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 +MembersCards=Generation of cards for members +MembersList=Rhestr o aelodau +MembersListToValid=Rhestr o aelodau drafft (i'w dilysu) +MembersListValid=Rhestr o aelodau dilys +MembersListUpToDate=Rhestr o aelodau dilys gyda chyfraniad cyfredol +MembersListNotUpToDate=Rhestr o aelodau dilys gyda chyfraniad wedi dyddio +MembersListExcluded=Rhestr o aelodau eithriedig +MembersListResiliated=Rhestr o aelodau terfynedig +MembersListQualified=Rhestr o aelodau cymwys +MenuMembersToValidate=Aelodau drafft +MenuMembersValidated=Aelodau dilys +MenuMembersExcluded=Aelodau gwaharddedig +MenuMembersResiliated=Aelodau terfynedig +MembersWithSubscriptionToReceive=Aelodau gyda chyfraniad i'w dderbyn +MembersWithSubscriptionToReceiveShort=Cyfraniadau i'w derbyn +DateSubscription=Dyddiad aelodaeth +DateEndSubscription=Dyddiad gorffen aelodaeth +EndSubscription=Diwedd aelodaeth +SubscriptionId=ID y cyfraniad +WithoutSubscription=Heb gyfraniad +MemberId=Member Id +MemberRef=Member Ref +NewMember=Aelod newydd +MemberType=Math o aelod +MemberTypeId=ID math aelod +MemberTypeLabel=Label math aelod +MembersTypes=Mathau o aelodau +MemberStatusDraft=Drafft (angen ei ddilysu) +MemberStatusDraftShort=Drafft +MemberStatusActive=Wedi'i ddilysu (aros am gyfraniad) +MemberStatusActiveShort=Wedi'i ddilysu +MemberStatusActiveLate=Cyfraniad wedi dod i ben +MemberStatusActiveLateShort=Wedi dod i ben +MemberStatusPaid=Tanysgrifiad yn gyfredol +MemberStatusPaidShort=Yn gyfoes +MemberStatusExcluded=Aelod gwaharddedig +MemberStatusExcludedShort=Eithriedig +MemberStatusResiliated=Aelod terfynedig +MemberStatusResiliatedShort=Terfynwyd +MembersStatusToValid=Aelodau drafft +MembersStatusExcluded=Aelodau gwaharddedig +MembersStatusResiliated=Aelodau terfynedig +MemberStatusNoSubscription=Wedi'i ddilysu (dim angen cyfraniad) +MemberStatusNoSubscriptionShort=Wedi'i ddilysu +SubscriptionNotNeeded=Dim angen cyfraniad +NewCotisation=Cyfraniad newydd +PaymentSubscription=Taliad cyfraniad newydd +SubscriptionEndDate=Dyddiad gorffen y tanysgrifiad +MembersTypeSetup=Mae aelodau'n teipio'r gosodiad +MemberTypeModified=Math o aelod wedi'i addasu +DeleteAMemberType=Dileu math o aelod +ConfirmDeleteMemberType=Ydych chi'n siŵr eich bod am ddileu'r math hwn o aelod? +MemberTypeDeleted=Math o aelod wedi'i ddileu +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 with a recommended amount of %s %s +AnyAmountWithoutAdvisedAmount=Any amount +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Get membership +Subscriptions=Cyfraniadau +SubscriptionLate=Hwyr +SubscriptionNotReceived=Ni dderbyniwyd cyfraniad erioed +ListOfSubscriptions=Rhestr o gyfraniadau +SendCardByMail=Anfon cerdyn trwy e-bost +AddMember=Creu aelod +NoTypeDefinedGoToSetup=Dim mathau o aelodau wedi'u diffinio. Ewch i ddewislen "Mathau o Aelodau" +NewMemberType=Math o aelod newydd +WelcomeEMail=E-bost croeso +SubscriptionRequired=Angen cyfraniad +DeleteType=Dileu +VoteAllowed=Caniatawyd pleidlais +Physical=Unigol +Moral=Gorfforaeth +MorAndPhy=Corfforaeth ac Unigol +Reenable=Ail-alluogi +ExcludeMember=Gwahardd aelod +Exclude=Eithrio +ConfirmExcludeMember=Ydych chi'n siŵr eich bod am eithrio'r aelod hwn ? +ResiliateMember=Terfynu aelod +ConfirmResiliateMember=Ydych chi'n siŵr eich bod am derfynu'r aelod hwn? +DeleteMember=Dileu aelod +ConfirmDeleteMember=Ydych chi'n siŵr eich bod am ddileu'r aelod hwn (Bydd dileu aelod yn dileu ei holl gyfraniadau)? +DeleteSubscription=Dileu tanysgrifiad +ConfirmDeleteSubscription=Ydych chi'n siŵr eich bod am ddileu'r cyfraniad hwn? +Filehtpasswd=ffeil htpasswd +ValidateMember=Dilysu aelod +ConfirmValidateMember=Ydych chi'n siŵr eich bod am ddilysu'r aelod hwn? +FollowingLinksArePublic=Mae'r dolenni canlynol yn dudalennau agored nad ydynt wedi'u diogelu gan unrhyw ganiatâd Dolibarr. Nid ydynt yn dudalennau wedi'u fformatio, a ddarperir fel enghraifft i ddangos sut i restru cronfa ddata aelodau. +PublicMemberList=Rhestr aelod cyhoeddus +BlankSubscriptionForm=Ffurflen hunangofrestru cyhoeddus +BlankSubscriptionFormDesc=Gall Dolibarr ddarparu URL/gwefan gyhoeddus i ganiatáu i ymwelwyr allanol ofyn am danysgrifio i'r sylfaen. Os yw modiwl talu ar-lein wedi'i alluogi, efallai y bydd ffurflen dalu yn cael ei darparu'n awtomatig hefyd. +EnablePublicSubscriptionForm=Galluogi'r wefan gyhoeddus gyda ffurflen hunan-danysgrifio +ForceMemberType=Gorfodi'r math o aelod +ExportDataset_member_1=Aelodau a chyfraniadau +ImportDataset_member_1=Aelodau +LastMembersModified=Aelodau diweddaraf %s wedi'u haddasu +LastSubscriptionsModified=Cyfraniadau diweddaraf %s wedi'u haddasu +String=Llinyn +Text=Testun +Int=Int +DateAndTime=Dyddiad ac amser +PublicMemberCard=Cerdyn cyhoeddus aelod +SubscriptionNotRecorded=Cyfraniad heb ei gofnodi +AddSubscription=Creu cyfraniad +ShowSubscription=Dangos cyfraniad +# Label of email templates +SendingAnEMailToMember=Anfon e-bost gwybodaeth i aelod +SendingEmailOnAutoSubscription=Anfon e-bost ar gofrestru ceir +SendingEmailOnMemberValidation=Anfon e-bost ar ddilysiad aelod newydd +SendingEmailOnNewSubscription=Anfon e-bost ar gyfraniad newydd +SendingReminderForExpiredSubscription=Anfon nodyn atgoffa ar gyfer cyfraniadau sydd wedi dod i ben +SendingEmailOnCancelation=Anfon e-bost ar ganslo +SendingReminderActionComm=Anfon nodyn atgoffa ar gyfer digwyddiad agenda +# Topic of email templates +YourMembershipRequestWasReceived=Derbyniwyd eich aelodaeth. +YourMembershipWasValidated=Dilyswyd eich aelodaeth +YourSubscriptionWasRecorded=Cafodd eich cyfraniad newydd ei gofnodi +SubscriptionReminderEmail=nodyn atgoffa cyfraniad +YourMembershipWasCanceled=Cafodd eich aelodaeth ei chanslo +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=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 +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Cynnwys yr e-bost hysbysu a dderbyniwyd rhag ofn y bydd gwestai yn arysgrif yn awtomatig +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Templed e-bost i'w ddefnyddio i anfon e-bost at aelod ar gofrestriad awtomatig aelod +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Templed e-bost i'w ddefnyddio i anfon e-bost at aelod ar ddilysu aelod +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Templed e-bost i'w ddefnyddio i anfon e-bost at aelod ar gofnodi cyfraniadau newydd +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Templed e-bost i'w ddefnyddio i anfon e-bost atgoffa pan fydd cyfraniad ar fin dod i ben +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Templed e-bost i'w ddefnyddio i anfon e-bost at aelod ar ganslo aelod +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Templed e-bost i'w ddefnyddio i anfon e-bost at aelod ar wahardd aelod +DescADHERENT_MAIL_FROM=E-bost anfonwr ar gyfer e-byst awtomatig +DescADHERENT_ETIQUETTE_TYPE=Fformat y dudalen labeli +DescADHERENT_ETIQUETTE_TEXT=Testun wedi'i argraffu ar daflenni cyfeiriadau aelodau +DescADHERENT_CARD_TYPE=Fformat y dudalen cardiau +DescADHERENT_CARD_HEADER_TEXT=Testun wedi'i argraffu ar ben cardiau aelod +DescADHERENT_CARD_TEXT=Testun wedi'i argraffu ar gardiau aelod (alinio ar y chwith) +DescADHERENT_CARD_TEXT_RIGHT=Testun wedi'i argraffu ar gardiau aelod (alinio ar y dde) +DescADHERENT_CARD_FOOTER_TEXT=Testun wedi'i argraffu ar waelod cardiau aelod +ShowTypeCard=Dangos math '%s' +HTPasswordExport=cynhyrchu ffeiliau htpassword +NoThirdPartyAssociatedToMember=Dim trydydd parti yn gysylltiedig â'r aelod hwn +MembersAndSubscriptions=Aelodau a Chyfraniadau +MoreActions=Gweithredu cyflenwol ar gofnodi +MoreActionsOnSubscription=Camau cyflenwol a awgrymir yn ddiofyn wrth gofnodi cyfraniad, hefyd yn cael ei wneud yn awtomatig wrth dalu cyfraniad ar-lein +MoreActionBankDirect=Creu cofnod uniongyrchol ar gyfrif banc +MoreActionBankViaInvoice=Creu anfoneb, a thaliad ar gyfrif banc +MoreActionInvoiceOnly=Creu anfoneb heb unrhyw daliad +LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPagesDesc=Mae'r sgrin hon yn caniatáu ichi gynhyrchu ffeiliau PDF gyda chardiau busnes ar gyfer eich holl aelodau neu aelod penodol. +DocForAllMembersCards=Cynhyrchu cardiau busnes ar gyfer pob aelod +DocForOneMemberCards=Cynhyrchu cardiau busnes ar gyfer aelod penodol +DocForLabels=Cynhyrchu taflenni cyfeiriad +SubscriptionPayment=Taliad cyfraniad +LastSubscriptionDate=Dyddiad y taliad cyfraniad diweddaraf +LastSubscriptionAmount=Swm y cyfraniad diweddaraf +LastMemberType=Math Aelod diwethaf +MembersStatisticsByCountries=Ystadegau aelodau fesul gwlad +MembersStatisticsByState=Ystadegau aelodau fesul gwladwriaeth/talaith +MembersStatisticsByTown=Ystadegau aelodau fesul tref +MembersStatisticsByRegion=Ystadegau Aelodau fesul rhanbarth +NbOfMembers=Cyfanswm yr aelodau +NbOfActiveMembers=Cyfanswm yr aelodau gweithredol presennol +NoValidatedMemberYet=Ni chanfuwyd unrhyw aelodau dilys +MembersByCountryDesc=Mae'r sgrin hon yn dangos ystadegau aelodau fesul gwlad. Mae graffiau a siartiau yn dibynnu ar argaeledd gwasanaeth graffiau ar-lein Google yn ogystal ag argaeledd cysylltiad rhyngrwyd gweithredol. +MembersByStateDesc=Mae'r sgrin hon yn dangos ystadegau aelodau fesul gwladwriaeth/taleithiau/canton. +MembersByTownDesc=Mae'r sgrin hon yn dangos ystadegau aelodau fesul tref. +MembersByNature=Mae'r sgrin hon yn dangos ystadegau aelodau yn ôl natur i chi. +MembersByRegion=Mae'r sgrin hon yn dangos ystadegau aelodau fesul rhanbarth. +MembersStatisticsDesc=Dewiswch ystadegau rydych chi am eu darllen... +MenuMembersStats=Ystadegau +LastMemberDate=Dyddiad aelodaeth diweddaraf +LatestSubscriptionDate=Dyddiad cyfrannu diweddaraf +MemberNature=Natur yr aelod +MembersNature=Natur yr aelodau +Public=Mae gwybodaeth yn gyhoeddus +NewMemberbyWeb=Ychwanegwyd aelod newydd. Aros am gymeradwyaeth +NewMemberForm=Ffurflen aelod newydd +SubscriptionsStatistics=Ystadegau cyfraniadau +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=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s +MEMBER_NEWFORM_PAYONLINE=Neidiwch ar dudalen talu ar-lein integredig +ByProperties=Wrth natur +MembersStatisticsByProperties=Ystadegau aelodau yn ôl natur +VATToUseForSubscriptions=Cyfradd TAW i'w defnyddio ar gyfer cyfraniadau +NoVatOnSubscription=Dim TAW ar gyfer cyfraniadau +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Cynnyrch a ddefnyddir ar gyfer llinell gyfraniad i'r anfoneb: %s +NameOrCompany=Enw neu gwmni +SubscriptionRecorded=Cyfraniad wedi'i gofnodi +NoEmailSentToMember=Dim e-bost wedi'i anfon at yr aelod +EmailSentToMember=E-bost wedi'i anfon at aelod yn %s +SendReminderForExpiredSubscriptionTitle=Anfonwch nodyn atgoffa trwy e-bost ar gyfer cyfraniadau sydd wedi dod i ben +SendReminderForExpiredSubscription=Anfonwch nodyn atgoffa trwy e-bost at aelodau pan fydd cyfraniad ar fin dod i ben (paramedr yw nifer y dyddiau cyn diwedd aelodaeth i anfon y nodyn atgoffa. Gall fod yn rhestr o ddyddiau wedi'u gwahanu gan hanner colon, er enghraifft '10;5; 0;-5 ') +MembershipPaid=Talwyd aelodaeth am y cyfnod cyfredol (tan %s) +YouMayFindYourInvoiceInThisEmail=Mae'n bosibl y bydd eich anfoneb wedi'i hatodi i'r e-bost hwn +XMembersClosed=%s aelod(au) ar gau +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 diff --git a/htdocs/langs/cy_GB/modulebuilder.lang b/htdocs/langs/cy_GB/modulebuilder.lang new file mode 100644 index 00000000000..93e8b1657f7 --- /dev/null +++ b/htdocs/langs/cy_GB/modulebuilder.lang @@ -0,0 +1,155 @@ +# Dolibarr language file - Source file is en_US - loan +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. +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 +ModuleBuilderDesc4=Mae modiwl yn cael ei ganfod fel un 'golygadwy' pan fo'r ffeil %s yn bodoli yng ngwraidd cyfeiriadur modiwlau +NewModule=Modiwl newydd +NewObjectInModulebuilder=Gwrthrych newydd +NewDictionary=New dictionary +ModuleKey=Allwedd modiwl +ObjectKey=Allwedd gwrthrych +DicKey=Dictionary key +ModuleInitialized=Modiwl wedi'i gychwyn +FilesForObjectInitialized=Ffeiliau ar gyfer gwrthrych newydd '%s' wedi'u cychwyn +FilesForObjectUpdated=Ffeiliau ar gyfer gwrthrych '%s' wedi'u diweddaru (ffeiliau .sql a ffeil .class.php) +ModuleBuilderDescdescription=Rhowch yma'r holl wybodaeth gyffredinol sy'n disgrifio'ch modiwl. +ModuleBuilderDescspecifications=Yma gallwch roi disgrifiad manwl o fanylebau eich modiwl nad yw eisoes wedi'i strwythuro i dabiau eraill. Felly mae gennych yr holl reolau i'w datblygu o fewn cyrraedd hawdd. Hefyd bydd y cynnwys testun hwn yn cael ei gynnwys yn y ddogfennaeth a gynhyrchir (gweler y tab olaf). Gallwch ddefnyddio fformat Markdown, ond argymhellir defnyddio fformat Asciidoc (cymhariaeth rhwng .md a .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=Diffiniwch yma'r gwrthrychau rydych chi am eu rheoli gyda'ch modiwl. Bydd dosbarth CRUD DAO, ffeiliau SQL, tudalen i restru cofnod o wrthrychau, i greu/golygu/gweld cofnod ac API yn cael eu cynhyrchu. +ModuleBuilderDescmenus=Mae'r tab hwn wedi'i neilltuo i ddiffinio cofnodion dewislen a ddarperir gan eich modiwl. +ModuleBuilderDescpermissions=Mae'r tab hwn wedi'i neilltuo i ddiffinio'r caniatadau newydd rydych chi am eu darparu gyda'ch modiwl. +ModuleBuilderDesctriggers=Dyma'r olygfa o'r sbardunau a ddarperir gan eich modiwl. I gynnwys cod a weithredwyd pan fydd digwyddiad busnes wedi'i sbarduno yn cael ei lansio, golygwch y ffeil hon. +ModuleBuilderDeschooks=Mae'r tab hwn wedi'i neilltuo i fachau. +ModuleBuilderDescwidgets=Mae'r tab hwn wedi'i neilltuo ar gyfer rheoli/adeiladu teclynnau. +ModuleBuilderDescbuildpackage=Yma gallwch gynhyrchu ffeil pecyn "parod i'w ddosbarthu" (ffeil .zip normaleiddio) o'ch modiwl a ffeil ddogfennaeth "barod i'w dosbarthu". Cliciwch ar y botwm i adeiladu'r pecyn neu'r ffeil ddogfennaeth. +EnterNameOfModuleToDeleteDesc=Gallwch ddileu eich modiwl. RHYBUDD: Bydd holl ffeiliau codio'r modiwl (wedi'u cynhyrchu neu eu creu â llaw) A data a dogfennaeth strwythuredig yn cael eu dileu! +EnterNameOfObjectToDeleteDesc=Gallwch ddileu gwrthrych. RHYBUDD: Bydd yr holl ffeiliau codio (wedi'u cynhyrchu neu eu creu â llaw) sy'n ymwneud â gwrthrych yn cael eu dileu! +DangerZone=Parth perygl +BuildPackage=Adeiladu pecyn +BuildPackageDesc=Gallwch gynhyrchu pecyn sip o'ch cais fel eich bod yn barod i'w ddosbarthu ar unrhyw Ddolibarr. Gallwch hefyd ei ddosbarthu neu ei werthu ar y farchnad fel DoliStore.com . +BuildDocumentation=Adeiladu dogfennaeth +ModuleIsNotActive=Nid yw'r modiwl hwn wedi'i actifadu eto. Ewch i %s i'w wneud yn fyw neu cliciwch yma +ModuleIsLive=Mae'r modiwl hwn wedi'i actifadu. Gall unrhyw newid dorri nodwedd fyw gyfredol. +DescriptionLong=Disgrifiad hir +EditorName=Enw'r golygydd +EditorUrl=URL y golygydd +DescriptorFile=Ffeil disgrifydd y modiwl +ClassFile=Ffeil ar gyfer dosbarth PHP DAO CRUD +ApiClassFile=Ffeil ar gyfer dosbarth PHP API +PageForList=Tudalen PHP ar gyfer rhestr o gofnodion +PageForCreateEditView=Tudalen PHP i greu/golygu/gweld cofnod +PageForAgendaTab=Tudalen PHP ar gyfer tab digwyddiad +PageForDocumentTab=Tudalen PHP ar gyfer tab dogfen +PageForNoteTab=Tudalen PHP ar gyfer tab nodyn +PageForContactTab=Tudalen PHP ar gyfer tab cyswllt +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 +RegenerateClassAndSql=Gorfodi diweddaru ffeiliau .class a .sql +RegenerateMissingFiles=Cynhyrchu ffeiliau coll +SpecificationFile=Ffeil o ddogfennaeth +LanguageFile=Ffeil ar gyfer iaith +ObjectProperties=Priodweddau Gwrthrych +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) +SearchAll=Wedi'i ddefnyddio ar gyfer 'chwilio i gyd' +DatabaseIndex=Mynegai cronfa ddata +FileAlreadyExists=Mae ffeil %s eisoes yn bodoli +TriggersFile=Ffeil ar gyfer cod sbardunau +HooksFile=Ffeil ar gyfer cod bachau +ArrayOfKeyValues=Arae o allwedd-val +ArrayOfKeyValuesDesc=Arae o allweddi a gwerthoedd os yw'r maes yn rhestr combo gyda gwerthoedd sefydlog +WidgetFile=Ffeil teclyn +CSSFile=Ffeil CSS +JSFile=Ffeil javascript +ReadmeFile=Darllena ffeil +ChangeLog=Ffeil ChangeLog +TestClassFile=Ffeil ar gyfer dosbarth Prawf Uned PHP +SqlFile=Ffeil sql +PageForLib=Ffeil ar gyfer y llyfrgell PHP gyffredin +PageForObjLib=Ffeil ar gyfer y llyfrgell PHP sy'n ymroddedig i wrthwynebu +SqlFileExtraFields=Ffeil sql ar gyfer priodoleddau cyflenwol +SqlFileKey=Ffeil sql ar gyfer allweddi +SqlFileKeyExtraFields=Ffeil sql ar gyfer allweddi priodoleddau cyflenwol +AnObjectAlreadyExistWithThisNameAndDiffCase=Mae gwrthrych yn bodoli eisoes gyda'r enw hwn ac achos gwahanol +UseAsciiDocFormat=Gallwch ddefnyddio fformat Markdown, ond argymhellir defnyddio fformat Asciidoc (cymhariaeth rhwng .md a .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=Yn fesur +DirScanned=Cyfeiriadur wedi'i sganio +NoTrigger=Dim sbardun +NoWidget=Dim teclyn +GoToApiExplorer=Fforiwr API +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 +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. +LanguageDefDesc=Rhowch yn y ffeiliau hwn, yr holl allwedd a'r cyfieithiad ar gyfer pob ffeil iaith. +MenusDefDesc=Diffiniwch yma y dewislenni a ddarperir gan eich modiwl +DictionariesDefDesc=Diffiniwch yma'r geiriaduron a ddarperir gan eich modiwl +PermissionsDefDesc=Diffiniwch yma y caniatadau newydd a ddarperir gan eich modiwl +MenusDefDescTooltip=Mae'r dewislenni a ddarperir gan eich modiwl/cymhwysiad wedi'u diffinio yn yr arae $this-> bwydlenni yn ffeil disgrifydd y modiwl. Gallwch olygu'r ffeil hon â llaw neu ddefnyddio'r golygydd wedi'i fewnosod.

    Nodyn: Ar ôl ei ddiffinio (a'r modiwl wedi'i ail-ysgogi), mae'r dewislenni hefyd i'w gweld yn y golygydd dewislen sydd ar gael i ddefnyddwyr gweinyddwyr ar %s. +DictionariesDefDescTooltip=Mae'r geiriaduron a ddarperir gan eich modiwl/cymhwysiad wedi'u diffinio yn yr arae $thi->dictionaries yn ffeil disgrifydd y modiwl. Gallwch olygu'r ffeil hon â llaw neu ddefnyddio'r golygydd wedi'i fewnosod.

    Nodyn: Ar ôl eu diffinio (a'r modiwl wedi'i ail-ysgogi), mae geiriaduron hefyd yn weladwy yn yr ardal gosod i ddefnyddwyr gweinyddwyr ar %s. +PermissionsDefDescTooltip=Mae'r caniatadau a ddarperir gan eich modiwl/cymhwysiad wedi'u diffinio yn yr arae $this->hawliau i mewn i'r ffeil disgrifydd modiwl. Gallwch olygu'r ffeil hon â llaw neu ddefnyddio'r golygydd wedi'i fewnosod.

    Nodyn: Ar ôl eu diffinio (a'r modiwl wedi'i ail-ysgogi), mae caniatâd i'w weld yn y gosodiadau caniatâd rhagosodedig %s. +HooksDefDesc=Diffiniwch yn y priodwedd module_parts['bachau'] , yn y disgrifydd modiwl, cyd-destun y bachau rydych chi am eu rheoli (gellir dod o hyd i restr o gyd-destunau trwy chwiliad ar ' a0aee83365837fz(70901b) cod initzdazdazdazda703047480360148484848484833333333333333334 y ffeil bachyn i ychwanegu cod eich swyddogaethau bachog (gellir dod o hyd i swyddogaethau bachyn trwy chwilio ar ' executeHooks ' yn y cod craidd). +TriggerDefDesc=Diffiniwch yn y ffeil sbardun y cod yr ydych am ei weithredu pan fydd digwyddiad busnes y tu allan i'ch modiwl yn cael ei weithredu (digwyddiadau a ysgogir gan fodiwlau eraill). +SeeIDsInUse=Gweld IDs sy'n cael eu defnyddio yn eich gosodiad +SeeReservedIDsRangeHere=Gweler yr ystod o IDau neilltuedig +ToolkitForDevelopers=Pecyn cymorth ar gyfer datblygwyr Dolibarr +TryToUseTheModuleBuilder=Os oes gennych chi wybodaeth am SQL a PHP, gallwch ddefnyddio'r dewin adeiladu modiwlau brodorol.
    Galluogi'r modiwl %s a defnyddio'r dewin trwy glicio ar y a014f1b93d ar y ddewislen ar y dde top7c65.
    Rhybudd: Mae hon yn nodwedd datblygwr datblygedig, gwnewch arbrawf nid ar eich safle cynhyrchu! +SeeTopRightMenu=Gweler ar y ddewislen dde uchaf +AddLanguageFile=Ychwanegu ffeil iaith +YouCanUseTranslationKey=Gallwch ddefnyddio yma allwedd sef yr allwedd cyfieithu a geir yn y ffeil iaith (gweler y tab "Ieithoedd") +DropTableIfEmpty=(Difa bwrdd os yw'n wag) +TableDoesNotExists=Nid yw'r tabl %s yn bodoli +TableDropped=Tabl %s wedi'i ddileu +InitStructureFromExistingTable=Adeiladwch linyn arae strwythur bwrdd sy'n bodoli eisoes +UseAboutPage=Peidiwch â chynhyrchu'r dudalen Amdanom +UseDocFolder=Analluogi'r ffolder dogfennaeth +UseSpecificReadme=Defnyddiwch ReadMe penodol +ContentOfREADMECustomized=Nodyn: Mae cynnwys y ffeil README.md wedi'i ddisodli gan y gwerth penodol a ddiffinnir wrth osod ModuleBuilder. +RealPathOfModule=Llwybr go iawn y modiwl +ContentCantBeEmpty=Ni all cynnwys y ffeil fod yn wag +WidgetDesc=Yma gallwch chi gynhyrchu a golygu'r teclynnau a fydd yn cael eu hymgorffori yn eich modiwl. +CSSDesc=Yma gallwch chi gynhyrchu a golygu ffeil gyda CSS personol wedi'i hymgorffori yn eich modiwl. +JSDesc=Yma gallwch greu a golygu ffeil gyda Javascript personol wedi'i fewnosod yn eich modiwl. +CLIDesc=Yma gallwch chi gynhyrchu rhai sgriptiau llinell orchymyn rydych chi am eu darparu gyda'ch modiwl. +CLIFile=Ffeil CLI +NoCLIFile=Dim ffeiliau CLI +UseSpecificEditorName = Defnyddiwch enw golygydd penodol +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 +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=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 +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__)' +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. +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. diff --git a/htdocs/langs/cy_GB/mrp.lang b/htdocs/langs/cy_GB/mrp.lang new file mode 100644 index 00000000000..855839ae5a8 --- /dev/null +++ b/htdocs/langs/cy_GB/mrp.lang @@ -0,0 +1,114 @@ +Mrp=Gorchmynion Gweithgynhyrchu +MOs=Gorchmynion gweithgynhyrchu +ManufacturingOrder=Gorchymyn Gweithgynhyrchu +MRPDescription=Modiwl i reoli Cynhyrchu a Gorchmynion Gweithgynhyrchu (MO). +MRPArea=Ardal MRP +MrpSetupPage=Gosod MRP modiwl +MenuBOM=Biliau o ddeunydd +LatestBOMModified=%s diweddaraf Biliau o ddeunyddiau wedi'u haddasu +LatestMOModified=Gorchmynion Gweithgynhyrchu %s diweddaraf wedi'u haddasu +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 +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 +BOMsModelModule=Templedi dogfennau BOM +MOsNumberingModules=Templedi rhifo MO +MOsModelModule=Templedi dogfen MO +FreeLegalTextOnBOMs=Testun am ddim ar ddogfen BOM +WatermarkOnDraftBOMs=Dyfrnod ar BOM drafft +FreeLegalTextOnMOs=Testun am ddim ar ddogfen MO +WatermarkOnDraftMOs=Dyfrnod ar MO drafft +ConfirmCloneBillOfMaterials=A ydych yn siŵr eich bod am glonio'r bil deunyddiau %s ? +ConfirmCloneMo=A ydych yn siŵr eich bod am glonio'r Gorchymyn Gweithgynhyrchu %s ? +ManufacturingEfficiency=Effeithlonrwydd gweithgynhyrchu +ConsumptionEfficiency=Effeithlonrwydd defnydd +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 +DeleteMo=Dileu Gorchymyn Gweithgynhyrchu +ConfirmDeleteBillOfMaterials=Ydych chi'n siŵr eich bod am ddileu'r Bil Deunyddiau hwn? +ConfirmDeleteMo=A ydych yn siŵr eich bod am ddileu'r Gorchymyn Gweithgynhyrchu hwn? +MenuMRP=Gorchmynion Gweithgynhyrchu +NewMO=Gorchymyn Gweithgynhyrchu Newydd +QtyToProduce=Qty i gynhyrchu +DateStartPlannedMo=Dyddiad dechrau wedi'i gynllunio +DateEndPlannedMo=Dyddiad gorffen wedi'i gynllunio +KeepEmptyForAsap=Mae gwag yn golygu 'Cyn gynted ag y bo modd' +EstimatedDuration=Amcangyfrif o hyd +EstimatedDurationDesc=Amcangyfrif o hyd ar gyfer gweithgynhyrchu (neu ddadosod) y cynnyrch hwn gan ddefnyddio'r BOM hwn +ConfirmValidateBom=A ydych yn siŵr eich bod am ddilysu'r BOM gyda'r cyfeirnod %s (byddwch yn gallu ei ddefnyddio i adeiladu Gorchmynion Gweithgynhyrchu newydd) +ConfirmCloseBom=A ydych yn siŵr eich bod am ganslo'r BOM hwn (ni fyddwch yn gallu ei ddefnyddio i adeiladu Gorchmynion Gweithgynhyrchu newydd mwyach) ? +ConfirmReopenBom=Ydych chi'n siŵr eich bod am ail-agor y BOM hwn (byddwch yn gallu ei ddefnyddio i adeiladu Gorchmynion Gweithgynhyrchu newydd) +StatusMOProduced=Cynhyrchwyd +QtyFrozen=Wedi rhewi Qty +QuantityFrozen=Nifer wedi'i Rewi +QuantityConsumedInvariable=Pan osodir y faner hon, y swm a ddefnyddir bob amser yw'r gwerth a ddiffinnir ac nid yw'n gymharol â'r swm a gynhyrchir. +DisableStockChange=Newid stoc wedi'i analluogi +DisableStockChangeHelp=Pan osodir y faner hon, nid oes unrhyw newid stoc ar y cynnyrch hwn, beth bynnag yw'r swm a ddefnyddir +BomAndBomLines=Biliau o Ddeunydd a llinellau +BOMLine=Llinell BOM +WarehouseForProduction=Warws ar gyfer cynhyrchu +CreateMO=Creu MO +ToConsume=I fwyta +ToProduce=I gynhyrchu +ToObtain=I gael +QtyAlreadyConsumed=Qty eisoes wedi bwyta +QtyAlreadyProduced=Qty eisoes wedi'i gynhyrchu +QtyRequiredIfNoLoss=Mae angen Qty os nad oes colled (Effeithlonrwydd gweithgynhyrchu yw 100%%) +ConsumeOrProduce=Defnydd neu Gynhyrchu +ConsumeAndProduceAll=Defnyddio a Chynhyrchu Pawb +Manufactured=Wedi'i weithgynhyrchu +TheProductXIsAlreadyTheProductToProduce=Mae'r cynnyrch i'w ychwanegu eisoes yn gynnyrch i'w gynhyrchu. +ForAQuantityOf=Am swm i'w gynhyrchu o %s +ForAQuantityToConsumeOf=Am swm i'w ddadosod o %s +ConfirmValidateMo=A ydych yn siŵr eich bod am ddilysu'r Gorchymyn Gweithgynhyrchu hwn? +ConfirmProductionDesc=Drwy glicio ar '%s', byddwch yn dilysu'r defnydd a/neu'r cynhyrchiad ar gyfer y meintiau a osodwyd. Bydd hyn hefyd yn diweddaru'r stoc ac yn cofnodi symudiadau stoc. +ProductionForRef=Cynhyrchu %s +CancelProductionForRef=Cancellation of product stock decrementation for product %s +TooltipDeleteAndRevertStockMovement=Delete line and revert stock movement +AutoCloseMO=Caewch y Gorchymyn Gweithgynhyrchu yn awtomatig os cyrhaeddir meintiau i'w bwyta a'u cynhyrchu +NoStockChangeOnServices=Dim newid stoc ar wasanaethau +ProductQtyToConsumeByMO=Maint y cynnyrch i'w ddefnyddio o hyd gan MO agored +ProductQtyToProduceByMO=Maint y cynnyrch i'w gynhyrchu o hyd gan MO agored +AddNewConsumeLines=Ychwanegu llinell newydd i'w defnyddio +AddNewProduceLines=Ychwanegu llinell newydd i gynhyrchu +ProductsToConsume=Cynhyrchion i'w bwyta +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) +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 +Workstations=Gweithfannau +WorkstationsDescription=Rheoli gweithfannau +WorkstationSetup = Gosod gweithfannau +WorkstationSetupPage = Tudalen gosod gweithfannau +WorkstationList=Rhestr gweithfan +WorkstationCreate=Ychwanegu gweithfan newydd +ConfirmEnableWorkstation=A ydych yn siŵr eich bod am alluogi gweithfan %s ? +EnableAWorkstation=Galluogi gweithfan +ConfirmDisableWorkstation=A ydych yn siŵr eich bod am analluogi gweithfan %s ? +DisableAWorkstation=Analluogi gweithfan +DeleteWorkstation=Dileu +NbOperatorsRequired=Nifer y gweithredwyr sydd eu hangen +THMOperatorEstimated=Amcangyfrif gweithredwr THM +THMMachineEstimated=Peiriant amcangyfrif THM +WorkstationType=Math gweithfan +Human=Dynol +Machine=Peiriant +HumanMachine=Dynol / Peiriant +WorkstationArea=Ardal gweithfan +Machines=Peiriannau +THMEstimatedHelp=Mae'r gyfradd hon yn ei gwneud hi'n bosibl diffinio rhagolwg o gost yr eitem +BOM=Bil o Ddeunyddiau +CollapseBOMHelp=Gallwch ddiffinio'r arddangosiad rhagosodedig o fanylion yr enwau yng nghyfluniad y modiwl BOM +MOAndLines=Gorchmynion Gweithgynhyrchu a llinellau +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child diff --git a/htdocs/langs/cy_GB/multicurrency.lang b/htdocs/langs/cy_GB/multicurrency.lang new file mode 100644 index 00000000000..f224de54910 --- /dev/null +++ b/htdocs/langs/cy_GB/multicurrency.lang @@ -0,0 +1,38 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Aml arian cyfred +ErrorAddRateFail=Gwall yn y gyfradd ychwanegol +ErrorAddCurrencyFail=Gwall mewn arian cyfred ychwanegol +ErrorDeleteCurrencyFail=Gwall dileu methu +multicurrency_syncronize_error=Gwall cydamseru: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Defnyddiwch ddyddiad y ddogfen i ddod o hyd i'r gyfradd arian cyfred, yn lle defnyddio'r gyfradd hysbys ddiweddaraf +multicurrency_useOriginTx=Pan fydd gwrthrych yn cael ei greu o wrthrych arall, cadwch y gyfradd wreiddiol o'r gwrthrych ffynhonnell (fel arall defnyddiwch y gyfradd hysbys ddiweddaraf) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=Rhaid i chi greu cyfrif ar wefan %s i ddefnyddio'r swyddogaeth hon.
    Cael eich allwedd API .
    Os ydych chi'n defnyddio cyfrif am ddim, ni allwch newid yr arian cyfred ffynhonnell (USD yn ddiofyn).
    Os nad USD yw eich prif arian cyfred, bydd y cais yn ei ailgyfrifo'n awtomatig.

    Rydych wedi'ch cyfyngu i 1000 o gydamseriadau y mis. +multicurrency_appId=Allwedd API +multicurrency_appCurrencySource=Arian cyfred ffynhonnell +multicurrency_alternateCurrencySource=Arian cyfred ffynhonnell arall +CurrenciesUsed=Arian a ddefnyddir +CurrenciesUsed_help_to_add=Ychwanegwch y gwahanol arian cyfred a chyfraddau y mae angen i chi eu defnyddio ar eich cynigion , archebion ac ati. +rate=cyfradd +MulticurrencyReceived=Derbyniwyd, arian cyfred gwreiddiol +MulticurrencyRemainderToTake=Swm sy'n weddill, arian cyfred gwreiddiol +MulticurrencyPaymentAmount=Swm taliad, arian cyfred gwreiddiol +AmountToOthercurrency=Swm I (yn arian cyfred y cyfrif derbyn) +CurrencyRateSyncSucceed=Cydamseru cyfradd arian cyfred wedi'i wneud yn llwyddiannus +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=Defnyddiwch arian cyfred y ddogfen ar gyfer taliadau ar-lein +TabTitleMulticurrencyRate=Rhestr cyfraddau +ListCurrencyRate=Rhestr o gyfraddau cyfnewid ar gyfer yr arian cyfred +CreateRate=Creu cyfradd +FormCreateRate=Creu cyfraddau +FormUpdateRate=Addasiad cyfradd +successRateCreate=Mae'r gyfradd ar gyfer arian cyfred %s wedi'i hychwanegu at y gronfa ddata +ConfirmDeleteLineRate=A ydych yn siŵr eich bod am gael gwared ar y gyfradd %s ar gyfer arian cyfred %s ar ddyddiad %s? +DeleteLineRate=Cyfradd glir +successRateDelete=Cyfradd wedi'i dileu +errorRateDelete=Gwall wrth ddileu'r gyfradd +successUpdateRate=Addasiad wedi'i wneud +ErrorUpdateRate=Gwall wrth newid y gyfradd +Codemulticurrency=cod arian cyfred +UpdateRate=newid y gyfradd +CancelUpdate=canslo +NoEmptyRate=Ni ddylai maes y gyfradd fod yn wag diff --git a/htdocs/langs/cy_GB/oauth.lang b/htdocs/langs/cy_GB/oauth.lang new file mode 100644 index 00000000000..361b2de6c37 --- /dev/null +++ b/htdocs/langs/cy_GB/oauth.lang @@ -0,0 +1,36 @@ +# Dolibarr language file - Source file is en_US - oauth +ConfigOAuth=Cyfluniad OAuth +OAuthServices=Gwasanaethau OAuth +ManualTokenGeneration=Cynhyrchu tocyn â llaw +TokenManager=Rheolwr Tocyn +IsTokenGenerated=Ydy tocyn yn cael ei gynhyrchu? +NoAccessToken=Dim tocyn mynediad wedi'i gadw yn y gronfa ddata leol +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=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=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 +TOKEN_EXPIRE_AT=Tocyn yn dod i ben am +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_GITHUB_NAME=Gwasanaeth OAuth GitHub +OAUTH_GITHUB_ID=OAuth GitHub Id +OAUTH_GITHUB_SECRET=Cyfrinach OAuth GitHub +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/opensurvey.lang b/htdocs/langs/cy_GB/opensurvey.lang new file mode 100644 index 00000000000..2eddab331b1 --- /dev/null +++ b/htdocs/langs/cy_GB/opensurvey.lang @@ -0,0 +1,63 @@ +# Dolibarr language file - Source file is en_US - opensurvey +Survey=Pôl +Surveys=Etholiadau +OrganizeYourMeetingEasily=Trefnwch eich cyfarfodydd a'ch polau yn hawdd. Yn gyntaf dewiswch y math o bleidlais... +NewSurvey=Pôl newydd +OpenSurveyArea=Ardal pleidleisio +AddACommentForPoll=Gallwch ychwanegu sylw at arolwg barn... +AddComment=Ychwanegu sylw +CreatePoll=Creu arolwg barn +PollTitle=Teitl y bleidlais +ToReceiveEMailForEachVote=Derbyn e-bost ar gyfer pob pleidlais +TypeDate=Math dyddiad +TypeClassic=Math safonol +OpenSurveyStep2=Dewiswch eich dyddiadau ymhlith y dyddiau rhydd (llwyd). Mae'r dyddiau a ddewiswyd yn wyrdd. Gallwch ddad-ddewis diwrnod a ddewiswyd yn flaenorol trwy glicio eto arno +RemoveAllDays=Dileu pob diwrnod +CopyHoursOfFirstDay=Copi oriau'r diwrnod cyntaf +RemoveAllHours=Tynnwch yr holl oriau +SelectedDays=Dyddiau dethol +TheBestChoice=Y dewis gorau ar hyn o bryd yw +TheBestChoices=Y dewisiadau gorau ar hyn o bryd yw +with=gyda +OpenSurveyHowTo=Os byddwch yn cytuno i bleidleisio yn y pôl hwn, mae'n rhaid i chi roi eich enw, dewis y gwerthoedd sy'n gweddu orau i chi a dilysu gyda'r botwm plws ar ddiwedd y llinell. +CommentsOfVoters=Sylwadau pleidleiswyr +ConfirmRemovalOfPoll=Ydych chi'n siŵr eich bod am ddileu'r pôl hwn (a'r holl bleidleisiau) +RemovePoll=Dileu arolwg barn +UrlForSurvey=URL i gyfathrebu i gael mynediad uniongyrchol i'r arolwg barn +PollOnChoice=Rydych chi'n creu arolwg barn i wneud dewis aml-ddewis ar gyfer arolwg barn. Yn gyntaf, nodwch yr holl ddewisiadau posibl ar gyfer eich arolwg barn: +CreateSurveyDate=Creu arolwg dyddiad +CreateSurveyStandard=Creu arolwg barn safonol +CheckBox=Blwch ticio syml +YesNoList=Rhestr (gwag/ie/na) +PourContreList=Rhestr (gwag/o blaid/yn erbyn) +AddNewColumn=Ychwanegu colofn newydd +TitleChoice=Label dewis +ExportSpreadsheet=Allforio taenlen canlyniad +ExpireDate=Dyddiad terfyn +NbOfSurveys=Nifer y polau +NbOfVoters=Nifer y pleidleiswyr +SurveyResults=Canlyniadau +PollAdminDesc=Caniateir i chi newid holl linellau pleidlais y bleidlais hon gyda'r botwm "Golygu". Gallwch hefyd dynnu colofn neu linell ag %s. Gallwch hefyd ychwanegu colofn newydd gyda %s. +5MoreChoices=5 dewis arall +Against=Yn erbyn +YouAreInivitedToVote=Fe'ch gwahoddir i bleidleisio ar gyfer y pôl hwn +VoteNameAlreadyExists=Defnyddiwyd yr enw hwn eisoes ar gyfer yr arolwg barn hwn +AddADate=Ychwanegu dyddiad +AddStartHour=Ychwanegu awr gychwyn +AddEndHour=Ychwanegu awr gorffen +votes=pleidlais(iau) +NoCommentYet=Nid oes unrhyw sylwadau wedi'u postio ar gyfer y pôl hwn eto +CanComment=Gall pleidleiswyr wneud sylwadau yn yr arolwg barn +YourVoteIsPrivate=Mae'r pôl hwn yn breifat, ni all neb weld eich pleidlais. +YourVoteIsPublic=Mae'r pôl hwn yn gyhoeddus, gall unrhyw un sydd â'r ddolen weld eich pleidlais. +CanSeeOthersVote=Gall pleidleiswyr weld pleidlais pobl eraill +SelectDayDesc=Ar gyfer pob diwrnod a ddewiswyd, gallwch ddewis, neu beidio, oriau cyfarfod yn y fformat a ganlyn:
    - gwag,
    - "8h", "8H" neu "8:00" i roi awr cychwyn cyfarfod,
    - "8- 11", "8h-11h", "8H-11H" neu "8:00-11:00" i roi awr dechrau a gorffen cyfarfod,
    - "8h15-11h15", "8H15-11H15" neu "8: 15-11:15" am yr un peth ond gyda munudau. +BackToCurrentMonth=Yn ôl i'r mis presennol +ErrorOpenSurveyFillFirstSection=Nid ydych wedi llenwi adran gyntaf creu'r bleidlais +ErrorOpenSurveyOneChoice=Rhowch o leiaf un dewis +ErrorInsertingComment=Bu gwall wrth fewnosod eich sylw +MoreChoices=Rhowch fwy o ddewisiadau i'r pleidleiswyr +SurveyExpiredInfo=Mae'r bleidlais wedi'i chau neu mae oedi pleidleisio wedi dod i ben. +EmailSomeoneVoted=%s wedi llenwi llinell.\nGallwch ddod o hyd i'ch arolwg barn ar y ddolen:\n%s +ShowSurvey=Dangos arolwg +UserMustBeSameThanUserUsedToVote=Mae'n rhaid eich bod wedi pleidleisio a defnyddio'r un enw defnyddiwr a'r un a ddefnyddiwyd i bleidleisio, i bostio sylw diff --git a/htdocs/langs/cy_GB/orders.lang b/htdocs/langs/cy_GB/orders.lang new file mode 100644 index 00000000000..b6bc6772102 --- /dev/null +++ b/htdocs/langs/cy_GB/orders.lang @@ -0,0 +1,200 @@ +# Dolibarr language file - Source file is en_US - orders +OrdersArea=Ardal archebion cwsmeriaid +SuppliersOrdersArea=Ardal archebion prynu +OrderCard=Cerdyn archebu +OrderId=Archeb Id +Order=Gorchymyn +PdfOrderTitle=Gorchymyn +Orders=Archebion +OrderLine=Llinell archebu +OrderDate=Dyddiad archebu +OrderDateShort=Dyddiad archebu +OrderToProcess=Gorchymyn i brosesu +NewOrder=Gorchymyn newydd +NewSupplierOrderShort=Gorchymyn newydd +NewOrderSupplier=Archeb Brynu Newydd +ToOrder=Gwnewch archeb +MakeOrder=Gwnewch archeb +SupplierOrder=Archeb prynu +SuppliersOrders=Archebion prynu +SaleOrderLines=Llinellau archeb gwerthu +PurchaseOrderLines=Llinellau archeb prynu +SuppliersOrdersRunning=Gorchmynion prynu cyfredol +CustomerOrder=Gorchymyn Gwerthu +CustomersOrders=Gorchmynion Gwerthu +CustomersOrdersRunning=Gorchmynion gwerthu cyfredol +CustomersOrdersAndOrdersLines=Gorchmynion gwerthu a manylion archeb +OrdersDeliveredToBill=Archebion gwerthu yn cael eu danfon i fil +OrdersToBill=Gorchmynion gwerthu wedi'u cyflwyno +OrdersInProcess=Archebion gwerthu yn y broses +OrdersToProcess=Gorchmynion gwerthu i'w prosesu +SuppliersOrdersToProcess=Archebion prynu i'w prosesu +SuppliersOrdersAwaitingReception=Archebion prynu yn aros am y dderbynfa +AwaitingReception=Aros am dderbyniad +StatusOrderCanceledShort=Wedi'i ganslo +StatusOrderDraftShort=Drafft +StatusOrderValidatedShort=Wedi'i ddilysu +StatusOrderSentShort=Yn y broses +StatusOrderSent=Cludo yn y broses +StatusOrderOnProcessShort=Archebwyd +StatusOrderProcessedShort=Wedi'i brosesu +StatusOrderDelivered=Wedi'i gyflwyno +StatusOrderDeliveredShort=Wedi'i gyflwyno +StatusOrderToBillShort=Wedi'i gyflwyno +StatusOrderApprovedShort=Cymmeradwy +StatusOrderRefusedShort=Gwrthodwyd +StatusOrderToProcessShort=I brosesu +StatusOrderReceivedPartiallyShort=Derbyniwyd yn rhannol +StatusOrderReceivedAllShort=Cynhyrchion a dderbyniwyd +StatusOrderCanceled=Wedi'i ganslo +StatusOrderDraft=Drafft (angen ei ddilysu) +StatusOrderValidated=Wedi'i ddilysu +StatusOrderOnProcess=Wedi'i archebu - derbyniad wrth gefn +StatusOrderOnProcessWithValidation=Wedi'i archebu - Derbyniad neu ddilysiad wrth gefn +StatusOrderProcessed=Wedi'i brosesu +StatusOrderToBill=Wedi'i gyflwyno +StatusOrderApproved=Cymmeradwy +StatusOrderRefused=Gwrthodwyd +StatusOrderReceivedPartially=Derbyniwyd yn rhannol +StatusOrderReceivedAll=Pob cynnyrch a dderbyniwyd +ShippingExist=Mae llwyth yn bodoli +QtyOrdered=Qty archebu +ProductQtyInDraft=Maint y cynnyrch yn orchmynion drafft +ProductQtyInDraftOrWaitingApproved=Maint y cynnyrch yn orchmynion drafft neu orchmynion cymeradwy, heb eu harchebu eto +MenuOrdersToBill=Archebion wedi eu danfon +MenuOrdersToBill2=Gorchmynion bilio +ShipProduct=Cynnyrch llong +CreateOrder=Creu Gorchymyn +RefuseOrder=Gorchymyn gwrthod +ApproveOrder=Cymeradwyo archeb +Approve2Order=Cymeradwyo archeb (ail lefel) +UserApproval=User for approval +UserApproval2=User for approval (second level) +ValidateOrder=Dilysu archeb +UnvalidateOrder=Trefn heb ei ddilysu +DeleteOrder=Dileu archeb +CancelOrder=Canslo archeb +OrderReopened= Archeb %s ail-agor +AddOrder=Creu trefn +AddSupplierOrderShort=Creu trefn +AddPurchaseOrder=Creu archeb brynu +AddToDraftOrders=Ychwanegu at y gorchymyn drafft +ShowOrder=Dangos trefn +OrdersOpened=Gorchmynion i'w prosesu +NoDraftOrders=Dim gorchmynion drafft +NoOrder=Dim gorchymyn +NoSupplierOrder=Dim archeb brynu +LastOrders=Gorchmynion gwerthu %s diweddaraf +LastCustomerOrders=Gorchmynion gwerthu %s diweddaraf +LastSupplierOrders=Gorchmynion prynu %s diweddaraf +LastModifiedOrders=Gorchmynion wedi'u haddasu %s diweddaraf +AllOrders=Pob archeb +NbOfOrders=Nifer yr archebion +OrdersStatistics=Ystadegau'r Gorchymyn +OrdersStatisticsSuppliers=Ystadegau archeb brynu +NumberOfOrdersByMonth=Nifer yr archebion fesul mis +AmountOfOrdersByMonthHT=Swm yr archebion fesul mis (ac eithrio treth) +ListOfOrders=Rhestr o orchmynion +CloseOrder=Trefn agos +ConfirmCloseOrder=A ydych yn siŵr eich bod am osod y gorchymyn hwn i'w ddosbarthu? Unwaith y bydd archeb wedi'i chyflwyno, gellir ei osod i'w bilio. +ConfirmDeleteOrder=Ydych chi'n siŵr eich bod am ddileu'r gorchymyn hwn? +ConfirmValidateOrder=A ydych yn siŵr eich bod am ddilysu'r gorchymyn hwn o dan yr enw %s ? +ConfirmUnvalidateOrder=A ydych yn siŵr eich bod am adfer archeb %s i statws drafft? +ConfirmCancelOrder=Ydych chi'n siŵr eich bod am ganslo'r archeb hon? +ConfirmMakeOrder=A ydych yn siŵr eich bod am gadarnhau eich bod wedi gwneud y gorchymyn hwn ar %s ? +GenerateBill=Cynhyrchu anfoneb +ClassifyShipped=Dosbarthu a ddanfonwyd +PassedInShippedStatus=classified delivered +YouCantShipThis=I can't classify this. Please check user permissions +DraftOrders=Gorchmynion drafft +DraftSuppliersOrders=Gorchmynion prynu drafft +OnProcessOrders=Mewn gorchmynion proses +RefOrder=Cyf. trefn +RefCustomerOrder=Cyf. archeb ar gyfer cwsmer +RefOrderSupplier=Cyf. archeb i'r gwerthwr +RefOrderSupplierShort=Cyf. gwerthwr archeb +SendOrderByMail=Anfon archeb drwy'r post +ActionsOnOrder=Digwyddiadau ar archeb +NoArticleOfTypeProduct=Dim erthygl o fath 'cynnyrch' felly dim erthygl y gellir ei chludo ar gyfer yr archeb hon +OrderMode=Dull archebu +AuthorRequest=Awdur cais +UserWithApproveOrderGrant=Defnyddwyr a roddwyd gyda chaniatâd "cymeradwyo gorchmynion". +PaymentOrderRef=Talu archeb %s +ConfirmCloneOrder=A ydych yn siŵr eich bod am glonio'r archeb hon %s ? +DispatchSupplierOrder=Yn derbyn archeb brynu %s +FirstApprovalAlreadyDone=Cymeradwyaeth gyntaf wedi ei wneud yn barod +SecondApprovalAlreadyDone=Ail gymeradwyaeth wedi ei wneud yn barod +SupplierOrderReceivedInDolibarr=Derbyniwyd archeb brynu %s %s +SupplierOrderSubmitedInDolibarr=Archeb Brynu %s wedi'i gyflwyno +SupplierOrderClassifiedBilled=Archeb Brynu %s set bilio +OtherOrders=Gorchmynion eraill +SupplierOrderValidatedAndApproved=Mae archeb cyflenwr yn cael ei ddilysu a'i gymeradwyo: %s +SupplierOrderValidated=Gorchymyn cyflenwr yn cael ei ddilysu: %s +##### Types de contacts ##### +TypeContact_commande_internal_SALESREPFOLL=Cynrychiolydd yn dilyn gorchymyn gwerthu +TypeContact_commande_internal_SHIPPING=Cynrychiolydd dilynol llongau +TypeContact_commande_external_BILLING=Cyswllt anfoneb cwsmer +TypeContact_commande_external_SHIPPING=Cyswllt cludo cwsmeriaid +TypeContact_commande_external_CUSTOMER=Cyswllt cwsmer yn dilyn gorchymyn +TypeContact_order_supplier_internal_SALESREPFOLL=Cynrychiolydd yn dilyn archeb brynu +TypeContact_order_supplier_internal_SHIPPING=Cynrychiolydd dilynol llongau +TypeContact_order_supplier_external_BILLING=Cyswllt anfoneb y gwerthwr +TypeContact_order_supplier_external_SHIPPING=Cyswllt cludo gwerthwr +TypeContact_order_supplier_external_CUSTOMER=Gorchymyn dilynol cyswllt gwerthwr +Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Cyson COMMANDE_SUPPLIER_ADDON heb ei ddiffinio +Error_COMMANDE_ADDON_NotDefined=Cyson COMMANDE_ADDON heb ei ddiffinio +Error_OrderNotChecked=Dim archebion i anfonebu wedi'u dewis +# Order modes (how we receive order). Not the "why" are keys stored into dict.lang +OrderByMail=Post +OrderByFax=Ffacs +OrderByEMail=Ebost +OrderByWWW=Ar-lein +OrderByPhone=Ffon +# Documents models +PDFEinsteinDescription=Model trefn gyflawn (hen weithrediad templed Eratosthene) +PDFEratostheneDescription=Model archeb gyflawn +PDFEdisonDescription=Model trefn syml +PDFProformaDescription=Templed anfoneb Proforma cyflawn +CreateInvoiceForThisCustomer=Gorchmynion biliau +CreateInvoiceForThisSupplier=Gorchmynion biliau +CreateInvoiceForThisReceptions=Derbyniadau biliau +NoOrdersToInvoice=Dim archebion i'w bilio +CloseProcessedOrdersAutomatically=Dosbarthwch "Prosesu" pob archeb a ddewiswyd. +OrderCreation=Creu archeb +Ordered=Archebwyd +OrderCreated=Mae eich archebion wedi'u creu +OrderFail=Digwyddodd gwall wrth greu eich archebion +CreateOrders=Creu archebion +ToBillSeveralOrderSelectCustomer=I greu anfoneb ar gyfer sawl archeb, cliciwch yn gyntaf ar y cwsmer, yna dewiswch "%s". +OptionToSetOrderBilledNotEnabled=Nid yw'r opsiwn o Llif Gwaith modiwl, i osod trefn i 'Bilio' yn awtomatig pan fydd anfoneb yn cael ei dilysu, wedi'i alluogi, felly bydd yn rhaid i chi osod statws archebion i 'Bil' â llaw ar ôl i'r anfoneb gael ei chynhyrchu. +IfValidateInvoiceIsNoOrderStayUnbilled=Os mai 'Na' yw dilysiad anfoneb, bydd yr archeb yn aros i'r statws 'Heb bil' nes bod yr anfoneb wedi'i dilysu. +CloseReceivedSupplierOrdersAutomatically=Trefn agos i statws "%s" yn awtomatig os derbynnir yr holl gynhyrchion. +SetShippingMode=Gosod modd cludo +WithReceptionFinished=Gyda'r derbyniad wedi'i orffen +#### supplier orders status +StatusSupplierOrderCanceledShort=Wedi'i ganslo +StatusSupplierOrderDraftShort=Drafft +StatusSupplierOrderValidatedShort=Wedi'i ddilysu +StatusSupplierOrderSentShort=Yn y broses +StatusSupplierOrderSent=Cludo yn y broses +StatusSupplierOrderOnProcessShort=Archebwyd +StatusSupplierOrderProcessedShort=Wedi'i brosesu +StatusSupplierOrderDelivered=Wedi'i gyflwyno +StatusSupplierOrderDeliveredShort=Wedi'i gyflwyno +StatusSupplierOrderToBillShort=Wedi'i gyflwyno +StatusSupplierOrderApprovedShort=Cymmeradwy +StatusSupplierOrderRefusedShort=Gwrthodwyd +StatusSupplierOrderToProcessShort=I brosesu +StatusSupplierOrderReceivedPartiallyShort=Derbyniwyd yn rhannol +StatusSupplierOrderReceivedAllShort=Cynhyrchion a dderbyniwyd +StatusSupplierOrderCanceled=Wedi'i ganslo +StatusSupplierOrderDraft=Drafft (angen ei ddilysu) +StatusSupplierOrderValidated=Wedi'i ddilysu +StatusSupplierOrderOnProcess=Wedi'i archebu - derbyniad wrth gefn +StatusSupplierOrderOnProcessWithValidation=Wedi'i archebu - Derbyniad neu ddilysiad wrth gefn +StatusSupplierOrderProcessed=Wedi'i brosesu +StatusSupplierOrderToBill=Wedi'i gyflwyno +StatusSupplierOrderApproved=Cymmeradwy +StatusSupplierOrderRefused=Gwrthodwyd +StatusSupplierOrderReceivedPartially=Derbyniwyd yn rhannol +StatusSupplierOrderReceivedAll=Pob cynnyrch a dderbyniwyd diff --git a/htdocs/langs/cy_GB/other.lang b/htdocs/langs/cy_GB/other.lang new file mode 100644 index 00000000000..6334123ffef --- /dev/null +++ b/htdocs/langs/cy_GB/other.lang @@ -0,0 +1,306 @@ +# Dolibarr language file - Source file is en_US - other +SecurityCode=Cod diogelwch +NumberingShort=Rhif +Tools=Offer +TMenuTools=Offer +ToolsDesc=Mae'r holl offer nad ydynt wedi'u cynnwys mewn cofnodion dewislen eraill wedi'u grwpio yma.
    Gellir cyrchu'r holl offer trwy'r ddewislen chwith. +Birthday=Penblwydd +BirthdayAlertOn=rhybudd pen-blwydd yn weithredol +BirthdayAlertOff=rhybudd pen-blwydd yn anactif +TransKey=Cyfieithiad o'r allwedd TransKey +MonthOfInvoice=Mis (rhif 1-12) o ddyddiad yr anfoneb +TextMonthOfInvoice=Mis (testun) o ddyddiad yr anfoneb +PreviousMonthOfInvoice=Mis blaenorol (rhif 1-12) o ddyddiad yr anfoneb +TextPreviousMonthOfInvoice=Mis blaenorol (testun) o ddyddiad yr anfoneb +NextMonthOfInvoice=Mis dilynol (rhif 1-12) o ddyddiad yr anfoneb +TextNextMonthOfInvoice=Mis dilynol (testun) o ddyddiad yr anfoneb +PreviousMonth=Mis blaenorol +CurrentMonth=Mis presennol +ZipFileGeneratedInto=Ffeil zip wedi'i chynhyrchu i %s . +DocFileGeneratedInto=Ffeil doc wedi'i chynhyrchu i %s . +JumpToLogin=Wedi'i ddatgysylltu. Ewch i'r dudalen mewngofnodi... +MessageForm=Neges ar ffurflen talu ar-lein +MessageOK=Neges ar y dudalen dychwelyd am daliad dilys +MessageKO=Neges ar y dudalen dychwelyd am daliad wedi'i ganslo +ContentOfDirectoryIsNotEmpty=Nid yw cynnwys y cyfeiriadur hwn yn wag. +DeleteAlsoContentRecursively=Gwiriwch i ddileu'r holl gynnwys yn gyson +PoweredBy=Wedi ei bweru gan +YearOfInvoice=Blwyddyn dyddiad yr anfoneb +PreviousYearOfInvoice=Blwyddyn flaenorol dyddiad yr anfoneb +NextYearOfInvoice=Blwyddyn ganlynol dyddiad yr anfoneb +DateNextInvoiceBeforeGen=Dyddiad yr anfoneb nesaf (cyn cenhedlaeth) +DateNextInvoiceAfterGen=Dyddiad yr anfoneb nesaf (ar ôl cenhedlaeth) +GraphInBarsAreLimitedToNMeasures=Mae graffiau wedi'u cyfyngu i fesurau %s yn y modd 'Bars'. Dewiswyd y modd 'Llinellau' yn awtomatig yn lle hynny. +OnlyOneFieldForXAxisIsPossible=Dim ond 1 maes sy'n bosibl ar hyn o bryd fel Echel X. Dim ond y maes dethol cyntaf sydd wedi'i ddewis. +AtLeastOneMeasureIsRequired=Mae angen o leiaf 1 maes ar gyfer mesur +AtLeastOneXAxisIsRequired=Mae angen o leiaf 1 maes ar gyfer Echel X +LatestBlogPosts=Postiadau Blog Diweddaraf +notiftouser=I ddefnyddwyr +notiftofixedemail=I bost sefydlog +notiftouserandtofixedemail=I bost defnyddiwr a sefydlog +Notify_ORDER_VALIDATE=Gorchymyn gwerthu wedi'i ddilysu +Notify_ORDER_SENTBYMAIL=Gorchymyn gwerthu wedi'i anfon drwy'r post +Notify_ORDER_SUPPLIER_SENTBYMAIL=Archeb prynu wedi'i anfon trwy e-bost +Notify_ORDER_SUPPLIER_VALIDATE=Archeb brynu wedi'i chofnodi +Notify_ORDER_SUPPLIER_APPROVE=Gorchymyn prynu wedi'i gymeradwyo +Notify_ORDER_SUPPLIER_REFUSE=Gorchymyn prynu wedi'i wrthod +Notify_PROPAL_VALIDATE=Cynnig cwsmer wedi'i ddilysu +Notify_PROPAL_CLOSE_SIGNED=Cynnig cwsmer wedi'i gau wedi'i lofnodi +Notify_PROPAL_CLOSE_REFUSED=Gwrthodwyd cynnig cwsmer +Notify_PROPAL_SENTBYMAIL=Cynnig masnachol wedi'i anfon drwy'r post +Notify_WITHDRAW_TRANSMIT=Tynnu'n ôl trosglwyddo +Notify_WITHDRAW_CREDIT=Tynnu credyd yn ôl +Notify_WITHDRAW_EMIT=Perfformio tynnu'n ôl +Notify_COMPANY_CREATE=Trydydd parti wedi'i greu +Notify_COMPANY_SENTBYMAIL=Negeseuon wedi'u hanfon o gerdyn trydydd parti +Notify_BILL_VALIDATE=Anfoneb cwsmer wedi'i dilysu +Notify_BILL_UNVALIDATE=Anfoneb cwsmer heb ei ddilysu +Notify_BILL_PAYED=Talwyd anfoneb cwsmer +Notify_BILL_CANCEL=Anfoneb cwsmer wedi'i chanslo +Notify_BILL_SENTBYMAIL=Anfoneb cwsmer drwy'r post +Notify_BILL_SUPPLIER_VALIDATE=Anfoneb y gwerthwr wedi'i dilysu +Notify_BILL_SUPPLIER_PAYED=Talwyd anfoneb y gwerthwr +Notify_BILL_SUPPLIER_SENTBYMAIL=Anfoneb y gwerthwr drwy'r post +Notify_BILL_SUPPLIER_CANCELED=Anfoneb y gwerthwr wedi'i chanslo +Notify_CONTRACT_VALIDATE=Contract wedi'i ddilysu +Notify_FICHINTER_VALIDATE=Dilysu ymyrraeth +Notify_FICHINTER_ADD_CONTACT=Ychwanegwyd cyswllt at Ymyrraeth +Notify_FICHINTER_SENTBYMAIL=Ymyrraeth a anfonir drwy'r post +Notify_SHIPPING_VALIDATE=Cludo wedi'i ddilysu +Notify_SHIPPING_SENTBYMAIL=Cludo anfon drwy'r post +Notify_MEMBER_VALIDATE=Aelod wedi'i ddilysu +Notify_MEMBER_MODIFY=Aelod wedi'i addasu +Notify_MEMBER_SUBSCRIPTION=Aelod wedi tanysgrifio +Notify_MEMBER_RESILIATE=Terfynodd yr Aelod +Notify_MEMBER_DELETE=Aelod wedi'i ddileu +Notify_PROJECT_CREATE=Creu prosiect +Notify_TASK_CREATE=Tasg wedi'i chreu +Notify_TASK_MODIFY=Tasg wedi'i haddasu +Notify_TASK_DELETE=Tasg wedi'i dileu +Notify_EXPENSE_REPORT_VALIDATE=Adroddiad cost wedi'i ddilysu (angen cymeradwyaeth) +Notify_EXPENSE_REPORT_APPROVE=Cymeradwywyd yr adroddiad treuliau +Notify_HOLIDAY_VALIDATE=Cais am wyliau wedi'i ddilysu (angen cymeradwyaeth) +Notify_HOLIDAY_APPROVE=Cais am wyliau wedi'i gymeradwyo +Notify_ACTION_CREATE=Ychwanegwyd cam gweithredu i'r Agenda +SeeModuleSetup=Gweler gosodiad y modiwl %s +NbOfAttachedFiles=Nifer y ffeiliau/dogfennau atodedig +TotalSizeOfAttachedFiles=Cyfanswm maint y ffeiliau/dogfennau atodedig +MaxSize=Maint mwyaf +AttachANewFile=Atodwch ffeil/dogfen newydd +LinkedObject=Gwrthrych cysylltiedig +NbOfActiveNotifications=Nifer yr hysbysiadau (nifer yr e-byst derbynwyr) +PredefinedMailTest=__(Helo)__\nPost prawf yw hwn a anfonwyd at __EMAIL__.\nMae'r llinellau yn cael eu gwahanu gan ddychwelyd cerbyd.\n\n_USER_LLOFNOD_ +PredefinedMailTestHtml=__(Helo)__
    Mae hwn yn brawf post a anfonwyd at __EMAIL__ (rhaid i'r prawf geiriau fod mewn print trwm).
    Mae'r llinellau'n cael eu gwahanu gan ddychweliad cerbyd.

    __USER_SIGNATURE__ +PredefinedMailContentContract=__(Helo)__\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendInvoice=__(Helo)__\n\nGweler anfoneb __REF__ ynghlwm\n\n_ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendInvoiceReminder=__(Helo)__\n\nHoffem eich atgoffa ei bod yn ymddangos bod yr anfoneb __REF__ heb ei thalu. Mae copi o'r anfoneb wedi'i atodi fel nodyn atgoffa.\n\n_ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendProposal=__(Helo)__\n\nMae cynnig masnachol __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendSupplierProposal=__(Helo)__\n\nMae cais pris __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendOrder=__(Helo)__\n\nGweler archeb __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendSupplierOrder=__(Helo)__\n\nMae ein archeb __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendSupplierInvoice=__(Helo)__\n\nGweler anfoneb __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendShipping=__(Helo)__\n\nGweler llongau __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendFichInter=__(Helo)__\n\nGweler ymyriad __REF__ ynghlwm\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentLink=Gallwch glicio ar y ddolen isod i wneud eich taliad os nad yw wedi'i wneud eisoes.\n\n%s\n\n +PredefinedMailContentGeneric=__(Helo)__\n\n\n__(Yn gywir)__\n\n_USER_LLOFNOD_ +PredefinedMailContentSendActionComm=Nodyn atgoffa digwyddiad "__EVENT_LABEL__" ar __EVENT_DATE__ am __EVENT_TIME__

    Neges awtomatig yw hon, peidiwch ag ateb. +DemoDesc=Mae Dolibarr yn ERP/CRM cryno sy'n cefnogi sawl modiwl busnes. Nid yw demo sy'n arddangos pob modiwl yn gwneud unrhyw synnwyr gan nad yw'r senario hwn byth yn digwydd (sawl cant ar gael). Felly, mae sawl proffil demo ar gael. +ChooseYourDemoProfil=Dewiswch y proffil demo sy'n gweddu orau i'ch anghenion... +ChooseYourDemoProfilMore=...neu adeiladu eich proffil eich hun
    (dewis modiwl â llaw) +DemoFundation=Rheoli aelodau sefydliad +DemoFundation2=Rheoli aelodau a chyfrif banc o sylfaen +DemoCompanyServiceOnly=Gwasanaeth gwerthu cwmni neu ar ei liwt ei hun yn unig +DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyProductAndStocks=Siop yn gwerthu nwyddau gyda Point Of Sale +DemoCompanyManufacturing=Cwmni gweithgynhyrchu cynhyrchion +DemoCompanyAll=Cwmni gyda gweithgareddau lluosog (pob prif fodiwlau) +CreatedBy=Crëwyd gan %s +ModifiedBy=Wedi'i addasu gan %s +ValidatedBy=Wedi'i ddilysu gan %s +SignedBy=Arwyddwyd gan %s +ClosedBy=Ar gau gan %s +CreatedById=ID defnyddiwr a greodd +ModifiedById=ID defnyddiwr a wnaeth y newid diweddaraf +ValidatedById=ID defnyddiwr a ddilysodd +CanceledById=ID defnyddiwr a ganslodd +ClosedById=ID defnyddiwr a gaeodd +CreatedByLogin=Mewngofnod defnyddiwr pwy greodd +ModifiedByLogin=Mewngofnod defnyddiwr a wnaeth y newid diweddaraf +ValidatedByLogin=Mewngofnod defnyddiwr pwy ddilysodd +CanceledByLogin=Mewngofnod defnyddiwr a ganslodd +ClosedByLogin=Mewngofnod defnyddiwr pwy gaeodd +FileWasRemoved=Tynnwyd ffeil %s +DirWasRemoved=Tynnwyd cyfeiriadur %s +FeatureNotYetAvailable=Nid yw'r nodwedd ar gael yn y fersiwn gyfredol eto +FeatureNotAvailableOnDevicesWithoutMouse=Nid yw'r nodwedd ar gael ar ddyfeisiau heb lygoden +FeaturesSupported=Nodweddion a gefnogir +Width=Lled +Height=Uchder +Depth=Dyfnder +Top=Brig +Bottom=Gwaelod +Left=Chwith +Right=Iawn +CalculatedWeight=Pwysau wedi'u cyfrifo +CalculatedVolume=Cyfaint wedi'i gyfrifo +Weight=Pwysau +WeightUnitton=tunnell +WeightUnitkg=kg +WeightUnitg=g +WeightUnitmg=mg +WeightUnitpound=pwys +WeightUnitounce=owns +Length=Hyd +LengthUnitm=m +LengthUnitdm=dm +LengthUnitcm=cm +LengthUnitmm=mm +Surface=Ardal +SurfaceUnitm2=m² +SurfaceUnitdm2=dm² +SurfaceUnitcm2=cm² +SurfaceUnitmm2=mm² +SurfaceUnitfoot2=ft² +SurfaceUnitinch2=mewn² +Volume=Cyfrol +VolumeUnitm3=m³ +VolumeUnitdm3=dm³ (L) +VolumeUnitcm3=cm³ (ml) +VolumeUnitmm3=mm³ (µl) +VolumeUnitfoot3=ft³ +VolumeUnitinch3=yn³ +VolumeUnitounce=owns +VolumeUnitlitre=litr +VolumeUnitgallon=galwyn +SizeUnitm=m +SizeUnitdm=dm +SizeUnitcm=cm +SizeUnitmm=mm +SizeUnitinch=modfedd +SizeUnitfoot=troed +SizeUnitpoint=pwynt +BugTracker=Traciwr bygiau +SendNewPasswordDesc=Mae'r ffurflen hon yn eich galluogi i ofyn am gyfrinair newydd. Bydd yn cael ei anfon i'ch cyfeiriad e-bost.
    Bydd y newid yn dod yn effeithiol ar ôl i chi glicio ar y ddolen gadarnhau yn yr e-bost.
    Gwiriwch eich mewnflwch. +BackToLoginPage=Yn ôl i'r dudalen mewngofnodi +AuthenticationDoesNotAllowSendNewPassword=Modd dilysu yw %s .
    Yn y modd hwn, ni all Dolibarr wybod na newid eich cyfrinair.
    Cysylltwch â gweinyddwr eich system os ydych am newid eich cyfrinair. +EnableGDLibraryDesc=Gosod neu alluogi llyfrgell GD ar eich gosodiad PHP i ddefnyddio'r opsiwn hwn. +ProfIdShortDesc= Prof Id %s yn wybodaeth yn dibynnu ar wlad trydydd parti.
    Er enghraifft, ar gyfer gwlad %s , mae'n cod a0ecb2ec87f4907f . +DolibarrDemo=Demo ERP/CRM Dolibarr +StatsByNumberOfUnits=Ystadegau ar gyfer swm y cynhyrchion/gwasanaethau +StatsByNumberOfEntities=Ystadegau ar gyfer nifer yr endidau cyfeirio (nifer yr anfonebau, neu archebion...) +NumberOfProposals=Nifer y cynigion +NumberOfCustomerOrders=Nifer yr archebion gwerthu +NumberOfCustomerInvoices=Nifer anfonebau cwsmeriaid +NumberOfSupplierProposals=Nifer cynigion y gwerthwr +NumberOfSupplierOrders=Nifer yr archebion prynu +NumberOfSupplierInvoices=Nifer yr anfonebau gwerthwr +NumberOfContracts=Nifer y contractau +NumberOfMos=Nifer y gorchmynion gweithgynhyrchu +NumberOfUnitsProposals=Nifer yr unedau ar gynigion +NumberOfUnitsCustomerOrders=Nifer yr unedau ar archebion gwerthu +NumberOfUnitsCustomerInvoices=Nifer yr unedau ar anfonebau cwsmeriaid +NumberOfUnitsSupplierProposals=Nifer yr unedau ar gynigion gwerthwyr +NumberOfUnitsSupplierOrders=Nifer yr unedau ar archebion prynu +NumberOfUnitsSupplierInvoices=Nifer yr unedau ar anfonebau gwerthwr +NumberOfUnitsContracts=Nifer yr unedau ar gontractau +NumberOfUnitsMos=Nifer yr unedau i'w cynhyrchu mewn gorchmynion gweithgynhyrchu +EMailTextInterventionAddedContact=Mae ymyriad newydd %s wedi'i neilltuo i chi. +EMailTextInterventionValidated=Mae'r ymyriad %s wedi'i ddilysu. +EMailTextInvoiceValidated=Mae'r anfoneb %s wedi'i dilysu. +EMailTextInvoicePayed=Anfoneb %s wedi'i dalu. +EMailTextProposalValidated=Mae cynnig %s wedi'i ddilysu. +EMailTextProposalClosedSigned=Cynnig %s wedi'i gau wedi'i arwyddo. +EMailTextOrderValidated=Mae archeb %s wedi'i ddilysu. +EMailTextOrderApproved=Gorchymyn %s wedi'i gymeradwyo. +EMailTextOrderValidatedBy=Mae gorchymyn %s wedi'i gofnodi gan %s. +EMailTextOrderApprovedBy=Gorchymyn %s wedi'i gymeradwyo gan %s. +EMailTextOrderRefused=Gorchymyn %s wedi'i wrthod. +EMailTextOrderRefusedBy=Gorchymyn %s wedi cael ei wrthod gan %s. +EMailTextExpeditionValidated=Mae cludo %s wedi'i ddilysu. +EMailTextExpenseReportValidated=Adroddiad treuliau %s wedi'i ddilysu. +EMailTextExpenseReportApproved=Adroddiad treuliau %s wedi'i gymeradwyo. +EMailTextHolidayValidated=Cais am adael %s wedi'i ddilysu. +EMailTextHolidayApproved=Cais am wyliau %s wedi'i gymeradwyo. +EMailTextActionAdded=Mae'r cam gweithredu %s wedi'i ychwanegu at yr Agenda. +ImportedWithSet=Set ddata mewnforio +DolibarrNotification=Hysbysiad awtomatig +ResizeDesc=Rhowch lled newydd NEU uchder newydd. Bydd y gymhareb yn cael ei chadw wrth newid maint... +NewLength=Lled newydd +NewHeight=Uchder newydd +NewSizeAfterCropping=Maint newydd ar ôl cnydio +DefineNewAreaToPick=Diffiniwch ardal newydd ar y ddelwedd i'w dewis (cliciwch i'r chwith ar y ddelwedd ac yna llusgwch nes i chi gyrraedd y gornel gyferbyn) +CurrentInformationOnImage=Cynlluniwyd yr offeryn hwn i'ch helpu i newid maint neu docio delwedd. Dyma'r wybodaeth ar y ddelwedd olygedig gyfredol +ImageEditor=Golygydd delwedd +YouReceiveMailBecauseOfNotification=Rydych yn derbyn y neges hon oherwydd bod eich e-bost wedi'i ychwanegu at restr o dargedau i gael gwybod am ddigwyddiadau penodol i mewn i feddalwedd %s o %s. +YouReceiveMailBecauseOfNotification2=Mae'r digwyddiad hwn fel a ganlyn: +ThisIsListOfModules=Dyma restr o fodiwlau a ddewiswyd gan y proffil demo hwn (dim ond y modiwlau mwyaf cyffredin sydd i'w gweld yn y demo hwn). Golygwch hwn i gael demo mwy personol a chliciwch ar "Start". +UseAdvancedPerms=Defnyddiwch ganiatâd uwch rhai modiwlau +FileFormat=Fformat ffeil +SelectAColor=Dewiswch liw +AddFiles=Ychwanegu Ffeiliau +StartUpload=Dechrau uwchlwytho +CancelUpload=Canslo uwchlwytho +FileIsTooBig=Ffeiliau yn rhy fawr +PleaseBePatient=Byddwch yn amyneddgar os gwelwch yn dda... +NewPassword=Cyfrinair newydd +ResetPassword=Ailosod cyfrinair +RequestToResetPasswordReceived=Mae cais i newid eich cyfrinair wedi dod i law. +NewKeyIs=Dyma'ch allweddi newydd i fewngofnodi +NewKeyWillBe=Eich allwedd newydd i fewngofnodi i feddalwedd fydd +ClickHereToGoTo=Cliciwch yma i fynd i %s +YouMustClickToChange=Fodd bynnag, mae'n rhaid i chi glicio ar y ddolen ganlynol yn gyntaf i ddilysu'r newid cyfrinair hwn +ConfirmPasswordChange=Cadarnhau newid cyfrinair +ForgetIfNothing=Os na wnaethoch ofyn am y newid hwn, anghofiwch yr e-bost hwn. Cedwir eich manylion adnabod yn ddiogel. +IfAmountHigherThan=Os yw'r swm yn uwch na %s +SourcesRepository=Ystorfa ar gyfer ffynonellau +Chart=Siart +PassEncoding=Amgodio cyfrinair +PermissionsAdd=Ychwanegwyd caniatadau +PermissionsDelete=Caniatadau wedi'u dileu +YourPasswordMustHaveAtLeastXChars=Rhaid bod gan eich cyfrinair o leiaf %s nodau +PasswordNeedAtLeastXUpperCaseChars=Mae'r cyfrinair angen o leiaf %s prif nodau +PasswordNeedAtLeastXDigitChars=Mae angen o leiaf %s nodau rhifol ar y cyfrinair +PasswordNeedAtLeastXSpecialChars=Mae angen o leiaf %s nodau arbennig ar y cyfrinair +PasswordNeedNoXConsecutiveChars=Ni ddylai'r cyfrinair gynnwys %s nodau tebyg yn olynol +YourPasswordHasBeenReset=Mae eich cyfrinair wedi'i ailosod yn llwyddiannus +ApplicantIpAddress=Cyfeiriad IP yr ymgeisydd +SMSSentTo=Anfonwyd SMS i %s +MissingIds=IDau ar goll +ThirdPartyCreatedByEmailCollector=Trydydd parti wedi'i greu gan gasglwr e-bost o e-bost MSGID %s +ContactCreatedByEmailCollector=Cyswllt/cyfeiriad wedi'i greu gan gasglwr e-bost o e-bost MSGID %s +ProjectCreatedByEmailCollector=Prosiect wedi'i greu gan gasglwr e-bost o e-bost MSGID %s +TicketCreatedByEmailCollector=Tocyn wedi'i greu gan gasglwr e-bost o e-bost MSGID %s +OpeningHoursFormatDesc=Defnyddiwch a - i wahanu oriau agor a chau.
    Defnyddiwch fwlch i fynd i mewn i ystodau gwahanol.
    Enghraifft: 8-12 14-18 +SuffixSessionName=Ôl-ddodiad enw'r sesiwn +LoginWith=Mewngofnodi gyda %s + +##### Export ##### +ExportsArea=Ardal allforio +AvailableFormats=Fformatau sydd ar gael +LibraryUsed=Llyfrgell a ddefnyddir +LibraryVersion=Fersiwn llyfrgell +ExportableDatas=Data y gellir ei allforio +NoExportableData=Dim data y gellir ei allforio (dim modiwlau gyda data allgludadwy wedi'i lwytho, neu ganiatâd ar goll) +##### External sites ##### +WebsiteSetup=Gosod gwefan y modiwl +WEBSITE_PAGEURL=URL y dudalen +WEBSITE_TITLE=Teitl +WEBSITE_DESCRIPTION=Disgrifiad +WEBSITE_IMAGE=Delwedd +WEBSITE_IMAGEDesc=Llwybr cymharol y cyfryngau delwedd. Gallwch gadw hwn yn wag gan mai anaml y caiff hwn ei ddefnyddio (gellir ei ddefnyddio gan gynnwys deinamig i ddangos mân-lun mewn rhestr o bostiadau blog). Defnyddiwch __WEBSITE_KEY__ yn y llwybr os yw'r llwybr yn dibynnu ar enw'r wefan (er enghraifft: image/__WEBSITE_KEY__/stories/myimage.png). +WEBSITE_KEYWORDS=Geiriau allweddol +LinesToImport=Llinellau i fewnforio + +MemoryUsage=Defnydd cof +RequestDuration=Hyd y cais +ProductsPerPopularity=Cynhyrchion/Gwasanaethau yn ôl poblogrwydd +PopuProp=Cynhyrchion/Gwasanaethau yn ôl poblogrwydd mewn Cynigion +PopuCom=Cynhyrchion/Gwasanaethau yn ôl poblogrwydd mewn Archebion +ProductStatistics=Ystadegau Cynhyrchion/Gwasanaethau +NbOfQtyInOrders=Qty mewn archebion +SelectTheTypeOfObjectToAnalyze=Dewiswch wrthrych i weld ei ystadegau... + +ConfirmBtnCommonContent = Ydych chi'n siŵr eich bod chi eisiau "%s" ? +ConfirmBtnCommonTitle = Cadarnhewch eich gweithred +CloseDialog = Cau +Autofill = Autofill diff --git a/htdocs/langs/cy_GB/partnership.lang b/htdocs/langs/cy_GB/partnership.lang new file mode 100644 index 00000000000..46b371fbd32 --- /dev/null +++ b/htdocs/langs/cy_GB/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=Rheoli partneriaeth +PartnershipDescription=Rheoli Partneriaeth Modiwl +PartnershipDescriptionLong= Rheoli Partneriaeth Modiwl +Partnership=Partneriaeth +AddPartnership=Ychwanegu partneriaeth +CancelPartnershipForExpiredMembers=Partneriaeth: Canslo partneriaeth o aelodau sydd â thanysgrifiadau sydd wedi dod i ben +PartnershipCheckBacklink=Partneriaeth: Gwiriwch gyfeirio backlink + +# +# Menu +# +NewPartnership=Partneriaeth Newydd +ListOfPartnerships=Rhestr o bartneriaeth + +# +# Admin page +# +PartnershipSetup=Sefydlu partneriaeth +PartnershipAbout=Am Bartneriaeth +PartnershipAboutPage=Partneriaeth am dudalen +partnershipforthirdpartyormember=Rhaid gosod statws partner ar ‘drydydd parti’ neu ‘aelod’ +PARTNERSHIP_IS_MANAGED_FOR=Partneriaeth a reolir ar gyfer +PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks i wirio +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb o ddyddiau cyn canslo statws partneriaeth pan fydd tanysgrifiad wedi dod i ben +ReferingWebsiteCheck=Gwirio cyfeiriadau gwefan +ReferingWebsiteCheckDesc=Gallwch chi alluogi nodwedd i wirio bod eich partneriaid wedi ychwanegu backlink i'ch parthau gwefan ar eu gwefan eu hunain. + +# +# Object +# +DeletePartnership=Dileu partneriaeth +PartnershipDedicatedToThisThirdParty=Partneriaeth ymroddedig i'r trydydd parti hwn +PartnershipDedicatedToThisMember=Partneriaeth ymroddedig i'r aelod hwn +DatePartnershipStart=Dyddiad cychwyn +DatePartnershipEnd=Dyddiad Gorffen +ReasonDecline=Rheswm gwrthod +ReasonDeclineOrCancel=Rheswm gwrthod +PartnershipAlreadyExist=Mae partneriaeth eisoes yn bodoli +ManagePartnership=Rheoli partneriaeth +BacklinkNotFoundOnPartnerWebsite=Ni chanfuwyd backlink ar wefan partner +ConfirmClosePartnershipAsk=Ydych chi'n siŵr eich bod am ganslo'r bartneriaeth hon? +PartnershipType=Math o bartneriaeth +PartnershipRefApproved=Partneriaeth %s wedi'i chymeradwyo +KeywordToCheckInWebsite=If you want to check that a given keyword is present into the website of each partner, define this keyword here + +# +# Template Mail +# +SendingEmailOnPartnershipWillSoonBeCanceled=Bydd y bartneriaeth yn cael ei chanslo cyn bo hir +SendingEmailOnPartnershipRefused=Gwrthodwyd y bartneriaeth +SendingEmailOnPartnershipAccepted=Partneriaeth wedi'i derbyn +SendingEmailOnPartnershipCanceled=Partneriaeth wedi'i chanslo + +YourPartnershipWillSoonBeCanceledTopic=Bydd y bartneriaeth yn cael ei chanslo cyn bo hir +YourPartnershipRefusedTopic=Gwrthodwyd y bartneriaeth +YourPartnershipAcceptedTopic=Partneriaeth wedi'i derbyn +YourPartnershipCanceledTopic=Partneriaeth wedi'i chanslo + +YourPartnershipWillSoonBeCanceledContent=Rydym yn eich hysbysu y bydd eich partneriaeth yn cael ei chanslo cyn bo hir (ni chanfuwyd Backlink) +YourPartnershipRefusedContent=Rydym yn eich hysbysu bod eich cais partneriaeth wedi'i wrthod. +YourPartnershipAcceptedContent=Rydym yn eich hysbysu bod eich cais partneriaeth wedi'i dderbyn. +YourPartnershipCanceledContent=Rydym yn eich hysbysu bod eich partneriaeth wedi'i chanslo. + +CountLastUrlCheckError=Nifer y gwallau ar gyfer gwiriad URL diwethaf +LastCheckBacklink=Dyddiad y gwiriad URL diwethaf +ReasonDeclineOrCancel=Rheswm gwrthod + +# +# Status +# +PartnershipDraft=Drafft +PartnershipAccepted=Derbyniwyd +PartnershipRefused=Gwrthodwyd +PartnershipCanceled=Wedi'i ganslo +PartnershipManagedFor=Mae partneriaid yn + diff --git a/htdocs/langs/cy_GB/paybox.lang b/htdocs/langs/cy_GB/paybox.lang new file mode 100644 index 00000000000..113df4f611b --- /dev/null +++ b/htdocs/langs/cy_GB/paybox.lang @@ -0,0 +1,30 @@ +# Dolibarr language file - Source file is en_US - paybox +PayBoxSetup=Gosod modiwl PayBox +PayBoxDesc=Mae'r modiwl hwn yn cynnig tudalennau i ganiatáu taliad ar Paybox gan gwsmeriaid. Gellir defnyddio hwn ar gyfer taliad am ddim neu am daliad ar wrthrych penodol Dolibarr (anfoneb, archeb, ...) +FollowingUrlAreAvailableToMakePayments=Mae URLs canlynol ar gael i gynnig tudalen i gwsmer i wneud taliad ar wrthrychau Dolibarr +PaymentForm=Ffurflen talu +WelcomeOnPaymentPage=Croeso i'n gwasanaeth talu ar-lein +ThisScreenAllowsYouToPay=Mae'r sgrin hon yn caniatáu ichi wneud taliad ar-lein i %s. +ThisIsInformationOnPayment=Dyma wybodaeth am daliad i'w wneud +ToComplete=I gwblhau +YourEMail=E-bost i dderbyn cadarnhad taliad +Creditor=Credydwr +PaymentCode=Cod talu +PayBoxDoPayment=Talu gyda Paybox +YouWillBeRedirectedOnPayBox=Byddwch yn cael eich ailgyfeirio ar dudalen Paybox ddiogel i fewnbynnu gwybodaeth cerdyn credyd i chi +Continue=Nesaf +SetupPayBoxToHavePaymentCreatedAutomatically=Gosodwch eich Blwch Talu gydag url %s i greu taliad yn awtomatig pan gaiff ei ddilysu gan Paybox. +YourPaymentHasBeenRecorded=Mae'r dudalen hon yn cadarnhau bod eich taliad wedi'i gofnodi. Diolch. +YourPaymentHasNotBeenRecorded=NID yw'ch taliad wedi'i gofnodi ac mae'r trafodiad wedi'i ganslo. Diolch. +AccountParameter=Paramedrau cyfrif +UsageParameter=Paramedrau defnydd +InformationToFindParameters=Helpwch i ddod o hyd i'ch gwybodaeth cyfrif %s +PAYBOX_CGI_URL_V2=URL modiwl CGI Paybox i'w dalu +CSSUrlForPaymentForm=url dalen arddull CSS ar gyfer ffurflen dalu +NewPayboxPaymentReceived=Derbyniwyd taliad Blwch Talu newydd +NewPayboxPaymentFailed=Ceisiodd taliad Paybox newydd ond methodd +PAYBOX_PAYONLINE_SENDEMAIL=Hysbysiad e-bost ar ôl ymgais i dalu (llwyddiant neu fethiant) +PAYBOX_PBX_SITE=Gwerth am SAFLE PBX +PAYBOX_PBX_RANG=Gwerth am PBX Rang +PAYBOX_PBX_IDENTIFIANT=Gwerth am ID PBX +PAYBOX_HMAC_KEY=Allwedd HMAC diff --git a/htdocs/langs/cy_GB/paypal.lang b/htdocs/langs/cy_GB/paypal.lang new file mode 100644 index 00000000000..064ea1aadfa --- /dev/null +++ b/htdocs/langs/cy_GB/paypal.lang @@ -0,0 +1,36 @@ +# Dolibarr language file - Source file is en_US - paypal +PaypalSetup=Gosodiad modiwl PayPal +PaypalDesc=Mae'r modiwl hwn yn caniatáu i gwsmeriaid dalu trwy PayPal . Gellir defnyddio hwn ar gyfer taliad ad-hoc neu ar gyfer taliad sy'n ymwneud â gwrthrych Dolibarr (anfoneb, archeb, ...) +PaypalOrCBDoPayment=Talu gyda PayPal (Cerdyn neu PayPal) +PaypalDoPayment=Talu gyda PayPal +PAYPAL_API_SANDBOX=Prawf modd / blwch tywod +PAYPAL_API_USER=Enw defnyddiwr API +PAYPAL_API_PASSWORD=Cyfrinair API +PAYPAL_API_SIGNATURE=Llofnod API +PAYPAL_SSLVERSION=Fersiwn SSL Curl +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Cynnig taliad "anhepgor" (cerdyn credyd + PayPal) neu "PayPal" yn unig +PaypalModeIntegral=annatod +PaypalModeOnlyPaypal=PayPal yn unig +ONLINE_PAYMENT_CSS_URL=URL dewisol taflen arddull CSS ar dudalen talu ar-lein +ThisIsTransactionId=Dyma id y trafodiad: %s +PAYPAL_ADD_PAYMENT_URL=Cynhwyswch yr url talu PayPal pan fyddwch chi'n anfon dogfen trwy e-bost +NewOnlinePaymentReceived=Derbyniwyd taliad ar-lein newydd +NewOnlinePaymentFailed=Ceisio taliad ar-lein newydd ond methodd +ONLINE_PAYMENT_SENDEMAIL=Cyfeiriad e-bost ar gyfer hysbysiadau ar ôl pob ymgais i dalu (ar gyfer llwyddiant a methu) +ReturnURLAfterPayment=Dychwelyd URL ar ôl talu +ValidationOfOnlinePaymentFailed=Methodd dilysu taliad ar-lein +PaymentSystemConfirmPaymentPageWasCalledButFailed=Galwyd y dudalen cadarnhau taliad gan y system dalu dychwelyd gwall +SetExpressCheckoutAPICallFailed=Methodd galwad API SetExpressCheckout. +DoExpressCheckoutPaymentAPICallFailed=Methodd galwad API DoExpressCheckoutPayment. +DetailedErrorMessage=Neges Gwall Manwl +ShortErrorMessage=Neges Gwall Byr +ErrorCode=Cod Gwall +ErrorSeverityCode=Cod Difrifoldeb Gwall +OnlinePaymentSystem=System dalu ar-lein +PaypalLiveEnabled=Modd "byw" PayPal wedi'i alluogi (modd prawf / blwch tywod fel arall) +PaypalImportPayment=Mewnforio taliadau PayPal +PostActionAfterPayment=Postio gweithredoedd ar ôl taliadau +ARollbackWasPerformedOnPostActions=Perfformiwyd dychweliad ar holl weithrediadau Post. Rhaid i chi gwblhau gweithredoedd postio â llaw os oes angen. +ValidationOfPaymentFailed=Mae dilysu taliad wedi methu +CardOwner=Deiliad cerdyn +PayPalBalance=Credyd Paypal diff --git a/htdocs/langs/cy_GB/printing.lang b/htdocs/langs/cy_GB/printing.lang new file mode 100644 index 00000000000..46604100932 --- /dev/null +++ b/htdocs/langs/cy_GB/printing.lang @@ -0,0 +1,54 @@ +# Dolibarr language file - Source file is en_US - printing +Module64000Name=Argraffu un clic +Module64000Desc=Galluogi System Argraffu Un clic +PrintingSetup=Gosod System Argraffu Un clic +PrintingDesc=Mae'r modiwl hwn yn ychwanegu botwm Argraffu i fodiwlau amrywiol i ganiatáu i ddogfennau gael eu hargraffu'n uniongyrchol i argraffydd heb fod angen agor y ddogfen i raglen arall. +MenuDirectPrinting=Un clic Argraffu swyddi +DirectPrint=Un clic Argraffu +PrintingDriverDesc=Newidynnau ffurfweddu ar gyfer gyrrwr argraffu. +ListDrivers=Rhestr o yrwyr +PrintTestDesc=Rhestr o Argraffwyr. +FileWasSentToPrinter=Anfonwyd ffeil %s at yr argraffydd +ViaModule=trwy'r modiwl +NoActivePrintingModuleFound=Dim gyrrwr gweithredol i argraffu dogfen. Gwirio gosodiad y modiwl %s. +PleaseSelectaDriverfromList=Dewiswch yrrwr o'r rhestr. +PleaseConfigureDriverfromList=Ffurfweddwch y gyrrwr dewisiedig o'r rhestr. +SetupDriver=Gosodiad gyrrwr +TargetedPrinter=Argraffydd wedi'i dargedu +UserConf=Gosod fesul defnyddiwr +PRINTGCP_INFO=Gosodiad Google OAuth API +PRINTGCP_AUTHLINK=Dilysu +PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token +PrintGCPDesc=Mae'r gyrrwr hwn yn caniatáu anfon dogfennau'n uniongyrchol i argraffydd gan ddefnyddio Google Cloud Print. +GCP_Name=Enw +GCP_displayName=Enw Arddangos +GCP_Id=Id argraffydd +GCP_OwnerName=Enw Perchennog +GCP_State=Cyflwr yr Argraffydd +GCP_connectionStatus=Cyflwr Ar-lein +GCP_Type=Math Argraffydd +PrintIPPDesc=Mae'r gyrrwr hwn yn caniatáu anfon dogfennau'n uniongyrchol i argraffydd. Mae angen system Linux gyda CUPS wedi'i osod. +PRINTIPP_HOST=Gweinydd argraffu +PRINTIPP_PORT=Porthladd +PRINTIPP_USER=Mewngofnodi +PRINTIPP_PASSWORD=Cyfrinair +NoDefaultPrinterDefined=Dim argraffydd rhagosodedig wedi'i ddiffinio +DefaultPrinter=Argraffydd diofyn +Printer=Argraffydd +IPP_Uri=Argraffydd Uri +IPP_Name=Enw Argraffydd +IPP_State=Cyflwr yr Argraffydd +IPP_State_reason=Nodwch y rheswm +IPP_State_reason1=Nodwch reswm1 +IPP_BW=BW +IPP_Color=Lliw +IPP_Device=Dyfais +IPP_Media=Cyfryngau argraffydd +IPP_Supported=Math o gyfryngau +DirectPrintingJobsDesc=Mae'r dudalen hon yn rhestru swyddi argraffu a ddarganfuwyd ar gyfer yr argraffwyr sydd ar gael. +GoogleAuthNotConfigured=Nid yw Google OAuth wedi'i osod. Galluogi modiwl OAuth a gosod ID/Secret Google. +GoogleAuthConfigured=Canfuwyd tystlythyrau Google OAuth wrth osod modiwl OAuth. +PrintingDriverDescprintgcp=Newidynnau ffurfweddu ar gyfer gyrrwr argraffu Google Cloud Print. +PrintingDriverDescprintipp=Newidynnau ffurfweddu ar gyfer argraffu Cwpanau gyrrwr. +PrintTestDescprintgcp=Rhestr o Argraffwyr ar gyfer Google Cloud Print. +PrintTestDescprintipp=Rhestr o Argraffwyr ar gyfer Cwpanau. diff --git a/htdocs/langs/cy_GB/productbatch.lang b/htdocs/langs/cy_GB/productbatch.lang new file mode 100644 index 00000000000..a3bda438e14 --- /dev/null +++ b/htdocs/langs/cy_GB/productbatch.lang @@ -0,0 +1,46 @@ +# ProductBATCH language file - Source file is en_US - ProductBATCH +ManageLotSerial=Defnyddiwch lot/rhif cyfresol +ProductStatusOnBatch=Oes (angen llawer) +ProductStatusOnSerial=Oes (mae angen rhif cyfresol unigryw) +ProductStatusNotOnBatch=Na (lot/cyfres heb ei defnyddio) +ProductStatusOnBatchShort=Lot +ProductStatusOnSerialShort=Cyfresol +ProductStatusNotOnBatchShort=Nac ydw +Batch=Lot/Cyfres +atleast1batchfield=Dyddiad bwyta erbyn neu ddyddiad gwerthu erbyn neu Lot/Rhif cyfres +batch_number=Lot/Rhif cyfres +BatchNumberShort=Lot/Cyfres +EatByDate=Dyddiad bwyta erbyn +SellByDate=Dyddiad gwerthu erbyn +DetailBatchNumber=Manylion cyfres/lot +printBatch=Lot/Cyfres: %s +printEatby=Bwyta erbyn: %s +printSellby=Gwerthu gan: %s +printQty=Qty: %d +AddDispatchBatchLine=Ychwanegu llinell ar gyfer anfon Oes Silff +WhenProductBatchModuleOnOptionAreForced=Pan fydd modiwl Lot/Serial ymlaen, mae gostyngiad stoc awtomatig yn cael ei orfodi i 'Gostwng stociau gwirioneddol wrth ddilysu llongau' a gorfodir modd cynyddu awtomatig i 'Gynyddu stociau go iawn wrth anfon â llaw i warysau' ac ni ellir ei olygu. Gellir diffinio opsiynau eraill fel y dymunwch. +ProductDoesNotUseBatchSerial=Nid yw'r cynnyrch hwn yn defnyddio lot/rhif cyfresol +ProductLotSetup=Gosod lot modiwl/cyfres +ShowCurrentStockOfLot=Dangoswch y stoc gyfredol ar gyfer cynnyrch/lot cwpl +ShowLogOfMovementIfLot=Dangos log o symudiadau ar gyfer cynnyrch cwpl/lot +StockDetailPerBatch=Manylion stoc fesul lot +SerialNumberAlreadyInUse=Mae rhif cyfresol %s eisoes yn cael ei ddefnyddio ar gyfer cynnyrch %s +TooManyQtyForSerialNumber=Dim ond un cynnyrch y gallwch chi ei gael %s ar gyfer rhif cyfresol %s +ManageLotMask=Mwgwd personol +CustomMasks=Opsiwn i ddiffinio mwgwd rhifo gwahanol ar gyfer pob cynnyrch +BatchLotNumberingModules=Rheol rhifo ar gyfer cynhyrchu rhif lot yn awtomatig +BatchSerialNumberingModules=Rheol rifo ar gyfer cynhyrchu rhif cyfresol yn awtomatig (ar gyfer cynhyrchion ag eiddo 1 lot/cyfres unigryw ar gyfer pob cynnyrch) +QtyToAddAfterBarcodeScan=Qty i %s ar gyfer pob cod bar/lot/cyfres a sganiwyd +LifeTime=Rhychwant oes (mewn dyddiau) +EndOfLife=Diwedd oes +ManufacturingDate=Dyddiad gweithgynhyrchu +DestructionDate=Dyddiad dinistrio +FirstUseDate=Dyddiad defnydd cyntaf +QCFrequency=Amledd rheoli ansawdd (mewn dyddiau) +ShowAllLots=Dangos pob lot +HideLots=Cuddio llawer +#Traceability - qc status +OutOfOrder=Allan o drefn +InWorkingOrder=Mewn trefn gweithio +ToReplace=Amnewid +CantMoveNonExistantSerial=Gwall. Rydych chi'n gofyn am symud ar gofnod ar gyfer cyfres nad yw'n bodoli mwyach. Efallai eich bod yn cymryd yr un cyfresol ar yr un warws sawl gwaith yn yr un llwyth neu iddo gael ei ddefnyddio gan lwyth arall. Tynnwch y llwyth hwn a pharatowch un arall. diff --git a/htdocs/langs/cy_GB/products.lang b/htdocs/langs/cy_GB/products.lang new file mode 100644 index 00000000000..08594eb1c6c --- /dev/null +++ b/htdocs/langs/cy_GB/products.lang @@ -0,0 +1,426 @@ +# Dolibarr language file - Source file is en_US - products +ProductRef=Cyf cynnyrch. +ProductLabel=Label cynnyrch +ProductLabelTranslated=Label cynnyrch wedi'i gyfieithu +ProductDescription=Disgrifiad o'r cynnyrch +ProductDescriptionTranslated=Disgrifiad o'r cynnyrch wedi'i gyfieithu +ProductNoteTranslated=Nodyn cynnyrch wedi'i gyfieithu +ProductServiceCard=Cerdyn Cynhyrchion/Gwasanaethau +TMenuProducts=Cynhyrchion +TMenuServices=Gwasanaethau +Products=Cynhyrchion +Services=Gwasanaethau +Product=Cynnyrch +Service=Gwasanaeth +ProductId=ID cynnyrch/gwasanaeth +Create=Creu +Reference=Cyfeiriad +NewProduct=Cynnyrch newydd +NewService=Gwasanaeth newydd +ProductVatMassChange=Diweddariad TAW Byd-eang +ProductVatMassChangeDesc=Mae'r offeryn hwn yn diweddaru'r gyfradd TAW a ddiffinnir ar POB UN cynhyrchion a gwasanaethau! +MassBarcodeInit=Init cod bar torfol +MassBarcodeInitDesc=Gellir defnyddio'r dudalen hon i gychwyn cod bar ar wrthrychau nad oes ganddynt y cod bar wedi'i ddiffinio. Gwiriwch cyn bod gosodiad cod bar y modiwl wedi'i gwblhau. +ProductAccountancyBuyCode=Cod cyfrifo (prynu) +ProductAccountancyBuyIntraCode=Cod cyfrifyddu (prynu o fewn y gymuned) +ProductAccountancyBuyExportCode=Cod cyfrifo (mewnforio pryniant) +ProductAccountancySellCode=Cod cyfrifyddu (gwerthu) +ProductAccountancySellIntraCode=Cod cyfrifyddu (gwerthu o fewn y Gymuned) +ProductAccountancySellExportCode=Cod cyfrifo (allforio gwerthu) +ProductOrService=Cynnyrch neu Wasanaeth +ProductsAndServices=Cynhyrchion a Gwasanaethau +ProductsOrServices=Cynhyrchion neu Wasanaethau +ProductsPipeServices=Cynhyrchion | Gwasanaethau +ProductsOnSale=Cynhyrchion ar werth +ProductsOnPurchase=Cynhyrchion i'w prynu +ProductsOnSaleOnly=Cynhyrchion ar werth yn unig +ProductsOnPurchaseOnly=Cynhyrchion i'w prynu yn unig +ProductsNotOnSell=Cynhyrchion nad ydynt ar werth ac nad ydynt i'w prynu +ProductsOnSellAndOnBuy=Cynhyrchion ar werth ac i'w prynu +ServicesOnSale=Gwasanaethau ar werth +ServicesOnPurchase=Gwasanaethau i'w prynu +ServicesOnSaleOnly=Gwasanaethau ar werth yn unig +ServicesOnPurchaseOnly=Gwasanaethau i'w prynu yn unig +ServicesNotOnSell=Gwasanaethau nad ydynt ar werth ac nid i'w prynu +ServicesOnSellAndOnBuy=Gwasanaethau ar werth ac i'w prynu +LastModifiedProductsAndServices=Cynhyrchion/gwasanaethau %s diweddaraf a addaswyd +LastRecordedProducts=Cynhyrchion diweddaraf %s a gofnodwyd +LastRecordedServices=Gwasanaethau diweddaraf %s a gofnodwyd +CardProduct0=Cynnyrch +CardProduct1=Gwasanaeth +Stock=Stoc +MenuStocks=Stociau +Stocks=Stociau a lleoliad (warws) cynhyrchion +Movements=Symudiadau +Sell=Gwerthu +Buy=Prynu +OnSell=Ar Werth +OnBuy=I'w brynu +NotOnSell=Ddim ar werth +ProductStatusOnSell=Ar Werth +ProductStatusNotOnSell=Ddim ar werth +ProductStatusOnSellShort=Ar Werth +ProductStatusNotOnSellShort=Ddim ar werth +ProductStatusOnBuy=I'w brynu +ProductStatusNotOnBuy=Nid ar gyfer prynu +ProductStatusOnBuyShort=I'w brynu +ProductStatusNotOnBuyShort=Nid ar gyfer prynu +UpdateVAT=Diweddaru TAW +UpdateDefaultPrice=Diweddaru pris diofyn +UpdateLevelPrices=Diweddaru prisiau ar gyfer pob lefel +AppliedPricesFrom=Wedi'i gymhwyso o +SellingPrice=Pris gwerthu +SellingPriceHT=Pris gwerthu (ac eithrio treth) +SellingPriceTTC=Pris gwerthu (gan gynnwys treth) +SellingMinPriceTTC=Isafswm pris gwerthu (gan gynnwys treth) +CostPriceDescription=Gellir defnyddio'r maes pris hwn (ac eithrio treth) i ddal y swm cyfartalog y mae'r cynnyrch hwn yn ei gostio i'ch cwmni. Gall fod yn unrhyw bris y byddwch chi'n ei gyfrifo'ch hun, er enghraifft, o'r pris prynu cyfartalog ynghyd â chost cynhyrchu a dosbarthu cyfartalog. +CostPriceUsage=Gellid defnyddio'r gwerth hwn ar gyfer cyfrifo ymyl. +ManufacturingPrice=Pris gweithgynhyrchu +SoldAmount=Swm a werthwyd +PurchasedAmount=Swm a brynwyd +NewPrice=Pris newydd +MinPrice=Minnau. Pris gwerthu +EditSellingPriceLabel=Golygu label pris gwerthu +CantBeLessThanMinPrice=Ni all y pris gwerthu fod yn is na'r isafswm a ganiateir ar gyfer y cynnyrch hwn (%s heb dreth). Gall y neges hon hefyd ymddangos os teipiwch ddisgownt rhy bwysig. +ContractStatusClosed=Ar gau +ErrorProductAlreadyExists=Mae cynnyrch gyda chyfeiriad %s eisoes yn bodoli. +ErrorProductBadRefOrLabel=Gwerth anghywir ar gyfer cyfeirio neu label. +ErrorProductClone=Roedd problem wrth geisio clonio'r cynnyrch neu'r gwasanaeth. +ErrorPriceCantBeLowerThanMinPrice=Gwall, ni all pris fod yn is na'r isafbris. +Suppliers=Gwerthwyr +SupplierRef=Gwerthwr SKU +ShowProduct=Dangos cynnyrch +ShowService=Dangos gwasanaeth +ProductsAndServicesArea=Maes Cynnyrch a Gwasanaethau +ProductsArea=Ardal cynnyrch +ServicesArea=Maes gwasanaethau +ListOfStockMovements=Rhestr o symudiadau stoc +BuyingPrice=Pris prynu +PriceForEachProduct=Cynhyrchion gyda phrisiau penodol +SupplierCard=Cerdyn gwerthwr +PriceRemoved=Pris wedi ei ddileu +BarCode=Cod bar +BarcodeType=Math o god bar +SetDefaultBarcodeType=Gosod math cod bar +BarcodeValue=Gwerth cod bar +NoteNotVisibleOnBill=Nodyn (ddim yn weladwy ar anfonebau, cynigion...) +ServiceLimitedDuration=Os yw'r cynnyrch yn wasanaeth am gyfnod cyfyngedig: +FillWithLastServiceDates=Llenwch â dyddiadau llinellau gwasanaeth olaf +MultiPricesAbility=Segmentau pris lluosog fesul cynnyrch/gwasanaeth (mae pob cwsmer mewn un segment pris) +MultiPricesNumPrices=Nifer y prisiau +DefaultPriceType=Sylfaen prisiau fesul diffyg (yn erbyn heb dreth) wrth ychwanegu prisiau gwerthu newydd +AssociatedProductsAbility=Galluogi Pecynnau (set o sawl cynnyrch) +VariantsAbility=Galluogi Amrywiadau (amrywiadau o gynhyrchion, er enghraifft lliw, maint) +AssociatedProducts=Citiau +AssociatedProductsNumber=Nifer y cynhyrchion sy'n cyfansoddi'r pecyn hwn +ParentProductsNumber=Nifer y cynnyrch pecynnu rhiant +ParentProducts=Cynhyrchion rhieni +IfZeroItIsNotAVirtualProduct=Os 0, nid yw'r cynnyrch hwn yn becyn +IfZeroItIsNotUsedByVirtualProduct=Os 0, ni ddefnyddir y cynnyrch hwn gan unrhyw becyn +KeywordFilter=Hidlydd allweddair +CategoryFilter=Hidlydd categori +ProductToAddSearch=Chwilio cynnyrch i'w ychwanegu +NoMatchFound=Heb ganfod cyfatebiaeth +ListOfProductsServices=Rhestr o gynhyrchion/gwasanaethau +ProductAssociationList=Rhestr o gynhyrchion/gwasanaethau sy'n rhan(au) o'r pecyn hwn +ProductParentList=Rhestr o gitiau gyda'r cynnyrch hwn fel cydran +ErrorAssociationIsFatherOfThis=Un o'r cynhyrchion a ddewiswyd yw rhiant â chynnyrch cyfredol +DeleteProduct=Dileu cynnyrch/gwasanaeth +ConfirmDeleteProduct=Ydych chi'n siŵr eich bod am ddileu'r cynnyrch/gwasanaeth hwn? +ProductDeleted=Cynnyrch/Gwasanaeth "%s" wedi'i ddileu o'r gronfa ddata. +ExportDataset_produit_1=Cynhyrchion +ExportDataset_service_1=Gwasanaethau +ImportDataset_produit_1=Cynhyrchion +ImportDataset_service_1=Gwasanaethau +DeleteProductLine=Dileu llinell cynnyrch +ConfirmDeleteProductLine=Ydych chi'n siŵr eich bod am ddileu'r llinell cynnyrch hon? +ProductSpecial=Arbennig +QtyMin=Minnau. maint prynu +PriceQtyMin=Min maint pris. +PriceQtyMinCurrency=Pris (arian cyfred) ar gyfer y qty hwn. +WithoutDiscount=Heb ddisgownt +VATRateForSupplierProduct=Cyfradd TAW (ar gyfer y gwerthwr/cynnyrch hwn) +DiscountQtyMin=Gostyngiad ar gyfer y qty hwn. +NoPriceDefinedForThisSupplier=Dim pris / qty wedi'i ddiffinio ar gyfer y gwerthwr / cynnyrch hwn +NoSupplierPriceDefinedForThisProduct=Dim pris gwerthwr / qty wedi'i ddiffinio ar gyfer y cynnyrch hwn +PredefinedItem=Eitem wedi'i diffinio ymlaen llaw +PredefinedProductsToSell=Cynnyrch Rhagosodol +PredefinedServicesToSell=Gwasanaeth Rhagosodol +PredefinedProductsAndServicesToSell=Cynhyrchion/gwasanaethau wedi'u diffinio ymlaen llaw i'w gwerthu +PredefinedProductsToPurchase=Cynnyrch wedi'i ddiffinio ymlaen llaw i'w brynu +PredefinedServicesToPurchase=Gwasanaethau rhagddiffiniedig i'w prynu +PredefinedProductsAndServicesToPurchase=Cynhyrchion/gwasanaethau wedi'u diffinio ymlaen llaw i'w prynu +NotPredefinedProducts=Heb fod yn gynhyrchion/gwasanaethau wedi'u diffinio ymlaen llaw +GenerateThumb=Cynhyrchu bawd +ServiceNb=Gwasanaeth #%s +ListProductServiceByPopularity=Rhestr o gynhyrchion/gwasanaethau yn ôl poblogrwydd +ListProductByPopularity=Rhestr o gynhyrchion yn ôl poblogrwydd +ListServiceByPopularity=Rhestr o wasanaethau yn ôl poblogrwydd +Finished=Cynnyrch wedi'i weithgynhyrchu +RowMaterial=Deunydd Crai +ConfirmCloneProduct=A ydych yn siŵr eich bod am glonio cynnyrch neu wasanaeth %s ? +CloneContentProduct=Cloniwch holl brif wybodaeth y cynnyrch/gwasanaeth +ClonePricesProduct=Prisiau clôn +CloneCategoriesProduct=Tagiau/categorïau sy'n gysylltiedig â chlôn +CloneCompositionProduct=Clonio cynhyrchion/gwasanaethau rhithwir +CloneCombinationsProduct=Cloniwch yr amrywiadau cynnyrch +ProductIsUsed=Defnyddir y cynnyrch hwn +NewRefForClone=Cyf. o gynnyrch/gwasanaeth newydd +SellingPrices=Prisiau gwerthu +BuyingPrices=Prisiau prynu +CustomerPrices=Prisiau cwsmeriaid +SuppliersPrices=Prisiau gwerthwyr +SuppliersPricesOfProductsOrServices=Prisiau gwerthwr (cynnyrch neu wasanaethau) +CustomCode=Tollau|Nwyddau|Cod HS +CountryOrigin=Gwlad tarddiad +RegionStateOrigin=Rhanbarth tarddiad +StateOrigin=Talaith|Talaith wreiddiol +Nature=Natur y cynnyrch (amrwd / wedi'i weithgynhyrchu) +NatureOfProductShort=Natur y cynnyrch +NatureOfProductDesc=Deunydd crai neu gynnyrch wedi'i weithgynhyrchu +ShortLabel=Label byr +Unit=Uned +p=u. +set=set +se=set +second=yn ail +s=s +hour=awr +h=h +day=Dydd +d=d +kilogram=cilogram +kg=Kg +gram=gram +g=g +meter=metr +m=m +lm=lm +m2=m² +m3=m³ +liter=litr +l=L +unitP=Darn +unitSET=Gosod +unitS=Yn ail +unitH=Awr +unitD=Dydd +unitG=Gram +unitM=Mesurydd +unitLM=Mesurydd llinellol +unitM2=Metr sgwâr +unitM3=Metr ciwbig +unitL=Litr +unitT=tunnell +unitKG=kg +unitG=Gram +unitMG=mg +unitLB=pwys +unitOZ=owns +unitM=Mesurydd +unitDM=dm +unitCM=cm +unitMM=mm +unitFT=ft +unitIN=mewn +unitM2=Metr sgwâr +unitDM2=dm² +unitCM2=cm² +unitMM2=mm² +unitFT2=ft² +unitIN2=mewn² +unitM3=Metr ciwbig +unitDM3=dm³ +unitCM3=cm³ +unitMM3=mm³ +unitFT3=ft³ +unitIN3=yn³ +unitOZ3=owns +unitgallon=galwyn +ProductCodeModel=Templed cyf cynnyrch +ServiceCodeModel=Templed cyf gwasanaeth +CurrentProductPrice=Pris presennol +AlwaysUseNewPrice=Defnyddiwch bris cyfredol y cynnyrch/gwasanaeth bob amser +AlwaysUseFixedPrice=Defnyddiwch y pris sefydlog +PriceByQuantity=Prisiau gwahanol yn ôl maint +DisablePriceByQty=Analluogi prisiau yn ôl maint +PriceByQuantityRange=Ystod maint +MultipriceRules=Prisiau awtomatig ar gyfer segment +UseMultipriceRules=Defnyddiwch reolau segmentau prisiau (a ddiffinnir i osod modiwlau cynnyrch) i gyfrifo prisiau'r holl segmentau eraill yn awtomatig yn ôl y segment cyntaf +PercentVariationOver=%% amrywiad dros %s +PercentDiscountOver=%% gostyngiad dros %s +KeepEmptyForAutoCalculation=Cadwch yn wag i gael hwn wedi'i gyfrifo'n awtomatig o bwysau neu gyfaint y cynhyrchion +VariantRefExample=Enghreifftiau: COL, MAINT +VariantLabelExample=Enghreifftiau: Lliw, Maint +### composition fabrication +Build=Cynnyrch +ProductsMultiPrice=Cynhyrchion a phrisiau ar gyfer pob segment pris +ProductsOrServiceMultiPrice=Prisiau cwsmeriaid (cynnyrch neu wasanaethau, aml-brisiau) +ProductSellByQuarterHT=Trosiant cynhyrchion yn chwarterol cyn treth +ServiceSellByQuarterHT=Trosiant gwasanaethau yn chwarterol cyn treth +Quarter1=1af. Chwarter +Quarter2=2il. Chwarter +Quarter3=3ydd. Chwarter +Quarter4=4ydd. Chwarter +BarCodePrintsheet=Argraffu cod bar +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 +BuildPageToPrint=Cynhyrchu tudalen i'w hargraffu +FillBarCodeTypeAndValueManually=Llenwch y math o god bar a'r gwerth â llaw. +FillBarCodeTypeAndValueFromProduct=Llenwch y math o god bar a'r gwerth o god bar cynnyrch. +FillBarCodeTypeAndValueFromThirdParty=Llenwch y math o god bar a'r gwerth o god bar trydydd parti. +DefinitionOfBarCodeForProductNotComplete=Diffiniad o fath neu werth y cod bar ddim yn gyflawn ar gyfer cynnyrch %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Diffiniad o fath neu werth y cod bar heb fod yn gyflawn ar gyfer trydydd parti %s. +BarCodeDataForProduct=Gwybodaeth cod bar y cynnyrch %s: +BarCodeDataForThirdparty=Gwybodaeth cod bar trydydd parti %s: +ResetBarcodeForAllRecords=Diffinio gwerth cod bar ar gyfer pob cofnod (bydd hyn hefyd yn ailosod gwerth cod bar a ddiffinnir eisoes gyda gwerthoedd newydd) +PriceByCustomer=Prisiau gwahanol ar gyfer pob cwsmer +PriceCatalogue=Un pris gwerthu am bob cynnyrch/gwasanaeth +PricingRule=Rheolau ar gyfer prisiau gwerthu +AddCustomerPrice=Ychwanegu pris fesul cwsmer +ForceUpdateChildPriceSoc=Gosod yr un pris ar is-gwmnïau cwsmeriaid +PriceByCustomerLog=Log o brisiau cwsmeriaid blaenorol +MinimumPriceLimit=Ni all yr isafswm pris fod yn is na %s +MinimumRecommendedPrice=Y pris isaf a argymhellir yw: %s +PriceExpressionEditor=Golygydd mynegiant pris +PriceExpressionSelected=Mynegiant pris dethol +PriceExpressionEditorHelp1="pris = 2 + 2" neu "2 + 2" ar gyfer gosod y pris. Defnydd; i wahanu ymadroddion +PriceExpressionEditorHelp2=Gallwch gyrchu ExtraFields gyda newidynnau fel #extrafield_myextrafieldkey# a newidynnau byd-eang gydag #global_mycode# +PriceExpressionEditorHelp3=Ym mhrisiau cynnyrch/gwasanaeth a gwerthwyr, mae'r newidynnau hyn ar gael:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface##price_min# a09a4b7839f1 +PriceExpressionEditorHelp4=Mewn pris cynnyrch/gwasanaeth yn unig: #supplier_min_price#
    Mewn prisiau'r gwerthwr yn unig: #supplier_quantity# a #9344_supplier_quantity# a #9344_supplier +PriceExpressionEditorHelp5=Gwerthoedd byd-eang sydd ar gael: +PriceMode=Modd pris +PriceNumeric=Rhif +DefaultPrice=Pris diofyn +DefaultPriceLog=Log o brisiau diofyn blaenorol +ComposedProductIncDecStock=Cynyddu/Gostwng stoc ar newid rhiant +ComposedProduct=Cynhyrchion plant +MinSupplierPrice=Isafswm pris prynu +MinCustomerPrice=Isafswm pris gwerthu +NoDynamicPrice=Dim pris deinamig +DynamicPriceConfiguration=Cyfluniad pris deinamig +DynamicPriceDesc=Gallwch ddiffinio fformiwlâu mathemategol i gyfrifo prisiau Cwsmer neu Werthwr. Gall fformiwlâu o'r fath ddefnyddio pob gweithredwr mathemategol, rhai cysonion a newidynnau. Yma gallwch chi ddiffinio'r newidynnau rydych chi am eu defnyddio. Os oes angen diweddariad awtomatig ar y newidyn, gallwch ddiffinio'r URL allanol i ganiatáu i Dolibarr ddiweddaru'r gwerth yn awtomatig. +AddVariable=Ychwanegu Newidyn +AddUpdater=Ychwanegu Updater +GlobalVariables=Newidynnau byd-eang +VariableToUpdate=Newidyn i'w ddiweddaru +GlobalVariableUpdaters=Diweddarwyr allanol ar gyfer newidynnau +GlobalVariableUpdaterType0=data JSON +GlobalVariableUpdaterHelp0=Yn dosrannu data JSON o URL penodedig, mae VALUE yn pennu lleoliad y gwerth perthnasol, +GlobalVariableUpdaterHelpFormat0=Fformat y cais {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Data Gwasanaeth Gwe +GlobalVariableUpdaterHelp1=Yn dosrannu data WebService o URL penodedig, mae NS yn pennu'r gofod enw, mae VALUE yn pennu lleoliad y gwerth perthnasol, dylai DATA gynnwys y data i'w hanfon a DULL yw'r dull galw WS +GlobalVariableUpdaterHelpFormat1=Fformat y cais yw {"URL": "http://example.com/urlofws", "VALUE": "array, targetvalue", "NS": "http://example.com/urlofns", "DULL" : " myWSMethod " , " DATA " : { " eich " : " data " , " to " : " anfon " }} +UpdateInterval=Cyfnod diweddaru (munudau) +LastUpdated=Diweddariad diweddaraf +CorrectlyUpdated=Wedi'i ddiweddaru'n gywir +PropalMergePdfProductActualFile=Ffeiliau a ddefnyddir i ychwanegu i mewn i PDF Azur is/is +PropalMergePdfProductChooseFile=Dewiswch ffeiliau PDF +IncludingProductWithTag=Gan gynnwys cynhyrchion/gwasanaethau gyda'r tag +DefaultPriceRealPriceMayDependOnCustomer=Pris rhagosodedig, gall pris go iawn ddibynnu ar y cwsmer +WarningSelectOneDocument=Dewiswch o leiaf un ddogfen +DefaultUnitToShow=Uned +NbOfQtyInProposals=Qty yn y cynigion +ClinkOnALinkOfColumn=Cliciwch ar ddolen colofn %s i gael golwg fanwl... +ProductsOrServicesTranslations=Cyfieithiadau Cynhyrchion/Gwasanaethau +TranslatedLabel=Label wedi'i gyfieithu +TranslatedDescription=Disgrifiad wedi'i gyfieithu +TranslatedNote=Nodiadau wedi eu cyfieithu +ProductWeight=Pwysau ar gyfer 1 cynnyrch +ProductVolume=Cyfrol ar gyfer 1 cynnyrch +WeightUnits=Uned pwysau +VolumeUnits=Uned gyfaint +WidthUnits=Uned lled +LengthUnits=Uned hyd +HeightUnits=Uned uchder +SurfaceUnits=Uned wyneb +SizeUnits=Uned maint +DeleteProductBuyPrice=Dileu pris prynu +ConfirmDeleteProductBuyPrice=A ydych yn siŵr eich bod am ddileu'r pris prynu hwn? +SubProduct=Is-gynnyrch +ProductSheet=Taflen cynnyrch +ServiceSheet=Taflen gwasanaeth +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) +PackagingForThisProduct=Pecynnu +PackagingForThisProductDesc=Byddwch yn prynu lluosrif o'r swm hwn yn awtomatig. +QtyRecalculatedWithPackaging=Ailgyfrifwyd maint y llinell yn ôl pecynnu cyflenwyr + +#Attributes +VariantAttributes=Priodoleddau amrywiad +ProductAttributes=Priodoleddau amrywiol ar gyfer cynhyrchion +ProductAttributeName=Priodoledd amrywiad %s +ProductAttribute=Priodoledd amrywiad +ProductAttributeDeleteDialog=Ydych chi'n siŵr eich bod am ddileu'r briodwedd hon? Bydd yr holl werthoedd yn cael eu dileu +ProductAttributeValueDeleteDialog=A ydych yn siŵr eich bod am ddileu'r gwerth "%s" gyda'r cyfeirnod "%s" y briodwedd hon? +ProductCombinationDeleteDialog=A ydych yn sicr eisiau dileu amrywiad y cynnyrch " %s " ? +ProductCombinationAlreadyUsed=Bu gwall wrth ddileu'r amrywiad. Gwiriwch nad yw'n cael ei ddefnyddio mewn unrhyw wrthrych +ProductCombinations=Amrywiadau +PropagateVariant=Lluosogi amrywiadau +HideProductCombinations=Cuddio amrywiad cynhyrchion yn y dewisydd cynhyrchion +ProductCombination=Amrywiad +NewProductCombination=Amrywiad newydd +EditProductCombination=Amrywiad golygu +NewProductCombinations=Amrywiadau newydd +EditProductCombinations=Golygu amrywiadau +SelectCombination=Dewiswch gyfuniad +ProductCombinationGenerator=Amrywiadau generadur +Features=Nodweddion +PriceImpact=Effaith pris +ImpactOnPriceLevel=Effaith ar lefel pris %s +ApplyToAllPriceImpactLevel= Yn berthnasol i bob lefel +ApplyToAllPriceImpactLevelHelp=Trwy glicio yma rydych chi'n gosod yr un effaith pris ar bob lefel +WeightImpact=Effaith pwysau +NewProductAttribute=Priodoledd newydd +NewProductAttributeValue=Gwerth priodoledd newydd +ErrorCreatingProductAttributeValue=Bu gwall wrth greu'r gwerth priodoledd. Gallai fod oherwydd bod gwerth eisoes yn bodoli gyda'r cyfeiriad hwnnw +ProductCombinationGeneratorWarning=Os byddwch yn parhau, cyn cynhyrchu amrywiadau newydd, bydd yr holl rai blaenorol yn cael eu DILEU. Bydd y rhai sy'n bodoli eisoes yn cael eu diweddaru gyda'r gwerthoedd newydd +TooMuchCombinationsWarning=Gall cynhyrchu llawer o amrywiadau arwain at CPU uchel, defnydd cof ac ni all Dolibarr eu creu. Gallai galluogi'r opsiwn "%s" helpu i leihau'r defnydd o gof. +DoNotRemovePreviousCombinations=Peidiwch â chael gwared ar amrywiadau blaenorol +UsePercentageVariations=Defnyddiwch amrywiadau canrannol +PercentageVariation=Amrywiad canrannol +ErrorDeletingGeneratedProducts=Bu gwall wrth geisio dileu amrywiadau cynnyrch presennol +NbOfDifferentValues=Nifer y gwahanol werthoedd +NbProducts=Nifer y cynhyrchion +ParentProduct=Cynnyrch rhiant +HideChildProducts=Cuddio cynhyrchion amrywiad +ShowChildProducts=Dangos cynhyrchion amrywiad +NoEditVariants=Ewch i'r cerdyn cynnyrch Rhiant a golygu effaith prisiau amrywiadau yn y tab amrywiadau +ConfirmCloneProductCombinations=A hoffech chi gopïo'r holl amrywiadau cynnyrch i'r rhiant-gynnyrch arall gyda'r cyfeirnod a roddir? +CloneDestinationReference=Cyfeirnod cynnyrch cyrchfan +ErrorCopyProductCombinations=Bu gwall wrth gopïo'r amrywiadau cynnyrch +ErrorDestinationProductNotFound=Heb ganfod cynnyrch cyrchfan +ErrorProductCombinationNotFound=Heb ganfod amrywiad cynnyrch +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 +PMPValue=Pris cyfartalog wedi'i bwysoli +PMPValueShort=WAP +mandatoryperiod=Cyfnodau gorfodol +mandatoryPeriodNeedTobeSet=Nodyn: Rhaid diffinio'r cyfnod (dyddiad cychwyn a gorffen). +mandatoryPeriodNeedTobeSetMsgValidate=Mae angen cyfnod dechrau a diwedd ar wasanaeth +mandatoryHelper=Gwiriwch hyn os ydych chi eisiau neges i'r defnyddiwr wrth greu / dilysu anfoneb, cynnig masnachol, archeb gwerthu heb nodi dyddiad cychwyn a gorffen ar linellau gyda'r gwasanaeth hwn.
    Sylwch mai rhybudd yw'r neges ac nid gwall blocio. +DefaultBOM=BOM diofyn +DefaultBOMDesc=Y BOM rhagosodedig a argymhellir i'w ddefnyddio i weithgynhyrchu'r cynnyrch hwn. Dim ond os yw natur y cynnyrch yn '%s' y gellir gosod y maes hwn. +Rank=Safle +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=Trowch ymlaen statws gwerthu +SwitchOnPurchaseStatus=Trowch y statws prynu ymlaen +StockMouvementExtraFields= Caeau Ychwanegol (symudiad stoc) +InventoryExtraFields= Meysydd Ychwanegol (rhestr) +ScanOrTypeOrCopyPasteYourBarCodes=Sganiwch neu deipiwch neu copïwch/gludwch eich codau bar +PuttingPricesUpToDate=Update prices with current known prices +PMPExpected=Expected PMP +ExpectedValuation=Expected Valuation +PMPReal=Real PMP +RealValuation=Real Valuation diff --git a/htdocs/langs/cy_GB/projects.lang b/htdocs/langs/cy_GB/projects.lang new file mode 100644 index 00000000000..bb35d3425f3 --- /dev/null +++ b/htdocs/langs/cy_GB/projects.lang @@ -0,0 +1,297 @@ +# Dolibarr language file - Source file is en_US - projects +RefProject=Cyf. prosiect +ProjectRef=Prosiect cyf. +ProjectId=ID Prosiect +ProjectLabel=Label prosiect +ProjectsArea=Maes Prosiectau +ProjectStatus=Statws prosiect +SharedProject=Pawb +PrivateProject=Assigned contacts +ProjectsImContactFor=Prosiectau yr wyf yn benodol yn gyswllt iddynt +AllAllowedProjects=Pob prosiect y gallaf ei ddarllen (mwynglawdd + cyhoeddus) +AllProjects=Pob prosiect +MyProjectsDesc=Mae'r farn hon wedi'i chyfyngu i'r prosiectau yr ydych yn gyswllt ar eu cyfer +ProjectsPublicDesc=Mae'r wedd hon yn cyflwyno'r holl brosiectau y caniateir i chi eu darllen. +TasksOnProjectsPublicDesc=Mae'r wedd hon yn cyflwyno'r holl dasgau ar brosiectau y caniateir i chi eu darllen. +ProjectsPublicTaskDesc=Mae'r olwg hon yn cyflwyno'r holl brosiectau a thasgau y caniateir i chi eu darllen. +ProjectsDesc=Mae'r wedd hon yn cyflwyno pob prosiect (mae eich caniatâd defnyddiwr yn rhoi caniatâd i chi weld popeth). +TasksOnProjectsDesc=Mae'r wedd hon yn cyflwyno'r holl dasgau ar bob prosiect (mae eich caniatâd defnyddiwr yn rhoi caniatâd i chi weld popeth). +MyTasksDesc=Mae'r farn hon wedi'i chyfyngu i'r prosiectau neu'r tasgau rydych chi'n gyswllt ar eu cyfer +OnlyOpenedProject=Dim ond prosiectau agored sy'n weladwy (nid yw prosiectau mewn statws drafft neu gaeedig yn weladwy). +ClosedProjectsAreHidden=Nid yw prosiectau caeedig yn weladwy. +TasksPublicDesc=Mae'r olwg hon yn cyflwyno'r holl brosiectau a thasgau y caniateir i chi eu darllen. +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. +ImportDatasetTasks=Tasgau prosiectau +ProjectCategories=Tagiau/categorïau prosiect +NewProject=Prosiect newydd +AddProject=Creu prosiect +DeleteAProject=Dileu prosiect +DeleteATask=Dileu tasg +ConfirmDeleteAProject=Ydych chi'n siŵr eich bod am ddileu'r prosiect hwn? +ConfirmDeleteATask=Ydych chi'n siŵr eich bod am ddileu'r dasg hon? +OpenedProjects=Prosiectau agored +OpenedTasks=Tasgau agored +OpportunitiesStatusForOpenedProjects=Arwain nifer y prosiectau agored yn ôl statws +OpportunitiesStatusForProjects=Arwain nifer y prosiectau yn ôl statws +ShowProject=Sioe prosiect +ShowTask=Dangos tasg +SetProject=Prosiect gosod +NoProject=Dim prosiect wedi'i ddiffinio nac yn eiddo iddo +NbOfProjects=Nifer y prosiectau +NbOfTasks=Nifer y tasgau +TimeSpent=Amser a dreulir +TimeSpentByYou=Amser a dreulir gennych chi +TimeSpentByUser=Amser a dreulir gan y defnyddiwr +TimesSpent=Amser a dreulir +TaskId=ID Tasg +RefTask=Tasg cyf. +LabelTask=Label tasg +TaskTimeSpent=Amser a dreulir ar dasgau +TaskTimeUser=Defnyddiwr +TaskTimeNote=Nodyn +TaskTimeDate=Dyddiad +TasksOnOpenedProject=Tasgau ar brosiectau agored +WorkloadNotDefined=Nid yw'r llwyth gwaith wedi'i ddiffinio +NewTimeSpent=Amser a dreulir +MyTimeSpent=Treuliais fy amser +BillTime=Bill yr amser a dreuliwyd +BillTimeShort=Amser bil +TimeToBill=Amser heb ei bilio +TimeBilled=Amser wedi'i bilio +Tasks=Tasgau +Task=Tasg +TaskDateStart=Dyddiad cychwyn tasg +TaskDateEnd=Dyddiad gorffen tasg +TaskDescription=Disgrifiad o'r dasg +NewTask=Tasg newydd +AddTask=Creu tasg +AddTimeSpent=Creu amser a dreulir +AddHereTimeSpentForDay=Ychwanegwch yma amser a dreuliwyd ar gyfer y diwrnod/dasg hon +AddHereTimeSpentForWeek=Ychwanegwch yma amser a dreuliwyd ar gyfer yr wythnos/dasg hon +Activity=Gweithgaredd +Activities=Tasgau/gweithgareddau +MyActivities=Fy nhasgau/gweithgareddau +MyProjects=Fy mhrosiectau +MyProjectsArea=Ardal fy mhrosiectau +DurationEffective=Hyd effeithiol +ProgressDeclared=Cynnydd gwirioneddol wedi'i ddatgan +TaskProgressSummary=Cynnydd tasg +CurentlyOpenedTasks=Tasgau agored ar hyn o bryd +TheReportedProgressIsLessThanTheCalculatedProgressionByX=Mae'r cynnydd gwirioneddol datganedig yn llai %s na'r cynnydd ar ddefnydd +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=Mae'r cynnydd gwirioneddol datganedig yn fwy %s na'r cynnydd ar ddefnydd +ProgressCalculated=Cynnydd ar ddefnydd +WhichIamLinkedTo=yr wyf yn gysylltiedig ag ef +WhichIamLinkedToProject=yr wyf yn gysylltiedig â phrosiect +Time=Amser +TimeConsumed=Wedi'i fwyta +ListOfTasks=Rhestr o dasgau +GoToListOfTimeConsumed=Ewch i'r rhestr o amser a dreuliwyd +GanttView=Golygfa Gantt +ListWarehouseAssociatedProject=Rhestr o warysau sy'n gysylltiedig â'r prosiect +ListProposalsAssociatedProject=Rhestr o'r cynigion masnachol sy'n ymwneud â'r prosiect +ListOrdersAssociatedProject=Rhestr o orchmynion gwerthu sy'n gysylltiedig â'r prosiect +ListInvoicesAssociatedProject=Rhestr o anfonebau cwsmeriaid sy'n ymwneud â'r prosiect +ListPredefinedInvoicesAssociatedProject=Rhestr o anfonebau templed cwsmeriaid sy'n ymwneud â'r prosiect +ListSupplierOrdersAssociatedProject=Rhestr o orchmynion prynu sy'n ymwneud â'r prosiect +ListSupplierInvoicesAssociatedProject=Rhestr o anfonebau gwerthwyr sy'n ymwneud â'r prosiect +ListContractAssociatedProject=Rhestr o gontractau sy'n ymwneud â'r prosiect +ListShippingAssociatedProject=Rhestr o longau sy'n gysylltiedig â'r prosiect +ListFichinterAssociatedProject=Rhestr o ymyriadau sy'n ymwneud â'r prosiect +ListExpenseReportsAssociatedProject=Rhestr o adroddiadau gwariant sy'n ymwneud â'r prosiect +ListDonationsAssociatedProject=Rhestr o roddion sy'n gysylltiedig â'r prosiect +ListVariousPaymentsAssociatedProject=Rhestr o daliadau amrywiol sy'n gysylltiedig â'r prosiect +ListSalariesAssociatedProject=Rhestr o daliadau cyflogau sy'n gysylltiedig â'r prosiect +ListActionsAssociatedProject=Rhestr o ddigwyddiadau sy'n gysylltiedig â'r prosiect +ListMOAssociatedProject=Rhestr o orchmynion gweithgynhyrchu sy'n gysylltiedig â'r prosiect +ListTaskTimeUserProject=Rhestr o'r amser a dreuliwyd ar dasgau'r prosiect +ListTaskTimeForTask=Rhestr o'r amser a dreuliwyd ar dasg +ActivityOnProjectToday=Gweithgaredd ar y prosiect heddiw +ActivityOnProjectYesterday=Gweithgaredd ar y prosiect ddoe +ActivityOnProjectThisWeek=Gweithgaredd ar y prosiect yr wythnos hon +ActivityOnProjectThisMonth=Gweithgaredd ar brosiect y mis hwn +ActivityOnProjectThisYear=Gweithgaredd ar y prosiect eleni +ChildOfProjectTask=Plentyn y prosiect/tasg +ChildOfTask=Plentyn tasg +TaskHasChild=Mae gan y dasg blentyn +NotOwnerOfProject=Ddim yn berchennog y prosiect preifat hwn +AffectedTo=Wedi'i neilltuo i +CantRemoveProject=Ni ellir dileu'r prosiect hwn gan fod rhai gwrthrychau eraill (anfoneb, archebion neu eraill) yn cyfeirio ato. Gweler y tab '%s'. +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) +ReOpenAProject=Prosiect agored +ConfirmReOpenAProject=Ydych chi'n siŵr eich bod am ail-agor y prosiect hwn? +ProjectContact=Cysylltiadau'r prosiect +TaskContact=Cysylltiadau tasg +ActionsOnProject=Digwyddiadau ar y prosiect +YouAreNotContactOfProject=Nid ydych yn gyswllt i'r prosiect preifat hwn +UserIsNotContactOfProject=Nid yw defnyddiwr yn gyswllt y prosiect preifat hwn +DeleteATimeSpent=Dileu amser a dreuliwyd +ConfirmDeleteATimeSpent=A ydych yn siŵr eich bod am ddileu'r amser hwn a dreuliwyd? +DoNotShowMyTasksOnly=Gweler hefyd y tasgau nas neilltuwyd i mi +ShowMyTasksOnly=Gweld tasgau a neilltuwyd i mi yn unig +TaskRessourceLinks=Cysylltiadau tasg +ProjectsDedicatedToThisThirdParty=Prosiectau ymroddedig i'r trydydd parti hwn +NoTasks=Dim tasgau ar gyfer y prosiect hwn +LinkedToAnotherCompany=Yn gysylltiedig â thrydydd parti arall +TaskIsNotAssignedToUser=Nid yw'r dasg wedi'i neilltuo i'r defnyddiwr. Defnyddio botwm ' %s ' i aseinio tasg nawr. +ErrorTimeSpentIsEmpty=Mae'r amser a dreulir yn wag +TimeRecordingRestrictedToNMonthsBack=Mae cofnodi amser wedi'i gyfyngu i %s fisoedd yn ôl +ThisWillAlsoRemoveTasks=Bydd y cam gweithredu hwn hefyd yn dileu holl dasgau'r prosiect ( %s tasgau ar hyn o bryd) a'r holl fewnbynnau o amser a dreuliwyd. +IfNeedToUseOtherObjectKeepEmpty=Os oes rhaid i rai gwrthrychau (anfoneb, archeb, ...), sy'n perthyn i drydydd parti arall, fod yn gysylltiedig â'r prosiect i'w greu, cadwch hwn yn wag i gael y prosiect yn un trydydd parti. +CloneTasks=Tasgau clôn +CloneContacts=Cysylltiadau clonio +CloneNotes=Nodiadau clôn +CloneProjectFiles=Ffeiliau wedi'u cysylltu â'r prosiect clôn +CloneTaskFiles=Tasg(au) clonio ffeiliau wedi'u cysylltu (os yw tasg(au) wedi'u clonio) +CloneMoveDate=Diweddaru dyddiadau prosiectau/tasgau o nawr? +ConfirmCloneProject=Ydych chi'n siŵr o glonio'r prosiect hwn? +ProjectReportDate=Newid dyddiadau tasgau yn ôl dyddiad cychwyn prosiect newydd +ErrorShiftTaskDate=Amhosib symud dyddiad tasg yn ôl dyddiad cychwyn prosiect newydd +ProjectsAndTasksLines=Prosiectau a thasgau +ProjectCreatedInDolibarr=Prosiect %s wedi'i greu +ProjectValidatedInDolibarr=Prosiect %s wedi'i ddilysu +ProjectModifiedInDolibarr=Prosiect %s wedi'i addasu +TaskCreatedInDolibarr=Tasg %s wedi'i chreu +TaskModifiedInDolibarr=Tasg %s wedi'i addasu +TaskDeletedInDolibarr=Tasg %s wedi'i dileu +OpportunityStatus=Statws arweiniol +OpportunityStatusShort=Statws arweiniol +OpportunityProbability=Tebygolrwydd arweiniol +OpportunityProbabilityShort=Arwain probab. +OpportunityAmount=Swm arweiniol +OpportunityAmountShort=Swm arweiniol +OpportunityWeightedAmount=Swm wedi'i bwysoli cyfle +OpportunityWeightedAmountShort=Gyferbyn. swm pwysol +OpportunityAmountAverageShort=Swm plwm cyfartalog +OpportunityAmountWeigthedShort=Swm plwm wedi'i bwysoli +WonLostExcluded=Wedi ennill/colli wedi'i eithrio +##### Types de contacts ##### +TypeContact_project_internal_PROJECTLEADER=Arweinydd prosiect +TypeContact_project_external_PROJECTLEADER=Arweinydd prosiect +TypeContact_project_internal_PROJECTCONTRIBUTOR=Cyfranwr +TypeContact_project_external_PROJECTCONTRIBUTOR=Cyfranwr +TypeContact_project_task_internal_TASKEXECUTIVE=Gweithredwr tasg +TypeContact_project_task_external_TASKEXECUTIVE=Gweithredwr tasg +TypeContact_project_task_internal_TASKCONTRIBUTOR=Cyfranwr +TypeContact_project_task_external_TASKCONTRIBUTOR=Cyfranwr +SelectElement=Dewiswch elfen +AddElement=Dolen i'r elfen +LinkToElementShort=Dolen i +# Documents models +DocumentModelBeluga=Templed dogfen prosiect ar gyfer trosolwg gwrthrychau cysylltiedig +DocumentModelBaleine=Templed dogfen prosiect ar gyfer tasgau +DocumentModelTimeSpent=Templed adroddiad prosiect ar gyfer yr amser a dreuliwyd +PlannedWorkload=Llwyth gwaith wedi'i gynllunio +PlannedWorkloadShort=Llwyth gwaith +ProjectReferers=Eitemau cysylltiedig +ProjectMustBeValidatedFirst=Rhaid dilysu'r prosiect yn gyntaf +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. +FirstAddRessourceToAllocateTime=Neilltuo adnodd defnyddiwr fel cyswllt prosiect i ddyrannu amser +InputPerDay=Mewnbwn y dydd +InputPerWeek=Mewnbwn yr wythnos +InputPerMonth=Mewnbwn y mis +InputDetail=Manylion mewnbwn +TimeAlreadyRecorded=Dyma'r amser a dreuliwyd eisoes wedi'i gofnodi ar gyfer y dasg/diwrnod hwn a defnyddiwr %s +ProjectsWithThisUserAsContact=Prosiectau gyda'r defnyddiwr hwn fel cyswllt +ProjectsWithThisContact=Prosiectau gyda'r cyswllt hwn +TasksWithThisUserAsContact=Tasgau a neilltuwyd i'r defnyddiwr hwn +ResourceNotAssignedToProject=Heb ei neilltuo i brosiect +ResourceNotAssignedToTheTask=Heb ei aseinio i'r dasg +NoUserAssignedToTheProject=Dim defnyddwyr wedi'u haseinio i'r prosiect hwn +TimeSpentBy=Amser a dreuliwyd gan +TasksAssignedTo=Tasgau a neilltuwyd iddynt +AssignTaskToMe=Neilltuo tasg i mi fy hun +AssignTaskToUser=Neilltuo tasg i %s +SelectTaskToAssign=Dewiswch dasg i'w aseinio... +AssignTask=Neilltuo +ProjectOverview=Trosolwg +ManageTasks=Defnyddio prosiectau i ddilyn tasgau a/neu adrodd ar yr amser a dreuliwyd (taflenni amser) +ManageOpportunitiesStatus=Defnyddio prosiectau i ddilyn arweiniad/cyfleoedd +ProjectNbProjectByMonth=Nifer y prosiectau a grëwyd fesul mis +ProjectNbTaskByMonth=Nifer y tasgau a grëwyd fesul mis +ProjectOppAmountOfProjectsByMonth=Swm y gwifrau fesul mis +ProjectWeightedOppAmountOfProjectsByMonth=Swm wedi'i bwysoli o lidiau fesul mis +ProjectOpenedProjectByOppStatus=Prosiect agored | statws arweiniol +ProjectsStatistics=Ystadegau ar brosiectau neu arweinwyr +TasksStatistics=Ystadegau ar dasgau prosiectau neu arweinwyr +TaskAssignedToEnterTime=Tasg wedi'i neilltuo. Dylai fod yn bosibl nodi amser ar y dasg hon. +IdTaskTime=Amser tasg id +YouCanCompleteRef=Os ydych chi am gwblhau'r cyfeirnod gyda rhywfaint o ôl-ddodiad, argymhellir ychwanegu cymeriad - i'w wahanu, felly bydd y rhifo awtomatig yn dal i weithio'n gywir ar gyfer prosiectau nesaf. Er enghraifft %s-MYSUFFIX +OpenedProjectsByThirdparties=Prosiectau agored gan drydydd parti +OnlyOpportunitiesShort=Dim ond yn arwain +OpenedOpportunitiesShort=Agor gwifrau +NotOpenedOpportunitiesShort=Ddim yn dennyn agored +NotAnOpportunityShort=Ddim yn arwain +OpportunityTotalAmount=Cyfanswm y gwifrau +OpportunityPonderatedAmount=Swm pwysol o lidiau +OpportunityPonderatedAmountDesc=Arwain swm wedi'i bwysoli â thebygolrwydd +OppStatusPROSP=Rhagolygon +OppStatusQUAL=Cymhwyster +OppStatusPROPO=Cynnig +OppStatusNEGO=Negodi +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)
    +LatestProjects=Prosiectau %s diweddaraf +LatestModifiedProjects=Prosiectau wedi'u haddasu %s diweddaraf +OtherFilteredTasks=Tasgau eraill wedi'u hidlo +NoAssignedTasks=Ni chanfuwyd unrhyw dasgau neilltuedig (rhowch brosiect/tasgau i'r defnyddiwr presennol o'r blwch dewis uchaf i nodi amser arno) +ThirdPartyRequiredToGenerateInvoice=Rhaid diffinio trydydd parti ar brosiect i allu ei anfonebu. +ThirdPartyRequiredToGenerateInvoice=Rhaid diffinio trydydd parti ar brosiect i allu ei anfonebu. +ChooseANotYetAssignedTask=Dewiswch dasg nad yw wedi'i neilltuo i chi eto +# Comments trans +AllowCommentOnTask=Caniatáu sylwadau defnyddwyr ar dasgau +AllowCommentOnProject=Caniatáu sylwadau defnyddwyr ar brosiectau +DontHavePermissionForCloseProject=Nid oes gennych ganiatâd i gau'r prosiect %s +DontHaveTheValidateStatus=Rhaid i'r prosiect %s fod yn agored i gael ei gau +RecordsClosed=prosiect(au) %s wedi cau +SendProjectRef=Prosiect gwybodaeth %s +ModuleSalaryToDefineHourlyRateMustBeEnabled=Modiwl Mae'n rhaid galluogi 'cyflogau' i ddiffinio cyfradd fesul awr gweithwyr er mwyn i'r amser a dreulir gael ei brisio +NewTaskRefSuggested=Cyfeirnod tasg a ddefnyddiwyd eisoes, mae angen cyf tasg newydd +TimeSpentInvoiced=Amser a dreuliwyd wedi'i bilio +TimeSpentForIntervention=Amser a dreulir +TimeSpentForInvoice=Amser a dreulir +OneLinePerUser=Un llinell i bob defnyddiwr +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. +ProjectFollowOpportunity=Dilynwch y cyfle +ProjectFollowTasks=Dilynwch dasgau neu amser a dreulir +Usage=Defnydd +UsageOpportunity=Defnydd: Cyfle +UsageTasks=Defnydd: Tasgau +UsageBillTimeShort=Defnydd: Amser bil +InvoiceToUse=Anfoneb ddrafft i'w defnyddio +InterToUse=Ymyriad drafft i'w ddefnyddio +NewInvoice=Anfoneb newydd +NewInter=Ymyrraeth newydd +OneLinePerTask=Un llinell i bob tasg +OneLinePerPeriod=Un llinell fesul cyfnod +OneLinePerTimeSpentLine=Un llinell ar gyfer pob datganiad amser a dreulir +AddDetailDateAndDuration=Gyda dyddiad a hyd yn ddisgrifiad llinell +RefTaskParent=Cyf. Tasg Rhiant +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. +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 . +ProjectsHavingThisContact=Prosiectau yn cael y cyswllt hwn +StartDateCannotBeAfterEndDate=Ni all y dyddiad gorffen fod cyn y dyddiad dechrau +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/cy_GB/propal.lang b/htdocs/langs/cy_GB/propal.lang new file mode 100644 index 00000000000..fefbcae5331 --- /dev/null +++ b/htdocs/langs/cy_GB/propal.lang @@ -0,0 +1,113 @@ +# Dolibarr language file - Source file is en_US - propal +Proposals=Cynigion masnachol +Proposal=Cynnig masnachol +ProposalShort=Cynnig +ProposalsDraft=Cynigion masnachol drafft +ProposalsOpened=Cynigion masnachol agored +CommercialProposal=Cynnig masnachol +PdfCommercialProposalTitle=Cynnig +ProposalCard=Cerdyn cynnig +NewProp=Cynnig masnachol newydd +NewPropal=Cynnig newydd +Prospect=Rhagolygon +DeleteProp=Dileu cynnig masnachol +ValidateProp=Dilysu cynnig masnachol +AddProp=Creu cynnig +ConfirmDeleteProp=A ydych yn siŵr eich bod am ddileu'r cynnig masnachol hwn? +ConfirmValidateProp=A ydych yn siŵr eich bod am ddilysu'r cynnig masnachol hwn o dan yr enw %s ? +LastPropals=Cynigion %s diweddaraf +LastModifiedProposals=Cynigion wedi'u haddasu diweddaraf %s +AllPropals=Pob cynnig +SearchAProposal=Chwiliwch am gynnig +NoProposal=Dim cynnig +ProposalsStatistics=Ystadegau cynigion masnachol +NumberOfProposalsByMonth=Nifer fesul mis +AmountOfProposalsByMonthHT=Swm fesul mis (ac eithrio treth) +NbOfProposals=Nifer y cynigion masnachol +ShowPropal=Dangos cynnig +PropalsDraft=Drafftiau +PropalsOpened=Agored +PropalStatusDraft=Drafft (angen ei ddilysu) +PropalStatusValidated=Wedi'i ddilysu (cynnig yn agored) +PropalStatusSigned=Wedi'i lofnodi (angen bilio) +PropalStatusNotSigned=Heb ei lofnodi (ar gau) +PropalStatusBilled=Wedi'i filio +PropalStatusDraftShort=Drafft +PropalStatusValidatedShort=Wedi'i ddilysu (agored) +PropalStatusClosedShort=Ar gau +PropalStatusSignedShort=Llofnodwyd +PropalStatusNotSignedShort=Heb ei arwyddo +PropalStatusBilledShort=Wedi'i filio +PropalsToClose=Cynigion masnachol i gau +PropalsToBill=Cynigion masnachol i filio wedi'u harwyddo +ListOfProposals=Rhestr o gynigion masnachol +ActionsOnPropal=Digwyddiadau ar gynnig +RefProposal=Cynnig masnachol cyf +SendPropalByMail=Anfon cynnig masnachol drwy'r post +DatePropal=Dyddiad y cynnig +DateEndPropal=Dyddiad gorffen dilysrwydd +ValidityDuration=Hyd dilysrwydd +SetAcceptedRefused=Set derbyn/gwrthod +ErrorPropalNotFound=Propal %s heb ei ddarganfod +AddToDraftProposals=Ychwanegu at y cynnig drafft +NoDraftProposals=Dim cynigion drafft +CopyPropalFrom=Creu cynnig masnachol trwy gopïo cynnig presennol +CreateEmptyPropal=Creu cynnig masnachol gwag neu o restr o gynhyrchion / gwasanaethau +DefaultProposalDurationValidity=Hyd dilysrwydd cynnig masnachol diofyn (mewn dyddiau) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal +UseCustomerContactAsPropalRecipientIfExist=Defnyddiwch y cyswllt/cyfeiriad gyda'r math 'Cynnig dilynol cyswllt' os caiff ei ddiffinio yn lle cyfeiriad trydydd parti fel cyfeiriad derbynnydd y cynnig +ConfirmClonePropal=A ydych yn siŵr eich bod am glonio'r cynnig masnachol %s ? +ConfirmReOpenProp=A ydych yn siŵr eich bod am agor yn ôl y cynnig masnachol %s ? +ProposalsAndProposalsLines=Cynnig masnachol a llinellau +ProposalLine=Llinell gynnig +ProposalLines=Llinellau cynnig +AvailabilityPeriod=Oedi argaeledd +SetAvailability=Gosod oedi argaeledd +AfterOrder=ar ôl archeb +OtherProposals=Cynigion eraill +##### Availability ##### +AvailabilityTypeAV_NOW=Ar unwaith +AvailabilityTypeAV_1W=1 wythnos +AvailabilityTypeAV_2W=2 wythnos +AvailabilityTypeAV_3W=3 wythnos +AvailabilityTypeAV_1M=1 mis +##### Types de contacts ##### +TypeContact_propal_internal_SALESREPFOLL=Cynnig dilynol cynrychiolydd +TypeContact_propal_external_BILLING=Cyswllt anfoneb cwsmer +TypeContact_propal_external_CUSTOMER=Cynnig dilynol cyswllt cwsmeriaid +TypeContact_propal_external_SHIPPING=Cyswllt cwsmer ar gyfer cyflwyno +# Document models +DocModelAzurDescription=Model cynnig cyflawn (hen weithrediad templed Cyan) +DocModelCyanDescription=Model cynnig cyflawn +DefaultModelPropalCreate=Creu model diofyn +DefaultModelPropalToBill=Templed rhagosodedig wrth gau cynnig busnes (i'w anfonebu) +DefaultModelPropalClosed=Templed rhagosodedig wrth gau cynnig busnes (heb ei filio) +ProposalCustomerSignature=Derbyniad ysgrifenedig, stamp cwmni, dyddiad a llofnod +ProposalsStatisticsSuppliers=Ystadegau cynigion gwerthwr +CaseFollowedBy=Achos a ddilynwyd gan +SignedOnly=Wedi'i lofnodi yn unig +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=Arwydd +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 y Cynnig +IdProduct=ID Cynnyrch +LineBuyPriceHT=Prynu Swm Pris net o dreth ar gyfer llinell +SignPropal=Derbyn y cynnig +RefusePropal=Gwrthod y cynnig +Sign=Arwydd +NoSign=Set not signed +PropalAlreadySigned=Derbyniwyd y cynnig eisoes +PropalAlreadyRefused=Gwrthodwyd y cynnig eisoes +PropalSigned=Derbyniwyd y cynnig +PropalRefused=Gwrthodwyd y cynnig +ConfirmRefusePropal=A ydych yn siŵr eich bod am wrthod y cynnig masnachol hwn? diff --git a/htdocs/langs/cy_GB/receiptprinter.lang b/htdocs/langs/cy_GB/receiptprinter.lang new file mode 100644 index 00000000000..b3ecad23361 --- /dev/null +++ b/htdocs/langs/cy_GB/receiptprinter.lang @@ -0,0 +1,82 @@ +# Dolibarr language file - Source file is en_US - receiptprinter +ReceiptPrinterSetup=Gosod DerbynnebArgraffydd modiwl +PrinterAdded=Argraffydd %s wedi'i ychwanegu +PrinterUpdated=Argraffydd %s wedi'i ddiweddaru +PrinterDeleted=Argraffydd %s wedi'i ddileu +TestSentToPrinter=Prawf Wedi'i Anfon I'r Argraffydd %s +ReceiptPrinter=Argraffwyr derbynneb +ReceiptPrinterDesc=Gosod argraffwyr derbynneb +ReceiptPrinterTemplateDesc=Gosod Templedi +ReceiptPrinterTypeDesc=Enghraifft o werthoedd posibl ar gyfer y maes "Paramedrau" yn ôl y math o yrrwr +ReceiptPrinterProfileDesc=Disgrifiad o Broffil Argraffydd Derbynneb +ListPrinters=Rhestr o Argraffwyr +SetupReceiptTemplate=Gosod Templed +CONNECTOR_DUMMY=Argraffydd Dymi +CONNECTOR_NETWORK_PRINT=Argraffydd Rhwydwaith +CONNECTOR_FILE_PRINT=Argraffydd Lleol +CONNECTOR_WINDOWS_PRINT=Argraffydd Windows Lleol +CONNECTOR_CUPS_PRINT=Argraffydd Cwpanau +CONNECTOR_DUMMY_HELP=Argraffydd Ffug ar gyfer prawf, yn gwneud dim +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=Enw argraffydd CUPS, enghraifft: HPRT_TP805L +PROFILE_DEFAULT=Proffil Diofyn +PROFILE_SIMPLE=Proffil Syml +PROFILE_EPOSTEP=Proffil Epos Te +PROFILE_P822D=Proffil P822D +PROFILE_STAR=Proffil Seren +PROFILE_DEFAULT_HELP=Proffil Diofyn sy'n addas ar gyfer argraffwyr Epson +PROFILE_SIMPLE_HELP=Proffil Syml Dim Graffeg +PROFILE_EPOSTEP_HELP=Proffil Epos Te +PROFILE_P822D_HELP=Proffil P822D Dim Graffeg +PROFILE_STAR_HELP=Proffil Seren +DOL_LINE_FEED=Llinell sgip +DOL_ALIGN_LEFT=Alinio testun i'r chwith +DOL_ALIGN_CENTER=Testun canol +DOL_ALIGN_RIGHT=Alinio testun i'r dde +DOL_USE_FONT_A=Defnyddiwch ffont A yr argraffydd +DOL_USE_FONT_B=Defnyddiwch ffont B yr argraffydd +DOL_USE_FONT_C=Defnyddiwch ffont C yr argraffydd +DOL_PRINT_BARCODE=Argraffu cod bar +DOL_PRINT_BARCODE_CUSTOMER_ID=Argraffu cod bar ID cwsmer +DOL_CUT_PAPER_FULL=Torri tocyn yn gyfan gwbl +DOL_CUT_PAPER_PARTIAL=Torri tocyn yn rhannol +DOL_OPEN_DRAWER=Agor drôr arian parod +DOL_ACTIVATE_BUZZER=Ysgogi swnyn +DOL_PRINT_QRCODE=Argraffu Cod QR +DOL_PRINT_LOGO=Argraffu logo fy nghwmni +DOL_PRINT_LOGO_OLD=Argraffu logo fy nghwmni (hen argraffwyr) +DOL_BOLD=Beiddgar +DOL_BOLD_DISABLED=Analluogi print trwm +DOL_DOUBLE_HEIGHT=Maint uchder dwbl +DOL_DOUBLE_WIDTH=Maint lled dwbl +DOL_DEFAULT_HEIGHT_WIDTH=Uchder diofyn a maint lled +DOL_UNDERLINE=Galluogi tanlinellu +DOL_UNDERLINE_DISABLED=Analluogi tanlinellu +DOL_BEEP=Sain bîp +DOL_PRINT_TEXT=Argraffu testun +DateInvoiceWithTime=Dyddiad ac amser anfoneb +YearInvoice=Blwyddyn anfoneb +DOL_VALUE_MONTH_LETTERS=Mis anfoneb mewn llythyrau +DOL_VALUE_MONTH=Mis anfoneb +DOL_VALUE_DAY=Diwrnod anfoneb +DOL_VALUE_DAY_LETTERS=Diwrnod anufudd mewn llythyrau +DOL_LINE_FEED_REVERSE=Gwrthdroi porthiant llinell +InvoiceID=ID Anfoneb +InvoiceRef=Cyfeirnod yr anfoneb +DOL_PRINT_OBJECT_LINES=Llinellau anfoneb +DOL_VALUE_CUSTOMER_FIRSTNAME=Enw cyntaf cwsmer +DOL_VALUE_CUSTOMER_LASTNAME=Cyfenw cwsmer +DOL_VALUE_CUSTOMER_MAIL=Post cwsmer +DOL_VALUE_CUSTOMER_PHONE=Ffôn cwsmer +DOL_VALUE_CUSTOMER_MOBILE=Symudol cwsmer +DOL_VALUE_CUSTOMER_SKYPE=Skype cwsmer +DOL_VALUE_CUSTOMER_TAX_NUMBER=Rhif treth cwsmer +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Balans cyfrif cwsmer +DOL_VALUE_MYSOC_NAME=Enw eich cwmni +VendorLastname=Enw olaf y gwerthwr +VendorFirstname=Enw cyntaf y gwerthwr +VendorEmail=E-bost gwerthwr +DOL_VALUE_CUSTOMER_POINTS=Pwyntiau cwsmeriaid +DOL_VALUE_OBJECT_POINTS=Pwyntiau gwrthrych diff --git a/htdocs/langs/cy_GB/receptions.lang b/htdocs/langs/cy_GB/receptions.lang new file mode 100644 index 00000000000..374d1114f00 --- /dev/null +++ b/htdocs/langs/cy_GB/receptions.lang @@ -0,0 +1,54 @@ +# Dolibarr language file - Source file is en_US - receptions +ReceptionDescription=Rheoli derbynfa gwerthwr (Creu dogfennau derbynfa) +ReceptionsSetup=Gosodiad Derbynfa Gwerthwr +RefReception=Cyf. derbyniad +Reception=Derbynfa +Receptions=Derbyniadau +AllReceptions=Pob Derbyniad +Reception=Derbynfa +Receptions=Derbyniadau +ShowReception=Dangos Derbyniadau +ReceptionsArea=Derbynfa +ListOfReceptions=Rhestr o dderbyniadau +ReceptionMethod=Dull derbyn +LastReceptions=Derbyniadau %s diweddaraf +StatisticsOfReceptions=Ystadegau ar gyfer derbynfeydd +NbOfReceptions=Nifer y derbyniadau +NumberOfReceptionsByMonth=Nifer y derbyniadau fesul mis +ReceptionCard=Cerdyn derbyn +NewReception=Derbyniad newydd +CreateReception=Creu derbyniad +QtyInOtherReceptions=Qty mewn derbynfeydd eraill +OtherReceptionsForSameOrder=Derbyniadau eraill ar gyfer yr archeb hon +ReceptionsAndReceivingForSameOrder=Derbyniadau a derbynebau ar gyfer yr archeb hon +ReceptionsToValidate=Derbyniadau i'w dilysu +StatusReceptionCanceled=Wedi'i ganslo +StatusReceptionDraft=Drafft +StatusReceptionValidated=Wedi'i ddilysu (cynhyrchion i'w derbyn neu eu derbyn eisoes) +StatusReceptionValidatedToReceive=Wedi'i ddilysu (cynhyrchion i'w derbyn) +StatusReceptionValidatedReceived=Wedi'i ddilysu (cynhyrchion a dderbyniwyd) +StatusReceptionProcessed=Wedi'i brosesu +StatusReceptionDraftShort=Drafft +StatusReceptionValidatedShort=Wedi'i ddilysu +StatusReceptionProcessedShort=Wedi'i brosesu +ReceptionSheet=Taflen dderbyn +ConfirmDeleteReception=Ydych chi'n siŵr eich bod am ddileu'r derbyniad hwn? +ConfirmValidateReception=A ydych yn siŵr eich bod am ddilysu'r derbyniad hwn gyda'r cyfeirnod %s ? +ConfirmCancelReception=Ydych chi'n siŵr eich bod am ganslo'r derbyniad hwn? +StatsOnReceptionsOnlyValidated=Ystadegau a gynhaliwyd ar dderbynfeydd yn unig a ddilyswyd. Y dyddiad a ddefnyddir yw'r dyddiad dilysu derbyn (nid yw'r dyddiad dosbarthu arfaethedig bob amser yn hysbys). +SendReceptionByEMail=Anfonwch y dderbynfa trwy e-bost +SendReceptionRef=Cyflwyno derbyniad %s +ActionsOnReception=Digwyddiadau ar y dderbynfa +ReceptionCreationIsDoneFromOrder=Am y foment, mae creu derbyniad newydd yn cael ei wneud o'r Archeb Brynu. +ReceptionLine=Llinell dderbynfa +ProductQtyInReceptionAlreadySent=Swm cynnyrch o orchymyn gwerthu agored a anfonwyd eisoes +ProductQtyInSuppliersReceptionAlreadyRecevied=Swm cynnyrch o orchymyn cyflenwr agored a dderbyniwyd eisoes +ValidateOrderFirstBeforeReception=Rhaid i chi ddilysu'r archeb yn gyntaf cyn gallu gwneud derbyniadau. +ReceptionsNumberingModules=Modiwl rhifo ar gyfer derbynfeydd +ReceptionsReceiptModel=Templedi dogfennau ar gyfer derbynfeydd +NoMorePredefinedProductToDispatch=Dim mwy o gynhyrchion wedi'u diffinio ymlaen llaw i'w hanfon +ReceptionExist=Mae derbyniad yn bodoli +ByingPrice=Bying pris +ReceptionBackToDraftInDolibarr=Derbyn %s yn ôl i'r drafft +ReceptionClassifyClosedInDolibarr=Derbynfa %s wedi'i ddosbarthu Ar Gau +ReceptionUnClassifyCloseddInDolibarr=Derbynfa %s yn ail agor diff --git a/htdocs/langs/cy_GB/recruitment.lang b/htdocs/langs/cy_GB/recruitment.lang new file mode 100644 index 00000000000..a5798d61e07 --- /dev/null +++ b/htdocs/langs/cy_GB/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 = Recriwtio +# Module description 'ModuleRecruitmentDesc' +ModuleRecruitmentDesc = Rheoli a dilyn ymgyrchoedd recriwtio ar gyfer swyddi newydd + +# +# Admin page +# +RecruitmentSetup = Gosodiad recriwtio +Settings = Gosodiadau +RecruitmentSetupPage = Nodwch yma setiad y prif opsiynau ar gyfer y modiwl recriwtio +RecruitmentArea=Ardal recriwtio +PublicInterfaceRecruitmentDesc=Mae tudalennau cyhoeddus swyddi yn URLau cyhoeddus i'w dangos ac i'w hateb i swyddi agored. Mae un cyswllt gwahanol ar gyfer pob swydd agored, a geir ar bob cofnod swydd. +EnablePublicRecruitmentPages=Galluogi tudalennau cyhoeddus o swyddi agored + +# +# About page +# +About = Ynghylch +RecruitmentAbout = Am Recriwtio +RecruitmentAboutPage = Recriwtio am dudalen +NbOfEmployeesExpected=Ds disgwyliedig o weithwyr +JobLabel=Label swydd +WorkPlace=Gweithle +DateExpected=Dyddiad disgwyliedig +FutureManager=Rheolwr y dyfodol +ResponsibleOfRecruitement=Yn gyfrifol am recriwtio +IfJobIsLocatedAtAPartner=Os yw'r swydd wedi'i lleoli mewn lle partner +PositionToBeFilled=Safle swydd +PositionsToBeFilled=Swyddi swyddi +ListOfPositionsToBeFilled=Rhestr o swyddi +NewPositionToBeFilled=Swyddi newydd + +JobOfferToBeFilled=Swydd i'w llenwi +ThisIsInformationOnJobPosition=Gwybodaeth am y swydd i'w llenwi +ContactForRecruitment=Cyswllt ar gyfer recriwtio +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 +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 +AnswerCandidature=Ateb cais +YourCandidature=Eich cais +YourCandidatureAnswerMessage=Diolch i chi am eich cais.
    ... +JobClosedTextCandidateFound=Mae sefyllfa'r swydd ar gau. Mae'r swydd wedi'i llenwi. +JobClosedTextCanceled=Mae sefyllfa'r swydd ar gau. +ExtrafieldsJobPosition=Nodweddion cyflenwol (swyddi swyddi) +ExtrafieldsApplication=Nodweddion cyflenwol (ceisiadau swydd) +MakeOffer=Gwnewch gynnig +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/cy_GB/resource.lang b/htdocs/langs/cy_GB/resource.lang new file mode 100644 index 00000000000..fb7fe8005b6 --- /dev/null +++ b/htdocs/langs/cy_GB/resource.lang @@ -0,0 +1,39 @@ +# Dolibarr language file - Source file is en_US - resource +MenuResourceIndex=Adnoddau +MenuResourceAdd=Adnodd newydd +DeleteResource=Dileu adnodd +ConfirmDeleteResourceElement=Cadarnhewch ddileu'r adnodd ar gyfer yr elfen hon +NoResourceInDatabase=Dim adnodd yn y gronfa ddata. +NoResourceLinked=Dim adnodd yn gysylltiedig +ActionsOnResource=Digwyddiadau am yr adnodd hwn +ResourcePageIndex=Rhestr adnoddau +ResourceSingular=Adnodd +ResourceCard=Cerdyn adnoddau +AddResource=Creu adnodd +ResourceFormLabel_ref=Enw'r adnodd +ResourceType=Math o adnodd +ResourceFormLabel_description=Disgrifiad o'r adnodd + +ResourcesLinkedToElement=Adnoddau yn gysylltiedig ag elfen + +ShowResource=Dangos adnodd + +ResourceElementPage=Adnoddau elfen +ResourceCreatedWithSuccess=Adnodd wedi'i greu'n llwyddiannus +RessourceLineSuccessfullyDeleted=Wedi dileu'r llinell adnoddau yn llwyddiannus +RessourceLineSuccessfullyUpdated=Mae'r llinell adnoddau wedi'i diweddaru'n llwyddiannus +ResourceLinkedWithSuccess=Adnodd yn gysylltiedig â llwyddiant + +ConfirmDeleteResource=Cadarnhewch i ddileu'r adnodd hwn +RessourceSuccessfullyDeleted=Adnodd wedi'i ddileu yn llwyddiannus +DictionaryResourceType=Math o adnoddau + +SelectResource=Dewiswch adnodd + +IdResource=Adnodd id +AssetNumber=Rhif Serial +ResourceTypeCode=Cod math o adnodd +ImportDataset_resource_1=Adnoddau + +ErrorResourcesAlreadyInUse=Mae rhai adnoddau yn cael eu defnyddio +ErrorResourceUseInEvent=%s yn cael ei ddefnyddio mewn digwyddiad %s diff --git a/htdocs/langs/cy_GB/salaries.lang b/htdocs/langs/cy_GB/salaries.lang new file mode 100644 index 00000000000..c66eb70eac6 --- /dev/null +++ b/htdocs/langs/cy_GB/salaries.lang @@ -0,0 +1,27 @@ +# 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_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 +Salaries=Cyflogau +NewSalary=Cyflog newydd +AddSalary=Ychwanegu cyflog +NewSalaryPayment=Cerdyn cyflog newydd +AddSalaryPayment=Ychwanegu taliad cyflog +SalaryPayment=Taliad cyflog +SalariesPayments=Taliadau cyflogau +SalariesPaymentsOf=Taliadau cyflogau o %s +ShowSalaryPayment=Dangos taliad cyflog +THM=Cyfradd fesul awr ar gyfartaledd +TJM=Cyfradd ddyddiol ar gyfartaledd +CurrentSalary=Cyflog presennol +THMDescription=Gellir defnyddio'r gwerth hwn i gyfrifo cost yr amser a dreuliwyd ar brosiect a gofnodwyd gan ddefnyddwyr os defnyddir prosiect modiwl +TJMDescription=Mae'r gwerth hwn er gwybodaeth yn unig ar hyn o bryd ac ni chaiff ei ddefnyddio ar gyfer unrhyw gyfrifiad +LastSalaries=%s cyflogau diweddaraf +AllSalaries=Pob cyflog +SalariesStatistics=Ystadegau cyflog +SalariesAndPayments=Cyflogau a thaliadau +ConfirmDeleteSalaryPayment=Ydych chi am ddileu'r taliad cyflog hwn ? +FillFieldFirst=Llenwch y maes gweithiwr yn gyntaf +UpdateAmountWithLastSalary=Swm gosod gyda chyflog diwethaf diff --git a/htdocs/langs/cy_GB/sendings.lang b/htdocs/langs/cy_GB/sendings.lang new file mode 100644 index 00000000000..69ddd8b3d58 --- /dev/null +++ b/htdocs/langs/cy_GB/sendings.lang @@ -0,0 +1,76 @@ +# Dolibarr language file - Source file is en_US - sendings +RefSending=Cyf. cludo +Sending=Cludo +Sendings=Cludo +AllSendings=Pob Cludo +Shipment=Cludo +Shipments=Cludo +ShowSending=Dangos Cludo +Receivings=Derbyniadau Dosbarthu +SendingsArea=Ardal cludo +ListOfSendings=Rhestr o gludo nwyddau +SendingMethod=Dull cludo +LastSendings=Cludo %s diweddaraf +StatisticsOfSendings=Ystadegau ar gyfer cludo nwyddau +NbOfSendings=Nifer y llwythi +NumberOfShipmentsByMonth=Nifer y llwythi fesul mis +SendingCard=Cerdyn cludo +NewSending=Cludo newydd +CreateShipment=Creu llwyth +QtyShipped=Qty cludo +QtyShippedShort=Llong Qty. +QtyPreparedOrShipped=Qty wedi'i baratoi neu ei gludo +QtyToShip=Qty i llong +QtyToReceive=Qty i dderbyn +QtyReceived=Derbyniwyd Qty +QtyInOtherShipments=Qty mewn llwythi eraill +KeepToShip=Arhoswch i'r llong +KeepToShipShort=Aros +OtherSendingsForSameOrder=Cludo eraill ar gyfer yr archeb hon +SendingsAndReceivingForSameOrder=Cludo a derbynebau ar gyfer yr archeb hon +SendingsToValidate=Cludo i ddilysu +StatusSendingCanceled=Wedi'i ganslo +StatusSendingCanceledShort=Wedi'i ganslo +StatusSendingDraft=Drafft +StatusSendingValidated=Wedi'i ddilysu (cynhyrchion i'w llongio neu eu cludo eisoes) +StatusSendingProcessed=Wedi'i brosesu +StatusSendingDraftShort=Drafft +StatusSendingValidatedShort=Wedi'i ddilysu +StatusSendingProcessedShort=Wedi'i brosesu +SendingSheet=Taflen cludo +ConfirmDeleteSending=Ydych chi'n siŵr eich bod am ddileu'r llwyth hwn? +ConfirmValidateSending=A ydych yn siŵr eich bod am ddilysu'r llwyth hwn gyda'r cyfeirnod %s ? +ConfirmCancelSending=A ydych yn siŵr eich bod am ganslo'r llwyth hwn? +DocumentModelMerou=Model Merou A5 +WarningNoQtyLeftToSend=Rhybudd, dim cynhyrchion yn aros i gael eu cludo. +StatsOnShipmentsOnlyValidated=Dim ond ar gyfer llwythi dilys y mae ystadegau. Y dyddiad a ddefnyddir yw dyddiad dilysu'r cludo (nid yw'r dyddiad dosbarthu arfaethedig bob amser yn hysbys) +DateDeliveryPlanned=Dyddiad cyflwyno arfaethedig +RefDeliveryReceipt=Cyf derbynneb danfon +StatusReceipt=Derbynneb danfon statws +DateReceived=Dyddiad derbyn y danfoniad +ClassifyReception=Dosbarthu derbyniad +SendShippingByEMail=Anfon llwyth trwy e-bost +SendShippingRef=Cyflwyno llwyth %s +ActionsOnShipping=Digwyddiadau wrth gludo +LinkToTrackYourPackage=Dolen i olrhain eich pecyn +ShipmentCreationIsDoneFromOrder=Am y foment, mae creu llwyth newydd yn cael ei wneud o'r cofnod Archeb Gwerthu. +ShipmentLine=Llinell cludo +ProductQtyInCustomersOrdersRunning=Swm cynnyrch o orchmynion gwerthu agored +ProductQtyInSuppliersOrdersRunning=Swm cynnyrch o orchmynion prynu agored +ProductQtyInShipmentAlreadySent=Swm cynnyrch o orchymyn gwerthu agored a anfonwyd eisoes +ProductQtyInSuppliersShipmentAlreadyRecevied=Swm cynnyrch o orchmynion prynu agored a dderbyniwyd eisoes +NoProductToShipFoundIntoStock=Ni ddarganfuwyd unrhyw gynnyrch i'w gludo yn y warws %s . Cywirwch y stoc neu ewch yn ôl i ddewis warws arall. +WeightVolShort=Pwysau/Cyfrol. +ValidateOrderFirstBeforeShipment=Rhaid i chi ddilysu'r archeb yn gyntaf cyn gallu cludo nwyddau. + +# Sending methods +# ModelDocument +DocumentModelTyphon=Model dogfen mwy cyflawn ar gyfer derbynebau dosbarthu (logo...) +DocumentModelStorm=Model dogfen mwy cyflawn ar gyfer derbynebau dosbarthu a chytunedd meysydd ychwanegol (logo...) +Error_EXPEDITION_ADDON_NUMBER_NotDefined=Cyson EXPEDITION_ADDON_NUMBER heb ei ddiffinio +SumOfProductVolumes=Swm cyfeintiau cynnyrch +SumOfProductWeights=Swm pwysau'r cynnyrch + +# warehouse details +DetailWarehouseNumber= Manylion y warws +DetailWarehouseFormat= W:%s (Qty: %d) diff --git a/htdocs/langs/cy_GB/sms.lang b/htdocs/langs/cy_GB/sms.lang new file mode 100644 index 00000000000..e19e145952b --- /dev/null +++ b/htdocs/langs/cy_GB/sms.lang @@ -0,0 +1,51 @@ +# Dolibarr language file - Source file is en_US - sms +Sms=Sms +SmsSetup=Gosodiad SMS +SmsDesc=Mae'r dudalen hon yn caniatáu ichi ddiffinio opsiynau byd-eang ar nodweddion SMS +SmsCard=Cerdyn SMS +AllSms=Pob ymgyrch SMS +SmsTargets=Targedau +SmsRecipients=Targedau +SmsRecipient=Targed +SmsTitle=Disgrifiad +SmsFrom=Anfonwr +SmsTo=Targed +SmsTopic=Pwnc SMS +SmsText=Neges +SmsMessage=Neges SMS +ShowSms=Dangos SMS +ListOfSms=Rhestrwch ymgyrchoedd SMS +NewSms=Ymgyrch SMS newydd +EditSms=Golygu SMS +ResetSms=Anfoniad newydd +DeleteSms=Dileu ymgyrch SMS +DeleteASms=Dileu ymgyrch SMS +PreviewSms=SMS blaenorol +PrepareSms=Paratoi SMS +CreateSms=Creu SMS +SmsResult=Canlyniad anfon SMS +TestSms=Prawf SMS +ValidSms=Dilysu SMS +ApproveSms=Cymeradwyo SMS +SmsStatusDraft=Drafft +SmsStatusValidated=Wedi'i ddilysu +SmsStatusApproved=Cymmeradwy +SmsStatusSent=Anfonwyd +SmsStatusSentPartialy=Wedi'i anfon yn rhannol +SmsStatusSentCompletely=Wedi'i anfon yn llwyr +SmsStatusError=Gwall +SmsStatusNotSent=Heb ei anfon +SmsSuccessfulySent=Anfonwyd SMS yn gywir (o %s i %s) +ErrorSmsRecipientIsEmpty=Nifer y targed yn wag +WarningNoSmsAdded=Dim rhif ffôn newydd i'w ychwanegu at y rhestr darged +ConfirmValidSms=A ydych yn cadarnhau dilysiad yr ymgyrch hon? +NbOfUniqueSms=Nifer y rhifau ffôn unigryw +NbOfSms=Nifer y rhifau ffôn +ThisIsATestMessage=Neges prawf yw hon +SendSms=Anfon SMS +SmsInfoCharRemain=Nifer y nodau sy'n weddill +SmsInfoNumero= (fformat rhyngwladol h.y.: +33899701761) +DelayBeforeSending=Oedi cyn anfon (munudau) +SmsNoPossibleSenderFound=Dim anfonwr ar gael. Gwiriwch setup eich darparwr SMS. +SmsNoPossibleRecipientFound=Dim targed ar gael. Gwiriwch setup eich darparwr SMS. +DisableStopIfSupported=Analluogi neges STOP (os cefnogir) diff --git a/htdocs/langs/cy_GB/stocks.lang b/htdocs/langs/cy_GB/stocks.lang new file mode 100644 index 00000000000..05e0ffee42d --- /dev/null +++ b/htdocs/langs/cy_GB/stocks.lang @@ -0,0 +1,274 @@ +# Dolibarr language file - Source file is en_US - stocks +WarehouseCard=Cerdyn warws +Warehouse=Warws +Warehouses=Warysau +ParentWarehouse=Warws rhiant +NewWarehouse=Warws newydd / Lleoliad Stoc +WarehouseEdit=Addasu warws +MenuNewWarehouse=Warws newydd +WarehouseSource=Warws ffynhonnell +WarehouseSourceNotDefined=Dim warws wedi'i ddiffinio, +AddWarehouse=Creu warws +AddOne=Ychwanegu un +DefaultWarehouse=Warws diofyn +WarehouseTarget=Warws targed +ValidateSending=Cadarnhau cludo +CancelSending=Canslo cludo +DeleteSending=Dileu llwyth +Stock=Stoc +Stocks=Stociau +MissingStocks=Stociau coll +StockAtDate=Stociau ar y dyddiad +StockAtDateInPast=Dyddiad yn y gorffennol +StockAtDateInFuture=Dyddiad yn y dyfodol +StocksByLotSerial=Stociau fesul lot/cyfres +LotSerial=Llawer/Cyfresi +LotSerialList=Rhestr o lot/cyfresi +Movements=Symudiadau +ErrorWarehouseRefRequired=Mae angen enw cyfeirnod warws +ListOfWarehouses=Rhestr o warysau +ListOfStockMovements=Rhestr o symudiadau stoc +ListOfInventories=Rhestr o stocrestrau +MovementId=ID Symudiad +StockMovementForId=ID Symudiad %d +ListMouvementStockProject=Rhestr o symudiadau stoc sy'n gysylltiedig â'r prosiect +StocksArea=Ardal warysau +AllWarehouses=Pob warws +IncludeEmptyDesiredStock=Cynhwyswch hefyd stoc negyddol gyda stoc dymunol heb ei ddiffinio +IncludeAlsoDraftOrders=Cynhwyswch hefyd orchmynion drafft +Location=Lleoliad +LocationSummary=Enw byr y lleoliad +NumberOfDifferentProducts=Nifer o gynhyrchion unigryw +NumberOfProducts=Cyfanswm nifer y cynhyrchion +LastMovement=Symudiad diweddaraf +LastMovements=Symudiadau diweddaraf +Units=Unedau +Unit=Uned +StockCorrection=Cywiro stoc +CorrectStock=Stoc cywir +StockTransfer=Trosglwyddo stoc +TransferStock=Trosglwyddo stoc +MassStockTransferShort=Trosglwyddiad stoc torfol +StockMovement=Symudiad stoc +StockMovements=Symudiadau stoc +NumberOfUnit=Nifer o unedau +UnitPurchaseValue=Pris prynu uned +StockTooLow=Stoc yn rhy isel +StockLowerThanLimit=Stoc yn is na'r terfyn rhybuddio (%s) +EnhancedValue=Gwerth +EnhancedValueOfWarehouses=Gwerth warysau +UserWarehouseAutoCreate=Creu warws defnyddiwr yn awtomatig wrth greu defnyddiwr +AllowAddLimitStockByWarehouse=Rheoli hefyd y gwerth am y stoc isaf a'r stoc a ddymunir fesul pâr (warws cynnyrch) yn ychwanegol at y gwerth am y stoc lleiaf a'r stoc a ddymunir fesul cynnyrch +RuleForWarehouse=Rheol ar gyfer warysau +WarehouseAskWarehouseOnThirparty=Gosod warws ar Drydydd parti +WarehouseAskWarehouseDuringPropal=Gosod warws ar gynigion Masnachol +WarehouseAskWarehouseDuringOrder=Gosod warws ar Orchmynion Gwerthu +WarehouseAskWarehouseDuringProject=Gosod warws ar Brosiectau +UserDefaultWarehouse=Gosod warws ar Ddefnyddwyr +MainDefaultWarehouse=Warws diofyn +MainDefaultWarehouseUser=Defnyddiwch warws rhagosodedig ar gyfer pob defnyddiwr +MainDefaultWarehouseUserDesc=Trwy actifadu'r opsiwn hwn, wrth greu cynnyrch, bydd y warws a neilltuwyd i'r cynnyrch yn cael ei ddiffinio ar yr un hwn. Os na ddiffinnir warws ar y defnyddiwr, diffinnir y warws rhagosodedig. +IndependantSubProductStock=Mae stoc cynnyrch a stoc isgynnyrch yn annibynnol +QtyDispatched=Swm a anfonwyd +QtyDispatchedShort=Anfonwyd Qty +QtyToDispatchShort=Qty i anfon +OrderDispatch=Derbynebau eitem +RuleForStockManagementDecrease=Dewiswch Reol ar gyfer gostyngiad stoc yn awtomatig (mae gostyngiad â llaw bob amser yn bosibl, hyd yn oed os gweithredir rheol gostyngiad awtomatig) +RuleForStockManagementIncrease=Dewiswch Reol ar gyfer cynyddu stoc yn awtomatig (mae cynnydd â llaw bob amser yn bosibl, hyd yn oed os gweithredir rheol cynnydd awtomatig) +DeStockOnBill=Gostyngiad mewn stociau go iawn wrth ddilysu anfoneb cwsmer/nodyn credyd +DeStockOnValidateOrder=Gostwng stociau go iawn ar ddilysu archeb gwerthu +DeStockOnShipment=Gostwng stociau gwirioneddol ar ddilysu llongau +DeStockOnShipmentOnClosing=Gostwng stociau go iawn pan fydd llongau ar fin cau +ReStockOnBill=Cynyddu stociau go iawn wrth ddilysu anfoneb y gwerthwr/nodyn credyd +ReStockOnValidateOrder=Cynyddu stociau go iawn ar gymeradwyo archeb brynu +ReStockOnDispatchOrder=Cynyddu stociau go iawn wrth anfon nwyddau â llaw i warws, ar ôl derbyn archeb brynu nwyddau +StockOnReception=Cynyddu stociau go iawn ar ddilysu derbyniad +StockOnReceptionOnClosing=Cynyddu stociau go iawn pan fydd y dderbynfa ar gau +OrderStatusNotReadyToDispatch=Nid oes gan yr archeb statws eto neu ddim mwy sy'n caniatáu anfon cynhyrchion mewn warysau stoc. +StockDiffPhysicTeoric=Eglurhad am y gwahaniaeth rhwng stoc ffisegol a rhithwir +NoPredefinedProductToDispatch=Dim cynhyrchion rhagddiffiniedig ar gyfer y gwrthrych hwn. Felly nid oes angen anfon stoc. +DispatchVerb=Anfon +StockLimitShort=Terfyn ar gyfer rhybudd +StockLimit=Terfyn stoc ar gyfer rhybudd +StockLimitDesc=(gwag) yn golygu dim rhybudd.
    0 gellir ei ddefnyddio i sbarduno rhybudd cyn gynted ag y bydd y stoc yn wag. +PhysicalStock=Stoc Corfforol +RealStock=Stoc Go Iawn +RealStockDesc=Stoc ffisegol/go iawn yw'r stoc sydd yn y warysau ar hyn o bryd. +RealStockWillAutomaticallyWhen=Bydd y stoc go iawn yn cael ei addasu yn unol â'r rheol hon (fel y'i diffinnir yn y modiwl Stoc): +VirtualStock=Stoc rhithwir +VirtualStockAtDate=Stoc rhithwir yn y dyfodol +VirtualStockAtDateDesc=Stoc rhithwir unwaith y bydd yr holl orchmynion arfaethedig y bwriedir eu prosesu cyn y dyddiad a ddewiswyd wedi'u gorffen +VirtualStockDesc=Stoc rhithwir yw'r stoc wedi'i gyfrifo sydd ar gael unwaith y bydd yr holl gamau gweithredu agored / arfaethedig (sy'n effeithio ar stociau) wedi'u cau (archebion prynu wedi'u derbyn, archebion gwerthu wedi'u cludo, archebion gweithgynhyrchu wedi'u cynhyrchu, ac ati) +AtDate=Ar ddyddiad +IdWarehouse=Id warws +DescWareHouse=Disgrifiad warws +LieuWareHouse=Warws lleoleiddio +WarehousesAndProducts=Warysau a chynhyrchion +WarehousesAndProductsBatchDetail=Warysau a chynhyrchion (gyda manylion fesul lot/cyfres) +AverageUnitPricePMPShort=Pris cyfartalog wedi'i bwysoli +AverageUnitPricePMPDesc=Y pris uned cyfartalog mewnbwn y bu'n rhaid i ni ei gostio i gael 1 uned o gynnyrch i'n stoc. +SellPriceMin=Pris Uned Gwerthu +EstimatedStockValueSellShort=Gwerth am werthu +EstimatedStockValueSell=Gwerth am werthu +EstimatedStockValueShort=Mewnbwn gwerth stoc +EstimatedStockValue=Mewnbwn gwerth stoc +DeleteAWarehouse=Dileu warws +ConfirmDeleteWarehouse=A ydych yn siŵr eich bod am ddileu'r warws %s ? +PersonalStock=Stoc personol %s +ThisWarehouseIsPersonalStock=Mae'r warws hwn yn cynrychioli stoc personol o %s %s +SelectWarehouseForStockDecrease=Dewiswch warws i'w ddefnyddio i leihau stoc +SelectWarehouseForStockIncrease=Dewiswch warws i'w ddefnyddio ar gyfer cynyddu stoc +NoStockAction=Dim gweithredu stoc +DesiredStock=Stoc Dymunol +DesiredStockDesc=Y swm stoc hwn fydd y gwerth a ddefnyddir i lenwi'r stoc trwy nodwedd ailgyflenwi. +StockToBuy=Archebu +Replenishment=Ailgyflenwi +ReplenishmentOrders=Gorchmynion adnewyddu +VirtualDiffersFromPhysical=Yn ôl opsiynau cynnydd/gostyngiad stoc, gall stoc ffisegol a stoc rhithwir (stoc corfforol + archebion agored) fod yn wahanol +UseRealStockByDefault=Defnyddiwch stoc go iawn, yn lle stoc rhithwir, ar gyfer nodwedd ailgyflenwi +ReplenishmentCalculation=Y swm i'w archebu fydd (swm dymunol - stoc go iawn) yn lle (swm dymunol - stoc rhithwir) +UseVirtualStock=Defnyddiwch stoc rhithwir +UsePhysicalStock=Defnyddiwch stoc ffisegol +CurentSelectionMode=Modd dewis cyfredol +CurentlyUsingVirtualStock=Stoc rhithwir +CurentlyUsingPhysicalStock=Stoc ffisegol +RuleForStockReplenishment=Rheol ar gyfer ailgyflenwi stociau +SelectProductWithNotNullQty=Dewiswch o leiaf un cynnyrch gyda qty nid null a gwerthwr +AlertOnly= Rhybuddion yn unig +IncludeProductWithUndefinedAlerts = Cynhwyswch hefyd stoc negyddol ar gyfer cynhyrchion heb unrhyw faint dymunol wedi'i ddiffinio, i'w hadfer i 0 +WarehouseForStockDecrease=Bydd y warws %s yn cael ei ddefnyddio i leihau stoc +WarehouseForStockIncrease=Bydd y warws %s yn cael ei ddefnyddio ar gyfer cynyddu stoc +ForThisWarehouse=Ar gyfer y warws hwn +ReplenishmentStatusDesc=Dyma restr o'r holl gynhyrchion sydd â stoc sy'n is na'r stoc a ddymunir (neu'n is na'r gwerth rhybuddio os caiff blwch ticio "rhybudd yn unig" ei wirio). Gan ddefnyddio'r blwch ticio, gallwch greu archebion prynu i lenwi'r gwahaniaeth. +ReplenishmentStatusDescPerWarehouse=Os ydych chi eisiau ailgyflenwi yn seiliedig ar y maint a ddymunir a ddiffinnir fesul warws, rhaid ichi ychwanegu hidlydd ar y warws. +ReplenishmentOrdersDesc=Mae hon yn rhestr o'r holl archebion prynu agored gan gynnwys cynhyrchion wedi'u diffinio ymlaen llaw. Dim ond archebion agored gyda chynhyrchion wedi'u diffinio ymlaen llaw, felly mae archebion a allai effeithio ar stociau, i'w gweld yma. +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". +RecordMovement=Trosglwyddo cofnodion +ReceivingForSameOrder=Derbynebau ar gyfer yr archeb hon +StockMovementRecorded=Symudiadau stoc wedi'u cofnodi +RuleForStockAvailability=Rheolau ar ofynion stoc +StockMustBeEnoughForInvoice=Rhaid i lefel y stoc fod yn ddigon i ychwanegu cynnyrch/gwasanaeth at yr anfoneb (gwirir y stoc gyfredol go iawn wrth ychwanegu llinell at yr anfoneb beth bynnag fo'r rheol ar gyfer newid stoc yn awtomatig) +StockMustBeEnoughForOrder=Rhaid i lefel y stoc fod yn ddigon i ychwanegu cynnyrch/gwasanaeth i archeb (gwiriwch ar y stoc gyfredol go iawn wrth ychwanegu llinell mewn trefn beth bynnag fo'r rheol ar gyfer newid stoc yn awtomatig) +StockMustBeEnoughForShipment= Rhaid i lefel y stoc fod yn ddigon i ychwanegu cynnyrch/gwasanaeth at y llwyth (gwirir y stoc gyfredol go iawn wrth ychwanegu llinell at y llwyth, beth bynnag fo'r rheol ar gyfer newid stoc yn awtomatig) +MovementLabel=Label symudiad +TypeMovement=Cyfeiriad y symudiad +DateMovement=Dyddiad symud +InventoryCode=Symudiad neu god rhestr eiddo +IsInPackage=Wedi'i gynnwys yn y pecyn +WarehouseAllowNegativeTransfer=Gall stoc fod yn negyddol +qtyToTranferIsNotEnough=Nid oes gennych ddigon o stoc o'ch warws ffynhonnell ac nid yw eich gosodiad yn caniatáu stociau negyddol. +qtyToTranferLotIsNotEnough=Nid oes gennych ddigon o stoc, ar gyfer y rhif lot hwn, o'ch warws ffynhonnell ac nid yw'ch gosodiad yn caniatáu stociau negyddol (Qty ar gyfer cynnyrch '%s' gyda lot '%s' yn %s mewn warws '%s'). +ShowWarehouse=Dangos warws +MovementCorrectStock=Cywiro stoc ar gyfer cynnyrch %s +MovementTransferStock=Trosglwyddo stoc cynnyrch %s i warws arall +InventoryCodeShort=cyf./Mov. côd +NoPendingReceptionOnSupplierOrder=Dim derbyniad yn yr arfaeth oherwydd archeb brynu agored +ThisSerialAlreadyExistWithDifferentDate=Mae'r lot / rhif cyfresol ( %s ) eisoes yn bodoli ond gyda eatby gwahanol neu ddyddiad sellby (dod o hyd %s ond chi fynd i mewn %s ). +OpenAnyMovement=Agored (pob symudiad) +OpenInternal=Agored (symudiad mewnol yn unig) +UseDispatchStatus=Defnyddiwch statws anfon (cymeradwyaeth/gwrthod) ar gyfer llinellau cynnyrch wrth dderbyn archeb brynu +OptionMULTIPRICESIsOn=Mae opsiwn "sawl pris fesul segment" ymlaen. Mae'n golygu bod gan gynnyrch sawl pris gwerthu felly ni ellir cyfrifo gwerth am werthu +ProductStockWarehouseCreated=Terfyn stoc ar gyfer effro a'r stoc gorau posibl a ddymunir wedi'i greu'n gywir +ProductStockWarehouseUpdated=Terfyn stoc ar gyfer rhybudd a stoc optimaidd a ddymunir wedi'i ddiweddaru'n gywir +ProductStockWarehouseDeleted=Terfyn stoc ar gyfer rhybudd a'r stoc gorau posibl a ddymunir wedi'i ddileu'n gywir +AddNewProductStockWarehouse=Gosod terfyn newydd ar gyfer effro a stoc gorau a ddymunir +AddStockLocationLine=Lleihau maint yna cliciwch i rannu'r llinell +InventoryDate=Dyddiad stocrestr +Inventories=Stocrestrau +NewInventory=Stocrestr newydd +inventorySetup = Gosod Rhestr +inventoryCreatePermission=Creu rhestr newydd +inventoryReadPermission=Gweld rhestrau eiddo +inventoryWritePermission=Diweddaru rhestrau eiddo +inventoryValidatePermission=Dilysu rhestr eiddo +inventoryDeletePermission=Dileu rhestr eiddo +inventoryTitle=Stocrestr +inventoryListTitle=Stocrestrau +inventoryListEmpty=Dim rhestr eiddo ar y gweill +inventoryCreateDelete=Creu/Dileu rhestr eiddo +inventoryCreate=Creu newydd +inventoryEdit=Golygu +inventoryValidate=Wedi'i ddilysu +inventoryDraft=Rhedeg +inventorySelectWarehouse=Dewis warws +inventoryConfirmCreate=Creu +inventoryOfWarehouse=Rhestr ar gyfer warws: %s +inventoryErrorQtyAdd=Gwall: mae un swm yn llai na sero +inventoryMvtStock=Erbyn rhestr eiddo +inventoryWarningProductAlreadyExists=Mae'r cynnyrch hwn eisoes ar y rhestr +SelectCategory=Hidlydd categori +SelectFournisseur=Hidlydd gwerthwr +inventoryOnDate=Stocrestr +INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Bydd gan symudiadau stoc ddyddiad y rhestr eiddo (yn hytrach na dyddiad dilysu'r rhestr eiddo) +inventoryChangePMPPermission=Caniatáu i newid gwerth PMP ar gyfer cynnyrch +ColumnNewPMP=Uned newydd PMP +OnlyProdsInStock=Peidiwch ag ychwanegu cynnyrch heb stoc +TheoricalQty=qty damcaniaethol +TheoricalValue=qty damcaniaethol +LastPA=BP diwethaf +CurrentPA=BP cyfredol +RecordedQty=Wedi'i recordio Qty +RealQty=Qty go iawn +RealValue=Gwerth Gwirioneddol +RegulatedQty=Rheoleiddiedig Qty +AddInventoryProduct=Ychwanegu cynnyrch at y rhestr eiddo +AddProduct=Ychwanegu +ApplyPMP=Gwneud cais PMP +FlushInventory=Stocrestr fflysio +ConfirmFlushInventory=A ydych yn cadarnhau'r weithred hon? +InventoryFlushed=Rhestr wedi'i fflysio +ExitEditMode=Argraffiad ymadael +inventoryDeleteLine=Dileu llinell +RegulateStock=Rheoleiddio Stoc +ListInventory=Rhestr +StockSupportServices=Mae rheoli stoc yn cefnogi Gwasanaethau +StockSupportServicesDesc=Yn ddiofyn, dim ond cynhyrchion o'r math "cynnyrch" y gallwch chi eu stocio. Gallwch hefyd stocio cynnyrch o'r math "gwasanaeth" os yw'r ddau Wasanaethau modiwl a'r opsiwn hwn wedi'u galluogi. +ReceiveProducts=Derbyn eitemau +StockIncreaseAfterCorrectTransfer=Cynnydd trwy gywiro/trosglwyddo +StockDecreaseAfterCorrectTransfer=Gostyngiad trwy gywiriad/trosglwyddo +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 +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 +StockAtDateFutureDesc=Gallwch weld y stoc yma (stoc rhithwir) ar ddyddiad penodol yn y dyfodol +CurrentStock=Stoc gyfredol +InventoryRealQtyHelp=Gosod gwerth i 0 i ailosod qty
    Cadw maes yn wag, neu dynnu llinell, i'w gadw'n ddigyfnewid +UpdateByScaning=Cwblhewch qty go iawn trwy sganio +UpdateByScaningProductBarcode=Diweddaru trwy sgan (cod bar cynnyrch) +UpdateByScaningLot=Diweddaru trwy sgan (lot | cod bar cyfresol) +DisableStockChangeOfSubProduct=Analluogi'r newid stoc ar gyfer holl isgynhyrchion y Pecyn hwn yn ystod y symudiad hwn. +ImportFromCSV=Mewnforio rhestr CSV o symudiadau +ChooseFileToImport=Llwythwch ffeil i fyny ac yna cliciwch ar yr eicon %s i ddewis ffeil fel ffeil mewnforio ffynhonnell... +SelectAStockMovementFileToImport=dewiswch ffeil symud stoc i'w mewnforio +InfoTemplateImport=Mae angen y fformat hwn ar y ffeil a uwchlwythwyd (* yn feysydd gorfodol):
    Source Warehouse* | Warws Targed* | Cynnyrch* | Nifer* | Rhaid i wahanydd nod lot/cyfres
    CSV fod yn " %s " +LabelOfInventoryMovemement=Rhestr %s +ReOpen=Ailagor +ConfirmFinish=A ydych yn cadarnhau cau'r rhestr eiddo? Bydd hyn yn cynhyrchu'r holl symudiadau stoc i ddiweddaru'ch stoc i'r qty go iawn y gwnaethoch chi ei roi yn y rhestr eiddo. +ObjectNotFound=%s heb ei ddarganfod +MakeMovementsAndClose=Cynhyrchu symudiadau a chau +AutofillWithExpected=Llenwch swm go iawn gyda'r maint disgwyliedig +ShowAllBatchByDefault=Yn ddiofyn, dangoswch fanylion swp ar y tab "stoc" cynnyrch +CollapseBatchDetailHelp=Gallwch osod arddangosiad diofyn manylion swp mewn cyfluniad modiwl stociau +ErrorWrongBarcodemode=Modd cod bar anhysbys +ProductDoesNotExist=Nid yw'r cynnyrch yn bodoli +ErrorSameBatchNumber=Canfuwyd sawl cofnod ar gyfer y swp rhif yn y daflen rhestr eiddo. Dim ffordd i wybod pa un i'w gynyddu. +ProductBatchDoesNotExist=Nid yw cynnyrch gyda swp/cyfres yn bodoli +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. +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 +NoWarehouseDefinedForTerminal=Dim warws wedi'i ddiffinio ar gyfer terfynell +ClearQtys=Clirio pob swm diff --git a/htdocs/langs/cy_GB/stripe.lang b/htdocs/langs/cy_GB/stripe.lang new file mode 100644 index 00000000000..04b1fadf885 --- /dev/null +++ b/htdocs/langs/cy_GB/stripe.lang @@ -0,0 +1,71 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Gosod modiwl stripe +StripeDesc=Cynigiwch dudalen dalu ar-lein i'ch cwsmeriaid ar gyfer taliadau gyda chardiau credyd/debyd trwy Stripe . Gellir defnyddio hwn i ganiatáu i'ch cwsmeriaid wneud taliadau ad-hoc neu ar gyfer taliadau sy'n ymwneud â gwrthrych arbennig o Dolibarr (anfoneb, archeb, ...) +StripeOrCBDoPayment=Talu gyda cherdyn credyd neu Stripe +FollowingUrlAreAvailableToMakePayments=Mae URLs canlynol ar gael i gynnig tudalen i gwsmer i wneud taliad ar wrthrychau Dolibarr +PaymentForm=Ffurflen talu +WelcomeOnPaymentPage=Croeso i'n gwasanaeth talu ar-lein +ThisScreenAllowsYouToPay=Mae'r sgrin hon yn caniatáu ichi wneud taliad ar-lein i %s. +ThisIsInformationOnPayment=Dyma wybodaeth am daliad i'w wneud +ToComplete=I gwblhau +YourEMail=E-bost i dderbyn cadarnhad taliad +STRIPE_PAYONLINE_SENDEMAIL=Hysbysiad e-bost ar ôl ymgais i dalu (llwyddiant neu fethiant) +Creditor=Credydwr +PaymentCode=Cod talu +StripeDoPayment=Talu gyda Stripe +YouWillBeRedirectedOnStripe=Byddwch yn cael eich ailgyfeirio ar dudalen Stripe ddiogel i fewnbynnu gwybodaeth cerdyn credyd i chi +Continue=Nesaf +ToOfferALinkForOnlinePayment=URL ar gyfer taliad %s +ToOfferALinkForOnlinePaymentOnOrder=URL i gynnig tudalen dalu ar-lein %s ar gyfer archeb gwerthu +ToOfferALinkForOnlinePaymentOnInvoice=URL i gynnig tudalen dalu ar-lein %s ar gyfer anfoneb cwsmer +ToOfferALinkForOnlinePaymentOnContractLine=URL i gynnig tudalen dalu ar-lein %s ar gyfer llinell gontract +ToOfferALinkForOnlinePaymentOnFreeAmount=URL i gynnig tudalen talu ar-lein %s o unrhyw swm heb unrhyw wrthrych yn bodoli +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL i gynnig tudalen dalu ar-lein %s ar gyfer tanysgrifiad aelod +ToOfferALinkForOnlinePaymentOnDonation=URL i gynnig tudalen dalu ar-lein %s ar gyfer talu rhodd +YouCanAddTagOnUrl=Gallwch hefyd ychwanegu paramedr url &tag= value i unrhyw un o'r URLau hynny (gorfodol yn unig ar gyfer taliad nad yw'n gysylltiedig â gwrthrych) i ychwanegu eich tag talu eich hun.
    Ar gyfer URL taliadau heb unrhyw wrthrych yn bodoli, gallwch hefyd ychwanegu'r paramedr &noidempotency=1 fel y gellir defnyddio'r un cyswllt gyda'r un tag sawl gwaith (gall rhai dull talu gyfyngu'r taliad i 1 ar gyfer pob cyswllt gwahanol heb hwn paramedr) +SetupStripeToHavePaymentCreatedAutomatically=Gosodwch eich Stripe gydag url %s i gael taliad wedi'i greu'n awtomatig pan gaiff ei ddilysu gan Stripe. +AccountParameter=Paramedrau cyfrif +UsageParameter=Paramedrau defnydd +InformationToFindParameters=Helpwch i ddod o hyd i'ch gwybodaeth cyfrif %s +STRIPE_CGI_URL_V2=Url o fodiwl CGI Stripe i'w dalu +CSSUrlForPaymentForm=url dalen arddull CSS ar gyfer ffurflen dalu +NewStripePaymentReceived=Derbyniwyd taliad Stripe Newydd +NewStripePaymentFailed=Ceisio taliad Stripe newydd ond methodd +FailedToChargeCard=Wedi methu â chodi'r cerdyn +STRIPE_TEST_SECRET_KEY=Allwedd prawf cyfrinachol +STRIPE_TEST_PUBLISHABLE_KEY=Allwedd prawf cyhoeddadwy +STRIPE_TEST_WEBHOOK_KEY=Allwedd prawf bachyn gwe +STRIPE_LIVE_SECRET_KEY=Allwedd fyw gyfrinachol +STRIPE_LIVE_PUBLISHABLE_KEY=Allwedd fyw y gellir ei chyhoeddi +STRIPE_LIVE_WEBHOOK_KEY=Webhook allwedd byw +ONLINE_PAYMENT_WAREHOUSE=Stoc i'w ddefnyddio ar gyfer gostyngiad stoc pan wneir taliad ar-lein
    (TODO Pan fydd opsiwn i leihau stoc yn cael ei wneud ar weithred ar anfoneb a'r taliad ar-lein yn cynhyrchu'r anfoneb ei hun ?) +StripeLiveEnabled=Stripe live wedi'i alluogi (modd prawf / blwch tywod fel arall) +StripeImportPayment=Mewnforio taliadau Stripe +ExampleOfTestCreditCard=Enghraifft o gerdyn credyd ar gyfer prawf: %s => dilys, %s => gwall CVC, %s => wedi dod i ben, %s => tâl yn methu +StripeGateways=Pyrth streipen +OAUTH_STRIPE_TEST_ID=ID Cleient Stripe Connect (ca_...) +OAUTH_STRIPE_LIVE_ID=ID Cleient Stripe Connect (ca_...) +BankAccountForBankTransfer=Cyfrif banc ar gyfer taliadau cronfa +StripeAccount=Cyfrif stripe +StripeChargeList=Rhestr o daliadau Stripe +StripeTransactionList=Rhestr o drafodion Stripe +StripeCustomerId=ID cwsmer stripe +StripePaymentModes=Dulliau talu streipen +LocalID=ID lleol +StripeID=ID streipen +NameOnCard=enw ar Carden +CardNumber=Rhif cerdyn +ExpiryDate=Dyddiad Dod i ben +CVN=CVN +DeleteACard=Dileu Cerdyn +ConfirmDeleteCard=Ydych chi'n siŵr eich bod am ddileu'r cerdyn Credyd neu Ddebyd hwn? +CreateCustomerOnStripe=Creu cwsmer ar Stripe +CreateCardOnStripe=Creu cerdyn ar Stripe +ShowInStripe=Dangos yn Stripe +StripeUserAccountForActions=Cyfrif defnyddiwr i'w ddefnyddio ar gyfer hysbysiad e-bost o rai digwyddiadau Stripe (taliadau Stripe) +StripePayoutList=Rhestr o daliadau Stripe +ToOfferALinkForTestWebhook=Dolen i setup Stripe WebHook i ffonio'r IPN (modd prawf) +ToOfferALinkForLiveWebhook=Dolen i'r gosodiad Stripe WebHook i ffonio'r IPN (modd byw) +PaymentWillBeRecordedForNextPeriod=Bydd taliad yn cael ei gofnodi ar gyfer y cyfnod nesaf. +ClickHereToTryAgain= Cliciwch yma i geisio eto... +CreationOfPaymentModeMustBeDoneFromStripeInterface=Oherwydd rheolau Dilysu Cwsmeriaid Cryf, rhaid creu cerdyn o swyddfa gefn Stripe. Gallwch glicio yma i droi cofnod cwsmer Stripe ymlaen: %s diff --git a/htdocs/langs/cy_GB/supplier_proposal.lang b/htdocs/langs/cy_GB/supplier_proposal.lang new file mode 100644 index 00000000000..628335c4ee1 --- /dev/null +++ b/htdocs/langs/cy_GB/supplier_proposal.lang @@ -0,0 +1,58 @@ +# Dolibarr language file - Source file is en_US - supplier_proposal +SupplierProposal=Cynigion masnachol gwerthwyr +supplier_proposalDESC=Rheoli ceisiadau pris i gyflenwyr +SupplierProposalNew=Cais pris newydd +CommRequest=Cais pris +CommRequests=Ceisiadau pris +SearchRequest=Dod o hyd i gais +DraftRequests=Ceisiadau drafft +SupplierProposalsDraft=Cynigion gwerthwr drafft +LastModifiedRequests=Ceisiadau pris wedi'u haddasu %s diweddaraf +RequestsOpened=Ceisiadau pris agored +SupplierProposalArea=Ardal cynigion gwerthwr +SupplierProposalShort=Cynnig gwerthwr +SupplierProposals=Cynigion gwerthwr +SupplierProposalsShort=Cynigion gwerthwr +AskPrice=Cais pris +NewAskPrice=Cais pris newydd +ShowSupplierProposal=Dangos cais pris +AddSupplierProposal=Creu cais pris +SupplierProposalRefFourn=Gwerthwr cyf +SupplierProposalDate=Dyddiad dosbarthu +SupplierProposalRefFournNotice=Cyn cau i "Derbyniwyd", meddyliwch am ddeall geirda cyflenwyr. +ConfirmValidateAsk=A ydych yn siŵr eich bod am ddilysu'r cais pris hwn o dan yr enw %s ? +DeleteAsk=Dileu cais +ValidateAsk=Dilysu cais +SupplierProposalStatusDraft=Drafft (angen ei ddilysu) +SupplierProposalStatusValidated=Wedi'i ddilysu (cais ar agor) +SupplierProposalStatusClosed=Ar gau +SupplierProposalStatusSigned=Derbyniwyd +SupplierProposalStatusNotSigned=Gwrthodwyd +SupplierProposalStatusDraftShort=Drafft +SupplierProposalStatusValidatedShort=Wedi'i ddilysu +SupplierProposalStatusClosedShort=Ar gau +SupplierProposalStatusSignedShort=Derbyniwyd +SupplierProposalStatusNotSignedShort=Gwrthodwyd +CopyAskFrom=Creu cais pris trwy gopïo cais presennol +CreateEmptyAsk=Creu cais gwag +ConfirmCloneAsk=A ydych yn siŵr eich bod am glonio'r cais pris %s ? +ConfirmReOpenAsk=A ydych yn siŵr eich bod am agor y cais pris yn ôl %s ? +SendAskByMail=Anfon cais pris drwy'r post +SendAskRef=Anfon y cais pris %s +SupplierProposalCard=Cerdyn cais +ConfirmDeleteAsk=A ydych yn siŵr eich bod am ddileu'r cais pris hwn %s ? +ActionsOnSupplierProposal=Digwyddiadau ar gais pris +DocModelAuroreDescription=Model cais cyflawn (logo...) +CommercialAsk=Cais pris +DefaultModelSupplierProposalCreate=Creu model diofyn +DefaultModelSupplierProposalToBill=Templed rhagosodedig wrth gau cais pris (derbynnir) +DefaultModelSupplierProposalClosed=Templed rhagosodedig wrth gau cais pris (gwrthodwyd) +ListOfSupplierProposals=Rhestr o geisiadau cynnig gwerthwr +ListSupplierProposalsAssociatedProject=Rhestr o gynigion gwerthwyr sy'n gysylltiedig â'r prosiect +SupplierProposalsToClose=Cynigion gwerthwr i gau +SupplierProposalsToProcess=Cynigion gwerthwr i'w prosesu +LastSupplierProposals=Ceisiadau pris %s diweddaraf +AllPriceRequests=Pob cais +TypeContact_supplier_proposal_external_SHIPPING=Cyswllt gwerthwr ar gyfer danfon +TypeContact_supplier_proposal_external_BILLING=Cyswllt gwerthwr ar gyfer bilio +TypeContact_supplier_proposal_external_SERVICE=Cynnig dilynol cynrychiolydd diff --git a/htdocs/langs/cy_GB/suppliers.lang b/htdocs/langs/cy_GB/suppliers.lang new file mode 100644 index 00000000000..199227a9ab2 --- /dev/null +++ b/htdocs/langs/cy_GB/suppliers.lang @@ -0,0 +1,56 @@ +# Dolibarr language file - Source file is en_US - vendors +Suppliers=Gwerthwyr +SuppliersInvoice=Anfoneb gwerthwr +SupplierInvoices=Anfonebau gwerthwr +ShowSupplierInvoice=Dangos Anfoneb Gwerthwr +NewSupplier=Gwerthwr newydd +History=Hanes +ListOfSuppliers=Rhestr o werthwyr +ShowSupplier=Dangos gwerthwr +OrderDate=Dyddiad archebu +BuyingPriceMin=Pris prynu gorau +BuyingPriceMinShort=Pris prynu gorau +TotalBuyingPriceMinShort=Cyfanswm prisiau prynu is-gynhyrchion +TotalSellingPriceMinShort=Cyfanswm prisiau gwerthu is-gynhyrchion +SomeSubProductHaveNoPrices=Nid oes gan rai is-gynhyrchion unrhyw bris wedi'i ddiffinio +AddSupplierPrice=Ychwanegu pris prynu +ChangeSupplierPrice=Newid pris prynu +SupplierPrices=Prisiau gwerthwyr +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Mae'r cyfeirnod gwerthwr hwn eisoes yn gysylltiedig â chynnyrch: %s +NoRecordedSuppliers=Dim gwerthwr wedi'i gofnodi +SupplierPayment=Taliad gwerthwr +SuppliersArea=Ardal gwerthwr +RefSupplierShort=Cyf. gwerthwr +Availability=Argaeledd +ExportDataset_fournisseur_1=Anfonebau gwerthwr a manylion anfonebau +ExportDataset_fournisseur_2=Anfonebau a thaliadau gwerthwr +ExportDataset_fournisseur_3=Archebion prynu a manylion archeb +ApproveThisOrder=Cymeradwyo'r gorchymyn hwn +ConfirmApproveThisOrder=A ydych yn siŵr eich bod am gymeradwyo archeb %s ? +DenyingThisOrder=Gwadu y gorchymyn hwn +ConfirmDenyingThisOrder=A ydych yn siŵr eich bod am wrthod y gorchymyn hwn %s ? +ConfirmCancelThisOrder=A ydych yn siŵr eich bod am ganslo'r archeb hon %s ? +AddSupplierOrder=Creu Archeb Brynu +AddSupplierInvoice=Creu anfoneb gwerthwr +ListOfSupplierProductForSupplier=Rhestr o gynhyrchion a phrisiau ar gyfer gwerthwr %s +SentToSuppliers=Anfon at werthwyr +ListOfSupplierOrders=Rhestr o orchmynion prynu +MenuOrdersSupplierToBill=Archebion prynu i anfoneb +NbDaysToDelivery=Oedi danfon (dyddiau) +DescNbDaysToDelivery=Yr oedi cyflenwi hiraf o'r cynhyrchion o'r archeb hon +SupplierReputation=Enw da'r gwerthwr +ReferenceReputation=Enw da cyfeirio +DoNotOrderThisProductToThisSupplier=Peidiwch ag archebu +NotTheGoodQualitySupplier=Ansawdd Isel +ReputationForThisProduct=Enw da +BuyerName=Enw prynwr +AllProductServicePrices=Pob pris cynnyrch/gwasanaeth +AllProductReferencesOfSupplier=Pob cyfeiriad gan y gwerthwr +BuyingPriceNumShort=Prisiau gwerthwyr +RepeatableSupplierInvoice=Templed anfoneb cyflenwr +RepeatableSupplierInvoices=Templed anfonebau cyflenwyr +RepeatableSupplierInvoicesList=Templed anfonebau cyflenwyr +RecurringSupplierInvoices=Anfonebau cyflenwyr cylchol +ToCreateAPredefinedSupplierInvoice=Er mwyn creu anfoneb cyflenwr templed, rhaid i chi greu anfoneb safonol, yna, heb ei ddilysu, cliciwch ar y botwm "%s". +GeneratedFromSupplierTemplate=Wedi'i gynhyrchu o dempled anfonebau cyflenwr %s +SupplierInvoiceGeneratedFromTemplate=Anfoneb cyflenwr %s Wedi'i gynhyrchu o dempled anfonebau cyflenwr %s diff --git a/htdocs/langs/cy_GB/ticket.lang b/htdocs/langs/cy_GB/ticket.lang new file mode 100644 index 00000000000..56b902682eb --- /dev/null +++ b/htdocs/langs/cy_GB/ticket.lang @@ -0,0 +1,350 @@ +# 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=Tocynnau +Module56000Desc=System docynnau ar gyfer rheoli cyhoeddi neu geisiadau + +Permission56001=Gweler tocynnau +Permission56002=Addasu tocynnau +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) + +TicketDictType=Tocyn - Mathau +TicketDictCategory=Tocyn - Grwpiau +TicketDictSeverity=Tocyn - Difrifoldeb +TicketDictResolution=Tocyn - Datrys + +TicketTypeShortCOM=Cwestiwn masnachol +TicketTypeShortHELP=Cais am gymorth swyddogaethol +TicketTypeShortISSUE=Mater neu fyg +TicketTypeShortPROBLEM=Problem +TicketTypeShortREQUEST=Cais am newid neu welliant +TicketTypeShortPROJET=Prosiect +TicketTypeShortOTHER=Arall + +TicketSeverityShortLOW=Isel +TicketSeverityShortNORMAL=Arferol +TicketSeverityShortHIGH=Uchel +TicketSeverityShortBLOCKING=Critigol, Blocio + +TicketCategoryShortOTHER=Arall + +ErrorBadEmailAddress=Maes '%s' yn anghywir +MenuTicketMyAssign=Fy nhocynnau +MenuTicketMyAssignNonClosed=Fy nhocynnau agored +MenuListNonClosed=Tocynnau agored + +TypeContact_ticket_internal_CONTRIBUTOR=Cyfranwr +TypeContact_ticket_internal_SUPPORTTEC=Defnyddiwr wedi'i neilltuo +TypeContact_ticket_external_SUPPORTCLI=Cyswllt cwsmeriaid / olrhain digwyddiadau +TypeContact_ticket_external_CONTRIBUTOR=Cyfrannwr allanol + +OriginEmail=Ebost y Gohebydd +Notify_TICKET_SENTBYMAIL=Anfon neges tocyn trwy e-bost + +# Status +Read=Darllen +Assigned=Wedi'i neilltuo +InProgress=Ar y gweill +NeedMoreInformation=Aros am adborth gohebydd +NeedMoreInformationShort=Aros am adborth +Answered=Atebwyd +Waiting=Aros +SolvedClosed=Wedi'i ddatrys +Deleted=Wedi'i ddileu + +# Dict +Type=Math +Severity=Difrifoldeb +TicketGroupIsPublic=Mae'r grŵp yn gyhoeddus +TicketGroupIsPublicDesc=Os yw grŵp tocynnau yn gyhoeddus, bydd yn weladwy ar y ffurf wrth greu tocyn o'r rhyngwyneb cyhoeddus + +# Email templates +MailToSendTicketMessage=I anfon e-bost o neges tocyn + +# +# Admin page +# +TicketSetup=Gosod modiwl tocyn +TicketSettings=Gosodiadau +TicketSetupPage= +TicketPublicAccess=Mae rhyngwyneb cyhoeddus nad oes angen unrhyw ddull adnabod ar gael yn yr url a ganlyn +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 +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 +TicketNewEmailBodyHelp=Bydd y testun a nodir yma yn cael ei fewnosod yn yr e-bost yn cadarnhau creu tocyn newydd o'r rhyngwyneb cyhoeddus. Ychwanegir gwybodaeth am ymgynghoriad y tocyn yn awtomatig. +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. +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) +TicketPublicInterfaceTextHomeLabelAdmin=Testun croeso y rhyngwyneb cyhoeddus +TicketPublicInterfaceTextHome=Gallwch greu tocyn cymorth neu weld sy'n bodoli eisoes o'i docyn olrhain dynodwr. +TicketPublicInterfaceTextHomeHelpAdmin=Bydd y testun a ddiffinnir yma yn ymddangos ar hafan y rhyngwyneb cyhoeddus. +TicketPublicInterfaceTopicLabelAdmin=Teitl rhyngwyneb +TicketPublicInterfaceTopicHelp=Bydd y testun hwn yn ymddangos fel teitl y rhyngwyneb cyhoeddus. +TicketPublicInterfaceTextHelpMessageLabelAdmin=Helpu neges destun i'r cofnod neges +TicketPublicInterfaceTextHelpMessageHelpAdmin=Bydd y testun hwn yn ymddangos uwchben ardal mewnbwn neges y defnyddiwr. +ExtraFieldsTicket=Priodoleddau ychwanegol +TicketCkEditorEmailNotActivated=Nid yw golygydd HTML wedi'i actifadu. Rhowch gynnwys FCKEDITOR_ENABLE_MAIL i 1 i'w gael. +TicketsDisableEmail=Peidiwch ag anfon e-byst ar gyfer creu tocynnau neu recordio negeseuon +TicketsDisableEmailHelp=Yn ddiofyn, anfonir e-byst pan fydd tocynnau neu negeseuon newydd yn cael eu creu. Galluogi'r opsiwn hwn i analluogi *pob* hysbysiad e-bost +TicketsLogEnableEmail=Galluogi log trwy e-bost +TicketsLogEnableEmailHelp=Ar bob newid, bydd e-bost yn cael ei anfon **at bob cyswllt** sy'n gysylltiedig â'r tocyn. +TicketParams=Paramau +TicketsShowModuleLogo=Arddangos logo'r modiwl yn y rhyngwyneb cyhoeddus +TicketsShowModuleLogoHelp=Galluogi'r opsiwn hwn i guddio'r modiwl logo ar dudalennau'r rhyngwyneb cyhoeddus +TicketsShowCompanyLogo=Arddangos logo'r cwmni yn y rhyngwyneb cyhoeddus +TicketsShowCompanyLogoHelp=Galluogi'r opsiwn hwn i guddio logo'r prif gwmni ar dudalennau'r rhyngwyneb cyhoeddus +TicketsEmailAlsoSendToMainAddress=Anfonwch hysbysiad hefyd i'r prif gyfeiriad e-bost +TicketsEmailAlsoSendToMainAddressHelp=Galluogi'r opsiwn hwn hefyd i anfon e-bost i'r cyfeiriad a ddiffinnir yn y gosodiad "%s" (gweler y tab "%s") +TicketsLimitViewAssignedOnly=Cyfyngu'r arddangosfa i docynnau a neilltuwyd i'r defnyddiwr presennol (ddim yn effeithiol ar gyfer defnyddwyr allanol, bob amser yn gyfyngedig i'r trydydd parti y maent yn dibynnu arno) +TicketsLimitViewAssignedOnlyHelp=Dim ond tocynnau a neilltuwyd i'r defnyddiwr presennol fydd yn weladwy. Nid yw'n berthnasol i ddefnyddiwr sydd â hawliau rheoli tocynnau. +TicketsActivatePublicInterface=Ysgogi rhyngwyneb cyhoeddus +TicketsActivatePublicInterfaceHelp=Mae rhyngwyneb cyhoeddus yn caniatáu i unrhyw ymwelwyr greu tocynnau. +TicketsAutoAssignTicket=Neilltuo'r defnyddiwr a greodd y tocyn yn awtomatig +TicketsAutoAssignTicketHelp=Wrth greu tocyn, gellir neilltuo'r defnyddiwr yn awtomatig i'r tocyn. +TicketNumberingModules=Modiwl rhifo tocynnau +TicketsModelModule=Templedi dogfennau ar gyfer tocynnau +TicketNotifyTiersAtCreation=Hysbysu trydydd parti adeg creu +TicketsDisableCustomerEmail=Analluoga bob amser e-byst pan fydd tocyn yn cael ei greu o ryngwyneb cyhoeddus +TicketsPublicNotificationNewMessage=Anfonwch e-bost(au) pan fydd neges/sylwad newydd yn cael ei ychwanegu at docyn +TicketsPublicNotificationNewMessageHelp=Anfon e-bost(au) pan fydd neges newydd yn cael ei hychwanegu o'r rhyngwyneb cyhoeddus (at ddefnyddiwr penodedig neu'r e-bost hysbysiadau i (diweddaru) a/neu'r e-bost hysbysiadau i) +TicketPublicNotificationNewMessageDefaultEmail=E-bost hysbysiadau i (diweddaru) +TicketPublicNotificationNewMessageDefaultEmailHelp=Anfonwch e-bost i'r cyfeiriad hwn ar gyfer pob hysbysiad neges newydd os nad oes gan y tocyn ddefnyddiwr wedi'i neilltuo iddo neu os nad oes gan y defnyddiwr unrhyw e-bost hysbys. +TicketsAutoReadTicket=Marciwch y tocyn yn awtomatig wedi'i ddarllen (pan gaiff ei greu o swyddfa gefn) +TicketsAutoReadTicketHelp=Marciwch y tocyn yn awtomatig wedi'i ddarllen pan gaiff ei greu o swyddfa gefn. Pan fydd tocyn yn cael ei greu o'r rhyngwyneb cyhoeddus, erys y tocyn gyda'r statws "Heb ei Ddarllen". +TicketsDelayBeforeFirstAnswer=Dylai tocyn newydd dderbyn ateb cyntaf cyn (oriau): +TicketsDelayBeforeFirstAnswerHelp=Os na fydd tocyn newydd wedi cael ateb ar ôl y cyfnod hwn (mewn oriau), bydd eicon rhybudd pwysig yn cael ei arddangos yng ngolwg y rhestr. +TicketsDelayBetweenAnswers=Ni ddylai tocyn heb ei ddatrys fod yn anactif yn ystod (oriau): +TicketsDelayBetweenAnswersHelp=Os nad yw tocyn heb ei ddatrys sydd eisoes wedi derbyn ateb wedi cael rhyngweithio pellach ar ôl y cyfnod hwn (mewn oriau), bydd eicon rhybudd yn cael ei arddangos yng ngolwg y rhestr. +TicketsAutoNotifyClose=Hysbysu trydydd parti yn awtomatig wrth gau tocyn +TicketsAutoNotifyCloseHelp=Wrth gau tocyn, cynigir i chi anfon neges at un o gysylltiadau trydydd parti. Ar gau torfol, bydd neges yn cael ei hanfon at un cyswllt y trydydd parti sy'n gysylltiedig â'r tocyn. +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. + +# +# Index & list page +# +TicketsIndex=Ardal tocynnau +TicketList=Rhestr o docynnau +TicketAssignedToMeInfos=Mae'r dudalen hon yn dangos rhestr docynnau a grëwyd gan neu a neilltuwyd i'r defnyddiwr presennol +NoTicketsFound=Heb ganfod tocyn +NoUnreadTicketsFound=Ni ddaethpwyd o hyd i docyn heb ei ddarllen +TicketViewAllTickets=Gweld pob tocyn +TicketViewNonClosedOnly=Gweld tocynnau agored yn unig +TicketStatByStatus=Tocynnau yn ôl statws +OrderByDateAsc=Trefnu yn ôl dyddiad esgynnol +OrderByDateDesc=Trefnu yn ôl dyddiad disgyn +ShowAsConversation=Dangos fel rhestr sgyrsiau +MessageListViewType=Dangoswch fel rhestr tabl +ConfirmMassTicketClosingSendEmail=Anfon e-byst yn awtomatig wrth gau tocynnau +ConfirmMassTicketClosingSendEmailQuestion=Ydych chi eisiau hysbysu trydydd parti wrth gau'r tocynnau hyn ? + +# +# Ticket card +# +Ticket=Tocyn +TicketCard=Cerdyn tocyn +CreateTicket=Creu tocyn +EditTicket=Golygu tocyn +TicketsManagement=Rheoli Tocynnau +CreatedBy=Crëwyd gan +NewTicket=Tocyn Newydd +SubjectAnswerToTicket=Ateb tocyn +TicketTypeRequest=Math o gais +TicketCategory=Categoreiddio tocynnau +SeeTicket=Gweler tocyn +TicketMarkedAsRead=Mae'r tocyn wedi'i farcio fel wedi'i ddarllen +TicketReadOn=Darllen ymlaen +TicketCloseOn=Dyddiad cau +MarkAsRead=Marciwch y tocyn wedi'i ddarllen +TicketHistory=Hanes tocynnau +AssignUser=Neilltuo i ddefnyddiwr +TicketAssigned=Tocyn bellach wedi'i neilltuo +TicketChangeType=Newid math +TicketChangeCategory=Newid cod dadansoddol +TicketChangeSeverity=Newid difrifoldeb +TicketAddMessage=Ychwanegu neges +AddMessage=Ychwanegu neges +MessageSuccessfullyAdded=Ychwanegwyd y tocyn +TicketMessageSuccessfullyAdded=Wedi ychwanegu'r neges yn llwyddiannus +TicketMessagesList=Rhestr negeseuon +NoMsgForThisTicket=Dim neges am y tocyn yma +TicketProperties=Dosbarthiad +LatestNewTickets=Tocynnau diweddaraf %s diweddaraf (heb eu darllen) +TicketSeverity=Difrifoldeb +ShowTicket=Gweler tocyn +RelatedTickets=Tocynnau cysylltiedig +TicketAddIntervention=Creu ymyrraeth +CloseTicket=Cau| Datrys tocyn +AbandonTicket=Gadael tocyn +CloseATicket=Cau|Datrys tocyn +ConfirmCloseAticket=Cadarnhau cau tocyn +ConfirmAbandonTicket=A ydych yn cadarnhau cau'r tocyn i statws 'Wedi'i adael' +ConfirmDeleteTicket=Cadarnhewch ddileu tocyn +TicketDeletedSuccess=Tocyn wedi'i ddileu yn llwyddiannus +TicketMarkedAsClosed=Tocyn wedi'i farcio fel un caeedig +TicketDurationAuto=Hyd a gyfrifwyd +TicketDurationAutoInfos=Hyd yn cael ei gyfrifo'n awtomatig o'r ymyriad +TicketUpdated=Tocyn wedi'i ddiweddaru +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 +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. +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. +TimeElapsedSince=Aeth amser heibio ers hynny +TicketTimeToRead=Aeth amser heibio cyn darllen +TicketTimeElapsedBeforeSince=Aeth amser heibio cyn / ers hynny +TicketContacts=Tocyn cysylltiadau +TicketDocumentsLinked=Dogfennau sy'n gysylltiedig â thocyn +ConfirmReOpenTicket=Cadarnhau ailagor y tocyn hwn ? +TicketMessageMailIntroAutoNewPublicMessage=Postiwyd neges newydd ar y tocyn gyda'r testun %s: +TicketAssignedToYou=Tocyn wedi'i neilltuo +TicketAssignedEmailBody=Rydych chi wedi cael y tocyn #%s gan %s +MarkMessageAsPrivate=Marciwch y neges yn breifat +TicketMessagePrivateHelp=Ni fydd y neges hon yn cael ei dangos i ddefnyddwyr allanol +TicketEmailOriginIssuer=Y cyhoeddwr o darddiad y tocynnau +InitialMessage=Neges Cychwynnol +LinkToAContract=Dolen i gontract +TicketPleaseSelectAContract=Dewiswch gontract +UnableToCreateInterIfNoSocid=Methu creu ymyriad pan nad oes trydydd parti yn cael ei ddiffinio +TicketMailExchanges=Cyfnewid post +TicketInitialMessageModified=Neges gychwynnol wedi'i haddasu +TicketMessageSuccesfullyUpdated=Diweddarwyd y neges yn llwyddiannus +TicketChangeStatus=Newid statws +TicketConfirmChangeStatus=Cadarnhau'r newid statws: %s ? +TicketLogStatusChanged=Statws wedi'i newid: %s i %s +TicketNotNotifyTiersAtCreate=Peidio â hysbysu'r cwmni wrth greu +NotifyThirdpartyOnTicketClosing=Cysylltiadau i'w hysbysu wrth gau'r tocyn +TicketNotifyAllTiersAtClose=Pob cyswllt cysylltiedig +TicketNotNotifyTiersAtClose=Dim cyswllt cysylltiedig +Unread=Heb ei ddarllen +TicketNotCreatedFromPublicInterface=Dim ar gael. Ni chrëwyd y tocyn o'r rhyngwyneb cyhoeddus. +ErrorTicketRefRequired=Mae angen cyfeirnod y tocyn +TicketsDelayForFirstResponseTooLong=Aeth gormod o amser heibio ers agor y tocyn heb unrhyw ateb. +TicketsDelayFromLastResponseTooLong=Aeth gormod o amser heibio ers yr ateb diwethaf ar y tocyn hwn. +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=Tocyn %s wedi'i ddarllen gan %s +NoLogForThisTicket=Dim log ar gyfer y tocyn hwn eto +TicketLogAssignedTo=Tocyn %s wedi'i neilltuo i %s +TicketLogPropertyChanged=Tocyn %s wedi'i addasu: dosbarthiad o %s i %s +TicketLogClosedBy=Tocyn %s wedi'i gau gan %s +TicketLogReopen=Tocyn %s yn ail agor + +# +# Public pages +# +TicketSystem=System docynnau +ShowListTicketWithTrackId=Arddangos rhestr docynnau o ID y trac +ShowTicketWithTrackId=Arddangos tocyn o ID trac +TicketPublicDesc=Gallwch greu tocyn cymorth neu siec o ID sy'n bodoli eisoes. +YourTicketSuccessfullySaved=Tocyn wedi'i gadw'n llwyddiannus! +MesgInfosPublicTicketCreatedWithTrackId=Mae tocyn newydd wedi'i greu gydag ID %s a Ref %s. +PleaseRememberThisId=Cadwch y rhif olrhain y gallem ofyn i chi yn ddiweddarach. +TicketNewEmailSubject=Cadarnhad creu tocyn - Cyf %s (ID tocyn cyhoeddus %s) +TicketNewEmailSubjectCustomer=Tocyn cymorth newydd +TicketNewEmailBody=E-bost awtomatig yw hwn i gadarnhau eich bod wedi cofrestru tocyn newydd. +TicketNewEmailBodyCustomer=E-bost awtomatig yw hwn i gadarnhau bod tocyn newydd wedi'i greu i'ch cyfrif. +TicketNewEmailBodyInfosTicket=Gwybodaeth ar gyfer monitro'r tocyn +TicketNewEmailBodyInfosTrackId=Rhif olrhain tocyn: %s +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link +TicketNewEmailBodyInfosTrackUrlCustomer=Gallwch weld cynnydd y tocyn yn y rhyngwyneb penodol trwy glicio ar y ddolen ganlynol +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. +TicketPublicMsgViewLogIn=Rhowch ID olrhain tocyn +TicketTrackId=ID Tracio Cyhoeddus +OneOfTicketTrackId=Un o'ch ID olrhain +ErrorTicketNotFound=Ni ddaethpwyd o hyd i docyn gydag ID olrhain %s! +Subject=Pwnc +ViewTicket=Gweld tocyn +ViewMyTicketList=Gweld fy rhestr docynnau +ErrorEmailMustExistToCreateTicket=Gwall: ni chanfuwyd cyfeiriad e-bost yn ein cronfa ddata +TicketNewEmailSubjectAdmin=Tocyn newydd wedi'i greu - Cyf %s (ID tocyn cyhoeddus %s) +TicketNewEmailBodyAdmin=

    Tocyn newydd gael ei greu gydag ID #%s, gweler y wybodaeth:

    +SeeThisTicketIntomanagementInterface=Gweler y tocyn yn y rhyngwyneb rheoli +TicketPublicInterfaceForbidden=Nid oedd y rhyngwyneb cyhoeddus ar gyfer y tocynnau wedi'i alluogi +ErrorEmailOrTrackingInvalid=Gwerth gwael ar gyfer olrhain ID neu e-bost +OldUser=Hen ddefnyddiwr +NewUser=Defnyddiwr newydd +NumberOfTicketsByMonth=Nifer y tocynnau y mis +NbOfTickets=Nifer y tocynnau +# notifications +TicketCloseEmailSubjectCustomer=Tocyn ar gau +TicketCloseEmailBodyCustomer=Mae hon yn neges awtomatig i'ch hysbysu bod tocyn %s newydd ei gau. +TicketCloseEmailSubjectAdmin=Tocyn ar gau - Réf %s (ID tocyn cyhoeddus %s) +TicketCloseEmailBodyAdmin=Mae tocyn gydag ID #%s newydd ei gau, gweler y wybodaeth: +TicketNotificationEmailSubject=Tocyn %s wedi'i ddiweddaru +TicketNotificationEmailBody=Dyma neges awtomatig i'ch hysbysu bod tocyn %s newydd gael ei ddiweddaru +TicketNotificationRecipient=Derbynnydd hysbysiad +TicketNotificationLogMessage=Neges log +TicketNotificationEmailBodyInfosTrackUrlinternal=Gweld tocyn i mewn i'r rhyngwyneb +TicketNotificationNumberEmailSent=Anfonwyd e-bost hysbysu: %s + +ActionsOnTicket=Digwyddiadau ar docyn + +# +# Boxes +# +BoxLastTicket=Y tocynnau diweddaraf a grëwyd +BoxLastTicketDescription=Tocynnau %s diweddaraf wedi'u creu +BoxLastTicketContent= +BoxLastTicketNoRecordedTickets=Dim tocynnau diweddar heb eu darllen +BoxLastModifiedTicket=Tocynnau wedi'u haddasu diweddaraf +BoxLastModifiedTicketDescription=Tocynnau wedi'u haddasu %s diweddaraf +BoxLastModifiedTicketContent= +BoxLastModifiedTicketNoRecordedTickets=Dim tocynnau wedi'u haddasu'n ddiweddar +BoxTicketType=Dosbarthu tocynnau agored yn ôl math +BoxTicketSeverity=Nifer y tocynnau agored yn ôl difrifoldeb +BoxNoTicketSeverity=Dim tocynnau wedi'u hagor +BoxTicketLastXDays=Nifer y tocynnau newydd fesul diwrnod y diwrnodau %s diwethaf +BoxTicketLastXDayswidget = Nifer y tocynnau newydd fesul diwrnod yr X diwrnod diwethaf +BoxNoTicketLastXDays=Dim tocynnau newydd y diwrnodau %s diwethaf +BoxNumberOfTicketByDay=Nifer y tocynnau newydd yn ystod y dydd +BoxNewTicketVSClose=Nifer y tocynnau yn erbyn tocynnau caeedig (heddiw) +TicketCreatedToday=Tocyn wedi ei greu heddiw +TicketClosedToday=Tocyn ar gau heddiw +KMFoundForTicketGroup=Daethom o hyd i bynciau a Chwestiynau Cyffredin a allai ateb eich cwestiwn, diolch i'w gwirio cyn cyflwyno'r tocyn diff --git a/htdocs/langs/cy_GB/trips.lang b/htdocs/langs/cy_GB/trips.lang new file mode 100644 index 00000000000..07f0b171671 --- /dev/null +++ b/htdocs/langs/cy_GB/trips.lang @@ -0,0 +1,150 @@ +# Dolibarr language file - Source file is en_US - trips +ShowExpenseReport=Dangos adroddiad gwariant +Trips=Adroddiadau treuliau +TripsAndExpenses=Adroddiadau treuliau +TripsAndExpensesStatistics=Ystadegau adroddiadau treuliau +TripCard=Cerdyn adroddiad treuliau +AddTrip=Creu adroddiad treuliau +ListOfTrips=Rhestr o adroddiadau treuliau +ListOfFees=Rhestr o ffioedd +TypeFees=Mathau o ffioedd +ShowTrip=Dangos adroddiad gwariant +NewTrip=Adroddiad cost newydd +LastExpenseReports=Adroddiadau treuliau diweddaraf %s +AllExpenseReports=Pob adroddiad treuliau +CompanyVisited=Ymwelwyd â chwmni/sefydliad +FeesKilometersOrAmout=Swm neu gilometrau +DeleteTrip=Dileu adroddiad treuliau +ConfirmDeleteTrip=A ydych yn siŵr eich bod am ddileu'r adroddiad treuliau hwn? +ListTripsAndExpenses=Rhestr o adroddiadau treuliau +ListToApprove=Aros am gymeradwyaeth +ExpensesArea=Ardal adroddiadau treuliau +ClassifyRefunded=Dosbarthu 'Ad-daliad' +ExpenseReportWaitingForApproval=Mae adroddiad gwariant newydd wedi'i gyflwyno i'w gymeradwyo +ExpenseReportWaitingForApprovalMessage=Mae adroddiad costau newydd wedi'i gyflwyno ac yn aros am gymeradwyaeth.
    - Defnyddiwr: %s
    - Cyfnod: %s
    Cliciwch yma i ddilysu: %s +ExpenseReportWaitingForReApproval=Mae adroddiad gwariant wedi'i gyflwyno i'w ail-gymeradwyo +ExpenseReportWaitingForReApprovalMessage=Mae adroddiad gwariant wedi ei gyflwyno ac yn aros am ail gymeradwyaeth.
    Yr %s, gwrthodasoch gymeradwyo'r adroddiad treuliau am y rheswm hwn: %s.
    Mae fersiwn newydd wedi'i chynnig ac yn aros am eich cymeradwyaeth.
    - Defnyddiwr: %s
    - Cyfnod: %s
    Cliciwch yma i ddilysu: %s +ExpenseReportApproved=Cymeradwywyd adroddiad gwariant +ExpenseReportApprovedMessage=Cymeradwywyd yr adroddiad traul %s.
    - Defnyddiwr: %s
    - Cymeradwywyd gan: %s
    Cliciwch yma i ddangos yr adroddiad treuliau: %s +ExpenseReportRefused=Gwrthodwyd adroddiad gwariant +ExpenseReportRefusedMessage=Gwrthodwyd yr adroddiad traul %s.
    - Defnyddiwr: %s
    - Gwrthodwyd gan: %s
    - Cymhelliad dros wrthod: a0ecb2ec87f49fzfc adroddiad Cliciwch yma i wrthod: %s ac adroddiad Click +ExpenseReportCanceled=Cafodd adroddiad gwariant ei ganslo +ExpenseReportCanceledMessage=Cafodd yr adroddiad traul %s ei ganslo.
    - Defnyddiwr: %s
    - Wedi'i ganslo gan: %s
    - Cymhelliad ar gyfer canslo: a0ecb2ec87f434fz00000 cost showcb2e: a0ecb2ec87f434fz0 ac adroddiad Click +ExpenseReportPaid=Talwyd adroddiad traul +ExpenseReportPaidMessage=Talwyd yr adroddiad traul %s.
    - Defnyddiwr: %s
    - Talwyd gan: %s
    Cliciwch yma i ddangos yr adroddiad treuliau: %s +TripId=Id adroddiad treuliau +AnyOtherInThisListCanValidate=Rhoi gwybod i'r person am ddilysu'r cais. +TripSociete=Cwmni gwybodaeth +TripNDF=Adroddiad costau gwybodaeth +PDFStandardExpenseReports=Templed safonol i gynhyrchu dogfen PDF ar gyfer adroddiad costau +ExpenseReportLine=Llinell adroddiad treuliau +TF_OTHER=Arall +TF_TRIP=Cludiant +TF_LUNCH=Cinio +TF_METRO=Metro +TF_TRAIN=Tren +TF_BUS=Bws +TF_CAR=Car +TF_PEAGE=Toll +TF_ESSENCE=Tanwydd +TF_HOTEL=Gwesty +TF_TAXI=Tacsi +EX_KME=Costau milltiredd +EX_FUE=CV tanwydd +EX_HOT=Gwesty +EX_PAR=CV parcio +EX_TOL=CV toll +EX_TAX=Trethi Amrywiol +EX_IND=Tanysgrifiad cludiant indemniad +EX_SUM=Cyflenwad cynnal a chadw +EX_SUO=Cyflenwadau swyddfa +EX_CAR=Rhentu car +EX_DOC=Dogfennaeth +EX_CUR=Cwsmeriaid yn derbyn +EX_OTR=Derbyniad arall +EX_POS=Postio +EX_CAM=Cynnal a chadw ac atgyweirio CV +EX_EMM=Pryd o fwyd gweithwyr +EX_GUM=Pryd o fwyd gwesteion +EX_BRE=Brecwast +EX_FUE_VP=Tanwydd PV +EX_TOL_VP=Toll PV +EX_PAR_VP=Parcio PV +EX_CAM_VP=Cynnal a chadw ac atgyweirio PV +DefaultCategoryCar=Dull cludo diofyn +DefaultRangeNumber=Rhif amrediad rhagosodedig +UploadANewFileNow=Uwchlwythwch ddogfen newydd nawr +Error_EXPENSEREPORT_ADDON_NotDefined=Gwall, ni ddiffiniwyd y rheol ar gyfer rhifo adroddiad treuliau wrth osod modiwl 'Adroddiad Treuliau' +ErrorDoubleDeclaration=Rydych wedi datgan adroddiad treuliau arall o fewn ystod dyddiadau tebyg. +AucuneLigne=Nid oes adroddiad gwariant wedi'i ddatgan eto +ModePaiement=Modd talu +VALIDATOR=Defnyddiwr sy'n gyfrifol am gymeradwyo +VALIDOR=Cymeradwywyd gan +AUTHOR=Recordiwyd gan +AUTHORPAIEMENT=Talwyd gan +REFUSEUR=Gwrthodwyd gan +CANCEL_USER=Wedi'i ddileu gan +MOTIF_REFUS=Rheswm +MOTIF_CANCEL=Rheswm +DATE_REFUS=Gwadu dyddiad +DATE_SAVE=Dyddiad dilysu +DATE_CANCEL=Dyddiad canslo +DATE_PAIEMENT=Dyddiad talu +ExpenseReportRef=Cyf. adroddiad gwariant +ValidateAndSubmit=Dilysu a chyflwyno i'w gymeradwyo +ValidatedWaitingApproval=Wedi'i ddilysu (aros am gymeradwyaeth) +NOT_AUTHOR=Nid chi yw awdur yr adroddiad treuliau hwn. Gweithrediad wedi'i ganslo. +ConfirmRefuseTrip=Ydych chi'n siŵr eich bod am wadu'r adroddiad treuliau hwn? +ValideTrip=Cymeradwyo adroddiad treuliau +ConfirmValideTrip=A ydych yn siŵr eich bod am gymeradwyo'r adroddiad treuliau hwn? +PaidTrip=Talu adroddiad treuliau +ConfirmPaidTrip=Ydych chi'n siŵr eich bod am newid statws yr adroddiad treuliau hwn i "Talwyd"? +ConfirmCancelTrip=A ydych yn siŵr eich bod am ganslo'r adroddiad treuliau hwn? +BrouillonnerTrip=Symud adroddiad treuliau yn ôl i statws "Drafft" +ConfirmBrouillonnerTrip=Ydych chi'n siŵr eich bod am symud yr adroddiad treuliau hwn i statws "Drafft"? +SaveTrip=Dilysu adroddiad treuliau +ConfirmSaveTrip=A ydych yn siŵr eich bod am ddilysu'r adroddiad treuliau hwn? +NoTripsToExportCSV=Dim adroddiad gwariant i'w allforio ar gyfer y cyfnod hwn. +ExpenseReportPayment=Taliad adroddiad treuliau +ExpenseReportsToApprove=Adroddiadau treuliau i'w cymeradwyo +ExpenseReportsToPay=Adroddiadau treuliau i'w talu +ConfirmCloneExpenseReport=A ydych yn siŵr eich bod am glonio'r adroddiad treuliau hwn ? +ExpenseReportsIk=Ffurfweddu taliadau milltiredd +ExpenseReportsRules=Rheolau adroddiad treuliau +ExpenseReportIkDesc=Gallwch addasu'r cyfrifiad o gost cilomedr yn ôl categori ac ystod pwy y maent wedi'u diffinio'n flaenorol. d yw'r pellter mewn cilometrau +ExpenseReportRulesDesc=Gallwch ddiffinio rheolau uchafswm ar gyfer adroddiadau treuliau. Bydd y rheolau hyn yn cael eu cymhwyso pan fydd cost newydd yn cael ei ychwanegu at adroddiad treuliau +expenseReportOffset=Gwrthbwyso +expenseReportCoef=Cyfernod +expenseReportTotalForFive=Enghraifft gydag d = 5 +expenseReportRangeFromTo=o %d i %d +expenseReportRangeMoreThan=mwy na %d +expenseReportCoefUndefined=(gwerth heb ei ddiffinio) +expenseReportCatDisabled=Categori wedi'i analluogi - gweler y geiriadur c_exp_tax_cat +expenseReportRangeDisabled=Ystod wedi'i hanalluogi - gweler y geiriadur c_exp_tax_range +expenseReportPrintExample=offset + (d x coef) = %s +ExpenseReportApplyTo=Gwnewch gais i +ExpenseReportDomain=Parth i wneud cais +ExpenseReportLimitOn=Cyfyngu ar +ExpenseReportDateStart=Dyddiad dechrau +ExpenseReportDateEnd=Dyddiad gorffen +ExpenseReportLimitAmount=Swm mwyaf +ExpenseReportRestrictive=Yn mynd y tu hwnt i wahardd +AllExpenseReport=Pob math o adroddiad treuliau +OnExpense=Llinell draul +ExpenseReportRuleSave=Rheol adrodd am dreuliau wedi'i chadw +ExpenseReportRuleErrorOnSave=Gwall: %s +RangeNum=Ystod %d +ExpenseReportConstraintViolationError=Y swm uchaf y rhagorwyd arno (rheol %s): %s yn uwch nag %s (Gwaharddedig yn fwy na) +byEX_DAY=yn ystod y dydd (cyfyngiad i %s) +byEX_MON=fesul mis (cyfyngiad i %s) +byEX_YEA=fesul blwyddyn (cyfyngiad i %s) +byEX_EXP=fesul llinell (cyfyngiad i %s) +ExpenseReportConstraintViolationWarning=Uchafswm y swm a ragorwyd (rheol %s): %s yn uwch nag %s (Yn rhagori ar awdurdodedig) +nolimitbyEX_DAY=yn ystod y dydd (dim cyfyngiad) +nolimitbyEX_MON=fesul mis (dim cyfyngiad) +nolimitbyEX_YEA=fesul blwyddyn (dim cyfyngiad) +nolimitbyEX_EXP=fesul llinell (dim cyfyngiad) +CarCategory=Categori cerbyd +ExpenseRangeOffset=Swm gwrthbwyso: %s +RangeIk=Ystod milltiroedd +AttachTheNewLineToTheDocument=Atodwch y llinell i ddogfen sydd wedi'i llwytho i fyny diff --git a/htdocs/langs/cy_GB/users.lang b/htdocs/langs/cy_GB/users.lang new file mode 100644 index 00000000000..b3c8ba3ee69 --- /dev/null +++ b/htdocs/langs/cy_GB/users.lang @@ -0,0 +1,130 @@ +# Dolibarr language file - Source file is en_US - users +HRMArea=Ardal Rheoli Adnoddau Dynol +UserCard=Cerdyn defnyddiwr +GroupCard=Cerdyn grŵp +Permission=Caniatâd +Permissions=Caniatadau +EditPassword=Golygu cyfrinair +SendNewPassword=Adfywio ac anfon cyfrinair +SendNewPasswordLink=Anfon dolen i ailosod cyfrinair +ReinitPassword=Adfywio cyfrinair +PasswordChangedTo=Cyfrinair wedi'i newid i: %s +SubjectNewPassword=Eich cyfrinair newydd ar gyfer %s +GroupRights=Caniatadau grŵp +UserRights=Caniatadau defnyddiwr +Credentials=Cymhwyster +UserGUISetup=Gosod Arddangos Defnyddiwr +DisableUser=Analluogi +DisableAUser=Analluogi defnyddiwr +DeleteUser=Dileu +DeleteAUser=Dileu defnyddiwr +EnableAUser=Galluogi defnyddiwr +DeleteGroup=Dileu +DeleteAGroup=Dileu grŵp +ConfirmDisableUser=A ydych yn siŵr eich bod am analluogi defnyddiwr %s ? +ConfirmDeleteUser=A ydych yn siŵr eich bod am ddileu defnyddiwr %s ? +ConfirmDeleteGroup=Ydych chi'n siŵr eich bod am ddileu grŵp %s ? +ConfirmEnableUser=A ydych yn siŵr eich bod am alluogi defnyddiwr %s ? +ConfirmReinitPassword=Ydych chi'n siŵr eich bod am gynhyrchu cyfrinair newydd ar gyfer defnyddiwr %s ? +ConfirmSendNewPassword=Ydych chi'n siŵr eich bod am gynhyrchu ac anfon cyfrinair newydd ar gyfer defnyddiwr %s ? +NewUser=Defnyddiwr newydd +CreateUser=Creu defnyddiwr +LoginNotDefined=Nid yw mewngofnodi wedi'i ddiffinio. +NameNotDefined=Nid yw'r enw wedi'i ddiffinio. +ListOfUsers=Rhestr o ddefnyddwyr +SuperAdministrator=Uwch Weinyddwr +SuperAdministratorDesc=Gweinyddwr byd-eang +AdministratorDesc=Gweinyddwr +DefaultRights=Caniatâd Diofyn +DefaultRightsDesc=Diffiniwch yma y caniatadau rhagosodedig a roddir yn awtomatig i ddefnyddiwr newydd (i addasu caniatâd defnyddwyr presennol, ewch i'r cerdyn defnyddiwr). +DolibarrUsers=defnyddwyr Dolibarr +LastName=Enw olaf +FirstName=Enw cyntaf +ListOfGroups=Rhestr o grwpiau +NewGroup=Grwp newydd +CreateGroup=Creu grŵp +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. +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 +LastGroupsCreated=Grwpiau %s diweddaraf wedi'u creu +LastUsersCreated=Defnyddwyr %s diweddaraf wedi'u creu +ShowGroup=Dangos grŵp +ShowUser=Dangos defnyddiwr +NonAffectedUsers=Defnyddwyr nad ydynt wedi'u neilltuo +UserModified=Defnyddiwr wedi'i addasu yn llwyddiannus +PhotoFile=Ffeil llun +ListOfUsersInGroup=Rhestr o ddefnyddwyr yn y grŵp hwn +ListOfGroupsForUser=Rhestr o grwpiau ar gyfer y defnyddiwr hwn +LinkToCompanyContact=Dolen i drydydd parti / cyswllt +LinkedToDolibarrMember=Dolen i aelod +LinkedToDolibarrUser=Dolen i'r defnyddiwr +LinkedToDolibarrThirdParty=Dolen i drydydd parti +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 +CreateInternalUserDesc=Mae'r ffurflen hon yn caniatáu ichi greu defnyddiwr mewnol yn eich cwmni/sefydliad. I greu defnyddiwr allanol (cwsmer, gwerthwr ac ati ..), defnyddiwch y botwm 'Creu Defnyddiwr Dolibarr' o gerdyn cyswllt y trydydd parti hwnnw. +InternalExternalDesc=Mae defnyddiwr mewnol yn ddefnyddiwr sy'n rhan o'ch cwmni/sefydliad, neu'n ddefnyddiwr partner y tu allan i'ch sefydliad a allai fod angen gweld mwy o ddata na data sy'n ymwneud â'i gwmni (bydd y system ganiatâd yn diffinio'r hyn y gall neu y gall ei weld 't weld neu wneud).
    Mae defnyddiwr allanol yn gwsmer, gwerthwr neu arall sy'n gorfod gweld data sy'n ymwneud ag ef ei hun YN UNIG (Gellir creu defnyddiwr allanol ar gyfer trydydd parti o gofnod cyswllt y trydydd parti).

    Yn y ddau achos, rhaid i chi roi caniatâd ar gyfer y nodweddion sydd eu hangen ar y defnyddiwr. +PermissionInheritedFromAGroup=Rhoddwyd caniatâd oherwydd etifeddwyd gan un o grŵp defnyddwyr. +Inherited=Etifeddwyd +UserWillBe=Defnyddiwr a grëwyd fydd +UserWillBeInternalUser=Bydd defnyddiwr a grëwyd yn ddefnyddiwr mewnol (gan nad yw'n gysylltiedig â thrydydd parti penodol) +UserWillBeExternalUser=Bydd defnyddiwr a grëwyd yn ddefnyddiwr allanol (oherwydd yn gysylltiedig â thrydydd parti penodol) +IdPhoneCaller=Galwr ffôn ID +NewUserCreated=Defnyddiwr %s wedi'i greu +NewUserPassword=Newid cyfrinair ar gyfer %s +NewPasswordValidated=Mae'ch cyfrinair newydd wedi'i ddilysu a rhaid ei ddefnyddio nawr i fewngofnodi. +EventUserModified=Defnyddiwr %s wedi'i addasu +UserDisabled=Defnyddiwr %s yn anabl +UserEnabled=Defnyddiwr %s wedi'i actifadu +UserDeleted=Defnyddiwr %s wedi'i dynnu +NewGroupCreated=Grŵp %s wedi'i greu +GroupModified=Grŵp %s wedi'i addasu +GroupDeleted=Tynnwyd y grŵp %s +ConfirmCreateContact=Ydych chi'n siŵr eich bod am greu cyfrif Dolibarr ar gyfer y cyswllt hwn? +ConfirmCreateLogin=Ydych chi'n siŵr eich bod am greu cyfrif Dolibarr ar gyfer yr aelod hwn? +ConfirmCreateThirdParty=Ydych chi'n siŵr eich bod am greu trydydd parti ar gyfer yr aelod hwn? +LoginToCreate=Mewngofnodwch i greu +NameToCreate=Enw'r trydydd parti i'w greu +YourRole=Eich rolau +YourQuotaOfUsersIsReached=Cyrhaeddir eich cwota o ddefnyddwyr gweithredol ! +NbOfUsers=Nifer y defnyddwyr +NbOfPermissions=Nifer y caniatadau +DontDowngradeSuperAdmin=Dim ond uwchweinyddwr all israddio uwchweinyddwr +HierarchicalResponsible=Goruchwyliwr +HierarchicView=Golygfa hierarchaidd +UseTypeFieldToChange=Defnyddiwch Math o faes i newid +OpenIDURL=URL ID Agored +LoginUsingOpenID=Defnyddiwch OpenID i fewngofnodi +WeeklyHours=Oriau a weithiwyd (yr wythnos) +ExpectedWorkedHours=Oriau disgwyliedig a weithir yr wythnos +ColorUser=Lliw y defnyddiwr +DisabledInMonoUserMode=Yn anabl yn y modd cynnal a chadw +UserAccountancyCode=Cod cyfrifo defnyddiwr +UserLogoff=Allgofnodi defnyddiwr +UserLogged=Defnyddiwr wedi mewngofnodi +DateOfEmployment=Dyddiad cyflogaeth +DateEmployment=Cyflogaeth +DateEmploymentStart=Employment Start Date +DateEmploymentEnd=Dyddiad Gorffen Cyflogaeth +RangeOfLoginValidity=Mynediad ystod dyddiad dilysrwydd +CantDisableYourself=Ni allwch analluogi eich cofnod defnyddiwr eich hun +ForceUserExpenseValidator=Dilyswr adroddiad treuliau'r heddlu +ForceUserHolidayValidator=Dilyswr cais am absenoldeb grym +ValidatorIsSupervisorByDefault=Yn ddiofyn, y dilysydd yw goruchwyliwr y defnyddiwr. Cadwch yn wag i gadw'r ymddygiad hwn. +UserPersonalEmail=E-bost personol +UserPersonalMobile=Ffôn symudol personol +WarningNotLangOfInterface=Rhybudd, dyma'r brif iaith y mae'r defnyddiwr yn ei siarad, nid iaith y rhyngwyneb y dewisodd ei weld. I newid yr iaith rhyngwyneb sy'n weladwy gan y defnyddiwr hwn, ewch ar y tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/cy_GB/website.lang b/htdocs/langs/cy_GB/website.lang new file mode 100644 index 00000000000..f7636647a27 --- /dev/null +++ b/htdocs/langs/cy_GB/website.lang @@ -0,0 +1,147 @@ +# Dolibarr language file - Source file is en_US - website +Shortname=Côd +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. +WEBSITE_TYPE_CONTAINER=Math o dudalen/cynhwysydd +WEBSITE_PAGE_EXAMPLE=Tudalen we i'w defnyddio fel enghraifft +WEBSITE_PAGENAME=Enw tudalen/alias +WEBSITE_ALIASALT=Enwau tudalennau eraill/enwau eraill +WEBSITE_ALIASALTDesc=Defnyddiwch yma restr o enwau/aliasau eraill fel y gellir cyrchu'r dudalen hefyd gan ddefnyddio'r enwau/enwau eraill hyn (er enghraifft yr hen enw ar ôl ailenwi'r arallenw i gadw backlink ar hen ddolen/enw yn gweithio). Cystrawen yw:
    enw amgen1, enw amgen2, ... +WEBSITE_CSS_URL=URL y ffeil CSS allanol +WEBSITE_CSS_INLINE=Cynnwys ffeil CSS (cyffredin i bob tudalen) +WEBSITE_JS_INLINE=Cynnwys ffeil javascript (cyffredin i bob tudalen) +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. +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. +MediaFiles=Llyfrgell y cyfryngau +EditCss=Golygu priodweddau gwefan +EditMenu=Golygu dewislen +EditMedias=Golygu cyfryngau +EditPageMeta=Golygu tudalen / priodweddau cynhwysydd +EditInLine=Golygu ar-lein +AddWebsite=Ychwanegu gwefan +Webpage=Tudalen we/cynhwysydd +AddPage=Ychwanegu tudalen/cynhwysydd +PageContainer=Tudalen +PreviewOfSiteNotYetAvailable=Nid yw rhagolwg eich gwefan %s ar gael eto. Rhaid i chi yn gyntaf ' Mewnforio templed gwefan llawn ' neu dim ond ' Ychwanegu tudalen/cynhwysydd '. +RequestedPageHasNoContentYet=Nid oes gan y dudalen y gofynnwyd amdani gydag id %s unrhyw gynnwys eto, neu dilëwyd ffeil cache .tpl.php. Golygu cynnwys y dudalen i ddatrys hyn. +SiteDeleted=Gwefan '%s' wedi'i dileu +PageContent=Tudalen/Contenair +PageDeleted=Tudalen/Contenair '%s' o'r wefan %s wedi'i dileu +PageAdded=Tudalen/Contenair '%s' wedi'i ychwanegu +ViewSiteInNewTab=Gweld y wefan mewn tab newydd +ViewPageInNewTab=Gweld y dudalen mewn tab newydd +SetAsHomePage=Gosod fel tudalen Hafan +RealURL=URL go iawn +ViewWebsiteInProduction=Gweld gwefan gan ddefnyddio URLs cartref +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 +YouCanAlsoDeployToAnotherWHP= Rhedeg eich gwefan gyda darparwr Dolibarr Hosting arall
    Os nad oes gennych weinydd gwe fel Apache neu NGinx ar gael ar y rhyngrwyd, gallwch allforio a mewnforio eich gwefan i enghraifft Dolibarr arall a ddarperir gan ddarparwr Dolibarr arall sy'n darparu lletywr llawn integreiddio â'r modiwl Gwefan. Gallwch ddod o hyd i restr o rai darparwyr cynnal Dolibarr ar https://saas.dolibarr.org +CheckVirtualHostPerms=Gwiriwch hefyd fod gan y defnyddiwr gwesteiwr rhithwir (er enghraifft www-data) ganiatadau %s ar ffeiliau i mewn i
    a7006fcdfz01047c06bz0 %s +ReadPerm=Darllen +WritePerm=Ysgrifennu +TestDeployOnWeb=Profi/defnyddio ar y we +PreviewSiteServedByWebServer= Rhagolwg %s mewn tab newydd.

    Bydd yr %s yn cael ei wasanaethu gan weinydd gwe allanol (fel Apache, Nginx, IIS). Mae'n rhaid i chi osod a gosod y gweinydd hwn o'r blaen i bwyntio at y cyfeiriadur:
    %s URL a wasanaethir gan weinydd allanol: a0397bfcf a0342603 a0342bz03 a0342bfcf a03470604 a0342bz03606fcf a0342bz0 +PreviewSiteServedByDolibarr= Rhagolwg %s mewn tab newydd.

    Bydd yr %s yn cael ei wasanaethu gan weinydd Dolibarr felly nid oes angen unrhyw weinydd gwe ychwanegol (fel Apache, Nginx, IIS) i'w osod.
    Yr anghyfleus yw nad yw URLau tudalennau yn hawdd eu defnyddio a dechreuwch gyda llwybr eich Dolibarr.
    URL wasanaethir gan Dolibarr:
    %s

    I ddefnyddio eich gweinydd gwe allanol eu hunain i wasanaethu wefan hon, yn creu llu rhithwir ar eich gweinydd gwe bod pwyntiau ar gyfeiriadur
    %s
    yna rhowch enw'r hwn gweinydd rhithwir ym mhhriodweddau'r wefan hon a chliciwch ar y ddolen "Test/Deploy on the web". +VirtualHostUrlNotDefined=URL y gwesteiwr rhithwir a wasanaethir gan weinydd gwe allanol heb ei ddiffinio +NoPageYet=Dim tudalennau eto +YouCanCreatePageOrImportTemplate=Gallwch greu tudalen newydd neu fewnforio templed gwefan llawn +SyntaxHelp=Cymorth ar awgrymiadau cystrawen penodol +YouCanEditHtmlSourceckeditor=Gallwch olygu cod ffynhonnell HTML gan ddefnyddio'r botwm "Ffynhonnell" yn y golygydd. +YouCanEditHtmlSource=
    Gallwch chi gynnwys cod PHP i'r ffynhonnell hon gan ddefnyddio tagiau <?php ?a0012c67d abefc0700? Mae'r newidynnau byd-eang canlynol ar gael: $conf, $db, $mysoc, $user, $gwefan, $gwefan, $weblangs, $pagelangs.

    Gallwch hefyd gynnwys cynnwys Tudalen/Cynhwysydd arall gyda'r gystrawen ganlynol:
    a0e7843bz0 a0e7843bz0 a0e7843907conclude_conclude ? >


    Gallwch wneud ailgyfeirio i dudalen / Cynhwysydd arall gyda'r chystrawen canlynol (Noder: nid ydynt allbwn unrhyw gynnwys cyn i ailgyfeirio):?
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ? >

    I ychwanegu dolen i dudalen arall, defnyddiwch y chystrawen:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    I gynnwys dolen i lawrlwytho am ffeil ei storio mewn i'r dogfennau cyfeiriadur , defnyddiwch y document.php deunydd lapio:
    enghraifft, am ffeil i mewn i ddogfennau / ECM (angen bod wedi logio i), cystrawen yw:?
    <a href = "/ document.php modulepart = ECM & file = [relative_dir / ]enw'r ffeil.ext">
    Ar gyfer ffeil i mewn i ddogfennau/cyfryngau (cyfeiriadur agored ar gyfer mynediad cyhoeddus), cystrawen yw:
    a0e78439407 h0342fccfda19bz0
    78439407 ac060003: "/document.php?modulepart=medias&file=[relative_dir/]filename.ext">

    Ar gyfer ffeil sy'n cael ei rhannu gyda dolen rhannu (mynediad agored gan ddefnyddio allwedd rhannu hash y ffeil), sy'n cyfateb i acfda903030603603: acfda1903 acfda19bz: acfda1903603: acfda190303: acfda190303: acfda190307: acfda /document.php?hashp=publicsharekeyoffile">


    i gynnwys delwedd storio mewn i'r dogfennau cyfeiriadur, defnyddiwch y viewimage.php deunydd lapio:
    enghraifft, ar gyfer delwedd i mewn i ddogfennau / cyfryngau (ar agor cyfeiriadur ar gyfer mynediad i'r cyhoedd), cystrawen yw:
    <img src="/viewimage.php?modulepart=medias&file=[relative_dir/]700zfc6006000000000000000000 +#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=Ar gyfer delwedd a rennir gyda dolen rhannu (mynediad agored gan ddefnyddio'r allwedd rhannu hash o ffeil), cystrawen yw:
    <img src="/viewimage.php?hashp=123456790012..." +YouCanEditHtmlSourceMore=
    Mwy o enghreifftiau o HTML neu god deinamig ar gael ar dogfennaeth wici
    . +ClonePage=Tudalen clonio/cynhwysydd +CloneSite=Safle clôn +SiteAdded=Ychwanegwyd y wefan +ConfirmClonePage=Rhowch god/alias y dudalen newydd ac os yw'n gyfieithiad o'r dudalen wedi'i chlonio. +PageIsANewTranslation=Mae'r dudalen newydd yn gyfieithiad o'r dudalen gyfredol ? +LanguageMustNotBeSameThanClonedPage=Rydych chi'n clonio tudalen fel cyfieithiad. Rhaid i iaith y dudalen newydd fod yn wahanol i iaith y dudalen ffynhonnell. +ParentPageId=ID tudalen rhiant +WebsiteId=ID y wefan +CreateByFetchingExternalPage=Creu tudalen/cynhwysydd trwy nôl tudalen o URL allanol... +OrEnterPageInfoManually=Neu creu tudalen o'r dechrau neu o dempled tudalen... +FetchAndCreate=Nôl a Creu +ExportSite=Gwefan allforio +ImportSite=Mewnforio templed gwefan +IDOfPage=Id y dudalen +Banner=Baner +BlogPost=Post blog +WebsiteAccount=Cyfrif gwefan +WebsiteAccounts=Cyfrifon gwefan +AddWebsiteAccount=Creu cyfrif gwefan +BackToListForThirdParty=Yn ôl i'r rhestr ar gyfer y trydydd parti +DisableSiteFirst=Analluoga'r wefan yn gyntaf +MyContainerTitle=Teitl fy ngwefan +AnotherContainer=Dyma sut i gynnwys cynnwys tudalen/cynhwysydd arall (efallai bod gennych chi wall yma os ydych chi'n galluogi cod deinamig oherwydd efallai nad yw'r is-gynhwysydd wedi'i fewnosod yn bodoli) +SorryWebsiteIsCurrentlyOffLine=Mae'n ddrwg gennym, nid yw'r wefan hon ar-lein ar hyn o bryd. Dewch yn ôl yn nes ymlaen... +WEBSITE_USE_WEBSITE_ACCOUNTS=Galluogi tabl cyfrif y wefan +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Galluogi'r tabl i storio cyfrifon gwefan (mewngofnodi/pasio) ar gyfer pob gwefan / trydydd parti +YouMustDefineTheHomePage=Yn gyntaf rhaid i chi ddiffinio'r dudalen Hafan rhagosodedig +OnlyEditionOfSourceForGrabbedContentFuture=Rhybudd: Mae creu tudalen we trwy fewnforio tudalen we allanol wedi'i gadw ar gyfer defnyddwyr profiadol. Yn dibynnu ar gymhlethdod y dudalen ffynhonnell, gall canlyniad mewnforio fod yn wahanol i'r gwreiddiol. Hefyd, os yw'r dudalen ffynhonnell yn defnyddio arddulliau CSS cyffredin neu javascript sy'n gwrthdaro, gall dorri edrychiad neu nodweddion golygydd y Wefan wrth weithio ar y dudalen hon. Mae'r dull hwn yn ffordd gyflymach o greu tudalen ond argymhellir creu eich tudalen newydd o'r dechrau neu o dempled tudalen a awgrymir.
    Sylwch hefyd efallai na fydd y golygydd mewnol yn gweithio'n gywir pan gaiff ei ddefnyddio ar dudalen allanol sydd wedi'i chipio. +OnlyEditionOfSourceForGrabbedContent=Dim ond argraffiad o ffynhonnell HTML sy'n bosibl pan gipiwyd cynnwys o wefan allanol +GrabImagesInto=Cydio hefyd delweddau a ddarganfuwyd i mewn i css a thudalen. +ImagesShouldBeSavedInto=Dylid cadw delweddau yn y cyfeiriadur +WebsiteRootOfImages=Cyfeiriadur gwraidd ar gyfer delweddau gwefan +SubdirOfPage=Is-gyfeiriadur wedi'i neilltuo i'r dudalen +AliasPageAlreadyExists=Mae tudalen Alias %s eisoes yn bodoli +CorporateHomePage=Tudalen Gartref Gorfforaethol +EmptyPage=Tudalen wag +ExternalURLMustStartWithHttp=Rhaid i URL allanol ddechrau gyda http:// neu https:// +ZipOfWebsitePackageToImport=Llwythwch ffeil Zip pecyn templed y wefan +ZipOfWebsitePackageToLoad=neu Dewiswch becyn templed gwefan wedi'i fewnosod sydd ar gael +ShowSubcontainers=Dangos cynnwys deinamig +InternalURLOfPage=URL mewnol y dudalen +ThisPageIsTranslationOf=Mae'r dudalen/cynhwysydd hwn yn gyfieithiad o +ThisPageHasTranslationPages=Mae gan y dudalen/cynhwysydd hwn gyfieithiad +NoWebSiteCreateOneFirst=Nid oes unrhyw wefan wedi'i chreu eto. Creu un yn gyntaf. +GoTo=Mynd i +DynamicPHPCodeContainsAForbiddenInstruction=Rydych chi'n ychwanegu cod PHP deinamig sy'n cynnwys y cyfarwyddyd PHP ' %s ' sydd wedi'i wahardd yn ddiofyn fel cynnwys deinamig (gweler y dewisiadau cudd WEBSITE_PHP_ALLOW_xxx i gynyddu'r rhestr o orchmynion a ganiateir). +NotAllowedToAddDynamicContent=Nid oes gennych ganiatâd i ychwanegu neu olygu cynnwys deinamig PHP mewn gwefannau. Gofynnwch am ganiatâd neu cadwch y cod yn y tagiau php heb eu haddasu. +ReplaceWebsiteContent=Chwilio neu Amnewid cynnwys gwefan +DeleteAlsoJs=Dileu hefyd yr holl ffeiliau javascript sy'n benodol i'r wefan hon? +DeleteAlsoMedias=Dileu hefyd yr holl ffeiliau cyfryngau sy'n benodol i'r wefan hon? +MyWebsitePages=Tudalennau fy ngwefan +SearchReplaceInto=Chwilio | Amnewid i mewn +ReplaceString=Llinyn newydd +CSSContentTooltipHelp=Rhowch gynnwys CSS yma. Er mwyn osgoi unrhyw wrthdaro â CSS y cais, gwnewch yn siŵr eich bod yn rhag-redeg pob datganiad gyda'r dosbarth .bodywebsite. Er enghraifft:

    #mycssselector, mewnbwn.myclass:hover {... }
    rhaid fod yn
    .bodywebsite #mycssselector, .bodywebsa0193:442Ffeil
    wedi ei
    .bodywebsite #mycssselector, .bodywebsa033...bodywebda0394: ffeil fawrcfda19bz0
    wedi mewnbwn.mycssselector... y rhagddodiad hwn, gallwch ddefnyddio 'lessc' i'w drosi i atodi'r rhagddodiad .bodywebsite ym mhobman. +LinkAndScriptsHereAreNotLoadedInEditor=Rhybudd: Dim ond pan fydd gweinydd yn cyrchu'r wefan y caiff y cynnwys hwn ei allbwn. Nid yw'n cael ei ddefnyddio yn y modd Golygu felly os oes angen i chi lwytho ffeiliau javascript hefyd yn y modd golygu, ychwanegwch eich tag 'script src=...' i'r dudalen. +Dynamiccontent=Sampl o dudalen gyda chynnwys deinamig +ImportSite=Mewnforio templed gwefan +EditInLineOnOff=Modd 'Golygu yn unol' yw %s +ShowSubContainersOnOff=Y modd i weithredu 'cynnwys deinamig' yw %s +GlobalCSSorJS=Ffeil fyd-eang CSS/JS/Pennawd y wefan +BackToHomePage=Yn ôl i'r dudalen gartref... +TranslationLinks=Dolenni cyfieithu +YouTryToAccessToAFileThatIsNotAWebsitePage=Rydych chi'n ceisio cyrchu tudalen nad yw ar gael.
    (cyf=%s, math=%s, statws=%s) +UseTextBetween5And70Chars=Ar gyfer arferion SEO da, defnyddiwch destun rhwng 5 a 70 nod +MainLanguage=Prif iaith +OtherLanguages=Ieithoedd eraill +UseManifest=Darparwch ffeil manifest.json +PublicAuthorAlias=Enw arall awdur cyhoeddus +AvailableLanguagesAreDefinedIntoWebsiteProperties=Diffinnir yr ieithoedd sydd ar gael yn briodweddau gwefannau +ReplacementDoneInXPages=Amnewid wedi'i wneud mewn tudalennau neu gynwysyddion %s +RSSFeed=Porthiant RSS +RSSFeedDesc=Gallwch gael porthiant RSS o'r erthyglau diweddaraf gyda 'blogbost' teip gan ddefnyddio'r URL hwn +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 +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 +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) diff --git a/htdocs/langs/cy_GB/withdrawals.lang b/htdocs/langs/cy_GB/withdrawals.lang new file mode 100644 index 00000000000..4a5490cd041 --- /dev/null +++ b/htdocs/langs/cy_GB/withdrawals.lang @@ -0,0 +1,159 @@ +# Dolibarr language file - Source file is en_US - withdrawals +CustomersStandingOrdersArea=Taliadau trwy orchmynion Debyd Uniongyrchol +SuppliersStandingOrdersArea=Taliadau trwy drosglwyddiad credyd +StandingOrdersPayment=Gorchmynion talu debyd uniongyrchol +StandingOrderPayment=Gorchymyn talu debyd uniongyrchol +NewStandingOrder=Gorchymyn debyd uniongyrchol newydd +NewPaymentByBankTransfer=Taliad newydd trwy drosglwyddiad credyd +StandingOrderToProcess=I brosesu +PaymentByBankTransferReceipts=Gorchmynion trosglwyddo credyd +PaymentByBankTransferLines=Llinellau gorchymyn trosglwyddo credyd +WithdrawalsReceipts=Gorchmynion debyd uniongyrchol +WithdrawalReceipt=Gorchymyn debyd uniongyrchol +BankTransferReceipts=Gorchmynion trosglwyddo credyd +BankTransferReceipt=Gorchymyn trosglwyddo credyd +LatestBankTransferReceipts=Gorchmynion trosglwyddo credyd %s diweddaraf +LastWithdrawalReceipts=Ffeiliau debyd uniongyrchol %s diweddaraf +WithdrawalsLine=Llinell archebu debyd uniongyrchol +CreditTransfer=Trosglwyddo credyd +CreditTransferLine=Llinell trosglwyddo credyd +WithdrawalsLines=Llinellau archebu debyd uniongyrchol +CreditTransferLines=Llinellau trosglwyddo credyd +RequestStandingOrderToTreat=Ceisiadau am orchymyn taliad debyd uniongyrchol i'w prosesu +RequestStandingOrderTreated=Ceisiadau am orchymyn talu debyd uniongyrchol wedi'u prosesu +RequestPaymentsByBankTransferToTreat=Ceisiadau am drosglwyddo credyd i'w prosesu +RequestPaymentsByBankTransferTreated=Ceisiadau am drosglwyddo credyd wedi'u prosesu +NotPossibleForThisStatusOfWithdrawReceiptORLine=Ddim yn bosibl eto. Rhaid gosod statws tynnu'n ôl i 'gredyd' cyn datgan gwrthod ar linellau penodol. +NbOfInvoiceToWithdraw=Nifer yr anfonebau cwsmeriaid cymwysedig gydag archeb debyd uniongyrchol yn aros +NbOfInvoiceToWithdrawWithInfo=Nifer anfonebau cwsmeriaid gyda gorchmynion talu debyd uniongyrchol â gwybodaeth cyfrif banc diffiniedig +NbOfInvoiceToPayByBankTransfer=Nifer yr anfonebau cyflenwyr cymwysedig sy'n aros am daliad trwy drosglwyddiad credyd +SupplierInvoiceWaitingWithdraw=Anfoneb gwerthwr yn aros am daliad trwy drosglwyddiad credyd +InvoiceWaitingWithdraw=Anfoneb yn aros am ddebyd uniongyrchol +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. +ResponsibleUser=Defnyddiwr sy'n Gyfrifol +WithdrawalsSetup=Gosod taliad debyd uniongyrchol +CreditTransferSetup=Gosodiad trosglwyddo credyd +WithdrawStatistics=Ystadegau taliadau debyd uniongyrchol +CreditTransferStatistics=Ystadegau trosglwyddo credyd +Rejects=Yn gwrthod +LastWithdrawalReceipt=Derbynebau debyd uniongyrchol %s diweddaraf +MakeWithdrawRequest=Gwneud cais am daliad debyd uniongyrchol +MakeBankTransferOrder=Gwneud cais trosglwyddo credyd +WithdrawRequestsDone=%s ceisiadau taliad debyd uniongyrchol wedi'u cofnodi +BankTransferRequestsDone=%s ceisiadau trosglwyddo credyd wedi'u cofnodi +ThirdPartyBankCode=Cod banc trydydd parti +NoInvoiceCouldBeWithdrawed=Dim anfoneb wedi'i debydu'n llwyddiannus. Gwiriwch fod anfonebau ar gwmnïau sydd ag IBAN dilys a bod gan IBAN UMR (Cyfeirnod Mandad Unigryw) gyda modd %s . +WithdrawalCantBeCreditedTwice=Mae'r dderbynneb tynnu'n ôl hon eisoes wedi'i nodi fel un a gredydwyd; ni ellir gwneud hyn ddwywaith, gan y gallai hyn greu taliadau dyblyg a chofnodion banc. +ClassCredited=Dosbarthu wedi'i gredydu +ClassDebited=Dosbarthu debyd +ClassCreditedConfirm=A ydych yn siŵr eich bod am ddosbarthu'r dderbynneb codi arian hwn fel un sydd wedi'i gredydu ar eich cyfrif banc? +TransData=Dyddiad trosglwyddo +TransMetod=Dull trosglwyddo +Send=Anfon +Lines=Llinellau +StandingOrderReject=Cyhoeddi gwrthodiad +WithdrawsRefused=Gwrthodwyd debyd uniongyrchol +WithdrawalRefused=Gwrthodwyd tynnu'n ôl +CreditTransfersRefused=Gwrthodwyd trosglwyddiadau credyd +WithdrawalRefusedConfirm=A ydych chi'n siŵr eich bod am nodi gwrthodiad tynnu'n ôl ar gyfer cymdeithas +RefusedData=Dyddiad gwrthod +RefusedReason=Rheswm dros wrthod +RefusedInvoicing=Bilio'r gwrthod +NoInvoiceRefused=Peidiwch â chodi tâl am wrthod +InvoiceRefused=Gwrthodwyd yr anfoneb (Codwch y cwsmer am ei gwrthod) +StatusDebitCredit=Debyd/credyd statws +StatusWaiting=Aros +StatusTrans=Anfonwyd +StatusDebited=Debyd +StatusCredited=Credydu +StatusPaid=Talwyd +StatusRefused=Gwrthodwyd +StatusMotif0=Amhenodol +StatusMotif1=Cronfeydd annigonol +StatusMotif2=Cais yn cael ei herio +StatusMotif3=Dim gorchymyn talu debyd uniongyrchol +StatusMotif4=Gorchymyn Gwerthu +StatusMotif5=RIB na ellir ei ddefnyddio +StatusMotif6=Cyfrif heb falans +StatusMotif7=Penderfyniad Barnwrol +StatusMotif8=Rheswm arall +CreateForSepaFRST=Creu ffeil debyd uniongyrchol (SEPA FRST) +CreateForSepaRCUR=Creu ffeil debyd uniongyrchol (SEPA RCUR) +CreateAll=Creu ffeil debyd uniongyrchol +CreateFileForPaymentByBankTransfer=Creu ffeil ar gyfer trosglwyddo credyd +CreateSepaFileForPaymentByBankTransfer=Creu ffeil trosglwyddo credyd (SEPA) +CreateGuichet=Swyddfa yn unig +CreateBanque=Banc yn unig +OrderWaiting=Aros am driniaeth +NotifyTransmision=Cofnodi trosglwyddo archeb ffeil +NotifyCredit=Cofnodi credyd archeb +NumeroNationalEmetter=Rhif Trosglwyddydd Cenedlaethol +WithBankUsingRIB=Ar gyfer cyfrifon banc gan ddefnyddio RIB +WithBankUsingBANBIC=Ar gyfer cyfrifon banc gan ddefnyddio IBAN/BIC/SWIFT +BankToReceiveWithdraw=Derbyn Cyfrif Banc +BankToPayCreditTransfer=Cyfrif Banc a ddefnyddir fel ffynhonnell taliadau +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. +WithdrawalFile=Ffeil archeb debyd +CreditTransferFile=Ffeil trosglwyddo credyd +SetToStatusSent=Gosod i statws "Ffeil Wedi'i Anfon" +ThisWillAlsoAddPaymentOnInvoice=Bydd hyn hefyd yn cofnodi taliadau ar anfonebau ac yn eu dosbarthu fel rhai "Talwyd" os yw'r gweddill i'w dalu yn null +StatisticsByLineStatus=Ystadegau yn ôl statws llinellau +RUM=UMR +DateRUM=Dyddiad llofnod mandad +RUMLong=Cyfeirnod Mandad Unigryw +RUMWillBeGenerated=Os yw'n wag, bydd UMR (Cyfeirnod Mandad Unigryw) yn cael ei gynhyrchu unwaith y bydd gwybodaeth y cyfrif banc wedi'i chadw. +WithdrawMode=Modd debyd uniongyrchol (FRST neu RECUR) +WithdrawRequestAmount=Swm y Cais Debyd Uniongyrchol: +BankTransferAmount=Swm y Cais Trosglwyddo Credyd: +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. +CreditorIdentifier=Dynodwr Credydwr +CreditorName=Enw Credydwr +SEPAFillForm=(B) Cwblhewch yr holl feysydd sydd wedi eu nodi â * +SEPAFormYourName=Eich enw +SEPAFormYourBAN=Eich Enw Cyfrif Banc (IBAN) +SEPAFormYourBIC=Eich Cod Dynodwr Banc (BIC) +SEPAFrstOrRecur=Math o daliad +ModeRECUR=Taliad cylchol +ModeFRST=Taliad untro +PleaseCheckOne=Gwiriwch un yn unig +CreditTransferOrderCreated=Gorchymyn trosglwyddo credyd %s wedi'i greu +DirectDebitOrderCreated=Gorchymyn debyd uniongyrchol %s wedi'i greu +AmountRequested=Swm y gofynnwyd amdano +SEPARCUR=SEPA CUR +SEPAFRST=SEPA FRST +ExecutionDate=Dyddiad gweithredu +CreateForSepa=Creu ffeil debyd uniongyrchol +ICS=Dynodwr Credydwyr - ICS +IDS=Debitor Identifier +END_TO_END=Tag SEPA XML "EndToEndId" - ID unigryw a neilltuwyd fesul trafodiad +USTRD=Tag "Anstrwythuredig" SEPA XML +ADDDAYS=Ychwanegu dyddiau i'r Dyddiad Cyflawni +NoDefaultIBANFound=Ni chanfuwyd IBAN rhagosodedig ar gyfer y trydydd parti hwn +### Notifications +InfoCreditSubject=Talu archeb debyd uniongyrchol %s gan y banc +InfoCreditMessage=Mae'r gorchymyn talu debyd uniongyrchol %s wedi'i dalu gan y banc
    Data taliad: %s +InfoTransSubject=Trosglwyddo gorchymyn talu debyd uniongyrchol %s i'r banc +InfoTransMessage=Mae'r gorchymyn talu debyd uniongyrchol %s wedi'i anfon i'r banc gan %s %s.

    +InfoTransData=Swm: %s
    Dull: %s
    Dyddiad: %s +InfoRejectSubject=Gwrthodwyd gorchymyn talu debyd uniongyrchol +InfoRejectMessage=Helo,

    y gorchymyn talu debyd uniongyrchol o anfoneb %s yn ymwneud â'r cwmni %s, gyda swm o %s wedi'i wrthod gan y banc.

    --
    %s +ModeWarning=Ni osodwyd opsiwn ar gyfer modd go iawn, rydyn ni'n stopio ar ôl yr efelychiad hwn +ErrorCompanyHasDuplicateDefaultBAN=Mae gan gwmni ag id %s fwy nag un cyfrif banc diofyn. Dim ffordd o wybod pa un i'w ddefnyddio. +ErrorICSmissing=ICS ar goll yn y cyfrif banc %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Mae cyfanswm archeb debyd uniongyrchol yn wahanol i swm y llinellau +WarningSomeDirectDebitOrdersAlreadyExists=Rhybudd: Mae rhai archebion Debyd Uniongyrchol yn yr arfaeth eisoes (%s) y gofynnwyd amdanynt am swm o %s +WarningSomeCreditTransferAlreadyExists=Rhybudd: Mae angen rhywfaint o Drosglwyddiad Credyd ar y gweill eisoes (%s) am swm o %s +UsedFor=Used for %s diff --git a/htdocs/langs/cy_GB/workflow.lang b/htdocs/langs/cy_GB/workflow.lang new file mode 100644 index 00000000000..dcffec6a9b0 --- /dev/null +++ b/htdocs/langs/cy_GB/workflow.lang @@ -0,0 +1,36 @@ +# Dolibarr language file - Source file is en_US - workflow +WorkflowSetup=Gosod modiwl llif gwaith +WorkflowDesc=Mae'r modiwl hwn yn darparu rhai gweithredoedd awtomatig. Yn ddiofyn, mae'r llif gwaith ar agor (gallwch chi wneud pethau yn y drefn rydych chi ei eisiau) ond yma gallwch chi actifadu rhai gweithredoedd awtomatig. +ThereIsNoWorkflowToModify=Nid oes unrhyw addasiadau llif gwaith ar gael gyda'r modiwlau actifedig. +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Creu gorchymyn gwerthu yn awtomatig ar ôl i gynnig masnachol gael ei lofnodi (bydd gan yr archeb newydd yr un faint â'r cynnig) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Creu anfoneb cwsmer yn awtomatig ar ôl i gynnig masnachol gael ei lofnodi (bydd gan yr anfoneb newydd yr un swm â'r cynnig) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Creu anfoneb cwsmer yn awtomatig ar ôl i gontract gael ei ddilysu +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Creu anfoneb cwsmer yn awtomatig ar ôl i orchymyn gwerthu gael ei gau (bydd gan yr anfoneb newydd yr un faint â'r archeb) +descWORKFLOW_TICKET_CREATE_INTERVENTION=On ticket creation, automatically create an intervention. +# Autoclassify customer proposal or order +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Dosbarthu cynnig ffynhonnell gysylltiedig fel y'i bil pan fydd archeb gwerthu yn cael ei bilio (ac os yw swm yr archeb yr un peth â chyfanswm y cynnig cysylltiedig wedi'i lofnodi) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Dosbarthu cynnig ffynhonnell gysylltiedig fel y'i bil pan ddilysir anfoneb cwsmer (ac os yw swm yr anfoneb yr un peth â chyfanswm y cynnig cysylltiedig wedi'i lofnodi) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Dosbarthu archeb gwerthu ffynhonnell gysylltiedig fel y'i bil pan ddilysir anfoneb y cwsmer (ac os yw swm yr anfoneb yr un peth â chyfanswm yr archeb gysylltiedig) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Dosbarthu archeb gwerthu ffynhonnell gysylltiedig fel y'i bil pan fydd anfoneb cwsmer yn cael ei thalu (ac os yw swm yr anfoneb yr un peth â chyfanswm yr archeb gysylltiedig) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Dosbarthwch archeb gwerthu ffynhonnell gysylltiedig fel un sy'n cael ei gludo pan fydd llwyth yn cael ei ddilysu (ac os yw'r swm a gludir gan bob llwyth yr un peth ag yn y gorchymyn i ddiweddaru) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Dosbarthwch archeb gwerthu ffynhonnell gysylltiedig fel un sy'n cael ei gludo pan fydd llwyth ar gau (ac os yw'r swm a gludir gan bob llwyth yr un peth ag yn y gorchymyn i ddiweddaru) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Dosbarthu cynnig gwerthwr ffynhonnell gysylltiedig fel y'i bil pan ddilysir anfoneb y gwerthwr (ac os yw swm yr anfoneb yr un peth â chyfanswm y cynnig cysylltiedig) +# Autoclassify purchase order +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Dosbarthu archeb brynu ffynhonnell gysylltiedig fel y'i bil pan ddilysir anfoneb y gwerthwr (ac os yw swm yr anfoneb yr un peth â chyfanswm yr archeb gysylltiedig) +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 +# 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=Caewch yr holl ymyriadau sy'n gysylltiedig â'r tocyn pan fydd tocyn ar gau +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 +AutomaticClosing=Automatic closing +AutomaticLinking=Automatic linking diff --git a/htdocs/langs/cy_GB/zapier.lang b/htdocs/langs/cy_GB/zapier.lang new file mode 100644 index 00000000000..168c1282eac --- /dev/null +++ b/htdocs/langs/cy_GB/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 am Ddolibarr +ModuleZapierForDolibarrDesc = Zapier ar gyfer modiwl Dolibarr +ZapierForDolibarrSetup=Gosod Zapier ar gyfer Dolibarr +ZapierDescription=Rhyngwyneb â Zapier +ZapierAbout=Am y modiwl Zapier +ZapierSetupPage=Nid oes angen gosodiad ar ochr Dolibarr i ddefnyddio Zapier. Fodd bynnag, rhaid i chi gynhyrchu a chyhoeddi pecyn ar zapier i allu defnyddio Zapier gyda Dolibarr. Gweler y ddogfennaeth ar y dudalen wiki hon . diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index 6c8693ba013..b8ba3cba44c 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 @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=Hovedkontokonto for abonnementsbetal AccountancyArea=Bogførings område AccountancyAreaDescIntro=Brugen af regnskabsmodulet sker i følgende trin: AccountancyAreaDescActionOnce=Følgende handlinger udføres normalt kun én gang eller en gang om året ... -AccountancyAreaDescActionOnceBis=Næste skridt skal gøres for at spare tid i fremtiden, så den korrekte standardregnskabskonto foreslås, når du bogfører (skrivning i kladder og hovedbog) +AccountancyAreaDescActionOnceBis=Næste trin bør gøres for at spare dig tid i fremtiden ved at foreslå, at du automatisk den korrekte standardkonto konto, når du overfører data til regnskabet AccountancyAreaDescActionFreq=Følgende handlinger udføres normalt hver måned, uge ​​eller dag for meget store virksomheder ... -AccountancyAreaDescJournalSetup=Trin %s: Opret eller tjek indholdet af din list med kladder fra menuen %s +AccountancyAreaDescJournalSetup=TRIN %s: Tjek indholdet af din journalliste fra menuen %s AccountancyAreaDescChartModel=Trin %s: Kontroller, at der findes en skabelon til en kontoplan eller opret en fra menuen %s AccountancyAreaDescChart=TRIN %s:Vælg og/eller udfyld dit kontoplan fra menuen %s AccountancyAreaDescVat=Trin %s: Definer regnskabskonto for hver momssats. Til dette skal du bruge menupunktet %s. AccountancyAreaDescDefault=TRIN %s: Definer standard regnskabskonti. Til dette skal du bruge menupunktet %s. -AccountancyAreaDescExpenseReport=Trin %s: Definer standardkonti for hver type udgiftsrapport. Til dette skal du bruge menupunktet %s. +AccountancyAreaDescExpenseReport=TRIN %s: Definer standardkonti for hver type udgiftsrapport. Til dette skal du bruge menupunktet %s. AccountancyAreaDescSal=Trin %s: Definer standardkonto for betaling af lønninger. Til dette skal du bruge menupunktet %s. -AccountancyAreaDescContrib=TRIN %s: Definer standardregnskabskonti for særlige udgifter (diverse skatter). Til dette skal du bruge menupunktet %s. +AccountancyAreaDescContrib=TRIN %s: Definer standardregnskabskonti for Skatter (særlige udgifter). Til dette skal du bruge menupunktet %s. AccountancyAreaDescDonation=Trin %s: Definer standkonto for donationer. Til dette skal du bruge menupunktet %s. AccountancyAreaDescSubscription=Trin %s: Definer standardregnskabskonti for medlemsabonnement. Brug dette til menupunktet %s. AccountancyAreaDescMisc=Trin %s: Definer obligatorisk standardkonto og standardkonti for diverse transaktioner. Til dette skal du bruge menupunktet %s. AccountancyAreaDescLoan=Trin %s: Definer standardkonti for lån. Til dette skal du bruge menupunktet %s. AccountancyAreaDescBank=Trin %s: Definer regnskabskonto og regnskabskode for hver bank og finanskonto. Til dette skal du bruge menupunktet %s. -AccountancyAreaDescProd=Trin %s: Definer regnskabskonto for dine varer/ydelser. Til dette skal du bruge menupunktet %s. +AccountancyAreaDescProd=TRIN %s: Definer regnskabskonti på dine produkter/tjenester. Til dette skal du bruge menupunktet %s. AccountancyAreaDescBind=Trin %s: Tjek Bogføringer mellem eksisterende linjer for %s og regnskabskonto er udført, så systemet kan bogføre transaktionerne med et enkelt klik. Færdiggør manglende bogføringer. Dette gøres via menuen %s. AccountancyAreaDescWriteRecords=Trin %s: Bogfør transaktioner. Dette gøres via menuen %s, ved at klikke på knapen %s. @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Bogfør Udgiftsrapport CreateMvts=Opret ny transaktion UpdateMvts=Rediger en transaktion ValidTransaction=Bekræft transaktion -WriteBookKeeping=Registrer transaktioner i regnskab +WriteBookKeeping=Registrer transaktioner i regnskabet Bookkeeping=Hovedbog BookkeepingSubAccount=Underkonti AccountBalance=Kontobalance @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Regnskabskonto til registrering af donationer ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Regnskabskonto for at registrere abonnementer ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Regnskabskonto er som standard for at registrere 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=Regnskabskonto som standard for at registrere leverandørindskud +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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=Efter foruddefinerede grupper ByPersonalizedAccountGroups=Efter brugerdefinerede grupper ByYear=År NotMatch=Ikke angivet -DeleteMvt=Slet nogle operationslinjer fra regnskabet -DelMonth=Måned at slette +DeleteMvt=Slet nogle linjer fra regnskabet +DelMonth=Måned der skal slettes DelYear=År, der skal slettes DelJournal=Kladde, der skal slettes -ConfirmDeleteMvt=Dette sletter alle driftslinjer i regnskabet for året / måneden og / eller for en bestemt journal (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. -ConfirmDeleteMvtPartial=Dette sletter transaktionen fra regnskabet (alle driftslinjer relateret til den samme transaktion 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. +ConfirmDeleteMvtPartial=Dette vil slette transaktionen fra regnskabet (alle linjer relateret til den samme transaktion vil blive slettet) FinanceJournal=Finanskladde ExpenseReportsJournal=Udgiftskladder DescFinanceJournal=Regnskabskladde inkl. alle betalingstyper med bankkonto @@ -278,30 +282,31 @@ 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, der ikke er valideret og regnskabsår, der allerede er åbent -OverviewOfMovementsNotValidated=Trin 1 / Oversigt over bevægelser, der ikke er valideret. (Nødvendigt at lukke et regnskabsår) -AllMovementsWereRecordedAsValidated=Alle bevægelser blev registreret som godkendt -NotAllMovementsCouldBeRecordedAsValidated=Ikke alle bevægelser kunne registreres som godkendt -ValidateMovements=Valider bevægelser +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... 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 -MvtNotCorrectlyBalanced=Bevægelsen er ikke korrekt afbalanceret. Debet = %s | Kredit = %s +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 flere post til bogføre +NoNewRecordSaved=Ikke mere post at overføre ListOfProductsWithoutAccountingAccount=Liste over varer, der ikke er bundet til nogen regnskabskonto ChangeBinding=Ret Bogføring Accounted=Regnskab i hovedbog NotYetAccounted=Endnu ikke overført til regnskab ShowTutorial=Vis selvstudie NotReconciled=Ikke afstemt -WarningRecordWithoutSubledgerAreExcluded=Advarsel, alle handlinger uden underskrevet underkonti defineret filtreres og udelukkes fra denne visning +WarningRecordWithoutSubledgerAreExcluded=Advarsel, alle linjer uden defineret underkonto er filtreret og ekskluderet fra denne visning +AccountRemovedFromCurrentChartOfAccount=Regnskabskonto, der ikke findes i den nuværende kontoplan ## Admin BindingOptions=Bindende muligheder @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overførsel i regns ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overførsel i regnskab på udgiftsrapporter (udgiftsrapporter tages ikke med i regnskabet) ## Export -NotifiedExportDate=Markér eksporterede linjer som eksporteret (ændring af linjerne er ikke mulig) -NotifiedValidationDate=Valider de eksporterede poster (ændring eller sletning af linjerne er ikke mulig) +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 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 Modelcsv=Eksportmodel @@ -394,6 +400,21 @@ Range=Interval for regnskabskonto Calculated=Beregnet Formula=Formel +## Reconcile +Unlettering=Uforlige +AccountancyNoLetteringModified=Ingen afstemning ændret +AccountancyOneLetteringModifiedSuccessfully=Én afstemning blev ændret med succes +AccountancyLetteringModifiedSuccessfully=%s afstemning blev ændret +AccountancyNoUnletteringModified=Ingen uafstemt ændret +AccountancyOneUnletteringModifiedSuccessfully=Én afstemning blev ændret med succes +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)? +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 %s valgte post(er)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Visse obligatoriske trin i opsætningen blev ikke udført. Gør venligst dette ErrorNoAccountingCategoryForThisCountry=Ingen regnskabskontogruppe tilgængelig for land %s (Se Hjem - Opsætning - Ordbøger) @@ -406,6 +427,10 @@ Binded=Bundne linjer ToBind=Ikke Bogført UseMenuToSetBindindManualy=Linjer endnu ikke bundet, brug menuen %s for at gøre bindingen manuelt SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Beklager, at dette modul ikke er kompatibelt med den eksperimentelle funktion af situationsfakturaer +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 diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index 0f638c2d1ab..01b6d39787a 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -1,280 +1,280 @@ # Dolibarr language file - Source file is en_US - admin -BoldRefAndPeriodOnPDF=Udskriv reference og periode for produktvare i PDF -BoldLabelOnPDF=Udskriv produktetiketten med fed skrift i PDF -Foundation=Fundament +BoldRefAndPeriodOnPDF=Udskriv reference og periode for vare i PDF +BoldLabelOnPDF=Udskriv vare etiket med fed skrift i PDF +Foundation=Grundlag Version=Version -Publisher=Forlægger +Publisher=Udgiver VersionProgram=Program version -VersionLastInstall=Første version installeret -VersionLastUpgrade=Seneste stabile version +VersionLastInstall=Første installerede version +VersionLastUpgrade=Seneste opgraderede version VersionExperimental=Eksperimentel VersionDevelopment=Udvikling VersionUnknown=Ukendt VersionRecommanded=Anbefalet -FileCheck=Filsæt integritets tjek -FileCheckDesc=Dette værktøj giver dig mulighed for at kontrollere filens integritet og opsætningen af din program, idet du sammenligner hver fil med den officielle. Værdien af nogle opsætnings konstanter kan også kontrolleres. Du kan bruge dette værktøj til at bestemme om nogen filer er blevet ændret (f.eks. Af en hacker). -FileIntegrityIsStrictlyConformedWithReference=Filernes integritet er nøje i overensstemmelse med referencen. -FileIntegrityIsOkButFilesWereAdded=Filters integritetskontrol er udført, men nogle nye filer er blevet tilføjet. -FileIntegritySomeFilesWereRemovedOrModified=Filer integritetskontrol er mislykket. Nogle filer blev ændret, fjernet eller tilføjet. -GlobalChecksum=Globalt checksum -MakeIntegrityAnalysisFrom=Gør integritetsanalyse af applikationsfiler fra -LocalSignature=Indlejret lokal signatur (mindre pålidelig) -RemoteSignature=Lang distance signatur (mere pålidelig) +FileCheck=Filsæt integritets test +FileCheckDesc=Dette værktøj giver dig mulighed for at kontrollere integriteten af filer og opsætningen af dit program ved at sammenligne hver fil med den officielle. Værdien af nogle opsætnings konstanter kan også kontrolleres. Du kan bruge dette værktøj til at afgøre, om nogen filer er blevet ændret (f.eks. af en hacker). +FileIntegrityIsStrictlyConformedWithReference=Filernes integritet er i overensstemmelse med referencen. +FileIntegrityIsOkButFilesWereAdded=Kontrol af filernes integritet er bestået, men nogle nye filer er blevet tilføjet. +FileIntegritySomeFilesWereRemovedOrModified=Kontrol af filernes integritet mislykkedes. Nogle filer er ændret, fjernet eller tilføjet. +GlobalChecksum=Global kontrolsum +MakeIntegrityAnalysisFrom=Lav integritets kontrol af programfiler fra +LocalSignature=Lokal signatur (mindre pålidelig) +RemoteSignature=Fjernsignatur (mere pålidelig) FilesMissing=Manglende filer FilesUpdated=Opdaterede filer FilesModified=Ændrede filer FilesAdded=Tilføjede filer -FileCheckDolibarr=Kontroller integriteten af ​​applikationsfiler -AvailableOnlyOnPackagedVersions=Den lokale fil til integritetskontrol er kun tilgængelig, når applikationen er installeret fra en officiel pakke -XmlNotFound=Xml Integrity File af applikation ikke fundet -SessionId=Session ID -SessionSaveHandler="Handler" for at gemme sessioner +FileCheckDolibarr=Kontroller integriteten af programfiler +AvailableOnlyOnPackagedVersions=Den lokale fil til integritets kontrol er kun tilgængelig, når programmet er installeret fra en officiel pakke +XmlNotFound=Xml integritet filen for programmet blev ikke fundet +SessionId=Sessions ID +SessionSaveHandler=Handler til at gemme sessioner SessionSavePath=Session gem lokation -PurgeSessions=Udrensning af sessioner -ConfirmPurgeSessions=Vil du virkelig slette alle sessioner? Dette vil slette alle bruger (bortset fra dig selv) -NoSessionListWithThisHandler=Save session handler konfigureret i dit PHP tillader ikke at notere alle løbende sessioner. +PurgeSessions=Rydning af sessioner +ConfirmPurgeSessions=Vil du virkelig rydde alle sessioner? Dette vil afbryde forbindelsen til alle brugere (undtagen dig selv). +NoSessionListWithThisHandler=Gem sessionshåndtering, der er konfigureret i din PHP, tillader ikke at angive alle kørende sessioner. LockNewSessions=Lås nye forbindelser -ConfirmLockNewSessions=Er du sikker på, at du vil begrænse enhver ny Dolibarr-forbindelse til dig selv? Kun bruger %s kan derefter oprette forbindelse. -UnlockNewSessions=Fjern forbindelseslås +ConfirmLockNewSessions=Er du sikker på, at du vil begrænse enhver ny Dolibarr-forbindelse til dig selv? Kun brugeren %s vil være i stand til at oprette forbindelse efter det. +UnlockNewSessions=Fjern forbindelseslåsen YourSession=Din session -Sessions=Brugere Sessioner -WebUserGroup=Webserver bruger / gruppe -PermissionsOnFiles=Tilladelser til filer -PermissionsOnFilesInWebRoot=Tilladelser til filer i web-rodmappen -PermissionsOnFile=Tilladelser på fil %s -NoSessionFound=Din PHP-konfiguration tillade ikke optagelse af aktive sessioner. Den mappe, der bruges til at gemme sessioner ( %s ), kan være beskyttet (for eksempel via operativsystemet eller ved PHP-direktivet open_basedir). -DBStoringCharset=Database charset til at gemme data -DBSortingCharset=Database charset for at sortere data -HostCharset=Vært tegnsæt -ClientCharset=Klient karaktersæt -ClientSortingCharset=Kunden sortering -WarningModuleNotActive=Modul %s skal være aktiveret -WarningOnlyPermissionOfActivatedModules=Kun tilladelser i forbindelse med aktiveret moduler er vist her. Du kan aktivere andre moduler i Hjem->Indstillinger-Moduler. -DolibarrSetup=Dolibarr sæt op +Sessions=Brugersessioner +WebUserGroup=Webserver bruger/gruppe +PermissionsOnFiles=Rettigheder til filer +PermissionsOnFilesInWebRoot=Tilladelser til filer i web-rodmappe +PermissionsOnFile=Tilladelser til fil %s +NoSessionFound=Din PHP-konfiguration tillader tilsyneladende ikke liste over aktive sessioner. Biblioteket, der bruges til at gemme sessioner (%s) kan være beskyttet (for eksempel af OS-tilladelser eller af PHP-direktivet open_basedir). +DBStoringCharset=Database tegnsæt til at gemme data +DBSortingCharset=Database tegnsæt til at sortere data +HostCharset=Værts tegnsæt +ClientCharset=Klient tegnsæt +ClientSortingCharset=Klient sortering +WarningModuleNotActive=Modul %s skal være aktiveret +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=Indstillinger +SetupArea=Opsætning UploadNewTemplate=Upload nye skabelon(er) -FormToTestFileUploadForm=Formular til test af fil upload (ifølge opsætning) -ModuleMustBeEnabled=Modulet / applikationen %s skal være aktiveret -ModuleIsEnabled=Modulet / applikationen %s er blevet aktiveret -IfModuleEnabled=Note: ja er kun effektivt, hvis modul %s er aktiveret -RemoveLock=Fjern/omdøbe fil %s hvis den eksisterer, for at tillade brug af Update/Install værktøjet. -RestoreLock=Gendan filen %s , kun med tilladelse for "læsning", for at deaktivere yderligere brug af Update/Install-værktøjet. +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. SecuritySetup=Sikkerhedsopsætning PHPSetup=PHP opsætning OSSetup=OS opsætning -SecurityFilesDesc=Definer her muligheder relateret til sikkerhed om upload af filer. -ErrorModuleRequirePHPVersion=Fejl, dette modul kræver PHP version %s eller højere +SecurityFilesDesc=Definer her muligheder relateret til sikkerhed omkring upload af filer. +ErrorModuleRequirePHPVersion=Fejl, dette modul kræver PHP-version %s eller højere ErrorModuleRequireDolibarrVersion=Fejl, dette modul kræver Dolibarr version %s eller højere -ErrorDecimalLargerThanAreForbidden=Fejl, en præcision højere end %s er ikke understøttet. -DictionarySetup=Opsætning af ordbog +ErrorDecimalLargerThanAreForbidden=Fejl, en præcision højere end %s understøttes ikke. +DictionarySetup=Ordbogsopsætning Dictionary=Ordbøger -ErrorReservedTypeSystemSystemAuto=Værdien 'system' og 'systemauto' for denne type er reserveret. Du kan bruge 'bruger' som værdi at tilføje din egen konto -ErrorCodeCantContainZero=Kode kan ikke indeholde værdien 0 +ErrorReservedTypeSystemSystemAuto=Værdien 'system' og 'systemauto' for type er reserveret. Du kan bruge 'bruger' som værdi for at tilføje din egen post +ErrorCodeCantContainZero=Koden må ikke indeholde værdien 0 DisableJavascript=Deaktiver JavaScript og Ajax funktioner -DisableJavascriptNote=Bemærk: Kun til test eller fejlretning. For optimering til blind person eller tekstbrowsere foretrækker du måske at bruge opsætningen på brugerens profil -UseSearchToSelectCompanyTooltip=Også hvis du har et stort antal tredjeparter (> 100 000), kan du øge hastigheden ved at indstille konstant COMPANY_DONOTSEARCH_ANYWHERE til 1 i Setup-> Other. Søgningen er så begrænset til starten af ​​strengen. -UseSearchToSelectContactTooltip=Også hvis du har et stort antal tredjeparter (> 100 000), kan du øge hastigheden ved at indstille konstant CONTACT_DONOTSEARCH_ANYWHERE til 1 i Setup-> Other. Søgningen er så begrænset til starten af ​​strengen. -DelaiedFullListToSelectCompany=Vent, indtil der trykkes på en nøgle, inden du læser indholdet i kombinationslisten fra tredjepart.
    Dette kan øge ydeevnen, hvis du har et stort antal tredjeparter, men det er mindre praktisk. -DelaiedFullListToSelectContact=Vent, indtil der trykkes på en tast, inden du indlæser indholdet på kontaktlisten.
    Dette kan øge ydeevnen, hvis du har et stort antal kontakter, men det er mindre praktisk. -NumberOfKeyToSearch=Antal tegn, der skal udløses søgning: %s -NumberOfBytes=Antal byte -SearchString=Søg streng -NotAvailableWhenAjaxDisabled=Ikke tilgængelige, når Ajax er slået fra -AllowToSelectProjectFromOtherCompany=På tredjeparts dokument kan man vælge et projekt knyttet til en anden tredjepart -TimesheetPreventAfterFollowingMonths=Undgå optagetid brugt efter det følgende antal måneder -JavascriptDisabled=JavaScript slået -UsePreviewTabs=Brug forhåndsvisning faner +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. +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 +NumberOfBytes=Antal bytes +SearchString=Søgestreng +NotAvailableWhenAjaxDisabled=Ikke tilgængelig, når Ajax er deaktiveret +AllowToSelectProjectFromOtherCompany=På dokument fra en tredjepart, kan vælge et projekt knyttet til en anden tredjepart +TimesheetPreventAfterFollowingMonths=Undgå optagelsestid brugt efter det følgende antal måneder +JavascriptDisabled=JavaScript deaktiveret +UsePreviewTabs=Brug forhåndsvisningsfaner ShowPreview=Vis forhåndsvisning -ShowHideDetails=Vis skjul detaljer -PreviewNotAvailable=Preview ikke tilgængeligt -ThemeCurrentlyActive=Tema aktuelt aktive +ShowHideDetails=Vis-Skjul detaljer +PreviewNotAvailable=Forhåndsvisning er ikke tilgængelig +ThemeCurrentlyActive=Tema aktivt i øjeblikket MySQLTimeZone=Tidszone MySql (database) -TZHasNoEffect=Datoer gemmes og returneres af databaseserveren som om de blev holdt som sendt streng. Tidszonen har kun virkning, når du bruger UNIX_TIMESTAMP-funktionen (som ikke skal bruges af Dolibarr, så databasen TZ skal ikke have nogen effekt, selvom den er ændret efter indtastning af data). +TZHasNoEffect=Datoer gemmes og returneres af databaseserveren, som om de blev opbevaret som indsendt streng. Tidszonen har kun effekt, når du bruger UNIX_TIMESTAMP-funktionen (den bør ikke bruges af Dolibarr, så database TZ bør ikke have nogen effekt, selvom den ændres efter data blev indtastet). Space=Mellemrum Table=Tabel -Fields=Områder -Index=Index +Fields=Felter +Index=Indeks Mask=Maske NextValue=Næste værdi NextValueForInvoices=Næste værdi (fakturaer) NextValueForCreditNotes=Næste værdi (kreditnotaer) -NextValueForDeposit=Næste værdi (forskudsbetaling) +NextValueForDeposit=Næste værdi (forudbetaling) NextValueForReplacements=Næste værdi (udskiftninger) -MustBeLowerThanPHPLimit=Bemærk: din PHP-konfiguration i øjeblikket begrænser den maksimale filstørrelse for upload til%s %s, uanset værdien af denne parameter -NoMaxSizeByPHPLimit=Bemærk: Ingen grænse er sat i din PHP-konfiguration -MaxSizeForUploadedFiles=Maksimale størrelse for uploadede filer (0 til disallow enhver upload) -UseCaptchaCode=Brug grafisk kode på loginsiden +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 og nogle offentlige sider AntiVirusCommand=Fuld sti til antivirus kommando -AntiVirusCommandExample=Eksempel på ClamAv Daemon (kræver clamav-daemon): / usr / bin / clamdscan
    Example for ClamWin (meget meget langsom): c: \\ Progra ~ 1 \\ 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 -UserSetup=Brugerstyring opsætning +UserSetup=Opsætning af brugeradministration MultiCurrencySetup=Multi-valuta opsætning -MenuLimits=Grænseværdier og nøjagtighed -MenuIdParent=Moderselskab menuen ID -DetailMenuIdParent=ID for moder menu (0 for en top-menuen) -ParentID=Forældres ID -DetailPosition=Sorter antallet at definere menuen holdning +MenuLimits=Begrænsninger og nøjagtighed +MenuIdParent=Overordnet menu ID +DetailMenuIdParent=ID for overordnet menu (tom for en topmenu) +ParentID=Overordnet ID +DetailPosition=Sorterings nummer for at definere menuposition AllMenus=Alle NotConfigured=Modul/Applikation ikke konfigureret Active=Aktiv SetupShort=Opsætning -OtherOptions=Andre valgmuligheder -OtherSetup=Andet opsætning -CurrentValueSeparatorDecimal=Decimalseparator -CurrentValueSeparatorThousand=Tusind separator +OtherOptions=Andre muligheder +OtherSetup=Anden opsætning +CurrentValueSeparatorDecimal=Decimalskilletegn +CurrentValueSeparatorThousand=Tusindskilletegn Destination=Bestemmelsessted IdModule=Modul ID IdPermissions=Tilladelses ID LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Oversættelsesparametre -ClientHour=Kunden Tid (bruger) -OSTZ=Server OS Tids Zone -PHPTZ=Tidszone Server PHP -DaylingSavingTime=Sommertid (bruger) -CurrentHour=Nuværende time -CurrentSessionTimeOut=Aktuelle session timeout -YouCanEditPHPTZ=Hvis du vil indstille en anden PHP-tidszone (ikke nødvendig), kan du prøve at tilføje en .htaccess-fil med en linje som denne "SetEnv TZ Europe / Paris" -HoursOnThisPageAreOnServerTZ=Advarsel, i modsætning til andre skærmbilleder, er timer på denne side ikke i din lokale tidszone, men i serverens tidszone. -Box=Boks -Boxes=Bokse +LocalisationDolibarrParameters=Lokaliserings parametre +ClientHour=Klienttid (bruger) +OSTZ=Server OS tidszone +PHPTZ=PHP server tidszone +DaylingSavingTime=Sommertid +CurrentHour=PHP-tid (server) +CurrentSessionTimeOut=Aktuel session timeout +YouCanEditPHPTZ=For at indstille en anden PHP-tidszone (ikke påkrævet), kan du prøve at tilføje en .htaccess-fil med en linje som denne "SetEnv TZ Europe/Copenhagen" +HoursOnThisPageAreOnServerTZ=Advarsel, i modsætning til andre skærmbilleder er timerne på denne side ikke i din lokale tidszone, men i serverens tidszone. +Box=Widget +Boxes=Widgets MaxNbOfLinesForBoxes=Maks. antal linjer til widgets -AllWidgetsWereEnabled=Alle tilgængelige bokse er aktiveret -PositionByDefault=Standard for +AllWidgetsWereEnabled=Alle tilgængelige widgets er aktiveret +PositionByDefault=Standardrækkefølge Position=Position -MenusDesc=Hovedmenu for angive indholdet af de to menulinjer (vandret og lodret). -MenusEditorDesc=Menuen editor giver dig mulighed for at definere dine egne menupunkter. Brug den omhyggeligt for at undgå ustabilitet og permanent utilgængelig i menuen poster.
    Nogle moduler tilføje menupunkter( i en menu Alle for det meste ). Hvis du fjerner nogle af disse poster ved en fejl, kan du gendanne dem til at deaktivere og genaktivere modulet. +MenusDesc=Menumanager indstiller indholdet af de to menulinjer (vandret og lodret). +MenusEditorDesc=Menueditoren giver dig mulighed for at definere brugerdefinerede menupunkter. Brug den forsigtigt for at undgå ustabilitet og permanent utilgængelige menupunkter.
    Nogle moduler tilføjer menupunkter (i menu Alle for det meste). Hvis du fjerner nogle af disse poster ved en fejl, kan du gendanne dem ved at deaktivere og genaktivere modulet. MenuForUsers=Menu for brugere -LangFile=Fil. Lang -Language_en_US_es_MX_etc=Sprog (en_US, es_MX, ...) +LangFile=.lang fil +Language_en_US_es_MX_etc=Sprog (da_DK, en_US, ...) System=System -SystemInfo=System information -SystemToolsArea=Systemværktøjer område -SystemToolsAreaDesc=Dette område giver administrationsfunktioner. Brug menuen til at vælge den ønskede funktion. +SystemInfo=Systemoplysninger +SystemToolsArea=Systemværktøjs område +SystemToolsAreaDesc=Dette område indeholder administrative funktioner. Brug menuen til at vælge den ønskede funktion. Purge=Ryd -PurgeAreaDesc=På denne side kan du slette alle filer, der er genereret eller gemt af Dolibarr (midlertidige filer eller alle filer i %s bibliotek). Brug af denne funktion er normalt ikke nødvendig. Den leveres som en løsning for brugere, hvis Dolibarr er vært for en udbyder, der ikke tilbyder tilladelser til at slette filer genereret af webserveren. -PurgeDeleteLogFile=Slet log-filer, herunder %s oprettet til Syslog-modul (ingen risiko for at miste data) -PurgeDeleteTemporaryFiles=Slet alle logfiler og midlertidige filer (ingen risiko for at miste data). Parameteren kan være 'tempfilesold', 'logfiles' eller begge 'tempfilesold + logfiles'. Bemærk: Sletning af midlertidige filer udføres kun, hvis temp-biblioteket blev oprettet for mere end 24 timer siden. +PurgeAreaDesc=Denne side giver dig mulighed for at slette alle filer, der er genereret eller gemt af Dolibarr (midlertidige filer eller alle filer i biblioteket %s). Det er normalt ikke nødvendigt at bruge denne funktion. Det leveres som en løsning for brugere, hvis Dolibarr hostes af en udbyder, der ikke tilbyder tilladelser til at slette filer, der er genereret af webserveren. +PurgeDeleteLogFile=Slet logfiler, inklusive %s defineret for Syslog-modulet (ingen risiko for at miste data) +PurgeDeleteTemporaryFiles=Slet alle logfiler og midlertidige filer (ingen risiko for tab af data). Parameteren kan være 'tempfilesold', 'logfiles' eller begge 'tempfilesold+logfiles'. Bemærk: Sletning af midlertidige filer udføres kun, hvis den midlertidige mappe blev oprettet for mere end 24 timer siden. PurgeDeleteTemporaryFilesShort=Slet log og midlertidige filer (ingen risiko for at miste data) -PurgeDeleteAllFilesInDocumentsDir=Slet alle filer i mappen: %s .
    Dette vil slette alle genererede dokumenter relateret til elementer (tredjeparter, fakturaer osv. ..), filer uploadet til ECM modulet, database backup dumps og midlertidige filer. -PurgeRunNow=Rensningsanordningen nu -PurgeNothingToDelete=Ingen mappe eller filer, der skal slettes. -PurgeNDirectoriesDeleted= %s eller mapper slettes. -PurgeNDirectoriesFailed=Kunne ikke slette %s filer eller mapper. -PurgeAuditEvents=Ryd sikkerhedshændelser -ConfirmPurgeAuditEvents=Er du sikker på du ønsker at ryde alle sikkerhedshændelser? Alle sikkerheds-logs vil blive slettet, ingen andre data, vil blive fjernet. -GenerateBackup=Generer backup +PurgeDeleteAllFilesInDocumentsDir=Slet alle filer i mappen: %s.
    Dette vil slette alle genererede dokumenter relateret til elementer (tredjeparter, fakturaer osv...), filer uploadet til ECM modulet, database backup dumps og midlertidige filer. +PurgeRunNow=Ryd nu +PurgeNothingToDelete=Ingen mappe eller filer at slette. +PurgeNDirectoriesDeleted=%s filer eller mapper slettet. +PurgeNDirectoriesFailed=Kunne ikke slette %s filer eller mapper. +PurgeAuditEvents=Ryd alle sikkerhedshændelser +ConfirmPurgeAuditEvents=Er du sikker på, at du vil rydde alle sikkerhedshændelser? Alle sikkerhedslogfiler vil blive slettet, ingen andre data vil blive fjernet. +GenerateBackup=Generer sikkerhedskopi Backup=Sikkerhedskopi Restore=Gendan -RunCommandSummary=Sikkerhedskopi vil ske ved hjælp af følgende kommando +RunCommandSummary=Sikkerhedskopiering er blevet startet med følgende kommando BackupResult=Sikkerhedskopi resultat -BackupFileSuccessfullyCreated=Sikkerhedskopi filen genereret +BackupFileSuccessfullyCreated=Sikkerhedskopifil blev genereret YouCanDownloadBackupFile=Den genererede fil kan nu downloades -NoBackupFileAvailable=Ingen Sikkerhedskopi filer til rådighed. +NoBackupFileAvailable=Ingen sikkerhedskopifiler til rådighed. ExportMethod=Eksportmetode -ImportMethod=Import metode -ToBuildBackupFileClickHere=Klik her for at oprette en sikkerhedskopi fil. -ImportMySqlDesc=For at importere en MySQL backup-fil, kan du bruge phpMyAdmin via din hosting eller bruge kommandoen mysql fra kommandolinjen.
    For eksempel: -ImportPostgreSqlDesc=Sådan importerer du en backup-fil, skal du bruge pg_restore kommando fra kommandolinjen: -ImportMySqlCommand=%s %s <mybackupfile.sql +ImportMethod=Importmetode +ToBuildBackupFileClickHere=For at bygge en sikkerhedskopifil, klik her . +ImportMySqlDesc=For at importere en MySQL backup fil, kan du bruge phpMyAdmin via din hosting eller bruge mysql kommandoen fra kommandolinjen.
    For eksempel: +ImportPostgreSqlDesc=For at importere en sikkerhedskopifil skal du bruge kommandoen pg_restore fra kommandolinjen: +ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filnavn for Sikkerhedskopien: -Compression=Kompression -CommandsToDisableForeignKeysForImport=Kommando til at deaktivere udenlandske taster på import -CommandsToDisableForeignKeysForImportWarning=Obligatorisk, hvis du ønsker at være i stand til at gendanne din sql dump senere +FileNameToGenerate=Filnavn til sikkerhedskopiering: +Compression=Komprimering +CommandsToDisableForeignKeysForImport=Kommando til at deaktivere fremmednøgler ved import +CommandsToDisableForeignKeysForImportWarning=Obligatorisk hvis du ønsker at kunne gendanne dit sql-dump senere ExportCompatibility=Kompatibilitet af genereret eksportfil -ExportUseMySQLQuickParameter=Bruge --quick parameter -ExportUseMySQLQuickParameterHelp=Den '--quick' parameter hjælper grænse RAM forbrug til store tabeler. +ExportUseMySQLQuickParameter=Brug parameteren --quick +ExportUseMySQLQuickParameterHelp=Parameteren '--quick' hjælper med at begrænse RAM-forbruget til store tabeller. MySqlExportParameters=MySQL eksport parametre -PostgreSqlExportParameters= PostgreSQL eksportparametre -UseTransactionnalMode=Brug transaktionsbeslutning mode -FullPathToMysqldumpCommand=Fuld sti til mysqldump kommando -FullPathToPostgreSQLdumpCommand=Fuld sti til pg_dump kommando -AddDropDatabase=Tilføj DROP DATABASE kommando -AddDropTable=Tilføj DROP TABLE kommando +PostgreSqlExportParameters= PostgreSQL eksport parametre +UseTransactionnalMode=Brug transaktionstilstand +FullPathToMysqldumpCommand=Fuld sti til mysqldump kommandoen +FullPathToPostgreSQLdumpCommand=Fuld sti til kommandoen pg_dump +AddDropDatabase=Tilføj kommandoen DROP DATABASE +AddDropTable=Tilføj kommandoen DROP TABLE ExportStructure=Struktur -NameColumn=Navn kolonner -ExtendedInsert=Udvidede INSERT -NoLockBeforeInsert=Ingen lås kommandoer omkring INSERT -DelayedInsert=Forsinket indsætte -EncodeBinariesInHexa=Encode binære data i hexadecimal -IgnoreDuplicateRecords=Ignorer fejl pga. Dubletter (INSERT IGNORE) -AutoDetectLang=Autodetect (browsersprog) -FeatureDisabledInDemo=Funktionen slået fra i demo +NameColumn=Navngiv kolonner +ExtendedInsert=Udvidet INSERT +NoLockBeforeInsert=Ingen låsekommandoer omkring INSERT +DelayedInsert=Forsinket indsættelse +EncodeBinariesInHexa=Indkode binære data i hexadecimal +IgnoreDuplicateRecords=Ignorer fejl i dubletter (INSERT IGNORE) +AutoDetectLang=Autodetekter (browsersprog) +FeatureDisabledInDemo=Funktion deaktiveret i demo FeatureAvailableOnlyOnStable=Funktionen er kun tilgængelig på officielle stabile versioner -BoxesDesc=Widgets er komponenter, der viser nogle oplysninger, som du kan tilføje for at tilpasse nogle sider. Du kan vælge mellem at vise widgeten eller ej ved at vælge målside og klikke på 'Aktiver' eller ved at klikke på papirkurven for at deaktivere den. -OnlyActiveElementsAreShown=Kun elementer fra de aktiverede moduler er vist. -ModulesDesc=Modulerne / applikationerne bestemmer, hvilke funktioner der er tilgængelige i softwaren. Nogle moduler kræver tilladelse for at blive tildelt brugere efter aktivering af modulet. Klik på tænd / sluk-knappen%s for hvert modul for at aktivere eller deaktivere et modul / program. -ModulesDesc2=Klik på hjulknappen %s for at konfigurere modulet / applikationen. -ModulesMarketPlaceDesc=Du kan finde flere moduler som kan downloades på eksterne hjemmesider på internettet ... -ModulesDeployDesc=Hvis tilladelser i dit filsystem tillader det, kan du bruge dette værktøj til at installere et eksternt modul. Modulet vil så være synligt på fanen %s. -ModulesMarketPlaces=Finde eksterne app/moduler -ModulesDevelopYourModule=Udvikle din egen app / moduler -ModulesDevelopDesc=Du kan også udvikle dit eget modul eller finde en partner til at udvikle en til dig. -DOLISTOREdescriptionLong=I stedet for at aktivere www.dolistore.com websitet for at finde et eksternt modul, kan du bruge dette indlejrede værktøj, der vil udføre søgningen på eksternt marked for dig (kan være langsom, brug for internetadgang) ... +BoxesDesc=Widgets er komponenter, der viser nogle oplysninger, som du kan tilføje for at tilpasse nogle sider. Du kan vælge mellem at vise widgetten eller ej ved at vælge målside og klikke på 'Aktiver', eller ved at klikke på skraldespanden for at deaktivere den. +OnlyActiveElementsAreShown=Kun elementer fra aktiverede moduler er vist. +ModulesDesc=Modulerne/applikationerne bestemmer, hvilke funktioner der er tilgængelige i softwaren. Nogle moduler kræver tilladelser for at blive givet til brugere efter aktivering af modulet. Klik på tænd/sluk-knappen %s for hvert modul for at aktivere eller deaktivere et modul/en applikation. +ModulesDesc2=Klik på hjulknappen %s for at konfigurere modulet/applikationen. +ModulesMarketPlaceDesc=Du kan finde flere moduler til download på eksterne hjemmesider på internettet... +ModulesDeployDesc=Hvis rettigheder i dit filsystem tillader det, kan du bruge dette værktøj til at implementere et eksternt modul. Modulet vil derefter være synligt på fanen %s . +ModulesMarketPlaces=Find eksterne app/moduler +ModulesDevelopYourModule=Udvikl din egen app/moduler +ModulesDevelopDesc=Du kan også udvikle dit eget modul eller finde en partner til at udvikle et til dig. +DOLISTOREdescriptionLong=I stedet for at skifte til www.dolistore.com websted for at finde et eksternt modul, kan du bruge dette indbyggede værktøj, der vil udføre søgningen på den eksterne markedsplads for dig (kan være langsom, har brug for internetadgang)... NewModule=Nyt modul FreeModule=Gratis CompatibleUpTo=Kompatibel med version %s -NotCompatible=Dette modul virker ikke kompatibelt med din Dolibarr %s (Min %s - Max %s). -CompatibleAfterUpdate=Dette modul kræver en opdatering til din Dolibarr %s (Min %s - Max %s). +NotCompatible=Dette modul ser ikke ud til at være kompatibelt med din Dolibarr %s (Min %s - Max %s). +CompatibleAfterUpdate=Dette modul kræver en opdatering af din Dolibarr %s (Min %s - Max %s). SeeInMarkerPlace=Se på markedspladsen -SeeSetupOfModule=Se opsætning af modul%s -SetOptionTo=Indstil option %s til %s -Updated=Opdater -AchatTelechargement=Køb / Download -GoModuleSetupArea=For at implementere / installere et nyt modul skal du gå til modulopsætningsområdet: %s . -DoliStoreDesc=DoliStore den officielle markedsplads for Dolibarr ERP / CRM eksterne moduler -DoliPartnersDesc=Liste over virksomheder, der leverer specialudviklede moduler eller funktioner.
    Bemærk: Da Dolibarr er en open source-applikation, kan hvem som helst , der har erfaring med PHP-programmering udvikle et modul. -WebSiteDesc=Eksterne websites til flere (tredjeparts) tillægsmoduler ... -DevelopYourModuleDesc=Nogle løsninger til at udvikle dit eget modul ... +SeeSetupOfModule=Se opsætning af modul %s +SetOptionTo=Indstil indstillingen %s til %s +Updated=Opdateret +AchatTelechargement=Køb / download +GoModuleSetupArea=For at implementere / installere et nyt modul skal du gå til modulopsætningsområdet: %s . +DoliStoreDesc=DoliStore, den officielle markedsplads for Dolibarr ERP/CRM eksterne moduler +DoliPartnersDesc=Liste over virksomheder, der leverer specialudviklede moduler eller funktioner.
    Bemærk: Da Dolibarr er et open source-program, bør enhver med erfaring i PHP-programmering være i stand til at udvikle et modul. +WebSiteDesc=Eksterne websteder for flere tilføjelsesmoduler (ikke-kerne)... +DevelopYourModuleDesc=Nogle løsninger til at udvikle dit eget modul... URL=URL RelativeURL=Relativ URL -BoxesAvailable=Bokse til rådighed -BoxesActivated=Bokse aktiveret -ActivateOn=Aktivér om +BoxesAvailable=Widgets tilgængelige +BoxesActivated=Widgets aktiveret +ActivateOn=Aktiver til ActiveOn=Aktiveret på ActivatableOn=Aktiverbar til -SourceFile=Kildefilen -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Kun tilgængelig, hvis JavaScript ikke er slået +SourceFile=Kildefil +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Kun tilgængelig, hvis JavaScript ikke er deaktiveret Required=Påkrævet -UsedOnlyWithTypeOption=Kun i brug for visse typer tidsplaner +UsedOnlyWithTypeOption=Bruges kun af nogle dagsorden muligheder Security=Sikkerhed -Passwords=Passwords -DoNotStoreClearPassword=Krypter adgangskoder gemt i database (IKKE som almindelig tekst). Det anbefales kraftigt at aktivere denne indstilling. -MainDbPasswordFileConfEncrypted=Krypter databaseadgangskode gemt i conf.php. Det anbefales kraftigt at aktivere denne indstilling. -InstrucToEncodePass=At have en adgangskode, der er kodet ind conf.php - fil, i stedet for linje
    $dolibarr_main_db_pass="...";
    Med
    $dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=At have password afkodes (clear) i conf.php - fil, i stedet for linje
    $dolibarr_main_db_pass="krypteret:...";

    $dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Beskyt genererede PDF-filer. Dette anbefales IKKE, da det ødelægger bulk PDF generation. -ProtectAndEncryptPdfFilesDesc=Beskyttelse af et PDF-dokument, holder den til rådighed til at læse og udskrive PDF-browser. Men, redigering og kopiering er ikke længere muligt. Bemærk, at ved hjælp af denne funktion er det ikke muligt at opbygge en/flere globalt flettede Pdf-filer. -Feature=Funktion +Passwords=Adgangskoder +DoNotStoreClearPassword=Krypter adgangskoder gemt i databasen (IKKE som almindelig tekst). Det anbefales kraftigt at aktivere denne mulighed. +MainDbPasswordFileConfEncrypted=Krypter database adgangskode gemt i conf.php. Det anbefales kraftigt at aktivere denne mulighed. +InstrucToEncodePass=For at få adgangskoden indkodet i filen conf.php, skal du erstatte linjen
    $dolibarr_main_db_pass="...";
    med
    $dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=For at få adgangskoden afkodet (dekrypteret) i filen conf.php, skal du udskifte linjen
    $dolibarr_main_db_pass";
    med
    $dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Beskyt genererede PDF-filer. Dette anbefales IKKE, da det bryder masse generering af PDF. +ProtectAndEncryptPdfFilesDesc=Beskyttelse af et PDF-dokument holder det tilgængeligt for at læse og udskrive med enhver PDF-browser. Det er dog ikke længere muligt at redigere og kopiere. Bemærk, at brugen af denne funktion gør, at opbygningen af en global flettet PDF-fil ikke fungerer. +Feature=Feature DolibarrLicense=Licens -Developpers=Udviklere / bidragydere +Developpers=Udviklere/bidragydere OfficialWebSite=Dolibarr officielle hjemmeside -OfficialWebSiteLocal=Lokal hjemmeside (%s) +OfficialWebSiteLocal=Lokalt internet side (%s) OfficialWiki=Dolibarr dokumentation / Wiki OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Officielle markedsplads for eksterne moduler / addons -OfficialWebHostingService=Der refereres til web-hosting-tjenester (Cloud hosting) +OfficialMarketPlace=Officiel markedsplads for eksterne moduler/tilføjelser +OfficialWebHostingService=Refererede webhostingtjenester (Cloudhosting) ReferencedPreferredPartners=Foretrukne partnere OtherResources=Andre ressourcer ExternalResources=Eksterne ressourcer SocialNetworks=Sociale netværk -SocialNetworkId=Socialt netværk ID -ForDocumentationSeeWiki=For bruger- eller udviklerdokumentation (dok., ofte stillede spørgsmål...), tag
    et kig på Dolibarr Wiki:
    %s -ForAnswersSeeForum=For andre spørgsmål/hjælp kan du bruge Dolibarr-forummet:
    %s +SocialNetworkId=Socialt netværks ID +ForDocumentationSeeWiki=For bruger- eller udviklerdokumentation (dok., ofte stillede spørgsmål...),
    tag et kig på Dolibarr Wiki:
    %s +ForAnswersSeeForum=For andre spørgsmål/hjælp kan du bruge Dolibarr-forummet:
    %s HelpCenterDesc1=Her er nogle ressourcer til at få hjælp og support med Dolibarr. -HelpCenterDesc2=Nogle af disse ressourcer er kun tilgængelige i engelsk . -CurrentMenuHandler=Aktuel menu handleren +HelpCenterDesc2=Nogle af disse ressourcer er kun tilgængelige på engelsk. +CurrentMenuHandler=Nuværende menubehandler MeasuringUnit=Måleenhed LeftMargin=Venstre margen -TopMargin=Topmargen +TopMargin=Top margen PaperSize=Papirtype Orientation=Orientering SpaceX=Rum X @@ -282,429 +282,429 @@ SpaceY=Rum Y FontSize=Skriftstørrelse Content=Indhold ContentForLines=Indhold, der skal vises for hvert produkt eller hver tjeneste (fra variabel __LINES__ af indhold) -NoticePeriod=Notice period +NoticePeriod=Opsigelsesfrist NewByMonth=Ny efter måned -Emails=E-Post -EMailsSetup=E-post sætop +Emails=E-mails +EMailsSetup=Opsætning af e-mails EMailsDesc=Denne side giver dig mulighed for at indstille parametre eller muligheder for afsendelse af e-mail. -EmailSenderProfiles=E-mails afsender profiler -EMailsSenderProfileDesc=Du kan holde denne sektion tom. Hvis du indtaster nogle e-mail adresser her, vil de blive tilføjet til listen over mulige afsendere i kombinationsfeltet når du skrive en ny e-mail. -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-port (standardværdi i php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-vært (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_ERRORS_TO=E-mail, der bruges til at returnere e-mails ved fejl ('Errors-To' headeren) +EmailSenderProfiles=E-mails afsenderprofiler +EMailsSenderProfileDesc=Du kan holde denne sektion tom. Hvis du indtaster nogle e-mails her, vil de blive tilføjet til listen over mulige afsendere i kombinationsboksen, når du skriver en ny e-mail. +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_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 e-mail afsendelse (til testformål eller demoer) -MAIN_MAIL_FORCE_SENDTO=Sende alle e-mails til (i stedet for rigtige modtagere, til testformål) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Foreslå e-mails fra medarbejdere (hvis defineret) på listen over foruddefineret modtager, når du skriver en ny e-mail -MAIN_MAIL_SENDMODE=E-mail-sendemetode -MAIN_MAIL_SMTPS_ID=SMTP ID (hvis afsendelse af server kræver godkendelse) -MAIN_MAIL_SMTPS_PW=SMTP-adgangskode (hvis afsendelse af server kræver godkendelse) +MAIN_DISABLE_ALL_MAILS=Deaktiver al afsendelse af e-mail (til testformål eller demoer) +MAIN_MAIL_FORCE_SENDTO=Send alle e-mails til (i stedet for rigtige modtagere til testformål) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Foreslå e-mails fra medarbejdere (hvis defineret) på listen over foruddefinerede modtagere, når du skriver en ny e-mail +MAIN_MAIL_SENDMODE=Metode til afsendelse af e-mail +MAIN_MAIL_SMTPS_ID=SMTP ID (hvis afsendelsesserveren kræver godkendelse) +MAIN_MAIL_SMTPS_PW=SMTP adgangskode (hvis afsendelsesserveren kræver godkendelse) MAIN_MAIL_EMAIL_TLS=Brug TLS (SSL) kryptering MAIN_MAIL_EMAIL_STARTTLS=Brug TLS (STARTTLS) kryptering -MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Godkend autocertifikater til certificeringer +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Tillad selvsignerede certifikater MAIN_MAIL_EMAIL_DKIM_ENABLED=Brug DKIM til at generere e-mail signatur -MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain til brug med dkim -MAIN_MAIL_EMAIL_DKIM_SELECTOR=Navn på dkim selector -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_MAIL_EMAIL_DKIM_DOMAIN=E-mail domæne til brug med DKIM +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Navn på DKIM vælger +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 email til manuel afsendelse (Bruger e-mail eller Firma email) +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) UserEmail=Bruger e-mail -CompanyEmail=Firma Email -FeatureNotAvailableOnLinux=Funktionen ikke til rådighed på Unix-lignende systemer. Test din sendmail program lokalt. -FixOnTransifex=Fix oversættelsen på projektets online oversættelsesplatform -SubmitTranslation=Hvis oversættelsen for dette sprog ikke er komplet, eller du finder fejl, kan du rette det ved at redigere filer i mappen langs / %s og indsende din ændring til www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=Hvis oversættelsen til dette sprog ikke er komplet, eller du finder fejl, kan du rette dette ved at redigere filer i bibliotek langs /%s og indsende ændrede filer på dolibarr.org/forum eller, hvis du er en udvikler, med en PR på github.com/ Dolibarr / Dolibarr -ModuleSetup=Modulopsætning -ModulesSetup=Moduler / Applikation sætop +CompanyEmail=Firma e-mail +FeatureNotAvailableOnLinux=Funktionen er ikke tilgængelig på Unix lignende systemer. Test dit sendmail program lokalt. +FixOnTransifex=Ret oversættelsen på projektets online oversættelsesplatform +SubmitTranslation=Hvis oversættelsen for dette sprog ikke er komplet, eller du finder fejl, kan du rette dette ved at redigere filer i mappen langs/%s og indsende din ændring til www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Hvis oversættelsen til dette sprog ikke er komplet, eller du finder fejl, kan du rette dette ved at redigere filer i mappen langs/%s og indsende ændrede filer på dolibarr.org/forum eller, hvis du er en PR på github.com/Dolibarr/dolibarr +ModuleSetup=Modul opsætning +ModulesSetup=Moduler/Applikationer opsætning ModuleFamilyBase=System ModuleFamilyCrm=Customer Relationship Management (CRM) ModuleFamilySrm=Vendor Relationship Management (VRM) ModuleFamilyProducts=Produktstyring (PM) ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projekter / samarbejde -ModuleFamilyOther=Anden -ModuleFamilyTechnic=Multi-moduler værktøjer -ModuleFamilyExperimental=Eksperimentel moduler -ModuleFamilyFinancial=Finansielle moduler (regnskab/økonomi) -ModuleFamilyECM=ECM -ModuleFamilyPortal=Websites og anden frontal applikation +ModuleFamilyProjects=Projekter/Samarbejde +ModuleFamilyOther=Andet +ModuleFamilyTechnic=Multi-modul værktøjer +ModuleFamilyExperimental=Eksperimentelle moduler +ModuleFamilyFinancial=Finansielle moduler (Regnskab/Treasury) +ModuleFamilyECM=Electronic Content Management (ECM) +ModuleFamilyPortal=Websites og andre frontend applikationer ModuleFamilyInterface=Grænseflader med eksterne systemer -MenuHandlers=Menu håndterer -MenuAdmin=Rediger menuen -DoNotUseInProduction=Må ikke anvendes i produktion +MenuHandlers=Menu behandlere +MenuAdmin=Menuredigering +DoNotUseInProduction=Må ikke bruges i produktionen ThisIsProcessToFollow=Opgraderingsprocedure: -ThisIsAlternativeProcessToFollow=Dette er et alternativt setup til at behandle manuelt: +ThisIsAlternativeProcessToFollow=Dette er en alternativ opsætning til at behandle manuelt: StepNb=Trin %s -FindPackageFromWebSite=Find en pakke, der indeholder de funktioner, du har brug for (for eksempel på den officielle hjemmeside %s). -DownloadPackageFromWebSite=Download pakke (for eksempel fra den officielle hjemmeside %s). -UnpackPackageInDolibarrRoot=Udpak / pakk de pakkede filer ud i din Dolibarr-serverkatalog: %s -UnpackPackageInModulesRoot=For at implementere/installere et eksternt modul skal du udpakke/udpakke arkivfilen i serverbiblioteket dedikeret til eksterne moduler:
    %s -SetupIsReadyForUse=Modulets implementering er afsluttet. Du skal dog aktivere og opsætte modulet i din ansøgning ved at gå til sideopsætningsmodulerne: %s . -NotExistsDirect=Den alternative rodmappen er ikke defineret til en eksisterende mappe.
    -InfDirAlt=Siden version 3, er det muligt at definere en alternativ root directory. Dette giver dig mulighed for at gemme, til en dedikeret mappe, plugins og tilpassede skabeloner.
    du skal Bare oprette en mappe i roden af Dolibarr (f.eks: brugerdefineret).
    -InfDirExample=
    Derefter erklære, at det i filen conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Hvis disse linier er kommenteret med "#", for at aktivere dem, skal du udkommentere blot ved at fjerne " # " - tegnet. -YouCanSubmitFile=Du kan uploade .zip-filen i modulpakken herfra: -CurrentVersion=Dolibarr aktuelle version -CallUpdatePage=Gennemse til den side, der opdaterer databasestrukturen og dataene: %s. +FindPackageFromWebSite=Find en pakke, der giver de funktioner, du har brug for (for eksempel på det officielle websted %s). +DownloadPackageFromWebSite=Download pakke (for eksempel fra det officielle websted %s). +UnpackPackageInDolibarrRoot=Udpak/udzip de pakkede filer i din Dolibarr servermappe: %s +UnpackPackageInModulesRoot=For at implementere/installere et eksternt modul skal du udpakke/unzip arkivfilen i servermappen dedikeret til eksterne moduler:
    %s +SetupIsReadyForUse=Modulimplementeringen er afsluttet. Du skal dog aktivere og konfigurere modulet i din applikation ved at gå til Opsætning - Moduler/Applikationer : %s . +NotExistsDirect=Den alternative rodmappe er ikke defineret til en eksisterende mappe.
    +InfDirAlt=Siden version 3 er det muligt at definere en alternativ rodmappe. Dette giver dig mulighed for at gemme plug-ins og brugerdefinerede skabeloner i en dedikeret mappe.
    Bare opret en mappe ved roden af Dolibarr (f.eks.: custom).
    +InfDirExample=
    Deklarer det derefter i filen conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Hvis disse linjer er kommenteret med "#", for at aktivere dem, skal du blot fjerne kommentarer ved at fjerne tegnet "#". +YouCanSubmitFile=Du kan uploade .zip-filen for modulpakken herfra: +CurrentVersion=Dolibarr nuværende version +CallUpdatePage=Gå til siden, der opdaterer databasestrukturen og dataene: %s. LastStableVersion=Seneste stabile version LastActivationDate=Seneste aktiveringsdato LastActivationAuthor=Seneste aktiveringsforfatter -LastActivationIP=Seneste aktivering IP +LastActivationIP=Seneste aktiverings IP LastActivationVersion=Seneste aktiveringsversion -UpdateServerOffline=Opdater server offline +UpdateServerOffline=Opdaterings server utilgængelig WithCounter=Administrer en tæller -GenericMaskCodes=Du kan indtaste en hvilken som helst nummereringsmaske. I denne maske kan følgende tags bruges:
    {000000} svarer til et tal, der vil blive forøget på hver %s. Indtast så mange nuller som den ønskede længde på tælleren. Tælleren udfyldes med nuller fra venstre for at have så mange nuller som masken.
    {000000 + 000} samme som den forrige, men en forskydning svarende til tallet til højre for + -tegnet anvendes fra det første %s.
    {000000 @ x} samme som den forrige, men tælleren nulstilles til nul, når måned x er nået (x mellem 1 og 12 eller 0 for at bruge de første måneder af regnskabsåret defineret i din konfiguration eller 99 til nulstilles til nul hver måned). Hvis denne indstilling bruges, og x er 2 eller højere, kræves også sekvensen {åå} {mm} eller {åååå} {mm}.
    {dd} dag (01 til 31).
    {mm} måned (01 til 12).
    {åå} , {åååå} eller {y} a09a4b039f
    -GenericMaskCodes2= {cccc} klientkoden på n tegn
    {cccc000} kunden er efterfulgt af kunden, der er dedikeret til kunden. Denne tæller dedikeret til kunden nulstilles samtidig med den globale tæller.
    {tttt} Koden for tredjeparts type på n tegn (se menu Hjem - Opsætning - Ordbog - Typer tredjeparter). Hvis du tilføjer dette tag, vil tælleren være forskellig for hver type tredjepart.
    -GenericMaskCodes3=Alle andre tegn i maske vil forblive intakt.
    Mellemrum er ikke tilladt.
    -GenericMaskCodes3EAN=Alle andre tegn i masken forbliver intakte (undtagen * eller? I 13. position i EAN13).
    mellemrum er ikke tilladt.
    I EAN13 skal det sidste tegn efter det sidste} i 13. position være * eller? . Det erstattes af den beregnede nøgle.
    -GenericMaskCodes4a=Eksempel på 99 %s af tredje part TheCompany, med dato 2007-01-31:
    -GenericMaskCodes4b=Eksempel på tredjemand oprettet den 2007-03-01:
    -GenericMaskCodes4c=Eksempel på vare oprettet 2007-03-01:
    -GenericMaskCodes5=ABC{åå}{mm}-{000000} vil give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX vil give 0199-ZZZ/31/XXX
    {åå}{mm}-{0000}-{t} vil give IN0701-0099-A, hvis den type af virksomhed, er "Responsable Inscripto' med kode for type, der er 'A_RI' -GenericNumRefModelDesc=Retur en tilpasselig antal henhold til en bestemt maske. -ServerAvailableOnIPOrPort=Server findes på adressen %s port %s -ServerNotAvailableOnIPOrPort=Serveren er ikke tilgængelig på adressen %s port %s -DoTestServerAvailability=Test server-forbindelse +GenericMaskCodes=Du kan indtaste en hvilken som helst nummereringsmaske. I denne maske kan følgende tags bruges:
    {000000} svarer til et tal, som vil blive øget hver %s. Indtast så mange nuller som den ønskede længde på tælleren. Tælleren vil blive afsluttet med nuller fra venstre for at have lige så mange nuller som masken.
    {000000+000} samme som den forrige, men en forskydning svarende til tallet til højre for +-tegnet anvendes fra den første %s.
    {000000@x} samme som den foregående, men tælleren nulstilles, når måned x nås (x mellem 1 og 12, eller 0 for at bruge de første måneder af dit regnskabsår defineret i opsætningen, eller 99 for at nulstilles hver måned). Hvis denne mulighed bruges, og x er 2 eller højere, er rækkefølgen {yy}{mm} eller {yyyy}{mm} også påkrævet
    {dd} day (01 to 31).
    {mm} måned (01 to 12).
    {yy}, {yyyy} or {y} år over 2, 4 or 1 siffer.
    +GenericMaskCodes2={cccc} kundekoden på n tegn
    {cccc000} kundekoden på n tegn efterfølges af en tæller dedikeret til kunden. Denne tæller nulstilles samtidig med den globale tæller.
    {tttt} Koden for tredjepartstype på n tegn (se menuen Hjem - Opsætning - Ordbøger - Tredjepartstyper). Hvis du tilføjer dette tag, vil tælleren være forskellig for hver type tredjepart.
    +GenericMaskCodes3=Alle andre tegn i masken forbliver intakte.
    Mellemrum er ikke tilladt.
    +GenericMaskCodes3EAN=Alle andre tegn i masken forbliver intakte (undtagen * eller ? i 13. position i EAN13).
    Mellemrum er ikke tilladt.
    I EAN13 skal det sidste tegn efter det sidste } i 13. position være * eller ? . Det erstattes af det beregnede kontrolciffer.
    +GenericMaskCodes4a=Eksempel den 99 %s af tredjeparten TheCompany, med dato 2007-01-31:
    +GenericMaskCodes4b=Eksempel på tredjeparten oprettet den 2007-03-01:
    +GenericMaskCodes4c=Eksempel på vare oprettet den 2007-03-01:
    +GenericMaskCodes5=ABC{yy}{mm}-{000000} vil give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/ XXX vil give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} vil give IN0701-0099-A hvis virksomhedstypen er 'Responsable Inscripto' med kode for typen, der er 'A_RI' +GenericNumRefModelDesc=Returnerer et bruger tilpasset tal i henhold til en defineret maske. +ServerAvailableOnIPOrPort=Serveren er tilgængelig på adressen %s på port %s +ServerNotAvailableOnIPOrPort=Serveren er ikke tilgængelig på adressen %s på port %s +DoTestServerAvailability=Test serverforbindelse DoTestSend=Test afsendelse -DoTestSendHTML=Test sende HTML -ErrorCantUseRazIfNoYearInMask=Fejl, kan ikke bruge option @ til at nulstille tælleren hvert år, hvis sekvens {yy} eller {yyyy} ikke er i masken. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fejl, kan ikke brugeren mulighed @ hvis SEQUENCE (yy) (mm) eller (ÅÅÅÅ) (mm) ikke er i masken. -UMask=UMask parameter for nye filer på Unix / Linux / BSD-filsystemet. -UMaskExplanation=Denne parameter giver dig mulighed for at definere tilladelser indstillet som standard på filer, der er oprettet ved Dolibarr på serveren (under upload for eksempel).
    Det må være oktal værdi (for eksempel 0666 betyder, læse og skrive for alle).
    Ce paramtre ne Sert Pas sous un serveur Windows. -SeeWikiForAllTeam=Se på Wiki-siden for en liste over bidragydere og deres organisation -UseACacheDelay= Forsinkelse for caching eksport svar i sekunder (0 eller tomme for ikke cache) -DisableLinkToHelpCenter=Skjul linket " Brug for hjælp eller support " på login -siden -DisableLinkToHelp=Skjul linket til onlinehjælpen " %s " -AddCRIfTooLong=Der er ingen automatisk tekstindpakning, tekst, der er for lang, vises ikke på dokumenter. Tilføj venligst vognretur i tekstområdet, hvis det er nødvendigt. -ConfirmPurge=Er du sikker på, at du vil udføre denne udrensning?
    Dette vil permanent slette alle dine datafiler på ingen måde for at gendanne dem (ECM-filer, vedhæftede filer ...). -MinLength=Mindste længde -LanguageFilesCachedIntoShmopSharedMemory=Filer. Lang lastet i delt hukommelse -LanguageFile=Sprogfil -ExamplesWithCurrentSetup=Eksempler med den nuværende konfiguration -ListOfDirectories=Liste over OpenDocument-skabeloner mapper -ListOfDirectoriesForModelGenODT=Liste over mapper, som indeholder skabeloner filer med OpenDocument format.

    her fulde sti til mapper.
    Føjer vognretur mellem eah mappe.
    for At tilføje en mappe af GED modul, tilføje her DOL_DATA_ROOT/ecm/yourdirectoryname.

    Filer i disse mapper skal ende med .odt eller .ods. -NumberOfModelFilesFound=Antal ODT / ODS-template filer, der findes i disse mapper -ExampleOfDirectoriesForModelGen=Eksempler på syntaks:
    c: \\ myapp \\ mydocumentdir \\ mysubdir
    / home / myapp / mydocumentdir / mysubdir
    DOL_DATA_ROOT / ecm / ecmdir -FollowingSubstitutionKeysCanBeUsed=
    At vide hvordan du opretter dine odt dokumentskabeloner, før gemme dem i disse mapper, skal du læse wiki dokumentation: +DoTestSendHTML=Test afsendelse af HTML +ErrorCantUseRazIfNoYearInMask=Fejl, kan ikke bruge option @ til at nulstille tælleren hvert år, hvis sekvensen {yy} eller {yyyy} ikke er i masken. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fejl, kan ikke bruge option @, hvis sekvensen {yy}{mm} eller {yyyy}{mm} ikke er i masken. +UMask=UMask parameter for nye filer på Unix/Linux/BSD/Mac filsystem. +UMaskExplanation=Denne parameter giver dig mulighed for at definere rettigheder sat som standard på filer oprettet af Dolibarr på serveren (under upload for eksempel).
    Det skal være den Oktale værdi (f.eks. betyder 0666 læse og skrive rettigheder for alle).
    Denne parameter bruges ikke på en Windows-server. +SeeWikiForAllTeam=Tag et kig på Wiki-siden for en liste over bidragydere og deres organisation +UseACacheDelay= Forsinkelse for cachelagring af eksport svar i sekunder (0 eller tom for ingen cache) +DisableLinkToHelpCenter=Skjul linket "Brug for hjælp eller support" på login-siden +DisableLinkToHelp=Skjul linket til onlinehjælpen "%s" +AddCRIfTooLong=Der er ingen automatisk tekstombrydning, tekst, der er for lang, vises ikke på dokumenter. Tilføj venligst vognretur i tekstområdet, hvis det er nødvendigt. +ConfirmPurge=Er du sikker på, at du vil udføre denne rydning?
    Dette vil permanent slette alle dine datafiler uden mulighed for at gendanne dem (ECM filer, vedhæftede filer...). +MinLength=Minimum længde +LanguageFilesCachedIntoShmopSharedMemory=Filer .lang indlæst i delt hukommelse +LanguageFile=Sprog fil +ExamplesWithCurrentSetup=Eksempler med nuværende konfiguration +ListOfDirectories=Liste over OpenDocument skabelon mapper +ListOfDirectoriesForModelGenODT=Liste over mapper, der indeholder skabelon filer med OpenDocument format.

    Sæt den fulde sti af mapper her.
    Skriv hver mappe på en ny linie.
    For at tilføje en mappe til GED-modulet, tilføj her DOL_DATA_ROOT/ecm/dit mappenavn.

    Filer i disse mapper skal slutte med .odt eller .ods +NumberOfModelFilesFound=Antal ODT/ODS skabelon filer fundet i disse mapper +ExampleOfDirectoriesForModelGen=Eksempler på syntaks:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
    For at vide, hvordan du opretter dine odt dokument skabeloner, før du gemmer dem i disse mapper, skal du læse wiki-dokumentationen: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Placering af fornavn / navn -DescWeather=Følgende billeder vises på instrumentbrættet, når antallet af sene handlinger når følgende værdier: -KeyForWebServicesAccess=Key til at bruge Web Services (parameter "dolibarrkey" i webservices) -TestSubmitForm=Input test formular -ThisForceAlsoTheme=Brug af denne menu manager vil også bruge sit eget tema uanset brugerens valg. Også denne menustyring specialiseret i smartphones virker ikke på alle smartphones. Brug en anden menueleder, hvis du oplever problemer med din. +FirstnameNamePosition=Position af navn/efternavns +DescWeather=Følgende billeder vil blive vist på Betjeningspanelet, når antallet af sene handlinger når følgende værdier: +KeyForWebServicesAccess=Nøgle til at bruge webtjenester (parameter "dolibarrkey" i webtjenester) +TestSubmitForm=Input testformular +ThisForceAlsoTheme=Brug af denne menu manager vil også bruge sit eget tema, uanset brugerens valg. Denne menu manager, der er specialiseret til smartphones, virker ikke på alle smartphones. Brug en anden menu manager, hvis du oplever problemer med denne. ThemeDir=Skins mappe -ConnectionTimeout=Connection timeout +ConnectionTimeout=Forbindelse timeout ResponseTimeout=Svar timeout -SmsTestMessage=Test besked fra __ PHONEFROM__ til __ PHONETO__ -ModuleMustBeEnabledFirst=Modul %s skal være aktiveret, hvis du har brug for denne funktion. -SecurityToken=Nøglen til sikker URL'er -NoSmsEngine=Ingen SMS afsender manager tilgængelig. En SMS-afsender manager er ikke installeret med standardfordelingen, fordi de afhænger af en ekstern leverandør, men du kan finde nogle på %s +SmsTestMessage=Testmeddelelse fra __PHONEFROM__ til __PHONETO__ +ModuleMustBeEnabledFirst=Modul %s skal aktiveres først, hvis du har brug for denne funktion. +SecurityToken=Nøgle til sikre URL'er +NoSmsEngine=Ingen SMS afsender manager tilgængelig. En SMS afsender manager er ikke installeret med standarddistributionen, fordi de er afhængige af en ekstern leverandør, men du kan finde nogle på %s PDF=PDF -PDFDesc=Globale muligheder for PDF generation +PDFDesc=Globale muligheder for PDF-generering PDFOtherDesc=PDF-option, der er specifik for nogle moduler -PDFAddressForging=Regler for adresse sektion -HideAnyVATInformationOnPDF=Skjul alle oplysninger relateret til salgsafgift / moms -PDFRulesForSalesTax=Regler for salgs moms +PDFAddressForging=Regler for adresseafsnit +HideAnyVATInformationOnPDF=Skjul alle oplysninger relateret til salgsmoms/moms +PDFRulesForSalesTax=Regler for salgsmoms/moms PDFLocaltax=Regler for %s -HideLocalTaxOnPDF=Skjul %s sats i kolonnen Salgsmoms / moms +HideLocalTaxOnPDF=Skjul %s sats i kolonnen Salgsmoms/moms HideDescOnPDF=Skjul produktbeskrivelse -HideRefOnPDF=Skjul produkter ref. -HideDetailsOnPDF=Skjul produktlinjer detaljer -PlaceCustomerAddressToIsoLocation=Brug fransk standardposition (La Poste) til kundeadresseposition +HideRefOnPDF=Skjul vare ref. +HideDetailsOnPDF=Skjul detaljer om varelinjer +PlaceCustomerAddressToIsoLocation=Brug fransk standardposition (La Poste) til kundeadresse position Library=Bibliotek -UrlGenerationParameters=Parametre for at sikre URL'er -SecurityTokenIsUnique=Brug en unik securekey parameter for hver enkelt webadresse -EnterRefToBuildUrl=Indtast reference for objekter %s +UrlGenerationParameters=Parametre til sikre URL'er +SecurityTokenIsUnique=Brug en unik sikkerhedsnøgle parameter for hver URL +EnterRefToBuildUrl=Indtast reference for objekt %s GetSecuredUrl=Få beregnet URL -ButtonHideUnauthorized=Skjul uautoriserede handlingsknapper også for interne brugere (bare ellers gråtonet) +ButtonHideUnauthorized=Skjul uautoriserede handlingsknapper også for interne brugere (kun grå ellers) OldVATRates=Gammel momssats NewVATRates=Ny momssats -PriceBaseTypeToChange=Rediger priser med basisreferenceværdi defineret på -MassConvert=Start bulkkonvertering +PriceBaseTypeToChange=Ændre på priser med basisreferenceværdi defineret på +MassConvert=Start massekonvertering PriceFormatInCurrentLanguage=Prisformat på nuværende sprog -String=String +String=Streng String1Line=Streng (1 linje) TextLong=Lang tekst TextLongNLines=Lang tekst (n linjer) HtmlText=Html tekst Int=Heltal -Float=Float -DateAndTime=Dato og tid +Float=Decimaltal +DateAndTime=Dato og klokkeslæt Unique=Unik -Boolean=Boolean (et afkrydsningsfelt) +Boolean=boolsk (et afkrydsningsfelt) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris -ExtrafieldMail = EMail -ExtrafieldUrl = url +ExtrafieldMail = E-mail +ExtrafieldUrl = URL ExtrafieldSelect = Vælg liste -ExtrafieldSelectList = Vælg fra tabellen +ExtrafieldSelectList = Vælg fra tabel ExtrafieldSeparator=Separator (ikke et felt) -ExtrafieldPassword=Password -ExtrafieldRadio=Radio knapper (kun ét valg) -ExtrafieldCheckBox=Afkrydsningsfelterne -ExtrafieldCheckBoxFromList=Afkrydsningsfelter fra bordet +ExtrafieldPassword=Adgangskode +ExtrafieldRadio=Radioknapper (kun ét valg) +ExtrafieldCheckBox=Afkrydsningsfelter +ExtrafieldCheckBoxFromList=Afkrydsningsfelter fra tabellen ExtrafieldLink=Link til et objekt ComputedFormula=Beregnet felt -ComputedFormulaDesc=Du kan her indtaste en formel ved hjælp af andre egenskaber ved objekt eller en hvilken som helst PHP-kodning for at få en dynamisk beregnet værdi. Du kan bruge alle PHP-kompatible formler inklusive "?" betingelsesoperatør og følgende globale objekt: $db, $conf, $langs, $mysoc, $user, $object.
    ADVARSEL: Kun nogle egenskaber af $ object er muligvis tilgængelige. Hvis du har brug for en egenskaber, der ikke er indlæst, skal du bare hente dig selv objektet i din formel som i det andet eksempel.
    Brug af et beregnet felt betyder, at du ikke kan indtaste dig selv nogen værdi fra interface. Hvis der er en syntaksfejl, kan formlen muligvis ikke returnere noget.

    Eksempel på formel:
    $objekt-> id <10 ? round($object->id / 2, 2): ($object-> id + 2 * $user-> id) * (int) substr($mysoc->zip, 1, 2)

    Eksempel til genindlæsning af objekt
    (($reloadedobj = new Societe ($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['option_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Andre eksempel på formel til at tvinge belastning af objekt og dets overordnede objekt:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) &&\n($secondloadedobj = new Project ($db)) && \n($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Overordnet projekt ikke fundet' -Computedpersistent=Gem computeren felt -ComputedpersistentDesc=Beregnede ekstra felter gemmes i databasen, men værdien genberegnes dog først, når objektet i dette felt ændres. Hvis det beregnede felt afhænger af andre objekter eller globale data, kan denne værdi være forkert !! -ExtrafieldParamHelpPassword=Blankt felt her betyder, at denne værdi vil blive gemt uden kryptering (feltet skal kun være skjult med stjerne på skærmen).
    Vælg 'auto' for at bruge standardkrypteringsreglen til at gemme adgangskoden til databasen (så vil værdien gemmes som en en-vejs hash uden mulighed at hente den oprindelige værdi) -ExtrafieldParamHelpselect=Liste over værdier skal være linjer med formatnøgle, værdi (hvor nøglen ikke kan være '0')

    for eksempel:
    1, værdi1
    2, værdi2
    kode3, værdi3
    ...

    For at få liste afhængig af en anden komplementær attributliste:
    1, værdi1 | options_ parent_list_code : parent_key
    2, value2 | options_ parent_list_code : parent_key

    For at få listen afhængig af en anden liste:
    1, værdi1 | parent_list_code : parent_key
    2, value2 | parent_list_code : parent_key -ExtrafieldParamHelpcheckbox=Liste over værdier skal være linjer med formatnøgle, værdi (hvor nøglen ikke kan være '0')

    for eksempel:
    1, værdi1
    2, værdi2
    3, værdi3
    ... -ExtrafieldParamHelpradio=Liste over værdier skal være linjer med formatnøgle, værdi (hvor nøglen ikke kan være '0')

    for eksempel:
    1, værdi1
    2, værdi2
    3, værdi3
    ... -ExtrafieldParamHelpsellist=Liste over værdier kommer fra en tabel
    Syntaks: tabelnavn: label_field: id_field :: filtersql
    Eksempel: c_typent: libelle: id :: filtersql

    - id_felt er nøgle aq34 er nødvendigt. Det kan være en simpel test (f.eks. Aktiv = 1) for kun at vise aktiv værdi
    Du kan også bruge $ ID $ i filteret, som er det aktuelle id for det aktuelle objekt
    For at bruge en SELECT i filteret skal du bruge nøgleordet $ SEL $ til omgå anti-injektionsbeskyttelse.
    hvis du vil filtrere på ekstrafelter skal du bruge syntaks ekstra.fieldcode = ... (hvor feltkode er koden for extrafield)

    For at få listen afhængig af en anden supplerende attributliste:
    c_t: parent_list_code | parent_column: filter

    For at få listen afhængig af en anden liste:
    c_typent: libelle: id: a049 -ExtrafieldParamHelpchkbxlst=Liste over værdier kommer fra en tabel
    Syntaks: tabelnavn: label_field: id_field :: filtersql
    Eksempel: c_typent: libelle: id :: filtersql

    filter kan kun være en simpel test34 kan også bruge $ ID $ i filterheks er det aktuelle id for det aktuelle objekt
    For at udføre et SELECT i filter skal du bruge $ SEL $
    hvis du vil filtrere på ekstrafelter, skal du bruge syntaks ekstra.fieldcode = ... (hvor feltkode er kode af ekstra felt)

    for at få listen afhængigt af en anden supplerende liste attribut:
    c_typent: Libelle: id: options_ parent_list_code | parent_column: filter

    for at få listen, afhængigt af en anden liste:
    c_typent: libelle: id: parent_list_code | parent_column: filter -ExtrafieldParamHelplink=Parametre skal være ObjectName: Classpath
    Syntaks: ObjectName: Classpath -ExtrafieldParamHelpSeparator=Hold tomt for en simpel separator
    Indstil dette til 1 for en sammenklappende separator (åben som standard for ny session, og derefter bevares status for hver brugersession)
    Indstil dette til 2 for en sammenklappende separator (kollapset som standard for ny session, derefter holdes status foran hver brugersession) -LibraryToBuildPDF=Bibliotek, der bruges for PDF generation -LocalTaxDesc=Nogle lande kan anmode om to eller tre skatter på hver faktura linje. Hvis dette er tilfældet, skal du vælge typen for den anden og tredje skat og dens sats. Mulig type er:
    1: Lokal afgift gælder for varer og ydelser uden moms (lokal moms beregnes efter beløb uden skat)
    2: Lokal afgift gælder for varer og tjenesteydelser inklusive moms (lokal moms beregnes på beløb + hovedafgift)
    3: lokal skat gælder for varer uden moms (lokal moms beregnes på beløb uden skat)
    4: lokal skat gælder for varer inklusive moms (lokal moms beregnes på beløb + hovedstol)
    5: lokal skat gælder for tjenester uden moms på beløb uden skat)
    6: Lokal afgift gælder for tjenester inklusive moms (lokal moms er beregnet på beløb + skat) +ComputedFormulaDesc=Du kan her indtaste en formel ved hjælp af andre egenskaber af objektet eller enhver PHP-kodning for at få en dynamisk beregnet værdi. Du kan bruge alle PHP-kompatible formler inklusive "?" betingelsesoperator og følgende globale objekt: $db, $conf, $langs, $mysoc, $user, $object.
    ADVARSEL: Kun nogle egenskaber for $object er tilgængelige. Hvis du har brug for en egenskab, der ikke er indlæst, skal du hente objektet ind i din formel som i det andet eksempel.
    Brug af et beregnet felt betyder, at du ikke selv kan indtaste nogen værdi fra grænsefladen. Hvis der er en syntaksfejl, vil formlen muligvis ikke returnere noget.

    Eksempel på formel:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Eksempel på genindlæsning af objekt
    (($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'

    Andet eksempel på formel til at tvinge genindlæsning af objektet og dets overordnede objekt:
    (($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=Gem beregnet felt +ComputedpersistentDesc=Beregnet ekstra felter vil blive gemt i databasen, dog vil værdien først blive genberegnet, når objektet i dette felt ændres. Hvis det beregnede felt afhænger af andre objekter eller globale data, kan denne værdi være forkert!! +ExtrafieldParamHelpPassword=At lade dette felt være tomt betyder, at denne værdi vil blive gemt uden kryptering (feltet må kun skjules med stjerne på skærmen).
    Indstil 'auto' for at bruge standardkrypteringsreglen til at gemme adgangskoden i databasen (så vil værdien kun være hashen, ingen måde at hente den oprindelige værdi på) +ExtrafieldParamHelpselect=Liste over værdier skal være linjer med formatet nøgle,værdi (hvor nøgle ikke kan være '0')

    f.eks.:
    1,value1
    2,value2
    code3,value3
    ...

    For at gøre listen afhængig af en anden supplerende attributliste:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    For at gøre listen afhængig af en anden liste:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Liste over værdier skal være linjer med formatet nøgle,værdi (hvor nøgle ikke kan være '0')

    f.eks.:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpradio=Liste over værdier skal være linjer med formatet nøgle,værdi (hvor nøgle ikke kan være '0')

    f.eks.:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpsellist=Liste af værdier kommer fra en tabel
    Syntaks: table_name:label_field:id_field::filtersql
    Eksempel: c_typent:libelle:id::filtersql

    - id_field er nødvendigvis en primær int nøgle
    - filtersql er en SQL-betingelse. Det kan være en simpel test (f.eks. aktiv=1) kun at vise aktiv værdi
    Du kan også bruge $ID$ i filter, som er det nuværende id for det aktuelle objekt
    For at bruge en SELECT i filteret skal du bruge nøgleordet $SEL$ for at omgå anti-injection beskyttelse.
    hvis du vil filtrere på ekstrafelter, brug syntaks extra.fieldcode=... (hvor fieldcode er koden for ekstrafelt)

    For at få listen afhængig af en anden supplerende egenskabsliste:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    For at gøre listen afhængig af en anden liste:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=Liste over værdier kommer fra en tabel
    Syntaks: table_name:label_field:id_field::filtersql
    Eksempel: c_typent:libelle:id::filtersql

    filter kan være en simpel test (f.eks. aktiv=1) for kun at vise aktiv værdi
    Du kan også bruge $ID$ i filter, som er det nuværende id for det aktuelle objekt
    For at bruge en SELECT i filteret skal du bruge nøgleordet $SEL$
    hvis du vil filtrere på ekstrafelter, brug syntaks extra.fieldcode=... (hvor fieldcode er koden for ekstrafelt)

    For at få listen afhængig af en anden supplerende egenskabsliste:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    For at gøre listen afhængig af en anden liste:
    c_typent:libelle:id:parent_list_code|parent_column:filter +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) SMS=SMS -LinkToTestClickToDial=Indtast et telefonnummer for at ringe op til at vise et link til at teste ClickToDial url-adresse for bruger %s +LinkToTestClickToDial=Indtast et telefonnummer at ringe til, for at vise et link til at teste ClickToDial webadressen for bruger %s RefreshPhoneLink=Opdater link -LinkToTest=Klikbart link, der er genereret for bruger %s (klik på telefon-nummer for at teste) -KeepEmptyToUseDefault=Holde tomt for at bruge standard værdi +LinkToTest=Klikbart link genereret for brugeren %s (klik på telefonnummeret for at teste) +KeepEmptyToUseDefault=Hold tom for at bruge standardværdien KeepThisEmptyInMostCases=I de fleste tilfælde kan du holde dette felt tomt. DefaultLink=Standard link -SetAsDefault=Indstillet som standard -ValueOverwrittenByUserSetup=Advarsel, denne værdi kan blive overskrevet af bruger-specifik opsætning (hver bruger kan indstille sin egen clicktodial url) +SetAsDefault=Indstil som standard +ValueOverwrittenByUserSetup=Advarsel, denne værdi kan blive overskrevet af brugerspecifik opsætning (hver bruger kan indstille sin egen ClickToDial url) ExternalModule=Eksternt modul -InstalledInto=Installeret i mappen%s -BarcodeInitForThirdparties=Massestregkode init for tredjepart -BarcodeInitForProductsOrServices=Mass barcode init eller nulstil for produkter eller tjenester -CurrentlyNWithoutBarCode=I øjeblikket har du %s post på %s %s uden stregkode defineret. -InitEmptyBarCode=Initværdi for næste %s tomme poster +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=standard værdi for de tomme stregkoder %s EraseAllCurrentBarCode=Slet alle aktuelle stregkodeværdier -ConfirmEraseAllCurrentBarCode=Er du sikker på, at du vil slette alle nuværende stregkodeværdier? -AllBarcodeReset=Alle stregkodsværdier er blevet fjernet -NoBarcodeNumberingTemplateDefined=Ingen nummerering stregkode skabelon aktiveret i stregkode modul opsætning. -EnableFileCache=Aktivér filcache -ShowDetailsInPDFPageFoot=Tilføj flere detaljer i footer, f.eks. Firmanavn eller administrationsnavne (ud over faglige ids, firmakapital og momsnummer). -NoDetails=Ingen yderligere detaljer i footer -DisplayCompanyInfo=Vis firmaadresse -DisplayCompanyManagers=Vis administrationsnavne -DisplayCompanyInfoAndManagers=Vis firmaadresse og ledelsens navne -EnableAndSetupModuleCron=Hvis du vil have denne tilbagevendende faktura genereret automatisk, skal modul * %s * være aktiveret og korrekt konfigureret. Ellers skal generering af fakturaer udføres manuelt fra denne skabelon ved hjælp af knappen * Opret *. Bemærk, at selvom du aktiverede automatisk generation, kan du stadig sikkert starte den manuelle generation. Generering af duplikater i samme periode er ikke mulig. +ConfirmEraseAllCurrentBarCode=Er du sikker på, at du vil slette alle aktuelle stregkodeværdier? +AllBarcodeReset=Alle stregkodeværdier er blevet fjernet +NoBarcodeNumberingTemplateDefined=Ingen nummererings stregkodeskabelon aktiveret i opsætningen af stregkodemodulet. +EnableFileCache=Aktiver filcache +ShowDetailsInPDFPageFoot=Tilføj flere detaljer i sidefoden, såsom virksomhedsadresse eller ledernavne (ud over professionelle id'er, virksomhedskapital og momsnummer). +NoDetails=Ingen yderligere detaljer i sidefoden +DisplayCompanyInfo=Vis virksomhedsadresse +DisplayCompanyManagers=Vis manager navne +DisplayCompanyInfoAndManagers=Vis firmaadresse og ledernavne +EnableAndSetupModuleCron=Hvis du vil have denne tilbagevendende faktura genereret automatisk, skal modul *%s* være aktiveret og korrekt opsat. Ellers skal generering af fakturaer ske manuelt fra denne skabelon ved at bruge knappen *Opret*. Bemærk, at selvom du har aktiveret automatisk generering, kan du stadig trygt starte manuel generering. Generering af dubletter for samme periode er ikke mulig. ModuleCompanyCodeCustomerAquarium=%s efterfulgt af kundekode for en kunderegnskabskode -ModuleCompanyCodeSupplierAquarium=%s efterfulgt af leverandør kode for en leverandør regnskabskode +ModuleCompanyCodeSupplierAquarium=%s efterfulgt af leverandørkode for en leverandørr egnskabskode ModuleCompanyCodePanicum=Returner en tom regnskabskode. -ModuleCompanyCodeDigitaria=Returnerer en sammensat regnskabskode i henhold til tredjepartens navn. Koden består af et præfiks, der kan defineres i den første position efterfulgt af antallet af tegn, der er defineret i tredjepartskoden. -ModuleCompanyCodeCustomerDigitaria=%s efterfulgt af det afkortede kundenavn med antallet af tegn: %s for kundens regnskabskode. +ModuleCompanyCodeDigitaria=Returnerer en sammensat regnskabskode i henhold til navnet på tredjeparten. Koden består af et præfiks, der kan defineres i den første position efterfulgt af antallet af tegn defineret i tredjepartskoden. +ModuleCompanyCodeCustomerDigitaria=%s efterfulgt af det afkortede kundenavn med antallet af tegn: %s for kunderegnskabskoden. ModuleCompanyCodeSupplierDigitaria=%s efterfulgt af det afkortede leverandørnavn med antallet af tegn: %s for leverandørens regnskabskode. -Use3StepsApproval=Som standard skal indkøbsordrer oprettes og godkendes af 2 forskellige brugere (et trin / bruger til oprettelse og et trin / bruger at godkende. Bemærk at hvis brugeren har begge tilladelser til at oprette og godkende, er et trin / bruger tilstrækkeligt) . Du kan spørge med denne mulighed for at indføre et tredje trin / brugergodkendelse, hvis mængden er højere end en dedikeret værdi (så 3 trin vil være nødvendige: 1 = bekræftelse, 2 = første godkendelse og 3 = anden godkendelse, hvis mængden er tilstrækkelig).
    Indstil dette til tomt, hvis en godkendelse (2 trin) er tilstrækkelig, angiv den til en meget lav værdi (0,1), hvis der kræves en anden godkendelse (3 trin). +Use3StepsApproval=Indkøbsordrer skal som standard oprettes og godkendes af 2 forskellige brugere (et trin/bruger til at oprette og et trin/bruger til at godkende. Bemærk, at hvis bruger har både tilladelse til at oprette og godkende, vil et trin/bruger være nok) . Du kan med denne mulighed bede om at indføre et tredje trin/brugergodkendelse, hvis beløbet er højere end en dedikeret værdi (så 3 trin vil være nødvendige: 1=validering, 2=første godkendelse og 3=anden godkendelse, hvis beløbet er nok).
    Indstil denne til tom, hvis én godkendelse (2 trin) er nok, indstil den til en meget lav værdi (0,1), hvis en anden godkendelse (3 trin) altid er påkrævet. UseDoubleApproval=Brug en 3-trins godkendelse, når beløbet (uden skat) er højere end ... -WarningPHPMail=ADVARSEL: Opsætningen til at sende e-mails fra applikationen bruger standardgenerisk opsætning. Det er ofte bedre at konfigurere udgående e-mails for at bruge e-mail-udbyderens e-mail-server i stedet for standardopsætningen af flere grunde: -WarningPHPMailA=- Brug af e-mail-udbyderens server øger pålideligheden af din e-mail, så det øger leverings pålidelighed uden at blive markeret som SPAM -WarningPHPMailB=- Nogle e-mail-tjenesteudbydere (som Yahoo) tillader dig ikke at sende en e-mail fra en anden server end deres egen server. Din nuværende opsætning bruger programmets server til at sende e-mail og ikke din e-mail-udbyders server, 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) svarer muligvis "nej", fordi serveren ikke er deres, så få af dine sendte e-mails accepteres muligvis ikke til levering (pas også på din e-mail-udbyders afsendekvote). -WarningPHPMailC=- Brug af din egen e-mail-tjenesteudbyders SMTP-server til at sende e-mails er også interessant, så alle e-mails, der sendes fra applikationen, gemmes også 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 standard "PHP" -metoden til at sende e -mails, skal du bare ignorere denne advarsel eller fjerne den ved at indstille MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstant til 1 i Startside - Opsætning - Andet. -WarningPHPMail2=Hvis din e-mail SMTP udbyder skal begrænse e-mail klienten til nogle IP-adresser (meget sjælden), er dette IP-adressen til e-mail bruger agenten (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=Faktisk SPF-post fundet: %s +WarningPHPMail=ADVARSEL: Opsætningen til at sende e-mails fra applikationen bruger den generelle standardopsætning. Det er ofte bedre at konfigurere udgående e-mails til at bruge e-mail-serveren hos din e-mail-tjenesteudbyder i stedet for standardopsætningen af flere årsager: +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. +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=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 efter modul (er) -TheKeyIsTheNameOfHtmlField=Dette er navnet på HTML-feltet. Teknisk viden er nødvendig for at læse indholdet af HTML-siden for at få nøglenavnet på et felt. -PageUrlForDefaultValues=Du skal indtaste den relative vej til siden URL. Hvis du indbefatter parametre i URL, vil standardværdierne være effektive, hvis alle parametre er indstillet til samme værdi. -PageUrlForDefaultValuesCreate= 
    Eksempel:
    For formularen til oprettelse af en ny tredjepart er det %s .
    For URL for eksterne moduler installeret i brugerdefineret mappe, skal du ikke inkludere "custom /", så brug sti som mymodule / mypage.php og ikke custom / mymodule / mypage.php.
    Hvis du kun vil have standardværdi, hvis url har nogle parametre, kan du bruge %s -PageUrlForDefaultValuesList= 
    Eksempel:
    For siden der viser tredjeparter er den %s .
    For URL til eksterne moduler installeret i brugerdefineret bibliotek, skal du ikke inkludere "custom /" så brug en sti som mymodule / mypagelist.php og ikke custom / mymodule / mypagelist.php.
    Hvis du kun vil have standardværdi, hvis url har nogle parametre, kan du bruge %s -AlsoDefaultValuesAreEffectiveForActionCreate=Bemærk også, at overskrivning af standardværdier til oprettelse af formularer kun fungerer for sider, der er korrekt designet (så med parameterhandling = opret eller presend ...) -EnableDefaultValues=Aktivér tilpasning af standardværdier -EnableOverwriteTranslation=Aktivér brug af overskrevet oversættelse -GoIntoTranslationMenuToChangeThis=Der er fundet en oversættelse for nøglen med denne kode. For at ændre denne værdi skal du redigere den fra Hjem-Indstillinger-oversættelse. -WarningSettingSortOrder=Advarsel, indstilling af en standard sorteringsrækkefølge kan medføre 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 komme tilbage til denne side for at fjerne standard sorteringsrækkefølgen og gendanne standardadfærd. -Field=Field -ProductDocumentTemplates=Dokumentskabeloner til generering af produktdokument +DependsOn=Dette modul har brug for modulet/modulerne +RequiredBy=Dette modul er påkrævet af modul(erne) +TheKeyIsTheNameOfHtmlField=Dette er navnet på HTML-feltet. Der kræves teknisk viden for at læse indholdet af HTML-siden for at få navnet på et felt. +PageUrlForDefaultValues=Du skal indtaste den relative sti til sidens URL. Hvis du inkluderer parametre i URL, vil standardværdierne være effektive, hvis alle parametre er indstillet til samme værdi. +PageUrlForDefaultValuesCreate=
    Eksempel:
    For formularen til at oprette en ny tredjepart er det %s.
    For URL'er for eksterne moduler installeret i brugerdefineret mappe, skal du ikke inkludere "custom/", så brug stien som mymodule/mypage.php og ikke custom/mymodule/mypage.php.
    Hvis du kun ønsker standardværdi, hvis url har en eller anden parameter, kan du bruge %s +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 +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 +ProductDocumentTemplates=Dokumentskabeloner til at generere produktdokumenter FreeLegalTextOnExpenseReports=Gratis juridisk tekst om udgiftsrapporter WatermarkOnDraftExpenseReports=Vandmærke på udkast til udgiftsrapporter -ProjectIsRequiredOnExpenseReports=Projektet er obligatorisk for indtastning af en udgiftsrapport +ProjectIsRequiredOnExpenseReports=Projekt er obligatorisk for indtastning af udgiftsrapport PrefillExpenseReportDatesWithCurrentMonth=Forudfyld start- og slutdatoer for ny udgiftsrapport med start- og slutdatoer for den aktuelle måned -ForceExpenseReportsLineAmountsIncludingTaxesOnly=Tving indførelsen af udgiftsrapportbeløb altid i beløb med skatter -AttachMainDocByDefault=Sæt den til 1 hvis du ønsker at vedhæfte hoveddokumentet til e-mail som standard (hvis relevant) -FilesAttachedToEmail=Vedhængt fil +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Tving indtastning af udgiftsrapport beløb inkl. skatter +AttachMainDocByDefault=Sæt dette til 1, hvis du vil vedhæfte hoveddokument til e-mail som standard (hvis relevant) +FilesAttachedToEmail=Vedhæft fil SendEmailsReminders=Send dagsorden påmindelser via e-mails -davDescription=Opsæt en WebDAV-server -DAVSetup=Opstilling af modul DAV -DAV_ALLOW_PRIVATE_DIR=Aktivér den generiske private mappe (WebDAV dedikeret bibliotek med navnet "privat" - login kræves) -DAV_ALLOW_PRIVATE_DIRTooltip=Det generiske private bibliotek er et WebDAV bibliotek, som enhver kan få adgang til med sit applikations login/pass. -DAV_ALLOW_PUBLIC_DIR=Aktivér den generiske offentlige katalog (WebDAV dedikeret bibliotek med navnet "offentlig" - ingen login kræves) -DAV_ALLOW_PUBLIC_DIRTooltip=Det generiske offentlige bibliotek er et WebDAV-bibliotek, som enhver kan få adgang til (i læse- og skrivetilstand) uden nogen tilladelse krævet (login / adgangskode-konto). -DAV_ALLOW_ECM_DIR=Aktivér DMS/ECM-private katalog (rodkatalog til DMS/ECM-modulet - login kræves) -DAV_ALLOW_ECM_DIRTooltip=Rod kataloget, hvor alle filer uploades manuelt, når du bruger DMS / ECM-modulet. På samme måde som adgang fra webgrænsefladen skal du have et gyldigt login/adgangskode med tilstrækkelige tilladelser for at få adgang til det. +davDescription=Konfigurer WebDAV server +DAVSetup=Opsætning af modul DAV +DAV_ALLOW_PRIVATE_DIR=Aktiver den generiske private mappe (WebDAV dedikeret mappe med navnet "private" - login påkrævet) +DAV_ALLOW_PRIVATE_DIRTooltip=Det generiske private mappe er en WebDAV mappe, som enhver kan få adgang til med dets applikationslogin/kodeord. +DAV_ALLOW_PUBLIC_DIR=Aktiver den generiske offentlige mappe (WebDAV dedikeret mappe med navnet "public" - intet login påkrævet) +DAV_ALLOW_PUBLIC_DIRTooltip=Den generiske offentlige mappe er en WebDAV mappe, som alle kan få adgang til (i læse- og skrivetilstand), uden at der kræves nogen autorisation (login/adgangskode). +DAV_ALLOW_ECM_DIR=Aktiver det private DMS/ECM bibliotek (rodmappen for DMS/ECM-modulet - login påkrævet) +DAV_ALLOW_ECM_DIRTooltip=Rodbiblioteket, hvor alle filer uploades manuelt ved brug af DMS/ECM-modulet. På samme måde som adgang fra webgrænsefladen skal du have et gyldigt login/adgangskode med passende rettigheder for at få adgang til det. # Modules Module0Name=Brugere og grupper -Module0Desc=Brugere / Medarbejdere og Grupper management -Module1Name=Tredjeparter -Module1Desc=Virksomheder og kontakter ledelse (kunder, udsigter ...) +Module0Desc=Bruger og gruppe administration +Module1Name=Tredjepart +Module1Desc=Virksomheds- og kontakt administration (kunder, kundeemner...) Module2Name=Tilbud Module2Desc=Tilbudshåndtering Module10Name=Regnskab (forenklet) -Module10Desc=Enkelte regnskabsrapporter (tidsskrifter, omsætning) baseret på databaseindhold. Bruger ikke nogen oversigtstabel. +Module10Desc=Simple regnskabsrapporter (journaler, omsætning) baseret på databaseindhold. Bruger ikke nogen hovedbogs tabel. Module20Name=Tilbud Module20Desc=Tilbudshåndtering -Module22Name=Mass Emailings -Module22Desc=Administrer bulk emailing +Module22Name=Masse e-mails +Module22Desc=Administrer masse e-mailing Module23Name=Energi -Module23Desc=Overvågning af forbruget af energi +Module23Desc=Overvågning af energiforbrug Module25Name=Salgsordrer -Module25Desc=Salgsordrehåndtering +Module25Desc=Salgsordrestyring Module30Name=Fakturaer -Module30Desc=Forvaltning af fakturaer og kreditnoter til kunder. Forvaltning af fakturaer og kreditnotaer for leverandører +Module30Desc=Håndtering af fakturaer og kreditnotaer til kunder. Håndtering af fakturaer og kreditnotaer for leverandører Module40Name=Leverandører -Module40Desc=Leverandører og købsstyring (indkøbsordrer og fakturering af leverandørfakturaer) -Module42Name=Debug Logs -Module42Desc=Logning faciliteter (fil, syslog, ...). Disse logs er for teknisk/debug formål. +Module40Desc=Leverandører og indkøbsstyring (indkøbsordrer og fakturering af leverandørfakturaer) +Module42Name=Fejlsøgnings logfiler +Module42Desc=Lognings faciliteter (fil, syslog, ...). Sådanne logfiler er til tekniske/fejlsøgnings formål. Module43Name=Fejlfindingslinje -Module43Desc=Et værktøj til udvikling af tilføjelse af en fejlfindingslinje i din browser. +Module43Desc=Et værktøj til udviklere, tilføjer en fejlfindingslinje i din browser. Module49Name=Tekstredigeringsværktøjer Module49Desc=Indstillinger for tekstredigeringsværktøjer Module50Name=Varer -Module50Desc=Forvaltning af Produkter +Module50Desc=Håndtering af varer Module51Name=Masseforsendelser -Module51Desc=Masse papir postforsendelser 'ledelse +Module51Desc=Håndtering af masseforsendelser Module52Name=Lagre -Module52Desc=Aktiehåndtering +Module52Desc=Lagerstyring Module53Name=Ydelser -Module53Desc=Forvaltning af tjenester -Module54Name=Contracts/Subscriptions -Module54Desc=Forvaltning af kontrakter (tjenester eller tilbagevendende abonnementer) +Module53Desc=Ydelsesstyring +Module54Name=Kontrakter/Abonnementer +Module54Desc=Styring af kontrakter (ydelser eller tilbagevendende abonnementer) Module55Name=Stregkoder -Module55Desc=Stregkode- eller QR-kodeadministration -Module56Name=Betaling med kreditoverførsel -Module56Desc=Styring af betaling af leverandører via ordrer med kreditoverførsel. Det inkluderer generering af SEPA-fil til europæiske lande. +Module55Desc=Stregkode eller QR-kode styring +Module56Name=Betaling ved kreditoverførsel +Module56Desc=Styring af leverandørbetaling ved Credit Transfer ordrer. Det inkluderer generering af SEPA-fil for europæiske lande. Module57Name=Betalinger med Direct Debit -Module57Desc=Forvaltning af Direct Debit. Det inkluderer generering af SEPA-fil til europæiske lande. +Module57Desc=Styring af Direct Debit ordrer. Det inkluderer generering af SEPA-fil for europæiske lande. Module58Name=ClickToDial -Module58Desc=ClickToDial integration -Module60Name=mærkater +Module58Desc=Integration af et ClickToDial system (Asterisk, ...) +Module60Name=Mærkater Module60Desc=Håndtering af mærkater Module70Name=Interventioner -Module70Desc=Interventioner administration -Module75Name=Udgifter og ture noter -Module75Desc=Udgifter/Rejse bilag administration -Module80Name=Sendings -Module80Desc=Forsendelser og levering af notater +Module70Desc=Interventionsstyring +Module75Name=Udgifts- og rejsebilag +Module75Desc=Udgifts- og rejsebilagsstyring +Module80Name=Forsendelser +Module80Desc=Forsendelser og følgeseddel styring Module85Name=Banker og kontanter -Module85Desc=Forvaltning af bank/kontant konti +Module85Desc=Styring af bank- eller kassekonti Module100Name=Eksternt websted Module100Desc=Tilføj et link til et eksternt websted som et hovedmenuikon. Webstedet vises i en ramme under topmenuen. -Module105Name=Mailman og Sip -Module105Desc=Mailman eller SPIP interface til medlem-modul +Module105Name=Mailman og SPIP +Module105Desc=Mailman eller SPIP interface til medlemsmodul Module200Name=LDAP -Module200Desc=LDAP-katalogsynkronisering +Module200Desc=Synkronisering af LDAP-katalog Module210Name=PostNuke Module210Desc=PostNuke integration -Module240Name=Data eksport -Module240Desc=Værktøj til at eksportere Dolibarr-data (med hjælp) -Module250Name=Data import +Module240Name=Dataeksport +Module240Desc=Værktøj til at eksportere Dolibarr data (med hjælp) +Module250Name=Dataimport Module250Desc=Værktøj til at importere data til Dolibarr (med hjælp) Module310Name=Medlemmer -Module310Desc=Instituttets medlemmer forvaltning -Module320Name=RSS Feed +Module310Desc=Medlemsstyring +Module320Name=RSS-feed Module320Desc=Tilføj et RSS-feed til Dolibarr sider Module330Name=Bogmærker og genveje -Module330Desc=Opret genveje, der altid er tilgængelige, til de interne eller eksterne sider, som du ofte har adgang til -Module400Name=Projekter eller Potentielle kunder -Module400Desc=Forvaltning af projekter, ledere / muligheder og / eller opgaver. Du kan også tildele et element (faktura, ordre, forslag, intervention, ...) til et projekt og få et tværgående billede fra projektvisningen. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration +Module330Desc=Opret genveje, som altid er tilgængelige, til de interne eller eksterne sider, som du ofte bruger +Module400Name=Projekter eller kundeemner +Module400Desc=Styring af projekter, kundeemner/muligheder og/eller opgaver. Du kan også tildele et element (faktura, ordre, forslag, intervention, ...) til et projekt og få et tværgående billede fra projektvisningen. +Module410Name=Webkalender +Module410Desc=Webkalender integration Module500Name=Skatter og særlige udgifter -Module500Desc=Håndtering af andre udgifter (moms, sociale eller skattemæssige skatter, udbytte, ...) -Module510Name=Løn -Module510Desc=Optag og spørg medarbejderbetalinger -Module520Name=Loans -Module520Desc=Forvaltning af lån -Module600Name=Underretninger om forretningsbegivenhed -Module600Desc=Send e-mail-meddelelser udløst af en forretningsbegivenhed: pr. Bruger (opsætning defineret på hver bruger), pr. Tredjepartskontakter (opsætning defineret på hver tredjepart) eller ved specifikke e-mails -Module600Long=Bemærk, at dette modul sender e-mails i realtid, når en bestemt forretningsbegivenhed opstår. Hvis du leder efter en funktion til at sende e-mail påmindelser til dagsordensbegivenheder, skal du gå ind i opsætningen af modulets dagsorden. -Module610Name=Produkt Varianter -Module610Desc=Oprettelse af produktvarianter (farve, størrelse osv.) +Module500Desc=Styring af andre udgifter (moms, sociale eller skattemæssige skatter, udbytte, ...) +Module510Name=Lønninger +Module510Desc=Registrer og spor medarbejderbetalinger +Module520Name=Lån +Module520Desc=Styring af lån +Module600Name=Meddelelser om forretningsbegivenheder +Module600Desc=Send e-mail meddelelser udløst af en forretningsbegivenhed: pr. bruger (opsætning defineret på hver bruger), pr. tredjepartskontakter (opsætning defineret på hver tredjepart) eller af specifikke e-mails +Module600Long=Bemærk, at dette modul sender e-mails i realtid, når en bestemt forretningsbegivenhed indtræffer. Hvis du leder efter en funktion til at sende e-mail påmindelser om begivenheds hændelser, skal du gå ind i opsætningen af modul Begivenheder/Tidsplan. +Module610Name=Vare varianter +Module610Desc=Oprettelse af vare varianter (farve, størrelse osv.) Module700Name=Donationer -Module700Desc=Gaver 'ledelse +Module700Desc=Donations styring Module770Name=Udgiftsrapporter -Module770Desc=Administrer udgiftsrapporter hævder (transport, måltid, ...) -Module1120Name=Leverandørkommercielle forslag -Module1120Desc=Forespørg levenrandør om indkøbsordre og priser +Module770Desc=Administrer udgiftsrapporter (transport, måltid, ...) +Module1120Name=Leverandør kommercielle forslag +Module1120Desc=Forespørg leverandør om indkøbsordre og priser Module1200Name=Mantis Module1200Desc=Mantis integration Module1520Name=Dokumentgenerering -Module1520Desc=Masse e-mail-dokumentgenerering -Module1780Name=Tags/Categories -Module1780Desc=Opret tags/kategori (varer, kunder, leverandører, kontakter eller medlemmer) +Module1520Desc=Generering af masse e-mail dokumenter +Module1780Name=Tags/Kategorier +Module1780Desc=Opret tags/kategorier (produkter, kunder, leverandører, kontakter eller medlemmer) Module2000Name=WYSIWYG tekstredigeringsværktøj -Module2000Desc=Tillad, at tekstfelter redigeres / formateres ved hjælp af CKEditor (html) -Module2200Name=Dynamiske Priser +Module2000Desc=Tillad, at tekstfelter redigeres/formateres ved hjælp af CKEditor (html) +Module2200Name=Dynamiske priser Module2200Desc=Brug matematiske udtryk til automatisk generering af priser -Module2300Name=Scheduled jobs -Module2300Desc=Planlagte job management (alias cron eller chrono tabel) +Module2300Name=Planlagte job +Module2300Desc=Planlagt job styring (alias cron eller chrono tabel) 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ørrelationsstyring. +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=Dokument Management System / Esdh. Automatisk organisering af dit genereret eller lagrede dokumenter. Dele dem, når du har brug for. -Module2600Name=API/webservices (SOAP-server) -Module2600Desc=Aktivere Dolibarr SOAP-server, der leverer API service -Module2610Name=API / Web-tjenester (REST-server) -Module2610Desc=Aktivér Dolibarr REST-serveren, der leverer API-tjenester -Module2660Name=Ring til webservices (SOAP-klient) -Module2660Desc=Aktivér Dolibarr web services-klienten (Kan bruges til at skubbe data / anmodninger til eksterne servere. Kun indkøbsordrer understøttes i øjeblikket.) +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) +Module2600Desc=Aktiver Dolibarr SOAP serveren, der leverer API-tjenester +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.) Module2700Name=Gravatar -Module2700Desc=Brug online Gravatar service (www.gravatar.com) for at vise foto af brugere / medlemmer (fundet med deres e-mails). Kræver internetadgang -Module2800Desc=FTP Klient +Module2700Desc=Brug online Gravatar tjenesten (www.gravatar.com) til at vise billeder af brugere/medlemmer (fundet med deres e-mails). Kræver internetadgang +Module2800Desc=FTP klient Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind konverteringer kapaciteter -Module3200Name=Uændrede arkiver -Module3200Desc=Aktivér en uforanderlig log over forretningsbegivenheder. Begivenheder arkiveres i realtid. Loggen er et skrivebeskyttet bord af kæden, der kan eksporteres. Dette modul kan være obligatorisk for nogle lande. +Module2900Desc=GeoIP Maxmind konverteringsmuligheder +Module3200Name=Uforanderlige arkiver +Module3200Desc=Aktiver en uforanderlig log over forretningsbegivenheder. Begivenheder arkiveres i realtid. Loggen er en skrivebeskyttet tabel over kædede hændelser, der kan eksporteres. Dette modul er obligatorisk i nogle lande. Module3400Name=Sociale netværk -Module3400Desc=Aktivér felter til sociale netværk i tredjeparter og adresser (skype, twitter, facebook, ...). -Module4000Name=HRM -Module4000Desc=Human resources management (forvaltningen af ​​afdelingen, medarbejderkontrakter og følelser) -Module5000Name=Multi-selskab -Module5000Desc=Giver dig mulighed for at administrere flere selskaber -Module6000Name=Inter-moduler Workflow -Module6000Desc=Workflow-styring mellem forskellige moduler (automatisk oprettelse af objekt og / eller automatisk statusændring) -Module10000Name=websteder -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=Ferie/Fri Management -Module20000Desc=Definer og kontrol af ferie/fri anmodning -Module39000Name=Produktpartier -Module39000Desc=Masser, serienumre, spisesteder / salgsdato for ledelse af produkter -Module40000Name=Multicurrency +Module3400Desc=Aktiver sociale netværksfelter til tredjeparter og adresser (Skype, Twitter, Facebook, ...). +Module4000Name=Personaleadministration +Module4000Desc=Personaleledelse (ledelse af afdeling, medarbejderkontrakter og følelser) +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=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 Module40000Desc=Brug alternative valutaer i priser og dokumenter -Module50000Name=PAYBOX -Module50000Desc=Tilbyde kunder en PayBox online betalingsside (kredit- / betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage ad hoc-betalinger eller betalinger relateret til et bestemt Dolibarr-objekt (faktura, bestilling osv.) +Module50000Name=PayBox +Module50000Desc=Tilbyd kunderne en PayBox online betalingsside (kredit-/betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage ad-hoc betalinger eller betalinger relateret til et specifikt Dolibarr objekt (faktura, ordre osv...) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale-modulet SimplePOS (simple POS). +Module50100Desc=Point of Sale-modul SimplePOS (simpelt POS). Module50150Name=POS TakePOS -Module50150Desc=Salgsstedmodul TakePOS (POS-skærm POS, til butikker, barer eller restauranter). +Module50150Desc=Point of Sale modul TakePOS (touchscreen POS, til butikker, barer eller restauranter). Module50200Name=Paypal -Module50200Desc=Tilbyde kunder en PayPal-betalingssideside (PayPal-konto eller kreditkort / betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage ad hoc-betalinger eller betalinger relateret til et bestemt Dolibarr-objekt (faktura, bestilling osv.) +Module50200Desc=Tilbyd kunderne en PayPal online betalingsside (PayPal konto eller kredit-/betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage ad-hoc betalinger eller betalinger relateret til et specifikt Dolibarr objekt (faktura, ordre osv...) Module50300Name=Stribe -Module50300Desc=Tilbyde kunder en Stripe online betalingsside (kredit / betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage ad hoc-betalinger eller betalinger relateret til et bestemt Dolibarr-objekt (faktura, bestilling osv.) -Module50400Name=Regnskab (dobbeltindtastning) -Module50400Desc=Regnskabshåndtering (dobbelt poster, support hoved- og datterselskaber). Eksporter hovedbogen i flere andre regnskabssoftwareformater. +Module50300Desc=Tilbyd kunderne en Stripe online betalingsside (kredit-/betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage ad-hoc betalinger eller betalinger relateret til et specifikt Dolibarr objekt (faktura, ordre osv...) +Module50400Name=Regnskab (dobbelt bogføring) +Module50400Desc=Regnskabsstyring (dobbeltposter, understøtter hovedbøger og underordnede regnskabsbøger). Eksporter hovedbogen i flere andre regnskabs softwareformater. Module54000Name=PrintIPP -Module54000Desc=Direkte udskrivning (uden at åbne dokumenterne) ved hjælp af IPP-konnektorer (Printer skal være synlig fra serveren, og CUPS skal installeres på serveren). -Module55000Name=Afstemning, Undersøgelse eller Afstemning -Module55000Desc=Opret online afstemninger, undersøgelser eller stemmer (som Doodle, Studs, RDVz osv. ..) -Module59000Name=Margin -Module59000Desc=Modul til at følge margener -Module60000Name=Kommissioner -Module60000Desc=Modul til at håndtere Kommissioner +Module54000Desc=Direkte print (uden at åbne dokumenterne) ved hjælp af Cups IPP grænseflade (printeren skal være tilgængelig fra serveren, og CUPS skal være installeret på serveren). +Module55000Name=Afstemning, undersøgelse eller valg +Module55000Desc=Opret online afstemninger, undersøgelser eller valg (som Doodle, Studs, RDVz osv. ..) +Module59000Name=Marginer +Module59000Desc=Modul til at følge marginer +Module60000Name=Provisioner +Module60000Desc=Modul til at styre provisioner Module62000Name=Incoterms Module62000Desc=Tilføj funktioner til at administrere Incoterms Module63000Name=Ressourcer -Module63000Desc=Administrer ressourcer (printere, biler, værelser, ...) til tildeling til arrangementer -Permission11=Læs fakturaer -Permission12=Opret/rediger kundefakturaer -Permission13=Ugyldig kundefakturaer -Permission14=Bekræft fakturaer -Permission15=Send fakturaer via e-mail -Permission16=Opret betalinger for fakturaer -Permission19=Slet fakturaer +Module63000Desc=Administrer ressourcer (printere, biler, lokaler, ...) til at allokere til begivenheder +Permission11=Læs kundefakturaer +Permission12=Oprette/ændre kundefakturaer +Permission13=Ugyldiggør kundefakturaer +Permission14=Validere kundefakturaer +Permission15=Send kundefakturaer via e-mail +Permission16=Opret betalinger til kundefakturaer +Permission19=Slet kundefakturaer Permission21=Læs tilbud Permission22=Opret/rediger tilbud Permission24=Bekræft tilbud @@ -713,252 +713,259 @@ Permission26=Luk tilbud Permission27=Slet tilbud Permission28=Eksporter tilbud Permission31=Læs varer -Permission32=Opret/rediger varer/ydelser -Permission34=Slet varer/ydelser +Permission32=Opret/rediger varer +Permission33=Læs priser produkter +Permission34=Slet varer Permission36=Se/administrer skjulte varer -Permission38=Eksportere produkter +Permission38=Eksportere varer Permission39=Ignorer mindsteprisen -Permission41=Læs projekter og opgaver (delt projekt og projekter jeg er kontakt til). Kan også indtaste tidskrævet, for mig eller mit hierarki, på tildelte opgaver (Tidsskema) -Permission42=Opret / rediger projekter (delt projekt og projekter jeg er kontakt til). Kan også oprette opgaver og tildele brugere projekt og opgaver -Permission44=Slet projekter (delte projekter og projekter jeg er kontaktperson for) -Permission45=Eksport projekter +Permission41=Læse projekter og opgaver (fælles projekter og projekter, som jeg er kontaktperson for). +Permission42=Oprette/ændre projekter (delte projekter og projekter, som jeg er kontaktperson for). Kan også tildele brugere til projekter og opgaver +Permission44=Slet projekter (delte projekter og projekter, som jeg er kontaktperson for) +Permission45=Eksporter projekter Permission61=Læs interventioner -Permission62=Opret/rediger indgreb +Permission62=Opret/rediger interventioner Permission64=Slet interventioner Permission67=Eksporter interventioner Permission68=Send interventioner via e-mail -Permission69=Valider indgreb -Permission70=Ugyldige indgreb +Permission69=Validere interventioner +Permission70=Ugyldiggør interventioner Permission71=Læs medlemmer Permission72=Opret/rediger medlemmer Permission74=Slet medlemmer -Permission75=Hvilken type af medlemmerskab +Permission75=Opsæt typer af medlemskab Permission76=Eksporter data Permission78=Læs abonnementer -Permission79=Opret/rediger abonnementer -Permission81=Læs kundernes ordrer -Permission82=Opret/rediger kundeordrer -Permission84=Bekræfte kundernes ordrer -Permission86=Send kundernes ordrer -Permission87=Luk kunderne ordrer -Permission88=Annuller kundernes ordrer -Permission89=Slet kundernes ordrer -Permission91=Læs skatter/afgifter og moms -Permission92=Opret/rediger skatter/afgifter og moms -Permission93=Slet skatter/afgifter og moms -Permission94=Eksporter skatter/afgifter +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 +Permission89=Slet kundeordrer +Permission91=Læs sociale eller skattemæssige afgifter og moms +Permission92=Opret/ændre sociale eller skattemæssige skatter og moms +Permission93=Slet sociale eller skattemæssige skatter og moms +Permission94=Eksporter sociale eller skattemæssige afgifter Permission95=Læs rapporter -Permission101=Læs sendings -Permission102=Opret/rediger forsendelser -Permission104=Bekræft forsendelser +Permission101=Læs afsendelser +Permission102=Opret/rediger afsendelser +Permission104=Bekræft afsendelser Permission105=Send afsendelser via e-mail -Permission106=Eksporter forsendelser -Permission109=Slet forsendelser -Permission111=Læs finanskonti +Permission106=Eksporter afsendelser +Permission109=Slet afsendelser +Permission111=Læs finansielle konti Permission112=Opret/rediger/slet og sammenlign transaktioner -Permission113=Opret finansielle konti (opret, administrer kategorier af banktransaktioner) +Permission113=Opret finansielle konti (opret og administrer kategorier af banktransaktioner) Permission114=Afstem transaktioner -Permission115=Eksporttransaktioner og kontoudtog +Permission115=Eksporter transaktioner og kontoudtog Permission116=Overførsler mellem konti -Permission117=Administrer checks, der afsendes -Permission121=Læs tredjemand knyttet til brugerens +Permission117=Administrer afsendelse af checks +Permission121=Læs tredjeparter knyttet til brugeren Permission122=Opret/rediger tredjeparter knyttet til brugeren -Permission125=Slet tredjemand knyttet til brugerens -Permission126=Eksporter tredjemand +Permission125=Slet tredjeparter knyttet til brugeren +Permission126=Eksporter tredjeparter Permission130=Opret/rediger tredjeparts betalingsoplysninger -Permission141=Læs alle projekter og opgaver (også private projekter, som jeg ikke er kontakt til) -Permission142=Opret / rediger alle projekter og opgaver (også private projekter, som jeg ikke er kontakt til) -Permission144=Slet alle projekter og opgaver (også private projekter, jeg ikke har kontakt til) +Permission141=Læs alle projekter og opgaver (samt de private projekter, som jeg ikke er kontaktperson for) +Permission142=Opret/rediger alle projekter og opgaver (samt de private projekter, som jeg ikke er kontaktperson for) +Permission144=Slet alle projekter og opgaver (samt de private projekter er jeg ikke kontaktperson) +Permission145=Kan indtaste tidsforbrug, for mig eller mit hierarki, på tildelte opgaver (Timeseddel) Permission146=Læs udbydere -Permission147=Læs statistikinterval -Permission151=Læs "direkte debitering" ordrer -Permission152=Oprette/ændre en betaling med "direkte debitering" ordrer -Permission153=Sende/Overføre betaling via "direkte debitering" ordrer -Permission154=Optag kreditter / Afslag på ordrer med direkte debitering -Permission161=Læs kontrakter/abonnement -Permission162=Opret / ændre kontrakter/abonnement -Permission163=Aktivering af en tjeneste/abonnement af en kontrakt, -Permission164=Deaktivere en service/abonnement af en kontrakt, -Permission165=Slette aftaler/abonnementer -Permission167=Eksportkontrakter -Permission171=Læs rejser og udgifter (din og dine underordnede) -Permission172=Opret/rediger ture og udgifter -Permission173=Slette ture og udgifter +Permission147=Læs statistik +Permission151=Læs Direct Debit betalings ordrer +Permission152=Opret/ændre Direct Debit betalings ordrer +Permission153=Send/overfør Direct Debit betalings ordrer +Permission154=Registrer krediteringer/afvisninger af betalingsordrer med Direct Debit +Permission161=Læs kontrakter/abonnementer +Permission162=Oprette/ændre kontrakter/abonnementer +Permission163=Aktiver en tjeneste/abonnement på en kontrakt +Permission164=Deaktiver en tjeneste/abonnement på en kontrakt +Permission165=Slet kontrakter/abonnementer +Permission167=Eksporter kontrakter +Permission171=Læs rejser og udgifter (dine og dine underordnede) +Permission172=Opret/ændre rejser og udgifter +Permission173=Slet rejser og udgifter Permission174=Læs alle rejser og udgifter -Permission178=Eksport rejser og udgifter +Permission178=Eksporter rejser og udgifter Permission180=Læs leverandører Permission181=Læs indkøbsordrer -Permission182=Opret / modtag indkøbsordrer -Permission183=Valider indkøbsordrer -Permission184=Godkend købsordrer -Permission185=Bestil eller afbestill købsordrer -Permission186=Modtage indkøbsordrer -Permission187=Luk købsordrer +Permission182=Opret/rediger indkøbsordrer +Permission183=Validere indkøbsordrer +Permission184=Godkend indkøbsordrer +Permission185=Bestil eller annuller indkøbsordrer +Permission186=Modtag indkøbsordrer +Permission187=Luk indkøbsordrer Permission188=Annuller indkøbsordrer Permission192=Opret linjer -Permission193=Annuller poster +Permission193=Annuller linjer Permission194=Læs båndbredde linjer -Permission202=Opret ADSL-forbindelser -Permission203=Bestil forbindelser ordrer -Permission204=Bestil tilslutninger -Permission205=Håndtér forbindelser +Permission202=Opret ADSL forbindelser +Permission203=Bestil ordreforbindelser +Permission204=Bestil forbindelser +Permission205=Administrer forbindelser Permission206=Læs tilslutninger -Permission211=Læs Telefoni -Permission212=Ordrelinjer -Permission213=Aktivér linje -Permission214=Opsætningstelefoni -Permission215=Opsætningsudbydere -Permission221=Læs emailings -Permission222=Opret/rediger e-mails (emne, modtagere ...) -Permission223=Bekræft emailings (tillader afsendelse) -Permission229=Slet emailings +Permission211=Læs telefoni +Permission212=Bestil linjer +Permission213=Aktiver linje +Permission214=Opsætning af telefoni +Permission215=Opsætning af udbydere +Permission221=Læs e-mails +Permission222=Opret/rediger e-mails (emne, modtagere...) +Permission223=Valider e-mails (tillader afsendelse) +Permission229=Slet e-mails Permission237=Se modtagere og info -Permission238=Send e-mails manuelt -Permission239=Slet e-mails efter godkendelse eller sendes +Permission238=Send mails manuelt +Permission239=Slet mails efter validering eller sendt Permission241=Læs kategorier Permission242=Opret/rediger kategorier Permission243=Slet kategorier -Permission244=Se indholdet af den skjulte kategorier +Permission244=Se indholdet af de skjulte kategorier Permission251=Læs andre brugere og grupper -PermissionAdvanced251=Læse andre brugere -Permission252=Opret / ændre andre brugere, grupper og yours permisssions -Permission253=Opret / rediger andre brugere, grupper og tilladelser +PermissionAdvanced251=Læs andre brugere +Permission252=Læs tilladelser fra andre brugere +Permission253=Opret/rediger andre brugere, grupper og tilladelser PermissionAdvanced253=Opret/rediger interne/eksterne brugere og tilladelser Permission254=Opret/rediger kun eksterne brugere -Permission255=Opret/rediger anden brugers adgangskode -Permission256=Ændre sin egen adgangskode -Permission262=Udvid adgang til alle tredjeparter OG deres objekter (ikke kun tredjeparter, som brugeren er salgsrepræsentant for).
    Ikke effektiv for eksterne brugere (altid begrænset til sig selv til forslag, ordrer, fakturaer, kontrakter osv.).
    Ikke effektiv til projekter (kun regler om projekttilladelser, synlighed og opgave). -Permission263=Udvid adgangen til alle tredjeparter UDEN deres objekter (ikke kun tredjeparter, som brugeren er salgsrepræsentant for).
    Ikke effektiv for eksterne brugere (altid begrænset til sig selv til forslag, ordrer, fakturaer, kontrakter osv.).
    Ikke effektiv til projekter (kun regler om projekttilladelser, synlighed og opgave). +Permission255=Rediger andre brugeres adgangskode +Permission256=Slet eller deaktiver andre brugere +Permission262=Udvid adgangen til alle tredjeparter OG deres objekter (ikke kun tredjeparter, som brugeren er salgsrepræsentant for).
    Ikke effektiv for eksterne brugere (altid begrænset til sig selv for forslag, ordrer, fakturaer, kontrakter osv.).
    Ikke effektiv for projekter (kun regler om projekttilladelser, synlighed og tildelingsspørgsmål). +Permission263=Udvid adgangen til alle tredjeparter UDEN deres objekter (ikke kun tredjeparter, som brugeren er salgsrepræsentant for).
    Ikke effektiv for eksterne brugere (altid begrænset til sig selv for forslag, ordrer, fakturaer, kontrakter osv.).
    Ikke effektiv for projekter (kun regler om projekttilladelser, synlighed og tildelingsspørgsmål). Permission271=Læs CA Permission272=Læs fakturaer -Permission273=Udsteder fakturaer +Permission273=Udsted fakturaer Permission281=Læs kontakter Permission282=Opret/rediger kontakter Permission283=Slet kontakter -Permission286=Eksporter kontaktpersoner +Permission286=Eksporter kontakter Permission291=Læs takster -Permission292=Angive tilladelser på de tariffer -Permission293=Rediger kundens takster +Permission292=Indstil tilladelser til taksterne +Permission293=Ændre kundens tariffer Permission300=Læs stregkoder -Permission301=Opret / modificer stregkoder +Permission301=Opret/rediger stregkoder Permission302=Slet stregkoder -Permission311=Læs ydelser +Permission311=Læs tjenester Permission312=Tildel service/abonnement til kontrakt Permission331=Læs bogmærker Permission332=Opret/rediger bogmærker Permission333=Slet bogmærker Permission341=Læs sine egne tilladelser -Permission342=Opret/rediger egne brugeroplysninger -Permission343=Rediger egen adgangskode -Permission344=Rediger egne tilladelser +Permission342=Oprette/ændre sine egne brugeroplysninger +Permission343=Ændre sin egen adgangskode +Permission344=Ændre sine egne tilladelser Permission351=Læs grupper -Permission352=Læs grupper tilladelser +Permission352=Læs gruppers tilladelser Permission353=Opret/rediger grupper -Permission354=Slet eller deaktivere grupper -Permission358=Eksport brugere +Permission354=Slet eller deaktiver grupper +Permission358=Eksporter brugere Permission401=Læs rabatter -Permission402=Opret/rediger rabatter +Permission402=Opret/ændre rabatter Permission403=Bekræft rabatter Permission404=Slet rabatter -Permission430=Brug Debug Bar +Permission430=Brug fejlsøgning bjælke Permission511=Læs lønninger og betalinger (dine og underordnede) -Permission512=Opret / rediger lønninger og betalinger -Permission514=Slet lønninger og betalinger -Permission517=Læs lønninger og betalinger Alle sammen -Permission519=Eksportlønninger +Permission512=Oprette/ændre lønninger og betalinger +Permission514=Slet løn og udbetalinger +Permission517=Læs lønninger og betalinger alle sammen +Permission519=Eksporter lønninger Permission520=Læs lån -Permission522=Opret / modificer lån +Permission522=Oprette/ændre lån Permission524=Slet lån -Permission525=Adgang låne regnemaskine -Permission527=Eksport lån +Permission525=Få adgang til låneberegner +Permission527=Eksporter lån Permission531=Læs ydelser -Permission532=Opret/rediger ydelser +Permission532=Opret/ændre ydelser +Permission533=Læs priser tjenester Permission534=Slet ydelser Permission536=Se/administrer skjulte ydelser -Permission538=Eksport af tjenesteydelser +Permission538=Eksport af ydelser Permission561=Læs betalingsordrer ved kreditoverførsel -Permission562=Opret / rediger betalingsordre ved kreditoverførsel -Permission563=Send / send betalingsordre ved kreditoverførsel -Permission564=Registrer debiteringer / afvisninger af kreditoverførsel -Permission601=Læs stickers -Permission602=Opret / rediger stickers -Permission609=Slet stickers -Permission650=Læs regninger af materialer -Permission651=Opret / opdater materialeregninger -Permission652=Slet materialeregninger -Permission660=Læs fremstillingsordre (MO) -Permission661=Opret / opdater produktionsordre (MO) +Permission562=Opret/ændre betalingsordre ved kreditoverførsel +Permission563=Send/overfør betalingsordre ved kreditoverførsel +Permission564=Registrer debiteringer/afvisninger af kreditoverførsel +Permission601=Læs mærkater +Permission602=Opret/rediger mærkater +Permission609=Slet mærkater +Permission611=Læs attributter for varianter +Permission612=Opret/opdater attributter for varianter +Permission613=Slet attributter for varianter +Permission650=Læs Styklister +Permission651=Opret/opdater styklister +Permission652=Slet styklister +Permission660=Læs produktionsordre (MO) +Permission661=Opret/opdater produktionsordre (MO) Permission662=Slet produktionsordre (MO) Permission701=Læs donationer Permission702=Opret/rediger donationer Permission703=Slet donationer -Permission771=Læs omkostningsrapporter (din og dine underordnede) +Permission771=Læs udgiftsrapporter (dine og dine underordnede) Permission772=Opret/rediger udgiftsrapporter (til dig og dine underordnede) Permission773=Slet udgiftsrapporter -Permission775=Godkendelse af udgiftsrapporter -Permission776=Betalingsomkostningsrapporter +Permission775=Godkend udgiftsrapporter +Permission776=Betal udgiftsrapporter Permission777=Læs alle udgiftsrapporter (selv dem fra brugere, der ikke er underordnede) -Permission778=Opret / rediger udgiftsrapporter for alle -Permission779=Eksportudgiftsrapporter -Permission1001=Læs bestande -Permission1002=Opret/rediger varehuse +Permission778=Opret/rediger udgiftsrapporter for alle +Permission779=Eksporter udgiftsrapporter +Permission1001=Læs beholdninger +Permission1002=Oprette/ændre varehuse Permission1003=Slet varehuse -Permission1004=Læs bestand bevægelser -Permission1005=Opret/rediger lagerændringer +Permission1004=Læs lagerbevægelser +Permission1005=Opret/ændre lagerbevægelser Permission1011=Se varebeholdninger Permission1012=Opret ny beholdning -Permission1014=Bekræft inventar +Permission1014=Valider beholdning Permission1015=Tillad ændring af PMP -værdi for et produkt Permission1016=Slet beholdning Permission1101=Læs leveringskvitteringer -Permission1102=Opret / rediger leveringskvitteringer -Permission1104=Valider følgeseddel -Permission1109=Slet følgeseddel +Permission1102=Opret/rediger leveringskvitteringer +Permission1104=Valider leveringskvitteringer +Permission1109=Slet leveringskvitteringer Permission1121=Læs leverandørforslag -Permission1122=Opret / rediger leverandørforslag -Permission1123=Valider leverandørforslag +Permission1122=Oprette/ændre leverandørforslag +Permission1123=Validere leverandørforslag Permission1124=Send leverandørforslag Permission1125=Slet leverandørforslag -Permission1126=Luk anmodninger om leverandør pris +Permission1126=Luk leverandør prisanmodninger Permission1181=Læs leverandører Permission1182=Læs indkøbsordrer -Permission1183=Opret / modtag indkøbsordrer -Permission1184=Valider indkøbsordrer -Permission1185=Godkend købsordrer +Permission1183=Opret/rediger indkøbsordrer +Permission1184=Validere indkøbsordrer +Permission1185=Godkend indkøbsordrer Permission1186=Bestil indkøbsordrer -Permission1187=Bekræft modtagelse af købsordrer +Permission1187=Bekræft modtagelse af indkøbsordrer Permission1188=Slet indkøbsordrer -Permission1189=Marker / fjern markeringen i en indkøbsordres modtagelse -Permission1190=Godkend (anden godkendelse) købsordrer -Permission1191=Eksportér leverandørordrer og deres attributter +Permission1189=Marker/fjern markeringen af en indkøbsordre modtagelse +Permission1190=Godkend (anden godkendelse) indkøbsordrer +Permission1191=Eksporter leverandørordrer og deres attributter Permission1201=Få resultatet af en eksport -Permission1202=Opret/rediger en eksport +Permission1202=Opret/ændre en eksport Permission1231=Læs leverandørfakturaer -Permission1232=Opret / modificer sælgerfakturaer -Permission1233=Validér sælgerfakturaer -Permission1234=Slet sælgerfakturaer -Permission1235=Send sælgerfakturaer via email -Permission1236=Eksporter sælgerfakturaer, attributter og betalinger -Permission1237=Eksport indkøbsordrer og deres detaljer -Permission1251=Kør massen import af eksterne data i databasen (data belastning) -Permission1321=Eksporter kunde fakturaer, attributter og betalinger -Permission1322=Genåb en betalt regning +Permission1232=Opret/rediger leverandørfakturaer +Permission1233=Valider leverandørfakturaer +Permission1234=Slet leverandørfaktura +Permission1235=Send leverandørfakturaer via e-mail +Permission1236=Eksporter leverandørfakturaer, attributter og betalinger +Permission1237=Eksporter indkøbsordrer og deres detaljer +Permission1251=Kør masseimport af eksterne data til databasen (dataindlæsning) +Permission1321=Eksporter kundefakturaer, attributter og betalinger +Permission1322=Genåbn en betalt regning Permission1421=Eksporter salgsordrer og attributter Permission1521=Læs dokumenter Permission1522=Slet dokumenter -Permission2401=Læs handlinger (begivenheder eller opgaver), der er knyttet til hans brugerkonto (hvis ejer af begivenheden eller bare er tildelt) -Permission2402=Opret / rediger handlinger (begivenheder eller opgaver), der er knyttet til hans brugerkonto (hvis ejeren af begivenheden) -Permission2403=Slet handlinger (begivenheder eller opgaver), der er knyttet til hans brugerkonto (hvis ejeren af begivenheden) -Permission2411=Læs aktioner (begivenheder eller opgaver) andres -Permission2412=Opret/rediger handlinger (begivenheder eller opgaver) for andre -Permission2413=Slet handlinger (events eller opgaver) andres -Permission2414=Eksporter handlinger / opgaver af andre -Permission2501=Læse dokumenter -Permission2502=Indsend eller slette dokumenter -Permission2503=Indsend eller slette dokumenter -Permission2515=Opsæt dokumentdokumenter -Permission2801=Brug FTP-klient i læsemodus (kun gennemse og download) -Permission2802=Brug FTP-klient i skrivefunktion (slet eller upload filer) +Permission2401=Læs handlinger (begivenheder eller opgaver), der er knyttet til hans brugerkonto (hvis ejeren af begivenheden eller lige er tildelt) +Permission2402=Opret/rediger handlinger (begivenheder eller opgaver) knyttet til hans brugerkonto (hvis ejeren af begivenheden) +Permission2403=Slet handlinger (begivenheder eller opgaver) knyttet til hans brugerkonto (hvis ejeren af begivenheden) +Permission2411=Læs andres handlinger (begivenheder eller opgaver) +Permission2412=Opret/rediger andres handlinger (begivenheder eller opgaver) +Permission2413=Slet andres handlinger (begivenheder eller opgaver) +Permission2414=Eksporter andres handlinger/opgaver +Permission2501=Læs/download dokumenter +Permission2502=Download dokumenter +Permission2503=Indsend eller slet dokumenter +Permission2515=Opsæt dokumentmapper +Permission2801=Brug FTP klient i læsetilstand (kun gennemse og download) +Permission2802=Brug FTP klient i skrivetilstand (slet eller upload filer) Permission3200=Læs arkiverede begivenheder og fingeraftryk Permission3301=Generer nye moduler Permission4001=Læs færdigheder/job/stilling @@ -969,591 +976,598 @@ Permission4021=Opret/rediger din evaluering Permission4022=Valider evaluering Permission4023=Slet evaluering Permission4030=Se sammenligningsmenu -Permission10001=Læs indhold på webstedet -Permission10002=Opret / rediger webstedsindhold (html- og javascript-indhold) -Permission10003=Opret / rediger webstedsindhold (dynamisk php-kode). Farligt, skal forbeholdes begrænsede udviklere. -Permission10005=Slet webstedsindhold -Permission20001=Læs tilladelsesforespørgsler (din orlov og dine underordnede) -Permission20002=Opret / rediger dine anmodninger om orlov (din ferie og dine underordnede) -Permission20003=Slet permitteringsforespørgsler +Permission4031=Læs personlige oplysninger +Permission4032=Skriv personlige oplysninger +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. +Permission10005=Slet website indhold +Permission20001=Læs orlovsanmodninger (din og dine underordnedes) +Permission20002=Opret/rediger dine orlovsanmodninger (din og dine underordnedes orlov) +Permission20003=Slet orlovsanmodninger Permission20004=Læs alle orlovsanmodninger (selv dem fra brugere, der ikke er underordnede) Permission20005=Opret/rediger orlovsanmodninger for alle (selv dem fra brugere, der ikke er underordnede) Permission20006=Administrer orlovsanmodninger (opsætning og opdatering af saldo) Permission20007=Godkend orlovsanmodninger -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission50101=Brug salgssted (SimplePOS) -Permission50151=Brug salgssted (TakePOS) +Permission23001=Læs Planlagt job +Permission23002=Opret/opdater planlagt job +Permission23003=Slet planlagt job +Permission23004=Udfør planlagt job +Permission50101=Brug Point of Sale (SimplePOS) +Permission50151=Brug Point of Sale (TakePOS) Permission50152=Rediger salgslinjer Permission50153=Rediger bestilte salgslinjer Permission50201=Læs transaktioner -Permission50202=Import transaktioner -Permission50330=Læs genstande fra Zapier -Permission50331=Opret / opdater objekter af Zapier +Permission50202=Importer transaktioner +Permission50330=Læs objekter fra Zapier +Permission50331=Opret/opdater objekter fra Zapier Permission50332=Slet objekter fra Zapier Permission50401=Bind produkter og fakturaer med regnskabskonti -Permission50411=Læs operationer i hovedbok -Permission50412=Skriv / rediger handlinger i hovedbok -Permission50414=Slet handlinger i hovedbok -Permission50415=Slet alle operationer efter år og journal i hovedbok -Permission50418=Hovedboks eksportoperationer -Permission50420=Rapporter og eksportrapporter (omsætning, balance, tidsskrifter, hovedbok) -Permission50430=Definer regnskabsperioder. Valider transaktioner og luk regnskabsperioder. -Permission50440=Administrer kontoplan, opsætning af regnskab +Permission50411=Læs handlinger i regnskab +Permission50412=Skriv/rediger handlinger i regnskab +Permission50414=Slet handlinger i regnskab +Permission50415=Slet alle handlinger efter år og journal i regnskab +Permission50418=Eksporter handlinger i regnskab +Permission50420=Rapporter og eksporter rapporter (omsætning, saldo, journaler, regnskab) +Permission50430=Definer regnskabsperioder. Validere transaktioner og lukke regnskabsperioder. +Permission50440=Håndtere kontoplan, opsætning af bogføring Permission51001=Læs aktiver -Permission51002=Opret / opdater aktiver +Permission51002=Opret/opdater aktiver Permission51003=Slet aktiver -Permission51005=Opsætningstyper af aktiv +Permission51005=Opsætning af aktivtyper Permission54001=Print -Permission55001=Læs afstemninger -Permission55002=Opret / rediger afstemninger +Permission55001=Læs afstemning +Permission55002=Opret/rediger afstemninger Permission59001=Læs kommercielle margener Permission59002=Definer kommercielle margener Permission59003=Læs hver brugermargen Permission63001=Læs ressourcer -Permission63002=Opret / modificer ressourcer +Permission63002=Opret/rediger ressourcer Permission63003=Slet ressourcer Permission63004=Link ressourcer til begivenheder i tidsplan Permission64001=Tillad direkte udskrivning Permission67000=Tillad udskrivning af kvitteringer Permission68001=Læs intracomm rapport -Permission68002=Opret / rediger intracomm-rapport -Permission68004=Slet intracomm-rapport +Permission68002=Opret/rediger intracomm rapport +Permission68004=Slet intracomm rapport Permission941601=Læs kvitteringer -Permission941602=Opret og rediger kvitteringer -Permission941603=Valider kvitteringer +Permission941602=Opret/rediger kvitteringer +Permission941603=Bekræft kvitteringer Permission941604=Send kvitteringer via e-mail -Permission941605=Eksportkvitteringer +Permission941605=Eksporter kvitteringer Permission941606=Slet kvitteringer -DictionaryCompanyType=Tredjepartstyper +DictionaryCompanyType=Tredjeparts typer DictionaryCompanyJuridicalType=Tredjeparts juridiske enheder DictionaryProspectLevel=prospekt potentiale niveau for virksomheder DictionaryProspectContactLevel=Prospekt potentiale niveau for kontakter -DictionaryCanton=Stater / provinser +DictionaryCanton=Stater/Provinser DictionaryRegion=Regioner DictionaryCountry=Lande DictionaryCurrency=Valuta -DictionaryCivility=hædrende titler -DictionaryActions=Begivenhedstyper +DictionaryCivility=Titler +DictionaryActions=Tidsplan begivenheds typer DictionarySocialContributions=Typer af sociale eller skattemæssige afgifter DictionaryVAT=Momssatser -DictionaryRevenueStamp=Skattefrihedsbeløb +DictionaryRevenueStamp=Mængde af stempelmærker DictionaryPaymentConditions=Betalingsbetingelser DictionaryPaymentModes=Betalingsmåder -DictionaryTypeContact=Kontakt/adresse-typer -DictionaryTypeOfContainer=Website - Type af hjemmesider / containere -DictionaryEcotaxe=Miljøafgift (WEEE) -DictionaryPaperFormat=Papir formater +DictionaryTypeContact=Kontakt/adresse typer +DictionaryTypeOfContainer=Webside - Type af webside/beholder +DictionaryEcotaxe=Miljøafgift for affald af elektrisk og elektronisk udstyr (WEEE) +DictionaryPaperFormat=Papirformater DictionaryFormatCards=Kortformater -DictionaryFees=Udgiftsrapport - Typer af udgiftsrapporter -DictionarySendingMethods=Sendings metoder +DictionaryFees=Udgiftsrapport - Typer af udgiftsrapport linjer +DictionarySendingMethods=Forsendelsesmetoder DictionaryStaff=Antal medarbejdere -DictionaryAvailability=Levering forsinkelse +DictionaryAvailability=Leveringsforsinkelse DictionaryOrderMethods=Bestillingsmetoder DictionarySource=Oprindelse af tilbud/ordrer DictionaryAccountancyCategory=Personlige grupper til rapporter DictionaryAccountancysystem=Modeller til kontoplan -DictionaryAccountancyJournal=Kontokladder -DictionaryEMailTemplates=Email skabeloner +DictionaryAccountancyJournal=Bogføringsjournaler +DictionaryEMailTemplates=E-mail skabeloner DictionaryUnits=Enheder DictionaryMeasuringUnits=Måleenheder DictionarySocialNetworks=Sociale netværk -DictionaryProspectStatus=Prospektstatus for virksomheder -DictionaryProspectContactStatus=Prospektstatus for kontakter -DictionaryHolidayTypes=Permission - Typer af orlov -DictionaryOpportunityStatus=Ledestatus for projekt / bly +DictionaryProspectStatus=Mulighedsstatus for virksomheder +DictionaryProspectContactStatus=Mulighedsstatus for kontakter +DictionaryHolidayTypes=Fravær - Typer af fravær +DictionaryOpportunityStatus=Mulighedsstatus for projekt/mulighed DictionaryExpenseTaxCat=Udgiftsrapport - Transportkategorier -DictionaryExpenseTaxRange=Omkostningsrapport - Område efter transportkategori -DictionaryTransportMode=Intracomm rapport - Transporttilstand +DictionaryExpenseTaxRange=Udgiftsrapport - Interval efter transportkategori +DictionaryTransportMode=Intracomm rapport - Transportform DictionaryBatchStatus=Produktparti / seriel kvalitetskontrolstatus -TypeOfUnit=Type af enhed -SetupSaved=Opsætning gemt -SetupNotSaved=Opsætning er ikke gemt -BackToModuleList=Tilbage til modul listen -BackToDictionaryList=Tilbage til Ordbøger listen -TypeOfRevenueStamp=Afgifts type +DictionaryAssetDisposalType=Type af afhændelse af aktiver +TypeOfUnit=Type af måleenhed +SetupSaved=Opsætningen er gemt +SetupNotSaved=Opsætningen er ikke gemt +BackToModuleList=Tilbage til modullisten +BackToDictionaryList=Tilbage til ordbogslisten +TypeOfRevenueStamp=Type af stempelmærker VATManagement=Sales Tax Management -VATIsUsedDesc=Som standard ved oprettelse af udsigter, fakturaer, ordrer mv. Følger Salgsskattesatsen den aktive standardregel:
    Hvis sælgeren ikke er underlagt moms, er salgsafgiften standard til 0. Slut på regel.
    Hvis (sælgerens land = købers land) er salgsafgiften som standard lig med salgsafgiften for produktet i sælgerens land. Slut på regel.
    Hvis sælger og køber er både i Det Europæiske Fællesskab og varer er transportrelaterede produkter (transport, fragt, flyselskab), er standard momsen 0. Denne regel er afhængig af sælgerens land - kontakt venligst din revisor. Momsen skal betales af køberen til toldstedet i deres land og ikke til sælgeren. Slut på regel.
    Hvis sælger og køber begge er i Det Europæiske Fællesskab, og køberen ikke er et firma (med et registreret momsregistreringsnummer), er momsen i stedet for momsen for sælgerens land. Slut på regel.
    Hvis sælger og køber begge er i Det Europæiske Fællesskab, og køberen er et firma (med et registreret momsnummer på internettet), er momsen 0 som standard. Slut på regel.
    I ethvert andet tilfælde er den foreslåede standard Salgsskat = 0. Slut på regel. -VATIsNotUsedDesc=Den foreslåede moms er som standard 0, som kan bruges til sager som foreninger, enkeltpersoner eller små virksomheder. -VATIsUsedExampleFR=I Frankrig betyder det, at virksomheder eller organisationer har et rigtigt finanssystem (forenklet reel eller normal reel). Et system, hvor moms er erklæret. -VATIsNotUsedExampleFR=I Frankrig betyder det foreninger, der ikke er momsregistrerede, eller selskaber, organisationer eller liberale erhverv, der har valgt mikrovirksomhedens skattesystem (Salgsskat i franchise) og betalt en franchise Salgsskat uden nogen momsafgift. Dette valg vil vise referencen "Ikke gældende salgsafgift - art-293B CGI" på fakturaer. +VATIsUsedDesc=Som standard ved oprettelse af kundeemner, fakturaer, ordrer osv. følger momssatsen den aktive standardregel:
    Hvis sælgeren ikke er underlagt moms, vil momsen som standard være 0. Slut på reglen.
    Hvis (sælgers land = købers land), så er momsen som standard lig med momsen for produktet i sælgers land. Slut på reglen.
    Hvis både sælger og køber er i Det Europæiske Fællesskab, og varer er transportrelaterede produkter (transport, forsendelse, flyselskab), er standardmomsen 0. Denne regel afhænger af sælgers land - kontakt venligst din revisor. Momsen skal betales af køberen til toldkontoret i deres land og ikke til sælgeren. Slut på reglen.
    Hvis sælger og køber begge er i Det Europæiske Fællesskab, og køberen ikke er en virksomhed (med et registreret momsnummer inden for Fællesskabet), vil momsen som standard være momssatsen i sælgers land. Slut på reglen.
    Hvis både sælger og køber er i Det Europæiske Fællesskab, og køberen er en virksomhed (med et registreret momsnummer inden for Fællesskabet), er momsen som standard 0. Slut på reglen.
    I alle andre tilfælde er den foreslåede standard Moms=0. Slut på reglen. +VATIsNotUsedDesc=Som standard er den foreslåede momssats 0, som kan bruges af mange foreninger, enkeltpersoner eller små virksomheder. +VATIsUsedExampleFR=I Frankrig betyder det virksomheder eller organisationer, der har et reelt skattesystem (forenklet reelt eller normalt reelt). Et system, hvor der angives moms. +VATIsNotUsedExampleFR=I Frankrig betyder det foreninger, der ikke er angivet omsætningsafgift, eller virksomheder, organisationer eller liberale erhverv, der har valgt mikrovirksomhedens skattesystem (omsætningsafgift i franchise) og betalt en franchiseomsætningsafgift uden nogen momsangivelse. Dette valg vil vise referencen "Ikke relevant moms - art-293B of CGI" på fakturaer. ##### Local Taxes ##### -TypeOfSaleTaxes=Type moms -LTRate=Hyppighed -LocalTax1IsNotUsed=Brug ikke anden skat -LocalTax1IsUsedDesc=Brug en anden type afgift (bortset fra den første) -LocalTax1IsNotUsedDesc=Brug ikke anden type afgift (bortset fra den første) -LocalTax1Management=Anden type skat +TypeOfSaleTaxes=Momstype +LTRate=Sats +LocalTax1IsNotUsed=Brug ikke anden afgift +LocalTax1IsUsedDesc=Brug en anden type afgift (andre end den første) +LocalTax1IsNotUsedDesc=Brug ikke anden type afgift (andre end den første) +LocalTax1Management=Anden type afgift LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Brug ikke tredje skat +LocalTax2IsNotUsed=Brug ikke tredje type afgift LocalTax2IsUsedDesc=Brug en tredje type afgift (bortset fra den første) LocalTax2IsNotUsedDesc=Brug ikke anden type afgift (bortset fra den første) -LocalTax2Management=Tredje type skat +LocalTax2Management=Tredje type afgift LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=RE Management -LocalTax1IsUsedDescES=RE-satsen som standard ved oprettelse af potentielle kunder, fakturaer, ordrer mv. Følger den aktive standardregel:
    Hvis køberen ikke er udsat for RE, RE som standard = 0. Slut på regel.
    Hvis køberen udsættes for RE, så er RE som standard. Slut på regel.
    -LocalTax1IsNotUsedDescES=Som standard den foreslåede RE er 0. Slut på reglen. -LocalTax1IsUsedExampleES=I Spanien er professionelle underlagt nogle specifikke dele af den spanske IAE. -LocalTax1IsNotUsedExampleES=I Spanien er professionelle og samfund og på visse dele af den spanske IAE. +LocalTax1IsUsedDescES=RE satsen som standard ved oprettelse af kundeemner, fakturaer, ordrer etc. følger den aktive standardregel:
    Hvis køber ikke er underlagt RE, RE som standard=0. Slut på reglen.
    Hvis køberen er underlagt RE, er RE som standard. Slut på reglen.
    +LocalTax1IsNotUsedDescES=Som standard er den foreslåede RE 0. Slut på regel. +LocalTax1IsUsedExampleES=I Spanien er de professionelle underlagt nogle specifikke sektioner af den spanske IAE. +LocalTax1IsNotUsedExampleES=I Spanien er de professionelle og samfund underlagt visse dele af den spanske IAE. LocalTax2ManagementES=IRPF Management -LocalTax2IsUsedDescES=IRPF-kursen som standard ved oprettelse af emner. fakturaer, ordrer mv. Følger den aktive standardregel: Hvis sælgeren ikke er underlagt IRPF, skal IRPF som standard = 0. Slut på regel. Hvis sælgeren udsættes for IRPF, så er IRPF som standard. Slut på regel. -LocalTax2IsNotUsedDescES=Som standard den foreslåede IRPF er 0. Slut på reglen. -LocalTax2IsUsedExampleES=I Spanien, freelancere og selvstændige, der leverer tjenesteydelser og virksomheder, der har valgt at skattesystemet i de moduler. -LocalTax2IsNotUsedExampleES=I Spanien er de virksomheder, der ikke er underlagt skattesystemer for moduler. -RevenueStampDesc=Den "skat stempel" eller "stempelmærke" er en fast skat du pr faktura (Det afhænger ikke af mængden af faktura). Det kan også være en procent skat, men det er bedre at bruge den anden eller tredje type skat for procent skat, da skattemærker ikke giver nogen rapportering. Kun få lande bruger denne type skat. +LocalTax2IsUsedDescES=IRPF satsen som standard ved oprettelse af kundeemner, fakturaer, ordrer osv. følger den aktive standardregel:
    Hvis sælgeren ikke er underlagt IRPF, så er IRPF som standard=0. Slut på reglen.
    Hvis sælgeren er underlagt IRPF, er IRPF som standard. Slut på reglen.
    +LocalTax2IsNotUsedDescES=Som standard er den foreslåede IRPF 0. Slut på reglen. +LocalTax2IsUsedExampleES=I Spanien, freelancere og professionelle, der leverer tjenesteydelser og virksomheder, der har valgt at skattesystemet i de moduler. +LocalTax2IsNotUsedExampleES=I Spanien er de virksomheder, der ikke er underlagt skattesystemet af moduler. +RevenueStampDesc="Skattestemplet" eller "indtægtsstemplet" er en fast skat du pr. faktura (det afhænger ikke af fakturabeløbet). Det kan også være en procentskat, men at bruge den anden eller tredje type skat er bedre for procentskatter, da skattestempler ikke giver nogen indberetning. Kun få lande anvender denne type skat. UseRevenueStamp=Brug et skattestempel -UseRevenueStampExample=Værdien af skattestempel defineres som standard i opsætningen af ordbøger (%s- %s-%s) -CalcLocaltax=Rapporter om lokale skatter +UseRevenueStampExample=Værdien af skattestemplet er som standard defineret i opsætningen af ordbøger (%s - %s - %s) +CalcLocaltax=Indberetninger om lokale skatter CalcLocaltax1=Salg - Køb -CalcLocaltax1Desc=Lokale skatter rapporter beregnes med forskellen mellem localtaxes salg og localtaxes køb +CalcLocaltax1Desc=Lokale skatte rapporter beregnes med forskellen mellem lokale skatter for salg og lokale skatter for køb CalcLocaltax2=Køb -CalcLocaltax2Desc=Lokale skatter rapporter er de samlede køb af lokale afgifter +CalcLocaltax2Desc=Lokale skatte rapporter er summen af lokale skatter for køb CalcLocaltax3=Salg -CalcLocaltax3Desc=Lokale skatter rapporter er det samlede salg af localtaxes -NoLocalTaxXForThisCountry=I henhold til opsætningen af skatter (se %s- %s-%s) behøver dit land ikke at bruge en sådan type skat -LabelUsedByDefault=Etiket, som bruges som standard, hvis ingen oversættelse kan findes for kode -LabelOnDocuments=Etiketten på dokumenter -LabelOrTranslationKey=Etiket eller oversættelsestast -ValueOfConstantKey=Værdi af en konfigurationskonstant +CalcLocaltax3Desc=Lokale skatte rapporter er summen af lokale skatter for salg +NoLocalTaxXForThisCountry=I henhold til opsætningen af skatter (se %s - %s - %s), behøver dit land ikke at bruge en sådan type skat +LabelUsedByDefault=Etiket som bruges som standard, hvis der ikke kan findes en oversættelse af koden +LabelOnDocuments=Etiket på dokumenter +LabelOrTranslationKey=Etiket eller oversættelsesnøgle +ValueOfConstantKey=Værdien af en konfigurationskonstant ConstantIsOn=Mulighed %s er aktiveret NbOfDays=Antal dage AtEndOfMonth=Ved udgangen af måneden -CurrentNext=Aktuel / Næste +CurrentNext=En given dag i måneden Offset=Offset AlwaysActive=Altid aktiv -Upgrade=Upgrade -MenuUpgrade=Upgrade / Forlæng -AddExtensionThemeModuleOrOther=Implementér / installer ekstern app / modul -WebServer=Web server +Upgrade=Opgrader +MenuUpgrade=Opgrader/Udvid +AddExtensionThemeModuleOrOther=Implementer/installer ekstern app/modul +WebServer=Webserver DocumentRootServer=Webserverens rodmappe -DataRootServer=Datafiler bibliotek +DataRootServer=Mappe til datafiler IP=IP Port=Port -VirtualServerName=Virtual Server navn +VirtualServerName=Virtuel servernavn OS=OS -PhpWebLink=Web-Php link +PhpWebLink=Web Php link Server=Server Database=Database DatabaseServer=Database vært DatabaseName=Database navn -DatabasePort=Database havn +DatabasePort=Database port DatabaseUser=Database bruger -DatabasePassword=Database password +DatabasePassword=Database adgangskode Tables=Tabeller TableName=Tabel navn NbOfRecord=Antal poster Host=Server DriverType=Driver type -SummarySystem=System oplysninger resumé +SummarySystem=Systeminformations oversigt SummaryConst=Liste over alle Dolibarr opsætningsparametre MenuCompanySetup=Virksomhed/Organisation -DefaultMenuManager= Standard menuhåndtering -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Hud tema -DefaultSkin=Default skin tema -MaxSizeList=Maks. længde for liste -DefaultMaxSizeList=Standard maks længde for lister -DefaultMaxSizeShortList=Standard max længde for korte lister (dvs. i kundekort) -MessageOfDay=Budskab om dagen -MessageLogin=Loginsiden besked +DefaultMenuManager= Standard menu styrer +DefaultMenuSmartphoneManager=Smartphone menu styrer +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) +MessageOfDay=Dagens budskab +MessageLogin=Besked på login-siden LoginPage=Login side BackgroundImageLogin=Baggrundsbillede -PermanentLeftSearchForm=Faste search form på venstre menu -DefaultLanguage=Standard sprog -EnableMultilangInterface=Aktiver understøttelse af flere sprog for kunde- eller leverandørrelationer -EnableShowLogo=Vis firmaets logo i menuen +PermanentLeftSearchForm=Permanent søgeformular i venstre menu +DefaultLanguage=Standardsprog +EnableMultilangInterface=Aktiver flersproget support til kunde- eller leverandørforhold +EnableShowLogo=Vis firmalogoet i menuen CompanyInfo=Virksomhed/Organisation -CompanyIds=Virksomhed / Organisations identiteter +CompanyIds=Virksomhedens/organisationens identiteter CompanyName=Navn CompanyAddress=Adresse CompanyZip=Postnummer CompanyTown=By CompanyCountry=Land CompanyCurrency=Standardvaluta -CompanyObject=Formål med firmaet -IDCountry=ID land +CompanyObject=Selskabets formål +IDCountry=ID-land Logo=Logo -LogoDesc=Virksomhedens vigtigste logo. Vil blive brugt til genererede dokumenter (PDF, ...) +LogoDesc=Virksomhedens hovedlogo. Vil blive brugt i genererede dokumenter (PDF, ...) LogoSquarred=Logo (firkantet) -LogoSquarredDesc=Skal være et firkantet ikon (bredde = højde). Dette logo bruges som favoritikonet eller andet behov som den øverste menulinje (hvis ikke deaktiveret i skærm opsætningen). -DoNotSuggestPaymentMode=Ikke tyder +LogoSquarredDesc=Skal være et firkantet ikon (bredde = højde). Dette logo vil blive brugt som favoritikonet eller andet behov som for den øverste menulinje (hvis ikke deaktiveret i skærmopsætning). +DoNotSuggestPaymentMode=Foreslå ikke NoActiveBankAccountDefined=Ingen aktiv bankkonto defineret OwnerOfBankAccount=Ejer af bankkonto %s -BankModuleNotActive=Bankkonti modul er ikke aktiveret -ShowBugTrackLink=Vis linket " %s " -ShowBugTrackLinkDesc=Hold tom for ikke at vise dette link, brug værdien 'github' til linket til Dolibarr -projektet eller definer direkte en url 'https: // ...' -Alerts=Indberetninger -DelaysOfToleranceBeforeWarning=Forsinkelse før du viser en advarselsalarm for: +BankModuleNotActive=Bankkonti modul ikke aktiveret +ShowBugTrackLink=Vis linket "%s" +ShowBugTrackLinkDesc=Hold tom for ikke at vise dette link, brug værdien 'github' for linket til Dolibarr projektet eller definer direkte en url 'https://...' +Alerts=Advarsler +DelaysOfToleranceBeforeWarning=Viser en advarsel for... DelaysOfToleranceDesc=Indstil forsinkelsen, før et advarselsikon %s vises på skærmen for det sene element. -Delays_MAIN_DELAY_ACTIONS_TODO=Planlagte begivenheder (agenda begivenheder) ikke afsluttet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projektet er ikke lukket i tide -Delays_MAIN_DELAY_TASKS_TODO=Planlagt opgave (projektopgaver) ikke afsluttet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Ordre ikke behandlet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Indkøbsordre er ikke behandlet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Forslag ikke lukket -Delays_MAIN_DELAY_PROPALS_TO_BILL=Forslag ikke faktureret -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service for at aktivere -Delays_MAIN_DELAY_RUNNING_SERVICES=Udgået service -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Ubetalte leverandørfaktura -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Ubetalte kundefaktura +Delays_MAIN_DELAY_ACTIONS_TODO=Planlagte begivenheder (agenda begivenheder) ikke gennemført +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekt ikke afsluttet i tide +Delays_MAIN_DELAY_TASKS_TODO=Planlagt opgave (projektopgaver) ikke gennemført +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Ordren ikke behandlet +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Købsordre ikke behandlet +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Forslaget ikke afsluttet +Delays_MAIN_DELAY_PROPALS_TO_BILL=Forslaget faktureres ikke +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tjeneste for at aktivere +Delays_MAIN_DELAY_RUNNING_SERVICES=Udløbet tjeneste +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Ubetalt leverandørfaktura +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Ubetalt kundefaktura Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Afventer bankafstemning -Delays_MAIN_DELAY_MEMBERS=Forsinket medlemsafgift -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tjek depositum ikke færdig -Delays_MAIN_DELAY_EXPENSEREPORTS=Udgiftsrapporten godkendes -Delays_MAIN_DELAY_HOLIDAYS=Efterlad anmodninger om godkendelse -SetupDescription1=Før du begynder at bruge Dolibarr, skal nogle indledende parametre defineres og moduler aktiveres / konfigureres. -SetupDescription2=Følgende to afsnit er obligatoriske (de to første indgange i opsætningsmenuen): -SetupDescription3=%s->%s

    Grundlæggende parametre, der bruges til at tilpasse din applikations standardopførsel (f.eks. For landrelaterede funktioner). -SetupDescription4=%s->%s

    Denne software er en pakke med mange moduler / applikationer. Modulerne relateret til dine behov skal være aktiveret og konfigureret. Menuposter vises ved aktivering af disse moduler. -SetupDescription5=Andre opsætningsmenuindgange styrer valgfrie parametre. -SetupDescriptionLink= %s - %s -SetupDescription3b=Grundlæggende parametre, der bruges til at tilpasse standardapparatet for din applikation (f.eks. For landrelaterede funktioner). -SetupDescription4b=Denne software er en pakke med mange moduler/applikationer. Modulerne relateret til dine behov skal være aktiveret og konfigureret. Menuposter vises med aktivering af disse moduler. +Delays_MAIN_DELAY_MEMBERS=Forsinket kontingent +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check depositum ikke udført +Delays_MAIN_DELAY_EXPENSEREPORTS=Udgiftsrapport til godkendes +Delays_MAIN_DELAY_HOLIDAYS=Fraværs anmodninger til godkende +SetupDescription1=Før du begynder at bruge Dolibarr, skal nogle indledende parametre defineres og moduler aktiveres/konfigureres. +SetupDescription2=De følgende to sektioner er obligatoriske (de to første poster i menuen Opsætning): +SetupDescription3=%s -> %s

    Grundlæggende parametre, der bruges til at tilpasse din applikations standardfunktioner (f.eks. lande specifikke funktioner). +SetupDescription4=%s -> %s

    Denne software er en pakke med mange moduler. De moduler, der er relateret til dine behov, skal aktiveres og konfigureres. Menupunkter vises ved aktiveringen af disse moduler. +SetupDescription5=Andet opsætning menu administrerer yderligere parametre. +SetupDescriptionLink=%s - %s +SetupDescription3b=Grundlæggende parametre, der bruges til at tilpasse standardadfærden for din applikations standardfunktioner (f.eks. til lande specifikke funktioner). +SetupDescription4b=Denne software er en pakke med mange moduler. De moduler, der er relateret til dine behov, skal aktiveres og konfigureres. Menupunkter vises ved aktiveringen af disse moduler. AuditedSecurityEvents=Sikkerhedshændelser, der revideres -NoSecurityEventsAreAduited=Ingen sikkerhedshændelser revideres. Du kan aktivere dem fra menu %s -Audit=Sikkerhedsbegivenheder +NoSecurityEventsAreAduited=Ingen sikkerhedshændelser revideres. Du kan aktivere dem fra menuen %s +Audit=Sikkerhedshændelser InfoDolibarr=Om Dolibarr InfoBrowser=Om Browser InfoOS=Om OS -InfoWebServer=Om webserver +InfoWebServer=Om Webserver InfoDatabase=Om Database InfoPHP=Om PHP -InfoPerf=Om forestillinger -InfoSecurity=Om sikkerhed -BrowserName=Browser navn +InfoPerf=Om Ydeevne +InfoSecurity=Om Sikkerhed +BrowserName=Browsernavn BrowserOS=Browser OS -ListOfSecurityEvents=Liste over Dolibarr sikkerhed begivenheder -SecurityEventsPurged=Sikkerhed begivenheder renset -LogEventDesc=Aktivér logføring til 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=System oplysninger er diverse tekniske oplysninger du får i read only mode og synlig kun for administratorer. -SystemAreaForAdminOnly=Dette område er kun tilgængeligt for administratorbrugere. Dolibarr bruger tilladelser 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. -AccountantDesc=Hvis du har en ekstern revisor / bogholder, kan du her redigere dens oplysninger. -AccountantFileNumber=Revisor kode -DisplayDesc=Parametre, der påvirker applikationens udseende og præsentation, kan ændres her. -AvailableModules=Tilgængelige app / moduler -ToActivateModule=For at aktivere moduler, skal du gå til Opsætning (Hjem->Opsætning->Moduler). -SessionTimeOut=Time out for session -SessionExplanation=Dette nummer garanterer, at sessionen aldrig udløber før denne forsinkelse, hvis sessionsrenseren udføres af Internal PHP session cleaner (og intet andet). Intern PHP-sessionsrenser garanterer ikke, at sessionen udløber efter denne forsinkelse. Det udløber efter denne forsinkelse, og når sessionrenseren køres, så er alle %s / %s adgang, men kun under adgang fra andre sessioner (hvis værdien er 0, betyder det at clearing af session kun sker af en ekstern behandle).
    Bemærk: På nogle servere med en ekstern sessionrensningsmekanisme (cron under debian, ubuntu ...) kan sessionerne ødelægges efter en periode, der er defineret af en ekstern opsætning, uanset hvad værdien er indtastet her. -SessionsPurgedByExternalSystem=Sessioner på denne server ser ud til at blive renset af en ekstern mekanisme (cron under debian, ubuntu ...), sandsynligvis hvert %ssekund (= værdi af parameter session.gc_maxlifetime), så ændring af værdien her har ingen effekt. Du skal bede serveradministratoren om at ændre sessionforsinkelse. -TriggersAvailable=Ledige udløser -TriggersDesc=Udløsere er filer, der vil ændre opførelsen af ​​Dolibarr workflow en gang kopieret til mappen htdocs / core / triggers . De indser nye handlinger, der aktiveres på Dolibarr events (ny oprettelse af firmaer, faktura bekræftelse, ...). -TriggerDisabledByName=Udløser i denne fil er slået fra-NoRun suffikset i deres navn. -TriggerDisabledAsModuleDisabled=Udløser i denne fil er slået fra som modul %s er slået fra. -TriggerAlwaysActive=Udløser i denne fil er altid aktive, uanset hvad er det aktiverede Dolibarr moduler. -TriggerActiveAsModuleActive=Udløser i denne fil er aktive som modul %s er aktiveret. +ListOfSecurityEvents=Liste over Dolibarr sikkerhedshændelser +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. +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. +AvailableModules=Tilgængelige app/moduler +ToActivateModule=For at aktivere moduler, gå til opsætningsområde (Hjem - Opsætning - Moduler). +SessionTimeOut=Timeout for session +SessionExplanation=Dette nummer garanterer, at sessionen aldrig udløber før denne forsinkelse, hvis sessionsoprydning udføres af intern PHP session cleaner (og intet andet). Intern PHP session cleaner garanterer ikke, at sessionen udløber efter denne forsinkelse. Den vil udløbe efter denne forsinkelse, og når sessionsoprydderen køres, så hver %s/%s adgang, men kun under adgang foretaget af andre sessioner, (hvis værdien er 0 betyder det at oprydning af sessioner kun udføres af ekstern process)
    Bemærk: på nogle servere med en ekstern sessions oprydnings mekanisme (cron under Debian, Ubuntu ...), kan sessionerne blive fjernet efter en periode, der er defineret af en ekstern opsætning, uanset hvilken værdi der er indtastet her. +SessionsPurgedByExternalSystem=Sessioner på denne server ser ud til at blive ryddet af en ekstern mekanisme (cron under Debian, Ubuntu ...), sandsynligvis hver %s sekund (= værdien af parameteren session.gc_maxlifetime), så at ændre værdien her har ingen effekt. Du skal bede serveradministratoren om at ændre sessions forsinkelse. +TriggersAvailable=Tilgængelige udløsere +TriggersDesc=Udløsere er filer, der vil ændre virkemåden på Dolibarrs arbejdsgang, når de først er kopieret til mappen htdocs/core/triggers. De starter nye handlinger, aktiveret på Dolibarr begivenheder (ny virksomhedsoprettelse, faktura godkendelse, ...). +TriggerDisabledByName=Udløsere i denne fil er deaktiveret af suffikset -NORUN i deres navn. +TriggerDisabledAsModuleDisabled=Udløsere i denne fil er deaktiveret, da modulet %s er deaktiveret. +TriggerAlwaysActive=Udløsere i denne fil er altid aktive, uanset hvad de aktiverede Dolibarr moduler er. +TriggerActiveAsModuleActive=Udløsere i denne fil er aktive, da modulet %s er aktiveret. GeneratedPasswordDesc=Vælg den metode, der skal bruges til automatisk genererede adgangskoder. -DictionaryDesc=Indsæt alle referencedata. Du kan tilføje dine værdier til standardværdien. -ConstDesc=På denne side kan du redigere (overstyring) parametre ikke er tilgængelige på andre sider. Disse er for det meste reserverede parametre til udviklere / avanceret kun fejlfinding. +DictionaryDesc=Indsæt alle referencedata. Du kan tilføje dine værdier til standarden. +ConstDesc=Denne side giver dig mulighed for at redigere (tilsidesætte) parametre, der ikke er tilgængelige på andre sider. Disse er for det meste reserverede parametre kun til udviklere/avanceret fejlfinding. MiscellaneousDesc=Alle andre sikkerhedsrelaterede parametre er defineret her. -LimitsSetup=Grænser / Præcisionsopsætning -LimitsDesc=Du kan definere grænser, præcisioner og optimeringer, der bruges af Dolibarr her +LimitsSetup=Begrænsninger/Nøjagtigheds opsætning +LimitsDesc=Du kan definere grænser, nøjagtighed og optimeringer brugen af Dolibarr her MAIN_MAX_DECIMALS_UNIT=Maks. decimaler for enhedspriser MAIN_MAX_DECIMALS_TOT=Maks. decimaler for samlede priser -MAIN_MAX_DECIMALS_SHOWN=Maks. decimaler for priser vist på skærmen . Tilføj en ellipsis ... efter denne parameter (fx "2 ...") hvis du vil se " ... " suffixet til den afkortede pris. -MAIN_ROUNDING_RULE_TOT=Trin af afrundingsområde (for lande, hvor afrunding er lavet på noget andet end base 10. F.eks. Sæt 0,05 hvis afrunding sker med 0,05 trin) +MAIN_MAX_DECIMALS_SHOWN=Maks. decimaler for priser vist på skærmen. Tilføj en ellipse ... efter denne parameter (f.eks. "2..."), hvis du vil se "..." suffikset til den afrundede pris. +MAIN_ROUNDING_RULE_TOT=Trin for afrundingsområde (for lande, hvor afrunding udføres på noget andet end basis 10. Indsæt f.eks. 0,05, hvis afrunding udføres med 0,05 trin) UnitPriceOfProduct=Netto enhedspris for en vare -TotalPriceAfterRounding=Samlet pris (ekskl. Moms / moms) efter afrunding -ParameterActiveForNextInputOnly=Parameter effektive for næste input kun -NoEventOrNoAuditSetup=Ingen sikkerhedshændelse er blevet logget. Dette er normalt, hvis Audit ikke er aktiveret på siden "Setup - Security - Events". -NoEventFoundWithCriteria=Der er ikke fundet nogen sikkerhedshændelse for disse søgekriterier. +TotalPriceAfterRounding=Samlet pris (ekskl. moms/inkl. moms) efter afrunding +ParameterActiveForNextInputOnly=Parameter kun aktive for næste input +NoEventOrNoAuditSetup=Ingen sikkerhedshændelse er blevet logget. Dette er normalt, hvis Audit ikke er blevet aktiveret på siden "Opsætning - Sikkerhed - Sikkerhedsbegivenheder". +NoEventFoundWithCriteria=Der er ikke fundet nogen sikkerhedshændelse for dette søgekriterie. SeeLocalSendMailSetup=Se din lokale sendmail opsætning -BackupDesc=En komplet backup af en Dolibarr installation kræver to trin. -BackupDesc2=Sikkerhedskopiér indholdet i "dokumenter" -kataloget (%s), der indeholder alle uploadede og genererede filer. Dette vil også omfatte alle dumpfiler, der er genereret i trin 1. Denne handling kan vare flere minutter. -BackupDesc3=Sikkerhedskopier strukturen og indholdet af din database ( %s ) i en dumpfil. Til dette kan du bruge følgende assistent. +BackupDesc=En komplet sikkerhedskopi af en Dolibarr installation kræver to trin. +BackupDesc2=Sikkerhedskopier indholdet af "dokumenter" mappen (%s), der indeholder alle uploadede og genererede filer. Dette vil også inkludere alle de dumpfiler, der blev genereret i trin 1. Denne handling kan tage flere minutter. +BackupDesc3=Sikkerhedskopier strukturen og indholdet af din database (%s ) til en dumpfil. Til dette kan du bruge følgende assistent. BackupDescX=Den arkiverede mappe skal opbevares på et sikkert sted. -BackupDescY=De genererede dump fil bør opbevares på et sikkert sted. -BackupPHPWarning=Backup kan ikke garanteres med denne metode. Forrige anbefalet. -RestoreDesc=For at gendanne en Dolibarr-backup, kræves der to trin. -RestoreDesc2=Gendan sikkerhedskopieringsfilen (f.eks. Zip-fil) af "dokumenter" -mappen til en ny Dolibarr-installation eller i denne aktuelle dokumentmappe ( %s ). -RestoreDesc3=Gendan database struktur og data fra en backup dump fil i databasen af den nye Dolibarr installation eller i databasen af denne nuværende installation ( %s ). Advarsel, når genoprettelsen er færdig, skal du bruge et login / adgangskode, der eksisterede fra backuptidspunktet / installationen for at oprette forbindelse igen.
    For at gendanne en backup database til denne nuværende installation, kan du følge denne assistent. +BackupDescY=Den genererede dumpfil skal opbevares på et sikkert sted. +BackupPHPWarning=Sikkerhedskopiering kan ikke garanteres med denne metode. Den forrige anbefales. +RestoreDesc=For at gendanne en Dolibarr sikkerhedskopi kræves to trin. +RestoreDesc2=Gendan sikkerhedskopifilen (f.eks. zip-fil) fra mappen "dokumenter" til en ny Dolibarr installation eller til denne aktuelle dokumentmappe (%s). +RestoreDesc3=Gendan databasestrukturen og data fra en sikkerheds dumpfil til databasen for den nye Dolibarr installation eller i databasen for denne aktuelle installation (%s). Advarsel, når gendannelsen er fuldført, skal du bruge et login/adgangskode, der eksisterede fra sikkerhedskopierings tidspunktet/installationen for at oprette forbindelse igen.
    For at gendanne en sikkerhedskopieret database til denne aktuelle installation, kan du følge denne assistent. RestoreMySQL=MySQL import -ForcedToByAModule=Denne regel er tvunget til at %s ved en aktiveret modul -ValueIsForcedBySystem=Denne værdi tvinges af systemet. Du kan ikke ændre det. -PreviousDumpFiles=Eksisterende backup filer +ForcedToByAModule=Denne regel er tvunget til %s af et aktiveret modul +ValueIsForcedBySystem=Denne værdi er tvunget af systemet. Du kan ikke ændre det. +PreviousDumpFiles=Eksisterende sikkerhedskopi filer PreviousArchiveFiles=Eksisterende arkivfiler -WeekStartOnDay=Første dag i ugen -RunningUpdateProcessMayBeRequired=At køre opgraderingsprocessen ser ud til at være påkrævet (Programversion %s adskiller sig fra Database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Du skal køre denne kommando fra kommandolinjen efter login til en shell med brugerens %s. -YourPHPDoesNotHaveSSLSupport=SSL-funktioner ikke er tilgængelige i dit PHP -DownloadMoreSkins=Find flere skind på Dolistore.com -SimpleNumRefModelDesc=Returnerer referencenummeret i formatet %syymm-nnnn hvor yy er året, mm er måneden og nnnn er et sekventielt auto-stigende nummer uden nulstilling -SimpleNumRefNoDateModelDesc=Returnerer referencenummeret i formatet %s-nnnn hvor nnnn er et sekventielt automatisk stigende nummer uden nulstilling -ShowProfIdInAddress=Vis professionelt id med adresser +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 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 +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 vejr tommelfinger -MeteoStdMod=Standard-tilstand aktiveret -MeteoStdModEnabled=Standard-tilstand aktiveret -MeteoPercentageMod=Procentdel tilstand -MeteoPercentageModEnabled=Procentdel tilstand aktiveret -MeteoUseMod=Klik for at redigere %s -TestLoginToAPI=Test logge på API +MAIN_DISABLE_METEO=Deaktiver vejrtommel +MeteoStdMod=Standardtilstand +MeteoStdModEnabled=Standardtilstand aktiveret +MeteoPercentageMod=Procenttilstand +MeteoPercentageModEnabled=Procenttilstand aktiveret +MeteoUseMod=Klik for at bruge %s +TestLoginToAPI=Test login til API ProxyDesc=Nogle funktioner i Dolibarr kræver internetadgang. Definer her internetforbindelsesparametrene, såsom adgang via en proxyserver, hvis det er nødvendigt. -ExternalAccess=Ekstern / internetadgang -MAIN_PROXY_USE=Brug en proxyserver (ellers adgang er direkte til internettet) -MAIN_PROXY_HOST=Proxyserver: Navn / Adresse +ExternalAccess=Ekstern/internetadgang +MAIN_PROXY_USE=Brug en proxyserver (ellers er adgangen direkte til internettet) +MAIN_PROXY_HOST=Proxyserver: Navn/adresse MAIN_PROXY_PORT=Proxyserver: Port -MAIN_PROXY_USER=Proxyserver: Login / Bruger +MAIN_PROXY_USER=Proxyserver: Login/bruger MAIN_PROXY_PASS=Proxyserver: Adgangskode -DefineHereComplementaryAttributes=Definer eventuelle yderligere / tilpassede attributter, der skal føjes til: %s +DefineHereComplementaryAttributes=Definer eventuelle yderligere / tilpassede attributter, der skal tilføjes til: %s ExtraFields=Supplerende egenskaber -ExtraFieldsLines=Supplerende attributter (linjer) -ExtraFieldsLinesRec=Supplerende attributter (skabeloner faktura linjer) -ExtraFieldsSupplierOrdersLines=Supplerende attributter (ordrelinjer) -ExtraFieldsSupplierInvoicesLines=Supplerende attributter (faktura linjer) -ExtraFieldsThirdParties=Supplerende attributter (tredjepart) -ExtraFieldsContacts=Supplerende attributter (kontakter / adresse) -ExtraFieldsMember=Supplerende attributter (medlem) -ExtraFieldsMemberType=Supplerende attributter (medlemstype) -ExtraFieldsCustomerInvoices=Supplerende attributter (fakturaer) -ExtraFieldsCustomerInvoicesRec=Supplerende attributter (skabeloner fakturaer) -ExtraFieldsSupplierOrders=Supplerende attributter (ordrer) -ExtraFieldsSupplierInvoices=Supplerende attributter (fakturaer) -ExtraFieldsProject=Supplerende attributter (projekter) -ExtraFieldsProjectTask=Supplerende attributter (opgaver) -ExtraFieldsSalaries=Supplerende attributter (lønninger) -ExtraFieldHasWrongValue=Attribut %s har en forkert værdi. -AlphaNumOnlyLowerCharsAndNoSpace=kun alfanumeriske og små bogstaver uden plads -SendmailOptionNotComplete=Advarsel til anvendere af sendmail i Linux-system: Hvis nogle modtagere aldrig modtager e-mails, skal du prøve at redigere denne PHP-parameter med mail.force_extra_parameters = -ba i din php.ini-fil. +ExtraFieldsLines=Supplerende egenskaber (linjer) +ExtraFieldsLinesRec=Supplerende egenskaber (skabeloner faktura linjer) +ExtraFieldsSupplierOrdersLines=Supplerende egenskaber (ordrelinjer) +ExtraFieldsSupplierInvoicesLines=Supplerende egenskaber (fakturalinjer) +ExtraFieldsThirdParties=Supplerende egenskaber (tredjepart) +ExtraFieldsContacts=Supplerende egenskaber (kontakter/adresse) +ExtraFieldsMember=Supplerende egenskaber (medlem) +ExtraFieldsMemberType=Supplerende egenskaber (medlemstype) +ExtraFieldsCustomerInvoices=Supplerende egenskaber (fakturaer) +ExtraFieldsCustomerInvoicesRec=Supplerende egenskaber (skabeloner fakturaer) +ExtraFieldsSupplierOrders=Supplerende egenskaber (ordrer) +ExtraFieldsSupplierInvoices=Supplerende egenskaber (fakturaer) +ExtraFieldsProject=Supplerende egenskaber (projekter) +ExtraFieldsProjectTask=Supplerende egenskaber (opgaver) +ExtraFieldsSalaries=Supplerende egenskaber (løn) +ExtraFieldHasWrongValue=Attributten %s har en forkert værdi. +AlphaNumOnlyLowerCharsAndNoSpace=kun alfanumeriske og små bogstaver uden mellemrum +SendmailOptionNotComplete=Advarsel, på nogle Linux-systemer, for at sende e-mail fra din e-mail, skal sendmail udførelses opsætningen indeholde option -ba (parameter mail.force_extra_parameters i din php.ini fil). Hvis nogle modtagere aldrig modtager e-mails, så prøv at redigere denne PHP parameter med mail.force_extra_parameters = -ba). PathToDocuments=Sti til dokumenter -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Funktion til at sende mails ved hjælp af metode "PHP mail direct" genererer en mailbesked, der muligvis ikke analyseres korrekt af nogle modtagende mail-servere. Resultatet er, at nogle mails ikke kan læses af folk, der er vært for disse bugged platforme. Dette er tilfældet for nogle internetudbydere (Ex: Orange i Frankrig). Dette er ikke et problem med Dolibarr eller PHP, men med den modtagende mail server. Du kan dog tilføje en mulighed MAIN_FIX_FOR_BUGGED_MTA til 1 i Setup - Other for at ændre Dolibarr for at undgå dette. Du kan dog opleve problemer med andre servere, der strengt bruger SMTP-standarden. Den anden løsning (anbefales) er at bruge metoden "SMTP socket library", som ikke har nogle ulemper. +PathDirectory=Mappe +SendmailOptionMayHurtBuggedMTA=Funktionen til at sende e-mails ved hjælp af metoden "PHP mail direct" vil generere en e-mail meddelelse, som muligvis ikke bliver parset korrekt af nogle modtagende e-mail servere. Resultatet er, at nogle e-mails ikke kan læses af personer, der hostes af disse fejlbehæftede platforme. Dette er tilfældet for nogle internetudbydere (f.eks. Orange i Frankrig). Dette er ikke et problem med Dolibarr eller PHP, men med den modtagende mailserver. Du kan dog tilføje en mulighed MAIN_FIX_FOR_BUGGED_MTA til 1 i Opsætning - Anden opsætning for at ændre Dolibarr for at undgå dette. Du kan dog opleve problemer med andre servere, der udelukkende bruger SMTP standarden. Den anden løsning (anbefales) er at bruge metoden "SMTP socket library", som ikke har nogen ulemper. TranslationSetup=Opsætning af oversættelse -TranslationKeySearch=Søg en oversættelsestast eller streng -TranslationOverwriteKey=Overskriv en oversættelsestreng -TranslationDesc=Sådan indstilles displaysprog:
    * Standard / Systemwide: menu Hjem -> Opsætning -> Visning
    * Pr. Bruger: Klik på brugernavnet øverst på skærmen og ændr Bruger Display Setup fanen på brugeren kort. -TranslationOverwriteDesc=Du kan også tilsidesætte strenge, der fylder nedenstående tabel. Vælg dit sprog fra "%s" dropdown, indsæt oversættelsestastens streng i "%s" og din nye oversættelse til "%s" -TranslationOverwriteDesc2=Du kan bruge den anden fane til at hjælpe dig med at vide, hvilken oversættelsessnøgle der skal bruges -TranslationString=Oversættelsestreng -CurrentTranslationString=Nuværende oversættelsestreng -WarningAtLeastKeyOrTranslationRequired=Et søgekriterium kræves i det mindste for nøgle- eller oversættelsestreng -NewTranslationStringToShow=Ny oversættelsestreng, der skal vises -OriginalValueWas=Den oprindelige oversættelse overskrives. Oprindelig værdi var:

    %s -TransKeyWithoutOriginalValue=Du har tvinget en ny oversættelse til oversættelsessnøglen ' %s ', der ikke findes i nogen sprogfiler +TranslationKeySearch=Søg efter en oversættelsesnøgle eller streng +TranslationOverwriteKey=Overskriv en oversættelsesstreng +TranslationDesc=Sådan indstiller du visningssproget:
    * Standard/Systemdækkende: Menu Hjem - Opsætning - Udseende
    * Pr. bruger: Klik på brugernavnet i topmenuen, ret sprog under Bruger opsætning af display på kortet. +TranslationOverwriteDesc=Du kan også overskrive tekster, ved at udfylde følgende tabel. Vælg dit sprog fra rullemenuen "%s", indsæt oversættelsesnøglen i "%s" og din nye oversættelse til "%s" +TranslationOverwriteDesc2=Du kan bruge den anden fane til at hjælpe dig med at vide, hvilken oversættelsesnøgle du skal bruge +TranslationString=Oversættelsesstreng +CurrentTranslationString=Nuværende oversættelsesstreng +WarningAtLeastKeyOrTranslationRequired=Et søgekriterie er påkrævet i det mindste for nøgle eller oversættelsesstreng +NewTranslationStringToShow=Ny oversættelsesstreng der skal vises +OriginalValueWas=Den originale oversættelse er overskrevet. Oprindelig værdi var:

    %s +TransKeyWithoutOriginalValue=Du lavede en ny oversættelse af oversættelsesnøglen '%s', der ikke findes i nogen af sprogfilerne TitleNumberOfActivatedModules=Aktiverede moduler -TotalNumberOfActivatedModules=Aktiverede moduler: %s / %s -YouMustEnableOneModule=Du skal i det mindste aktivere 1 modul -ClassNotFoundIntoPathWarning=Klasse %s ikke fundet i PHP-sti +TotalNumberOfActivatedModules=Aktiverede moduler: %s / %s +YouMustEnableOneModule=Du skal som minimum aktivere 1 modul +YouMustEnableTranslationOverwriteBefore=Du skal først aktivere brug af egne oversættelser for at få lov til at erstatte en oversættelse +ClassNotFoundIntoPathWarning=Class %s ikke fundet i PHP stien YesInSummer=Ja om sommeren -OnlyFollowingModulesAreOpenedToExternalUsers=Bemærk, at kun følgende moduler er tilgængelige for eksterne brugere (uanset tilladelser fra sådanne brugere) og kun hvis der gives tilladelser:
    -SuhosinSessionEncrypt=Sessionsopbevaring krypteret af Suhosin +OnlyFollowingModulesAreOpenedToExternalUsers=Bemærk, kun følgende moduler er tilgængelige for eksterne brugere (uanset sådanne brugeres rettigheder) og kun hvis rettigheder er givet:
    +SuhosinSessionEncrypt=Sessionslagring er krypteret af Suhosin ConditionIsCurrently=Tilstanden er i øjeblikket %s -YouUseBestDriver=Du bruger driver %s, som er den bedste driver, der for øjeblikket er tilgængelig. +YouUseBestDriver=Du bruger driveren %s, som er den bedste driver til rådighed i øjeblikket. YouDoNotUseBestDriver=Du bruger driveren %s, men driveren %s anbefales. -NbOfObjectIsLowerThanNoPb=Du har kun %s %s i databasen. Dette kræver ingen særlig optimering. -ComboListOptim=Optimering af kombinationslisteindlæsning -SearchOptim=Søg optimering -YouHaveXObjectUseComboOptim=Du har %s %s i databasen. Du kan gå ind i opsætningen af modulet for at aktivere indlæsning af kombinationslisten ved en tastetrykket begivenhed. -YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du kan tilføje konstanten %s til 1 i Home-Setup-Other. -YouHaveXObjectUseSearchOptimDesc=Dette begrænser søgningen til begyndelsen af strenge, hvilket gør det muligt for databasen at bruge indekser, og du skal få et øjeblikkeligt svar. -YouHaveXObjectAndSearchOptimOn=Du har %s %s i databasen, og konstant %s er indstillet til %s i Home-Setup-Other. -BrowserIsOK=Du bruger browseren %s. Denne browser er ok for sikkerhed og ydeevne. -BrowserIsKO=Du bruger browseren %s. Denne browser er kendt for at være et dårligt valg for sikkerhed, ydeevne og pålidelighed. Vi anbefaler at bruge Firefox, Chrome, Opera eller Safari. -PHPModuleLoaded=PHP-komponent %s indlæses +NbOfObjectIsLowerThanNoPb=Du har kun %s %s i databasen. Dette kræver ikke nogen særlig optimering. +ComboListOptim=Optimering af indlæsning af kombinationsliste +SearchOptim=Søgeoptimering +YouHaveXObjectUseComboOptim=Du har %s %s i databasen. Du kan gå ind i opsætning af modul for at aktivere indlæsning af kombinationsliste ved påbegyndt skrivning. +YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du kan tilføje konstanten %s med værdien 1 i Hjem - Opsætning - Anden opsætning. +YouHaveXObjectUseSearchOptimDesc=Dette begrænser søgningen til begyndelsen af strenge, hvilket gør det muligt for databasen at bruge indekser, og du bør få et øjeblikkeligt svar. +YouHaveXObjectAndSearchOptimOn=Du har %s %s i databasen og konstant %s er sat til %s i Hjem - Opsætning - Anden opsætning. +BrowserIsOK=Du bruger webbrowseren %s. Denne browser er ok for sikkerhed og ydeevne. +BrowserIsKO=Du bruger webbrowseren %s. Denne browser er kendt for at være et dårligt valg for sikkerhed, ydeevne og pålidelighed. Vi anbefaler at bruge Firefox, Chrome, Opera eller Safari. +PHPModuleLoaded=PHP komponent %s er indlæst PreloadOPCode=Forudindlæst OPCode bruges -AddRefInList=Vis Kunde/Sælger ref. i kombinationslister.
    Tredjeparter vises med navneformatet "CC12345 - SC45678 - The Big Company corp." i stedet for "The Big Company corp". +AddRefInList=Vis Kunde/Leverandør ref. i kombinationslister.
    Tredjeparter vises med navneformatet "CC12345 - SC45678 - Det Store Selskab ApS." i stedet for "Det Store Selskab ApS". AddVatInList=Vis kundens/leverandørens momsnummer i kombinationslister. -AddAdressInList=Vis kunde-/leverandøradresse i kombinationslister.
    Tredjeparter vises med navneformatet "The Big Company corp. - 21 jump street 123456 Big town - USA" i stedet for "The Big Company corp". -AddEmailPhoneTownInContactList=Vis kontakt-e-mail (eller telefoner, hvis ikke defineret) og byinfo-liste (vælg liste eller kombinationsboks)
    Kontakter vises med navnet format "Dupond Durand - dupond.durand@email.com - Paris" eller "Dupond Durand - 06 07 59 65 66 - Paris "i stedet for" Dupond Durand ". -AskForPreferredShippingMethod=Anmod om en foretrukket forsendelsesmetode for tredjeparter. -FieldEdition=Område udgave %s -FillThisOnlyIfRequired=Eksempel: +2 (kun udfyld hvis problemer med tidszoneforskydning opstår) +AddAdressInList=Vis kunde-/leverandøradresse i kombinationslister.
    Tredjeparter vises med navneformatet "Det Store Selskab ApS. - Springvej 21, 0999 Storby - DK" i stedet for "Det Store Selskab ApS". +AddEmailPhoneTownInContactList=Vis kontakt e-mail (eller telefoner, hvis ingen e-mail) og bynavn liste (vælg liste eller kombinationsboks)
    Kontakter vises med navneformatet "Dupond Durand - dupond.durand@example.com - Paris" eller "Dupond Durand - 06 07 59 65 66 - Paris" i stedet for "Dupond Durand". +AskForPreferredShippingMethod=Spørg om foretrukket forsendelsesmetode for tredjeparter. +FieldEdition=Udgave af felt %s +FillThisOnlyIfRequired=Eksempel: +2 (udfyld kun, hvis der er problemer med tidszone forskydning) GetBarCode=Få stregkode -NumberingModules=Nummerering modeller +NumberingModules=Nummererings modeller DocumentModules=Dokumentmodeller ##### Module password generation -PasswordGenerationStandard=Returner en adgangskode, der er genereret i henhold til intern Dolibarr-algoritme: %s tegn, der indeholder delte tal og tegn i små bogstaver. +PasswordGenerationStandard=Returner en adgangskode genereret i henhold til intern Dolibarr algoritme: %s tegn, der indeholder dels tal og tegn med små bogstaver. PasswordGenerationNone=Foreslå ikke en genereret adgangskode. Adgangskoden skal indtastes manuelt. -PasswordGenerationPerso=Ret en adgangskode i overensstemmelse med din personligt definerede konfiguration. -SetupPerso=Ifølge din konfiguration -PasswordPatternDesc=Beskrivelse af adgangskodemønster +PasswordGenerationPerso=Returner en adgangskode i henhold til din personligt definerede konfiguration. +SetupPerso=I henhold til din konfiguration +PasswordPatternDesc=Beskrivelse af adgangskode mønster ##### Users setup ##### RuleForGeneratedPasswords=Regler for at generere og validere adgangskoder -DisableForgetPasswordLinkOnLogonPage=Vis ikke linket "Glemt adgangskode" på siden Login +DisableForgetPasswordLinkOnLogonPage=Vis ikke linket "Glemt adgangskode" på login-siden UsersSetup=Opsætning af brugermodul -UserMailRequired=Email nødvendig for at oprette en ny bruger -UserHideInactive=Skjul inaktive brugere fra alle kombinationslister over brugere (anbefales ikke: dette kan betyde, at du ikke kan filtrere eller søge på gamle brugere på nogle sider) -UsersDocModules=Dokumentskabeloner om dokumenter genereret fra brugerpost -GroupsDocModules=Dokumentskabeloner til dokumenter genereret fra en gruppepost +UserMailRequired=E-mail påkrævet for at oprette en ny bruger +UserHideInactive=Skjul inaktive brugere fra alle kombinationslister over brugere (anbefales ikke: dette kan betyde, at du ikke vil være i stand til at filtrere eller søge på gamle brugere på nogle sider) +UsersDocModules=Dokumentskabeloner til dokumenter genereret fra bruger kort +GroupsDocModules=Dokumentskabeloner til dokumenter genereret fra gruppe kort ##### HRM setup ##### -HRMSetup=HRM modul opsætning +HRMSetup=Opsætning af HRM-modul ##### Company setup ##### -CompanySetup=Opsætning af firmamoduler -CompanyCodeChecker=Valg til automatisk generering af kunde / leverandørkoder -AccountCodeManager=Valg til automatisk generering af kunde / leverandørregnskabskoder -NotificationsDesc=E-mail-meddelelser kan sendes automatisk til nogle Dolibarr-arrangementer.
    Modtagere af meddelelser kan defineres: -NotificationsDescUser=* pr. bruger, en bruger ad gangen. -NotificationsDescContact=* pr. tredjepartskontakter (kunder eller leverandører), en kontakt ad gangen. -NotificationsDescGlobal=* eller ved at indstille globale e -mail -adresser på modulets opsætningsside. -ModelModules=Dokumentskabeloner -DocumentModelOdt=Generer dokumenter fra OpenDocument skabeloner (.ODT / .ODS filer fra LibreOffice, OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Vandmærke på udkast til et dokument -JSOnPaimentBill=Aktivér funktion for at autofyldte betalingslinjer på betalingsformular -CompanyIdProfChecker=Regler for professionelle id'er +CompanySetup=Opsætning af virksomhedsmodul +CompanyCodeChecker=Muligheder for automatisk generering af kunde-/leverandørkoder +AccountCodeManager=Muligheder for automatisk generering af kunde-/leverandør bogføringskoder +NotificationsDesc=E-mail meddelelser kan sendes automatisk til nogle Dolibarr hændelser.
    Modtagere af meddelelser kan defineres: +NotificationsDescUser=* pr. bruger, én bruger ad gangen. +NotificationsDescContact=* pr. tredjepartskontakter (kunder eller leverandører), én kontakt ad gangen. +NotificationsDescGlobal=* eller ved at indstille globale e-mailadresser på modulets opsætningsside. +ModelModules=Dokument skabeloner +DocumentModelOdt=Generer dokumenter fra OpenDocument-skabeloner (.ODT / .ODS-filer fra LibreOffice, OpenOffice, KOffice, TextEdit,...) +WatermarkOnDraft=Vandmærke på udkast til dokument +JSOnPaimentBill=Aktiver funktion for at autofylde betalingslinjer på betalingsformularen +CompanyIdProfChecker=Regler for professionelle ID'er MustBeUnique=Skal være unikt? -MustBeMandatory=Obligatorisk at oprette tredjeparter (hvis momsnummer eller type virksomhed defineret)? -MustBeInvoiceMandatory=Obligatorisk at bekræfte fakturaer? -TechnicalServicesProvided=Tekniske ydelser +MustBeMandatory=Obligatorisk at oprette tredjeparter (hvis momsnummer eller virksomhedstype er defineret) ? +MustBeInvoiceMandatory=Obligatorisk at godkende fakturaer? +TechnicalServicesProvided=Tekniske tjenester leveret #####DAV ##### -WebDAVSetupDesc=Dette er linket for at få adgang til WebDAV-biblioteket. Den indeholder en "offentlig" dir åben for enhver bruger, der kender webadressen (hvis adgang til offentlig adgang er tilladt) og en "privat" mappe, der har brug for en eksisterende loginkonto / adgangskode. -WebDavServer=Root-URL til %s server: %s +WebDAVSetupDesc=Dette er linket til at få adgang til WebDAV-mappen. Den indeholder en "offentlig" mappe, der er åben for enhver bruger, der kender URL'en (hvis offentlig mappeadgang er tilladt) og en "privat" mappe, der har brug for en eksisterende login-konto/adgangskode for adgang. +WebDavServer=Rod URL for %s server: %s ##### Webcal setup ##### -WebCalUrlForVCalExport=En eksportgaranti link til %s format er tilgængelig på følgende link: %s +WebCalUrlForVCalExport=Et eksportlink til %s-format er tilgængeligt på følgende link: %s ##### Invoices ##### BillsSetup=Opsætning af fakturamodul -BillsNumberingModule=Fakturaer og kreditnotaer nummerressourcer modul -BillsPDFModules=Faktura dokumenter modeller -BillsPDFModulesAccordindToInvoiceType=Faktura dokumenter modeller efter faktura type -PaymentsPDFModules=Betalingsdokumenter modeller -ForceInvoiceDate=Force fakturadatoen til bekræftelse dato -SuggestedPaymentModesIfNotDefinedInInvoice=Foreslået betalingsmetode på faktura som standard, hvis ikke defineret på fakturaen -SuggestPaymentByRIBOnAccount=Foreslå betaling ved tilbagetrækning på konto +BillsNumberingModule=Faktura- og kreditnota nummereringsmodel +BillsPDFModules=Faktura dokument skabelon +BillsPDFModulesAccordindToInvoiceType=Faktura dokument skabelon efter fakturatype +PaymentsPDFModules=Betalingsdokument skabelon +ForceInvoiceDate=Tving fakturadato til godkendelsesdato +SuggestedPaymentModesIfNotDefinedInInvoice=Foreslået betalingsmetode på faktura som standard, hvis den ikke er defineret på fakturaen +SuggestPaymentByRIBOnAccount=Foreslå betaling ved hævning på konto SuggestPaymentByChequeToAddress=Foreslå betaling med check til -FreeLegalTextOnInvoices=Fri tekst på fakturaer -WatermarkOnDraftInvoices=Vandmærke på udkast fakturaer (ingen hvis tom) +FreeLegalTextOnInvoices=Fritekst på fakturaer +WatermarkOnDraftInvoices=Vandmærke på udkast til fakturaer (ingen, hvis tom) PaymentsNumberingModule=Betalingsnummereringsmodel 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. ##### Proposals ##### -PropalSetup=Modulopsætning for tilbud -ProposalsNumberingModules=Nummerering af tilbud -ProposalsPDFModules=Skabelon for tilbud +PropalSetup=Opsætning af tilbuds modul +ProposalsNumberingModules=Tilbud nummererings format +ProposalsPDFModules=Tilbud dokument skabelon SuggestedPaymentModesIfNotDefinedInProposal=Foreslået betalingsmetode på forslag som standard, hvis det ikke er defineret i forslaget -FreeLegalTextOnProposal=Fri tekst på tilbud -WatermarkOnDraftProposal=Vandmærke på udkast til tilbud (intet, hvis tom) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Anmode om en bankkonto destination for forslag +FreeLegalTextOnProposal=Fritekst på tilbud +WatermarkOnDraftProposal=Vandmærke på udkast til tilbud (ingen, hvis tom) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Spørg om en bankkonto destination for forslag ##### SupplierProposal ##### -SupplierProposalSetup=Prisanmodninger leverandørmodul opsætning -SupplierProposalNumberingModules=Prisanmodninger leverandører nummereringsmodeller -SupplierProposalPDFModules=Prisanmodninger leverandører dokumenter modeller -FreeLegalTextOnSupplierProposal=Gratis tekst på forespørgsler om prisforespørgsler -WatermarkOnDraftSupplierProposal=Vandmærke på udkast pris anmodninger leverandører (ingen hvis tom) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Anmod om anmodning om bankkonto for prisanmodning -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Anmode om lagerkilde for ordre +SupplierProposalSetup=Pris forespørger leverandører modul opsætning +SupplierProposalNumberingModules=Prisforespørgsler leverandører nummerering modeller +SupplierProposalPDFModules=Prisforespørgsler leverandører dokument skabelon +FreeLegalTextOnSupplierProposal=Fritekst på prisforespørgsler leverandører +WatermarkOnDraftSupplierProposal=Vandmærke på udkast til prisforespørgsler leverandører (ingen hvis tom) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Spørg om en bankkonto destination for prisforespørgsler +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Spørg efter lagerkilde for ordre ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Anmode om købskonto bestemmelsessted +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Bed om bankkonto destination for indkøbsordre ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Foreslået betalingsform på salgsordre som standard, hvis den ikke er defineret i ordren -OrdersSetup=Salgsordrer ledelsesopsætning -OrdersNumberingModules=Ordrer nummerressourcer moduler -OrdersModelModule=Bestil dokumenter modeller -FreeLegalTextOnOrders=Fri tekst om ordrer -WatermarkOnDraftOrders=Vandmærke på udkast til ordrer (ingen hvis tom) -ShippableOrderIconInList=Tilføj et ikon i ordrer liste, der angiver, om ordren kan overføres -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Anmode om bestilling af bankkonto +SuggestedPaymentModesIfNotDefinedInOrder=Foreslået betalingstilstand på salgsordre som standard, hvis den ikke er defineret på ordren +OrdersSetup=Opsætning af salgsordrestyring +OrdersNumberingModules=Ordre nummererings format +OrdersModelModule=Ordre dokument skabelon +FreeLegalTextOnOrders=Fritekst på ordrer +WatermarkOnDraftOrders=Vandmærke på ordre udkast (ingen, hvis tom) +ShippableOrderIconInList=Tilføj et ikon på ordrelisten, som angiver, om ordren kan sendes +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Spørg efter bankkonto destination for ordre ##### Interventions ##### InterventionsSetup=Opsætning af interventionsmodul FreeLegalTextOnInterventions=Fri tekst om intervention dokumenter -FicheinterNumberingModules=Intervention nummerressourcer moduler -TemplatePDFInterventions=Intervention kortet dokumenter modeller -WatermarkOnDraftInterventionCards=Vandmærke på handlingskortdokumenter (ingen hvis tom) +FicheinterNumberingModules=Intervention nummererings format +TemplatePDFInterventions=Intervention kort dokument skabelon +WatermarkOnDraftInterventionCards=Vandmærke på intervention kort dokumenter (ingen hvis tom) ##### Contracts ##### -ContractsSetup=Kontrakter / abonnementer modul opsætning -ContractsNumberingModules=Kontrakter nummerering moduler -TemplatePDFContracts=Kontrakter dokumenterer modeller -FreeLegalTextOnContracts=Fri tekst på kontrakter -WatermarkOnDraftContractCards=Vandmærke på udkast til kontrakter (ingen hvis tom) +ContractsSetup=Opsætning af kontrakter/abonnementer +ContractsNumberingModules=Kontrakt nummererings format +TemplatePDFContracts=Kontrakt dokument skabelon +FreeLegalTextOnContracts=Fritekst på kontrakter +WatermarkOnDraftContractCards=Vandmærke på udkast til kontrakt (ingen hvis tom) ##### Members ##### MembersSetup=Opsætning af medlemsmodul MemberMainOptions=Standardmuligheder -AdherentLoginRequired= Administrere et login for hvert medlem -AdherentMailRequired=Email er påkrævet for at oprette et nyt medlem -MemberSendInformationByMailByDefault=Checkbox til at sende mail bekræftelse til medlemmerne er slået til som standard -MemberCreateAnExternalUserForSubscriptionValidated=Opret et eksternt brugerlogin for hvert valideret nyt medlemsabonnement +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 -MEMBER_REMINDER_EMAIL=Aktivér automatisk påmindelse via e-mail af udløbne abonnementer. Bemærk: Modul %s skal være aktiveret og korrekt konfigureret til at sende påmindelser. +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 ##### -LDAPSetup=LDAP-opsætning +LDAPSetup=LDAP opsætning LDAPGlobalParameters=Globale parametre LDAPUsersSynchro=Brugere LDAPGroupsSynchro=Grupper LDAPContactsSynchro=Kontakter LDAPMembersSynchro=Medlemmer -LDAPMembersTypesSynchro=Medlemstyper +LDAPMembersTypesSynchro=Medlems typer LDAPSynchronization=LDAP synkronisering -LDAPFunctionsNotAvailableOnPHP=LDAP funktioner ikke availbale på din PHP +LDAPFunctionsNotAvailableOnPHP=LDAP funktioner er ikke tilgængelige på din PHP LDAPToDolibarr=LDAP -> Dolibarr DolibarrToLDAP=Dolibarr -> LDAP LDAPNamingAttribute=Indtast LDAP -LDAPSynchronizeUsers=Synkronisere Dolibarr brugere med LDAP -LDAPSynchronizeGroups=Synkronisere Dolibarr grupper med LDAP -LDAPSynchronizeContacts=Synkronisere Dolibarr kontakter med LDAP -LDAPSynchronizeMembers=Synkronisere medlemmer af Dolibarr fundation modul med LDAP -LDAPSynchronizeMembersTypes=Organisering af instituttets medlemmer typer i LDAP -LDAPPrimaryServer=Primære server -LDAPSecondaryServer=Sekundære server -LDAPServerPort=Serverport +LDAPSynchronizeUsers=Organisering af brugere i LDAP +LDAPSynchronizeGroups=Organisering af grupper i LDAP +LDAPSynchronizeContacts=Organisering af kontakter i LDAP +LDAPSynchronizeMembers=Organisering af fondens medlemmer i LDAP +LDAPSynchronizeMembersTypes=Organisering af fondens medlemstyper i LDAP +LDAPPrimaryServer=Primær server +LDAPSecondaryServer=Sekundær server +LDAPServerPort=Server port LDAPServerPortExample=Standard eller StartTLS: 389, LDAP'er: 636 -LDAPServerProtocolVersion=Protocol version +LDAPServerProtocolVersion=Protokol version LDAPServerUseTLS=Brug TLS -LDAPServerUseTLSExample=Din LDAP -server bruger StartTLS +LDAPServerUseTLSExample=Din LDAP server bruger StartTLS LDAPServerDn=Server DN LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Komplet DN (ex: cn = admin, dc = eksempel, dc = com eller cn = Administrator, cn = Brugere, dc = eksempel, dc = com for aktiv mappe) +LDAPAdminDnExample=Komplet DN (f.eks.: cn=admin,dc=eksempel,dc=com eller cn=Administrator,cn=Brugere,dc=eksempel,dc=com for Active Directory) LDAPPassword=Administrator adgangskode LDAPUserDn=Brugernes DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=society,dc=Komplet DN (ex: ou= brugere, DC= samfund, dc= dk) -LDAPGroupDn=Grupper »DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=society,dc=Komplet DN (ex: ou= grupper, dc= samfundet, dc= dk) -LDAPServerExample=Serveradresse (ex: localhost, 192.168.0.2, ldaps: / / ldap.example.com /) -LDAPServerDnExample=Complete DN (ex: dc=company,dc=Komplet DN (ex: dc= firma, DC= com) -LDAPDnSynchroActive=Brugere og grupper synkronisering +LDAPUserDnExample=Komplet DN (f.eks.: ou=brugere,dc=eksempel,dc=com) +LDAPGroupDn=Gruppers DN +LDAPGroupDnExample=Komplet DN (f.eks.: ou=grupper,dc=eksempel,dc=com) +LDAPServerExample=Serveradresse (eks.: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerDnExample=Komplet DN (f.eks.: dc=eksempel,dc=com) +LDAPDnSynchroActive=Synkronisering af brugere og grupper LDAPDnSynchroActiveExample=LDAP til Dolibarr eller Dolibarr til LDAP synkronisering -LDAPDnContactActive=Kontaktpersoner 'synkronisering -LDAPDnContactActiveExample=Aktiveret / Deaktivere synkronisering -LDAPDnMemberActive=Medlemmernes synkronisering -LDAPDnMemberActiveExample=Aktiveret / Deaktivere synkronisering -LDAPDnMemberTypeActive=Medlemmer typer 'synkronisering -LDAPDnMemberTypeActiveExample=Aktiveret / Deaktivere synkronisering -LDAPContactDn=Dolibarr kontakter "DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=Komplet DN (ex: ou= kontakter, dc= samfundet, dc= dk) -LDAPMemberDn=Dolibarr medlemmernes DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=society,dc=Komplet DN (ex: ou= medlemmer, dc= samfundet, dc= dk) -LDAPMemberObjectClassList=Liste over objectClass -LDAPMemberObjectClassListExample=Liste over objectClass definere record attributter (ex: top, inetOrgPerson eller toppen, bruger Active Directory) +LDAPDnContactActive=Kontakters synkronisering +LDAPDnContactActiveExample=Aktiveret/uaktiveret synkronisering +LDAPDnMemberActive=Medlemmers synkronisering +LDAPDnMemberActiveExample=Aktiveret/uaktiveret synkronisering +LDAPDnMemberTypeActive=Medlemstypers synkronisering +LDAPDnMemberTypeActiveExample=Aktiveret/uaktiveret synkronisering +LDAPContactDn=Dolibarr kontakters DN +LDAPContactDnExample=Komplet DN (f.eks.: ou=kontakter,dc=eksempel,dc=com) +LDAPMemberDn=Dolibarr medlemmer DN +LDAPMemberDnExample=Komplet DN (f.eks.: ou=medlemmer,dc=eksempel,dc=com) +LDAPMemberObjectClassList=Liste over objektklasse +LDAPMemberObjectClassListExample=Liste over objectClass, der definerer postattributter (f.eks.: top,inetOrgPerson eller top, bruger for active directory) LDAPMemberTypeDn=Dolibarr medlemmer typer DN -LDAPMemberTypepDnExample=Komplet DN (ex: ou=medlemstype,dc=eksempel,dc=com) -LDAPMemberTypeObjectClassList=Liste over objectClass +LDAPMemberTypepDnExample=Komplet DN (f.eks.: ou=medlemstyper,dc=eksempel,dc=com) +LDAPMemberTypeObjectClassList=Liste over objektklasse LDAPMemberTypeObjectClassListExample=Liste over attributter definerede i objektClass (fx: top, groupOfUniqueNames) -LDAPUserObjectClassList=Liste over objectClass -LDAPUserObjectClassListExample=Liste over objectClass definere record attributter (ex: top, inetOrgPerson eller toppen, bruger Active Directory) -LDAPGroupObjectClassList=Liste over objectClass -LDAPGroupObjectClassListExample=Liste over objectClass definere record attributter (ex: top, groupOfUniqueNames) -LDAPContactObjectClassList=Liste over objectClass -LDAPContactObjectClassListExample=Liste over objectClass definere record attributter (ex: top, inetOrgPerson eller toppen, bruger Active Directory) +LDAPUserObjectClassList=Liste over objektklasse +LDAPUserObjectClassListExample=Liste over objectklasser, der definerer postattributter (f.eks.: top,inetOrgPerson eller top,bruger for active directory) +LDAPGroupObjectClassList=Liste over objektklasse +LDAPGroupObjectClassListExample=Liste over objectklass, der definerer postattributter (f.eks.: top,groupOfUniqueNames) +LDAPContactObjectClassList=Liste over objektklasse +LDAPContactObjectClassListExample=Liste over objectClass, der definerer postattributter (f.eks.: top,inetOrgPerson eller top,bruger for active directory) LDAPTestConnect=Test LDAP-forbindelse LDAPTestSynchroContact=Test kontaktens synkronisering LDAPTestSynchroUser=Test brugerens synkronisering -LDAPTestSynchroGroup=Test koncernens synkronisering -LDAPTestSynchroMember=Test medlem synkronisering -LDAPTestSynchroMemberType=Test medlem type synkronisering -LDAPTestSearch= Test en LDAP-søgning -LDAPSynchroOK=Synkronisering test vellykket -LDAPSynchroKO=Mislykket synkronisering test -LDAPSynchroKOMayBePermissions=Fejl ved 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 +LDAPTestSynchroGroup=Test gruppesynkronisering +LDAPTestSynchroMember=Test medlemssynkronisering +LDAPTestSynchroMemberType=Test medlemstypesynkronisering +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 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 @@ -1563,17 +1577,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 @@ -1584,618 +1598,644 @@ 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=Sendings nummerering moduler -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. -FreeLegalTextOnShippings=Fri tekst på forsendelser +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=Modul til kvitteringsnumre for varelevering -DeliveryOrderModel=Model for kvitteringsnumre for varelevering -DeliveriesOrderAbility=Tilbyd kvitteringer for varelevering -FreeLegalTextOnDeliveryReceipts=Fri tekst om levering kvitteringer +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) +FCKeditorForProduct=WYSIWYG oprettelse/redigering af feltbeskrivelsen på varer/ydelser +FCKeditorForProductDetails=WYSIWYG oprettelse/redigering af produktdetalje linjer for alle enheder (tilbud, ordrer, fakturaer osv...). Advarsel: Brug af denne mulighed anbefales ikke, da det kan skabe problemer med specialtegn og sideformatering, når du genererer 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 (Absolut URL-link eller eksternt link med http://) +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=Karakterkode 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=Fri tekst på check kvitteringer -BankOrderShow=Vis rækkefølgen af ​​bankkonti for lande, der anvender "detaljeret bank nummer" -BankOrderGlobal=General -BankOrderGlobalDesc=General display for +FreeLegalTextOnChequeReceipts=Fritekst på check kvitteringer +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=Kontroller kvitteringsnummermodul +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.
    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 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=Projekter nummerering modul +ProjectsNumberingModules=Projekt nummereringsmodul ProjectsSetup=Opsætning af projektmodul -ProjectsModelModule=Projekt rapport dokument model -TasksNumberingModules=Opgaver nummereringsmodul -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=Udgiftsrapporter nummereringsmodul -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. +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 dolibarr-format ('image.png' hvis det er i det aktuelle temabibliotek, 'image.png@nom_du_module' hvis det er i biblioteket / img / i et modul) -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 bly, vil du definere en anslået mængde projekt / bly. Ifølge ledelsens status kan dette beløb multipliceres med denne sats for at vurdere 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=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 gemmer data om europæiske virksomheder / borgere, kan du nævne den kontaktperson, der er ansvarlig for den generelle databeskyttelsesforordning her +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 +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. +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=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 kundeemner). -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 Email samleren %s? -DateLastCollectResult=Dato for seneste indsamlingsforsøg -DateLastcollectResultOk=Dato for seneste succes med indsamling +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 +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 -EmailCollectorConfirmCollectTitle=Email samle bekræftelse -EmailCollectorConfirmCollect=Vil du køre kollektionen for denne samler nu? -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) +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 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=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 kundeemne (og en tredjepart om nødvendigt) -CreateTicketAndThirdParty=Opret en opgave (linket til en tredjepart, hvis tredjeparten blev indlæst af en tidligere handling, uden nogen anden tredjepart) -CodeLastResult=Latest result code +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=Postnummer -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=Aktivér funktion til at kontrollere, om en ressource er i brug i en begivenhed -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 adgang til nogle værts-IP (jokertegn er ikke tilladt, brug mellemrum mellem værdier). Tom betyder, at alle værter kan få adgang. +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 +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 antitivurs-program), 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 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 +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 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 +BoxstatsDisableGlobal=Deaktiver fuldstændig boksstatistikker +DashboardDisableBlocks=Tommelfinger af åbne objekter (til at behandle eller sent) på det primære dashboard +DashboardDisableBlockAgenda=Deaktiver tommelfingeren for dagsorden DashboardDisableBlockProject=Deaktiver tommelfingeren for projekter DashboardDisableBlockCustomer=Deaktiver tommelfingeren for kunder DashboardDisableBlockSupplier=Deaktiver tommelfingeren for leverandører @@ -2204,19 +2244,66 @@ 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) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en anden skat, skal du også aktivere den første salgsafgift -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en tredje skat, skal du også aktivere den første salgsafgift +DashboardDisableBlockHoliday=Deaktiver tommelfingeren 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 -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en anden skat, skal du også aktivere den første salgsafgift -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruge en tredje skat, skal du også aktivere den første salgsafgift +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 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 en pipe i stedet for i PHP-hukommelsen). Denne metode tillader ikke at kontrollere, at filen er fuldført, og fejlmeddelelsen kan ikke rapporteres, hvis den mislykkes. + +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 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=Standard mulighedsstatus (første status, når kundeemne oprettes) + +IconAndText=Ikon og tekst +TextOnly=Kun tekst +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 +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 diff --git a/htdocs/langs/da_DK/agenda.lang b/htdocs/langs/da_DK/agenda.lang index a2e223a7b82..8e8daa1f91d 100644 --- a/htdocs/langs/da_DK/agenda.lang +++ b/htdocs/langs/da_DK/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Kontrakt %s slettet PropalClosedSignedInDolibarr=Forslag %s underskrevet PropalClosedRefusedInDolibarr=Forslag %s nægtet PropalValidatedInDolibarr=Tilbud %s godkendt +PropalBackToDraftInDolibarr=Forslag %s går tilbage til udkaststatus PropalClassifiedBilledInDolibarr=Forslag %s klassificeret faktureret InvoiceValidatedInDolibarr=Faktura %s godkendt InvoiceValidatedInDolibarrFromPos=Faktura %s bekræftet fra POS @@ -56,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 @@ -66,6 +68,7 @@ ShipmentBackToDraftInDolibarr=Forsendelse %s gå tilbage til udkast status ShipmentDeletedInDolibarr=Forsendelse %s slettet ShipmentCanceledInDolibarr=Forsendelse %s annulleret ReceptionValidatedInDolibarr=Modtagelse %s valideret +ReceptionClassifyClosedInDolibarr=Receptionen %s klassificeret lukket OrderCreatedInDolibarr=Bestil %s oprettet OrderValidatedInDolibarr=Ordre %s bekræftet OrderDeliveredInDolibarr=Bestil %s klassificeret leveret @@ -157,6 +160,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 @@ -172,3 +176,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 89e8350989f..f86ad9814dc 100644 --- a/htdocs/langs/da_DK/banks.lang +++ b/htdocs/langs/da_DK/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transaktion AddBankRecord=Tilføj post AddBankRecordLong=Tilføj indtastning manuelt Conciliated=Afstemt -ConciliatedBy=Afstemt af +ReConciliedBy=Afstemt af DateConciliating=Afstem dato BankLineConciliated=Indlæg afstemt med bankkvittering -Reconciled=Afstemt -NotReconciled=Ikke afstemt +BankLineReconciled=Afstemt +BankLineNotReconciled=Ikke afstemt CustomerInvoicePayment=Kunde betaling SupplierInvoicePayment=Sælgerbetaling SubscriptionPayment=Abonnementsbetaling @@ -172,8 +172,8 @@ SEPAMandate=SEPA mandat YourSEPAMandate=Dit SEPA mandat FindYourSEPAMandate=Dette er dit SEPA-mandat til at give vores firma tilladelse til at foretage en direkte debitering til din bank. Ret det underskrevet (scan af det underskrevne dokument) eller send det pr. Mail til AutoReportLastAccountStatement=Udfyld automatisk feltet 'antal kontoudtog' med det sidste erklæringsnummer, når du foretager afstemning -CashControl=POS kasse apparats kontrol -NewCashFence=Ny kasseapparat åbner eller lukker +CashControl=POS kontant kontrol +NewCashFence=Ny kontantkontrol (åbning eller lukning) BankColorizeMovement=Farvelæg bevægelser BankColorizeMovementDesc=Hvis denne funktion er aktiveret, kan du vælge specifik baggrundsfarve til debet- eller kreditbevægelser BankColorizeMovementName1=Baggrundsfarve til debetbevægelse @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty=Hvis du ikke foretager bankafstemninger på no NoBankAccountDefined=Ingen bankkonto defineret NoRecordFoundIBankcAccount=Ingen registrering fundet på bankkontoen. Dette sker normalt, når en post er slettet manuelt fra listen over transaktioner på bankkontoen (for eksempel under en afstemning af bankkontoen). En anden grund er, at betalingen blev registreret, da modulet "%s" blev deaktiveret. AlreadyOneBankAccount=Allerede en bankkonto defineret +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA-overførsel: 'Betalingstype' på 'Kreditoverførsel'-niveau +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Når du genererer en SEPA XML-fil til kreditoverførsler, kan sektionen "PaymentTypeInformation" nu placeres i sektionen "CreditTransferTransactionInformation" (i stedet for sektionen "Payment"). Vi anbefaler kraftigt at holde dette umarkeret for at placere PaymentTypeInformation på betalingsniveau, da alle banker ikke nødvendigvis vil acceptere det på CreditTransferTransactionInformation-niveau. Kontakt din bank, før du placerer PaymentTypeInformation på CreditTransferTransactionInformation-niveau. +ToCreateRelatedRecordIntoBank=For at oprette manglende relateret bankpost +BanklineExtraFields=Bank Line Extrafields diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index 5cf9b6614d9..8724ad4fa90 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Fejl, korrekt faktura skal have et negativt bel ErrorInvoiceOfThisTypeMustBePositive=Fejl, denne type faktura skal have et beløb ekskl. Skattemæssigt positivt (eller null) ErrorCantCancelIfReplacementInvoiceNotValidated=Fejl, kan ikke annullere en faktura, som er blevet erstattet af en anden faktura, der stadig har status som udkast ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne del eller en anden er allerede brugt, så rabatserier kan ikke fjernes. +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 ActionsOnBill=Handlinger for faktura @@ -282,6 +283,8 @@ RecurringInvoices=Tilbagevendende fakturaer RecurringInvoice=Tilbagevendende faktura RepeatableInvoice=Fakturaskabelon RepeatableInvoices=Fakturerskabelon +RecurringInvoicesJob=Generering af tilbagevendende fakturaer (salgsfakturaer) +RecurringSupplierInvoicesJob=Generering af tilbagevendende fakturaer (købsfakturaer) Repeatable=Skabelon Repeatables=Skabeloner ChangeIntoRepeatableInvoice=Konverter til fakturaskabelon @@ -426,14 +429,24 @@ PaymentConditionShort14D=14 dage PaymentCondition14D=14 dage PaymentConditionShort14DENDMONTH=14 dage i slutningen af ​​måneden PaymentCondition14DENDMONTH=Inden for 14 dage efter slutningen af ​​måneden +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% indskud +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% depositum, resten ved levering FixAmount=Fast beløb - 1 linje med etiketten '%s' VarAmount=Variabel mængde (%% tot.) VarAmountOneLine=Variabel mængde (%% tot.) - 1 linje med etiket '%s' VarAmountAllLines=Variabelt beløb (%% tot.) - alle linjer fra oprindelse +DepositPercent=Indbetal %% +DepositGenerationPermittedByThePaymentTermsSelected=Dette er tilladt af de valgte betalingsbetingelser +GenerateDeposit=Generer en %s%% indbetalingsfaktura +ValidateGeneratedDeposit=Valider det genererede indskud +DepositGenerated=Indskud genereret +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Du kan kun automatisk generere en indbetaling fra et forslag eller en ordre +ErrorPaymentConditionsNotEligibleToDepositCreation=De valgte betalingsbetingelser er ikke berettiget til automatisk indbetalingsgenerering # PaymentType PaymentTypeVIR=Bankoverførsel PaymentTypeShortVIR=Bankoverførsel PaymentTypePRE=Betalingsordre med "Direkte debit" +PaymentTypePREdetails=(på konto *-%s) PaymentTypeShortPRE=Debit betalingsordre PaymentTypeLIQ=Kontanter PaymentTypeShortLIQ=Kontanter @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Checkbetalinger (inkl. Skat) skal betales til SendTo=sendes til PaymentByTransferOnThisBankAccount=Betaling ved overførsel til følgende bankkonto VATIsNotUsedForInvoice=* Ikke gældende moms kunst-293B af CGI +VATIsNotUsedForInvoiceAsso=* Ikke gældende moms art-261-7 i CGI LawApplicationPart1=Ved anvendelse af loven 80.335 af 12/05/80 LawApplicationPart2=varerne forbliver ejendom LawApplicationPart3=Sælgeren indtil fuld betaling af @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Leverandørfaktura slettet UnitPriceXQtyLessDiscount=Enhedspris x Antal - Rabat CustomersInvoicesArea=Kunde fakturerings område SupplierInvoicesArea=Leverandør fakturerings område -FacParentLine=Faktura Line Parent SituationTotalRayToRest=Resten til at betale uden skat PDFSituationTitle=Situation nr. %d SituationTotalProgress=Samlet fremskridt %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Søg efter ubetalte fakturaer med en forfaldsdat NoPaymentAvailable=Ingen betaling tilgængelig for %s PaymentRegisteredAndInvoiceSetToPaid=Betaling registreret og faktura %s indstillet til betalt SendEmailsRemindersOnInvoiceDueDate=Send påmindelse på mail for ubetalte fakturaer +MakePaymentAndClassifyPayed=Rekordbetaling +BulkPaymentNotPossibleForInvoice=Massebetaling er ikke mulig for faktura %s (dårlig type eller status) diff --git a/htdocs/langs/da_DK/boxes.lang b/htdocs/langs/da_DK/boxes.lang index d8e1da69fce..94690fc1693 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 diff --git a/htdocs/langs/da_DK/cashdesk.lang b/htdocs/langs/da_DK/cashdesk.lang index b633ec725a7..252ef889d53 100644 --- a/htdocs/langs/da_DK/cashdesk.lang +++ b/htdocs/langs/da_DK/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Sidefod AmountAtEndOfPeriod=Beløb ved udgangen af perioden (dag, måned eller år) TheoricalAmount=Teoretisk mængde RealAmount=Reelt beløb -CashFence=Lukning af kasseapperat -CashFenceDone=Lukning af kasseapparat udført for perioden +CashFence=Kasselukning +CashFenceDone=Kasselukning udført for perioden NbOfInvoices=Antal fakturaer Paymentnumpad=numerisk tastatur til at indtaste betaling Numberspad=Numerisk tastatur @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} tag bruges til at tilføje terminal TakeposGroupSameProduct=Grupper sammen produktlinjer StartAParallelSale=Start et nyt parallelt salg SaleStartedAt=Salget startede den %s -ControlCashOpening=Åbn popup-menuen "Kontroller kontanter", når du åbner POS -CloseCashFence=Luk kontrol af kasseapparatet +ControlCashOpening=Åbn "Kontrol pengekasse" popup, når du åbner POS +CloseCashFence=Luk kassekontrol CashReport=Kontantrapport MainPrinterToUse=Fortrukket printer til brug OrderPrinterToUse=Bestil printer, der skal bruges @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=Tilføj knappen "Udskriv uden detaljer" PrintWithoutDetailsLabelDefault=Linjelabel som standard ved udskrivning uden detaljer 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 b7b7df9bac6..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 @@ -90,11 +90,14 @@ CategorieRecursivHelp=Hvis indstillingen er aktiveret, tilføjes et produkt i en AddProductServiceIntoCategory=Tilføj følgende produkt/tjeneste AddCustomerIntoCategory=Tildel kategori til kunde AddSupplierIntoCategory=Tildel kategori til leverandør +AssignCategoryTo=Tildel kategori til 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/companies.lang b/htdocs/langs/da_DK/companies.lang index b5c2e17f1b4..0ff30706b14 100644 --- a/htdocs/langs/da_DK/companies.lang +++ b/htdocs/langs/da_DK/companies.lang @@ -2,106 +2,111 @@ ErrorCompanyNameAlreadyExists=Firmanavn %s eksisterer allerede. Vælg et andet. ErrorSetACountryFirst=Indstil land først SelectThirdParty=Vælg en tredjepart -ConfirmDeleteCompany=Er du sikker på, at du vil slette dette firma og alle relaterede oplysninger? +ConfirmDeleteCompany=Er du sikker på, at du vil slette denne virksomhed og alle relaterede oplysninger? DeleteContact=Slet en kontakt/adresse ConfirmDeleteContact=Er du sikker på, at du vil slette denne kontakt og alle relaterede oplysninger? MenuNewThirdParty=Ny tredjepart MenuNewCustomer=Ny kunde -MenuNewProspect=Ny potentiel kunde +MenuNewProspect=Nyt kundeemne MenuNewSupplier=Ny leverandør MenuNewPrivateIndividual=Ny privatperson -NewCompany=Nyt selskab (potentielle kunder, kunde, leverandør) -NewThirdParty=Ny tredjepart (potentielle kunder, kunde, leverandør) -CreateDolibarrThirdPartySupplier=Opret en tredjepart (levenrandør) +NewCompany=Nyt firma (kundeemne, kunde, leverandør) +NewThirdParty=Ny tredjepart (kundeemne, kunde, leverandør) +CreateDolibarrThirdPartySupplier=Opret en tredjepart (leverandør) CreateThirdPartyOnly=Opret tredjepart -CreateThirdPartyAndContact=Opret en tredjepart + en børnekontakt -ProspectionArea=Prospekteringsområde +CreateThirdPartyAndContact=Opret en tredjepart + en underkontakt +ProspectionArea=Kundeemne område IdThirdParty=Id tredjepart -IdCompany=CVR -IdContact=Kontakt-ID +IdCompany=Virksomheds-id +IdContact=Kontakt-id +ThirdPartyAddress=Tredjeparts adresse ThirdPartyContacts=Tredjeparts kontakter ThirdPartyContact=Tredjeparts kontakt/adresse Company=Firma CompanyName=Firmanavn -AliasNames=Alias ​​navn (kommerciel, varemærke, ...) -AliasNameShort=Alias ​​Navn -Companies=Selskaber -CountryIsInEEC=Landet er inden for Det Europæiske Økonomiske Fællesskab -PriceFormatInCurrentLanguage=Pris visningsformat på det aktuelle sprog og valuta -ThirdPartyName=Navn på tredjepart -ThirdPartyEmail=Tredjeparts email -ThirdParty=Tredje part -ThirdParties=Tredjepart -ThirdPartyProspects=Potentielle kunder -ThirdPartyProspectsStats=Potentielle kunder +AliasNames=Alternativt navn (kommerciel, varemærke, ...) +AliasNameShort=Alternativt navn +Companies=Virksomheder +CountryIsInEEC=Landet er inden for Den Europæiske Union +PriceFormatInCurrentLanguage=Prisvisningsformat i det aktuelle sprog og valuta +ThirdPartyName=Tredjeparts navn +ThirdPartyEmail=Tredjeparts e-mail +ThirdParty=Tredjepart +ThirdParties=Tredjeparter +ThirdPartyProspects=Kundeemner +ThirdPartyProspectsStats=Kundeemner ThirdPartyCustomers=Kunder ThirdPartyCustomersStats=Kunder ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s ThirdPartySuppliers=Leverandører ThirdPartyType=Tredjeparts type Individual=Privatperson -ToCreateContactWithSameName=Der oprettes automatisk en kontakt/adresse med samme information som tredjepart under aktuel tredjepart. I de fleste tilfælde er det nok, selvom din tredjepart er en fysisk person, at kun skabe en tredjepart. +ToCreateContactWithSameName=Opretter automatisk en kontakt/adresse med samme information som tredjeparten under tredjeparten. I de fleste tilfælde, selvom din tredjepart er en fysisk person, er det nok at oprette en tredjepart alene. ParentCompany=Moderselskab Subsidiaries=Datterselskaber -ReportByMonth=Rapport pr. Måned -ReportByCustomers=Rapporter pr. Kunde -ReportByThirdparties=Rapport pr. Tredjepart -ReportByQuarter=Rapport pr. Sats -CivilityCode=Landekode +ReportByMonth=Rapport pr. måned +ReportByCustomers=Rapporter pr. kunde +ReportByThirdparties=Rapport pr. tredjepart +ReportByQuarter=Rapport pr. takst +CivilityCode=Borgerlige kodeks RegisteredOffice=Hjemsted Lastname=Efternavn Firstname=Fornavn +RefEmployee=Medarbejder reference +NationalRegistrationNumber=Det Centrale Personregister (CPR) PostOrFunction=Stilling UserTitle=Titel NatureOfThirdParty=Tredjepartens art -NatureOfContact=Kontaktpersonens art +NatureOfContact=Kontaktens art Address=Adresse State=Stat/provins -StateCode=Land / Regions kode +StateId=Stats kode +StateCode=Stats-/provinskode StateShort=Stat Region=Region Region-State=Region - Stat Country=Land CountryCode=Landekode -CountryId=Land id +CountryId=Lande kode Phone=Telefon PhoneShort=Telefon Skype=Skype Call=Ring Chat=Chat -PhonePro=Bus. telefon -PhonePerso=Pers. telefon +PhonePro=Firma telefon +PhonePerso=Privat telefon PhoneMobile=Mobil -No_Email=Afvis masse Emails +No_Email=Afvis massemails Fax=Fax -Zip=Zip Code +Zip=Postnummer Town=By Web=Web Poste= Position DefaultLang=Standardsprog VATIsUsed=Anvendt moms -VATIsUsedWhenSelling=Dette definerer, om denne tredjepart inkluderer en moms eller ej, når den laver en faktura til sine egne kunder +VATIsUsedWhenSelling=Dette definerer, om denne tredjepart inkluderer salgsmoms eller ej, når der laver en faktura til egne kunder VATIsNotUsed=Salgsmoms anvendes ikke -CopyAddressFromSoc=Kopier adresse fra tredjeparts oplysninger +CopyAddressFromSoc=Kopiér adresse fra tredjepartsoplysninger ThirdpartyNotCustomerNotSupplierSoNoRef=Tredjepart hverken kunde eller leverandør, ingen tilgængelige henvisende objekter ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tredjepart hverken kunde eller leverandør, rabatter er ikke tilgængelige -PaymentBankAccount=Betaling bankkonto +PaymentBankAccount=Betalingsbankkonto OverAllProposals=Tilbud OverAllOrders=Ordrer OverAllInvoices=Fakturaer OverAllSupplierProposals=Prisforespørgsler ##### Local Taxes ##### LocalTax1IsUsed=Brug anden skat -LocalTax1IsUsedES= RE bruges -LocalTax1IsNotUsedES= RE bruges ikke +LocalTax1IsUsedES= RE anvendes +LocalTax1IsNotUsedES= RE anvendes ikke LocalTax2IsUsed=Brug tredje skat -LocalTax2IsUsedES= IRPF bruges -LocalTax2IsNotUsedES= IRPF ikke bruges -WrongCustomerCode=Kundekode ugyldig -WrongSupplierCode=Leverandør kode ugyldig +LocalTax2IsUsedES= IRPF anvendes +LocalTax2IsNotUsedES= IRPF anvendes ikke +WrongCustomerCode=Ugyldig kundekode +WrongSupplierCode=Ugyldig Leverandørkode CustomerCodeModel=Kundekodemodel -SupplierCodeModel=Leverandør kode model +SupplierCodeModel=Leverandørkodemodel Gencod=Stregkode +GencodBuyPrice=Stregkode for pris ref ##### Professional ID ##### ProfId1Short=Prof. ID 1 ProfId2Short=Prof. ID 2 @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (handelsregister) ProfId2CM=Id. prof. 2 (skatteyder nr.) -ProfId3CM=Id. prof. 3 (oprettelsesdekret) -ProfId4CM=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=Nr. på oprettelsesdekret +ProfId4ShortCM=Indskudsbevis nr. +ProfId5ShortCM=Andre ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -293,37 +298,37 @@ ProfId1DZ=RC ProfId2DZ=Kunst. ProfId3DZ=NIF ProfId4DZ=NIS -VATIntra=Moms Nr -VATIntraShort=Moms Nr -VATIntraSyntaxIsValid=Syntaks er gyldigt -VATReturn=Moms returnering -ProspectCustomer=Potentielle kunder/kunde -Prospect=Potentiel kunde -CustomerCard=Customer Card +VATIntra=Momsnummer +VATIntraShort=Moms-Nr +VATIntraSyntaxIsValid=Syntaks er gyldig +VATReturn=Moms refusion +ProspectCustomer=Kundeemne/kunde +Prospect=Kundeemne +CustomerCard=Kundekort Customer=Kunde -CustomerRelativeDiscount=Relativ kunde rabat +CustomerRelativeDiscount=Relativ kunderabat SupplierRelativeDiscount=Relativ leverandørrabat CustomerRelativeDiscountShort=Relativ rabat CustomerAbsoluteDiscountShort=Absolut rabat -CompanyHasRelativeDiscount=Denne kunde har en rabat på %s%% -CompanyHasNoRelativeDiscount=Denne kunde har ingen relativ discount som standard -HasRelativeDiscountFromSupplier=Du har en standardrabat på %s%% fra denne sælger -HasNoRelativeDiscountFromSupplier=Du har ingen standard relativ rabat fra denne sælger -CompanyHasAbsoluteDiscount=Denne kunde har rabatter til rådighed (kreditnotaer eller nedbetalinger) for %s%s -CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har rabat til rådighed (kommercielle, nedbetalinger) til %s %s -CompanyHasCreditNote=Denne kunde har stadig kreditnotaer for %s %s +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 +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 -HasAbsoluteDiscountFromSupplier=Du har rabatter til rådighed (kredits noter eller afbetalinger) for %s %s fra denne sælger -HasDownPaymentOrCommercialDiscountFromSupplier=Du har rabatter til rådighed (kreditnote, afbetalinger) til %s %s fra denne sælger -HasCreditNoteFromSupplier=Du har kreditnotaer til %s %s fra denne sælger +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 CompanyHasNoAbsoluteDiscount=Denne kunde har ingen rabat kreditter til rådighed -CustomerAbsoluteDiscountAllUsers=Absolutte kunderabatter (ydet af alle brugere) +CustomerAbsoluteDiscountAllUsers=Absolutte kunderabatter (givet af alle brugere) CustomerAbsoluteDiscountMy=Absolutte kunderabatter (givet af dig selv) -SupplierAbsoluteDiscountAllUsers=Absolutte leverandørrabatter (indtastet af alle brugere) -SupplierAbsoluteDiscountMy=Absolutte leverandørrabatter (indtastet af dig selv) +SupplierAbsoluteDiscountAllUsers=Absolutte leverandørrabatter (givet af alle brugere) +SupplierAbsoluteDiscountMy=Absolutte sælgerrabatter (givet af dig selv) DiscountNone=Ingen -Vendor=Sælger -Supplier=Sælger +Vendor=Leverandør +Supplier=Leverandør AddContact=Opret kontakt AddContactAddress=Opret kontakt/adresse EditContact=Rediger kontakt @@ -331,15 +336,15 @@ EditContactAddress=Rediger kontakt/adresse Contact=Kontakt/Adresse Contacts=Kontakter/adresser ContactId=Kontakt id -ContactsAddresses=Kontakt/adresser +ContactsAddresses=Kontakter/adresser FromContactName=Navn: -NoContactDefinedForThirdParty=Ingen kontakt er defineret for denne tredjepart -NoContactDefined=Ingen kontakt er defineret -DefaultContact=Kontakt som standard -ContactByDefaultFor=Standard Kontakt/Adresse for +NoContactDefinedForThirdParty=Ingen kontakt defineret for denne tredjepart +NoContactDefined=Ingen kontakt defineret +DefaultContact=Standard kontakt/adresse +ContactByDefaultFor=Standard kontakt/adresse for AddThirdParty=Opret tredjepart -DeleteACompany=Slet et selskab -PersonalInformations=Personoplysninger +DeleteACompany=Slet en virksomhed +PersonalInformations=Personlig data AccountancyCode=Regnskabskonto CustomerCode=Kundekode SupplierCode=Leverandørkode @@ -347,26 +352,26 @@ CustomerCodeShort=Kundekode SupplierCodeShort=Leverandør kode CustomerCodeDesc=Kundekode, unik for alle kunder SupplierCodeDesc=Leverandørkode, unik for alle leverandører -RequiredIfCustomer=Påkrævet, hvis tredjepart er kunde eller kunde -RequiredIfSupplier=Påkrævet, hvis tredjepart er en sælger +RequiredIfCustomer=Påkrævet, hvis tredjepart er en kunde eller kundeemne +RequiredIfSupplier=Påkrævet, hvis tredjepart er en leverandør ValidityControledByModule=Gyldighed kontrolleret af modulet ThisIsModuleRules=Regler for dette modul -ProspectToContact=Potentiel kunde til kontakt -CompanyDeleted=Company " %s" slettet fra databasen. +ProspectToContact=Kundeemne for kontakt +CompanyDeleted=Firma "%s" slettet fra databasen. ListOfContacts=Liste over kontakter/adresser ListOfContactsAddresses=Liste over kontakter/adresser ListOfThirdParties=Liste over tredjeparter -ShowCompany=Tredje part +ShowCompany=Tredjepart ShowContact=Kontakt adresse -ContactsAllShort=Alle (intet filter) -ContactType=Type af kontakt -ContactForOrders=Kontakt for ordre -ContactForOrdersOrShipments=Bestillings eller forsendelsens kontakt -ContactForProposals=Kontakt for tilbud -ContactForContracts=Kontakt for kontrakt -ContactForInvoices=Kontakt for faktura +ContactsAllShort=Alle (ingen filter) +ContactType=Kontaktrolle +ContactForOrders=Ordrens kontakt +ContactForOrdersOrShipments=Ordrens eller forsendelsens kontakt +ContactForProposals=Tilbuds kontakt +ContactForContracts=Kontraktens kontakt +ContactForInvoices=Fakturaens kontakt NoContactForAnyOrder=Denne kontakt er ikke tilknyttet nogen ordre -NoContactForAnyOrderOrShipments=Denne kontakt er ikke en kontakt for enhver ordre eller forsendelse +NoContactForAnyOrderOrShipments=Denne kontakt er ikke tilknyttet nogen ordre eller forsendelse NoContactForAnyProposal=Denne kontakt er ikke tilknyttet noget tilbud NoContactForAnyContract=Denne kontakt er ikke tilknyttet nogen kontrakt NoContactForAnyInvoice=Denne kontakt er ikke tilknyttet nogen faktura @@ -376,25 +381,25 @@ MyContacts=Mine kontakter Capital=Egenkapital CapitalOf=Egenkapital på %s EditCompany=Rediger virksomhed -ThisUserIsNot=Denne bruger er ikke Prospekt, kunde eller leverandør +ThisUserIsNot=Denne bruger er ikke kundeemne, kunde eller leverandør VATIntraCheck=Kontrollere -VATIntraCheckDesc=Moms nummer skal indeholde landets præfiks. Linket %s bruger den europæiske momscheckertjeneste (VIES), det kræver internetadgang fra serveren. +VATIntraCheckDesc=Momsnummer skal indeholde landepræfikset. Linket %s bruger den europæiske Validering af momsregistreringsnummer (VIES), som kræver internetadgang fra Dolibarr serveren. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do -VATIntraCheckableOnEUSite=Kontroller moms nummer på EU webside -VATIntraManualCheck=Du kan også tjekke manuelt på Europa-Kommissionens websted %s -ErrorVATCheckMS_UNAVAILABLE=Kontrol er ikke muligt. Denne service leveres ikke af medlemsstaten (%s). -NorProspectNorCustomer=Ikke mulighedder eller kunde +VATIntraCheckableOnEUSite=Tjek momsnummeret inden for Fællesskabet på Europa-Kommissionens websted +VATIntraManualCheck=Du kan også kontrollere manuelt på Europa-Kommissionens websted %s +ErrorVATCheckMS_UNAVAILABLE=Kontrol ikke muligt. Kontrolservice leveres ikke af medlemsstaten (%s). +NorProspectNorCustomer=Ikke kundeemne eller kunde JuridicalStatus=Forretningsenhedstype -Workforce=Arbejdskraft +Workforce=Arbejdsstyrke Staff=Medarbejdere -ProspectLevelShort=Potentiale -ProspectLevel=Kundepotentiale +ProspectLevelShort=Potentiel +ProspectLevel=Kundeemne ContactPrivate=Privat ContactPublic=Delt ContactVisibility=Synlighed ContactOthers=Andre -OthersNotLinkedToThirdParty=Andre, som ikke er knyttet til en tredjepart -ProspectStatus=Prospect status +OthersNotLinkedToThirdParty=Andre, ikke knyttet til en tredjepart +ProspectStatus=Kundeemne status PL_NONE=Ingen PL_UNKNOWN=Ukendt PL_LOW=Lav @@ -410,17 +415,17 @@ TE_RETAIL=Detailhandler TE_WHOLE=Engrossalg TE_PRIVATE=Privatperson TE_OTHER=Andre -StatusProspect-1=Kontakt ikke +StatusProspect-1=Må ikke kontaktes StatusProspect0=Aldrig kontaktet StatusProspect1=Skal kontaktes StatusProspect2=Kontakt i gang StatusProspect3=Er kontaktet -ChangeDoNotContact=Ændre status til 'Kontakt ikke' +ChangeDoNotContact=Ændre status til 'Må ikke kontaktes' ChangeNeverContacted=Ændre status til 'Aldrig kontaktet' ChangeToContact=Skift status til 'Skal Kontaktes' ChangeContactInProcess=Ændre status til 'Kontakt i gang' ChangeContactDone=Ændre status til 'Er kontaktet' -ProspectsByStatus=Potentielle kunder efter status +ProspectsByStatus=Kundeemner efter status NoParentCompany=Ingen ExportCardToFormat=Eksporter kort til format ContactNotLinkedToCompany=Kontakt ikke knyttet til nogen tredjepart @@ -429,9 +434,9 @@ NoDolibarrAccess=Ingen Dolibarr adgang ExportDataset_company_1=Tredjeparter (virksomheder/fonde/fysiske personer) og deres egenskaber ExportDataset_company_2=Kontakter og deres egenskaber ImportDataset_company_1=Tredjeparter og deres egenskaber -ImportDataset_company_2=Tredjeparts ekstra kontakter/adresser og attributter +ImportDataset_company_2=Tredjeparts yderligere kontakter/adresser og attributter ImportDataset_company_3=Tredjeparts bankkonti -ImportDataset_company_4=Tredjeparts salgs repræsentanter (tildele salgs repræsentanter/brugere til virksomheder) +ImportDataset_company_4=Tredjeparts salgsrepræsentanter (tildel salgsrepræsentanter/brugere til virksomheder) PriceLevel=Prisniveau PriceLevelLabels=Prisniveau etiketter DeliveryAddress=Leveringsadresse @@ -442,54 +447,54 @@ DeleteFile=Slet fil ConfirmDeleteFile=Er du sikker på du vil slette denne fil? AllocateCommercial=Tildelt til en salgsrepræsentant Organization=Organisationen -FiscalYearInformation=Skatteår +FiscalYearInformation=Regnskabsår FiscalMonthStart=Første måned i regnskabsåret -SocialNetworksInformation=Sociale netværk +SocialNetworksInformation=Sociale netværker SocialNetworksFacebookURL=Facebook URL SocialNetworksTwitterURL=Twitter URL SocialNetworksLinkedinURL=Linkedin URL SocialNetworksInstagramURL=Instagram URL SocialNetworksYoutubeURL=Youtube URL SocialNetworksGithubURL=Github URL -YouMustAssignUserMailFirst=Du skal oprette en email til denne bruger, før du kan tilføje en e-mail-besked. -YouMustCreateContactFirst=For at kunne tilføje e-mail-meddelelser skal du først definere kontakter med gyldige e-mails til tredjepart +YouMustAssignUserMailFirst=Du skal oprette en e-mail til denne bruger, før du kan tilføje en e-mail-meddelelse. +YouMustCreateContactFirst=For at kunne tilføje e-mail-notifikationer skal du først definere kontakter med gyldige e-mails for tredjeparten ListSuppliersShort=Liste over leverandører -ListProspectsShort=Liste over potentielle kunder +ListProspectsShort=Liste over kunderemner ListCustomersShort=Liste over kunder -ThirdPartiesArea=Tredjeparter / Kontakter +ThirdPartiesArea=Tredjepart/kontakter LastModifiedThirdParties=Seneste %s Tredjeparter, som blev ændret UniqueThirdParties=Samlet antal tredjeparter InActivity=Åben ActivityCeased=Lukket ThirdPartyIsClosed=Tredjepart er lukket -ProductsIntoElements=Liste over produkter / tjenester tilknyttet %s -CurrentOutstandingBill=Udestående faktura i øjeblikket -OutstandingBill=Maks. for udstående faktura -OutstandingBillReached=Maks. for udestående regning nået +ProductsIntoElements=Liste over produkter/tjenester knyttet til %s +CurrentOutstandingBill=Nuværende udestående fakturaer +OutstandingBill=Maks. for udestående fakturaer +OutstandingBillReached=Maks. for udestående fakturaer nået OrderMinAmount=Minimumsbeløb for ordre -MonkeyNumRefModelDesc=Returner et nummer i formatet %syymm-nnnn for kundekoden og %syymm-nnnn for sælgerkoden, hvor yy er år, mm er måned og nnnn er et sekventielt automatisk stigende nummer uden pause og ingen returnering til 0. -LeopardNumRefModelDesc=Kunde / leverandør-koden er ledig. Denne kode kan til enhver tid ændres. -ManagingDirectors=Leder(e) navne (CEO, direktør, chef...) -MergeOriginThirdparty=Duplicate tredjepart (tredjepart, du vil slette) +MonkeyNumRefModelDesc=Returner et tal i formatet %syymm-nnnn for kundekoden og %syymm-nnnn for leverandørkoden, hvor yy er år, mm er måned, og nnnn er et sekventielt automatisk stigningsnummer uden pause og ingen tilbagevenden til 0. +LeopardNumRefModelDesc=Koden er ledig. Denne kode kan til enhver tid ændres. +ManagingDirectors=Lederens navn (administrerende direktør, direktør, formand...) +MergeOriginThirdparty=Kopier tredjepart (tredjepart, du vil slette) MergeThirdparties=Flet tredjeparter -ConfirmMergeThirdparties=Er du sikker på, at du vil flette den valgte tredjepart med den aktuelle? Alle sammenkædede objekter (fakturaer, ordrer, ...) flyttes til den aktuelle tredjepart, hvorefter den valgte tredjepart slettes. -ThirdpartiesMergeSuccess=Tredjeparter er blevet fusioneret +ConfirmMergeThirdparties=Er du sikker på, at du vil flette den valgte tredjepart med den nuværende? Alle tilknyttede objekter (fakturaer, ordrer, ...) vil blive flyttet til den aktuelle tredjepart, hvorefter den valgte tredjepart vil blive slettet. +ThirdpartiesMergeSuccess=Tredjeparter er blevet flettet SaleRepresentativeLogin=Login af salgsrepræsentant SaleRepresentativeFirstname=Fornavn på salgsrepræsentant SaleRepresentativeLastname=Efternavn på salgsrepræsentant -ErrorThirdpartiesMerge=Der opstod en fejl ved sletning af tredjeparter. Kontroller loggen. Ændringer er blevet vendt tilbage. -NewCustomerSupplierCodeProposed=Kunde- eller leverandørkode, der allerede er brugt, foreslås en ny kode +ErrorThirdpartiesMerge=Der opstod en fejl under sletning af tredjeparter. Kontroller venligst loggen. Ændringer er blevet tilbageført. +NewCustomerSupplierCodeProposed=Kunde- eller leverandørkode allerede brugt, en ny kode foreslås KeepEmptyIfGenericAddress=Hold dette felt tomt, hvis denne adresse er en generisk adresse #Imports PaymentTypeCustomer=Betalingstype - Kunde PaymentTermsCustomer=Betalingsbetingelser - Kunde PaymentTypeSupplier=Betalingstype - Leverandør -PaymentTermsSupplier=Betalingsperiode - Leverandør -PaymentTypeBoth=Betalingstype - kunde og levendør +PaymentTermsSupplier=Betalingsbetingelser - Leverandør +PaymentTypeBoth=Betalingstype - kunde og leverandør MulticurrencyUsed=Brug flere valutaer MulticurrencyCurrency=Valuta InEEC=Europa (EØF) RestOfEurope=Resten af Europa (EØF) OutOfEurope=Uden for Europa (EØF) -CurrentOutstandingBillLate=Nuværende udestående regning sent -BecarefullChangeThirdpartyBeforeAddProductToInvoice=Vær forsigtig, afhængigt af dine produktindstillinger, skal du ændre tredjepart, før du tilføjer produktet til POS. +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. diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang index 4161b65c6f4..4aea7252db8 100644 --- a/htdocs/langs/da_DK/compta.lang +++ b/htdocs/langs/da_DK/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Er du sikker på, at du vil klassificere dette lønkort som bet DeleteSocialContribution=Slet en betaling af skat/afgift DeleteVAT=Slet en momsangivelse DeleteSalary=Slet et lønkort +DeleteVariousPayment=Slet en forskellig betaling ConfirmDeleteSocialContribution=Er du sikker på, at du vil slette denne sociale / skattemæssige skattebetaling? ConfirmDeleteVAT=Er du sikker på, at du vil slette denne momsangivelse? ConfirmDeleteSalary=Er du sikker på, at du vil slette denne løn? +ConfirmDeleteVariousPayment=Er du sikker på, at du vil slette denne forskellige betaling? ExportDataset_tax_1=Betalinger af skatter/afgifter CalcModeVATDebt=Indstilling %sMoms på forpligtelseskonto%s . CalcModeVATEngagement=Mode %sVAT på indkomst-udgifter%s . @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Faktureret køb af omsætning ReportPurchaseTurnoverCollected=Køb af omsætning samlet IncludeVarpaysInResults = Medtag forskellige betalinger i rapporter IncludeLoansInResults = Inkluder lån i rapporter -InvoiceLate30Days = Fakturaer for sent (> 30 dage) -InvoiceLate15Days = Fakturaer for sent (15 til 30 dage) -InvoiceLateMinus15Days = Fakturaer for sent (<15 dage) +InvoiceLate30Days = Forsinket (> 30 dage) +InvoiceLate15Days = Forsinket (15 til 30 dage) +InvoiceLateMinus15Days = Forsinket (< 15 dage) InvoiceNotLate = Indsamles (<15 dage) InvoiceNotLate15Days = Indsamles (15 til 30 dage) InvoiceNotLate30Days = Afhentes (> 30 dage) diff --git a/htdocs/langs/da_DK/dict.lang b/htdocs/langs/da_DK/dict.lang index f06be3fb956..94b4c8d49fe 100644 --- a/htdocs/langs/da_DK/dict.lang +++ b/htdocs/langs/da_DK/dict.lang @@ -21,7 +21,7 @@ CountryNL=Holland CountryHU=Hongria CountryRU=Rusland CountrySE=Sverige -CountryCI=Ivoiry Coast +CountryCI=Elfenbenskysten CountrySN=Senegal CountryAR=Argentina CountryCM=Cameroon @@ -31,7 +31,7 @@ CountryMC=Monaco CountryAU=Australien CountrySG=Singapore CountryAF=Afghanistan -CountryAX=Jord Øer +CountryAX=Ålandsøerne CountryAL=Albanien CountryAS=Amerikansk Samoa CountryAD=Andorra diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang index f447526798e..95df5333b5e 100644 --- a/htdocs/langs/da_DK/errors.lang +++ b/htdocs/langs/da_DK/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=E-mail %s synes forkert (domæne har ingen gyldig MX-post) ErrorBadUrl=Url %s er forkert ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. ErrorRefAlreadyExists=Reference %s findes allerede. +ErrorTitleAlreadyExists=Titel %s findes allerede. ErrorLoginAlreadyExists=Log ind %s eksisterer allerede. ErrorGroupAlreadyExists=Gruppe %s eksisterer allerede. ErrorEmailAlreadyExists=E-mail %s findes allerede. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=En anden fil med navnet %s findes allered ErrorPartialFile=Fil ikke modtaget helt af serveren. ErrorNoTmpDir=Midlertidig directy %s ikke eksisterer. ErrorUploadBlockedByAddon=Upload blokeret af en PHP / Apache plugin. -ErrorFileSizeTooLarge=Filstørrelse er for stor. +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) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript må ikke være deaktiveret for at få de 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. 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 ErrorsOnXLines=%s fundne fejl @@ -269,7 +271,7 @@ 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. @@ -277,11 +279,23 @@ 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 +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 +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 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 # 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 +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. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Værdien er ikke gyldig diff --git a/htdocs/langs/da_DK/eventorganization.lang b/htdocs/langs/da_DK/eventorganization.lang index 16d1d57cf92..caf0e3e0d1b 100644 --- a/htdocs/langs/da_DK/eventorganization.lang +++ b/htdocs/langs/da_DK/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Arrangement organisering Settings=Indstillinger EventOrganizationSetupPage = Konfigurationsside for begivenhedsorganisation EVENTORGANIZATION_TASK_LABEL = Etiket over opgaver, der skal oprettes automatisk, når projektet valideres -EVENTORGANIZATION_TASK_LABELTooltip = Når du validerer en organiseret begivenhed, kan der automatisk oprettes nogle opgaver i projektet

    For eksempel:
    Send Call for Conference
    Send Call for Booth
    Modtag opkald til konferencer a04 mind om begivenhed til højttalere
    Send minder om begivenhed til Booth-vært
    Send påmind om begivenhed til deltagere +EVENTORGANIZATION_TASK_LABELTooltip = Når du validerer en begivenhed til at organisere, kan nogle opgaver automatisk oprettes i projektet

    For eksempel:
    Send Ring for konferencer
    Send Ring for boder
    Valider forslag af konferencer
    Valider ansøgning om Boder
    Åbne abonnementer til begivenheden for deltagerne
    Send en påmindelse om begivenheden til højttalere
    Send en påmindelse om begivenheden til standværter
    Send en påmindelse om begivenheden til deltagere +EVENTORGANIZATION_TASK_LABELTooltip2=Hold tom, hvis du ikke behøver at oprette opgaver automatisk. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategori, der automatisk tilføjes til tredjeparter, når nogen foreslår en konference EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategori, der automatisk tilføjes til tredjeparter, når de foreslår en stand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Skabelon til e-mail, der skal sendes efter modtagelse af et forslag til en konference. @@ -59,6 +60,8 @@ 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 @@ -138,6 +141,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 @@ -165,3 +169,4 @@ EmailCompanyForInvoice=Firmaets e -mail (for faktura, hvis den er forskellig fra 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 NoPublicActionsAllowedForThisEvent=Ingen offentlige handlinger er åbne for offentligheden for denne begivenhed +MaxNbOfAttendees=Max antal deltagere diff --git a/htdocs/langs/da_DK/exports.lang b/htdocs/langs/da_DK/exports.lang index e44c3b5909a..5df2c640794 100644 --- a/htdocs/langs/da_DK/exports.lang +++ b/htdocs/langs/da_DK/exports.lang @@ -53,8 +53,8 @@ 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 -DownloadEmptyExample=Download skabelonfil med feltindholdsoplysninger -StarAreMandatory=* er obligatoriske felter +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 ... ChooseFileToImport=Upload fil og klik derefter på ikonet %s for at vælge fil som kilde importfil ... SourceFileFormat=Kilde filformat @@ -135,3 +135,6 @@ NbInsert=Number of inserted lines: %s NbUpdate=Number of updated lines: %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: 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 045d669cb3b..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 klient-modul -NewFTPClient=Ny FTP-forbindelse opsætning -FTPArea=FTP Område -FTPAreaDesc=Denne skærm viser en visning 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-funktioner -FailedToConnectToFTPServer=Kunne ikke forbinde til FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Kunne ikke logge på FTP server med defineret login / password -FTPFailedToRemoveFile=Kunne ikke fjerne filen %s. -FTPFailedToRemoveDir=Kunne ikke fjerne biblioteket%s: Kontroller tilladelser, og at biblioteket er tomt. -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Vælg et FTP-server fra menuen ... -FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/da_DK/holiday.lang b/htdocs/langs/da_DK/holiday.lang index 2c3f51239f5..b9168e3dec9 100644 --- a/htdocs/langs/da_DK/holiday.lang +++ b/htdocs/langs/da_DK/holiday.lang @@ -1,108 +1,108 @@ # 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=Ferie/Fravær +CPTitreMenu=Ferie/Fravær +MenuReportMonth=Månedlig opgørelse +MenuAddCP=Ny forespørgsel +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. +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. 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. FirstDayOfHoliday=Begyndelsesdag for orlovsanmodning LastDayOfHoliday=Afslutningsdag for orlovsanmodning BoxTitleLastLeaveRequests=Latest %s modified leave requests HolidaysMonthlyUpdate=Monthly update 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=Anden 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 +125,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 diff --git a/htdocs/langs/da_DK/hrm.lang b/htdocs/langs/da_DK/hrm.lang index fa7f1cdd3bd..c68e4087ffb 100644 --- a/htdocs/langs/da_DK/hrm.lang +++ b/htdocs/langs/da_DK/hrm.lang @@ -2,40 +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 -HRM_MAXRANK=Maksimal rang for en færdighed -HRM_DEFAULT_SKILL_DESCRIPTION=Standardbeskrivelse af rækker, når færdighed oprettes +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 er oprettet deplacement=Flytte DateEval=Evalueringsdato JobCard=Jobkort -Job=Job -Jobs=Jobs -NewSkill=Ny kunnen +JobPosition=Job +JobsPosition=Jobs +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) @@ -43,39 +44,49 @@ 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 -Position=Position -Positions=Stillinger -PositionCard=Positionskort +EmployeePosition=Medarbejder stilling +EmployeePositions=Medarbejder stillinger EmployeesInThisPosition=Medarbejdere i denne stilling group1ToCompare=Brugergruppe at analysere 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ærdigheder tilføjet +SaveLevelSkill = Færdighedsniveauet er gemt +DeleteSkill = Færdighed fjernet +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 2963651117b..93502365f83 100644 --- a/htdocs/langs/da_DK/install.lang +++ b/htdocs/langs/da_DK/install.lang @@ -1,142 +1,137 @@ # Dolibarr language file - Source file is en_US - install -InstallEasy=Bare følg instruktionerne trin for trin. -MiscellaneousChecks=Forudsætninger check -ConfFileExists=Konfigurationsfil %s eksisterer. -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurationsfilen %s eksisterer ikke og kunne ikke oprettes! -ConfFileCouldBeCreated=Konfigurationsfil %s kunne oprettes. -ConfFileIsNotWritable=Konfigurationsfilen %s kan ikke skrives. Tjek tilladelser. Til første installation skal din webserver være i stand til at skrive i denne fil under konfigurationsprocessen ("chmod 666" for eksempel på et Unix-lignende OS). -ConfFileIsWritable=Konfigurationsfil %s er skrivbar. -ConfFileMustBeAFileNotADir=Konfigurationsfil %s skal være en fil, ikke en mappe. -ConfFileReload=Genindlæsning af parametre fra konfigurationsfilen. +InstallEasy=Følg instruktionerne trin for trin. +MiscellaneousChecks=Forudsætningskontrol +ConfFileExists=Konfigurationsfilen %s findes. +ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurationsfilen %s eksisterer ikke og kunne ikke oprettes! +ConfFileCouldBeCreated=Konfigurationsfilen %s kunne oprettes. +ConfFileIsNotWritable=Konfigurationsfilen %s er ikke skrivbar. Kontroller fil rettigheder. For første installation skal din webserver være i stand til at skrive i denne fil under konfigurationsprocessen ("chmod 666" for eksempel på et Unix-lignende OS). +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 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 variabler POST og / eller GET. Kontroller parameteren variables_order i php.ini. +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. PHPSupport=Denne PHP understøtter %s funktioner. -PHPMemoryOK=Din PHP max session hukommelse er sat til %s. Dette skulle være nok. -PHPMemoryTooLow=Din PHP max-sessionshukommelse er indstillet til %s bytes. Dette er for lavt. Skift din php.ini for at indstille parameteren memory_limit til mindst %s bytes. +PHPMemoryOK=Din PHP max sessionshukommelse er indstillet til %s. Dette burde være nok. +PHPMemoryTooLow=Din PHP max sessionshukommelse er sat til %s bytes. Dette er for lavt. Ret din php.ini for at indstille memory_limit parameter til mindst %s bytes. Recheck=Klik her for en mere detaljeret test -ErrorPHPDoesNotSupportSessions=Din PHP-installation understøtter ikke sessioner. Denne funktion er nødvendig for at tillade Dolibarr at arbejde. Tjek din PHP opsætning og tilladelser i sessions biblioteket. -ErrorPHPDoesNotSupportGD=Din PHP-installation understøtter ikke GD grafiske funktioner. Ingen grafer vil være tilgængelige. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportCalendar=Din PHP installation understøtter ikke php kalenderudvidelser. -ErrorPHPDoesNotSupportUTF8=Din PHP-installation understøtter ikke UTF8-funktioner. Dolibarr kan ikke fungere korrekt. Løs dette inden du installerer Dolibarr. -ErrorPHPDoesNotSupportIntl=Din PHP installation understøtter ikke Intl funktioner. -ErrorPHPDoesNotSupportMbstring=Din PHP-installation understøtter ikke mbstring-funktioner. -ErrorPHPDoesNotSupportxDebug=Din PHP installation understøtter ikke udvidet debug funktioner. +ErrorPHPDoesNotSupportSessions=Din PHP-installation understøtter ikke Sessions. Denne funktion er påkrævet for at tillade Dolibarr at arbejde. Tjek din PHP opsætning og tilladelser til sessionsmappen. ErrorPHPDoesNotSupport=Din PHP-installation understøtter ikke %s funktioner. -ErrorDirDoesNotExists=Directory %s ikke eksisterer. -ErrorGoBackAndCorrectParameters=Gå tilbage og kontroller / korrigér parametrene. -ErrorWrongValueForParameter=Du kan have indtastet en forkert værdi for parameter ' %s'. -ErrorFailedToCreateDatabase=Kunne ikke oprette databasen ' %s'. -ErrorFailedToConnectToDatabase=Det lykkedes ikke at oprette forbindelse til databasen ' %s'. -ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. -ErrorPHPVersionTooLow=PHP version for gammel. Version %s er påkrævet. -ErrorConnectedButDatabaseNotFound=Forbindelse til server succesfuld men database '%s' ikke fundet. -ErrorDatabaseAlreadyExists=Database ' %s' eksisterer allerede. -IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke findes, skal du gå tilbage og kontrollere indstillingen "Opret database". -IfDatabaseExistsGoBackAndCheckCreate=Hvis database findes allerede, gå tilbage og fjern markeringen "Opret database" valgmulighed. -WarningBrowserTooOld=Version af browser er for gammel. Opgradering af din browser til en nyere version af Firefox, Chrome eller Opera anbefales stærkt. -PHPVersion=PHP Version +ErrorDirDoesNotExists=Mappen %s eksisterer ikke. +ErrorGoBackAndCorrectParameters=Gå tilbage og kontroller/ret parametrene. +ErrorWrongValueForParameter=Du har muligvis indtastet en forkert værdi for parameter '%s'. +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 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 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 -ConfigurationFile=Opsætningsfil -WebPagesDirectory=Mappe, hvor websider er gemt -DocumentsDirectory=Vejviser til at gemme uploadet og genererede dokumenter -URLRoot=URL Root -ForceHttps=Force sikre forbindelser (https) -CheckToForceHttps=Markér dette for at tvinge sikre forbindelser (https).
    Dette kræver, at web-serveren er konfigureret med en SSL-certifikat. -DolibarrDatabase=Dolibarr Database +ConfigurationFile=Konfigurationsfil +WebPagesDirectory=Mappen hvor websider er gemt +DocumentsDirectory=Mappen til at gemme uploadede og genererede dokumenter +URLRoot=URL-rod +ForceHttps=Tving sikre forbindelser (https) +CheckToForceHttps=Marker denne mulighed for at gennemtvinge sikre forbindelser (https).
    Dette kræver, at webserveren er konfigureret med et SSL-certifikat. +DolibarrDatabase=Dolibarr database DatabaseType=Database type DriverType=Driver type Server=Server -ServerAddressDescription=Navn eller ip-adresse til databaseserveren. Normalt 'localhost', når databaseserveren er hostet på den samme server som webserveren. -ServerPortDescription=Database serverport. Opbevar tomme hvis ukendt. +ServerAddressDescription=Navn eller ip-adresse for databaseserveren. Normalt 'localhost', når databaseserveren er hostet på samme server som webserveren. +ServerPortDescription=Database server port. Efterlad tom, hvis ukendt. DatabaseServer=Database server DatabaseName=Database navn DatabasePrefix=Database tabel præfiks DatabasePrefixDescription=Database tabel præfiks. Hvis tom, er standardindstillingen llx_. -AdminLogin=Brugerkonto til Dolibarr database ejer. -PasswordAgain=Skriv password bekræftelse igen -AdminPassword=Adgangskode til Dolibarr database administrator. Hold tomme, hvis du slutter i anonym +AdminLogin=Brugerkonto for Dolibarr-database ejer. +PasswordAgain=Indtast adgangskodebekræftelse igen +AdminPassword=Adgangskode til Dolibarr database ejer. CreateDatabase=Opret database -CreateUser=Opret brugerkonto eller give tilladelse til brugerkonto på Dolibarr-databasen -DatabaseSuperUserAccess=Database - SuperUser adgang -CheckToCreateDatabase=Marker afkrydsningsfeltet, hvis databasen ikke eksisterer endnu, og så skal der oprettes.
    I dette tilfælde skal du også udfylde brugernavnet og adgangskoden til superbrugerkontoen nederst på denne side. -CheckToCreateUser=Markér afkrydsningsfeltet, hvis:
    databasens brugerkonto endnu ikke eksisterer, og så skal der oprettes, eller
    hvis brugerkontoen findes, men databasen ikke eksisterer, og der skal gives tilladelser.
    I dette tilfælde, Du skal indtaste brugerkontoen og adgangskoden og også superbrugerkontonavnet og adgangskoden nederst på denne side. Hvis denne boks ikke er markeret, skal database ejer og adgangskode allerede eksistere. -DatabaseRootLoginDescription=Superuser kontonavn (for at oprette nye databaser eller nye brugere), obligatorisk, hvis databasen eller dens ejer ikke allerede eksisterer. -KeepEmptyIfNoPassword=Forlad tom, hvis superbrugeren ikke har noget kodeord (IKKE anbefalet) -SaveConfigurationFile=Gem parametre til +CreateUser=Opret brugerkonto eller giv brugerkonto tilladelse til Dolibarr databasen +DatabaseSuperUserAccess=Databaseserver - Superbrugeradgang +CheckToCreateDatabase=Marker afkrydsningsfeltet, hvis databasen ikke eksisterer endnu og derfor skal oprettes.
    I dette tilfælde skal du også udfylde brugernavn og adgangskode til superbrugerkontoen nederst på denne side. +CheckToCreateUser=Marker afkrydsningsfeltet, hvis:
    databasens brugerkonto endnu ikke eksisterer og derfor skal oprettes, eller
    hvis brugerkontoen eksisterer, men databasen ikke eksisterer, og adgang skal gives.
    I dette tilfælde skal du indtaste brugerkontoen og adgangskoden samt superbrugerkontoens navn og adgangskode nederst på denne side. Hvis dette felt ikke er markeret, skal databaseejer og adgangskode allerede eksistere. +DatabaseRootLoginDescription=Superbrugerkontonavn (for at oprette nye databaser eller nye brugere), obligatorisk hvis databasen eller dens ejer ikke allerede eksisterer. +KeepEmptyIfNoPassword=Efterlad tom, hvis superbruger ikke har nogen adgangskode (anbefales IKKE) +SaveConfigurationFile=Gemmer parametre til ServerConnection=Serverforbindelse -DatabaseCreation=Database skabelse -CreateDatabaseObjects=Database-objekter skabelse -ReferenceDataLoading=Referencedata lastning -TablesAndPrimaryKeysCreation=Tabeller og primære nøgler skabelse +DatabaseCreation=Oprettelse af database +CreateDatabaseObjects=Oprettelse af databaseobjekter +ReferenceDataLoading=Indlæsning af referencedata +TablesAndPrimaryKeysCreation=Oprettelse af tabeller og primære nøgler CreateTableAndPrimaryKey=Opret tabel %s -CreateOtherKeysForTable=Opret udenlandske nøgler og indekser for tabel %s -OtherKeysCreation=Udenlandske nøgler og indekserer skabelse -FunctionsCreation=Funktioner skabelse -AdminAccountCreation=Administrator login skabelse -PleaseTypePassword=Indtast venligst et kodeord, tomme adgangskoder er ikke tilladt! -PleaseTypeALogin=Indtast venligst et login! -PasswordsMismatch=Adgangskoder adskiller sig, prøv igen! -SetupEnd=Afslutningen af ​​opsætningen -SystemIsInstalled=Denne installationen er færdig. +CreateOtherKeysForTable=Opret fremmednøgler og indekser til tabel %s +OtherKeysCreation=Fremmednøgler og indekser oprettelse +FunctionsCreation=Oprettelse af funktioner +AdminAccountCreation=Oprettelse af administratorlogin +PleaseTypePassword=Indtast en adgangskode, tomme adgangskoder er ikke tilladt! +PleaseTypeALogin=Indtast et login! +PasswordsMismatch=Adgangskoder er forskellige, prøv venligst igen! +SetupEnd=Slut på opsætning +SystemIsInstalled=Denne installation er fuldført. SystemIsUpgraded=Dolibarr er blevet opgraderet med succes. -YouNeedToPersonalizeSetup=Du er nødt til at konfigurere Dolibarr at matche dine behov (udseende, funktioner, ...). For at gøre dette, skal du følge nedenstående link: -AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. +YouNeedToPersonalizeSetup=Du skal konfigurere Dolibarr, så den passer til dine behov (udseende, funktioner m.v.). For at gøre dette skal du følge nedenstående link: +AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' oprettet. GoToDolibarr=Gå til Dolibarr -GoToSetupArea=Gå til Dolibarr (opsætning) -MigrationNotFinished=Databaseversionen er ikke helt opdateret: Kør opgraderingsprocessen igen. -GoToUpgradePage=Gå til opgradere siden igen +GoToSetupArea=Gå til Dolibarr (Opsætning) +MigrationNotFinished=Databaseversionen er ikke helt opdateret: kør opgraderingsprocessen igen. +GoToUpgradePage=Gå til opgraderingssiden igen WithNoSlashAtTheEnd=Uden skråstreg "/" i slutningen -DirectoryRecommendation=VIGTIGT: Du skal bruge en mappe, der er uden for de websider (så ikke bruge en undermappe af forrige parameter). -LoginAlreadyExists=Allerede findes +DirectoryRecommendation=VIGTIGT: Du skal bruge en mappe, der er uden for websiderne (så brug ikke en undermappe af forrige parameter). +LoginAlreadyExists=Eksisterer allerede DolibarrAdminLogin=Dolibarr admin login -AdminLoginAlreadyExists=Dolibarr administratorkonto ' %s ' eksisterer allerede. Gå tilbage, hvis du vil oprette en anden. +AdminLoginAlreadyExists=Dolibarr-administratorkontoen '%s' findes allerede. Gå tilbage, hvis du vil oprette en anden. FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. -WarningRemoveInstallDir=Advarsel af sikkerhedshensyn, når installationen eller opgraderingen er færdig, skal du tilføje en fil kaldet install.lock i Dolibarr-dokumentmappen for at forhindre utilsigtet / ondsindet brug af installationsværktøjerne igen. -FunctionNotAvailableInThisPHP=Ikke tilgængelig i dette PHP -ChoosedMigrateScript=Valgt migrere script +WarningRemoveInstallDir=Advarsel, af sikkerhedsmæssige årsager, når installationen eller opgraderingen er fuldført, bør du tilføje en fil kaldet install.lock i Dolibarr-dokumentbiblioteket for at forhindre utilsigtet/ondsindet brug af installationsværktøjerne igen. +FunctionNotAvailableInThisPHP=Ikke tilgængelig i denne PHP +ChoosedMigrateScript=Vælg migreringsscript DataMigration=Databasemigration (data) DatabaseMigration=Databasemigration (struktur + nogle data) -ProcessMigrateScript=Script forarbejdning -ChooseYourSetupMode=Vælg din opsætning mode, og klik på "Start" ... -FreshInstall=Frisk 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=Upgrade -UpgradeDesc=Brug denne tilstand, hvis du har erstattet gamle Dolibarr filer med filerne fra en nyere version. Dette vil opgradere din database og data. +ProcessMigrateScript=Scriptbehandling +ChooseYourSetupMode=Vælg din opsætningstilstand og klik på "Start"... +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. Start=Start -InstallNotAllowed=Setup ikke tilladt ved conf.php tilladelser -YouMustCreateWithPermission=Du skal oprette fil %s og sæt skrive tilladelser på det for web server under installere proces. -CorrectProblemAndReloadPage=Ret venligst problemet, og tryk på F5 for at genindlæse siden. +InstallNotAllowed=Opsætning er ikke tilladt af conf.php rettigheder +YouMustCreateWithPermission=Du skal oprette filen %s og give webserveren skrivetilladelse til filen under installationsprocessen. +CorrectProblemAndReloadPage=Løs problemet, og tryk på F5 for at genindlæse siden. AlreadyDone=Allerede migreret DatabaseVersion=Database version ServerVersion=Database server version -YouMustCreateItAndAllowServerToWrite=Du skal oprette denne mappe og giver mulighed for at web-serveren til at skrive i den. -DBSortingCollation=Tegn sortering orden -YouAskDatabaseCreationSoDolibarrNeedToConnect=Du har valgt at oprette database %s , men Dolibarr skal tilslutte til server %s med superbruger %s tilladelser. -YouAskLoginCreationSoDolibarrNeedToConnect=Du har valgt at oprette databasebruger %s , men Dolibarr skal tilslutte til serveren %s med superbrugerne %s tilladelser. -BecauseConnectionFailedParametersMayBeWrong=Databaseforbindelsen mislykkedes: Værts- eller superbrugerparametrene skal være forkerte. -OrphelinsPaymentsDetectedByMethod=Orphelins betaling opdaget ved metoden %s +YouMustCreateItAndAllowServerToWrite=Du skal oprette denne mappe og tillade, at webserveren kan skrive i den. +DBSortingCollation=Sorterings orden +YouAskDatabaseCreationSoDolibarrNeedToConnect=Du valgte opret database %s, men Dolibarr skal forbinde til server %s med superbruger %s rettigheder. +YouAskLoginCreationSoDolibarrNeedToConnect=Du valgte opret databasebruger %s, men Dolibarr skal forbinde til server %s med superbruger %s rettigheder. +BecauseConnectionFailedParametersMayBeWrong=Databaseforbindelsen mislykkedes: Værts- eller superbruger parametrene må være forkerte. +OrphelinsPaymentsDetectedByMethod=Forældreløs betaling registreret ved metode %s RemoveItManuallyAndPressF5ToContinue=Fjern det manuelt, og tryk på F5 for at fortsætte. FieldRenamed=Felt omdøbt -IfLoginDoesNotExistsCheckCreateUser=Hvis brugeren ikke eksisterer endnu, skal du kontrollere indstillingen "Opret bruger" -ErrorConnection=Server " %s ", databasens navn " %s ", log ind " %s ", eller databaseadgangskoden kan være forkert, eller PHP-klientversionen kan være for gammel i forhold til databaseversionen. -InstallChoiceRecommanded=Anbefalet valg til at installere version %s fra din nuværende version %s -InstallChoiceSuggested=Installer valg foreslået af installationsprogrammet. -MigrateIsDoneStepByStep=Den målrettede version (%s) har et hul i flere versioner. Installationsguiden kommer tilbage for at foreslå en yderligere migrering, når denne er færdig. -CheckThatDatabasenameIsCorrect=Kontroller, at databasenavnet " %s " er korrekt. -IfAlreadyExistsCheckOption=Hvis dette navn er korrekte, og at databasen ikke findes endnu, skal du kontrollere indstillingen "Opret database". +IfLoginDoesNotExistsCheckCreateUser=Hvis brugeren ikke eksisterer endnu, skal du markere muligheden "Opret bruger" +ErrorConnection=Server "%s", databasen "%s", bruger "%s" eller databaseadgangskoden kan være forkert, eller PHP-klientversionen kan være for gammel i forhold til databaseversionen. +InstallChoiceRecommanded=Anbefalet valg for at installere version %s fra din nuværende version %s +InstallChoiceSuggested=Installer valg foreslået af installationsprogrammet. +MigrateIsDoneStepByStep=Den målrettede version (%s) har et spring på flere versioner. Installationsguiden vender tilbage for at foreslå en yderligere migrering, når denne er fuldført. +CheckThatDatabasenameIsCorrect=Kontroller at databasenavnet "%s" er korrekt. +IfAlreadyExistsCheckOption=Hvis dette navn er korrekt, og databasen ikke eksisterer endnu, skal du markere "Opret database". OpenBaseDir=PHP openbasedir parameter -YouAskToCreateDatabaseSoRootRequired=Du har markeret feltet "Opret database". Til dette skal du give login / adgangskode til superbrugeren (bunden af ​​formularen). -YouAskToCreateDatabaseUserSoRootRequired=Du har markeret afkrydsningsfeltet "Opret database ejer". Til dette skal du give login / adgangskode til superbrugeren (bunden af ​​formularen). -NextStepMightLastALongTime=Det nuværende trin kan tage flere minutter. Vent venligst, indtil næste skærm vises helt, inden du fortsætter. -MigrationCustomerOrderShipping=Migrer forsendelse til opbevaring af salgsordrer -MigrationShippingDelivery=Opgrader opbevaring af skibsfart -MigrationShippingDelivery2=Opgrader opbevaring af shipping 2 -MigrationFinished=Migrationen er afsluttet -LastStepDesc= Sidste trin : Definer her login og adgangskode, du vil bruge til at oprette forbindelse til Dolibarr. Mist ikke dette, da det er masterkontoen at administrere alle andre / ekstra brugerkonti. -ActivateModule=Aktiver modul %s -ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode) +YouAskToCreateDatabaseSoRootRequired=Du har markeret feltet "Opret database". Til dette skal du angive superbrugerens login/adgangskode (nederst i formularen). +YouAskToCreateDatabaseUserSoRootRequired=Du har markeret feltet "Opret databaseejer". Til dette skal du angive superbrugerens login/adgangskode (nederst i formularen). +NextStepMightLastALongTime=Det aktuelle trin kan tage flere minutter. Vent venligst, indtil næste skærmbillede vises helt, før du fortsætter. +MigrationCustomerOrderShipping=Migrer lagerplads til forsendelse af salgsordrer +MigrationShippingDelivery=Opgrader lagerplads for forsendelse +MigrationShippingDelivery2=Opgrader lagerplads af forsendelse 2 +MigrationFinished=Migration afsluttet +LastStepDesc=Sidste trin: Definer her login og adgangskode som du vil bruge til at oprette forbindelse til Dolibarr.Mist ikke dette, da det er masterkontoen til at administrere alle andre/ekstra brugerkonti. +ActivateModule=Aktiver modulet %s +ShowEditTechnicalParameters=Klik her for at vise/redigere avancerede parametre (eksperttilstand) WarningUpgrade=Advarsel:\nKørte du først en database backup?\nDette anbefales stærkt. Dataforløb (på grund af f.eks. Fejl i mysql version 5.5.40 / 41/42/43) kan være mulig under denne proces, så det er vigtigt at tage en komplet dump af din database, før du starter en migrering.\n\nKlik på OK for at starte overførselsprocessen ... ErrorDatabaseVersionForbiddenForMigration=Din database version er %s. Det har en kritisk fejl, der muliggør datatab, hvis du foretager strukturelle ændringer i din database, som det kræves af migrationsprocessen. Af hans grund vil migrering ikke blive tilladt, før du opgraderer din database til et lag (patched) version (liste over kendte buggy versioner: %s) KeepDefaultValuesWamp=Du brugte Dolibarr installationsguiden fra DoliWamp, så de her foreslåede værdier er allerede optimeret. Skift kun dem, hvis du ved hvad du laver. @@ -149,55 +144,55 @@ NothingToDelete=Intet at rengøre / slette NothingToDo=Ingenting at lave ######### # upgrade -MigrationFixData=Fix for denormalized data -MigrationOrder=Data migration for kundernes ordrer -MigrationSupplierOrder=Datamigrering for sælgerens ordrer -MigrationProposal=Datamigration for tilbud -MigrationInvoice=Data migration til kundernes fakturaer -MigrationContract=Data migration for kontrakter -MigrationSuccessfullUpdate=Upgrade vellykket -MigrationUpdateFailed=Mislykket Opgraderingsprocessen -MigrationRelationshipTables=Data migration for forholdet tabeller (%s) -MigrationPaymentsUpdate=Betaling data korrektion -MigrationPaymentsNumberToUpdate=%s betaling (er) for at opdatere -MigrationProcessPaymentUpdate=Update betaling (s) %s +MigrationFixData=Rette denormaliserede data +MigrationOrder=Datamigrering af kundeordrer +MigrationSupplierOrder=Datamigrering af leverandørordrer +MigrationProposal=Datamigrering af forretningsforslag +MigrationInvoice=Datamigrering af kundefakturaer +MigrationContract=Datamigrering af kontrakter +MigrationSuccessfullUpdate=Opgraderingen lykkedes +MigrationUpdateFailed=Mislykket opgraderings proces +MigrationRelationshipTables=Datamigrering af relationstabeller (%s) +MigrationPaymentsUpdate=Rettelse af betalingsdata +MigrationPaymentsNumberToUpdate=%s betaling(er) at opdatere +MigrationProcessPaymentUpdate=Opdater betaling(er) %s MigrationPaymentsNothingToUpdate=Ikke flere ting at gøre -MigrationPaymentsNothingUpdatable=Ikke flere betalinger, der kan korrigeres -MigrationContractsUpdate=Kontrakt data korrektion -MigrationContractsNumberToUpdate=%s kontrakt (er) for at opdatere -MigrationContractsLineCreation=Opret kontrakt linje for kontrakten ref %s +MigrationPaymentsNothingUpdatable=Ikke flere betalinger, der kan rettes +MigrationContractsUpdate=Korrektion af kontraktdata +MigrationContractsNumberToUpdate=%s kontrakt(er), der skal opdateres +MigrationContractsLineCreation=Opret kontraktlinje for kontrakt reference %s MigrationContractsNothingToUpdate=Ikke flere ting at gøre -MigrationContractsFieldDontExist=Feltfk_facture eksisterer ikke længere. Ingenting at lave. -MigrationContractsEmptyDatesUpdate=Kontrakt tomme dato korrektion -MigrationContractsEmptyDatesUpdateSuccess=Kontrakt tom datakorrektion udført med succes -MigrationContractsEmptyDatesNothingToUpdate=Ingen kontrakt tomme tidspunkt til at korrigere -MigrationContractsEmptyCreationDatesNothingToUpdate=Ingen kontrakt oprettelsesdato at korrigere -MigrationContractsInvalidDatesUpdate=Bad valørdato kontrakt korrektion -MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting service date min=Korrekt kontrakt %s (Kontrakt dato= %s, Startperiode service dato min= %s) -MigrationContractsInvalidDatesNumber=%s kontrakter modificerede -MigrationContractsInvalidDatesNothingToUpdate=Ingen dato med forkert værdi, der skal korrigeres -MigrationContractsIncoherentCreationDateUpdate=Bad værdi kontrakt oprettelsesdato korrektion -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully -MigrationContractsIncoherentCreationDateNothingToUpdate=Ingen forkert værdi for kontraktens oprettelsesdato, der skal korrigeres -MigrationReopeningContracts=Åbn kontrakten lukkes med fejl -MigrationReopenThisContract=Genåbne kontrakt %s -MigrationReopenedContractsNumber=%s kontrakter modificerede +MigrationContractsFieldDontExist=Feltet fk_facture eksisterer ikke længere. Ingenting at lave. +MigrationContractsEmptyDatesUpdate=Korrektion af tomme kontraktdatoer +MigrationContractsEmptyDatesUpdateSuccess=Korrektion af tomme kontraktdatoer udført med succes +MigrationContractsEmptyDatesNothingToUpdate=Ingen tomme kontraktdatoer at rette +MigrationContractsEmptyCreationDatesNothingToUpdate=Ingen kontrakt oprettelsesdatoer at rette +MigrationContractsInvalidDatesUpdate=Korrektion af forkerte valør datoer i kontrakter +MigrationContractsInvalidDateFix=Korrekt kontrakt %s (kontraktdato=%s, startdato for service min=%s) +MigrationContractsInvalidDatesNumber=%s kontrakter ændret +MigrationContractsInvalidDatesNothingToUpdate=Ingen dato med forkerte værdi, der skal rettes +MigrationContractsIncoherentCreationDateUpdate=Korrektion af forkerte oprettelsesdatoer i kontrakter +MigrationContractsIncoherentCreationDateUpdateSuccess=Korrektion af forkerte oprettelsesdatoer i kontrakter udført med succes +MigrationContractsIncoherentCreationDateNothingToUpdate=Ingen forkerte værdier i kontrakt oprettelsesdato at rette +MigrationReopeningContracts=Åben kontrakt lukket ved fejl +MigrationReopenThisContract=Genåbn kontrakt %s +MigrationReopenedContractsNumber=%s kontrakter ændret MigrationReopeningContractsNothingToUpdate=Ingen lukket kontrakt at åbne -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer -MigrationBankTransfertsNothingToUpdate=Alle links er ajour -MigrationShipmentOrderMatching=Sendings modtagelsen opdatering -MigrationDeliveryOrderMatching=Levering modtagelsen opdatering -MigrationDeliveryDetail=Levering opdatering -MigrationStockDetail=Update materiel værdi af produkter -MigrationMenusDetail=Update dynamiske menuer tabeller -MigrationDeliveryAddress=Update leverings adresse i forsendelser -MigrationProjectTaskActors=Dataoverførsel til tabel llx_projet_task_actors -MigrationProjectUserResp=Data migration inden fk_user_resp af llx_projet til llx_element_contact -MigrationProjectTaskTime=Update tid i sekunder -MigrationActioncommElement=Opdatere data om tiltag -MigrationPaymentMode=Datamigrering til betalingstype -MigrationCategorieAssociation=Migration of categories -MigrationEvents=Migrering af begivenheder for at tilføje eventejeren til opgavetabellen +MigrationBankTransfertsUpdate=Opdater links mellem bankpost og en bankoverførsel +MigrationBankTransfertsNothingToUpdate=Alle links er ajourførte +MigrationShipmentOrderMatching=Opdatering af afsendelseskvittering +MigrationDeliveryOrderMatching=Opdatering af leveringskvittering +MigrationDeliveryDetail=Leveringsopdatering +MigrationStockDetail=Opdater lagerværdi af produkter +MigrationMenusDetail=Opdater tabeller for dynamiske menuer +MigrationDeliveryAddress=Opdater leveringsadresse i forsendelser +MigrationProjectTaskActors=Datamigrering for tabel llx_projet_task_actors +MigrationProjectUserResp=Datamigrering felt fk_user_resp fra llx_projet til llx_element_contact +MigrationProjectTaskTime=Opdater tid brugt i sekunder +MigrationActioncommElement=Opdater data om handlinger +MigrationPaymentMode=Datamigrering for betalingstype +MigrationCategorieAssociation=Migration af kategorier +MigrationEvents=Migrering af begivenheder for at tilføje begivenhedsejer til tildelingstabellen MigrationEventsContact=Migration af begivenheder for at tilføje eventkontakt til opgavebord MigrationRemiseEntity=Update entity field value of llx_societe_remise MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except @@ -205,14 +200,14 @@ MigrationUserRightsEntity=Opdater enhedens feltværdi af llx_user_rights MigrationUserGroupRightsEntity=Opdater enhedens feltværdi af llx_usergroup_rights MigrationUserPhotoPath=Migration af foto stier til brugere MigrationFieldsSocialNetworks=Migration af brugerfelter sociale netværk (%s) -MigrationReloadModule=Reload module %s +MigrationReloadModule=Genindlæs modul %s MigrationResetBlockedLog=Nulstil modul BlockedLog for v7 algoritme MigrationImportOrExportProfiles=Migrering af import- eller eksportprofiler (%s) ShowNotAvailableOptions=Vis utilgængelige muligheder HideNotAvailableOptions=Skjul utilgængelige muligheder ErrorFoundDuringMigration=Fejl (er) blev rapporteret under migrationsprocessen, så næste trin er ikke tilgængeligt. For at ignorere fejl kan du klikke her , men programmet eller nogle funktioner fungerer muligvis ikke korrekt, før fejlene er løst. -YouTryInstallDisabledByDirLock=Programmet forsøgte at opgradere selv, men installerings- / opgraderingssiderne er blevet deaktiveret for sikkerhed (mappen omdøbes med .lock-suffix).
    -YouTryInstallDisabledByFileLock=Programmet forsøgte at opgradere selv, men installerings- / opgraderingssiderne er blevet deaktiveret for sikkerhed (ved at der findes en låsfil install.lock i dolibarr-dokumenter-mappen).
    +YouTryInstallDisabledByDirLock=Programmet forsøgte at opgradere selv, men installerings- / opgraderingssiderne er blevet deaktiveret for sikkerhed (mappen omdøbes med .lock-suffix).
    +YouTryInstallDisabledByFileLock=Programmet forsøgte at opgradere selv, men installerings- / opgraderingssiderne er blevet deaktiveret for sikkerhed (ved at der findes en låsfil install.lock i dolibarr-dokumenter-mappen).
    ClickHereToGoToApp=Klik her for at gå til din ansøgning ClickOnLinkOrRemoveManualy=Hvis en opgradering er i gang, skal du vente. Hvis ikke, skal du klikke på følgende link. Hvis du altid ser denne samme side, skal du fjerne / omdøbe filen install.lock i dokumentmappen. Loaded=Indlæst diff --git a/htdocs/langs/da_DK/interventions.lang b/htdocs/langs/da_DK/interventions.lang index 7e56e3c5bcb..da458e14a36 100644 --- a/htdocs/langs/da_DK/interventions.lang +++ b/htdocs/langs/da_DK/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Skabelon for intervention ToCreateAPredefinedIntervention=For at oprette en foruddefineret eller tilbagevendende intervention skal du oprette en fælles intervention og konvertere den til interventionsskabelon ConfirmReopenIntervention=Er du sikker på, at du vil åbne interventionen %s ? GenerateInter=Generer intervention +FichinterNoContractLinked=Intervention %s er blevet oprettet uden en tilknyttet kontrakt. +ErrorFicheinterCompanyDoesNotExist=Virksomheden eksisterer ikke. Intervention er ikke blevet oprettet. 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 1bf0681512c..927728f488c 100644 --- a/htdocs/langs/da_DK/languages.lang +++ b/htdocs/langs/da_DK/languages.lang @@ -1,8 +1,9 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=etiopiske +Language_am_ET=Etiopisk Language_ar_AR=Arabisk Language_ar_DZ=Arabisk (Algeriet) Language_ar_EG=Arabisk (Egypten) +Language_ar_JO=Arabisk (Jordan) Language_ar_MA=Arabisk (Marokko) Language_ar_SA=Arabisk Language_ar_TN=Arabisk (Tunesien) @@ -12,16 +13,19 @@ 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 -Language_da_DA=Danske +Language_cy_GB=Walisisk +Language_da_DA=Dansk Language_da_DK=Dansk Language_de_DE=Tysk Language_de_AT=Tysk (Østrig) Language_de_CH=German (Switzerland) Language_el_GR=Græsk Language_el_CY=Greek (Cyprus) +Language_en_AE=Engelsk (Forenede Arabiske Emirater) Language_en_AU=Engelsk (Australien) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -36,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) @@ -83,18 +88,21 @@ Language_lt_LT=Litauisk Language_lv_LV=Lettisk Language_mk_MK=Makedonsk Language_mn_MN=Mongolian +Language_my_MM=burmesisk Language_nb_NO=Norsk (Bokmål) -Language_ne_NP=nepalesisk +Language_ne_NP=Nepalesisk 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) Language_ro_RO=Rumænsk Language_ru_RU=Russisk Language_ru_UA=Russisk (Ukraine) +Language_ta_IN=Tamil Language_tg_TJ=Tadsjikisk Language_tr_TR=Tyrkisk Language_sl_SI=Slovenske @@ -106,9 +114,10 @@ Language_sr_RS=Serbian Language_sw_SW=Kiswahili Language_th_TH=Thai Language_uk_UA=Ukrainsk +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..d5d4fe3846f 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=Regnskabskonto kapital som standard +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Regnskabskonto renter som standard +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Regnskabskonto forsikring som standard CreateCalcSchedule=Rediger økonomisk forpligtelse diff --git a/htdocs/langs/da_DK/mails.lang b/htdocs/langs/da_DK/mails.lang index 37e4da3b26b..4bdc2bca9ee 100644 --- a/htdocs/langs/da_DK/mails.lang +++ b/htdocs/langs/da_DK/mails.lang @@ -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 a26ccbaf620..e3f0cd0a967 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -1,20 +1,26 @@ # 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=%d/%m/%Y -FormatDateShortInput=%d/%m/%Y +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=TT:MM +FormatHourShortJQuery=HH:mm FormatHourShort=%H:%M FormatHourShortDuration=%H:%M FormatDateTextShort=%d %b %Y @@ -23,53 +29,53 @@ FormatDateHourShort=%d/%m/%Y %H:%M 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 erstatnings variabler +DatabaseConnection=Databaseforbindelse +NoTemplateDefined=Ingen skabelon tilgængelig for denne e-mailtype +AvailableVariables=Tilgængelige substitutionsvariabler NoTranslation=Ingen oversættelse Translation=Oversættelse -CurrentTimeZone=Aktuelle tidszone +CurrentTimeZone=Tidszone PHP (server) EmptySearchString=Indtast ikke tomme søgekriterier -EnterADateCriteria=Indtast et datokriterium -NoRecordFound=Ingen poster fundet +EnterADateCriteria=Indtast et datokriterie +NoRecordFound=Ingen post fundet NoRecordDeleted=Ingen post slettet NotEnoughDataYet=Ikke nok data NoError=Ingen fejl Error=Fejl Errors=Fejl -ErrorFieldRequired=Felt '%s' er påkrævet -ErrorFieldFormat=Felt '%s' har en forkert værdi -ErrorFileDoesNotExists=Fil %s ikke eksisterer -ErrorFailedToOpenFile=Kunne ikke åbne filen %s -ErrorCanNotCreateDir=Kan ikke oprette dir %s -ErrorCanNotReadDir=Kan ikke læse dir %s -ErrorConstantNotDefined=Parameter %s ikke defineret +ErrorFieldRequired=Feltet '%s' er påkrævet +ErrorFieldFormat=Feltet '%s' har en forkert værdi +ErrorFileDoesNotExists=Filen %s eksisterer ikke +ErrorFailedToOpenFile=Kan ikke åbne filen %s +ErrorCanNotCreateDir=Kan ikke oprette mappen %s +ErrorCanNotReadDir=Kan ikke læse mappen %s +ErrorConstantNotDefined=Parameter %s er ikke defineret ErrorUnknown=Ukendt fejl -ErrorSQL=SQL Fejl -ErrorLogoFileNotFound=Logo fil '%s' blev ikke fundet -ErrorGoToGlobalSetup=Gå til 'Firma/Organisation' opsætning for at rette dette -ErrorGoToModuleSetup=Gå til modulopsætning for at rette dette -ErrorFailedToSendMail=Det lykkedes ikke at sende e-mail (afsender=%s, modtager= %s) -ErrorFileNotUploaded=Filen blev ikke uploadet. Kontroller, at størrelse ikke overstiger det maksimalt tilladte, at den frie plads der er til rådighed på disken, og at der ikke allerede en fil med samme navn i denne mappe. +ErrorSQL=SQL-fejl +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. 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ært parameter -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. +ErrorWrongHostParameter=Forkert værtsparameter +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 @@ -80,53 +86,53 @@ Apply=Ansøge 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 +147,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 -Cancel=Annuller +Resiliate=Deaktiver +Cancel=Afbestille 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 +198,21 @@ 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 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 +220,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=Indtast din adgangskode igen +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 +238,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 @@ -244,64 +250,65 @@ Designation=Beskrivelse DescriptionOfLine=Beskrivelse af linje DateOfLine=Dato for linje DurationOfLine=Linjens varighed -Model=Skabelon +ParentLine=Overordnet linje-id +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 @@ -317,7 +324,7 @@ WeekShort=Uge Day=Dag Hour=Time Minute=Minut -Second=Anden +Second=Sekund Years=År Months=Måneder Days=Dage @@ -331,20 +338,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 @@ -353,52 +360,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) @@ -517,6 +524,7 @@ or=eller Other=Anden Others=Andre OtherInformations=Anden information +Workflow=Workflow Quantity=Antal Qty=Antal ChangedBy=Ændret af @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Vedhæftede filer og dokumenter JoinMainDoc=Tilmeld dig til hoveddokument +JoinMainDocOrLastGenerated=Send hoveddokumentet eller det sidst genererede dokument, hvis det ikke findes DateFormatYYYYMM=ÅÅÅÅ-MM DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD HH: SS @@ -709,6 +718,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 @@ -826,7 +836,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 @@ -938,13 +948,13 @@ EMailTemplates=Email skabeloner FileNotShared=Filen er ikke delt til ekstern offentlighed Project=Projekt Projects=Projekter -LeadOrProject=Bly | Projekt -LeadsOrProjects=Potentielle kunder | Projekter +LeadOrProject=Muligheder | Projekt +LeadsOrProjects=Muligheder | Projekter Lead=At føre Leads=Potentielle kunder -ListOpenLeads=Liste åbne ledninger -ListOpenProjects=Liste åbne projekter -NewLeadOrProject=Ny ledelse eller projekt +ListOpenLeads=Åbne muligheder +ListOpenProjects=Åbne projekter +NewLeadOrProject=Ny mulighed eller projekt Rights=Tilladelser LineNb=Linje nr. IncotermLabel=Inkassovilkor @@ -1124,13 +1134,13 @@ VALIDATEInDolibarr=Optag %s valideret APPROVEDInDolibarr=Optag %s godkendt DefaultMailModel=Standard mail model PublicVendorName=Sælgers offentlige navn -DateOfBirth=Dato for fødsel +DateOfBirth=Fødselsdato SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Sikkerhedstoken er udløbet, så handlingen er annulleret. Prøv igen. UpToDate=Opdateret -OutOfDate=Umoderne +OutOfDate=Forældet EventReminder=Påmindelse om begivenhed UpdateForAllLines=Opdatering til alle linjer -OnHold=I venteposition +OnHold=Afventer Civility=Høflighed AffectTag=Påvirke tags CreateExternalUser=Opret ekstern bruger @@ -1164,3 +1174,16 @@ NotClosedYet=Endnu ikke lukket ClearSignature=Nulstil signatur CanceledHidden=Annulleret skjult CanceledShown=Annulleret vist +Terminate=Afslutte +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=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 diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang index 7c5822a20ab..de0576c85b3 100644 --- a/htdocs/langs/da_DK/members.lang +++ b/htdocs/langs/da_DK/members.lang @@ -15,7 +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 -MembersCards=Visitkort til medlemmer +MembersCards=Generering af kort til medlemmer MembersList=Liste over medlemmer MembersListToValid=Liste over udkast til medlemmer (der skal bekræftes) MembersListValid=Liste over gyldige medlemmer @@ -35,7 +35,8 @@ DateEndSubscription=Slutdato for medlemskab EndSubscription=Slutning af medlemskab SubscriptionId=Bidrag -id WithoutSubscription=Uden bidrag -MemberId=Medlem id +MemberId=Medlems ID +MemberRef=Medlems reference NewMember=Nyt medlem MemberType=Medlem type MemberTypeId=Medlem type id @@ -135,7 +136,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=We want to let you know that your new subscription was recorded.

    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 @@ -159,11 +160,11 @@ HTPasswordExport=htpassword fil generation NoThirdPartyAssociatedToMember=Ingen tredjepart er tilknyttet dette medlem MembersAndSubscriptions=Medlemmer og bidrag MoreActions=Supplerende aktion om kontrolapparatet -MoreActionsOnSubscription=Supplerende handling, som standard foreslået ved registrering af et bidrag +MoreActionsOnSubscription=Supplerende handling foreslået som standard ved registrering af et bidrag, også udført automatisk ved onlinebetaling af et bidrag MoreActionBankDirect=Opret en direkte indtastning på bankkonto MoreActionBankViaInvoice=Opret en faktura og en betaling på bankkonto MoreActionInvoiceOnly=Opret en faktura uden betaling -LinkToGeneratedPages=Generer besøg kort +LinkToGeneratedPages=Generering af visitkort eller adresseark LinkToGeneratedPagesDesc=Denne skærm giver dig mulighed for at generere PDF-filer med visitkort til alle dine medlemmer eller et bestemt medlem. DocForAllMembersCards=Generer visitkort til alle medlemmer DocForOneMemberCards=Generer visitkort for et bestemt medlem (Format for output faktisk setup: %s) @@ -218,3 +219,5 @@ XExternalUserCreated=%s oprettet ekstern(e) bruger(e) ForceMemberNature=Tving medlemmernes natur (enkeltperson eller selskab) CreateDolibarrLoginDesc=Oprettelsen af et brugerlogin for medlemmer giver dem mulighed for at oprette forbindelse til applikationen. Afhængigt af de godkendte tilladelser vil de f.eks. Selv kunne konsultere eller ændre deres fil. 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 diff --git a/htdocs/langs/da_DK/modulebuilder.lang b/htdocs/langs/da_DK/modulebuilder.lang index c0b0333817b..5e6d41ecf51 100644 --- a/htdocs/langs/da_DK/modulebuilder.lang +++ b/htdocs/langs/da_DK/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Dette værktøj må kun bruges af erfarne brugere eller udviklere. Det giver værktøjer til at bygge eller redigere dit eget modul. Dokumentation for alternativ manuel udvikling er her . -EnterNameOfModuleDesc=Indtast navnet på modulet / programmet for at oprette uden mellemrum. Brug store bogstaver til at adskille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Indtast navnet på objektet, der skal oprettes uden mellemrum. Brug store bogstaver til at adskille ord (For eksempel: MyObject, Student, Lærer ...). CRUD-klassefilen, men også API-filen, vil der blive genereret sider til liste / tilføj / rediger / slet objekt og SQL-filer. +EnterNameOfModuleDesc=Indtast navnet på modulet/applikationen, der skal oprettes uden mellemrum. Brug store bogstaver til at adskille ord (for eksempel: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Indtast navnet på det objekt, der skal oprettes, uden mellemrum. Brug store bogstaver til at adskille ord (for eksempel: Mit objekt, elev, lærer...). CRUD-klassefilen, men også API-fil, sider til liste/tilføj/rediger/slet objekt og SQL-filer vil blive genereret. +EnterNameOfDictionaryDesc=Indtast navnet på den ordbog, der skal oprettes uden mellemrum. Brug store bogstaver til at adskille ord (for eksempel: MyDico...). Klassefilen, men også SQL-filen vil blive genereret. ModuleBuilderDesc2=Sti, hvor moduler genereres / redigeres (første bibliotek for eksterne moduler defineret i %s):%s ModuleBuilderDesc3=Genererede / redigerbare moduler fundet: %s ModuleBuilderDesc4=Et modul registreres som 'redigerbart', når filen %s findes i root af modulmappen NewModule=Nyt modul NewObjectInModulebuilder=Nyt objekt +NewDictionary=Ny ordbog ModuleKey=Modul nøgle ObjectKey=Objektnøgle +DicKey=Ordbogsnøgle ModuleInitialized=Modul initialiseret FilesForObjectInitialized=Filer til nyt objekt '%s' initialiseret FilesForObjectUpdated=Filer til objekt '%s' opdateret (.sql-filer og .class.php-fil) @@ -52,7 +55,7 @@ LanguageFile=Fil til sprog ObjectProperties=Objektegenskaber ConfirmDeleteProperty=Er du sikker på, at du vil slette ejendommen %s ? Dette vil ændre kode i PHP klasse, men også fjerne kolonne fra tabeldefinition af objekt. NotNull=Ikke NULL -NotNullDesc=1 = Indstil database til IKKE NULL. -1 = Tillad null værdier og tving værdien til NULL, hvis tom ('' eller 0). +NotNullDesc=1=Indstil databasen til IKKE NULL, 0=Tillad nulværdier, -1=Tillad nulværdier ved at tvinge værdien til NULL, hvis den er tom ('' eller 0) SearchAll=Brugt til 'Søg alle' DatabaseIndex=Database indeks FileAlreadyExists=Fil %s eksisterer allerede @@ -94,7 +97,7 @@ LanguageDefDesc=Indtast i denne fil, alle nøgler og oversættelsen for hver spr MenusDefDesc=Her definerer menuerne fra dit modul DictionariesDefDesc=Definer her ordbøgerne leveret af dit modul PermissionsDefDesc=Definer her de nye tilladelser, der leveres af dit modul -MenusDefDescTooltip=Menuerne leveret af dit modul / din applikation defineres i arrayet $ this-> menuer i modulbeskrivelsesfilen. Du kan redigere denne fil manuelt eller bruge den integrerede editor.

    Bemærk: Når den er defineret (og modulet er genaktiveret), er menuer også synlige i menueditoren, der er tilgængelig for administratorbrugere på%s. +MenusDefDescTooltip=Menuerne fra dit modul/din applikation er defineret i arrayet $this->menus i modulbeskrivelsesfilen. Du kan redigere denne fil manuelt eller bruge den indlejrede editor.

    Bemærk: Når de er defineret (og modulet genaktiveret), er menuerne også synlige i menueditoren, der er tilgængelig for administratorbrugere på %s. DictionariesDefDescTooltip=Ordbøgerne leveret af dit modul / din applikation defineres i matrixen\n$ dette-> ordbøger i modulbeskrivelsesfilen. Du kan redigere manuelt denne fil eller bruge den integrerede editor.

    Note: Når defineret (og modul re-aktiveret), ordbøger er også synlige i opsætningen område til administrator brugere på%s. PermissionsDefDescTooltip=Tilladelserne fra din modul / ansøgning er defineret i array $ this-> rettigheder i modulet deskriptor fil. Du kan redigere manuelt denne fil eller bruge den integrerede editor.

    Note: Når defineret (og modul re-aktiveret), tilladelser er synlige i standardtilladelser opsætning%s. HooksDefDesc=Definer i egenskaben module_parts ['hooks'] i modulbeskrivelsen den kontekst af kroge, du vil administrere (liste over sammenhænge kan findes ved en søgning på ' initHooks ( 'i kernekode).
    Rediger krogfilen for at tilføje kode for dine hooked funktioner (hookable funktioner kan findes ved en søgning på' executeHooks 'i kernekode). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Ødelæg tabel, hvis det er tomt) TableDoesNotExists=Tabellen %s findes ikke TableDropped=Tabel %s slettet InitStructureFromExistingTable=Byg strukturen array streng af en eksisterende tabel -UseAboutPage=Deaktiver den omkringliggende side +UseAboutPage=Generer ikke siden Om UseDocFolder=Deaktiver dokumentationsmappen UseSpecificReadme=Brug en bestemt ReadMe ContentOfREADMECustomized=Bemærk: Indholdet i README.md filen er blevet erstattet med det specifikke værdi defineres i opsætningen af ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Brug en bestemt editor webadresse UseSpecificFamily = Brug en bestemt familie UseSpecificAuthor = Brug en bestemt forfatter UseSpecificVersion = Brug en bestemt initial version -IncludeRefGeneration=Reference til objekt skal genereres automatisk -IncludeRefGenerationHelp=Kontroller dette, hvis du vil inkludere kode til at styre genereringen af referencen automatisk -IncludeDocGeneration=Jeg vil generere nogle dokumenter fra objektet +IncludeRefGeneration=Referencen til objektet skal genereres automatisk af tilpassede nummereringsregler +IncludeRefGenerationHelp=Marker dette, hvis du vil inkludere kode til at styre genereringen af referencen automatisk ved hjælp af tilpassede nummereringsregler +IncludeDocGeneration=Jeg vil generere nogle dokumenter fra skabeloner til objektet IncludeDocGenerationHelp=Hvis du markerer dette, vil nogle koder genereres for at tilføje en kasse "Generer dokument" på posten. ShowOnCombobox=Vis værdi til combobox KeyForTooltip=Nøgle til værktøjstip @@ -138,10 +141,16 @@ CSSViewClass=CSS til læst form CSSListClass=CSS til liste NotEditable=Ikke redigerbar ForeignKey=Fremmed nøgle -TypeOfFieldsHelp=Felttype:
    varchar (99), dobbelt (24,8), reel, tekst, html, datetime, tidsstempel, heltal, heltal: ClassName: relative path / to / classfile.class.php [: 1 [: filter]] ( '1' betyder, at vi tilføjer en + knap efter kombinationsboksen for at oprette posten, 'filter' kan være 'status = 1 OG fk_user = __USER_ID OG enhed IN (__SHARED_ENTITIES__)' for eksempel) +TypeOfFieldsHelp=Type felter:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' betyder, at vi tilføjer en +-knap efter kombinationen for at oprette posten
    'filter' er en SQL-betingelse, eksempel: 'status=1 OG fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Ascii til HTML-konverter AsciiToPdfConverter=Ascii til PDF konverter TableNotEmptyDropCanceled=Tabellen er ikke tom. Drop er annulleret. ModuleBuilderNotAllowed=Modulbyggeren er tilgængelig, men ikke tilladt for din bruger. ImportExportProfiles=Import og eksport af profiler -ValidateModBuilderDesc=Sæt 1, hvis dette felt skal valideres med $ this-> validateField () eller 0, hvis validering er påkrævet +ValidateModBuilderDesc=Indstil dette til 1, hvis du vil have metoden $this->validateField() for objektet, der kaldes for at validere indholdet af feltet under indsættelse eller opdatering. Indstil 0, hvis der ikke er behov for validering. +WarningDatabaseIsNotUpdated=Advarsel: Databasen opdateres ikke automatisk, du skal ødelægge tabeller og deaktivere-aktivere modulet for at få tabeller genskabt +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 4a611751bf2..7c7d056c755 100644 --- a/htdocs/langs/da_DK/mrp.lang +++ b/htdocs/langs/da_DK/mrp.lang @@ -1,28 +1,28 @@ Mrp=Fremstillingsordrer MOs=Produktionsordrer ManufacturingOrder=Produktionsordre -MRPDescription=Modul til styring af produktions- og produktionsordrer (MO). +MRPDescription=Modul til styring af produktionsordrer. MRPArea=MRP-område MrpSetupPage=Opsætning af modul MRP -MenuBOM=Stofregninger -LatestBOMModified=Seneste %s Regninger med materialer ændret +MenuBOM=Styklister +LatestBOMModified=Seneste %s Styklister med materialer ændret LatestMOModified=Seneste %s Produktionsordrer ændret -Bom=Stofregninger -BillOfMaterials=regning på Stykliste -BillOfMaterialsLines=Regning på Materiale linjer -BOMsSetup=Opsætning af modul BOM -ListOfBOMs=Liste over regninger med materiale - BOM +Bom=Styklister +BillOfMaterials=Styklister +BillOfMaterialsLines=Stykliste linjer +BOMsSetup=Opsætning af modul Styklister +ListOfBOMs=Liste over styklister ListOfManufacturingOrders=Liste over produktionsordrer -NewBOM=Ny regning på stykliste +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 BOMsModelModule=BOM-dokumentskabeloner MOsNumberingModules=MO-nummereringsskabeloner MOsModelModule=MO-dokumentskabeloner -FreeLegalTextOnBOMs=Gratis tekst på dokument fra BOM -WatermarkOnDraftBOMs=Vandmærke ved udkast til BOM -FreeLegalTextOnMOs=Gratis tekst på MO's dokument -WatermarkOnDraftMOs=Vandmærke ved udkast til MO +FreeLegalTextOnBOMs=Fritekst på dokument fra stykliste +WatermarkOnDraftBOMs=Vandmærke ved udkast til stykliste +FreeLegalTextOnMOs=Fritekst på produktionsordre dokument +WatermarkOnDraftMOs=Vandmærke ved udkast til produktionsordre ConfirmCloneBillOfMaterials=Er du sikker på, at du vil klone styklisten %s? ConfirmCloneMo=Er du sikker på, at du vil klone produktionsordren %s? ManufacturingEfficiency=Fremstillingseffektivitet @@ -41,19 +41,19 @@ DateEndPlannedMo=Dato slutning planlagt KeepEmptyForAsap=Tom betyder 'Så snart som muligt' EstimatedDuration=Estimeret varighed EstimatedDurationDesc=Anslået varighed for at fremstille (eller adskille) dette produkt ved hjælp af denne stykliste -ConfirmValidateBom=Er du sikker på, at du vil validere BOM med referencen %s (du vil være i stand til at bruge den til at oprette nye produktionsordrer) -ConfirmCloseBom=Er du sikker på, at du vil annullere denne BOM (du vil ikke være i stand til at bruge den til at oprette nye produktionsordrer mere)? -ConfirmReopenBom=Er du sikker på, at du vil åbne denne BOM igen (du vil kunne bruge den til at oprette nye produktionsordrer) -StatusMOProduced=produceret +ConfirmValidateBom=Er du sikker på, at du vil validere styklisten med referencen %s (du vil være i stand til at bruge den til at oprette nye produktionsordrer) +ConfirmCloseBom=Er du sikker på, at du vil annullere denne stykliste (du vil ikke være i stand til at bruge den til at oprette nye produktionsordrer mere)? +ConfirmReopenBom=Er du sikker på, at du vil åbne denne stykliste igen (du vil kunne bruge den til at oprette nye produktionsordrer) +StatusMOProduced=Produceret QtyFrozen=Frosset antal QuantityFrozen=Frosset mængde QuantityConsumedInvariable=Når dette flag er indstillet, er den forbrugte mængde altid den definerede værdi og er ikke i forhold til den producerede mængde. DisableStockChange=Aktieændring deaktiveret DisableStockChangeHelp=Når dette flag er indstillet, sker der ingen lagerændringer på dette produkt, uanset hvilken mængde der er forbrugt BomAndBomLines=Materiale regninger og linjer -BOMLine=Line of BOM +BOMLine=Stykliste linje WarehouseForProduction=Lager til produktion -CreateMO=Opret MO +CreateMO=Opret produktionsordre ToConsume=At indtage ToProduce=At producere ToObtain=At opnå @@ -69,19 +69,21 @@ ForAQuantityToConsumeOf=For en mængde at adskille af %s ConfirmValidateMo=Er du sikker på, at du vil validere denne produktionsordre? ConfirmProductionDesc=Ved at klikke på '%s', validerer du forbrug og / eller produktion for de angivne mængder. Dette vil også opdatere lagerbeholdningen og registrere bestandsbevægelser. ProductionForRef=Produktion af %s +CancelProductionForRef=Annullering af produktlagernedsættelse for produkt %s +TooltipDeleteAndRevertStockMovement=Slet linje og fortryd lagerbevægelse AutoCloseMO=Luk automatisk fabrikationsordren, hvis der er nået mængder, der skal forbruges og produceres NoStockChangeOnServices=Ingen lagerændring på tjenester -ProductQtyToConsumeByMO=Produktmængde, der stadig skal forbruges af åben MO -ProductQtyToProduceByMO=Produktmængde, der stadig produceres af åben MO +ProductQtyToConsumeByMO=Produktmængde, der stadig skal forbruges af åben produktionsordre +ProductQtyToProduceByMO=Produktmængde, der stadig produceres af åben produktionsordre AddNewConsumeLines=Tilføj ny linje til at forbruge AddNewProduceLines=Tilføj ny linje til at producere ProductsToConsume=Produkter til at forbruge ProductsToProduce=Produkter til at producere UnitCost=Enhedspris TotalCost=Udgifter i alt -BOMTotalCost=Omkostningerne til at fremstille denne BOM 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) +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) 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 MO +ErrorAVirtualProductCantBeUsedIntoABomOrMo=Et sæt kan ikke bruges i en stykliste eller en produktionsordre Workstation=Arbejdsstation Workstations=Arbejdsstationer WorkstationsDescription=Arbejdsstationsadministration @@ -107,3 +109,6 @@ THMEstimatedHelp=Denne sats gør det muligt at definere en overslagspris for var BOM=Materialeliste CollapseBOMHelp=Du kan definere standardvisningen af detaljerne i nomenklaturen i konfigurationen af styklistemodulet MOAndLines=Fremstilling af ordrer og linjer +MoChildGenerate=Generer Child Mo +ParentMo=MO Forælder +MOChild=MO barn 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 e1cce87a19f..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 @@ -68,6 +69,8 @@ CreateOrder=Opret ordre RefuseOrder=Afvis ordre ApproveOrder=Godkendelse af ordre Approve2Order=Godkend ordre (andet niveau) +UserApproval=Bruger til godkendelse +UserApproval2=Bruger til godkendelse (andet niveau) ValidateOrder=Bekræft orden UnvalidateOrder=Unvalidate rækkefølge DeleteOrder=Slet orden @@ -102,6 +105,8 @@ ConfirmCancelOrder=Er du sikker på, at du vil annullere denne ordre? ConfirmMakeOrder=Er du sikker på, at du vil bekræfte, at du har foretaget denne ordre på %s ? GenerateBill=Generer faktura ClassifyShipped=Klassificer leveret +PassedInShippedStatus=sæt den som leveret +YouCantShipThis=Jeg kan ikke klassificere dette. Tjek venligst brugertilladelser DraftOrders=Udkast til ordrer DraftSuppliersOrders=Udkast til indkøbsordrer OnProcessOrders=Den proces ordrer diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index 46edef7e29d..b678cda3b54 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... eller bygg din egen profil
    (manuel modulvalg) DemoFundation=Administrer medlemmer af en fond DemoFundation2=Administrer medlemmer og bankkonto i en fond DemoCompanyServiceOnly=Kun firma eller freelance-salgstjeneste -DemoCompanyShopWithCashDesk=Administrer en butik med et kontant desk +DemoCompanyShopWithCashDesk=Administrer en butik med en pengekasse DemoCompanyProductAndStocks=Shop med at sælge produkter med Point Of Sales DemoCompanyManufacturing=Virksomhed fremstiller produkter DemoCompanyAll=Virksomhed med flere aktiviteter (alle hovedmoduler) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Vælg et objekt for at se dets statistik ... 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 forbindelse +FTPArea=FTP 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 diff --git a/htdocs/langs/da_DK/partnership.lang b/htdocs/langs/da_DK/partnership.lang index 6e963b63f15..fef391aa094 100644 --- a/htdocs/langs/da_DK/partnership.lang +++ b/htdocs/langs/da_DK/partnership.lang @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks til kontrol PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Antal dage før annullering af status for et partnerskab, når et abonnement er udløbet ReferingWebsiteCheck=Kontrol af webstedets henvisning ReferingWebsiteCheckDesc=Du kan aktivere en funktion til at kontrollere, at dine partnere har tilføjet et backlink til dine webstedsdomæner på deres eget websted. +PublicFormRegistrationPartnerDesc=Dolibarr kan give dig en offentlig URL/webside, så eksterne besøgende kan anmode om at blive en del af partnerskabsprogrammet. # # Object @@ -59,6 +60,12 @@ BacklinkNotFoundOnPartnerWebsite=Backlink ikke fundet på partnerwebstedet ConfirmClosePartnershipAsk=Er du sikker på, at du vil annullere dette partnerskab? PartnershipType=Partnerskabstype PartnershipRefApproved=Partnerskab %s godkendt +KeywordToCheckInWebsite=Hvis du vil kontrollere, at et givet søgeord er til stede på hver partners hjemmeside, skal du definere dette søgeord her +PartnershipDraft=Udkast til +PartnershipAccepted=Accepteret +PartnershipRefused=Afvist +PartnershipCanceled=Aflyst +PartnershipManagedFor=Partnere er # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Antal fejl ved sidste URL -kontrol LastCheckBacklink=Dato for sidste URL -kontrol ReasonDeclineOrCancel=Afvis grund -# -# Status -# -PartnershipDraft=Udkast til -PartnershipAccepted=Accepteret -PartnershipRefused=Afvist -PartnershipCanceled=Aflyst -PartnershipManagedFor=Partnere er +NewPartnershipRequest=Ny partnerskabsanmodning +NewPartnershipRequestDesc=Denne formular giver dig mulighed for at anmode om at blive en del af et af vores partnerskabsprogram. Hvis du har brug for hjælp til at udfylde denne formular, bedes du kontakte via e-mail %s . + 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/products.lang b/htdocs/langs/da_DK/products.lang index 589ca8130b0..1d37e383ac5 100644 --- a/htdocs/langs/da_DK/products.lang +++ b/htdocs/langs/da_DK/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Er du sikker på du vil slette denne varelinje? ProductSpecial=Særlig QtyMin=Min. købsmængde PriceQtyMin=Prismængde min. -PriceQtyMinCurrency=Pris (valuta) for denne mængde. (ingen rabat) +PriceQtyMinCurrency=Pris (valuta) for dette antal. +WithoutDiscount=Uden rabat VATRateForSupplierProduct=Momssats (for denne leverandør / produkt) DiscountQtyMin=Rabat for denne mængde. NoPriceDefinedForThisSupplier=Ingen pris / antal defineret for denne leverandør / produkt @@ -170,7 +171,7 @@ BuyingPrices=Købspriser CustomerPrices=Kundepriser SuppliersPrices=Leverandørpriser SuppliersPricesOfProductsOrServices=Sælgerpriser (af produkter eller tjenester) -CustomCode=Told | Råvare | VITA-kode +CustomCode=Told | VITA-kode CountryOrigin=Oprindelsesland RegionStateOrigin=Oprindelsesregion StateOrigin=Stat | Oprindelsesprovins @@ -261,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 @@ -346,7 +347,7 @@ UseProductFournDesc=Tilføj en funktion for at definere produktbeskrivelsen defi 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) PackagingForThisProduct=Emballage -PackagingForThisProductDesc=Ved leverandørbestilling bestiller du automatisk denne mængde (eller et multiplum af denne mængde). Må ikke være mindre end det mindste købsmængde +PackagingForThisProductDesc=Du vil automatisk købe et antal af denne mængde. QtyRecalculatedWithPackaging=Mængden af linjen blev beregnet om efter leverandøremballage #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Marker dette, hvis du ønsker en besked til brugeren ved oprette DefaultBOM=Standard BOM DefaultBOMDesc=Standardstyklisten anbefales at bruge til fremstilling af dette produkt. Dette felt kan kun angives, hvis produktets art er '%s'. Rank=Rang +MergeOriginProduct=Dubleret produkt (produkt du vil slette) +MergeProducts=Flet produkter +ConfirmMergeProducts=Er du sikker på, at du vil flette det valgte produkt med det nuværende? Alle tilknyttede objekter (fakturaer, ordrer, ...) flyttes til det aktuelle produkt, hvorefter det valgte produkt slettes. +ProductsMergeSuccess=Produkter er blevet slået sammen +ErrorsProductsMerge=Fejl i produkter flettes sammen SwitchOnSaleStatus=Slå salgsstatus til SwitchOnPurchaseStatus=Slå købsstatus til StockMouvementExtraFields= Ekstra felter (aktiebevægelse) +InventoryExtraFields= Ekstra felter (beholdning) +ScanOrTypeOrCopyPasteYourBarCodes=Scan eller skriv eller kopier/indsæt dine stregkoder +PuttingPricesUpToDate=Opdater priser med aktuelle kendte priser +PMPExpected=Forventet PMP +ExpectedValuation=Forventet værdiansættelse +PMPReal=Ægte PMP +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 diff --git a/htdocs/langs/da_DK/projects.lang b/htdocs/langs/da_DK/projects.lang index 83ac7d0edef..d4e4a57caa3 100644 --- a/htdocs/langs/da_DK/projects.lang +++ b/htdocs/langs/da_DK/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Projektetiket ProjectsArea=Projekter Område ProjectStatus=Projektstatus SharedProject=Fælles projekt -PrivateProject=Projekt kontakter +PrivateProject=Tildelte kontakter ProjectsImContactFor=Projekter, som jeg udtrykkeligt er kontaktperson for AllAllowedProjects=Alt projekt jeg kan læse (mine + offentlige) AllProjects=Alle projekter @@ -33,8 +33,8 @@ ConfirmDeleteAProject=Er du sikker på, at du vil slette dette projekt? ConfirmDeleteATask=Er du sikker på, at du vil slette denne opgave? OpenedProjects=Åbne projekter OpenedTasks=Åbn opgaver -OpportunitiesStatusForOpenedProjects=Leder mængden af ​​åbne projekter efter status -OpportunitiesStatusForProjects=Leder mængden af ​​projekter efter status +OpportunitiesStatusForOpenedProjects=Mængde af muligheder for åbne projekter efter status +OpportunitiesStatusForProjects=Mængde af muligheder for projekter efter status ShowProject=Vis projekt ShowTask=Vis opgave SetProject=Indstil projekt @@ -159,16 +159,16 @@ ProjectModifiedInDolibarr=Projekt %s ændret TaskCreatedInDolibarr=Opgave %s oprettet TaskModifiedInDolibarr=Opgave %s ændret TaskDeletedInDolibarr=Opgave %s slettet -OpportunityStatus=Lederstatus -OpportunityStatusShort=Lead status -OpportunityProbability=Ledsandsynlighed -OpportunityProbabilityShort=Lead probab. -OpportunityAmount=Leder beløb -OpportunityAmountShort=Leder beløb +OpportunityStatus=Mulighed status +OpportunityStatusShort=Mulighed status +OpportunityProbability=Mulighed sandsynlighed +OpportunityProbabilityShort=Sandsynlighed +OpportunityAmount=Mulighedsbeløb +OpportunityAmountShort=Mulighed beløb OpportunityWeightedAmount=Vægtet mængde af mulighed OpportunityWeightedAmountShort=Vægtet mængde af mulighed -OpportunityAmountAverageShort=Gennemsnitligt leads antal -OpportunityAmountWeigthedShort=Vægtet leads mængde +OpportunityAmountAverageShort=Gennemsnitligt muligheds beløb +OpportunityAmountWeigthedShort=Beregnet muligheds beløb WonLostExcluded=Vundet / tabt udelukket ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Projektleder @@ -190,6 +190,7 @@ PlannedWorkload=Planlagt arbejdsbyrde PlannedWorkloadShort=arbejdsbyrde ProjectReferers=Relaterede emner ProjectMustBeValidatedFirst=Projektet skal bekræftes først +MustBeValidatedToBeSigned=%s skal valideres først for at blive sat til Signeret. FirstAddRessourceToAllocateTime=Tildel en brugerressource som kontakt til projektet for at tildele tid InputPerDay=Indgang pr. Dag InputPerWeek=Indgang pr. Uge @@ -213,29 +214,29 @@ ManageTasks=Brug projekter til at følge opgaver og / eller rapportere tidsforbr ManageOpportunitiesStatus=Brug projekter til at følge potentielle kunder / nye salgsmuligheder ProjectNbProjectByMonth=Antal oprettet projekter pr. Måned ProjectNbTaskByMonth=Antal oprettet opgaver efter måned -ProjectOppAmountOfProjectsByMonth=Mængden af ​​kundeemner pr. Måned -ProjectWeightedOppAmountOfProjectsByMonth=Vægtet antal kundeemner pr. Måned +ProjectOppAmountOfProjectsByMonth=Beløb for ​​muligheder pr. måned +ProjectWeightedOppAmountOfProjectsByMonth=Beregnet mulighedsbeløb pr. måned ProjectOpenedProjectByOppStatus=Åbn projekt | ført efter leadstatus -ProjectsStatistics=Statistik over projekter eller kundeemner -TasksStatistics=Statistik over opgaver for projekter eller leads +ProjectsStatistics=Statistik over projekter eller muligheder +TasksStatistics=Statistik over opgaver for projekter eller muligheder TaskAssignedToEnterTime=Opgave tildelt. Indtastning af tid på denne opgave skal være muligt. IdTaskTime=Id opgave tid YouCanCompleteRef=Hvis du ønsker at afslutte ref med et eller flere suffiks, anbefales det at tilføje et - tegn for at adskille det, så den automatiske nummerering stadig fungerer korrekt til næste projekter. For eksempel %s-MYSUFFIX OpenedProjectsByThirdparties=Åbne projekter af tredjeparter -OnlyOpportunitiesShort=Kun fører -OpenedOpportunitiesShort=Åbne kundeemner -NotOpenedOpportunitiesShort=Ikke en åben lead -NotAnOpportunityShort=Ikke en ledelse -OpportunityTotalAmount=Samlet antal ledere -OpportunityPonderatedAmount=Vægtet antal ledninger -OpportunityPonderatedAmountDesc=Potentielle kunder beløbet vægtet med sandsynlighed -OppStatusPROSP=prospektering +OnlyOpportunitiesShort=Kun muligheder +OpenedOpportunitiesShort=Åbne muligheder +NotOpenedOpportunitiesShort=Ikke en åben mulighed +NotAnOpportunityShort=Ikke en mulighed +OpportunityTotalAmount=Samlet beløb for muligheder +OpportunityPonderatedAmount=Beregnet beløb for muligheder +OpportunityPonderatedAmountDesc=Mulighedsbeløb vægtet med sandsynlighed +OppStatusPROSP=Undersøger OppStatusQUAL=Kvalifikation OppStatusPROPO=Tilbud -OppStatusNEGO=negociation -OppStatusPENDING=Verserende -OppStatusWON=Vandt -OppStatusLOST=Faret vild +OppStatusNEGO=Forhandling +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)
      LatestProjects=Seneste %s projekter @@ -287,3 +288,9 @@ 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 . ProjectsHavingThisContact=Projekter med denne kontakt StartDateCannotBeAfterEndDate=End date cannot be before start date +ErrorPROJECTLEADERRoleMissingRestoreIt=Rollen "PROJEKT LEDER" mangler eller er blevet deaktiveret. Gendan venligst i ordbogen over kontakttyper +LeadPublicFormDesc=Du kan aktivere en offentlig side her for at give dine kundeemner mulighed for at tage en første kontakt til dig fra en offentlig onlineformular +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 diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang index 15b02ba6f59..a9acc20ba3f 100644 --- a/htdocs/langs/da_DK/propal.lang +++ b/htdocs/langs/da_DK/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Ingen skabeloner CopyPropalFrom=Opret tilbud ved at kopiere eksisterende tilbud CreateEmptyPropal=Opret tomt kommercielt forslag eller fra listen over produkter / tjenester DefaultProposalDurationValidity=Standard gyldighedstid for tilbud (i dage) +DefaultPuttingPricesUpToDate=Opdater som standard priser med aktuelle kendte priser ved kloning af et forslag UseCustomerContactAsPropalRecipientIfExist=Brug kontakt/adresse med type 'Kontakt opfølgnings forslag', hvis det er defineret i stedet for tredjepartsadresse som forslag modtageradresse ConfirmClonePropal=Er du sikker på, du vil klone tilbuddet %s? ConfirmReOpenProp=Er du sikker på, at du vil åbne det tilbud igen %s ? @@ -85,13 +86,26 @@ 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 +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 IdProduct=Produkt-id -PrParentLine=Forslagsforældrelinje LineBuyPriceHT=Købspris Beløb fratrukket skat for linje SignPropal=Accepter forslaget RefusePropal=Afvis tilbud Sign=Underskrift +NoSign=Sæt ikke underskrevet PropalAlreadySigned=Forslaget er allerede godkendt PropalAlreadyRefused=Tilbud blev allerede afvist PropalSigned=Forslaget accepteret diff --git a/htdocs/langs/da_DK/receiptprinter.lang b/htdocs/langs/da_DK/receiptprinter.lang index 58004198bc4..f3d23fa15d4 100644 --- a/htdocs/langs/da_DK/receiptprinter.lang +++ b/htdocs/langs/da_DK/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Test sendt til printer %s ReceiptPrinter=Kvitterings printere ReceiptPrinterDesc=Opsætning af kvitterings printere ReceiptPrinterTemplateDesc=Opsætning af skabeloner -ReceiptPrinterTypeDesc=Beskrivelse af kvitterings printerens type +ReceiptPrinterTypeDesc=Eksempel på mulige værdier for feltet "Parameters" i henhold til drivertypen ReceiptPrinterProfileDesc=Beskrivelse af kvitterings printerens profil ListPrinters=Liste over printere SetupReceiptTemplate=Skabelon opsætning @@ -54,7 +54,9 @@ DOL_DOUBLE_WIDTH=Dobbelt bredde størrelse DOL_DEFAULT_HEIGHT_WIDTH=Standard højde og bredde størrelse DOL_UNDERLINE=Aktiver understregning DOL_UNDERLINE_DISABLED=Deaktiver understregning -DOL_BEEP=Bip lyd +DOL_BEEP=Biplyd +DOL_BEEP_ALTERNATIVE=Biplyd (alternativ tilstand) +DOL_PRINT_CURR_DATE=Udskriv aktuel dato/tid DOL_PRINT_TEXT=Udskriv tekst DateInvoiceWithTime=Faktura dato og tid YearInvoice=Faktura år diff --git a/htdocs/langs/da_DK/recruitment.lang b/htdocs/langs/da_DK/recruitment.lang index 39a926ef2f0..ffcdd40040f 100644 --- a/htdocs/langs/da_DK/recruitment.lang +++ b/htdocs/langs/da_DK/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=Jobpositionen er lukket. ExtrafieldsJobPosition=Supplerende attributter (jobstillinger) ExtrafieldsApplication=Supplerende attributter (jobansøgninger) MakeOffer=Giv et tilbud +WeAreRecruiting=Vi rekrutterer. Dette er en liste over ledige stillinger, der skal besættes... +NoPositionOpen=Ingen ledige stillinger i øjeblikket diff --git a/htdocs/langs/da_DK/sms.lang b/htdocs/langs/da_DK/sms.lang index 8f4ece2f70d..d6af28933f3 100644 --- a/htdocs/langs/da_DK/sms.lang +++ b/htdocs/langs/da_DK/sms.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - sms Sms=Sms SmsSetup=SMS opsætning -SmsDesc=Denne side giver dig mulighed for at definere globale muligheder for sms-funktioner -SmsCard=SMS Card -AllSms=Alle SMS-kampagner +SmsDesc=Denne side giver dig mulighed for at definere globale muligheder for SMS-funktioner +SmsCard=SMS kort +AllSms=Alle sms-kampagner SmsTargets=Mål SmsRecipients=Mål SmsRecipient=Mål diff --git a/htdocs/langs/da_DK/stocks.lang b/htdocs/langs/da_DK/stocks.lang index b3ef7bc27f8..1367640112b 100644 --- a/htdocs/langs/da_DK/stocks.lang +++ b/htdocs/langs/da_DK/stocks.lang @@ -176,7 +176,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 @@ -254,7 +254,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 +265,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 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 af9b040d301..1c43340d3d0 100644 --- a/htdocs/langs/da_DK/ticket.lang +++ b/htdocs/langs/da_DK/ticket.lang @@ -18,25 +18,25 @@ # Generic # -Module56000Name=Opgaver -Module56000Desc=Opgave system til udstedelse eller forespørgsels styring +Module56000Name=Sager +Module56000Desc=Sagssystem til udstedelse eller forespørgsels styring -Permission56001=Se opgaver -Permission56002=Ændre opgaver -Permission56003=Slet opgave -Permission56004=Administrer opgaver -Permission56005=Se opgaver fra alle tredjepart (ikke effektiv for eksterne brugere, vær altid begrænset til den tredjepart, de er afhængige af) +Permission56001=Se sager +Permission56002=Ændre sager +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) -TicketDictType=Opgaver - Typer -TicketDictCategory=Opgave - Grupper -TicketDictSeverity=Opgave - Sværhedsgrader -TicketDictResolution=Opgave - Afsluttet +TicketDictType=Sag - Typer +TicketDictCategory=Sag - Grupper +TicketDictSeverity=Sag - Alvorlighed +TicketDictResolution=Sag - Afsluttet TicketTypeShortCOM=Kommercielt spørgsmål TicketTypeShortHELP=Anmodning om hjælp TicketTypeShortISSUE=Problem eller fejl TicketTypeShortPROBLEM=Problem -TicketTypeShortREQUEST=Skift eller anmodning om forbedring +TicketTypeShortREQUEST=Ændring eller anmodning om forbedring TicketTypeShortPROJET=Projekt TicketTypeShortOTHER=Andre @@ -48,26 +48,26 @@ TicketSeverityShortBLOCKING=Kritisk, blokering TicketCategoryShortOTHER=Andre ErrorBadEmailAddress=Felt '%s' forkert -MenuTicketMyAssign=Mine opgaver -MenuTicketMyAssignNonClosed=Mine åbne opgaver -MenuListNonClosed=Åbene opgaver +MenuTicketMyAssign=Mine sager +MenuTicketMyAssignNonClosed=Mine åbne sager +MenuListNonClosed=Åbene sager TypeContact_ticket_internal_CONTRIBUTOR=Bidragyder TypeContact_ticket_internal_SUPPORTTEC=Tildelt bruger TypeContact_ticket_external_SUPPORTCLI=Kundekontakt / hændelsesporing TypeContact_ticket_external_CONTRIBUTOR=Ekstern bidragyder -OriginEmail=Reporter-e-mail -Notify_TICKET_SENTBYMAIL=Send opgaver besked via Email +OriginEmail=Sagsopretter e-mail +Notify_TICKET_SENTBYMAIL=Send sagsbesked via e-mail # Status Read=Læs Assigned=Tildelt InProgress=I gang -NeedMoreInformation=Venter på reporterfeedback -NeedMoreInformationShort=Venter på feedback +NeedMoreInformation=Afventer tilbagemelding fra sagsopretter +NeedMoreInformationShort=Afventer tilbagemelding Answered=Besvaret -Waiting=Venter +Waiting=Afventer SolvedClosed=Løst Deleted=Slettet @@ -75,45 +75,47 @@ Deleted=Slettet Type=Type Severity=Alvorlighed TicketGroupIsPublic=Gruppen er offentlig -TicketGroupIsPublicDesc=Hvis en billetgruppe er offentlig, vil den være synlig i formen, når du opretter en billet fra den offentlige grænseflade +TicketGroupIsPublicDesc=Hvis en sagsgruppe er offentlig, vil den være synlig, når du opretter en sag fra den offentlige grænseflade # Email templates -MailToSendTicketMessage=At sende Email fra opgave besked +MailToSendTicketMessage=At sende e-mail fra sagsbesked # # Admin page # -TicketSetup=Opsætning af opgavemodul +TicketSetup=Opsætning af sagsmodul TicketSettings=Indstillinger TicketSetupPage= TicketPublicAccess=En offentlig grænseflade, der kræver ingen identifikation, er tilgængelig på følgende url -TicketSetupDictionaries=Typen af opgave, sværhedsgrad og analytiske koder kan konfigureres fra ordbøger +TicketSetupDictionaries=Typen af sag, alvorlighed og analytiske koder kan konfigureres fra ordbøger TicketParamModule=Indstilling af modulvariabler -TicketParamMail=Email opsætning -TicketEmailNotificationFrom=Meddelelses Email fra -TicketEmailNotificationFromHelp=Bruges i opgave besked svar med et eksempel -TicketEmailNotificationTo=Meddelelser Email til -TicketEmailNotificationToHelp=Send Email meddelelser til denne adresse. -TicketNewEmailBodyLabel=Tekstbesked sendt efter oprettelse af en opgave -TicketNewEmailBodyHelp=Teksten, der er angivet her, indsættes i e-mailen, der bekræfter oprettelsen af ​​en ny opgave fra den offentlige grænseflade. Oplysninger til opgaven tilføjes automatisk. +TicketParamMail=E-mail opsætning +TicketEmailNotificationFrom=Afsender e-mail for besked om svar +TicketEmailNotificationFromHelp=Afsender-e-mail, der skal bruges til at sende meddelelses-e-mailen, når der gives et svar inde 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 +TicketNewEmailBodyHelp=Teksten, der er angivet her, indsættes i e-mailen, der bekræfter oprettelsen af ​​en ny sag fra den offentlige grænseflade. Oplysninger til sagen tilføjes automatisk. TicketParamPublicInterface=Opsætning af offentlig grænseflade -TicketsEmailMustExist=Kræv en eksisterende Email adresse for at oprette en opgave -TicketsEmailMustExistHelp=I den offentlige grænseflade skal Email adressen allerede udfyldes i databasen for at oprette en ny opgave. +TicketsEmailMustExist=Kræv en eksisterende e-mail adresse for at oprette en sag +TicketsEmailMustExistHelp=I den offentlige grænseflade skal e-mail adressen allerede udfyldes i databasen for at oprette en ny sag. +TicketCreateThirdPartyWithContactIfNotExist=Spørg navn og firmanavn for ukendte e-mails. +TicketCreateThirdPartyWithContactIfNotExistHelp=Tjek, om der findes en tredjepart eller en kontaktperson for den indtastede e-mail. Hvis ikke, spørg om et navn og et firmanavn for at oprette en tredjepart med kontakt. PublicInterface=Offentlig grænseflade TicketUrlPublicInterfaceLabelAdmin=Alternativ URL til offentlig interface TicketUrlPublicInterfaceHelpAdmin=Det er muligt at definere et alias til webserveren og dermed stille den offentlige grænseflade til rådighed med en anden URL (serveren skal fungere som en proxy på denne nye URL) -TicketPublicInterfaceTextHomeLabelAdmin=Velkommen tekst til den offentlige grænseflade -TicketPublicInterfaceTextHome=Du kan oprette en support opgave eller se eksisterende fra sin identifikations opgave spor. +TicketPublicInterfaceTextHomeLabelAdmin=Velkomsttekst til den offentlige grænseflade +TicketPublicInterfaceTextHome=Du kan oprette en sag eller se eksisterende sager fra identifikationsnummeret for sagen. TicketPublicInterfaceTextHomeHelpAdmin=Teksten, der er defineret her, vises på hjemmesiden for den offentlige grænseflade. TicketPublicInterfaceTopicLabelAdmin=Interface titel TicketPublicInterfaceTopicHelp=Denne tekst vises som titlen på den offentlige grænseflade. -TicketPublicInterfaceTextHelpMessageLabelAdmin=Hjælp tekst til meddelelsesindgangen +TicketPublicInterfaceTextHelpMessageLabelAdmin=Hjælpe tekst til sagstekst TicketPublicInterfaceTextHelpMessageHelpAdmin=Denne tekst vises over brugerens meddelelses indtastningsområde. ExtraFieldsTicket=Ekstra attributter TicketCkEditorEmailNotActivated=HTML editor er ikke aktiveret. Indsæt venligst FCKEDITOR_ENABLE_MAIL indhold til 1 for at få det. TicketsDisableEmail=Send ikke e-mails til oprettelse af opgave eller beskedoptagelse TicketsDisableEmailHelp=Som standard sendes e-mails, når der oprettes nye opgave eller meddelelser. Aktivér denne mulighed for at deaktivere *alle* e-mail meddelelser -TicketsLogEnableEmail=Aktivér log via Email +TicketsLogEnableEmail=Aktivér log via e-mail TicketsLogEnableEmailHelp=Ved hver ændring sendes en mail ** til hver kontaktperson **, der er knyttet til opgaven. TicketParams=Parametre TicketsShowModuleLogo=Vis modulets logo i den offentlige grænseflade @@ -125,105 +127,119 @@ TicketsEmailAlsoSendToMainAddressHelp=Aktivér denne mulighed for også at sende TicketsLimitViewAssignedOnly=Begræns skærmen til opgaver, der er tildelt den aktuelle bruger (ikke effektiv for eksterne brugere, skal du altid begrænse til den tredjepart, de er afhængige af) TicketsLimitViewAssignedOnlyHelp=Kun opgaver tildelt den aktuelle bruger vil være synlige. Gælder ikke for en bruger med billetforvaltningsrettigheder. TicketsActivatePublicInterface=Aktivér den offentlige grænseflade -TicketsActivatePublicInterfaceHelp=Offentlig grænseflade tillader alle besøgende at lave opgaver. -TicketsAutoAssignTicket=Tildel automatisk brugeren, der oprettede opgaven -TicketsAutoAssignTicketHelp=Når du opretter en opgave, kan brugeren automatisk tildeles opgaven. -TicketNumberingModules=Opgave nummerering modul -TicketsModelModule=Dokumentskabeloner til billetter +TicketsActivatePublicInterfaceHelp=Offentlig grænseflade tillader alle besøgende at lave sager. +TicketsAutoAssignTicket=Tildel automatisk brugeren, der oprettede sagen +TicketsAutoAssignTicketHelp=Når du opretter en opgave, kan brugeren automatisk tildeles sagen. +TicketNumberingModules=Sag nummererings modul +TicketsModelModule=Dokumentskabeloner til sager TicketNotifyTiersAtCreation=Underret tredjepart ved oprettelsen -TicketsDisableCustomerEmail=Deaktiver altid Emails, når en opgave oprettes fra den offentlige grænseflade -TicketsPublicNotificationNewMessage=Send e-mail (r), når en ny besked / kommentar føjes til en billet -TicketsPublicNotificationNewMessageHelp=Send e-mail (s), når en ny meddelelse tilføjes fra den offentlige grænseflade (til den tildelte bruger eller meddelelses-e-mailen til (opdatering) og / eller meddelelses-e-mailen til) +TicketsDisableCustomerEmail=Deaktiver altid e-mails, når en sag oprettes fra den offentlige grænseflade +TicketsPublicNotificationNewMessage=Send e-mail (r), når en ny besked/kommentar føjes til en sag +TicketsPublicNotificationNewMessageHelp=Send e-mail(s), når en ny meddelelse tilføjes fra den offentlige grænseflade (til den tildelte bruger eller meddelelses-e-mailen til (opdatering) og/eller meddelelses-e-mailen til) TicketPublicNotificationNewMessageDefaultEmail=Underretnings-e-mail til (opdatering) TicketPublicNotificationNewMessageDefaultEmailHelp=Send en e-mail til denne adresse for hver meddelelse om nye meddelelser, hvis billetten ikke har en bruger tildelt den, eller hvis brugeren ikke har nogen kendt e-mail. +TicketsAutoReadTicket=Markér automatisk opgaven som læst (når den er oprettet fra backoffice) +TicketsAutoReadTicketHelp=Markér automatisk billetten som læst, når den er oprettet fra backoffice. Når billet er oprettet fra den offentlige grænseflade, forbliver billet med status "Ikke læst". +TicketsDelayBeforeFirstAnswer=En ny billet skal modtage et første svar inden (timer): +TicketsDelayBeforeFirstAnswerHelp=Hvis en ny billet ikke har modtaget svar efter dette tidsrum (i timer), vil et vigtigt advarselsikon blive vist i listevisningen. +TicketsDelayBetweenAnswers=En uafklaret billet bør ikke være inaktiv i (timer): +TicketsDelayBetweenAnswersHelp=Hvis en uafklaret billet, der allerede har modtaget et svar, ikke har haft yderligere interaktion efter dette tidsrum (i timer), vil et advarselsikon blive vist i listevisningen. +TicketsAutoNotifyClose=Giv automatisk tredjepart besked, når du lukker en billet +TicketsAutoNotifyCloseHelp=Når du lukker en billet, vil du blive foreslået at sende en besked til en af tredjeparts kontakter. Ved masselukning vil der blive sendt en besked til en kontakt fra den tredjepart, der er knyttet til billetten. +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. + # # Index & list page # -TicketsIndex=Billet område -TicketList=Liste over opgaver -TicketAssignedToMeInfos=Denne side viser en opgaveliste oprettet af eller tildelt den aktuelle bruger -NoTicketsFound=Ingen opgaver fundet -NoUnreadTicketsFound=Der blev ikke fundet nogen ulæst opgaver -TicketViewAllTickets=Se alle opgaver -TicketViewNonClosedOnly=Se kun åbne opgaver -TicketStatByStatus=Opgaver efter status +TicketsIndex=Sagsområde +TicketList=Liste over sager +TicketAssignedToMeInfos=Denne side viser en liste over sager oprettet af eller tildelt den aktuelle bruger +NoTicketsFound=Ingen sager fundet +NoUnreadTicketsFound=Der blev ikke fundet nogen ulæste sager +TicketViewAllTickets=Se alle sager +TicketViewNonClosedOnly=Se kun åbne sager +TicketStatByStatus=Sager efter status OrderByDateAsc=Sorter efter stigende dato OrderByDateDesc=Sorter efter faldende dato ShowAsConversation=Vis som samtaleliste MessageListViewType=Vis som tabelliste +ConfirmMassTicketClosingSendEmail=Send automatisk e-mails, når du lukker billetter +ConfirmMassTicketClosingSendEmailQuestion=Vil du underrette tredjeparter, når du lukker disse billetter? # # Ticket card # -Ticket=Opgave -TicketCard=Opgavekort -CreateTicket=Opret opgave -EditTicket=Rediger opgave -TicketsManagement=Opgaver Management +Ticket=Sag +TicketCard=Sagskort +CreateTicket=Opret sag +EditTicket=Rediger sag +TicketsManagement=Sagshåndtering CreatedBy=Lavet af -NewTicket=Ny opgave -SubjectAnswerToTicket=Opgave svar +NewTicket=Ny sag +SubjectAnswerToTicket=Sags svar TicketTypeRequest=Anmodningstype -TicketCategory=Billetkategorisering -SeeTicket=Se opgave -TicketMarkedAsRead=Opgaven er blevet markeret som læst +TicketCategory=Sagskategorisering +SeeTicket=Se sag +TicketMarkedAsRead=Sagen er blevet markeret som læst TicketReadOn=Læs videre -TicketCloseOn=lukke dato -MarkAsRead=Markér opgaven som læst -TicketHistory=Opgave historik +TicketCloseOn=Dato lukket +MarkAsRead=Markér sagen som læst +TicketHistory=Sags historik AssignUser=Tildel til bruger -TicketAssigned=Opgaven er nu tildelt +TicketAssigned=Sagen er nu tildelt TicketChangeType=Skift type TicketChangeCategory=Skift analytisk kode -TicketChangeSeverity=Ændre sværhedsgrad +TicketChangeSeverity=Ændre alvorligheden TicketAddMessage=Tilføj en besked AddMessage=Tilføj en besked -MessageSuccessfullyAdded=Opgave tilføjet -TicketMessageSuccessfullyAdded=Meddelelse med succes tilføjet +MessageSuccessfullyAdded=Sag tilføjet +TicketMessageSuccessfullyAdded=Meddelelse med tilføjet TicketMessagesList=Meddelelsesliste -NoMsgForThisTicket=Ingen besked til denne opgave +NoMsgForThisTicket=Ingen besked til denne sag TicketProperties=Klassifikation -LatestNewTickets=Seneste %s nyeste opgaver (ikke læses) +LatestNewTickets=Seneste %s nyeste sager (ikke læses) TicketSeverity=Alvorlighed -ShowTicket=Se opgave -RelatedTickets=Relaterede opgaver +ShowTicket=Se sag +RelatedTickets=Relaterede sager TicketAddIntervention=Opret indgreb -CloseTicket=Luk | Løs billet -AbandonTicket=Forlad billet -CloseATicket=Luk | Løs en billet -ConfirmCloseAticket=Bekræft afslutningen af opgaven -ConfirmAbandonTicket=Bekræfter du lukningen af billetten til status 'Forladt' -ConfirmDeleteTicket=Venligst bekræft sletning af opgaven -TicketDeletedSuccess=Opgave slettet med succes -TicketMarkedAsClosed=Opgaven mærket som lukket +CloseTicket=Luk | Løs sag +AbandonTicket=Efterlad sag +CloseATicket=Luk | Løs en sag +ConfirmCloseAticket=Bekræft afslutningen af sagen +ConfirmAbandonTicket=Bekræfter du lukningen af sagen med status 'Efterladt' +ConfirmDeleteTicket=Venligst bekræft sletning af sagen +TicketDeletedSuccess=Sagen slettet med succes +TicketMarkedAsClosed=Sagen mærket som lukket TicketDurationAuto=Beregnet varighed TicketDurationAutoInfos=Varighed beregnes automatisk fra handlings modulet -TicketUpdated=Opgave opdateret -SendMessageByEmail=Send besked via email +TicketUpdated=Sagen opdateret +SendMessageByEmail=Send besked via e-mail TicketNewMessage=Ny besked -ErrorMailRecipientIsEmptyForSendTicketMessage=Modtageren er tom. Ingen email send +ErrorMailRecipientIsEmptyForSendTicketMessage=Modtageren er tom. Ingen e-mail sendt TicketGoIntoContactTab=Gå til fanen "Kontakter" for at vælge dem TicketMessageMailIntro=Introduktion TicketMessageMailIntroHelp=Denne tekst tilføjes kun i begyndelsen af ​​e-mailen og bliver ikke gemt. -TicketMessageMailIntroLabelAdmin=Introduktion til meddelelsen, når du sender e-mail -TicketMessageMailIntroText=Hej,
    Et nyt svar blev sendt på en billet, som du kontakter. Her er meddelelsen:
    -TicketMessageMailIntroHelpAdmin=Denne tekst indsættes før teksten til svaret på en opgave. +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=

    Med venlig hilsen

    --

    +TicketMessageMailSignatureText=Besked sendt af %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Signatur af svar Email TicketMessageMailSignatureHelpAdmin=Denne tekst indsættes efter svarmeddelelsen. -TicketMessageHelp=Kun denne tekst gemmes i meddelelseslisten på billetkort. +TicketMessageHelp=Kun denne tekst gemmes i meddelelseslisten på sagskortet. TicketMessageSubstitutionReplacedByGenericValues=Substitutionsvariabler erstattes af generiske værdier. TimeElapsedSince=Tid forløbet siden TicketTimeToRead=Tid forløbet før læst TicketTimeElapsedBeforeSince=Forløbet tid før / siden -TicketContacts=Kontakter billet -TicketDocumentsLinked=Dokumenter knyttet til opgaven -ConfirmReOpenTicket=Bekræft genåbne denne opgave? -TicketMessageMailIntroAutoNewPublicMessage=En ny besked blev sendt på opgaven med emnet %s: -TicketAssignedToYou=Opgave tildelt -TicketAssignedEmailBody=Du er blevet tildelt opgave # %s ved %s +TicketContacts=Kontakter for sag +TicketDocumentsLinked=Dokumenter knyttet til sagen +ConfirmReOpenTicket=Bekræft genåbning af denne sag? +TicketMessageMailIntroAutoNewPublicMessage=En ny besked blev sendt på sagen med emnet %s: +TicketAssignedToYou=Sag tildelt +TicketAssignedEmailBody=Du er blevet tildelt sag# %s ved %s MarkMessageAsPrivate=Markér besked som privat TicketMessagePrivateHelp=Denne meddelelse vises ikke til eksterne brugere TicketEmailOriginIssuer=Udsteder ved oprindelsen af opgaven @@ -231,94 +247,106 @@ InitialMessage=Indledende besked LinkToAContract=Link til en kontrakt TicketPleaseSelectAContract=Vælg en kontrakt UnableToCreateInterIfNoSocid=Kan ikke oprette en intervention, når der ikke er defineret nogen tredjepart -TicketMailExchanges=Email udveksling +TicketMailExchanges=E-mail udveksling TicketInitialMessageModified=Indledende besked ændret TicketMessageSuccesfullyUpdated=Meddelelsen er opdateret TicketChangeStatus=Skift status TicketConfirmChangeStatus=Bekræft statusændringen: %s? TicketLogStatusChanged=Status ændret: %s til %s TicketNotNotifyTiersAtCreate=Ikke underret firma på create +NotifyThirdpartyOnTicketClosing=Kontakter, der skal underrettes, mens du lukker billetten +TicketNotifyAllTiersAtClose=Alle relaterede kontakter +TicketNotNotifyTiersAtClose=Ingen relateret kontakt Unread=Ulæst -TicketNotCreatedFromPublicInterface=Ikke tilgængelig. Opgaven blev ikke oprettet fra den offentlige grænseflade. -ErrorTicketRefRequired=Opgave reference navn er påkrævet +TicketNotCreatedFromPublicInterface=Ikke tilgængelig. Sagen blev ikke oprettet fra den offentlige grænseflade. +ErrorTicketRefRequired=Sagsreference navn er påkrævet +TicketsDelayForFirstResponseTooLong=Der er gået for lang tid siden billetåbningen uden noget svar. +TicketsDelayFromLastResponseTooLong=Der er gået for lang tid siden sidste svar på denne billet. +TicketNoContractFoundToLink=Der blev ikke fundet nogen kontrakt, der automatisk er knyttet til denne billet. Link venligst en kontrakt manuelt. +TicketManyContractsLinked=Mange kontrakter er automatisk blevet knyttet til denne billet. Sørg for at bekræfte, hvilken der skal vælges. # # Logs # -TicketLogMesgReadBy=Opgave %s læst af %s -NoLogForThisTicket=Ingen log på denne opgave endnu -TicketLogAssignedTo=Opgave %s tildelt %s -TicketLogPropertyChanged=Opgave %s ændret: klassificering fra %s til %s -TicketLogClosedBy=Opgave %s lukket af %s -TicketLogReopen=Opgave %s genåbnet +TicketLogMesgReadBy=Sag %s læst af %s +NoLogForThisTicket=Ingen log på denne sag endnu +TicketLogAssignedTo=Sag %s tildelt %s +TicketLogPropertyChanged=Sag %s ændret: klassificering fra %s til %s +TicketLogClosedBy=Sag %s lukket af %s +TicketLogReopen=Sag %s genåbnet # # Public pages # -TicketSystem=Opgavesystem -ShowListTicketWithTrackId=Vis opgave liste fra spor ID -ShowTicketWithTrackId=Vis opgave fra spor ID -TicketPublicDesc=Du kan oprette en support opgave eller tjekke fra et eksisterende ID. -YourTicketSuccessfullySaved=Opgave er blevet gemt! -MesgInfosPublicTicketCreatedWithTrackId=En ny opgave er oprettet med ID %s og Ref %s. -PleaseRememberThisId=Vær venlig at holde sporingsnummeret, som vi måske spørger dig senere. -TicketNewEmailSubject=Bekræftelse af oprettelse af opgave - Ref %s (offentlig opgave ID %s) -TicketNewEmailSubjectCustomer=Ny support opgave -TicketNewEmailBody=Dette er en automatisk email for at bekræfte, at du har registreret en ny opgave. -TicketNewEmailBodyCustomer=Dette er en automatisk email for at bekræfte en ny opgave er netop blevet oprettet til din konto. -TicketNewEmailBodyInfosTicket=Information til overvågning af opgaven -TicketNewEmailBodyInfosTrackId=Opgavesporingsnummer: %s -TicketNewEmailBodyInfosTrackUrl=Du kan se opgavens fremskridt ved at klikke på linket ovenfor. -TicketNewEmailBodyInfosTrackUrlCustomer=Du kan se fremskridt på opgaven i den specifikke grænseflade ved at klikke på nedenstående link +TicketSystem=Sagssystem +ShowListTicketWithTrackId=Vis sag liste fra spor ID +ShowTicketWithTrackId=Vis sag fra spor ID +TicketPublicDesc=Du kan oprette en support sag eller kontrollere fra et eksisterende ID. +YourTicketSuccessfullySaved=Sagen er blevet gemt! +MesgInfosPublicTicketCreatedWithTrackId=En ny sag er oprettet med ID %s og Ref %s. +PleaseRememberThisId=Vær venlig at gemme sporingsnummeret, som vi måske spørger dig senere. +TicketNewEmailSubject=Bekræftelse af oprettelse af sag - Ref %s (offentlig sag ID %s) +TicketNewEmailSubjectCustomer=Ny support sag +TicketNewEmailBody=Dette er en automatisk e-mail for at bekræfte, at du har registreret en ny sag. +TicketNewEmailBodyCustomer=Dette er en automatisk e-mail for at bekræfte en ny sag er netop blevet oprettet til din konto. +TicketNewEmailBodyInfosTicket=Information til overvågning af sagen +TicketNewEmailBodyInfosTrackId=Sagssporingsnummer: %s +TicketNewEmailBodyInfosTrackUrl=Du kan se status for billetten ved at klikke på følgende link +TicketNewEmailBodyInfosTrackUrlCustomer=Du kan se fremskridt på sagen i den specifikke grænseflade ved at klikke på nedenstående link +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 optage en support opgave i vores styringssystem. +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. -TicketPublicMsgViewLogIn=Indtast venligst opgave ID +TicketPublicMsgViewLogIn=Indtast venligst sag ID TicketTrackId=Offentlig sporings ID OneOfTicketTrackId=Et af dine sporings ID'er -ErrorTicketNotFound=Opgave med sporings ID %s ikke fundet! +ErrorTicketNotFound=Sag med sporings ID %s ikke fundet! Subject=Emne -ViewTicket=Se opgave -ViewMyTicketList=Se min opgave liste -ErrorEmailMustExistToCreateTicket=Fejl: Email adresse ikke fundet i vores database -TicketNewEmailSubjectAdmin=Ny opgave oprettet - Ref %s (offentlig opgave ID %s) -TicketNewEmailBodyAdmin=

    Opgaven er netop oprettet med ID # %s, se information:

    -SeeThisTicketIntomanagementInterface=Se opgave i ledelses grænseflade -TicketPublicInterfaceForbidden=Den offentlige grænseflade for opgaver var ikke aktiveret -ErrorEmailOrTrackingInvalid=Dårlig værdi for sporing af ID eller Email +ViewTicket=Se sag +ViewMyTicketList=Se min sagsliste +ErrorEmailMustExistToCreateTicket=Fejl: E-mail adresse ikke fundet i vores database +TicketNewEmailSubjectAdmin=Ny sag oprettet - Ref %s (offentlig sag ID %s) +TicketNewEmailBodyAdmin=

    Sagen er netop oprettet med ID # %s, se information:

    +SeeThisTicketIntomanagementInterface=Se sag i styringsgrænseflade +TicketPublicInterfaceForbidden=Den offentlige grænseflade for sager var ikke aktiveret +ErrorEmailOrTrackingInvalid=Ugyldig værdi for sporing af ID eller e-mail OldUser=Gammel bruger NewUser=Ny bruger -NumberOfTicketsByMonth=Antal opgaver pr. Måned -NbOfTickets=Antal opgaver +NumberOfTicketsByMonth=Antal sager pr. måned +NbOfTickets=Antal sager # notifications -TicketNotificationEmailSubject=Opgave %s opdateret -TicketNotificationEmailBody=Dette er en automatisk besked, der giver dig besked om, at opgave %s er blevet opdateret +TicketCloseEmailSubjectCustomer=Billet lukket +TicketCloseEmailBodyCustomer=Dette er en automatisk besked for at informere dig om, at billet %s netop er blevet lukket. +TicketCloseEmailSubjectAdmin=Billet lukket - Réf %s (offentlig billet-id %s) +TicketCloseEmailBodyAdmin=En billet med ID #%s er netop blevet lukket, se information: +TicketNotificationEmailSubject=Sag %s opdateret +TicketNotificationEmailBody=Dette er en automatisk besked, der giver dig besked om, at sag %s er blevet opdateret TicketNotificationRecipient=Meddelelsesmodtager TicketNotificationLogMessage=Logbesked -TicketNotificationEmailBodyInfosTrackUrlinternal=Se opgave i grænseflade -TicketNotificationNumberEmailSent=Meddelelses Email sendt: %s +TicketNotificationEmailBodyInfosTrackUrlinternal=Se sag i grænseflade +TicketNotificationNumberEmailSent=Meddelelses e-mail sendt: %s -ActionsOnTicket=Begivenheder ved opgaven +ActionsOnTicket=Begivenheder for sagen # # Boxes # -BoxLastTicket=Nyligt oprettede opgaver -BoxLastTicketDescription=Seneste %s oprettet opgave +BoxLastTicket=Senest oprettede sager +BoxLastTicketDescription=Seneste %s oprettet sag BoxLastTicketContent= -BoxLastTicketNoRecordedTickets=Ingen nyere ulæste opgaver -BoxLastModifiedTicket=Seneste ændrede opgaver -BoxLastModifiedTicketDescription=Seneste %s ændrede opgaver +BoxLastTicketNoRecordedTickets=Ingen nyere ulæste sager +BoxLastModifiedTicket=Seneste ændrede sager +BoxLastModifiedTicketDescription=Seneste %s ændrede sager BoxLastModifiedTicketContent= -BoxLastModifiedTicketNoRecordedTickets=Ingen nyligt ændrede opgaver -BoxTicketType=Fordeling af åbne billetter efter type -BoxTicketSeverity=Antal åbne opgaver efter sværhedsgrad -BoxNoTicketSeverity=Ingen opgaver åbnet -BoxTicketLastXDays=Antal nye opgaver efter dage de sidste %s dage -BoxTicketLastXDayswidget = Antal nye opgaver efter dage de sidste X dage -BoxNoTicketLastXDays=Ingen nye opgaver de sidste %s dage -BoxNumberOfTicketByDay=Antal nye opgaver om dagen -BoxNewTicketVSClose=Antal billetter kontra lukkede billetter (i dag) -TicketCreatedToday=Opgave oprettet i dag -TicketClosedToday=Opgave lukket i dag -KMFoundForTicketGroup=Vi fandt emner og ofte stillede spørgsmål, der kan besvare dit spørgsmål, takket være at kontrollere dem, inden du indsender billetten +BoxLastModifiedTicketNoRecordedTickets=Ingen nyligt ændrede sager +BoxTicketType=Fordeling af åbne sager efter type +BoxTicketSeverity=Antal åbne sager efter alvorlighed +BoxNoTicketSeverity=Ingen sager åbnet +BoxTicketLastXDays=Antal nye sager efter dage de sidste %s dage +BoxTicketLastXDayswidget = Antal nye sager efter dage de sidste X dage +BoxNoTicketLastXDays=Ingen nye sager de sidste %s dage +BoxNumberOfTicketByDay=Antal nye sager om dagen +BoxNewTicketVSClose=Antal sager kontra lukkede sager (i dag) +TicketCreatedToday=Sag oprettet i dag +TicketClosedToday=Sag lukket i dag +KMFoundForTicketGroup=Vi fandt emner og ofte stillede spørgsmål, der kan besvare dit spørgsmål, venligst gennemgå, inden du opretter sagen diff --git a/htdocs/langs/da_DK/users.lang b/htdocs/langs/da_DK/users.lang index 17a06db7b2a..69608712a1a 100644 --- a/htdocs/langs/da_DK/users.lang +++ b/htdocs/langs/da_DK/users.lang @@ -21,12 +21,12 @@ DeleteAUser=Slet en bruger EnableAUser=Aktiver en bruger DeleteGroup=Slet DeleteAGroup=Slet en gruppe -ConfirmDisableUser=Er du sikker på, at du vil deaktivere brugeren %s ? -ConfirmDeleteUser=Er du sikker på, at du vil slette brugeren %s ? -ConfirmDeleteGroup=Er du sikker på, at du vil slette gruppen %s ? -ConfirmEnableUser=Er du sikker på, at du vil aktivere brugeren %s ? -ConfirmReinitPassword=Er du sikker på, at du vil oprette en ny adgangskode til brugeren %s ? -ConfirmSendNewPassword=Er du sikker på, at du vil generere og sende ny adgangskode til brugeren %s ? +ConfirmDisableUser=Er du sikker på, at du vil deaktivere brugeren %s ? +ConfirmDeleteUser=Er du sikker på, at du vil slette brugeren %s ? +ConfirmDeleteGroup=Er du sikker på, at du vil slette gruppen %s ? +ConfirmEnableUser=Er du sikker på, at du vil aktivere brugeren %s ? +ConfirmReinitPassword=Er du sikker på, at du vil oprette en ny adgangskode til brugeren %s ? +ConfirmSendNewPassword=Er du sikker på, at du vil generere og sende ny adgangskode til brugeren %s ? NewUser=Ny bruger CreateUser=Opret bruger LoginNotDefined=Login er ikke defineret. @@ -45,7 +45,7 @@ NewGroup=Ny gruppe CreateGroup=Opret gruppe RemoveFromGroup=Fjern fra gruppe PasswordChangedAndSentTo=Password ændret og sendt til %s. -PasswordChangeRequest=Anmod om at ændre adgangskode 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. IfEmailExistPasswordRequestSent=Hvis denne e-mail er en gyldig konto, er der sendt en e-mail for at nulstille adgangskoden. @@ -105,7 +105,7 @@ HierarchicView=Hierarkisk visning UseTypeFieldToChange=Brug feltet Type til at ændre OpenIDURL=OpenID-URL LoginUsingOpenID=Brug OpenID til at logge ind -WeeklyHours=Timer arbejdede (pr. Uge) +WeeklyHours=Arbejdstimer (pr. Uge) ExpectedWorkedHours=Forventede arbejdstimer pr. Uge ColorUser=Brugerens farve DisabledInMonoUserMode=Deaktiveret i vedligeholdelsestilstand @@ -114,7 +114,7 @@ UserLogoff=Bruger logout UserLogged=Bruger logget DateOfEmployment=Ansættelsesdato DateEmployment=Beskæftigelse -DateEmploymentstart=Ansættelsesstartdato +DateEmploymentStart=Ansættelsesstartdato DateEmploymentEnd=Ansættelses slutdato RangeOfLoginValidity=Adgang til gyldighedsdatointerval CantDisableYourself=Du kan ikke deaktivere din egen brugerpost @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Som standard validatoren er supervisor for bruger UserPersonalEmail=Personlig e-mail UserPersonalMobile=Personlig mobiltelefon WarningNotLangOfInterface=Advarsel! Dette er det vigtigste sprog, som brugeren taler, ikke sproget i den grænseflade, han valgte at se. For at ændre det interface, der er synligt for denne bruger, skal du gå til fanen %s +DateLastLogin=Dato sidste login +DatePreviousLogin=Dato forrige login +IPLastLogin=IP sidste login +IPPreviousLogin=IP tidligere login diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang index 0b117152cc5..4d437b5ba70 100644 --- a/htdocs/langs/da_DK/website.lang +++ b/htdocs/langs/da_DK/website.lang @@ -45,7 +45,7 @@ ViewWebsiteInProduction=Se websitet ved hjælp af hjemmesider 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 -YouCanAlsoDeployToAnotherWHP=Kør dit websted med en anden Dolibarr Hosting-udbyder
    Hvis du ikke har en webserver som Apache eller NGinx tilgængelig på internettet, kan du eksportere og importere dit websted til en anden Dolibarr-instans leveret af en anden Dolibarr-hostingudbyder, der giver fuld integration med webstedet modul. Du kan finde en liste over nogle Dolibarr-hostingudbydere på https://saas.dolibarr.org +YouCanAlsoDeployToAnotherWHP= Kør dit websted med en anden Dolibarr-hostingudbyder
    Hvis du ikke har en webserver som Apache eller NGinx tilgængelig på internettet, kan du eksportere og importere dit websted til en anden Dolibarr-instans, der leverer fuld hosting af en anden Dolibarr-udbyder integration med hjemmesidemodulet. Du kan finde en liste over nogle Dolibarr-hostingudbydere på https://saas.dolibarr.org CheckVirtualHostPerms=Kontroller også, at den virtuelle værtsbruger (for eksempel www-data) har %s tilladelser på filer til
    %s ReadPerm=Læs WritePerm=Skriv @@ -57,10 +57,10 @@ NoPageYet=Ingen sider endnu YouCanCreatePageOrImportTemplate=Du kan oprette en ny side eller importere en fuld hjemmeside skabelon SyntaxHelp=Hjælp til specifikke syntax tips YouCanEditHtmlSourceckeditor=Du kan redigere HTML-kildekode ved hjælp af knappen "Kilde" i editoren. -YouCanEditHtmlSource=
    Du kan inkludere PHP-kode i denne kilde ved hjælp af tags <? php? > Følgende globale variabler er tilgængelige: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    Du kan også inkludere indholdet af en anden side/Container med følgende syntaks:
    >

    Du kan lave en omdirigering til en anden side / Container med følgende syntaks (Bemærk: ikke output noget indhold, før en omdirigering):
    < php redirectToContainer (alias_of_container_to_redirect_to '); ? >

    For at tilføje et link til en anden side, skal du bruge syntaksen:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    For at inkludere en link til download en fil er gemt i dokumenter bibliotek, brug document.php wrapper:
    eksempel " ] filename.ext ">

    For en fil til dokumenter / medier (åben mappe for offentlig adgang) er syntaks:
    <a href="/document.php?modulepart=medias&file=??relative_dir/strongfilename.ext">
    For en fil, der deles med et delingslink (åben adgang ved hjælp af deling hash-nøglen til fil), syntax is:
    <a href=/document.php?hashp=publicsharekeyoffile">

    vil medtage en billede lagret i dokumenter mappen, skal du bruge viewimage.php indpakning:
    eksempel, for et billede ind i dokumenter / medier (åben bibliotek for offentlig adgang), syntaks er:
    <img src = "/viewimage.php? modulepart = medias&file = [relative_dir /] filename.ext
    +YouCanEditHtmlSource=
    Du kan inkludere PHP-kode i denne kilde ved hjælp af tags <?php ?> Følgende globale variabler er tilgængelige: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Du kan også inkludere indholdet af en anden side/Container med følgende syntaks:
    >

    Du kan lave en omdirigering til en anden side / Container med følgende syntaks (Bemærk: ikke output noget indhold, før en omdirigering):
    <php redirectToContainer (alias_of_container_to_redirect_to '); ?>

    For at tilføje et link til en anden side, skal du bruge syntaksen:
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    For at inkludere en link til download en fil er gemt i dokumenter bibliotek, brug document.php wrapper:
    eksempel: a file into documents/ecm (need to be logged), syntax is:
    >a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    For en fil til dokumenter / medier (åben mappe for offentlig adgang) er syntaks:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    For en fil, der deles med et delingslink (åben adgang ved hjælp af deling hash-nøglen til fil), syntax is:
    <a href=/document.php?hashp=publicsharekeyoffile">

    vil medtage en billede lagret i dokumenter mappen, skal du bruge viewimage.php indpakning:
    eksempel, for et billede ind i dokumenter / medier (åben bibliotek for offentlig adgang), syntaks er:
    <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 billede, der deles med et delingslink (åben adgang ved hjælp af deling af hash-nøglen til filen), er syntaks:
    <img src = "/ viewimage.php? Hashp = 12345679012 ..."
    -YouCanEditHtmlSourceMore=
    Flere eksempler på HTML eller dynamisk kode tilgængelig på wiki-dokumentationen
    . +YouCanEditHtmlSourceMore=
    Flere eksempler på HTML eller dynamisk kode tilgængelig på wiki-dokumentationen
    . ClonePage=Klon side / container CloneSite=Klon website SiteAdded=Hjemmeside tilføjet diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang index 5f5ab0c61f3..bfe254e8353 100644 --- a/htdocs/langs/da_DK/withdrawals.lang +++ b/htdocs/langs/da_DK/withdrawals.lang @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Leverandør faktura, der venter på betaling via InvoiceWaitingWithdraw=Faktura venter på direkte debitering 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. ResponsibleUser=Brugeransvarlig @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Udførelsesdato CreateForSepa=Opret direkte debitering fil ICS=Kreditoridentifikator - ICS +IDS=Debitor-id END_TO_END=SEPA XML-tag "EndToEndId" - Unikt id tildelt pr. Transaktion USTRD="Ustruktureret" SEPA XML-tag ADDDAYS=Tilføj dage til udførelsesdato @@ -154,3 +156,4 @@ ErrorICSmissing=Mangler ICS på bankkonto %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Det samlede beløb for direkte debiteringsordre adskiller sig fra summen af linjer WarningSomeDirectDebitOrdersAlreadyExists=Advarsel: Der er allerede nogle afventende direkte debiteringsordrer (%s) anmodet om et beløb på %s WarningSomeCreditTransferAlreadyExists=Advarsel: Der er allerede en afventende kreditoverførsel (%s) anmodet om et beløb på %s +UsedFor=Brugt til %s diff --git a/htdocs/langs/da_DK/workflow.lang b/htdocs/langs/da_DK/workflow.lang index 922b7225ae2..254345a85be 100644 --- a/htdocs/langs/da_DK/workflow.lang +++ b/htdocs/langs/da_DK/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Opret automatisk en salgsordre, når et kom descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Opret automatisk en kundefaktura, når et kommercielt forslag er underskrevet (den nye faktura vil have samme beløb som forslaget) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Opret automatisk en kundefaktura efter en kontrakt er bekræftet descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Opret automatisk en kundefaktura, når en salgsordre er lukket (den nye faktura har samme beløb som ordren) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Ved oprettelse af billet skal du automatisk oprette en intervention. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassificer linket kildeforslag som faktureret, når salgsordren er indstillet til faktureret (og hvis ordrens størrelse er det samme som det samlede beløb for det underskrevne linkede forslag) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klassificer tilsluttet kildeforslag som faktureret, når kundefakturaen er bekræftet (og hvis fakturaens størrelse er det samme som det samlede beløb for det underskrevne linkede forslag) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassificer den tilknyttede ki descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassificer den tilknyttede kildes salgsordre, som faktureres, når kundefakturaen er indstillet til betalt (og hvis fakturaforholdet er det samme som det samlede beløb for den tilknyttede ordre) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassificer den tilknyttede kildes salgsordre, som sendes, når en forsendelse er valideret (og hvis den mængde, der er sendt af alle forsendelser, er den samme som i opdateringsordren) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Klassificer tilknyttet kildesalgsordre som afsendt, når en forsendelse lukkes (og hvis mængden, der sendes af alle forsendelser, er den samme som i ordren, der skal opdateres) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Klassificer tilsluttet kildeleverandørforslag som faktureret, når leverandørfakturaen er bekræftet (og hvis fakturaens størrelse er det samme som det samlede beløb for det linkede forslag) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klassificer købt købsordre med kilden som faktureret, når leverandørfakturaen er bekræftet (og hvis fakturaens størrelse er den samme som det samlede beløb for den tilknyttede ordre) +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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Luk alle indgreb, der er knyttet til billetten, når en billet er lukket AutomaticCreation=Automatisk oprettelse AutomaticClassification=Automatisk klassificering # Autoclassify shipment descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificer tilknyttet kildeforsendelse som lukket, når kundefaktura er valideret +AutomaticClosing=Automatisk lukning +AutomaticLinking=Automatisk forbinde diff --git a/htdocs/langs/da_DK/zapier.lang b/htdocs/langs/da_DK/zapier.lang index 412c0e028fa..1e92c0a3fb1 100644 --- a/htdocs/langs/da_DK/zapier.lang +++ b/htdocs/langs/da_DK/zapier.lang @@ -18,4 +18,4 @@ ModuleZapierForDolibarrDesc = Zapier til Dolibarr-modul ZapierForDolibarrSetup=Opsætning af Zapier til Dolibarr ZapierDescription=Interface med Zapier ZapierAbout=Om modulet Zapier -ZapierSetupPage=Der er ikke behov for en opsætning på Dolibarr-siden for at bruge Zapier. Du skal dog generere og udgive en pakke på zapier for at kunne bruge Zapier med Dolibarr. Se dokumentation på denne wiki-side . +ZapierSetupPage=Der er ikke behov for opsætning i Dolibarr for at bruge Zapier. Du skal dog generere og udgive en pakke på zapier for at kunne bruge Zapier med Dolibarr. Se dokumentation på denne wiki-side . diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index 8ceb0acdd00..54771c2245a 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -1,6 +1,4 @@ # 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 Publisher=Hausgeber VersionProgram=Versionsnummer VersionLastInstall=Erstinstallationsversion @@ -27,28 +25,21 @@ InternalUser=interner Nutzer ExternalUser=externer Nutzer InternalUsers=interne Nutzer ExternalUsers=externe Nutzer -GUISetup=Anischt UploadNewTemplate=Neue Vorlage(n) hochladen FormToTestFileUploadForm=Formular zum Testen des Datei-Uploads (je nach Einstellung) -DictionarySetup=Wörterbuch einrichten -Dictionary=Wörterbücher UsePreviewTabs=Verwende Vorschauregister ShowPreview=Vorschau zeigen ThemeCurrentlyActive=Thema derzeit aktiv NextValue=Nächste Wert NextValueForDeposit=Nächster Wert (Anzahlung) +NextValueForReplacements=Nächster Wert (Ersatz) MultiCurrencySetup=Einstellungen für mehrere Währungen -MenuLimits=Grenzen und Genauigkeit MenuIdParent=ID des übergeordneten Menüs DetailMenuIdParent=ID des übergeordneten Menüs (leer für ein Hauptmenü) DetailPosition=Nummer sortieren, um die Menüposition zu definieren NotConfigured=Modul / Anwendung nicht konfiguriert -OtherOptions=Andere Optionen -OtherSetup=Andere Einstellungen ClientHour=Client-Zeit (Benutzer) -DaylingSavingTime=Sommerzeit Language_en_US_es_MX_etc=Sprache (de_AT, en_UK, ...) -PurgeNothingToDelete=Kein Verzeichnis oder Dateien zum Löschen. GenerateBackup=Erzeuge Datensicherung RunCommandSummary=Die Sicherung wurde mit dem folgenden Befehl gestartet BackupResult=Ergebnis Datensicherung @@ -70,15 +61,21 @@ Module53Name=Dienstleistung Module70Name=Eingriffe Module70Desc=Eingriffsverwaltung Module80Name=Sendungen -Module310Desc=Mitgliederverwaltun +Module310Desc=Mitgliederverwaltung Permission31=Produkte/Services einsehen Permission32=Produkte/Services erstellen/bearbeiten Permission34=Produkte/Services löschen Permission36=Projekte/Services exportieren +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) Permission61=Eingriffe ansehen Permission62=Eingriffe erstellen/bearbeiten Permission64=Eingriffe löschen Permission67=Eingriffe exportieren +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) Permission172=Reisen löschen Permission192=Leitungen anlegen Permission193=Leitungen verwerfen @@ -97,7 +94,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 @@ -149,6 +145,7 @@ LDAPFieldFullname=vollständiger Name ClickToDialSetup=Click-to-Dial-Moduleinstellungen MailToSendShipment=Sendungen MailToSendIntervention=Eingriffe +CreateTicketAndThirdParty=Create a ticket (linked to a third party if the third party was loaded by a previous operation, with no third party otherwise) 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. MAIN_OPTIMIZEFORCOLORBLINDDesc=Aktiviere diese Option wenn Sie Farbenblind sind, in machen Fällen wird die Farbeinstellung geändert um den Kontrast zu erhöhen. WithGMailYouCanCreateADedicatedPassword=Wenn Sie bei einem GMail-Konto die Überprüfung in zwei Schritten aktiviert haben, wird empfohlen, ein dediziertes zweites Kennwort für die Anwendung zu erstellen, anstatt Ihr eigenes Kontokennwort von https://myaccount.google.com/ zu verwenden. @@ -157,9 +154,6 @@ EndPointFor=Endpunkt für %s: %s DeleteEmailCollector=E-Mail-Sammler löschen ConfirmDeleteEmailCollector=Möchten Sie diesen E-Mail-Sammler wirklich löschen? AtLeastOneDefaultBankAccountMandatory=Es muss mindestens 1 Standardbankkonto definiert sein -RESTRICT_ON_IP=Erlauben Sie nur den Zugriff auf eine Host-IP (Platzhalter nicht zulässig, verwenden Sie Leerzeichen zwischen den Werten). Leer bedeutet, dass jeder Host darauf zugreifen kann. FeatureNotAvailableWithReceptionModule=Funktion nicht verfügbar, wenn das Modul Empfang aktiviert ist EmailTemplate=Vorlage für E-Mail YouShouldDisablePHPFunctions=PHP Funktionen sollten deaktiviert werden -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/de_AT/agenda.lang b/htdocs/langs/de_AT/agenda.lang index 5e8fc952dd0..78dd8ccc8f6 100644 --- a/htdocs/langs/de_AT/agenda.lang +++ b/htdocs/langs/de_AT/agenda.lang @@ -2,28 +2,18 @@ Actions=Termine EventsNb=Anzahl der Termine ListOfActions=Terminliste -EventOnFullDay=Terminliste -MenuToDoActions=Alle unvollständigen Termine -MenuDoneActions=Alle beendeten Termine -MenuToDoMyActions=Meine unvollständige Termine -ActionAssignedTo=Termin zugwiesen von -ViewCal=Kalender anzeigen -ViewDay=Tag anzeigen PropalValidatedInDolibarr=Angebot %s verifiziert InvoiceValidatedInDolibarr=Rechung %s verifiziert -InvoiceBackToDraftInDolibarr=Rechnung %s zurück zum provisorischen Status +InvoiceBackToDraftInDolibarr=Rechnung %s zurück zum Entwurf-Status ShipmentValidatedInDolibarr=Sendung %s validiert OrderValidatedInDolibarr=Bestellung freigegeben OrderCanceledInDolibarr=Bestellung %s storiniert OrderApprovedInDolibarr=Bestellung %s wurde validiert -OrderBackToDraftInDolibarr=Bestellung %s zurück zum provisorischen Status +OrderBackToDraftInDolibarr=Bestellung %s zurück zum Entwurf-Status ShippingValidated=Sendung %s validiert -DateActionStart=Start-Datum -DateActionEnd=End-Datum -Busy=beschäftigt -ExportDataset_event1=Lister der Termine -DefaultWorkingDays=Arbeitstage (Mo-Fr , Mo-Sa) -DefaultWorkingHours=Arbeitszeit (Bsp.: 09-18) +ExportDataset_event1=Liste der Termine +DefaultWorkingDays=Standard-Arbeitstage (z.B.: 1-5 (Mo-Fr)) +DefaultWorkingHours=Reguläre Arbeitszeit (z.B.: 9-18) ExportCal=exportiere Kalender ExtSites=importiere externe Kalender ExtSiteUrlAgenda=URL für .lcal diff --git a/htdocs/langs/de_AT/banks.lang b/htdocs/langs/de_AT/banks.lang index c52d81ff029..0ad385b6ae7 100644 --- a/htdocs/langs/de_AT/banks.lang +++ b/htdocs/langs/de_AT/banks.lang @@ -14,7 +14,8 @@ EndBankBalance=Abschlusssaldo CurrentBalance=derezitige Bilanz FutureBalance=zukünftiger Bilanz ShowAllTimeBalance=Eröffnungsbilanz -RIB=Kontonummer +SwiftValid=BIC gültig +SwiftNotValid=BIC ungültig AccountStatementShort=Kontenauszug AccountStatements=Kontoauszug LastAccountStatements=letzter Kontoauszug diff --git a/htdocs/langs/de_AT/bills.lang b/htdocs/langs/de_AT/bills.lang index cd770616b3d..ce8aa68a497 100644 --- a/htdocs/langs/de_AT/bills.lang +++ b/htdocs/langs/de_AT/bills.lang @@ -13,6 +13,8 @@ ValidateBill=Validate Rechnung NewRelativeDiscount=Neue relative Rabatt RelatedBill=Verwandte Rechnung PaymentTypeShortTRA=Entwurf +BIC=BIC +BICNumber=BIC LawApplicationPart2=Die Ware bleibt Eigentum der LawApplicationPart4=ihren Preis. UseCredit=Verwenden Sie die Credit diff --git a/htdocs/langs/de_AT/companies.lang b/htdocs/langs/de_AT/companies.lang index d8443484e90..9ce41477282 100644 --- a/htdocs/langs/de_AT/companies.lang +++ b/htdocs/langs/de_AT/companies.lang @@ -9,6 +9,10 @@ OverAllSupplierProposals=Preisanfrage LocalTax1IsUsedES=RE wird LocalTax2IsUsedES=IRPF verwendet wird ProfId1AR=Prof Id 1 (CUIL) -CapitalOf=Hauptstadt von %s +ProfId3CM=Id. prof. 3 (Decree of creation) +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId3ShortCM=Decree of creation +ProfId4ShortCM=Certificate of deposits +VATIntraShort=UID OthersNotLinkedToThirdParty=Andere, nicht mit einem Partner verknüpfte ActivityCeased=geschlossen diff --git a/htdocs/langs/de_AT/dict.lang b/htdocs/langs/de_AT/dict.lang index d515c1f8ede..9bffa283596 100644 --- a/htdocs/langs/de_AT/dict.lang +++ b/htdocs/langs/de_AT/dict.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - dict CountryUK=UK -CountryCI=Ivoiry Küste CountryAX=Land-Inseln CountryBW=Botsuana CountryCV=Kap Verde @@ -14,8 +13,8 @@ CountryMK=Mazedonien, die ehemalige jugoslawische der CountryMD=Republik Moldau CountryKN=Saint Kitts und Nevis CountryGS=Süd-Georgien und Süd-Sandwich-Inseln -CivilityMLE=Frau CivilityMTRE=Mag. +CivilityDR=Dr. CurrencyCAD=CAN-Dollar CurrencySingCAD=CAN-Dollar CurrencyFRF=Französische Franken 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/main.lang b/htdocs/langs/de_AT/main.lang index d1b886fe6e2..c9768e1b88d 100644 --- a/htdocs/langs/de_AT/main.lang +++ b/htdocs/langs/de_AT/main.lang @@ -4,10 +4,10 @@ FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, SeparatorThousand=None -FormatDateShort=%d/%m/%Y -FormatDateShortInput=%d/%m/%Y -FormatDateShortJava=dd/MM/yyyy -FormatDateShortJavaInput=dd/MM/yyyy +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 @@ -15,8 +15,8 @@ FormatHourShort=%H:%M FormatHourShortDuration=%H:%M FormatDateTextShort=%d %b %Y FormatDateText=%d %B %Y -FormatDateHourShort=%d/%m/%Y %H:%M -FormatDateHourSecShort=%d/%m/%Y %H:%M:%S +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 NoRecordFound=Kein Eintrag gefunden @@ -24,11 +24,10 @@ NoRecordDeleted=Kein Eintrag gelöscht NoError=Kein Fehler ErrorLogoFileNotFound=Logo-Datei '%s' kann nicht gefunden werden ErrorFailedToSendMail=Fehler beim Senden des Mails (Absender=%s, Empfänger=%s) -ErrorDuplicateField=Dieser Wert muß einzigartig sein +ErrorDuplicateField=Dieser Wert muss einzigartig sein LevelOfFeature=Funktions-Level NotePublic=Notiz (öffentlich) -Closed=geschlossen -Closed2=geschlossen +NotePrivate=Notiz (privat) ToClone=Klonen Of=Von Search=Suche @@ -37,37 +36,29 @@ PasswordRetype=Geben Sie das Passwort erneut ein Title=Titel DateStart=Start-Datum DateEnd=End-Datum -DateDue=Zahlungsziel -DateRequest=Verlange Datum -DurationDays=Tag -days=Tag UnitPrice=Bruttopreis (Stk.) UnitPriceTTC=Bruttopreis (Stk.) PriceU=Stückpreis PriceUHT=Stückpreis (net) +AmountVAT=MwSt. Betrag AmountAverage=Durchnschnittsbetrag TotalTTCShort=Summe (inkl. MwSt.) TotalTTC=Summe (inkl. MwSt.) +TotalTTCToYourCredit=Gesamtbetrag (inkl. MwSt.) zu Ihren Gunsten TotalVAT=Steuer gesamt VAT=MwSt. Ref=Bezeichnung RefPayment=Zahlungs Nr. -Qty=Mng. -Drafts=Entwurf -Late=Versätet +Qty=Menge January=Jänner Month01=Jänner ReportName=Berichtname -AmountInCurrency=Beträge in 1%s RefCustomer=Kunden Nr. MailSentBy=E-Mail-Absender TextUsedInTheMessageBody=E-Mail-Text -NoEMail=Keine E-Mails Offered=Angeboten Receive=Erhalte Documents=Verknüpfte Dateien -ThisLimitIsDefinedInSetup=Gesetzte System-Limits (Menü Home-Einstellungen-Sicherheit): %s Kb, PHP Limit: %s Kb -UnHidePassword=Passwort-Zeichen anzeigen CloneMainAttributes=Duplikat mit den Haupteigenschaften LinkTo=Verknüpfen mit... LinkToProposal==> Angebot @@ -81,9 +72,10 @@ ShowIntervention=Zeige Intervention ViewList=Liste anzeigen RelatedObjects=Ähnliche Dokumente Calendar=Kalender -Events=Termine SearchIntoContacts=Kontakt SearchIntoInterventions=Eingriffe AssignedTo=zugewisen an DateOfBirth=Geburtstdatum +AffectTag=Beschlagworten/Kategorisieren +ConfirmAffectTag=Massen-Beschlagwortung/Kategorisierung ClientTZ=Client-Zeitzone (Benutzer) diff --git a/htdocs/langs/de_AT/members.lang b/htdocs/langs/de_AT/members.lang index 828b9a69157..46e7d7c1c2f 100644 --- a/htdocs/langs/de_AT/members.lang +++ b/htdocs/langs/de_AT/members.lang @@ -7,7 +7,5 @@ MembersTypes=Mitgliedertypen MemberStatusActiveLateShort=abgelaufen MemberStatusNoSubscriptionShort=Bestätigt SubscriptionEndDate=Abonnementauslaufdatum -SubscriptionLate=Versätet -NewMemberType=Neues Mitgliedsrt Filehtpasswd=htpasswd-Datei HTPasswordExport=htpassword-Dateierstellung diff --git a/htdocs/langs/de_AT/receptions.lang b/htdocs/langs/de_AT/receptions.lang new file mode 100644 index 00000000000..b0ac7f63f4f --- /dev/null +++ b/htdocs/langs/de_AT/receptions.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - receptions +StatusReceptionValidatedShort=Bestätigt diff --git a/htdocs/langs/de_AT/supplier_proposal.lang b/htdocs/langs/de_AT/supplier_proposal.lang index 9ef3194ef0e..f84fd27eb6b 100644 --- a/htdocs/langs/de_AT/supplier_proposal.lang +++ b/htdocs/langs/de_AT/supplier_proposal.lang @@ -1,13 +1,9 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposalNew=Neue Preisanfrage CommRequests=Preisanfrage SearchRequest=Eine Anfrage finden DraftRequests=Anfrageentwurf SupplierProposalsDraft=Entwurf Lieferantenangebot LastModifiedRequests=Letzten %s geänderten Preisanfragen -RequestsOpened=Offene Preisanfragen -SupplierProposalShort=Lieferantenangebot -NewAskPrice=Neue Preisanfrage ShowSupplierProposal=Zeige Preisanfrage AddSupplierProposal=Erstelle eine Preisanfrage SupplierProposalRefFourn=Lieferant Zeichen diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index 84aae28a81a..6a826327010 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,6 +39,7 @@ CountriesNotInEEC=Nicht EWR - Staaten CountriesInEECExceptMe=Länder im EWR ausser %s CountriesExceptMe=Alle Staaten, ausser %s AccountantFiles=Geschäftsvorgänge exportieren +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=Die Journale exportierst du im Menu %s - %s. VueByAccountAccounting=Anzeigen nach Buchhaltungskonto VueBySubAccountAccounting=Anzeigen nach Nebenbuchkonto @@ -49,22 +51,17 @@ MainAccountForSubscriptionPaymentNotDefined=Standard - Buchhaltungskonto für Ab AccountancyArea=Buchhaltungsumgebung AccountancyAreaDescIntro=Du benutzt das Buchhaltungsmodul auf verschiedene Arten: AccountancyAreaDescActionOnce=Folgende Aufgaben erledigst du normalerweise einmal pro Jahr. -AccountancyAreaDescActionOnceBis=Die folgenden Einstellungen helfen dir, die Aufzeichnungen einfacher an Buchhaltungskonten zuzuweisen. AccountancyAreaDescActionFreq=Die Folgenden arbeiten erfolgen - je nach Unternehmensgrösse - monatlich, wöchentlich oder gar täglich. -AccountancyAreaDescJournalSetup=Schritt %s: Prüfe die vorhandenen Journale im Menu %s und ergänze Sie bei Bedarf mit eigenen. AccountancyAreaDescChartModel=Schritt %s: Stelle sicher, dass ein Kontenplan angelegt ist oder erstelle einen via Menu %s. AccountancyAreaDescChart=Schritt %s: Wähle und / oder ergänze deinen Kontenplan via Menu %s. AccountancyAreaDescVat=Schritt %s: Hinterlege die verschiedenen MWST Sätze im Menu%s. AccountancyAreaDescDefault=STEP %s: Hinterlege weitere Standard - Buchhaltungskonten im Menu %s. -AccountancyAreaDescExpenseReport=Schritt %s: Hinterlege Buchhaltungskonten für alle Arten von Ausgaben in Spesenabrechnungen im Menu %s. AccountancyAreaDescSal=Schritt %s: Hinterlege deine Buchhaltungskonten für Lohnzahlungen im Menu %s. -AccountancyAreaDescContrib=Schritt %s: Lege die Buchhaltungskonten für besondere Aufwendungen (sonstige Steuern) im Menu %s fest. AccountancyAreaDescDonation=Schritt %s: Erzeuge Standardkonten für Spenden im Menu %s. AccountancyAreaDescSubscription=SCHRITT %s: Lege die Standard - Buchhaltungskonten für die Mitgliederabonnements im Menu %s fest. AccountancyAreaDescMisc=Schritt %s: Erzeuge Standard Buchhaltungskonten für sonstige Transaktionen im Menu %s. AccountancyAreaDescLoan=Schritt %s: Erzeuge Buchaltungskonten für Darlehen im Menu %s. AccountancyAreaDescBank=Schritt %s: Erzeuge und Verwalte deine Bank- und Finanzkonten im Menu %s und weise entsprechende Journale zu. -AccountancyAreaDescProd=Schritt %s: Weise im Menu %s deinen Produkten und Leistungen entsprechende Buchhaltungskonten zu. AccountancyAreaDescBind=Schritt %s: Prüfe die Verknüpfungen von %s mit passenden Buchhaltungskonten, damit Dolibarr Sie automatisch im Hauptbuch journalisieren kann. Wenn nötig, füge die Verknüpfungen im Menu %s manuell hinzu. AccountancyAreaDescWriteRecords=Schritt %s: Lass alle Transaktionen ins Hauptbuch übertragen. Wechsle dazu in das Menu %s, und Klicke auf %s. AccountancyAreaDescAnalyze=Schritt %s: Erzeuge oder ergänze Transaktionen für Berichte und Exporte. @@ -73,6 +70,7 @@ TheJournalCodeIsNotDefinedOnSomeBankAccount=Eine zwingende Einstellung ist noch Selectchartofaccounts=Wähle deinen Kontenrahmen. ChangeAndLoad=Lade und ersetze Addanaccount=Buchhaltungskonto hinzüfügen +AccountAccounting=Buchhaltungskonto SubledgerAccountLabel=Bezeichnung Nebenbuchkonto ShowAccountingAccount=Zeige Buchhaltungskonto ShowAccountingJournal=Zeige Buchhaltungssjournal @@ -81,11 +79,10 @@ ShowAccountingAccountInJournals=Zeige dieses Buchhaltungskonto in den Journalen AccountAccountingSuggest=Vorgeschlagenes Buchhaltungskonto MenuVatAccounts=MWST - Konten MenuExpenseReportAccounts=Spesenabrechnungskonten -MenuLoanAccounts=Darlehenskonten MenuProductsAccounts=Produktkonten +MenuAccountancyClosure=Abschluss MenuAccountancyValidationMovements=Kontobewegungen freigeben TransferInAccounting=Umbuchung -RegistrationInAccounting=Verbuchen Binding=Kontoverknüpfung CustomersVentilation=Verknüpfung für Kundenrechnungen SuppliersVentilation=Zuordnung Lieferantenrechnungen @@ -93,7 +90,6 @@ ExpenseReportsVentilation=Verknüpfung für Spesenabrechnungen CreateMvts=Neue Transaktion UpdateMvts=Transaktion bearbeiten ValidTransaction=Transaktion freigeben -WriteBookKeeping=Verbuche diese Transaktionen AccountBalance=Saldo ObjectsRef=Referenz des Quellobjektes CAHTF=Einkaufsaufwand von Steuern @@ -128,7 +124,6 @@ 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_HAS_NEW_JOURNAL=Hat neuen Journaleintrag @@ -138,6 +133,7 @@ ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Abschlussjournal ACCOUNTING_ACCOUNT_TRANSFER_CASH=Transferkonto Banktransaktionen TransitionalAccount=Durchlaufkonto Bank ACCOUNTING_ACCOUNT_SUSPENSE=Sperrkonto +DONATION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Spenden 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) @@ -152,9 +148,10 @@ ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Standardkonto für importierte Dienstleist 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 @@ -167,7 +164,6 @@ NotMatch=Nicht hinterlegt DelMonth=Zu löschender Monat DelYear=Zu löschendes Jahr DelJournal=Zu löschendes Journal -ConfirmDeleteMvtPartial=Dadurch wird die Transaktion aus der Buchhaltung gelöscht (alle Vorgangszeilen, die sich auf dieselbe Transaktion beziehen, werden gelöscht) ExpenseReportsJournal=Spesenabrechnungs - Journal DescFinanceJournal=Finanzjournal mit allen Zahlungsarten nach Konto. DescJournalOnlyBindedVisible=Dies ist eine Datensatzansicht, die an ein Buchhaltungskonto gebunden ist und in den Journalen und im Hauptbuch aufgezeichnet werden kann. @@ -181,6 +177,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,6 +189,8 @@ ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Nebenbuchkonto nicht defi UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Mir fehlt der Partner und das Wartestellungskonto. Zugriffsfehler. PaymentsNotLinkedToProduct=Die Zahlung ist mit keinem Produkt oder Service verknüpft. OpeningBalance=Eröffnungssaldo +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. @@ -205,19 +204,14 @@ DescVentilTodoExpenseReport=Hier verknüpfst du Spesenauslagen mit dem passenden 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. -DescClosure=Du siehst hier die Bewegungen pro Monat des offenen Geschäftsjahres, die noch nicht frei gegeben sind. -OverviewOfMovementsNotValidated=Schritt 1: Nicht frei gegebene Bewegungen (Die müssen für den Jahresabschluss bearbeitet sein). -NotAllMovementsCouldBeRecordedAsValidated=Nicht alle Bewegungen konnten als validiert erfasst werden -ValidateMovements=Kontobewegungen freigeben +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. -MvtNotCorrectlyBalanced=Die Bewegung ist nicht ausgeglichen. Soll = %s | Haben = %s 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. -NoNewRecordSaved=Es gibt keine weiteren Einträge zu journalisieren. ListOfProductsWithoutAccountingAccount=Produkte ohne Verknüpfung zu einem Buchhaltungskonto ChangeBinding=Verknüpfung ändern Accounted=Im Hauptbuch eingetragen @@ -231,14 +225,14 @@ NewAccountingJournal=Neues Buchhaltungssjournal AccountingJournalType1=Verschiedene Vorgänge AccountingJournalType2=Verkauf AccountingJournalType3=Einkauf +AccountingJournalType8=Inventar AccountingJournalType9=Hat neues ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird schon verwendet. AccountingAccountForSalesTaxAreDefinedInto=Obacht: Das Buchhaltungskonto für die MWST setzt du hier: %s - %s NumberOfAccountancyEntries=Anzahl Einträge NumberOfAccountancyMovements=Anzahl Bewegungen ACCOUNTING_DISABLE_BINDING_ON_SALES=Bindung & Übertragung in der Verkaufsbuchhaltung deaktivieren (Kundenrechnungen werden in der Buchhaltung nicht berücksichtigt) -NotifiedExportDate=Exportierte Zeilen als exportiert markieren (Ändern der Zeilen ist nicht möglich) -NotifiedValidationDate=Bestätigen Sie die exportierten Einträge (Ändern oder Löschen der Zeilen ist nicht möglich) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) ConfirmExportFile=Bestätigen der Generierung der Buchhaltungsexportdatei ? ExportDraftJournal=Exportiere Entwurfsjournal Modelcsv=Exportformat @@ -268,6 +262,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 @@ -279,8 +274,11 @@ 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 SomeMandatoryStepsOfSetupWereNotDone=Oha - einige zwingende Einstellungen sind noch nicht gemacht worden. Bitte erledige das noch, danke. ErrorNoAccountingCategoryForThisCountry=Ich finde keine Kontengruppe für das gewählte Land %s. Prüfe im Setup die Wörterbücher. ErrorInvoiceContainsLinesNotYetBounded=Du probierst gerade einige Rechnungspositionen von %s zu journalisieren.\nAllerdings sind nicht alle Positionen einem Konto zugeordnet.\nAlso wird nicht die gesamte Rechnung journalisiert. @@ -293,5 +291,7 @@ ToBind=Zu verknüpfende Positionen UseMenuToSetBindindManualy=Nicht verbundenen Positionen, bitte Benutze den Menupunkt "%s" zum manuell zuweisen. 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 71fb7e04085..3529a5b6b40 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -1,6 +1,4 @@ # 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 Publisher=Herausgeber VersionLastInstall=Erste installierte Version VersionLastUpgrade=Version der letzten Aktualisierung @@ -29,7 +27,6 @@ PermissionsOnFilesInWebRoot=Berechtigungen für Dateien im Web-Root-Verzeichnis PermissionsOnFile=Berechtigungen für Datei %s NoSessionFound=Die PHP - Konfiguration erlaubt wahrscheinlich die Anzeige aktiver Sitzungen nicht.\nDas Verzeichnis "%s" könnte geschützt sein - durch eingeschränkte Ordnerberechtigungen durch das Serverbetriebssystem, oder durch PHP selbst via der Direktive "open_basedir". DBSortingCharset=Zeichensatz der Datenbank-Sortierung -HostCharset=Host-Zeichensatz ClientCharset=Benutzer-Zeichensatz ClientSortingCharset=Datenbankclient - Kollation DolibarrSetup=dolibarr Installation oder Upgrade @@ -58,6 +55,7 @@ MySQLTimeZone=Aktuelle Zeitzone von MySql (Datenbank) TZHasNoEffect=Kalenderdaten werden als Text in der Datenbank abgelegt und ausgelesen. Die Datenbank - Zeitzone sollte so keinen Einfluss auf Dolibarr haben, auch wenn Sie nach Eingabe von Daten geändert wird. Nur wenn die UNIX_TIMESTAMP - Funktion verwendet wird, was man in Dolibarr nicht sollte, kann die Datenbank - Zeitzone Auswirkungen haben. Space=Raum NextValueForDeposit=Nächster Wert (Anzahlung) +NextValueForReplacements=Nächster Wert (Ersatz) NoMaxSizeByPHPLimit=Hinweis: In Ihren PHP-Einstellungen sind keine Grössenbeschränkungen hinterlegt MaxSizeForUploadedFiles=Maximale Grösse für Dateiuploads (0 verbietet jegliche Uploads) AntiVirusParam=Weitere Parameter auf der Kommandozeile @@ -70,7 +68,9 @@ DetailPosition=Reihungsnummer für definition der Menüposition OtherOptions=Andere Optionen OtherSetup=Andere Einstellungen LocalisationDolibarrParameters=Lokalisierungsparameter +ClientHour=Uhrzeit (Benutzer) PHPTZ=Zeitzone der PHP-Version +DaylingSavingTime=Sommerzeit (Benutzer) CurrentSessionTimeOut=Aktuelle Session timeout YouCanEditPHPTZ=Nicht zwingend - aber du kannst via .htaccess - Datei versuchen, die Zeitzone zu übersteuern (Eintrag: SetEnv TZ Europe/Zurich zum Beispiel) HoursOnThisPageAreOnServerTZ=Obacht - hier ist ausnahmsweise die Serverzeit angegeben, nicht deine lokale. @@ -101,6 +101,9 @@ FileNameToGenerate=Name der zu erstellenden Datei ExportUseMySQLQuickParameter=Verwenden Sie den Parameter --quick AddDropDatabase=DROP DATABASE Befehl hinzufügen AddDropTable=DROP TABLE Befehl hinzufügen +NameColumn=Name der Spalten +NoLockBeforeInsert=Keine Sperrebefehle für INSERT +EncodeBinariesInHexa=Hexadezimal-Verschlüsselung für Binärdateien IgnoreDuplicateRecords=Fehler durch doppelte Zeilen ignorieren (INSERT IGNORE) BoxesDesc=Boxen (Widgets) sind Informationsblöcke, die man für personalisierte Ansichten verwenden kann. Gib bei einer Box an, auf welcher Ansicht Sie erscheinen soll und Klicke auf "Aktivieren" - oder entferne eine Box über das Papierkorbsymbol. OnlyActiveElementsAreShown=Nur Elemente aus aktiven Module werden angezeigt. @@ -118,6 +121,7 @@ SeeInMarkerPlace=Siehe im Marktplatz GoModuleSetupArea=Binde via Menu "%s" weitere Module ein. WebSiteDesc=Auf diesen externen Homepages findest du weitere Dolibarr - Module. DevelopYourModuleDesc=Einige Lösungen um Ihr eigenes Modul zu entwickeln... +URL=Link BoxesAvailable=Verfügbare Boxen BoxesActivated=Aktivierte Boxen ActiveOn=Aktiviert am @@ -162,6 +166,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 @@ -172,12 +177,12 @@ MAIN_MAIL_SMS_FROM=Standard - Mobilnummer für SMS Versand MAIN_MAIL_DEFAULT_FROMTYPE=E-Mail - Absender für manuell erzeugte Nachrichten (Benutzer- oder Firmenadresse) UserEmail=Email des Benutzers CompanyEmail=Firmen - E-Mailadresse +FeatureNotAvailableOnLinux=Diese Funktion ist auf Unix-Umgebungen nicht verfügbar. Testen Sie Ihr Programm sendmail lokal. SubmitTranslation=Du hast Übersetzungsfehler gefunden? Hilf uns, indem du die Sprachdateien im Verzeichnis 'langs/%s' anpasst und die Verbesserungen auf "www.transifex.com/dolibarr-association/dolibarr/" einreichst. ModulesSetup=Modul-/Applikationseinstellung ModuleFamilySrm=Lieferantenbeziehungsmanagement (VRM) ModuleFamilyProducts=Produktmanagement (PM) ModuleFamilyHr=Personalverwaltung (PM) -ModuleFamilyProjects=Projektverwaltung/Zusammenarbeit ModuleFamilyECM=Inhaltsverwaltung (ECM) ModuleFamilyPortal=Webseiten und andere Frontend Anwendungen DoNotUseInProduction=Nicht in Produktion nutzen @@ -187,6 +192,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 @@ -198,6 +204,7 @@ GenericMaskCodes5=ABC{yy}{mm}-{000000} ergibt ABC0701-000099
    %s auf Port %s ServerNotAvailableOnIPOrPort=Server nicht verfügbar unter Adresse %s auf Port %s DoTestSend=Test senden +DoTestSendHTML=HTML-Test senden UMask=Umask Parameter für neue Dateien auf Unix/Linux/BSD-Dateisystemen. UMaskExplanation=Über diesen Parameter können Sie die standardmässigen 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=Schaue die Wiki-Seite mit der Liste der Mitwirkenden und ihrer Organisation an. @@ -214,6 +221,7 @@ ConnectionTimeout=Zeitüberschreitung in der Verbindung ResponseTimeout=Antwort Timeout NoSmsEngine=Es ist kein SMS Sendedienst verfügbar.\nIn der Standardinstallation ist keiner installiert, denn das gibt es bei externen Anbietern.\nFinde deinen Anbieter via %s. PDFDesc=Globale Optionen für die PDF-Generierung +PDFOtherDesc=PDF-Option spezifisch für einige Module PDFAddressForging=Regeln für den Adressbereich HideAnyVATInformationOnPDF=Verstecke MWST - Informationen. PDFRulesForSalesTax=Regeln für die MWST @@ -238,7 +246,6 @@ ExtrafieldPassword=Passwort ExtrafieldRadio=Einfachauswahl (Radiobuttons) ExtrafieldCheckBox=Kontrollkästchen ExtrafieldCheckBoxFromList=Kontrollkästchen aus Tabelle -Computedpersistent=Berechnetes Feld speichern ComputedpersistentDesc=Berechnete Extra Felder werden in die Datenbank geschrieben. Allerdings werden sie nur neu berechnet, wenn das Objekt des Feldes verändert wird. Wenn das Feld also von Objekten oder globalen Werten abhängt, kann sein Wert daneben sein. ExtrafieldParamHelpPassword=Wenn leer, wird das Passwort unverschlüsselt geschrieben.
    Gib 'auto' an für die Standardverschlüsselung - es wird nur der Hash ausgelesen und man kann das Passwort unmöglich herausfinden. ExtrafieldParamHelpselect=Parameterlisten müssen das Format Schlüssel,Wert haben

    zum Beispiel:
    1,Wert1
    2,Wert2
    3,Wert3
    ...

    Um die Liste in Abhängigkeit zu einer anderen zu haben:
    1,Wert1|parent_list_code:parent_key
    2,Wert2|parent_list_code:parent_key @@ -249,6 +256,7 @@ SetAsDefault=Als Standard definieren InstalledInto=Installiert im Verzeichnis %s BarcodeInitForThirdparties=Barcode Init. für alle Partner BarcodeInitForProductsOrServices=Alle Strichcodes für Produkte oder Services initialisieren oder zurücksetzen +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Alle aktuellen Barcode-Werte löschen ConfirmEraseAllCurrentBarCode=Wirklich alle aktuellen Barcode-Werte löschen? AllBarcodeReset=Alle Barcode-Werte wurden entfernt @@ -275,6 +283,7 @@ 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 +ProjectIsRequiredOnExpenseReports=Das Projekt ist obligatorisch für die Erfassung einer Spesenabrechnung AttachMainDocByDefault=Setzen Sie diesen Wert auf 1, wenn Sie das Hauptdokument standardmässig per E-Mail anhängen möchten (falls zutreffend). davDescription=WebDAV Server einrichten DAVSetup=Einstellungen de Moduls "DAV" @@ -292,13 +301,14 @@ Module20Desc=Angeboteverwaltung Module22Desc=E-Mail-Kampagnenverwaltung Module25Desc=Kunden - Auftragsverwaltung Module40Name=Lieferanten -Module43Name=Debug-Leiste Module43Desc=Ein Tool für Entwickler, die Ihrem Browser eine Debug-Leiste hinzufügen. Module49Desc=Bearbeiterverwaltung Module50Desc=Produkteverwaltung +Module51Name=Postwurfsendungen Module52Name=Produktbestände Module52Desc=Lagerverwaltung Module53Desc=Dienstleistungen +Module54Desc=Verwaltung von Verträgen (Dienstleistungen oder wiederkehrende Abonnements) Module55Desc=Barcode- oder QR-Code-Verwaltung Module70Name=Arbeitseinsätze Module70Desc=Serviceverwaltung @@ -308,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 @@ -315,6 +327,7 @@ Module330Desc=Erstellen Sie Verknüpfungen zu den internen oder externen Seiten, Module400Name=Projekte oder Chancen Module400Desc=Management von Projekten, Interessenten/Chancen und/oder Aufgaben. Sie können auch jedes beliebige Element (Rechnung, Auftrag, Offerte, Intervention,...) einem Projekt zuordnen und erhalten eine Querschnittsansicht aus der Projektsicht. Module500Name=Steuern und Sonderausgaben +Module510Name=Löhne Module510Desc=Erfassen und Verfolgen von Vergütungen der Mitarbeiter Module520Name=Kredite Module600Desc=Ereignisbasierte E-Mail - Benachrichtigungen
    • Für Benutzer, gemäss Einstellungen im Benutzerprofil
    • Für Geschäftspartner, gemäss Einstellungen in Partnerkontakten
    • Für selbstgewählte E-Mail Adressen
    @@ -326,11 +339,11 @@ Module1120Desc=Lieferanten - Offerten und Preise einholen. Module1200Desc=Mantis-Integation Module1520Desc=E-Mail Kampagnendokument erstellen Module1780Name=Kategorien/#tags +Module2000Name=FCKeditor Module2000Desc=Ermöglicht die Bearbeitung von Textfeldern mit dem CKEditor (html). 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.) @@ -358,11 +371,18 @@ Permission62=Leistungen erstellen/bearbeiten Permission64=Interventionen löschen Permission76=Daten exportieren Permission87=Kundenaufträge abschliessen -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 -Permission144=Löschen Sie alle Projekte und Aufgaben (einschliesslich privater Projekte in denen ich kein Kontakt bin) +Permission91=Sozialabgaben, Steuern und Mehrwertsteuer einsehen +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 @@ -373,32 +393,33 @@ Permission192=Leitungen erstellen 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 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) +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 @@ -408,7 +429,9 @@ 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 @@ -430,6 +453,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 @@ -437,6 +461,7 @@ InfoOS=Infos OS InfoWebServer=Infos Webserver InfoDatabase=Infos Datenbank InfoPHP=Infos PHP +InfoPerf=Leistungs-Informationen BrowserName=Browser Name AccountantDesc=Wenn Sie einen externen Buchhalter haben, können Sie hier seine Informationen bearbeiten. TriggerDisabledByName=Trigger in dieser Datei sind durch das -NORUN-Suffix in ihrem Namen deaktviert. @@ -447,24 +472,32 @@ 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) SendmailOptionNotComplete=Achtung, auf einigen Linux-Systemen, E-Mails von Ihrem E-Mail zu senden, sendmail Ausführung Setup muss conatins Option-ba (Parameter mail.force_extra_parameters in Ihre php.ini-Datei). Wenn einige Empfänger niemals E-Mails erhalten, versuchen, diese Parameter mit PHP mail.force_extra_parameters =-ba) zu bearbeiten. TranslationOverwriteDesc=Sie können Zeichenketten durch Füllen der folgenden Tabelle überschreiben. Wählen Sie Ihre Sprache aus dem "%s" Drop-Down und tragen Sie den Schlüssel in "%s" und Ihre neue Übersetzung in "%s" ein. NewTranslationStringToShow=Neue Übersetzungen anzeigen OnlyFollowingModulesAreOpenedToExternalUsers=Hinweis: Nur die folgenden Module sind für externe Nutzer verfügbar (unabhängig von der Berechtigung dieser Benutzer), und das auch nur, wenn die Rechte zugeteilt wurden: GetBarCode=Erhalten Sie einen Barcode +UsersSetup=Benutzermoduleinstellungen UserMailRequired=E-Mail für neue Benutzer als Pflichtfeld setzen 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 ProposalsNumberingModules=Angebotsnumerierungs-Module ProposalsPDFModules=PDF-Anbebotsmodule 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 @@ -494,14 +527,15 @@ ApplicativeCache=Applicative Cache MemcachedNotAvailable=Kein Cache Anwendung gefunden. \nSie können die Leistung durch die Installation des Cache-Server Memcached und die Aktivierung des Anwendungs Cache Modul\n
    hier mehr Informationen http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    \nverbessern.\nBeachten Sie, dass viele Billig-Provider keine solche Cache-Server in ihrer Infrastruktur anbieten. MemcachedModuleAvailableButNotSetup=Module memcached für applicative Cache gefunden, aber Setup-Modul ist nicht vollständig. MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.. +ProductSetup=Produktmoduleinstellungen ServiceSetup=Leistungen Modul Setup -SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte -SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Geschäftspartner +ProductServiceSetup=Produkte und Leistungen Module Einstellungen 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 ErrorUnknownSyslogConstant=Konstante %s ist nicht als Protkoll-Konstante definiert CompressSyslogs=Hier kannst du Logdateien sichern. +DonationsSetup=Spendenmoduleinstellungen BarcodeSetup=Barcode-Einstellungen BarcodeEncodeModule=Barcode-Erstellungsmodul ChooseABarCode=Wählen sie einen Barcode @@ -513,23 +547,41 @@ 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 DetailLangs=Sprachdateiname für Bezeichnungsübersetzung OptionVatMode=MwSt. fällig 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 BankOrderESDesc=Spanisch Anzeigereihenfolge ChequeReceiptsNumberingModule=Modul Cheques - Verwaltung MultiCompanySetup=Multi-Company-Moduleinstellungen SuppliersSetup=Modul Lieferanten einrichten TestGeoIPResult=Test einer Umwandlung IP -> Land +ProjectsSetup=Projekteinstellungenmodul TasksNumberingModules=Aufgaben-Nummerierungs-Modul +AlwaysEditable=kann immer bearbeitet werden MAIN_APPLICATION_TITLE=Erzwinge sichtbaren Anwendungsnamen (Warnung: Setzen Ihres eigenen Namen hier, kann Autofill Login-Funktion abbrechen, wenn Sie DoliDroid Anwendung nutzen) NbMajMin=Mindestanzahl Grossbuchstaben +SalariesSetup=Einstellungen des Gehaltsmodul TemplatePDFExpenseReports=Dokumentvorlagen zur Spesenabrechnung Dokument erstellen ExpenseReportsRulesSetup=Modul Spesenabrechnungen (Regeln) einrichten ExpenseReportNumberingModules=Modul Spesenabrechnung (Numerierung) @@ -543,7 +595,7 @@ MailToSendProposal=Angebote Kunde MailToSendOrder=Kundenbestellungen MailToSendIntervention=Arbeitseinsätze MailToSendReception=Lieferungen -MailToThirdparty=Geschäftspartner +MailToExpenseReport=Spesenrapporte ModelModulesProduct=Vorlage für Produktdokumente SeeSubstitutionVars=Siehe * für eine Liste der Verfügbaren Variablen AddRemoveTabs=Tab hinzufügen oder entfernen @@ -577,16 +629,13 @@ NewEmailCollector=Neuer E-Mail - Sammeldienst EMailHost=IMAP Server Host EmailCollectorConfirmCollectTitle=E-Mail - Sammeldienst Bestätigung NoNewEmailToProcess=Ich habe keinen neuen E-Mails (die zu den Filtern passen) abzuarbeiten. -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. DisabledResourceLinkContact=Verknüpfungsmöglichkeit zwischen Ressource und Kontakt unterbinden. ConfirmUnactivation=Bestätige das Zurücksetzen des Moduls. -DebugBar=Debug-Leiste ExportSetup=Modul Daten-Export einrichten 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;'
    FeatureNotAvailableWithReceptionModule=Diese Funktion ist nicht verfügbar, wenn das Modul 'Lieferungen' aktiv ist DictionaryProductNature=Produktart -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/de_CH/assets.lang b/htdocs/langs/de_CH/assets.lang index 494d9491e34..4980d74fdb3 100644 --- a/htdocs/langs/de_CH/assets.lang +++ b/htdocs/langs/de_CH/assets.lang @@ -1,27 +1,11 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Vermögen -NewAsset =Neuer Vermögenswert -AccountancyCodeAsset =Buchungskonto (Vermögenswert) -AccountancyCodeDepreciationAsset =Abschreibungskonto (Sachwert) -AccountancyCodeDepreciationExpense =Abschreibungskonto (Aufwand) -NewAssetType=Neuer Vermögenstyp -AssetsTypeSetup=Vermögenstyp einrichten -AssetTypeModified=Vermögenstyp geändert. -AssetType=Vermögenstyp +NewAsset=Neuer Vermögenswert AssetsLines=Vermögen DeleteAnAssetType=Vermögenstyp löschen ConfirmDeleteAssetType=Bist du sicher, dass du diesen Vermögenstyp löschen willst? ShowTypeCard=Typ anzeigen '%s' -ModuleAssetsName =Vermögen -ModuleAssetsDesc =Beschreibung Vermögenswerte -AssetsSetup =Einstellungen Vermögenswerte -AssetsSetupPage =Einstellungen Vermögenswerte -ExtraFieldsAssetsType =Ergänzende Attribute (Vermögenstyp) AssetsType=Vermögenstyp AssetsTypeId=ID Vermögenswert AssetsTypeLabel=Beschreibung Vermögenstyp AssetsTypes=Vermögenstypen -MenuAssets =Vermögen -MenuNewAsset =Neuer Vermögenswert -MenuTypeAssets =Vermögenstype -NewAsset=Neuer Vermögenswert +AssetType=Vermögenstyp diff --git a/htdocs/langs/de_CH/banks.lang b/htdocs/langs/de_CH/banks.lang index 851833d8bf9..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 @@ -33,7 +29,6 @@ BankTransaction=Transaktion ListTransactions=Zeige Transaktionen ListTransactionsByCategory=Zeige Transaktionen nach Kategorie TransactionsToConciliate=Auszugleichende Transaktionen -TransactionsToConciliateShort=Auszugleichen Conciliable=Ausgleichsfähig SaveStatementOnly=Speichere nur den Kontoauszug ReconciliationLate=Ausgleich verspätet @@ -43,11 +38,8 @@ AddBankRecord=Neue Transaktion AddBankRecordLong=Neue Transaktion manuell Conciliated=Ausgeglichen BankLineConciliated=Transaktion mit Bankbeleg ausgeglichen -Reconciled=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/companies.lang b/htdocs/langs/de_CH/companies.lang index 4917657f146..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 @@ -93,7 +91,10 @@ ProfId3DZ=TIN – Steuer-Identifikationsnummer (EU) VATIntra=MWST - Nummer VATIntraShort=MWST - Nummer VATReturn=MWST Rückerstattung +ProspectCustomer=Interessent / Kunde CustomerCard=Kundenkarte +CustomerRelativeDiscount=Kundenrabatt relativ +SupplierRelativeDiscount=Relativer Lieferantenrabatt CustomerRelativeDiscountShort=Rabatt rel. CustomerAbsoluteDiscountShort=Rabatt abs. CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmässig keinen relativen Rabatt @@ -105,6 +106,7 @@ HasNoAbsoluteDiscountFromSupplier=Du hast keine Gutschriften von diesem Lieferan HasAbsoluteDiscountFromSupplier=Du hast bei diesem Lieferanten noch %s %s Gutschriften (Gutscheine oder Anzahlungen) zur Verfügung. HasDownPaymentOrCommercialDiscountFromSupplier=Du hast bei diesem Lieferanten noch %s %s Gutschriften (kaufmännisch, Anzahlungen) zur Verfügung. HasCreditNoteFromSupplier=Du hast Gutscheine über %s%s von diesem Lieferanten. +CompanyHasNoAbsoluteDiscount=Dieser Kunde hat keine Rabattgutschriften zur Verfügung CustomerAbsoluteDiscountAllUsers=Absolute Kundenrabatte (von allen Vertretern gewährt) CustomerAbsoluteDiscountMy=Absolute Kundenrabatte (von dir gewährt) SupplierAbsoluteDiscountAllUsers=Absolute Lieferantenrabatte (von allen Vertretern angegeben) @@ -113,15 +115,16 @@ 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 SupplierCodeDesc=Lieferantennummer, eindeutig für jeden Lieferanten +RequiredIfCustomer=Erforderlich falls Geschäftspartner Kunde oder Interessent ist RequiredIfSupplier=Erforderlich, wenn der Partner Lieferant ist -ListOfThirdParties=Liste der Geschäftspartner +ProspectToContact=Lead zu kontaktieren +CompanyDeleted=Firma "%s" aus der Datenbank gelöscht. ContactsAllShort=Alle (Kein Filter) ContactForOrdersOrShipments=Bestellungs- oder Lieferkontakt ContactForProposals=Offertskontakt @@ -154,6 +157,7 @@ ProspectsByStatus=Leads nach Status NoParentCompany=Keine Mutterfirma ContactNotLinkedToCompany=Kontakt keinem Geschäftspartner zugeordnet DolibarrLogin=Dolibarr Benutzername +NoDolibarrAccess=Kein Zugang ExportDataset_company_1=Geschäftspartner und ihre Eigenschaften ExportDataset_company_2=Kontakte und deren Eigenschaften ImportDataset_company_1=Geschäftspartner und deren Eigenschaften @@ -168,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/cron.lang b/htdocs/langs/de_CH/cron.lang index 349dd006fdc..f20e95a7393 100644 --- a/htdocs/langs/de_CH/cron.lang +++ b/htdocs/langs/de_CH/cron.lang @@ -1,10 +1,6 @@ # Dolibarr language file - Source file is en_US - cron CronMethodDoesNotExists=Klasse %s hat keine %s Methode -EnabledAndDisabled=Aktiviert und deaktiviert CronDelete=cronjobs löschen -CronDtStart=Nicht vor -CronDtEnd=Nicht nach CronPriority=Rang JobFinished=Job gestarted und beendet -JobDisabled=Job deaktiviert MakeLocalDatabaseDumpShort=Lokale Datenbanksicherung diff --git a/htdocs/langs/de_CH/deliveries.lang b/htdocs/langs/de_CH/deliveries.lang index 0c269ca344e..f052bc584a1 100644 --- a/htdocs/langs/de_CH/deliveries.lang +++ b/htdocs/langs/de_CH/deliveries.lang @@ -7,7 +7,6 @@ ValidateDeliveryReceiptConfirm=Bist du sicher, dass du diesen Lieferschein frei DeleteDeliveryReceiptConfirm=Bist du sicher, dass du den Lieferschein %s löschen willst? TrackingNumber=Sendungsverfolgungsnummer DeliveryNotValidated=Die Lieferung ist nicht freigegeben -StatusDeliveryValidated=Erhalten NameAndSignature=Name / Unterschrift Deliverer=Lieferant ErrorStockIsNotEnough=Der Lagerbestand ist zu klein diff --git a/htdocs/langs/de_CH/ecm.lang b/htdocs/langs/de_CH/ecm.lang index 3b0af95b9ed..57cb0298e43 100644 --- a/htdocs/langs/de_CH/ecm.lang +++ b/htdocs/langs/de_CH/ecm.lang @@ -1,8 +1,6 @@ # Dolibarr language file - Source file is en_US - ecm ECMSectionManual=Manuelle Ordner ECMSectionAuto=Automatische Ordner -ECMSectionsManual=Manuelle Hierarchie -ECMSectionsAuto=Automatische Hierarchie ECMSections=Ordner ECMAddSection=Ordner hinzufügen ECMNbOfFilesInDir=Anzahl der Dateien in Ordner 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/main.lang b/htdocs/langs/de_CH/main.lang index be466d08b88..2d6cc56c9dd 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -115,7 +115,6 @@ Second=Zweitens Morning=Morgen Afternoon=Nachmittag MinuteShort=min -CurrencyRate=Wechselkurs DefaultValues=Standardwerte PriceCurrency=Währung UnitPriceHTCurrency=Nettopreis @@ -181,13 +180,10 @@ DolibarrWorkBoard=Offene Aktionen NoOpenedElementToProcess=Keine offenen Aktionen Categories=Suchwörter/Kategorien Category=Stichwort / Kategorie -FromDate=Von FromLocation=Von OtherInformations=Weitere Informationen -Qty=Anz. Refused=zurückgewiesen ResultKo=Fehlschlag -Validated=Freigegeben OpenAll=Offen (alle Typen) ClosedAll=Geschlossen (alle Typen) Size=Grösse @@ -205,7 +201,6 @@ 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 @@ -326,10 +321,8 @@ 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$)
    -SearchIntoThirdparties=Geschäftspartner SearchIntoCustomerOrders=Kundenbestellungen SearchIntoInterventions=Arbeitseinsätze -SearchIntoCustomerShipments=Kundenlieferungen SearchIntoExpenseReports=Spesenrapporte SearchIntoLeaves=Ferien SearchIntoVendorPayments=Lieferantenzahlungen 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/products.lang b/htdocs/langs/de_CH/products.lang index e971ff95919..33a70808727 100644 --- a/htdocs/langs/de_CH/products.lang +++ b/htdocs/langs/de_CH/products.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Produkt-Nr. Create=Erstelle -Reference=Referenz ProductVatMassChange=Globale MWST - Änderung ProductVatMassChangeDesc=Dieses Werkzeug ändert den MWST Satz aller Produkte und Dienstleistungen im ganzen System! ProductAccountancyBuyCode=Buchhaltungskonto (Einkauf) @@ -32,8 +31,6 @@ SellingPriceTTC=Verkaufspreis (inkl. MwSt.) SellingMinPriceTTC=Mindestverkaufspreis (inkl. MWST) CostPriceDescription=In dieses Feld kannst du deinen freien Durchschnittspreis dieses Produktes eintragen.\nZum Beispiel den durchschnittlichen EP plus deine Verarbeitungs und Vertriebskosten. CostPriceUsage=Dieser Wert hilft bei der Margenbestimmung -PurchasedAmount=Eingekaufte Menge -MinPrice=Mindestverkaufspreis EditSellingPriceLabel=Preisschild anpassen CantBeLessThanMinPrice=Der Verkaufspreis darf den Mindestpreis für dieses Produkt (%s ohne MwSt.) nicht unterschreiten. Diese Meldung kann auch angezeigt werden, wenn Sie einen zu hohen Rabatt geben. SupplierRef=Verkäufer SKU (Artikelnummer) diff --git a/htdocs/langs/de_CH/projects.lang b/htdocs/langs/de_CH/projects.lang index fc00e2d4799..96bb51653c7 100644 --- a/htdocs/langs/de_CH/projects.lang +++ b/htdocs/langs/de_CH/projects.lang @@ -1,33 +1,30 @@ # Dolibarr language file - Source file is en_US - projects ProjectRef=Chance ProjectsArea=Projektbereiche -PrivateProject=Projekt Kontakte -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 CloseAProject=Projekt schliessen NoTasks=Keine Aufgaben für dieses Projekt ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt (%s akutelle Aufgaben) und alle Zeitaufwände. +CloneNotes=Dupliziere Hinweise CloneTaskFiles=Aufgabe (n) clonen beigetreten Dateien (falls Aufgabe (n) geklont) ProjectModifiedInDolibarr=Projekt %s bearbeitet ProjectReferers=Verknüpfte Objekte +ProjectMustBeValidatedFirst=Projekt muss erst bestätigt werden InputPerDay=Eingang pro Tag InputPerWeek=Eingang pro Woche ResourceNotAssignedToProject=Zugewiesen zu Projekt ResourceNotAssignedToTheTask=Nicht der Aufgabe zugewiesen +ProjectOverview=Projekt-Übersicht TimeSpentForIntervention=Zeitaufwände TimeSpentForInvoice=Zeitaufwände NewInter=Neuer Einsatz 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/supplier_proposal.lang b/htdocs/langs/de_CH/supplier_proposal.lang index f1b50555dd7..e62f7e71901 100644 --- a/htdocs/langs/de_CH/supplier_proposal.lang +++ b/htdocs/langs/de_CH/supplier_proposal.lang @@ -1,17 +1,13 @@ # Dolibarr language file - Source file is en_US - supplier_proposal SupplierProposal=Lieferantenofferten -supplier_proposalDESC=Preisanfragen an Lieferanten verwalten -SupplierProposalNew=Neue Preisanfrage CommRequest=Generelle Preisanfrage CommRequests=Generelle Preisanfragen SearchRequest=Anfragen finden DraftRequests=Entwürfe Preisanfragen SupplierProposalsDraft=Lieferanten - Richtofferten LastModifiedRequests=Die letzten %s geänderten Offertanfragen -RequestsOpened=Offene Preisanfragen SupplierProposalArea=Lieferantenangebote SupplierProposalShort=Lieferantenangebote -NewAskPrice=Neue Preisanfrage ShowSupplierProposal=Preisanfrage zeigen SupplierProposalRefFourn=Lieferantennummer SupplierProposalRefFournNotice=Bevor die Preisanfrage mit "Angenommen" abgeschlossen wird, sollten Referenzen zum Lieferant eingeholt werden. diff --git a/htdocs/langs/de_CH/suppliers.lang b/htdocs/langs/de_CH/suppliers.lang index a026cbf2f84..8890ed436ac 100644 --- a/htdocs/langs/de_CH/suppliers.lang +++ b/htdocs/langs/de_CH/suppliers.lang @@ -3,7 +3,6 @@ ShowSupplierInvoice=Lieferantenrechnung anzeigen NewSupplier=Erzeuge Lieferant ListOfSuppliers=Lieferantenliste ShowSupplier=Lieferant anzeigen -BuyingPriceMin=Bester Einkaufspreis BuyingPriceMinShort=Bester Einkaufspreis TotalBuyingPriceMinShort=Summe der Einkaufspreise der Unterprodukte TotalSellingPriceMinShort=Summe der Verkaufspreise der Unterprodukte diff --git a/htdocs/langs/de_CH/users.lang b/htdocs/langs/de_CH/users.lang index 6c51f3b3342..9f20d097abd 100644 --- a/htdocs/langs/de_CH/users.lang +++ b/htdocs/langs/de_CH/users.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - users +HRMArea=Personalmanagment - Übersicht UserCard=Benutzer-Karte GroupCard=Gruppe-Karte SendNewPasswordLink=Link zum Zurücksetzen des Passworts @@ -30,13 +31,14 @@ UserWillBeExternalUser=Erstellter Benutzer ist ein externer Benutzer (da mit ein ConfirmCreateContact=Willst du wirklich ein Benutzerkonto für diesen Kontakt erstellen? ConfirmCreateLogin=Willst du wirklich ein Benutzerkonto für dieses Mitglied erstellen? ConfirmCreateThirdParty=Willst du wirklich für dieses Mitglied einen Partner erzeugen? +LoginToCreate=Zu erstellende Anmeldung NameToCreate=Name des neuen Geschäftspartners YourRole=Ihre Rolle UseTypeFieldToChange=Nutzen sie das Feld "Typ" zum ändern WeeklyHours=Geleistete Stunden pro Woche DisabledInMonoUserMode=Im Wartungsmodus deaktiviert UserAccountancyCode=Buchhaltungskonto zum Benutzer -DateEmploymentstart=Datum der Anstellung +DateEmploymentStart=Datum der Anstellung DateEmploymentEnd=Datum des Austrittes CantDisableYourself=Du kannst dein eigenes Benutzerkonto nicht löschen. ForceUserExpenseValidator=Anderen Prüfer für Spesenabrechnungen bestimmen. diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index c04ec8771b4..eeb63ab1489 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,9 +48,10 @@ 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 (Liste in CSV 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. -VueByAccountAccounting=Ansicht nach Buchhaltungskonto +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 MainAccountForCustomersNotDefined=Standardkonto für Kunden im Setup nicht definiert @@ -62,173 +63,176 @@ MainAccountForSubscriptionPaymentNotDefined=Standardkonto für wiederkehrende Za AccountancyArea=Bereich Buchhaltung AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten: AccountancyAreaDescActionOnce=Die folgenden Schritte werden üblicherweise nur einmalig durchgeführt -AccountancyAreaDescActionOnceBis=Mit den Einstellungen in den folgenden Schritten legen Sie für verschiedene Vorgänge Standardkonten fest. Dadurch werden Ihnen später bei der Übernahme von Buchungen in das Journal bzw. Hauptbuch sofort die passenden Konten vorgeschlagen, was Ihnen beim Buchen viel Zeit spart. +AccountancyAreaDescActionOnceBis=Die nächsten Schritte sollten durchgeführt werden, um Ihnen in Zukunft Zeit zu sparen, indem Ihnen automatisch das passende Standardkonto für eine Buchung vorgeschlagen wird, wenn Sie Daten in die Buchhaltung übertragen AccountancyAreaDescActionFreq=Diese Schritte sind regelmäßig durchzuführen – je nach Unternehmensgröße monatlich, wöchentlich oder täglich -AccountancyAreaDescJournalSetup=SCHRITT %s: Liste der benötigten Buchhaltungsjournale konfigurieren 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. +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ä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: Definition der Buchhaltungskonten für die verschiedenen Arten der Spesenabrechnung. Kann im Menü %s geändert werden. -AccountancyAreaDescSal=SCHRITT %s: Buchhaltungskonto für Lohnzahlungen definieren. Kann im Menü %s geändert werden. -AccountancyAreaDescContrib=SCHRITT %s: Definition der Buchhaltungskonten für besondere Aufwendungen (Sonstige Steuern) . Kann im Menü %s geändert werden. -AccountancyAreaDescDonation=SCHRITT %s: Definition der Buchhaltungskonten für Spenden. Kann im Menü %s geändert werden. +AccountancyAreaDescExpenseReport=SCHRITT %s: Festlegung der Standardbuchhaltungskonten für die verschiedenen Arten der Spesenabrechnung. Verwenden Sie dazu den Menüeintrag %s. +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 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 Dienstleistungen ü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: Vorhandene Transaktionen hinzufügen oder bearbeiten sowie Berichte und Exporte generieren. +AccountancyAreaDescAnalyze=SCHRITT %s: Transaktionen hinzufügen oder bearbeiten sowie Berichte und Exporte generieren. AccountancyAreaDescClosePeriod=SCHRITT %s: Schließen Sie die Periode, damit wir in Zukunft keine Veränderungen vornehmen können. 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 -AccountAccounting=Buchhaltungskonto +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 -AccountAccountingSuggest=Buchhaltungskonto Vorschlag +ShowAccountingAccountInLedger=Buchungskonto im Hauptbuch anzeigen +ShowAccountingAccountInJournals=Buchungskonto in Journalen anzeigen +AccountAccountingSuggest=Vorgeschlagenes Buchungskonto MenuDefaultAccounts=Standardkonten MenuBankAccounts=Bankkonten -MenuVatAccounts=Umsatzsteuer-Konten +MenuVatAccounts=Umsatzsteuerkonten MenuTaxAccounts=Steuerkonten MenuExpenseReportAccounts=Spesenkonten -MenuLoanAccounts=Darlehens-Konten -MenuProductsAccounts=Produkterlös-Konten +MenuLoanAccounts=Darlehenskonten +MenuProductsAccounts=Produkterlöskonten MenuClosureAccounts=Abschlusskonten -MenuAccountancyClosure=Abschluss -MenuAccountancyValidationMovements=Bewegungen validieren +MenuAccountancyClosure=Festschreibung +MenuAccountancyValidationMovements=Buchungen freigeben ProductsBinding=Produktkonten -TransferInAccounting=Überweisung im Rechnungswesen -RegistrationInAccounting=Registrierung in der Buchhaltung -Binding=Zu Konten zuordnen -CustomersVentilation=Kundenrechnungen zuordnen -SuppliersVentilation=Lieferantenrechnungen zuordnen -ExpenseReportsVentilation=Spesenabrechnungen zuordnen +TransferInAccounting=Übernahme in die Buchhaltung +RegistrationInAccounting=Erfassung in der Buchhaltung +Binding=Kontieren +CustomersVentilation=Kundenrechnungen kontieren +SuppliersVentilation=Lieferantenrechnungen kontieren +ExpenseReportsVentilation=Spesenabrechnungen kontieren CreateMvts=neue Transaktion erstellen UpdateMvts=Änderung einer Transaktion ValidTransaction=Transaktion bestätigen -WriteBookKeeping=Transaktionen in der Buchhaltung registrieren +WriteBookKeeping=Transaktionen in der Buchhaltung erfassen Bookkeeping=Hauptbuch BookkeepingSubAccount=Nebenbuch -AccountBalance=Saldo Sachkonten +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=mit dem Buchhaltungskonto verbundene Zeilen -TotalForAccount=Buchhaltungskonto Summe +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_DONE=Beginnen Sie mit der Sortierung der Seite " Zuordnung erledigt " nach den neuesten Elementen +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_MISCELLANEOUS_JOURNAL=Variajournal ACCOUNTING_EXPENSEREPORT_JOURNAL=Spesenabrechnungsjournal -ACCOUNTING_SOCIAL_JOURNAL=Sozialabgaben-Journal -ACCOUNTING_HAS_NEW_JOURNAL=Journal für Eröffnungsbuchungen +ACCOUNTING_SOCIAL_JOURNAL=Sozialabgabenjournal +ACCOUNTING_HAS_NEW_JOURNAL=Eröffnungsjournal 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 TransitionalAccount=Überweisungskonto -ACCOUNTING_ACCOUNT_SUSPENSE=Buchhaltungskonto in Wartestellung -DONATION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Spenden -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Abonnements +ACCOUNTING_ACCOUNT_SUSPENSE=Verrechnungskonto/Zwischenkonto +DONATION_ACCOUNTINGACCOUNT=Buchungskonto für Spenden +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Buchungskonto für Abonnements -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standard-Buchhaltungskonto zur Registrierung der Kundeneinzahlung +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standard-Buchungskonto zur Erfassung einer Kundenanzahlung +UseAuxiliaryAccountOnCustomerDeposit=Debitorenkonto als Einzelkonto im Nebenbuch für Anzahlungspositionen hinterlegen (bei Deaktivierung bleibt Einzelkonto für Anzahlungspositionen leer) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Standard-Buchungskonto zur Erfassung der Lieferantenkaution +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=Standard-Buchungskonto für gekaufte Produkte \n(wenn nicht anders im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Standard-Buchungskonto für gekaufte Produkte in der EWG (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Standard-Buchungskonto für gekaufte und aus der EWG importierte Produkte (wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard-Buchungskonto für die verkauften Produkte (wenn nicht anders im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Standard-Buchungskonto für in die EWG verkaufte Produkte \n(wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Standard-Buchungskonto für außerhalb der EWG verkaufte Produkte [EXPORT] \n(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=Standard-Buchungskonto für die gekauften Leistungen (wenn nicht anders im Produktblatt definiert) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Standard-Buchungskonto für eingekaufte Dienstleistungen in der EWG (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Standard-Buchungskonto für die gekauften und aus der EWG importierten Dienstleistungen (wird verwendet, wenn nicht im Leistungsblatt definiert) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard-Buchungskonto für die verkauften Leistungen (wenn nicht anders im Produktblatt definiert) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Standard-Buchungskonto für in die EWG verkaufte Dienstleistungen \n(wird verwendet, wenn nicht im Produktblatt definiert) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Standard-Buchungskonto für außerhalb der EWG verkaufte Dienstleistungen [EXPORT] \n(wird verwendet, wenn nicht im Produktblatt definiert) Doctype=Dokumententyp Docdate=Datum Docref=Referenz -LabelAccount=Konto-Beschriftung -LabelOperation=Bezeichnung der Operation +LabelAccount=Kontobezeichnung +LabelOperation=Buchungstext Sens=Richtung -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=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=Anz. Buchungen +TransactionNumShort=Buchungsnr. AccountingCategory=Benutzerdefinierte Gruppe 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=Einige Operationszeilen aus der Buchhaltung löschen +DeleteMvt=Zeilen aus der Buchhaltung löschen DelMonth=Monat zum Löschen DelYear=Jahr zu entfernen DelJournal=Journal zu entfernen -ConfirmDeleteMvt=Dadurch werden alle Vorgangszeilen der Buchhaltung für das Jahr / den Monat und / oder für ein bestimmtes Journal gelöscht (mindestens ein Kriterium ist erforderlich). Sie müssen die Funktion '%s' erneut verwenden, um den gelöschten Datensatz wieder im Hauptbuch zu haben. -ConfirmDeleteMvtPartial=Dadurch wird die Transaktion aus der Buchhaltung gelöscht (alle mit derselben Transaktion verknüpften Vorgangszeilen werden gelöscht). +ConfirmDeleteMvt=Dadurch werden alle Buchungszeilen für das Jahr/den Monat und/oder für ein bestimmtes Journal gelöscht (mindestens ein Kriterium ist erforderlich). Sie müssen die Funktion „%s“ erneut verwenden, um den gelöschten Datensatz wieder im Hauptbuch zu haben. +ConfirmDeleteMvtPartial=Hierdurch wird die Transaktion aus der Buchhaltung gelöscht (alle Zeilen, die sich auf dieselbe Transaktion beziehen, werden gelöscht). FinanceJournal=Finanzjournal ExpenseReportsJournal=Spesenabrechnungsjournal DescFinanceJournal=Finanzjournal inklusive aller Arten von Zahlungen mit Bankkonto -DescJournalOnlyBindedVisible=Dies ist eine Ansicht von Aufzeichnungen, die an ein Buchhaltungskonto gebunden sind und 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 @@ -238,100 +242,102 @@ CustomerInvoicePayment=Zahlung des Rechnungskunden ThirdPartyAccount=Geschäftspartner-Konto NewAccountingMvt=Erstelle Transaktion NumMvts=Transaktionsnummer -ListeMvts=Liste der Bewegungen +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=Kontieren Sie hier in die Liste Kundenrechnungszeilen gebunden (oder nicht), zu ihren Erlös Buchhaltungs-Konten -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 in den Produkten und Leistungen die entsprechenden Buchungskonten 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=Liste der Positionen der Kundenrechnungen und die Buchungskonten der Produkte +DescVentilTodoCustomer=Nicht bereits kontierte Rechnungspositionen mit einem Erlös-Konto der Buchhaltung kontieren +ChangeAccount=Buchungskonto für Produkte/Leistungen für die ausgewählten Positionen in das folgende Buchungskonto ändern: Vide=- -DescVentilSupplier=Konsultieren Sie hier die Liste der Lieferantenrechnungspositionen, die an ein Produktbuchhaltungskonto gebunden oder noch nicht gebunden sind (nur Datensätze, die noch nicht in der Buchhaltung übertragen wurden, sind sichtbar). -DescVentilDoneSupplier=Konsultieren Sie hier die Liste der Kreditorenrechnungszeilen und deren Buchhaltungskonto +DescVentilSupplier=Übersicht der unkontierten und kontierten Positionen aus Lieferantenrechnungen (nur Datensätze, die noch nicht in die Buchhaltung übertragen wurden, sind sichtbar). +DescVentilDoneSupplier=Sehen Sie hier die Liste der Lieferanten-/Kreditoren-Rechnungspositionen und deren Buchungskonten DescVentilTodoExpenseReport=Unkontierte Positionen der Spesenabrechnung kontieren -DescVentilExpenseReport=Kontieren Sie hier in der Liste Spesenabrechnungszeilen gebunden (oder nicht) zu Ihren Buchhaltungs-Konten -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 ihrer zugeordneten Buchungskonten +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 Buchungskonten -Closure=Jahresabschluss -DescClosure=Informieren Sie sich hier über die Anzahl der Bewegungen pro Monat, die nicht validiert sind und die bereits in den Geschäftsjahren geöffnet sind. -OverviewOfMovementsNotValidated=Schritt 1 / Bewegungsübersicht nicht validiert. \n(Notwendig, um ein Geschäftsjahr abzuschließen.) -AllMovementsWereRecordedAsValidated=Alle Bewegungen wurden als validiert aufgezeichnet -NotAllMovementsCouldBeRecordedAsValidated=Nicht alle Bewegungen konnten als validiert aufgezeichnet werden -ValidateMovements=Bewegungen validieren -DescValidateMovements=Jegliche Änderung oder Löschung des Schreibens, Beschriftens und Löschens ist untersagt. Alle Eingaben für eine Übung müssen validiert werden, da sonst ein Abschluss nicht möglich ist +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 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. -MvtNotCorrectlyBalanced=Der Saldo der Buchung ist nicht ausgeglichen. Haben = %s. Soll = %s +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 Einträge zum Übernehmen -ListOfProductsWithoutAccountingAccount=Liste der Produkte, die nicht an ein Buchhaltungskonto gebunden sind +NoNewRecordSaved=Keine weiteren Datensätze zu übertragen +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 -WarningRecordWithoutSubledgerAreExcluded=Achtung, alle Vorgänge ohne definiertes Nebenbuchkonto werden gefiltert und von dieser Ansicht ausgeschlossen +NotReconciled=Nicht abgeglichen +WarningRecordWithoutSubledgerAreExcluded=Achtung, alle Zeilen ohne definiertes Nebenbuchkonto werden gefiltert und von dieser Ansicht ausgeschlossen +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=Inventar +AccountingJournalType8=Bestand AccountingJournalType9=Eröffnungsbuchungen ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet AccountingAccountForSalesTaxAreDefinedInto=Hinweis: Buchaltungskonten für Steuern sind im Menü %s - %s definiert NumberOfAccountancyEntries=Anzahl der Einträge -NumberOfAccountancyMovements=Anzahl der Bewegungen +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). ## Export -NotifiedExportDate=Exportierte Zeilen als exportiert markieren (Ändern der Zeilen ist dann nicht mehr möglich) -NotifiedValidationDate=Exportierten Einträge validieren/festschreiben (Ändern oder Löschen der Zeilen ist dann nicht mehr möglich) -ConfirmExportFile=Bestätigung der Generierung der Buchhaltungsexportdatei ? +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 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 @@ -359,7 +365,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 @@ -369,43 +375,62 @@ 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 +Unlettering=Abgleich aufheben +AccountancyNoLetteringModified=Kein Abgleich geändert +AccountancyOneLetteringModifiedSuccessfully=Ein Abgleich wurde erfolgreich geändert +AccountancyLetteringModifiedSuccessfully=%s Abgleiche erfolgreich modifiziert +AccountancyNoUnletteringModified=Kein Abgleich geändert +AccountancyOneUnletteringModifiedSuccessfully=Ein Abgleich wurde erfolgreich geändert +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? +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 @@ -429,7 +454,7 @@ 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 diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index d2dbd69dd23..d1a296b7370 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -11,7 +11,7 @@ VersionExperimental=Experimentell VersionDevelopment=Entwicklung VersionUnknown=Unbekannt VersionRecommanded=Empfohlen -FileCheck=Dateigruppen Integritätsprüfungen +FileCheck= Integritätsprüfung Dateien FileCheckDesc=Dieses Tool ermöglicht es Ihnen, die Datei-Integrität und das Setup der Anwendung zu überprüfen, indem jede Datei mit der offiziellen Version verglichen wird. Der Wert einiger Setup-Konstanten kann ebenso überprüft werden. Sie können dieses Tool verwenden, um festzustellen, ob Dateien verändert wurden (z.B. durch einen Hacker). FileIntegrityIsStrictlyConformedWithReference=Dateiintegrität entspricht genau der Referenz. FileIntegrityIsOkButFilesWereAdded=Die Dateiintegritätsprüfung wurde bestanden, jedoch wurden einige neue Dateien hinzugefügt. @@ -24,7 +24,7 @@ FilesMissing=fehlende Dateien FilesUpdated=erneuerte Dateien FilesModified=geänderte Dateien FilesAdded=hinzugefügte Dateien -FileCheckDolibarr=Überprüfen Sie die Integrität von Anwendungsdateien +FileCheckDolibarr=Integrität der Anwendungsdateien überprüfen AvailableOnlyOnPackagedVersions=Die lokale Datei für die Integritätsprüfung ist nur dann verfügbar, wenn die Anwendung von einem offiziellen Paket installiert wurde XmlNotFound=XML-Integrität Datei der Anwendung ​​nicht gefunden SessionId=Session-ID @@ -45,7 +45,7 @@ PermissionsOnFile=Berechtigungen für die Datei %s NoSessionFound=Ihre PHP -Konfiguration scheint keine Auflistung aktiver Sitzungen zuzulassen. Eventuell ist die Speicherung im Verzeichnis (%s) durch fehlende Berechtigungen blockiert (zum Beispiel: Berechtigungen des Betriebssystems oder PHP open_basedir Beschränkungen). DBStoringCharset=Zeichensatz der Datenbank-Speicherung DBSortingCharset=Datenbank-Zeichensatz zum Sortieren von Daten -HostCharset=Host Zeichensatz +HostCharset=Host-Zeichensatz ClientCharset=Client-Zeichensatz ClientSortingCharset=Client Sortierreihenfolge WarningModuleNotActive=Modul %s muss aktiviert sein @@ -105,18 +105,18 @@ NextValue=Nächster Wert NextValueForInvoices=Nächster Wert (Rechnungen) NextValueForCreditNotes=Nächster Wert (Gutschriften) NextValueForDeposit=nächster Wert (Anzahlung) -NextValueForReplacements=Nächster Wert (Ersatz) +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 AntiVirusParamExample=Beispiel für einen ClamAv-Daemon: --fdpass
    Beispiel für ClamWin: --database="C:\\Programme (x86)\\ClamWin\\lib" ComptaSetup=Buchhaltungsmodul Einstellungen UserSetup=Benutzerverwaltung Einstellungen -MultiCurrencySetup=Modul Mehrfachwährungen - Einstellungen +MultiCurrencySetup=Einstellungen für das Modul Mehrfachwährungen MenuLimits=Dezimalstellen/Rundung MenuIdParent=übergeordnete Menü-ID DetailMenuIdParent=ID des übergeordneten Menüs (0 für einen Eltern-Menü) @@ -135,10 +135,10 @@ IdModule=Modul ID IdPermissions=Berechtigungs-ID LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Länderspezifische Parameter -ClientHour=Uhrzeit (Benutzer) +ClientHour=Client-Uhrzeit (Benutzer) OSTZ=Zeitzone des Serverbetriebssystems PHPTZ=Zeitzone des PHP-Server -DaylingSavingTime=Sommerzeit (Benutzer) +DaylingSavingTime=Sommerzeit CurrentHour=PHP-Zeit (Server) CurrentSessionTimeOut=Aktuelles Session-Timeout YouCanEditPHPTZ=Um eine andere PHP Zeitzone einzustellen (optional), ist es auch möglich eine Zeile, bspw. "SetEnv TZ Europe/Paris", in der Datei .htaccess hinzuzufügen. @@ -200,12 +200,12 @@ FullPathToPostgreSQLdumpCommand=Vollständiger Pfad zum pg_dump-Befehl AddDropDatabase=Befehl "DROP DATABASE" hinzufügen AddDropTable=Befehl "DROP TABLE" hinzufügen ExportStructure=Struktur -NameColumn=Name der Spalten +NameColumn=Spaltennamen einfügen ExtendedInsert=Erweiterte INSERTS -NoLockBeforeInsert=Keine Sperrebefehle für INSERT +NoLockBeforeInsert=Keine Sperrbefehle (Lock) für INSERT DelayedInsert=Verzögerte INSERTS -EncodeBinariesInHexa=Hexadezimal-Verschlüsselung für Binärdateien -IgnoreDuplicateRecords=Doppelte Zeilen Fehler ignorieren (INSERT IGNORE) +EncodeBinariesInHexa=Hexadezimal-Codierung für Binärdaten +IgnoreDuplicateRecords=Fehler zu doppelten Zeiten ignorieren (INSERT IGNORE) AutoDetectLang=Automatische Erkennung (Browser-Sprache) FeatureDisabledInDemo=Funktion in der Demoversion deaktiviert FeatureAvailableOnlyOnStable=Diese Funktion steht nur in offiziellen stabilen Versionen zur Verfügung @@ -234,7 +234,7 @@ DoliStoreDesc=DoliStore, der offizielle Marktplatz für dolibarr Module/Erweiter DoliPartnersDesc=Liste der Unternehmen, die speziell entwickelte Module oder Funktionen bereitstellen.
    Hinweis: Da Dolibarr eine Open Source-Anwendung ist, kann jeder, der Erfahrung mit PHP-Programmierung hat, ein Modul entwickeln. WebSiteDesc=Externe Webseiten mit zusätzlichen Add-on (nicht zum Grundumfang gehörend) Modulen ... DevelopYourModuleDesc=einige Lösungen um eigene Module zu entwickeln ... -URL=Link +URL=URL RelativeURL=Relative URL BoxesAvailable=Verfügbare Widgets BoxesActivated=Aktivierte Widgets @@ -281,7 +281,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 +292,19 @@ 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) 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 +312,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 Programm sendmail 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 @@ -326,7 +326,7 @@ ModuleFamilyCrm=Kundenbeziehungsmanagement (CRM) ModuleFamilySrm=Lieferantenmanagement (VRM - Vendor Relationship Management) ModuleFamilyProducts=Produktmanagement (WW/PM) ModuleFamilyHr=Personalmanagement (PM/HR) -ModuleFamilyProjects=Projektverwaltung / Zusammenarbeit +ModuleFamilyProjects=Projektverwaltung/Zusammenarbeit ModuleFamilyOther=Andere ModuleFamilyTechnic=Multi-Module Werkzeuge ModuleFamilyExperimental=Experimentelle Module @@ -349,7 +349,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 @@ -358,7 +358,7 @@ LastActivationIP=IP der letzten Aktivierung LastActivationVersion=Neueste Aktivierungsversion UpdateServerOffline=Update-Server offline (nicht erreichbar) WithCounter=Zähler verwenden -GenericMaskCodes=Sie können ein beliebiges Nummerierungsschema eingeben. Folgende Tags können verwendet werden:
    {000000} steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen, um das gewünschte Format abzubilden.
    {000000+000} führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird.
    {000000@x} wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück, bei setzen von 0 wird der Anfangsmonat des Fiskaljahrs für das Rücksetzen verwendet, mit dem Wert 99 erfolgt jeden Monat ein Rücksetzen auf 0. Ist die Rücksetzoption gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erforderlich.
    {dd} Tag (01 bis 31).
    {mm} Monat (01 bis 12).
    {y}, {yy} or {yyyy} Jahreszahl 1-, 2- oder 4-stellig.
    +GenericMaskCodes=Sie können ein beliebiges Nummerierungsschema eingeben. Folgende Tags können verwendet werden:
    {000000} steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen, um das gewünschte Format abzubilden.
    {000000+000} führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der bei dem/der ersten %s angewandt wird.
    {000000@x} wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück, bei setzen von 0 wird der Anfangsmonat des Fiskaljahrs für das Rücksetzen verwendet, mit dem Wert 99 erfolgt jeden Monat ein Rücksetzen auf 0. Ist die Rücksetzoption gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erforderlich.
    {dd} Tag (01 bis 31).
    {mm} Monat (01 bis 12).
    {y}, {yy} or {yyyy} Jahreszahl 1-, 2- oder 4-stellig.
    GenericMaskCodes2= {cccc} Kundencode mit n Zeichen
    {cccc000} Kundencode gefolgt von einer dem Kunden zugeordneten Partner ID. Dieser Zähler wird gleichzeitig mit dem globalen Zähler zurückgesetzt.
    {tttt} Der Code für die Partnerart, abgeschnitten nach n Zeichen (siehe Menü Start - Einstellungen - Stammdaten - Arten von Partnern). Wenn diese Option aktiv ist, wird für jede Partnerart ein separater Zähler geführt.
    GenericMaskCodes3=Alle anderen Zeichen in der Maske bleiben erhalten.
    \nLeerzeichen sind nicht zulässig.
    GenericMaskCodes3EAN=Alle anderen Zeichen der Maske bleiben unberührt (außer * oder ? an 13. Stelle in EAN13).
    Leerzeichen sind nicht erlaubt.
    Für EAN13 sollte das letzte Zeichen nach der letzten } an 13. Stelle ein * oder ? sein. Dies wird durch den berechneten Wert ersetzt.
    @@ -371,14 +371,14 @@ ServerAvailableOnIPOrPort=Der Server ist unter der Adresse %s auf Port %s auf Port %s DoTestServerAvailability=Serververfügbarkeit testen DoTestSend=Test-E-Mail senden -DoTestSendHTML=HTML-Test senden +DoTestSendHTML=Zum Testen HTML zusenden ErrorCantUseRazIfNoYearInMask=Fehler: die Option @ kann nicht benutzt werden, um den Zähler jährlich zurück zu setzen, wenn die Sequenz {yy} oder {yyyy} in der Maske fehlt. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fehler: Kann Option @ nicht verwenden, wenn Sequenz {mm}{yy} oder {mm}{yyyy} nicht im Schema verwendet werden. 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....). @@ -406,7 +406,7 @@ SecurityToken=Schlüssel um die URLs zu entschlüsseln NoSmsEngine=Kein SMS-Sendermanager verfügbar. Ein SMS-Sendermanager gehört nicht zum Standardumfang von Dolibarr, da er von einem externen Anbieter abhängig ist. Passende Module können Sie hier finden: %s PDF=PDF PDFDesc=Globale Einstellungen für die PDF-Erzeugung -PDFOtherDesc=PDF-Option spezifisch für einige Module +PDFOtherDesc=Modulspezifische PDF-Optionen PDFAddressForging=Regeln für die Auswahl der Adressen HideAnyVATInformationOnPDF=Alle Informationen zu Steuern/MwSt. im generierten PDF ausblenden PDFRulesForSalesTax=Regeln für Umsatzsteuer/MwSt. @@ -421,7 +421,7 @@ UrlGenerationParameters=Parameter zum Sichern von URLs SecurityTokenIsUnique=Verwenden Sie einen eindeutigen Sicherheitsschlüssel für jede URL EnterRefToBuildUrl=Geben Sie eine Referenz für das Objekt %s ein GetSecuredUrl=URL anzeigen -ButtonHideUnauthorized=Verstecke nicht autorisierte Aktionsschaltflächen auch für interne Benutzer (sonst nur grau) +ButtonHideUnauthorized=Nicht autorisierte Aktionsschaltflächen auch für interne Benutzer ausblenden (sonst nur grau) OldVATRates=Alter Umsatzsteuer-Satz NewVATRates=Neuer Umsatzsteuer-Satz PriceBaseTypeToChange=Ändern Sie den Basispreis definierte nach @@ -450,8 +450,8 @@ 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' -Computedpersistent=Speichere 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 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). ExtrafieldParamHelpselect=Die Liste der Werte muss aus Zeilen mit dem Format Schlüssel, Wert bestehen (wobei Schlüssel nicht '0' sein darf)

    zum Beispiel:
    1, value1
    2, value2
    Code3, Wert3
    ...

    Damit die Liste von einer anderen ergänzenden Attributliste abhängt:
    1, value1 | options_ parent_list_code : parent_key
    2, value2 | options_ parent_list_code : parent_key

    Um die Liste von einer anderen Liste abhängig zu machen:
    1, value1 | parent_list_code : parent_key
    2, value2 | parent_list_code : parent_key @@ -459,7 +459,7 @@ ExtrafieldParamHelpcheckbox=Die Liste der Werte muss aus Zeilen mit dem Format S ExtrafieldParamHelpradio=Die Liste der Werte muss aus Zeilen mit dem Format Schlüssel, Wert bestehen (wobei Schlüssel nicht '0' sein darf)

    zum Beispiel:
    1, value1
    2, value2
    3, value3
    ... ExtrafieldParamHelpsellist=Die Liste der Werte stammt aus einer Tabelle
    Syntax: table_name:label_field:id_field::filtersql
    Beispiel: c_typent:libelle:id::filtersql

    - id_field ist notwendigerweise ein primärer int-Schlüssel
    - filtersql ist eine SQL-Condition. Dies kann ein einfacher Test sein (z. B. aktiv = 1), um nur den aktiven Wert anzuzeigen
    Sie können auch $ID$ in Filtern verwenden, wobei es sich um die ID des aktuellen Objekts handelt
    Verwenden Sie $SEL$, um ein SELECT im Filter durchzuführen (Vermeidung von Anti-SQL-Injection-Maßnahmen)
    Wenn Sie nach Extrafeldern filtern möchten, verwenden Sie die Syntax extra.fieldcode = ... (wobei fieldcode der Code des Extrafelds ist)

    Damit die Liste von einer anderen ergänzenden Attributliste abhängt:
    c_typent:libelle:id:options_ parent_list_code |parent_column:filter

    Um die Liste von einer anderen Liste abhängig zu machen:
    c_typent:libelle:id: parent_list_code |parent_column:filter ExtrafieldParamHelpchkbxlst=Die Liste der Werte stammt aus einer Tabelle
    Syntax: table_name: label_field: id_field :: filter
    Beispiel: c_typent: libelle: id :: filter

    Filter kann ein einfacher Vergleich sein (z. B. aktiv = 1), um nur den aktiven Wert anzuzeigen
    Sie können $ID$ auch in Filtern verwenden, hierbei handelt es sich um die aktuelle ID des aktuellen Objekts
    Verwenden Sie $SEL$, um ein SELECT im Filter durchzuführen
    Wenn Sie nach Extrafeldern filtern möchten, verwenden Sie die Syntax extra.fieldcode = ... (wobei fieldcode der Code des Extrafelds ist)

    Damit die Liste von einer anderen ergänzenden Attributliste abhängt:
    c_typent: libelle: id: options_ parent_list_code | parent_column: filter

    Um die Liste von einer anderen Liste abhängig zu machen:
    c_typent: libelle: id: parent_list_code | parent_column: filter -ExtrafieldParamHelplink=Die Parameter müssen ObjectName: Classpath
    sein. Syntax: ObjectName: Classpath +ExtrafieldParamHelplink=Parameter müssen Objektname:Klassenpfad sein.
    Syntax: ObjektName:Classpath ExtrafieldParamHelpSeparator=Für ein einfaches Trennzeichen leer lassen
    Setzen Sie diesen Wert für ein ausblendendes Trennzeichen auf 1 (standardmäßig für eine neue Sitzung geöffnet, der Status wird für jede Benutzersitzung beibehalten)
    Setzen Sie diesen Wert für ein ausblendendes Trennzeichen auf 2 (standardmäßig für ausgeblendet) neue Sitzung, dann bleibt der Status für jede Benutzersitzung erhalten) LibraryToBuildPDF=Bibliothek zum Erstellen von PDF-Dateien LocalTaxDesc=Einige Länder erheben möglicherweise zwei oder drei Steuern auf jede Rechnungsposition. Wenn dies der Fall ist, wählen Sie den Typ für die zweite und dritte Steuer und ihren Steuersatz. Mögliche Typen sind:
    1: auf Produkte und Dienstleistungen ohne Mehrwertsteuer wird eine örtliche Steuer erhoben (die örtliche Steuer wird auf den Betrag ohne Mehrwertsteuer berechnet)
    2: Für Produkte und Dienstleistungen einschließlich Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag + die Hauptsteuer berechnet).
    3: auf Produkte ohne Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag ohne Mehrwertsteuer berechnet)
    4: Für Produkte einschließlich Mehrwertsteuer wird eine lokale Steuer erhoben (die Mehrwertsteuer wird auf den Betrag + die Haupt-Mehrwertsteuer berechnet).
    5: auf Dienstleistungen ohne Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag ohne Mehrwertsteuer berechnet)
    6: Für Dienstleistungen einschließlich Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag und die Steuer berechnet). @@ -474,10 +474,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 @@ -488,15 +488,15 @@ NoDetails=Keine weiteren Details in der Fußzeile DisplayCompanyInfo=Firmenadresse anzeigen DisplayCompanyManagers=Namen der Geschäftsführung anzeigen 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. +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. Use3StepsApproval=Standardmäßig, Einkaufsaufträge müssen durch zwei unterschiedlichen Benutzer erstellt und freigegeben werden (ein Schritt/Benutzer zu erstellen und ein Schritt/Benutzer für die Freigabe). Beachten Sie wenn ein Benutzer beide Rechte hat - zum erstellen und freigeben, dann reicht ein Benutzer für diesen Vorgang. Optional können Sie ein zusätzlicher Schritt/User für die Freigabe einrichten, wenn der Betrag einen bestimmten dedizierten Wert übersteigt (wenn der Betrag übersteigt wird, werden 3 Stufen notwendig: 1=Validierung, 2=erste Freigabe und 3=Gegenfreigabe.
    Lassen Sie den Feld leer wenn eine Freigabe (2 Schritte) ausreicht; Tragen Sie einen sehr niedrigen Wert (0.1) wenn eine zweite Freigabe notwendig ist. -UseDoubleApproval=3-Fach Verarbeitungsschritte verwenden wenn der Betrag (ohne Steuer) höher ist als ... +UseDoubleApproval=3-Stufen-Genehmigung durchführen, wenn der Betrag (ohne Steuern) höher ist als ... WarningPHPMail=WARNUNG: Das Setup zum Senden von E-Mails aus der Anwendung verwendet das generische Standard-Setup. Aus mehreren Gründen ist es häufig besser, ausgehende E-Mails so einzurichten, dass sie den E-Mail-Server Ihres E-Mail-Dienstanbieters verwenden, anstatt die Standardeinstellung: 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). @@ -504,7 +504,7 @@ WarningPHPMailC=- Interessant ist auch die Verwendung des SMTP-Servers Ihres eig 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. 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 @@ -521,7 +521,7 @@ Field=Feld ProductDocumentTemplates=Dokumentvorlage(n) FreeLegalTextOnExpenseReports=Freier Rechtstext auf Spesenabrechnungen WatermarkOnDraftExpenseReports=Wasserzeichen auf Ausgabenbelegentwurf (leerlassen wenn keines benötigt wird) -ProjectIsRequiredOnExpenseReports=Das Projekt ist obligatorisch für die Erfassung einer Spesenabrechnung +ProjectIsRequiredOnExpenseReports=Für die Erfassung einer Spesenabrechnung ist die Angabe des Projekts verpflichtend PrefillExpenseReportDatesWithCurrentMonth=Das Start- und Enddatum einer neuen Spesenabrechnung mit dem Start- und Enddatum des aktuellen Monats vorausfüllen ForceExpenseReportsLineAmountsIncludingTaxesOnly=Die Eingabe von Spesen immer als Bruttowerte mit Steuern erzwingen AttachMainDocByDefault=Setzen Sie diesen Wert auf 1, wenn Sie das Hauptdokument standardmäßig per E-Mail anhängen möchten (falls zutreffend). @@ -534,7 +534,7 @@ DAV_ALLOW_PRIVATE_DIRTooltip=Das generische private Verzeichnis ist ein WebDAV-V DAV_ALLOW_PUBLIC_DIR=Aktivieren Sie das allgemeine öffentliche Verzeichnis \n(WebDAV-dediziertes Verzeichnis mit dem Namen "public" - keine Anmeldung erforderlich). DAV_ALLOW_PUBLIC_DIRTooltip=Das allgemeine öffentliche Verzeichnis ist ein WebDAV-Verzeichnis, auf das jeder zugreifen kann (im Lese- und Schreibmodus), ohne dass eine Autorisierung erforderlich ist (Login / Passwort-Konto). DAV_ALLOW_ECM_DIR=Aktivieren Sie das private DMS / ECM-Verzeichnis \n(Stammverzeichnis des DMS / ECM-Moduls - Anmeldung erforderlich) -DAV_ALLOW_ECM_DIRTooltip=Das Stammverzeichnis, in das alle Dateien manuell hochgeladen werden, wenn das DMS / ECM-Modul verwendet wird. Ähnlich wie beim Zugriff über die Weboberfläche benötigen Sie ein gültiges Login / Passwort mit entsprechenden Berechtigungen. +DAV_ALLOW_ECM_DIRTooltip=Das Stammverzeichnis, in das alle Dateien manuell hochgeladen werden, wenn das DMS/ECM-Modul verwendet wird. Ähnlich wie beim Zugriff über die Weboberfläche benötigen Sie ein gültiges Login/Passwort mit entsprechenden Berechtigungen. # Modules Module0Name=Benutzer & Gruppen Module0Desc=Benutzer/Mitarbeiter und Gruppen verwalten @@ -543,7 +543,7 @@ Module1Desc=Partner- und Kontakteverwaltung (Kunden, Interessenten, ...) Module2Name=Vertrieb Module2Desc=Vertriebsverwaltung Module10Name=Buchhaltung (vereinfacht) -Module10Desc=Berichte für die einfache Buchhaltung (Zeitschriften, Umsatz) auf Basis der Datenbank. Es wird keine Ledger-Tabelle verwendet. +Module10Desc=Berichte für die einfache Buchhaltung (Journal, Umsatz) auf Basis der Datenbank. Es werde keine Haupt- oder Nebenbücher verwendet. Module20Name=Angebote Module20Desc=Angebotsverwaltung Module22Name=E-Mail-Kampagnen @@ -558,20 +558,20 @@ Module40Name=Lieferanten/Hersteller Module40Desc=Lieferanten- und Einkaufsverwaltung (Bestellungen und Fakturierung von Lieferantenrechnungen) Module42Name=Debug Logs Module42Desc=Protokollierungsdienste (Syslog). Diese Logs dienen der Fehlersuche/Analyse. -Module43Name=Debug Leiste +Module43Name=Debug-Leiste Module43Desc=Ein Tool für Entwickler, das eine Debug-Leiste in Ihrem Browser hinzufügt. Module49Name=Bearbeiter Module49Desc=Editorverwaltung Module50Name=Produkte -Module50Desc=Produktverwaltung -Module51Name=Postwurfsendungen +Module50Desc=Verwaltung von Produkten +Module51Name=Massen-Mailings Module51Desc=Verwaltung von Postwurf-/Massensendungen Module52Name=Lagerverwaltung Module52Desc=Einstellungen zur Lager- und Bestandsverwaltung Module53Name=Leistungen -Module53Desc=Management von Dienstleistungen +Module53Desc=Verwaltung von Leistungen Module54Name=Verträge/Abonnements -Module54Desc=Verwaltung von Verträgen (Dienstleistungen oder wiederkehrende Abonnements) +Module54Desc=Verwaltung von Verträgen (Leistungen oder wiederkehrende Abonnements) Module55Name=Barcodes Module55Desc=Verwaltung von Barcodes bzw. QR-Codes Module56Name=Zahlung per Überweisung @@ -598,9 +598,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 @@ -614,7 +614,7 @@ Module410Name=Webkalender Module410Desc=Webkalenderintegration Module500Name=Steuern & Sonderausgaben Module500Desc=Verwaltung sonstiger Ausgaben (Umsatzsteuern, Sozialabgaben, Dividenden, ...) -Module510Name=Löhne +Module510Name=Gehälter Module510Desc=Erfassen und Verfolgen von Lohnzahlungen Module520Name=Darlehen Module520Desc=Verwaltung von Darlehen @@ -635,15 +635,15 @@ Module1520Name=Dokumente erstellen Module1520Desc=Generierung von Massen-e-Mail-Dokumenten Module1780Name=Kategorien Module1780Desc=Kategorien erstellen (Produkte, Kunden, Lieferanten, Kontakte oder Mitglieder) -Module2000Name=FCKeditor +Module2000Name=WYSIWYG-Editor Module2000Desc=Erweiterter Editor für Textfelder (basierend auf dem CKEditor) 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=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 +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. @@ -670,8 +670,8 @@ Module10000Name=Websites Module10000Desc=Erstellt im Internet abrufbare Webseiten mit einem WYSIWYG-Editor. Das CMS ist Webmaster- oder Entwickler-orientiert (Kenntnisse der Programmiersprachen HTML und CSS sind empfehlenswert). Richten Sie einfach Ihren Webserver (Apache, Nginx, ...) so ein, dass er auf das dedizierte Dolibarr-Verzeichnis zeigt, um die Webseite unter eigenem Domain-Namen im Internet abrufen zu können. Module20000Name=Urlaubsanträge Module20000Desc=Verwalten (erstellen, ablehnen, genehmigen) Sie die Urlaubsanträge Ihrer Angestellten -Module39000Name=Produkt-Chargen und Serien -Module39000Desc=Verwaltung von Chargen- und Serien sowie von Haltbarkeits- und Verkaufslimitdatum +Module39000Name=Produktchargen und -Serien +Module39000Desc=Verwaltung von Chargen und Serien sowie von Haltbarkeits- und Verkaufslimitdatum Module40000Name=Mehrere Währungen Module40000Desc=Nutze alternative Währungen bei Preisen und in Dokumenten Module50000Name=PayBox @@ -688,7 +688,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 Terminfindungsmodul +Module55000Name=Umfrage und Terminfindung Module55000Desc=Modul zur Erstellung von Umfragen und zur Terminfindung (vergleichbar mit Doodle) Module59000Name=Gewinnspannen Module59000Desc=Modul zur Verwaltung von Gewinnspannen @@ -714,74 +714,77 @@ 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=Lesen Sie Projekte und Aufgaben (gemeinsames Projekt und Projekte, für die ich Kontakt habe). Kann auch die für mich oder meine Hierarchie verbrauchte Zeit für zugewiesene Aufgaben eingeben (Arbeitszeittabelle) -Permission42=Erstellen und Ändern von Projekten (geteilte Projekte und solche, in denen ich Kontakt bin). Kann auch Aufgaben erstellen und Benutzer dem Projekt und den Aufgaben zuweisen. -Permission44=Projekte löschen (gemeinsame Projekte und Projekte, in denen ich Ansprechpartner bin) +Permission41=Projekte und Aufgaben einsehen (gemeinsame Projekte und Projekte, bei denen ich Ansprechpartner bin). +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 ansehen +Permission61=Serviceaufträge einsehen Permission62=Serviceaufträge erstellen/bearbeiten Permission64=Serviceaufträge löschen Permission67=Leistungen exportieren Permission68=Serviceaufträge per E-Mail versenden -Permission69=Serviceaufträge validieren -Permission70=Serviceaufträge ungültig machen +Permission69=Serviceaufträge freigeben +Permission70=Freigabe für Serviceaufträge rückgängig machen 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 Permission89=Kundenaufträge löschen -Permission91=Sozialabgaben, Steuern und Mehrwertsteuer einsehen +Permission91=Steuern, Sozialabgaben und Umsatzsteuer einsehen 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 -Permission126=Partner exportieren -Permission130=Zahlungsinformationen von Geschäftspartnern erstellen/ändern -Permission141=Alle Projekte und Aufgaben anzeigen. \n(auch private Projekte, in denen ich nicht Kontakt bin) -Permission142=Projekte und Aufgaben erstellen und ändern \n(auch private Projekte, in denen ich nicht Kontakt bin) -Permission144=Löschen Sie alle Projekte und Aufgaben (einschließlich privater Projekte in denen ich kein Kontakt bin) +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/bearbeiten +Permission141=Alle Projekte und Aufgaben lesen (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 -Permission163=Service/Abonnement in einem Vertrag aktivieren -Permission164=Service/Abonnement in einem Vertrag deaktivieren +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 @@ -822,16 +825,16 @@ 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=Andere Passwörter ändern +Permission255=Passwörter anderer Benutzer ändern 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 -Permission273=Ausgabe Rechnungen +Permission272=Rechnungen einsehen +Permission273=Rechnungen ausstellen Permission281=Kontakte einsehen Permission282=Kontakte erstellen/bearbeiten Permission283=Kontakte löschen @@ -842,7 +845,7 @@ Permission293=Kundentarife ändern Permission300=Barcodes anzeigen Permission301=Barcodes erstellen/bearbeiten Permission302=Barcodes löschen -Permission311=Leistungen anzeigen +Permission311=Leistungen einsehen Permission312=Leistung/Abonnement einem Vertrag zuordnen Permission331=Lesezeichen anzeigen Permission332=Lesezeichen erstellen/bearbeiten @@ -856,72 +859,76 @@ 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 -Permission650=Stücklisten anzeigen -Permission651=Stücklisten erstellen / aktualisieren +Permission611=Attribute von Varianten lesen +Permission612=Attribute von Varianten erstellen/aktualisieren +Permission613=Attribute von Varianten löschen +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 +Permission1002=Warenlager erstellen/bearbeiten Permission1003=Warenlager löschen Permission1004=Lagerbewegungen einsehen Permission1005=Lagerbewegungen erstellen/bearbeiten -Permission1011=Inventar anzeigen -Permission1012=Neue Inventur erstellen -Permission1014=Inventur freigeben +Permission1011=Bestandsaufnahmen anzeigen +Permission1012=Neue Bestandsaufnahme erstellen +Permission1014=Bestandsaufnahme freigeben Permission1015=Durchschnittspreis änderbar -Permission1016=Inventar löschen -Permission1101=Lieferscheine anzeigen +Permission1016=Bestandsaufnahme löschen +Permission1101=Lieferscheine einsehen Permission1102=Lieferscheine erstellen/bearbeiten Permission1104=Lieferscheine freigeben Permission1109=Lieferscheine löschen -Permission1121=Lieferantenvorschläge anzeigen -Permission1122=Lieferantenvorschläge erstellen / ändern -Permission1123=Lieferantenvorschläge validieren -Permission1124=Lieferantenvorschläge senden -Permission1125=Lieferantenvorschläge löschen +Permission1121=Lieferantenangebote einsehen +Permission1122=Lieferantenangebote erstellen/bearbeiten +Permission1123=Lieferantenangebote freigeben +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 @@ -933,7 +940,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 @@ -944,10 +951,10 @@ Permission1251=Massenimports von externen Daten ausführen (data load) Permission1321=Kundenrechnungen, -attribute und -zahlungen exportieren Permission1322=Eine bezahlte Rechnung wieder öffnen Permission1421=Kundenaufträge und Attribute exportieren -Permission1521=Dokumente lesen +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 @@ -961,26 +968,28 @@ 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 lesen -Permission4002=Kompetenz/Job/Position erstellen/ändern +Permission4001=Kompetenz/Job/Position einsehen +Permission4002=Kompetenz/Job/Position erstellen/bearbeiten Permission4003=Kompetenz/Job/Position löschen -Permission4020=Bewertungen lesen -Permission4021=Erstellen/ändern Sie Ihre Bewertung -Permission4022=Bewertung validieren +Permission4020=Bewertungen einsehen +Permission4021=Erstellen/bearbeiten Sie Ihre Bewertung +Permission4022=Bewertung freigeben Permission4023=Bewertung löschen Permission4030=Siehe Vergleichsmenü -Permission10001=Website-Inhalt anzeigen +Permission4031=Persönliche Daten einsehen +Permission4032=Persönliche Daten schreiben +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 @@ -991,43 +1000,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 @@ -1047,14 +1056,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 @@ -1068,11 +1077,12 @@ DictionaryExpenseTaxCat=Spesenbericht - Mobilität DictionaryExpenseTaxRange=Spesenreport - Bereich pro Transportkategorie DictionaryTransportMode=Intracomm-Bericht - Transportmodus DictionaryBatchStatus=Status der Qualitätskontrolle für Produktcharge/Serie +DictionaryAssetDisposalType=Art der Veräußerung von Vermögenswerten TypeOfUnit=Art der Einheit SetupSaved=Einstellungen gespeichert SetupNotSaved=Einstellungen nicht gespeichert BackToModuleList=Zurück zur Modulübersicht -BackToDictionaryList=Zurück zur Wörterbuchübersicht +BackToDictionaryList=Zurück zur Stammdaten-Übersicht TypeOfRevenueStamp=Art der Steuermarke VATManagement=MwSt-Verwaltung VATIsUsedDesc=Standardmäßig folgt der Umsatzsteuersatz beim Erstellen von Interessenten, Rechnungen, Aufträgen usw. der aktiven Standardregel:
    Wenn der Verkäufer nicht der Umsatzsteuer unterliegt, ist die Umsatzsteuer standardmäßig 0. Ende der Regel.
    Ist das (Land des Verkäufers = Land des Käufers), entspricht die Umsatzsteuer standardmäßig der Umsatzsteuer des Produkts im Land des Verkäufers. Ende der Regel.
    Wenn der Verkäufer und der Käufer in der Europäischen Gemeinschaft ansässig sind und es sich bei den Waren um transportbezogene Produkte handelt (Spedition, Versand, Fluggesellschaft), beträgt die Standard-Mehrwertsteuer 0. Diese Regel ist abhängig vom Land des Verkäufers - wenden Sie sich bitte an Ihren Buchhalter. Die Mehrwertsteuer ist vom Käufer an die Zollstelle in seinem Land und nicht an den Verkäufer zu entrichten. Ende der Regel.
    Wenn der Verkäufer und der Käufer beide in der Europäischen Gemeinschaft ansässig sind und der Käufer kein Unternehmen ist (mit einer registrierten innergemeinschaftlichen Umsatzsteuer-Identifikationsnummer), gilt standardmäßig der Umsatzsteuersatz des Landes des Verkäufers. Ende der Regel.
    Wenn der Verkäufer und der Käufer beide in der Europäischen Gemeinschaft ansässig sind und der Käufer ein Unternehmen ist (mit einer registrierten innergemeinschaftlichen Umsatzsteuer-Identifikationsnummer), beträgt die Umsatzsteuer standardmäßig 0. Ende der Regel.
    In allen anderen Fällen lautet die vorgeschlagene Standardeinstellung Umsatzsteuer = 0. Ende der Regel. @@ -1106,7 +1116,7 @@ LocalTax2IsUsedExampleES=In Spanien, Freiberufler und unabhängigen Fachleuten, LocalTax2IsNotUsedExampleES=In Spanien sind das Unternehmen, die nicht dem Steuersystem für Module unterliegen. RevenueStampDesc=Der "Steuerstempel" oder "Steuermarke" ist eine feste Steuer, die Sie pro Rechnung entrichten müssen (sie ist nicht vom Rechnungsbetrag abhängig). Es kann auch eine Prozentsteuer sein, aber die Verwendung der zweiten oder dritten Steuerart ist bei Prozentsteuern besser, da Steuerstempel keine Berichterstattung ermöglichen. Nur wenige Länder verwenden diese Steuerart. UseRevenueStamp=Verwenden Sie eine Steuermarke -UseRevenueStampExample=Der Wert der Steuermarke wird standardmäßig in der Einrichtung der Wörterbücher definiert (%s - %s - %s). +UseRevenueStampExample=Der Wert der Steuermarke wird standardmäßig in den Stammdaten definiert (%s - %s - %s). CalcLocaltax=Berichte über lokale Steuern CalcLocaltax1=Sales - Käufe CalcLocaltax1Desc=Lokale Steuer-Reports werden mit der Differenz von lokalen Verkaufs- und Einkaufs-Steuern berechnet @@ -1122,7 +1132,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 @@ -1181,13 +1191,13 @@ 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=Verzögerung, bevor eine Warnmeldung angezeigt wird für: +DelaysOfToleranceBeforeWarning=Anzeige einer Warnmeldung für... DelaysOfToleranceDesc=Stellen Sie die Verzögerung ein, bevor ein Warnsymbol %s für das späte Element auf dem Bildschirm angezeigt wird. Delays_MAIN_DELAY_ACTIONS_TODO=Geplante Ereignisse (Agenda-Ereignisse) nicht abgeschlossen Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekt nicht rechtzeitig abgeschlossen @@ -1208,7 +1218,7 @@ Delays_MAIN_DELAY_HOLIDAYS=Zu genehmigende Urlaubsanträge SetupDescription1=Bevor Sie mit Dolibarr arbeiten können, müssen grundlegende Einstellungen getätigt und Module aktiviert/konfiguriert werden. SetupDescription2=Die folgenden zwei Punkte sind obligatorisch: SetupDescription3= %s -> %s

    Grundlegende Parameter zum Anpassen des Standardverhaltens Ihrer Anwendung (z. B. für länderbezogene Funktionen). -SetupDescription4= %s -> %s

    Diese Software ist eine Suite vieler Module/Anwendungen. Die für Ihre Bedürfnisse erforderlichen Module müssen aktiviert und konfiguriert sein. Zusätzliche Menüeinträge werden mit der Aktivierung dieser Module angezeigt. +SetupDescription4= %s -> %s

    Diese Software ist eine Suite vieler Module/Anwendungen. Die für Ihre Bedürfnisse erforderlichen Module müssen aktiviert und konfiguriert sein. Mit der Aktivierung dieser Module werden zusätzliche Menüeinträge angezeigt. SetupDescription5=Andere Setup-Menüs verwalten optionale Parameter. SetupDescriptionLink= %s - %s SetupDescription3b=Grundlegende Parameter, um das Standardverhalten Ihrer Anwendung anzupassen (z. B. für länderbezogene Funktionen). @@ -1222,12 +1232,13 @@ InfoOS=Über Ihr Betriebsystem InfoWebServer=Über Ihren Webserver InfoDatabase=Über Ihre Datenbank InfoPHP=Über PHP -InfoPerf=Leistungs-Informationen +InfoPerf=Leistungsinformationen InfoSecurity=Sicherheitsbericht 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. @@ -1264,9 +1275,9 @@ NoEventOrNoAuditSetup=Es wurde kein Sicherheitsereignis protokolliert. Dies ist NoEventFoundWithCriteria=Für dieses Suchkriterium wurde kein Sicherheitsereignis gefunden. SeeLocalSendMailSetup=Lokale sendmail-Einstellungen anzeigen BackupDesc=Um eine vollständige Systemsicherung durchzuführen sind folgende Schritte notwendig: -BackupDesc2=Sichern Sie den Inhalt des Verzeichnisses "documents" ( %s ) mit allen hochgeladenen und generierten Dateien. Dies schließt auch alle in Schritt 1 erstellten Speicherauszugsdateien ein. Dieser Vorgang kann mehrere Minuten dauern. +BackupDesc2=Sichern Sie den Inhalt des Verzeichnisses "documents" ( %s ) mit allen hochgeladenen und generierten Dateien. Dies schließt auch alle in Schritt 1 erstellten Datenbank-Dump-Dateien ein. Dieser Vorgang kann mehrere Minuten dauern. BackupDesc3=Für die Sicherung der Datenbank (%s) über Dump-Befehl können Sie den folgenden Assistenten verwenden. -BackupDescX=Bewahren Sie die archvierten Verzeichnisse an einem sicheren Ort auf. +BackupDescX=Bewahren Sie das Archiv des Verzeichnisses an einem sicheren Ort auf. BackupDescY=Bewahren Sie den Datenbank-Dump an einem sicheren Ort auf. BackupPHPWarning=Die Datensicherung kann mit dieser Methode nicht garantiert werden. \nEs wird die vorherige Methode empfohlen. RestoreDesc=Um eine vollständige Systemsicherung wiederherzustellen sind folgende Schritte notwendig: @@ -1293,26 +1304,26 @@ 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 zusätzlichen / benutzerdefinierten Attribute, die hinzugefügt werden müssen: %s +DefineHereComplementaryAttributes=Definieren Sie alle ergänzenden Attribute, die hinzugefügt werden sollen: ExtraFields=Ergänzende Attribute -ExtraFieldsLines=Ergänzende Attribute (Zeilen) -ExtraFieldsLinesRec=Zusätzliche Attribute (Rechnungsvorlage, Zeilen) -ExtraFieldsSupplierOrdersLines=Ergänzende Attribute (in Bestellposition) -ExtraFieldsSupplierInvoicesLines=Ergänzende Attribute (in Rechnungszeile) -ExtraFieldsThirdParties=Ergänzende Attribute (Partner) +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 (Geschäftspartner) ExtraFieldsContacts=Ergänzende Attribute (Kontakte/Adressen) ExtraFieldsMember=Ergänzende Attribute (Mitglied) ExtraFieldsMemberType=Ergänzende Attribute (Mitglied) ExtraFieldsCustomerInvoices=Ergänzende Attribute (Rechnungen) -ExtraFieldsCustomerInvoicesRec=Zusätzliche Attribute (Rechnungsvorlagen) +ExtraFieldsCustomerInvoicesRec=Ergänzende Attribute (Rechnungsvorlagen) ExtraFieldsSupplierOrders=Ergänzende Attribute (Bestellungen) ExtraFieldsSupplierInvoices=Ergänzende Attribute (Rechnungen) ExtraFieldsProject=Ergänzende Attribute (Projekte) @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Sie haben eine neue Übersetzung für den Schlüsse TitleNumberOfActivatedModules=Aktivierte Module TotalNumberOfActivatedModules=Aktivierte Module: %s/%s YouMustEnableOneModule=Sie müssen mindestens 1 Modul aktivieren +YouMustEnableTranslationOverwriteBefore=Sie müssen zunächst das Überschreiben von Übersetzungen aktivieren, damit eine Übersetzung ersetzt werden kann ClassNotFoundIntoPathWarning=Klasse %s nicht im PHP-Pfad gefunden YesInSummer=Ja im Sommer OnlyFollowingModulesAreOpenedToExternalUsers=Hinweis: Nur die folgenden Module sind für externe Nutzer verfügbar (unabhängig von der Berechtigung dieser Benutzer), und auch nur, wenn die Rechte zugeteilt wurden: @@ -1354,7 +1366,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,16 +1388,16 @@ PasswordPatternDesc=Beschreibung für Passwortmuster ##### Users setup ##### RuleForGeneratedPasswords=Regeln für die Erstellung und Freigabe von Passwörtern DisableForgetPasswordLinkOnLogonPage='Passwort vergessen'-Link nicht auf der Anmeldeseite anzeigen -UsersSetup=Benutzermoduleinstellungen +UsersSetup=Einstellungen Modul Benutzer UserMailRequired=Für das Anlegen eines neuen Benutzers ist eine E-Mail-Adresse erforderlich UserHideInactive=Inaktive Benutzer aus allen Kombinationslisten von Benutzern ausblenden (Nicht empfohlen: dies kann bedeuten, dass Sie auf einigen Seiten nicht nach alten Benutzern filtern oder suchen können) UsersDocModules=Dokumentvorlagen für Dokumente, die aus dem Benutzerdatensatz generiert wurden GroupsDocModules=Dokumentvorlagen für Dokumente, die aus einem Gruppendatensatz generiert wurden ##### HRM setup ##### -HRMSetup=Personal Modul Einstellungen +HRMSetup=Einstellungen Modul Personal ##### Company setup ##### -CompanySetup=Partnereinstellungen -CompanyCodeChecker=Nummernvergabe für Partner und Lieferanten +CompanySetup=Einstellungen Modul Geschäftspartner +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 @@ -1406,7 +1418,7 @@ WebDavServer=Root URL von %s Server : %s ##### Webcal setup ##### WebCalUrlForVCalExport=Ein Eportlink für das Format %s findet sich unter folgendem Link: %s ##### Invoices ##### -BillsSetup=Rechnungsmoduleinstellungen +BillsSetup=Einstellungen Modul Rechnungen BillsNumberingModule=Rechnungs- und Gutschriftsnumerierungsmodul BillsPDFModules=PDF-Rechnungsvorlagen BillsPDFModulesAccordindToInvoiceType=Rechnung dokumentiert Modelle nach Rechnungsart @@ -1415,17 +1427,19 @@ 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. ##### Proposals ##### -PropalSetup=Angebotsmoduleinstellungen +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 ##### @@ -1443,7 +1457,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 @@ -1458,7 +1472,7 @@ 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 @@ -1476,7 +1490,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 @@ -1486,7 +1500,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 @@ -1510,7 +1524,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) @@ -1518,7 +1532,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) @@ -1614,7 +1628,7 @@ PerfDolibarr=Leistungs-Einstellungen/Optimierungsreport YouMayFindPerfAdviceHere=Auf dieser Seite finden Sie einige Überprüfungen oder Hinweise zur Leistung. NotInstalled=Nicht installiert. NotSlowedDownByThis=Die Leistung wird hierdurch nicht beeinträchtigt. -NotRiskOfLeakWithThis=Hiermit keine Verlustgefahr. +NotRiskOfLeakWithThis=Dadurch keine Gefahr, sensitive Daten offenzulegen. ApplicativeCache=geeigneter Cache MemcachedNotAvailable=Kein Cache Anwendung gefunden. \nSie können die Leistung durch die Installation des Cache-Server Memcached und die Aktivierung des Moduls Anwendungscache
    hier mehr Informationen http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
    \nverbessern.\nBeachten Sie, dass viele Billig-Provider keine solche Cache-Server in ihrer Infrastruktur anbieten. MemcachedModuleAvailableButNotSetup=Module memcached für geeigneten Cache gefunden, aber Setup-Modul ist nicht vollständig. @@ -1639,9 +1653,9 @@ DefaultSortOrder=Standardsortierreihenfolge DefaultFocus=Standardfokusfeld DefaultMandatory=Pflichtfelder in Formularen ##### Products ##### -ProductSetup=Produktmoduleinstellungen -ServiceSetup=Modul Leistungen - Einstellungen -ProductServiceSetup=Produkte und Leistungen Module Einstellungen +ProductSetup=Einstellungen Modul Produkte +ServiceSetup=Einstellungen Modul Leistungen +ProductServiceSetup=Einstellungen Module Produkte und Leistungen NumberOfProductShowInSelect=Max. Anzahl der Produkte in Dropdownlisten (0=kein Limit) ViewProductDescInFormAbility=Produktbeschreibungen in Artikelzeilen anzeigen (sonst Beschreibung in einem Tooltip-Popup anzeigen) OnProductSelectAddProductDesc=So verwenden Sie die Produktbeschreibung, wenn Sie ein Produkt als Dokumentzeile hinzufügen @@ -1652,8 +1666,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 @@ -1671,7 +1685,7 @@ CompressSyslogs=Komprimierung von Datensicherung- und Debuglogs (Generiert durch SyslogFileNumberOfSaves=Anzahl der zu behaltenden Backup-Logs ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurieren Sie einen geplanten Job um die Logbackups zu automatisieren ##### Donations ##### -DonationsSetup=Spendenmoduleinstellungen +DonationsSetup=Einstellungen Modul Spenden DonationsReceiptModel=Vorlage für Spendenquittungen ##### Barcode ##### BarcodeSetup=Barcode- und 2D-Code-Einstellungen @@ -1692,7 +1706,7 @@ GenbarcodeLocation=Bar Code Kommandozeilen-Tool (verwendet interne Engine für BarcodeInternalEngine=interner Generator BarCodeNumberManager=Manager für die automatische Generierung von Barcode-Nummer ##### Prelevements ##### -WithdrawalsSetup=Einrichtung des Moduls Lastschrift +WithdrawalsSetup=Einstellungen Modul Lastschrift ##### ExternalRSS ##### ExternalRSSSetup=Externe RSS-Einbindungseinstellungen NewRSS=Neuer RSS-Feed @@ -1704,38 +1718,38 @@ MailingEMailFrom=Standard-Absender-E-Mail-Adresse des Kampagnen-Moduls MailingEMailError=Standard-E-Mail-Adresse für Fehlerrückmeldungen (beispielsweise unzustellbare E-Mails) MailingDelay=Wartezeit in Sekunden, bevor die nächste Nachricht gesendet wird ##### Notification ##### -NotificationSetup=E-Mail Benachrichtigungs-Einstellungen +NotificationSetup=Einstellungen Modul E-Mail Benachrichtigungen NotificationEMailFrom=Standard-Absender-E-Mail-Adresse des Kampagnen-Moduls FixedEmailTarget=Empfänger NotificationDisableConfirmMessageContact=Bei Benachrichtigungen die Liste der Empfänger (hinterlegt als Kontakte), die die Benachrichtigung erhalten, nicht anzeigen 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=Versandmoduleinstellungen -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) +FCKeditorForProduct=WYSIWYG Erstellung/Bearbeitung der Feldbeschreibung Produkte/Leistungen +FCKeditorForProductDetails=WYSIWYG Erstellung/Ausgabe von Produkt-Detailzeilen für alle Dokumente (Angebote, Aufträge, 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 der Seitenformatierung führen 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 ##### -StockSetup=Lagerverwaltung Einstellungen +StockSetup=Einstellungen Modul Lagerverwaltung IfYouUsePointOfSaleCheckModule=Wenn Sie das standardmäßig bereitgestellte POS-Modul oder ein externes Modul verwenden, wird dieses Setup möglicherweise von Ihrem POS-Modul ignoriert. Die meisten POS-Module sind standardmäßig so konzipiert, dass sie sofort eine Rechnung erstellen und den Lagerbestand unabhängig von den hier angegebenen Optionen verringern. Wenn Sie also bei der Registrierung eines Verkaufs an Ihrem POS eine Bestandsreduzierung benötigen oder nicht, überprüfen Sie auch die Einrichtung Ihres POS-Moduls. ##### Menu ##### MenuDeleted=Menü gelöscht @@ -1771,7 +1785,7 @@ OptionVATDefault=Ist-Versteuerung OptionVATDebitOption=Soll-Versteuerung OptionVatDefaultDesc=USt fällig:
    - Bei Lieferung/Zahlung für Waren
    - Bei Zahlung für Leistungen OptionVatDebitOptionDesc=USt fällig:
    - Bei Lieferung/Zahlung für Waren
    - Bei Rechnungslegung (Lastschrift) für Dienstleistungen -OptionPaymentForProductAndServices=Cashbasis für Produkte und Dienstleistungen +OptionPaymentForProductAndServices=Cash-Basis für Produkte und Leistungen OptionPaymentForProductAndServicesDesc=USt is fällig:
    - Bei Bezahlung von Waren
    - Bei Bezahlung von Dienstleistungen SummaryOfVatExigibilityUsedByDefault=Standardmäßiger Zeitpunkt der USt.-Fälligkeit in Abhängigkeit zur derzeit gewählten Option: OnDelivery=Bei Lieferung @@ -1788,11 +1802,11 @@ 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=Aufgaben/Termine-Modul Einstellungen +AgendaSetup=Einstellungen Modul Aufgaben/Termine PasswordTogetVCalExport=Passwort für den VCal-Export SecurityKey = Sicherheitsschlüssel PastDelayVCalExport=Keine Termine exportieren die älter sind als -AGENDA_USE_EVENT_TYPE=Verwenden Ereignissarten \nEinstellen unter (Start -> Einstellungen -> Wörterbücher -> Ereignissarten) +AGENDA_USE_EVENT_TYPE=Verwenden der Ereignissarten \nEinstellen unter (Start -> Einstellungen -> Stammdaten-> Ereignissarten) AGENDA_USE_EVENT_TYPE_DEFAULT=Diesen Standardwert automatisch als Ereignistyp im Ereignis Erstell-Formular verwenden. AGENDA_DEFAULT_FILTER_TYPE=Diesen Ereignisstatus automatisch in den Suchfilter für die Agenda-Ansicht übernehmen AGENDA_DEFAULT_FILTER_STATUS=Diesen Ereignisstatus automatisch in den Suchfilter für die Agenda-Ansicht übernehmen @@ -1803,27 +1817,27 @@ AGENDA_REMINDER_EMAIL=Aktiviere die Ereigniserinnerung per E-Mail (Erin AGENDA_REMINDER_EMAIL_NOTE=Hinweis: Die Häufigkeit des geplanten Jobs %s muss ausreichend sein, um sicherzustellen, dass die Erinnerung zum richtigen Zeitpunkt gesendet wird. AGENDA_SHOW_LINKED_OBJECT=Verknüpfte Objekte in Agenda anzeigen ##### Clicktodial ##### -ClickToDialSetup=Click-to-Dial Moduleinstellungen +ClickToDialSetup=Einstellungen Modul Click-to-Dial ClickToDialUrlDesc=URL, die bei einem Klick auf das Telefonsymbol aufgerufen werden soll. In dieser URL können die folgenden Tags verwendet werden:
    __PHONETO__ Telefonnummer des Angerufenen
    __PHONEFROM__ Telefonnummer des Anrufers (Ihre)
    __LOGIN__ Ihren Benutzernamen für Click-to-Dial (siehe Benutzerdaten)
    __PASS__ Ihr Click-to-Dial-Passwort (siehe Benutzerdaten). ClickToDialDesc=Dieses Modul formatiert Telefonnummern als direkt anklickbare Links auf Desktop-PCs. Ein Klick wählt die Nummer. Damit kann ein Telefonanruf direkt gestartet werden, wenn Softphones oder SIP-Telefone verwendet werden. Hinweis: Auf Smartphones sind Telefonnummern immer anklickbar. 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 +CashDesk=Kassenterminal 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 +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=Warenlager 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=Tastencode für "Enter" wie im Barcode-Leser definiert (Beispiel: 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. @@ -1834,7 +1848,7 @@ WebServicesDesc=Über Aktivierung dieses Moduls können Sie dolibarr zur Anbindu WSDLCanBeDownloadedHere=Die WSDL-Datei der verfügbaren Webservices können Sie hier herunterladen EndPointIs=SOAP-Clients müssen ihre Anfragen an den Dolibarr Endpunkt verfügbar unter URL senden ##### API #### -ApiSetup=Modul API - Einstellungen +ApiSetup=Einstellungen Modul API ApiDesc=Wenn dieses Modul aktiviert ist, wird Dolibarr zum REST Server für diverse web services. ApiProductionMode=Echtbetrieb aktivieren (dadurch wird ein Cache für Service-Management aktiviert) ApiExporerIs=Sie können das API unter dieser URL anschauen/testen @@ -1842,7 +1856,7 @@ OnlyActiveElementsAreExposed=Nur Elemente aus aktiven Modulen sind ungeschützt ApiKey=Schlüssel für API WarningAPIExplorerDisabled=Der API-Explorer wurde deaktiviert. Der API-Explorer ist nicht notwendig um die API-Dienste zu bieten. Es ist ein Werkzeug für Entwickler zu finden / Test-REST-APIs. Wenn Sie dieses Tool benötigen, gehen Sie in Setup von Modul-API REST um es zu aktivieren. ##### Bank ##### -BankSetupModule=Bankmoduleinstellungen +BankSetupModule=Einstellungen Modul Bank FreeLegalTextOnChequeReceipts=Freitext für Scheckbelege BankOrderShow=Anzeige Reihenfolge der Bankkonten für Länder mit "detaillierten Bank-Nummer" BankOrderGlobal=General @@ -1851,9 +1865,9 @@ BankOrderES=Spanisch BankOrderESDesc=Spanische Anzeigereihenfolge ChequeReceiptsNumberingModule=Modul zur Nummerierung von Belegen prüfen ##### Multicompany ##### -MultiCompanySetup=Einstellungen des Modul Mandanten +MultiCompanySetup=Einstellungen Modul Multi-Company (Mandanten) ##### Suppliers ##### -SuppliersSetup=Einrichtung des Lieferantenmoduls +SuppliersSetup=Einstellungen Modul Lieferanten SuppliersCommandModel=Vollständige Vorlage für Lieferantenbestellungen SuppliersCommandModelMuscadet=Vollständige Vorlage für Lieferantenbestellungen (alte Implementierung der Cornas-Vorlage) SuppliersInvoiceModel=Vollständige Vorlage der Lieferantenrechnung @@ -1868,29 +1882,29 @@ YouCanDownloadAdvancedDatFileTo=Eine vollständigere Version mit Updates TestGeoIPResult=Test einer Umwandlung IP -> Staat ##### Projects ##### ProjectsNumberingModules=Projektnumerierungsmodul -ProjectsSetup=Projekteinstellungenmodul +ProjectsSetup=Einstellungen Modul Projekte ProjectsModelModule=Projektvorlagenmodul TasksNumberingModules=Modul zur Numerierung von Aufgaben TaskModelModule=Vorlage für Arbeitsberichte UseSearchToSelectProject=Warte auf Tastendruck, bevor der Inhalt der Projekt-Combo-Liste geladen wird
    Dies kann die Leistung verbessern, wenn Sie eine große Zahl von Partnern haben, verschlechtert aber die Nutzungsfreundlichkeit. ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Buchhaltungs Perioden -AccountingPeriodCard=Buchhaltungs Periode +AccountingPeriods=Buchhaltungsperioden +AccountingPeriodCard=Buchhaltungsperiode NewFiscalYear=Neues Buchhaltungsperiode OpenFiscalYear=Öffne Buchhaltungsperiode -CloseFiscalYear=Buchhaltungs Periode schliessen -DeleteFiscalYear=Buchhaltungs Periode löschen +CloseFiscalYear=Buchhaltungsperiode schließen +DeleteFiscalYear=Buchhaltungsperiode löschen ConfirmDeleteFiscalYear=Möchten Sie diese Buchungsperiode wirklich löschen? -ShowFiscalYear=Zeige Buchhaltungs Periode -AlwaysEditable=kann immer bearbeitet werden +ShowFiscalYear= Buchhaltungsperiode anzeigen +AlwaysEditable=Kann immer bearbeitet werden MAIN_APPLICATION_TITLE=Erzwinge sichtbaren Anwendungsnamen (Warnung: Setzen Ihres eigenen Namens kann Autofill Login-Funktion abbrechen, wenn Sie DoliDroid Anwendung nutzen) NbMajMin=Mindestanzahl Großbuchstaben NbNumMin=Mindestanzahl Ziffern NbSpeMin=Mindestanzahl Sonderzeichen NbIteConsecutive=Maximale Anzahl sich wiederholender Zeichen NoAmbiCaracAutoGeneration=Verwende keine mehrdeutigen Zeichen ("1", "l", "i", "|", "0", "O") für die automatische Generierung -SalariesSetup=Einstellungen des Gehaltsmodul +SalariesSetup=Einstellungen Modul Gehälter SortOrder=Sortierreihenfolge Format=Format TypePaymentDesc=0: Zahlungsart Kunde / 1: Zahlungsart Lieferant / 2: Zahlungsart Kunde und Lieferant @@ -1909,7 +1923,7 @@ GoOntoUserCardToAddMore=Gehen Sie auf die Registerkarte "Hinweise" eines Benutze GoOntoContactCardToAddMore=Gehen Sie zur Registerkarte "Benachrichtigungen" beim Geschäftspartner, um Benachrichtigungen für Kontakte / Adressen hinzuzufügen oder zu entfernen Threshold=Schwellenwert BackupDumpWizard=Assistent zum Erstellen der Datenbank-Dump-Datei -BackupZipWizard=Assistent zum Erstellen des Dokumentenarchivverzeichnisses +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. 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. @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Um ein externes Modul zu erstellen oder installieren, HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover HighlightLinesColor=Farbe zum Hervorheben der Zeile, wenn die Maus darüberfahrt (verwenden Sie 'ffffff' für keine Hervorhebung) HighlightLinesChecked=Farbe zum Hervorheben der Zeile, wenn die Zeile ausgewählt ist (verwenden Sie 'ffffff' für keine Hervorhebung) +UseBorderOnTable=Linken und rechten Tabellenrand anzeigen BtnActionColor=Hintergrundfarbe der Aktionsschaltfläche TextBtnActionColor=Textfarbe der Aktionsschaltfläche TextTitleColor=Textfarbe der Seitenüberschrift @@ -1925,20 +1940,20 @@ 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 BackgroundTableTitleTextlinkColor=Textfarbe für die Tabellentitel-Linkzeile BackgroundTableLineOddColor=Hintergrundfarbe für ungerade Tabellenzeilen BackgroundTableLineEvenColor=Hintergrundfarbe für gerade Tabellenzeilen -MinimumNoticePeriod=Mindestkündigungsfrist (Ihr Urlaubsantrag muss vor dieser Frist gestellt werden) +MinimumNoticePeriod=Mindestfrist für die Beantragung (Ihr Urlaubsantrag muss vor dieser Frist gestellt werden) NbAddedAutomatically=Anzahl Tage die den Benutzern jeden Monat (automatisch) hinzuaddiert werden EnterAnyCode=Dieses Feld enthält eine Referenz zur Identifizierung der Zeile. Geben Sie einen beliebigen Wert Ihrer Wahl ein, jedoch ohne Sonderzeichen. 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=Symbolname im Dolibarr-Format ('image.png' im aktuellen Themenverzeichnis, 'image.png@nom_du_module' im Verzeichnis / img / eines Moduls) +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. @@ -1966,7 +1981,8 @@ MailToSendSupplierOrder=Lieferantenbestellungen MailToSendSupplierInvoice=Lieferantenrechnungen MailToSendContract=Verträge MailToSendReception=Wareneingänge -MailToThirdparty=Partner +MailToExpenseReport=Spesenabrechnungen +MailToThirdparty=Geschäftspartner MailToMember=Mitglieder MailToUser=Benutzer MailToProject=Projekte @@ -1977,7 +1993,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. @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regexfilter um die Werte zu Bereinigen (COMPANY_AQU COMPANY_DIGITARIA_CLEAN_REGEX=Regex-Filter zum Bereinigen des Werts (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Doppelte Einträge sind nicht erlaubt GDPRContact=Datenschutzbeauftragte(r) -GDPRContactDesc=Wenn Sie Daten speichern, die unter die DSGVO fallen, können Sie hier die für den Datenschutz zuständige Kontaktperson hinterlegen +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 HelpOnTooltipDesc=Fügen Sie hier Text oder einen Übersetzungsschlüssel ein, damit der Text in einer QuickInfo angezeigt wird, wenn dieses Feld in einem Formular angezeigt wird YouCanDeleteFileOnServerWith=Löschen dieser Datei auf dem Server mit diesem Kommandozeilenbefehl
    %s @@ -2048,27 +2065,46 @@ 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 CollectNow=Jetzt abrufen -ConfirmCloneEmailCollector=Sind Sie sicher, dass Sie den eMail-Collektor %s duplizieren möchten? +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-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 den Einsammelvorgang für diesen eMail-Collector starten? +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 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 +EmailCollectorExampleToCollectJobCandidaturesDesc=Sammeln Sie E-Mails, die Bewerbungen auf Stellenangebote enthalten (Modul Recruitment muss aktiviert sein). Sie können diesen Collector erstellen, wenn Sie automatisch einen Bewerberdatensatz für eine Bewerbung erstellen möchten. Hinweis: Bei diesem ersten Beispiel wird der Titel des Bewerberdatensatzes inklusive E-Mail generiert. +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 (mit einem Geschäftspartner verknüpft, wenn dieser durch einen vorherigen Vorgang geladen wurde, ansonsten ohne 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) CodeLastResult=Letzter Resultatcode NbOfEmailsInInbox=Anzahl E-Mails im Quellverzeichnis LoadThirdPartyFromName=Drittanbieter-Suche auf %s laden (nur laden) @@ -2082,14 +2118,14 @@ 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 UseSearchToSelectResource=Verwende ein Suchformular um eine Ressource zu wählen (eher als eine Dropdown-Liste) zu wählen. DisabledResourceLinkUser=Funktion deaktivieren, um eine Ressource mit Benutzern zu verknüpfen DisabledResourceLinkContact=Funktion zum deaktivieren, dass eine Resource mit Kontakte verknüpft wird. -EnableResourceUsedInEventCheck=Aktivieren Sie diese Funktion, um zu überprüfen, ob eine Ressource in einem Ereignis verwendet wird +EnableResourceUsedInEventCheck=Verhindern, dass die Ressource mehrfach zur gleichen Zeit verplant wird ConfirmUnactivation=Modul zurücksetzen bestätigen OnMobileOnly=Nur auf kleinen Bildschirmen (Smartphones) DisableProspectCustomerType=Deaktivieren Sie den Drittanbieter-Typ "Interessent + Kunde" (d.h. der Drittanbieter muss "Interessent" oder "Kunde" sein, kann aber nicht beides sein). @@ -2105,12 +2141,12 @@ DefaultCustomerType=Standardmäßiger Drittanbietertyp für die Maske "Neuer Kun ABankAccountMustBeDefinedOnPaymentModeSetup=Hinweis: Das Bankkonto muss im Modul jeder Zahlungsart (Paypal, Stripe,...) definiert sein, damit diese Funktion funktioniert. RootCategoryForProductsToSell=Hauptkategorie der zu verkaufenden Produkte RootCategoryForProductsToSellDesc=Wenn definiert, sind nur Produkte dieser Kategorie oder Kinder dieser Kategorie in der Verkaufsstelle erhältlich. -DebugBar=Debug Leiste +DebugBar=Debug-Leiste DebugBarDesc=Symbolleiste, die mit einer Vielzahl von Werkzeugen ausgestattet ist, um das Debuggen zu vereinfachen. DebugBarSetup=Debug-Leiste Einstellungen GeneralOptions=Allgemeine Optionen LogsLinesNumber=Zahl der Zeilen, die auf der Registerkarte Logs angezeigt werden sollen -UseDebugBar=Verwenden Sie die Debug Leiste +UseDebugBar=Verwenden Sie die Debug-Leiste DEBUGBAR_LOGS_LINES_NUMBER=Zahl der letzten Protokollzeilen, die in der Konsole verbleiben sollen WarningValueHigherSlowsDramaticalyOutput=Warnung, höhere Werte verlangsamen die Ausgabe erheblich. ModuleActivated=Modul %s is aktiviert und verlangsamt die Overfläche @@ -2120,7 +2156,7 @@ IfYouAreOnAProductionSetThis=Wenn Sie sich in einer Produktivumgebung befinden, AntivirusEnabledOnUpload=Antivirus für hochgeladene Dateien aktiviert SomeFilesOrDirInRootAreWritable=Einige Dateien oder Verzeichnisse sind nicht schreibgeschützt EXPORTS_SHARE_MODELS=Exportmodelle sind für jeden zugänglich. -ExportSetup=Einrichtung Modul Export +ExportSetup=Einstellungen Modul Export ImportSetup=Einrichtung des Modulimports InstanceUniqueID=Eindeutige ID dieser Instanz SmallerThan=Kleiner als @@ -2134,16 +2170,19 @@ DeleteEmailCollector=Lösche eMail-Collector ConfirmDeleteEmailCollector=Sind Sie sicher, dass Sie diesen eMail-Collector löschen wollen? RecipientEmailsWillBeReplacedWithThisValue=Empfänger-E-Mails werden immer durch diesen Wert ersetzt AtLeastOneDefaultBankAccountMandatory=Es muß mindestens ein Bankkonto definiert sein -RESTRICT_ON_IP=Ermöglichen Sie den Zugriff nur auf einige Host-IP-Adressen (wildcard nicht zulässig, verwenden Sie Leerzeichen zwischen den Werten). Leer bedeutet, dass jeder Host darauf zugreifen kann. +RESTRICT_ON_IP=API-Zugriff nur für bestimmte Client-IPs zulassen (Platzhalter nicht zulässig, Leerzeichen zwischen den Werten verwenden). Leer bedeutet, dass alle Clients zugreifen können. IPListExample=127.0.0.1 192.168.0.2 [:: 1] BaseOnSabeDavVersion=Basierend auf der SabreDAV-Bibliothek Version NotAPublicIp=Keine öffentliche IP MakeAnonymousPing=Einen anonymen Ping '+1' an den Dolibarr-Foundation-Server (einmalig nach der Installation) senden, damit die Foundation die Anzahl der Dolibarr-Installationen zählen kann. -FeatureNotAvailableWithReceptionModule=Funtion nicht verfügbar, wenn Modul Wareneingang aktiviert ist +FeatureNotAvailableWithReceptionModule=Funktion nicht verfügbar, wenn das Modul Wareneingang aktiviert ist 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 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. @@ -2181,13 +2220,14 @@ ARestrictedPath=Eingeschränkter Pfad 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 -NoExternalModuleWithUpdate=Für externe Module wurden keine Updates gefunden +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 APIs aktiviert. +APIsAreNotEnabled=Es sind keine API-Module aktiviert. YouShouldSetThisToOff=Sollte auf '0' oder 'aus' gesetzt werden InstallAndUpgradeLockedBy=Installation und Upgrades werden durch die Datei %s gesperrt OldImplementation=Alte Implementierung @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Komprimierung von API-Antworten deaktivieren EachTerminalHasItsOwnCounter=Jedes Terminal verwendet seinen eigenen Zähler. FillAndSaveAccountIdAndSecret=Zuerst die Account-ID und den Geheimschlüssel eingeben und speichern PreviousHash=Vorheriger Hash +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. + +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 +IconOnlyTextOnHover=Nur Icon – Der Text des Icons wird angezeigt, wenn Sie mit der Maus über das Icon fahren +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 +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 diff --git a/htdocs/langs/de_DE/agenda.lang b/htdocs/langs/de_DE/agenda.lang index 53e19f58e33..6236ce05914 100644 --- a/htdocs/langs/de_DE/agenda.lang +++ b/htdocs/langs/de_DE/agenda.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=Ereignis-ID Actions=Ereignisse -Agenda=Terminplan -TMenuAgenda=Terminplanung -Agendas=Terminpläne +Agenda=Agenda +TMenuAgenda=Agenda +Agendas=Agenden LocalAgenda=Standardkalender ActionsOwnedBy=Ereignis stammt von ActionsOwnedByShort=Eigentümer @@ -30,7 +30,7 @@ ViewDay=Tagesansicht ViewWeek=Wochenansicht ViewPerUser=Ansicht pro Benutzer ViewPerType=Anzeige pro Typ -AutoActions= Automatische Befüllung der Tagesordnung +AutoActions= Automatische Befüllung der Agenda AgendaAutoActionDesc= Hier können Sie Ereignisse definieren, die Dolibarr automatisch in der Agenda erstellen soll. Wenn nichts markiert ist, werden nur manuelle Aktionen in die Protokolle aufgenommen und in der Agenda angezeigt. Die automatische Verfolgung von Geschäftsaktionen an Objekten (Validierung, Statusänderung) wird nicht gespeichert. AgendaSetupOtherDesc= Diese Seite bietet Optionen, um den Export Ihrer Dolibarr-Ereignisse in einen externen Kalender (Thunderbird, Google Calendar usw.) zu ermöglichen. AgendaExtSitesDesc=Diese Seite erlaubt es, externe Kalenderquellen zu definieren, um deren Termine in der Dolibarr-Terminplanung zu sehen. @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Vertrag %s gelöscht PropalClosedSignedInDolibarr=Angebot %s unterschrieben PropalClosedRefusedInDolibarr=Angebot %s abgelehnt PropalValidatedInDolibarr=Angebot %s freigegeben +PropalBackToDraftInDolibarr=Angebot %s zurück in den Entwurfsstatus PropalClassifiedBilledInDolibarr=Angebot %s als verrechnet eingestuft InvoiceValidatedInDolibarr=Rechnung %s freigegeben InvoiceValidatedInDolibarrFromPos=Rechnung %s von POS validiert @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=Mitglied %s freigegeben MemberModifiedInDolibarr=Mitglied %s geändert MemberResiliatedInDolibarr=Mitglied %s aufgehoben MemberDeletedInDolibarr=Mitglied %s gelöscht +MemberExcludedInDolibarr=Mitglied %s ausgeschlossen 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 @@ -65,8 +67,9 @@ 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 -OrderCreatedInDolibarr= Auftrag %s erstellt +ReceptionValidatedInDolibarr=Wareneingang %s bestätigt +ReceptionClassifyClosedInDolibarr=Wareneingang %s als geschlossen klassifiziert +OrderCreatedInDolibarr=Auftrag %s erstellt OrderValidatedInDolibarr=Auftrag %s freigegeben OrderDeliveredInDolibarr=Auftrag %s als geliefert markiert OrderCanceledInDolibarr=Auftrag %s storniert @@ -97,10 +100,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 @@ -125,7 +128,7 @@ MRP_MO_CANCELInDolibarr=Fertigungsauftrag storniert PAIDInDolibarr=%s bezahlt ##### End agenda events ##### AgendaModelModule=Dokumentvorlagen für Ereignisse -DateActionStart=Beginnt +DateActionStart=Beginn DateActionEnd=Ende AgendaUrlOptions1=Sie können die Ausgabe über folgende Parameter filtern: AgendaUrlOptions3=logina=%s begrenzt die Ausgabe auf den Benutzer %s erstellte Ereignissen. @@ -133,7 +136,7 @@ AgendaUrlOptionsNotAdmin=logina=!%s begrenzt die Ausgabe auf dem Benutzer AgendaUrlOptions4=logint=%s begrenzt die Ausgabe auf den Benutzer %s (Eigentümer und andere) zugewiesene Aktionen. AgendaUrlOptionsProject=project=__PROJECT_ID__ um nur Aktionen zum Projekt __PROJECT_ID__ auszugeben. AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto um automatische Events auszuschliessen. -AgendaUrlOptionsIncludeHolidays= includeseholidays = 1 , um Ereignisse von Feiertagen einzuschließen. +AgendaUrlOptionsIncludeHolidays= includeholidays = 1 , um Ereignisse von Feiertagen einzuschließen. AgendaShowBirthdayEvents=Geburtstage der Kontakte AgendaHideBirthdayEvents=Geburtstage von Kontakten nicht anzeigen Busy=Beschäftigt @@ -157,6 +160,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 @@ -172,3 +176,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 a4fc61beb26..73b2b3fbc55 100644 --- a/htdocs/langs/de_DE/assets.lang +++ b/htdocs/langs/de_DE/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 = Ressourcen / Anlagen -NewAsset = neue Anlage -AccountancyCodeAsset = Kontierungscode (Resource) -AccountancyCodeDepreciationAsset = Kontierungscode (alter Ressourcencode) -AccountancyCodeDepreciationExpense = Kontierungscode (altes Aufwandskonto) -NewAssetType=neue Anlagenart -AssetsTypeSetup=Einstellungen Anlagetyp -AssetTypeModified=Anlagentyp geändert -AssetType=Anlagetyp +NewAsset=neue Anlage +AccountancyCodeAsset=Buchungskonto (Anlagegut) +AccountancyCodeDepreciationAsset=Buchungskonto (Abschreibung auf Anlagegut) +AccountancyCodeDepreciationExpense=Buchungskonto (Aufwendungen für Abschreibungen) AssetsLines=Anlagen DeleteType=Lösche Gruppe -DeleteAnAssetType=Lösche einen Anlagetyp -ConfirmDeleteAssetType=Möchten Sie diesen Anlagetyp wirklich löschen? -ShowTypeCard=Zeige Typ '%s' +DeleteAnAssetType=Löschen Sie ein Anlagegut-Modell +ConfirmDeleteAssetType=Möchten Sie dieses Vermögenswert-Modell wirklich löschen? +ShowTypeCard=Modell '%s' anzeigen # Module label 'ModuleAssetsName' -ModuleAssetsName = Anlagen +ModuleAssetsName=Anlagen # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Resourcenbeschreibung +ModuleAssetsDesc=Resourcenbeschreibung # # Admin page # -AssetsSetup = Resourcensetup -Settings = Einstellungen -AssetsSetupPage = Resourcen Setupseite -ExtraFieldsAssetsType = Ergänzende Attribute (Anlagetyp) -AssetsType=Resourcenart -AssetsTypeId=Resourcenart ID -AssetsTypeLabel=Resourcenart Label -AssetsTypes=Resourcenarten +AssetSetup=Resourcensetup +AssetSetupPage=Resourcen Setupseite +ExtraFieldsAssetModel=Ergänzende Attribute (Vermögenswert-Modell) + +AssetsType=Vermögenswert-Modell +AssetsTypeId=Vermögenswert-Modell-ID +AssetsTypeLabel=Bezeichnung des Vermögenswert-Modells +AssetsTypes=Vermögenswert-Modelle +ASSET_ACCOUNTANCY_CATEGORY=Kontengruppe für Anlagevermögen # # Menu # -MenuAssets = Anlagen -MenuNewAsset = neue Anlage -MenuTypeAssets = Anlagen eingeben -MenuListAssets = Liste -MenuNewTypeAssets = Neu -MenuListTypeAssets = Liste +MenuAssets=Anlagen +MenuNewAsset=neue Anlage +MenuAssetModels=Modell für Vermögenswerte +MenuListAssets=Liste +MenuNewAssetModel=Neues Modell für Vermögenswerte +MenuListAssetModels=Liste # # Module # +ConfirmDeleteAsset=Möchten Sie diesen Vermögenswert wirklich entfernen? + +# +# Tab +# +AssetDepreciationOptions=Abschreibungsmöglichkeiten +AssetAccountancyCodes=Buchhaltungskonten +AssetDepreciation=Abschreibung + +# +# Asset +# Asset=Anlagegut -NewAssetType=neue Anlagenart -NewAsset=neue Anlage -ConfirmDeleteAsset=Möchten Sie dieses Asset wirklich löschen? +Assets=Ressourcen / Anlagen +AssetReversalAmountHT=Stornobetrag (ohne Steuern) +AssetAcquisitionValueHT=Anschaffungsbetrag (ohne Steuern) +AssetRecoveredVAT=Zurückerstattete USt. +AssetReversalDate=Stornodatum +AssetDateAcquisition=Zugangsdatum +AssetDateStart=Datum der Inbetriebnahme +AssetAcquisitionType=Art des Erwerbs +AssetAcquisitionTypeNew=Neu +AssetAcquisitionTypeOccasion=Gebraucht +AssetType=Art des Vermögenswertes +AssetTypeIntangible=Immateriell +AssetTypeTangible=Materiell +AssetTypeInProgress=in Bearbeitung +AssetTypeFinancial=Finanziell +AssetNotDepreciated=Nicht abgeschrieben +AssetDisposal=Abgang +AssetConfirmDisposalAsk=Sind Sie sicher, dass Sie einen Abgang für den Vermögenswert %s verbuchen möchten? +AssetConfirmReOpenAsk=Möchten Sie den Vermögenswert %s wirklich erneut öffnen? + +# +# Asset status +# +AssetInProgress=in Bearbeitung +AssetDisposed=Abgang verbucht +AssetRecorded=Abgerechnet + +# +# Asset disposal +# +AssetDisposalDate=Datum des Abgangs +AssetDisposalAmount=Veräußerungswert +AssetDisposalType=Art des Abgangs +AssetDisposalDepreciated=Abschreibung für das Jahr der Übertragung +AssetDisposalSubjectToVat=Abgang USt.-pflichtig + +# +# Asset model +# +AssetModel=Modell des Vermögenswerts +AssetModels=Modelle des Vermögenswerts + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Wirtschaftliche Abschreibung +AssetDepreciationOptionAcceleratedDepreciation=Beschleunigte Abschreibung (Steuer) +AssetDepreciationOptionDepreciationType=Abschreibungsart +AssetDepreciationOptionDepreciationTypeLinear=Linear +AssetDepreciationOptionDepreciationTypeDegressive=Degressiv +AssetDepreciationOptionDepreciationTypeExceptional=Außergewöhnlich +AssetDepreciationOptionDegressiveRate=Degressive Rate +AssetDepreciationOptionAcceleratedDepreciation=Beschleunigte Abschreibung (Steuer) +AssetDepreciationOptionDuration=Dauer +AssetDepreciationOptionDurationType=Dauer des Typs +AssetDepreciationOptionDurationTypeAnnual=Jährlich +AssetDepreciationOptionDurationTypeMonthly=Monatlich +AssetDepreciationOptionDurationTypeDaily=Täglich +AssetDepreciationOptionRate=Rate (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Abschreibungsgrundlage (ohne USt.) +AssetDepreciationOptionAmountBaseDeductibleHT=Abzugsfähige Basis (exkl. USt.) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Gesamtbetrag letzte Abschreibung (exkl. USt.) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Wirtschaftliche Abschreibung +AssetAccountancyCodeAsset=Anlagegut +AssetAccountancyCodeDepreciationAsset=Abschreibung +AssetAccountancyCodeDepreciationExpense=Abschreibungsaufwand +AssetAccountancyCodeValueAssetSold=Wert des abgegangenen Vermögenswerts +AssetAccountancyCodeReceivableOnAssignment=Forderung bei Abgang +AssetAccountancyCodeProceedsFromSales=Erlös aus Abgang +AssetAccountancyCodeVatCollected=Eingenommene USt. +AssetAccountancyCodeVatDeductible=Zurückerstattete USt. auf Vermögenswerte +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Beschleunigte Abschreibung (Steuer) +AssetAccountancyCodeAcceleratedDepreciation=Konto +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Abschreibungsaufwand +AssetAccountancyCodeProvisionAcceleratedDepreciation=Rücknahme/Bereitstellung + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Abschreibungsgrundlage (exkl. USt.) +AssetDepreciationBeginDate=Abschreibungsbeginn am +AssetDepreciationDuration=Dauer +AssetDepreciationRate=Rate (%%) +AssetDepreciationDate=Abschreibungsdatum +AssetDepreciationHT=Abschreibung (exkl. USt.) +AssetCumulativeDepreciationHT=Kumulierte Abschreibung (exkl. USt.) +AssetResidualHT=Restwert (exkl. USt.) +AssetDispatchedInBookkeeping=Abschreibung erfasst +AssetFutureDepreciationLine=Zukünftige Abschreibung +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' +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' +AssetErrorFetchDepreciationLines=Fehler beim Abrufen erfasster Abschreibungspositionen +AssetErrorClearDepreciationLines=Fehler beim Bereinigen erfasster Abschreibungspositionen (Storno und Zukunft) +AssetErrorAddDepreciationLine=Fehler beim Hinzufügen einer Abschreibungszeile +AssetErrorCalculationDepreciationLines=Fehler bei der Berechnung der Abschreibungspositionen (Recovery und Zukunft) +AssetErrorReversalDateNotProvidedForMode=Für die Abschreibungsmethode „%s“ ist kein Stornodatum vorgesehen +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Bei der Abschreibungsmethode '%s' muss das Stornodatum größer oder gleich dem Beginn des laufenden Geschäftsjahres sein +AssetErrorReversalAmountNotProvidedForMode=Für den Abschreibungsmodus '%s' ist der Stornobetrag nicht vorgesehen. +AssetErrorFetchCumulativeDepreciation=Fehler beim Abrufen des kumulierten Abschreibungsbetrags aus der Abschreibungsposition +AssetErrorSetLastCumulativeDepreciation=Fehler beim Erfassen des letzten kumulierten Abschreibungsbetrags diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index 16c4bf5700c..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,16 +51,16 @@ 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 -AccountCard=Konto - Übersicht +AccountsArea=Konten +AccountCard=Konto – Übersicht DeleteAccount=Konto löschen ConfirmDeleteAccount=Sind Sie sicher, dass Sie dieses Konto löschen wollen? Account=Konto @@ -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 -BankTransaction=Bank-Transaktionen -ListTransactions=Liste Einträge -ListTransactionsByCategory=Liste Einträge/Kategorie -TransactionsToConciliate=Einträge zum Ausgleichen -TransactionsToConciliateShort=ausgleichen -Conciliable=kann ausgeglichen werden -Conciliate=Ausgleichen -Conciliation=Ausgleich +BankTransactions=Banktransaktionen +BankTransaction=Bank-Transaktion +ListTransactions=Transaktionsliste +ListTransactionsByCategory=Transaktionen/Kategorie +TransactionsToConciliate=Einträge zum Abgleichen +TransactionsToConciliateShort=Auszugleichen +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,23 +94,23 @@ AccountIdShort=Nummer LineRecord=Transaktion AddBankRecord=Erstelle Transaktion AddBankRecordLong=Eintrag manuell hinzufügen -Conciliated=ausgeglichen -ConciliatedBy=Ausgeglichen durch +Conciliated=Abgeglichen +ReConciliedBy=Abgeglichen durch DateConciliating=Ausgleichsdatum BankLineConciliated=Eintrag mit Bankbeleg abgeglichen -Reconciled=ausgelichen -NotReconciled=nicht ausgeglichen +BankLineReconciled=Abgeglichen +BankLineNotReconciled=Nicht abgeglichen CustomerInvoicePayment=Kundenzahlung SupplierInvoicePayment=Lieferanten Zahlung SubscriptionPayment=Beitragszahlung WithdrawalPayment=Lastschrift -SocialContributionPayment=Zahlung von Sozialabgaben/Steuern +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,13 +172,17 @@ 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 Kasse öffnet oder schließt -BankColorizeMovement=Bewegungen färben +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 Debit-Bewegung -BankColorizeMovementName2=Hintergrundfarbe für Kredit-Bewegung +BankColorizeMovementName1=Hintergrundfarbe für Sollbuchungen +BankColorizeMovementName2=Hintergrundfarbe für Habenbuchungen IfYouDontReconcileDisableProperty=Wenn Sie auf einigen Bankkonten keine Bankkontenabgleiche vornehmen, deaktivieren Sie die Eigenschaft "%s", um diese Warnung zu entfernen. NoBankAccountDefined=Kein Bankkonto definiert NoRecordFoundIBankcAccount=Kein Datensatz im Bankkonto gefunden. Dies ist in der Regel der Fall, wenn ein Datensatz manuell aus der Transaktionsliste des Bankkontos gelöscht wurde (z. B. bei einer Abstimmung des Bankkontos). Ein weiterer Grund ist, dass die Zahlung aufgezeichnet wurde, als das Modul "%s" deaktiviert war. 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 6eec6f79952..10b75b18d0f 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -4,11 +4,11 @@ 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 @@ -44,7 +44,7 @@ NotConsumed=Nicht verbrauchte NoReplacableInvoice=Keine ersetzbaren Rechnungen NoInvoiceToCorrect=Keine zu korrigierende Rechnung InvoiceHasAvoir=Diese Rechnung ist bereits Gegenstand einer oder mehrerer Gutschriften. -CardBill=Rechnung - Übersicht +CardBill=Rechnung – Übersicht PredefinedInvoices=Vordefinierte Rechnungen Invoice=Rechnung PdfInvoiceTitle=Rechnung @@ -64,7 +64,7 @@ CustomerInvoicePaymentBack=Rückerstattung Payments=Zahlungen PaymentsBack=Rückerstattungen paymentInInvoiceCurrency=in Rechnungswährung -PaidBack=Zurück bezahlt +PaidBack=Zurückgezahlt DeletePayment=Lösche Zahlung ConfirmDeletePayment=Möchten Sie diese Zahlung wirklich löschen? ConfirmConvertToReduc=Möchten Sie diese %s in ein verfügbares Guthaben umwandeln? @@ -150,12 +150,13 @@ ErrorVATIntraNotConfigured=Intrakommunale UID-Nr. noch nicht definiert ErrorNoPaiementModeConfigured=Keine standardmäßige Zahlungsart definiert. \nBeheben Sie diesen Fehler im Setup des Rechnungsmoduls. ErrorCreateBankAccount=Legen Sie ein Bankkonto an und definieren Sie anschließend die Zahlungsarten im Setup des Rechnungsmoduls. ErrorBillNotFound=Rechnung %s existiert nicht -ErrorInvoiceAlreadyReplaced=Fehler, Sie haben versucht, eine Rechnung zu validieren, um die Rechnung %s zu ersetzen. Dieser wurde aber bereits durch Rechnung %s ersetzt. +ErrorInvoiceAlreadyReplaced=Fehler, Sie haben versucht, eine Rechnung freizugeben, um Rechnung %s zu ersetzen. Diese wurde aber bereits durch die Rechnung %s ersetzt. ErrorDiscountAlreadyUsed=Fehler: Dieser Rabatt ist bereits verbraucht. ErrorInvoiceAvoirMustBeNegative=Fehler: Gutschriften verlangen nach einem negativen Rechnungsbetrag ErrorInvoiceOfThisTypeMustBePositive=Fehler, diese Art von Rechnung muss einen Betrag ohne Steuer positiv (oder null) haben. ErrorCantCancelIfReplacementInvoiceNotValidated=Fehler: Sie können keine Rechnung stornieren, deren Ersatzrechnung sich noch im Status 'Entwurf' befindet ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Dieser Artikel oder ein anderer wird bereits verwendet, so dass die Rabattstaffel nicht entfernt werden kann. +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 ActionsOnBill=Ereignisse zu dieser Rechnung @@ -282,6 +283,8 @@ RecurringInvoices=Wiederkehrende Rechnungen RecurringInvoice=Wiederkehrende Rechnung RepeatableInvoice=Rechnungs-Vorlage RepeatableInvoices=Rechnungs-Vorlagen +RecurringInvoicesJob=Generierung wiederkehrender Rechnungen (Kundenrechnungen) +RecurringSupplierInvoicesJob=Generierung wiederkehrender Rechnungen (Lieferantenrechnungen) Repeatable=Vorlage Repeatables=Vorlagen ChangeIntoRepeatableInvoice=erzeuge Rechnungsvorlage @@ -318,9 +321,9 @@ DiscountFromDeposit=Anzahlung gemäß Rechnung %s 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 bestätigt werden, um Gutschriften zu erstellen -NewGlobalDiscount=neuer absoluter Rabatt -NewRelativeDiscount=neuer relativer Rabatt +CreditNoteDepositUse=Die Rechnung muss freigegeben werden, um Gutschriften zu erstellen +NewGlobalDiscount=Neuer absoluter Rabatt +NewRelativeDiscount=Neuer relativer Rabatt DiscountType=Rabatt Typ NoteReason=Anmerkung/Begründung ReasonDiscount=Rabattgrund @@ -331,11 +334,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=Sozialabgaben/Unternehmenssteuer Zahlungs-ID +IdSocialContribution=Zahlungs-ID der Steuern/Sozialabgaben PaymentId=Zahlung Id -PaymentRef=ZahlungsNr. +PaymentRef=ZahlungsRef. InvoiceId=Rechnungs ID InvoiceRef=Rechnungs Nr. InvoiceDateCreation=Datum der Rechnungserstellung @@ -396,7 +399,7 @@ GeneratedFromRecurringInvoice=Erstelle wiederkehrende Rechnung %s aus Vorlage DateIsNotEnough=Datum noch nicht erreicht InvoiceGeneratedFromTemplate=Rechnung %s erstellt aus Vorlage für wiederkehrende Rechnung %s GeneratedFromTemplate=Erzeugt von der Rechnungsvorlage %s -WarningInvoiceDateInFuture=Achtung, das Rechnungsdatum ist höher als das aktuelle Datum +WarningInvoiceDateInFuture=Achtung, das Rechnungsdatum liegt nach dem aktuellen Datum WarningInvoiceDateTooFarInFuture=Achtung, das Rechnungsdatum ist zu weit entfernt vom aktuellen Datum ViewAvailableGlobalDiscounts=Zeige verfügbare Rabatte GroupPaymentsByModOnReports=Zahlungen nach Modus auf Berichte gruppieren @@ -426,14 +429,24 @@ PaymentConditionShort14D=14 Tage PaymentCondition14D=14 Tage PaymentConditionShort14DENDMONTH=14 Tage nach Monatsende PaymentCondition14DENDMONTH=Innerhalb von 14 Tagen nach Monatsende +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% Anzahlung +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% Anzahlung, Rest bei Lieferung FixAmount=Festbetrag - 1 Zeile mit Label '%s' VarAmount=Variabler Betrag (%% tot.) VarAmountOneLine=Variabler Betrag (%% Total) -1 Position mit Label '%s' VarAmountAllLines=Variable Menge (%% tot.) - alle Zeilen vom Ursprung +DepositPercent=Anzahlung %% +DepositGenerationPermittedByThePaymentTermsSelected=Erlaubt gemäß den gewählten Zahlungsbedingungen +GenerateDeposit=Erstellen Sie eine %s%% Anzahlungsrechnung +ValidateGeneratedDeposit=Generierte Anzahlung freigeben +DepositGenerated=Anzahlung generiert +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Sie können eine Anzahlung nur aus einem Angebot oder einem Kundenauftrag automatisch generieren +ErrorPaymentConditionsNotEligibleToDepositCreation=Die gewählten Zahlungsbedingungen sind nicht für die automatische Generierung einer Anzahlung geeignet # PaymentType PaymentTypeVIR=Banküberweisung PaymentTypeShortVIR=Banküberweisung PaymentTypePRE=Lastschrift +PaymentTypePREdetails=(auf Rechnung *-%s) PaymentTypeShortPRE=Lastschrift PaymentTypeLIQ=Bar PaymentTypeShortLIQ=Bar @@ -443,8 +456,8 @@ PaymentTypeCHQ=Scheck PaymentTypeShortCHQ=Scheck PaymentTypeTIP=Banküberweisung (Dokument gegen Zahlung) PaymentTypeShortTIP=Banküberweisung -PaymentTypeVAD=Online Zahlung -PaymentTypeShortVAD=Online Zahlung +PaymentTypeVAD=Online-Zahlung +PaymentTypeShortVAD=Online-Zahlung PaymentTypeTRA=Scheck PaymentTypeShortTRA=Scheck PaymentTypeFAC=Nachnahme @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Scheckzahlungen (inkl. Steuern) sind zu leisten an SendTo=an PaymentByTransferOnThisBankAccount=Zahlung per Überweisung bitte auf folgendes Konto VATIsNotUsedForInvoice=* Nicht für USt-art-CGI-293B +VATIsNotUsedForInvoiceAsso=* USt. befreit nach Art. 261-7 CGI LawApplicationPart1=Durch die Anwendung des Gesetzes 80,335 von 12/05/80 LawApplicationPart2=Die Ware bleibt Eigentum LawApplicationPart3=Verkäufer bis zur vollständigen Zahlung @@ -496,7 +510,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. @@ -526,7 +540,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 @@ -551,7 +565,7 @@ TypeContact_invoice_supplier_external_SHIPPING=Kontakt für Lieferantenversand TypeContact_invoice_supplier_external_SERVICE=Händler-Servicekontakt # Situation invoices InvoiceFirstSituationAsk=Erste Fortschritt-Rechnung -InvoiceFirstSituationDesc=Die Situation Rechnungen auf Situationen zu einer Progression bezogen gebunden, beispielsweise das Fortschreiten einer Konstruktion. Jede Situation ist mit einer Rechnung gebunden. +InvoiceFirstSituationDesc=Die Abschlagsrechnungen beziehen sich auf Abschläge, die einem Fortschritt entsprechen, beispielsweise dem Fortschritt eines Bauvorhabens. Jeder Abschlag ist mit einer Rechnung verknüpft. InvoiceSituation=Rechnung nach Fortschritt PDFInvoiceSituation=Rechnung nach Fortschritt InvoiceSituationAsk=Rechnung folgende Situation @@ -589,9 +603,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 @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Lieferantenrechnung gelöscht UnitPriceXQtyLessDiscount=Stückpreis x Anzahl - Rabatt CustomersInvoicesArea=Abrechnungsbereich Kunden SupplierInvoicesArea=Abrechnungsbereich Lieferanten -FacParentLine=Übergeordnete Rechnungszeile SituationTotalRayToRest=Restbetrag zu zahlen ohne Steuern PDFSituationTitle=Situation Nr. %d SituationTotalProgress=Gesamtfortschritt %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Suche unbezahlte Rechnungen mit Fälligkeitsdatu NoPaymentAvailable=Keine Zahlung verfügbar für %s PaymentRegisteredAndInvoiceSetToPaid=Zahlung registriert und Rechnung %s auf bezahlt gesetzt 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) diff --git a/htdocs/langs/de_DE/blockedlog.lang b/htdocs/langs/de_DE/blockedlog.lang index 5f02fb8ed77..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=Ein Tool, um die Bolckedlog Einträge zu listen und zu exportieren. Blocked Logas werden auf dem lokalen Dolibarr Server eingetragen, in einer speziellen Database Table, und das, autoamtisch in real Time. Mit diesem Tool kann man dann Exporte erstellen. +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...) @@ -24,12 +24,12 @@ logDONATION_PAYMENT_CREATE=Spendenzahlung erstellt logDONATION_PAYMENT_DELETE=Spendenzahlung automatisch löschen logBILL_PAYED=Kundenrechnung bezahlt logBILL_UNPAYED=Kundenrechnung als 'unbezahlt' markiert -logBILL_VALIDATE=Kundenrechnung bestätigt +logBILL_VALIDATE=Kundenrechnung validiert logBILL_SENTBYMAIL=Kundenrechnung per E-Mail versendet logBILL_DELETE=Kundenrechnung automatisch gelöscht logMODULE_RESET=Modul BlockedLog wurde deaktiviert logMODULE_SET=Modul wurde aktiviert -logDON_VALIDATE=Spende bestätigt +logDON_VALIDATE=Spende validiert logDON_MODIFY=Spende geändert logDON_DELETE=Spende automatisch gelöscht logMEMBER_SUBSCRIPTION_CREATE=Mitglieds-Abonnement erstellt @@ -49,9 +49,9 @@ ImpossibleToReloadObject=Ursprüngliches Objekt (Typ %s, ID %s) nicht verknüpft BlockedLogAreRequiredByYourCountryLegislation=Das Modul "Revisionssicheres Protokoll" kann von der Gesetzgebung Ihres Landes verlangt werden. Durch Deaktivieren dieses Moduls können zukünftige Transaktionen mit Bezug auf Gesetze und rechtssichere Software ungültig werden, da sie nicht durch eine Steuerprüfung validiert werden können. BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Das Modul "Revisionssicheres Protokoll" wurde aktiviert aufgrund der Gesetzgebung Ihres Landes. Durch Deaktivieren dieses Moduls können zukünftige Transaktionen mit Bezug auf Gesetze und rechtssichere Software ungültig werden, da sie nicht durch eine Steuerprüfung validiert werden können. BlockedLogDisableNotAllowedForCountry=Liste der Länder, in denen die Verwendung dieses Moduls obligatorisch ist (wird benutzt, um die versehentliche Deaktivierung des Moduls zu verhindern. Befindet sich Ihr Land in dieser Liste, ist das Deaktivieren des Moduls nicht möglich, ohne diese Liste vorher zu bearbeiten).\nBeachten Sie: das Aktivieren / Deaktivieren dieses Moduls erzeugt ebenfalls einen Eintrag in das unveränderliche Protokoll). -OnlyNonValid=Nicht-bestätigt +OnlyNonValid=Nicht gültig TooManyRecordToScanRestrictFilters=Anzahl der zu scannenden-/analysierenden Einträge ist zu hoch. Bitte schränken Sie die Liste mit restriktiveren Filtern ein. RestrictYearToExport=Beschränke Zeitraum (Monat/Jahr) für den Export BlockedLogEnabled=Das System zum Protokollieren von Ereignissen in unveränderbaren Logs wurde aktiviert -BlockedLogDisabled=Das System zum Protokollieren von Ereignissen in unveränderbaren Logs wurde deaktiviert, nachdem einige Aufzeichnungen durchgeführt wurden. Wir haben einen speziellen Fingerabdruck gespeichert, um die Kette als gebrochen zu markieren +BlockedLogDisabled=Das System zum Protokollieren von Ereignissen in unveränderbaren Logs wurde deaktiviert, nachdem schon einige Aufzeichnungen durchgeführt wurden. Es wurde ein spezieller Fingerabdruck gespeichert, um die Kette als gebrochen zu markieren BlockedLogDisabledBis=Das System zum Protokollieren von Ereignissen in unveränderbaren Logs wurde deaktiviert. Dies ist möglich, da noch keine Aufzeichnungen vorgenommen wurden. 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..f3ef38c8351 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) @@ -45,7 +45,7 @@ BoxTitleLastModifiedContacts=Zuletzt bearbeitete Kontakte/Adressen (maximal %s) BoxMyLastBookmarks=Meine %s neuesten Lesezeichen BoxOldestExpiredServices=Die ältesten abgelaufenen aktiven Dienste BoxLastExpiredServices=Neueste Verträge mit abgelaufenen Leistungen (maximal %s) -BoxTitleLastActionsToDo=Anstehende Termine / Aufgaben (maximal %s) +BoxTitleLastActionsToDo=Anstehende Termine/Aufgaben (maximal %s) BoxTitleLastContracts=Zuletzt bearbeitete Verträge (maximal %s) BoxTitleLastModifiedDonations=Letzte %s Spenden, die geändert wurden BoxTitleLastModifiedExpenses=Neueste %s Spesenabrechnungen, die geändert wurden @@ -110,9 +110,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 984061788b4..984bf8dea3d 100644 --- a/htdocs/langs/de_DE/cashdesk.lang +++ b/htdocs/langs/de_DE/cashdesk.lang @@ -5,7 +5,7 @@ CashDeskBankCash=Bankkonto (Bargeld) CashDeskBankCB=Bankkonto (Kartenzahlung) CashDeskBankCheque=Bankkonto (Scheckzahlung) CashDeskWarehouse=Warenlager -CashdeskShowServices=Verkauf von Dienstleistungen +CashdeskShowServices=Verkauf von Leistungen CashDeskProducts=Produkte CashDeskStock=Lager CashDeskOn=An @@ -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,9 +49,9 @@ 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=Kassenschließung für den Zeitraum durchgeführt +CashFenceDone=Kassenschluss für den Zeitraum durchgeführt NbOfInvoices=Anzahl der Rechnungen Paymentnumpad=Art des Pads zur Eingabe der Zahlung Numberspad=Nummernblock @@ -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,11 +99,11 @@ 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=Das "Kasse kontrollieren" Popup-Fenster anzeigen beim Öffnen des POS -CloseCashFence=Schließen Sie die Kassensteuerung +ControlCashOpening=Beim Öffnen der Kasse das Popup „Kasse kontrollieren“ anzeigen +CloseCashFence=Steuerung, um Kasse zu schließen CashReport=Kassenbericht MainPrinterToUse=Quittungsdrucker OrderPrinterToUse=Drucker für Bestellungen @@ -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 @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=Schaltfläche "Drucken ohne Details" hinzufügen PrintWithoutDetailsLabelDefault=Einzelposition standardmäßig ohne Details drucken 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 bc54cc2f448..fac2e6f3d93 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- / Service-Schlagwörter / 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,12 +32,12 @@ 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. @@ -90,11 +90,14 @@ CategorieRecursivHelp=Wenn die Option aktiviert ist, wird beim Hinzufügen eines 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 +AssignCategoryTo=Kategorie zuweisen zu 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 +AddObjectIntoCategory=Objekt zur Kategorie hinzufügen diff --git a/htdocs/langs/de_DE/commercial.lang b/htdocs/langs/de_DE/commercial.lang index b1d133119ea..ef4728401fb 100644 --- a/htdocs/langs/de_DE/commercial.lang +++ b/htdocs/langs/de_DE/commercial.lang @@ -6,12 +6,12 @@ Customers=Kunden Prospect=Interessent Prospects=Interessenten DeleteAction=Ereignis löschen -NewAction=erstelle Termin/Aufgabe +NewAction=Neuer Termin/Aufgabe AddAction=Termin/Aufgabe erstellen AddAnAction=Erstelle Termin/Aufgabe AddActionRendezVous=erstelle Termin ConfirmDeleteAction=Dieses Ereignis wirklich löschen ? -CardAction=Ereignis - Übersicht +CardAction=Ereignis – Übersicht ActionOnCompany=Verknüpftes Unternehmen ActionOnContact=Verknüpfter Kontakt TaskRDVWith=Termin mit %s @@ -19,7 +19,7 @@ ShowTask=Aufgabe anzeigen ShowAction=Ereignis anzeigen ActionsReport=Ereignis Journal ThirdPartiesOfSaleRepresentative=Partner mit Vertriebsmitarbeiter -SaleRepresentativesOfThirdParty=Vertriebsmitarbeiter des Geschäftspartner +SaleRepresentativesOfThirdParty=Vertriebsmitarbeiter des Geschäftspartners SalesRepresentative=Vertriebsmitarbeiter SalesRepresentatives=Vertriebsmitarbeiter SalesRepresentativeFollowUp=Vertriebsmitarbeiter (Follow-up) @@ -74,8 +74,8 @@ StatusProsp=Kontaktstatus DraftPropals=Entworfene Angebote NoLimit=ohne Begrenzung ToOfferALinkForOnlineSignature=Link zur Onlinesignatur -WelcomeOnOnlineSignaturePage=Wilkommen auf der Seite um Angebote von %s zu akzeptieren -ThisScreenAllowsYouToSignDocFrom=Auf dieser Seite können Angebote akzeptiert und unterschreiben oder ablehnt werden -ThisIsInformationOnDocumentToSign=Information zum Dokument zum Akzeptieren oder Ablehnen +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 SignatureProposalRef=Unterschrift des Angebotes %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 500642bc9c8..0797e3164ab 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -1,26 +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, ...) @@ -38,9 +39,9 @@ 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 der gleichen Information 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 nur eines Geschäftspartners aus. +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 Subsidiaries=Tochtergesellschaften ReportByMonth=Auswertung nach Monaten @@ -51,12 +52,15 @@ CivilityCode=Anrede RegisteredOffice=Firmensitz Lastname=Nachname Firstname=Vorname -PostOrFunction=Position / Funktion +RefEmployee=Mitarbeiterreferenz +NationalRegistrationNumber=Nationale Registrierungsnummer +PostOrFunction=Position/Funktion UserTitle=Anrede -NatureOfThirdParty=Art des Geschäftspartner +NatureOfThirdParty=Art des Geschäftspartners NatureOfContact=Art des Kontakts Address=Adresse State=Bundesland +StateId=Staats-ID StateCode=Länder-/Regioncode StateShort=Staat Region=Region @@ -69,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 @@ -82,19 +86,19 @@ DefaultLang=Standardsprache VATIsUsed=Umsatzsteuerpflichtig VATIsUsedWhenSelling=Festlegung, ob dieser Geschäftspartner USt. auf seinen Kundenrechnungen ausweist VATIsNotUsed=Umsatzsteuerbefreit -CopyAddressFromSoc=Adresse vom Partner übernehmen +CopyAddressFromSoc=Adresse vom Geschäftspartner übernehmen ThirdpartyNotCustomerNotSupplierSoNoRef=Geschäftspartner ist weder Kunde noch Lieferant, keine Objekte zum verknüpfen -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Partner ist weder Kunde noch Lieferant, Rabatte sind nicht verfügbar +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Geschäftspartner ist weder Kunde noch Lieferant, Rabatte sind nicht verfügbar PaymentBankAccount=Bankkonto für Zahlungen OverAllProposals=Angebote OverAllOrders=Bestellungen OverAllInvoices=(Kunden-)Rechnungen OverAllSupplierProposals=Preisanfragen ##### Local Taxes ##### -LocalTax1IsUsed=Nutze zweiten Steuersatz +LocalTax1IsUsed=Zweiten Steuersatz verwenden LocalTax1IsUsedES= RE wird verwendet LocalTax1IsNotUsedES= RE wird nicht verwendet -LocalTax2IsUsed=Nutze dritten Steuersatz +LocalTax2IsUsed=Dritten Steuersatz verwenden LocalTax2IsUsedES= IRPF wird verwendet LocalTax2IsNotUsedES= IRPF wird nicht verwendet WrongCustomerCode=Kundencode ungültig @@ -102,6 +106,7 @@ WrongSupplierCode=Lieferantennummer ist ungültig CustomerCodeModel=Kundencode-Modell SupplierCodeModel=Lieferantennummern-Modell Gencod=Barcode +GencodBuyPrice=Barcode der Preis-Ref. ##### Professional ID ##### ProfId1Short=Prof. ID 1 ProfId2Short=Prof. ID 2 @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Prof. Id 1 (Handelsregister) ProfId2CM=Prof. Id 2 (Steuer-Nr./Steuer-ID) -ProfId3CM=Prof. Id 3 (Handelsregister-Nr.) -ProfId4CM=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=Nr. der Gründungsurkunde +ProfId4ShortCM=Nr. der Einlagenbescheinigung +ProfId5ShortCM=Andere ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -297,30 +302,30 @@ VATIntra=Umsatzsteuer-ID VATIntraShort=USt-IdNr. VATIntraSyntaxIsValid=Die Syntax ist gültig VATReturn=Mehrwertsteuererstattung -ProspectCustomer=Interessent / Kunde +ProspectCustomer=Interessent/Kunde Prospect=Interessent -CustomerCard=Kunde - Übersicht +CustomerCard=Kunde – Übersicht Customer=Kunde -CustomerRelativeDiscount=Kundenrabatt relativ -SupplierRelativeDiscount=Relativer Lieferantenrabatt -CustomerRelativeDiscountShort=Rabatt relativ +CustomerRelativeDiscount=Kundenrabatt prozentual +SupplierRelativeDiscount=Lieferantenrabatt prozentual +CustomerRelativeDiscountShort=Rabatt prozentual CustomerAbsoluteDiscountShort=Rabatt absolut CompanyHasRelativeDiscount=Dieser Kunde hat einen Rabatt von %s%% -CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmäßig keinen relativen Rabatt +CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmäßig keinen prozentualen Rabatt HasRelativeDiscountFromSupplier=Sie haben einen Standardrabatt von %s%% bei diesem Lieferanten -HasNoRelativeDiscountFromSupplier=Kein relativer Rabatt bei diesem Lieferanten verfügbar +HasNoRelativeDiscountFromSupplier=Kein prozentualer Rabatt bei diesem Lieferanten CompanyHasAbsoluteDiscount=Dieser Kunde hat ein Guthaben verfügbar (Gutschriften oder Anzahlungen) für %s %s CompanyHasDownPaymentOrCommercialDiscount=Dieser Kunde hat ein Guthaben verfügbar (Gutschriften oder Anzahlungen) für%s %s CompanyHasCreditNote=Dieser Kunde hat noch Gutschriften über %s %s -HasNoAbsoluteDiscountFromSupplier=Keine Gutschriften von diesem Lieferanten verfügbar +HasNoAbsoluteDiscountFromSupplier=Keine Rabattgutschrift von diesem Lieferanten verfügbar HasAbsoluteDiscountFromSupplier=Sie haben Rabatte (Gutschrift / Vorauszahlung) über %s%s bei diesem Lieferanten verfügbar HasDownPaymentOrCommercialDiscountFromSupplier=Sie haben Rabatte (Restguthaben / Vorauszahlung) über %s%s bei diesem Lieferanten verfügbar HasCreditNoteFromSupplier=Sie haben Gutschriften über %s%s bei diesem Lieferanten verfügbar -CompanyHasNoAbsoluteDiscount=Dieser Kunde hat keine Rabattgutschriften zur Verfügung -CustomerAbsoluteDiscountAllUsers=Absolute Kundenrabatte (von allen Nutzern gewährte) -CustomerAbsoluteDiscountMy=Absolute Kundenrabatte (Durch sie persönlich gewährt) -SupplierAbsoluteDiscountAllUsers=Absolute Lieferantenrabatte (von allen Benutzern erfasst) -SupplierAbsoluteDiscountMy=Absolute Lieferantenrabatte (durch sie erfasst) +CompanyHasNoAbsoluteDiscount=Dieser Kunde hat keine Rabattgutschrift zur Verfügung +CustomerAbsoluteDiscountAllUsers=Absolute Kundenrabatte (von allen Benutzern gewährte) +CustomerAbsoluteDiscountMy=Absolute Kundenrabatte (durch Sie persönlich gewährt) +SupplierAbsoluteDiscountAllUsers=Absolute Lieferantenrabatte (von allen Benutzern erfasste) +SupplierAbsoluteDiscountMy=Absolute Lieferantenrabatte (durch Sie persönlich erfasst) DiscountNone=Keine Vendor=Lieferant Supplier=Lieferant @@ -333,40 +338,40 @@ 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=Buchhaltungskonto +AccountancyCode=Buchungskonto CustomerCode=Kundennummer SupplierCode=Lieferantennummer CustomerCodeShort=Kunden-Nr. SupplierCodeShort=Lieferantennummer CustomerCodeDesc=eindeutige Kundennummer SupplierCodeDesc=eindeutige Lieferantennummer -RequiredIfCustomer=Erforderlich falls Geschäftspartner Kunde oder Interessent ist -RequiredIfSupplier=Erforderlich falls Partner Lieferant ist +RequiredIfCustomer=Erforderlich, falls Geschäftspartner Kunde oder Interessent ist +RequiredIfSupplier=Erforderlich, falls Geschäftspartner Lieferant ist ValidityControledByModule=Vom Modul kontrollierte Gültigkeit ThisIsModuleRules=Regeln für dieses Modul -ProspectToContact=Lead zu kontaktieren -CompanyDeleted=Firma "%s" aus der Datenbank gelöscht. +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) -ContactType=Kontaktart +ContactType=Rolle des Kontakts ContactForOrders=Bestellungskontakt ContactForOrdersOrShipments=Kontakt für den Auftrag oder die Lieferung ContactForProposals=Angebotskontakt ContactForContracts=Vertragskontakt ContactForInvoices=Rechnungskontakt NoContactForAnyOrder=Kein Kontakt für Bestellungen definiert -NoContactForAnyOrderOrShipments=Dieser Kontakt kann nicht für Bestellungen oder Lieferungen verwendet werden +NoContactForAnyOrderOrShipments=Dieser Kontakt kann nicht für Aufträge oder Lieferungen verwendet werden NoContactForAnyProposal=Kein Kontakt für Angebote definiert NoContactForAnyContract=Kein Kontakt für Verträge definiert NoContactForAnyInvoice=Kein Kontakt für Rechnungen definiert @@ -393,7 +398,7 @@ ContactPrivate=privat ContactPublic=öffentlich ContactVisibility=Sichtbarkeit ContactOthers=Sonstige -OthersNotLinkedToThirdParty=Weitere mit keinem Partner verknüpfte Projekte +OthersNotLinkedToThirdParty=Weitere mit keinem Geschäftspartner verknüpfte Projekte ProspectStatus=Lead-Status PL_NONE=Keine PL_UNKNOWN=Unbekannt @@ -423,15 +428,15 @@ ChangeContactDone=Status auf 'Erfolgreich kontaktiert' ändern ProspectsByStatus=Interessenten nach Status NoParentCompany=keine Muttergesellschaft ExportCardToFormat=Karte in Format exportieren -ContactNotLinkedToCompany=Kontakt keinem Partner zugeordnet +ContactNotLinkedToCompany=Kontakt ist keinem Geschäftspartner zugeordnet DolibarrLogin=Dolibarr-Benutzername -NoDolibarrAccess=Kein Zugang -ExportDataset_company_1=Partner (Firmen/Stiftungen/Natürliche Personen) und ihre Eigenschaften +NoDolibarrAccess=Kein Dolibarr-Zugang +ExportDataset_company_1=Geschäftspartner (Firmen/Stiftungen/Natürliche Personen) und ihre Eigenschaften ExportDataset_company_2=Kontakte und ihre Eigenschaften -ImportDataset_company_1=Partner und Eigenschaften +ImportDataset_company_1=Geschäftspartner und ihre Eigenschaften ImportDataset_company_2=Kontakte/Adressen und Attribute -ImportDataset_company_3=Bankkonten des Partners -ImportDataset_company_4=Partner - Außendienstmitarbeiter (Zuweisen von Außendienstmitarbeitern zu Unternehmen) +ImportDataset_company_3=Bankkonten des Geschäftspartners +ImportDataset_company_4=Dem Geschäftspartner zugeordneter Vertriebsmitarbeiter (Vertriebsmitarbeiter/Benutzer zu Unternehmen zuordnen) PriceLevel=Preisstufe PriceLevelLabels=Preisniveau Etiketten DeliveryAddress=Lieferadresse @@ -440,7 +445,7 @@ SupplierCategory=Lieferantenkategorie JuridicalStatus200=Unabhängig DeleteFile=Datei löschen ConfirmDeleteFile=Möchten Sie diese Datei wirklich löschen? -AllocateCommercial=Dem Vertriebsmitarbeiter zugewiesen +AllocateCommercial=Diesem Vertriebsmitarbeiter zugeordnet Organization=Organisation FiscalYearInformation=Geschäftsjahr FiscalMonthStart=erster Monat des Geschäftsjahres @@ -456,13 +461,13 @@ 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 ActivityCeased=inaktiv ThirdPartyIsClosed=Der Geschäftspartner ist inaktiv. -ProductsIntoElements=Liste der Produkte / Dienstleistungen, die %s zugeordnet sind +ProductsIntoElements=Liste der Produkte/Leistungen, die %s zugeordnet sind CurrentOutstandingBill=Ausstehender Rechnungsbetrag OutstandingBill=Max. für ausstehende Rechnungsbeträge OutstandingBillReached=Kreditlimite erreicht @@ -471,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 @@ -482,9 +487,9 @@ NewCustomerSupplierCodeProposed=Kunden- oder Lieferantennummer wird bereits verw KeepEmptyIfGenericAddress=Lassen Sie dieses Feld leer, wenn diese Adresse eine generische Adresse ist #Imports PaymentTypeCustomer=Zahlungsart - Kunde -PaymentTermsCustomer=Zahlungsbedingung - Kunde +PaymentTermsCustomer=Zahlungsbedingungen - Kunde PaymentTypeSupplier=Zahlungsart - Lieferant -PaymentTermsSupplier=Zahlungsbedingung - Lieferant +PaymentTermsSupplier=Zahlungsbedingungen - Lieferant PaymentTypeBoth=Zahlungsart - Kunde und Lieferant MulticurrencyUsed=Mehrere Währungen benutzen MulticurrencyCurrency=Währung diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index 6868e1dd00d..35463b55e12 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -17,10 +17,10 @@ Accountparent=Übergeordnetes Konto Accountsparent=Übergeordnete Konten Income=Einnahmen Outcome=Ausgaben -MenuReportInOut=Ergebnis / Geschäftsjahr -ReportInOut=Übersicht Aufwand/Ertrag -ReportTurnover=Verrechneter Umsatz -ReportTurnoverCollected=Realisierter Umsatz +MenuReportInOut=Einnahmen/Ausgaben +ReportInOut=Saldo der Einnahmen und Ausgaben +ReportTurnover=Umsatz fakturiert +ReportTurnoverCollected=Umsatz abgerechnet PaymentsNotLinkedToInvoice=Zahlungen mit keiner Rechnung und damit auch keinem Partner verbunden PaymentsNotLinkedToUser=Zahlungen mit keinem Benutzer verbunden Profit=Gewinn @@ -66,27 +66,27 @@ VATCollected=Erhobene USt. StatusToPay=Zu zahlen SpecialExpensesArea=Bereich für alle Sonderzahlungen VATExpensesArea=Bereich für alle TVA-Zahlungen -SocialContribution=Sozialabgabe oder Steuersatz -SocialContributions= Steuern- oder Sozialabgaben -SocialContributionsDeductibles=Abzugsberechtigte Sozialabgaben oder Steuern +SocialContribution=Steuer oder Sozialabgabe +SocialContributions= Steuern und Sozialabgaben +SocialContributionsDeductibles=Abzugsfähige Steuern und Sozialabgaben SocialContributionsNondeductibles=Nicht abzugsberechtigte Sozialabgaben oder Steuern DateOfSocialContribution=Datum der Sozial- oder Fiskalsteuer LabelContrib=Beitrag Bezeichnung TypeContrib=Beitrag Typ MenuSpecialExpenses=Sonstige Ausgaben MenuTaxAndDividends=Steuern und Abgaben -MenuSocialContributions=Sozialabgaben/Steuern +MenuSocialContributions=Steuern/Sozialabgaben MenuNewSocialContribution=Neue Abgabe/Steuer NewSocialContribution=Neue Sozialabgabe / Steuersatz AddSocialContribution=Sozialabgabe / Steuersatz hinzufügen -ContributionsToPay=Sozialabgaben/Unternehmenssteuern zu bezahlen +ContributionsToPay=Fällige Steuern/Sozialabgaben AccountancyTreasuryArea=Rechnungs- und Zahlungsbereich NewPayment=Neue Zahlung PaymentCustomerInvoice=Zahlung Kundenrechnung PaymentSupplierInvoice=Zahlung Lieferantenrechnung -PaymentSocialContribution=Sozialabgaben-/Steuer Zahlung +PaymentSocialContribution=Zahlung von Steuern/Sozialabgaben PaymentVat=USt.-Zahlung -AutomaticCreationPayment=Die Zahlung automatisch aufzeichnen +AutomaticCreationPayment=Zahlung automatisch erstellen ListPayment=Liste der Zahlungen ListOfCustomerPayments=Liste der Kundenzahlungen ListOfSupplierPayments=Liste der Lieferantenzahlungen @@ -112,12 +112,12 @@ VATRefund=Umsatzsteuer Rückerstattung NewVATPayment=Neue Umsatzsteuer Zahlung NewLocalTaxPayment=Neue Steuer %s Zahlung Refund=Rückerstattung -SocialContributionsPayments=Sozialabgaben-/Steuer Zahlungen +SocialContributionsPayments=Zahlungen von Steuern/Sozialabgaben ShowVatPayment=Zeige USt. Zahlung TotalToPay=Zu zahlender Gesamtbetrag BalanceVisibilityDependsOnSortAndFilters=Der Kontostand ist in dieser Liste nur sichtbar, wenn die Tabelle nach %s sortiert und nach 1 Bankkonto gefiltert ist (ohne andere Filter). -CustomerAccountancyCode=Kontierungscode Kunde -SupplierAccountancyCode=Kontierungscode Lieferanten +CustomerAccountancyCode=Buchungskonto Kunde +SupplierAccountancyCode=Buchungskonto Lieferanten CustomerAccountancyCodeShort=Buchh. Kunden-Konto SupplierAccountancyCodeShort=Buchh.-Lieferanten-Konto AccountNumber=Kontonummer @@ -143,12 +143,14 @@ PaySalary=Zahlen Sie eine Gehaltskarte ConfirmPaySocialContribution=Sind Sie sicher, dass Sie diese Sozial- oder Fiskussteuer als bezahlt einstufen möchten? ConfirmPayVAT=Möchten Sie diese Umsatzsteuererklärung wirklich als bezahlt einstufen? ConfirmPaySalary=Sind Sie sicher, dass Sie diese Gehaltskarte als bezahlt einstufen möchten? -DeleteSocialContribution=Lösche Sozialabgaben-, oder Steuerzahlung +DeleteSocialContribution=Zahlung von Steuern/Sozialabgaben löschen DeleteVAT=Löschen Sie eine Umsatzsteuererklärung DeleteSalary=Löschen Sie eine Gehaltskarte +DeleteVariousPayment=Löschen einer Zahlung vom Typ " andere" ConfirmDeleteSocialContribution=Möchten Sie diese Sozial- / Fiskussteuerzahlung wirklich löschen? ConfirmDeleteVAT=Möchten Sie diese Umsatzsteuererklärung wirklich löschen? -ConfirmDeleteSalary=Sind Sie sicher, dass Sie dieses Gehalt löschen wollen? +ConfirmDeleteSalary=Möchten Sie dieses Gehalt wirklich löschen? +ConfirmDeleteVariousPayment=Möchten Sie diese Zahlung vom Typ "andere" wirklich löschen? ExportDataset_tax_1=Steuer- und Sozialabgaben und Zahlungen CalcModeVATDebt=Modus %s USt. auf Engagement Rechnungslegung %s. CalcModeVATEngagement=Modus %sTVA auf Einnahmen-Ausgaben%s. @@ -239,7 +241,7 @@ Mode2=Methode 2 CalculationRuleDesc=Zur Berechnung der Gesamt-USt. 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. CalculationRuleDescSupplier=Wählen Sie je nach Anbieter die geeignete Methode aus, um dieselbe Berechnungsregel anzuwenden und dasselbe Ergebnis zu erzielen, das Ihr Anbieter erwartet. 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. +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) @@ -260,10 +262,10 @@ BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Basierend SameCountryCustomersWithVAT=Nationale Kunden berichten BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Basierend auf den ersten beiden Buchstaben der Mehrwertsteuernummer die gleiche ist wie Ihr eigener Unternehmens Ländercode. LinkedFichinter=mit Serviceauftrag verbinden -ImportDataset_tax_contrib=Sozialabgaben/Steuern +ImportDataset_tax_contrib=Steuern/Sozialabgaben ImportDataset_tax_vat=USt.-Zahlungen ErrorBankAccountNotFound=Fehler: Bankkonto nicht gefunden -FiscalPeriod=Buchhaltungs Periode +FiscalPeriod=Buchhaltungsperiode ListSocialContributionAssociatedProject=Liste der Sozialabgaben für dieses Projekt DeleteFromCat=Aus Kontengruppe entfernen AccountingAffectation=Kontierung zuweisen @@ -277,19 +279,19 @@ TurnoverbyVatrate=Verrechneter Umsatz pro Steuersatz TurnoverCollectedbyVatrate=Realisierter Umsatz pro Steuersatz PurchasebyVatrate=Einkäufe pro Steuersatz LabelToShow=Kurzbezeichnung -PurchaseTurnover=Kaufumsatz -PurchaseTurnoverCollected=Kaufumsatz gesammelt +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
    RulesPurchaseTurnoverTotalPurchaseJournal=Es enthält alle Belastungszeilen aus dem Einkaufsjournal. RulesPurchaseTurnoverOfExpenseAccounts=Es umfasst (Lastschrift - Gutschrift) von Zeilen für Produktkonten in der Gruppe AUSGABEN -ReportPurchaseTurnover=Kaufumsatz in Rechnung gestellt -ReportPurchaseTurnoverCollected=Kaufumsatz gesammelt +ReportPurchaseTurnover=Einkaufsumsatz fakturiert +ReportPurchaseTurnoverCollected=Einkaufsumsatz abgerechnet IncludeVarpaysInResults = Nehmen Sie verschiedene Zahlungen in Berichte auf IncludeLoansInResults = Kredite in Berichte aufnehmen -InvoiceLate30Days = Überfällige Rechnungen (> 30 Tage) -InvoiceLate15Days = Überfällige Rechnungen (15 bis 30 Tage) -InvoiceLateMinus15Days = Überfällige Rechnungen (< 15 Tage) +InvoiceLate30Days = Überfällig (> 30 Tage) +InvoiceLate15Days = Überfällig (15 bis 30 Tage) +InvoiceLateMinus15Days = Überfällig (< 15 Tage) InvoiceNotLate = Demnächst fällig (< 15 Tage) InvoiceNotLate15Days = Demnächst fällig (15 bis 30 Tage) InvoiceNotLate30Days = Demnächst fällig (> 30 Tage) diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index 05ed96d7ec0..87886ef5226 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -2,103 +2,106 @@ ContractsArea=Übersicht Verträge/Abonnements ListOfContracts=Liste der Verträge AllContracts=Alle Verträge -ContractCard=Vertrag - Übersicht -ContractStatusNotRunning=Läuft nicht +ContractCard=Vertrag – Übersicht +ContractStatusNotRunning=Nicht aktiviert ContractStatusDraft=Entwurf ContractStatusValidated=Freigegeben ContractStatusClosed=Geschlossen -ServiceStatusInitial=Nicht ausgeführt +ServiceStatusInitial=Nicht aktiviert ServiceStatusRunning=Läuft ServiceStatusNotLate=Läuft (noch nicht abgelaufen) ServiceStatusNotLateShort=Nicht abgelaufen ServiceStatusLate=Läuft (abgelaufen) ServiceStatusLateShort=Abgelaufen ServiceStatusClosed=Geschlossen -ShowContractOfService=Zeige Verträge mit Leistungen +ShowContractOfService=Zeige Vertrag zur Leistung Contracts=Verträge ContractsSubscriptions=Verträge/Abonnements -ContractsAndLine=Verträge und Zeilen von Verträgen +ContractsAndLine=Verträge und Vertragspositionen Contract=Vertrag -ContractLine=Vertragszeile +ContractLine=Vertragsposition +ContractLines=Vertragspositionen Closing=Schließen NoContracts=Keine Verträge MenuServices=Leistungen MenuInactiveServices=Inaktive Leistungen -MenuRunningServices=Laufende Leistungen +MenuRunningServices=Aktive Leistungen MenuExpiredServices=Abgelaufene Leistungen -MenuClosedServices=Geschlossene Services +MenuClosedServices=Geschlossene Leistungen NewContract=Neuer Vertrag NewContractSubscription=Neuer Vertrag oder Abonnement AddContract=Vertrag erstellen -DeleteAContract=Löschen eines Vertrages -ActivateAllOnContract=Alle Dienstleistungen aktivieren -CloseAContract=Schließen eines Vertrages -ConfirmDeleteAContract=Möchten Sie diesen Vertrag und alle verbundenen Dienste wirklich löschen? +DeleteAContract=Vertrag löschen +ActivateAllOnContract=Alle Leistungen aktivieren +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 Dienstleistungen aktivieren (Die noch nicht aktiv sind). Sollen wirklich alle Dienstleistungen aktiviert werden? +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? -ConfirmCloseService=Möchten Sie diesen Service wirklich mit Datum %s deaktivieren? +ConfirmCloseService=Möchten Sie diese Leistung wirklich mit Datum %s deaktivieren? ValidateAContract=Einen Vertrag freigeben -ActivateService=Service aktivieren -ConfirmActivateService=Möchten Sie dieses Service wirklich mit Datum %s aktivieren? +ActivateService=Leistung aktivieren +ConfirmActivateService=Möchten Sie diese Leistung wirklich mit Datum %s aktivieren? RefContract=Vertrag Nr. DateContract=Vertragsdatum -DateServiceActivate=Service-Aktivierungsdatum -ListOfServices=Liste der Services -ListOfInactiveServices=Liste der nicht aktiven Services -ListOfExpiredServices=Liste der abgelaufenen, aktiven Services -ListOfClosedServices=Liste der geschlossenen Verträge/Abos -ListOfRunningServices=Liste aktiver Services -NotActivatedServices=Inaktive Services (in freigegebenen Verträgen) +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 +ListOfRunningServices=Liste aktiver Leistungen +NotActivatedServices=Inaktive Leistungen (in freigegebenen Verträgen) BoardNotActivatedServices=Zu aktivierende Leistungen in freigegebenen Verträgen -BoardNotActivatedServicesShort=Zu aktivierende Services +BoardNotActivatedServicesShort=Zu aktivierende Leistungen LastContracts=Neueste Verträge (maximal %s) LastModifiedServices=Zuletzt bearbeitete Leistungen (maximal %s) ContractStartDate=Vertragsbeginn ContractEndDate=Vertragsende DateStartPlanned=Geplanter Beginn -DateStartPlannedShort=Beginn +DateStartPlannedShort=Geplanter Beginn DateEndPlanned=Geplantes Ende DateEndPlannedShort=Geplantes Ende -DateStartReal=Effektiver Beginn -DateStartRealShort=effektives Startdatum -DateEndReal=Effektives Ende -DateEndRealShort=effektives Enddatum +DateStartReal=Tatsächlicher Beginn +DateStartRealShort=Tatsächlicher Beginn +DateEndReal=Tatsächliches Ende +DateEndRealShort=Tatsächliches Ende CloseService=Leistung schließen -BoardRunningServices=laufende Leistungen -BoardRunningServicesShort=laufende Leistungen -BoardExpiredServices=abgelaufene Leistungen -BoardExpiredServicesShort=abgelaufene Leistungen -ServiceStatus=Leistungs-Status -DraftContracts=Vertragsentwürfe +BoardRunningServices=Aktive Leistungen +BoardRunningServicesShort=Aktive Leistungen +BoardExpiredServices=Abgelaufene Leistungen +BoardExpiredServicesShort=Abgelaufene Leistungen +ServiceStatus=Status der Leistung +DraftContracts=Verträge im Status Entwurf CloseRefusedBecauseOneServiceActive=Der Vertrag kann nicht geschlossen werden, da noch mindestens eine offene Leistung vorhanden ist. -ActivateAllContracts=Alle Vertragszeilen aktivieren -CloseAllContracts=schließe alle Vertragsleistungen +ActivateAllContracts=Alle Vertragspositionen aktivieren +CloseAllContracts=Alle Vertragspositionen schließen DeleteContractLine=Vertragsposition löschen -ConfirmDeleteContractLine=Möchten Sie diese Position wirklich löschen? -MoveToAnotherContract=In einen anderen Vertrag verschieben -ConfirmMoveToAnotherContract=Haben Sie einen neuen Vertrag für das Verschieben gewählt und möchten Sie diesen Vorgang jetzt durchführen. -ConfirmMoveToAnotherContractQuestion=Auswählen, in welchen bestehenden Vertrag (desselben Geschäftspartners) diese Dienstleistung verschoben werden soll ! -PaymentRenewContractId=Erneuere Vertragsposition (Nummer %s) -ExpiredSince=Abgelaufen seit -NoExpiredServices=Keine abgelaufen aktiven Dienste +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) +ExpiredSince=Ablaufdatum +NoExpiredServices=Keine abgelaufen aktiven Leistungen ListOfServicesToExpireWithDuration=Liste der Leistungen die in %s Tagen ablaufen -ListOfServicesToExpireWithDurationNeg=Liste der Services die seit mehr als %s Tagen abgelaufen sind -ListOfServicesToExpire=Liste der Services die ablaufen -NoteListOfYourExpiredServices=Diese Liste enthält nur Leistungen an Partner, bei denen Sie als Vertreter angegeben sind. -StandardContractsTemplate=Standard Vertragsschablone +ListOfServicesToExpireWithDurationNeg=Liste der Leistungen die seit mehr als %s Tagen abgelaufen sind +ListOfServicesToExpire=Liste der Leistungen die ablaufen +NoteListOfYourExpiredServices=Diese Liste enthält nur Leistungen für Geschäftspartner, bei denen Sie als Vertreter angegeben sind. +StandardContractsTemplate=Standardvorlage für Verträge ContactNameAndSignature=Für %s, Name und Unterschrift -OnlyLinesWithTypeServiceAreUsed=Nur die Zeile der Kategorie "Service" wird kopiert. +OnlyLinesWithTypeServiceAreUsed=Es werden nur Positionen vom Typ „Leistung“ kopiert. ConfirmCloneContract=Möchten Sie den Vertrag %s wirklich duplizieren? -LowerDateEndPlannedShort=Frühestes geplantes Enddatum der aktiven Dienstleistungen +LowerDateEndPlannedShort=Frühestes geplantes Enddatum der aktiven Leistungen SendContractRef=Vertragsinformationen __REF__ -OtherContracts=weitere Verträge +OtherContracts=Andere Verträge ##### Types de contacts ##### -TypeContact_contrat_internal_SALESREPSIGN=Vertragsunterzeichnung durch Vertreter -TypeContact_contrat_internal_SALESREPFOLL=Vertrag Nachbetreuung durch Vertreter +TypeContact_contrat_internal_SALESREPSIGN=Vertreter für die Vertragsunterzeichnung +TypeContact_contrat_internal_SALESREPFOLL=Vertreter für die Nachbetreuung des Vertrags TypeContact_contrat_external_BILLING=Rechnungskontakt des Kunden -TypeContact_contrat_external_CUSTOMER=Nachbetreuung durch Kundenkontakt -TypeContact_contrat_external_SALESREPSIGN=Vertragsunterzeichnung durch Kundenkontakt -HideClosedServiceByDefault=Verstecke beendete Dienste (standard) -ShowClosedServices=Zeige beendete Dienste -HideClosedServices=Verstecke beendete Dienste +TypeContact_contrat_external_CUSTOMER=Kundenkontakt für die Nachbetreuung +TypeContact_contrat_external_SALESREPSIGN=Kundenkontakt für die Vertragsunterzeichnung +HideClosedServiceByDefault=Verstecke beendete Leistungen (standard) +ShowClosedServices=Zeige beendete Leistungen +HideClosedServices=Verstecke beendete Leistungen +UserStartingService=Benutzer, der die Leistung startet +UserClosingService=Benutzer, der die Leistung beendet diff --git a/htdocs/langs/de_DE/cron.lang b/htdocs/langs/de_DE/cron.lang index 0079f2db79f..2d6a6b86deb 100644 --- a/htdocs/langs/de_DE/cron.lang +++ b/htdocs/langs/de_DE/cron.lang @@ -9,7 +9,7 @@ Permission23104 = Führe geplanten Job aus CronSetup=Jobverwaltungs-Konfiguration URLToLaunchCronJobs=URL zum Überprüfen und Starten qualifizierter Cron-Jobs über einen Browser OrToLaunchASpecificJob=Oder um einen bestimmten Job über einen Browser zu überprüfen und zu starten -KeyForCronAccess=Sicherheitsschlüssel für URL zum Starten von Cronjobs +KeyForCronAccess=Sicherheitsschlüssel für URL zum Starten von Cron-Jobs FileToLaunchCronJobs=Befehlszeile zum Überprüfen und Starten von qualifizierten Cron-Jobs CronExplainHowToRunUnix=In Unix-Umgebung sollten Sie die folgenden crontab-Eintrag verwenden, um die Befehlszeile alle 5 Minuten ausführen CronExplainHowToRunWin=In Microsoft™ Windows Umgebungen können Sie die Aufgabenplanung benutzen, um die Kommandozeile alle 5 Minuten aufzurufen. @@ -18,21 +18,21 @@ CronMethodNotAllowed=Die Methode %s der Klasse %s befindet sich in der schwarzen 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 # Menu -EnabledAndDisabled=Aktiviert und Deaktiviert +EnabledAndDisabled=Aktiviert und deaktiviert # Page list CronLastOutput=Ausgabe der letzten Ausführung CronLastResult=Letzter Resultatcode CronCommand=Befehl -CronList=Geplante Aufträge -CronDelete=Geplante Aufgabe(n) löschen +CronList=Geplante Jobs +CronDelete=Geplante Jobs löschen CronConfirmDelete=Sind Sie sicher, dass Sie diese geplanten Aufträge jetzt löschen möchten? -CronExecute=Geplanter Auftrag jetzt ausführen +CronExecute=Geplanten Job jetzt ausführen 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 CronNone=Keine -CronDtStart=nicht vor -CronDtEnd=nicht nach +CronDtStart=Nicht vor +CronDtEnd=Nicht nach CronDtNextLaunch=Nächste Ausführung CronDtLastLaunch=Startdatum der letzten Ausführung CronDtLastResult=Enddatum der letzten Ausführung @@ -79,9 +79,11 @@ CronType_command=Shell-Befehl CronCannotLoadClass=Die Klassendatei %s kann nicht geladen werden (um die Klasse %s zu verwenden) CronCannotLoadObject=Die Klassendatei %s wurde geladen, aber das Objekt %s wurde nicht gefunden UseMenuModuleToolsToAddCronJobs=Gehen Sie in das Menü " Home - Admin-Tools - Geplante Jobs ", um geplante Jobs anzuzeigen und zu bearbeiten. -JobDisabled=Aufgabe deaktiviert -MakeLocalDatabaseDumpShort=lokales Datenbankbackup +JobDisabled=Job deaktiviert +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). 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 diff --git a/htdocs/langs/de_DE/deliveries.lang b/htdocs/langs/de_DE/deliveries.lang index 03e12567981..acf4de51b88 100644 --- a/htdocs/langs/de_DE/deliveries.lang +++ b/htdocs/langs/de_DE/deliveries.lang @@ -1,22 +1,22 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Lieferung -DeliveryRef=Fer. Lieferung -DeliveryCard=Empfangsbeleg +DeliveryRef=Ref. Lieferung +DeliveryCard=Lieferschein – Übersicht DeliveryOrder=Lieferschein DeliveryDate=Liefertermin -CreateDeliveryOrder=Zustellbeleg erzeugen +CreateDeliveryOrder=Lieferschein erstellen DeliveryStateSaved=Lieferstatus gespeichert. -SetDeliveryDate=Liefertermin setzen +SetDeliveryDate=Versanddatum festlegen ValidateDeliveryReceipt=Lieferschein freigeben -ValidateDeliveryReceiptConfirm=Sind Sie sicher, dass Sie diesen Lieferschein bestätigen wollen? +ValidateDeliveryReceiptConfirm=Sind Sie sicher, dass Sie diesen Lieferschein freigeben wollen? DeleteDeliveryReceipt=Lieferschein löschen DeleteDeliveryReceiptConfirm=Möchten Sie den Lieferschein %s wirklich löschen? DeliveryMethod=Versandart TrackingNumber=Sendungsnummer -DeliveryNotValidated=Lieferung nicht validiert +DeliveryNotValidated=Lieferung nicht freigegeben StatusDeliveryCanceled=Storniert StatusDeliveryDraft=Entwurf -StatusDeliveryValidated=erhalten +StatusDeliveryValidated=Erhalten # merou PDF model NameAndSignature=Name / Unterschrift: ToAndDate=An___________________________________ am ____/_____/__________ @@ -30,4 +30,4 @@ NonShippable=Nicht versandfertig ShowShippableStatus=Versandstatus anzeigen ShowReceiving=Zustellbestätigung anzeigen NonExistentOrder=Auftrag existiert nicht -StockQuantitiesAlreadyAllocatedOnPreviousLines = Bestandsmengen, die bereits in den vorangegangenen Zeilen zugeteilt wurden +StockQuantitiesAlreadyAllocatedOnPreviousLines = Bestandsmengen, die bereits in vorherigen Positionen zugeordnet wurden diff --git a/htdocs/langs/de_DE/dict.lang b/htdocs/langs/de_DE/dict.lang index d2a8bb25765..09e842d86b7 100644 --- a/htdocs/langs/de_DE/dict.lang +++ b/htdocs/langs/de_DE/dict.lang @@ -251,7 +251,7 @@ CountryMF=Saint Martin ##### Civilities ##### CivilityMME=Frau CivilityMR=Herr -CivilityMLE=Fräulein +CivilityMLE=Frau CivilityMTRE=Professor CivilityDR=Doktor ##### Currencies ##### diff --git a/htdocs/langs/de_DE/donations.lang b/htdocs/langs/de_DE/donations.lang index 1b8ccf1dc67..ddea4dae5bd 100644 --- a/htdocs/langs/de_DE/donations.lang +++ b/htdocs/langs/de_DE/donations.lang @@ -8,28 +8,28 @@ NewDonation=neue Spende DeleteADonation=eine Spende löschen ConfirmDeleteADonation=Sind Sie sicher, dass Sie diese Spende löschen möchten? PublicDonation=öffentliche Spenden -DonationsArea=Spenden - Übersicht -DonationStatusPromiseNotValidated=Zugesagt (nicht freigegeben) -DonationStatusPromiseValidated=Zugesagt (freigegeben) +DonationsArea=Spenden – Übersicht +DonationStatusPromiseNotValidated=Zusage (noch nicht freigegeben) +DonationStatusPromiseValidated=Zusage (freigegeben) DonationStatusPaid=Spende erhalten DonationStatusPromiseNotValidatedShort=Entwurf DonationStatusPromiseValidatedShort=Freigegeben DonationStatusPaidShort=Bezahlt DonationTitle=Spendenbescheinigung -DonationDate=Spendedatum +DonationDate=Spendendatum DonationDatePayment=Zahlungsdatum ValidPromess=Zusage freigeben DonationReceipt=Spendenbescheinigung -DonationsModels=Spendenvorlagen +DonationsModels=Vorlagen für Spendenbescheinigungen LastModifiedDonations=Zuletzt bearbeitete Spenden (maximal %s) -DonationRecipient=Spenden Empfänger +DonationRecipient=Empfänger der Spende IConfirmDonationReception=Der Empfänger bestätigt den Erhalt einer Spende in Höhe von MinimumAmount=Mindestbetrag ist %s -FreeTextOnDonations=Freier Text der in der Fußzeile angezeigt wird +FreeTextOnDonations=Freier Text, der in der Fußzeile angezeigt wird FrenchOptions=Optionen für Frankreich DONATION_ART200=Zeige Artikel 200 des CGI, falls Sie betroffen sind DONATION_ART238=Zeige Artikel 238 des CGI, falls Sie betroffen sind DONATION_ART885=Zeige Artikel 885 des CGI, falls Sie betroffen sind DonationPayment=Spendenzahlung -DonationValidated=Spende %s validiert -DonationUseThirdparties=Verwenden Sie einen bestehenden Geschäftskontakt als Grundlage von Spenderdaten +DonationValidated=Spende %s freigegeben +DonationUseThirdparties=Verwenden Sie einen bestehenden Geschäftspartners als Grundlage der Spenderdaten diff --git a/htdocs/langs/de_DE/ecm.lang b/htdocs/langs/de_DE/ecm.lang index 1315bef6f15..f8a78c892f1 100644 --- a/htdocs/langs/de_DE/ecm.lang +++ b/htdocs/langs/de_DE/ecm.lang @@ -3,8 +3,8 @@ ECMNbOfDocs=Anzahl der Dokumente im Verzeichnis ECMSection=Verzeichnis ECMSectionManual=Manueller Ordner ECMSectionAuto=Automatischer Ordner -ECMSectionsManual=manuelle Hierarchie -ECMSectionsAuto=automatische Hierarchie +ECMSectionsManual=Manuelle Hierarchie +ECMSectionsAuto=Automatische Hierarchie ECMSections=Verzeichnisse (Ordner) ECMRoot=Stammverzeichnis ECMNewSection=Neuer Ordner @@ -15,7 +15,7 @@ ECMNbOfSubDir=Anzahl Unterverzeichnisse ECMNbOfFilesInSubDir=Anzahl der Dateien in Unterverzeichnissen ECMCreationUser=Autor ECMArea=DMS/ECM Bereich -ECMAreaDesc=Das ECM-System (Electronic Content Management) erlaubt Ihnen das Speichern, Teilen und rasche Auffinden von Dokumenten. +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. ECMSectionWasRemoved=Verzeichnis %s wurde gelöscht. ECMSectionWasCreated=Verzeichnis %s wurde erstellt. @@ -33,14 +33,14 @@ CannotRemoveDirectoryContainsFilesOrDirs=Entfernen nicht möglich, da es Dateien CannotRemoveDirectoryContainsFiles=Entfernen nicht möglich, da noch Dateien enthalten sind. ECMFileManager=Dateiverwaltung ECMSelectASection=Wählen Sie ein Verzeichnis aus der Baumansicht aus. -DirNotSynchronizedSyncFirst=Dieses Verzeichnis scheint ausserhalb des ECM Moduls erstellt oder verändert worden zu sein. Sie müssen auf den "Aktualisieren"-Button klicken, um den Inhalt der Festplatte mit der Datenbank neu zu synchronisieren. +DirNotSynchronizedSyncFirst=Dieses Verzeichnis scheint außerhalb des DMS/ECM-Moduls erstellt oder verändert worden zu sein. Sie müssen auf den "Aktualisieren"-Button klicken, um den Inhalt der Festplatte mit der Datenbank neu zu synchronisieren. ReSyncListOfDir=Liste der Verzeichnisse nochmal synchronisieren HashOfFileContent=Hashwert der Datei NoDirectoriesFound=Keine Verzeichnisse gefunden FileNotYetIndexedInDatabase=Datei noch nicht in Datenbank indiziert (bitte Datei nochmals hochladen) -ExtraFieldsEcmFiles=Extrafelder Ecm-Dateien -ExtraFieldsEcmDirectories=Extrafelder Ecm-Verzeichnisse -ECMSetup=DMS Einstellungen +ExtraFieldsEcmFiles=Extrafelder DMS/ECM-Dateien +ExtraFieldsEcmDirectories=Extrafelder DMS/ECM-Verzeichnisse +ECMSetup=DMS/ECM-Einstellungen GenerateImgWebp=Erstelle ein Duplikat aller Bilder im .webp-Format, sofern diese in einem anderen Dateiformat vorliegen ConfirmGenerateImgWebp=Wenn Sie bestätigen, generieren Sie für alle Bilder, die sich derzeit in diesem Ordner befinden, ein Bild im .webp-Format (Unterordner werden nicht berücksichtigt)... ConfirmImgWebpCreation=Bestätigen Sie die Duplizierung aller Bilder diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index 5b7db2999ca..fcf914761dd 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=E-Mail %s scheint nicht korrekt zu sein (Domain hat keinen gül ErrorBadUrl=Die URL %s ist nicht korrekt ErrorBadValueForParamNotAString=Ungültiger Wert für Ihren Parameter. Normalerweise passiert das, wenn die Übersetzung fehlt. ErrorRefAlreadyExists=Die Referenz %s ist bereits vorhanden. +ErrorTitleAlreadyExists=Titel %s existiert bereits. ErrorLoginAlreadyExists=Benutzername %s existiert bereits. ErrorGroupAlreadyExists=Gruppe %s existiert bereits. ErrorEmailAlreadyExists=E-Mail %s existiert bereits. @@ -58,7 +59,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. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Eine weitere Datei mit dem Namen %s ist b ErrorPartialFile=Die Datei wurde nicht vollständig zum Server übertragen. ErrorNoTmpDir=Das temporäre Verzeichnis %s existiert nicht. ErrorUploadBlockedByAddon=Der Upload wurde durch ein PHP Apache-Plugin blockiert. -ErrorFileSizeTooLarge=Die Größe der gewählten Datei übersteigt den zulässigen Maximalwert. +ErrorFileSizeTooLarge=Die Dateigröße ist zu groß oder die Datei wurde nicht bereitgestellt. ErrorFieldTooLong=Das Feld %s ist zu lang. ErrorSizeTooLongForIntType=Die Größe überschreitet das Maximum für den Typ 'int' (%s Ziffern maximal) ErrorSizeTooLongForVarcharType=Die Größe überschreitet das Maximum für den Typ 'string' (%s Zeichen maximal) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=%s Fehler gefunden @@ -107,7 +109,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. @@ -149,10 +151,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 @@ -202,9 +204,9 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Nicht genug Bestand von Produkt %s, ErrorStockIsNotEnoughToAddProductOnProposal=Nicht genug Bestand von Produkt %s, um es einem neuen Angebot zuzufü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. @@ -218,7 +220,7 @@ ErrorBadLinkSourceSetButBadValueForRef=Der Link ist ungültig. Die Quelle für d 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) ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s muss im Entwurfstatus sein um es zu bestätigen. -ErrorObjectMustHaveLinesToBeValidated=Objekt %s muss Zeilen haben damit es bestätigt werden kann. +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. ErrorChooseBetweenFreeEntryOrPredefinedProduct=Sie müssen angeben ob der Artikel ein vordefiniertes Produkt ist oder nicht ErrorDiscountLargerThanRemainToPaySplitItBefore=Der Rabatt den Sie anwenden wollen ist grösser als der verbleibende Rechnungsbetrag. Teilen Sie den Rabatt in zwei kleinere Rabatte auf. @@ -267,9 +269,9 @@ ErrorAnAmountWithoutTaxIsRequired=Fehler, Betrag ist notwendig ErrorAPercentIsRequired=Fehler, bitte geben Sie den Prozentsatz korrekt ein ErrorYouMustFirstSetupYourChartOfAccount=Sie müssen zuerst Ihren Kontenplan einrichten ErrorFailedToFindEmailTemplate=Vorlage mit Codename %s konnte nicht gefunden werden -ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Die Dauer für den Service ist nicht definiert. Es besteht keine Möglichkeit, den Stundenpreis zu berechnen. +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. @@ -277,16 +279,28 @@ 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ß +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 +ErrorPaymentInBothCurrency=Fehler, alle Beträge müssen in die gleiche Spalte eingetragen werden +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 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 # 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. @@ -302,15 +316,16 @@ WarningYourLoginWasModifiedPleaseLogin=Ihr Login wurde verändert. Aus Sicherhei WarningAnEntryAlreadyExistForTransKey=Eine Übersetzung für diesen Übersetzungsschlüssel existiert schon für diese Sprache WarningNumberOfRecipientIsRestrictedInMassAction=Achtung, die Anzahl der verschiedenen Empfänger ist auf %s beschränkt, wenn Massenaktionen für Listen verwendet werden WarningDateOfLineMustBeInExpenseReportRange=Das Datum dieser Positionszeile ist ausserhalb der Datumsspanne dieser Spesenabrechnung -WarningProjectDraft=Das Projekt befindet sich noch im Entwurfsmodus. Vergessen Sie nicht, es zu validieren, wenn Sie Aufgaben verwenden möchten. +WarningProjectDraft=Das Projekt befindet sich noch im Entwurfsmodus. Vergessen Sie nicht, es freizugeben, wenn Sie Aufgaben verwenden möchten. WarningProjectClosed=Projekt ist geschlossen. Sie müssen es zuerst wieder öffnen. WarningSomeBankTransactionByChequeWereRemovedAfter=Einige Bank-Transaktionen wurden entfernt, nachdem der Kassenbon, der diese enthielt, erzeugt wurde. Daher wird sich die Anzahl der Checks und die Endsumme auf dem Kassenbon von der Anzahl und Endsumme in der Liste unterscheiden. WarningFailedToAddFileIntoDatabaseIndex=Warnung: Dateieintrag zur ECM-Datenbankindextabelle konnte nicht hinzugefügt werden WarningTheHiddenOptionIsOn=Achtung, die versteckte Option %s ist aktiviert. -WarningCreateSubAccounts=Achtung, Sie können kein Unterkonto direkt erstellen. Sie müssen einen Geschäftspartner oder einen Benutzer erstellen und ihm einen Buchungscode zuweisen, um sie in dieser Liste zu finden +WarningCreateSubAccounts=Achtung, Sie können kein Unterkonto direkt erstellen. Sie müssen einen Geschäftspartner oder einen Benutzer erstellen und ihm ein Buchungskonto zuweisen, um ihn in dieser Liste zu finden 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 # Validate RequireValidValue = Wert nicht gültig diff --git a/htdocs/langs/de_DE/eventorganization.lang b/htdocs/langs/de_DE/eventorganization.lang index d5b08831e2b..be567b9d11a 100644 --- a/htdocs/langs/de_DE/eventorganization.lang +++ b/htdocs/langs/de_DE/eventorganization.lang @@ -18,7 +18,7 @@ # Generic # ModuleEventOrganizationName = Veranstaltungsorganisation -EventOrganizationDescription = Veranstaltungsorganisation mit dem Modul 'Projekte' +EventOrganizationDescription = Veranstaltungsorganisation mit dem Modul 'Projekt- und Aufgabenverwaltung' EventOrganizationDescriptionLong= Verwalten Sie die Organisation einer Veranstaltung (Show, Konferenzbeiträge, Teilnehmer oder Referenten, mit öffentlichen Seiten für Vorschläge, Abstimmung oder Registrierung) # # Menu @@ -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 @@ -36,8 +36,9 @@ EventOrganizationSetup=Einstellungen für die Veranstaltungsorganisation EventOrganization=Veranstaltungsorganisation Settings=Einstellungen EventOrganizationSetupPage = Einstellungsseite für die Veranstaltungsorganisation -EVENTORGANIZATION_TASK_LABEL = Bezeichnung der Aufgaben, die automatisch erstellt werden sollen, wenn das Projekt bestätigt wird -EVENTORGANIZATION_TASK_LABELTooltip = Mit der Validierung einer organisierten Veranstaltung können einige Aufgaben automatisch im Projekt erstellt werden

    Zum Beispiel:
    Aufruf für Konferenzbeiträge senden
    Aufruf für Standbuchungen senden
    Anfragen für Konferenzbeiträge empfangen
    Anfragen für Stände empfangen
    Veranstaltungsbuchung für Teilnehmer freigeben
    Veranstaltungserinnerung an Referenten senden
    Veranstaltungserinnerung an Standinhaber senden
    Veranstaltungserinnerung an Teilnehmer senden +EVENTORGANIZATION_TASK_LABEL = Bezeichnung der Aufgaben, die automatisch erstellt werden sollen, wenn das Projekt freigegeben wird +EVENTORGANIZATION_TASK_LABELTooltip = Wenn Sie eine zu organisierende Veranstaltung freigeben, können einige Aufgaben automatisch im Beispiel-Projekt erstellt werden:

    Zum Beispiel:
    Aufruf für Konferenzbeiträge senden
    Aufruf für Standbuchungen senden
    Vorschläge für Konferenzbeiträge freigeben
    Anfragen für Standbuchungen bestätigen
    Veranstaltungsbuchung für Teilnehmer freigeben
    Senden Sie eine Veranstaltungserinnerung an die Referenten
    Senden Sie eine Veranstaltungserinnerung an Standinhaber senden
    Senden Sie eine Veranstaltungserinnerung an die Teilnehmer +EVENTORGANIZATION_TASK_LABELTooltip2=Lassen Sie dieses Feld leer, wenn Sie Aufgaben nicht automatisch erstellen möchten. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategorie, die Drittanbietern hinzugefügt werden soll, wird automatisch erstellt, wenn jemand einen Konferenzbeitrag vorschlägt EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategorie, die Drittanbietern hinzugefügt werden soll, wird automatisch erstellt, wenn sie einen Stand vorschlagen EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Vorlage einer E-Mail, die nach Erhalt eines Vorschlags für einen Konferenzbeitrag gesendet werden soll. @@ -59,19 +60,21 @@ 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 # -YourOrganizationEventConfRequestWasReceived = Ihre Anfrage für einen Konferenzbeitrag wurde empfangen -YourOrganizationEventBoothRequestWasReceived = Ihre Anfrage für Stand wurde empfangen -EventOrganizationEmailAskConf = Anfrage für einen Konferenzbeitrag +YourOrganizationEventConfRequestWasReceived = Ihr Vorschlag für einen Konferenzbeitrag ist eingegangen +YourOrganizationEventBoothRequestWasReceived = Ihre Anfrage für einen Stand ist eingegangen +EventOrganizationEmailAskConf = Vorschlag für einen Konferenzbeitrag 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 @@ -80,18 +83,18 @@ 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 -EventOrganizationICSLink=Verknüpfe ICS für Vorträge +EventOrganizationICSLink=Verknüpfe Kalenderdaten (ICS) für Vorträge 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 -SERVICE_BOOTH_LOCATION = Service, der für die Rechnungszeile über einen Stand verwendet wird -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service, der für die Rechnungszeile über eine Teilnahmebuchung einer Veranstaltung verwendet wird +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 # # Status @@ -119,14 +122,14 @@ 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 für die Veranstaltung anmelden: %s 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 -ConferenceIsNotConfirmed=Anmeldung nicht möglich, Konferenz ist noch nicht bestätigt +ConferenceIsNotConfirmed=Anmeldung nicht möglich, Konferenz ist noch nicht freigegeben DateMustBeBeforeThan=%s muss vor %s sein DateMustBeAfterThan=%s muss nach %s sein @@ -138,6 +141,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 @@ -159,9 +163,10 @@ 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 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 validieren können. Bitte kontaktieren Sie uns unter %s für eine manuelle Validierung -ErrorSeveralCompaniesWithNameContactUs=Es wurden mehrere Unternehmen mit diesem Namen gefunden, sodass wir Ihre Registrierung nicht automatisch validieren können. Bitte kontaktieren Sie uns unter %s für eine manuelle Validierung +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, 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 4f9e5bfd08a..e8781a675e0 100644 --- a/htdocs/langs/de_DE/exports.lang +++ b/htdocs/langs/de_DE/exports.lang @@ -53,8 +53,8 @@ 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 -DownloadEmptyExample=Vorlagendatei mit Feldinhaltsinformationen herunterladen -StarAreMandatory=* sind Pflichtfelder +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 ... ChooseFileToImport=Datei hochladen und dann auf das Symbol %s klicken, um die Datei als Quell-Importdatei auszuwählen ... SourceFileFormat=Quelldateiformat @@ -111,7 +111,7 @@ CsvOptions=Optionen für CSV-Format Separator=Feld-Trennzeichen Enclosure=Zeichenkettenbegrenzer SpecialCode=Spezialcode -ExportStringFilter=%% erlaubt die Ersetzung eines oder mehrerer Zeichen im Text +ExportStringFilter=%% kann als Platzhalter für null bis beliebig viele Zeichen verwendet werden ExportDateFilter='YYYY' 'YYYYMM' 'YYYYMMDD': filtert nach einem Jahr/Monat/Tag
    'YYYY+YYYY' 'YYYYMM+YYYYMM' 'YYYYMMDD+YYYYMMDD': filtert über einen Bereich von Jahren/Monaten/Tagen
    '>YYYY' '>YYYYMM' '>YYYYMMDD': filtert auf die folgenden Jahre/Monate/Tage
    ''NNNNN+NNNNN' filtert einen Wertebereich
    '< NNNNN' filtert nach kleineren Werten
    '> NNNNN' filtert nach größeren Werten ImportFromLine=Import beginnen bei Zeile @@ -135,3 +135,6 @@ NbInsert=Anzahl eingefügter Zeilen: %s NbUpdate=Anzahl geänderter Zeilen: %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: 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 16eb2a417bd..9d33ee49f91 100644 --- a/htdocs/langs/de_DE/holiday.lang +++ b/htdocs/langs/de_DE/holiday.lang @@ -10,16 +10,16 @@ DateDebCP=Urlaubsbeginn DateFinCP=Urlaubsende DraftCP=Entwurf ToReviewCP=wartet auf Genehmigung -ApprovedCP=genehmigt +ApprovedCP=Genehmigt CancelCP=storniert -RefuseCP=abgelehnt -ValidatorCP=Verantwortlicher +RefuseCP=Abgelehnt +ValidatorCP=Genehmiger ListeCP=Urlaubsliste Leave=Urlaubsantrag LeaveId=Urlaubs-ID ReviewedByCP=Zu genehmigen von -UserID=Benutzer ID -UserForApprovalID=Benutzer für die Genehmigungs-ID +UserID=Benutzer-ID +UserForApprovalID=Genehmiger-ID UserForApprovalFirstname=Vorname des Genehmigenden UserForApprovalLastname=Nachname des Genehmigenden UserForApprovalLogin=Login des Genehmigenden @@ -32,13 +32,13 @@ ErrorEndDateCP=Sie müssen ein Urlaubsende-Datum wählen, dass nach dem Urlaubsb ErrorSQLCreateCP=Ein SQL Fehler trat auf bei der Erstellung von: ErrorIDFicheCP=Fehler aufgetreten: der Urlaubsantrag existiert nicht. ReturnCP=Zurück zur vorherigen Seite -ErrorUserViewCP=Sie sind nicht berechtigt diesen Urlaubsantrag zu lesen. +ErrorUserViewCP=Sie sind nicht berechtigt diesen Urlaubsantrag einzusehen. InfosWorkflowCP=Workflow-Informationen RequestByCP=Beantragt von TitreRequestCP=Urlaubsantrag -TypeOfLeaveId=Art der Urlaubs-ID -TypeOfLeaveCode=Art des Urlaubscodes -TypeOfLeaveLabel=Art des Urlaubslabels +TypeOfLeaveId=Urlaubstyp-ID +TypeOfLeaveCode=Code Urlaubstyp +TypeOfLeaveLabel=Label Urlaubstyp NbUseDaysCP=Anzahl genommene Urlaubstage NbUseDaysCPHelp=Die Berechnung berücksichtigt die in den Stammdaten definierten arbeitsfreien Tage und Feiertage. NbUseDaysCPShort=Urlaubstage @@ -72,7 +72,7 @@ ConfirmCancelCP=Möchten Sie diesen Urlaubsantrag wirklich stornieren? DetailRefusCP=Ablehnungsgrund DateRefusCP=Datum der Ablehnung DateCancelCP=Datum der Stornierung -DefineEventUserCP=Sonderurlaub für einen Anwender zuweisen +DefineEventUserCP=Sonderurlaub für einen Benutzer zuweisen addEventToUserCP=Urlaub zuweisen NotTheAssignedApprover=Sie sind nicht der zugeordnete Genehmiger MotifCP=Grund @@ -83,7 +83,7 @@ MenuLogCP=Zeige Änderungsprotokoll LogCP=Protokoll aller Aktualisierungen von "Urlaubsübersicht" ActionByCP=Geändert von UserUpdateCP=Aktualisiert für -PrevSoldeCP=Vorherige Übersicht +PrevSoldeCP=Vorheriger Saldo NewSoldeCP=Neuer Saldo alreadyCPexist=Für den gewählten Zeitraum wurde bereits ein Urlaubsantrag erstellt. FirstDayOfHoliday=Erster Tag des Urlaubsantrags @@ -94,28 +94,28 @@ ManualUpdate=Manuelles Update HolidaysCancelation=Urlaubsantrag stornieren EmployeeLastname=Mitarbeiter Nachname EmployeeFirstname=Mitarbeiter Vorname -TypeWasDisabledOrRemoved=Abreise-Art (Nr %s) war deaktiviert oder entfernt -LastHolidays=Neuste %s Urlaubsanträge +TypeWasDisabledOrRemoved=Urlaubstyp (ID %s) war deaktiviert oder entfernt +LastHolidays=Letzte %s Urlaubsanträge AllHolidays=Alle Urlaubsanträge HalfDay=Halber Tag NotTheAssignedApprover=Sie sind nicht der zugeordnete Genehmiger -LEAVE_PAID=bezahlter Urlaub +LEAVE_PAID=Bezahlter Urlaub LEAVE_SICK=Krankheit LEAVE_OTHER=Andere Gründe LEAVE_PAID_FR=bezahlter Urlaub ## Configuration du Module ## -LastUpdateCP=Letzte automatische Aktualisierung der Urlaubszuordnung -MonthOfLastMonthlyUpdate=Monat der letzten automatischen Aktualisierung der Urlaubszuordnung +LastUpdateCP=Letzte automatische Aktualisierung der Urlaubstage +MonthOfLastMonthlyUpdate=Monat der letzten automatischen Aktualisierung der Urlaubstage UpdateConfCPOK=Erfolgreich bearbeitet. Module27130Name= Verwaltung von Urlaubsanträgen Module27130Desc= Verwaltung von Urlaubsanträgen -ErrorMailNotSend=Ein Fehler ist beim E-Mail-Senden aufgetreten: +ErrorMailNotSend=Beim Senden der E-Mail ist ein Fehler aufgetreten: NoticePeriod=Einreichefrist #Messages -HolidaysToValidate=Genehmige Urlaubsanträge -HolidaysToValidateBody=Es folgt ein Urlaubsantrag zur Freigabe +HolidaysToValidate=Urlaubsanträge freigeben +HolidaysToValidateBody=Ein freizugebende Urlaubsantrag folgt HolidaysToValidateDelay=Dieser Urlaub wird in weniger als %s Tagen stattfinden. -HolidaysToValidateAlertSolde=Dem Benutzer, der diese Urlaubsanfrage gestellt hat, stehen nicht genügend Tage zur Verfügung. +HolidaysToValidateAlertSolde=Dem Benutzer, der diesen Urlaubsantrag gestellt hat, stehen nicht genügend Tage zur Verfügung. HolidaysValidated=Genehmigte Urlaubsanträge HolidaysValidatedBody=Ihr Antrag auf Urlaub von %s bis %s wurde bewilligt. HolidaysRefused=Anfrage abgelehnt @@ -127,11 +127,11 @@ NoLeaveWithCounterDefined=Es sind keine Urlaubsarten definiert, die durch einen GoIntoDictionaryHolidayTypes=Öffnen Sie das Menü Start - Einstellungen - Stammdaten - Urlaubsarten um die verschiedenen Urlaubsarten zu konfigurieren. HolidaySetup=Konfiguration des Moduls "Urlaubsantrags-Verwaltung" HolidaysNumberingModules=Nummerierungsschemata für Urlaubsanträge -TemplatePDFHolidays=Vorlage für Urlaubsanträge PDF -FreeLegalTextOnHolidays=Freitext als PDF +TemplatePDFHolidays=PDF-Vorlage für Urlaubsanträge +FreeLegalTextOnHolidays=Freitext auf dem PDF WatermarkOnDraftHolidayCards=Wasserzeichen auf Urlaubsantragsentwurf (leerlassen wenn keines benötigt wird) HolidaysToApprove=Urlaubstage zu genehmigen -NobodyHasPermissionToValidateHolidays=Niemand hat die Erlaubnis, Urlaubstage zu bestätigen. +NobodyHasPermissionToValidateHolidays=Niemand hat die Erlaubnis, Urlaubstage zu genehmigen. HolidayBalanceMonthlyUpdate=Monatliche Aktualisierung des Urlaubsguthabens XIsAUsualNonWorkingDay=%s ist normalerweise KEIN Arbeitstag BlockHolidayIfNegative=Sperren bei negativem Saldo diff --git a/htdocs/langs/de_DE/hrm.lang b/htdocs/langs/de_DE/hrm.lang index 6cfbfccd39f..6dfa51139c0 100644 --- a/htdocs/langs/de_DE/hrm.lang +++ b/htdocs/langs/de_DE/hrm.lang @@ -12,21 +12,22 @@ 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 -HRM_MAXRANK=Höchste Qualifikationsstufe für eine Kompetenz +SkillsManagement=Kompetenzmanagement +HRM_MAXRANK=Maximale Anzahl von Stufen, um eine Kompetenz einzustufen HRM_DEFAULT_SKILL_DESCRIPTION=Standardbeschreibung der Qualifikationsstufen beim Erstellen einer Kompetenz deplacement=Schicht DateEval=Bewertungstag -JobCard=Jobkarte -Job=Job -Jobs=Jobs +JobCard=Position – Übersicht +JobPosition=Position +JobsPosition=Positionen NewSkill=Neue Kompetenz SkillType=Art der Kompetenz Skilldets=Liste der Qualifikationsstufen für diese Kompetenz @@ -42,18 +43,17 @@ EmployeeSkillsUpdated=Mitarbeiterkompetenzen wurden aktualisiert (siehe Register Eval=Bewertung Evals=Bewertungen NewEval=Neue Bewertung -ValidateEvaluation=Bewertung validieren -ConfirmValidateEvaluation=Möchten Sie diese Bewertung mit der Referenz %s wirklich validieren? +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 -Position=Position -Positions=Positionen -PositionCard=Positionskarte +EmployeePosition=Mitarbeiterposition +EmployeePositions=Stellenübersicht EmployeesInThisPosition=Mitarbeiter in dieser Position group1ToCompare=Zu analysierende Benutzergruppe group2ToCompare=Zweite Benutzergruppe zum Vergleich -OrJobToCompare=Vergleich mit den Kompetenzanforderungen des Jobs +OrJobToCompare=Vergleich mit den Kompetenzanforderungen der Position difference=Differenz CompetenceAcquiredByOneOrMore=Kompetenz, die von einem oder mehreren Benutzern erworben wurden, aber beim Vergleich nicht berücksichtigt werden MaxlevelGreaterThan=Maximales Niveau höher als in der Anforderung @@ -65,17 +65,28 @@ MaxLevelLowerThanShort=Mitarbeiterniveau niedriger als in der Anforderung SkillNotAcquired=Kompetenz wurde nicht von allen Benutzern erworben, aber im Vergleiche 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 HowManyUserWithThisMaxNote=Anzahl der Benutzer mit dieser Qualifikationsstufe HighestRank=Höchste Qualifikationsstufe -SkillComparison=Vergleich der Komepetenzen +SkillComparison=Kompetenzvergleich +ActionsOnJob=Ereignisse zu dieser Stelle +VacantPosition=freie Stelle +VacantCheckboxHelper=Wenn Sie diese Option aktivieren, werden unbesetzte Stellen (Stellenangebote) angezeigt. +SaveAddSkill = Kompetenz(en) hinzugefügt +SaveLevelSkill = Kompetenzstufe gespeichert +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 4126c1a48d6..f9278fec8d4 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Die Konfigurationsdatei %s ist nicht beschreibbar. ConfFileIsWritable=Die Konfigurationsdatei %s ist beschreibbar. ConfFileMustBeAFileNotADir=Die Konfigurationsdatei %s muss eine Datei und kein Verzeichnis sein. ConfFileReload=Parameter aus der Konfigurationsdatei neu laden. +NoReadableConfFileSoStartInstall=Die Konfigurationsdatei conf/conf.php existiert nicht oder kann nicht gelesen werden. Wir werden den Installationsprozess ausführen, um zu versuchen, sie zu initialisieren. PHPSupportPOSTGETOk=Ihre PHP-Konfiguration unterstützt GET- und POST-Variablen. PHPSupportPOSTGETKo=Ihre PHP-Konfiguration scheint GET- und/oder POST-Variablen nicht zu unterstützen. Überprüfen Sie in der php.ini den Parameter variables_order. PHPSupportSessions=Ihre PHP-Konfiguration unterstützt Sessions. @@ -16,13 +17,6 @@ PHPMemoryOK=Die Sitzungsspeicherbegrenzung ihrer PHP-Konfiguration steht auf PHPMemoryTooLow=Der maximale PHP-Sitzungsspeicher ist auf %s Bytes gesetzt. Dieser Wert ist zu niedrig. Ändern sie den Parameter memory_limit in der php.ini auf mindestens %s Bytes! Recheck=Klicken Sie hier für einen detailierteren Test. ErrorPHPDoesNotSupportSessions=Ihre PHP-Installation unterstützt die Sitzungs-Funktionen nicht. Diese Funktion wird jedoch für Dolibarr benötigt. Bitte prüfen sie das PHP-Setup und die Zugriffsrechte auf das Sitzungs-Verzeichnis. -ErrorPHPDoesNotSupportGD=Ihre PHP-Installation unterstützt die GD Grafik-Funktionen nicht. Grafiken werden nicht verfügbar sein. -ErrorPHPDoesNotSupportCurl=Ihre PHP-Version unterstützt die Erweiterung Curl nicht -ErrorPHPDoesNotSupportCalendar=Ihre PHP-Installation unterstützt die Kalender-Erweiterungen nicht. -ErrorPHPDoesNotSupportUTF8=Ihre PHP-Installation unterstützt die UTF8-Funktionen nicht. Dolibarr wird nicht korrekt funktionieren. Beheben Sie das Problem vor der Installation. -ErrorPHPDoesNotSupportIntl=Ihre PHP-Konfiguration unterstützt keine Internationalisierungsfunktion (intl-extension). -ErrorPHPDoesNotSupportMbstring=Ihre PHP-Installation unterstützt keine mbstring-Funktionen. -ErrorPHPDoesNotSupportxDebug=Ihre PHP-Installation unterstützt keine erweiterten Debug-Funktionen. ErrorPHPDoesNotSupport=Ihre PHP-Installation unterstützt keine %s-Funktionen. ErrorDirDoesNotExists=Das Verzeichnis %s existiert nicht. ErrorGoBackAndCorrectParameters=Gehen Sie zurück und prüfen/korrigieren Sie die Parameter. @@ -30,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 51748b383f9..74d8993e3eb 100644 --- a/htdocs/langs/de_DE/interventions.lang +++ b/htdocs/langs/de_DE/interventions.lang @@ -18,11 +18,11 @@ DeleteInterventionLine=Position im Serviceauftrag löschen ConfirmDeleteIntervention=Möchten Sie diesen Serviceauftrag wirklich löschen? ConfirmValidateIntervention=Sind Sie sicher, dass Sie den Serviceauftrag %s freigeben wollen? ConfirmModifyIntervention=Möchten Sie diesen Serviceauftrag wirklich ändern? -ConfirmDeleteInterventionLine=Möchten Sie diese Vertragsposition wirklich löschen? +ConfirmDeleteInterventionLine=Möchten Sie diese Serviceauftragsposition wirklich löschen? ConfirmCloneIntervention=Möchten Sie diesen Serviceauftrag wirklich duplizieren? NameAndSignatureOfInternalContact=Name und Unterschrift des Mitarbeiters: NameAndSignatureOfExternalContact=Name und Unterschrift des Kunden: -DocumentModelStandard=Standard-Dokumentvorlage für Serviceaufträge +DocumentModelStandard=Standard-Dokumentenvorlage für Serviceaufträge InterventionCardsAndInterventionLines=Serviceaufträge und Serviceauftragspositionen InterventionClassifyBilled=Als "in Rechnung gestellt" markieren InterventionClassifyUnBilled=Als "nicht in Rechnung gestellt" markieren @@ -41,16 +41,16 @@ InterventionsArea=Übersicht Serviceaufträge DraftFichinter=Serviceaufträge im Entwurf LastModifiedInterventions=Zuletzt bearbeitete Serviceaufträge (maximal %s) FichinterToProcess=Zu bearbeitende Serviceaufträge -TypeContact_fichinter_external_CUSTOMER=Kundenkontakt-Nachbetreuung -PrintProductsOnFichinter=Auch Produktzeilen (nicht nur Leistungen) auf dem Serviceauftragsdokument drucken +TypeContact_fichinter_external_CUSTOMER=Kundenkontakt zur Weiterverfolgung +PrintProductsOnFichinter=Auch Positionen vom Typ "Produkt" (nicht nur Leistungen) auf dem Serviceauftrag ausgeben PrintProductsOnFichinterDetails=Aus Kundenaufträgen erstellte Serviceaufträge -UseServicesDurationOnFichinter=Standard-Wert der Dauer für diesen Service aus dem Auftrag übernehmen -UseDurationOnFichinter=Feld 'Dauer' für Einsatzeinträge nicht anzeigen +UseServicesDurationOnFichinter=Dauer der Leistung im Serviceauftrag aus dem Auftrag übernehmen +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 @@ -64,5 +64,7 @@ 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. diff --git a/htdocs/langs/de_DE/intracommreport.lang b/htdocs/langs/de_DE/intracommreport.lang index c86e525cc51..3f93cca1923 100644 --- a/htdocs/langs/de_DE/intracommreport.lang +++ b/htdocs/langs/de_DE/intracommreport.lang @@ -1,6 +1,6 @@ Module68000Name = Intracomm-Report -Module68000Desc = Berichtsverwaltung (französisches DEB/DES-Format) -IntracommReportSetup = Modul Intracomm-Report einrichten +Module68000Desc = Berichtsverwaltung innergemeinschaftlicher Handel (französisches DEB/DES-Format) +IntracommReportSetup = Einstellungen Modul Intracomm-Report IntracommReportAbout = Über Intracomm-Report # Setup @@ -27,10 +27,10 @@ DEB=Warenaustauscherklärung DES=Leistungsaustauscherklärung # Export page -IntracommReportTitle=XML-Datei der Zollerklärung vorbereiten +IntracommReportTitle=XML-Datei der Zollerklärung vorbereiten (ProDouane-Format) # List -IntracommReportList=Liste der Erkärungen +IntracommReportList=Liste der generierten Erkärungen IntracommReportNumber=Numero der Erklärung IntracommReportPeriod=Analysezeitraum IntracommReportTypeDeclaration=Art der Erklärung diff --git a/htdocs/langs/de_DE/knowledgemanagement.lang b/htdocs/langs/de_DE/knowledgemanagement.lang index 9b2f1404101..a816a87875e 100644 --- a/htdocs/langs/de_DE/knowledgemanagement.lang +++ b/htdocs/langs/de_DE/knowledgemanagement.lang @@ -20,14 +20,14 @@ # Module label 'ModuleKnowledgeManagementName' ModuleKnowledgeManagementName = Wissensmanagement-System # Module description 'ModuleKnowledgeManagementDesc' -ModuleKnowledgeManagementDesc=Verwalten einer Wissensmanagement- (KM) oder Helpdesk-Basis +ModuleKnowledgeManagementDesc=Verwalten einer Datenbasis für Wissensmanagement (Knowledge Management, KM) oder Helpdesk # # Admin page # KnowledgeManagementSetup = Einstellungen des Wissensmanagement-Systems Settings = Einstellungen -KnowledgeManagementSetupPage = Einstellungsseite für das Wissensmanagement-System +KnowledgeManagementSetupPage = Einstellungen für das Modul Wissensmanagement # @@ -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) -SuggestedForTicketsInGroup=Empfohlen für Tickets der Gruppe +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 dd083c54769..86cd6d0686a 100644 --- a/htdocs/langs/de_DE/languages.lang +++ b/htdocs/langs/de_DE/languages.lang @@ -1,8 +1,9 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopisch +Language_am_ET=Äthiopisch Language_ar_AR=Arabisch Language_ar_DZ=Arabisch (Algerien) Language_ar_EG=Arabisch (Ägypten) +Language_ar_JO=Arabisch (Jordanien) Language_ar_MA=Arabisch (Marokko) Language_ar_SA=Arabisch Language_ar_TN=Arabisch (Tunesien) @@ -12,9 +13,11 @@ 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 +Language_cy_GB=Walisisch Language_da_DA=Dänisch Language_da_DK=Dänisch Language_de_DE=Deutsch @@ -22,6 +25,7 @@ Language_de_AT=Deutsch (Österreich) Language_de_CH=Deutsch (Schweiz) Language_el_GR=Griechisch Language_el_CY=Greek (Cyprus) +Language_en_AE=Englisch (Vereinigte Arabische Emirate) Language_en_AU=Englisch (Australien) Language_en_CA=Englisch (Kanada) Language_en_GB=Englisch (Großbritannien) @@ -36,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) @@ -59,7 +64,7 @@ Language_fr_CH=Französisch (Schweiz) Language_fr_CI=Französisch (Elfenbeinküste) Language_fr_CM=Französisch (Kamerun) Language_fr_FR=Französisch -Language_fr_GA=Französisch (Gabon) +Language_fr_GA=Französisch (Gabun) Language_fr_NC=Französisch (Neukaledonien) Language_fr_SN=Französisch (Senegal) Language_fy_NL=Friesisch @@ -83,18 +88,21 @@ Language_lt_LT=Litauisch Language_lv_LV=Litauisch Language_mk_MK=Mazedonisch Language_mn_MN=Mongolian +Language_my_MM=Birmanisch Language_nb_NO=Norwegisch (Bokmål) Language_ne_NP=Nepali 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) Language_ro_RO=Rumänisch Language_ru_RU=Russisch Language_ru_UA=Russisch (Ukraine) +Language_ta_IN=Tamil Language_tg_TJ=Tadschikisch Language_tr_TR=Türkisch Language_sl_SI=Slowenisch @@ -106,6 +114,7 @@ Language_sr_RS=Serbisch Language_sw_SW=Swahili Language_th_TH=Thailändisch Language_uk_UA=Ukrainisch +Language_ur_PK=Urdu Language_uz_UZ=Usbekisch Language_vi_VN=Vietnamesisch Language_zh_CN=Chinesisch diff --git a/htdocs/langs/de_DE/ldap.lang b/htdocs/langs/de_DE/ldap.lang index db0bdeaf78f..9d575d3b9be 100644 --- a/htdocs/langs/de_DE/ldap.lang +++ b/htdocs/langs/de_DE/ldap.lang @@ -1,20 +1,20 @@ # Dolibarr language file - Source file is en_US - ldap -YouMustChangePassNextLogon=Bitte ändern Sie das Passwort für Benutzer %s auf der Domain %s bei Ihrer nächsten Anmeldung. -UserMustChangePassNextLogon=Der Benutzer muss das Passwort für Domäne %s bei der nächsten Anmeldung ändern. +YouMustChangePassNextLogon=Das Passwort für Benutzer %s auf der Domain %s muss geändert werden. +UserMustChangePassNextLogon=Der Benutzer muss das Passwort für Domäne %s ändern. LDAPInformationsForThisContact=Informationen in der LDAP-Datenbank für diesen Kontakt LDAPInformationsForThisUser=Informationen in der LDAP-Datenbank für diesen Benutzer LDAPInformationsForThisGroup=Informationen in der LDAP-Datenbank für diese Gruppe LDAPInformationsForThisMember=Informationen in der LDAP-Datenbank für dieses Mitglied LDAPInformationsForThisMemberType=Information in der LDAP Datenbank für diese Mitgliedsart LDAPAttributes=LDAP-Attribute -LDAPCard=LDAP - Karte +LDAPCard=LDAP – Übersicht LDAPRecordNotFound=LDAP-Datenbankeintrag nicht gefunden LDAPUsers=Benutzer in LDAP-Datenbank LDAPFieldStatus=Status -LDAPFieldFirstSubscriptionDate=Datum der Erstmitgliedschaft +LDAPFieldFirstSubscriptionDate=Datum der ersten Subscription LDAPFieldFirstSubscriptionAmount=Höhe des ersten Mitgliedsbeitrags -LDAPFieldLastSubscriptionDate=Letztes Abo-Datum -LDAPFieldLastSubscriptionAmount=Letzter Abo-Betrag +LDAPFieldLastSubscriptionDate=Datum der letzten Subscription +LDAPFieldLastSubscriptionAmount=Höhe des letzten Mitgliedsbeitrags LDAPFieldSkype=Skype ID LDAPFieldSkypeExample=Beispiel: Skype-Name UserSynchronized=Benutzer synchronisiert @@ -23,5 +23,9 @@ MemberSynchronized=Mitglied synchronisiert MemberTypeSynchronized=Mitgliedsart synchronisiert ContactSynchronized=Kontakt synchronisiert ForceSynchronize=Erzwinge Synchronisation Dolibarr -> LDAP -ErrorFailedToReadLDAP=Fehler beim Lesen der LDAP-Datenbank. Überprüfen Sie die Verfügbarkeit der Datenbank sowie die entsprechenden Moduleinstellungen. +ErrorFailedToReadLDAP=Fehler beim Lesen der LDAP-Datenbank. Überprüfen Sie die Einstellungen des LDAP-Moduls und die Verfügbarkeit der Datenbank. PasswordOfUserInLDAP=Passwort des Benutzers in LDAP +LDAPPasswordHashType=Passwort-Hash-Typ +LDAPPasswordHashTypeExample=Art des auf dem Server verwendeten Passwort-Hashs +SupportedForLDAPExportScriptOnly=Wird nur von einem LDAP-Exportskript unterstützt +SupportedForLDAPImportScriptOnly=Wird nur von einem LDAP-Importskript unterstützt diff --git a/htdocs/langs/de_DE/loan.lang b/htdocs/langs/de_DE/loan.lang index 2e0dfc73ea2..2b5bd545473 100644 --- a/htdocs/langs/de_DE/loan.lang +++ b/htdocs/langs/de_DE/loan.lang @@ -9,26 +9,26 @@ ShowLoanPayment=Zeige Darlehenszahlung LoanCapital=Darlehensbetrag Insurance=Versicherung Interest=Zinsen -Nbterms=Anzahl der Laufzeiten -Term=Laufzeit -LoanAccountancyCapitalCode=Buchhaltungskonto Darlehensbetrag -LoanAccountancyInsuranceCode=Buchhaltungskonto Versicherung -LoanAccountancyInterestCode=Buchhaltungskonto Zinsen +Nbterms=Anzahl der Rückzahlungsraten +Term=Rate +LoanAccountancyCapitalCode=Buchungskonto Darlehensbetrag +LoanAccountancyInsuranceCode=Buchungskonto Versicherung +LoanAccountancyInterestCode=Buchungskonto Zinsen ConfirmDeleteLoan=Bestätigen Sie das Löschen dieses Darlehens LoanDeleted=Darlehen erfolgreich gelöscht -ConfirmPayLoan=Bestätigen Sie das markieren dieses Darlehens als bezahlt +ConfirmPayLoan=Bestätigen Sie, das Darlehen als bezahlt zu klassifizieren LoanPaid=Darlehen bezahlt -ListLoanAssociatedProject=Liste der Darlehen in dem Projekt +ListLoanAssociatedProject=Liste der mit dem Projekt verbundenen Darlehen AddLoan=Darlehen erstellen -FinancialCommitment=Finanzielle Verpflichtung +FinancialCommitment=Zahlungsplan InterestAmount=Zinsen CapitalRemain=Verbleibender Darlehensbetrag -TermPaidAllreadyPaid = Diese Laufzeit ist bereits bezahlt -CantUseScheduleWithLoanStartedToPaid = Der Scheduler kann nicht für ein Darlehen verwendet werden, bei dem die Zahlung gestartet wurde. -CantModifyInterestIfScheduleIsUsed = Sie können die Zinsen nicht ändern, wenn Sie den Zeitplan verwenden. +TermPaidAllreadyPaid = Diese Rate ist bereits bezahlt +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-Buchhaltungskonto Darlehensbetrag -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard-Buchhaltungskonto Zinsen -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard-Buchhaltungskonto Versicherung -CreateCalcSchedule=Finanzielle Verpflichtung bearbeiten +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard-Buchungskonto Darlehensbetrag +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard-Buchungskonto Zinsen +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard-Buchungskonto Versicherung +CreateCalcSchedule=Zahlungsplan bearbeiten 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 686ec747389..331d0bd8ef7 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=, @@ -166,12 +172,12 @@ Confirm=Bestätigen ConfirmSendCardByMail=Möchten Sie wirklich die Inhalte dieser Karteikarte per E-Mail an %s senden? Delete=Löschen Remove=Entfernen -Resiliate=aufheben +Resiliate=Beenden Cancel=Abbrechen Modify=Ändern Edit=Bearbeiten -Validate=Bestätigen -ValidateAndApprove=Bestätigen +Validate=Freigeben +ValidateAndApprove=Freigeben und genehmigen ToValidate=Freizugeben NotValidated=Nicht freigegeben Save=Speichern @@ -201,12 +207,12 @@ Disapprove=Abgelehnt ReOpen=Wiedereröffnen Upload=Upload ToLink=Link -Select=Wählen Sie +Select=Auswählen SelectAll=Alle wählen Choose=Wählen Resize=Skalieren ResizeOrCrop=Grösse ändern oder zuschneiden -Recenter=Zentrieren +Recenter=Zuschneiden Author=Autor User=Benutzer Users=Benutzer @@ -236,14 +242,15 @@ MultiLanguage=Mehrsprachig Note=Hinweis Title=Bezeichnung Label=Bezeichnung -RefOrLabel=Nr. oder Bezeichnung +RefOrLabel=Ref. oder Bezeichnung Info=Protokoll -Family=Familie +Family=Kategorie/Gruppe Description=Beschreibung Designation=Beschreibung DescriptionOfLine=Beschreibung der Zeile DateOfLine=Datum der Zeile DurationOfLine=Dauer der Zeile +ParentLine=ID der übergeordneten Position Model=Dokumentvorlage DefaultModel=Standard Dokumentvorlage Action=Ereignis @@ -280,7 +287,7 @@ DateModification=Änderungsdatum DateModificationShort=Änderungsdatum IPModification=Änderungs-IP DateLastModification=Datum letzte Änderung -DateValidation=Freigabedatum +DateValidation=Festschreibungsdatum DateSigning=Unterzeichnungsdatum DateClosing=Schließungsdatum DateDue=Fälligkeitsdatum @@ -292,7 +299,7 @@ DateLimit=Frist DateRequest=Anfragedatum DateProcess=Verarbeite Datum DateBuild=Datum der Berichterstellung -DatePayment=Zahlungsziel +DatePayment=Zahlungsdatum DateApprove=Genehmigungsdatum DateApprove2=Genehmigungsdatum (zweite Genehmigung) RegistrationDate=Registrierungsdatum @@ -337,14 +344,14 @@ DaysOfWeek=Wochentage HourShort=H MinuteShort=mn Rate=Rate -CurrencyRate=Währung Wechselkurs +CurrencyRate=Wechselkurs UseLocalTax=inkl. MwSt. Bytes=Bytes KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Angelegt von +UserAuthor=Erstellt durch UserModif=Geändert von b=b. Kb=Kb @@ -363,10 +370,10 @@ UnitPrice=Stückpreis UnitPriceHT=Stückpreis (netto) UnitPriceHTCurrency=Stückpreis (netto) (Währung) UnitPriceTTC=Stückpreis (brutto) -PriceU=VP -PriceUHT=VP (netto) -PriceUHTCurrency=U.P. (netto) (Währung) -PriceUTTC=St.-Pr. (inkl. Steuern) +PriceU=Einzelpr. +PriceUHT=Einzelpr. (netto) +PriceUHTCurrency=Einzelpr. (netto) (Währung) +PriceUTTC=Einzelpr. (inkl. St.) Amount=Betrag AmountInvoice=Rechnungsbetrag AmountInvoiced=berechneter Betrag @@ -454,7 +461,7 @@ OtherStatistics=Weitere Statistiken Status=Status Favorite=Favorit ShortInfo=Info. -Ref=Nummer +Ref=Ref.Nr. ExternalRef=Externe-ID RefSupplier=Lieferanten-Zeichen RefPayment=Zahlungsref.-Nr. @@ -473,8 +480,8 @@ 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 @@ -505,11 +512,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 @@ -517,13 +524,14 @@ or=oder Other=Andere Others=Andere OtherInformations=Zusatzinformationen +Workflow=Workflow Quantity=Menge -Qty=Menge +Qty=Anz. ChangedBy=Geändert von -ApprovedBy=genehmigt von +ApprovedBy=Genehmigt von ApprovedBy2=Genehmige von (zweite Genehmigung) -Approved=genehmigt -Refused=abgelehnt +Approved=Genehmigt +Refused=Abgelehnt ReCalculate=Neuberechnung ResultKo=Fehler Reporting=Berichterstattung @@ -531,8 +539,8 @@ Reportings=Berichte Draft=Entwurf Drafts=Entwürfe StatusInterInvoiced=Berechnet -Validated=Bestätigt -ValidatedToProduce=Validiert (zu produzieren) +Validated=Freigegeben +ValidatedToProduce=Freigegeben (zu produzieren) Opened=Offen OpenAll=Öffnen (Alle) ClosedAll=Schließen (Alle) @@ -545,8 +553,8 @@ OriginalSize=Originalgröße Received=Erhalten Paid=Bezahlt Topic=Betreff -ByCompanies=Von Partnern -ByUsers=Durch Benutzer +ByCompanies=Nach Geschäftspartnern +ByUsers=Nach Benutzern Links=Links Link=Link Rejects=Ablehnungen @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Angehängte Dateien und Dokumente JoinMainDoc=Hauptdokument verbinden +JoinMainDocOrLastGenerated=Das Hauptdokument senden oder, falls nicht gefunden, das zuletzt generierte DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS @@ -640,7 +649,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 @@ -679,7 +688,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 @@ -707,8 +716,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 @@ -752,7 +762,7 @@ Root=Stammordner RootOfMedias=Wurzelverzeichnis für öffentliche Medien (/medias) Informations=Information Page=Seite -Notes=Hinweise +Notes=Anmerkungen AddNewLine=Neue Zeile hinzufügen AddFile=Datei hinzufügen FreeZone=Freitextprodukt @@ -760,7 +770,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 @@ -778,7 +788,7 @@ NotSupported=Nicht unterstützt RequiredField=Pflichtfeld Result=Ergebnis ToTest=Test -ValidateBefore=Vor Verwendung dieser Funktion müssen Sie das Element überprüfen +ValidateBefore=Vor Verwendung dieser Funktion müssen Sie das Element freigeben Visibility=Sichtbarkeit Totalizable=Summierbar TotalizableDesc=Dieses Feld kann in der Liste summiert werden @@ -846,7 +856,7 @@ OriginFileName=original Dateiname SetDemandReason=Quelle definieren SetBankAccount=Bankkonto angeben AccountCurrency=Kontowährung -ViewPrivateNote=Zeige Hinweise +ViewPrivateNote=Anmerkungen zeigen XMoreLines=%s Zeile(n) versteckt ShowMoreLines=Mehr/weniger Zeilen anzeigen PublicUrl=Öffentliche URL @@ -858,7 +868,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 @@ -892,15 +902,15 @@ FrontOffice=Frontoffice BackOffice=Backoffice Submit=Absenden View=Ansicht -Export=Exportieren +Export=Export Exports=Exporte ExportFilteredList=Exportiere gefilterte Auswahl ExportList=Liste exportieren ExportOptions=Exportoptionen IncludeDocsAlreadyExported=Bereits exportierte Dokumente einschließen -ExportOfPiecesAlreadyExportedIsEnable=Der Export von bereits exportierten Stücken ist möglich -ExportOfPiecesAlreadyExportedIsDisable=Der Export von bereits exportierten Stücken ist deaktiviert -AllExportedMovementsWereRecordedAsExported=Alle exportierten Bewegungen wurden als exportiert registriert. +ExportOfPiecesAlreadyExportedIsEnable=Der Export von bereits exportierten Daten ist möglich +ExportOfPiecesAlreadyExportedIsDisable=Der Export von bereits exportierten Daten ist deaktiviert +AllExportedMovementsWereRecordedAsExported=Alle exportierten Buchungen wurden als exportiert erfasst NotAllExportedMovementsCouldBeRecordedAsExported=Nicht alle exportierten Bewegungen konnten als exportiert erfasst werden. Miscellaneous=Verschiedenes Calendar=Terminkalender @@ -916,9 +926,9 @@ 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 -ActualizeCurrency=Update-Wechselkurs +ActualizeCurrency=Wechselkurs aktualisieren Fiscalyear=Fiskalisches Jahr -ModuleBuilder=Modul- und Applikations-Ersteller +ModuleBuilder=Module Builder für Module und Anwendungen SetMultiCurrencyCode=Währung festlegen BulkActions=Massenaktionen ClickToShowHelp=Klicken um die Tooltiphilfe anzuzeigen @@ -938,18 +948,18 @@ EMailTemplates=E-Mail-Vorlagen FileNotShared=Datei nicht für die Öffentlichkeit freigegeben Project=Projekt Projects=Projekte -LeadOrProject=Anfrage | Projekt +LeadOrProject=Projekt | Lead LeadsOrProjects=Projekte | Leads -Lead=Anfrage -Leads=Anfragen +Lead=Lead +Leads=Leads ListOpenLeads=Liste offener Leads ListOpenProjects=Liste offener Projekte -NewLeadOrProject=Neues Projekt/neuer Lead +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 @@ -1011,7 +1021,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 @@ -1021,12 +1031,12 @@ Select2MoreCharacters=oder mehr Zeichen Select2MoreCharactersMore=Suchsyntax:
    | OR (a|b)
    * jedes Zeichen (a*b)
    ^ Beginnt mit (^ab)
    $ Ended mit (ab$)
    Select2LoadingMoreResults=Weitere Ergebnisse werden geladen ... Select2SearchInProgress=Suche läuft ... -SearchIntoThirdparties=Partner +SearchIntoThirdparties=Geschäftspartner SearchIntoContacts=Kontakte SearchIntoMembers=Mitglieder SearchIntoUsers=Benutzer -SearchIntoProductsOrServices=Produkte oder Dienstleistungen -SearchIntoBatch=Charge / Seriennr. +SearchIntoProductsOrServices=Produkte oder Leistungen +SearchIntoBatch=Charge/Seriennr. SearchIntoProjects=Projekte SearchIntoMO=Fertigungsaufträge SearchIntoTasks=Aufgaben @@ -1038,12 +1048,12 @@ SearchIntoCustomerProposals=Angebote SearchIntoSupplierProposals=Lieferantenangebote SearchIntoInterventions=Serviceaufträge SearchIntoContracts=Verträge -SearchIntoCustomerShipments=Kunden Lieferungen +SearchIntoCustomerShipments=Kundenlieferungen SearchIntoExpenseReports=Spesenabrechnungen SearchIntoLeaves=Urlaub SearchIntoTickets=Tickets SearchIntoCustomerPayments=Kundenzahlungen -SearchIntoVendorPayments=Lieferanten Zahlung +SearchIntoVendorPayments=Zahlungen an Lieferanten SearchIntoMiscPayments=Sonstige Zahlungen CommentLink=Kommentare NbComments=Anzahl der Kommentare @@ -1051,7 +1061,7 @@ CommentPage=Kommentare Leerzeichen CommentAdded=Kommentar hinzugefügt CommentDeleted=Kommentar gelöscht Everybody=Jeder -PayedBy=Einbezahlt von +PayedBy=Bezahlt von PayedTo=Bezahlt Monthly=Monatlich Quarterly=Quartalsweise @@ -1066,7 +1076,7 @@ ConfirmMassDraftDeletion=Bestätigung Massenlöschung Entwurf FileSharedViaALink=Datei mit einem öffentlichen Link geteilt SelectAThirdPartyFirst=Zunächst einen Geschäftspartner auswählen... YouAreCurrentlyInSandboxMode=Sie befinden sich derzeit im %s "Sandbox"-Modus -Inventory=Inventur +Inventory=Bestandsaufnahme AnalyticCode=Analyse-Code TMenuMRP=Produktion ShowCompanyInfos=Firmeninfos anzeigen @@ -1081,7 +1091,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 @@ -1132,10 +1142,10 @@ EventReminder=Ereignis-Erinnerung UpdateForAllLines=Aktualisierung für alle Zeilen OnHold=angehalten Civility=Anrede/Titel -AffectTag=Schlagwort beeinflussen +AffectTag=Schlagwort/Kategorie anpassen CreateExternalUser=Externen Benutzer anlegen -ConfirmAffectTag=Massen-Schlagwort-Affekt -ConfirmAffectTagQuestion=Sind Sie sicher, dass Sie Tags für die ausgewählten Datensätze von %s beeinflussen möchten? +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? CategTypeNotFound=Für den Datensatztyp wurde kein Tag-Typ gefunden CopiedToClipboard=In die Zwischenablage kopiert InformationOnLinkToContract=Dieser Betrag ist nur die Summe aller Vertragszeilen. Zeitbegriff wird nicht berücksichtigt. @@ -1158,9 +1168,22 @@ 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=Signatur zurücksetzen +ClearSignature=Unterschrift löschen CanceledHidden=Stornierte ausgeblendet CanceledShown=Stornierte angezeigt +Terminate=Beenden +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 +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 diff --git a/htdocs/langs/de_DE/members.lang b/htdocs/langs/de_DE/members.lang index 5437fa54519..6c2cbf4a389 100644 --- a/htdocs/langs/de_DE/members.lang +++ b/htdocs/langs/de_DE/members.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - members MembersArea=Mitgliederbereich -MemberCard=Mitgliedskarte -SubscriptionCard=Mitgliedschafts-Karte +MemberCard=Mitglied – Übersicht +SubscriptionCard=Mitgliedschaft – Übersicht Member=Mitglied Members=Mitglieder ShowMember=Zeige Mitgliedskarte @@ -15,7 +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 -MembersCards=Visitenkarten für Mitglieder +MembersCards=Erstellung von Karten MembersList=Liste der Mitglieder MembersListToValid=Liste freizugebender Mitglieder MembersListValid=Liste freigegebener Mitglieder @@ -24,7 +24,7 @@ MembersListNotUpToDate=Liste gültiger Mitglieder mit rückständigem Mitgliedsb MembersListExcluded=Liste der ausgeschlossenen Mitglieder MembersListResiliated=Liste der deaktivierten Mitglieder MembersListQualified=Liste der qualifizierten Mitglieder -MenuMembersToValidate=Freizugebende +MenuMembersToValidate=Freizugebende Mitglieder MenuMembersValidated=Freigegebene Mitglieder MenuMembersExcluded=Ausgeschlossene Mitglieder MenuMembersResiliated=Deaktivierte Mitglieder @@ -35,15 +35,16 @@ DateEndSubscription=Enddatum der Mitgliedschaft EndSubscription=Ende der Mitgliedschaft SubscriptionId=Beitrags-ID WithoutSubscription=Ohne Mitgliedsbeitrag -MemberId=Mitglied-ID +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 @@ -53,32 +54,32 @@ MemberStatusExcluded=Ausgeschlossenes Mitglied MemberStatusExcludedShort=Ausgeschlossen MemberStatusResiliated=Deaktivierte Mitglieder MemberStatusResiliatedShort=Deaktiviert -MembersStatusToValid=Freizugebende +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 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 @@ -101,10 +102,10 @@ ValidateMember=Mitglied freigeben ConfirmValidateMember=Möchten Sie dieses Mitglied wirklich aktivieren? FollowingLinksArePublic=Die folgenden Links sind öffentlich zugängliche Seiten und als solche nicht durch die Dolibarr-Zugriffskontrolle geschützt. Es handelt sich dabei zudem um unformatierte Seiten, die beispielsweise eine Liste aller in der Datenbank eingetragenen Mitglieder anzeigen. PublicMemberList=Liste öffentlicher Mitglieder -BlankSubscriptionForm=Öffentliches Formular für die Registrierung von Mitgliedern +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 +ForceMemberType=Mitgliedschaftstyp erzwingen ExportDataset_member_1=Mitglieder und Beitragszahlungen ImportDataset_member_1=Mitglieder LastMembersModified=Zuletzt bearbeitete Mitglieder (maximal %s) @@ -159,11 +160,11 @@ HTPasswordExport=Datei erstellen für htpassword NoThirdPartyAssociatedToMember=Mit diesem Mitglied ist kein Geschäftspartner verknüpft MembersAndSubscriptions=Mitglieder und Beitragszahlungen MoreActions=Ergänzende Erfassungsereignisse -MoreActionsOnSubscription=Ergänzende Aktion, die beim Erfassen einer Beitragszahlung standardmäßig vorgeschlagen wird +MoreActionsOnSubscription=Ergänzende Aktion, die beim Erfassen einer Beitragszahlung standardmäßig vorgeschlagen wird; bei der Online-Zahlung eines Beitrags wird diese automatisch ausgeführt. MoreActionBankDirect=Erfassung einer direkten Eingabe auf das Bankkonto oder an Kasse MoreActionBankViaInvoice=Erstellung einer Rechnung und einer Zahlung auf das Bankkonto oder an Kasse MoreActionInvoiceOnly=Automatische Rechnungserstellung (ohne Zahlung) -LinkToGeneratedPages=Visitenkarten erstellen +LinkToGeneratedPages=Erstellung von Visitenkarten oder Adressblättern LinkToGeneratedPagesDesc=Auf dieser Seite können sie PDF-Dateien mit Visitenkarten ihrer Mitglieder (auf Wunsch länderspezifisch) erstellen. DocForAllMembersCards=Visitenkarten für alle Mitglieder erstellen (Gewähltes Ausgabeformat: %s) DocForOneMemberCards=Visitenkarten für ein bestimmtes Mitglied erstellen (Gewähltes Ausgabeformat: %s) @@ -171,7 +172,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 +190,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 @@ -218,3 +219,5 @@ XExternalUserCreated=%s externe(r) Benutzer erstellt ForceMemberNature=Art des Mitglieds erzwingen (Einzelperson oder Unternehmen) CreateDolibarrLoginDesc=Die Erstellung eines Benutzer-Logins für Mitglieder ermöglicht es ihnen, sich einzuloggen. Abhängig von den erteilten Berechtigungen können sie beispielsweise ihre Mitgliedsdaten selbst einsehen oder ändern. 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 diff --git a/htdocs/langs/de_DE/modulebuilder.lang b/htdocs/langs/de_DE/modulebuilder.lang index a9ae8606a38..f4ea8214838 100644 --- a/htdocs/langs/de_DE/modulebuilder.lang +++ b/htdocs/langs/de_DE/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Dieses Tool ist für erfahrene Nutzer und Entwickler gedacht. Es stellt Werkzeuge zum Erstellen und bearbeiten von eigenen Modulen zur Verfügung. Eine Dokumentation für eine alternative manuelle Entwicklung (von Modulen) findet sich hier. -EnterNameOfModuleDesc=Geben Sie den Namen des Moduls/der Anwendung ohne Leerzeichen ein, das erstellt werden soll. Verwenden Sie Großbuchstaben, um Wörter zu trennen (z.B.: MyModule, EcommerceForShop, SyncWithMySystem....). -EnterNameOfObjectDesc=Geben Sie den Namen des zu erstellenden Objekts ohne Leerzeichen ein. Verwenden Sie Großbuchstaben, um Wörter zu trennen (z.B. MyObject, Student, Teacher....). Die CRUD-Klassendatei, aber auch die API-Datei, Seiten zum Auflisten, Hinzufügen, Bearbeiten und Löschen von Objekten und SQL-Dateien werden generiert. +EnterNameOfModuleDesc=Geben Sie den Namen des zu erstellenden Moduls / der Anwendung ohne Leerzeichen ein. Verwenden Sie Großbuchstaben, um Wörter zu trennen (Beispiel: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Geben Sie den Namen des zu erstellenden Objekts ohne Leerzeichen ein. Verwenden Sie Großbuchstaben, um Wörter zu trennen (z. B.: MyObject, Student, Teacher...). Die CRUD-Klassendatei, aber auch die API-Datei, Seiten zum Auflisten/Hinzufügen/Bearbeiten/Löschen von Objekten und SQL-Dateien werden generiert. +EnterNameOfDictionaryDesc=Geben Sie den Namen des zu erstellenden Wörterbuchs ohne Leerzeichen ein. Verwenden Sie Großbuchstaben, um Wörter zu trennen (Beispiel: MyDico...). Die Klassendatei, aber auch die SQL-Datei werden generiert. ModuleBuilderDesc2=Pfad, in dem Module generiert / bearbeitet werden (erstes Verzeichnis für externe Module, definiert in %s): %s -ModuleBuilderDesc3=Gefundenen generierte/bearbeitbare Module : %s +ModuleBuilderDesc3=Gefundene generierte/bearbeitbare Module : %s ModuleBuilderDesc4=Ein Modul wird als 'editierbar' erkannt, wenn die Datei %s im Stammverzeichnis des Modulverzeichnisses existiert. NewModule=Neues Modul NewObjectInModulebuilder=Neues Objekt +NewDictionary=Neues Wörterbuch (dictionary) ModuleKey=Modul Schlüssel ObjectKey=Objekt Schlüssel +DicKey=Wörterbuchschlüssel (dictionary key) ModuleInitialized=Modul initialisiert FilesForObjectInitialized=Datei für neues Objekt '%s' initialisiert FilesForObjectUpdated=Dateien für Objekt '%s' aktualisiert (.sql Dateien and .class.php Datei) @@ -25,15 +28,15 @@ 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 of editor -DescriptorFile=Descriptor file of module -ClassFile=File for PHP DAO CRUD class +EditorUrl=URL des Erstellers +DescriptorFile=Deskriptordatei des Moduls +ClassFile=Datei für die PHP DAO CRUD-Klasse ApiClassFile=File for PHP API class PageForList=PHP page for list of record PageForCreateEditView=PHP page to create/edit/view a record @@ -46,20 +49,20 @@ PathToModuleDocumentation=Pfad zur Datei der Modul- / Anwendungsdokumentation (% SpaceOrSpecialCharAreNotAllowed=Leer- oder Sonderzeichen sind nicht erlaubt. FileNotYetGenerated=Datei noch nicht generiert RegenerateClassAndSql=Erzwinge die Aktualisierung von .class und .sql Dateien -RegenerateMissingFiles=Generate missing files +RegenerateMissingFiles=Fehlende Dateien generieren SpecificationFile=Dokumentationsdatei -LanguageFile=File for language +LanguageFile=Sprachendatei ObjectProperties=Objekteigenschaften -ConfirmDeleteProperty=Möchten Sie die Eigenschaft %s wirklich löschen? Dadurch wird Code in der PHP-Klasse geändert, aber auch die Spalte aus der Tabellendefinition des Objekts entfernt. +ConfirmDeleteProperty=Möchten Sie die Eigenschaft %s wirklich löschen? Dadurch wird Code in der PHP-Klasse geändert, aber auch die Spalte aus der Tabellendefinition des Objekts entfernt. 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=Datenbank auf NOT NULL setzen, 0=Nullwerte zulassen, -1=Nullwerte zulassen, indem der Wert auf NULL gesetzt wird, wenn er leer ist ('' oder 0) SearchAll=Used for 'search all' -DatabaseIndex=Database index +DatabaseIndex=Datenbankindex FileAlreadyExists=Die Datei %s existiert bereits -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 +TriggersFile=Datei für Trigger-Code +HooksFile=Datei für Hooks-Code +ArrayOfKeyValues=Array von Schlüsselwerten (key-val) +ArrayOfKeyValuesDesc=Array aus Schlüsseln (keys) und Werten (values), wenn das Feld eine Kombinationsliste (combo list) mit festen Werten ist WidgetFile=Widget Datei CSSFile=CSS-Datei JSFile=Javascript-Datei @@ -72,30 +75,30 @@ PageForObjLib=Datei für die Objekt-PHP-Bibliothek SqlFileExtraFields=SQL Datei für zusätzliche Eigenschaften SqlFileKey=SQL Datei für Schlüsselwerte SqlFileKeyExtraFields=SQL-Datei für die Schlüssel der Extrafields -AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +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 GoToApiExplorer=API-Explorer ListOfMenusEntries=Liste der Menüeinträge -ListOfDictionariesEntries=Liste der Wörterbucheinträge +ListOfDictionariesEntries=Liste der Stammdaten ListOfPermissionsDefined=Liste der definierten Berechtigungen -SeeExamples=Beispiele hier +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 -DisplayOnPdf=Anzeige auf PDF +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) 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=Geben Sie in diese Dateien alle Schlüssel und entsprechende Übersetzung für jede Sprachdatei ein. +LanguageDefDesc=Erfassen Sie in diesen Dateien alle Schlüssel und Übersetzungen für die jeweilige Sprache. MenusDefDesc=Festlegen der vom Modul bereitgestellten Menüs -DictionariesDefDesc=Festlegen der vom Modul bereitgestellten Wörterbücher +DictionariesDefDesc=Festlegen der vom Modul bereitgestellten Stammdaten PermissionsDefDesc=Festlegen der neuen Berechtigungen, die vom Modul bereitgestellt werden -MenusDefDescTooltip=Die von Ihrem Modul / Ihrer Anwendung bereitgestellten Menüs werden im Array $ this-> menus in der Moduldeskriptordatei definiert. Sie können diese Datei manuell bearbeiten oder den eingebetteten Editor verwenden.

    Hinweis: Nach der Definition (und erneuten Aktivierung des Moduls) werden Menüs auch im Menüeditor angezeigt, der Administratorbenutzern unter %s zur Verfügung steht. -DictionariesDefDescTooltip=Die von Ihrem Modul / Ihrer Anwendung bereitgestellten Wörterbücher werden im Array $ this-> dictionaries in der Moduldeskriptordatei definiert. Sie können diese Datei manuell bearbeiten oder den eingebetteten Editor verwenden.

    Hinweis: Nach der Definition (und erneuten Aktivierung des Moduls) sind Wörterbücher auch für Administratorbenutzer unter %s im Setup-Bereich sichtbar. +MenusDefDescTooltip=Die von Ihrem Modul / Ihrer Anwendung bereitgestellten Menüs werden im Array $this->menus in der Moduldeskriptordatei definiert. Sie können diese Datei manuell bearbeiten oder den eingebetteten Editor verwenden.

    Hinweis: Nach der Definition (und erneuter Aktivierung des Moduls) sind die Menüs auch im Menüeditor sichtbar, der Administratorbenutzern auf %s zur Verfügung steht. +DictionariesDefDescTooltip=Die von Ihrem Modul / Ihrer Anwendung bereitgestellten Stammdaten werden im Array $ this-> dictionaries in der Moduldeskriptordatei definiert. Sie können diese Datei manuell bearbeiten oder den eingebetteten Editor verwenden.

    Hinweis: Nach der Definition (und erneuten Aktivierung des Moduls) sind Stammdaten auch für Administratorbenutzer unter %s im Setup-Bereich sichtbar. PermissionsDefDescTooltip=Die von Ihrem Modul / Ihrer Anwendung bereitgestellten Berechtigungen werden im Array $ this-> rights in der Moduldeskriptordatei definiert. Sie können diese Datei manuell bearbeiten oder den eingebetteten Editor verwenden.

    Hinweis: Nach der Definition (und erneuten Aktivierung des Moduls) werden Berechtigungen im Standardberechtigungssetup %s angezeigt. HooksDefDesc=Definieren Sie in der Eigenschaft module_parts ['hooks'] im Moduldeskriptor den Kontext der Hooks, die Sie verwalten möchten (die Liste der Kontexte kann durch eine Suche nach ' initHooks ( 'im Hauptcode) gefunden werden.
    Bearbeiten Sie die Hook-Datei, um Ihrer hooked-Funktionen Code hinzuzufügen (hookable functions können durch eine Suche nach' executeHooks 'im Core-Code gefunden werden). TriggerDefDesc=Definieren Sie in der Triggerdatei den Code, den Sie ausführen möchten, wenn ein Geschäftsereignis außerhalb Ihres Moduls ausgeführt wird (Ereignisse, die in anderen Modulen getriggert werden). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Tabelle löschen, wenn leer) TableDoesNotExists=Die Tabelle %s existiert nicht TableDropped=Tabelle %s gelöscht InitStructureFromExistingTable=Erstelle die Struktur-Array-Zeichenfolge einer vorhandenen Tabelle -UseAboutPage=About-Seite deaktivieren +UseAboutPage=Keine 'About'-Seite generieren UseDocFolder=Deaktiviere den Dokumentationsordner UseSpecificReadme=Ein spezifisches Readme verwenden ContentOfREADMECustomized=Hinweis: Der Inhalt der Datei README.md wurde durch den spezifischen Wert ersetzt, der im Setup von ModuleBuilder definiert wurde. @@ -124,12 +127,12 @@ CLIFile=CLI-Datei NoCLIFile=Keine CLI-Dateien UseSpecificEditorName = Verwenden Sie einen bestimmten Editornamen UseSpecificEditorURL = Verwenden Sie eine bestimmte Editor-URL -UseSpecificFamily = Verwenden Sie eine bestimmte Familie +UseSpecificFamily = Verwenden Sie eine bestimmte Kategorie/Gruppe UseSpecificAuthor = Verwenden Sie einen bestimmten Autor UseSpecificVersion = Verwenden Sie eine bestimmte Anfangsversion -IncludeRefGeneration=Die Objektreferenz soll automatisch generiert werden -IncludeRefGenerationHelp=Aktivieren Sie diese Option, wenn Sie Code einschließen möchten, um die Generierung der Referenz automatisch zu verwalten -IncludeDocGeneration=Ich möchte einige Dokumente aus dem Objekt generieren +IncludeRefGeneration=Die Referenz des Objekts soll automatisch mittels benutzerdefinierter Nummerierungsregeln generiert werden +IncludeRefGenerationHelp=Aktivieren Sie diese Option, wenn Sie Code einschließen möchten, der die Referenz automatisch mit Hilfe von benutzerdefinierten Nummerierungsregeln generiert +IncludeDocGeneration=Für das Objekt sollen Dokumente aus Vorlagen generiert werden können. IncludeDocGenerationHelp=Wenn Sie dies aktivieren, wird Code generiert, um dem Datensatz ein Feld "Dokument generieren" hinzuzufügen. ShowOnCombobox=Wert in der Combobox anzeigen KeyForTooltip=Schlüssel für Tooltip @@ -138,10 +141,16 @@ CSSViewClass=CSS für das Lesen von Formularen (read) CSSListClass=CSS für Listen NotEditable=Nicht bearbeitbar ForeignKey=Fremdschlüssel -TypeOfFieldsHelp=Feldtypen:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' heißt, wir ergänzen eine + Schaltfläche nach der Kombobox, um den Eintrag zu erstellen, 'filter' kann sein 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' zum Beispiel) +TypeOfFieldsHelp=Feldtypen:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    „1“ bedeutet, dass wir nach der Kombobox eine '+'-Schaltfläche hinzufügen, um den Datensatz zu erstellen
    'filter' ist eine SQL-Bedingung, Beispiel: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Ascii zu HTML Konverter AsciiToPdfConverter=Ascii zu PDF Konverter TableNotEmptyDropCanceled=Tabelle nicht leer. Löschen wurde abgebrochen. ModuleBuilderNotAllowed=Der Modul-Generator ist verfügbar, aber für Ihren Benutzer nicht zulässig. ImportExportProfiles=Profile importieren und exportieren -ValidateModBuilderDesc=Tragen Sie 1 ein, wenn dieses Feld mit $this->validateField() validiert werden muss, oder 0, wenn keine Validierung erforderlich ist +ValidateModBuilderDesc=Auf 1 setzen, wenn Sie möchten, dass die Methode $this->validateField() des Objekts aufgerufen wird, um den Inhalt des Felds während des Einfügens oder Aktualisierens freizugeben. Auf 0 setzen, wenn keine Freigabe erforderlich ist. +WarningDatabaseIsNotUpdated=Warnung: Die Datenbank wird nicht automatisch aktualisiert, Sie müssen Tabellen löschen und das Modul deaktivieren/aktivieren, damit Tabellen neu erstellt werden +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 a3b0e0c1940..91485cadecc 100644 --- a/htdocs/langs/de_DE/mrp.lang +++ b/htdocs/langs/de_DE/mrp.lang @@ -51,7 +51,7 @@ QuantityConsumedInvariable=Wenn dieses Flag gesetzt ist, ist die verbrauchte Men DisableStockChange=Bestandsänderung deaktiviert DisableStockChangeHelp=Wenn dieses Flag gesetzt ist, gibt es keine Bestandsänderung für dieses Produkt, unabhängig von der verbrauchten Menge BomAndBomLines=Stücklisten und Zeilen -BOMLine=Zeile der Stückliste +BOMLine=Position der Stückliste WarehouseForProduction=Lager für die Produktion CreateMO=Erstelle Fertigungsauftrag ToConsume=Zu verbrauchen @@ -66,11 +66,13 @@ Manufactured=Hergestellt TheProductXIsAlreadyTheProductToProduce=Das hinzuzufügende Produkt ist bereits das zu produzierende Produkt. ForAQuantityOf=Für eine zu produzierende Menge von %s ForAQuantityToConsumeOf=Für eine zu zerlegende Menge von %s -ConfirmValidateMo=Möchten Sie diesen Fertigungsauftrag validieren? -ConfirmProductionDesc=Durch Klicken auf '%s' validieren Sie den Materialverbrauch und / oder die Produktion für die eingestellten Mengen. Dadurch werden auch Bestände aktualisiert und Bestandsbewegungen aufgezeichnet. +ConfirmValidateMo=Möchten Sie diesen Fertigungsauftrag freigeben? +ConfirmProductionDesc=Durch Klicken auf '%s' geben Sie den Materialverbrauch und/oder die Produktion für die eingestellten Mengen frei. Dadurch werden auch Bestände aktualisiert und Bestandsbewegungen aufgezeichnet. ProductionForRef=Produktion von %s +CancelProductionForRef=Stornierung der Produktbestandsverringerung für Produkt %s +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 Dienstleistungen +NoStockChangeOnServices=Keine Bestandsveränderung bei Leistungen ProductQtyToConsumeByMO=zu verbrauchende Produktmenge von offenem Fertigungsauftrag ProductQtyToProduceByMO=Noch herzustellende Produktmenge des offenen Fertigungsauftrags AddNewConsumeLines=Eine neue Zeile Verbrauch hinzufügen @@ -81,15 +83,15 @@ 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) GoOnTabProductionToProduceFirst=Die Produktion muss begonnen sein, um einen Produktionsauftrag zu schließen (siehe Tab '%s'). Alternativ kann er storniert werden. -ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ein Satz kann nicht in einer Stückliste oder einem Fertigungsauftrag verwendet werden +ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ein Set kann nicht in einer Stückliste oder einem Fertigungsauftrag verwendet werden Workstation=Arbeitsstationen Workstations=Arbeitsstationen WorkstationsDescription=Verwaltung der Arbeitsstationen WorkstationSetup = Arbeitsstationen konfigurieren WorkstationSetupPage = Seite zur Einrichtung von Arbeitsstationen WorkstationList=Liste Arbeitsstationen -WorkstationCreate=Neue Arbeitsstation hinzufügen -ConfirmEnableWorkstation=Möchten Sie die Arbeitsstation %s aktivieren? +WorkstationCreate=Neue Arbeitsstation +ConfirmEnableWorkstation=Sind Sie sicher, dass Sie die Arbeitsstation %s aktivieren möchten? EnableAWorkstation=Eine Arbeitsstation aktivieren ConfirmDisableWorkstation=Sind Sie sicher, dass Sie die Arbeitsstation %s deaktivieren möchten? DisableAWorkstation=Deaktivieren Sie eine Workstation @@ -107,3 +109,6 @@ THMEstimatedHelp=Dieser Kurs ermöglicht es, prognostizierte Kosten des Artikels BOM=Stückliste CollapseBOMHelp=Die Standardanzeige der Details der Nomenklatur können Sie in der Konfiguration des Stücklistenmoduls festlegen MOAndLines=Fertigungsaufträge und Auftragspositionen +MoChildGenerate=Untergeordneten Fertigungsauftrag generieren +ParentMo=Übergeordneter Fertigungsauftrag +MOChild=Untergeordneter Fertigungsauftrag diff --git a/htdocs/langs/de_DE/multicurrency.lang b/htdocs/langs/de_DE/multicurrency.lang index 070feed47a3..0885224c974 100644 --- a/htdocs/langs/de_DE/multicurrency.lang +++ b/htdocs/langs/de_DE/multicurrency.lang @@ -13,7 +13,7 @@ multicurrency_appCurrencySource=Quell-/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 -rate=Währungskurs / Wechselkurs +rate=Wechselkurs MulticurrencyReceived=erhaltener Betrag (Originalwährung) MulticurrencyRemainderToTake=verbleibender Betrag (Originalwährung) MulticurrencyPaymentAmount=Zahlungsbetrag (Originalwährung) diff --git a/htdocs/langs/de_DE/oauth.lang b/htdocs/langs/de_DE/oauth.lang index c943cae296d..1c235015ddb 100644 --- a/htdocs/langs/de_DE/oauth.lang +++ b/htdocs/langs/de_DE/oauth.lang @@ -1,32 +1,36 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=OAuth Konfiguration -OAuthServices=OAuth Dienste +ConfigOAuth=OAuth-Konfiguration +OAuthServices=OAuth-Dienste ManualTokenGeneration=Manuelle Token Generation TokenManager=Token-Manager -IsTokenGenerated=Ist der Token generiert? +IsTokenGenerated=Ist das Token generiert? NoAccessToken=Kein Zugriffstoken in der lokalen Datenbank gespeichert 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 Umleitungs-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 einen OAuth-Token zu erzeugen +UseTheFollowingUrlAsRedirectURI=Verwenden Sie die folgende URL als Redirect-URI, wenn Sie Ihre Anmeldeinformationen bei Ihrem OAuth-Anbieter erstellen: +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 TOKEN_EXPIRE_AT=Token läuft ab am -TOKEN_DELETE=Lösche gespeicherten Token +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 . Anschließend „Eine neue Anwendung registrieren“ um OAuth-Berechtigungsnachweise zu erstellen -OAUTH_STRIPE_TEST_NAME=OAuth Test Name für Stripe -OAUTH_STRIPE_LIVE_NAME=OAuth Live Name für Stripe +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/opensurvey.lang b/htdocs/langs/de_DE/opensurvey.lang index 3b280e78df5..95b1d7befa7 100644 --- a/htdocs/langs/de_DE/opensurvey.lang +++ b/htdocs/langs/de_DE/opensurvey.lang @@ -3,7 +3,7 @@ Survey=Umfrage Surveys=Umfragen OrganizeYourMeetingEasily=Lassen Sie über Termine und andere Optionen ganz einfach abstimmen. Bitte wählen Sie zuerst den Umfragen-Typ: NewSurvey=Neue Umfrage -OpenSurveyArea=Umfragen-Übersicht +OpenSurveyArea=Umfragen – Übersicht AddACommentForPoll=Hier können Sie einen Kommentar zur Umfrage hinzufügen: AddComment=Kommentar hinzufügen CreatePoll=Umfrage erstellen diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang index 8f11e0397f4..7fa65acad2f 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 @@ -62,19 +63,21 @@ 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=Auftrag erstellen RefuseOrder=Bestellung ablehnen ApproveOrder=Bestellung genehmigen Approve2Order=Genehmige Bestellung (2. Bestätigung) +UserApproval=Benutzer zur Genehmigung +UserApproval2=Benutzer zur Genehmigung (zweite Ebene) ValidateOrder=Bestellung freigeben UnvalidateOrder=Unbestätigte Bestellung DeleteOrder=Bestellung löschen CancelOrder=Bestellung stornieren OrderReopened= Bestellung %s wieder geöffnet -AddOrder=Bestellung erstellen -AddSupplierOrderShort=Auftrag erstellen +AddOrder=Auftrag erstellen +AddSupplierOrderShort=Bestellung erstellen AddPurchaseOrder=Lieferantenbestellung erstellen AddToDraftOrders=Zu Bestellentwurf hinzufügen ShowOrder=Bestellung anzeigen @@ -102,6 +105,8 @@ ConfirmCancelOrder=Möchten Sie diese Bestellung wirklich stornieren? ConfirmMakeOrder=Bestätigen Sie, dass Sie diese Bestellung am %s aufgegeben haben? GenerateBill=Erzeuge Rechnung ClassifyShipped=Als geliefert markieren +PassedInShippedStatus=als " geliefert" klassifiziert +YouCantShipThis=Klassifizierung nicht möglich. Bitte überprüfen Sie die Benutzerberechtigungen DraftOrders=Entwürfe DraftSuppliersOrders=Entwürfe Lieferantenbestellungen OnProcessOrders=Kundenaufträge in Bearbeitung @@ -124,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 @@ -151,7 +156,7 @@ PDFEinsteinDescription=Vollständige Vorlage für Kundenaufträge (alte Implemen PDFEratostheneDescription=Vollständige Vorlage für Kundenaufträge PDFEdisonDescription=Eine einfache Bestellvorlage PDFProformaDescription=Vollständige Proforma-Rechnungsvorlage -CreateInvoiceForThisCustomer=Bestellung verrechnen +CreateInvoiceForThisCustomer=Auftrag verrechnen CreateInvoiceForThisSupplier=Bestellung verrechnen CreateInvoiceForThisReceptions=Rechnungen für Wareneingänge erstellen NoOrdersToInvoice=Keine rechnungsfähigen Bestellungen diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index 2c9b38fa0db..cd376581467 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 @@ -41,11 +41,11 @@ notiftouserandtofixedemail=An Benutzer und an festgelegte E-Mail-Adresse Notify_ORDER_VALIDATE=Kundenauftrag freigegeben Notify_ORDER_SENTBYMAIL=Kundenauftrag per E-Mail versendet Notify_ORDER_SUPPLIER_SENTBYMAIL=Lieferantenbestellung per E-Mail zugestellt -Notify_ORDER_SUPPLIER_VALIDATE=Lieferantenbestellung bestätigt +Notify_ORDER_SUPPLIER_VALIDATE=Lieferantenbestellung erfasst 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=Geschlossene unterzeichnete Kundenangebote Notify_PROPAL_CLOSE_REFUSED=verworfene Kundenangebote, geschlossen Notify_PROPAL_SENTBYMAIL=Angebot mit E-Mail gesendet Notify_WITHDRAW_TRANSMIT=Transaktion zurückziehen @@ -58,7 +58,7 @@ Notify_BILL_UNVALIDATE=Rechnung nicht freigegeben Notify_BILL_PAYED=Kundenrechnung bezahlt Notify_BILL_CANCEL=Kundenrechnung storniert Notify_BILL_SENTBYMAIL=Kundenrechnung per E-Mail zugestellt -Notify_BILL_SUPPLIER_VALIDATE=Lieferantenrechnung bestätigt +Notify_BILL_SUPPLIER_VALIDATE=Lieferantenrechnung freigegeben Notify_BILL_SUPPLIER_PAYED=Lieferantenrechnung bezahlt Notify_BILL_SUPPLIER_SENTBYMAIL=Lieferantenrechnung per E-Mail versendet Notify_BILL_SUPPLIER_CANCELED=Lieferantenrechnung storniert @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...oder bauen Sie Ihr eigenes Profil
    (manuelle Aus DemoFundation=Verwalten Sie die Mitglieder einer Stiftung DemoFundation2=Verwalten Sie die Mitglieder und Bankkonten einer Stiftung DemoCompanyServiceOnly=Unternehmen oder Freiberufler der nur Leistungen verkauft -DemoCompanyShopWithCashDesk=Verwalten Sie ein Geschäft mit Kasse +DemoCompanyShopWithCashDesk=Verwalten Sie ein Geschäft mit einer Kasse DemoCompanyProductAndStocks=Shop, der Produkte mit Point Of Sales verkauft DemoCompanyManufacturing=Firma, die Produkte herstellt DemoCompanyAll=Verwalten Sie ein kleines oder mittleres Unternehmen mit mehreren Aktivitäten (alle wesentlichen Module) @@ -186,7 +186,7 @@ AuthenticationDoesNotAllowSendNewPassword=Im derzeit gewählten Authentifizierun EnableGDLibraryDesc=Installiere oder aktiviere die GD Bibliothek in der PHP Installtion um dieses Option zu verwenden. ProfIdShortDesc=Prof ID %s dient zur Speicherung landesabhängiger Partnerdaten.
    Für das Land %s ist dies beispielsweise Code %s. DolibarrDemo=Dolibarr ERP/CRM-Demo -StatsByNumberOfUnits=Statistik zu den Totalstückzahlen Produkte/Dienstleistungen +StatsByNumberOfUnits=Statistik zu den Gesamtmengen an Produkte/Leistungen StatsByNumberOfEntities=Statistik über die Anzahl der verweisenden Entitäten (Anzahl der Rechnungen, Bestellungen etc.) NumberOfProposals=Anzahl Angebote NumberOfCustomerOrders=Anzahl der Kundenaufträge @@ -234,7 +234,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 @@ -282,7 +282,7 @@ LibraryVersion=Bibliothek Version ExportableDatas=Exportfähige Daten NoExportableData=Keine exportfähigen Daten (keine Module mit exportfähigen Dateien oder fehlende Berechtigungen) ##### External sites ##### -WebsiteSetup=Einrichtung der Modul-Website +WebsiteSetup=Einrichtung des Moduls Website WEBSITE_PAGEURL=URL der Seite WEBSITE_TITLE=TItel WEBSITE_DESCRIPTION=Beschreibung @@ -293,13 +293,35 @@ LinesToImport=Positionen zum importieren MemoryUsage=Speichernutzung RequestDuration=Dauer der Anfrage -ProductsPerPopularity=Produkte / Dienstleistungen nach Beliebtheit -PopuProp=Produkte / Dienstleistungen nach Beliebtheit in Angeboten -PopuCom=Produkte / Dienstleistungen nach Beliebtheit in Bestellungen -ProductStatistics=Produkt- / Dienstleistungsstatistik +ProductsPerPopularity=Produkte/Leistungen nach Beliebtheit +PopuProp=Produkte/Leistungen nach Beliebtheit in Angeboten +PopuCom=Produkte/Leistungen nach Beliebtheit in Bestellungen +ProductStatistics=Statistik zu Produkten/Leistungen NbOfQtyInOrders=Menge in Bestellungen SelectTheTypeOfObjectToAnalyze=Wählen Sie ein Objekt aus, um seine Statistiken anzuzeigen... 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/FTPS-Verbindungs-Konfiguration +FTPArea=FTP/FTPS-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 diff --git a/htdocs/langs/de_DE/partnership.lang b/htdocs/langs/de_DE/partnership.lang index 58ff8c1f987..7a614d7fbd9 100644 --- a/htdocs/langs/de_DE/partnership.lang +++ b/htdocs/langs/de_DE/partnership.lang @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=zu überprüfende Backlinks PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Anzahl Tage bis zur Kündigung des Status einer Partnerschaft, wenn ein Abonnement abgelaufen ist ReferingWebsiteCheck=Überprüfung der verweisenden Website ReferingWebsiteCheckDesc=Sie können eine Funktion aktivieren, um zu überprüfen, ob Ihre Partner auf ihrer eigenen Website einen Backlink zu Ihren Website-Domains hinzugefügt haben. +PublicFormRegistrationPartnerDesc=Dolibarr kann eine öffentliche URL/Website bereitstellen, damit externe Besucher eine Teilnahme am Partnerschaftsprogramm beantragen können. # # Object @@ -59,6 +60,12 @@ BacklinkNotFoundOnPartnerWebsite=Backlink auf Partner-Website nicht gefunden ConfirmClosePartnershipAsk=Möchten Sie diese Partnerschaft wirklich beenden? PartnershipType=Partnerschaftstyp PartnershipRefApproved=Partnerschaft %s genehmigt +KeywordToCheckInWebsite=Wenn Sie überprüfen möchten, ob ein bestimmtes Schlüsselwort auf der Website jedes Partners vorhanden ist, definieren Sie dieses Schlüsselwort hier +PartnershipDraft=Entwurf +PartnershipAccepted=Bestätigt +PartnershipRefused=Abgelehnt +PartnershipCanceled=storniert +PartnershipManagedFor=Partner sind # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Anzahl der Fehler bei der letzten URL-Überprüfung LastCheckBacklink=Datum der letzten URL-Überprüfung ReasonDeclineOrCancel=Ablehnungsgrund -# -# Status -# -PartnershipDraft=Entwurf -PartnershipAccepted=Bestätigt -PartnershipRefused=Abgelehnt -PartnershipCanceled=storniert -PartnershipManagedFor=Partner sind +NewPartnershipRequest=Neue Partnerschaftsanfrage +NewPartnershipRequestDesc=Mit diesem Formular können Sie die Teilnahme an einem unserer Partnerprogramme beantragen. Wenn Sie Hilfe beim Ausfüllen dieses Formulars benötigen, wenden Sie sich bitte per E-Mail an %s . + diff --git a/htdocs/langs/de_DE/paybox.lang b/htdocs/langs/de_DE/paybox.lang index 9b0d0017e19..2e8f84d4d8f 100644 --- a/htdocs/langs/de_DE/paybox.lang +++ b/htdocs/langs/de_DE/paybox.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=PayBox-Moduleinstellungen -PayBoxDesc=Dieses Modul erlaubt die Annahme von Zahlungen über Paybox. Sie können damit Zahlungen zu Objekten innerhalb des Systems (Rechnungen, Bestellungen, ...) erfassen. +PayBoxDesc=Dieses Modul bietet Online-Zahlungsseiten, um Kunden die Bezahlung mittels Paybox zu ermöglichen. Dies kann sowohl für eine allgemeine Zahlung als auch für eine Zahlung bezogen auf ein bestimmtes Dolibarr-Objekt (Rechnung, Bestellung, ...) verwendet werden. FollowingUrlAreAvailableToMakePayments=Für Kundenzahlungen stehen Ihnen die folgenden URLs zur Verfügung: PaymentForm=Zahlungsformular WelcomeOnPaymentPage=Willkommen auf unserer Online-Bezahlseite -ThisScreenAllowsYouToPay=Über dieses Fenster können Sie Online-Zahlungen an %s vornehmen. +ThisScreenAllowsYouToPay=Über diese Seite können Sie Online-Zahlungen vornehmen an: %s ThisIsInformationOnPayment=Informationen zu der vorzunehmenden Zahlung ToComplete=Vervollständigen YourEMail=E-Mail-Adresse für die Zahlungsbestätigung @@ -14,13 +14,12 @@ PayBoxDoPayment=Zahlen Sie mit Paybox YouWillBeRedirectedOnPayBox=Zur Eingabe Ihrer Kreditkartendaten werden Sie an eine sichere Bezahlseite weitergeleitet. Continue=Fortfahren SetupPayBoxToHavePaymentCreatedAutomatically=Richten Sie Ihre Paybox mit der URL %s ein, damit die Zahlung bei der Validierung durch Paybox automatisch erstellt wird. -YourPaymentHasBeenRecorded=Hiermit Bestätigen wir, dass die Zahlung ausgeführt wurde. Vielen Dank. +YourPaymentHasBeenRecorded=Ihre Zahlung wurde erfasst, vielen Dank! YourPaymentHasNotBeenRecorded=Ihre Zahlung wurde NICHT erfasst und die Transaktion wurde abgebrochen. Vielen Dank. AccountParameter=Konto Parameter UsageParameter=Einsatzparameter InformationToFindParameters=Hilfe für das Finden der %s Kontoinformationen PAYBOX_CGI_URL_V2=URL für das Paybox Zahlungsmodul "CGI Modul" -VendorName=Name des Lieferanten CSSUrlForPaymentForm=CSS-Datei für das Zahlungsmodul NewPayboxPaymentReceived=Neue Paybox-Zahlung erhalten NewPayboxPaymentFailed=Neue Paybox-Zahlungen probiert, aber fehlgeschlagen 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/printing.lang b/htdocs/langs/de_DE/printing.lang index bd74a031152..518be78d20e 100644 --- a/htdocs/langs/de_DE/printing.lang +++ b/htdocs/langs/de_DE/printing.lang @@ -10,24 +10,24 @@ ListDrivers=Treiberliste PrintTestDesc=Druckerliste FileWasSentToPrinter=Datei %s wurde an den Drucker gesendet ViaModule=über das Modul -NoActivePrintingModuleFound=Kein aktiver Treiber. Überprüfen Sie die Moduleinstellungen %s. -PleaseSelectaDriverfromList=Bitte wählen Sie einen Treiber von der Liste +NoActivePrintingModuleFound=Kein aktiver Treiber zum Drucken des Dokuments. Überprüfen Sie die Konfiguration des Moduls %s. +PleaseSelectaDriverfromList=Bitte wählen Sie einen Treiber aus der Liste aus. PleaseConfigureDriverfromList=Bitte konfiguriere den ausgewählten Treiber aus der Liste SetupDriver=Treiber Einstellungen TargetedPrinter=Zieldrucker UserConf=Pro Benutzer einrichten -PRINTGCP_INFO=Google OAuth API Einrichtung +PRINTGCP_INFO=Einrichtung der Google OAuth-API PRINTGCP_AUTHLINK=Authentifizierung PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token -PrintGCPDesc=Dieser Treiber erlaubt das direkte Senden an ein Drucker via Google Cloud Print. +PrintGCPDesc=Dieser Treiber ermöglicht das direkte Senden von Dokumenten an einen Drucker via Google Cloud Print. GCP_Name=Name GCP_displayName=Angezeigter Name GCP_Id=Drucker ID -GCP_OwnerName=Besitzername +GCP_OwnerName=Name des Eigentümers GCP_State=Druckerstatus GCP_connectionStatus=Online-Status GCP_Type=Druckertyp -PrintIPPDesc=Dieser Treiber erlaubt es, Dokumente direkt an einen Drucker zu senden.
    Es ist dafür erforderlich, ein Linux System mit CUPS installiert zu haben. +PrintIPPDesc=Dieser Treiber ermöglicht das direkte Senden von Dokumenten an einen Drucker. Dies erfordert ein Linux-System mit installiertem CUPS. PRINTIPP_HOST=Druckserver PRINTIPP_PORT=Port PRINTIPP_USER=Anmeldung (Login) diff --git a/htdocs/langs/de_DE/productbatch.lang b/htdocs/langs/de_DE/productbatch.lang index 7fd43eefbbe..1a17635f56a 100644 --- a/htdocs/langs/de_DE/productbatch.lang +++ b/htdocs/langs/de_DE/productbatch.lang @@ -3,7 +3,7 @@ ManageLotSerial=Chargen-/Serien-Nr. benutzen ProductStatusOnBatch=Ja (Chargennummer erforderlich) ProductStatusOnSerial=Ja (eindeutige Seriennummer erforderlich) ProductStatusNotOnBatch=Nein (keine Chargen-/Serien-Nr.) -ProductStatusOnBatchShort=Lot +ProductStatusOnBatchShort=Los ProductStatusOnSerialShort=Seriennummer ProductStatusNotOnBatchShort=Keine Batch=Charge / Seriennr. @@ -30,7 +30,7 @@ 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 an %s für jeden gescannten Barcode/jede Charge/jede Seriennummer +QtyToAddAfterBarcodeScan=Menge %s für jeden gescannten Barcode/jede Charge/jede Seriennummer LifeTime=Lebensdauer (in Tagen) EndOfLife=Ende der Lebensdauer ManufacturingDate=Herstellungsdatum @@ -43,3 +43,4 @@ HideLots=Lose ausblenden OutOfOrder=Außer Betrieb InWorkingOrder=In betriebsfähigem Zustand ToReplace=Ersetzen +CantMoveNonExistantSerial=Fehler. Sie bitten um die Versendung für einen Datensatzes mit einer Seriennummer, die nicht mehr existiert. Möglicherweise verwenden Sie dieselbe Seriennummer mehrmals in derselben Sendung aus demselben Lager oder sie wurde von einer anderen Sendung verwendet. Entfernen Sie diese Sendung und bereiten Sie eine andere vor. diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index 100ffcf7213..0659807bdba 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -5,66 +5,66 @@ ProductLabelTranslated=Übersetzte Produktbezeichnung ProductDescription=Produktbeschreibung ProductDescriptionTranslated=Übersetzte Produktbeschreibung ProductNoteTranslated=Übersetzte Produkt Notiz -ProductServiceCard=Produkte/Leistungen Karte +ProductServiceCard=Produkte/Leistungen – Übersicht TMenuProducts=Produkte TMenuServices=Leistungen Products=Produkte Services=Leistungen Product=Produkt Service=Leistung -ProductId=Produkt/Leistungs ID +ProductId=Produkt/-Leistungs-ID Create=Speichern -Reference=Nummer +Reference=Referenz NewProduct=Neues Produkt NewService=Neue Leistung ProductVatMassChange=Systemweite MwSt.-Änderung -ProductVatMassChangeDesc=Dieses Tool aktualisiert den für ALLE Produkte und Dienstleistungen definierten Mehrwertsteuersatz! +ProductVatMassChangeDesc=Dieses Tool aktualisiert den für ALLE Produkte und Leistungen definierten Mehrwertsteuersatz! MassBarcodeInit=Initialisierung Barcodes MassBarcodeInitDesc=Hier können Objekte mit einem Barcode initialisiert werden, die noch keinen haben. Stellen Sie vor Benutzung sicher, dass die Einstellungen des Barcode-Moduls vollständig sind! -ProductAccountancyBuyCode=Rechnungscode (Einkauf) -ProductAccountancyBuyIntraCode=Buchungscode (Einkäufe innerhalb der Gemeinschaft) -ProductAccountancyBuyExportCode=Buchungscode (Einkauf Import) -ProductAccountancySellCode=Buchhaltungscode (Verkauf) -ProductAccountancySellIntraCode=Buchungscode (Verkauf innerhalb der Gemeinschaft) -ProductAccountancySellExportCode=Kontierungscode (Verkauf Export) +ProductAccountancyBuyCode=Buchungskonto (Einkauf) +ProductAccountancyBuyIntraCode=Buchungskonto (Einkäufe innerhalb der Gemeinschaft) +ProductAccountancyBuyExportCode=Buchungskonto (Einkauf Import) +ProductAccountancySellCode=Buchungskonto (Verkauf) +ProductAccountancySellIntraCode=Buchungskonto (Verkauf innerhalb der Gemeinschaft) +ProductAccountancySellExportCode=Buchungskonto (Verkauf Export) ProductOrService=Produkt oder Leistung ProductsAndServices=Produkte und Leistungen ProductsOrServices=Produkte oder Leistungen -ProductsPipeServices=Produkte | Dienstleistungen -ProductsOnSale=Produkte zum Verkauf -ProductsOnPurchase=Produkte im Einkauf +ProductsPipeServices=Produkte | Leistungen +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 +ProductsNotOnSell=Produkte nicht im Einkauf/Verkauf +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=Services weder für Ein- noch Verkauf -ServicesOnSellAndOnBuy=Leistungen für Ein- und Verkauf -LastModifiedProductsAndServices=Zuletzt bearbeitete Produkte / Dienstleistungen (maximal %s) +ServicesNotOnSell=Leistungen weder im Einlauf noch im 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) CardProduct0=Produkt CardProduct1=Leistung -Stock=Warenbestand +Stock=Lagerbestand MenuStocks=Lagerbestände Stocks=Lagerbestände und Lagerort der Produkte Movements=Lagerbewegungen -Sell=Verkaufen +Sell=Verkauf Buy=Kauf -OnSell=Zu verkaufen -OnBuy=zum Einkaufen -NotOnSell=Nicht zu verkaufen -ProductStatusOnSell=verkäuflich -ProductStatusNotOnSell=unverkäuflich -ProductStatusOnSellShort=verkäuflich -ProductStatusNotOnSellShort=unverkäuflich -ProductStatusOnBuy=Für den Einkauf -ProductStatusNotOnBuy=Nicht für den Einkauf -ProductStatusOnBuyShort=beziehbar -ProductStatusNotOnBuyShort=unbeziehbar +OnSell=Verkäuflich +OnBuy=Beziehbar +NotOnSell=Nicht verkäuflich +ProductStatusOnSell=Verkäuflich +ProductStatusNotOnSell=Nicht verkäuflich +ProductStatusOnSellShort=Verkäuflich +ProductStatusNotOnSellShort=Nicht verkäuflich +ProductStatusOnBuy=Beziehbar +ProductStatusNotOnBuy=Nicht beziehbar +ProductStatusOnBuyShort=Beziehbar +ProductStatusNotOnBuyShort=Nicht beziehbar UpdateVAT=Aktualisiere Steuer UpdateDefaultPrice=Aktualisiere Standard Preis UpdateLevelPrices=Preise für jede Ebene aktivieren @@ -72,14 +72,14 @@ AppliedPricesFrom=Preise angewandt von SellingPrice=Verkaufspreis SellingPriceHT=Verkaufspreis (ohne Steuern) SellingPriceTTC=Verkaufspreis (inkl. USt.) -SellingMinPriceTTC=Mindest-Verkaufspreis (inkl. MwSt.) +SellingMinPriceTTC=Mindestverkaufspreis (inkl. USt.) CostPriceDescription=Dieses Preisfeld (ohne Steuern) kann verwendet werden, um den durchschnittlichen Betrag zu erfassen, den dieses Produkt für Ihr Unternehmen kostet. Dies kann ein beliebiger Preis sein, den Sie selbst berechnen, beispielsweise aus dem durchschnittlichen Kaufpreis zuzüglich der durchschnittlichen Produktions- und Vertriebskosten. CostPriceUsage=Dieser Wert könnte für Margenberechnung genutzt werden. ManufacturingPrice=Herstellungspreis SoldAmount=Verkaufte Menge -PurchasedAmount=angeschaffte Menge +PurchasedAmount=Eingekaufte Menge NewPrice=Neuer Preis -MinPrice=Mindest-Verkaufspreis +MinPrice=Mindestverkaufspreis EditSellingPriceLabel=Verkaufspreisschild bearbeiten CantBeLessThanMinPrice=Der Verkaufspreis darf den Mindestpreis für dieses Produkt (%s ohne USt.) nicht unterschreiten. Diese Meldung kann auch angezeigt werden, wenn Sie einen zu hohen Rabatt geben. ContractStatusClosed=Geschlossen @@ -97,33 +97,33 @@ ServicesArea=Leistungsübersicht ListOfStockMovements=Liste der Lagerbewegungen BuyingPrice=Einkaufspreis PriceForEachProduct=Produkte mit spezifischen Preisen -SupplierCard=Kreditorenkarte +SupplierCard=Lieferant – Übersicht PriceRemoved=Preis entfernt BarCode=Barcode 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) VariantsAbility=Varianten aktivieren (Produktvarianten, z. B. Farbe, Größe) -AssociatedProducts=Sätze -AssociatedProductsNumber=Anzahl der Produkte, aus denen dieser Satz besteht +AssociatedProducts=Sets +AssociatedProductsNumber=Anzahl der Produkte, aus denen dieses Set besteht ParentProductsNumber=Anzahl der übergeordneten Produkte ParentProducts=Verwandte Produkte -IfZeroItIsNotAVirtualProduct=Wenn 0, ist dieses Produkt kein Satz -IfZeroItIsNotUsedByVirtualProduct=Bei 0 wird dieses Produkt von keinem Satz verwendet +IfZeroItIsNotAVirtualProduct=Wenn 0, ist dieses Produkt kein Set +IfZeroItIsNotUsedByVirtualProduct=Bei 0 ist dieses Produkt in keinem Set enthalten KeywordFilter=Stichwortfilter CategoryFilter=Kategoriefilter ProductToAddSearch=Suche hinzuzufügendes Produkt NoMatchFound=Kein Eintrag gefunden ListOfProductsServices=Liste der Produkte/Leistungen -ProductAssociationList=Liste der Produkte / Dienstleistungen, die Bestandteil dieses Satzes sind -ProductParentList=Liste der Sätze mit diesem Produkt als Komponente +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 ConfirmDeleteProduct=Möchten Sie dieses Produkt/Leistung wirklich löschen? @@ -136,8 +136,9 @@ DeleteProductLine=Produktlinie löschen ConfirmDeleteProductLine=Möchten Sie diese Position wirklich löschen? ProductSpecial=Spezial QtyMin=Mindestbestellmenge -PriceQtyMin=Preismenge min. -PriceQtyMinCurrency=Preis (Währung) für diese Menge. (Kein Rabatt) +PriceQtyMin=Preis Mindestmenge +PriceQtyMinCurrency=Preis (Währung) für diese Menge. +WithoutDiscount=Ohne Rabatt VATRateForSupplierProduct=Mehrwertsteuersatz (für diesen Lieferanten / Produkt) DiscountQtyMin=Rabatt für diese Menge NoPriceDefinedForThisSupplier=Für diesen Lieferanten / Produkt wurde kein Preis / Menge definiert @@ -148,7 +149,7 @@ PredefinedServicesToSell=Vordefinierter Dienst PredefinedProductsAndServicesToSell=Vordefiniertes Produkt/Leistung PredefinedProductsToPurchase=Vordefinierte Einkaufsprodukte PredefinedServicesToPurchase=Vordefinierte Leistungen für Einkauf -PredefinedProductsAndServicesToPurchase=Vordefinierte Produkte / Dienstleistungen zum Kauf +PredefinedProductsAndServicesToPurchase=Vordefinierte Produkte/Leistungen zum Kauf NotPredefinedProducts=Keine vordefinierten Produkte/Leistungen GenerateThumb=Erzeuge Vorschaubild ServiceNb=Leistung Nr. %s @@ -158,10 +159,10 @@ 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=Klonen Sie virtuelle Produkte / Dienstleistungen +CloneCompositionProduct=Virtuelle Produkte/Leistungen duplizieren CloneCombinationsProduct=Klonen Sie die Produktvarianten ProductIsUsed=Produkt in Verwendung NewRefForClone=Artikelnummer neues Produkt / neue Leistung @@ -169,7 +170,7 @@ SellingPrices=Verkaufspreis BuyingPrices=Einkaufspreis CustomerPrices=Kundenpreise SuppliersPrices=Lieferanten Preise -SuppliersPricesOfProductsOrServices=Herstellerpreise (von Produkten oder Dienstleistungen) +SuppliersPricesOfProductsOrServices=Lieferantenpreise (von Produkten oder Leistungen) CustomCode=Zolltarifnummer CountryOrigin=Herkunftsland RegionStateOrigin=Herkunftsregion @@ -261,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 @@ -282,13 +283,13 @@ ForceUpdateChildPriceSoc=Gleichen Preis für Tochtergesellschaften des Kunden fe PriceByCustomerLog=Protokoll der vorangegangenen Kundenpreise MinimumPriceLimit=Mindestpreis darf nicht kleiner als %s sein MinimumRecommendedPrice=minimal empfohlener Preis: %s -PriceExpressionEditor=Preis Ausdrucks Editor +PriceExpressionEditor= Preisberechnungs-Editor PriceExpressionSelected=Ausgewählter Preis Ausdruck -PriceExpressionEditorHelp1="Preis = 2 + 2" oder "2 + 2" für die Einstellung der Preis. \nVerwende ; um Ausdrücke zu trennen -PriceExpressionEditorHelp2=Sie können auf die zusätzlichen Felder mit Variablen wie #extrafield_myextrafieldkey# und globale Variablen mit #global_mycode# zugreifen -PriceExpressionEditorHelp3=In den Produkt- / Service- und Lieferantenpreisen sind folgende Variablen verfügbar:
    # tva_tx # # localtax1_tx # # localtax2_tx # # weight # # length # # surface # # price_min # -PriceExpressionEditorHelp4=Nur bei Produkt- / Dienstleistungspreisen: # supplier_min_price #
    Nur bei Herstellerpreisen: # supplier_quantity # and # supplier_tva_tx # a09a4b739f7 -PriceExpressionEditorHelp5=verfügbare globale Werte: +PriceExpressionEditorHelp1="price = 2 + 2" oder "2 + 2" um den Preis festzulegen. Verwende ; um Ausdrücke zu trennen +PriceExpressionEditorHelp2=Sie können auf die zusätzlichen Felder mit Variablen wie #extrafield_myextrafieldkey# und auf globale Variablen mit #global_mycode# zugreifen +PriceExpressionEditorHelp3=In den Produkt-/Leistungs- und Lieferantenpreisen sind folgende Variablen verfügbar:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# +PriceExpressionEditorHelp4=Nur bei Produkt-/Leistungspreisen: #supplier_min_price#
    Nur bei Lieferantenpreisen: #supplier_quantity# and #supplier_tva_tx# +PriceExpressionEditorHelp5=Verfügbare globale Werte: PriceMode=Preisfindungsmethode PriceNumeric=Nummer DefaultPrice=Standardpreis @@ -316,13 +317,13 @@ LastUpdated=Zuletzt aktualisiert CorrectlyUpdated=erfolgreich aktualisiert PropalMergePdfProductActualFile=verwendete Dateien, um in PDF Azur hinzuzufügen sind / ist PropalMergePdfProductChooseFile=Wähle PDF-Dateien -IncludingProductWithTag=Umfasst Produkte/Dienstleistungen mit dem Tag +IncludingProductWithTag=Produkte/Leistungen mit dem Schlagwort hinzufügen DefaultPriceRealPriceMayDependOnCustomer=Standardpreis, echter Preis kann vom Kunden abhängig sein WarningSelectOneDocument=Bitte wählen Sie mindestens ein Dokument aus DefaultUnitToShow=Einheit NbOfQtyInProposals=Stückzahl in Angeboten ClinkOnALinkOfColumn=Klicken Sie auf einen Link in Spalte %s zur detaillierten Anzeige -ProductsOrServicesTranslations=Produkte / Dienstleistungen Übersetzungen +ProductsOrServicesTranslations=Übersetzungen von Produkten/Leistungen TranslatedLabel=Übersetztes Label TranslatedDescription=Übersetzte Beschreibung TranslatedNote=Übersetzte Notizen @@ -346,7 +347,7 @@ UseProductFournDesc=Fügen Sie eine Funktion hinzu, um die von den Anbietern def ProductSupplierDescription=Lieferantenbeschreibung für das Produkt UseProductSupplierPackaging=Berechne die Verpackung bei Lieferantenpreisen (berechnet neue Mengen / Lieferantenpreise gemäß der eingesetzten Verpackung, wenn Zeilen in den Lieferantendokumenten hinzugefügt / aktualisiert werden). PackagingForThisProduct=Verpackung -PackagingForThisProductDesc=Bei Lieferantenbestellung bestellen Sie automatisch diese Menge (oder ein Vielfaches dieser Menge). Kann nicht unter der Mindestabnahmemenge liegen +PackagingForThisProductDesc=Sie kaufen automatisch ein Vielfaches dieser Menge. QtyRecalculatedWithPackaging=Die Menge der Zeile wurde entsprechend der Lieferantenverpackung neu berechnet #Attributes @@ -369,11 +370,11 @@ EditProductCombinations=Varianten bearbeiten SelectCombination=Kombination wählen ProductCombinationGenerator=Varianten-Generator Features=Funktionen -PriceImpact=Auswirkungen auf die Preise +PriceImpact=Auswirkung auf den Preis ImpactOnPriceLevel=Einfluss auf das Preisniveau %s ApplyToAllPriceImpactLevel= Auf alle Preisniveaus anwenden ApplyToAllPriceImpactLevelHelp=Mit Klick wird der gleiche Preiseinfluss auf alle Preisniveaus angewendet -WeightImpact=Auswirkungen auf Gewicht +WeightImpact=Auswirkung auf das Gewicht NewProductAttribute=Neues Attribut NewProductAttributeValue=Wert des neuen Attributs ErrorCreatingProductAttributeValue=Es ist ein Fehler bei der Erstellung des Wertes dieses Attributes aufgetreten . \nEin Wert der gleichen Nr./Ref. wurde bereits registriert @@ -396,7 +397,7 @@ ErrorDestinationProductNotFound=Zielprodukt nicht gefunden ErrorProductCombinationNotFound=Produktvariante nicht gefunden ActionAvailableOnVariantProductOnly=Aktion nur für die Produktvariante verfügbar ProductsPricePerCustomer=Produktpreise pro Kunde -ProductSupplierExtraFields=Zusätzliche Attribute (Lieferantenpreise) +ProductSupplierExtraFields=Ergänzende Attribute (Lieferantenpreise) DeleteLinkedProduct=Löschen Sie das mit der Kombination verknüpfte untergeordnete Produkt AmountUsedToUpdateWAP=Betrag, der zum Aktualisieren des gewichteten Durchschnittspreises verwendet werden soll PMPValue=Gewichteter Warenwert @@ -404,10 +405,25 @@ PMPValueShort=DSWP mandatoryperiod=Pflichtzeiträume mandatoryPeriodNeedTobeSet=Hinweis: Zeitraum (Start- und Enddatum) muss definiert sein mandatoryPeriodNeedTobeSetMsgValidate=Eine Leistung erfordert einen Start- und Endzeitraum -mandatoryHelper=Aktivieren, wenn Sie beim Erstellen/Validieren einer Rechnung, eines Angebotes oder eines Kundenauftrags eine Meldung anzeigen möchten, wenn Positionen mit diesem Service kein Start- und Enddatum enthalten.
    Beachten Sie, dass es sich bei der Meldung um eine Warnung und nicht um einen blockierenden Fehler handelt. +mandatoryHelper=Aktivieren, wenn Sie beim Erstellen/Freigeben einer Rechnung, eines Angebotes oder eines Kundenauftrags eine Meldung anzeigen möchten, wenn Positionen mit dieser Leistung kein Start- und Enddatum enthalten.
    Beachten Sie, dass es sich bei der Meldung um eine Warnung und nicht um einen blockierenden Fehler handelt. DefaultBOM=Standardstückliste (BOM) DefaultBOMDesc=Die zur Herstellung dieses Produkts empfohlene Standardstückliste (BOM). Dieses Feld kann nur gesetzt werden, wenn die Art des Produkts '%s' ist. Rank=Rang +MergeOriginProduct=Doppeltes Produkt (Produkt, das Sie löschen möchten) +MergeProducts=Produkte zusammenführen +ConfirmMergeProducts=Sind Sie sicher, dass Sie das ausgewählte Produkt mit dem aktuellen zusammenführen möchten? Alle verknüpften Objekte (Rechnungen, Bestellungen, ...) werden in das aktuelle Produkt verschoben, danach wird das ausgewählte Produkt gelöscht. +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 +PMPExpected=Erwartetes PMP +ExpectedValuation=Erwartete Bewertung +PMPReal=Echtes PMP +RealValuation=Echte Bewertung +ConfirmEditExtrafield = Wählen Sie das zu ändernde Extrafeld aus +ConfirmEditExtrafieldQuestion = Möchten Sie dieses Extrafeld wirklich ändern? +ModifyValueExtrafields = Wert eines Extrafeldes ändern diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index 313cc907d4f..6c9d5370ee3 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -3,17 +3,17 @@ 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=Projektkontakte +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, für die Sie zum Lesen berechtigt sind. -ProjectsPublicTaskDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welchen Sie über Leserechte verfügen. +TasksOnProjectsPublicDesc=Diese Ansicht zeigt alle Aufgaben der Projekte, die Sie einsehen dürfen. +ProjectsPublicTaskDesc=Diese Ansicht zeigt alle Projekte und Aufgaben, die Sie einsehen dürfen. ProjectsDesc=Es werden alle Projekte angezeigt (Ihre Berechtigungen berechtigt Sie alle Projekte zu sehen). TasksOnProjectsDesc=Es werden alle Aufgaben angezeigt (Ihre Berechtigungen berechtigt Sie alles zu sehen). MyTasksDesc=Diese Ansicht ist auf die Projekte oder Aufgaben beschränkt, für die Sie als Ansprechpartner benannt sind @@ -25,14 +25,14 @@ AllTaskVisibleButEditIfYouAreAssigned=Alle Aufgaben für qualifizierte Projekte 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. 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 @@ -42,7 +42,7 @@ 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 +55,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 +65,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,37 +74,37 @@ 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 CurentlyOpenedTasks=Aktuell offene Aufgaben TheReportedProgressIsLessThanTheCalculatedProgressionByX=Der deklarierte reale Fortschritt ist weniger %s als der Fortschritt bei der Nutzung TheReportedProgressIsMoreThanTheCalculatedProgressionByX=Der deklarierte reale Fortschritt ist mehr %s als der Fortschritt bei der Nutzung -ProgressCalculated=Fortschritte bei der Nutzung +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 Interventionen -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,9 +113,9 @@ 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 @@ -125,7 +125,7 @@ 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) 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. @@ -145,7 +145,7 @@ ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt IfNeedToUseOtherObjectKeepEmpty=Wenn einige Zuordnungen (Rechnung, Bestellung, ...), einem Dritten gehören, müssen Sie erst alle mit dem Projekt verbinden, damit das Projekt auch Dritten zugänglich ist . CloneTasks=Dupliziere Aufgaben CloneContacts=Dupliziere Kontakte -CloneNotes=Dupliziere Hinweise +CloneNotes=Anmerkungen duplizieren CloneProjectFiles=Dupliziere verbundene Projektdateien CloneTaskFiles=Aufgabe(n) duplizieren beigetreten Dateien (falls Aufgabe (n) dupliziert) CloneMoveDate=Datum des Projekts / der Aufgaben zum aktuellen Zeitpunkt aktualisieren? @@ -154,7 +154,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 +165,7 @@ OpportunityProbability=Wahrscheinlichkeit Kundeninteresse OpportunityProbabilityShort=Wahrscheinl. Kundeninteresse OpportunityAmount=Wert/Betrag für Lead OpportunityAmountShort=Wert/Betrag für Lead -OpportunityWeightedAmount=Verkaufschancen gewichteter Wert +OpportunityWeightedAmount=Gewichteter Wert der Verkaufschance OpportunityWeightedAmountShort=Verkaufsschancen gew. OpportunityAmountAverageShort=Kundeninteresse im Durchschnitt OpportunityAmountWeigthedShort=Kundeninteresse gewichtet @@ -189,16 +189,17 @@ DocumentModelTimeSpent=Projektberichtsvorlage für die aufgewendete Zeit PlannedWorkload=Geplante Auslastung PlannedWorkloadShort=Arbeitsaufwand ProjectReferers=Verknüpfte Einträge -ProjectMustBeValidatedFirst=Projekt muss erst bestätigt werden +ProjectMustBeValidatedFirst=Projekt muss erst freigegeben 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 @@ -208,7 +209,7 @@ AssignTaskToMe=Aufgabe mir selbst zuweisen AssignTaskToUser=Aufgabe an %s zuweisen SelectTaskToAssign=Zuzuweisende Aufgabe auswählen... AssignTask=Zuweisen -ProjectOverview=Projekt-Übersicht +ProjectOverview=Projektübersicht ManageTasks=Benutze Projekte um Aufgaben zu verfolgen und/oder den Zeitaufwand anzugeben (Stundenzettel) ManageOpportunitiesStatus=Verwende Projekte um Leads und Chancen zu verwalten ProjectNbProjectByMonth=Anzahl der erstellten Projekte pro Monat @@ -221,9 +222,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 @@ -258,10 +259,10 @@ TimeSpentInvoiced=Zeitaufwand in Rechnung gestellt TimeSpentForIntervention=Zeitaufwand TimeSpentForInvoice=Zeitaufwand OneLinePerUser=Eine Zeile pro Benutzer -ServiceToUseOnLines=Service für Leistungen +ServiceToUseOnLines=Zeiten über Leistung abrechnen 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=Prüfe, ob Arbeitszeittabellen für Projektaufgaben geführt werden UND ob Rechnungen aus dieser Arbeitszeittabelle erstellt werden sollen, um mit dem Kunden des Projekts abzurechnen (Prüfe nicht, ob Rechnungen erstellt werden sollen, die nicht auf Arbeitszeittabellen basieren). Hinweis: Um eine Rechnung zu erstellen, gehe auf die Registerkarte 'Zeitaufwand' des Projekts und wähle einzuschließende Zeilen aus. +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. ProjectFollowOpportunity=Leads (Interessenten) nachverfolgen ProjectFollowTasks=Aufgaben und aufgewendete Zeiten nachverfolgen Usage=Verwendungszweck @@ -287,3 +288,9 @@ 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. ProjectsHavingThisContact=Projekte mit diesem Kontakt StartDateCannotBeAfterEndDate=Enddatum kann nicht vor dem Startdatum liegen +ErrorPROJECTLEADERRoleMissingRestoreIt=Die Rolle „PROJECTLEADER“ (Projektleiter) fehlt oder wurde deaktiviert, bitte unter Stammdaten/Kontaktarten wiederherstellen +LeadPublicFormDesc=Sie können hier eine öffentliche Seite aktivieren, damit Ihre Interessenten über ein öffentliches Online-Formular einen ersten Kontakt mit Ihnen aufnehmen können +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 diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index 195877029a2..8a587547f9d 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -6,7 +6,7 @@ ProposalsDraft=Angebotsentwürfe ProposalsOpened=offene Angebote CommercialProposal=Angebot PdfCommercialProposalTitle=Angebot -ProposalCard=Angebot - Übersicht +ProposalCard=Angebot – Übersicht NewProp=Neues Angebot NewPropal=neues Angebot Prospect=Interessent @@ -33,7 +33,7 @@ PropalStatusSigned=unterzeichnet (abrechenbar) PropalStatusNotSigned=abgelehnt (geschlossen) PropalStatusBilled=Verrechnet PropalStatusDraftShort=Entwurf -PropalStatusValidatedShort=Bestätigt (offen) +PropalStatusValidatedShort=Freigegeben (offen) PropalStatusClosedShort=geschlossen PropalStatusSignedShort=beauftragt PropalStatusNotSignedShort=abgelehnt @@ -54,6 +54,7 @@ NoDraftProposals=Keine Angebotsentwürfe CopyPropalFrom=Erstelle neues Angebot durch Kopieren eines vorliegenden Angebots CreateEmptyPropal=Erstelle leeres Angebot oder aus der Liste der Produkte/Leistungen DefaultProposalDurationValidity=Standardmäßige Gültigkeitsdauer (Tage) +DefaultPuttingPricesUpToDate=Die Preise standardmäßig mit den aktuell bekannten Preisen aktualisieren, wenn ein Angebot geklont wird UseCustomerContactAsPropalRecipientIfExist=Verwenden Sie Kontakt / Adresse mit dem Typ 'Kontakt-Folgeangebot', anstelle der Geschäftspartner-Adresse als Empfängeradresse für das Angebot ConfirmClonePropal=Sind Sie sicher, dass Sie dieses Angebot %s duplizieren möchten? ConfirmReOpenProp=Sind Sie sicher, dass Sie dieses Angebot %s wieder öffnen möchten ? @@ -79,21 +80,34 @@ TypeContact_propal_external_SHIPPING=Kundenkontakt für Lieferung DocModelAzurDescription=Ein vollständiges Angebotsmodell (alte Implementierung der Cyan-Vorlage) DocModelCyanDescription=Ein vollständiges Angebotsmodell DefaultModelPropalCreate=Erstellung Standardvorlage -DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schließen wollen (zur Verrechung) -DefaultModelPropalClosed=Standard Schablone wenn sie ein Geschäftsangebot schließen wollen. (ohne Rechnung) +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 +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 IdProduct=Produkt ID -PrParentLine=Übergeordnete Zeile des Angebots LineBuyPriceHT=Betrag Kaufpreis abzüglich Steuern für Zeile SignPropal=Angebot annehmen RefusePropal=Angebot ablehnen -Sign=Unterschreiben +Sign=Beauftragen +NoSign=Auf "abgelehnt" setzen PropalAlreadySigned=Angebot bereits angenommen PropalAlreadyRefused=Angebot bereits abgelehnt -PropalSigned=Angebot angenommen +PropalSigned=Angebot beauftragt PropalRefused=Angebot abgelehnt -ConfirmRefusePropal=Möchten Sie dieses kommerzielle Angebot wirklich ablehnen? +ConfirmRefusePropal=Möchten Sie dieses Angebot wirklich ablehnen? diff --git a/htdocs/langs/de_DE/receiptprinter.lang b/htdocs/langs/de_DE/receiptprinter.lang index f13265c9d26..1a3e69ee434 100644 --- a/htdocs/langs/de_DE/receiptprinter.lang +++ b/htdocs/langs/de_DE/receiptprinter.lang @@ -7,11 +7,11 @@ TestSentToPrinter=Sende Testseite zu Drucker %s ReceiptPrinter=Quittungsdrucker ReceiptPrinterDesc=Einstellungen Quittungsdrucker ReceiptPrinterTemplateDesc=Einrichtung von Vorlagen -ReceiptPrinterTypeDesc=Einzustellende Parameter nach Druckertyp +ReceiptPrinterTypeDesc=Beispiel für mögliche Werte für das Feld „Parameter“ je nach Treibertyp ReceiptPrinterProfileDesc=Auswahlhilfe für die Dropdown-Liste "Profile" ListPrinters=Druckerliste SetupReceiptTemplate=Vorlagen Setup -CONNECTOR_DUMMY=Dummy Drucker +CONNECTOR_DUMMY=Dummy-Drucker CONNECTOR_NETWORK_PRINT=Netzwerk-Drucker CONNECTOR_FILE_PRINT=lokaler Drucker CONNECTOR_WINDOWS_PRINT=lokaler Windows Drucker @@ -42,7 +42,7 @@ DOL_PRINT_BARCODE=Barcode drucken DOL_PRINT_BARCODE_CUSTOMER_ID=Drucke Barcode Kunden ID DOL_CUT_PAPER_FULL=Quittung komplett abtrennen DOL_CUT_PAPER_PARTIAL=Quittung teilweise abtrennen -DOL_OPEN_DRAWER=Kassenschublade +DOL_OPEN_DRAWER=Kassenschublade öffnen DOL_ACTIVATE_BUZZER=Summer aktivieren DOL_PRINT_QRCODE=QR-Code drucken DOL_PRINT_LOGO=Drucklogo meiner Firma @@ -55,17 +55,19 @@ DOL_DEFAULT_HEIGHT_WIDTH=Standard für Höhe und Breite DOL_UNDERLINE=Unterstreichen aktivieren DOL_UNDERLINE_DISABLED=Unterstreichen deaktivieren DOL_BEEP=Piepton +DOL_BEEP_ALTERNATIVE=Piepton (alternativer Modus) +DOL_PRINT_CURR_DATE=Aktuelles Datum/Uhrzeit drucken DOL_PRINT_TEXT=Text drucken DateInvoiceWithTime=Rechnungsdatum und -zeit YearInvoice=Rechnungsjahr -DOL_VALUE_MONTH_LETTERS=Rechnungsmonat (Abkürzung) +DOL_VALUE_MONTH_LETTERS=Rechnungsmonat (als Wort) DOL_VALUE_MONTH=Rechnungsmonat DOL_VALUE_DAY=Rechnungstag -DOL_VALUE_DAY_LETTERS=Rechnungstag (Abkürzung) +DOL_VALUE_DAY_LETTERS=Rechnungstag (als Wort) DOL_LINE_FEED_REVERSE=Zeilenvorschub umgekehrt InvoiceID=Rechnungs-ID -InvoiceRef=Rechnungs Nr. -DOL_PRINT_OBJECT_LINES=Rechnungsposten +InvoiceRef=Rechnungs-Nr. +DOL_PRINT_OBJECT_LINES=Rechnungspositionen DOL_VALUE_CUSTOMER_FIRSTNAME=Vorname des Kunden DOL_VALUE_CUSTOMER_LASTNAME=Nachname des Kunden DOL_VALUE_CUSTOMER_MAIL=Kunden-E-Mail @@ -75,8 +77,8 @@ DOL_VALUE_CUSTOMER_SKYPE=Kunden-Skype DOL_VALUE_CUSTOMER_TAX_NUMBER=Kunden-Steuernummer DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Kunden-Kontostand DOL_VALUE_MYSOC_NAME=Ihr Firmenname -VendorLastname=Nachname Verkäufer*in -VendorFirstname=Vorname Verkäufer*in -VendorEmail=Lieferanten E-Mail +VendorLastname=Verkäufer Nachname +VendorFirstname=Verkäufer Vorname +VendorEmail=Verkäufer E-Mail DOL_VALUE_CUSTOMER_POINTS=Kundenpunkte DOL_VALUE_OBJECT_POINTS=Objektpunkte diff --git a/htdocs/langs/de_DE/receptions.lang b/htdocs/langs/de_DE/receptions.lang index a969383777c..4728cc7b62d 100644 --- a/htdocs/langs/de_DE/receptions.lang +++ b/htdocs/langs/de_DE/receptions.lang @@ -29,7 +29,7 @@ StatusReceptionValidatedToReceive=Validiert (zu erhaltende Produkte) StatusReceptionValidatedReceived=Validiert (Produkte erhalten) StatusReceptionProcessed=Bearbeitet StatusReceptionDraftShort=Entwurf -StatusReceptionValidatedShort=Bestätigt +StatusReceptionValidatedShort=Freigegeben StatusReceptionProcessedShort=Bearbeitet ReceptionSheet=Empfangsblatt ConfirmDeleteReception=Möchten Sie diesen Wareneingang wirklich löschen? @@ -43,7 +43,7 @@ ReceptionCreationIsDoneFromOrder=Im Moment erfolgt die Erstellung eines neuen Wa ReceptionLine=Empfang line ProductQtyInReceptionAlreadySent=Produktmenge von open sales order already gesendet ProductQtyInSuppliersReceptionAlreadyRecevied=Bereits erhaltene Produktmenge aus Lieferantenbestellung -ValidateOrderFirstBeforeReception=Sie müssen zunächst die order validate validieren, bevor Sie Empfänge erstellen können. +ValidateOrderFirstBeforeReception=Die Bestellung muss freigeben werden, bevor Empfänge erfasst werden können. ReceptionsNumberingModules=Nummerierungsmodul für Empfänge ReceptionsReceiptModel=Dokumentvorlagen für Empfänge NoMorePredefinedProductToDispatch=Keine vordefinierten Produkte mehr zum Versand diff --git a/htdocs/langs/de_DE/recruitment.lang b/htdocs/langs/de_DE/recruitment.lang index a196f310cee..beb8ab5994e 100644 --- a/htdocs/langs/de_DE/recruitment.lang +++ b/htdocs/langs/de_DE/recruitment.lang @@ -45,13 +45,13 @@ DateExpected=Erwartetes Datum FutureManager=Zukünftiger Manager ResponsibleOfRecruitement=Verantwortlicher für die Personalbeschaffung IfJobIsLocatedAtAPartner=Wenn sich der Job an einem Partnerort befindet -PositionToBeFilled=Position der Stelle -PositionsToBeFilled=Berufspositionen -ListOfPositionsToBeFilled=Liste der Stellen -NewPositionToBeFilled=Neue Stellen +PositionToBeFilled=Offene Stelle +PositionsToBeFilled=Offene Stellen +ListOfPositionsToBeFilled=Liste der offenen Stellen +NewPositionToBeFilled=Neue offene Stellen JobOfferToBeFilled=Zu besetzende Stelle -ThisIsInformationOnJobPosition=Information über die zu besetzende Position +ThisIsInformationOnJobPosition=Information über die zu besetzende Stelle ContactForRecruitment=Ansprechpartner für die Rekrutierung EmailRecruiter=E-Mail Rekruter ToUseAGenericEmail=So verwenden Sie eine generische E-Mail. Falls nicht definiert, wird die E-Mail-Adresse des für die Personalbeschaffung Verantwortlichen verwendet @@ -63,7 +63,7 @@ ContractProposed=Vertrag unterbreitet ContractSigned=Vertrag unterschrieben ContractRefused=Vertrag abgelehnt RecruitmentCandidature=Bewerbung -JobPositions=Berufspositionen +JobPositions=Offene Stellen RecruitmentCandidatures=Bewerbungen InterviewToDo=Bewerbungsgespräch machen AnswerCandidature=Antwort auf die Bewerbung @@ -73,4 +73,6 @@ JobClosedTextCandidateFound=Die Stelle ist geschlossen. Die Position wurde beset JobClosedTextCanceled=Die Stelle ist geschlossen. ExtrafieldsJobPosition=Ergänzende Attribute (Stellenangebote) ExtrafieldsApplication=Ergänzende Attribute (Bewerbungen) -MakeOffer=Machen Sie ein Angebot +MakeOffer=Angebot unterbreiten +WeAreRecruiting=Wir stellen ein. Dies ist eine Liste mit offenen Stellen, die zu besetzen sind... +NoPositionOpen=Zur Zeit sind keine Stellen offen diff --git a/htdocs/langs/de_DE/resource.lang b/htdocs/langs/de_DE/resource.lang index 23595e6a141..3fa5ea8db6e 100644 --- a/htdocs/langs/de_DE/resource.lang +++ b/htdocs/langs/de_DE/resource.lang @@ -8,13 +8,13 @@ NoResourceLinked=keine Ressource verknüpft ActionsOnResource=Ereignisse zu dieser Ressource ResourcePageIndex=Liste der Ressourcen ResourceSingular=Ressource -ResourceCard=Ressource - Übersicht +ResourceCard=Ressource – Übersicht AddResource=Ressource erstellen ResourceFormLabel_ref=Ressourcen-Name ResourceType=Ressourcen-Typ ResourceFormLabel_description=Ressourcen-Beschreibung -ResourcesLinkedToElement=mit Element verknüpfte Ressourcen +ResourcesLinkedToElement=Mit Element verknüpfte Ressourcen ShowResource=Ressource anzeigen diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang index bb80a1f2578..cff8bef69b0 100644 --- a/htdocs/langs/de_DE/salaries.lang +++ b/htdocs/langs/de_DE/salaries.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard Buchhaltungskonto für Gehaltszahlungen -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 Vorgabewert für die Nebenbücher verwendet, wenn beim Benutzer kein Konto hinterlegt ist. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Buchhaltungs-Konto für Löhne +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard Buchungskonto für Benutzer von Geschäftspartnern +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 Salary=Gehalt Salaries=Gehälter @@ -16,11 +16,12 @@ ShowSalaryPayment=Gehaltszahlung anzeigen THM=Durchschnittlicher Stundensatz TJM=Durchschnittlicher Tagessatz CurrentSalary=Aktuelles Gehalt -THMDescription=Dieser Wert kann verwendet werden, um die Kosten für die verwendete Zeit eines Anwender zu berechnen, wenn das Modul Projektverwaltung verwendet wird, -TJMDescription=Dieser Wert ist aktuell nur zu Informationszwecken und wird nicht für eine Berechnung verwendet +THMDescription=Dieser Wert kann verwendet werden, um die Kosten für die aufgewendete Zeit eines Benutzers zu berechnen, wenn das Modul Projektverwaltung verwendet wird +TJMDescription=Dieser Wert dient derzeit nur zur Information und wird für keine Berechnung verwendet LastSalaries=Letzte %s Gehälter AllSalaries=Alle Gehälter SalariesStatistics=Statistik Gehälter SalariesAndPayments=Gehälter und Gehaltszahlungen ConfirmDeleteSalaryPayment=Möchten Sie diese Gehaltszahlung löschen? FillFieldFirst=Zuerst das Mitarbeiterfeld ausfüllen +UpdateAmountWithLastSalary=Als Betrag letztes Gehalt vorbelegen diff --git a/htdocs/langs/de_DE/sendings.lang b/htdocs/langs/de_DE/sendings.lang index b3805c1c6d7..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,23 +12,23 @@ ListOfSendings=Versandliste SendingMethod=Versandart LastSendings=%s neueste Lieferungen StatisticsOfSendings=Versandstatistik -NbOfSendings=Anzahl Auslieferungen -NumberOfShipmentsByMonth=Anzahl Auslieferungen pro Monat -SendingCard=Lieferung - Übersicht +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 QtyToShip=Liefermenge -QtyToReceive=Menge zu erhalten +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/sms.lang b/htdocs/langs/de_DE/sms.lang index 797b032a76f..a9b1b1da783 100644 --- a/htdocs/langs/de_DE/sms.lang +++ b/htdocs/langs/de_DE/sms.lang @@ -2,14 +2,14 @@ Sms=SMS SmsSetup=SMS Einstellungen SmsDesc=Auf dieser Seite können globale Einstellungen der SMS-Funktionen vorgenommen werden -SmsCard=SMS Karte +SmsCard=SMS – Übersicht AllSms=alle SMS Kampagnen SmsTargets=Ziele SmsRecipients=Empfänger SmsRecipient=Empfänger SmsTitle=Titel SmsFrom=Absender -SmsTo=Ziel +SmsTo=Empfänger SmsTopic=Thema der SMS (Betreff) SmsText=Nachricht SmsMessage=SMS Nachricht @@ -28,7 +28,7 @@ TestSms=Test SMS ValidSms=SMS bestätigen ApproveSms=SMS genehmigen SmsStatusDraft=Entwurf -SmsStatusValidated=Bestätigt +SmsStatusValidated=Freigegeben SmsStatusApproved=Genehmigt SmsStatusSent=Gesendet SmsStatusSentPartialy=Teileweise gesendet @@ -46,6 +46,6 @@ SendSms=SMS senden SmsInfoCharRemain=Anzahl der verbleibenden Zeichen SmsInfoNumero= (internationales Rufnummernformat, Bsp.: +33899701761) DelayBeforeSending=Warten vor dem Senden (in Minuten) -SmsNoPossibleSenderFound=Kein Sender verfügbar. Prüfen Sie die Einstellungen Ihres SMS Providers. -SmsNoPossibleRecipientFound=Keine möglichen Empfänger gefunden. Prüfen Sie die Einstellungen Ihres SMS Anbieters. +SmsNoPossibleSenderFound=Kein Sender verfügbar. Prüfen Sie die Einstellungen Ihres SMS-Providers. +SmsNoPossibleRecipientFound=Kein Empfänger verfügbar. Prüfen Sie die Einstellungen Ihres SMS-Providers. DisableStopIfSupported=STOP-Meldung deaktivieren (falls unterstützt) diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index bfe56b09605..7da1a65eb67 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - stocks -WarehouseCard=Warenlager - Übersicht +WarehouseCard=Warenlager – Übersicht Warehouse=Warenlager Warehouses=Warenlager ParentWarehouse=Übergeordnetes Lager @@ -28,16 +28,16 @@ Movements=Lagerbewegungen ErrorWarehouseRefRequired=Warenlager-Referenz erforderlich ListOfWarehouses=Liste der Warenlager ListOfStockMovements=Liste der Lagerbewegungen -ListOfInventories=Liste der Inventuren +ListOfInventories=Liste der Bestandsaufnahmen MovementId=Bewegungs ID StockMovementForId=Lagerbewegung Nr. %d ListMouvementStockProject=Lagerbewegungen für Projekt -StocksArea=Warenlager - Übersicht +StocksArea=Warenlager – Übersicht AllWarehouses=Alle Warenlager IncludeEmptyDesiredStock=Schließe auch negative Bestände mit undefinierten gewünschten Beständen ein IncludeAlsoDraftOrders=Fügen Sie auch Auftragsentwürfe hinzu Location=Standort -LocationSummary=Kurzname des Ortes +LocationSummary=Kurzbezeichnung Standort NumberOfDifferentProducts=Anzahl einzigartiger Produkte NumberOfProducts=Anzahl Produkte LastMovement=Letzte Bewegung @@ -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 @@ -176,34 +176,34 @@ ProductStockWarehouseCreated=Bestandeswert für Benachrichtigung und erwünschte ProductStockWarehouseUpdated=Bestandeswert für Benachrichtigung und erwünschtem optimalem Lagerbestand aktualisiert ProductStockWarehouseDeleted=Bestandeswert für Benachrichtigung und erwünschtem optimalem Lagerbestand gelöscht AddNewProductStockWarehouse=Neuen Grenzwert für Benachrichtigung und gewünschtem Lagerbestand setzen -AddStockLocationLine=Bestand buchen und danach klicken, um dieses Produkt einem weiteren Warenlager zuzuweisen -InventoryDate=Inventardatum -Inventories=Inventuren +AddStockLocationLine=Menge verringern, danach klicken, um die Position aufzuteilen. +InventoryDate=Datum der Bestandsaufnahme +Inventories=Bestandsaufnahmen NewInventory=Neue Bestandsaufnahme -inventorySetup = Inventar einrichten -inventoryCreatePermission=Neue Inventur erstellen -inventoryReadPermission=Inventar anzeigen -inventoryWritePermission=Inventar aktualisieren -inventoryValidatePermission=Inventur freigeben -inventoryDeletePermission=Inventar löschen -inventoryTitle=Inventar -inventoryListTitle=Inventuren -inventoryListEmpty=Keine Inventarisierung in Arbeit -inventoryCreateDelete=Inventar erstellen/löschen +inventorySetup = Bestandsaufnahme einrichten +inventoryCreatePermission=Neue Bestandsaufnahme erstellen +inventoryReadPermission=Bestände anzeigen +inventoryWritePermission=Bestände aktualisieren +inventoryValidatePermission=Bestandsaufnahme freigeben +inventoryDeletePermission=Bestandsaufnahme löschen +inventoryTitle=Bestandsaufnahme +inventoryListTitle=Bestandsaufnahmen +inventoryListEmpty=Keine Bestandsaufnahme in Arbeit +inventoryCreateDelete=Bestandsaufnahme erstellen/löschen inventoryCreate=Neu erstellen inventoryEdit=Bearbeiten -inventoryValidate=Bestätigt +inventoryValidate=Freigegeben inventoryDraft=In Arbeit inventorySelectWarehouse=Lager auswählen inventoryConfirmCreate=Erstelle -inventoryOfWarehouse=Inventur für Lager: %s +inventoryOfWarehouse=Bestandsaufnahme für Lager: %s inventoryErrorQtyAdd=Fehler: Eine Menge ist kleiner als Null -inventoryMvtStock=By Inventar +inventoryMvtStock=Nach Bestand inventoryWarningProductAlreadyExists=Dieses Produkt ist schon in der Liste SelectCategory=Kategoriefilter SelectFournisseur=Herstellerfilter -inventoryOnDate=Inventur -INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Lagerbewegungen haben das Datum der Bestandsaufnahme (anstelle des Datums der Inventur). +inventoryOnDate=Bestandsaufnahme +INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Lagerbewegungen haben das Erfassungsdatum der Bestandsaufnahme (anstelle des Validierungsdatums der Bestandsaufnahme). inventoryChangePMPPermission=Durchschnittspreis änderbar ColumnNewPMP=Neuer Durchschnittsstückpreis OnlyProdsInStock=Fügen sie kein Produkt ohne Bestand hinzu @@ -215,12 +215,12 @@ RecordedQty=Aufgezeichnete Menge RealQty=Echte Menge RealValue=Echter Wert RegulatedQty=Gebuchte Menge -AddInventoryProduct=Produkt zu Inventar hinzufügen +AddInventoryProduct=Produkt zum Bestand hinzufügen AddProduct=Hinzufügen ApplyPMP=Durchschnittspreis übernehmen FlushInventory=Bestand leeren ConfirmFlushInventory=Bestätigen Sie diese Aktion? -InventoryFlushed=Inventar wurde gelöscht +InventoryFlushed=Bestand geleert ExitEditMode=Berarbeiten beenden inventoryDeleteLine=Zeile löschen RegulateStock=Lager ausgleichen @@ -232,8 +232,8 @@ StockIncreaseAfterCorrectTransfer=Bestandszunahme durch Korrektur/Transfer StockDecreaseAfterCorrectTransfer=Bestandsabnahme durch Korrektur/Transfer StockIncrease=Bestandserhöhung StockDecrease=Bestandsabnahme -InventoryForASpecificWarehouse=Inventur für ein bestimmtes Lager -InventoryForASpecificProduct=Inventur für ein bestimmtes Produkt +InventoryForASpecificWarehouse=Bestandsaufnahme für ein bestimmtes Lager +InventoryForASpecificProduct=Bestandsaufnahme für ein bestimmtes Produkt StockIsRequiredToChooseWhichLotToUse=Ein Lagerbestand ist erforderlich, um das zu verwendende Buch auszuwählen ForceTo=Erzwingen AlwaysShowFullArbo=Anzeige des vollständigen Angebots (Popup des Lager-Links). Warnung: Dies kann die Leistung erheblich beeinträchtigen. @@ -243,31 +243,75 @@ 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 InfoTemplateImport=Hochgeladene Dateien müssen dieses Format haben (* sind Pflichtfelder):
    Startlager * | Ziellager * | Produkt * | Menge * | Los- / Seriennummer
    Das CSV-Zeichentrennzeichen muss " %s " sein. -LabelOfInventoryMovemement=Inventar %s +LabelOfInventoryMovemement=Bestand %s ReOpen=wiedereröffnen -ConfirmFinish=Abschluss der Inventur bestätigen? Dadurch werden entsprechende Lagerbewegungen generiert, um Ihren Lagerbestand auf die tatsächliche Menge zu aktualisieren, die Sie als Inventurbestand eingegeben haben. +ConfirmFinish=Abschluss der Bestandsaufnahme bestätigen? Dadurch werden entsprechende Lagerbewegungen generiert, um Ihren Lagerbestand auf die tatsächliche Menge zu aktualisieren, die Sie als Bestand erfasst haben. ObjectNotFound=%s nicht gefunden MakeMovementsAndClose=Bewegungen erzeugen und schließen -AutofillWithExpected=Ersetzen Sie die tatsächliche Menge durch die erwartete Menge +AutofillWithExpected=Füllen Sie die reale Menge mit der erwarteten Menge ShowAllBatchByDefault=Standardmäßig die Chargendetails auf der Registerkarte "Lager" des Produkts anzeigen CollapseBatchDetailHelp=Sie können die Standardanzeige für Chargendetails in der Konfiguration des Bestandsmoduls festlegen 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 Inventar finden +ErrorCantFindCodeInInventory=Kann den folgenden Code nicht im Bestand finden QtyWasAddedToTheScannedBarcode=Erfolg! Bei allen angeforderten Barcodes wurde die Menge hinzugefügt. Sie können das Scanner-Tool schließen. 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 e9c2d66dcde..5db52f3c5c0 100644 --- a/htdocs/langs/de_DE/stripe.lang +++ b/htdocs/langs/de_DE/stripe.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - stripe StripeSetup=Kreditkarten Moduleinstellungen StripeDesc=Bieten Sie Ihren Kunden eine Online-Zahlungsseite für Kredit/Debit-Kartenzahlungen viaStripe an. Kunden können sowohl allgemeine Zahlungen als auch Zahlungen für ein spezifisches Dolibarr-Objekt (Rechnung, Auftrag, ...) vornehmen. -StripeOrCBDoPayment=Zahlen mit Kreditkarte oder Stripe -FollowingUrlAreAvailableToMakePayments=Für Kundenzahlungen stehen Ihnen die folgenden URLs zur Verfügung: +StripeOrCBDoPayment=Zahlen mit Kreditkarte oder über Stripe +FollowingUrlAreAvailableToMakePayments=Die folgenden URLs sind verfügbar, um einem Kunden eine Seite anzubieten, auf der er eine Zahlung für Dolibarr-Objekte vornehmen kann PaymentForm=Zahlungsformular WelcomeOnPaymentPage=Willkommen auf unserer Online-Bezahlseite -ThisScreenAllowsYouToPay=Über dieses Fenster können Sie Online-Zahlungen an %s vornehmen. +ThisScreenAllowsYouToPay=Über diese Seite können Sie Online-Zahlungen vornehmen an: %s ThisIsInformationOnPayment=Informationen zu der vorzunehmenden Zahlung ToComplete=Vervollständigen YourEMail=E-Mail-Adresse für die Zahlungsbestätigung @@ -24,48 +24,49 @@ ToOfferALinkForOnlinePaymentOnMemberSubscription=URL bietet eine %s Online Zahlu ToOfferALinkForOnlinePaymentOnDonation=URL bietet eine %s Online-Zahlungsseite für die Zahlung einer Spende an YouCanAddTagOnUrl=Es können URL-Parameter angegeben werden &tag=value für jede dieser URLs (nur erforderlich für Zahlungen, die nicht mit einem Objekt verknüpft sind) kann ein eigener Zahlungskommentar-Tag hinzugefügt werden.
    Für eine Zahlungs-URL ohne existierendes Objekt, kann der Parameter auch hinzugefügt werden &noidempotency=1 so the same link with same tag can be used several times (einige Zahlungsmodi beschränken ggf. Zahlungen auf eine je unterschiedlichen Link ohne diesen Parameter) SetupStripeToHavePaymentCreatedAutomatically=Richten Sie Stripe mit der URL %s ein, um nach Freigabe durch Stripe eine Zahlung anzulegen. -AccountParameter=Konto Parameter +AccountParameter=Account Parameter UsageParameter=Einsatzparameter InformationToFindParameters=Hilfe beim Auffinden Ihrer %s Kontoinformationen STRIPE_CGI_URL_V2=URL für das Stripe CGI Zahlungsmodul CSSUrlForPaymentForm=CSS-Datei für das Zahlungsmodul NewStripePaymentReceived=Neue Stripezahlung erhalten NewStripePaymentFailed=Neue Stripezahlung versucht, aber fehlgeschlagen -FailedToChargeCard=Karte konnte nicht aufgeladen werden +FailedToChargeCard=Abbuchung von Karte fehlgeschlagen STRIPE_TEST_SECRET_KEY=Geheimer Testschlüssel STRIPE_TEST_PUBLISHABLE_KEY=Öffentlicher Testschlüssel 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=Kartenzahlungen importieren +StripeImportPayment=Stripe Zahlungen importieren ExampleOfTestCreditCard=Beispiel für eine zu testende Kreditkarte: %s => gültig, %s => Fehler CVC, %s => abgelaufen, %s => Belastung fehlgeschlagen -StripeGateways=Kartengateways -OAUTH_STRIPE_TEST_ID=Karten Connect Client ID (ca_...) -OAUTH_STRIPE_LIVE_ID=Karten Connect Client ID (ca_...) +StripeGateways=Stripe Gateways +OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...) +OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...) BankAccountForBankTransfer=Bankkonto für Auszahlungen StripeAccount=Stripe Konto StripeChargeList=Liste der Bezahlvorgänge StripeTransactionList=Liste aller Transaktionen -StripeCustomerId=Kundennummer Karte -StripePaymentModes=Kartenzahlungsarten +StripeCustomerId=Stripe Kunden-ID +StripePaymentModes=Stripe Zahlungsarten LocalID=Lokale ID -StripeID=Karte ID +StripeID=Stripe ID NameOnCard=Name auf Karte CardNumber=Kartennummer ExpiryDate=Ablaufdatum -CVN=CVN +CVN=Kartenprüfnummer (CVN) DeleteACard=Karte löschen ConfirmDeleteCard=Wollen Sie diese Debit- oder Kreditkarte wirklich löschen? -CreateCustomerOnStripe=Kunde mit Karte erstellen +CreateCustomerOnStripe=Kunden auf Stripe erstellen CreateCardOnStripe=Karte auf Stripe erstellen -ShowInStripe=In Karte anzeigen +ShowInStripe=In Stripe anzeigen StripeUserAccountForActions=Benutzerkonto zur E-Mail-Benachrichtigung über einige Stripe-Ereignisse (Stripe-Auszahlungen) StripePayoutList=Liste der Auszahlungen ToOfferALinkForTestWebhook=Link zum Einrichten von Stripe WebHook zum Aufruf von IPN (Testmodus) ToOfferALinkForLiveWebhook=Link zum Einrichten von Stripe WebHook zum Aufruf von IPN (Livemodus) 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 den Stripe-Kundendatensatz einzuschalten: %s +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/supplier_proposal.lang b/htdocs/langs/de_DE/supplier_proposal.lang index 93994b30256..63c8f09282c 100644 --- a/htdocs/langs/de_DE/supplier_proposal.lang +++ b/htdocs/langs/de_DE/supplier_proposal.lang @@ -1,37 +1,37 @@ # Dolibarr language file - Source file is en_US - supplier_proposal SupplierProposal=Lieferantenangebot -supplier_proposalDESC=Preisanfrage an Lieferanten verwalten -SupplierProposalNew=neue Preisanfrage +supplier_proposalDESC=Preisanfragen an Lieferanten verwalten +SupplierProposalNew=Neue Preisanfrage CommRequest=Preisanfrage CommRequests=Preisanfragen SearchRequest=Anfrage suchen -DraftRequests=Anfrage erstellen +DraftRequests=Anfragen im Status "Entwurf" SupplierProposalsDraft=Entwürfe von Lieferantenangeboten LastModifiedRequests=Zuletzt bearbeitete Preisanfragen (maximal %s) -RequestsOpened=offene Preisanfragen +RequestsOpened=Offene Preisanfragen SupplierProposalArea=Bereich Lieferantenangebote -SupplierProposalShort=Lieferanten Angebot +SupplierProposalShort=Lieferantenangebot SupplierProposals=Lieferantenangebote SupplierProposalsShort=Lieferantenangebote AskPrice=Preisanfrage -NewAskPrice=neue Preisanfrage +NewAskPrice=Neue Preisanfrage ShowSupplierProposal=Preisanfrage anzeigen AddSupplierProposal=Preisanfrage erstellen -SupplierProposalRefFourn=Lieferantenreferenz +SupplierProposalRefFourn=Ref. Lieferant SupplierProposalDate=Liefertermin -SupplierProposalRefFournNotice=Vor dem schließen mit "Freigeben", sollten Sie die Lieferanten-Nr. erfassen. -ConfirmValidateAsk=Möchten Sie diese Preisanfrage wirklich unter %s bestätigen? +SupplierProposalRefFournNotice=Vor dem schließen mit "Freigeben", sollten Sie die Lieferanten-Refs. erfassen. +ConfirmValidateAsk=Möchten Sie diese Preisanfrage wirklich unter %s freigeben? DeleteAsk=Anfrage löschen ValidateAsk=Anfrage freigeben -SupplierProposalStatusDraft=Entwurf (muss noch überprüft werden) -SupplierProposalStatusValidated=Bestätigt (Anfrage ist offen) +SupplierProposalStatusDraft=Entwurf (muss noch freigegeben werden) +SupplierProposalStatusValidated=Freigegeben (Anfrage ist offen) SupplierProposalStatusClosed=Geschlossen SupplierProposalStatusSigned=Bestätigt SupplierProposalStatusNotSigned=Abgelehnt SupplierProposalStatusDraftShort=Entwurf SupplierProposalStatusValidatedShort=Freigegeben SupplierProposalStatusClosedShort=Geschlossen -SupplierProposalStatusSignedShort=Bestätigt +SupplierProposalStatusSignedShort=Angenommen SupplierProposalStatusNotSignedShort=Abgelehnt CopyAskFrom=Erstellen Sie eine Preisanfrage, indem Sie eine vorhandene Anfrage kopieren CreateEmptyAsk=Leere Anfrage anlegen @@ -39,20 +39,20 @@ ConfirmCloneAsk=Möchten Sie diese Preisanfrage %s wirklich duplizieren? ConfirmReOpenAsk=Möchten Sie diese Preisanfrage %s wirklich wieder öffnen? SendAskByMail=Preisanfrage per E-Mail versenden SendAskRef=Sende Preisanfrage %s -SupplierProposalCard=Anfrage - Übersicht +SupplierProposalCard=Anfrage – Übersicht ConfirmDeleteAsk=Möchten Sie diese Preisanfrage %s wirklich löschen? ActionsOnSupplierProposal=Ereignis bei Preisanfrage -DocModelAuroreDescription=Ein vollständiges Anfragemodell (logo...) +DocModelAuroreDescription=Vollständige Vorlage für eine Anfrage (Logo...) CommercialAsk=Preisanfrage -DefaultModelSupplierProposalCreate=Erstellung eines Standard-Modells +DefaultModelSupplierProposalCreate=Erstellung einer Standard-Vorlage DefaultModelSupplierProposalToBill=Standardvorlage wenn eine Preisanfrage geschlossen wird (angenommen) DefaultModelSupplierProposalClosed=Standardvorlage wenn eine Preisanfrage geschlossen wird (abgelehnt) ListOfSupplierProposals=Liste von Angebotsanfragen für Lieferanten -ListSupplierProposalsAssociatedProject=Liste der Zuliefererangebote, die mit diesem Projekt verknüpft sind -SupplierProposalsToClose=zu schließende Lieferantenangebote +ListSupplierProposalsAssociatedProject=Liste der Lieferantenangebote, die mit dem Projekt verknüpft sind +SupplierProposalsToClose=Zu schließende Lieferantenangebote SupplierProposalsToProcess=Lieferantenangebote zu Verarbeiten LastSupplierProposals=letzte %s Preisanfragen AllPriceRequests=Alle Anfragen TypeContact_supplier_proposal_external_SHIPPING=Lieferantenkontakt für die Lieferung TypeContact_supplier_proposal_external_BILLING=Lieferantenkontakt für die Abrechnung -TypeContact_supplier_proposal_external_SERVICE=Vertreter für Angebot +TypeContact_supplier_proposal_external_SERVICE=Vertreter für die weitere Bearbeitung des Angebots diff --git a/htdocs/langs/de_DE/suppliers.lang b/htdocs/langs/de_DE/suppliers.lang index a5043c2b875..a94d13880eb 100644 --- a/htdocs/langs/de_DE/suppliers.lang +++ b/htdocs/langs/de_DE/suppliers.lang @@ -3,15 +3,15 @@ Suppliers=Lieferanten SuppliersInvoice=Lieferantenrechnung SupplierInvoices=Lieferantenrechnungen ShowSupplierInvoice=Zeige Lieferantenrechnung -NewSupplier=neuer Lieferant +NewSupplier=Neuer Lieferant History=Verlauf ListOfSuppliers=Liste der Lieferanten ShowSupplier=zeige Lieferant OrderDate=Bestelldatum -BuyingPriceMin=bester Einkaufspreis +BuyingPriceMin=Bester Einkaufspreis BuyingPriceMinShort=min. EK TotalBuyingPriceMinShort=Summe Unterprodukte Einkaufspreis -TotalSellingPriceMinShort=Summe Unterprodukte Verkaufspreis +TotalSellingPriceMinShort=Summe Verkaufspreise Unterprodukte SomeSubProductHaveNoPrices=Einige Unterprodukte haben keinen Preis. AddSupplierPrice=Einkaufspreis anlegen ChangeSupplierPrice=Einkaufspreis ändern @@ -20,30 +20,37 @@ ReferenceSupplierIsAlreadyAssociatedWithAProduct=Für dieses Produkt existiert b NoRecordedSuppliers=kein Lieferant vorhanden SupplierPayment=Lieferanten Zahlvorgang SuppliersArea=Lieferanten Übersicht -RefSupplierShort=Lieferanten Zeichen +RefSupplierShort=Ref . Lieferant Availability=Verfügbarkeit ExportDataset_fournisseur_1=Lieferantenrechnungen und Positionen ExportDataset_fournisseur_2=Lieferantenrechnungen und Zahlungen ExportDataset_fournisseur_3=Lieferantenbestellungen und Positionen ApproveThisOrder=Bestellung bestätigen -ConfirmApproveThisOrder=Möchten Sie diese Bestellung %s wirklich bestätigen? +ConfirmApproveThisOrder=Möchten Sie diese Bestellung %s wirklich bestätigen? DenyingThisOrder=Bestellung ablehnen ConfirmDenyingThisOrder=Möchten Sie diese Bestellung %s wirklich ablehnen? -ConfirmCancelThisOrder=Möchten Sie die Bestellung %s wirklich stornieren ? +ConfirmCancelThisOrder=Möchten Sie die Bestellung %s wirklich stornieren? AddSupplierOrder=Lieferantenbestellung erstellen AddSupplierInvoice=Lieferantenrechnung erstellen ListOfSupplierProductForSupplier=Liste der Produkte und Preise für Lieferanten %s SentToSuppliers=An Lieferanten versandt ListOfSupplierOrders=Liste der Lieferantenbestellungen -MenuOrdersSupplierToBill=Bestellungen zu Rechnungen +MenuOrdersSupplierToBill=Lieferantenbestellungen zu Rechnungen NbDaysToDelivery=Lieferverzug (Tage) DescNbDaysToDelivery=Die längste Lieferverzögerung der Produkte aus dieser Bestellung SupplierReputation=Lieferanten-Reputation -ReferenceReputation=Referenz Ruf -DoNotOrderThisProductToThisSupplier=hier nicht bestellen -NotTheGoodQualitySupplier=Geringe Qualität +ReferenceReputation=Ref. Reputation +DoNotOrderThisProductToThisSupplier=Hier nicht bestellen +NotTheGoodQualitySupplier=Niedrige Qualität ReputationForThisProduct=Reputation BuyerName=Käufer AllProductServicePrices=Alle Produkt/Leistung Preise -AllProductReferencesOfSupplier=alle Referenzen des Anbieters +AllProductReferencesOfSupplier=Alle Referenzen des Lieferanten BuyingPriceNumShort=Lieferantenpreise +RepeatableSupplierInvoice=Vorlage Lieferantenrechnung +RepeatableSupplierInvoices=Vorlage Lieferantenrechnungen +RepeatableSupplierInvoicesList=Vorlage Lieferantenrechnungen +RecurringSupplierInvoices=Wiederkehrende Lieferantenrechnungen +ToCreateAPredefinedSupplierInvoice=Um eine Vorlage für eine Lieferantenrechnung zu erstellen, müssen Sie eine Standardrechnung erstellen und dann ohne sie zu freizugeben auf die Schaltfläche "%s" klicken. +GeneratedFromSupplierTemplate=Erstellt aus der Lieferantenrechnungsvorlage %s +SupplierInvoiceGeneratedFromTemplate=Lieferantenrechnung %s erstellt aus der Lieferantenrechnungsvorlage %s diff --git a/htdocs/langs/de_DE/ticket.lang b/htdocs/langs/de_DE/ticket.lang index 8742c907110..599cd4f9009 100644 --- a/htdocs/langs/de_DE/ticket.lang +++ b/htdocs/langs/de_DE/ticket.lang @@ -19,16 +19,16 @@ # 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 +TicketDictType=Ticket-Anfragearten +TicketDictCategory=Ticket-Themengruppen TicketDictSeverity=Ticket-Dringlichkeiten TicketDictResolution=Ticket-Auflösung @@ -75,7 +75,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,19 +86,21 @@ 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 im Wörterbuch 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=Absenderadresse für Ticketbenachrichtigungen -TicketEmailNotificationFromHelp=In Beispielantwort eines Tickets verwendet -TicketEmailNotificationTo=E-Mailbenachrichtigungen senden an -TicketEmailNotificationToHelp=Sende E-Mail-Benachrichtigungen an diese Adresse. +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 TicketNewEmailBodyHelp=Dieser Text wird in die E-Mail eingefügt, welche nach dem erstellen eines Tickets via öffentlichem Interface gesendet wird. Informationen für den Zugriff auf das Ticket werden automatisch hinzugefügt. TicketParamPublicInterface=Einstellungen öffentliche Schnitstelle TicketsEmailMustExist=E-Mailadresse muss bestehen, damit ein Ticket eröffnet werden kann TicketsEmailMustExistHelp=Für das öffentlich Interface müssen die E-Mailadressen schon in der Datenbank hinterlegt sein um ein neues Ticket erstellen zu können. +TicketCreateThirdPartyWithContactIfNotExist=Bei unbekannter E-Mail-Adresse Namen und Firmennamen erfassen. +TicketCreateThirdPartyWithContactIfNotExistHelp=Überprüfen, ob für die eingegebene E-Mail-Adresse ein Geschäftspartner oder ein Kontakt existiert. Wenn nicht, wird nach einem Namen und einem Firmennamen gefragt, um einen Geschäftspartner mit Kontakt zu erstellen. PublicInterface=Öffentliche Schnittstellle TicketUrlPublicInterfaceLabelAdmin=Abweichende URL für öffentliche Oberfläche TicketUrlPublicInterfaceHelpAdmin=Es ist möglich einen Alias zum Webserver zu definieren, um das öffentliche Interface auf einer anderen URL sichtbar zu machen. Der Server muss in diesem Fall als Proxy für diese neue URL arbeiten @@ -109,10 +111,10 @@ TicketPublicInterfaceTopicLabelAdmin=Interface Titel TicketPublicInterfaceTopicHelp=Dieser Text erscheint als Titel im öffentlichen Interface. TicketPublicInterfaceTextHelpMessageLabelAdmin=Hilfetext für das Eingabefeld der Mitteilung TicketPublicInterfaceTextHelpMessageHelpAdmin=Dieser Text erscheint über dem Textfeld für die Eingabe des Benutzers. -ExtraFieldsTicket=Zusätzliche Attribute +ExtraFieldsTicket=Ergänzende Attribute TicketCkEditorEmailNotActivated=HTML Editor ist nicht aktiviert. Bitte FCKEDITOR_ENABLE_MAIL auf 1 um ihn zu aktivieren. TicketsDisableEmail=Keine E-Mails senden wenn Tickets erstellt werden oder Mitteilung erfasst werden. -TicketsDisableEmailHelp=Normalerweise werden E-Mails versednet, wenn neue Tickets oder Mitteilung erstellt werden. Aktivieren Sie diese Option um diese E-Mail Benachrichtigungen zu deaktivieren. +TicketsDisableEmailHelp=Standardmäßig werden E-Mails versendet, wenn neue Tickets oder Mitteilungen erstellt werden. Aktivieren Sie diese Option um diese E-Mail Benachrichtigungen zu deaktivieren. TicketsLogEnableEmail=Log via E-Mail aktivieren TicketsLogEnableEmailHelp=Bei jeder Änderung wird eine E-Mail **an jeden Kontakt** gesendet, der dem Ticket zugeordnet ist. TicketParams=Parameter @@ -130,12 +132,24 @@ 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) TicketPublicNotificationNewMessageDefaultEmail=Benachrichtigungen per E-Mail an (Update) TicketPublicNotificationNewMessageDefaultEmailHelp=Sende E-Mail-Benachrichtigungen über neue Nachrichten an diese Adresse, wenn dem Ticket kein Benutzer zugewiesen ist oder der Benutzer keine E-Mail hat. +TicketsAutoReadTicket=Ticket automatisch als gelesen markieren (bei Erstellung aus dem Backoffice) +TicketsAutoReadTicketHelp=Ein Ticket automatisch als gelesen markieren, wenn es aus dem Backoffice erstellt wird. Wenn ein Ticket über die öffentliche Schnittstelle erstellt wird, behält das Ticket den Status „Nicht gelesen“. +TicketsDelayBeforeFirstAnswer=Ein neues Ticket sollte eine erste Antwort erhalten innerhalb von (Stunden): +TicketsDelayBeforeFirstAnswerHelp=Wenn ein neues Ticket nach diesem Zeitraum (in Stunden) keine Antwort erhalten hat, wird ein Warnsymbol "wichtig" in der Listenansicht angezeigt. +TicketsDelayBetweenAnswers=Ein ungelöstes Ticket sollte nicht inaktiv sein nach (Stunden): +TicketsDelayBetweenAnswersHelp=Wenn für ein ungelöstes Ticket, das bereits eine Antwort erhalten hat, nach diesem Zeitraum (in Stunden) keine weitere Interaktion stattgefunden hat, wird in der Listenansicht ein Warnsymbol angezeigt. +TicketsAutoNotifyClose=Benachrichtigen Sie Geschäftspartner automatisch, wenn Sie ein Ticket schließen +TicketsAutoNotifyCloseHelp=Beim Schließen eines Tickets wird Ihnen vorgeschlagen, eine Nachricht an einen der Kontakte des Geschäftspartners zu senden. Beim Massenabschluss wird eine Nachricht an einen Kontakt des mit dem Ticket verknüpften Geschäftspartners gesendet. +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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Sortierung nach aufsteigendem Datum OrderByDateDesc=Sortierung nach absteigendem Datum ShowAsConversation=Als Konversationsliste anzeigen MessageListViewType=Als Tabellenliste anzeigen +ConfirmMassTicketClosingSendEmail=Senden Sie automatisch E-Mails, wenn Sie Tickets schließen +ConfirmMassTicketClosingSendEmailQuestion=Möchten Sie Geschäftspartner benachrichtigen, wenn Sie diese Tickets schließen? # # Ticket card @@ -164,7 +180,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 @@ -197,7 +213,7 @@ ConfirmDeleteTicket=Soll dieses Ticket wirklich gelöscht werden? TicketDeletedSuccess=Ticket wurde gelöscht TicketMarkedAsClosed=Ticket als geschlossen markiert TicketDurationAuto=Dauer berechnen -TicketDurationAutoInfos=Automatische Zeitberechnung basierend auf den interventionen +TicketDurationAutoInfos=Die Dauer wird automatisch aus dem Serviceauftrag ermittelt TicketUpdated=Ticket aktualisiert SendMessageByEmail=Mitteilung via E-Mail senden TicketNewMessage=Neue Mitteilung @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Empfänger ist leer. Keine E-Mail TicketGoIntoContactTab=Gehen Sie in den Tab "Kotakte" und wählen Sie ihn aus TicketMessageMailIntro=Einführung TicketMessageMailIntroHelp=Dieser Text wird am Anfang der E-Mail Nachricht hinzugefügt, aber nicht gespeichert. -TicketMessageMailIntroLabelAdmin=Einleitung zur Mitteilung wenn E-Mails versendet werden -TicketMessageMailIntroText=Hallo,
    Eine neue Antwort auf ihr Ticket wurde gesendet. Die Mitteilung ist:
    -TicketMessageMailIntroHelpAdmin=Dieser Text wird vor dem Antworttext des Tickets eingefügt. +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=

    Mit freundlichen Grüssen,

    -

    +TicketMessageMailSignatureText=Nachricht gesendet von %s über Dolibarr TicketMessageMailSignatureLabelAdmin=Signatur in Antwortmail TicketMessageMailSignatureHelpAdmin=Dieser Text wird nach dem Antworttext angehängt. TicketMessageHelp=Nur dieser Text wird in der Mitteilungsliste auf der Ticketkarte gespeichert. @@ -238,9 +254,16 @@ TicketChangeStatus=Status ändern TicketConfirmChangeStatus=Status wirklich ändern: %s? TicketLogStatusChanged=Status von %s zu %s geändert TicketNotNotifyTiersAtCreate=Firma bei Erstellen nicht Benachrichtigen +NotifyThirdpartyOnTicketClosing=Kontakte, die beim Schließen des Tickets benachrichtigt werden sollen +TicketNotifyAllTiersAtClose=Alle zugehörigen Kontakte +TicketNotNotifyTiersAtClose=Kein zugehöriger Kontakt Unread=Ungelesen TicketNotCreatedFromPublicInterface=Nicht verfügbar. Ticket wurde nicht über die öffentliche Schnittstelle erstellt. ErrorTicketRefRequired=Ein Ticket-Betreff ist erforderlich +TicketsDelayForFirstResponseTooLong=Seit Ticketeröffnung ist zu viel Zeit ohne Antwort vergangen. +TicketsDelayFromLastResponseTooLong=Seit der letzten Antwort auf dieses Ticket ist zu viel Zeit vergangen. +TicketNoContractFoundToLink=Es wurde kein Vertrag gefunden, der automatisch mit diesem Ticket verknüpft werden könnte. Bitte verknüpfen Sie einen Vertrag manuell. +TicketManyContractsLinked=Mehrere Verträge wurden automatisch mit diesem Ticket verknüpft. Vergewissern Sie sich, welche ausgewählt werden soll. # # Logs @@ -268,8 +291,9 @@ TicketNewEmailBody=Automatische Bestätigung: Ihr Ticket wurde erfolgreich erste TicketNewEmailBodyCustomer=Automatische Bestätigung: Ihr Ticket wurde erfolgreich in Ihrem Konto erstellt. TicketNewEmailBodyInfosTicket=Informationen um das Ticket zu überwachen TicketNewEmailBodyInfosTrackId=Ticket-Trackingnummer: %s -TicketNewEmailBodyInfosTrackUrl=Sie können den Fortschritt des Tickets mit obigen Link anschauen. +TicketNewEmailBodyInfosTrackUrl=Sie können den Fortschritt des Tickets anzeigen, indem Sie auf den folgenden Link klicken TicketNewEmailBodyInfosTrackUrlCustomer=Sie können den Fortschritt der Tickets im jeweiligen Interface mit dem folgenden Link anschauen +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. @@ -291,6 +315,10 @@ NewUser=Neuer Benutzer NumberOfTicketsByMonth=Anzahl der Tickets pro Monat NbOfTickets=Anzahl der Tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket geschlossen +TicketCloseEmailBodyCustomer=Dies ist eine automatische Nachricht, die Sie darüber informiert, dass das Ticket %s gerade geschlossen wurde. +TicketCloseEmailSubjectAdmin=Ticket geschlossen - Ref %s (öffentliche Ticket-ID %s) +TicketCloseEmailBodyAdmin=Ein Ticket mit der ID #%s wurde gerade geschlossen, siehe Informationen: TicketNotificationEmailSubject=Ticket %s aktualisiert TicketNotificationEmailBody=Automatische Nachricht: Ihr Ticket %s wurde soeben aktualisiert TicketNotificationRecipient=Empfänger benachrirchtigen diff --git a/htdocs/langs/de_DE/trips.lang b/htdocs/langs/de_DE/trips.lang index 40f87b51e63..1217fe5c4b9 100644 --- a/htdocs/langs/de_DE/trips.lang +++ b/htdocs/langs/de_DE/trips.lang @@ -3,7 +3,7 @@ ShowExpenseReport=Spesenabrechnung anzeigen Trips=Spesenabrechnungen TripsAndExpenses=Spesenabrechnungen TripsAndExpensesStatistics=Reise- und Fahrtspesen Statistik -TripCard=Reisekosten - Übersicht +TripCard=Reisekosten – Übersicht AddTrip=Spesenabrechnung erstellen ListOfTrips=Aufstellung Spesenabrechnungen ListOfFees=Liste der Spesen @@ -37,7 +37,7 @@ AnyOtherInThisListCanValidate=Person, die zur Validierung der Anfrage informiert TripSociete=Partner TripNDF=Hinweise Spesenabrechnung PDFStandardExpenseReports=Standard-Vorlage, um ein PDF-Dokument für die Spesenabrechnung zu erzeugen -ExpenseReportLine=Spesenabrechnung Zeile +ExpenseReportLine=Position in der Spesenabrechnung TF_OTHER=Andere TF_TRIP=Versand TF_LUNCH=Bewirtung @@ -81,7 +81,7 @@ ModePaiement=Zahlungsart VALIDATOR=Verantwortlicher Benutzer für Genehmigung VALIDOR=genehmigt durch AUTHOR=erstellt von -AUTHORPAIEMENT=Einbezahlt von +AUTHORPAIEMENT=Bezahlt von REFUSEUR=abgelehnt durch CANCEL_USER=gelöscht von MOTIF_REFUS=Grund @@ -91,7 +91,7 @@ DATE_SAVE=Freigabedatum DATE_CANCEL=Stornodatum DATE_PAIEMENT=Zahlungsdatum ExpenseReportRef=Belegnummer Spesenabrechnung -ValidateAndSubmit=Validieren und zur Genehmigung einreichen +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? @@ -126,7 +126,7 @@ ExpenseReportApplyTo=Anwenden auf ExpenseReportDomain=Anwenden auf Bereich ExpenseReportLimitOn=Limite ein ExpenseReportDateStart=Startdatum -ExpenseReportDateEnd=Ablaufdatum +ExpenseReportDateEnd=Enddatum ExpenseReportLimitAmount=Höchstbetrag ExpenseReportRestrictive=Überschreiten nicht zulässig AllExpenseReport=Alle Spesenarten diff --git a/htdocs/langs/de_DE/users.lang b/htdocs/langs/de_DE/users.lang index d984d10d932..8c64d78ec24 100644 --- a/htdocs/langs/de_DE/users.lang +++ b/htdocs/langs/de_DE/users.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=Personalmanagment - Übersicht -UserCard=Benutzer - Übersicht -GroupCard=Gruppe - Übersicht +HRMArea=Personalmanagment – Übersicht +UserCard=Benutzer – Übersicht +GroupCard=Gruppe – Übersicht Permission=Berechtigung Permissions=Berechtigungen EditPassword=Passwort bearbeiten @@ -93,7 +93,7 @@ GroupDeleted=Gruppe %s entfernt ConfirmCreateContact=Möchten Sie für diesen Kontakt wirklich ein Benutzerkonto erstellen? ConfirmCreateLogin=Möchten Sie für dieses Mitglied wirklich ein Benutzerkonto erstellen? ConfirmCreateThirdParty=Willst du wirklich für dieses Mitglied einen Geschäftspartner erzeugen? -LoginToCreate=Zu erstellende Anmeldung +LoginToCreate=Zu erstellender Anmeldename NameToCreate=Name des Geschäftspartner eingeben YourRole=Ihre Rollen YourQuotaOfUsersIsReached=Ihr Kontingent aktiver Benutzer ist erreicht @@ -114,7 +114,7 @@ UserLogoff=Benutzer abmelden UserLogged=Benutzer angemeldet DateOfEmployment=Anstellungsdatum DateEmployment=Mitarbeiter -DateEmploymentstart=Beschäftigungsbeginn +DateEmploymentStart=Beschäftigungsbeginn DateEmploymentEnd=Beschäftigungsende RangeOfLoginValidity=Datumsbereich der Zugriffsgültigkeit CantDisableYourself=Sie können nicht ihr eigenes Benutzerkonto deaktivieren @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Standardmäßig ist der Prüfer der Supervisor de 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 +DateLastLogin=Datum der letzten Anmeldung +DatePreviousLogin=Datum der vorangegangenen Anmeldung +IPLastLogin=IP der letzten Anmeldung +IPPreviousLogin=IP der vorangegangenen Anmeldung diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang index fe4bcf5ba18..0ae8d538aec 100644 --- a/htdocs/langs/de_DE/website.lang +++ b/htdocs/langs/de_DE/website.lang @@ -3,21 +3,21 @@ Shortname=Code 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. -WEBSITE_TYPE_CONTAINER=Art der Seite/Containers -WEBSITE_PAGE_EXAMPLE=Seite die als Beispiel verwendet werden soll +WEBSITE_TYPE_CONTAINER=Art der Seite / des Containers +WEBSITE_PAGE_EXAMPLE=Seite, die als Beispiel verwendet werden soll WEBSITE_PAGENAME=Seitenname/Alias WEBSITE_ALIASALT=Alternative Seitennamen/Aliase -WEBSITE_ALIASALTDesc=Liste mit einem anderen Namen/Alias verwenden, damit diese Seite auch von anderen Namen/Alias verwendet werden kann (z.B. die alte Seiten URL damit die alten Links noch funktionieren). Syntax:
    alternativename1, alternativename2, ... +WEBSITE_ALIASALTDesc=Liste mit anderen Namen/Aliasen verwenden, damit diese Seite mit diesen Namen/Aliasen aufgerifen werden kann (z.B. ehemaliger Seitenname, damit die alten Links noch funktionieren). Syntax:
    Alternativename1, Alternativename2, ... WEBSITE_CSS_URL=URL der externen CSS-Datei WEBSITE_CSS_INLINE=CSS-Dateiinhalt (für alle Seiten gleich) -WEBSITE_JS_INLINE=Javascript-Dateiinhalt (für alle Seiten gleich) +WEBSITE_JS_INLINE=JavaScript-Dateiinhalt (für alle Seiten gleich) WEBSITE_HTML_HEADER=Diesen Code am Schluss des HTML Headers anhängen (für alle Seiten gleich) 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, um eine README.md-Datei zu füllen. Wenn Sie Ihre Website als Vorlage verteilen, wird die Datei in die Vorlage aufgenommen. +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. 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. @@ -26,7 +26,7 @@ EditCss=Website-Eigenschaften bearbeiten EditMenu=Menü bearbeiten EditMedias=Medien bearbeiten EditPageMeta=Seiten-/Container-Eigenschaften bearbeiten -EditInLine=Direktes bearbeiten +EditInLine=Direktes Bearbeiten AddWebsite=Website hinzufügen Webpage=Webseite/Container AddPage=Seite/Container hinzufügen @@ -45,7 +45,7 @@ ViewWebsiteInProduction=Website mit Home-URLs anzeigen 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 +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. ReadPerm=Lesen WritePerm=Schreiben @@ -60,7 +60,7 @@ YouCanEditHtmlSourceckeditor=Sie können den HTML-Quellcode über die Schaltflä YouCanEditHtmlSource=
    Sie können PHP-Code mit den Tags <?php ?> in diese Quelle einfügen. Die folgenden globalen Variablen sind verfügbar: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $ pagelangs.

    Mit der folgenden Syntax können Sie auch den Inhalt einer anderen Seite/eines anderen Containers einschließen:
    <?php includeContainer('alias_of_container_to_include'); ?>

    Mit der folgenden Syntax können Sie eine Umleitung auf eine andere Seite/einen anderen Container machen (Anmerkung: keinen Inhalt vor einer Umleitung ausgeben):
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ?

    Um einen Link zu einer anderen Seite hinzuzufügen, benutzen Sie die Syntax:
    <a href="alias_of_page_to_link_to.php" >mylink<a>

    Um einen Link zum Download hinzuzufügen, der eine Datei in das Verzeichnis Dokumente speichert, nutzen Sie den document.phpwrapper:
    Beispiel für eine Datei in Dokumente / ecm (muss aufgezeichnet werden), ist die Syntax:
    <a href = "/document.php modulepart = ecm & file = [relative_dir/]filename.ext ">
    Für eine Datei in Dokumente / Medien (offenes Verzeichnis für den öffentlichen Zugriff) lautet die Syntax:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    Für eine mit einem Freigabelink freigegebene Datei ( offener Zugang unter Nutzung des sharing hash key der Datei), lautet die Syntax:
    <a href="/document.php?hashp=publicsharekeyoffile">

    Um ein Bild in das Dokumente Verzeichnis zu speichern, verwenden Sie die viewimage.php Wrapper:
    Beispiel für ein Bild in Dokumente / Medien (offen Verzeichnis für den Zugang der Öffentlichkeit), Syntax:
    <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=Für Bilder, die über einen Link geteilt werden (öffentlicher Zugriff über den geteilten Hash-Schlüssel der Datei) gilt folgende Syntax:
    <img src="/viewimage.php?hashp=12345679012...">
    -YouCanEditHtmlSourceMore=
    Weitere Beispiele von HTML- oder dynamischem Code ist in der Wiki-Dokumentaion verfügbar.
    +YouCanEditHtmlSourceMore=
    Weitere Beispiele von HTML und dynamischem Code sind in der Wiki-Dokumentaion verfügbar.
    ClonePage=Seite/Container klonen CloneSite=Website klonen SiteAdded=Website hinzugefügt @@ -103,7 +103,7 @@ ZipOfWebsitePackageToLoad=oder wählen Sie eine verfügbare eingebettete Webseit ShowSubcontainers=Dynamischen Inhalt anzeigen InternalURLOfPage=Interne URL der Seite ThisPageIsTranslationOf=Diese Seite/Container ist eine Übersetzung von -ThisPageHasTranslationPages=Es existieren Übersetzungen dieser Seite/Containers +ThisPageHasTranslationPages=Es existieren Übersetzungen dieser Seite / dieses Containers NoWebSiteCreateOneFirst=Bisher wurde noch keine Website erstellt. Erstellen sie diese zuerst. GoTo=Gehe zu DynamicPHPCodeContainsAForbiddenInstruction=Sie fügen dynamischen PHP-Code hinzu, der die PHP-Anweisung '%s' enthält. Diese Anweisung ist standardmäßig verboten für dynamischen Inhalt (siehe versteckte Optionen WEBSITE_PHP_ALLOW_xxx, um die Liste der erlaubten Befehle zu erweitern). @@ -134,10 +134,10 @@ ReplacementDoneInXPages=Ersetzt in %s Seiten oder Containern RSSFeed=RSS Feed RSSFeedDesc=Über diese URL können Sie einen RSS-Feed mit den neuesten Artikeln vom Typ "Blogpost" abrufen PagesRegenerated=%s Seite(n)/Container neu generiert -RegenerateWebsiteContent=Generieren Sie Website-Cache-Dateien neu +RegenerateWebsiteContent=Website-Cache-Dateien neu generieren AllowedInFrames=In Frames erlaubt DefineListOfAltLanguagesInWebsiteProperties=Definiere eine Liste aller verfügbaren Sprachen in den Website-Eigenschaften. -GenerateSitemaps=Generieren Sie eine Website-Sitemap-Datei +GenerateSitemaps=Website-Sitemap-Datei 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 diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index cc3c0e21ee4..c2331dd09b6 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -31,11 +31,12 @@ SupplierInvoiceWaitingWithdraw=Lieferantenrechnung wartet auf Zahlung per Überw InvoiceWaitingWithdraw=Rechnung wartet auf Lastschrifteinzug 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. ResponsibleUser=Verantwortlicher Benutzer WithdrawalsSetup=Einstellungen für Lastschriftaufträge -CreditTransferSetup=Setup Überweisungen +CreditTransferSetup=Einstellungen Modul Zahlung per Überweisung WithdrawStatistics=Statistik Lastschriftzahlungen CreditTransferStatistics=Statistiken Überweisungen Rejects=Ablehnungen @@ -117,7 +118,7 @@ WithdrawRequestErrorNilAmount=Es kann keine Lastschriftanforderung für einen le 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) %sZahlungen von Ihrem Konto mittels Lastschrift einzuziehen und (B) weisen Sie 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 +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 CreditorIdentifier=Kennung Kreditor CreditorName=Name Kreditor SEPAFillForm=Kontoinhaber: (bitte füllen Sie alle mit * markierten Felder aus) @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Ausführungsdatum CreateForSepa=Erstellen Sie eine Lastschriftdatei ICS=Gläubiger-Identifikationsnummer - ICS +IDS=Debitoren-Identifikationsnummer END_TO_END="Ende-zu-Ende" SEPA-XML-Tag - Eindeutige ID, die pro Transaktion zugewiesen wird USTRD="Unstrukturiertes" SEPA-XML-Tag ADDDAYS=Füge Tage zum Abbuchungsdatum hinzu @@ -154,3 +156,4 @@ ErrorICSmissing=Fehlendes ICS auf dem Bankkonto %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Der Gesamtbetrag des Lastschriftauftrags unterscheidet sich von der Summe der Zeilen WarningSomeDirectDebitOrdersAlreadyExists=Warnung: Es sind bereits ausstehende Lastschriftaufträge (%s) für einen Betrag von %s angefordert worden WarningSomeCreditTransferAlreadyExists=Warnung: Es ist bereits eine ausstehende Überweisung (%s) für einen Betrag von %s angefordert +UsedFor=Verwendet für %s diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index 9464a12aeff..1744ab50997 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -1,14 +1,15 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Einstellungen Modul Workflow -WorkflowDesc=Dieses Modul liefert verschiedene, automatisierte Aktionen. Standardmäßig ist der Workflow flexibel (d.h. Sie sind frei in der Reihenfolge der Abarbeitung) aber über diesen Modul können Sie einige Aktionen automatisiert ablaufen lassen. +WorkflowDesc=Dieses Modul stellt verschiedene automatische Aktionen bereit. Standardmäßig ist der Workflow offen (Sie können die Dinge in der gewünschten Reihenfolge abarbeiten), aber hier können Sie einige automatische Aktionen aktivieren. ThereIsNoWorkflowToModify=Es sind keine Workflow-Änderungen möglich mit den aktivierten Modulen. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Erstelle automatisch einen Kundenauftrag, nachdem ein Angebot auf "unterzeichnet" gesetzt wurde. Die neue Bestellung hat dann den selben Wert wie das Angebot. -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Erstellt automatisch eine Kundenrechnung, nachdem ein Angebot als "unterzeichnet" markiert wurde. Diese neue Kundenrechnung lautet über den selben Betrag wie das Angebot. -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem der Vertrag bestätigt wurde. +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatisch einen Kundenauftrag erstellen, nachdem ein Angebot auf "unterzeichnet" gesetzt wurde. Der neue Auftrag hat denselben Wert wie das Angebot. +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatisch eine Kundenrechnung erstellen, nachdem ein Angebot als "unterzeichnet" markiert wurde. Diese neue Kundenrechnung lautet über den selben Betrag wie das Angebot. +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatisch eine Kundenrechnung erstellen, nachdem ein Vertrag freigegeben wurde. descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Erstellt automatisch eine Kundenrechnung, nachdem ein Kundenauftrag geschlossen wurde. Die erstellte Rechnung lautet über denselben Betrag wie der Auftrag. +descWORKFLOW_TICKET_CREATE_INTERVENTION=Bei der Erstellung eines Tickets automatisch einen Serviceauftrag erstellen. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Setzt das entsprechende Angebot auf "abgerechnet", sofern der Kundenauftrag auf "abgerechnet" gesetzt wurde und sofern der Gesamtbetrag im Kundenauftrag gleich dem im Angebot ist. +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Setzt das entsprechende Angebot auf "abgerechnet", sofern der Kundenauftrag auf "abgerechnet" gesetzt wurde und sofern der Gesamtbetrag im Kundenauftrag gleich dem im Angebot ist. descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Setzt das verknüpfte Angebot auf "abgerechnet", sofern die Kundenrechnung erstellt wurde und sofern der Rechnungsbetrag identisch zur Angebotsumme ist. descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kennzeichne den verknüpften Kundenauftrag als fakturiert ( = in Rechnung gestellt) sofern die Kundenrechnung als geprüft markiert wurde und die Beträge übereinstimmen. descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als fakturiert ( = in Rechnung gestellt), sofern die Kundenrechnung als bezahlt markiert wurde und die Beträge übereinstimmen. @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Verknüpfte Lieferantenbestellung 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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Schließen Sie alle mit dem Ticket verknüpften Interaktionen, wenn ein Ticket geschlossen wird -AutomaticCreation=automatische Erstellung +AutomaticCreation=Automatische Erstellung AutomaticClassification=Automatische Klassifikation # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifizieren Sie die verknüpfte Quellensendung als geschlossen, wenn die Kundenrechnung validiert ist. +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifizieren Sie die verknüpfte Lieferung als geschlossen, wenn die Kundenrechnung validiert ist. +AutomaticClosing=Automatisches Schließen +AutomaticLinking=Automatisches Verknüpfen diff --git a/htdocs/langs/de_DE/zapier.lang b/htdocs/langs/de_DE/zapier.lang index 848e52df1d4..e46b2d3ff4f 100644 --- a/htdocs/langs/de_DE/zapier.lang +++ b/htdocs/langs/de_DE/zapier.lang @@ -18,4 +18,4 @@ ModuleZapierForDolibarrDesc = Modul: Zapier für Dolibarr ZapierForDolibarrSetup=Zapier für Dolibarr einrichten ZapierDescription=Schnittstelle mit Zapier ZapierAbout=Über das Modul Zapier -ZapierSetupPage=Es ist kein Setup auf Dolibarr-Seite erforderlich, um Zapier zu verwenden. Sie müssen jedoch ein Paket auf Zapier generieren und veröffentlichen, um Zapier mit Dolibarr verwenden zu können. Siehe Dokumentation auf dieser Wiki-Seite . +ZapierSetupPage=Es ist kein Setup auf Dolibarr-Seite erforderlich, um Zapier zu verwenden. Sie müssen jedoch ein Paket auf Zapier generieren und veröffentlichen, um Zapier mit Dolibarr verwenden zu können. Siehe Dokumentation auf dieser Wiki-Seite . diff --git a/htdocs/langs/el_CY/accountancy.lang b/htdocs/langs/el_CY/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/el_CY/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/el_CY/admin.lang b/htdocs/langs/el_CY/admin.lang index c5cc61bc110..aac79a4499a 100644 --- a/htdocs/langs/el_CY/admin.lang +++ b/htdocs/langs/el_CY/admin.lang @@ -1,3 +1,7 @@ # 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 +TopMenuDisableImages=Hide images in Top menu +EmailCollectorHideMailHeadersHelp=When enabled, e-mail headers are not added at the end of the email content that is saved as events. +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. +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. +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/el_CY/companies.lang b/htdocs/langs/el_CY/companies.lang new file mode 100644 index 00000000000..42389e3089c --- /dev/null +++ b/htdocs/langs/el_CY/companies.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - companies +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId4ShortCM=Certificate of deposits diff --git a/htdocs/langs/el_CY/exports.lang b/htdocs/langs/el_CY/exports.lang new file mode 100644 index 00000000000..37fbc8e4044 --- /dev/null +++ b/htdocs/langs/el_CY/exports.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %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. diff --git a/htdocs/langs/el_CY/members.lang b/htdocs/langs/el_CY/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/el_CY/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/el_CY/products.lang b/htdocs/langs/el_CY/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/el_CY/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/el_CY/projects.lang b/htdocs/langs/el_CY/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/el_CY/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index e7b284ea019..724cd5fa56b 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -1,340 +1,346 @@ # Dolibarr language file - en_US - Accountancy (Double entries) Accountancy=Λογιστική Accounting=Λογιστική -ACCOUNTING_EXPORT_SEPARATORCSV=Διαχωριστής στηλών για το αρχείο που θα εξαχθεί +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=Εξαγωγή νομίσματος -Selectformat=Επιλέξτε το φορμάτ του αρχείου -ACCOUNTING_EXPORT_FORMAT=Επιλέξτε τη μορφή για το αρχείο +Selectformat=Επιλέξτε τη μορφή του αρχείου +ACCOUNTING_EXPORT_FORMAT=Επιλέξτε τη μορφή του αρχείου ACCOUNTING_EXPORT_ENDLINE=Επιλέξτε τον τύπο επιστροφής μεταφοράς ACCOUNTING_EXPORT_PREFIX_SPEC=Καθορίστε το πρόθεμα για το όνομα του αρχείου ThisService=Αυτή η υπηρεσία ThisProduct=Αυτό το προϊόν DefaultForService=Προεπιλογή για υπηρεσία -DefaultForProduct=Προεπιλογή για το προϊόν -ProductForThisThirdparty=Προϊόν προς τρίτο -ServiceForThisThirdparty=Υπηρεσία προς τρίτο -CantSuggest=Δεν μπορώ να προτείνω -AccountancySetupDoneFromAccountancyMenu=Η μεγαλύτερη ρύθμιση της λογιστικής γίνεται από το μενού %s -ConfigAccountingExpert=Διαμόρφωση της λογιστικής ενότητας (διπλή καταχώριση) -Journalization=Περιοδικότητα +DefaultForProduct=Προεπιλογή για προϊόν +ProductForThisThirdparty=Προϊόν προς τρίτο μέρος +ServiceForThisThirdparty=Υπηρεσία προς τρίτο μέρος +CantSuggest=Δεν προτείνεται +AccountancySetupDoneFromAccountancyMenu=Οι περισσότερες ρυθμίσεις της λογιστικής γίνονται από το μενού %s +ConfigAccountingExpert=Διαμόρφωση της ενότητας λογιστική (διπλή εγγραφή) +Journalization=Καταχώρηση ημερολογίου Journals=Ημερολόγια JournalFinancial=Οικονομικά ημερολόγια -BackToChartofaccounts=Επιστροφή στο διάγραμμα των λογαριασμών -Chartofaccounts=Διάγραμμα λογαριασμών -ChartOfSubaccounts=Διάγραμμα μεμονωμένων λογαριασμών -ChartOfIndividualAccountsOfSubsidiaryLedger=Σχέδιο μεμονωμένων λογαριασμών του δευτερεύοντος καθολικού -CurrentDedicatedAccountingAccount=Τρέχον ειδικό λογαριασμό +BackToChartofaccounts=Επιστροφή στο λογιστικό σχέδιο +Chartofaccounts=Λογιστικό σχέδιο +ChartOfSubaccounts=Λογιστικό σχέδιο μεμονωμένων λογαριασμών +ChartOfIndividualAccountsOfSubsidiaryLedger=Λογιστικό σχέδιο μεμονωμένων λογαριασμών του θυγατρικού καθολικού +CurrentDedicatedAccountingAccount=Τρέχων αποκλειστικός λογαριασμός AssignDedicatedAccountingAccount=Νέος λογαριασμός προς ανάθεση InvoiceLabel=Ετικέτα τιμολογίου OverviewOfAmountOfLinesNotBound=Επισκόπηση του ποσού των γραμμών που δεν δεσμεύονται σε λογιστικό λογαριασμό -OverviewOfAmountOfLinesBound=Επισκόπηση του ποσού των γραμμών που έχουν ήδη συνδεθεί με έναν λογαριασμό λογιστικής -OtherInfo=Αλλες πληροφορίες +OverviewOfAmountOfLinesBound=Επισκόπηση του ποσού των γραμμών που έχουν ήδη δεσμευτεί σε έναν λογιστικό λογαριασμό +OtherInfo=Άλλες πληροφορίες DeleteCptCategory=Κατάργηση λογαριασμού λογιστικής από την ομάδα -ConfirmDeleteCptCategory=Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτόν τον λογαριασμό λογιστικής από την ομάδα λογαριασμών λογαριασμού; -JournalizationInLedgerStatus=Κατάσταση της περιοδικής εγγραφής -AlreadyInGeneralLedger=Έχει ήδη μεταφερθεί στο λογιστικό ημερολόγιο και στο καθολικό -NotYetInGeneralLedger=Δεν έχει μεταφερθεί ακόμη στο λογιστικό ημερολόγιο και στο καθολικό +ConfirmDeleteCptCategory=Είστε σίγουροι ότι θέλετε να καταργήσετε αυτόν τον λογαριασμό λογιστικής από την ομάδα λογαριασμών λογιστικής ; +JournalizationInLedgerStatus=Κατάσταση καταχωρήσεων ημερολογίου +AlreadyInGeneralLedger=Έχει ήδη μεταφερθεί στα λογιστικά ημερολόγια και το καθολικό +NotYetInGeneralLedger=Δεν έχει μεταφερθεί ακόμη στα λογιστικά ημερολόγια και στο καθολικό GroupIsEmptyCheckSetup=Η ομάδα είναι κενή, ελέγξτε τη ρύθμιση της εξατομικευμένης ομάδας λογιστικής -DetailByAccount=Εμφάνιση λεπτομερειών βάσει λογαριασμού +DetailByAccount=Εμφάνιση λεπτομερειών ανά λογαριασμό AccountWithNonZeroValues=Λογαριασμοί με μη μηδενικές τιμές ListOfAccounts=Λίστα λογαριασμών -CountriesInEEC=Χώρες στην ΕΟΚ -CountriesNotInEEC=Χώρες που δεν βρίσκονται στην ΕΟΚ -CountriesInEECExceptMe=Χώρες στην ΕΟΚ εκτός από το %s -CountriesExceptMe=Όλες οι χώρες εκτός από το %s -AccountantFiles=Εξαγωγή εγγράφων προέλευσης -ExportAccountingSourceDocHelp=Με αυτό το εργαλείο, μπορείτε να εξαγάγετε τα συμβάντα (λίστα σε CSV και PDF) που χρησιμοποιούνται για τη δημιουργία της λογιστικής σας. -ExportAccountingSourceDocHelp2=Για να εξαγάγετε τα ημερολόγιά σας, χρησιμοποιήστε το μενού καταχώρηση %s - %s. -VueByAccountAccounting=Προβολή κατά λογιστικό λογαριασμό +CountriesInEEC=Χώρες στην Ε.Ε. +CountriesNotInEEC=Χώρες που δεν ανήκουν στην Ε.Ε. +CountriesInEECExceptMe=Χώρες στην Ε.Ε. εκτός από %s +CountriesExceptMe=Όλες οι χώρες εκτός από %s +AccountantFiles=Εξαγωγή εγγράφων πηγής +ExportAccountingSourceDocHelp=Με αυτό το εργαλείο, μπορείτε να αναζητήσετε και να εξαγάγετε τα συμβάντα πηγής που χρησιμοποιούνται για τη δημιουργία της λογιστικής σας.
    Το εξαγόμενο αρχείο ZIP θα περιέχει τις λίστες των ζητούμενων στοιχείων σε CSV, καθώς και τα συνημμένα αρχεία τους στην αρχική τους μορφή (PDF, ODT, DOCX...). +ExportAccountingSourceDocHelp2=Για να εξαγάγετε τα ημερολόγια σας, χρησιμοποιήστε την καταχώριση μενού %s - %s. +ExportAccountingProjectHelp=Προσδιορίστε ένα έργο εάν χρειάζεστε μια λογιστική αναφορά μόνο για ένα συγκεκριμένο έργο. Οι αναφορές εξόδων και οι πληρωμές δανείων δεν περιλαμβάνονται στις αναφορές του έργου. +VueByAccountAccounting=Προβολή ανά λογαριασμό λογιστικής VueBySubAccountAccounting=Προβολή ανά λογιστικό υπολογαριασμό -MainAccountForCustomersNotDefined=Κύριος λογαριασμός λογιστικής για πελάτες που δεν έχουν οριστεί στη ρύθμιση -MainAccountForSuppliersNotDefined=Κύριος λογαριασμός λογιστικής για προμηθευτές που δεν καθορίζονται στη ρύθμιση -MainAccountForUsersNotDefined=Κύριος λογαριασμός λογιστικής για χρήστες που δεν έχουν οριστεί στη ρύθμιση -MainAccountForVatPaymentNotDefined=Κύριος λογιστικός λογαριασμός για πληρωμή ΦΠΑ που δεν ορίζεται στη ρύθμιση -MainAccountForSubscriptionPaymentNotDefined=Κύριος λογαριασμός λογιστικής για την πληρωμή συνδρομής που δεν ορίζεται στη ρύθμιση +MainAccountForCustomersNotDefined=Ο Κύριος λογαριασμός λογιστικής για πελάτες δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForSuppliersNotDefined=Ο Κύριος λογαριασμός λογιστικής για προμηθευτές δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForUsersNotDefined=Ο Κύριος λογαριασμός λογιστικής για χρήστες δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForVatPaymentNotDefined=Ο Κύριος λογαριασμός λογιστικής για πληρωμή ΦΠΑ δεν έχει οριστεί κατά τη ρύθμιση +MainAccountForSubscriptionPaymentNotDefined=Ο κύριος λογαριασμός λογιστικής για την πληρωμή συνδρομής δεν έχει οριστεί κατά τη ρύθμιση -AccountancyArea=Λογιστική περιοχή -AccountancyAreaDescIntro=Η χρήση της λογιστικής μονάδας πραγματοποιείται σε διάφορα στάδια: +AccountancyArea=Τομέας Λογιστικής +AccountancyAreaDescIntro=Η χρήση της ενότητας λογιστικής πραγματοποιείται σε διάφορα στάδια: AccountancyAreaDescActionOnce=Οι ακόλουθες ενέργειες εκτελούνται συνήθως μόνο μία φορά ή μία φορά το χρόνο ... -AccountancyAreaDescActionOnceBis=Τα επόμενα βήματα θα πρέπει να γίνουν για να σας εξοικονομήσουν χρόνο στο μέλλον υποδεικνύοντάς σας τον σωστό προεπιλεγμένο λογαριασμό λογιστικής κατά την πραγματοποίηση της περιοδικής εγγραφής (εγγραφή εγγραφών σε περιοδικά και γενικό ημερολόγιο) +AccountancyAreaDescActionOnceBis=Τα επόμενα βήματα πρέπει να γίνουν για να εξοικονομήσετε χρόνο στο μέλλον, προτείνοντάς σας αυτόματα τον σωστό προκαθορισμένο λογαριασμό λογιστικής κατά τη μεταφορά δεδομένων στη λογιστική AccountancyAreaDescActionFreq=Οι παρακάτω ενέργειες εκτελούνται συνήθως κάθε μήνα, εβδομάδα ή μέρα για πολύ μεγάλες επιχειρήσεις ... -AccountancyAreaDescJournalSetup=STEP %s: Δημιουργήστε ή ελέγξτε το περιεχόμενο της λίστας σας από το μενού %s -AccountancyAreaDescChartModel=ΒΗΜΑ %s: Ελέγξτε ότι υπάρχει ένα μοντέλο λογαριασμών ή δημιουργήστε ένα από το μενού %s -AccountancyAreaDescChart=ΒΗΜΑ %s: Επιλέξτε και|ή ολοκληρώστε το λογιστικό σας σχέδιο από το μενού %s +AccountancyAreaDescJournalSetup=ΒΗΜΑ %s: Ελέγξτε το περιεχόμενο της λίστας ημερολογίου σας από το μενού %s +AccountancyAreaDescChartModel=ΒΗΜΑ %s: Ελέγξτε αν υπάρχει ένα υπόδειγμα λογιστικού σχεδίου ή δημιουργήστε ένα από το μενού %s +AccountancyAreaDescChart=ΒΗΜΑ %s: Επιλέξτε ή/και ολοκληρώστε το λογιστικό σας σχέδιο από το μενού %s -AccountancyAreaDescVat=STEP %s: Καθορίστε λογαριασμούς λογιστικής για κάθε τιμή ΦΠΑ. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescDefault=STEP %s: Καθορίστε προεπιλεγμένους λογαριασμούς λογιστικής. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescExpenseReport=STEP %s: Καθορίστε προεπιλεγμένους λογαριασμούς λογιστικής για κάθε αναφορά τύπου εξόδων. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescSal=STEP %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για την πληρωμή των μισθών. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescContrib=STEP %s: Καθορίστε προεπιλεγμένους λογαριασμούς λογιστικής για ειδικές δαπάνες (διάφοροι φόροι). Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescDonation=STEP %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικής για δωρεά. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescSubscription=STEP %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για συνδρομή μέλους. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescMisc=STEP %s: Καθορισμός υποχρεωτικών προεπιλεγμένων λογαριασμών και προεπιλεγμένων λογαριασμών λογιστικής για διάφορες συναλλαγές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescVat=ΒΗΜΑ %s: Καθορίστε λογαριασμούς λογιστικής για κάθε τιμή ΦΠΑ. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescDefault=ΒΗΜΑ %s: Καθορίστε προεπιλεγμένους λογαριασμούς λογιστικής. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescExpenseReport=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογιστικούς λογαριασμούς για κάθε τύπο αναφοράς Εξόδων. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescSal=ΒΗΜΑ %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για την πληρωμή των μισθών. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescContrib=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικούς για Φόρους (ειδικά έξοδα). Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescDonation=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικής για δωρεές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescSubscription=ΒΗΜΑ %s: Ορίστε τους προεπιλεγμένους λογαριασμούς λογιστικής για συνδρομή μέλους. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescMisc=ΒΗΜΑ %s: Καθορίστε υποχρεωτικούς προεπιλεγμένους λογαριασμούς λογιστικής για διάφορες συναλλαγές. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. AccountancyAreaDescLoan=ΒΗΜΑ %s: Ορίστε προεπιλεγμένους λογαριασμούς λογιστικής για δάνεια. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescBank=STEP %s: Καθορίστε τους λογαριασμούς λογιστικής και τον κωδικό περιοδικών για κάθε τραπεζικό και χρηματοοικονομικό λογαριασμό. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescProd=STEP %s: Καθορίστε λογαριασμούς λογιστικής για τα προϊόντα / τις υπηρεσίες σας. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescBank=ΒΗΜΑ %s: Καθορίστε τους λογαριασμούς λογιστικής και τον κωδικό ημερολογίων για κάθε τραπεζικό και χρηματοοικονομικό λογαριασμό. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescProd=ΒΗΜΑ %s: Ορίστε λογαριασμούς λογιστικής στα Προϊόντα/Υπηρεσίες σας. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescBind=STEP %s: Ελέγξτε τη σύνδεση μεταξύ των υφιστάμενων γραμμών %s και ο λογαριασμός λογιστικής γίνεται, έτσι ώστε η εφαρμογή θα είναι σε θέση να καταγράφει τις συναλλαγές στο Ledger με ένα κλικ. Συμπληρώστε τις συνδέσεις που λείπουν. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. -AccountancyAreaDescWriteRecords=STEP %s: Γράψτε τις συναλλαγές στο Ledger. Για αυτό, μεταβείτε στο μενού %s και κάντε κλικ στο κουμπί %s . -AccountancyAreaDescAnalyze=STEP %s: Προσθέστε ή επεξεργαστείτε υπάρχουσες συναλλαγές και δημιουργήστε αναφορές και εξαγωγές. +AccountancyAreaDescBind=ΒΗΜΑ %s: Ελέγξτε ότι η δέσμευση μεταξύ των υφιστάμενων %s γραμμών και του λογαριασμού λογιστικής έχει ολοκληρωθεί, έτσι ώστε η εφαρμογή να είναι σε θέση να καταγράφει τις συναλλαγές στο Καθολικό με ένα κλικ. Συμπληρώστε τις δεσμεύσεις που λείπουν. Για αυτό, χρησιμοποιήστε την καταχώρηση μενού %s. +AccountancyAreaDescWriteRecords=ΒΗΜΑ %s: Εγγραφή συναλλαγών στο Καθολικό. Για αυτό, μεταβείτε στο μενού %s και πατήστε το κουμπί %s . +AccountancyAreaDescAnalyze=ΒΗΜΑ%s: Προσθέστε ή επεξεργαστείτε υπάρχουσες συναλλαγές και δημιουργήστε αναφορές και εξαγωγές. -AccountancyAreaDescClosePeriod=STEP %s: Κλείστε την περίοδο έτσι δεν μπορούμε να κάνουμε αλλαγές σε ένα μέλλον. +AccountancyAreaDescClosePeriod=ΒΗΜΑ %s: Κλείσιμο περιόδου, ώστε να μην μπορούμε να κάνουμε τροποποίηση στο μέλλον. TheJournalCodeIsNotDefinedOnSomeBankAccount=Ένα υποχρεωτικό βήμα στη ρύθμιση δεν έχει ολοκληρωθεί (το ημερολόγιο κωδικών λογιστικής δεν έχει καθοριστεί για όλους τους τραπεζικούς λογαριασμούς) -Selectchartofaccounts=Επιλέξτε ενεργό πίνακα λογαριασμών +Selectchartofaccounts=Επιλέξτε ενεργό λογιστικό σχέδιο ChangeAndLoad=Αλλαγή και φόρτωση -Addanaccount=Προσθέστε ένα λογιστικό λογαριασμό -AccountAccounting=Λογιστική λογαριασμού +Addanaccount=Προσθέστε ένα λογαριασμό λογιστικής +AccountAccounting=Λογαριασμός λογιστικής AccountAccountingShort=Λογαριασμός -SubledgerAccount=Λογαριασμός χρέωσης -SubledgerAccountLabel=Ετικέτα λογαριασμού +SubledgerAccount=Λογαριασμός Βοηθητικού καθολικού +SubledgerAccountLabel=Ετικέτα λογαριασμού Βοηθητικού καθολικού ShowAccountingAccount=Εμφάνιση λογαριασμού λογιστικής -ShowAccountingJournal=Εμφάνιση λογιστικού περιοδικού -ShowAccountingAccountInLedger=Εμφάνιση λογιστικού λογαριασμού στο καθολικό -ShowAccountingAccountInJournals=Εμφάνιση λογιστικού λογαριασμού στα ημερολόγια -AccountAccountingSuggest=Λογαριασμός λογιστικής πρότεινε +ShowAccountingJournal=Εμφάνιση ημερολογίου λογιστικής +ShowAccountingAccountInLedger=Εμφάνιση λογαριασμού λογιστικής στο καθολικό +ShowAccountingAccountInJournals=Εμφάνιση λογαριασμού λογιστικής στα ημερολόγια +AccountAccountingSuggest=Προτεινόμενος λογαριασμός λογιστικής MenuDefaultAccounts=Προεπιλεγμένοι λογαριασμοί MenuBankAccounts=Τραπεζικοί Λογαριασμοί -MenuVatAccounts=Λογαριασμοί ΦΠΑ +MenuVatAccounts=Λογαριασμοί Φ.Π.Α. MenuTaxAccounts=Λογαριασμοί Φόρων -MenuExpenseReportAccounts=Λογαριασμοί εκθέσεων δαπανών -MenuLoanAccounts=Λογαριασμοί δανείου -MenuProductsAccounts=Λογαρισμοί προϊόντων -MenuClosureAccounts=Λογαριασμοί κλεισίματος +MenuExpenseReportAccounts=Λογαριασμοί αναφορών εξόδων +MenuLoanAccounts=Λογαριασμοί δανείων +MenuProductsAccounts=Λογαριασμοί προϊόντων +MenuClosureAccounts=Κλείσιμο Λογαριασμών MenuAccountancyClosure=Κλείσιμο -MenuAccountancyValidationMovements=Επικυρώστε τις κινήσεις +MenuAccountancyValidationMovements=Επικύρωση κινήσεων ProductsBinding=Λογαριασμοί προϊόντων TransferInAccounting=Μεταφορά στη λογιστική -RegistrationInAccounting=Εγγραφή στη λογιστική -Binding=Δεσμευση λογαριασμών -CustomersVentilation=Συνδετικό τιμολόγιο πελατών -SuppliersVentilation=Δεσμευτικό τιμολόγιο προμηθευτή -ExpenseReportsVentilation=Αναφορά σύνδεσης εξόδων -CreateMvts=Δημιουργήστε μία νέα συναλλαγή +RegistrationInAccounting=Καταγραφή στη λογιστική +Binding=Δέσμευση λογαριασμών +CustomersVentilation=Δέσμευση τιμολογίου πελάτη +SuppliersVentilation=Δέσμευση τιμολογίου προμηθευτή +ExpenseReportsVentilation=Δέσμευση Αναφοράς εξόδων +CreateMvts=Δημιουργία νέας συναλλαγής UpdateMvts=Τροποποίηση συναλλαγής ValidTransaction=Επικύρωση συναλλαγής -WriteBookKeeping=Καταχώρηση συναλλαγών στη λογιστική +WriteBookKeeping=Καταγραφή συναλλαγών στη λογιστική Bookkeeping=Καθολικό -BookkeepingSubAccount=ΥποΚαθολικό -AccountBalance=Υπόλοιπο λογαριασμού +BookkeepingSubAccount=Βοηθητικό καθολικό +AccountBalance=Ισοζύγιο λογαριασμού ObjectsRef=Αναφορά αντικειμένου προέλευσης -CAHTF=Συνολικός προμηθευτής αγοράς προ φόρων -TotalExpenseReport=Συνολική αναφορά δαπανών -InvoiceLines=Γραμμές τιμολογίων που δεσμεύουν +CAHTF=Σύνολο αγορών προμηθευτών προ φόρων +TotalExpenseReport=Σύνολο αναφοράς εξόδων +InvoiceLines=Γραμμές τιμολογίων προς δέσμευση InvoiceLinesDone=Δεσμευμένες γραμμές τιμολογίων -ExpenseReportLines=Γραμμές εκθέσεων δαπανών που δεσμεύουν -ExpenseReportLinesDone=Δεσμευμένες αναφορές δαπανών -IntoAccount=Συνδέστε τη γραμμή με τον λογαριασμό λογιστικής +ExpenseReportLines=Γραμμές αναφορών εξόδων προς δέσμευση +ExpenseReportLinesDone=Δεσμευμένες γραμμές αναφορών εξόδων +IntoAccount=Δέσμευση γραμμής με τον λογιστικό λογαριασμό TotalForAccount=Σύνολο λογιστικού λογαριασμού -Ventilate=Δένω -LineId=Γραμμή ταυτότητας -Processing=Επεξεργασία +Ventilate=Δέσμευση +LineId=Id Γραμμής +Processing=Γίνεται επεξεργασία EndProcessing=Η διαδικασία τερματίστηκε. SelectedLines=Επιλεγμένες γραμμές Lineofinvoice=Γραμμή τιμολογίου -LineOfExpenseReport=Γραμμή αναφοράς δαπανών -NoAccountSelected=Δεν έχει επιλεγεί λογαριασμός λογαριασμού +LineOfExpenseReport=Γραμμή αναφοράς εξόδων +NoAccountSelected=Δεν έχει επιλεχθεί λογαριασμός λογιστικής VentilatedinAccount=Δεσμεύτηκε με επιτυχία στο λογαριασμό λογιστικής NotVentilatedinAccount=Δεν δεσμεύεται στον λογαριασμό λογιστικής -XLineSuccessfullyBinded=%s προϊόντα / υπηρεσίες με επιτυχία δεσμεύεται σε λογιστικό λογαριασμό -XLineFailedToBeBinded=%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=Μειώστε την περιγραφή προϊόντων και υπηρεσιών σε καταχωρίσεις μετά από x χαρακτήρες (Καλύτερη = 50) +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=Ενεργοποιήστε το σχέδιο εξαγωγής στο περιοδικό +BANK_DISABLE_DIRECT_INPUT=Απενεργοποίηση άμεσης καταγραφής συναλλαγής σε τραπεζικό λογαριασμό +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_MISCELLANEOUS_JOURNAL=Ημερολόγιο διαφόρων ACCOUNTING_EXPENSEREPORT_JOURNAL=Ημερολόγιο εξόδων ACCOUNTING_SOCIAL_JOURNAL=Κοινωνικό ημερολόγιο ACCOUNTING_HAS_NEW_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=Μεταβατικό τραπεζικό λογαριασμό μεταφοράς +TransitionalAccount=Λογαριασμός της μεταβατικής τραπεζικής μεταφοράς ACCOUNTING_ACCOUNT_SUSPENSE=Λογαριασμός λογιστικής αναμονής DONATION_ACCOUNTINGACCOUNT=Λογαριασμός λογιστικής για την εγγραφή δωρεών ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Λογαριασμός λογιστικής για την εγγραφή συνδρομών -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Λογιστικός λογαριασμός από προεπιλογή για εγγραφή κατάθεσης πελάτη +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=Αριθ. συναλλαγή +JournalLabel=Ετικέτα Ημερολογίου +NumPiece=Αριθμός καταχώρησης +TransactionNumShort=Αριθ. συναλλαγής AccountingCategory=Προσαρμοσμένη ομάδα -GroupByAccountAccounting=Ομαδοποίηση κατά λογαριασμό γενικού καθολικού -GroupBySubAccountAccounting=Ομαδοποίηση ανά λογαριασμό υποκαθολικού +GroupByAccountAccounting=Ομαδοποίηση ανά λογαριασμό γενικού καθολικού +GroupBySubAccountAccounting=Ομαδοποίηση ανά λογαριασμό βοηθητικού καθολικού AccountingAccountGroupsDesc=Μπορείτε να ορίσετε εδώ ορισμένες ομάδες λογιστικού λογαριασμού. Θα χρησιμοποιηθούν για εξατομικευμένες λογιστικές εκθέσεις. -ByAccounts=Με λογαριασμούς -ByPredefinedAccountGroups=Με προκαθορισμένες ομάδες -ByPersonalizedAccountGroups=Με εξατομικευμένες ομάδες -ByYear=Με χρόνια +ByAccounts=Ανά λογαριασμούς +ByPredefinedAccountGroups=Ανά προκαθορισμένες ομάδες +ByPersonalizedAccountGroups=Ανά εξατομικευμένες ομάδες +ByYear=Ανά έτος NotMatch=Δεν έχει οριστεί -DeleteMvt=Διαγράψτε ορισμένες γραμμές λειτουργίας από τη λογιστική +DeleteMvt=Διαγράψτε μερικές γραμμές από τη λογιστική DelMonth=Μήνας προς διαγραφή DelYear=Έτος προς διαγραφή DelJournal=Ημερολόγιο προς διαγραφή -ConfirmDeleteMvt=Αυτό θα διαγράψει όλες τις γραμμές λειτουργίας της λογιστικής για το έτος/μήνα ή/και για ένα συγκεκριμένο ημερολόγιο (απαιτείται τουλάχιστον ένα κριτήριο). Θα πρέπει να επαναχρησιμοποιήσετε τη δυνατότητα '%s' για να επαναφέρετε τη διαγραμμένη εγγραφή στο καθολικό. -ConfirmDeleteMvtPartial=Αυτό θα διαγράψει τη συναλλαγή από τη λογιστική (όλες οι γραμμές λειτουργίας που σχετίζονται με την ίδια συναλλαγή θα διαγραφούν) -FinanceJournal=Ημερολόγιο οικονομικών -ExpenseReportsJournal=Έκθεση εκθέσεων δαπανών -DescFinanceJournal=Finance journal including all the types of payments by bank account +ConfirmDeleteMvt=Αυτό θα διαγράψει όλες τις γραμμές στη λογιστική για το έτος/μήνα ή/και για ένα συγκεκριμένο ημερολόγιο (Απαιτείται τουλάχιστον ένα κριτήριο). Θα πρέπει να επαναχρησιμοποιήσετε τη δυνατότητα '%s' για να επαναφέρετε τη διαγραμμένη εγγραφή στο καθολικό. +ConfirmDeleteMvtPartial=Αυτό θα διαγράψει τη συναλλαγή από τη λογιστική (όλες οι γραμμές που σχετίζονται με την ίδια συναλλαγή θα διαγραφούν) +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=Άγνωστο λογαριασμό τρίτων. Σφάλμα αποκλεισμού -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Ο λογαριασμός υποκαθολικού δεν έχει οριστεί ή το τρίτο μέρος ή ο χρήστης είναι άγνωστος. Θα χρησιμοποιήσουμε %s -ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Άγνωστο το Tρίτο-Mέρος και λογαριασμός Καθολικού Ημερολογίου δεν έχει οριστεί για την πληρωμή. Θα διατηρήσουμε κενή την τιμή του λογαριασμού. -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Ο υποκαθοκικός λογαριασμός δεν έχει οριστεί ή το τρίτο μέρος ή ο χρήστης είναι άγνωστος. Σφάλμα αποκλεισμού. +UnknownAccountForThirdparty=Άγνωστος λογαριασμός τρίτου μέρους. Θα χρησιμοποιήσουμε %s +UnknownAccountForThirdpartyBlocking=Άγνωστος λογαριασμός τρίτου μέρους. Σφάλμα αποκλεισμού +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Ο λογαριασμός Βοηθητικού καθολικού δεν έχει οριστεί ή το τρίτο μέρος ή ο χρήστης είναι άγνωστος. Θα χρησιμοποιήσουμε %s +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=Δεσμεύστε τις γραμμές τιμολογίου που δεν έχουν ήδη συνδεθεί με έναν λογαριασμό λογιστικής προϊόντος +DescVentilMore=Στις περισσότερες περιπτώσεις, εάν χρησιμοποιείτε προκαθορισμένα προϊόντα ή υπηρεσίες και ορίσετε τον αριθμό λογαριασμού στην κάρτα προϊόντος/υπηρεσίας, η εφαρμογή θα μπορεί να δεσμεύει όλες τις γραμμές τιμολογίων σας και τον λογιστικό λογαριασμό του λογιστικού σας σχεδίου, ακριβώς με ένα κλικ στο κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε κάρτες προϊόντων/υπηρεσιών ή εάν εξακολουθείτε να έχετε κάποιες γραμμές που δεν είναι δεσμευμένες σε έναν λογαριασμό, θα πρέπει να κάνετε χειροκίνητη δέσμευση από το μενού " %s ". +DescVentilDoneCustomer=Συμβουλευτείτε εδώ τη λίστα με τις γραμμές τιμολογίων πελατών και τον λογιστικό λογαριασμό προϊόντων τους +DescVentilTodoCustomer=Δεσμεύστε τις γραμμές τιμολογίου που δεν έχουν ήδη δεσμευθεί με έναν λογαριασμό λογιστικής προϊόντος ChangeAccount=Αλλάξτε το λογαριασμό λογιστικής προϊόντος / υπηρεσίας για επιλεγμένες γραμμές με τον ακόλουθο λογαριασμό λογιστικής: Vide=- -DescVentilSupplier=Συμβουλευτείτε εδώ τη λίστα των γραμμών τιμολογίου προμηθευτή που δεσμεύονται ή δεν έχουν ακόμη συνδεθεί με έναν λογαριασμό λογιστικής προϊόντος (εμφανίζονται μόνο εγγραφές που δεν έχουν ήδη μεταφερθεί στη λογιστική) -DescVentilDoneSupplier=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των τιμολογίων προμηθευτών και του λογαριασμού τους -DescVentilTodoExpenseReport=Γραμμές αναφοράς δεσμευμένων δαπανών που δεν έχουν ήδη συνδεθεί με λογαριασμό λογιστικής αμοιβής -DescVentilExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών αναφοράς δαπανών που δεσμεύονται (ή όχι) σε λογαριασμό λογιστικής αμοιβής -DescVentilExpenseReportMore=Εάν ρυθμίσετε τον λογαριασμό λογαριασμών σε γραμμές αναφοράς τύπου εξόδων, η εφαρμογή θα είναι σε θέση να κάνει όλη τη δέσμευση μεταξύ των γραμμών αναφοράς δαπανών σας και του λογαριασμού λογιστικής του λογαριασμού σας, με ένα μόνο κλικ με το κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε λεξικό τελών ή αν έχετε ακόμα ορισμένες γραμμές που δεν δεσμεύονται σε κανένα λογαριασμό, θα πρέπει να κάνετε μια χειροκίνητη σύνδεση από το μενού " %s ". -DescVentilDoneExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των εκθέσεων δαπανών και του λογιστικού λογαριασμού τους +DescVentilSupplier=Συμβουλευτείτε εδώ τη λίστα των γραμμών τιμολογίου προμηθευτή που δεσμεύονται ή δεν έχουν ακόμη δεσμευθεί με έναν λογαριασμό λογιστικής προϊόντος (εμφανίζονται μόνο εγγραφές που δεν έχουν ήδη μεταφερθεί στη λογιστική) +DescVentilDoneSupplier=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των τιμολογίων προμηθευτών και του λογιστικού λογαριασμού τους +DescVentilTodoExpenseReport=Δεσμεύστε τις γραμμές αναφοράς εξόδων που δεν έχουν ήδη δεσμευθεί με ένα Λογιστικός λογαριασμός αμοιβής +DescVentilExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών αναφοράς εξόδων που δεσμεύονται (ή όχι) σε ένα λογαριασμό λογιστικής αμοιβής +DescVentilExpenseReportMore=Εάν ρυθμίσετε τον λογιστικό λογαριασμό σε γραμμές τύπου αναφοράς εξόδων, η εφαρμογή θα είναι σε θέση να κάνει όλη τη δέσμευση μεταξύ των γραμμών αναφοράς εξόδων σας και του λογαριασμού λογιστικής του λογιστικού σχεδίου σας, με ένα μόνο κλικ στο κουμπί "%s" . Εάν ο λογαριασμός δεν έχει οριστεί σε λεξικό αμοιβών ή αν έχετε ακόμα ορισμένες γραμμές που δεν δεσμεύονται σε κανένα λογαριασμό, θα πρέπει να κάνετε μια χειροκίνητη σύνδεση από το μενού "%s". +DescVentilDoneExpenseReport=Συμβουλευτείτε εδώ τον κατάλογο των γραμμών των αναφορών εξόδων και του λογιστικού λογαριασμού των αμοιβών τους Closure=Ετήσιο κλείσιμο -DescClosure=Συμβουλευτείτε εδώ τον αριθμό των κινήσεων ανά μήνα που δεν έχουν επικυρωθεί και τα οικονομικά έτη είναι ήδη ανοιχτά -OverviewOfMovementsNotValidated=Βήμα 1 / Επισκόπηση των κινήσεων που δεν έχουν επικυρωθεί. (Είναι απαραίτητο να κλείσετε ένα οικονομικό έτος) -AllMovementsWereRecordedAsValidated=Όλες οι κινήσεις καταγράφηκαν ως επικυρωμένες -NotAllMovementsCouldBeRecordedAsValidated=Δεν ήταν δυνατή η καταγραφή όλων των κινήσεων ως επικυρωμένες -ValidateMovements=Επικυρώστε τις κινήσεις -DescValidateMovements=Απαγορεύεται οποιαδήποτε τροποποίηση ή διαγραφή γραφής, γράμματος και διαγραφής. Όλες οι καταχωρήσεις για μια άσκηση πρέπει να επικυρωθούν, διαφορετικά το κλείσιμο δεν θα είναι δυνατό +DescClosure=Δείτε εδώ τον αριθμό των κινήσεων ανά μήνα που δεν έχουν ακόμη επικυρωθεί και κλειδωθεί +OverviewOfMovementsNotValidated=Επισκόπηση κινήσεων που δεν έχουν επικυρωθεί και κλειδωθεί +AllMovementsWereRecordedAsValidated=Όλες οι κινήσεις καταγράφηκαν ως επικυρωμένες και κλειδωμένες +NotAllMovementsCouldBeRecordedAsValidated=Δεν ήταν δυνατό να καταγραφούν όλες οι κινήσεις ως επικυρωμένες και κλειδωμένες +ValidateMovements=Επικύρωση και κλείδωμα εγγραφής... +DescValidateMovements=Απαγορεύεται οποιαδήποτε τροποποίηση ή διαγραφή γραφής, συμφωνίας και διαγραφής. Όλες οι καταχωρήσεις πρέπει να επικυρωθούν, διαφορετικά το κλείσιμο δεν θα είναι δυνατό ValidateHistory=Δεσμεύστε αυτόματα AutomaticBindingDone=Ολοκληρώθηκαν οι αυτόματες δεσμεύσεις (%s) - Δεν είναι δυνατή η αυτόματη δέσμευση για κάποιες εγγραφές (%s) ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να διαγράψετε αυτόν τον λογιστικό λογαριασμό γιατί χρησιμοποιείται -MvtNotCorrectlyBalanced=Η κίνηση δεν είναι σωστά ισορροπημένη. Χρέωση = %s | Πιστωτικό = %s -Balancing=Εξισορρόπηση -FicheVentilation=Δεσμευτική κάρτα -GeneralLedgerIsWritten=Οι συναλλαγές γράφονται στο Ledger -GeneralLedgerSomeRecordWasNotRecorded=Ορισμένες από τις συναλλαγές δεν μπόρεσαν να πραγματοποιηθούν σε περιοδικά. Εάν δεν υπάρχει άλλο μήνυμα σφάλματος, αυτό πιθανότατα οφείλεται στο γεγονός ότι είχαν ήδη καταχωρηθεί περιοδικά. -NoNewRecordSaved=Δεν υπάρχει πλέον ρεκόρ για να κάνετε περιοδικά +MvtNotCorrectlyBalanced=Η κίνηση δεν είναι σωστά ισοζυγισμένη. Χρέωση = %s & Πίστωση = %s +Balancing=Ισολογισμός +FicheVentilation=Καρτέλα Δεσμεύσεων +GeneralLedgerIsWritten=Οι συναλλαγές καταχωρήθηκαν στο Καθολικό +GeneralLedgerSomeRecordWasNotRecorded=Δεν ήταν δυνατή η καταγραφή ορισμένων από τις συναλλαγές. Εάν δεν υπάρχει άλλο μήνυμα σφάλματος, αυτό πιθανότατα οφείλεται στο ότι είχαν ήδη καταχωρηθεί στο ημερολόγιο. +NoNewRecordSaved=Δεν υπάρχει άλλη εγγραφή για μεταφορά ListOfProductsWithoutAccountingAccount=Κατάλογος προϊόντων που δεν δεσμεύονται σε κανένα λογιστικό λογαριασμό -ChangeBinding=Αλλάξτε τη σύνδεση -Accounted=Πληρώθηκε σε +ChangeBinding=Αλλάξτε τη δέσμευση +Accounted=Καταχωρήθηκε στο καθολικό NotYetAccounted=Δεν έχει μεταφερθεί ακόμη στη λογιστική -ShowTutorial=Εμφάνιση εκπαιδευτικού προγράμματος -NotReconciled=Δεν ταιριάζουν -WarningRecordWithoutSubledgerAreExcluded=Προειδοποίηση, όλες οι λειτουργίες χωρίς καθορισμένο λογαριασμό υποκαθολικού φιλτράρονται και εξαιρούνται από αυτήν την προβολή +ShowTutorial=Εμφάνιση Οδηγιών +NotReconciled=Μη συμφωνημένες +WarningRecordWithoutSubledgerAreExcluded=Προειδοποίηση, όλες οι γραμμές χωρίς καθορισμένο λογαριασμό βοηθητικού καθολικού φιλτράρονται και εξαιρούνται από αυτήν την προβολή +AccountRemovedFromCurrentChartOfAccount=Λογαριασμός λογιστικής που δεν υπάρχει στο τρέχον λογιστικό σχέδιο ## Admin -BindingOptions=Δεσμευτικές επιλογές -ApplyMassCategories=Εφαρμογή κατηγοριών μάζας -AddAccountFromBookKeepingWithNoCategories=Διαθέσιμος λογαριασμός που δεν έχει ακόμα εγγραφεί στην εξατομικευμένη ομάδα -CategoryDeleted=Η κατηγορία για τον λογαριασμό λογιστηρίου έχει καταργηθεί -AccountingJournals=Λογιστικά περιοδικά -AccountingJournal=Λογιστικό περιοδικό -NewAccountingJournal=Νέο λογιστικό περιοδικό -ShowAccountingJournal=Εμφάνιση λογιστικού περιοδικού -NatureOfJournal=Φύση του περιοδικού +BindingOptions=Επιλογές δέσμευσης +ApplyMassCategories=Εφαρμογή μαζικών κατηγοριών +AddAccountFromBookKeepingWithNoCategories=Ο διαθέσιμος λογαριασμός δεν ειναι ακόμα στην εξατομικευμένη ομάδα +CategoryDeleted=Η κατηγορία για τον λογιστικό λογαριασμό έχει αφαιρεθεί +AccountingJournals=Λογιστικά ημερολόγια +AccountingJournal=Λογιστικό ημερολόγιο +NewAccountingJournal=Νέο λογιστικό ημερολόγιο +ShowAccountingJournal=Εμφάνιση ημερολογίου λογιστικής +NatureOfJournal=Φύση του ημερολογίου AccountingJournalType1=Διάφορες εργασίες AccountingJournalType2=Πωλήσεις AccountingJournalType3=Αγορές AccountingJournalType4=Τράπεζα -AccountingJournalType5=Έκθεση δαπανών -AccountingJournalType8=Καταγραφή εμπορευμάτων +AccountingJournalType5=Αναφορά εξόδων +AccountingJournalType8=Απογραφή AccountingJournalType9=Έχει-νέο -ErrorAccountingJournalIsAlreadyUse=Αυτό το περιοδικό χρησιμοποιείται ήδη +ErrorAccountingJournalIsAlreadyUse=Αυτό το ημερολόγιο χρησιμοποιείται ήδη AccountingAccountForSalesTaxAreDefinedInto=Σημείωση: Ο λογαριασμός λογιστικής για τον φόρο πωλήσεων ορίζεται στο μενού %s - %s NumberOfAccountancyEntries=Αριθμός καταχωρήσεων 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_DISABLE_BINDING_ON_SALES=Απενεργοποίηση δέσμευσης και μεταφοράς των πωλήσεων στη λογιστική (τα τιμολόγια πελατών δεν θα λαμβάνονται υπόψη στη λογιστική) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Απενεργοποίηση δέσμευσης και μεταφοράς των αγορών στη λογιστική (τα τιμολόγια προμηθευτών δεν θα λαμβάνονται υπόψη στη λογιστική) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Απενεργοποίηση δέσμευσης και μεταφοράς των αναφορών εξόδων (στη λογιστική οι αναφορές εξόδων δεν θα ληφθούν υπόψη στη λογιστική) ## Export -NotifiedExportDate=Επισήμανση εξαγόμενων γραμμών ως εξαγομένες (δεν θα είναι δυνατή η τροποποίηση των γραμμών) -NotifiedValidationDate=Επικύρωση των εξαγόμενων καταχωρήσεων (δεν θα είναι δυνατή η τροποποίηση ή η διαγραφή των γραμμών) +NotifiedExportDate=Επισημάνετε τις εξαγόμενες γραμμές ως Εξαγόμενες (για να τροποποιήσετε μια γραμμή, θα χρειαστεί να διαγράψετε ολόκληρη τη συναλλαγή και να τη μεταφέρετε ξανά στη λογιστική) +NotifiedValidationDate=Επικύρωση και Κλείδωμα των εξαγόμενων καταχωρήσεων (το ίδιο αποτέλεσμα με τη δυνατότητα "%s", η τροποποίηση και η διαγραφή των γραμμών ΣΙΓΟΥΡΑ δεν θα είναι δυνατή) +DateValidationAndLock=Ημερομηνία επικύρωσης και κλειδώματος ConfirmExportFile=Επιβεβαίωση δημιουργίας του λογιστικού αρχείου εξαγωγής ; -ExportDraftJournal=Εξαγωγή σχεδίου περιοδικού -Modelcsv=Πρότυπο εξαγωγής -Selectmodelcsv=Επιλέξτε ένα πρότυπο από την εξαγωγή +ExportDraftJournal=Εξαγωγή προσχεδίου ημερολογίου +Modelcsv=Υπόδειγμα εξαγωγής +Selectmodelcsv=Επιλέξτε ένα υπόδειγμα εξαγωγής Modelcsv_normal=Κλασική εξαγωγή Modelcsv_CEGID=Εξαγωγή για CEGID Expert Comptabilité Modelcsv_COALA=Εξαγωγή για το Sage Coala @@ -343,11 +349,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 Ελβετία @@ -355,83 +361,102 @@ 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=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για άλλες αγορές στο εξωτερικό. -CleanFixHistory=Καταργήστε τον κωδικό λογιστικής από γραμμές που δεν υπάρχουν στα γραφήματα λογαριασμού -CleanHistory=Επαναφέρετε όλες τις συνδέσεις για το επιλεγμένο έτος +OptionModeProductBuyIntraDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για αγορές στην Ε.Ε. +OptionModeProductBuyExportDesc=Εμφάνιση όλων των προϊόντων με λογιστικό λογαριασμό για άλλες αγορές από το εξωτερικό. +CleanFixHistory=Αφαιρέστε τον κωδικό λογιστικής από γραμμές που δεν υπάρχουν στο λογιστικό σχέδιο +CleanHistory=Επαναφέρετε όλες τις δεσμεύσεις για το επιλεγμένο έτος PredefinedGroups=Προκαθορισμένες ομάδες WithoutValidAccount=Χωρίς έγκυρο αποκλειστικό λογαριασμό WithValidAccount=Με έγκυρο αποκλειστικό λογαριασμό -ValueNotIntoChartOfAccount=Αυτή η αξία του λογαριασμού λογιστικής δεν υπάρχει στο λογαριασμό λογαριασμού +ValueNotIntoChartOfAccount=Αυτή η αξία λογιστικού λογαριασμού δεν υπάρχει στο λογιστικό σχέδιο AccountRemovedFromGroup=Ο λογαριασμός αφαιρέθηκε από την ομάδα SaleLocal=Τοπική πώληση -SaleExport=Εξαγωγή πώλησης -SaleEEC=Πώληση στην ΕΟΚ -SaleEECWithVAT=Πώληση σε ΕΟΚ με μηδενικό ΦΠΑ, επομένως υποθέτουμε ότι ΔΕΝ είναι ενδοκοινοτική πώληση και ο προτεινόμενος λογαριασμός είναι ο τυπικός λογαριασμός προϊόντος. -SaleEECWithoutVATNumber=Πώληση σε ΕΟΚ χωρίς ΦΠΑ, αλλά δεν ορίζεται το ΑΦΜ τρίτου μέρους. Εφεδρικός λογαριασμός προϊόντος για τυπικές πωλήσεις. Εάν χρειαστεί, μπορείτε να διορθώσετε το αναγνωριστικό ΦΠΑ τρίτου μέρους ή τον λογαριασμό προϊόντος. +SaleExport=Εξαγωγική πώληση +SaleEEC=Πώληση στην Ε.Ε. +SaleEECWithVAT=Πώληση στην Ε.Ε. με μη μηδενικό ΦΠΑ, άρα υποθέτουμε ότι ΔΕΝ πρόκειται για ενδοκοινοτική πώληση και ο προτεινόμενος λογαριασμός είναι ο τυπικός λογαριασμός προϊόντος. +SaleEECWithoutVATNumber=Πώληση στην Ε.Ε. χωρίς ΦΠΑ αλλά δεν έχει οριστεί το ΑΦΜ του τρίτου μέρους. Επιστρέφουμε στον λογαριασμό προϊόντος για τυπικές πωλήσεις. Μπορείτε να διορθώσετε το ΑΦΜ τρίτου μέρους ή τον λογαριασμό προϊόντος εάν χρειάζεται. ForbiddenTransactionAlreadyExported=Απαγορευμένο: Η συναλλαγή έχει επικυρωθεί ή/και έχει εξαχθεί. ForbiddenTransactionAlreadyValidated=Απαγορευμένο: Η συναλλαγή έχει επικυρωθεί. ## Dictionary -Range=Εύρος λογιστικού λογαριασμού +Range=Εύρος λογαριασμού λογιστικής Calculated=Υπολογίστηκε Formula=Τύπος +## Reconcile +Unlettering=Αναίρεση λογιστικής συμφωνίας +AccountancyNoLetteringModified=Δεν τροποποιήθηκε η συμφωνία +AccountancyOneLetteringModifiedSuccessfully=Μία συμφωνία τροποποιήθηκε με επιτυχία +AccountancyLetteringModifiedSuccessfully=Η συμφωνία %s τροποποιήθηκε επιτυχώς +AccountancyNoUnletteringModified=Κανένα μη συμφωνημένο δεν τροποποιήθηκε +AccountancyOneUnletteringModifiedSuccessfully=Ένα μη συμφωνηθέν τροποποιήθηκε με επιτυχία +AccountancyUnletteringModifiedSuccessfully=%s μη συμφωνηθέντα τροποποιήθηκαν επιτυχώς + +## Confirm box +ConfirmMassUnlettering=Επιβεβαίωση μαζικής αναίρεσης λογιστικής συμφωνίας +ConfirmMassUnletteringQuestion=Είστε σίγουροι ότι θέλετε να αναιρέσετε την συμφωνία των επιλεγμένων εγγραφών %s; +ConfirmMassDeleteBookkeepingWriting=Επιβεβαίωση μαζικής διαγραφής +ConfirmMassDeleteBookkeepingWritingQuestion=Αυτό θα διαγράψει τη συναλλαγή από τη λογιστική (όλες οι γραμμές που σχετίζονται με την ίδια συναλλαγή θα διαγραφούν) Είστε σίγουροι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; + ## Error -SomeMandatoryStepsOfSetupWereNotDone=Ορισμένα υποχρεωτικά βήματα εγκατάστασης δεν έγιναν, παρακαλούμε συμπληρώστε τα -ErrorNoAccountingCategoryForThisCountry=Δεν υπάρχει διαθέσιμη ομάδα λογαριασμών για τη χώρα %s (Βλ. Αρχική σελίδα - Ρύθμιση - Λεξικά) -ErrorInvoiceContainsLinesNotYetBounded=Προσπαθείτε να κάνετε περιοδικές εκδόσεις ορισμένων γραμμών του τιμολογίου %s , αλλά ορισμένες άλλες γραμμές δεν έχουν ακόμη οριοθετηθεί στον λογαριασμό λογιστικής. Η δημοσίευση όλων των γραμμών τιμολογίου για αυτό το τιμολόγιο απορρίπτεται. +SomeMandatoryStepsOfSetupWereNotDone=Ορισμένα υποχρεωτικά βήματα της ρύθμισης δεν έγιναν, παρακαλούμε ολοκληρώστε τα +ErrorNoAccountingCategoryForThisCountry=Δεν υπάρχει διαθέσιμη ομάδα λογαριασμών λογιστικής για τη χώρα %s (Δες Αρχική - Ρυθμίσεις - Λεξικά) +ErrorInvoiceContainsLinesNotYetBounded=Προσπαθείτε να καταχωρήσετε στο ημερολόγιο ορισμένες γραμμές του τιμολογίου %s , αλλά ορισμένες άλλες γραμμές δεν είναι ακόμη δεσμευμένες στον λογιστικό λογαριασμό. Η καταχώρηση στο ημερολόγιο όλων των γραμμών τιμολογίων για αυτό το τιμολόγιο απορρίπτεται. ErrorInvoiceContainsLinesNotYetBoundedShort=Ορισμένες γραμμές στο τιμολόγιο δεν δεσμεύονται στο λογαριασμό λογιστικής. ExportNotSupported=Η διαμορφωμένη μορφή εξαγωγής δεν υποστηρίζεται σε αυτή τη σελίδα BookeppingLineAlreayExists=Γραμμές που υπάρχουν ήδη στη λογιστική -NoJournalDefined=Δεν έχει οριστεί περιοδικό -Binded=Γραμμές δεσμευμένες -ToBind=Γραμμές που δεσμεύουν -UseMenuToSetBindindManualy=Οι γραμμές που δεν έχουν ακόμη δεσμευτεί, χρησιμοποιήστε το μενού %s για να κάνετε τη σύνδεση μη αυτόματα +NoJournalDefined=Δεν βρέθηκε ημερολόγιο +Binded=Δεσμευμένες γραμμές +ToBind=Γραμμές προς δέσμευση +UseMenuToSetBindindManualy=Γραμμές που δεν έχουν ακόμη δεσμευτεί, χρησιμοποιήστε το μενού %s για να κάνετε τη δέσμευση χειροκίνητα SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Λυπούμαστε, αυτή η ενότητα δεν είναι συμβατή με την πειραματική λειτουργία των τιμολογίων κατάστασης +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=Subledger account number (CompAuxNum) -FECFormatSubledgerAccountLabel=Subledger account number (CompAuxLib) -FECFormatPieceRef=Αναφορά τεμαχίου (PieceRef) -FECFormatPieceDate=Δημιουργία ημερομηνίας τεμαχίου (PieceDate) +FECFormatSubledgerAccountNumber=Αριθμός λογαριασμού Βοηθητικού καθολικού (CompAuxNum) +FECFormatSubledgerAccountLabel=Αριθμός λογαριασμού Βοηθητικού καθολικού (CompAuxLib) +FECFormatPieceRef=Αναφορά καταχώρησης (PieceRef) +FECFormatPieceDate=Δημιουργία ημερομηνίας καταχώρησης (PieceDate) FECFormatLabelOperation=Λειτουργία ετικέτας (EcritureLib) -FECFormatDebit=Χρεωστική (Χρεωστική) +FECFormatDebit=Χρέωση (Χρέωση) FECFormatCredit=Πίστωση (Πίστωση) -FECFormatReconcilableCode=Reconcilable code (EcritureLet) -FECFormatReconcilableDate=Reconcilable date (DateLet) -FECFormatValidateDate=Ημερομηνία επικύρωσης τεμαχίου (ValidDate) +FECFormatReconcilableCode=Κωδικός συμφωνίας (EcritureLet) +FECFormatReconcilableDate=Ημερομηνία συμφωνίας (DateLet) +FECFormatValidateDate=Ημερομηνία επικύρωσης καταχώρησης (ValidDate) FECFormatMulticurrencyAmount=Ποσό πολλαπλών νομισμάτων (Montantdevise) FECFormatMulticurrencyCode=Κωδικός πολλαπλών νομισμάτων (Idevise) DateExport=Ημερομηνία εξαγωγής -WarningReportNotReliable=Προειδοποίηση, αυτή η αναφορά δεν βασίζεται στον Καθολικό, επομένως δεν περιέχει συναλλαγή που τροποποιείται χειροκίνητα στο Ledger. Εάν η περιοδική σας έκδοση είναι ενημερωμένη, η προβολή της λογιστικής είναι πιο ακριβής. -ExpenseReportJournal=Ενημερωτικό Δελτίο Έκθεσης -InventoryJournal=Απογραφή Αποθέματος +WarningReportNotReliable=Προειδοποίηση, αυτή η αναφορά δεν βασίζεται στο Καθολικό, επομένως δεν περιέχει συναλλαγή που τροποποιήθηκε χειροκίνητα στο Καθολικό. Εάν τα ημερολόγια σας είναι ενημερωμένα, η προβολή της λογιστικής είναι πιο ακριβής. +ExpenseReportJournal=Ημερολόγιο Αναφοράς Εξόδων +InventoryJournal=Ημερολόγιο απογραφής -NAccounts= %s λογαριασμός,-οί +NAccounts= %s λογαριασμοί diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index c33cd174692..f1724e96989 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -1,55 +1,55 @@ # Dolibarr language file - Source file is en_US - admin BoldRefAndPeriodOnPDF=Εκτύπωση αναφοράς και περιόδου του προϊόντος σε PDF -BoldLabelOnPDF=Εκτυπώστε την ετικέτα του προϊόντος με έντονη γραφή σε PDF +BoldLabelOnPDF=Εκτύπωση ετικέτας του προϊόντος με έντονη γραφή σε PDF Foundation=Οργανισμός Version=Έκδοση Publisher=Εκδότης VersionProgram=Έκδοση Προγράμματος -VersionLastInstall=Έκδοση αρχικής εγκατάστασης -VersionLastUpgrade=Αναβάθμιση τελευταίας έκδοσης +VersionLastInstall=Αρχική έκδοση εγκατάστασης +VersionLastUpgrade=Έκδοση Τελευταίας Ενημέρωσης VersionExperimental=Πειραματική VersionDevelopment=Υπό ανάπτυξη VersionUnknown=Άγνωστη VersionRecommanded=Προτεινόμενη FileCheck=Έλεγχοι ακεραιότητας αρχείων -FileCheckDesc=Αυτό το εργαλείο σάς επιτρέπει να ελέγχετε την ακεραιότητα των αρχείων και τη ρύθμιση της εφαρμογής σας, συγκρίνοντας κάθε αρχείο με τo αντιστοιχο επίσημο. Μπορεί επίσης να ελεγχθεί η τιμή ορισμένων σταθερών ρύθμισης. Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να προσδιορίσετε εάν έχουν τροποποιηθεί οποιαδήποτε αρχεία (π.χ. από έναν χάκερ). +FileCheckDesc=Αυτό το εργαλείο σάς επιτρέπει να ελέγχετε την ακεραιότητα των αρχείων και τη ρύθμιση της εφαρμογής σας, συγκρίνοντας κάθε αρχείο με το αντίστοιχο επίσημο. Μπορεί επίσης να ελεγχθεί η τιμή ορισμένων σταθερών της ρύθμισης. Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να προσδιορίσετε εάν έχουν τροποποιηθεί οποιαδήποτε αρχεία (π.χ. από έναν χάκερ). FileIntegrityIsStrictlyConformedWithReference=Η ακεραιότητα των αρχείων είναι αυστηρά σύμφωνη με την αναφορά. FileIntegrityIsOkButFilesWereAdded=Ο έλεγχος ακεραιότητας αρχείων ολοκληρώθηκε επιτυχώς, ωστόσο κάποια νέα αρχεία έχουν προστεθεί. FileIntegritySomeFilesWereRemovedOrModified=Ο έλεγχος ακεραιότητας αρχείων απέτυχε. Κάποια αρχεία έχουν τροποποιηθεί, απουσιάζουν ή έχουν προστεθεί. -GlobalChecksum=Συνολικό άθροισμα ελέγχου +GlobalChecksum=Global checksum MakeIntegrityAnalysisFrom=Κάντε ανάλυση ακεραιότητας των αρχείων εφαρμογών από το LocalSignature=Ενσωματωμένη τοπική υπογραφή (λιγότερο αξιόπιστη) -RemoteSignature=Εξωτερική απομακρυσμένη υπογραφή (πιο αξιόπιστη) +RemoteSignature=Απομακρυσμένη υπογραφή (πιο αξιόπιστη) FilesMissing=Αρχεία που λείπουν FilesUpdated=Ενημερωμένα αρχεία FilesModified=Τροποποιημένα αρχεία -FilesAdded=Προστέθηκε αρχεία +FilesAdded=Αρχεία που προστέθηκαν FileCheckDolibarr=Ελέγξτε την ακεραιότητα των αρχείων εφαρμογών -AvailableOnlyOnPackagedVersions=Το τοπικό αρχείο για τον έλεγχο της ακεραιότητας είναι διαθέσιμο μόνο όταν η εφαρμογή εγκατασταθεί από ένα επίσημο πακέτο +AvailableOnlyOnPackagedVersions=Το τοπικό αρχείο για τον έλεγχο της ακεραιότητας είναι διαθέσιμο μόνο όταν η εφαρμογή έχει εγκατασταθεί από ένα επίσημο πακέτο XmlNotFound=Το Xml αρχείο ακεραιότητας της εφαρμογής δεν βρέθηκε -SessionId=ID Συνόδου +SessionId=Αναγνωριστικό συνεδρίας SessionSaveHandler=Φορέας χειρισμού αποθήκευσης συνεδριών -SessionSavePath=Περιοχή αποθήκευσης περιόδου σύνδεσης -PurgeSessions=Διαγραφή συνόδων +SessionSavePath=Διαδρομή αποθήκευσης συνεδριών +PurgeSessions=Διαγραφή συνεδριών ConfirmPurgeSessions=Είστε σίγουροι πως θέλετε να διαγράψετε όλες τις συνεδρίες; Αυτό θα αποσυνδέσει όλους τους χρήστες (εκτός από εσάς). -NoSessionListWithThisHandler=Η αποθήκευση του χειριστή περιόδου λειτουργίας που έχει ρυθμιστεί στη PHP σας δεν επιτρέπει την εισαγωγή όλων των τρέχουσων περιόδων λειτουργίας. -LockNewSessions=Κλειδώστε τις νέες συνδέσεις -ConfirmLockNewSessions=Είστε βέβαιοι ότι θέλετε να περιορίσετε οποιαδήποτε νέα σύνδεση Dolibarr στον εαυτό σας; Μόνο ο χρήστης %s θα μπορεί να συνδεθεί μετά από αυτό. +NoSessionListWithThisHandler=Ο φορέας χειρισμού αποθήκευσης συνεδριών που έχει ρυθμιστεί στη PHP σας δεν επιτρέπει την καταχώριση όλων των συνεδριών που εκτελούνται. +LockNewSessions=Κλειδώστε τις νέες συνεδρίες +ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσετε οποιαδήποτε νέα σύνδεση Dolibarr στον εαυτό σας; Μόνο ο χρήστης %s θα μπορεί να συνδεθεί μετά από αυτό. UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης -YourSession=Η σύνοδος σας +YourSession=Η συνεδρία σας Sessions=Συνεδρίες χρηστών WebUserGroup=Χειριστής/Ομάδα Διακομιστή Web PermissionsOnFiles=Δικαιώματα σε αρχεία PermissionsOnFilesInWebRoot=Δικαιώματα σε αρχεία στον ριζικό κατάλογο ιστού PermissionsOnFile=Δικαιώματα στο αρχείο %s -NoSessionFound=Η διαμόρφωση της PHP σας φαίνεται να μην επιτρέπει την καταχώρηση των ενεργοποιημένων συνδεγριών. Ο κατάλογος που χρησιμοποιείται για την αποθήκευση των περιόδων σύνδεσης (%s) μπορεί να προστατεύεται (για παράδειγμα, από τα δικαιώματα των λειτουργικών συστημάτων ή από την οδηγία PHP open_basedir). -DBStoringCharset=Σύνολο χαρακτήρων βάσης δεδομένων για την αποθήκευση δεδομένων +NoSessionFound=Η διαμόρφωση της PHP σας φαίνεται να μην επιτρέπει την καταχώρηση των ενεργοποιημένων συνεδριών. Ο κατάλογος που χρησιμοποιείται για την αποθήκευση των περιόδων σύνδεσης (%s) μπορεί να προστατεύεται (για παράδειγμα, από τα δικαιώματα των λειτουργικών συστημάτων ή από την οδηγία PHP open_basedir). +DBStoringCharset=Σετ χαρακτήρων βάσης δεδομένων για αποθήκευση δεδομένων DBSortingCharset=Σετ χαρακτήρων βάσης δεδομένων για ταξινόμηση δεδομένων -HostCharset=Σύνολο χαρακτήρων κεντρικού υπολογιστή -ClientCharset=Σύνολο χαρακτήρων του χρήστη -ClientSortingCharset=Συγκέντρωση πελατών -WarningModuleNotActive=Το Module %s πρέπει να ενεργοποιηθεί -WarningOnlyPermissionOfActivatedModules=Εδώ φαίνονται μόνο τα δικαιώματα που σχετίζονται με ενεργοποιημένα modules. Μπορείτε να ενεργοποιήσετε άλλα modules στο Αρχική-> Ρυθμίσεις-> σελίδα Modules. +HostCharset=Σετ χαρακτήρων κεντρικού υπολογιστή +ClientCharset=Σετ χαρακτήρων πελάτη +ClientSortingCharset=Client collation +WarningModuleNotActive=Η ενότητα %s πρέπει να ενεργοποιηθεί +WarningOnlyPermissionOfActivatedModules=Εδώ φαίνονται μόνο τα δικαιώματα που σχετίζονται μόνο με ενεργοποιημένες ενότητες. Μπορείτε να ενεργοποιήσετε άλλες ενότητες στο Αρχική-> Ρυθμίσεις-> σελίδα Ενότητες / Εφαρμογές. DolibarrSetup=Εγκατάσταση ή αναβάθμιση του Dolibarr InternalUser=Εσωτερικός χρήστης ExternalUser=Εξωτερικός χρήστης @@ -58,44 +58,44 @@ ExternalUsers=Εξωτερικοί χρήστες UserInterface=Διεπαφή χρήστη GUISetup=Εμφάνιση SetupArea=Ρύθμιση -UploadNewTemplate=Μεταφόρτωση νέου(-ων) προτύπου(-ων) -FormToTestFileUploadForm=Έντυπο για να ελέγξετε το αρχείο μεταφόρτωσης (ανάλογα με τις ρυθμίσεις) +UploadNewTemplate=Μεταφόρτωση νέου προτύπου +FormToTestFileUploadForm=Φόρμα για να δοκιμάσετε την μεταφόρτωση αρχείων (ανάλογα με τις ρυθμίσεις) ModuleMustBeEnabled=Η ενότητα/εφαρμογή %s πρέπει να είναι ενεργοποιημένη ModuleIsEnabled=Η ενότητα/εφαρμογή %s έχει ενεργοποιηθεί -IfModuleEnabled=Σημείωση: ναι, είναι αποτελεσματική μόνο αν το module %s είναι ενεργοποιημένο -RemoveLock=Αφαιρέστε/μετονομάστε το αρχείο %s, αν υπάρχει, για να επιτραπεί η χρήση του εργαλείου ενημέρωσης/εγκατάστασης. +IfModuleEnabled=Σημείωση: ναι, είναι αποτελεσματική μόνο αν η ενότητα %s είναι ενεργοποιημένη +RemoveLock=Αφαίρεση/μετονομασία του αρχείου %s, αν υπάρχει, για να επιτραπεί η χρήση του εργαλείου ενημέρωσης/εγκατάστασης. RestoreLock=Επαναφέρετε το αρχείο %s, με δικαίωμα ανάγνωσης μόνο, για να απενεργοποιηθεί οποιαδήποτε χρήση του εργαλείου ενημέρωσης/εγκατάστασης. SecuritySetup=Διαχείριση Ασφάλειας PHPSetup=Ρύθμιση PHP OSSetup=Ρύθμιση λειτουργικού συστήματος -SecurityFilesDesc=Καθορίστε εδώ τις επιλογές που σχετίζονται με την ασφάλεια σχετικά με τη μεταφόρτωση αρχείων. +SecurityFilesDesc=Καθορίστε εδώ τις επιλογές που σχετίζονται με την ασφαλή μεταφόρτωση αρχείων. ErrorModuleRequirePHPVersion=Λάθος, αυτή η ενότητα απαιτεί έκδοση PHP %s ή μεγαλύτερη -ErrorModuleRequireDolibarrVersion=Λάθος, αυτό το module απαιτεί Dolibarr έκδοση %s ή μεγαλύτερη -ErrorDecimalLargerThanAreForbidden=Λάθος, μια διευκρίνιση μεγαλύτερη από %s δεν υποστηρίζεται. -DictionarySetup=Ρύθμισης λεξικού +ErrorModuleRequireDolibarrVersion=Λάθος, αυτό η ενότητα απαιτεί έκδοση Dolibarr %s ή μεγαλύτερη +ErrorDecimalLargerThanAreForbidden=Λάθος, ακρίβεια μεγαλύτερη από %s δεν υποστηρίζεται. +DictionarySetup=Ρύθμιση λεξικού Dictionary=Λεξικά -ErrorReservedTypeSystemSystemAuto=Αξία «system» και «systemauto» για τον τύπο είναι κατοχυρωμένα. Μπορείτε να χρησιμοποιήσετε το «χρήστη» ως αξία για να προσθέσετε το δικό σας μητρώο +ErrorReservedTypeSystemSystemAuto=Η τιμή "system" και "systemauto" για τον τύπο είναι δεσμευμένη. Μπορείτε να χρησιμοποιήσετε τον 'χρήστη' ως τιμή για να προσθέσετε τη δική σας εγγραφή ErrorCodeCantContainZero=Ο κώδικας δεν μπορεί να περιέχει την τιμή 0 -DisableJavascript=Απενεργοποίηση συναρτήσεων JavaScript και Ajax -DisableJavascriptNote=Σημείωση: Μόνο για σκοπούς δοκιμής ή εντοπισμού σφαλμάτων. Για βελτιστοποίηση για τυφλούς ή προγράμματα περιήγησης κειμένου, μπορείτε να προτιμήσετε να χρησιμοποιήσετε τη ρύθμιση στο προφίλ του χρήστη -UseSearchToSelectCompanyTooltip=Επίσης, αν έχετε ένα μεγάλο αριθμό Πελ./Προμ. (> 100 000), μπορείτε να αυξήσετε την ταχύτητα με τον καθορισμό της σταθερά COMPANY_DONOTSEARCH_ANYWHERE σε 1 στο Setup->Other. Η αναζήτηση στη συνέχεια θα περιορίζεται από την έναρξη της σειράς. -UseSearchToSelectContactTooltip=Επίσης, αν έχετε ένα μεγάλο αριθμό Πελ./Προμ. (> 100 000), μπορείτε να αυξήσετε την ταχύτητα με τον καθορισμό της σταθερά COMPANY_DONOTSEARCH_ANYWHERE σε 1 στο Setup->Other. Η αναζήτηση στη συνέχεια θα περιορίζεται από την έναρξη της σειράς. -DelaiedFullListToSelectCompany=Περιμένετε μέχρι να πατηθεί κάποιο πλήκτρο πριν φορτώσετε το περιεχόμενο της λίστας συνδυασμών τρίτων μερών.
    Αυτό μπορεί να αυξήσει την απόδοση εάν έχετε μεγάλο αριθμό τρίτων, αλλά είναι λιγότερο βολικό. +DisableJavascript=Απενεργοποιήστε τις λειτουργίες JavaScript και Ajax +DisableJavascriptNote=Σημείωση: Μόνο για σκοπούς δοκιμής ή εντοπισμού σφαλμάτων. Για βελτιστοποίηση για άτομα με προβλήματα όρασης ή προγράμματα περιήγησης κειμένου, μπορείτε να προτιμήσετε να χρησιμοποιήσετε τη ρύθμιση στο προφίλ του χρήστη +UseSearchToSelectCompanyTooltip=Επίσης, εάν έχετε μεγάλο αριθμό τρίτων μερών (> 100 000), μπορείτε να αυξήσετε την ταχύτητα ορίζοντας τη σταθερά COMPANY_DONOTSEARCH_ANYWHERE σε 1 στο Αρχική ->Ρυθμίσεις->Άλλες ρυθμίσεις. Στη συνέχεια, η αναζήτηση θα περιοριστεί στην αρχή της συμβολοσειράς. +UseSearchToSelectContactTooltip=Επίσης, εάν έχετε μεγάλο αριθμό τρίτων (> 100 000), μπορείτε να αυξήσετε την ταχύτητα ορίζοντας τη σταθερά CONTACT_DONOTSEARCH_ANYWHERE σε 1 στο Αρχική ->Ρυθμίσεις->Άλλες ρυθμίσεις. Στη συνέχεια, η αναζήτηση θα περιοριστεί στην αρχή της συμβολοσειράς. +DelaiedFullListToSelectCompany=Περιμένετε μέχρι να πατηθεί κάποιο πλήκτρο πριν φορτώσετε το περιεχόμενο της λίστας συνδυασμών τρίτων μερών.
    Αυτό μπορεί να αυξήσει την απόδοση εάν έχετε μεγάλο αριθμό τρίτων μερών, αλλά είναι λιγότερο βολικό. DelaiedFullListToSelectContact=Περιμένετε μέχρι να πατηθεί ένα πλήκτρο πριν φορτώσετε το περιεχόμενο της σύνθετης λίστας επαφών.
    Αυτό μπορεί να αυξήσει την απόδοση εάν έχετε μεγάλο αριθμό επαφών, αλλά είναι λιγότερο βολικό. NumberOfKeyToSearch=Αριθμός χαρακτήρων που ενεργοποιούν την αναζήτηση: %s -NumberOfBytes=Αριθμόςαπό Bytes -SearchString=Αναζήτηση συμβόλων +NumberOfBytes=Αριθμός Bytes +SearchString=Χαρακτήρες αναζήτησης NotAvailableWhenAjaxDisabled=Δεν είναι διαθέσιμο όταν η Ajax είναι απενεργοποιημένη -AllowToSelectProjectFromOtherCompany=Σε έγγραφο τρίτου μέρους, μπορείτε να επιλέξετε ένα έργο που συνδέεται με άλλο τρίτο μέρος -TimesheetPreventAfterFollowingMonths=Αποτρέψτε τον χρόνο εγγραφής που δαπανάται μετά τον επόμενο αριθμό μηνών +AllowToSelectProjectFromOtherCompany=Σε έγγραφο τρίτου μέρους, μπορείτε να επιλέξετε ένα έργο συνδεδεμένο με άλλο τρίτο μέρος +TimesheetPreventAfterFollowingMonths=Αποτρέψτε την καταγραφή χρόνου μετά τον επόμενο αριθμό μηνών JavascriptDisabled=Η JavaScript είναι απενεργοποιημένη -UsePreviewTabs=Χρήση καρτελών προ επισκόπησης -ShowPreview=Εμφάνιση προ επισκόπησης +UsePreviewTabs=Χρήση καρτελών προεπισκόπησης +ShowPreview=Εμφάνιση προεπισκόπησης ShowHideDetails=Εμφάνιση-Απόκρυψη λεπτομερειών -PreviewNotAvailable=Η προ επισκόπηση δεν είναι διαθέσιμη -ThemeCurrentlyActive=Θεματική Επι του Παρόντος Ενεργή +PreviewNotAvailable=Η προεπισκόπηση δεν είναι διαθέσιμη +ThemeCurrentlyActive=Ενεργό θέμα εμφάνισης MySQLTimeZone=TimeZone MySql (βάση δεδομένων) -TZHasNoEffect=Οι ημερομηνίες αποθηκεύονται και επιστρέφονται από το διακομιστή βάσης δεδομένων σαν να κρατήθηκαν ως υποβληθείσες συμβολοσειρές. Η ζώνη ώρας έχει ισχύ μόνο όταν χρησιμοποιείτε τη συνάρτηση UNIX_TIMESTAMP (η οποία δεν πρέπει να χρησιμοποιείται από τον Dolibarr, ώστε η βάση δεδομένων TZ να μην επηρεαστεί, ακόμη και αν αλλάξει μετά την εισαγωγή των δεδομένων). +TZHasNoEffect=Οι ημερομηνίες αποθηκεύονται και επιστρέφονται από τον διακομιστή της βάσης δεδομένων σαν να είχαν διατηρηθεί ως υποβληθείσα συμβολοσειρά. Η ζώνη ώρας ισχύει μόνο όταν χρησιμοποιείται η συνάρτηση UNIX_TIMESTAMP (που δεν πρέπει να χρησιμοποιείται από το Dolibarr, επομένως η βάση δεδομένων TZ δεν θα πρέπει να έχει αποτέλεσμα, ακόμη και αν άλλαξε μετά την εισαγωγή δεδομένων). Space=Κενό Table=Πίνακας Fields=Πεδία @@ -106,42 +106,42 @@ NextValueForInvoices=Επόμενο (τιμολόγιο) NextValueForCreditNotes=Επόμενο (πιστωτικά τιμολόγια) NextValueForDeposit=Επόμενη τιμή (προκαταβολή) NextValueForReplacements=Επόμενη αξία (αντικατάστασης) -MustBeLowerThanPHPLimit=Σημείωση: Η διαμόρφωση του PHP σας περιορίζει το μέγιστο μέγεθος αρχείου για μεταφόρτωση%s%s, ανεξάρτητα από την αξία αυτής της παραμέτρου -NoMaxSizeByPHPLimit=Σημείωση: Κανένα όριο δεν έχει οριστεί στη διαμόρφωση του PHP σας -MaxSizeForUploadedFiles=Μέγιστο μέγεθος για μεταφόρτωση αρχείων (0 απορρίπτει οποιοδήποτε μεταφόρτωση) -UseCaptchaCode=Χρησιμοποιήστε το γραφικό κώδικα (CAPTCHA) στη σελίδα εισόδου +MustBeLowerThanPHPLimit=Σημείωση: η διαμόρφωση της PHP περιορίζει αυτήν τη στιγμή το μέγιστο μέγεθος αρχείου για μεταφόρτωση σε %s %s, ανεξάρτητα από την τιμή αυτής της παραμέτρου +NoMaxSizeByPHPLimit=Σημείωση: Κανένα όριο δεν έχει οριστεί στη διαμόρφωση της PHP +MaxSizeForUploadedFiles=Μέγιστο μέγεθος για μεταφόρτωση αρχείων (0 για την απενεργοποίηση μεταφορτώσεων) +UseCaptchaCode=Χρησιμοποιήστε γραφικό κώδικα (CAPTCHA) στη σελίδα σύνδεσης και σε ορισμένες δημόσιες σελίδες AntiVirusCommand=Πλήρης διαδρομή για την εντολή του antivirus -AntiVirusCommandExample=Παράδειγμα για το ClamAv Daemon (απαιτείται 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=Εγκατάσταση Λογιστικού module +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=Ρύθμιση πολλαπλών νομισμάτων MenuLimits=Όρια και ακρίβεια -MenuIdParent=ID Μητρικού Μενού -DetailMenuIdParent=ID του μητρικού μενού (άδειο για το μενού κορυφής) -ParentID=Parent ID +MenuIdParent=Αναγνωριστικό γονικού μενού +DetailMenuIdParent=Αναγνωριστικό γονικού μενού (κενό για κορυφαίο μενού) +ParentID=Αναγνωριστικό γονέα DetailPosition=Αριθμός Ταξινόμησης για να καθοριστεί η θέση του μενού AllMenus=Όλα -NotConfigured=Το ένθεμα/εφαρμογή δεν έχει ρυθμιστεί -Active=Ενεργό +NotConfigured=Η Ενότητα/εφαρμογή δεν έχει ρυθμιστεί +Active=Ενεργή SetupShort=Ρύθμιση OtherOptions=Άλλες Επιλογές OtherSetup=Άλλες Ρυθμίσεις CurrentValueSeparatorDecimal=Διαχωριστικό Δεκαδικών CurrentValueSeparatorThousand=Διαχωριστικό Χιλιάδων Destination=Προορισμός -IdModule=Module ID -IdPermissions=Δικαιώματα ID +IdModule=Αναγνωριστικό ενότητας +IdPermissions=Αναγνωριστικό αδειών LanguageBrowserParameter=Παράμετρος %s LocalisationDolibarrParameters=Παράμετροι τοπικών ρυθμίσεων ClientHour=Ωρα χρήστη (χρήστης) -OSTZ=OS Time Zone του διακομιστή -PHPTZ=Ζώνη Ώρας PHP server +OSTZ=Ζώνη ώρας του λειτουργικού συστήματος του διακομιστή +PHPTZ=Ζώνη Ώρας διακομιστή PHP DaylingSavingTime=Η θερινή ώρα (χρήστη) -CurrentHour=PHP server hour -CurrentSessionTimeOut=Χρονικό όριο περιόδου λειτουργίας τρέχουσας συνοδού -YouCanEditPHPTZ=Για να ορίσετε μια διαφορετική ζώνη ώρας PHP (δεν απαιτείται), μπορείτε να προσπαθήσετε να προσθέσετε ένα αρχείο .htaccess με μια γραμμή όπως αυτή "SetEnv TZ Europe / Paris"\n +CurrentHour=Ώρα PHP (server) +CurrentSessionTimeOut=Λήξη τρέχουσας σύνδεσης +YouCanEditPHPTZ=Για να ορίσετε μια διαφορετική ζώνη ώρας PHP (δεν απαιτείται), μπορείτε να προσπαθήσετε να προσθέσετε ένα αρχείο .htaccess με μια γραμμή όπως αυτή "SetEnv TZ Europe/Paris"\n HoursOnThisPageAreOnServerTZ=Προειδοποίηση, σε αντίθεση με άλλες οθόνες, οι ώρες σε αυτήν τη σελίδα δεν βρίσκονται στην τοπική ζώνη ώρας, αλλά στη ζώνη ώρας του διακομιστή. Box=Γραφικό στοιχείο Boxes=Γραφικά στοιχεία @@ -150,161 +150,161 @@ AllWidgetsWereEnabled=Όλα τα διαθέσιμα γραφικά στοιχε PositionByDefault=Προκαθορισμένη σειρά Position=Θέση MenusDesc=Οι διαχειριστές μενού ορίζουν το περιεχόμενο των δύο γραμμών μενού (οριζόντια και κάθετα). -MenusEditorDesc=Ο επεξεργαστής μενού σας επιτρέπει να ορίσετε προσαρμοσμένες καταχωρίσεις μενού. Χρησιμοποιήστε το προσεκτικά για να αποφύγετε την αστάθεια και τις μόνιμα μη προσβάσιμες καταχωρήσεις μενού.
    Ορισμένες ενότητες προσθέτουν καταχωρήσεις μενού (στο μενού Αll κυρίως). Εάν αφαιρέσετε κατά λάθος ορισμένες από αυτές τις καταχωρίσεις, μπορείτε να τις επαναφέρετε απενεργοποιώντας και επανενεργοποιώντας την ενότητα. -MenuForUsers=Μενού για τους χρήστες +MenusEditorDesc=Ο επεξεργαστής μενού σας επιτρέπει να ορίσετε προσαρμοσμένες καταχωρίσεις μενού. Χρησιμοποιήστε το προσεκτικά για να αποφύγετε την αστάθεια και τις μόνιμα μη προσβάσιμες καταχωρήσεις μενού.
    Ορισμένες ενότητες προσθέτουν καταχωρήσεις μενού (στο μενού Ολα κυρίως). Εάν αφαιρέσετε κατά λάθος ορισμένες από αυτές τις καταχωρίσεις, μπορείτε να τις επαναφέρετε απενεργοποιώντας και επανενεργοποιώντας την ενότητα. +MenuForUsers=Μενού για χρήστες LangFile=Αρχείο .lang -Language_en_US_es_MX_etc=Γλώσσα (en_US, es_MX, ...) +Language_en_US_es_MX_etc=Γλώσσα (el_GR, en_US, ...) System=Σύστημα SystemInfo=Πληροφορίες Συστήματος -SystemToolsArea=Περιοχή Εργαλείων Συστήματος -SystemToolsAreaDesc=Αυτή η περιοχή παρέχει λειτουργίες διαχείρισης. Χρησιμοποιήστε το μενού για να επιλέξετε την απαιτούμενη λειτουργία. +SystemToolsArea=Τομέας Εργαλείων Συστήματος +SystemToolsAreaDesc=Αυτός ο τομεας παρέχει λειτουργίες διαχείρισης. Χρησιμοποιήστε το μενού για να επιλέξετε την απαιτούμενη λειτουργία. Purge=Εκκαθάριση -PurgeAreaDesc=Αυτή η σελίδα σας επιτρέπει να διαγράψετε όλα τα αρχεία που κατασκευάζονται ή αποθηκεύονται από την Dolibarr (προσωρινά αρχεία ή όλα τα αρχεία σε %s directory). Η χρήση αυτής της λειτουργίας δεν είναι απαραίτητη. Παρέχεται για χρήστες των οποίων η Dolibarr φιλοξενείται από πάροχο, που δεν προσφέρει δικαίωμα διαγραφής αρχείων που κατασκευάστηκαν από τον web server. -PurgeDeleteLogFile=Διαγράψτε τα αρχεία καταγραφής, συμπεριλαμβανομένων%s που είναι ορισμένα για τη χρήση της μονάδας Syslog (χωρίς κίνδυνο απώλειας δεδομένων) -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=Διαγραφή αρχείων καταγραφής και προσωρινών αρχείων (χωρίς κίνδυνος απώλειας δεδομένων) -PurgeDeleteAllFilesInDocumentsDir=Διαγράψτε όλα τα αρχεία στον κατάλογο: %s .
    Αυτό θα διαγράψει όλα τα παραγόμενα έγγραφα που σχετίζονται με στοιχεία (τρίτα μέρη, τιμολόγια κ.λπ.), αρχεία που έχουν φορτωθεί στη μονάδα ECM, αρχεία από αντίγραφα ασφαλείας βάσεων δεδομένων και προσωρινά αρχεία. -PurgeRunNow=Διαγραφή τώρα +PurgeAreaDesc=Αυτή η σελίδα σάς επιτρέπει να διαγράψετε όλα τα αρχεία που δημιουργήθηκαν ή αποθηκεύτηκαν από το Dolibarr (προσωρινά αρχεία ή όλα τα αρχεία στον κατάλογο %s ). Η χρήση αυτής της δυνατότητας δεν είναι συνήθως απαραίτητη. Παρέχεται ως λύση για χρήστες των οποίων η εγκατάσταση Dolibarr φιλοξενείται από πάροχο (shared host) που δεν προσφέρει δικαιώματα διαγραφής αρχείων που δημιουργούνται από τον διακομιστή ιστού. +PurgeDeleteLogFile=Διαγράψτε τα αρχεία καταγραφής, συμπεριλαμβανομένων αυτών%s που είναι ορισμένα για τη χρήση της ενότητας Syslog (χωρίς κίνδυνο απώλειας δεδομένων) +PurgeDeleteTemporaryFiles=Διαγράψτε όλα τα αρχεία καταγραφής και τα προσωρινά αρχεία (χωρίς κίνδυνος απώλειας δεδομένων). Η παράμετρος μπορεί να είναι 'tempfilesold', 'logfiles' ή και τα δύο 'tempfilesold+logfiles'. Σημείωση: Η διαγραφή των προσωρινών αρχείων γίνεται μόνο εάν ο κατάλογος temp δημιουργήθηκε πριν από περισσότερες από 24 ώρες. +PurgeDeleteTemporaryFilesShort=Διαγραφή αρχείων καταγραφής και προσωρινών αρχείων (χωρίς κίνδυνο απώλειας δεδομένων) +PurgeDeleteAllFilesInDocumentsDir=Διαγράψτε όλα τα αρχεία στον κατάλογο: %s .
    Αυτό θα διαγράψει όλα τα παραγόμενα έγγραφα που σχετίζονται με στοιχεία (τρίτα μέρη, τιμολόγια κ.λ.π.), αρχεία που έχουν μεταφορτωθεί στην ενότητα ECM, αρχεία από αντίγραφα ασφαλείας βάσεων δεδομένων και προσωρινά αρχεία. +PurgeRunNow=Εκκαθάριση τώρα PurgeNothingToDelete=Δεν υπάρχει κατάλογος ή αρχείο για διαγραφή. PurgeNDirectoriesDeleted=%s αρχεία ή κατάλογοι που διαγραφήκαν. PurgeNDirectoriesFailed=Αποτυχία διαγραφής %s αρχείων η φακέλων -PurgeAuditEvents=Διαγραφή όλων των γεγονότων -ConfirmPurgeAuditEvents=Είσαι σίγουρος οτι θέλεις να καθαρίσεις τα αρχεία των συμβάντων ασφαλείας? Όλα τα ημερολόγια ασφαλείας θα διαγραφούν. Δεν θα αφαιρεθούν άλλα δεδομένα. +PurgeAuditEvents=Εκκαθάριση όλων των συμβάντων ασφαλείας +ConfirmPurgeAuditEvents=Είστε σίγουροι ότι θέλετε να εκκαθαρίσετε όλα τα συμβάντα ασφαλείας; Όλα τα αρχεία καταγραφής ασφαλείας θα διαγραφούν, δεν θα αφαιρεθούν άλλα δεδομένα. GenerateBackup=Δημιουργία αντιγράφου ασφαλείας Backup=Αντίγραφα Ασφαλείας Restore=Επαναφορά -RunCommandSummary=Το Backup έχει ξεκινήσει με την ακόλουθη εντολή -BackupResult=Αποτέλεσμα αντιγράφων ασφαλείας -BackupFileSuccessfullyCreated=Το Αρχείο δημιουργίας αντιγράφων ασφαλείας δημιουργήθηκε με επιτυχία -YouCanDownloadBackupFile=Το παραγόμενο αρχείο μπορεί τώρα να μεταφορωθεί +RunCommandSummary=Η δημιουργία αντιγράφου ασφαλείας έχει ξεκινήσει με την ακόλουθη εντολή +BackupResult=Αποτέλεσμα αντιγράφου ασφαλείας +BackupFileSuccessfullyCreated=Το αντίγραφο ασφαλείας δημιουργήθηκε με επιτυχία +YouCanDownloadBackupFile=Τώρα μπορεί να γίνει λήψη του δημιουργημένου αρχείου NoBackupFileAvailable=Δεν υπάρχουν διαθέσιμα αρχεία αντιγράφων ασφαλείας. ExportMethod=Μέθοδος Εξαγωγής ImportMethod=Μέθοδος Εισαγωγής -ToBuildBackupFileClickHere=Για να δημιουργήσετε ένα αρχείο αντιγράφων ασφαλείας, κάντε κλίκ εδώ. -ImportMySqlDesc=Για να εισαγάγετε ένα αρχείο αντιγράφων ασφαλείας MySQL, μπορείτε να χρησιμοποιήσετε το phpMyAdmin μέσω του προγράμματος φιλοξενίας σας ή να χρησιμοποιήσετε την εντολή mysql από τη γραμμή εντολών.
    Για παράδειγμα: -ImportPostgreSqlDesc=Για την εισαγωγή ενός αντιγράφου ασφαλείας, πρέπει να χρησιμοποιήσετε pg_restore εντολή από την γραμμή εντολών: +ToBuildBackupFileClickHere=Για να δημιουργήσετε ένα αρχείο αντιγράφου ασφαλείας, κάντε κλίκ εδώ. +ImportMySqlDesc=Για να εισαγάγετε ένα αρχείο αντιγράφου ασφαλείας MySQL, μπορείτε να χρησιμοποιήσετε το phpMyAdmin μέσω του προγράμματος φιλοξενίας σας ή να χρησιμοποιήσετε την εντολή mysql από τη γραμμή εντολών.
    Για παράδειγμα: +ImportPostgreSqlDesc=Για την εισαγωγή ενός αντιγράφου ασφαλείας, πρέπει να χρησιμοποιήσετε την εντολή pg_restore από την γραμμή εντολών: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Όνομασία αντίγραφου αρχείου: +FileNameToGenerate=Όνομα αρχείου για δημιουργία αντιγράφου ασφαλείας: Compression=Συμπίεση -CommandsToDisableForeignKeysForImport=Εντολή απενεργοποίησης ξένων πλήκτρων κάτα την εισαγωγή -CommandsToDisableForeignKeysForImportWarning=Αναγκαίο, εαν θέλετε να έχετε αργότερα την δυνατότητα αποκαταστασης του sql dump σας -ExportCompatibility=Συμβατότητα των παραχθέντων αρχείων εξαγωγής +CommandsToDisableForeignKeysForImport=Εντολή απενεργοποίησης foreign keys κατά την εισαγωγή +CommandsToDisableForeignKeysForImportWarning=Υποχρεωτικό εάν θέλετε να μπορείτε να επαναφέρετε το sql dump αργότερα +ExportCompatibility=Συμβατότητα του αρχείου εξαγωγής που δημιουργήθηκε ExportUseMySQLQuickParameter=Χρησιμοποιήστε την παράμετρο --quick -ExportUseMySQLQuickParameterHelp=Η παράμετρος '--quick' βοηθά να περιοριστεί η χρήση μνήμης για μεγάλους πίνακες -MySqlExportParameters=Παραμετροι Εξαγωγών MySQL -PostgreSqlExportParameters= Παράμετροι Εξαγωγών PostgreSQL -UseTransactionnalMode=Χρήση Συναλλακτικής Λειτουργίας -FullPathToMysqldumpCommand=Πλήρης διαδρομή προς mysqldump εντολή -FullPathToPostgreSQLdumpCommand=Η πλήρης διαδρομή προς pg_dump εντολή +ExportUseMySQLQuickParameterHelp=Η παράμετρος '--quick' βοηθά να περιοριστεί η χρήση μνήμης RAM για μεγάλους πίνακες +MySqlExportParameters=Παράμετροι εξαγωγής MySQL +PostgreSqlExportParameters= Παράμετροι εξαγωγής PostgreSQL +UseTransactionnalMode=Χρησιμοποιήστε transactional mode +FullPathToMysqldumpCommand=Πλήρης διαδρομή για την εντολή mysqldump +FullPathToPostgreSQLdumpCommand=Πλήρης διαδρομή για την εντολή pg_dump AddDropDatabase=Προσθήκη εντολής DROP DATABASE AddDropTable=Προσθήκη εντολής DROP TABLE ExportStructure=Δομή -NameColumn=Όνοματα Στηλών +NameColumn=Ονόματα Στηλών ExtendedInsert=Εκτεταμένη INSERT -NoLockBeforeInsert=Δεν υπάρχουν εντολές κλειδώματος ασφαλείας γύρω από INSERT -DelayedInsert=Καθυστέρηση ένθετου +NoLockBeforeInsert=No lock commands around INSERT +DelayedInsert=Delayed insert EncodeBinariesInHexa=Κωδικοποίηση δυαδικών δεδομένων σε δεκαεξαδική IgnoreDuplicateRecords=Αγνόηση σφαλμάτων διπλότυπων εγγραφών (INSERT IGNORE) AutoDetectLang=Αυτόματη Ανίχνευση (γλώσσα φυλλομετρητή) -FeatureDisabledInDemo=Δυνατότητα απενεργοποίησης στο demo +FeatureDisabledInDemo=Η δυνατότητα απενεργοποιήθηκε στο demo FeatureAvailableOnlyOnStable=Το χαρακτηριστικό είναι διαθέσιμο μόνο σε επίσημες σταθερές εκδόσεις -BoxesDesc=Τα γραφικά στοιχεία είναι στοιχεία που εμφανίζουν ορισμένες πληροφορίες που μπορείτε να προσθέσετε για να προσαρμόσετε ορισμένες σελίδες. Μπορείτε να επιλέξετε μεταξύ εμφάνισης του γραφικού στοιχείου ή όχι επιλέγοντας τη σελίδα προορισμού και κάνοντας κλικ στην επιλογή 'Ενεργοποίηση' ή κάνοντας κλικ στο καλάθι απορριμάτων για να το απενεργοποιήσετε. -OnlyActiveElementsAreShown=Μόνο στοιχεία από ενεργοποιημένα modules προβάλλονται. -ModulesDesc=Οι ενότητες / εφαρμογές καθορίζουν ποιες δυνατότητες είναι διαθέσιμες στο λογισμικό. Ορισμένες λειτουργικές μονάδες απαιτούν να δοθούν δικαιώματα στους χρήστες μετά την ενεργοποίηση της λειτουργικής μονάδας. Κάντε κλικ στο κουμπί on / off %s κάθε μονάδας για να ενεργοποιήσετε ή να απενεργοποιήσετε μια ενότητα / εφαρμογή. -ModulesDesc2=Κάντε κλικ στο κουμπί τροχού %s για να διαμορφώσετε τη μονάδα/εφαρμογή. +BoxesDesc=Τα γραφικά στοιχεία είναι καρτέλες που εμφανίζουν ορισμένες πληροφορίες που μπορείτε να προσθέσετε για να εξατομικεύσετε ορισμένες σελίδες. Μπορείτε να επιλέξετε μεταξύ εμφάνισης του γραφικού στοιχείου ή όχι επιλέγοντας τη σελίδα προορισμού και κάνοντας κλικ στην «Ενεργοποίηση» ή κάνοντας κλικ στον κάδο απορριμμάτων για να το απενεργοποιήσετε. +OnlyActiveElementsAreShown=Εμφανίζονται μόνο στοιχεία από ενεργοποιημένες ενότητες. +ModulesDesc=Οι ενότητες / εφαρμογές καθορίζουν ποιες δυνατότητες είναι διαθέσιμες στο λογισμικό. Ορισμένες ενότητες απαιτούν να δοθούν δικαιώματα στους χρήστες μετά την ενεργοποίηση τους. Κάντε κλικ στο κουμπί on / off %s κάθε ενότητας/εφαρμογής για να την ενεργοποιήσετε ή να την απενεργοποιήσετε. +ModulesDesc2=Κάντε κλικ στην τροχαλία %s για να διαμορφώσετε την ενότητα/εφαρμογή. ModulesMarketPlaceDesc=Μπορείτε να βρείτε περισσότερες ενότητες για να κατεβάσετε σε εξωτερικές ιστοσελίδες στο Internet ... -ModulesDeployDesc=Εάν το επιτρέπουν τα δικαιώματα στο σύστημα αρχείων σας, μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για την ανάπτυξη εξωτερικής μονάδας. Η ενότητα θα είναι στη συνέχεια ορατή στην καρτέλα %s . -ModulesMarketPlaces=Βρείτε εξωτερική εφαρμογή / ενότητες -ModulesDevelopYourModule=Δημιουργήστε τη δική σας εφαρμογή / ενότητες -ModulesDevelopDesc=Μπορείτε επίσης να αναπτύξετε τη δική σας ενότητα ή να βρείτε συνεργάτη για να αναπτύξετε μία για εσάς. -DOLISTOREdescriptionLong=Αντί να ενεργοποιήσετε τον ιστότοπο www.dolistore.com για να βρείτε μια εξωτερική ενότητα, μπορείτε να χρησιμοποιήσετε αυτό το ενσωματωμένο εργαλείο που θα εκτελέσει την αναζήτηση στην εξωτερική αγορά για εσάς (μπορεί να είναι αργή, να χρειάζεστε πρόσβαση στο διαδίκτυο) ... -NewModule=Νέο Άρθρωμα -FreeModule=Δωρεάν/Ελεύθερο -CompatibleUpTo=Συμβατό με την έκδοση %s +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=Δείτε την ρύθμιση του module %s +SeeInMarkerPlace=Δείτε στο Market place +SeeSetupOfModule=Δείτε στην ρύθμιση της ενότητας %s SetOptionTo=Ορίστε την επιλογή %s σε %s Updated=Ενημερωμένο AchatTelechargement=Αγόρασε / Μεταφόρτωσε -GoModuleSetupArea=Για να ενεργοποιήσετε/εγκαταστήσετε ενα νέο module, πηγαίνετε στην περιοχή εγκατάστασης Modules/Applications: %s. -DoliStoreDesc=Το DoliStore, είναι η επίσημη περιοχή για να βρείτε εξωτερικά modules για το 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=Μερικές λύσεις για να αναπτύξεις το δικό σου μοντέλο... +GoModuleSetupArea=Για να αναπτύξετε/εγκαταστήσετε μια νέα ενότητα, μεταβείτε στον τομέα ρύθμισης ενοτήτων: %s . +DoliStoreDesc=DoliStore, η επίσημη αγορά για εξωτερικές ενότητες Dolibarr ERP/CRM +DoliPartnersDesc=Κατάλογος εταιρειών που παρέχουν προσαρμοσμένες ενότητες ή δυνατότητες.
    Σημείωση: δεδομένου ότι το Dolibarr είναι μια εφαρμογή ανοιχτού κώδικα, οποιοσδήποτε έμπειρος στον προγραμματισμό PHP θα πρέπει να ειναι ικανός να αναπτύξει μία ενότητα. +WebSiteDesc=Εξωτερικοί ιστότοποι για περισσότερες ενότητες ... +DevelopYourModuleDesc=Μερικές λύσεις για να αναπτύξετε τη δική σας ενότητα... URL=URL RelativeURL=Σχετική διεύθυνση URL -BoxesAvailable=Διαθέσιμα Widgets -BoxesActivated=Ενεργοποιημένα Widgets +BoxesAvailable=Διαθέσιμα γραφικά στοιχεία +BoxesActivated=Ενεργοποιημένα γραφικά στοιχεία ActivateOn=Ενεργοποιήστε στις ActiveOn=Ενεργοποιήθηκε στις ActivatableOn=Δυνατότητα ενεργοποίησης σε SourceFile=Πηγαίο αρχείο -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Διαθέσιμο μόνο αν το JavaScript δεν είναι απενεργοποιημένο +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Διατίθεται μόνο εάν η JavaScript δεν είναι απενεργοποιημένη Required=Υποχρεωτικό UsedOnlyWithTypeOption=Χρησιμοποιείται μόνο από κάποια επιλογή της ατζέντας Security=Ασφάλεια -Passwords=Συνθηματικά -DoNotStoreClearPassword=Κρυπτογράφηση κωδικών πρόσβασης αποθηκευμένων στη βάση δεδομένων (ΟΧΙ ως απλό κείμενο). Συνιστάται ιδιαίτερα να ενεργοποιήσετε αυτήν την επιλογή. -MainDbPasswordFileConfEncrypted=Κρυπτογράφηση κωδικού πρόσβασης βάσης δεδομένων αποθηκευμένου στο conf.php. Συνιστάται ιδιαίτερα να ενεργοποιήσετε αυτήν την επιλογή. +Passwords=Κωδικοί πρόσβασης +DoNotStoreClearPassword=Κρυπτογράφηση κωδικών πρόσβασης που είναι αποθηκευμένοι στη βάση δεδομένων (ΟΧΙ ως απλό κείμενο). Συνιστάται ανεπιφύλακτα να ενεργοποιήσετε αυτήν την επιλογή. +MainDbPasswordFileConfEncrypted=Κρυπτογράφηση κωδικού πρόσβασης βάσης δεδομένων που είναι αποθηκευμένος στο conf.php. Συνιστάται ανεπιφύλακτα να ενεργοποιήσετε αυτήν την επιλογή. InstrucToEncodePass=Για κρυπτογραφημένο κωδικό στο αρχείο conf.php, κάντε αντικατάσταση στη γραμμή
    $dolibarr_main_db_pass="...";
    με
    $dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=Για να αποκωδικοποιήσετε τον κωδικό πρόσβασης (διαγραφή) στο αρχείο conf.php , αντικαταστήστε τη γραμμή
    $ dolibarr_main_db_pass = "κρυπτογραφημένο: ...";
    με
    $ dolibarr_main_db_pass = "%s"; -ProtectAndEncryptPdfFiles=Προστατεύστε τα παραγόμενα αρχεία PDF. Αυτό δεν συνιστάται επειδή διασπά το μεγαλύτερο μέρος της δημιουργίας PDF. -ProtectAndEncryptPdfFilesDesc=Η προστασία ενός εγγράφου PDF το διατηρεί διαθέσιμο για ανάγνωση και εκτύπωση με οποιοδήποτε πρόγραμμα περιήγησης PDF. Ωστόσο, η επεξεργασία και η αντιγραφή δεν είναι πλέον δυνατές. Σημειώστε ότι με τη χρήση αυτής της δυνατότητας η δημιουργία ενός σφαιρικού συγχωνευμένου αρχείου PDF δεν λειτουργεί. +InstrucToClearPass=Για να γίνει αποκωδικοποίηση (διαγραφή) του κωδικού πρόσβασης στο αρχείο conf.php , αντικαταστήστε τη γραμμή
    $dolibarr_main_db_pass="crypted:...";
    με
    $dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Προστασία των δημιουργημένων αρχείων PDF. Αυτό ΔΕΝ συνιστάται καθώς διακόπτει τη μαζική παραγωγή PDF. +ProtectAndEncryptPdfFilesDesc=Η προστασία ενός εγγράφου PDF το διατηρεί διαθέσιμο για ανάγνωση και εκτύπωση με οποιοδήποτε πρόγραμμα περιήγησης PDF. Ωστόσο, η επεξεργασία και η αντιγραφή δεν είναι πλέον δυνατή. Σημειώστε ότι η χρήση αυτής της δυνατότητας κάνει τη δημιουργία ενός καθολικά συγχωνευμένου PDF να μην λειτουργεί. Feature=Χαρακτηριστικό DolibarrLicense=Άδεια χρήσης Developpers=Προγραμματιστές/συνεργάτες OfficialWebSite=Επίσημη ιστοσελίδα Dolibarr OfficialWebSiteLocal=Τοπική ιστοσελίδα (%s) -OfficialWiki=Τεκμηρίωση Dolibarr / Wiki +OfficialWiki=Τεκμηρίωση / Wiki του Dolibarr OfficialDemo=Δοκιμαστική έκδοση Dolibarr -OfficialMarketPlace=Επίσημη ιστοσελίδα για εξωτερικά modules/πρόσθετα -OfficialWebHostingService=Υπηρεσίες που αναφέρονται για web hosting (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners +OfficialMarketPlace=Επίσημη αγορά για εξωτερικές ενότητες/πρόσθετα +OfficialWebHostingService=Προτεινόμενες υπηρεσίες φιλοξενίας ιστοσελίδων (Cloud hosting) +ReferencedPreferredPartners=Προτιμώμενοι Συνεργάτες OtherResources=Άλλοι πόροι ExternalResources=Εξωτερικοί πόροι SocialNetworks=Κοινωνικά δίκτυα -SocialNetworkId=Αναγνωριστικό ID κοινωνικού δικτύου -ForDocumentationSeeWiki=Για την τεκμηρίωση χρήστη ή προγραμματιστή (έγγραφο, συχνές ερωτήσεις...),
    ρίξτε μια ματιά στο Dolibarr Wiki:
    %s -ForAnswersSeeForum=Για οποιεσδήποτε άλλες ερωτήσεις/βοήθεια, μπορείτε να χρησιμοποιήσετε το forum του Dolibarr:
    %s +SocialNetworkId=Αναγνωριστικό κοινωνικού δικτύου +ForDocumentationSeeWiki=Για την τεκμηρίωση χρήστη ή προγραμματιστή (έγγραφο, συχνές ερωτήσεις...),
    ρίξτε μια ματιά στο Dolibarr Wiki:
    %s +ForAnswersSeeForum=Για οποιεσδήποτε άλλες ερωτήσεις/βοήθεια, μπορείτε να χρησιμοποιήσετε το forum του Dolibarr:
    %s HelpCenterDesc1=Εδώ είναι μερικοί πόροι για να λάβετε βοήθεια και υποστήριξη με τον Dolibarr. HelpCenterDesc2=Μερικοί από αυτούς τους πόρους είναι διαθέσιμοι μόνο στα αγγλικά . CurrentMenuHandler=Τρέχον μενού MeasuringUnit=Μονάδα μέτρησης LeftMargin=Αριστερό περιθώριο -TopMargin=Κορυφή περιθώριο +TopMargin=Επάνω περιθώριο PaperSize=Τύπος χαρτιού Orientation=Προσανατολισμός SpaceX=Διάστημα Χ -SpaceY=Χώρος Y +SpaceY=Διάστημα Υ FontSize=Μέγεθος γραμματοσειράς Content=Περιεχόμενο -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) -NoticePeriod=Περίοδος ειδοποίησης -NewByMonth=Νέο μήνα -Emails=Ηλεκτρονικά μηνύματα -EMailsSetup=Ρύθμιση ηλεκτρονικού ταχυδρομείου +ContentForLines=Περιεχόμενο προς εμφάνιση για κάθε προϊόν ή υπηρεσία (από τη μεταβλητή __ΓΡΑΜΜΕΣ__ Περιεχομένου) +NoticePeriod=Περίοδος υποβολής αίτησης +NewByMonth=Νέο ανά μήνα +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=Host SMTP / SMTPS (προεπιλεγμένη τιμή στο 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_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_EMAIL_FROM=Email αποστολέα για αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου (προεπιλεγμένη τιμή στο php.ini: %s ) -MAIN_MAIL_ERRORS_TO=Το μήνυμα ηλεκτρονικού ταχυδρομείου που χρησιμοποιείται για σφάλματα επιστρέφει τα μηνύματα ηλεκτρονικού ταχυδρομείου (σφάλματα πεδίων "σε" στα αποστέλλοντα μηνύματα ηλεκτρονικού ταχυδρομείου) -MAIN_MAIL_AUTOCOPY_TO= Αντιγράψτε (Bcc) όλα τα emails που στάλθηκαν +MAIN_MAIL_ERRORS_TO=Το Email που χρησιμοποιείται για σφάλματα επιστρέφει τα email (με πεδία 'Errors-To' στα απεσταλμένα email) +MAIN_MAIL_AUTOCOPY_TO= Αντιγράψτε (Bcc Κρυφή κοινοποίηση) όλα τα αποσταλμένα email στο MAIN_DISABLE_ALL_MAILS=Απενεργοποιήστε όλες τις αποστολές ηλεκτρονικού ταχυδρομείου (για δοκιμαστικούς σκοπούς ή demos) MAIN_MAIL_FORCE_SENDTO=Στείλτε όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου σε (αντί για πραγματικούς παραλήπτες, για σκοπούς δοκιμής) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Προτείνετε μηνύματα ηλεκτρονικού ταχυδρομείου των υπαλλήλων (αν οριστεί) στη λίστα προκαθορισμένων παραληπτών κατά τη σύνταξη νέου μηνύματος ηλεκτρονικού ταχυδρομείου -MAIN_MAIL_SENDMODE=Μέθοδος αποστολής ηλεκτρονικού ταχυδρομείου +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Προτείνετε email υπάλληλων σας (εάν έχουν οριστεί) στη λίστα των προκαθορισμένων παραληπτών κατά τη σύνταξη ενός νέου email +MAIN_MAIL_SENDMODE=Μέθοδος αποστολής Email 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_SMTP_ALLOW_SELF_SIGNED=Να επιτρέπονται τα αυτο-υπογεγραμμένα πιστοποιητικά MAIN_MAIL_EMAIL_DKIM_ENABLED=Χρησιμοποιήστε το DKIM για να δημιουργήσετε υπογραφή ηλεκτρονικού ταχυδρομείου MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain για χρήση με dkim MAIN_MAIL_EMAIL_DKIM_SELECTOR=Όνομα επιλογέα dkim @@ -312,114 +312,114 @@ MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Ιδιωτικό κλειδί για υπογρ MAIN_DISABLE_ALL_SMS=Απενεργοποιήστε όλες τις αποστολές SMS (για δοκιμαστικούς σκοπούς ή επιδείξεις) MAIN_SMS_SENDMODE=Μέθοδος που θέλετε να χρησιμοποιηθεί για την αποστολή SMS MAIN_MAIL_SMS_FROM=Προεπιλεγμένος αριθμός τηλεφώνου αποστολέα για αποστολή SMS -MAIN_MAIL_DEFAULT_FROMTYPE=Προεπιλεγμένο μήνυμα αποστολέα για μη αυτόματη αποστολή (ηλεκτρονικό ταχυδρομείο χρήστη ή εταιρικό μήνυμα) -UserEmail=Ηλεκτρονικό ταχυδρομείο χρήστη -CompanyEmail=Εταιρεία ηλεκτρονικού ταχυδρομείου -FeatureNotAvailableOnLinux=Αυτή η λειτουργία δεν είναι διαθέσιμη σε συστήματα Unix like. Δοκιμάστε το πρόγραμμα sendmail τοπικά. -FixOnTransifex=Διορθώστε τη μετάφραση στην ηλεκτρονική πλατφόρμα μετάφρασης του έργου -SubmitTranslation=Εάν η μετάφραση για αυτήν τη γλώσσα δεν είναι πλήρης ή βρίσκετε σφάλματα, μπορείτε να διορθώσετε αυτό με την επεξεργασία αρχείων στον κατάλογο langs / %s και να υποβάλετε την αλλαγή σας στο 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=Διαχείριση Αρθρώματος -ModulesSetup=Ενότητες / Ρύθμιση εφαρμογής +MAIN_MAIL_DEFAULT_FROMTYPE=Προεπιλεγμένο email αποστολέα για μη αυτόματη αποστολή (email χρήστη ή email εταιρείας) +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 +ModuleSetup=Ρύθμιση ενότητας +ModulesSetup=Ρύθμιση ενοτήτων/εφαρμογών ModuleFamilyBase=Σύστημα ModuleFamilyCrm=Διαχείριση Πελατειακών Σχέσεων (CRM) ModuleFamilySrm=Διαχείριση σχέσεων προμηθευτών (VRM) ModuleFamilyProducts=Διαχείριση προϊόντων (PM) -ModuleFamilyHr=Διαχείριση ανθρώπινων πόρων -ModuleFamilyProjects=Projects/Συμμετοχικές εργασίες -ModuleFamilyOther=Άλλο -ModuleFamilyTechnic=Εργαλεία πολλαπλών modules -ModuleFamilyExperimental=Πειραματικά modules -ModuleFamilyFinancial=Χρηματοοικονομικά Modules (Λογιστική/Χρηματοοικονομικά) +ModuleFamilyHr=Διαχείριση ανθρώπινου Δυναμικού (HR) +ModuleFamilyProjects=Έργα/Συνεργατική εργασία +ModuleFamilyOther=Άλλα +ModuleFamilyTechnic=Εργαλεία πολλαπλών ενοτήτων +ModuleFamilyExperimental=Πειραματικές ενότητες +ModuleFamilyFinancial=Οικονομικές Ενότητες (Λογιστική/Διαχείριση Διαθεσίμων) ModuleFamilyECM=Διαχείριση Ηλεκτρονικού Περιεχομένου (ECM) -ModuleFamilyPortal=Ιστοσελίδες και άλλη μετωπική εφαρμογή -ModuleFamilyInterface=Διεπαφές με εξωτερικά συστήματα +ModuleFamilyPortal=Ιστοσελίδες και άλλες front end εφαρμογές +ModuleFamilyInterface=Διασύνδεση με εξωτερικά συστήματα MenuHandlers=Διαχειριστές μενού MenuAdmin=Επεξεργαστής μενού -DoNotUseInProduction=Να μην χρησιμοποιείται για παραγωγή +DoNotUseInProduction=Να μη χρησιμοποιείται σε παραγωγικό περιβάλλον ThisIsProcessToFollow=Διαδικασία αναβάθμισης: ThisIsAlternativeProcessToFollow=Αυτή είναι μια εναλλακτική ρύθμιση για χειροκίνητη επεξεργασία: StepNb=Βήμα %s FindPackageFromWebSite=Βρείτε ένα πακέτο που παρέχει τις λειτουργίες που χρειάζεστε (για παράδειγμα στην επίσημη ιστοσελίδα %s). -DownloadPackageFromWebSite=Λήψη του πακέτου (για παράδειγμα από την επίσημη ιστοσελίδα %s). -UnpackPackageInDolibarrRoot=Αποσυμπιέστε / αποσυνδέστε τα συσκευασμένα αρχεία στον κατάλογο του διακομιστή Dolibarr : %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=Η εγκατάσταση της μονάδας ολοκληρώθηκε. Ωστόσο, πρέπει να ενεργοποιήσετε και να ρυθμίσετε την ενότητα στην εφαρμογή σας μεταβαίνοντας στις ενότητες εγκατάστασης σελίδας: %s . -NotExistsDirect=Ο εναλλακτικός ριζικός κατάλογος δεν ορίζεται σε έναν υπάρχοντα κατάλογο.
    -InfDirAlt=Από την έκδοση 3, είναι δυνατό να οριστεί ένας εναλλακτικός κατάλογος ρίζας. Αυτό σας επιτρέπει να αποθηκεύετε, σε έναν ειδικό κατάλογο, plug-ins και προσαρμοσμένα πρότυπα.
    Απλά δημιουργήστε έναν κατάλογο στη ρίζα του Dolibarr (π.χ.: custom).
    -InfDirExample=
    Στη συνέχεια, δηλώστε το στο αρχείο conf.php
    $ dolibarr_main_url_root_alt = '/ προσαρμοσμένο'
    $ dolibarr_main_document_root_alt = '/ διαδρομή / του / dolibarr / htdocs / custom'
    Εάν οι γραμμές αυτές σχολιάζονται με "#", για να τις ενεργοποιήσετε, απλώς αποσυνδέστε την αφαιρώντας τον χαρακτήρα "#". +DownloadPackageFromWebSite=Λήψη πακέτου (για παράδειγμα από την επίσημη ιστοσελίδα %s). +UnpackPackageInDolibarrRoot=Αποσυμπιέστε τα αρχεία στον κατάλογο του διακομιστή Dolibarr : %s +UnpackPackageInModulesRoot=Για να αναπτύξετε/εγκαταστήσετε μια εξωτερική ενότητα, πρέπει να αποσυμπιέσετε το αρχείο αρχειοθέτησης στον κατάλογο του διακομιστή που είναι αφιερωμένος σε εξωτερικές ενότητες:
    %s +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'
    Αν αυτές οι γραμμές ειναι "σχολιασμένες" έχουν δηλαδή ενα "#" στην αρχή, για να ενεργοποιηθούν , απλώς καταργήστε το σχόλιο αφαιρώντας τον χαρακτήρα "#". YouCanSubmitFile=Μπορείτε να ανεβάσετε το αρχείο .zip του πακέτου ενότητας από εδώ: CurrentVersion=Έκδοση Dolibarr CallUpdatePage=Περιηγηθείτε στη σελίδα που ενημερώνει τη δομή και τα δεδομένα της βάσης δεδομένων: %s. LastStableVersion=Τελευταία σταθερή έκδοση LastActivationDate=Τελευταία ημερομηνία ενεργοποίησης -LastActivationAuthor=Τελευταίος συντάκτης ενεργοποίησης -LastActivationIP=Τελευταία IP ενεργοποίησης -LastActivationVersion=Τελευταία έκδοση ενεργοποίησης +LastActivationAuthor=Χρήστης τελευταίας ενεργοποίησης +LastActivationIP=IP τελευταίας ενεργοποίησης +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.
    +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=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=Παράδειγμα για το 99ο %s του τρίτου μέρους TheCompany, με ημερομηνία 2007-01-31:
    -GenericMaskCodes4b=Το παράδειγμα του τρίτου μέρους δημιουργήθηκε στις 2007-03-01:
    -GenericMaskCodes4c=Παράδειγμα το προϊόν δημιουργήθηκε στις 2007-03-01:
    -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" +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' GenericNumRefModelDesc=Επιστρέφει έναν παραμετροποιήσημο αριθμό σύμφωνα με μία ορισμένη μάσκα. ServerAvailableOnIPOrPort=Ο διακομιστής είναι διαθέσιμος στην διεύθυνση %s στην θύρα %s ServerNotAvailableOnIPOrPort=Ο διακομιστής δεν είναι διαθέσιμος στην διεύθυνση %s στην θύρα %s -DoTestServerAvailability=Έλεγχος διασύνδεσης server -DoTestSend=Δοκιμή Αποστολής +DoTestServerAvailability=Δοκιμή συνδεσιμότητας διακομιστή +DoTestSend=Δοκιμαστική αποστολή DoTestSendHTML=Δοκιμή αποστολής HTML -ErrorCantUseRazIfNoYearInMask=Σφάλμα, δεν μπορείτε να χρησιμοποιήσετε την επιλογή @ για να μηδενίσετε το μετρητή για κάθε έτος, εάν η ακολουθία {yy} ή {yyyy} δεν είναι μάσκα. +ErrorCantUseRazIfNoYearInMask=Σφάλμα, δεν μπορείτε να χρησιμοποιήσετε την επιλογή @ για να μηδενίσετε το μετρητή για κάθε έτος, εάν η ακολουθία {yy} ή {yyyy} δεν είναι στη μάσκα. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Δεν μπορείτε να χρησιμοποιήσετε την επιλογή @ αν η ακολουθία {yy}{mm} ή {yyyy}{mm} δεν είναι στην μάσκα. UMask=Παράμετρος UMask για νέα αρχεία σε συστήματα αρχείων συστημάτων Unix/Linux/BSD/Mac. -UMaskExplanation=Αυτή η παράμετρος σας επιτρέπει να ορίσετε προεπιλεγμένα δικαιώματα αρχείων για αρχεία που δημιουργεί το Dolibarr στον διακομιστή (κατά την διάρκεια μεταφόρτωσης π.χ.).
    Πρέπει να είναι οκταδικής μορφής (για παράδειγμα, 0666 σημαίνει εγγραφή και ανάγνωση για όλους).
    Αυτή η παράμετρος είναι άχρηστη σε διακομιστές Windows. -SeeWikiForAllTeam=Ρίξτε μια ματιά στη σελίδα του Wiki για μια λίστα με τους συντελεστές και την οργάνωσή τους -UseACacheDelay= Καθυστέρηση για την τοποθέτηση απόκρισης εξαγωγής στην προσωρινή μνήμη σε δευτερόλεπτα (0 ή άδεια για μη χρήση προσωρινής μνήμης) +UMaskExplanation=Αυτή η παράμετρος σας επιτρέπει να ορίσετε προεπιλεγμένα δικαιώματα αρχείων για αρχεία που δημιουργεί το Dolibarr στον διακομιστή (κατά την διάρκεια μεταφόρτωσης π.χ.).
    Πρέπει να είναι οκταδικής μορφής (για παράδειγμα, 0666 που σημαίνει εγγραφή και ανάγνωση για όλους).
    Αυτή η παράμετρος είναι άχρηστη σε διακομιστές Windows. +SeeWikiForAllTeam=Δείτε στη σελίδα του Wiki τη λίστα με τους συντελεστές και τους οργανισμούς τους +UseACacheDelay= Καθυστέρηση για την ανταπόκριση εξαγωγής προσωρινής μνήμης σε δευτερόλεπτα (0 ή κενό για μη χρήση προσωρινής μνήμης) DisableLinkToHelpCenter=Απόκρυψη του συνδέσμου " Χρειάζεστε βοήθεια ή υποστήριξη " στη σελίδα σύνδεσης DisableLinkToHelp=Απόκρυψη του συνδέσμου προς την ηλεκτρονική βοήθεια " %s " -AddCRIfTooLong=Δεν υπάρχει αυτόματη περιτύλιξη κειμένου, το κείμενο που είναι πολύ μεγάλο δεν θα εμφανιστεί στα έγγραφα. Παρακαλώ προσθέστε τις επιστροφές μεταφοράς στην περιοχή κειμένου, αν χρειαστεί. -ConfirmPurge=Είστε βέβαιοι ότι θέλετε να εκτελέσετε αυτόν τον καθαρισμό;
    Αυτό θα διαγράψει οριστικά όλα τα αρχεία δεδομένων σας χωρίς τρόπο να τα επαναφέρετε (αρχεία ECM, συνημμένα αρχεία ...). +AddCRIfTooLong=Δεν υπάρχει αυτόματη αναδίπλωση κειμένου, το κείμενο που είναι πολύ μεγάλο δεν θα εμφανιστεί στα έγγραφα. Παρακαλώ προσθέστε επιστροφές μεταφοράς στην περιοχή κειμένου, αν χρειαστεί. +ConfirmPurge=Είστε σίγουροι ότι θέλετε να εκτελέσετε αυτή την εκκαθάριση;
    Αυτό θα διαγράψει οριστικά όλα τα αρχεία δεδομένων σας χωρίς τρόπο να τα επαναφέρετε (αρχεία ECM, συνημμένα αρχεία ...). MinLength=Ελάχιστο μήκος LanguageFilesCachedIntoShmopSharedMemory=Τα αρχεία τύπου .lang έχουν φορτωθεί στην κοινόχρηστη μνήμη LanguageFile=Αρχείο γλώσσας ExamplesWithCurrentSetup=Παραδείγματα με την τρέχουσα διαμόρφωση -ListOfDirectories=Λίστα φακέλων προτύπων OpenDocument -ListOfDirectoriesForModelGenODT=Λίστα καταλόγων που περιέχουν αρχεία προτύπων με μορφή OpenDocument.

    Βάλτε εδώ την πλήρη διαδρομή των καταλόγων.
    Προσθέστε μια επιστροφή μεταφοράς μεταξύ του καταλόγου eah.
    Για να προσθέσετε έναν κατάλογο της λειτουργικής μονάδας 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=
    Για να μάθετε πως να δημιουργήσετε τα δικά σας αρχεία προτύπων, πριν τα αποθηκεύσετε σε αυτούς τους φακέλους, διαβάστε την τεκμηρίωση στο wiki: +ListOfDirectories=Λίστα φακέλων με πρότυπα εγγράφων τύπου OpenDocument +ListOfDirectoriesForModelGenODT=Λίστα καταλόγων που περιέχουν πρότυπα αρχείων σε μορφή OpenDocument.

    Βάλτε εδώ την πλήρη διαδρομή των καταλόγων.
    Προσθέστε μια επιστροφή μεταφοράς μεταξύ κάθε καταλόγου.
    Για να προσθέσετε έναν κατάλογο της ενότητας GED, προσθέστε εδώ DOL_DATA_ROOT/ecm/το όνομα καταλόγου σας.

    Τα αρχεία σε αυτούς τους καταλόγους πρέπει να τελειώνουν σε .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=Οι παρακάτω εικόνες θα εμφανίζονται στον πίνακα οργάνων όταν ο αριθμός των καθυστερημένων ενεργειών φτάσει τις ακόλουθες τιμές: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) +FirstnameNamePosition=Θέση Ονόματος/Επιθέτου +DescWeather=Οι παρακάτω εικόνες θα εμφανίζονται στον πίνακα ελέγχου όταν ο αριθμός των καθυστερημένων ενεργειών φτάσει τις ακόλουθες τιμές: +KeyForWebServicesAccess=Κλειδί για τη χρήση Υπηρεσιών Ιστού (παράμετρος "dolibarrkey" σε υπηρεσίες web) TestSubmitForm=Φόρμα δοκιμής εισαγωγής δεδομένων -ThisForceAlsoTheme=Χρησιμοποιώντας αυτόν τον διαχειριστή μενού θα χρησιμοποιήσει επίσης το δικό του θέμα ανεξάρτητα από την επιλογή του χρήστη. Επίσης, αυτός ο διαχειριστής μενού που ειδικεύεται στα smartphones δεν λειτουργεί σε όλα τα smartphones. Χρησιμοποιήστε άλλο διαχειριστή μενού εάν αντιμετωπίζετε προβλήματα με τη δική σας. +ThisForceAlsoTheme=Η χρήση αυτού του διαχειριστή μενού θα εμφανίζει επίσης το δικό του θέμα ανεξάρτητα από την επιλογή του χρήστη. Επίσης, αυτός ο διαχειριστής μενού παρόλο που είναι εξειδικευμένος για smartphone δεν λειτουργεί σε όλα τα smartphone. Χρησιμοποιήστε άλλο διαχειριστή μενού εάν αντιμετωπίζετε προβλήματα με το δικό σας. ThemeDir=Φάκελος skins -ConnectionTimeout=Χρονικό όριο σύνδεσης +ConnectionTimeout=Λήξη χρονικού ορίου σύνδεσης ResponseTimeout=Λήξη χρόνου αναμονής απάντησης -SmsTestMessage=Δοκιμαστικό μήνυμα από __PHONEFROM__ να __PHONETO__ -ModuleMustBeEnabledFirst=Το άρθρωμα %s πρέπει να ενεργοποιηθεί πρώτα εάν χρειάζεστε συτή τη λειτουργία. +SmsTestMessage=Δοκιμαστικό μήνυμα από __PHONEFROM__ to __PHONETO__ +ModuleMustBeEnabledFirst=Η ενότητα %s πρέπει να ενεργοποιηθεί πρώτα εάν χρειάζεστε αυτή τη λειτουργία. SecurityToken=Security Token -NoSmsEngine=Δεν διατίθεται διαχειριστής αποστολέων SMS. Ένας διαχειριστής αποστολέα SMS δεν είναι εγκατεστημένος με την προεπιλεγμένη διανομή επειδή εξαρτάται από έναν εξωτερικό προμηθευτή, αλλά μπορείτε να βρείτε μερικούς από τους %s +NoSmsEngine=Δεν υπάρχει διαθέσιμη εφαρμογή αποστολών SMS. Καμιά εφαρμογή αποστολών SMS δεν είναι εγκατεστημένη με την προεπιλεγμένη διανομή επειδή εξαρτάται από έναν εξωτερικό προμηθευτή, αλλά μπορείτε να βρείτε μερικούς εδώ %s PDF=PDF PDFDesc=Καθολικές επιλογές για τη δημιουργία PDF -PDFOtherDesc=Επιλογή PDF, συγκεκριμένη για ορισμένες ενότητες +PDFOtherDesc=Επιλογή PDF αποκλειστικά για ορισμένες ενότητες PDFAddressForging=Κανόνες για την ενότητα διευθύνσεων -HideAnyVATInformationOnPDF=Απόκρυψη όλων των πληροφοριών που σχετίζονται με το φόρο επί των πωλήσεων / ΦΠΑ -PDFRulesForSalesTax=Κανόνες φόρου επί των πωλήσεων / ΦΠΑ +HideAnyVATInformationOnPDF=Απόκρυψη όλων των πληροφοριών που σχετίζονται με το Φόρο επί των πωλήσεων / ΦΠΑ +PDFRulesForSalesTax=Κανόνες Φόρου επί των πωλήσεων / ΦΠΑ PDFLocaltax=Κανόνες για %s -HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT +HideLocalTaxOnPDF=Απόκρυψη ποσοστού %s στη στήλη Φόρος επί των πωλήσεων / ΦΠΑ HideDescOnPDF=Απόκρυψη περιγραφής προϊόντων -HideRefOnPDF=Απόκρυψη προϊόντων ref. +HideRefOnPDF=Απόκρυψη αναφοράς προϊόντων HideDetailsOnPDF=Απόκρυψη λεπτομερειών γραμμών προϊόντων PlaceCustomerAddressToIsoLocation=Χρησιμοποιήστε τη γαλλική τυπική θέση (La Poste) για τη θέση της διεύθυνσης πελατών Library=Βιβλιοθήκη UrlGenerationParameters=Παράμετροι για δημιουργία ασφαλών URL -SecurityTokenIsUnique=Χρησιμοποιήστε μια μοναδική παράμετρο securekey για κάθε διεύθυνση URL -EnterRefToBuildUrl=Εισάγετε αναφοράς για %s αντικείμενο +SecurityTokenIsUnique=Χρησιμοποιήστε μια μοναδική παράμετρο κλειδιού ασφαλείας για κάθε σύνδεσμο +EnterRefToBuildUrl=Εισαγάγετε αναφορά για το αντικείμενο %s GetSecuredUrl=Πάρτε υπολογιζόμενο URL ButtonHideUnauthorized=Απόκρυψη κουμπιών μη εξουσιοδοτημένων ενεργειών και για εσωτερικούς χρήστες (διαφορετικά απλώς απενεργοποιημένα ) OldVATRates=Παλιός συντελεστής ΦΠΑ @@ -431,8 +431,8 @@ String=String String1Line=Συμβολοσειρά (1 γραμμή) TextLong=Μεγάλο κείμενο TextLongNLines=Μεγάλο κείμενο (n γραμμές) -HtmlText=Html κείμενο -Int=Integer +HtmlText=Κείμενο HTML +Int=Ακέραιος αριθμός Float=Float DateAndTime=Ημερομηνία και ώρα Unique=Μοναδικό @@ -445,121 +445,121 @@ ExtrafieldSelect = Επιλογή από λίστα ExtrafieldSelectList = Επιλογή από πίνακα ExtrafieldSeparator=Διαχωριστής (όχι πεδίο) ExtrafieldPassword=Συνθηματικό -ExtrafieldRadio=Κουμπιά ραδιοφώνου (μόνο μία επιλογή) -ExtrafieldCheckBox=Τα πλαίσια ελέγχου -ExtrafieldCheckBoxFromList=Κουτάκια ελέγχου από το τραπέζι -ExtrafieldLink=Σύνδεση με ένα αντικείμενο +ExtrafieldRadio=Κουμπιά επιλογής (μόνο μία επιλογή) +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=Ο κατάλογος τιμών πρέπει να είναι γραμμές με κλειδί μορφής, τιμή (όπου το κλειδί δεν μπορεί να είναι '0')

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

    Προκειμένου ο κατάλογος να εξαρτάται από μια άλλη λίστα συμπληρωματικών χαρακτηριστικών:
    1, τιμή1 | επιλογές_επαφ ._ορισμός_κώδικα : γονικό_κλειδί
    2, value2 | options_ parent_list_code: parent_key

    Προκειμένου να υπάρχει η λίστα ανάλογα με μια άλλη λίστα:
    1, τιμή1 | parent_list_code : parent_key
    2, value2 | parent_list_code : parent_key -ExtrafieldParamHelpcheckbox=Ο κατάλογος τιμών πρέπει να είναι γραμμές με κλειδί μορφής, τιμή (όπου το κλειδί δεν μπορεί να είναι '0')

    για παράδειγμα:
    1, τιμή1
    2, τιμή2
    3, value3
    ... -ExtrafieldParamHelpradio=Ο κατάλογος τιμών πρέπει να είναι γραμμές με κλειδί μορφής, τιμή (όπου το κλειδί δεν μπορεί να είναι '0')

    για παράδειγμα:
    1, τιμή1
    2, τιμή2
    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=Κρατήστε κενό για έναν απλό διαχωριστή
    Ρυθμίστε το σε 1 για έναν διαχωριστή που αναδιπλώνεται (ανοίγει από προεπιλογή για νέα σύνοδο και στη συνέχεια διατηρείται η κατάσταση για κάθε περίοδο λειτουργίας χρήστη)
    Ρυθμίστε αυτό σε 2 για ένα πτυσσόμενο διαχωριστικό (συρρικνώνεται από προεπιλογή για νέα συνεδρία, τότε η κατάσταση διατηρείται για κάθε συνεδρία χρήστη) -LibraryToBuildPDF=Βιβλιοθήκη δημιουργίας PDF -LocalTaxDesc=Ορισμένες χώρες μπορούν να εφαρμόσουν δύο ή τρεις φόρους σε κάθε γραμμή τιμολογίου. Εάν συμβαίνει αυτό, επιλέξτε τον τύπο για τον δεύτερο και τον τρίτο φόρο και το ποσοστό του. Πιθανός τύπος είναι:
    1: ο τοπικός φόρος ισχύει για τα προϊόντα και τις υπηρεσίες χωρίς ναύλωση (το τοπικό ποσό υπολογίζεται σε ποσό χωρίς φόρο)
    2: ο τοπικός φόρος ισχύει για τα προϊόντα και τις υπηρεσίες, συμπεριλαμβανομένης της δεξαμενής (το τοπικό ποσό υπολογίζεται σε ποσό + κύριο φόρο)
    3: ο τοπικός φόρος ισχύει για τα προϊόντα χωρίς το βαρέλι (το localtax υπολογίζεται σε ποσό χωρίς φόρο)
    4: ο τοπικός φόρος ισχύει για τα προϊόντα συμπεριλαμβανομένης της δεξαμενής (τοπικό tax υπολογίζεται στο ποσό + κύρια δεξαμενή)
    5: ο τοπικός φόρος ισχύει για τις υπηρεσίες χωρίς τακτοποίηση (το τοπικό ποσό υπολογίζεται σε ποσό χωρίς φόρο)
    6: ο τοπικός φόρος ισχύει για τις υπηρεσίες, συμπεριλαμβανομένης της δεξαμενής (το τοπικό ποσό υπολογίζεται επί του ποσού + του φόρου) +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 για ένα διαχωριστικό που συμπτύσσεται (συμπτυγμένο από προεπιλογή και στη συνέχεια για νέα περίοδο λειτουργίας, η κατάσταση διατηρείται για κάθε συνεδρία χρήστη) +LibraryToBuildPDF=Βιβλιοθήκη ενεργοποίησης δημιουργίας PDF +LocalTaxDesc=Ορισμένες χώρες ενδέχεται να επιβάλλουν δύο ή τρεις φόρους σε κάθε γραμμή τιμολογίων. Εάν συμβαίνει αυτό, επιλέξτε τον τύπο για τον δεύτερο και τον τρίτο φόρο και τον συντελεστή του. Πιθανοί τύποι είναι:
    1: επιβάλλεται τοπικός φόρος για προϊόντα και υπηρεσίες χωρίς ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό χωρίς φόρο)
    2: ο τοπικός φόρος ισχύει για προϊόντα και υπηρεσίες συμπεριλαμβανομένου του ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό + τον κύριο φόρο)
    3:Ισχύει τοπικός φόρος σε προϊόντα χωρίς ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό χωρίς ΦΠΑ)
    4: Ισχύει τοπικός φόρος για προϊόντα συμπεριλαμβανομένου ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό + κύριος ΦΠΑ)
    5: Ο τοπικός φόρος ισχύει για υπηρεσίες χωρίς ΦΠΑ (υπολογίζεται ο τοπικός φόρος επί του ποσού χωρίς φόρο)
    6: τοπικός φόρος ισχύει για υπηρεσίες συμπεριλαμβανομένου του ΦΠΑ (ο τοπικός φόρος υπολογίζεται στο ποσό + φόρο) SMS=SMS -LinkToTestClickToDial=Εισάγετε έναν τηλεφωνικό αριθμό για να δημιουργηθεί ένας σύνδεσμος που θα σας επιτρέπει να κάνετε κλήση με το ClickToDial για τον χρήστη %s +LinkToTestClickToDial=Εισάγετε έναν τηλεφωνικό αριθμό για να δημιουργηθεί ένας σύνδεσμος που θα σας επιτρέπει να κάνετε δοκιμαστική κλήση με το ClickToDial για τον χρήστη %s RefreshPhoneLink=Ανανέωση συνδέσμου LinkToTest=Δημιουργήθηκε σύνδεσμος για τον χρήστη %s (κάντε κλικ στον αριθμό τηλεφώνου για να τον δοκιμάσετε) KeepEmptyToUseDefault=Αφήστε κενό για να χρησιμοποιήσετε την προεπιλεγμένη τιμή -KeepThisEmptyInMostCases=Στις περισσότερες περιπτώσεις, μπορείτε να διατηρήσετε αυτό το πεδίο ελεύθερο. +KeepThisEmptyInMostCases=Στις περισσότερες περιπτώσεις, μπορείτε να αφήσετε αυτό το πεδίο κενό. DefaultLink=Προεπιλεγμένος σύνδεσμος SetAsDefault=Ορισμός ως προεπιλογή ValueOverwrittenByUserSetup=Προσοχή, αυτή η τιμή μπορεί να αντικατασταθεί από επιλογή του χρήστη (ο κάθε χρήστης μπορεί να κάνει τον δικό του σύνδεσμο clicktodial) -ExternalModule=Εξωτερική μονάδα +ExternalModule=Εξωτερική ενότητα InstalledInto=Εγκαταστάθηκε στον κατάλογο %s -BarcodeInitForThirdparties=Μαζική έναρξη γραμμικού κώδικα για Τρίτα Μέρη -BarcodeInitForProductsOrServices=Όγκος barcode init ή επαναφορά για προϊόντα ή υπηρεσίες -CurrentlyNWithoutBarCode=Επί του παρόντος, έχετε %s ρεκόρ για %s %s χωρίς barcode ορίζεται. -InitEmptyBarCode=Init τιμή για τις επόμενες %s άδειες καταχωρήσεις -EraseAllCurrentBarCode=Διαγραφή όλων των τρεχουσών τιμών barcode +BarcodeInitForThirdparties=Μαζική έναρξη γραμμικού κώδικα για Πελάτες/Προμηθευτές +BarcodeInitForProductsOrServices=Μαζική έναρξη ή επαναφορά barcode για προϊόντα ή υπηρεσίες +CurrentlyNWithoutBarCode=Επί του παρόντος, έχετε %s εγγραφές %s %s χωρίς barcode. +InitEmptyBarCode=Τιμή έναρξης για τους %s κενούς γραμμικούς κώδικες +EraseAllCurrentBarCode=Διαγράψτε όλες τις τρέχουσες τιμές barcode ConfirmEraseAllCurrentBarCode=Είστε σίγουροι ότι θέλετε να διαγράψετε όλες τις τρέχουσες τιμές barcode; AllBarcodeReset=Όλες οι τιμές barcode έχουν αφαιρεθεί -NoBarcodeNumberingTemplateDefined=Δεν υπάρχει πρότυπο γραμμωτού κώδικα αρίθμησης ενεργοποιημένο στη ρύθμιση μονάδας γραμμωτού κώδικα. +NoBarcodeNumberingTemplateDefined=Δεν υπάρχει πρότυπο barcode ενεργοποιημένο στη ρύθμιση της ενότητας barcode. EnableFileCache=Ενεργοποιήστε την προσωρινή μνήμη αρχείων -ShowDetailsInPDFPageFoot=Προσθέστε περισσότερες λεπτομέρειες στο υποσέλιδο, όπως η διεύθυνση της εταιρείας ή τα ονόματα διαχειριστών (εκτός από τα επαγγελματικά αναγνωριστικά, το εταιρικό κεφάλαιο και τον αριθμό ΦΠΑ). +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 βήματα). -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. -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 +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 από το μενού Αρχική - Ρυθμίσεις - Άλλες Ρυθμίσεις. +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 (για email %s): %s ClickToShowDescription=Κάντε κλικ για να εμφανιστεί η περιγραφή -DependsOn=Αυτή η ενότητα χρειάζεται τις ενότητες +DependsOn=Αυτή η ενότητα εξαρτάται από τις ενότητες RequiredBy=Αυτή η ενότητα απαιτείται από τις ενότητες -TheKeyIsTheNameOfHtmlField=Αυτό είναι το όνομα του πεδίου HTML. Απαιτούνται τεχνικές γνώσεις για να διαβάσετε το περιεχόμενο της σελίδας HTML για να αποκτήσετε το όνομα κλειδιού ενός πεδίου. -PageUrlForDefaultValues=Πρέπει να εισαγάγετε τη σχετική διαδρομή της διεύθυνσης URL της σελίδας. Εάν συμπεριλάβετε παραμέτρους στη διεύθυνση URL, οι προεπιλεγμένες τιμές θα είναι αποτελεσματικές εάν όλες οι παράμετροι έχουν οριστεί στην ίδια τιμή. -PageUrlForDefaultValuesCreate=
    Παράδειγμα:
    Για τη φόρμα δημιουργίας νέου τρίτου μέρους, είναι %s .
    Για τη διεύθυνση URL των εξωτερικών ενοτήτων που έχουν εγκατασταθεί στον προσαρμοσμένο κατάλογο, μην συμπεριλάβετε το "προσαρμοσμένο /", οπότε χρησιμοποιήστε διαδρομή όπως το mymodule / mypage.php και όχι το custom / mymodule / mypage.php.
    Εάν θέλετε την προεπιλεγμένη τιμή μόνο αν η url έχει κάποια παράμετρο, μπορείτε να χρησιμοποιήσετε %s -PageUrlForDefaultValuesList=
    Παράδειγμα:
    Για τη σελίδα που παραθέτει τρίτα μέρη, είναι %s .
    Για τη διεύθυνση URL των εξωτερικών ενοτήτων που έχουν εγκατασταθεί στον προσαρμοσμένο κατάλογο, μην συμπεριλάβετε το "προσαρμοσμένο", οπότε χρησιμοποιήστε μια διαδρομή όπως το mymodule / mypagelist.php και όχι το custom / mymodule / mypagelist.php.
    Εάν θέλετε την προεπιλεγμένη τιμή μόνο αν η url έχει κάποια παράμετρο, μπορείτε να χρησιμοποιήσετε %s -AlsoDefaultValuesAreEffectiveForActionCreate=Επίσης, σημειώστε ότι οι προεπιλεγμένες τιμές αντικατάστασης για τη δημιουργία φόρμας λειτουργούν μόνο για σελίδες που έχουν σχεδιαστεί σωστά (έτσι με την παράμετρο action = create or presend ...) -EnableDefaultValues=Ενεργοποιήστε την προσαρμογή των προεπιλεγμένων τιμών -EnableOverwriteTranslation=Ενεργοποίηση χρήσης της αντικατεστημένης μετάφρασης -GoIntoTranslationMenuToChangeThis=Έχει βρεθεί μετάφραση για το κλειδί με αυτόν τον κωδικό. Για να αλλάξετε αυτήν την τιμή, πρέπει να την επεξεργαστείτε από την Αρχική σελίδα-Ρύθμιση-μετάφραση. -WarningSettingSortOrder=Προειδοποίηση, ο ορισμός μιας προεπιλεγμένης σειράς ταξινόμησης μπορεί να οδηγήσει σε τεχνικό σφάλμα κατά τη μετάβαση στη σελίδα της λίστας εάν το πεδίο είναι άγνωστο πεδίο. Εάν αντιμετωπίσετε ένα τέτοιο σφάλμα, επιστρέψτε σε αυτήν τη σελίδα για να καταργήσετε την προεπιλεγμένη σειρά ταξινόμησης και να επαναφέρετε την προεπιλεγμένη συμπεριφορά. -Field=Field +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=Έχει βρεθεί μετάφραση για το κλειδί με αυτόν τον κωδικό. Για να αλλάξετε αυτήν την τιμή, πρέπει να την επεξεργαστείτε από το μενού Αρχική-Ρυθμίσεις-Μετάφραση. +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=Υποχρεώστε την καταχώριση ποσών αναφοράς εξόδων πάντα σε ποσό με φόρους -AttachMainDocByDefault=Ρυθμίστε αυτό στο 1 εάν θέλετε να επισυνάψετε το κύριο έγγραφο σε email από προεπιλογή (αν υπάρχει) -FilesAttachedToEmail=Επισυνάψετε το αρχείο -SendEmailsReminders=Αποστολή υπενθυμίσεων της ημερήσιας διάταξης μέσω ηλεκτρονικού ταχυδρομείου +FreeLegalTextOnExpenseReports=Ελεύθερο νομικό κείμενο στις αναφορές δαπανών +WatermarkOnDraftExpenseReports=Υδατογράφημα σε προσχέδια αναφορών εξόδων +ProjectIsRequiredOnExpenseReports=Το έργο είναι υποχρεωτικό κατά την εισαγωγή αναφοράς εξόδων +PrefillExpenseReportDatesWithCurrentMonth=Προσυμπληρώστε τις ημερομηνίες έναρξης και λήξης της νέας αναφοράς εξόδων με ημερομηνίες έναρξης και λήξης του τρέχοντος μήνα +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=Διαχείριση χρηστών / εργαζομένων και ομάδων -Module1Name=Πελάτες/Συνεργάτες +Module1Name=Πελάτες/Προμηθευτές Module1Desc=Διαχείριση εταιρειών και επαφών (πελάτες, προοπτικές ...) Module2Name=Εμπορικό Module2Desc=Εμπορική διαχείριση Module10Name=Λογιστική (απλουστευμένη) -Module10Desc=Απλές λογιστικές αναφορές (περιοδικά, κύκλος εργασιών) με βάση το περιεχόμενο της βάσης δεδομένων. Δεν χρησιμοποιεί κανένα τραπέζι. -Module20Name=Προτάσεις -Module20Desc=Διαχείριση προσφορών -Module22Name=Μαζικές αποστολές ηλεκτρονικού ταχυδρομείου -Module22Desc=Διαχείριση μαζικού μηνύματος ηλεκτρονικού ταχυδρομείου +Module10Desc=Απλές λογιστικές αναφορές (ημερολόγια, κύκλος εργασιών) με βάση το περιεχόμενο της βάσης δεδομένων. Δεν χρησιμοποιεί κανένα πίνακα καθολικών. +Module20Name=Προσφορές +Module20Desc=Διαχείριση εμπορικών προσφορών +Module22Name=Μαζική αποστολή e-mail +Module22Desc=Διαχείριση μαζικής αποστολής email Module23Name=Ενέργεια Module23Desc=Παρακολούθηση κατανάλωσης ενέργειας -Module25Name=Πωλήσεις Παραγγελίες -Module25Desc=Διαχείριση Παραγγελιών Πωλήσεων +Module25Name=Εντολές Πωλήσεων +Module25Desc=Διαχείριση Εντολών Πωλήσεων Module30Name=Τιμολόγια Module30Desc=Διαχείριση τιμολογίων και πιστωτικών σημειώσεων για πελάτες. Διαχείριση τιμολογίων και πιστωτικών σημειώσεων για προμηθευτές Module40Name=Προμηθευτές Module40Desc=Προμηθευτές και διαχείριση αγοράς (εντολές αγοράς και τιμολογίων προμηθευτών) Module42Name=Αρχεία καταγραφής εντοπισμού σφαλμάτων -Module42Desc=Εγκαταστάσεις καταγραφής (αρχείο, syslog, ...). Αυτά τα αρχεία καταγραφής είναι για τεχνικούς / εντοπισμό σφαλμάτων. -Module43Name=Debug Bar -Module43Desc=A tool for developper adding a debug bar in your browser. +Module42Desc=Λειτουργίες καταγραφής (αρχείο, syslog, ...). Τέτοια αρχεία καταγραφής προορίζονται για τεχνικούς σκοπούς/εντοπισμό σφαλμάτων. +Module43Name=Γραμμή εντοπισμού σφαλμάτων +Module43Desc=Ένα εργαλείο για προγραμματιστές που προσθέτει μια γραμμή εντοπισμού σφαλμάτων στο πρόγραμμα περιήγησης σας. Module49Name=Επεξεργαστές κειμένου Module49Desc=Διαχείριση επεξεργαστών κειμένου Module50Name=Προϊόντα @@ -567,37 +567,37 @@ Module50Desc=Διαχείριση Προϊόντων Module51Name=Μαζικές αποστολές e-mail Module51Desc=Διαχείριση μαζικών αποστολών e-mail Module52Name=Αποθέματα -Module52Desc=ΔΙΑΧΕΙΡΙΣΗ ΑΠΟΘΕΜΑΤΩΝ +Module52Desc=Διαχείριση αποθεμάτων Module53Name=Υπηρεσίες Module53Desc=Διαχείριση Υπηρεσιών Module54Name=Συμβόλαια / Συνδρομές Module54Desc=Διαχείριση συμβολαίων (υπηρεσίες ή επαναλαμβανόμενες συνδρομές) Module55Name=Barcodes Module55Desc=Διαχείριση γραμμωτού κώδικα(Barcode) ή κώδικα QR -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. +Module56Name=Πληρωμή μέσω μεταφοράς πίστωσης +Module56Desc=Διαχείριση πληρωμής προμηθευτών με εντολές μεταφοράς πίστωσης. Περιλαμβάνει τη δημιουργία αρχείου SEPA για ευρωπαϊκές χώρες. +Module57Name=Πληρωμές μέσω πάγιας εντολής +Module57Desc=Διαχείριση πληρωμών πάγιας εντολής. Περιλαμβάνει τη δημιουργία αρχείου SEPA για ευρωπαϊκές χώρες. Module58Name=ClickToDial -Module58Desc=Ενοποίηση ενός συστήματος ClickToDial (Asterisk, ...) -Module60Name=Αυτοκόλλητες ετικέτες +Module58Desc=Ενσωμάτωση συστήματος ClickToDial (Asterisk, ...) +Module60Name=Αυτοκόλλητα Module60Desc=Διαχείριση αυτοκόλλητων ετικετών Module70Name=Παρεμβάσεις Module70Desc=Διαχείριση παρεμβάσεων Module75Name=Σημειώσεις εξόδων και ταξιδιών Module75Desc=Διαχείριση σημειώσεων εξόδων και ταξιδιών Module80Name=Αποστολές -Module80Desc=Αποστολές και διαχείριση σημείων παράδοσης -Module85Name=Τράπεζες & Μετρητά +Module80Desc=Διαχείριση αποστολών και δελτίων παράδοσης +Module85Name=Τράπεζες & Μετρητά Module85Desc=Διαχείριση τραπεζών και λογαριασμών μετρητών -Module100Name=Εξωτερικός χώρος +Module100Name=Εξωτερικός ιστότοπος Module100Desc=Προσθέστε έναν σύνδεσμο σε έναν εξωτερικό ιστότοπο ως εικονίδιο του κύριου μενού. Ο ιστότοπος εμφανίζεται σε ένα πλαίσιο κάτω από το επάνω μενού. -Module105Name=Mailman και SIP -Module105Desc=Mailman ή SPIP διεπαφή για ενότητα μέλος +Module105Name=Mailman και SPIP +Module105Desc=Διεπαφή Mailman ή SPIP για την ενότητα μελών Module200Name=LDAP Module200Desc=Συγχρονισμού καταλόγου LDAP Module210Name=PostNuke -Module210Desc=Διεπαφή PostNuke +Module210Desc=Ενσωμάτωση PostNuke Module240Name=Εξαγωγές δεδομένων Module240Desc=Εργαλείο εξαγωγής δεδομένων Dolibarr (με βοήθεια) Module250Name=Εισαγωγές δεδομένων @@ -608,477 +608,487 @@ Module320Name=RSS Feed Module320Desc=Προσθέστε μια ροή RSS στις σελίδες Dolibarr Module330Name=Σελιδοδείκτες και συντομεύσεις Module330Desc=Δημιουργήστε συντομεύσεις, πάντα προσιτές, στις εσωτερικές ή εξωτερικές σελίδες στις οποίες έχετε συχνά πρόσβαση -Module400Name=Έργα ή οδηγοί -Module400Desc=Διαχείριση έργων, οδηγεί / ευκαιρίες και / ή καθήκοντα. Μπορείτε επίσης να αντιστοιχίσετε οποιοδήποτε στοιχείο (τιμολόγιο, εντολή, πρόταση, παρέμβαση, ...) σε ένα έργο και να πάρετε μια εγκάρσια όψη από την προβολή του έργου. +Module400Name=Έργα ή προοπτικές +Module400Desc=Διαχείριση έργων, προοπτικών/ευκαιριών ή/και εργασιών. Μπορείτε επίσης να αντιστοιχίσετε οποιοδήποτε στοιχείο (τιμολόγιο, παραγγελία, πρόταση, παρέμβαση, ...) σε ένα έργο και να λάβετε μια εγκάρσια προβολή από την προβολή έργου. Module410Name=Ημερολόγιο ιστού -Module410Desc=Διεπαφή ημερολογίου ιστού -Module500Name=Φόροι & Ειδικά Έξοδα -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module410Desc=Ενσωμάτωση ημερολογίου ιστού +Module500Name=Φόροι & Ειδικά Έξοδα +Module500Desc=Διαχείριση άλλων δαπανών (φόροι πωλήσεων, κοινωνικές ή φορολογικές εισφορές, μερίσματα, ...) Module510Name=Μισθοί -Module510Desc=Καταγράψτε και παρακολουθήστε τις πληρωμές των εργαζομένων +Module510Desc=Καταγραφή και παρακολούθηση πληρωμών εργαζομένων Module520Name=Δάνεια Module520Desc=Διαχείριση δανείων -Module600Name=Ειδοποιήσεις σχετικά με επιχειρηματικά γεγονότα -Module600Desc=Αποστολή ειδοποιήσεων ηλεκτρονικού ταχυδρομείου που ενεργοποιούνται από ένα επιχειρηματικό συμβάν: ανά χρήστη (ρύθμιση που ορίζεται σε κάθε χρήστη), ανά επαφές τρίτων (ρύθμιση ορισμένη σε κάθε τρίτο μέρος) ή από συγκεκριμένα μηνύματα ηλεκτρονικού ταχυδρομείου -Module600Long=Σημειώστε ότι αυτή η ενότητα στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου σε πραγματικό χρόνο, όταν συμβαίνει ένα συγκεκριμένο επιχειρηματικό συμβάν. Εάν αναζητάτε ένα χαρακτηριστικό για να στείλετε υπενθυμίσεις ηλεκτρονικού ταχυδρομείου για συμβάντα ημερήσιας διάταξης, μεταβείτε στη ρύθμιση της ατζέντας της ενότητας. +Module600Name=Ειδοποιήσεις για επαγγελματικά συμβάντα +Module600Desc=Αποστολή ειδοποιήσεων ηλεκτρονικού ταχυδρομείου που ενεργοποιούνται από ένα επιχειρηματικό συμβάν: ανά χρήστη (καθορισμένη ρύθμιση σε κάθε χρήστη), ανά επαφές τρίτων (καθορισμένη ρύθμιση σε κάθε τρίτο μέρος) ή από συγκεκριμένα μηνύματα ηλεκτρονικού ταχυδρομείου +Module600Long=Λάβετε υπόψη ότι αυτή η ενότητα στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου σε πραγματικό χρόνο όταν συμβαίνει ένα συγκεκριμένο επιχειρηματικό συμβάν. Αν ψάχνετε για μια δυνατότητα αποστολής υπενθυμίσεων email για συμβάντα ατζέντας, μεταβείτε στη ρύθμιση της ενότητας Ατζέντα. Module610Name=Παραλλαγές προϊόντων Module610Desc=Δημιουργία παραλλαγών προϊόντων (χρώμα, μέγεθος κλπ.) Module700Name=Δωρεές -Module700Desc=Διαχείριση δωρεάς +Module700Desc=Διαχείριση δωρεών Module770Name=Αναφορές εξόδων -Module770Desc=Διαχειριστείτε τις δηλώσεις δαπανών (μεταφορά, γεύμα, ...) -Module1120Name=Προτάσεις εμπορικών πωλητών -Module1120Desc=Ζητήστε από τον πωλητή την εμπορική πρόταση και τις τιμές +Module770Desc=Διαχείριση αξιώσεων αναφορών εξόδων (μεταφορές, γεύματα, ...) +Module1120Name=Εμπορικές προσφορές προμηθευτών +Module1120Desc=Ζητήστε από τον προμηθευτή την εμπορική του προσφορά και τις τιμές Module1200Name=Mantis -Module1200Desc=Ενσωμάτωση της Mantis +Module1200Desc=Ενσωμάτωση Mantis Module1520Name=Δημιουργία εγγράφων -Module1520Desc=Δημιουργία γενικού εγγράφου ηλεκτρονικού ταχυδρομείου +Module1520Desc=Δημιουργία εγγράφου για μαζικά email Module1780Name=Ετικέτες/Κατηγορίες Module1780Desc=Δημιουργήστε ετικέτες/κατηγορίες (προϊόντα, πελάτες, προμηθευτές, επαφές ή μέλη) Module2000Name=WYSIWYG editor Module2000Desc=Να επιτρέπεται η επεξεργασία / διαμόρφωση των πεδίων κειμένων χρησιμοποιώντας το CKEditor (html) Module2200Name=Δυναμικές Τιμές -Module2200Desc=Χρησιμοποιήστε εκφράσεις μαθηματικών για την αυτόματη δημιουργία τιμών +Module2200Desc=Χρησιμοποιήστε μαθηματικές εκφράσεις για την αυτόματη δημιουργία τιμών Module2300Name=Προγραμματισμένες εργασίες -Module2300Desc=Προγραμματισμένη διαχείριση εργασιών (ψευδώνυμο cron ή chrono table) -Module2400Name=Εκδηλώσεις / Ατζέντα -Module2400Desc=Παρακολούθηση συμβάντων. Καταγράψτε τα αυτόματα συμβάντα για σκοπούς παρακολούθησης ή καταγράψτε μη αυτόματα συμβάντα ή συναντήσεις. Αυτή είναι η κύρια ενότητα για καλή διαχείριση σχέσεων πελατών ή προμηθευτών. +Module2300Desc=Διαχείριση προγραμματισμένων εργασιών (alias cron ή chrono table) +Module2400Name=Συμβάντα / Ατζέντα +Module2400Desc=Παρακολούθηση συμβάντων. Καταγράψτε αυτόματα συμβάντα για σκοπούς παρακολούθησης ή καταγράψτε μη αυτόματα συμβάντα ή συσκέψεις. Αυτή είναι η κύρια ενότητα για την καλή διαχείριση σχέσεων πελατών ή προμηθευτών. Module2500Name=DMS / ECM Module2500Desc=Σύστημα Διαχείρισης Εγγράφων / Ηλεκτρονική Διαχείριση Περιεχομένου. Αυτόματη οργάνωση των παραγόμενων ή αποθηκευμένων εγγράφων σας. Μοιραστείτε τα όταν χρειάζεστε. Module2600Name=Υπηρεσίες API / Web (διακομιστής SOAP) -Module2600Desc=Ενεργοποιήστε το διακομιστή Dolibarr SOAP που παρέχει υπηρεσίες API +Module2600Desc=Ενεργοποιήστε τον διακομιστή SOAP του Dolibarr που παρέχει υπηρεσίες API Module2610Name=Υπηρεσίες API / Web (διακομιστής REST) -Module2610Desc=Ενεργοποιήστε το διακομιστή Dolibarr REST που παρέχει υπηρεσίες API -Module2660Name=Καλέστε τις υπηρεσίες WebServices (πελάτης SOAP) -Module2660Desc=Ενεργοποίηση του client web services Dolibarr (Μπορεί να χρησιμοποιηθεί για την προώθηση δεδομένων / αιτημάτων σε εξωτερικούς διακομιστές. Προς το παρόν υποστηρίζονται μόνο οι εντολές αγοράς.) +Module2610Desc=Ενεργοποιήστε τον διακομιστή REST του Dolibarr που παρέχει υπηρεσίες API +Module2660Name=Κλήση Υπηρεσιών Ιστού (SOAP client) +Module2660Desc=Ενεργοποίηση του client υπηρεσιών ιστού του Dolibarr (Μπορεί να χρησιμοποιηθεί για την προώθηση δεδομένων/αιτημάτων σε εξωτερικούς διακομιστές. Προς το παρόν υποστηρίζονται μόνο εντολές αγοράς.) Module2700Name=Gravatar -Module2700Desc=Χρησιμοποιήστε την υπηρεσία Gravatar online (www.gravatar.com) για να δείτε φωτογραφία των χρηστών / μελών (που βρέθηκαν με τα μηνύματα ηλεκτρονικού ταχυδρομείου τους). Χρειάζεται πρόσβαση στο Internet +Module2700Desc=Χρησιμοποιήστε την ηλεκτρονική υπηρεσία Gravatar (www.gravatar.com) για να εμφανίσετε φωτογραφίες χρηστών/μελών (που βρέθηκαν από τα email τους). Χρειάζεται πρόσβαση στο Διαδίκτυο Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind +Module2900Name=GeoIP Maxmind Module2900Desc=GeoIP Maxmind conversions capabilities -Module3200Name=Μη αναστρέψιμα αρχεία -Module3200Desc=Ενεργοποιήστε ένα αναλλοίωτο αρχείο επιχειρηματικών εκδηλώσεων. Τα γεγονότα αρχειοθετούνται σε πραγματικό χρόνο. Το αρχείο καταγραφής είναι ένας πίνακας μόνο για ανάγνωση των αλυσιδωτών γεγονότων που μπορούν να εξαχθούν. Αυτή η ενότητα μπορεί να είναι υποχρεωτική για ορισμένες χώρες. +Module3200Name=Αναλλοίωτα αρχεία +Module3200Desc=Ενεργοποιήστε ένα αναλλοίωτο αρχείο καταγραφής επιχειρηματικών εκδηλώσεων. Τα συμβάντα αρχειοθετούνται σε πραγματικό χρόνο. Το αρχείο καταγραφής είναι ένας πίνακας μόνο για ανάγνωση των αλυσιδωτών συμβάντων που μπορούν να εξαχθούν. Αυτή η ενότητα μπορεί να είναι υποχρεωτική για ορισμένες χώρες. Module3400Name=Κοινωνικά Δίκτυα -Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). +Module3400Desc=Ενεργοποιήστε τα πεδία Κοινωνικών Δικτύων σε τρίτα μέρη και διευθύνσεις (skype, twitter, facebook, ...). Module4000Name=HRM -Module4000Desc=Διαχείριση ανθρώπινων πόρων (διαχείριση τμήματος, συμβάσεις εργαζομένων και συναισθήματα) +Module4000Desc=Διαχείριση ανθρώπινου δυναμικού (διαχείριση τμήματος, συμβάσεις εργαζομένων και συναισθήματα) Module5000Name=Multi-company -Module5000Desc=Σας επιτρέπει να διαχειριστήτε πολλές εταιρείες -Module6000Name=Inter-modules Workflow -Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) +Module5000Desc=Σας επιτρέπει να διαχειρίζεστε πολλές εταιρείες +Module6000Name=Ροή εργασίας μεταξύ ενοτήτων +Module6000Desc=Διαχείριση ροής εργασιών μεταξύ διαφορετικών ενοτήτων (αυτόματη δημιουργία αντικειμένου και/ή αυτόματη αλλαγή κατάστασης) Module10000Name=Ιστοσελίδες -Module10000Desc=Δημιουργείστε ιστότοπους (δημόσιους) με έναν κειμενογράφο WYSIWYG. Πρόκειται για ένα CMS για webmaster ή προγραμματιστές (είναι καλύτερο να γνωρίζετε τη γλώσσα HTML και CSS). Απλά ρυθμίστε τον διακομιστή ιστού σας (Apache, Nginx, ...) να δείχνει κατάλογο που είναι εγκατεστημένο το Dolibarr για να το έχετε online στο διαδίκτυο με το δικό σας όνομα τομέα. -Module20000Name=Αφήστε τη Διαχείριση Αίτησης -Module20000Desc=Καθορίστε και παρακολουθήστε τις αιτήσεις άδειας υπαλλήλων +Module10000Desc=Δημιουργείστε ιστότοπους (δημόσιους) με έναν κειμενογράφο WYSIWYG. Πρόκειται για ένα CMS για webmaster ή προγραμματιστές (είναι καλύτερο να γνωρίζετε τη γλώσσα HTML και CSS). Απλά ρυθμίστε τον διακομιστή ιστού σας (Apache, Nginx, ...) να δείχνει στον κατάλογο που είναι εγκατεστημένο το Dolibarr ώστε να ειναι online στο διαδίκτυο με το δικό σας όνομα τομέα. +Module20000Name=Διαχείριση αιτήματος άδειας +Module20000Desc=Καθορισμός και παρακολούθηση αιτημάτων άδειας εργαζομένων Module39000Name=Παρτίδες προϊόντων Module39000Desc=Παρτίδες, σειριακοί αριθμοί, διαχείριση ημερομηνιών κατανάλωσης / πώλησης προϊόντων -Module40000Name=Πολύσομο +Module40000Name=πολυνομισματικό Module40000Desc=Χρησιμοποιήστε εναλλακτικά νομίσματα τιμών και εγγράφων Module50000Name=Paybox -Module50000Desc=Προσφέρετε στους πελάτες μια σελίδα ηλεκτρονικής πληρωμής PayBox (πιστωτικές / χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψει στους πελάτες σας να πραγματοποιούν ad hoc πληρωμές ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία κ.λπ.) +Module50000Desc=Προσφέρετε στους πελάτες μια σελίδα διαδικτυακών πληρωμών PayBox (πιστωτικές/χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψετε στους πελάτες σας να πραγματοποιούν πληρωμές ad-hoc ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, παραγγελία κ.λπ...) Module50100Name=POS SimplePOS -Module50100Desc=Μονάδα σημείου πώλησης SimplePOS (απλό POS). +Module50100Desc=Ενότητα σημείου πώλησης SimplePOS (απλό POS). Module50150Name=POS TakePOS Module50150Desc=Ενότητα σημείου πώλησης TakePOS (οθόνη αφής POS, για καταστήματα, μπαρ ή εστιατόρια). Module50200Name=Paypal -Module50200Desc=Προσφέρετε στους πελάτες μια σελίδα PayPal online πληρωμής (λογαριασμός PayPal ή πιστωτικές / χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψει στους πελάτες σας να πραγματοποιούν ad hoc πληρωμές ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία κ.λπ.) -Module50300Name=Ταινία -Module50300Desc=Προσφέρετε στους πελάτες μια σελίδα Stripe online πληρωμής (πιστωτικές / χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψει στους πελάτες σας να πραγματοποιούν ad hoc πληρωμές ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία κ.λπ.) +Module50200Desc=Προσφέρετε στους πελάτες μια σελίδα διαδικτυακών πληρωμών PayPal (λογαριασμός PayPal ή πιστωτικές/χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψετε στους πελάτες σας να πραγματοποιούν πληρωμές ad-hoc ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία κ.λπ...) +Module50300Name=Stripe +Module50300Desc=Προσφέρετε στους πελάτες μια σελίδα ηλεκτρονικής πληρωμής Stripe (πιστωτικές/χρεωστικές κάρτες). Αυτό μπορεί να χρησιμοποιηθεί για να επιτρέψετε στους πελάτες σας να πραγματοποιούν πληρωμές ad-hoc ή πληρωμές που σχετίζονται με ένα συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, παραγγελία κ.λπ...) Module50400Name=Λογιστική (διπλή εγγραφή) -Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module50400Desc=Λογιστική διαχείριση (διπλοεγγραφές, υποστήριξη Γενικών και Επικουρικών Καθολικών). Εξαγωγή του καθολικού σε πολλές άλλες μορφές Module54000Name=PrintIPP -Module54000Desc=Άμεση εκτύπωση (χωρίς το άνοιγμα των εγγράφων) χρησιμοποιώντας τη διεπαφή IPP κυπέλλων (ο εκτυπωτής πρέπει να είναι ορατός από το διακομιστή και το CUPS πρέπει να εγκατασταθεί στον διακομιστή). +Module54000Desc=Άμεση εκτύπωση (χωρίς το άνοιγμα των εγγράφων) χρησιμοποιώντας τη διεπαφή Cups IPP (ο εκτυπωτής πρέπει να είναι ορατός από το διακομιστή και το CUPS πρέπει να ειναι εγκατεστημένο στον διακομιστή). Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία -Module55000Desc=Δημιουργήστε online δημοσκοπήσεις, έρευνες ή ψηφοφορίες (όπως Doodle, Studs, RDVz κ.λπ. ...) +Module55000Desc=Δημιουργήστε ηλεκτρονικές δημοσκοπήσεις, έρευνες ή ψηφοφορίες (όπως Doodle, Studs, RDVz κ.λπ...) Module59000Name=Περιθώρια -Module59000Desc=Ενότητα για να ακολουθείτε τα περιθώρια +Module59000Desc=Ενότητα παρακολούθησης περιθωρίων Module60000Name=Προμήθειες -Module60000Desc=Ένθεμα για τη διαχείριση των προμηθειών +Module60000Desc=Ενότητα διαχείρισης προμηθειών Module62000Name=Διεθνείς Εμπορικοί Όροι -Module62000Desc=Προσθέστε λειτουργίες για τη διαχείριση των Incoterms +Module62000Desc=Προσθέστε λειτουργίες για τη διαχείριση των διεθνών εμπορικών όρων Module63000Name=Πόροι -Module63000Desc=Διαχειριστείτε τους πόρους (εκτυπωτές, αυτοκίνητα, δωμάτια, ...) για την εκχώρηση σε εκδηλώσεις -Permission11=Διαβάστε τιμολόγια πελατών +Module63000Desc=Διαχειριστείτε πόρους (εκτυπωτές, αυτοκίνητα, δωμάτια, ...) για κατανομή σε εκδηλώσεις +Permission11=Ανάγνωση τιμολογίων πελατών Permission12=Δημιουργία / τροποποίηση τιμολογίων πελατών -Permission13=Invalidate customer invoices +Permission13=Ακύρωση τιμολογίων πελατών Permission14=Επικύρωση τιμολογίων πελατών Permission15=Αποστολή τιμολογίων πελατών μέσω ηλεκτρονικού ταχυδρομείου Permission16=Δημιουργία πληρωμών για τιμολόγια πελατών -Permission19=Διαγραφή τιμολογίων -Permission21=Διαβάστε εμπορικές προτάσεις +Permission19=Διαγραφή τιμολογίων πελατών +Permission21=Ανάγνωση εμπορικών προτάσεων Permission22=Δημιουργία / τροποποίηση εμπορικών προτάσεων Permission24=Επικύρωση εμπορικών προτάσεων Permission25=Αποστολή εμπορικών προτάσεων Permission26=Κλείσιμο εμπορικών προτάσεων Permission27=Διαγραφή εμπορικών προτάσεων Permission28=Εξαγωγή εμπορικών προτάσεων -Permission31=Διαβάστε τα προϊόντα +Permission31=Ανάγνωση προϊόντων Permission32=Δημιουργία / τροποποίηση προϊόντων +Permission33=Ανάγνωση τιμών προϊόντων Permission34=Διαγραφή προϊόντων -Permission36=Δείτε / διαχειριστείτε κρυφά προϊόντα +Permission36=Έλεγχος/διαχείριση κρυφών προϊόντων Permission38=Εξαγωγή προϊόντων -Permission39=Αγνοήστε την ελάχιστη τιμή -Permission41=Διαβάστε τα έργα και τα καθήκοντα (κοινό σχέδιο και έργα για τα οποία είμαι υπεύθυνος). Μπορεί επίσης να εισάγει χρόνο που καταναλώνεται, για μένα ή για την ιεραρχία μου, σε εκχωρημένες εργασίες (Timesheet) -Permission42=Δημιουργία / τροποποίηση έργων (κοινό έργο και έργα για τα οποία έχω επικοινωνία). Μπορεί επίσης να δημιουργήσει εργασίες και να εκχωρήσει τους χρήστες σε έργα και εργασίες -Permission44=Διαγραφή έργων (κοινό έργο και έργα για τα οποία είμαι υπεύθυνος) +Permission39=Αγνόηση ελάχιστης τιμής +Permission41=Ανάγνωση έργων και εργασιών (κοινά έργα και έργα στα οποία είμαι επαφή). +Permission42=Δημιουργία/τροποποίηση έργων (κοινόχρηστα έργα και έργα των οποίων είμαι επαφή). Επίσης ανάθεση χρηστών σε έργα και εργασίες +Permission44=Διαγραφή έργων (κοινόχρηστα έργα και έργα στα οποία είμαι επαφή) Permission45=Εξαγωγή έργων -Permission61=Διαβάστε τις παρεμβάσεις +Permission61=Ανάγνωση παρεμβάσεων Permission62=Δημιουργία / τροποποίηση παρεμβάσεων Permission64=Διαγραφή παρεμβάσεων Permission67=Εξαγωγή παρεμβάσεων Permission68=Αποστολή παρεμβάσεων με email Permission69=Επικύρωση παρεμβάσεων -Permission70=Ακυρώστε τις παρεμβάσεις -Permission71=Διάβασμα μελών +Permission70=Ακύρωση παρεμβάσεων +Permission71=Ανάγνωση μελών Permission72=Δημιουργία / τροποποίηση μελών Permission74=Διαγραφή μελών -Permission75=Ρύθμιση τύπου για την ιδιότητα του μέλους +Permission75=Ρύθμιση τύπων συνδρομής Permission76=Εξαγωγή δεδομένων -Permission78=Διάβασμα συνδρομών +Permission78=Ανάγνωση συνδρομών Permission79=Δημιουργία / τροποποίηση συνδρομών -Permission81=Διάβασμα παραγγελιών πελατών +Permission81=Ανάγνωση παραγγελιών πελατών Permission82=Δημιουργία / τροποποίηση παραγγελιών πελατών Permission84=Επικύρωση παραγγελιών πελατών +Permission85=Δημιουργία εγγράφων εντολών πωλήσεων Permission86=Αποστολή παραγγελιών πελατών Permission87=Κλείσιμο παραγγελιών πελατών Permission88=Ακύρωση παραγγελιών πελατών Permission89=Διαγραφή παραγγελιών πελατών -Permission91=Διαβάστε τους κοινωνικούς ή φορολογικούς φόρους και τις δεξαμενές -Permission92=Δημιουργία / τροποποίηση κοινωνικών ή φορολογικών φόρων και δεξαμενή -Permission93=Να διαγραφούν οι κοινωνικοί ή φορολογικοί φόροι και η δεξαμενή -Permission94=Εξαγωγή κοινωνικών ή φορολογικών φόρων -Permission95=Διάβασμα αναφορών -Permission101=Διάβασμα αποστολών +Permission91=Ανάγνωση κοινωνικών ή φορολογικών εισφορών και ΦΠΑ +Permission92=Δημιουργία / τροποποίηση κοινωνικών ή φορολογικών εισφορών και ΦΠΑ +Permission93=Διαγραφή κοινωνικών ή φορολογικών εισφορών και ΦΠΑ +Permission94=Εξαγωγή κοινωνικών ή φορολογικών εισφορών +Permission95=Ανάγνωση αναφορών +Permission101=Ανάγνωση αποστολών Permission102=Δημιουργία / τροποποίηση αποστολών Permission104=Επικύρωση αποστολών -Permission105=Send sendings by email +Permission105=Αποστολή αποστολών μέσω email Permission106=Εξαγωγή αποστολών Permission109=Διαγραφή αποστολών -Permission111=Διάβασμα οικονομικών λογαριασμών -Permission112=Δημιουργία / τροποποίηση / διαγραφή και σύγκριση συναλλαγών +Permission111=Ανάγνωση οικονομικών λογαριασμών +Permission112=Δημιουργία/τροποποίηση/διαγραφή και σύγκριση συναλλαγών Permission113=Ρύθμιση οικονομικών λογαριασμών (δημιουργία, διαχείριση κατηγοριών τραπεζικών συναλλαγών) -Permission114=Συναλλαγή συναλλαγών -Permission115=Εξαγωγή συναλλαγών και καταστάσεις λογαριασμών +Permission114=Συμφωνία συναλλαγών +Permission115=Εξαγωγή συναλλαγών και καταστάσεων λογαριασμών Permission116=Μεταφορές μεταξύ λογαριασμών -Permission117=Διαχείριση διαχείρισης αποστολών -Permission121=Διάβασμα τρίτων μερών που συνδέονται με το χρήστη +Permission117=Διαχείριση αποστολής επιταγών +Permission121=Ανάγνωση τρίτων μερών που συνδέονται με το χρήστη Permission122=Δημιουργία / τροποποίηση τρίτων μερών συνδεδεμένων με το χρήστη Permission125=Διαγραφή τρίτων μερών συνδεδεμένων με το χρήστη Permission126=Εξαγωγή τρίτων μερών Permission130=Δημιουργία/τροποποίηση στοιχείων πληρωμής τρίτων μερών -Permission141=Διαβάστε όλα τα έργα και τα καθήκοντα (επίσης ιδιωτικά έργα για τα οποία δεν είμαι επαφή) -Permission142=Δημιουργία / τροποποίηση όλων των έργων και εργασιών (επίσης ιδιωτικά έργα για τα οποία δεν είμαι επαφή) -Permission144=Διαγράψτε όλα τα έργα και τις εργασίες (επίσης ιδιωτικά έργα για τα οποία δεν έχω επικοινωνία) -Permission146=Διάβασμα παρόχων -Permission147=Διάβασμα στατιστικών στοιχείών +Permission141=Ανάγνωση όλων των έργων και εργασιών (καθώς και τα ιδιωτικά έργα για τα οποία δεν είμαι επαφή) +Permission142=Δημιουργία/τροποποίηση όλων των έργων και εργασιών (καθώς και των ιδιωτικών έργων για τα οποία δεν είμαι επαφή) +Permission144=Διαγραφή όλων των έργων και εργασιών (καθώς και των ιδιωτικών έργων για τα οποία δεν είμαι επαφή) +Permission145=Δυνατότητα εισαγωγής του χρόνου που καταναλώνεται, για εμένα ή τους ανωτέρους μου, σε εργασίες που έχουν ανατεθεί (Φύλλο χρόνου) +Permission146=Ανάγνωση παρόχων +Permission147=Ανάγνωση στατιστικών στοιχείων Permission151=Ανάγνωση εντολών πληρωμής άμεσης χρέωσης Permission152=Δημιουργία / τροποποίηση εντολών πληρωμής άμεσης χρέωσης Permission153=Αποστολή / Αποστολή εντολών πληρωμής άμεσης χρέωσης Permission154=Πιστωτικές εγγραφές / απορρίψεις εντολών πληρωμής άμεσης χρέωσης -Permission161=Διαβάστε συμβάσεις/συνδρομές +Permission161=Ανάγνωση συμβολαίων/συνδρομών Permission162=Δημιουργία/τροποποίηση συμβολαίων/συνδρομών Permission163=Ενεργοποίηση υπηρεσίας/συνδρομής ενός συμβολαίου Permission164=Απενεργοποίηση υπηρεσίας/συνδρομής ενός συμβολαίου Permission165=Διαγραφή συμβολαίων/συνδρομών Permission167=Εξαγωγή συμβολαίων -Permission171=Διαβάστε τα ταξίδια και τα έξοδα (τα δικά σας και οι υφισταμένοι σας) -Permission172=Δημιουργία/τροποποίηση ταξίδια και έξοδα +Permission171=Ανάγνωση ταξιδίων και εξόδων (δικά σας και των υφισταμένων σας) +Permission172=Δημιουργία/τροποποίηση ταξιδιών και εξόδων Permission173=Διαγραφή ταξιδιών και εξόδων -Permission174=Διαβάστε όλα τα ταξίδια και τα έξοδα +Permission174=Ανάγνωση όλων των ταξιδιών και εξόδων Permission178=Εξαγωγή ταξιδιών και εξόδων -Permission180=Διαβάστε προμηθευτές -Permission181=Διαβάστε παραγγελίες αγοράς -Permission182=Δημιουργία / τροποποίηση εντολών αγοράς -Permission183=Επικύρωση εντολών αγοράς -Permission184=Εγκρίνετε τις παραγγελίες αγοράς -Permission185=Παραγγείλετε ή ακυρώσετε τις παραγγελίες +Permission180=Ανάγνωση προμηθευτών +Permission181=Ανάγνωση παραγγελιών αγοράς +Permission182=Δημιουργία / τροποποίηση παραγγελιών αγοράς +Permission183=Επικύρωση παραγγελιών αγοράς +Permission184=Έγκριση παραγγελιών αγοράς +Permission185=Παραγγελία ή ακύρωση εντολών αγοράς Permission186=Παραλαβή εντολών αγοράς Permission187=Κλείσιμο παραγγελιών αγοράς Permission188=Ακύρωση εντολών αγοράς Permission192=Δημιουργία γραμμών Permission193=Ακύρωση γραμμών -Permission194=Διαβάστε τις γραμμές εύρους ζώνης -Permission202=Δημιουργήστε συνδέσεις ADSL -Permission203=Παραγγείλετε εντολές σύνδεσης -Permission204=Order connections +Permission194=Ανάγνωση γραμμών εύρους ζώνης +Permission202=Δημιουργία συνδέσεων ADSL +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=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=Διαβάστε τιμολόγια +Permission255=Τροποποίηση κωδικού πρόσβασης άλλων χρηστών +Permission256=Διαγραφή ή απενεργοποίηση άλλων χρήστων +Permission262=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΚΑΙ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
    Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
    Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). +Permission263=Επέκταση της πρόσβασης σε όλα τα τρίτα μέρη ΧΩΡΙΣ τα αντικείμενά τους (όχι μόνο τρίτα μέρη για τα οποία ο χρήστης είναι αντιπρόσωπος πωλήσεων).
    Δεν είναι αποτελεσματικό για εξωτερικούς χρήστες (περιορίζονται πάντα στους εαυτούς τους για προτάσεις, παραγγελίες, τιμολόγια, συμβάσεις κ.λπ.).
    Δεν ισχύει για έργα (μόνο σε κανόνες για τις άδειες έργων, την προβολή και τα θέματα ανάθεσης). +Permission271=Ανάγνωση CA +Permission272=Ανάγνωση τιμολογίων Permission273=Έκδοση τιμολογίων Permission281=Ανάγνωση επαφών Permission282=Δημιουργία/Επεξεργασία επαφών Permission283=Διαγραφή επαφών Permission286=Εξαγωγή επαφών -Permission291=Διαβάστε τα δασμολόγια -Permission292=Ορίστε δικαιώματα σχετικά με τα δασμολόγια -Permission293=Τροποποιήστε τα τιμολόγια του πελάτη -Permission300=Διαβάστε τους γραμμωτούς κώδικες +Permission291=Ανάγνωση δασμών +Permission292=Ορισμός δικαιωμάτων δασμών +Permission293=Τροποποίηση δασμών πελατών +Permission300=Ανάγνωση barcodes Permission301=Δημιουργία / τροποποίηση γραμμωτών κωδικών Permission302=Διαγραφή γραμμωτών κωδικών -Permission311=Διαβάστε τις υπηρεσίες -Permission312=Ανάθεση υπηρεσίας/συνδρομής σε συμβόλαιο -Permission331=Διαβάστε σελιδοδείκτες +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=Read salaries and payments (yours and subordinates) +Permission430=Χρήση της γραμμής εντοπισμού σφαλμάτων +Permission511=Ανάγνωση μισθών και πληρωμών (δικών σας και υφιστάμενων) Permission512=Δημιουργία/τροποποίηση μισθών και πληρωμών Permission514=Διαγραφή μισθών και πληρωμών -Permission517=Read salaries and payments everybody +Permission517=Ανάγνωση όλων των μισθών και πληρωμών Permission519=Εξαγωγή μισθών 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 -Permission650=Διαβάστε τα Γραμμάτια Υλικών -Permission651=Δημιουργία / Ενημέρωση τιμολογίων -Permission652=Διαγραφή λογαριασμών -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) -Permission701=Διαβάστε τις δωρεές -Permission702=Δημιουργία / τροποποίηση δωρεές -Permission703=Διαγραφή δωρεές -Permission771=Διαβάστε τις αναφορές εξόδων (δικές σας και υφισταμένων) -Permission772=Create/modify expense reports (for you and your subordinates) -Permission773=Διαγραφή αναφοράς εξόδων -Permission775=Έγκριση σε αναφορές εξόδων +Permission561=Ανάγνωση εντολών πληρωμής με μεταφορά πίστωσης +Permission562=Δημιουργία/τροποποίηση εντολής πληρωμής με μεταφορά πίστωσης +Permission563=Αποστολή/Διαβίβαση εντολής πληρωμής με μεταφορά πίστωσης +Permission564=Καταγραφή Χρεώσεων/Απορρίψεων μεταφοράς πίστωσης +Permission601=Ανάγνωση αυτοκόλλητων +Permission602=Δημιουργία/τροποποίηση αυτοκόλλητων +Permission609=Διαγραφή αυτοκόλλητων +Permission611=Ανάγνωση χαρακτηριστικών των παραλλαγών +Permission612=Δημιουργία/Ενημέρωση χαρακτηριστικών παραλλαγών +Permission613=Διαγραφή χαρακτηριστικών παραλλαγών +Permission650=Ανάγνωση καταλόγου υλικών +Permission651=Δημιουργία / Ενημέρωση καταλόγου υλικών +Permission652=Διαγραφή καταλόγου υλικών +Permission660=Ανάγνωση Εντολής Παραγωγής (MO) +Permission661=Δημιουργία/Ενημέρωση Εντολής Παραγωγής (MO) +Permission662=Διαγραφή εντολής κατασκευής (MO) +Permission701=Ανάγνωση δωρεών +Permission702=Δημιουργία/τροποποίηση δωρεών +Permission703=Διαγραφή δωρεών +Permission771=Ανάγνωση αναφορών εξόδων (προσωπικών και υφισταμένων) +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=Διαβάστε τα αποθέματα +Permission1001=Ανάγνωση αποθεμάτων Permission1002=Δημιουργία/τροποποίηση αποθηκών Permission1003=Διαγραφή αποθηκών -Permission1004=Διαβάστε τις κινήσεις αποθεμάτων +Permission1004=Ανάγνωση κινήσεων αποθεμάτων Permission1005=Δημιουργία / τροποποίηση των κινήσεων του αποθέματος -Permission1011=View inventories -Permission1012=Create new inventory -Permission1014=Validate inventory -Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory +Permission1011=Προβολή αποθεμάτων +Permission1012=Δημιουργία νέου απόθεματος +Permission1014=Επικύρωση αποθέματος +Permission1015=Επιτρέψτε την αλλαγή της τιμής PMP για ένα προϊόν +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=Check/Uncheck a purchase order reception -Permission1190=Εγκρίνετε τις εντολές αγοράς (δεύτερη έγκριση) -Permission1191=Export supplier orders and their attributes -Permission1201=Λάβετε αποτέλεσμα μιας εξαγωγής +Permission1189=Επιλογή/Αναίρεση επιλογής μιας παραλαβής παραγγελίας αγοράς +Permission1190=Έγκριση παραγγελιών αγοράς (δεύτερη έγκριση) +Permission1191=Εξαγωγή παραγγελιών προμηθευτών και τα χαρακτηριστικά τους +Permission1201=Λήψη αποτελέσματος μιας εξαγωγής Permission1202=Δημιουργία / Τροποποίηση εξαγωγής -Permission1231=Διαβάστε τιμολόγια προμηθευτή +Permission1231=Ανάγνωση τιμολογίων προμηθευτή Permission1232=Δημιουργία / τροποποίηση τιμολογίων προμηθευτή Permission1233=Επικύρωση τιμολογίων προμηθευτή Permission1234=Διαγραφή τιμολογίων προμηθευτή -Permission1235=Αποστολή τιμολογίων προμηθευτή μέσω ηλεκτρονικού ταχυδρομείου +Permission1235=Αποστολή τιμολογίων προμηθευτή μέσω email Permission1236=Εξαγωγή τιμολογίων προμηθευτών, χαρακτηριστικών και πληρωμών -Permission1237=Εξαγωγή εντολών αγοράς και των στοιχείων τους -Permission1251=Εκτελέστε μαζικές εισαγωγές εξωτερικών δεδομένων σε βάση δεδομένων (φόρτωση δεδομένων) +Permission1237=Εξαγωγή παραγγελιών αγοράς και των στοιχείων τους +Permission1251=Εκτέλεση μαζικών εισαγωγών εξωτερικών δεδομένων σε βάση δεδομένων (φόρτωση δεδομένων) Permission1321=Εξαγωγή τιμολογίων πελατών, χαρακτηριστικών και πληρωμών -Permission1322=Ανοίξτε ξανά έναν πληρωμένο λογαριασμό -Permission1421=Εξαγωγή παραγγελιών και χαρακτηριστικών πωλήσεων -Permission1521=Read documents -Permission1522=Delete documents -Permission2401=Ανάγνωση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος ή απλώς έχει ανατεθεί) -Permission2402=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος) -Permission2403=Διαγραφή ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος) -Permission2411=Διαβάστε τις ενέργειες (συμβάντα ή εργασίες) άλλων -Permission2412=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) άλλων -Permission2413=Διαγραφή ενεργειών (συμβάντων ή εργασιών) άλλων +Permission1322=Άνοιγμα ξανά ενός πληρωμένου λογαριασμού +Permission1421=Εξαγωγή εντολών και χαρακτηριστικών πωλήσεων +Permission1521=Ανάγνωση έγγραφων +Permission1522=Διαγραφή εγγράφων +Permission2401=Ανάγνωση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη του (εάν είναι κάτοχος του συμβάντος ή απλώς του έχουν ανατεθεί) +Permission2402=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη (εάν είναι κάτοχος του συμβάντος) +Permission2403=Διαγραφή ενεργειών (συμβάντων ή εργασιών) που συνδέονται με το λογαριασμό χρήστη (εάν είναι κάτοχος του συμβάντος) +Permission2411=Ανάγνωση ενεργειών (συμβάντων ή εργασιών) άλλων χρηστών +Permission2412=Δημιουργία / τροποποίηση ενεργειών (συμβάντων ή εργασιών) άλλων χρηστών +Permission2413=Διαγραφή ενεργειών (συμβάντων ή εργασιών) άλλων χρηστών Permission2414=Εξαγωγή ενεργειών / εργασιών άλλων -Permission2501=Διάβασμα / λήψη εγγράφων +Permission2501=Ανάγνωση/Λήψη εγγράφων Permission2502=Λήψη εγγράφων -Permission2503=Υποβολή ή να διαγράψετε τα έγγραφα +Permission2503=Υποβολή ή διαγραφή εγγράφων Permission2515=Ρύθμιση καταλόγων εγγράφων -Permission2801=Χρησιμοποίησε FTP πελάτη σε λειτουργία ανάγνωσης (περιήγηση και λήψη μόνο) -Permission2802=Χρησιμοποίησε FTP πελάτη σε λειτουργία εγγραφής (διαγραφή ή μεταφόρτωση αρχείων) -Permission3200=Διαβάστε αρχειακά συμβάντα και δακτυλικά αποτυπώματα -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 -Permission10001=Διαβάστε το περιεχόμενο του ιστότοπου +Permission2801=Χρήση προγράμματος-πελάτη FTP σε λειτουργία ανάγνωσης (μόνο περιήγηση και λήψη) +Permission2802=Χρήση προγράμματος-πελάτη FTP σε λειτουργία εγγραφής (διαγραφή ή αποστολή αρχείων) +Permission3200=Ανάγνωση αρχειοθετημένων ενεργειών και fingerprints +Permission3301=Δημιουργία νέων ενοτήτων +Permission4001= Ανάγνωση δεξιότητας/δουλειάς/θέσης +Permission4002=Δημιουργία/τροποποίηση δεξιότητας/δουλειάς/θέσης +Permission4003=Διαγραφή δεξιότητας/δουλειάς/θέσης +Permission4020=Ανάγνωση αξιολογήσεων +Permission4021=Δημιουργία/τροποποίηση ατομικής αξιολόγησης +Permission4022=Επικύρωση αξιολόγησης +Permission4023=Διαγραφή αξιολόγησης +Permission4030=Δείτε το μενού σύγκρισης +Permission4031=Ανάγνωση προσωπικών πληροφοριών +Permission4032=Καταχώριση προσωπικών στοιχείων +Permission10001=Ανάγνωση περιεχόμενου ιστότοπου Permission10002=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (περιεχόμενο html και javascript) -Permission10003=Δημιουργία / τροποποίηση περιεχομένου ιστότοπου (δυναμικός κώδικας php). Επικίνδυνο, πρέπει να επιφυλάσσεται σε περιορισμένους προγραμματιστές. +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) +Permission20001=Ανάγνωση αιτημάτων άδειας (προσωπικής άδειας και υφισταμένων) +Permission20002=Δημιουργια / τροποποίηση των αιτήματων αδείας (προσωπικής άδειας σας και αυτές των υφισταμένων σας) +Permission20003=Διαγραφή αιτημάτων άδειας +Permission20004=Ανάγνωση όλων των αιτημάτων αδείας (ακόμη και αυτά των χρηστών που δεν είναι υφιστάμενοι) +Permission20005=Δημιουργία/τροποποίηση αιτημάτων άδειας για όλους (ακόμη και εκείνων των όχι υφισταμένων χρηστών ) +Permission20006=Διαχείριση αιτημάτων άδειας (ρύθμιση και ενημέρωση υπολοίπου) Permission20007=Έγκριση αιτημάτων άδειας -Permission23001=Λεπτομέρειες προγραμματισμένης εργασίας -Permission23002=Δημιουργήστε/ενημερώστε μια προγραμματισμένη εργασία -Permission23003=Διαγράψτε μια προγραμματισμένη εργασία -Permission23004=Εκτελέστε μια προγραμματισμένη εργασία +Permission23001=Ανάγνωση προγραμματισμένης εργασίας +Permission23002=Δημιουργια/ενημέρωση μιας προγραμματισμένης εργασίας +Permission23003=Διαγραφή μιας προγραμματισμένης εργασίας +Permission23004=Εκτέλεση μιας προγραμματισμένης εργασίας Permission50101=Χρήση Σημείου Πώλησης (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) -Permission50152=Edit sales lines -Permission50153=Edit ordered sales lines -Permission50201=Διαβάστε τις συναλλαγές -Permission50202=Πράξεις εισαγωγής -Permission50330=Read objects of Zapier -Permission50331=Create/Update objects of Zapier -Permission50332=Delete objects of Zapier -Permission50401=Δεσμεύστε προϊόντα και τιμολόγια με λογιστικούς λογαριασμούς -Permission50411=Διαβάστε τις λειτουργίες στο βιβλίο -Permission50412=Εγγραφή / Επεξεργασία εργασιών στο ημερολόγιο -Permission50414=Διαγράψτε τις εργασίες στο ημερολόγιο -Permission50415=Διαγράψτε όλες τις λειτουργίες ανά έτος και το ημερολόγιο στο βιβλίο -Permission50418=Λειτουργίες εξαγωγής του βιβλίου -Permission50420=Αναφορές και αναφορές εξαγωγής (κύκλος εργασιών, ισοζύγιο, περιοδικά, ημερολόγιο) -Permission50430=Ορίστε δημοσιονομικές περιόδους. Επικυρώστε τις συναλλαγές και τις κλειστές οικονομικές περιόδους. -Permission50440=Διαχείριση λογαριασμού, ρύθμιση λογιστικής -Permission51001=Διαβάστε τα στοιχεία ενεργητικού -Permission51002=Δημιουργία / ενημέρωση στοιχείων +Permission50151=Χρήση Σημείου Πώλησης (TakePOS) +Permission50152=Επεξεργασία γραμμών πωλήσεων +Permission50153=Επεξεργασία παραγγελθέντων γραμμών πωλήσεων +Permission50201=Ανάγνωση συναλλαγών +Permission50202=Εισαγωγή συναλλαγών +Permission50330=Ανάγνωση αντικείμενων του Zapier +Permission50331=Δημιουργία/Ενημέρωση αντικειμένων του Zapier +Permission50332=Διαγραφή αντικειμένων του Zapier +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=Συνδέστε τους πόρους στις εκδηλώσεις της ατζέντας -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 +Permission63003=Διαγραφή πόρων +Permission63004=Σύνδεση πόρων με εκδηλώσεις της ατζέντας +Permission64001=Επιτρέψτε την απευθείας εκτύπωση +Permission67000=Επιτρέψτε την εκτύπωση αποδείξεων +Permission68001=Ανάγνωση έκθεσης intracomm +Permission68002=Δημιουργία/τροποποίηση αναφοράς ενδοεπικοινωνίας +Permission68004=Διαγραφή αναφοράς intracomm +Permission941601=Ανάγνωση παραλαβών +Permission941602=Δημιουργία και τροποποίηση αποδείξεων +Permission941603=Επικύρωση αποδείξεων +Permission941604=Αποστολή αποδείξεων με email +Permission941605=Εξαγωγή παραλαβών +Permission941606=Διαγραφή παραλαβών DictionaryCompanyType=Τύποι τρίτου μέρους DictionaryCompanyJuridicalType=Νομικές οντότητες τρίτων -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts -DictionaryCanton=Κράτη / Επαρχίες +DictionaryProspectLevel=Επίπεδο προοπτικής για εταιρείες +DictionaryProspectContactLevel=Επίπεδο προοπτικής για επαφές +DictionaryCanton=Νομοί/Δήμοι DictionaryRegion=Περιοχές DictionaryCountry=Χώρες DictionaryCurrency=Νόμισμα DictionaryCivility=Τιμητικοί τίτλοι -DictionaryActions=Τύποι συμβάντων ημερήσιας διάταξης -DictionarySocialContributions=Είδη κοινωνικών ή φορολογικών φόρων -DictionaryVAT=Τιμές ΦΠΑ ή φόρου επί των πωλήσεων -DictionaryRevenueStamp=Ποσό των φορολογικών σφραγίδων +DictionaryActions=Τύποι συμβάντων ατζέντας +DictionarySocialContributions=Είδη κοινωνικών ή φορολογικών εισφορών +DictionaryVAT=Ποσοστά ΦΠΑ ή φόρου επί των πωλήσεων +DictionaryRevenueStamp=Ποσό των φορολογικών χαρτόσημων DictionaryPaymentConditions=Όροι πληρωμής DictionaryPaymentModes=Τρόποι πληρωμής -DictionaryTypeContact=Τύποι Επικοινωνίας/Διεύθυνση -DictionaryTypeOfContainer=Ιστοσελίδα - Τύπος ιστοσελίδων / δοχείων +DictionaryTypeContact=Τύποι επικοινωνίας/διευθύνσεων +DictionaryTypeOfContainer=Ιστότοπος - Τύπος σελίδων/κοντέινερ ιστότοπου DictionaryEcotaxe=Οικολογικός φόρος (ΑΗΗΕ) DictionaryPaperFormat=Μορφές χαρτιού DictionaryFormatCards=Μορφές καρτών -DictionaryFees=Έκθεση δαπανών - Τύποι γραμμών αναφοράς δαπανών +DictionaryFees=Αναφορά εξόδων - Τύποι γραμμών αναφοράς εξόδων DictionarySendingMethods=Τρόποι Αποστολής DictionaryStaff=Αριθμός εργαζομένων DictionaryAvailability=Καθυστέρηση παράδοσης -DictionaryOrderMethods=Order methods -DictionarySource=Προέλευση των προτάσεων/παραγγελιών +DictionaryOrderMethods=Μέθοδοι παραγγελίας +DictionarySource=Προέλευση των προσφορών/παραγγελιών DictionaryAccountancyCategory=Εξατομικευμένες ομάδες για αναφορές -DictionaryAccountancysystem=Μοντέλα λογιστικού σχεδίου -DictionaryAccountancyJournal=Λογιστικά περιοδικά +DictionaryAccountancysystem=Υποδείγματα λογιστικού σχεδίου +DictionaryAccountancyJournal=Λογιστικά ημερολόγια DictionaryEMailTemplates=Πρότυπα ηλεκτρονικού ταχυδρομείου DictionaryUnits=Μονάδες DictionaryMeasuringUnits=Μονάδες μέτρησης DictionarySocialNetworks=Κοινωνικά Δίκτυα -DictionaryProspectStatus=Prospect status for companies -DictionaryProspectContactStatus=Prospect status for contacts -DictionaryHolidayTypes=Leave - Types of leave -DictionaryOpportunityStatus=Κατάσταση μολύβδου για έργο / μόλυβδο -DictionaryExpenseTaxCat=Έκθεση δαπανών - Κατηγορίες μεταφορών -DictionaryExpenseTaxRange=Έκθεση εξόδων - Εύρος ανά κατηγορία μεταφοράς -DictionaryTransportMode=Intracomm report - Transport mode -DictionaryBatchStatus=Product lot/serial Quality Control status -TypeOfUnit=Type of unit +DictionaryProspectStatus=Κατάσταση προοπτικής για εταιρείες +DictionaryProspectContactStatus=Κατάσταση προοπτικής για επαφές +DictionaryHolidayTypes=Άδεια - Είδη αδειών +DictionaryOpportunityStatus=Κατάσταση δυνητικού πελάτη για έργο/προοπτική +DictionaryExpenseTaxCat=Αναφορά εξόδων- Κατηγορίες μετακίνησης +DictionaryExpenseTaxRange=Αναφορά εξόδων - Εύρος ανά κατηγορία μετακίνησης +DictionaryTransportMode=Έκθεση intracomm - Τρόπος μεταφοράς +DictionaryBatchStatus=Κατάσταση ποιοτικού ελέγχου παρτίδας/σειράς προϊόντος +DictionaryAssetDisposalType=Είδος διάθεσης περιουσιακών στοιχείων +TypeOfUnit=Τύπος μονάδας SetupSaved=Οι ρυθμίσεις αποθηκεύτηκαν -SetupNotSaved=Το πρόγραμμα εγκατάστασης δεν αποθηκεύτηκε -BackToModuleList=Επιστροφή στη λίστα λειτουργιών +SetupNotSaved=Η ρύθμιση δεν αποθηκεύτηκε +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=Τιμή @@ -1088,7 +1098,7 @@ LocalTax1IsNotUsedDesc=Μην χρησιμοποιείτε άλλο είδος LocalTax1Management=Δεύτερο είδος φόρου LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Μην χρησιμοποιείτε τρίτους φόρους +LocalTax2IsNotUsed=Μην χρησιμοποιείτε τρίτο φόρο LocalTax2IsUsedDesc=Χρησιμοποιήστε έναν τρίτο τύπο φόρου (εκτός από τον πρώτο) LocalTax2IsNotUsedDesc=Μην χρησιμοποιείτε άλλο είδος φόρου (εκτός από τον πρώτο) LocalTax2Management=Τρίτος τύπος φόρου @@ -1097,16 +1107,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=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=Χρησιμοποιήστε μια σφραγίδα φόρου -UseRevenueStampExample=Η τιμή της φορολογικής σφραγίδας καθορίζεται από προεπιλογή στη ρύθμιση των λεξικών (%s - %s - %s) +RevenueStampDesc=Το "φορολογικό χαρτόσημο" ή "χαρτόσημο εισοδήματος" είναι ένας σταθερός φόρος ανά τιμολόγιο (Δεν εξαρτάται από το ποσό του τιμολογίου). Μπορεί επίσης να είναι ένα ποσοστό φόρου, αλλά η χρήση του δεύτερου ή του τρίτου τύπου φόρου είναι καλύτερη για τους ποσοστιαίους φόρους, καθώς για τα φορολογικά χαρτόσημα δεν παρέχουν καμία αναφορά. Μόνο λίγες χώρες χρησιμοποιούν αυτόν τον τύπο φόρου. +UseRevenueStamp=Χρησιμοποιήστε φορολογικό χαρτόσημο +UseRevenueStampExample=Η αξία του φορολογικού χαρτοσήμου ορίζεται από προεπιλογή στη ρύθμιση των λεξικών (%s - %s - %s) CalcLocaltax=Αναφορές για τοπικούς φόρους CalcLocaltax1=Πωλήσεις - Αγορές CalcLocaltax1Desc=Οι αναφορές τοπικών φόρων υπολογίζονται με τη διαφορά μεταξύ τοπικών πωλήσεων και τοπικών αγορών @@ -1117,47 +1127,47 @@ CalcLocaltax3Desc=Οι αναφορές τοπικών φόρων είναι τ NoLocalTaxXForThisCountry=Σύμφωνα με τη ρύθμιση των φόρων (Βλέπε %s - %s - %s), η χώρα σας δεν χρειάζεται να χρησιμοποιεί τέτοιου είδους φόρους LabelUsedByDefault=Ετικέτα που χρησιμοποιείται από προεπιλογή εάν δεν υπάρχει μετάφραση για τον κώδικα LabelOnDocuments=Ετικέτα στα έγγραφα -LabelOrTranslationKey=Κλειδί ετικέτας ή μετάφρασης +LabelOrTranslationKey=Ετικέτα ή όρος μετάφρασης ValueOfConstantKey=Τιμή σταθεράς διαμόρφωσης -ConstantIsOn=Option %s is on +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=Σελίδα σύνδεσης @@ -1165,7 +1175,7 @@ BackgroundImageLogin=Εικόνα φόντου PermanentLeftSearchForm=Μόνιμη φόρμα αναζήτησης στο αριστερό μενού DefaultLanguage=Προεπιλεγμένη γλώσσα EnableMultilangInterface=Ενεργοποιήστε την πολυγλωσσική υποστήριξη για συσχετισμούς πελατών ή προμηθευτών -EnableShowLogo=Εμφανίστε το λογότυπο της εταιρείας στο μενού +EnableShowLogo=Εμφάνιση λογότυπου εταιρείας στο μενού CompanyInfo=Εταιρεία / Οργανισμός CompanyIds=Ταυτότητα εταιρείας / οργανισμού CompanyName=Όνομα @@ -1175,129 +1185,130 @@ 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=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=Καθυστέρηση πριν εμφανιστεί μια ειδοποίηση προειδοποίησης για: -DelaysOfToleranceDesc=Ορίστε την καθυστέρηση πριν εμφανιστεί στην οθόνη το εικονίδιο ειδοποίησης %s στην οθόνη για το καθυστερημένο στοιχείο. -Delays_MAIN_DELAY_ACTIONS_TODO=Τα προγραμματισμένα συμβάντα (γεγονότα της ατζέντας) δεν ολοκληρώθηκαν +ShowBugTrackLinkDesc=Διατηρήστε το κενό για να μην εμφανίζεται αυτός ο σύνδεσμος, χρησιμοποιήστε την τιμή "github" για τον σύνδεσμο προς το έργο Dolibarr ή ορίστε απευθείας μια διεύθυνση url "https://..." +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=Άλλες καταχωρίσεις μενού ρυθμίσεων διαχειρίζονται προαιρετικές παραμέτρ -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=Πληροφορίες Dolibarr -InfoBrowser=Πληροφορίες Φυλλομετρητή -InfoOS=Πληροφορίες OS -InfoWebServer=Πληροφορίες Web Server -InfoDatabase=Πληροφορίες Συστήματος ΒΔ +SetupDescription5=Άλλες καταχωρήσεις του μενού Ρυθμίσεις αφορούν σε προαιρετικές παραμέτρους. +SetupDescriptionLink= %s - %s +SetupDescription3b=Βασικές παράμετροι που χρησιμοποιούνται για την προσαρμογή της προεπιλεγμένης συμπεριφοράς της εφαρμογής σας (π.χ. για λειτουργίες που σχετίζονται με τη χώρα). +SetupDescription4b=Αυτό το λογισμικό είναι μια σουίτα πολλών λειτουργικών ενοτήτων/εφαρμογών. Οι ενότητες που σχετίζονται με τις ανάγκες σας πρέπει να είναι ενεργοποιημένες και ρυθμισμένες. Οι καταχωρήσεις μενού θα εμφανιστούν με την ενεργοποίηση αυτών των ενοτήτων. +AuditedSecurityEvents=Συμβάντα ασφαλείας που ελέγχθηκαν +NoSecurityEventsAreAduited=Δεν ελέγχονται συμβάντα ασφαλείας. Μπορείτε να τα ενεργοποιήσετε από το μενού %s +Audit=Συμβάντα ασφαλείας +InfoDolibarr=Σχετικά με το Dolibarr +InfoBrowser=Σχετικά με το πρόγραμμα περιήγησης +InfoOS=Σχετικά με το OS +InfoWebServer=Σχετικά με τον διακομιστή Web +InfoDatabase=Πληροφορίες Βάσης Δεδομένων InfoPHP=Πληροφορίες PHP InfoPerf=Πληροφορίες επιδόσεων -InfoSecurity=About Security +InfoSecurity=Σχετικά με την Ασφάλεια BrowserName=Όνομα φυλλομετρητή BrowserOS=Λειτουργικό σύστημα φυλλομετρητή ListOfSecurityEvents=Λίστα συμβάντων ασφαλείας Dolibarr -SecurityEventsPurged=Συμβάντα ασφαλείας εξαγνίζονται +SecurityEventsPurged=Εκκαθαρίστηκαν τα συμβάντα ασφαλείας +TrackableSecurityEvents=Συμβάντα ασφαλείας με δυνατότητα παρακολούθησης LogEventDesc=Ενεργοποιήστε την καταγραφή για συγκεκριμένα συμβάντα ασφαλείας. Οι διαχειριστές μέσω του μενού %s - %s . Προειδοποίηση, αυτή η δυνατότητα μπορεί να δημιουργήσει ένα μεγάλο όγκο δεδομένων στη βάση δεδομένων. -AreaForAdminOnly=Οι παράμετροι εγκατάστασης μπορούν να οριστούν μόνο από χρήστες διαχειριστή . -SystemInfoDesc=Οι πληροφορίες συστήματος είναι διάφορες τεχνικές πληροφορίες που λαμβάνετε μόνο στη λειτουργία ανάγνωσης και είναι ορατές μόνο για τους διαχειριστές. -SystemAreaForAdminOnly=Αυτή η περιοχή είναι διαθέσιμη μόνο σε χρήστες διαχειριστή. Τα δικαιώματα χρήστη Dolibarr δεν μπορούν να αλλάξουν αυτόν τον περιορισμό. +AreaForAdminOnly=Οι παράμετροι εγκατάστασης μπορούν να οριστούν μόνο από διαχειριστές . +SystemInfoDesc=Οι πληροφορίες συστήματος είναι διάφορες τεχνικές πληροφορίες που λαμβάνετε μόνο σε λειτουργία ανάγνωσης και είναι ορατές μόνο για τους διαχειριστές. +SystemAreaForAdminOnly=Αυτος ο τομεας είναι διαθέσιμος μόνο σε διαχειριστές. Τα δικαιώματα χρήστη Dolibarr δεν μπορούν να αλλάξουν αυτόν τον περιορισμό. CompanyFundationDesc=Επεξεργαστείτε τις πληροφορίες της εταιρείας / του οργανισμού σας. Κάντε κλικ στο κουμπί "%s" στο κάτω μέρος της σελίδας όταν τελειώσετε. -AccountantDesc=Εάν έχετε έναν εξωτερικό λογιστή / λογιστή, μπορείτε να επεξεργαστείτε εδώ τις πληροφορίες του. -AccountantFileNumber=Λογιστικό κώδικα +AccountantDesc=Εάν έχετε έναν εξωτερικό λογιστή, μπορείτε να επεξεργαστείτε εδώ τις πληροφορίες του. +AccountantFileNumber=Κωδικός λογιστή DisplayDesc=Οι παράμετροι που επηρεάζουν την εμφάνιση και την παρουσίαση της εφαρμογής μπορούν να τροποποιηθούν εδώ. AvailableModules=Διαθέσιμες εφαρμογές / ενότητες -ToActivateModule=Για να ενεργοποιήσετε Ενθέματα, μεταβείτε στην Περιοχή εγκατάστασης (Αρχική σελίδα-> Ρυθμίσεις-> Ενθέματα). +ToActivateModule=Για να ενεργοποιήσετε ενότητες, μεταβείτε στην Περιοχή εγκατάστασης (Αρχική-> Ρυθμίσεις-> Ενότητες/Εφαρμογές). SessionTimeOut=Λήξη χρόνου για τη συνεδρία -SessionExplanation=Αυτός ο αριθμός εγγυάται ότι η σύνοδος δεν θα λήξει ποτέ πριν από αυτήν την καθυστέρηση, εάν το πρόγραμμα καθαρισμού συνεδριών γίνεται από εσωτερικό πρόγραμμα καθαρισμού συνεδριών PHP (και τίποτα άλλο). Το εσωτερικό καθαριστικό συνεδρίας της PHP δεν εγγυάται ότι η περίοδος λήξης θα λήξει μετά από αυτήν την καθυστέρηση. Θα λήξει μετά από αυτή την καθυστέρηση και όταν εκτελείται το πρόγραμμα καθαρισμού συνεδριών, έτσι ώστε κάθε %s / %s να έχει πρόσβαση, αλλά μόνο κατά την πρόσβαση από άλλες συνεδρίες (εάν η τιμή είναι 0, σημαίνει ότι η εκκαθάριση της περιόδου λειτουργίας γίνεται μόνο από μια εξωτερική διαδικασία) .
    Σημείωση: Σε ορισμένους διακομιστές με μηχανισμό εξωτερικού καθαρισμού συνεδριών (cron κάτω από debian, ubuntu ...), οι συνεδρίες μπορούν να καταστραφούν μετά από μια περίοδο που ορίζεται από μια εξωτερική ρύθμιση, ανεξάρτητα από την αξία που εισάγεται εδώ. -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=Οι ενεργοποιητές είναι αρχεία που θα τροποποιήσουν τη συμπεριφορά της ροής εργασίας 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=Επιλέξτε τη μέθοδο που θα χρησιμοποιηθεί για τους κωδικούς πρόσβασης που δημιουργούνται αυτόματα. +SessionExplanation=Αυτός ο αριθμός εγγυάται ότι η περίοδος λειτουργίας δεν λήγει πριν από αυτό το χρονικό διάστημα, όταν παρέχεται εκκαθάριση περιόδου λειτουργίας από τον εσωτερικό μηχανισμό καθαρισμού της PHP (και κανένας άλλος). Η εκκαθάριση της εσωτερικής περιόδου λειτουργίας PHP δεν εγγυάται ότι η περίοδος λειτουργίας λήγει ακριβώς αυτήν τη στιγμή. Θα λήξει μετά από αυτό το χρονικό διάστημα, αλλά όταν εκκαθαριστούν οι περίοδοι λειτουργίας, που πραγματοποιείται περίπου κάθε %s/%s προσβάσεις, , αλλά μόνο κατά τις προσβάσεις που πραγματοποιούνται από άλλες περιόδους σύνδεσης (εάν η τιμή είναι 0, αυτό σημαίνει ότι ο καθαρισμός της περιόδου σύνδεσης γίνεται με μια εξωτερική διαδικασία).
    \nΣημείωση: σε ορισμένους διακομιστές που είναι εξοπλισμένοι με μηχανισμό καθαρισμού εξωτερικής συνεδρίας (cron στο Debian, Ubuntu…), οι συνεδρίες μπορούν να καταστραφούν μετά από καθυστέρηση, που ορίζεται από μια εξωτερική διαμόρφωση, ανεξάρτητα από την τιμή που εισάγεται εδώ. +SessionsPurgedByExternalSystem=Οι περίοδοι σύνδεσης σε αυτόν τον διακομιστή φαίνεται να καθαρίζονται από έναν εξωτερικό μηχανισμό (cron υπό debian, ubuntu ...), πιθανώς κάθε %s δευτερόλεπτα (= η τιμή της παραμέτρου session.gc_maxlifetime). Η Αλλαγή της τιμή της παραμέτρου από εδώ δεν θα έχει κάποιο αποτέλεσμα. Πρέπει να ζητήσετε από τον διαχειριστή του διακομιστή να αλλάξει την καθυστέρηση συνεδρίας. +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 -ValueIsForcedBySystem=This value is forced by the system. You can't change it. +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 είναι ένας διαδοχικός αριθμός αυτόματης αύξησης χωρίς επαναφορά -SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset +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=Διακομιστής μεσολάβησης: Κωδικός πρόσβασης @@ -1311,8 +1322,8 @@ ExtraFieldsThirdParties=Συμπληρωματικά χαρακτηριστικ ExtraFieldsContacts=Συμπληρωματικά χαρακτηριστικά (επαφές / διεύθυνση) ExtraFieldsMember=Συμπληρωματικά χαρακτηριστικά (μέλος) ExtraFieldsMemberType=Συμπληρωματικά χαρακτηριστικά (τύπος μέλους) -ExtraFieldsCustomerInvoices=Συμπληρωματικές ιδιότητες (τιμολόγια) -ExtraFieldsCustomerInvoicesRec=Συμπληρωματικά χαρακτηριστικά (τιμολόγια προτύπων) +ExtraFieldsCustomerInvoices=Συμπληρωματικά χαρακτηριστικά (τιμολόγια) +ExtraFieldsCustomerInvoicesRec=Συμπληρωματικά χαρακτηριστικά (πρότυπα τιμολόγια) ExtraFieldsSupplierOrders=Συμπληρωματικά χαρακτηριστικά (παραγγελίες) ExtraFieldsSupplierInvoices=Συμπληρωματικά χαρακτηριστικά (τιμολόγια) ExtraFieldsProject=Συμπληρωματικά χαρακτηριστικά (έργα) @@ -1320,258 +1331,261 @@ 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=Activated modules -TotalNumberOfActivatedModules=Ενεργοποιημένες μονάδες: %s / %s -YouMustEnableOneModule=You must at least enable 1 module +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=Combo list loading optimization +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. +YouHaveXObjectUseComboOptim=Έχετε %s %s στη βάση δεδομένων. Μπορείτε να μεταβείτε στη ρύθμιση της ενότητας για να ενεργοποιήσετε τη φόρτωση της λίστας συνδυασμών κατά το πάτημα πλήκτρου +YouHaveXObjectUseSearchOptim=Έχετε %s %s στη βάση δεδομένων. Μπορείτε να προσθέσετε τη σταθερά %s σε 1 στο μενού Αρχική-Ρυθμίσεις-Άλλες ρυθμίσεις +YouHaveXObjectUseSearchOptimDesc=Αυτό περιορίζει την αναζήτηση στην αρχή των συμβολοσειρών, γεγονός που καθιστά δυνατή τη χρήση ευρετηρίων στη βάση δεδομένων και θα πρέπει να λάβετε άμεση απάντηση. +YouHaveXObjectAndSearchOptimOn=Έχετε %s %s στη βάση δεδομένων και η σταθερά %s έχει οριστεί σε %s στο μενού Αρχική-Ρυθμίσεις-Άλλες ρυθμίσεις BrowserIsOK=Χρησιμοποιείτε το πρόγραμμα περιήγησης web %s. Αυτό το πρόγραμμα περιήγησης είναι εντάξει για την ασφάλεια και την απόδοση. BrowserIsKO=Χρησιμοποιείτε το πρόγραμμα περιήγησης web %s. Αυτό το πρόγραμμα περιήγησης είναι γνωστό ότι αποτελεί κακή επιλογή για ασφάλεια, απόδοση και αξιοπιστία. Σας συνιστούμε να χρησιμοποιήσετε Firefox, Chrome, Opera ή Safari. PHPModuleLoaded=Το στοιχείο PHP %s έχει φορτωθεί PreloadOPCode=Χρησιμοποιείται προ-φορτωμένο OPCode -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=Ζητήστε την προτιμώμενη μέθοδο αποστολής για τρίτους. +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=Εμφάνιση email επαφών (ή τηλέφωνα αν δεν έχουν καθοριστεί) και λίστα πληροφοριών πόλης (επιλογή λίστας ή σύνθετο πλαίσιο)
    Οι επαφές θα εμφανιστούν με μια μορφή ονόματος "Dupond Durand - dupond.durand@email.com - Παρίσι" ή "Dupond Durand - 06 07 59 65 66 - Παρίσι» αντί για «Dupond Durand». +AskForPreferredShippingMethod=Ζητήστε την προτιμώμενη μέθοδο αποστολής για τρίτα μέρη. FieldEdition=Έκδοση στο πεδίο %s -FillThisOnlyIfRequired=Παράδειγμα: +2 (συμπληρώστε μόνο αν ζώνη ώρας αντισταθμίσουν τα προβλήματα για προβλήματα που προέκυψαν) +FillThisOnlyIfRequired=Παράδειγμα: +2 (συμπλήρωση μόνο εάν παρουσιαστούν προβλήματα μετατόπισης ζώνης ώρας) GetBarCode=Πάρτε barcode NumberingModules=Μοντέλα αρίθμησης -DocumentModules=Document models +DocumentModules=Υποδείγματα εγγράφων ##### Module password generation PasswordGenerationStandard=Επιστρέφει έναν κωδικό πρόσβασης που δημιουργήθηκε σύμφωνα με τον εσωτερικό αλγόριθμο του Dolibarr: %s χαρακτήρες που περιέχουν κοινόχρηστους αριθμούς και χαρακτήρες με πεζά. PasswordGenerationNone=Μην προτείνετε έναν κωδικό πρόσβασης που δημιουργείται. Ο κωδικός πρόσβασης πρέπει να πληκτρολογηθεί μη αυτόματα. -PasswordGenerationPerso=Επιστρέψτε έναν κωδικό πρόσβασης σύμφωνα με τις προσωπικές σας ρυθμίσεις. +PasswordGenerationPerso=Επιστρέφει έναν κωδικό πρόσβασης σύμφωνα με τις προσωπικές σας ρυθμίσεις. SetupPerso=Σύμφωνα με τη διαμόρφωσή σας PasswordPatternDesc=Περιγραφή προτύπου κωδικού πρόσβασης ##### Users setup ##### RuleForGeneratedPasswords=Κανόνες δημιουργίας και επικύρωσης κωδικών πρόσβασης -DisableForgetPasswordLinkOnLogonPage=Να μην εμφανίζεται ο σύνδεσμος "Ξεχασμένος κωδικός πρόσβασης" στη σελίδα Σύνδεση -UsersSetup=Ρυθμίσεις αρθρώματος χρηστών -UserMailRequired=Απαιτείται ηλεκτρονικό ταχυδρομείο για τη δημιουργία νέου χρήστη -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=Πρότυπα εγγράφων για έγγραφα που δημιουργούνται από εγγραφή χρήστη +DisableForgetPasswordLinkOnLogonPage=Μην εμφανίζεται ο σύνδεσμος "Ξέχασα τον κωδικό πρόσβασης" στη σελίδα σύνδεσης +UsersSetup=Ρύθμιση ενότητας χρηστών +UserMailRequired=Απαιτείται email για τη δημιουργία νέου χρήστη +UserHideInactive=Απόκρυψη ανενεργών χρηστών από όλες τις συνδυαστικές λίστες χρηστών (Δεν συνιστάται: αυτό μπορεί να σημαίνει ότι δεν θα μπορείτε να φιλτράρετε ή να κάνετε αναζήτηση σε παλιούς χρήστες σε ορισμένες σελίδες) +UsersDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργήθηκαν από εγγραφή χρήστη GroupsDocModules=Πρότυπα εγγράφων για έγγραφα που δημιουργούνται από εγγραφή ομάδας ##### HRM setup ##### -HRMSetup=Ρύθμιση μονάδας HRM +HRMSetup=Ρύθμιση ενότητας HRM ##### Company setup ##### -CompanySetup=Ρυθμίσεις αρθρώματος Εταιριών +CompanySetup=Ρύθμιση ενότητας Εταιριών CompanyCodeChecker=Επιλογές για την αυτόματη δημιουργία κωδικών πελατών / προμηθευτών -AccountCodeManager=Επιλογές για την αυτόματη δημιουργία κωδικών λογιστικής πελάτη / πωλητή -NotificationsDesc=Οι ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου μπορούν να σταλούν αυτόματα για ορισμένα συμβάντα Dolibarr.
    Οι παραλήπτες των ειδοποιήσεων μπορούν να οριστούν: +AccountCodeManager=Επιλογές για αυτόματη δημιουργία λογιστικών κωδικών πελάτη/προμηθευτή +NotificationsDesc=Οι ειδοποιήσεις μέσω email μπορούν να αποστέλλονται αυτόματα για ορισμένα συμβάντα του Dolibarr.
    Οι παραλήπτες των ειδοποιήσεων μπορούν να οριστούν: NotificationsDescUser=* ανά χρήστη, έναν χρήστη τη φορά. NotificationsDescContact=* ανά επαφές τρίτου μέρους (πελάτες ή προμηθευτές), μία επαφή κάθε φορά. -NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. +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=Η επικύρωση ενός τιμολογίου θα απαγορεύεται εάν η ημερομηνία του είναι προγενέστερη από την ημερομηνία του τελευταίου τιμολογίου του ίδιου τύπου. ##### 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=Suggested payments mode on sales order by default if not defined on the order +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=Τσέκαρε το πλαίσιο ελέγχου για την αποστολή επιβεβαίωσης αλληλογραφίας στα μέλη (επικύρωση ή νέα συνδρομή) είναι ενεργοποιημένη από προεπιλογή -MemberCreateAnExternalUserForSubscriptionValidated=Create an external user login for each new member subscription validated +AdherentLoginRequired= Διαχείριση μιας Σύνδεσης για κάθε μέλος +AdherentMailRequired=Απαιτείται email για τη δημιουργία νέου μέλους +MemberSendInformationByMailByDefault=Το πλαίσιο ελέγχου για την αποστολή επιβεβαίωσης αλληλογραφίας στα μέλη (επικύρωση ή νέα συνδρομή) είναι ενεργοποιημένο από προεπιλογή +MemberCreateAnExternalUserForSubscriptionValidated=Δημιουργήστε στοιχεία σύνδεσης εξωτερικού χρήστη για κάθε επικυρωμένη συνδρομή νέου μέλους VisitorCanChooseItsPaymentMode=Ο επισκέπτης μπορεί να επιλέξει μεταξύ των διαθέσιμων τρόπων πληρωμής -MEMBER_REMINDER_EMAIL=Ενεργοποιήστε την αυτόματη υπενθύμιση μέσω ηλεκτρονικού ταχυδρομείου των συνδρομών που έχουν λήξει. Σημείωση: Η ενότητα %s πρέπει να ενεργοποιηθεί και να ρυθμιστεί σωστά για να στείλετε υπενθυμίσεις. -MembersDocModules=Document templates for documents generated from member record +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) -LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Παράδειγμα: samaccountname +LDAPFilterConnectionExample=Παράδειγμα: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Παράδειγμα: &(objectClass=groupOfUsers) +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=Παράδειγμα: δρόμος @@ -1596,368 +1610,369 @@ 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=Αυτή η σελίδα παρέχει μερικές επιταγές ή συμβουλές σχετικά με την απόδοση. -NotInstalled=Not installed. -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. +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=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=Ενεργοποίηση στην καρτέλα Συνημμένα αρχεία προϊόντος / υπηρεσίας μια επιλογή για τη συγχώνευση προϊόντος PDF σε πρόταση PDF azur εάν το προϊόν / η υπηρεσία περιλαμβάνεται στην πρόταση +OnProductSelectAddProductDesc=Πώς να χρησιμοποιήσετε την περιγραφή των προϊόντων όταν προσθέτετε ένα προϊόν ως γραμμή ενός εγγράφου +AutoFillFormFieldBeforeSubmit=Συμπληρώστε αυτόματα το πεδίο εισαγωγής περιγραφής με την περιγραφή του προϊόντος +DoNotAutofillButAutoConcat=Μην συμπληρώνετε αυτόματα το πεδίο εισαγωγής με περιγραφή του προϊόντος. Η περιγραφή του προϊόντος θα συνδεθεί αυτόματα με την περιγραφή που εισάγατε. +DoNotUseDescriptionOfProdut=Η περιγραφή του προϊόντος δεν θα συμπεριληφθεί ποτέ στην περιγραφή των γραμμών των εγγράφων +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=Number of backup logs to keep -ConfigureCleaningCronjobToSetFrequencyOfSaves=Ρυθμίστε τη διαμόρφωση της προγραμματισμένης εργασίας για να ορίσετε την εφεδρική συχνότητα καταγραφής +SyslogFileNumberOfSaves=Αριθμός αρχείων καταγραφής αντιγράφων ασφαλείας προς διατήρηση +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=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=Απόκρυψη της λίστας παραληπτών (που έχουν εγγραφεί ως καθολικό 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 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 για μαζικά eMailings (Εργαλεία-> eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=Δημιουργία / έκδοση WYSIWIG για όλα τα μηνύματα (εκτός από τα εργαλεία-> eMailing) -FCKeditorForTicket=Δημιουργία / έκδοση WYSIWIG για εισιτήρια +FCKeditorForNotePublic=WYSIWYG δημιουργία/έκδοση του πεδίου «δημόσιες σημειώσεις» στοιχείων +FCKeditorForNotePrivate=WYSIWYG δημιουργία/έκδοση του πεδίου "ιδιωτικές σημειώσεις" στοιχείων +FCKeditorForCompany=WYSIWYG δημιουργία/έκδοση της περιγραφής πεδίου στοιχείων (εκτός προϊόντων/υπηρεσιών) +FCKeditorForProduct=WYSIWYG δημιουργία/έκδοση της περιγραφής πεδίου προϊόντων/υπηρεσιών +FCKeditorForProductDetails=WYSIWYG δημιουργία/έκδοση γραμμών λεπτομερειών προϊόντων για όλες τις οντότητες (προσφορές, παραγγελίες, τιμολόγια κ.λ.π...). Προειδοποίηση: Η χρήση αυτής της επιλογής για αυτήν την περίπτωση δεν συνιστάται, καθώς μπορεί να δημιουργήσει προβλήματα με ειδικούς χαρακτήρες και τη μορφοποίηση σελίδων κατά τη δημιουργία αρχείων 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 -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 +NotTopTreeMenuPersonalized=Εξατομικευμένα μενού που δεν συνδέονται με μια καταχώρηση του επάνω μενού +NewMenu=Νέο μενού +MenuHandler=Πρόγραμμα χειρισμού μενού +MenuModule=Ενότητα Μενού +HideUnauthorizedMenu=Απόκρυψη μη εξουσιοδοτημένων μενού και για εσωτερικούς χρήστες (απλώς γκριζαρισμένα διαφορετικά) +DetailId=Αναγνωριστικό μενού +DetailMenuHandler=Πρόγραμμα χειρισμού μενού όπου θα εμφανίζεται το νέο μενού +DetailMenuModule=Όνομα ενότητας εάν η καταχώριση μενού προέρχεται από μια ενότητα DetailType=Τύπος μενού (πάνω ή αριστερά) -DetailTitre=Ετικέτα μενού ή κωδικό ετικέτας για μετάφραση -DetailUrl=Διεύθυνση URL όπου σας στέλνει το μενού (Απόλυτη σύνδεση URL ή εξωτερικός σύνδεσμος με http://) +DetailTitre=Ετικέτα μενού ή κωδικός ετικέτας για μετάφραση +DetailUrl=Διεύθυνση URL που σας στέλνει το μενού (Απόλυτος σύνδεσμος URL ή εξωτερικός σύνδεσμος με http://) 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=Φόροι, ρυθμίσεις κοινωνικών ή φορολογικών φόρων και μερίσματα +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 -CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Keep the checkbox “Automatically create the payment” empty by default when creating a new tax +AccountancyCodeSell=Λογιστικός κώδικας πώλησης +AccountancyCodeBuy=Λογιστικός κώδικας αγοράς +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Διατηρήστε το πλαίσιο ελέγχου "Αυτόματη δημιουργία πληρωμής" κενό από προεπιλογή κατά τη δημιουργία νέου φόρου ##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Κλειδί για την έγκριση σύνδεσης εξαγωγής -SecurityKey = Security Key +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=Αυτόματη ρύθμιση αυτής της κατάστασης για συμβάντα στο φίλτρο αναζήτησης της προβολής ατζέντας -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_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=Ενεργοποίηση υπενθύμισης συμβάντος μέσω 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=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=Χρησιμοποιήστε μόνο έναν σύνδεσμο "τηλ::" σε αριθμούς τηλεφώνου -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. +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=Κωδικός κλειδιού για το "Enter" που ορίστηκε στον barcode reader (Παράδειγμα: 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 έχει απενεργοποιηθεί. Ο εξερευνητής API δεν απαιτείται να παρέχει υπηρεσίες API. Είναι ένα εργαλείο για τον προγραμματιστή να εντοπίσει / δοκιμάσει τα API REST. Αν χρειάζεστε αυτό το εργαλείο, μεταβείτε στη ρύθμιση της ενότητας 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 +GeoIPMaxmindSetup=Ρύθμιση ενότητας GeoIP Maxmind 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. +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=Μπορείτε να βρείτε επιλογές για ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου ενεργοποιώντας και διαμορφώνοντας την ενότητα "Ειδοποίηση". -TemplatesForNotifications=Templates for notifications -ListOfNotificationsPerUser=Λίστα αυτόματων ειδοποιήσεων ανά χρήστη * -ListOfNotificationsPerUserOrContact=Κατάλογος πιθανών αυτόματων ειδοποιήσεων (σε επιχειρηματικό συμβάν) διαθέσιμων ανά χρήστη * ή ανά επαφή ** +YouMayFindNotificationsFeaturesIntoModuleNotification=Μπορείτε να βρείτε επιλογές για ειδοποιήσεις μέσω email ενεργοποιώντας και διαμορφώνοντας την ενότητα "Ειδοποίηση". +TemplatesForNotifications=Πρότυπα για ειδοποιήσεις +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' για να μην επισημανθεί) -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +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=Χρώμα κειμένου του κουμπιού ενέργειας TextTitleColor=Χρώμα κειμένου του τίτλου σελίδας -LinkColor=Χρώμα σε συνδέσμους -PressF5AfterChangingThis=Πατήστε CTRL + F5 στο πληκτρολόγιο ή διαγράψτε την προσωρινή μνήμη του προγράμματος περιήγησής σας αφού αλλάξετε αυτήν την τιμή για να την έχετε αποτελεσματική +LinkColor=Χρώμα συνδέσμων +PressF5AfterChangingThis=Πατήστε το συνδυασμό πλήκτρων CTRL+F5 στο πληκτρολόγιο ή διαγράψτε την προσωρινή μνήμη του προγράμματος περιήγησης σας αφού αλλάξετε αυτήν την τιμή για να είναι αποτελεσματική NotSupportedByAllThemes=Θα λειτουργεί με βασικά θέματα, μπορεί να μην υποστηρίζεται από εξωτερικά θέματα BackgroundColor=Χρώμα φόντου TopMenuBackgroundColor=Χρώμα φόντου για το επάνω μενού -TopMenuDisableImages=Απόκρυψη εικόνων στο μενού "Κορυφαία" +TopMenuDisableImages=Εικονίδιο ή Κείμενο στο επάνω μενού LeftMenuBackgroundColor=Χρώμα φόντου για το αριστερό μενού BackgroundTableTitleColor=Χρώμα φόντου για τη γραμμή επικεφαλίδας του πίνακα BackgroundTableTitleTextColor=Χρώμα κειμένου για τη γραμμή τίτλου πίνακα -BackgroundTableTitleTextlinkColor=Text color for Table title link line +BackgroundTableTitleTextlinkColor=Χρώμα κειμένου για τη γραμμή συνδέσμου τίτλου πίνακα BackgroundTableLineOddColor=Χρώμα φόντου για τις περιττές (μονές) γραμμές του πίνακα BackgroundTableLineEvenColor=Χρώμα φόντου για τις άρτιες (ζυγές) γραμμές του πίνακα -MinimumNoticePeriod=Ελάχιστη περίοδος προειδοποίησης (Η αίτησή σας πρέπει να γίνει πριν από αυτή την καθυστέρηση) +MinimumNoticePeriod=Ελάχιστη περίοδος προειδοποίησης (Η αίτηση σας για άδεια πρέπει να υποβληθεί πριν από αυτό το διάστημα) NbAddedAutomatically=Αριθμός ημερών που προστίθενται στους μετρητές χρηστών (αυτόματα) κάθε μήνα -EnterAnyCode=This field contains a reference to identify the line. Enter any value of your choice, but without special characters. -Enter0or1=Εισαγάγετε 0 ή 1 -UnicodeCurrency=Εισαγάγετε εδώ μεταξύ τιράντες, λίστα αριθμού byte που αντιπροσωπεύει το σύμβολο νομίσματος. Για παράδειγμα: για το $, πληκτρολογήστε [36] - για την Βραζιλία, το πραγματικό R $ [82,36] - για €, πληκτρολογήστε [8364] +EnterAnyCode=Αυτό το πεδίο περιέχει μια αναφορά για τον προσδιορισμό της γραμμής. Εισάγετε οποιαδήποτε τιμή της επιλογής σας, αλλά χωρίς ειδικούς χαρακτήρες. +Enter0or1=Εισαγωγή 0 ή 1 +UnicodeCurrency=Εισαγετε εδώ ανάμεσα σε αγκύλες λίστα με αριθμό byte που αντιπροσωπεύει το σύμβολο νομίσματος. Για παράδειγμα: για $, πληκτρολογήστε [36] - για Βραζιλία real R$ [82,36] - για €, πληκτρολογήστε [8364] ColorFormat=Το χρώμα RGB είναι σε μορφή HEX, π.χ.: 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=Όνομα εικονιδίου σε μορφή:
    - image.png για ένα αρχείο εικόνας στον τρέχοντα κατάλογο θεμάτων
    - image.png@module εάν το αρχείο βρίσκεται στον κατάλογο /img/ μιας ενότητας
    - fa-xxx για ένα FontAwesome fa-xxx εικονίδιο
    - fontawesome_xxx_fa_color_size για ένα FontAwesome fa-xxx εικονίδιο (με πρόθεμα, χρώμα και μέγεθος) PositionIntoComboList=Θέση γραμμής σε σύνθετο πλαίσιο -SellTaxRate=Sales tax rate -RecuperableOnly=Ναι για ΦΠΑ "Δεν γίνεται αντιληπτό αλλά ανακτήσιμο" αφιερωμένο σε κάποια χώρα στη Γαλλία. Διατηρήστε την τιμή "Όχι" σε όλες τις άλλες περιπτώσεις. -UrlTrackingDesc=Αν ο παροχέας ή η υπηρεσία μεταφορών προσφέρει μια σελίδα ή έναν ιστότοπο για να ελέγξει την κατάσταση των αποστολών σας, μπορείτε να την εισάγετε εδώ. Μπορείτε να χρησιμοποιήσετε το κλειδί {TRACKID} στις παραμέτρους διεύθυνσης URL, ώστε το σύστημα να το αντικαταστήσει με τον αριθμό καταδίωξης που εισήγαγε ο χρήστης στην κάρτα αποστολής. -OpportunityPercent=Όταν δημιουργείτε ένα μόλυβδο, θα ορίσετε ένα εκτιμώμενο ποσό έργου / οδηγού. Σύμφωνα με την κατάσταση του μολύβδου, το ποσό αυτό μπορεί να πολλαπλασιαστεί με αυτό το ποσοστό για να εκτιμηθεί το συνολικό ποσό που μπορεί να δημιουργήσει το σύνολο των πελατών σας. Η τιμή είναι ένα ποσοστό (μεταξύ 0 και 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=Ναι για τον ΦΠΑ "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=Παρεμβάσεις @@ -1965,258 +1980,330 @@ MailToSendSupplierRequestForQuotation=Αίτημα προσφοράς MailToSendSupplierOrder=Εντολές αγοράς MailToSendSupplierInvoice=Τιμολόγια προμηθευτή MailToSendContract=Συμβόλαια -MailToSendReception=Receptions -MailToThirdparty=Πελ./Προμ. +MailToSendReception=Παραλαβές +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=Templates for documents of warehouses +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=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 +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=Απόκρυψη περιγραμμάτων στο πλαίσιο διεύθυνσης αποστολέα +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=Enter calculation rule if previous field was set to Yes.
    For example:
    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) -GDPRContactDesc=Εάν αποθηκεύετε δεδομένα σχετικά με ευρωπαϊκές εταιρείες / πολίτες, μπορείτε να αναφέρετε εδώ την επαφή που είναι υπεύθυνη για τον Κανονισμό Γενικής Προστασίας Δεδομένων -HelpOnTooltip=Βοήθεια κειμένου για να εμφανιστεί στο tooltip -HelpOnTooltipDesc=Βάλτε εδώ ένα κείμενο ή ένα πλήκτρο μετάφρασης για να εμφανιστεί το κείμενο σε μια επεξήγηση όταν το πεδίο εμφανίζεται σε μια φόρμα +COMPANY_DIGITARIA_UNIQUE_CODE=Δεν επιτρέπεται το διπλότυπο +GDPRContact=Υπεύθυνος Προστασίας Δεδομένων (DPO, Προστασία Προσωπικών Δεδομένων ή επαφή GDPR) +GDPRContactDesc=Εάν αποθηκεύετε προσωπικά δεδομένα στο Πληροφοριακό σας Σύστημα, μπορείτε να ορίσετε την επαφή που είναι υπεύθυνη για τον Γενικό Κανονισμό Προστασίας Δεδομένων εδώ +HelpOnTooltip=Κείμενο βοήθειας προς εμφάνιση στο αναδυόμενο πλαίσιο επεξήγησης(tooltip) +HelpOnTooltipDesc=Τοποθετήστε κείμενο ή ένα κλειδί μετάφρασης εδώ για να εμφανίζεται στο αναδυόμενο πλαίσιο επεξήγησης(tooltip) όταν αυτό το πεδίο εμφανίζεται σε μια φόρμα YouCanDeleteFileOnServerWith=Μπορείτε να διαγράψετε αυτό το αρχείο στο διακομιστή με γραμμή εντολών:
    %s -ChartLoaded=Λογαριασμός που έχει φορτωθεί +ChartLoaded=Φορτώθηκε το λογιστικό σχέδιο SocialNetworkSetup=Ρύθμιση της ενότητας Κοινωνικά δίκτυα EnableFeatureFor=Ενεργοποίηση χαρακτηριστικών για %s -VATIsUsedIsOff=Σημείωση: Η επιλογή χρήσης Φόρου Πωλήσεων ή ΦΠΑ έχει οριστεί σε Off (Απενεργοποίηση) στο μενού %s - %s, οπότε ο φόρος πωλήσεων ή ο Vat που θα χρησιμοποιηθούν θα είναι πάντα 0 για τις πωλήσεις. -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=Συλλέκτης ηλεκτρονικού ταχυδρομείου -EmailCollectorDescription=Προσθέστε μια προγραμματισμένη εργασία και μια σελίδα ρύθμισης για να σαρώσετε τακτικά παράθυρα email (χρησιμοποιώντας το πρωτόκολλο IMAP) και να καταγράψετε τα μηνύματα που έχετε λάβει στην αίτησή σας, στο σωστό μέρος ή / και να δημιουργήσετε αυτόματα τις εγγραφές (όπως οι οδηγοί). -NewEmailCollector=Νέος συλλέκτης ηλεκτρονικού ταχυδρομείου -EMailHost=Υποδοχή διακομιστή IMAP ηλεκτρονικού ταχυδρομείου +VATIsUsedIsOff=Σημείωση: Η επιλογή χρήσης Φόρου Πωλήσεων ή Φ.Π.Α. έχει οριστεί σε Off (Απενεργοποίηση) στο μενού %s - %s, οπότε ο Φόρος Πωλήσεων ή ο Φ.Π.Α. που θα χρησιμοποιηθούν θα είναι πάντα 0 για τις πωλήσεις. +SwapSenderAndRecipientOnPDF=Εναλλαγή θέσης διεύθυνσης αποστολέα και παραλήπτη σε έγγραφα PDF +FeatureSupportedOnTextFieldsOnly=Προειδοποίηση, η δυνατότητα υποστηρίζεται μόνο σε πεδία κειμένου και συνδυαστικές λίστες. Επίσης, πρέπει να οριστεί μια παράμετρος URL action=create ή action=edit Ή το όνομα της σελίδας πρέπει να τελειώνει με 'new.php' για να ενεργοποιηθεί αυτή η δυνατότητα. +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=Operations are executed from top to bottom order -MaxEmailCollectPerCollect=Μέγιστος αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου που συλλέγονται ανά συλλογή +EmailcollectorOperations=Λειτουργίες συλλέκτη +EmailcollectorOperationsDesc=Οι λειτουργίες εκτελούνται με σειρά από πάνω προς τα κάτω +MaxEmailCollectPerCollect=Μέγιστος αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου που συλλέγονται CollectNow=Συλλέξτε τώρα -ConfirmCloneEmailCollector=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε τον συλλέκτη e-mail %s? -DateLastCollectResult=Date of latest collect try -DateLastcollectResultOk=Date of latest collect success +ConfirmCloneEmailCollector=Είστε σίγουροι ότι θέλετε να αντιγράψετε τον συλλέκτη email %s; +DateLastCollectResult=Ημερομηνία τελευταίας προσπάθειας συλλογής +DateLastcollectResultOk=Ημερομηνία τελευταίας επιτυχούς συλλογής LastResult=Τελευταίο αποτέλεσμα -EmailCollectorConfirmCollectTitle=Το email συλλέγει επιβεβαίωση -EmailCollectorConfirmCollect=Θέλετε να εκτελέσετε τη συλλογή για αυτόν τον συλλέκτη τώρα; -NoNewEmailToProcess=Δεν υπάρχει νέο μήνυμα ηλεκτρονικού ταχυδρομείου (φίλτρα που ταιριάζουν) για επεξεργασία -NothingProcessed=Τίποτα δεν έγινε -XEmailsDoneYActionsDone=%s τα κατάλληλα μηνύματα ηλεκτρονικού ταχυδρομείου, τα emails %s υποβλήθηκαν σε επιτυχή επεξεργασία (για %s η εγγραφή / οι ενέργειες έγιναν) -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) -CodeLastResult=Τελευταίος κωδικός αποτελέσματος -NbOfEmailsInInbox=Αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου στον κατάλογο προέλευσης +EmailCollectorHideMailHeaders=Μην συμπεριλάβετε το περιεχόμενο της κεφαλίδας του email στο αποθηκευμένο περιεχόμενο των συλλεγόμενων e-mail +EmailCollectorHideMailHeadersHelp=Όταν είναι ενεργοποιημένο, οι κεφαλίδες e-mail δεν προστίθενται στο τέλος του περιεχομένου email που αποθηκεύεται ως συμβάν ατζέντας. +EmailCollectorConfirmCollectTitle=Επιβεβαίωση συλλογής email +EmailCollectorConfirmCollect=Θέλετε να εκτελέσετε αυτόν τον συλλέκτη τώρα; +EmailCollectorExampleToCollectTicketRequestsDesc=Συλλέξτε email που ταιριάζουν με ορισμένους κανόνες και δημιουργήστε αυτόματα ένα ticket (η ενότητα tickets πρέπει να είναι ενεργοποιημένη) με τις πληροφορίες email. Μπορείτε να χρησιμοποιήσετε αυτόν τον συλλέκτη εάν παρέχετε κάποια υποστήριξη μέσω email, έτσι το ticket του αιτήματος σας θα δημιουργηθεί αυτόματα. Ενεργοποιήστε επίσης τη Συλλογή_Απαντήσεων για να συλλέξετε απαντήσεις του πελάτη σας απευθείας στην προβολή ticket (πρέπει να απαντήσετε μέσα από το Dolibarr). +EmailCollectorExampleToCollectTicketRequests=Παράδειγμα συλλογής του ticket αιτήματος (μόνο το πρώτο μήνυμα) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Σαρώστε τον κατάλογο "Απεσταλμένα" του γραμματοκιβωτίου σας για να βρείτε email που στάλθηκαν ως απάντηση άλλου email απευθείας από το λογισμικό email σας και όχι από το Dolibarr. Εάν βρεθεί ένα τέτοιο μήνυμα ηλεκτρονικού ταχυδρομείου, το συμβάν απάντησης καταγράφεται στο Dolibarr +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=Παράδειγμα συλλογής απαντήσεων email που στάλθηκαν από εξωτερικό λογισμικό ηλεκτρονικού ταχυδρομείου +EmailCollectorExampleToCollectDolibarrAnswersDesc=Συλλέξτε όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που είναι απάντηση σε ένα email που στάλθηκε από την εφαρμογη σας. Ένα συμβάν (Η ενότητα ατζέντα πρέπει να είναι ενεργοποιημένη) με την απάντηση μέσω email θα καταγραφεί. Για παράδειγμα, εάν στείλετε μια εμπορική προσφορά, παραγγελία, τιμολόγιο ή μήνυμα για ένα ticket μέσω email από την εφαρμογή και ο παραλήπτης απαντήσει στο email σας, το σύστημα θα καταλάβει αυτόματα την απάντηση και θα την προσθέσει στο ERP σας. +EmailCollectorExampleToCollectDolibarrAnswers=Παράδειγμα συλλογής όλων των εισερχόμενων μηνυμάτων ως απαντήσεων σε μηνύματα που αποστέλλονται από το Dolibarr' +EmailCollectorExampleToCollectLeadsDesc=Συλλέξτε email που ταιριάζουν με ορισμένους κανόνες και δημιουργήστε αυτόματα έναν υποψήφιο πελάτη (η ενότητα Έργο πρέπει να είναι ενεργοποιημένη) με τις πληροφορίες email. Μπορείτε να χρησιμοποιήσετε αυτόν τον συλλέκτη εάν θέλετε να ακολουθήσετε την προοπτική αυτή χρησιμοποιώντας την ενότητα Έργο (1 υποψήφιος πελάτης = 1 έργο), έτσι ώστε οι υποψήφιοι πελάτες σας να δημιουργούνται αυτόματα. Εάν ο συλλέκτης Collect_Responses είναι επίσης ενεργοποιημένος, όταν στέλνετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου από τους δυνητικούς πελάτες, τις προτάσεις σας ή οποιοδήποτε άλλο αντικείμενο, ενδέχεται επίσης να δείτε απαντήσεις των πελατών ή των συνεργατών σας απευθείας στην εφαρμογή.
    Σημείωση: Με αυτό το αρχικό παράδειγμα, δημιουργείται ο τίτλος του υποψήφιου πελάτη συμπεριλαμβανομένου του email. Εάν το τρίτο μέρος δεν μπορεί να βρεθεί στη βάση δεδομένων (νέος πελάτης), ο υποψήφιος πελάτης θα προσαρτηθεί στο τρίτο μέρος με αναγνωριστικό 1. +EmailCollectorExampleToCollectLeads=Παράδειγμα συλλογής προοπτικών +EmailCollectorExampleToCollectJobCandidaturesDesc=Συλλέξτε μηνύματα ηλεκτρονικού ταχυδρομείου που αιτήσεις πρόσληψης (Πρέπει να είναι ενεργοποιημένη η ενότητα πρόσληψη ). Μπορείτε να συμπληρώσετε αυτόν τον συλλέκτη εάν θέλετε να δημιουργήσετε αυτόματα μια υποψηφιότητα για ένα αίτημα εργασίας. Σημείωση: Με αυτό το αρχικό παράδειγμα, δημιουργείται ο τίτλος της υποψηφιότητας συμπεριλαμβανομένου του email. +EmailCollectorExampleToCollectJobCandidatures=Παράδειγμα συλλογής υποψηφιοτήτων για θέσεις εργασίας που ελήφθησαν μέσω e-mail +NoNewEmailToProcess=Δεν υπάρχει νέο email (αντίστοιχα φίλτρα) για επεξεργασία +NothingProcessed=Δεν έγινε τίποτα +XEmailsDoneYActionsDone=%s email που πληρούν τα κριτήρια, %s email επιτυχώς επεξεργασμένα (για %s εγγραφή/ενέργειες που έχουν ολοκληρωθεί) +RecordEvent=Καταγραφή ενός συμβάντος στην ατζέντα (με τον τύπο Email απεσταλμένα ή εισερχόμενα) +CreateLeadAndThirdParty=Δημιουργήστε έναν υποψήφιο πελάτη (και τρίτο μέρος εάν είναι απαραίτητο) +CreateTicketAndThirdParty=Δημιουργήστε ένα ticket (συνδεδεμένο με ένα τρίτο μέρος, εάν το τρίτο μέρος φορτώθηκε από προηγούμενη λειτουργία ή μαντεύτηκε από ένα πρόγραμμα παρακολούθησης στην κεφαλίδα email, διαφορετικά χωρίς τρίτο μέρος) +CodeLastResult=Κωδικός Τελευταίου αποτελέσματος +NbOfEmailsInInbox=Αριθμός email στον κατάλογο προέλευσης LoadThirdPartyFromName=Φόρτωση αναζήτησης τρίτου μέρους στο %s (μόνο φόρτωση) LoadThirdPartyFromNameOrCreate=Φόρτωση αναζήτησης τρίτου μέρους στο %s (δημιουργία αν δεν βρεθεί) -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 +AttachJoinedDocumentsToObject=Αποθηκεύστε τα συνημμένα αρχεία σε έγγραφα αντικειμένων εάν βρεθεί μια αναφορά ενός αντικειμένου στο θέμα του email. +WithDolTrackingID=Μήνυμα από μια συνομιλία που ξεκίνησε από ένα πρώτο email που στάλθηκε από το Dolibarr +WithoutDolTrackingID=Μήνυμα από μια συνομιλία που ξεκίνησε από ένα πρώτο email που ΔΕΝ εστάλη από το Dolibarr +WithDolTrackingIDInMsgId=Το μήνυμα στάλθηκε από το Dolibarr +WithoutDolTrackingIDInMsgId=Το μήνυμα ΔΕΝ εστάλη από το Dolibarr +CreateCandidature=Δημιουργία αίτησης εργασίας FormatZip=Zip MainMenuCode=Κωδικός εισόδου μενού (mainmenu) 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. -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=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) -MAIN_OPTIMIZEFORTEXTBROWSER=Απλοποιήστε τη διεπαφή για τυφλό άτομο -MAIN_OPTIMIZEFORTEXTBROWSERDesc=Ενεργοποιήστε αυτήν την επιλογή εάν είστε τυφλός ή χρησιμοποιείτε την εφαρμογή από ένα πρόγραμμα περιήγησης κειμένου όπως Lynx ή Links. -MAIN_OPTIMIZEFORCOLORBLIND=Αλλάξτε το χρώμα της διεπαφής για τον τυφλό χρώμα -MAIN_OPTIMIZEFORCOLORBLINDDesc=Ενεργοποιήστε αυτή την επιλογή αν είστε τυφλός, σε μερικές περιπτώσεις το περιβάλλον εργασίας θα αλλάξει τη ρύθμιση χρώματος για να αυξηθεί η αντίθεση. +DisableProspectCustomerType=Απενεργοποιήστε τον τύπο τρίτου μέρους "Προοπτική + Πελάτης" (άρα το τρίτο μέρος πρέπει να είναι "Προοπτική" ή "Πελάτης", αλλά δεν μπορεί να είναι και τα δύο) +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=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=Τα μοντέλα εξαγωγής είναι κοινά με όλους -ExportSetup=Ρύθμιση εξαγωγής της ενότητας -ImportSetup=Ρύθμιση εισαγωγής λειτουργικής μονάδας -InstanceUniqueID=Μοναδικό αναγνωριστικό της παρουσίας +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=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=Με ένα λογαριασμό GMail, εάν έχετε ενεργοποιήσει την επικύρωση 2 βημάτων, σας συνιστούμε να δημιουργήσετε έναν ειδικό δευτερεύοντα κωδικό πρόσβασης για την εφαρμογή αντί να χρησιμοποιήσετε τη δική σας passsword από 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;'
    +LargerThan=Μεγαλύτερη από +IfTrackingIDFoundEventWillBeLinked=Λάβετε υπόψη ότι εάν ένα αναγνωριστικό παρακολούθησης ενός αντικειμένου βρεθεί στο ηλεκτρονικό ταχυδρομείο ή εάν το μήνυμα ηλεκτρονικού ταχυδρομείου είναι απάντηση σε ένα email που έχει ήδη παραληφθεί και συνδέεται με ένα αντικείμενο, το συμβάν που δημιουργήθηκε θα συνδεθεί αυτόματα με το γνωστό σχετικό αντικείμενο. +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=Να επιτρέπεται η πρόσβαση σε κάποιο 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=Τα μηνύματα ηλεκτρονικού ταχυδρομείου θα έχουν μια ετικέτα "Αναφορές" που ταιριάζουν με αυτή τη σύνταξη -PDF_SHOW_PROJECT=Show project on document -ShowProjectLabel=Project Label -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 +EMailsWillHaveMessageID=Τα μηνύματα ηλεκτρονικού ταχυδρομείου θα έχουν μια ετικέτα "References" που ταιριάζει με αυτήν τη σύνταξη +PDF_SHOW_PROJECT=Εμφάνιση έργου στο έγγραφο +ShowProjectLabel=Ετικέτα έργου +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=Συμπεριλάβετε διακριτικό τίτλο στην ονομασία τρίτου μέρους +THIRDPARTY_ALIAS=Όνομα τρίτου μέρους - Διακριτικός τίτλος τρίτου μέρους +ALIAS_THIRDPARTY=Διακριτικός τίτλος τρίτου μέρους - Όνομα τρίτου μέρους +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=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 +TemplateAdded=Προστέθηκε πρότυπο +TemplateUpdated=Το πρότυπο ενημερώθηκε +TemplateDeleted=Το πρότυπο διαγράφηκε +MailToSendEventPush=Email υπενθύμισης συμβάντος +SwitchThisForABetterSecurity=Η εναλλαγή αυτής της τιμής σε %s συνιστάται για μεγαλύτερη ασφάλεια +DictionaryProductNature= Φύση του προϊόντος +CountryIfSpecificToOneCountry=Χώρα (εάν αφορά συγκεκριμένη χώρα) +YouMayFindSecurityAdviceHere=Μπορείτε να βρείτε συμβουλές ασφαλείας εδώ +ModuleActivatedMayExposeInformation=Αυτή η επέκταση PHP ενδέχεται να εκθέσει ευαίσθητα δεδομένα. Εάν δεν τη χρειάζεστε, απενεργοποιήστε τη. +ModuleActivatedDoNotUseInProduction=Έχει ενεργοποιηθεί μια ενότητα σχεδιασμένη για την ανάπτυξη. Μην την ενεργοποιείτε σε περιβάλλον παραγωγής. +CombinationsSeparator=Διαχωριστικός χαρακτήρας για συνδυασμούς προϊόντων +SeeLinkToOnlineDocumentation=Για παραδείγματα δείτε τον σύνδεσμο προς την ηλεκτρονική τεκμηρίωση στο επάνω μενού +SHOW_SUBPRODUCT_REF_IN_PDF=Εάν χρησιμοποιείται η δυνατότητα "%s" της ενότητας %s , εμφανίστε τις λεπτομέρειες των υποπροϊόντων ενός κιτ σε PDF. +AskThisIDToYourBank=Επικοινωνήστε με την τράπεζά σας για να λάβετε αυτό το αναγνωριστικό +AdvancedModeOnly=Η άδεια είναι διαθέσιμη μόνο στη λειτουργία για προχωρημένους +ConfFileIsReadableOrWritableByAnyUsers=Το αρχείο conf είναι αναγνώσιμο ή εγγράψιμο από οποιονδήποτε χρήστη. Δώστε άδεια μόνο σε χρήστη και ομάδα του διακομιστή web. +MailToSendEventOrganization=Οργάνωση Εκδηλώσεων +MailToPartnership=Συνεργάτη +AGENDA_EVENT_DEFAULT_STATUS=Προεπιλεγμένη κατάσταση συμβάντος κατά τη δημιουργία ενός συμβάντος από τη φόρμα +YouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP +IfCLINotRequiredYouShouldDisablePHPFunctions=Θα πρέπει να απενεργοποιήσετε τις λειτουργίες της PHP, εκτός εάν χρειάζεται να εκτελέσετε εντολές συστήματος με προσαρμοσμένο κώδικα +PHPFunctionsRequiredForCLI=Για σκοπούς (όπως προγραμματισμένη δημιουργία αντιγράφων ασφαλείας εργασιών ή εκτέλεση προγράμματος antiivurs), πρέπει να διατηρήσετε τις λειτουργίες της PHP +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 sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale 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 -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 +NotRecommended=Δεν προτείνεται +ARestrictedPath=Κάποια περιορισμένη διαδρομή +CheckForModuleUpdate=Ελέγξτε για ενημερώσεις εξωτερικών ενοτήτων +CheckForModuleUpdateHelp=Αυτή η ενέργεια θα συνδεθεί με τους επεξεργαστές εξωτερικών ενοτήτων για να ελέγξει εάν είναι διαθέσιμη μια νέα έκδοση. +ModuleUpdateAvailable=Υπάρχει διαθέσιμη ενημέρωση +NoExternalModuleWithUpdate=Δεν βρέθηκαν ενημερώσεις για εξωτερικές ενότητες +SwaggerDescriptionFile=Αρχείο περιγραφής Swagger API (για χρήση με redoc για παράδειγμα) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Ενεργοποιήσατε το ξεπερασμένο πλέον WS API. Αντ' αυτού πρέπει να χρησιμοποιήσετε το REST 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=Πλήρης απενεργοποίηση των στατιστικών στοιχείων πλαισίου +DashboardDisableBlocks=Εικονίδια ανοιχτών αντικειμένων (για επεξεργασία ή καθυστερημένα) στον κύριο πίνακα εργαλείων +DashboardDisableBlockAgenda=Απενεργοποίηση του εικονιδίου ατζέντας +DashboardDisableBlockProject=Απενεργοποίηση του εικονίδιου για έργα +DashboardDisableBlockCustomer=Απενεργοποίηση του εικονιδίου για πελάτες +DashboardDisableBlockSupplier=Απενεργοποίηση του εικονιδίου για προμηθευτές +DashboardDisableBlockContract=Απενεργοποίηση του εικονιδίου για συμβόλαια +DashboardDisableBlockTicket=Απενεργοποίηση του εικονιδίου για tickets +DashboardDisableBlockBank=Απενεργοποίηση του εικονιδίου για τράπεζες +DashboardDisableBlockAdherent=Απενεργοποίηση του εικονιδίου για συνδρομές +DashboardDisableBlockExpenseReport=Απενεργοποίηση του εικονιδίου για αναφορές εξόδων +DashboardDisableBlockHoliday=Απενεργοποίηση του εικονιδίου για άδειες +EnabledCondition=Προϋπόθεση να είναι ενεργοποιημένο το πεδίο (αν δεν είναι ενεργοποιημένο, η ορατότητα θα είναι πάντα απενεργοποιημένη) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Εάν θέλετε να χρησιμοποιήσετε δεύτερο φόρο, πρέπει να ενεργοποιήσετε και τον πρώτο φόρο επί των πωλήσεων +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Εάν θέλετε να χρησιμοποιήσετε τρίτο φόρο, πρέπει να ενεργοποιήσετε και τον πρώτο φόρο επί των πωλήσεων +LanguageAndPresentation=Γλώσσα και παρουσίαση +SkinAndColors=Skin και χρώματα +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Εάν θέλετε να χρησιμοποιήσετε δεύτερο φόρο, πρέπει να ενεργοποιήσετε και τον πρώτο φόρο επί των πωλήσεων +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Εάν θέλετε να χρησιμοποιήσετε τρίτο φόρο, πρέπει να ενεργοποιήσετε και τον πρώτο φόρο επί των πωλήσεων +PDF_USE_1A=Δημιουργήστε PDF με μορφή PDF/A-1b +MissingTranslationForConfKey = Λείπει η μετάφραση για το %s +NativeModules=Βασικές ενότητες +NoDeployedModulesFoundWithThisSearchCriteria=Δεν βρέθηκαν ενότητες για αυτά τα κριτήρια αναζήτησης +API_DISABLE_COMPRESSION=Απενεργοποιήστε τη συμπίεση των απαντήσεων API +EachTerminalHasItsOwnCounter=Κάθε τερματικό χρησιμοποιεί το δικό του ταμείο. +FillAndSaveAccountIdAndSecret=Συμπληρώστε και αποθηκεύστε πρώτα το αναγνωριστικό και το μυστικό λογαριασμού +PreviousHash=Προηγούμενο hash +LateWarningAfter=Προειδοποίηση μετά την "καθυστέρηση" +TemplateforBusinessCards=Πρότυπο για μια επαγγελματική κάρτα σε διαφορετικό μέγεθος +InventorySetup= Ρύθμιση αποθέματος +ExportUseLowMemoryMode=Χρησιμοποιήστε low memory mode +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=Προεπιλεγμένη κατάσταση ευκαιρίας (πρώτη κατάσταση όταν δημιουργείται μια προοπτική) + +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 στα τιμολόγια +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 μιας φόρμας diff --git a/htdocs/langs/el_GR/agenda.lang b/htdocs/langs/el_GR/agenda.lang index fedbfdde118..5877db8fb3c 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=Αναγνωριστικού συμβάντος +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,144 +31,149 @@ ViewWeek=Προβολή εβδομάδας ViewPerUser=Προβολή ανά χρήστη ViewPerType=Προβολή ανά τύπο AutoActions= Αυτόματη συμπλήρωση ημερολογίου -AgendaAutoActionDesc= Εδώ μπορείτε να ορίσετε τα γεγονότα που θέλετε να δημιουργήσει αυτόματα το Dolibarr στην Ατζέντα. Αν δεν υπάρχει τίποτα, θα συμπεριληφθούν μόνο οι μη αυτόματες ενέργειες στα αρχεία καταγραφής και θα εμφανίζονται στην Ατζέντα. Η αυτόματη παρακολούθηση επιχειρηματικών ενεργειών που πραγματοποιούνται σε αντικείμενα (επικύρωση, αλλαγή κατάστασης) δεν θα αποθηκευτεί. -AgendaSetupOtherDesc= Αυτή η σελίδα παρέχει επιλογές που επιτρέπουν την εξαγωγή των συμβάντων Dolibarr σε ένα εξωτερικό ημερολόγιο (Thunderbird, Google Calendar κ.λπ.) -AgendaExtSitesDesc=Αυτή η σελίδα σας επιτρέπει να ρυθμίσετε εξωτερικά ημερολόγια. -ActionsEvents=Γεγονότα για τα οποία θα δημιουργήσουν εγγραφή στο ημερολόγιο, αυτόματα -EventRemindersByEmailNotEnabled=Οι υπενθυμίσεις συμβάντων μέσω ηλεκτρονικού ταχυδρομείου δεν ενεργοποιήθηκαν στη ρύθμιση μονάδας %s. +AgendaAutoActionDesc= Εδώ μπορείτε να ορίσετε συμβάντα που θέλετε να δημιουργεί αυτόματα το Dolibarr στην Ατζέντα. Εάν δεν έχει επιλεγεί τίποτα, μόνο οι μη αυτόματες ενέργειες θα περιλαμβάνονται στα αρχεία καταγραφής και θα εμφανίζονται στην Ατζέντα. Η αυτόματη παρακολούθηση των επιχειρηματικών ενεργειών που γίνονται σε αντικείμενα (επικύρωση, αλλαγή κατάστασης) δεν θα αποθηκευτεί. +AgendaSetupOtherDesc= Αυτή η σελίδα παρέχει επιλογές που επιτρέπουν την εξαγωγή των συμβάντων σας στο Dolibarr σε ένα εξωτερικό ημερολόγιο (Thunderbird, Google Calendar κ.λπ.) +AgendaExtSitesDesc=Αυτή η σελίδα σας επιτρέπει να ρυθμίσετε τον συγχρονισμό και την εμφάνιση εξωτερικών ημερολόγιων στην ατζέντα του Dolibarr. +ActionsEvents=Συμβάντα που θα καταγράφουν αυτόματα στην Ατζέντα +EventRemindersByEmailNotEnabled=Οι υπενθυμίσεις συμβάντων μέσω email δεν ενεργοποιήθηκαν στη ρύθμιση της ενότητας %s. ##### Agenda event labels ##### NewCompanyToDolibarr=Το τρίτο μέρος %s δημιουργήθηκε -COMPANY_MODIFYInDolibarr=Τρίτο μέρος %s τροποποιήθηκε +COMPANY_MODIFYInDolibarr=Το τρίτο μέρος %s τροποποιήθηκε COMPANY_DELETEInDolibarr=Το τρίτο μέρος %s διαγράφηκε -ContractValidatedInDolibarr=Συμβόλαιο %s επικυρώθηκε +ContractValidatedInDolibarr=Η σύμβαση %s επικυρώθηκε CONTRACT_DELETEInDolibarr=Η σύμβαση %s διαγράφηκε -PropalClosedSignedInDolibarr=Πρόσφορα %s υπεγράφη -PropalClosedRefusedInDolibarr=Πρόσφορα %s απορρίφθηκε -PropalValidatedInDolibarr=Η πρόταση %s επικυρώθηκε -PropalClassifiedBilledInDolibarr=Πρόταση %s ταξινομούνται χρεωθεί +PropalClosedSignedInDolibarr=Η προσφορά %s υπεγράφη +PropalClosedRefusedInDolibarr=Η πρόσφορα %s απορρίφθηκε +PropalValidatedInDolibarr=Η προσφορά %s επικυρώθηκε +PropalBackToDraftInDolibarr=Επιστροφή της προσφοράς %s σε κατάσταση προσχεδίου +PropalClassifiedBilledInDolibarr=Η προσφορά %s ταξινομήθηκε ως τιμολογημένη InvoiceValidatedInDolibarr=Το τιμολόγιο %s επικυρώθηκε -InvoiceValidatedInDolibarrFromPos=Το τιμολόγιο επικυρώθηκε από το POS -InvoiceBackToDraftInDolibarr=Τιμολόγιο %s θα επιστρέψει στην κατάσταση του σχεδίου -InvoiceDeleteDolibarr=Τιμολόγιο %s διαγράφεται -InvoicePaidInDolibarr=Τιμολόγιο %s άλλαξε σε καταβληθεί -InvoiceCanceledInDolibarr=Τιμολόγιο %s ακυρώθηκε -MemberValidatedInDolibarr=Μέλος %s επικυρωθεί +InvoiceValidatedInDolibarrFromPos=Το τιμολόγιο %s επικυρώθηκε από το POS +InvoiceBackToDraftInDolibarr=Επιστροφή του τιμολογίου %s σε κατάσταση προσχεδίου +InvoiceDeleteDolibarr=Το τιμολόγιο %s διαγράφηκε +InvoicePaidInDolibarr=Το τιμολόγιο %s άλλαξε σε πληρωμένο +InvoiceCanceledInDolibarr=Το τιμολόγιο %s ακυρώθηκε +MemberValidatedInDolibarr=Το μέλος %s επικυρώθηκε MemberModifiedInDolibarr=Το μέλος %s τροποποιήθηκε -MemberResiliatedInDolibarr=Το μέλος %s τερματίστηκε -MemberDeletedInDolibarr=Μέλος %s διαγράφηκε -MemberSubscriptionAddedInDolibarr=Εγγραφή %s για μέλος %s προστέθηκε -MemberSubscriptionModifiedInDolibarr=Συνδρομή %s για τροποποιημένο μέλος %s +MemberResiliatedInDolibarr=Το μέλος %s διαγράφηκε +MemberDeletedInDolibarr=Το μέλος %s διαγράφηκε +MemberExcludedInDolibarr=Το μέλος %sεξαιρέθηκε +MemberSubscriptionAddedInDolibarr=Προστέθηκε συνδρομή %s για το μέλος %s +MemberSubscriptionModifiedInDolibarr=Η συνδρομή %s για το μέλος %s τροποποιήθηκε MemberSubscriptionDeletedInDolibarr=Η συνδρομή %s για το μέλος %s διαγράφηκε ShipmentValidatedInDolibarr=Η αποστολή %s επικυρώθηκε -ShipmentClassifyClosedInDolibarr=Η αποστολή %s ταξινομείται χρεώνεται -ShipmentUnClassifyCloseddInDolibarr=Η αποστολή %s ταξινομήθηκε εκ νέου -ShipmentBackToDraftInDolibarr=Η αποστολή %s επιστρέφει στην κατάσταση του σχεδίου +ShipmentClassifyClosedInDolibarr=Η αποστολή %s ταξινομήθηκε ως τιμολογημένη +ShipmentUnClassifyCloseddInDolibarr=Η αποστολή %s ταξινομήθηκε ως ανοικτή ξανά +ShipmentBackToDraftInDolibarr=Επιστροφή της αποστολης %s σε κατάσταση προσχεδίου ShipmentDeletedInDolibarr=Η αποστολή %s διαγράφηκε ShipmentCanceledInDolibarr=Η αποστολή %s ακυρώθηκε -ReceptionValidatedInDolibarr=Η λήψη %s επικυρώθηκε -OrderCreatedInDolibarr=Παραγγελία %s +ReceptionValidatedInDolibarr=Η παραλαβή %s επικυρώθηκε +ReceptionClassifyClosedInDolibarr=Η παραλαβή %s ταξινομήθηκε ως κλειστή +OrderCreatedInDolibarr=Η Παραγγελία %s δημιουργήθηκε OrderValidatedInDolibarr=Η παραγγελία %s επικυρώθηκε -OrderDeliveredInDolibarr=Παραγγελία %s κατατάσσεται παραδοτέα -OrderCanceledInDolibarr=Παραγγελία %s ακυρώθηκε -OrderBilledInDolibarr=Παραγγελία %s κατατάσσεται χρεωμένη -OrderApprovedInDolibarr=Παραγγελία %s εγκρίθηκε -OrderRefusedInDolibarr=Παραγγελία %s απορριφθεί -OrderBackToDraftInDolibarr=Παραγγελία %s θα επιστρέψει στην κατάσταση σχέδιο -ProposalSentByEMail=Εμπορική πρόταση %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου -ContractSentByEMail=Η σύμβαση %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου -OrderSentByEMail=Παραγγελία πώλησης %s μέσω ηλεκτρονικού ταχυδρομείου -InvoiceSentByEMail=Το τιμολόγιο πελατών %s στάλθηκε μέσω ηλεκτρονικού ταχυδρομείου -SupplierOrderSentByEMail=Παραγγελία αγοράς %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου +OrderDeliveredInDolibarr=Η παραγγελία %s ταξινομήθηκε ως παραδομένη +OrderCanceledInDolibarr=Η παραγγελία %s ακυρώθηκε +OrderBilledInDolibarr=Η παραγγελία %s ταξινομήθηκε ως τιμολογημένη +OrderApprovedInDolibarr=Η παραγγελία %s εγκρίθηκε +OrderRefusedInDolibarr=Η παραγγελία %s απορρίφθηκε +OrderBackToDraftInDolibarr=Επιστροφή της παραγγελίας %s σε κατάσταση προσχεδίου +ProposalSentByEMail=Η προσφορά %s στάλθηκε μέσω email +ContractSentByEMail=Η σύμβαση %s στάλθηκε μέσω email +OrderSentByEMail=Η παραγγελία πωλήσεων %s στάλθηκε μέσω email +InvoiceSentByEMail=Το τιμολόγιο πελάτη %s στάλθηκε μέσω email +SupplierOrderSentByEMail=Η εντολή αγοράς %s στάλθηκε μέσω email ORDER_SUPPLIER_DELETEInDolibarr=Η εντολή αγοράς %s διαγράφηκε -SupplierInvoiceSentByEMail=Τιμολόγιο πωλητή %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου -ShippingSentByEMail=Η αποστολή %s αποστέλλεται μέσω ηλεκτρονικού ταχυδρομείου +SupplierInvoiceSentByEMail=Το τιμολόγιο προμηθευτή %s στάλθηκε μέσω email +ShippingSentByEMail=Η αποστολή %s στάλθηκε μέσω email ShippingValidated= Η αποστολή %s επικυρώθηκε -InterventionSentByEMail=Η παρέμβαση %s στάλθηκε με ηλεκτρονικό ταχυδρομείο +InterventionSentByEMail=Η παρέμβαση %s στάλθηκε μέσω email ProposalDeleted=Η προσφορά διαγράφηκε OrderDeleted=Η παραγγελία διαγράφηκε InvoiceDeleted=Το τιμολόγιο διαγράφηκε -DraftInvoiceDeleted=Το πρόχειρο τιμολόγιο διαγράφηκε +DraftInvoiceDeleted=Το προσχέδιο τιμολογίου διαγράφηκε CONTACT_CREATEInDolibarr=Η επαφή %s δημιουργήθηκε CONTACT_MODIFYInDolibarr=Η επαφή %s τροποποιήθηκε 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 028eca8d933..42f57f2be23 100644 --- a/htdocs/langs/el_GR/assets.lang +++ b/htdocs/langs/el_GR/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 = Πάγια -NewAsset = Νέα εγγραφή παγίου -AccountancyCodeAsset = Λογιστικός Κωδικός (Πάγιο) -AccountancyCodeDepreciationAsset = Λογιστικός κωδικός (λογαριασμού απόσβεσης παγίου) -AccountancyCodeDepreciationExpense = Λογιστικός κωδικός (λογαριασμός εξόδων απόσβεσης) -NewAssetType=Νέος τύπος παγίου -AssetsTypeSetup=Ρύθμιση τύπου παγίου -AssetTypeModified=Ο τύπος παγίου τροποποιήθηκε -AssetType=Τύπος παγίου -AssetsLines=Πάγια +NewAsset=Νέα εγγραφή ενεργητικού +AccountancyCodeAsset=Λογιστικός Κωδικός (Ενεργητικό) +AccountancyCodeDepreciationAsset=Λογιστικός κωδικός (λογαριασμού απόσβεσης ενεργητικού) +AccountancyCodeDepreciationExpense=Λογιστικός κωδικός (λογαριασμός απόσβεσης εξόδων) +AssetsLines=Περιουσιακά στοιχεία DeleteType=Διαγραφή -DeleteAnAssetType=Διαγραφή ενός τύπου παγίου -ConfirmDeleteAssetType=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον τύπο παγίου; -ShowTypeCard=Show type '%s' +DeleteAnAssetType=Διαγραφή ενός τύπου ενεργητικού +ConfirmDeleteAssetType=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό τον τύπο ενεργητικού; +ShowTypeCard=Εμφάνιση τύπου "%s" # Module label 'ModuleAssetsName' -ModuleAssetsName = Πάγια +ModuleAssetsName=Ενεργητικό(Περιουσιακά στοιχεία) # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Περιγραφή παγίων +ModuleAssetsDesc=Περιγραφή ενεργητικού # # Admin page # -AssetsSetup = Ρυθμίσεις παγίων -Settings = Ρυθμίσεις -AssetsSetupPage = Σελίδα ρυθμίσεων παγίων -ExtraFieldsAssetsType = Συμπληρωματικά χαρακτηριστικά (τύπος παγίου) -AssetsType=Τύπος παγίου -AssetsTypeId=Ταυτότητα τύπου παγίου -AssetsTypeLabel=Ετικέτα τύπου παγίου -AssetsTypes=Τύποι παγίων +AssetSetup=Ρύθμιση ενεργητικού +AssetSetupPage=Σελίδα ρυθμίσης ενεργητικού +ExtraFieldsAssetModel=Συμπληρωματικά χαρακτηριστικά (τύπος ενεργητικού) + +AssetsType=Τύπος ενεργητικού +AssetsTypeId=Αναγνωριστικό τύπου ενεργητικού +AssetsTypeLabel=Ετικέτα τύπου ενεργητικού +AssetsTypes=Τύποι ενεργητικού +ASSET_ACCOUNTANCY_CATEGORY=Λογιστική ομάδα παγίων ενεργητικού # # Menu # -MenuAssets = Πάγια -MenuNewAsset = Νέα εγγραφή παγίου -MenuTypeAssets = Πληκτρολογήστε πάγια -MenuListAssets = Λίστα -MenuNewTypeAssets = Νέο -MenuListTypeAssets = Λίστα +MenuAssets=Ενεργητικό +MenuNewAsset=Νέα εγγραφή ενεργητικού +MenuAssetModels=Τύποι ενεργητικού +MenuListAssets=Λίστα +MenuNewAssetModel=Νεος Τύπος ενεργητικού +MenuListAssetModels=Λίστα # # Module # -Asset=Στοιχείο -NewAssetType=Νέος τύπος παγίου -NewAsset=Νέα εγγραφή παγίου -ConfirmDeleteAsset=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το στοιχείο; +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/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang index 832d2ad4da7..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=Η ετικέτα για αυτόν τον Λογιστικό Λογαριασμό, υπάρχει ήδη +SavingAccounts=Λογαριασμοί ταμιευτηρίου +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=Direct debit orders -StandingOrder=Παραγγελία άμεσης χρέωσης +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=Συνδέεται με μια συμβιβαστική είσοδο -StatusAccountOpened=Άνοιγμα +OnlyOpenedAccount=Μόνο ανοιχτοί λογαριασμοί +AccountToCredit=Λογαριασμός προς πίστωση +AccountToDebit=Λογαριασμός προς χρέωση +DisableConciliation=Απενεργοποίηση της λειτουργίας συμφωνίας από αυτό τον λογαριασμό +ConciliationDisabled=Η λειτουργία συμφωνίας απενεργοποιήθηκε. +LinkedToAConciliatedTransaction=Συνδέεται με μια συμφωνημένη συναλλαγή +StatusAccountOpened=Ανοιχτός StatusAccountClosed=Κλειστός AccountIdShort=Αριθμός LineRecord=Συναλλαγή -AddBankRecord=Προσθήκη καταχώρησης  +AddBankRecord=Προσθήκη καταχώρησης AddBankRecordLong=Προσθήκη εγγραφής με μη αυτόματο τρόπο  -Conciliated=Συγχωρήθηκε -ConciliatedBy=Πραγματοποίηση Συναλλαγής από +Conciliated=Συμφωνήθηκε +ReConciliedBy=Συμφωνήθηκε από DateConciliating=Ημερομ. Πραγματοποίησης Συναλλαγής BankLineConciliated=Η συναλλαγή συμφωνείται με την τραπεζική απόδειξη -Reconciled=Συγχωρήθηκε -NotReconciled=Δεν συμφιλιώνονται +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,45 +140,49 @@ 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=Είστε σίγουροι πως θέτε να διαγράψετε αυτή την εγγραφή BAN; -RejectCheck=Ελέγξτε την επιστροφή +ConfirmDeleteRib=Είστε σίγουροι πως θέτε να διαγράψετε αυτό το IBAN; +RejectCheck=Η επιταγή επιστράφηκε ConfirmRejectCheck=Είστε σίγουροι πως θέλετε να σημειώσετε αυτή την επιταγή ως απορριφθείσα; -RejectCheckDate=Ημερομηνία ελέγχου επιστροφής -CheckRejected=Ελέγξτε την επιστροφή -CheckRejectedAndInvoicesReopened=Έλεγχος επιστρεφόμενων και άνοιγμα τιμολογίων +RejectCheckDate=Ημερομηνία επιστροφής της επιταγής +CheckRejected=Η επιταγή επιστράφηκε +CheckRejectedAndInvoicesReopened=Η επιταγή επιστράφηκε και τα τιμολόγια ανοίγουν ξανά BankAccountModelModule=Πρότυπα εγγράφων για τραπεζικούς λογαριασμούς -DocumentModelSepaMandate=Υπόδειγμα εντολής ΕΧΠΕ +DocumentModelSepaMandate=Πρότυπο εντολής SEPA. Χρήσιμο μόνο για ευρωπαϊκές χώρες στην Ε.Ε. DocumentModelBan=Πρότυπο για εκτύπωση σελίδας με πληροφορίες BAN. -NewVariousPayment=Νέες διαφορετικές πληρωμές -VariousPayment=Διάφορες πληρωμές -VariousPayments=Διάφορες πληρωμές -ShowVariousPayment=Εμφάνιση διαφόρων πληρωμών -AddVariousPayment=Προσθήκη διαφόρων πληρωμών -VariousPaymentId=Διάφορα ID πληρωμής -VariousPaymentLabel=Διάφορες ετικέτες πληρωμής -ConfirmCloneVariousPayment=Επιβεβαιώση του κλώνου μιας διαφορετικής πληρωμής -SEPAMandate=Εντολές άμεσης χρέωσης -YourSEPAMandate=Οι εντολές άμεσης χρέωσης σας. -FindYourSEPAMandate=Αυτή είναι η εντολή ΕΧΠΕ για να εξουσιοδοτήσετε την εταιρεία μας να κάνει άμεση εντολή χρέωσης στην τράπεζά σας. Επιστρέψτε το υπογεγραμμένο (σάρωση του υπογεγραμμένου εγγράφου) ή στείλτε το ταχυδρομικώς η με mail -AutoReportLastAccountStatement=Συμπληρώστε αυτόματα το πεδίο ' αριθμός τραπεζικού λογαριασμού ' με τον τελευταίο αριθμό τραπεζικής δήλωσης όταν κάνετε τη συμφωνία. -CashControl=Έλεγχος ταμείου POS -NewCashFence=Άνοιγμα ή κλείσιμο νέου ταμείου +NewVariousPayment=Νέα άλλου τύπου πληρωμή +VariousPayment=Άλλου τύπου πληρωμή +VariousPayments=Άλλου τύπου πληρωμές +ShowVariousPayment=Εμφάνιση Άλλου τύπου πληρωμών +AddVariousPayment=Προσθήκη Άλλου τύπου πληρωμή +VariousPaymentId=ID πληρωμής άλλου τύπου +VariousPaymentLabel=Ετικέτα πληρωμής άλλου τύπου +ConfirmCloneVariousPayment=Επιβεβαίωση την αντιγραφή μιας πληρωμής άλλου τύπου +SEPAMandate=Εντολή SEPA +YourSEPAMandate=Η εντολή σας στον SEPA +FindYourSEPAMandate=Αυτή είναι η εντολή σας από τον SEPA για να εξουσιοδοτήσετε την εταιρεία μας να κάνει εντολή άμεσης χρέωσης στην τράπεζά σας. Επιστρέψτε το υπογεγραμμένο (σάρωση του υπογεγραμμένου εγγράφου) ή στείλτε το ταχυδρομικά στη διεύθυνση +AutoReportLastAccountStatement=Συμπληρώστε αυτόματα το πεδίο «αριθμός κίνησης τραπεζικού λογαριασμού» με τον τελευταίο αριθμό κίνησης κατά τη συμφωνία +CashControl=Έλεγχος μετρητών POS +NewCashFence=Νέος έλεγχος μετρητών (άνοιγμα ή κλείσιμο) BankColorizeMovement=Χρωματισμός κινήσεων BankColorizeMovementDesc=Εάν αυτή η λειτουργία είναι ενεργή, μπορείτε να επιλέξετε συγκεκριμένο χρώμα φόντου για χρεωστικές ή πιστωτικές κινήσεις 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 7e510ba1ac2..09c984f4ece 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -5,30 +5,30 @@ BillsCustomers=Τιμολόγια πελατών BillsCustomer=Τιμολόγιο Πελάτη BillsSuppliers=Τιμολόγια προμηθευτή BillsCustomersUnpaid=Ανεξόφλητα τιμολόγια πελάτη -BillsCustomersUnpaidForCompany=Ανεξόφλητα τιμολόγια του πελάτη %s -BillsSuppliersUnpaid=Μη πληρωθέντα τιμολόγια προμηθευτή -BillsSuppliersUnpaidForCompany=Μη πληρωθέντα τιμολόγια προμηθευτών για %s -BillsLate=Καθυστερημένες Πληρωμές -BillsStatistics=Στατιστικά για τα τιμολόγια των πελατών -BillsStatisticsSuppliers=Οι πωλητές τιμολογούν τα στατιστικά στοιχεία -DisabledBecauseDispatchedInBookkeeping=Απενεργοποιήθηκε επειδή το τιμολόγιο αποστέλλεται στη λογιστική -DisabledBecauseNotLastInvoice=Απενεργοποιημένο επειδή το τιμολόγιο δεν είναι διαγράψιμο. Ορισμένα τιμολόγια καταγράφηκαν μετά από αυτό και θα δημιουργήσει τρύπες στον μετρητή. -DisabledBecauseNotErasable=Απενεργοποιημένο επειδή δεν μπορεί να διαγραφή +BillsCustomersUnpaidForCompany=Ανεξόφλητα τιμολόγια πελατών για %s +BillsSuppliersUnpaid=Ανεξόφλητα τιμολόγια προμηθευτή +BillsSuppliersUnpaidForCompany=Ανεξόφλητα τιμολόγια προμηθευτών για %s +BillsLate=Καθυστερημένες πληρωμές +BillsStatistics=Στατιστικά τιμολογίων πελατών +BillsStatisticsSuppliers=Στατιστικά τιμολογίων προμηθευτών +DisabledBecauseDispatchedInBookkeeping=Απενεργοποιήθηκε επειδή το τιμολόγιο καταχωρήθηκε στη λογιστική +DisabledBecauseNotLastInvoice=Απενεργοποιημένο επειδή το τιμολόγιο δεν μπορεί να διαγράφει. Ορισμένα τιμολόγια καταγράφηκαν μετά από αυτό και θα χαλάσει τη σειρά της αυτόματης αρίθμησης. +DisabledBecauseNotErasable=Απενεργοποιημένο επειδή δεν μπορεί να διαγραφεί InvoiceStandard=Τυπικό Τιμολόγιο InvoiceStandardAsk=Τυπικό Τιμολόγιο InvoiceStandardDesc=Αυτό το είδος τιμολογίου είναι το τυπικό τιμολόγιο. -InvoiceDeposit=Τιμολόγιο Κατάθεσης -InvoiceDepositAsk=Τιμολόγιο Κατάθεσης -InvoiceDepositDesc=Αυτός ο τύπος τιμολογίου χρησιμοποιείτε όταν λαμβάνετε μια κατάθεση +InvoiceDeposit=Απόδειξη είσπραξης προκαταβολής. +InvoiceDepositAsk=Απόδειξη είσπραξης προκαταβολής. +InvoiceDepositDesc=Αυτός ο τύπος απόδειξης χρησιμοποιείται όταν λαμβάνετε μια προκαταβολή. InvoiceProForma=Προτιμολόγιο InvoiceProFormaAsk=Προτιμολόγιο -InvoiceProFormaDesc=Το Προτιμολόγιο είναι η εικόνα ενός πραγματικού τιμολογίου, χωρίς όμως να έχει χρηματική αξία +InvoiceProFormaDesc=Το Προτιμολόγιο είναι μια εικόνα ενός πραγματικού τιμολογίου αλλά δεν έχει λογιστική αξία. InvoiceReplacement=Τιμολόγιο Αντικατάστασης -InvoiceReplacementAsk=Αντικατάσταση τιμολογίου με -InvoiceReplacementDesc=Το τιμολόγιο αντικατάστασης χρησιμοποιείται για την πλήρη αντικατάσταση ενός τιμολογίου χωρίς πληρωμή που έχει ήδη παραληφθεί.

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

    Σημείωση: Μπορούν να αντικατασταθούν μόνο τιμολόγια χωρίς πληρωμή. Εάν το τιμολόγιο που αντικαταστήσατε δεν έχει κλείσει ακόμα, θα κλείσει αυτόματα ως «εγκαταλειμμένο». InvoiceAvoir=Πιστωτικό τιμολόγιο InvoiceAvoirAsk=Πιστωτικό τιμολόγιο για την διόρθωση τιμολογίου -InvoiceAvoirDesc=Το πιστωτικό σημείωμα είναι ένα αρνητικό τιμολόγιο που χρησιμοποιείται για να διορθωθεί το γεγονός ότι ένα τιμολόγιο εμφανίζει ένα ποσό που διαφέρει από το ποσό που έχει πράγματι καταβληθεί (π.χ. ο πελάτης κατέβαλε πάρα πολύ κατά λάθος ή δεν θα πληρώσει το πλήρες ποσό από την επιστροφή ορισμένων προϊόντων). +InvoiceAvoirDesc=Το πιστωτικό τιμολόγιο είναι ένα αρνητικό τιμολόγιο που χρησιμοποιείται για να διορθωθεί το γεγονός ότι ένα τιμολόγιο εμφανίζει ένα ποσό που διαφέρει από το ποσό που έχει πράγματι καταβληθεί (π.χ. ο πελάτης κατέβαλε περισσότερα κατά λάθος ή δεν θα πληρώσει το πλήρες ποσό από την επιστροφή ορισμένων προϊόντων). invoiceAvoirWithLines=Δημιουργία Πιστωτικού τιμολογίου με γραμμές από το τιμολόγιο προέλευσης. invoiceAvoirWithPaymentRestAmount=Δημιουργήστε Πιστωτικό Τιμολόγιο με το υπόλοιπο πριν από την καταβολή του τιμολογίου invoiceAvoirLineWithPaymentRestAmount=Πιστωτικό τιμολόγιο για το υπολειπόμενο ανεξόφλητο ποσό @@ -39,11 +39,11 @@ ReplacementByInvoice=Αντικαταστάθηκε από τιμολόγιο CorrectInvoice=Διόρθωση Τιμολογίου %s 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=Τιμολόγιο @@ -59,134 +59,135 @@ SupplierInvoiceLines=Γραμμές τιμολογίων προμηθευτή SupplierBill=Τιμολόγιο προμηθευτή SupplierBills=Τιμολόγια προμηθευτή Payment=Πληρωμή -PaymentBack=Refund -CustomerInvoicePaymentBack=Refund +PaymentBack=Επιστροφή χρημάτων +CustomerInvoicePaymentBack=Επιστροφή χρημάτων Payments=Πληρωμές PaymentsBack=Επιστροφές χρημάτων -paymentInInvoiceCurrency=in invoices currency -PaidBack=Paid back +paymentInInvoiceCurrency=σε νόμισμα τιμολογίων +PaidBack=Επιστροφή χρημάτων DeletePayment=Διαγραφή Πληρωμής -ConfirmDeletePayment=Είστε σίγουροι ότι θέλετε να διαγράψετε την πληρωμή; +ConfirmDeletePayment=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την πληρωμή; ConfirmConvertToReduc=Θέλετε να μετατρέψετε αυτό το %s σε διαθέσιμη πίστωση; -ConfirmConvertToReduc2=Το ποσό θα αποθηκευτεί σε όλες τις εκπτώσεις και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση για ένα τρέχον ή μελλοντικό τιμολόγιο για αυτόν τον πελάτη. +ConfirmConvertToReduc2=Το ποσό θα αποθηκευτεί μεταξύ όλων των εκπτώσεων και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση σε ένα τρέχον ή ένα μελλοντικό τιμολόγιο που αφορά αυτόν τον πελάτη. ConfirmConvertToReducSupplier=Θέλετε να μετατρέψετε αυτό το %s σε διαθέσιμη πίστωση; -ConfirmConvertToReducSupplier2=Το ποσό θα αποθηκευτεί σε όλες τις εκπτώσεις και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση για ένα τρέχον ή μελλοντικό τιμολόγιο για αυτόν τον προμηθευτή. +ConfirmConvertToReducSupplier2=Το ποσό θα αποθηκευτεί μεταξύ όλων των εκπτώσεων και θα μπορούσε να χρησιμοποιηθεί ως έκπτωση σε ένα τρέχον ή ένα μελλοντικό τιμολόγιο για αυτόν τον προμηθευτή. SupplierPayments=Πληρωμές προμηθευτών ReceivedPayments=Ληφθείσες Πληρωμές ReceivedCustomersPayments=Ληφθείσες Πληρωμές από πελάτες -PayedSuppliersPayments=Πληρωμές που καταβάλλονται σε πωλητές -ReceivedCustomersPaymentsToValid=Ληφθείσες Πληρωμές από πελάτες προς έγκριση +PayedSuppliersPayments=Πληρωμές που καταβλήθηκαν σε προμηθευτές +ReceivedCustomersPaymentsToValid=Ληφθείσες Πληρωμές από πελάτες προς επικύρωση PaymentsReportsForYear=Αναφορές Πληρωμών για %s PaymentsReports=Αναφορές Πληρωμών PaymentsAlreadyDone=Ιστορικό Πληρωμών -PaymentsBackAlreadyDone=Οι επιστροφές χρημάτων έχουν γίνει ήδη +PaymentsBackAlreadyDone=Επιστροφές χρημάτων που έχουν γίνει ήδη PaymentRule=Κανόνας Πληρωμής -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Τρόπος Πληρωμής +PaymentModes=Τρόποι Πληρωμής +DefaultPaymentMode=Προκαθορισμένος τρόπος πληρωμής DefaultBankAccount=Προεπιλεγμένος τραπεζικός λογαριασμός -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Τρόπος Πληρωμής (id) +CodePaymentMode=Τρόπος πληρωμής (κωδικός) +LabelPaymentMode=Τρόπος Πληρωμής (label) +PaymentModeShort=Τρόπος Πληρωμής PaymentTerm=Ορος πληρωμής PaymentConditions=Όροι πληρωμής PaymentConditionsShort=Όροι πληρωμής -PaymentAmount=Σύνολο πληρωμής -PaymentHigherThanReminderToPay=Η πληρωμή είναι μεγαλύτερη από το υπόλοιπο -HelpPaymentHigherThanReminderToPay=Προσοχή, το ποσό πληρωμής ενός ή περισσότερων λογαριασμών είναι μεγαλύτερο από το οφειλόμενο ποσό.
    Επεξεργαστείτε την καταχώρησή σας, διαφορετικά επιβεβαιώστε και σκεφτείτε να δημιουργήσετε ένα πιστωτικό σημείωμα για το ποσό που λάβατε για κάθε επιπλέον χρεωστικό τιμολόγιο. +PaymentAmount=Ποσό πληρωμής +PaymentHigherThanReminderToPay=Πληρωμή υψηλότερη από την υπενθύμιση πληρωμής +HelpPaymentHigherThanReminderToPay=Προσοχή, το ποσό πληρωμής ενός ή περισσότερων λογαριασμών είναι μεγαλύτερο από το οφειλόμενο ποσό.
    Επεξεργαστείτε την καταχώρησή σας, ή διαφορετικά επιβεβαιώστε και αναλογιστείτε αν πρέπει να δημιουργήσετε ένα πιστωτικό σημείωμα για το επιπλέον ποσό που λάβατε για κάθε τιμολόγιο. HelpPaymentHigherThanReminderToPaySupplier=Προσοχή, το ποσό πληρωμής ενός ή περισσότερων λογαριασμών είναι μεγαλύτερο από το οφειλόμενο ποσό.
    Επεξεργαστείτε την καταχώρησή σας, διαφορετικά επιβεβαιώστε και σκεφτείτε να δημιουργήσετε ένα πιστωτικό σημείωμα για την επιπλέον πληρωμή για κάθε επιπλέον χρεωστικό τιμολόγιο. -ClassifyPaid=Χαρακτηρισμός ως 'Πληρωμένο'' -ClassifyUnPaid=Ταξινόμηση 'Απλήρωτη' -ClassifyPaidPartially=Χαρακτηρισμός ως 'Μη Εξοφλημένο' -ClassifyCanceled=Χαρακτηρισμός ως 'Εγκαταλελειμμένο' -ClassifyClosed=Χαρακτηρισμός ως 'Κλειστό' -ClassifyUnBilled=Ταξινομήστε τα «Μη τιμολογημένα» +ClassifyPaid=Ταξινόμηση ως 'Πληρωμένο'' +ClassifyUnPaid=Ταξινόμηση ως "Απλήρωτο'' +ClassifyPaidPartially=Ταξινόμηση ως 'Μερικώς εξοφλημένο' +ClassifyCanceled=Ταξινόμηση ως 'Εγκαταλελειμμένο' +ClassifyClosed=Ταξινόμηση ως 'Κλειστό' +ClassifyUnBilled=Ταξινόμηση ως 'Μη τιμολογημένο' CreateBill=Δημιουργία Τιμολογίου CreateCreditNote=Δημιουργία πιστωτικού τιμολογίου -AddBill=Δημιουργία τιμολογίου ή δημιουργία σημείωσης -AddToDraftInvoices=Προσθήκη στο πρόχειρο τιμολόγιο +AddBill=Δημιουργία τιμολογίου ή πιστωτικού σημειώματος +AddToDraftInvoices=Προσθήκη στο προσχέδιο τιμολογίου DeleteBill=Διαγραφή Τιμολογίου -SearchACustomerInvoice=Εύρεση τιμολογίου πελάτη +SearchACustomerInvoice=Αναζήτηση τιμολογίου πελάτη SearchASupplierInvoice=Αναζήτηση τιμολογίου προμηθευτή CancelBill=Ακύρωση Τιμολογίου SendRemindByMail=Αποστολή υπενθύμισης με email -DoPayment=Enter payment -DoPaymentBack=Enter refund -ConvertToReduc=Μαρκάρετε ως διαθέσιμη πίστωση -ConvertExcessReceivedToReduc=Μετατρέψτε το υπερβάλλον έσοδο σε διαθέσιμη πίστωση +DoPayment=Εισαγωγή πληρωμής +DoPaymentBack=Εισαγωγή επιστροφής χρημάτων +ConvertToReduc=Επισήμανση ως διαθέσιμη πίστωση +ConvertExcessReceivedToReduc=Μετατρέψτε το πλεόνασμα που ελήφθη σε διαθέσιμη πίστωση ConvertExcessPaidToReduc=Μετατρέψτε το επιπλέον ποσό που καταβλήθηκε σε διαθέσιμη έκπτωση EnterPaymentReceivedFromCustomer=Εισαγωγή πληρωμής από πελάτη -EnterPaymentDueToCustomer=Πληρωμή προς προμηθευτή +EnterPaymentDueToCustomer=Πληρωμή οφειλής πελάτη DisabledBecauseRemainderToPayIsZero=Ανενεργό λόγο μηδενικού υπολοίπου πληρωμής PriceBase=Βασική τιμή BillStatus=Κατάσταση τιμολογίου StatusOfGeneratedInvoices=Κατάσταση δημιουργηθέντων τιμολογίων -BillStatusDraft=Πρόχειρο (απαιτείται επικύρωση) +BillStatusDraft=Προσχέδιο (πρέπει να επικυρωθεί) BillStatusPaid=Πληρωμένο -BillStatusPaidBackOrConverted=Επιστροφή χρημάτων ή πιστωτική κάρτα -BillStatusConverted=Καταβάλλεται (έτοιμο προς κατανάλωση στο τελικό τιμολόγιο) +BillStatusPaidBackOrConverted=Επιστροφή χρημάτων πιστωτικού σημειώματος ή επισήμανση ως διαθέσιμης πίστωσης +BillStatusConverted=Πληρωμένο (έτοιμο για κατανάλωση στο τελικό τιμολόγιο) BillStatusCanceled=Εγκαταλελειμμένο BillStatusValidated=Επικυρωμένο (χρήζει πληρωμής) BillStatusStarted=Ξεκίνησε BillStatusNotPaid=Απλήρωτο -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=Δεν έχει γίνει επιστροφή χρημάτων BillStatusClosedUnpaid=Κλειστό (απλήρωτο) BillStatusClosedPaidPartially=Πληρωμένο (μερικώς) -BillShortStatusDraft=Πρόχειρο +BillShortStatusDraft=Προσχέδιο BillShortStatusPaid=Πληρωμένο BillShortStatusPaidBackOrConverted=Επιστρέφονται ή μετατρέπονται -Refunded=Επιστροφή χρημάτων -BillShortStatusConverted=Επεξεργάστηκε +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) -ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Αυτό το μέρος ή άλλο χρησιμοποιείται ήδη, ώστε οι σειρές έκπτωσης δεν μπορούν να καταργηθούν. +ErrorDiscountAlreadyUsed=Σφάλμα, η έκπτωση έχει ήδη χρησιμοποιηθεί +ErrorInvoiceAvoirMustBeNegative=Σφάλμα, το σωστό τιμολόγιο πρέπει να έχει αρνητικό ποσό +ErrorInvoiceOfThisTypeMustBePositive=Σφάλμα, αυτός ο τύπος τιμολογίου πρέπει να έχει ένα θετικό ποσό εκτός του φόρου θετικό (ή μηδέν) +ErrorCantCancelIfReplacementInvoiceNotValidated=Σφάλμα, δεν μπορείτε να ακυρώσετε ένα τιμολόγιο που έχει αντικατασταθεί από ένα άλλο που είναι ακόμα σε κατάσταση προχείρου +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Αυτό ή ένα άλλο μέρος χρησιμοποιείται ήδη, επομένως η σειρά εκπτώσεων δεν μπορεί να αφαιρεθεί. +ErrorInvoiceIsNotLastOfSameType=Σφάλμα: Η ημερομηνία του τιμολογίου %s είναι %s. Θα πρέπει να είναι παλαιότερη η ίδια με την τελευταία καταχωρημένη ημερομηνία για τον ίδιο τύπο τιμολογίων (%s). Παρακαλώ αλλάξτε την ημερομηνία του τιμολογίου BillFrom=Από BillTo=Στοιχεία Πελάτη 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=Είσαστε σίγουρος ότι θέλετε να διαγράψετε αυτό το τιμολόγιο; -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=Αυτό το τιμολόγιο δεν έχει καταβληθεί πλήρως. Ποιος είναι ο λόγος για το κλείσιμο αυτού του τιμολογίου; -ConfirmClassifyPaidPartiallyReasonAvoir=Το υπόλοιπο που δεν πληρώθηκε (%s %s) είναι μια έκπτωση που δόθηκε επειδή η πληρωμή έγινε πριν από τη λήξη. Κανονίζω τον ΦΠΑ με πιστωτικό σημείωμα. +ConfirmDeleteBill=Είσαστε σίγουροι ότι θέλετε να διαγράψετε αυτό το τιμολόγιο; +ConfirmValidateBill=Είστε σίγουροι πως θέλετε να επικυρώσετε αυτό το τιμολόγιο με αριθμό παραστατικού %s; +ConfirmUnvalidateBill=Είστε σίγουροι ότι θέλετε να αλλάξετε το τιμολόγιο %s σε κατάσταση προσχεδίου; +ConfirmClassifyPaidBill=Είστε σίγουροι ότι θέλετε να ορισετε το τιμολόγιο %s ως πληρωμένο; +ConfirmCancelBill=Είστε σίγουροι ότι θέλετε να ακυρώσετε το τιμολόγιο %s; +ConfirmCancelBillQuestion=Για πιο λόγο θέλετε να Ταξινομήσετε αυτό το τιμολόγιο ως "εγκαταλελειμμένο"; +ConfirmClassifyPaidPartially=Είστε σίγουροι ότι θέλετε να ορίσετε το τιμολόγιο %s ως πληρωμένο; +ConfirmClassifyPaidPartiallyQuestion=Αυτό το τιμολόγιο δεν έχει εξοφληθεί πλήρως. Ποιος είναι ο λόγος για το κλείσιμο αυτού του τιμολογίου; +ConfirmClassifyPaidPartiallyReasonAvoir=Το υπόλοιπο που δεν πληρώθηκε (%s %s) είναι μια έκπτωση που δόθηκε επειδή η πληρωμή έγινε πριν από τη λήξη. Τακτοποιώ τον Φ.Π.Α. με πιστωτικό σημείωμα. ConfirmClassifyPaidPartiallyReasonDiscount=Το υπόλοιπο που δεν πληρώθηκε (%s %s) είναι μια έκπτωση που δόθηκε επειδή η πληρωμή έγινε πριν από τη λήξη. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Παραμένουν απλήρωτα (%s %s) έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Δέχομαι να χάσω το ΦΠΑ για την έκπτωση αυτή. ConfirmClassifyPaidPartiallyReasonDiscountVat=Παραμένουν απλήρωτα (%s %s) έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Έχω την επιστροφή του ΦΠΑ για την έκπτωση αυτή χωρίς πιστωτικό τιμολόγιο. @@ -194,216 +195,218 @@ 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=Επαναλαμβανόμενο τιμολόγιο RepeatableInvoice=Πρότυπο τιμολογίου RepeatableInvoices=Πρότυπο τιμολόγιο -Repeatable=Πρώτυπο -Repeatables=Πρώτυπα +RecurringInvoicesJob=Δημιουργία επαναλαμβανόμενων τιμολογίων ( τιμολόγια πωλήσεων) +RecurringSupplierInvoicesJob=Δημιουργία επαναλαμβανόμενων τιμολογίων ( τιμολόγια αγορών) +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 -DescTaxAndDividendsArea=Ο τομέας αυτός παρουσιάζει συνοπτικά όλες τις πληρωμές για ειδικές δαπάνες. Λαμβάνονται μόνο εγγραφές με πληρωμές κατά τη διάρκεια του σταθερού έτους. +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 -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +GeneratedFromRecurringInvoice=Δημιουργήθηκε από το πρότυπο επαναλαμβανόμενο τιμολόγιο %s +DateIsNotEnough=Η ημερομηνία δεν έχει φτάσει ακόμα +InvoiceGeneratedFromTemplate=Τιμολόγιο %s που δημιουργήθηκε από το επαναλαμβανόμενο πρότυπο τιμολόγιο %s +GeneratedFromTemplate=Δημιουργήθηκε από το πρότυπο τιμολόγιο %s +WarningInvoiceDateInFuture=Προειδοποίηση, η ημερομηνία τιμολογίου είναι μεγαλύτερη από την τρέχουσα ημερομηνία +WarningInvoiceDateTooFarInFuture=Προειδοποίηση, η ημερομηνία τιμολογίου είναι αρκετά μεταγενέστερη από την τρέχουσα ημερομηνία ViewAvailableGlobalDiscounts=Δείτε τις διαθέσιμες εκπτώσεις -GroupPaymentsByModOnReports=Ομαδικές πληρωμές κατά τρόπο λειτουργίας στις αναφορές +GroupPaymentsByModOnReports=Ομαδικές πληρωμές ανά τρόπο λειτουργίας στις αναφορές # PaymentConditions Statut=Κατάσταση -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Άμεσα Πληρωτέο +PaymentConditionRECEP=Άμεσα Πληρωτέο PaymentConditionShort30D=30 ημέρες PaymentCondition30D=30 ημέρες PaymentConditionShort30DENDMONTH=30 ημέρες από το τέλος του μήνα @@ -413,101 +416,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 +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=Η κατάθεση δημιουργήθηκε +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Μπορείτε να δημιουργήσετε αυτόματα μια κατάθεση μόνο από μια πρόσφορα ή μια παραγγελία +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 -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=Ελέγξτε τις αποδείξεις -ChequesArea=Ελέγξτε την περιοχή καταθέσεων -ChequeDeposits=Ελέγξτε τις καταθέσεις +ChequesReceipts=Αποδείξεις επιταγών +ChequesArea=Τομέας επιταγών +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=Δεν είναι δυνατόν, δεδομένου ότι υπάρχουν ορισμένες πληρωμές @@ -515,95 +529,96 @@ 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 +PDFCrevetteSituationInvoiceLineDecompte=Τιμολόγιο κατάστασης - COUNT +PDFCrevetteSituationInvoiceTitle=Τιμολόγιο κατάστασης +PDFCrevetteSituationInvoiceLine=Κατάσταση N°%s: Τιμ. N°%s σε %s +TotalSituationInvoice=Σύνολο κατάστασης +invoiceLineProgressError=Η πρόοδος της γραμμής τιμολογίου δεν μπορεί να είναι μεγαλύτερη ή ίση με την επόμενη γραμμή τιμολογίου 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. +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=Ορίστε την ημερομηνία λήξης -MaxNumberOfGenerationReached=Μέγιστος αριθμός γονιδίων. επιτευχθεί +MaxNumberOfGenerationReached=Ο μέγιστος αριθμός δημιουργίας εγγράφων συμπληρώθηκε BILL_DELETEInDolibarr=Το τιμολόγιο διαγράφηκε BILL_SUPPLIER_DELETEInDolibarr=Το τιμολόγιο προμηθευτή διαγράφηκε UnitPriceXQtyLessDiscount=Τιμή μονάδας x Ποσότητα - Έκπτωση -CustomersInvoicesArea=Περιοχή χρέωσης πελατών -SupplierInvoicesArea=Περιοχή χρέωσης προμηθευτή -FacParentLine=Γραμμή τιμολογίου Μητρική -SituationTotalRayToRest=Υπενθύμιση πληρωμής χωρίς φόρο +CustomersInvoicesArea=Τομέας τιμολόγησης πελατών +SupplierInvoicesArea=Τομέας τιμολόγησης προμηθευτών +SituationTotalRayToRest=Το υπόλοιπο προς πληρωμή χωρίς Φ.Π.Α. PDFSituationTitle=Κατάσταση αρ. %d SituationTotalProgress=Συνολική πρόοδος %d %% SearchUnpaidInvoicesWithDueDate=Αναζήτηση απλήρωτων τιμολογίων με ημερομηνία λήξης = %s NoPaymentAvailable=Δεν υπάρχει διαθέσιμη πληρωμή για %s PaymentRegisteredAndInvoiceSetToPaid=Η πληρωμή καταχωρήθηκε και το τιμολόγιο %s ορίστηκε ως πληρωμένο SendEmailsRemindersOnInvoiceDueDate=Αποστολή υπενθύμισης μέσω email για απλήρωτα τιμολόγια +MakePaymentAndClassifyPayed=Καταγραφή πληρωμής +BulkPaymentNotPossibleForInvoice=Δεν είναι δυνατή η μαζική πληρωμή για το τιμολόγιο %s (κακός τύπος ή κατάσταση) diff --git a/htdocs/langs/el_GR/blockedlog.lang b/htdocs/langs/el_GR/blockedlog.lang index f0be0bb0a68..b42c868d85e 100644 --- a/htdocs/langs/el_GR/blockedlog.lang +++ b/htdocs/langs/el_GR/blockedlog.lang @@ -1,57 +1,57 @@ -BlockedLog=Μη τροποποιήσιμα αρχεία καταγραφής +BlockedLog=Αμετάβλητα αρχεία καταγραφής Field=Πεδίο -BlockedLogDesc=Αυτή η ενότητα παρακολουθεί ορισμένα γεγονότα σε ένα μη αναστρέψιμο αρχείο καταγραφής (το οποίο δεν μπορείτε να τροποποιήσετε αφού καταγραφεί) σε μια αλυσίδα μπλοκ, σε πραγματικό χρόνο. Αυτή η ενότητα παρέχει συμβατότητα με τις απαιτήσεις των νόμων ορισμένων χωρών (όπως η Γαλλία με το νόμο Finance 2016 - Norme NF525). -Fingerprints=Αρχειοθετημένα συμβάντα και δακτυλικά αποτυπώματα -FingerprintsDesc=Αυτό είναι το εργαλείο για να περιηγηθείτε ή να εξαγάγετε τα μη αναστρέψιμα αρχεία καταγραφής. Ανεπιθύμητα αρχεία καταγραφής δημιουργούνται και αρχειοθετούνται τοπικά σε ένα ειδικό τραπέζι, σε πραγματικό χρόνο, όταν καταγράφετε ένα επιχειρηματικό γεγονός. Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να εξαγάγετε αυτό το αρχείο και να το αποθηκεύσετε σε εξωτερική υποστήριξη (ορισμένες χώρες, όπως η Γαλλία, ζητήστε να το κάνετε κάθε χρόνο). Σημειώστε ότι δεν υπάρχει καμία δυνατότητα για να καθαρίσετε αυτό το αρχείο καταγραφής και κάθε αλλαγή που προσπάθησε να γίνει απευθείας σε αυτό το αρχείο καταγραφής (π.χ. από έναν χάκερ) θα αναφέρεται με μη έγκυρο δακτυλικό αποτύπωμα. Εάν θέλετε πραγματικά να καθαρίσετε αυτόν τον πίνακα επειδή χρησιμοποιήσατε την εφαρμογή σας για δοκιμαστικό σκοπό και θέλετε να καθαρίσετε τα δεδομένα σας για να ξεκινήσετε την παραγωγή σας, μπορείτε να ζητήσετε από τον μεταπωλητή ή τον ολοκληρωτή σας να επαναφέρει τη βάση δεδομένων σας (όλα τα δεδομένα θα καταργηθούν). -CompanyInitialKey=Το αρχικό κλειδί της επιχείρησης (μπλοκ του μπλοκ γενεσίας) -BrowseBlockedLog=Μη τροποποιήσιμα κορμούς -ShowAllFingerPrintsMightBeTooLong=Εμφάνιση όλων των αρχειοθετημένων αρχείων καταγραφής (μπορεί να είναι μακρά) -ShowAllFingerPrintsErrorsMightBeTooLong=Εμφάνιση όλων των μη έγκυρων αρχείων καταγραφής αρχείων (μπορεί να είναι μεγάλο) -DownloadBlockChain=Κατεβάστε τα δακτυλικά αποτυπώματα -KoCheckFingerprintValidity=Η καταχώριση αρχειοθετημένου αρχείου καταγραφής δεν είναι έγκυρη. Αυτό σημαίνει ότι κάποιος (ένας hacker;) έχει τροποποιήσει ορισμένα δεδομένα αυτής της εγγραφής ή έχει διαγράψει την προηγούμενη αρχειοθετημένη εγγραφή (ελέγξτε αν η γραμμή με την προηγούμενη # υπάρχει) η αν έχει τροποποιούμενο checksum της προηγούμενης εγγραφής -OkCheckFingerprintValidity=Η αρχειοθετημένη εγγραφή είναι έγκυρη. Τα δεδομένα αυτής της γραμμής δεν τροποποιήθηκαν και η καταχώριση ακολουθεί την προηγούμενη. -OkCheckFingerprintValidityButChainIsKo=Το αρχειοθετημένο ημερολόγιο φαίνεται έγκυρο σε σύγκριση με το προηγούμενο, αλλά η αλυσίδα είχε καταστραφεί προηγουμένως. -AddedByAuthority=Αποθηκεύεται σε απομακρυσμένη εξουσία +BlockedLogDesc=Αυτή η ενότητα παρακολουθεί ορισμένα συμβάντα σε ένα αμετάβλητο αρχείο καταγραφής (το οποίο δεν μπορείτε να τροποποιήσετε μόλις καταγραφεί) σε ενα block chain, σε πραγματικό χρόνο. Αυτή η ενότητα παρέχει συμβατότητα με τις απαιτήσεις των νόμων ορισμένων χωρών (όπως η Γαλλία με το νόμο Finance 2016 - Norme NF525). +Fingerprints=Αρχειοθετημένες ενέργειες και δακτυλικά αποτυπώματα +FingerprintsDesc=Αυτό είναι το εργαλείο για να περιηγηθείτε ή να εξαγάγετε τα αμετάβλητα αρχεία καταγραφής. Αμετάβλητα αρχεία καταγραφής δημιουργούνται και αρχειοθετούνται τοπικά σε ένα ειδικό πίνακα, σε πραγματικό χρόνο όταν καταγράφετε ένα επιχειρηματικό γεγονός. Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να εξαγάγετε αυτό το αρχείο και να το αποθηκεύσετε για εξωτερική υποστήριξη (ορισμένες χώρες, όπως η Γαλλία, ζητάνε να γίνεται ετησίως). Σημειώστε ότι δεν υπάρχει καμία δυνατότητα για εκκαθάριση αυτού του αρχείου καταγραφής και κάθε προσπάθεια αλλαγής απευθείας σε αυτό το αρχείο καταγραφής (π.χ. από έναν χάκερ) θα αναφέρεται με ένα μη έγκυρο δακτυλικό αποτύπωμα. Εάν θέλετε πραγματικά να εκκαθαρίσετε αυτόν τον πίνακα επειδή χρησιμοποιήσατε την εφαρμογή σας για δοκιμαστικό σκοπό και θέλετε να καθαρίσετε τα δεδομένα σας για να ξεκινήσετε την παραγωγή σας, μπορείτε να ζητήσετε από τον μεταπωλητή ή τον διαχειριστή της βάσης δεδοµένων σας να επαναφέρει τη βάση δεδομένων σας (όλα τα δεδομένα θα χαθούν). +CompanyInitialKey=Αρχικό κλειδί εταιρείας (hash of genesis block) +BrowseBlockedLog=Αμετάβλητα αρχεία καταγραφής +ShowAllFingerPrintsMightBeTooLong=Εμφάνιση όλων των αρχειοθετημένων αρχείων καταγραφής (μπορεί να είναι μεγάλα) +ShowAllFingerPrintsErrorsMightBeTooLong=Εμφάνιση όλων των μη έγκυρων αρχείων καταγραφής (μπορεί να είναι μεγάλα) +DownloadBlockChain=Λήψη Block Chain +KoCheckFingerprintValidity=Η αρχειοθετημένη καταχώριση αρχείου καταγραφής δεν είναι έγκυρη. Σημαίνει ότι κάποιος (ένας χάκερ;) έχει τροποποιήσει ορισμένα δεδομένα αυτής της εγγραφής μετά την καταγραφή της, ή έχει διαγράψει την προηγούμενη αρχειοθετημένη εγγραφή (ελέγξτε ότι η γραμμή με το προηγούμενο # υπάρχει) ή έχει τροποποιήσει το άθροισμα ελέγχου(checksum) της προηγούμενης εγγραφής. +OkCheckFingerprintValidity=Η αρχειοθετημένη εγγραφή αρχείου καταγραφής είναι έγκυρη. Τα δεδομένα σε αυτή τη γραμμή δεν τροποποιήθηκαν και η καταχώρηση ακολουθεί την προηγούμενη. +OkCheckFingerprintValidityButChainIsKo=Το αρχειοθετημένο αρχείο καταγραφής φαίνεται έγκυρο σε σύγκριση με το προηγούμενο, αλλά η αλυσίδα είχε αλλοιωθεί στο παρελθόν. +AddedByAuthority=Αποθηκευμένο σε απομακρυσμένη αρχή NotAddedByAuthorityYet=Δεν έχει ακόμη αποθηκευτεί σε απομακρυσμένη αρχή -ShowDetails=Εμφάνιση αποθηκευμένων λεπτομεριών -logPAYMENT_VARIOUS_CREATE=Η πληρωμή (δεν έχει εκχωρηθεί σε τιμολόγιο) δημιουργήθηκε -logPAYMENT_VARIOUS_MODIFY=Η πληρωμή (δεν έχει εκχωρηθεί σε τιμολόγιο) τροποποιήθηκε -logPAYMENT_VARIOUS_DELETE=Πληρωμή (δεν έχει εκχωρηθεί σε τιμολόγιο) λογική διαγραφή +ShowDetails=Εμφάνιση λεπτομερειών αποθήκευσης +logPAYMENT_VARIOUS_CREATE=Δημιουργήθηκε η πληρωμή (δεν εκχωρείται σε τιμολόγιο). +logPAYMENT_VARIOUS_MODIFY=Τροποποιήθηκε η πληρωμή (δεν έχει αντιστοιχιστεί σε τιμολόγιο). +logPAYMENT_VARIOUS_DELETE=Λογική διαγραφή πληρωμής (δεν εκχωρείται σε τιμολόγιο). logPAYMENT_ADD_TO_BANK=Η πληρωμή προστέθηκε στην τράπεζα -logPAYMENT_CUSTOMER_CREATE=Η πληρωμή του πελάτη δημιουργήθηκε -logPAYMENT_CUSTOMER_DELETE=Λογική διαγραφή πληρωμής πελατών -logDONATION_PAYMENT_CREATE=Η πληρωμή δωρεάς δημιουργήθηκε -logDONATION_PAYMENT_DELETE=Δωρεά λογική διαγραφή πληρωμής -logBILL_PAYED=Πληρωμή τιμολογίου πελάτη -logBILL_UNPAYED=Το τιμολόγιο πελατών έχει οριστεί ως μη πληρωμένο +logPAYMENT_CUSTOMER_CREATE=Δημιουργήθηκε πληρωμή πελάτη +logPAYMENT_CUSTOMER_DELETE=Λογική διαγραφή πληρωμής πελάτη +logDONATION_PAYMENT_CREATE=Δημιουργήθηκε η πληρωμή δωρεάς +logDONATION_PAYMENT_DELETE=Λογική διαγραφή πληρωμής δωρεάς +logBILL_PAYED=Πληρωμένο τιμολόγιο πελάτη +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=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. +TooManyRecordToScanRestrictFilters=Πάρα πολλές εγγραφές για σάρωση / ανάλυση. Περιορίστε τη λίστα με τη χρήση φίλτρων. +RestrictYearToExport=Ορισμός μήνα / έτους για εξαγωγή +BlockedLogEnabled=Έχει ενεργοποιηθεί το σύστημα για την παρακολούθηση συμβάντων σε μη τροποποιήσημα αρχεία καταγραφής +BlockedLogDisabled=Έχει απενεργοποιηθεί το σύστημα για την παρακολούθηση συμβάντων σε μη τροποποιήσημα αρχεία καταγραφής αφού έχει γίνει ήδη καταγραφή. Αποθηκεύσαμε ένα ειδικό Fingerprint για να παρακολουθούμε την αλυσίδα ως σπασμένη. +BlockedLogDisabledBis=Έχει απενεργοποιηθεί το σύστημα για την παρακολούθηση συμβάντων σε μη τροποποιήσημα αρχεία καταγραφής. Αυτό είναι δυνατόν γιατί καμιά εγγραφή δεν έχει γίνει ακόμα. diff --git a/htdocs/langs/el_GR/bookmarks.lang b/htdocs/langs/el_GR/bookmarks.lang index 2b89dbeed64..398c61c3d7f 100644 --- a/htdocs/langs/el_GR/bookmarks.lang +++ b/htdocs/langs/el_GR/bookmarks.lang @@ -10,12 +10,12 @@ OpenANewWindow=Ανοίξτε μια νέα καρτέλα ReplaceWindow=Αντικατάσταση τρέχουσας καρτέλας BookmarkTargetNewWindowShort=Νέα καρτέλα BookmarkTargetReplaceWindowShort=Τρέχουσα καρτέλα -BookmarkTitle=Όνομα σελιδοδεικτών +BookmarkTitle=Όνομα σελιδοδείκτη UrlOrLink=URL -BehaviourOnClick=Μετάβαση σε +BehaviourOnClick=Συμπεριφορά όταν επιλέγεται μια διεύθυνση URL σελιδοδείκτη CreateBookmark=Δημιουργία σελιδοδείκτη SetHereATitleForLink=Ορίστε ένα όνομα για το σελιδοδείκτη -UseAnExternalHttpLinkOrRelativeDolibarrLink=Χρησιμοποιήστε έναν εξωτερικό/απόλυτο σύνδεσμο (https://externalurl.com) ή έναν εσωτερικό/σχετικό σύνδεσμο (/mypage.php). Μπορείτε επίσης να χρησιμοποιήσετε τηλέφωνο όπως τηλ: 0123456. +UseAnExternalHttpLinkOrRelativeDolibarrLink=Χρησιμοποιήστε έναν εξωτερικό/απόλυτο σύνδεσμο (https://externalurl.com) ή έναν εσωτερικό/σχετικό σύνδεσμο (/mypage.php). Μπορείτε επίσης να χρησιμοποιήσετε αριθμό τηλεφώνου όπως tel: 0123456. ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Επιλέξτε εάν η συνδεδεμένη σελίδα πρέπει να ανοίξει στην τρέχουσα καρτέλα ή σε μια νέα καρτέλα BookmarksManagement=Διαχείριση σελιδοδεικτών BookmarksMenuShortCut=Ctrl + shift + m diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang index 68f4040ed0c..7956fe4b578 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=Statistics on main business objects in database -BoxLoginInformation=πληροφορίες σύνδεσης +BoxDolibarrStateBoard=Στατιστικά για τα κύρια επιχειρηματικά αντικείμενα στη βάση δεδομένων +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,42 @@ BoxLastMembers=Τελευταία μέλη BoxLastModifiedMembers=Τελευταία τροποποιημένα μέλη BoxLastMembersSubscriptions=Τελευταίες συνδρομές μελών BoxFicheInter=Τελευταίες παρεμβάσεις -BoxCurrentAccounts=Άνοιξε το ισοζύγιο των λογαριασμών +BoxCurrentAccounts=Ισοζύγιο ανοιχτών λογαριασμών BoxTitleMemberNextBirthdays=Γενέθλια αυτού του μήνα (μέλη) -BoxTitleMembersByType=Μέλη ανά τύπο +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 δωρεές που τροποποιήθηκαν +BoxLastExpiredServices=Τελευταίες %s παλαιότερες επαφές με ενεργές υπηρεσίες που έληξαν +BoxTitleLastActionsToDo=Τελευταίες %s ενέργειες προς πραγματοποίηση +BoxTitleLastContracts=Τελευταία %s τροποποιημένα συμβόλαια +BoxTitleLastModifiedDonations=Τελευταίες %s τροποποιημένες δωρεές BoxTitleLastModifiedExpenses=Τελευταίες %s αναφορές εξόδων που τροποποιήθηκαν BoxTitleLatestModifiedBoms=Τελευταία %s BOM που τροποποιήθηκαν BoxTitleLatestModifiedMos=Τελευταίες %s Παραγγελίες Κατασκευής που τροποποιήθηκαν BoxTitleLastOutstandingBillReached=Πελάτες με υπέρβαση του μέγιστου οφειλόμενου BoxGlobalActivity=Η γενική δραστηριότητα για (τιμολόγια, προσφορές, παραγγελίες) BoxGoodCustomers=Καλοί πελάτες -BoxTitleGoodCustomers=%s καλών πελατών +BoxTitleGoodCustomers=%s Καλοί πελάτες BoxScheduledJobs=Προγραμματισμένες εργασίες -BoxTitleFunnelOfProspection=Lead funnel +BoxTitleFunnelOfProspection=Διαδικασία Αξιοποίησης Προοπτικών FailedToRefreshDataInfoNotUpToDate=Αποτυχία ανανέωσης ροής RSS. Τελευταία επιτυχημένη ημερομηνία ανανέωσης: %s LastRefreshDate=Ημερομηνία τελευταίας ανανέωσης NoRecordedBookmarks=Δεν υπάρχουν σελιδοδείκτες που ορίζονται. Κάντε κλικ εδώ για να προσθέσετε σελιδοδείκτες. @@ -64,57 +64,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=Customers with oustanding limit reached +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 d5b6521d4e4..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,76 +35,76 @@ 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=Θεωρητικό ποσό RealAmount=Πραγματικό ποσό CashFence=Κλείσιμο ταμείου -CashFenceDone=Το κλείσιμο του ταμείου ολοκληρώθηκε για αυτήν την περίοδο +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=Add a "Direct cash payment" button +DirectPaymentButton=Προσθέστε ένα κουμπί "Άμεση πληρωμή με μετρητά". InvoiceIsAlreadyValidated=Το τιμολόγιο έχει ήδη επικυρωθεί -NoLinesToBill=Δεν υπάρχουν γραμμές που να χρεώνουν -CustomReceipt=Προσαρμοσμένη παραλαβή -ReceiptName=Όνομα παραλαβής -ProductSupplements=Διαχειριστείτε τα συμπληρώματα προϊόντων -SupplementCategory=Συμπλήρωμα κατηγορίας +NoLinesToBill=Δεν υπάρχουν γραμμές για χρέωση +CustomReceipt=Προσαρμοσμένη απόδειξη +ReceiptName=Όνομα απόδειξης +ProductSupplements=Διαχείριση τα συμπληρώματα προϊόντων +SupplementCategory=Κατηγορία συμπληρώματος ColorTheme=Χρώμα θέματος Colorful=Πολύχρωμα HeadBar=Μπάρα Κεφαλίδας SortProductField=Πεδίο διαλογής προϊόντων -Browser=Browser +Browser=Περιηγητής BrowserMethodDescription=Απλή και εύκολη εκτύπωση απόδειξης. Μόνο μερικές παράμετροι για τη διαμόρφωση της απόδειξης. Εκτύπωση μέσω προγράμματος περιήγησης. -TakeposConnectorMethodDescription=Εξωτερική μονάδα με επιπλέον χαρακτηριστικά. Δυνατότητα εκτύπωσης από το σύννεφο. +TakeposConnectorMethodDescription=Εξωτερική ενότητα με επιπλέον χαρακτηριστικά. Δυνατότητα εκτύπωσης από το cloud. PrintMethod=Μέθοδος εκτύπωσης -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=Ισχυρή μέθοδος με πολλές παραμέτρους. Πλήρως προσαρμόσιμο με πρότυπα. Ο διακομιστής που φιλοξενεί την εφαρμογή δεν μπορεί να βρίσκεται στο Cloud (πρέπει να έχει πρόσβαση στους εκτυπωτές του δικτύου σας). ByTerminal=Από τερματικό -TakeposNumpadUsePaymentIcon=Χρησιμοποιήστε το εικονίδιο αντί για το κείμενο στα κουμπιά πληρωμής του πληκτρολογίου numpad +TakeposNumpadUsePaymentIcon=Χρήση εικονιδίου αντί για κείμενο στα κουμπιά πληρωμής του numpad CashDeskRefNumberingModules=Ενότητα αρίθμησης για πωλήσεις POS -CashDeskGenericMaskCodes6 =  
    {TN} ετικέτα χρησιμοποιείται για την προσθήκη του αριθμού τερματικού -TakeposGroupSameProduct=Ομαδοποιήστε τις ίδιες σειρές προϊόντων +CashDeskGenericMaskCodes6 =
    {TN} Η ετικέτα χρησιμοποιείται για την προσθήκη του αριθμού τερματικού +TakeposGroupSameProduct=Ομαδοποίηση των ίδιων σειρών προϊόντων StartAParallelSale=Ξεκινήστε μια νέα παράλληλη πώληση SaleStartedAt=Η πώληση ξεκίνησε στο %s -ControlCashOpening=Ανοίξτε το αναδυόμενο παράθυρο "Έλεγχος μετρητών" κατά το άνοιγμα του POS -CloseCashFence=Κλείστε το ταμείο ελέγχου -CashReport=Έκθεση μετρητών +ControlCashOpening=Άνοιγμα του αναδυόμενου παραθύρου "Έλεγχος ταμείου" κατά το άνοιγμα του POS +CloseCashFence=Κλείσιμο ταμείου +CashReport=Αναφορά μετρητών MainPrinterToUse=Κύριος εκτυπωτής προς χρήση OrderPrinterToUse=Παραγγείλετε τον εκτυπωτή για χρήση MainTemplateToUse=Κύριο πρότυπο για χρήση @@ -119,18 +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 cf6188f58bb..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,70 +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 -ParentCategory=Parent tag/category -ParentCategoryLabel=Label of parent tag/category +CategId=Αναγνωριστικό ετικέτας/κατηγορίας +ParentCategory=Γονική ετικέτα/κατηγορία +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 973354b0f95..746c112fe41 100644 --- a/htdocs/langs/el_GR/commercial.lang +++ b/htdocs/langs/el_GR/commercial.lang @@ -1,80 +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_OTH_AUTO=Άλλος τύπος ActionAC_MANUAL=Χειροκίνητα εισηγμένα συμβάντα -ActionAC_AUTO=Αυτόματα εισηγμένα συμβάντα -ActionAC_OTH_AUTOShort=Αυτο +ActionAC_AUTO=Αυτόματα εισαγμένα συμβάντα +ActionAC_OTH_AUTOShort=Άλλο +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 358745ba199..661a9fe9688 100644 --- a/htdocs/langs/el_GR/companies.lang +++ b/htdocs/langs/el_GR/companies.lang @@ -1,37 +1,38 @@ # Dolibarr language file - Source file is en_US - companies ErrorCompanyNameAlreadyExists=Το όνομα τις εταιρίας %s υπάρχει ήδη. Επιλέξτε κάποιο άλλο. ErrorSetACountryFirst=Πρώτα πρέπει να οριστεί η χώρα -SelectThirdParty=Επιλέξτε ένα Πελ./Προμ. +SelectThirdParty=Επιλογή τρίτου μέρους ConfirmDeleteCompany=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την εταιρία και όλες τις σχετικές πληροφορίες αυτής; -DeleteContact=Διαγραφή προσώπου επικοινωνίας +DeleteContact=Διαγραφή επαφής / διεύθυνσης ConfirmDeleteContact=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την επαφή και όλες τις σχετικές πληροφορίες αυτής; MenuNewThirdParty=Νέο τρίτο μέρος MenuNewCustomer=Νέος πελάτης MenuNewProspect=Νέα Προοπτική MenuNewSupplier=Νέος προμηθευτής MenuNewPrivateIndividual=Νέος Ιδιώτης -NewCompany=Νέα εταιρία ( προοπτική, πελάτης, κατασκευαστής) -NewThirdParty=Νέο τρίτο μέρος (προοπτική, πελάτης, πωλητής) +NewCompany=Νέα εταιρία ( προοπτική, πελάτης, προμηθευτής) +NewThirdParty=Νέο τρίτο μέρος (προοπτική, πελάτης, προμηθευτής) CreateDolibarrThirdPartySupplier=Δημιουργία τρίτου μέρους (προμηθευτής) -CreateThirdPartyOnly=Create thirdpary -CreateThirdPartyAndContact=Create a third party + a child contact -ProspectionArea=Περιοχή προοπτικής -IdThirdParty=Αναγνωριστικό +CreateThirdPartyOnly=Δημιουργία τρίτου μέρους +CreateThirdPartyAndContact=Δημιουργία τρίτου μέρους + θυγατρικής επαφής +ProspectionArea=Τομέας προοπτικών +IdThirdParty=Αναγνωριστικό τρίτου μέρους IdCompany=Αναγνωριστικό εταιρίας -IdContact=Αναγνωριστικό αντιπροσώπου -ThirdPartyContacts=Επαφές τρίτων -ThirdPartyContact=Επικοινωνία / διεύθυνση τρίτου μέρους +IdContact=Αναγνωριστικό επαφής +ThirdPartyAddress=Διεύθυνση τρίτου μέρους +ThirdPartyContacts=Επαφές τρίτου μέρους +ThirdPartyContact=Επαφή / διεύθυνση τρίτου μέρους Company=Εταιρία CompanyName=Όνομα εταιρίας -AliasNames=Ψευδώνυμο (εμπορικό, εμπορικό σήμα, ...) -AliasNameShort=Ψευδώνυμο +AliasNames=Διακριτικός τίτλος (εμπορικό, εμπορικό σήμα, ...) +AliasNameShort=Διακριτικός τίτλος Companies=Εταιρίες -CountryIsInEEC=Η χώρα είναι εντός της Ευρωπαϊκής Οικονομικής Κοινότητας +CountryIsInEEC=Η χώρα βρίσκεται εντός της Ευρωπαϊκής Οικονομικής Κοινότητας PriceFormatInCurrentLanguage=Μορφή εμφάνισης τιμής στην τρέχουσα γλώσσα και νόμισμα ThirdPartyName=Όνομα τρίτου μέρους -ThirdPartyEmail=Ηλεκτρονικό ταχυδρομείο τρίτου μέρους +ThirdPartyEmail=Email τρίτου μέρους ThirdParty=Τρίτο μέρος -ThirdParties=Πελάτες/Συνεργάτες +ThirdParties=Πελάτες/Προμηθευτές ThirdPartyProspects=Προοπτικές ThirdPartyProspectsStats=Προοπτικές ThirdPartyCustomers=Πελάτες @@ -40,30 +41,33 @@ ThirdPartyCustomersWithIdProf12=Πελάτες με %s ή %s ThirdPartySuppliers=Προμηθευτές ThirdPartyType=Τύπος τρίτου μέρους Individual=Ιδιώτης -ToCreateContactWithSameName=Θα δημιουργήσει αυτόματα μια επαφή / διεύθυνση με τις ίδιες πληροφορίες με το τρίτο μέρος στο τρίτο μέρος. Στις περισσότερες περιπτώσεις, ακόμη και αν το τρίτο σας πρόσωπο είναι φυσικό πρόσωπο, είναι αρκετό να δημιουργηθεί ένα τρίτο μέρος μόνο του. +ToCreateContactWithSameName=Θα δημιουργήσει αυτόματα μια επαφή / διεύθυνση με τις ίδιες πληροφορίες με το τρίτο μέρος στην καρτέλα τρίτου μέρους. Στις περισσότερες περιπτώσεις, ακόμη και αν το τρίτο μέρος είναι φυσικό πρόσωπο, αρκεί απλά η δημιουργία του τρίτου μέρους. ParentCompany=Γονική εταιρία Subsidiaries=Θυγατρικές ReportByMonth=Αναφορά ανά Μήνα ReportByCustomers=Αναφορά ανά Πελάτη ReportByThirdparties=Αναφορά ανά Τρίτο Μέρος ReportByQuarter=Αναφορά ανά Τιμή -CivilityCode=Προσφωνήσεις +CivilityCode=Προσφώνηση RegisteredOffice=Έδρα της εταιρείας Lastname=Επίθετο Firstname=Όνομα +RefEmployee=Κωδικός εργαζομένου +NationalRegistrationNumber=National registration number PostOrFunction=Θέση εργασίας 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 @@ -72,7 +76,7 @@ Chat=Συνομιλία PhonePro=Επαγγ. τηλέφωνο PhonePerso=Προσωπ. τηλέφωνο PhoneMobile=Κιν. τηλέφωνο -No_Email=Απορρίψτε μαζικά μηνύματα ηλεκτρονικού ταχυδρομείου +No_Email=Απόρριψη μαζικών Email Fax=Φαξ Zip=Ταχ. Κώδικας Town=Πόλη @@ -82,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 @@ -98,23 +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=- @@ -151,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=- @@ -159,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=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +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=- @@ -193,8 +198,8 @@ ProfId3FR=Prof Id 3 (NAF, old APE) ProfId4FR=Prof Id 4 (RCS/RM) ProfId5FR=Prof Id 5 (numéro EORI) ProfId6FR=- -ProfId1ShortFR=ΣΕΙΡΗΝΑ -ProfId2ShortFR=SIRET +ProfId1ShortFR=ΕΠΑΓΓΕΛΜΑ +ProfId2ShortFR=Δ.Ο.Υ. ProfId3ShortFR=NAF ProfId4ShortFR=RCS ProfId5ShortFR=EORI @@ -215,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=- @@ -231,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=- @@ -295,7 +300,7 @@ ProfId3DZ=NIF ProfId4DZ=NIS VATIntra=ΑΦΜ VATIntraShort=ΑΦΜ -VATIntraSyntaxIsValid=Το συντακτικό είναι έγκυρο +VATIntraSyntaxIsValid=Η σύνταξη είναι έγκυρη VATReturn=Επιστροφή ΦΠΑ ProspectCustomer=Προοπτική / Πελάτης Prospect=Προοπτική @@ -305,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=Προμηθευτή +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=Τύπος νομικού προσώπου -Workforce=ΕΡΓΑΤΙΚΟ Δυναμικό -Staff=Εργαζόμενοι -ProspectLevelShort=Δυναμική -ProspectLevel=Δυναμική προοπτικής -ContactPrivate=Προσωπική +ErrorVATCheckMS_UNAVAILABLE=Ο έλεγχος δεν είναι δυνατός. Η υπηρεσία ελέγχου δεν παρέχεται από το κράτος μέλος (%s). +NorProspectNorCustomer=Ούτε προοπτική, ούτε πελάτης +JuridicalStatus=Τύπος επιχειρηματικής οντότητας +Workforce=Αριθμός εργαζομένων +Staff=Υπάλληλοι +ProspectLevelShort=Πιθανότητα +ProspectLevel=Πιθανότητα προοπτικής +ContactPrivate=Ιδιωτική ContactPublic=Κοινόχρηστη ContactVisibility=Ορατότητα -ContactOthers=Άλλο -OthersNotLinkedToThirdParty=Άλλα που δεν συνδέονται με κάποιο στοιχείο +ContactOthers=Άλλη +OthersNotLinkedToThirdParty=Άλλοι, που δεν συνδέονται με τρίτο μέρος ProspectStatus=Κατάσταση Προοπτικής PL_NONE=Καμία PL_UNKNOWN=Άγνωστη @@ -401,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=Current outstanding bill late +OutOfEurope=Εκτός Ευρώπης (ΕΕ) +CurrentOutstandingBillLate=Καθυστερημένος ανεξόφλητος λογαριασμός BecarefullChangeThirdpartyBeforeAddProductToInvoice=Προσοχή, ανάλογα με τις ρυθμίσεις τιμής του προϊόντος σας, θα πρέπει να αλλάξετε το Τρίτο Μέρος πριν προσθέσετε το προϊόν στο POS. diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang index 17136f57f5d..b258b9b2b1c 100644 --- a/htdocs/langs/el_GR/compta.lang +++ b/htdocs/langs/el_GR/compta.lang @@ -1,84 +1,84 @@ # 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=Πίστωση 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,67 +92,69 @@ 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 +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=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=Κατάσταση %sΦΠΑ επί των λογιστικών υποχρεώσεων%s CalcModeVATEngagement=Κατάσταση %sΦΠΑ επί των εσόδων-έξοδα%s. -CalcModeDebt=Analysis of known recorded documents even if they are not yet accounted in ledger. +CalcModeDebt=Ανάλυση των καταγεγραμμένων συναλλαγών ακόμα και αν δεν έχουν καταχωρηθεί στο λογιστικό βιβλίο CalcModeEngagement=Ανάλυση γνωστών καταγεγραμμένων πληρωμών, ακόμη και αν δεν έχουν ακόμη καταλογιστεί στο Ledger. CalcModeBookkeeping=Ανάλυση δεδομένων που έχουν καταχωρηθεί στον πίνακα Λογαριασμού Λογιστηρίου. CalcModeLT1= Λειτουργία %sRE στα τιμολόγια πελατών - τιμολόγια προμηθευτών%s @@ -166,50 +168,50 @@ AnnualSummaryInputOutputMode=Υπόλοιπο των εσόδων και εξό AnnualByCompanies=Ισοζύγιο εσόδων και εξόδων, βάσει προκαθορισμένων ομάδων λογαριασμού AnnualByCompaniesDueDebtMode=Ισοζύγιο εσόδων και εξόδων, λεπτομέρεια κατά προκαθορισμένες ομάδες, τρόπος %sClaims-Debts%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 -SeeReportInBookkeepingMode=See %sanalysis of bookeeping ledger table%s for a report based on Bookkeeping Ledger table +SeeReportInInputOutputMode=Δείτε την %sανάλυση των πληρωμών%s για έναν υπολογισμό που βασίζεται στις καταγεγραμμενες πληρωμές ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό +SeeReportInDueDebtMode=Δείτε την %sανάλυση των καταγεγραμμένων εγγράφων%s για έναν υπολογισμό που βασίζεται σε γνωστάκαταγεγραμμένα έγγραφα ακόμη και αν δεν έχουν καταγραφεί ακόμη στο Καθολικό +SeeReportInBookkeepingMode=Δείτε την %sανάλυση του λογιστικού πίνακα καθολικού%s για μια αναφορά που βασίζεται στονΛογιστικό πίνακα Καθολικού 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. +RulesAmountWithTaxExcluded=- Τα ποσά των τιμολογίων που εμφανίζονται δεν συμπεριλαμβάνουν Φ.Π.Α. +RulesResultDue=- Περιλαμβάνει όλα τα τιμολόγια, έξοδα, ΦΠΑ, δωρεές, μισθούς, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία τιμολόγησης των τιμολογίων και στην ημερομηνία λήξης για έξοδα ή πληρωμές φόρων. Για τους μισθούς χρησιμοποιείται η ημερομηνία λήξης της περιόδου. +RulesResultInOut=- Περιλαμβάνει τις πραγματικές πληρωμές σε τιμολόγια, έξοδα, ΦΠΑ και μισθούς.
    - Βασίζεται στις ημερομηνίες πληρωμής των τιμολογίων, εξόδων, ΦΠΑ, δωρεών και μισθών. RulesCADue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του πελάτη, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία χρέωσης αυτών των τιμολογίων.
    RulesCAIn=- Περιλαμβάνει όλες τις πραγματικές πληρωμές τιμολογίων που εισπράττονται από πελάτες.
    - Βασίζεται στην ημερομηνία πληρωμής αυτών των τιμολογίων
    RulesCATotalSaleJournal=Περιλαμβάνει όλες τις πιστωτικές γραμμές από το περιοδικό Sale. -RulesSalesTurnoverOfIncomeAccounts=It includes (credit - debit) of lines for product accounts in group INCOME +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 +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 +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. -OptionVatInfoModuleComptabilite=Note: For material assets, it should use the date of delivery to be more fair. -ThisIsAnEstimatedValue=Πρόκειται για μια προεπισκόπηση που βασίζεται σε επιχειρηματικά γεγονότα και όχι στον τελικό πίνακα, έτσι ώστε τα τελικά αποτελέσματα να διαφέρουν από αυτές τις τιμές προεπισκόπησης +SeeVATReportInInputOutputMode=Δείτε την αναφορά %s είσπραξης Φ.Π.Α.%s για έναν τυπικό υπολογισμό +SeeVATReportInDueDebtMode=Δείτε την αναφορά %sΦ.Π.Α. χρεώσεων%s για έναν υπολογισμό με δυνατότητα επιλογής στην τιμολόγηση +RulesVATInServices=- Για τις υπηρεσίες, η αναφορά περιλαμβάνει τον ΦΠΑ των πληρωμών που πράγματι εισπράχθηκαν ή καταβλήθηκαν με βάση την ημερομηνία πληρωμής. +RulesVATInProducts=- Για τα υλικά περιουσιακά στοιχεία, η αναφορά περιλαμβάνει τον Φ.Π.Α. με βάση την ημερομηνία πληρωμής. +RulesVATDueServices=- Για τις υπηρεσίες, η αναφορά περιλαμβάνει ΦΠΑ ληξιπρόθεσμων τιμολογίων, πληρωμένου ή μη, με βάση την ημερομηνία τιμολογίου. +RulesVATDueProducts=- Για τα υλικά περιουσιακά στοιχεία, η αναφορά περιλαμβάνει τον Φ.Π.Α. των οφειλόμενων τιμολογίων, με βάση την ημερομηνία του τιμολογίου. +OptionVatInfoModuleComptabilite=Σημείωση: Για τα υλικά περιουσιακά στοιχεία, θα πρέπει να χρησιμοποιεί την ημερομηνία παράδοσης για να είναι πιο δίκαιη. +ThisIsAnEstimatedValue=Αυτή είναι μια προεπισκόπηση, που βασίζεται σε επαγγελματικά συμβάντα και όχι από τον τελικό πίνακα του καθολικού, επομένως τα τελικά αποτελέσματα ενδέχεται να διαφέρουν από αυτές τις τιμές προεπισκόπησης PercentOfInvoice=%%/τιμολόγιο NotUsedForGoods=Δεν γίνεται χρήση σε υλικά αγαθά ProposalStats=Στατιστικά στοιχεία σχετικά με τις προτάσεις @@ -217,8 +219,8 @@ OrderStats=Στατιστικά στοιχεία για τις παραγγελ InvoiceStats=Στατιστικά στοιχεία για τους λογαριασμούς Dispatch=Dispatching Dispatched=Dispatched -ToDispatch=To dispatch -ThirdPartyMustBeEditAsCustomer=Το στοιχείο πρέπει να ορισθεί ως πελάτης +ToDispatch=Για αποστολή +ThirdPartyMustBeEditAsCustomer=Το τρίτο μέρος πρέπει να ορίζεται ως πελάτης SellsJournal=Ημερολόγιο πωλήσεων PurchasesJournal=Ημερολόγιο Αγορών DescSellsJournal=Ημερολόγιο πωλήσεων @@ -226,75 +228,76 @@ 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 +Pcg_version=Μοντέλα λογιστικού σχεδίου Pcg_type=Pcg type Pcg_subtype=Pcg subtype -InvoiceLinesToDispatch=Invoice lines to dispatch +InvoiceLinesToDispatch=Γραμμές τιμολογίων για αποστολή ByProductsAndServices=Ανά προϊόν και υπηρεσία -RefExt=Εξωτερικές αναφορές -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". +RefExt=Εξωτερική αναφ +ToCreateAPredefinedInvoice=Για να δημιουργήσετε ένα πρότυπο τιμολόγιο, δημιουργήστε ένα τυπικό τιμολόγιο και, στη συνέχεια, χωρίς να το επικυρώσετε, κάντε κλικ στο κουμπί "%s". LinkedOrder=Σύνδεση με παραγγελία Mode1=Μέθοδος 1 Mode2=Μέθοδος 2 -CalculationRuleDesc=Για να υπολογιστεί το συνολικό ΦΠΑ, υπάρχουν δύο μέθοδοι:
    Μέθοδος 1 στρογγυλοποίηση ΦΠΑ για κάθε γραμμή, στη συνέχεια, αθροίζοντας τους.
    Μέθοδος 2 αθροίζοντας όλων των ΦΠΑ σε κάθε γραμμή, τότε η στρογγυλοποίηση είναι στο αποτέλεσμα.
    Το τελικό αποτέλεσμα μπορεί να διαφέρει από λίγα λεπτά. Προεπιλεγμένη λειτουργία είναι η λειτουργία %s. +CalculationRuleDesc=Για τον υπολογισμό του συνολικού ΦΠΑ, υπάρχουν δύο μέθοδοι:
    Μέθοδος 1 στρογγυλοποίηση του ΦΠΑ σε κάθε γραμμή και, στη συνέχεια, η άθροισή τους.
    Μέθοδος 2 άθροιση του ΦΠΑ σε κάθε γραμμή και, στη συνέχεια, στρογγυλοποίηση.
    Το τελικό αποτέλεσμα μπορεί να διαφέρει κατά λίγα λεπτά. Προεπιλεγμένη λειτουργία είναι η %s. CalculationRuleDescSupplier=Σύμφωνα με τον προμηθευτή, επιλέξτε κατάλληλη μέθοδο για να εφαρμόσετε τον ίδιο κανόνα υπολογισμού και για να λάβετε το ίδιο αποτέλεσμα που αναμένεται από τον προμηθευτή σας. TurnoverPerProductInCommitmentAccountingNotRelevant=Η αναφορά κύκλου εργασιών που συλλέγεται ανά προϊόν δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για το τιμολόγιο κύκλου εργασιών. -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Η αναφορά του κύκλου εργασιών που έχει συγκεντρωθεί ανά φορολογικό συντελεστή πώλησης δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για το τιμολόγιο κύκλου εργασιών. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Η αναφορά του κύκλου εργασιών που εισπράχθηκε ανά συντελεστή φόρου πώλησης δεν είναι διαθέσιμη. Αυτή η αναφορά είναι διαθέσιμη μόνο για τιμολογημένο κύκλο εργασιών. CalculationMode=Τρόπος υπολογισμού -AccountancyJournal=Λογιστικό περιοδικό λογιστικής +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=Λογιστικός λογαριασμός που χρησιμοποιείται για τρίτους πελάτες ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται σε κάρτα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για τη Γενική Λογιστική και ως προεπιλεγμένη αξία της λογιστικής Subledger, εάν δεν έχει οριστεί ειδικό λογαριασμός λογιστικής πελάτη σε τρίτους. ACCOUNTING_ACCOUNT_SUPPLIER=Λογαριασμός λογιστικής που χρησιμοποιείται για τους τρίτους προμηθευτές ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Ο αποκλειστικός λογιστικός λογαριασμός που ορίζεται σε κάρτα τρίτου μέρους θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για τη Γενική Λογιστική και ως προεπιλεγμένη αξία της λογιστικής της Subleger εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής αποκλειστικής προμήθειας σε τρίτους. ConfirmCloneTax=Επιβεβαιώστε τον κλώνο ενός κοινωνικού / φορολογικού φόρου -ConfirmCloneVAT=Confirm the clone of a VAT declaration -ConfirmCloneSalary=Confirm the clone of a salary +ConfirmCloneVAT=Επιβεβαιώστε τον κλώνο μιας δήλωσης ΦΠΑ +ConfirmCloneSalary=Επιβεβαιώστε τον κλώνο ενός μισθού CloneTaxForNextMonth=Clone it for next month 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=Την τελευταία ημέρα της περιόδου ο φόρος σχετίζεται με +AccountingAffectation=Λογιστική κατανομή +LastDayTaxIsRelatedTo=Τελευταία ημέρα της περιόδου με την οποία ο φόρος σχετίζεται VATDue=Φόρος πωλήσεων που αξιώνεται ClaimedForThisPeriod=Ισχυρίζεται για την περίοδο -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 +PaidDuringThisPeriod=Πληρώθηκε για αυτήν την περίοδο +PaidDuringThisPeriodDesc=Αυτό είναι το άθροισμα όλων των πληρωμών που συνδέονται με δηλώσεις ΦΠΑ που έχουν ημερομηνία λήξης περιόδου στο επιλεγμένο εύρος ημερομηνιών ByVatRate=Με φορολογικό συντελεστή πώλησης -TurnoverbyVatrate=Ο κύκλος εργασιών τιμολογείται από το συντελεστή φόρου πώλησης -TurnoverCollectedbyVatrate=Ο κύκλος εργασιών που εισπράττεται από το φορολογικό συντελεστή πώλησης -PurchasebyVatrate=Ποσοστό φόρου επί των πωλήσεων +TurnoverbyVatrate=Κύκλος εργασιών που τιμολογήθηκε με συντελεστή φόρου επί των πωλήσεων +TurnoverCollectedbyVatrate=Ο κύκλος εργασιών που εισπράχθηκε με συντελεστή φόρου επί των πωλήσεων +PurchasebyVatrate=Συντελεστής φόρου αγοράς βάσει πώλησης LabelToShow=Σύντομη ετικέτα -PurchaseTurnover=Κύκλος εργασιών αγοράς -PurchaseTurnoverCollected=Συλλέχθηκε ο κύκλος εργασιών αγοράς -RulesPurchaseTurnoverDue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του προμηθευτή, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία τιμολογίου αυτών των τιμολογίων.
    +PurchaseTurnover=Κύκλος εργασιών αγορών +PurchaseTurnoverCollected=Ο κύκλος εργασιών αγορών που εισπράχθηκε +RulesPurchaseTurnoverDue=- Περιλαμβάνει τα οφειλόμενα τιμολόγια του προμηθευτή, είτε πληρώνονται είτε όχι.
    - Βασίζεται στην ημερομηνία επικύρωσης αυτών των τιμολογίων.
    RulesPurchaseTurnoverIn=- Περιλαμβάνει όλες τις αποτελεσματικές πληρωμές τιμολογίων που πραγματοποιούνται σε προμηθευτές.
    - Βασίζεται στην ημερομηνία πληρωμής αυτών των τιμολογίων
    -RulesPurchaseTurnoverTotalPurchaseJournal=Περιλαμβάνει όλες τις χρεωστικές γραμμές από το περιοδικό αγορών. -RulesPurchaseTurnoverOfExpenseAccounts=It includes (debit - credit) of lines for product accounts in group EXPENSE -ReportPurchaseTurnover=Τιμολόγηση κύκλου εργασιών αγοράς -ReportPurchaseTurnoverCollected=Συλλέχθηκε ο κύκλος εργασιών αγοράς -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 ? +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/el_GR/contracts.lang b/htdocs/langs/el_GR/contracts.lang index 6202c5b6a82..0b3d4a3c755 100644 --- a/htdocs/langs/el_GR/contracts.lang +++ b/htdocs/langs/el_GR/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Συμβάσεις/Συνδρομές ContractsAndLine=Συμβόλαια και η γραμμή των συμβολαίων Contract=Συμβόλαιο ContractLine=Γραμμή επαφής +ContractLines=Γραμμές συμβολαίων Closing=Κλείσιμο NoContracts=Κανένα Συμβόλαιο MenuServices=Υπηρεσίες @@ -28,7 +29,7 @@ MenuRunningServices=Ενεργές Υπηρεσίες MenuExpiredServices=Ληγμένες Υπηρεσίες MenuClosedServices=Τερματισμένες Υπηρεσίες NewContract=Νέο Συμβόλαιο -NewContractSubscription=New contract or subscription +NewContractSubscription=Νέο συμβόλαιο ή συνδρομή AddContract=Δημιουργία σύμβασης DeleteAContract=Διαγραφή Συμβολαίου ActivateAllOnContract=Ενεργοποιήστε όλες τις υπηρεσίες @@ -36,7 +37,7 @@ CloseAContract=Τερματισμός Συμβολαίου ConfirmDeleteAContract=Είστε σίγουροι πως θέλετε να διαγράψετε αυτό το συμβόλαιο και όλες τις υπηρεσίες του; ConfirmValidateContract=Are you sure you want to validate this contract under name %s? ConfirmActivateAllOnContract=Αυτό θα ανοίξει όλες τις υπηρεσίες (δεν είναι ακόμα ενεργές). Είστε βέβαιοι ότι θέλετε να ανοίξετε όλες τις υπηρεσίες; -ConfirmCloseContract=This will close all services (expired or not). Are you sure you want to close this contract? +ConfirmCloseContract=Αυτό θα κλείσει όλες τις υπηρεσίες (που έχουν λήξει ή όχι). Είστε σίγουροι ότι θέλετε να κλείσετε αυτό το συμβόλαιο; ConfirmCloseService=Are you sure you want to close this service with date %s? ValidateAContract=Επικύρωση συμβολαίου ActivateService=Ενεργοποίηση Υπηρεσίας @@ -99,6 +100,8 @@ TypeContact_contrat_internal_SALESREPFOLL=Πωλήσεις εκπρόσωπος TypeContact_contrat_external_BILLING=Χρέωση επαφή με τον πελάτη TypeContact_contrat_external_CUSTOMER=Παρακολούθηση της επαφής με τον πελάτη TypeContact_contrat_external_SALESREPSIGN=Υπογραφή σύμβασης επαφή με τον πελάτη -HideClosedServiceByDefault=Hide closed services by default -ShowClosedServices=Show Closed Services -HideClosedServices=Hide Closed Services +HideClosedServiceByDefault=Απόκρυψη κλειστών υπηρεσιών από προεπιλογή +ShowClosedServices=Εμφάνιση κλειστών υπηρεσιών +HideClosedServices=Απόκρυψη κλειστών υπηρεσιών +UserStartingService=Εκκίνηση υπηρεσίας χρήστη +UserClosingService=Κλείσιμο υπηρεσίας χρήστη diff --git a/htdocs/langs/el_GR/cron.lang b/htdocs/langs/el_GR/cron.lang index 31f919a9f2c..9959bf37d38 100644 --- a/htdocs/langs/el_GR/cron.lang +++ b/htdocs/langs/el_GR/cron.lang @@ -7,14 +7,14 @@ 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 για να ξεκινήσει η εργασία cron FileToLaunchCronJobs=Γραμμή εντολών για έλεγχο και εκκίνηση ειδικών εργασιών cron CronExplainHowToRunUnix=Στο Unix περιβάλλον θα πρέπει να χρησιμοποιήσετε την ακόλουθη καταχώρηση crontab για να τρέχει η γραμμή εντολών καθένα 5 λεπτά 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 +CronMethodNotAllowed=Η μέθοδος %s της κλάσης %s βρίσκεται στη μαύρη λίστα των απαγορευμένων μεθόδων CronJobDefDesc=Τα προφίλ εργασίας Cron ορίζονται στο αρχείο περιγραφικής ενότητας. Όταν η ενότητα είναι ενεργοποιημένη, φορτώνεται και είναι διαθέσιμη, ώστε να μπορείτε να διαχειριστείτε τις εργασίες από το μενού εργαλείων admin %s. CronJobProfiles=Λίστα προκαθορισμένων προφίλ εργασίας cron # Menu @@ -47,7 +47,7 @@ CronNbRun=Αριθμός εκτοξεύσεων CronMaxRun=Μέγιστος αριθμός εκτοξεύσεων CronEach=Κάθε JobFinished=Ξεκίνησε και τελείωσε -Scheduled=Scheduled +Scheduled=Προγραμματισμένες #Page card CronAdd= Προσθήκη εργασίας CronEvery=Execute job each @@ -58,9 +58,9 @@ CronNote=Σχόλιο CronFieldMandatory=Τα πεδία %s είναι υποχρεωτικά CronErrEndDateStartDt=Η ημερομηνία λήξης δεν μπορεί να είναι πριν από την ημερομηνία έναρξης StatusAtInstall=Κατάσταση κατά την εγκατάσταση της μονάδας -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=Προγραμματισμός CronStatusInactiveBtn=Απενεργοποίηση -CronTaskInactive=This job is disabled (not scheduled) +CronTaskInactive=Αυτή η εργασία είναι απενεργοποιημένη (δεν έχει προγραμματιστεί) CronId=Id CronClassFile=Filename with class CronModuleHelp=Όνομα του καταλόγου μονάδων Dolibarr (επίσης λειτουργούν με εξωτερική μονάδα Dolibarr).
    Για παράδειγμα, για να καλέσουμε τη μέθοδο fetch του προϊόντος Dolibarr Product / htdocs / product / class / product.class.php, η τιμή για την ενότητα είναι
    προϊόν @@ -82,10 +82,12 @@ UseMenuModuleToolsToAddCronJobs=Μεταβείτε στο μενού " %s
    already exists. -ErrorLoginAlreadyExists=Είσοδος %s υπάρχει ήδη. -ErrorGroupAlreadyExists=Ομάδα %s υπάρχει ήδη. -ErrorEmailAlreadyExists=Email %s already exists. -ErrorRecordNotFound=Εγγραφή δεν βρέθηκε. -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'. +ErrorButCommitIsDone=Βρέθηκαν σφάλματα, αλλά επικυρώνουμε παρόλα αυτά +ErrorBadEMail=Το email %s είναι λάθος +ErrorBadMXDomain=Το email %s φαίνεται λανθασμένο (ο τομέας δεν έχει έγκυρη εγγραφή MX) +ErrorBadUrl=Η διεύθυνση URL %s δεν ειναι σωστή +ErrorBadValueForParamNotAString=Κακή τιμή για την παράμετρο σας. συνδέεται αόριστα όταν λείπει η μετάφραση. +ErrorRefAlreadyExists=Η αναφορά %s υπάρχει ήδη. +ErrorTitleAlreadyExists=Ο τίτλος %s υπάρχει ήδη. +ErrorLoginAlreadyExists=Η σύνδεση %s υπάρχει ήδη. +ErrorGroupAlreadyExists=Η ομάδα %s υπάρχει ήδη. +ErrorEmailAlreadyExists=Το email %s υπάρχει ήδη. +ErrorRecordNotFound=Η εγγραφή δεν βρέθηκε. +ErrorFailToCopyFile=Απέτυχε η αντιγραφή του αρχείου '%s' στο '%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=Κακή τιμή για όνομα τρίτου μέρους -ForbiddenBySetupRules=Forbidden by setup rules +ErrorCashAccountAcceptsOnlyCashMoney=Αυτός ο τραπεζικός λογαριασμός είναι λογαριασμός μετρητών, επομένως δέχεται πληρωμές μόνο με μετρητά. +ErrorFromToAccountsMustDiffers=Οι τραπεζικοί λογαριασμοί προέλευσης και στόχοι πρέπει να είναι διαφορετικοί. +ErrorBadThirdPartyName=Λάθος τιμή για όνομα τρίτου μέρους +ForbiddenBySetupRules=Απαγορεύεται από τους κανόνες εγκατάστασης ErrorProdIdIsMandatory=Το %s είναι υποχρεωτικό -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=Ο λογιστικός κωδικός του πελάτη %s είναι υποχρεωτικός ErrorBadCustomerCodeSyntax=Λάθος σύνταξη για τον κωδικό πελάτη -ErrorBadBarCodeSyntax=Κακή σύνταξη για τον γραμμωτό κώδικα. Μπορεί να ορίσετε έναν κακό τύπο γραμμωτού κώδικα ή έχετε ορίσει μια μάσκα γραμμωτού κώδικα για την αρίθμηση που δεν ταιριάζει με την τιμή που σαρώθηκε. -ErrorCustomerCodeRequired=Κωδικός πελάτη απαιτείται +ErrorBadBarCodeSyntax=Λάθος σύνταξη για γραμμωτό κώδικα. Μπορεί να έχετε ορίσει έναν κακό τύπο γραμμικού κώδικα ή να έχετε ορίσει μια μάσκα γραμμικού κώδικα για αρίθμηση που δεν ταιριάζει με την τιμή που έχει σαρωθεί. +ErrorCustomerCodeRequired=Απαιτείται κωδικός πελάτη ErrorBarCodeRequired=Απαιτείται γραμμικός κώδικας -ErrorCustomerCodeAlreadyUsed=Ο κωδικός πελάτη που έχει ήδη χρησιμοποιηθεί -ErrorBarCodeAlreadyUsed=Ο γραμμικός κώδικας που χρησιμοποιείται ήδη -ErrorPrefixRequired=Απαιτείται Πρόθεμα -ErrorBadSupplierCodeSyntax=Κακή σύνταξη για τον κωδικό προμηθευτή +ErrorCustomerCodeAlreadyUsed=Ο κωδικός πελάτη χρησιμοποιείται ήδη +ErrorBarCodeAlreadyUsed=Ο γραμμωτός κώδικας χρησιμοποιείται ήδη +ErrorPrefixRequired=Απαιτείται πρόθεμα +ErrorBadSupplierCodeSyntax=Λάθος σύνταξη για τον κωδικό προμηθευτή ErrorSupplierCodeRequired=Απαιτείται κωδικός προμηθευτή -ErrorSupplierCodeAlreadyUsed=Κωδικός προμηθευτή που χρησιμοποιήθηκε ήδη -ErrorBadParameters=Λάθος παράμετρος -ErrorWrongParameters=Wrong or missing parameters -ErrorBadValueForParameter=Η τιμή '%s' δεν είναι έγγυρη για την παράμετρο '%s' +ErrorSupplierCodeAlreadyUsed=Ο κωδικός προμηθευτή χρησιμοποιείται ήδη +ErrorBadParameters=Λάθος παράμετροι +ErrorWrongParameters=Λάθος ή ελλείπεις παράμετροι +ErrorBadValueForParameter=Λανθασμένη τιμή "%s" για την παράμετρο "%s" ErrorBadImageFormat=Το αρχείο εικόνας δεν έχει μια υποστηριζόμενη μορφή (Η PHP σας δεν υποστηρίζει λειτουργίες για να μετατρέψετε τις εικόνες αυτής της μορφής) ErrorBadDateFormat=Η τιμή «%s« δεν έχει σωστή μορφή ημερομηνίας ErrorWrongDate=Η ημερομηνία δεν είναι σωστή! -ErrorFailedToWriteInDir=Αποτυχία εγγραφής στον %s φάκελο -ErrorFoundBadEmailInFile=Βρέθηκε εσφαλμένη σύνταξη e-mail για %s γραμμές στο αρχείο (%s γραμμή παράδειγμα με e-mail = %s) +ErrorFailedToWriteInDir=Απέτυχε η εγγραφή στον κατάλογο %s +ErrorFoundBadEmailInFile=Βρέθηκε λανθασμένη σύνταξη email για %s γραμμές στο αρχείο (παράδειγμα γραμμής %s με email=%s) ErrorUserCannotBeDelete=Ο χρήστης δεν μπορεί να διαγραφεί. Ίσως σχετίζεται με οντότητες Dolibarr. -ErrorFieldsRequired=Some required fields have been left blank. -ErrorSubjectIsRequired=The email subject is required -ErrorFailedToCreateDir=Αποτυχία δημιουργίας φακέλου. Βεβαιωθείτε ότι ο Web server χρήστης έχει δικαιώματα να γράψει στο φάκελο εγγράφων του Dolibarr. Αν η safe_mode παράμετρος είναι ενεργοποιημένη για την PHP, ελέγξτε ότι τα αρχεία php του Dolibarr ανήκουν στον web server χρήστη (ή ομάδα). +ErrorFieldsRequired=Ορισμένα υποχρεωτικά πεδία έχουν μείνει κενά. +ErrorSubjectIsRequired=Το θέμα του email είναι υποχρεωτικό +ErrorFailedToCreateDir=Αποτυχία δημιουργίας καταλόγου. Ελέγξτε ότι ο χρήστης του διακομιστή Web έχει δικαιώματα εγγραφής στον κατάλογο εγγράφων Dolibarr. Εάν η παράμετρος safe_mode είναι ενεργοποιημένη σε αυτήν την PHP, ελέγξτε ότι τα αρχεία php Dolibarr ανήκουν σε χρήστη (ή ομάδα) διακομιστή web. ErrorNoMailDefinedForThisUser=Δεν έχει οριστεί mail για αυτόν το χρήστη -ErrorSetupOfEmailsNotComplete=Setup of emails is not complete +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=Another file with the name %s already exists. +ErrorDestinationAlreadyExists=Υπάρχει ήδη ένα άλλο αρχείο με το όνομα %s . ErrorPartialFile=Ο διακομιστής δεν έλαβε ολόκληρο το αρχείο. -ErrorNoTmpDir=Ο προσωρινός φάκελος %s δεν υπάρχει. +ErrorNoTmpDir=Ο προσωρινός κατάλογος %s δεν υπάρχει. ErrorUploadBlockedByAddon=Η μεταφόρτωση απετράπει από ένα PHP / Apache plugin. -ErrorFileSizeTooLarge=Το μέγεθος του αρχείου είναι πολύ μεγάλο. +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 δεν πρέπει να περιέχει ειδικούς χαρακτήρες, ούτε κεφαλαία και δεν μπορεί να περιέχει μόνο αριθμούς. ErrorFieldMustHaveXChar=Το πεδίο %s πρέπει να έχει τουλάχιστον %s χαρακτήρες. -ErrorNoAccountancyModuleLoaded=Δεν έχει ενεργοποιηθεί λογιστική μονάδα +ErrorNoAccountancyModuleLoaded=Δεν έχει ενεργοποιηθεί η ενότητα λογιστικής ErrorExportDuplicateProfil=Αυτό το όνομα προφίλ υπάρχει ήδη για αυτό το σύνολο των εξαγωγών. ErrorLDAPSetupNotComplete=Η αντιστοίχιση Dolibarr-LDAP δεν είναι πλήρης. -ErrorLDAPMakeManualTest=Ένα αρχείο. Ldif έχει δημιουργηθεί στον φάκελο %s. Προσπαθήστε να το φορτώσετε χειροκίνητα από την γραμμή εντολών για να έχετε περισσότερες πληροφορίες σχετικά με τα σφάλματα. -ErrorCantSaveADoneUserWithZeroPercentage=Δεν είναι δυνατή η αποθήκευση μιας ενέργειας με "κατάσταση δεν έχει ξεκινήσει" εάν συμπληρώνεται επίσης το πεδίο "done by". -ErrorRefAlreadyExists=Reference %s already exists. -ErrorPleaseTypeBankTransactionReportName=Παρακαλούμε εισάγετε το όνομα του τραπεζικού λογαριασμού όπου πρέπει να αναφέρεται η καταχώρηση (Format YYYYMM ή YYYYMMDD) -ErrorRecordHasChildren=Δεν ήταν δυνατή η διαγραφή της εγγραφής, δεδομένου ότι έχει ορισμένα αρχεία παιδιών. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s +ErrorLDAPMakeManualTest=Ένα αρχείο .ldif έχει δημιουργηθεί στον κατάλογο %s. Προσπαθήστε να το φορτώσετε χειροκίνητα από τη γραμμή εντολών για να έχετε περισσότερες πληροφορίες σχετικά με τα σφάλματα. +ErrorCantSaveADoneUserWithZeroPercentage=Δεν είναι δυνατή η αποθήκευση μιας ενέργειας με "κατάσταση μη έναρξης" εάν το πεδίο "ολοκληρώθηκε από" είναι επίσης συμπληρωμένο. +ErrorRefAlreadyExists=Η αναφορά %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 υπάρχουσας αναφοράς +ErrorsOnXLines=%sσφάλματα βρέθηκαν +ErrorFileIsInfectedWithAVirus=Το πρόγραμμα προστασίας από ιούς δεν μπόρεσε να επικυρώσει το αρχείο (το αρχείο ενδέχεται να έχει μολυνθεί από ιό) +ErrorSpecialCharNotAllowedForField=Δεν επιτρέπονται ειδικοί χαρακτήρες για το πεδίο "%s" +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 ή άλλα ...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. -ErrorNoImagickReadimage=Κατηγορία imagick δεν βρίσκεται σε αυτό το PHP. Δεν προεπισκόπηση μπορεί να είναι διαθέσιμες. Οι διαχειριστές μπορούν να απενεργοποιήσουν αυτή την καρτέλα από το πρόγραμμα Εγκατάστασης μενού - Οθόνη. -ErrorRecordAlreadyExists=Εγγραφή υπάρχει ήδη +ErrorFailedToLoadRSSFile=Αποτυχία λήψης ροής RSS. Προσπαθήστε να προσθέσετε τη σταθερά MAIN_SIMPLEXMLLOAD_DEBUG εάν τα μηνύματα σφάλματος δεν παρέχουν αρκετές πληροφορίες. +ErrorForbidden=Δεν επιτρέπεται η πρόσβαση.
    Προσπαθείτε να αποκτήσετε πρόσβαση σε μια σελίδα, περιοχή ή δυνατότητα μιας απενεργοποιημένης ενότητας ή χωρίς να βρίσκεστε σε μια επαληθευμένη περίοδο λειτουργίας ή δεν επιτρέπεται στον χρήστη σας. +ErrorForbidden2=Η άδεια για αυτή τη σύνδεση μπορεί να οριστεί από το διαχειριστή σας από το μενού %s-> %s. +ErrorForbidden3=Φαίνεται ότι το Dolibarr δεν χρησιμοποιείται μέσω επικυρωμένης συνεδρίας. Ρίξτε μια ματιά στην τεκμηρίωση εγκατάστασης του Dolibarr για να μάθετε πώς να διαχειρίζεστε τους ελέγχους ταυτότητας (htaccess, mod_auth ή άλλα...). +ErrorForbidden4=Σημείωση: διαγράψτε τα cookies του προγράμματος περιήγησης σας για να διαγράψετε τις υπάρχουσες περιόδους σύνδεσης για αυτήν τη σύνδεση. +ErrorNoImagickReadimage=Η κλάση Imagick δεν υπαρχει σε αυτήν την PHP. Η προεπισκόπηση δεν είναι διαθέσιμη . Οι διαχειριστές μπορούν να απενεργοποιήσουν αυτήν την καρτέλα από το μενού Ρυθμίσεις - Εμφάνιση. +ErrorRecordAlreadyExists=Η εγγραφή υπάρχει ήδη ErrorLabelAlreadyExists=Αυτή η ετικέτα υπάρχει ήδη -ErrorCantReadFile=Αποτυχία ανάγνωσης αρχείου "%s» -ErrorCantReadDir=Αποτυχία ανάγνωσης »%s» κατάλογο +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. -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=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%%). +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=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=Σφάλμα, η 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' +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=Ένας τρόπος πληρωμής ορίστηκε στον τύπο %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 -ErrorFilenameCantStartWithDot=Filename can't start with a '.' -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 υπάρχει ήδη σε άλλη αναφορά προϊόντος. -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=Η περιγραφή είναι υποχρεωτική για γραμμές με δωρεάν προϊόν +ErrorWarehouseRequiredIntoShipmentLine=Απαιτείται αποθήκη στη γραμμή για αποστολή +ErrorFileMustHaveFormat=Το αρχείο πρέπει να έχει μορφή %s +ErrorFilenameCantStartWithDot=Το όνομα αρχείου δεν μπορεί να ξεκινά με ένα '.' +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=Η περιγραφή είναι υποχρεωτική για γραμμές με ελεύθερο προϊόν ErrorAPageWithThisNameOrAliasAlreadyExists=Η σελίδα / κοντέινερ %s έχει το ίδιο όνομα ή εναλλακτικό ψευδώνυμο με εκείνο που προσπαθείτε να χρησιμοποιήσετε -ErrorDuringChartLoad=Σφάλμα κατά τη φόρτωση του γραφήματος λογαριασμών. Εάν δεν έχουν φορτωθεί μερικοί λογαριασμοί, μπορείτε να τις εισαγάγετε με μη αυτόματο τρόπο. -ErrorBadSyntaxForParamKeyForContent=Κακή σύνταξη για παράμετρο κλειδί για ικανοποίηση. Πρέπει να έχει μια τιμή ξεκινώντας με %s ή %s -ErrorVariableKeyForContentMustBeSet=Σφάλμα, πρέπει να οριστεί η σταθερά με το όνομα %s (με περιεχόμενο κειμένου για εμφάνιση) ή %s (με εξωτερική διεύθυνση URL για εμφάνιση). -ErrorURLMustEndWith=URL %s must end %s +ErrorDuringChartLoad=Σφάλμα κατά τη φόρτωση του λογιστικού σχεδίου. Εάν δεν φορτώθηκαν λίγοι λογαριασμοί, μπορείτε να τους εισαγάγετε χειροκίνητα. +ErrorBadSyntaxForParamKeyForContent=Λάθος σύνταξη για την παράμετρο keyforcontent. Πρέπει να έχει μια τιμή ξεκινώντας με %s ή %s +ErrorVariableKeyForContentMustBeSet=Σφάλμα, πρέπει να οριστεί η σταθερά με όνομα %s (με περιεχόμενο κειμένου προς εμφάνιση) ή %s (με εξωτερικό url για εμφάνιση). +ErrorURLMustEndWith=Η διεύθυνση URL %s πρέπει να καταλήγει σε %s ErrorURLMustStartWithHttp=Η διεύθυνση URL %s πρέπει να ξεκινά με http: // ή https: // -ErrorHostMustNotStartWithHttp=Host name %s must NOT start with http:// or https:// +ErrorHostMustNotStartWithHttp=Το host name %s ΔΕΝ πρέπει να ξεκινά με http:// ή https:// ErrorNewRefIsAlreadyUsed=Σφάλμα, η νέα αναφορά χρησιμοποιείται ήδη ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Σφάλμα, διαγραφή πληρωμής που συνδέεται με κλειστό τιμολόγιο δεν είναι δυνατή. -ErrorSearchCriteriaTooSmall=Τα κριτήρια αναζήτησης είναι πολύ μικρά. -ErrorObjectMustHaveStatusActiveToBeDisabled=Τα αντικείμενα πρέπει να έχουν την κατάσταση 'Ενεργή' για απενεργοποίηση -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Τα αντικείμενα πρέπει να έχουν την κατάσταση 'Προετοιμασία' ή 'Απενεργοποίηση' για ενεργοποίηση -ErrorNoFieldWithAttributeShowoncombobox=Κανένα πεδίο δεν έχει την ιδιότητα 'showoncombobox' στον ορισμό του αντικειμένου '%s'. Κανένας τρόπος να δείξουμε τον συνθέτη. +ErrorSearchCriteriaTooSmall=Τα κριτήρια αναζήτησης δεν είναι αρκετά. +ErrorObjectMustHaveStatusActiveToBeDisabled=Τα αντικείμενα πρέπει να έχουν την κατάσταση «Ενεργά» για να απενεργοποιηθούν +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=Τα αντικείμενα πρέπει να έχουν την κατάσταση «Προσχέδιο» ή «Απενεργοποιημένο» για να ενεργοποιηθούν +ErrorNoFieldWithAttributeShowoncombobox=Κανένα πεδίο δεν έχει την ιδιότητα "showoncombobox" στον ορισμό του αντικειμένου "%s". Δεν υπάρχει τρόπος να εμφανίσουμε τη λίστα σύνθετου πλαισίου. ErrorFieldRequiredForProduct=Το πεδίο '%s' απαιτείται για το προϊόν %s -ProblemIsInSetupOfTerminal=Πρόβλημα στη ρύθμιση του τερματικού %s. -ErrorAddAtLeastOneLineFirst=Προσθέστε πρώτα τουλάχιστον μια γραμμή +ProblemIsInSetupOfTerminal=Το πρόβλημα είναι στη ρύθμιση του τερματικού %s. +ErrorAddAtLeastOneLineFirst=Προσθέστε τουλάχιστον μία γραμμή πρώτα ErrorRecordAlreadyInAccountingDeletionNotPossible=Σφάλμα, η εγγραφή έχει ήδη μεταφερθεί στη λογιστική, η διαγραφή δεν είναι δυνατή. ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Σφάλμα, η γλώσσα είναι υποχρεωτική εάν ορίσετε τη σελίδα ως μετάφραση άλλης. -ErrorLanguageOfTranslatedPageIsSameThanThisPage=Σφάλμα, η γλώσσα της μεταφρασμένης σελίδας είναι ίδια από αυτήν. -ErrorBatchNoFoundForProductInWarehouse=Δεν βρέθηκε παρτίδα / σειριακή για το προϊόν "%s" στην αποθήκη "%s". -ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Δεν υπάρχει αρκετή ποσότητα για αυτήν την παρτίδα / σειριακό για το προϊόν "%s" στην αποθήκη "%s". -ErrorOnlyOneFieldForGroupByIsPossible=Είναι δυνατό μόνο 1 πεδίο για την «Ομάδα κατά» (άλλα απορρίπτονται) -ErrorTooManyDifferentValueForSelectedGroupBy=Βρέθηκαν πάρα πολλές διαφορετικές τιμές (περισσότερες από %s ) για το πεδίο " %s ", οπότε δεν μπορούμε να το χρησιμοποιήσουμε ως γραφικά " Το πεδίο "Group By" έχει αφαιρεθεί. Μπορεί να θέλετε να το χρησιμοποιήσετε ως άξονα X; -ErrorReplaceStringEmpty=Σφάλμα, η συμβολοσειρά για αντικατάσταση είναι κενή -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 +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Σφάλμα, η γλώσσα της μεταφρασμένης σελίδας είναι ίδια με αυτήν. +ErrorBatchNoFoundForProductInWarehouse=Δεν βρέθηκε παρτίδα / σειριακός αριθμός για το προϊόν "%s" στην αποθήκη "%s". +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Δεν υπάρχει αρκετή ποσότητα για αυτήν την παρτίδα / σειριακό αριθμό για το προϊόν "%s" στην αποθήκη "%s". +ErrorOnlyOneFieldForGroupByIsPossible=Μόνο 1 πεδίο για την «Ομαδοποίηση κατά» είναι δυνατό (τα άλλα απορρίπτονται) +ErrorTooManyDifferentValueForSelectedGroupBy=Βρέθηκαν πάρα πολλές διαφορετικές τιμές (περισσότερες από %s ) για το πεδίο " %s ", οπότε δεν μπορούμε να το χρησιμοποιήσουμε ως «Ομαδοποίηση κατά» για γραφικά " Το πεδίο «Ομαδοποίηση κατά» έχει αφαιρεθεί. Μπορεί να θέλατε να το χρησιμοποιήσετε ως άξονα X; +ErrorReplaceStringEmpty=Σφάλμα, η συμβολοσειρά(string) για αντικατάσταση είναι κενή +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=Απαιτείται το owner id του χρήστη +ErrorActionCommBadType=Ο επιλεγμένος τύπος συμβάντος (αναγνωριστικό: %s, κωδικός: %s) δεν υπάρχει στο λεξικό Τύπου συμβάντος +CheckVersionFail=Αποτυχία ελέγχου έκδοσης +ErrorWrongFileName=Το όνομα του αρχείου δεν μπορεί να έχει __ΚΑΤΙ__ σε αυτό +ErrorNotInDictionaryPaymentConditions=Δεν υπάρχει στο Λεξικό Όρων Πληρωμής, παρακαλώ τροποποιήστε. +ErrorIsNotADraft=Το %s δεν είναι πρόχειρο +ErrorExecIdFailed=Δεν είναι δυνατή η εκτέλεση της εντολής "id" +ErrorBadCharIntoLoginName=Μη εξουσιοδοτημένος χαρακτήρας στο όνομα σύνδεσης +ErrorRequestTooLarge=Σφάλμα, το αίτημα είναι πολύ μεγάλο +ErrorNotApproverForHoliday=Δεν είστε ο υπεύθυνος έγκρισης για την άδεια %s +ErrorAttributeIsUsedIntoProduct=Αυτό το χαρακτηριστικό χρησιμοποιείται σε μία ή περισσότερες παραλλαγές προϊόντων +ErrorAttributeValueIsUsedIntoProduct=Αυτή η τιμή χαρακτηριστικού χρησιμοποιείται σε μία ή περισσότερες παραλλαγές προϊόντος +ErrorPaymentInBothCurrency=Σφάλμα, όλα τα ποσά πρέπει να εισαχθούν στην ίδια στήλη +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Προσπαθείτε να πληρώσετε τιμολόγια στο νόμισμα %s από έναν λογαριασμό με το νόμισμα %s +ErrorInvoiceLoadThirdParty=Δεν είναι δυνατή η φόρτωση αντικειμένου τρίτου μέρους για το τιμολόγιο "%s" +ErrorInvoiceLoadThirdPartyKey=Το κλειδί τρίτου μέρους "%s" δεν έχει οριστεί για το τιμολόγιο "%s" +ErrorDeleteLineNotAllowedByObjectStatus=Η διαγραφή γραμμής δεν επιτρέπεται από την τωρινή κατάσταση του αντικειμένου +ErrorAjaxRequestFailed=To αίτημα AJAX απέτυχε +ErrorThirpdartyOrMemberidIsMandatory=Τρίτο μέρος ή Μέλος της εταιρικής σχέσης είναι υποχρεωτικό +ErrorFailedToWriteInTempDirectory=Αποτυχία εγγραφής στον κατάλογο temp +ErrorQuantityIsLimitedTo=Η ποσότητα περιορίζεται σε %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=Όλες οι προειδοποιήσεις ασφαλείας (ορατές μόνο από τους διαχειριστές) θα παραμείνουν ενεργές για όσο διάστημα υπάρχει η ευπάθεια (ή ότι η σταθερή MAIN_REMOVE_INSTALL_WARNING προστίθεται στο Ρυθμίσεις->Άλλες Ρυθμίσεις). +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=Προειδοποίηση, η ημερομηνία της γραμμής δεν βρίσκεται στο εύρος της έκθεσης δαπανών -WarningProjectDraft=Project is still in draft mode. Don't forget to validate it if you plan to use tasks. +WarningTooManyDataPleaseUseMoreFilters=Πάρα πολλά δεδομένα (περισσότερες από %sγραμμές). Χρησιμοποιήστε περισσότερα φίλτρα ή ορίστε τη σταθερά %s σε υψηλότερο όριο. +WarningSomeLinesWithNullHourlyRate=Κάποιοι χρόνοι καταγράφηκαν από ορισμένους χρήστες ενώ η ωριαία τιμή τους δεν είχε καθοριστεί. Χρησιμοποιήθηκε μια τιμή 0 %s ανά ώρα, αλλά αυτό μπορεί να οδηγήσει σε λανθασμένη εκτίμηση του χρόνου που δαπανήθηκε. +WarningYourLoginWasModifiedPleaseLogin=Η σύνδεσή σας τροποποιήθηκε. Για λόγους ασφαλείας θα πρέπει να συνδεθείτε με τη νέα σας σύνδεση πριν από την επόμενη ενέργεια. +WarningAnEntryAlreadyExistForTransKey=Υπάρχει ήδη μια καταχώριση για το κλειδί μετάφρασης για αυτήν τη γλώσσα +WarningNumberOfRecipientIsRestrictedInMassAction=Προειδοποίηση, ο αριθμός διαφορετικών παραληπτών περιορίζεται σε %s όταν χρησιμοποιείτε τις μαζικές ενέργειες σε λίστες +WarningDateOfLineMustBeInExpenseReportRange=Προειδοποίηση, η ημερομηνία γραμμής δεν είναι στο εύρος της αναφοράς εξόδων +WarningProjectDraft=Το έργο είναι ακόμα σε κατάσταση προχείρου. Μην ξεχάσετε να το επικυρώσετε εάν σκοπεύετε να χρησιμοποιήσετε εργασίες. WarningProjectClosed=Το έργο είναι κλειστό. Πρέπει πρώτα να το ανοίξετε ξανά. -WarningSomeBankTransactionByChequeWereRemovedAfter=Ορισμένες τραπεζικές συναλλαγές καταργήθηκαν μετά την ενσωμάτωσής τους εκεί οπου δημιουργήθηκαν. Επομένως, οι έλεγχοι και το σύνολο της απόδειξης μπορεί να διαφέρουν από τον αριθμό και το σύνολο της λίστας. -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. +WarningSomeBankTransactionByChequeWereRemovedAfter=Ορισμένες τραπεζικές συναλλαγές αφαιρέθηκαν μετά τη δημιουργία της απόδειξης. Επομένως, ο αριθμός των επιταγών και το σύνολο των αποδείξεων ενδέχεται να διαφέρουν από τον αριθμό και το σύνολο στη λίστα. +WarningFailedToAddFileIntoDatabaseIndex=Προειδοποίηση, απέτυχε η προσθήκη καταχώρισης αρχείου στον πίνακα ευρετηρίου βάσης δεδομένων ECM +WarningTheHiddenOptionIsOn=Προειδοποίηση, η κρυφή επιλογή %s είναι ενεργοποιημένη. +WarningCreateSubAccounts=Προειδοποίηση, δεν μπορείτε να δημιουργήσετε απευθείας έναν δευτερεύοντα λογαριασμό, πρέπει να δημιουργήσετε ένα τρίτο μέρος ή έναν χρήστη και να του εκχωρήσετε έναν λογιστικό κωδικό για να τους βρείτε σε αυτήν τη λίστα +WarningAvailableOnlyForHTTPSServers=Διατίθεται μόνο εάν χρησιμοποιείτε ασφαλή σύνδεση HTTPS. +WarningModuleXDisabledSoYouMayMissEventHere=Η ενότητα %s δεν έχει ενεργοποιηθεί. Έτσι, μπορεί να χάσετε πολλές λειτουργίες. +WarningPaypalPaymentNotCompatibleWithStrict=Η τιμή "Αυστηρή" κάνει τις λειτουργίες ηλεκτρονικής πληρωμής να μην λειτουργούν σωστά. Χρησιμοποιήστε την τιμή 'Χαλαρή' . +WarningThemeForcedTo=Προειδοποίηση, έχει γίνει επιβολή του θέματος %s από την κρυφή σταθερά MAIN_FORCETEME # 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 = Η διεύθυνση email δεν είναι έγκυρη +RequireMaxLength = Το μήκος πρέπει να είναι μικρότερο από %s χαρακτήρες +RequireMinLength = Το μήκος πρέπει να είναι μεγαλύτερο από %s χαρακτήρα(ες) +RequireValidUrl = Απαιτείται έγκυρη διεύθυνση URL +RequireValidDate = Απαιτείται έγκυρη ημερομηνία +RequireANotEmptyValue = Απαιτείται +RequireValidDuration = Απαιτείται έγκυρη διάρκεια +RequireValidExistingElement = Απαιτείται μια υπάρχουσα τιμή +RequireValidBool = Απαιτείται έγκυρο boolean +BadSetupOfField = Σφάλμα κακή ρύθμιση του πεδίου +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 f239c426ec8..f7f93ac9c84 100644 --- a/htdocs/langs/el_GR/eventorganization.lang +++ b/htdocs/langs/el_GR/eventorganization.lang @@ -17,151 +17,156 @@ # # 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 = Όταν επικυρώσετε μια εκδήλωση προς οργάνωση, ορισμένες εργασίες μπορούν να δημιουργηθούν αυτόματα στο πρόγραμμα

    Για παράδειγμα:
    Αποστολή Πρόσκλησης για Συνέδρια
    Αποστολή Πρόσκλησης για Περίπτερα
    Επικύρωση προτάσεων Συνεδρίων
    Επικύρωση αίτησης για Περίπτερα
    Άνοιγμα συνδρομών για τους συμμετέχοντες στην εκδήλωση
    Αποστολή μιας υπενθύμισης της εκδήλωσης στους ομιλητές
    Αποστολή μιας υπενθύμισης της εκδήλωσης στους οικοδεσπότες Περίπτερου
    Αποστολή μιας υπενθύμισης της εκδήλωσης στους συμμετέχοντες +EVENTORGANIZATION_TASK_LABELTooltip2=Διατηρήστε το κενό εάν δεν χρειάζεται να δημιουργείτε εργασίες αυτόματα. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Κατηγορία για προσθήκη σε τρίτα μέρη που δημιουργείται αυτόματα όταν κάποιος προτείνει μια διάσκεψη +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Κατηγορία για προσθήκη σε τρίτα μέρη που δημιουργείται αυτόματα όταν προτείνουν ένα περίπτερο +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Πρότυπο email για αποστολή μετά τη λήψη πρότασης για μια διάσκεψη. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Πρότυπο email για αποστολή αφού λάβετε πρόταση περίπτερου. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Πρότυπο email για αποστολή μετά την πληρωμή της εγγραφής για ένα περίπτερο. +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 = Στη φόρμα για τη δημιουργία/προσθήκης ενός συμμετέχοντα, περιορίζει τη λίστα τρίτων σε τρίτα μέρη με τη φύση # # 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= Συνέδριο ή Περίπτερο +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 = Seed για να εξασφαλίσετε το κλειδί για τη δημόσια σελίδα εγγραφής για την πρόταση συνεδρίου +SERVICE_BOOTH_LOCATION = Υπηρεσία που χρησιμοποιείται για τη γραμμή τιμολογίου σχετικά με τη θέση του περιπτέρου +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Υπηρεσία που χρησιμοποιείται για τη γραμμή τιμολογίου σχετικά με τη συνδρομή ενός συμμετέχοντος σε μια εκδήλωση +NbVotes=Αριθμός ψήφων # # Status # -EvntOrgDraft = Πρόχειρο -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified +EvntOrgDraft = Προσχέδιο +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 -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 +SuggestForm = Σελίδα πρότασης +SuggestOrVoteForConfOrBooth = Σελίδα για πρόταση ή ψήφο +EvntOrgRegistrationHelpMessage = Εδώ, μπορείτε να ψηφίσετε για ένα συνέδριο ή να προτείνετε ένα νέο για την εκδήλωση. Μπορείτε επίσης να κάνετε αίτηση για την απόκτηση περίπτερου κατά τη διάρκεια της εκδήλωσης. +EvntOrgRegistrationConfHelpMessage = Εδώ, μπορείτε να προτείνετε ένα νέο συνέδριο για προώθηση κατά τη διάρκεια της εκδήλωσης. +EvntOrgRegistrationBoothHelpMessage = Εδώ, μπορείτε να κάνετε αίτηση για να έχετε ένα περίπτερο κατά τη διάρκεια της εκδήλωσης. +ListOfSuggestedConferences = Λίστα προτεινόμενων συνεδρίων +ListOfSuggestedBooths = Λίστα προτεινόμενων περιπτέρων +ListOfConferencesOrBooths=Λίστα συνεδρίων ή περιπτέρων του έργου εκδήλωσης +SuggestConference = Προτείνετε ένα νέο συνέδριο +SuggestBooth = Προτείνετε ένα περίπτερο +ViewAndVote = Δείτε και ψηφίστε για προτεινόμενες εκδηλώσεις +PublicAttendeeSubscriptionGlobalPage = Δημόσιος σύνδεσμος για εγγραφή στην εκδήλωση +PublicAttendeeSubscriptionPage = Δημόσιος σύνδεσμος για εγγραφή σε αυτήν την εκδήλωση μόνο  +MissingOrBadSecureKey = Το κλειδί ασφαλείας δεν είναι έγκυρο ή λείπει +EvntOrgWelcomeMessage = Αυτή η φόρμα σάς επιτρέπει να εγγραφείτε ως νέος συμμετέχων στην εκδήλωση: %s +EvntOrgDuration = Αυτό το συνέδριο ξεκινά στις %s και τελειώνει στις %s. +ConferenceAttendeeFee = Χρέωση συμμετεχόντων στο συνέδριο για την εκδήλωση : "%s" που διεξάγεται από %s έως %s. +BoothLocationFee = Θέση περιπτέρου για την εκδήλωση : "%s" που διεξάγεται από %s έως %s +EventType = Τύπος εκδήλωσης +LabelOfBooth=Ταμπέλα περιπτέρου +LabelOfconference=Ταμπέλα συνεδρίου +ConferenceIsNotConfirmed=Η εγγραφή δεν είναι διαθέσιμη, το συνέδριο δεν έχει επιβεβαιωθεί ακόμα +DateMustBeBeforeThan=Το %s πρέπει να είναι πριν από το %s +DateMustBeAfterThan=Το %s πρέπει να είναι μετά το %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) +NewSubscription=Εγγραφή +OrganizationEventConfRequestWasReceived=Η πρότασή σας για μια διάσκεψη έχει ληφθεί +OrganizationEventBoothRequestWasReceived=Το αίτημά σας για ένα περίπτερο έχει ληφθεί +OrganizationEventPaymentOfBoothWasReceived=Η πληρωμή για το περίπτερό σας έχει καταγραφεί +OrganizationEventPaymentOfRegistrationWasReceived=Η πληρωμή σας για την εγγραφή της εκδήλωσής έχει καταγραφεί +OrganizationEventBulkMailToAttendees=Αυτή είναι μια υπενθύμιση για τη συμμετοχή σας στην εκδήλωση +OrganizationEventBulkMailToSpeakers=Αυτή είναι μια υπενθύμιση για τη συμμετοχή σας στην εκδήλωση ως ομιλητής +OrganizationEventLinkToThirdParty=Σύνδεσμος με τρίτο μέρος (πελάτη, προμηθευτή ή συνεργάτη) +OrganizationEvenLabelName=Δημόσια ονομασία του συνεδρίου ή του περιπτέρου -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 = Η εγγραφή σας έχει επικυρωθεί +ConfAttendeeSubscriptionConfirmation = Επιβεβαίωση της συνδρομής σας σε μια εκδήλωση +Attendee = Συμμετέχων +PaymentConferenceAttendee = Πληρωμή συμμετεχόντων στο συνέδριο +PaymentBoothLocation = Πληρωμή θέσης περιπτέρου +DeleteConferenceOrBoothAttendee=Κατάργηση συμμετέχοντος +RegistrationAndPaymentWereAlreadyRecorder=Μια εγγραφή και μια πληρωμή έχουν ήδη καταγραφεί για το email %s +EmailAttendee=Email του συμμετέχοντα +EmailCompanyForInvoice=Διεύθυνση ηλεκτρονικού ταχυδρομείου εταιρείας (για τιμολόγιο, εάν διαφέρει από το email του συμμετέχοντα) +ErrorSeveralCompaniesWithEmailContactUs=Έχουν βρεθεί πολλές εταιρείες με αυτό το email, επομένως δεν μπορούμε να επικυρώσουμε αυτόματα την εγγραφή σας. Παρακαλώ επικοινωνήστε μαζί μας στο %s +ErrorSeveralCompaniesWithNameContactUs=Έχουν βρεθεί πολλές εταιρείες με αυτό το όνομα, επομένως δεν μπορούμε να επικυρώσουμε αυτόματα την εγγραφή σας. Παρακαλώ επικοινωνήστε μαζί μας στο %s +NoPublicActionsAllowedForThisEvent=Καμία δημόσια δράση δεν είναι ανοιχτή στο κοινό για αυτήν την εκδήλωση +MaxNbOfAttendees=Μέγιστος αριθμός συμμετεχόντων diff --git a/htdocs/langs/el_GR/exports.lang b/htdocs/langs/el_GR/exports.lang index 16b8d9f43ba..0a1e9ef0cad 100644 --- a/htdocs/langs/el_GR/exports.lang +++ b/htdocs/langs/el_GR/exports.lang @@ -3,135 +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=Το αρχείο για εισαγωγή πρέπει να έχει μία από τις ακόλουθες μορφές -DownloadEmptyExample=Download template file with field content information -StarAreMandatory=* are mandatory fields +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: -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=Κάθε σχ βρέθηκαν για %s στοιχείο +FileWasImported=Το αρχείο εισήχθη με αριθμό %s . +YouCanUseImportIdToFindRecord=Μπορείτε να βρείτε όλες τις εισαγόμενες εγγραφές στη βάση δεδομένων σας φιλτράροντας στο πεδίο import_key='%s' . +NbOfLinesOK=Αριθμός γραμμών χωρίς σφάλματα και χωρίς προειδοποιήσεις: %s . +NbOfLinesImported=Αριθμός γραμμών που εισήχθησαν με επιτυχία: %s . +DataComeFromNoWhere=Η τιμή για εισαγωγή δεν προέρχεται από το αρχείο προέλευσης. +DataComeFromFileFieldNb=Η τιμή προς εισαγωγή προέρχεται από τη στήλη %s στο αρχείο προέλευσης. +DataComeFromIdFoundFromRef=Η τιμή που προέρχεται από τη στήλη %s του αρχείου προέλευσης θα χρησιμοποιηθεί για την εύρεση του αναγνωριστικού του γονικού αντικειμένου που θα χρησιμοποιηθεί (έτσι το αντικείμενο %s που έχει αυτή την αναφορά πρέπει να υπάρχει στη βάση δεδομένων). +DataComeFromIdFoundFromCodeId=Ο κωδικός που προέρχεται από τη στήλη %s του αρχείου προέλευσης θα χρησιμοποιηθεί για να βρεθεί το αναγνωριστικό του γονικού αντικειμένου που θα χρησιμοποιηθεί (έτσι ο κωδικός από το αρχείο προέλευσης πρέπει να υπάρχει στο λεξικό %s). Σημειώστε ότι εάν γνωρίζετε το αναγνωριστικό, μπορείτε επίσης να το χρησιμοποιήσετε στο αρχείο προέλευσης αντί για τον κώδικα. Η εισαγωγή θα πρέπει να λειτουργεί και στις δύο περιπτώσεις. +DataIsInsertedInto=Τα δεδομένα που προέρχονται από το αρχείο προέλευσης θα εισαχθούν στο ακόλουθο πεδίο: +DataIDSourceIsInsertedInto=Το αναγνωριστικό του γονικού αντικειμένου, που βρέθηκε χρησιμοποιώντας τα δεδομένα στο αρχείο προέλευσης, θα εισαχθεί στο ακόλουθο πεδίο: +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=Stocks and location (warehouse) of products with batch/serial number +NbInsert=Αριθμός εισαγόμενων γραμμών: %s +NbUpdate=Αριθμός ενημερωμένων γραμμών: %s +MultipleRecordFoundWithTheseFilters=Έχουν βρεθεί πολλές εγγραφές με αυτά τα φίλτρα: %s +StocksWithBatch=Αποθέματα και τοποθεσία (αποθήκη) προϊόντων με αριθμό παρτίδας/σειριακού αριθμού +WarningFirstImportedLine=Οι πρώτες γραμμές δεν θα εισαχθούν με την τρέχουσα επιλογή +NotUsedFields=Τα πεδία της βάσης δεδομένων που δεν χρησιμοποιούνται +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 0cd2832840d..00000000000 --- a/htdocs/langs/el_GR/externalsite.lang +++ /dev/null @@ -1,5 +0,0 @@ -# Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Ρύθμιση συνδέσμου σε εξωτερικό website -ExternalSiteURL=External Site URL of HTML iframe content -ExternalSiteModuleNotComplete=Το Module Εξωτερικά Site δεν έχει ρυθμιστεί σωστά. -ExampleMyMenuEntry=Καταχώρηση του μενού μου diff --git a/htdocs/langs/el_GR/ftp.lang b/htdocs/langs/el_GR/ftp.lang deleted file mode 100644 index 371ffb03bd9..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 εγκατάσταση μονάδας πελάτη -NewFTPClient=Νέα ρύθμιση της σύνδεσης FTP -FTPArea=FTP Περιοχή -FTPAreaDesc=Αυτή η οθόνη σας δείχνει το περιεχόμενο μιας προβολής του διακομιστή FTP -SetupOfFTPClientModuleNotComplete=Ρύθμιση της μονάδας-πελάτη FTP φαίνεται να μην είναι πλήρης -FTPFeatureNotSupportedByYourPHP=Η PHP σας δεν υποστηρίζει FTP λειτουργίες -FailedToConnectToFTPServer=Αποτυχία σύνδεσης με τον FTP server (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Αποτυχία σύνδεσης με τον FTP server login / password -FTPFailedToRemoveFile=Αποτυχία διαγραφής %s αρχείο. -FTPFailedToRemoveDir=Αποτυχία διαγραφής %s κατάλογου (ελέγξτε τα δικαιώματα και ότι ο κατάλογος είναι κενός). -FTPPassiveMode=Passive λειτουργία -ChooseAFTPEntryIntoMenu=Επιλέξτε ένα μενού εισαγωγής FTP -FailedToGetFile=Αποτυχία απόκτησης αρχείου %s diff --git a/htdocs/langs/el_GR/help.lang b/htdocs/langs/el_GR/help.lang index b0b3bc78c54..2389e8d7bff 100644 --- a/htdocs/langs/el_GR/help.lang +++ b/htdocs/langs/el_GR/help.lang @@ -1,23 +1,23 @@ # Dolibarr language file - Source file is en_US - help -CommunitySupport=Φόρουμ / Wiki υποστήριξη -EMailSupport=Emails υποστήριξη -RemoteControlSupport=Συνδεδεμένοι πραγματικό χρόνο / απομακρυσμένη υποστήριξη -OtherSupport=Άλλες υποστήριξη +CommunitySupport=Υποστήριξη μέσω φόρουμ/Wiki +EMailSupport=Υποστήριξη με email +RemoteControlSupport=Online υποστήριξη σε πραγματικό χρόνο / απομακρυσμένη υποστήριξη +OtherSupport=Άλλου τύπου υποστήριξη ToSeeListOfAvailableRessources=Για να επικοινωνήσετε / δείτε τους διαθέσιμους πόρους: -HelpCenter=Κέντρο Βοήθειας -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=Τύπος -NeedHelpCenter=Need help or support? +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) κάνοντας κλικ στο Widget (η κατάσταση και η μέγιστη τιμή ενημερώνονται αυτόματα): PossibleLanguages=Υποστηριζόμενες γλώσσες -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation -SeeOfficalSupport=Για την επίσημη υποστήριξη Dolibarr στη γλώσσα σας:
    %s +SubscribeToFoundation=Βοηθήστε την πλατφόρμα του Dolibarr, εγγραφείτε στο Dolibarr Foundation +SeeOfficalSupport=Για επίσημη υποστήριξη του Dolibarr στη γλώσσα σας:
    %s diff --git a/htdocs/langs/el_GR/holiday.lang b/htdocs/langs/el_GR/holiday.lang index 561229d411a..63b8a5d3c3b 100644 --- a/htdocs/langs/el_GR/holiday.lang +++ b/htdocs/langs/el_GR/holiday.lang @@ -3,137 +3,137 @@ HRM=HRM Holidays=Αδεια CPTitreMenu=Αδεια MenuReportMonth=Μηνιαία αναφορά -MenuAddCP=Αίτηση νέας αποχώρησης -NotActiveModCP=Πρέπει να ενεργοποιήσετε την ενότητα "Αφήστε" για να δείτε αυτή τη σελίδα. +MenuAddCP=Νέα αίτηση άδειας +NotActiveModCP=Πρέπει να ενεργοποιήσετε την ενότητα Άδειες για να δείτε αυτήν τη σελίδα. AddCP=Κάντε αίτηση άδειας DateDebCP=Ημερ. έναρξης DateFinCP=Ημερ. τέλους -DraftCP=Σχέδιο +DraftCP=Προσχέδιο ToReviewCP=Εν αναμονή έγκρισης -ApprovedCP=Εγκεκριμένο +ApprovedCP=Εγκεκριμένη CancelCP=Ακυρώθηκε -RefuseCP=Απόρριψη -ValidatorCP=Approver -ListeCP=Λίστα άδειας -Leave=Αφήστε το αίτημα -LeaveId=Αφήστε το αναγνωριστικό -ReviewedByCP=Θα πρέπει να επανεξεταστεί από -UserID=ταυτότητα χρήστη +RefuseCP=Απορρίφθηκε +ValidatorCP=Υπεύθυνος έγκρισης +ListeCP=Λίστα αδειών +Leave=Αίτημα άδειας +LeaveId=Αναγνωριστικό άδειας +ReviewedByCP=Θα εγκριθεί από +UserID=Αναγνωριστικό χρήστη UserForApprovalID=Χρήστη για αναγνωριστικό έγκρισης UserForApprovalFirstname=Όνομα του χρήστη της έγκρισης UserForApprovalLastname=Επώνυμο του χρήστη της έγκρισης UserForApprovalLogin=Σύνδεση χρήστη έγκρισης DescCP=Περιγραφή -SendRequestCP=Δημιουργήστε το αίτημα άδειας -DelayToRequestCP=Tα αιτήματα πρέπει να γίνονται τουλάχιστον %s ημέρα(ες) πριν από τις. -MenuConfCP=Ισορροπία άδειας -SoldeCPUser=Leave balance (in days) %s +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=Παρουσιάστηκε σφάλμα κατά την προσθήκη τις έκτακτης άδειας. AddEventToUserOkCP=Η προσθήκη της έκτακτης άδειας έχει ολοκληρωθεί. MenuLogCP=Εμφάνιση καταγραφής αλλαγών -LogCP=Log of all updates made to "Balance of Leave" +LogCP=Αρχείο καταγραφής όλων των ενημερώσεων που έγιναν στο "Υπόλοιπο άδειας" ActionByCP=Ενημερώθηκε από -UserUpdateCP=Updated for +UserUpdateCP=Ενημερώθηκε για PrevSoldeCP=Προηγούμενο Υπόλοιπο 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=Πηγαίνετε στο σπίτι - Ρύθμιση - Λεξικά - Τύπος άδειας για τη ρύθμιση των διαφορετικών τύπων φύλλων. -HolidaySetup=Setup of module Leave -HolidaysNumberingModules=Numbering models for leave requests -TemplatePDFHolidays=Πρότυπο για αιτήσεις άδειας PDF -FreeLegalTextOnHolidays=Δωρεάν κείμενο σε μορφή PDF -WatermarkOnDraftHolidayCards=Υδατογραφήματα σε σχέδια αιτήσεων άδειας -HolidaysToApprove=Διακοπές για έγκριση +FollowedByACounter=1: Αυτό το είδος άδειας πρέπει να ακολουθείται από μετρητή. Ο μετρητής αυξάνεται χειροκίνητα ή αυτόματα και όταν επικυρωθεί ένα αίτημα άδειας, ο μετρητής μειώνεται.
    0: Δεν ακολουθείται από μετρητή. +NoLeaveWithCounterDefined=Δεν έχουν οριστεί τύποι άδειας που πρέπει να ακολουθούνται από μετρητή +GoIntoDictionaryHolidayTypes=Πηγαίνετε στο Αρχικη - Ρυθμίσεις - Λεξικά - Τύπος άδειας για τη ρύθμιση των διαφορετικών τύπων αδειών. +HolidaySetup=Ρύθμιση της ενότητας Άδειες +HolidaysNumberingModules=Μοντέλα αρίθμησης για αιτήματα άδειας +TemplatePDFHolidays=Πρότυπο PDF για αιτήματα άδειας +FreeLegalTextOnHolidays=Ελεύθερο κείμενο σε pdf +WatermarkOnDraftHolidayCards=Υδατογραφήματα σε προσχέδια αιτημάτων αδείας +HolidaysToApprove=Διακοπές προς έγκριση NobodyHasPermissionToValidateHolidays=Κανείς δεν έχει άδεια να επικυρώσει διακοπές -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=Μηνιαία ενημέρωση του υπολοιπου των εορτών +XIsAUsualNonWorkingDay=Η %s είναι συνήθως ΜΗ εργάσιμη ημέρα +BlockHolidayIfNegative=Αποκλεισμός εάν το υπόλοιπο είναι αρνητικό +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Η δημιουργία αυτού του αιτήματος άδειας έχει αποκλειστεί επειδή το υπόλοιπό σας είναι αρνητικό +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Το αίτημα αδείας%s πρέπει να είναι προσχέδιο, ακυρωμένο ή απορριφθέν για να διαγράφει diff --git a/htdocs/langs/el_GR/hrm.lang b/htdocs/langs/el_GR/hrm.lang index 66b8940938c..e6eb6107843 100644 --- a/htdocs/langs/el_GR/hrm.lang +++ b/htdocs/langs/el_GR/hrm.lang @@ -3,79 +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=Leave - Public holidays -DictionaryDepartment=HRM - Λίστα τμημάτων -DictionaryFunction=HRM - Job positions +DictionaryPublicHolidays=Άδεια - Επίσημες αργίες +DictionaryDepartment=HRM - Οργανωτική Μονάδα +DictionaryFunction=HRM - Θέσεις εργασίας # Module -Employees=Εργαζόμενοι +Employees=Υπάλληλοι Employee=Υπάλληλος -NewEmployee=Νέος εργαζόμενος -ListOfEmployees=Λίστα εργαζομένων -HrmSetup=HRM module setup -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=Εργασία -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=Θέση -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 +NewEmployee=Νέος υπάλληλος +ListOfEmployees=Λίστα υπαλλήλων +HrmSetup=Ρύθμιση ενότητας HRM +SkillsManagement=Διαχείριση δεξιοτήτων +HRM_MAXRANK=Μέγιστος αριθμός επιπέδων για την κατάταξη μιας δεξιότητας +HRM_DEFAULT_SKILL_DESCRIPTION=Προεπιλεγμένη περιγραφή των βαθμών όταν δημιουργείται η ικανότητα +deplacement=Ωράριο +DateEval=Ημερομηνία αξιολόγησης +JobCard=Καρτέλα θέσεων εργασίας +JobPosition=Θέση εργασίας +JobsPosition=Θέσεις εργασίας +NewSkill=Νέα Δεξιότητα +SkillType=Τύπος δεξιότητας +Skilldets=Λίστα βαθμών για αυτήν την δεξιότητα +Skilldet=Επίπεδο δεξιοτήτων +rank=Κατάταξη +ErrNoSkillSelected=Δεν έχει επιλεγεί δεξιότητα +ErrSkillAlreadyAdded=Αυτή η δεξιότητα βρίσκεται ήδη στη λίστα +SkillHasNoLines=Αυτή η δεξιότητα δεν έχει γραμμές +skill=Δεξιότητα +Skills=Δεξιότητες +SkillCard=Καρτέλα δεξιοτήτων +EmployeeSkillsUpdated=Οι δεξιότητες των εργαζομένων έχουν ενημερωθεί (δείτε την καρτέλα "Δεξιότητες" της καρτέλας υπαλλήλου) +Eval=Αξιολόγηση +Evals=Αξιολογήσεις +NewEval=Νέα αξιολόγηση +ValidateEvaluation=Επικύρωση αξιολόγησης +ConfirmValidateEvaluation=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την αξιολόγηση με αναφορά %s ; +EvaluationCard=Καρτέλα αξιολόγησης +RequiredRank=Απαιτούμενη κατάταξη για αυτή τη θέση εργασίας +EmployeeRank=Κατάταξη υπαλλήλου για αυτήν την δεξιότητα +EmployeePosition=Θέση υπαλλήλου +EmployeePositions=Θέσεις υπαλλήλων +EmployeesInThisPosition=Υπάλληλοι σε αυτή τη θέση +group1ToCompare=Ομάδα χρηστών για ανάλυση +group2ToCompare=Δεύτερη ομάδα χρηστών για σύγκριση +OrJobToCompare=Σύγκριση βάση των απαραίτητων εργασιακών δεξιοτήτων 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 +CompetenceAcquiredByOneOrMore=Ικανότητα που αποκτήθηκε από έναν ή περισσότερους χρήστες αλλά δεν ζητήθηκε από τον δεύτερο αξιολογητή +MaxlevelGreaterThan=Μέγιστο επίπεδο μεγαλύτερο από το ζητούμενο +MaxLevelEqualTo=Μέγιστο επίπεδο ίσο με το ζητούμενο +MaxLevelLowerThan=Μέγιστο επίπεδο χαμηλότερο από το ζητούμενο +MaxlevelGreaterThanShort=Το επίπεδο του εργαζομένου είναι μεγαλύτερο από το ζητούμενο +MaxLevelEqualToShort=Το επίπεδο του εργαζομένου είναι ίσο με το ζητούμενο +MaxLevelLowerThanShort=Το επίπεδο του εργαζομένου είναι χαμηλότερο από το ζητούμενο +SkillNotAcquired=Ικανότητα που δεν αποκτήθηκε από όλους τους χρήστες και ζητήθηκε από τον δεύτερο αξιολογητή legend=Ετικέτα -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=Τύπος δεξιότητας +AddSkill=Προσθέστε δεξιότητες στην θέση εργασίας +RequiredSkills=Απαιτούμενες δεξιότητες για αυτή τη θέση εργασίας +UserRank=Κατάταξη χρήστη +SkillList=Λίστα δεξιοτήτων +SaveRank=Αποθήκευση κατάταξης +TypeKnowHow=Τεχνογνωσία +TypeHowToBe=Περιγραφή +TypeKnowledge=Γνώσεις +AbandonmentComment=Σχόλιο εγκατάλειψης +DateLastEval=Ημερομηνία τελευταίας αξιολόγησης +NoEval=Δεν έγινε αξιολόγηση για αυτόν τον υπάλληλο +HowManyUserWithThisMaxNote=Αριθμός χρηστών με αυτήν την κατάταξη +HighestRank=Ανώτατη κατάταξη +SkillComparison=Σύγκριση δεξιοτήτων +ActionsOnJob=Ενέργειες σε αυτή τη θέση εργασίας +VacantPosition=κενές θέσεις εργασίας +VacantCheckboxHelper=Επιλέγοντας αυτήν την επιλογή θα εμφανιστούν μη καλυμμένες θέσεις (κενή θέση εργασίας) +SaveAddSkill = Προσθήκη δεξιότητας(ων) +SaveLevelSkill = Το επίπεδο δεξιοτήτων αποθηκεύτηκε +DeleteSkill = Η δεξιότητα αφαιρέθηκε +SkillsExtraFields=Συμπληρωματικά χαρακτηριστικά (Δεξιότητες) +JobsExtraFields=Συμπληρωματικά χαρακτηριστικά (Υπάλληλοι) +EvaluationsExtraFields=Συμπληρωματικά χαρακτηριστικά (Αξιολογήσεις) +NeedBusinessTravels=Ανάγκη επαγγελματικών ταξιδιών +NoDescription=Χωρίς περιγραφή diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang index 988ac413075..4e1ea55486c 100644 --- a/htdocs/langs/el_GR/install.lang +++ b/htdocs/langs/el_GR/install.lang @@ -4,37 +4,32 @@ MiscellaneousChecks=Ελέγχος Προαπαιτούμενων ConfFileExists=Το αρχείο ρυθμίσεων %s υπάρχει. ConfFileDoesNotExistsAndCouldNotBeCreated=Το αρχείο διαμόρφωσης %s δεν υπάρχει και δεν μπορεί να δημιουργηθεί! ConfFileCouldBeCreated=Το αρχείο ρυθμίσεων %sθα μπορούσε να δημιουργηθεί. -ConfFileIsNotWritable=Το αρχείο διαμόρφωσης %s δεν είναι εγγράψιμο. Ελέγξτε τα δικαιώματα. Για πρώτη εγκατάσταση, ο διακομιστής ιστού σας πρέπει να μπορεί να γράφει σε αυτό το αρχείο κατά τη διάρκεια της διαδικασίας διαμόρφωσης ("chmod 666" για παράδειγμα σε λειτουργικό σύστημα Unix). +ConfFileIsNotWritable=Το αρχείο διαμόρφωσης %s δεν είναι εγγράψιμο. Ελέγξτε τα δικαιώματα. Για πρώτη εγκατάσταση, ο διακομιστής ιστού σας πρέπει να μπορεί να γράφει σε αυτό το αρχείο κατά τη διάρκεια της διαδικασίας διαμόρφωσης ("chmod 666" για παράδειγμα σε λειτουργικό σύστημα Unix). ConfFileIsWritable=Το αρχείο ρυθμίσεων %s είναι εγγράψιμο. ConfFileMustBeAFileNotADir=Το αρχείο διαμόρφωσης %s πρέπει να είναι ένα αρχείο, όχι ένας κατάλογος. -ConfFileReload=Επαναφόρτωση παραμέτρων από αρχείο ρυθμίσεων. +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 και τις άδειες χρήσης του καταλόγου των περιόδων σύνδεσης. -ErrorPHPDoesNotSupportGD=Η εγκατάσταση της PHP δεν υποστηρίζει GD γραφικές λειτουργίες. Δεν θα υπάρχουν διαθέσιμα γραφήματα. -ErrorPHPDoesNotSupportCurl=Η εγκατάσταση της php δεν υποστηρίζει Curl -ErrorPHPDoesNotSupportCalendar=Η εγκατάσταση της PHP δεν υποστηρίζει επεκτάσεις του php calendar. -ErrorPHPDoesNotSupportUTF8=Η εγκατάσταση της PHP δεν υποστηρίζει λειτουργίες UTF8. Το Dolibarr δεν μπορεί να λειτουργήσει σωστά. Επιλύστε αυτό πριν εγκαταστήσετε Dolibarr. -ErrorPHPDoesNotSupportIntl=Η εγκατάσταση της PHP δεν υποστηρίζει τις λειτουργίες Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Η εγκατάσταση της 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=Χρήση άδειας @@ -43,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 -MigrationImportOrExportProfiles=Migration of import or export profiles (%s) +MigrationReloadModule=Επαναφόρτωση της ενότητας %s +MigrationResetBlockedLog=Επαναφορά της ενότητας BlockedLog για τον αλγόριθμο v7 +MigrationImportOrExportProfiles=Μετεγκατάσταση προφίλ εισαγωγής ή εξαγωγής (%s) ShowNotAvailableOptions=Εμφάνιση μη διαθέσιμων επιλογών HideNotAvailableOptions=Απόκρυψη μη διαθέσιμων επιλογών -ErrorFoundDuringMigration=Παρουσιάστηκε σφάλμα κατά τη διάρκεια της διαδικασίας μετάβασης, επομένως το επόμενο βήμα δεν είναι διαθέσιμο. Για να αγνοήσετε τα σφάλματα, μπορείτε να κάνετε κλικ εδώ , αλλά η εφαρμογή ή ορισμένες λειτουργίες ενδέχεται να μην λειτουργούν σωστά μέχρι να επιλυθούν τα σφάλματα. +ErrorFoundDuringMigration=Αναφέρθηκαν σφάλματα κατά τη διαδικασία μετεγκατάστασης, επομένως το επόμενο βήμα δεν είναι διαθέσιμο. Για να αγνοήσετε τα σφάλματα, μπορείτε να κάντε κλικ εδώ , αλλά η εφαρμογή ή ορισμένες λειτουργίες ενδέχεται να μην λειτουργούν σωστά μέχρι να επιλυθούν τα σφάλματα. YouTryInstallDisabledByDirLock=Η εφαρμογή προσπάθησε να αυτο-αναβαθμιστεί, αλλά οι σελίδες εγκατάστασης / αναβάθμισης έχουν απενεργοποιηθεί για λόγους ασφαλείας (ο κατάλογος μετονομάζεται σε κατάληξη .lock).
    -YouTryInstallDisabledByFileLock=Η εφαρμογή προσπάθησε να αυτο-αναβαθμιστεί, αλλά οι σελίδες εγκατάστασης / αναβάθμισης έχουν απενεργοποιηθεί για λόγους ασφαλείας (με την ύπαρξη ενός αρχείου κλειδώματος install.lock στον κατάλογο εγγράφων dolibarr).
    -ClickHereToGoToApp=Κάντε κλικ εδώ για να μεταβείτε στην αίτησή σας -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=Φορτωμένος +YouTryInstallDisabledByFileLock=Η εφαρμογή προσπάθησε να αυτο-αναβαθμιστεί, αλλά οι σελίδες εγκατάστασης / αναβάθμισης έχουν απενεργοποιηθεί για λόγους ασφαλείας (με την ύπαρξη ενός αρχείου κλειδώματος install.lock στον κατάλογο εγγράφων του dolibarr).
    +ClickHereToGoToApp=Κάντε κλικ εδώ για να μεταβείτε στην εφαρμογή σας +ClickOnLinkOrRemoveManualy=Εάν μια αναβάθμιση βρίσκεται σε εξέλιξη, παρακαλώ περιμένετε. Εάν όχι, κάντε κλικ στον παρακάτω σύνδεσμο. Εάν βλέπετε πάντα την ίδια σελίδα, πρέπει να αφαιρέσετε/μετονομάσετε το αρχείο install.lock στον κατάλογο εγγράφων. +Loaded=Φορτωμένο FunctionTest=Δοκιμή λειτουργίας diff --git a/htdocs/langs/el_GR/interventions.lang b/htdocs/langs/el_GR/interventions.lang index 83169bc1250..7343febc66e 100644 --- a/htdocs/langs/el_GR/interventions.lang +++ b/htdocs/langs/el_GR/interventions.lang @@ -9,60 +9,62 @@ 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 όπως τιμολογείται +SendInterventionByMail=Αποστολή παρέμβασης με email +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=Κρύβει ώρες και λεπτά από το πεδίο ημερομηνίας για τα αρχεία παρέμβασης +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=Are you sure you want to open back the intervention %s? -GenerateInter=Generate intervention +ConfirmReopenIntervention=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά την παρέμβαση %s ; +GenerateInter=Δημιουργία παρέμβασης +FichinterNoContractLinked=Η παρέμβαση %s έχει δημιουργηθεί χωρίς συνδεδεμένο συμβόλαιο. +ErrorFicheinterCompanyDoesNotExist=Η εταιρεία δεν υπάρχει. Δεν έχει δημιουργηθεί παρέμβαση. diff --git a/htdocs/langs/el_GR/intracommreport.lang b/htdocs/langs/el_GR/intracommreport.lang index a861533e391..e8ce0a13ae2 100644 --- a/htdocs/langs/el_GR/intracommreport.lang +++ b/htdocs/langs/el_GR/intracommreport.lang @@ -1,10 +1,10 @@ Module68000Name = Intracomm report -Module68000Desc = Intracomm report management (Support for French DEB/DES format) -IntracommReportSetup = Intracommreport module setup -IntracommReportAbout = About intracommreport +Module68000Desc = Διαχείριση αναφορών Intracomm (Υποστήριξη για γαλλική μορφή DEB/DES) +IntracommReportSetup = Ρύθμιση ενότητας Intracomm report +IntracommReportAbout = Σχετικά με το intracomm report # 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 @@ -15,26 +15,26 @@ INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant # Menu MenuIntracommReport=Intracomm report -MenuIntracommReportNew=New declaration +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/el_GR/knowledgemanagement.lang b/htdocs/langs/el_GR/knowledgemanagement.lang index 200d27dd5ed..c56508e4245 100644 --- a/htdocs/langs/el_GR/knowledgemanagement.lang +++ b/htdocs/langs/el_GR/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) ή Help-Desk # # 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 +About = Σχετικά με +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=Μπορείτε να συνδέσετε το άρθρο με μια ομάδα ticket (έτσι το άρθρο θα επισημαίνεται σε όλα τα tickets αυτής της ομάδας) +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/el_GR/languages.lang b/htdocs/langs/el_GR/languages.lang index f8e052d254d..cdac03cd502 100644 --- a/htdocs/langs/el_GR/languages.lang +++ b/htdocs/langs/el_GR/languages.lang @@ -1,114 +1,123 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopian +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_az_AZ=Azerbaijani -Language_bn_BD=Bengali -Language_bn_IN=Bengali (India) +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_cs_CZ=Τσεχικά +Language_cy_GB=Ουαλικά Language_da_DA=Δανική -Language_da_DK=Δανική +Language_da_DK=Δανικά Language_de_DE=Γερμανικά Language_de_AT=Γερμανικά (Αυστρία) Language_de_CH=Γερμανικά (Ελβετίας) Language_el_GR=Ελληνικά -Language_el_CY=Greek (Cyprus) +Language_el_CY=Ελληνικά (Κύπρος) +Language_en_AE=Αγγλικά (Ηνωμένα Αραβικά Εμιράτα) Language_en_AU=Αγγλικά (Αυστραλία) Language_en_CA=Αγγλικά (Καναδά) Language_en_GB=Αγγλικά (Ηνωμένο Βασίλειο) Language_en_IN=Αγγλικά (Ινδία) Language_en_NZ=Αγγλικά (Νέα Ζηλανδία) Language_en_SA=Αγγλικά (Σαουδική Αραβία) -Language_en_SG=English (Singapore) +Language_en_SG=Αγγλικά (Σιγκαπούρη) Language_en_US=Αγγλικά (Ηνωμένων Πολιτειών) Language_en_ZA=Αγγλικά (Νότια Αφρική) Language_es_ES=Ισπανικά Language_es_AR=Ισπανικά (Αργεντινή) -Language_es_BO=Ισπανικά (Βολιβίας) +Language_es_BO=Ισπανικά (Βολιβία) Language_es_CL=Ισπανικά (Χιλή) -Language_es_CO=Ισπανικά (Κολομβίας) +Language_es_CO=Ισπανικά (Κολομβία) +Language_es_CR=Ισπανικά (Κόστα Ρίκα) Language_es_DO=Ισπανικά (Δομινικανή Δημοκρατία) -Language_es_EC=Spanish (Ecuador) -Language_es_GT=Spanish (Guatemala) +Language_es_EC=Ισπανικά (Εκουαδόρ) +Language_es_GT=Ισπανικά (Γουατεμάλα) Language_es_HN=Ισπανικά (Ονδούρα) Language_es_MX=Ισπανικά (Μεξικό) -Language_es_PA=Spanish (Panama) +Language_es_PA=Ισπανικά (Παναμάς) Language_es_PY=Ισπανικά (Παραγουάη) Language_es_PE=Ισπανικά (Περού) Language_es_PR=Ισπανικά (Πουέρτο Ρίκο) -Language_es_US=Spanish (USA) +Language_es_US=Ισπανικά (ΗΠΑ) Language_es_UY=Ισπανικά (Ουρουγουάη) -Language_es_GT=Spanish (Guatemala) -Language_es_VE=Ισπανικά (Βενεζουέλας) -Language_et_EE=Εσθονίας -Language_eu_ES=Βάσκων +Language_es_GT=Ισπανικά (Γουατεμάλα) +Language_es_VE=Ισπανικά (Βενεζουέλα) +Language_et_EE=Εσθονικά +Language_eu_ES=Βασκικά Language_fa_IR=Περσικά -Language_fi_FI=Finnish +Language_fi_FI=φινλανδικά Language_fr_BE=Γαλλικά (Βέλγιο) Language_fr_CA=Γαλλικά (Καναδά) Language_fr_CH=Γαλλικά (Ελβετία) -Language_fr_CI=French (Cost Ivory) -Language_fr_CM=French (Cameroun) +Language_fr_CI=Γαλλικά (Ακτή Ελεφαντοστού) +Language_fr_CM=Γαλλικά (Καμερούν) Language_fr_FR=Γαλλικά -Language_fr_GA=French (Gabon) +Language_fr_GA=Γαλλικά (Γκαμπόν) Language_fr_NC=Γαλλικά (Νέα Καληδονία) -Language_fr_SN=French (Senegal) -Language_fy_NL=Frisian -Language_gl_ES=Galician +Language_fr_SN=Γαλλικά (Σενεγάλη) +Language_fy_NL=Φριζικά +Language_gl_ES=Γαλικιανά Language_he_IL=Εβραϊκά -Language_hi_IN=Hindi (India) -Language_hr_HR=Κροατία +Language_hi_IN=Χίντι (Ινδία) +Language_hr_HR=Κροατικά Language_hu_HU=Ουγγρικά -Language_id_ID=Ινδονησίας +Language_id_ID=Ινδονησιακά Language_is_IS=Ισλανδικά Language_it_IT=Ιταλικά -Language_it_CH=Italian (Switzerland) +Language_it_CH=Ιταλικά (Ελβετία) Language_ja_JP=Ιαπωνικά -Language_ka_GE=Georgian -Language_kk_KZ=Kazakh -Language_km_KH=Khmer -Language_kn_IN=Kannada -Language_ko_KR=Κορέας -Language_lo_LA=Lao -Language_lt_LT=Λιθουανίας -Language_lv_LV=Λετονίας -Language_mk_MK=πΓΔΜ -Language_mn_MN=Mongolian -Language_nb_NO=Νορβηγικά (Bokmål) -Language_ne_NP=Nepali +Language_ka_GE=Γεωργιανά +Language_kk_KZ=Καζακικά +Language_km_KH=Χμερ +Language_kn_IN=Κανάντα +Language_ko_KR=Κορεάτικα +Language_lo_LA=Λαοτινά +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_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=Σουηδικά Language_sv_SE=Σουηδικά Language_sq_AL=Αλβανικά -Language_sk_SK=Σλοβακική +Language_sk_SK=Σλοβάκικα Language_sr_RS=Σέρβικα -Language_sw_SW=Kiswahili -Language_th_TH=Ταϊλάνδης +Language_sw_SW=Σουαχίλι +Language_th_TH=Ταϊλανδικά Language_uk_UA=Ουκρανικά -Language_uz_UZ=Ουζμπεκιστάν -Language_vi_VN=Βιετνάμ +Language_ur_PK=Ουρντού +Language_uz_UZ=Ουζμπεκικά +Language_vi_VN=Βιετναμέζικα Language_zh_CN=Κινέζικα Language_zh_TW=Κινέζικα (παραδοσιακά) -Language_zh_HK=Chinese (Hong Kong) -Language_bh_MY=Malay +Language_zh_HK=Κινέζικα (Χονγκ Κονγκ) +Language_bh_MY=Μαλαισιανά diff --git a/htdocs/langs/el_GR/ldap.lang b/htdocs/langs/el_GR/ldap.lang index 575d9218a0b..9d4e9462f60 100644 --- a/htdocs/langs/el_GR/ldap.lang +++ b/htdocs/langs/el_GR/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 id -LDAPFieldSkypeExample=Example : skypeName +LDAPFieldSkypeExample=Παράδειγμα: skypeName UserSynchronized=Συγχρονισμένος χρήστης GroupSynchronized=Συγχρονισμένη ομάδα MemberSynchronized=Συγχρονισμένο μέλος -MemberTypeSynchronized=Member type synchronized +MemberTypeSynchronized=Συγχρονισμένος τύπος μέλους ContactSynchronized=Επικοινωνία συγχρονισμένη ForceSynchronize=Δυναμικός συγχρονισμός Dolibarr -> LDAP ErrorFailedToReadLDAP=Αποτυχία ανάγνωσης LDAP βάση δεδομένων. Ελέγξτε LDAP εγκατάσταση module και την προσβασιμότητα της βάσης δεδομένων. -PasswordOfUserInLDAP=Password of user in LDAP +PasswordOfUserInLDAP=Κωδικός πρόσβασης χρήστη στο LDAP +LDAPPasswordHashType=Τύπος hash κωδικού πρόσβασης +LDAPPasswordHashTypeExample=Τύπος hash κωδικού πρόσβασης που χρησιμοποιείται στον διακομιστή +SupportedForLDAPExportScriptOnly=Υποστηρίζεται μόνο από ένα script εξαγωγής ldap +SupportedForLDAPImportScriptOnly=Υποστηρίζεται μόνο από ένα script εισαγωγής ldap diff --git a/htdocs/langs/el_GR/link.lang b/htdocs/langs/el_GR/link.lang index 7694f341249..1057e624b10 100644 --- a/htdocs/langs/el_GR/link.lang +++ b/htdocs/langs/el_GR/link.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - languages -LinkANewFile=Συνδέσετε ένα νέο αρχείο / έγγραφο +LinkANewFile=Συνδέστε ένα νέο αρχείο / έγγραφο LinkedFiles=Συνδεδεμένα αρχεία και έγγραφα NoLinkFound=Δεν υπάρχουν εγγεγραμμένοι σύνδεσμοι LinkComplete=Το αρχείο έχει συνδεθεί με επιτυχία @@ -8,4 +8,4 @@ LinkRemoved=Ο σύνδεσμος %s έχει αφαιρεθεί ErrorFailedToDeleteLink= Απέτυχε η αφαίρεση του συνδέσμου '%s' ErrorFailedToUpdateLink= Απέτυχε η ενημέρωση του σύνδεσμο '%s' URLToLink=Διεύθυνση URL για σύνδεση -OverwriteIfExists=Overwrite file if exists +OverwriteIfExists=Επανεγγραφή αρχείου εάν υπάρχει diff --git a/htdocs/langs/el_GR/loan.lang b/htdocs/langs/el_GR/loan.lang index 45718c97de5..3d4d6d36803 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=Ορος -LoanAccountancyCapitalCode=Accounting account capital -LoanAccountancyInsuranceCode=Accounting account insurance -LoanAccountancyInterestCode=Accounting account interest +LoanCapital=Κεφάλαιο +Insurance=Ασφάλιση +Interest=Επιτόκιο +Nbterms=Αριθμός περιόδων +Term=Περίοδος +LoanAccountancyCapitalCode=Κεφάλαιο λογιστικού λογαριασμού +LoanAccountancyInsuranceCode=Ασφάλιση λογιστικού λογαριασμού +LoanAccountancyInterestCode=Επιτόκιο λογιστικού λογαριασμού ConfirmDeleteLoan=Επιβεβαίωση διαγραφής δανείου LoanDeleted=Το Δάνειο διαγράφηκε με επιτυχία -ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Πληρωμή δανείου -ListLoanAssociatedProject=List of loan associated with the project -AddLoan=Δημιουργήστε δάνειο +ConfirmPayLoan=Επιβεβαίωση πληρωμής δανείου +LoanPaid=Πληρωμές δανείου +ListLoanAssociatedProject=Λίστα δανείων που σχετίζονται με το έργο +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 +InterestAmount=Επιτόκιο +CapitalRemain=Κεφάλαιο που απομένει +TermPaidAllreadyPaid = Αυτή η περίοδος είναι ήδη πληρωμένη +CantUseScheduleWithLoanStartedToPaid = Δεν είναι δυνατή η δημιουργία χρονοδιαγράμματος δάνειου για το οποίο έχουν ξεκινήσει η πληρωμές +CantModifyInterestIfScheduleIsUsed = Δεν μπορείτε να τροποποιήσετε το επιτόκιο εάν χρησιμοποιείτε χρονοδιάγραμμα # 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 +ConfigLoan=Διαμόρφωση της ενότητας δανείου +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 1510a0711e6..928fc330e69 100644 --- a/htdocs/langs/el_GR/mailmanspip.lang +++ b/htdocs/langs/el_GR/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -MailmanSpipSetup=Mailman and SPIP module Setup -MailmanTitle=Mailman mailing λίστα συστήματος -TestSubscribe=Για να δοκιμάσετε συνδρομή για τις λίστες Mailman -TestUnSubscribe=Για να ελέγξετε να διαγραφείτε από τους καταλόγους Mailman -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully -SynchroMailManEnabled=Μια ενημερωμένη έκδοση Mailman θα πραγματοποιηθεί -SynchroSpipEnabled=Μια ενημερωμένη έκδοση SPIP θα πραγματοποιηθεί -DescADHERENT_MAILMAN_ADMINPW=Mailman Κωδικός πρόσβασης διαχειριστή -DescADHERENT_MAILMAN_URL=URL για τις συνδρομές Mailman -DescADHERENT_MAILMAN_UNSUB_URL=URL για unsubscriptions Mailman +MailmanSpipSetup=Ρύθμιση ενότητας Mailman και SPIP +MailmanTitle=Σύστημα διαχείρισης λιστών ηλεκτρονικού ταχυδρομείου Mailman +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 Σύστημα Διαχείρισης Περιεχομένου +SPIPTitle=Σύστημα Διαχείρισης Περιεχομένου SPIP  DescADHERENT_SPIP_SERVEUR=SPIP Server -DescADHERENT_SPIP_DB=SPIP database name -DescADHERENT_SPIP_USER=SPIP database login -DescADHERENT_SPIP_PASS=SPIP database password +DescADHERENT_SPIP_DB=Όνομα βάσης δεδομένων SPIP +DescADHERENT_SPIP_USER=Όνομα χρήστη βάσης δεδομένων SPIP +DescADHERENT_SPIP_PASS=Κωδικός πρόσβασης βάσης δεδομένων SPIP AddIntoSpip=Προσθήκη στο SPIP -AddIntoSpipConfirmation=Είστε σίγουροι ότι θέλετε να προσθέσετε αυτό το μέλος σε SPIP; -AddIntoSpipError=Απέτυχε να προστεθεί ο χρήστης σε SPIP +AddIntoSpipConfirmation=Είστε σίγουροι ότι θέλετε να προσθέσετε αυτό το μέλος στο SPIP; +AddIntoSpipError=Η προσθήκη του χρήστη στο SPIP απέτυχε DeleteIntoSpip=Αφαίρεση από SPIP -DeleteIntoSpipConfirmation=Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτό το μέλος από SPIP; -DeleteIntoSpipError=Απέτυχε να καταστείλει το χρήστη από την 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 +SuccessToAddToMailmanList=%s προστέθηκε επιτυχώς στη λίστα mailman %s ή στη βάση δεδομένων SPIP +SuccessToRemoveToMailmanList=Το %s καταργήθηκε επιτυχώς από τη λίστα mailman %s ή τη βάση δεδομένων SPIP diff --git a/htdocs/langs/el_GR/mails.lang b/htdocs/langs/el_GR/mails.lang index 5c5656b36c7..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,108 +11,108 @@ MailFrom=Αποστολέας MailErrorsTo=Σφάλματα σε MailReply=Απάντηση σε MailTo=Παραλήπτης(ες) -MailToUsers=Στο χρήστη (ες) -MailCC=Αντιγραφή σε -MailToCCUsers=Αντιγραφή σε χρήστες +MailToUsers=Προς +MailCC=Κοινοποίηση σε +MailToCCUsers=Κοινοποίηση σε χρήστη(ες) MailCCC=Cached copy to -MailTopic=Email subject +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=Κακή τιμή για το μήνυμα ηλεκτρονικού ταχυδρομείου -EMailNotDefined=Email not defined -ConfirmCloneEMailing=Are you sure you want to clone this emailing? -CloneContent=Clone message -CloneReceivers=Cloner recipients +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=Είστε σίγουροι ότι θέλετε να αντιγράψετε αυτό το 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=Χρήστες με μηνύματα ηλεκτρονικού ταχυδρομείου MailingModuleDescThirdPartiesByCategories=Τρίτα μέρη (κατά κατηγορίες) SendingFromWebInterfaceIsNotAllowed=Η αποστολή από τη διεπαφή ιστού δεν επιτρέπεται. -EmailCollectorFilterDesc=All filters must match to have an email being collected +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,20 +120,20 @@ 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 -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 +Notifications=Ειδοποιήσεις +NotificationsAuto=Αυτόματες Ειδοποιήσεις +NoNotificationsWillBeSent=Δεν έχουν προγραμματιστεί αυτόματες ειδοποιήσεις μέσω mail για αυτή την εταιρεία και συμβάντα αυτού του τύπου +ANotificationsWillBeSent=1 αυτόματη ειδοποίηση θα σταλεί μέσω email +SomeNotificationsWillBeSent=%sαυτόματες ειδοποιήσεις θα αποσταλούν μέσω email +AddNewNotification=Εγγραφείτε σε μια νέα αυτόματη ειδοποίηση μέσω email (στόχος/συμβάν) +ListOfActiveNotifications=Λίστα όλων των ενεργών συνδρομών (στόχοι/συμβάντα) για αυτόματη ειδοποίηση μέσω email +ListOfNotificationsDone=Λίστα όλων των αυτόματων ειδοποιήσεων email που στάλθηκαν MailSendSetupIs=Διαμόρφωση αποστολή email έχει ρυθμιστεί σε '%s'. Αυτή η λειτουργία δεν μπορεί να χρησιμοποιηθεί για να σταλθούν μαζικά μηνύματα ηλεκτρονικού ταχυδρομείου. MailSendSetupIs2=Θα πρέπει πρώτα να πάτε, με έναν λογαριασμό διαχειριστή, στο μενού %s Αρχική - Ρύθμιση - Emails %s για να αλλάξετε την παράμετρο '%s' για να χρησιμοποιήσετε τη λειτουργία '%s'. Με αυτόν τον τρόπο, μπορείτε να μεταβείτε στις ρυθμίσεις του διακομιστή SMTP παρέχεται από τον Internet Service Provider και να χρησιμοποιήσετε τη Μαζική αποστολή ηλεκτρονικού ταχυδρομείου. MailSendSetupIs3=Αν έχετε οποιαδήποτε απορία σχετικά με το πώς να ρυθμίσετε το διακομιστή SMTP σας, μπορείτε να ζητήσετε στο %s. @@ -141,40 +141,41 @@ 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=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 +AdvTgtSearchTextHelp=Χρησιμοποιήστε το ως χαρακτήρες μπαλαντέρ. Για παράδειγμα, για να βρείτε όλα τα στοιχεία όπως jean, joe, jim , μπορείτε να πληκτρολογήσετε %%, μπορείτε επίσης να χρησιμοποιήσετε το σύμβολο ; ως διαχωριστικό για την τιμη και να χρησιμοποιήσετε το σύμβολο ! για να εξαιρέσετε κάποιες τιμές από την αναζήτηση. Για παράδειγμα η αναζήτηση jean;joe;jim%%;!jimo;!jima%% θα στοχεύει σε όλες τις τιμές που περιέχουν jean και joe, σε αυτές που ξεκινούν με jim αλλά όχι με jimo και σε καμιά που ξεκινάει με jima +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 -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 +AddAll=Προσθήκη όλων +RemoveAll=Αφαίρεση όλων +ItemsCount=Αντικείμενο(α) +AdvTgtNameTemplate=Όνομα φίλτρου +AdvTgtAddContact=Προσθέστε email σύμφωνα με τα κριτήρια +AdvTgtLoadFilter=Φόρτωση φίλτρου +AdvTgtDeleteFilter=Διαγραφή φίλτρου +AdvTgtSaveFilter=Αποθήκευση φίλτρου +AdvTgtCreateFilter=Δημιουργία φίλτρου +AdvTgtOrCreateNewFilter=Όνομα νέου φίλτρου +NoContactWithCategoryFound=Δεν βρέθηκε κατηγορία που να συνδέεται με ορισμένες επαφές/διευθύνσεις +NoContactLinkedToThirdpartieWithCategoryFound=Δεν βρέθηκε κατηγορία που να συνδέεται με κάποια τρίτα μέρη +OutGoingEmailSetup=Εξερχόμενα email +InGoingEmailSetup=Εισερχόμενα email +OutGoingEmailSetupForEmailing=Εξερχόμενα μηνύματα ηλεκτρονικού ταχυδρομείου (για την ενότητα %s) +DefaultOutgoingEmailSetup=Ίδια διαμόρφωση με την καθολική ρύθμιση εξερχόμενων email Information=Πληροφορίες ContactsWithThirdpartyFilter=Επαφές με φίλτρο τρίτου μέρους -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 +Unanswered=Αναπάντητα +Answered=Απαντημένα +IsNotAnAnswer=Δεν ειναι απάντηση (αρχικού email) +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 0cccaa9741e..605ee14d77a 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/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=DejaVuSans +# 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=. @@ -24,15 +30,15 @@ FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M DatabaseConnection=Σύνδεση Βάσης Δεδομένων -NoTemplateDefined=Δεν υπάρχει διαθέσιμο πρότυπο για αυτόν τον τύπο email +NoTemplateDefined=Δεν υπάρχει διαθέσιμο πρότυπο για αυτόν τον τύπο email AvailableVariables=Διαθέσιμες μεταβλητές αντικατάστασης NoTranslation=Δεν μεταφράστηκε Translation=Μετάφραση CurrentTimeZone=TimeZone PHP (server) -EmptySearchString=Enter non empty search criterias -EnterADateCriteria=Enter a date criteria -NoRecordFound=Δεν υπάρχουν καταχωρημένα στοιχεία -NoRecordDeleted=Δεν διαγράφηκε εγγραφή +EmptySearchString=Εισαγάγετε μη κενά κριτήρια αναζήτησης +EnterADateCriteria=Εισαγάγετε κριτήρια ημερομηνίας +NoRecordFound=Κανένα αρχείο δεν βρέθηκε +NoRecordDeleted=Κανένα αρχείο δεν διαγράφηκε NotEnoughDataYet=Τα δεδομένα δεν είναι επαρκή NoError=Κανένα Σφάλμα Error=Σφάλμα @@ -47,29 +53,29 @@ ErrorConstantNotDefined=Η παράμετρος %s δεν είναι καθορ ErrorUnknown=Άγνωστο σφάλμα ErrorSQL=Σφάλμα SQL ErrorLogoFileNotFound=Το λογότυπο '%s' δεν βρέθηκε -ErrorGoToGlobalSetup=Μεταβείτε στην επιλογή "Εταιρεία / Οργανισμός" για να διορθώσετε αυτό το θέμα -ErrorGoToModuleSetup=Πηγαίνετε στις ρυθμίσεις του αρθρώματος για να το διορθώσετε. +ErrorGoToGlobalSetup=Μεταβείτε στη ρύθμιση "Εταιρεία/Οργανισμός" για να το διορθώσετε +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=Προσπαθείτε να προσθέσετε μια γονική αποθήκη η οποία είναι ήδη παιδί μιας υπάρχουσας αποθήκης -FieldCannotBeNegative=Field "%s" cannot be negative +ErrorCannotAddThisParentWarehouse=Προσπαθείτε να προσθέσετε μια γονική αποθήκη που είναι ήδη θυγατρική μιας υπάρχουσας αποθήκης +FieldCannotBeNegative=Το πεδίο "%s" δεν μπορεί να είναι αρνητικό MaxNbOfRecordPerPage=Μέγιστος αριθμός εγγραφών ανά σελίδα -NotAuthorized=Δεν έχετε εξουσιοδότηση για να το πραγματοποιήσετε +NotAuthorized=Δεν έχετε εξουσιοδότηση(δικαιώματα) για να κάνετε αυτό. SetDate=Ορισμός ημερομηνίας SelectDate=Επιλέξτε μια ημερομηνία SeeAlso=Δείτε επίσης %s @@ -82,41 +88,41 @@ FileRenamed=Το αρχείο μετονομάστηκε με επιτυχία FileGenerated=Το αρχείο δημιουργήθηκε με επιτυχία FileSaved=Το αρχείο αποθηκεύτηκε με επιτυχία FileUploaded=Το αρχείο ανέβηκε με επιτυχία -FileTransferComplete=Τα αρχεία που ανεβάζετε με επιτυχία -FilesDeleted=Τα αρχεία διαγράφηκαν με επιτυχία -FileWasNotUploaded=Επιλέχθηκε ένα αρχείο για επισύναψη, αλλά δεν έχει μεταφερθεί ακόμη. Πατήστε στο "Επισύναψη Αρχείου". +FileTransferComplete=Τα αρχεία μεταφορτωθήκαν επιτυχώς +FilesDeleted=Τα αρχεία διαγράφηκαν επιτυχώς +FileWasNotUploaded=Ένα αρχείο έχει επιλεγεί για επισύναψη αλλά δεν έχει μεταφορτωθεί ακόμη. Κάντε κλικ στο "Επισύναψη αρχείου" για αυτό. NbOfEntries=Αριθ. Εγγραφών GoToWikiHelpPage=Online βοήθεια (απαιτείται σύνδεση στο internet) GoToHelpPage=Βοήθεια -DedicatedPageAvailable=Dedicated help page related to your current screen -HomePage=Home Page +DedicatedPageAvailable=Ειδική σελίδα βοήθειας που σχετίζεται με την τρέχουσα οθόνη σας +HomePage=Αρχική Σελίδα RecordSaved=Η εγγραφή αποθηκεύτηκε -RecordDeleted=Η εγγραφή διγραφηκε +RecordDeleted=Η εγγραφή διαγράφηκε RecordGenerated=Η εγγραφή δημιουργήθηκε LevelOfFeature=Επίπεδο δυνατοτήτων -NotDefined=Αδιευκρίνιστο -DolibarrInHttpAuthenticationSoPasswordUseless=Η λειτουργία ελέγχου ταυτότητας Dolibarr έχει οριστεί σε %s στο αρχείο ρυθμίσεων conf.php .
    Αυτό σημαίνει ότι η βάση δεδομένων κωδικών πρόσβασης είναι εκτός του Dolibarr, επομένως η αλλαγή αυτού του πεδίου ενδέχεται να μην έχει αποτέλεσμα. +NotDefined=Μη καθορισμένο +DolibarrInHttpAuthenticationSoPasswordUseless=Η λειτουργία ελέγχου ταυτότητας Dolibarr έχει οριστεί σε %s στο αρχείο διαμόρφωσης conf.php
    Αυτό σημαίνει ότι η βάση δεδομένων κωδικών πρόσβασης είναι εξωτερική του Dolibarr, επομένως η αλλαγή αυτού του πεδίου ενδέχεται να μην έχει αποτέλεσμα. Administrator=Διαχειριστής Undefined=Ακαθόριστο -PasswordForgotten=Έχετε ξεχάσει τον κωδικό πρόσβασής σας; +PasswordForgotten=Ξεχάσατε τον κωδικό σας; NoAccount=Δεν υπάρχει λογαριασμός; SeeAbove=Δείτε παραπάνω HomeArea=Αρχική -LastConnexion=Τελευταία είσοδος +LastConnexion=Τελευταία σύνδεση PreviousConnexion=Προηγούμενη σύνδεση PreviousValue=Προηγούμενη τιμή -ConnectedOnMultiCompany=Σύνδεση στην οντότητα +ConnectedOnMultiCompany=Συνδεδεμένο στο περιβάλλον ConnectedSince=Σύνδεση από -AuthenticationMode=Μέθοδος σύνδεσης -RequestedUrl=Αιτηθέν URL -DatabaseTypeManager=Τύπος διαχειριστή βάσης δεδομένων -RequestLastAccessInError=Σφάλμα στην αίτηση πρόσβασης της τελευταία βάσης δεδομένων -ReturnCodeLastAccessInError=Επιστρεφόμενος κωδικός για το σφάλμα στην αίτηση πρόσβασης της τελευταίας βάση δεδομένων -InformationLastAccessInError=Πληροφορίες για το σφάλμα στην αίτηση πρόσβασης της τελευταίας βάση δεδομένων -DolibarrHasDetectedError=Το Dolibarr ανίχνευσε τεχνικό σφάλμα -YouCanSetOptionDolibarrMainProdToZero=Μπορείτε να διαβάσετε το αρχείο καταγραφής ή να ορίσετε την επιλογή $ dolibarr_main_prod στο '0' στο αρχείο ρυθμίσεων για να λάβετε περισσότερες πληροφορίες. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) -MoreInformation=Περισσότερς Πληροφορίες +AuthenticationMode=Λειτουργία ελέγχου ταυτότητας +RequestedUrl=URL που ζητήθηκε +DatabaseTypeManager=Διαχειριστής τύπου βάσης δεδομένων +RequestLastAccessInError=Τελευταίο σφάλμα αιτήματος πρόσβασης στη βάση δεδομένων +ReturnCodeLastAccessInError=Κωδικός επιστροφής για το τελευταίο σφάλμα αιτήματος πρόσβασης στη βάση δεδομένων +InformationLastAccessInError=Πληροφορίες για το τελευταίο σφάλμα αιτήματος πρόσβασης στη βάση δεδομένων +DolibarrHasDetectedError=Το Dolibarr εντόπισε ένα τεχνικό σφάλμα +YouCanSetOptionDolibarrMainProdToZero=Μπορείτε να διαβάσετε το αρχείο καταγραφής ή να ορίσετε την επιλογή $dolibarr_main_prod σε '0' στο αρχείο διαμόρφωσης για να λάβετε περισσότερες πληροφορίες. +InformationToHelpDiagnose=Αυτές οι πληροφορίες μπορεί να είναι χρήσιμες για διαγνωστικούς σκοπούς (μπορείτε να ορίσετε την επιλογή $dolibarr_main_prod σε '1' για να αποκρύψετε ευαίσθητες πληροφορίες) +MoreInformation=Περισσότερες πληροφορίες TechnicalInformation=Τεχνικές πληροφορίες TechnicalID=Τεχνική ταυτότητα ID LineID=Αναγνωριστικό γραμμής @@ -136,12 +142,12 @@ Home=Αρχική Help=Βοήθεια OnlineHelp=Online Βοήθεια PageWiki=Σελίδα Wiki -MediaBrowser=Πρόγραμμα περιήγησης μέσων +MediaBrowser=Πρόγραμμα περιήγησης πολυμέσων Always=Πάντα Never=Ποτέ Under=κάτω Period=Περίοδος -PeriodEndDate=Ημερομηνία τέλους περιόδου +PeriodEndDate=Ημερομηνία λήξης περιόδου SelectedPeriod=Επιλεγμένη περίοδος PreviousPeriod=Προηγούμενη περίοδος Activate=Ενεργοποίηση @@ -163,11 +169,11 @@ Close=Κλείσιμο CloseAs=Αλλαγή κατάστασης σε CloseBox=Καταργήστε το γραφικό στοιχείο από τον πίνακα ελέγχου Confirm=Επιβεβαίωση -ConfirmSendCardByMail=Θέλετε πραγματικά να στείλετε το περιεχόμενο αυτής της κάρτας μέσω ταχυδρομείου στο %s ; +ConfirmSendCardByMail=Θέλετε πραγματικά να στείλετε το περιεχόμενο αυτής της καρτέλας μέσω email στο %s ; Delete=Διαγραφή -Remove=Απομάκρυνση +Remove=Αφαίρεση Resiliate=Τερματισμός -Cancel=Άκυρο +Cancel=Ακύρωση Modify=Τροποποίηση Edit=Επεξεργασία Validate=Επικύρωση @@ -176,48 +182,48 @@ ToValidate=Προς Επικύρωση NotValidated=Δεν έχει επικυρωθεί Save=Αποθήκευση SaveAs=Αποθήκευση Ως -SaveAndStay=Εξοικονομήστε και μείνετε +SaveAndStay=Αποθήκευση και Νέο SaveAndNew=Αποθήκευση και Νέο -TestConnection=Δοκιμή Σύνδεσης +TestConnection=Δοκιμή σύνδεσης ToClone=Κλωνοποίηση ConfirmCloneAsk=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε το αντικείμενο %s ; -ConfirmClone=Choose the data you want to clone: -NoCloneOptionsSpecified=Δεν καθορίστηκαν δεδομένα προς κλωνοποίηση. +ConfirmClone=Επιλέξτε τα δεδομένα που θέλετε να κλωνοποιήσετε: +NoCloneOptionsSpecified=Δεν καθορίστηκαν δεδομένα προς αντιγραφή Of=του Go=Μετάβαση Run=Εκτέλεση CopyOf=Αντίγραφο του Show=Εμφάνιση -Hide=Κρύβω +Hide=Απόκρυψη ShowCardHere=Εμφάνιση Κάρτας Search=Αναζήτηση SearchOf=Αναζήτηση SearchMenuShortCut=Ctrl + shift + f -QuickAdd=Quick add +QuickAdd=Γρήγορη προσθήκη QuickAddMenuShortCut=Ctrl + shift + l Valid=Έγκυρο Approve=Έγκριση Disapprove=Δεν εγκρίνεται ReOpen=Εκ νέου άνοιγμα -Upload=Ανεβάστε +Upload=Μεταφόρτωση ToLink=Σύνδεσμος Select=Επιλογή -SelectAll=Select all +SelectAll=Επιλογή όλων Choose=Επιλογή Resize=Αλλαγή διαστάσεων -ResizeOrCrop=Αλλαγή μεγέθους ή περικοπή +ResizeOrCrop=Αλλαγή διαστάσεων ή Περικοπή Recenter=Επαναφορά στο κέντρο Author=Συντάκτης User=Χρήστης Users=Χρήστες Group=Ομάδα Groups=Ομάδες -UserGroup=User group -UserGroups=User groups +UserGroup=Ομάδα χρηστών +UserGroups=Ομάδες χρηστών NoUserGroupDefined=Κανένας χρήστης δεν ορίζεται στην ομάδα -Password=Συνθηματικό -PasswordRetype=Επαναπληκτρολόγηση κωδικού -NoteSomeFeaturesAreDisabled=Πολλές δυνατότητες είναι απενεργοποιημένες σε αυτή την παρουσίαση. +Password=Κωδικός πρόσβασης +PasswordRetype=Πληκτρολογήστε ξανά τον κωδικό πρόσβασης +NoteSomeFeaturesAreDisabled=Σημειώστε ότι πολλές δυνατότητες/ενότητες είναι απενεργοποιημένες σε αυτήν την επίδειξη. Name=Όνομα NameSlashCompany=Όνομα / Εταιρεία Person=Άτομο @@ -227,7 +233,7 @@ Value=Τιμή PersonalValue=Προσωπική Τιμή NewObject=Νέο %s NewValue=Νέα Τιμή -OldValue=Old value %s +OldValue=Παλιά τιμή %s CurrentValue=Τρέχουσα Τιμή Code=Κωδικός Type=Τύπος @@ -241,15 +247,16 @@ Info=Ιστορικό Family=Οικογένεια Description=Περιγραφή Designation=Περιγραφή -DescriptionOfLine=Description of line -DateOfLine=Ημερομηνία της γραμμής -DurationOfLine=Διάρκεια της γραμμής -Model=Πρότυπο Doc +DescriptionOfLine=Περιγραφή γραμμής +DateOfLine=Ημερομηνία γραμμής +DurationOfLine=Διάρκεια γραμμής +ParentLine=Αναγνωριστικό γονικής γραμμής +Model=Πρότυπο εγγράφου DefaultModel=Προεπιλεγμένο πρότυπο εγγράφου Action=Ενέργεια -About=Πληροφορίες +About=Σχετικά με Number=Αριθμός -NumberByMonth=Total reports by month +NumberByMonth=Αναφορές συνόλων ανά μήνα AmountByMonth=Ποσό ανά μήνα Numero=Αριθμός Limit=Όριο @@ -266,7 +273,7 @@ Cards=Καρτέλες Card=Καρτέλα Now=Τώρα HourStart=Έναρξη ωρών -Deadline=Deadline +Deadline=Προθεσμία Date=Ημερομηνία DateAndHour=Ημερομηνία και ώρα DateToday=Σημερινή ημερομηνία @@ -275,13 +282,13 @@ DateStart=Ημερομηνία έναρξης DateEnd=Ημερομηνία λήξης DateCreation=Ημερομηνία Δημιουργίας DateCreationShort=Ημερομηνία δημιουργίας -IPCreation=Creation IP +IPCreation=IP δημιουργίας DateModification=Ημερομηνία Τροποποίησης DateModificationShort=Ημερ. Τροπ. -IPModification=Modification IP +IPModification=IP τροποποίησης DateLastModification=Τελευταία ημερομηνία τροποποίησης DateValidation=Ημερομηνία Επικύρωσης -DateSigning=Signing date +DateSigning=Ημερομηνία υπογραφής DateClosing=Ημερομηνία Κλεισίματος DateDue=Καταληκτική Ημερομηνία DateValue=Ημερομηνία αξίας @@ -299,9 +306,9 @@ RegistrationDate=Ημερομηνία Εγγραφής UserCreation=Χρήστης δημιουργίας UserModification=Χρήστης τροποποίησης UserValidation=Χρήστης επικύρωσης -UserCreationShort=Δημιουργία χρήστη -UserModificationShort=Τροποποιών χρήστης -UserValidationShort=Εγκυρος. χρήστης +UserCreationShort=Χρήστης δημιουργίας +UserModificationShort=Χρήστης τροποποίησης +UserValidationShort=Χρήστης επικύρωσης DurationYear=έτος DurationMonth=μήνας DurationWeek=εβδομάδα @@ -332,19 +339,19 @@ Tomorrow=Αύριο Morning=Πρωί Afternoon=Απόγευμα Quadri=Τετραπλής -MonthOfDay=Μήνας από την ημέρα -DaysOfWeek=Days of week +MonthOfDay=Μήνας της ημέρας +DaysOfWeek=Ημέρες της εβδομάδας HourShort=Ω -MinuteShort=mn +MinuteShort=λ Rate=Βαθμός -CurrencyRate=Ποσοστό μετατροπής νομίσματος +CurrencyRate=Τιμή μετατροπής νομίσματος UseLocalTax=με Φ.Π.Α Bytes=Bytes KiloBytes=Kilobytes MegaBytes=ΜΒ GigaBytes=GB TeraBytes=TB -UserAuthor=Ceated by +UserAuthor=Δημιουργήθηκε από UserModif=Ενημερώθηκε από b=b. Kb=Kb @@ -354,7 +361,7 @@ Tb=Tb Cut=Αποκοπή Copy=Αντιγραφή Paste=Επικόλληση -Default=Προκαθορ. +Default=Προκαθορισμένο DefaultValue=Προκαθορισμένη Τιμή DefaultValues=Προεπιλεγμένες τιμές / φίλτρα / ταξινόμηση Price=Τιμή @@ -364,14 +371,14 @@ UnitPriceHT=Τιμή μονάδας (εκτός) UnitPriceHTCurrency=Τιμή μονάδας (εκτός) (νόμισμα) UnitPriceTTC=Τιμή Μονάδος PriceU=Τιμή μον. -PriceUHT=Τιμή μον. -PriceUHTCurrency=U.P (net) (currency) +PriceUHT=Τιμή μον. (καθαρή) +PriceUHTCurrency=Τιμή μον. (καθαρή) (νόμισμα) PriceUTTC=Τιμή μον. (συμπ. Φ.Π.Α.) Amount=Ποσό AmountInvoice=Ποσό Τιμολογίου -AmountInvoiced=Ποσό τιμολογημένο -AmountInvoicedHT=Amount invoiced (excl. tax) -AmountInvoicedTTC=Amount invoiced (inc. tax) +AmountInvoiced=Ποσό που τιμολογήθηκε +AmountInvoicedHT=Ποσό που τιμολογήθηκε (χωρίς φόρο) +AmountInvoicedTTC=Ποσό που τιμολογήθηκε (συμπ. φόρου) AmountPayment=Ποσό Πληρωμής AmountHTShort=Ποσό (εκτός) AmountTTCShort=Ποσό (με Φ.Π.Α.) @@ -379,22 +386,22 @@ AmountHT=Ποσό (εκτός φόρου) AmountTTC=Ποσό (με Φ.Π.Α.) AmountVAT=Ποσό Φόρου MulticurrencyAlreadyPaid=Ήδη πληρωμένο, αρχικό νόμισμα -MulticurrencyRemainderToPay=Πληρώστε, αρχικό νόμισμα +MulticurrencyRemainderToPay=Υπόλοιπο προς πληρωμή, αρχικό νόμισμα MulticurrencyPaymentAmount=Ποσό πληρωμής, αρχικό νόμισμα MulticurrencyAmountHT=Ποσό (εκτός φόρου), αρχικό νόμισμα MulticurrencyAmountTTC=Ποσό (με φόρους), αρχικό νόμισμα MulticurrencyAmountVAT=Ποσό φόρων, αρχικό νόμισμα -MulticurrencySubPrice=Amount sub price multi currency +MulticurrencySubPrice=Τιμή πολλαπλού νομίσματος AmountLT1=Ποσό Φόρου 2 AmountLT2=Ποσό Φόρου 3 AmountLT1ES=Ποσό RE AmountLT2ES=Ποσό IRPF AmountTotal=Συνολικό Ποσό AmountAverage=Μέσο Ποσό -PriceQtyMinHT=Τιμή ελάχιστη ποσότητα. (εκτός φόρου) -PriceQtyMinHTCurrency=Τιμή ελάχιστη ποσότητα. (εκτός φόρου) (νόμισμα) -PercentOfOriginalObject=Percent of original object -AmountOrPercent=Amount or percent +PriceQtyMinHT=Τιμή ελάχιστης ποσότητας (εκτός φόρου) +PriceQtyMinHTCurrency=Τιμή ελάχιστης ποσότητας (εκτός φόρου) (νόμισμα) +PercentOfOriginalObject=Ποσοστό του αρχικού αντικειμένου +AmountOrPercent=Ποσό ή ποσοστό Percentage=Ποσοστό Total=Σύνολο SubTotal=Υποσύνολο @@ -403,14 +410,14 @@ TotalHT100Short=Σύνολο 100%% (εκτός) TotalHTShortCurrency=Σύνολο (εξαιρουμένου του νομίσματος) TotalTTCShort=Σύνολο (με Φ.Π.Α.) TotalHT=Σύνολο χωρίς ΦΠΑ -TotalHTforthispage=Συνολικά (χωρίς φόρο) για αυτήν τη σελίδα +TotalHTforthispage=Σύνολο (χωρίς φόρο) για αυτήν τη σελίδα Totalforthispage=Σύνολο για αυτή τη σελίδα TotalTTC=Σύνολο (με Φ.Π.Α.) TotalTTCToYourCredit=Σύνολο (με ΦΠΑ) στο υπόλοιπο TotalVAT=Συνολικός Φ.Π.Α. TotalVATIN=Σύνολο IGST -TotalLT1=Συνολικός Φ.Π.Α. 2 -TotalLT2=Συνολικός Φ.Π.Α. 3 +TotalLT1=Συνολικός φόρος 2 +TotalLT2=Συνολικός φόρος 3 TotalLT1ES=Σύνολο RE TotalLT2ES=Σύνολο IRPF TotalLT1IN=Σύνολο CGST @@ -433,32 +440,32 @@ LT1IN=CGST LT2IN=SGST LT1GC=Επιπλέον σεντ VATRate=Συντελεστής Φ.Π.Α. -RateOfTaxN=Rate of tax %s +RateOfTaxN=Συντελεστής φόρου %s VATCode=Κωδικός φορολογικού συντελεστή VATNPR=Φορολογικός συντελεστής NPR -DefaultTaxRate=Προκαθορισμένος συντελεστής φορολογίας -Average=Μ.Ο. +DefaultTaxRate=Προκαθορισμένος φορολογικός συντελεστής +Average=Μέση τιμή Sum=Σύνολο Delta=Δέλτα StatusToPay=Προς πληρωμή -RemainToPay=Πληρώστε +RemainToPay=Υπόλοιπο προς πληρωμή Module=Ενότητα / Εφαρμογή Modules=Ενότητες / Εφαρμογές Option=Επιλογή -Filters=Filters +Filters=Φίλτρα List=Λίστα FullList=Πλήρης Λίστα -FullConversation=Full conversation +FullConversation=Πλήρης συνομιλία Statistics=Στατιστικά -OtherStatistics=Οι άλλες στατιστικές +OtherStatistics=Άλλα στατιστικά στοιχεία Status=Κατάσταση Favorite=Αγαπημένα -ShortInfo=Info. -Ref=Κωδ. -ExternalRef=Κωδ. extern +ShortInfo=Πληροφορίες +Ref=Αναφ. +ExternalRef=εξωτερική Αναφ. RefSupplier=Αναφ. Προμηθευτή -RefPayment=Κωδ. πληρωμής -CommercialProposalsShort=Εμπορικές προτάσεις +RefPayment=Αναφ. πληρωμής +CommercialProposalsShort=Εμπορικές προσφορές Comment=Σχόλιο Comments=Σχόλια ActionsToDo=Ενέργειες που πρέπει να γίνουν @@ -469,24 +476,24 @@ ActionRunningNotStarted=Δεν έχουν ξεκινήσει ActionRunningShort=Σε εξέλιξη ActionDoneShort=Ολοκληρωμένες ActionUncomplete=Ατελής -LatestLinkedEvents=Τα πιο πρόσφατα συνδεδεμένα συμβάντα %s +LatestLinkedEvents=Τελευταία %s συνδεδεμένα συμβάντα CompanyFoundation=Εταιρεία / Οργανισμός Accountant=Λογιστής -ContactsForCompany=Επαφές για αυτό το στοιχείο -ContactsAddressesForCompany=Επαφές/Διευθύνσεις για αυτό το στοιχείο. -AddressesForCompany=Διευθύνσεις για αυτό τον Πελ./Προμ. -ActionsOnCompany=Εκδηλώσεις για αυτό το τρίτο μέρος -ActionsOnContact=Εκδηλώσεις για αυτήν την επαφή / διεύθυνση -ActionsOnContract=Εκδηλώσεις για αυτή τη σύμβαση -ActionsOnMember=Εκδηλώσεις σχετικά με αυτό το μέλος -ActionsOnProduct=Εκδηλώσεις σχετικά με αυτό το προϊόν +ContactsForCompany=Επαφές για αυτό το τρίτο μέρος +ContactsAddressesForCompany=Επαφές/διευθύνσεις για αυτό το τρίτο μέρος +AddressesForCompany=Διευθύνσεις για αυτό το τρίτο μέρος +ActionsOnCompany=Ενέργειες για αυτό το τρίτο μέρος +ActionsOnContact=Ενέργειες για αυτήν την επαφή / διεύθυνση +ActionsOnContract=Ενέργειες για αυτή τη σύμβαση +ActionsOnMember=Ενέργειες σχετικά με αυτό το μέλος +ActionsOnProduct=Ενέργειες σχετικά με αυτό το προϊόν NActionsLate=%s καθυστερ. ToDo=Να γίνουν -Completed=Ολοκληρώθηκε το +Completed=Ολοκληρωμένα Running=Σε εξέλιξη RequestAlreadyDone=Η αίτηση έχει ήδη καταγραφεί Filter=Φίλτρο -FilterOnInto=Κριτήρια αναζήτησης '%s' σε πεδίο +FilterOnInto=Κριτήρια αναζήτησης '%s' στα πεδία%s RemoveFilter=Αφαίρεση φίλτρου ChartGenerated=Το γράφημα δημιουργήθηκε ChartNotGenerated=Το γράφημα δεν δημιουργήθηκε @@ -511,12 +518,13 @@ to=πρός To=πρός ToDate=πρός ToLocation=πρός -at=at +at=στο and=και or=ή Other=Άλλο Others=Άλλα-οι OtherInformations=Αλλες πληροφορίες +Workflow=Ροή εργασίας Quantity=Ποσότητα Qty=Ποσ. ChangedBy=Τροποποιήθηκε από @@ -532,7 +540,7 @@ Draft=Προσχέδιο Drafts=Προσχέδια StatusInterInvoiced=Τιμολογήθηκε Validated=Επικυρωμένο -ValidatedToProduce=Validated (To produce) +ValidatedToProduce=Επικυρώθηκε (Για παραγωγή) Opened=Άνοιγμα OpenAll=Άνοιγμα (Όλα) ClosedAll=Κλειστό (Όλα) @@ -541,10 +549,10 @@ Discount=Έκπτωση Unknown=Άγνωστο General=Γενικά Size=Μέγεθος -OriginalSize=Αυθεντικό μέγεθος +OriginalSize=Αρχικό μέγεθος Received=Παραλήφθηκε -Paid=Πληρωμές -Topic=Αντικείμενο +Paid=Πληρωμένα +Topic=Θέμα ByCompanies=Ανά στοιχείο ByUsers=Ανα χρήστη Links=Σύνδεσμοι @@ -553,20 +561,20 @@ Rejects=Απορρίψεις Preview=Προεπισκόπηση NextStep=Επόμενο Βήμα Datas=Δεδομένα -None=None -NoneF=None +None=Κανένας +NoneF=Καμία NoneOrSeveral=Κανένα ή πολλά Late=Καθυστερ. LateDesc=Ένα στοιχείο ορίζεται ως Καθυστέρηση σύμφωνα με τη διαμόρφωση του συστήματος στο μενού Αρχική σελίδα - Ρύθμιση - Ειδοποιήσεις. NoItemLate=Δεν υπάρχει καθυστερημένο στοιχείο -Photo=Φωτογραφία -Photos=Φωτογραφίες -AddPhoto=Προσθήκη Φωτογραφίας +Photo=Εικόνα +Photos=Εικόνες +AddPhoto=Προσθήκη εικόνας DeletePicture=Διαγραφή εικόνας ConfirmDeletePicture=Επιβεβαίωση διαγραφής εικόνας Login=Σύνδεση LoginEmail=Σύνδεση (email) -LoginOrEmail=Σύνδεση ή ηλεκτρονικό ταχυδρομείο +LoginOrEmail=Όνομα σύνδεσης ή email CurrentLogin=Τρέχουσα Σύνδεση EnterLoginDetail=Εισαγάγετε στοιχεία σύνδεσης January=Ιανουάριος @@ -605,20 +613,21 @@ 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=Συμμετοχή στο κύριο έγγραφο +JoinMainDocOrLastGenerated=Στείλτε το κύριο έγγραφο ή το τελευταίο που δημιουργήθηκε εάν δεν βρεθεί DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -638,12 +647,12 @@ ReadPermissionNotAllowed=Δεν υπάρχει δικαίωμα ανάγνωση AmountInCurrency=Σύνολο σε %s Example=Παράδειγμα Examples=Παραδείγματα -NoExample=Δεν υπάρχει παράδειγμα +NoExample=Κανένα παράδειγμα FindBug=Αναφορά σφάλματος -NbOfThirdParties=Αριθμός στοιχείων +NbOfThirdParties=Αριθμός τρίτων μερών NbOfLines=Αριθμός Γραμμών NbOfObjects=Αριθμός Αντικειμένων -NbOfObjectReferers=Πλήθος σχετιζόμενων αντικειμένων +NbOfObjectReferers=Αριθμός σχετικών στοιχείων Referers=Σχετιζόμενα αντικείμενα TotalQuantity=Συνολική ποσότητα DateFromTo=Από %s μέχρι %s @@ -651,23 +660,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=Internal ref. +InternalRef=Εσωτερική αναφορά Currency=Νόμισμα -InfoAdmin=Πληροφορία για τους διαχειριστές +InfoAdmin=Πληροφορίες για διαχειριστές Undo=Αναίρεση Redo=Επανεκτέλεση ExpandAll=Επέκταση όλων @@ -680,63 +689,64 @@ Response=Απάντηση Priority=Προτεραιότητα SendByMail=Απόστειλε μέσω ηλεκτρονικού ταχυδρομείου MailSentBy=Το email στάλθηκε από -NotSent=Δεν αποστέλλεται +NotSent=Δεν εστάλη TextUsedInTheMessageBody=Κείμενο email SendAcknowledgementByMail=Αποστολή email επιβεβαίωσης SendMail=Αποστολή email Email=Email NoEMail=Χωρίς email -AlreadyRead=Διαβάσατε ήδη -NotRead=Unread +AlreadyRead=Διαβασμένα +NotRead=Αδιάβαστο NoMobilePhone=Χωρείς κινητό τηλέφωνο Owner=Ιδιοκτήτης -FollowingConstantsWillBeSubstituted=Οι ακόλουθες σταθερές θα αντικαταστασθούν με τις αντίστοιχες τιμές +FollowingConstantsWillBeSubstituted=Οι ακόλουθες σταθερές θα αντικατασταθούν με τις αντίστοιχες τιμές Refresh=Ανανέωση BackToList=Επιστροφή στη Λίστα -BackToTree=Back to tree +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=Δεν έχετε τα απαραίτητα δικαιώματα +UserNotInHierachy=Αυτή η ενέργεια αφορά τους επόπτες αυτού του χρήστη SessionName=Όνομα συνόδου Method=Μέθοδος Receive=Παραλαβή CompleteOrNoMoreReceptionExpected=Ολοκληρώθηκε ή δεν αναμένετε κάτι περισσότερο ExpectedValue=Αναμενόμενη αξία -ExpectedQty=Expected Qty +ExpectedQty=Αναμενόμενη ποσότητα PartialWoman=Μερική TotalWoman=Συνολικές NeverReceived=Δεν παραλήφθηκε Canceled=Ακυρώθηκε -YouCanChangeValuesForThisListFromDictionarySetup=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού Ρύθμιση - Λεξικά +YouCanChangeValuesForThisListFromDictionarySetup=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού Ρυθμίσεις - Λεξικά YouCanChangeValuesForThisListFrom=Μπορείτε να αλλάξετε τιμές για αυτήν τη λίστα από το μενού %s YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που χρησιμοποιείται κατά τη δημιουργία μιας νέας εγγραφής στη ρύθμιση μονάδων Color=Χρώμα Documents=Συνδεδεμένα Αρχεία Documents2=Έγγραφα -UploadDisabled=Το ανέβασμα αρχείων έχει απενεργοποιηθεί +UploadDisabled=Η μεταφόρτωση απενεργοποιήθηκε MenuAccountancy=Λογιστική MenuECM=Έγγραφα MenuAWStats=AWStats MenuMembers=Μέλη MenuAgendaGoogle=Ημερολόγιο Google -MenuTaxesAndSpecialExpenses=Taxes | Special expenses +MenuTaxesAndSpecialExpenses=Φόροι | Ειδικά έξοδα ThisLimitIsDefinedInSetup=Όριο Dolibarr (Μενού Ρυθμίσεις-Ασφάλεια): %s Kb, Όριο PHP: %s Kb -ThisLimitIsDefinedInSetupAt=Dolibarr limit (Menu %s): %s Kb, PHP limit (Param %s): %s Kb -NoFileFound=No documents uploaded -CurrentUserLanguage=Τρέχουσα Γλώσσα -CurrentTheme=Τρέχων Θέμα +ThisLimitIsDefinedInSetupAt=Όριο Dolibarr (Μενού %s): %s Kb, όριο PHP (Param %s): %s Kb +NoFileFound=Δεν έχουν μεταφορτωθεί έγγραφα +CurrentUserLanguage=Τρέχουσα γλώσσα +CurrentTheme=Τρέχον θέμα CurrentMenuManager=Τρέχουσα διαχειρηση μενού Browser=Browser Layout=Σχέδιο @@ -753,15 +763,15 @@ RootOfMedias=Ρίζα δημόσιων μέσων (/ media) Informations=Πληροφορίες Page=Σελίδα Notes=Σημειώσεις -AddNewLine=Προσθήκη Γραμμής +AddNewLine=Προσθήκη νέας γραμμής AddFile=Προσθήκη Αρχείου -FreeZone=Free-text product +FreeZone=Προϊόν ελεύθερου κειμένου FreeLineOfType=Στοιχείο ελεύθερου κειμένου, πληκτρολογήστε: CloneMainAttributes=Κλωνοποίηση αντικειμένου με τα βασικά του χαρακτηριστικά ReGeneratePDF=Επαναπαραγωγή PDF -PDFMerge=Ενσωμάτωση PDF -Merge=Ενσωμάτωση -DocumentModelStandardPDF=Πρότυπο πρότυπο PDF +PDFMerge=Συγχώνευση PDF +Merge=Συγχώνευση +DocumentModelStandardPDF=Τυπικό πρότυπο PDF PrintContentArea=Εμγάνιση σελίδας για εκτύπωση MenuManager=Menu manager WarningYouAreInMaintenanceMode=Προσοχή, βρίσκεστε σε λειτουργία συντήρησης: επιτρέπεται μόνο η σύνδεση %s να χρησιμοποιεί την εφαρμογή σε αυτή τη λειτουργία. @@ -770,15 +780,15 @@ CoreErrorMessage=Λυπούμαστε, παρουσιάστηκε ένα σφά CreditCard=Πιστωτική Κάρτα ValidatePayment=Επικύρωση πληρωμής CreditOrDebitCard=Πιστωτική ή χρεωστική κάρτα -FieldsWithAreMandatory=Τα πεδία %s είναι υποχρεωτικά +FieldsWithAreMandatory=Τα πεδία με%s είναι υποχρεωτικά FieldsWithIsForPublic=Τα πεδία με %s εμφανίζονται στη δημόσια λίστα των μελών. Αν δεν το θέλετε, καταργήστε την επιλογή του πλαισίου "δημόσιο". AccordingToGeoIPDatabase=(σύμφωνα με τη μετατροπή GeoIP) Line=Γραμμή -NotSupported=Χωρίς Υποστήριξη +NotSupported=Δεν υποστηρίζεται RequiredField=Απαιτούμενο Πεδίο Result=Αποτέλεσμα ToTest=Δοκιμή -ValidateBefore=Η καρτέλα πρέπει να επικυρωθεί πριν χρησιμοποιηθεί αυτή τη δυνατότητα +ValidateBefore=Το στοιχείο πρέπει να επικυρωθεί πριν χρησιμοποιήσετε αυτήν τη δυνατότητα Visibility=Ορατότητα Totalizable=Συνολικά TotalizableDesc=Αυτό το πεδίο είναι συνολικά σε λίστα @@ -787,7 +797,7 @@ Hidden=Κρυφό Resources=Πόροι Source=Πηγή Prefix=Πρόθεμα -Before=Προτού +Before=Πριν After=Μετά IPAddress=Η διεύθυνση IP Frequency=Συχνότητα @@ -795,7 +805,7 @@ IM=Άμεσων μηνυμάτων NewAttribute=Νέο χαρακτηριστικό AttributeCode=Κωδικός Ιδιότητα URLPhoto=URL της φωτογραφία / λογότυπο -SetLinkToAnotherThirdParty=Σύνδεση με άλλο Στοιχείο +SetLinkToAnotherThirdParty=Σύνδεση με άλλο τρίτο μέρος LinkTo=Σύνδεση σε LinkToProposal=Σύνδεση σε προσφορά LinkToOrder=Σύνδεση με παραγγελία @@ -807,28 +817,28 @@ LinkToSupplierInvoice=Σύνδεση με το τιμολόγιο προμηθε LinkToContract=Σύνδεση με συμβόλαιο LinkToIntervention=Σύνδεση σε παρέμβαση LinkToTicket=Σύνδεση με το εισιτήριο -LinkToMo=Link to Mo +LinkToMo=Σύνδεσμος προς Mo CreateDraft=Δημιουργία σχεδίου SetToDraft=Επιστροφή στο προσχέδιο -ClickToEdit=Κάντε κλικ για να επεξεργαστείτε +ClickToEdit=Κάντε κλικ για επεξεργασία ClickToRefresh=Κάντε κλικ για ανανέωση -EditWithEditor=Επεξεργασία με CKEditor +EditWithEditor=Επεξεργασία με το CKEditor EditWithTextEditor=Επεξεργασία με πρόγραμμα επεξεργασίας κειμένου EditHTMLSource=Επεξεργασία προέλευσης HTML ObjectDeleted=Αντικείμενο %s διαγράφεται -ByCountry=Με τη χώρα -ByTown=Με την πόλη +ByCountry=Ανά χώρα +ByTown=Ανά πόλη ByDate=Με ημερομηνία -ByMonthYear=Με μήνας / έτος -ByYear=Με χρόνια +ByMonthYear=Ανά μήνα/έτος +ByYear=Ανά έτος ByMonth=Με το μήνα -ByDay=Μέχρι την ημέρα +ByDay=Ανά μέρα BySalesRepresentative=Με τον αντιπρόσωπο πωλήσεων LinkedToSpecificUsers=Συνδέεται με μια συγκεκριμένη επαφή χρήστη NoResults=Δεν υπάρχουν αποτελέσματα AdminTools=Εργαλεία διαχειριστή SystemTools=Εργαλεία συστήματος -ModulesSystemTools=Εργαλεία πρόσθετων +ModulesSystemTools=Εργαλεία ενοτήτων Test=Δοκιμή Element=Στοιχείο NoPhotoYet=Δεν υπαρχουν διαθεσημες φωτογραφίες ακόμα @@ -851,7 +861,7 @@ XMoreLines=%s γραμμή (ές) κρυμμένη ShowMoreLines=Εμφάνιση περισσότερων / λιγότερων γραμμών PublicUrl=Δημόσια URL AddBox=Προσθήκη πεδίου -SelectElementAndClick=Select an element and click on %s +SelectElementAndClick=Επιλέξτε ένα στοιχείο και κάντε κλικ στο %s PrintFile=Εκτύπωση του αρχείου %s ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό λογαριασμό ShowIntervention=Εμφάνιση παρέμβασης @@ -862,26 +872,26 @@ Denied=Άρνηση ListOf=Λίστα %s ListOfTemplates=Κατάλογος των προτύπων Gender=Φύλο -Genderman=Male -Genderwoman=Female +Genderman=Αρσενικό +Genderwoman=Θηλυκό Genderother=Άλλο ViewList=Προβολή λίστας ViewGantt=Gantt θέα ViewKanban=Θέα στο Kanban Mandatory=Υποχρεωτικό Hello=Χαίρετε -GoodBye=Αντιο σας +GoodBye=Αντίο σας Sincerely=Ειλικρινώς 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. +ErrorPDFTkOutputFileNotFound=Σφάλμα: το αρχείο δεν δημιουργήθηκε. Ελέγξτε ότι το 'pdftk' είναι εγκατεστημένο σε έναν κατάλογο που περιλαμβάνεται στο environment variable $PATH (μόνο linux/unix) ή επικοινωνήστε με τον διαχειριστή του συστήματός σας. NoPDFAvailableForDocGenAmongChecked=Δεν υπήρχε αρχείο PDF για την παραγωγή εγγράφων μεταξύ των καταχωρημένων εγγραφών TooManyRecordForMassAction=Έχουν επιλεγεί πάρα πολλά αρχεία για μαζική δράση. Η ενέργεια περιορίζεται σε μια λίστα αρχείων %s. NoRecordSelected=Δεν έχει επιλεγεί εγγραφή MassFilesArea=Περιοχή για αρχεία που δημιουργούνται από μαζικές ενέργειες ShowTempMassFilesArea=Εμφάνιση περιοχής αρχείων που έχουν δημιουργηθεί με μαζικές ενέργειες -ConfirmMassDeletion=Διαγραφή μαζικής επιβεβαίωσης +ConfirmMassDeletion=Επιβεβαίωση μαζικής διαγραφής ConfirmMassDeletionQuestion=Είστε βέβαιοι ότι θέλετε να διαγράψετε τις επιλεγμένες εγγραφές %s; RelatedObjects=Σχετικά Αντικείμενα ClassifyBilled=Χαρακτηρισμός ως τιμολογημένο @@ -889,7 +899,7 @@ ClassifyUnbilled=Ταξινόμηση των μη τιμολογημένων Progress=Πρόοδος ProgressShort=Progr. FrontOffice=Μπροστινό γραφείο -BackOffice=Back office +BackOffice=Υποστήριξη Submit=Υποβολή View=Προβολή Export=Εξαγωγή @@ -902,20 +912,20 @@ ExportOfPiecesAlreadyExportedIsEnable=Η εξαγωγή τεμαχίων που ExportOfPiecesAlreadyExportedIsDisable=Η εξαγωγή τεμαχίων που έχουν ήδη εξαχθεί είναι απενεργοποιημένη AllExportedMovementsWereRecordedAsExported=Όλες οι εξαγόμενες κινήσεις καταγράφηκαν ως εξαγόμενες NotAllExportedMovementsCouldBeRecordedAsExported=Δεν μπορούν να καταγραφούν όλες οι εξαγόμενες κινήσεις ως εξαγωγές -Miscellaneous=Miscellaneous +Miscellaneous=Διάφορα Calendar=Ημερολόγιο GroupBy=Ομαδοποίηση κατά... ViewFlatList=Προβολή λίστας -ViewAccountList=View ledger -ViewSubAccountList=View subaccount ledger -RemoveString=Αφαιρέστε τη συμβολοσειρά '%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 +ViewAccountList=Προβολή καθολικού +ViewSubAccountList=Προβολή καθολικού δευτερεύοντος λογαριασμού +RemoveString=Κατάργηση συμβολοσειράς '%s' +SomeTranslationAreUncomplete=Ορισμένες από τις διαθέσιμες γλώσσες ενδέχεται να έχουν μεταφραστεί μόνο εν μέρει ή να περιέχουν σφάλματα. Βοηθήστε στη διόρθωση της γλώσσας σας κάνοντας εγγραφή στο https://transifex.com/projects/p/dolibarr/ για να προσθέσετε τις βελτιώσεις σας. +DirectDownloadLink=Δημόσιος σύνδεσμος λήψης +PublicDownloadLinkDesc=Απαιτείται μόνο ο σύνδεσμος για τη λήψη του αρχείου +DirectDownloadInternalLink=Ιδιωτικός σύνδεσμος λήψης +PrivateDownloadLinkDesc=Πρέπει να είστε συνδεδεμένοι και χρειάζεστε δικαιώματα για να δείτε ή να κατεβάσετε το αρχείο Download=Κατεβάστε -DownloadDocument=Κάντε λήψη εγγράφου +DownloadDocument=Λήψη εγγράφου ActualizeCurrency=Ενημέρωση τιμής νομίσματος Fiscalyear=Οικονομικό έτος ModuleBuilder=Ενότητα και Εργαλείο δημιουργίας εφαρμογών @@ -930,10 +940,10 @@ ExpenseReports=Αναφορές εξόδων HR=HR HRAndBank=HR και Τράπεζα AutomaticallyCalculated=Αυτόματα υπολογισμένο -TitleSetToDraft=Επιστρέψτε στο σχέδιο +TitleSetToDraft=Επιστροφή σε προσχέδιο ConfirmSetToDraft=Είστε βέβαιοι ότι θέλετε να επιστρέψετε στην κατάσταση Προετοιμασίας; ImportId=Εισαγωγή αναγνωριστικού -Events=Ενέργειες +Events=Συμβάντα EMailTemplates=Πρότυπα ηλεκτρονικού ταχυδρομείου FileNotShared=Αρχείο που δεν μοιράζεται με εξωτερικό κοινό Project=Έργο @@ -978,39 +988,39 @@ ShortThursday=Π ShortFriday=Π ShortSaturday=Σ ShortSunday=Κ -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 +one=ένα +two=δύο +three=τρία +four=τέσσερα +five=πέντε +six=έξι +seven=επτά +eight=οκτώ +nine=εννέα +ten=δέκα +eleven=έντεκα +twelve=δώδεκα +thirteen=δεκατρία +fourteen=δεκατέσσερα +fifteen=δεκαπέντε +sixteen=δεκαέξι +seventeen=δεκαεπτά +eighteen=δεκαοχτώ +nineteen=δεκαεννέα +twenty=είκοσι +thirty=τριάντα +forty=σαράντα +fifty=πενήντα +sixty=εξήντα +seventy=εβδομήντα +eighty=ογδόντα +ninety=ενενήντα +hundred=εκατό +thousand=χίλια +million=εκατομμύριο +billion=δισεκατομμύριο +trillion=τρισεκατομμύριο +quadrillion=τετρακισεκατομμύριο SelectMailModel=Επιλέξτε ένα πρότυπο ηλεκτρονικού ταχυδρομείου SetRef=Ρύθμιση αναφ Select2ResultFoundUseArrows=Βρέθηκαν αποτελέσματα. Χρησιμοποιήστε τα βέλη για να επιλέξετε. @@ -1026,9 +1036,9 @@ SearchIntoContacts=Επαφές SearchIntoMembers=Μέλη SearchIntoUsers=Χρήστες SearchIntoProductsOrServices=Προϊόντα ή Υπηρεσίες -SearchIntoBatch=Lots / Serials +SearchIntoBatch=Παρτίδες / Σειρές SearchIntoProjects=Έργα -SearchIntoMO=Manufacturing Orders +SearchIntoMO=Εντολές Παραγωγής SearchIntoTasks=Εργασίες SearchIntoCustomerInvoices=Τιμολόγια πελατών SearchIntoSupplierInvoices=Τιμολόγια προμηθευτή @@ -1040,52 +1050,52 @@ SearchIntoInterventions=Παρεμβάσεις SearchIntoContracts=Συμβόλαια SearchIntoCustomerShipments=Αποστολές Πελάτη SearchIntoExpenseReports=Αναφορές εξόδων -SearchIntoLeaves=Αδεια +SearchIntoLeaves=Άδεια SearchIntoTickets=Εισιτήρια -SearchIntoCustomerPayments=Customer payments +SearchIntoCustomerPayments=Πληρωμές πελατών SearchIntoVendorPayments=Πληρωμές προμηθευτών SearchIntoMiscPayments=Διάφορες πληρωμές CommentLink=Σχόλια NbComments=Αριθμός σχολίων CommentPage=Χώρος σχολίων CommentAdded=Προστέθηκε σχόλιο -CommentDeleted=Το σχόλιο διαγράφεται +CommentDeleted=Το σχόλιο διαγράφηκε Everybody=Όλοι PayedBy=Πληρώθηκε από -PayedTo=Πληρωμή σε -Monthly=Μηνιαίο -Quarterly=Τριμηνιαίος -Annual=Ετήσιος -Local=Τοπικός -Remote=Μακρινός +PayedTo=Πληρώθηκε σε +Monthly=Μηνιαία +Quarterly=Τριμηνιαία +Annual=Ετήσια +Local=Τοπικά +Remote=Απομακρυσμένο LocalAndRemote=Τοπικά και απομακρυσμένα KeyboardShortcut=Συντόμευση πληκτρολογίου AssignedTo=Ανάθεση σε -Deletedraft=Διαγραφή πρόχειρου -ConfirmMassDraftDeletion=Σχέδιο επιβεβαίωσης μαζικής διαγραφής -FileSharedViaALink=File shared with a public link +Deletedraft=Διαγραφή προσχεδίου +ConfirmMassDraftDeletion=Επιβεβαίωση μαζικής διαγραφής προσχεδίων +FileSharedViaALink=Αρχείο διαμοιραζόμενο με δημόσιο σύνδεσμο SelectAThirdPartyFirst=Επιλέξτε πρώτα ένα τρίτο μέρος ... -YouAreCurrentlyInSandboxMode=Βρίσκεστε αυτή τη στιγμή στη λειτουργία "sandbox" %s +YouAreCurrentlyInSandboxMode=Αυτήν τη στιγμή βρίσκεστε στη λειτουργία "sandbox" %s Inventory=Καταγραφή εμπορευμάτων AnalyticCode=Αναλυτικός κώδικας TMenuMRP=MRP -ShowCompanyInfos=Show company infos +ShowCompanyInfos=Εμφάνιση πληροφοριών εταιρείας ShowMoreInfos=Εμφάνιση περισσότερων πληροφοριών -NoFilesUploadedYet=Αρχικά, μεταφορτώστε ένα έγγραφο +NoFilesUploadedYet=Παρακαλώ μεταφορτώστε ένα έγγραφο πρώτα SeePrivateNote=Δείτε την ιδιωτική σημείωση PaymentInformation=Πληροφορίες Πληρωμής ValidFrom=Ισχύει από -ValidUntil=Εγκυρο μέχρι +ValidUntil=Έγκυρο μέχρι NoRecordedUsers=Δεν υπάρχουν χρήστες -ToClose=Να κλείσω -ToRefuse=To refuse -ToProcess=Για την διαδικασία -ToApprove=Εγκρίνω +ToClose=Προς κλείσιμο +ToRefuse=Προς απόρριψη +ToProcess=Προς επεξεργασία +ToApprove=Προς έγκριση GlobalOpenedElemView=Σφαιρική άποψη -NoArticlesFoundForTheKeyword=Δεν βρέθηκε κανένα άρθρο για τη λέξη-κλειδί ' %s ' -NoArticlesFoundForTheCategory=Δεν βρέθηκε κανένα άρθρο για την κατηγορία -ToAcceptRefuse=Αποδοχή | αρνηθεί -ContactDefault_agenda=Εκδήλωση +NoArticlesFoundForTheKeyword=Δεν βρέθηκε άρθρο για τη λέξη-κλειδί " %s " +NoArticlesFoundForTheCategory=Δεν βρέθηκε άρθρο για την κατηγορία +ToAcceptRefuse=Αποδοχή | άρνηση +ContactDefault_agenda=Συμβάν ContactDefault_commande=Παραγγελία ContactDefault_contrat=Συμβόλαιο ContactDefault_facture=Τιμολόγιο @@ -1094,12 +1104,12 @@ ContactDefault_invoice_supplier=Τιμολόγιο Προμηθευτή ContactDefault_order_supplier=Εντολή αγοράς ContactDefault_project=Έργο ContactDefault_project_task=Εργασία -ContactDefault_propal=Πρόταση -ContactDefault_supplier_proposal=Πρόταση Προμηθευτή +ContactDefault_propal=Προσφορά +ContactDefault_supplier_proposal=Προσφορά Προμηθευτή ContactDefault_ticket=Εισιτήριο -ContactAddedAutomatically=Η επαφή που προστέθηκε από τους ρόλους του τρίτου μέρους επικοινωνίας +ContactAddedAutomatically=Η επαφή προστέθηκε από ρόλους τρίτων επαφών More=Περισσότερα -ShowDetails=Δείξε λεπτομέρειες +ShowDetails=Εμφάνιση λεπτομερειών CustomReports=Προσαρμοσμένες αναφορές StatisticsOn=Στατιστικά στοιχεία για SelectYourGraphOptionsFirst=Επιλέξτε τις επιλογές γραφήματος για να δημιουργήσετε ένα γράφημα @@ -1112,55 +1122,68 @@ DeleteFileText=Θέλετε πραγματικά να διαγράψετε αυ ShowOtherLanguages=Εμφάνιση άλλων γλωσσών SwitchInEditModeToAddTranslation=Μεταβείτε στη λειτουργία επεξεργασίας για να προσθέσετε μεταφράσεις για αυτήν τη γλώσσα NotUsedForThisCustomer=Δεν χρησιμοποιείται για αυτόν τον πελάτη -AmountMustBePositive=Amount must be positive -ByStatus=By status -InformationMessage=Πληροφορίες -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=Ημερομηνία γεννήσεως -SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Security token has expired, so action has been canceled. Please try again. -UpToDate=Up-to-date -OutOfDate=Out-of-date +AmountMustBePositive=Το ποσό πρέπει να είναι θετικό +ByStatus=Κατά κατάσταση +InformationMessage=Πληροφορία +Used=Μεταχειρισμένο +ASAP=Όσο το δυνατόν συντομότερα +CREATEInDolibarr=Δημιουργήθηκε η εγγραφή %s +MODIFYInDolibarr=Η εγγραφή %s τροποποιήθηκε +DELETEInDolibarr=Η εγγραφή %s διαγράφηκε +VALIDATEInDolibarr=Η εγγραφή %s επικυρώθηκε +APPROVEDInDolibarr=Εγκρίθηκε η εγγραφή %s +DefaultMailModel=Προεπιλεγμένο μοντέλο αλληλογραφίας +PublicVendorName=Επωνυμία προμηθευτή +DateOfBirth=Ημερομηνία γέννησης +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Το Security token έχει λήξει, επομένως η ενέργεια ακυρώθηκε. Παρακαλώ προσπαθήστε ξανά. +UpToDate=Ενημερωμένο +OutOfDate=Ξεπερασμένο EventReminder=Υπενθύμιση συμβάντος -UpdateForAllLines=Update for all lines +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)? -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=Ευγένεια +AffectTag=Επιβολή ετικέτας +CreateExternalUser=Δημιουργία εξωτερικού χρήστη +ConfirmAffectTag=Μαζική επιβολή ετικετών +ConfirmAffectTagQuestion=Είστε σίγουροι ότι θέλετε να επιβάλετε τις ετικέτες στις επιλεγμένες εγγραφές %s; +CategTypeNotFound=Δεν βρέθηκε τύπος ετικέτας για τον τύπο των εγγραφών +CopiedToClipboard=Αντιγράφηκε στο πρόχειρο +InformationOnLinkToContract=Το ποσό αυτό είναι μόνο το σύνολο όλων των γραμμών της σύμβασης. Δεν λαμβάνεται υπόψη η έννοια του χρόνου. +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 +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=Εκπρόσωποι πωλήσεων που αφορά +CommercialAffected=Εκπρόσωπος πωλήσεων που αφορά +YourMessage=Το μήνυμά σας +YourMessageHasBeenReceived=Το μήνυμά σας έχει ληφθεί. Θα απαντήσουμε ή θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό. +UrlToCheck=URL για έλεγχο +Automation=Αυτοματισμός +CreatedByEmailCollector=Δημιουργήθηκε από τον συλλέκτη Email +CreatedByPublicPortal=Δημιουργήθηκε από Δημόσια πύλη diff --git a/htdocs/langs/el_GR/margins.lang b/htdocs/langs/el_GR/margins.lang index 0021815dc34..40df1eddafb 100644 --- a/htdocs/langs/el_GR/margins.lang +++ b/htdocs/langs/el_GR/margins.lang @@ -5,7 +5,7 @@ Margins=Περιθώρια TotalMargin=Συνολικό Περιθώριο MarginOnProducts=Περιθώριο / Προϊόντα MarginOnServices=Περιθώριο / Υπηρεσίες -MarginRate=Περιθώριο επί της % +MarginRate=Ποσοστό περιθωρίου επί της % MarkRate=Ποσοστό Κέρδους DisplayMarginRates=Εμφάνιση ποσοστό κέρδους DisplayMarkRates=Εμφάνιση σημειωμένων τιμών @@ -21,25 +21,25 @@ UserMargins=Περιθώρια χρήστη ProductService=Προϊόν ή Υπηρεσία AllProducts=Όλα τα προϊόντα και οι υπηρεσίες ChooseProduct/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). +ForceBuyingPriceIfNull=Επιβολή τιμής αγοράς/κόστους σε τιμή πώλησης, εάν δεν έχει καθοριστεί +ForceBuyingPriceIfNullDetails=Εάν η τιμή αγοράς/κόστους δεν παρέχεται όταν προσθέτουμε μια νέα γραμμή και αυτή η επιλογή είναι "ON", το περιθώριο θα είναι 0%% στη νέα γραμμή (τιμή αγοράς/κόστους = τιμή πώλησης). Εάν αυτή η επιλογή είναι "OFF" (συνιστάται), το περιθώριο θα είναι ίσο με την τιμή που προτείνεται από προεπιλογή (και μπορεί να είναι 100%% εάν δεν μπορεί να βρεθεί προεπιλεγμένη τιμή). MARGIN_METHODE_FOR_DISCOUNT=Μέθοδος ποσοστού για της γενικές εκπτώσεις UseDiscountAsProduct=Ως προϊόν UseDiscountAsService=Ως υπηρεσία UseDiscountOnTotal=Στο υποσύνολο MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Καθορίζει αν η συνολική έκπτωση που θεωρείται ως ένα προϊόν, μια υπηρεσία, ή μόνον επί του υποσυνόλου για τον υπολογισμό του περιθωρίου κέρδους. -MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation +MARGIN_TYPE=Τιμή αγοράς/κόστους που προτείνεται από προεπιλογή για τον υπολογισμό του περιθωρίου MargeType1=Περιθώριο για την καλύτερη τιμή προμηθευτή -MargeType2=Margin on Weighted Average Price (WAP) +MargeType2=Περιθώριο στη μέση σταθμισμένη τιμή (WAP) MargeType3=Περιθώριο στην τιμή κόστους MarginTypeDesc=* Περιθώριο με την καλύτερη τιμή αγοράς = Τιμή πώλησης - Καλύτερη τιμή πωλητή που ορίζεται στην κάρτα προϊόντος
    * Περιθώριο σταθμισμένης μέσης τιμής (WAP) = Τιμή πώλησης - Σταθμισμένη μέση τιμή προϊόντος (WAP) ή καλύτερη τιμή προμηθευτή εάν το WAP δεν έχει καθοριστεί ακόμη
    * Περιθώριο στην τιμή κόστους = τιμή πώλησης - τιμή κόστους οριζόμενη στην κάρτα προϊόντος ή WAP, εάν η τιμή κόστους δεν έχει καθοριστεί ή η καλύτερη τιμή πωλητή αν το WAP δεν έχει οριστεί ακόμη CostPrice=Τιμή κόστους UnitCharges=Χρεώσεων Charges=Επιβαρύνσεις -AgentContactType=Εμπορικός αντιπρόσωπος τύπο επαφής +AgentContactType=τύπος επαφής εμπορικός αντιπρόσωπου AgentContactTypeDetails=Ορίστε ποιος τύπος επαφής (συνδεδεμένος στα τιμολόγια) θα χρησιμοποιηθεί για την αναφορά περιθωρίου ανά επαφή / διεύθυνση. Σημειώστε ότι η ανάγνωση των στατιστικών στοιχείων μιας επαφής δεν είναι αξιόπιστη, διότι στις περισσότερες περιπτώσεις η επαφή μπορεί να μην ορίζεται σαφώς στα τιμολόγια. rateMustBeNumeric=Βαθμολογήστε πρέπει να είναι μια αριθμητική τιμή markRateShouldBeLesserThan100=Το ποσοστό πρέπει να είναι χαμηλότερη από 100 ShowMarginInfos=Δείτε πληροφορίες για τα περιθώρια -CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=Η αναφορά περιθωρίου ανά χρήστη χρησιμοποιεί τη σχέση μεταξύ τρίτων και εκπροσώπων πωλήσεων για να υπολογίσει το περιθώριο κάθε αντιπροσώπου πωλήσεων. Επειδή ορισμένα τρίτα μέρη ενδέχεται να μην έχουν εξειδικευμένο αντιπρόσωπο πώλησης και ορισμένα τρίτα μέρη ενδέχεται να συνδέονται με πολλά, ορισμένα ποσά ενδέχεται να μην περιλαμβάνονται στην έκθεση (εάν δεν υπάρχει αντιπρόσωπος πώλησης) και μερικά ενδέχεται να εμφανίζονται σε διαφορετικές γραμμές (για κάθε αντιπρόσωπο πώλησης) . +CheckMargins=Λεπτομέρεια περιθωρίων +MarginPerSaleRepresentativeWarning=Η αναφορά περιθωρίου ανά χρήστη χρησιμοποιεί τη σχέση μεταξύ τρίτων μερών και αντιπροσώπων πωλήσεων για να υπολογίσει το περιθώριο κάθε αντιπροσώπου πωλήσεων. Επειδή ορισμένα τρίτα μέρη ενδέχεται να μην έχουν εξειδικευμένο αντιπρόσωπο πώλησης και ορισμένα τρίτα μέρη ενδέχεται να συνδέονται με πολλούς αντιπρόσωπους, ορισμένα ποσά ενδέχεται να μην περιλαμβάνονται στην έκθεση (εάν δεν υπάρχει αντιπρόσωπος πώλησης) και μερικά ενδέχεται να εμφανίζονται σε διαφορετικές γραμμές (για κάθε αντιπρόσωπο πώλησης) . diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang index 13f01124b73..64f8f69d16c 100644 --- a/htdocs/langs/el_GR/members.lang +++ b/htdocs/langs/el_GR/members.lang @@ -1,151 +1,152 @@ # Dolibarr language file - Source file is en_US - members MembersArea=Περιοχή μελών MemberCard=Καρτέλα μελών -SubscriptionCard=Καρτέλα εγγραφής +SubscriptionCard=Καρτέλα συνδρομής Member=Μέλος Members=Μέλη -ShowMember=Εμφάνιση καρτέλα μέλους +ShowMember=Εμφάνιση καρτέλας μέλους UserNotLinkedToMember=Ο χρήστης δεν συνδέετε με κάποιο μέλος -ThirdpartyNotLinkedToMember=Τρίτο μέρος που δεν συνδέεται με κάποιο μέλος -MembersTickets=Membership address sheet +ThirdpartyNotLinkedToMember=Το τρίτο μέρος δεν συνδέεται με κάποιο μέλος +MembersTickets=Φύλλο διεύθυνσης μέλους FundationMembers=Μέλη οργανισμού -ListOfValidatedPublicMembers=Λίστα πιστοποιημένων δημοσίων μελών -ErrorThisMemberIsNotPublic=Το μέλος δεν είναι δημόσιο -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=Σύνδεση σε ένα χρήστη του Dolibarr -SetLinkToThirdParty=Σύνδεση σε ένα στοιχείο του Dolibarr -MembersCards=Business cards for members -MembersList=Λίστα μελών -MembersListToValid=Λίστα πρόχειρων Μελών (προς επικύρωση) +ListOfValidatedPublicMembers=Λίστα πιστοποιημένων φανερών μελών +ErrorThisMemberIsNotPublic=Αυτό το μέλος δεν είναι δημόσιο +ErrorMemberIsAlreadyLinkedToThisThirdParty=Ένα άλλο μέλος (όνομα: %s, login: %s) έχει ήδη συνδεθεί με τρίτο μέρος %s. Καταργήστε αυτόν τον σύνδεσμο πρώτα επειδή ένα τρίτο μέρος δεν μπορεί να συνδέεται μόνο με ένα μέλος (και το αντίστροφο). +ErrorUserPermissionAllowsToLinksToItselfOnly=Για λόγους ασφαλείας, πρέπει να σας παραχωρηθούν δικαιώματα επεξεργασίας όλων των χρηστών για να μπορείτε να συνδέσετε ένα μέλος με έναν χρήστη που δεν είναι δικός σας. +SetLinkToUser=Σύνδεσμος σε χρήστη του Dolibarr +SetLinkToThirdParty=Σύνδεσμος με τρίτο μέρος του Dolibarr +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=Κατάλογος καταγγελθέντων μελών +MembersListUpToDate=Λίστα έγκυρων μελών με ενημερωμένη συνδρομή +MembersListNotUpToDate=Λίστα έγκυρων μελών με μη ενημερωμένη συνδρομή +MembersListExcluded=Κατάλογος αποκλεισμένων μελών +MembersListResiliated=Κατάλογος καταργημένων μελών MembersListQualified=Λίστα επικυρωμένων μελών -MenuMembersToValidate=Πρόχειρα Μέλη +MenuMembersToValidate=Προσωρινά Μέλη MenuMembersValidated=Επικυρωμένα μέλη -MenuMembersExcluded=Excluded members -MenuMembersResiliated=Καταλήγοντας μέλη -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=id Μέλους +MenuMembersExcluded=Αποκλεισμένα μέλη +MenuMembersResiliated=Καταργημένα μέλη +MembersWithSubscriptionToReceive=Μέλη με εκκρεμείς συνδρομές +MembersWithSubscriptionToReceiveShort=Εκκρεμείς συνδρομές +DateSubscription=Ημερομηνία έναρξης συνδρομής μέλους +DateEndSubscription=Ημερομηνία λήξης συνδρομής μέλους +EndSubscription=Τέλος ιδιότητας συνδρομής μέλους +SubscriptionId=Αναγνωριστικό συνδρομής +WithoutSubscription=Χωρίς συνδρομή +MemberId=Αναγνωριστικό μέλους +MemberRef= Αναφ. Μέλους NewMember=Νέο μέλος MemberType=Τύπος μέλους -MemberTypeId=Member type id +MemberTypeId=Αναγνωριστικό τύπου μέλους MemberTypeLabel=Ετικέτα Κατηγορίας Μέλους MembersTypes=Κατηγορίες Μελών -MemberStatusDraft=Πρόχειρο (Χρειάζεται επικύρωση) -MemberStatusDraftShort=Πρόχειρο -MemberStatusActive=Validated (waiting contribution) -MemberStatusActiveShort=Επικυρώθηκε -MemberStatusActiveLate=Contribution expired +MemberStatusDraft=Προσωρινό (Χρειάζεται επικύρωση) +MemberStatusDraftShort=Προσωρινό +MemberStatusActive=Επικυρώθηκε (αναμονή συνδρομής) +MemberStatusActiveShort=Επικυρωμένο +MemberStatusActiveLate=Η συνδρομή έληξε MemberStatusActiveLateShort=Ληγμένη -MemberStatusPaid=Συνδρομή σε εξέλιξη -MemberStatusPaidShort=Up to date -MemberStatusExcluded=Excluded member -MemberStatusExcludedShort=Excluded -MemberStatusResiliated=Μέλος χωρίς Συνδρομή -MemberStatusResiliatedShort=Τερματίστηκε -MembersStatusToValid=Πρόχειρα Μέλη -MembersStatusExcluded=Excluded members -MembersStatusResiliated=Καταλήγοντας μέλη -MemberStatusNoSubscription=Validated (no contribution required) +MemberStatusPaid=Πληρωμένη συνδρομή +MemberStatusPaidShort=Ενημερωμένη +MemberStatusExcluded=Αποκλεισμένο Μέλος  +MemberStatusExcludedShort=Αποκλεισμένο +MemberStatusResiliated=καταργημένο μέλος +MemberStatusResiliatedShort=Καταργημένο +MembersStatusToValid=Προσωρινά μέλη +MembersStatusExcluded=Αποκλεισμένα μέλη +MembersStatusResiliated=Καταργημένα μέλη +MemberStatusNoSubscription=Επικυρώθηκε (δεν απαιτείται συνδρομή) MemberStatusNoSubscriptionShort=Επικυρώθηκε -SubscriptionNotNeeded=No contribution required -NewCotisation=Νέα Δωρεά -PaymentSubscription=New contribution payment +SubscriptionNotNeeded=Δεν απαιτείται συνδρομή +NewCotisation=Νέα συνδρομή +PaymentSubscription=Πληρωμή νέας συνδρομής SubscriptionEndDate=Ημερομηνία Λήξης Συνδρομής MembersTypeSetup=Ρύθμιση Κατηγορίας Μελών MemberTypeModified=Τύπος μέλους τροποποιήθηκε -DeleteAMemberType=Κατάργηση ενός τύπου Μέλος -ConfirmDeleteMemberType=Είστε σίγουροι ότι θέλετε να καταργήσετε αυτόν τον τύπο Μέλους? -MemberTypeDeleted=Τύπος Μέλους καταργήθηκε -MemberTypeCanNotBeDeleted=Αυτός ο τύπος Μέλους δεν μπορεί να καταργηθεί -NewSubscription=Νέα Δωρεά -NewSubscriptionDesc=Αυτή η φόρμα σας επιτρέπει να καταγράψετε την εγγραφή σας ως νέο μέλος του ιδρύματος. Αν θέλετε να ανανεώσετε τη συνδρομή σας (αν είναι ήδη μέλος), επικοινωνήστε με θεμέλιο του σκάφους, αντί μέσω e-mail %s. -Subscription=Contribution -Subscriptions=Contributions -SubscriptionLate=Καθυστ. -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions +DeleteAMemberType=Διαγραφή ενός τύπου Μέλος +ConfirmDeleteMemberType=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον τύπο Μέλους; +MemberTypeDeleted=Τύπος μέλους διαγράφηκε +MemberTypeCanNotBeDeleted=Αυτός ο τύπος Μέλους δεν μπορεί να διαγραφεί +NewSubscription=Νέα συνδρομή +NewSubscriptionDesc=Αυτή η φόρμα σας επιτρέπει να καταγράψετε την συνδρομή σας ως νέο μέλος του ιδρύματος. Αν θέλετε να ανανεώσετε τη συνδρομή σας (αν είστε ήδη μέλος), επικοινωνήστε με το συμβούλιο του ιδρύματος μέσω e-mail %s. +Subscription=Συνδρομή +Subscriptions=Συνδρομές +SubscriptionLate=Καθυστερημένη πληρωμή συνδρομής +SubscriptionNotReceived=Η πληρωμή της συνδρομής δεν ελήφθη ποτέ +ListOfSubscriptions=Κατάλογος συνδρομών SendCardByMail=Στείλτε την κάρτα με email AddMember=Δημιουργία μέλους -NoTypeDefinedGoToSetup=Νέος τύπος μέλους. Πηγαίνετε στις Ρυθμίσεις -> Τύποι μελών +NoTypeDefinedGoToSetup=Δεν έχουν οριστεί τύποι μελών. Μεταβείτε στο μενού "Τύποι μελών" NewMemberType=Νέος τύπος μέλους -WelcomeEMail=Καλώς ήλθατε -SubscriptionRequired=Contribution required +WelcomeEMail=Email καλωσορίσματος +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=Τερματίστε ένα μέλος -ConfirmResiliateMember=Είστε σίγουροι για τη διακοπή της συνδρομής του Μέλους; +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 file ValidateMember=Επικύρωση ενός μέλους -ConfirmValidateMember=Είστε βέβαιοι ότι θέλετε να επιβεβαιώσετε αυτό το μέλος; -FollowingLinksArePublic=Οι παρακάτω σύνδεσμοι είναι ανοιχτές σελίδες που δεν προστατεύονται από οποιαδήποτε άδεια Dolibarr. Δεν είναι μορφοποιημένες σελίδες, παρέχονται ως παράδειγμα για να παρουσιάσουν τον τρόπο ταξινόμησης της βάσης δεδομένων των μελών. -PublicMemberList=Λίστα δημόσιων μελών -BlankSubscriptionForm=Public self-registration form +ConfirmValidateMember=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτό το μέλος; +FollowingLinksArePublic=Οι παρακάτω σύνδεσμοι είναι ανοιχτές σελίδες που δεν προστατεύονται από οποιαδήποτε άδεια του Dolibarr. Δεν είναι μορφοποιημένες σελίδες, παρέχονται ως παράδειγμα για να παρουσιάσουν τον τρόπο ταξινόμησης της βάσης δεδομένων των μελών. +PublicMemberList=Δημόσια λίστα μελών +BlankSubscriptionForm=Δημόσια φόρμα εγγραφής BlankSubscriptionFormDesc=Το Dolibarr μπορεί να σας παράσχει ένα δημόσιο URL / ιστοσελίδα για να επιτρέψει στους εξωτερικούς επισκέπτες να ζητήσουν να εγγραφούν στο ίδρυμα. Εάν είναι ενεργοποιημένη μια ηλεκτρονική ενότητα πληρωμής, μπορεί να παρέχεται αυτόματα και μια φόρμα πληρωμής. -EnablePublicSubscriptionForm=Ενεργοποιήστε τον δημόσιο ιστότοπο με φόρμα αυτοεξυπηρέτησης -ForceMemberType=Αναγκάστε τον τύπο μέλους -ExportDataset_member_1=Members and contributions +EnablePublicSubscriptionForm=Ενεργοποίηση του δημόσιου ιστότοπου με φόρμα αυτο-εγγραφής +ForceMemberType=Επιβολή του τύπου μέλους +ExportDataset_member_1=Μέλη και συνδρομές ImportDataset_member_1=Μέλη LastMembersModified=Τελευταία %s μέλη που τροποποιήθηκαν -LastSubscriptionsModified=Latest %s modified contributions +LastSubscriptionsModified=Τελευταίες%sτροποποιημένες συνεισφορές String=String Text=Κείμενο Int=Int -DateAndTime=Date and time -PublicMemberCard=Member public card -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +DateAndTime=Ημερομηνία και ώρα +PublicMemberCard=Δημόσια κάρτα μέλους +SubscriptionNotRecorded=Η συνδρομή δεν καταγράφηκε +AddSubscription=Δημιουργία συνδρομής +ShowSubscription=Εμφάνιση συνδρομής # Label of email templates -SendingAnEMailToMember=Αποστολή ηλεκτρονικού μηνύματος ηλεκτρονικού ταχυδρομείου στο μέλος -SendingEmailOnAutoSubscription=Αποστολή ηλεκτρονικού ταχυδρομείου στην αυτόματη εγγραφή -SendingEmailOnMemberValidation=Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σχετικά με την επικύρωση νέου μέλους -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions -SendingEmailOnCancelation=Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σχετικά με την ακύρωση -SendingReminderActionComm=Sending reminder for agenda event +SendingAnEMailToMember=Αποστολή ενημερωτικού email στο μέλος +SendingEmailOnAutoSubscription=Αποστολή email σε αυτόματη εγγραφή +SendingEmailOnMemberValidation=Αποστολή email επικύρωσης νέου μέλους +SendingEmailOnNewSubscription=Αποστολή email νέας συνδρομής +SendingReminderForExpiredSubscription=Αποστολή υπενθύμισης για συνδρομές που έχουν λήξει +SendingEmailOnCancelation=Αποστολή email κατάργησης μελους +SendingReminderActionComm=Αποστολή υπενθύμισης για συμβάν ατζέντας # Topic of email templates -YourMembershipRequestWasReceived=Η πρόσβασή σας έγινε δεκτή. +YourMembershipRequestWasReceived=Η συνδρομή σας ελήφθη. YourMembershipWasValidated=Η ιδιότητα μέλους σας επικυρώθηκε -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder +YourSubscriptionWasRecorded=Η τελευταία σας συνδρομή καταγράφηκε +SubscriptionReminderEmail=υπενθύμιση συνδρομής YourMembershipWasCanceled=Η εγγραφή σας ακυρώθηκε CardContent=Περιεχόμενα καρτέλας # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=Θα θέλαμε να σας ενημερώσουμε ότι το αίτημά σας για συμμετοχή έγινε δεκτό.

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

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

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

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

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

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Αντικείμενο του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης που λαμβάνεται σε περίπτωση αυτόματης εγγραφής επισκέπτη DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Περιεχόμενο του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης που λαμβάνεται σε περίπτωση αυτόματης εγγραφής επισκέπτη -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος κατά την αυτόματη εγγραφή μέλους DescADHERENT_EMAIL_TEMPLATE_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_SUBSCRIPTION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε νέα καταχώρηση συνδρομής +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Πρότυπο email που θα χρησιμοποιηθεί για την αποστολή υπενθύμισης email όταν η συνδρομή πρόκειται να λήξει DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου σε μέλος σχετικά με την ακύρωση μέλους -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Email template to use to send email to a member on member exclusion +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Πρότυπο ηλεκτρονικού ταχυδρομείου που θα χρησιμοποιηθεί για την αποστολή email σε ένα μέλος σε περίπτωση αποκλεισμού μέλους DescADHERENT_MAIL_FROM=Email αποστολέα για αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου DescADHERENT_ETIQUETTE_TYPE=Format of labels page DescADHERENT_ETIQUETTE_TEXT=Text printed on member address sheets @@ -154,67 +155,69 @@ 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=Κείμενο που θα εκτυπωθεί στο κάτω μέρος της κάρτας μέλους -ShowTypeCard=Show type '%s' -HTPasswordExport=htpassword file generation -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +ShowTypeCard=Εμφάνιση τύπου '%s' +HTPasswordExport=δημιουργία αρχείου htpassword +NoThirdPartyAssociatedToMember=Κανένα τρίτο μέρος δεν σχετίζεται με αυτό το μέλος +MembersAndSubscriptions=Μέλη και Συνδρομές MoreActions=Complementary action on recording -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution +MoreActionsOnSubscription=Συμπληρωματική ενέργεια που προτείνεται από προεπιλογή κατά την καταγραφή μιας συνδρομής, η οποία πραγματοποιείται επίσης αυτόματα με την ηλεκτρονική πληρωμή μιας συνδρομής MoreActionBankDirect=Δημιουργήστε μια απευθείας εγγραφή σε τραπεζικό λογαριασμό MoreActionBankViaInvoice=Δημιουργήστε ένα τιμολόγιο και μια πληρωμή σε τραπεζικό λογαριασμό MoreActionInvoiceOnly=Create an invoice with no payment -LinkToGeneratedPages=Generate visit cards -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) +LinkToGeneratedPages=Δημιουργία επαγγελματικών καρτών ή καταστάσεων διευθύνσεων +LinkToGeneratedPagesDesc=Αυτή η οθόνη σάς επιτρέπει να δημιουργείτε αρχεία PDF με επαγγελματικές κάρτες για όλα τα μέλη σας. +DocForAllMembersCards=Δημιουργία επαγγελματικών καρτών για όλα τα μέλη +DocForOneMemberCards=Δημιουργία επαγγελματικών καρτών για ένα συγκεκριμένο μέλος DocForLabels=Generate address sheets (Format for output actually setup: %s) -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution -LastMemberType=Last Member type -MembersStatisticsByCountries=Μέλη στατιστικές ανά χώρα -MembersStatisticsByState=Τα μέλη στατιστικών στοιχείων από πολιτεία / επαρχία -MembersStatisticsByTown=Τα μέλη στατιστικών στοιχείων από την πόλη -MembersStatisticsByRegion=Στατιστικά Μελών ανά περιοχή -NbOfMembers=Total number of members -NbOfActiveMembers=Total number of current active members -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. -MembersStatisticsDesc=Επιλέξτε στατιστικά στοιχεία που θέλετε να διαβάσετε ... -MenuMembersStats=Στατιστικά -LastMemberDate=Latest membership date -LatestSubscriptionDate=Latest contribution date -MemberNature=Nature of the member -MembersNature=Nature of the members -Public=Information is public -NewMemberbyWeb=Νέο μέλος πρόσθεσε. Εν αναμονή έγκρισης -NewMemberForm=Νέα μορφή μέλος -SubscriptionsStatistics=Contributions statistics -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=Μετάβαση στην ολοκληρωμένη ηλεκτρονική σελίδα πληρωμής +SubscriptionPayment=Πληρωμή συνδρομής +LastSubscriptionDate=Ημερομηνία τελευταίας πληρωμής συνδρομής +LastSubscriptionAmount=Ποσό τελευταίας συνδρομής +LastMemberType=Τύπος τελευταίου μέλους +MembersStatisticsByCountries=Στατιστικά στοιχεία μελών ανά χώρα +MembersStatisticsByState=Στατιστικά στοιχεία μελών ανά Νομό/Δήμο +MembersStatisticsByTown=Στατιστικά μελών ανά πόλη +MembersStatisticsByRegion=Στατιστικά στοιχεία μελών ανά περιοχή +NbOfMembers=Συνολικός αριθμός μελών +NbOfActiveMembers=Συνολικός αριθμός ενεργών μελών +NoValidatedMemberYet=Δεν βρέθηκαν επικυρωμένα μέλη +MembersByCountryDesc=Αυτή η οθόνη εμφανίζει τα στατιστικά στοιχεία των μελών ανά χώρα. Τα γραφήματα και διαγράμματα εξαρτώνται από τη διαθεσιμότητα της διαδικτυακής υπηρεσίας γραφημάτων της Google καθώς και από τη διαθεσιμότητα μιας λειτουργικής σύνδεσης στο διαδίκτυο. +MembersByStateDesc=Αυτή η οθόνη εμφανίζει στατιστικά στοιχεία μελών ανά Νομό/Δήμο/Κοινότητα. +MembersByTownDesc=Αυτή η οθόνη εμφανίζει στατιστικά των μελών ανά πόλη. +MembersByNature=Αυτή η οθόνη εμφανίζει στατιστικά στοιχεία μελών ανά φύση. +MembersByRegion=Αυτή η οθόνη εμφανίζει στατιστικά μελών ανά περιοχή. +MembersStatisticsDesc=Επιλέξτε στατιστικά στοιχεία που θέλετε να διαβάσετε... +MenuMembersStats=Στατιστικά στοιχεία +LastMemberDate=Ημερομηνία εγγραφής τελευταίου μέλους +LatestSubscriptionDate=Ημερομηνία τελευταίας συνδρομής +MemberNature=Φύση του μέλους +MembersNature=Φύση των μελών +Public=Οι πληροφορίες είναι δημόσιες +NewMemberbyWeb=Προστέθηκε νέο μέλος. Εν αναμονή έγκρισης +NewMemberForm=Φόρμα νέου μέλους +SubscriptionsStatistics=Στατιστικά στοιχεία συνδρομών +NbOfSubscriptions=Αριθμός συνδρομών +AmountOfSubscriptions=Ποσό που εισπράχθηκε από συνδρομές +TurnoverOrBudget=Κύκλος εργασιών (για εταιρεία) ή προϋπολογισμός (για ίδρυμα) +DefaultAmount=Προκαθορισμένο ποσό συνδρομών +CanEditAmount=Ο επισκέπτης μπορεί να επιλέξει/επεξεργαστεί το ποσό της συνεισφοράς του +MEMBER_NEWFORM_PAYONLINE=Μετάβαση στη σελίδα ηλεκτρονικής πληρωμής ByProperties=Εκ ΦΥΣΕΩΣ MembersStatisticsByProperties=Στατιστικά στοιχεία μελών κατά φύση -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=Όνομα ή Επωνυμία -SubscriptionRecorded=Contribution recorded -NoEmailSentToMember=Δεν αποστέλλεται μήνυμα ηλεκτρονικού ταχυδρομείου στο μέλος -EmailSentToMember=Το email αποστέλλεται στο μέλος στο %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=Καταβολή συνδρομής για την τρέχουσα περίοδο (μέχρι %s) +VATToUseForSubscriptions=Συντελεστής ΦΠΑ που χρησιμοποιείται για εισφορές +NoVatOnSubscription=Χωρίς ΦΠΑ για εισφορές +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 μέλος (τα) έκλεισε -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. +XExternalUserCreated=Δημιουργήθηκαν %s εξωτερικοί χρήστες +ForceMemberNature=Επιβολή φύσης μέλους(Άτομο ή Εταιρεία) +CreateDolibarrLoginDesc=Η δημιουργία σύνδεσης χρήστη για τα μέλη τους επιτρέπει να συνδεθούν με την εφαρμογή. Ανάλογα με τις εξουσιοδοτήσεις που χορηγούνται, θα μπορούν, για παράδειγμα, να συμβουλεύονται ή να τροποποιούν οι ίδιοι τα αρχεία τους. +CreateDolibarrThirdPartyDesc=Ένα τρίτο μέρος είναι η νομική οντότητα που θα χρησιμοποιηθεί στο τιμολόγιο εάν αποφασίσετε να δημιουργήσετε τιμολόγιο για κάθε συνδρομή. Θα μπορείτε να το δημιουργήσετε αργότερα κατά τη διαδικασία καταγραφής της συνδρομής. +MemberFirstname=Όνομα μέλους +MemberLastname=Επώνυμο μέλους diff --git a/htdocs/langs/el_GR/modulebuilder.lang b/htdocs/langs/el_GR/modulebuilder.lang index d3d9382dc09..5663900d9fa 100644 --- a/htdocs/langs/el_GR/modulebuilder.lang +++ b/htdocs/langs/el_GR/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=Εισαγάγετε το όνομα της ενότητας / εφαρμογής για να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Εισαγάγετε το όνομα του αντικειμένου που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyObject, Student, Teacher ...). Θα δημιουργηθεί το αρχείο κλάσης CRUD, αλλά και το αρχείο API, οι σελίδες που θα απαριθμήσουν / προσθέσουν / επεξεργαστούν / διαγράψουν το αντικείμενο και τα αρχεία SQL. -ModuleBuilderDesc2=Διαδρομή όπου παράγονται / επεξεργάζονται μονάδες (πρώτος κατάλογος για εξωτερικές μονάδες που ορίζονται στο %s): %s -ModuleBuilderDesc3=Παραγόμενα / επεξεργάσιμα δομοστοιχεία βρέθηκαν: %s -ModuleBuilderDesc4=Μια ενότητα ανιχνεύεται ως 'επεξεργάσιμη' όταν το αρχείο %s υπάρχει στη ρίζα του καταλόγου μονάδων -NewModule=Νέο Άρθρωμα +ModuleBuilderDesc=Αυτό το εργαλείο πρέπει να χρησιμοποιείται μόνο από έμπειρους χρήστες ή προγραμματιστές. Παρέχει βοηθητικά προγράμματα για να δημιουργήσετε ή να επεξεργαστείτε τη δική σας ενότητα. Η τεκμηρίωση για εναλλακτικό τρόπο ανάπτυξης είναι εδώ . +EnterNameOfModuleDesc=Εισάγετε το όνομα της ενότητας/εφαρμογής που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Εισάγετε το όνομα του αντικειμένου που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyObject, Student, Teacher...). Θα δημιουργηθούν, το αρχείο κλάσης CRUD αλλά και το αρχείο API, οι σελίδες για λίστα/προσθήκη/επεξεργασία/διαγραφή αντικειμένου και αρχεία SQL. +EnterNameOfDictionaryDesc=Εισάγετε το όνομα του λεξικού που θέλετε να δημιουργήσετε χωρίς κενά. Χρησιμοποιήστε κεφαλαία για να διαχωρίσετε λέξεις (Για παράδειγμα: MyDico...). Θα δημιουργηθεί το αρχείο κλάσης, αλλά και το αρχείο SQL. +ModuleBuilderDesc2=Διαδρομή όπου δημιουργούνται/επεξεργάζονται οι ενότητες (πρώτος κατάλογος για εξωτερικές ενότητες που ορίζεται σε %s): %s +ModuleBuilderDesc3=Βρέθηκαν δημιουργημένες/επεξεργάσιμες ενότητες: %s +ModuleBuilderDesc4=Μια ενότητα ανιχνεύεται ως "επεξεργάσιμη&" όταν το αρχείο %s υπάρχει στη ρίζα του καταλόγου ενοτήτων +NewModule=Νέα ενότητα NewObjectInModulebuilder=Νέο αντικείμενο -ModuleKey=Πλήκτρο μονάδας -ObjectKey=Πλήκτρο αντικειμένου +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. +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=Δημιουργία εγγράφων -ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here -ModuleIsLive=Αυτή η ενότητα έχει ενεργοποιηθεί. Οποιαδήποτε αλλαγή μπορεί να σπάσει ένα τρέχον ζωντανό χαρακτηριστικό. +BuildPackageDesc=Μπορείτε να δημιουργήσετε ένα πακέτο zip της εφαρμογής σας ώστε να είστε έτοιμοι να το διανείμετε σε οποιαδήποτε έκδοση Dolibarr. Μπορείτε επίσης να το διανείμετε ή να το πουλήσετε σε κάποιο marketplace όπως τo DoliStore.com . +BuildDocumentation=Τεκμηρίωση δημιουργίας πακετου +ModuleIsNotActive=Αυτή η ενότητα δεν έχει ενεργοποιηθεί ακόμα. Μεταβείτε στο %s για να το ενεργοποιήσετε ή κάντε κλικ εδώ +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 για την καρτέλα σημείωσης -PageForContactTab=PHP page for contact tab -PathToModulePackage=Διαδρομή προς φερμουάρ του πακέτου ενότητας / εφαρμογής -PathToModuleDocumentation=Διαδρομή αρχείου τεκμηρίωσης ενότητας / εφαρμογής (%s) -SpaceOrSpecialCharAreNotAllowed=Δεν επιτρέπονται χώροι ή ειδικοί χαρακτήρες. -FileNotYetGenerated=Αρχείο που δεν έχει ακόμα δημιουργηθεί +PageForDocumentTab=Σελίδα PHP για καρτέλα εγγράφου +PageForNoteTab=Σελίδα PHP για καρτέλα σημειώσεων +PageForContactTab=Σελίδα PHP για καρτέλα επαφών +PathToModulePackage=Διαδρομή προς το αρχείο zip του πακέτου της ενότητας/εφαρμογής +PathToModuleDocumentation=Διαδρομή προς το αρχείο τεκμηρίωσης ενότητας/εφαρμογής (%s) +SpaceOrSpecialCharAreNotAllowed=Δεν επιτρέπονται κενά(space) ή ειδικοί χαρακτήρες. +FileNotYetGenerated=Το αρχείο δεν έχει δημιουργηθεί ακόμη RegenerateClassAndSql=Αναγκαστική ενημέρωση των αρχείων .class και .sql RegenerateMissingFiles=Δημιουργία αρχείων που λείπουν SpecificationFile=Αρχείο τεκμηρίωσης -LanguageFile=Αρχείο για τη γλώσσα +LanguageFile=Αρχείο γλώσσας ObjectProperties=Ιδιότητες αντικειμένου -ConfirmDeleteProperty=Είστε βέβαιοι ότι θέλετε να διαγράψετε την ιδιότητα %s ; Αυτό θα αλλάξει τον κώδικα στην τάξη PHP, αλλά και θα αφαιρέσει τη στήλη από τον ορισμό πίνακα του αντικειμένου. -NotNull=Οχι κενό -NotNullDesc=1 = Ορίστε τη βάση δεδομένων σε NOT NULL. -1 = Να επιτρέπονται οι τιμές null και η δύναμη να είναι NULL αν είναι άδειες ('' ή 0). -SearchAll=Χρησιμοποιείται για την αναζήτηση όλων -DatabaseIndex=Δείκτης βάσης δεδομένων -FileAlreadyExists=Το αρχείο%s ήδη υπάρχει -TriggersFile=Αρχείο για τον κωδικό ενεργοποίησης -HooksFile=Αρχείο για τον κωδικό γάντζων -ArrayOfKeyValues=Διάταξη πλήκτρου-κύματος -ArrayOfKeyValuesDesc=Πλαίσιο κλειδιών και τιμών αν το πεδίο είναι μια λίστα συνδυασμών με σταθερές τιμές -WidgetFile=Αρχείο εικονοστοιχείων -CSSFile=CSS +ConfirmDeleteProperty=Είστε σίγουροι ότι θέλετε να διαγράψετε την ιδιότητα %s; Αυτό θα αλλάξει τον κώδικα στην κλαση PHP αλλά και θα αφαιρέσει τη στήλη από τον πίνακα ορισμού του αντικειμένου. +NotNull=Not NULL +NotNullDesc=1=Ορίστε τη βάση δεδομένων σε NOT NULL, 0=Να επιτρέπονται null τιμές, -1=Να επιτρέπονται null τιμές επιβάλλοντας την τιμή σε NULL εάν είναι κενή ('' ή 0) +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) -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 +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 στο αρχείο περιγραφής του module. Μπορείτε να επεξεργαστείτε χειροκίνητα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή.

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

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

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

    Σημείωση: Μόλις καθοριστεί (και ενεργοποιηθεί ξανά η ενότητα), τα μενού είναι επίσης ορατά στο πρόγραμμα επεξεργασίας μενού που είναι διαθέσιμο στους διαχειριστές στο %s. +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=Μπορείτε να χρησιμοποιήσετε εδώ ένα κλειδί που είναι το κλειδί μετάφρασης που βρίσκεται στο αρχείο γλώσσας (δείτε την καρτέλα "Γλώσσες") -DropTableIfEmpty=(Destroy table if empty) +YouCanUseTranslationKey=Μπορείτε να χρησιμοποιήσετε εδώ ένα κλειδί που είναι το κλειδί μετάφρασης που βρίσκεται στο αρχείο γλώσσας (δείτε την καρτέλα "Γλώσσες") +DropTableIfEmpty=(Διαγράψτε τον πίνακα αν είναι άδειος) TableDoesNotExists=Ο πίνακας %s δεν υπάρχει TableDropped=Ο πίνακας %s διαγράφηκε -InitStructureFromExistingTable=Δημιουργήστε τη συμβολοσειρά συστοιχιών δομής ενός υπάρχοντος πίνακα -UseAboutPage=Απενεργοποιήστε τη σελίδα περίπου +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=Κλειδί για επεξήγηση εργαλείου -CSSClass=CSS for edit/create form -CSSViewClass=CSS for read form -CSSListClass=CSS for list -NotEditable=Δεν είναι δυνατή η επεξεργασία +IncludeRefGeneration=Η αναφορά του αντικειμένου πρέπει να δημιουργείται αυτόματα από προσαρμοσμένους κανόνες αρίθμησης +IncludeRefGenerationHelp=Επιλέξτε αυτό εάν θέλετε να συμπεριλάβετε κώδικα για τη διαχείριση της αυτόματης δημιουργίας αναφοράς χρησιμοποιώντας προσαρμοσμένους κανόνες αρίθμησης +IncludeDocGeneration=Θέλω να δημιουργήσω ορισμένα έγγραφα από πρότυπα για το αντικείμενο +IncludeDocGenerationHelp=Εάν το επιλέξετε, θα δημιουργηθεί κάποιος κώδικας για να προσθέσετε ένα πλαίσιο "Δημιουργία εγγράφου" στην εγγραφή. +ShowOnCombobox=Εμφάνιση τιμής στο combobox +KeyForTooltip=Κλειδί αναδυόμενου πλαισίου επεξήγησης(tooltip) +CSSClass=CSS για επεξεργασία/δημιουργία φόρμας +CSSViewClass=CSS για φόρμα ανάγνωσης +CSSListClass=CSS για λίστα +NotEditable=Μη επεξεργάσιμο ForeignKey=Ξένο κλειδί -TypeOfFieldsHelp=Τύπος πεδίων:
    varchar (99), διπλό (24,8), πραγματικό, κείμενο, html, datetime, timestamp, ακέραιος, ακέραιος: ClassName: relativepath / to / classfile.class.php [: 1 [: filter] προσθέτουμε ένα κουμπί + μετά το σύνθετο για να δημιουργήσουμε την εγγραφή, το 'φίλτρο' μπορεί να είναι 'status = 1 AND fk_user = __USER_ID ΚΑΙ η οντότητα IN (__SHARED_ENTITIES__)' για παράδειγμα) +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=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 +TableNotEmptyDropCanceled=Ο πίνακας δεν είναι άδειος. Η διαγραφή ακυρώθηκε. +ModuleBuilderNotAllowed=Το εργαλείο δημιουργίας ενοτήτων(module builder) είναι διαθέσιμο αλλά δεν επιτρέπεται στον χρήστη σας. +ImportExportProfiles=Προφίλ εισαγωγής και εξαγωγής +ValidateModBuilderDesc=Ορίστε το σε 1 εάν θέλετε να καλείται η μέθοδος $this->validateField() του αντικειμένου για την επικύρωση του περιεχομένου του πεδίου κατά την εισαγωγή ή την ενημέρωση. Ορίστε σε 0 εάν δεν απαιτείται επικύρωση. +WarningDatabaseIsNotUpdated=Προειδοποίηση: Η βάση δεδομένων δεν ενημερώνεται αυτόματα, πρέπει να διαγράψετε τους πίνακες και να απενεργοποιήσετε-ενεργοποιήσετε την ενότητα για την αναδημιουργία πινάκων +LinkToParentMenu=Γονικό μενού (fk_xxxxmenu) +ListOfTabsEntries=Λίστα καταχωρήσεων καρτελών +TabsDefDesc=Ορίστε εδώ τις καρτέλες που παρέχονται από την ενότητα σας +TabsDefDescTooltip=Οι καρτέλες που παρέχονται από την ενότητα/εφαρμογή σας ορίζονται στον πίνακα $this->tabs στο αρχείο περιγραφής της ενότητας. Μπορείτε να επεξεργαστείτε μη αυτόματα αυτό το αρχείο ή να χρησιμοποιήσετε τον ενσωματωμένο επεξεργαστή. +BadValueForType=Λάθος τιμή για τον τύπο %s diff --git a/htdocs/langs/el_GR/mrp.lang b/htdocs/langs/el_GR/mrp.lang index ff6820785f6..ef1ec64f668 100644 --- a/htdocs/langs/el_GR/mrp.lang +++ b/htdocs/langs/el_GR/mrp.lang @@ -1,109 +1,114 @@ -Mrp=Παραγγελίες Παραγωγής -MOs=Manufacturing orders -ManufacturingOrder=Manufacturing Order -MRPDescription=Ενότητα για τη διαχείριση της παραγωγής και των Παραγγελιών Παραγωγής (MO). -MRPArea=Περιοχή MRP -MrpSetupPage=Ρύθμιση της μονάδας MRP -MenuBOM=Λογαριασμοί υλικού -LatestBOMModified=Τελευταία %s Τροποποιημένα λογαριασμοί -LatestMOModified=Οι τελευταίες %s Παραγγελίες Παραγωγής τροποποιήθηκαν -Bom=Λογαριασμοί υλικού -BillOfMaterials=Bill of Materials -BillOfMaterialsLines=Bill of Materials lines -BOMsSetup=Ρύθμιση του BOM της μονάδας -ListOfBOMs=Κατάλογος λογαριασμών υλικού - 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. +Mrp=Εντολές Παραγωγής +MOs=Εντολές Παραγωγής +ManufacturingOrder=Εντολή Παραγωγής +MRPDescription=Ενότητα για τη διαχείριση της παραγωγής και των Εντολών Παραγωγής (MO). +MRPArea=Τομέας MRP +MrpSetupPage=Ρύθμιση της ενότητας MRP +MenuBOM=Κατάλογοι Υλικών +LatestBOMModified=Τελευταίοι %s τροποποιημένοι Κατάλογοι Υλικών +LatestMOModified=Οι τελευταίες %s τροποποιημένες Εντολές Παραγωγής +Bom=Κατάλογοι Υλικών +BillOfMaterials=Κατάλογος Υλικών +BillOfMaterialsLines=Γραμμές Κατάλογου Υλικών +BOMsSetup=Ρύθμιση της ενότητας BOM +ListOfBOMs=Λίστα Καταλογών Υλικών - BOM +ListOfManufacturingOrders=Κατάλογος Εντολών Παραγωγής +NewBOM=Νέος κατάλογος υλικών +ProductBOMHelp=Προϊόν για δημιουργία (ή αποσυναρμολόγηση) με αυτό το BOM.
    Σημείωση: Τα προϊόντα με την ιδιότητα «Φύση προϊόντος» = «Πρώτη ύλη» δεν είναι ορατά σε αυτήν τη λίστα. BOMsNumberingModules=Πρότυπα αρίθμησης BOM BOMsModelModule=Πρότυπα εγγράφων BOM -MOsNumberingModules=Μοντέλα αρίθμησης MO +MOsNumberingModules=Πρότυπα αρίθμησης MO MOsModelModule=Πρότυπα εγγράφων MO -FreeLegalTextOnBOMs=Ελεύθερο κείμενο στο έγγραφο του BOM -WatermarkOnDraftBOMs=Υδατογράφημα σε σχέδιο BOM +FreeLegalTextOnBOMs=Ελεύθερο κείμενο σε έγγραφο του BOM +WatermarkOnDraftBOMs=Υδατογράφημα σε προσχέδιο BOM FreeLegalTextOnMOs=Ελεύθερο κείμενο σε έγγραφο της MO -WatermarkOnDraftMOs=Υδατογράφημα στο σχέδιο ΜΟ -ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? -ConfirmCloneMo=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την Παραγγελία Παραγωγής %s? -ManufacturingEfficiency=Αποτελεσματικότητα κατασκευής -ConsumptionEfficiency=Απόδοση κατανάλωσης -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly -ValueOfMeansLossForProductProduced=Η τιμή 0,95 σημαίνει κατά μέσο όρο απώλεια παραγόμενου προϊόντος 5%% -DeleteBillOfMaterials=Διαγραφή λογαριασμού υλικών -DeleteMo=Διαγραφή Παραγγελίας Παραγωγής -ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? -MenuMRP=Παραγγελίες Παραγωγής -NewMO=Νέα Παραγγελία Παραγωγής +WatermarkOnDraftMOs=Υδατογράφημα σε προσχέδιο της ΜΟ +ConfirmCloneBillOfMaterials=Είστε σίγουροι ότι θέλετε να κλωνοποιήσετε τον κατάλογο υλικών %s; +ConfirmCloneMo=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την Εντολή Παραγωγής %s; +ManufacturingEfficiency=Αποτελεσματικότητα παραγωγής +ConsumptionEfficiency=Αποτελεσματικότητα κατανάλωσης +ValueOfMeansLoss=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% κατά την κατασκευή ή την αποσυναρμολόγηση +ValueOfMeansLossForProductProduced=Η τιμή 0,95 σημαίνει μέση απώλεια 5%% του παραγόμενου προϊόντος +DeleteBillOfMaterials=Διαγραφή κατάλογου υλικών +DeleteMo=Διαγραφή Εντολής Παραγωγής +ConfirmDeleteBillOfMaterials=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό τον Κατάλογο Υλικών; +ConfirmDeleteMo=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την Εντολή Παραγωγής; +MenuMRP=Εντολές Παραγωγής +NewMO=Νέα Εντολή Παραγωγής QtyToProduce=Ποσότητα για παραγωγή -DateStartPlannedMo=Η έναρξη της προγραμματισμένης ημερομηνίας -DateEndPlannedMo=Η ημερομηνία λήξης προγραμματισμένη -KeepEmptyForAsap=Άδειο σημαίνει 'όσο το δυνατόν συντομότερα' +DateStartPlannedMo=Ημερομηνία έναρξης προγραμματισμένης Εντολής Παραγωγής +DateEndPlannedMo=Ημερομηνία λήξης της προγραμματισμένης Εντολής Παραγωγής +KeepEmptyForAsap=Κενό σημαίνει "Όσο το δυνατόν συντομότερα" EstimatedDuration=Εκτιμώμενη Διάρκεια -EstimatedDurationDesc=Estimated duration to manufacture (or disassemble) this product using this BOM -ConfirmValidateBom=Είστε βέβαιοι ότι θέλετε να επικυρώσετε το BOM με την αναφορά %s (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Παραγγελίες Παραγωγής) -ConfirmCloseBom=Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτό το BOM (δεν θα μπορείτε πλέον να το χρησιμοποιήσετε για να δημιουργήσετε νέες Παραγγελίες Παραγωγής); -ConfirmReopenBom=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το BOM (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Παραγγελίες Παραγωγής) -StatusMOProduced=Παράγεται +EstimatedDurationDesc=Εκτιμώμενη διάρκεια για την κατασκευή (ή την αποσυναρμολόγηση) αυτού του προϊόντος χρησιμοποιώντας αυτό το BOM +ConfirmValidateBom=Είστε σίγουροι ότι θέλετε να επικυρώσετε το BOM με την αναφορά %s ;(θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) +ConfirmCloseBom=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτό το BOM; (δεν θα μπορείτε πλέον να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) +ConfirmReopenBom=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το BOM; (θα μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε νέες Εντολές Παραγωγής) +StatusMOProduced=Παράχθηκε QtyFrozen=Κατεψυγμένη ποσότητα QuantityFrozen=Κατεψυγμένη ποσότητα -QuantityConsumedInvariable=Όταν αυτή η σημαία έχει οριστεί, η ποσότητα που καταναλώνεται είναι πάντα η καθορισμένη τιμή και δεν είναι σχετική με την παραγόμενη ποσότητα. -DisableStockChange=Η αλλαγή μετοχών απενεργοποιήθηκε -DisableStockChangeHelp=Όταν αυτή η σημαία έχει οριστεί, δεν υπάρχει αλλαγή στο απόθεμα αυτού του προϊόντος, ανεξάρτητα από την παραγόμενη ποσότητα -BomAndBomLines=Λογαριασμοί υλικού και γραμμών +QuantityConsumedInvariable=Όταν αυτό επισημανθεί, η ποσότητα που καταναλώνεται είναι πάντα η καθορισμένη τιμή και δεν είναι σχετική με την ποσότητα που παράγεται. +DisableStockChange=Η αλλαγή αποθέματος απενεργοποιήθηκε +DisableStockChangeHelp=Όταν αυτό επισημανθεί, δεν υπάρχει αλλαγή αποθέματος σε αυτό το προϊόν, όποια και αν είναι η ποσότητα που καταναλώθηκε +BomAndBomLines=Κατάλογοι Υλικών και Γραμμές BOMLine=Γραμμή BOM WarehouseForProduction=Αποθήκη για παραγωγή CreateMO=Δημιουργία MO ToConsume=Προς κατανάλωση ToProduce=Προς παραγωγή -ToObtain=To obtain +ToObtain=Προς απόκτηση QtyAlreadyConsumed=Η ποσότητα καταναλώθηκε ήδη QtyAlreadyProduced=Η ποσότητα έχει ήδη παραχθεί -QtyRequiredIfNoLoss=Απαιτείται ποσότητα αν δεν υπάρχει απώλεια (Η απόδοση κατασκευής είναι 100%%) -ConsumeOrProduce=Καταναλώστε ή παράγετε -ConsumeAndProduceAll=Καταναλώστε και παράξτε όλα +QtyRequiredIfNoLoss=Ποσότητα που απαιτείται εάν δεν υπάρχει απώλεια (η απόδοση κατασκευής είναι 100%%) +ConsumeOrProduce=Καταναλώστε ή Παράγετε +ConsumeAndProduceAll=Καταναλώστε και παράξτε τα όλα Manufactured=Κατασκευάστηκε -TheProductXIsAlreadyTheProductToProduce=Το προϊόν που προστέθηκε είναι ήδη το προϊόν που παράγεται. +TheProductXIsAlreadyTheProductToProduce=Το προϊόν που πρέπει να προστεθεί είναι ήδη το προϊόν προς παραγωγή. ForAQuantityOf=Για ποσότητα παραγωγής %s -ForAQuantityToConsumeOf=For a quantity to disassemble of %s -ConfirmValidateMo=Είστε βέβαιοι ότι θέλετε να επαληθεύσετε αυτή τη παραγγελία κατασκευής; -ConfirmProductionDesc=Κάνοντας κλικ στο '%s', θα επαληθεύσετε την κατανάλωση ή / και την παραγωγή για τις καθορισμένες ποσότητες. Αυτό θα ενημερώσει επίσης τις μεταβολές αποθεμάτων και θα καταγράψει τις κινήσεις αποθεμάτων. +ForAQuantityToConsumeOf=Για μια ποσότητα προς αποσυναρμολόγηση του %s +ConfirmValidateMo=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτή την Εντολή Παραγωγής; +ConfirmProductionDesc=Κάνοντας κλικ στο '%s', θα επικυρώσετε την κατανάλωση ή/και την παραγωγή για τις ποσότητες που έχουν καθοριστεί. Αυτό θα ενημερώσει επίσης το απόθεμα και θα καταγράψει τις κινήσεις των αποθεμάτων. ProductionForRef=Παραγωγή του %s -AutoCloseMO=Αυτόματo κλείσιμο της Παραγγελίας Παραγωγής εάν επιτευχθούν οι ποσότητες για κατανάλωση και παραγωγή +CancelProductionForRef=Ακύρωση μείωσης του αποθέματος προϊόντος για το προϊόν %s +TooltipDeleteAndRevertStockMovement=Διαγράψτε τη γραμμή και επαναφέρετε την κίνηση των αποθεμάτων +AutoCloseMO=Αυτόματο κλείσιμο της Εντολής Παραγωγής εάν επιτευχθούν οι ποσότητες για κατανάλωση και παραγωγή NoStockChangeOnServices=Καμία αλλαγή αποθέματος στις υπηρεσίες -ProductQtyToConsumeByMO=Ποσότητα προϊόντος ακόμα για κατανάλωση από ανοικτό MO -ProductQtyToProduceByMO=Product quantity still to produce by open MO -AddNewConsumeLines=Προσθέστε νέα γραμμή για κατανάλωση -AddNewProduceLines=Add new line to produce +ProductQtyToConsumeByMO=Ποσότητα προϊόντος που δεν έχει καταναλωθεί ακόμα από την ανοιχτή MO +ProductQtyToProduceByMO=Ποσότητα προϊόντος που δεν έχει παραχθεί ακόμη από την ανοιχτή ΜΟ +AddNewConsumeLines=Προσθήκη νέας γραμμής για κατανάλωση +AddNewProduceLines=Προσθήκη νέας γραμμής για παραγωγή 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. -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 +BOMTotalCost=Το κόστος για την παραγωγή αυτού του BOM με βάση το κόστος κάθε ποσότητας και προϊόντος προς κατανάλωση (χρησιμοποιήστε την τιμή κόστους εάν έχει οριστεί, διαφορετικά τη μέση σταθμισμένη τιμή εάν έχει οριστεί, διαφορετικά την καλύτερη τιμή αγοράς) +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=Μπορείτε να ορίσετε την προεπιλεγμένη εμφάνιση των λεπτομερειών της ονοματολογίας στη διαμόρφωση της μονάδας BOM +MOAndLines=Εντολές και γραμμές παραγωγής +MoChildGenerate=Δημιουργία θυγατρικού Mo +ParentMo=Γονικό MO +MOChild=MO Παιδί diff --git a/htdocs/langs/el_GR/multicurrency.lang b/htdocs/langs/el_GR/multicurrency.lang index 935d1ba45a6..0efa33698b9 100644 --- a/htdocs/langs/el_GR/multicurrency.lang +++ b/htdocs/langs/el_GR/multicurrency.lang @@ -1,22 +1,38 @@ # Dolibarr language file - Source file is en_US - multicurrency MultiCurrency=Πολλαπλό νόμισμα -ErrorAddRateFail=Σφάλμα στο προστιθέμενο ποσοστό +ErrorAddRateFail=Σφάλμα στην προστιθέμενη ισοτιμία ErrorAddCurrencyFail=Σφάλμα στο προστιθέμενο νόμισμα ErrorDeleteCurrencyFail=Σφάλμα κατάργησης διαγραφής multicurrency_syncronize_error=Σφάλμα συγχρονισμού: %s MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Χρησιμοποιήστε την ημερομηνία του εγγράφου για να βρείτε την ισοτιμία του νομίσματος, αντί να χρησιμοποιήσετε την τελευταία γνωστή τιμή -multicurrency_useOriginTx=Όταν ένα αντικείμενο δημιουργείται από άλλο, διατηρήστε τον αρχικό ρυθμό από το αντικείμενο προέλευσης (διαφορετικά χρησιμοποιήστε την τελευταία γνωστή τιμή) +multicurrency_useOriginTx=Όταν ένα αντικείμενο δημιουργείται από ένα άλλο, διατηρήστε την αρχική ισοτιμία από το αντικείμενο προέλευσης (διαφορετικά χρησιμοποιήστε την τελευταία γνωστή τιμή) CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=Πρέπει να δημιουργήσετε έναν λογαριασμό στον ιστότοπο %s για να χρησιμοποιήσετε αυτήν τη λειτουργία.
    Αποκτήστε το κλειδί API .
    Εάν χρησιμοποιείτε έναν δωρεάν λογαριασμό, δεν μπορείτε να αλλάξετε το νόμισμα προέλευσης (από προεπιλογή το USD).
    Εάν το κύριο νόμισμά σας δεν είναι δολάρια ΗΠΑ, η εφαρμογή θα υπολογίσει αυτόματα τον υπολογισμό.

    Είστε περιορισμένοι σε 1000 συγχρονισμούς ανά μήνα. -multicurrency_appId=API κλειδί -multicurrency_appCurrencySource=Πηγή νόμισμα +CurrencyLayerAccount_help_to_synchronize=Πρέπει να δημιουργήσετε έναν λογαριασμό στον ιστότοπο %s για να χρησιμοποιήσετε αυτήν τη λειτουργία.
    Αποκτήστε το κλειδί API .
    Εάν χρησιμοποιείτε έναν δωρεάν λογαριασμό, δεν μπορείτε να αλλάξετε το νόμισμα προέλευσης (από προεπιλογή ειναι το USD).
    Εάν το κύριο νόμισμά σας δεν είναι δολάρια ΗΠΑ, η εφαρμογή θα το υπολογίσει αυτόματα.

    Είστε περιορισμένοι σε 1000 συγχρονισμούς ανά μήνα. +multicurrency_appId=Κλειδί API +multicurrency_appCurrencySource=Νόμισμα προέλευσης multicurrency_alternateCurrencySource=Εναλλασσόμενο νόμισμα προέλευσης CurrenciesUsed=Χρησιμοποιούμενα νομίσματα -CurrenciesUsed_help_to_add=Προσθέστε τα διαφορετικά νομίσματα και τα ποσοστά που πρέπει να χρησιμοποιήσετε για τις προτάσεις σας, παραγγελίες κλπ. -rate=τιμή +CurrenciesUsed_help_to_add=Προσθέστε τα διαφορετικά νομίσματα και ισοτιμίες που θέλετε να χρησιμοποιήσετε για τις προτάσεις σας, παραγγελίες κλπ. +rate=ισοτιμία MulticurrencyReceived=Λήφθηκε, αρχικό νόμισμα -MulticurrencyRemainderToTake=Το υπόλοιπο ποσό, το αρχικό νόμισμα +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/el_GR/oauth.lang b/htdocs/langs/el_GR/oauth.lang index 53adeb180f3..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_STRIPE_TEST_NAME=OAuth Stripe Test -OAUTH_STRIPE_LIVE_NAME=OAuth Stripe Live +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_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 e0f0e2ae1b4..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=Οι ψηφοφόροι μπορούν να σχολιάσουν στη δημοσκόπηση -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. -CanSeeOthersVote=Οι ψηφοφόροι μπορούν να δουν την ψήφο άλλων -SelectDayDesc=Για κάθε επιλεγμένη ημέρα, μπορείτε να επιλέξετε ή όχι τις ώρες συνάντησης με την ακόλουθη μορφή:
    - άδειο,
    - "8h", "8H" ή "8:00" για να δώσετε μια ώρα έναρξης της συνάντησης,
    - "8-11", "8h-11h", "8H-11H" ή "8: 00-11: 00" για την ώρα έναρξης και λήξης μιας σύσκεψης,
    - "8h15-11h15", "8H15-11H15" ή "8: 15-11: 15" για το ίδιο πράγμα αλλά με λεπτά. +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" το ίδιο με το προηγούμενο αλλά με λεπτά. 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 b9c4caa0fcb..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,62 +13,64 @@ OrderDateShort=Ημερομηνία παραγγελίας OrderToProcess=Παραγγελία προς επεξεργασία NewOrder=Νέα παραγγελία NewSupplierOrderShort=Νέα παραγγελία -NewOrderSupplier=Νέα εντολή αγοράς -ToOrder=Δημιουργία πραγγελίας +NewOrderSupplier=Νέα Παραγγελία Αγοράς +ToOrder=Δημιουργία παραγγελίας MakeOrder=Δημιουργία παραγγελίας SupplierOrder=Παραγγελία αγοράς -SuppliersOrders=Εντολές αγοράς -SaleOrderLines=Sales order lines -PurchaseOrderLines=Puchase order lines -SuppliersOrdersRunning=Τρέχουσες εντολές αγοράς -CustomerOrder=Παραγγελία πώλησης -CustomersOrders=Παραγγελίες πωλήσεων -CustomersOrdersRunning=Τρέχουσες παραγγελίες πωλήσεων -CustomersOrdersAndOrdersLines=Παραγγελίες πωλήσεων και λεπτομέρειες παραγγελίας -OrdersDeliveredToBill=Παραγγελίες πωλήσεων που παραδίδονται στο λογαριασμό -OrdersToBill=Παραγγελίες πωλήσεων που παραδόθηκαν -OrdersInProcess=Παραγγελίες πωλήσεων σε εξέλιξη -OrdersToProcess=Παραγγελίες πωλήσεων για επεξεργασία +SuppliersOrders=Παραγγελίες αγοράς +SaleOrderLines=Γραμμές εντολών πωλήσεων +PurchaseOrderLines=Γραμμές παραγγελιών αγοράς +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=Χρήστης για έγκριση +UserApproval2=Χρήστης για έγκριση (δεύτερο επίπεδο) ValidateOrder=Επικύρωση παραγγελίας UnvalidateOrder=Κατάργηση επικύρωσης παραγγελίας DeleteOrder=Διαγραφή παραγγελίας @@ -75,122 +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=Χαρακτηρισμός ως παραδοτέο +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=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=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=Bill receptions -NoOrdersToInvoice=Δεν υπάρχουν τιμολογημένες παραγγελίες -CloseProcessedOrdersAutomatically=Χαρακτηρίστε σε «εξέλιξη» όλες τις επιλεγμένες παραγγελίες. +PDFEinsteinDescription=Ένα πλήρες μοντέλο παραγγελιών (παλιά εφαρμογή του προτύπου Eratosthene) +PDFEratostheneDescription=Ένα πλήρες μοντέλο παραγγελιών +PDFEdisonDescription=Ένα απλό πρότυπο παραγγελιών +PDFProformaDescription=Ένα πλήρες πρότυπο προτιμολογίου (Proforma) +CreateInvoiceForThisCustomer=Τιμολόγηση παραγγελιών +CreateInvoiceForThisSupplier=Τιμολόγηση παραγγελιών +CreateInvoiceForThisReceptions=Παραλαβές προς τιμολόγηση +NoOrdersToInvoice=Δεν υπάρχουν παραγγελίες προς τιμολόγηση +CloseProcessedOrdersAutomatically=Ταξινομήστε "Επεξεργασμένες" όλες τις επιλεγμένες παραγγελίες. OrderCreation=Δημιουργία Παραγγελίας -Ordered=Παραγγελια +Ordered=Παραγγελίες OrderCreated=Οι παραγγελίες σας έχουν δημιουργηθεί OrderFail=Ένα σφάλμα συνέβη κατά τη δημιουργία των παραγγελιών CreateOrders=Δημιουργία παραγγελιών ToBillSeveralOrderSelectCustomer=Για να δημιουργήσετε ένα τιμολόγιο για αρκετές παραγγελίες, κάντε κλικ πρώτα στον πελάτη, στη συνέχεια, επιλέξτε "%s". -OptionToSetOrderBilledNotEnabled=Η επιλογή από την ενότητα "Ροή εργασίας", για να ορίσετε αυτόματα την εντολή "Χρεώνεται" όταν επικυρωθεί το τιμολόγιο, δεν είναι ενεργοποιημένη, επομένως θα πρέπει να ρυθμίσετε την κατάσταση των παραγγελιών σε "Χρεωμένο" μη αυτόματα μετά την παράδοση του τιμολογίου. -IfValidateInvoiceIsNoOrderStayUnbilled=Εάν η επικύρωση τιμολογίου είναι "Όχι", η παραγγελία θα παραμείνει στην κατάσταση "Unbilled" μέχρι να επικυρωθεί το τιμολόγιο. -CloseReceivedSupplierOrdersAutomatically=Κλείστε τη σειρά για την κατάσταση "%s" αυτόματα αν ληφθούν όλα τα προϊόντα. -SetShippingMode=Ορίστε τη λειτουργία αποστολής -WithReceptionFinished=Με την ολοκλήρωση της λήψης +OptionToSetOrderBilledNotEnabled=Η επιλογή από την ενότητα Ροής εργασιών, για να ορίσετε την παραγγελία ως "Τιμολογημένη" αυτόματα όταν επικυρώνεται το τιμολόγιο, δεν είναι ενεργοποιημένη, επομένως θα πρέπει να ορίσετε την κατάσταση των παραγγελιών ως "Τιμολογημένες" χειροκίνητα μετά τη δημιουργία του τιμολογίου. +IfValidateInvoiceIsNoOrderStayUnbilled=Εάν η επικύρωση τιμολογίου είναι «Όχι», η παραγγελία θα παραμείνει στην κατάσταση «Μη τιμολογημένη» μέχρι να επικυρωθεί το τιμολόγιο. +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 22d026de39d..fe2005d7daa 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -12,90 +12,90 @@ MonthOfInvoice=Μήνας (αριθμός 1-12) της ημερομηνίας τ TextMonthOfInvoice=Μήνας (κείμενο) της ημερομηνίας του τιμολογίου PreviousMonthOfInvoice=Προηγούμενος μήνας (αριθμός 1-12) της ημερομηνίας του τιμολογίου TextPreviousMonthOfInvoice=Προηγούμενος μήνας (κείμενο) της ημερομηνίας του τιμολογίου -NextMonthOfInvoice=Μετά τον μήνα (αριθμός 1-12) της ημερομηνίας του τιμολογίου -TextNextMonthOfInvoice=Μετά τον μήνα (κείμενο) της ημερομηνίας του τιμολογίου -PreviousMonth=Previous month -CurrentMonth=Current month -ZipFileGeneratedInto=Το αρχείο Zip δημιουργήθηκε σε %s . -DocFileGeneratedInto=Το αρχείο Doc δημιουργήθηκε σε %s . -JumpToLogin=Ασύνδετος. Μετάβαση στη σελίδα σύνδεσης ... -MessageForm=Μήνυμα σε ηλεκτρονική φόρμα πληρωμής +NextMonthOfInvoice=Επόμενος μήνας (αριθμός 1-12) της ημερομηνίας τιμολογίου +TextNextMonthOfInvoice=Επόμενος μήνας (κείμενο) ημερομηνίας τιμολογίου +PreviousMonth=Προηγούμενος μήνας +CurrentMonth=Τρέχων μήνας +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=Τελευταίες δημοσιεύσεις ιστολογίου -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail +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_REFUSED=Η πρόσφορα πελάτη έκλεισε, απορρίφθηκε +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_ACTION_CREATE=Added action to Agenda +Notify_EXPENSE_REPORT_VALIDATE=Η αναφορά εξόδων επικυρώθηκε (απαιτείται έγκριση) +Notify_EXPENSE_REPORT_APPROVE=Η αναφορά εξόδων εγκρίθηκε +Notify_HOLIDAY_VALIDATE=Το αίτημα άδειας επικυρώθηκε (απαιτείται έγκριση) +Notify_HOLIDAY_APPROVE=Το αίτημα άδειας εγκρίθηκε +Notify_ACTION_CREATE=Προστέθηκε ενέργεια στην Ατζέντα SeeModuleSetup=Δείτε την ρύθμιση του module %s -NbOfAttachedFiles=Πλήθος επισυναπτώμενων αρχείων/εγγράφων -TotalSizeOfAttachedFiles=Συνολικό μέγεθος επισυναπτώμενων αρχείων/εγγράφων +NbOfAttachedFiles=Αριθμός συνημμένων αρχείων/εγγράφων +TotalSizeOfAttachedFiles=Συνολικό μέγεθος συνημμένων αρχείων/εγγράφων MaxSize=Μέγιστο μέγεθος AttachANewFile=Επισύναψη νέου αρχείου/εγγράφου -LinkedObject=Συνδεδεμένα αντικείμενα -NbOfActiveNotifications=Αριθμός ειδοποιήσεων (αριθμός μηνυμάτων ηλεκτρονικού ταχυδρομείου παραλήπτη) -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=__ (Γεια σας) __ __ (ειλικρινά) __ __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__ +LinkedObject=Συνδεδεμένο αντικείμενο +NbOfActiveNotifications=Αριθμός ειδοποιήσεων (αριθμός ληφθέντων μηνυμάτων email) +PredefinedMailTest=__(Hello)__\nΑυτό είναι ένα δοκιμαστικό μήνυμα που στάλθηκε στη διεύθυνση __EMAIL__.\nΟι γραμμές χωρίζονται με επιστροφή φορέα.\n\n__USER_SGNATURE__ +PredefinedMailTestHtml=__(Hello)__
    Αυτή είναι μια δοκιμαστική αλληλογραφία στη διεύθυνση __EMAIL__ (η λέξη δοκιμαστική πρέπει να είναι με έντονη γραφή).
    Οι γραμμές χωρίζονται με επιστροφή φορέα.

    __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=__ (Γεια σας) __ Βρείτε εντολή __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ PredefinedMailContentSendSupplierOrder=__ (Γεια σας) __ Βρείτε την παραγγελία σας __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__ (Γεια σας) __ Βρείτε το τιμολόγιο __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ @@ -103,21 +103,21 @@ PredefinedMailContentSendShipping=__ (Γεια σας) __ Παρακαλούμε PredefinedMailContentSendFichInter=__ (Γεια σας) __ Βρείτε την παρέμβαση __REF__ επισυνάπτεται __ (ειλικρινά) __ __USER_SIGNATURE__ PredefinedMailContentLink=Μπορείτε να κάνετε κλικ στον παρακάτω σύνδεσμο για να πραγματοποιήσετε την πληρωμή σας, αν δεν έχει γίνει ήδη. %s PredefinedMailContentGeneric=__ (Γεια σας) __ __ (ειλικρινά) __ __USER_SIGNATURE__ -PredefinedMailContentSendActionComm=Event reminder "__EVENT_LABEL__" on __EVENT_DATE__ at __EVENT_TIME__

    This is an automatic message, please do not reply. -DemoDesc=Το Dolibarr είναι ένα συμπαγές ERP / CRM που υποστηρίζει διάφορες λειτουργικές μονάδες. Ένα demo που παρουσιάζει όλες τις μονάδες δεν έχει νόημα καθώς το σενάριο αυτό δεν εμφανίζεται ποτέ (αρκετές εκατοντάδες διαθέσιμες). Έτσι, πολλά προφίλ επίδειξης είναι διαθέσιμα. +PredefinedMailContentSendActionComm=Υπενθύμιση συμβάντος "__EVENT_LABEL__" στην __EVENT_DATE__ στις __EVENT_TIME__

    Αυτό είναι ένα αυτόματο μήνυμα, μην απαντήσετε. +DemoDesc=Το Dolibarr είναι ένα συμπαγές ERP/CRM που υποστηρίζει πολλές επιχειρηματικές ενότητες. Μια επίδειξη που παρουσιάζει όλες τις ενότητες δεν έχει νόημα, καθώς αυτό το σενάριο δεν συμβαίνει ποτέ (πολλές εκατοντάδες διαθέσιμες). Έτσι, πολλά προφίλ επίδειξης είναι διαθέσιμα. ChooseYourDemoProfil=Επιλέξτε το προφίλ επίδειξης που ταιριάζει καλύτερα στις ανάγκες σας ... -ChooseYourDemoProfilMore=... ή να δημιουργήσετε το δικό σας προφίλ
    (επιλογή χειροκίνητης μονάδας) -DemoFundation=Διαχειριστείτε τα μέλη του ιδρύματος -DemoFundation2=Διαχειριστείτε τα μέλη και τον τραπεζικό λογαριασμό του ιδρύματος -DemoCompanyServiceOnly=Εταιρική ή ανεξάρτητη υπηρεσία πώλησης -DemoCompanyShopWithCashDesk=Διαχειριστείτε το κατάστημα με ένα ταμείο +ChooseYourDemoProfilMore=...ή δημιουργήστε το δικό σας προφίλ
    (μη αυτόματη επιλογή ενότητας) +DemoFundation=Διαχείριση μελών ενός ιδρύματος +DemoFundation2=Διαχείριση μελών και τραπεζικού λογαριασμού ενός ιδρύματος +DemoCompanyServiceOnly=Εταιρική ή ανεξάρτητη υπηρεσία πώλησης μόνο +DemoCompanyShopWithCashDesk=Διαχειριστείτε ένα κατάστημα με ταμείο DemoCompanyProductAndStocks=Κατάστημα πώλησης προϊόντων με σημείο πώλησης DemoCompanyManufacturing=Εταιρεία κατασκευής προϊόντων -DemoCompanyAll=Εταιρεία με πολλαπλές δραστηριότητες (όλες τις κύριες ενότητες) +DemoCompanyAll=Εταιρεία με πολλαπλές δραστηριότητες (όλες οι κύριες ενότητες) CreatedBy=Δημιουργήθηκε από %s -ModifiedBy=Τροποποίηθηκε από %s +ModifiedBy=Τροποποιήθηκε από %s ValidatedBy=Επικυρώθηκε από %s -SignedBy=Signed by %s +SignedBy=Υπογεγραμμένο από %s ClosedBy=Έκλεισε από %s CreatedById=Ταυτότητα χρήστη που δημιούργησε ModifiedById=Αναγνωριστικό χρήστη που έκανε την τελευταία αλλαγή @@ -129,18 +129,18 @@ ModifiedByLogin=Εγγραφή χρήστη που έκανε την τελευ ValidatedByLogin=Χρήστης σύνδεσης που επικύρωσε CanceledByLogin=Χρήστης σύνδεσης που ακύρωσε ClosedByLogin=Χρήστης σύνδεσης που έκλεισε -FileWasRemoved=File %s was removed -DirWasRemoved=Directory %s was removed -FeatureNotYetAvailable=Δεν υπάρχει ακόμα διαθέσιμη λειτουργία στην τρέχουσα έκδοση -FeatureNotAvailableOnDevicesWithoutMouse=Feature not available on devices without mouse -FeaturesSupported=Υποστηριζόμενα χαρακτηριστικά +FileWasRemoved=Το αρχείο %s καταργήθηκε +DirWasRemoved=Ο κατάλογος %s καταργήθηκε +FeatureNotYetAvailable=Η δυνατότητα δεν είναι ακόμη διαθέσιμη στην τρέχουσα έκδοση +FeatureNotAvailableOnDevicesWithoutMouse=Η δυνατότητα δεν είναι διαθέσιμη σε συσκευές χωρίς ποντίκι +FeaturesSupported=Υποστηριζόμενες λειτουργίες Width=Πλάτος Height=Ύψος Depth=Βάθος Top=Κορυφή Bottom=Κάτω μέρος Left=Αριστερά -Right=Δικαίωμα +Right=Δεξιά CalculatedWeight=Υπολογισμένο βάρος CalculatedVolume=Υπολογισμένος όγκος Weight=Βάρος @@ -148,30 +148,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,15 +179,15 @@ SizeUnitmm=mm SizeUnitinch=ίντσα SizeUnitfoot=πόδι SizeUnitpoint=σημείο -BugTracker=Tracker Bug -SendNewPasswordDesc=Αυτή η φόρμα σάς επιτρέπει να ζητήσετε νέο κωδικό πρόσβασης. Θα σταλεί στη διεύθυνση ηλεκτρονικού ταχυδρομείου σας.
    Η αλλαγή θα τεθεί σε ισχύ μόλις κάνετε κλικ στον σύνδεσμο επιβεβαίωσης στο μήνυμα ηλεκτρονικού ταχυδρομείου.
    Ελέγξτε τα εισερχόμενά σας. +BugTracker=Παρακολούθηση σφαλμάτων +SendNewPasswordDesc=Αυτή η φόρμα σάς επιτρέπει να ζητήσετε νέο κωδικό πρόσβασης. Θα σταλεί στη διεύθυνση email σας.
    Η αλλαγή θα τεθεί σε ισχύ μόλις κάνετε κλικ στον σύνδεσμο επιβεβαίωσης στο email.
    Ελέγξτε τα εισερχόμενά σας. BackToLoginPage=Επιστροφή στην σελίδα εισόδου AuthenticationDoesNotAllowSendNewPassword=Λειτουργία ελέγχου ταυτότητας είναι %s.
    Σε αυτή τη λειτουργία, Dolibarr δεν μπορεί να γνωρίζει ούτε αλλαγή του κωδικού πρόσβασής σας.
    Επικοινωνήστε με το διαχειριστή του συστήματός σας, εάν θέλετε να αλλάξετε τον κωδικό πρόσβασής σας. EnableGDLibraryDesc=Εγκαταστήστε ή ενεργοποιήστε τη βιβλιοθήκη GD στην εγκατάσταση της PHP για να χρησιμοποιήσετε αυτήν την επιλογή. ProfIdShortDesc=Καθ %s ταυτότητα είναι μια ενημερωτική ανάλογα με τρίτη χώρα μέρος.
    Για παράδειγμα, για %s χώρα, είναι %s κώδικα. DolibarrDemo=Dolibarr ERP / CRM demo StatsByNumberOfUnits=Στατιστικά στοιχεία για το σύνολο των ποσοτήτων προϊόντων / υπηρεσιών -StatsByNumberOfEntities=Statistics for number of referring entities (no. of invoices, or orders...) +StatsByNumberOfEntities=Στατιστικά στοιχεία για τον αριθμό των παραπομπών οντοτήτων (αριθμός τιμολογίων ή παραγγελιών...) NumberOfProposals=Αριθμός προτάσεων NumberOfCustomerOrders=Αριθμός παραγγελιών πωλήσεων NumberOfCustomerInvoices=Αριθμός τιμολογίων πελατών @@ -196,8 +196,8 @@ NumberOfSupplierOrders=Αριθμός εντολών αγοράς NumberOfSupplierInvoices=Αριθμός τιμολογίων προμηθευτή NumberOfContracts=Αριθμός συμβάσεων NumberOfMos=Αριθμός παραγγελιών κατασκευής -NumberOfUnitsProposals=Αριθμός μονάδων για προτάσεις -NumberOfUnitsCustomerOrders=Αριθμός μονάδων επί παραγγελιών πωλήσεων +NumberOfUnitsProposals=Αριθμός μονάδων στις προτάσεις +NumberOfUnitsCustomerOrders=Αριθμός μονάδων σε παραγγελίες πώλησης NumberOfUnitsCustomerInvoices=Αριθμός μονάδων σε τιμολόγια πελατών NumberOfUnitsSupplierProposals=Αριθμός μονάδων σε προτάσεις πωλητών NumberOfUnitsSupplierOrders=Αριθμός μονάδων στις εντολές αγοράς @@ -205,81 +205,81 @@ NumberOfUnitsSupplierInvoices=Αριθμός μονάδων σε τιμολόγ NumberOfUnitsContracts=Αριθμός μονάδων στις συμβάσεις NumberOfUnitsMos=Αριθμός μονάδων προς παραγωγή σε παραγγελίες κατασκευής EMailTextInterventionAddedContact=Μια νέα παρέμβαση %s σας έχει εκχωρηθεί. -EMailTextInterventionValidated=Η %s παρέμβαση έχει επικυρωθεί. +EMailTextInterventionValidated=Η παρέμβαση %s έχει επικυρωθεί. EMailTextInvoiceValidated=Το τιμολόγιο %s έχει επικυρωθεί. EMailTextInvoicePayed=Το τιμολόγιο %s έχει καταβληθεί. EMailTextProposalValidated=Η πρόταση %s έχει επικυρωθεί. EMailTextProposalClosedSigned=Η πρόταση %s έχει κλείσει υπογεγραμμένη. 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=The action %s has been added to the Agenda. +EMailTextActionAdded=Η ενέργεια %s προστέθηκε στην Ατζέντα. ImportedWithSet=Η εισαγωγή των δεδομένων που DolibarrNotification=Αυτόματη ειδοποίηση -ResizeDesc=Εισάγετε το νέο πλάτος ή το νέο ύψος. Λόγος θα διατηρηθούν κατά τη διάρκεια της αλλαγής μεγέθους ... -NewLength=Νέο βάρος +ResizeDesc=Εισαγάγετε νέο πλάτος Ή νέο ύψος. Η αναλογία θα διατηρηθεί κατά την αλλαγή μεγέθους... +NewLength=Νέο πλάτος NewHeight=Νέο ύψος NewSizeAfterCropping=Νέο μέγεθος μετά το ψαλίδισμα -DefineNewAreaToPick=Ορίστε νέα περιοχή στην εικόνα για να πάρει (αριστερό κλικ στην εικόνα στη συνέχεια σύρετε μέχρι να φτάσετε στην απέναντι γωνία) -CurrentInformationOnImage=Αυτό το εργαλείο έχει σχεδιαστεί για να σας βοηθήσει να αλλάξετε το μέγεθος ή την περικοπή μιας εικόνας. Αυτές είναι οι πληροφορίες σχετικά με την τρέχουσα επεξεργασμένη εικόνα +DefineNewAreaToPick=Ορίστε νέα περιοχή στην εικόνα για επιλογή (αριστερό κλικ στην εικόνα και μετά σύρετε μέχρι να φτάσετε στην απέναντι γωνία) +CurrentInformationOnImage=Αυτό το εργαλείο σχεδιάστηκε για να σας βοηθήσει να αλλάξετε το μέγεθος ή να περικόψετε μια εικόνα. Αυτές είναι οι πληροφορίες για την τρέχουσα επεξεργασμένη εικόνα ImageEditor=Επεξεργαστής εικόνας -YouReceiveMailBecauseOfNotification=Αυτό το μήνυμα επειδή το email σας έχει προστεθεί στη λίστα των στόχων που πρέπει να ενημερώνεται για συγκεκριμένα γεγονότα σε %s λογισμικό της %s. -YouReceiveMailBecauseOfNotification2=Το γεγονός είναι το ακόλουθο: +YouReceiveMailBecauseOfNotification=Λαμβάνετε αυτό το μήνυμα επειδή το email σας έχει προστεθεί στη λίστα επαφών που πρέπει να ενημερώνεται για συγκεκριμένα συμβάντα στο λογισμικό %s της %s. +YouReceiveMailBecauseOfNotification2=Η εκδήλωση αυτή είναι η εξής: ThisIsListOfModules=Αυτή είναι μια λίστα των modules που έχουν επιλέξει αυτό το προφίλ demo (μόνο οι περισσότερες κοινές ενότητες είναι ορατά σε αυτό το demo). Επεξεργασία αυτό να έχει μια πιο εξατομικευμένη επίδειξη και κάντε κλικ στο "Start". -UseAdvancedPerms=Χρησιμοποιήστε την προηγμένη δικαιώματα κάποιων ενοτήτων +UseAdvancedPerms=Χρησιμοποιήστε τα προηγμένα δικαιώματα ορισμένων ενοτήτων FileFormat=Μορφή αρχείου SelectAColor=Επιλέξτε ένα χρώμα AddFiles=Προσθήκη αρχείων StartUpload=Έναρξη μεταφόρτωσης -CancelUpload=Ακύρωση ανεβάσετε -FileIsTooBig=Τα αρχεία είναι πολύ μεγάλο -PleaseBePatient=Please be patient... +CancelUpload=Ακύρωση μεταφόρτωσης +FileIsTooBig=Τα αρχεία είναι πολύ μεγάλα +PleaseBePatient=Παρακαλώ να είστε υπομονετικοί... NewPassword=Νέος Κωδικός ResetPassword=Επαναφέρετε τον κωδικό πρόσβασης -RequestToResetPasswordReceived=Ζητήθηκε να αλλάξετε τον κωδικό πρόσβασής σας. +RequestToResetPasswordReceived=Έχει ληφθεί ένα αίτημα για αλλαγή του κωδικού πρόσβασης σας. NewKeyIs=Αυτό είναι το νέο σας κλειδί για να συνδεθείτε NewKeyWillBe=Το νέο σας κλειδί για να συνδεθείτε με το λογισμικό είναι ClickHereToGoTo=Κάντε κλικ εδώ για να μεταβείτε στο %s YouMustClickToChange=Θα πρέπει πρώτα να κάνετε κλικ στον παρακάτω σύνδεσμο για να επικυρώσει την αλλαγή του κωδικού πρόσβασης -ConfirmPasswordChange=Confirm password change +ConfirmPasswordChange=Επιβεβαιώστε την αλλαγή κωδικού πρόσβασης ForgetIfNothing=Αν δεν ζητήσατε αυτή την αλλαγή, απλά ξεχάστε αυτό το email. Τα διαπιστευτήριά σας παραμένουν ασφαλή. IfAmountHigherThan=Εάν το ποσό υπερβαίνει %s SourcesRepository=Αποθετήριο για τις πηγές Chart=Γράφημα PassEncoding=Κωδικοποίηση κωδικού πρόσβασης PermissionsAdd=Προστέθηκαν δικαιώματα -PermissionsDelete=Οι άδειες έχουν καταργηθεί -YourPasswordMustHaveAtLeastXChars=Ο κωδικός πρόσβασής σας πρέπει να έχει τουλάχιστον %s χαρακτήρες -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=Ο κωδικός πρόσβασής σας έχει επαναφερθεί με επιτυχία +PermissionsDelete=Τα δικαιώματα καταργήθηκαν +YourPasswordMustHaveAtLeastXChars=Ο κωδικός πρόσβασης σας πρέπει να έχει τουλάχιστον %s χαρακτήρες +PasswordNeedAtLeastXUpperCaseChars=Ο κωδικός πρόσβασης χρειάζεται τουλάχιστον %s κεφαλαίους χαρακτήρες +PasswordNeedAtLeastXDigitChars=Ο κωδικός πρόσβασης χρειάζεται τουλάχιστον %s αριθμητικούς χαρακτήρες +PasswordNeedAtLeastXSpecialChars=Ο κωδικός πρόσβασης χρειάζεται τουλάχιστον %s ειδικούς χαρακτήρες +PasswordNeedNoXConsecutiveChars=Ο κωδικός πρόσβασης δεν πρέπει να έχει %s διαδοχικούς παρόμοιους χαρακτήρες +YourPasswordHasBeenReset=Ο κωδικός πρόσβασης σας επαναφέρθηκε με επιτυχία ApplicantIpAddress=Διεύθυνση IP του αιτούντος -SMSSentTo=Τα SMS αποστέλλονται στο %s +SMSSentTo=Το SMS εστάλη στο %s MissingIds=Λείπει IDs ThirdPartyCreatedByEmailCollector=Το τρίτο μέρος δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το MSGID e-mail %s ContactCreatedByEmailCollector=Επαφή / διεύθυνση που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s ProjectCreatedByEmailCollector=Έργο που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s TicketCreatedByEmailCollector=Εισιτήριο που δημιουργήθηκε από τον συλλέκτη ηλεκτρονικού ταχυδρομείου από το ηλεκτρονικό ταχυδρομείο MSGID %s OpeningHoursFormatDesc=Χρησιμοποιήστε το "-" για να διαχωρίσετε τις ώρες ανοίγματος και κλεισίματος.
    Χρησιμοποιήστε "κενό" για να εισάγετε διαφορετικές περιοχές.
    Παράδειγμα: 8-12 14-18 -SuffixSessionName=Suffix for session name -LoginWith=Login with %s +SuffixSessionName=Κατάληξη για το όνομα της συνεδρίας +LoginWith=Συνδεθείτε με %s ##### Export ##### ExportsArea=Exports area -AvailableFormats=Available formats +AvailableFormats=Διαθέσιμες μορφές LibraryUsed=Library used LibraryVersion=Έκδοση βιβλιοθήκης -ExportableDatas=Exportable data +ExportableDatas=Εξαγώγιμα δεδομένα NoExportableData=No exportable data (no modules with exportable data loaded, or missing permissions) ##### External sites ##### WebsiteSetup=Εγκατάσταση δικτυακού τόπου ενότητας @@ -293,13 +293,35 @@ LinesToImport=Γραμμές για εισαγωγή MemoryUsage=Χρήση μνήμης RequestDuration=Διάρκεια αίτησης -ProductsPerPopularity=Products/Services by popularity +ProductsPerPopularity=Προϊόντα/Υπηρεσίες κατά δημοτικότητα PopuProp=Προϊόντα / Υπηρεσίες κατά δημοτικότητα στις Προτάσεις PopuCom=Προϊόντα / Υπηρεσίες κατά δημοτικότητα στις παραγγελίες ProductStatistics=Στατιστικά Προϊόντων / Υπηρεσιών NbOfQtyInOrders=Ποσότητα σε παραγγελίες -SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... +SelectTheTypeOfObjectToAnalyze=Επιλέξτε ένα αντικείμενο για να δείτε τα στατιστικά του... -ConfirmBtnCommonContent = Are you sure you want to "%s" ? -ConfirmBtnCommonTitle = Confirm your action +ConfirmBtnCommonContent = Είστε σίγουροι ότι θέλετε να "%s"; +ConfirmBtnCommonTitle = Επιβεβαιώστε την ενέργειά σας CloseDialog = Κλείσιμο +Autofill = Αυτόματη συμπλήρωση + +# externalsite +ExternalSiteSetup=Ρύθμιση συνδέσμου σε εξωτερικό ιστότοπο +ExternalSiteURL=Διεύθυνση URL εξωτερικού ιστότοπου περιεχομένου HTML iframe +ExternalSiteModuleNotComplete=Η ενότητα Εξωτερικός Ιστότοπος δεν έχει ρυθμιστεί σωστά. +ExampleMyMenuEntry=Το μενού μου + +# 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/partnership.lang b/htdocs/langs/el_GR/partnership.lang index 6971efdf5ca..305cba8f54b 100644 --- a/htdocs/langs/el_GR/partnership.lang +++ b/htdocs/langs/el_GR/partnership.lang @@ -16,77 +16,79 @@ # # 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=Διαχείριση συνεργασιών +PartnershipDescription=Ενότητα Διαχείριση Συνεργασιών +PartnershipDescriptionLong= Ενότητα Διαχείριση Συνεργασιών +Partnership=Συνεργασία +AddPartnership=Προσθήκη συνεργασίας +CancelPartnershipForExpiredMembers=Συνεργασία: Ακύρωση συνεργασίας μελών με συνδρομές που έχουν λήξει +PartnershipCheckBacklink=Συνεργασία: Ελέγξτε την παραπομπή backlink # # Menu # -NewPartnership=New Partnership -ListOfPartnerships=List of partnership +NewPartnership=Νέα Συνεργασία +ListOfPartnerships=Λίστα συνεργασιών # # 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=Ρύθμιση συνεργασίας +PartnershipAbout=Σχετικά με τη Συνεργασία +PartnershipAboutPage=Σελίδα σχετικά με τη συνεργασία +partnershipforthirdpartyormember=Η κατάσταση συνεργάτη πρέπει να οριστεί σε "τρίτο μέρος" ή "μέλος" +PARTNERSHIP_IS_MANAGED_FOR=Η διαχείριση της συνεργασίας +PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks για έλεγχο +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Αριθμός ημερών πριν από την κατάσταση ακύρωσης μιας συνεργασίας όταν έχει λήξει μια συνδρομή +ReferingWebsiteCheck=Έλεγχος αναφοράς ιστότοπου +ReferingWebsiteCheckDesc=Μπορείτε να ενεργοποιήσετε μια δυνατότητα για να ελέγχετε ότι οι συνεργάτες σας έχουν προσθέσει έναν σύνδεσμο backlink του ιστότοπου σας στον δικό τους ιστότοπο. +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 +ReasonDecline=Λόγος απόρριψης +ReasonDeclineOrCancel=Λόγος απόρριψης +PartnershipAlreadyExist=Υπάρχει ήδη Συνεργασία +ManagePartnership=Διαχείριση της συνεργασίας +BacklinkNotFoundOnPartnerWebsite=Ο σύνδεσμος Backlink δεν βρέθηκε στον ιστότοπο του συνεργάτη +ConfirmClosePartnershipAsk=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτήν τη συνεργασία; +PartnershipType=Τύπος συνεργασίας +PartnershipRefApproved=Εγκρίθηκε η συνεργασία %s +KeywordToCheckInWebsite=Εάν θέλετε να ελέγξετε ότι μια δεδομένη λέξη-κλειδί υπάρχει στον ιστότοπο κάθε συνεργάτη, ορίστε αυτήν τη λέξη-κλειδί εδώ +PartnershipDraft=Προσχέδιο +PartnershipAccepted=Αποδεκτή +PartnershipRefused=Απορρίφθηκε +PartnershipCanceled=Ακυρώθηκε +PartnershipManagedFor=Συνεργάτες είναι # # Template Mail # -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled +SendingEmailOnPartnershipWillSoonBeCanceled=Η συνεργασία θα ακυρωθεί σύντομα +SendingEmailOnPartnershipRefused=Η συνεργασία απορρίφθηκε +SendingEmailOnPartnershipAccepted=Η Συνεργασία έγινε αποδεκτή +SendingEmailOnPartnershipCanceled=Η συνεργασία ακυρώθηκε -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled +YourPartnershipWillSoonBeCanceledTopic=Η συνεργασία θα ακυρωθεί σύντομα +YourPartnershipRefusedTopic=Η συνεργασία απορρίφθηκε +YourPartnershipAcceptedTopic=Η Συνεργασία έγινε αποδεκτή +YourPartnershipCanceledTopic=Η συνεργασία ακυρώθηκε -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=Σας ενημερώνουμε ότι η συνεργασία μας θα ακυρωθεί σύντομα (δεν βρέθηκε backlink ) +YourPartnershipRefusedContent=Σας ενημερώνουμε ότι το αίτημα σας για συνεργασία απορρίφθηκε. +YourPartnershipAcceptedContent=Σας ενημερώνουμε ότι το αίτημα συνεργασίας σας έγινε δεκτό. +YourPartnershipCanceledContent=Σας ενημερώνουμε ότι η συνεργασία μας έχει ακυρωθεί. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason +CountLastUrlCheckError=Αριθμός σφαλμάτων για τον τελευταίο έλεγχο URL +LastCheckBacklink=Ημερομηνία τελευταίου ελέγχου διεύθυνσης URL +ReasonDeclineOrCancel=Λόγος απόρριψης + +NewPartnershipRequest=Νέο αίτημα συνεργασίας +NewPartnershipRequestDesc=Αυτή η φόρμα σάς επιτρέπει να ζητήσετε να συμμετάσχετε σε ένα από τα προγράμματα συνεργασίας μας. Εάν χρειάζεστε βοήθεια για να συμπληρώσετε αυτήν τη φόρμα, επικοινωνήστε μέσω email %s . -# -# Status -# -PartnershipDraft=Πρόχειρο -PartnershipAccepted=Αποδεκτή -PartnershipRefused=Απορρίφθηκε -PartnershipCanceled=Ακυρώθηκε -PartnershipManagedFor=Partners are diff --git a/htdocs/langs/el_GR/paybox.lang b/htdocs/langs/el_GR/paybox.lang index 9827ae330d6..526e6f8aa95 100644 --- a/htdocs/langs/el_GR/paybox.lang +++ b/htdocs/langs/el_GR/paybox.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=Paybox μονάδα ρύθμισης -PayBoxDesc=Αυτή η ενότητα παρέχει τις σελίδες για να καταστεί δυνατή πληρωμή Paybox από τους πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για μια ελεύθερη πληρωμής ή πληρωμή σε ένα συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, ώστε, ...) +PayBoxDesc=Αυτή η ενότητα προσφέρει σελίδες που επιτρέπουν την πληρωμή στο Paybox από πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για ελεύθερη πληρωμή ή για πληρωμή σε συγκεκριμένο αντικείμενο Dolibarr (τιμολόγιο, παραγγελία, ...) FollowingUrlAreAvailableToMakePayments=Μετά από τις διευθύνσεις URL είναι διαθέσιμοι να προσφέρουν μια σελίδα σε έναν πελάτη να προβεί σε πληρωμή σε Dolibarr αντικείμενα PaymentForm=Έντυπο πληρωμής WelcomeOnPaymentPage=Καλώς ήλθατε στην ηλεκτρονική υπηρεσία πληρωμών μας @@ -20,7 +20,6 @@ AccountParameter=Παράμετροι λογαριασμού UsageParameter=Παράμετροι χρήσης InformationToFindParameters=Βοήθεια για να βρείτε %s τα στοιχεία του λογαριασμού σας PAYBOX_CGI_URL_V2=Url της ενότητας Paybox CGI για την πληρωμή -VendorName=Όνομα του πωλητή CSSUrlForPaymentForm=Url CSS φύλλο στυλ για το έντυπο πληρωμής NewPayboxPaymentReceived=Νέα πληρωμή Paybox που λήφθηκε NewPayboxPaymentFailed=Νέα πληρωμή Paybox προσπάθησαν αλλά απέτυχαν diff --git a/htdocs/langs/el_GR/paypal.lang b/htdocs/langs/el_GR/paypal.lang index 8979404260e..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=Άμεση εγκατάσταση μονάδας -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 +PaypalSetup=Ρύθμιση ενότητας PayPal +PaypalDesc=Αυτή η ενότητα επιτρέπει την πληρωμή από πελάτες μέσω του PayPal . Αυτό μπορεί να χρησιμοποιηθεί για μια ad-hoc πληρωμή ή για μια πληρωμή που σχετίζεται με ένα αντικείμενο Dolibarr (τιμολόγιο, παραγγελία, ...) +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=Offer "integral" payment (Credit card+PayPal) or "PayPal" only -PaypalModeIntegral=Ενσωματωμένο -PaypalModeOnlyPaypal=PayPal μόνο -ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page -ThisIsTransactionId=Αυτό είναι 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=Επιστροφή στο URL μετά από την πληρωμή -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. +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=Αυτό είναι το αναγνωριστικό της συναλλαγής: %s +PAYPAL_ADD_PAYMENT_URL=Συμπεριλάβετε τη διεύθυνση URL πληρωμής του PayPal όταν στέλνετε ένα έγγραφο μέσω Email +NewOnlinePaymentReceived=Λήφθηκε νέα ηλεκτρονική πληρωμή +NewOnlinePaymentFailed=Η νέα ηλεκτρονική πληρωμή απέτυχε +ONLINE_PAYMENT_SENDEMAIL=Email για ειδοποιήσεις μετά από κάθε απόπειρα πληρωμής (για επιτυχία και αποτυχία) +ReturnURLAfterPayment=URL επιστροφής μετά από την πληρωμή +ValidationOfOnlinePaymentFailed=Η επικύρωση της ηλεκτρονικής πληρωμής απέτυχε +PaymentSystemConfirmPaymentPageWasCalledButFailed=Η σελίδα επιβεβαίωσης πληρωμής που κλήθηκε από το σύστημα πληρωμών επέστρεψε ένα σφάλμα +SetExpressCheckoutAPICallFailed=Η κλήση API SetExpressCheckout απέτυχε. +DoExpressCheckoutPaymentAPICallFailed=Η κλήση API DoExpressCheckoutPayment απέτυχε. DetailedErrorMessage=Λεπτομερές μήνυμα λάθους -ShortErrorMessage=Short Error Message -ErrorCode=Λάθος κωδικός -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 +ShortErrorMessage=Σύντομο μήνυμα σφάλματος +ErrorCode=Κωδικός λάθους +ErrorSeverityCode=Κωδικός σοβαρότητας σφάλματος +OnlinePaymentSystem=Ηλεκτρονικό σύστημα πληρωμών +PaypalLiveEnabled=Η λειτουργία "live" του PayPal είναι ενεργοποιημένη (αλλιώς λειτουργία δοκιμής/δοκιμών δοκιμών) +PaypalImportPayment=Εισαγωγή πληρωμών PayPal +PostActionAfterPayment=Post actions μετά από πληρωμές +ARollbackWasPerformedOnPostActions=Έγινε επαναφορά σε όλες τις Post actions. Πρέπει να ολοκληρώσετε μη αυτόματα τις Post actions αν είναι απαραίτητες. +ValidationOfPaymentFailed=Η επικύρωση της πληρωμής απέτυχε +CardOwner=Κάτοχος κάρτας +PayPalBalance=Πίστωση Paypal diff --git a/htdocs/langs/el_GR/printing.lang b/htdocs/langs/el_GR/printing.lang index 80a3bc725cc..b9cc758e331 100644 --- a/htdocs/langs/el_GR/printing.lang +++ b/htdocs/langs/el_GR/printing.lang @@ -1,13 +1,13 @@ # 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. @@ -15,7 +15,7 @@ PleaseSelectaDriverfromList=Παρακαλώ επιλέξτε ένα πρόγρ PleaseConfigureDriverfromList=Προσαρμόστε το επιλεγμένο πρόγραμμα οδήγησης από τη λίστα. SetupDriver=Ρυθμίσεις του προγράμματος οδήγησης TargetedPrinter=Στοχευμένη εκτύπωση -UserConf=Ρύθμισης ανά χρήστη +UserConf=Ρύθμιση ανά χρήστη PRINTGCP_INFO=Ρύθμιση API Google OAuth PRINTGCP_AUTHLINK=Επικύρωση PRINTGCP_TOKEN_ACCESS=Το Token OAuth του Google Cloud Print @@ -48,7 +48,7 @@ IPP_Supported=Τύπος των μέσων DirectPrintingJobsDesc=Αυτή η σελίδα παραθέτει τις εργασίες εκτύπωσης που βρέθηκαν για τους διαθέσιμους εκτυπωτές. GoogleAuthNotConfigured=Το Google OAuth δεν έχει ρυθμιστεί. Ενεργοποιήστε την ενότητα OAuth και ορίστε ένα αναγνωριστικό / μυστικό Google. GoogleAuthConfigured=Τα διαπιστευτήρια του Google OAuth βρέθηκαν στη ρύθμιση του module OAuth. -PrintingDriverDescprintgcp=Διαμόρφωση των μεταβλητών για τον οδηγό εκτύπωσης του Google Cloud Print. -PrintingDriverDescprintipp=Μεταβλητές διαμόρφωσης για εκτύπωση οδηγών κυπέλλων. -PrintTestDescprintgcp=Λίστα εκτυπωτών στο Google Cloud Print. -PrintTestDescprintipp=Λίστα εκτυπωτών για κύπελλα. +PrintingDriverDescprintgcp=Διαμόρφωση μεταβλητών οδηγών εκτύπωσης του Google Cloud Print. +PrintingDriverDescprintipp=Διαμόρφωση μεταβλητών οδηγών εκτύπωσης Cups. +PrintTestDescprintgcp=Λίστα εκτυπωτών με δυνατότητα Google Cloud Print. +PrintTestDescprintipp=Λίστα εκτυπωτών με ρύθμιση μέσω Cups. diff --git a/htdocs/langs/el_GR/productbatch.lang b/htdocs/langs/el_GR/productbatch.lang index 490c7345c1b..12e3ec0401b 100644 --- a/htdocs/langs/el_GR/productbatch.lang +++ b/htdocs/langs/el_GR/productbatch.lang @@ -2,37 +2,37 @@ ManageLotSerial=Χρήση παρτίδας/σειριακού αριθμού ProductStatusOnBatch=Ναι (απαιτείται παρτίδα) ProductStatusOnSerial=Ναι (απαιτείται μοναδικός σειριακός αριθμός) -ProductStatusNotOnBatch=Όχι (δεν χρειάζεται παρτίδα/σειριακός αριθμός) +ProductStatusNotOnBatch=Όχι (δεν χρησιμοποιείται παρτίδα/σειριακός αριθμός) ProductStatusOnBatchShort=Παρτίδα ProductStatusOnSerialShort=Σειριακός Αριθμός ProductStatusNotOnBatchShort=Όχι Batch=Παρτίδα/Σειριακός αριθμός -atleast1batchfield=Ημερομηνία προθεσμίας Ανάλωσης ή Πώλησης ή Παρτίδα/Σειριακός αριθμός +atleast1batchfield=Ημερομηνία λήξης Ανάλωσης ή Πώλησης ή Παρτίδα/Σειριακός αριθμός batch_number=Παρτίδα/Σειριακός αριθμός -BatchNumberShort=Παρτίδα/Σειριακός -EatByDate=Ημερομηνία προθεσμίας ανάλωσης +BatchNumberShort=Παρτίδα/Σειριακός αριθμός +EatByDate=Ημερομηνία λήξης ανάλωσης SellByDate=Ημερομηνία προθεσμίας πώλησης -DetailBatchNumber=Χαρακτηριστικά Αρ. παρτίδας/σειριακός -printBatch=Παρτίδα/Σειριακός: %s -printEatby=Προθεσμία ανάλωσης: %s -printSellby=Πώληση ανά: %s +DetailBatchNumber=Χαρακτηριστικά παρτίδας/σειριακού αριθμού +printBatch=Παρτίδα/Σειριακός αριθμός: %s +printEatby=Λήξη ανάλωσης: %s +printSellby=Πώληση έως: %s printQty=Ποσότητα: %d -AddDispatchBatchLine=Προσθέστε μια γραμμή για Χρόνο Διάρκειας αποστολής +AddDispatchBatchLine=Προσθέστε μια γραμμή για την αποστολή παρτίδας WhenProductBatchModuleOnOptionAreForced=Όταν η επιλογή παρτίδας / σειριακού αριθμού είναι ενεργοποιημένη, στην αυτόματη μείωση των αποθεμάτων είναι αναγκαστικά επιλεγμένη η «Μείωση πραγματικών αποθεμάτων κατά την επικύρωση αποστολής» και στην αυτόματη λειτουργία αύξησης είναι αναγκαστικά επιλεγμένη η «Αύξηση των πραγματικών αποθεμάτων κατά τη χειροκίνητη αποστολή σε αποθήκες» και δεν μπορεί να γίνει επεξεργασία. Οι άλλες επιλογές μπορούν να οριστούν όπως θέλετε. -ProductDoesNotUseBatchSerial=Το προιόν δεν χρειάζεται παρτίδα/σειριακό αριθμό -ProductLotSetup=Ρύθμιση του module παρτίδας / σειριακού αριθμού +ProductDoesNotUseBatchSerial=Το προιόν δεν χρησιμοποιεί παρτίδα/σειριακό αριθμό +ProductLotSetup=Ρύθμιση της ενότητας παρτίδα/σειριακός αριθμός ShowCurrentStockOfLot=Εμφάνιση παρόντος αποθέματος για ζεύγος προϊόν/παρτίδα ShowLogOfMovementIfLot=Εμφάνιση αρχείου κινήσεων για ζεύγος προϊόν/παρτίδα -StockDetailPerBatch=Ανάλυση αποθέματος ανά παρτίδα +StockDetailPerBatch=Λεπτομέρειες αποθέματος ανά παρτίδα SerialNumberAlreadyInUse=Ο σειριακός αριθμός %s χρησιμοποιείται ήδη για το προϊόν %s -TooManyQtyForSerialNumber=Μπορείτε να έχετε μόνο ένα προϊόν %s για σειριακό αριθμό %s +TooManyQtyForSerialNumber=Μπορείτε να έχετε μόνο ένα προϊόν %s για τον σειριακό αριθμό %s ManageLotMask=Προσαρμοσμένη μάσκα CustomMasks=Δυνατότητα ορισμού διαφορετικής μάσκας αρίθμησης για κάθε προϊόν BatchLotNumberingModules=Κανόνας αρίθμησης για αυτόματη δημιουργία αριθμού παρτίδας -BatchSerialNumberingModules=Κανόνας αρίθμησης για αυτόματη δημιουργία σειριακού αριθμού (για προϊόντα με ιδιότητα 1 μοναδικής παρτίδας/σειράς για κάθε προϊόν) -QtyToAddAfterBarcodeScan=Ποσότητα έως %s για κάθε γραμμωτό κώδικα/παρτίδα/σειριακή σάρωση +BatchSerialNumberingModules=Κανόνας αρίθμησης για αυτόματη δημιουργία σειριακού αριθμού (για προϊόντα με ιδιότητα 1 μοναδικής παρτίδας/σειριακού αριθμού για κάθε προϊόν) +QtyToAddAfterBarcodeScan=Ποσότητα έως %s για κάθε σκαναρισμένο barcode/παρτίδα/σειριακό αριθμό LifeTime=Διάρκεια ζωής (σε ημέρες) -EndOfLife=Τέλος της ζωής +EndOfLife=Τέλος κύκλου ζωής ManufacturingDate=Ημερομηνία κατασκευής DestructionDate=Ημερομηνία καταστροφής FirstUseDate=Ημερομηνία πρώτης χρήσης @@ -42,4 +42,5 @@ HideLots=Κρύψιμο των παρτίδων #Traceability - qc status OutOfOrder=Εκτός λειτουργίας InWorkingOrder=Σε κατάσταση λειτουργίας -ToReplace=Αντικατάσταση +ToReplace=Προς αντικατάσταση +CantMoveNonExistantSerial=Σφάλμα. Ζητάτε κίνηση σε μια εγγραφή για ένα σειριακό αριθμό που δεν υπάρχει πια. Μπορεί να χρησιμοποιήσατε τον ίδιο σειριακό αριθμό στην ίδια αποθήκη αρκετές φορές στην ίδια αποστολή ή να έχει χρησιμοποιηθεί από άλλη αποστολή. Αφαιρέστε αυτήν την αποστολή και ετοιμάστε άλλη. diff --git a/htdocs/langs/el_GR/products.lang b/htdocs/langs/el_GR/products.lang index 6ed351723a2..ac8eac8a0da 100644 --- a/htdocs/langs/el_GR/products.lang +++ b/htdocs/langs/el_GR/products.lang @@ -17,12 +17,12 @@ Create=Δημιουργία Reference=Παραπομπή NewProduct=Νέο Προϊόν NewService=Νέα Υπηρεσία -ProductVatMassChange=Παγκόσμια ενημέρωση ΦΠΑ -ProductVatMassChangeDesc=Αυτό το εργαλείο ενημερώνει τον συντελεστή ΦΠΑ που ορίζεται σε ΟΛΑ ΠΡΟΪΟΝΤΑ και υπηρεσίες! -MassBarcodeInit=Μαζική barcode init -MassBarcodeInitDesc=Αυτή η σελίδα μπορεί να χρησιμοποιείται για να προετοιμάσει ένα barcode σε αντικείμενα που δεν έχουν barcode. Ελέγξτε πριν από την εγκατάσταση του module barcode αν έχει ολοκληρωθεί. +ProductVatMassChange=Καθολική ενημέρωση ΦΠΑ +ProductVatMassChangeDesc=Αυτό το εργαλείο ενημερώνει τον συντελεστή ΦΠΑ που ορίζεται σε ΟΛΑ προϊόντα και υπηρεσίες! +MassBarcodeInit=Μαζική ενεργοποίηση barcode +MassBarcodeInitDesc=Αυτή η σελίδα μπορεί να χρησιμοποιηθεί για την ενεργοποίηση ενός barcode σε αντικείμενα που δεν έχουν καθορισμένο barcode. Ελέγξτε νωρίτερα ότι έχει ολοκληρωθεί η ρύθμιση της μονάδας barcode . ProductAccountancyBuyCode=Λογιστικός Κωδικός (Αγορά) -ProductAccountancyBuyIntraCode=Λογιστικός κωδικός (αγορά εντός της κοινότητας) +ProductAccountancyBuyIntraCode=Λογιστικός κωδικός (ενδοκοινοτική αγορά) ProductAccountancyBuyExportCode=Λογιστικός κωδικός (εισαγωγή αγοράς) ProductAccountancySellCode=Λογιστικός Κωδικός (Πώληση) ProductAccountancySellIntraCode=Κωδικός λογιστικής (ενδοκοινοτική πώληση) @@ -36,16 +36,16 @@ ProductsOnPurchase=Προϊόντα για αγορά ProductsOnSaleOnly=Προϊόντα προς πώληση μόνο ProductsOnPurchaseOnly=Προϊόντα μόνο για αγορά ProductsNotOnSell=Προϊόντα μη διαθέσιμα για αγορά ή πώληση -ProductsOnSellAndOnBuy=Προϊόντα προς πώληση και για αγορά +ProductsOnSellAndOnBuy=Προϊόντα προς πώληση και αγορά ServicesOnSale=Υπηρεσίες προς πώληση -ServicesOnPurchase=Υπηρεσίες αγοράς +ServicesOnPurchase=Υπηρεσίες προς αγορά ServicesOnSaleOnly=Υπηρεσίες προς πώληση μόνο ServicesOnPurchaseOnly=Υπηρεσίες μόνο για αγορά ServicesNotOnSell=Υπηρεσίες μη διαθέσιμες για αγορά ή πώληση ServicesOnSellAndOnBuy=Υπηρεσίες προς πώληση και για αγορά LastModifiedProductsAndServices=Τελευταία %s τροποποιημένα προϊόντα/υπηρεσίες -LastRecordedProducts=%s τελευταία εγγεγραμμένα προϊόντα -LastRecordedServices=%s τελευταία εγγεγραμμένες υπηρεσίες +LastRecordedProducts=Τελευταία %sκαταγεγραμμένα προϊόντα +LastRecordedServices=Τελευταίες %sκαταγεγραμμένες υπηρεσίες CardProduct0=Προϊόν CardProduct1=Υπηρεσία Stock=Απόθεμα @@ -56,7 +56,7 @@ Sell=Πώληση Buy=Αγορά OnSell=Προς Πώληση OnBuy=Προς Αγορά -NotOnSell=Χωρίς Διάθεση +NotOnSell=Δεν είναι προς Πώληση ProductStatusOnSell=Προς Πώληση ProductStatusNotOnSell=Δεν είναι προς Πώληση ProductStatusOnSellShort=Προς Πώληση @@ -65,31 +65,31 @@ ProductStatusOnBuy=Προς Αγορά ProductStatusNotOnBuy=Δεν είναι προς Αγορά ProductStatusOnBuyShort=Προς Αγορά ProductStatusNotOnBuyShort=Δεν είναι προς Αγορά -UpdateVAT=Νέος Φόρος -UpdateDefaultPrice=Νέα Προεπιλεγμένη Τιμή +UpdateVAT=Ενημέρωση ΦΠΑ +UpdateDefaultPrice=Ενημέρωση προεπιλεγμένης τιμής UpdateLevelPrices=Ενημερώστε τις τιμές για κάθε επίπεδο -AppliedPricesFrom=Εφαρμογή από +AppliedPricesFrom=Εφαρμόστηκε από SellingPrice=Τιμή Πώλησης -SellingPriceHT=Τιμή πώλησης (εκτός φόρου) +SellingPriceHT=Τιμή πώλησης (εκτός Φ.Π.Α) SellingPriceTTC=Τιμή Πώλησης (με Φ.Π.Α) -SellingMinPriceTTC=Ελάχιστη τιμή πώλησης (με φόρο) -CostPriceDescription=Αυτό το πεδίο τιμών (εκτός φόρου) μπορεί να χρησιμοποιηθεί για την αποθήκευση του μέσου ποσού που το προϊόν αυτό κοστίζει στην εταιρεία σας. Μπορεί να είναι οποιαδήποτε τιμή εσείς υπολογίζετε, για παράδειγμα, από τη μέση τιμή αγοράς συν το μέσο κόστος παραγωγής και διανομής. +SellingMinPriceTTC=Ελάχιστη τιμή πώλησης (με Φ.Π.Α) +CostPriceDescription=Αυτό το πεδίο τιμών (εκτός Φ.Π.Α) μπορεί να χρησιμοποιηθεί για την αποθήκευση του μέσου ποσού που το προϊόν αυτό κοστίζει στην εταιρεία σας. Μπορεί να είναι οποιαδήποτε τιμή εσείς υπολογίζετε, για παράδειγμα, από τη μέση τιμή αγοράς συν το μέσο κόστος παραγωγής και διανομής. CostPriceUsage=Αυτή η τιμή θα μπορούσε να χρησιμοποιηθεί για υπολογισμό περιθωρίου. ManufacturingPrice=Τιμή κατασκευής -SoldAmount=Πωλήθηκε ποσό -PurchasedAmount=Αγορασμένο ποσό +SoldAmount=Ποσό που πουλήθηκε +PurchasedAmount=Ποσό που αγοράστηκε NewPrice=Νέα Τιμή MinPrice=Ελάχ. τιμή πώλησης EditSellingPriceLabel=Επεξεργασία ετικέτας τιμής πώλησης -CantBeLessThanMinPrice=Η τιμή πώλησης δεν μπορεί να είναι μικρότερη από την ορισμένη ελάχιστη τιμή πώλησης (%s χωρίς Φ.Π.Α.) +CantBeLessThanMinPrice=Η τιμή πώλησης δεν μπορεί να είναι χαμηλότερη από την ελάχιστη επιτρεπόμενη για αυτό το προϊόν (%s χωρίς Φ.Π.Α). Αυτό το μήνυμα μπορεί επίσης να εμφανιστεί εάν πληκτρολογήσετε μια πολύ σημαντική έκπτωση. ContractStatusClosed=Κλειστό ErrorProductAlreadyExists=Ένα προϊόν με κωδικό %s υπάρχει ήδη. -ErrorProductBadRefOrLabel=Λάθος τιμή για την αναφορά ή την ετικέτα. -ErrorProductClone=Υπήρξε ένα πρόβλημα κατά την προσπάθεια για την κλωνοποίηση του προϊόντος ή της υπηρεσίας. +ErrorProductBadRefOrLabel=Λανθασμένη τιμή για αναφορά ή ετικέτα. +ErrorProductClone=Παρουσιάστηκε πρόβλημα κατά την προσπάθεια κλωνοποίησης του προϊόντος ή της υπηρεσίας. ErrorPriceCantBeLowerThanMinPrice=Σφάλμα, η τιμή δεν μπορεί να είναι χαμηλότερη από την ελάχιστη τιμή. Suppliers=Προμηθευτές -SupplierRef=SKU πωλητή -ShowProduct=Εμφάνιση προϊόντων +SupplierRef=SKU προμηθευτή +ShowProduct=Εμφάνιση προϊόντος ShowService=Εμφάνιση Υπηρεσίας ProductsAndServicesArea=Περιοχή Προϊόντων και Υπηρεσιών  ProductsArea=Περιοχή Προϊόντων @@ -97,23 +97,23 @@ ServicesArea=Περιοχή Υπηρεσιών ListOfStockMovements=Λίστα κινήσεων αποθέματος BuyingPrice=Τιμή Αγοράς PriceForEachProduct=Προϊόντα με συγκεκριμένες τιμές -SupplierCard=Κάρτα πωλητή +SupplierCard=Καρτέλα προμηθευτή PriceRemoved=Η τιμή αφαιρέθηκε BarCode=Barcode -BarcodeType=τύπος Barcode +BarcodeType=Τύπος Barcode SetDefaultBarcodeType=Ορισμός τύπου barcode BarcodeValue=Τιμή Barcode NoteNotVisibleOnBill=Σημείωση (μη ορατή σε τιμολόγια, προτάσεις...) ServiceLimitedDuration=Εάν το προϊόν είναι μια υπηρεσία με περιορισμένη διάρκεια: -FillWithLastServiceDates=Fill with last service line dates +FillWithLastServiceDates=Συμπληρώστε με ημερομηνίες τελευταίας γραμμής σέρβις MultiPricesAbility=Πολλαπλά τμήματα τιμών ανά προϊόν / υπηρεσία (κάθε πελάτης βρίσκεται σε ένα τμήμα τιμών) -MultiPricesNumPrices=Αριθμός τιμής -DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices +MultiPricesNumPrices=Αριθμός διαφορετικής τιμής +DefaultPriceType=Προκαθορισμένη βάση τιμών (συμπεριλαμβανομένου φόρου) κατά την προσθήκη νέων τιμών πώλησης AssociatedProductsAbility=Ενεργοποίηση κιτ (σετ διαφόρων προϊόντων) -VariantsAbility=Enable Variants (variations of products, for example color, size) +VariantsAbility=Ενεργοποίηση παραλλαγών (παραλλαγές προϊόντων, για παράδειγμα χρώμα, μέγεθος) AssociatedProducts=Κιτ AssociatedProductsNumber=Αριθμός προϊόντων που συνθέτουν αυτό το κιτ -ParentProductsNumber=Αριθμός μητρικής συσκευασίας προϊόντος +ParentProductsNumber=Αριθμός γονικής συσκευασίας προϊόντος ParentProducts=Μητρικά προϊόντα IfZeroItIsNotAVirtualProduct=Αν 0, αυτό το προϊόν δεν είναι κιτ IfZeroItIsNotUsedByVirtualProduct= \nΑν 0, αυτό το προϊόν δεν είναι μέρος κάποιου κιτ @@ -126,64 +126,65 @@ ProductAssociationList=Κατάλογος προϊόντων/υπηρεσιών ProductParentList=Λίστα των κιτ με αυτό το προϊόν ως παρελκόμενο ErrorAssociationIsFatherOfThis=Ένα από τα προϊόντα που θα επιλεγούν είναι γονέας με την τρέχουσα προϊόν DeleteProduct=Διαγραφή προϊόντος/υπηρεσίας -ConfirmDeleteProduct=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το προϊόν / υπηρεσία; -ProductDeleted=Προϊόν / Υπηρεσία "%s" διαγράφονται από τη βάση δεδομένων. +ConfirmDeleteProduct=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το προϊόν / υπηρεσία; +ProductDeleted=Προϊόν / Υπηρεσία "%s"; διαγράφηκε από τη βάση δεδομένων. ExportDataset_produit_1=Προϊόντα ExportDataset_service_1=Υπηρεσίες ImportDataset_produit_1=Προϊόντα ImportDataset_service_1=Υπηρεσίες DeleteProductLine=Διαγραφή σειράς προϊόντων -ConfirmDeleteProductLine=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη γραμμή προϊόντος; -ProductSpecial=Ειδικές +ConfirmDeleteProductLine=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη γραμμή προϊόντος; +ProductSpecial=Ειδικό QtyMin=Ελάχιστη. ποσότητα αγοράς -PriceQtyMin=Τιμή ελάχιστη ποσότητα. -PriceQtyMinCurrency=Τιμή (νόμισμα) για αυτό το ποσό. (χωρίς έκπτωση) -VATRateForSupplierProduct=ΦΠΑ (για αυτόν τον πωλητή / προϊόν) -DiscountQtyMin=Έκπτωση για αυτό το ποσό. -NoPriceDefinedForThisSupplier=Δεν έχει οριστεί τιμή / ποσότητα για αυτόν τον πωλητή / προϊόν -NoSupplierPriceDefinedForThisProduct=Δεν καθορίζεται τιμή / ποσότητα πωλητή για αυτό το προϊόν -PredefinedItem=Προκαθορισμένο προϊόν/υπηρεσία +PriceQtyMin=Τιμή ελάχιστης ποσότητας. +PriceQtyMinCurrency=Τιμή (νόμισμα) για αυτήν την ποσότητα. +WithoutDiscount=Χωρίς έκπτωση +VATRateForSupplierProduct=ΦΠΑ (για αυτόν τον προμηθευτή / προϊόν) +DiscountQtyMin=Έκπτωση για αυτήν την ποσότητα. +NoPriceDefinedForThisSupplier=Δεν έχει οριστεί τιμή / ποσότητα για αυτόν τον προμηθευτή / προϊόν +NoSupplierPriceDefinedForThisProduct=Δεν έχει καθοριστεί τιμή/ποσότητα προμηθευτή για αυτό το προϊόν +PredefinedItem=Προκαθορισμένο αντικείμενο PredefinedProductsToSell=Προκαθορισμένο προϊόν PredefinedServicesToSell=Προκαθορισμένη υπηρεσία PredefinedProductsAndServicesToSell=Προκαθορισμένα προϊόντα/υπηρεσίες προς πώληση -PredefinedProductsToPurchase=Προκαθορισμένο προϊόν στην αγορά -PredefinedServicesToPurchase=Προκαθορισμένες υπηρεσίες για την αγορά -PredefinedProductsAndServicesToPurchase=Προκαθορισμένα προϊόντα / υπηρεσίες για αγορά -NotPredefinedProducts=Μη προκαθορισμένα προϊόντα / υπηρεσίες -GenerateThumb=Δημιουργία μικρογραφίας +PredefinedProductsToPurchase=Προκαθορισμένο προϊόν προς αγορά +PredefinedServicesToPurchase=Προκαθορισμένες υπηρεσίες προς αγορά +PredefinedProductsAndServicesToPurchase=Προκαθορισμένα προϊόντα/υπηρεσίες προς αγορά +NotPredefinedProducts=Μη προκαθορισμένα προϊόντα/υπηρεσίες +GenerateThumb=Δημιουργία εικονιδίου ServiceNb=Υπηρεσία #%s ListProductServiceByPopularity=Κατάλογος των προϊόντων / υπηρεσιών κατά δημοτικότητα ListProductByPopularity=Κατάλογος των προϊόντων κατά δημοτικότητα ListServiceByPopularity=Κατάλογος των υπηρεσιών κατά δημοτικότητα Finished=Κατασκευασμένο Προϊόν RowMaterial=Πρώτη ύλη -ConfirmCloneProduct=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε το προϊόν ή την υπηρεσία %s ? +ConfirmCloneProduct=Είστε σίγουροι ότι θέλετε να κλωνοποιήσετε το προϊόν ή την υπηρεσία %s ; CloneContentProduct=Επαναχρησιμοποιήστε όλες τις κύριες πληροφορίες του προϊόντος/υπηρεσίας -ClonePricesProduct=Τιμές κλωνισμού -CloneCategoriesProduct=Clone linked tags/categories -CloneCompositionProduct=Clone virtual products/services -CloneCombinationsProduct=Clone the product variants +ClonePricesProduct=Επαναχρησιμοποιήστε τις τιμες +CloneCategoriesProduct=Επαναχρησιμοποιήστε συνδεδεμένες ετικέτες/κατηγορίες +CloneCompositionProduct=Επαναχρησιμοποιήστε εικονικα προϊόντα/υπηρεσιες +CloneCombinationsProduct=Επαναχρησιμοποιήστε τις παραλλαγές προϊόντων ProductIsUsed=Μεταχειρισμένο -NewRefForClone=Ref. of new product/service +NewRefForClone=Αναφ. νέου προϊόντος/υπηρεσίας SellingPrices=Τιμές Πώλησης BuyingPrices=Τιμές Αγοράς CustomerPrices=Τιμές Πελατών -SuppliersPrices=Τιμές πωλητών -SuppliersPricesOfProductsOrServices=Τιμές πωλητών (προϊόντων ή υπηρεσιών) -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=Τιμές προμηθευτών +SuppliersPricesOfProductsOrServices=Τιμές προμηθευτών (προϊόντων ή υπηρεσιών) +CustomCode=Τελωνείο|Εμπόρευμα|Κωδικός HS +CountryOrigin=Χώρα προέλευσης +RegionStateOrigin=Περιοχή προέλευσης +StateOrigin=Πολιτεία|Επαρχία προέλευσης +Nature=Φύση του προϊόντος (ακατέργαστο/κατασκευασμένο) +NatureOfProductShort=Φύση του προϊόντος +NatureOfProductDesc=Πρώτη ύλη ή κατασκευασμένο προϊόν ShortLabel=Σύντομη ετικέτα Unit=Μονάδα p=Μονάδα set=Σετ se=Σετ second=Δευτερόλεπτο -s=Δευτερόλεπτα +s=Δευτερόλεπτο hour=Ώρα h=Ώρα day=Ημέρα @@ -198,7 +199,7 @@ lm=lm m2=m² m3=m³ liter=Λίτρο -l=μεγάλο +l=Λίτρο unitP=Κομμάτι unitSET=Σειρά unitS=Δευτερόλεπτο @@ -206,7 +207,7 @@ unitH=Ώρα unitD=Ημέρα unitG=Γραμμάριο unitM=Μέτρο -unitLM=Γραμικός μετρητής +unitLM=Μέτρο unitM2=Τετραγωνικό μέτρο unitM3=Κυβικό μέτρο unitL=Λίτρο @@ -224,37 +225,37 @@ unitFT=ft unitIN=ίντσα unitM2=Τετραγωνικό μέτρο unitDM2=dm² -unitCM2=εκ² -unitMM2=χιλ² +unitCM2=cm² +unitMM2=mm² unitFT2=ft² unitIN2=in² unitM3=Κυβικό μέτρο unitDM3=dm³ -unitCM3=cm3 +unitCM3=cm³ unitMM3=mm³ unitFT3=ft³ unitIN3=in³ unitOZ3=ουγκιά -unitgallon=gallon -ProductCodeModel=Προϊόν κωδ. Πρότυπο -ServiceCodeModel=Υπηρεσία κωδ. Πρότυπο +unitgallon=γαλόνι +ProductCodeModel=Πρότυπο αναφοράς προϊόντος +ServiceCodeModel=Πρότυπο αναφοράς υπηρεσίας CurrentProductPrice=Τρέχουσα Τιμή -AlwaysUseNewPrice=Always use current price of product/service -AlwaysUseFixedPrice=Use the fixed price -PriceByQuantity=Διαφορετικές τιμές από την ποσότητα +AlwaysUseNewPrice=Να χρησιμοποιείτε πάντα την τρέχουσα τιμή προϊόντος/υπηρεσίας +AlwaysUseFixedPrice=Χρησιμοποιήστε τη σταθερή τιμή +PriceByQuantity=Διαφορετικές τιμές ανά ποσότητα DisablePriceByQty=Απενεργοποιήστε τις τιμές ανά ποσότητα -PriceByQuantityRange=Quantity range -MultipriceRules=Automatic prices for segment +PriceByQuantityRange=Εύρος ποσότητας +MultipriceRules=Αυτόματες τιμές για το τμήμα UseMultipriceRules=Χρησιμοποιήστε κανόνες για το τμήμα των τιμών (που ορίζονται στην εγκατάσταση μονάδας προϊόντος) για να υπολογίσετε αυτόματα τις τιμές όλων των άλλων τμημάτων σύμφωνα με τον πρώτο τομέα PercentVariationOver=Παραλλαγή %% μέσω %s PercentDiscountOver=%% έκπτωση πάνω από %s KeepEmptyForAutoCalculation=Κρατήστε κενό για να το υπολογίσετε αυτομάτως από το βάρος ή τον όγκο των προϊόντων -VariantRefExample=Παραδείγματα: COL, SIZE +VariantRefExample=Παραδείγματα: ΧΡΩΜΑ, ΜΕΓΕΘΟΣ VariantLabelExample=Παραδείγματα: Χρώμα, Μέγεθος ### composition fabrication -Build=Produce +Build=Παράγω ProductsMultiPrice=Προϊόντα και τιμές για κάθε τμήμα τιμών -ProductsOrServiceMultiPrice=Τιμές πελατών (προϊόντων ή υπηρεσιών, πολυ-τιμές) +ProductsOrServiceMultiPrice=Τιμές πελατών (προϊόντων ή υπηρεσιών, πολλαπλές τιμές) ProductSellByQuarterHT=Κύκλος εργασιών τριμηνιαία πριν από τη φορολογία ServiceSellByQuarterHT=Κύκλος εργασιών ανά τρίμηνο προ φόρων Quarter1=1ο. Τέταρτο @@ -278,12 +279,12 @@ PriceByCustomer=Διαφορετικές τιμές για κάθε πελάτη PriceCatalogue=Μια ενιαία τιμή πώλησης ανά προϊόν / υπηρεσία PricingRule=Κανόνες για τις τιμές πώλησης AddCustomerPrice=Προσθήκη τιμής ανά πελάτη -ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries +ForceUpdateChildPriceSoc=Ορίστε την ίδια τιμή στις θυγατρικές του πελάτη PriceByCustomerLog=Καταγραφή προηγούμενων τιμών πελατών MinimumPriceLimit=Η ελάχιστη τιμή δεν μπορεί να είναι χαμηλότερη από %s -MinimumRecommendedPrice=Η ελάχιστη συνιστώμενη τιμή είναι: %s +MinimumRecommendedPrice=Η ελάχιστη προτεινόμενη τιμή είναι: %s PriceExpressionEditor=Επεξεργαστής συνάρτησης τιμών -PriceExpressionSelected=Επιλογή συνάρτησης τιμών +PriceExpressionSelected=Επιλεγμένη έκφραση τιμής PriceExpressionEditorHelp1="τιμή = 2 + 2" ή "2 + 2" για τον καθορισμό της τιμής. Χρησιμοποιήστε ; για να διαχωρίσετε τις εκφράσεις PriceExpressionEditorHelp2=Μπορείτε να έχετε πρόσβαση σε ExtraFields με μεταβλητές όπως # extrafield_myextrafieldkey # και παγκόσμιες μεταβλητές με # global_mycode # PriceExpressionEditorHelp3=Και στις δύο τιμές προϊόντων / υπηρεσιών και πωλητών υπάρχουν οι παρακάτω μεταβλητές:
    # tva_tx # # localtax1_tx # # localtax2_tx # # βάρος # # μήκος # # επιφάνεια # # price_min # @@ -292,12 +293,12 @@ PriceExpressionEditorHelp5=Διαθέσιμες συνολικές τιμές: PriceMode=Λειτουργία Τιμής PriceNumeric=Αριθμός DefaultPrice=Προεπιλεγμένη τιμή -DefaultPriceLog=Log of previous default prices +DefaultPriceLog=Αρχείο προηγούμενων προεπιλεγμένων τιμών ComposedProductIncDecStock=Αύξηση/Μείωση αποθεμάτων στην μητρική -ComposedProduct=Παιδικά προϊόντα +ComposedProduct=Child products MinSupplierPrice=Ελάχιστη τιμή αγοράς MinCustomerPrice=Ελάχιστη τιμή πώλησης -NoDynamicPrice=No dynamic price +NoDynamicPrice=Χωρίς δυναμική τιμή DynamicPriceConfiguration=Διαμόρφωση δυναμικών τιμών DynamicPriceDesc=Μπορείτε να ορίσετε μαθηματικούς τύπους για τον υπολογισμό των τιμών των πελατών ή των προμηθευτών. Τέτοιοι τύποι μπορούν να χρησιμοποιήσουν όλους τους μαθηματικούς χειριστές, κάποιες σταθερές και μεταβλητές. Μπορείτε να ορίσετε εδώ τις μεταβλητές που θέλετε να χρησιμοποιήσετε. Αν η μεταβλητή χρειάζεται αυτόματη ενημέρωση, μπορείτε να ορίσετε την εξωτερική διεύθυνση URL ώστε να επιτρέψει στο Dolibarr να ενημερώσει αυτόματα την τιμή. AddVariable=Προσθήκη μεταβλητής @@ -316,7 +317,7 @@ LastUpdated=Τελευταία ενημέρωση CorrectlyUpdated=Ενημερώθηκε σωστά PropalMergePdfProductActualFile=Αρχείο/α που θα προστεθούν στο AZUR pdf PropalMergePdfProductChooseFile=Επιλογή αρχείων pdf -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=Συμπεριλαμβανομένων προϊόντων/υπηρεσιών με την ετικέτα DefaultPriceRealPriceMayDependOnCustomer=Προεπιλεγμένη τιμή, η πραγματική τιμή μπορεί να εξαρτάται από τον πελάτη WarningSelectOneDocument=Επιλέξτε τουλάχιστον ένα έγγραφο DefaultUnitToShow=Μονάδα @@ -329,24 +330,24 @@ TranslatedNote=Μεταφρασμένες σημειώσεις ProductWeight=Βάρος για 1 προϊόν ProductVolume=Όγκος για 1 προϊόν WeightUnits=Μονάδα βάρους -VolumeUnits=Μονάδα έντασης ήχου +VolumeUnits=Μονάδα όγκου WidthUnits=Πλάτος LengthUnits=Μήκος HeightUnits=Ύψος SurfaceUnits=Μονάδα επιφάνειας SizeUnits=Μονάδα μεγέθους -DeleteProductBuyPrice=Διαγράψτε την τιμή αγοράς +DeleteProductBuyPrice=Διαγραφή τιμής αγοράς ConfirmDeleteProductBuyPrice=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την τιμή αγοράς; SubProduct=Υποπροϊόν ProductSheet=Φύλλο προϊόντος ServiceSheet=Φύλλο εξυπηρέτησης 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=Περιγραφή του πωλητή για το προϊόν +UseProductFournDesc=Προσθέστε μια δυνατότητα για να ορίσετε την περιγραφή του προϊόντος που ορίστηκε από τους προμηθευτές (για κάθε αναφορά προμηθευτή) επιπρόσθετα της περιγραφής για τους πελάτες +ProductSupplierDescription=Περιγραφή προμηθευτή για το προϊόν UseProductSupplierPackaging=Χρησιμοποιήστε τη συσκευασία στις τιμές προμηθευτή (επανυπολογίστε τις ποσότητες σύμφωνα με τη συσκευασία που καθορίζεται στην τιμή προμηθευτή κατά την προσθήκη / ενημέρωση της γραμμής στα έγγραφα προμηθευτών) 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=Θα αγοράσετε αυτόματα ένα πολλαπλάσιο αυτής της ποσότητας. QtyRecalculatedWithPackaging=Η ποσότητα της γραμμής υπολογίστηκε εκ νέου σύμφωνα με τη συσκευασία του προμηθευτή #Attributes @@ -361,7 +362,7 @@ ProductCombinationAlreadyUsed=Παρουσιάστηκε σφάλμα κατά ProductCombinations=Παραλλαγές PropagateVariant=Διαφορετικές παραλλαγές HideProductCombinations=Απόκρυψη παραλλαγών προϊόντων στον επιλογέα προϊόντων -ProductCombination=Παραλαγή +ProductCombination=Παραλλαγή NewProductCombination=Νέα παραλλαγή EditProductCombination=Επεξεργασία παραλλαγής NewProductCombinations=Νέες παραλλαγές @@ -370,16 +371,16 @@ SelectCombination=Επιλέξτε συνδυασμό ProductCombinationGenerator=Γεννήτρια παραλλαγών Features=Χαρακτηριστικά PriceImpact=Επιπτώσεις στις τιμές -ImpactOnPriceLevel=Impact on price level %s -ApplyToAllPriceImpactLevel= Apply to all levels -ApplyToAllPriceImpactLevelHelp=By clicking here you set the same price impact on all levels +ImpactOnPriceLevel=Αντίκτυπος στο επίπεδο τιμών %s +ApplyToAllPriceImpactLevel= Εφαρμογή σε όλα τα επίπεδα +ApplyToAllPriceImpactLevelHelp=Κάνοντας κλικ εδώ, ορίζετε τον ίδιο αντίκτυπο στην τιμή σε όλα τα επίπεδα WeightImpact=Επιπτώσεις στο βάρος NewProductAttribute=Νέο χαρακτηριστικό NewProductAttributeValue=Νέα τιμή χαρακτηριστικού ErrorCreatingProductAttributeValue=Παρουσιάστηκε σφάλμα κατά τη δημιουργία της τιμής του χαρακτηριστικού. Θα μπορούσε να είναι επειδή υπάρχει ήδη μια υπάρχουσα τιμή με αυτή την αναφορά -ProductCombinationGeneratorWarning=Εάν συνεχίσετε, προτού δημιουργήσετε νέες παραλλαγές, όλες οι προηγούμενες θα διαγραφούν. Οι ήδη υπάρχοντες θα ενημερωθούν με τις νέες τιμές -TooMuchCombinationsWarning=Η παραγωγή πολλών παραλλαγών μπορεί να οδηγήσει σε υψηλή CPU, χρήση μνήμης και Dolibarr δεν είναι σε θέση να τα δημιουργήσει. Η ενεργοποίηση της επιλογής "%s" μπορεί να βοηθήσει στη μείωση της χρήσης της μνήμης. -DoNotRemovePreviousCombinations=Μην αφαιρέσετε προηγούμενες παραλλαγές +ProductCombinationGeneratorWarning=Εάν συνεχίσετε, πριν δημιουργήσετε νέες παραλλαγές, όλες οι προηγούμενες θα ΔΙΑΓΡΑΦΟΥΝ. Οι ήδη υπάρχουσες θα ενημερωθούν με τις νέες τιμές +TooMuchCombinationsWarning=Η δημιουργία πολλών παραλλαγών μπορεί να έχει ως αποτέλεσμα υψηλή χρήση CPU και μνήμης με συνέπεια το Dolibarr να μην μπορεί να τις δημιουργήσει. Η ενεργοποίηση της επιλογής "%s" μπορεί να βοηθήσει στη μείωση της χρήσης μνήμης. +DoNotRemovePreviousCombinations=Μην αφαιρείτε προηγούμενες παραλλαγές UsePercentageVariations=Χρησιμοποιήστε ποσοστιαίες παραλλαγές PercentageVariation=Ποσοστιαία μεταβολή ErrorDeletingGeneratedProducts=Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής των υπαρχουσών παραλλαγών προϊόντων @@ -393,21 +394,36 @@ ConfirmCloneProductCombinations=Θέλετε να αντιγράψετε όλε CloneDestinationReference=Παραπομπή προϊόντος προορισμού ErrorCopyProductCombinations=Παρουσιάστηκε σφάλμα κατά την αντιγραφή των παραλλαγών του προϊόντος ErrorDestinationProductNotFound=Το προϊόν προορισμού δεν βρέθηκε -ErrorProductCombinationNotFound=Παραλλαγή προϊόντος δεν βρέθηκε -ActionAvailableOnVariantProductOnly=Δράση διαθέσιμη μόνο για την παραλλαγή του προϊόντος +ErrorProductCombinationNotFound=Η παραλλαγή προϊόντος δεν βρέθηκε +ActionAvailableOnVariantProductOnly=Η ενέργεια είναι διαθέσιμη μόνο για την παραλλαγή του προϊόντος ProductsPricePerCustomer=Τιμές προϊόντων ανά πελάτη ProductSupplierExtraFields=Πρόσθετα χαρακτηριστικά (τιμές προμηθευτή) DeleteLinkedProduct=Διαγράψτε το θυγατρικό προϊόν που συνδέεται με τον συνδυασμό -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price -PMPValue=Μέση σταθμική τιμή +AmountUsedToUpdateWAP=Ποσό που θα χρησιμοποιηθεί για την ενημέρωση της σταθμισμένης μέσης τιμής +PMPValue=Σταθμισμένη μέση τιμή 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 -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +mandatoryperiod=Υποχρεωτικές περίοδοι +mandatoryPeriodNeedTobeSet=Σημείωση: Πρέπει να καθοριστεί η περίοδος (ημερομηνία έναρξης και λήξης). +mandatoryPeriodNeedTobeSetMsgValidate=Μια υπηρεσία απαιτεί περίοδο έναρξης και λήξης +mandatoryHelper=Επιλέξτε αυτό εάν θέλετε ένα μήνυμα στον χρήστη κατά τη δημιουργία/επικύρωση τιμολογίου, εμπορικής πρότασης, παραγγελίας πώλησης χωρίς να εισάγετε ημερομηνία έναρξης και λήξης στις γραμμές αυτής της υπηρεσίας.
    Σημειώστε ότι το μήνυμα είναι μια προειδοποίηση και όχι ένα σφάλμα αποκλεισμού. +DefaultBOM=Προεπιλεγμένο BOM +DefaultBOMDesc=Το προεπιλεγμένο BOM συνιστάται να χρησιμοποιείται για την κατασκευή αυτού του προϊόντος. Αυτό το πεδίο μπορεί να οριστεί μόνο εάν η φύση του προϊόντος είναι "%s". +Rank=Κατάταξη +MergeOriginProduct=Διπλότυπο προϊόν (προϊόν που θέλετε να διαγράψετε) +MergeProducts=Συγχώνευση προϊόντων +ConfirmMergeProducts=Είστε σίγουροι ότι θέλετε να συγχωνεύσετε το επιλεγμένο προϊόν με το τρέχον; Όλα τα συνδεδεμένα αντικείμενα (τιμολόγια, παραγγελίες, ...) θα μετακινηθούν στο τρέχον προϊόν και μετά το επιλεγμένο προϊόν θα διαγραφεί. +ProductsMergeSuccess=Τα προϊόντα έχουν συγχωνευθεί +ErrorsProductsMerge=Σφάλματα κατά τη συγχώνευση προϊόντων +SwitchOnSaleStatus=Ενεργοποίηση κατάστασης πώλησης +SwitchOnPurchaseStatus=Ενεργοποίηση κατάσταση αγοράς +StockMouvementExtraFields= Extra Fields (κίνηση μετοχών) +InventoryExtraFields= Επιπλέον πεδία (απόθεμα) +ScanOrTypeOrCopyPasteYourBarCodes=Σαρώστε ή πληκτρολογήστε ή αντιγράψτε/επικολλήστε τους γραμμωτούς κώδικες σας +PuttingPricesUpToDate=Ενημερώστε τις τιμές με τις τρέχουσες γνωστές τιμές +PMPExpected=Αναμενόμενο PMP +ExpectedValuation=Αναμενόμενη Αποτίμηση +PMPReal=Πραγματικό PMP +RealValuation=Πραγματική Αποτίμηση +ConfirmEditExtrafield = Επιλέξτε το επιπλέον πεδίο που θέλετε να τροποποιήσετε +ConfirmEditExtrafieldQuestion = Είστε σιγουροι ότι θέλετε να τροποποιήσετε αυτό το επιπλέον πεδίο; +ModifyValueExtrafields = Τροποποίηση της τιμής ενός επιπλέον πεδίου diff --git a/htdocs/langs/el_GR/projects.lang b/htdocs/langs/el_GR/projects.lang index a31c1391fd3..b9af08448d1 100644 --- a/htdocs/langs/el_GR/projects.lang +++ b/htdocs/langs/el_GR/projects.lang @@ -1,60 +1,60 @@ # Dolibarr language file - Source file is en_US - projects -RefProject=Κωδ. έργου -ProjectRef=Αναφορά έργου. -ProjectId=Id Έργου +RefProject=Αναφ. έργου +ProjectRef=Αναφ. έργου. +ProjectId=Αναγνωριστικό έργου ProjectLabel=Ετικέτα έργου -ProjectsArea=Περιοχή έργων +ProjectsArea=Τομέας Έργων ProjectStatus=Κατάσταση έργου SharedProject=Όλοι -PrivateProject=Επαφές του έργου +PrivateProject=Εκχωρημένες επαφές ProjectsImContactFor=Έργα για τα οποία είμαι αποκλειστική επαφή AllAllowedProjects=Όλα τα έργα που μπορώ να διαβάσω (δικά μου + δημόσια) AllProjects=Όλα τα έργα MyProjectsDesc=Αυτή η προβολή περιορίζεται στα έργα για τα οποία είστε επαφή -ProjectsPublicDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα σας επιτρέπεται να διαβάσετε. +ProjectsPublicDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα που επιτρέπεται να διαβάσετε. TasksOnProjectsPublicDesc=Αυτή η προβολή παρουσιάζει όλες τις εργασίες στα έργα που επιτρέπεται να διαβάσετε. -ProjectsPublicTaskDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τα καθήκοντα που επιτρέπεται να δείτε. -ProjectsDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα (δικαιώματα χρήστη να δώσει δικαίωμα για να δείτε τα πάντα). +ProjectsPublicTaskDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες που επιτρέπεται να διαβάσετε. +ProjectsDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα (τα δικαιώματα χρήστη σας δίνουν την άδεια να βλέπετε τα πάντα). TasksOnProjectsDesc=Αυτή η προβολή παρουσιάζει όλες τις εργασίες σε όλα τα έργα (οι άδειες χρήστη σας επιτρέπουν να δείτε τα πάντα). MyTasksDesc=Αυτή η προβολή περιορίζεται στα έργα ή εργασίες για τα οποία είστε επαφή -OnlyOpenedProject=Είναι ορατά μόνο τα ανοιχτά έργα (δεν εμφανίζονται έργα σε μορφή πρόχειρης ή κλειστής). +OnlyOpenedProject=Είναι ορατά μόνο τα ανοιχτά έργα (δεν εμφανίζονται τα προσχέδια ή τα κλειστά εργα). ClosedProjectsAreHidden=Τα κλειστά έργα δεν είναι ορατά. -TasksPublicDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα και τα καθήκοντα που επιτρέπεται να διαβάζουν. -TasksDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα και τα καθήκοντα (δικαιώματα χρήστη να δώσει δικαίωμα για να δείτε τα πάντα). -AllTaskVisibleButEditIfYouAreAssigned=Όλες οι εργασίες για πιστοποιημένα έργα είναι ορατές, αλλά μπορείτε να εισάγετε χρόνο μόνο για εργασία που έχει εκχωρηθεί σε επιλεγμένο χρήστη. Εκχωρήστε εργασία αν χρειαστεί να εισαγάγετε χρόνο σε αυτήν. -OnlyYourTaskAreVisible=Μόνο εργασίες που σας έχουν ανατεθεί είναι ορατές. Αν χρειάζεται να εισάγετε χρόνο στην εργασία και η εργασία δεν είναι ορατή, πρέπει να αντιστοιχίσετε την εργασία στον εαυτό σας. +TasksPublicDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες που επιτρέπεται να διαβάσετε. +TasksDesc=Αυτή η προβολή παρουσιάζει όλα τα έργα και τις εργασίες (τα δικαιώματα χρήστη σας δίνουν την άδεια να βλέπετε τα πάντα). +AllTaskVisibleButEditIfYouAreAssigned=Όλες οι εργασίες για πιστοποιημένα έργα είναι ορατές, αλλά μπορείτε να εισάγετε χρόνο μόνο για εργασία που έχει εκχωρηθεί σε επιλεγμένο χρήστη. Εκχωρήστε εργασία αν χρειαστεί να εισάγετε χρόνο σε αυτήν. +OnlyYourTaskAreVisible=Μόνο εργασίες που σας έχουν ανατεθεί είναι ορατές. Αν χρειάζεται να εισάγετε χρόνο στην εργασία και η εργασία δεν είναι ορατή, πρέπει να αναθέσετε την εργασία στον εαυτό σας. 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 +SetProject=Ορισμός έργου +NoProject=Κανένα έργο δεν έχει οριστεί ή εκχωρηθεί NbOfProjects=Αριθμός έργων NbOfTasks=Αριθμός εργασιών -TimeSpent=Χρόνος που δαπανήθηκε -TimeSpentByYou=Χρόνος που δαπανάται από εσάς -TimeSpentByUser=Χρόνος που δαπανάται από τον χρήστη -TimesSpent=Ο χρόνος που δαπανάται +TimeSpent=Χρόνος που ξοδεύτηκε +TimeSpentByYou=Χρόνος που ξοδεύτηκε από εσάς +TimeSpentByUser=Χρόνος που ξοδεύτηκε από χρήστη +TimesSpent=Χρόνος που δαπανήθηκε TaskId=Αναγνωριστικό εργασίας RefTask=Αναφορά εργασίας LabelTask=Ετικέτα εργασιών -TaskTimeSpent=Ο χρόνος που δαπανάται σε εργασίες +TaskTimeSpent=Χρόνος που ξοδεύτηκε σε εργασίες TaskTimeUser=Χρήστης TaskTimeNote=Σημείωση TaskTimeDate=Ημερομηνία -TasksOnOpenedProject=Καθήκοντα σε ανοικτά έργα -WorkloadNotDefined=Ο φόρτος εργασίας δεν ορίζεται -NewTimeSpent=Ο χρόνος που δαπανάται +TasksOnOpenedProject=Εργασίες σε ανοιχτά έργα +WorkloadNotDefined=Ο φόρτος εργασίας δεν έχει καθοριστεί +NewTimeSpent=Χρόνος που ξοδεύτηκε MyTimeSpent=Ο χρόνος μου πέρασε BillTime=Ο χρόνος που πέρασε BillTimeShort=Χρόνος λογαριασμού @@ -72,11 +72,11 @@ AddHereTimeSpentForDay=Προσθέστε εδώ χρόνο που δαπανά AddHereTimeSpentForWeek=Προσθέστε εδώ χρόνο που δαπανάται για αυτήν την εβδομάδα / εργασία Activity=Δραστηριότητα Activities=Εργασίες/Δραστηριότητες -MyActivities=Οι εργασίες/δραστηρ. μου +MyActivities=Οι εργασίες/δραστηρίοτητες μου MyProjects=Τα έργα μου -MyProjectsArea=Τα έργα μου Περιοχή +MyProjectsArea=Τομέας έργων μου DurationEffective=Αποτελεσματική διάρκεια -ProgressDeclared=Ορίστε την πραγματική πρόοδο +ProgressDeclared=Δηλώθηκε πραγματική πρόοδος TaskProgressSummary=Πρόοδος εργασιών CurentlyOpenedTasks=Ανοιχτές εργασίες TheReportedProgressIsLessThanTheCalculatedProgressionByX=Η δηλωμένη πραγματική πρόοδος είναι μικρότερη κατά %s από την πρόοδο που έχει καταναλωθεί @@ -86,59 +86,59 @@ 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=Δραστηριότητα στο έργο αυτού του έτους +ActivityOnProjectThisYear=Δραστηριότητα στο έργο φέτος ChildOfProjectTask=Παιδί του έργου / εργασίας ChildOfTask=Παιδί της αποστολής TaskHasChild=Η εργασία έχει παιδί -NotOwnerOfProject=Δεν ιδιοκτήτης αυτού του ιδιωτικού έργου, +NotOwnerOfProject=Δεν είστε υπεύθυνος αυτού του ιδιωτικού έργου AffectedTo=Κατανέμονται σε -CantRemoveProject=Το έργο δεν μπορεί να διαγραφεί καθώς συνδέεται με κάποιο άλλο αντικείμενο (τιμολόγιο, εντολές ή αντίστοιχο). Δείτε την καρτέλα '%s'. -ValidateProject=Επικύρωση projet -ConfirmValidateProject=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτό το έργο; +CantRemoveProject=Το έργο δεν μπορεί να διαγραφεί καθώς συνδέεται με κάποιο άλλο αντικείμενο (τιμολόγιο, εντολές ή αλλο). Δείτε την καρτέλα '%s'. +ValidateProject=Επικύρωση έργου +ConfirmValidateProject=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτό το έργο; CloseAProject=Κλείσιμο έργου -ConfirmCloseAProject=Είστε βέβαιοι ότι θέλετε να κλείσετε αυτό το έργο; -AlsoCloseAProject=Επίσης, κλείστε το έργο (κρατήστε το ανοιχτό αν εξακολουθείτε να χρειαστεί να ακολουθήσετε τα καθήκοντα παραγωγής σε αυτό) +ConfirmCloseAProject=Είστε σίγουροι ότι θέλετε να κλείσετε αυτό το έργο; +AlsoCloseAProject=Επίσης κλείστε το έργο (διατηρήστε το ανοιχτό εάν εξακολουθείτε να χρειάζεστε να ακολουθείτε εργασίες παραγωγής σε αυτό) ReOpenAProject=Άνοιγμα έργου -ConfirmReOpenAProject=Είστε βέβαιοι ότι θέλετε να ανοίξετε ξανά αυτό το έργο; -ProjectContact=Αντιπρόσωποι του έργου +ConfirmReOpenAProject=Είστε σίγουροι ότι θέλετε να ανοίξετε ξανά αυτό το έργο; +ProjectContact=Επαφές έργου TaskContact=Επαφές εργασιών -ActionsOnProject=Δράσεις για το έργο -YouAreNotContactOfProject=Δεν έχετε μια επαφή του ιδιωτικού έργου, -UserIsNotContactOfProject=Ο χρήστης δεν είναι μια επαφή αυτού του ιδιωτικού έργου +ActionsOnProject=Ενέργειες για το έργο +YouAreNotContactOfProject=Δεν είστε επαφή αυτού του ιδιωτικού έργου +UserIsNotContactOfProject=Ο χρήστης δεν είναι επαφή αυτού του ιδιωτικού έργου DeleteATimeSpent=Διαγράψτε το χρόνο που δαπανάται ConfirmDeleteATimeSpent=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον χρόνο; DoNotShowMyTasksOnly=Δείτε επίσης τα καθήκοντα που δεν ανατέθηκαν σε μένα ShowMyTasksOnly=Δείτε τα καθήκοντα που σας έχουν ανατεθεί TaskRessourceLinks=Επαφές της εργασίας -ProjectsDedicatedToThisThirdParty=Έργα που αφορούν αυτό το στοιχείο +ProjectsDedicatedToThisThirdParty=Έργα που αφορούν αυτό το τρίτο μέρος NoTasks=Δεν υπάρχουν εργασίες για αυτό το έργο LinkedToAnotherCompany=Συνδέεται με άλλο τρίτο μέρος -TaskIsNotAssignedToUser=Εργασία δεν έχει εκχωρηθεί στο χρήστη. Χρησιμοποιήστε το κουμπί ' %s ' για να εκχωρήσετε εργασία τώρα. +TaskIsNotAssignedToUser=Η εργασία δεν έχει ανατεθεί στον χρήστη. Χρησιμοποιήστε το κουμπί ' %s ' για να αναθέσετε την εργασία τώρα. ErrorTimeSpentIsEmpty=Χρόνος που δαπανάται είναι άδειο TimeRecordingRestrictedToNMonthsBack=Η καταγραφή χρόνου περιορίζεται σε %s μήνες πίσω ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλα τα καθήκοντα του έργου (%s καθηκόντων προς το παρόν) και όλες οι είσοδοι του χρόνου. @@ -151,14 +151,14 @@ 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=Πιθανότητα προοπτικής @@ -166,10 +166,10 @@ OpportunityProbabilityShort=Πιθαν. προοπτικής OpportunityAmount=Ποσό προοπτικής OpportunityAmountShort=Ποσό προοπτικής OpportunityWeightedAmount=Σταθμισμένο ποσό ευκαιρίας -OpportunityWeightedAmountShort=Αντί. σταθμισμένο ποσό +OpportunityWeightedAmountShort=Σταθμ. ποσό ευκαιρίας OpportunityAmountAverageShort=Μέσο ποσό προοπτικής OpportunityAmountWeigthedShort=Σταθμισμένο ποσό προοπτικής -WonLostExcluded=Κερδισμένο / Lost αποκλεισμένο +WonLostExcluded=Κερδισμένες/χαμένες εξαιρούνται ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Επικεφαλής του έργου TypeContact_project_external_PROJECTLEADER=Επικεφαλής του έργου @@ -181,15 +181,16 @@ 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 πρέπει πρώτα να επικυρωθεί για να οριστεί ως Υπογεγραμμένο. FirstAddRessourceToAllocateTime=Ορίστε έναν πόρο χρήστη ως επαφή του έργου για να διαθέσετε χρόνο InputPerDay=Εισαγωγή ανά ημέρα InputPerWeek=Εισαγωγή ανά εβδομάδα @@ -197,30 +198,30 @@ InputPerMonth=Είσοδος / εισαγωγή ανά μήνα InputDetail=Λεπτομέρειες εισόδου TimeAlreadyRecorded=Αυτός είναι ο χρόνος που έχει ήδη εγγραφεί για αυτήν την εργασία / ημέρα και ο χρήστης %s ProjectsWithThisUserAsContact=Έργα με αυτόν τον χρήστη ως επαφή -ProjectsWithThisContact=Projects with this contact -TasksWithThisUserAsContact=Εργασίες που έχουν εκχωρηθεί σε αυτόν τον χρήστη +ProjectsWithThisContact=Έργα με αυτήν την επαφή +TasksWithThisUserAsContact=Εργασίες που έχουν ανατεθεί σε αυτόν τον χρήστη ResourceNotAssignedToProject=Δεν έχει ανατεθεί σε έργο ResourceNotAssignedToTheTask=Δεν έχει ανατεθεί στην εργασία -NoUserAssignedToTheProject=Δεν έχουν ανατεθεί χρήστες σε αυτό το έργο +NoUserAssignedToTheProject=Δεν έχουν εκχωρηθεί χρήστες σε αυτό το έργο TimeSpentBy=Χρόνος που πέρασε -TasksAssignedTo=Οι εργασίες που έχουν εκχωρηθεί στο -AssignTaskToMe=Αντιστοίχηση εργασίας στον εαυτό μου -AssignTaskToUser=Αναθέστε εργασία σε %s -SelectTaskToAssign=Επιλέξτε εργασία για εκχώρηση ... +TasksAssignedTo=Οι εργασίες που έχουν ανατεθεί στο +AssignTaskToMe=Ανάθεση εργασίας στον εαυτό μου +AssignTaskToUser=Ανάθεση εργασία στο %s +SelectTaskToAssign=Επιλέξτε εργασία για ανάθεση... AssignTask=Ανάθεση ProjectOverview=Επισκόπηση ManageTasks=Χρησιμοποιήστε έργα για να παρακολουθήσετε εργασίες και / ή να αναφέρετε το χρόνο που ξοδεύετε (φύλλα εργασίας) -ManageOpportunitiesStatus=Χρησιμοποιήστε τα έργα για να παρακολουθήσετε τις προοπτικές / ευκαιρίες +ManageOpportunitiesStatus=Χρησιμοποιήστε τα έργα για να παρακολουθήσετε τις προοπτικές/ευκαιρίες ProjectNbProjectByMonth=Αριθμός δημιουργηθέντων έργων ανά μήνα ProjectNbTaskByMonth=Αριθμός δημιουργημένων εργασιών ανά μήνα ProjectOppAmountOfProjectsByMonth=Ποσό προοπτικών ανά μήνα -ProjectWeightedOppAmountOfProjectsByMonth=Σταθμισμένο ποσό προοπτικών κατά μήνα +ProjectWeightedOppAmountOfProjectsByMonth=Σταθμισμένο ποσό προοπτικών ανά μήνα ProjectOpenedProjectByOppStatus=Ανοιχτές προοπτικές έργων ανά κατάσταση προοπτικής ProjectsStatistics=Στατιστικά έργων ή προοπτικών TasksStatistics=Στατιστικά εργασιών των έργων ή των προοπτικών TaskAssignedToEnterTime=Η εργασία έχει εκχωρηθεί. Πρέπει να είναι δυνατή η εισαγωγή του χρόνου αυτού του έργου. -IdTaskTime=Χρόνος εργασίας Id -YouCanCompleteRef=Εάν θέλετε να συμπληρώσετε το ref με κάποιο επίθημα, συνιστάται να προσθέσετε ένα χαρακτήρα για να το διαχωρίσετε, οπότε η αυτόματη αρίθμηση θα εξακολουθήσει να λειτουργεί σωστά για τα επόμενα έργα. Για παράδειγμα %s-MYSUFFIX +IdTaskTime=Αναγνωριστικό χρόνου εργασίας +YouCanCompleteRef=Εάν θέλετε να συμπληρώσετε την αναφορά με κάποιο επίθημα, συνιστάται να προσθέσετε έναν χαρακτήρα - για να το διαχωρίσετε, έτσι η αυτόματη αρίθμηση θα εξακολουθεί να λειτουργεί σωστά για τα επόμενα έργα. Για παράδειγμα %s-MYSUFFIX OpenedProjectsByThirdparties=Ανοίξτε έργα από τρίτους OnlyOpportunitiesShort=Μόνο προοπτικές OpenedOpportunitiesShort=Ανοιχτές προοπτικές @@ -231,34 +232,34 @@ OpportunityPonderatedAmount=Σταθμισμένο ποσό προοπτικών OpportunityPonderatedAmountDesc=Ποσό προοπτικών σταθμισμένο με βάση την πιθανότητα OppStatusPROSP=Προοπτική OppStatusQUAL=Προσόν -OppStatusPROPO=Πρόταση +OppStatusPROPO=Προσφορά OppStatusNEGO=Διαπραγμάτευση OppStatusPENDING=Εκκρεμεί -OppStatusWON=Κέρδισε -OppStatusLOST=Χαμένος +OppStatusWON=Έκλεισε +OppStatusLOST=Χάθηκε Budget=Προϋπολογισμός AllowToLinkFromOtherCompany=Επιτρέψτε τη σύνδεση του έργου με άλλη εταιρεία

    Υποστηριζόμενες τιμές:
    - Κρατήστε κενό: Μπορεί να συνδέσει οποιοδήποτε έργο της εταιρείας (προεπιλογή)
    - "όλα": Μπορεί να συνδέσει οποιαδήποτε έργα, ακόμα και έργα άλλων εταιρειών
    - Μια λίστα με IDs τρίτων που χωρίζονται με κόμματα: μπορούν να συνδέσουν όλα τα έργα αυτών των τρίτων μερών (Παράδειγμα: 123,4795,53)
    -LatestProjects=Τελευταία έργα %s -LatestModifiedProjects=Τελευταία τροποποιημένα έργα %s +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=Η αναφορά εργασίας που έχει ήδη χρησιμοποιηθεί, απαιτείται νέα αναφορά εργασίας +NewTaskRefSuggested=Η αναφορά εργασίας χρησιμοποιείται ήδη, απαιτείται νέα αναφορά εργασίας TimeSpentInvoiced=Χρόνος που δαπανήθηκε χρεώνεται TimeSpentForIntervention=Ο χρόνος που δαπανάται TimeSpentForInvoice=Ο χρόνος που δαπανάται OneLinePerUser=Μια γραμμή ανά χρήστη -ServiceToUseOnLines=Υπηρεσία για χρήση σε γραμμές +ServiceToUseOnLines=Service to use on lines InvoiceGeneratedFromTimeSpent=Το τιμολόγιο %s δημιουργήθηκε από το χρόνο που αφιερώσατε στο έργο InterventionGeneratedFromTimeSpent=Η παρέμβαση %s έχει δημιουργηθεί από τον χρόνο που δαπανήθηκε στο έργο ProjectBillTimeDescription=Επιλέξτε στην περίπτωση που εισάγετε φύλλο κατανομής χρόνου για τα καθήκοντα του έργου και σχεδιάζετε να δημιουργήσετε τιμολόγιο(α) από το δελτίο χρόνου για να χρεώσετε τον πελάτη του έργου (μην το επιλέξετε αν σκοπεύετε να δημιουργήσετε τιμολόγιο που δεν βασίζεται σε καταγεγραμμένα φύλλα χρόνου). Σημείωση: Για να δημιουργήσετε τιμολόγιο, μεταβείτε στην καρτέλα 'Χρόνος που δαπανήθηκε' του έργου και επιλέξτε τις γραμμές που θα συμπεριληφθούν. @@ -269,7 +270,7 @@ UsageOpportunity=Χρήση: Ευκαιρία UsageTasks=Χρήση: Εργασίες UsageBillTimeShort=Χρήση: Χρόνος λογαριασμού InvoiceToUse=Προσχέδιο τιμολογίου προς χρήση -InterToUse=Draft intervention to use +InterToUse=Σχέδιο παρέμβασης προς χρήση NewInvoice=Νέο τιμολόγιο NewInter=Νέα παρέμβαση OneLinePerTask=Μια γραμμή ανά εργασία @@ -279,7 +280,7 @@ AddDetailDateAndDuration=Με ημερομηνία και διάρκεια στ RefTaskParent=Αναφ. Γονική εργασία ProfitIsCalculatedWith=Το κέρδος υπολογίζεται χρησιμοποιώντας AddPersonToTask=Προσθήκη και στις εργασίες -UsageOrganizeEvent=Χρήση: Οργάνωση συμβάντος +UsageOrganizeEvent=Χρήση: Οργάνωση εκδήλωσης PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Καταχώρηση του έργου ως ολοκληρωμένου όταν όλες οι εργασίες έχουν ολοκληρωθεί (100 %% πρόοδος) PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Σημείωση: τα υπάρχοντα έργα με όλες τις εργασίες τους σε 100 %% πρόοδο δεν θα επηρεαστούν: θα χρειαστεί να τα κλείσετε χειροκίνητα. Η επιλογή αυτή επηρεάζει μόνο τα ανοιχτά έργα. SelectLinesOfTimeSpentToInvoice=Επιλέξτε τις γραμμές κατανάλωσης χρόνου που δεν έχουν τιμολογηθεί και έπειτα την μαζική εντολή "Δημιουργία τιμολογίου" για να τα τιμολογήσετε. @@ -287,3 +288,9 @@ ProjectTasksWithoutTimeSpent=Εργασίες έργου χωρίς χρόνο FormForNewLeadDesc=Σας ευχαριστούμε που συμπληρώσατε την ακόλουθη φόρμα επικοινωνίας. Μπορείτε επίσης να μας στείλετε απευθείας email στο %s. ProjectsHavingThisContact=Έργα που έχουν αυτή την επαφή StartDateCannotBeAfterEndDate=Η ημερομηνία λήξης δεν μπορεί να είναι πριν από την ημερομηνία έναρξης +ErrorPROJECTLEADERRoleMissingRestoreIt=Ο ρόλος "PROJECTLEADER" λείπει ή έχει απενεργοποιηθεί, επαναφέρετε στο λεξικό τύπων επαφών +LeadPublicFormDesc=Μπορείτε να ενεργοποιήσετε εδώ μια δημόσια σελίδα για να επιτρέψετε στους υποψήφιους πελάτες σας να κάνουν μια πρώτη επαφή μαζί σας από μια δημόσια ηλεκτρονική φόρμα +EnablePublicLeadForm=Ενεργοποιήστε τη δημόσια φόρμα για επικοινωνία +NewLeadbyWeb=Το μήνυμα ή το αίτημά σας έχει καταγραφεί. Θα απαντήσουμε ή θα επικοινωνήσουμε μαζί σας σύντομα. +NewLeadForm=Φόρμα νέας επικοινωνίας +LeadFromPublicForm=Δυνητικός πελάτης από ηλεκτρονική δημόσια φόρμα diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang index 68d39e7cbaa..ea99998a3bc 100644 --- a/htdocs/langs/el_GR/propal.lang +++ b/htdocs/langs/el_GR/propal.lang @@ -54,12 +54,13 @@ NoDraftProposals=Δεν υπάρχουν σχέδια Προσφορών CopyPropalFrom=Δημιουργία Προσφοράς με την αντιγραφή υφιστάμενης Προσφοράς CreateEmptyPropal=Δημιουργήστε άδεια εμπορική πρόταση ή από λίστα προϊόντων / υπηρεσιών DefaultProposalDurationValidity=Προεπιλογή διάρκεια Προσφοράς ισχύος (σε ημέρες) +DefaultPuttingPricesUpToDate=Από προεπιλογή, ενημερώστε τις τιμές με τις τρέχουσες γνωστές τιμές κατά την κλωνοποίηση μιας πρότασης UseCustomerContactAsPropalRecipientIfExist=Χρησιμοποιήστε τη διεύθυνση επαφής / διεύθυνσης με τον τύπο "Πρόταση επικοινωνίας μετά την επικοινωνία", αν ορίζεται αντί της διεύθυνσης τρίτων ως διεύθυνση παραλήπτη της πρότασης ConfirmClonePropal=Είστε βέβαιοι ότι θέλετε να κλωνοποιήσετε την εμπορική πρόταση %s ? ConfirmReOpenProp=Είστε βέβαιοι ότι θέλετε να ανοίξετε την εμπορική πρόταση %s ? ProposalsAndProposalsLines=Προσφορές και γραμμές ProposalLine=Γραμμή Προσφοράς -ProposalLines=Proposal lines +ProposalLines=Γραμμές προσφοράς AvailabilityPeriod=Καθυστέρηση Διαθεσιμότητα SetAvailability=Ορισμός καθυστέρησης διαθεσιμότητα AfterOrder=μετά την παραγγελία @@ -84,16 +85,29 @@ DefaultModelPropalClosed=Προεπιλεγμένο πρότυπο όταν κλ 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? +SignedOnly=Μόνο υπογεγραμμένη +NoSign=Ορισμός ως μη υπογεγραμμένη +NoSigned=ορισμός ως μη υπογεγραμμένη +CantBeNoSign=δεν μπορεί να οριστεί ως μη υπογεγραμμένη +ConfirmMassNoSignature=Επιβεβαίωση μαζικού ορισμού ως Μη υπογεγραμμένη +ConfirmMassNoSignatureQuestion=Είστε σίγουροι ότι θέλετε να ορίσετε ως μη υπογεγραμμένες τις επιλεγμένες εγγραφές; +IsNotADraft=δεν είναι προσχέδιο +PassedInOpenStatus=έχει επικυρωθεί +Sign=Υπογραφή +Signed=υπογεγραμμένη +ConfirmMassValidation=Επιβεβαίωση μαζικής επικύρωσης +ConfirmMassSignature=Επιβεβαίωση μαζικής υπογραφής +ConfirmMassValidationQuestion=Είστε σίγουροι ότι θέλετε να επικυρώσετε τις επιλεγμένες εγγραφές; +ConfirmMassSignatureQuestion=Είστε βέβαιοι ότι θέλετε να υπογράψετε τις επιλεγμένες εγγραφές; +IdProposal=Αναγνωριστικό προσφοράς +IdProduct=Αναγνωριστικό προϊόντος +LineBuyPriceHT=Αγορά Τιμή Ποσό χωρίς φόρο για γραμμή +SignPropal=Αποδοχή προσφοράς +RefusePropal=Απόρριψη προσφοράς +Sign=Υπογραφή +NoSign=Ορισμός ως μη υπογεγραμμένη +PropalAlreadySigned=Η πρόσφορα ειναι ήδη αποδεκτή +PropalAlreadyRefused=Η προσφορά έχει ήδη απορριφθεί +PropalSigned=Πρόσφορα αποδεκτή +PropalRefused=Η προσφορά απορρίφθηκε +ConfirmRefusePropal=Είστε βέβαιοι ότι θέλετε να αρνηθείτε αυτήν την εμπορική πρόταση; diff --git a/htdocs/langs/el_GR/receiptprinter.lang b/htdocs/langs/el_GR/receiptprinter.lang index 234287a9759..298e9384da5 100644 --- a/htdocs/langs/el_GR/receiptprinter.lang +++ b/htdocs/langs/el_GR/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Δοκιμή αποστολής στον εκτυπωτή %s ReceiptPrinter=Εκτυπωτές παραλαβής ReceiptPrinterDesc=Ρύθμιση εκτυπωτών παραλαβής ReceiptPrinterTemplateDesc=Ρύθμιση προτύπων -ReceiptPrinterTypeDesc=Περιγραφή του τύπου εκτυπωτή παραλαβής +ReceiptPrinterTypeDesc=Παράδειγμα πιθανών τιμών για το πεδίο "Παράμετροι" ανάλογα με τον τύπο του προγράμματος οδήγησης ReceiptPrinterProfileDesc=Περιγραφή του προφίλ εκτυπωτή παραλαβής ListPrinters=Λίστα εκτυπωτών. SetupReceiptTemplate=Εγκατάσταση πρώτυπου @@ -54,7 +54,9 @@ DOL_DOUBLE_WIDTH=Διπλό μέγεθος πλάτους DOL_DEFAULT_HEIGHT_WIDTH=Προεπιλεγμένο μέγεθος ύψους και πλάτους DOL_UNDERLINE=Ενεργοποίηση υπογράμμισης DOL_UNDERLINE_DISABLED=Απενεργοποιήση υπογράμμισης -DOL_BEEP=Ήχος +DOL_BEEP=Ήχος μπιπ +DOL_BEEP_ALTERNATIVE=Ήχος beep (εναλλακτική λειτουργία) +DOL_PRINT_CURR_DATE=Εκτύπωση τρέχουσας ημερομηνίας/ώρας DOL_PRINT_TEXT=Εκτύπωση κειμένου DateInvoiceWithTime=Ημερομηνία και ώρα τιμολογίου YearInvoice=Έτος τιμολογίου @@ -63,7 +65,7 @@ DOL_VALUE_MONTH=Μήνας τιμολογίου DOL_VALUE_DAY=Ημέρα τιμολογίου DOL_VALUE_DAY_LETTERS=Ημέρα τιμολογίου με γράμματα DOL_LINE_FEED_REVERSE=Αντίστροφη τροφοδοσία γραμμής -InvoiceID=Invoice ID +InvoiceID=Αναγνωριστικό τιμολογίου InvoiceRef=Κωδ. τιμολογίου DOL_PRINT_OBJECT_LINES=Γραμμές τιμολογίου DOL_VALUE_CUSTOMER_FIRSTNAME=Όνομα πελάτη @@ -75,8 +77,8 @@ DOL_VALUE_CUSTOMER_SKYPE=Πελάτης Skype DOL_VALUE_CUSTOMER_TAX_NUMBER=Αριθμός φόρου πελάτη DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Υπόλοιπο λογαριασμού πελάτη DOL_VALUE_MYSOC_NAME=Το όνομα της εταιρίας σου -VendorLastname=Vendor last name -VendorFirstname=Vendor first name -VendorEmail=Vendor email +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 290a1caf306..62ac251faf0 100644 --- a/htdocs/langs/el_GR/receptions.lang +++ b/htdocs/langs/el_GR/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=Αναφ. ρεσεψιόν -Reception=Σε εξέλιξη -Receptions=Δεξιώσεις -AllReceptions=Όλες οι Δεξιώσεις -Reception=Σε εξέλιξη -Receptions=Δεξιώσεις +ReceptionDescription=Διαχείριση παραλαβών (Δημιουργία εγγράφων παραλαβής) +ReceptionsSetup=Ρύθμιση παραλαβών +RefReception=Αναφ. παραλαβής +Reception=Παραλαβή +Receptions=Παραλαβές +AllReceptions=Όλες οι Παραλαβές +Reception=Παραλαβή +Receptions=Παραλαβές ShowReception=Εμφάνιση παραλαβών -ReceptionsArea=Χώρος υποδοχής -ListOfReceptions=Λίστα δεξιώσεων -ReceptionMethod=Μέθοδος λήψης -LastReceptions=Τελευταίες υποδοχές %s -StatisticsOfReceptions=Στατιστικά στοιχεία για δεξιώσεις -NbOfReceptions=Αριθμός δεξιώσεων -NumberOfReceptionsByMonth=Αριθμός δεκτών ανά μήνα -ReceptionCard=Κάρτα υποδοχής -NewReception=Νέα υποδοχή -CreateReception=Δημιουργία υποδοχής -QtyInOtherReceptions=Ποσότητα σε άλλες δεξιώσεις -OtherReceptionsForSameOrder=Άλλες δεξιώσεις για αυτήν την παραγγελία -ReceptionsAndReceivingForSameOrder=Υποδοχές και αποδείξεις για αυτήν την παραγγελία -ReceptionsToValidate=Υποδοχές για επικύρωση +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) -StatusReceptionProcessed=Επεξεργασμένα -StatusReceptionDraftShort=Πρόχειρο +StatusReceptionDraft=Προσχέδιο +StatusReceptionValidated=Επικυρώθηκε (προϊόντα προς παραλαβή ή ήδη παρεληφθέντα) +StatusReceptionValidatedToReceive=Επικυρώθηκε (προϊόντα προς παραλαβή) +StatusReceptionValidatedReceived=Επικυρώθηκε (παραλήφθηκαν προϊόντα) +StatusReceptionProcessed=Διενεργήθηκε +StatusReceptionDraftShort=Προσχέδιο StatusReceptionValidatedShort=Επικυρώθηκε -StatusReceptionProcessedShort=Επεξεργασμένα -ReceptionSheet=Φύλλο υποδοχής -ConfirmDeleteReception=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη λήψη; -ConfirmValidateReception=Είστε βέβαιοι ότι θέλετε να επικυρώσετε αυτήν τη λήψη με αναφορά %s ; -ConfirmCancelReception=Είστε βέβαιοι ότι θέλετε να ακυρώσετε αυτήν τη λήψη; -StatsOnReceptionsOnlyValidated=Οι στατιστικές που διεξάγονται σε δεξιότητες επικυρώνονται μόνο. Η ημερομηνία που χρησιμοποιείται είναι η ημερομηνία επικύρωσης της λήψης (δεν είναι πάντοτε γνωστή η ημερομηνία προγραμματισμένης παράδοσης). -SendReceptionByEMail=Στείλτε τη λήψη μέσω ηλεκτρονικού ταχυδρομείου -SendReceptionRef=Υποβολή της υποδοχής %s -ActionsOnReception=Εκδηλώσεις στη ρεσεψιόν -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. -ReceptionLine=Γραμμή υποδοχής -ProductQtyInReceptionAlreadySent=Ποσότητα προϊόντος από ανοικτή εντολή πωλήσεων που έχει ήδη αποσταλεί -ProductQtyInSuppliersReceptionAlreadyRecevied=Ποσότητα προϊόντος από ανοικτή παραγγελία προμηθευτή που έχει ήδη παραληφθεί -ValidateOrderFirstBeforeReception=Θα πρέπει πρώτα να επικυρώσετε την παραγγελία πριν μπορέσετε να κάνετε δεξιώσεις. -ReceptionsNumberingModules=Μονάδα αρίθμησης για δεξιώσεις -ReceptionsReceiptModel=Πρότυπα εγγράφων για δεξιώσεις -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 +StatusReceptionProcessedShort=Διενεργήθηκε +ReceptionSheet=Κατάσταση παραλαβής +ConfirmDeleteReception=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την παραλαβή; +ConfirmValidateReception=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτή την παραλαβή με αναφορά %s ; +ConfirmCancelReception=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτή την παραλαβή; +StatsOnReceptionsOnlyValidated=Στατιστικές αναλύσεις διεξήχθησαν μονό σε επικυρωμένες παραλαβές . Η ημερομηνία που χρησιμοποιήθηκε είναι η ημερομηνία επικύρωσης της παραλαβής (δεν είναι πάντοτε γνωστή η ημερομηνία προγραμματισμένης παράδοσης). +SendReceptionByEMail=Αποστολή παράδοσης μέσω email +SendReceptionRef=Υποβολή της παραλαβής %s +ActionsOnReception=Ενέργειες κατά την παραλαβή +ReceptionCreationIsDoneFromOrder=Προς το παρόν η δημιουργία νέας παραλαβής γίνεται από την Εντολή Αγοράς. +ReceptionLine=Γραμμή παραλαβής +ProductQtyInReceptionAlreadySent=Ποσότητα προϊόντος από ανοιχτή εντολή πώλησης έχει ήδη σταλεί +ProductQtyInSuppliersReceptionAlreadyRecevied=Ποσότητα προϊόντος από ανοιχτή παραγγελία προμηθευτή που έχει ήδη παραληφθεί +ValidateOrderFirstBeforeReception=Πρέπει πρώτα να επικυρώσετε την παραγγελία πριν μπορέσετε να κάνετε παραλαβές. +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 37df4ddae50..7beef9ffe88 100644 --- a/htdocs/langs/el_GR/recruitment.lang +++ b/htdocs/langs/el_GR/recruitment.lang @@ -18,59 +18,61 @@ # # 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=Εmail υπεύθυνου προσλήψεων +ToUseAGenericEmail=Για να χρησιμοποιήσετε ένα γενικό email. Εάν δεν έχει οριστεί, θα χρησιμοποιηθεί το email του υπεύθυνου πρόσληψης +NewCandidature=Νέα αίτηση +ListOfCandidatures=Λίστα αιτήσεων +RequestedRemuneration=Ζητούμενη αμοιβή +ProposedRemuneration=Προτεινόμενη αμοιβή +ContractProposed=Προτεινόμενη σύμβαση +ContractSigned=Υπογεγραμμένη σύμβαση +ContractRefused=Η σύμβαση απορρίφθηκε +RecruitmentCandidature=Αίτηση +JobPositions=Θέσεις εργασίας +RecruitmentCandidatures=Αιτήσεις +InterviewToDo=Συνέντευξη για να γίνει +AnswerCandidature=Απάντηση αίτησης +YourCandidature=Η αίτηση σου +YourCandidatureAnswerMessage=Σας ευχαριστούμε για την αίτηση σας.
    ... +JobClosedTextCandidateFound=Η θέση εργασίας είναι κλειστή. Η θέση έχει καλυφθεί. +JobClosedTextCanceled=Η θέση εργασίας είναι κλειστή. +ExtrafieldsJobPosition=Συμπληρωματικά χαρακτηριστικά (θέσεις εργασίας) +ExtrafieldsApplication=Συμπληρωματικά χαρακτηριστικά (αιτήσεις εργασίας) +MakeOffer=Κάντε μια προσφορά +WeAreRecruiting=Προσλαμβάνουμε. Αυτή είναι η λίστα με τις ανοιχτές θέσεις προς κάλυψη... +NoPositionOpen=Δεν υπάρχουν ανοιχτές θέσεις αυτή τη στιγμή diff --git a/htdocs/langs/el_GR/resource.lang b/htdocs/langs/el_GR/resource.lang index ce4045dc723..2f47cb2616f 100644 --- a/htdocs/langs/el_GR/resource.lang +++ b/htdocs/langs/el_GR/resource.lang @@ -1,36 +1,39 @@ # Dolibarr language file - Source file is en_US - resource MenuResourceIndex=Πόροι MenuResourceAdd=Νέος πόρος -DeleteResource=Διαγραφή πόρων +DeleteResource=Διαγραφή πόρου ConfirmDeleteResourceElement=Επιβεβαιώστε τη διαγραφή των πόρων για αυτό το στοιχείο NoResourceInDatabase=Δεν υπάρχουν πόροι στη βάση δεδομένων. NoResourceLinked=Ο πόρος δεν συνδέεται - +ActionsOnResource=Ενέργειες σχετικά με αυτόν τον πόρο ResourcePageIndex=Λίστα Πόρων ResourceSingular=Πόρος -ResourceCard=Κάρτα Πόρων +ResourceCard=Καρτέλα πόρου AddResource=Δημιουργήστε έναν πόρο -ResourceFormLabel_ref=Όνομα Πόρου -ResourceType=Τύπος Πόρου -ResourceFormLabel_description=Η περιγραφή πόρου +ResourceFormLabel_ref=Όνομα πόρου +ResourceType=Τύπος πόρου +ResourceFormLabel_description=Περιγραφή πόρου -ResourcesLinkedToElement=Πόροι που σχετίζονται με το στοιχείο +ResourcesLinkedToElement=Πόροι που συνδέονται με το στοιχείο -ShowResource=Εμφάνιση πόρων +ShowResource=Εμφάνιση πόρου -ResourceElementPage=Στοιχείο πόρων +ResourceElementPage=Πόροι στοιχείων ResourceCreatedWithSuccess=Ο Πόρος δημιουργήθηκε με επιτυχία -RessourceLineSuccessfullyDeleted=Γραμμή πόρου διαγράφηκε με επιτυχία -RessourceLineSuccessfullyUpdated=Γραμμή πόρου ενημερώθηκε με επιτυχία -ResourceLinkedWithSuccess=Ο πόρος συνδέεται με επιτυχία +RessourceLineSuccessfullyDeleted=Η γραμμή πόρου διαγράφηκε με επιτυχία +RessourceLineSuccessfullyUpdated=Η γραμμή πόρου ενημερώθηκε με επιτυχία +ResourceLinkedWithSuccess=Ο πόρος συνδέθηκε με επιτυχία ConfirmDeleteResource=Επιβεβαιώστε την διαγραφή αυτού του πόρου RessourceSuccessfullyDeleted=Ο Πόρος διαγράφηκε με επιτυχία -DictionaryResourceType=Το είδος των πόρων +DictionaryResourceType=Τύποι πόρων SelectResource=Επιλέξτε πόρο -IdResource=Id resource +IdResource=Αναγνωριστικό πόρου AssetNumber=Σειριακός αριθμός -ResourceTypeCode=Resource type code +ResourceTypeCode=Κωδικός τύπου πόρου ImportDataset_resource_1=Πόροι + +ErrorResourcesAlreadyInUse=Ορισμένοι πόροι χρησιμοποιούνται +ErrorResourceUseInEvent=%s που χρησιμοποιήθηκε στο συμβάν %s diff --git a/htdocs/langs/el_GR/salaries.lang b/htdocs/langs/el_GR/salaries.lang index e87d33a9a5e..5e7cc1a9d6c 100644 --- a/htdocs/langs/el_GR/salaries.lang +++ b/htdocs/langs/el_GR/salaries.lang @@ -2,25 +2,26 @@ SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Λογαριασμός λογιστικής που χρησιμοποιείται για τρίτους χρήστες SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Ο αποκλειστικός λογαριασμός λογιστικής που ορίζεται στην κάρτα χρήστη θα χρησιμοποιηθεί μόνο για τη λογιστική της Subledger. Αυτός θα χρησιμοποιηθεί για το γενικό βιβλίο και ως προεπιλεγμένη τιμή της λογιστικής Subledger εάν δεν έχει καθοριστεί ο λογαριασμός λογιστικής για τον χρήστη. 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 +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Από προεπιλογή, αφήστε κενή την επιλογή "Αυτόματη δημιουργία συνολικής πληρωμής" κατά τη δημιουργία ενός Μισθού Salary=Mισθός Salaries=Μισθοί -NewSalary=New salary -AddSalary=Add salary -NewSalaryPayment=New salary card +NewSalary=Νέος μισθός +AddSalary=Προσθήκη μισθού +NewSalaryPayment=Νέα καρτέλα μισθού AddSalaryPayment=Προσθήκη πληρωμής μισθοδοσίας SalaryPayment=Μισθός SalariesPayments=Πληρωμές μισθών -SalariesPaymentsOf=Salaries payments of %s +SalariesPaymentsOf=Πληρωμές μισθών του %s ShowSalaryPayment=Εμφάνιση μισθοδοσίας THM=Μέση ωριαία τιμή TJM=Μέση ημερήσια τιμή CurrentSalary=Τρέχον μισθός THMDescription=Αυτή η τιμή μπορεί να χρησιμοποιηθεί για τον υπολογισμό του κόστους του χρόνου που καταναλώνεται σε ένα έργο που εισήχθησαν από τους χρήστες, εάν χρησιμοποιείται το project module TJMDescription=Αυτή η τιμή είναι προς ενημέρωση μόνο και δεν χρησιμοποιείται για υπολογισμό -LastSalaries=Latest %s salaries -AllSalaries=All salaries +LastSalaries=Τελευταίοι %sμισθοί +AllSalaries=Όλοι οι μισθοί SalariesStatistics=Στατιστικά στοιχεία μισθών SalariesAndPayments=Μισθοί και πληρωμές -ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? -FillFieldFirst=Fill employee field first +ConfirmDeleteSalaryPayment=Θέλετε να διαγράψετε αυτήν την πληρωμή μισθού; +FillFieldFirst=Συμπληρώστε το πεδίο υπαλλήλου πρώτα  +UpdateAmountWithLastSalary=Καθορίστε το ποσό βάσει του τελευταίου μισθού diff --git a/htdocs/langs/el_GR/sendings.lang b/htdocs/langs/el_GR/sendings.lang index a7ad26d638e..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=Προσοχή, δεν υπάρχουν είδη που περιμένουν να σταλούν. -StatsOnShipmentsOnlyValidated=Statistics are only for validated shipments. Date used is the date of validation of shipment (planned delivery date is not always known) +ConfirmDeleteSending=Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την αποστολή; +ConfirmValidateSending=Είστε σίγουροι ότι θέλετε να επικυρώσετε αυτήν την αποστολή με αναφορά %s ? +ConfirmCancelSending=Είστε σίγουροι ότι θέλετε να ακυρώσετε αυτήν την αποστολή; +DocumentModelMerou=Μοντέλο Mérou A5 +WarningNoQtyLeftToSend=Προειδοποίηση, κανένα προϊόν δεν ειναι σε αναμονή για αποστολή. +StatsOnShipmentsOnlyValidated=Τα στατιστικά αφορούν μόνο επικυρωμένες αποστολές. Η ημερομηνία που χρησιμοποιείται είναι η ημερομηνία επικύρωσης της αποστολής (η προγραμματισμένη ημερομηνία παράδοσης δεν είναι πάντα γνωστή) DateDeliveryPlanned=Προγραμματισμένη ημερομηνία παράδοσης RefDeliveryReceipt=Παραλαβή παράδοσης αναφοράς StatusReceipt=Κατάσταση παραλαβής κατάστασης DateReceived=Παράδοση Ημερομηνία παραλαβής -ClassifyReception=Ταξινόμηση της λήψης +ClassifyReception=Ταξινόμηση παραλαβής SendShippingByEMail=Αποστολή αποστολής μέσω ηλεκτρονικού ταχυδρομείου SendShippingRef=Υποβολή της αποστολής %s -ActionsOnShipping=Εκδηλώσεις για την αποστολή +ActionsOnShipping=Ενέργειες κατά την αποστολή LinkToTrackYourPackage=Σύνδεσμος για να παρακολουθείτε το πακέτο σας -ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the Sales Order record. -ShipmentLine=Σειρά αποστολής -ProductQtyInCustomersOrdersRunning=Ποσότητα προϊόντος από ανοικτές παραγγελίες πώλησης -ProductQtyInSuppliersOrdersRunning=Ποσότητα προϊόντος από ανοικτές εντολές αγοράς +ShipmentCreationIsDoneFromOrder=Προς το παρόν, η δημιουργία νέας αποστολής γίνεται από το αρχείο Παραγγελίας Πωλήσεων. +ShipmentLine=Γραμμή αποστολής +ProductQtyInCustomersOrdersRunning=Ποσότητα προϊόντος από ανοιχτείς εντολές πωλήσεων +ProductQtyInSuppliersOrdersRunning=Ποσότητα προϊόντος από ανοιχτές παραγγελίες αγοράς ProductQtyInShipmentAlreadySent=Ποσότητα προϊόντος από ανοικτή εντολή πωλήσεων που έχει ήδη αποσταλεί ProductQtyInSuppliersShipmentAlreadyRecevied=Ποσότητα προϊόντος από ανοικτές παραγγελίες αγοράς που έχουν ήδη παραληφθεί -NoProductToShipFoundIntoStock=Δεν βρέθηκε προϊόν στο πλοίο στην αποθήκη %s . Διορθώστε το απόθεμα ή επιστρέψτε για να επιλέξετε μια άλλη αποθήκη. -WeightVolShort=Βάρος / Τόμ. +NoProductToShipFoundIntoStock=Δεν βρέθηκε προϊόν προς αποστολή στην αποθήκη %s . Διορθώστε το απόθεμα ή επιλέξτε άλλη αποθήκη. +WeightVolShort=Βάρος/Όγκος ValidateOrderFirstBeforeShipment=Θα πρέπει πρώτα να επικυρώσετε την παραγγελία πριν να μπορέσετε να πραγματοποιήσετε αποστολές. # Sending methods # ModelDocument DocumentModelTyphon=Πληρέστερο πρότυπο έγγραφο για αποδεικτικά παράδοσης (logo. ..) -DocumentModelStorm=More complete document model for delivery receipts and extrafields compatibility (logo...) -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/stocks.lang b/htdocs/langs/el_GR/stocks.lang index 85e3528bc6f..cc8ac9feab1 100644 --- a/htdocs/langs/el_GR/stocks.lang +++ b/htdocs/langs/el_GR/stocks.lang @@ -1,191 +1,191 @@ # 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=Confirm shipment -CancelSending=Cancel shipment -DeleteSending=Delete shipment -Stock=Στοκ +WarehouseTarget=Αποθήκη προορισμού +ValidateSending=Επιβεβαίωση αποστολής +CancelSending=Ακύρωση αποστολής +DeleteSending=Διαγραφή αποστολής +Stock=Απόθεμα Stocks=Αποθέματα -MissingStocks=Missing stocks -StockAtDate=Stocks at date -StockAtDateInPast=Date in the past -StockAtDateInFuture=Date in the future -StocksByLotSerial=Αποθέματα ανά παρτίδα / σειρά -LotSerial=Lots / Serials -LotSerialList=Κατάλογος παρτίδων / περιοδικών +MissingStocks=Χαμένα αποθέματα +StockAtDate=Αποθέματα κατά την ημερομηνία +StockAtDateInPast=Ημερομηνία στο παρελθόν +StockAtDateInFuture=Ημερομηνία στο μέλλον +StocksByLotSerial=Αποθέματα ανά παρτίδα / σειριακό αριθμό +LotSerial=Παρτίδες/Σειριακοί αριθμοί +LotSerialList=Λίστα παρτίδων / σειριακών αριθμών Movements=Κινήσεις -ErrorWarehouseRefRequired=Αποθήκη όνομα αναφοράς απαιτείται -ListOfWarehouses=Κατάλογος των αποθηκών -ListOfStockMovements=Κατάλογος των κινήσεων των αποθεμάτων -ListOfInventories=Κατάλογος απογραφών -MovementId=Αναγνώριση κίνησης +ErrorWarehouseRefRequired=Απαιτείται όνομα αναφοράς αποθήκης +ListOfWarehouses=Λίστα αποθηκών +ListOfStockMovements=Λίστα κινήσεων των αποθεμάτων +ListOfInventories=Λίστα απογραφών +MovementId=Αναγνωριστικό κίνησης StockMovementForId=Αναγνωριστικό κίνησης %d -ListMouvementStockProject=Κατάλογος των κινήσεων αποθεμάτων που σχετίζονται με το έργο -StocksArea=Περιοχή αποθηκών +ListMouvementStockProject=Λίστα των κινήσεων αποθεμάτων που σχετίζονται με το έργο +StocksArea=Τομέας αποθηκών AllWarehouses=Όλες οι αποθήκες -IncludeEmptyDesiredStock=Include also negative stock with undefined desired stock -IncludeAlsoDraftOrders=Συμπεριλάβετε επίσης σχέδια παραγγελιών +IncludeEmptyDesiredStock=Συμπεριλάβετε επίσης αρνητικό απόθεμα με απροσδιόριστο επιθυμητό απόθεμα +IncludeAlsoDraftOrders=Συμπεριλάβετε επίσης προσχέδια παραγγελιών Location=Τοποθεσία -LocationSummary=Short name of location -NumberOfDifferentProducts=Number of unique products +LocationSummary=Σύντομο όνομα τοποθεσίας +NumberOfDifferentProducts=Αριθμός μοναδικών προϊόντων NumberOfProducts=Συνολικός αριθμός προϊόντων LastMovement=Τελευταία κίνηση 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=Διαχειριστείτε επίσης την τιμή για το ελάχιστο και το επιθυμητό απόθεμα ανά ζεύγος (αποθήκη προϊόντων) επιπλέον της τιμής για το ελάχιστο και το επιθυμητό απόθεμα ανά προϊόν -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. +AllowAddLimitStockByWarehouse=Διαχειριστείτε επίσης την τιμή για το ελάχιστο και το επιθυμητό απόθεμα ανά ζεύγος (αποθήκης- προϊόντων) επιπλέον της τιμής για το ελάχιστο και το επιθυμητό απόθεμα ανά προϊόν +RuleForWarehouse=Κανόνας για τις αποθήκες +WarehouseAskWarehouseOnThirparty=Ορίστε μια αποθήκη σε τρίτα μέρη +WarehouseAskWarehouseDuringPropal=Ορίστε μια αποθήκη για εμπορικές προσφορές +WarehouseAskWarehouseDuringOrder=Ορίστε μια αποθήκη για παραγγελίες πωλήσεων +WarehouseAskWarehouseDuringProject=Ορίστε μια αποθήκη για Έργα +UserDefaultWarehouse=Ορίστε μια αποθήκη στους Χρήστες +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=(empty) means no warning.
    0 can be used to trigger a warning as soon as the stock is empty. +StockLimitDesc=(κενό) σημαίνει καμία προειδοποίηση. Το
    0 μπορεί να χρησιμοποιηθεί για την ενεργοποίηση μιας προειδοποίησης μόλις αδειάσει το απόθεμα. PhysicalStock=Φυσικό απόθεμα -RealStock=Real Χρηματιστήριο +RealStock=Πραγματικό απόθεμα RealStockDesc=Το φυσικό / πραγματικό απόθεμα είναι το απόθεμα που βρίσκεται σήμερα στις αποθήκες. RealStockWillAutomaticallyWhen=Το πραγματικό απόθεμα θα τροποποιηθεί σύμφωνα με αυτόν τον κανόνα (όπως ορίζεται στην ενότητα του αποθέματος): -VirtualStock=Εικονική απόθεμα -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 αποθήκη -DescWareHouse=Αποθήκη Περιγραφή -LieuWareHouse=Αποθήκη Localisation -WarehousesAndProducts=Αποθήκες και τα προϊόντα -WarehousesAndProductsBatchDetail=Αποθήκες και προϊόντα (με λεπτομέρεια ανά παρτίδα / σειρά) +VirtualStock=Εικονικό απόθεμα +VirtualStockAtDate=Εικονικό απόθεμα σε μελλοντική ημερομηνία +VirtualStockAtDateDesc=Εικονικό απόθεμα μόλις ολοκληρωθούν όλες οι εκκρεμείς παραγγελίες που έχουν προγραμματιστεί να διεκπεραιωθούν πριν από την επιλεγμένη ημερομηνία +VirtualStockDesc=Το εικονικό απόθεμα είναι το υπολογισμένο απόθεμα που είναι διαθέσιμο μόλις κλείσουν όλες οι ανοιχτές/εκκρεμείς ενέργειες (που επηρεάζουν τα αποθέματα) (ληφθείσες εντολές αγοράς, απεσταλμένες εντολές πωλήσεων, εκτελεσμένες παραγγελίες κατασκευής κ.λπ.) +AtDate=Κατά την ημερομηνία +IdWarehouse=Αναγνωριστικό αποθήκης +DescWareHouse=Περιγραφή αποθήκης +LieuWareHouse=Τοποθεσία αποθήκης +WarehousesAndProducts=Αποθήκες και προϊόντα +WarehousesAndProductsBatchDetail=Αποθήκες και προϊόντα (με λεπτομέρεια ανά παρτίδα / σειριακό αριθμό) AverageUnitPricePMPShort=Μέση σταθμική τιμή -AverageUnitPricePMPDesc=The input average unit price we had to expense to get 1 unit of product into our stock. -SellPriceMin=Πώληση Τιμή μονάδας -EstimatedStockValueSellShort=Τιμή για πώληση -EstimatedStockValueSell=Τιμή για πώληση -EstimatedStockValueShort=Είσοδος αξία μετοχών -EstimatedStockValue=Είσοδος αξία μετοχών +AverageUnitPricePMPDesc=Η μέση τιμή μονάδας εισόδου που έπρεπε να δαπανήσουμε για να πάρουμε 1 μονάδα προϊόντος στο απόθεμα μας. +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=Αναπλήρωση παραγγελίων -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) +ReplenishmentOrders=Παραγγελίες αναπλήρωσης +VirtualDiffersFromPhysical=Ανάλογα με τις επιλογές αύξησης/μείωσης αποθέματος, το φυσικό απόθεμα και το εικονικό απόθεμα (φυσικό απόθεμα + ανοιχτές παραγγελίες) ενδέχεται να διαφέρουν +UseRealStockByDefault=Χρησιμοποιήστε πραγματικό απόθεμα, αντί για εικονικό απόθεμα, για τη δυνατότητα αναπλήρωσης +ReplenishmentCalculation=Η ποσότητα παραγγελίας θα είναι (επιθυμητή ποσότητα - πραγματικό απόθεμα) αντί για (επιθυμητή ποσότητα - εικονικό απόθεμα) UseVirtualStock=Χρησιμοποιήστε το εικονικό απόθεμα UsePhysicalStock=Χρησιμοποιήστε το φυσικό απόθεμα CurentSelectionMode=Τρέχουσα μέθοδος επιλογής CurentlyUsingVirtualStock=Εικονικό απόθεμα CurentlyUsingPhysicalStock=Φυσικό απόθεμα -RuleForStockReplenishment=Κανόνας για τα αποθέματα αναπλήρωσης -SelectProductWithNotNullQty=Επιλέξτε τουλάχιστον ένα προϊόν με μη τετραγωνικό μηδενικό και έναν προμηθευτή +RuleForStockReplenishment=Κανόνας για την αναπλήρωση των αποθεμάτων +SelectProductWithNotNullQty=Επιλέξτε τουλάχιστον ένα προϊόν με ποσότητα όχι μηδενική και προμηθευτή AlertOnly= Ειδοποιήσεις μόνο -IncludeProductWithUndefinedAlerts = Include also negative stock for products with no desired quantity defined, to restore them to 0 -WarehouseForStockDecrease=Η αποθήκη %s να να χρησιμοποιηθεί για μείωση αποθεμάτων +IncludeProductWithUndefinedAlerts = Συμπεριλάβετε επίσης αρνητικό απόθεμα για προϊόντα χωρίς καθορισμένη επιθυμητή ποσότητα, για να τα επαναφέρετε στο 0 +WarehouseForStockDecrease=Η αποθήκη %s θα χρησιμοποιηθεί για μείωση αποθεμάτων WarehouseForStockIncrease=Η αποθήκη %s θα χρησιμοποιηθεί για την αύξηση των αποθεμάτων ForThisWarehouse=Για αυτή την αποθήκη -ReplenishmentStatusDesc=Πρόκειται για μια λίστα με όλα τα προϊόντα με αποθέματα χαμηλότερα από τα επιθυμητά αποθέματα (ή χαμηλότερα από την τιμή προειδοποίησης αν έχει επιλεγεί το πλαίσιο ελέγχου "Μόνο προειδοποίηση"). Χρησιμοποιώντας το πλαίσιο ελέγχου, μπορείτε να δημιουργήσετε εντολές αγοράς για να γεμίσετε τη διαφορά. -ReplenishmentStatusDescPerWarehouse=If you want a replenishment based on desired quantity defined per warehouse, you must add a filter on the warehouse. -ReplenishmentOrdersDesc=Αυτή είναι μια λίστα όλων των ανοιχτών παραγγελιών αγοράς, συμπεριλαμβανομένων προκαθορισμένων προϊόντων. Μόνο ανοιχτές παραγγελίες με προκαθορισμένα προϊόντα, έτσι ώστε παραγγελίες που μπορεί να επηρεάσουν τα αποθέματα, είναι ορατές εδώ. +ReplenishmentStatusDesc=Αυτή είναι μια λίστα με όλα τα προϊόντα με απόθεμα χαμηλότερο από το επιθυμητό (ή χαμηλότερη από την τιμή ειδοποίησης εάν είναι επιλεγμένο το πλαίσιο ελέγχου "μόνο ειδοποίηση"). Χρησιμοποιώντας το πλαίσιο ελέγχου, μπορείτε να δημιουργήσετε εντολές αγοράς για να συμπληρώσετε τη διαφορά. +ReplenishmentStatusDescPerWarehouse=Εάν θέλετε μια αναπλήρωση με βάση την επιθυμητή ποσότητα που έχει οριστεί ανά αποθήκη, πρέπει να προσθέσετε ένα φίλτρο στην αποθήκη. +ReplenishmentOrdersDesc=Αυτή είναι μια λίστα με όλες τις ανοιχτές εντολές αγοράς συμπεριλαμβανομένων των προκαθορισμένων προϊόντων. Μόνο ανοιχτές παραγγελίες με προκαθορισμένα προϊόντα, επομένως οι παραγγελίες που ενδέχεται να επηρεάσουν τα αποθέματα, είναι ορατές εδώ. Replenishments=Αναπληρώσεις NbOfProductBeforePeriod=Ποσότητα του προϊόντος %s σε απόθεμα πριν από την επιλεγμένη περίοδο (< %s) -NbOfProductAfterPeriod=Ποσότητα του προϊόντος %s σε απόθεμα πριν από την επιλεγμένη περίοδο (> %s) +NbOfProductAfterPeriod=Ποσότητα προϊόντος %s σε απόθεμα μετά την επιλεγμένη περίοδο (> %s) MassMovement=Μαζική μετακίνηση -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=Μεταφορά εγγραφών -ReceivingForSameOrder=Αποδείξεις για αυτή την παραγγελία -StockMovementRecorded=Οι κινήσεις των αποθεμάτων καταγράφονται -RuleForStockAvailability=Κανόνες σχετικά με τις απαιτήσεις του αποθέματος -StockMustBeEnoughForInvoice=Το επίπεδο αποθεμάτων πρέπει να είναι αρκετό για να προσθέσει το προϊόν / υπηρεσία στο τιμολόγιο (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προστίθεται μια γραμμή στο τιμολόγιο, ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή μετοχών) -StockMustBeEnoughForOrder=Το επίπεδο των αποθεμάτων πρέπει να είναι αρκετό για να προσθέσετε το προϊόν / την υπηρεσία στην παραγγελία (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προσθέτετε μια γραμμή σε παραγγελία ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή μετοχών) -StockMustBeEnoughForShipment= Το επίπεδο αποθεμάτων πρέπει να είναι αρκετό για να προστεθεί το προϊόν / η υπηρεσία στην αποστολή (ο έλεγχος γίνεται σε τρέχον πραγματικό απόθεμα κατά την προσθήκη μιας γραμμής στην αποστολή ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή μετοχών) +SelectProductInAndOutWareHouse=Επιλέξτε μια αποθήκη προέλευσης και μια αποθήκη προορισμού, ένα προϊόν και μια ποσότητα και, στη συνέχεια, κάντε κλικ στο "%s". Μόλις γίνει αυτό για όλες τις απαιτούμενες κινήσεις, κάντε κλικ στο "%s". +RecordMovement=Εγγραφή μεταφοράς +ReceivingForSameOrder=Παραλαβές για αυτήν την παραγγελία +StockMovementRecorded=Καταγράφηκαν κινήσεις μετοχών +RuleForStockAvailability=Κανόνες σχετικά με τις απαιτήσεις στο απόθεμα +StockMustBeEnoughForInvoice=Το επίπεδο αποθεμάτων πρέπει να είναι αρκετό για να προσθέσει το προϊόν / υπηρεσία στο τιμολόγιο (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προστίθεται μια γραμμή στο τιμολόγιο, ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή αποθέματος) +StockMustBeEnoughForOrder=Το επίπεδο των αποθεμάτων πρέπει να είναι αρκετό για να προσθέσετε το προϊόν / την υπηρεσία στην παραγγελία (ο έλεγχος γίνεται με βάση το τρέχον πραγματικό απόθεμα όταν προσθέτετε μια γραμμή σε παραγγελία ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή αποθέματος) +StockMustBeEnoughForShipment= Το επίπεδο αποθέματος πρέπει να είναι αρκετό για την προσθήκη προϊόντος/υπηρεσίας στην αποστολή (ο έλεγχος πραγματοποιείται στο τρέχον πραγματικό απόθεμα κατά την προσθήκη γραμμής στην αποστολή, ανεξάρτητα από τον κανόνα για την αυτόματη αλλαγή αποθεμάτων) MovementLabel=Ετικέτα λογιστικής κίνησης -TypeMovement=Direction of movement -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=Open (all movement) -OpenInternal=Open (only internal movement) -UseDispatchStatus=Χρησιμοποιήστε την κατάσταση αποστολής (έγκριση / απόρριψη) για τις σειρές προϊόντων κατά τη λήψη της παραγγελίας αγοράς -OptionMULTIPRICESIsOn=Η επιλογή "διάφορες τιμές ανά τμήμα" είναι ενεργοποιημένη. Σημαίνει ότι ένα προϊόν έχει πολλές τιμές πώλησης, ώστε να μην μπορεί να υπολογιστεί η τιμή πώλησης -ProductStockWarehouseCreated=Το όριο αποθεμάτων για την ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα που δημιουργήθηκε σωστά -ProductStockWarehouseUpdated=Το όριο αποθεμάτων για την ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα ενημερώνονται σωστά -ProductStockWarehouseDeleted=Το όριο αποθεμάτων για προειδοποίηση και το επιθυμητό βέλτιστο απόθεμα διαγράφονται σωστά -AddNewProductStockWarehouse=Ορίστε νέο όριο για την προειδοποίηση και το επιθυμητό βέλτιστο απόθεμα -AddStockLocationLine=Μειώστε την ποσότητα και έπειτα κάντε κλικ για να προσθέσετε μια άλλη αποθήκη για αυτό το προϊόν +OpenAnyMovement=Ανοιχτό (όλες οι κινήσεις) +OpenInternal=Ανοιχτό (μόνο εσωτερική κίνηση) +UseDispatchStatus=Χρησιμοποιήστε μια κατάσταση αποστολής (έγκριση/απόρριψη) για γραμμές προϊόντων κατά την παραλαβή παραγγελίας +OptionMULTIPRICESIsOn=Η επιλογή "πολλές τιμές ανά τμήμα" είναι ενεργοποιημένη. Σημαίνει ότι ένα προϊόν έχει πολλές τιμές πώλησης, επομένως η αξία για την πώληση δεν μπορεί να υπολογιστεί +ProductStockWarehouseCreated=Όριο αποθέματος για ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα δημιουργήθηκαν σωστά +ProductStockWarehouseUpdated=Το όριο αποθέματος για ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα ενημερώθηκαν σωστά +ProductStockWarehouseDeleted=Το όριο αποθέματος για ειδοποίηση και το επιθυμητό βέλτιστο απόθεμα διαγράφηκαν σωστά +AddNewProductStockWarehouse=Ορίστε νέο όριο για ειδοποίηση και επιθυμητό βέλτιστο απόθεμα +AddStockLocationLine=Μειώστε την ποσότητα και μετά κάντε κλικ για να χωρίσετε τη γραμμή InventoryDate=Ημερομηνία απογραφής -Inventories=Inventories +Inventories=Απογραφές NewInventory=Νέο απόθεμα inventorySetup = Ρύθμιση αποθέματος inventoryCreatePermission=Δημιουργία νέου αποθέματος inventoryReadPermission=Προβολή καταλόγων inventoryWritePermission=Ενημέρωση αποθεμάτων inventoryValidatePermission=Επικύρωση απογραφής -inventoryDeletePermission=Delete inventory +inventoryDeletePermission=Διαγραφή αποθέματος inventoryTitle=Καταγραφή εμπορευμάτων inventoryListTitle=Αποθέματα inventoryListEmpty=Δεν υπάρχει απογραφή σε εξέλιξη @@ -207,8 +207,8 @@ INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Οι κινήσεις των απο inventoryChangePMPPermission=Επιτρέψτε να αλλάξετε την τιμή PMP για ένα προϊόν ColumnNewPMP=Νέα μονάδα PMP OnlyProdsInStock=Μην προσθέτετε προϊόν χωρίς απόθεμα -TheoricalQty=Theorical qty -TheoricalValue=Theorical qty +TheoricalQty=Υποθετική ποσότητα +TheoricalValue=Υποθετική ποσότητα LastPA=Τελευταία BP CurrentPA=Τρέχουσα BP RecordedQty=Καταγεγραμμένη ποσότητα @@ -236,38 +236,82 @@ InventoryForASpecificWarehouse=Απογραφή για μια συγκεκριμ InventoryForASpecificProduct=Απογραφή για ένα συγκεκριμένο προϊόν StockIsRequiredToChooseWhichLotToUse=Απόθεμα είναι απαραίτητο για να επιλέξετε ποια παρτίδα πρέπει να χρησιμοποιήσετε ForceTo=Δύναμη σε -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=Replace 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. +AlwaysShowFullArbo=Εμφάνιση πλήρους δέντρου της αποθήκης σε αναδυόμενο παράθυρο συνδέσμων αποθήκης (Προειδοποίηση: Αυτό μπορεί να μειώσει δραματικά τις επιδόσεις) +StockAtDatePastDesc=Μπορείτε να δείτε εδώ το απόθεμα (πραγματικό απόθεμα) σε μια συγκεκριμένη ημερομηνία στο παρελθόν +StockAtDateFutureDesc=Μπορείτε να δείτε εδώ το απόθεμα (εικονικό απόθεμα) σε μια συγκεκριμένη ημερομηνία στο μέλλον +CurrentStock=Τρέχον απόθεμα +InventoryRealQtyHelp=Ορίστε την τιμή στο 0 για επαναφορά του ποσού
    Διατηρήστε το πεδίο κενό ή αφαιρέστε τη γραμμή για να παραμείνει αμετάβλητο +UpdateByScaning=Ενημερώστε την πραγματική ποσότητα με σάρωση +UpdateByScaningProductBarcode=Ενημέρωση με σάρωση (γραμμωτός κώδικας προϊόντος) +UpdateByScaningLot=Ενημέρωση με σάρωση (barcode παρτίδας|σειριακού) +DisableStockChangeOfSubProduct=Απενεργοποιήστε την αλλαγή αποθέματος για όλα τα υποπροϊόντα αυτού του κιτ κατά τη διάρκεια αυτής της κίνησης. +ImportFromCSV=Εισαγωγή λίστας κίνησης από αρχείο CSV +ChooseFileToImport=Μεταφορτώστε το αρχείο και, στη συνέχεια, κάντε κλικ στο εικονίδιο %s για να επιλέξετε το αρχείο ως αρχείο εισαγωγής πηγής... +SelectAStockMovementFileToImport=επιλέξτε ένα αρχείο κίνησης αποθεμάτων για εισαγωγή +InfoTemplateImport=Το μεταφορτωμένο αρχείο πρέπει να έχει αυτήν τη μορφή (* είναι υποχρεωτικά πεδία):
    Αποθήκη προέλευσης* | Αποθήκη Στόχου* | Προϊόν* | Ποσότητα* | Παρτίδα/σειριακός αριθμός
    Το διαχωριστικό χαρακτήρων CSV πρέπει να είναι " %s " +LabelOfInventoryMovemement=Απογραφή %s +ReOpen=Άνοιγμα ξανά +ConfirmFinish=Επιβεβαιώνετε το κλείσιμο της απογραφής; Αυτό θα δημιουργήσει όλες τις κινήσεις των αποθεμάτων για να ενημερώσετε το απόθεμα σας στην πραγματική ποσότητα που καταχωρίσατε στην απογραφή. +ObjectNotFound=%s δεν βρέθηκε +MakeMovementsAndClose=Δημιουργήστε κινήσεις και κλείστε +AutofillWithExpected=Συμπληρώστε την πραγματική ποσότητα με την αναμενόμενη ποσότητα +ShowAllBatchByDefault=Από προεπιλογή, εμφανίστε λεπτομέρειες παρτίδας στην καρτέλα "απόθεμα" προϊόντος +CollapseBatchDetailHelp=Μπορείτε να ορίσετε την προκαθορισμένη εμφάνιση λεπτομερειών παρτίδας στη διαμόρφωση της ενότητας αποθεμάτων +ErrorWrongBarcodemode=Άγνωστη λειτουργία γραμμικού κώδικα +ProductDoesNotExist=Το προϊόν δεν υπάρχει +ErrorSameBatchNumber=Στο φύλλο απογραφής βρέθηκαν αρκετές εγγραφές για τον αριθμό παρτίδας. Δεν υπάρχει τρόπος να ξέρετε ποιο να αυξήσετε. +ProductBatchDoesNotExist=Προϊόν με παρτίδα/σειρά δεν υπάρχει +ProductBarcodeDoesNotExist=Προϊόν με barcode δεν υπάρχει +WarehouseId=ID αποθήκης +WarehouseRef=Αναφορά Αποθήκης +SaveQtyFirst=Αποθηκεύστε πρώτα τις πραγματικές ποσότητες που έχουν απογραφεί, πριν ζητήσετε τη δημιουργία της κίνησης των αποθεμάτων. +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 +ErrorOnElementsInventory=Η λειτουργία ακυρώθηκε για τον ακόλουθο λόγο: +ErrorCantFindCodeInInventory=Δεν είναι δυνατή η εύρεση του παρακάτω κωδικού στο απόθεμα +QtyWasAddedToTheScannedBarcode=Επιτυχία !! Η ποσότητα προστέθηκε σε όλα τα ζητούμενα barcode. Μπορείτε να κλείσετε το εργαλείο σαρωτή. +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 8abb497619b..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=Ρύθμιση μονάδας ταινιών -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, ...) +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=Λόγω των ισχυρών κανόνων ελέγχου ταυτότητας πελατών, η δημιουργία μιας κάρτας πρέπει να γίνει από το Backe Office. Μπορείτε να κάνετε κλικ εδώ για να ενεργοποιήσετε την εγγραφή πελατών 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 0f2f6f3913b..84ef2b03e77 100644 --- a/htdocs/langs/el_GR/supplier_proposal.lang +++ b/htdocs/langs/el_GR/supplier_proposal.lang @@ -1,54 +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=Προτάσεις πωλητών +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=Εκπρόσωπος επικοινωνίας μετά την προσφορά diff --git a/htdocs/langs/el_GR/suppliers.lang b/htdocs/langs/el_GR/suppliers.lang index 8f73af54a4f..14de098199a 100644 --- a/htdocs/langs/el_GR/suppliers.lang +++ b/htdocs/langs/el_GR/suppliers.lang @@ -3,47 +3,54 @@ Suppliers=Προμηθευτές SuppliersInvoice=Τιμολόγιο προμηθευτή SupplierInvoices=Τιμολόγια προμηθευτή ShowSupplierInvoice=Εμφάνιση τιμολογίου προμηθευτή -NewSupplier=Νέος πωλητής +NewSupplier=Νέος προμηθευτής History=Ιστορικό -ListOfSuppliers=Κατάλογος πωλητών -ShowSupplier=Εμφάνιση πωλητή -OrderDate=Ημερ. παραγγελίας +ListOfSuppliers=Λίστα προμηθευτών +ShowSupplier=Εμφάνιση προμηθευτή +OrderDate=Ημερομηνία παραγγελίας BuyingPriceMin=Καλύτερη τιμή αγοράς BuyingPriceMinShort=Καλύτερη τιμή αγοράς -TotalBuyingPriceMinShort=Σύνολο των υποπροϊόντων τιμές αγοράς +TotalBuyingPriceMinShort=Σύνολο των τιμών αγοράς υποπροϊόντων TotalSellingPriceMinShort=Σύνολο των τιμών πώλησης υποπροϊόντων -SomeSubProductHaveNoPrices=Ορισμένα υπο-προϊόντα δεν έχουν καμία τιμή που να ορίζεται +SomeSubProductHaveNoPrices=Σε κάποια υποπροϊόντα δεν έχει οριστεί καμία τιμή AddSupplierPrice=Προσθήκη τιμής αγοράς ChangeSupplierPrice=Αλλαγή τιμής αγοράς -SupplierPrices=Τιμές πωλητών -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Αυτή η αναφορά προμηθευτή έχει ήδη συσχετιστεί με ένα προϊόν: %s +SupplierPrices=Τιμές προμηθευτών +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Η συγκεκριμένη αναφορά αυτού του προμηθευτή έχει ήδη συσχετιστεί με ένα προϊόν: %s NoRecordedSuppliers=Δεν έχει καταγραφεί προμηθευτής SupplierPayment=Πληρωμή προμηθευτή -SuppliersArea=Περιοχή προμηθευτή -RefSupplierShort=Αναφ. Προμηθευτή +SuppliersArea=Τομέας προμηθευτή +RefSupplierShort=Κωδ. Προμηθευτή Availability=Διαθεσιμότητα -ExportDataset_fournisseur_1=Τιμολόγια προμηθευτών και λεπτομέρειες τιμολογίου +ExportDataset_fournisseur_1=Τιμολόγια προμηθευτών και λεπτομέρειες τιμολογίων ExportDataset_fournisseur_2=Τιμολόγια και πληρωμές προμηθευτών -ExportDataset_fournisseur_3=Παραγγελίες αγοράς και λεπτομέρειες παραγγελίας +ExportDataset_fournisseur_3=Παραγγελίες αγοράς και λεπτομέρειες παραγγελιών ApproveThisOrder=Έγκριση της παραγγελίας ConfirmApproveThisOrder=Είστε σίγουροι πως θέλετε να επικυρώσετε την παραγγελία %s; DenyingThisOrder=Απόρριψη παραγγελίας -ConfirmDenyingThisOrder=Είστε σίγουροι πως θέλετε να αρνηθήτε αυτή την παραγγελία %s; +ConfirmDenyingThisOrder=Είστε σίγουροι πως θέλετε να απορρίψετε αυτή την παραγγελία %s; ConfirmCancelThisOrder=Είστε σίγουροι πως θέλετε να ακυρώσετε αυτή την παραγγελία %s; AddSupplierOrder=Δημιουργία εντολής αγοράς AddSupplierInvoice=Δημιουργία τιμολογίου προμηθευτή -ListOfSupplierProductForSupplier=Κατάλογος προϊόντων και τιμών για τον πωλητή %s -SentToSuppliers=Στείλτε στους προμηθευτές +ListOfSupplierProductForSupplier=Λίστα προϊόντων και τιμών για τον προμηθευτή %s +SentToSuppliers=Απεσταλμένες στους προμηθευτές ListOfSupplierOrders=Λίστα παραγγελιών αγοράς -MenuOrdersSupplierToBill=Παραγγελίες αγοράς στο τιμολόγιο -NbDaysToDelivery=Παράταση παράδοσης (ημέρες) +MenuOrdersSupplierToBill=Παραγγελίες αγοράς προς τιμολόγηση +NbDaysToDelivery=Καθυστέρηση παράδοσης (ημέρες) DescNbDaysToDelivery=Η μεγαλύτερη καθυστέρηση παράδοσης των προϊόντων από αυτήν την παραγγελία -SupplierReputation=Φήμη πωλητή -ReferenceReputation=Reference reputation +SupplierReputation=Φήμη προμηθευτή +ReferenceReputation=Αξιολόγηση κωδικού DoNotOrderThisProductToThisSupplier=Να μην γίνει παραγγελία NotTheGoodQualitySupplier=Χαμηλή ποιότητα -ReputationForThisProduct=Φήμη +ReputationForThisProduct=Αξιολόγηση προϊόντος BuyerName=Όνομα αγοραστή AllProductServicePrices=Όλες οι τιμές προϊόντων / υπηρεσιών -AllProductReferencesOfSupplier=All references of vendor -BuyingPriceNumShort=Τιμές πωλητών +AllProductReferencesOfSupplier=Όλες οι καταγραφές του προμηθευτή +BuyingPriceNumShort=Τιμές προμηθευτών +RepeatableSupplierInvoice=Πρότυπο τιμολόγιο προμηθευτή +RepeatableSupplierInvoices=Πρότυπα τιμολόγια προμηθευτή +RepeatableSupplierInvoicesList=Πρότυπα τιμολόγια προμηθευτή +RecurringSupplierInvoices=Επαναλαμβανόμενα τιμολόγια προμηθευτή +ToCreateAPredefinedSupplierInvoice=Για να δημιουργήσεις ένα πρότυπο τιμολόγιο προμηθευτή, πρέπει πρώτα να δημιουργήσεις ένα κανονικό τιμολόγιο και χωρίς να το επικυρώσεις να πατήσεις το κουμπί "%s". +GeneratedFromSupplierTemplate=Δημιουργήθηκε από το πρότυπο τιμολόγιο προμηθευτή %s +SupplierInvoiceGeneratedFromTemplate=Τιμολόγιο προμηθευτή %sΔημιουργήθηκε από το πρότυπο τιμολόγιο προμηθευτή %s diff --git a/htdocs/langs/el_GR/ticket.lang b/htdocs/langs/el_GR/ticket.lang index 0c66458130d..46cca1c2e7e 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 @@ -29,7 +29,7 @@ Permission56005=Δείτε τα tickets όλων των τρίτων (δεν ι TicketDictType=Ticket - Τύποι TicketDictCategory=Ticket - Ομάδες -TicketDictSeverity=Ticket - Σημαντικότητα +TicketDictSeverity=Ticket - Κρισιμότητα TicketDictResolution=Ticket - Επίλυση TicketTypeShortCOM=Εμπορική ερώτηση @@ -41,7 +41,7 @@ TicketTypeShortPROJET=Έργο TicketTypeShortOTHER=Άλλο TicketSeverityShortLOW=Χαμηλή -TicketSeverityShortNORMAL=Κανονικός +TicketSeverityShortNORMAL=Κανονική TicketSeverityShortHIGH=Υψηλή TicketSeverityShortBLOCKING=Κρίσιμο, Blocking @@ -50,7 +50,7 @@ TicketCategoryShortOTHER=Άλλο ErrorBadEmailAddress=Το πεδίο '%s' είναι εσφαλμένο MenuTicketMyAssign=Τα tickets μου MenuTicketMyAssignNonClosed=Τα ανοιχτά tickets μου -MenuListNonClosed=Ανοίξτε ticket +MenuListNonClosed=Ανοιχτά tickets TypeContact_ticket_internal_CONTRIBUTOR=Συνεισφέρων TypeContact_ticket_internal_SUPPORTTEC=Χρήστης σε ανάθεση @@ -89,80 +89,96 @@ TicketSetupPage= TicketPublicAccess=Μια δημόσια διεπαφή που δεν απαιτεί αναγνώριση είναι διαθέσιμη στην παρακάτω διεύθυνση URL TicketSetupDictionaries=Ο τύπος του ticket, ο βαθμός σοβαρότητας και οι αναλυτικοί κωδικοί ρυθμίζονται από λεξικά TicketParamModule=Ρύθμιση μεταβλητής μονάδας -TicketParamMail=Ρύθμιση ηλεκτρονικού ταχυδρομείου -TicketEmailNotificationFrom=Ειδοποίηση ηλεκτρονικού ταχυδρομείου από -TicketEmailNotificationFromHelp=Χρησιμοποιείται στο μήνυμα του εισιτηρίου με το παράδειγμα -TicketEmailNotificationTo=Οι ειδοποιήσεις αποστέλλονται ηλεκτρονικά στο -TicketEmailNotificationToHelp=Στείλτε ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου σε αυτήν τη διεύθυνση. +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 για να δημιουργήσετε ένα εισιτήριο +TicketsEmailMustExistHelp=Στη δημόσια διεπαφή, η διεύθυνση email θα πρέπει να έχει ήδη συμπληρωθεί στη βάση δεδομένων για να δημιουργηθεί ένα νέο ticket. +TicketCreateThirdPartyWithContactIfNotExist=Ζητήστε όνομα και όνομα εταιρείας για άγνωστα email. +TicketCreateThirdPartyWithContactIfNotExistHelp=Ελέγξτε εάν υπάρχει τρίτο μέρος ή επαφή για το email που καταχωρίσατε. Εάν όχι, ζητήστε ένα όνομα και ένα όνομα εταιρείας για να δημιουργήσετε ένα τρίτο μέρος με επαφή. PublicInterface=Δημόσια διεπαφή -TicketUrlPublicInterfaceLabelAdmin=Εναλλακτική διεύθυνση URL για δημόσια διασύνδεση +TicketUrlPublicInterfaceLabelAdmin=Εναλλακτική διεύθυνση URL για δημόσια διεπαφή TicketUrlPublicInterfaceHelpAdmin=Είναι δυνατόν να ορίσετε ένα ψευδώνυμο στον διακομιστή ιστού και έτσι να διαθέσετε τη δημόσια διασύνδεση με μια άλλη διεύθυνση URL (ο διακομιστής πρέπει να ενεργεί ως διακομιστής μεσολάβησης σε αυτήν τη νέα διεύθυνση URL) -TicketPublicInterfaceTextHomeLabelAdmin=Καλωσόρισμα κειμένου της δημόσιας διασύνδεσης +TicketPublicInterfaceTextHomeLabelAdmin=Κείμενο καλωσορίσματος της δημόσιας διεπαφής TicketPublicInterfaceTextHome=Μπορείτε να δημιουργήσετε ένα ticket υποστήριξης ή να προβάλετε ένα υπάρχον από το αναγνωριστικό παρακολούθησης ticket. -TicketPublicInterfaceTextHomeHelpAdmin=Το κείμενο που ορίζεται εδώ θα εμφανιστεί στην αρχική σελίδα της δημόσιας διασύνδεσης. +TicketPublicInterfaceTextHomeHelpAdmin=Το κείμενο που ορίζεται εδώ θα εμφανιστεί στην αρχική σελίδα της δημόσιας διεπαφής. TicketPublicInterfaceTopicLabelAdmin=Τίτλος διεπαφής -TicketPublicInterfaceTopicHelp=Αυτό το κείμενο θα εμφανιστεί ως ο τίτλος της δημόσιας διασύνδεσης. +TicketPublicInterfaceTopicHelp=Αυτό το κείμενο θα εμφανιστεί ως τίτλος της δημόσιας διεπαφής. TicketPublicInterfaceTextHelpMessageLabelAdmin=Βοήθεια κειμένου στην καταχώρηση μηνύματος TicketPublicInterfaceTextHelpMessageHelpAdmin=Αυτό το κείμενο θα εμφανιστεί πάνω από την περιοχή εισαγωγής μηνυμάτων του χρήστη. ExtraFieldsTicket=Επιπλέον χαρακτηριστικά TicketCkEditorEmailNotActivated=Ο επεξεργαστής HTML δεν είναι ενεργοποιημένος. Καταχωρίστε το περιεχόμενο FCKEDITOR_ENABLE_MAIL σε 1 για να το αποκτήσετε. TicketsDisableEmail=Μην αποστέλλετε μηνύματα ηλεκτρονικού ταχυδρομείου για τη δημιουργία εισιτηρίων ή την εγγραφή μηνυμάτων -TicketsDisableEmailHelp=Από προεπιλογή, αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργούνται νέα εισιτήρια ή μηνύματα. Ενεργοποιήστε αυτήν την επιλογή για να απενεργοποιήσετε όλες τις * ειδοποιήσεις ηλεκτρονικού ταχυδρομείου -TicketsLogEnableEmail=Ενεργοποιήστε το αρχείο καταγραφής μέσω ηλεκτρονικού ταχυδρομείου -TicketsLogEnableEmailHelp=Σε κάθε αλλαγή, θα σταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου ** σε κάθε επαφή ** που σχετίζεται με το εισιτήριο. -TicketParams=Params +TicketsDisableEmailHelp=Από προεπιλογή, αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου όταν δημιουργούνται νέα εισιτήρια ή μηνύματα. Ενεργοποιήστε αυτήν την επιλογή για να απενεργοποιήσετε *όλες τις * ειδοποιήσεις ηλεκτρονικού ταχυδρομείου +TicketsLogEnableEmail=Ενεργοποίηση καταγραφής μέσω email +TicketsLogEnableEmailHelp=Σε κάθε αλλαγή, θα σταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου ** σε κάθε επαφή ** που σχετίζεται με το ticket. +TicketParams=Παράμετροι TicketsShowModuleLogo=Εμφανίστε το λογότυπο της ενότητας στη δημόσια διεπαφή TicketsShowModuleLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε τη λειτουργική μονάδα λογότυπου στις σελίδες της δημόσιας διασύνδεσης -TicketsShowCompanyLogo=Εμφανίστε το λογότυπο της εταιρείας στο δημόσιο περιβάλλον -TicketsShowCompanyLogoHelp=Ενεργοποιήστε αυτήν την επιλογή για να αποκρύψετε το λογότυπο της κύριας εταιρείας στις σελίδες της δημόσιας διασύνδεσης -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") +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=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. +TicketNumberingModules=Ενότητα αρίθμησης εισιτηρίων +TicketsModelModule=Πρότυπα εγγράφων για tickets +TicketNotifyTiersAtCreation=Ειδοποιήστε το τρίτο μέρος κατά τη δημιουργία +TicketsDisableCustomerEmail=Πάντα να απενεργοποιείτε τα email όταν δημιουργείται ένα εισιτήριο από δημόσια διεπαφή +TicketsPublicNotificationNewMessage=Στείλτε email όταν ένα νέο μήνυμα/σχόλιο προστεθεί σε ένα ticket +TicketsPublicNotificationNewMessageHelp=Στείλτε email όταν προστίθεται νέο μήνυμα από τη δημόσια διεπαφή (στον εκχωρημένο χρήστη ή το email ειδοποιήσεων προς (ενημέρωση) ή/και το email ειδοποιήσεων προς) +TicketPublicNotificationNewMessageDefaultEmail=email ειδοποιήσεων προς (ενημέρωση) +TicketPublicNotificationNewMessageDefaultEmailHelp=Στείλτε ένα μήνυμα email σε αυτήν τη διεύθυνση για ειδοποιήσεις κάθε νέου μηνύματος, εάν στο ticket δεν έχει εκχωρηθεί χρήστης ή εάν ο χρήστης δεν έχει κάποιο γνωστό email. +TicketsAutoReadTicket=Αυτόματη επισήμανση του ticket ως αναγνωσμένου (όταν δημιουργείται από την υποστήριξη) +TicketsAutoReadTicketHelp=Αυτόματη επισήμανση του ticket ως αναγνωσμένου όταν έχει δημιουργηθεί από την υποστήριξη. Όταν το εισιτήριο δημιουργείται από τη δημόσια διεπαφή, το εισιτήριο παραμένει στην κατάσταση "Μη αναγνωσμένο". +TicketsDelayBeforeFirstAnswer=Ένα νέο ticket θα πρέπει να λάβει μια πρώτη απάντηση πριν από (σε ώρες): +TicketsDelayBeforeFirstAnswerHelp=Εάν ένα νέο ticket δεν έχει λάβει απάντηση μετά από αυτό το χρονικό διάστημα (σε ώρες), θα εμφανιστεί ένα εικονίδιο ειδοποίησης σημαντικού γεγονότος στην προβολή λίστας. +TicketsDelayBetweenAnswers=Ένα ticket που δεν έχει επιλυθεί δεν πρέπει να είναι ανενεργό κατά τη διάρκεια (ώρες): +TicketsDelayBetweenAnswersHelp=Εάν ένα ticket που δεν έχει επιλυθεί που έχει ήδη λάβει απάντηση δεν έχει περαιτέρω αλληλεπίδραση μετά από αυτήν τη χρονική περίοδο (σε ώρες), θα εμφανιστεί ένα εικονίδιο προειδοποίησης στην προβολή λίστας. +TicketsAutoNotifyClose=Αυτόματη ειδοποίηση του τρίτου μέρους κατά το κλείσιμο ενός ticket +TicketsAutoNotifyCloseHelp=Κατά το κλείσιμο ενός ticket, θα σας προταθεί να στείλετε ένα μήνυμα σε μία από τις επαφές τρίτων. Κατά το μαζικό κλείσιμο, θα σταλεί ένα μήνυμα σε μια επαφή του τρίτου μέρους που είναι συνδεδεμένο με το ticket. +TicketWrongContact=Η παρεχόμενη επαφή δεν αποτελεί μέρος των επαφών του τρέχοντος ticket. Το email δεν στάλθηκε. +TicketChooseProductCategory=Κατηγορία προϊόντος για υποστήριξη ticket +TicketChooseProductCategoryHelp=Επιλέξτε την κατηγορία προϊόντων υποστήριξης ticket Αυτό θα χρησιμοποιηθεί για την αυτόματη σύνδεση μιας σύμβασης με ένα 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 κατά το κλείσιμο 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=Απάντηση εισιτηρίου TicketTypeRequest=Τύπος αιτήματος TicketCategory=Κατηγοριοποίηση ticket SeeTicket=Δείτε το ticket @@ -171,60 +187,60 @@ TicketReadOn=Συνέχισε να διαβάζεις TicketCloseOn=Ημερομηνία Κλεισίματος MarkAsRead=Μαρκάρετε το ticket ως αναγνωσμένο TicketHistory=Ιστορικό ticket -AssignUser=Αναθέστε στον χρήστη +AssignUser=Εκχώρηση στον χρήστη TicketAssigned=Το ticket έχει πλέον εκχωρηθεί -TicketChangeType=Αλλάξτε τον τύπο -TicketChangeCategory=Αλλάξτε τον αναλυτικό κώδικα -TicketChangeSeverity=Αλλάξτε τη σοβαρότητα +TicketChangeType=Αλλαγή τύπου +TicketChangeCategory=Αλλαγή αναλυτικού κώδικα +TicketChangeSeverity=Αλλαγή κρισιμότητας TicketAddMessage=Προσθήκη μηνύματος AddMessage=Προσθήκη μηνύματος MessageSuccessfullyAdded=Το ticket προστέθηκε TicketMessageSuccessfullyAdded=Το μήνυμα προστέθηκε με επιτυχία TicketMessagesList=Λίστα μηνυμάτων NoMsgForThisTicket=Δεν υπάρχει μήνυμα για αυτό το ticket -TicketProperties=Classification +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=Κλείσιμο|Επίλυση ticket +AbandonTicket=Εγκατάλειψη ticket +CloseATicket=Κλείσιμο|Επίλυση ticket +ConfirmCloseAticket=Επιβεβαίωση κλεισίματος ticket +ConfirmAbandonTicket=Επιβεβαιώνετε το κλείσιμο του ticket σε κατάσταση 'Εγκαταλελειμμένο' +ConfirmDeleteTicket=Παρακαλώ επιβεβαιώστε τη διαγραφή του ticket TicketDeletedSuccess=Το ticket διαγράφηκε με επιτυχία -TicketMarkedAsClosed=Το ticket επισημαίνεται ως κλειστό +TicketMarkedAsClosed=Το ticket επισημάνθηκε ως κλειστό TicketDurationAuto=Υπολογισμένη διάρκεια TicketDurationAutoInfos=Διάρκεια υπολογίζεται αυτόματα από την παρέμβαση TicketUpdated=Το ticket ενημερώθηκε -SendMessageByEmail=Αποστολή μηνύματος μέσω ηλεκτρονικού ταχυδρομείου +SendMessageByEmail=Στείλτε μήνυμα με email TicketNewMessage=Νέο μήνυμα ErrorMailRecipientIsEmptyForSendTicketMessage=Ο παραλήπτης είναι κενός. Δεν στέλνεται μήνυμα ηλεκτρονικού ταχυδρομείου -TicketGoIntoContactTab=Μεταβείτε στην καρτέλα "Επαφές" για να τις επιλέξετε +TicketGoIntoContactTab=Μεταβείτε στην καρτέλα "Επαφές" για να τις επιλέξετε TicketMessageMailIntro=Εισαγωγή -TicketMessageMailIntroHelp=Αυτό το κείμενο προστίθεται μόνο στην αρχή του μηνύματος ηλεκτρονικού ταχυδρομείου και δεν θα αποθηκευτεί. -TicketMessageMailIntroLabelAdmin=Εισαγωγή στο μήνυμα κατά την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου -TicketMessageMailIntroText=Γεια σας,
    Μια νέα απάντηση στάλθηκε σε ένα ticket που είστε επαφή. Εδώ είναι το μήνυμα:
    -TicketMessageMailIntroHelpAdmin=Αυτό το κείμενο θα εισαχθεί πριν από το κείμενο της απάντησης σε ένα ticket. +TicketMessageMailIntroHelp=Αυτό το κείμενο προστίθεται μόνο στην αρχή του email και δεν θα αποθηκευτεί. +TicketMessageMailIntroLabelAdmin=Εισαγωγικό κείμενο για όλες τις απαντήσεις ticket +TicketMessageMailIntroText=Γεια σας,
    Μια νέα απάντηση προστέθηκε σε ένα ticket που ακολουθείτε. Εδώ είναι το μήνυμα:
    +TicketMessageMailIntroHelpAdmin=Αυτό το κείμενο θα εισαχθεί πριν από την απάντηση όταν απαντάτε σε ένα ticket από το Dolibarr TicketMessageMailSignature=Υπογραφή -TicketMessageMailSignatureHelp=Αυτό το κείμενο προστίθεται μόνο στο τέλος του μηνύματος ηλεκτρονικού ταχυδρομείου και δεν θα αποθηκευτεί. -TicketMessageMailSignatureText=

    Με εκτιμιση,

    -

    -TicketMessageMailSignatureLabelAdmin=Υπογραφή ηλεκτρονικού ταχυδρομείου απάντησης +TicketMessageMailSignatureHelp=Αυτό το κείμενο προστίθεται μόνο στο τέλος του email και δεν θα αποθηκευτεί. +TicketMessageMailSignatureText=Το μήνυμα στάλθηκε από %s μέσω Dolibarr +TicketMessageMailSignatureLabelAdmin=Υπογραφή email απάντησης TicketMessageMailSignatureHelpAdmin=Αυτό το κείμενο θα εισαχθεί μετά το μήνυμα απάντησης. -TicketMessageHelp=Μόνο αυτό το κείμενο θα αποθηκευτεί στη λίστα μηνυμάτων της κάρτας tickets. +TicketMessageHelp=Μόνο αυτό το κείμενο θα αποθηκευτεί στη λίστα μηνυμάτων της κάρτας ticket. TicketMessageSubstitutionReplacedByGenericValues=Οι μεταβλητές αντικατάστασης αντικαθίστανται από γενικές τιμές. -TimeElapsedSince=Χρόνος που πέρασε από τότε -TicketTimeToRead=Ο χρόνος που παρέμενε πριν διαβάσετε -TicketTimeElapsedBeforeSince=Time elapsed before / since +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=Επισήμανση μηνύματος ως απόρρητου TicketMessagePrivateHelp=Αυτό το μήνυμα δεν θα εμφανίζεται σε εξωτερικούς χρήστες TicketEmailOriginIssuer=Δημιουργός στην αρχή των tickets InitialMessage=Αρχικό μήνυμα @@ -232,24 +248,31 @@ LinkToAContract=Σύνδεση με σύμβαση TicketPleaseSelectAContract=Επιλέξτε μια σύμβαση UnableToCreateInterIfNoSocid=Δεν είναι δυνατή η δημιουργία παρέμβασης όταν δεν ορίζεται κάποιο τρίτο μέρος TicketMailExchanges=Ανταλλαγές αλληλογραφίας -TicketInitialMessageModified=Αρχικό μήνυμα τροποποιήθηκε +TicketInitialMessageModified=Το αρχικό μήνυμα τροποποιήθηκε TicketMessageSuccesfullyUpdated=Το μήνυμα ενημερώθηκε με επιτυχία TicketChangeStatus=Αλλαγή κατάστασης TicketConfirmChangeStatus=Επιβεβαιώστε την αλλαγή κατάστασης: %s? -TicketLogStatusChanged=Η κατάσταση άλλαξε: %s to %s +TicketLogStatusChanged=Η κατάσταση άλλαξε: απο%s σε %s TicketNotNotifyTiersAtCreate=Μην ειδοποιείτε την εταιρεία στη δημιουργία -Unread=Αδιάβαστος -TicketNotCreatedFromPublicInterface=Μη διαθέσιμος. Το εισιτήριο δεν δημιουργήθηκε από το δημόσιο περιβάλλον. -ErrorTicketRefRequired=Το όνομα αναφοράς Eισιτηρίου είναι υποχρεωτικό +NotifyThirdpartyOnTicketClosing=Επαφές για ειδοποίηση κατά το κλείσιμο του ticket +TicketNotifyAllTiersAtClose=Όλες οι σχετικές επαφές +TicketNotNotifyTiersAtClose=Καμία σχετική επαφή +Unread=Αδιάβαστο +TicketNotCreatedFromPublicInterface=Μη διαθέσιμο. Το ticket δεν δημιουργήθηκε από δημόσια διεπαφή. +ErrorTicketRefRequired=Απαιτείται όνομα αναφοράς ticket +TicketsDelayForFirstResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από το άνοιγμα του ticket χωρίς καμία απάντηση. +TicketsDelayFromLastResponseTooLong=Έχει περάσει πάρα πολύς χρόνος από την τελευταία απάντηση σε αυτό το ticket. +TicketNoContractFoundToLink=Δεν βρέθηκε σύμβαση που να συνδέεται αυτόματα με αυτό το εισιτήριο. Συνδέστε μια σύμβαση μη αυτόματα. +TicketManyContractsLinked=Πολλές συμβάσεις έχουν συνδεθεί αυτόματα με αυτό το ticket. Βεβαιωθείτε ότι έχετε επαληθεύσει ποιο πρέπει να επιλεγεί. # # Logs # TicketLogMesgReadBy=Το ticket %s διαβάστηκε από %s -NoLogForThisTicket=Δεν υπάρχει καταγραφή για αυτό το ticket ακόμα +NoLogForThisTicket=Δεν υπάρχει αρχείο καταγραφής για αυτό το ticket ακόμα TicketLogAssignedTo=Το ticket %s ανατέθηκε στο %s TicketLogPropertyChanged=Το ticket %s τροποποιήθηκε: ταξινόμηση από %s σε %s -TicketLogClosedBy=Το ticket %s έκλεισε με %s +TicketLogClosedBy=Το ticket %s έκλεισε απο %s TicketLogReopen=Εκ νέου άνοιγμα του ticket %s # @@ -268,12 +291,13 @@ TicketNewEmailBody=Αυτό είναι ένα αυτόματο μήνυμα ηλ TicketNewEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα ηλεκτρονικού ταχυδρομείου που επιβεβαιώνει ότι μόλις δημιουργήθηκε νέο ticket στο λογαριασμό σας. TicketNewEmailBodyInfosTicket=Πληροφορίες για την παρακολούθηση του ticket TicketNewEmailBodyInfosTrackId=Αριθμός παρακολούθησης ticket: %s -TicketNewEmailBodyInfosTrackUrl=Μπορείτε να δείτε την πρόοδο του ticket κάνοντας κλικ στον παραπάνω σύνδεσμο. +TicketNewEmailBodyInfosTrackUrl=Μπορείτε να δείτε την εξέλιξη του ticket κάνοντας κλικ στον παρακάτω σύνδεσμο TicketNewEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε την πρόοδο του ticket στη συγκεκριμένη διεπαφή κάνοντας κλικ στον ακόλουθο σύνδεσμο +TicketCloseEmailBodyInfosTrackUrlCustomer=Μπορείτε να δείτε το ιστορικό αυτού του ticket κάνοντας κλικ στον παρακάτω σύνδεσμο TicketEmailPleaseDoNotReplyToThisEmail=Παρακαλώ μην απαντήσετε απευθείας σε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου! Χρησιμοποιήστε το σύνδεσμο για να απαντήσετε μέσω της διεπαφής. TicketPublicInfoCreateTicket=Αυτή η φόρμα σάς επιτρέπει να καταγράψετε ένα ticket υποστήριξης στο σύστημα διαχείρισης. TicketPublicPleaseBeAccuratelyDescribe=Παρακαλούμε περιγράψτε με ακρίβεια το πρόβλημα. Παρέχετε τις περισσότερες πληροφορίες που είναι δυνατόν να μας επιτρέψουν να προσδιορίσουμε σωστά το αίτημά σας. -TicketPublicMsgViewLogIn=Εισαγάγετε το αναγνωριστικό παρακολούθησης ticket +TicketPublicMsgViewLogIn=Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket TicketTrackId=Δημόσιο αναγνωριστικό παρακολούθησης OneOfTicketTrackId=Ένα από τα αναγνωριστικά παρακολούθησης ErrorTicketNotFound=Δεν βρέθηκε ticket με αναγνωριστικό παρακολούθησης %s! @@ -283,7 +307,7 @@ ViewMyTicketList=Δείτε τη λίστα των tickets μου ErrorEmailMustExistToCreateTicket=Σφάλμα: η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν βρέθηκε στη βάση δεδομένων μας TicketNewEmailSubjectAdmin=Δημιουργήθηκε νέο ticket - Ref %s (δημόσιο ticket ID %s) TicketNewEmailBodyAdmin=

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

    -SeeThisTicketIntomanagementInterface=Δείτε το εισιτήριο στη διεπαφή διαχείρισης +SeeThisTicketIntomanagementInterface=Δείτε το Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket στη διεπαφή διαχείρισης TicketPublicInterfaceForbidden=Η δημόσια διεπαφή για τα tickets δεν ήταν ενεργοποιημένη ErrorEmailOrTrackingInvalid=Λάθος τιμή ID παρακολούθηση ή ηλεκτρονικού ταχυδρομείου OldUser=Παλιός χρήστης @@ -291,14 +315,18 @@ NewUser=Νέος χρήστης NumberOfTicketsByMonth=Αριθμός tickets ανά μήνα NbOfTickets=Αριθμός tickets # notifications +TicketCloseEmailSubjectCustomer=Το Παρακαλώ εισαγάγετε το αναγνωριστικό παρακολούθησης ticket έκλεισε +TicketCloseEmailBodyCustomer=Αυτό είναι ένα αυτόματο μήνυμα για να σας ενημερώσουμε ότι το ticket %s μόλις έκλεισε. +TicketCloseEmailSubjectAdmin=Το εισιτήριο έκλεισε - Réf %s (δημόσιο ID εισιτηρίου %s) +TicketCloseEmailBodyAdmin=Ένα ticket με ID #%s μόλις έκλεισε, δείτε πληροφορίες: TicketNotificationEmailSubject=Το ticket %s ενημερώθηκε TicketNotificationEmailBody=Αυτό είναι ένα αυτόματο μήνυμα που σας ειδοποιεί ότι το ticket %s μόλις ενημερώθηκε TicketNotificationRecipient=Αποδέκτης ειδοποίησης -TicketNotificationLogMessage=Μηνύματα καταγραφής +TicketNotificationLogMessage=Μήνυμα καταγραφής TicketNotificationEmailBodyInfosTrackUrlinternal=Προβολή ticket σε διεπαφή TicketNotificationNumberEmailSent=Ειδοποίηση ηλεκτρονικού ταχυδρομείου αποστολή: %s -ActionsOnTicket=Συμβάντα του ticket +ActionsOnTicket=Ενέργειες στο ticket # # Boxes @@ -311,14 +339,14 @@ BoxLastModifiedTicket=Τελευταία τροποποιημένα tickets BoxLastModifiedTicketDescription=Τα τελευταία %s τροποποιημένα tickets BoxLastModifiedTicketContent= BoxLastModifiedTicketNoRecordedTickets=Δεν υπάρχουν πρόσφατα τροποποιημένα 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 +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 202165bb4a1..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=Αναφορά εξόδων ταυτότητας -AnyOtherInThisListCanValidate=Person to be informed for validating the request. +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,85 +66,85 @@ 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=Configuration of mileage charges -ExpenseReportsRules=Κανόνες έκθεσης δαπανών +ExpenseReportsIk=Διαμόρφωση χιλιομετρικών χρεώσεων +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 +ExpenseReportRulesDesc=Μπορείτε να ορίσετε κανόνες μέγιστου ποσού για αναφορές εξόδων. Αυτοί οι κανόνες θα εφαρμόζονται όταν ένα νέο έξοδο προστίθεται σε μια αναφορά εξόδων expenseReportOffset=Απόκλιση 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=Max amount -ExpenseReportRestrictive=Exceeding forbidden -AllExpenseReport=Όλες οι εκθέσεις δαπανών -OnExpense=Γραμμή δαπανών -ExpenseReportRuleSave=Ο κανόνας αναφοράς δαπανών αποθηκεύτηκε +ExpenseReportLimitAmount=Μέγιστο ποσό +ExpenseReportRestrictive=Η υπέρβαση απαγορεύεται +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) +ExpenseReportConstraintViolationError=Υπέρβαση του μέγιστου ποσού (κανόνας %s): το %s είναι υψηλότερο από το %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=Vehicle category -ExpenseRangeOffset=Ποσό αντιστάθμισης: %s +CarCategory=Κατηγορία οχήματος +ExpenseRangeOffset=Ποσό απόκλισης: %s RangeIk=Εύρος χιλιομέτρων -AttachTheNewLineToTheDocument=Συνδέστε τη γραμμή σε ένα φορτωμένο έγγραφο +AttachTheNewLineToTheDocument=Συνδέστε τη γραμμή με ένα μεταφορτωμένο έγγραφο diff --git a/htdocs/langs/el_GR/users.lang b/htdocs/langs/el_GR/users.lang index 0819a47cf11..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=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,87 @@ 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. -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=Επιβεβαιώστε την επαναφορά κωδικού πρόσβασης +PasswordChangeRequestSent=Το αίτημα για αλλαγή κωδικού πρόσβασης για %s στάλθηκε στο %s . +IfLoginExistPasswordRequestSent=Εάν αυτή η σύνδεση αφορά έγκυρο λογαριασμό, έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. +IfEmailExistPasswordRequestSent=Εάν αυτό το email είναι έγκυρος λογαριασμός, έχει σταλεί ένα email για επαναφορά του κωδικού πρόσβασης. +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 -LinkedToDolibarrUser=Link to user -LinkedToDolibarrThirdParty=Link to third party -CreateDolibarrLogin=Create a user -CreateDolibarrThirdParty=Create a third party -LoginAccountDisableInDolibarr=Account disabled in Dolibarr. +UserModified=Ο χρήστης τροποποιήθηκε με επιτυχία +PhotoFile=Αρχείο φωτογραφίας +ListOfUsersInGroup=Λίστα χρηστών σε αυτήν την ομάδα +ListOfGroupsForUser=Λίστα ομάδων για αυτόν τον χρήστη +LinkToCompanyContact=Σύνδεσμος προς τρίτο μέρος / επαφή +LinkedToDolibarrMember=Σύνδεσμος με μέλος +LinkedToDolibarrUser=Σύνδεσμος προς χρήστη +LinkedToDolibarrThirdParty=Σύνδεσμος προς τρίτο μέρος +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=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=Δημιουργήθηκε χρήστη θα είναι ένας εσωτερικός χρήστης (επειδή δεν συνδέεται με ένα συγκεκριμένο τρίτο μέρος) -UserWillBeExternalUser=Δημιουργήθηκε χρήστης θα είναι μια εξωτερική χρήστη (επειδή συνδέονται με μια συγκεκριμένη τρίτο μέρος) +Reactivate=Επανενεργοποίηση +CreateInternalUserDesc=Αυτή η φόρμα σάς επιτρέπει να δημιουργήσετε έναν εσωτερικό χρήστη στην εταιρεία/οργανισμό σας. Για να δημιουργήσετε έναν εξωτερικό χρήστη (πελάτη, προμηθευτή κ.λπ. ..), χρησιμοποιήστε το κουμπί "Δημιουργία χρήστη Dolibarr" από την κάρτα επικοινωνίας αυτού του τρίτου μέρους. +InternalExternalDesc=Ένας εσωτερικός χρήστης είναι ένας χρήστης που ανήκει στην εταιρεία/οργανισμό σας ή είναι συνεργάτης χρήστης εκτός του οργανισμού σας που μπορεί να χρειάζεται να δει περισσότερα δεδομένα από τα δεδομένα που σχετίζονται με την εταιρεία του (το σύστημα δικαιωμάτων θα καθορίσει τι μπορεί ή τι δεν μπορεί να δει ή να κάνει).
    Ένας εξωτερικός χρήστης είναι ένας πελάτης, προμηθευτής ή άλλος που πρέπει να βλέπει ΜΟΝΟ δεδομένα που σχετίζονται με τον εαυτό του (Η δημιουργία εξωτερικού χρήστη για τρίτο μέρος μπορεί να γίνει από την εγγραφή επαφής του τρίτου μέρους).

    Και στις δύο περιπτώσεις, πρέπει να εκχωρήσετε δικαιώματα για τις δυνατότητες που χρειάζεται ο χρήστης. +PermissionInheritedFromAGroup=Η άδεια παραχωρήθηκε επειδή κληρονομήθηκε από μια ομάδα του χρήστη +Inherited=Κληρονομήθηκε +UserWillBe=Ο χρήστης που δημιουργήθηκε θα είναι +UserWillBeInternalUser=Ο χρήστης που δημιουργήθηκε θα είναι εσωτερικός χρήστης (επειδή δεν συνδέεται με συγκεκριμένο τρίτο μέρος) +UserWillBeExternalUser=Ο χρήστης που δημιουργήθηκε θα είναι εξωτερικός χρήστης (επειδή συνδέεται με ένα συγκεκριμένο τρίτο μέρος) 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=Ομάδα %s τροποποιημένη -GroupDeleted=Group %s removed -ConfirmCreateContact=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτή την επαφή; -ConfirmCreateLogin=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτό το μέλος; -ConfirmCreateThirdParty=Είστε βέβαιοι ότι θέλετε να δημιουργήσετε ένα τρίτο μέρος για αυτό το μέλος; +NewUserCreated=Ο χρήστης %s δημιουργήθηκε +NewUserPassword=Αλλαγή κωδικού πρόσβασης για %s +NewPasswordValidated=Ο νέος σας κωδικός έχει επικυρωθεί και πρέπει να χρησιμοποιηθεί τώρα για να συνδεθείτε. +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 ! -NbOfUsers=Number of users -NbOfPermissions=Number of permissions -DontDowngradeSuperAdmin=Μόνο μια superadmin μπορεί να προβεί στην ανακατάταξη ενός superadmin +NameToCreate=Όνομα τρίτου μέρους προς δημιουργία +YourRole=Οι ρόλοι σας +YourQuotaOfUsersIsReached=Συμπληρώθηκε το όριο ενεργών χρηστών σας! +NbOfUsers=Αριθμός χρηστών +NbOfPermissions=Αριθμός αδειών +DontDowngradeSuperAdmin=Μόνο ένας υπερδιαχειριστής μπορεί να υποβαθμίσει έναν υπερδιαχειριστή HierarchicalResponsible=Επόπτης HierarchicView=Ιεραρχική προβολή -UseTypeFieldToChange=Χρησιμοποιήστε είδος πεδίου για να αλλάξετε -OpenIDURL=OpenID URL +UseTypeFieldToChange=Χρησιμοποιήστε τύπο πεδίου προς αλλαγή +OpenIDURL=Διεύθυνση URL OpenID LoginUsingOpenID=Χρησιμοποιήστε το OpenID για να συνδεθείτε WeeklyHours=Ώρες εργασίας (ανά εβδομάδα) -ExpectedWorkedHours=Expected hours worked per week -ColorUser=Χρώμα του χρήστη +ExpectedWorkedHours=Αναμενόμενες ώρες εργασίας ανά εβδομάδα +ColorUser=Χρώμα χρήστη DisabledInMonoUserMode=Απενεργοποιημένο σε κατάσταση συντήρησης -UserAccountancyCode=Κωδικός λογαριασμού χρήστη +UserAccountancyCode=Λογιστικός κωδικός χρήστη UserLogoff=Αποσύνδεση χρήστη UserLogged=Ο χρήστης καταγράφηκε -DateOfEmployment=Employment date -DateEmployment=Employment -DateEmploymentstart=Employment Start Date +DateOfEmployment=Ημερομηνία πρόσληψης +DateEmployment=Εργασία +DateEmploymentStart=Ημερομηνία Έναρξης Απασχόλησης DateEmploymentEnd=Ημερομηνία λήξης απασχόλησης -RangeOfLoginValidity=Access validity date range +RangeOfLoginValidity=Εύρος διάρκειας εγκυρότητας πρόσβασης CantDisableYourself=Δεν μπορείτε να απενεργοποιήσετε το δικό σας αρχείο χρήστη -ForceUserExpenseValidator=Έγκριση έκθεσης εξόδου ισχύος -ForceUserHolidayValidator=Έγκριση αίτησης για άδεια εξόδου -ValidatorIsSupervisorByDefault=Από προεπιλογή, ο επικυρωτής είναι ο επόπτης του χρήστη. Κρατήστε κενό για να διατηρήσετε αυτή τη συμπεριφορά. +ForceUserExpenseValidator=Επιβολή επικύρωσης αναφοράς εξόδων +ForceUserHolidayValidator=Επιβολή επικύρωσης αιτήματος άδειας +ValidatorIsSupervisorByDefault=Από προεπιλογή, ο επικυρωτής είναι ο επόπτης του χρήστη. Αφήστε κενό για να διατηρήσετε αυτή τη συμπεριφορά. UserPersonalEmail=Προσωπικό email UserPersonalMobile=Προσωπικό κινητό τηλέφωνο -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 +WarningNotLangOfInterface=Προειδοποίηση, αυτή είναι η κύρια γλώσσα που μιλά ο χρήστης και όχι η γλώσσα της διεπαφής που επέλεξε να δει. Για να αλλάξετε τη γλώσσα διεπαφής που είναι ορατή από αυτόν τον χρήστη, μεταβείτε στην καρτέλα %s +DateLastLogin=Ημερομηνία τελευταίας σύνδεσης +DatePreviousLogin=Ημερομηνία προηγούμενης σύνδεσης +IPLastLogin=IP τελευταίας σύνδεσης +IPPreviousLogin=IP προηγούμενης σύνδεσης diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang index ad1a84479f3..83585f34b55 100644 --- a/htdocs/langs/el_GR/website.lang +++ b/htdocs/langs/el_GR/website.lang @@ -1,71 +1,71 @@ # Dolibarr language file - Source file is en_US - website Shortname=Κώδικας WebsiteSetupDesc=Δημιουργήστε εδώ τις ιστοσελίδες που θέλετε να χρησιμοποιήσετε. Στη συνέχεια, μεταβείτε στο μενού Websites για να τις επεξεργαστείτε. -DeleteWebsite=Διαγραφή ιστοχώρου -ConfirmDeleteWebsite=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον ιστότοπο; Όλες οι σελίδες και το περιεχόμενό της θα καταργηθούν επίσης. Τα αρχεία που μεταφορτώνονται (όπως στον κατάλογο medias, στην ενότητα ECM, ...) θα παραμείνουν. -WEBSITE_TYPE_CONTAINER=Τύπος σελίδας / δοχείο +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=Use a comma to separate values +WEBSITE_KEYWORDSDesc=Χρησιμοποιήστε κόμμα για να διαχωρίσετε τιμές EnterHereLicenseInformation=Εισάγετε εδώ μεταδεδομένα ή πληροφορίες άδειας χρήσης για να συμπληρώσετε ένα αρχείο README.md. εάν διανέμετε τον ιστότοπό σας ως πρότυπο, το αρχείο θα συμπεριληφθεί στο πακέτο πειρασμών. -HtmlHeaderPage=Κεφαλίδα HTML (ειδικά για αυτή τη σελίδα) +HtmlHeaderPage=Κεφαλίδα HTML (συγκεκριμένη μόνο για αυτήν τη σελίδα) PageNameAliasHelp=Όνομα ή ψευδώνυμο της σελίδας.
    Αυτό το ψευδώνυμο χρησιμοποιείται επίσης για τη δημιουργία μιας διεύθυνσης SEO όταν ο ιστότοπος έτρεξε από ένα Virtual host ενός διακομιστή Web (όπως Apacke, Nginx, ...). Χρησιμοποιήστε το κουμπί " %s " για να επεξεργαστείτε αυτό το ψευδώνυμο. EditTheWebSiteForACommonHeader=Σημείωση: Εάν θέλετε να ορίσετε μια εξατομικευμένη κεφαλίδα για όλες τις σελίδες, επεξεργαστείτε την κεφαλίδα σε επίπεδο ιστότοπου αντί για σελίδα / κοντέινερ. MediaFiles=Βιβλιοθήκη πολυμέσων EditCss=Επεξεργασία ιδιοτήτων ιστοτόπου EditMenu=Επεξεργασία μενού -EditMedias=Επεξεργασία μέσων +EditMedias=Επεξεργασία πολυμέσων EditPageMeta=Επεξεργασία ιδιοτήτων σελίδας / κοντέινερ EditInLine=Επεξεργασία εν σειρά AddWebsite=Προσθήκη ιστοτόπου -Webpage=Ιστοσελίδα / δοχείο -AddPage=Προσθήκη σελίδας / δοχείου +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=Η σελίδα που ζητήθηκε με id %s δεν έχει ακόμα περιεχόμενο, ή το αρχείο cache .tpl.php καταργήθηκε. Επεξεργαστείτε το περιεχόμενο της σελίδας για να το επιλύσετε. -SiteDeleted=Ο ιστότοπος "%s" διαγράφηκε +SiteDeleted=Ο ιστότοπος '%s' διαγράφηκε PageContent=Σελίδα / Contenair PageDeleted=Σελίδα / Contenair '%s' της ιστοσελίδας %s διαγράφεται PageAdded=Σελίδα / Contenair '%s' προστέθηκε -ViewSiteInNewTab=Προβολή χώρου σε νέα καρτέλα +ViewSiteInNewTab=Προβολή ιστότοπου σε νέα καρτέλα ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα -SetAsHomePage=Ορισμός σαν αρχική σελίδα +SetAsHomePage=Ορισμός ως αρχική σελίδα RealURL=Πραγματική διεύθυνση URL ViewWebsiteInProduction=Προβάλετε τον ιστότοπο χρησιμοποιώντας τις διευθύνσεις URL για το σπίτι -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 +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 που παρέχει πλήρη ενσωμάτωση στην ενότητα Website. Μπορείτε να βρείτε μια λίστα με ορισμένους παρόχους φιλοξενίας Dolibarr στη διεύθυνση https://saas.dolibarr.org -CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s +YouCanAlsoDeployToAnotherWHP= Δημιουργήστε τον ιστότοπο σας με έναν άλλο πάροχο φιλοξενίας Dolibarr
    Εάν δεν διαθέτετε διακομιστή ιστού όπως ο Apache ή ο NGinx διαθέσιμο στο διαδίκτυο, μπορείτε να εξαγάγετε και να εισαγάγετε τον ιστότοπο σας από ένα πάροχο Dolibarr σε άλλο πάροχο Dolibarr που παρέχει πλήρη ενσωμάτωση με την ενότητα Ιστοσελίδας. Μπορείτε να βρείτε μια λίστα με παρόχους φιλοξενίας Dolibarr στο https://saas.dolibarr.org +CheckVirtualHostPerms=Ελέγξτε επίσης ότι ο χρήστης virtual host (για παράδειγμα www-data) έχει %s δικαιώματα σε αρχεία στο
    %s ReadPerm=Ανάγνωση WritePerm=Γράφω TestDeployOnWeb=Δοκιμή / ανάπτυξη στο διαδίκτυο PreviewSiteServedByWebServer=Προεπισκόπηση %s σε μια νέα καρτέλα.

    Το %s θα εξυπηρετηθεί από έναν εξωτερικό διακομιστή ιστού (όπως Apache, Nginx, IIS). Πρέπει να εγκαταστήσετε και να εγκαταστήσετε αυτόν τον εξυπηρετητή πριν να τονίσετε στον κατάλογο:
    %s
    URL που εξυπηρετείται από εξωτερικό διακομιστή:
    %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". +PreviewSiteServedByDolibarr= Προεπισκόπηση %s σε νέα καρτέλα.

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

    Για να χρησιμοποιήσετε το δικό σας web server για την εξυπηρέτηση αυτής της ιστοσελίδας, δημιουργήστε ενα virtual host που ανακατευθύνει στον κατάλογο
    %s
    στη συνέχεια, πληκτρολογήστε το όνομα του εικονικού διακομιστή στις ιδιότητες αυτού του ιστότοπου και κάντε κλικ στον σύνδεσμο "Δοκιμή/Ανάπτυξη στον Ιστό". VirtualHostUrlNotDefined=Η διεύθυνση URL του εικονικού κεντρικού υπολογιστή που εξυπηρετείται από εξωτερικό διακομιστή ιστού δεν έχει οριστεί NoPageYet=Δεν υπάρχουν ακόμη σελίδες YouCanCreatePageOrImportTemplate=Μπορείτε να δημιουργήσετε μια νέα σελίδα ή να εισαγάγετε ένα πλήρες πρότυπο ιστότοπου SyntaxHelp=Βοήθεια για συγκεκριμένες συμβουλές σύνταξης YouCanEditHtmlSourceckeditor=Μπορείτε να επεξεργαστείτε τον πηγαίο κώδικα HTML χρησιμοποιώντας το κουμπί "Source" στο πρόγραμμα επεξεργασίας. -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">
    +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=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
    . +YouCanEditHtmlSource2=Για τον διαμοιρασμό εικόνας με ένα σύνδεσμο (δώσε πρόσβαση χρησιμοποιώντας το sharing hash key του αρχείου), η σύνταξη είναι:
    <img src="/viewimage.php?hashp=12345679012...">
    +YouCanEditHtmlSourceMore=
    Περισσότερα παραδείγματα HTML ή δυναμικού κώδικα είναι διαθέσιμα στο τεκμηρίωση του wiki
    . ClonePage=Σελίδα κλωνοποίησης / κοντέινερ CloneSite=Κλωνήστε τον ιστότοπο SiteAdded=Προστέθηκε ιστότοπος ConfirmClonePage=Εισαγάγετε τον κωδικό / ψευδώνυμο της νέας σελίδας και αν πρόκειται για μετάφραση της κλωνοποιημένης σελίδας. -PageIsANewTranslation=Η νέα σελίδα είναι μια μετάφραση της τρέχουσας σελίδας; +PageIsANewTranslation=Η νέα σελίδα είναι μετάφραση της τρέχουσας σελίδας; LanguageMustNotBeSameThanClonedPage=Κλωνίζετε μια σελίδα ως μετάφραση. Η γλώσσα της νέας σελίδας πρέπει να είναι διαφορετική από τη γλώσσα της σελίδας πηγής. ParentPageId=Αναγνωριστικό σελίδας γονέων WebsiteId=Αναγνωριστικό ιστοτόπου @@ -75,19 +75,19 @@ FetchAndCreate=Λήψη και Δημιουργία ExportSite=Εξαγωγή ιστότοπου ImportSite=Εισαγωγή προτύπου ιστότοπου IDOfPage=Αναγνωριστικό σελίδας -Banner=Πανό -BlogPost=Ανάρτηση -WebsiteAccount=Λογαριασμός ιστοτόπου +Banner=Banner +BlogPost=Blog post +WebsiteAccount=Λογαριασμός ιστότοπου WebsiteAccounts=Λογαριασμοί ιστοτόπων AddWebsiteAccount=Δημιουργία λογαριασμού ιστότοπου BackToListForThirdParty=Επιστροφή στη λίστα για το τρίτο μέρος DisableSiteFirst=Απενεργοποιήστε πρώτα τον ιστότοπο MyContainerTitle=Ο τίτλος ιστότοπού μου AnotherContainer=Αυτός είναι ο τρόπος με τον οποίο μπορείτε να συμπεριλάβετε περιεχόμενο μιας άλλης σελίδας / κοντέινερ (ενδεχομένως να έχετε ένα σφάλμα αν ενεργοποιήσετε τον δυναμικό κώδικα επειδή ο ενσωματωμένος υποελεγχος δεν υπάρχει) -SorryWebsiteIsCurrentlyOffLine=Λυπούμαστε, αυτός ο ιστότοπος είναι εκτός σύνδεσης. Παρακαλώ ξανασκέδασε αργότερα ... +SorryWebsiteIsCurrentlyOffLine=Λυπούμαστε, αυτός ο ιστότοπος είναι προς το παρόν εκτός σύνδεσης. Παρακαλώ επιστρέψτε αργότερα... WEBSITE_USE_WEBSITE_ACCOUNTS=Ενεργοποιήστε τον πίνακα λογαριασμού web site WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Ενεργοποιήστε τον πίνακα για να αποθηκεύσετε λογαριασμούς ιστότοπων (login / pass) για κάθε ιστότοπο / τρίτο μέρος -YouMustDefineTheHomePage=Πρέπει πρώτα να ορίσετε την προεπιλεγμένη Αρχική σελίδα +YouMustDefineTheHomePage=Πρέπει πρώτα να ορίσετε την Αρχική σελίδα OnlyEditionOfSourceForGrabbedContentFuture=Προειδοποίηση: Η δημιουργία ιστοσελίδας με εισαγωγή εξωτερικής ιστοσελίδας προορίζεται για έμπειρους χρήστες. Ανάλογα με την πολυπλοκότητα της σελίδας προέλευσης, το αποτέλεσμα της εισαγωγής ενδέχεται να διαφέρει από το πρωτότυπο. Επίσης, εάν η σελίδα προέλευσης χρησιμοποιεί κοινά στυλ CSS ή javascript σε διένεξη, ενδέχεται να σπάσει την εμφάνιση ή τις δυνατότητες του προγράμματος επεξεργασίας ιστότοπου όταν εργάζεστε σε αυτήν τη σελίδα. Αυτή η μέθοδος είναι ένας πιο γρήγορος τρόπος για να δημιουργήσετε μια σελίδα, αλλά συνιστάται να δημιουργήσετε τη νέα σας σελίδα από το μηδέν ή από ένα προτεινόμενο πρότυπο σελίδας.
    Σημειώστε επίσης ότι ο ενσωματωμένος επεξεργαστής ενδέχεται να μην λειτουργεί σωστά όταν χρησιμοποιείται σε μια αρπαγή εξωτερική σελίδα. OnlyEditionOfSourceForGrabbedContent=Μόνο έκδοση πηγής HTML είναι δυνατή όταν το περιεχόμενο έχει ληφθεί από έναν εξωτερικό ιστότοπο GrabImagesInto=Πιάσε επίσης τις εικόνες που βρέθηκαν στο css και τη σελίδα. @@ -100,7 +100,7 @@ EmptyPage=Κενή σελίδα ExternalURLMustStartWithHttp=Η εξωτερική διεύθυνση URL πρέπει να ξεκινά με http: // ή https: // ZipOfWebsitePackageToImport=Μεταφορτώστε το αρχείο Zip του πακέτου πρότυπου ιστότοπου ZipOfWebsitePackageToLoad=ή Επιλέξτε ένα διαθέσιμο πακέτο πρότυπου ιστότοπου -ShowSubcontainers=Show dynamic content +ShowSubcontainers=Εμφάνιση δυναμικού περιεχομένου InternalURLOfPage=Εσωτερική διεύθυνση URL της σελίδας ThisPageIsTranslationOf=Αυτή η σελίδα / δοχείο είναι μια μετάφραση του ThisPageHasTranslationPages=Αυτή η σελίδα / κοντέινερ έχει μετάφραση @@ -123,25 +123,25 @@ ShowSubContainersOnOff=Η κατάσταση εκτέλεσης 'δυναμ GlobalCSSorJS=Παγκόσμιο αρχείο CSS / JS / Header της ιστοσελίδας BackToHomePage=Επιστροφή στην αρχική σελίδα... TranslationLinks=Μεταφραστικές συνδέσεις -YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not available.
    (ref=%s, type=%s, status=%s) +YouTryToAccessToAFileThatIsNotAWebsitePage=Προσπαθείτε να αποκτήσετε πρόσβαση σε μια σελίδα που δεν είναι διαθέσιμη.
    (ref=%s, type=%s, status=%s) UseTextBetween5And70Chars=Για καλές πρακτικές SEO, χρησιμοποιήστε ένα κείμενο μεταξύ 5 και 70 χαρακτήρων MainLanguage=Κύρια γλώσσα OtherLanguages=Άλλες γλώσσες -UseManifest=Καταχωρίστε ένα αρχείο manifest.json +UseManifest=Παρέχετε ένα αρχείο manifest.json PublicAuthorAlias=Δημόσιο συντάκτης ψευδώνυμο AvailableLanguagesAreDefinedIntoWebsiteProperties=Οι διαθέσιμες γλώσσες ορίζονται σε ιδιότητες ιστότοπου ReplacementDoneInXPages=Η αντικατάσταση έγινε σε σελίδες ή κοντέινερ %s 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 +RSSFeedDesc=Μπορείτε να λάβετε μια ροή RSS με πιο πρόσφατα άρθρα με τον τύπο 'blogpost' χρησιμοποιώντας αυτήν τη διεύθυνση URL +PagesRegenerated=%s σελίδα(ες)/κοντέινερ(ς) αναδημιουργήθηκαν +RegenerateWebsiteContent=Αναδημιουργήστε αρχεία κρυφής μνήμης ιστότοπου +AllowedInFrames=Επιτρεπόμενα σε πλαίσιο +DefineListOfAltLanguagesInWebsiteProperties=Καθορίστε τη λίστα όλων των διαθέσιμων γλωσσών στις ιδιότητες του ιστότοπου. +GenerateSitemaps=Δημιουργία αρχείου sitemap του ιστότοπου +ConfirmGenerateSitemaps=Εάν επιβεβαιώσετε, θα διαγράψετε το υπάρχον αρχείο sitemap... +ConfirmSitemapsCreation=Επιβεβαιώστε τη δημιουργία sitemap +SitemapGenerated=Δημιουργήθηκε το αρχείο sitemap %s 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 πρέπει να είναι png +ErrorFaviconSize=Το Favicon πρέπει να έχει μέγεθος 16x16, 32x32 ή 64x64 +FaviconTooltip=Μεταφορτώστε μια εικόνα που πρέπει να είναι png (16x16, 32x32 ή 64x64) diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang index c0fbf0b2a1c..670fd54b818 100644 --- a/htdocs/langs/el_GR/withdrawals.lang +++ b/htdocs/langs/el_GR/withdrawals.lang @@ -1,65 +1,66 @@ # Dolibarr language file - Source file is en_US - withdrawals -CustomersStandingOrdersArea=Payments by Direct debit orders -SuppliersStandingOrdersArea=Payments by Credit transfer -StandingOrdersPayment=Παραγγελίες πληρωμής άμεσης χρέωσης -StandingOrderPayment=Direct debit payment order +CustomersStandingOrdersArea=Πληρωμές με εντολές άμεσης χρέωσης +SuppliersStandingOrdersArea=Πληρωμές με μεταφορά πίστωσης +StandingOrdersPayment=Εντολές πληρωμής άμεσης χρέωσης +StandingOrderPayment=Εντολή πληρωμής άμεσης χρέωσης NewStandingOrder=Νέα εντολή άμεσης χρέωσης -NewPaymentByBankTransfer=New payment by credit transfer -StandingOrderToProcess=Για την διαδικασία -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=Τελευταία αρχεία άμεσης χρέωσης %s -WithdrawalsLine=Direct debit order line -CreditTransfer=μεταφορά πιστώσεως -CreditTransferLine=Credit transfer line +NewPaymentByBankTransfer=Νέα πληρωμή με μεταφορά πίστωσης +StandingOrderToProcess=Προς επεξεργασία +PaymentByBankTransferReceipts=Εντολές μεταφοράς πίστωσης +PaymentByBankTransferLines=Γραμμές εντολών μεταφοράς πίστωσης +WithdrawalsReceipts=Εντολές άμεσης χρέωσης +WithdrawalReceipt=Εντολή άμεσης χρέωσης +BankTransferReceipts=Εντολές μεταφοράς πίστωσης +BankTransferReceipt=Εντολή μεταφοράς πίστωσης +LatestBankTransferReceipts=Τελευταίες %s εντολές μεταφοράς πίστωσης +LastWithdrawalReceipts=Τελευταία %s αρχεία άμεσης χρέωσης +WithdrawalsLine=Γραμμή εντολής άμεσης χρέωσης +CreditTransfer=Μεταφορά πίστωσης +CreditTransferLine=Γραμμή μεταφοράς πίστωσης WithdrawalsLines=Γραμμές εντολής άμεσης χρέωσης -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=Δεν είναι ακόμη δυνατή. Ανακαλούν το καθεστώς πρέπει να ρυθμιστεί ώστε να «πιστωθεί» πριν δηλώσει απόρριψη στις συγκεκριμένες γραμμές. -NbOfInvoiceToWithdraw=No. of qualified customer invoices with waiting direct debit order +CreditTransferLines=Γραμμές μεταφοράς πίστωσης +RequestStandingOrderToTreat=Αιτήματα για εντολή πληρωμής άμεσης χρέωσης προς επεξεργασία +RequestStandingOrderTreated=Τα αιτήματα για εντολές πληρωμής άμεσης χρέωσης διεκπεραιώθηκαν +RequestPaymentsByBankTransferToTreat=Αιτήματα για μεταφορά πίστωσης προς επεξεργασία +RequestPaymentsByBankTransferTreated=Τα αιτήματα για μεταφορά πίστωσης διεκπεραιώθηκαν +NotPossibleForThisStatusOfWithdrawReceiptORLine=Δεν είναι ακόμη δυνατό. Η κατάσταση ανάληψης πρέπει να οριστεί σε «πιστωμένη» πριν δηλώσετε απόρριψη σε συγκεκριμένες γραμμές. +NbOfInvoiceToWithdraw=Αριθμός εγκεκριμένων τιμολογίων πελατών με εντολή άμεσης χρέωσης σε αναμονή NbOfInvoiceToWithdrawWithInfo=Αριθμός τιμολογίου πελάτη με εντολές πληρωμής άμεσης χρέωσης που έχουν καθορισμένες πληροφορίες τραπεζικού λογαριασμού -NbOfInvoiceToPayByBankTransfer=No. of qualified supplier invoices waiting for a payment by credit transfer -SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit transfer -InvoiceWaitingWithdraw=Τιμολόγιο αναμονής για άμεση χρέωση -InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer -AmountToWithdraw=Ποσό για την απόσυρση -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=Υπεύθυνος χρήστη +NbOfInvoiceToPayByBankTransfer=Αριθμός εγκεκριμένων τιμολογίων προμηθευτή σε αναμονή πληρωμής μέσω μεταφοράς πίστωσης +SupplierInvoiceWaitingWithdraw=Τιμολόγιο προμηθευτή σε αναμονή πληρωμής μέσω μεταφοράς πίστωσης +InvoiceWaitingWithdraw=Τιμολόγιο σε αναμονή για άμεση χρέωση +InvoiceWaitingPaymentByBankTransfer=Τιμολόγιο σε αναμονή για μεταφορά πίστωσης +AmountToWithdraw=Ποσό για ανάληψη +AmountToTransfer=Ποσό προς μεταφορά +NoInvoiceToWithdraw=Δεν υπάρχει ανοιχτό τιμολόγιο για το '%s' σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην κάρτα τιμολογίου για να υποβάλετε ένα αίτημα. +NoSupplierInvoiceToWithdraw=Δεν υπάρχει τιμολόγιο προμηθευτή με ανοιχτά «Άμεσα αιτήματα πίστωσης» σε αναμονή. Μεταβείτε στην καρτέλα '%s' στην κάρτα τιμολογίου για να υποβάλετε ένα αίτημα. +ResponsibleUser=Υπεύθυνος χρήστης WithdrawalsSetup=Ρύθμιση πληρωμής άμεσης χρέωσης -CreditTransferSetup=Credit transfer setup +CreditTransferSetup=Ρύθμιση μεταφοράς πίστωσης WithdrawStatistics=Στατιστικά στοιχεία πληρωμής άμεσης χρέωσης -CreditTransferStatistics=Credit transfer statistics +CreditTransferStatistics=Στατιστικά στοιχεία μεταφοράς πιστώσεων Rejects=Απορρίψεις -LastWithdrawalReceipt=Τελευταίες εισπράξεις άμεσης χρέωσης %s -MakeWithdrawRequest=Πραγματοποιήστε αίτημα πληρωμής με άμεση χρέωση -MakeBankTransferOrder=Make a credit transfer request -WithdrawRequestsDone=%s καταγράφονται τα αιτήματα πληρωμής άμεσης χρέωσης -BankTransferRequestsDone=%s credit transfer requests recorded -ThirdPartyBankCode=Τραπεζικός κωδικός τρίτου μέρους -NoInvoiceCouldBeWithdrawed=Κανένα τιμολόγιο δεν χρεώθηκε με επιτυχία. Βεβαιωθείτε ότι τα τιμολόγια είναι σε εταιρείες με έγκυρο αριθμό IBAN και ότι ο IBAN έχει UMR (Unique Mandate Reference) με τον τρόπο %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=Ταξινομήστε πιστώνεται -ClassDebited=Classify debited -ClassCreditedConfirm=Είστε σίγουροι ότι θέλετε να χαρακτηρίσει την παραλαβή ως απόσυρση πιστώνεται στον τραπεζικό σας λογαριασμό; -TransData=Η ημερομηνία αποστολής -TransMetod=Μέθοδος αποστολής +LastWithdrawalReceipt=Τελευταίες %s εισπράξεις άμεσης χρέωσης +MakeWithdrawRequest=Υποβάλετε αίτημα πληρωμής με άμεση χρέωση +MakeBankTransferOrder=Υποβάλετε αίτημα μεταφοράς πίστωσης +WithdrawRequestsDone=%s αιτήματα πληρωμής άμεσης χρέωσης καταγράφηκαν +BankTransferRequestsDone=%s αιτήματα μεταφοράς πίστωσης καταγράφηκαν +ThirdPartyBankCode=Κωδικός τράπεζας τρίτου μέρους +NoInvoiceCouldBeWithdrawed=Κανένα τιμολόγιο δεν χρεώθηκε με επιτυχία. Ελέγξτε ότι τα τιμολόγια είναι σε εταιρείες με έγκυρο IBAN και ότι το IBAN διαθέτει UMR (Μοναδική αναφορά εντολής) με λειτουργία %s . +WithdrawalCantBeCreditedTwice=Αυτή η απόδειξη ανάληψης έχει ήδη επισημανθεί ως πιστωμένη. Αυτό δεν μπορεί να γίνει δύο φορές, καθώς αυτό ενδέχεται να δημιουργήσει διπλές πληρωμές και εγγραφές τραπεζών. +ClassCredited=Ταξινόμηση ως πιστωμένη +ClassDebited=Ταξινόμηση ως χρεωμένη +ClassCreditedConfirm=Είστε σίγουροι ότι θέλετε να χαρακτηρίσετε αυτήν την απόδειξη ανάληψης ως πιστωμένη στον τραπεζικό σας λογαριασμό; +TransData=Ημερομηνία μετάδοσης +TransMetod=Μέθοδος μετάδοσης Send=Αποστολή Lines=Γραμμές -StandingOrderReject=Εκδώσει απόρριψη -WithdrawsRefused=Η απόρριψη της άμεσης χρέωσης +StandingOrderReject=Έκδοση απόρριψης +WithdrawsRefused=Η άμεση χρέωση απορρίφθηκε WithdrawalRefused=Απόσυρση απορρίφθηκε -CreditTransfersRefused=Credit transfers refused +CreditTransfersRefused=Οι μεταφορές πιστώσης απορρίφθηκαν WithdrawalRefusedConfirm=Είστε σίγουροι ότι θέλετε να εισάγετε μια απόρριψη αναμονής για την κοινωνία -RefusedData=Ημερομηνία της απόρριψης +RefusedData=Ημερομηνία απόρριψης RefusedReason=Λόγος απόρριψης RefusedInvoicing=Χρέωσης για την απόρριψη NoInvoiceRefused=Μην φορτίζετε την απόρριψη @@ -67,57 +68,57 @@ InvoiceRefused=Τιμολόγιο απορρίφθηκε (Φορτίστε τη StatusDebitCredit=Κατάσταση χρέωσης / πίστωσης StatusWaiting=Αναμονή StatusTrans=Απεσταλμένο -StatusDebited=Debited -StatusCredited=Πιστωθεί -StatusPaid=Επεξεργάστηκε -StatusRefused=Αρνήθηκε +StatusDebited=Χρεωμένο +StatusCredited=Πιστωμένο +StatusPaid=Πληρωμένο +StatusRefused=Απορρίφθηκε StatusMotif0=Απροσδιόριστο StatusMotif1=Ανεπαρκή κεφάλαια -StatusMotif2=Αίτηση προσβαλλόμενη +StatusMotif2=Προσβαλλόμενο αίτημα StatusMotif3=Δεν υπάρχει εντολή πληρωμής άμεσης χρέωσης -StatusMotif4=Παραγγελία πώλησης -StatusMotif5=RIB άχρηστα -StatusMotif6=Λογαριασμός χωρίς ισορροπία +StatusMotif4=Εντολή πώλησης +StatusMotif5=RIB(λεπτομέρειες τραπεζικού λογαριασμού) ακατάλληλες +StatusMotif6=Λογαριασμός χωρίς υπόλοιπο StatusMotif7=Δικαστική απόφαση StatusMotif8=Άλλος λόγος CreateForSepaFRST=Δημιουργία αρχείου άμεσης χρέωσης (SEPA FRST) CreateForSepaRCUR=Δημιουργία αρχείου άμεσης χρέωσης (SEPA RCUR) -CreateAll=Create direct debit file -CreateFileForPaymentByBankTransfer=Create file for credit transfer -CreateSepaFileForPaymentByBankTransfer=Create credit transfer file (SEPA) -CreateGuichet=Μόνο το γραφείο +CreateAll=Δημιουργία αρχείου άμεσης χρέωσης +CreateFileForPaymentByBankTransfer=Δημιουργία αρχείου μεταφορά πίστωσης +CreateSepaFileForPaymentByBankTransfer=Δημιουργία αρχείου μεταφοράς πίστωσης (SEPA) +CreateGuichet=Μόνο ταμείο CreateBanque=Μόνο τράπεζα -OrderWaiting=Αναμονή για θεραπεία -NotifyTransmision=Record file transmission of order -NotifyCredit=Record credit of order -NumeroNationalEmetter=Εθνικό Αριθμός Transmitter -WithBankUsingRIB=Για τους τραπεζικούς λογαριασμούς που χρησιμοποιούν RIB -WithBankUsingBANBIC=Για τους τραπεζικούς λογαριασμούς που χρησιμοποιούν IBAN / BIC / SWIFT -BankToReceiveWithdraw=Λήψη τραπεζικού λογαριασμού -BankToPayCreditTransfer=Bank Account used as source of payments -CreditDate=Πιστωτικές με -WithdrawalFileNotCapable=Αδύνατο να δημιουργηθεί το αρχείο παραλαβή απόσυρση για τη χώρα σας %s (η χώρα σας δεν υποστηρίζεται) +OrderWaiting=Αναμονή για επεξεργασία +NotifyTransmision=Καταγραφή αποστολής αρχείου της παραγγελίας +NotifyCredit=Καταγραφή πίστωσης εντολής +NumeroNationalEmetter=Εθνικός αριθμός μετάδοσης +WithBankUsingRIB=Για τραπεζικούς λογαριασμούς που χρησιμοποιούν RIB +WithBankUsingBANBIC=Για τραπεζικούς λογαριασμούς που χρησιμοποιούν IBAN / BIC / SWIFT +BankToReceiveWithdraw=Τραπεζικός λογαριασμός αναλήψεων +BankToPayCreditTransfer=Τραπεζικός λογαριασμός που χρησιμοποιείται ως πηγή πληρωμών +CreditDate=Πίστωση την +WithdrawalFileNotCapable=Αδύνατο να δημιουργηθεί το αρχείο απόδειξης ανάληψης για τη χώρα σας %s (η χώρα σας δεν υποστηρίζεται) ShowWithdraw=Εμφάνιση εντολής άμεσης χρέωσης -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Ωστόσο, εάν το τιμολόγιο έχει τουλάχιστον μία εντολή πληρωμής άμεσης χρέωσης που δεν έχει ακόμη υποβληθεί σε επεξεργασία, δεν θα οριστεί ως πληρωμή για να επιτραπεί η προηγούμενη διαχείριση ανάληψης. -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=Ρυθμίστε την κατάσταση "αποστολή αρχείου" -ThisWillAlsoAddPaymentOnInvoice=This will also record payments on invoices and will classify them as "Paid" if remain to pay is null -StatisticsByLineStatus=Στατιστικά στοιχεία από την κατάσταση των γραμμών +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Ωστόσο, εάν το τιμολόγιο έχει τουλάχιστον μία εντολή πληρωμής άμεσης χρέωσης που δεν έχει ακόμη υποβληθεί σε επεξεργασία, δεν θα οριστεί ως πληρωμένο για να επιτραπεί η διαχείριση προηγούμενη ανάληψης. +DoStandingOrdersBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή πληρωμής άμεσης χρέωσης. Μόλις τελειώσετε, μεταβείτε στο μενού Τράπεζα->Πληρωμή με άμεση χρέωση για να δημιουργήσετε και να διαχειριστείτε την εντολή άμεσης χρέωσης. Όταν η εντολή άμεσης χρέωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. +DoCreditTransferBeforePayments=Αυτή η καρτέλα σάς επιτρέπει να ζητήσετε εντολή μεταφοράς πίστωσης. Μόλις τελειώσετε, μεταβείτε στο μενού Τράπεζα->Πληρωμή με μεταφορά πίστωσης για να δημιουργήσετε και να διαχειριστείτε την εντολή μεταφοράς πίστωσης. Όταν η εντολή μεταφοράς πίστωσης κλείσει, η πληρωμή στα τιμολόγια θα καταγραφεί αυτόματα και τα τιμολόγια κλείνουν εάν το υπόλοιπο προς πληρωμή είναι μηδενικό. +WithdrawalFile=Αρχείο χρεωστικής εντολής +CreditTransferFile=Αρχείο μεταφοράς πίστωσης +SetToStatusSent=Ορίστε σε κατάσταση "Αρχείο εστάλη" +ThisWillAlsoAddPaymentOnInvoice=Αυτό θα καταγράψει επίσης τις πληρωμές στα τιμολόγια και θα τα ταξινομήσει ως "Πληρωμένα" εάν το υπόλοιπο προς πληρωμή είναι μηδενικό +StatisticsByLineStatus=Στατιστικά στοιχεία ανα κατάσταση των γραμμών RUM=UMR DateRUM=Ημερομηνία υπογραφής εντολής RUMLong=Μοναδική αναφορά εντολής RUMWillBeGenerated=Αν είναι άδειο, θα δημιουργηθεί ένα UMR (Μοναδική αναφορά εντολής) μόλις αποθηκευτούν οι πληροφορίες του τραπεζικού λογαριασμού. WithdrawMode=Λειτουργία άμεσης χρέωσης (FRST ή RECUR) WithdrawRequestAmount=Ποσό αίτησης άμεσης χρέωσης: -BankTransferAmount=Amount of Credit Transfer request: +BankTransferAmount=Ποσό αιτήματος μεταφοράς πίστωσης: WithdrawRequestErrorNilAmount=Δεν είναι δυνατή η δημιουργία αίτησης άμεσης χρέωσης για άδειο ποσό. SepaMandate=Εντολή άμεσης χρέωσης SEPA SepaMandateShort=Εντολή SEPA PleaseReturnMandate=Παρακαλούμε επιστρέψτε αυτή τη φόρμα εντολής με email στο %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=Με την υπογραφή αυτής της φόρμας εντολής, εξουσιοδοτείτε (A) %s να στέλνει οδηγίες στην τράπεζά σας για να χρεώσει τον λογαριασμό σας και (B) την τράπεζά σας να χρεώσει τον λογαριασμό σας σύμφωνα με τις οδηγίες του %s. Ως μέρος των δικαιωμάτων σας, δικαιούστε επιστροφή χρημάτων από την τράπεζά σας σύμφωνα με τους όρους και τις προϋποθέσεις της συμφωνίας σας με την τράπεζά σας. Τα δικαιώματά σας σχετικά με την παραπάνω εντολή εξηγούνται σε δήλωση που μπορείτε να λάβετε από την τράπεζά σας. CreditorIdentifier=Αναγνωριστικό πιστωτή CreditorName=Όνομα πιστωτή SEPAFillForm=(B) Παρακαλούμε συμπληρώστε όλα τα πεδία με την ένδειξη * @@ -128,29 +129,31 @@ SEPAFrstOrRecur=Είδος πληρωμής ModeRECUR=Επαναλαμβανόμενη πληρωμή ModeFRST=Εφάπαξ πληρωμή PleaseCheckOne=Παρακαλώ επιλέξτε ένα μόνο -CreditTransferOrderCreated=Credit transfer order %s created +CreditTransferOrderCreated=Η εντολή μεταφοράς πίστωσης %s δημιουργήθηκε DirectDebitOrderCreated=Η εντολή άμεσης χρέωσης %s δημιουργήθηκε AmountRequested=Ποσό που ζητήθηκε SEPARCUR=SEPA CUR SEPAFRST=SEPA FRST ExecutionDate=Ημερομηνία εκτέλεσης CreateForSepa=Δημιουργήστε αρχείο άμεσης χρέωσης -ICS=Creditor Identifier - ICS -END_TO_END="EndToEndId" Ετικέτα XML SEPA - Μοναδική ταυτότητα που αντιστοιχεί σε κάθε συναλλαγή -USTRD="Μη δομημένη" ετικέτα XML SEPA +ICS=Αναγνωριστικό Πιστωτή - ICS +IDS=Αναγνωριστικό οφειλέτη +END_TO_END=Ετικέτα SEPA XML "EndToEndId" - Εκχωρείται μοναδικό αναγνωριστικό ανά συναλλαγή +USTRD="Μη δομημένη" ετικέτα XML SEPA ADDDAYS=Προσθήκη ημερών στην Ημερομηνία Εκτέλεσης -NoDefaultIBANFound=No default IBAN found for this third party +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=Επιλογή για την πραγματική κατάσταση, δεν είχε καθοριστεί, σταματάμε μετά από αυτή την προσομοίωση -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 +InfoRejectMessage=Γεια σας,

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

    --
    %s +ModeWarning=Η επιλογή για πραγματική λειτουργία δεν ορίστηκε, σταματάμε μετά από αυτήν την προσομοίωση +ErrorCompanyHasDuplicateDefaultBAN=Η εταιρεία με αναγνωριστικό %s έχει περισσότερους από έναν προεπιλεγμένους τραπεζικούς λογαριασμούς. Δεν υπάρχει τρόπος να ξέρετε ποιο θα χρησιμοποιηθεί. +ErrorICSmissing=Λείπει το ICS στον τραπεζικό λογαριασμό %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Το συνολικό ποσό της εντολής πάγιας εντολής διαφέρει από το άθροισμα των γραμμών +WarningSomeDirectDebitOrdersAlreadyExists=Προειδοποίηση: Υπάρχουν ήδη ορισμένες εκκρεμείς εντολές άμεσης χρέωσης (%s) που ζητήθηκαν για το ποσό %s +WarningSomeCreditTransferAlreadyExists=Προειδοποίηση: Υπάρχει ήδη κάποια εκκρεμή μεταφορά πίστωσης (%s) που ζητήθηκε για το ποσό %s +UsedFor=Χρησιμοποιήθηκε για %s diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang index 9a03c7fcd67..62f2748e3dc 100644 --- a/htdocs/langs/el_GR/workflow.lang +++ b/htdocs/langs/el_GR/workflow.lang @@ -1,26 +1,36 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Ροής εργασίας ρύθμιση μονάδας +WorkflowSetup=Ρύθμιση ενότητας Ροής Εργασιών WorkflowDesc=Αυτή η ενότητα παρέχει ορισμένες αυτόματες ενέργειες. Από προεπιλογή, η ροή εργασιών είναι ανοιχτή (μπορείτε να κάνετε πράγματα με τη σειρά που θέλετε), αλλά εδώ μπορείτε να ενεργοποιήσετε ορισμένες αυτόματες ενέργειες. -ThereIsNoWorkflowToModify=Δεν υπάρχουν τροποποιήσεις ροής εργασίας με τις ενεργοποιημένες μονάδες. +ThereIsNoWorkflowToModify=Δεν υπάρχουν διαθέσιμες τροποποιήσεις ροής εργασιών με τις ενεργοποιημένες ενότητες. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Δημιουργήστε αυτόματα μια εντολή πώλησης μετά την υπογραφή μιας εμπορικής πρότασης (η νέα παραγγελία θα έχει το ίδιο ποσό με την πρόταση) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Αυτόματη δημιουργία τιμολογίου πελάτη μετά την υπογραφή εμπορικής πρότασης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την πρόταση) -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Αυτόματη δημιουργία τιμολογίου πελάτη μετά την επικύρωση μιας σύμβασης -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Αυτόματη δημιουργία τιμολογίου πελάτη μετά την ολοκλήρωση της παραγγελίας πώλησης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την παραγγελία) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Δημιουργήστε αυτόματα μια εντολή πώλησης μετά την υπογραφή μιας εμπορικής πρότασης (η νέα εντολή θα έχει το ίδιο ποσό με την πρόταση) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά την υπογραφή μιας εμπορικής πρότασης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την πρόταση) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά την επικύρωση μιας σύμβασης +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Δημιουργήστε αυτόματα ένα τιμολόγιο πελάτη μετά το κλείσιμο μιας εντολής πώλησης (το νέο τιμολόγιο θα έχει το ίδιο ποσό με την εντολή) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Κατά τη δημιουργία εισιτηρίου, δημιουργήστε αυτόματα μια παρέμβαση. # Autoclassify customer proposal or order -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=Καταχώρησε την εντολή πώλησης της συνδεδεμένης πηγής ως απεσταλμένη όταν μια αποστολή έχει κλείσει (και αν η ποσότητα που έχει αποσταλεί συνολικά είναι ίδια με την εντολή προς ενημέρωσή) +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=Ταξινόμηση της πρότασης προμηθευτή συνδεδεμένης πηγής ως τιμολογίου όταν επικυρωθεί το τιμολόγιο πωλητή (και εάν το ποσό του τιμολογίου είναι το ίδιο με το συνολικό ποσό της συνδεδεμένης πρότασης) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_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_BILL_ON_RECEPTION=Ταξινόμηση παραλαβών ως "τιμολογημένες" όταν επικυρωθεί μια συνδεδεμένη παραγγελία προμηθευτή +# 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=Ταξινόμηση αποστολής συνδεδεμένης πηγής ως κλειστή όταν επικυρωθεί το τιμολόγιο πελάτη +AutomaticClosing=Αυτόματο κλείσιμο +AutomaticLinking=Αυτόματη σύνδεση diff --git a/htdocs/langs/el_GR/zapier.lang b/htdocs/langs/el_GR/zapier.lang index 16115db0589..915bcf8fafb 100644 --- a/htdocs/langs/el_GR/zapier.lang +++ b/htdocs/langs/el_GR/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 για Dolibarr -ModuleZapierForDolibarrDesc = Μονάδα Zapier για Dolibarr -ZapierForDolibarrSetup=Εγκατάσταση του Zapier για 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 για το Dolibarr +ModuleZapierForDolibarrDesc = Ενότητα Zapier για το Dolibarr +ZapierForDolibarrSetup=Ρύθμιση του Zapier για το Dolibarr +ZapierDescription=Διασύνδεση με Zapier +ZapierAbout=Σχετικά με την ενότητα Zapier +ZapierSetupPage=Το Dolibarr δεν χρειάζεται κάποια ρύθμιση για να χρησιμοποιήσετε το Zapier. Πρέπει όμως να δημιουργήσετε και να ενεργοποιήσετε ένα πακέτο στο Zapier για να μπορέσετε να το χρησιμοποιήσετε στο Dolibarr. Δείτε την τεκμηρίωση σε αυτή την σελίδα wiki . diff --git a/htdocs/langs/en_AE/accountancy.lang b/htdocs/langs/en_AE/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/en_AE/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/en_AE/admin.lang b/htdocs/langs/en_AE/admin.lang index 9bfd4f12f48..c5ab56cb8d8 100644 --- a/htdocs/langs/en_AE/admin.lang +++ b/htdocs/langs/en_AE/admin.lang @@ -1,6 +1,4 @@ # 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 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 diff --git a/htdocs/langs/en_AE/companies.lang b/htdocs/langs/en_AE/companies.lang index 40b5f885e43..40ce11cb83a 100644 --- a/htdocs/langs/en_AE/companies.lang +++ b/htdocs/langs/en_AE/companies.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. +ProfId4CM=Id. prof. 4 (Certificate of deposits) ProfId3ShortCM=Decree of creation +ProfId4ShortCM=Certificate of deposits diff --git a/htdocs/langs/en_AE/exports.lang b/htdocs/langs/en_AE/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_AE/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/en_AE/members.lang b/htdocs/langs/en_AE/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_AE/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/en_AE/products.lang b/htdocs/langs/en_AE/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/en_AE/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/en_AE/projects.lang b/htdocs/langs/en_AE/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/en_AE/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/en_AU/accountancy.lang b/htdocs/langs/en_AU/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/en_AU/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang index 4d2a046987c..45e2f6bfbf4 100644 --- a/htdocs/langs/en_AU/admin.lang +++ b/htdocs/langs/en_AU/admin.lang @@ -1,6 +1,4 @@ # 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 OldVATRates=Old GST rate NewVATRates=New GST rate DictionaryVAT=GST Rates or Sales Tax Rates diff --git a/htdocs/langs/en_AU/companies.lang b/htdocs/langs/en_AU/companies.lang index ea3dd666759..d744e0b1e87 100644 --- a/htdocs/langs/en_AU/companies.lang +++ b/htdocs/langs/en_AU/companies.lang @@ -1,8 +1,2 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation VATIntraCheck=Cheque diff --git a/htdocs/langs/en_AU/exports.lang b/htdocs/langs/en_AU/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_AU/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/en_AU/members.lang b/htdocs/langs/en_AU/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_AU/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/en_AU/products.lang b/htdocs/langs/en_AU/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/en_AU/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/en_AU/projects.lang b/htdocs/langs/en_AU/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/en_AU/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/en_CA/accountancy.lang b/htdocs/langs/en_CA/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/en_CA/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/en_CA/admin.lang b/htdocs/langs/en_CA/admin.lang index 168cecdf060..591cd054d85 100644 --- a/htdocs/langs/en_CA/admin.lang +++ b/htdocs/langs/en_CA/admin.lang @@ -1,6 +1,4 @@ # 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 LocalTax1Management=PST Management CompanyZip=Postal code LDAPFieldZip=Postal code diff --git a/htdocs/langs/en_CA/companies.lang b/htdocs/langs/en_CA/companies.lang index d6aa5f742ba..fb4a2125300 100644 --- a/htdocs/langs/en_CA/companies.lang +++ b/htdocs/langs/en_CA/companies.lang @@ -2,9 +2,3 @@ Zip=Postal code LocalTax1IsUsedES=PST is used LocalTax1IsNotUsedES=GST is not used -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/en_CA/exports.lang b/htdocs/langs/en_CA/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_CA/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/en_CA/members.lang b/htdocs/langs/en_CA/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_CA/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/en_CA/products.lang b/htdocs/langs/en_CA/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/en_CA/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/en_CA/projects.lang b/htdocs/langs/en_CA/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/en_CA/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang index 6f0fc7346d1..0afbc72c036 100644 --- a/htdocs/langs/en_GB/accountancy.lang +++ b/htdocs/langs/en_GB/accountancy.lang @@ -11,15 +11,12 @@ MainAccountForCustomersNotDefined=Main finance account for customers not defined MainAccountForUsersNotDefined=Main finance account for users not defined in setup MainAccountForVatPaymentNotDefined=Main finance account for VAT payment not defined in setup AccountancyAreaDescIntro=Usage of the accountancy module is done in several steps: -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting the correct default finance account when posting the journal (writing records in Journals and General ledger) AccountancyAreaDescVat=STEP %s: Define finance accounts for each VAT Rate. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default finance accounts for each type of expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: Define default finance accounts for payment of salaries. For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default finance accounts for donations. For this, use the menu entry %s. AccountancyAreaDescMisc=STEP %s: Define mandatory default accounts and default finance accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default finance accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define finance accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define finance accounts for your products/services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: Checking links between existing %s lines and finance account is done, so application will be able to journalise transactions in Ledger with one click. To complete missing links use the menu entry %s. AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click button %s. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make future modifications. @@ -81,11 +78,9 @@ DescVentilExpenseReport=View here the list of expense report lines linked (or no 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 -MvtNotCorrectlyBalanced=Transaction not correctly balanced. Debit = %s | Credit = %s 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. -NoNewRecordSaved=No more records to journalise ListOfProductsWithoutAccountingAccount=List of products not linked to any finance account ChangeBinding=Change the link Accounted=Posted in ledger diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 4c86efb8c05..40504938dbe 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -1,6 +1,4 @@ # 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=Company VersionProgram=Program Version VersionLastInstall=Version Initially Installed @@ -41,13 +39,12 @@ UMaskExplanation=This parameter allows you to define permissions set by default ListOfDirectories=List of OpenDocument template directories ListOfDirectoriesForModelGenODT=List of directories containing template files in OpenDocument format.

    Put here full path of directories.
    Add a carriage return between each 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. FollowingSubstitutionKeysCanBeUsed=
    To learn how to create your .odt document templates, before storing them in those directories, read wiki documentation: +InitEmptyBarCode=Init value for the %s empty barcodes Module50200Name=PayPal DictionaryAccountancyJournal=Finance journals 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/companies.lang b/htdocs/langs/en_GB/companies.lang index 5b1fc1ce577..4640f091ae9 100644 --- a/htdocs/langs/en_GB/companies.lang +++ b/htdocs/langs/en_GB/companies.lang @@ -1,9 +1,7 @@ # Dolibarr language file - Source file is en_US - companies Zip=Postcode -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. +ProfId4CM=Id. prof. 4 (Certificate of deposits) ProfId3ShortCM=Decree of creation +ProfId4ShortCM=Certificate of deposits AccountancyCode=Account diff --git a/htdocs/langs/en_GB/exports.lang b/htdocs/langs/en_GB/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_GB/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. 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/members.lang b/htdocs/langs/en_GB/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_GB/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type 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/projects.lang b/htdocs/langs/en_GB/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/en_GB/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/en_IN/accountancy.lang b/htdocs/langs/en_IN/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/en_IN/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index 1c0c06a69a2..52838fa3e3a 100644 --- a/htdocs/langs/en_IN/admin.lang +++ b/htdocs/langs/en_IN/admin.lang @@ -1,6 +1,4 @@ # 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 Module20Name=Quotations Module20Desc=Management of quotations Permission21=Read quotations diff --git a/htdocs/langs/en_IN/companies.lang b/htdocs/langs/en_IN/companies.lang index 1c2c7a6f4fb..e33ae9aa9ff 100644 --- a/htdocs/langs/en_IN/companies.lang +++ b/htdocs/langs/en_IN/companies.lang @@ -1,11 +1,5 @@ # Dolibarr language file - Source file is en_US - companies OverAllProposals=Quotations -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation ProfId1IN=Prof Id 1 (GSTIN) ContactForProposals=Quotation's contact NoContactForAnyProposal=This contact is not a contact for any quotation diff --git a/htdocs/langs/en_IN/exports.lang b/htdocs/langs/en_IN/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_IN/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/en_IN/members.lang b/htdocs/langs/en_IN/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_IN/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/en_IN/products.lang b/htdocs/langs/en_IN/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/en_IN/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/en_SG/accountancy.lang b/htdocs/langs/en_SG/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/en_SG/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/en_SG/admin.lang b/htdocs/langs/en_SG/admin.lang index 9bfd4f12f48..c5ab56cb8d8 100644 --- a/htdocs/langs/en_SG/admin.lang +++ b/htdocs/langs/en_SG/admin.lang @@ -1,6 +1,4 @@ # 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 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 diff --git a/htdocs/langs/en_SG/companies.lang b/htdocs/langs/en_SG/companies.lang index 40b5f885e43..40ce11cb83a 100644 --- a/htdocs/langs/en_SG/companies.lang +++ b/htdocs/langs/en_SG/companies.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. +ProfId4CM=Id. prof. 4 (Certificate of deposits) ProfId3ShortCM=Decree of creation +ProfId4ShortCM=Certificate of deposits diff --git a/htdocs/langs/en_SG/exports.lang b/htdocs/langs/en_SG/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_SG/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/en_SG/members.lang b/htdocs/langs/en_SG/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_SG/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/en_SG/products.lang b/htdocs/langs/en_SG/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/en_SG/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/en_SG/projects.lang b/htdocs/langs/en_SG/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/en_SG/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index fd5ff8461fe..d95791111cd 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 @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ 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_ACCOUNT_SUPPLIER_DEPOSIT=Accounting account by default to register supplier deposit +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) @@ -278,10 +282,10 @@ 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 +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... 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 @@ -289,7 +293,7 @@ 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 +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Balancing FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger @@ -302,6 +306,7 @@ 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 @@ -330,7 +335,7 @@ ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disable binding & transfer in accou ## 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) +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 @@ -395,6 +400,21 @@ 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) @@ -407,6 +427,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 diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 1dc7d4e2092..d3b2f251a6c 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/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=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 @@ -441,6 +441,7 @@ ExtrafieldPhone = Phone ExtrafieldPrice = Price 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 @@ -504,7 +505,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 +715,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 +741,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 +769,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 +843,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 +877,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 @@ -896,7 +901,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 @@ -1128,7 +1133,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 @@ -1234,6 +1239,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. @@ -1345,6 +1351,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:
    @@ -1760,7 +1767,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 @@ -1925,7 +1932,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=Active border on tables +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 @@ -1934,7 +1941,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 @@ -1947,7 +1954,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. @@ -1975,6 +1982,7 @@ MailToSendSupplierOrder=Purchase orders MailToSendSupplierInvoice=Vendor invoices MailToSendContract=Contracts MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Third parties MailToMember=Members MailToUser=Users @@ -2028,6 +2036,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 @@ -2046,7 +2055,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 @@ -2057,27 +2066,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) @@ -2091,14 +2119,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) @@ -2143,7 +2171,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 @@ -2153,6 +2181,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. @@ -2194,6 +2225,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 @@ -2234,3 +2266,48 @@ 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 +ScriptIsEmpty=The script is empty +ShowHideTheNRequests=Show/hide the %s SQL request(s) +DefinedAPathForAntivirusCommandIntoSetup=Define a path for an antivirus program into %s \ No newline at end of file diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index bc9c7dab537..9dffacf774c 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -45,6 +45,7 @@ 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 @@ -56,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 @@ -66,6 +68,7 @@ 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 @@ -133,7 +136,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 @@ -157,6 +160,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 @@ -172,3 +176,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 \ No newline at end of file diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index a3e0bc2f901..71a80406ae4 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -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 @@ -185,3 +185,4 @@ 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/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index a70d2eb8f21..7af765216d9 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -429,14 +429,24 @@ 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 +PaymentTypePREdetails=(on account *-%s) PaymentTypeShortPRE=Debit payment order PaymentTypeLIQ=Cash PaymentTypeShortLIQ=Cash @@ -611,4 +621,4 @@ 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) 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..4173d5e4c7e 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -46,6 +46,7 @@ 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 diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang index dc02f4e9325..9cde66460d3 100644 --- a/htdocs/langs/en_US/cashdesk.lang +++ b/htdocs/langs/en_US/cashdesk.lang @@ -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=Nb of invoices Paymentnumpad=Type of Pad to enter payment Numberspad=Numbers Pad @@ -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 @@ -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 @@ -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,3 +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 +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 cf0de898bdb..af816e362e4 100644 --- a/htdocs/langs/en_US/categories.lang +++ b/htdocs/langs/en_US/categories.lang @@ -67,6 +67,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 @@ -90,11 +91,14 @@ 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 UseOrOperatorForCategories=Use 'OR' operator for categories +AddObjectIntoCategory=Add object into category diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index b1438691cd9..2ef90f89600 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 @@ -105,6 +106,7 @@ 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 @@ -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=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -442,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 @@ -496,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..82ef7f0be9a 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -300,3 +300,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..d9bdd2691eb 100644 --- a/htdocs/langs/en_US/cron.lang +++ b/htdocs/langs/en_US/cron.lang @@ -84,6 +84,8 @@ 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) +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 @@ -91,3 +93,4 @@ JobXMustBeEnabled=Job %s must be enabled 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/errors.lang b/htdocs/langs/en_US/errors.lang index 3a7b4abeff7..afcc12e9362 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -92,6 +92,7 @@ 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 ErrorsOnXLines=%s errors found @@ -270,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. @@ -283,11 +284,21 @@ ErrorAttributeIsUsedIntoProduct=This attribute is used in one or more product va 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. # 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. @@ -317,6 +328,8 @@ 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 +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. # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/en_US/eventorganization.lang b/htdocs/langs/en_US/eventorganization.lang index 9cd52930714..b4179b04be6 100644 --- a/htdocs/langs/en_US/eventorganization.lang +++ b/htdocs/langs/en_US/eventorganization.lang @@ -60,6 +60,8 @@ ConferenceOrBoothTab = Conference Or Booth AmountPaid = Amount paid DateOfRegistration = Date of registration ConferenceOrBoothAttendee = Conference Or Booth Attendee +ApplicantOrVisitor=Applicant or visitor +Speaker=Speaker # # Template Mail @@ -139,6 +141,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 @@ -165,4 +168,5 @@ 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 \ No newline at end of file +NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/en_US/expensereports.lang b/htdocs/langs/en_US/expensereports.lang new file mode 100644 index 00000000000..6a305e43ad7 --- /dev/null +++ b/htdocs/langs/en_US/expensereports.lang @@ -0,0 +1,9 @@ +ExpenseReportPayments=Expense report payments +# +# error +# + +TaxUndefinedForThisCategory = Taxe undefined for this category +ErrorRecordNotFound=Record not found +errorComputeTtcOnMileageExpense=Error on computing mileage expense +ErrorBadValueForParameter=Error bad value for parameter %s diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang index f2f2d2cf587..c4c629c9a87 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -18,6 +18,7 @@ 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... @@ -53,8 +54,9 @@ 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 -DownloadEmptyExample=Download template file with field content information -StarAreMandatory=* are mandatory fields +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 @@ -82,7 +84,7 @@ 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 for field %s. +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) @@ -92,9 +94,9 @@ YouCanUseImportIdToFindRecord=You can find all the imported records in your data 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=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=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: @@ -135,3 +137,9 @@ 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 \ 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..95c8f54d211 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 @@ -137,3 +149,4 @@ 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 +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..cbd3dc91663 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 @@ -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 @@ -88,3 +88,5 @@ 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 \ No newline at end of file diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index 989f6aa9793..ad8217153be 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Your PHP max session memory is set to %s. This should be enou 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=Directory %s does not exist. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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. @@ -55,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 @@ -217,3 +212,5 @@ 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 diff --git a/htdocs/langs/en_US/interventions.lang b/htdocs/langs/en_US/interventions.lang index a57a84fc4c8..767688a4ce8 100644 --- a/htdocs/langs/en_US/interventions.lang +++ b/htdocs/langs/en_US/interventions.lang @@ -68,3 +68,4 @@ 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 b39124c7c53..1cc05709471 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=. @@ -216,7 +222,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 @@ -345,7 +351,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Created by UserModif=Updated by b=b. Kb=Kb @@ -621,6 +627,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 @@ -711,6 +718,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 @@ -800,6 +808,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 @@ -1172,4 +1181,11 @@ 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 \ No newline at end of file +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 +CreatedByEmailCollector=Created by Email collector +CreatedByPublicPortal=Created from Public portal +UserAgent=User Agent \ No newline at end of file diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index 8646c40b98f..e4ca610c44f 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/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 @@ -71,6 +72,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 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 @@ -135,7 +142,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 @@ -163,7 +170,7 @@ MoreActionsOnSubscription=Complementary action suggested by default when recordi 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,7 +205,8 @@ 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 +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 @@ -218,3 +226,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 \ No newline at end of file diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index df0a834e04f..d68b0b337f9 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -1,14 +1,19 @@ # 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 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, 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 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) @@ -45,6 +50,7 @@ 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 +GenerateCode=Generate code RegenerateClassAndSql=Force update of .class and .sql files RegenerateMissingFiles=Generate missing files SpecificationFile=File of documentation @@ -52,7 +58,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 @@ -83,8 +89,8 @@ 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) +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).

    It can be an expression, for 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.
    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) @@ -127,9 +133,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 @@ -150,3 +156,4 @@ 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 \ No newline at end of file diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 224273d84e6..9e1c8bb64ce 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -109,6 +109,7 @@ 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 -BOMNetNeeds=Net Needs -TreeStructure=Tree structure -GroupByProduct=Group by product \ No newline at end of file +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 diff --git a/htdocs/langs/en_US/oauth.lang b/htdocs/langs/en_US/oauth.lang index dda6f1bdf73..b7f7c0c2c1a 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,15 @@ 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=Scopes \ No newline at end of file diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index a4261f8e62c..aa7dd934ede 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 diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index 587231f752f..46cb61ff3f0 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -110,7 +110,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) @@ -304,3 +304,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 f542bfab670..6490bf23d8b 100644 --- a/htdocs/langs/en_US/partnership.lang +++ b/htdocs/langs/en_US/partnership.lang @@ -28,6 +28,7 @@ PartnershipCheckBacklink=Partnership: Check referring backlink # Menu # NewPartnership=New Partnership +NewPartnershipbyWeb= Your partnership was added successfully. ListOfPartnerships=List of partnership # @@ -42,6 +43,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 +61,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=Draft +PartnershipAccepted=Accepted +PartnershipRefused=Refused +PartnershipCanceled=Canceled +PartnershipManagedFor=Partners are # # Template Mail @@ -82,11 +90,6 @@ CountLastUrlCheckError=Number of errors for last URL check LastCheckBacklink=Date of last URL check ReasonDeclineOrCancel=Reason for declining or canceling -# -# Status -# -PartnershipDraft=Draft -PartnershipAccepted=Accepted -PartnershipRefused=Refused -PartnershipCanceled=Canceled -PartnershipManagedFor=Partners are \ No newline at end of file +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/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/products.lang b/htdocs/langs/en_US/products.lang index 2d8ef240ef1..bf2dabf5a0a 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -262,7 +262,7 @@ Quarter1=1st. Quarter Quarter2=2nd. Quarter Quarter3=3rd. Quarter Quarter4=4th. Quarter -BarCodePrintsheet=Print barcode +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 @@ -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 @@ -424,3 +424,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/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 1e0ed42d3e3..037ddd1c4e1 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody -PrivateProject=Project contacts +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=All projects @@ -259,7 +259,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. @@ -289,3 +289,9 @@ FormForNewLeadDesc=Thanks to fill the following form to contact us. You can also 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 \ No newline at end of file diff --git a/htdocs/langs/en_US/receiptprinter.lang b/htdocs/langs/en_US/receiptprinter.lang index eb115682726..2b4fe7d6125 100644 --- a/htdocs/langs/en_US/receiptprinter.lang +++ b/htdocs/langs/en_US/receiptprinter.lang @@ -55,6 +55,8 @@ 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 diff --git a/htdocs/langs/en_US/receptions.lang b/htdocs/langs/en_US/receptions.lang index 3d69873c5fc..5b51f5ba071 100644 --- a/htdocs/langs/en_US/receptions.lang +++ b/htdocs/langs/en_US/receptions.lang @@ -48,7 +48,6 @@ 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 \ No newline at end of file diff --git a/htdocs/langs/en_US/recruitment.lang b/htdocs/langs/en_US/recruitment.lang index 6b0e8117254..1f80ecf1082 100644 --- a/htdocs/langs/en_US/recruitment.lang +++ b/htdocs/langs/en_US/recruitment.lang @@ -57,8 +57,9 @@ 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 @@ -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/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 0c412beed6e..492cdd48864 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 @@ -265,10 +266,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 \ No newline at end of file +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/en_US/stripe.lang b/htdocs/langs/en_US/stripe.lang index 0a376ca9fb1..3ea0cf2354b 100644 --- a/htdocs/langs/en_US/stripe.lang +++ b/htdocs/langs/en_US/stripe.lang @@ -68,4 +68,5 @@ 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 \ 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 edd54911bad..3e252e407e4 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -90,15 +90,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) @@ -219,12 +221,12 @@ 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. +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=

    Sincerely,

    --

    +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. @@ -289,12 +291,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 diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index 888c9f52161..c98c1f4902f 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -114,7 +114,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 @@ -123,4 +123,8 @@ 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 \ No newline at end of file +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/en_US/website.lang b/htdocs/langs/en_US/website.lang index b5ef14bd118..379eadef08f 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 @@ -145,3 +148,6 @@ 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 "Disabled" diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index 9d145ef354d..1ed8148f6f2 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -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 * @@ -137,6 +141,7 @@ 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 @@ -154,4 +159,5 @@ ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default 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 \ No newline at end of file +WarningSomeCreditTransferAlreadyExists=Warning: There is already some pending Credit Transfer (%s) requested for an amount of %s +UsedFor=Used for %s \ No newline at end of file diff --git a/htdocs/langs/en_ZA/accountancy.lang b/htdocs/langs/en_ZA/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/en_ZA/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/en_ZA/admin.lang b/htdocs/langs/en_ZA/admin.lang index 9bfd4f12f48..c5ab56cb8d8 100644 --- a/htdocs/langs/en_ZA/admin.lang +++ b/htdocs/langs/en_ZA/admin.lang @@ -1,6 +1,4 @@ # 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 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 diff --git a/htdocs/langs/en_ZA/companies.lang b/htdocs/langs/en_ZA/companies.lang index 40b5f885e43..40ce11cb83a 100644 --- a/htdocs/langs/en_ZA/companies.lang +++ b/htdocs/langs/en_ZA/companies.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. +ProfId4CM=Id. prof. 4 (Certificate of deposits) ProfId3ShortCM=Decree of creation +ProfId4ShortCM=Certificate of deposits diff --git a/htdocs/langs/en_ZA/exports.lang b/htdocs/langs/en_ZA/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/en_ZA/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/en_ZA/members.lang b/htdocs/langs/en_ZA/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/en_ZA/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/en_ZA/products.lang b/htdocs/langs/en_ZA/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/en_ZA/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/en_ZA/projects.lang b/htdocs/langs/en_ZA/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/en_ZA/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_AR/accountancy.lang b/htdocs/langs/es_AR/accountancy.lang index 96c58aaf400..f2465f8da73 100644 --- a/htdocs/langs/es_AR/accountancy.lang +++ b/htdocs/langs/es_AR/accountancy.lang @@ -16,3 +16,5 @@ Journals=Diarios Contables JournalFinancial=Diarios Financieros AssignDedicatedAccountingAccount=Nueva cuenta para asignar InvoiceLabel=Etiqueta de la factura +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s +ConfirmMassDeleteBookkeepingWriting=Confirmar Eliminar en Masa diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang index cd369333c0e..76c93629d16 100644 --- a/htdocs/langs/es_AR/admin.lang +++ b/htdocs/langs/es_AR/admin.lang @@ -1,4 +1,6 @@ # Dolibarr language file - Source file is en_US - admin +BoldRefAndPeriodOnPDF=Imprimir en PDF referencia y período de producto +BoldLabelOnPDF=Imprimir etiqueta del producto en Negrita en el PDF VersionProgram=Version del programa VersionLastInstall=Versión de instalación inicial VersionLastUpgrade=Actualización de la última versión @@ -27,9 +29,13 @@ UnlockNewSessions=Quitar el bloqueo de conexión YourSession=Tu sesion Sessions=Sesiones de Usuarios WebUserGroup=Usuario / grupo del servidor web +PermissionsOnFiles=Permisos en archivos +PermissionsOnFilesInWebRoot=Permisos en archivos en el directorio raíz de la web +PermissionsOnFile=Permisos en archivo %s NoSessionFound=Su configuración de PHP parece no permitir el listado de sesiones activas. El directorio utilizado para guardar sesiones ( %s ) puede estar protegido (por ejemplo, por permisos del sistema operativo o por la directiva PHP open_basedir). DBStoringCharset=Codificación de caracteres de base de datos para almacenar datos DBSortingCharset=Codificación de caracteres de base de datos para ordenar los datos +HostCharset=Juego de caracteres de host ClientCharset=Codificación de caracteres del cliente WarningModuleNotActive=El módulo %s debe estar habilitado WarningOnlyPermissionOfActivatedModules=Aquí solo se muestran los permisos relacionados con los módulos activados. Puede activar otros módulos en la página Inicio-> Configuración-> Módulos. @@ -70,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 @@ -247,6 +252,7 @@ UpdateServerOffline=Actualizar servidor fuera de línea WithCounter=Administrar un contador AddCRIfTooLong=No hay ajuste de texto automático. El texto que es demasiado largo no será mostrado en el documento. Por favor agregar saltos de línea en el área de texto si es necesario. String=Cuerda +InitEmptyBarCode=Init value for the %s empty barcodes Module30Name=Facturas Module40Desc=Gestión de proveedores y compras (órdenes de compra y facturas de proveedores) Module52Name=Inventarios(Stocks) @@ -296,7 +302,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 @@ -319,7 +324,6 @@ MaxSizeList=Longitud máxima para la lista DefaultMaxSizeList=Longitud máxima predeterminada para listas CompanyInfo=Empresa / Organización CompanyAddress=DIrección -DelaysOfToleranceBeforeWarning=Retardo antes de mostrar una alerta de advertencia por: MiscellaneousDesc=Todos los demás parámetros relacionados con la seguridad se definen aquí. LimitsSetup=Límites / configuración de precisión LimitsDesc=Puede definir los límites, precisiones y optimizaciones utilizadas por Dolibarr aquí @@ -529,6 +533,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 @@ -571,7 +576,6 @@ NothingToSetup=No se requiere ninguna configuración específica para este módu SetToYesIfGroupIsComputationOfOtherGroups=Establézcalo en sí si este grupo es un cálculo de otros grupos COMPANY_AQUARIUM_CLEAN_REGEX=Filtro de expresiones regulares para limpiar el valor (COMPANY_AQUARIUM_CLEAN_REGEX) GDPRContact=Oficial de protección de datos (DPO, privacidad de datos o contacto GDPR) -GDPRContactDesc=Si almacena datos sobre empresas / ciudadanos europeos, puede nombrar al contacto que es responsable del Reglamento general de protección de datos aquí 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 YouCanDeleteFileOnServerWith=Puede eliminar este archivo en el servidor con la línea de comandos:
    %s @@ -583,11 +587,10 @@ NewEmailCollector=Nuevo recolector de email EMailHost=Host de correo electrónico del servidor IMAP EmailcollectorOperations=Operaciones a realizar por coleccionista. EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación -EmailCollectorConfirmCollect=¿Quieres ejecutar la colección para este coleccionista ahora? NoNewEmailToProcess=No hay correo electrónico nuevo (filtros coincidentes) para procesar 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 @@ -595,5 +598,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;'
    -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 =Ajustes diff --git a/htdocs/langs/es_AR/assets.lang b/htdocs/langs/es_AR/assets.lang index 287abd2263d..0555489132e 100644 --- a/htdocs/langs/es_AR/assets.lang +++ b/htdocs/langs/es_AR/assets.lang @@ -1,21 +1,7 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Bienes -AccountancyCodeDepreciationAsset =Código contable (cuenta de activo por depreciación) -AccountancyCodeDepreciationExpense =Código contable (cuenta de gastos de depreciación) -AssetsTypeSetup=Configurar tipo de activo AssetsLines=Bienes DeleteType=Borrar ConfirmDeleteAssetType=¿Estás seguro de que quieres eliminar este tipo de activo? ShowTypeCard=Mostrar tipo '%s' -ModuleAssetsName =Bienes -ModuleAssetsDesc =Descripción de los activos -AssetsSetup =Configuración de activos -Settings =Ajustes -AssetsSetupPage =Página de configuración de activos -ExtraFieldsAssetsType =Atributos complementarios (tipo de activo) AssetsTypeId=ID de tipo de activo AssetsTypeLabel=Etiqueta de tipo de activo -MenuAssets =Bienes -MenuNewAsset =Nuevo activo -MenuListAssets =Lista -MenuListTypeAssets =Lista diff --git a/htdocs/langs/es_AR/banks.lang b/htdocs/langs/es_AR/banks.lang index 9f252aff5af..3b13f3c2759 100644 --- a/htdocs/langs/es_AR/banks.lang +++ b/htdocs/langs/es_AR/banks.lang @@ -56,7 +56,6 @@ StatusAccountClosed=Cerrado LineRecord=Transacción AddBankRecord=Agregar Registro AddBankRecordLong=Agregar Registro Manualmente -ConciliatedBy=Reconciliado por DateConciliating=Fecha de Reconciliación BankLineConciliated=Registro reconciliado con extracto bancario SupplierInvoicePayment=Pago de Proveedor diff --git a/htdocs/langs/es_AR/companies.lang b/htdocs/langs/es_AR/companies.lang index 1e051e5382c..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 @@ -183,7 +182,6 @@ ListOfContacts=Lista de contactos/direcciones ListOfContactsAddresses=Lista de contactos/direcciones ListOfThirdParties=Lista de terceros ShowContact=Contacto-Dirección -ContactType=Tipo de Contacto ContactForOrders=Contacto de la orden ContactForOrdersOrShipments=Contacto de la orden o su envío ContactForProposals=Contacto del presupuesto diff --git a/htdocs/langs/es_AR/exports.lang b/htdocs/langs/es_AR/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_AR/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. 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/members.lang b/htdocs/langs/es_AR/members.lang index ace0f6bb549..a05e329cdb3 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) @@ -81,7 +80,6 @@ MoreActions=Acción complementaria al registrarse MoreActionBankDirect=Crear una registro en la cuenta bancaria MoreActionBankViaInvoice=Crear una factura y un pago en cuenta bancaria MoreActionInvoiceOnly=Crea una factura sin pago -LinkToGeneratedPages=Generar tarjetas de visita LinkToGeneratedPagesDesc=Esta pantalla te permite generar archivos PDF con la carta de presentación para todos sus miembros o un miembro en particular. DocForAllMembersCards=Generar cartas de presentación para todos los miembros. DocForOneMemberCards=Generar cartas de presentación para un miembro en particular diff --git a/htdocs/langs/es_BO/accountancy.lang b/htdocs/langs/es_BO/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_BO/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_BO/companies.lang b/htdocs/langs/es_BO/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_BO/companies.lang +++ b/htdocs/langs/es_BO/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_BO/exports.lang b/htdocs/langs/es_BO/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_BO/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_BO/members.lang b/htdocs/langs/es_BO/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_BO/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_BO/products.lang b/htdocs/langs/es_BO/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_BO/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_BO/projects.lang b/htdocs/langs/es_BO/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_BO/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_CL/accountancy.lang b/htdocs/langs/es_CL/accountancy.lang index 807bdf2edb6..2bff8d60933 100644 --- a/htdocs/langs/es_CL/accountancy.lang +++ b/htdocs/langs/es_CL/accountancy.lang @@ -36,20 +36,15 @@ MainAccountForVatPaymentNotDefined=Cuenta de contabilidad principal para el pago MainAccountForSubscriptionPaymentNotDefined=Cuenta contable principal para el pago de suscripción no definido en la configuración AccountancyArea=Área de contabilidad AccountancyAreaDescActionOnce=Las siguientes acciones generalmente se ejecutan una sola vez o una vez al año ... -AccountancyAreaDescActionOnceBis=Deben seguirse los pasos para ahorrarle tiempo en el futuro al sugerirle la cuenta de contabilidad predeterminada correcta al hacer la publicación (registro de escritura en Revistas 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 publicaciones desde el menú %s AccountancyAreaDescVat=PASO %s: Defina cuentas contables para cada tasa de IVA. Para esto, use la entrada del menú %s. AccountancyAreaDescDefault=PASO %s: Defina cuentas de contabilidad predeterminadas. Para esto, use la entrada del menú %s. -AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas de contabilidad predeterminadas para cada tipo de informe de gastos. Para esto, use la entrada del menú %s. AccountancyAreaDescSal=PASO %s: Defina cuentas de contabilidad predeterminadas para el pago de salarios. Para esto, use la entrada del menú %s. -AccountancyAreaDescContrib=PASO %s: Defina cuentas de contabilidad predeterminadas para gastos especiales (impuestos diversos). Para esto, use la entrada de menú %s. AccountancyAreaDescDonation=PASO %s: Defina las cuentas de contabilidad predeterminadas para la donación. Para esto, use la entrada del menú %s. AccountancyAreaDescSubscription=PASO %s: Defina cuentas de contabilidad predeterminadas para la suscripción de miembros. Para esto, use la entrada de menú %s. AccountancyAreaDescMisc=PASO %s: Defina la cuenta predeterminada obligatoria y cuentas de contabilidad predeterminadas para transacciones misceláneas. Para esto, use la entrada del menú %s. AccountancyAreaDescLoan=PASO %s: defina cuentas de contabilidad predeterminadas para préstamos. Para esto, use la entrada del menú %s. AccountancyAreaDescBank=PASO %s: Defina las cuentas de contabilidad y el código del diario para cada banco y cuenta financiera. 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: verifique que el enlace entre las líneas %s existentes y la cuenta de contabilidad estén listas, de modo que la aplicación podrá registrar las transacciones en el Libro mayor con un solo clic. Completa enlaces faltantes. Para esto, use la entrada del menú %s. AccountancyAreaDescWriteRecords=PASO %s: Escriba 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 las transacciones existentes y genere informes y exportaciones. @@ -161,16 +156,13 @@ DescVentilTodoExpenseReport=Vincular las líneas de informe de gastos que ya no DescVentilExpenseReport=Consulte aquí la lista de líneas de informe de gastos vinculadas (o no) a una cuenta de contabilidad de tasas 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 estableció en el diccionario de tarifas o si todavía tiene algunas líneas no 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 de contabilidad de tarifas -ValidateMovements=Validar Movimientos 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 -MvtNotCorrectlyBalanced=El movimiento no está correctamente equilibrado. Débito = %s | Crédito = %s 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. -NoNewRecordSaved=No más registro para agendar ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta de contabilidad ChangeBinding=Cambiar la encuadernación Accounted=Contabilizado en el libro mayor diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 5554b00bc11..aa792dc23db 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,7 @@ 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 +InitEmptyBarCode=Init value for the %s empty barcodes 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 @@ -490,9 +489,6 @@ Permission27=Eliminar cotizaciones Permission28=Exportar las cotizaciones Permission31=Leer productos Permission36=Ver / administrar productos ocultos -Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos para los que estoy en contacto). También puede ingresar el tiempo consumido, para mí o para mi jerarquía, en las tareas asignadas (hoja de horas) -Permission42=Crear / modificar proyectos (proyecto compartido y proyectos para los que estoy en contacto). También puede crear tareas y asignar usuarios a proyectos y tareas. -Permission44=Eliminar proyectos (proyectos compartidos y proyectos para los que estoy en contacto) Permission45=Proyectos de exportación Permission61=Leer intervenciones Permission67=Intervenciones de exportación @@ -522,9 +518,6 @@ Permission121=Leer terceros vinculados al usuario Permission122=Crear/modificar terceros vinculados al usuario Permission125=Eliminar terceros vinculados al usuario Permission126=Exportar terceros -Permission141=Lee todos los proyectos y tareas (también proyectos privados para los que no soy contacto) -Permission142=Crear / modificar todos los proyectos y tareas (también proyectos privados para los cuales no soy un contacto) -Permission144=Eliminar todos los proyectos y tareas (también proyectos privados para los que no estoy en contacto) Permission146=Leer proveedores Permission147=Leer estadísticas Permission151=Lea las órdenes de pago de débito directo @@ -734,7 +727,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 @@ -1261,7 +1253,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 @@ -1286,6 +1277,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) @@ -1329,7 +1321,6 @@ NothingToSetup=No se requiere ninguna configuración específica para este módu SetToYesIfGroupIsComputationOfOtherGroups=Establezca esto en sí si este grupo es un cálculo de otros grupos SeveralLangugeVariatFound=Varias variantes de lenguaje encontradas GDPRContact=Oficial de protección de datos (DPO, privacidad de datos o contacto GDPR) -GDPRContactDesc=Si almacena datos sobre empresas / ciudadanos europeos, puede nombrar al contacto que es responsable del Reglamento general de protección de datos aquí 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 YouCanDeleteFileOnServerWith=Puede eliminar este archivo en el servidor con la línea de comandos:
    %s @@ -1343,23 +1334,19 @@ NewEmailCollector=Nuevo coleccionista de email 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 -ConfirmCloneEmailCollector=¿Está seguro de que desea clonar el recopilador de correo electrónico %s? EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación -EmailCollectorConfirmCollect=¿Quieres ejecutar la colección para este coleccionista ahora? 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). DisabledResourceLinkUser=Deshabilitar característica para vincular un recurso a los usuarios DisabledResourceLinkContact=Deshabilitar característica para vincular un recurso a contactos -EnableResourceUsedInEventCheck=Habilite la función para verificar si un recurso está en uso en un evento ConfirmUnactivation=Confirmar restablecimiento del módulo OnMobileOnly=Sólo en pantalla pequeña (teléfono inteligente) MAIN_OPTIMIZEFORTEXTBROWSER=Simplificar la interfaz para ciegos. @@ -1378,10 +1365,7 @@ DeleteEmailCollector=Eliminar el colector de correo electrónico ConfirmDeleteEmailCollector=¿Estás seguro de que deseas eliminar este recopilador de correo electrónico? RecipientEmailsWillBeReplacedWithThisValue=Los correos electrónicos del destinatario siempre serán reemplazados por este valor AtLeastOneDefaultBankAccountMandatory=Se debe definir al menos 1 cuenta bancaria predeterminada -RESTRICT_ON_IP=Permitir el acceso a alguna IP de host solamente (comodín no permitido, usar espacio entre valores). Vacío significa que todos los hosts pueden acceder. MakeAnonymousPing=Realice un Ping anónimo '+1' al servidor de la base Dolibarr (hecho 1 vez solo después de la instalación) para permitir que la base cuente la cantidad de instalación de Dolibarr. FeatureNotAvailableWithReceptionModule=Función no disponible cuando la recepción del módulo está habilitada EmailTemplate=Plantila para email Recommended=Recomendado -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/es_CL/assets.lang b/htdocs/langs/es_CL/assets.lang index 76872a25ac6..6eaae0c9bea 100644 --- a/htdocs/langs/es_CL/assets.lang +++ b/htdocs/langs/es_CL/assets.lang @@ -1,19 +1,6 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Bienes -AccountancyCodeAsset =Código de contabilidad (activo) -AccountancyCodeDepreciationAsset =Código de contabilidad (cuenta de activos de depreciación) -AccountancyCodeDepreciationExpense =Código de contabilidad (cuenta de gastos de depreciación) -AssetsTypeSetup=Configuración de tipo de activo DeleteType=Borrar ConfirmDeleteAssetType=¿Estás seguro de que quieres eliminar este tipo de activo? ShowTypeCard=Mostrar tipo '%s' -ModuleAssetsName =Bienes -ModuleAssetsDesc =Descripción de los activos -AssetsSetup =Configuración de activos -AssetsSetupPage =Página de configuración de activos -ExtraFieldsAssetsType =Atributos complementarios (Tipo de activo) AssetsTypeId=Identificación del tipo de activo AssetsTypeLabel=Etiqueta de tipo de activo -MenuAssets =Bienes -MenuNewAsset =Nuevo activo -MenuTypeAssets =Escriba activos diff --git a/htdocs/langs/es_CL/companies.lang b/htdocs/langs/es_CL/companies.lang index 2b761b3d04f..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 @@ -133,7 +132,6 @@ ListOfContacts=Lista de contactos/direcciones ListOfContactsAddresses=Lista de contactos/direcciones ListOfThirdParties=Lista de terceros ContactsAllShort=Todo (Sin filtro) -ContactType=Tipo de Contacto ContactForOrders=Contacto de la orden ContactForOrdersOrShipments=Pedido o contacto del envío ContactForProposals=Contacto de cotizaciones @@ -181,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/errors.lang b/htdocs/langs/es_CL/errors.lang index a558bcdd773..8c45fd1469b 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 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 ca221130e38..9bc3060c806 100644 --- a/htdocs/langs/es_CL/install.lang +++ b/htdocs/langs/es_CL/install.lang @@ -14,17 +14,11 @@ PHPMemoryOK=Su memoria de sesión máxima de PHP está configurada en %s. PHPMemoryTooLow=La memoria de sesión máxima de PHP se establece en %s bytes. Esto es demasiado bajo. Cambie su php.ini para establecer el parámetro memory_limit en al menos %s bytes. Recheck=Haga clic aquí para una prueba más detallada ErrorPHPDoesNotSupportSessions=Su instalación de PHP no admite sesiones. Esta función es necesaria para permitir que Dolibarr funcione. Compruebe su configuración de PHP y los permisos del directorio de sesiones. -ErrorPHPDoesNotSupportGD=Su instalación de PHP no soporta funciones gráficas de GD. No habrá gráficos disponibles. -ErrorPHPDoesNotSupportCurl=Su instalación de PHP no es compatible con Curl. -ErrorPHPDoesNotSupportCalendar=Su instalación de PHP no admite extensiones de calendario php. -ErrorPHPDoesNotSupportUTF8=Su instalación de PHP no es compatible con las funciones UTF8. Dolibarr no puede funcionar correctamente. Resuelve esto antes de instalar Dolibarr. -ErrorPHPDoesNotSupportIntl=Su instalación de PHP no admite funciones de Intl. ErrorDirDoesNotExists=El directorio %s no existe. 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". @@ -40,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/members.lang b/htdocs/langs/es_CL/members.lang index 348c800fdff..a226d236563 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) @@ -54,6 +53,7 @@ YourMembershipWasValidated=Su membresía fue validada YourMembershipWasCanceled=Su membresía fue cancelada CardContent=Contenido de su tarjeta de miembro ThisIsContentOfYourMembershipRequestWasReceived=Queremos informarle que se recibió su solicitud de membresía.

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

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

    ThisIsContentOfYourCard=Este es un resumen de la información que tenemos sobre usted. Por favor, póngase en contacto con nosotros si algo es incorrecto.

    DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto de la notificación por correo electrónico recibida en caso de autoinscripción de un invitado @@ -73,7 +73,6 @@ MoreActions=Acción complementaria en la grabación MoreActionBankDirect=Crear una entrada directa en una cuenta bancaria MoreActionBankViaInvoice=Crear una factura y un pago en una cuenta bancaria MoreActionInvoiceOnly=Crea una factura sin pago -LinkToGeneratedPages=Generar tarjetas de visita LinkToGeneratedPagesDesc=Esta pantalla le permite generar archivos PDF con tarjetas de visita para todos sus miembros o un miembro en particular. DocForAllMembersCards=Genera tarjetas de visita para todos los miembros DocForOneMemberCards=Genera tarjetas de visita para un miembro en particular @@ -86,6 +85,7 @@ 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) +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type 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 diff --git a/htdocs/langs/es_CL/modulebuilder.lang b/htdocs/langs/es_CL/modulebuilder.lang index fc76fba2eb4..0cdf3ee0a63 100644 --- a/htdocs/langs/es_CL/modulebuilder.lang +++ b/htdocs/langs/es_CL/modulebuilder.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - modulebuilder -EnterNameOfModuleDesc=Ingrese el nombre del módulo / aplicación para crear sin espacios. Use letras mayúsculas para separar palabras (por ejemplo: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Ingrese el nombre del objeto para crear sin espacios. Use mayúsculas para separar las palabras (por ejemplo: MyObject, Student, Teacher ...). Se generará el archivo de clase CRUD, pero también el archivo API, páginas para listar / agregar / editar / eliminar objetos y archivos SQL. ModuleBuilderDesc2=Ruta donde se generan / editan los módulos (primer directorio para módulos externos definidos en %s): %s ModuleBuilderDesc3=Se encontraron módulos generados/editables: %s NewObjectInModulebuilder=Nuevo Objeto @@ -36,7 +34,6 @@ FileNotYetGenerated=Archivo aún no generado RegenerateMissingFiles=Generar archivos perdidos ConfirmDeleteProperty=¿Está seguro de que desea eliminar la propiedad %s ? Esto cambiará el código en la clase de PHP pero también eliminará la columna de la definición de tabla del objeto. NotNull=No nulo -NotNullDesc=1 = Establecer la base de datos en NOT NULL. -1 = Permitir valores nulos y forzar valor a NULL si está vacío ('' o 0). SearchAll=Usado para 'buscar todo' DatabaseIndex=Índice de base FileAlreadyExists=El archivo %s ya existe @@ -69,7 +66,6 @@ LanguageDefDesc=Ingrese en estos archivos, toda la clave y la traducción para c MenusDefDesc=Define aquí los menús proporcionados por su módulo. DictionariesDefDesc=Defina aquí los diccionarios proporcionados por su módulo PermissionsDefDesc=Define 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 utilizar el editor incrustado.

    Nota: Una vez definidos (y el módulo se reactiva), los menús también están visibles en el editor de menú disponible para los usuarios administradores en %s. DictionariesDefDescTooltip=Los diccionarios proporcionados por su módulo/aplicación son definidos en el arreglo $this->dictionaries en el archivo de descripción del módulo. Usted puede editar manualmente este archivo o usar el editor incorporado.

    Nota: Una vez definido (y re-activado el módulo), diccionarios sólo estarán visibles en el área de configuración para los usuarios administradores %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 incrustado.

    Nota: Una vez definidos (y el módulo se reactiva), 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 enlaces que desea administrar (la búsqueda de ' initHooks puede encontrar la lista de contextos ( 'en el código del núcleo).
    Edite el archivo 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). @@ -78,7 +74,6 @@ SeeReservedIDsRangeHere=Ver rango de ID reservados ToolkitForDevelopers=Toolkit para desarrolladores de Dolibarr TryToUseTheModuleBuilder=Si tiene conocimientos de SQL y PHP, puede utilizar el asistente de creación de módulos nativos.
    Habilite el módulo %s y use el asistente haciendo clic en en el menú superior derecho.
    Advertencia: esta es una función avanzada para desarrolladores, ¡ no experimente en su sitio de producción! InitStructureFromExistingTable=Construya la cadena de matriz de estructura de una tabla existente -UseAboutPage=Deshabilitar la página acerca de UseDocFolder=Desactivar la carpeta de documentación. UseSpecificReadme=Use un archivo Léame específico WidgetDesc=Puede generar y editar aquí los widgets que se incrustarán con su módulo. @@ -90,4 +85,3 @@ IncludeDocGenerationHelp=Si marca esto, se generará algún código para agregar ShowOnCombobox=Mostrar valor en el cuadro combinado KeyForTooltip=Clave para información sobre herramientas ForeignKey=Clave Foránea -TypeOfFieldsHelp=Tipos de campos:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' significa que podemos agregar a + boton despues de el combo para crear el registro, 'filter' puede ser 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' por ejemplo) 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/other.lang b/htdocs/langs/es_CL/other.lang index 81002f31f7c..2464b5cc7e6 100644 --- a/htdocs/langs/es_CL/other.lang +++ b/htdocs/langs/es_CL/other.lang @@ -77,7 +77,6 @@ ChooseYourDemoProfilMore=... o crea tu propio perfil
    (selección manual del DemoFundation=Administrar miembros de una fundación DemoFundation2=Administrar miembros y cuenta bancaria de una fundación DemoCompanyServiceOnly=Compañía o servicio de venta independiente solamente -DemoCompanyShopWithCashDesk=Administre una tienda con una caja registradora DemoCompanyAll=Empresa con múltiples actividades (todos los módulos principales) CreatedById=ID de usuario que creó ModifiedById=ID de usuario que realizó el último cambio diff --git a/htdocs/langs/es_CL/projects.lang b/htdocs/langs/es_CL/projects.lang index d24822b69ea..aaae5a794c4 100644 --- a/htdocs/langs/es_CL/projects.lang +++ b/htdocs/langs/es_CL/projects.lang @@ -3,7 +3,6 @@ ProjectId=Proyecto Id ProjectLabel=Etiqueta del proyecto ProjectsArea=Área de proyectos SharedProject=Todos -PrivateProject=Contactos del proyecto AllAllowedProjects=Todo el proyecto que puedo leer (mío + público) ProjectsPublicDesc=Esta vista presenta todos los proyectos que puede leer. TasksOnProjectsPublicDesc=Esta vista presenta todas las tareas en proyectos que puede leer. @@ -157,5 +156,6 @@ ModuleSalaryToDefineHourlyRateMustBeEnabled=El módulo 'Salarios' debe e NewTaskRefSuggested=Referencia de tarea ya utilizada, se requiere una nueva referencia de tarea TimeSpentForIntervention=Tiempo dedicado TimeSpentForInvoice=Tiempo dedicado +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=La factura %s se ha generado desde el tiempo invertido en el proyecto UsageBillTimeShort=Uso: Bill time diff --git a/htdocs/langs/es_CL/ticket.lang b/htdocs/langs/es_CL/ticket.lang index ac8f18b0d42..c1f9984feda 100644 --- a/htdocs/langs/es_CL/ticket.lang +++ b/htdocs/langs/es_CL/ticket.lang @@ -18,10 +18,6 @@ Type=Tipo MailToSendTicketMessage=Para enviar un correo electrónico desde un mensaje de ticket TicketSetupDictionaries=El tipo de ticket, severidad y códigos analíticos son configurables desde los diccionarios. TicketParamMail=Configuración de correo electrónico -TicketEmailNotificationFrom=Correo electrónico de notificación de -TicketEmailNotificationFromHelp=Utilizado en la respuesta del mensaje del Ticket por ejemplo -TicketEmailNotificationTo=Notificaciones de correo electrónico a -TicketEmailNotificationToHelp=Envíe notificaciones por correo electrónico a esta dirección. TicketNewEmailBodyLabel=Mensaje de texto enviado después de crear un ticket. 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. TicketsEmailMustExist=Requerir una dirección de correo electrónico existente para crear un Ticket @@ -77,10 +73,7 @@ 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á. -TicketMessageMailIntroLabelAdmin=Introducción al mensaje cuando se envía un correo electrónico -TicketMessageMailIntroText=Hola,
    Se envió una nueva respuesta en un ticket que contactaste. Aquí está el mensaje:
    TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. -TicketMessageMailSignatureText=

    Sinceramente,

    -

    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 @@ -109,7 +102,6 @@ TicketNewEmailBody=Este es un correo electrónico automático para confirmar que TicketNewEmailBodyCustomer=Este es un correo electrónico 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 de Ticket: %s -TicketNewEmailBodyInfosTrackUrl=Puede ver el progreso del ticket haciendo clic en el enlace de arriba. 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. diff --git a/htdocs/langs/es_CO/accountancy.lang b/htdocs/langs/es_CO/accountancy.lang index 54c0ddba299..8e9afa1c3f8 100644 --- a/htdocs/langs/es_CO/accountancy.lang +++ b/htdocs/langs/es_CO/accountancy.lang @@ -33,6 +33,7 @@ GroupIsEmptyCheckSetup=El grupo está vacío, verifique la configuración del gr DetailByAccount=Mostrar detalle por cuenta AccountWithNonZeroValues=Cuentas con valores distintos de cero. CountriesInEECExceptMe=Países en EEC excepto %s +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...). MainAccountForCustomersNotDefined=Cuenta contable principal para clientes no definidos en la configuración. MainAccountForSuppliersNotDefined=Cuenta de contabilidad principal para proveedores no definidos en la configuración. MainAccountForUsersNotDefined=Cuenta de contabilidad principal para usuarios no definidos en la configuración. @@ -40,22 +41,17 @@ MainAccountForVatPaymentNotDefined=Cuenta contable principal para el pago del IV MainAccountForSubscriptionPaymentNotDefined=Cuenta de contabilidad principal para el pago de la suscripción 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 ... -AccountancyAreaDescActionOnceBis=Se deben seguir los siguientes pasos para ahorrarle tiempo en el futuro, sugiriéndole la cuenta contable predeterminada correcta al realizar el registro por diario (escribiendo el registro en Revistas y Libro mayor) AccountancyAreaDescActionFreq=Las siguientes acciones generalmente se ejecutan cada mes, semana o día para compañías muy grandes ... -AccountancyAreaDescJournalSetup=PASO %s: cree o verifique el contenido de su lista de revistas desde el menú %s AccountancyAreaDescChartModel=PASO %s: Verifique que exista un modelo de plan de cuentas o cree uno desde el menú %s AccountancyAreaDescChart=PASO %s: Seleccione y | o complete su plan de cuenta desde el menú %s AccountancyAreaDescVat=PASO %s: Defina cuentas contables para cada tasa de IVA. Para ello, utilice la entrada de menú %s. AccountancyAreaDescDefault=PASO %s: Defina cuentas de contabilidad predeterminadas. Para ello, utilice la entrada de menú %s. -AccountancyAreaDescExpenseReport=PASO %s: Defina cuentas de contabilidad predeterminadas para cada tipo de informe de gastos. Para ello, utilice la entrada de menú %s. AccountancyAreaDescSal=PASO %s: Defina cuentas contables predeterminadas para el pago de salarios. Para ello, utilice la entrada de menú %s. -AccountancyAreaDescContrib=PASO %s: Defina cuentas de contabilidad predeterminadas para gastos especiales (impuestos diversos). Para ello, utilice la entrada de menú %s. AccountancyAreaDescDonation=PASO %s: Defina cuentas de contabilidad predeterminadas para donación. Para ello, utilice la entrada de menú %s. AccountancyAreaDescSubscription=PASO %s: Defina cuentas de contabilidad predeterminadas para la suscripción de miembros. Para ello, utilice la entrada de menú %s. AccountancyAreaDescMisc=PASO %s: Defina cuentas predeterminadas obligatorias y cuentas contables predeterminadas para transacciones misceláneas. Para ello, utilice la entrada de menú %s. AccountancyAreaDescLoan=PASO %s: Defina cuentas de contabilidad predeterminadas para préstamos. Para ello, utilice la entrada de menú %s. AccountancyAreaDescBank=PASO %s: Defina cuentas contables y código de diario para cada banco y cuentas financieras. Para ello, utilice la entrada de menú %s. -AccountancyAreaDescProd=PASO %s: Defina cuentas de contabilidad en sus productos / servicios. Para ello, utilice la entrada de menú %s. AccountancyAreaDescBind=PASO %s: verifique el enlace entre las líneas %s existentes y la cuenta contable se realiza, por lo que la aplicación podrá registrar transacciones en el libro mayor en un solo clic. Completar los enlaces que faltan. Para ello, utilice la entrada de menú %s. AccountancyAreaDescWriteRecords=PASO %s: Escriba 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. @@ -189,24 +185,20 @@ DescVentilTodoExpenseReport=Líneas de informe de gastos de enlace no vinculadas DescVentilExpenseReport=Consulte aquí la lista de líneas de informe de gastos vinculadas (o no) a una cuenta de contabilidad de comisiones. DescVentilExpenseReportMore=Si configura una cuenta contable según el tipo de líneas de informe de gastos, la aplicación podrá realizar toda la vinculación 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 estableció en el diccionario de tarifas o si todavía tiene algunas líneas no vinculadas a ninguna cuenta, deberá realizar un enlace manual desde el menú " %s ". DescVentilDoneExpenseReport=Consulte aquí la lista de líneas de informes de gastos y sus cuentas contables. -DescClosure=Consulta aquí el número de movimientos por mes que no están validados y años fiscales ya abiertos -NotAllMovementsCouldBeRecordedAsValidated=No todos los movimientos se pudieron registrar como validados +DescClosure=Consult here the number of movements by month who are not yet validated & locked 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 -MvtNotCorrectlyBalanced=Movimiento no equilibrado correctamente. Débito = %s | Crédito = %s 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. -NoNewRecordSaved=No hay más récord para periodizar. ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta contable. ChangeBinding=Cambiar el enlace Accounted=Contabilizado en libro mayor NotYetAccounted=Aún no transferido a contabilidad ShowTutorial=Tutorial de presentación NotReconciled=No conciliado -WarningRecordWithoutSubledgerAreExcluded=Advertencia, todas las operaciones sin una cuenta de libro auxiliar definida se filtran y excluyen de esta vista BindingOptions=Opciones de encuadernación ApplyMassCategories=Aplicar categorías de masa AddAccountFromBookKeepingWithNoCategories=Cuenta disponible que aún no está en el grupo personalizado @@ -223,8 +215,7 @@ AccountingAccountForSalesTaxAreDefinedInto=Nota: la cuenta contable del impuesto 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=Marcar las líneas exportadas como exportadas (no será posible modificar las líneas) -NotifiedValidationDate=Validar las entradas exportadas (no será posible modificar o borrar las líneas) +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) ExportDraftJournal=Exportar borrador de revista Selectmodelcsv=Selecciona un modelo de exportación. Modelcsv_CEGID=Exportación para CEGID Expert Comptabilité diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index b8c0b3f8a0d..d6fec62304b 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=Init value for the %s empty barcodes 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 @@ -385,7 +384,6 @@ WarningPHPMail=ADVERTENCIA: La configuración para enviar correos electrónicos 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. 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 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) @@ -536,9 +534,6 @@ Permission28=Exportar propuestas comerciales. Permission31=Leer productos Permission32=Crear / modificar productos. Permission36=Ver / administrar productos ocultos -Permission41=Leer proyectos y tareas (proyecto compartido y proyectos para los que estoy en contacto). También puede ingresar el tiempo consumido, para mí o para mi jerarquía, en las tareas asignadas (hoja de horas) -Permission42=Crear / modificar proyectos (proyecto compartido y proyectos para los que estoy en contacto). También puede crear tareas y asignar usuarios a proyectos y tareas. -Permission44=Eliminar proyectos (proyectos compartidos y proyectos para los que estoy en contacto) Permission45=Proyectos de exportación Permission61=Leer intervenciones Permission62=Crear / modificar intervenciones. @@ -575,9 +570,6 @@ Permission122=Crear / modificar terceros vinculados al usuario. Permission125=Eliminar terceros vinculados al usuario. Permission126=Exportar a terceros Permission130=Crear / modificar información de pago de terceros -Permission141=Leer todos los proyectos y tareas (también proyectos privados para los que no soy un contacto) -Permission142=Crear / modificar todos los proyectos y tareas (también proyectos privados para los que no soy un contacto) -Permission144=Eliminar todos los proyectos y tareas (también proyectos privados para los que no estoy en contacto) Permission146=Leer proveedores Permission147=Leer estadísticas Permission151=Leer órdenes de pago por débito automático. @@ -853,7 +845,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 @@ -1472,7 +1463,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. @@ -1484,7 +1474,6 @@ 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 icono en formato dolibarr ('image.png' si está en el directorio del tema actual, 'image.png@nom_du_module' si está en el directorio /img/ de un módulo) 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. @@ -1505,6 +1494,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) @@ -1557,7 +1547,6 @@ 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 GDPRContact=Oficial de protección de datos (DPO, privacidad de datos o contacto GDPR) -GDPRContactDesc=Si almacena datos sobre empresas/ciudadanos europeos, puede nombrar el contacto responsable del Reglamento general de protección de datos aquí 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 YouCanDeleteFileOnServerWith=Puede eliminar este archivo en el servidor con la línea de comandos:
    %s @@ -1572,12 +1561,9 @@ EMailHost=Host de correo electrónico del servidor IMAP 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 -ConfirmCloneEmailCollector=¿Está seguro de que desea duplicar el recolector de correo electrónico %s? DateLastcollectResultOk=Fecha del último éxito de recolección EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación -EmailCollectorConfirmCollect=¿Quieres ejecutar la recolección de este recolector ahora? 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 @@ -1588,13 +1574,12 @@ 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=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=Horario de oficina OpeningHoursDesc=Introduzca aquí el horario habitual de trabajo/servicio de su empresa. ResourceSetup=Configuración del módulo de recursos DisabledResourceLinkUser=Deshabilitar la función para vincular un recurso a los usuarios DisabledResourceLinkContact=Deshabilitar función para vincular un recurso a contactos -EnableResourceUsedInEventCheck=Habilite la función para verificar si un recurso está en uso en un evento ConfirmUnactivation=Confirmar el reinicio del módulo OnMobileOnly=Solo en pantalla pequeña (teléfono inteligente) MAIN_OPTIMIZEFORTEXTBROWSER=Simplifique la interfaz para personas ciegas @@ -1628,7 +1613,6 @@ DeleteEmailCollector=Eliminar recopilador de correo electrónico ConfirmDeleteEmailCollector=¿Está seguro de que desea eliminar este recopilador de correo electrónico? RecipientEmailsWillBeReplacedWithThisValue=Los correos electrónicos de los destinatarios siempre se reemplazarán con este valor AtLeastOneDefaultBankAccountMandatory=Se debe definir al menos 1 cuenta bancaria predeterminada -RESTRICT_ON_IP=Permita el acceso solo a algunas direcciones IP de host (no se permiten comodines (wilcards), use un espacio entre los valores). Vacío significa que todos los hosts pueden acceder. MakeAnonymousPing=Hacer un ping anónimo '+1' al servidor de Dolibarr Foundation (hecho 1 vez solo después de la instalación) para permitir que la fundación cuente el número de instalaciones Dolibarr. FeatureNotAvailableWithReceptionModule=Característica no disponible cuando la recepción del módulo está habilitada EmailTemplate=Plantilla para correo electrónico diff --git a/htdocs/langs/es_CO/assets.lang b/htdocs/langs/es_CO/assets.lang index 48475cfe86b..c802f427db2 100644 --- a/htdocs/langs/es_CO/assets.lang +++ b/htdocs/langs/es_CO/assets.lang @@ -1,14 +1,5 @@ # Dolibarr language file - Source file is en_US - assets -AccountancyCodeDepreciationAsset =Código contable (cuenta de activos de depreciación) -AccountancyCodeDepreciationExpense =Código contable (cuenta de gastos de depreciación) -AssetsTypeSetup=Configuración del tipo de activo ConfirmDeleteAssetType=¿Está seguro de que desea eliminar este tipo de activo? ShowTypeCard=Mostrar tipo '%s' -ModuleAssetsDesc =Descripción de activos -AssetsSetup =Configuración de activos -Settings =Ajustes -AssetsSetupPage =Página de configuración de activos -ExtraFieldsAssetsType =Atributos complementarios (tipo de activo) AssetsTypeId=ID del tipo de activo AssetsTypeLabel=Etiqueta de tipo de activo -MenuNewAsset =Nuevo activo diff --git a/htdocs/langs/es_CO/banks.lang b/htdocs/langs/es_CO/banks.lang index a86abeb0d5d..904ba2e9fa3 100644 --- a/htdocs/langs/es_CO/banks.lang +++ b/htdocs/langs/es_CO/banks.lang @@ -70,14 +70,17 @@ AddBankRecordLong=Agregar entrada manualmente Conciliated=Conciliado DateConciliating=Conciliar fecha BankLineConciliated=Entrada conciliada con recibo bancario -Reconciled=Conciliado +BankLineReconciled=Conciliado +BankLineNotReconciled=No conciliado SupplierInvoicePayment=Pago de proveedor WithdrawalPayment=Orden de pago de débito SocialContributionPayment=Pago de impuestos sociales / fiscales +TransferDesc=Utilice la transferencia interna para transferir de una cuenta a otra, la aplicación escribirá dos registros: un débito en la cuenta de origen y un crédito en la cuenta de destino. Se utilizará la misma cantidad, etiqueta y fecha para esta transacción. TransferTo=A TransferFromToDone=La transferencia de %s a %s de %s %s ha sido grabada CheckTransmitter=Remitente ValidateCheckReceipt=¿Validar este recibo de cheque? +ConfirmValidateCheckReceipt=¿Está seguro de que desea enviar este recibo de cheque para su validación? No será posible realizar cambios una vez validado. DeleteCheckReceipt=¿Eliminar este recibo de cheque? ConfirmDeleteCheckReceipt=¿Está seguro de que desea eliminar este recibo de cheque? BankChecks=Cheques bancarios @@ -123,7 +126,7 @@ 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 caja POS 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". diff --git a/htdocs/langs/es_CO/cashdesk.lang b/htdocs/langs/es_CO/cashdesk.lang index 59a31b82d96..eecf4ebaf08 100644 --- a/htdocs/langs/es_CO/cashdesk.lang +++ b/htdocs/langs/es_CO/cashdesk.lang @@ -33,7 +33,6 @@ Header=Encabezamiento Footer=Pie de página TheoricalAmount=Cantidad teórica RealAmount=Cantidad real -CashFenceDone=Cierre de caja realizado para el período NbOfInvoices=Nb de facturas Paymentnumpad=Tipo de Pad para ingresar el pago Numberspad=Pad de números @@ -62,7 +61,6 @@ CashDeskRefNumberingModules=Módulo de numeración para ventas en puntos de vent CashDeskGenericMaskCodes6 =
    {TN} la etiqueta se usa para agregar el número de terminal TakeposGroupSameProduct=Agrupar las mismas líneas de productos StartAParallelSale=Iniciar una nueva venta paralela -CloseCashFence=Cerrar el control de la caja CashReport=Informe de caja MainPrinterToUse=Impresora principal a utilizar OrderPrinterToUse=Solicitar impresora para usar @@ -76,3 +74,4 @@ GiftReceipt=Recibo de regalo ModuleReceiptPrinterMustBeEnabled=La impresora de recibos del módulo debe estar habilitada primero AllowDelayedPayment=Permitir pago retrasado PrintPaymentMethodOnReceipts=Imprimir método de pago en boletos | recibos +CustomerDisplay=Pantalla del cliente diff --git a/htdocs/langs/es_CO/companies.lang b/htdocs/langs/es_CO/companies.lang index f740d495d5d..15f3dfcdfd7 100644 --- a/htdocs/langs/es_CO/companies.lang +++ b/htdocs/langs/es_CO/companies.lang @@ -42,7 +42,6 @@ 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) ProfId2ShortCM=Contribuyente No. ProfId2CO=Identificación (CC, NIT, CE) ProfId3CO=CIIU diff --git a/htdocs/langs/es_CO/compta.lang b/htdocs/langs/es_CO/compta.lang index 05fa4dbd95b..546913e832c 100644 --- a/htdocs/langs/es_CO/compta.lang +++ b/htdocs/langs/es_CO/compta.lang @@ -229,8 +229,6 @@ 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 =Facturas atrasadas (15 a 30 días) -InvoiceLateMinus15Days =Facturas atrasadas (<15 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/errors.lang b/htdocs/langs/es_CO/errors.lang index d7ee4fe6ffd..2e958b678d9 100644 --- a/htdocs/langs/es_CO/errors.lang +++ b/htdocs/langs/es_CO/errors.lang @@ -18,6 +18,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 +49,6 @@ 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. 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 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..1a794c336aa 100644 --- a/htdocs/langs/es_CO/holiday.lang +++ b/htdocs/langs/es_CO/holiday.lang @@ -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..7342c5324de 100644 --- a/htdocs/langs/es_CO/hrm.lang +++ b/htdocs/langs/es_CO/hrm.lang @@ -4,7 +4,6 @@ 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 DictionaryFunction=HRM - Puestos de trabajo ListOfEmployees=Lista de empleados HrmSetup=Configuración del módulo HRM diff --git a/htdocs/langs/es_CO/install.lang b/htdocs/langs/es_CO/install.lang index 3723d1bbeea..aa4def46f84 100644 --- a/htdocs/langs/es_CO/install.lang +++ b/htdocs/langs/es_CO/install.lang @@ -16,19 +16,12 @@ PHPMemoryOK=La memoria de sesión de PHP max está configurada en %s . E PHPMemoryTooLow=La memoria de sesión de PHP max está configurada en %s bytes. Esto es demasiado bajo. Cambie su php.ini para establecer el parámetro memory_limit en al menos %s bytes. Recheck=Haga clic aquí para una prueba más detallada ErrorPHPDoesNotSupportSessions=Su instalación de PHP no soporta sesiones. Esta función es necesaria para permitir que Dolibarr funcione. Compruebe su configuración de PHP y permisos del directorio de sesiones. -ErrorPHPDoesNotSupportGD=Su instalación de PHP no soporta funciones gráficas de GD. No habrá gráficos disponibles. -ErrorPHPDoesNotSupportCurl=Su instalación de PHP no es compatible con Curl. -ErrorPHPDoesNotSupportCalendar=Su instalación de PHP no admite extensiones de calendario php. -ErrorPHPDoesNotSupportUTF8=Su instalación de PHP no es compatible con las funciones UTF8. Dolibarr no puede funcionar correctamente. Resuelve esto antes de instalar Dolibarr. -ErrorPHPDoesNotSupportIntl=Su instalación de PHP no es compatible con las funciones de Intl. -ErrorPHPDoesNotSupportxDebug=Su instalación de PHP no admite funciones de depuración extendidas. ErrorPHPDoesNotSupport=Su instalación de PHP no es compatible con las funciones %s. ErrorDirDoesNotExists=El directorio %s no existe. 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. 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". @@ -44,7 +37,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..f083c8b99f8 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 +SetObsolete=Establecer como obsoleto +ConfirmReopenKM=¿Desea restaurar este artículo al estado "Validado"? diff --git a/htdocs/langs/es_CO/mails.lang b/htdocs/langs/es_CO/mails.lang index 701711719d6..53c9f7a990a 100644 --- a/htdocs/langs/es_CO/mails.lang +++ b/htdocs/langs/es_CO/mails.lang @@ -42,7 +42,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/members.lang b/htdocs/langs/es_CO/members.lang index 799101a6f13..39db94df1a0 100644 --- a/htdocs/langs/es_CO/members.lang +++ b/htdocs/langs/es_CO/members.lang @@ -26,7 +26,6 @@ DateEndSubscription=Fecha de finalización de la membresía EndSubscription=Fin de la membresía SubscriptionId=ID de contribución WithoutSubscription=Sin aporte -MemberId=Identificación de miembro MemberTypeId=ID de tipo de miembro MemberTypeLabel=Etiqueta de tipo de miembro MemberStatusDraft=Borrador (necesita ser validado) @@ -93,7 +92,6 @@ 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.

    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 @@ -115,11 +113,9 @@ HTPasswordExport=generación de archivo htpassword NoThirdPartyAssociatedToMember=Ningún tercero asociado con este miembro MembersAndSubscriptions=Miembros y contribuciones MoreActions=Acción complementaria a la grabación -MoreActionsOnSubscription=Acción complementaria, sugerida por defecto al registrar una contribución MoreActionBankDirect=Cree una entrada directa en la cuenta bancaria MoreActionBankViaInvoice=Crea una factura y un pago en cuenta bancaria MoreActionInvoiceOnly=Crea una factura sin pago -LinkToGeneratedPages=Generar tarjetas de visita LinkToGeneratedPagesDesc=Esta pantalla le permite generar archivos PDF con tarjetas de presentación para todos sus miembros o un miembro en particular. DocForAllMembersCards=Genere tarjetas de presentación para todos los miembros DocForOneMemberCards=Genere tarjetas de presentación para un miembro en particular @@ -139,7 +135,6 @@ 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 MembersStatisticsByProperties=Estadísticas de miembros por naturaleza VATToUseForSubscriptions=Tasa de IVA a utilizar para las contribuciones diff --git a/htdocs/langs/es_CO/modulebuilder.lang b/htdocs/langs/es_CO/modulebuilder.lang index e66ed23363e..58e09df8673 100644 --- a/htdocs/langs/es_CO/modulebuilder.lang +++ b/htdocs/langs/es_CO/modulebuilder.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - modulebuilder -EnterNameOfModuleDesc=Ingrese el nombre del módulo / aplicación a crear sin espacios. Utilice mayúsculas para separar palabras (por ejemplo: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Ingrese el nombre del objeto a crear sin espacios. Utilice mayúsculas para separar palabras (por ejemplo: MyObject, Student, Teacher ...). Se generarán el archivo de clase CRUD, pero también el archivo API, las páginas para listar / agregar / editar / eliminar objetos y 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 @@ -37,7 +35,6 @@ FileNotYetGenerated=Archivo aún no generado RegenerateMissingFiles=Generar archivos perdidos ConfirmDeleteProperty=¿Está seguro de que desea eliminar la propiedad %s ? Esto cambiará el código en la clase PHP pero también eliminará la columna de la definición de la tabla del objeto. NotNull=No nulo -NotNullDesc=1 = Establecer la base de datos como NO NULO. -1 = Permitir valores nulos y forzar el valor a NULL si está vacío ('' o 0). SearchAll=Usado para 'buscar todo' DatabaseIndex=Índice de base de datos FileAlreadyExists=El archivo %s ya existe @@ -72,7 +69,6 @@ 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 utilizar 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). @@ -96,15 +92,11 @@ 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 -IncludeRefGenerationHelp=Marque esto si quiere incluir código para gestionar la generación automática de la referencia -IncludeDocGeneration=Quiero generar algunos documentos a partir del 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 KeyForTooltip=Clave para información sobre herramientas ForeignKey=Clave externa -TypeOfFieldsHelp=Tipo de campos:
    varchar (99), double (24,8), real, text, html, datetime, timestamp, integer, integer: ClassName: relativapath / to / classfile.class.php [: 1 [: filter]] ('1' significa que agregamos un botón + después del combo para crear el registro, 'filtro' puede ser 'status = 1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' por ejemplo) 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. -ValidateModBuilderDesc=Ponga 1 si este campo necesita ser validado con $ this-> validateField () o 0 si se requiere validación diff --git a/htdocs/langs/es_CO/oauth.lang b/htdocs/langs/es_CO/oauth.lang index 6005bedbaf5..4cc5705833c 100644 --- a/htdocs/langs/es_CO/oauth.lang +++ b/htdocs/langs/es_CO/oauth.lang @@ -5,9 +5,7 @@ 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 OAuthIDSecret=ID y secreto de OAuth TOKEN_REFRESH=Actualización de Token Presente @@ -15,9 +13,7 @@ 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_STRIPE_TEST_NAME=Prueba de banda de OAuth OAUTH_STRIPE_LIVE_NAME=OAuth Stripe en vivo diff --git a/htdocs/langs/es_CO/other.lang b/htdocs/langs/es_CO/other.lang index 6528536e60b..a1145b33139 100644 --- a/htdocs/langs/es_CO/other.lang +++ b/htdocs/langs/es_CO/other.lang @@ -87,7 +87,6 @@ ChooseYourDemoProfilMore=... o cree su propio perfil
    (selección manual del DemoFundation=Administrar miembros de una fundación. DemoFundation2=Gestionar miembros y cuenta bancaria de una fundación. DemoCompanyServiceOnly=Empresa o servicio de venta independiente solamente -DemoCompanyShopWithCashDesk=Gestiona una tienda con un mostrador de caja. DemoCompanyManufacturing=Productos de fabricación de la empresa DemoCompanyAll=Empresa con múltiples actividades (todos los módulos principales) CreatedById=ID de usuario que creó diff --git a/htdocs/langs/es_CO/projects.lang b/htdocs/langs/es_CO/projects.lang index 42fa3d7ba31..d7d0f29d616 100644 --- a/htdocs/langs/es_CO/projects.lang +++ b/htdocs/langs/es_CO/projects.lang @@ -4,7 +4,6 @@ ProjectId=Projecto ID ProjectLabel=Etiqueta del proyecto ProjectsArea=Area de proyectos SharedProject=Todos -PrivateProject=Contactos del proyecto ProjectsImContactFor=Proyectos para los que soy un contacto explícito AllAllowedProjects=Todo el proyecto que puedo leer (mío + público) ProjectsPublicDesc=Esta vista presenta todos los proyectos que se le permite leer. @@ -187,7 +186,7 @@ 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 +ServiceToUseOnLines=Service to use on lines by default 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. diff --git a/htdocs/langs/es_CO/propal.lang b/htdocs/langs/es_CO/propal.lang index ed6fe590d2a..00700b4e8c0 100644 --- a/htdocs/langs/es_CO/propal.lang +++ b/htdocs/langs/es_CO/propal.lang @@ -66,7 +66,14 @@ DefaultModelPropalToBill=Plantilla predeterminada al cerrar una propuesta comerc 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 IdProduct=identificación de producto -PrParentLine=Propuesta de línea principal LineBuyPriceHT=Precio de compra Importe neto de impuestos para la línea +SignPropal=Aceptar propuesta +RefusePropal=Rechazar propuesta +PropalAlreadySigned=Propuesta ya aceptada +PropalAlreadyRefused=Propuesta ya rechazada +PropalSigned=Propuesta aceptada +PropalRefused=Propuesta rechazada +ConfirmRefusePropal=¿Seguro que quiere rechazar esta propuesta comercial? 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/ticket.lang b/htdocs/langs/es_CO/ticket.lang index 3e0e1b6c473..02301c15de2 100644 --- a/htdocs/langs/es_CO/ticket.lang +++ b/htdocs/langs/es_CO/ticket.lang @@ -25,10 +25,6 @@ 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 -TicketEmailNotificationFrom=Correo electrónico de notificación de -TicketEmailNotificationFromHelp=Utilizado en la respuesta del mensaje de ticket por ejemplo -TicketEmailNotificationTo=Notificaciones por correo electrónico a -TicketEmailNotificationToHelp=Envíe notificaciones por correo electrónico a esta dirección. 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 @@ -97,10 +93,7 @@ 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á. -TicketMessageMailIntroLabelAdmin=Introducción al mensaje al enviar correo electrónico -TicketMessageMailIntroText=Hola,
    Se envió una nueva respuesta en un ticket con el que contactas. Aquí está el mensaje:
    TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. -TicketMessageMailSignatureText=

    Atentamente,

    -

    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 @@ -128,7 +121,6 @@ TicketNewEmailSubject=Confirmación de creación de ticket - Ref %s (ID de ticke TicketNewEmailBody=Este es un correo electrónico automático para confirmar que ha registrado un nuevo ticket. TicketNewEmailBodyCustomer=Este es un correo electrónico automático para confirmar que se acaba de crear un nuevo ticket en su cuenta. TicketNewEmailBodyInfosTicket=Información para el seguimiento del ticket -TicketNewEmailBodyInfosTrackUrl=Puede ver el progreso del ticket haciendo clic en el enlace de arriba. 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. @@ -154,4 +146,5 @@ BoxLastTicketDescription=Últimas entradas creadas %s BoxLastTicketNoRecordedTickets=No hay tickets recientes no leídos BoxLastModifiedTicketDescription=Últimos tickets modificados %s BoxNoTicketSeverity=No se abrieron boletos +BoxNewTicketVSClose=Número de tickets versus tickets cerrados (hoy) TicketClosedToday=Boleto cerrado hoy diff --git a/htdocs/langs/es_DO/accountancy.lang b/htdocs/langs/es_DO/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_DO/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_DO/companies.lang b/htdocs/langs/es_DO/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_DO/companies.lang +++ b/htdocs/langs/es_DO/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_DO/exports.lang b/htdocs/langs/es_DO/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_DO/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_DO/members.lang b/htdocs/langs/es_DO/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_DO/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_DO/products.lang b/htdocs/langs/es_DO/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_DO/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_DO/projects.lang b/htdocs/langs/es_DO/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_DO/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_EC/accountancy.lang b/htdocs/langs/es_EC/accountancy.lang index 6159703598d..56a5c3e928d 100644 --- a/htdocs/langs/es_EC/accountancy.lang +++ b/htdocs/langs/es_EC/accountancy.lang @@ -32,20 +32,15 @@ MainAccountForVatPaymentNotDefined=Principal cuenta contable para el pago del IV MainAccountForSubscriptionPaymentNotDefined=Cuenta contable principal para el pago de suscripción no definida en la configuración AccountancyArea=Área de contabilidad AccountancyAreaDescActionOnce=Las siguientes acciones normalmente se ejecutan una sola vez, o una vez al año ... -AccountancyAreaDescActionOnceBis=Los siguientes pasos deben hacerse para ahorrar tiempo en el futuro, sugiriendo que la cuenta de contabilidad predeterminada correcta al hacer la publicación (registro de escritura en revistas y libro mayor) AccountancyAreaDescActionFreq=Las siguientes acciones se ejecutan generalmente cada mes, semana o día para empresas muy grandes ... -AccountancyAreaDescJournalSetup=PASO%s: Crea o comprueba el contenido de tu lista de diario desde el menú%s AccountancyAreaDescVat=PASO%s: Definir cuentas contables para cada tipo de IVA. Para ello, utilice la entrada de menú%s. AccountancyAreaDescDefault=PASO %s: Defina las cuentas contables predeterminadas. Para esto, usa la entrada del menú %s. -AccountancyAreaDescExpenseReport=PASO%s: Defina cuentas de contabilidad predeterminadas para cada tipo de informe de gastos. Para ello, utilice la entrada de menú%s. AccountancyAreaDescSal=PASO%s: Defina las cuentas contables predeterminadas para el pago de los salarios. Para ello, utilice la entrada de menú%s. -AccountancyAreaDescContrib=PASO %s: Defina las cuentas contables predeterminadas para gastos especiales (impuestos diversos). Para ello, utilice la entrada de menú %s. AccountancyAreaDescDonation=PASO%s: Defina las cuentas contables predeterminadas para la donación. Para ello, utilice la entrada de 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: Definir cuenta predeterminada obligatoria y cuentas contables predeterminadas para transacciones diversas. Para ello, utilice la entrada de menú%s. AccountancyAreaDescLoan=PASO%s: Defina las cuentas contables predeterminadas para los préstamos. Para ello, utilice la entrada de menú%s. AccountancyAreaDescBank=PASO%s: Definir cuentas contables y código de diario para cada banco y cuentas financieras. Para ello, utilice la entrada de menú%s. -AccountancyAreaDescProd=PASO%s: define cuentas contables en sus productos / servicios. Para ello, utilice la entrada de menú%s. AccountancyAreaDescBind=PASO%s: Compruebe la vinculación entre las líneas%s existentes y la cuenta de contabilidad se hace, por lo que la aplicación será capaz de periodizar las transacciones en Ledger en un solo clic. Complete los enlaces que falten. Para ello, utilice la entrada de menú%s. AccountancyAreaDescWriteRecords=PASO%s: Escribir transacciones en el Libro mayor. Para ello, vaya al menú %s y haga clic en el botón %s. AccountancyAreaDescAnalyze=PASO%s: Añadir o editar transacciones existentes y generar informes y exportaciones. @@ -167,15 +162,12 @@ DescVentilTodoExpenseReport=Vincular las líneas de informes de gastos no consol 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 -OverviewOfMovementsNotValidated=Paso 1/ Resumen de movimientos no validados. (Necesario para cerrar un año fiscal) 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 -MvtNotCorrectlyBalanced=El movimiento no está correctamente equilibrado. Débito = %s | Crédito = %s 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. -NoNewRecordSaved=No más registro para calendarizar ListOfProductsWithoutAccountingAccount=Lista de productos no vinculados a ninguna cuenta contable ChangeBinding=Cambiar la encuadernación Accounted=Contabilizado en el libro mayor diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index 266b2ae19e4..96820c4587e 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,7 @@ 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 +InitEmptyBarCode=Init value for the %s empty barcodes 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 @@ -497,9 +496,6 @@ Permission28=Exportar propuestas comerciales Permission31=Lee productos Permission32=Crear / modificar productos Permission36=Ver / gestionar productos ocultos -Permission41=Leer proyectos y tareas (proyecto compartido y proyectos para los que estoy en contacto). También puede ingresar el tiempo consumido, para mí o para mi jerarquía, en las tareas asignadas (hoja de horas) -Permission42=Crear / modificar proyectos (proyecto compartido y proyectos para los que estoy en contacto). También puede crear tareas y asignar usuarios a proyectos y tareas. -Permission44=Eliminar proyectos (proyectos compartidos y proyectos para los que estoy en contacto) Permission61=Leer intervenido Permission62=Crear / modificar modificar Permission64=Eliminar @@ -530,9 +526,6 @@ Permission121=Leer cliente / proveedor vinculados al usuario Permission122=Crear / modificar cliente / proveedor vinculados al usuario Permission125=Eliminar cliente / proveedor vinculados al usuario Permission126=Exportar cliente / proveedor -Permission141=Lee todos los proyectos y tareas (también proyectos privados para los cuales no soy contacto) -Permission142=Crear / modificar todos los proyectos y tareas (también proyectos privados para los cuales no soy un contacto) -Permission144=Los proyectos y las tareas. Permission146=Leer proveedores Permission147=Leer estadísticas Permission151=Leer órdenes de pago por débito directo @@ -761,7 +754,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 @@ -1314,7 +1306,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 @@ -1342,6 +1333,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 @@ -1387,7 +1379,6 @@ NothingToSetup=No se requiere ninguna configuración específica para este módu SetToYesIfGroupIsComputationOfOtherGroups=Establezca esto en "sí" si este grupo es un cálculo de otros grupos SeveralLangugeVariatFound=Algunas variantes de lenguaje GDPRContact=Oficial de protección de datos (DPO, privacidad de datos o contacto GDPR) -GDPRContactDesc=Si almacena datos sobre empresas / ciudadanos europeos, puede nombrar al contacto que es responsable del Reglamento general de protección de datos aquí 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 YouCanDeleteFileOnServerWith=Puede eliminar este archivo en el servidor con la línea de comandos:
    %s @@ -1400,23 +1391,19 @@ NewEmailCollector=Nuevo recolector de email EMailHost=Host de correo electrónico del servidor IMAP EmailcollectorOperations=Operaciones a realizar por coleccionista. MaxEmailCollectPerCollect=Número máximo de correos electrónicos recopilados por recopilación -ConfirmCloneEmailCollector=¿Está seguro de que desea clonar el recopilador de correo electrónico %s? EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación -EmailCollectorConfirmCollect=¿Quieres ejecutar la colección para este coleccionista ahora? 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). DisabledResourceLinkUser=Deshabilitar la característica para vincular un recurso a los usuarios DisabledResourceLinkContact=Deshabilitar la característica para vincular un recurso a contactos -EnableResourceUsedInEventCheck=Habilite la función para verificar si un recurso está en uso en un evento ConfirmUnactivation=Confirmar restablecimiento del módulo OnMobileOnly=Solo en pantalla pequeña (teléfono inteligente) MAIN_OPTIMIZEFORTEXTBROWSERDesc=Active esta opción si es una persona ciega o si usa la aplicación desde un navegador de texto como Lynx o Links. @@ -1442,12 +1429,10 @@ DeleteEmailCollector=Eliminar recopilador de correo electrónico ConfirmDeleteEmailCollector=¿Estás seguro de que deseas eliminar este recopilador de correo electrónico? RecipientEmailsWillBeReplacedWithThisValue=Los correos electrónicos del destinatario siempre serán reemplazados por este valor AtLeastOneDefaultBankAccountMandatory=Se debe definir al menos 1 cuenta bancaria predeterminada -RESTRICT_ON_IP=Permitir el acceso a alguna IP de host solamente (comodín no permitido, usar espacio entre valores). Vacío significa que todos los hosts pueden acceder. MakeAnonymousPing=Realice un Ping anónimo '+1' al servidor de la base Dolibarr (hecho 1 vez solo después de la instalación) para permitir que la base cuente la cantidad de instalación de Dolibarr. FeatureNotAvailableWithReceptionModule=Función no disponible cuando la recepción del módulo está habilitada EmailTemplate=Plantilla para correo electrónico EMailsWillHaveMessageID=Los correos electrónicos tendrán una etiqueta 'Referencias' que coincida con esta sintaxis JumpToBoxes=Vaya a Configuración -> Widgets Recommended=Recomendado -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 +InventorySetup=Configuración del inventario diff --git a/htdocs/langs/es_EC/assets.lang b/htdocs/langs/es_EC/assets.lang index eb82433ddde..0d5dcffd8bd 100644 --- a/htdocs/langs/es_EC/assets.lang +++ b/htdocs/langs/es_EC/assets.lang @@ -1,20 +1,7 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Bienes/Activos -AccountancyCodeAsset =Código de contabilidad (activo) -AccountancyCodeDepreciationAsset =Código de contabilidad (cuenta depreciación de activos) -AccountancyCodeDepreciationExpense =Código de contabilidad (cuenta depreciación de gastos) AssetsLines=Bienes DeleteType=Borrar ConfirmDeleteAssetType=¿Estás seguro de que quieres eliminar este tipo de activo? ShowTypeCard=Mostrar tipo '%s' -ModuleAssetsName =Bienes -ModuleAssetsDesc =Descripción de los activos -AssetsSetup =Configuración de activos -AssetsSetupPage =Página de configuración de activos AssetsTypeId=ID del tipo de activo AssetsTypeLabel=Etiqueta de tipo de activo -MenuAssets =Bienes -MenuNewAsset =Nuevo activo -MenuTypeAssets =Tipos de activos -MenuListAssets =Lista -MenuListTypeAssets =Lista diff --git a/htdocs/langs/es_EC/banks.lang b/htdocs/langs/es_EC/banks.lang index f392c42bff3..201bf247dd8 100644 --- a/htdocs/langs/es_EC/banks.lang +++ b/htdocs/langs/es_EC/banks.lang @@ -64,7 +64,6 @@ AddBankRecordLong=Añadir entrada manualmente Conciliated=Conciliado DateConciliating=Fecha de conciliación BankLineConciliated=Entrada conciliada con recibo bancario -Reconciled=Conciliado SupplierInvoicePayment=Pago del proveedor WithdrawalPayment=Orden de pago de débito SocialContributionPayment=Pago de impuestos sociales y fiscales diff --git a/htdocs/langs/es_EC/companies.lang b/htdocs/langs/es_EC/companies.lang index 2545618c56a..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 @@ -181,7 +180,6 @@ ListOfContactsAddresses=Lista de contactos / direcciones ListOfThirdParties=Lista de cliente/proveedor ShowContact=Dirección de contacto ContactsAllShort=Todos (Sin filtro) -ContactType=Tipo de Contacto ContactForOrders=Contacto del pedido ContactForOrdersOrShipments=Contacto de los pedidos o envíos ContactForProposals=Contacto de la propuesta diff --git a/htdocs/langs/es_EC/errors.lang b/htdocs/langs/es_EC/errors.lang index 16ec651f406..87dd8507320 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 @@ -188,7 +187,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 e70c7d299e8..f50b423e828 100644 --- a/htdocs/langs/es_EC/install.lang +++ b/htdocs/langs/es_EC/install.lang @@ -16,18 +16,12 @@ PHPMemoryOK=La memoria de sesión PHP max está configurada en%s. Esto de PHPMemoryTooLow=Su memoria de sesión de PHP max está configurada en %s bytes. Esto es demasiado bajo. Cambie su php.ini para establecer el parámetro memory_limit en al menos %sbytes. Recheck=Haga clic aquí para una prueba más detallada ErrorPHPDoesNotSupportSessions=Su instalación de PHP no soporta sesiones. Esta función es necesaria para permitir que Dolibarr funcione. Compruebe su configuración de PHP y permisos del directorio de sesiones. -ErrorPHPDoesNotSupportGD=Su instalación de PHP no soporta funciones gráficas de GD. No habrá gráficos disponibles. -ErrorPHPDoesNotSupportCurl=Su instalación de PHP no admite Curl. -ErrorPHPDoesNotSupportCalendar=Su instalación de PHP no admite extensiones de calendario php. -ErrorPHPDoesNotSupportUTF8=Su instalación de PHP no es compatible con las funciones UTF8. Dolibarr no puede funcionar correctamente. Resuelve esto antes de instalar Dolibarr. -ErrorPHPDoesNotSupportIntl=Su instalación de PHP no es compatible con las funciones Intl. ErrorPHPDoesNotSupport=Su instalación de PHP no es compatible con las funciones %s. ErrorDirDoesNotExists=El directorio%s no existe. 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". @@ -43,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/main.lang b/htdocs/langs/es_EC/main.lang index 7256f58d602..267de4cddeb 100644 --- a/htdocs/langs/es_EC/main.lang +++ b/htdocs/langs/es_EC/main.lang @@ -554,3 +554,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 893efc8178d..cef882cd636 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) @@ -80,7 +79,6 @@ MoreActions=Acción complementaria sobre la grabación MoreActionBankDirect=Crear una entrada directa en una cuenta bancaria MoreActionBankViaInvoice=Crear una factura y un pago en cuenta bancaria MoreActionInvoiceOnly=Crear una factura sin pago -LinkToGeneratedPages=Generar tarjetas de visita LinkToGeneratedPagesDesc=Esta pantalla le permite generar archivos PDF con tarjetas de visita para todos sus miembros o un miembro en particular. DocForAllMembersCards=Genere tarjetas de visita para todos los miembros DocForOneMemberCards=Generar tarjetas de visita para un miembro en particular diff --git a/htdocs/langs/es_EC/modulebuilder.lang b/htdocs/langs/es_EC/modulebuilder.lang index dde4b0a57d5..cd315043c08 100644 --- a/htdocs/langs/es_EC/modulebuilder.lang +++ b/htdocs/langs/es_EC/modulebuilder.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - modulebuilder -EnterNameOfModuleDesc=Introduzca el nombre del módulo/aplicación para crear sin espacios. Utilice mayúsculas para separar palabras (Por ejemplo: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Introduzca el nombre del objeto a crear sin espacios. Use mayúsculas para separar palabras (Por ejemplo: MyObject, Student, Teacher...). Se generará el archivo de clase CRUD, pero también archivos API, páginas para listar/agregar/editar/eliminar objetos y archivos SQL. ModuleBuilderDesc2=Ruta donde se generan / editan los módulos (primer directorio para módulos externos definidos en %s): %s ModuleBuilderDesc4=Un módulo se detecta como 'editable' cuando el archivo %sexiste en la raíz del directorio del módulo ObjectKey=Clave de objeto @@ -59,7 +57,6 @@ 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 este archivo manualmente 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 disponibles para los usuarios administradores en %s. DictionariesDefDescTooltip=Los diccionarios proporcionados por su módulo / aplicación se definen en la matriz $this->dictionaries en el archivo descriptor del módulo. Puede editar este archivo manualmente o usar 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 este archivo manualmente o usar 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 de módulo, el contexto de los ganchos que desea administrar (puede encontrar una lista de contextos mediante una búsqueda en 'initHooks(' en el código central) .
    Edite el archivo gancho para agregar el código de sus funciones enganchadas (las funciones que se conectan se pueden encontrar mediante una búsqueda en 'executeHooks' en el código central). @@ -69,7 +66,6 @@ ToolkitForDevelopers=Kit de herramientas para desarrolladores de Dolibarr TryToUseTheModuleBuilder=Si tiene conocimientos de SQL y PHP, puede usar el asistente de creación de módulos nativos.
    Habilite el módulo %s y use el asistente haciendo clic en el menú superior derecho.
    Advertencia: esta es una función avanzada para desarrolladores, no experimente en su sitio de producción ! SeeTopRightMenu=Ver en el menú superior derecho InitStructureFromExistingTable=Construya la estructura de la cadena matriz de una tabla existente -UseAboutPage=Deshabilitar la página acerca de UseDocFolder=Desactivar la carpeta de documentación. UseSpecificReadme=Use un archivo Léame específico RealPathOfModule=Camino real del módulo @@ -83,4 +79,3 @@ IncludeDocGenerationHelp=Si marca esto, se generará algún código para agregar ShowOnCombobox=Mostrar valor en el cuadro combinado KeyForTooltip=Clave para información sobre herramientas ForeignKey=Clave externa -TypeOfFieldsHelp=Tipo de campos:
    varchar(99), doble(24,8), real, texto, html, fecha y hora, marca de tiempo, entero, entero:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' significa que agregamos un botón + después del combo para crear el registro, 'filtro' puede ser 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' por ejemplo) 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/other.lang b/htdocs/langs/es_EC/other.lang index 12d22ae617b..1096fb97e5b 100644 --- a/htdocs/langs/es_EC/other.lang +++ b/htdocs/langs/es_EC/other.lang @@ -78,7 +78,6 @@ ChooseYourDemoProfilMore=...o crear su propio perfil
    (selección manual de m DemoFundation=Administrar miembros de una fundación DemoFundation2=Administrar miembros y cuenta bancaria de una fundación DemoCompanyServiceOnly=Empresa o servicio de venta independiente solamente -DemoCompanyShopWithCashDesk=Administrar una tienda con una caja DemoCompanyAll=Empresa con múltiples actividades (todos los módulos principales) ModifiedBy=Modificado por%s ValidatedBy=Validado por%s diff --git a/htdocs/langs/es_EC/projects.lang b/htdocs/langs/es_EC/projects.lang index 7085e7a4da2..7ac28478c77 100644 --- a/htdocs/langs/es_EC/projects.lang +++ b/htdocs/langs/es_EC/projects.lang @@ -4,7 +4,6 @@ ProjectId=Id del proyecto ProjectLabel=Etiqueta del proyecto ProjectsArea=Área de Proyectos SharedProject=Todos -PrivateProject=Contactos del proyecto AllAllowedProjects=Todo el proyecto que puedo leer (mio + público) ProjectsPublicDesc=Esta vista presenta todos los proyectos que se le permite leer. TasksOnProjectsPublicDesc=Esta vista presenta todas las tareas de los proyectos que se le permite leer. @@ -166,7 +165,7 @@ 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 +ServiceToUseOnLines=Service to use on lines by default 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/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 237f6e69e58..657aba67728 100644 --- a/htdocs/langs/es_EC/ticket.lang +++ b/htdocs/langs/es_EC/ticket.lang @@ -16,9 +16,6 @@ MailToSendTicketMessage=Para enviar un correo electrónico desde un ticket TicketPublicAccess=Una interfaz pública que no requiere identificación está disponible en la siguiente URL TicketSetupDictionaries=El tipo de ticket, prioridad y códigos analíticos son configurables desde los diccionarios. TicketParamMail=Configuración de correo electrónico -TicketEmailNotificationFrom=Correo electrónico de notificación de -TicketEmailNotificationTo=Notificaciones de correo electrónico a -TicketEmailNotificationToHelp=Envíe una notificación por correo electrónico a esta dirección. TicketNewEmailBodyHelp=El texto especificado aquí se inserta 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. TicketsEmailMustExist=Requerir una dirección de correo electrónico existente para crear un Ticket TicketsEmailMustExistHelp=En la interfaz pública, la dirección de correo electrónico ya está disponible en la base de datos para crear un nuevo ticket. @@ -68,10 +65,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á. -TicketMessageMailIntroLabelAdmin=Introducción al mensaje cuando se envía un correo electrónico -TicketMessageMailIntroText=Hola,
    Se envió una nueva respuesta en un ticket que contactaste. Aquí está el mensaje:
    TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. -TicketMessageMailSignatureText=

    Sinceramente,

    --

    TicketMessageMailSignatureLabelAdmin=Firma del correo electrónico de respuesta TicketMessageMailSignatureHelpAdmin=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. @@ -101,7 +95,6 @@ PleaseRememberThisId=Por favor, mantenga el número de seguimiento que podríamo TicketNewEmailBody=Este es un correo electrónico automático para confirmar que ha registrado un nuevo ticket. TicketNewEmailBodyCustomer=Este es un correo electrónico automático para confirmar que se acaba de crear un nuevo ticket en su cuenta. TicketNewEmailBodyInfosTicket=Información para monitorear el boleto -TicketNewEmailBodyInfosTrackUrl=Puede ver el progreso del ticket haciendo clic en el enlace de arriba. 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. diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index e2c4f573641..93133071f7b 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 @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=Cuenta contable para subscripciones AccountancyArea=Área contabilidad AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos: AccountancyAreaDescActionOnce=Las siguientes acciones se ejecutan normalmente una sola vez, o una vez al año... -AccountancyAreaDescActionOnceBis=Los pasos siguientes deben hacerse para ahorrar tiempo en el futuro, sugiriendo la cuenta contable predeterminada correcta para realizar los diarios (escritura de los registros en los diarios y el Libro Mayor) +AccountancyAreaDescActionOnceBis=Se deben realizar los siguientes pasos para ahorrarle tiempo en el futuro al sugerirle automáticamente la cuenta contable predeterminada correcta al transferir datos en la contabilidad. AccountancyAreaDescActionFreq=Las siguientes acciones se ejecutan normalmente cada mes, semana o día en empresas muy grandes... -AccountancyAreaDescJournalSetup=PASO %s: Cree o compruebe el contenido de sus diarios desde el menu %s +AccountancyAreaDescJournalSetup=PASO %s: verifique el contenido de su lista de diarios desde el menú %s AccountancyAreaDescChartModel=PASO %s: Verifique que exista un modelo de plan de cuenta o cree uno desde el menú %s AccountancyAreaDescChart=PASO %s: Seleccione y/o complete su plan de cuenta desde el menú %s AccountancyAreaDescVat=PASO %s: Defina las cuentas contables para cada tasa de IVA. Para ello puede usar el menú %s. AccountancyAreaDescDefault=PASO %s: Defina las cuentas contables predeterminadas. Para ello puede utilizar el menú %s. -AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas contables para los informes de gastos. Para ello puede utilizar el menú %s. +AccountancyAreaDescExpenseReport=PASO %s: Definir cuentas contables predeterminadas para cada tipo de informe de gastos. Para ello, utilice la entrada de menú %s. AccountancyAreaDescSal=PASO %s: Defina las cuentas contables para los pagos de salarios. Para ello puede utilizar el menú %s. -AccountancyAreaDescContrib=PASO %s: Defina las cuentas contables de los gastos especiales (impuestos varios). Para ello puede utilizar el menú %s. +AccountancyAreaDescContrib=PASO %s: Definir cuentas contables por defecto para Impuestos (gastos especiales). Para ello, utilice la entrada de menú %s. AccountancyAreaDescDonation=PASO %s: Defina las cuentas contables para las donaciones. Para ello puede utilizar el menú %s. AccountancyAreaDescSubscription=PASO %s: Defina las cuentas contables para las subscripciones. Para ello puede utilizar el menú %s. AccountancyAreaDescMisc=PASO %s: Defina las cuentas contables para registros varios. Para ello puede utilizar el menú %s. AccountancyAreaDescLoan=PASO %s: Defina las cuentas contables para los préstamos. Para ello puede utilizar el menú %s.\n AccountancyAreaDescBank=PASO %s: Defina las cuentas contables para cada banco y cuentas financieras. Puede empezar desde la página %s. -AccountancyAreaDescProd=PASO %s: Defina las cuentas contables en sus productos. Para ello puede utilizar el menú %s. +AccountancyAreaDescProd=PASO %s: Defina cuentas contables en sus Productos/Servicios. Para ello, utilice la entrada de menú %s. AccountancyAreaDescBind=PASO %s: Compruebe que los enlaces entre las líneas %s existentes y las cuentas contables es correcta, 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: Escribir las transacciones en el Libro Mayor. Para ello, entre en el menú %s, y haga clic en el botón %s. @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Contabilizar informes de gastos CreateMvts=Crear nuevo movimiento UpdateMvts=Modificar transacción ValidTransaction=Transacción validada -WriteBookKeeping=Registrar transacciones en contabilidad +WriteBookKeeping=Registrar transacciones en contabilidad. Bookkeeping=Libro Mayor BookkeepingSubAccount=Libro mayor auxiliar AccountBalance=Saldo de la cuenta @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Cuenta contable para registrar donaciones ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar subscripciones ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Cuenta contable por defecto para registrar el anticipo del cliente +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=Cuenta contable por defecto para registrar depósito de proveedor +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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=Por grupos predefinidos ByPersonalizedAccountGroups=Por grupos personalizados ByYear=Por año NotMatch=No establecido -DeleteMvt=Eliminar algunas líneas de operación de la contabilidad +DeleteMvt=Eliminar algunas líneas de la contabilidad DelMonth=Mes a eliminar DelYear=Año a eliminar DelJournal=Diario a eliminar -ConfirmDeleteMvt=Esto eliminará todas las líneas de operación de la contabilidad para el año / mes y / o para un diario específico (se requiere al menos un criterio). Tendrá que reutilizar la función '%s' para que el registro eliminado vuelva al libro mayor. -ConfirmDeleteMvtPartial=Esto eliminará la transacción de la contabilidad (se eliminarán todas las líneas de operación relacionadas con la misma transacción) +ConfirmDeleteMvt=Esto eliminará todas las líneas de contabilidad para el año/mes y/o para un diario específico (se requiere al menos un criterio). Tendrá que reutilizar la función '%s' para que el registro eliminado vuelva a estar en el libro mayor. +ConfirmDeleteMvtPartial=Esto eliminará la transacción de la contabilidad (se eliminarán todas las líneas relacionadas con la misma transacción) FinanceJournal=Diario financiero ExpenseReportsJournal=Diario informe de gastos DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria @@ -278,30 +282,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=Consulte aquí el número de movimientos por mes que no están validados y los años fiscales ya abiertos -OverviewOfMovementsNotValidated=Paso 1 / Resumen de movimientos no validados. (Necesario para cerrar un año fiscal) -AllMovementsWereRecordedAsValidated=Todos los movimientos se registraron como validados -NotAllMovementsCouldBeRecordedAsValidated=No todos los movimientos pueden registrarse como validados -ValidateMovements=Validar movimientos +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 registro... 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=Asiento contabilizado incorrectamente. Debe=%s. Haber=%s +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 hay más registros para el diario +NoNewRecordSaved=No más registros para transferir ListOfProductsWithoutAccountingAccount=Listado de productos sin cuentas contables 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 operaciones sin una cuenta de libro mayor auxiliar definida se filtran y excluyen de esta vista +WarningRecordWithoutSubledgerAreExcluded=Advertencia, todas las líneas sin cuenta de libro mayor auxiliar definida se filtran y excluyen de esta vista +AccountRemovedFromCurrentChartOfAccount=Cuenta contable que no existe en el plan de cuentas actual ## Admin BindingOptions=Opciones de enlace @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deshabilitar la vinculación y transfere 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) ## Export -NotifiedExportDate=Líneas marcadas como exportadas (no será posible modificar las líneas) -NotifiedValidationDate=Entradas exportadas validadas (no será posible modificar o borrar las líneas) +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=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 Modelcsv=Modelo de exportación @@ -394,6 +400,21 @@ Range=Rango de cuenta contable Calculated=Calculado Formula=Fórmula +## Reconcile +Unlettering=No reconciliar +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=Confirmación masiva de no conciliación +ConfirmMassUnletteringQuestion=¿Está seguro de que desea anular la conciliación de los registros seleccionados %s? +ConfirmMassDeleteBookkeepingWriting=Confirmación de borrado en lote +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. ErrorNoAccountingCategoryForThisCountry=No hay grupos contables disponibles para %s (Vea Inicio - Configuración - Diccionarios) @@ -406,6 +427,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=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 diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 4e31c89e5e3..224ab677fd3 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/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=Imprimir referencia y periodo del artículo del producto en PDF +BoldLabelOnPDF=Imprimir la etiqueta del artículo del producto en negrita en PDF Foundation=Fundación Version=Versión Publisher=Editor @@ -109,7 +109,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 @@ -477,7 +477,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 @@ -504,7 +504,7 @@ WarningPHPMailC=- El uso del servidor SMTP de su propio proveedor de servicios d 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. 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 @@ -714,13 +714,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=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). También puede introducir tiempos consumidos, para mí o mis subordinados, en tareas asignadas (Hojas de tiempo). -Permission42=Crear/modificar proyectos (proyectos compartidos y proyectos de los que soy contacto). También puede crear tareas y asignar usuarios a proyectos y tareas -Permission44=Eliminar proyectos (compartidos o soy contacto) +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 +740,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,9 +768,10 @@ Permission122=Crear/modificar empresas Permission125=Eliminar empresas Permission126=Exportar las empresas Permission130=Crear/modificar información de pago de terceros -Permission141=Leer todos los proyectos y tareas (incluidos proyectos privados de los que no soy contacto) -Permission142=Leer todos los proyectos y tareas (incluidos proyectos privados de los que no soy contacto) -Permission144=Eliminar todos los proyectos y tareas (incluidos los proyectos privados de los que no soy contacto) +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 @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Registrar Abonos/Devoluciones de transferencias bancarias Permission601=Leer etiquetas autoadhesivas Permission602=Crear/modificar etiquetas autoadhesivas Permission609=Eliminar etiquetas autoadhesivas +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 @@ -969,6 +976,8 @@ Permission4021=Crear/modificar tu evaluación Permission4022=Validar evaluación Permission4023=Eliminar evaluación Permission4030=Ver menú de comparación +Permission4031=Leer información personal +Permission4032=escribir información personal 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Informe de gastos - Categorías de transporte DictionaryExpenseTaxRange=Informe de gastos - Rango por categoría de transporte DictionaryTransportMode=Informe intracomunitario - Modo de transporte DictionaryBatchStatus=Estado del Control de Calidad del lote/serie del producto +DictionaryAssetDisposalType=Tipo de disposición de activos TypeOfUnit=Tipo de unidad SetupSaved=Configuración guardada SetupNotSaved=Configuración no guardada @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Módulo cuentas bancarias no activado ShowBugTrackLink=Mostrar el enlace "%s" ShowBugTrackLinkDesc=Mantener vacío para no mostrar este enlace, use el valor 'github' para el enlace al proyecto Dolibarr o defina directamente una URL 'https://...' Alerts=Alertas -DelaysOfToleranceBeforeWarning=Retraso antes de mostrar una alerta de advertencia para: +DelaysOfToleranceBeforeWarning=Mostrando una alerta de advertencia para... DelaysOfToleranceDesc=Esta pantalla permite configura los retrasos antes de que se alerte con el símbolo %s, sobre cada elemento en retraso. Delays_MAIN_DELAY_ACTIONS_TODO=Eventos planeados (eventos de agenda) no completados Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Proyecto no cerrado a tiempo @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,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=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:
    @@ -1420,6 +1432,8 @@ 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=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. ##### Proposals ##### PropalSetup=Configuración del módulo Presupuestos ProposalsNumberingModules=Módulos de numeración de presupuestos @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=La instalación o construcción de un módulo externo 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=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 @@ -1925,7 +1940,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 @@ -1938,7 +1953,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=Nombre del icono en formato dolibarr ('image.png' si está en el directorio del tema actual, 'image.png@nombre_del_modulo' si está en el directorio /img/ de un módulo) +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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Pedidos a proveedor MailToSendSupplierInvoice=Facturas proveedor MailToSendContract=Contratos MailToSendReception=Recepciones +MailToExpenseReport=Gastos MailToThirdparty=Terceros MailToMember=Miembros MailToUser=Usuarios @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtro Regex para limpiar el valor (COMPANY_AQUARIU COMPANY_DIGITARIA_CLEAN_REGEX=Filtro de expresiones regulares para limpiar el valor (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicado no permitido GDPRContact=Oficina Protección de datos (DPO, Políticas de privacidad o contacto GDPR) -GDPRContactDesc=Si almacena datos sobre empresas/ciudadanos europeos, puede almacenar aquí el contacto responsable del Reglamento general de protección de datos +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 @@ -2048,27 +2065,46 @@ 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 CollectNow=Recoger ahora -ConfirmCloneEmailCollector=¿Está seguro de que desea clonar el recolector de e-mails %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=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=¿Desea ejecutar la recolección de este recolector ahora? +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 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. +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=Crear un ticket (vinculado a un tercero si el tercero fue cargado por una operación anterior, sin ningún tercero en caso contrario) +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) @@ -2082,14 +2118,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=Habilitar verificación si un recurso está en uso en un evento +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) @@ -2134,7 +2170,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=Permitir el acceso a alguna IP del host solamente (comodín no permitido, usar espacio entre valores) Vacío significa que todos los hosts pueden acceder. +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 @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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 @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Desactivar la vista para los miembros DashboardDisableBlockExpenseReport=Desactive la vista para los informes de gastos DashboardDisableBlockHoliday=Desactivar la vista para los días libres EnabledCondition=Condición para tener el campo habilitado (si no está habilitado, la visibilidad siempre estará desactivada) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si desea utilizar un segundo impuesto, debe habilitar también el primer impuesto a las ventas -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si desea utilizar un tercer impuesto, debe habilitar también el primer impuesto a la venta +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si desea utilizar un segundo impuesto, debe habilitar también el primer impuesto sobre las ventas +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si desea utilizar un tercer impuesto, debe habilitar también el primer impuesto sobre las ventas LanguageAndPresentation=Idioma y presentación SkinAndColors=Tema y colores -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si desea utilizar un segundo impuesto, debe habilitar también el primer impuesto a las ventas -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si desea utilizar un tercer impuesto, debe habilitar también el primer impuesto a la venta +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si desea utilizar un segundo impuesto, debe habilitar también el primer impuesto sobre las ventas +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si desea utilizar un tercer impuesto, debe habilitar también el primer impuesto sobre las ventas PDF_USE_1A=Generar PDF con formato PDF/A-1b MissingTranslationForConfKey = Falta traducción para %s NativeModules=Módulos nativos @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Deshabilitar la compresión de las respuestas de la API EachTerminalHasItsOwnCounter=Cada terminal utiliza su propio contador. FillAndSaveAccountIdAndSecret=Rellene y guarde el ID de la cuenta y el secreto primero PreviousHash=Hash previo +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. + +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 +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 diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 1fe68c9566f..c30e322d064 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contrato %s eliminado PropalClosedSignedInDolibarr=Presupuesto %s firmado PropalClosedRefusedInDolibarr=Presupuesto %s rechazado PropalValidatedInDolibarr=Presupuesto %s validado +PropalBackToDraftInDolibarr=Propuesta %s volver al estado de borrador PropalClassifiedBilledInDolibarr=Presupuesto %s clasificado facturado InvoiceValidatedInDolibarr=Factura %s validada InvoiceValidatedInDolibarrFromPos=Factura %s validada desde TPV @@ -56,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 @@ -66,6 +68,7 @@ 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=Recepción %s clasificado cerrado OrderCreatedInDolibarr=Pedido %s creado OrderValidatedInDolibarr=Pedido %s validado OrderDeliveredInDolibarr=Pedido %s clasificado como enviado @@ -121,7 +124,7 @@ MRP_MO_VALIDATEInDolibarr=OF validada MRP_MO_UNVALIDATEInDolibarr=OF establecida en estado de borrador MRP_MO_PRODUCEDInDolibarr=OF fabricada MRP_MO_DELETEInDolibarr=OF eliminada -MRP_MO_CANCELInDolibarr=OF candelada +MRP_MO_CANCELInDolibarr=OF cancelada PAIDInDolibarr=%s pagado ##### End agenda events ##### AgendaModelModule=Plantillas de documentos para eventos @@ -157,6 +160,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 @@ -172,3 +176,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/banks.lang b/htdocs/langs/es_ES/banks.lang index a03281116b3..cf9b1648f10 100644 --- a/htdocs/langs/es_ES/banks.lang +++ b/htdocs/langs/es_ES/banks.lang @@ -95,11 +95,11 @@ LineRecord=Registro AddBankRecord=Añadir registro AddBankRecordLong=Añadir registro manual Conciliated=Reconciliado -ConciliatedBy=Conciliado por +ReConciliedBy=Conciliado por DateConciliating=Fecha conciliación BankLineConciliated=Registro conciliado con recibo bancario -Reconciled=Reconciliado -NotReconciled=No reconciliado +BankLineReconciled=Reconciliado +BankLineNotReconciled=No reconciliado CustomerInvoicePayment=Cobro a cliente SupplierInvoicePayment=Pago a proveedor SubscriptionPayment=Pago cuota @@ -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=Cierre de caja del POS -NewCashFence=Nueva apertura o cierre de caja +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 @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty=Si no realiza las conciliaciones bancarias en 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=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 6e50598e0f3..55debd7c8d7 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Informes de pagos PaymentsAlreadyDone=Pagos efectuados PaymentsBackAlreadyDone=Reembolsos ya realizados PaymentRule=Forma de pago -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Forma de pago +PaymentModes=Métodos de pago +DefaultPaymentMode=Método de pago por defecto DefaultBankAccount=Cuenta bancaria predeterminada -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Forma de pago (id) +CodePaymentMode=Método de pago (código) +LabelPaymentMode=Método de pago (etiqueta) +PaymentModeShort=Método de pago PaymentTerm=Condición de pago PaymentConditions=Condiciones de pago PaymentConditionsShort=Condiciones de pago @@ -156,6 +156,7 @@ 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: 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 ActionsOnBill=Eventos sobre la factura @@ -282,6 +283,8 @@ RecurringInvoices=Facturas recurrentes RecurringInvoice=Factura recurrente RepeatableInvoice=Plantilla de factura RepeatableInvoices=Plantilla de facturas +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 @@ -426,14 +429,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 @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Pago mediante cheque nominativo a SendTo=enviado a PaymentByTransferOnThisBankAccount=Pago mediante transferencia a la cuenta bancaria siguiente VATIsNotUsedForInvoice=* IVA no aplicable art-293B del CGI +VATIsNotUsedForInvoiceAsso=* IVA no aplicable art-261-7 del CGI LawApplicationPart1=Por aplicación de la ley 80.335 de 12/05/80 LawApplicationPart2=las mercancías permanecen en propiedad de LawApplicationPart3=vendedor hasta el completo cobro de @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Factura de proveedor eliminada UnitPriceXQtyLessDiscount=Precio unitario x Cantidad - Descuento CustomersInvoicesArea=Área de facturación a clientes SupplierInvoicesArea=Área de facturación de proveedores -FacParentLine=Línea de factura principal SituationTotalRayToRest=Resto a pagar sin impuestos PDFSituationTitle=Situación n ° %d SituationTotalProgress=Progreso total %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Buscar facturas impagas con una fecha de vencimi NoPaymentAvailable=No hay pago disponible para %s PaymentRegisteredAndInvoiceSetToPaid=Pago registrado y factura %s marcada como pagada 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) 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..7e6988c40c8 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 diff --git a/htdocs/langs/es_ES/cashdesk.lang b/htdocs/langs/es_ES/cashdesk.lang index c36b1b94ade..0204a62b549 100644 --- a/htdocs/langs/es_ES/cashdesk.lang +++ b/htdocs/langs/es_ES/cashdesk.lang @@ -51,7 +51,7 @@ AmountAtEndOfPeriod=Importe al final del período (día, mes o año) TheoricalAmount=Importe teórico RealAmount=Importe real CashFence=Cierre de caja -CashFenceDone=Cierre de caja realizado para el período. +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=Abra la ventana emergente "Controlar efectivo" al abrir el POS -CloseCashFence=Control de cierre de caja +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 @@ -133,4 +133,7 @@ SplitSale=Venta dividida PrintWithoutDetailsButton=Agregar botón "Imprimir sin detalles" PrintWithoutDetailsLabelDefault=Etiqueta de línea por defecto al imprimir sin detalles PrintWithoutDetails=Imprimir sin detalles -YearNotDefined=Year is not defined +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/companies.lang b/htdocs/langs/es_ES/companies.lang index e84430a5eca..e12c0e84e1f 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Área de prospección IdThirdParty=ID tercero IdCompany=Id empresa IdContact=Id contacto +ThirdPartyAddress=Dirección de terceros ThirdPartyContacts=Contactos terceros ThirdPartyContact=Contactos/direcciones terceros Company=Empresa @@ -51,19 +52,22 @@ CivilityCode=Código cortesía RegisteredOffice=Domicilio social Lastname=Apellidos Firstname=Nombre +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 @@ -102,6 +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=Código de barras de precio ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,15 +164,15 @@ 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=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=Nº de decreto de creación +ProfId4ShortCM=Certificado de depósito No. +ProfId5ShortCM=Otros ProfId6ShortCM=- ProfId1CO=R.U.T. ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Listado de terceros ShowCompany=Tercero ShowContact=Contacto/Dirección ContactsAllShort=Todos (sin filtro) -ContactType=Tipo de contacto +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 7211e872229..333d853061c 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -146,9 +146,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 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=¿Está seguro de que desea eliminar este salario? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=tasas sociales y fiscales y pagos CalcModeVATDebt=Modo %sIVA sobre facturas emitidas%s. CalcModeVATEngagement=Modo %sIVA sobre facturas cobradas%s. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Volumen de compras facturado ReportPurchaseTurnoverCollected=Volumen de compras pagadas IncludeVarpaysInResults = Incluir varios pagos en informes IncludeLoansInResults = Incluir préstamos en informes -InvoiceLate30Days = Facturas atrasadas (> 30 días) -InvoiceLate15Days = Facturas atrasadas (de 15 a 30 días) -InvoiceLateMinus15Days = Facturas atrasadas (< 15 días) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = A cobrar (< 15 días) InvoiceNotLate15Days = A cobrar (de 15 a 30 días) InvoiceNotLate30Days = A cobrar(>30 días) diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index cba521d8f83..b1ac1c7ff3d 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=El correo electrónico %s parece incorrecto (el dominio no tien ErrorBadUrl=La URL %s es incorrecta ErrorBadValueForParamNotAString=Valor incorrecto para su parámetro. Generalmente aparece cuando no existe traducción. ErrorRefAlreadyExists=La referencia %s ya existe. +ErrorTitleAlreadyExists=El título %s ya existe. ErrorLoginAlreadyExists=El login %s ya existe. ErrorGroupAlreadyExists=El grupo %s ya existe. ErrorEmailAlreadyExists=El correo electrónico %s ya existe. @@ -48,7 +49,7 @@ ErrorBadDateFormat=El valor '%s' tiene un formato de fecha no reconocido ErrorWrongDate=¡La fecha no es correcta! ErrorFailedToWriteInDir=Imposible escribir en el directorio %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 items de Dolibarr +ErrorUserCannotBeDelete=No puede eliminarse el usuario. Es posible que esté asociado a ítems de Dolibarr ErrorFieldsRequired=Algunos campos obligatorios se han dejado en blanco. ErrorSubjectIsRequired=El asunto del correo electrónico es obligatorio. ErrorFailedToCreateDir=Error en la creación de un directorio. Compruebe que el usuario del servidor Web tiene derechos de escritura en los directorios de documentos de Dolibarr. Si el parámetro safe_mode está activo en este PHP, Compruebe que los archivos php Dolibarr pertenecen al usuario del servidor Web. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Ya existe otro archivo con el nombre %s . ErrorPartialFile=Archivo no recibido íntegramente por el servidor. ErrorNoTmpDir=Directorio temporal de recepción %s inexistente ErrorUploadBlockedByAddon=Subida bloqueada por un plugin PHP/Apache. -ErrorFileSizeTooLarge=El tamaño del fichero es demasiado grande. +ErrorFileSizeTooLarge=El tamaño del archivo es demasiado grande o no se ha proporcionado el archivo. ErrorFieldTooLong=El campo %s es demasiado largo. ErrorSizeTooLongForIntType=Longitud del campo demasiado largo para el tipo int (máximo %s cifras) ErrorSizeTooLongForVarcharType=Longitud del campo demasiado largo para el tipo cadena (máximo %s cifras) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=%s errores encontrados @@ -269,19 +271,31 @@ 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, request too large +ErrorRequestTooLarge=Error, solicitud demasiado grande +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, 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 # 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. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Valor no válido diff --git a/htdocs/langs/es_ES/eventorganization.lang b/htdocs/langs/es_ES/eventorganization.lang index 8ea50dc2eb1..6b69256cb59 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. @@ -59,6 +60,8 @@ 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 @@ -138,6 +141,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 @@ -165,3 +169,4 @@ EmailCompanyForInvoice=E-mailde la empresa (para la factura, si es diferente del 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 9efcdbaae44..06a1de08316 100644 --- a/htdocs/langs/es_ES/exports.lang +++ b/htdocs/langs/es_ES/exports.lang @@ -53,8 +53,8 @@ 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=Descargar archivo de plantilla con información de contenido de campo -StarAreMandatory=* son campos obligatorios +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=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 @@ -135,3 +135,6 @@ NbInsert=Número de líneas añadidas: %s NbUpdate=Número de líneas actualizadas: %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: 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 3c85886b605..a547fdfe6b7 100644 --- a/htdocs/langs/es_ES/install.lang +++ b/htdocs/langs/es_ES/install.lang @@ -8,6 +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=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 @@ -16,13 +17,6 @@ PHPMemoryOK=Su memoria máxima de sesión PHP esta definida a %s. Esto de PHPMemoryTooLow=Su memoria máxima de sesión PHP está definida en %s bytes. Esto es muy poco. Se recomienda modificar el parámetro memory_limit de su archivo php.ini a por lo menos %s bytes. Recheck=Haga click aquí para realizar un test más exhaustivo ErrorPHPDoesNotSupportSessions=Su instalación PHP no soporta las sesiones. Esta funcionalidad es necesaria para hacer funcionar a Dolibarr. Compruebe su configuración de PHP y los permisos del directorio de sesiones. -ErrorPHPDoesNotSupportGD=Este PHP no soporta las funciones gráficas GD. Ningún gráfico estará disponible. -ErrorPHPDoesNotSupportCurl=Su PHP no soporta Curl. -ErrorPHPDoesNotSupportCalendar=Su instalación de PHP no admite extensiones de calendario. -ErrorPHPDoesNotSupportUTF8=Este PHP no soporta las funciones UTF8. Resuelva el problema antes de instalar Dolibarr ya que no podrá funcionar correctamente. -ErrorPHPDoesNotSupportIntl=Este PHP no soporta las funciones Intl. -ErrorPHPDoesNotSupportMbstring=Su instalación de PHP no admite funciones mbstring. -ErrorPHPDoesNotSupportxDebug=Su instalación de PHP no admite funciones de depuración ampliadas. ErrorPHPDoesNotSupport=Su instalación de PHP no soporta las funciones %s. ErrorDirDoesNotExists=El directorio %s no existe o no es accesible. ErrorGoBackAndCorrectParameters=Vuelva atrás y corrija los parámetros inválidos... @@ -30,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/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..a40c0739249 100644 --- a/htdocs/langs/es_ES/loan.lang +++ b/htdocs/langs/es_ES/loan.lang @@ -24,7 +24,7 @@ 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 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 80bbe511acf..2af1c00c5cf 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=, @@ -244,6 +250,7 @@ Designation=Descripción DescriptionOfLine=Descripción de línea DateOfLine=Fecha de la línea DurationOfLine=Duración de la línea +ParentLine=ID de línea principal Model=Plantilla documento DefaultModel=Plantilla por defecto Action=Acción @@ -517,6 +524,7 @@ or=o Other=Otro Others=Otros OtherInformations=Otra información +Workflow=Flujo de trabajo Quantity=Cantidad Qty=Cant. ChangedBy=Modificado por @@ -558,7 +566,7 @@ NoneF=Ninguna NoneOrSeveral=Ninguno o varios Late=Retraso LateDesc=El retraso que indica si un registro lleva retraso o no depende de la configuración del menú Inicio - Configuración - Alertas. -NoItemLate=Sin items en retraso +NoItemLate=Sin ítems en retraso Photo=Foto Photos=Fotos AddPhoto=Añadir foto @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Archivos y documentos adjuntos JoinMainDoc=Unir al documento principal +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 @@ -643,8 +652,8 @@ FindBug=Reportar un error NbOfThirdParties=Número de terceros NbOfLines=Números de líneas NbOfObjects=Número de objetos -NbOfObjectReferers=Nª de items relacionados -Referers=Items relacionados +NbOfObjectReferers=Nª de ítems relacionados +Referers=Ítems relacionados TotalQuantity=Cantidad total DateFromTo=De %s a %s DateFrom=A partir de %s @@ -709,6 +718,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 @@ -1164,3 +1174,16 @@ NotClosedYet=Aún no cerrado ClearSignature=Restablecer firma CanceledHidden=Ocultar cancelado CanceledShown=Mostrar cancelado +Terminate=Cancelar +Terminated=De baja +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=Representantes de ventas afectados +CommercialAffected=Representante de ventas afectado +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 diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang index 0cf50a0968a..d18c1e0136b 100644 --- a/htdocs/langs/es_ES/members.lang +++ b/htdocs/langs/es_ES/members.lang @@ -15,7 +15,7 @@ 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=Tarjetas de visita para miembros +MembersCards=Generación de tarjetas para socios MembersList=Listado de miembros MembersListToValid=Listado de miembros borrador (a validar) MembersListValid=Listado de miembros validados @@ -35,7 +35,8 @@ DateEndSubscription=Fecha fin afiliación EndSubscription=Fin afiliación SubscriptionId=ID afiliación WithoutSubscription=Sin suscripción -MemberId=ID miembro +MemberId=Miembro ID +MemberRef=Ref de miembro NewMember=Nuevo miembro MemberType=Tipo de miembro MemberTypeId=ID tipo de miembro @@ -159,11 +160,11 @@ HTPasswordExport=Generación archivo htpassword NoThirdPartyAssociatedToMember=Ningún tercero asociado a este miembro MembersAndSubscriptions=Miembros y afiliaciones MoreActions=Acción complementaria al registro -MoreActionsOnSubscription=Acciones complementarias propuestas por defecto en la afiliación de un miembro +MoreActionsOnSubscription=Acción complementaria sugerida por defecto al registrar una contribución, también se realiza automáticamente en el pago en línea de una contribución 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=Generación de tarjetas de presentación +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 @@ -218,3 +219,5 @@ 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 diff --git a/htdocs/langs/es_ES/modulebuilder.lang b/htdocs/langs/es_ES/modulebuilder.lang index b88b64d930d..12f0fb3e1b9 100644 --- a/htdocs/langs/es_ES/modulebuilder.lang +++ b/htdocs/langs/es_ES/modulebuilder.lang @@ -1,14 +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=Introduce el nombre del módulo/aplicación a crear sin espacios. Utilice mayúsculas para separar palabras (Por ejemplo: MiModulo, EcommerceParaTienda, SincronizarConMiSistema...) -EnterNameOfObjectDesc=Introduce el nombre del objeto a crear sin espacios. Usa mayúsculas para separar palabras (Por ejemplo: MiObjeto, Estudiante, Profesor...). El archivo de clase CRUD, pero también archivo API, páginas para listar/añadir/editar/eliminar objetos y archivos SQL serán generados. +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=Nuevo diccionario ModuleKey=Clave del módulo ObjectKey=Clave del objeto +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) @@ -52,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=Establecer la base de datos en NOT NULL. -1=Permitir valores nulos y forzar valor a NULL si está vacío ('' o 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 @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destruya la tabla si está vacía) TableDoesNotExists=La tabla %s no existe TableDropped=Tabla %s eliminada InitStructureFromExistingTable=Construir la estructura de array de una tabla existente -UseAboutPage=Desactivar la página acerca de +UseAboutPage=No generar la página Acerca de UseDocFolder=Desactivar directorio de documentación UseSpecificReadme=Usar un archivo Léame específico ContentOfREADMECustomized=Nota: El contenido del archivo README.md ha sido reemplazado por el valor específico definido en la configuración de ModuleBuilder. @@ -127,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=La referencia del objeto debe generarse automáticamente -IncludeRefGenerationHelp=Marque esto si desea incluir código para gestionar la generación automática de la referencia -IncludeDocGeneration=Quiero generar algunos documentos del objeto. +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 @@ -144,4 +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=Ponga 1 si este campo necesita ser validado con $this->validateField() o 0 si se requiere validación +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=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 030da32d5aa..f7567b70703 100644 --- a/htdocs/langs/es_ES/mrp.lang +++ b/htdocs/langs/es_ES/mrp.lang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=Por una cantidad para desmontar de %s ConfirmValidateMo=¿Está seguro de querer validar esta orden de fabricación? ConfirmProductionDesc=Al hacer clic en '%s', validará el consumo y/o la producción de las cantidades establecidas. También se actualizará el stock y registrará los movimientos de stock. ProductionForRef=Producción de %s +CancelProductionForRef=Cancelación de decremento de stock de producto para producto %s +TooltipDeleteAndRevertStockMovement=Eliminar línea y revertir movimiento de stock AutoCloseMO=Cierre automáticamente la orden de fabricación si se alcanzan las cantidades para consumir y producir NoStockChangeOnServices=Sin cambio de stock en servicios ProductQtyToConsumeByMO=Cantidad de producto aún por consumir por MO abierto @@ -107,3 +109,6 @@ 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 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 7d9c4356d72..93be155cdcd 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -110,7 +110,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=Gestión de una tienda con caja +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) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Seleccione un objeto para ver sus estadísticas . 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 / 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/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 891363b0885..c82be3e68e5 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=Contactos proyecto +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 @@ -188,8 +188,9 @@ DocumentModelBaleine=Plantilla de informe del proyecto para tareas DocumentModelTimeSpent=Plantilla de informe de proyecto para el tiempo dedicado PlannedWorkload=Carga de trabajo prevista PlannedWorkloadShort=Carga de trabajo -ProjectReferers=Items relacionados +ProjectReferers=Ítems relacionados ProjectMustBeValidatedFirst=El proyecto debe validarse primero +MustBeValidatedToBeSigned=%s debe validarse primero para configurarse como Firmado. FirstAddRessourceToAllocateTime=Asignar un recurso de usuario como contacto del proyecto para asignar tiempo InputPerDay=Entrada por día InputPerWeek=Entrada por semana @@ -287,3 +288,9 @@ 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=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 diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index d61564e8f4d..2f31aab4e89 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Sin presupuestos borrador CopyPropalFrom=Crear presupuesto por copia de uno existente CreateEmptyPropal=Crear propuesta comercial vacía o desde lista de productos/servicios. DefaultProposalDurationValidity=Plazo de validez por defecto (en días) +DefaultPuttingPricesUpToDate=De forma predeterminada, actualizar los precios con los precios actuales al copiar un pedido UseCustomerContactAsPropalRecipientIfExist=Utilizar dirección del contacto de seguimiento de cliente definido, en vez de la dirección del tercero como destinatario de los presupuestos ConfirmClonePropal=¿Está seguro de querer clonar el presupuesto %s? ConfirmReOpenProp=¿Está seguro de querer reabrir el presupuesto %s? @@ -85,15 +86,28 @@ ProposalCustomerSignature=Aceptación por escrito, sello de la empresa, fecha y 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 +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 IdProduct=ID del Producto -PrParentLine=Presupuesto de línea principal LineBuyPriceHT=Precio de compra Importe neto de impuestos por línea -SignPropal=Accept proposal +SignPropal=Aceptar presupuesto RefusePropal=Rechazar presupuesto Sign=Firma -PropalAlreadySigned=Proposal already accepted +NoSign=Establecer no firmado +PropalAlreadySigned=Presupuesto ya aceptado PropalAlreadyRefused=Presupuesto ya rechazado -PropalSigned=Proposal accepted +PropalSigned=Presupuesto aceptado PropalRefused=Presupuesto rechazado ConfirmRefusePropal=¿Está seguro de querer rechazar este presupuesto? 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 c0461d466af..59d5e735045 100644 --- a/htdocs/langs/es_ES/ticket.lang +++ b/htdocs/langs/es_ES/ticket.lang @@ -90,15 +90,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=E-mail de notificación de -TicketEmailNotificationFromHelp=Utilizado en la respuesta del mensaje del ticket por ejemplo -TicketEmailNotificationTo=Notificaciones e-mail a -TicketEmailNotificationToHelp=Envíe notificaciones por e-mail a esta dirección. +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. @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Enviar correo electrónico (s) cuando se agr TicketsPublicNotificationNewMessageHelp=Enviar e-mail(s) cuando se añade un nuevo mensaje desde la interfaz pública (al usuario asignado o al e-mail de notificaciones (actualización) y o el e-mail de notificaciones a) TicketPublicNotificationNewMessageDefaultEmail=Notificaciones por e-mail a (actualización) TicketPublicNotificationNewMessageDefaultEmailHelp=Envíe un correo electrónico a esta dirección para cada notificación de mensaje nuevo si el ticket no tiene un usuario asignado o si el usuario no tiene ningún correo electrónico conocido. +TicketsAutoReadTicket=Marcar automáticamente el ticket como leído (cuando se crea desde backoffice) +TicketsAutoReadTicketHelp=Marca automáticamente el ticket como leído cuando se crea desde el backoffice. Cuando se crea un ticket desde la interfaz pública, el ticket permanece con el estado "No leído". +TicketsDelayBeforeFirstAnswer=Un nuevo ticket debe recibir una primera respuesta antes de (horas): +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 en la vista de listado. +TicketsDelayBetweenAnswers=Un ticket no resuelto no debe estar inactivo durante (horas): +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 listado. +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=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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Ordenar por fecha ascendente OrderByDateDesc=Ordenar por fecha descendente ShowAsConversation=Mostrar como lista de conversación MessageListViewType=Mostrar como lista de tabla +ConfirmMassTicketClosingSendEmail=Envíar e-mails automáticamente al cerrar tickets +ConfirmMassTicketClosingSendEmailQuestion=¿Quiere avisar a los terceros al cerrar estos tickets? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatario está vacío. No s TicketGoIntoContactTab=Vaya a la pestaña "Contactos" para seleccionarlos TicketMessageMailIntro=Introducción TicketMessageMailIntroHelp=Este texto es añadido solo al principio del email y no será salvado. -TicketMessageMailIntroLabelAdmin=Introducción al mensaje cuando se envía un e-mail -TicketMessageMailIntroText=Hola,
    Se envió una nueva respuesta a un ticket. Aquí está el mensaje:
    -TicketMessageMailIntroHelpAdmin=Este texto se insertará antes del texto de la respuesta a un ticket. +TicketMessageMailIntroLabelAdmin=Texto de introducción a todas las respuestas del ticket +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 TicketMessageMailSignature=Firma TicketMessageMailSignatureHelp=Este texto se agrega solo al final del e-mail y no se guardará. -TicketMessageMailSignatureText=

    Cordialmente,

    --

    +TicketMessageMailSignatureText=Mensaje enviado por %s vía Dolibarr TicketMessageMailSignatureLabelAdmin=Firma del e-mail de respuesta TicketMessageMailSignatureHelpAdmin=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 @@ -238,9 +254,16 @@ TicketChangeStatus=Cambiar estado TicketConfirmChangeStatus=¿Confirma el cambio de estado: %s? TicketLogStatusChanged=Estado cambiado: %s a %s TicketNotNotifyTiersAtCreate=No notificar a la compañía al crear +NotifyThirdpartyOnTicketClosing=Contactos a notificar al cerrar el ticket +TicketNotifyAllTiersAtClose=Todos los contactos relacionados +TicketNotNotifyTiersAtClose=Ningún contacto relacionado Unread=No leído TicketNotCreatedFromPublicInterface=No disponible. El ticket no se creó desde la interfaz pública. 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 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 @@ -268,8 +291,9 @@ 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=Puedes ver la progresión del ticket haciendo click sobre el siguiente enlace. +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. @@ -291,6 +315,10 @@ NewUser=Nuevo usuario NumberOfTicketsByMonth=Número de tickets por mes NbOfTickets=Número de tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket cerrado +TicketCloseEmailBodyCustomer=Este es un mensaje automático para notificarle que el ticket %s acaba de cerrarse. +TicketCloseEmailSubjectAdmin=Ticket cerrado - Ref %s (ID público de ticket %s) +TicketCloseEmailBodyAdmin=Se acaba de cerrar un ticket con ID #%s, ver información: TicketNotificationEmailSubject=Ticket %s actualizado TicketNotificationEmailBody=Este es un mensaje automático para notificarle que el ticket %s acaba de ser actualizado TicketNotificationRecipient=Recipiente de notificación @@ -318,7 +346,7 @@ BoxTicketLastXDays=Número de tickets nuevos por días los últimos %s días BoxTicketLastXDayswidget = Número de tickets nuevos por días los últimos X días BoxNoTicketLastXDays=No hay entradas nuevas los últimos días %s BoxNumberOfTicketByDay=Número de tickets nuevos por día -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=Número de tickets / tickets cerrados (hoy) TicketCreatedToday=Ticket creado hoy TicketClosedToday=Ticket cerrado hoy KMFoundForTicketGroup=Encontramos temas y preguntas frecuentes que pueden responder a su pregunta, gracias por consultarlos antes de enviar el ticket diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang index 16ca98dd25a..442e7e421ce 100644 --- a/htdocs/langs/es_ES/users.lang +++ b/htdocs/langs/es_ES/users.lang @@ -114,7 +114,7 @@ UserLogoff=Usuario desconectado UserLogged=Usuario conectado DateOfEmployment=Fecha empleo DateEmployment=Empleo -DateEmploymentstart=Fecha de inicio de empleo +DateEmploymentStart=Fecha de inicio de empleo DateEmploymentEnd=Fecha de finalización de empleo RangeOfLoginValidity=Intervalo de fechas de validez de acceso CantDisableYourself=No puede deshabilitar su propio registro de usuario @@ -124,3 +124,7 @@ 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 diff --git a/htdocs/langs/es_ES/workflow.lang b/htdocs/langs/es_ES/workflow.lang index 43c8d1d5241..0a4b026910b 100644 --- a/htdocs/langs/es_ES/workflow.lang +++ b/htdocs/langs/es_ES/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear automáticamente un pedido de cliente descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automáticamente una factura a cliente después de la firma de un presupuesto (la nueva factura tendrá el mismo importe que el presupuesto) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente al validar un contrato descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automáticamente una factura a cliente al cierre del pedido de cliente (la nueva factura tendrá el mismo importe que el pedido) +descWORKFLOW_TICKET_CREATE_INTERVENTION=En la creación del ticket, crea automáticamente una intervención. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar presupuesto origen como facturado cuando el pedido de cliente sea marcado como facturado (y si el importe del pedido es igual al importe del presupuesto relacionado) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar los presupuesto origen como facturado cuando la factura a cliente sea validada (y si el importe de la factura es igual al importe del presupuesto relacionado) @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Clasifique la orden de compra de 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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Cerrar todas las intervenciones vinculadas al ticket cuando se cierra un ticket 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 diff --git a/htdocs/langs/es_GT/accountancy.lang b/htdocs/langs/es_GT/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_GT/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_GT/companies.lang b/htdocs/langs/es_GT/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_GT/companies.lang +++ b/htdocs/langs/es_GT/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_GT/exports.lang b/htdocs/langs/es_GT/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_GT/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_GT/members.lang b/htdocs/langs/es_GT/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_GT/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_GT/products.lang b/htdocs/langs/es_GT/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_GT/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_GT/projects.lang b/htdocs/langs/es_GT/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_GT/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_HN/accountancy.lang b/htdocs/langs/es_HN/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_HN/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_HN/companies.lang b/htdocs/langs/es_HN/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_HN/companies.lang +++ b/htdocs/langs/es_HN/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_HN/exports.lang b/htdocs/langs/es_HN/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_HN/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. 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/members.lang b/htdocs/langs/es_HN/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_HN/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_HN/products.lang b/htdocs/langs/es_HN/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_HN/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_HN/projects.lang b/htdocs/langs/es_HN/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_HN/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 504bddb9753..8c57272b7ea 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 @@ -239,6 +238,7 @@ ExtrafieldSelectList =Seleccionar de la tabla ComputedFormula=Campo calculado Computedpersistent=Almacenar campo calculado SetAsDefault=Establecer como predeterminado +InitEmptyBarCode=Init value for the %s empty barcodes ClickToShowDescription=Haga clic para mostrar la descripción DependsOn=Este módulo necesita los módulo(s) WarningSettingSortOrder=Advertencia, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si "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. @@ -268,15 +268,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/assets.lang b/htdocs/langs/es_MX/assets.lang index d35c347f0f8..c9fb38e8d31 100644 --- a/htdocs/langs/es_MX/assets.lang +++ b/htdocs/langs/es_MX/assets.lang @@ -1,14 +1,3 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Capital -AccountancyCodeAsset =Código de cuenta (activo) -AccountancyCodeDepreciationAsset =Código de cuenta (informe de depreciación de activo) -NewAssetType=Nuevo tipo de capital AssetsLines=Capital -ModuleAssetsName =Capital -ModuleAssetsDesc =Descripción de activo -Settings =Configuraciónes AssetsTypeLabel=Marca del tipo de activo -MenuAssets =Capital -MenuNewAsset =Nuevo activo -MenuListAssets =Lista -MenuListTypeAssets =Lista 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/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/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_MX/ticket.lang b/htdocs/langs/es_MX/ticket.lang index 4eeb07fdf80..a11e72bbf38 100644 --- a/htdocs/langs/es_MX/ticket.lang +++ b/htdocs/langs/es_MX/ticket.lang @@ -1,3 +1,2 @@ # Dolibarr language file - Source file is en_US - ticket TicketSettings=Configuraciónes -TicketMessageMailIntroText=Hola,
    Se envió una nueva respuesta en un ticket con el que se comunicó. Aquí está el mensaje:
    diff --git a/htdocs/langs/es_PA/accountancy.lang b/htdocs/langs/es_PA/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_PA/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_PA/companies.lang b/htdocs/langs/es_PA/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_PA/companies.lang +++ b/htdocs/langs/es_PA/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_PA/exports.lang b/htdocs/langs/es_PA/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_PA/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_PA/members.lang b/htdocs/langs/es_PA/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_PA/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_PA/products.lang b/htdocs/langs/es_PA/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_PA/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_PA/projects.lang b/htdocs/langs/es_PA/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_PA/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_PE/assets.lang b/htdocs/langs/es_PE/assets.lang index 401ea0f53af..7eee01f4abb 100644 --- a/htdocs/langs/es_PE/assets.lang +++ b/htdocs/langs/es_PE/assets.lang @@ -1,5 +1,2 @@ # Dolibarr language file - Source file is en_US - assets DeleteType=Borrar -Settings =Configuración -MenuListAssets =Lista -MenuListTypeAssets =Lista diff --git a/htdocs/langs/es_PE/exports.lang b/htdocs/langs/es_PE/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_PE/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_PE/members.lang b/htdocs/langs/es_PE/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_PE/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type 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/ticket.lang b/htdocs/langs/es_PE/ticket.lang index 1f39a627933..b45509b6f29 100644 --- a/htdocs/langs/es_PE/ticket.lang +++ b/htdocs/langs/es_PE/ticket.lang @@ -2,4 +2,3 @@ Read=Leer Type=Tipo TicketSettings=Configuración -TicketNewEmailBodyInfosTrackUrl=Puedes ver la progresión del ticket haciendo click sobre el seguimiento del ticket. diff --git a/htdocs/langs/es_PY/accountancy.lang b/htdocs/langs/es_PY/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_PY/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_PY/companies.lang b/htdocs/langs/es_PY/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_PY/companies.lang +++ b/htdocs/langs/es_PY/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_PY/exports.lang b/htdocs/langs/es_PY/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_PY/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_PY/members.lang b/htdocs/langs/es_PY/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_PY/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_PY/products.lang b/htdocs/langs/es_PY/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_PY/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_PY/projects.lang b/htdocs/langs/es_PY/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_PY/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_US/accountancy.lang b/htdocs/langs/es_US/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_US/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_US/companies.lang b/htdocs/langs/es_US/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_US/companies.lang +++ b/htdocs/langs/es_US/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_US/exports.lang b/htdocs/langs/es_US/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_US/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_US/members.lang b/htdocs/langs/es_US/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_US/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_US/products.lang b/htdocs/langs/es_US/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_US/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_US/projects.lang b/htdocs/langs/es_US/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_US/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_UY/accountancy.lang b/htdocs/langs/es_UY/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_UY/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/es_UY/companies.lang b/htdocs/langs/es_UY/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/es_UY/companies.lang +++ b/htdocs/langs/es_UY/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/es_UY/exports.lang b/htdocs/langs/es_UY/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/es_UY/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/es_UY/members.lang b/htdocs/langs/es_UY/members.lang new file mode 100644 index 00000000000..5f7a2ff4020 --- /dev/null +++ b/htdocs/langs/es_UY/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded. Please find your invoice here enclosed.

    +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type diff --git a/htdocs/langs/es_UY/products.lang b/htdocs/langs/es_UY/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/es_UY/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/es_UY/projects.lang b/htdocs/langs/es_UY/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_UY/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/es_VE/accountancy.lang b/htdocs/langs/es_VE/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/es_VE/accountancy.lang @@ -0,0 +1,2 @@ +# 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 059460aa02f..33ac1c8513d 100644 --- a/htdocs/langs/es_VE/admin.lang +++ b/htdocs/langs/es_VE/admin.lang @@ -5,6 +5,7 @@ ConfirmPurgeSessions=¿De verdad quieres purgar todas las sesiones? Esto descone SetupArea=Parametrizaje NotConfigured=Módulo / Aplicación no configurada GenericMaskCodes3=Cualquier otro carácter en la máscara se quedará sin cambios.
    No se permiten espacios
    +InitEmptyBarCode=Init value for the %s empty barcodes Module1780Desc=Crear etiquetas/Categoría (Productos, clientes, proveedores, contactos y miembros) Permission254=Modificar la contraseña de otros usuarios Permission255=Eliminar o desactivar otros usuarios @@ -31,7 +32,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) -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/es_VE/companies.lang b/htdocs/langs/es_VE/companies.lang index 8b438adbb1d..0bc5270fc2a 100644 --- a/htdocs/langs/es_VE/companies.lang +++ b/htdocs/langs/es_VE/companies.lang @@ -7,12 +7,7 @@ LocalTax2IsUsed=Sujeto ProfId1AT=Id prof. 1 (USt.-IdNr) ProfId2AT=Id prof. 2 (USt.-Nr) ProfId3AT=Id prof. 3 (Handelsregister-Nr.) -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register ProfId2ShortCM=R.I.F. -ProfId3ShortCM=Decree of creation ProfId1ES=CI/ RIF ProfId2ES=- ProfId3ES=- diff --git a/htdocs/langs/es_VE/exports.lang b/htdocs/langs/es_VE/exports.lang new file mode 100644 index 00000000000..37fbc8e4044 --- /dev/null +++ b/htdocs/langs/es_VE/exports.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %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. diff --git a/htdocs/langs/es_VE/projects.lang b/htdocs/langs/es_VE/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/es_VE/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 6047e9818ff..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 @@ -574,7 +574,7 @@ Module54Name=Lepingud/Tellimused Module54Desc=Management of contracts (services or recurring subscriptions) Module55Name=Vöötkoodid Module55Desc=Barcode or QR code management -Module56Name=Payment by credit transfer +Module56Name=Maksmine kreeditkorraldusega 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. @@ -714,13 +714,14 @@ 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 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=Sekkumiste vaatamine Permission62=Sekkumiste loomine/muutmine @@ -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 @@ -766,9 +768,10 @@ Permission122=Kasutajaga seotud kolmandate isikute loomine/muutmine Permission125=Kasutajaga seotud kolmandate isikute kustutamine Permission126=Kolmandate isikute eksport 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=Pakkujate vaatamine Permission147=Statistika vaatamine Permission151=Read direct debit payment orders @@ -873,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 @@ -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=Seadistused salvestatud SetupNotSaved=Setup not saved @@ -1122,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Pangakontode moodul pole sisse lülitatud 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=Häired -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=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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=Pead vähemalt 1 mooduli sisse lülitama +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Suviti 'jah' 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=Vesimärk arvete mustanditel (puudub, kui tühi) PaymentsNumberingModule=Payments numbering model SuppliersPayment=Tarnija maksed 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=Pakkumiste mooduli seadistamine ProposalsNumberingModules=Pakkumiste numeratsiooni mudelid @@ -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=Tarnija arved MailToSendContract=Lepingud MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Kolmandad isikud MailToMember=Liikmed MailToUser=Kasutajad @@ -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=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 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 = 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 +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/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang index 9e8c476384f..e6e958bb66c 100644 --- a/htdocs/langs/et_EE/banks.lang +++ b/htdocs/langs/et_EE/banks.lang @@ -35,11 +35,11 @@ SwiftValid=BIC/SWIFT valid SwiftNotValid=BIC/SWIFT not valid IbanValid=BAN valid IbanNotValid=BAN not valid -StandingOrders=Direct debit orders +StandingOrders=Otsekorraldused StandingOrder=Direct debit order -PaymentByDirectDebit=Payment by direct debit -PaymentByBankTransfers=Payments by credit transfer -PaymentByBankTransfer=Payment by credit transfer +PaymentByDirectDebit=Tasumine otsekorraldusega +PaymentByBankTransfers=Maksed kreeditülekandega +PaymentByBankTransfer=Maksmine kreeditkorraldusega AccountStatement=Konto väljavõte AccountStatementShort=Väljavõte AccountStatements=Kontoväljavõtted @@ -75,7 +75,7 @@ BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile -TransactionsToConciliateShort=To reconcile +TransactionsToConciliateShort=Vastavusse viima Conciliable=Saab viia vastavusse Conciliate=Vii vastavusse Conciliation=Vastavusse viimine @@ -95,39 +95,39 @@ LineRecord=Tehing AddBankRecord=Add entry AddBankRecordLong=Add entry manually Conciliated=Reconciled -ConciliatedBy=Tehingu kandis sisse +ReConciliedBy=Tehingu kandis sisse DateConciliating=Vastavusse viimise kuupäev -BankLineConciliated=Entry reconciled with bank receipt -Reconciled=Reconciled -NotReconciled=Not reconciled +BankLineConciliated=Kanne viidud vastavusse pangakonto laekumisega +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Kliendi laekumi SupplierInvoicePayment=Tarnija makse SubscriptionPayment=Liikmemaks WithdrawalPayment=Deebetmaksekorraldus SocialContributionPayment=Social/fiscal tax payment -BankTransfer=Credit transfer -BankTransfers=Credit transfers +BankTransfer=Krediidiülekanne +BankTransfers=Kreeditülekanded 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. +TransferDesc=Kasutage sisemist ülekannet, et teha ülekanne ühelt kontolt teisele, rakendus kirjutab kaks kirjet: deebet lähtekontole ja kreedit sihtkontole. Selle tehingu puhul kasutatakse sama summat, märget ja kuupäeva. TransferFrom=Kust TransferTo=Kuhu TransferFromToDone=Kanne kontolt %s kontole %s väärtuses %s %s on registreeritud. CheckTransmitter=Saatja 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. +ConfirmValidateCheckReceipt=Kas olete kindel, et soovite selle tšeki kviitungi kinnitamiseks esitada? Pärast kinnitamist ei ole muudatused enam võimalikud. DeleteCheckReceipt=Delete this check receipt? ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt? BankChecks=Pangatšekid BankChecksToReceipt=Checks awaiting deposit BankChecksToReceiptShort=Checks awaiting deposit ShowCheckReceipt=Näita tšeki deponeerimise kviitungit -NumberOfCheques=No. of check +NumberOfCheques=Tšeki number DeleteTransaction=Delete entry ConfirmDeleteTransaction=Are you sure you want to delete this entry? ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry BankMovements=Liikumised PlannedTransactions=Planned entries -Graph=Graphs +Graph=Graafikud ExportDataset_banque_1=Bank entries and account statement ExportDataset_banque_2=Deposit slip TransactionOnTheOtherAccount=Tehing teise kontoga @@ -137,11 +137,11 @@ PaymentDateUpdateSucceeded=Payment date updated successfully PaymentDateUpdateFailed=Makse kuupäeva uuendamine pole võimalik Transactions=Tehingud BankTransactionLine=Bank entry -AllAccounts=All bank and cash accounts +AllAccounts=Kõik panga- ja sularahakontod BackToAccount=Tagasi konto juurde ShowAllAccounts=Näita kõigil kontodel -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=Tulevane tehing. Ei ole võimalik vastavusse viia. +SelectChequeTransactionAndGenerate=Vali välja tšekid, mida lisada tšeki deponeerimise kinnitusse ning klõpsa "Loo" nupul. InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD EventualyAddCategory=Lõpuks vali kategooria, mille alla kanded klassifitseerida ToConciliate=To reconcile? @@ -156,29 +156,32 @@ 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 +CheckRejectedAndInvoicesReopened=Tšekk tagastatakse ja arved avatakse uuesti BankAccountModelModule=Document templates for bank accounts -DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only. +DocumentModelSepaMandate=SEPA mandaadi näidis. Kasulik ainult EMÜsse kuuluvate Euroopa riikide jaoks. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New miscellaneous payment -VariousPayment=Miscellaneous payment +NewVariousPayment=Uus mitmesugune makse +VariousPayment=Mitmesugused maksed VariousPayments=Mitmesugused maksed -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 +ShowVariousPayment=Näita mitmesuguseid makseid +AddVariousPayment=Lisa mitmesugused maksed +VariousPaymentId=Mitmesuguse makse tunnus +VariousPaymentLabel=Mitmesuguse makse märgis +ConfirmCloneVariousPayment=Kinnitage mitmesuguse makse kloon +SEPAMandate=SEPA mandaat +YourSEPAMandate=Teie SEPA mantaat +FindYourSEPAMandate=See on teie SEPA-mandaat, millega volitate meie ettevõtet tegema otsekorraldust teie pangale. Tagastage see allkirjastatult (digi allkirjastatud või allkirjastatud ja skaneeritud dokumendina) või saatke see posti teel +AutoReportLastAccountStatement=Täitke automaatselt väli "pangakonto väljavõtte number" viimase väljavõtte numbriga, kui teete kooskõlastamist +CashControl=POS sularaha kontroll +NewCashFence=Uus sularahakontroll (avamine või sulgemine) +BankColorizeMovement=Värvige liigutused +BankColorizeMovementDesc=Kui see funktsioon on lubatud, saate valida konkreetse taustavärvi deebet- või krediidiliikumise jaoks. +BankColorizeMovementName1=Taustavärv debiteerimise liikumiseks +BankColorizeMovementName2=Taustavärv krediidi liikumiseks +IfYouDontReconcileDisableProperty=Kui te ei tee pangavõrdlusi mõne pangakonto kohta, lülitage nende puhul välja omadus "%s", et eemaldada see hoiatus. +NoBankAccountDefined=Pangakonto ei ole määratud +NoRecordFoundIBankcAccount=Pangakontol ei ole kirjeid leitud. Tavaliselt tekib see, kui kirje on käsitsi kustutatud pangakonto tehingute nimekirjast (näiteks pangakonto kooskõlastamise käigus). Teine põhjus on see, et makse on salvestatud, kui moodul "%s" oli välja lülitatud. +AlreadyOneBankAccount=Juba üks pangakonto määratletud +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA ülekanne: "Maksetüüp" tasemel "Krediidiülekanne" +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=SEPA XML-faili genereerimisel kreeditkorralduste jaoks võib nüüd jaotise "PaymentTypeInformation" paigutada jaotise "CreditTransferTransactionInformation" sisse (jaotise "Payment" asemel). Soovitame tungivalt jätta see märkimata, et paigutada PaymentTypeInformation maksetasandile, kuna kõik pangad ei pruugi seda CreditTransferTransactionInformation tasandil aktsepteerida. Enne PaymentTypeInformation paigutamist CreditTransferTransactionInformation tasandile võtke ühendust oma pangaga. +ToCreateRelatedRecordIntoBank=Loo puuduv seotud pangakanne diff --git a/htdocs/langs/et_EE/companies.lang b/htdocs/langs/et_EE/companies.lang index 88ea94b3e63..9e04b905e3b 100644 --- a/htdocs/langs/et_EE/companies.lang +++ b/htdocs/langs/et_EE/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Huviliste ala IdThirdParty=Kolmanda osapoole ID IdCompany=Ettevõtte ID IdContact=Kontakti ID +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Ettevõte @@ -51,19 +52,22 @@ CivilityCode=Sisekorraeeskiri RegisteredOffice=Peakontor Lastname=Perekonnanimi Firstname=Eesnimi +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Ametikoht UserTitle=Tiitel 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Tarnija kood on vale CustomerCodeModel=Kliendi koodi mudel SupplierCodeModel=Tarnija koodimudel Gencod=Vöötkood +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Reg nr 1 ProfId2Short=Reg nr 2 @@ -159,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=Teised ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Kolmandate osapoolte nimekiri ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Kõik (filtrita) -ContactType=Kontakti liik +ContactType=Contact role ContactForOrders=Tellimuse kontakt ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Pakkumise kontakt 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/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/members.lang b/htdocs/langs/et_EE/members.lang index 7e1fba82f24..323d0be26cf 100644 --- a/htdocs/langs/et_EE/members.lang +++ b/htdocs/langs/et_EE/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Liikmete nimekiri MembersListToValid=Mustandi staatuses olevate liikmete nimekiri (vajab kinnitamist) MembersListValid=Kinnitatud liikmete nimekiri @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Liikme ID +MemberId=Member Id +MemberRef=Member Ref NewMember=Uus liige MemberType=Liikme tüüp MemberTypeId=Liikmetüübi ID @@ -159,11 +160,11 @@ HTPasswordExport=htpassword faili loomine NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Täiendav tegevus salvestamisel -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=Koosta makseta arve -LinkToGeneratedPages=Loo visiitkaardid +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=See ekraan võimaldab luua visiitkaartidega PDF-failid iga liikme või mõne kindla liikme kohta. DocForAllMembersCards=Loo kõigi liikmete kohta visiitkaardid DocForOneMemberCards=Loo mõne kindla liikme visiitkaart @@ -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/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index 4fd1edbc36a..834accf173e 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Halda ühenduse liikmeid DemoFundation2=Halda ühenduse liikmeid ja pangakontosid DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Halda kassaga poodi +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Sulge +Autofill = Autofill diff --git a/htdocs/langs/et_EE/projects.lang b/htdocs/langs/et_EE/projects.lang index 9e19a41c9fa..1454b3e3031 100644 --- a/htdocs/langs/et_EE/projects.lang +++ b/htdocs/langs/et_EE/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Kõik -PrivateProject=Projekti kontaktid +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Kõik projektid @@ -190,6 +190,7 @@ PlannedWorkload=Planeeritav koormus PlannedWorkloadShort=Workload ProjectReferers=Related items ProjectMustBeValidatedFirst=Esmalt peab projekti kinnitama +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 @@ -287,3 +288,9 @@ 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=Lõppkuupäev ei saa olla alguskuupäevast varasem +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 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/withdrawals.lang b/htdocs/langs/et_EE/withdrawals.lang index d45f81ddee9..f66440e5fc5 100644 --- a/htdocs/langs/et_EE/withdrawals.lang +++ b/htdocs/langs/et_EE/withdrawals.lang @@ -8,14 +8,14 @@ NewPaymentByBankTransfer=New payment by credit transfer StandingOrderToProcess=Töödelda PaymentByBankTransferReceipts=Credit transfer orders PaymentByBankTransferLines=Credit transfer order lines -WithdrawalsReceipts=Direct debit orders +WithdrawalsReceipts=Otsekorraldused 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 +CreditTransfer=Krediidiülekanne CreditTransferLine=Credit transfer line WithdrawalsLines=Direct debit order lines CreditTransferLines=Credit transfer lines @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit tran InvoiceWaitingWithdraw=Invoice waiting for direct debit InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer AmountToWithdraw=Väljamaksmise summa +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 @@ -136,6 +137,7 @@ 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 @@ -154,3 +156,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/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 8bfbe52c104..388854d1053 100644 --- a/htdocs/langs/eu_ES/companies.lang +++ b/htdocs/langs/eu_ES/companies.lang @@ -19,6 +19,7 @@ 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=Erakundea @@ -51,6 +52,8 @@ 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 @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index 81fa5132cf8..5484f0752a5 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=در برپاسازی برای پر AccountancyArea=بخش حساب‌داری AccountancyAreaDescIntro=استفاده از بخش حساب‌داری در گام‌های متعددی انجام می‌پذیرد: AccountancyAreaDescActionOnce=عملیات زیر معمولا فقط یک بار انجام می‌شود، یا یک بار در سال... -AccountancyAreaDescActionOnceBis=برای صرفه‌جوئی در زمان در آینده گام‌های بعدی باید با ارائۀ حساب حساب‌داری صحیح در هنگام دفترنویسی (نوشتن سطور دفاتر و دفترکل) انجام پذیرد +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=عملیات زیر معمولا هر ماه یا هر هفته یا بار یا حتی هر روز یک بار برای شرکت‌های بسیار بزرگ انجام می‌پذیرد.... -AccountancyAreaDescJournalSetup=گام %s: ایجاد یا بررسی فهرست محتوای دفتر از گزینۀ %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=گام %s: تعریف حساب‌های حساب‌داری برای هر یک از انواع ضریب‌های مالیات بر ارزش افزوده. برای این کار از گزینۀ %s استفاده نمائید. AccountancyAreaDescDefault=گام %s: تعریف حساب‌های حساب‌داری پیش‌فرض. برای این، از گزینۀ %s استفاده نمائید. -AccountancyAreaDescExpenseReport=گام %s: تعریف حساب‌های حساب‌داری پیش‌فرض برای هر یک از انواع گزارش‌هزینه. برای این‌کار از گزینۀ %s استفاده نمائید. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=گام %s: تعریف حساب‌های حساب‌داری پیش‌فرض برای پرداخت حقوق. برای این، از گزینۀ %s استفاده نمائید. -AccountancyAreaDescContrib=گام %s: تعریف حساب‌های حساب‌داری پیش‌فرض برای هزینه‌های خاص ( مالیات‌های متفرقه ). برای این، از گزینۀ %s استفاده نمائید. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=گام %s : تعریف حساب‌های حساب‌داری پیش‌فرض برای دریافت کمک‌. برای این، از گزینۀ %s استفاده نمائید. AccountancyAreaDescSubscription=گام %s: تعریف حساب حساب‌داری پیش‌فرض برای اشتراک اعضاء. برای این، از گزینۀ %s استفاده نمائید. AccountancyAreaDescMisc=گام %s : تعریف حساب پیش‌فرض الزامی و حساب‌های حساب‌داری پیش‌فرض برای تراکنش‌های متفرقه. برای این، از گزینۀ %s استفاده نمائید. AccountancyAreaDescLoan=گام %s: تعریف حساب‌‌های حساب‌داری پیش‌فرض برای وام‌ها. برای این از گزینۀ %s استفاده نمائید. AccountancyAreaDescBank=گام %s: تعریف حساب‌های حساب‌داری و شمارۀ‌دفتر برای هر بانک و حساب‌های مالی. برای این‌کار از گزینۀ %s استفاده نمائید. -AccountancyAreaDescProd=گام %s: تعریف حساب‌های حساب‌دای برای محصولات/خدمات شما. برای این‌کار از فهرست %s استفاده نمائید. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=گام %s: بندهای میان سطور موجود %s و حساب حساب‌داری بررسی شده است، بنابراین برنامه خواهد توانست که تراکنش‌ها را با یک کلیک در دفترکل بنویسد. بندهای مفقود را کامل کنید. برای این‌کار، از گزینۀ %s استفاده نمائید. AccountancyAreaDescWriteRecords=گام %s: نوشتن تراکنش‌ها در دفتر کل. برای این‌کار، به فهرست %s مراجعه کرده و روی کلید %s کلیک نمائید. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=حساب‌های محصولات TransferInAccounting=انتقال به‌داخل حساب‌داری -RegistrationInAccounting=ثبت در حساب‌داری +RegistrationInAccounting=Recording in accounting Binding=بندشدن به حساب‌ها CustomersVentilation=بندشدن به صورت‌حساب مشتری SuppliersVentilation=بندشدن به صورت‌حساب تامین‌کننده @@ -120,7 +120,7 @@ ExpenseReportsVentilation=بندشدن به گزارش هزینه‌ها CreateMvts=ایجاد تراکنش جدید UpdateMvts=ویرایش تراکنش ValidTransaction=اعتباردهی به تراکنش -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=دفترکل BookkeepingSubAccount=Subledger AccountBalance=موجودی حساب @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=حساب حساب‌داری ثبت کمک و اعا ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=حساب حساب‌داری ثبت اشتراک‌ها ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=به واسطۀ گروه‌های از پیش‌تع ByPersonalizedAccountGroups=به واسطۀ گروه‌های دل‌خواه ByYear=به واسطۀ سال NotMatch=تعیین نشده -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=حذف سال DelJournal=حذف دفتر -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=دفتر مالی ExpenseReportsJournal=دفتر گزارش هزینه DescFinanceJournal=دفتر مالی که شامل همۀ انواع پرداخت بواسطۀ حساب بانکی می‌شود @@ -278,30 +279,31 @@ DescVentilExpenseReportMore=در صورتی‌که شما حساب‌حساب‌ DescVentilDoneExpenseReport=در این قسمت فهرستی از سطور گزارشات هزینه و حساب‌حساب‌داری پرداخت آن‌ها را داشته باشید 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 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=بندکردن خودکار AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) ErrorAccountancyCodeIsAlreadyUse=خطا! شما نمی‌توانید این حساب حساب‌داری را حذف کنید، زیرا در حال استفاده است. -MvtNotCorrectlyBalanced=جابجائی به درستی انجام نشد. بدهی = %s | اعتبار= %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=تعدیل FicheVentilation=بندشدن کارت GeneralLedgerIsWritten=تراکنش‌ها در دفترکل درج شده GeneralLedgerSomeRecordWasNotRecorded=برخی از تراکنش‌ها امکان دفترنویسی ندارند. در صورتی که خطای دیگری وجود نداشته باشد، این بدان معناست که قبلا در دفتر وارد شده‌اند. -NoNewRecordSaved=ردیف دیگری برای دفترنویسی وجود ندارد +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=فهرست محصولاتی که به هیچ حساب حساب‌داری بند نشده‌اند ChangeBinding=تغییر بند‌شدن‌ها Accounted=در دفترکل حساب‌شده است NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=وفق داده نشده -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 @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=صادرکردن پیش‌نویس دفتر Modelcsv=نوع صادرات @@ -394,6 +397,21 @@ 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 + +## Confirm box +ConfirmMassUnlettering=Bulk 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 SomeMandatoryStepsOfSetupWereNotDone=برخی گام‌های اجباری برپاسازی انجام نشده است، لطفا تکمیل کنید ErrorNoAccountingCategoryForThisCountry=هیچ گروه حساب‌ حساب‌داری برای کشور %s وجود ندارد ( به بخش خانه - برپاسازی - واژه‌نامه‌ها ) مراجعه نمائید @@ -406,6 +424,9 @@ 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 ## Import ImportAccountingEntries=ورودی‌های حساب‌داری diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 6a196bb2b3b..51c5101f3f2 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/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=حداکثر اندازۀ فایل بارگذاری شده ( برای عدم اجازۀ ارسال فایل عدد 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=ایجاد دستجمعی بارکد برای اشخاص‌سوم BarcodeInitForProductsOrServices=ایجاد یا بازسازی بارکد برای محصولات یا خدمات CurrentlyNWithoutBarCode=در حال حاضر شما %s ردیف در %s %s دارید که برای آن‌ها بارکد تعریف نشده. -InitEmptyBarCode=مقدار ابتدائی برای %s ردیف خالی بعدی +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=حذف همۀ مقادیر کنونی بارکدها ConfirmEraseAllCurrentBarCode=آیا مطمئن هستید می‌خواهید همۀ مقادیر فعلی بارکدها را حذف کنید؟ 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=در صورتی که ارائۀ خدمات رایانامۀ 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=این واحد توسط واحد(های) دیگر مورد نیاز است @@ -714,13 +714,14 @@ Permission27=حذف پیشنهادات تجاری Permission28=صادرات پیشنهادات تجاری Permission31=ملاحظۀ محصولات Permission32=ساخت/ویرایش محصولات +Permission33=Read prices products Permission34=حذف محصول Permission36=مشاهده/مدیریت محصولات پنهان Permission38=صادرکردن محصولات Permission39=Ignore minimum price -Permission41=ملاحظۀ طرح‌ها و وظایف‌کاری ( طرح‌های مشترک و طرح‌هائی که من در آن طرفم). همچنین امکان درج زمان صرف شده برای من و شبکۀ من در خصوص وظایف نسبت داده شده است (برگۀ زمان) -Permission42=ساخت/ویرایش طرح‌ها (طرح‌های مشترک و طرح‌هائی که من در آن طرف هستم). همچنین امکان ساخت وظایف و نسبت دادن کاربران به طرح‌ها و وظایف است -Permission44=حذف طرح‌ها (پروژۀ مشترک و پروژه‌هائی که من در آن طرف هستم) +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=صادرکردن طرح‌ها Permission61=ملاحظۀ واسطه‌گری‌ها Permission62=ساخت/ویرایش واسطه‌گری‌ها @@ -739,6 +740,7 @@ Permission79=ساخت/ویراش عضویت‌ها Permission81=ملاحظۀ سفارشات مشتریان Permission82=ساخت/ویرایش سفارشات مشتریان Permission84=اعتباردهی به سفارشات مشتریان +Permission85=Generate the documents sales orders Permission86=ارسال سفارشات مشتریان Permission87=بستن سفارشات مشتریان Permission88=لغو سفارشات مشتریان @@ -766,9 +768,10 @@ Permission122=ایجاد/ویرایش اشخاص‌سوم مرتبط با یک Permission125=حذف اشخاص‌سوم مرتبط با یک کاربر Permission126=صادرات اشخاص‌سوم مرتبط با یک کاربر Permission130=Create/modify third parties payment information -Permission141=ملاحظۀ همۀ طرح‌ها و وظایف (همچنین طرح‌های خصوصی که من در آن طرف نیستم) -Permission142=ساخت/ویرایش همۀ طرح‌ها و وظایف‌کاری (همچنین طرح‌های خصوصی که من در آن طرف نیستم) -Permission144=حذف همۀ طرح‌ها و وظایف‌کاری (همچنین طرح‌های خصوصی که من در آن طرف نیستم) +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=ملاحظۀ دستورهای پرداخت مستقیم @@ -873,6 +876,7 @@ Permission525=دسترسی به محاسبه‌گر وام Permission527=صادرکردن وام‌ها Permission531=ملاحظۀ خدمات Permission532=ایجاد/ویرایش خدمات +Permission533=Read prices services Permission534=حذف خدمات Permission536=مشاهده/مدیریت خدمات پنهان Permission538=صادرکردن خدمات @@ -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=خواندن صورت‌حساب‌های مواد Permission651=ایجاد/به‌هنگام سازی صورت‌حساب‌های موا Permission652=حذف صورت‌حساب‌های مواد @@ -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=خواندن محتوای وبگاه Permission10002=ساخت/ویرایش محتوای وبگاه (محتوای html و javascript ) Permission10003=ساخت/ویرایش محتوای وبگاه (کد پویای PHP). خطرناک، تنها باید تحت نظر توسعه‌دهندگان مشخص و محدود باشد. @@ -1068,6 +1077,7 @@ 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=تنظیمات برپاسازی ذخیره نشد @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=تعداد روزها AtEndOfMonth=در پایان ماه -CurrentNext=فعلی/بعدی +CurrentNext=A given day in month Offset=جابجائی AlwaysActive=همیشه فعال Upgrade=به‌هنگام‌سازی @@ -1187,7 +1197,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=مکث قبل از نمایش یک پیام هشدار برای: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=تنظیم مکث قبل از پیام هشدار با نمادک %s برای آخرین عنصر بر روی صفحه نمایش داده می‌شود. Delays_MAIN_DELAY_ACTIONS_TODO=رخدادهای برنامه‌ریزی شده (روی‌داد جلسات) کامل نشده است Delays_MAIN_DELAY_PROJECT_TO_CLOSE=طرح در زمان موردنظر بسته نشده @@ -1228,6 +1238,7 @@ BrowserName=نام مرورگر BrowserOS=سیستم عامل مرورگر ListOfSecurityEvents=فهرست رویدادهای امنیتی Dolibarr SecurityEventsPurged=رویدادهای امنیتی پاکسازی شد +TrackableSecurityEvents=Trackable security events LogEventDesc=فعال کردن گزارش‌گیری برای روی‌دادهای امنیتی خاص. دسترسی مدیران به گزارش توسط فهرست %s - %s. هشدار، این قابلیت می‌تواند حجم زیادی داده در پایگاه‌داده ذخیره کند. AreaForAdminOnly=مقادیر برپاسازی تنها توسط کاربران مدیر قابل تنظیم است. SystemInfoDesc=اطلاعات سامانه، اطلاعاتی فنی است که در حالت فقط خواندنی است و تنها برای مدیران قابل نمایش است. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=شما یک ترجمۀ جدید برای کلیدت TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=شما حداقل باید 1 واحد را فعال نمائید +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=کلاس %s در مسیر PHP پیدا نشد YesInSummer=بله در فصل تابستان OnlyFollowingModulesAreOpenedToExternalUsers=توجه، تنها واحد‌های زیر برای کاربران خارجی قابل دسترسی هستند (صرف‌نظر از مجوزهائی که به این کاربران داده می‌شود)، و تنها در صورتی که مجوز داده شده باشد:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=نقش‌پس‌زمینۀ صورت‌حساب‌های PaymentsNumberingModule=طرز شماره‌دهی پرداخت‌ها 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. ##### Proposals ##### PropalSetup=راه اندازی ماژول طرح های تجاری ProposalsNumberingModules=مدل شماره طرح تجاری @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=نصب یا ساخت یک واحد خارجی در ب HighlightLinesOnMouseHover=برجسته‌کردن سطور جدول در هنگام عبور نشان‌گر موش HighlightLinesColor=برجسته‌کردن رنگ سطر در هنگام عبور موشواره از آن (از 'ffffff' برای عدم رنگ‌دهی) HighlightLinesChecked=روشن‌کردن زرنگ سطر در هنگامی که کادرتائید فشرده شده است ( از 'ffffff' برای عدم روشن کردن استفاده کنید) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=رنگ نوشتۀ عنوان صفحه @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=کلیدهای CTRL+F5 را روی صفحه‌کلید NotSupportedByAllThemes=با پوسته‌های هسته کار می‌کند اما ممکن است در پوسته‌های خارجی پشتیبانی نشود BackgroundColor=رنگ پس‌زمینه TopMenuBackgroundColor=رنگ پس‌زمینۀ فهرست بالا -TopMenuDisableImages=پنهان کردن تصاویر فهرست بالا +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=رنگ پس‌زمینۀ فهرست سمت چپ BackgroundTableTitleColor=رنگ پس‌زمیۀ سطر عنوان جدول BackgroundTableTitleTextColor=رنگ نوشتۀ سطر عنوان جدول @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=در اینجا بین دو براکت فهرست اعداد بایت‌هائی را که نمایاندۀ نماد واحدپولی است وارد نمائید. برای مثال، برای $ مقدار [36] را وارد نمائید، برای ریال برزیل R$ مقدار [82,36] و برای €، مقدار [8364] ColorFormat=رنگ RGB در مبنای HEX، مثال: 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=مکان سطر در فهرست‌های ترکیبی SellTaxRate=Sales tax rate RecuperableOnly=بله برای م‌ب‌اا "در نظر گرفته نمی‌شود اما قابل بازیابی است" که مربوط به برخی استان‌های فرانسه است. مقدار "خیر" را برای همۀ سایر شرایط حفظ کنید. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=سفارشات خرید MailToSendSupplierInvoice=صورت‌حساب‌های فروشندگان MailToSendContract=قراردادها MailToSendReception=دریافت‌های کالا +MailToExpenseReport=گزارش‌هزینه‌ها MailToThirdparty=طرف‌های سوم MailToMember=اعضا MailToUser=کاربران @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=گزینش Regex برای پاک کردن مقدا COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=مأمور حفاظت داده‌ها (DPO، حریم خصوصی یا طرف‌تماس GDPR) -GDPRContactDesc=در صورتی که شما داده‌ها را در خصوص شرکت‌ها/شهروندان اروپائی ذخیره می‌کنید، شما می‌توانید یک طرف‌تماس مسئول برای مقررات عمومی حفاظت از داده در این قسمت وارد نمائید +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=متن راهنما برای نمایش کادر‌نکات HelpOnTooltipDesc=یک نوشته یا یک کلید ترجمه در اینجا برای نوشته وارد کنید که در هنگامی که این بخش در برگه نمایش داده می‌شود به‌عنوان یک کادرراهنمائی نمایش داده شود YouCanDeleteFileOnServerWith=شما می‌توانید با استفاده از دستور:
    %s این فایل را از روی سرور حذف نمائید @@ -2048,27 +2065,46 @@ 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=حداکثر تعداد رایانامه‌های جمع‌آوری شده در یک جمع‌آوری CollectNow=الآن جمع‌آوری شود -ConfirmCloneEmailCollector=آیا مطمئن هستید می‌خواهد جمع‌آورندۀ رایانامۀ %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=آخرین نتیجه +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=تائید جمع‌آوری رایانامه -EmailCollectorConfirmCollect=آیا می‌خواهید عملیات جمع‌آوری این جمع‌آورنده را حالا اجرا کنید؟ +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=رایانامۀ جدیدی (با توجه به گزینش‌ها و صافی‌ها) پیدا نشد که پردازش شود 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, 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=آخرین کد نتیجه NbOfEmailsInInbox=تعداد رایانامه‌های موجود در پوشۀ منبع LoadThirdPartyFromName=بارگذاری جستجوی شخص‌سوم روی %s (فقط بارگذاری) @@ -2082,14 +2118,14 @@ 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=پیکربندی واحد منابع UseSearchToSelectResource=از برگۀ جستجو برای انتخاب یک منبع استفاده نمائید (غیر از یک فهرست آبشاری) DisabledResourceLinkUser=این قابلیت را برای پیوند دادن یک منبع به کاربران استفاده نمائید DisabledResourceLinkContact=این قابلیت را برای پیونددادن یک منبع به طرف‌های تماس استفاده نمائید -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=تائید نوسازی واحد OnMobileOnly=تنها روی صفحات کوچک (تلفن‌هوشمند) 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=حذف جمع‌آورندۀ رایانامه ConfirmDeleteEmailCollector=آیا مطمئن هستید می‌خواهید این جمع‌آورندۀ رایانامه را حذف کنید؟ RecipientEmailsWillBeReplacedWithThisValue=رایانامه‌های دریافت‌کننده همواره با این مقدار جایگزین می‌شود AtLeastOneDefaultBankAccountMandatory=حداقل 1 حساب بانکی باید تعریف شود -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= برپاسازی فهرست‌موجودی +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 = تنظیمات +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/fa_IR/companies.lang b/htdocs/langs/fa_IR/companies.lang index c7200d15275..45a36aca7b1 100644 --- a/htdocs/langs/fa_IR/companies.lang +++ b/htdocs/langs/fa_IR/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=منطقۀ موردبازرسی IdThirdParty=شناسۀ شخص‌سوم IdCompany=شناسۀ شرکت IdContact=شناسۀ طرف‌تماس +ThirdPartyAddress=Third-party address ThirdPartyContacts=طرف‌های تماس شخص سوم ThirdPartyContact=طرف‌تماس‌ها/نشانی‌ شخص‌سوم Company=شرکت @@ -51,19 +52,22 @@ CivilityCode=کد ملی RegisteredOffice=دفتر ثبتی Lastname=نام خانوادگی Firstname=نام +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=مرتبۀ شغلی UserTitle=عنوان 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=اسکایپ @@ -102,6 +106,7 @@ WrongSupplierCode=کد فروشنده نامعتبر است CustomerCodeModel=شکل کد مشتری SupplierCodeModel=شکل کد فروشنده Gencod=بارکد +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=شناسۀ کاری 1 ProfId2Short=شناسۀ کاری 2 @@ -159,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=دیگران ProfId6ShortCM=- ProfId1CO=شناسۀ کاری 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=فهرست شخص‌سوم‌ها ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=همه (بدون صافی) -ContactType=نوع طرف‌تماس +ContactType=Contact role ContactForOrders=طرف‌تماس مربوط به سفارش ContactForOrdersOrShipments=طرف‌تماس مربوط به سفارش یا ارسال ContactForProposals=طرف‌تماس مربوط به پیشنهاد 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/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 9ba0fde6f90..9418dc5ba06 100644 --- a/htdocs/langs/fa_IR/install.lang +++ b/htdocs/langs/fa_IR/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=فایل پیکربندی %s قابل نوشتن ن ConfFileIsWritable=فایل پیکربندی %s قابل نوشتن است ConfFileMustBeAFileNotADir=فایل پیکربندی %sباید یک فایل باشد، نه یک پوشه. ConfFileReload=بارگذاری مجدد مقادیر از فایل پیکربندی. +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 از قابلیت نشست‌ پشتیبانی می‌کند. @@ -16,13 +17,6 @@ PHPMemoryOK=حداکثر حافظۀ اختصاص داده شده به نشست PHPMemoryTooLow=حداکثر حافظۀ مورد استفاده در یک نشست در PHP شما در حد %s بایت تنظیم شده است. این میزان بسیار کمی است. فایل php.ini را ویرایش نموده و مقدار memory_limit را حداقل برابر %s بایت تنظیم کنید Recheck=برای یک آزمایش دقیق‌تر این‌جا کلیک کنید ErrorPHPDoesNotSupportSessions=نسخۀ PHP شما از نشست‌ها پشتیبانی نمی‌کند. این قابلیت برای فعالیت Dolibarr لازم است. تنظیمات و برپاسازی PHP و مجوزهای پوشۀ sessions را بررسی کنید. -ErrorPHPDoesNotSupportGD=این نسخه از PHP از توابع گرافیکی GD پشتیبانی نمی‌کند. هیچ نموداری در دسترس نخواهد بود -ErrorPHPDoesNotSupportCurl=نسخۀ PHP نصب شدۀ شما از Curl پشتیبانی نمی‌کند. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=نسخۀ PHP نصب شدۀ شما از توابع UTF8 پشتیبانی نمی‌کند. Dolibarr نمی‌تواند به درستی کار کند. قبل از نصب Dolibarr این مشکل را حل کنید. -ErrorPHPDoesNotSupportIntl=نسخۀ نصب شدۀ PHP شما از توابع Intl پشتیبانی نمی‌کند. -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=پوشۀ %s وجود ندارد. ErrorGoBackAndCorrectParameters=به عقب برگردید و مقادیر را بررسی/اصلاح کنید. @@ -30,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/main.lang b/htdocs/langs/fa_IR/main.lang index 989faeb7c9f..9e142144bba 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -244,6 +244,7 @@ Designation=توضیحات DescriptionOfLine=توضیحات سط DateOfLine=تاریخ سطر DurationOfLine=مدت‌زمان سطر +ParentLine=Parent line ID Model=قالب سن DefaultModel=قابل پیش‌فرض برای سن Action=رویداد @@ -344,7 +345,7 @@ KiloBytes=کیلوبایت MegaBytes=مگابایت GigaBytes=گیگابایت TeraBytes=ترابایت -UserAuthor=Ceated by +UserAuthor=ساخته‌شده توسط UserModif=Updated by b=ب. Kb=کیلوبایت @@ -517,6 +518,7 @@ or=یا Other=دیگر Others=دیگران OtherInformations=سایر اطلاعات +Workflow=گردش‌کار Quantity=تعداد Qty=تعداد ChangedBy=تغییر توسط @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=این قابلیت غیرفعال است MoveBox=جابجا کردن وسیله Offered=پیشنهادشده NotEnoughPermissions=شما مجاز به انجام این کار نیستید +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=نام نشست Method=روش Receive=دریافت @@ -798,6 +802,7 @@ URLPhoto=نشانی تصویر/نماد SetLinkToAnotherThirdParty=پیوند به شخص‌سوم دیگر LinkTo=پیوند به LinkToProposal=پیوند به پیشنهاد +LinkToExpedition= Link to expedition LinkToOrder=پیوند به سفارش LinkToInvoice=پیوند به صورت‌حساب LinkToTemplateInvoice=پیوند به قالب صورت‌حساب @@ -1164,3 +1169,14 @@ 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 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/fa_IR/members.lang b/htdocs/langs/fa_IR/members.lang index 99109b48b86..52bc144e179 100644 --- a/htdocs/langs/fa_IR/members.lang +++ b/htdocs/langs/fa_IR/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=یکی دیگر از عضو (نام ErrorUserPermissionAllowsToLinksToItselfOnly=به دلایل امنیتی، شما باید مجوز اعطا شده به ویرایش تمام کاربران قادر به پیوند عضو به یک کاربر است که مال شما نیست. SetLinkToUser=پیوند به یک کاربر Dolibarr SetLinkToThirdParty=لینک به شخص ثالث Dolibarr -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=فهرست کاربران MembersListToValid=لیست اعضای پیش نویس (به اعتبار شود) MembersListValid=لیست اعضای معتبر @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=نام کاربری +MemberId=Member Id +MemberRef=Member Ref NewMember=عضو جدید MemberType=نوع کاربران MemberTypeId=نوع شناسه عضو @@ -159,11 +160,11 @@ HTPasswordExport=نسل فایل htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=اقدام مکمل در ضبط -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=ایجاد یک فاکتور بدون پرداخت -LinkToGeneratedPages=ایجاد کارت های کسب و +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=این صفحه نمایش شما اجازه می دهد برای تولید فایل های PDF با کارت های کسب و کار برای همه اعضای خود را یا یکی از اعضای خاص است. DocForAllMembersCards=ایجاد کارت های کسب و کار برای همه اعضای DocForOneMemberCards=ایجاد کارت های کسب و کار برای یک عضو خاص @@ -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/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index 6024d53da29..60ddd34624b 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=مدیریت اعضای پایه DemoFundation2=مدیریت اعضا و حساب بانکی از یک پایه DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=مدیریت یک فروشگاه با یک میز نقدی +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = بستن +Autofill = Autofill diff --git a/htdocs/langs/fa_IR/projects.lang b/htdocs/langs/fa_IR/projects.lang index 13df6369665..d42d986d8da 100644 --- a/htdocs/langs/fa_IR/projects.lang +++ b/htdocs/langs/fa_IR/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=برچسب طرح ProjectsArea=بخش طرح‌ها ProjectStatus=وضعیت طرح SharedProject=همگان -PrivateProject=طرف‌های تماس طرح +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=همۀ طرح‌هائی که قابل مطالعۀ من است (مربوط به من + عمومی) AllProjects=همۀ طرح‌ها @@ -190,6 +190,7 @@ 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 InputPerDay=ورودی در روز InputPerWeek=ورودی در هفته @@ -287,3 +288,9 @@ 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=تاریخ پایان نمی‌تواند قبل از تاریخ شروع باشد +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 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 b3ce7ad3357..f112843022f 100644 --- a/htdocs/langs/fa_IR/ticket.lang +++ b/htdocs/langs/fa_IR/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=یک رابط عمومی که بدون نیاز به تائی TicketSetupDictionaries=نوع برگه، حساسیت آن و کدهای تحلیلی از طریق واژه‌نامه‌ها قابل پیگربندی است TicketParamModule=برپاسازی متغیرهای واحد TicketParamMail=برپاسازی رایانامه -TicketEmailNotificationFrom=رایانامۀ اطلاع‌رسانی از -TicketEmailNotificationFromHelp=برای مثال استفاده شده برای پاسخ به برگه -TicketEmailNotificationTo=رایانامۀ اطلاع‌رسانی به -TicketEmailNotificationToHelp=ارسال رایانامۀ اطلاع‌رسانی به این نشانی. +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 TicketNewEmailBodyLabel=پیام متنی ارسال شده پس از ساخت یک برگه TicketNewEmailBodyHelp=نوشته‌ای که اینجا وارد می‌شود، در رایانامه درج می‌شود تا تائید کنندۀ ساخت یک برگه از رابط عمومی باشد. اطلاعات مربوط به مشاوره‌های برگه به طور خودکار اضافه می‌شود. TicketParamPublicInterface=برپاسازی رابط عمومی @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=گیرنده خالی است. را TicketGoIntoContactTab=به زبانۀ "طرف‌های تماس" رفته تا آنان را انتخاب کنید TicketMessageMailIntro=مقدمه TicketMessageMailIntroHelp=این نوشته تنها در ابتدای رایانامه اضافه خواهد شد و قابل ذخیره نیست -TicketMessageMailIntroLabelAdmin=مقدمۀ پیام در هنگام ارسال رایانامه -TicketMessageMailIntroText=سلام،
    یک پاسخ جدید به برگۀ‌پشتیبانی مربوط به شما ارسال شده است. پیام به شرح زیر است:
    -TicketMessageMailIntroHelpAdmin=نوشته قبل از متن پاسخ به یک برگۀ‌پشتیبانی اضافه خواهد شد +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=

    با احترام،

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=امضای نامۀ پاسخ TicketMessageMailSignatureHelpAdmin=این نوشته پس از پیام پاسخ درج خواهد شد TicketMessageHelp=تنها این نوشته در فهرست پیام در کارت برگۀ‌پشتیبانی ذخیره خواهد شد @@ -238,9 +252,16 @@ TicketChangeStatus=تغییر وضعیت TicketConfirmChangeStatus=تائید تغییر وضعیت به: %s ؟ TicketLogStatusChanged=وضعیت تغییر پیدا کرد: %s به %s TicketNotNotifyTiersAtCreate=عدم اطلاع‌رسانی به شرکت در هنگام ساخت +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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,8 +289,9 @@ TicketNewEmailBody=این یک رایانامۀ خودکار است که به ش TicketNewEmailBodyCustomer=این یک رایانامۀ خودکار است که تاکید می‌کند که یک برگۀ‌پشتیبانی در حساب‌کاربری شما ساخته شده است. TicketNewEmailBodyInfosTicket=اطلاعات برای زیرنظرگرفتن برگۀ‌پشتیبانی TicketNewEmailBodyInfosTrackId=شمارۀ رهگیری برگه: %s -TicketNewEmailBodyInfosTrackUrl=شما می‌توانید میزان پیش‌رفت برگه را با کلیک بر روی پیوند فوق ببینید. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=شما می‌توانید میزان پیش‌رفت برگه را در یک رابط اختصاصی با کلیک بر روی پیوند خود مشاهده کنید +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=لطفا این رایانامه را مستقیما جواب ندهید! برای پاسخ دادن در رابط اختصاصی، روی پیوند کلیک نمائید TicketPublicInfoCreateTicket=این برگه به شما امکان ثبت یک برگۀ پشتیبانی در سامانۀ مدیریت ما را می‌دهد. TicketPublicPleaseBeAccuratelyDescribe=لطفا مشکل را با دقت توضیح دهید. حداکثر اطلاعاتی که ممکن است درج کنید تا ما بتوانیم درخواست شما را به‌درستی تشخیص دهیم. @@ -291,6 +313,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: TicketNotificationEmailSubject=برگۀ‌پشتیبانی %s روزآمد شد TicketNotificationEmailBody=این پیام خودکار جهت اطلاع شما در خصوص روزآمد شدن برگۀ %s است TicketNotificationRecipient=گیرندۀ آگاهی‌رسانی diff --git a/htdocs/langs/fa_IR/users.lang b/htdocs/langs/fa_IR/users.lang index f6589ad78a9..2d445b0f99f 100644 --- a/htdocs/langs/fa_IR/users.lang +++ b/htdocs/langs/fa_IR/users.lang @@ -114,7 +114,7 @@ UserLogoff=خروج کاربر UserLogged=کاربر وارد شده DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=تاریخ شروع استخدام +DateEmploymentStart=تاریخ شروع استخدام DateEmploymentEnd=تاریخ پایان استخدام RangeOfLoginValidity=Access validity date range CantDisableYourself=شما نمی‌توانید ردیف کاربری خود را غیرفعال کنید @@ -124,3 +124,7 @@ 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 diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index a1f177033a2..58ce91f6e44 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -109,7 +109,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ä @@ -477,7 +477,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 @@ -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=Klikkaa näyttääksesi kuvaus DependsOn=Tämä moduuli tarvitsee moduulit RequiredBy=Moduuli (t) vaativat tämän moduulin @@ -714,13 +714,14 @@ 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 Permission39=Ohita vähimmäishinta -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=Vie Projektit Permission61=Lue interventioiden Permission62=Luoda / muuttaa interventioiden @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Luoda / muuttaa kolmansien osapuolten liittyy käyttäjän Permission125=Poista kolmansien osapuolten liittyy käyttäjän Permission126=Vienti kolmansiin osapuoliin 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=Lue tarjoajien Permission147=Lue stats Permission151=Lue suoraveloitusmaksumääräykset @@ -873,6 +876,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 @@ -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=Lue materiaaliluettelo Permission651=Luo/päivitä materiaaliluettelo Permission652=Poista materiaaliluettelo @@ -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=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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Kuluraportti - Kuljetuskategoriat DictionaryExpenseTaxRange=Kuluraportti - alue kuljetusluokittain DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Yksikön tyyppi SetupSaved=Asetukset tallennettu SetupNotSaved=Asetuksia ei tallennettu @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Pankkitilit moduuli ei ole käytössä 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=Hälytykset -DelaysOfToleranceBeforeWarning=Viive ennen kuin hälytys aktivoituu: +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=Projektia ei suljettu ajoissa @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Aktivoidut moduulit TotalNumberOfActivatedModules=Aktivoidut moduulit: %s / %s YouMustEnableOneModule=Sinulla pitää olla ainakin 1 moduuli käytössä +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Luokkaa %s ei löydy PHP-polusta YesInSummer=Kyllä kesällä 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=Maksujen numerointimalli 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. ##### Proposals ##### PropalSetup=Kaupalliset ehdotuksia moduulin asetukset ProposalsNumberingModules=Kaupalliset ehdotus numerointiin modules @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Korosta taulukon rivit hiiren liikkuessa niiden päällä 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=Sivun otsikon tekstin väri @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=Tämä kenttä sisältää viitteen linjan tunnistamiseksi. Syötä Enter0or1=Syötä 0 tai 1 UnicodeCurrency=Kirjoita tähän aaltosulkeiden väliin, luettelo tavunumerosta, joka edustaa valuuttasymbolia. Esimerkiksi: kirjoita $: lle [36] - Brasilian real:lle R $ [82,36] - €: lle, kirjoita [8364] ColorFormat=RGB-väri on HEX-muodossa, esim .: 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=Viivan sijainti yhdistelmäluetteloissa 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=Ostotilaukset MailToSendSupplierInvoice=Toimittajan laskut MailToSendContract=Sopimukset MailToSendReception=Receptions +MailToExpenseReport=Kulutositteet MailToThirdparty=Sidosryhmät MailToMember=Jäsenet MailToUser=Käyttäjät @@ -2019,6 +2035,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 @@ -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=Kopiota ei sallita GDPRContact=Tietosuojavastaava (tietosuojavastaava, tietosuoja- tai GDPR-yhteyshenkilö) -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=Ohjeteksti näytettäväksi työkaluvihjeessä HelpOnTooltipDesc=Lisää teksti tai käännösavain tähän, jotta teksti näkyy työkaluvihjessä, kun tämä kenttä näkyy lomakkeessa YouCanDeleteFileOnServerWith=Voit poistaa tämän tiedoston palvelimelta komentorivillä:
    %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=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 CollectNow=Kerää nyt -ConfirmCloneEmailCollector=Haluatko varmasti kloonata sähköpostin kerääjän %s? +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 an agenda event. EmailCollectorConfirmCollectTitle=Sähköpostikeräyksen vahvistus -EmailCollectorConfirmCollect=Haluatko suorittaa tämän keräilijän kokoelman nyt? +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=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, 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=Viimeisin tuloskoodi NbOfEmailsInInbox=Lähdehakemistossa olevien sähköpostien määrä LoadThirdPartyFromName=Lataa kolmannen osapuolen haku sivustolta %s (vain lataus) @@ -2082,14 +2118,14 @@ 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 UseSearchToSelectResource=Käytä hakulomaketta resurssin valitsemiseksi (pikavalikon sijaan). DisabledResourceLinkUser=Poista ominaisuus käytöstä linkittääksesi resurssin käyttäjiin DisabledResourceLinkContact=Poista ominaisuus käytöstä linkittääksesi resurssin kontakteihin -EnableResourceUsedInEventCheck=Ota ominaisuus käyttöön tarkistaaksesi, onko resurssi käytössä tapahtumassa +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Vahvista moduulin nollaus OnMobileOnly=Vain pienellä näytöllä (älypuhelin) DisableProspectCustomerType=Poista käytöstä "Prospekti + Asiakas" -tyyppi (joten kolmannen osapuolen on oltava "Prospekti" tai "Asiakas", mutta ei voi olla molempia) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Poista sähköpostin kerääjä ConfirmDeleteEmailCollector=Haluatko varmasti poistaa tämän sähköpostin kerääjän? RecipientEmailsWillBeReplacedWithThisValue=Vastaanottajien sähköpostiosoitteet korvataan aina tällä arvolla AtLeastOneDefaultBankAccountMandatory=Vähintään 1 pankkitili täytyy määrittää -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=Perustuu SabreDAV-versioon NotAPublicIp=Ei julkinen IP-osoite @@ -2144,6 +2180,9 @@ 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 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 = 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 +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/fi_FI/companies.lang b/htdocs/langs/fi_FI/companies.lang index 63acef2de06..8f949866099 100644 --- a/htdocs/langs/fi_FI/companies.lang +++ b/htdocs/langs/fi_FI/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Uusien mahdollisuuksien alue IdThirdParty=Sidosryhmän tunnus IdCompany=Yritystunnus IdContact=Yhteystiedon tunnus +ThirdPartyAddress=Third-party address ThirdPartyContacts=Sidosryhmien yhteyshenkilöt ThirdPartyContact=Sidosryhmän yhteystiedot/osoitteet Company=Yritys @@ -51,19 +52,22 @@ CivilityCode=Siviilisääty RegisteredOffice=Kotipaikka Lastname=Sukunimi Firstname=Etunimi +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Asema UserTitle=Titteli 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Toimittajan tunnus virheellinen CustomerCodeModel=Asiakastunnuksen malli SupplierCodeModel=Toimittajakoodin malli Gencod=Viivakoodi +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof id 1 ProfId2Short=Prof id 2 @@ -159,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=Muut ProfId6ShortCM=- ProfId1CO=Professori Id 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Sidosryhmäluettelo ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Kaikki (Ei suodatinta) -ContactType=Yhteystiedon tyyppi +ContactType=Contact role ContactForOrders=Tilauksen yhteystiedon ContactForOrdersOrShipments=Tilauksen tai lähetyksen yhteystiedot ContactForProposals=Tarjouksen yhteyshenkilö 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/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 ffca553a4f2..b04fead3436 100644 --- a/htdocs/langs/fi_FI/install.lang +++ b/htdocs/langs/fi_FI/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Sinun PHP max istuntojakson muisti on asetettu %s. Tämän pi 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=Sinun PHP asennuksesi ei tue 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=Hakemiston %s ei ole olemassa. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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/main.lang b/htdocs/langs/fi_FI/main.lang index 8e4a8be635c..2665e5e68c3 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -244,6 +244,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 +345,7 @@ KiloBytes=Kilotavua MegaBytes=Megatavua GigaBytes=Gigatavua TeraBytes=Teratavua -UserAuthor=Ceated by +UserAuthor=Luonut UserModif=Updated by b=b. Kb=Kb @@ -517,6 +518,7 @@ or=tai Other=Muu Others=Muut OtherInformations=Other information +Workflow=Työtehtävät Quantity=Määrä Qty=Kpl ChangedBy=Muuttanut @@ -619,6 +621,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 +712,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 +802,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 @@ -1164,3 +1169,14 @@ 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 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/fi_FI/members.lang b/htdocs/langs/fi_FI/members.lang index 79e6a8fa6f7..4a819ff6665 100644 --- a/htdocs/langs/fi_FI/members.lang +++ b/htdocs/langs/fi_FI/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Luettelo jäsenistä MembersListToValid=Luettelo luonnoksen jäsenten (jotka on vahvistettu) MembersListValid=Luettelo voimassa jäseniä @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Jäsen id +MemberId=Member Id +MemberRef=Member Ref NewMember=Uusi jäsen MemberType=Jäsen tyyppi MemberTypeId=Jäsen tyyppi id @@ -159,11 +160,11 @@ HTPasswordExport=htpassword tiedosto sukupolven NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Täydentäviä toimia tallennus -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=Luo laskun maksua -LinkToGeneratedPages=Luo käyntikorttini +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Tässä näytössä voit luoda PDF-tiedostoja käyntikortit kaikki jäsenet tai tietyssä jäsenvaltiossa. DocForAllMembersCards=Luo käyntikortteja kaikkien jäsenten (malli lähtö todella setup: %s) DocForOneMemberCards=Luo käyntikortit erityisesti jäsen (malli lähtö todella setup: %s) @@ -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/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index addd43c0748..466387849f8 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Hallitse jäseniä säätiön DemoFundation2=Jäsenten hallinta ja pankkitilille säätiön DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Hallinnoi liikkeen kanssa kassa +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Sulje +Autofill = Autofill diff --git a/htdocs/langs/fi_FI/projects.lang b/htdocs/langs/fi_FI/projects.lang index 3eec3031322..a7aa3a56a39 100644 --- a/htdocs/langs/fi_FI/projects.lang +++ b/htdocs/langs/fi_FI/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Projektin tila SharedProject=Yhteiset hanke -PrivateProject=Hankkeen yhteystiedot +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=Omat ja muiden projektit AllProjects=Kaikki hankkeet @@ -190,6 +190,7 @@ PlannedWorkload=Planned workload PlannedWorkloadShort=Workload ProjectReferers=Liittyvät tuotteet 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 @@ -287,3 +288,9 @@ 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 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 d2d7c6b5682..f9e1f7f8e6a 100644 --- a/htdocs/langs/fi_FI/ticket.lang +++ b/htdocs/langs/fi_FI/ticket.lang @@ -90,10 +90,10 @@ 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=Ilmoitusviesti käyttäjältä -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=Lähetä sähköposti muistutus tähän osoitteeseen. +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 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 @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send TicketGoIntoContactTab=Please go into "Contacts" tab to select them TicketMessageMailIntro=Esittely 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. +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=

    Sincerely,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Signature of response email TicketMessageMailSignatureHelpAdmin=Tämä teksti lisätään vastaus viestin jälkeen. TicketMessageHelp=Only this text will be saved in the message list on ticket card. @@ -238,9 +252,16 @@ TicketChangeStatus=Vaihda tila 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=Lukematon 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,8 +289,9 @@ TicketNewEmailBody=Tämä on automaattinen sähköpostiviestin varmenne, että u 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=Voit katsoa tikettisi edistymistä painamalla yläpuolella olevaa linkkiä. +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=Kuvaile tarkasti ongelmasi. Kertomalla mahdollisimman paljon informaatiota autat meitä tunnistamaan pyyntösi oikean ongelman. @@ -291,6 +313,10 @@ NewUser=Uusi käyttäjä 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=Tämä on automaattinen viestimuistutus sinulle, että tikettisi %s tila on juuri päivitetty TicketNotificationRecipient=Notification recipient diff --git a/htdocs/langs/fr_BE/exports.lang b/htdocs/langs/fr_BE/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/fr_BE/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/fr_BE/products.lang b/htdocs/langs/fr_BE/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/fr_BE/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index 41812f1e821..a04f84af674 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -72,6 +72,7 @@ ExtrafieldCheckBoxFromList=Les cases à cocher du tableau ExtrafieldLink=Lier à un objet LibraryToBuildPDF=Bibliothèque utilisée pour la génération de PDF CurrentlyNWithoutBarCode=Actuellement, vous avez %s enregistrements sur %s %s sans code à barres défini. +InitEmptyBarCode=Init value for the %s empty barcodes ConfirmEraseAllCurrentBarCode=Êtes-vous sûr de vouloir effacer toutes les valeurs actuelles du code-barres? EnableFileCache=Activer le cache de fichiers DisplayCompanyManagers=Afficher les noms des gestionnaires @@ -102,7 +103,6 @@ Permission91=Consulter les charges et la TPS/TVH Permission92=Créer/modifier les charges et la TPS/TVH Permission93=Supprimer les charges et la TPS/TVH Permission94=Exporter les charges -Permission144=Supprimer tous les projets et tâches (y compris privés dont je ne suis pas contact) Permission151=Lire les ordres de paiement de débit direct Permission152=Créer / modifier des ordres de paiement de débit direct Permission153=Envoyer / Transmettre les ordres de paiement de débit direct @@ -120,7 +120,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 @@ -199,7 +198,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 @@ -213,6 +211,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 ) @@ -238,8 +237,6 @@ 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) 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;'
    -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/fr_CA/assets.lang b/htdocs/langs/fr_CA/assets.lang index c433abc02a3..1bf0b2bbbc4 100644 --- a/htdocs/langs/fr_CA/assets.lang +++ b/htdocs/langs/fr_CA/assets.lang @@ -1,9 +1,3 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Atouts -NewAsset =Nouvel Atout -AssetsLines=Atouts -ModuleAssetsName =Atouts -MenuAssets =Atouts -MenuNewAsset =Nouvel Atout -MenuNewTypeAssets =Nouveau NewAsset=Nouvel Atout +AssetsLines=Atouts diff --git a/htdocs/langs/fr_CA/banks.lang b/htdocs/langs/fr_CA/banks.lang index 037950c8aca..13268b9c030 100644 --- a/htdocs/langs/fr_CA/banks.lang +++ b/htdocs/langs/fr_CA/banks.lang @@ -30,7 +30,6 @@ AddBankRecord=Ajouter une entrée AddBankRecordLong=Ajouter une entrée manuellement Conciliated=Reconcilié BankLineConciliated=Entrée reconciliée avec reçu bancaire -Reconciled=Réconcilié SocialContributionPayment=Règlement charge sociale MenuBankInternalTransfer=Transfert interne TransferTo=À 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 b9fa031ae48..8d8237ae1a4 100644 --- a/htdocs/langs/fr_CA/install.lang +++ b/htdocs/langs/fr_CA/install.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - install -ErrorPHPDoesNotSupportCurl=Votre installation PHP ne prend pas en charge Curl. +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/members.lang b/htdocs/langs/fr_CA/members.lang index 5f0471aae42..a07f2e193ce 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 @@ -67,7 +66,6 @@ MoreActions=Action complémentaire sur l'enregistrement MoreActionBankDirect=Créer une entrée directe sur un compte bancaire MoreActionBankViaInvoice=Créer une facture et un paiement sur un compte bancaire MoreActionInvoiceOnly=Créer une facture sans paiement -LinkToGeneratedPages=Générer des cartes de visite LinkToGeneratedPagesDesc=Cet écran vous permet de générer des fichiers PDF avec des cartes de visite pour tous vos membres ou un membre particulier. DocForAllMembersCards=Générer des cartes de visite pour tous les membres DocForOneMemberCards=Générer des cartes de visite pour un membre particulier 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/other.lang b/htdocs/langs/fr_CA/other.lang index f9ca31c6f78..633c3a34451 100644 --- a/htdocs/langs/fr_CA/other.lang +++ b/htdocs/langs/fr_CA/other.lang @@ -37,7 +37,6 @@ ChooseYourDemoProfilMore=... ou créez votre propre profil
    (sélection du m DemoFundation=Gérer les membres d'une fondation DemoFundation2=Gérer les membres et le compte bancaire d'une fondation DemoCompanyServiceOnly=Société ou service de vente indépendant uniquement -DemoCompanyShopWithCashDesk=Gérer un magasin avec une caisse DemoCompanyAll=Entreprise avec plusieurs activités (tous les modules principaux) ValidatedBy=Valider par %s ClosedBy=Fermé par %s diff --git a/htdocs/langs/fr_CA/projects.lang b/htdocs/langs/fr_CA/projects.lang index da20c99be8e..db0b3e29f94 100644 --- a/htdocs/langs/fr_CA/projects.lang +++ b/htdocs/langs/fr_CA/projects.lang @@ -4,7 +4,6 @@ ProjectId=Id de projet ProjectLabel=Étiquette du projet ProjectsArea=Zone de projets ProjectStatus=L'état du projet -PrivateProject=Contacts de projet AllAllowedProjects=Tout le projet que je peux lire (mine + public) ProjectsPublicDesc=Cette vue présente tous les projets que vous êtes autorisé à lire. TasksOnProjectsPublicDesc=Cette vue présente toutes les tâches sur les projets que vous êtes autorisé à lire. @@ -12,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 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/companies.lang b/htdocs/langs/fr_CH/companies.lang index 8d5d6e0ceb4..3e11c9a6b93 100644 --- a/htdocs/langs/fr_CH/companies.lang +++ b/htdocs/langs/fr_CH/companies.lang @@ -1,8 +1,2 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation PL_UNKNOWN=Inconnue diff --git a/htdocs/langs/fr_CH/exports.lang b/htdocs/langs/fr_CH/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/fr_CH/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/fr_CH/members.lang b/htdocs/langs/fr_CH/members.lang index 43966e73c29..83fd3157625 100644 --- a/htdocs/langs/fr_CH/members.lang +++ b/htdocs/langs/fr_CH/members.lang @@ -10,7 +10,6 @@ ListOfValidatedPublicMembers=Liste des membres publics validés ErrorThisMemberIsNotPublic=Ce membre n'est pas public ErrorMemberIsAlreadyLinkedToThisThirdParty=Un autre membre (nom: %s, connexion: %s) est déjà lié à un tiers %s. Supprimez ce lien en premier parce qu'un tiers ne peut être lié qu'à un membre (et vice versa). ErrorUserPermissionAllowsToLinksToItselfOnly=Pour des raisons de sécurité, vous devez être autorisé à modifier tous les utilisateurs pour pouvoir lier un membre à un utilisateur qui n'est pas le vôtre. -MembersCards=Cartes de visite pour les membres MembersList=Liste des membres MembersListToValid=Liste des brouillons de membres (à valider) MembersListValid=Liste des membres validés diff --git a/htdocs/langs/fr_CH/products.lang b/htdocs/langs/fr_CH/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/fr_CH/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/fr_CI/accountancy.lang b/htdocs/langs/fr_CI/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/fr_CI/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/fr_CI/companies.lang b/htdocs/langs/fr_CI/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/fr_CI/companies.lang +++ b/htdocs/langs/fr_CI/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/fr_CI/exports.lang b/htdocs/langs/fr_CI/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/fr_CI/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/fr_CI/products.lang b/htdocs/langs/fr_CI/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/fr_CI/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/fr_CM/accountancy.lang b/htdocs/langs/fr_CM/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/fr_CM/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/fr_CM/companies.lang b/htdocs/langs/fr_CM/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/fr_CM/companies.lang +++ b/htdocs/langs/fr_CM/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/fr_CM/exports.lang b/htdocs/langs/fr_CM/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/fr_CM/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/fr_CM/products.lang b/htdocs/langs/fr_CM/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/fr_CM/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index fa9e2203eea..83d10982ca2 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -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 @@ -62,7 +63,7 @@ MainAccountForSubscriptionPaymentNotDefined=Le compte comptable général des pa AccountancyArea=Espace comptabilité AccountancyAreaDescIntro=L'utilisation du module de comptabilité se fait en plusieurs étapes: AccountancyAreaDescActionOnce=Les actions suivantes sont habituellement exécutées une seule fois, ou une fois par an ... -AccountancyAreaDescActionOnceBis=Les prochaines étapes doivent être faites pour vous faire gagner du temps à l'avenir en vous proposant le bon compte comptable par défaut lors de la ventilation (écriture des enregistrements dans les journaux et grand livre) +AccountancyAreaDescActionOnceBis=Les prochaines étapes doivent être faites pour vous faire gagner du temps à l'avenir en vous proposant le bon compte comptable par défaut lors de la ventilation (écrire des enregistrements dans les journaux et grand livre) AccountancyAreaDescActionFreq=Les actions suivantes sont habituellement exécutées chaque mois, semaine, ou jour pour les très grandes entreprises ... AccountancyAreaDescJournalSetup=Étape %s : Créer ou vérifier le contenu de la liste des journaux depuis le menu %s @@ -71,7 +72,7 @@ AccountancyAreaDescChart=Étape %s : Sélectionnez et | ou complétez votre plan AccountancyAreaDescVat=Étape %s : Définissez les comptes comptables de chaque taux de TVA utilisé. Pour cela, suivez le menu suivant %s. AccountancyAreaDescDefault=Étape %s : Définir les comptes de comptabilité par défaut. Pour cela, utilisez l'entrée de menu %s. -AccountancyAreaDescExpenseReport=Étape %s : Définissez les comptes comptables par défaut des dépenses des notes de frais. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescExpenseReport=Étape %s : Définissez les comptes comptables par défaut des dépenses des notes de frais. Pour cela, suivez le menu %s. AccountancyAreaDescSal=Étape %s : Définissez les comptes comptables de paiements de salaires. Pour cela, suivez le menu suivant %s. AccountancyAreaDescContrib=Étape %s : Définissez les comptes comptables des dépenses spéciales (taxes diverses). Pour cela, suivez le menu suivant %s. AccountancyAreaDescDonation=Étape %s : Définissez le compte comptable par défaut des dons. Pour cela, suivez le menu suivant %s. @@ -79,7 +80,7 @@ AccountancyAreaDescSubscription=Étape %s : définissez les comptes de comptabil 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 du menu suivant %s. AccountancyAreaDescLoan=Étape %s : Définissez les comptes comptables par défaut des emprunts. Pour cela, suivez le menu suivant %s. AccountancyAreaDescBank=Étape %s : Définissez les comptes comptables et les codes des journaux de chaque compte bancaire et financier. Vous pouvez commencer à partir de la page %s. -AccountancyAreaDescProd=Étape %s : Définissez les comptes comptables sur vos produits/services. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescProd=Étape %s : Définissez les comptes comptables sur vos produits/services. Pour cela, utilisez la page suivante %s. AccountancyAreaDescBind=Étape %s : Vérifier que la liaison entre les %s lignes existantes et le compte comptable est faite, ainsi l'application sera capable d'inscrire les transaction dans le grand livre en un seul clic. Compléter les liaisons manquantes. Pour cela, suivez le menu suivant %s. AccountancyAreaDescWriteRecords=Étape %s: Ecrire les transactions dans le grand livre. Pour cela, suivez le menu %s, et cliquer sur le bouton %s. @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Liaison notes de frais CreateMvts=Créer nouvelle transaction UpdateMvts=Modification d'une transaction ValidTransaction=Valider la transaction -WriteBookKeeping=Enregistrer les écritures en comptabilité +WriteBookKeeping=Enregistrer les transactions en comptabilité Bookkeeping=Grand livre BookkeepingSubAccount=Grand livre auxiliaire AccountBalance=Balance des comptes @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Compte comptable pour l'enregistrement des dons ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Compte comptable pour enregistrer les adhésions ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Compte comptable par défaut pour les acomptes clients +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 comptable par défaut pour enregistrer l'acompte fournisseur +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=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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=Par groupes prédéfinis ByPersonalizedAccountGroups=Par groupes personnalisés ByYear=Par année NotMatch=Non défini -DeleteMvt=Supprimer des lignes d'opérations de la comptabilité +DeleteMvt=Supprimer certaines lignes de la comptabilité DelMonth=Mois à effacer DelYear=Année à supprimer DelJournal=Journal à supprimer -ConfirmDeleteMvt=Cette action supprime les lignes des opérations pour l'année/mois et/ou pour le journal sélectionné (au moins un critère est requis). Vous devrez utiliser de nouveau la fonctionnalité '%s' pour retrouver vos écritures dans la comptabilité. -ConfirmDeleteMvtPartial=Cette action supprime l'écriture de la comptabilité (toutes les lignes opérations liées à une même écriture seront effacées). +ConfirmDeleteMvt=Cela supprimera toutes les lignes en comptabilité pour l'année/mois et/ou pour un journal spécifique (Au moins un critère est requis). Vous devrez réutiliser la fonctionnalité '%s' pour que l'enregistrement supprimé revienne dans le grand livre. +ConfirmDeleteMvtPartial=Cela supprimera la transaction de la comptabilité (toutes les lignes liées à la même transaction seront supprimées) FinanceJournal=Journal de trésorerie ExpenseReportsJournal=Journal des notes de frais DescFinanceJournal=Journal de trésorerie comprenant tous les types de paiements par compte bancaire / caisse @@ -278,30 +282,31 @@ 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=Consultez ici le nombre de mouvements par mois non validés et les périodes fiscales déjà ouvertes -OverviewOfMovementsNotValidated=Etape 1/ Aperçu des mouvements non validés. (Nécessaire pour clôturer un exercice comptable) -AllMovementsWereRecordedAsValidated=Tous les mouvements ont été enregistrés et validés -NotAllMovementsCouldBeRecordedAsValidated=Tous les mouvements n'ont pas pu être enregistrés et validés -ValidateMovements=Valider les mouvements +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... 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é -MvtNotCorrectlyBalanced=Mouvement non équilibré. Débit = %s| Crédit = %s +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=Plus d'enregistrements à journaliser +NoNewRecordSaved=Aucune ligne à transférer ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte comptable ChangeBinding=Changer les liens Accounted=En comptabilité NotYetAccounted=Pas encore transféré en comptabilité ShowTutorial=Afficher le tutoriel NotReconciled=Non rapproché -WarningRecordWithoutSubledgerAreExcluded=Attention : toutes les opérations sans compte auxiliaire défini sont filtrées et exclues de cet écran +WarningRecordWithoutSubledgerAreExcluded=Attention, toutes les lignes sans compte auxiliaire défini sont filtrées et exclues de cette vue +AccountRemovedFromCurrentChartOfAccount=Compte comptable qui n'existe pas dans le plan comptable actuel ## Admin BindingOptions=Options de liaisons avec les codes comptables @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Désactiver la liaison et le transfert e 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é). ## Export -NotifiedExportDate=Marquer les lignes comme exportées (la modification des enregistrements ne sera pas possible) -NotifiedValidationDate=Validation des enregistrements (la modification ou la suppression des enregistrements ne sera pas possible) +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 fonctionnalité "%s", la modification et la suppression des lignes ne seront définitivement plus possibles) +DateValidationAndLock=Validation et verrouillage de la date ConfirmExportFile=Confirmation de la génération du fichier d'export comptable ? ExportDraftJournal=Exporter le journal brouillon Modelcsv=Modèle d'export @@ -394,6 +400,21 @@ Range=Plage de comptes Calculated=Calculé Formula=Formule +## Reconcile +Unlettering=Annuler le rapprochement +AccountancyNoLetteringModified=Pas de rapprochement modifié +AccountancyOneLetteringModifiedSuccessfully=Un rapprochement modifié avec succès +AccountancyLetteringModifiedSuccessfully=%s rapprochements modifiés avec succès +AccountancyNoUnletteringModified=Aucune annulation de rapprochement modifiée +AccountancyOneUnletteringModifiedSuccessfully=Une annulation de rapprochement modifiée avec succès +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) ? +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) ? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Certaines étapes obligatoires de la configuration n'ont pas été réalisées, merci de compléter cette dernière ErrorNoAccountingCategoryForThisCountry=Pas de catégories de regroupement comptable disponibles pour le pays %s (Voir Accueil - Configuration - Dictionnaires) @@ -406,6 +427,10 @@ 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=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à ## Import ImportAccountingEntries=Écritures comptables diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 034f105f6d8..c3de798bcef 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/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=Afficher référence et période d'un produit/service dans un PDF +BoldLabelOnPDF=Afficher libellé d'un produit/service en gras dans un PDF Foundation=Association Version=Version Publisher=Editeur @@ -109,7 +109,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 @@ -190,7 +190,7 @@ Compression=Compression CommandsToDisableForeignKeysForImport=Commande pour désactiver les clés étrangères à l'importation CommandsToDisableForeignKeysForImportWarning=Requis si vous voulez être en mesure de restaurer votre « dump » SQL plus tard ExportCompatibility=Compatibilité du fichier d'exportation généré -ExportUseMySQLQuickParameter=Utiliser le paramètre --quick +ExportUseMySQLQuickParameter=Utiliser le paramètre --quick ExportUseMySQLQuickParameterHelp=Le paramètre '--quick' aide à réduire la consommation de RAM pour les longues listes MySqlExportParameters=Paramètres de l'exportation MySQL PostgreSqlExportParameters= Paramètres de l'exportation PostgreSQL @@ -248,7 +248,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) @@ -338,7 +338,7 @@ MenuHandlers=Gestionnaires de menu MenuAdmin=Édition menu DoNotUseInProduction=Ne pas utiliser en production ThisIsProcessToFollow=Procédure de mise à jour: -ThisIsAlternativeProcessToFollow=Voici une procédure de configuration alternative +ThisIsAlternativeProcessToFollow=Voici une procédure de configuration alternative StepNb=Étape %s FindPackageFromWebSite=Rechercher le paquet qui répond à votre besoin (par exemple sur le site web %s). DownloadPackageFromWebSite=Télécharger le package (par exemple depuis le site web officiel %s) @@ -414,7 +414,7 @@ PDFLocaltax=Règles pour %s HideLocalTaxOnPDF=Cacher le taux de %s dans la colonne Taxe HideDescOnPDF=Cacher la description des produits HideRefOnPDF=Cacher la référence des produits -HideDetailsOnPDF=Cacher les détails des lignes de produits +HideDetailsOnPDF=Cacher les détails des prix sur lignes de produits PlaceCustomerAddressToIsoLocation=Utiliser la position standard française (La Poste) pour la position de l'adresse client Library=Bibliothèque UrlGenerationParameters=Sécurisation des URLs @@ -477,7 +477,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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Utiliser le serveur SMTP de votre propre fournisseur de servic 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. 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) @@ -714,13 +714,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=Lire les projets et tâches (partagés ou dont vous n'êtes pas contact). Permet la saisie de temps passé, pour vous-même et votre hiérarchie (vos subordonnés), sur les tâches assignées (Feuilles de temps). -Permission42=Créer/modifier les projets (projets partagés et projets pour lesquels je suis contact). Permet aussi de créer des tâches et d'assigner des utilisateurs aux projets et tâches. -Permission44=Supprimer les projets et tâches (partagés ou dont je suis 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 +740,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,9 +768,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=Consulter tous les projets et tâches (y compris privés dont je ne suis pas contact) -Permission142=Créer/modifier tous les projets et tâches (y compris projets privés dont je ne suis pas contact) -Permission144=Supprimer les projets et tâches (y compris privés dont je ne suis pas contact) +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 @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Enregistrer les débits / refus de virement Permission601=Lire les étiquettes Permission602=Créer/Modifier les étiquettes Permission609=Supprimer les étiquettes +Permission611=Lire les attributs des variantes produits +Permission612=Créer/mettre à jour les attributs des variantes produits +Permission613=Supprimer les attributs des variantes produits Permission650=Lire les Nomenclatures (BOM) Permission651=Créer/modifier les Nomenclatures (BOM) Permission652=Supprimer les Nomenclatures (BOM) @@ -969,6 +976,8 @@ Permission4021=Créer/modifier votre évaluation Permission4022=Valider l'évaluation Permission4023=Supprimer l'évaluation Permission4030=Voir menu de comparaison +Permission4031=Lire les informations personnelles +Permission4032=Ecrire les informations personnelles 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Note de frais - catégories de déplacement DictionaryExpenseTaxRange=Note de frais - Tri par catégorie de déplacement DictionaryTransportMode=Déclaration d'échanges intracommunautaires - Mode de transport DictionaryBatchStatus=État du contrôle qualité du lot/série de produits +DictionaryAssetDisposalType=Type de cession d'actifs TypeOfUnit=Type d'unité SetupSaved=Configuration sauvegardée SetupNotSaved=Configuration non enregistrée @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Module comptes bancaires non activé ShowBugTrackLink=Afficher le lien "%s" ShowBugTrackLinkDesc=Gardez vide pour ne pas afficher ce lien, utilisez la valeur 'github' pour le lien vers le projet Dolibarr ou définissez directement une url 'https://...' Alerts=Alertes -DelaysOfToleranceBeforeWarning=Délais avant affichage de l'avertissement alerte retard +DelaysOfToleranceBeforeWarning=Afficher une icône d'alerte pour : DelaysOfToleranceDesc=Cet écran permet de définir les délais de tolérance après lesquels une alerte sera signalée à l'écran par le pictogramme %s sur chaque élément en retard. Delays_MAIN_DELAY_ACTIONS_TODO=Événements planifiés (événements de l'agenda) non terminés Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projet non fermé à temps @@ -1228,6 +1238,7 @@ 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=Trackable security events 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. @@ -1326,7 +1337,7 @@ PathDirectory=Répertoire SendmailOptionMayHurtBuggedMTA=La fonction permettant d’envoyer des e-mails à l’aide de la méthode "PHP mail direct" générera un message qui risque de ne pas être analysé correctement par certains serveurs de messagerie. Le résultat est que certains mails ne peuvent pas être lus par des personnes hébergées par ces plateformes. C'est le cas de certains fournisseurs d'accès Internet (Ex: Orange en France). Ce n'est pas un problème avec Dolibarr ou PHP, mais avec le serveur de messagerie destinataire. Vous pouvez cependant ajouter une option MAIN_FIX_FOR_BUGGED_MTA à 1 dans Configuration - Autre pour modifier Dolibarr afin d'éviter cela. Cependant, vous pouvez rencontrer des problèmes avec d'autres serveurs qui utilisent strictement le standard SMTP. L'autre solution (recommandée) consiste à utiliser la méthode "Bibliothèque de socket SMTP" qui ne présente aucun inconvénient. TranslationSetup=Configuration de la traduction TranslationKeySearch=Rechercher une traduction -TranslationOverwriteKey=Ajouter une traduction +TranslationOverwriteKey=Remplacer une chaîne de traduction TranslationDesc=Pour sélectionner la langue d'affichage :
    * Au niveau sytème/global: menu Accueil - Configuration - Affichage
    * Par utilisateur: Utilisez l'onglet Interface utilisateur de la fiche utilisateur (Accès à la fiche de l'utilisateur depuis l'identifiant dans l'angle supérieur droit de l'écran). TranslationOverwriteDesc=Vous pouvez aussi écraser des valeurs en complétant/corrigeant le tableau suivant. Choisissez votre code de langue depuis la liste déroulante "%s", choisissez le code trouvé dans le fichier lang dans le champ "%s", et dans "%s" la nouvelle valeur que vous souhaitez utiliser comme nouvelle traduction. TranslationOverwriteDesc2=Vous pouvez utilisez l'autre onglet pour vous aider à trouver la clé de traduction à utiliser @@ -1339,6 +1350,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=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:
    @@ -1369,7 +1381,7 @@ 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 -PasswordGenerationNone=Ne pas suggérer un mot de passe généré. Le mot de passe doit être entré manuellement. +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 PasswordPatternDesc=Description du masque du mot de passe @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Filigrane sur les brouillons de factures (aucun si vide PaymentsNumberingModule=Modèle de numérotation des paiements 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 ##### Proposals ##### PropalSetup=Configuration du module Propositions Commerciales ProposalsNumberingModules=Modèles de numérotation des propositions commerciales @@ -1445,7 +1459,7 @@ OrdersNumberingModules=Modèles de numérotation des commandes OrdersModelModule=Modèles de document des commandes FreeLegalTextOnOrders=Mention complémentaire sur les commandes WatermarkOnDraftOrders=Filigrane sur les brouillons de commandes (aucun si vide) -ShippableOrderIconInList=Ajouter une icône dans la liste des commandes qui indique si la commande est expédiable. +ShippableOrderIconInList=Ajouter une icône dans la liste des commandes qui indique si la commande est expédiable. BANK_ASK_PAYMENT_BANK_DURING_ORDER=Demander le compte bancaire cible durant la commande ##### Interventions ##### InterventionsSetup=Configuration du module Interventions @@ -1635,7 +1649,7 @@ TestNotPossibleWithCurrentBrowsers=Une détection automatique n'est pas possible DefaultValuesDesc=Vous pouvez définir/forcer ici la valeur par défaut que vous voulez obtenir lorsque vous créez un nouvel enregistrement, et/ou les filtres par défaut ou ordre de tri des listes. DefaultCreateForm=Valeurs par défaut (sur les formulaires de création) DefaultSearchFilters=Filtres de recherche par défaut -DefaultSortOrder=Ordre de tri par défaut +DefaultSortOrder=Ordre de tri par défaut DefaultFocus=Champs par défaut ayant le focus DefaultMandatory=Champs de formulaire obligatoires ##### Products ##### @@ -1854,7 +1868,7 @@ ChequeReceiptsNumberingModule=Module de numérotation des bordereaux de remises MultiCompanySetup=Configuration du module Multi-société ##### Suppliers ##### SuppliersSetup=Configuration du module Fournisseurs -SuppliersCommandModel=Modèle de commande fournisseur complet +SuppliersCommandModel=Modèle de commande fournisseur complet SuppliersCommandModelMuscadet=Modèle de commande fournisseur complet (ancienne implémentation du modèle Cornas) SuppliersInvoiceModel=Modèle de facture fournisseur complet SuppliersInvoiceNumberingModel=Modèles de numérotation des factures fournisseur @@ -1889,7 +1903,7 @@ NbMajMin=Nombre minimal de caractères majuscules NbNumMin=Nombre minimal de caractères numériques NbSpeMin=Nombre minimal de caractères spéciaux NbIteConsecutive=Nombre maximal de répétition des mêmes caractères -NoAmbiCaracAutoGeneration=Ne pas utiliser des caractères ambigus ("1","l","i","|","0","O") pour la génération automatique +NoAmbiCaracAutoGeneration=Ne pas utiliser des caractères ambigus ("1","l","i","|","0","O") pour la génération automatique SalariesSetup=Configuration du module salaires SortOrder=Ordre de tri Format=Format @@ -1910,13 +1924,14 @@ GoOntoContactCardToAddMore=Rendez-vous sur l'onglet "Notifications" d'un tiers p Threshold=Seuil 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 : +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. 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 HighlightLinesColor=Couleur de la ligne de surbrillance lorsque la souris passe au-dessus (mettre 'ffffff' pour ne pas mettre en surbrillance) HighlightLinesChecked=Couleur de la ligne cochée dans les listes (mettre 'ffffff' pour ne pas mettre de surbrillance) +UseBorderOnTable=Afficher les bordures gauche-droite des tableaux BtnActionColor=Couleur du bouton d'action TextBtnActionColor=Couleur du texte du bouton d'action TextTitleColor=Couleur du texte du titre de la page @@ -1925,7 +1940,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 @@ -1938,7 +1953,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=Nom de l'icône au format Dolibarr ("image.png" si elle se trouve dans le dossier du thème activé, "image.png@nom_du_module" si elle se trouve dans les dossiers du module) +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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Commandes fournisseurs MailToSendSupplierInvoice=Factures fournisseur MailToSendContract=Contrats MailToSendReception=Réceptions +MailToExpenseReport=Notes de frais MailToThirdparty=Tiers MailToMember=Adhérents MailToUser=Utilisateurs @@ -2009,7 +2025,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. @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex pour nettoyer la valeur (COMPANY_AQUAR COMPANY_DIGITARIA_CLEAN_REGEX=Filtre de regex pour nettoyer la valeur (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Doublons non autorisés GDPRContact=Responsable de la protection des données (DPO ou contact RGPD) -GDPRContactDesc=Si vous stockez des données sur des entreprises / citoyens européens, vous pouvez stocker ici le contact responsable du RGPD. +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 @@ -2048,27 +2065,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=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=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 CollectNow=Collecter maintenant -ConfirmCloneEmailCollector=Êtes-vous sûr de vouloir cloner ce collecteur de courrier électronique %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=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=Voulez-vous exécuter la collecte pour ce collecteur maintenant ? +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) -CreateTicketAndThirdParty=Créer un ticket (lié à un tiers si le tiers a été chargé par une opération précédente, sinon sans tiers) +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 LoadThirdPartyFromName=Charger le Tiers en cherchant sur %s (chargement uniquement) @@ -2082,14 +2118,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=Activer la fonctionnalité pour vérifier si une ressource est utilisée dans un événement +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). @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Supprimer le collecteur d'email ConfirmDeleteEmailCollector=Êtes-vous sûr de vouloir supprimer ce collecteur d'email ? RecipientEmailsWillBeReplacedWithThisValue=Les emails des destinataires seront toujours remplacés par cette valeur AtLeastOneDefaultBankAccountMandatory=Au moins 1 compte bancaire par défaut doit être défini -RESTRICT_ON_IP=Autoriser l'accès à certaines adresses IP d'hôte uniquement (les caractères génériques ne sont pas autorisés, utilisez un espace entre les valeurs). Vide signifie que tous les hôtes peuvent accéder. +RESTRICT_ON_IP=Autorise l'accès à l'API à certaines IP de clients seulement (les caractères génériques ne sont pas autorisés, utilisez des espaces entre les valeurs). Vide signifie que tous les clients peuvent accéder. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Basé sur la version de bibliothèque SabreDAV NotAPublicIp=Pas une IP publique @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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=For Proposals, Orders, Invoices. 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 @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Désactiver la vignette 'adhérents' DashboardDisableBlockExpenseReport=Désactiver la vignette 'Notes de frais' DashboardDisableBlockHoliday=Désactiver la vignette 'congés payés' EnabledCondition=Condition pour que le champ soit activé (si non activé, la visibilité sera toujours désactivée) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si vous souhaitez utiliser une deuxième taxe, vous devez également activer la première taxe de vente -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si vous souhaitez utiliser une troisième taxe, vous devez également activer la première taxe de vente +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=L'utilisation d'une deuxème taxe nécessite l'activation de la première +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=L'utilisation d'une troisième taxe nécessite l'activation de la première LanguageAndPresentation=Langue et présentation SkinAndColors=Thème et couleurs -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Si vous souhaitez utiliser une deuxième taxe, vous devez également activer la première taxe de vente -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Si vous souhaitez utiliser une troisième taxe, vous devez également activer la première taxe de vente +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=L'utilisation d'une deuxème taxe nécessite l'activation de la première +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=L'utilisation d'une troisième taxe nécessite l'activation de la première PDF_USE_1A=Générer les PDF au format PDF/A-1b MissingTranslationForConfKey = Traduction manquante pour %s NativeModules=Modules natifs @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Désactiver la compression des réponses API EachTerminalHasItsOwnCounter=Chaque terminal utilise son propre compteur. FillAndSaveAccountIdAndSecret=Remplissez et enregistrez d'abord l'ID de compte et le secret PreviousHash=Hachage précédent +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. + +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=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 +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 diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index 65e06587e88..1ac6cb60597 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,7 @@ 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 +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 @@ -96,7 +99,7 @@ PRODUCT_MODIFYInDolibarr=Produit %s modifié PRODUCT_DELETEInDolibarr=Produit%ssupprimé HOLIDAY_CREATEInDolibarr=Demande de congé %s créée HOLIDAY_MODIFYInDolibarr=Demande de congé %s modifiée -HOLIDAY_APPROVEInDolibarr=Demande de congé %s approuvée +HOLIDAY_APPROVEInDolibarr=Demande de congé %s approuvée HOLIDAY_VALIDATEInDolibarr=Demande de congé %s validée HOLIDAY_DELETEInDolibarr=Demande de congé %s supprimée EXPENSE_REPORT_CREATEInDolibarr=Note de frais %s créée @@ -157,6 +160,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 +176,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 70058c87e11..af88349f585 100644 --- a/htdocs/langs/fr_FR/banks.lang +++ b/htdocs/langs/fr_FR/banks.lang @@ -95,11 +95,11 @@ LineRecord=Ecriture AddBankRecord=Ajouter écriture AddBankRecordLong=Saisie d'une écriture manuelle Conciliated=Rapproché -ConciliatedBy=Rapproché par +ReConciliedBy=Rapproché par DateConciliating=Date rapprochement BankLineConciliated=Écriture rapprochée avec le relevé bancaire -Reconciled=Rapproché -NotReconciled=Non rapproché +BankLineReconciled=Rapproché +BankLineNotReconciled=Non rapproché CustomerInvoicePayment=Règlement client SupplierInvoicePayment=Paiement fournisseur SubscriptionPayment=Paiement cotisation @@ -173,7 +173,7 @@ 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=Contrôle de caisse POS -NewCashFence=Nouvelle ouverture ou clôture de caisse +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 @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty=Si vous ne réalisez pas le rapprochement banc NoBankAccountDefined=Aucun compte bancaire défini NoRecordFoundIBankcAccount=Aucun enregistrement trouvé dans le compte bancaire. Généralement, cela se produit lorsqu'un enregistrement a été supprimé manuellement de la liste des transactions dans le compte bancaire (par exemple lors d'un rapprochement du compte bancaire). Une autre raison est que le paiement a été enregistré lorsque le module "%s" était désactivé. 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=Bank Line Extrafields diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index f03afd6a6b3..a764b511920 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Rapports de règlements PaymentsAlreadyDone=Versements déjà effectués PaymentsBackAlreadyDone=Remboursements déjà effectués PaymentRule=Mode de paiement -PaymentMode=Mode de paiement -PaymentModes=Modes de paiement -DefaultPaymentMode=Default Mode de paiement +PaymentMode=Mode de règlement +PaymentModes=Modes de règlement +DefaultPaymentMode=Mode de règlement par défaut DefaultBankAccount=Compte bancaire par défaut -IdPaymentMode=Mode de paiement (id) -CodePaymentMode=Mode de paiement (code) -LabelPaymentMode=Mode de paiement (label) -PaymentModeShort=Mode de paiement +IdPaymentMode=Mode de règlement (id) +CodePaymentMode=Mode de règlement (code) +LabelPaymentMode=Mode de règlement (libellé) +PaymentModeShort=Mode règlement PaymentTerm=Condition de règlement PaymentConditions=Conditions de règlement PaymentConditionsShort=Conditions de règlement @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Erreur, une facture de type Avoir doit avoir un ErrorInvoiceOfThisTypeMustBePositive=Erreur, une facture de ce type doit avoir un montant hors taxe positif (ou nul) ErrorCantCancelIfReplacementInvoiceNotValidated=Erreur, il n'est pas possible d'annuler une facture qui a été remplacée par une autre qui se trouve toujours à l'état 'brouillon'. ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Cette partie ou une autre est déjà utilisé, aussi la remise ne peut être supprimée. +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é à ActionsOnBill=Événements sur la facture @@ -220,8 +221,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 @@ -282,6 +283,8 @@ RecurringInvoices=Factures récurrentes RecurringInvoice=Facture récurrente RepeatableInvoice=Facture modèle RepeatableInvoices=Factures modèles +RecurringInvoicesJob=Génération des factures récurrentes (ventes) +RecurringSupplierInvoicesJob=Génération des factures récurrentes (achats) Repeatable=Modèle Repeatables=Modèles ChangeIntoRepeatableInvoice=Convertir en facture modèle @@ -396,7 +399,7 @@ GeneratedFromRecurringInvoice=Généré depuis la facture modèle récurrente %s DateIsNotEnough=Date pas encore atteinte InvoiceGeneratedFromTemplate=Facture %s généré depuis la facture modèle récurrente %s GeneratedFromTemplate=Généré à partir du modèle de facture %s -WarningInvoiceDateInFuture=Attention, la date de facturation est antérieur à la date actuelle +WarningInvoiceDateInFuture=Attention, la date de facturation est postérieure à la date actuelle WarningInvoiceDateTooFarInFuture=Attention, la date de facturation est trop éloignée de la date actuelle ViewAvailableGlobalDiscounts=Voir les remises disponibles GroupPaymentsByModOnReports=Paiements groupés par mode sur les rapports @@ -426,14 +429,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 @@ -600,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Facture fournisseur supprimée UnitPriceXQtyLessDiscount=Prix unitaire x Qté - Remise CustomersInvoicesArea=Zone de facturation client SupplierInvoicesArea=Zone de facturation fournisseur -FacParentLine=Ligne de facture parente SituationTotalRayToRest=Reste à payer HT PDFSituationTitle=Situation n°%d SituationTotalProgress=Avancement total %d %% @@ -608,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Rechercher les factures impayées avec date d'é NoPaymentAvailable=Aucun paiement disponible pour %s PaymentRegisteredAndInvoiceSetToPaid=Paiement enregistré et facture %s passée à payé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) diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang index 801785a4427..75c6ccb9ed9 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 diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang index c101e8c7931..244718df17d 100644 --- a/htdocs/langs/fr_FR/cashdesk.lang +++ b/htdocs/langs/fr_FR/cashdesk.lang @@ -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=Ouvre la fenêtre "Contôle de caisse" lors de l'ouverture du TPV -CloseCashFence=Clôturer la caisse +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 @@ -134,5 +134,12 @@ PrintWithoutDetailsButton=Affiche le bouton "Générer sans les détails" PrintWithoutDetailsLabelDefault=Libellé de ligne par défaut à l'impression sans détails PrintWithoutDetails=Générer sans les détails YearNotDefined=L'année n'est pas définie -TakeposBarcodeRuleToInsertProduct=Règle sur le code-barre pour insérer un produit -TakeposBarcodeRuleToInsertProductDesc=Règle sous la forme "ref:NB+qu:NB+qd:NB+other:NB" où NB correpond au nombre de caractères composant la partie du code-barre avec :
    • ref : la référence du produit
    • qu : la quantité (unités)
    • qd : la quantité (décimales)
    • other : autres caractères
    +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
    +HideCategories=Masquer les catégories +HideStockOnLine=Masquer le stock en ligne +ShowOnlyProductInStock=Affficher les produits en stock +ShowCategoryDescription=Afficher la description des catégories +ShowProductReference=Afficher la référence des produits +UsePriceHT= Utiliser le prix HT et non en TTC +AlreadyPrinted=Déjà imprimé diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang index feabfac2d3c..5f478aabc7f 100644 --- a/htdocs/langs/fr_FR/categories.lang +++ b/htdocs/langs/fr_FR/categories.lang @@ -90,11 +90,14 @@ CategorieRecursivHelp=Si l'option est activé, quand un produit est ajouté dans 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/companies.lang b/htdocs/langs/fr_FR/companies.lang index 6cc6efc18d7..e875ef168fd 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Espace prospection IdThirdParty=Identifiant tiers IdCompany=Identifiant société IdContact=Identifiant contact +ThirdPartyAddress=Adresse du tiers ThirdPartyContacts=Contacts tiers ThirdPartyContact=Contact/adresse de tiers Company=Société @@ -51,19 +52,22 @@ CivilityCode=Code civilité RegisteredOffice=Siège social Lastname=Nom Firstname=Prénom +RefEmployee=Référence de l'employé +NationalRegistrationNumber=Numéro d'identification national PostOrFunction=Poste/fonction UserTitle=Titre civilité 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Code fournisseur incorrect CustomerCodeModel=Modèle de code client SupplierCodeModel=Modèle de code fournisseur Gencod=Code-barres +GencodBuyPrice=Code barre de la référence prix ##### Professional ID ##### ProfId1Short=Id. prof. 1 ProfId2Short=Id. prof. 2 @@ -159,15 +164,15 @@ 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=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +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.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Liste des tiers ShowCompany=Tiers ShowContact=Contact-Address ContactsAllShort=Tous (pas de filtre) -ContactType=Type de contact +ContactType=Rôle du contact ContactForOrders=Contact de commandes ContactForOrdersOrShipments=Contact de commandes ou expéditions ContactForProposals=Contact de propositions @@ -439,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 diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index fbe4884f44c..ba43bdcd74e 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -149,8 +149,8 @@ DeleteSalary=Supprimer un salaire DeleteVariousPayment=Supprimer un paiement divers ConfirmDeleteSocialContribution=Voulez-vous vraiment supprimer ce paiement de taxe sociale / fiscale? ConfirmDeleteVAT=Voulez-vous vraiment supprimer cette déclaration de TVA ? -ConfirmDeleteSalary=Êtes-vous sûr de vouloir supprimer ce salaire ? -ConfirmDeleteVariousPayment=Voulez-vous vraiment supprimer ce paiement divers ? +ConfirmDeleteSalary=Etes vous certains de vouloir supprimer ce salaire ? +ConfirmDeleteVariousPayment=Etes vous certain de vouloir supprimer ce paiement divers ? ExportDataset_tax_1=Taxes sociales et fiscales et paiements CalcModeVATDebt=Mode %sTVA sur débit%s. CalcModeVATEngagement=Mode %sTVA sur encaissement%s. @@ -289,9 +289,9 @@ ReportPurchaseTurnover=Chiffre d'affaires d'achat facturé ReportPurchaseTurnoverCollected=Chiffre d'affaires d'achat encaissé IncludeVarpaysInResults = Inclure les paiements divers dans les rapports IncludeLoansInResults = Inclure les prêts dans les rapports -InvoiceLate30Days = Factures en retard (plus de 30 jours) -InvoiceLate15Days = Factures en retard (entre 15 et 30 jours) -InvoiceLateMinus15Days = Factures en retard (de moins de 15 jours) +InvoiceLate30Days = En retard (>30 jours) +InvoiceLate15Days = En retard (15 à 30 jours) +InvoiceLateMinus15Days = En retard (< 15 jours) InvoiceNotLate = A encaisser (d'ici 15 jours) InvoiceNotLate15Days = A encaisser (dans 15 à 30 jours) InvoiceNotLate30Days = A encaisser (dans plus de 30 jours) @@ -300,3 +300,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/errors.lang b/htdocs/langs/fr_FR/errors.lang index 80d4034a1ba..f043c5b5afc 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -8,7 +8,8 @@ ErrorBadEMail=L'email '%s' est invalide ErrorBadMXDomain=L'email %s semble incorrect (domaine n'a pas d'enregistrement MX valide) ErrorBadUrl=L'URL '%s' est invalide ErrorBadValueForParamNotAString=Mauvaise valeur de paramètre. Ceci arrive lors d'une tentative de traduction d'une clé non renseignée. -ErrorRefAlreadyExists=La référence %s existe déjà. +ErrorRefAlreadyExists=Le référence %s existe déjà. +ErrorTitleAlreadyExists=Le titre %s existe déjà ErrorLoginAlreadyExists=L'identifiant %s existe déjà. ErrorGroupAlreadyExists=Le groupe %s existe déjà. ErrorEmailAlreadyExists=L'e-mail %s existe déjà. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Un fichier portant le nom %s existe déjà. ErrorPartialFile=Fichier non reçu intégralement 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. +ErrorFileSizeTooLarge=La taille du fichier est trop grande ou le fichier n'est pas fourni. ErrorFieldTooLong=Le champ %s est trop long. ErrorSizeTooLongForIntType=Longueur de champ trop longue pour le type int (%s chiffres maximum) ErrorSizeTooLongForVarcharType=Longueur de champ trop longue pour le type chaine (%s caractères maximum) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=Erreurs sur %s enregistrement(s) source @@ -269,19 +271,31 @@ 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=Error, request too large +ErrorRequestTooLarge=Erreur, requête trop conséquente +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 +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 # 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 +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à. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Valeur non valide diff --git a/htdocs/langs/fr_FR/eventorganization.lang b/htdocs/langs/fr_FR/eventorganization.lang index 496afa7d9e2..1481d54b46c 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. @@ -59,6 +60,8 @@ 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 @@ -138,6 +141,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 @@ -165,3 +169,4 @@ EmailCompanyForInvoice=E-mail de la société pour la facturation (si différent 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 5c87e8f186f..6460fa7e5b1 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=Télécharger fichier vierge exemple -StarAreMandatory=* sont des champs obligatoires +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 provenant de la colonne %s du fichier source sera utilisée pour trouver l'identifiant de l'objet parent à utiliser (donc l'objet %s qui a la référence du fichier source doit exister dans la base de données). +DataComeFromIdFoundFromCodeId=Le code provenant de la colonne %s du fichier source sera utilisé pour trouver l'id 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 : @@ -135,3 +137,9 @@ NbInsert=Nombre de lignes insérées: %s NbUpdate=Nombre de lignes 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=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..22720779eaf 100644 --- a/htdocs/langs/fr_FR/holiday.lang +++ b/htdocs/langs/fr_FR/holiday.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - holiday HRM=GRH Holidays=Congés +Holiday=Congé CPTitreMenu=Demande de congés MenuReportMonth=État mensuel MenuAddCP=Créer demande de congés @@ -134,6 +135,6 @@ 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 diff --git a/htdocs/langs/fr_FR/hrm.lang b/htdocs/langs/fr_FR/hrm.lang index dca9ca4deb6..62b5d2126b8 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 @@ -23,7 +23,7 @@ HrmSetup=Configuration du module GRH SkillsManagement=Gestion des compétences HRM_MAXRANK=Nombre maximum de niveaux pour classer une compétence HRM_DEFAULT_SKILL_DESCRIPTION=Description par défaut des rangs lors de la création de la compétence -deplacement=Déplacement +deplacement=Ctrl DateEval=Date d'évaluation JobCard=Fiche emploi JobPosition=Emploi @@ -70,15 +70,23 @@ 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é HowManyUserWithThisMaxNote=Nombre d'employés avec ce niveau HighestRank=Plus haut niveau SkillComparison=Comparaison des compétences -ActionsOnJob=Événements sur cet emploi -VacantPosition=Poste vacant -VacantCheckboxHelper=Cocher cette option affichera le(s) poste(s) comme non pourvu(s) +ActionsOnJob=Evénements sur ce poste +VacantPosition=Poste à pouvoir +VacantCheckboxHelper=cocher cette option affichera tous les postes à pourvoir\n +SaveAddSkill = Compétence(s) ajoutée(s) +SaveLevelSkill = Niveau(x) de compétence(s) enregistré(s) +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 81122d1b5d3..5e520547352 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -4,11 +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. -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. @@ -16,13 +17,6 @@ PHPMemoryOK=Votre mémoire maximum de session PHP est définie à %s. Cec PHPMemoryTooLow=Votre mémoire maximum de session PHP est définie à %s octets. Ceci est trop faible. Il est recommandé de modifier le paramètre memory_limit de votre fichier php.ini à au moins %s octets. Recheck=Cliquez ici pour un test plus probant ErrorPHPDoesNotSupportSessions=Votre installation PHP ne supporte pas les sessions. Cette fonctionnalité est nécessaire pour permettre à Dolibarr de fonctionner. Vérifiez votre configuration PHP et les autorisations du répertoire des sessions. -ErrorPHPDoesNotSupportGD=Votre installation PHP ne supporte pas les fonctions graphiques GD. Aucun graphique ne sera disponible. -ErrorPHPDoesNotSupportCurl=Votre version de PHP ne supporte pas l'extension Curl -ErrorPHPDoesNotSupportCalendar=Votre installation de PHP ne supporte pas les extensions php calendar. -ErrorPHPDoesNotSupportUTF8=Ce PHP ne prend pas en charge les fonctions UTF8. Résolvez le problème avant d'installer Dolibarr car il ne pourra pas fonctionner correctement. -ErrorPHPDoesNotSupportIntl=Votre installation de PHP ne supporte pas les fonctions Intl. -ErrorPHPDoesNotSupportMbstring=Votre installation PHP ne prend pas en charge les fonctions mbstring. -ErrorPHPDoesNotSupportxDebug=Votre installation PHP ne prend pas en charge les fonctions d'extension de débogage. ErrorPHPDoesNotSupport=Votre installation PHP ne prend pas en charge les fonctions %s. ErrorDirDoesNotExists=Le répertoire %s n'existe pas ou n'est pas accessible. ErrorGoBackAndCorrectParameters=Revenez en arrière et vérifiez / corrigez les paramètres. @@ -30,7 +24,8 @@ 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à. IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base n'existe pas, revenez en arrière et cochez l'option "Créer la base de données". diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang index a1451cd48e2..50e6ff1d9d1 100644 --- a/htdocs/langs/fr_FR/interventions.lang +++ b/htdocs/langs/fr_FR/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Modèle d'intervention ToCreateAPredefinedIntervention=Pour créer une intervention prédéfinie ou récurrente, créez une intervention standard et convertissez-la en modèle d'intervention ConfirmReopenIntervention=Êtes-vous sur de vouloir ré-ouvrir l'intervention %s ? GenerateInter=Générer intervention +FichinterNoContractLinked=L'intervention %s a été créée sans contrat lié. +ErrorFicheinterCompanyDoesNotExist=L'entreprise n'existe pas. L'intervention n'a pas été créée. diff --git a/htdocs/langs/fr_FR/knowledgemanagement.lang b/htdocs/langs/fr_FR/knowledgemanagement.lang index 28d69785450..e11d8815174 100644 --- a/htdocs/langs/fr_FR/knowledgemanagement.lang +++ b/htdocs/langs/fr_FR/knowledgemanagement.lang @@ -45,8 +45,8 @@ ValidateReply = Valider la réponse KnowledgeRecords = Articles KnowledgeRecord = Article KnowledgeRecordExtraFields = Atribut supplémentaires (articles) -GroupOfTicket=Groupe de tickets -YouCanLinkArticleToATicketCategory=Vous pouvez lier un article à un groupe de tickets (ainsi l'article sera proposé lors de la qualification de nouveaux tickets) +GroupOfTicket=Catégorisation de tickets +YouCanLinkArticleToATicketCategory=Vous pouvez lier l'article à un groupe de tickets (ainsi l'article sera mis en évidence sur tous les tickets de ce groupe) SuggestedForTicketsInGroup=Suggéré pour les tickets lorsque le groupe est SetObsolete=Définir comme obsolète diff --git a/htdocs/langs/fr_FR/languages.lang b/htdocs/langs/fr_FR/languages.lang index 75465b9118f..f2e15588719 100644 --- a/htdocs/langs/fr_FR/languages.lang +++ b/htdocs/langs/fr_FR/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Ethiopien Language_ar_AR=Arabe Language_ar_DZ=Arabe (Algérie) Language_ar_EG=Arabe (Egypte) +Language_ar_JO=Arabe (Jordanie) Language_ar_MA=Arabe (Maroc) Language_ar_SA=Arabe Language_ar_TN=Arabe (Tunisie) @@ -12,9 +13,11 @@ Language_az_AZ=Azerbaïdjanais Language_bn_BD=Bengalais Language_bn_IN=Bengali (Inde) Language_bg_BG=Bulgare +Language_bo_CN=Tibétain Language_bs_BA=Bosniaque Language_ca_ES=Catalan Language_cs_CZ=Tcheque +Language_cy_GB=Gallois Language_da_DA=Danois Language_da_DK=Danois Language_de_DE=Allemand @@ -22,6 +25,7 @@ Language_de_AT=Allemand (Autriche) Language_de_CH=Allemand (Suisse) Language_el_GR=Grèque Language_el_CY=Grec (Chypre) +Language_en_AE=Anglais (EAU) Language_en_AU=Anglais (Australie) Language_en_CA=Anglais (Canada) Language_en_GB=Anglais (Royaume-Uni) @@ -36,6 +40,7 @@ Language_es_AR=Espagnol (Argentine) Language_es_BO=Espagnol (Bolivie) Language_es_CL=Espagnol (Chili) Language_es_CO=Espagnol (Colombie) +Language_es_CR=Espagnol (Costa Rica) Language_es_DO=Espagnol (République dominicaine) Language_es_EC=Espagnol (Équateur) Language_es_GT=Espagnol (Guatemala) @@ -83,18 +88,21 @@ Language_lt_LT=Lituanien Language_lv_LV=Léton Language_mk_MK=Macédonien Language_mn_MN=Mongol +Language_my_MM=Birman Language_nb_NO=Norvégien (Bokmal) Language_ne_NP=Népalais Language_nl_BE=Néerlandais (Belgique) Language_nl_NL=Néerlandais Language_pl_PL=Polonais Language_pt_AO=Portugais (Angola) +Language_pt_MZ=Portugais (Mozambique) Language_pt_BR=Portugais (Brésil) Language_pt_PT=Portugais Language_ro_MD=Roumain (Moldavie) Language_ro_RO=Roumain Language_ru_RU=Russe Language_ru_UA=Russe (Ukraine) +Language_ta_IN=Tamoul Language_tg_TJ=Tajik Language_tr_TR=Turque Language_sl_SI=Slovène @@ -106,6 +114,7 @@ Language_sr_RS=Serbe Language_sw_SW=Kiswahili Language_th_TH=Thaï Language_uk_UA=Ukrainien +Language_ur_PK=Ourdou Language_uz_UZ=Ouzbek Language_vi_VN=Vietnamien Language_zh_CN=Chinois diff --git a/htdocs/langs/fr_FR/loan.lang b/htdocs/langs/fr_FR/loan.lang index 29f99d9d464..64791da1eaf 100644 --- a/htdocs/langs/fr_FR/loan.lang +++ b/htdocs/langs/fr_FR/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=Echéancier InterestAmount=Intérêt CapitalRemain=Capital restant TermPaidAllreadyPaid = Ce terme est déjà payé -CantUseScheduleWithLoanStartedToPaid = Impossible d'utiliser l'échéancier sur un prêt commencé à être payé +CantUseScheduleWithLoanStartedToPaid = Impossible de générer un échéancier pour un prêt avec un paiement commencé CantModifyInterestIfScheduleIsUsed = Vous ne pouvez pas modifier l'intérêt si vous utilisez le calendrier # Admin ConfigLoan=Configuration du module Emprunt diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index d8bd968f766..bac26e86f73 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -175,6 +175,7 @@ Unanswered=Sans réponse Answered=Répondu IsNotAnAnswer=N'est pas une réponse (e-mail initial) IsAnAnswer=Est une réponse à un e-mail initial -RecordCreatedByEmailCollector=Enregistrement créé par le Collecteur d'e-mails%s depuis l'email %s +RecordCreatedByEmailCollector=Enregistrement créé par le Collecteur d'e-mails %s depuis l'email %s DefaultBlacklistMailingStatus=Valeur par défaut du champ '%s' lors de la création d'un nouveau contact DefaultStatusEmptyMandatory=Vide mais obligatoire +WarningLimitSendByDay=ATTENTION : La configuration ou le contrat de votre instance limite votre nombre d'e-mails par jour à %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 12778f337dd..6d852468492 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=, @@ -244,6 +250,7 @@ Designation=Désignation DescriptionOfLine=Description de ligne DateOfLine=Date de la ligne DurationOfLine=Durée de la ligne +ParentLine=ID de la ligne parent Model=Modèle de document DefaultModel=Modèle de document par défaut Action=Action @@ -418,7 +425,7 @@ TotalLT2IN=Total SGST HT=HT TTC=TTC INCVATONLY=TVA incluse -INCT=TTC +INCT=TVA+Taxes locales incluses VAT=TVA VATIN=IGST VATs=TVA @@ -517,7 +524,7 @@ or=ou Other=Autre Others=Autres OtherInformations=Autre information -Workflow=Processus de travail +Workflow=Workflow Quantity=Quantité Qty=Qté ChangedBy=Modifié par @@ -620,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Fichiers et documents joints JoinMainDoc=Joindre le document principal +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 @@ -710,6 +718,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 @@ -799,6 +808,7 @@ URLPhoto=URL de la photo/logo SetLinkToAnotherThirdParty=Lier vers un autre tiers LinkTo=Lier à LinkToProposal=Lier à une proposition commerciale +LinkToExpedition=Lier à une expédition LinkToOrder=Lier à une commande LinkToInvoice=Lier à une facture LinkToTemplateInvoice=Lien vers le modèle de facture @@ -1165,3 +1175,16 @@ NotClosedYet=Pas encore fermé ClearSignature=Réinitialiser la signature CanceledHidden=Annulé masqué CanceledShown=Annulé affiché +Terminate=Résilier +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 +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 à vérifier +Automation=Automatisation +CreatedByEmailCollector=Créé par Collecteur d'e-mails +CreatedByPublicPortal=Créé à partir du portail public diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index b848c156383..d2d9de5e682 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -15,7 +15,7 @@ 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=Carte de visite pour les adhérents +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 +35,8 @@ DateEndSubscription=Date fin adhésion EndSubscription=Fin adhésion SubscriptionId=Id adhésion WithoutSubscription=Sans adhésion -MemberId=Id adhérent +MemberId=ID adhérent +MemberRef=Réf adhérent NewMember=Nouvel adhérent MemberType=Type d'adhérent MemberTypeId=Id type adhérent @@ -159,11 +160,11 @@ HTPasswordExport=Génération fichier htpassword NoThirdPartyAssociatedToMember=Pas de tiers associé à cet adhérent MembersAndSubscriptions=Adhérents et Cotisations MoreActions=Action complémentaire à l'enregistrement -MoreActionsOnSubscription=Action complémentaire proposée par défaut à l'enregistrement de l'adhésion +MoreActionsOnSubscription=Action complémentaire proposée par défaut lors de l'enregistrement d'une contribution, également effectuée automatiquement lors du paiement en ligne d'une contribution 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=Génération de cartes de visites ou planches d'adresses +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,7 +199,14 @@ 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 +CanEditAmount=Le visiteur peut modifier / choisir le montant de sa cotisation quel que soit le type d'adhésion +AmountIsLowerToMinimumNotice=sur un dû total de %s +AnyAmountWithAdvisedAmount=Montant libre avec un montant recommandé de %s %s +AnyAmountWithoutAdvisedAmount=Montant libre +CanEditAmountShortForValues=conseillé, montant libre +MembershipDuration=Durée +GetMembershipButtonLabel=Adhérer +CanEditAmountShort=Montant libre MEMBER_NEWFORM_PAYONLINE=Rediriger sur la page intégrée de paiement en ligne ByProperties=Par nature MembersStatisticsByProperties=Statistiques des adhérents par nature @@ -218,3 +226,5 @@ 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 diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang index e3abfdb6210..d29c9f2164b 100644 --- a/htdocs/langs/fr_FR/modulebuilder.lang +++ b/htdocs/langs/fr_FR/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan 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=Saisissez le nom du module/application à créer, sans espaces. Utilisez les majuscules pour identifier les mots (par exemple : MonModule, BoutiqueECommerce,...) -EnterNameOfObjectDesc=Entrez le nom de l'objet à créer sans espaces. Utilisez les majuscules pour séparer des mots (par exemple: MyObject, Student, Teacher ...). Le fichier de classe CRUD, mais aussi le fichier API, les pages à afficher / ajouter / éditer / supprimer des objets et des fichiers SQL seront générés. +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=Entrez le nom de l'objet à créer sans espaces. Utilisez des majuscules pour séparer les mots (par exemple: MyObject, Student, Teacher...). Le fichier de classe CRUD, mais aussi le fichier d'API, 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=Nouveau dictionnaire ModuleKey=Clé du module ObjectKey=Clé de l'objet +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 ) @@ -52,7 +55,7 @@ LanguageFile=Fichier langue ObjectProperties=Propriétés de l'objet 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=Définir le champ en base à NOT NULL. -1=Autoriser les valeurs nulles et forcer la valeur à NULL si vide ('' ou 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à @@ -85,7 +88,7 @@ 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 = 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 +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 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) @@ -94,7 +97,7 @@ LanguageDefDesc=Entrez dans ces fichiers, toutes les clés et la traduction pour MenusDefDesc=Définissez ici les menus fournis par votre module DictionariesDefDesc=Définissez ici les dictionnaires fournis par le module PermissionsDefDesc=Définissez ici les nouvelles permissions fournies par votre module -MenusDefDescTooltip=Les menus fournis par votre module / application sont définis dans le tableau $this->menus dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré.

    Remarque: une fois définis (et les modules réactivés), les menus sont également visibles dans l'éditeur de menus mis à la disposition des utilisateurs administrateurs sur %s. +MenusDefDescTooltip=Les menus fournis par votre module/application sont définis dans le tableau $this->menus dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré.

    Remarque : Une fois définis (et le module réactivé), les menus sont également visibles dans l'éditeur de menus accessible aux utilisateurs administrateurs sur %s. DictionariesDefDescTooltip=Les dictionnaires fournis par votre module/application sont définis dans le tableau $this->dictionaries dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré.

    Remarque: une fois définis (et module réactivé), les dictionnaires sont également visibles dans la zone de configuration par les utilisateurs administrateurs sur %s. PermissionsDefDescTooltip=Les autorisations fournies par votre module / application sont définies dans le tableau $this->rights dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré.

    Remarque: une fois définies (et le module réactivé), les autorisations sont visibles dans la configuration par défaut des autorisations %s. HooksDefDesc=Définissez dans la propriété module_parts ['hooks'] , dans le descripteur de module, le contexte des hooks à gérer (la liste des contextes peut être trouvée par une recherche sur ' initHooks (' dans le code du noyau).
    Editez le fichier hook pour ajouter le code de vos fonctions hookées (les fonctions hookables peuvent être trouvées par une recherche sur ' executeHooks ' dans le code core). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Supprimer la table si vide) TableDoesNotExists=La table %s n'existe pas TableDropped=La table %s a été supprimée InitStructureFromExistingTable=Construire la chaîne du tableau de structure d'une table existante -UseAboutPage=Désactiver la page "à propos de" +UseAboutPage=Ne pas générer la page À propos UseDocFolder=Désactiver le dossier de la documentation UseSpecificReadme=Utiliser un fichier ReadMe spécifique ContentOfREADMECustomized=Remarque: le contenu du fichier README.md a été remplacé par la valeur spécifique définie dans la configuration de ModuleBuilder. @@ -127,9 +130,9 @@ 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=La référence de l'objet doit être générée automatiquement -IncludeRefGenerationHelp=Cochez cette option si vous souhaitez inclure du code pour gérer la génération automatique de la référence -IncludeDocGeneration=Je veux générer des documents à partir de l'objet +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 générer des documents à partir de modèles pour l'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 KeyForTooltip=Clé pour l'info-bulle @@ -138,10 +141,16 @@ 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), réel, texte, html, datetime, timestamp, integer, integer:NomClasse:cheminrelatif/vers/classfile.class.php [:1[:filtre]] ('1' signifie nous ajoutons un bouton + après le combo pour créer l'enregistrement, 'filter' peut être 'status = 1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' par exemple) +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__)' 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=Mettez 1 si ce champ doit être validé avec $this->validateField() ou 0 si la validation est requise +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=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 diff --git a/htdocs/langs/fr_FR/mrp.lang b/htdocs/langs/fr_FR/mrp.lang index abe0a3b2e55..709ff68b963 100644 --- a/htdocs/langs/fr_FR/mrp.lang +++ b/htdocs/langs/fr_FR/mrp.lang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=Pour une quantité à désassembler de %s ConfirmValidateMo=Voulez-vous vraiment valider cet ordre de fabrication? ConfirmProductionDesc=En cliquant sur '%s', vous validerez la consommation et / ou la production pour les quantités définies. Cela mettra également à jour le stock et enregistrera les mouvements de stock. ProductionForRef=Production de %s +CancelProductionForRef=Annulation de la sortie de stock pour le produit +TooltipDeleteAndRevertStockMovement=Supprimer la ligne et modifier le stock AutoCloseMO=Fermer automatiquement l'Ordre de Fabrication si les quantités à consommer et à produire sont atteintes NoStockChangeOnServices=Aucune variation de stock sur les services ProductQtyToConsumeByMO=Quantité de produit restant à consommer par OF ouvert @@ -107,3 +109,7 @@ 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 +BomCantAddChildBom=La nomenclature %s est déjà présente dans l'arborescence qui mène à la nomenclature %s diff --git a/htdocs/langs/fr_FR/oauth.lang b/htdocs/langs/fr_FR/oauth.lang index e412ee0b9b9..493cf00deb9 100644 --- a/htdocs/langs/fr_FR/oauth.lang +++ b/htdocs/langs/fr_FR/oauth.lang @@ -9,12 +9,13 @@ 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 +RequestAccess=Cliquez ici pour demander/renouveler l'accès et recevoir un nouveau jeton 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 +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 +24,13 @@ 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à diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index 3b0a3e38a7d..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 @@ -68,6 +69,8 @@ CreateOrder=Créer Commande RefuseOrder=Refuser la commande ApproveOrder=Approuver commande Approve2Order=Approuver commande (deuxième niveau) +UserApproval=Utilisateur d'approbation +UserApproval2=Utilisateur d'approbation (deuxième niveau) ValidateOrder=Valider la commande UnvalidateOrder=Dévalider la commande DeleteOrder=Supprimer la commande @@ -102,9 +105,8 @@ ConfirmCancelOrder=Êtes-vous sûr de vouloir annuler cette commande ? ConfirmMakeOrder=Êtes-vous sûr de vouloir confirmer cette commande en date du %s ? GenerateBill=Facturer ClassifyShipped=Classer livrée -PassedInShippedStatus=classée livrée -YouCantShipThis=Classement impossible : veuillez vérifier les droits utilisateur -MustBeValidatedBefore=doit être Validée ou En cours de livraison pour pouvoir être classée livrée +PassedInShippedStatus=classé livré +YouCantShipThis=Vous ne pouvez pas classer. Merci de vérifier les permissions. DraftOrders=Commandes brouillons DraftSuppliersOrders=Commandes fournisseurs brouillons OnProcessOrders=Commandes en cours de traitement diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 87237e4acef..7617085348e 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -110,7 +110,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=Gestion d'un magasin avec caisse +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) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Sélectionner un objet pour en voir les statistiq 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 des connexions FTP/FTPS +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 diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index b0073665fc2..3e7eece5d0e 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -137,7 +137,8 @@ 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. NoPriceDefinedForThisSupplier=Aucun prix/qté défini pour ce fournisseur/produit @@ -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 @@ -345,8 +346,8 @@ GoOnMenuToCreateVairants=Allez sur le menu %s - %s pour ajouter les attributs de 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. +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 @@ -408,7 +409,22 @@ 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 StockMouvementExtraFields= Champs supplémentaires (mouvement de stock) -PuttingPricesUpToDate=Mettre à jour les prix +OrProductsWithCategories=Ou produits avec tags/categories +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 diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang index d969e7472cc..af97ce451bb 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=Contacts projet +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,7 +18,7 @@ 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. @@ -81,7 +81,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 @@ -190,6 +190,7 @@ PlannedWorkload=Charge de travail prévue PlannedWorkloadShort=Charge de travail ProjectReferers=Objets associés ProjectMustBeValidatedFirst=Le projet doit être validé d'abord +MustBeValidatedToBeSigned=%s doit d'abord être validé pour être défini comme signé. FirstAddRessourceToAllocateTime=Affecter un utilisateur comme contact du projet pour saisir des temps InputPerDay=Saisie par jour InputPerWeek=Saisie par semaine @@ -287,3 +288,9 @@ 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=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 diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index 54723a5747f..41483196a39 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -54,7 +54,7 @@ NoDraftProposals=Pas de propositions brouillons CopyPropalFrom=Créer proposition/devis par recopie d'un proposition existante CreateEmptyPropal=Créer proposition/devis vierge ou avec la liste des produits/services DefaultProposalDurationValidity=Délai de validité par défaut (en jours) -DefaultPuttingPricesUpToDate=Par défaut, mettre à jour les prix lors de clonage d'une proposition commerciale +DefaultPuttingPricesUpToDate=Par défaut, mettre à jour les prix avec les prix connus actuels lors du clonage d'une proposition UseCustomerContactAsPropalRecipientIfExist=Utiliser l'adresse de 'contact suivi client' si définie plutôt que l'adresse du tiers comme destinataire des propositions ConfirmClonePropal=Êtes-vous sûr de vouloir cloner la proposition commerciale %s ? ConfirmReOpenProp=Êtes-vous sûr de vouloir réouvrir la proposition commerciale %s ? @@ -86,13 +86,26 @@ 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é +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 IdProduct=ID produit -PrParentLine=Ligne parent de proposition LineBuyPriceHT=Prix d'achat HT de la ligne SignPropal=Accepter la proposition 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 diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index a907598ff61..a0642c4c627 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -176,9 +176,9 @@ ProductStockWarehouseCreated=Alerte de limite de stock et de stock désiré ajou ProductStockWarehouseUpdated=Alerte de limite de stock et de stock désiré actualisée ProductStockWarehouseDeleted=Alerte de limite de stock et de stock désiré supprimée AddNewProductStockWarehouse=Définir la limite d'alerte et de stock désiré optimal -AddStockLocationLine=Diminuer la quantité puis cliquer pour ajouter ce produit dans un autre entrepôt +AddStockLocationLine=Diminuez la quantité puis cliquez pour diviser la ligne InventoryDate=Date d'inventaire -Inventories=inventaires +Inventories=Inventaires NewInventory=Nouvel inventaire inventorySetup = Paramétrage de l'inventaire inventoryCreatePermission=Créer un nouvel inventaire @@ -244,7 +244,7 @@ InventoryRealQtyHelp=Définissez la valeur sur 0 pour réinitialiser la quantit UpdateByScaning=Complétez la quantité réelle en scannant UpdateByScaningProductBarcode=Mettre à jour par scan (code-barres produit) UpdateByScaningLot=Mise à jour par scan (code barres lot/série) -DisableStockChangeOfSubProduct=Désactiver les mouvements de stock des composants pour ce mouvement de stock. +DisableStockChangeOfSubProduct=Désactiver le changement de stock pour tous les sous-produits de ce Kit lors de ce mouvement. ImportFromCSV=Importer une liste CSV des mouvements ChooseFileToImport=Ajoutez le fichier à importer puis cliquez sur le pictogramme %s pour le sélectionner comme fichier source d'import… SelectAStockMovementFileToImport=sélectionnez un fichier de mouvement de stock à importer @@ -254,7 +254,7 @@ ReOpen=Réouvrir ConfirmFinish=Confirmez-vous la clôture de l'inventaire ? Cela générera tous les mouvements de stock pour mettre à jour votre stock à la quantité réelle que vous avez entrée dans l'inventaire. ObjectNotFound=%s introuvable MakeMovementsAndClose=Générer les mouvements et fermer -AutofillWithExpected=Remplacer la quantité réelle par la quantité attendue +AutofillWithExpected=Remplir la quantité réelle avec la quantité prévue ShowAllBatchByDefault=Par défaut, afficher les détails des lots sur l'onglet "stock" du produit CollapseBatchDetailHelp=Vous pouvez définir l'affichage par défaut des détails du lot dans la configuration du module de stocks ErrorWrongBarcodemode=Mode code-barres inconnu @@ -265,9 +265,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é NoWarehouseDefinedForTerminal=Aucun entrepôt défini pour le terminal +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 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 introuvable pour ce produit diff --git a/htdocs/langs/fr_FR/stripe.lang b/htdocs/langs/fr_FR/stripe.lang index 15837306612..cc873f0acdb 100644 --- a/htdocs/langs/fr_FR/stripe.lang +++ b/htdocs/langs/fr_FR/stripe.lang @@ -69,3 +69,4 @@ 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 diff --git a/htdocs/langs/fr_FR/suppliers.lang b/htdocs/langs/fr_FR/suppliers.lang index dd5402d66ae..0998191b0a2 100644 --- a/htdocs/langs/fr_FR/suppliers.lang +++ b/htdocs/langs/fr_FR/suppliers.lang @@ -32,7 +32,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 +46,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 bc51a7627fd..3f5be72e1d9 100644 --- a/htdocs/langs/fr_FR/ticket.lang +++ b/htdocs/langs/fr_FR/ticket.lang @@ -28,7 +28,7 @@ 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) TicketDictType=Ticket - Types -TicketDictCategory=Ticket - Groupes +TicketDictCategory=Ticket - Catégorisation du ticket TicketDictSeverity=Ticket - Sévérités TicketDictResolution=Ticket - Résolution @@ -90,15 +90,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=Email from de notification -TicketEmailNotificationFromHelp=Utilisé dans les messages de réponses des tickets par exemple -TicketEmailNotificationTo=E-mail de notification à -TicketEmailNotificationToHelp=Envoyer des notifications par e-mail à cette adresse. +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=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) @@ -136,8 +138,17 @@ TicketsPublicNotificationNewMessage=Envoyer un ou des emails lorsqu’un nouveau TicketsPublicNotificationNewMessageHelp=Envoyer un (des) courriel(s) lorsqu’un nouveau message est ajouté à partir de l’interface publique (à l’utilisateur désigné ou au courriel de notification (mise à jour) et/ou au courriel de notification) TicketPublicNotificationNewMessageDefaultEmail=Emails de notifications à (mise à jour) TicketPublicNotificationNewMessageDefaultEmailHelp=Envoyez un email à cette adresse email pour chaque nouveau message de notifications si le ticket n'a pas d'utilisateur assigné ou si l'utilisateur n'a pas d'email connu. -TicketsAutoReadTicket=Automatiquement marquer le ticket comme lu -TicketsAutoReadTicketHelp=Automatiquement marquer le ticket comme lu s'il est créé depuis le backoffice. +TicketsAutoReadTicket=Marquer automatiquement le ticket comme "Lu" (en cas de création depuis le back-office) +TicketsAutoReadTicketHelp=Les tickets créés depuis le back-office seront automatiquement marqués comme "Lu". Les tickets créés depuis l'interface publique seront créés au statut "Non lu". +TicketsDelayBeforeFirstAnswer=Un nouveau ticket devrait recevoir une réponse avant (en heures) : +TicketsDelayBeforeFirstAnswerHelp=Si un nouveau ticket n'a pas reçu de réponse dans le délai indiqué ici (en heures), une icône d'alerte est affiché dans la liste. +TicketsDelayBetweenAnswers=Un ticket non résolu ne doit pas rester sans actions pendant (en heures) : +TicketsDelayBetweenAnswersHelp=Si un ticket non résolu ayant un premire réponse n'a aucune autre modification apportée dans le délai indiqué ici (en heures), une icône d'alerte est affiché dans la liste. +TicketsAutoNotifyClose=Avertir automatiquement un tiers lors de la fermeture d'un ticket +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=Sélectionnez la catégorie de produit du support de ticket. Celui-ci sera utilisé pour lier automatiquement un contrat à un ticket. # # Index & list page @@ -154,6 +165,8 @@ OrderByDateAsc=Trier par date croissante OrderByDateDesc=Trier par date décroissante ShowAsConversation=Afficher comme liste de conversation MessageListViewType=Afficher la liste sous forme de tableau +ConfirmMassTicketClosingSendEmail=Envoyer automatiquement des e-mails lors de la fermeture des tickets +ConfirmMassTicketClosingSendEmailQuestion=Souhaitez-vous avertir des tiers lors de la fermeture de ces tickets ? # # Ticket card @@ -208,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Le destinataire est vide. Aucun e- TicketGoIntoContactTab=Rendez-vous dans le tableau "Contacts" pour les sélectionner TicketMessageMailIntro=Introduction TicketMessageMailIntroHelp=Ce texte est ajouté seulement au début de l'email et ne sera pas sauvegardé. -TicketMessageMailIntroLabelAdmin=Introduction du message lors de l'envoi d'un e-mail -TicketMessageMailIntroText=Bonjour
    Une nouvelle réponse a été ajoutée à un ticket que vous suivez. Voici le message :
    -TicketMessageMailIntroHelpAdmin=Ce texte sera inséré après le message de réponse. +TicketMessageMailIntroLabelAdmin=Texte d'introduction à toutes les réponses aux tickets +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 TicketMessageMailSignature=Signature TicketMessageMailSignatureHelp=Ce texte est ajouté seulement à la fin de l'email et ne sera pas sauvegardé. -TicketMessageMailSignatureText=

    Cordialement,

    --

    +TicketMessageMailSignatureText=Message envoyé par %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Signature de l'email de réponse TicketMessageMailSignatureHelpAdmin=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. @@ -241,9 +254,16 @@ TicketChangeStatus=Changer l'état TicketConfirmChangeStatus=Confirmez le changement d'état: %s? TicketLogStatusChanged=Statut modifié: %s à %s TicketNotNotifyTiersAtCreate=Ne pas notifier l'entreprise à la création +NotifyThirdpartyOnTicketClosing=Contacts à notifier lors de la fermeture du ticket +TicketNotifyAllTiersAtClose=Tous les contacts associés +TicketNotNotifyTiersAtClose=Aucun contact associé Unread=Non lu TicketNotCreatedFromPublicInterface=Non disponible. Le ticket n’a pas été créé à partir de l'interface publique. 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=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 @@ -265,14 +285,15 @@ TicketPublicDesc=Vous pouvez créer un ticket ou consulter à partir d'un ID de YourTicketSuccessfullySaved=Le ticket a été enregistré avec succès MesgInfosPublicTicketCreatedWithTrackId=Un nouveau ticket a été créé avec l'ID %s et la référence %s. PleaseRememberThisId=Merci de conserver le code de suivi du ticket, il vous sera peut-être nécessaire ultérieurement -TicketNewEmailSubject=Confirmation de création de ticket - Réf %s(ID publique tu ticket %s) +TicketNewEmailSubject=Confirmation de création de ticket - Réf %s(ID public du ticket %s) TicketNewEmailSubjectCustomer=Nouveau ticket TicketNewEmailBody=Ceci est un message automatique pour confirmer l'enregistrement de votre ticket. 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=Vous pouvez voir la progression du ticket en cliquant sur le lien ci-dessus. +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. @@ -294,6 +315,10 @@ NewUser=Nouvel utilisateur NumberOfTicketsByMonth=Nombre de tickets par mois NbOfTickets=Nombre de tickets # notifications +TicketCloseEmailSubjectCustomer=Billet fermé +TicketCloseEmailBodyCustomer=Ceci est un message automatique pour vous avertir que le ticket %s vient d'être clôturé. +TicketCloseEmailSubjectAdmin=Ticket fermé - Réf %s (identifiant ticket public %s) +TicketCloseEmailBodyAdmin=Un ticket avec l'ID #%s vient d'être clôturé, voir les informations : TicketNotificationEmailSubject=Ticket %s mis à jour TicketNotificationEmailBody=Ceci est un message automatique pour vous informer que le ticket %s vient d'être mis à jour TicketNotificationRecipient=Destinataire de la notification @@ -324,4 +349,4 @@ BoxNumberOfTicketByDay=Nombre de nouveaux tickets par jour BoxNewTicketVSClose=Nombre de nouveaux tickets par rapport aux tickets fermés (aujourd'hui) TicketCreatedToday=Ticket créé aujourd'hui TicketClosedToday=Ticket fermé aujourd'hui -KMFoundForTicketGroup=Nous avons trouvé des sujets et des FAQ pouvant répondre à votre question, merci de les consulter avant de soumettre le ticket +KMFoundForTicketGroup=Consulter notre FAQ diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang index 2e7cf913b5e..5888332a820 100644 --- a/htdocs/langs/fr_FR/users.lang +++ b/htdocs/langs/fr_FR/users.lang @@ -76,7 +76,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) @@ -114,7 +114,7 @@ UserLogoff=Déconnexion de l'utilisateur UserLogged=Utilisateur connecté DateOfEmployment=Date d'embauche DateEmployment=Emploi -DateEmploymentstart=Date d'embauche +DateEmploymentStart=Date d'embauche DateEmploymentEnd=Date de fin d'emploi RangeOfLoginValidity=Période de validité de l'identifiant CantDisableYourself=Vous ne pouvez pas désactiver votre propre compte utilisateur @@ -124,3 +124,7 @@ 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 de la dernière connexion +DatePreviousLogin=Date de connexion précédente +IPLastLogin=IP dernière connexion +IPPreviousLogin=Connexion précédente IP diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index 03b60e71bca..f91ffbd55f3 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -31,7 +31,7 @@ SupplierInvoiceWaitingWithdraw=Facture fournisseur en attente de paiement par vi InvoiceWaitingWithdraw=Factures en attente de prélèvement InvoiceWaitingPaymentByBankTransfer=Facture en attente de virement AmountToWithdraw=Somme à prélever -AmountToTransfer=Somme à transferrer +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. ResponsibleUser=Utilisateur responsable @@ -137,6 +137,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 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 @@ -155,3 +156,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 diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang index 02c641616fe..372a83d73b9 100644 --- a/htdocs/langs/fr_FR/workflow.lang +++ b/htdocs/langs/fr_FR/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer automatiquement une commande client descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la signature d'une proposition commerciale (la facture sera du même montant que la proposition commerciale source) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer une facture client automatiquement à la validation d'un contrat descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la cloture d'un commande (la facture sera du même montant que la commande) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Crée une intervention automatiquement à la création d'un ticket # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source(s) facturée(s) au classement facturé de la commande (et si le montant de la commande est le même que le total des propositions liées) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source facturée(s) à la validation d'une facture client (et si le montant de la facture est le même que la somme des propositions liées) @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Classer le bon de commande source 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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Fermer toutes les interventions liées au ticket lorsqu'un ticket est fermé 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 +AutomaticClosing=Fermeture automatique +AutomaticLinking=Liaison automatique diff --git a/htdocs/langs/fr_GA/accountancy.lang b/htdocs/langs/fr_GA/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/fr_GA/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/fr_GA/exports.lang b/htdocs/langs/fr_GA/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/fr_GA/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/fr_GA/products.lang b/htdocs/langs/fr_GA/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/fr_GA/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/gl_ES/accountancy.lang b/htdocs/langs/gl_ES/accountancy.lang index b5b3a8afad6..d6e220fea5b 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 @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=Conta contable principal para o pago AccountancyArea=Área contabilidade AccountancyAreaDescIntro=O uso do módulo de contabilidade realízase en varios pasos: AccountancyAreaDescActionOnce=As seguintes accións execútanse normalmente unha soa vez, ou unha vez ao ano... -AccountancyAreaDescActionOnceBis=Os seguintes pasos deben facerse para aforrar tempo no futuro, suxerindo a conta contable predeterminada correcta para realizar os diarios (escritura dos rexistros nos Diarios e Libro Maior) +AccountancyAreaDescActionOnceBis=Ten que facer os seguintes pasos para aforrar tempo no futuro, suxerindo automaticamente a conta contable predeterminada correcta ao transferir datos na contabilidade AccountancyAreaDescActionFreq=As seguintes accións execútanse normalmente cada mes, semana ou día en empresas moi grandes... -AccountancyAreaDescJournalSetup=PASO %s: Cree ou mire o contido da sua listaxe de diarios dende o menú %s +AccountancyAreaDescJournalSetup=PASO %s: comprobe o contido da súa lista de publicacións desde o menú %s AccountancyAreaDescChartModel=PASO %s: Crea un modelo do plan xeral contable dende o menú %s AccountancyAreaDescChart=PASO %s: Crear ou completar o contido do seu plan xeral contable dende o menú %s AccountancyAreaDescVat=PASO %s: Defina as contas contables para cada tasa de IVE. Para iso, use a entrada do menú %s. AccountancyAreaDescDefault=PASO %s: Defina as contas contables por defecto. Para iso, use a entrada do menú %s. -AccountancyAreaDescExpenseReport=PASO %s: Defina as contas contables por defecto para cada tipo de informe de gastos. Para iso, use a entrada do menú %s. +AccountancyAreaDescExpenseReport=PASO %s: Defina contas contables predeterminadas para cada tipo de informe de gastos. Para iso, use a entrada do menú %s. AccountancyAreaDescSal=PASO %s: Defina as contas contables para os pagos de salarios. Para iso, use a entrada do menú %s. -AccountancyAreaDescContrib=PASO %s: Defina as contas contables dos gastos especiais (impostos varios). Para iso, use a entrada do menú %s. +AccountancyAreaDescContrib=PASO %s: Defina contas contables predeterminadas para Impostos (gastos especiais). Para iso, use a entrada do menú %s. AccountancyAreaDescDonation=PASO %s: Defina as contas contables para as doacións/subvencións. Para iso, use a entrada do menú %s. AccountancyAreaDescSubscription=STEP %s: Defina as contas contables por defecto para a subscrición de membros. Para iso, use a entrada do menú %s. AccountancyAreaDescMisc=PASO %s: Defina a conta por defecto obrigada e as contas contables por defecto para transaccións varias. Para iso, use a entrada do menú %s. AccountancyAreaDescLoan=PASO %s: Defina as contas contables por defecto para préstamos. Para iso, use a entrada do menú %s.\n AccountancyAreaDescBank=PASO %s: Defina as contas contables e o código para cada conta bancaria e financiera. Pode empezar dende a páxina %s. -AccountancyAreaDescProd=PASO %s: Defina as contas contables nos seus produtos/servizos. Para elo pode utilizar o menú %s. +AccountancyAreaDescProd=PASO %s: define as contas de contabilidade nos seus produtos/servizos. Para iso, use a entrada do menú %s. AccountancyAreaDescBind=PASO %s: Mire que as ligazóns entre as liñas %s existentes e as contas contables son correctos, para que a aplicación poda rexistrar as transaccións no Libro Maior nun só clic. Complete as ligazóns que falten. Para iso, utilice a entrada de menú %s. AccountancyAreaDescWriteRecords=PASO %s: Escribir as transaccións no Libro Maior. Para iso, entre no menú %s, e faga clic no botón %s. @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Conta contable de rexistro de doacións/subvencións ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conta contable de rexistro subscricións ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Conta contable por defecto para rexistrar os ingresos realizados polo 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 contable por defecto para rexistrar o depósito do provedor +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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=Por grupos predefinidos ByPersonalizedAccountGroups=Por grupos persoalizados ByYear=Por ano NotMatch=Non establecido -DeleteMvt=Eliminar liñas do Libro Maior +DeleteMvt=Elimina algunhas liñas da contabilidade DelMonth=Mes a eliminar DelYear=Ano a eliminar DelJournal=Diario a eliminar -ConfirmDeleteMvt=Isto eliminará todas as liñas da contabilidade do ano/mes e/ou dun diario específico. (Precísase alo menos un criterio). Terá que reutilizar a función '%s' para que o rexistro eliminado volte ao libro maior. -ConfirmDeleteMvtPartial=Isto eliminará a transacción d da contabilidade (eliminaranse todas as liñas relacionadas coa mesma transacción) +ConfirmDeleteMvt=Isto eliminará todas as liñas da contabilidade do ano/mes e/ou dun diario específico (precisa polo menos un criterio). Terás que reutilizar a función '%s' para que o rexistro eliminado volte ao Libro Maior. +ConfirmDeleteMvtPartial=Isto eliminará a transacción da contabilidade (eliminaranse todas as liñas relacionadas coa mesma transacción) FinanceJournal=Diario financiero ExpenseReportsJournal=Diario informe de gastos DescFinanceJournal=O diario financiero inclúe todos os tipos de pagos por conta bancaria @@ -278,30 +282,31 @@ 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 non están validados e exercicios fiscais xa abertos -OverviewOfMovementsNotValidated=Paso 1/ Visión xeral dos movementos non validados. (Preciso para pechar un exercicio fiscal) -AllMovementsWereRecordedAsValidated=Todos os movementos foron rexistrados e validados -NotAllMovementsCouldBeRecordedAsValidated=Non todos os movementos puideron ser rexistrados e validados -ValidateMovements=Validar os movementos +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... 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 -MvtNotCorrectlyBalanced=Asento contabilizado incorrectamente. Debe=%s. Haber=%s +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 mais rexistros para o diario +NoNewRecordSaved=Non hai máis rexistro para transferir ListOfProductsWithoutAccountingAccount=Listaxe de produtos sen contas contables ChangeBinding=Cambiar a unión Accounted=Contabilizada no Libro Maior NotYetAccounted=Aínda non transferido á contabilidade ShowTutorial=Amosar Tutorial NotReconciled=Non reconciliado -WarningRecordWithoutSubledgerAreExcluded=Aviso: todas as operacións sen subcontas contables defininidas están filtradas e excluídas desta vista +WarningRecordWithoutSubledgerAreExcluded=Aviso, todas as liñas sen unha subconta contable definida son filtradas e excluídas desta vista +AccountRemovedFromCurrentChartOfAccount=Conta contable que non existe no plan de contas actual ## Admin BindingOptions=Opcións de ligazón @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Desactivar a ligazón e transferencia na 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) ## Export -NotifiedExportDate=Marcar as liñas exportadas como exportadas (non será posible modificar as liñas) -NotifiedValidationDate=Valida as entradas exportadas (non será posible modificar ou eliminar as liñas) +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 "%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 Modelcsv=Modelo de exportación @@ -394,6 +400,21 @@ Range=Rango de conta contable Calculated=Calculado Formula=Fórmula +## Reconcile +Unlettering=Voltar a non conciliado +AccountancyNoLetteringModified=Non se modificou ningunha conciliación +AccountancyOneLetteringModifiedSuccessfully=Unha conciliación modificada con éxito +AccountancyLetteringModifiedSuccessfully=%s conciliación modificada correctamente +AccountancyNoUnletteringModified=Non se modificou ningunha desconciliación +AccountancyOneUnletteringModifiedSuccessfully=Unha desconciliación modificouse correctamente +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? +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? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Algúns pasos precisos da configuración non foron realizados, prégase completalos. ErrorNoAccountingCategoryForThisCountry=Non hai grupos contables dispoñibles para %s (Vexa Inicio - Configuración - Diccionarios) @@ -406,6 +427,10 @@ Binded=Liñas contabilizadas ToBind=Liñas a contabilizar UseMenuToSetBindindManualy=Non é posible autodetectar, utilice o menú %s para realizar o apunte manualmente SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sentímolo, este módulo non é compatible coa función experimental da situación das facturas +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 diff --git a/htdocs/langs/gl_ES/admin.lang b/htdocs/langs/gl_ES/admin.lang index 27692650270..d57c2241252 100644 --- a/htdocs/langs/gl_ES/admin.lang +++ b/htdocs/langs/gl_ES/admin.lang @@ -109,7 +109,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 @@ -477,7 +477,7 @@ 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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Tamén é interesante usar o servidor SMTP do seu propio forne 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. 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) @@ -714,13 +714,14 @@ 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 Permission39=Ignore prezo mínimo -Permission41=Consultar proxectos e tarefas (proxectos compartidos e proxectos dos que son contacto). Tamén pode introducir tempos consumidos, para mín ou os meus subordinados, en tarefas asignadas (Follas de tempo). -Permission42=Crear/modificar proxectos (proxectos compartidos e proxectos dos que son contacto). Tamén pode crear tarefas e asignar usuarios a proxectos e tarefas -Permission44=Eliminar proxectos (compartidos ou son contacto) +Permission41=Ler proxectos e tarefas (proxectos compartidos e proxectos dos que son contacto). +Permission42=Crear/modificar proxectos (proxectos compartidos e proxectos dos que son contacto). Tamén pode asignar usuarios a proxectos e tarefas +Permission44=Eliminar proxectos (proxectos compartidos e proxectos dos que eu son contacto) Permission45=Exportar proxectos Permission61=Consultar intervencións Permission62=Crear/modificar intervencións @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Crear/modificar empresas ligadas ao usuario Permission125=Eliminar empresas ligadas ao usuario Permission126=Exportar las empresas Permission130=Crear/modificar información de pagamento de terceiros -Permission141=Consultar todos os proxectos e tarefas (incluidos proxectos privados dos que non son contacto) -Permission142=Crear/modificar todos os proxectos e tarefas (incluidos proxectos privados dos que non son contacto) -Permission144=Eliminar todos os proxectos e tarefas (incluidos os proxectos privados dos que non son contacto) +Permission141=Le todos os proxectos e tarefas (así como os proxectos privados dos que non son contacto) +Permission142=Crear/modificar todos os proxectos e tarefas (así como os proxectos privados dos que non son contacto) +Permission144=Elimina todos os proxectos e tarefas (así como os proxectos privados dos que non son contacto) +Permission145=Pode introducir o tempo consumido, para min ou para a miña xerarquía, nas tarefas asignadas (Folla de horas) Permission146=Consultar provedores Permission147=Consultar estatísticas Permission151=Consultar domiciliacións @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Rexistrar débitos/rexeitamentos da transferencia Permission601=Ler etiquetas Permission602=Crear/modificar eqtiquetas Permission609=Borrar etiquetas +Permission611=Ler atributos das variantes +Permission612=Crear/Actualizar atributos de variantes +Permission613=Eliminar atributos das variantes Permission650=Consultar lista de materiais Permission651=Crear/Actualizar lista de material Permission652=Eliminar lista de material @@ -969,6 +976,8 @@ Permission4021=Crea/modifica a súa avaliación Permission4022=Validar avaliación Permission4023=Eliminar avaliación Permission4030=Ver menú comparativo +Permission4031=Ler información persoal +Permission4032=Escribe información persoal 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Informe de gastos - Categorías de transporte DictionaryExpenseTaxRange=Informe de gastos - Rango por categoría de transporte DictionaryTransportMode=Informe intracom - Modo de transporte DictionaryBatchStatus=Lote de produto/serie estado do Control de Calidade +DictionaryAssetDisposalType=Tipo de disposición de bens TypeOfUnit=Tipo de unidade SetupSaved=Configuración gardada SetupNotSaved=Configuración non gardada @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Módulo contas bancarias non activado ShowBugTrackLink=Amosar a ligazón "%s" ShowBugTrackLinkDesc=Mantéñase baleiro para non amosar esta ligazón, use o valor "github" para a ligazón ao proxecto Dolibarr ou defina directamente unha URL "https: // ..." Alerts=Alertas -DelaysOfToleranceBeforeWarning=Atraso antes da amosar unha alerta +DelaysOfToleranceBeforeWarning=Amosando unha alerta de aviso para... DelaysOfToleranceDesc=Esta pantalla permite configurar os prazos de tolerancia antes da alerta co icono %s, sobre cada elemento en atraso. Delays_MAIN_DELAY_ACTIONS_TODO=Os eventos planificados (eventos da axenda) non se completaron Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Proxecto non pechado a tempo @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Forzou unha nova tradución para a clave de traduci TitleNumberOfActivatedModules=Módulos activados TotalNumberOfActivatedModules=Número total de módulos activados: %s / %s YouMustEnableOneModule=Debe activar polo menos 1 módulo. +YouMustEnableTranslationOverwriteBefore=Primeiro debe activar a sobrescritura da tradución para poder substituír unha tradución ClassNotFoundIntoPathWarning=Clase 1%s non foi atopada na ruta PHP YesInSummer=Sí en verán OnlyFollowingModulesAreOpenedToExternalUsers=Atención: Teña conta que os módulos seguintes están dispoñibles a usuarios externos (sexa cal fora o permiso destes usuarios) e só se os permisos son concedidos:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Marca de auga nas facturas borrador (no caso de estar b PaymentsNumberingModule=Numeración de modelos de pagamentos 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. ##### Proposals ##### PropalSetup=Configuración do módulo Orzamentos ProposalsNumberingModules=Módulos de numeración de orzamentos @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=A instalación ou construción dun módulo externo des HighlightLinesOnMouseHover=Resalte as liñas da táboa cando pasa o rato por riba HighlightLinesColor=Resaltar a cor da liña cando pasa o rato pasa (use 'ffffff' para non destacar) HighlightLinesChecked=Resaltar a cor da liña cando está marcada (use 'ffffff' para non destacar) +UseBorderOnTable=Amosa os bordos esquerdo-dereito nas táboas BtnActionColor=Cor do botón da acción TextBtnActionColor=Cor do texto do botón da acción TextTitleColor=Cor do texto do título da páxina @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=Este campo contén unha referencia para identificar a liña. Introd Enter0or1=Engada 0 ou 1 UnicodeCurrency=Introduza aquí entre chaves, listaxe do número de bytes que representan o símbolo de moeda. Por exemplo: por $, introduza [36] - para Brasil real R$ [82,36] - para €, introduza [8364] ColorFormat=A cor RGB está en formato HEX, por exemplo: FF0000 -PictoHelp=Nome da icona en formato dolibarr ('image.png' se está no directorio do tema actual, 'image.png@nom_du_module' se está no directorio /img/ dun módulo) +PictoHelp=Nome da icona en formato:
    - imaxe.png para un ficheiro de imaxe no directorio do tema actual
    - imaxe.png@modul0 se o ficheiro está no directorio /img/ dun módulo
    - fa-xxx para un FontAwesome picto fa-xxx
    - fonwtawesome_xxx_fa_color_size para un picto FontAwesome fa-xxx (con prefixo, cor e tamaño definidos) PositionIntoComboList=Posición da liña nas listas combinadas SellTaxRate=Tipo do imposto sobre as vendas RecuperableOnly=Sí para o IVE "Non percibido pero recuperable" dedicado a algún estado de Franza. Manteña o valor en "Non" no resto dos casos. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Pedimentos a provedor MailToSendSupplierInvoice=Facturas provedor MailToSendContract=Contratos MailToSendReception=Recepcións +MailToExpenseReport=Informes de gastos MailToThirdparty=Terceiros MailToMember=Membros MailToUser=Usuarios @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtro de rexistro para limpar o valor (COMPANY_AQU COMPANY_DIGITARIA_CLEAN_REGEX=Filtro de rexistro para limpar o valor (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Non se permite duplicado GDPRContact=Responsable de protección de datos (DPO, privacidade de datos ou contacto GDPR) -GDPRContactDesc=Se garda datos sobre empresas/cidadáns europeos, pode nomear o contacto responsable do Regulamento xeral de protección de datos aquí +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 HelpOnTooltipDesc=​​= Poner aquí o texto ou unha chave de tradución para que o texto apareza nunha tip sobre ferramentas cando este campo aparece nun formulario YouCanDeleteFileOnServerWith=Pode eliminar este ficheiro no servidor coa liña de comandos:
    %s @@ -2048,27 +2065,46 @@ VATIsUsedIsOff=Nota: A opción para usar Vendas IVE ou IVE configurouse como 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 +EmailCollectorExampleToCollectJobCandidaturesDesc=Recoller correos electrónicos para solicitar ofertas de emprego (O módulo de contratación debe estar activado). Pode completar este recopilador se quere crear automaticamente unha candidatura para unha solicitude de emprego. Nota: Con este exemplo inicial, xérase o título da candidatura incluíndo o correo electrónico. +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, sen terceiros do contrario) +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) CodeLastResult=Código de resultado máis recente NbOfEmailsInInbox=Número de correos electrónicos no directorio de orixe LoadThirdPartyFromName=Cargar busca de terceiros en %s (só cargar) @@ -2082,14 +2118,14 @@ 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 UseSearchToSelectResource=Use un formulario de busca para escoller un recurso (en lugar dunha lista despregable). DisabledResourceLinkUser=Desactivar a función para ligar un recurso aos usuarios DisabledResourceLinkContact=Desactivar a función para ligar un recurso aos contactos -EnableResourceUsedInEventCheck=Activar a función para comprobar se un recurso está en uso nun evento +EnableResourceUsedInEventCheck=Prohibir o uso do mesmo recurso ao mesmo tempo na axenda ConfirmUnactivation=Confirmar o restablecemento do módulo OnMobileOnly=Só na pantalla pequena (smartphone) DisableProspectCustomerType=Desactiva o tipo de terceiro "Cliente Potencial+Cliente" (polo que o terceiro debe ser "Cliente Potencial" ou "Cliente", pero non pode ser ambos) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Eliminar o receptor de correo electrónico ConfirmDeleteEmailCollector=¿Está certo de que quere eliminar este receptor de correo electrónico? RecipientEmailsWillBeReplacedWithThisValue=Os correos electrónicos dos destinatarios sempre se substituirán por este valor AtLeastOneDefaultBankAccountMandatory=Debe definirse polo menos unha conta bancaria predeterminada -RESTRICT_ON_IP=Permitir acceso a APIS dispoñibles a algunha host IP só (comodín non permitido, use espazo entre valores). Baleiro significa que todos os hosts poden acceder. +RESTRICT_ON_IP=Permitir o acceso da API só a determinadas IP de clientes (non se permiten comodíns, use espazo entre os valores). Baleiro significa que todos os clientes poden acceder. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Baseado na versión SabreDAV da biblioteca NotAPublicIp=Non é unha IP pública @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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 @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Desactiva miniaturas para membros DashboardDisableBlockExpenseReport=Desactiva miniaturas para a informes de gastos DashboardDisableBlockHoliday=Desactiva miniaturas para as follas EnabledCondition=Condición para ter o campo activado (se non está activado, a visibilidade sempre estará desactivada) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un segundo imposto, debe habilitar tamén o primeiro imposto de venda -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un terceiro imposto, debe habilitar tamén o primeiro imposto de venda +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un segundo imposto, debe activar tamén o primeiro imposto sobre vendas +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un terceiro imposto, debe activar tamén o primeiro imposto sobre vendas LanguageAndPresentation=Lingua e presentación SkinAndColors=Pel e cores -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un segundo imposto, debe habilitar tamén o primeiro imposto de venda -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un terceiro imposto, debe habilitar tamén o primeiro imposto de venda +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un segundo imposto, debe activar tamén o primeiro imposto sobre vendas +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se desexa utilizar un terceiro imposto, debe activar tamén o primeiro imposto sobre vendas PDF_USE_1A=Xera PDF con formato PDF/A-1b MissingTranslationForConfKey = Falta a tradución para %s NativeModules=Modulos nativos @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Desactivar a compresión das respostas da API EachTerminalHasItsOwnCounter=Cada terminal usa o seu propio contador. FillAndSaveAccountIdAndSecret=Encha e garde primeiro o ID da conta e o contrasinal PreviousHash=Hash anterior +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. + +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ú +IconOnlyTextOnHover=Só icona: o texto da icona aparece debaixo da icona ao pasar o rato sobre a icona +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 +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 diff --git a/htdocs/langs/gl_ES/agenda.lang b/htdocs/langs/gl_ES/agenda.lang index 8241328fc0e..58c40160710 100644 --- a/htdocs/langs/gl_ES/agenda.lang +++ b/htdocs/langs/gl_ES/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contrato %s eliminado PropalClosedSignedInDolibarr=Orzamento %s asinado PropalClosedRefusedInDolibarr=Orzamento %s rexeitado PropalValidatedInDolibarr=Orzamento %s validado +PropalBackToDraftInDolibarr=O orzamento %s volve ao estado de borrador PropalClassifiedBilledInDolibarr=Orzamento %s clasificado como facturado InvoiceValidatedInDolibarr=Factura %s validada InvoiceValidatedInDolibarrFromPos=Factura %s validada desde TPV @@ -56,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 @@ -66,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 +ReceptionClassifyClosedInDolibarr=Recepción %s clasificada pechada OrderCreatedInDolibarr=Pedimento %s creado OrderValidatedInDolibarr=Pedimento %s validado OrderDeliveredInDolibarr=Pedimento %s clasificado como enviado @@ -157,6 +160,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 @@ -172,3 +176,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 f493fb45e61..e21e90b021d 100644 --- a/htdocs/langs/gl_ES/banks.lang +++ b/htdocs/langs/gl_ES/banks.lang @@ -95,11 +95,11 @@ LineRecord=Rexistro AddBankRecord=Engadir rexistro AddBankRecordLong=Engadir rexistro manual Conciliated=Reconciliado -ConciliatedBy=Reconciliado por +ReConciliedBy=Reconciliado por DateConciliating=Data de reconciliación BankLineConciliated=Rexistro reconciliado -Reconciled=Reconciliado -NotReconciled=Non reconciliado +BankLineReconciled=Reconciliado +BankLineNotReconciled=Non reconciliado CustomerInvoicePayment=Cobro a cliente SupplierInvoicePayment=Pagamento a provedor SubscriptionPayment=Pagamento cota @@ -172,8 +172,8 @@ SEPAMandate=Orde SEPA YourSEPAMandate=A súa orde SEPA FindYourSEPAMandate=Esta é a súa orde SEPA para autorizar a nosa empresa a realizar un petición de débito ao seu banco. Envíea de volta asinada (dixitalice o documento asinado) ou envíe por correo a AutoReportLastAccountStatement=Automaticamente cubra a etiqueta 'numero de extracto bancario' co último número de extracto de cando fixo a reconciliación -CashControl=Control de caixa TPV -NewCashFence=Nova apertura ou peche de caixa +CashControl=Control de efectivo TPV +NewCashFence=Novo control de caixa (apertura ou peche) BankColorizeMovement=Colorear os movementos BankColorizeMovementDesc=Se esta función está activada, pode escoller unha cor específica do fondo dos movementos de crédito ou de débito BankColorizeMovementName1=Cor de fondo para movementos de débito @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty=Se non aplica as reconciliacións bancarias na NoBankAccountDefined=Non está definida a conta bancaria NoRecordFoundIBankcAccount=Non foi atopado ningún rexistro na conta bancaria. Normalmente, isto ocorre cando un rexistro foi eliminado manualmente da listaxe de transaccións da conta bancaria (por exemplo, durante a conciliación da conta bancaria). Outro motivo é que o pagamento foi rexistrado cando o modulo "%s estivo" desactivado. 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 1e8201604fb..dbb83e2c830 100644 --- a/htdocs/langs/gl_ES/bills.lang +++ b/htdocs/langs/gl_ES/bills.lang @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Erro, a factura correcta debe ter un importe neg ErrorInvoiceOfThisTypeMustBePositive=Erro, este tipo de factura debe ter un importe sen impostos positivos (ou nulos) ErrorCantCancelIfReplacementInvoiceNotValidated=Erro, non se pode cancelar unha factura que foi substituída por outra que aínda está en estado de borrador ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte ou outra xa está empregada polo que a serie de descontos non se pode eliminar. +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: ActionsOnBill=Accións sobre a factura @@ -282,6 +283,8 @@ RecurringInvoices=Facturas recurrentes RecurringInvoice=Factura recurrente RepeatableInvoice=Padrón de factura RepeatableInvoices=Padrón de facturas +RecurringInvoicesJob=Xeración de facturas recorrentes (facturas de clientes) +RecurringSupplierInvoicesJob=Xeración de facturas recorrentes (facturas de provedores) Repeatable=Padrón Repeatables=Padróns ChangeIntoRepeatableInvoice=Convertir en padrón @@ -426,14 +429,24 @@ PaymentConditionShort14D=14 días PaymentCondition14D=Pagamento aos 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 da entrega FixAmount=Importe fixo -1 liña coa etiqueta %s VarAmount=Importe variable (%% total) VarAmountOneLine=Cantidade variable (%% tot.) - 1 liña coa etiqueta '%s' VarAmountAllLines=Cantidade variable (%% tot.)- Todas as liñas desde a orixe +DepositPercent=Depósito %% +DepositGenerationPermittedByThePaymentTermsSelected=Isto está permitido polas condicións de pago seleccionadas +GenerateDeposit=Xera unha factura de depósito %s%% +ValidateGeneratedDeposit=Validar o depósito xerado +DepositGenerated=Depósito xerado +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Só pode xerar automaticamente un depósito a partir dun orzamento ou dun pedimento +ErrorPaymentConditionsNotEligibleToDepositCreation=As condicións de pagamento escollidas non son aptas para a xeración automática de depósitos # PaymentType PaymentTypeVIR=Transferencia bancaria PaymentTypeShortVIR=Transferencia bancaria PaymentTypePRE=Domiciliación +PaymentTypePREdetails=(na conta *-%s) PaymentTypeShortPRE=Domiciliación PaymentTypeLIQ=Efectivo PaymentTypeShortLIQ=Efectivo @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Pagamento mediante talón nominativo (taxas inclu SendTo=enviado a PaymentByTransferOnThisBankAccount=Pagamento mediante transferencia á conta bancaria seguinte VATIsNotUsedForInvoice=* IVE non aplicable art-293B del CGI +VATIsNotUsedForInvoiceAsso=* IVE non aplicable art-261-7 do CGI LawApplicationPart1=Pola aplicación da lei 80.335 de 12/05/80 LawApplicationPart2=as mercancías permanecen en propiedade de LawApplicationPart3=vendedor ata o completo cobro de @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Eliminouse a factura do provedor UnitPriceXQtyLessDiscount=Prezo unitario x Cantidade - Desconto CustomersInvoicesArea=Área de facturación do cliente SupplierInvoicesArea=Área de facturación de provedor -FacParentLine=Liña principal de factura SituationTotalRayToRest=Lembranza de pagar sen impostos PDFSituationTitle=Situación n° %d SituationTotalProgress=Progreso total %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Procurar facturas pendentes de pagamento cunha d NoPaymentAvailable=Non hai pagamento dispoñible para %s PaymentRegisteredAndInvoiceSetToPaid=Pagamento rexistrado e factura %s configurada como xa paga 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) diff --git a/htdocs/langs/gl_ES/boxes.lang b/htdocs/langs/gl_ES/boxes.lang index 4f3e0c6580a..ba4db75b8d4 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 diff --git a/htdocs/langs/gl_ES/cashdesk.lang b/htdocs/langs/gl_ES/cashdesk.lang index 147ff5352e1..440c855c674 100644 --- a/htdocs/langs/gl_ES/cashdesk.lang +++ b/htdocs/langs/gl_ES/cashdesk.lang @@ -51,7 +51,7 @@ AmountAtEndOfPeriod=Importe ao final do período (día, mes ou ano) TheoricalAmount=Importe teórico RealAmount=Importe real CashFence=Peche de caixa -CashFenceDone=Peche de caixa realizado para o período +CashFenceDone=Peche de caixa feito para o período NbOfInvoices=Nº de facturas Paymentnumpad=Tipo de Pad para introducir o pago. Numberspad=Teclado numérico @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 = A etiqueta
    (TN) é usada para engadir o n TakeposGroupSameProduct=Agrupa as mesmas liñas de produtos StartAParallelSale=Comeza unha nova venda en paralelo SaleStartedAt=A venda comezou en %s -ControlCashOpening=Abre a ventá emerxente "Control de efectivo" ao abrir o TPV -CloseCashFence=Controlar peche de caixa +ControlCashOpening=Abre a ventá emerxente "Controlar conta de caixa" ao abrir o TPV +CloseCashFence=Pecha o control da conta de caixa CashReport=Informe de caixa MainPrinterToUse=Impresora principal a usar OrderPrinterToUse=Solicitar que impresora usar @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=Engade o botón "Imprimir sen detalles" PrintWithoutDetailsLabelDefault=Etiqueta de liña por defecto ao imprimir sen detalles 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 54cb306dc6b..f41099a4e99 100644 --- a/htdocs/langs/gl_ES/categories.lang +++ b/htdocs/langs/gl_ES/categories.lang @@ -90,11 +90,14 @@ CategorieRecursivHelp=Se está activado, cando engade un produto nunha subcatego AddProductServiceIntoCategory=Engadir o seguinte produto/servizo AddCustomerIntoCategory=Asignar categoría ao cliente AddSupplierIntoCategory=Asignar categoría ao provedor +AssignCategoryTo=Asignar categoría a 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/companies.lang b/htdocs/langs/gl_ES/companies.lang index cf9b5772970..8061a2900be 100644 --- a/htdocs/langs/gl_ES/companies.lang +++ b/htdocs/langs/gl_ES/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Área de prospección IdThirdParty=ID terceiro IdCompany=Id empresa IdContact=Id contacto +ThirdPartyAddress=Enderezo de terceiros ThirdPartyContacts=Contactos terceiros ThirdPartyContact=Contacto terceiro/enderezo Company=Empresa @@ -51,19 +52,22 @@ CivilityCode=Código cortesía RegisteredOffice=Domicilio social Lastname=Apelidos Firstname=Nome +RefEmployee=Referencia do empregado +NationalRegistrationNumber=Número de rexistro nacional PostOrFunction=Posto de traballo UserTitle=Título 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Código provedor incorrecto CustomerCodeModel=Modelo de código cliente SupplierCodeModel=Modelo de código provedor Gencod=Código de barras +GencodBuyPrice=Código de barras do prezo ref ##### Professional ID ##### ProfId1Short=Id Prof 1 ProfId2Short=Id Prof 2 @@ -159,15 +164,15 @@ 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=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=Nº decreto de creación +ProfId4ShortCM=Certificado de depósito núm. +ProfId5ShortCM=Outros ProfId6ShortCM=- ProfId1CO=Id Prof 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Listaxe de terceiros ShowCompany=Amosar Terceiro ShowContact=Amosar Contacto ContactsAllShort=Todos (sen filtro) -ContactType=Tipo de contacto +ContactType=Rol de contacto ContactForOrders=Contacto de pedimentos ContactForOrdersOrShipments=Contacto de pedimentos ou envíos ContactForProposals=Contacto de orzamentos diff --git a/htdocs/langs/gl_ES/compta.lang b/htdocs/langs/gl_ES/compta.lang index 40cdd993ded..48f0be31938 100644 --- a/htdocs/langs/gl_ES/compta.lang +++ b/htdocs/langs/gl_ES/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Esta certo de querer clasificar esta tarxeta salarial como paga DeleteSocialContribution=Eliminar un pagamento de taxa social ou fiscal DeleteVAT=Eliminar a liquidación de IVE DeleteSalary=Eliminar unha tarxeta salarial +DeleteVariousPayment=Eliminar varios pagamentos ConfirmDeleteSocialContribution=Está certo de querer eliminar este pago de impostos sociais/fiscais? ConfirmDeleteVAT=Está certo de querer eliminar esta liquidacion de IVE? ConfirmDeleteSalary=Está certo de querer eliminar este salario? +ConfirmDeleteVariousPayment=Estás certo de querer eliminar estes pagamentos? ExportDataset_tax_1=taxas sociais e fiscais e pagamentos CalcModeVATDebt=Modo %sIVE sobre facturas emitidas%s. CalcModeVATEngagement=Modo %sIVE sobre facturas cobradas%s. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Volume compras facturadas ReportPurchaseTurnoverCollected=Volume de compras abonadas IncludeVarpaysInResults = Inclúe varios pagos en informes IncludeLoansInResults = Inclúe prestamos en informes -InvoiceLate30Days = Facturas atrasadas (>30 días) -InvoiceLate15Days = Facturas atrasadas (15 to 30 días) -InvoiceLateMinus15Days = Facturas atrasadas (< 15 días) +InvoiceLate30Days = Atraso (> 30 días) +InvoiceLate15Days = Atraso (15 a 30 días) +InvoiceLateMinus15Days = Atraso (< 15 días) InvoiceNotLate = A recoller (< 15 días) InvoiceNotLate15Days = A recoller (15 a 30 días) InvoiceNotLate30Days = A recoller 30 días diff --git a/htdocs/langs/gl_ES/errors.lang b/htdocs/langs/gl_ES/errors.lang index f018fce58a5..f3418ae9c7c 100644 --- a/htdocs/langs/gl_ES/errors.lang +++ b/htdocs/langs/gl_ES/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=O correo electrónico %s parece incorrecto (O dominio non ten u ErrorBadUrl=URL %s é incorrecta ErrorBadValueForParamNotAString=Valor incorrecto para o seu parámetro. Xeralmente aparece cando falta a tradución ErrorRefAlreadyExists=A referencia %s xa existe +ErrorTitleAlreadyExists=O título %s xa existe. ErrorLoginAlreadyExists=O login %s xa existe. ErrorGroupAlreadyExists=O grupo %s xa existe. ErrorEmailAlreadyExists=O correo electrónico %s xa existe @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Outro ficheiro co mesmo nome %s xa existe ErrorPartialFile=Ficheiro non recibido completamente polo servidor. ErrorNoTmpDir=Non existe o directorio temporal %s. ErrorUploadBlockedByAddon=Subida bloqueada por un plugin PHP/Apache. -ErrorFileSizeTooLarge=O tamaño do ficheiro é grande de mais. +ErrorFileSizeTooLarge=O tamaño do ficheiro é grande de mais ou non se proporcionou o ficheiro. ErrorFieldTooLong=Campo %s e longo de mais. ErrorSizeTooLongForIntType=Tamaño demasiado longo para o tipo int (máximo %s caracteres) ErrorSizeTooLongForVarcharType=Tamaño demasiado longo para o tipo de cadea (máximo %s caracteres) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=Atopáronse %s erros @@ -269,7 +271,7 @@ 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. @@ -277,11 +279,23 @@ 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 +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 +ErrorPaymentInBothCurrency=Erro, todas as cantidades deben introducirse na mesma columna +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 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 # 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). @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Valor non válido diff --git a/htdocs/langs/gl_ES/eventorganization.lang b/htdocs/langs/gl_ES/eventorganization.lang index 79e60fe00d8..76e3f4b916a 100644 --- a/htdocs/langs/gl_ES/eventorganization.lang +++ b/htdocs/langs/gl_ES/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Organización de eventos Settings=Configuracións EventOrganizationSetupPage = Páxina de configuración da Organización de Eventos EVENTORGANIZATION_TASK_LABEL = Etiqueta de tarefas para crear automaticamente cando o proxecto é validado -EVENTORGANIZATION_TASK_LABELTooltip = Cando valida un evento organizado, pódense crear automaticamente algunhas tarefas no proxecto

    Por exemplo
    Enviar Chamada a Conferencia
    Enviar Chamada a Stand
    Recibir Chamadas para Conferencias
    Recibir chamada a Stand
    Abrir subscricións a eventos para os participantes
    Enviar recordatorio do evento aos relatores
    Enviar recordatorio do evento ao anfitrión do stand
    Enviar recordatorio do evento aos asistentes +EVENTORGANIZATION_TASK_LABELTooltip = Cando valida un evento organizado, pódense crear automaticamente algunhas tarefas no proxecto

    Por exemplo
    Enviar Chamada para Conferencias
    Enviar Chamada para Stand
    validar suxerencias para Conferencias
    Validar aplicacións para Stand
    Abrir subscricións a eventos para os participantes
    Enviar lembranza do evento aos ponentes
    Enviar lembranza do evento aos anfitrións do Stand
    Enviar lembranza do evento aos asistentes +EVENTORGANIZATION_TASK_LABELTooltip2=Manteña o campo baleiro se non precisa crear tarefas automaticamente. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categoría para engadir a terceiros creada automaticamente cando alguén suxire unha conferencia EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categoría para engadir a terceiros creada automaticamente cando suxiren un stand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Modelo de correo electrónico para enviar despois de recibir unha suxestión dunha conferencia. @@ -59,6 +60,8 @@ 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 @@ -138,6 +141,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 @@ -165,3 +169,4 @@ EmailCompanyForInvoice=Correo electrónico da empresa (para factura, se é difer 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 NoPublicActionsAllowedForThisEvent=Non hai accións públicas abertas ao público para este evento +MaxNbOfAttendees=Número máximo de asistentes diff --git a/htdocs/langs/gl_ES/exports.lang b/htdocs/langs/gl_ES/exports.lang index 7dce5514656..a64d13d7010 100644 --- a/htdocs/langs/gl_ES/exports.lang +++ b/htdocs/langs/gl_ES/exports.lang @@ -53,8 +53,8 @@ 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 -DownloadEmptyExample=Descargue un ficheiro de padrón con información de contido do campo -StarAreMandatory=* son campos obrigatorios +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... ChooseFileToImport=Escolla o ficheiro de importación e faga clic na imaxe %s para seleccionalo como ficheiro orixe de importación... SourceFileFormat=Formato do ficheiro orixe @@ -135,3 +135,6 @@ NbInsert=Número de liñas engadidas: %s NbUpdate=Número de liñas actualizadas: %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: 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/hrm.lang b/htdocs/langs/gl_ES/hrm.lang index 69091545c9c..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 @@ -20,13 +20,14 @@ Employee=Empregado NewEmployee=Novo empregado ListOfEmployees=Listaxe de empregados HrmSetup=Setup do módulo RRHH -HRM_MAXRANK=Rango máximo para unha competencia +SkillsManagement=Xestión de habilidades +HRM_MAXRANK=Número máximo de niveis para clasificar unha habilidade HRM_DEFAULT_SKILL_DESCRIPTION=Descrición predeterminada dos rangos cando se crea a competencia deplacement=Quenda DateEval=Data de avalición JobCard=Tarxeta de traballo -Job=Tarefa -Jobs=Traballos +JobPosition=Tarefa +JobsPosition=Traballos NewSkill=Nova competencia SkillType=Tipo de competencia Skilldets=Listaxe de rangos para esta competencia @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Está certo de querer validar esta avaliación con ref EvaluationCard=Tarxeta de avalición RequiredRank=Rango preciso para este traballo EmployeeRank=Rango de empregados para esta competencia -Position=Posto -Positions=Posicións -PositionCard=Tarxeta de posición +EmployeePosition=Posto de empregado +EmployeePositions=Postos de empregados EmployeesInThisPosition=Empregados nesta posición group1ToCompare=Grupo de usuarios para analizar group2ToCompare=Segundo grupo de usuarios para comparar @@ -70,12 +70,23 @@ 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 HowManyUserWithThisMaxNote=Número de usuarios con este rango HighestRank=Máximo rango SkillComparison=Comparación de competencias +ActionsOnJob=Eventos neste traballo +VacantPosition=bolsa de traballo +VacantCheckboxHelper=Marcando esta opción amósanse os postos sen cubrir (bolsa de traballo) +SaveAddSkill = Competencia(s) engadidas +SaveLevelSkill = Gardouse o nivel de competencia +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 7289c2018af..7fd233ea2e3 100644 --- a/htdocs/langs/gl_ES/install.lang +++ b/htdocs/langs/gl_ES/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=A memoria de sesión máxima de PHP está configurada en %s. PHPMemoryTooLow=A memoria de sesión máxima de PHP está configurada en %s bytes. Isto é demasiado baixo. Cambie o seu php.ini para establecer o parámetro memory_limit en polo menos %s bytes. Recheck=Faga clic aquí para unha proba máis detallada ErrorPHPDoesNotSupportSessions=A súa instalación de PHP non admite sesións. Esta función é precisa para que Dolibarr poida traballar. Comprobe a súa configuración de PHP e os permisos do directorio de sesións. -ErrorPHPDoesNotSupportGD=A súa instalación de PHP non admite funcións gráficas GD. Non haberá gráficos dispoñibles. -ErrorPHPDoesNotSupportCurl=A súa instalación de PHP non admite Curl. -ErrorPHPDoesNotSupportCalendar=A súa instalación de PHP non admite extensións do calendario php. -ErrorPHPDoesNotSupportUTF8=A súa instalación de PHP non admite funcións UTF8. Dolibarr non pode funcionar correctamente. Resolva isto antes de instalar Dolibarr. -ErrorPHPDoesNotSupportIntl=​​= A súa instalación de PHP non admite funcións Intl. -ErrorPHPDoesNotSupportMbstring=A súa instalación de PHP non admite funcións mbstring. -ErrorPHPDoesNotSupportxDebug=A súa instalación de PHP non admite funcións de depuración extensivas. ErrorPHPDoesNotSupport=A súa instalación de PHP non admite funcións de %s. ErrorDirDoesNotExists=O directorio %s non existe. ErrorGoBackAndCorrectParameters=Voltar atrás e comprobar/corrixir os parámetros. @@ -30,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 122ee49ef20..a495186b18c 100644 --- a/htdocs/langs/gl_ES/interventions.lang +++ b/htdocs/langs/gl_ES/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Modelo de intervención ToCreateAPredefinedIntervention=Para crear unha intervención predefinida ou recorrente, cree unha intervención común e converta ConfirmReopenIntervention=Estás certo de que queres abrir de novo a intervención %s? 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. 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..7e12acc786f 100644 --- a/htdocs/langs/gl_ES/loan.lang +++ b/htdocs/langs/gl_ES/loan.lang @@ -16,7 +16,7 @@ LoanAccountancyInsuranceCode=Conta contable seguro LoanAccountancyInterestCode=Conta contable interese 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 @@ -24,7 +24,7 @@ FinancialCommitment=Compromiso financieiro InterestAmount=Interese CapitalRemain=Capital restante TermPaidAllreadyPaid = Este prazo xa está pago -CantUseScheduleWithLoanStartedToPaid = Non pode usar o planificador para un emprétito con pago iniciado +CantUseScheduleWithLoanStartedToPaid = Non se pode xerar un cronograma para un rmpréstito cun pago iniciado CantModifyInterestIfScheduleIsUsed = Non pode modificar os intereses se xa está planificado # Admin ConfigLoan=Configuración do módulo empréstitos diff --git a/htdocs/langs/gl_ES/mails.lang b/htdocs/langs/gl_ES/mails.lang index c07d760d06c..fe60a5ecd61 100644 --- a/htdocs/langs/gl_ES/mails.lang +++ b/htdocs/langs/gl_ES/mails.lang @@ -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 cef85a6d8b6..3c0a86274b9 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=, @@ -244,6 +250,7 @@ Designation=Descrición DescriptionOfLine=Descrición de liña DateOfLine=Data da liña DurationOfLine=Permanecia da liña +ParentLine=ID da liña principal Model=Padrón de documento DefaultModel=Padrón por defecto do documento Action=Acción @@ -517,6 +524,7 @@ or=ou Other=Outro Others=Outros OtherInformations=Outra información +Workflow=Fluxo de traballo Quantity=Cantidade Qty=Cant. ChangedBy=Modificado por @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Ficheiros e documentos axuntados JoinMainDoc=Engadir ao documento principal +JoinMainDocOrLastGenerated=Envíe o documento principal ou o último xerado se non se atopa DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +718,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 @@ -1164,3 +1174,16 @@ NotClosedYet=Aínda non pechado ClearSignature=Restablecer sinatura CanceledHidden=Cancelado oculto CanceledShown=Cancelado amosar +Terminate=Terminar +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 +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 diff --git a/htdocs/langs/gl_ES/members.lang b/htdocs/langs/gl_ES/members.lang index caa2db9249a..89cdbb00ba5 100644 --- a/htdocs/langs/gl_ES/members.lang +++ b/htdocs/langs/gl_ES/members.lang @@ -15,7 +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 -MembersCards=Tarxetas de visita para membros +MembersCards=Xeración de tarxetas para membros MembersList=Listaxe de membros MembersListToValid=Listaxe de membros borrador (a validar) MembersListValid=Listaxe de membros validados @@ -35,7 +35,8 @@ DateEndSubscription=Data de finalización da filiación EndSubscription=Finalización da filiación SubscriptionId=ID de achega WithoutSubscription=Sen achega -MemberId=ID membro +MemberId=Id. do membro +MemberRef=Ref. Membro NewMember=Novo membro MemberType=Tipo de membro MemberTypeId=ID tipo de membro @@ -159,11 +160,11 @@ HTPasswordExport=Xeración archivo htpassword NoThirdPartyAssociatedToMember=Non hai terceiro asociado con este membro MembersAndSubscriptions=Membros e achegas MoreActions=Acción complementaria ao rexistro -MoreActionsOnSubscription=Acción complementaria, suxerida por defecto ao rexistrar unha achega +MoreActionsOnSubscription=Acción complementaria suxerida por defecto ao rexistrar unha contribución, tamén realizada de forma automática no pagamento en liña dunha contribución MoreActionBankDirect=Crear un rexistro directo na conta bancaria MoreActionBankViaInvoice=Crear unha factura e un pagamento na conta bancaria MoreActionInvoiceOnly=Creación factura sen pagamento -LinkToGeneratedPages=Xeración de tarxetas de presentación +LinkToGeneratedPages=Xeración de tarxetas de visita ou follas de enderezos LinkToGeneratedPagesDesc=Esta pantalla permitelle crear padróns de tarxetas de presentación para os membros o para cada membro en particular. DocForAllMembersCards=Xeración de tarxetas para todos os membros DocForOneMemberCards=Xeración de tarxetas para un membro en particular @@ -218,3 +219,5 @@ XExternalUserCreated=%s usuarios externos creados ForceMemberNature=Natureza do membro (física ou xurídica) CreateDolibarrLoginDesc=A creación dun inicio de sesión de usuario para os membros permítelles conectarse á aplicación. Dependendo das autorizacións concedidas, poderán, por exemplo, consultar eles mesmos o seu ficheiro. 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 diff --git a/htdocs/langs/gl_ES/modulebuilder.lang b/htdocs/langs/gl_ES/modulebuilder.lang index e7aa6c9f01f..4fdb87efd4d 100644 --- a/htdocs/langs/gl_ES/modulebuilder.lang +++ b/htdocs/langs/gl_ES/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Esta ferramenta só debe ser utilizada por usuarios ou desenvolvedores experimentados. Ofrece utilidades para construír ou editar o seu propio módulo. A documentación para o desenvolvemento manual alternativo está aquí -EnterNameOfModuleDesc=Introduza o nome do módulo/aplicación a crear sen espazos. Use maiúsculas para separar palabras (por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Introduza o nome do obxecto a crear sen espazos. Use maiúsculas para separar palabras (por exemplo: MyObject, Student, Teacher ...). Xerarase o ficheiro de clase CRUD, pero tamén o ficheiro API, páxinas para listar/engadir/editar/eliminar obxectos e ficheiros SQL. +EnterNameOfModuleDesc=Introduza o nome do módulo/aplicación que quere crear sen espazos. Use maiúsculas para separar palabras (por exemplo: MeuMódulo, TendaComercioElectrónico, SincronizarMeuSistema...) +EnterNameOfObjectDesc=Introduza o nome do obxecto a crear sen espazos. Use maiúsculas para separar palabras (Por exemplo: O meu obxecto, Alumno, Profesor...). Xeraranse o ficheiro de clase CRUD, pero tamén o ficheiro API, páxinas para listar/engadir/editar/eliminar obxectos e ficheiros SQL. +EnterNameOfDictionaryDesc=Introduce o nome do dicionario que queres crear sen espazos. Use maiúsculas para separar palabras (Por exemplo: MeuDico...). Xerarase o ficheiro de clase, pero tamén o ficheiro SQL. ModuleBuilderDesc2=Ruta onde se xeran/editan os módulos (primeiro directorio para módulos externos definidos en %s): %s ModuleBuilderDesc3=Atopáronse módulos xerados/editables: %s ModuleBuilderDesc4=Detéctase un módulo como "editable" cando o ficheiro %s existe no raíz do directorio do módulo NewModule=Novo NewObjectInModulebuilder=Novo obxecto +NewDictionary=Novo dicionario ModuleKey=Chave de módulo ObjectKey=Chave do obxecto +DicKey=Chave do dicionario ModuleInitialized=Módulo inicializado FilesForObjectInitialized=Os ficheiros do novo obxecto '%s' inicializados FilesForObjectUpdated=Actualizáronse os ficheiros do obxecto '%s' (ficheiros .sql e ficheiro .class.php) @@ -52,7 +55,7 @@ LanguageFile=Ficheiro para o idioma ObjectProperties=Propiedades do obxecto ConfirmDeleteProperty=Está certo de que quere eliminar a propiedade %s ? Isto cambiará o código na clase PHP pero tamén eliminará a columna da definición de obxecto da táboa. NotNull=Non NULO -NotNullDesc=1= Establecer a base de datos como NOT NULL. -1= Permitir valores nulos e forzar o valor NULL se está baleiro ('' ou 0). +NotNullDesc=1=Establecer a base de datos como NON NULL, 0=Permitir valores nulos, -1=Permitir valores nulos forzando o valor a NULL se está baleiro ('' ou 0) SearchAll=Usado para "buscar todo" DatabaseIndex=Índice da base de datos FileAlreadyExists=O ficheiro %s xa existe @@ -94,7 +97,7 @@ LanguageDefDesc=Introduza neste ficheiro toda a clave e a tradución para cada f MenusDefDesc=Defina aquí os menús proporcionados polo seu módulo DictionariesDefDesc=Defina aquí os dicionarios proporcionados polo seu módulo PermissionsDefDesc=Defina aquí os novos permisos proporcionados polo seu módulo -MenusDefDescTooltip=Os menús proporcionados polo seu módulo/aplicación están definidos no array $this->menús no ficheiro descriptor do módulo. Pode editar este ficheiro manualmente ou usar o editor incrustado.

    Nota: Unha vez definido (e reactivado o módulo), os menús tamén son visibles no editor de menú dispoñible para os usuarios administradores en %s. +MenusDefDescTooltip=Os menús proporcionados polo seu módulo/aplicación defínense na matriz $this->menus no ficheiro descritor do módulo. Pode editar este ficheiro manualmente ou usar o editor incorporado.

    Nota: unha vez definidos (e reactivado o módulo), os menús tamén están visibles no editor de menús dispoñible para os usuarios administradores en %s. DictionariesDefDescTooltip=Os dicionarios proporcionados polo seu módulo/aplicación están definidos no array $this->dicionarios no ficheiro descriptor do módulo. Pode editar este ficheiro manualmente ou usar o editor incrustado.

    Nota: Unha vez definido (e reactivado o módulo), os dicionarios tamén son visibles na área de configuración para os usuarios administradores en %s. PermissionsDefDescTooltip=Os permisos proporcionados polo seu módulo/aplicación defínense no array $this->rights no ficheiro descriptor do módulo. Pode editar este ficheiro manualmente ou usar o editor incrustado.

    Nota: Unha vez definido (e reactivado o módulo), os permisos son visibles na configuración de permisos predeterminada %s. HooksDefDesc=Define na propiedade module_parts ['hooks'] , no descriptor do módulo, o contexto dos hooks que desexa xestionar (a listaxe de contextos pódese atopar mediante unha busca en ' initHooks ( 'no código principal).
    Edite o ficheiro de hooks para engadir o código das funcións (as funcións pódense atopar mediante unha busca en' executeHooks 'no código principal). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destruír a táboa se está baleira) TableDoesNotExists=A táboa %s non existe TableDropped=Eliminouse a táboa %s InitStructureFromExistingTable=Construír a cadea de array de estruturas dunha táboa existente -UseAboutPage=Desactivar a páxina sobre +UseAboutPage=Non xerar a páxina Sobre ... UseDocFolder=Desactivar o cartafol de documentación UseSpecificReadme=Usar un ReadMe específico ContentOfREADMECustomized=Nota: o contido do ficheiro README.md foi substituído polo valor específico definido na configuración de ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Usar unha URL de editor específico UseSpecificFamily = Usar unha familia específica UseSpecificAuthor = Usar un autor específico UseSpecificVersion = Usar unha versión inicial específica -IncludeRefGeneration=A referencia do obxecto debe xerarse automaticamente -IncludeRefGenerationHelp=Sinale esta opción se quere incluír código para xestionar a xeración automaticamente da referencia -IncludeDocGeneration=Quero xerar algúns documentos a partir do obxecto +IncludeRefGeneration=A referencia do obxecto debe xerarse automaticamente mediante regras de numeración personalizadas +IncludeRefGenerationHelp=Marque isto se quere incluír código para xestionar a xeración da referencia automaticamente mediante regras de numeración personalizadas +IncludeDocGeneration=Quero xerar algúns documentos a partir de modelos para o obxecto IncludeDocGenerationHelp=Se marca isto, xerarase algún código para engadir unha caixa "Xerar documento" no rexistro. ShowOnCombobox=Mostrar o valor en combobox KeyForTooltip=Chave para a información sobre ferramentas @@ -138,10 +141,16 @@ CSSViewClass=CSS para formulario de lectura CSSListClass=CSS para a listaxe NotEditable=Non editable ForeignKey=Chave estranxeira -TypeOfFieldsHelp=Tipo de campos:
    varchar (99), double (24,8), real, text, html, datetime, timestamp, integer, integer: ClassName:relativepath/to/classfile.class.php[:1[:filter]] ("1" significa que engadimos un botón + despois do combo para crear o rexistro, "filter" pode ser "status=1 AND fk_user=__USER_ID AND entity IN (__SHARED_ENTITIES__)" por exemplo) +TypeOfFieldsHelp=Tipo de campos:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' significa que engadimos un botón + despois do combo para crear o rexistro
    'filter' é unha condición sql, exemplo: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Conversor de ascii a HTML AsciiToPdfConverter=Conversor de ascii a PDF TableNotEmptyDropCanceled=A táboa non está baleira. Cancelouse a eliminación. ModuleBuilderNotAllowed=O creador de módulos está dispoñible pero non permitido ao seu usuario. ImportExportProfiles=Importar e exportar perfís -ValidateModBuilderDesc=Poña 1 se é preciso validar este campo con $ this-> validateField () ou 0 se é precisa a validación +ValidateModBuilderDesc=Estableza isto en 1 se quere que o método $this->validateField() do obxecto sexa chamado para validar o contido do campo durante a inserción ou a actualización. Establece 0 se non se precisa validación. +WarningDatabaseIsNotUpdated=Aviso: a base de datos non se actualiza automaticamente, debe eliminar as táboas e desactivar-habilitar o módulo para que as táboas se creen de novo +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 2c839edced3..6f813d54b3b 100644 --- a/htdocs/langs/gl_ES/mrp.lang +++ b/htdocs/langs/gl_ES/mrp.lang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=Para desmontar unha cantidade de %s ConfirmValidateMo=Está certo de que desexa validar este pedimento de fabricación? ConfirmProductionDesc=Ao facer clic en '%s', validará o consumo e/ou a produción para as cantidades establecidas. Isto tamén actualizará o stock e rexistrará os movementos de stock. ProductionForRef=Produción de %s +CancelProductionForRef=Cancelación da diminución do stock do produto %s +TooltipDeleteAndRevertStockMovement=Eliminar liña e reverter o movemento de stock AutoCloseMO=Pecha automaticamente o pedimento de fabricación se se alcanzan cantidades a consumir e producir NoStockChangeOnServices=Non hai cambio de stock nos servizos ProductQtyToConsumeByMO=Cantidade de produto aínda por consumir por PF aberto @@ -107,3 +109,6 @@ THMEstimatedHelp=Esta taxa permite definir un custo estimado do artigo BOM=Listaxe de materiais CollapseBOMHelp=Pode definir a visualización predeterminada dos detalles da nomenclatura na configuración do módulo MRP MOAndLines=Pedimentos e liñas de fabricación +MoChildGenerate=Xerar fillo Om +ParentMo=OM Pai +MOChild=OM Fillo 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 b315edb4203..f507393d4fc 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 @@ -68,6 +69,8 @@ CreateOrder=Crear pedimento RefuseOrder=Rexeitar o pedimento ApproveOrder=Aprobar pedimento Approve2Order=Aprobar pedimento (segundo nivel) +UserApproval=Usuario para aprobación +UserApproval2=Usuario para aprobación (segundo nivel) ValidateOrder=Validar o pedimento UnvalidateOrder=Desvalidar o pedimento DeleteOrder=Eliminar o pedimento @@ -102,6 +105,8 @@ ConfirmCancelOrder=¿Está certo de querer anular este pedimento? ConfirmMakeOrder=¿Está certo de querer confirmar este pedimento en fecha de %s ? GenerateBill=Facturar ClassifyShipped=Clasificar enviado +PassedInShippedStatus=clasificado entregado +YouCantShipThis=Non podo clasificar isto. Comprobe os permisos dos usuarios DraftOrders=Pedimentos de cliente borrador DraftSuppliersOrders=Pedimentos a provedor borrador OnProcessOrders=Pedimentos en proceso diff --git a/htdocs/langs/gl_ES/other.lang b/htdocs/langs/gl_ES/other.lang index 5d73052ba48..64bba2a89bd 100644 --- a/htdocs/langs/gl_ES/other.lang +++ b/htdocs/langs/gl_ES/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... ou constrúa seu perfil
    (modo de selección manu DemoFundation=Xestión de membros dunha asociación DemoFundation2=Xestión de membros e contas bancarias dunha asociación DemoCompanyServiceOnly=Empresa ou traballador por conta propia vendendo só servizos -DemoCompanyShopWithCashDesk=Xestión dunha tenda con caixa +DemoCompanyShopWithCashDesk=Xestionar unha tenda cunha conta de caixa DemoCompanyProductAndStocks=Empresa vendendo produtos con punto de venda DemoCompanyManufacturing=Empresa fabricadora de produtos DemoCompanyAll=Empresa con actividades múltiples (todos os módulos principais) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Seleccione un obxecto para ver as súas estatíst 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 diff --git a/htdocs/langs/gl_ES/partnership.lang b/htdocs/langs/gl_ES/partnership.lang index 4708c316ff8..b02e7ae8c86 100644 --- a/htdocs/langs/gl_ES/partnership.lang +++ b/htdocs/langs/gl_ES/partnership.lang @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Ligazóns de atraso para comprobar PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nº de días antes do estado cancelado dun asociado cando caducou a subscrición ReferingWebsiteCheck=Comprobación da referencia do sitio web ReferingWebsiteCheckDesc=Pode habilitar unha función para comprobar que os seus socios engadiron unha ligazón de retroceso aos dominios do seu sitio web no seu propio sitio web. +PublicFormRegistrationPartnerDesc=Dolibarr pode fornecer un URL/sitio web público para que os visitantes externos soliciten formar parte do programa de colaboración. # # Object @@ -59,6 +60,12 @@ BacklinkNotFoundOnPartnerWebsite=Non se atopou a ligazón de atraso no sitio web ConfirmClosePartnershipAsk=Está certo de querer cancelar esta asociación? PartnershipType=Tipo de asociación PartnershipRefApproved=A asociación %s aprobouse +KeywordToCheckInWebsite=Se quere comprobar que unha determinada palabra clave está presente no sitio web de cada asociado, defina esta palabra clave aquí +PartnershipDraft=Non validada +PartnershipAccepted=Aceptado +PartnershipRefused=Rexeitado +PartnershipCanceled=Anulado +PartnershipManagedFor=Os socios son # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Número de erros para as últimas URL revisadas LastCheckBacklink=Data da última URL revisada ReasonDeclineOrCancel=Razón para declinar -# -# Status -# -PartnershipDraft=Non validada -PartnershipAccepted=Aceptado -PartnershipRefused=Rexeitado -PartnershipCanceled=Anulado -PartnershipManagedFor=Os socios son +NewPartnershipRequest=Nova solicitude de colaboración +NewPartnershipRequestDesc=Este formulario permíte solicitar formar parte dun dos nosos programas de colaboración. Se precisa axuda para cubrir este formulario, póñase en contacto por correo electrónico %s . + 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/products.lang b/htdocs/langs/gl_ES/products.lang index a47ce9f04a7..7dd2ca5f92f 100644 --- a/htdocs/langs/gl_ES/products.lang +++ b/htdocs/langs/gl_ES/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=¿Está certo de querer eliminar esta liña de produto ProductSpecial=Especial QtyMin=Cantidad mínima de compra PriceQtyMin=Prezo para esta cantidade mínima -PriceQtyMinCurrency=Prezo (moeda) para esta cantidade mínima (sen desconto) +PriceQtyMinCurrency=Prezo (moeda) para esta cant.. +WithoutDiscount=Sen desconto VATRateForSupplierProduct=Tasa IVE (para este produto/provedor) DiscountQtyMin=Desconto para esta cantidade NoPriceDefinedForThisSupplier=Ningún prezo/cant. definido para este provedor/produto @@ -261,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 @@ -346,7 +347,7 @@ UseProductFournDesc=Engade unha función para definir a descrición do produto d ProductSupplierDescription=Descrición do produto do provedor UseProductSupplierPackaging=Utilice o envase nos prezos do provedor (recalcule as cantidades segundo o prezo do empaquetado do provedor ao engadir/actualizar a liña nos documentos do provedor) PackagingForThisProduct=Empaquetado -PackagingForThisProductDesc=No pedimento do provedor, solicitará automaticamente esta cantidade (ou un múltiplo desta cantidade). Non pode ser inferior á cantidade mínima de compra +PackagingForThisProductDesc=Mercará automaticamente un múltiplo desta cantidade. QtyRecalculatedWithPackaging=A cantidade da liña recalculouse segundo o empaquetado do provedor #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Marque isto se quere unha mensaxe ao usuario ao crear/validar un DefaultBOM=BOM por defecto DefaultBOMDesc=A listaxe de materiais por defecto recomendada para fabricar este produto-.Este campo só pode configurarse se a natureza do produto é "%s" Rank=Rango +MergeOriginProduct=Produto duplicado (produto que quere eliminar) +MergeProducts=Combina produtos +ConfirmMergeProducts=Está certo de querer combinar o produto escollido co actual? Todos os obxectos ligados (facturas, pedimentos,...) moveranse ao produto actual, despois de que o produto escollido sexa eliminado. +ProductsMergeSuccess=Os produtos fusionáronse +ErrorsProductsMerge=Erros na combinación de produtos SwitchOnSaleStatus=Activa o estado de venda SwitchOnPurchaseStatus=Activa o estado de compra StockMouvementExtraFields= Campos extra (movemento de stock) +InventoryExtraFields= Campos adicionais (inventario) +ScanOrTypeOrCopyPasteYourBarCodes=Escanee ou escriba ou copia/pega os seus códigos de barras +PuttingPricesUpToDate=Actualiza os prezos cos prezos actuais coñecidos +PMPExpected=PMP agardado +ExpectedValuation=Valor agardado +PMPReal=PMP real +RealValuation=Valor real +ConfirmEditExtrafield = Seleccione o campo extra que quere modificar +ConfirmEditExtrafieldQuestion = Está certo de querer modificar este campo extra? +ModifyValueExtrafields = Modificar o valor dun campo extra diff --git a/htdocs/langs/gl_ES/projects.lang b/htdocs/langs/gl_ES/projects.lang index 367ab742156..bd007acdfd2 100644 --- a/htdocs/langs/gl_ES/projects.lang +++ b/htdocs/langs/gl_ES/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Etiqueta proxecto ProjectsArea=Área proxectos ProjectStatus=Estado do proxecto SharedProject=Proxecto compartido -PrivateProject=Contactos proxecto +PrivateProject=Contactos asignados ProjectsImContactFor=Proxectos dos que son contacto explícito AllAllowedProjects=Todos os proxectos que podo ler (meus + públicos) AllProjects=Todos os proxectos @@ -190,6 +190,7 @@ PlannedWorkload=Carga de traballo planificada PlannedWorkloadShort=Carga de traballo ProjectReferers=Items relacionados ProjectMustBeValidatedFirst=O proxecto previamente ten que validarse +MustBeValidatedToBeSigned=%s debe validarse primeiro para establecerse como Asinado. FirstAddRessourceToAllocateTime=Asignar un usuario a unha tarefa para asignar tempo InputPerDay=Entrada por día InputPerWeek=Entrada por semana @@ -287,3 +288,9 @@ 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 ProjectsHavingThisContact=Proxectos tendo este contacto StartDateCannotBeAfterEndDate=A data de finalización non pode ser anterior á data de inicio +ErrorPROJECTLEADERRoleMissingRestoreIt=Falta o rol de "LIDER DE PROXECTO" ou desactivouse. Restaúreo no dicionario de tipos de contacto +LeadPublicFormDesc=Pode activar aquí unha páxina pública para que os seus clientes potenciales poidan facer un primeiro contacto con vostede desde un formulario público en liña +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 diff --git a/htdocs/langs/gl_ES/propal.lang b/htdocs/langs/gl_ES/propal.lang index 862a77c165f..2004d59f20a 100644 --- a/htdocs/langs/gl_ES/propal.lang +++ b/htdocs/langs/gl_ES/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Sen orzamentos borrador 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 ConfirmClonePropal=¿Está certo de querer clonar o orzamento %s? ConfirmReOpenProp=¿Está certo de abrir de novo o orzamento %s? @@ -85,15 +86,28 @@ ProposalCustomerSignature=Aceptado: sinatura dixital (selo da empresa, data e si 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 +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 IdProduct=ID Produto -PrParentLine=Liña principal do orzamento LineBuyPriceHT=Importe do prezo de compra neto sen impostos para a liña SignPropal=Aceptar orzamento 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=SEstá certo de querer rexeitar este orzamento a cliente? +ConfirmRefusePropal=Está certo de querer rexeitar este orzamento a cliente? diff --git a/htdocs/langs/gl_ES/receiptprinter.lang b/htdocs/langs/gl_ES/receiptprinter.lang index 15589e95e61..dea972fe50d 100644 --- a/htdocs/langs/gl_ES/receiptprinter.lang +++ b/htdocs/langs/gl_ES/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Proba enviada á impresora %s ReceiptPrinter=Impresoras de recibos ReceiptPrinterDesc=Configuración de impresoras de recibos ReceiptPrinterTemplateDesc=Configuración de Modelos -ReceiptPrinterTypeDesc=Descrición do tipo de impresora de recibos +ReceiptPrinterTypeDesc=Exemplo de posibles valores para o campo "Parámetros" segundo o tipo de controlador ReceiptPrinterProfileDesc=Descrición do perfil da impresora de recibos ListPrinters=Listaxe de impresoras SetupReceiptTemplate=Configuración do modelo @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Tamaño e ancho predeterminados DOL_UNDERLINE=Activar subliñado DOL_UNDERLINE_DISABLED=Desactivar o subliñado DOL_BEEP=Pitido +DOL_BEEP_ALTERNATIVE=Son de pitido (modo alternativo) +DOL_PRINT_CURR_DATE=Imprime a data/hora actual DOL_PRINT_TEXT=Imprimir texto DateInvoiceWithTime=Data e hora da factura YearInvoice=Ano de factura diff --git a/htdocs/langs/gl_ES/recruitment.lang b/htdocs/langs/gl_ES/recruitment.lang index 3d078bf5aab..80129b78512 100644 --- a/htdocs/langs/gl_ES/recruitment.lang +++ b/htdocs/langs/gl_ES/recruitment.lang @@ -74,3 +74,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... +NoPositionOpen=Non hai postos laborais libres polo momento 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 58cde6fd9e7..d266ef22e0c 100644 --- a/htdocs/langs/gl_ES/ticket.lang +++ b/htdocs/langs/gl_ES/ticket.lang @@ -54,7 +54,7 @@ MenuListNonClosed=Tickets abertos TypeContact_ticket_internal_CONTRIBUTOR=Participante TypeContact_ticket_internal_SUPPORTTEC=Usuario asignado -TypeContact_ticket_external_SUPPORTCLI=Contacto seguemento cliente/incidente +TypeContact_ticket_external_SUPPORTCLI=Contacto seguimento cliente/incidente TypeContact_ticket_external_CONTRIBUTOR=Contribuidor externo OriginEmail=Correo electrónico do redactor @@ -90,20 +90,22 @@ 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=E-mail de notificación de -TicketEmailNotificationFromHelp=Utilizado na resposta da mensaxe do ticket por exemplo -TicketEmailNotificationTo=Notificacións e-mail a -TicketEmailNotificationToHelp=Envíe notificacións por e-mail a este enderezo. +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=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 TicketNewEmailBodyHelp=O texto especificado aquí será insertado no correo electrónico de confirmación de creación dun novo ticket dende a interfaz pública. A información sobre a consulta do ticket agregase automáticamente. TicketParamPublicInterface=Configuración da interfaz pública TicketsEmailMustExist=Requirir un enderezo de e-mail existente para crear un ticket TicketsEmailMustExistHelp=Na interfaz pública, o enderezo de correo electrónico debe ser cuberto na base de datos para crear un novo ticket. +TicketCreateThirdPartyWithContactIfNotExist=Preguntar nome e nome da empresa para correos electrónicos descoñecidos. +TicketCreateThirdPartyWithContactIfNotExistHelp=Comprobar se existe un terceiro ou un contacto para o correo electrónico introducido. Se non, pídalle un nome e un nome de empresa para crear un terceiro con contacto. PublicInterface=Interfaz pública. TicketUrlPublicInterfaceLabelAdmin=URL alternativa de interfaz pública TicketUrlPublicInterfaceHelpAdmin=É posible definir un alias para o servidor web e así poñer a disposición a interface pública con outro URL (o servidor debe actuar como proxy neste novo URL) TicketPublicInterfaceTextHomeLabelAdmin=Texto de benvida da interfaz pública -TicketPublicInterfaceTextHome=Pode crear un ticket de asistencia ou ver algún existente desde o identificados do seu ticket de seguimento. +TicketPublicInterfaceTextHome=Pode crear un ticket de asistencia ou ver algún existente desde o identificador do seu ticket de seguimento. TicketPublicInterfaceTextHomeHelpAdmin=O texto aquí definido aparecerá na páxina de inicio da interface pública. TicketPublicInterfaceTopicLabelAdmin=Título da interfaz TicketPublicInterfaceTopicHelp=Este texto aparecerá como o título da interfaz pública. @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Envíe correo(s) electrónico(s) cando se en TicketsPublicNotificationNewMessageHelp=Enviar correo electrónico cando se engada unha nova mensaxe desde a interface pública (ao usuario asignado ou ao correo electrónico de notificacións a (actualizar) e/ou ao correo electrónico de notificacións a) TicketPublicNotificationNewMessageDefaultEmail=Correo electrónico de notificacións a (actualizar) TicketPublicNotificationNewMessageDefaultEmailHelp=Envía un correo electrónico a este enderezo para cada nova mensaxe de notificación se o ticket non ten un usuario asignado ou se o usuario non ten ningún correo electrónico coñecido. +TicketsAutoReadTicket=Marcar automaticamente o ticket como lido (cando se crea desde o backoffice) +TicketsAutoReadTicketHelp=Marca automaticamente o ticket como lido cando se crea desde o backoffice. Cando se crea o ticket desde a interface pública, o ticket permanece co estado "Non lido". +TicketsDelayBeforeFirstAnswer=Un novo ticket debería recibir unha primeira resposta antes (horas): +TicketsDelayBeforeFirstAnswerHelp=Se un novo ticket non recibiu resposta despois deste período de tempo (en horas), aparecerá unha icona de aviso importante na vista de lista. +TicketsDelayBetweenAnswers=Un ticket non resolto non debería estar inactivo durante (horas): +TicketsDelayBetweenAnswersHelp=Se un ticket sen resolver que xa recibiu unha resposta non tivo máis interacción despois deste período de tempo (en horas), aparecerá unha icona de aviso na vista de lista. +TicketsAutoNotifyClose=Notificar automaticamente a terceiros ao pechar un ticket +TicketsAutoNotifyCloseHelp=Ao pechar un ticket, proporáselle que envíe unha mensaxe a un dos contactos de terceiros. No peche masivo, enviarase unha mensaxe a un contacto do terceiro ligado ao ticket. +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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Ordear por data ascendente OrderByDateDesc=Ordear por data descendente ShowAsConversation=Amosar a listaxe de conversa MessageListViewType=Amosar a listaxe de taboas +ConfirmMassTicketClosingSendEmail=Notificar automaticamente a terceiros ao pechar un ticket +ConfirmMassTicketClosingSendEmailQuestion=Está certo de querer notificar aos terceiros cando pecha este ticket? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=O destinatario está baleiro. Non TicketGoIntoContactTab=Vaia á lapela "Contactos" para seleccionalos TicketMessageMailIntro=Introdución TicketMessageMailIntroHelp=Este texto é engadido só ao principio do email e non será gardado. -TicketMessageMailIntroLabelAdmin=Introdución á mensaxe cando enviase un e-mail -TicketMessageMailIntroText=Ola,
    Enviouse unha nova resposta a un ticket. Aquí está a mensaxe:
    -TicketMessageMailIntroHelpAdmin=Este texto será insertado antes do texto daa resposta a un ticket. +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=

    Cordialmente,

    --

    +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. TicketMessageHelp=Só este texto será gardado na listaxe de mensaxes na ficha do ticket @@ -238,9 +254,16 @@ TicketChangeStatus=Cambiar estado TicketConfirmChangeStatus=¿Confirma o cambio de estado: %s? TicketLogStatusChanged=Estado cambiado: %s a %s TicketNotNotifyTiersAtCreate=Non notificar á compañía ao crear +NotifyThirdpartyOnTicketClosing=Contactos para notificar cando se pecha o ticket +TicketNotifyAllTiersAtClose=Todos os contactos relacionados +TicketNotNotifyTiersAtClose=Non hai ningún contacto relacionado Unread=Non lido TicketNotCreatedFromPublicInterface=Non dispoñible. O ticket non se creou desde a interface pública. ErrorTicketRefRequired=O nome da referencia do ticket é obrigatorio +TicketsDelayForFirstResponseTooLong=Pasou tempo de mais desde a apertura do ticket sen resposta. +TicketsDelayFromLastResponseTooLong=Pasou tempo de mais desde a última resposta neste ticket. +TicketNoContractFoundToLink=Non se atopou ningún contrato ligado automaticamente a este ticket. Ligue un contrato manualmente. +TicketManyContractsLinked=Moitos contratos ligáronse automaticamente a este ticket. Asegúrese de verificar cal se debe escoller. # # Logs @@ -257,7 +280,7 @@ TicketLogReopen=Ticket %s aberto de novo # TicketSystem=Sistema de tickets ShowListTicketWithTrackId=Amosar listado de tickets con track ID -ShowTicketWithTrackId=Amosar ticket desde id de seguemento +ShowTicketWithTrackId=Amosar ticket desde id de seguimento TicketPublicDesc=Pode crear un ticket de soporte ou comprobar un ID existente. YourTicketSuccessfullySaved=Ticket gardado con éxito! MesgInfosPublicTicketCreatedWithTrackId=Foi creado un novo ticket con ID %s. @@ -267,16 +290,17 @@ TicketNewEmailSubjectCustomer=Novo ticket de soporte TicketNewEmailBody=Este é un correo electrónico automático para confirmar que foi rexistrado un novo ticket. TicketNewEmailBodyCustomer=Este es un e-mail automático para confirmar que creouse un novo ticket na súa conta. TicketNewEmailBodyInfosTicket=Información para monitorear o ticket -TicketNewEmailBodyInfosTrackId=Número de seguemento do ticket: %s -TicketNewEmailBodyInfosTrackUrl=Pode ver o progreso do ticket facendo click sobre a seguinte ligazón. +TicketNewEmailBodyInfosTrackId=Número de seguimento do ticket: %s +TicketNewEmailBodyInfosTrackUrl=Pode ver o progreso do ticket premendo na seguinte ligazón TicketNewEmailBodyInfosTrackUrlCustomer=Pode ver o progreso do ticket na interfaz específica facendo clic na seguinte ligazón +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. -TicketPublicMsgViewLogIn=Ingrese o ID de seguemento do ticket -TicketTrackId=ID público de seguemento -OneOfTicketTrackId=Un dos seus ID de seguemento -ErrorTicketNotFound=Non foi atopado o ticket co id de seguemento %s! +TicketPublicMsgViewLogIn=Ingrese o ID de seguimento do ticket +TicketTrackId=ID público de seguimento +OneOfTicketTrackId=Un dos seus ID de seguimento +ErrorTicketNotFound=Non foi atopado o ticket co id de seguimento %s! Subject=Asunto ViewTicket=Ver ticket ViewMyTicketList=Ver a miña listaxe de tickets @@ -285,12 +309,16 @@ TicketNewEmailSubjectAdmin=Novo ticket creado. TicketNewEmailBodyAdmin=

    O ticket foi creado co ID # %s, ver información:

    SeeThisTicketIntomanagementInterface=Ver Ticket na interfaz de administración TicketPublicInterfaceForbidden=A interfaz pública para os tickets non estaba habilitada. -ErrorEmailOrTrackingInvalid=ID de seguemento ou enderezo de correo electrónico incorrectos +ErrorEmailOrTrackingInvalid=ID de seguimento ou enderezo de correo electrónico incorrectos OldUser=Usuario antigo NewUser=Novo usuario NumberOfTicketsByMonth=Número de tickets por mes NbOfTickets=Número de tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket pechado +TicketCloseEmailBodyCustomer=Esta é unha mensaxe automática para notificalo que o ticket %s acaba de pecharse. +TicketCloseEmailSubjectAdmin=Entrada pechada - Ref %s (ID de entrada pública %s) +TicketCloseEmailBodyAdmin=Acaba de pecharse un ticket co ID #%s, consulte a información: TicketNotificationEmailSubject=Ticket %s actualizado TicketNotificationEmailBody=Esta é unha mensaxe automática para notificarlle queo ticket %s acaba de ser actualizado TicketNotificationRecipient=Recipiente de notificación diff --git a/htdocs/langs/gl_ES/users.lang b/htdocs/langs/gl_ES/users.lang index b766247c4ed..209e1e88177 100644 --- a/htdocs/langs/gl_ES/users.lang +++ b/htdocs/langs/gl_ES/users.lang @@ -114,7 +114,7 @@ UserLogoff=Usuario desconectado UserLogged=Usuario conectado DateOfEmployment=Data de contratación empregado DateEmployment=Contratación empregado -DateEmploymentstart=Data de comezo da contratación do empregado +DateEmploymentStart=Data de comezo da contratación do empregado DateEmploymentEnd=Data de baixa do empregado RangeOfLoginValidity=Intervalo de datas de validez no acceso CantDisableYourself=Pode desactivar o seu propio rexistro de usuario @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Por defecto, o responsable da validación é o su UserPersonalEmail=Email persoal UserPersonalMobile=Teléfono móbil persoal WarningNotLangOfInterface=Aviso, este é o idioma principal que fala o usuario, non o idioma da interface que escolleu ver. Para cambiar o idioma da interface visible por este usuario, vaia a lapela %s +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 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 106dbe1da91..0a1b1d82b55 100644 --- a/htdocs/langs/gl_ES/withdrawals.lang +++ b/htdocs/langs/gl_ES/withdrawals.lang @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Factura de provedor agardando pagamento mediante InvoiceWaitingWithdraw=Facturas agardando domiciliación 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. ResponsibleUser=Usuario responsable das domiciliacións @@ -48,7 +49,7 @@ ThirdPartyBankCode=Código banco do terceiro NoInvoiceCouldBeWithdrawed=Non foi realizada a domiciliación de ningunha factura correctamente. Comprobe que as facturas son de empresas con IBAN válido e que IBAN ten unha RMU (Referencia de mandato único) co modo %s1. WithdrawalCantBeCreditedTwice=Este recibo de retirada xa está marcado como abonado; isto non pode facerse dúas veces, xa que isto podería crear pagamentos duplicados e entradas bancarias. ClassCredited=Clasificar como "Abonada" -ClassDebited=Clasificar cargos adebedados +ClassDebited=Clasificar cargos ClassCreditedConfirm=¿Está certo de querer clasificar esta domiciliación como abonada na súa conta bancaria? TransData=Data envío TransMetod=Método envío @@ -67,7 +68,7 @@ InvoiceRefused=Factura rexeitada (Cargar os gastos ao cliente) StatusDebitCredit=Estado de débito/crédito StatusWaiting=Agardando StatusTrans=Enviada -StatusDebited=Adebedado +StatusDebited=Cargado StatusCredited=Abonada StatusPaid=Paga StatusRefused=Rexeitada @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Data de execución CreateForSepa=Crear ficheiro de domiciliación bancaria ICS=Identificador de acredor - ICS +IDS=Identificador de deudor END_TO_END=Etiqueta XML SEPA "EndToEndId" - ID único asignada por transacción USTRD=Etiqueta SEPA XML "Unstructured" ADDDAYS=Engadir días á data de execución @@ -154,3 +156,4 @@ ErrorICSmissing=Falta o ICS na conta bancaria %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=A cantidade total da orde de domiciliación é distinta da suma das liñas WarningSomeDirectDebitOrdersAlreadyExists=Aviso: xa hai algúns pedimentos de domiciliación bancaria pendentes (%s) solicitados por un importe de %s WarningSomeCreditTransferAlreadyExists=Aviso: xa hai algunha transferencia pendente (%s) solicitada por un importe de %s +UsedFor=Usado para %s diff --git a/htdocs/langs/gl_ES/workflow.lang b/htdocs/langs/gl_ES/workflow.lang index 2a9e1f39176..d87753aed6b 100644 --- a/htdocs/langs/gl_ES/workflow.lang +++ b/htdocs/langs/gl_ES/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear automáticamente un pedimento de clie descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automáticamente una factura a cliente despois da sinatura dun orzamento (a nova factura terá o mesmo importe que o orzamento) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear unha factura a cliente automáticamente despois de validar un contrato descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automáticamente unha factura a cliente despois de pechar o pedimento de cliente ( nova factura terá o mesmo importe que o pedimento) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Na creación do ticket, crea automaticamente unha intervención. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar orzamento orixe como facturado cando o pedimento do cliente sexa marcado como facturado (e se o importe do pedimento é igual á suma dos importes dos orzamentos ligados) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar o orzamento orixe como facturados cando a factura ao cliente sexa validada (e se o importe da factura é igual á suma dos importes dos orzamentos ligados) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar pedimento de client descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar pedimento de cliente orixe como facturado cando a factura ao cliente sexa marcada como pagada (e se o importe da factura é igual á suma dos importes dos pedimentos ligados) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificar automáticamente o pedimento orixe como enviado cando o envío sexa validado (e se a cantidade enviada por todos os envíos é a mesma que o pedimento a actualizar) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Clasifique a orde de venda de orixe ligada como enviada cando se pecha un envío (e se a cantidade enviada por todos os envíos é a mesma que na orde a actualizar) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasificar o orzamento ligado de provedor orixe como facturado cando a factura de provedor sexa validada (e se o importe da factura é igual á suma do importe dos orzamentos ligados) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasificar o pedimento orixe a provedor ligado como facturado cando a factura de provedor sexa validada (e se o importe da factura é igual á suma do importe dos pedimentos ligados) +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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Pecha todas as intervencións ligadas ao ticket cando o ticket está pechado 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 +AutomaticClosing=Peche automático +AutomaticLinking=Ligazón automática 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/companies.lang b/htdocs/langs/he_IL/companies.lang index f39e5b1f0a1..b6d8bf20d3f 100644 --- a/htdocs/langs/he_IL/companies.lang +++ b/htdocs/langs/he_IL/companies.lang @@ -19,6 +19,7 @@ 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=חברה @@ -51,6 +52,8 @@ CivilityCode=Civility code RegisteredOffice=Registered office Lastname=Last name Firstname=שם פרטי +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Title NatureOfThirdParty=Nature of Third party @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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/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 1664b5c893a..5ea2c3b4248 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -12,15 +12,15 @@ 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 +ThisService=Ova usluga +ThisProduct=Ovaj proizvod +DefaultForService=Predefinirano za uslugu +DefaultForProduct=Predefinirano za proizvod +ProductForThisThirdparty=Proizvod za ovu treću stranu +ServiceForThisThirdparty=Usluga za ovu treću stranu +CantSuggest=Ne mogu predložiti AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=Configuration of the module accounting (double entry) +ConfigAccountingExpert=Konfiguracija modula računovodstva (dvostruki unos) Journalization=Journalization Journals=Journals JournalFinancial=Financial journals @@ -30,7 +30,7 @@ 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 +InvoiceLabel=Oznaka računa 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=Ostali podaci @@ -40,16 +40,17 @@ 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. +DetailByAccount=Prikaži detalje po računu +AccountWithNonZeroValues=Računi s vrijednostima koje nisu nula +ListOfAccounts=Popis računa +CountriesInEEC=Zemlje u EEC +CountriesNotInEEC=Zomlje koje nisu u EEC +CountriesInEECExceptMe=Zemlje u EEC-u osim %s +CountriesExceptMe=Sve zemlje osim %s +AccountantFiles=Izvoz izvornih dokumenata +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 @@ -59,27 +60,27 @@ MainAccountForUsersNotDefined=Main accounting account for users not defined in s 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 +AccountancyArea=Računovodstveno područje 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. @@ -88,45 +89,45 @@ AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and genera 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 +Selectchartofaccounts=Odaberite aktivni kontni plan +ChangeAndLoad=Promijenite i učitajte Addanaccount=Dodaj obračunski račun AccountAccounting=Obračunski 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 +SubledgerAccount=Podknjižni račun +SubledgerAccountLabel=Oznaka računa podknjige +ShowAccountingAccount=Prikaži računovodstveni račun +ShowAccountingJournal=Prikaži računovodstveni dnevnik +ShowAccountingAccountInLedger=Prikaži računovodstveni račun u knjizi ShowAccountingAccountInJournals=Show accounting account in journals AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts +MenuDefaultAccounts=Zadani računi MenuBankAccounts=Bankovni računi -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -MenuClosureAccounts=Closure accounts -MenuAccountancyClosure=Closure +MenuVatAccounts=PDV računi +MenuTaxAccounts=Porezni računi +MenuExpenseReportAccounts=Računi izvješća o troškovima +MenuLoanAccounts=Računi zajmova +MenuProductsAccounts=Računi proizvoda +MenuClosureAccounts=Zatvaranje računa +MenuAccountancyClosure=Zatvaranje MenuAccountancyValidationMovements=Validate movements -ProductsBinding=Products accounts -TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +ProductsBinding=Računi proizvoda +TransferInAccounting=Prijenos u računovodstvu +RegistrationInAccounting=Evidentiranje u računovodstvu 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 -Bookkeeping=Ledger -BookkeepingSubAccount=Subledger +CreateMvts=Kreirajte novu transakciju +UpdateMvts=Izmjena transakcije +ValidTransaction=Potvrdite transakciju +WriteBookKeeping=Record transactions in accounting +Bookkeeping=Knjiga +BookkeepingSubAccount=Podknjiga AccountBalance=Stanje računa ObjectsRef=Source object ref CAHTF=Total purchase vendor before tax -TotalExpenseReport=Total expense report +TotalExpenseReport=Izvješće o ukupnim troškovima InvoiceLines=Lines of invoices to bind InvoiceLinesDone=Bound lines of invoices ExpenseReportLines=Lines of expense reports to bind @@ -136,12 +137,12 @@ TotalForAccount=Total accounting account Ventilate=Bind -LineId=Id line +LineId=Id linija Processing=Processing -EndProcessing=Process terminated. +EndProcessing=Proces prekinut. SelectedLines=Selected lines Lineofinvoice=Line of invoice -LineOfExpenseReport=Line of expense report +LineOfExpenseReport=Linija izvještaja o troškovima NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account @@ -149,19 +150,19 @@ XLineSuccessfullyBinded=%s products/services successfully bound to an accounting 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_LIST_SORT_VENTILATION_TODO=Započnite sortiranje stranice "Obvezuje se za obavljanje" prema najnovijim elementima +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Započnite sortiranje stranice "Uvezivanje izvršeno" prema najnovijim elementima 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 +BANK_DISABLE_DIRECT_INPUT=Onemogućite izravno bilježenje transakcije na bankovnom računu 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 @@ -182,6 +183,9 @@ 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_ACCOUNT_SUPPLIER_DEPOSIT=Accounting account by default to register supplier deposit +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) @@ -202,7 +206,7 @@ Docdate=Date Docref=Reference LabelAccount=Oznaka računa LabelOperation=Label operation -Sens=Direction +Sens=Smjer 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 @@ -214,30 +218,30 @@ 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 +ByAccounts=Po računima +ByPredefinedAccountGroups=Po unaprijed definiranim grupama +ByPersonalizedAccountGroups=Po personaliziranim grupama ByYear=Po godini NotMatch=Nije postavljeno -DeleteMvt=Delete some operation lines from accounting -DelMonth=Month to delete +DeleteMvt=Delete some lines from accounting +DelMonth=Mjesec za obrisati DelYear=Godina za obrisati DelJournal=Dnevnik za obrisati -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=Time će se transakcija izbrisati iz računovodstva (svi redovi koji se odnose na istu transakciju bit će izbrisani) FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Financijski izvještaj uključujući sve tipove plaćanja po bankovnom računom 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 +VATAccountNotDefined=Konto za PDV nije definiran 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 +ProductAccountNotDefined=Konto za proizvod nije definiran +FeeAccountNotDefined=Konto za naknadu nije definiran +BankAccountNotDefined=Konto za banku nije definiran CustomerInvoicePayment=Payment of invoice customer ThirdPartyAccount=Third-party account -NewAccountingMvt=New transaction -NumMvts=Numero of transaction +NewAccountingMvt=Nova transakcija +NumMvts=Broj transakcija ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time AddCompteFromBK=Add accounting accounts to the group @@ -250,16 +254,16 @@ ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Subledger account not defined or 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 +PaymentsNotLinkedToProduct=Plaćanje nije povezano s bilo kojim proizvodom/uslugom +OpeningBalance=Početno stanje +ShowOpeningBalance=Prikaži početno stanje +HideOpeningBalance=Sakrij početno stanje +ShowSubtotalByGroup=Prikaži međuzbroj po razini -Pcgtype=Group of account +Pcgtype=Klasa računa 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 +Reconcilable=Za usklađivanje TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -277,83 +281,85 @@ DescVentilExpenseReport=Consult here the list of expense report lines bound (or 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 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 +Closure=Godišnje zatvaranje +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... 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 +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 -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s -Balancing=Balancing +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=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding +NoNewRecordSaved=Nema više zapisa za prijenos +ListOfProductsWithoutAccountingAccount=Popis proizvoda koji nisu vezani ni za jedan računovodstveni konto +ChangeBinding=Promijenite povezivanje 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 +ShowTutorial=Prikaži vodič +NotReconciled=Nije usklađeno +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 +BindingOptions=Mogućnosti vezanja ApplyMassCategories=Primjeni masovne kategorije 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 +ShowAccountingJournal=Prikaži računovodstveni dnevnik NatureOfJournal=Nature of Journal -AccountingJournalType1=Miscellaneous operations +AccountingJournalType1=Razne operacije AccountingJournalType2=Prodaja AccountingJournalType3=Nabava AccountingJournalType4=Banka -AccountingJournalType5=Expenses report +AccountingJournalType5=Izvještaj o troškovima AccountingJournalType8=Zalihe -AccountingJournalType9=Has-new +AccountingJournalType9=Ima-novo ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s -NumberOfAccountancyEntries=Number of entries +NumberOfAccountancyEntries=Broj unosa 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 (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 ? +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=Potvrda datuma i zaključavanje +ConfirmExportFile=Potvrda generiranja datoteke za izvoz računovodstva? 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_CEGID=Izvoz za CEGID Expert Comptabilité +Modelcsv_COALA=Izvoz za Sage Coalu +Modelcsv_bob50=Izvoz za Sage BOB 50 +Modelcsv_ciel=Izvoz za Sage50, Ciel Compta ili Compta Evo. (Format 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) (Test) +Modelcsv_LDCompta10=Izvoz za LD Compta (v10 i noviji) +Modelcsv_openconcerto=Izvoz za OpenConcerto (test) +Modelcsv_configurable=Izvoz CSV-a koji se može konfigurirati +Modelcsv_FEC=Izvoz 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_Sage50_Swiss=Izvoz za Sage 50 Švicarska +Modelcsv_winfic=Izvoz za Winfic - eWinfic - WinSis Compta +Modelcsv_Gestinumv3=Izvoz za Gestinum (v3) +Modelcsv_Gestinumv5=Izvoz za Gestinum (v5) Modelcsv_charlemagne=Export for Aplim Charlemagne ChartofaccountsId=Chart of accounts Id @@ -370,42 +376,61 @@ OptionModeProductBuy=Načini nabavke 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. +OptionModeProductSellIntraDesc=Prikaži sve proizvode s kontom za prodaju u EEC. +OptionModeProductSellExportDesc=Prikaži sve proizvode s kontom za ostale inozemne prodaje. +OptionModeProductBuyDesc=Prikaži sve proizvode s kontom za kupnje. +OptionModeProductBuyIntraDesc=Prikaži sve proizvode s kontom za kupnje u EEC. +OptionModeProductBuyExportDesc=Prikaži sve proizvode skontom za druge strane kupnje. 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 +CleanHistory=Poništi sve veze za odabranu godinu +PredefinedGroups=Unaprijed definirane grupe +WithoutValidAccount=Bez valjanog namjenskog računa +WithValidAccount=S važećim namjenskim računom 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 +AccountRemovedFromGroup=Račun je uklonjen iz grupe +SaleLocal=Lokalna prodaja +SaleExport=Izvozna prodaja +SaleEEC=Prodaja u 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. +ForbiddenTransactionAlreadyExported=Zabranjeno: Transakcija je potvrđena i/ili izvezena. +ForbiddenTransactionAlreadyValidated=Zabranjeno: Transakcija je potvrđena. ## Dictionary Range=Raspon obračunskog računa Calculated=Izračunato 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=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)? + ## 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) +SomeMandatoryStepsOfSetupWereNotDone=Neki obvezni koraci postavljanja nisu napravljeni, molimo dovršite ih +ErrorNoAccountingCategoryForThisCountry=Nema dostupne grupe konza za zemlju %s (Pogledajte Početna - Postavljanje - Rječnici) 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. +ErrorInvoiceContainsLinesNotYetBoundedShort=Neki redovi na fakturi nisu vezani za računovodstveni konto. ExportNotSupported=Podešeni format izvoza nije podržan -BookeppingLineAlreayExists=Lines already existing into bookkeeping +BookeppingLineAlreayExists=Redovi koji već postoje u knjigovodstvu 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 +Binded=Vezane linije +ToBind=Linije za vezanje +UseMenuToSetBindindManualy=Linije još nisu povezane, upotrijebite izbornik %s za ručno povezivanje +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Nažalost, ovaj modul nije kompatibilan s eksperimentalnom značajkom faktura situacije +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 @@ -426,12 +451,12 @@ FECFormatCredit=Credit (Credit) FECFormatReconcilableCode=Reconcilable code (EcritureLet) FECFormatReconcilableDate=Reconcilable date (DateLet) FECFormatValidateDate=Piece date validated (ValidDate) -FECFormatMulticurrencyAmount=Multicurrency amount (Montantdevise) -FECFormatMulticurrencyCode=Multicurrency code (Idevise) +FECFormatMulticurrencyAmount=Viševalutni iznos (Montantdevise) +FECFormatMulticurrencyCode=Viševalutni kod (Idevise) -DateExport=Date export +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=Expense Report Journal -InventoryJournal=Inventory Journal +ExpenseReportJournal=Dnevnik izvješća o troškovima +InventoryJournal=Dnevnik inventara -NAccounts=%s accounts +NAccounts=%s računi diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index ccc1bd1cd83..cd529749db1 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/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=Ispišite referencu i razdoblje artikla proizvoda u PDF-u +BoldLabelOnPDF=Ispišite naljepnicu proizvoda podebljano u PDF-u Foundation=Zaklada Version=Inačica Publisher=Izdavač @@ -18,36 +18,36 @@ FileIntegrityIsOkButFilesWereAdded=Provjera integriteta datoteka je prošla, me FileIntegritySomeFilesWereRemovedOrModified=Provjera integriteta datoteke nije uspjela. Neke su datoteke modificirane, uklonjene ili dodane. GlobalChecksum=Globalni zbroj MakeIntegrityAnalysisFrom=Napravite analizu integriteta aplikacijskih datoteka od -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) +LocalSignature=Ugrađeni lokalni potpis (manje pouzdan) +RemoteSignature=Daljinski udaljeni potpis (pouzdaniji) FilesMissing=Nedostaju datoteke FilesUpdated=Nadograđene datoteke FilesModified=Preinačene datoteke FilesAdded=Dodane datoteke -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 +FileCheckDolibarr=Provjerite integritet aplikacijskih datoteka +AvailableOnlyOnPackagedVersions=Lokalna datoteka za provjeru integriteta dostupna je samo kada je aplikacija instalirana iz službenog paketa +XmlNotFound=Xml datoteka integriteta aplikacije nije pronađena SessionId=ID Sesije SessionSaveHandler=Rukovatelj za spremanje sesije -SessionSavePath=Session save location +SessionSavePath=Mjesto spremanja sesije PurgeSessions=Brisanje sesija ConfirmPurgeSessions=Želite li stvarno prekinuti sve sesije? To će odjaviti sve korisnike (osim vas). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. +NoSessionListWithThisHandler=Rukovatelj sesije spremanja konfiguriran u vašem PHP-u ne dopušta popis svih pokrenutih sesija. LockNewSessions=Zaključaj nova spajanja -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=Jeste li sigurni da želite ograničiti svako novo spajanje na Dolibarr za sebe? Samo korisnik %s će biti u mogučnosti da se nakon toga spoji. UnlockNewSessions=Otključaj spajanje YourSession=Vaša sesija -Sessions=Users Sessions +Sessions=Korisničke sesije 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). +PermissionsOnFiles=Dozvole za datoteke +PermissionsOnFilesInWebRoot=Dozvole za datoteke u web korijenskom direktoriju +PermissionsOnFile=Dozvole za datoteku %s +NoSessionFound=Čini se da vaša PHP konfiguracija ne dopušta popis aktivnih sesija. Direktorij koji se koristi za spremanje sesija ( %s ) može biti zaštićen (na primjer dopuštenjima OS-a ili PHP direktivom open_basedir). DBStoringCharset=Database charset to store data DBSortingCharset=Charset baze za sortiranje podataka HostCharset=Host charset -ClientCharset=Client charset -ClientSortingCharset=Client collation +ClientCharset=Klijentski charset +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 @@ -55,19 +55,19 @@ InternalUser=Interni korisnik ExternalUser=Vanjski korisnik InternalUsers=Interni korisnici ExternalUsers=Vanjski korisnici -UserInterface=User interface +UserInterface=Korisničko sučelje GUISetup=Prikaz SetupArea=Postavke -UploadNewTemplate=Upload new template(s) +UploadNewTemplate=Prijenos novih predložaka FormToTestFileUploadForm=Obrazac za testiranje uploada datoteka (sukladno postavkama) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +ModuleMustBeEnabled=Modul/aplikacija %s mora biti omogućen +ModuleIsEnabled=Modul/aplikacija %s je omogućen IfModuleEnabled=Napomena: DA je efektivno samo ako je modul %s omogućen -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=Uklonite/preimenujte datoteku %s ako postoji, kako biste omogućili korištenje alata za ažuriranje/instalaciju. +RestoreLock=Vratite datoteku %s, s dozvolom samo za čitanje, za onemogučavanje korištenja alata za nadogradnju/postavljanje. SecuritySetup=Postavke sigurnosti -PHPSetup=PHP setup -OSSetup=OS setup +PHPSetup=PHP postavke +OSSetup=OS postavke SecurityFilesDesc=Ovdje definirajte opcije vezane za sigurnost kod uploada datoteka. ErrorModuleRequirePHPVersion=Greška, ovaj modul zahtjeva PHP verziju %s ili višu ErrorModuleRequireDolibarrVersion=Greška, ovaj modul zahtjeva Dolibarr verzije %s ili više @@ -76,26 +76,26 @@ DictionarySetup=Podešavanje definicija Dictionary=Definicije ErrorReservedTypeSystemSystemAuto=Vrijednosti 'sistem' i 'sistemauto' za tipove je rezervirana. Možete koristiti 'korisnik' kao vrijednost za dodavanje vlastitog podatka ErrorCodeCantContainZero=Kod ne može sadržavati vrijednost 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 +DisableJavascript=Onemogući JavaScript i AJAX funkcije +DisableJavascriptNote=Napomena: Samo u svrhu testiranja ili otklanjanja pogrešaka. Za optimizaciju za slijepe osobe ili tekstualne preglednike, možda ćete radije koristiti postavke na profilu korisnika 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 +DelaiedFullListToSelectCompany=Pričekajte dok se ne pritisne tipka prije učitavanja sadržaja kombiniranog popisa trećih strana.
    Ovo može povećati performanse ako imate veliki broj trećih strana, ali je manje prikladno. +DelaiedFullListToSelectContact=Pričekajte dok se ne pritisne tipka prije učitavanja sadržaja kombiniranog popisa kontakata.
    Ovo može povećati performanse ako imate veliki broj kontakata, ali je manje prikladno. +NumberOfKeyToSearch=Br. znakova za aktiviranje pretrage: %s +NumberOfBytes=Broj bajtova +SearchString=Izraz za pretraživanje NotAvailableWhenAjaxDisabled=Nije dostupno kada je Ajax onemogućen -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party +AllowToSelectProjectFromOtherCompany=Na dokumentu komitenta, možete odabrati projekt povezan s drugim komitentom TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months JavascriptDisabled=JavaScript onemogućen UsePreviewTabs=Koristi karticu pregleda ShowPreview=Prikaži pregled -ShowHideDetails=Show-Hide details +ShowHideDetails=Prikaži-sakrij detalje PreviewNotAvailable=Pregled nije dostupan ThemeCurrentlyActive=Tema trenutno aktivna 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). +TZHasNoEffect=Datumi se pohranjuju i vraćaju od strane poslužitelja baze podataka kao da se čuvaju kao predani niz. Vremenska zona ima učinak samo kada se koristi funkcija UNIX_TIMESTAMP (koju Dolibarr ne bi trebao koristiti, tako da baza podataka TZ ne bi trebala imati učinka, čak i ako se promijeni nakon unosa podataka). Space=Razmak Table=Tabela Fields=Polja @@ -104,94 +104,94 @@ Mask=Maska NextValue=Sljedeća vrijednost NextValueForInvoices=Sljedeća vrijednost (računi) NextValueForCreditNotes=Sljedeća vrijednost (kreditne bilješke) -NextValueForDeposit=Next value (down payment) +NextValueForDeposit=Sljedeća vrijednost (kapara) NextValueForReplacements=Sljedeć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 +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=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe +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 -AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AntiVirusParamExample=Primjer za ClamAv Daemon: --fdpass
    Primjer za ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Podešavanje modula računovodstva UserSetup=Podešavanje upravljanja korisnicima MultiCurrencySetup=Podešavanje više valuta MenuLimits=Limiti i točnost MenuIdParent=Matični izbornik ID DetailMenuIdParent=ID matičnog izbornika (prazno za top izbornik) -ParentID=Parent ID +ParentID=ID matičnog zapisa DetailPosition=Redni broj za definiranje pozicije izbornika AllMenus=Svi NotConfigured=Modul/Aplikacija nije konfigurirana Active=Aktivan SetupShort=Postavke OtherOptions=Ostale opcije -OtherSetup=Other Setup +OtherSetup=Ostalo postavljanje CurrentValueSeparatorDecimal=Decimalni separator CurrentValueSeparatorThousand=Separator tisućica Destination=Odredište IdModule=ID Modula IdPermissions=ID Dozvole LanguageBrowserParameter=Parametar %s -LocalisationDolibarrParameters=Localization parameters +LocalisationDolibarrParameters=Parametri lokalizacije ClientHour=Vrijeme klijent (korisnik) OSTZ=Server OS vremenska zona PHPTZ=PHP server vremenska zona DaylingSavingTime=Ljetno računanje vremena CurrentHour=PHP Vrijeme (server) CurrentSessionTimeOut=Trenutno vrijeme isteka 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. +YouCanEditPHPTZ=Da biste postavili drugu vremensku zonu PHP (nije potrebno), možete pokušati dodati .htaccess datoteku s redkom poput ovog "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Upozorenje, za razliku od drugih zaslona, sati na ovoj stranici nisu u vašoj lokalnoj vremenskoj zoni, već u vremenskoj zoni poslužitelja. Box=Dodatak Boxes=Dodaci -MaxNbOfLinesForBoxes=Max. number of lines for widgets -AllWidgetsWereEnabled=All available widgets are enabled +MaxNbOfLinesForBoxes=Maksimalni broj linija u dodatku +AllWidgetsWereEnabled=Svi dostupni widgeti su omogućeni PositionByDefault=Predefiniran redosljed Position=Pozicija MenusDesc=Upravitelji izbornicima postavljaju sadržaj za dva izbornika ( horizontalni i vertikalni). -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. +MenusEditorDesc=Uređivač izbornika omogućuje vam definiranje prilagođenih unosa u izborniku. Pažljivo ga koristite kako biste izbjegli nestabilnost i trajno nedostupne unose u izborniku.
    Neki moduli dodaju unose izbornika (u izborniku Sve uglavnom). Ako pogreškom uklonite neke od ovih unosa, možete ih vratiti onemogućavajući i ponovno omogućavajući modul. MenuForUsers=Izbornik za korisnike LangFile=.lang datoteka -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=Informacije o sistemu SystemToolsArea=Alati sustava -SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature. +SystemToolsAreaDesc=Ovo područje pruža administrativne funkcije. Pomoću izbornika odaberite potrebnu značajku. Purge=Trajno izbriši -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=Ova stranica vam omogućuje brisanje svih datoteka koje je generirao ili pohranio Dolibarr (privremene datoteke ili sve datoteke u direktoriju %s ). Korištenje ove značajke obično nije potrebno. Pruža se kao zaobilazno rješenje za korisnike čiji Dolibarr hostira davatelj koji ne nudi dopuštenja za brisanje datoteka koje generira web poslužitelj. +PurgeDeleteLogFile=Obriši dnevnik datoteka %s definiran za Syslog modul ( nema rizika od gubitka podataka) +PurgeDeleteTemporaryFiles=Izbrišite sve zapisnike i privremene datoteke (bez rizika od gubitka podataka). Parametar može biti 'tempfilesold', 'logfiles' ili oba 'tempfilesold+logfiles'. Napomena: Brisanje privremenih datoteka vrši se samo ako je privremeni direktorij stvoren prije više od 24 sata. +PurgeDeleteTemporaryFilesShort=Izbrišite zapisnik i privremene datoteke (bez rizika od gubitka podataka) +PurgeDeleteAllFilesInDocumentsDir=Izbrišite sve datoteke u direktoriju: %s .
    Ovo će izbrisati sve generirane dokumente koji se odnose na elemente (treće strane, fakture itd.), datoteke učitane u ECM modul, dumpove sigurnosne kopije baze podataka i privremene datoteke. PurgeRunNow=Izbriši sada PurgeNothingToDelete=Nema mapa i datoteka za brisanje. PurgeNDirectoriesDeleted=%s datoteke ili mape obrisane. -PurgeNDirectoriesFailed=Failed to delete %s files or directories. +PurgeNDirectoriesFailed=Brisanje datoteka ili direktorija %s nije uspjelo. PurgeAuditEvents=Trajno izbriši sve sigurnosne događaje -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +ConfirmPurgeAuditEvents=Jeste li sigurni da želite očistiti sve sigurnosne događaje? Svi sigurnosni zapisnici će biti izbrisani, nikakvi drugi podaci neće biti uklonjeni. GenerateBackup=Napravi sigurnosnu kopiju Backup=Sigurnosna kopija Restore=Vrati RunCommandSummary=Backup je pokrenut s sljedećom komandom BackupResult=Rezultat backupa BackupFileSuccessfullyCreated=Datoteka backupa uspješno generirana -YouCanDownloadBackupFile=The generated file can now be downloaded +YouCanDownloadBackupFile=Generirane datoteke se mogu sada preuzeti NoBackupFileAvailable=Nema dostupnih backup datoteka ExportMethod=Način izvoza ImportMethod=Način uvoza ToBuildBackupFileClickHere=Za kreiranje backup datoteke kliknite ovdje. -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=Za uvoz MySQL datoteke sigurnosne kopije, možete koristiti phpMyAdmin putem svog hostinga ili koristiti naredbu mysql iz naredbenog retka.
    Na primjer: ImportPostgreSqlDesc=Za uvoz backup datoteke, morate koristiti pg_restore komandu sa komandne linije: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filename for backup: +FileNameToGenerate=Naziv datoteke za sigurnosnu kopiju: Compression=Kompresija CommandsToDisableForeignKeysForImport=Komanda za onemogučivanje vanjskih ključeva na uvozu CommandsToDisableForeignKeysForImportWarning=Obavezno ako želite biti u mogučnosti kasnije povratiti vaš sql backup ExportCompatibility=Kompatibilnost generirane izvozne datoteke -ExportUseMySQLQuickParameter=Use the --quick parameter -ExportUseMySQLQuickParameterHelp=The '--quick' parameter helps limit RAM consumption for large tables. +ExportUseMySQLQuickParameter=Koristite --quick parametar +ExportUseMySQLQuickParameterHelp=Parametar '--quick' pomaže ograničiti potrošnju RAM-a za velike tablice. MySqlExportParameters=MySQL parametri izvoza PostgreSqlExportParameters= PostgreSQL parametri izvoza UseTransactionnalMode=Koristi transakcijski način @@ -208,123 +208,123 @@ EncodeBinariesInHexa=Kodiraj binarne podatke u heksadecimalne IgnoreDuplicateRecords=Zanemari greške dupliciranih zapisa (INSERT IGNORE) AutoDetectLang=Automatski detektiraj (jezik web preglednika) FeatureDisabledInDemo=Mogućnost 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. +FeatureAvailableOnlyOnStable=Značajka dostupna samo na službenim stabilnim verzijama +BoxesDesc=Widgeti su komponente koje prikazuju neke informacije koje možete dodati da biste personalizirali neke stranice. Možete birati između prikazivanja widgeta ili ne tako da odaberete ciljnu stranicu i kliknete 'Aktiviraj' ili klikom na koš za smeće da ga onemogućite. OnlyActiveElementsAreShown=Prikazani su samo elementi sa omogučenih modula -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. +ModulesDesc=Moduli/aplikacije određuju koje su značajke dostupne u softveru. Neki moduli zahtijevaju da se dozvole dodijele korisnicima nakon aktivacije modula. Kliknite gumb za uključivanje/isključivanje %s svakog modula kako biste omogućili ili onemogućili modul/aplikaciju. +ModulesDesc2=Kliknite gumb kotačića %s da biste konfigurirali modul/aplikaciju. ModulesMarketPlaceDesc=Možete pronaći više modula za download na vanjskim internet web lokacijama -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. +ModulesDeployDesc=Ako dozvole na vašem datotečnom sustavu to dopuštaju, možete koristiti ovaj alat za implementaciju vanjskog modula. Modul će tada biti vidljiv na kartici %s . ModulesMarketPlaces=Nađi vanjske aplikacije/module -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. +ModulesDevelopYourModule=Razvijte vlastitu aplikaciju/module +ModulesDevelopDesc=Također možete razviti vlastiti modul ili pronaći partnera koji će ga razviti za vas. +DOLISTOREdescriptionLong=Umjesto da uključite www.dolistore.com web stranicu kako biste pronašli vanjski modul, možete koristiti ovaj ugrađeni alat koji će za vas izvršiti pretragu na vanjskom tržištu (može biti spor, potreban vam je pristup internetu)... +NewModule=Novi modul +FreeModule=Besplatno +CompatibleUpTo=Kompatibilan s verzijom %s +NotCompatible=Čini se da ovaj modul nije kompatibilan s vašim Dolibarr %s (Min %s - Max %s). +CompatibleAfterUpdate=Ovaj modul zahtijeva ažuriranje vašeg Dolibarra %s (Min %s - Max %s). +SeeInMarkerPlace=Vidi u Market place +SeeSetupOfModule=Pogledajte postavljanje modula %s +SetOptionTo=Postavite opciju %s na %s +Updated=Ažurirano +AchatTelechargement=Kupi / Preuzmi +GoModuleSetupArea=Da biste postavili/instalirali novi modul, idite na područje za postavljanje modula: %s . DoliStoreDesc=DoliStorel, ovlaštena trgovina za Dolibarr ERP/CRM dodatne 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=Popis tvrtki koje pružaju prilagođene module ili značajke.
    Napomena: budući da je Dolibarr aplikacija otvorenog koda, svatko s iskustvom u PHP programiranju trebao bi biti u mogućnosti razviti modul. +WebSiteDesc=Vanjske web stranice za više dodatnih (neosnovnih) modula... +DevelopYourModuleDesc=Neka rješenja za razvoj vlastitog modula... URL=URL -RelativeURL=Relative URL +RelativeURL=Relativni URL BoxesAvailable=Dostupni dodaci BoxesActivated=Aktivirani dodaci ActivateOn=Aktiviraj na ActiveOn=Aktivirano na -ActivatableOn=Activatable on +ActivatableOn=Uključeno SourceFile=Izvorna datoteka AvailableOnlyIfJavascriptAndAjaxNotDisabled=Dostupno samo ako JavaScript nije onemogućena Required=Obavezno UsedOnlyWithTypeOption=Koristi se samo kod nekih opcija agende Security=Sigurnost Passwords=Lozinke -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 lozinke pohranjene u bazi podataka (NE kao običan tekst). Preporučljivo je aktivirati ovu opciju. +MainDbPasswordFileConfEncrypted=Šifrirajte lozinku baze podataka pohranjenu u conf.php. Preporučljivo je aktivirati ovu opciju. InstrucToEncodePass=Da biste imali kodiranu lozinku u conf.php datoteci, zamjenite red
    $dolibarr_main_db_pass="...";
    sa
    $dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Da biste imali čitljivu lozinku u conf.php datoteci, zamjenite red
    $dolibarr_main_db_pass="crypted:...";
    sa
    $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štitite generirane PDF datoteke. Ovo se NE preporuča jer prekida masovno generiranje PDF-a. +ProtectAndEncryptPdfFilesDesc=Zaštita PDF dokumenta čini ga dostupnim za čitanje i ispis s bilo kojim PDF preglednikom. Međutim, uređivanje i kopiranje više nije moguće. Imajte na umu da korištenje ove značajke čini da izgradnja globalnih spojenih PDF-ova ne funkcionira. Feature=Mogućnost DolibarrLicense=Licenca Developpers=Kreatori/suradnici -OfficialWebSite=Dolibarr official web site +OfficialWebSite=Dolibarr službena web stranica OfficialWebSiteLocal=Lokalna web lokacija (%s) -OfficialWiki=Dolibarr documentation / Wiki +OfficialWiki=Dolibarr dokumentacija / Wiki OfficialDemo=Dolibarr Online demo OfficialMarketPlace=Ovlaštena trgovina za vanjske module/dodatke OfficialWebHostingService=Preporučeni web hosting servisi (Cloud hosting) ReferencedPreferredPartners=Preferirani partneri OtherResources=Drugi izvori -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. +ExternalResources=Vanjski resursi +SocialNetworks=Društvene mreže +SocialNetworkId=ID društvene mreže +ForDocumentationSeeWiki=Za dokumentaciju za korisnike ili razvojne programere (Doc, FAQs...),
    pogledajte Dolibarr Wiki:
    %s +ForAnswersSeeForum=Za sva druga pitanja/pomoć možete koristiti Dolibarr forum:
    %s +HelpCenterDesc1=Evo nekih resursa za dobivanje pomoći i podrške uz Dolibarr. +HelpCenterDesc2=Neki od ovih resursa dostupni su samo na engleskom . CurrentMenuHandler=Trenutačni nositelj izbornika MeasuringUnit=Mjerna jedinica -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=Lijeva margina +TopMargin=Gornja margina +PaperSize=Vrsta papira +Orientation=Orijentacija +SpaceX=Razmak X +SpaceY=Razmak Y +FontSize=Veličina fonta +Content=Sadržaj +ContentForLines=Sadržaj za prikaz za svaki proizvod ili uslugu (iz varijable __LINES__ sadržaja) NoticePeriod=Otkazni rok -NewByMonth=New by month +NewByMonth=Novo po mjesecu Emails=e-pošta EMailsSetup=podešavanje e-pošte -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) +EMailsDesc=Ova stranica vam omogućuje postavljanje parametara ili opcija za slanje e-pošte. +EmailSenderProfiles=Profili pošiljatelja e-pošte +EMailsSenderProfileDesc=Ovaj odjeljak možete ostaviti praznim. Ako ovdje unesete neke e-poruke, oni će biti dodani na popis mogućih pošiljatelja u kombinirani okvir kada napišete novu e-poštu. +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS port (zadana vrijednost u php.ini: %s ) +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 ) +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) +MAIN_MAIL_FORCE_SENDTO=Pošaljite sve e-poruke na (umjesto stvarnim primateljima, u svrhu testiranja) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Predložite e-poštu zaposlenika (ako je definirano) na popis unaprijed definiranih primatelja prilikom pisanja nove e-pošte +MAIN_MAIL_SENDMODE=Način slanja e-pošte +MAIN_MAIL_SMTPS_ID=SMTP ID (ako poslužitelj za slanje zahtijeva autentifikaciju) +MAIN_MAIL_SMTPS_PW=SMTP lozinka (ako poslužitelj za slanje zahtijeva autentifikaciju) +MAIN_MAIL_EMAIL_TLS=Koristite TLS (SSL) enkripciju +MAIN_MAIL_EMAIL_STARTTLS=Koristite TLS (STARTTLS) enkripciju +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Autoriziraj les certificats auto-signés +MAIN_MAIL_EMAIL_DKIM_ENABLED=Koristite DKIM za generiranje potpisa e-pošte +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Domena e-pošte za korištenje s dkim-om +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Naziv dkim selektora +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privatni ključ za dkim potpisivanje +MAIN_DISABLE_ALL_SMS=Onemogući slanje svih SMS-ova (u svrhu testiranja ili demonstracija) MAIN_SMS_SENDMODE=Način slanja SMS-a -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=Zadani telefonski broj pošiljatelja za slanje SMS-a +MAIN_MAIL_DEFAULT_FROMTYPE=Zadana e-pošta pošiljatelja za ručno slanje (korisnička e-pošta ili e-pošta tvrtke) +UserEmail=E-pošta korisnika +CompanyEmail=E-pošta tvrtke FeatureNotAvailableOnLinux=Mogućnost nije dostupna na UNIX-u. Testirajte sendmail program 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 prijevod na platformi za online prevođenje projekta +SubmitTranslation=Ako prijevod za ovaj jezik nije potpun ili nađete pogreške, možete to ispraviti tako da uređujete datoteke u direktoriju langs/%s i pošaljete svoju izmjenu na www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Ako prijevod za ovaj jezik nije potpun ili pronađete pogreške, možete to ispraviti tako da uređujete datoteke u direktorij langs/%s i pošaljete izmijenjene datoteke na dolibarr.org/forum ili, ako ste programer postavite pull request na github.com/Dolibarr/dolibarr ModuleSetup=Podešavanje modula ModulesSetup=Podešavanje modula/aplikacija ModuleFamilyBase=Sistem -ModuleFamilyCrm=Customer Relationship Management (CRM) -ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) +ModuleFamilyCrm=Upravljanje odnosima sa kupcima (CRM) +ModuleFamilySrm=Upravljanje odnosima dobavljača (VRM) +ModuleFamilyProducts=Upravljanje proizvodom (PM) ModuleFamilyHr=Upravljanje ljudskim resursima (HR) ModuleFamilyProjects=Projekti/zajednički rad ModuleFamilyOther=Ostalo @@ -332,36 +332,36 @@ ModuleFamilyTechnic=Alati multi modula ModuleFamilyExperimental=Experimentalni moduli ModuleFamilyFinancial=Financijski moduli (Računovodstvo/Financije) ModuleFamilyECM=Elektronski upravitelj sadržajem (ECM) -ModuleFamilyPortal=Websites and other frontal application +ModuleFamilyPortal=Web stranice i druge frontalne aplikacije ModuleFamilyInterface=Interfaces with external systems MenuHandlers=Nosioci izbornka MenuAdmin=Uređivač izbornika DoNotUseInProduction=Nemojte koristiti u stvarnom okruženju -ThisIsProcessToFollow=Upgrade procedure: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=Postupak nadogradnje: +ThisIsAlternativeProcessToFollow=Ovo je alternativno postavljanje za ručnu obradu: 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=Pronađite paket koji nudi značajke koje su vam potrebne (na primjer na službenoj web stranici %s). +DownloadPackageFromWebSite=Preuzmite paket (na primjer sa službene web stranice %s). +UnpackPackageInDolibarrRoot=Raspakirajte zapakirane datoteke u direktorij vašeg Dolibarr poslužitelja: %s +UnpackPackageInModulesRoot=Da biste postavili/instalirali vanjski modul, morate raspakirati arhivsku datoteku u poslužiteljski direktorij namijenjen vanjskim modulima:
    %s +SetupIsReadyForUse=Postavljanje modula je završeno. Međutim, morate omogućiti i postaviti modul u svojoj aplikaciji tako da odete na stranicu za postavljanje modula: %s . +NotExistsDirect=Alternativni korijenski direktorij nije definiran za postojeći direktorij.
    +InfDirAlt=Od verzije 3, moguće je definirati alternativni korijenski direktorij. To vam omogućuje pohranjivanje dodataka i prilagođenih predložaka u namjenski direktorij.
    Samo stvorite direktorij u korijenu Dolibarra (npr. custom).
    +InfDirExample=
    Onda ga definiraj u datoteci conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Ako su ove linije komentirane s "#", da bi ih omogućili , samo odkomentirajte uklanjanjem znaka "#". +YouCanSubmitFile=Ovdje možete prenijeti .zip datoteku paketa modula: CurrentVersion=Trenutna verzija Dolibarr-a -CallUpdatePage=Browse to the page that updates the database structure and data: %s. +CallUpdatePage=Idite na stranicu koja ažurira strukturu baze podataka i podatke: %s. LastStableVersion=Zadnja stabilna verzija -LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP -LastActivationVersion=Latest activation version +LastActivationDate=Zadnji datum aktivacije +LastActivationAuthor=Autor najnovije aktivacije +LastActivationIP=IP najnovije aktivacije +LastActivationVersion=Verzija najnovije aktivacije UpdateServerOffline=Nadogradi server offline -WithCounter=Manage a counter +WithCounter=Upravljajte brojačem 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=Svi preostali znakovi u predlošku će ostati nepromjenjeni.
    Razmak nije dozvoljen.
    -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.
    +GenericMaskCodes3EAN=Svi ostali znakovi u maski ostat će netaknuti (osim * ili ? na 13. poziciji u EAN13).
    Razmaci nisu dopušteni.
    U EAN13, zadnji znak nakon zadnjeg } na 13. poziciji trebao bi biti * ili ? . Bit će zamijenjen izračunatim ključem.
    GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    GenericMaskCodes4b=Primjer na komitentu kreiranog 2007-03-01:
    GenericMaskCodes4c=Primjer na proizvodu kreiranog 2007-03-01:
    @@ -372,66 +372,66 @@ ServerNotAvailableOnIPOrPort=Server nije dostupan na adresi %s s portom < DoTestServerAvailability=Provjera veze s serverom DoTestSend=Slanje testa DoTestSendHTML=Slanje HTML testa -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. +ErrorCantUseRazIfNoYearInMask=Pogreška, ne može se koristiti opcija @ za poništavanje brojača svake godine ako sekvenca {yy} ili {yyyy} nije u maski. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Greška, ne možete koristiti opciju @ ako sekvence {yy}{mm} ili {yyyy}{mm} nisu u predlošku. UMask=Umask parametar za nove datoteke na Unix/Linux/BSD/Mac sistemu. -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...). +UMaskExplanation=Ovaj parametar vam omogućuje da definirate dopuštenja postavljena prema zadanim postavkama za datoteke koje je Dolibarr stvorio na poslužitelju (na primjer, tijekom prijenosa).
    Mora biti oktalna vrijednost (na primjer, 0666 znači čitanje i pisanje za svakoga).
    Ovaj parametar je beskoristan na Windows poslužitelju. +SeeWikiForAllTeam=Pogledajte Wiki stranicu za popis suradnika i njihovu organizaciju +UseACacheDelay= Kašnjenje za predmemoriranje izvoznog odgovora u sekundama (0 ili prazno ako nema predmemorije) +DisableLinkToHelpCenter=Sakrij vezu " Trebate pomoć ili podršku " na stranici za prijavu +DisableLinkToHelp=Sakrij vezu na online pomoć " %s " +AddCRIfTooLong=Nema automatskog prelamanja teksta, tekst koji je predugačak neće se prikazati na dokumentima. Ako je potrebno, dodajte povratne oznake u tekstualno područje. +ConfirmPurge=Jeste li sigurni da želite izvršiti ovo čišćenje?
    Ovo će trajno izbrisati sve vaše podatkovne datoteke bez načina da ih vratite (ECM datoteke, priložene datoteke...). MinLength=Minimalna dužina -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -LanguageFile=Language file -ExamplesWithCurrentSetup=Examples with current configuration +LanguageFilesCachedIntoShmopSharedMemory=Datoteke .lang učitane u zajedničku memoriju +LanguageFile=Jezična datoteka +ExamplesWithCurrentSetup=Primjeri s trenutnom konfiguracijom ListOfDirectories=Popis mapa sa OpenDocument predlošcima 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 +NumberOfModelFilesFound=Broj ODT/ODS datoteka predložaka pronađenih u ovim direktorijima +ExampleOfDirectoriesForModelGen=Primjeri sintakse:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
    Da bi ste saznali kako kreirati ODT predloške dokumenata, prije pohranjivanja istih u navedene mape, pročitajte wiki dokumentaciju na: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Pozicija Imena/Prezimena -DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: +DescWeather=Sljedeće slike će se prikazati na nadzornoj ploči kada broj kasnih radnji dosegne sljedeće vrijednosti: KeyForWebServicesAccess=Ključ za korištenje web servisa (parametar "dolibarrkey" u web servisima) TestSubmitForm=Unesite obrazac testiranja -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=Korištenje ovog upravitelja izbornika također će koristiti vlastitu temu bez obzira na odabir korisnika. Također ovaj upravitelj izbornika specijaliziran za pametne telefone ne radi na svim pametnim telefonima. Koristite drugi upravitelj izbornika ako imate problema sa svojim. ThemeDir=Mapa stilova -ConnectionTimeout=Connection timeout +ConnectionTimeout=Vrijeme povezanosti je isteklo ResponseTimeout=Odgovor SmsTestMessage=Test poruka od __PHONEFROM__ za __PHONETO__ ModuleMustBeEnabledFirst=Modul %s mora biti omogućen ako želite koristiti ovu mogučnost. -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 sigurne URL-ove +NoSmsEngine=Nije dostupan upravitelj SMS pošiljatelja. Upravitelj SMS pošiljatelja nije instaliran sa zadanom distribucijom jer ovise o vanjskom dobavljaču, ali neke možete pronaći 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 +PDFDesc=Globalne opcije za generiranje PDF-a +PDFOtherDesc=PDF opcija specifična za neke module +PDFAddressForging=Pravila za odjeljak za adresu +HideAnyVATInformationOnPDF=Sakrij sve informacije vezane uz porez na promet / PDV +PDFRulesForSalesTax=Pravila za porez na promet / PDV +PDFLocaltax=Pravila za %s +HideLocalTaxOnPDF=Sakrij stopu %s u stupcu Porez na promet/PDV +HideDescOnPDF=Sakrij opis proizvoda +HideRefOnPDF=Sakrij ref. proizvoda +HideDetailsOnPDF=Sakrij stavke detalja proizvoda PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position Library=Biblioteka UrlGenerationParameters=Parametri za osiguranje URL-a SecurityTokenIsUnique=Koristi jedinstven securekey parametar za svaki URL EnterRefToBuildUrl=Unesite referencu za objekt %s GetSecuredUrl=Traži izračunan URL -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=Sakrij gumbe za neovlaštene radnje i za interne korisnike (u suprotnom su samo sivi) OldVATRates=Stara stopa PDV-a NewVATRates=Nova stopa PDV-a PriceBaseTypeToChange=Promjeni cijene sa baznom referentnom vrijednosti definiranoj na -MassConvert=Launch bulk conversion -PriceFormatInCurrentLanguage=Price Format In Current Language +MassConvert=Pokreni masovnu konverziju +PriceFormatInCurrentLanguage=Format cijene na trenutnom jeziku String=String String1Line=String (1 line) TextLong=Long text -TextLongNLines=Long text (n lines) -HtmlText=Html text +TextLongNLines=Dugi tekst (n redaka) +HtmlText=Html tekst Int=Integer Float=Float DateAndTime=Datum i vrijeme @@ -443,264 +443,264 @@ ExtrafieldMail = E-pošta ExtrafieldUrl = Url ExtrafieldSelect = Odaberi popis ExtrafieldSelectList = Odaberi iz tabele -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=Razdjelnik (nije polje) ExtrafieldPassword=Lozinka ExtrafieldRadio=Radio buttons (one choice only) ExtrafieldCheckBox=Checkboxes ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Poveži s objektom -ComputedFormula=Computed field +ComputedFormula=Izračunato polje 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) +Computedpersistent=Pohrani izračunato polje +ComputedpersistentDesc=Izračunata dodatna polja bit će pohranjena u bazi podataka, međutim, vrijednost će se ponovno izračunati samo kada se promijeni objekt ovog polja. Ako izračunato polje ovisi o drugim objektima ili globalnim podacima, ova vrijednost može biti pogrešna!! +ExtrafieldParamHelpPassword=Ako ovo polje ostavite praznim, znači da će ova vrijednost biti pohranjena bez šifriranja (polje mora biti skriveno samo sa zvjezdicom na zaslonu).
    Postavite 'auto' za korištenje zadanog pravila šifriranja za spremanje lozinke u bazu podataka (tada će pročitana vrijednost biti samo hash, nema načina da se dohvati izvorna vrijednost) 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=Popis vrijednosti moraju biti linije sa strukturom ključ,vrijednost (ključ ne može biti '0')

    na primjer:
    1,vrijednost1
    2,vrijednost2
    3,vrijednost3
    ... +ExtrafieldParamHelpradio=Popis vrijednosti moraju biti linije sa strukturom ključ,vrijednost (ključ ne može biti '0')

    na primjer:
    1,vrijednost1
    2,vrijednost2
    3,vrijednost3
    ... 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) +ExtrafieldParamHelplink=Parametri moraju biti ObjectName:Classpath
    Sintaksa: ObjectName:Classpath +ExtrafieldParamHelpSeparator=Ostavite prazno za jednostavan separator
    Postavite ovo na 1 za sažimajući separator (otvoreno prema zadanim postavkama za novu sesiju, a status se čuva za svaku korisničku sesiju)
    Postavite ovo na 2 za sažimajući separator (sažeto prema zadanim postavkama za novu sesiju, a zatim status se čuva za svaku korisničku sesiju) LibraryToBuildPDF=Biblioteka korištena za kreiranje PDF-a -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=Neke zemlje mogu primijeniti dva ili tri poreza na svaki redak fakture. Ako je to slučaj, odaberite vrstu drugog i trećeg poreza i njegovu stopu. Moguća vrsta je:
    1: lokalni porez se primjenjuje na proizvode i usluge bez PDV-a (lokalni porez se obračunava na iznos bez poreza)
    2: lokalni porez se primjenjuje na proizvode i usluge uključujući PDV (lokalni porez se obračunava na iznos + glavni porez)
    3: lokalni porez se primjenjuje na proizvode bez PDV-a (lokalni porez se obračunava na iznos bez poreza)
    4: lokalni porez se primjenjuje na proizvode uključujući PDV (lokalni porez se obračunava na iznos + glavni PDV)
    5: lokalni porez se primjenjuje na usluge bez PDV-a (obračunava se lokalni porez na iznos bez poreza)
    6: lokalni porez se primjenjuje na usluge uključujući PDV (lokalni porez se obračunava na iznos + porez) SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s +LinkToTestClickToDial=Unesite telefonski broj koji želite nazvati da biste prikazali vezu za testiranje URL-a ClickToDial za korisnika %s RefreshPhoneLink=Osvježi link LinkToTest=Generirana veza za korisnika %s (kliknite na telefonski broj za test) KeepEmptyToUseDefault=Ostavite prazno za zadane vrijednosti -KeepThisEmptyInMostCases=In most cases, you can keep this field empy. +KeepThisEmptyInMostCases=U većini slučajeva ovo polje možete držati praznim. DefaultLink=Default link SetAsDefault=Postavi kao zadano -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 +ValueOverwrittenByUserSetup=Upozorenje, ova vrijednost može biti prepisana korisničkim postavkama (svaki korisnik može postaviti svoj vlastiti url za biranje klikom) +ExternalModule=Vanjski modul +InstalledInto=Instalirano u direktorij %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Masovno postavljanje ili promjena barkodova usluga i proizvoda -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Inicijalna vrijednost za sljedećih %s praznih podataka +CurrentlyNWithoutBarCode=Trenutno, imate %s podataka na %s %s bez definiranog barkoda. +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Obriše sve trenutne vrijednosti barkoda -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=Jeste li sigurni da želite obrisati sve trenutne barkod vrijednosti ? AllBarcodeReset=Sve barkod vrijednosti su obrisane -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. +NoBarcodeNumberingTemplateDefined=Nema predloška označavanja barkodom omogučenog u podešavanju modula. 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 +ShowDetailsInPDFPageFoot=Dodajte više pojedinosti u podnožje, kao što su adresa tvrtke ili imena menadžera (uz profesionalne ID-ove, kapital tvrtke i PDV broj). +NoDetails=Nema dodatnih detalja u podnožju DisplayCompanyInfo=Prikaži adresu tvrtke DisplayCompanyManagers=Prikaz upravitelja imenima DisplayCompanyInfoAndManagers=Prikaži adresu tvrtke i ime menadžera -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. +EnableAndSetupModuleCron=Ako želite da se ova ponavljajuća faktura automatski generira, modul *%s* mora biti omogućen i ispravno postavljen. Inače, generiranje računa mora se izvršiti ručno iz ovog predloška pomoću gumba *Kreiraj*. Imajte na umu da čak i ako ste omogućili automatsko generiranje, i dalje možete sigurno pokrenuti ručno generiranje. Generiranje duplikata za isto razdoblje nije moguće. +ModuleCompanyCodeCustomerAquarium=%s nakon čega slijedi šifra kupca za konto kupca +ModuleCompanyCodeSupplierAquarium=%s nakon čega slijedi šifra dobavljača za konto dobavljača +ModuleCompanyCodePanicum=Vratite praznu računovodstvenu šifru. +ModuleCompanyCodeDigitaria=Vraća složenu računovodstvenu šifru prema imenu treće strane. Kôd se sastoji od prefiksa koji se može definirati na prvom mjestu nakon kojeg slijedi broj znakova definiranih u kodu treće strane. +ModuleCompanyCodeCustomerDigitaria=%s nakon čega slijedi skraćeno ime kupca po broju znakova: %s za šifru obračuna kupca. +ModuleCompanyCodeSupplierDigitaria=%s nakon čega slijedi skraćeno ime dobavljača po broju znakova: %s za obračunski kod dobavljača. 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=Koristi 3 koraka odobravanja kada je iznos (bez poreza) veći od... -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. +WarningPHPMail=UPOZORENJE: Postavke za slanje e-pošte iz aplikacije koriste zadane generičke postavke. Često je bolje postaviti odlaznu e-poštu za korištenje poslužitelja e-pošte vašeg davatelja usluga e-pošte umjesto zadanih postavki iz nekoliko razloga: +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. +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=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) +TheKeyIsTheNameOfHtmlField=Ovo je naziv HTML polja. Za čitanje sadržaja HTML stranice potrebno je tehničko znanje kako bi se dobio naziv ključa polja. +PageUrlForDefaultValues=Morate unijeti relativni put URL-a stranice. Ako u URL uključite parametre, zadane vrijednosti bit će učinkovite ako su svi parametri postavljeni na istu vrijednost. 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. +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 +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 +ProductDocumentTemplates=Predlošci dokumenata za generiranje dokumenta proizvoda +FreeLegalTextOnExpenseReports=Besplatni pravni tekst na izvještajima o troškovima +WatermarkOnDraftExpenseReports=Vodeni žig na nacrtima izvješća o troškovima +ProjectIsRequiredOnExpenseReports=Projekt je obavezan za unos troškovnika +PrefillExpenseReportDatesWithCurrentMonth=Unaprijed ispunite datume početka i završetka novog izvješća o troškovima s datumom početka i završetka tekućeg mjeseca +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Prisilno unositi iznose izvještaja o troškovima uvijek u iznosu s porezima +AttachMainDocByDefault=Postavite ovo na 1 ako želite priložiti glavni dokument e-pošti prema zadanim postavkama (ako je primjenjivo) +FilesAttachedToEmail=Priložite datoteku +SendEmailsReminders=Pošaljite podsjetnike za dnevni red putem e-pošte +davDescription=Postavite WebDAV poslužitelj +DAVSetup=Postavljanje modula DAV +DAV_ALLOW_PRIVATE_DIR=Omogućite generički privatni imenik (namjenski WebDAV imenik pod nazivom "privatno" - potrebna je prijava) +DAV_ALLOW_PRIVATE_DIRTooltip=Generički privatni imenik je WebDAV direktorij kojem svatko može pristupiti s njegovom prijavom/prolazom aplikacije. +DAV_ALLOW_PUBLIC_DIR=Omogućite generički javni imenik (namjenski WebDAV imenik pod nazivom "javno" - nije potrebna prijava) +DAV_ALLOW_PUBLIC_DIRTooltip=Generički javni imenik je WebDAV direktorij kojem svatko može pristupiti (u načinu čitanja i pisanja), bez potrebe za autorizacijom (račun za prijavu/lozinku). +DAV_ALLOW_ECM_DIR=Omogućite DMS/ECM privatni imenik (korijenski direktorij DMS/ECM modula - potrebna je prijava) +DAV_ALLOW_ECM_DIRTooltip=Korijenski direktorij u koji se sve datoteke ručno učitavaju kada se koristi DMS/ECM modul. Slično kao pristup s web sučelja, trebat će vam valjana prijava/lozinka s odgovarajućim dopuštenjima za pristup. # Modules Module0Name=Korisnici & Grupe Module0Desc=Upravljanje korisnicima/zaposlenicima i grupama Module1Name=Treće osobe -Module1Desc=Companies and contacts management (customers, prospects...) +Module1Desc=Upravljanje tvrtkama i kontaktima (kupci, potencijalni klijenti...) Module2Name=Trgovina Module2Desc=Upravljanje komercijalom -Module10Name=Accounting (simplified) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. +Module10Name=Računovodstvo (pojednostavljeno) +Module10Desc=Jednostavna računovodstvena izvješća temeljena na sadržaju baze podataka. Ne koristi tablicu glavne knjige. Module20Name=Ponude kupcima Module20Desc=Upravljanje ponudama -Module22Name=Mass Emailings -Module22Desc=Manage bulk emailing +Module22Name=Masovne e-poruke +Module22Desc=Upravljajte masovnim slanjem e-pošte Module23Name=Energija Module23Desc=Praćenje potrošnje energije Module25Name=Narudžbe kupaca -Module25Desc=Sales order management +Module25Desc=Upravljanje prodajnim nalogom Module30Name=Izlazni računi -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers +Module30Desc=Upravljanje fakturama i odobrenjima za kupce. Upravljanje fakturama i odobrenjima za dobavljače Module40Name=Dobavljači -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=Dobavljači i upravljanje nabavom (narudžbenice i naplata faktura dobavljača) +Module42Name=Zapisnici za otklanjanje pogrešaka +Module42Desc=Mogućnosti zapisivanja (datoteka, syslog, ...). Takvi zapisnici služe za tehničke/debug svrhe. +Module43Name=Traka za otklanjanje pogrešaka +Module43Desc=Alat za razvojnog programera koji dodaje traku za otklanjanje pogrešaka u vašem pregledniku. Module49Name=Urednici Module49Desc=Upravljanje urednicima Module50Name=Proizvodi -Module50Desc=Management of Products +Module50Desc=Upravljanje proizvodima Module51Name=Masovno slanje pošte Module51Desc=Upravljanje masovnim slanje papirne pošte Module52Name=Zalihe -Module52Desc=Stock management +Module52Desc=Upravljanje zalihama Module53Name=Usluge -Module53Desc=Management of Services +Module53Desc=Upravljanje uslugama Module54Name=Ugovori/pretplate -Module54Desc=Management of contracts (services or recurring subscriptions) +Module54Desc=Upravljanje ugovorima (usluge ili ponavljajuće pretplate) Module55Name=Barkodovi -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 crtičnim ili QR kodom +Module56Name=Plaćanje kreditnom doznakom +Module56Desc=Upravljanje plaćanjem dobavljača nalozima za prijenos kredita. Uključuje generiranje SEPA datoteke za europske zemlje. +Module57Name=Plaćanja izravnim terećenjem +Module57Desc=Upravljanje nalozima za izravno terećenje. Uključuje generiranje SEPA datoteke za europske zemlje. Module58Name=ClickToDial Module58Desc=Integracija ClickToDial sistema (Asterisk, ...) -Module60Name=Stickers +Module60Name=Naljepnice Module60Desc=Management of stickers Module70Name=Intervencije Module70Desc=Upravljanje intervencijama Module75Name=Trošak i putne napomene Module75Desc=Upravljanje putnim troškovima i napomenama Module80Name=Isporuke -Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module80Desc=Upravljanje pošiljkama i dostavnicama +Module85Name=Banke i gotovina Module85Desc=Upravljanje bankovnim i gotovinskim računima -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=Vanjska stranica +Module100Desc=Dodajte vezu na vanjsku web stranicu kao ikonu glavnog izbornika. Web stranica je prikazana u okviru ispod gornjeg izbornika. Module105Name=Mailman i SPIP Module105Desc=Mailman ili SPIP sučelje za modul članova Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=Sinkronizacija LDAP imenika Module210Name=PostNuke Module210Desc=PostNuke integracija Module240Name=Izvoz podataka -Module240Desc=Tool to export Dolibarr data (with assistance) +Module240Desc=Alat za izvoz Dolibarr podataka (uz pomoć) Module250Name=Uvoz podataka -Module250Desc=Tool to import data into Dolibarr (with assistance) +Module250Desc=Alat za uvoz podataka u Dolibarr (uz pomoć) Module310Name=Članovi Module310Desc=Upravljanje članovima zaklade 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 +Module320Desc=Dodajte RSS feed na Dolibarr stranice +Module330Name=Oznake i prečaci +Module330Desc=Napravite prečace, uvijek dostupne, do internih ili vanjskih stranica kojima često pristupate +Module400Name=Projekti ili voditelji 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=Web kalendar Module410Desc=Integracija web kalendara -Module500Name=Taxes & Special Expenses -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module500Name=Porezi i posebni troškovi +Module500Desc=Upravljanje ostalim troškovima (porezi na promet, socijalni ili fiskalni porezi, dividende,...) Module510Name=Plaće -Module510Desc=Record and track employee payments +Module510Desc=Zabilježite i pratite isplate zaposlenika Module520Name=Krediti Module520Desc=Upravljanje kreditima -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=Obavijesti o poslovnom događaju +Module600Desc=Slanje obavijesti e-poštom pokrenutih poslovnim događajem: po korisniku (postavka definirana za svakog korisnika), po kontaktima treće strane (postavka definirana na svakoj trećoj strani) ili određenim e-porukama +Module600Long=Imajte na umu da ovaj modul šalje e-poštu u stvarnom vremenu kada se dogodi određeni poslovni događaj. Ako tražite značajku za slanje podsjetnika e-poštom za događaje dnevnog reda, idite na postavljanje modula Dnevni red. +Module610Name=Varijante proizvoda +Module610Desc=Izrada varijanti proizvoda (boja, veličina itd.) Module700Name=Donacije Module700Desc=Upravljanje donacijama -Module770Name=Expense Reports -Module770Desc=Manage expense reports claims (transportation, meal, ...) -Module1120Name=Vendor Commercial Proposals -Module1120Desc=Request vendor commercial proposal and prices +Module770Name=Izvješća o troškovima +Module770Desc=Upravljanje zahtjevima za izvještaje o troškovima (prijevoz, obrok,...) +Module1120Name=Komercijalni prijedlozi dobavljača +Module1120Desc=Zahtjev za ponudom dobavljača s cijenama Module1200Name=Mantis Module1200Desc=Integracija Mantisa Module1520Name=Generiranje dokumenta -Module1520Desc=Mass email document generation +Module1520Desc=Masovno generiranje dokumenata putem e-pošte Module1780Name=Kategorije Module1780Desc=Izradi oznake/skupinu (proizvodi, kupci, dobavljači, kontakti ili članovi) Module2000Name=WYSIWYG editor -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=Dopusti uređivanje/formatiranje tekstualnih polja pomoću CKEditor (html) Module2200Name=Dinamičke cijene -Module2200Desc=Use maths expressions for auto-generation of prices +Module2200Desc=Koristite matematičke izraze za automatsko generiranje cijena Module2300Name=Planirani poslovi -Module2300Desc=Scheduled jobs management (alias cron or chrono table) +Module2300Desc=Upravljanje planiranim poslovima (alias cron ili chrono tablica) Module2400Name=Događaji/Raspored -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=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=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. +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) Module2600Desc=Omogući Dolibarr SOAP server pružatelja API servisa Module2610Name=API/Webservis (REST server) Module2610Desc=Omogući Dolibarr REST server pružajući API servise 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.) +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.) Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access +Module2700Desc=Koristite internetsku uslugu Gravatar (www.gravatar.com) za prikaz fotografija korisnika/članova (koje se nalaze s njihovim e-mailovima). Potreban je pristup internetu Module2800Desc=FTP Client Module2900Name=GeoIPMaxmind 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, ...). +Module3200Name=Nepromjenjivi arhivi +Module3200Desc=Omogućite nepromjenjivi zapisnik poslovnih događaja. Događaji se arhiviraju u stvarnom vremenu. Dnevnik je tablica samo za čitanje vezanih događaja koji se mogu izvesti. Ovaj modul može biti obavezan za neke zemlje. +Module3400Name=Društvene mreže +Module3400Desc=Omogućite polja društvenih mreža trećim stranama i adresama (skype, twitter, facebook, ...). Module4000Name=Djelatnici -Module4000Desc=Human resources management (management of department, employee contracts and feelings) +Module4000Desc=Upravljanje ljudskim resursima (upravljanje odjelom, ugovori zaposlenika i osjećaji) Module5000Name=Multi tvrtka Module5000Desc=Dozvoljava upravljanje multi tvrtkama -Module6000Name=Inter-modules Workflow -Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) +Module6000Name=Tijek rada među modulima +Module6000Desc=Upravljanje tijekom rada između različitih modula (automatsko kreiranje objekta i/ili automatska promjena statusa) Module10000Name=Web lokacije -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=Izradite web stranice (javne) pomoću WYSIWYG uređivača. Ovo je CMS orijentiran na webmastera ili programera (bolje je poznavati HTML i CSS jezik). Samo namjestite svoj web poslužitelj (Apache, Nginx, ...) da pokazuje na namjenski Dolibarr direktorij kako biste ga imali online na internetu s vašim imenom domene. +Module20000Name=Upravljanje zahtjevima za dopust +Module20000Desc=Definirajte i pratite zahtjeve za dopuste zaposlenika +Module39000Name=Lotovi proizvoda +Module39000Desc=Lotovi, serijski brojevi, rokovi trajanja/prodaje za proizvode +Module40000Name=Viševalutno +Module40000Desc=Koristite alternativne valute u cijenama i dokumentima 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 korisnicima PayBox stranicu za online plaćanje (kreditne/debitne kartice). Ovo se može koristiti kako bi se vašim klijentima omogućilo da vrše ad hoc plaćanja ili plaćanja vezana uz određeni Dolibarr objekt (faktura, narudžba itd...) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale module SimplePOS (simple POS). +Module50100Desc=Modul prodajnog mjesta SimplePOS (jednostavan POS). Module50150Name=POS TakePOS -Module50150Desc=Point of Sale module TakePOS (touchscreen POS, for shops, bars or restaurants). +Module50150Desc=Modul prodajnog mjesta TakePOS (touchscreen POS, za trgovine, barove ili restorane). 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 korisnicima PayPal stranicu za online plaćanje (PayPal račun ili kreditne/debitne kartice). Ovo se može koristiti kako bi se vašim klijentima omogućilo da vrše ad hoc plaćanja ili plaćanja vezana uz određeni Dolibarr objekt (faktura, narudžba 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 korisnicima Stripe stranicu za online plaćanje (kreditne/debitne kartice). Ovo se može koristiti kako bi se vašim klijentima omogućilo da vrše ad hoc plaćanja ili plaćanja vezana uz određeni Dolibarr objekt (faktura, narudžba itd...) +Module50400Name=Računovodstvo (dvostruki unos) +Module50400Desc=Računovodstveno upravljanje (dvostruki upisi, podrška Glavne i pomoćne knjige). Izvezite knjigu u nekoliko drugih formata računovodstvenog softvera. 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=Izravan ispis (bez otvaranja dokumenata) korištenjem Cups IPP sučelja (pisač mora biti vidljiv s poslužitelja, a CUPS mora biti instaliran na poslužitelju). Module55000Name=Anketa, Upitnik ili Glasanje -Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) +Module55000Desc=Izradite online ankete, ankete ili glasove (kao što su Doodle, Studs, RDVz itd...) Module59000Name=Marže -Module59000Desc=Module to follow margins +Module59000Desc=Modul za praćenje marži Module60000Name=Provizije Module60000Desc=Modul za upravljanje provizijama Module62000Name=Incoterms -Module62000Desc=Add features to manage Incoterms +Module62000Desc=Dodaj mogučnosti za upravljanje Incoterm-om Module63000Name=Sredstva -Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module63000Desc=Upravljajte resursima (pisači, automobili, sobe,...) za dodjelu događaja Permission11=Pregledaj izlazne račune Permission12=Izradi/promijeni izlazne račune -Permission13=Invalidate customer invoices +Permission13=Poništite račune kupaca Permission14=Ovjeri izlazni račun Permission15=Pošalji izlazni račun e-poštom Permission16=Unesi plaćanja izlaznih računa @@ -714,21 +714,22 @@ 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 -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) +Permission39=Zanemarite minimalnu cijenu +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=Izvezi projekte Permission61=Čitaj intervencije Permission62=Izradi/promjeni intervencije Permission64=Obriši intervencije Permission67=Izvezi intervencije -Permission68=Send interventions by email -Permission69=Validate interventions -Permission70=Invalidate interventions +Permission68=Šaljite intervencije e-poštom +Permission69=Potvrdite intervencije +Permission70=Nevaljane intervencije Permission71=Čitaj članove Permission72=Izradi/izmjeni članove Permission74=Obriši članove @@ -739,6 +740,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 @@ -756,24 +758,25 @@ Permission106=Izvezi slanja Permission109=Obriši slanja Permission111=Čitanje financijskih računa Permission112=Izradi/izmjeni/obriši i usporedi transakcije -Permission113=Setup financial accounts (create, manage categories of bank transactions) -Permission114=Reconcile transactions +Permission113=Podešavanje financijskih računa (kreiranje, upravljanje kategorijama bankovnih transakcija) +Permission114=Uskladi transakcije Permission115=Izvoz transakcija i izvodi Permission116=Prijenos između računa -Permission117=Manage checks dispatching +Permission117=Upravljanje otpremom čekova Permission121=Čitaj veze komitenata s korisnicima Permission122=Izradi/izmjeni komitente povezane s korisnicima Permission125=Obriši komitente povezane s korisnicima Permission126=Izvezi komitente -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=Obriši sve projekte i zadatke (također privatne koji nisu moji) +Permission130=Izradite/izmijenite podatke o plaćanju trećih strana +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=Čitaj pružatelje Permission147=Čitaj statistiku -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders +Permission151=Čitaj trajne naloge +Permission152=Kreiraj/izmjeni zahtjeve trajnih naloga +Permission153=Slanje potvrde trajnih naloga Permission154=Record Credits/Rejections of direct debit payment orders Permission161=Čitaj ugovore/pretplate Permission162=Izradi/izmjeni ugovore/pretplate @@ -787,17 +790,17 @@ Permission173=Obriši putne naloge i troškove Permission174=Čitaj sve putne naloge i troškove Permission178=Izvezi putne naloge i troškove Permission180=Čitaj dobavljače -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=Čitaj narudžbe dobavljača +Permission182=Kreiraj/izmjeni narudžbe dobavljača +Permission183=Ovjeri narudžbe dobavljača +Permission184=Odobri narudžbe dobavljača +Permission185=Narući ili otkaži narudžbu dobavljača +Permission186=Zaprimi narudžbu dobavljača +Permission187=Zatvori narudžbu dobavljača +Permission188=Otkaži narudžbu dobavljača Permission192=Izradi stavke Permission193=Otkaži stavke -Permission194=Read the bandwidth lines +Permission194=Čitaj protočnost stavaka Permission202=Izradi ADSL sapajanje Permission203=Naruči narudžbe spajanja Permission204=Narudžba spajanja @@ -822,13 +825,13 @@ Permission244=Vidi sadržaj skrivenih kategorija Permission251=Čitaj ostale korisnike i grupe PermissionAdvanced251=Čitaj ostale korisnike Permission252=Čitaj dozvole ostalih korisnika -Permission253=Create/modify other users, groups and permissions +Permission253=Izradite/izmijenite druge korisnike, grupe i dopuštenja PermissionAdvanced253=Izradi/izmjeni interne/vanjske korisnike i dozvole Permission254=Izradi/izmjeni samo vanjske korisnike Permission255=Izmjeni lozinku ostalih korisnika Permission256=Obriši ili isključi ostale korisnike -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=Proširite pristup svim trećim stranama I njihovim objektima (ne samo trećim stranama za koje je korisnik prodajni zastupnik).
    Nije učinkovito za vanjske korisnike (uvijek ograničeni na sebe za prijedloge, narudžbe, fakture, ugovore itd.).
    Nije učinkovito za projekte (važna su samo pravila o projektnim dozvolama, vidljivosti i dodjeli). +Permission263=Proširiti pristup svim trećim stranama BEZ njihovih objekata (ne samo trećim osobama za koje je korisnik prodajni zastupnik).
    Nije učinkovito za vanjske korisnike (uvijek ograničeni na sebe za prijedloge, narudžbe, fakture, ugovore itd.).
    Nije učinkovito za projekte (važna su samo pravila o projektnim dozvolama, vidljivosti i dodjeli). Permission271=Čitaj CA Permission272=Čitaj račune Permission273=Izdaj račun @@ -838,10 +841,10 @@ Permission283=Obriši kontakte Permission286=Izvezi kontakte Permission291=Čitaj tarife Permission292=Postavi dozvole na tarifama -Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission293=Izmijenite tarife kupaca +Permission300=Čitanje crtičnih kodova +Permission301=Stvaranje/izmjena crtičnih kodova +Permission302=Izbrišite crtične kodove Permission311=Čitaj usluge Permission312=Dodavanje usluge/pretplate ugovoru Permission331=Čitaj zabilješke @@ -860,11 +863,11 @@ Permission401=Čitaj popuste Permission402=Izradi/izmjeni popuste Permission403=Ovjeri popuste Permission404=Obriši popuste -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=Koristite traku za otklanjanje pogrešaka +Permission511=Pročitajte plaće i plaćanja (vaše i podređene) +Permission512=Kreirajte/izmijenite plaće i plaćanja +Permission514=Izbrišite plaće i isplate +Permission517=Svima pročitajte plaće i isplate Permission519=Izvoz plaća Permission520=Čitaj kredite Permission522=Izradi/izmjeni kredite @@ -873,82 +876,86 @@ 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 -Permission561=Read payment orders by credit transfer -Permission562=Create/modify payment order by credit transfer -Permission563=Send/Transmit payment order by credit transfer +Permission561=Čitanje naloga za plaćanje kreditnim prijenosom +Permission562=Kreirajte/izmijenite nalog za plaćanje kreditnim prijenosom +Permission563=Pošaljite/prenesite nalog za plaćanje kreditnim prijenosom Permission564=Record Debits/Rejections of credit transfer Permission601=Read stickers Permission602=Create/modify stickers Permission609=Delete stickers -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) +Permission611=Pročitajte atribute varijanti +Permission612=Stvaranje/ažuriranje atributa varijanti +Permission613=Brisanje atributa varijanti +Permission650=Pročitajte popise materijala +Permission651=Izradite/ažurirajte popise materijala +Permission652=Izbriši popise materijala +Permission660=Pročitajte proizvodni nalog (MO) +Permission661=Izradi/ažuriraj proizvodni nalog (MO) +Permission662=Izbriši proizvodni nalog (MO) Permission701=Čitaj donacije Permission702=Izradi/izmjeni donacije Permission703=Obriši donacije Permission771=Čitaj izvještaje troškova (vaši i vaših podređenih) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission772=Izrada/izmjena izvješća o troškovima (za vas i vaše podređene) Permission773=Obriši izvještaje troškova Permission775=Odobri izvještaje trška Permission776=Isplati izvještaje troškova -Permission777=Read all expense reports (even those of user not subordinates) -Permission778=Create/modify expense reports of everybody +Permission777=Pročitajte sva izvješća o troškovima (čak i ona korisnika koji nisu podređeni) +Permission778=Izradite/izmijenite izvješća o troškovima svih Permission779=Izvezi izvještaje troškova Permission1001=Čitaj zalihe Permission1002=Izradi/izmjeni skladišta Permission1003=Obriši skladišta Permission1004=Čitaj kretanja zaliha Permission1005=Izradi/izmjeni kretanja zaliha -Permission1011=View inventories -Permission1012=Create new inventory -Permission1014=Validate inventory -Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory +Permission1011=Pregledajte zalihe +Permission1012=Napravite novi inventar +Permission1014=Potvrdite inventar +Permission1015=Dopusti promjenu PMP vrijednosti za proizvod +Permission1016=Izbriši inventar Permission1101=Pregledaj otpremnice -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 +Permission1102=Izradi/izmjeni otpremnice +Permission1104=Ovjeri otpremnice +Permission1109=Obriši otpremnice +Permission1121=Pročitajte prijedloge dobavljača +Permission1122=Izraditi/izmijeniti prijedloge dobavljača +Permission1123=Potvrdite prijedloge dobavljača +Permission1124=Pošaljite prijedloge dobavljača +Permission1125=Izbrišite prijedloge dobavljača +Permission1126=Zatvorite zahtjeve za cijenu dobavljača Permission1181=Čitaj dobavljače -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=Čitaj narudžbe dobavljača +Permission1183=Kreiraj/izmjeni narudžbe dobavljača +Permission1184=Ovjeri narudžbe dobavljača +Permission1185=Odobri narudžbe dobavljača +Permission1186=Naruči narudžbe dobavljača +Permission1187=Potvrđivanje primke narudžbe dobavljača +Permission1188=Obriši narudžbe dobavljača +Permission1189=Označite/poništite oznaku prijema narudžbenice +Permission1190=Odobri (drogo odobrenje) narudžba dobavljača +Permission1191=Izvoz narudžbi dobavljača i njihovih atributa Permission1201=Primi rezultat izvoza Permission1202=Izradi/izmjeni izvoz -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=Čitaj račune dobavljača +Permission1232=Kreiraj/izmjeni račune dobavljača +Permission1233=Ovjeri račune dobavljača +Permission1234=Obriši račune dobavljača +Permission1235=Pošalji račune dobavljača e-poštom +Permission1236=Izvezi račune dobavljača, atribute i plačanja +Permission1237=Izvezite narudžbenice i njihove pojedinosti Permission1251=Pokreni masovni uvoz vanjskih podataka u bazu (učitavanje podataka) Permission1321=Izvezi račune kupaca, atribute i plaćanja -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 otvorite plaćeni račun +Permission1421=Izvoz prodajnih naloga i atributa +Permission1521=Čitajte dokumente +Permission1522=Izbrišite dokumente +Permission2401=Čitanje radnji (događaja ili zadataka) povezanih s njegovim korisničkim računom (ako je vlasnik događaja ili mu je samo dodijeljen) +Permission2402=Stvaranje/izmjena radnji (događaja ili zadataka) povezanih s njegovim korisničkim računom (ako je vlasnik događaja) +Permission2403=Brisanje radnji (događaja ili zadataka) povezanih s njegovim korisničkim računom (ako je vlasnik događaja) Permission2411=Čitaj akcije (događaje ili zadatke) ostalih Permission2412=Izradi/izmjeni akcije (događaje ili zadatke) ostalih Permission2413=Obriši akcije (događaje ili zadatke) ostalih @@ -959,53 +966,55 @@ Permission2503=Pošalji ili obriši dokumente Permission2515=Postavi mape dokumenata Permission2801=Koristi FTP klijent u načinu čitanja (samo pregled i download) Permission2802=Koristi FTP klijent u načinu pisanja (brisanje ili upload) -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 -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=Pročitajte arhivirane događaje i otiske prstiju +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 +Permission4031=Pročitajte osobne podatke +Permission4032=Napišite osobne podatke +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. +Permission10005=Izbrišite sadržaj web stranice +Permission20001=Pročitajte zahtjeve za dopust (vaš dopust i one vaših podređenih) +Permission20002=Izradite/izmijenite svoje zahtjeve za dopust (vaš dopust i one vaših podređenih) Permission20003=Obriši zahtjeve odsutnosti -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=Pročitajte sve zahtjeve za dopust (čak i one korisnika koji nisu podređeni) +Permission20005=Izraditi/izmijeniti zahtjeve za dopust za sve (čak i one korisnika koji nisu podređeni) +Permission20006=Administriranje zahtjeva za dopust (postavljanje i ažuriranje stanja) +Permission20007=Odobravanje zahtjeva za dopust Permission23001=Pročitaj planirani posao Permission23002=Izradi/izmjeni Planirani posao Permission23003=Obriši planirani posao Permission23004=Izvrši planirani posao -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) -Permission50152=Edit sales lines -Permission50153=Edit ordered sales lines +Permission50101=Koristite prodajno mjesto (SimplePOS) +Permission50151=Koristite prodajno mjesto (TakePOS) +Permission50152=Uredite prodajne linije +Permission50153=Uredite naručene prodajne linije Permission50201=Čitaj transakcije Permission50202=Uvezi transakcije -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 +Permission50330=Pročitajte Zapierove objekte +Permission50331=Stvaranje/ažuriranje objekata Zapiera +Permission50332=Izbrišite objekte Zapiera +Permission50401=Povežite proizvode i fakture s konzom +Permission50411=Operacija ćitanje u glavnoj knjizi +Permission50412=Operacija pisanj/ažuriranje u glavnoj knjizi +Permission50414=Operacija brisanje u glavnoj knjizi Permission50415=Delete all operations by year and journal in ledger -Permission50418=Export operations of the ledger +Permission50418=Operacija izvoza u glavnoj knjizi 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 +Permission50430=Definirajte fiskalna razdoblja. Potvrdite transakcije i zatvorite fiskalna razdoblja. +Permission50440=Upravljanje kontnim planom, postavljanje računovodstva +Permission51001=Čitanje imovine +Permission51002=Stvaranje/ažuriranje imovine +Permission51003=Brisanje imovine +Permission51005=Postavljanje vrste imovine Permission54001=Ispis Permission55001=Čitaj ankete Permission55002=Izradi/izmjeni ankete @@ -1016,97 +1025,98 @@ Permission63001=Čitaj sredstva Permission63002=Izradi/izmjeni sredstva Permission63003=Obriši sredstva Permission63004=Poveži sredstava sa događajima agende -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 +Permission64001=Dopusti izravan ispis +Permission67000=Dopustite ispis računa +Permission68001=Pročitajte intracomm izvješće +Permission68002=Izradite/izmijenite intracomm izvješće +Permission68004=Izbriši intracomm izvješće +Permission941601=Pročitajte potvrde +Permission941602=Izradite i modificirajte potvrde +Permission941603=Potvrdite potvrde +Permission941604=Pošaljite potvrde e-poštom +Permission941605=Izvoz potvrdi +Permission941606=Izbrišite potvrde DictionaryCompanyType=Vrste trećih osoba -DictionaryCompanyJuridicalType=Third-party legal entities -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts -DictionaryCanton=States/Provinces +DictionaryCompanyJuridicalType=Pravne osobe treće strane +DictionaryProspectLevel=Razina potencijalnog potencijala za tvrtke +DictionaryProspectContactLevel=Potencijalna razina potencijalnih kontakata +DictionaryCanton=države/pokrajine DictionaryRegion=Regije DictionaryCountry=Zemlje DictionaryCurrency=Valute -DictionaryCivility=Honorific titles +DictionaryCivility=Časne titule DictionaryActions=Tipovi događaja agende -DictionarySocialContributions=Types of social or fiscal taxes +DictionarySocialContributions=Vrste socijalnih ili fiskalnih poreza DictionaryVAT=Stope PDV-a ili stope prodajnih poreza -DictionaryRevenueStamp=Amount of tax stamps +DictionaryRevenueStamp=Iznos poreznih markica DictionaryPaymentConditions=Rok plaćanja -DictionaryPaymentModes=Payment Modes +DictionaryPaymentModes=Načini plaćanja DictionaryTypeContact=Tipovi Kontakata/adresa -DictionaryTypeOfContainer=Website - Type of website pages/containers +DictionaryTypeOfContainer=Web stranica - Vrsta web stranica/kontejnera DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Formati papira -DictionaryFormatCards=Card formats -DictionaryFees=Expense report - Types of expense report lines -DictionarySendingMethods=Metode isporuke -DictionaryStaff=Number of Employees +DictionaryFormatCards=Formati kartica +DictionaryFees=Izvješće o troškovima - Vrste redaka izvješća o troškovima +DictionarySendingMethods=Način isporuke +DictionaryStaff=Broj zaposlenih DictionaryAvailability=Rok isporuke -DictionaryOrderMethods=Order methods +DictionaryOrderMethods=Načini naručivanja DictionarySource=Porjeklo ponuda/narudžbi -DictionaryAccountancyCategory=Personalized groups for reports +DictionaryAccountancyCategory=Personalizirane grupe za izvješća DictionaryAccountancysystem=Modeli za grafikone računa DictionaryAccountancyJournal=Accounting journals -DictionaryEMailTemplates=Email Templates +DictionaryEMailTemplates=Predlošci e-pošte DictionaryUnits=Jedinice -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 -TypeOfUnit=Type of unit +DictionaryMeasuringUnits=Mjerne jedinice +DictionarySocialNetworks=Društvene mreže +DictionaryProspectStatus=Prospektivni status za tvrtke +DictionaryProspectContactStatus=Status potencijalnih kontakata +DictionaryHolidayTypes=Dopust - Vrste dopusta +DictionaryOpportunityStatus=Status voditelja projekta/voditelja +DictionaryExpenseTaxCat=Izvješće o troškovima - Kategorije prijevoza +DictionaryExpenseTaxRange=Izvješće o troškovima - Raspon po kategoriji prijevoza +DictionaryTransportMode=Intracomm izvješće - Način transporta +DictionaryBatchStatus=Status kontrole kvalitete serije/serije proizvoda +DictionaryAssetDisposalType=Vrsta raspolaganja imovinom +TypeOfUnit=Vrsta jedinice SetupSaved=Postavi spremljeno -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=Postavljanje nije spremljeno +BackToModuleList=Povratak na popis modula +BackToDictionaryList=Povratak na popis definicija +TypeOfRevenueStamp=Vrsta porezne marke +VATManagement=Upravljanje porezom na promet +VATIsUsedDesc=Prema zadanim postavkama kada kreirate izglede, fakture, narudžbe itd. Stopa poreza na promet slijedi aktivno standardno pravilo:
    Ako prodavatelj ne podliježe porezu na promet, tada je porez na promet zadana vrijednost 0. Kraj pravila.
    Ako je (zemlja prodavatelja = zemlja kupca), tada je porez na promet prema zadanim postavkama jednak porezu na promet proizvoda u zemlji prodavatelja. Kraj pravila.
    Ako su i prodavatelj i kupac u Europskoj zajednici i roba je proizvod koji se odnosi na prijevoz (prevoz, otprema, zračni prijevoz), zadani PDV je 0. Ovo pravilo ovisi o zemlji prodavatelja - posavjetujte se sa svojim računovođom. PDV treba platiti kupac carinarnici u svojoj zemlji, a ne prodavatelju. Kraj pravila.
    Ako su i prodavatelj i kupac u Europskoj zajednici, a kupac nije tvrtka (s registriranim PDV brojem unutar Zajednice), tada je PDV zadana stopa PDV-a u zemlji prodavatelja. Kraj pravila.
    Ako su i prodavatelj i kupac u Europskoj zajednici, a kupac je tvrtka (s registriranim PDV brojem unutar Zajednice), tada je PDV prema zadanim postavkama 0. Kraj pravila.
    U svakom drugom slučaju predložena zadana vrijednost je porez na promet=0. Kraj pravila. +VATIsNotUsedDesc=Prema zadanim postavkama predloženi porez na promet je 0 koji se može koristiti za slučajeve kao što su udruge, pojedinci ili male tvrtke. +VATIsUsedExampleFR=U Francuskoj to znači tvrtke ili organizacije koje imaju stvarni fiskalni sustav (pojednostavljeno realno ili normalno realno). Sustav u kojem se deklarira PDV. +VATIsNotUsedExampleFR=U Francuskoj to znači udruge koje nisu prijavljene za porez na promet ili tvrtke, organizacije ili slobodne profesije koje su odabrale fiskalni sustav mikro poduzeća (porez na promet u franšizi) i platile franšizni porez na promet bez ikakve prijave poreza na promet. Ovaj izbor će prikazati referencu "Neprimjenjiv porez na promet - art-293B CGI" na fakturama. ##### Local Taxes ##### -TypeOfSaleTaxes=Type of sales tax +TypeOfSaleTaxes=Vrsta poreza na promet LTRate=Stopa LocalTax1IsNotUsed=Nemoj koristit drugi porez -LocalTax1IsUsedDesc=Use a second type of tax (other than first one) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax1IsUsedDesc=Koristi drugi porez (osim PDV) +LocalTax1IsNotUsedDesc=Nemoj koristiti drugi tip poreza (osim PDV) LocalTax1Management=Vrsta drugog poreza LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Nemoj koristiti treći porez -LocalTax2IsUsedDesc=Use a third type of tax (other than first one) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax2IsUsedDesc=Koristi treći porez (osim PDV) +LocalTax2IsNotUsedDesc=Nemoj koristiti drugi tip poreza (osim PDV) LocalTax2Management=Vrsta trećeg poreza LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=Upravljenje 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.
    +LocalTax1IsUsedDescES=Stopa RE prema zadanim postavkama pri kreiranju potencijalnih kupaca, faktura, narudžbi itd. slijedi aktivno standardno pravilo:
    Ako kupac nije podvrgnut RE, RE prema zadanim postavkama=0. Kraj pravila.
    Ako je kupac podvrgnut RE tada RE prema zadanim postavkama. Kraj pravila.
    LocalTax1IsNotUsedDescES=Kao zadano preporučeni RE je 0. Kraj prvila. -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=U Španjolskoj su to profesionalci koji podliježu nekim posebnim odjeljcima španjolskog IAE-a. +LocalTax1IsNotUsedExampleES=U Španjolskoj su oni profesionalci i društva i podliježu određenim odjeljcima španjolskog IAE-a. LocalTax2ManagementES=Upravljanje 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 stopa prema zadanim postavkama pri kreiranju potencijalnih klijenata, faktura, narudžbi itd. slijedi aktivno standardno pravilo:
    Ako prodavač nije podvrgnut IRPF-u, tada je IRPF prema zadanim postavkama=0. Kraj pravila.
    Ako je prodavač podvrgnut IRPF-u, tada je prema zadanim postavkama IRPF. Kraj pravila.
    LocalTax2IsNotUsedDescES=Kao zadano preporučeni IRPF je 0. Kraj prvila. -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) +LocalTax2IsUsedExampleES=U Španjolskoj, slobodnjaci i neovisni stručnjaci koji pružaju usluge i tvrtke koje su odabrale porezni sustav modula. +LocalTax2IsNotUsedExampleES=U Španjolskoj su to tvrtke koje ne podliježu poreznom sustavu modula. +RevenueStampDesc="Porezna marka" ili "prihodna marka" je fiksni porez po fakturi (ne ovisi o iznosu fakture). To također može biti postotak poreza, ali korištenje druge ili treće vrste poreza je bolje za postotak poreza jer porezne marke ne pružaju nikakvo izvješćivanje. Samo nekoliko zemalja koristi ovu vrstu poreza. +UseRevenueStamp=Koristite poreznu marku +UseRevenueStampExample=Vrijednost porezne marke definirana je prema zadanim postavkama u postavci rječnika (%s - %s - %s) CalcLocaltax=Izvještaji o lokalnim porezima CalcLocaltax1=Prodaja - Nabava CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases @@ -1114,20 +1124,20 @@ CalcLocaltax2=Nabava CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases CalcLocaltax3=Prodaja 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 +NoLocalTaxXForThisCountry=Prema postavci poreza (vidi %s - %s - %s), vaša zemlja ne mora koristiti takvu vrstu poreza LabelUsedByDefault=Oznake korištene kao zadane ako ne postoji prijevoda za kod LabelOnDocuments=Oznake na dokumentima -LabelOrTranslationKey=Label or translation key -ValueOfConstantKey=Value of a configuration constant -ConstantIsOn=Option %s is on -NbOfDays=No. of days +LabelOrTranslationKey=Oznaka ili prijevodni ključ +ValueOfConstantKey=Vrijednost konfiguracijske konstante +ConstantIsOn=Opcija %s je uključena +NbOfDays=Broj dana AtEndOfMonth=Na kraju mjeseca -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Uvjek aktivno Upgrade=Nadogradnja MenuUpgrade=Nadogradnja / Proširivanje -AddExtensionThemeModuleOrOther=Deploy/install external app/module +AddExtensionThemeModuleOrOther=Postavite/instalirajte vanjsku aplikaciju/modul WebServer=Web server DocumentRootServer=Web server korjenska mapa DataRootServer=Mapa datoteka @@ -1145,7 +1155,7 @@ DatabaseUser=Korisnik baze podataka DatabasePassword=Lozinka baze podataka Tables=Tabele TableName=Naziv tabele -NbOfRecord=No. of records +NbOfRecord=Broj zapisa Host=Server DriverType=Vrsta upr. programa SummarySystem=Sažetak informacija o sistemu @@ -1157,65 +1167,65 @@ Skin=Skin teme DefaultSkin=Zadani skin teme MaxSizeList=Maks. dužina za popis DefaultMaxSizeList=Zadana maks. dužina popisa -DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) +DefaultMaxSizeShortList=Zadana maksimalna duljina za kratke liste (tj. u kartici korisnika) MessageOfDay=Poruka dana MessageLogin=Poruka na stranici za prijavu -LoginPage=Login page -BackgroundImageLogin=Background image +LoginPage=Stranica za prijavu +BackgroundImageLogin=Pozadinska slika PermanentLeftSearchForm=Stalni obrazac za pretraživanje na ljevom izborniku -DefaultLanguage=Default language -EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships -EnableShowLogo=Show the company logo in the menu +DefaultLanguage=Zadani jezik +EnableMultilangInterface=Omogućite višejezičnu podršku za odnose s kupcima ili dobavljačima +EnableShowLogo=Prikažite logotip tvrtke u izborniku CompanyInfo=Tvrtka/Organizacija -CompanyIds=Company/Organization identities +CompanyIds=Identiteti tvrtke/organizacije CompanyName=Naziv CompanyAddress=Adresa CompanyZip=PBR CompanyTown=Grad CompanyCountry=Zemlja CompanyCurrency=Glavna valuta -CompanyObject=Object of the company -IDCountry=ID country +CompanyObject=Predmet tvrtke +IDCountry=ID zemlje 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). +LogoDesc=Glavni logo tvrtke. Koristit će se u generiranim dokumentima (PDF, ...) +LogoSquarred=Logo (kvadrat) +LogoSquarredDesc=Mora biti ikona u obliku kvadrata (širina = visina). Ovaj logotip će se koristiti kao omiljena ikona ili druga potreba kao za gornju traku izbornika (ako nije onemogućen u postavljanju zaslona). DoNotSuggestPaymentMode=Nije za preporuku NoActiveBankAccountDefined=Nije postavljen aktivni bankovni račun OwnerOfBankAccount=Vlasnik bankovnog računa %s BankModuleNotActive=Modul bankovnih računa nije omoguć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 vezu " %s " +ShowBugTrackLinkDesc=Ostavite prazno da ne biste prikazali ovu vezu, upotrijebite vrijednost 'github' za vezu na Dolibarr projekt ili izravno definirajte url 'https://...' Alerts=Obavijesti -DelaysOfToleranceBeforeWarning=Delay before 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): +DelaysOfToleranceBeforeWarning=Prikazuje se upozorenje za... +DelaysOfToleranceDesc=Postavite odgodu prije nego što se na zaslonu prikaže ikona upozorenja %s za kasni element. +Delays_MAIN_DELAY_ACTIONS_TODO=Planirani događaji (događaji na dnevnom redu) nisu dovršeni +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekt nije na vrijeme zatvoren +Delays_MAIN_DELAY_TASKS_TODO=Planirani zadatak (projektni zadaci) nije dovršen +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Narudžba nije obrađena +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Narudžbenica nije obrađena +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Prijedlog nije zatvoren +Delays_MAIN_DELAY_PROPALS_TO_BILL=Prijedlog nije naplaćen +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Usluga za aktiviranje +Delays_MAIN_DELAY_RUNNING_SERVICES=Istekla usluga +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Neplaćeni račun dobavljača +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Neplaćeni račun kupca +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Čeka se usklađivanje banke +Delays_MAIN_DELAY_MEMBERS=Odgođena članarina +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Čekovni depozit nije izvršen +Delays_MAIN_DELAY_EXPENSEREPORTS=Izvješće o troškovima za odobrenje +Delays_MAIN_DELAY_HOLIDAYS=Zahtjevi za dopust za odobrenje +SetupDescription1=Prije početka korištenja Dolibarra moraju se definirati neki početni parametri i omogućiti/konfigurirati moduli. +SetupDescription2=Sljedeća dva odjeljka su obavezna (dva prva unosa u izborniku Postavke): 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 +SetupDescription4= %s -> %s

    Ovaj softver je paket mnogih modula/aplikacija. Moduli koji se odnose na vaše potrebe moraju biti omogućeni i konfigurirani. Unosi izbornika će se pojaviti s aktivacijom ovih modula. +SetupDescription5=Ostali unosi izbornika za postavljanje upravljaju izbornim parametrima. +SetupDescriptionLink= %s - %s +SetupDescription3b=Osnovni parametri koji se koriste za prilagodbu zadanog ponašanja vaše aplikacije (npr. za značajke vezane uz zemlju). +SetupDescription4b=Ovaj softver je skup mnogih modula/aplikacija. Moduli koji se odnose na vaše potrebe moraju biti omogućeni i konfigurirani. Unosi izbornika će se pojaviti s aktivacijom ovih modula. +AuditedSecurityEvents=Sigurnosni događaji koji se revidiraju +NoSecurityEventsAreAduited=Sigurnosni događaji se ne revidiraju. Možete ih omogućiti iz izbornika %s +Audit=Sigurnosni događaji InfoDolibarr=O Dolibarr instalaciji InfoBrowser=O pregledniku InfoOS=O OS-u @@ -1223,104 +1233,105 @@ InfoWebServer=O Web serveru InfoDatabase=O bazi podataka InfoPHP=O PHP InfoPerf=O izvođenju -InfoSecurity=About Security +InfoSecurity=O sigurnosti BrowserName=Naziv preglednika BrowserOS=OS preglednika ListOfSecurityEvents=Popis Dolibarr sigurnosnih događaja SecurityEventsPurged=Sigurnosni događaji trajno obrisani -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. +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. +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. AvailableModules=Dostupne aplikacije/moduli ToActivateModule=Za aktivaciju modula, idite na podešavanja (Naslovna->Podešavanje->Moduli). SessionTimeOut=Istek za sesije 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. +TriggersAvailable=Dostupni okidači +TriggersDesc=Okidači su datoteke koje će modificirati ponašanje Dolibarr tijeka rada nakon kopiranja u direktorij htdocs/core/triggers . Ostvaruju nove akcije, aktivirane na Dolibarr događajima (kreiranje nove tvrtke, provjera fakture, ...). +TriggerDisabledByName=Okidači u ovoj datoteci onemogućeni su sufiksom -NORUN u njihovom nazivu. +TriggerDisabledAsModuleDisabled=Okidači u ovoj datoteci su onemogućeni jer je modul %s onemogućen. +TriggerAlwaysActive=Okidači u ovoj datoteci su uvijek aktivni, bez obzira na to koji su Dolibarr moduli aktivirani. +TriggerActiveAsModuleActive=Okidači u ovoj datoteci su aktivni jer je modul %s omogućen. +GeneratedPasswordDesc=Odaberite metodu koja će se koristiti za automatski generirane lozinke. DictionaryDesc=Unesite sve referentne podatke. Možete postaviti svoje vrijednosti kao zadane. -ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting only. +ConstDesc=Ova stranica vam omogućuje uređivanje (nadjačavanje) parametara koji nisu dostupni na drugim stranicama. Ovo su uglavnom rezervirani parametri samo za programere/napredno rješavanje problema. MiscellaneousDesc=Svi ostali sigurnosni parametri su definirani ovdje. LimitsSetup=Podešavanje limita/preciznosti -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 +LimitsDesc=Ovdje možete definirati ograničenja, preciznosti i optimizacije koje koristi Dolibarr +MAIN_MAX_DECIMALS_UNIT=Maks. decimale za jedinične cijene +MAIN_MAX_DECIMALS_TOT=Maks. decimale za ukupne cijene 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) +MAIN_ROUNDING_RULE_TOT=Korak raspona zaokruživanja (za zemlje u kojima se zaokruživanje vrši na nečem drugom osim baze 10. Na primjer, stavite 0,05 ako se zaokruživanje vrši za 0,05 koraka) UnitPriceOfProduct=Neto jedinična cijena proizvoda -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. +TotalPriceAfterRounding=Ukupna cijena (bez PDV-a/uključen porez) nakon zaokruživanja +ParameterActiveForNextInputOnly=Parametar vrijedi samo za sljedeći unos +NoEventOrNoAuditSetup=Nije zabilježen nijedan sigurnosni događaj. To je normalno ako revizija nije omogućena na stranici "Postavljanje - Sigurnost - Događaji". +NoEventFoundWithCriteria=Za ovaj kriterij pretraživanja nije pronađen nijedan sigurnosni događaj. SeeLocalSendMailSetup=Provjerite vaše postavke lokalnog sendmail-a -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. +BackupDesc= potpuna sigurnosna kopija Dolibarr instalacije zahtijeva dva koraka. +BackupDesc2=Sigurnosno kopirajte sadržaj direktorija "dokumenti" ( %s ) koji sadrži sve prenesene i generirane datoteke. To će također uključiti sve datoteke ispisa generirane u koraku 1. Ova operacija može trajati nekoliko minuta. +BackupDesc3=Sigurnosno kopirajte strukturu i sadržaj vaše baze podataka ( %s ) u dump datoteku. Za to možete koristiti sljedećeg pomoćnika. +BackupDescX=Arhivirani direktorij treba biti pohranjen na sigurnom mjestu. +BackupDescY=Generirana dump datoteka treba biti pohranjena na sigurnom mjestu. +BackupPHPWarning=Ovom metodom ne može se jamčiti sigurnosna kopija. Preporuča se prethodna. +RestoreDesc=Za vraćanje Dolibarr sigurnosne kopije potrebna su dva koraka. +RestoreDesc2=Vratite datoteku sigurnosne kopije (na primjer, zip datoteku) direktorija "dokumenti" u novu instalaciju Dolibarra ili u ovaj trenutni direktorij dokumenata ( %s ). +RestoreDesc3=Vratite strukturu baze podataka i podatke iz datoteke sigurnosne kopije u bazu podataka nove Dolibarr instalacije ili u bazu podataka ove trenutne instalacije ( %s ). Upozorenje, nakon što je vraćanje završeno, morate koristiti prijavu/lozinku, koja je postojala od vremena sigurnosne kopije/instalacije za ponovno povezivanje.
    Za vraćanje sigurnosne kopije baze podataka u ovu trenutnu instalaciju, možete slijediti ovog pomoćnika. RestoreMySQL=MySQL uvoz ForcedToByAModule=Ovo pravilo je forsirano na %s od aktiviranog modula -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. +ValueIsForcedBySystem=Ovu vrijednost forsira sustav. Ne možete to promijeniti. +PreviousDumpFiles=Postojeće datoteke sigurnosne kopije +PreviousArchiveFiles=Postojeće arhivske datoteke +WeekStartOnDay=Prvi dan u tjednu +RunningUpdateProcessMayBeRequired=Čini se da je potrebno pokrenuti proces nadogradnje (verzija programa %s razlikuje se od verzije baze podataka %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Ovu naredbu morate pokrenuti iz naredbenog retka nakon prijave u ljusku s korisnikom %s ili morate dodati opciju -W na kraju retka za naredbe da biste pružili %s zaporku. YourPHPDoesNotHaveSSLSupport=SSL funkcije nisu dostupne u vašem PHP DownloadMoreSkins=Više skinova za skinuti -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 +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 +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 TranslationUncomplete=Parcijalni prijevod -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=Onemogući palac za vremensku prognozu +MeteoStdMod=Standardni način rada +MeteoStdModEnabled=Standardni način rada omogućen +MeteoPercentageMod=Postotni način rada +MeteoPercentageModEnabled=Postotni način rada je omogućen +MeteoUseMod=Kliknite za korištenje %s TestLoginToAPI=Testiraj prijavu 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=Neke značajke Dolibarra zahtijevaju pristup internetu. Ovdje definirajte parametre internetske veze kao što je pristup putem proxy poslužitelja ako je potrebno. +ExternalAccess=Vanjski/Internet pristup +MAIN_PROXY_USE=Koristite proxy poslužitelj (inače pristup je izravan na internet) +MAIN_PROXY_HOST=Proxy poslužitelj: Ime/Adresa +MAIN_PROXY_PORT=Proxy poslužitelj: Port +MAIN_PROXY_USER=Proxy poslužitelj: Prijava/Korisnik +MAIN_PROXY_PASS=Proxy poslužitelj: Lozinka +DefineHereComplementaryAttributes=Definirajte sve dodatne/prilagođene atribute koji se moraju dodati: %s ExtraFields=Dodatni atributi ExtraFieldsLines=Dodatni atributi (stavke) -ExtraFieldsLinesRec=Complementary attributes (templates invoices lines) +ExtraFieldsLinesRec=Komplementarni atributi (predlošci faktura redaka) ExtraFieldsSupplierOrdersLines=Dodatni atributi (stavke narudžbe) ExtraFieldsSupplierInvoicesLines=Dodatni atributi (stavke računa) -ExtraFieldsThirdParties=Complementary attributes (third party) -ExtraFieldsContacts=Complementary attributes (contacts/address) +ExtraFieldsThirdParties=Komplementarni atributi (treća strana) +ExtraFieldsContacts=Komplementarni atributi (kontakti/adresa) ExtraFieldsMember=Dodatni atributi (član) ExtraFieldsMemberType=Dodatni atributi (vrsta člana) ExtraFieldsCustomerInvoices=Dodatni atributi (računi) -ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices) +ExtraFieldsCustomerInvoicesRec=Komplementarni atributi (predlošci računa) ExtraFieldsSupplierOrders=Dodatni atributi (narudžbe) ExtraFieldsSupplierInvoices=Dodatni atributi (računi) ExtraFieldsProject=Dodatni atributi (projekti) ExtraFieldsProjectTask=Dodatni atributi (zadaci) -ExtraFieldsSalaries=Complementary attributes (salaries) +ExtraFieldsSalaries=Komplementarni atributi (plaće) ExtraFieldHasWrongValue=Atribut %s ima krivu vrijednost. AlphaNumOnlyLowerCharsAndNoSpace=samo alfanumerički i mala slova bez razmaka -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). +SendmailOptionNotComplete=Upozorenje, na nekim Linux sustavima, za slanje e-pošte s vaše e-pošte, postavka izvršenja sendmaila mora sadržavati opciju -ba (parametar mail.force_extra_parameters u vašoj php.ini datoteci). Ako neki primatelji nikada ne primaju e-poštu, pokušajte urediti ovaj PHP parametar s mail.force_extra_parameters = -ba). PathToDocuments=Putanja do dokumenata 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. @@ -1329,102 +1340,105 @@ TranslationKeySearch=Pretraži prijevod po ključi ili tekstu TranslationOverwriteKey=Prepiši prevedeni tekst 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 +TranslationOverwriteDesc2=Možete koristiti drugu karticu koja će vam pomoći da znate koji prijevodni ključ koristiti TranslationString=Prevedeni tekst -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string +CurrentTranslationString=Trenutni prijevod +WarningAtLeastKeyOrTranslationRequired=Potreban je kriterij pretraživanja barem za ključ ili prijevodni niz NewTranslationStringToShow=Novi prevedeni tekst za prikaz -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 +OriginalValueWas=Izvorni prijevod je prepisan. Izvorna vrijednost bila je:

    %s +TransKeyWithoutOriginalValue=Prisilili ste novi prijevod za prijevodni ključ ' %s ' koji ne postoji ni u jednoj jezičnoj datoteci +TitleNumberOfActivatedModules=Aktivirani moduli +TotalNumberOfActivatedModules=Aktivirani moduli: %s / %s YouMustEnableOneModule=Morate omogućiti barem 1 modul -ClassNotFoundIntoPathWarning=Class %s not found in PHP path +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation +ClassNotFoundIntoPathWarning=Klasa %s nije pronađena u PHP putanji YesInSummer=Da u ljeto -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 +OnlyFollowingModulesAreOpenedToExternalUsers=Imajte na umu da su vanjskim korisnicima dostupni samo sljedeći moduli (bez obzira na dopuštenja takvih korisnika) i samo ako su dopuštenja odobrena:
    +SuhosinSessionEncrypt=Suhosin šifrirao pohranu sesije ConditionIsCurrently=Stanje je trenutno %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=Koristite upravljački program %s koji je trenutno najbolji upravljački program. +YouDoNotUseBestDriver=Koristite upravljački program %s, ali se preporučuje upravljački program %s. +NbOfObjectIsLowerThanNoPb=U bazi podataka imate samo %s %s. To ne zahtijeva nikakvu posebnu optimizaciju. +ComboListOptim=Optimizacija učitavanja kombiniranog popisa SearchOptim=Optimizacija pretrage -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 +YouHaveXObjectUseComboOptim=Imate %s %s u bazi podataka. Možete ići u postavljanje modula kako biste omogućili učitavanje kombiniranog popisa na događaj pritisnuti tipku. +YouHaveXObjectUseSearchOptim=Imate %s %s u bazi podataka. Možete dodati konstantu %s na 1 u Početna-Podešavanje-Ostalo. +YouHaveXObjectUseSearchOptimDesc=Ovo ograničava pretragu na početak nizova što omogućava bazi podataka da koristi indekse i trebali biste odmah dobiti odgovor. +YouHaveXObjectAndSearchOptimOn=Imate %s %s u bazi podataka i konstanta %s je postavljena na %s u Početna-Podešavanje-Ostalo. +BrowserIsOK=Koristite web-preglednik %s. Ovaj preglednik je u redu za sigurnost i performanse. +BrowserIsKO=Koristite web-preglednik %s. Poznato je da je ovaj preglednik loš izbor za sigurnost, performanse i pouzdanost. Preporučujemo korištenje Firefoxa, Chromea, Opera ili Safarija. +PHPModuleLoaded=PHP komponenta %s je učitana +PreloadOPCode=Koristi se unaprijed učitani OPKod 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. +AddVatInList=Prikažite PDV broj kupca/dobavljača u kombiniranim popisima. 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. +AskForPreferredShippingMethod=Zatraži za preferiranu metodu slanja za komitente. FieldEdition=Izdanje polja %s FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) GetBarCode=Uzmi barkod -NumberingModules=Numbering models -DocumentModules=Document models +NumberingModules=Modeli numeriranja +DocumentModules=Modeli dokumenata ##### 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=Vratite lozinku generiranu prema internom Dolibarrovom algoritmu: %s znakova koji sadrže zajedničke brojeve i znakove u malim slovima. +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 PasswordPatternDesc=Opis uzorka lozinke ##### Users setup ##### -RuleForGeneratedPasswords=Rules to generate and validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page +RuleForGeneratedPasswords=Pravila za generiranje i provjeru lozinki +DisableForgetPasswordLinkOnLogonPage=Ne prikazuj poveznicu "Zaboravili ste lozinku" na stranici prijave UsersSetup=Podešavanje modula korisnka -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=E-mail je potreban za stvaranje novog korisnika +UserHideInactive=Sakrij neaktivne korisnike sa svih kombiniranih popisa korisnika (ne preporučuje se: to može značiti da nećete moći filtrirati ili pretraživati stare korisnike na nekim stranicama) +UsersDocModules=Predlošci dokumenata za dokumente generirani iz korisničkog zapisa +GroupsDocModules=Predlošci dokumenata za dokumente generirane iz grupnog zapisa ##### HRM setup ##### HRMSetup=Podešavanje modula HRM ##### Company setup ##### CompanySetup=Podešavanje modula tvrtke -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. +CompanyCodeChecker=Mogućnosti za automatsko generiranje kodova kupaca/dobavljača +AccountCodeManager=Mogućnosti za automatsko generiranje obračunskih kodova kupaca/dobavljača +NotificationsDesc=Obavijesti e-poštom mogu se slati automatski za neke Dolibarr događaje.
    Primatelji obavijesti mogu se definirati: +NotificationsDescUser=* po korisniku, jedan po korisnik. +NotificationsDescContact=* po kontaktima treće strane (kupci ili dobavljači), jedan po jedan kontakt. +NotificationsDescGlobal=* ili postavljanjem globalnih adresa e-pošte na stranici za postavljanje modula. ModelModules=Predlošci dokumenta -DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) +DocumentModelOdt=Generirajte dokumente iz OpenDocument predložaka (.ODT / .ODS datoteke iz LibreOffice, OpenOffice, KOffice, TextEdit,...) WatermarkOnDraft=Vodeni žig na skici dokumenta -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules for Professional IDs +JSOnPaimentBill=Aktivirajte značajku za automatsko popunjavanje redova plaćanja na obrascu za plaćanje +CompanyIdProfChecker=Pravila za profesionalne iskaznice MustBeUnique=Mora biti jedinstven? -MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? +MustBeMandatory=Obavezno kreirati treće strane (ako je definiran PDV broj ili vrsta tvrtke)? MustBeInvoiceMandatory=Obavezno za knjiženje računa? -TechnicalServicesProvided=Technical services provided +TechnicalServicesProvided=Osigurane tehničke usluge #####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 +WebDavServer=Korijenski URL poslužitelja %s: %s ##### Webcal setup ##### WebCalUrlForVCalExport=Izvoz poveznice u %s formatu je dostupno na sljedećoj poveznici: %s ##### Invoices ##### BillsSetup=Podešavanje modula računa BillsNumberingModule=Način označavanja računa i odobrenja BillsPDFModules=Model dokumenata računa -BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type -PaymentsPDFModules=Payment documents models +BillsPDFModulesAccordindToInvoiceType=Račun dokumentira modele prema vrsti računa +PaymentsPDFModules=Modeli platnih dokumenata ForceInvoiceDate=Forsiraj datum računa kao datum ovjere -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=Predloženi način plaćanja na fakturi prema zadanim postavkama ako nije definiran na fakturi +SuggestPaymentByRIBOnAccount=Predložite plaćanje isplatom na račun +SuggestPaymentByChequeToAddress=Predložite plaćanje čekom na FreeLegalTextOnInvoices=Slobodan unos teksta na računu WatermarkOnDraftInvoices=Vodeni žig na skici računa (ništa ako se ostavi prazno) PaymentsNumberingModule=Način označavanja plaćanja -SuppliersPayment=Vendor payments -SupplierPaymentSetup=Vendor payments setup +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. ##### Proposals ##### PropalSetup=Podešavanje modula ponuda ProposalsNumberingModules=Modeli brojeva ponuda ProposalsPDFModules=Modeli dokumenta ponuda -SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined on the proposal +SuggestedPaymentModesIfNotDefinedInProposal=Predloženi način plaćanja na prijedlogu prema zadanim postavkama ako nije definiran u prijedlogu FreeLegalTextOnProposal=Slobodan unos teksta na ponudi WatermarkOnDraftProposal=Vodeni žig na skici ponude (ako nije prazno) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Traži odredišni bankovni račun ponude @@ -1437,15 +1451,15 @@ WatermarkOnDraftSupplierProposal=Vodeni žig na skici upita dobavljaču (ništa BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Traži odredišni bankovni račun zahtjeva za cijenom WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Upitaj za izvorno skladište za narudžbe ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Zatražite odredište bankovnog računa narudžbenice ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order +SuggestedPaymentModesIfNotDefinedInOrder=Predloženi način plaćanja za prodajnu narudžbu prema zadanim postavkama ako nije definiran u narudžbi OrdersSetup=Postavke upravljanja narudžbenicama OrdersNumberingModules=Način označavanja narudžba OrdersModelModule=Model dokumenata narudžba FreeLegalTextOnOrders=Slobodan unos teksta na narudžbama WatermarkOnDraftOrders=Vodeni žig na narudžbama (ništa ako se ostavi prazno) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable +ShippableOrderIconInList=Dodajte ikonu na popis narudžbi koja označava može li se narudžba poslati BANK_ASK_PAYMENT_BANK_DURING_ORDER=Traži odredišni bankovni račun narudžbe ##### Interventions ##### InterventionsSetup=Podešavanje modula intervencija @@ -1463,12 +1477,12 @@ WatermarkOnDraftContractCards=Vodeni žig na skicama ugovora (ništa ako se osta MembersSetup=Podešavanje modula članova MemberMainOptions=Glavne opcije AdherentLoginRequired= Upravljanje prijavom svakog korisnika -AdherentMailRequired=Email required to create a new member +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=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=Izradite vanjsko korisničko ime za svaku potvrđenu pretplatu novog člana +VisitorCanChooseItsPaymentMode=Posjetitelj može birati između dostupnih načina plaćanja +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 ##### LDAPSetup=Podešavanje LDAP LDAPGlobalParameters=Globalni parametri @@ -1486,14 +1500,14 @@ LDAPSynchronizeUsers=Organizacija korisnika u LDAP LDAPSynchronizeGroups=Organizacija grupa u LDAP LDAPSynchronizeContacts=Organizacija kontakta u LDAP LDAPSynchronizeMembers=Organizacija članova zaklade u LDAP -LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP +LDAPSynchronizeMembersTypes=Organizacija vrsta članova zaklade u LDAP-u LDAPPrimaryServer=Primarni server LDAPSecondaryServer=Sekundarni server LDAPServerPort=Server Port -LDAPServerPortExample=Standard or StartTLS: 389, LDAPs: 636 +LDAPServerPortExample=Standardni ili StartTLS: 389, LDAP-ovi: 636 LDAPServerProtocolVersion=Verzija protokola LDAPServerUseTLS=Koristi TLS -LDAPServerUseTLSExample=Your LDAP server use StartTLS +LDAPServerUseTLSExample=Vaš LDAP poslužitelj koristi 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) @@ -1510,152 +1524,152 @@ LDAPDnContactActive=Sinhronizacija kontakata LDAPDnContactActiveExample=Aktivirana/Neaktivirana sinhronizacija LDAPDnMemberActive=Sinhronizacija članova LDAPDnMemberActiveExample=Aktivirana/Neaktivirana sinhronizacija -LDAPDnMemberTypeActive=Members types' synchronization +LDAPDnMemberTypeActive=Sinkronizacija tipova članova LDAPDnMemberTypeActiveExample=Aktivirana/Neaktivirana sinhronizacija 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) +LDAPMemberObjectClassListExample=Popis atributa zapisa koji definira objectClass (npr. top,inetOrgPerson ili top,user za aktivni direktorij) +LDAPMemberTypeDn=Dolibarr članovi tipovi DN +LDAPMemberTypepDnExample=Potpuni DN (npr. ou=vrste članova,dc=primjer,dc=com) LDAPMemberTypeObjectClassList=List of objectClass -LDAPMemberTypeObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) +LDAPMemberTypeObjectClassListExample=Popis atributa zapisa koji definira objectClass (npr. top,groupOfUniqueNames) LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) +LDAPUserObjectClassListExample=Popis atributa zapisa koji definira objectClass (npr. top,inetOrgPerson ili top,user za aktivni direktorij) LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) +LDAPGroupObjectClassListExample=Popis atributa zapisa koji definira objectClass (npr. top,groupOfUniqueNames) LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) +LDAPContactObjectClassListExample=Popis atributa zapisa koji definira objectClass (npr. top,inetOrgPerson ili top,user za aktivni direktorij) LDAPTestConnect=Testiranje LDAP veze LDAPTestSynchroContact=Testiranje sinhronizacije kontakata LDAPTestSynchroUser=Testiranje sinhronizacije korisnika LDAPTestSynchroGroup=Testiranje sinhronizacije grupa LDAPTestSynchroMember=Testiranje sinhronizacije članova -LDAPTestSynchroMemberType=Test member type synchronization +LDAPTestSynchroMemberType=Test sinkronizacije tipa člana LDAPTestSearch= Testiranje LDAP pretraživanja LDAPSynchroOK=Testiranje sinhronizacije je uspješno LDAPSynchroKO=Neuspješno testiranje sinhronizacije -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates +LDAPSynchroKOMayBePermissions=Neuspješan test sinkronizacije. Provjerite je li veza s poslužiteljem ispravno konfigurirana i dopušta li LDAP ažuriranja LDAPTCPConnectOK=TCP veza na LDAP server uspješna (Server=%s, Port=%s) LDAPTCPConnectKO=TCP veza na LDAP server neuspješna (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=Povezivanje/autentifikacija na LDAP poslužitelj uspješno (poslužitelj=%s, Port=%s, Admin=%s, Lozinka=%s) +LDAPBindKO=Povezivanje/provjera autentičnosti na LDAP poslužitelj nije uspjela (Poslužitelj=%s, Port=%s, Admin=%s, Lozinka=%s) LDAPSetupForVersion3=LDAP server podešen za verziju 3 LDAPSetupForVersion2=LDAP server podešen za verziju 2 LDAPDolibarrMapping=Dolibarr mapiranje LDAPLdapMapping=LDAP mapiranje LDAPFieldLoginUnix=Prijava (unix) -LDAPFieldLoginExample=Example: uid +LDAPFieldLoginExample=Primjer: uid LDAPFilterConnection=Filter pretraživanja -LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) -LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) +LDAPFilterConnectionExample=Primjer: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Primjer: &(objectClass=groupOfUsers) LDAPFieldLoginSamba=Prijava (samba, activedirectory) -LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldLoginSambaExample=Primjer: samaccountname LDAPFieldFullname=Puno ime -LDAPFieldFullnameExample=Example: cn -LDAPFieldPasswordNotCrypted=Password not encrypted -LDAPFieldPasswordCrypted=Password encrypted -LDAPFieldPasswordExample=Example: userPassword -LDAPFieldCommonNameExample=Example: cn +LDAPFieldFullnameExample=Primjer: cn +LDAPFieldPasswordNotCrypted=Lozinka nije šifrirana +LDAPFieldPasswordCrypted=Lozinka šifrirana +LDAPFieldPasswordExample=Primjer: userPassword +LDAPFieldCommonNameExample=Primjer: cn LDAPFieldName=Naziv -LDAPFieldNameExample=Example: sn +LDAPFieldNameExample=Primjer: sn LDAPFieldFirstName=Ime -LDAPFieldFirstNameExample=Example: givenName +LDAPFieldFirstNameExample=Primjer: givenName LDAPFieldMail=Adresa e-pošte -LDAPFieldMailExample=Example: mail +LDAPFieldMailExample=Primjer: mail LDAPFieldPhone=Broj telefona ured -LDAPFieldPhoneExample=Example: telephonenumber +LDAPFieldPhoneExample=Primjer: telephonenumber LDAPFieldHomePhone=Broj telefona privatni -LDAPFieldHomePhoneExample=Example: homephone +LDAPFieldHomePhoneExample=Primjer: homePhone LDAPFieldMobile=Broj mobitela -LDAPFieldMobileExample=Example: mobile +LDAPFieldMobileExample=Primjer: mobitel LDAPFieldFax=Broj Faxa -LDAPFieldFaxExample=Example: facsimiletelephonenumber +LDAPFieldFaxExample=Primjer: facsimiletelephonenumber LDAPFieldAddress=Ulica -LDAPFieldAddressExample=Example: street +LDAPFieldAddressExample=Primjer: street LDAPFieldZip=PBR -LDAPFieldZipExample=Example: postalcode +LDAPFieldZipExample=Primjer: postalcode LDAPFieldTown=Grad -LDAPFieldTownExample=Example: l +LDAPFieldTownExample=Primjer: l LDAPFieldCountry=Zemlja LDAPFieldDescription=Opis -LDAPFieldDescriptionExample=Example: description +LDAPFieldDescriptionExample=Primjer: description LDAPFieldNotePublic=Javna napomena -LDAPFieldNotePublicExample=Example: publicnote +LDAPFieldNotePublicExample=Primjer: publicnote LDAPFieldGroupMembers= Članovi grupe -LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldGroupMembersExample= Primjer: uniqueMember LDAPFieldBirthdate=Datum rođenja LDAPFieldCompany=Tvrtka -LDAPFieldCompanyExample=Example: o +LDAPFieldCompanyExample=Primjer: o LDAPFieldSid=SID -LDAPFieldSidExample=Example: objectsid +LDAPFieldSidExample=Primjer: objectsid LDAPFieldEndLastSubscription=Datum kraja pretplate LDAPFieldTitle=Mjesto zaposlenja LDAPFieldTitleExample=Primjer : title -LDAPFieldGroupid=Group id -LDAPFieldGroupidExample=Exemple : gidnumber -LDAPFieldUserid=User id -LDAPFieldUseridExample=Exemple : uidnumber -LDAPFieldHomedirectory=Home directory -LDAPFieldHomedirectoryExample=Exemple : homedirectory -LDAPFieldHomedirectoryprefix=Home directory prefix +LDAPFieldGroupid=ID grupe +LDAPFieldGroupidExample=Primjer: gidnumber +LDAPFieldUserid=ID korisnika +LDAPFieldUseridExample=Primjer: uidnumber +LDAPFieldHomedirectory=Početna mapa +LDAPFieldHomedirectoryExample=Primjer: homedirectory +LDAPFieldHomedirectoryprefix=Prefiks početnog imenika LDAPSetupNotComplete=Postavljanje LDAP nije kompletno (idite na ostale tabove) -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) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Nisu navedeni administrator ili lozinka. LDAP pristup bit će anoniman i u načinu samo za čitanje. +LDAPDescContact=Ova stranica vam omogućuje da definirate naziv LDAP atributa u LDAP stablu za svaki podatak koji se nalazi na Dolibarr kontaktima. +LDAPDescUsers=Ova stranica vam omogućuje da definirate naziv LDAP atributa u LDAP stablu za svaki podatak pronađen na Dolibarr korisnicima. +LDAPDescGroups=Ova stranica vam omogućuje da definirate naziv LDAP atributa u LDAP stablu za svaki podatak koji se nalazi na Dolibarr grupama. +LDAPDescMembers=Ova stranica vam omogućuje da definirate naziv LDAP atributa u LDAP stablu za svaki podatak koji se nalazi u modulu članova Dolibarr. +LDAPDescMembersTypes=Ova stranica vam omogućuje da definirate naziv LDAP atributa u LDAP stablu za svaki podatak koji se nalazi na tipovima članova Dolibarr. +LDAPDescValues=Primjeri vrijednosti dizajnirani su za OpenLDAP sa sljedećim učitanim shemama: core.schema, cosine.schema, inetorgperson.schema ). Ako koristite te vrijednosti i OpenLDAP, izmijenite svoju LDAP konfiguracijsku datoteku slapd.conf kako bi se učitale sve te sheme. +ForANonAnonymousAccess=Za provjereni pristup (na primjer, za pristup pisanju) 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. +YouMayFindPerfAdviceHere=Ova stranica pruža neke provjere ili savjete u vezi s izvedbom. +NotInstalled=Nije instalirano. +NotSlowedDownByThis=Nije usporen ovim. +NotRiskOfLeakWithThis=S ovim nema opasnosti od curenja. 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). +NoOPCodeCacheFound=Nije pronađena predmemorija OPCode-a. Možda koristite predmemoriju OPCode koja nije XCache ili eAccelerator (dobro), ili možda nemate OPCode predmemoriju (vrlo loše). 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 +FilesOfTypeCached=HTTP poslužitelj sprema datoteke tipa %s +FilesOfTypeNotCached=HTTP poslužitelj ne sprema datoteke tipa %s +FilesOfTypeCompressed=Datoteke tipa %s komprimiraju HTTP poslužitelj +FilesOfTypeNotCompressed=HTTP poslužitelj ne komprimira datoteke tipa %s CacheByServer=Cache by server -CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=Na primjer korištenjem Apache direktive "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 +CompressionOfResourcesDesc=Na primjer korištenjem Apache direktive "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=Takvo automatsko otkrivanje nije moguće s trenutnim preglednicima +DefaultValuesDesc=Ovdje možete definirati zadanu vrijednost koju želite koristiti pri stvaranju novog zapisa i/ili zadane filtre ili redoslijed sortiranja kada navodite zapise. +DefaultCreateForm=Zadane vrijednosti (za korištenje na obrascima) +DefaultSearchFilters=Zadani filteri pretraživanja +DefaultSortOrder=Zadani redoslijed sortiranja +DefaultFocus=Zadana polja fokusa +DefaultMandatory=Obavezna polja obrasca ##### Products ##### ProductSetup=Podešavanje modula proizvoda ServiceSetup=Podešavanje modula usluga ProductServiceSetup=Podešavanje modula Proizvoda i usluga -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) +NumberOfProductShowInSelect=Maks. broj proizvoda u odabiru ( 0= bez limita) +ViewProductDescInFormAbility=Prikaži opise proizvoda u redcima stavki (inače prikaži opis u skočnom prozoru s opisom alata) +OnProductSelectAddProductDesc=Kako koristiti opis proizvoda kada dodajete proizvod kao redak dokumenta +AutoFillFormFieldBeforeSubmit=Automatski ispunite polje za unos opisa opisom proizvoda +DoNotAutofillButAutoConcat=Nemojte automatski popunjavati polje za unos opisom proizvoda. Opis proizvoda će se automatski povezati s unesenim opisom. +DoNotUseDescriptionOfProdut=Opis proizvoda nikada neće biti uključen u opis redaka dokumenata +MergePropalProductCard=Aktivirajte na kartici Priložene datoteke proizvoda/usluge opciju za spajanje PDF dokumenta proizvoda u PDF azur prijedloga ako je proizvod/usluga u prijedlogu +ViewProductDescInThirdpartyLanguageAbility=Prikaz opisa proizvoda u obrascima na jeziku treće strane (inače na jeziku korisnika) 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) +UseSearchToSelectProduct=Pričekajte dok ne pritisnete tipku prije učitavanja sadržaja kombiniranog popisa proizvoda (ovo može povećati performanse ako imate veliki broj proizvoda, ali je manje prikladno) SetDefaultBarcodeTypeProducts=Zadana vrsta barkoda za korištenje kod proizvoda SetDefaultBarcodeTypeThirdParties=Zadana vrsta barkoda za korištenje kod komitenta -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) +UseUnits=Definirajte mjernu jedinicu za količinu tijekom izdavanja redaka narudžbe, ponude ili fakture +ProductCodeChecker= Modul za generiranje i provjeru koda proizvoda (proizvod ili usluga) ProductOtherConf= Konfiguracija Proizvoda / Usluga IsNotADir=nije mapa! ##### Syslog ##### @@ -1664,12 +1678,12 @@ SyslogOutput=Izlazi dnevnika SyslogFacility=Postrojenje SyslogLevel=Nivo SyslogFilename=Naziv datoteke i putanja -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 +YouCanUseDOL_DATA_ROOT=Možete koristiti DOL_DATA_ROOT/dolibarr.log za datoteku dnevnika u direktoriju Dolibarr "dokumenti". Možete postaviti drugačiji put za pohranu ove datoteke. +ErrorUnknownSyslogConstant=Konstanta %s nije poznata konstanta Syslog +OnlyWindowsLOG_USER=U sustavu Windows bit će podržana samo mogućnost LOG_USER +CompressSyslogs=Kompresija i sigurnosna kopija datoteka dnevnika za otklanjanje pogrešaka (generira modul Dnevnik za otklanjanje pogrešaka) +SyslogFileNumberOfSaves=Broj zapisnika sigurnosne kopije za čuvanje +ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurirajte planirani posao čišćenja za postavljanje učestalosti sigurnosnog kopiranja dnevnika ##### Donations ##### DonationsSetup=Podešavanje modula donacija DonationsReceiptModel=Predložak za donacijsku primku @@ -1688,11 +1702,11 @@ BarcodeDescC39=Barkod tipa C39 BarcodeDescC128=Barkod tipa C128 BarcodeDescDATAMATRIX=Barkod tipa Datamatrix BarcodeDescQRCODE=Barkod tipa QR -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 +GenbarcodeLocation=Alat naredbenog retka za generiranje bar koda (koristi ga interni stroj za neke vrste bar koda). Mora biti kompatibilan s "genbarcode".
    Na primjer: /usr/local/bin/genbarcode BarcodeInternalEngine=Interni uređaj BarCodeNumberManager=Upravitelj za automatsko definiranje barkoda ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=Postavljanje modula plaćanja izravnim terećenjem ##### ExternalRSS ##### ExternalRSSSetup=Podešavanje uvoza vanjskog RSS NewRSS=Novi RSS Feed @@ -1700,53 +1714,53 @@ RSSUrl=RSS URL RSSUrlExample=Zanimljiv RSS Feed ##### Mailing ##### MailingSetup=Podešavanje modula slanja e-pošte -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štu poslanu modulom za slanje e-pošte +MailingEMailError=Povratak e-pošte (Errors-to) za poruke e-pošte s pogreškama MailingDelay=Čekanje u sekundama kod slanja sljedeće poruke ##### Notification ##### -NotificationSetup=Email Notification module setup -NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +NotificationSetup=Postavljanje modula obavijesti e-poštom +NotificationEMailFrom=E-pošta pošiljatelja (Od) za e-poruke koje šalje modul Obavijesti FixedEmailTarget=Primatelj -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=Sakrijte popis primatelja (pretplaćenih kao kontakt) obavijesti u poruci potvrde +NotificationDisableConfirmMessageUser=Sakrijte popis primatelja (pretplaćenih kao korisnik) obavijesti u poruku potvrde +NotificationDisableConfirmMessageFix=Sakrij popis primatelja (pretplaćenih na globalnu e-poštu) obavijesti u poruci potvrde ##### Sendings ##### -SendingsSetup=Shipping module setup +SendingsSetup=Postavljanje modula za otpremu SendingsReceiptModel=Model primke slanja SendingsNumberingModules=Način označavanja slanja SendingsAbility=Podrži liste isporuke za dostave kupcima -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=U većini slučajeva, otpremni listovi se koriste i kao listovi za dostavu kupaca (popis proizvoda za slanje) i listovi koje prima i potpisuje kupac. Stoga je potvrda o isporuci proizvoda duplicirana značajka i rijetko se aktivira. FreeLegalTextOnShippings=Slobodan unos teksta kod isporuka ##### Deliveries ##### DeliveryOrderNumberingModules=Način označavanja primke proizvoda DeliveryOrderModel=Model primke proizvoda -DeliveriesOrderAbility=Support products deliveries receipts +DeliveriesOrderAbility=Potvrde o isporuci proizvoda FreeLegalTextOnDeliveryReceipts=Slobodan unos teksta na primkama ##### FCKeditor ##### AdvancedEditor=Napredni uređivač ActivateFCKeditor=Aktiviraj napredni uređivač 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 +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. -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 +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) +FCKeditorForTicket=Kreiranje/izdanje WYSIWIG-a za tikete ##### Stock ##### -StockSetup=Stock module setup +StockSetup=Podešavanje modula skladišta 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=Izbornik obrisan -Menu=Menu +Menu=Izbornik Menus=Izbornici TreeMenuPersonalized=Personizirani izbornik NotTopTreeMenuPersonalized=Osobni izbornici nisu povezani na gornji izbornik NewMenu=Novi izbornik MenuHandler=Nosioc izbornika MenuModule=Izvorni modul -HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +HideUnauthorizedMenu=Sakrij neovlaštene izbornike i za interne korisnike (inače samo sivi) DetailId=ID Izbornika DetailMenuHandler=Nosioc izbornika gdje da se prikaže novi izbornik DetailMenuModule=Naziv modula ako stavka izbornika dolazi iz modula @@ -1758,22 +1772,22 @@ DetailRight=Uvjet za prikaz neautoroziranih sivih izbornika DetailLangs=Jezična datoteka za oznakz koda prijevoda DetailUser=Interni / Vanjski / Svi Target=Cilj -DetailTarget=Target for links (_blank top opens a new window) +DetailTarget=Cilj za veze (_blank top otvara novi prozor) DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) ModifMenu=Promjena izbornika DeleteMenu=Obriši stavku izbornika -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? +ConfirmDeleteMenu=Jeste li sigurni da želite obrisati stavku izbornika %s? FailedToInitializeMenu=Neuspješna inicijalizacija izbornika ##### Tax ##### TaxSetup=Podešavanje modula poreza, društvenih ili fiskalnih poreza i dividendi OptionVatMode=PDV koji dospjeva -OptionVATDefault=Standard basis +OptionVATDefault=Standardna osnova OptionVATDebitOption=Obračunska 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: +OptionPaymentForProductAndServices=Novčana osnova za proizvode i usluge +OptionPaymentForProductAndServicesDesc=PDV se plaća:
    - na plaćanje robe
    - na plaćanje usluga +SummaryOfVatExigibilityUsedByDefault=Vrijeme stjecanja PDV-a prema zadanim postavkama prema odabranoj opciji: OnDelivery=Po isporuci OnPayment=Po uplati OnInvoice=Po računu @@ -1782,26 +1796,26 @@ SupposedToBeInvoiceDate=Korišten datum računa Buy=Kupi Sell=Prodaj InvoiceDateUsed=Korišten 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=Vaša tvrtka je definirana da ne koristi PDV (Početna - Postavke - Tvrtka/Organizacija), tako da nema opcija PDV-a za postavljanje. +AccountancyCode=Računovodstveni kod AccountancyCodeSell=Konto prodaje AccountancyCodeBuy=Konto 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=Ostavite potvrdni okvir "Automatski kreiraj plaćanje" prazan prema zadanim postavkama kada kreirate novi porez ##### Agenda ##### AgendaSetup=Podešavanje modula događaja i agende -PasswordTogetVCalExport=Key to authorize export link -SecurityKey = Security Key +PasswordTogetVCalExport=Ključ za autorizaciju veze za izvoz +SecurityKey = Sigurnosni ključ PastDelayVCalExport=Ne izvoziti događaj stariji 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_USE_EVENT_TYPE_DEFAULT=Automatski postavite ovu zadanu vrijednost za vrstu događaja u obrascu za kreiranje događaja +AGENDA_DEFAULT_FILTER_TYPE=Automatski postavite ovu vrstu događaja u filter pretraživanja prikaza dnevnog reda +AGENDA_DEFAULT_FILTER_STATUS=Automatski postavite ovaj status za događaje u filteru pretraživanja prikaza dnevnog reda 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_BROWSER_SOUND=Omogući zvučnu obavijest 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_REMINDER_EMAIL_NOTE=Napomena: Učestalost zakazanog posla %s mora biti dovoljna da se osigura da se podsjetnik šalje u točnom trenutku. +AGENDA_SHOW_LINKED_OBJECT=Prikaži povezani objekt u prikazu dnevnog reda ##### Clicktodial ##### ClickToDialSetup=Podešavanje modula ClickToDial 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). @@ -1809,42 +1823,42 @@ ClickToDialDesc=This module change phone numbers, when using a desktop computer, ClickToDialUseTelLink=Koristi samo "tel:" kod telefona 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 +CashDesk=Prodajno mjesto +CashDeskSetup=Postavljanje modula prodajnog mjesta +CashDeskThirdPartyForSell=Zadana generička treća strana za prodaju CashDeskBankAccountForSell=Zadani račun za prijem gotovinskih uplata -CashDeskBankAccountForCheque=Default account to use to receive payments by check +CashDeskBankAccountForCheque=Zadani račun koji se koristi za primanje plaćanja čekom CashDeskBankAccountForCB=Zadani račun za prijem plaćanja kreditnim karticama -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=Zadani bankovni račun koji se koristi za primanje uplata putem SumUpa +CashDeskDoNotDecreaseStock=Onemogućite smanjenje zaliha kada se prodaja vrši s prodajnog mjesta (ako je "ne", smanjenje zaliha se vrši za svaku prodaju obavljenu s POS-a, bez obzira na opciju postavljenu u modulu Zaliha). CashDeskIdWareHouse=Forsiraj i ograniči skladište za skidanje zaliha -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=Skidanje zaliha iz POS-a je onemogućeno +StockDecreaseForPointOfSaleDisabledbyBatch=Smanjenje zaliha u POS-u nije kompatibilno s modulom Serial/Lot management (trenutno aktivan) pa je smanjenje zaliha onemogućeno. +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) ##### Bookmark ##### BookmarkSetup=Podešavanje modula zabilješki -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 +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. +NbOfBoomarkToShow=Maksimalan broj oznaka za prikaz u lijevom izborniku ##### WebServices ##### WebServicesSetup=Podešavanje modula webservisa -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 +WebServicesDesc=Omogućavanjem ovog modula Dolibarr postaje poslužitelj web usluga za pružanje raznih web usluga. +WSDLCanBeDownloadedHere=WSDL datoteke deskriptora pruženih usluga možete preuzeti ovdje +EndPointIs=SOAP klijenti moraju slati svoje zahtjeve na Dolibarr krajnju točku dostupnu na URL ##### API #### ApiSetup=Podešavanje API modula -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 +ApiDesc=Omogućavanjem ovog modula Dolibarr postaje REST poslužitelj za pružanje raznih web usluga. +ApiProductionMode=Omogućite produkcijski način rada (ovo će aktivirati upotrebu predmemorije za upravljanje uslugama) +ApiExporerIs=Možete istražiti i testirati API-je na URL-u +OnlyActiveElementsAreExposed=Izloženi su samo elementi iz omogućenih modula ApiKey=API Key -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 istraživač je onemogućen. API explorer nije potreban za pružanje API usluga. To je alat za razvojne programere za pronalaženje/testiranje REST API-ja. Ako vam je potreban ovaj alat, idite na postavljanje modula API REST da ga aktivirate. ##### Bank ##### BankSetupModule=Podešavanje modula banka -FreeLegalTextOnChequeReceipts=Free text on check receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" +FreeLegalTextOnChequeReceipts=Slobodni tekst na potvrdama o plaćanju +BankOrderShow=Prikaži redoslijed bankovnih računa za zemlje pomoću "detaljnog broja banke" BankOrderGlobal=Generalno BankOrderGlobalDesc=Glavni red prikaza BankOrderES=Španjolski @@ -1853,12 +1867,12 @@ ChequeReceiptsNumberingModule=Check Receipts Numbering Module ##### Multicompany ##### MultiCompanySetup=Više poduzeća module podešavanje ##### 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=Postavljanje modula dobavljača +SuppliersCommandModel=Kompletan predložak narudžbenice +SuppliersCommandModelMuscadet=Kompletan predložak narudžbenice (stara implementacija predloška cornas) +SuppliersInvoiceModel=Potpuni predložak fakture dobavljača +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 @@ -1875,21 +1889,21 @@ TaskModelModule=Model dokumenata izvještaja zadataka 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 +AccountingPeriods=Obračunska razdoblja +AccountingPeriodCard=Obračunsko razdoblje +NewFiscalYear=Novo obračunsko razdoblje +OpenFiscalYear=Otvori obračunsko razdoblje +CloseFiscalYear=Zatvori obračunsko razdoblje +DeleteFiscalYear=Brisanje obračunskog razdoblja +ConfirmDeleteFiscalYear=Jeste li sigurni da želite izbrisati ovo obračunsko razdoblje? +ShowFiscalYear=Prikaži obračunsko razdoblje AlwaysEditable=Uvijek može biti izmjenjen 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=Minimalni broj velikih znakova NbNumMin=Minimalni broj numeričkih znakova NbSpeMin=Minimalni broj specijalnih znakova NbIteConsecutive=Maksimalni broj ponavljajućih znakova -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation +NoAmbiCaracAutoGeneration=Nemojte koristiti dvosmislene znakove ("1","l","i","|","0","O") za automatsko generiranje SalariesSetup=Podešavanje modula plaća SortOrder=Redosljed sortiranja Format=Format @@ -1897,64 +1911,65 @@ TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers IncludePath=Include path (defined into variable %s) ExpenseReportsSetup=Podešavanje modula Izvještaji troškova TemplatePDFExpenseReports=Predlošci dokumenta za generiranje izvještaja troškova -ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules -ExpenseReportNumberingModules=Expense reports numbering module +ExpenseReportsRulesSetup=Postavljanje modula Izvješća o troškovima - Pravila +ExpenseReportNumberingModules=Modul numeriranja izvještaja o troškovima 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* +TemplatesForNotifications=Predlošci za obavijesti +ListOfNotificationsPerUser=Popis automatskih obavijesti po korisniku* 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 +ListOfFixedNotifications=Popis automatskih fiksnih obavijesti +GoOntoUserCardToAddMore=Idite na tab "Obavijesti" korisnika za dodavanje ili micanje obavijesti za korisnike GoOntoContactCardToAddMore=Go to the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Najviše dopušteno -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: +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. 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 +HighlightLinesOnMouseHover=Označite linije tablice kada miš prijeđe 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) -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button -TextTitleColor=Text color of Page title +HighlightLinesChecked=Istaknite boju linije kada je označena (koristite 'ffffff' za bez isticanja) +UseBorderOnTable=Show left-right borders on tables +BtnActionColor=Boja akcijskog gumba +TextBtnActionColor=Boja teksta akcijskog gumba +TextTitleColor=Boja teksta u naslovu stranice LinkColor=Boja poveznica -PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Pritisnite CTRL+F5 na tipkovnici ili izbrišite predmemoriju preglednika nakon promjene ove vrijednosti kako bi bila učinkovita 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=Text color for Table title line -BackgroundTableTitleTextlinkColor=Text color for Table title link line +BackgroundTableTitleTextColor=Boja teksta za naslovni redak tablice +BackgroundTableTitleTextlinkColor=Boja teksta za liniju veze naslova tablice BackgroundTableLineOddColor=Boja pozadine za neparne redove u tablici BackgroundTableLineEvenColor=Boja pozadine za parne redove u tablici 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 +NbAddedAutomatically=Broj dana koji se dodaje brojačima korisnika (automatski) svaki mjesec +EnterAnyCode=Ovo polje sadrži referencu za identifikaciju linije. Unesite bilo koju vrijednost po svom izboru, ali bez posebnih znakova. +Enter0or1=Unesite 0 ili 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) -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sales tax rate +ColorFormat=RGB boja je u HEX formatu, npr.: 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=Položaj reda u kombiniranim popisima +SellTaxRate=Stopa poreza na promet 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. +TemplateForElement=Ovaj predložak e-pošte povezan je s kojom vrstom objekta? Predložak e-pošte dostupan je samo kada koristite gumb "Pošalji e-poštu" iz povezanog objekta. TypeOfTemplate=Vrsta predloška -TemplateIsVisibleByOwnerOnly=Template is visible to owner only -VisibleEverywhere=Visible everywhere -VisibleNowhere=Visible nowhere +TemplateIsVisibleByOwnerOnly=Predložak je vidljiv samo vlasniku +VisibleEverywhere=Posvuda vidljiv +VisibleNowhere=Nigdje vidljivo FixTZ=Ispravak vremenske zone -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) +FillFixTZOnlyIfRequired=Primjer: +2 (ispuni samo ako postoji problem) ExpectedChecksum=Očekivani checksum CurrentChecksum=Trenutni checksum -ExpectedSize=Expected size -CurrentSize=Current size +ExpectedSize=Očekivana veličina +CurrentSize=Trenutna veličina ForcedConstants=Required constant values MailToSendProposal=Ponude kupcima MailToSendOrder=Narudžbenice @@ -1966,29 +1981,30 @@ MailToSendSupplierOrder=Narudžbe dobavljačima MailToSendSupplierInvoice=Ulazni računi MailToSendContract=Ugovori MailToSendReception=Receptions +MailToExpenseReport=Troškovnici MailToThirdparty=Treće osobe MailToMember=Članovi MailToUser=Korisnici MailToProject=Projekti -MailToTicket=Tickets +MailToTicket=Tiketi ByDefaultInList=Prikaži kao zadano na popisu -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=Koristite najnoviju stabilnu verziju 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=Predlošci za dokumente proizvoda -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=Predlošci za dokumente skladišta +ToGenerateCodeDefineAutomaticRuleFirst=Da biste mogli automatski generirati kodove, prvo morate definirati upravitelja koji će automatski definirati broj bar koda. SeeSubstitutionVars=Vidi * napomenu za popis mogućih zamjenskih varijabli -SeeChangeLog=See ChangeLog file (english only) +SeeChangeLog=Pogledajte ChangeLog datoteku (samo na engleskom) AllPublishers=Svi izdavači UnknownPublishers=Nepoznati izdavači AddRemoveTabs=Dodaj ili makni tabove -AddDataTables=Add object tables -AddDictionaries=Add dictionaries tables -AddData=Add objects or dictionaries data +AddDataTables=Dodajte tablice objekata +AddDictionaries=Dodaj definicije +AddData=Dodajte objekte ili definicije AddBoxes=Dodaj dodatke AddSheduledJobs=Dodaj planirani posao AddHooks=Dodaj hooks @@ -1999,224 +2015,295 @@ AddExportProfiles=Dodaj izvozne profile AddImportProfiles=Dodaj uvozne profile AddOtherPagesOrServices=Dodaj ostale stranice ili usluge AddModels=Dodaj predloške dokumenta ili brojanja -AddSubstitutions=Add keys substitutions +AddSubstitutions=Dodajte zamjene ključeva DetectionNotPossible=Detekcija nije moguća -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=Url za dobivanje tokena za korištenje API-ja (nakon što je token primljen, sprema se u korisničku tablicu baze podataka i mora se navesti pri svakom API pozivu) ListOfAvailableAPIs=Popis dostupnih APIa 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=Odredišna stranica -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 +SamePriceAlsoForSharedCompanies=Ako koristite modul za više tvrtki, s izborom "Jedinstvena cijena", cijena će također biti ista za sve tvrtke ako se proizvodi dijele između okruženja +ModuleEnabledAdminMustCheckRights=Modul je aktiviran. Dozvole za aktivirane module dane su samo administratorskim korisnicima. Možda ćete morati ručno dodijeliti dopuštenja drugim korisnicima ili grupama ako je potrebno. +UserHasNoPermissions=Ovaj korisnik nema definirana dopuštenja 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. +BaseCurrency=Referentna valuta tvrtke (idite u postavljanje tvrtke da biste to promijenili) +WarningNoteModuleInvoiceForFrenchLaw=Ovaj modul %s je u skladu s francuskim zakonima (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Ovaj modul %s je u skladu s francuskim zakonima (Loi Finance 2016) jer se modul Nereverzibilni zapisnici automatski aktivira. 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 data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here -HelpOnTooltip=Help text to show on tooltip +MAIN_PDF_MARGIN_LEFT=Lijeva margina u PDF-u +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 +MAIN_PDF_NO_RECIPENT_FRAME=Sakrij obrub na okviru adrese primatelja +MAIN_PDF_HIDE_CUSTOMER_CODE=Sakrij šifru korisnika +MAIN_PDF_HIDE_SENDER_NAME=Sakrij pošiljatelja/naziv tvrtke u bloku adrese +PROPOSAL_PDF_HIDE_PAYMENTTERM=Sakrij uvjete plaćanja +PROPOSAL_PDF_HIDE_PAYMENTMODE=Sakrij način plaćanja +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Dodajte elektronički potpis u PDF +NothingToSetup=Za ovaj modul nije potrebno posebno podešavanje. +SetToYesIfGroupIsComputationOfOtherGroups=Postavite ovo na da ako je ova grupa izračun drugih grupa +EnterCalculationRuleIfPreviousFieldIsYes=Unesite pravilo izračuna ako je prethodno polje postavljeno na Da.
    Na primjer:
    CODEGRP1+CODEGRP2 +SeveralLangugeVariatFound=Pronađeno je nekoliko jezičnih varijanti +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 +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 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 +ChartLoaded=Kontni plan je učitan +SocialNetworkSetup=Postavljanje modula Društvene mreže +EnableFeatureFor=Omogući značajke za %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 +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=Operations are executed from top to bottom order +EmailcollectorOperationsDesc=Operacije se izvode od vrha do dna 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 +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 an agenda event. EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? -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) +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=Nema nove e-pošte (odgovarajući filteri) za obradu +NothingProcessed=Ništa nije učinjeno +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, with no 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 +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=Najnoviji kod rezultata +NbOfEmailsInInbox=Broj e-poruka u izvornom direktoriju +LoadThirdPartyFromName=Učitaj traženje treće strane na %s (samo učitavanje) +LoadThirdPartyFromNameOrCreate=Učitajte pretraživanje treće strane na %s (napravi ako nije pronađeno) +AttachJoinedDocumentsToObject=Spremite priložene datoteke u objektne dokumente ako se referenca objekta pronađe u temi e-pošte. +WithDolTrackingID=Poruka iz razgovora pokrenutog prvom e-poštom poslanom od Dolibarra +WithoutDolTrackingID=Poruka iz razgovora pokrenutog prvom e-poštom NIJE poslanom od Dolibarra +WithDolTrackingIDInMsgId=Poruka poslana iz Dolibarra +WithoutDolTrackingIDInMsgId=Poruka NIJE poslana iz Dolibarra +CreateCandidature=Napravite prijavu za posao FormatZip=PBR -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. +MainMenuCode=Kôd za unos izbornika (glavni izbornik) +ECMAutoTree=Prikaži automatsko ECM stablo +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 -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 -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 +UseSearchToSelectResource=Upotrijebite obrazac za pretraživanje za odabir resursa (umjesto padajućeg popisa). +DisabledResourceLinkUser=Onemogući značajku za povezivanje resursa s korisnicima +DisabledResourceLinkContact=Onemogući značajku za povezivanje resursa s kontaktima +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +ConfirmUnactivation=Potvrdite resetiranje modula +OnMobileOnly=Samo na malom ekranu (pametni telefon). +DisableProspectCustomerType=Onemogućite vrstu treće strane "Potencijalni + Kupac" (tako da treća strana mora biti "Potencijalni" ili "Kupac", ali ne može biti oboje) +MAIN_OPTIMIZEFORTEXTBROWSER=Pojednostavite sučelje za slijepe osobe +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Omogućite ovu opciju ako ste slijepa osoba ili ako koristite aplikaciju iz tekstualnog preglednika kao što je Lynx ili Links. +MAIN_OPTIMIZEFORCOLORBLIND=Promijenite boju sučelja za daltoniste +MAIN_OPTIMIZEFORCOLORBLINDDesc=Omogućite ovu opciju ako ste slijepi za boje, u nekim slučajevima sučelje će promijeniti postavku boje da poveća kontrast. +Protanopia=Protanopija +Deuteranopes=Deuteranopi 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/. +ThisValueCanOverwrittenOnUserLevel=Ovu vrijednost svaki korisnik može prebrisati sa svoje korisničke stranice - kartice '%s' +DefaultCustomerType=Zadana vrsta treće strane za obrazac za kreiranje "Novi kupac". +ABankAccountMustBeDefinedOnPaymentModeSetup=Napomena: Bankovni račun mora biti definiran na modulu svakog načina plaćanja (Paypal, Stripe, ...) da bi ova značajka funkcionirala. +RootCategoryForProductsToSell=Osnovna kategorija proizvoda za prodaju +RootCategoryForProductsToSellDesc=Ako je definirano, samo proizvodi unutar ove kategorije ili djeca ove kategorije bit će dostupni na prodajnom mjestu +DebugBar=Traka za otklanjanje pogrešaka +DebugBarDesc=Alatna traka koja dolazi s mnoštvom alata za pojednostavljenje otklanjanja pogrešaka +DebugBarSetup=Postavljanje trake za otklanjanje pogrešaka +GeneralOptions=Opće opcije +LogsLinesNumber=Broj redaka za prikaz na kartici zapisnika +UseDebugBar=Koristite traku za otklanjanje pogrešaka +DEBUGBAR_LOGS_LINES_NUMBER=Broj zadnjih redaka dnevnika za čuvanje u konzoli +WarningValueHigherSlowsDramaticalyOutput=Upozorenje, veće vrijednosti dramatično usporavaju izlaz +ModuleActivated=Modul %s je aktiviran i usporava sučelje +ModuleActivatedWithTooHighLogLevel=Modul %s je aktiviran s previsokom razinom zapisivanja (pokušajte koristiti nižu razinu za bolje performanse i sigurnost) +ModuleSyslogActivatedButLevelNotTooVerbose=Modul %s je aktiviran i razina dnevnika (%s) je ispravna (ne previše opširno) +IfYouAreOnAProductionSetThis=Ako ste u proizvodnom okruženju, trebali biste ovo svojstvo postaviti na %s. +AntivirusEnabledOnUpload=Antivirus je omogućen na prenesenim datotekama +SomeFilesOrDirInRootAreWritable=Neke datoteke ili direktoriji nisu u načinu samo za čitanje +EXPORTS_SHARE_MODELS=Izvozni modeli se dijele sa svima +ExportSetup=Postavljanje modula izvoza +ImportSetup=Postavljanje uvoza modula +InstanceUniqueID=Jedinstveni ID instance +SmallerThan=Manje od +LargerThan=Veće od +IfTrackingIDFoundEventWillBeLinked=Imajte na umu da ako se ID praćenja objekta pronađe u e-pošti ili ako je e-pošta odgovor na područje e-pošte prikupljeno i povezano s objektom, stvoreni događaj će se automatski povezati s poznatim povezanim objektom. +WithGMailYouCanCreateADedicatedPassword=S GMail računom, ako ste omogućili provjeru valjanosti u 2 koraka, preporučuje se stvaranje namjenske druge lozinke za aplikaciju umjesto upotrebe vlastite lozinke računa s 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 access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +EndPointFor=Krajnja točka za %s : %s +DeleteEmailCollector=Izbriši sakupljač e-pošte +ConfirmDeleteEmailCollector=Jeste li sigurni da želite izbrisati ovaj sakupljač e-pošte? +RecipientEmailsWillBeReplacedWithThisValue=E-poruke primatelja uvijek će biti zamijenjene ovom vrijednošću +AtLeastOneDefaultBankAccountMandatory=Mora biti definiran barem 1 zadani bankovni račun +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. +BaseOnSabeDavVersion=Temeljeno na verziji library-a SabreDAV +NotAPublicIp=Nije javna IP adresa +MakeAnonymousPing=Pošaljite anonimni Ping '+1' na Dolibarr temeljni poslužitelj (učinjeno samo 1 put nakon instalacije) kako biste omogućili zakladi da prebroji broj Dolibarr instalacije. FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled EmailTemplate=Email predložak -EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax -PDF_SHOW_PROJECT=Show project on document -ShowProjectLabel=Project Label +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 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 +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. +RssNote=Napomena: Svaka definicija RSS feeda pruža widget koji morate omogućiti da bi bio dostupan na nadzornoj ploči +JumpToBoxes=Skočite na Postavljanje -> Widgeti 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=Predložak dodan TemplateUpdated=Predložak ažuriran TemplateDeleted=Predložak obrisan -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 +MailToSendEventPush=Email s podsjetnikom na događaj +SwitchThisForABetterSecurity=Za veću sigurnost preporučuje se prebacivanje ove vrijednosti na %s +DictionaryProductNature= Priroda proizvoda +CountryIfSpecificToOneCountry=Država (ako je specifična za određenu zemlju) +YouMayFindSecurityAdviceHere=Ovdje možete pronaći sigurnosne savjete +ModuleActivatedMayExposeInformation=Ovo PHP proširenje može otkriti osjetljive podatke. Ako vam ne treba, isključite ga. +ModuleActivatedDoNotUseInProduction=Omogućen je modul dizajniran za razvoj. Nemojte ga omogućiti u proizvodnom okruženju. +CombinationsSeparator=Znak za razdvajanje za kombinacije proizvoda +SeeLinkToOnlineDocumentation=Pogledajte vezu na online dokumentaciju na gornjem izborniku za primjere +SHOW_SUBPRODUCT_REF_IN_PDF=Ako se koristi značajka "%s" modula %s , prikaži detalje o podproizvodima kompleta u PDF-u. +AskThisIDToYourBank=Obratite se svojoj banci da dobijete ovaj ID +AdvancedModeOnly=Dopuštenje je dostupno samo u načinu naprednog dopuštenja +ConfFileIsReadableOrWritableByAnyUsers=Datoteku conf može čitati ili pisati bilo koji korisnik. Dajte dopuštenje samo korisniku i grupi web poslužitelja. +MailToSendEventOrganization=Organizacija događaja +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 -NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good) -RecommendedValueIs=Recommended: %s +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=Not recommended +NotRecommended=Nije preporučeno 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 +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 +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 +YouShouldSetThisToOff=Trebali biste ovo postaviti na 0 ili isključeno +InstallAndUpgradeLockedBy=Instalacije i nadogradnja su zaključani datotekom %s +OldImplementation=Stara implementacija +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Ako su neki moduli za online plaćanje omogućeni (Paypal, Stripe, ...), dodajte poveznicu u PDF da biste izvršili online plaćanje 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 sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale 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 -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 +DashboardDisableBlockAgenda=Onemogućite palac za dnevni red +DashboardDisableBlockProject=Onemogućite palac za projekte +DashboardDisableBlockCustomer=Onemogućite palac za kupce +DashboardDisableBlockSupplier=Onemogućite palac za dobavljače +DashboardDisableBlockContract=Onemogućite palac za ugovore +DashboardDisableBlockTicket=Onemogućite palac za ulaznice +DashboardDisableBlockBank=Onemogućite palac za banke +DashboardDisableBlockAdherent=Onemogućite palac za članstva +DashboardDisableBlockExpenseReport=Onemogućite palac za izvješća o troškovima +DashboardDisableBlockHoliday=Onemogućite palac za dopuste +EnabledCondition=Uvjet da polje bude omogućeno (ako nije omogućeno, vidljivost će uvijek biti isključena) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ako želite koristiti drugi porez, morate omogućiti i prvi porez na promet +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ako želite koristiti treći porez, morate omogućiti i prvi porez na promet +LanguageAndPresentation=Jezik i prezentacija +SkinAndColors=Tema i boje +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ako želite koristiti drugi porez, morate omogućiti i prvi porez na promet +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ako želite koristiti treći porez, morate omogućiti i prvi porez na promet +PDF_USE_1A=Generirajte PDF u PDF/A-1b formatu +MissingTranslationForConfKey = Nedostaje prijevod za %s +NativeModules=Izvorni moduli +NoDeployedModulesFoundWithThisSearchCriteria=Za ove kriterije pretraživanja nisu pronađeni moduli +API_DISABLE_COMPRESSION=Onemogućite kompresiju API odgovora +EachTerminalHasItsOwnCounter=Svaki terminal koristi svoj brojač. +FillAndSaveAccountIdAndSecret=Prvo ispunite i spremite ID računa i tajnu +PreviousHash=Prethodni hash +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. + +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 +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/hr_HR/agenda.lang b/htdocs/langs/hr_HR/agenda.lang index a978d932a8a..eb5d0208678 100644 --- a/htdocs/langs/hr_HR/agenda.lang +++ b/htdocs/langs/hr_HR/agenda.lang @@ -4,7 +4,7 @@ Actions=Događaji Agenda=Podsjetnik TMenuAgenda=Podsjetnik Agendas=Podsjetnici -LocalAgenda=Default calendar +LocalAgenda=Zadani kalendar ActionsOwnedBy=Događaj u vlasništvu ActionsOwnedByShort=Vlasnik AffectedTo=Dodjeljeno korisniku @@ -12,15 +12,15 @@ Event=Događaj Events=Događaj EventsNb=Broj događaja ListOfActions=Lista događaja -EventReports=Event reports +EventReports=Izvješća o događajima Location=Lokacija -ToUserOfGroup=Event assigned to any user in the group +ToUserOfGroup=Događaj dodijeljen bilo kojem korisniku u grupi EventOnFullDay=Događaji za cijeli dan(e) MenuToDoActions=Svi nepotpuni događaji MenuDoneActions=Svi prekinuti događaji MenuToDoMyActions=Svi nedovršeni događaji MenuDoneMyActions=Moji prekinuti događaji -ListOfEvents=List of events (default calendar) +ListOfEvents=Popis događaja (zadani kalendar) ActionsAskedBy=Događaje izvijestio/la ActionsToDoBy=Događaj dodjeljen ActionsDoneBy=Događaji završeni od strane korisnika @@ -31,42 +31,44 @@ ViewWeek=Tjedni pregled ViewPerUser=Pregled po korisniku ViewPerType=Pregled po tipu AutoActions= Automasko filtriranje -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= Ovdje možete definirati događaje koje želite da Dolibarr automatski kreira u Agendi. Ako ništa nije označeno, samo će ručne radnje biti uključene u zapisnike i prikazane u dnevnom redu. Automatsko praćenje poslovnih radnji izvršenih na objektima (validacija, promjena statusa) neće se spremati. +AgendaSetupOtherDesc= Ova stranica pruža opcije za dopuštanje izvoza vaših Dolibarr događaja u vanjski kalendar (Thunderbird, Google kalendar itd...) AgendaExtSitesDesc=Ova stranica omogućuje postavu vanjskih izvora kalendara kako bi se mogli viditi svoje događaje u Dolibarr podsjetnicima ActionsEvents=Događaji za koje Dolibarr će kreirat akcije u podsjetnicima automatski -EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup. +EventRemindersByEmailNotEnabled=Podsjetnici na događaje putem e-pošte nisu bili omogućeni u postavljanju modula %s. ##### 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 +NewCompanyToDolibarr=Stvorena je treća strana %s +COMPANY_MODIFYInDolibarr=Treća strana %s izmijenjena +COMPANY_DELETEInDolibarr=Treća strana %s izbrisana +ContractValidatedInDolibarr=Potvrđen ugovor %s +CONTRACT_DELETEInDolibarr=Ugovor %s izbrisan +PropalClosedSignedInDolibarr=Prijedlog %s potpisan +PropalClosedRefusedInDolibarr=Prijedlog %s odbijen PropalValidatedInDolibarr=Ponuda %s ovjerena -PropalClassifiedBilledInDolibarr=Proposal %s classified billed +PropalBackToDraftInDolibarr=Proposal %s go back to draft status +PropalClassifiedBilledInDolibarr=Prijedlog %s klasificiran naplaćen InvoiceValidatedInDolibarr=Račun %s ovjeren InvoiceValidatedInDolibarrFromPos=Račun %s ovjeren na POS-u InvoiceBackToDraftInDolibarr=Račun %s vraćen u status skice InvoiceDeleteDolibarr=Račun %s obrisan -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 -MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added -MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified -MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted +InvoicePaidInDolibarr=Faktura %s promijenjena u plaćena +InvoiceCanceledInDolibarr=Račun %s poništen +MemberValidatedInDolibarr=Član %s potvrđen +MemberModifiedInDolibarr=Član %s izmijenjen +MemberResiliatedInDolibarr=Član %s je prekinut +MemberDeletedInDolibarr=Član %s je obrisan +MemberSubscriptionAddedInDolibarr=Dodana je pretplata %s za člana %s +MemberSubscriptionModifiedInDolibarr=Izmijenjena pretplata %s za člana %s +MemberSubscriptionDeletedInDolibarr=Pretplata %s za člana %s izbrisana ShipmentValidatedInDolibarr=Isporuka %s je ovjerena 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 -OrderCreatedInDolibarr=Order %s created +ShipmentDeletedInDolibarr=Pošiljka %s izbrisana +ShipmentCanceledInDolibarr=Pošiljka %s otkazana +ReceptionValidatedInDolibarr=Prijem %s potvrđen +ReceptionClassifyClosedInDolibarr=Reception %s classified closed +OrderCreatedInDolibarr=Narudžba %s kreirana OrderValidatedInDolibarr=Narudžba %s ovjerena OrderDeliveredInDolibarr=Narudžba %s označena kao isporučena OrderCanceledInDolibarr=Narudžba %s otkazana @@ -75,7 +77,7 @@ OrderApprovedInDolibarr=Narudžba %s odobrena OrderRefusedInDolibarr=Narudžba %s je odbijena OrderBackToDraftInDolibarr=Narudžba %s vraćena u status skice ProposalSentByEMail=Commercial proposal %s sent by email -ContractSentByEMail=Contract %s sent by email +ContractSentByEMail=Ugovor %s poslan e-poštom OrderSentByEMail=Sales order %s sent by email InvoiceSentByEMail=Customer invoice %s sent by email SupplierOrderSentByEMail=Purchase order %s sent by email @@ -87,44 +89,44 @@ InterventionSentByEMail=Intervention %s sent by email ProposalDeleted=Ponuda obrisana OrderDeleted=Narudžba obrisana InvoiceDeleted=Račun obrisan -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 +DraftInvoiceDeleted=Nacrt fakture je izbrisan +CONTACT_CREATEInDolibarr=Kontakt %s stvoren +CONTACT_MODIFYInDolibarr=Kontakt %s izmijenjen +CONTACT_DELETEInDolibarr=Kontakt %s je izbrisan +PRODUCT_CREATEInDolibarr=Proizvod %s stvoren +PRODUCT_MODIFYInDolibarr=Proizvod %s izmijenjen +PRODUCT_DELETEInDolibarr=Proizvod %s je izbrisan +HOLIDAY_CREATEInDolibarr=Zahtjev za dopust %s kreiran +HOLIDAY_MODIFYInDolibarr=Zahtjev za dopust %s izmijenjen +HOLIDAY_APPROVEInDolibarr=Zahtjev za dopust %s odobren +HOLIDAY_VALIDATEInDolibarr=Zahtjev za dopust %s potvrđen +HOLIDAY_DELETEInDolibarr=Zahtjev za dopust %s je izbrisan +EXPENSE_REPORT_CREATEInDolibarr=Izvješće o troškovima %s kreirano +EXPENSE_REPORT_VALIDATEInDolibarr=Izvješće o troškovima %s potvrđeno +EXPENSE_REPORT_APPROVEInDolibarr=Izvješće o troškovima %s odobreno +EXPENSE_REPORT_DELETEInDolibarr=Izvještaj o troškovima %s je izbrisan +EXPENSE_REPORT_REFUSEDInDolibarr=Izvješće o troškovima %s odbijeno PROJECT_CREATEInDolibarr=Projekt %s je kreiran PROJECT_MODIFYInDolibarr=Projekt je izmijenjen %s -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_DELETEInDolibarr=Projekt %s je izbrisan +TICKET_CREATEInDolibarr=Tiket %s stvoren +TICKET_MODIFYInDolibarr=Tiket %s izmijenjen +TICKET_ASSIGNEDInDolibarr=Tiket %s dodijeljen +TICKET_CLOSEInDolibarr=Tiket %s zatvoren +TICKET_DELETEInDolibarr=Tiket %s izbrisan +BOM_VALIDATEInDolibarr=BOM potvrđen +BOM_UNVALIDATEInDolibarr=BOM nije validiran +BOM_CLOSEInDolibarr=BOM onemogućen +BOM_REOPENInDolibarr=Ponovno otvaranje BOM-a +BOM_DELETEInDolibarr=BOM je izbrisan +MRP_MO_VALIDATEInDolibarr=MO validiran +MRP_MO_UNVALIDATEInDolibarr=MO postavljen na status nacrta +MRP_MO_PRODUCEDInDolibarr=MO proizveden +MRP_MO_DELETEInDolibarr=MO izbrisan +MRP_MO_CANCELInDolibarr=MO otkazan +PAIDInDolibarr=%s plaćeno ##### End agenda events ##### -AgendaModelModule=Document templates for event +AgendaModelModule=Predlošci dokumenata za događaj DateActionStart=Datum početka DateActionEnd=Datum završetka AgendaUrlOptions1=Možete isto dodati sljedeće paramete za filtriranje prikazanog: @@ -134,7 +136,7 @@ AgendaUrlOptions4=logint=%s to restrict output to actions assigned to use 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 +AgendaShowBirthdayEvents=Rođendani kontakata AgendaHideBirthdayEvents=Sakrij rođendane kontakata Busy=Zauzet ExportDataset_event1=Lista podsjetnika događaja @@ -145,7 +147,7 @@ ExportCal=Izvezi kalendar ExtSites=Uvezi vanjski kalendar ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users. ExtSitesNbOfAgenda=Broj kalendara -AgendaExtNb=Calendar no. %s +AgendaExtNb=Calendar broj %s ExtSiteUrlAgenda=URL za pristup .ical datoteki ExtSiteNoLabel=Bez opisa VisibleTimeRange=Vidljivi vremenski raspon @@ -154,9 +156,9 @@ AddEvent=Izradi događaj MyAvailability=Moja dostupnost ActionType=Vrsta događaja DateActionBegin=Datum početka događaja -ConfirmCloneEvent=Are you sure you want to clone the event %s? +ConfirmCloneEvent=Jeste li sigurni da želite klonirati događaj %s ? RepeatEvent=Ponovi događaj -OnceOnly=Once only +OnceOnly=Samo jednom EveryWeek=Svaki tjedan EveryMonth=Svaki mjesec DayOfMonth=Dan u mjesecu @@ -164,11 +166,11 @@ DayOfWeek=Dan u tjednu DateStartPlusOne=Datum početka + 1 sat 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 +SetAllEventsToFinished=Postavite sve događaje na završene +ReminderTime=Razdoblje podsjetnika prije događaja +TimeType=Vrsta trajanja 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 +AddReminder=Izradite automatsku obavijest o podsjetniku za ovaj događaj +ErrorReminderActionCommCreation=Pogreška pri izradi obavijesti podsjetnika za ovaj događaj +BrowserPush=Obavijest u skočnom prozoru preglednika +ActiveByDefault=Omogućeno prema zadanim postavkama diff --git a/htdocs/langs/hr_HR/assets.lang b/htdocs/langs/hr_HR/assets.lang index e96c94bacc9..edaa0a44445 100644 --- a/htdocs/langs/hr_HR/assets.lang +++ b/htdocs/langs/hr_HR/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=Nova imovina +AccountancyCodeAsset=Accounting code (asset) +AccountancyCodeDepreciationAsset=Accounting code (depreciation asset account) +AccountancyCodeDepreciationExpense=Accounting code (depreciation expense account) +AssetsLines=Imovina DeleteType=Obriš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 imovine +ConfirmDeleteAssetType=Jeste li sigurni da želite izbrisati ovaj model imovine? +ShowTypeCard=Prikaži model '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Assets +ModuleAssetsName=Imovina # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Assets description +ModuleAssetsDesc=Opis imovine # # Admin page # -AssetsSetup = Assets setup -Settings = Postavke -AssetsSetupPage = Assets setup page -ExtraFieldsAssetsType = Complementary attributes (Asset type) -AssetsType=Asset type -AssetsTypeId=Asset type id -AssetsTypeLabel=Asset type label -AssetsTypes=Assets types +AssetSetup=Postavljanje imovine +AssetSetupPage=Stranica za postavljanje imovine +ExtraFieldsAssetModel=Complementary attributes (Asset's model) + +AssetsType=Model imovine +AssetsTypeId=ID modela imovine +AssetsTypeLabel=Oznaka modela imovine +AssetsTypes=Modeli imovine +ASSET_ACCOUNTANCY_CATEGORY=Fixed asset accounting group # # Menu # -MenuAssets = Assets -MenuNewAsset = New asset -MenuTypeAssets = Type assets -MenuListAssets = Popis -MenuNewTypeAssets = Novo -MenuListTypeAssets = Popis +MenuAssets=Imovina +MenuNewAsset=Nova imovina +MenuAssetModels=Model imovine +MenuListAssets=Popis +MenuNewAssetModel=Novi model imovine +MenuListAssetModels=Popis # # Module # -NewAssetType=New asset type -NewAsset=New asset +ConfirmDeleteAsset=Želite li stvarno ukloniti ovu imovinu? + +# +# Tab +# +AssetDepreciationOptions=Opcije amortizacije +AssetAccountancyCodes=Accounting accounts +AssetDepreciation=Amortizacija + +# +# Asset +# +Asset=Imovina +Assets=Imovina +AssetReversalAmountHT=Iznos povrata (bez poreza) +AssetAcquisitionValueHT=Iznos nabave (bez poreza) +AssetRecoveredVAT=Povrat PDV-a +AssetReversalDate=Datum povrata +AssetDateAcquisition=Datum nabave +AssetDateStart=Datum pokretanja +AssetAcquisitionType=Vrsta nabave +AssetAcquisitionTypeNew=Novo +AssetAcquisitionTypeOccasion=Korišteno +AssetType=Vrsta imovine +AssetTypeIntangible=Nematerijalna +AssetTypeTangible=Materijalna +AssetTypeInProgress=U postupku +AssetTypeFinancial=Financijska +AssetNotDepreciated=Nije amortiziran +AssetDisposal=Raspolaganje +AssetConfirmDisposalAsk=Jeste li sigurni da želite odustati od imovine %s ? +AssetConfirmReOpenAsk=Jeste li sigurni da želite ponovno otvoriti sredstvo %s ? + +# +# Asset status +# +AssetInProgress=U postupku +AssetDisposed=Odloženo +AssetRecorded=Obračunato + +# +# Asset disposal +# +AssetDisposalDate=Datum odlaganja +AssetDisposalAmount=Vrijednost odlaganja +AssetDisposalType=Vrsta zbrinjavanja +AssetDisposalDepreciated=Depreciate the year of transfer +AssetDisposalSubjectToVat=Disposal subject to VAT + +# +# Asset model +# +AssetModel=Model imovine +AssetModels=Modeli imovine + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Ekonomska deprecijacija +AssetDepreciationOptionAcceleratedDepreciation=Ubrzana amortizacija (porez) +AssetDepreciationOptionDepreciationType=Vrsta amortizacije +AssetDepreciationOptionDepreciationTypeLinear=Linearna +AssetDepreciationOptionDepreciationTypeDegressive=Degresivna +AssetDepreciationOptionDepreciationTypeExceptional=Iznimna +AssetDepreciationOptionDegressiveRate=Degresivna stopa +AssetDepreciationOptionAcceleratedDepreciation=Ubrzana amortizacija (porez) +AssetDepreciationOptionDuration=Trajanje +AssetDepreciationOptionDurationType=Vrsta trajanja +AssetDepreciationOptionDurationTypeAnnual=Godišnje +AssetDepreciationOptionDurationTypeMonthly=Mjesečno +AssetDepreciationOptionDurationTypeDaily=Dnevno +AssetDepreciationOptionRate=Postotak (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Osnovica amortizacije (bez PDV-a) +AssetDepreciationOptionAmountBaseDeductibleHT=Odbitna osnovica (bez PDV-a) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Ukupni iznos zadnje amortizacije (bez PDV-a) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Ekonomska deprecijacija +AssetAccountancyCodeAsset=Imovina +AssetAccountancyCodeDepreciationAsset=Amortizacija +AssetAccountancyCodeDepreciationExpense=Trošak deprecijacije +AssetAccountancyCodeValueAssetSold=Value of asset disposed +AssetAccountancyCodeReceivableOnAssignment=Receivable on disposal +AssetAccountancyCodeProceedsFromSales=Proceeds from disposal +AssetAccountancyCodeVatCollected=Collected VAT +AssetAccountancyCodeVatDeductible=Recovered VAT on assets +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Ubrzana amortizacija (porez) +AssetAccountancyCodeAcceleratedDepreciation=Račun +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Trošak deprecijacije +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossession/Provision + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Depreciation basis (excl. VAT) +AssetDepreciationBeginDate=Start of depreciation on +AssetDepreciationDuration=Trajanje +AssetDepreciationRate=Postotak (%%) +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/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang index a6667101c7f..a0eded367cb 100644 --- a/htdocs/langs/hr_HR/bills.lang +++ b/htdocs/langs/hr_HR/bills.lang @@ -20,15 +20,15 @@ InvoiceStandardDesc=Ovo je uobičajena vrsta računa. InvoiceDeposit=Račun za predujam InvoiceDepositAsk=Račun za predujam InvoiceDepositDesc=Ovakav račun izdaje se kada je zaprimljen predujam -InvoiceProForma=Proforma invoice -InvoiceProFormaAsk=Proforma invoice -InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. +InvoiceProForma=Predračun +InvoiceProFormaAsk=Predračun +InvoiceProFormaDesc= Predračun je kopija pravog računa, ali nema knjigovodstvenu vrijednost. InvoiceReplacement=Zamjenski račun InvoiceReplacementAsk=Zamjenski račun za račun -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'. +InvoiceReplacementDesc= Zamjenski račun koristi se za potpunu zamjenu fakture bez već primljenog plaćanja.

    Napomena: mogu se zamijeniti samo fakture na kojima nema plaćanja. Ako faktura koju zamjenjujete još nije zatvorena, automatski će biti zatvorena u 'napuštena'. InvoiceAvoir=Storno računa InvoiceAvoirAsk=Storno računa za ispravak računa -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). +InvoiceAvoirDesc= Knjižno odobrenje je negativna faktura koja se koristi za ispravljanje činjenice da račun prikazuje iznos koji se razlikuje od stvarno plaćenog iznosa (npr. kupac je greškom platio previše ili neće platiti cijeli iznos jer su neki proizvodi vraćeni) . invoiceAvoirWithLines=Izradi storno računa sa stavkama iz izvornog računa invoiceAvoirWithPaymentRestAmount=Izradi knjižno odobrenje s preostalim neplaćenim iznosom iz izvornog računa invoiceAvoirLineWithPaymentRestAmount=Knjižno odobrenje za preostali neplaćeni iznos @@ -41,7 +41,7 @@ CorrectionInvoice=Ispravljeni račun UsedByInvoice=Iskorišteno za plaćanje računa %s ConsumedBy=Potrošio NotConsumed=Nije potrošio -NoReplacableInvoice=No replaceable invoices +NoReplacableInvoice=Nema zamjenjivih računa NoInvoiceToCorrect=Nema računa za ispravak InvoiceHasAvoir=Bio je izvor od jednog ili više knjižnih odobrenja CardBill=Račun @@ -55,49 +55,49 @@ CustomerInvoice=Izlazni račun CustomersInvoices=Izlazni računi SupplierInvoice=Ulazni račun SuppliersInvoices=Ulazni računi -SupplierInvoiceLines=Vendor invoice lines +SupplierInvoiceLines=Linije faktura dobavljača SupplierBill=Ulazni račun SupplierBills=Ulazni računi Payment=Plaćanja PaymentBack=Povrat CustomerInvoicePaymentBack=Povrat Payments=Plaćanja -PaymentsBack=Refunds +PaymentsBack=Povrat novca paymentInInvoiceCurrency=u valuti računa PaidBack=Uplaćeno natrag DeletePayment=Izbriši plaćanje ConfirmDeletePayment=Sigurno želite izbrisati ovo plaćanje? -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 +ConfirmConvertToReduc=Želite li ovaj %s pretvoriti u dostupni kredit? +ConfirmConvertToReduc2=Iznos će biti spremljen među svim popustima i može se koristiti kao popust za trenutni ili budući račun za ovog kupca. +ConfirmConvertToReducSupplier=Želite li ovaj %s pretvoriti u dostupni kredit? +ConfirmConvertToReducSupplier2=Iznos će biti spremljen među svim popustima i može se koristiti kao popust za trenutni ili budući račun za ovog dobavljača. +SupplierPayments=Plaćanja dobavljača ReceivedPayments=Primljene uplate ReceivedCustomersPayments=Primljene uplate od kupaca -PayedSuppliersPayments=Payments paid to vendors +PayedSuppliersPayments=Plaćanja dobavljačima ReceivedCustomersPaymentsToValid=Uplate kupaca za ovjeru PaymentsReportsForYear=Izvještaji plaćanja za %s PaymentsReports=Izvještaji plaćanja PaymentsAlreadyDone=Izvršena plaćanja PaymentsBackAlreadyDone=Izvršeni povrati PaymentRule=Način plaćanja -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 +PaymentMode=Način plaćanja +PaymentModes=Načini plaćanja +DefaultPaymentMode=Zadani način plaćanja +DefaultBankAccount=Zadani bankovni račun +IdPaymentMode=Način plaćanja (id) +CodePaymentMode=Način plaćanja (šifra) +LabelPaymentMode=Način plaćanja (oznaka) +PaymentModeShort=Način plaćanja +PaymentTerm=Rok plaćanja PaymentConditions=Rok plaćanja PaymentConditionsShort=Rok plaćanja PaymentAmount=Iznos plaćanja PaymentHigherThanReminderToPay=Iznos plaćanja veći je od iznosa po podsjetniku na plaćanje -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. +HelpPaymentHigherThanReminderToPay=Pažnja, iznos plaćanja jednog ili više računa veći je od nepodmirenog iznosa za plaćanje.
    Uredite svoj unos, u suprotnom potvrdite i razmislite o kreiranju kreditne oznake za primljeni višak za svaku preplaćenu fakturu. +HelpPaymentHigherThanReminderToPaySupplier=Pažnja, iznos plaćanja jednog ili više računa veći je od nepodmirenog iznosa za plaćanje.
    Uredite svoj unos, u suprotnom potvrdite i razmislite o kreiranju kreditnog zapisa za višak plaćen za svaku preplaćenu fakturu. ClassifyPaid=Označi kao plaćeno -ClassifyUnPaid=Classify 'Unpaid' +ClassifyUnPaid=Kategoriziraj 'Neplaćeno' ClassifyPaidPartially=Označi kao djelomično plaćeno ClassifyCanceled=Označi kao napušteno ClassifyClosed=Označi kao zatvoreno @@ -108,138 +108,139 @@ AddBill=Izradi račun ili storno računa AddToDraftInvoices=Dodati u predložak računa DeleteBill=Izbriši račun SearchACustomerInvoice=Traži izlazni račun -SearchASupplierInvoice=Search for a vendor invoice +SearchASupplierInvoice=Potražite fakturu dobavljača CancelBill=Poništi račun SendRemindByMail=Pošalji podsjetnik e-poštom DoPayment=Unesi uplatu -DoPaymentBack=Enter refund -ConvertToReduc=Mark as credit available -ConvertExcessReceivedToReduc=Convert excess received into available credit -ConvertExcessPaidToReduc=Convert excess paid into available discount +DoPaymentBack=Izvrši povrat plaćanja +ConvertToReduc=Pretvori u budući popust +ConvertExcessReceivedToReduc=Pretvorite primljeni višak u raspoloživi kredit +ConvertExcessPaidToReduc=Pretvorite višak plaćenog u raspoloživi popust EnterPaymentReceivedFromCustomer=Unesi uplatu od kupca EnterPaymentDueToCustomer=Napravi DisabledBecauseRemainderToPayIsZero=Isključeno jer preostalo dugovanje je nula. -PriceBase=Base price +PriceBase=Osnovna cijena BillStatus=Stanje računa StatusOfGeneratedInvoices=Status generiranih računa BillStatusDraft=Skica (potrebno potvrditi) BillStatusPaid=Plaćeno -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available -BillStatusConverted=Paid (ready for consumption in final invoice) +BillStatusPaidBackOrConverted=Povrat kredita ili označen kao kredit dostupan +BillStatusConverted=Plaćeno (spremno za konačni račun) BillStatusCanceled=Napušteno BillStatusValidated=Ovjereno (potrebno platiti) BillStatusStarted=Započeto BillStatusNotPaid=Nije plaćeno -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=Nije vraćeno BillStatusClosedUnpaid=Zatvoreno (neplaćeno) BillStatusClosedPaidPartially=Plaćeno (djelomično) BillShortStatusDraft=Skica BillShortStatusPaid=Plaćeno -BillShortStatusPaidBackOrConverted=Refunded or converted -Refunded=Refunded +BillShortStatusPaidBackOrConverted=Povrat novca ili konverzija +Refunded=Povrat novca BillShortStatusConverted=Plaćeno BillShortStatusCanceled=Napušteno BillShortStatusValidated=Ovjereno BillShortStatusStarted=Započeto BillShortStatusNotPaid=Nije plaćeno -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=Nije vraćeno BillShortStatusClosedUnpaid=Zatvoreno BillShortStatusClosedPaidPartially=Plaćeno (djelomično) PaymentStatusToValidShort=Za ovjeru -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 +ErrorVATIntraNotConfigured=OIB nije upisan +ErrorNoPaiementModeConfigured=Nije definirana zadana vrsta plaćanja. Idite na Postavljanje modula fakture da to popravite. +ErrorCreateBankAccount=Napravite bankovni račun, a zatim idite na ploču za postavljanje modula Faktura da definirate vrste plaćanja ErrorBillNotFound=Račun %s ne postoji -ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s. +ErrorInvoiceAlreadyReplaced=Greška! Pokušali ste ovjeriti račun koji mijenja račun %s, a taj račun je već zamijenjen računom %s. ErrorDiscountAlreadyUsed=Greška! Popust je već iskorišten. ErrorInvoiceAvoirMustBeNegative=Greška! Ispravan račun treba imati negativan iznos. -ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have an amount excluding tax positive (or null) +ErrorInvoiceOfThisTypeMustBePositive=Pogreška, ova vrsta fakture mora imati iznos bez poreza pozitivan (ili ništav) ErrorCantCancelIfReplacementInvoiceNotValidated=Greška! Ne može se poništiti račun koji je zamijenjen drugim računom koji je otvoren kao skica. -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ovaj ili drugi dio se već koristi pa se niz popusta ne može ukloniti. +ErrorInvoiceIsNotLastOfSameType=Pogreška: Datum fakture %s je %s. Mora biti zadnji ili jednak posljednjem datumu za iste vrste faktura (%s). Molimo promijenite datum fakture. BillFrom=Od BillTo=Za ActionsOnBill=Radnje na računu -RecurringInvoiceTemplate=Template / Recurring invoice +RecurringInvoiceTemplate=Predložak/ponavljajući račun NoQualifiedRecurringInvoiceTemplateFound=Ne postoji predložak pretplatničkog računa za genereiranje. FoundXQualifiedRecurringInvoiceTemplate=Pronađeno %s predložaka pretplatničkih računa za generiranje. NotARecurringInvoiceTemplate=Ne postoji predložak za pretplatnički račun NewBill=Novi račun -LastBills=Latest %s invoices -LatestTemplateInvoices=Latest %s template invoices -LatestCustomerTemplateInvoices=Latest %s customer template invoices +LastBills=Zadnjih %s računa +LatestTemplateInvoices=Zadnjih %s predložaka računa +LatestCustomerTemplateInvoices=Zadnjih %s predložaka faktura kupaca LatestSupplierTemplateInvoices=Zadnja %s predloška ulaznog računa LastCustomersBills=Zadnja %s izlazna računa LastSuppliersBills=Zadnja %s ulazna računa AllBills=Svi računi -AllCustomerTemplateInvoices=All template invoices +AllCustomerTemplateInvoices=Svi predlošci faktura OtherBills=Ostali računi DraftBills=Skice računa CustomersDraftInvoices=Skice izlaznih računa SuppliersDraftInvoices=Skice ulaznih računa Unpaid=Neplaćeno -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. +ErrorNoPaymentDefined=Pogreška Plaćanje nije definirano +ConfirmDeleteBill=Jeste li sigurni da želite izbrisati ovu fakturu? +ConfirmValidateBill=Jeste li sigurni da želite potvrditi ovu fakturu s referencom %s ? +ConfirmUnvalidateBill=Jeste li sigurni da želite račun %s promijeniti u skicu? +ConfirmClassifyPaidBill=Jeste li sigurni da želite račun %s označiti kao plaćen? +ConfirmCancelBill=Jeste li sigurni da želite poništiti račun %s? +ConfirmCancelBillQuestion=Zašto želite ovaj račun označiti kao napušten? +ConfirmClassifyPaidPartially=Jeste li sigurni da želite račun %s označiti kao plaćen? +ConfirmClassifyPaidPartiallyQuestion=Ova faktura nije u potpunosti plaćena. Koji je razlog zatvaranja ove fakture? +ConfirmClassifyPaidPartiallyReasonAvoir=Preostalo neplaćeno (%s %s) je popust koji se odobrava jer je plaćanje izvršeno prije roka. Reguliramo PDV putem odobrenja. +ConfirmClassifyPaidPartiallyReasonDiscount=Preostalo neplaćeno (%s %s) je popust koji se odobrava jer je plaćanje izvršeno prije roka. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Preostali neplaćeni (%s %s) je garantirani popust zato što je plaćanje izvršeno prije valute plaćanja. Prihvaćam gubitak iznos PDV-a na ovom popustu. ConfirmClassifyPaidPartiallyReasonDiscountVat=Preostali neplaćeni (%s %s) je garantirani popust zato što je plaćanje izvršeno prije valute plaćanja. Potražujem povrat poreza na popustu bez odobrenja. ConfirmClassifyPaidPartiallyReasonBadCustomer=Loš kupac -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Odbitak po banci (provizije posredničke banke) ConfirmClassifyPaidPartiallyReasonProductReturned=Proizvod djelomično vraćen ConfirmClassifyPaidPartiallyReasonOther=Iznos otpisan iz drugih razloga -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=Ovaj je izbor moguć ako je vaša faktura dostavljena s odgovarajućim komentarima. (Primjer «Samo porez koji odgovara stvarno plaćenoj cijeni daje pravo na odbitak») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=U nekim zemljama, taj izbor može biti moguć samo ako vaš račun sadrži ispravne bilješke. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Koristi ovaj izbor ako ni jedan drugi nije odgovarajući -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A bad customer is a customer that refuses to pay his debt. +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Loš kupac je kupac koji odbija platit svoj dug. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ovaj izbor se koristi kada plaćanje nije kompletno zato jer je neki od proizvoda vraćen. -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ćeni iznos je posredničke bankovne naknade , koji se odbija izravno od ispravnog iznosa koji je platio Kupac. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Koristite ovaj izbor ako svi ostali nisu prikladni, na primjer u sljedećoj situaciji:
    - plaćanje nije dovršeno jer su neki proizvodi vraćeni
    - traženi iznos je previše važan jer je popust zaboravljen
    U svim slučajevima potrebno je ispraviti prekomjerno traženi iznos u računovodstvenom sustavu kreiranjem kreditnog zapisa. ConfirmClassifyAbandonReasonOther=Drugo ConfirmClassifyAbandonReasonOtherDesc=Ovaj izbor će biti korišten u svim ostalim slućajevima. Na primjer zato jer planirate kreirati zamjenski račun. -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=Imate li potvrdu ove unesene uplate %s %s ? +ConfirmSupplierPayment=Imate li potvrdu ove unesene uplate %s %s ? +ConfirmValidatePayment=Jeste li sigurni da želite potvrditi plaćanje ? Nakon toga ne možete napraviti nikakvu promjenu. ValidateBill=Ovjeri račun UnvalidateBill=Neovjeren račun -NumberOfBills=No. of invoices +NumberOfBills=Broj računa NumberOfBillsByMonth=Broj računa po mjesecu AmountOfBills=Broj računa -AmountOfBillsHT=Amount of invoices (net of tax) +AmountOfBillsHT=Iznos faktura (bez poreza) AmountOfBillsByMonthHT=Iznos računa po mjesecu (bez PDV-a) 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 +Retainedwarranty=Zadržano jamstvo +AllowedInvoiceForRetainedWarranty=Zadržano jamstvo koje se može koristiti za sljedeće vrste računa +RetainedwarrantyDefaultPercent=Zadržani postotak jamstva 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 +ToPayOn=Za plaćanje na %s +toPayOn=platiti na %s +RetainedWarranty=Zadržano jamstvo +PaymentConditionsShortRetainedWarranty=Uvjeti plaćanja zadržanog jamstva +DefaultPaymentConditionsRetainedWarranty=Zadani uvjeti plaćanja zadržanog jamstva +setPaymentConditionsShortRetainedWarranty=Postavite uvjete plaćanja zadržanog jamstva +setretainedwarranty=Postavljeno zadržano jamstvo +setretainedwarrantyDateLimit=Postavite ograničenje roka zadržavanja jamstva +RetainedWarrantyDateLimit=Ograničenje roka zadržavanja jamstva RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF AlreadyPaid=Plaćeno do sada AlreadyPaidBack=Povrati do sada AlreadyPaidNoCreditNotesNoDeposits=Uplaćeni iznos (bez knjižnih odobrenja i predujmova) Abandoned=Napušteno RemainderToPay=Preostalo za platiti -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=Preostalo neplaćeno, izvorna valuta RemainderToTake=Preostali iznos za primiti -RemainderToTakeMulticurrency=Remaining amount to take, original currency -RemainderToPayBack=Remaining amount to refund -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency +RemainderToTakeMulticurrency=Preostali iznos za preuzimanje, izvorna valuta +RemainderToPayBack=Preostali iznos za povrat +RemainderToPayBackMulticurrency=Preostali iznos za povrat, izvorna valuta NegativeIfExcessRefunded=negative if excess refunded Rest=Preostali iznos AmountExpected=Utvrđen iznos @@ -252,7 +253,7 @@ EscompteOffered=Ponuđen je popust (za plaćanje prije dospijeća) EscompteOfferedShort=Rabat SendBillRef=Račun %s SendReminderBillRef=Račun %s (podsjetnik) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Dostavljanje potvrde o uplati %s NoDraftBills=Nema skica računa NoOtherDraftBills=Nema ostalih skica računa NoDraftInvoices=Nema skica računa @@ -264,12 +265,12 @@ SendReminderBillByMail=Pošalji podsjetnik e-poštom RelatedCommercialProposals=Vezane ponude RelatedRecurringCustomerInvoices=Vezani pretplatnički računi za kupca MenuToValid=Za ovjeru -DateMaxPayment=Payment due on +DateMaxPayment=Plaćanje dospijeva na DateInvoice=Datum računa DatePointOfTax=Porezna stavka NoInvoice=Nema računa -NoOpenInvoice=No open invoice -NbOfOpenInvoices=Number of open invoices +NoOpenInvoice=Nema otvorene fakture +NbOfOpenInvoices=Broj otvorenih faktura ClassifyBill=Svrstavanje računa SupplierBillsToPay=Neplaćeni ulazni računi CustomerBillsUnpaid=Neplaćeni izlazni računi @@ -279,9 +280,11 @@ SetMode=Izaberi način plaćanja SetRevenuStamp=Postavi prihodovnu markicu Billed=Zaračunato RecurringInvoices=Pretplatnički računi -RecurringInvoice=Recurring invoice +RecurringInvoice=Ponavljajuća faktura RepeatableInvoice=Predložak računa RepeatableInvoices=Predlošci računa +RecurringInvoicesJob=Generiranje ponavljajućih faktura (prodajnih faktura) +RecurringSupplierInvoicesJob=Generiranje ponavljajućih faktura (faktura za nabavu) Repeatable=Predložak Repeatables=Predlošci ChangeIntoRepeatableInvoice=Pretvori u predložak računa @@ -304,8 +307,8 @@ AddGlobalDiscount=Izradi apsolutni popust EditGlobalDiscounts=Izmjeni apsolutni popust AddCreditNote=Izradi storno računa ShowDiscount=Prikaži popust -ShowReduc=Show the discount -ShowSourceInvoice=Show the source invoice +ShowReduc=Pokažite popust +ShowSourceInvoice=Prikaži izvornu fakturu RelativeDiscount=Relativni popust GlobalDiscount=Opći popust CreditNote=Storno računa @@ -321,13 +324,13 @@ AbsoluteDiscountUse=Ovaj kredit se može koristit na računu prije ovjere CreditNoteDepositUse=Invoice must be validated to use this kind of credits NewGlobalDiscount=Novi apsolutni popust NewRelativeDiscount=Novi relativni popust -DiscountType=Discount type +DiscountType=Vrsta popusta NoteReason=Bilješka/Razlog ReasonDiscount=Razlog DiscountOfferedBy=Odobrio -DiscountStillRemaining=Discounts or credits available -DiscountAlreadyCounted=Discounts or credits already consumed -CustomerDiscounts=Customer discounts +DiscountStillRemaining=Dostupni su popusti ili odobrenja +DiscountAlreadyCounted=Popusti ili krediti već uračunati +CustomerDiscounts=Popusti za kupce SupplierDiscounts=Popusti dobavljača BillAddress=Adresa za naplatu HelpEscompte=This discount is a discount granted to customer because payment was made before term. @@ -342,10 +345,10 @@ InvoiceDateCreation=Datum izrade računa InvoiceStatus=Stanje računa InvoiceNote=Bilješka računa InvoicePaid=Račun plaćen -InvoicePaidCompletely=Paid completely +InvoicePaidCompletely=Plaćeno u potpunosti 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 +OrderBilled=Narudžba naplaćena +DonationPaid=Donacija plaćena PaymentNumber=Broj plaćanja RemoveDiscount=Ukloni popust WatermarkOnDraftBill=Vodeni žig na računu (ništa ako se ostavi prazno) @@ -353,18 +356,18 @@ InvoiceNotChecked=Račun nije izabran ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? DisabledBecauseReplacedInvoice=Radnja obustavljena jer je račun zamjenjen. 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 +NbOfPayments=Broj uplata SplitDiscount=Podijeli popust u 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=Jeste li sigurni da želite ovaj popust od %s %s podijeliti na dva manja popusta? +TypeAmountOfEachNewDiscount=Unesite iznos za svaki od dva dijela: +TotalOfTwoDiscountMustEqualsOriginal=Ukupan iznos dva nova popusta mora biti jednak izvornom iznosu popusta. +ConfirmRemoveDiscount=Jeste li sigurni da želite ukloniti ovaj popust? RelatedBill=Povezani račun RelatedBills=Povezani račun RelatedCustomerInvoices=Povezani izlazni računi -RelatedSupplierInvoices=Related vendor invoices +RelatedSupplierInvoices=Povezani računi dobavljača LatestRelatedBill=Posljednju vezani računi -WarningBillExist=Warning, one or more invoices already exist +WarningBillExist=Upozorenje, jedna ili više faktura već postoje MergingPDFTool=Alat za spajanje PDF dokumenta AmountPaymentDistributedOnInvoice=Plaćeni iznos je prosljeđen po računu PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company @@ -374,32 +377,32 @@ ListOfNextSituationInvoices=Popis narednih računa etapa 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 ? +RemoveSituationFromCycle=Uklonite ovu fakturu iz ciklusa +ConfirmRemoveSituationFromCycle=Ukloniti ovu fakturu %s iz ciklusa? ConfirmOuting=Confirm outing FrequencyPer_d=Svakih %s dana FrequencyPer_m=Svakih %s mjeseci FrequencyPer_y=Svakih %s godina -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 +FrequencyUnit=Jedinica učestalosti +toolTipFrequency=Primjeri:
    Postavite 7 / dan: izdaje novi račun svakih 7 dana
    Postavite 3 / mjesec: izdaje novi račun svaka 3 mjeseca NextDateToExecution=Datum generiranja sljedećeg računa -NextDateToExecutionShort=Date next gen. +NextDateToExecutionShort=Datum sljedeće gen. DateLastGeneration=Datum zadnjeg generiranja -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 +DateLastGenerationShort=Datum najnovije gen. +MaxPeriodNumber=Maks. broj generiranja računa +NbOfGenerationDone=Broj već generiranih računa +NbOfGenerationOfRecordDone=Broj već generiranih zapisa +NbOfGenerationDoneShort=Broj odrađenih generiranja +MaxGenerationReached=Dostignut je maksimalni broj generiranja InvoiceAutoValidate=Automatska ovjera računa GeneratedFromRecurringInvoice=Pretplatnički račun generiran iz predloška %s DateIsNotEnough=Datum nije još dosegnut InvoiceGeneratedFromTemplate=Račun %s generiran iz predloška pretplatničkog računa %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 +GeneratedFromTemplate=Generirano iz predloška fakture %s +WarningInvoiceDateInFuture=Upozorenje, datum fakture je veći od trenutnog datuma +WarningInvoiceDateTooFarInFuture=Upozorenje, datum fakture je predaleko od trenutnog datuma +ViewAvailableGlobalDiscounts=Pogledajte dostupne popuste +GroupPaymentsByModOnReports=Grupirajte plaćanja prema načinu rada na izvješćima # PaymentConditions Statut=Status PaymentConditionShortRECEP=Dospijeće po primitku @@ -418,14 +421,14 @@ PaymentConditionShortPT_ORDER=Narudžba PaymentConditionPT_ORDER=Po nalogu PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% unaprijed, 50%% nakon isporuke -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 +PaymentConditionShort10D=10 dana +PaymentCondition10D=10 dana +PaymentConditionShort10DENDMONTH=10 dana od kraja mjeseca +PaymentCondition10DENDMONTH=U roku od 10 dana nakon isteka mjeseca +PaymentConditionShort14D=14 dana +PaymentCondition14D=14 dana +PaymentConditionShort14DENDMONTH=14 dana od kraja mjeseca +PaymentCondition14DENDMONTH=U roku od 14 dana nakon kraja mjeseca FixAmount=Fixed amount - 1 line with label '%s' VarAmount=Iznos u postotku (%% od ukupno) VarAmountOneLine=Iznos u postotku (%% ukupno) - jedan redak s oznakom '%s' @@ -434,7 +437,7 @@ VarAmountAllLines=Variable amount (%% tot.) - all lines from origin PaymentTypeVIR=Bankovni prijenos PaymentTypeShortVIR=Bankovni prijenos PaymentTypePRE=Bezgotovinski bankovni prijenos -PaymentTypeShortPRE=Debit payment order +PaymentTypeShortPRE=Isplata PaymentTypeLIQ=Gotovina PaymentTypeShortLIQ=Gotovina PaymentTypeCB=Kreditna kartica @@ -443,8 +446,8 @@ PaymentTypeCHQ=Ček PaymentTypeShortCHQ=Ček PaymentTypeTIP=TIP (Dokumenti uz plaćanje) PaymentTypeShortTIP=TIP Plaćanje -PaymentTypeVAD=Online payment -PaymentTypeShortVAD=Online payment +PaymentTypeVAD=Internet plaćanje +PaymentTypeShortVAD=Internet plaćanje PaymentTypeTRA=Skica banke PaymentTypeShortTRA=Skica PaymentTypeFAC=Faktor @@ -455,20 +458,20 @@ BankDetails=Bankovni podaci BankCode=Oznaka Banke DeskCode=Branch code BankAccountNumber=IBAN -BankAccountNumberKey=Checksum +BankAccountNumberKey=Kontrolni zbroj Residence=Adresa IBANNumber=IBAN IBAN=IBAN -CustomerIBAN=IBAN of customer -SupplierIBAN=IBAN of vendor +CustomerIBAN=IBAN kupca +SupplierIBAN=IBAN dobavljača BIC=BIC/SWIFT -BICNumber=BIC/SWIFT code +BICNumber=BIC/SWIFT kod ExtraInfos=Dodatni podaci RegulatedOn=Regulirano od ChequeNumber=Ček broj ChequeOrTransferNumber=broj čeka/prijenosa ChequeBordereau=Provjera zadanog -ChequeMaker=Check/Transfer sender +ChequeMaker=Čekovni/transakcijski pošiljatelj ChequeBank=Banka CheckBank=Ček NetToBePaid=Netto za platiti @@ -482,9 +485,10 @@ PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to SendTo=Pošalji PaymentByTransferOnThisBankAccount=Plaćanje na sljedeći bankovni račun VATIsNotUsedForInvoice=Ne primjenjivo VAT čl.-293B CGI-a +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Po primjeni zakona 80.335 od 12.05.80 LawApplicationPart2=Roba ostaje vlasništvo -LawApplicationPart3=the seller until full payment of +LawApplicationPart3=prodavača sve do izvršenja cjelokupnog plaćanja LawApplicationPart4=njihove cijene. LimitedLiabilityCompanyCapital=SARL s kapitalom od UseLine=Primjeni @@ -493,43 +497,43 @@ UseCredit=Koristite kredit UseCreditNoteInInvoicePayment=Smanji iznos za plaćanje s ovim kreditom MenuChequeDeposits=Check Deposits MenuCheques=Čekovi -MenuChequesReceipts=Check receipts +MenuChequesReceipts=Potvrde čekova NewChequeDeposit=Novi polog -ChequesReceipts=Check receipts -ChequesArea=Check deposits area -ChequeDeposits=Check deposits +ChequesReceipts=Potvrde čekova +ChequesArea=Sučelje depozita čekova +ChequeDeposits=Depoziti čekova Cheques=Čekovi DepositId=ID depozita NbCheque=Broj čekova -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=Ovaj %s je pretvoren u %s +UsBillingContactAsIncoiveRecipientIfExist=Koristite kontakt/adresu s tipom "kontakt za naplatu" umjesto adrese treće strane kao primatelja faktura ShowUnpaidAll=Prikaži sve neplaćene račune ShowUnpaidLateOnly=Prikaži samo račune kojima kasni plaćanje PaymentInvoiceRef=Plaćanje računa %s ValidateInvoice=Ovjeri račun -ValidateInvoices=Validate invoices +ValidateInvoices=Potvrdite račune Cash=Gotovina Reported=Odgođeno DisabledBecausePayments=Nije moguće obzirom da postoje neka plaćanja CantRemovePaymentWithOneInvoicePaid=Plaćanje se ne može izbrisati obzirom da postoji barem jedan račun koji je označen kao plaćen -CantRemovePaymentVATPaid=Can't remove payment since VAT declaration is classified paid -CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +CantRemovePaymentVATPaid=Nije moguće ukloniti plaćanje jer je PDV prijava klasificirana kao plaćena +CantRemovePaymentSalaryPaid=Nije moguće ukloniti plaćanje jer je plaća klasificirana kao isplaćena ExpectedToPay=Očekivano plaćanje -CantRemoveConciliatedPayment=Can't remove reconciled payment +CantRemoveConciliatedPayment=Nije moguče uklanjanje usaglašenog plaćanja PayedByThisPayment=Plaćeno s ovom uplatom -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=Automatski klasificirajte sve standardne, predujme ili zamjenske fakture kao "Plaćene" kada se plaćanje izvrši u cijelosti. +ClosePaidCreditNotesAutomatically=Automatski klasificirajte sva knjižna odobrenja kao "Plaćena" kada se povrat u potpunosti izvrši. +ClosePaidContributionsAutomatically=Automatski klasificirajte sve socijalne ili fiskalne doprinose kao "Plaćene" kada se plaćanje izvrši u cijelosti. +ClosePaidVATAutomatically=Automatski klasificirajte prijavu PDV-a kao "Plaćeno" kada se plaćanje izvrši u cijelosti. +ClosePaidSalaryAutomatically=Automatski klasificirajte plaću kao "Isplaćenu" kada se plaćanje izvrši u cijelosti. +AllCompletelyPayedInvoiceWillBeClosed=Svi računi bez ostatka za plaćanje bit će automatski zatvoreni sa statusom "Plaćeno". ToMakePayment=Plati ToMakePaymentBack=Povrat ListOfYourUnpaidInvoices=Popis neplaćenih računa NoteListOfYourUnpaidInvoices=Napomena: Ovaj popis sadrži samo račune za komitente kojima ste vi prodajni predstavnik -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 +RevenueStamp=Prihodovna markica +YouMustCreateInvoiceFromThird=Ova opcija je dostupna samo kod kreiranja računa s tab-a "kupac" kod treće stranke +YouMustCreateInvoiceFromSupplierThird=Ova opcija jedino je moguća kada izrađujete račun iz kartice "dobavljači" trećih osoba YouMustCreateStandardInvoiceFirstDesc=Kako biste izradili novi predložak računa morate prvo izraditi običan račun i onda ga promijeniti u "predložak" PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (old implementation of Sponge template) PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template @@ -538,17 +542,17 @@ TerreNumRefModelDesc1=Return number in the format %syymm-nnnn for standard invoi 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=Račun koji počinje s $syymm već postoji i nije kompatibilan s ovim modelom označivanja. Maknite ili promjenite kako biste aktivirali ovaj modul. 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 +EarlyClosingReason=Razlog za rano zatvaranje +EarlyClosingComment=Rano zatvaranje ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Predstavnik praćenja računa kupca TypeContact_facture_external_BILLING=Kontakt osoba za račun TypeContact_facture_external_SHIPPING=Kontakt osoba za isporuku TypeContact_facture_external_SERVICE=Kontakt osoba za usluge kupcima -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 +TypeContact_invoice_supplier_internal_SALESREPFOLL=Predstavnik koji prati račun dobavljača +TypeContact_invoice_supplier_external_BILLING=Osoba za račune pri dobavljaču +TypeContact_invoice_supplier_external_SHIPPING=Osoba za pošiljke pri dobavljaču +TypeContact_invoice_supplier_external_SERVICE=Osoba za usluge pri dobavljaču # Situation invoices InvoiceFirstSituationAsk=Račun prve etape InvoiceFirstSituationDesc=Račun etape je vezan za etape vezane za napredovanje, npr. napredovanje gradnje. Svaka etapa je vezana za račun. @@ -562,11 +566,11 @@ ModifyAllLines=Izmjeni sve stavke CreateNextSituationInvoice=Izradi sljedeću etapu ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice. -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note. +ErrorOutingSituationInvoiceCreditNote=Nije moguće poslati povezano knjižno odobrenje. NotLastInCycle=Ovaj račun nije posljednji u ciklusu i ne smije se mijenjati DisabledBecauseNotLastInCycle=Sljedeća etapa već postoji DisabledBecauseFinal=Ova etapa je konačna -situationInvoiceShortcode_AS=AS +situationInvoiceShortcode_AS=KAO situationInvoiceShortcode_S=N CantBeLessThanMinPercent=Napredak ne može biti manje nego što je vrijednost u prijašnjoj etapi. NoSituations=Nema otvorenih etapa @@ -574,36 +578,37 @@ InvoiceSituationLast=Konačni i glavni račun PDFCrevetteSituationNumber=Etapa N°%s PDFCrevetteSituationInvoiceLineDecompte=Račun etapa - IZRAČUN PDFCrevetteSituationInvoiceTitle=Račun etape -PDFCrevetteSituationInvoiceLine=Situation N°%s: Inv. N°%s on %s +PDFCrevetteSituationInvoiceLine=Etapa N°%s : Rč. N°%s na %s TotalSituationInvoice=Ukupno etapa invoiceLineProgressError=Napredak stavke računa ne može biti veći od ili jednak kao sljedećoj stavci -updatePriceNextInvoiceErrorUpdateline=Error: update price on invoice line: %s +updatePriceNextInvoiceErrorUpdateline=Pogreška: ažuriranje cijene u retku fakture: %s ToCreateARecurringInvoice=Za kreiranje ponavljajućih računa za ovaj ugovor, prvo izradite skicu računa, onda konvertirajte istu u predložak računa i definirajte učestalost generiranja budućih računa. ToCreateARecurringInvoiceGene=Za generiranje budućih računa normalno ili ručno, idite na izbornik %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. +ToCreateARecurringInvoiceGeneAuto=Ako trebate imati takve fakture automatski generirane, zamolite svog administratora da omogući i postavi modul %s . Imajte na umu da se obje metode (ručna i automatska) mogu koristiti zajedno bez rizika od dupliciranja. DeleteRepeatableInvoice=Izbriši predložak računa -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 +ConfirmDeleteRepeatableInvoice=Jeste li sigurni da želite izbrisati predložak fakture? +CreateOneBillByThird=Izradite jednu fakturu po trećoj strani (inače, jednu fakturu po odabranom objektu) +BillCreated=%s generirane fakture +BillXCreated=Generirana faktura %s +StatusOfGeneratedDocuments=Status generiranja dokumenta +DoNotGenerateDoc=Nemojte generirati datoteku dokumenta +AutogenerateDoc=Automatsko generiranje datoteke dokumenta +AutoFillDateFrom=Postavite datum početka za liniju usluge s datumom fakture +AutoFillDateFromShort=Postavite datum početka +AutoFillDateTo=Postavite datum završetka za liniju usluge sa sljedećim datumom fakture +AutoFillDateToShort=Postavite datum završetka +MaxNumberOfGenerationReached=Maksimalni broj gen. dosegnuto BILL_DELETEInDolibarr=Račun obrisan -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 +BILL_SUPPLIER_DELETEInDolibarr=Račun dobavljača je izbrisan +UnitPriceXQtyLessDiscount=Jedinična cijena x količina - Popust +CustomersInvoicesArea=Područje za naplatu kupaca +SupplierInvoicesArea=Područje za obračun dobavljača +SituationTotalRayToRest=Ostatak platiti bez poreza 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 +SituationTotalProgress=Ukupni napredak %d %% +SearchUnpaidInvoicesWithDueDate=Traži neplaćene fakture s rokom dospijeća = %s +NoPaymentAvailable=Nije moguće plaćanje za %s +PaymentRegisteredAndInvoiceSetToPaid=Plaćanje je registrirano i faktura %s postavljena na plaćeno +SendEmailsRemindersOnInvoiceDueDate=Pošaljite podsjetnik e-poštom za neplaćene fakture +MakePaymentAndClassifyPayed=Zabilježite plaćanje +BulkPaymentNotPossibleForInvoice=Skupno plaćanje nije moguće za fakturu %s (loš tip ili status) diff --git a/htdocs/langs/hr_HR/blockedlog.lang b/htdocs/langs/hr_HR/blockedlog.lang index 12f28737d49..ccd06c58dfc 100644 --- a/htdocs/langs/hr_HR/blockedlog.lang +++ b/htdocs/langs/hr_HR/blockedlog.lang @@ -1,5 +1,5 @@ BlockedLog=Unalterable Logs -Field=Field +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). @@ -7,24 +7,24 @@ 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 +DownloadBlockChain=Preuzmite otiske prstiju 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 +ShowDetails=Prikaži pohranjene pojedinosti 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_ADD_TO_BANK=Plaćanje je dodano banci 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_VALIDATE=Račun kupca potvrđen logBILL_SENTBYMAIL=Customer invoice send by mail logBILL_DELETE=Customer invoice logically deleted logMODULE_RESET=Module BlockedLog was disabled @@ -40,18 +40,18 @@ BlockedLogBillDownload=Customer invoice download BlockedLogBillPreview=Customer invoice preview BlockedlogInfoDialog=Log Details ListOfTrackedEvents=List of tracked events -Fingerprint=Fingerprint +Fingerprint=Otisak prsta 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. +DataOfArchivedEvent=Puni podaci arhiviranog događaja +ImpossibleToReloadObject=Izvorni objekt (tip %s, id %s) nije povezan (pogledajte stupac 'Puni podaci' da biste dobili nepromjenjive spremljene podatke) +BlockedLogAreRequiredByYourCountryLegislation=Modul nepromjenjivih dnevnika može biti potreban prema zakonodavstvu vaše zemlje. Onemogućavanje ovog modula može učiniti sve buduće transakcije nevažećima u odnosu na zakon i korištenje legalnog softvera jer se ne mogu potvrditi poreznom revizijom. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Modul Nepromjenjivi zapisnici aktiviran je zbog zakonodavstva vaše zemlje. Onemogućavanje ovog modula može učiniti sve buduće transakcije nevažećima u odnosu na zakon i korištenje legalnog softvera jer se ne mogu potvrditi poreznom revizijom. +BlockedLogDisableNotAllowedForCountry=Popis zemalja u kojima je upotreba ovog modula obavezna (samo da spriječite greškom onemogućavanje modula, ako se vaša zemlja nalazi na ovom popisu, onemogućavanje modula nije moguće bez prethodnog uređivanja ovog popisa. Također imajte na umu da će omogućavanje/onemogućavanje ovog modula vodite trag u nepromjenjivi dnevnik). +OnlyNonValid=Nevažeće +TooManyRecordToScanRestrictFilters=Previše zapisa za skeniranje/analizu. Molimo ograničite popis s restriktivnijim filtrima. +RestrictYearToExport=Ograničite mjesec/godinu za izvoz +BlockedLogEnabled=Omogućen je sustav za praćenje događaja u nepromjenjive zapisnike +BlockedLogDisabled=Sustav za praćenje događaja u nepromjenjive zapisnike onemogućen je nakon nekog snimanja. Sačuvali smo poseban otisak prsta da pratimo lanac kao pokvaren +BlockedLogDisabledBis=Sustav za praćenje događaja u nepromjenjive zapisnike je onemogućen. To je moguće jer još nije napravljena evidencija. diff --git a/htdocs/langs/hr_HR/bookmarks.lang b/htdocs/langs/hr_HR/bookmarks.lang index 1c08f3e3168..306d97ad5a2 100644 --- a/htdocs/langs/hr_HR/bookmarks.lang +++ b/htdocs/langs/hr_HR/bookmarks.lang @@ -6,17 +6,17 @@ ListOfBookmarks=Lista zabilješki EditBookmarks=Prikaži/izmjeni zabilješke NewBookmark=Nova zabilješka ShowBookmark=Prikaži zabilješku -OpenANewWindow=Open a new tab -ReplaceWindow=Replace current tab -BookmarkTargetNewWindowShort=New tab -BookmarkTargetReplaceWindowShort=Current tab -BookmarkTitle=Bookmark name +OpenANewWindow=Otvorite novu karticu +ReplaceWindow=Zamijenite trenutnu karticu +BookmarkTargetNewWindowShort=Nova kartica +BookmarkTargetReplaceWindowShort=Trenutna kartica +BookmarkTitle=Naziv oznake UrlOrLink=URL -BehaviourOnClick=Behaviour when a bookmark URL is selected +BehaviourOnClick=Ponašanje kada je odabran URL oznake CreateBookmark=Izradi zabilješku -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=Postavite naziv za oznaku +UseAnExternalHttpLinkOrRelativeDolibarrLink=Koristite vanjsku/apsolutnu vezu (https://externalurl.com) ili internu/relativnu vezu (/mypage.php). Također možete koristiti telefon kao što je tel:0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Odaberite hoće li se povezana stranica otvoriti na trenutnoj kartici ili na novoj kartici BookmarksManagement=Upravljanje zabilješkama -BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +BookmarksMenuShortCut=Ctrl + Shift + M +NoBookmarks=Nema definiranih oznaka diff --git a/htdocs/langs/hr_HR/boxes.lang b/htdocs/langs/hr_HR/boxes.lang index 2ea4998e4d0..01a58513637 100644 --- a/htdocs/langs/hr_HR/boxes.lang +++ b/htdocs/langs/hr_HR/boxes.lang @@ -1,8 +1,8 @@ # 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 glavnim poslovnim objektima u bazi podataka +BoxLoginInformation=Podaci za prijavu +BoxLastRssInfos=RSS informacije +BoxLastProducts=Zadnjih %s proizvoda/usluga BoxProductsAlertStock=Upozorenja stanja zaliha za proizvode BoxLastProductsInContract=Zadnja %s ugovorenih proizvoda/usluga BoxLastSupplierBills=Zadnji ulazni računi @@ -18,40 +18,40 @@ BoxLastActions=Zadnje akcije BoxLastContracts=Zadnji ugovori BoxLastContacts=Zadnji kontakti/adrese BoxLastMembers=Zadnji članovi -BoxLastModifiedMembers=Latest modified members +BoxLastModifiedMembers=Najnoviji izmijenjeni članovi BoxLastMembersSubscriptions=Latest member subscriptions BoxFicheInter=Zadnje intervencije BoxCurrentAccounts=Stanje otvorenog računa -BoxTitleMemberNextBirthdays=Birthdays of this month (members) -BoxTitleMembersByType=Members by type +BoxTitleMemberNextBirthdays=Rođendani ovog mjeseca (članovi) +BoxTitleMembersByType=Članovi po vrsti i statusu BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year BoxTitleLastRssInfos=Zadnjih %s novosti od %s -BoxTitleLastProducts=Products/Services: last %s modified -BoxTitleProductsAlertStock=Products: stock alert +BoxTitleLastProducts=Zadnjih %s izmjenjenih proizvoda/usluga +BoxTitleProductsAlertStock=Proizvodi: upozorenje o zalihama BoxTitleLastSuppliers=Zadnjih %s zabilježenih dobavljača BoxTitleLastModifiedSuppliers=Dobavljači: zadnjih %s izmjena -BoxTitleLastModifiedCustomers=Customers: last %s modified +BoxTitleLastModifiedCustomers=Zadnjih %s izmjenjenih kupaca BoxTitleLastCustomersOrProspects=Zadnja %s kupca ili potencijalna kupca -BoxTitleLastCustomerBills=Latest %s modified Customer invoices -BoxTitleLastSupplierBills=Latest %s modified Vendor invoices -BoxTitleLastModifiedProspects=Prospects: last %s modified +BoxTitleLastCustomerBills=Zadnja %s izlazna računa +BoxTitleLastSupplierBills=Zadnja %s ulazna računa +BoxTitleLastModifiedProspects=Zadnjih %s izmjenjenih potencijalnih kupaca BoxTitleLastModifiedMembers=Zadnja %s člana BoxTitleLastFicheInter=Zadnje %s izmijenjene intervencije BoxTitleOldestUnpaidCustomerBills=Izlazni računi: najstarijih %s neplaćenih -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 +BoxTitleOldestUnpaidSupplierBills=Najstarijih %s neplačenih računa dobavljača +BoxTitleCurrentAccounts=Stanja otvorenih računa +BoxTitleSupplierOrdersAwaitingReception=Narudžbe dobavljača čekaju na prijem +BoxTitleLastModifiedContacts=Zadnjih %s izmjenjenih kontakta/adresa +BoxMyLastBookmarks=Oznake: najnovija %s BoxOldestExpiredServices=Najstarije aktivne istekle usluge BoxLastExpiredServices=Zadnja %s najstarija kontakta s aktivnim isteklim uslugama BoxTitleLastActionsToDo=Zadnja %s radnje za napraviti -BoxTitleLastContracts=Latest %s contracts which were modified -BoxTitleLastModifiedDonations=Latest %s donations which were modified -BoxTitleLastModifiedExpenses=Latest %s expense reports which were modified +BoxTitleLastContracts=Zadnje %s izmjenjeni ugovori +BoxTitleLastModifiedDonations=Zadnjih %s izmjenjenih donacija +BoxTitleLastModifiedExpenses=Zadnjih %s izmjenjenih izvještaja troškova BoxTitleLatestModifiedBoms=Latest %s BOMs which were modified BoxTitleLatestModifiedMos=Latest %s Manufacturing Orders which were modified -BoxTitleLastOutstandingBillReached=Customers with maximum outstanding exceeded +BoxTitleLastOutstandingBillReached=Kupci s maksimalnim nepodmirenim premašenim BoxGlobalActivity=Globalna aktivnost (računi, prijedlozi, nalozi) BoxGoodCustomers=Dobar kupac BoxTitleGoodCustomers=%s dobrih kupaca @@ -66,55 +66,55 @@ NoRecordedContacts=Nema pohranjenih kontakata NoActionsToDo=Nema akcija za napraviti NoRecordedOrders=Nema zabilježenih narudžbenica NoRecordedProposals=Nema pohranjenih prijedloga -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices +NoRecordedInvoices=Nema evidentiranih faktura kupaca +NoUnpaidCustomerBills=Nema neplaćenih računa kupaca NoUnpaidSupplierBills=Nema neplaćenih ulaznih računa -NoModifiedSupplierBills=No recorded vendor invoices +NoModifiedSupplierBills=Nema evidentiranih faktura dobavljača NoRecordedProducts=Nema pohranjenih proizvoda/usluga NoRecordedProspects=Nema pohranjenih potencijalnih kupaca NoContractedProducts=Nema ugovorenih proizvoda/usluga NoRecordedContracts=Nema pohranjenih ugovora NoRecordedInterventions=Nema pohranjenih intervencija -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 +BoxLatestSupplierOrders=Najnovije narudžbenice +BoxLatestSupplierOrdersAwaitingReception=Najnovije narudžbe (s prijemom na čekanju) +NoSupplierOrder=Nema zabilježene narudžbenice +BoxCustomersInvoicesPerMonth=Računi kupaca po mjesecu +BoxSuppliersInvoicesPerMonth=Računi dobavljača po mjesecu BoxCustomersOrdersPerMonth=Narudžbenica po mjesecu -BoxSuppliersOrdersPerMonth=Vendor Orders per month +BoxSuppliersOrdersPerMonth=Narudžbe dobavljača po mjesecu BoxProposalsPerMonth=Prijedloga po mjesecu -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 +NoTooLowStockProducts=Niti jedan proizvod nije ispod ograničenja zaliha +BoxProductDistribution=Raspodjela proizvoda/usluga +ForObject=Na %s +BoxTitleLastModifiedSupplierBills=Računi dobavljača: zadnja izmjena %s +BoxTitleLatestModifiedSupplierOrders=Narudžbe dobavljača: zadnja izmjena %s +BoxTitleLastModifiedCustomerBills=Računi kupaca: zadnja izmjena %s BoxTitleLastModifiedCustomerOrders=Narudžbenice: zadnje %s izmjene BoxTitleLastModifiedPropals=Zadnje %s izmijenjene ponude -BoxTitleLatestModifiedJobPositions=Latest %s modified job positions -BoxTitleLatestModifiedCandidatures=Latest %s modified job applications +BoxTitleLatestModifiedJobPositions=Najnovije %s izmijenjena radna mjesta +BoxTitleLatestModifiedCandidatures=Najnovije %s izmijenjene prijave za posao ForCustomersInvoices=Izlazni računi ForCustomersOrders=Narudžbe kupaca ForProposals=Prijedlozi LastXMonthRolling=Zadnja %s tekuća mjesece ChooseBoxToAdd=Dodaj prozorčić na početnu stranicu -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=Widget je dodan na vašu nadzornu ploču +BoxTitleUserBirthdaysOfMonth=Rođendani ovog mjeseca (korisnici) +BoxLastManualEntries=Najnoviji zapis u računovodstvu upisan ručno ili bez izvornog dokumenta +BoxTitleLastManualEntries=%s posljednji zapis unesen ručno ili bez izvornog dokumenta +NoRecordedManualEntries=Nema ručnih unosa u računovodstvu +BoxSuspenseAccount=Računovodstveni rad s privremenim računom +BoxTitleSuspenseAccount=Broj nedodijeljenih linija +NumberOfLinesInSuspenseAccount=Broj reda u neizvjesnom računu +SuspenseAccountNotDefined=Privremeni račun nije definiran +BoxLastCustomerShipments=Posljednje pošiljke kupaca +BoxTitleLastCustomerShipments=Najnovije %s pošiljke kupaca +NoRecordedShipments=Nema zabilježene pošiljke kupaca +BoxCustomersOutstandingBillReached=Dosegnuti su kupci s nepodmirenim ograničenjem # Pages UsersHome=Home users and groups MembersHome=Home Membership ThirdpartiesHome=Home Thirdparties TicketsHome=Home Tickets -AccountancyHome=Home Accountancy -ValidatedProjects=Validated projects +AccountancyHome=Računovodstvo +ValidatedProjects=Ovjereni projekti diff --git a/htdocs/langs/hr_HR/cashdesk.lang b/htdocs/langs/hr_HR/cashdesk.lang index 29a07e844b3..1f8f73b33b7 100644 --- a/htdocs/langs/hr_HR/cashdesk.lang +++ b/htdocs/langs/hr_HR/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Košarica NewSell=Nova prodaja AddThisArticle=Dodaj ovu stavku RestartSelling=Povratak na prodaju -SellFinished=Sale complete +SellFinished=Prodaja završena PrintTicket=Ispis računa SendTicket=Send ticket NoProductFound=Stavka nije pronađena @@ -26,111 +26,113 @@ Difference=Razlika TotalTicket=Ukupno računa NoVAT=Bez poreza za ovu prodaju Change=Previše primljeno -BankToPay=Account for payment +BankToPay=Račun za plaćanje ShowCompany=Prikaži tvrtku ShowStock=Prikaži skladište DeleteArticle=Kliknite za brisanje stavke FilterRefOrLabelOrBC=Pretraživanje (Ref/Oznaka) -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock. +UserNeedPermissionToEditStockToUsePos=Možete zatražiti da smanjite zalihe po kreiranju računa, tako da korisnik koji koristi POS ima dozvolu za uređivanje zaliha. DolibarrReceiptPrinter=Pisač za ispis računa -PointOfSale=Point of Sale +PointOfSale=Prodajno mjesto PointOfSaleShort=POS -CloseBill=Close Bill +CloseBill=Zatvori račun 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 +AddTable=Dodajte tablicu +Place=Mjesto +TakeposConnectorNecesary=Potreban je 'TakePOS konektor' +OrderPrinters=Dodajte gumb za slanje narudžbe na određene pisače, bez plaćanja (na primjer za slanje narudžbe u kuhinju) +NotAvailableWithBrowserPrinter=Nije dostupno kada je pisač za potvrdu postavljen na preglednik +SearchProduct=Pretražite proizvode Receipt=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=Zaglavlje +Footer=Podnožje +AmountAtEndOfPeriod=Iznos na kraju razdoblja (dan, mjesec ili godina) +TheoricalAmount=Teoretski iznos +RealAmount=Stvarni iznos +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Broj računa 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 +DolistorePosCategory=TakePOS moduli i druga POS rješenja za Dolibarr +TakeposNeedsCategories=TakePOS treba barem jednu kategoriju proizvoda da bi radio +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOS treba barem 1 kategoriju proizvoda u kategoriji %s da bi radio 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 +NoPaimementModesDefined=U konfiguraciji TakePOS nije definiran način plaćanja 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 ? +EnableBarOrRestaurantFeatures=Omogućite značajke za bar ili restoran +ConfirmDeletionOfThisPOSSale=Potvrđujete li brisanje ove trenutne prodaje? +ConfirmDiscardOfThisPOSSale=Želite li odbaciti ovu trenutnu prodaju? History=Povijest -ValidateAndClose=Validate and close +ValidateAndClose=Potvrdite i zatvorite Terminal=Terminal -NumberOfTerminals=Number of Terminals -TerminalSelect=Select terminal you want to use: +NumberOfTerminals=Broj terminala +TerminalSelect=Odaberite terminal koji želite koristiti: 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 +POSTerminal=POS terminal +POSModule=POS modul +BasicPhoneLayout=Koristite osnovni izgled za telefone +SetupOfTerminalNotComplete=Postavljanje terminala %s nije dovršeno +DirectPayment=Izravno plaćanje DirectPaymentButton=Add a "Direct cash payment" button -InvoiceIsAlreadyValidated=Invoice is already validated +InvoiceIsAlreadyValidated=Račun je već potvrđen NoLinesToBill=No lines to bill CustomReceipt=Custom Receipt ReceiptName=Receipt Name ProductSupplements=Manage supplements of products SupplementCategory=Supplement category -ColorTheme=Color theme -Colorful=Colorful +ColorTheme=Tema boja +Colorful=Šareno HeadBar=Head Bar -SortProductField=Field for sorting products +SortProductField=Polje za sortiranje proizvoda Browser=Preglednik -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 +BrowserMethodDescription=Jednostavan i lak ispis računa. Samo nekoliko parametara za konfiguriranje računa. Ispis putem preglednika. +TakeposConnectorMethodDescription=Vanjski modul s dodatnim značajkama. Mogućnost ispisa iz oblaka. +PrintMethod=Način ispisa 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 +ByTerminal=Po terminalu TakeposNumpadUsePaymentIcon=Use icon instead of text on payment buttons of numpad -CashDeskRefNumberingModules=Numbering module for POS sales +CashDeskRefNumberingModules=Modul numeracije za POS prodaju 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 +TakeposGroupSameProduct=Grupirajte iste linije proizvoda +StartAParallelSale=Započnite novu paralelnu prodaju +SaleStartedAt=Prodaja je počela u %s +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control +CashReport=Izvješće o gotovini +MainPrinterToUse=Glavni pisač za korištenje OrderPrinterToUse=Order printer to use MainTemplateToUse=Main template to use OrderTemplateToUse=Order template to use -BarRestaurant=Bar Restaurant +BarRestaurant=Bar restoran AutoOrder=Order by the customer himself -RestaurantMenu=Menu -CustomerMenu=Customer menu +RestaurantMenu=Izbornik +CustomerMenu=Izbornik kupaca ScanToMenu=Scan QR code to see the menu ScanToOrder=Scan QR code to order -Appearance=Appearance -HideCategoryImages=Hide Category Images -HideProductImages=Hide Product Images +Appearance=Izgled +HideCategoryImages=Sakrij slike kategorije +HideProductImages=Sakrij slike proizvoda NumberOfLinesToShow=Number of lines of images to show -DefineTablePlan=Define tables plan +DefineTablePlan=Definirajte plan stolova GiftReceiptButton=Add a "Gift receipt" button -GiftReceipt=Gift receipt +GiftReceipt=Potvrda o poklonu ModuleReceiptPrinterMustBeEnabled=Module Receipt printer must have been enabled first -AllowDelayedPayment=Allow delayed payment +AllowDelayedPayment=Dopusti odgođeno plaćanje PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts -WeighingScale=Weighing scale +WeighingScale=Vaga za vaganje 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 +CustomerDisplay=Prikaz za kupca SplitSale=Split sale -PrintWithoutDetailsButton=Add "Print without details" button +PrintWithoutDetailsButton=Dodajte gumb "Ispis bez detalja". PrintWithoutDetailsLabelDefault=Line label by default on printing without details -PrintWithoutDetails=Print without details -YearNotDefined=Year is not defined +PrintWithoutDetails=Ispis bez detalja +YearNotDefined=Godina nije definirana +TakeposBarcodeRuleToInsertProduct=Pravilo crtičnog koda za umetanje proizvoda +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
    diff --git a/htdocs/langs/hr_HR/commercial.lang b/htdocs/langs/hr_HR/commercial.lang index e10680f875b..9c8fa30267b 100644 --- a/htdocs/langs/hr_HR/commercial.lang +++ b/htdocs/langs/hr_HR/commercial.lang @@ -10,7 +10,7 @@ NewAction=Novi događaj AddAction=Izradi događaj AddAnAction=Izradi događaj AddActionRendezVous=Izradite sastanak -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Jeste li sigurni da želite izbrisati ovaj događaj ? CardAction=Kartica događaja ActionOnCompany=Povezana tvrtka ActionOnContact=Vezani kontakt @@ -19,7 +19,7 @@ ShowTask=Prikaži zadatak ShowAction=Prikaži događaj ActionsReport=Izvješće događaja ThirdPartiesOfSaleRepresentative=Treće osobe zastupljene od prodajnog predstavnika -SaleRepresentativesOfThirdParty=Sales representatives of third party +SaleRepresentativesOfThirdParty=Predstavnici prodaje treće strane SalesRepresentative=Prodajni predstavnik SalesRepresentatives=Prodajni predstavnici SalesRepresentativeFollowUp=Prodajni predstavnik (pratitelj) @@ -29,7 +29,7 @@ ShowCustomer=Prikaži kupca ShowProspect=Prikaži potencijalnog kupca ListOfProspects=Popis mogućih kupaca ListOfCustomers=Popis kupaca -LastDoneTasks=Latest %s completed actions +LastDoneTasks=Zadnjih %s završenih zadataka LastActionsToDo=Najstarijih %s nezavršenih akcija DoneAndToDoActions=Završeni i za odraditi DoneActions=Završeni događaji @@ -52,29 +52,30 @@ ActionAC_TEL=Telefonski poziv ActionAC_FAX=Pošalji faks ActionAC_PROP=Pošalji ponudu poštom ActionAC_EMAIL=Pošalji e-poštu -ActionAC_EMAIL_IN=Reception of Email +ActionAC_EMAIL_IN=Prijem e-pošte ActionAC_RDV=Sastanci ActionAC_INT=Intervencija na lokaciji ActionAC_FAC=Pošalji račun kupca poštom ActionAC_REL=Pošalji narudđbu kupca putem pošte (podsjetnik) ActionAC_CLO=Zatvoren ActionAC_EMAILING=Masovno slanje e-pošte -ActionAC_COM=Send sales order by mail +ActionAC_COM=Pošalji narudžbu kupca putem pošte ActionAC_SHIP=Pošalji dostavu putem pošte ActionAC_SUP_ORD=Pošalji narudžbenicu e-poštom -ActionAC_SUP_INV=Send vendor invoice by mail +ActionAC_SUP_INV=Pošalji račun dobavljača poštom ActionAC_OTH=Ostalo ActionAC_OTH_AUTO=Automatski uneseni događaji ActionAC_MANUAL=Ručno uneseni događaji ActionAC_AUTO=Automatski uneseni događaji -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Ostalo +ActionAC_EVENTORGANIZATION=Događaji organizacije događaja Stats=Statistike prodaje StatusProsp=Status potencijalnog kupca DraftPropals=Skica ponude NoLimit=Bez ograničenja -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 +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 +SignatureProposalRef=Potpis ponude/komercijalnog prijedloga %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 a737b20d2a8..fbc3866f715 100644 --- a/htdocs/langs/hr_HR/companies.lang +++ b/htdocs/langs/hr_HR/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=Ime tvrtke %s već postoji. Odaberite drugo. ErrorSetACountryFirst=Prvo odaberite državu SelectThirdParty=Odaberi treću osobu -ConfirmDeleteCompany=Are you sure you want to delete this company and all related information? +ConfirmDeleteCompany=Jeste li sigurni da želite obrisati ovu tvrtku i sve podatke vezane na nju? DeleteContact=Izbriši kontakt/adresu. -ConfirmDeleteContact=Are you sure you want to delete this contact and all related information? +ConfirmDeleteContact=Jeste li sigurni da želite obrisati ovaj kontakt i sve podatke vezane na njega? MenuNewThirdParty=Nova Treća Osoba MenuNewCustomer=Novi Kupac MenuNewProspect=Novi mogući kupac @@ -19,15 +19,16 @@ ProspectionArea=Mogući kupci IdThirdParty=Oznaka treće osobe IdCompany=Oznaka tvrtke IdContact=Oznaka kontakta +ThirdPartyAddress=Third-party address ThirdPartyContacts=Kontakti treće osobe ThirdPartyContact=Kontakt/adresa treće osobe Company=Tvrtka CompanyName=Naziv tvrtke AliasNames=Alias (komercijala, zaštitni znak, ...) -AliasNameShort=Alias Name +AliasNameShort=Naziv aliasa Companies=Kompanije CountryIsInEEC=Država je unutar Europske Ekonomske Zajednice -PriceFormatInCurrentLanguage=Price display format in the current language and currency +PriceFormatInCurrentLanguage=Format prikaza cijene u trenutnom jeziku i valuti ThirdPartyName=Naziv treće osobe ThirdPartyEmail=E-pošta treće osobe ThirdParty=Treća osoba @@ -40,52 +41,55 @@ ThirdPartyCustomersWithIdProf12=Kupci sa %s ili %s ThirdPartySuppliers=Dobavljači ThirdPartyType=Vrsta treće osobe Individual=Privatna osoba -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. +ToCreateContactWithSameName=Automatski će stvoriti kontakt/adresu s istim podacima kao i treća strana pod trećom stranom. U većini slučajeva, čak i ako je vaša treća strana fizička osoba, dovoljno je samo stvaranje treće strane. ParentCompany=Matična tvrtka Subsidiaries=Podružnice -ReportByMonth=Report per month -ReportByCustomers=Report per customer -ReportByThirdparties=Report per thirdparty -ReportByQuarter=Report per rate +ReportByMonth=Izvještaji po mjesecu +ReportByCustomers=Izvještaji po kupcu +ReportByThirdparties=Izvještaj po trećoj strani +ReportByQuarter=Izvještaj po stopi CivilityCode=Kod uljudnosti RegisteredOffice=Sjedište Lastname=Prezime Firstname=Ime +RefEmployee=Referenca zaposlenika +NationalRegistrationNumber=Nacionalni registarski broj PostOrFunction=Radno mjesto UserTitle=Titula -NatureOfThirdParty=Nature of Third party -NatureOfContact=Nature of Contact +NatureOfThirdParty=Priroda treće strane +NatureOfContact=Priroda kontakta Address=Adresa State=Država/provincija -StateCode=State/Province code +StateId=State ID +StateCode=Šifra države/pokrajine StateShort=Država Region=Regija -Region-State=Region - State +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 Call=Poziv Chat=Chat -PhonePro=Bus. phone +PhonePro=Prof. telefon PhonePerso=Osob. telefon PhoneMobile=Mobitel -No_Email=Refuse bulk emailings +No_Email=Odbija masovno slanje e-pošte Fax=Faks Zip=Poštanski broj Town=Grad Web=Mreža Poste= Pozicija -DefaultLang=Default language +DefaultLang=Zadani jezik VATIsUsed=Porez se primjenjuje -VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers +VATIsUsedWhenSelling=Ovo definira uključuje li ta treća strana porez na promet ili ne kada ispostavlja fakturu vlastitim kupcima VATIsNotUsed=Porez se ne primjenjuje -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 +CopyAddressFromSoc=Kopirajte adresu iz podataka treće strane +ThirdpartyNotCustomerNotSupplierSoNoRef=Treća strana ni kupac ni dobavljač, nema dostupnih objekata koji upućuju +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Treća strana ni kupac ni dobavljač, popusti nisu dostupni +PaymentBankAccount=Bankovni račun za plaćanje OverAllProposals=Ponude kupcima OverAllOrders=Narudžbe kupaca OverAllInvoices=Računi @@ -98,10 +102,11 @@ LocalTax2IsUsed=Koristi treći dodatni porez LocalTax2IsUsedES= IRPF je korišten LocalTax2IsNotUsedES= IRPF nije korišten WrongCustomerCode=Neispravan kod kupca -WrongSupplierCode=Vendor code invalid +WrongSupplierCode=Neispravan kod dobavljača CustomerCodeModel=Način koda kupca -SupplierCodeModel=Vendor code model +SupplierCodeModel=Način koda dobavljača Gencod=Barkod +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -125,7 +130,7 @@ ProfId1AT=Prof Id 1 (USt.-IdNr) ProfId2AT=Prof Id 2 (USt.-Nr) ProfId3AT=Prof Id 3 (Handelsregister-Nr.) ProfId4AT=- -ProfId5AT=EORI number +ProfId5AT=EORI broj ProfId6AT=- ProfId1AU=Prof Id 1 (ABN) ProfId2AU=- @@ -137,7 +142,7 @@ ProfId1BE=Prof Id 1 (Professional number) ProfId2BE=- ProfId3BE=- ProfId4BE=- -ProfId5BE=EORI number +ProfId5BE=EORI broj ProfId6BE=- ProfId1BR=- ProfId2BR=IE (Inscricao Estadual) @@ -145,11 +150,11 @@ ProfId3BR=IM (Inscricao Municipal) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS -ProfId1CH=UID-Nummer +ProfId1CH=UID-broj ProfId2CH=- ProfId3CH=Prof Id 1 (Federal number) ProfId4CH=Dokaz ID 2 (broj komercijalnog podatka) -ProfId5CH=EORI number +ProfId5CH=EORI broj ProfId6CH=- ProfId1CL=Prof Id 1 (R.U.T.) ProfId2CL=- @@ -159,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=- +ProfId1ShortCM=Trgovački registar +ProfId2ShortCM=Porezni obveznik br. +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Ostali ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -179,7 +184,7 @@ ProfId1DE=Prof Id 1 (USt.-IdNr) ProfId2DE=Prof Id 2 (USt.-Nr) ProfId3DE=Prof Id 3 (Handelsregister-Nr.) ProfId4DE=- -ProfId5DE=EORI number +ProfId5DE=EORI broj ProfId6DE=- ProfId1ES=Prof Id 1 (CIF/NIF) ProfId2ES=Prof Id 2 (Social security number) @@ -221,13 +226,13 @@ ProfId1IT=- ProfId2IT=- ProfId3IT=- ProfId4IT=- -ProfId5IT=EORI number +ProfId5IT=EORI broj ProfId6IT=- ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) ProfId2LU=Id. prof. 2 (Business permit) ProfId3LU=- ProfId4LU=- -ProfId5LU=EORI number +ProfId5LU=EORI broj ProfId6LU=- ProfId1MA=Id prof. 1 (R.C.) ProfId2MA=Id prof. 2 (Patente) @@ -245,7 +250,7 @@ ProfId1NL=KVK nummer ProfId2NL=- ProfId3NL=- ProfId4NL=Burgerservicenummer (BSN) -ProfId5NL=EORI number +ProfId5NL=EORI broj ProfId6NL=- ProfId1PT=Prof Id 1 (NIPC) ProfId2PT=Prof Id 2 (Social security number) @@ -290,13 +295,13 @@ ProfId4UA=Prof Id 4 (Certificate) ProfId5UA=Prof Id 5 (RNOKPP) ProfId6UA=Prof Id 6 (TRDPAU) ProfId1DZ=RC -ProfId2DZ=Art. +ProfId2DZ=Čl. ProfId3DZ=NIF ProfId4DZ=NIS VATIntra=OIB VATIntraShort=OIB VATIntraSyntaxIsValid=Sintaksa je u redu -VATReturn=VAT return +VATReturn=Povrat PDV-a ProspectCustomer=Potencijalni / Kupac Prospect=Potencijalni kupac CustomerCard=Kartica kupca @@ -307,20 +312,20 @@ CustomerRelativeDiscountShort=Relativni popust CustomerAbsoluteDiscountShort=Apsolutni popust CompanyHasRelativeDiscount=Ovaj kupac ima predefiniran popust od %s%% CompanyHasNoRelativeDiscount=Ovaj kupac nema predefiniran relativni popust -HasRelativeDiscountFromSupplier=You have a default discount of %s%% from this vendor -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor +HasRelativeDiscountFromSupplier=Od ovog dobavljača imate zadani popust od %s%% +HasNoRelativeDiscountFromSupplier=Nemate zadani relativni popust od ovog dobavljača CompanyHasAbsoluteDiscount=Raspoloživi popust (knjižna odobrenja ili predujmovi) %s %s -CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s +CompanyHasDownPaymentOrCommercialDiscount=Ovaj kupac ima dostupne popuste (komercijalni, predujmovi) za %s %s CompanyHasCreditNote=Ovaj kupac još uvijek ima odobrenje za %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 +HasNoAbsoluteDiscountFromSupplier=Nemate kredit s popustom kod ovog dobavljača +HasAbsoluteDiscountFromSupplier=Imate dostupne popuste (knjižna odobrenja ili predujmove) za %s %s od ovog dobavljača +HasDownPaymentOrCommercialDiscountFromSupplier=Dostupni su vam popusti (komercijalni, predujmi) za %s %s od ovog dobavljača +HasCreditNoteFromSupplier=Imate knjižna odobrenja za %s %s od ovog dobavljača CompanyHasNoAbsoluteDiscount=Ovaj kupac nema dostupan kreditni popust -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) +CustomerAbsoluteDiscountAllUsers=Apsolutni popusti za kupce (daju svi korisnici) +CustomerAbsoluteDiscountMy=Apsolutni popusti za kupce (dodijelite sami) +SupplierAbsoluteDiscountAllUsers=Apsolutni popusti dobavljača (koje su unijeli svi korisnici) +SupplierAbsoluteDiscountMy=Apsolutni popusti dobavljača (unesete sami) DiscountNone=Ništa Vendor=Dobavljač Supplier=Dobavljač @@ -328,7 +333,7 @@ AddContact=Izradi kontakt AddContactAddress=Izradi kontakt/adresu EditContact=Uredi kontakt EditContactAddress=Uredi kontakt/adresu -Contact=Contact/Address +Contact=Kontakt/adresa Contacts=Kontakti/Adrese ContactId=ID kontakta ContactsAddresses=Kontakti/adrese @@ -336,30 +341,30 @@ FromContactName=Ime: NoContactDefinedForThirdParty=Nema kontakta za ovog komitenta NoContactDefined=Nije definiran kontakt DefaultContact=Predefinirani kontakt/adresa -ContactByDefaultFor=Default contact/address for +ContactByDefaultFor=Zadani kontakt/adresa za AddThirdParty=Izradi treću osobu DeleteACompany=Izbriši tvrtku PersonalInformations=Osobni podaci AccountancyCode=Obračunski račun CustomerCode=Oznaka kupca -SupplierCode=Vendor Code +SupplierCode=Šifra dobavljača CustomerCodeShort=Oznaka kupca -SupplierCodeShort=Vendor Code -CustomerCodeDesc=Customer Code, unique for all customers -SupplierCodeDesc=Vendor Code, unique for all vendors +SupplierCodeShort=Šifra dobavljača +CustomerCodeDesc=Šifra kupca, jedinstvena za sve kupce +SupplierCodeDesc=Šifra dobavljača, jedinstvena za sve dobavljače RequiredIfCustomer=Obavezno ako je komitent kupac ili potencijalni kupac -RequiredIfSupplier=Required if third party is a vendor -ValidityControledByModule=Validity controlled by the module -ThisIsModuleRules=Rules for this module +RequiredIfSupplier=Obavezno ako je treća strana dobavljač +ValidityControledByModule=Valjanost kontrolira modul +ThisIsModuleRules=Pravila za ovaj modul ProspectToContact=Potencijalni kupac u kontakt CompanyDeleted=Tvrtka "%s" izbrisana iz baze. ListOfContacts=Popis kontakata/adresa ListOfContactsAddresses=Popis kontakata/adresa ListOfThirdParties=Popis trećih osoba -ShowCompany=Third Party -ShowContact=Contact-Address +ShowCompany=Treća strana +ShowContact=Kontakt adresa ContactsAllShort=Sve(bez filtera) -ContactType=Vrsta kontakta +ContactType=Uloga kontakta ContactForOrders=Kontakt narudžbe ContactForOrdersOrShipments=Kontakt narudžbe ili pošiljke ContactForProposals=Kontakt ponude @@ -376,16 +381,16 @@ MyContacts=Moji kontakti Capital=Kapital CapitalOf=Temeljna vrijednost %s EditCompany=Uredi tvrtku -ThisUserIsNot=This user is not a prospect, customer or vendor -VATIntraCheck=Ček -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. +ThisUserIsNot=Ovaj korisnik nije ni potencijalni kupac, kupac ni dobavljač +VATIntraCheck=Provjeri +VATIntraCheckDesc=PDV ID mora sadržavati prefiks zemlje. Veza %s koristi europsku uslugu provjere VAT-a (VIES) koja zahtijeva pristup internetu s Dolibarr poslužitelja. 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 +VATIntraCheckableOnEUSite=Provjerite VAT ID unutar Zajednice na web stranici Europske komisije +VATIntraManualCheck=Također možete ručno provjeriti na web stranici Europske komisije %s ErrorVATCheckMS_UNAVAILABLE=Provjera nije moguća. Servis za provjeru nije pružena od strane države članice (%s). -NorProspectNorCustomer=Not prospect, nor customer -JuridicalStatus=Business entity type -Workforce=Workforce +NorProspectNorCustomer=Niti potencijalni klijenti, niti kupac +JuridicalStatus=Vrsta poslovnog subjekta +Workforce=Radna snaga Staff=Zaposlenici ProspectLevelShort=Potencijal ProspectLevel=Potencijalni kupac @@ -407,7 +412,7 @@ TE_MEDIUM=Srednja tvrtka TE_ADMIN=Državna firma TE_SMALL=Mala tvrtka TE_RETAIL=Preprodavač -TE_WHOLE=Wholesaler +TE_WHOLE=Veletrgovac TE_PRIVATE=Privatna osoba TE_OTHER=Drugo StatusProspect-1=Nemoj kontaktirati @@ -427,69 +432,69 @@ ContactNotLinkedToCompany=Kontakt nije povezan ni sa jednim komitentom DolibarrLogin=Dolibarr korisničko ime NoDolibarrAccess=Nema pristup Dolibarr-u ExportDataset_company_1=Treće osobe\n(tvrtke/zaklade/fizičke osobe) i njihove osobine -ExportDataset_company_2=Contacts and their properties +ExportDataset_company_2=Kontakti i njihova svojstva ImportDataset_company_1=Treće osobe i njihove osobine -ImportDataset_company_2=Third-parties additional contacts/addresses and attributes +ImportDataset_company_2=Dodatni kontakti/adrese i atributi trećih strana ImportDataset_company_3=Bankovni računi trećih osoba ImportDataset_company_4=Prodajni predstavnici za treće osobe (dodjela predstavnika/korisnika za tvrtke) -PriceLevel=Price Level -PriceLevelLabels=Price Level Labels +PriceLevel=Cjenovni razred +PriceLevelLabels=Oznake razine cijena DeliveryAddress=Adresa dostave AddAddress=Dodaj adresu -SupplierCategory=Vendor category +SupplierCategory=Kategorija dobavljača JuridicalStatus200=Nezavisni DeleteFile=Izbriši datoteku ConfirmDeleteFile=Jeste li sigurni da želite obrisati ovu datoteku? AllocateCommercial=Dodjeljeno prodajnom predstavniku Organization=Organizacija -FiscalYearInformation=Fiscal Year +FiscalYearInformation=Fiskalna godina FiscalMonthStart=Početni mjesec fiskalne godine -SocialNetworksInformation=Social networks +SocialNetworksInformation=Društvene mreže 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. +YouMustAssignUserMailFirst=Morate prvo kreirati e-poštu za ovog korisnika kako biste mogli dodati njegove obavijesti putem e-pošte. YouMustCreateContactFirst=Kako biste bili u mogućnosti dodavanja obavijesti e-poštom, prvo morate definirati kontakt s valjanom adresom e-pošte za komitenta ListSuppliersShort=Popis dobavljača ListProspectsShort=Popis mogućih kupaca ListCustomersShort=Popis kupaca ThirdPartiesArea=Treće osobe/Kontakti -LastModifiedThirdParties=Latest %s Third Parties which were modified -UniqueThirdParties=Total number of Third Parties +LastModifiedThirdParties=Zadnje %s izmijenjene treće osobe +UniqueThirdParties=Ukupan broj trećih strana InActivity=Otvori ActivityCeased=Zatvoren -ThirdPartyIsClosed=Third party is closed -ProductsIntoElements=List of products/services mapped to %s +ThirdPartyIsClosed=Treća strana je zatvorena +ProductsIntoElements=Popis proizvoda/usluga mapiranih na %s CurrentOutstandingBill=Trenutno otvoreni računi OutstandingBill=Maksimalno za otvorene račune OutstandingBillReached=Dosegnut maksimum neplaćenih računa -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. +OrderMinAmount=Minimalni iznos za narudžbu +MonkeyNumRefModelDesc=Vratite broj u formatu %syymm-nnnn za šifru kupca i %syymm-nnnn za šifru dobavljača gdje je yy godina, mm mjesec, a nnnn sekvencijalni broj koji se automatski povećava bez prekida i povratka na 0. LeopardNumRefModelDesc=Ova šifra je besplatne. Ova šifra se može modificirati u bilo koje vrijeme. ManagingDirectors=Ime vlasnika(ce) ( CEO, direktor, predsjednik uprave...) MergeOriginThirdparty=Dupliciran komitent (komitent koji želite obrisati) MergeThirdparties=Združi treće osobe -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=Jeste li sigurni da želite spojiti odabranu treću stranu s trenutnom? Svi povezani objekti (fakture, narudžbe,...) bit će premješteni na trenutnu treću stranu, nakon čega će odabrana treća strana biti izbrisana. ThirdpartiesMergeSuccess=Treće osobe združene SaleRepresentativeLogin=Korisničko ime predstavnika SaleRepresentativeFirstname=Ime prodajnog predstavnika SaleRepresentativeLastname=Prezime prodajnog predstavnika ErrorThirdpartiesMerge=Došlo je do greške tijekom brisanja treće osobe. Molim provjerite zapis. Izmjene su povraćene. -NewCustomerSupplierCodeProposed=Customer or Vendor code already used, a new code is suggested -KeepEmptyIfGenericAddress=Keep this field empty if this address is a generic address +NewCustomerSupplierCodeProposed=Šifra kupca ili dobavljača je već korištena, predlaže se nova šifra +KeepEmptyIfGenericAddress=Ostavite ovo polje praznim ako je ova adresa generička adresa #Imports -PaymentTypeCustomer=Payment Type - Customer +PaymentTypeCustomer=Vrsta plaćanja - Kupac PaymentTermsCustomer=Rok plaćanja - kupac -PaymentTypeSupplier=Payment Type - Vendor -PaymentTermsSupplier=Payment Term - Vendor -PaymentTypeBoth=Payment Type - Customer and Vendor -MulticurrencyUsed=Use Multicurrency +PaymentTypeSupplier=Vrsta plaćanja - Dobavljač +PaymentTermsSupplier=Uvjet plaćanja - Dobavljač +PaymentTypeBoth=Vrsta plaćanja - kupac i dobavljač +MulticurrencyUsed=Koristite multivalutno MulticurrencyCurrency=Valuta -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. +InEEC=Europa (EEC) +RestOfEurope=Ostatak Europe (EEC) +OutOfEurope=Izvan Europe (EEC) +CurrentOutstandingBillLate=Trenutni nepodmireni račun kasni +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Budite oprezni, ovisno o postavkama cijene vašeg proizvoda, trebali biste promijeniti treću stranu prije dodavanja proizvoda na POS. diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang index d743d63e6f0..4705d496e6c 100644 --- a/htdocs/langs/hr_HR/compta.lang +++ b/htdocs/langs/hr_HR/compta.lang @@ -11,57 +11,57 @@ FeatureIsSupportedInInOutModeOnly=Mogučnost je dostupna samo u KREDITIRANJA-DUG VATReportBuildWithOptionDefinedInModule=Prikazani iznosi su izračunati korištenjem pravila definiranih u postavkama Poreznog modula LTReportBuildWithOptionDefinedInModule=Prikazani iznosi su izračunati korištenjem pravila definiranih u postavkama tvrtke. Param=Podešavanje -RemainingAmountPayment=Amount payment remaining: +RemainingAmountPayment=Preostali iznos za naplatu: Account=Račun -Accountparent=Parent account -Accountsparent=Parent accounts +Accountparent=Matični račun +Accountsparent=Matični računi Income=Prihod Outcome=Trošak MenuReportInOut=Prihod / Trošak -ReportInOut=Balance of income and expenses -ReportTurnover=Turnover invoiced -ReportTurnoverCollected=Turnover collected +ReportInOut=Stanje prihoda i rashoda +ReportTurnover=Promet fakturiran +ReportTurnoverCollected=Naplaćeni promet PaymentsNotLinkedToInvoice=Plaćanja nisu povezana s niti jednim računom, također nisu povezane s nijednim komitentom PaymentsNotLinkedToUser=Plaćanja nisu povezana s niti jednim korisnikom Profit=Profit AccountingResult=Rezultati računovodstvo -BalanceBefore=Balance (before) +BalanceBefore=Stanje (prije) Balance=Stanje Debit=Zaduženje Credit=Kredit Piece=Računovodstveni dok. AmountHTVATRealReceived=Nije naplaćeno AmountHTVATRealPaid=Neto plaćeno -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 +VATToPay=PDV prodaje +VATReceived=PDV primljen +VATToCollect=PDV kupovine +VATSummary=PDV mjesečno +VATBalance=PDV saldo +VATPaid=PDV plaćeno +LT1Summary=Sažetak poreza 2 +LT2Summary=Sažetak poreza 3 LT1SummaryES=RE Stanje LT2SummaryES=IRPF stanje -LT1SummaryIN=CGST Balance -LT2SummaryIN=SGST Balance -LT1Paid=Tax 2 paid -LT2Paid=Tax 3 paid +LT1SummaryIN=Stanje CGST-a +LT2SummaryIN=Stanje SGST-a +LT1Paid=Plaćen porez 2 +LT2Paid=Plaćen porez 3 LT1PaidES=RE Plaćeno LT2PaidES=IRPF plaćeno -LT1PaidIN=CGST Paid -LT2PaidIN=SGST Paid -LT1Customer=Tax 2 sales -LT1Supplier=Tax 2 purchases +LT1PaidIN=CGST plaćen +LT2PaidIN=SGST plaćen +LT1Customer=Porez 2 na prodaju +LT1Supplier=Porez na 2 nabave LT1CustomerES=RE prodaja LT1SupplierES=RE kupovina -LT1CustomerIN=CGST sales -LT1SupplierIN=CGST purchases -LT2Customer=Tax 3 sales -LT2Supplier=Tax 3 purchases +LT1CustomerIN=CGST prodaja +LT1SupplierIN=CGST nabave +LT2Customer=Porez 3 prodaje +LT2Supplier=Porez na 3 nabave LT2CustomerES=IRPF prodaje LT2SupplierES=IRPF kupovine -LT2CustomerIN=SGST sales -LT2SupplierIN=SGST purchases +LT2CustomerIN=SGST prodaja +LT2SupplierIN=SGST nabave VATCollected=PDV prikupljen StatusToPay=Za platiti SpecialExpensesArea=Sučelji svih specijalnih plaćanja @@ -83,10 +83,10 @@ ContributionsToPay=Društvni/fiskalni porez za platiti AccountancyTreasuryArea=Računi i plaćanja NewPayment=Novo plaćanje PaymentCustomerInvoice=Uplata računa kupca -PaymentSupplierInvoice=vendor invoice payment +PaymentSupplierInvoice=plaćanje računa dobavljača PaymentSocialContribution=Plaćanje društveni/fiskalni porez PaymentVat=PDV plaćanje -AutomaticCreationPayment=Automatically record the payment +AutomaticCreationPayment=Automatski zabilježite uplatu ListPayment=Popis plaćanja ListOfCustomerPayments=Popis uplata kupaca ListOfSupplierPayments=List of vendor payments @@ -106,8 +106,8 @@ LT2PaymentES=IRPF plaćanje LT2PaymentsES=IRPF plaćanja VATPayment=Plaćanje poreza prodaje VATPayments=Plaćanja poreza kod prodaje -VATDeclarations=VAT declarations -VATDeclaration=VAT declaration +VATDeclarations=PDV prijave +VATDeclaration=PDV prijava VATRefund=Sales tax refund NewVATPayment=New sales tax payment NewLocalTaxPayment=New tax %s payment @@ -122,8 +122,8 @@ CustomerAccountancyCodeShort=Konto kupca SupplierAccountancyCodeShort=Konto dobavljača AccountNumber=Broj računa NewAccountingAccount=Novi račun -Turnover=Turnover invoiced -TurnoverCollected=Turnover collected +Turnover=Promet fakturiran +TurnoverCollected=Naplaćeni promet SalesTurnoverMinimum=Minimum turnover ByExpenseIncome=Po troškovima i prihodima ByThirdParties=Po trećim osobama @@ -146,9 +146,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid? DeleteSocialContribution=Obriši plaćanje društvenog ili fiskalnog poreza 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=Društveni i fiskalni porezi i plaćanja CalcModeVATDebt=Način %sPDV na računovodstvene usluge%s CalcModeVATEngagement=Način %sPDV na prihode-troškove%s @@ -170,7 +172,7 @@ SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation 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=Prikazani iznosi su sa uključenim svim porezima -RulesAmountWithTaxExcluded=- Amounts of invoices shown are with all taxes excluded +RulesAmountWithTaxExcluded=- Prikazani iznosi faktura su bez svih poreza 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.
    @@ -230,7 +232,7 @@ Pcg_version=Chart of accounts models Pcg_type=Pcg tip Pcg_subtype=Pcg podtip InvoiceLinesToDispatch=Stavke računa za otpremu -ByProductsAndServices=By product and service +ByProductsAndServices=Po proizvodu i usluzi RefExt=Vanjska ref. ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". LinkedOrder=Poveži s narudžbom @@ -241,7 +243,7 @@ CalculationRuleDescSupplier=According to vendor, choose appropriate method to ap 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=Način izračuna -AccountancyJournal=Accounting code journal +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 @@ -249,28 +251,28 @@ 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 +ConfirmCloneTax=Potvrdi kloniranje plaćanja društvenog/fiskalnog poreza +ConfirmCloneVAT=Potvrdite klon PDV deklaracije +ConfirmCloneSalary=Potvrdite klon plaće CloneTaxForNextMonth=Kloniraj za sljedeći mjesec SimpleReport=Jednostavan izvještaj -AddExtraReport=Extra reports (add foreign and national customer report) +AddExtraReport=Dodatna izvješća (dodati izvješće stranog i domaćeg korisnika) OtherCountriesCustomersReport=Izvještaj stranih kupaca BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Bazirano prema prva dva slova PDV je različit od zemlje vaše tvrtke SameCountryCustomersWithVAT=Izvještaj domaćih kupaca BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Bazirano prema prva dva slova PDV je isti od zemlje vaše tvrtke LinkedFichinter=Poveži sa intervencijom ImportDataset_tax_contrib=Društveni/fiskalni porezi -ImportDataset_tax_vat=Vat payments +ImportDataset_tax_vat=Plaćanja PDV-a ErrorBankAccountNotFound=Greška: Nije pronađen bankovni račun -FiscalPeriod=Accounting period +FiscalPeriod=Obračunsko razdoblje 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 +PaidDuringThisPeriod=Plaćeno za ovaj 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 @@ -285,16 +287,16 @@ RulesPurchaseTurnoverTotalPurchaseJournal=It includes all debit lines from the p 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) +IncludeVarpaysInResults = Uključite razne uplate u izvješća +IncludeLoansInResults = Uključite zajmove u izvješća +InvoiceLate30Days = Fakture kasne (> 30 dana) +InvoiceLate15Days = Fakture kasne (15 do 30 dana) +InvoiceLateMinus15Days = Fakture kasne (< 15 dana) +InvoiceNotLate = Za preuzimanje (< 15 dana) +InvoiceNotLate15Days = Za preuzimanje (15 do 30 dana) +InvoiceNotLate30Days = Za prikupljanje (> 30 dana) +InvoiceToPay=Za plaćanje (< 15 dana) +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 ? diff --git a/htdocs/langs/hr_HR/cron.lang b/htdocs/langs/hr_HR/cron.lang index 10fd9c52b35..c2b9ca55fba 100644 --- a/htdocs/langs/hr_HR/cron.lang +++ b/htdocs/langs/hr_HR/cron.lang @@ -7,28 +7,28 @@ Permission23103 = Obriši planirani posao Permission23104 = Pokreni planirani posao # Admin CronSetup=Postavljanje upravljanja planiranih poslova -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 za provjeru i pokretanje kvalificiranih cron poslova iz preglednika +OrToLaunchASpecificJob=Ili za provjeru i pokretanje određenog posla iz preglednika KeyForCronAccess=Sigurnosni ključ za URL za pokretanje cron zadataka -FileToLaunchCronJobs=Command line to check and launch qualified cron jobs +FileToLaunchCronJobs=Naredbeni redak za provjeru i pokretanje kvalificiranih cron poslova CronExplainHowToRunUnix=U Unix okolini potrebno je korisititi sljedeći crontab unos za pokretanje komande svakih 5 minuta -CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes +CronExplainHowToRunWin=U Microsoft(tm) Windows okruženju možete koristiti alate za planirani zadatak za pokretanje naredbenog retka svakih 5 minuta CronMethodDoesNotExists=Klasa %s ne sadrži niti jednu %s metodu -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=Metoda %s klase %s nalazi se na crnoj listi zabranjenih metoda +CronJobDefDesc=Profili Cron poslova definirani su u datoteci deskriptora modula. Kada je modul aktiviran, oni su učitani i dostupni tako da možete administrirati poslove iz izbornika alata administratora %s. +CronJobProfiles=Popis unaprijed definiranih cron profila poslova # Menu EnabledAndDisabled=Omogući i onemogući # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Najnoviji izlazni rezultat +CronLastResult=Najnoviji kod rezultata CronCommand=Komanda CronList=Planirani poslovi CronDelete=Obriši planirane zadatke -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? +CronConfirmDelete=Jeste li sigurni da želite izbrisati ove zakazane poslove? CronExecute=Pokreni planirani posao -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. +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 CronNone=Nijedan CronDtStart=Ne prije @@ -43,11 +43,11 @@ CronModule=Modul CronNoJobs=Nema registriranih poslova CronPriority=Prioritet CronLabel=Naziv -CronNbRun=Number of launches -CronMaxRun=Maximum number of launches +CronNbRun=Broj pokretanja +CronMaxRun=Maksimalni broj pokretanja CronEach=Svakih JobFinished=Posao pokrenut i završen -Scheduled=Scheduled +Scheduled=Zakazano #Page card CronAdd= Dodaj poslove CronEvery=Izvrši posao svaki @@ -57,14 +57,14 @@ CronSaveSucess=Uspješno spremljeno CronNote=Napomena CronFieldMandatory=Polja %s su obavezna CronErrEndDateStartDt=Datum kraja ne može biti prije datuma početka -StatusAtInstall=Status at module installation -CronStatusActiveBtn=Schedule +StatusAtInstall=Status pri instalaciji modula +CronStatusActiveBtn=Raspored CronStatusInactiveBtn=Onemogući -CronTaskInactive=This job is disabled (not scheduled) +CronTaskInactive=Ovaj posao je onemogućen (nije zakazan) CronId=ID -CronClassFile=Filename with class +CronClassFile=Naziv datoteke s klasom 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 +CronClassFileHelp=Relativni put i naziv datoteke za učitavanje (put je relativan na korijenski direktorij web poslužitelja).
    Na primjer, za pozivanje metode dohvaćanja objekta Dolibarr Product htdocs/product/class/ product.class.php , vrijednost za naziv datoteke klase je s
    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 @@ -76,16 +76,18 @@ CronFrom=Od CronType=Vrsta posla CronType_method=Call method of a PHP Class CronType_command=Shell command -CronCannotLoadClass=Cannot load class file %s (to use class %s) +CronCannotLoadClass=Nije moguće učitati datoteku klase %s (za korištenje klase %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=Posao onemogućen -MakeLocalDatabaseDumpShort=Lakalni backup baze -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 +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) +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 # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=Posljednji izvršeni zakazani posao +NextScheduledJobExecute=Sljedeći zakazani posao za izvršenje +NumberScheduledJobError=Broj zakazanih poslova u pogreški diff --git a/htdocs/langs/hr_HR/dict.lang b/htdocs/langs/hr_HR/dict.lang index 2e3f562c742..3db1f7c08f3 100644 --- a/htdocs/langs/hr_HR/dict.lang +++ b/htdocs/langs/hr_HR/dict.lang @@ -348,12 +348,12 @@ ExpAuto5PCV=5 CV - životopisa i više ExpAuto6PCV=6 CV - životopisa i više ExpAuto7PCV=7 CV - životopisa i više ExpAuto8PCV=8 CV - životopisa i više -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 +ExpAuto9PCV=9 CV - životopisa i više +ExpAuto10PCV=10 CV - životopisa i više +ExpAuto11PCV=11 CV - životopisa i više +ExpAuto12PCV=12 CV - životopisa i više +ExpAuto13PCV=13 CV - životopisa i više +ExpCyclo=Kapacitet manji do 50cm3 +ExpMoto12CV=Motocikl 1 ili 2 CV +ExpMoto345CV=Motocikl 3, 4 ili 5 CV +ExpMoto5PCV=Motocikl 5 CV i više diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang index ec2a653f646..d406d214388 100644 --- a/htdocs/langs/hr_HR/errors.lang +++ b/htdocs/langs/hr_HR/errors.lang @@ -3,112 +3,114 @@ # 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. -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. +ErrorButCommitIsDone=Pronađene su pogreške, ali potvrđujemo unatoč tome +ErrorBadEMail=E-pošta %s nije točna +ErrorBadMXDomain=Čini se da e-pošta %s nije točna (domena nema valjani MX zapis) +ErrorBadUrl=Url %s nije točan +ErrorBadValueForParamNotAString=Loša vrijednost za vaš parametar. Općenito se dodaje kada prijevod nedostaje. +ErrorRefAlreadyExists=Referenca %s već postoji. +ErrorTitleAlreadyExists=Naslov %s već postoji. +ErrorLoginAlreadyExists=Prijava %s već postoji. +ErrorGroupAlreadyExists=Grupa %s već postoji. +ErrorEmailAlreadyExists=E-pošta %s već postoji. +ErrorRecordNotFound=Zapis nije pronađen. +ErrorFailToCopyFile=Nije uspjelo kopiranje datoteke ' %s ' u ' %s '. +ErrorFailToCopyDir=Nije uspjelo kopiranje mape ' %s ' u ' %s '. +ErrorFailToRenameFile=Nije uspjelo preimenovanje datoteke ' %s ' u ' %s '. +ErrorFailToDeleteFile=Uklanjanje datoteke ' %s ' nije uspjelo. +ErrorFailToCreateFile=Izrada datoteke ' %s ' nije uspjela. +ErrorFailToRenameDir=Nije uspjelo preimenovanje mape ' %s ' u ' %s '. +ErrorFailToCreateDir=Nije uspjelo kreiranje mape ' %s '. +ErrorFailToDeleteDir=Brisanje mape ' %s ' nije uspjelo. +ErrorFailToMakeReplacementInto=Nije uspjelo izvršiti zamjenu u datoteci ' %s '. +ErrorFailToGenerateFile=Generiranje datoteke ' %s ' nije uspjelo. +ErrorThisContactIsAlreadyDefinedAsThisType=Ovaj je kontakt već definiran kao kontakt za ovu vrstu. ErrorCashAccountAcceptsOnlyCashMoney=Ovaj bankovni račun je gotovinski te prihvaća samo gotovinske uplate. ErrorFromToAccountsMustDiffers=Izvorni i odredišni bankovni računi moraju biti različiti. -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. -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 +ErrorBadThirdPartyName=Loša vrijednost za naziv treće strane +ForbiddenBySetupRules=Zabranjeno pravilima postavljanja +ErrorProdIdIsMandatory=%s je obavezan +ErrorAccountancyCodeCustomerIsMandatory=Konto za kupca %s je obavezan +ErrorBadCustomerCodeSyntax=Loša sintaksa za šifru kupca +ErrorBadBarCodeSyntax=Loša sintaksa za bar kod. Možda ste postavili lošu vrstu bar koda ili ste definirali masku bar koda za numeriranje koja ne odgovara skeniranoj vrijednosti. +ErrorCustomerCodeRequired=Potrebna je šifra kupca +ErrorBarCodeRequired=Potreban je bar kod +ErrorCustomerCodeAlreadyUsed=Šifra kupca je već korišten +ErrorBarCodeAlreadyUsed=Bar kod je već korišten +ErrorPrefixRequired=Potreban je prefiks +ErrorBadSupplierCodeSyntax=Loša sintaksa za šifru dobavljača +ErrorSupplierCodeRequired=Potrebna šifra dobavljača +ErrorSupplierCodeAlreadyUsed=Šifra dobavljača je već korištena +ErrorBadParameters=Loši parametri +ErrorWrongParameters=Pogrešni ili nedostajući parametri +ErrorBadValueForParameter=Pogrešna vrijednost '%s' za parametar '%s' +ErrorBadImageFormat=Datoteka slike nema podržani format (vaš PHP ne podržava funkcije za pretvaranje slika ovog formata) +ErrorBadDateFormat=Vrijednost '%s' ima pogrešan format datuma +ErrorWrongDate=Datum nije točan! +ErrorFailedToWriteInDir=Nije uspjelo upisivanje u direktorij %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. +ErrorSubjectIsRequired=Predmet e-pošte je obavezan +ErrorFailedToCreateDir=Izrada mape nije uspjela. Provjerite ima li korisnik web poslužitelja dopuštenje za pisanje u mapu dokumenata Dolibarr. Ako je parametar safe_mode omogućen na ovom PHP-u, provjerite posjeduju li Dolibarr php datoteke korisniku (ili grupi) web poslužitelja. +ErrorNoMailDefinedForThisUser=Za ovog korisnika nije definirana pošta +ErrorSetupOfEmailsNotComplete=Postavljanje e-pošte nije dovršeno +ErrorFeatureNeedJavascript=Za aktiviranje ove značajke potreban je JavaScript. Promijenite ovo u postavkama - prikazu. +ErrorTopMenuMustHaveAParentWithId0=Izbornik tipa 'Vrh' ne može imati roditeljski izbornik. Stavite 0 u roditeljski izbornik ili odaberite izbornik tipa 'Lijevo'. +ErrorLeftMenuMustHaveAParentId=Izbornik tipa 'Lijevo' mora imati roditeljski ID. +ErrorFileNotFound=Datoteka %s nije pronađena (Loš put, pogrešna dopuštenja ili pristup odbijen od strane PHP openbasedir ili safe_mode parametra) +ErrorDirNotFound=Direktorij %s nije pronađen (Loš put, pogrešna dopuštenja ili pristup odbijen od strane PHP openbasedir ili safe_mode parametra) +ErrorFunctionNotAvailableInPHP=Funkcija %s je potrebna za ovu značajku, ali nije dostupna u ovoj verziji/postavci PHP-a. +ErrorDirAlreadyExists=Direktorij s ovim imenom već postoji. +ErrorFileAlreadyExists=Datoteka s ovim imenom već postoji. +ErrorDestinationAlreadyExists=Druga datoteka s imenom %s već postoji. +ErrorPartialFile=Poslužitelj nije u potpunosti primio datoteku. +ErrorNoTmpDir=Privremeni direktorij %s ne postoji. +ErrorUploadBlockedByAddon=Učitavanje blokira PHP/Apache dodatak. +ErrorFileSizeTooLarge=Veličina datoteke je prevelika ili datoteka nije navedena. +ErrorFieldTooLong=Polje %s je predugo. +ErrorSizeTooLongForIntType=Veličina predugačka za tip int (maksimalno %s znamenki) +ErrorSizeTooLongForVarcharType=Veličina predugačka za vrstu niza (maksimalno %s znakova) +ErrorNoValueForSelectType=Unesite vrijednost za odabrani popis 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. +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. +ErrorFieldMustHaveXChar=Polje %s mora imati najmanje %s znakova. ErrorNoAccountancyModuleLoaded=Računovodstveni modul nije aktiviran -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 -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" +ErrorExportDuplicateProfil=Ovaj naziv profila već postoji za ovaj skup za izvoz. +ErrorLDAPSetupNotComplete=Dolibarr-LDAP podudaranje nije dovršeno. +ErrorLDAPMakeManualTest=U direktoriju %s generirana je .ldif datoteka. Pokušajte ga ručno učitati iz naredbenog retka kako biste imali više informacija o pogreškama. +ErrorCantSaveADoneUserWithZeroPercentage=Ne može se spremiti radnja sa "statusom nije pokrenut" ako je također popunjeno polje "done by". +ErrorRefAlreadyExists=Referenca %s već postoji. +ErrorPleaseTypeBankTransactionReportName=Unesite naziv bankovnog izvoda na kojem se unos mora prijaviti (format YYYYMM ili YYYYMMDD) +ErrorRecordHasChildren=Brisanje zapisa nije uspjelo jer ima neke podređene zapise. +ErrorRecordHasAtLeastOneChildOfType=Objekt %s ima najmanje jedan podređeni tipa %s +ErrorRecordIsUsedCantDelete=Nije moguće izbrisati zapis. Već se koristi ili je uključen u drugi objekt. +ErrorModuleRequireJavascript=Javascript se ne smije onemogućiti da bi ova značajka radila. Da biste omogućili/onemogućili Javascript, idite na izbornik Početna->Podešavanje->Zaslon. +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 +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 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 +ErrorBadMaskBadRazMonth=Pogreška, loša vrijednost resetiranja ErrorMaxNumberReachForThisMask=Maximum number reached for this mask -ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits -ErrorSelectAtLeastOne=Error, select at least one entry. +ErrorCounterMustHaveMoreThan3Digits=Brojač mora imati više od 3 znamenke +ErrorSelectAtLeastOne=Pogreška, odaberite barem jedan unos. ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated ErrorProdIdAlreadyExist=%s je dodjeljen to drugom -ErrorFailedToSendPassword=Failed to send password +ErrorFailedToSendPassword=Slanje lozinke nije uspjelo 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. @@ -117,14 +119,14 @@ ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions fo 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 +ErrorCantReadFile=Nije uspjelo čitanje datoteke '%s' +ErrorCantReadDir=Nije uspjelo čitanje direktorija '%s' +ErrorBadLoginPassword=Loša vrijednost za prijavu ili lozinku ErrorLoginDisabled=Vaš račun je onemoguč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. -ErrorFailedToChangePassword=Failed to change password +ErrorFailedToChangePassword=Promjena lozinke nije uspjela ErrorLoginDoesNotExists=User with login %s could not be found. -ErrorLoginHasNoEmail=This user has no email address. Process aborted. +ErrorLoginHasNoEmail=Ovaj korisnik nema adresu e-pošte. Proces prekinut. 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. @@ -149,7 +151,7 @@ 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 +ErrorWarehouseMustDiffers=Izvorna i ciljna skladišta moraju se razlikovati 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. @@ -164,58 +166,58 @@ 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 +ErrorPriceExpression11=Očekuje se '%s' +ErrorPriceExpression14=Dijeljenje s nulom +ErrorPriceExpression17=Nedefinirana varijabla '%s' +ErrorPriceExpression19=Izraz nije pronađen +ErrorPriceExpression20=Prazan izraz +ErrorPriceExpression21=Prazan rezultat '%s' +ErrorPriceExpression22=Negativan rezultat '%s' +ErrorPriceExpression23=Nepoznata ili nije postavljena varijabla '%s' u %s +ErrorPriceExpression24=Varijabla '%s' postoji, ali nema vrijednost +ErrorPriceExpressionInternal=Interna pogreška '%s' +ErrorPriceExpressionUnknown=Nepoznata pogreška '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Izvorna i ciljna skladišta moraju se razlikovati 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' +ErrorGlobalVariableUpdater0=HTTP zahtjev nije uspio s pogreškom '%s' +ErrorGlobalVariableUpdater1=Nevažeći JSON format '%s' +ErrorGlobalVariableUpdater2=Nedostaje parametar '%s' +ErrorGlobalVariableUpdater3=Traženi podaci nisu pronađeni u rezultatu +ErrorGlobalVariableUpdater4=SOAP klijent nije uspio s pogreškom '%s' ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided +ErrorMandatoryParametersNotProvided=Obavezni parametar(i) nisu navedeni 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 '.' +ErrorSavingChanges=Došlo je do pogreške prilikom spremanja promjena +ErrorWarehouseRequiredIntoShipmentLine=Za otpremu je potrebno skladište na liniji +ErrorFileMustHaveFormat=Datoteka mora imati format %s +ErrorFilenameCantStartWithDot=Naziv datoteke ne može početi s '.' 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. +ErrorStockIsNotEnoughToAddProductOnOrder=Zaliha nije dovoljna da bi se proizvod %s dodao u novu narudžbu. +ErrorStockIsNotEnoughToAddProductOnInvoice=Zaliha nije dovoljna da bi se proizvod %s dodao u novu fakturu. +ErrorStockIsNotEnoughToAddProductOnShipment=Zaliha nije dovoljna da bi se proizvod %s dodao u novu pošiljku. +ErrorStockIsNotEnoughToAddProductOnProposal=Zaliha nije dovoljna da bi se proizvod %s dodao u novu ponudu. +ErrorFailedToLoadLoginFileForMode=Nije uspjelo dohvaćanje ključa za prijavu za način rada '%s'. +ErrorModuleNotFound=Datoteka modula nije pronađena. 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. +ErrorTaskAlreadyAssigned=Zadatak je već dodijeljen korisniku +ErrorModuleFileSeemsToHaveAWrongFormat=Čini se da paket modula ima pogrešan 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. +ErrorNoWarehouseDefined=Greška, nema definiranih skladišta. 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. +ErrorTooManyErrorsProcessStopped=Previše pogrešaka. Proces je zaustavljen. 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. @@ -230,8 +232,8 @@ ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s%s
    must be 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 +ErrorNotAvailableWithThisDistribution=Nije dostupno s ovom distribucijom +ErrorPublicInterfaceNotEnabled=Javno sučelje nije bilo omogućeno +ErrorLanguageRequiredIfPageIsTranslationOfAnother=Jezik nove stranice mora biti definiran ako je postavljen kao prijevod druge stranice +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=Jezik nove stranice ne smije biti izvorni jezik ako je postavljen kao prijevod druge stranice +ErrorAParameterIsRequiredForThisOperation=Parametar je obavezan za ovu operaciju +ErrorDateIsInFuture=Pogreška, datum ne može biti u budućnosti +ErrorAnAmountWithoutTaxIsRequired=Greška, iznos je obavezan +ErrorAPercentIsRequired=Greška, molimo unesite ispravno postotak 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 +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: %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 is not a draft -ErrorExecIdFailed=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +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 +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 # 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 +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=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. +WarningBookmarkAlreadyExists=Oznaka s ovim naslovom ili ovim ciljem (URL) već postoji. +WarningPassIsEmpty=Upozorenje, lozinka baze podataka je prazna. Ovo je sigurnosna rupa. Trebali biste dodati lozinku u svoju bazu podataka i promijeniti svoju conf.php datoteku da to odražava. 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. +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). 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. +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Značajka je onemogućena kada je postavka zaslona optimizirana za slijepe osobe ili tekstualne preglednike. 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 +WarningYourLoginWasModifiedPleaseLogin=Vaša prijava je promijenjena. Iz sigurnosnih razloga morat ćete se prijaviti sa svojom novom prijavom prije sljedeće radnje. +WarningAnEntryAlreadyExistForTransKey=Već postoji unos za prijevodni ključ za ovaj jezik 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. +WarningDateOfLineMustBeInExpenseReportRange=Upozorenje, datum reda nije u rasponu izvješća o troškovima +WarningProjectDraft=Projekt je još uvijek u nacrtu. Ne zaboravite ga potvrditi ako namjeravate koristiti zadatke. +WarningProjectClosed=Projekt je zatvoren. Prvo ga morate ponovno otvoriti. +WarningSomeBankTransactionByChequeWereRemovedAfter=Neke bankovne transakcije su uklonjene nakon što je generirana potvrda uključujući i njih. Dakle, broj čekova i ukupan iznos računa mogu se razlikovati od broja i ukupnog broja na popisu. WarningFailedToAddFileIntoDatabaseIndex=Warning, failed to add file entry into ECM database index table -WarningTheHiddenOptionIsOn=Warning, the hidden option %s is on. +WarningTheHiddenOptionIsOn=Upozorenje, uključena je skrivena opcija %s . 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. +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 # 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 +RequireValidValue = Vrijednost nije važeća +RequireAtLeastXString = Zahtijeva najmanje %s znakova +RequireXStringMax = Zahtijeva maks. %s znakova +RequireAtLeastXDigits = Zahtijeva najmanje %s znamenki +RequireXDigitsMax = Zahtijeva %s znamenka(e) max +RequireValidNumeric = Zahtijeva brojčanu vrijednost +RequireValidEmail = Adresa e-pošte nije važeća +RequireMaxLength = Duljina mora biti manja od %s znakova +RequireMinLength = Duljina mora biti veća od %s znakova +RequireValidUrl = Zahtijeva važeći URL +RequireValidDate = Zahtijeva valjan datum +RequireANotEmptyValue = Obavezno +RequireValidDuration = Zahtijeva valjano trajanje +RequireValidExistingElement = Zahtijeva postojeću vrijednost +RequireValidBool = Zahtijeva valjani boolean +BadSetupOfField = Pogreška loše postavke polja 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/hr_HR/eventorganization.lang b/htdocs/langs/hr_HR/eventorganization.lang index b9676420b74..641bd90bb8c 100644 --- a/htdocs/langs/hr_HR/eventorganization.lang +++ b/htdocs/langs/hr_HR/eventorganization.lang @@ -17,101 +17,102 @@ # # 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 događaja +EventOrganizationDescription = Organizacija događaja kroz modulski projekt +EventOrganizationDescriptionLong= Upravljajte organizacijom događaja (emisije, konferencije, sudionici ili govornici, s javnim stranicama za prijedloge, glasovanje ili registraciju) # # Menu # -EventOrganizationMenuLeft = Organized events -EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth +EventOrganizationMenuLeft = Organizirani događaji +EventOrganizationConferenceOrBoothMenuLeft = Konferencija ili štand -PaymentEvent=Payment of event +PaymentEvent=Plaćanje događaja # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Event Organization setup -EventOrganization=Event organization +NewRegistration=Registracija +EventOrganizationSetup=Postavljanje organizacije događaja +EventOrganization=Organizacija događaja Settings=Postavke -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 = Stranica za postavljanje organizacije događaja +EVENTORGANIZATION_TASK_LABEL = Oznaka zadataka za automatsko kreiranje kada se projekt potvrdi +EVENTORGANIZATION_TASK_LABELTooltip = Kada potvrdiš događaj za organizaciju, neki zadaci mogu biti automatski kreirani u

    projekta na primjer:
    Pošalji Poziv za konferencije
    Slanje poziva za Kabine
    ozakoniti sugestijama konferencija
    provjeru valjanosti zahtjeva za Kabine
    Otvoreno pretplate na događaj za polaznike
    Pošalji podsjetnik na događaj govornicima
    Pošalji podsjetnik na događaj domaćinima štanda
    Pošalji podsjetnik na događaj sudionicima +EVENTORGANIZATION_TASK_LABELTooltip2=Ostavite prazno ako ne trebate automatski stvarati zadatke. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategorija za dodavanje trećim stranama automatski se kreira kada netko predloži konferenciju +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategorija za dodavanje trećim stranama automatski se kreira kada predlože štand +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Predložak e-pošte za slanje nakon primitka prijedloga konferencije. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Predložak e-pošte za slanje nakon primitka prijedloga štanda. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Predložak e-pošte za slanje nakon što je prijava na štand plaćena. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Predložak e-pošte za slanje nakon što je prijava na događaj plaćena. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Predložak e-pošte za korištenje prilikom slanja e-pošte iz masovne grupe "Pošalji e-poštu" govornicima +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Predložak e-pošte za korištenje pri slanju e-pošte iz masovne grupe "Pošalji e-poštu" na popisu sudionika +EVENTORGANIZATION_FILTERATTENDEES_CAT = U obrascu za stvaranje/dodavanje sudionika, ograničava popis trećih strana na treće strane u kategoriji +EVENTORGANIZATION_FILTERATTENDEES_TYPE = U obrascu za stvaranje/dodavanje sudionika, ograničava popis trećih strana na treće strane s prirodom # # 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= Konferencija ili štand +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 # # 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š zahtjev za konferenciju je primljen +YourOrganizationEventBoothRequestWasReceived = Vaš zahtjev za štand je primljen +EventOrganizationEmailAskConf = Zahtjev za konferenciju +EventOrganizationEmailAskBooth = Zahtjev za štand +EventOrganizationEmailBoothPayment = Plaćanje vašeg štanda +EventOrganizationEmailRegistrationPayment = Prijava za događaj +EventOrganizationMassEmailAttendees = Komunikacija sa sudionicima +EventOrganizationMassEmailSpeakers = Komunikacija s govornicima +ToSpeakers=Za govornike # # 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 +AllowUnknownPeopleSuggestBooth=Dopustite ljudima da se prijave za štand AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth -PriceOfRegistration=Price of registration +PriceOfRegistration=Cijena registracije 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 +Attendees=Polaznici 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 +NbVotes=Broj glasova # # Status # EvntOrgDraft = Skica -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified +EvntOrgSuggested = Predloženo +EvntOrgConfirmed = Potvrđeno +EvntOrgNotQualified = Nekvalificiran EvntOrgDone = Učinjeno -EvntOrgCancelled = Cancelled +EvntOrgCancelled = Otkazano # # Public page # -SuggestForm = Suggestion page -SuggestOrVoteForConfOrBooth = Page for suggestion or vote +SuggestForm = Stranica s prijedlozima +SuggestOrVoteForConfOrBooth = Stranica za prijedlog ili glasanje 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 +ListOfSuggestedConferences = Popis predloženih konferencija +ListOfSuggestedBooths = Popis predloženih štandova ListOfConferencesOrBooths=List of conferences or booths of event project SuggestConference = Suggest a new conference SuggestBooth = Suggest a booth @@ -130,38 +131,39 @@ ConferenceIsNotConfirmed=Registration not available, conference is not confirmed DateMustBeBeforeThan=%s must be before %s DateMustBeAfterThan=%s must be after %s -NewSubscription=Registration +NewSubscription=Registracija 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) +OrganizationEventLinkToThirdParty=Veza na treću stranu (kupac, dobavljač ili partner) -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Prijava za štand +NewSuggestionOfConference=Prijava za konferenciju # # 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 stranicu prijedloga konferencije ili štanda. +EvntOrgRegistrationConfWelcomeMessage = Dobrodošli na stranicu prijedloga konferencije. +EvntOrgRegistrationBoothWelcomeMessage = Dobrodošli na stranicu prijedloga štanda. +EvntOrgVoteHelpMessage = Ovdje možete pogledati i glasati za predložene događaje za projekt +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 = 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) +SubscriptionOk = Vaša registracija je potvrđena +ConfAttendeeSubscriptionConfirmation = Potvrda vaše pretplate na događaj +Attendee = Polaznik +PaymentConferenceAttendee = Plaćanje sudionika konferencije +PaymentBoothLocation = Plaćanje lokacije štanda +DeleteConferenceOrBoothAttendee=Ukloni sudionika +RegistrationAndPaymentWereAlreadyRecorder=Registracija i uplata već su zabilježeni za e-mail %s +EmailAttendee=E-mail sudionika +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 -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +NoPublicActionsAllowedForThisEvent=Za ovaj događaj nisu otvorene javne akcije +MaxNbOfAttendees=Max number of attendees diff --git a/htdocs/langs/hr_HR/exports.lang b/htdocs/langs/hr_HR/exports.lang index 41b0bfedb62..be327df0909 100644 --- a/htdocs/langs/hr_HR/exports.lang +++ b/htdocs/langs/hr_HR/exports.lang @@ -1,95 +1,95 @@ # Dolibarr language file - Source file is en_US - exports ExportsArea=Exports -ImportArea=Import +ImportArea=Uvoz NewExport=Novo vađenje podataka NewImport=Novi unos podataka -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. -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 +ExportableDatas=Skup podataka koji se može izvesti +ImportableDatas=Uvozni skup podataka +SelectExportDataSet=Odaberite skup podataka koji želite izvesti... +SelectImportDataSet=Odaberite skup podataka koji želite uvesti... +SelectExportFields=Odaberite polja koja želite izvesti ili odaberite unaprijed definirani profil izvoza +SelectImportFields=Odaberite polja izvorne datoteke koja želite uvesti i njihovo ciljno polje u bazi podataka pomicanjem gore-dolje pomoću sidra %s ili odaberite unaprijed definirani profil za uvoz: +NotImportedFields=Polja izvorne datoteke nisu uvezena +SaveExportModel=Spremite svoje odabire kao izvozni profil/predložak (za ponovnu upotrebu). +SaveImportModel=Spremi ovaj profil za uvoz (za ponovnu upotrebu)... +ExportModelName=Naziv profila za izvoz +ExportModelSaved=Profil za izvoz spremljen kao %s . +ExportableFields=Izvozna polja +ExportedFields=Izvezena polja +ImportModelName=Naziv profila za uvoz +ImportModelSaved=Profil za uvoz spremljen kao %s . +DatasetToExport=Skup podataka za izvoz +DatasetToImport=Uvezite datoteku u skup podataka +ChooseFieldsOrdersAndTitle=Odaberite redoslijed polja... +FieldsTitle=Naslov polja +FieldTitle=Naslov polja +NowClickToGenerateToBuildExportFile=Sada odaberite format datoteke u kombiniranom okviru i kliknite na "Generiraj" za izradu datoteke za izvoz... +AvailableFormats=Dostupni formati LibraryShort=Biblioteka -ExportCsvSeparator=Csv caracter separator -ImportCsvSeparator=Csv caracter separator -Step=Step +ExportCsvSeparator=Csv separator znakova +ImportCsvSeparator=Csv separator znakova +Step=Korak FormatedImport=Čarobnjak za unos podataka -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. +FormatedImportDesc1=Ovaj modul omogućuje ažuriranje postojećih podataka ili dodavanje novih objekata u bazu podataka iz datoteke bez tehničkog znanja, uz pomoć pomoćnika. +FormatedImportDesc2=Prvi korak je odabir vrste podataka koje želite uvesti, zatim format izvorne datoteke, zatim polja koja želite uvesti. FormatedExport=Čarobnjak za vađenje podataka -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 +FormatedExportDesc1=Ovi alati omogućuju izvoz personaliziranih podataka pomoću pomoćnika, kako bi vam pomogli u procesu bez zahtijevanja tehničkog znanja. +FormatedExportDesc2=Prvi korak je odabir unaprijed definiranog skupa podataka, zatim polja koja želite izvesti i kojim redoslijedom. +FormatedExportDesc3=Kada su odabrani podaci za izvoz, možete odabrati format izlazne datoteke. +Sheet=List +NoImportableData=Nema podataka koji se mogu uvoziti (nema modula s definicijama za omogućavanje uvoza podataka) +FileSuccessfullyBuilt=Generirana datoteka SQLUsedForExport=SQL Request used to extract data -LineId=Id of line -LineLabel=Label of line +LineId=Id linije +LineLabel=Oznaka linije LineDescription=Opis redka -LineUnitPrice=Unit price of line -LineVATRate=VAT Rate of line -LineQty=Quantity for line +LineUnitPrice=Jedinična cijena linije +LineVATRate=Stopa PDV-a na liniji +LineQty=Količina za liniju LineTotalHT=Iznos bez PDV-a za redak -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 -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... -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 +LineTotalTTC=Iznos s porezom za liniju +LineTotalVAT=Iznos PDV-a za liniju +TypeOfLineServiceOrProduct=Vrsta linije (0=proizvod, 1=usluga) +FileWithDataToImport=Datoteka s podacima za uvoz +FileToImport=Izvorna datoteka za uvoz +FileMustHaveOneOfFollowingFormat=Datoteka za uvoz mora imati jedan od sljedećih formata +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=Odaberite format datoteke za korištenje kao format datoteke za uvoz klikom na ikonu %s da biste ga odabrali... +ChooseFileToImport=Prenesite datoteku, a zatim kliknite na ikonu %s da odaberete datoteku kao izvornu datoteku za uvoz... +SourceFileFormat=Format izvorne datoteke +FieldsInSourceFile=Polja u izvornoj datoteci +FieldsInTargetDatabase=Ciljna polja u bazi podataka Dolibarr (podebljano=obavezno) +Field=Polje +NoFields=Nema polja +MoveField=Premjestite polje broj stupca %s +ExampleOfImportFile=Primjer_uvozne_datoteke +SaveImportProfile=Spremite ovaj profil za uvoz +ErrorImportDuplicateProfil=Nije uspjelo spremanje ovog profila za uvoz s ovim imenom. Već postoji postojeći profil s ovim imenom. +TablesTarget=Ciljane tablice +FieldsTarget=Ciljana polja +FieldTarget=Ciljano polje +FieldSource=Izvorno polje +NbOfSourceLines=Broj redaka u izvornoj datoteci 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 +RunSimulateImportFile=Pokrenite simulaciju uvoza +FieldNeedSource=Ovo polje zahtijeva podatke iz izvorne datoteke +SomeMandatoryFieldHaveNoSource=Neka obvezna polja nemaju izvor iz podatkovne datoteke +InformationOnSourceFile=Informacije o izvornoj datoteci +InformationOnTargetTables=Informacije o ciljnim poljima +SelectAtLeastOneField=Promijenite barem jedno izvorno polje u stupcu polja za izvoz +SelectFormat=Odaberite ovaj format datoteke za uvoz +RunImportFile=Uvoz podataka 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. +ErrorMissingMandatoryValue=Obavezni podaci su prazni u izvornoj datoteci za polje %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. +TooMuchWarnings=Još uvijek postoje %s drugi izvorni redovi s upozorenjima, ali izlaz je ograničen. +EmptyLine=Prazan redak (bit će odbačen) +CorrectErrorBeforeRunningImport=Morate ispraviti sve pogreške prije nego što pokrene konačni uvoz. +FileWasImported=Datoteka je uvezena s brojem %s . +YouCanUseImportIdToFindRecord=Sve uvezene zapise možete pronaći u svojoj bazi podataka filtriranjem po polju import_key='%s' . +NbOfLinesOK=Broj redaka bez pogrešaka i bez upozorenja: %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. @@ -98,7 +98,7 @@ DataComeFromIdFoundFromCodeId=Code that comes from field number %s of sou 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 +SourceRequired=Vrijednost podataka je obavezna SourceExample=Example of possible data value ExampleAnyRefFoundIntoElement=Any ref found for element %s ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary %s @@ -107,15 +107,15 @@ Excel95FormatDesc=Excel file format (.xls)
    This is the native Excel 95 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 +CsvOptions=Opcije CSV formata +Separator=Razdjelnik polja 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 +ImportFromLine=Uvoz počevši od broja retka +EndAtLineNb=Kraj na broju retka 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. @@ -123,11 +123,11 @@ SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for 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 +ComputedField=Izračunato polje ## filters SelectFilterFields=If you want to filter on some values, just input values here. -FilteredFields=Filtered fields -FilteredFieldsValues=Value for filter +FilteredFields=Filtrirana polja +FilteredFieldsValues=Vrijednost za filter FormatControlRule=Format control rule ## imports updates KeysToUseForUpdates=Key (column) to use for updating existing data @@ -135,3 +135,6 @@ 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: 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 8b752c8df69..00000000000 --- a/htdocs/langs/hr_HR/ftp.lang +++ /dev/null @@ -1,14 +0,0 @@ -# Dolibarr language file - Source file is en_US - ftp -FTPClientSetup=Podešavanje FTP Klijent modula -NewFTPClient=Podešavanje novog FTP spajanja -FTPArea=FTP sučelje -FTPAreaDesc=Ovaj ekran vam prikazuje sadržaj FTP servera -SetupOfFTPClientModuleNotComplete=Postavke modula FTP klijenta nije potpun -FTPFeatureNotSupportedByYourPHP=Vaš PHP ne podržava FTP funkcije -FailedToConnectToFTPServer=Neuspješno povezivanje s FTP serverom (server %s, port %s) -FailedToConnectToFTPServerWithCredentials=Neuspješna prijava na FTP server s pristupnim podacima -FTPFailedToRemoveFile=Neuspješno brisanje datoteke %s. -FTPFailedToRemoveDir=Neuspješno brisanje mape %s (Provjerite prava pristupa i da li je mapa prazna). -FTPPassiveMode=Pasivni mod -ChooseAFTPEntryIntoMenu=Odaberite FTP na izborniku -FailedToGetFile=Neuspješno preuzimanje datoteka %s diff --git a/htdocs/langs/hr_HR/holiday.lang b/htdocs/langs/hr_HR/holiday.lang index 3bd975ab1fe..c75cc5b15bf 100644 --- a/htdocs/langs/hr_HR/holiday.lang +++ b/htdocs/langs/hr_HR/holiday.lang @@ -18,7 +18,7 @@ ListeCP=List of leave Leave=Zahtjev za odsustvom LeaveId=Leave ID ReviewedByCP=Will be approved by -UserID=User ID +UserID=ID korisnika UserForApprovalID=User for approval ID UserForApprovalFirstname=First name of approval user UserForApprovalLastname=Last name of approval user @@ -43,9 +43,9 @@ 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 +DayIsANonWorkingDay=%s je neradni dan +DateStartInMonth=Datum početka u mjesecu +DateEndInMonth=Datum završetka u mjesecu EditCP=Uredi DeleteCP=Obriši ActionRefuseCP=Odbij @@ -81,8 +81,8 @@ ErrorAddEventToUserCP=Dogodila se greška kod dodavanja specijalnog odsustva. AddEventToUserOkCP=Dodatak specijalnog odsustva je završen. MenuLogCP=Pregled dnevnika promjena LogCP=Log of all updates made to "Balance of Leave" -ActionByCP=Updated by -UserUpdateCP=Updated for +ActionByCP=Ažurirao +UserUpdateCP=Ažurirano za PrevSoldeCP=Prijašnje stanje NewSoldeCP=Novo stanje alreadyCPexist=Zahtjev je već napravljen za ovaj period. @@ -92,17 +92,17 @@ BoxTitleLastLeaveRequests=Zadnja %s izmijenjena zahtjeva za odlaskom HolidaysMonthlyUpdate=Mjesečna promjena ManualUpdate=Ručna promjena HolidaysCancelation=Odbijanje zahtjeva -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name +EmployeeLastname=Prezime zaposlenika +EmployeeFirstname=Ime zaposlenika TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed LastHolidays=Latest %s leave requests AllHolidays=All leave requests -HalfDay=Half day +HalfDay=Pola dana NotTheAssignedApprover=You are not the assigned approver -LEAVE_PAID=Paid vacation -LEAVE_SICK=Sick leave -LEAVE_OTHER=Other leave -LEAVE_PAID_FR=Paid vacation +LEAVE_PAID=Plaćeni dopust +LEAVE_SICK=Bolovanje +LEAVE_OTHER=Drugi dopust +LEAVE_PAID_FR=Plaćeni odmor ## Configuration du Module ## LastUpdateCP=Last automatic update of leave allocation MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation @@ -128,12 +128,12 @@ GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type HolidaySetup=Setup of module Leave HolidaysNumberingModules=Numbering models for leave requests TemplatePDFHolidays=Template for leave requests PDF -FreeLegalTextOnHolidays=Free text on PDF +FreeLegalTextOnHolidays=Slobobni tekst u PDF-u WatermarkOnDraftHolidayCards=Watermarks on draft leave requests -HolidaysToApprove=Holidays to approve +HolidaysToApprove=Praznici za odobravanje 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 +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 diff --git a/htdocs/langs/hr_HR/hrm.lang b/htdocs/langs/hr_HR/hrm.lang index ee785160473..97ebcf09c91 100644 --- a/htdocs/langs/hr_HR/hrm.lang +++ b/htdocs/langs/hr_HR/hrm.lang @@ -12,44 +12,44 @@ 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 Employee=Zaposlenik NewEmployee=Novi zaposlenik -ListOfEmployees=List of employees +ListOfEmployees=Popis zaposlenih HrmSetup=Podešavanje modula HRM -HRM_MAXRANK=Maximum rank for a skill -HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created +SkillsManagement=Upravljanje vještinama +HRM_MAXRANK=Maksimalan broj razina za rangiranje vještine +HRM_DEFAULT_SKILL_DESCRIPTION=Zadani opis rangova kada je vještina stvorena deplacement=Shift -DateEval=Evaluation date +DateEval=Datum evaluacije JobCard=Job card -Job=Posao -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 +JobPosition=Posao +JobsPosition=Poslovi +NewSkill=Nova vještina +SkillType=Vrsta vještine +Skilldets=Popis rangova za ovu vještinu +Skilldet=Razina vještine +rank=Rang +ErrNoSkillSelected=Nije odabrana nijedna vještina +ErrSkillAlreadyAdded=Ova vještina je već na popisu SkillHasNoLines=This skill has no lines -skill=Skill -Skills=Skills +skill=Vještina +Skills=Vještine 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 +EmployeeSkillsUpdated=Vještine zaposlenika su ažurirane (pogledajte karticu "Vještine" na kartici zaposlenika) +Eval=Evaluacija +Evals=Evaluacije +NewEval=Nova evaluacija +ValidateEvaluation=Potvrdite evaluaciju +ConfirmValidateEvaluation=Jeste li sigurni da želite potvrditi ovu procjenu s referencom %s ? +EvaluationCard=Kartica za ocjenjivanje RequiredRank=Required rank for this job EmployeeRank=Employee rank for this skill -Position=Pozicija -Positions=Positions -PositionCard=Position card +EmployeePosition=Položaj zaposlenika +EmployeePositions=Employee positions EmployeesInThisPosition=Employees in this position group1ToCompare=Usergroup to analyze group2ToCompare=Second usergroup for comparison @@ -64,18 +64,28 @@ 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=Natpis -TypeSkill=Skill type +TypeSkill=Vrsta vještine AddSkill=Add skills to job RequiredSkills=Required skills for this job UserRank=User Rank -SkillList=Skill list +SkillList=Popis vještina SaveRank=Save rank -knowHow=Know how -HowToBe=How to be -knowledge=Knowledge +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Znanje 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=Najviši rang +SkillComparison=Usporedba vještina +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 = 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 6a437ac1b7b..5195a2e170d 100644 --- a/htdocs/langs/hr_HR/install.lang +++ b/htdocs/langs/hr_HR/install.lang @@ -1,187 +1,183 @@ # 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. -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. -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=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 is required. -ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. -ErrorDatabaseAlreadyExists=Database '%s' already exists. -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 +InstallEasy=Samo slijedite upute korak po korak. +MiscellaneousChecks=Provjera preduvjeta +ConfFileExists=Konfiguracijska datoteka %s postoji. +ConfFileDoesNotExistsAndCouldNotBeCreated=Konfiguracijska datoteka %s ne postoji i nije se mogla kreirati! +ConfFileCouldBeCreated=Konfiguracijska datoteka %s može biti kreirana. +ConfFileIsNotWritable=U konfiguracijsku datoteku %s nije moguće pisati. Provjerite dopuštenja. Za prvu instalaciju, vaš web poslužitelj mora moći pisati u ovu datoteku tijekom procesa konfiguracije ("chmod 666" na primjer na Unix-u poput OS-a). +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 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. +PHPSupport=Ovaj PHP podržava funkcije %s. +PHPMemoryOK=Vaša maksimalna PHP memorija sesije postavljena je na %s . Ovo bi trebalo biti dovoljno. +PHPMemoryTooLow=Vaša PHP maksimalna memorija sesije postavljena je na %s bajtova. Ovo je prenisko. Promijenite svoj php.ini da postavite parametar memory_limit na najmanje %s bajtova. +Recheck=Kliknite ovdje za detaljniji test +ErrorPHPDoesNotSupportSessions=Vaša PHP instalacija ne podržava sesije. Ova značajka je potrebna kako bi se Dolibarr omogućio rad. Provjerite svoje PHP postavke i dopuštenja direktorija sesija. +ErrorPHPDoesNotSupport=Vaša PHP instalacija ne podržava funkcije %s. +ErrorDirDoesNotExists=Direktorij %s ne postoji. +ErrorGoBackAndCorrectParameters=Vratite se i provjerite/ispravite parametre. +ErrorWrongValueForParameter=Možda ste upisali pogrešnu vrijednost za parametar '%s'. +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 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. +PHPVersion=PHP verzija +License=Korištenje licence +ConfigurationFile=Konfiguracijska datoteka +WebPagesDirectory=Direktorij u kojem se pohranjuju web stranice +DocumentsDirectory=Imenik za pohranu prenesenih i generiranih dokumenata 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 +ForceHttps=Prisilite sigurne veze (https) +CheckToForceHttps=Označite ovu opciju da biste prisilili sigurne veze (https).
    Ovo zahtijeva da web poslužitelj bude konfiguriran sa SSL certifikatom. +DolibarrDatabase=Dolibarr baza podataka +DatabaseType=Vrsta baze podataka DriverType=Vrsta upr. programa 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 +ServerAddressDescription=Naziv ili IP adresa za poslužitelj baze podataka. Obično 'localhost' kada je poslužitelj baze podataka smješten na istom poslužitelju kao i web poslužitelj. +ServerPortDescription=Port poslužitelja baze podataka. Ostavite prazno ako je nepoznato. +DatabaseServer=Poslužitelj baze podataka DatabaseName=Naziv baze podataka -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 +DatabasePrefix=Prefiks tablice baze podataka +DatabasePrefixDescription=Prefiks tablice baze podataka. Ako je prazno, zadano je llx_. +AdminLogin=Korisnički račun za vlasnika baze podataka Dolibarr. +PasswordAgain=Ponovno upišite potvrdu lozinke +AdminPassword=Lozinka za vlasnika baze podataka Dolibarr. +CreateDatabase=Izradi bazu podataka +CreateUser=Stvorite korisnički račun ili dodijelite dopuštenje korisničkog računa za bazu podataka Dolibarr +DatabaseSuperUserAccess=Poslužitelj baze podataka - Pristup superkorisnika +CheckToCreateDatabase=Označite potvrdni okvir ako baza podataka još ne postoji pa se mora kreirati.
    U tom slučaju, također morate unijeti korisničko ime i lozinku za račun superkorisnika na dnu ove stranice. +CheckToCreateUser=Označite okvir ako:
    korisnički račun baze podataka još ne postoji pa se mora kreirati ili
    ako korisnički račun postoji, ali baza podataka ne postoji i moraju se dodijeliti dopuštenja.
    U tom slučaju morate unijeti korisnički račun i lozinku i također ime i lozinku superkorisničkog računa na dnu ove stranice. Ako ovaj okvir nije označen, vlasnik baze podataka i lozinka moraju već postojati. +DatabaseRootLoginDescription=Naziv računa superkorisnika (za stvaranje novih baza podataka ili novih korisnika), obavezno ako baza podataka ili njezin vlasnik već ne postoji. +KeepEmptyIfNoPassword=Ostavite prazno ako superkorisnik nema lozinku (NE preporuča se) +SaveConfigurationFile=Spremanje parametara u +ServerConnection=Veza sa poslužiteljem +DatabaseCreation=Kreiranje baze podataka CreateDatabaseObjects=Database objects creation ReferenceDataLoading=Reference data loading TablesAndPrimaryKeysCreation=Tables and Primary keys creation -CreateTableAndPrimaryKey=Create table %s +CreateTableAndPrimaryKey=Napravite tablicu %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. +FunctionsCreation=Stvaranje funkcija +AdminAccountCreation=Kreiranje administratorske prijave +PleaseTypePassword=Unesite lozinku, prazne lozinke nisu dopuštene! +PleaseTypeALogin=Molimo upišite prijavu! +PasswordsMismatch=Lozinke se razlikuju, pokušajte ponovno! +SetupEnd=Kraj postavljanja +SystemIsInstalled=Ova instalacija je dovršena. +SystemIsUpgraded=Dolibarr je uspješno nadograđen. +YouNeedToPersonalizeSetup=Morate konfigurirati Dolibarr tako da odgovara vašim potrebama (izgled, značajke, ...). Da biste to učinili, slijedite donju poveznicu: +AdminLoginCreatedSuccessfuly=Dolibarr administratorska prijava ' %s ' uspješno je kreirana. +GoToDolibarr=Idi u Dolibarr +GoToSetupArea=Idite na Dolibarr (područje postavljanja) +MigrationNotFinished=Verzija baze podataka nije potpuno ažurirana: ponovno pokrenite postupak nadogradnje. +GoToUpgradePage=Ponovno idite na stranicu za nadogradnju +WithNoSlashAtTheEnd=Bez kose crte "/" na kraju +DirectoryRecommendation= VAŽNO : Morate koristiti direktorij koji je izvan web stranica (tako da nemojte koristiti poddirektorij prethodnog parametra). +LoginAlreadyExists=Već postoji +DolibarrAdminLogin=Dolibarr administratorska prijava +AdminLoginAlreadyExists=Dolibarr administratorski račun ' %s ' već postoji. Vratite se ako želite stvoriti još jednu. FailedToCreateAdminLogin=Neuspješno kreiranje administratorskog računa. -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. +WarningRemoveInstallDir=Upozorenje, iz sigurnosnih razloga, nakon završetka instalacije ili nadogradnje, trebali biste dodati datoteku pod nazivom install.lock u direktorij dokumenata Dolibarr kako biste spriječili ponovno slučajnu/zlonamjernu upotrebu instalacijskih alata. +FunctionNotAvailableInThisPHP=Nije dostupno u ovom PHP-u +ChoosedMigrateScript=Odaberite skriptu za migraciju +DataMigration=Migracija baze podataka (podaci) +DatabaseMigration=Migracija baze podataka (struktura + neki podaci) +ProcessMigrateScript=Obrada skripte +ChooseYourSetupMode=Odaberite način postavljanja i kliknite "Početak"... +FreshInstall=Svježa instalacija +FreshInstallDesc=Koristite ovaj način ako vam je ovo prva instalacija. Ako nije, ovaj način rada može popraviti nepotpunu prethodnu instalaciju. Ako želite nadograditi svoju verziju, odaberite način rada "Nadogradnja". Upgrade=Nadogradnja -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. +UpgradeDesc=Koristite ovaj način ako ste stare Dolibarr datoteke zamijenili datotekama iz novije verzije. Ovo će nadograditi vašu bazu podataka i podatke. +Start=Početak +InstallNotAllowed=Postavljanje nije dopušteno dopuštenjima conf.php +YouMustCreateWithPermission=Morate stvoriti datoteku %s i postaviti dopuštenja za pisanje na njoj za web poslužitelj tijekom procesa instalacije. +CorrectProblemAndReloadPage=Molimo riješite problem i pritisnite F5 za ponovno učitavanje stranice. +AlreadyDone=Već migrirano +DatabaseVersion=Verzija baze podataka +ServerVersion=Verzija poslužitelja baze podataka +YouMustCreateItAndAllowServerToWrite=Morate stvoriti ovaj direktorij i omogućiti web poslužitelju da upiše u njega. +DBSortingCollation=Redoslijed sortiranja znakova +YouAskDatabaseCreationSoDolibarrNeedToConnect=Odabrali ste stvoriti bazu podataka %s , ali za to, Dolibarr treba spojiti na server %s sa super korisnika %s dozvole. +YouAskLoginCreationSoDolibarrNeedToConnect=Odabrali ste stvoriti bazu podataka korisnika %s , ali za to, Dolibarr treba spojiti na server %s sa super korisnika %s dozvole. +BecauseConnectionFailedParametersMayBeWrong=Povezivanje baze podataka nije uspjelo: parametri hosta ili superkorisnika moraju biti pogrešni. 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) +RemoveItManuallyAndPressF5ToContinue=Uklonite ga ručno i pritisnite F5 za nastavak. +FieldRenamed=Polje je preimenovano +IfLoginDoesNotExistsCheckCreateUser=Ako korisnik još ne postoji, morate označiti opciju "Kreiraj korisnika" +ErrorConnection=Server „ %s ”, baza ime „ %s ” Prijava „ %s ”, ili baze podataka lozinka neispravna ili verzija PHP klijent može biti prestar u odnosu na verziju baze podataka. +InstallChoiceRecommanded=Preporučeni izbor za instalaciju verzije %s iz vaše trenutne verzije %s +InstallChoiceSuggested= Izbor instalacije koji je predložio instalater . +MigrateIsDoneStepByStep=Ciljana verzija (%s) ima prazninu od nekoliko verzija. Čarobnjak za instalaciju će se vratiti i predložiti daljnju migraciju nakon što se ova dovrši. +CheckThatDatabasenameIsCorrect=Provjerite je li naziv baze podataka " %s " ispravan. +IfAlreadyExistsCheckOption=Ako je ovo ime ispravno i ta baza podataka još ne postoji, morate označiti opciju "Kreiraj bazu podataka". +OpenBaseDir=PHP openbasedir parametar +YouAskToCreateDatabaseSoRootRequired=Označili ste okvir "Kreiraj bazu podataka". Za to morate unijeti prijavu/lozinku superkorisnika (na dnu obrasca). +YouAskToCreateDatabaseUserSoRootRequired=Označili ste okvir "Kreiraj vlasnika baze podataka". Za to morate unijeti prijavu/lozinku superkorisnika (na dnu obrasca). +NextStepMightLastALongTime=Trenutni korak može potrajati nekoliko minuta. Molimo pričekajte da se sljedeći zaslon u potpunosti prikaže prije nego što nastavite. +MigrationCustomerOrderShipping=Migrirajte otpremu za pohranu prodajnih naloga +MigrationShippingDelivery=Nadogradite pohranu otpreme +MigrationShippingDelivery2=Nadogradite pohranu otpreme 2 +MigrationFinished=Migracija je završena +LastStepDesc= Zadnji korak : Ovdje definirajte prijavu i lozinku koju želite koristiti za povezivanje s Dolibarrom. Nemojte ovo izgubiti jer je to glavni račun za administraciju svih ostalih/dodatnih korisničkih računa. +ActivateModule=Aktivirajte modul %s +ShowEditTechnicalParameters=Kliknite ovdje za prikaz/uređivanje naprednih parametara (stručni način rada) 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. +KeepDefaultValuesDeb=Koristili ste Dolibarr čarobnjak za postavljanje iz Linux paketa (Ubuntu, Debian, Fedora...), tako da su vrijednosti koje su ovdje predložene već optimizirane. Mora se unijeti samo lozinka vlasnika baze podataka koju treba izraditi. Ostale parametre mijenjajte samo ako znate što radite. 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 +UpgradeExternalModule=Pokrenite namjenski proces nadogradnje vanjskog modula +SetAtLeastOneOptionAsUrlParameter=Postavite barem jednu opciju kao parametar u URL-u. Na primjer: '...repair.php?standard=confirmed' +NothingToDelete=Ništa za čišćenje/brisanje +NothingToDo=Ništa za raditi ######### # upgrade -MigrationFixData=Fix for denormalized data -MigrationOrder=Data migration for customer's orders -MigrationSupplierOrder=Data migration for vendor's orders +MigrationFixData=Popravak za denormalizirane podatke +MigrationOrder=Migracija podataka za narudžbe kupaca +MigrationSupplierOrder=Migracija podataka za narudžbe dobavljača MigrationProposal=Migracija podataka za ponude -MigrationInvoice=Data migration for customer's invoices -MigrationContract=Data migration for contracts -MigrationSuccessfullUpdate=Upgrade successful -MigrationUpdateFailed=Failed upgrade process +MigrationInvoice=Migracija podataka za račune kupaca +MigrationContract=Migracija podataka za ugovore +MigrationSuccessfullUpdate=Nadogradnja uspjela +MigrationUpdateFailed=Proces nadogradnje nije uspio 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 +MigrationPaymentsUpdate=Ispravak podataka o plaćanju +MigrationPaymentsNumberToUpdate=%s plaćanja za ažuriranje +MigrationProcessPaymentUpdate=Ažurirajte plaćanje(a) %s +MigrationPaymentsNothingToUpdate=Nema više stvari za raditi +MigrationPaymentsNothingUpdatable=Nema više plaćanja koja se mogu ispraviti +MigrationContractsUpdate=Ispravak podataka o ugovoru 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. +MigrationContractsNothingToUpdate=Nema više stvari za raditi +MigrationContractsFieldDontExist=Polje fk_facture više ne postoji. Ništa za raditi. 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 +MigrationContractsInvalidDatesNumber=%s ugovori izmijenjeni +MigrationContractsInvalidDatesNothingToUpdate=Nema datuma s lošom vrijednošću za ispravljanje 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 +MigrationReopeningContracts=Otvoreni ugovor zatvoren greškom +MigrationReopenThisContract=Ponovno otvorite ugovor %s +MigrationReopenedContractsNumber=%s ugovori izmijenjeni MigrationReopeningContractsNothingToUpdate=No closed contract to open MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer MigrationBankTransfertsNothingToUpdate=All links are up to date @@ -193,27 +189,27 @@ MigrationMenusDetail=Update dynamic menus tables MigrationDeliveryAddress=Ažuriraj adresu dostave kod isporuke 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 +MigrationProjectTaskTime=Ažurirajte vrijeme provedeno u sekundama +MigrationActioncommElement=Ažurirajte podatke o akcijama +MigrationPaymentMode=Migracija podataka za vrstu plaćanja +MigrationCategorieAssociation=Migracija kategorija 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 +MigrationEventsContact=Migracija događaja za dodavanje kontakta događaja u tablicu dodjele +MigrationRemiseEntity=Ažurirajte vrijednost polja entiteta llx_societe_remise +MigrationRemiseExceptEntity=Ažurirajte vrijednost polja entiteta llx_societe_remise_except +MigrationUserRightsEntity=Ažurirajte vrijednost polja entiteta llx_user_rights +MigrationUserGroupRightsEntity=Ažurirajte vrijednost polja entiteta llx_usergroup_rights MigrationUserPhotoPath=Migration of photo paths for users -MigrationFieldsSocialNetworks=Migration of users fields social networks (%s) -MigrationReloadModule=Reload module %s +MigrationFieldsSocialNetworks=Migracija korisničkih polja društvenih mreža (%s) +MigrationReloadModule=Ponovno učitajte modul %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 +MigrationImportOrExportProfiles=Migracija uvoznih ili izvoznih profila (%s) +ShowNotAvailableOptions=Prikaži nedostupne opcije +HideNotAvailableOptions=Sakrij nedostupne opcije +ErrorFoundDuringMigration=Pogreške su prijavljene tijekom procesa migracije pa sljedeći korak nije dostupan. Da biste zanemarili pogreške, možete kliknuti ovdje , ali aplikacija ili neke značajke možda neće raditi ispravno dok se pogreške ne riješe. +YouTryInstallDisabledByDirLock=Aplikacija se pokušala samostalno nadograditi, ali stranice za instalaciju/nadogradnju onemogućene su radi sigurnosti (direktorij je preimenovan sa sufiksom .lock).
    +YouTryInstallDisabledByFileLock=Aplikacija se pokušala samostalno nadograditi, ali stranice za instalaciju/nadogradnju su onemogućene radi sigurnosti (zbog postojanja datoteke zaključavanja install.lock u direktoriju dokumenata dolibarra).
    +ClickHereToGoToApp=Kliknite ovdje da biste otišli na svoju prijavu +ClickOnLinkOrRemoveManualy=Ako je nadogradnja u tijeku, pričekajte. Ako ne, kliknite na sljedeću poveznicu. Ako uvijek vidite istu stranicu, morate ukloniti/preimenovati datoteku install.lock u direktoriju dokumenata. +Loaded=Učitano +FunctionTest=Funkcionalni test diff --git a/htdocs/langs/hr_HR/knowledgemanagement.lang b/htdocs/langs/hr_HR/knowledgemanagement.lang index b4540191757..373e150ab3f 100644 --- a/htdocs/langs/hr_HR/knowledgemanagement.lang +++ b/htdocs/langs/hr_HR/knowledgemanagement.lang @@ -39,16 +39,16 @@ KnowledgeManagementAboutPage = Knowledge Management about page KnowledgeManagementArea = Knowledge Management MenuKnowledgeRecord = Knowledge base -ListKnowledgeRecord = List of articles -NewKnowledgeRecord = New article -ValidateReply = Validate solution -KnowledgeRecords = Articles +ListKnowledgeRecord = Popis članaka +NewKnowledgeRecord = Novi članak +ValidateReply = Potvrdite rješenje +KnowledgeRecords = Članci KnowledgeRecord = Stavka 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" ? +SetObsolete=Postavi kao zastarjelo +ConfirmCloseKM=Potvrđujete li zatvaranje ovog članka kao zastarjelog? +ConfirmReopenKM=Želite li vratiti ovaj članak na status "Provjeren"? diff --git a/htdocs/langs/hr_HR/loan.lang b/htdocs/langs/hr_HR/loan.lang index 206a2004e1e..5daf92b5972 100644 --- a/htdocs/langs/hr_HR/loan.lang +++ b/htdocs/langs/hr_HR/loan.lang @@ -19,7 +19,7 @@ LoanDeleted=Kredit je uspješno obrisan ConfirmPayLoan=Potvrdite označivanje isplaćen kredit LoanPaid=Kredit isplaćen ListLoanAssociatedProject=List of loan associated with the project -AddLoan=Create loan +AddLoan=Kreirajte zajam FinancialCommitment=Financial commitment InterestAmount=Kamata CapitalRemain=Capital remain diff --git a/htdocs/langs/hr_HR/mails.lang b/htdocs/langs/hr_HR/mails.lang index 7cecc064144..ee11e037600 100644 --- a/htdocs/langs/hr_HR/mails.lang +++ b/htdocs/langs/hr_HR/mails.lang @@ -15,23 +15,23 @@ MailToUsers=Korisnicima MailCC=Kopirajte u MailToCCUsers=Kopirajte korisniku(cima) MailCCC=Predmemorirana kopija u -MailTopic=Email subject +MailTopic=Predmet e-pošte MailText=Poruka -MailFile=Attached files +MailFile=Priložene datoteke MailMessage=Tijelo e-pošte -SubjectNotIn=Not in Subject -BodyNotIn=Not in Body -ShowEMailing=Show emailing -ListOfEMailings=List of emailings -NewMailing=New emailing -EditMailing=Edit emailing +SubjectNotIn=Nije u predmetu +BodyNotIn=Nije u sadržaju poruke +ShowEMailing=Prikaži slanje e-pošte +ListOfEMailings=Popis e-mailova +NewMailing=Novo slanje e-pošte +EditMailing=Uredite e-poštu ResetMailing=Resend emailing DeleteMailing=Delete emailing DeleteAMailing=Delete an emailing PreviewMailing=Preview emailing CreateMailing=Create emailing -TestMailing=Test email -ValidMailing=Valid emailing +TestMailing=Test e-pošte +ValidMailing=Valjano slanje e-pošte MailingStatusDraft=Skica MailingStatusValidated=Ovjereno MailingStatusSent=Poslano @@ -41,49 +41,49 @@ MailingStatusError=Greška MailingStatusNotSent=Nije poslano MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated -MailUnsubcribe=Unsubscribe +MailUnsubcribe=Otkaži pretplatu MailingStatusNotContact=Don't contact anymore -MailingStatusReadAndUnsubscribe=Read and unsubscribe +MailingStatusReadAndUnsubscribe=Pročitajte i odjavite se 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 +NbOfUniqueEMails=Broj jedinstvenih e-poruka +NbOfEMails=Broj e-poruka +TotalNbOfDistinctRecipients=Broj različitih primatelja NoTargetYet=No recipients defined yet (Go on tab 'Recipients') -NoRecipientEmail=No recipient email for %s -RemoveRecipient=Remove recipient +NoRecipientEmail=Nema primatelja e-pošte za %s +RemoveRecipient=Ukloni primatelja 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 +MailingAddFile=Priložite ovu datoteku +NoAttachedFiles=Nema priloženih datoteka +BadEMail=Loša vrijednost za e-poštu +EMailNotDefined=E-pošta nije definirana +ConfirmCloneEMailing=Jeste li sigurni da želite klonirati ovu e-poruku? +CloneContent=Kloniraj poruku CloneReceivers=Cloner recipients DateLastSend=Datum zadnjeg slanja -DateSending=Date sending -SentTo=Sent to %s -MailingStatusRead=Read -YourMailUnsubcribeOK=The email %s is correctly unsubscribe from mailing list +DateSending=Datum slanja +SentTo=Poslano na %s +MailingStatusRead=Čitati +YourMailUnsubcribeOK=E-pošta %s ispravno je otkazala pretplatu na mailing listu 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 +GroupEmails=Grupne e-poruke 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? +SentXXXmessages=%s poruka(a) poslana. +ConfirmUnvalidateEmailing=Jeste li sigurni da želite promijeniti e-poštu %s u status nacrta? MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third-party category MailingModuleDescContactsByCategory=Contacts by categories @@ -102,33 +102,33 @@ MailSelectedRecipients=Selected recipients MailingArea=EMailings area LastMailings=Latest %s emailings TargetsStatistics=Targets statistics -NbOfCompaniesContacts=Unique contacts/addresses +NbOfCompaniesContacts=Jedinstveni kontakti/adrese MailNoChangePossible=Recipients for validated emailing can't be changed SearchAMailing=Search mailing SendMailing=Send emailing -SentBy=Sent by +SentBy=Poslano od 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 +TargetsReset=Očisti listu 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. +IdRecord=ID zapis +DeliveryReceipt=Potvrda isporuke. 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 +TagCheckMail=Pratiti otvaranje pošte +TagUnsubscribe=Veza za odjavu +TagSignature=Potpis korisnika koji šalje +EMailRecipient=E-pošta primatelja TagMailtoEmail=Recipient Email (including html "mailto:" link) NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. # Module Notifications Notifications=Obavijesti NotificationsAuto=Notifications Auto. -NoNotificationsWillBeSent=No automatic email notifications are planned for this event type and company +NoNotificationsWillBeSent=Za ovu vrstu događaja i tvrtku nisu planirane automatske obavijesti e-poštom 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) @@ -144,37 +144,37 @@ UseFormatInputEmailToTarget=Enter a string with format email;name;firstn 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 +AdvTgtSearchIntHelp=Koristite interval za odabir int ili float vrijednosti +AdvTgtMinVal=Minimalna vrijednost +AdvTgtMaxVal=Maksimalna vrijednost +AdvTgtSearchDtHelp=Koristite interval za odabir vrijednosti datuma 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 +AdvTgtTypeOfIncude=Vrsta ciljane e-pošte +AdvTgtContactHelp=Koristite samo ako ciljate kontakt na "Vrstu ciljane e-pošte" +AddAll=Dodaj Sve +RemoveAll=Ukloniti sve +ItemsCount=Stavke +AdvTgtNameTemplate=Naziv filtera +AdvTgtAddContact=Dodajte emailove prema kriterijima +AdvTgtLoadFilter=Učitajte filter +AdvTgtDeleteFilter=Izbriši filter +AdvTgtSaveFilter=Spremi filter +AdvTgtCreateFilter=Napravite filter +AdvTgtOrCreateNewFilter=Naziv novog filtera +NoContactWithCategoryFound=Nije pronađena nijedna kategorija povezana s nekim kontaktima/adresama 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 +OutGoingEmailSetup=Odlazne e-poruke +InGoingEmailSetup=Dolazne e-poruke +OutGoingEmailSetupForEmailing=Odlazne e-poruke (za modul %s) +DefaultOutgoingEmailSetup=Ista konfiguracija kao globalna postavka odlazne e-pošte Information=Podatak 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 +Unanswered=Nije odgovoreno +Answered=Odgovoreno +IsNotAnAnswer=Nije odgovor (početni email) +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 diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index 27431f7470f..f4cb6a922b8 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -29,8 +29,8 @@ AvailableVariables=Dostupne zamjenske vrijednosti NoTranslation=Bez prijevoda Translation=Prijevod CurrentTimeZone=Vremenska zona PHP (server) -EmptySearchString=Enter non empty search criterias -EnterADateCriteria=Enter a date criteria +EmptySearchString=Unesite kriterije pretraživanja +EnterADateCriteria=Unesite kriterij datuma NoRecordFound=Spis nije pronađen NoRecordDeleted=Spis nije izbrisan NotEnoughDataYet=Nedovoljno podataka @@ -66,9 +66,9 @@ ErrorCantLoadUserFromDolibarrDatabase=Korisnik %s ne postoji u bazi Dolib ErrorNoVATRateDefinedForSellerCountry=Greška, za zemlju '%s' nisu upisane stope poreza ErrorNoSocialContributionForSellerCountry=Greška, za zemlju '%s' nisu upisani društveni/fiskalni porezi. ErrorFailedToSaveFile=Greška, neuspješno snimanje datoteke. -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=Pokušavate dodati nadređeno skladište koje je već podređeno postojećem skladištu +FieldCannotBeNegative=Polje "%s" ne može biti negativno +MaxNbOfRecordPerPage=Maks. broj zapisa po stranici NotAuthorized=Niste ovlašteni da ovo učinite. SetDate=Upiši datum SelectDate=Izaberi datum @@ -88,11 +88,11 @@ FileWasNotUploaded=Datoteka za prilog je odabrana, ali još nije učitana. Klikn NbOfEntries=Broj unosa GoToWikiHelpPage=Pročitajte Online pomoć (potreban pristup Internetu) GoToHelpPage=Pročitaj pomoć -DedicatedPageAvailable=Dedicated help page related to your current screen -HomePage=Home Page +DedicatedPageAvailable=Namjenska stranica pomoći povezana s vašim trenutnim zaslonom +HomePage=Početna stranica RecordSaved=Podatak spremljen RecordDeleted=Podatak obrisan -RecordGenerated=Record generated +RecordGenerated=Zapis je generiran LevelOfFeature=Razina mogućnosti NotDefined=Nije određeno DolibarrInHttpAuthenticationSoPasswordUseless=Način ovjere vjerodostojnosti Dolibarra namješten je na %s u datoteci s postavkamaconf.php.
    To znači da je datoteka sa zaporkama odvojena od Dolibarra pa upisivanje u ovo polje neće imati učinka. @@ -115,18 +115,18 @@ ReturnCodeLastAccessInError=Povratni podatak zadnje greške pristupa bazi InformationLastAccessInError=Podaci o zadnjoj grešci pristupa bazi DolibarrHasDetectedError=Dolibarr je pronašao tehničku grešku YouCanSetOptionDolibarrMainProdToZero=Za više informacija pročitajte datoteku sa zapisima ili namjestite opciju $dolibarr_main_prod na "0" u datoteci s postavkama -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +InformationToHelpDiagnose=Ove informacije mogu biti korisne u dijagnostičke svrhe (možete postaviti opciju $dolibarr_main_prod na '1' da biste sakrili osjetljive informacije) MoreInformation=Više podataka TechnicalInformation=Tehnički podac TechnicalID=Tehnička iskaznica -LineID=Line ID +LineID=ID linije NotePublic=Bilješka (javna) NotePrivate=Bilješka (unutarnja) PrecisionUnitIsLimitedToXDecimals=Dolibarr je podešen tako da prikazuje jedinične cijene na %s decimala. DoTest=Test ToFilter=Filter NoFilter=Bez filtera -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +WarningYouHaveAtLeastOneTaskLate=Upozorenje, imate barem jedan element koji je premašio vrijeme tolerancije. yes=da Yes=Da no=ne @@ -181,7 +181,7 @@ SaveAndNew=Spremi i novi TestConnection=Provjera veze ToClone=Kloniraj ConfirmCloneAsk=Jeste li sigurni da želite kolinirati predmet %s? -ConfirmClone=Choose the data you want to clone: +ConfirmClone=Odaberite podatke koje želite klonirati: NoCloneOptionsSpecified=Podaci za kloniranje nisu izabrani. Of=od Go=Idi @@ -202,7 +202,7 @@ ReOpen=Ponovo otvori Upload=Podigni ToLink=Poveznica Select=Odaberi -SelectAll=Select all +SelectAll=Odaberi sve Choose=Izaberi Resize=Promjeni veličinu ResizeOrCrop=Izmjena veličine ili obrezivanje @@ -212,8 +212,8 @@ User=Korisnik Users=Korisnici Group=Grupa Groups=Grupe -UserGroup=User group -UserGroups=User groups +UserGroup=Grupa korisnika +UserGroups=Grupe korisnika NoUserGroupDefined=Grupa korisnika nije izrađena Password=Zaporka PasswordRetype=Ponovi zaporku @@ -227,7 +227,7 @@ Value=Vrijednost PersonalValue=Osobna vrijednost NewObject=Novi%s NewValue=Nova vrijednost -OldValue=Old value %s +OldValue=Stara vrijednost %s CurrentValue=Trenutna vrijednost Code=Oznaka Type=Vrsta @@ -243,13 +243,14 @@ Description=Opis Designation=Opis DescriptionOfLine=Opis redka DateOfLine=Datum redka -DurationOfLine=Duration of line +DurationOfLine=Trajanje linije +ParentLine=ID roditeljske linije Model=Predložak dokumenta DefaultModel=Osnovni doc predložak Action=Događaj About=O programu Number=Broj -NumberByMonth=Total reports by month +NumberByMonth=Ukupno izvješća po mjesecima AmountByMonth=Iznos po mjesecima Numero=Broj Limit=Granična vrijednost @@ -266,7 +267,7 @@ Cards=Kartice Card=Kartica Now=Sad HourStart=Početni sat -Deadline=Deadline +Deadline=Rok Date=Datum DateAndHour=Datum i vrijeme DateToday=Današnji datum @@ -275,13 +276,13 @@ DateStart=Početni datum DateEnd=Završni datum DateCreation=Datum izrade DateCreationShort=Datum izrade -IPCreation=Creation IP +IPCreation=IP stvaranja DateModification=Datum izmjene DateModificationShort=Datum izmjene -IPModification=Modification IP +IPModification=Modifikacija IP DateLastModification=Datum zadnje izmjene DateValidation=Datum ovjere -DateSigning=Signing date +DateSigning=Datum potpisivanja DateClosing=Datum zatvaranja DateDue=Datum dospijeća DateValue=Datum vrijednosti @@ -333,7 +334,7 @@ Morning=Ujutro Afternoon=Poslije podne Quadri=Četvrtgodišnje MonthOfDay=Jedan mjesec od dana -DaysOfWeek=Days of week +DaysOfWeek=Dani u tjednu HourShort=H MinuteShort=mn Rate=Stopa @@ -344,8 +345,8 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by -UserModif=Updated by +UserAuthor=Izradio +UserModif=Ažurirao b=b. Kb=Kb Mb=Mb @@ -365,13 +366,13 @@ UnitPriceHTCurrency=Jedinična cijena (bez poreza) (u valuti) UnitPriceTTC=Jedinična cijena PriceU=Jed. cij. PriceUHT=Jedinična cijena -PriceUHTCurrency=U.P (net) (currency) +PriceUHTCurrency=U.P (neto) (valuta) PriceUTTC=J.C. (s porezom) Amount=Iznos AmountInvoice=Iznos računa AmountInvoiced=Zaračunati iznos AmountInvoicedHT=Zaračunati iznos (bez poreza) -AmountInvoicedTTC=Amount invoiced (inc. tax) +AmountInvoicedTTC=Fakturirani iznos (uključujući porez) AmountPayment=Iznos plaćanja AmountHTShort=Iznos (bez PDV-a) AmountTTCShort=Iznos (s porezom) @@ -384,23 +385,23 @@ MulticurrencyPaymentAmount=Iznos plaćanja, u izvornoj valuti MulticurrencyAmountHT=Iznos (bez PDV-a), prvotna valuta MulticurrencyAmountTTC=Iznos (s porezom), u izvornoj valuti MulticurrencyAmountVAT=Iznos poreza, u izvornoj valuti -MulticurrencySubPrice=Amount sub price multi currency +MulticurrencySubPrice=Više valuta ispod cijene iznosa AmountLT1=Iznos poreza 2 AmountLT2=Iznos poreza 3 AmountLT1ES=Iznos RE AmountLT2ES=Iznos IRPF AmountTotal=Ukupan iznos AmountAverage=Prosječan iznos -PriceQtyMinHT=Price quantity min. (excl. tax) -PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) -PercentOfOriginalObject=Percent of original object -AmountOrPercent=Amount or percent +PriceQtyMinHT=Cijena količina min. (bez poreza) +PriceQtyMinHTCurrency=Cijena količina min. (bez poreza) (valuta) +PercentOfOriginalObject=Postotak originalnog objekta +AmountOrPercent=Iznos ili postotak Percentage=Postotak Total=Ukupno SubTotal=Sveukupno TotalHTShort=Ukupno (bez poreza) -TotalHT100Short=Total 100%% (excl.) -TotalHTShortCurrency=Total (excl. in currency) +TotalHT100Short=Ukupno 100%% (isklj.) +TotalHTShortCurrency=Ukupno (osim u valuti) TotalTTCShort=Ukupno s PDV-om TotalHT=Ukupno bez PDV-a TotalHTforthispage=Ukupno (bez PDV-a) na ovoj stranici @@ -431,9 +432,9 @@ LT1ES=RE LT2ES=IRPF LT1IN=CGTS LT2IN=SGST -LT1GC=Additionnal cents +LT1GC=Dodatnih lipa VATRate=Stopa poreza -RateOfTaxN=Rate of tax %s +RateOfTaxN=Stopa poreza %s VATCode=Oznaka stope poreza VATNPR=Porezna stopa NPR DefaultTaxRate=Osnovna stopa poreza @@ -445,7 +446,7 @@ RemainToPay=Preostalo za platiti Module=Modul/Aplikacija Modules=Moduli/Aplikacije Option=Opcija -Filters=Filters +Filters=Filtri List=Popis FullList=Cijeli popis FullConversation=Cijeli razgovor @@ -497,7 +498,7 @@ TotalDuration=Ukupno trajanje Summary=Sažetak DolibarrStateBoard=Statistika baze podataka DolibarrWorkBoard=Otvorene stavke -NoOpenedElementToProcess=No open element to process +NoOpenedElementToProcess=Nema otvorenog elementa za obradu Available=Dostupno NotYetAvailable=Nije još dostupno NotAvailable=Nije dostupno @@ -511,12 +512,13 @@ to=za To=za ToDate=za ToLocation=za -at=at +at=na and=i or=ili Other=Ostalo Others=Ostali OtherInformations=Ostali podaci +Workflow=Tijek rada Quantity=Količina Qty=Količina ChangedBy=Promijenio @@ -532,7 +534,7 @@ Draft=Skica Drafts=Skice StatusInterInvoiced=Zaračunato Validated=Ovjereno -ValidatedToProduce=Validated (To produce) +ValidatedToProduce=Potvrđeno (za proizvodnju) Opened=Otvoreno OpenAll=Otvoreno (sve) ClosedAll=Zatvoreno (sve) @@ -619,6 +621,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Priložene datoteke i dokumenti JoinMainDoc=Sjedini glavni dokument +JoinMainDocOrLastGenerated=Send the main document or the last generated one if not found DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY HH:SS DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS @@ -665,7 +668,7 @@ SupplierPreview=Prikaz dobavljača ShowCustomerPreview=Prikaži kupca ShowSupplierPreview=Prikaži dobavljača RefCustomer=Vezani dokument pri kupcu -InternalRef=Internal ref. +InternalRef=Interna ref. Currency=Valuta InfoAdmin=Podaci za administratore Undo=Povrati @@ -687,13 +690,13 @@ SendMail=Pošalji e-poštu Email=E-pošta NoEMail=Nema e-pošte AlreadyRead=Već pročitano -NotRead=Unread +NotRead=Nepročitano NoMobilePhone=Nema mobilnog telefona Owner=Vlasnik FollowingConstantsWillBeSubstituted=Sljedeće konstante bit će zamjenjene s odgovarajućom vrijednošću. Refresh=Osvježi BackToList=Povratak na popis -BackToTree=Back to tree +BackToTree=Natrag na stablo GoBack=Idi nazad CanBeModifiedIfOk=Može se mijenjanti ako je valjana CanBeModifiedIfKo=Može se mijenjanti ako nije valjana @@ -701,20 +704,21 @@ ValueIsValid=Vrijednost je valjana ValueIsNotValid=Vrijednost nije valjana RecordCreatedSuccessfully=Spis uspješno izrađen RecordModifiedSuccessfully=Podatak je uspješno izmijenjen -RecordsModified=%s record(s) modified -RecordsDeleted=%s record(s) deleted -RecordsGenerated=%s record(s) generated +RecordsModified=%s zapis(i) izmijenjen +RecordsDeleted=%s zapis(i) izbrisani +RecordsGenerated=%s generiranih zapisa AutomaticCode=Automatski izabran kod 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 CompleteOrNoMoreReceptionExpected=Završeno ili bez drugih očekivanja ExpectedValue=Očekivana vrijednost -ExpectedQty=Expected Qty +ExpectedQty=Očekivana količina PartialWoman=Djelomično TotalWoman=Ukupno NeverReceived=Nikad primljeno @@ -731,10 +735,10 @@ MenuECM=Dokumenti MenuAWStats=AWStats MenuMembers=Članovi MenuAgendaGoogle=Google agenda -MenuTaxesAndSpecialExpenses=Taxes | Special expenses +MenuTaxesAndSpecialExpenses=Porezi | Posebni troškovi ThisLimitIsDefinedInSetup=Granična vrijednost Dolibarra (Mapa početna->postavke->sigurnost): %s Kb, PHP granična vrijednost: %s Kb -ThisLimitIsDefinedInSetupAt=Dolibarr limit (Menu %s): %s Kb, PHP limit (Param %s): %s Kb -NoFileFound=No documents uploaded +ThisLimitIsDefinedInSetupAt=Dolibarrovo ograničenje (Izbornik %s): %s Kb, PHP ograničenje (param %s): %s Kb +NoFileFound=Nema učitanih dokumenata CurrentUserLanguage=Trenutni jezik CurrentTheme=Trenutna tema CurrentMenuManager=Trenutni upravitelj izbornikom @@ -749,13 +753,13 @@ DateOfSignature=Datum potpisa HidePassword=Prikaži naredbu sa skrivenom zaporkom UnHidePassword=Prikaži stvarnu naredbu s čitljivom zaporkom Root=Početna mapa -RootOfMedias=Root of public medias (/medias) +RootOfMedias=Korijen javnih medija (/medias) Informations=Podatak Page=Strana Notes=Bilješke AddNewLine=Dodaj novu stavku AddFile=Dodaj datoteku -FreeZone=Free-text product +FreeZone=Proizvod slobodnog teksta FreeLineOfType=Slobodan upis, vrsta: CloneMainAttributes=Kloniraj predmet sa svim glavnim svojstvima ReGeneratePDF=Ponovo izradi PDF @@ -764,7 +768,7 @@ Merge=Spoji DocumentModelStandardPDF=Običan PDF predložak PrintContentArea=Prikaži stranicu za ispis MenuManager=Upravitelj izbornikom -WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode: only login %s is allowed to use the application in this mode. +WarningYouAreInMaintenanceMode=Upozorenje, nalazite se u načinu održavanja: samo prijava %s smije koristiti aplikaciju u ovom načinu rada. CoreErrorTitle=Sistemska greška CoreErrorMessage=Nažalost došlo je do greške. Kontaktirajte administratora da provjeri zapise ili isključi $dolibarr_main_prod=1 za više informacija. CreditCard=Kreditna kartica @@ -778,7 +782,7 @@ NotSupported=Nije podržano RequiredField=Obavezno polje Result=Rezultat ToTest=Test -ValidateBefore=Item must be validated before using this feature +ValidateBefore=Stavka mora biti potvrđena prije korištenja ove značajke Visibility=Vidljivost Totalizable=Sveukupno zbrojivo TotalizableDesc=Ovo polje je sveukupno zbrojivo s popisa. @@ -798,6 +802,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 @@ -806,8 +811,8 @@ LinkToSupplierProposal=Poveznica na ponudu dobavljača LinkToSupplierInvoice=Poveznica na račun dobavljača LinkToContract=Poveži s ugovorom LinkToIntervention=Poveži s zahvatom -LinkToTicket=Link to ticket -LinkToMo=Link to Mo +LinkToTicket=Link na tiket +LinkToMo=Veza na Mo CreateDraft=Izradi skicu SetToDraft=Nazad na skice ClickToEdit=Klikni za uređivanje @@ -851,7 +856,7 @@ XMoreLines=%s stavaka(e) skriveno ShowMoreLines=Prikaži više/manje redaka PublicUrl=Javni URL AddBox=Dodaj blok -SelectElementAndClick=Select an element and click on %s +SelectElementAndClick=Odaberite element i kliknite na %s PrintFile=Ispis datoteke %s ShowTransaction=Prikaži upis na bankovni račun ShowIntervention=Prikaži zahvat @@ -862,8 +867,8 @@ Denied=Odbijeno ListOf=Popis od %s ListOfTemplates=Popis predložaka Gender=Spol -Genderman=Male -Genderwoman=Female +Genderman=Muško +Genderwoman=Žensko Genderother=Ostalo ViewList=Pregled popisa ViewGantt="Gantt" prikaz @@ -881,13 +886,13 @@ TooManyRecordForMassAction=Odabrano previše podataka za masovnu obradu. Obrada NoRecordSelected=Ni jedan spis nije izabran MassFilesArea=Sučelje za datoteke izrađene masovnom radnjama ShowTempMassFilesArea=Prikaži sučelje datoteka stvorenih masovnom akcijom -ConfirmMassDeletion=Bulk Delete confirmation -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record(s)? +ConfirmMassDeletion=Potvrda skupnog brisanja +ConfirmMassDeletionQuestion=Jeste li sigurni da želite izbrisati %s odabrane zapise? RelatedObjects=Povezani dokumenti ClassifyBilled=Označi kao zaračunato ClassifyUnbilled=Označi kao nezaračunato Progress=Napredak -ProgressShort=Progr. +ProgressShort=Napredak FrontOffice=Front office BackOffice=Back office Submit=Predaj @@ -897,34 +902,34 @@ Exports=Izvoz podataka ExportFilteredList=Izvoz pročišćenog popisa ExportList=Spis izvoza ExportOptions=Opcije izvoza -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=Uključuje već izvezene dokumente +ExportOfPiecesAlreadyExportedIsEnable=Omogućen je izvoz već izvezenih komada +ExportOfPiecesAlreadyExportedIsDisable=Onemogućen je izvoz već izvezenih komada +AllExportedMovementsWereRecordedAsExported=Sva izvezena kretanja evidentirana su kao izvezena +NotAllExportedMovementsCouldBeRecordedAsExported=Nisu svi izvezeni pokreti mogli biti zabilježeni kao izvezeni Miscellaneous=Ostalo Calendar=Kalendar GroupBy=Grupiraj prema... ViewFlatList=Pregledaj popis bez grananja -ViewAccountList=View ledger -ViewSubAccountList=View subaccount ledger +ViewAccountList=Pregledajte knjigu +ViewSubAccountList=Pregledajte knjigu podračuna RemoveString=Ukloni redak '%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 +SomeTranslationAreUncomplete=Neki od ponuđenih jezika mogu biti samo djelomično prevedeni ili mogu sadržavati pogreške. Molimo pomozite da ispravite svoj jezik registracijom na https://transifex.com/projects/p/dolibarr/ kako biste dodali svoja poboljšanja. +DirectDownloadLink=Javni link za preuzimanje +PublicDownloadLinkDesc=Za preuzimanje datoteke potrebna je samo poveznica +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 ActualizeCurrency=Upiši novi tečaj Fiscalyear=Fiskalna godina -ModuleBuilder=Module and Application Builder +ModuleBuilder=Graditelj modula i aplikacija SetMultiCurrencyCode=Odredi valutu BulkActions=Opsežne radnje ClickToShowHelp=Klikni za prikaz pomoći WebSite=Mrežna stranica WebSites=Mrežne stranice -WebSiteAccounts=Website accounts +WebSiteAccounts=Računi web stranice ExpenseReport=Izvještaj troškova ExpenseReports=Izvještaji troškova HR=HR @@ -948,8 +953,8 @@ NewLeadOrProject=Novi plan ili projekt Rights=Prava pristupa LineNb=Redak br. IncotermLabel=Incoterms -TabLetteringCustomer=Customer lettering -TabLetteringSupplier=Vendor lettering +TabLetteringCustomer=Napis kupaca +TabLetteringSupplier=Natpis dobavljača Monday=Ponedjeljak Tuesday=Utorak Wednesday=Srijeda @@ -978,39 +983,39 @@ 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 -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 +one=jedan +two=dva +three=tri +four=četiri +five=pet +six=šest +seven=sedam +eight=osam +nine=devet +ten=deset +eleven=jedanaest +twelve=dvanaest +thirteen=trinaest +fourteen=četrnaest +fifteen=petnaest +sixteen=šesnaest +seventeen=sedamnaest +eighteen=osamnaest +nineteen=devetnaest +twenty=dvadeset +thirty=trideset +forty=četrdeset +fifty=pedeset +sixty=šezdeset +seventy=sedamdeset +eighty=osamdeset +ninety=devedeset +hundred=stotinu +thousand=tisuću +million=milijun +billion=milijarda +trillion=bilijun +quadrillion=kvadrilijun SelectMailModel=Odaberi predložak elektroničke pošte SetRef=Odredi oznaku Select2ResultFoundUseArrows=Pronađeni neki rezultati. Koristi strelice za izbor. @@ -1026,7 +1031,7 @@ SearchIntoContacts=Kontakti SearchIntoMembers=Članovi SearchIntoUsers=Korisnici SearchIntoProductsOrServices=Proizvodi ili usluge -SearchIntoBatch=Lots / Serials +SearchIntoBatch=Lotovi / Serije SearchIntoProjects=Projekti SearchIntoMO=Proizvodni nalozi SearchIntoTasks=Zadaci @@ -1041,10 +1046,10 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Pošiljke kupcu SearchIntoExpenseReports=Troškovnici SearchIntoLeaves=Napusti -SearchIntoTickets=Tickets -SearchIntoCustomerPayments=Customer payments -SearchIntoVendorPayments=Vendor payments -SearchIntoMiscPayments=Miscellaneous payments +SearchIntoTickets=Tiketi +SearchIntoCustomerPayments=Plaćanja kupaca +SearchIntoVendorPayments=Plaćanja dobavljača +SearchIntoMiscPayments=Razna plaćanja CommentLink=Napomene NbComments=Broj napomena CommentPage=Prostor za napomene @@ -1063,14 +1068,14 @@ KeyboardShortcut=Kratica tipkovnice AssignedTo=Dodijeljeno korisniku Deletedraft=Obriši skicu ConfirmMassDraftDeletion=Potvrda masovnog brisanja skica -FileSharedViaALink=File shared with a public link +FileSharedViaALink=Datoteka je podijeljena s javnom vezom SelectAThirdPartyFirst=Prvo izaberite treću osobu... YouAreCurrentlyInSandboxMode=Trenutno ste %s u "sandbox" načinu rada Inventory=Zalihe -AnalyticCode=Analytic code +AnalyticCode=Analitički kod TMenuMRP=MRP -ShowCompanyInfos=Show company infos -ShowMoreInfos=Show More Infos +ShowCompanyInfos=Prikaži podatke o tvrtki +ShowMoreInfos=Prikaži više informacija NoFilesUploadedYet=Molim prvo učitajte dokument SeePrivateNote=Vidi privatne bilješke PaymentInformation=Podaci o plaćanju @@ -1078,12 +1083,12 @@ ValidFrom=Vrijedi od ValidUntil=Vrijedi do NoRecordedUsers=Nema korsinika ToClose=Za zatvaranje -ToRefuse=To refuse +ToRefuse=Odbiti ToProcess=Za provedbu ToApprove=Za odobrenje GlobalOpenedElemView=Opći pregled -NoArticlesFoundForTheKeyword=No article found for the keyword '%s' -NoArticlesFoundForTheCategory=No article found for the category +NoArticlesFoundForTheKeyword=Nije pronađen članak za ključnu riječ ' %s ' +NoArticlesFoundForTheCategory=Nije pronađen nijedan članak za kategoriju ToAcceptRefuse=Za prihvatiti | odbiti ContactDefault_agenda=Događaj ContactDefault_commande=Narudžba kupca @@ -1096,71 +1101,82 @@ ContactDefault_project=Projekt ContactDefault_project_task=Zadatak ContactDefault_propal=Ponuda ContactDefault_supplier_proposal=Ponuda dobavljača -ContactDefault_ticket=Ticket -ContactAddedAutomatically=Contact added from contact thirdparty roles +ContactDefault_ticket=Tiket +ContactAddedAutomatically=Kontakt je dodan iz uloga treće strane za kontakt More=Više ShowDetails=Prikaži detalje -CustomReports=Custom reports -StatisticsOn=Statistics on +CustomReports=Prilagođena izvješća +StatisticsOn=Statistika na SelectYourGraphOptionsFirst=Izaberite opcije kako biste izradili grafički prikaz Measures=Mjere XAxis="X" os YAxis="Y" os -StatusOfRefMustBe=Status of %s must be %s +StatusOfRefMustBe=Status %s mora biti %s DeleteFileHeader=Potvrdi brisanje datoteke DeleteFileText=Jeste li sigurni da želite obrisati ovu datoteku? ShowOtherLanguages=Prikaži ostale jezike -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 +SwitchInEditModeToAddTranslation=Prijeđite u način uređivanja da biste dodali prijevode za ovaj jezik +NotUsedForThisCustomer=Ne koristi se za ovog kupca +AmountMustBePositive=Iznos mora biti pozitivan +ByStatus=Po statusu InformationMessage=Podatak -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 +Used=Korišteno +ASAP=Čim prije +CREATEInDolibarr=Zapis %s kreiran +MODIFYInDolibarr=Zapis %s izmijenjen +DELETEInDolibarr=Zapis %s je izbrisan +VALIDATEInDolibarr=Zapis %s potvrđen +APPROVEDInDolibarr=Zapis %s odobren +DefaultMailModel=Zadani model pošte +PublicVendorName=Javni naziv dobavljača +DateOfBirth=Datum rođenja +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Sigurnosni token je istekao, pa je radnja otkazana. Molim te pokušaj ponovno. +UpToDate=Valjano +OutOfDate=Zastarjelo +EventReminder=Podsjetnik na događaj +UpdateForAllLines=Ažuriranje za sve linije +OnHold=Na čekanju +Civility=Uljudnost +AffectTag=Oznaka utjecaja +CreateExternalUser=Stvorite vanjskog korisnika +ConfirmAffectTag=Utjecaj skupne oznake +ConfirmAffectTagQuestion=Jeste li sigurni da želite utjecati na oznake %s odabranih zapisa? +CategTypeNotFound=Nije pronađena vrsta oznake za vrstu zapisa +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 +SetToEnabled=Postavite na omogućeno +SetToDisabled=Postavite na onemogućeno +ConfirmMassEnabling=masovno omogućavanje potvrde +ConfirmMassEnablingQuestion=Jeste li sigurni da želite omogućiti %s odabrane zapise? +ConfirmMassDisabling=potvrda masovnog onemogućavanja +ConfirmMassDisablingQuestion=Jeste li sigurni da želite onemogućiti %s odabrane zapise? +RecordsEnabled=%s zapis(i) omogućen +RecordsDisabled=%s zapis(i) onemogućen +RecordEnabled=Zapis omogućen +RecordDisabled=Zapis onemogućen +Forthcoming=Predstoji +Currently=Trenutno +ConfirmMassLeaveApprovalQuestion=Jeste li sigurni da želite odobriti %s odabrane zapise? +ConfirmMassLeaveApproval=Potvrda odobrenja masovnog dopusta +RecordAproved=Zapis odobren +RecordsApproved=%s Zapis(i) odobren(i). +Properties=Svojstva +hasBeenValidated=%s je potvrđen ClientTZ=Vremenska zona klijenta (korisnik) -NotClosedYet=Not yet closed -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +NotClosedYet=Još nije zatvoreno +ClearSignature=Poništi potpis +CanceledHidden=Otkazano skriveno +CanceledShown=Otkazano prikazano +Terminate=Prekini +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 +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/hr_HR/margins.lang b/htdocs/langs/hr_HR/margins.lang index dee38dda6d5..f41ea38ad03 100644 --- a/htdocs/langs/hr_HR/margins.lang +++ b/htdocs/langs/hr_HR/margins.lang @@ -6,9 +6,9 @@ TotalMargin=Ukupno marže MarginOnProducts=Marža / Proizvodi MarginOnServices=Marža / Usluge MarginRate=Stopa marže -MarkRate=Mark rate +MarkRate=Označite stopu DisplayMarginRates=Prikaži stope marže -DisplayMarkRates=Display mark rates +DisplayMarkRates=Prikaži stope bodova InputPrice=Ulazna cijena margin=Upravljanje profitnim maržama margesSetup=Podešavanje upravljanja profitnim maržama @@ -16,30 +16,30 @@ MarginDetails=Detalji marže ProductMargins=Marže proizvoda CustomerMargins=Marže kupaca SalesRepresentativeMargins=Marže prodajnog predstavnika -ContactOfInvoice=Contact of invoice +ContactOfInvoice=Kontakt fakture UserMargins=Korisničke marže ProductService=Proizvod ili usluga AllProducts=Svi proizvodi i usluge ChooseProduct/Service=Odaberite proizvod ili uslugu ForceBuyingPriceIfNull=Forsiraj kupovno/troškovnu cijenu kao prodajnu cijenu ako nije definirano -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=Ako kupovna cijena/cijena troška nije navedena kada dodamo novi red, a ova opcija je "UKLJUČENO", marža će biti 0%% na novom redu (kupovna/troškovna cijena = prodajna cijena). Ako je ova opcija "ISKLJUČENO" (preporučeno), margina će biti jednaka vrijednosti predloženoj prema zadanim postavkama (i može biti 100%% ako se ne može pronaći zadana vrijednost). MARGIN_METHODE_FOR_DISCOUNT=Načini marže za globalne rabate UseDiscountAsProduct=Kao proizvod UseDiscountAsService=Kao usluga UseDiscountOnTotal=Na međuzbroju MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definira ako je globalni rabat tretiran kao prozvod ili usluga, ili samo na međusumi za izračun marže. MARGIN_TYPE=Kupovno/troškovna cijena sugerirana za izračun marže -MargeType1=Margin on Best vendor price +MargeType1=Marža na cijenu najboljeg dobavljača MargeType2=Marža prema Procjenjenoj prosječnoj cijeni (PPC) MargeType3=Marža po cijeni troškova -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=* Marža na najbolju kupovnu cijenu = Prodajna cijena - Najbolja cijena dobavljača definirana na kartici proizvoda
    * Marža na ponderiranoj prosječnoj cijeni (WAP) = Prodajna cijena - Prosječna ponderirana cijena proizvoda (WAP) ili najbolja prodajna cijena ako WAP još nije definiran
    * Marža na cijenu koštanja = prodajna cijena - cijena koštanja definirana na kartici proizvoda ili WAP-u ako cijena koštanja nije definirana, ili najbolja cijena dobavljača ako WAP još nije definiran CostPrice=Cijena troška UnitCharges=Troškovi jedinice Charges=Troškovi AgentContactType=Vrsta kontakta komercijalnog 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=Definirajte koja će se vrsta kontakta (povezano na fakturama) koristiti za izvješće o marži po kontaktu/adresi. Imajte na umu da čitanje statistike o kontaktu nije pouzdano jer u većini slučajeva kontakt možda nije eksplicitno definiran na fakturama. rateMustBeNumeric=Stopa mora biti brojčana vrijednost -markRateShouldBeLesserThan100=Mark rate should be lower than 100 +markRateShouldBeLesserThan100=Marža bi trebala biti niža od 100 ShowMarginInfos=Prikaži infomacije o marži CheckMargins=Detalji marže -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=Izvješće o marži po korisniku koristi vezu između trećih strana i prodajnih predstavnika za izračun marže svakog prodajnog predstavnika. Budući da neke treće strane možda nemaju posebnog prodajnog predstavnika, a neke treće strane mogu biti povezane s nekoliko, neki iznosi možda neće biti uključeni u ovo izvješće (ako nema prodajnog predstavnika), a neki se mogu pojaviti u različitim redcima (za svakog prodajnog predstavnika) . diff --git a/htdocs/langs/hr_HR/members.lang b/htdocs/langs/hr_HR/members.lang index 512e9d602bd..9285a5a287a 100644 --- a/htdocs/langs/hr_HR/members.lang +++ b/htdocs/langs/hr_HR/members.lang @@ -7,7 +7,7 @@ Members=Članovi ShowMember=Prikaži karticu člana UserNotLinkedToMember=Korisnik nije povezan s članom ThirdpartyNotLinkedToMember=Third party not linked to a member -MembersTickets=Membership address sheet +MembersTickets=Adresar za članstvo FundationMembers=Članovi zaklade ListOfValidatedPublicMembers=Popis ovjerenih javnih članova ErrorThisMemberIsNotPublic=Ovaj član nije javni @@ -15,27 +15,28 @@ 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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Popis članova MembersListToValid=Popis članova u skicama ( za ovjeru ) MembersListValid=Popis valjanih članova -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=Popis važećih članova s ažurnom pretplatom +MembersListNotUpToDate=Popis važećih članova sa isteklom pretplatom +MembersListExcluded=Popis isključenih članova +MembersListResiliated=Popis ukinutih članova MembersListQualified=Popis kvalificiranih članova MenuMembersToValidate=Skice članova MenuMembersValidated=Ovjereni članovi -MenuMembersExcluded=Excluded members -MenuMembersResiliated=Terminated members -MembersWithSubscriptionToReceive=Members with contribution to receive +MenuMembersExcluded=Isključeni članovi +MenuMembersResiliated=Ukinuti članovi +MembersWithSubscriptionToReceive=Članovi koji primaju pretplatu MembersWithSubscriptionToReceiveShort=Contributions to receive -DateSubscription=Date of membership -DateEndSubscription=End date of membership -EndSubscription=End of membership -SubscriptionId=Contribution ID -WithoutSubscription=Without contribution -MemberId=Član ID +DateSubscription=Datum članstva +DateEndSubscription=Datum završetka članstva +EndSubscription=Kraj članstva +SubscriptionId=Pretplata ID +WithoutSubscription=Bez pretplate +MemberId=Member Id +MemberRef=Member Ref NewMember=Novi član MemberType=Vrsta člana MemberTypeId=Vrsta ID člana @@ -43,72 +44,72 @@ MemberTypeLabel=Oznaka tipa člana MembersTypes=Tipovi članova MemberStatusDraft=Skica (potrebna potvrditi) MemberStatusDraftShort=Skica -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=Ovjereno (čeka pretplatu) MemberStatusActiveShort=Ovjereno -MemberStatusActiveLate=Contribution expired +MemberStatusActiveLate=Pretplata je istekla MemberStatusActiveLateShort=Isteklo MemberStatusPaid=Pretplata valjana MemberStatusPaidShort=Valjano -MemberStatusExcluded=Excluded member -MemberStatusExcludedShort=Excluded -MemberStatusResiliated=Terminated member -MemberStatusResiliatedShort=Terminated +MemberStatusExcluded=Isključeni član +MemberStatusExcludedShort=Isključen +MemberStatusResiliated=Ukinuti član +MemberStatusResiliatedShort=Prekinuto MembersStatusToValid=Skice članova -MembersStatusExcluded=Excluded members -MembersStatusResiliated=Terminated members -MemberStatusNoSubscription=Validated (no contribution required) +MembersStatusExcluded=Isključeni članovi +MembersStatusResiliated=Ukinuti članovi +MemberStatusNoSubscription=Potvrđeno (nije potrebna pretplata) MemberStatusNoSubscriptionShort=Ovjereno -SubscriptionNotNeeded=No contribution required -NewCotisation=Novi doprinos -PaymentSubscription=Novo plaćanje doprinosa +SubscriptionNotNeeded=Nije potrebna pretplata +NewCotisation=Nova pretplata +PaymentSubscription=Novo plaćanje pretplate SubscriptionEndDate=Datum kraja pretplate MembersTypeSetup=Podešavanje tipa članova -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=Novi doprinos +MemberTypeModified=Vrsta člana izmijenjena +DeleteAMemberType=Izbrišite vrstu člana +ConfirmDeleteMemberType=Jeste li sigurni da želite izbrisati ovu vrstu člana? +MemberTypeDeleted=Vrsta člana je izbrisana +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=Contribution -Subscriptions=Contributions +Subscription=Pretplata +Subscriptions=Pretplate SubscriptionLate=Kasni -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions -SendCardByMail=Send card by email +SubscriptionNotReceived=Pretplata nikad zaprimljena +ListOfSubscriptions=Popis pretplata +SendCardByMail=Pošaljite karticu e-poštom AddMember=Izradi člana NoTypeDefinedGoToSetup=Nema definiranih tipova člana. Idite na izbornik "Tipovi članova" NewMemberType=Novi tip člana -WelcomeEMail=Welcome email -SubscriptionRequired=Contribution required +WelcomeEMail=E-mail dobrodošlice +SubscriptionRequired=Potrebna pretplata DeleteType=Obriši VoteAllowed=Glasanje dozvoljeno -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=Pojedinac +Moral=Korporacija +MorAndPhy=Korporacija i pojedinac +Reenable=Ponovno omogući +ExcludeMember=Isključite člana +Exclude=Isključiti +ConfirmExcludeMember=Jeste li sigurni da želite isključiti ovog člana? +ResiliateMember=Ukinuti člana +ConfirmResiliateMember=Jeste li sigurni da želite ukinuti ovog člana? DeleteMember=Obriši člana -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +ConfirmDeleteMember=Jeste li sigurni da želite izbrisati ovog člana (brisanjem člana izbrisat će se sve njegove pretplate)? DeleteSubscription=Obriši pretplatu -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteSubscription=Jeste li sigurni da želite izbrisati ovu pretplatu? Filehtpasswd=htpasswd datoteka ValidateMember=Ovjeri č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=Jeste li sigurni da želite potvrditi ovog člana? +FollowingLinksArePublic=Sljedeće veze su otvorene stranice koje nisu zaštićene nikakvom Dolibarr dopuštenjem. To nisu formatirane stranice, dane su kao primjer da pokažu kako navesti bazu podataka članova. PublicMemberList=Javni popis članova -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=Javna pristupnica +BlankSubscriptionFormDesc=Dolibarr vam može dati javni URL/web stranicu kako bi vanjskim posjetiteljima omogućio da zatraže pretplatu na zakladu. Ako je omogućen modul za online plaćanje, obrazac za plaćanje također se može automatski dostaviti. +EnablePublicSubscriptionForm=Omogućite javnu web stranicu s obrascem za samopretplatu +ForceMemberType=Forsiraj tip člana +ExportDataset_member_1=Članovi i pretplate ImportDataset_member_1=Članovi LastMembersModified=Zadnja %s izmijenjena člana -LastSubscriptionsModified=Latest %s modified contributions +LastSubscriptionsModified=Zadnje %s izmijenjene pretplate String=String Text=Tekst Int=Int @@ -118,16 +119,16 @@ 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 +SendingAnEMailToMember=Slanje informacija e-poštom članu +SendingEmailOnAutoSubscription=Slanje e-pošte o automatskoj registraciji +SendingEmailOnMemberValidation=Slanje e-pošte o potvrđivanju novog člana +SendingEmailOnNewSubscription=Slanje e-pošte o novom doprinosu +SendingReminderForExpiredSubscription=Slanje podsjetnika za istekle doprinose +SendingEmailOnCancelation=Slanje e-pošte o otkazivanju +SendingReminderActionComm=Slanje podsjetnika za događaj dnevnog reda # Topic of email templates -YourMembershipRequestWasReceived=Your membership was received. -YourMembershipWasValidated=Your membership was validated +YourMembershipRequestWasReceived=Vaše članstvo je primljeno. +YourMembershipWasValidated=Vaše članstvo je potvrđeno YourSubscriptionWasRecorded=Your new contribution was recorded SubscriptionReminderEmail=contribution reminder YourMembershipWasCanceled=Your membership was canceled @@ -157,27 +158,27 @@ DescADHERENT_CARD_FOOTER_TEXT=Tekst za ispis na dnu članske iskaznice ShowTypeCard=Prikaži tip %s HTPasswordExport=generiranje htpassword datoteke NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +MembersAndSubscriptions=Članovi i pretplate MoreActions=Dodatna akcija za snimanje -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution +MoreActionBankDirect=Napravite izravan unos na bankovni račun +MoreActionBankViaInvoice=Izradite fakturu i uplatu na bankovni račun MoreActionInvoiceOnly=Izradi račun bez plaćanja -LinkToGeneratedPages=Genereiraj vizit kartu -LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. +LinkToGeneratedPages=Generation of business cards or address sheets +LinkToGeneratedPagesDesc=Ovaj zaslon vam omogućuje generiranje PDF datoteka s posjetnicama za sve vaše članove ili pojedinog člana. DocForAllMembersCards=Generiraj vizit karte za sve članove DocForOneMemberCards=Generiraj vizit kartu za određenog člana DocForLabels=Generiraj listu adresa SubscriptionPayment=Contribution payment LastSubscriptionDate=Date of latest contribution payment LastSubscriptionAmount=Amount of latest contribution -LastMemberType=Last Member type +LastMemberType=Vrsta zadnjeg člana MembersStatisticsByCountries=Statistika članova po zemlji MembersStatisticsByState=Statistika članova po regiji/provinciji MembersStatisticsByTown=Statistika članova po gradu MembersStatisticsByRegion=Statistika članova po regiji -NbOfMembers=Total number of members -NbOfActiveMembers=Total number of current active members +NbOfMembers=Ukupan broj članova +NbOfActiveMembers=Ukupan broj trenutno aktivnih članova NoValidatedMemberYet=Nisu pronađeni valjani članovi 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. @@ -198,23 +199,25 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Promet (za tvrtke) ili proračun (za zaklade) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution +CanEditAmount=Posjetitelj može odabrati/mjenjati iznos svoje pretplate MEMBER_NEWFORM_PAYONLINE=Idi na integriranu stranicu online plaćanja -ByProperties=By nature -MembersStatisticsByProperties=Members statistics by nature +ByProperties=Po karakteristikama +MembersStatisticsByProperties=Statistika članova po karakteristikama 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 +NameOrCompany=Ime ili tvrtka +SubscriptionRecorded=Pretplata zabilježena +NoEmailSentToMember=Članu nije poslana e-pošta +EmailSentToMember=E-mail poslan članu na %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 +MembershipPaid=Plaćeno članstvo za tekuće razdoblje (do %s) +YouMayFindYourInvoiceInThisEmail=Vašu fakturu možete pronaći u prilogu ove e-pošte +XMembersClosed=%s član(ovi) zatvoreno +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 diff --git a/htdocs/langs/hr_HR/modulebuilder.lang b/htdocs/langs/hr_HR/modulebuilder.lang index 61b5c939d12..b2aa2ab0c6a 100644 --- a/htdocs/langs/hr_HR/modulebuilder.lang +++ b/htdocs/langs/hr_HR/modulebuilder.lang @@ -1,38 +1,41 @@ # 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 +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. +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 -ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory -NewModule=New module -NewObjectInModulebuilder=New object +ModuleBuilderDesc4=Modul se detektira kao 'koji se može uređivati' kada datoteka %s postoji u korijenu direktorija modula +NewModule=Novi modul +NewObjectInModulebuilder=Novi objekt +NewDictionary=New dictionary 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. +DicKey=Dictionary key +ModuleInitialized=Modul je inicijaliziran +FilesForObjectInitialized=Datoteke za novi objekt '%s' su inicijalizirane +FilesForObjectUpdated=Ažurirane datoteke za objekt '%s' (.sql datoteke i .class.php datoteka) +ModuleBuilderDescdescription=Ovdje unesite sve opće informacije koje opisuju vaš modul. +ModuleBuilderDescspecifications=Ovdje možete unijeti detaljan opis specifikacija vašeg modula koji već nije strukturiran u druge kartice. Tako da su vam na dohvat ruke sva pravila za razvoj. Također će ovaj tekstualni sadržaj biti uključen u generiranu dokumentaciju (vidi posljednju karticu). Možete koristiti Markdown format, ali se preporučuje korištenje Asciidoc formata (usporedba između .md i .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=Ovdje definirajte objekte kojima želite upravljati sa svojim modulom. Generirati će se CRUD DAO klasa, SQL datoteke, stranica za popis objekata, za kreiranje/uređivanje/pregled zapisa i API. +ModuleBuilderDescmenus=Ova kartica je namijenjena definiranju unosa u izborniku koje pruža vaš modul. +ModuleBuilderDescpermissions=Ova je kartica namijenjena definiranju novih dozvola koje želite dati sa svojim modulom. +ModuleBuilderDesctriggers=Ovo je prikaz okidača koje pruža vaš modul. Da biste uključili kod koji se izvršava kada se pokrene pokrenuti poslovni događaj, samo uredite ovu datoteku. 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 +ModuleBuilderDescwidgets=Ova je kartica namijenjena upravljanju/izgradnji widgeta. +ModuleBuilderDescbuildpackage=Ovdje možete generirati datoteku paketa "spremna za distribuciju" (normalizirana .zip datoteka) vašeg modula i dokumentaciju "spremna za distribuciju". Samo kliknite na gumb za izradu paketa ili datoteke dokumentacije. +EnterNameOfModuleToDeleteDesc=Možete izbrisati svoj modul. UPOZORENJE: Sve datoteke kodiranja modula (generirane ili kreirane ručno) I strukturirani podaci i dokumentacija bit će izbrisani! +EnterNameOfObjectToDeleteDesc=Možete izbrisati objekt. UPOZORENJE: Sve datoteke kodiranja (generirane ili kreirane ručno) koje se odnose na objekt bit će izbrisane! +DangerZone=Zona opasnosti +BuildPackage=Izgradite paket +BuildPackageDesc=Možete generirati zip paket svoje aplikacije tako da ste spremni za distribuciju na bilo kojem Dolibarru. Također ga možete distribuirati ili prodavati na tržištu kao što je DoliStore.com . +BuildDocumentation=Izgradite dokumentaciju +ModuleIsNotActive=Ovaj modul još nije aktiviran. Idite na %s da biste je objavili ili kliknite ovdje +ModuleIsLive=Ovaj modul je aktiviran. Svaka promjena može prekinuti trenutnu značajku uživo. +DescriptionLong=Dugi opis EditorName=Name of editor EditorUrl=URL of editor -DescriptorFile=Descriptor file of module +DescriptorFile=Opisna datoteka modula ClassFile=File for PHP DAO CRUD class ApiClassFile=File for PHP API class PageForList=PHP page for list of record @@ -43,30 +46,30 @@ 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 +SpaceOrSpecialCharAreNotAllowed=Razmaci ili posebni znakovi nisu dopušteni. +FileNotYetGenerated=Datoteka još nije generirana +RegenerateClassAndSql=Prisilno ažuriranje .class i .sql datoteka +RegenerateMissingFiles=Generirajte datoteke koje nedostaju SpecificationFile=File of documentation -LanguageFile=File for language +LanguageFile=Datoteka za jezik 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). +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) SearchAll=Used for 'search all' -DatabaseIndex=Database index -FileAlreadyExists=File %s already exists +DatabaseIndex=Indeks baze podataka +FileAlreadyExists=Datoteka %s već postoji 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 +CSSFile=CSS datoteka +JSFile=Javascript datoteka +ReadmeFile=Readme datoteka ChangeLog=ChangeLog file TestClassFile=File for PHP Unit Test class -SqlFile=Sql file +SqlFile=SQL datoteka PageForLib=File for the common PHP library PageForObjLib=File for the PHP library dedicated to object SqlFileExtraFields=Sql file for complementary attributes @@ -79,14 +82,14 @@ DirScanned=Directory scanned NoTrigger=No trigger NoWidget=No widget GoToApiExplorer=API explorer -ListOfMenusEntries=List of menu entries +ListOfMenusEntries=Popis unosa u izborniku ListOfDictionariesEntries=List of dictionaries entries ListOfPermissionsDefined=List of defined permissions -SeeExamples=See examples here +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=Display on PDF +DisplayOnPdf=Prikaz u PDF-u 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. @@ -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). @@ -104,44 +107,49 @@ 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 +AddLanguageFile=Dodajte jezičnu datoteku 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 +TableDoesNotExists=Tablica %s ne postoji +TableDropped=Tablica %s je izbrisana 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. RealPathOfModule=Real path of module -ContentCantBeEmpty=Content of file can't be empty +ContentCantBeEmpty=Sadržaj datoteke ne može biti prazan 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 +CLIFile=CLI datoteka +NoCLIFile=Nema CLI datoteka 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 +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 +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 +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' 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 +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 u HTML pretvarač +AsciiToPdfConverter=Ascii u PDF pretvarač 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 +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. +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. diff --git a/htdocs/langs/hr_HR/mrp.lang b/htdocs/langs/hr_HR/mrp.lang index 3fcf32a1fe3..baac75c4d8c 100644 --- a/htdocs/langs/hr_HR/mrp.lang +++ b/htdocs/langs/hr_HR/mrp.lang @@ -1,14 +1,14 @@ Mrp=Proizvodni nalozi -MOs=Manufacturing orders +MOs=Proizvodni nalozi ManufacturingOrder=Proizvodni nalog -MRPDescription=Module to manage production and Manufacturing Orders (MO). +MRPDescription=Modul za upravljanje proizvodnjom i proizvodnim narudžbama (MO). MRPArea=MRP Area -MrpSetupPage=Setup of module MRP +MrpSetupPage=Postavljanje modula MRP MenuBOM=Bills of material LatestBOMModified=Latest %s Bills of materials modified -LatestMOModified=Latest %s Manufacturing Orders modified -Bom=Sastavnice -BillOfMaterials=Bill of Materials +LatestMOModified=Zadnjih %s proizvodnih narudžbi +Bom=Sastavnica +BillOfMaterials=Sastavnice BillOfMaterialsLines=Bill of Materials lines BOMsSetup=Setup of module BOM ListOfBOMs=List of bills of material - BOM @@ -17,36 +17,36 @@ 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 +MOsNumberingModules=MO predlošci numeriranja +MOsModelModule=MO predlošci dokumenata 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 +FreeLegalTextOnMOs=Slobodan tekst na dokumentu MO +WatermarkOnDraftMOs=Vodeni žig na nacrtu MO +ConfirmCloneBillOfMaterials=Jeste li sigurni da želite klonirati popis materijala %s? +ConfirmCloneMo=Jeste li sigurni da želite klonirati proizvodnu narudžbu %s? +ManufacturingEfficiency=Učinkovitost proizvodnje +ConsumptionEfficiency=Učinkovitost potrošnje +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 -DeleteMo=Delete Manufacturing Order +DeleteMo=Izbrišite proizvodnu narudžbu ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? -ConfirmDeleteMo=Are you sure you want to delete this Manufacturing Order? +ConfirmDeleteMo=Jeste li sigurni da želite izbrisati ovu proizvodnu narudžbu? MenuMRP=Proizvodni nalozi NewMO=Novi proizvodni nalog -QtyToProduce=Qty to produce +QtyToProduce=Količina za proizvodnju DateStartPlannedMo=Datum početka planirani DateEndPlannedMo=Datum završetka planirani -KeepEmptyForAsap=Empty means 'As Soon As Possible' +KeepEmptyForAsap=Prazno znači 'što je prije moguće' EstimatedDuration=Procjena trajanja 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 +StatusMOProduced=Proizvedeno +QtyFrozen=Zamrznuto kol +QuantityFrozen=Zamrznuta količina 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 @@ -54,56 +54,61 @@ 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 +ToConsume=Za potrošiti +ToProduce=Za proizvesti +ToObtain=Za dobiti +QtyAlreadyConsumed=Količina je već potrošena +QtyAlreadyProduced=Količina već proizvedena QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%) -ConsumeOrProduce=Consume or Produce -ConsumeAndProduceAll=Consume and Produce All -Manufactured=Manufactured +ConsumeOrProduce=Konzumirajte ili proizvodite +ConsumeAndProduceAll=Potrošite i proizvodite sve +Manufactured=Proizveden 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 +NoStockChangeOnServices=Bez promjene zaliha na uslugama 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=Proizvodi za potrošnju +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) 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 +Workstation=Radna stanica +Workstations=Radne stanice +WorkstationsDescription=Upravljanje radnim stanicama +WorkstationSetup = Postavljanje radnih stanica +WorkstationSetupPage = Stranica za postavljanje radnih stanica +WorkstationList=Popis radnih stanica +WorkstationCreate=Dodajte novu radnu stanicu +ConfirmEnableWorkstation=Jeste li sigurni da želite omogućiti radnu stanicu %s ? +EnableAWorkstation=Omogućite radnu stanicu +ConfirmDisableWorkstation=Jeste li sigurni da želite onemogućiti radnu stanicu %s ? +DisableAWorkstation=Onemogućite radnu stanicu DeleteWorkstation=Obriši -NbOperatorsRequired=Number of operators required +NbOperatorsRequired=Potreban broj operatera THMOperatorEstimated=Estimated operator THM THMMachineEstimated=Estimated machine THM -WorkstationType=Workstation type -Human=Human -Machine=Machine -HumanMachine=Human / Machine -WorkstationArea=Workstation area -Machines=Machines +WorkstationType=Vrsta radne stanice +Human=Čovjek +Machine=Stroj +HumanMachine=Čovjek / Stroj +WorkstationArea=Područje radne stanice +Machines=Strojevi 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/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/opensurvey.lang b/htdocs/langs/hr_HR/opensurvey.lang index dc8b3a8f5a3..e232f627f5f 100644 --- a/htdocs/langs/hr_HR/opensurvey.lang +++ b/htdocs/langs/hr_HR/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=Jednostavno organizirajte sastanke i ankete. Prvo odaberite tip ankete... NewSurvey=Nova anketa OpenSurveyArea=Ankete AddACommentForPoll=Možete dodati napomenu u anketu... @@ -11,7 +11,7 @@ PollTitle=Naziv ankete ToReceiveEMailForEachVote=Primi e-poštu za svaki glas TypeDate=Vremenski tip 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=Odaberite datume između slobodnih dana (sivo). Odabarni dani su zeleni. Odabir možete poništiti tako da kliknete ponovo na dan koji ste odabrali RemoveAllDays=Makni sve dane CopyHoursOfFirstDay=Kopiraj sate prvog dana RemoveAllHours=Makni sve sate @@ -35,7 +35,7 @@ TitleChoice=Oznaka odabira ExportSpreadsheet=Izvezi rezultate u tabelu ExpireDate=Ograničen datum NbOfSurveys=Broj anketa -NbOfVoters=No. of voters +NbOfVoters=Br. glasača SurveyResults=Rezultati PollAdminDesc=Niste ovlašteni za promjenu svih linija u anketi. Možete maknuti kolonu ili liniju sa %s. Također možete dodati novu kolonu sa %s. 5MoreChoices=Još 5 odabira @@ -48,10 +48,10 @@ AddEndHour=Dodaj sat završetka votes=glas(ova) NoCommentYet=Još nema opaski za ovu anketu CanComment=Glasači mogu komentirati anketu -YourVoteIsPrivate=This poll is private, nobody can see your vote. -YourVoteIsPublic=This poll is public, anybody with the link can see your vote. +YourVoteIsPrivate=Ova je anketa privatna, nitko ne može vidjeti vaš glas. +YourVoteIsPublic=Ova anketa je javna, svatko s vezom može vidjeti vaš glas. CanSeeOthersVote=Glasači mogu vidjeti glasove drugih glasača -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 svaki odabrani dan možete odabrati ili ne odabrati sate sastanka u sljedećem formatu:
    - prazno,
    - "8h", "8H" ili "8:00" da date sat početka sastanka,
    - "8- 11", "8h-11h", "8H-11H" ili "8:00-11:00" za davanje sata početka i završetka sastanka,
    - "8h15-11h15", "8H15-11H15" ili "8: 15-11:15" za istu stvar, ali s minutama. BackToCurrentMonth=Povratak na trenutni mjesec ErrorOpenSurveyFillFirstSection=Niste popunili prvi dio kreiranja ankete ErrorOpenSurveyOneChoice=Unesite barem jedan odabir @@ -59,5 +59,5 @@ ErrorInsertingComment=Dogodila se greška kod unosa vašeg komentara MoreChoices=Unesite još odabira za glasače SurveyExpiredInfo=Anketa je zatvorena ili glasanje je završeno. EmailSomeoneVoted=%s je ispunio liniju. \nVašu anketu možete pronaći na linku:\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=Prikaži anketu +UserMustBeSameThanUserUsedToVote=Morate glasovati i koristiti isto korisničko ime koje je koristilo za glasovanje da biste objavili komentar diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang index c56010884a2..693c9f0edc1 100644 --- a/htdocs/langs/hr_HR/other.lang +++ b/htdocs/langs/hr_HR/other.lang @@ -1,56 +1,56 @@ # Dolibarr language file - Source file is en_US - other -SecurityCode=Security code -NumberingShort=N° +SecurityCode=Sigurnosni kod +NumberingShort=br Tools=Alati TMenuTools=Alati ToolsDesc=Svi alati koji nisu uključeni u ostalim sučeljima grupirani su ovdje.
    Možete im pristupiti uz pomoć izbornika lijevo. -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 +Birthday=Rođendan +BirthdayAlertOn=rođendansko upozorenje aktivno +BirthdayAlertOff=rođendansko upozorenje neaktivno +TransKey=Prijevod ključa TransKey +MonthOfInvoice=Mjesec (broj 1-12) datuma fakture +TextMonthOfInvoice=Mjesec (tekst) datuma fakture +PreviousMonthOfInvoice=Prethodni mjesec (broj 1-12) datuma fakture +TextPreviousMonthOfInvoice=Prethodni mjesec (tekst) datuma fakture +NextMonthOfInvoice=Sljedeći mjesec (broj 1-12) od datuma fakture +TextNextMonthOfInvoice=Sljedeći mjesec (tekst) datuma fakture +PreviousMonth=Prethodni mjesec +CurrentMonth=Trenutni mjesec +ZipFileGeneratedInto=Zip datoteka generirana u %s . +DocFileGeneratedInto=Datoteka dokumenta generirana u %s . +JumpToLogin=Isključeno. Idi na stranicu za prijavu... +MessageForm=Poruka na obrascu za online plaćanje +MessageOK=Poruka na stranici za povrat za potvrđeno plaćanje +MessageKO=Poruka na povratnoj stranici za poništeno plaćanje +ContentOfDirectoryIsNotEmpty=Sadržaj ovog direktorija nije prazan. +DeleteAlsoContentRecursively=Označite kako biste rekurzivno izbrisali sav sadržaj 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 +YearOfInvoice=Godina datuma fakture +PreviousYearOfInvoice=Prethodna godina datuma fakture +NextYearOfInvoice=Sljedeća godina datuma fakture +DateNextInvoiceBeforeGen=Datum sljedeće fakture (prije generiranja) +DateNextInvoiceAfterGen=Datum sljedeće fakture (nakon generiranja) +GraphInBarsAreLimitedToNMeasures=Grafike su ograničene na mjere %s u načinu 'Bars'. Umjesto toga automatski je odabran način rada 'Linije'. +OnlyOneFieldForXAxisIsPossible=Samo 1 polje je trenutno moguće kao X-os. Odabrano je samo prvo odabrano polje. +AtLeastOneMeasureIsRequired=Potrebno je najmanje 1 polje za mjeru +AtLeastOneXAxisIsRequired=Potrebno je najmanje 1 polje za X-os +LatestBlogPosts=Najnoviji postovi na blogu +notiftouser=Korisnicima +notiftofixedemail=Na fiksnu poštu +notiftouserandtofixedemail=Na korisničku i fiksnu poštu +Notify_ORDER_VALIDATE=Prodajni nalog potvrđen +Notify_ORDER_SENTBYMAIL=Prodajni nalog poslan poštom +Notify_ORDER_SUPPLIER_SENTBYMAIL=Narudžbenica poslana e-poštom +Notify_ORDER_SUPPLIER_VALIDATE=Narudžbenica je snimljena +Notify_ORDER_SUPPLIER_APPROVE=Narudžbenica odobrena +Notify_ORDER_SUPPLIER_REFUSE=Narudžbenica odbijena +Notify_PROPAL_VALIDATE=Potvrđen prijedlog kupaca +Notify_PROPAL_CLOSE_SIGNED=Prijedlog korisnika zatvoren potpisan +Notify_PROPAL_CLOSE_REFUSED=Prijedlog korisnika zatvoren je odbijen Notify_PROPAL_SENTBYMAIL=Ponuda poslana poštom -Notify_WITHDRAW_TRANSMIT=Transmission withdrawal +Notify_WITHDRAW_TRANSMIT=Povlačenje prijenosa Notify_WITHDRAW_CREDIT=Credit withdrawal -Notify_WITHDRAW_EMIT=Perform withdrawal +Notify_WITHDRAW_EMIT=Izvršite isplatu Notify_COMPANY_CREATE=Komitent kreiran Notify_COMPANY_SENTBYMAIL=Pošta poslana s kartice komitenta Notify_BILL_VALIDATE=Customer invoice validated @@ -62,33 +62,33 @@ 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_CONTRACT_VALIDATE=Ugovor potvrđen 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_SHIPPING_VALIDATE=Dostava potvrđena +Notify_SHIPPING_SENTBYMAIL=Dostava poslana poštom +Notify_MEMBER_VALIDATE=Član potvrđen +Notify_MEMBER_MODIFY=Član izmijenjen +Notify_MEMBER_SUBSCRIPTION=Član se pretplatio +Notify_MEMBER_RESILIATE=Član je prekinut +Notify_MEMBER_DELETE=Član je izbrisan +Notify_PROJECT_CREATE=Izrada projekta +Notify_TASK_CREATE=Zadatak stvoren +Notify_TASK_MODIFY=Zadatak izmijenjen +Notify_TASK_DELETE=Zadatak je izbrisan +Notify_EXPENSE_REPORT_VALIDATE=Potvrđeno izvješće o troškovima (potrebno je odobrenje) +Notify_EXPENSE_REPORT_APPROVE=Izvješće o troškovima odobreno 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 +SeeModuleSetup=Pogledajte postavljanje modula %s NbOfAttachedFiles=Number of attached files/documents TotalSizeOfAttachedFiles=Total size of attached files/documents -MaxSize=Maximum size +MaxSize=Maksimalna veličina AttachANewFile=Attach a new file/document LinkedObject=Linked object -NbOfActiveNotifications=Number of notifications (no. of recipient emails) +NbOfActiveNotifications=Broj obavijesti (br. e-poruka primatelja) 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__ @@ -105,57 +105,57 @@ PredefinedMailContentLink=You can click on the link below to make your payment i 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) +ChooseYourDemoProfil=Odaberite demo profil koji najbolje odgovara vašim potrebama... +ChooseYourDemoProfilMore=...ili napravite vlastiti profil
    (ručni odabir modula) DemoFundation=Upravljanje članovima zaklade DemoFundation2=Upravljanje članovima i bankovnim računom zaklade 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) +DemoCompanyManufacturing=Tvrtka koja proizvodi proizvode +DemoCompanyAll=Tvrtka s više djelatnosti (svi glavni moduli) CreatedBy=Izradio %s -ModifiedBy=Modified by %s -ValidatedBy=Validated by %s -SignedBy=Signed by %s -ClosedBy=Closed by %s -CreatedById=User id who created +ModifiedBy=Izmijenio %s +ValidatedBy=Ovjerio %s +SignedBy=Potpisao %s +ClosedBy=Zatvorio %s +CreatedById=ID korisnika koji je kreirao ModifiedById=ID korisnika koji je mjenjao -ValidatedById=User id who validated -CanceledById=User id who canceled -ClosedById=User id who closed -CreatedByLogin=User login who created +ValidatedById=ID korisnika koji je potvrdio +CanceledById=ID korisnika koji je otkazao +ClosedById=ID korisnika koji je zatvoren +CreatedByLogin=Prijava korisnika koji je kreirao ModifiedByLogin=Korisničko ime koji je mjenjao -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 +ValidatedByLogin=Prijava korisnika koji je potvrdio +CanceledByLogin=Prijava korisnika koji je otkazao +ClosedByLogin=Prijava korisnika koji je zatvorio +FileWasRemoved=Datoteka %s je uklonjena +DirWasRemoved=Mapa %s je uklonjena +FeatureNotYetAvailable=Značajka još nije dostupna u trenutnoj verziji +FeatureNotAvailableOnDevicesWithoutMouse=Značajka nije dostupna na uređajima bez miša +FeaturesSupported=Podržane značajke Width=Širina Height=Visina Depth=Dubina -Top=Top -Bottom=Bottom -Left=Left -Right=Right +Top=Vrh +Bottom=Dno +Left=Lijevo +Right=Desno CalculatedWeight=Izračunata masa CalculatedVolume=Izračunati volumen Weight=Masa -WeightUnitton=ton +WeightUnitton=tona WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg -WeightUnitpound=pound -WeightUnitounce=ounce -Length=Length +WeightUnitpound=funta +WeightUnitounce=unca +Length=Duljina LengthUnitm=m LengthUnitdm=dm LengthUnitcm=cm LengthUnitmm=mm -Surface=Area +Surface=Područje SurfaceUnitm2=m² SurfaceUnitdm2=dm² SurfaceUnitcm2=cm² @@ -169,137 +169,159 @@ VolumeUnitcm3=cm³ (ml) VolumeUnitmm3=mm³ (µl) VolumeUnitfoot3=ft³ VolumeUnitinch3=in³ -VolumeUnitounce=ounce -VolumeUnitlitre=litre -VolumeUnitgallon=gallon +VolumeUnitounce=unca +VolumeUnitlitre=litra +VolumeUnitgallon=galon SizeUnitm=m SizeUnitdm=dm SizeUnitcm=cm SizeUnitmm=mm -SizeUnitinch=inch -SizeUnitfoot=foot -SizeUnitpoint=point -BugTracker=Bug tracker +SizeUnitinch=inča +SizeUnitfoot=stopa +SizeUnitpoint=točka +BugTracker=Praćenje bugova 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 +BackToLoginPage=Povratak na stranicu za prijavu 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 je podatak ovisan o državi komitenta.
    Na primjer, za zemlju %s, kod je %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfUnits=Statistika za zbroj količine proizvoda/usluga StatsByNumberOfEntities=Statistics for number of referring entities (no. of invoices, or orders...) -NumberOfProposals=Number of proposals +NumberOfProposals=Broj prijedloga NumberOfCustomerOrders=Broj narudžbenica NumberOfCustomerInvoices=Broj izlaznih računa -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 +NumberOfSupplierProposals=Broj prijedloga dobavljača +NumberOfSupplierOrders=Broj narudžbenica +NumberOfSupplierInvoices=Broj faktura dobavljača +NumberOfContracts=Broj ugovora +NumberOfMos=Broj proizvodnih narudžbi +NumberOfUnitsProposals=Broj jedinica na prijedlozima NumberOfUnitsCustomerOrders=Količine na narudžbenicama -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 +NumberOfUnitsCustomerInvoices=Broj jedinica na računima kupaca +NumberOfUnitsSupplierProposals=Broj jedinica na prijedlozima dobavljača +NumberOfUnitsSupplierOrders=Broj jedinica na narudžbenicama +NumberOfUnitsSupplierInvoices=Broj jedinica na fakturama dobavljača +NumberOfUnitsContracts=Broj jedinica na ugovorima +NumberOfUnitsMos=Broj jedinica za proizvodnju u proizvodnim narudžbama 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. +EMailTextInvoiceValidated=Račun %s je potvrđen. +EMailTextInvoicePayed=Račun %s je plaćen. +EMailTextProposalValidated=Prijedlog %s je potvrđen. +EMailTextProposalClosedSigned=Prijedlog %s je zatvoren potpisan. +EMailTextOrderValidated=Narudžba %s je potvrđena. +EMailTextOrderApproved=Narudžba %s je odobrena. +EMailTextOrderValidatedBy=Narudžbu %s zabilježio je %s. +EMailTextOrderApprovedBy=Narudžbu %s odobrio je %s. +EMailTextOrderRefused=Narudžba %s je odbijena. +EMailTextOrderRefusedBy=Narudžbu %s odbio je %s. +EMailTextExpeditionValidated=Dostava %s je potvrđena. +EMailTextExpenseReportValidated=Izvješće o troškovima %s je potvrđeno. +EMailTextExpenseReportApproved=Izvješće o troškovima %s je odobreno. +EMailTextHolidayValidated=Zahtjev za dopustom %s je potvrđen. +EMailTextHolidayApproved=Zahtjev za dopustom %s je odobren. EMailTextActionAdded=The action %s has been added to the Agenda. ImportedWithSet=Importation data set -DolibarrNotification=Automatic notification +DolibarrNotification=Automatska obavijest ResizeDesc=Enter new width OR new height. Ratio will be kept during resizing... -NewLength=New width -NewHeight=New height +NewLength=Nova širina +NewHeight=Nova visina 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 +ImageEditor=Uređivač slika 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 +UseAdvancedPerms=Koristite napredna dopuštenja nekih modula +FileFormat=Format datoteke +SelectAColor=Odaberite boju +AddFiles=Dodaj datoteke +StartUpload=Pokreni prijenos +CancelUpload=Otkaži prijenos +FileIsTooBig=Datoteke su prevelike +PleaseBePatient=Molimo budite strpljivi... +NewPassword=Nova lozinka +ResetPassword=Resetiranje lozinke +RequestToResetPasswordReceived=Primljen je zahtjev za promjenu vaše lozinke. +NewKeyIs=Ovo su vaši novi ključevi za prijavu +NewKeyWillBe=Vaš novi ključ za prijavu na softver bit će +ClickHereToGoTo=Kliknite ovdje da biste otišli na %s +YouMustClickToChange=Međutim, prvo morate kliknuti na sljedeću vezu kako biste potvrdili ovu promjenu lozinke +ConfirmPasswordChange=Potvrdite promjenu lozinke +ForgetIfNothing=Ako niste zatražili ovu promjenu, zaboravite ovu e-poruku. Vaše vjerodajnice su sigurne. +IfAmountHigherThan=Ako je iznos veći od %s +SourcesRepository=Repozitorijum za izvore +Chart=Grafikon +PassEncoding=Kodiranje lozinke +PermissionsAdd=Dodane su dozvole +PermissionsDelete=Dozvole su uklonjene +YourPasswordMustHaveAtLeastXChars=Vaša lozinka mora imati najmanje %s znakova +PasswordNeedAtLeastXUpperCaseChars=Za lozinku je potrebno najmanje %s znakova velikih slova +PasswordNeedAtLeastXDigitChars=Za lozinku je potrebno najmanje %s numeričke znakove +PasswordNeedAtLeastXSpecialChars=Za lozinku je potrebno najmanje %s posebnih znakova +PasswordNeedNoXConsecutiveChars=Lozinka ne smije imati %s uzastopne slične znakove +YourPasswordHasBeenReset=Vaša lozinka je uspješno poništena +ApplicantIpAddress=IP adresa podnositelja zahtjeva +SMSSentTo=SMS poslan na %s +MissingIds=Nedostaju ID-ovi ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s +ContactCreatedByEmailCollector=Kontakt/adresa kreirana od strane sakupljača e-pošte iz e-pošte 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 +SuffixSessionName=Sufiks za naziv sesije +LoginWith=Prijavite se s %s ##### Export ##### -ExportsArea=Exports area -AvailableFormats=Available formats +ExportsArea=Područje izvoza +AvailableFormats=Dostupni formati LibraryUsed=Library used LibraryVersion=Library version -ExportableDatas=Exportable data -NoExportableData=No exportable data (no modules with exportable data loaded, or missing permissions) +ExportableDatas=Podaci koji se mogu izvesti +NoExportableData=Nema podataka za izvoz (nema modula s učitanim podacima za izvoz ili nedostaju dopuštenja) ##### External sites ##### -WebsiteSetup=Setup of module website -WEBSITE_PAGEURL=URL of page +WebsiteSetup=Postavljanje web stranice modula +WEBSITE_PAGEURL=URL stranice WEBSITE_TITLE=Naslov WEBSITE_DESCRIPTION=Opis -WEBSITE_IMAGE=Image +WEBSITE_IMAGE=Slika 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_KEYWORDS=Ključne riječi +LinesToImport=Linije za uvoz -MemoryUsage=Memory usage -RequestDuration=Duration of request -ProductsPerPopularity=Products/Services by popularity +MemoryUsage=Korištenje memorije +RequestDuration=Trajanje zahtjeva +ProductsPerPopularity=Proizvodi/usluge prema popularnosti 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... +PopuCom=Proizvodi/usluge prema popularnosti u narudžbama +ProductStatistics=Statistika proizvoda/usluga +NbOfQtyInOrders=Količina u narudžbama +SelectTheTypeOfObjectToAnalyze=Odaberite objekt za pregled njegove statistike... -ConfirmBtnCommonContent = Are you sure you want to "%s" ? -ConfirmBtnCommonTitle = Confirm your action +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/partnership.lang b/htdocs/langs/hr_HR/partnership.lang index fb73da65324..1715d368b7e 100644 --- a/htdocs/langs/hr_HR/partnership.lang +++ b/htdocs/langs/hr_HR/partnership.lang @@ -16,71 +16,72 @@ # # 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 partnerstvom +PartnershipDescription=Modul Upravljanje partnerstvom +PartnershipDescriptionLong= Modul Upravljanje partnerstvom +Partnership=Partnerstvo +AddPartnership=Dodajte partnerstvo +CancelPartnershipForExpiredMembers=Partnerstvo: Otkažite partnerstvo članova s isteklim pretplatama +PartnershipCheckBacklink=Partnerstvo: Provjerite povratnu vezu preporuke # # Menu # -NewPartnership=New Partnership -ListOfPartnerships=List of partnership +NewPartnership=Novo partnerstvo +ListOfPartnerships=Popis partnerstva # # Admin page # -PartnershipSetup=Partnership setup -PartnershipAbout=About Partnership +PartnershipSetup=Postavljanje partnerstva +PartnershipAbout=O partnerstvu PartnershipAboutPage=Partnership about page -partnershipforthirdpartyormember=Partner status must be set on a 'thirdparty' or a 'member' +partnershipforthirdpartyormember=Status partnera mora biti postavljen na "treća strana" ili "član" 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. +PARTNERSHIP_BACKLINKS_TO_CHECK=Povratne veze za provjeru +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Broj dana prije otkazivanja statusa partnerstva kada je pretplata istekla +ReferingWebsiteCheck=Provjera upućivanja na web stranicu +ReferingWebsiteCheckDesc=Možete omogućiti značajku za provjeru jesu li vaši partneri dodali povratnu vezu na domene vaše web stranice na vlastitoj web stranici. # # Object # -DeletePartnership=Delete a partnership -PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party -PartnershipDedicatedToThisMember=Partnership dedicated to this member +DeletePartnership=Izbrišite partnerstvo +PartnershipDedicatedToThisThirdParty=Partnerstvo posvećeno ovoj trećoj strani +PartnershipDedicatedToThisMember=Partnerstvo posvećeno ovom članu DatePartnershipStart=Datum početka DatePartnershipEnd=Datum završetka -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 odbijanja +ReasonDeclineOrCancel=Razlog odbijanja +PartnershipAlreadyExist=Partnerstvo već postoji +ManagePartnership=Upravljajte partnerstvom +BacklinkNotFoundOnPartnerWebsite=Povratna veza nije pronađena na web stranici partnera +ConfirmClosePartnershipAsk=Jeste li sigurni da želite otkazati ovo partnerstvo? +PartnershipType=Vrsta partnerstva +PartnershipRefApproved=Partnerstvo %s odobreno +KeywordToCheckInWebsite=If you want to check that a given keyword is present into the website of each partner, define this keyword here # # Template Mail # -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled +SendingEmailOnPartnershipWillSoonBeCanceled=Partnerstvo će uskoro biti prekinuto +SendingEmailOnPartnershipRefused=Partnerstvo je odbijeno +SendingEmailOnPartnershipAccepted=Partnerstvo prihvaćeno +SendingEmailOnPartnershipCanceled=Partnerstvo je otkazano -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled +YourPartnershipWillSoonBeCanceledTopic=Partnerstvo će uskoro biti prekinuto +YourPartnershipRefusedTopic=Partnerstvo je odbijeno +YourPartnershipAcceptedTopic=Partnerstvo prihvaćeno +YourPartnershipCanceledTopic=Partnerstvo je otkazano -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=Obavještavamo vas da će vaše partnerstvo uskoro biti otkazano (povratna veza nije pronađena) +YourPartnershipRefusedContent=Obavještavamo vas da je vaš zahtjev za partnerstvo odbijen. +YourPartnershipAcceptedContent=Obavještavamo vas da je vaš zahtjev za partnerstvo prihvaćen. +YourPartnershipCanceledContent=Obavještavamo vas da je vaše partnerstvo otkazano. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason +CountLastUrlCheckError=Broj pogrešaka za posljednju provjeru URL-a +LastCheckBacklink=Datum posljednje provjere URL-a +ReasonDeclineOrCancel=Razlog odbijanja # # Status @@ -89,4 +90,5 @@ PartnershipDraft=Skica PartnershipAccepted=Prihvaćeno PartnershipRefused=Odbijeno PartnershipCanceled=Poništeno -PartnershipManagedFor=Partners are +PartnershipManagedFor=Partneri su + diff --git a/htdocs/langs/hr_HR/paybox.lang b/htdocs/langs/hr_HR/paybox.lang index bf2f54ae6dc..35a7596af67 100644 --- a/htdocs/langs/hr_HR/paybox.lang +++ b/htdocs/langs/hr_HR/paybox.lang @@ -1,31 +1,30 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=Podešavanje PayBox modula -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, ...) +PayBoxDesc=Ovaj modul nudi stranice koje omogućuju plaćanje na Paybox od strane kupaca. Ovo se može koristiti za besplatno plaćanje ili za plaćanje na određenom Dolibarr objektu (račun, narudžba, ...) FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects PaymentForm=Obrazac plaćanja -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=Dobro došli na naš servis online plaćanja ThisScreenAllowsYouToPay=Ova stranica vam dozvoljava da vršite online plaćanje prema %s -ThisIsInformationOnPayment=This is information on payment to do +ThisIsInformationOnPayment=Ovo je informacija o plaćanju ToComplete=Za završiti YourEMail=E-pošta za prijem potvrde uplate Creditor=Kreditor PaymentCode=Kod plaćanja -PayBoxDoPayment=Pay with Paybox +PayBoxDoPayment=Platite Payboxom YouWillBeRedirectedOnPayBox=Biti ćete preusmjereni na sigurnu stranicu PayBox servisa gdje možete unijeti podatke o svojoj kreditnoj kartici Continue=Sljedeće -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url %s to have payment created automatically when validated by Paybox. +SetupPayBoxToHavePaymentCreatedAutomatically=Postavite svoj Paybox s url-om %s da se plaćanje automatski kreira kada ga Paybox potvrdi. YourPaymentHasBeenRecorded=Ova stranica potvrđuje da je vaše plaćanje pohranjeno. Hvala Vam. -YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you. +YourPaymentHasNotBeenRecorded=Vaše plaćanje NIJE zabilježeno i transakcija je otkazana. Hvala vam. AccountParameter=Parametri računa UsageParameter=Parametri korištenja InformationToFindParameters=Pomoć za pronalaženje podataka o računu %s PAYBOX_CGI_URL_V2=URL PayBox CGI modula za plaćanje -VendorName=Naziv pružatelja CSSUrlForPaymentForm=CSS style sheet url for payment form NewPayboxPaymentReceived=Primljena nova PayBox uplata NewPayboxPaymentFailed=PayBox uplata probana ali s greškom -PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail) +PAYBOX_PAYONLINE_SENDEMAIL=Obavijest e-poštom nakon pokušaja plaćanja (uspješan ili neuspješan) 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 +PAYBOX_HMAC_KEY=HMAC ključ diff --git a/htdocs/langs/hr_HR/printing.lang b/htdocs/langs/hr_HR/printing.lang index 946faa33905..aae6556154c 100644 --- a/htdocs/langs/hr_HR/printing.lang +++ b/htdocs/langs/hr_HR/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=Direktni ispis +Module64000Desc=Omogući sistem direktnog ispisa +PrintingSetup=Podešavanje sistema direktnog ispisa +PrintingDesc=Ovaj modul dodaje gumb Ispis raznim modulima kako bi se dokumenti mogli ispisati izravno na pisač bez potrebe za otvaranjem dokumenta u drugoj aplikaciji. +MenuDirectPrinting=Zadaci direktnog ispisa +DirectPrint=Direktni ispis PrintingDriverDesc=Configuration variables for printing driver. ListDrivers=Popis upravljačkih programa PrintTestDesc=Popis pisača. FileWasSentToPrinter=Datoteka %s je poslana na pisač -ViaModule=via the module -NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s. +ViaModule=preko modula +NoActivePrintingModuleFound=Nema aktivnog upravljačkog programa za ispis dokumenta. Provjerite postavljanje modula %s. PleaseSelectaDriverfromList=Molim odaberite upravljački program s popisa PleaseConfigureDriverfromList=Molim podesite odabrani upravljački program s popisa. SetupDriver=Podešavanje upravljačkog programa @@ -19,7 +19,7 @@ UserConf=Podešavanje prema korisniku PRINTGCP_INFO=Podešavanje Google OAuth API PRINTGCP_AUTHLINK=Autentifikacija PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token -PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. +PrintGCPDesc=Ovaj upravljački program omogućuje slanje dokumenata izravno na pisač pomoću Google Cloud Printa. GCP_Name=Naziv GCP_displayName=Prikazani naziv GCP_Id=ID pisača @@ -27,7 +27,7 @@ GCP_OwnerName=Vlasnik GCP_State=Stanje pisača GCP_connectionStatus=Online stanje GCP_Type=Vrsta pisača -PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. +PrintIPPDesc=Ovaj upravljački program omogućuje slanje dokumenata izravno na pisač. Zahtijeva Linux sustav s instaliranim CUPS-om. PRINTIPP_HOST=Print server PRINTIPP_PORT=Port PRINTIPP_USER=Korisničko ime @@ -46,9 +46,9 @@ IPP_Device=Uređaj IPP_Media=Medij pisača IPP_Supported=Vrsta medija 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. +GoogleAuthNotConfigured=Google OAuth nije postavljen. Omogućite modul OAuth i postavite Google ID/Tajnu. +GoogleAuthConfigured=Google OAuth vjerodajnice pronađene su u postavljanju modula OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintingDriverDescprintipp=Configuration variables for printing driver Cups. +PrintingDriverDescprintipp=Konfiguracijske varijable za ispis driver CUPS. PrintTestDescprintgcp=List of Printers for Google Cloud Print. -PrintTestDescprintipp=List of Printers for Cups. +PrintTestDescprintipp=Popis pisača za CUPS. diff --git a/htdocs/langs/hr_HR/products.lang b/htdocs/langs/hr_HR/products.lang index 13ebc7c3659..5523c7c1cee 100644 --- a/htdocs/langs/hr_HR/products.lang +++ b/htdocs/langs/hr_HR/products.lang @@ -2,7 +2,7 @@ ProductRef=Proizvod ref. ProductLabel=Oznaka proizvoda ProductLabelTranslated=Prevedena oznaka proizvoda -ProductDescription=Product description +ProductDescription=Opis proizvoda ProductDescriptionTranslated=Preveden opis proizvoda ProductNoteTranslated=Prevedena napomena proizvoda ProductServiceCard=Kartica proizvoda/usluga @@ -17,30 +17,30 @@ Create=Izradi Reference=Reference NewProduct=Novi proizvod NewService=Nova usluga -ProductVatMassChange=Global VAT Update -ProductVatMassChangeDesc=This tool updates the VAT rate defined on ALL products and services! +ProductVatMassChange=Masovna promjena PDV-a +ProductVatMassChangeDesc=Ovaj alat ažurira stopu PDV-a definiranu za SVE proizvode i usluge! MassBarcodeInit=Masovni init barkoda MassBarcodeInitDesc=Ova stranica se može koristiti za inicijalizaciju barkoda na objektima koji nemaju definiran barkod. Provjerite prije da li su postavke barcode modula podešene. -ProductAccountancyBuyCode=Accounting code (purchase) +ProductAccountancyBuyCode=Konto (kupnja) ProductAccountancyBuyIntraCode=Accounting code (purchase intra-community) ProductAccountancyBuyExportCode=Accounting code (purchase import) -ProductAccountancySellCode=Accounting code (sale) +ProductAccountancySellCode=Konto (prodaja) ProductAccountancySellIntraCode=Accounting code (sale intra-Community) ProductAccountancySellExportCode=Accounting code (sale export) ProductOrService=Proizvod ili usluga ProductsAndServices=Proizvodi ili usluge ProductsOrServices=Proizvodi ili usluge -ProductsPipeServices=Products | Services +ProductsPipeServices=Proizvodi | Usluge ProductsOnSale=Proizvodi na prodaju ProductsOnPurchase=Proizvodi za kupovinu -ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Products for purchase only +ProductsOnSaleOnly=Proizvod samo za prodaju +ProductsOnPurchaseOnly=Proizvod samo za nabavu ProductsNotOnSell=Proizvodi ni na prodaju ni za kupovinu ProductsOnSellAndOnBuy=Proizvoda za prodaju i za nabavu ServicesOnSale=Usluge na prodaju ServicesOnPurchase=Usluge za kupovinu -ServicesOnSaleOnly=Services for sale only -ServicesOnPurchaseOnly=Services for purchase only +ServicesOnSaleOnly=Usluga samo za prodaju +ServicesOnPurchaseOnly=Usluga samo za nabavu ServicesNotOnSell=Usluge ni na prodaju ni za kupovinu ServicesOnSellAndOnBuy=Usluga za prodaju i za nabavu LastModifiedProductsAndServices=Latest %s products/services which were modified @@ -50,10 +50,10 @@ CardProduct0=Proizvod CardProduct1=Usluga Stock=Zaliha MenuStocks=Zalihe -Stocks=Stocks and location (warehouse) of products +Stocks=Zalihe i mjesto (skladište) proizvoda Movements=Kretanja Sell=Prodaj -Buy=Purchase +Buy=Kupovina OnSell=Za prodaju OnBuy=Za nabavu NotOnSell=Nije za prodaju @@ -68,19 +68,19 @@ ProductStatusNotOnBuyShort=Nije za nabavu UpdateVAT=Promjeni PDV UpdateDefaultPrice=Promjeni predefiniranu cijenu UpdateLevelPrices=Promijeni cijene za svaki nivo -AppliedPricesFrom=Applied from +AppliedPricesFrom=Primijenjeno od SellingPrice=Prodajna cijena SellingPriceHT=Prodajna cijena (bez PDV-a) SellingPriceTTC=Prodajna cijena (sa PDV-om) -SellingMinPriceTTC=Minimum Selling price (inc. tax) +SellingMinPriceTTC=Minimalna prodajna cijena (s porezom) 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 +CostPriceUsage=Ova vrijednost se može koristiti za izračun marže. +ManufacturingPrice=Cijena proizvodnje SoldAmount=Prodani iznos PurchasedAmount=Nabavni iznos NewPrice=Nova cijena -MinPrice=Min. selling price -EditSellingPriceLabel=Edit selling price label +MinPrice=Min. prodajna cijena +EditSellingPriceLabel=Uredite oznaku prodajne cijene CantBeLessThanMinPrice=Prodajna cijena za ovaj proizvod (%s bez PDV-a) ne može biti manja od najmanje dozvoljene. Ova poruka može se pojaviti i kada ste upisali bitan popust. ContractStatusClosed=Zatvoreno ErrorProductAlreadyExists=Proizvod s oznakom %s već postoji @@ -88,7 +88,7 @@ ErrorProductBadRefOrLabel=Neispravna vrijednost za referencu ili oznaku. ErrorProductClone=Dogodila se greška prilikom kloniranja proizvoda ili usluge ErrorPriceCantBeLowerThanMinPrice=Greška, cijena ne može biti niža od minimalne cijene. Suppliers=Dobavljači -SupplierRef=Vendor SKU +SupplierRef=SKU dobavljača ShowProduct=Prikaži proizvod ShowService=Prikaži uslugu ProductsAndServicesArea=Proizvodi i usluge @@ -97,7 +97,7 @@ ServicesArea=Usluge ListOfStockMovements=Popis kretanja zaliha BuyingPrice=Nabavna cijena PriceForEachProduct=Proizvodi s specifičnom cijenom -SupplierCard=Vendor card +SupplierCard=Kartica dobavljača PriceRemoved=Cijena uklonjena BarCode=Barkod BarcodeType=Vrsta barkoda @@ -111,17 +111,17 @@ MultiPricesNumPrices=Broj cijena 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 +AssociatedProducts=Kompleti +AssociatedProductsNumber=Broj proizvoda koji čine ovaj komplet ParentProductsNumber=Broj matičnih grupiranih proizvoda ParentProducts=Matični proizvod -IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit -IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit +IfZeroItIsNotAVirtualProduct=Ako je 0, ovaj proizvod nije komplet +IfZeroItIsNotUsedByVirtualProduct=Ako je 0, ovaj proizvod ne koristi nijedan komplet KeywordFilter=Filter po ključnim riječima CategoryFilter=Filter po kategoriji ProductToAddSearch=Pronađi proizvod za dodavanje NoMatchFound=Ništa slično nije pronađeno -ListOfProductsServices=List of products/services +ListOfProductsServices=Popis proizvoda/usluga ProductAssociationList=List of products/services that are component(s) of this kit ProductParentList=List of kits with this product as a component ErrorAssociationIsFatherOfThis=Jedan od odabranih proizvoda je matični proizvod trenutnog proizvoda @@ -135,20 +135,21 @@ ImportDataset_service_1=Usluge DeleteProductLine=Izbriši stavku proizvoda ConfirmDeleteProductLine=Jeste li sigurni da želite izbrisati stavku proizvoda? ProductSpecial=Specijalni -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. nabavna količina +PriceQtyMin=Cijena za najmanju količinu +PriceQtyMinCurrency=Cijena (valuta) za ovu količinu. +WithoutDiscount=Bez popusta +VATRateForSupplierProduct=Stopa PDV-a (za ovog dobavljača/proizvod) +DiscountQtyMin=Popust za ovu kolicinu. +NoPriceDefinedForThisSupplier=Cijena/količina nije određena za ovog dobavljača/proizvod +NoSupplierPriceDefinedForThisProduct=Za ovaj proizvod nije određena cijena/količina dobavljača +PredefinedItem=Unaprijed definirana stavka +PredefinedProductsToSell=Unaprijed definirani proizvod +PredefinedServicesToSell=Unaprijed definirana usluga PredefinedProductsAndServicesToSell=Upisani proizvodi i usluge na prodaju PredefinedProductsToPurchase=Predefinirani proizvod za kupovinu PredefinedServicesToPurchase=Predifinirana usluga za kupovinu -PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase +PredefinedProductsAndServicesToPurchase=Predefinirani proizvodi/usluge za nabavku NotPredefinedProducts=Nije predefiniran proizvod/usluga GenerateThumb=Generiraj sličicu ServiceNb=Usluga #%s @@ -157,26 +158,26 @@ ListProductByPopularity=Popis proizvoda poredanih po popularnosti ListServiceByPopularity=Popis usluga poredanih po popularnosti Finished=Proizveden proizvod RowMaterial=Materijal -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=Jeste li sigurni da želite klonirati ovaj proizvod ili uslugu %s ? +CloneContentProduct=Kloniraj sve glavne informacije o proizvodu/usluzi +ClonePricesProduct=Kloniraj cijene +CloneCategoriesProduct=Klonirajte povezane oznake/kategorije +CloneCompositionProduct=Klonirajte virtualne proizvode/usluge +CloneCombinationsProduct=Klonirajte varijante proizvoda ProductIsUsed=Ovaj proizvod je korišten NewRefForClone=Ref. novog proizvoda/usluge SellingPrices=Prodajne cijene BuyingPrices=Nabavne cijene CustomerPrices=Cijene kupaca -SuppliersPrices=Vendor prices -SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) +SuppliersPrices=Cijene dobavljača +SuppliersPricesOfProductsOrServices=Cijene dobavljača (proizvoda ili usluga) 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 +CountryOrigin=Zemlja porijekla +RegionStateOrigin=Regija podrijetla +StateOrigin=Država|Pokrajina podrijetla +Nature=Priroda proizvoda (sirovina/proizveden) +NatureOfProductShort=Priroda proizvoda +NatureOfProductDesc=Sirovi materijal ili proizvedeni proizvod ShortLabel=Kratka oznaka Unit=Jedinica p=j. @@ -199,58 +200,58 @@ m2=m² m3=m³ liter=litra l=L -unitP=Piece -unitSET=Set +unitP=Komad +unitSET=Komplet unitS=Sekunda unitH=Sat unitD=Dan unitG=Gram -unitM=Meter -unitLM=Linear meter -unitM2=Square meter -unitM3=Cubic meter -unitL=Liter -unitT=ton +unitM=Metar +unitLM=Linearni metar +unitM2=Četvorni metar +unitM3=Metar kubni +unitL=Litra +unitT=tona unitKG=kg unitG=Gram unitMG=mg -unitLB=pound -unitOZ=ounce -unitM=Meter +unitLB=funta +unitOZ=unca +unitM=Metar unitDM=dm unitCM=cm unitMM=mm -unitFT=ft +unitFT=stopa unitIN=in -unitM2=Square meter +unitM2=Četvorni metar unitDM2=dm² unitCM2=cm² unitMM2=mm² unitFT2=ft² unitIN2=in² -unitM3=Cubic meter +unitM3=Metar kubni unitDM3=dm³ unitCM3=cm³ unitMM3=mm³ unitFT3=ft³ unitIN3=in³ -unitOZ3=ounce -unitgallon=gallon +unitOZ3=unca +unitgallon=galon ProductCodeModel=Predložak ref. proizvoda ServiceCodeModel=Predložak ref. usluge CurrentProductPrice=Trenutna cijena AlwaysUseNewPrice=Uvijek koristi trenutnu cijenu za proizvod/uslugu AlwaysUseFixedPrice=Koristi fiksnu cijenu PriceByQuantity=Različite cijene prema količini -DisablePriceByQty=Disable prices by quantity +DisablePriceByQty=Onemogućite cijene po količini PriceByQuantityRange=Raspon količine -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=Automatske cijene za segment +UseMultipriceRules=Koristite pravila segmenta cijena (definirana u postavkama modula proizvoda) za automatski izračunavanje cijena svih ostalih segmenata prema prvom segmentu PercentVariationOver=%% varijacija preko %s PercentDiscountOver=%% popust preko %s -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products +KeepEmptyForAutoCalculation=Ostavite prazno kako bi se to automatski izračunalo iz težine ili volumena proizvoda VariantRefExample=Examples: COL, SIZE -VariantLabelExample=Examples: Color, Size +VariantLabelExample=Primjeri: boja, veličina ### composition fabrication Build=Proizvodi ProductsMultiPrice=Proizvodi i cijene za svaki cijenovni odjel @@ -271,17 +272,17 @@ FillBarCodeTypeAndValueFromProduct=Popuni tip barkoda i vrijednost iz barkoda pr 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: +BarCodeDataForProduct=Barkod podaci za proizvod %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=Različite cijene za svakog kupca PriceCatalogue=Jedinstvena prodajna cijena po proizvodu/usluzi -PricingRule=Rules for selling prices +PricingRule=Pravila za prodajne cijene AddCustomerPrice=Dodaj cijenu po kupcu ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries PriceByCustomerLog=Zabilježi prijašnje cijene kupca MinimumPriceLimit=Minimalna cijena ne može biti niža od %s. -MinimumRecommendedPrice=Minimum recommended price is: %s +MinimumRecommendedPrice=Minimalna preporučena cijena je: %s PriceExpressionEditor=Uređivanje izraza cijena PriceExpressionSelected=Odabrani izraz cijene PriceExpressionEditorHelp1="cijena = 2 + 2" ili "2 + 2" za postavljanje cijene. Koristite ; za odvajanje izraza @@ -292,12 +293,12 @@ PriceExpressionEditorHelp5=Dostupne globalne vrijednosti: PriceMode=Način cijena PriceNumeric=Broj DefaultPrice=Predefinirana cijena -DefaultPriceLog=Log of previous default prices +DefaultPriceLog=Dnevnik prethodnih zadanih cijena ComposedProductIncDecStock=Povečaj/smanji zalihu po promjeni matičnog proizvoda -ComposedProduct=Child products -MinSupplierPrice=Minimum buying price -MinCustomerPrice=Minimum selling price -NoDynamicPrice=No dynamic price +ComposedProduct=Pod-proizvodi +MinSupplierPrice=Minimalna kupovna cijena +MinCustomerPrice=Minimalna prodajna cijena +NoDynamicPrice=Nema dinamičke cijene DynamicPriceConfiguration=Dinamična konfiguracija cijene 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=Dodaj varijablu @@ -305,14 +306,14 @@ AddUpdater=Dodaj promjenjivač GlobalVariables=Globalne varijable VariableToUpdate=Variabla za promjeniti GlobalVariableUpdaters=External updaters for variables -GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterType0=JSON podaci 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"} +GlobalVariableUpdaterHelpFormat0=Format zahtjeva {"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=Interval promjene (minute) -LastUpdated=Latest update +LastUpdated=Zadnje ažuriranje CorrectlyUpdated=Ispravno promjenjeno PropalMergePdfProductActualFile=Datoteke za dodati u PDF Azur su/je PropalMergePdfProductChooseFile=Odaberite PDF datoteke @@ -322,7 +323,7 @@ WarningSelectOneDocument=Molimo odaberite barem jedan dokument DefaultUnitToShow=Jedinica NbOfQtyInProposals=Količina po ponudama ClinkOnALinkOfColumn=Kliknite na poveznicu kolone %s za detaljan pregled... -ProductsOrServicesTranslations=Products/Services translations +ProductsOrServicesTranslations=Prijevodi proizvoda/usluga TranslatedLabel=Prevedena oznaka TranslatedDescription=Preveden opis TranslatedNote=Prevedene napomene @@ -330,84 +331,96 @@ ProductWeight=Masa 1 proizvoda ProductVolume=Volumen 1 proizvoda WeightUnits=Jedinica težine VolumeUnits=Jedinica volumena -WidthUnits=Width unit -LengthUnits=Length unit -HeightUnits=Height unit -SurfaceUnits=Surface unit +WidthUnits=Jedinica širine +LengthUnits=Jedinica dužine +HeightUnits=Jedinica visine +SurfaceUnits=Površinska jedinica SizeUnits=Jedinica veličine DeleteProductBuyPrice=Obriši nabavnu cijenu ConfirmDeleteProductBuyPrice=Jeste li sigurni da želite obrisati ovu nabavnu cijenu ? -SubProduct=Sub product +SubProduct=Podproizvod ProductSheet=Product sheet ServiceSheet=Service sheet -PossibleValues=Possible values +PossibleValues=Moguće vrijednosti 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 +ProductSupplierDescription=Opis dobavljača za proizvod 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 +PackagingForThisProduct=Ambalaža +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 +VariantAttributes=Atributi varijante +ProductAttributes=Varijanta atributa za proizvode +ProductAttributeName=Atribut varijante %s +ProductAttribute=Atribut varijante +ProductAttributeDeleteDialog=Jeste li sigurni da želite izbrisati ovaj atribut? Sve vrijednosti će biti izbrisane +ProductAttributeValueDeleteDialog=Jeste li sigurni da želite izbrisati vrijednost "%s" s referencom "%s" ovog atributa? +ProductCombinationDeleteDialog=Jeste li sigurni da želite izbrisati varijantu proizvoda " %s "? +ProductCombinationAlreadyUsed=Došlo je do pogreške prilikom brisanja varijante. Molimo provjerite da se ne koristi ni u jednom objektu +ProductCombinations=Varijante 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 +HideProductCombinations=Sakrij varijantu proizvoda u izborniku proizvoda +ProductCombination=Varijanta +NewProductCombination=Nova varijanta +EditProductCombination=Uređivanje varijante +NewProductCombinations=Nove varijante +EditProductCombinations=Uređivanje varijanti +SelectCombination=Odaberite kombinaciju +ProductCombinationGenerator=Generator varijanti +Features=Značajke +PriceImpact=Utjecaj na cijenu +ImpactOnPriceLevel=Utjecaj na razinu cijena %s +ApplyToAllPriceImpactLevel= Primijenite na sve razine +ApplyToAllPriceImpactLevelHelp=Klikom ovdje postavljate isti utjecaj cijene na svim razinama +WeightImpact=Utjecaj težine NewProductAttribute=Novi atribut -NewProductAttributeValue=New attribute value +NewProductAttributeValue=Nova vrijednost atributa 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 +DoNotRemovePreviousCombinations=Nemojte uklanjati prethodne varijante +UsePercentageVariations=Koristite postotne varijacije +PercentageVariation=Postotna varijacija 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 +NbOfDifferentValues=br. različitih vrijednosti +NbProducts=Broj proizvoda +ParentProduct=Matični proizvod +HideChildProducts=Sakrij varijante proizvoda +ShowChildProducts=Prikaži varijante proizvoda 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 +ConfirmCloneProductCombinations=Želite li kopirati sve varijante proizvoda na drugi matični proizvod s navedenom referencom? +CloneDestinationReference=Referenca odredišnog proizvoda +ErrorCopyProductCombinations=Došlo je do pogreške prilikom kopiranja varijanti proizvoda +ErrorDestinationProductNotFound=Odredišni proizvod nije pronađen +ErrorProductCombinationNotFound=Varijanta proizvoda nije pronađena +ActionAvailableOnVariantProductOnly=Akcija dostupna samo na varijanti proizvoda +ProductsPricePerCustomer=Cijene proizvoda po kupcu +ProductSupplierExtraFields=Dodatni atributi (cijene dobavljača) +DeleteLinkedProduct=Izbrišite podređeni proizvod povezan s kombinacijom AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price PMPValue=Procjenjena prosječna cijena PMPValueShort=PPC -mandatoryperiod=Mandatory periods -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined -mandatoryPeriodNeedTobeSetMsgValidate=A service requires a start and end period +mandatoryperiod=Obvezna razdoblja +mandatoryPeriodNeedTobeSet=Napomena: Razdoblje (datum početka i završetka) mora biti definirano +mandatoryPeriodNeedTobeSetMsgValidate=Usluga zahtijeva razdoblje početka i završetka 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 +DefaultBOM=Zadana 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 +Rank=Rang +MergeOriginProduct=Duplikat proizvoda (proizvod koji želite izbrisati) +MergeProducts=Spojite proizvode +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=Proizvodi su spojeni +ErrorsProductsMerge=Pogreške u spajanju proizvoda +SwitchOnSaleStatus=Uključite status prodaje +SwitchOnPurchaseStatus=Uključite status nabave StockMouvementExtraFields= Extra Fields (stock mouvement) +InventoryExtraFields= Dodatna polja (inventar) +ScanOrTypeOrCopyPasteYourBarCodes=Scan or type or copy/paste your barcodes +PuttingPricesUpToDate=Ažurirajte cijene s trenutačno poznatim cijenama +PMPExpected=Očekivani PMP +ExpectedValuation=Očekivana vrijednost +PMPReal=Stvarni PMP +RealValuation=Stvarna vrijednost diff --git a/htdocs/langs/hr_HR/projects.lang b/htdocs/langs/hr_HR/projects.lang index 3c0f2c1b0b2..c9740e10f82 100644 --- a/htdocs/langs/hr_HR/projects.lang +++ b/htdocs/langs/hr_HR/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Oznaka projekta ProjectsArea=Projekti ProjectStatus=Status projekta SharedProject=Svi -PrivateProject=Kontakti projekta +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=Svi projekti koje mogu pročitati (vlastiti + javni) AllProjects=Svi projekti @@ -190,6 +190,7 @@ PlannedWorkload=Planirano opterećenje PlannedWorkloadShort=Opterećenje ProjectReferers=Povezane stavke ProjectMustBeValidatedFirst=Projekt mora biti prvo ovjeren +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time InputPerDay=Unos po danu InputPerWeek=Unos po tjednu @@ -287,3 +288,9 @@ 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=Datum kraja ne može biti prije datuma početka +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 diff --git a/htdocs/langs/hr_HR/recruitment.lang b/htdocs/langs/hr_HR/recruitment.lang index 6fad69b8e0f..7a68935ff4b 100644 --- a/htdocs/langs/hr_HR/recruitment.lang +++ b/htdocs/langs/hr_HR/recruitment.lang @@ -18,59 +18,61 @@ # # Module label 'ModuleRecruitmentName' -ModuleRecruitmentName = Recruitment +ModuleRecruitmentName = Zapošljavanje # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Manage and follow recruitment campaigns for new job positions +ModuleRecruitmentDesc = Upravljajte i pratite kampanje zapošljavanja za nova radna mjesta # # Admin page # -RecruitmentSetup = Recruitment setup +RecruitmentSetup = Postavljanje zapošljavanja Settings = Postavke -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 = Ovdje unesite postavke glavnih opcija za modul za zapošljavanje +RecruitmentArea=Područje za zapošljavanje +PublicInterfaceRecruitmentDesc=Javne stranice poslova su javni URL-ovi za prikaz i odgovaranje na otvorene poslove. Postoji jedna različita poveznica za svaki otvoreni posao, koja se nalazi na svakom zapisu o poslu. +EnablePublicRecruitmentPages=Omogućite javne stranice otvorenih poslova # # 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 +RecruitmentAbout = O zapošljavanju +RecruitmentAboutPage = Zapošljavanje opisna stranica +NbOfEmployeesExpected=Očekivani broj zaposlenih +JobLabel=Oznaka radnog mjesta +WorkPlace=Radno mjesto +DateExpected=Očekivani datum +FutureManager=Budući menadžer +ResponsibleOfRecruitement=Odgovoran za zapošljavanje +IfJobIsLocatedAtAPartner=Ako se posao nalazi na mjestu partnera PositionToBeFilled=Mjesto zaposlenja -PositionsToBeFilled=Job positions -ListOfPositionsToBeFilled=List of job positions -NewPositionToBeFilled=New job positions +PositionsToBeFilled=Radna mjesta +ListOfPositionsToBeFilled=Popis radnih mjesta +NewPositionToBeFilled=Nova radna mjesta -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=Radno mjesto koje treba popuniti +ThisIsInformationOnJobPosition=Podaci o radnom mjestu koje treba popuniti +ContactForRecruitment=Kontakt za zapošljavanje +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 +ContractProposed=Predložen ugovor +ContractSigned=Ugovor potpisan +ContractRefused=Ugovor odbijen +RecruitmentCandidature=Prijava +JobPositions=Radna mjesta +RecruitmentCandidatures=Prijave +InterviewToDo=Intervju za obaviti +AnswerCandidature=Odgovor na prijavu +YourCandidature=Vaša prijava +YourCandidatureAnswerMessage=Hvala vam na vašoj prijavi.
    ... +JobClosedTextCandidateFound=Oglas za radno mjesto je zatvoren. Mjesto je popunjeno. +JobClosedTextCanceled=Oglas za radno mjesto je zatvoren. +ExtrafieldsJobPosition=Komplementarni atributi (radna mjesta) +ExtrafieldsApplication=Komplementarni atributi (molbe za posao) +MakeOffer=Dati ponudu +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/hr_HR/stocks.lang b/htdocs/langs/hr_HR/stocks.lang index 0540fd4ba8f..e08ea88cd01 100644 --- a/htdocs/langs/hr_HR/stocks.lang +++ b/htdocs/langs/hr_HR/stocks.lang @@ -2,25 +2,25 @@ WarehouseCard=Kartica skladišta Warehouse=Skladište Warehouses=Skladišta -ParentWarehouse=Parent warehouse -NewWarehouse=New warehouse / Stock Location +ParentWarehouse=Matično skladište +NewWarehouse=Novo skladište WarehouseEdit=Promjeni skladište MenuNewWarehouse=Novo skladište WarehouseSource=Izvorno skladište WarehouseSourceNotDefined=Skladište nije definirano, -AddWarehouse=Create warehouse +AddWarehouse=Napravite skladište AddOne=Dodajte jedno -DefaultWarehouse=Default warehouse +DefaultWarehouse=Zadano skladište WarehouseTarget=Odredišno skladište -ValidateSending=Confirm shipment -CancelSending=Cancel shipment -DeleteSending=Delete shipment +ValidateSending=Potvrdite pošiljku +CancelSending=Otkazati pošiljku +DeleteSending=Izbrišite pošiljku Stock=Zaliha Stocks=Zalihe -MissingStocks=Missing stocks -StockAtDate=Stocks at date -StockAtDateInPast=Date in the past -StockAtDateInFuture=Date in the future +MissingStocks=Nedovoljne zalihe +StockAtDate=Zalihe na dan +StockAtDateInPast=Datum u prošlosti +StockAtDateInFuture=Datum u budućnosti StocksByLotSerial=Zaliha po lot/serijskom LotSerial=Lot/serijski LotSerialList=Popis lot/serijskih brojeva @@ -28,25 +28,25 @@ Movements=Kretanja ErrorWarehouseRefRequired=Referenca skladišta je obavezna ListOfWarehouses=Popis skladišta ListOfStockMovements=Popis kretanja zaliha -ListOfInventories=List of inventories -MovementId=Movement ID -StockMovementForId=Movement ID %d -ListMouvementStockProject=List of stock movements associated to project +ListOfInventories=Popis zaliha +MovementId=ID kretanja +StockMovementForId=ID kretanja %d +ListMouvementStockProject=Popis kretanja zaliha povezanih s projektom StocksArea=Skladište -AllWarehouses=All warehouses -IncludeEmptyDesiredStock=Include also negative stock with undefined desired stock -IncludeAlsoDraftOrders=Include also draft orders +AllWarehouses=Sva skladišta +IncludeEmptyDesiredStock=Uključite i negativne zalihe s nedefiniranim željenim zalihama +IncludeAlsoDraftOrders=Uključite i nacrte naloga Location=Lokacija -LocationSummary=Short name of location -NumberOfDifferentProducts=Number of unique products +LocationSummary=Kratki naziv lokacije +NumberOfDifferentProducts=Broj jedinstvenih proizvoda NumberOfProducts=Ukupan broj proizvoda -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=Posljednje kretnje +LastMovements=Posljednja kretnja Units=Jedinica Unit=Jedinica -StockCorrection=Stock correction +StockCorrection=Ispravak zaliha CorrectStock=Ispravi zalihu -StockTransfer=Stock transfer +StockTransfer=Prebaci zalihu TransferStock=Prebaci zalihu MassStockTransferShort=Masovni prijenos zaliha StockMovement=Kretanje zalihe @@ -54,52 +54,52 @@ StockMovements=Kretanje zaliha NumberOfUnit=Broj jedinica UnitPurchaseValue=Jed. nabavna cijena StockTooLow=Preniska zaliha -StockLowerThanLimit=Stock lower than alert limit (%s) +StockLowerThanLimit=Zaliha ispod granice upozorenja (%s) EnhancedValue=Vrijednost EnhancedValueOfWarehouses=Vrijednost skladišta -UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user +UserWarehouseAutoCreate=Kreiraj skladište automatski kada se kreira korisnik 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 +RuleForWarehouse=Pravilo za skladišta +WarehouseAskWarehouseOnThirparty=Postavite skladište na trećim stranama +WarehouseAskWarehouseDuringPropal=Postavite skladište na komercijalnim prijedlozima +WarehouseAskWarehouseDuringOrder=Postavite skladište na prodajnim narudžbama +WarehouseAskWarehouseDuringProject=Postavite skladište na Projektima +UserDefaultWarehouse=Postavite skladište na Korisnicima +MainDefaultWarehouse=Zadano skladište +MainDefaultWarehouseUser=Koristite zadano skladište za svakog korisnika +MainDefaultWarehouseUserDesc=Aktiviranjem ove opcije, tijekom kreiranja proizvoda, na ovom će se definirati skladište koje je dodijeljeno proizvodu. Ako za korisnika nije definirano skladište, definira se zadano skladište. +IndependantSubProductStock=Zaliha proizvoda i podproizvoda su nezavisne QtyDispatched=Otpremljena količina QtyDispatchedShort=Otpremljena količina QtyToDispatchShort=Količina za otpremu 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 +RuleForStockManagementDecrease=Odaberite pravilo za automatsko smanjenje zaliha (ručno smanjenje je uvijek moguće, čak i ako je aktivirano pravilo automatskog smanjenja) +RuleForStockManagementIncrease=Odaberite pravilo za automatsko povećanje zaliha (ručno povećanje je uvijek moguće, čak i ako je aktivirano pravilo automatskog povećanja) +DeStockOnBill=Smanji stvarne zalihe kod potvrde računa kupaca/odobrenja +DeStockOnValidateOrder=Smanji stvarnu zalihu kod potvrde narudžbe kupca DeStockOnShipment=Smanji stvarnu zalihu kod potvrde dostavnice -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 +DeStockOnShipmentOnClosing=Smanji stvarnu zalihu kod zatvaranja slanja +ReStockOnBill=Povećaj stvarnu zalihu kod potvrde računa dobavljača/odobrenja +ReStockOnValidateOrder=Povečaj stvarnu zalihu kod potvrde narudžbe dobavljača +ReStockOnDispatchOrder=Povećaj stvarnu zalihu kod ručnog stavljanja na skladište, nakon primitka narudžbe dobavljača StockOnReception=Increase real stocks on validation of reception StockOnReceptionOnClosing=Increase real stocks when reception is set to closed OrderStatusNotReadyToDispatch=Narudžba nije stigla ili nema status koji dozvoljava stavljanje proizvoda na zalihu skladišta. -StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock +StockDiffPhysicTeoric=Objašnjenje za razliku između fizičke i teoretske zalihe NoPredefinedProductToDispatch=Nema predefiniranih proizvoda za ovaj objekt. Potrebno je staviti robu na zalihu. DispatchVerb=Otpremi StockLimitShort=Razina za obavijest StockLimit=Stanje zaliha za obavjest -StockLimitDesc=(empty) means no warning.
    0 can be used to trigger a warning as soon as the stock is empty. -PhysicalStock=Physical Stock +StockLimitDesc=(prazno) znači da nema upozorenja.
    0 može se koristiti za aktiviranje upozorenja čim se zaliha isprazni. +PhysicalStock=Fizička zaliha RealStock=Stvarna zaliha -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): +RealStockDesc=Fizičke/stvarne zalihe su zalihe koje se trenutno nalaze u skladištima. +RealStockWillAutomaticallyWhen=Stvarna zaliha bit će modificirana prema ovom pravilu (kako je definirano u modulu zaliha): VirtualStock=Umjetna zaliha -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 +VirtualStockAtDate=Virtualne zalihe na datum u budućnosti +VirtualStockAtDateDesc=Virtualna zaliha nakon što se dovrše svi nalozi na čekanju koji se planiraju obraditi prije odabranog datuma 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 +AtDate=Na datum IdWarehouse=ID skladišta DescWareHouse=Opis skladišta LieuWareHouse=Lokalizacija skladišta @@ -113,19 +113,19 @@ EstimatedStockValueSell=Vrijednost za prodaju EstimatedStockValueShort=Ulazna vrijednost zalihe EstimatedStockValue=Ulazna vrijednost zalihe DeleteAWarehouse=Obriši skladište -ConfirmDeleteWarehouse=Are you sure you want to delete the warehouse %s? +ConfirmDeleteWarehouse=Jeste li sigurni da želite izbrisati skladište %s ? PersonalStock=Osobna zaliha %s ThisWarehouseIsPersonalStock=Ovo skladište predstavlja osobnu zalihu %s %s SelectWarehouseForStockDecrease=Odaberite skladište za korištenje smanjenje zaliha SelectWarehouseForStockIncrease=Odaberite skladište za smanjenje zaliha NoStockAction=Nema akcije zaliha -DesiredStock=Desired Stock +DesiredStock=Željena zaliha DesiredStockDesc=Ovaj iznos zalihe bit će korišten za popunjavanje zaliha. StockToBuy=Za naručiti Replenishment=Popunjavanje ReplenishmentOrders=Nadopunjavanje narudžbe -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 +VirtualDiffersFromPhysical=Sukladno opcija povečanja/smanjenja zaliha, fizička zaliha i umjetna zaliha (fizički + trenutne narudžbe) mogu se razlikovati +UseRealStockByDefault=Koristite stvarne zalihe umjesto virtualnih zaliha za značajku nadopunjavanja ReplenishmentCalculation=Amount to order will be (desired quantity - real stock) instead of (desired quantity - virtual stock) UseVirtualStock=Koristi umjetnu zalihu UsePhysicalStock=Koristi fizičku zalihu @@ -133,40 +133,40 @@ CurentSelectionMode=Trenutno odabrani način CurentlyUsingVirtualStock=Umjetna zaliha CurentlyUsingPhysicalStock=Fizička zaliha RuleForStockReplenishment=Pravila za popunjavanje zaliha -SelectProductWithNotNullQty=Select at least one product with a qty not null and a vendor +SelectProductWithNotNullQty=Odaberite barem jedan proizvod s količinom i dobavljača AlertOnly= Samo obavijesti IncludeProductWithUndefinedAlerts = Include also negative stock for products with no desired quantity defined, to restore them to 0 WarehouseForStockDecrease=Skladište %s će biti korišteno za smanjenje zalihe WarehouseForStockIncrease=Skladište %s će biti korišteno za povečavanje zalihe ForThisWarehouse=Za ovo skladište -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. +ReplenishmentStatusDesc=Ovo je popis svih proizvoda s zalihama manjim od željene (ili nižom od vrijednosti upozorenja ako je potvrdni okvir "samo upozorenje" označen). Koristeći potvrdni okvir, možete kreirati narudžbenice za popunjavanje razlike. 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. +ReplenishmentOrdersDesc=Ovo je popis svih otvorenih narudžba dobavljaču uključujući predefinirane proizvode. Samo otvorene narudžbe s predefiniranim proizvodima, narudžbe koje mogu utjecati na zalihe, su prikazane ovdje. Replenishments=Popunjavanje NbOfProductBeforePeriod=Količina proizvoda %s na zalihi prije odabranog perioda (< %s) NbOfProductAfterPeriod=Količina proizvoda %s na zalihi nakon odabranog perioda (> %s) MassMovement=Masovno kretanje 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 +RecordMovement=Zabilježi prijenos ReceivingForSameOrder=Primke za narudžbu StockMovementRecorded=Kretanja zaliha zabilježeno RuleForStockAvailability=Pravila potrebnih zaliha -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) +StockMustBeEnoughForInvoice=Razina zaliha mora biti dovoljna za dodavanje proizvoda/usluge na fakturu (provjera se vrši na trenutnim stvarnim zalihama prilikom dodavanja retka u fakturu bez obzira na pravilo za automatsku promjenu zaliha) +StockMustBeEnoughForOrder=Razina zaliha mora biti dovoljna za dodavanje proizvoda/usluge narudžbi (provjera se vrši na trenutnim stvarnim zalihama kada se dodaje red u narudžbu bez obzira na pravilo za automatsku promjenu zaliha) +StockMustBeEnoughForShipment= Razina zaliha mora biti dovoljna za dodavanje proizvoda/usluge u pošiljku (provjera se vrši na trenutnim stvarnim zalihama prilikom dodavanja linije u pošiljku bez obzira na pravilo za automatsku promjenu zaliha) MovementLabel=Oznaka kretanja -TypeMovement=Direction of movement +TypeMovement=Smjer kretanja DateMovement=Date of movement InventoryCode=Kretanje ili inventarni kod IsInPackage=Sadržane u grupiranim proizvodima WarehouseAllowNegativeTransfer=Zaliha ne može biti negativna -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'). +qtyToTranferIsNotEnough=Nemate dovoljno zaliha iz izvornog skladišta i vaša postavka ne dopušta negativne zalihe. +qtyToTranferLotIsNotEnough=Nemate dovoljno zaliha, za ovaj broj serije, iz svog izvornog skladišta i vaše postavke ne dopuštaju negativne zalihe (Količina za proizvod '%s' s lotom '%s' je %s u skladištu '%s'). ShowWarehouse=Prikaži skladište MovementCorrectStock=Ispravak zalihe za proizvod %s MovementTransferStock=Prebacivanje zalihe za proizvod %s u drugo skladište InventoryCodeShort=Inv./Kret. kod -NoPendingReceptionOnSupplierOrder=No pending reception due to open purchase order +NoPendingReceptionOnSupplierOrder=Nema prijema u tijeku za otvaranje narudžbe dobavljaču ThisSerialAlreadyExistWithDifferentDate=Ovaj lot/serijski broj (%s) već postoji ali sa različitim rokom upotrbljivosti ili valjanosti ( pronađen %s a uneseno je %s). OpenAnyMovement=Open (all movement) OpenInternal=Open (only internal movement) @@ -174,100 +174,144 @@ UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on pu 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 add another warehouse for this product -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 +ProductStockWarehouseDeleted=Ograničenje zaliha za upozorenje i željene optimalne zalihe ispravno su izbrisane +AddNewProductStockWarehouse=Postavite novo ograničenje za upozorenje i željenu optimalnu zalihu +AddStockLocationLine=Smanjite količinu, a zatim kliknite da biste podijelili liniju +InventoryDate=Datum zalihe +Inventories=Zalihe +NewInventory=Nova zaliha +inventorySetup = Postavljanje inventara +inventoryCreatePermission=Napravite novi inventar +inventoryReadPermission=Pregledajte zalihe +inventoryWritePermission=Ažurirajte zalihe +inventoryValidatePermission=Potvrdite inventar +inventoryDeletePermission=Izbriši inventar inventoryTitle=Zalihe -inventoryListTitle=Inventories +inventoryListTitle=Zalihe inventoryListEmpty=No inventory in progress -inventoryCreateDelete=Create/Delete inventory -inventoryCreate=Create new +inventoryCreateDelete=Izradite/izbrišite zalihe +inventoryCreate=Kreiraj novo inventoryEdit=Uredi inventoryValidate=Ovjereno inventoryDraft=U tijeku -inventorySelectWarehouse=Warehouse choice +inventorySelectWarehouse=Izbor skladišta inventoryConfirmCreate=Create -inventoryOfWarehouse=Inventory for warehouse: %s -inventoryErrorQtyAdd=Error: one quantity is less than zero +inventoryOfWarehouse=Zalihe za skladište: %s +inventoryErrorQtyAdd=Pogreška: jedna količina je manja od nule inventoryMvtStock=By inventory -inventoryWarningProductAlreadyExists=This product is already into list +inventoryWarningProductAlreadyExists=Ovaj proizvod je već na popisu SelectCategory=Filter po kategoriji -SelectFournisseur=Vendor filter +SelectFournisseur=Filter po dobavljaču inventoryOnDate=Zalihe 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 +inventoryChangePMPPermission=Dopusti promjenu PMP vrijednosti za proizvod 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 +OnlyProdsInStock=Nemojte dodavati proizvod bez zalihe +TheoricalQty=Teorijska količina +TheoricalValue=Teorijska količina +LastPA=Zadnji BP +CurrentPA=Trenutni BP +RecordedQty=Zabilježena količina +RealQty=Stvarna količina +RealValue=Stvarna vrijednost +RegulatedQty=Regulirana količina +AddInventoryProduct=Dodajte proizvod na zalihu AddProduct=Dodaj -ApplyPMP=Apply PMP +ApplyPMP=Primijenite PMP FlushInventory=Flush inventory -ConfirmFlushInventory=Do you confirm this action? +ConfirmFlushInventory=Potvrđujete li ovu radnju? InventoryFlushed=Inventory flushed -ExitEditMode=Exit edition +ExitEditMode=Izlazno izdanje inventoryDeleteLine=Obriši stavku -RegulateStock=Regulate Stock +RegulateStock=Regulirajte zalihe ListInventory=Popis -StockSupportServices=Stock management supports Services +StockSupportServices=Upravljanje zalihama podržava usluge 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 +StockIncreaseAfterCorrectTransfer=Povećanje korekcijom/prijenosom +StockDecreaseAfterCorrectTransfer=Smanjenje korekcijom/prijenosom +StockIncrease=Povećanje zaliha +StockDecrease=Smanjenje zaliha 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 +ForceTo=Prisiliti na 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 +CurrentStock=Trenutna zaliha InventoryRealQtyHelp=Set value to 0 to reset qty
    Keep field empty, or remove line, to keep unchanged -UpdateByScaning=Complete real qty by scaning +UpdateByScaning=Dovršite stvarnu količinu skeniranjem 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... +ChooseFileToImport=Prenesite datoteku, a zatim kliknite na ikonu %s da odaberete datoteku kao izvornu datoteku za uvoz... 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=Ponovo otvori 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 +ObjectNotFound=%s nije pronađeno MakeMovementsAndClose=Generate movements and close -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Ispunite stvarnu količinu očekivanom količinom 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 +ErrorWrongBarcodemode=Nepoznati način rada s crtičnim kodom +ProductDoesNotExist=Proizvod ne postoji 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 +ProductBatchDoesNotExist=Proizvod sa serijskim brojem ne postoji +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 QtyWasAddedToTheScannedBarcode=Success !! The quantity was added to all the requested barcode. You can close the Scanner tool. -StockChangeDisabled=Change on stock disabled +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/stripe.lang b/htdocs/langs/hr_HR/stripe.lang index fb2cfbe3ba1..a1731639dfc 100644 --- a/htdocs/langs/hr_HR/stripe.lang +++ b/htdocs/langs/hr_HR/stripe.lang @@ -1,18 +1,18 @@ # Dolibarr language file - Source file is en_US - stripe -StripeSetup=Stripe module setup +StripeSetup=Postavljanje Stripe modula 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 +StripeOrCBDoPayment=Platite kreditnom karticom ili Stripeom FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects PaymentForm=Obrazac plaćanja -WelcomeOnPaymentPage=Welcome to our online payment service +WelcomeOnPaymentPage=Dobrodošli u našu uslugu online plaćanja ThisScreenAllowsYouToPay=Ova stranica vam dozvoljava da vršite online plaćanje prema %s -ThisIsInformationOnPayment=This is information on payment to do +ThisIsInformationOnPayment=Ovo je informacija o plaćanju ToComplete=Za završiti YourEMail=E-pošta za prijem potvrde uplate -STRIPE_PAYONLINE_SENDEMAIL=Email notification after a payment attempt (success or fail) +STRIPE_PAYONLINE_SENDEMAIL=Obavijest e-poštom nakon pokušaja plaćanja (uspješan ili neuspješan) Creditor=Kreditor PaymentCode=Kod plaćanja -StripeDoPayment=Pay with Stripe +StripeDoPayment=Platite Stripeom YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information Continue=Sljedeće ToOfferALinkForOnlinePayment=URL za %s plaćanje @@ -31,7 +31,7 @@ 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 +FailedToChargeCard=Naplata kartice nije uspjela STRIPE_TEST_SECRET_KEY=Secret test key STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key STRIPE_TEST_WEBHOOK_KEY=Webhook test key diff --git a/htdocs/langs/hr_HR/ticket.lang b/htdocs/langs/hr_HR/ticket.lang index 069862f2ab1..a940aeb3182 100644 --- a/htdocs/langs/hr_HR/ticket.lang +++ b/htdocs/langs/hr_HR/ticket.lang @@ -18,236 +18,257 @@ # Generic # -Module56000Name=Tickets -Module56000Desc=Ticket system for issue or request management +Module56000Name=Tiketi +Module56000Desc=Sustav tiketa za upravljanje izdavanjem ili zahtjevom -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=Vidi tikete +Permission56002=Izmijenite tikete +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) -TicketDictType=Ticket - Types -TicketDictCategory=Ticket - Groupes -TicketDictSeverity=Ticket - Severities -TicketDictResolution=Ticket - Resolution +TicketDictType=Tiketi - Vrste +TicketDictCategory=Tiketi - Grupe +TicketDictSeverity=Tiketi - ozbiljnosti +TicketDictResolution=Tiketi - rješavanje -TicketTypeShortCOM=Commercial question -TicketTypeShortHELP=Request for functionnal help -TicketTypeShortISSUE=Issue or bug +TicketTypeShortCOM=Komercijalno pitanje +TicketTypeShortHELP=Zahtjev za funkcionalnu pomoć +TicketTypeShortISSUE=Problem ili bug TicketTypeShortPROBLEM=Problem -TicketTypeShortREQUEST=Change or enhancement request +TicketTypeShortREQUEST=Zahtjev za promjenu ili poboljšanje TicketTypeShortPROJET=Projekt TicketTypeShortOTHER=Ostalo TicketSeverityShortLOW=Nisko -TicketSeverityShortNORMAL=Normal +TicketSeverityShortNORMAL=Normalano TicketSeverityShortHIGH=Visoko -TicketSeverityShortBLOCKING=Critical, Blocking +TicketSeverityShortBLOCKING=Kritično, blokirajuče TicketCategoryShortOTHER=Ostalo -ErrorBadEmailAddress=Field '%s' incorrect -MenuTicketMyAssign=My tickets -MenuTicketMyAssignNonClosed=My open tickets -MenuListNonClosed=Open tickets +ErrorBadEmailAddress=Polje '%s' nije ispravno +MenuTicketMyAssign=Moji tiketi +MenuTicketMyAssignNonClosed=Moji otvoreni tiketi +MenuListNonClosed=Otvoreni tiketi TypeContact_ticket_internal_CONTRIBUTOR=Suradnik -TypeContact_ticket_internal_SUPPORTTEC=Assigned user -TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking -TypeContact_ticket_external_CONTRIBUTOR=External contributor +TypeContact_ticket_internal_SUPPORTTEC=Dodijeljeni korisnik +TypeContact_ticket_external_SUPPORTCLI=Kontakt s klijentom / praćenje incidenata +TypeContact_ticket_external_CONTRIBUTOR=Vanjski suradnik OriginEmail=Reporter Email -Notify_TICKET_SENTBYMAIL=Send ticket message by email +Notify_TICKET_SENTBYMAIL=Pošaljite poruku o tiketu putem e-pošte # Status -Read=Read -Assigned=Assigned +Read=Čitati +Assigned=Dodijeljeno InProgress=U postupku NeedMoreInformation=Waiting for reporter feedback -NeedMoreInformationShort=Waiting for feedback -Answered=Answered +NeedMoreInformationShort=Čeka se povratna informacija +Answered=Odgovoreno Waiting=Čeka -SolvedClosed=Solved -Deleted=Deleted +SolvedClosed=Riješeno +Deleted=Izbrisano # Dict Type=Vrsta -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=Ozbiljnost +TicketGroupIsPublic=Grupa je javna +TicketGroupIsPublicDesc=Ako je grupa tiketa javna, bit će vidljiva u obrascu prilikom kreiranja tiketa iz javnog sučelja # Email templates -MailToSendTicketMessage=To send email from ticket message +MailToSendTicketMessage=Za slanje e-pošte iz poruke s tiketa # # Admin page # -TicketSetup=Ticket module setup +TicketSetup=Postavljanje modula tiketa TicketSettings=Postavke 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=Javno sučelje koje ne zahtijeva identifikaciju dostupno je na sljedećem URL-u +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 +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 +TicketNewEmailBodyHelp=Ovdje navedeni tekst bit će umetnut u e-poruku kojom se potvrđuje stvaranje novog tiketa s javnog sučelja. Podaci o pregledu tiketa se automatski dodaju. +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. +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) +TicketPublicInterfaceTextHomeLabelAdmin=Tekst dobrodošlice javnog sučelja +TicketPublicInterfaceTextHome=Možete stvoriti tiket za podršku ili pogledati postojeći iz njezine identifikacijske tiketa za praćenje. +TicketPublicInterfaceTextHomeHelpAdmin=Ovdje definirani tekst pojavit će se na početnoj stranici javnog sučelja. +TicketPublicInterfaceTopicLabelAdmin=Naslov sučelja +TicketPublicInterfaceTopicHelp=Ovaj tekst će se pojaviti kao naslov javnog sučelja. +TicketPublicInterfaceTextHelpMessageLabelAdmin=Tekst pomoći za unos poruke +TicketPublicInterfaceTextHelpMessageHelpAdmin=Ovaj tekst će se pojaviti iznad područja za unos poruke korisnika. +ExtraFieldsTicket=Dodatni atributi +TicketCkEditorEmailNotActivated=HTML uređivač nije aktiviran. Stavite FCKEDITOR_ENABLE_MAIL sadržaj na 1 da biste ga dobili. +TicketsDisableEmail=Nemojte slati e-poštu za izradu tiketa ili snimanje poruke +TicketsDisableEmailHelp=Prema zadanim postavkama, e-poruke se šalju kada se kreiraju novi tiketi ili poruke. Omogućite ovu opciju da biste onemogućili *sve* obavijesti e-poštom +TicketsLogEnableEmail=Omogućite prijavu putem e-pošte +TicketsLogEnableEmailHelp=Prilikom svake promjene, e-poruka će biti poslana **svakom kontaktu** povezanom s tiketom. +TicketParams=Parametri +TicketsShowModuleLogo=Prikažite logo modula u javnom sučelju +TicketsShowModuleLogoHelp=Omogućite ovu opciju da biste sakrili modul logotipa na stranicama javnog sučelja +TicketsShowCompanyLogo=Prikaz logotipa tvrtke u javnom sučelju +TicketsShowCompanyLogoHelp=Omogućite ovu opciju da biste sakrili logotip glavne tvrtke na stranicama javnog sučelja +TicketsEmailAlsoSendToMainAddress=Također pošaljite obavijest na glavnu adresu e-pošte +TicketsEmailAlsoSendToMainAddressHelp=Omogućite ovu opciju za slanje e-pošte na adresu definiranu u postavkama "%s" (pogledajte karticu "%s") +TicketsLimitViewAssignedOnly=Ograničite prikaz na tikete dodijeljene trenutnom korisniku (nije učinkovito za vanjske korisnike, uvijek biti ograničeno na treću stranu o kojoj ovise) +TicketsLimitViewAssignedOnlyHelp=Bit će vidljivi samo tiketi dodijeljeni trenutnom korisniku. Ne odnosi se na korisnika s pravima upravljanja tiketima. +TicketsActivatePublicInterface=Aktivirajte javno sučelje +TicketsActivatePublicInterfaceHelp=Javno sučelje omogućuje posjetiteljima da kreiraju tikete. +TicketsAutoAssignTicket=Automatski dodijelite korisnika koji je kreirao tiket +TicketsAutoAssignTicketHelp=Prilikom izrade tiketa korisniku se može automatski dodijeliti tiket. +TicketNumberingModules=Modul numeriranja tiketa +TicketsModelModule=Predlošci dokumenata za tikete +TicketNotifyTiersAtCreation=Obavijestite treću stranu prilikom kreiranja +TicketsDisableCustomerEmail=Uvijek onemogućite e-poštu kada se tiket kreira iz javnog sučelja +TicketsPublicNotificationNewMessage=Pošaljite e-poštu(e) kada se nova poruka/komentar doda na tiket +TicketsPublicNotificationNewMessageHelp=Pošaljite e-poštu(e) kada se nova poruka doda s javnog sučelja (dodijeljenom korisniku ili e-poruka s obavijestima (ažuriranje) i/ili e-poruka s obavijestima na) +TicketPublicNotificationNewMessageDefaultEmail=Obavijesti e-poštom na (ažuriranje) +TicketPublicNotificationNewMessageDefaultEmailHelp=Pošaljite e-mail na ovu adresu za svaku obavijest o novoj poruci ako tiket nema dodijeljenog korisnika ili ako korisnik nema poznatu e-poštu. +TicketsAutoReadTicket=Automatski označi tiket kao pročitan (kada je kreiran iz backofficea) +TicketsAutoReadTicketHelp=Automatski označite tiket kao pročitan kada je kreiran iz backofficea. Kada se tiket kreira iz javnog sučelja, tiket ostaje sa statusom "Nije pročitan". +TicketsDelayBeforeFirstAnswer=Noi tiket bi trebao dobiti prvi odgovor prije (sati): +TicketsDelayBeforeFirstAnswerHelp=Ako novi tiket nije dobio odgovor nakon tog vremenskog razdoblja (u satima), u prikazu popisa bit će prikazana važna ikona upozorenja. +TicketsDelayBetweenAnswers=Ne riješeni tiket ne smije biti ne aktivan tijekom (sati): +TicketsDelayBetweenAnswersHelp=Ako neriješena prijava koja je već dobila odgovor nije imala daljnju interakciju nakon tog vremenskog razdoblja (u satima), u prikazu popisa će se prikazati ikona upozorenja. +TicketsAutoNotifyClose=Automatski obavijesti treću stranu prilikom zatvaranja tiketa +TicketsAutoNotifyCloseHelp=Prilikom zatvaranja tiketa, bit će vam predloženo da pošaljete poruku jednom od kontakata treće strane. Prilikom masovnog zatvaranja, poruka će biti poslana jednom kontaktu treće strane povezanom s tiketom. +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. + # # 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=Područje za tikete +TicketList=Popis tiketa +TicketAssignedToMeInfos=Ova stranica prikazuje popis tiketa koje je kreirao ili dodijelio trenutačni korisnik +NoTicketsFound=Tiket nije pronađen +NoUnreadTicketsFound=Nije pronađen nepročitani tiket +TicketViewAllTickets=Pogledajte sve tikete +TicketViewNonClosedOnly=Pogledajte samo otvorene tikete +TicketStatByStatus=Tiketi po statusu +OrderByDateAsc=Poredaj po uzlaznom datumu +OrderByDateDesc=Poredaj prema silaznom datumu +ShowAsConversation=Prikaži kao popis razgovora +MessageListViewType=Prikaži kao popis u tablici +ConfirmMassTicketClosingSendEmail=Automatski šaljite e-poštu prilikom zatvaranja tiketa +ConfirmMassTicketClosingSendEmailQuestion=Želite li obavijestiti treće strane o zatvaranju ovih tiketa? # # Ticket card # -Ticket=Ticket +Ticket=Tiket TicketCard=Ticket card -CreateTicket=Create ticket -EditTicket=Edit ticket -TicketsManagement=Tickets Management +CreateTicket=Kreirajte tiket +EditTicket=Uredi tiket +TicketsManagement=Upravljanje tiketima CreatedBy=Izradio -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 +NewTicket=Novi tiket +SubjectAnswerToTicket=Odgovor na tiket +TicketTypeRequest=Vrsta zahtjeva +TicketCategory=Kategorizacija tiketa +SeeTicket=Vidi tiket +TicketMarkedAsRead=Tiket je označen kao pročitan +TicketReadOn=Pročitano TicketCloseOn=Datum zatvaranja -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 +MarkAsRead=Označite tiket kao pročitan +TicketHistory=Povijest tiketa +AssignUser=Dodijeli korisniku +TicketAssigned=Tiket je sada dodijeljen +TicketChangeType=Promijenite vrstu +TicketChangeCategory=Promijenite analitički kod +TicketChangeSeverity=Promijenite ozbiljnost +TicketAddMessage=Dodajte poruku +AddMessage=Dodajte poruku +MessageSuccessfullyAdded=Tiket je dodan +TicketMessageSuccessfullyAdded=Poruka je uspješno dodana +TicketMessagesList=Popis poruka +NoMsgForThisTicket=Nema poruke za ovaj tiket +TicketProperties=Klasifikacija LatestNewTickets=Latest %s newest tickets (not read) -TicketSeverity=Severity -ShowTicket=See ticket -RelatedTickets=Related tickets +TicketSeverity=Ozbiljnost +ShowTicket=Vidi tiket +RelatedTickets=Povezani tiketi TicketAddIntervention=Izradi intervenciju -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. +CloseTicket=Zatvori|Riješi tiket +AbandonTicket=Napusti tiket +CloseATicket=Zatvori|Riješi tiket +ConfirmCloseAticket=Potvrdite zatvaranje tiketa +ConfirmAbandonTicket=Potvrđujete li zatvaranje tiketa u status 'Napušteno' +ConfirmDeleteTicket=Potvrdite brisanje tiketa +TicketDeletedSuccess=Tiket je uspješno izbrisan +TicketMarkedAsClosed=Tiket je označen kao zatvoren +TicketDurationAuto=Izračunato trajanje +TicketDurationAutoInfos=Trajanje izračunato automatski na temelju intervencije +TicketUpdated=Tiket je ažuriran +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 +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=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 +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. +TicketMessageHelp=Samo će ovaj tekst biti spremljen na popisu poruka na kartici. +TicketMessageSubstitutionReplacedByGenericValues=Supstitucijske varijable zamjenjuju se generičkim vrijednostima. +TimeElapsedSince=Vrijeme je proteklo od tada +TicketTimeToRead=Vrijeme je proteklo prije čitanja +TicketTimeElapsedBeforeSince=Vrijeme proteklo prije/od 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 +TicketDocumentsLinked=Dokumenti povezani s tiketom +ConfirmReOpenTicket=Potvrditi ponovno otvaranje ovog tiketa? +TicketMessageMailIntroAutoNewPublicMessage=Na tiketu je objavljena nova poruka s temom %s: +TicketAssignedToYou=Tiket dodijeljen +TicketAssignedEmailBody=Tiket #%s dodijelio vam je %s +MarkMessageAsPrivate=Označi poruku kao privatnu +TicketMessagePrivateHelp=Ova poruka se neće prikazati vanjskim korisnicima 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 +InitialMessage=Početna poruka +LinkToAContract=Veza na ugovor +TicketPleaseSelectAContract=Odaberite ugovor +UnableToCreateInterIfNoSocid=Ne može se kreirati intervencija kada nije definirana treća strana +TicketMailExchanges=Razmjena pošte +TicketInitialMessageModified=Početna poruka je izmijenjena +TicketMessageSuccesfullyUpdated=Poruka je uspješno ažurirana +TicketChangeStatus=Promjena statusa +TicketConfirmChangeStatus=Potvrdite promjenu statusa: %s ? +TicketLogStatusChanged=Status promijenjen: %s u %s +TicketNotNotifyTiersAtCreate=Ne obavještavati tvrtku pri izradi +NotifyThirdpartyOnTicketClosing=Kontakti koje treba obavijestiti prilikom zatvaranja tiketa +TicketNotifyAllTiersAtClose=Svi povezani kontakti +TicketNotNotifyTiersAtClose=Nema povezanog kontakta +Unread=Nepročitano +TicketNotCreatedFromPublicInterface=Nije dostupno. Tiket nije stvoren iz javnog sučelja. +ErrorTicketRefRequired=Referentni naziv tiketa je obavezan +TicketsDelayForFirstResponseTooLong=Prošlo je previše vremena od otvaranja tiketa bez odgovora. +TicketsDelayFromLastResponseTooLong=Prošlo je previše vremena od posljednjeg odgovora na ovaj tiket. +TicketNoContractFoundToLink=Nije pronađen nijedan ugovor koji bi se automatski povezivao s ovim tiketom. Molimo povežite ugovor ručno. +TicketManyContractsLinked=Mnogi ugovori su automatski povezani s ovim tiketom. Obavezno provjerite koji bi trebao biti odabran. # # Logs # -TicketLogMesgReadBy=Ticket %s read by %s -NoLogForThisTicket=No log for this ticket yet -TicketLogAssignedTo=Ticket %s assigned to %s +TicketLogMesgReadBy=Tiket %s čita %s +NoLogForThisTicket=Još nema zapisa za ovaj tiket +TicketLogAssignedTo=Tiket %s dodijeljen %s TicketLogPropertyChanged=Ticket %s modified: classification from %s to %s TicketLogClosedBy=Ticket %s closed by %s TicketLogReopen=Ticket %s re-open @@ -266,47 +287,52 @@ 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. +TicketNewEmailBodyInfosTicket=Informacije za praćenje tiketa +TicketNewEmailBodyInfosTrackId=Broj za praćenje tiketa: %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. +TicketPublicPleaseBeAccuratelyDescribe=Molimo vas da precizno opišete problem. Navedite najviše mogućih informacija kako biste nam omogućili da ispravno identificiramo vaš zahtjev. TicketPublicMsgViewLogIn=Please enter ticket tracking ID -TicketTrackId=Public Tracking ID -OneOfTicketTrackId=One of your tracking ID +TicketTrackId=Javni ID za praćenje +OneOfTicketTrackId=Jedan od vaših ID-a za praćenje ErrorTicketNotFound=Ticket with tracking ID %s not found! Subject=Subjekt -ViewTicket=View ticket +ViewTicket=Pogledaj tiket 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 +SeeThisTicketIntomanagementInterface=Pogledajte tiket u sučelju za upravljanje +TicketPublicInterfaceForbidden=Javno sučelje za tiket nije bilo omogućeno +ErrorEmailOrTrackingInvalid=Loša vrijednost za ID praćenja ili e-poštu +OldUser=Stari korisnik NewUser=Novi korisnik -NumberOfTicketsByMonth=Number of tickets per month -NbOfTickets=Number of tickets +NumberOfTicketsByMonth=Broj tiketa mjesečno +NbOfTickets=Broj tiketa # notifications -TicketNotificationEmailSubject=Ticket %s updated +TicketCloseEmailSubjectCustomer=Tiket zatvoren +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=Tiket %s ažuriran 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 +TicketNotificationEmailBodyInfosTrackUrlinternal=Pogledajte tiket u sučelju +TicketNotificationNumberEmailSent=Obavijest je poslana e-poštom: %s -ActionsOnTicket=Events on ticket +ActionsOnTicket=Događaji na tiketu # # Boxes # -BoxLastTicket=Latest created tickets -BoxLastTicketDescription=Latest %s created tickets +BoxLastTicket=Zadnje kreirani tiketi +BoxLastTicketDescription=Zadnje %s kreirani tiketi BoxLastTicketContent= -BoxLastTicketNoRecordedTickets=No recent unread tickets +BoxLastTicketNoRecordedTickets=Nema nedavnih nepročitanih tiketa BoxLastModifiedTicket=Latest modified tickets BoxLastModifiedTicketDescription=Latest %s modified tickets BoxLastModifiedTicketContent= diff --git a/htdocs/langs/hr_HR/trips.lang b/htdocs/langs/hr_HR/trips.lang index c23105aaa83..ee93915d75b 100644 --- a/htdocs/langs/hr_HR/trips.lang +++ b/htdocs/langs/hr_HR/trips.lang @@ -10,21 +10,21 @@ ListOfFees=Popis pristojbi TypeFees=Tipovi pristojbi ShowTrip=Prikaži izvještaj troškova NewTrip=Novi izvještaj troškova -LastExpenseReports=Latest %s expense reports -AllExpenseReports=All expense reports -CompanyVisited=Company/organization visited +LastExpenseReports=Najnovija izvješća o troškovima %s +AllExpenseReports=Sva izvješća o troškovima +CompanyVisited=Posjećena tvrtka/organizacija FeesKilometersOrAmout=Iznos ili kilometri DeleteTrip=Obriši izvještaj troškova -ConfirmDeleteTrip=Are you sure you want to delete this expense report? +ConfirmDeleteTrip=Jeste li sigurni da želite izbrisati ovo izvješće o troškovima? ListTripsAndExpenses=Popis izvještaja troškova ListToApprove=Čeka na odobrenje ExpensesArea=Sučelje izvještaja troškova ClassifyRefunded=Označi 'Povrat' ExpenseReportWaitingForApproval=Novi izvještaj troškova je predan za odobrenje 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 +ExpenseReportWaitingForReApproval=Izvještaj o troškovima dostavljen je na ponovno odobrenje 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 +ExpenseReportApproved=Izvješće o troškovima je odobreno 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 @@ -33,7 +33,7 @@ ExpenseReportCanceledMessage=The expense report %s was canceled.
    - User: %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=Izvještaj troškova ID -AnyOtherInThisListCanValidate=Person to be informed for validating the request. +AnyOtherInThisListCanValidate=Osoba koju treba obavijestiti radi potvrđivanja zahtjeva. TripSociete=Više o tvrtci TripNDF=Informacije izvještaja troškova PDFStandardExpenseReports=Standardni predložak za generiranje PDF dokumenta za izvještaje troškova @@ -49,32 +49,32 @@ TF_PEAGE=Cestarina TF_ESSENCE=Gorivo TF_HOTEL=Hotel TF_TAXI=Taxi -EX_KME=Mileage costs +EX_KME=Troškovi kilometraže EX_FUE=Fuel CV EX_HOT=Hotel EX_PAR=Parking CV EX_TOL=Toll CV -EX_TAX=Various Taxes +EX_TAX=Razni porezi 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_SUM=Opskrba za održavanje +EX_SUO=Uredski pribor +EX_CAR=Najam automobila +EX_DOC=Dokumentacija +EX_CUR=Kupci primaju +EX_OTR=Ostalo primanje +EX_POS=Poštarina EX_CAM=CV maintenance and repair -EX_EMM=Employees meal -EX_GUM=Guests meal -EX_BRE=Breakfast +EX_EMM=Obrok zaposlenika +EX_GUM=Obrok za goste +EX_BRE=Doručak 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 +DefaultCategoryCar=Zadani način prijevoza 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' +UploadANewFileNow=Prenesite novi dokument sada +Error_EXPENSEREPORT_ADDON_NotDefined=Pogreška, pravilo za numeriranje izvještaja o troškovima ref nije definirano u postavljanju modula 'Izvješće o troškovima' ErrorDoubleDeclaration=Objavili ste još jedan izvještaj troškova u sličnom razdoblju. AucuneLigne=Još nije objavljen izvještaj troškova ModePaiement=Način isplate @@ -94,14 +94,14 @@ ExpenseReportRef=Ref. expense report ValidateAndSubmit=Ovjeri i predaj za odobrenje ValidatedWaitingApproval=Ovjereno (čeka odobrenje) NOT_AUTHOR=Vi niste autor izvještaja troškova. Operacija je prekinuta. -ConfirmRefuseTrip=Are you sure you want to deny this expense report? +ConfirmRefuseTrip=Jeste li sigurni da želite odbiti izvještaj o troškovima ? ValideTrip=Odobri izvještaj troškova -ConfirmValideTrip=Are you sure you want to approve this expense report? +ConfirmValideTrip=Jeste li sigurni da želite odobriti izvještaj o troškovima ? PaidTrip=Isplati troškove -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? +ConfirmPaidTrip=Jeste li sigurni da želite promijeniti status ovog izvješća o troškovima u "Plaćeno"? +ConfirmCancelTrip=Jeste li sigurni da želite otkazati izvjetaj troškova ? BrouillonnerTrip=Vrati izvještaj troškova nazad na status "Skica" -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? +ConfirmBrouillonnerTrip=Jeste li sigurni da želite staviti izvještaj troškova u status "Skica" ? SaveTrip=Ovjeri trošak ConfirmSaveTrip=Are you sure you want to validate this expense report? NoTripsToExportCSV=Nema izvještaja troškova za izvoz u ovom razdoblju. @@ -114,37 +114,37 @@ 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) +expenseReportCoef=Koeficijent +expenseReportTotalForFive=Primjer s d = 5 +expenseReportRangeFromTo=od %d do %d +expenseReportRangeMoreThan=više od %d +expenseReportCoefUndefined=(vrijednost nije definirana) 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 +ExpenseReportLimitOn=Ograničenje uključeno +ExpenseReportDateStart=Datum početka ExpenseReportDateEnd=Datum završetka -ExpenseReportLimitAmount=Max amount +ExpenseReportLimitAmount=Maksimalni iznos ExpenseReportRestrictive=Exceeding forbidden AllExpenseReport=All type of expense report OnExpense=Expense line ExpenseReportRuleSave=Expense report rule saved -ExpenseReportRuleErrorOnSave=Error: %s -RangeNum=Range %d +ExpenseReportRuleErrorOnSave=Pogreška: %s +RangeNum=Raspon %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) +byEX_DAY=po danu (ograničenje na %s) +byEX_MON=po mjesecu (ograničenje na %s) +byEX_YEA=po godini (ograničenje na %s) +byEX_EXP=po liniji (ograničenje na %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 +nolimitbyEX_DAY=po danu (bez ograničenja) +nolimitbyEX_MON=po mjesecu (bez ograničenja) +nolimitbyEX_YEA=po godini (bez ograničenja) +nolimitbyEX_EXP=po liniji (bez ograničenja) +CarCategory=Kategorija vozila ExpenseRangeOffset=Offset amount: %s RangeIk=Mileage range AttachTheNewLineToTheDocument=Attach the line to an uploaded document diff --git a/htdocs/langs/hr_HR/users.lang b/htdocs/langs/hr_HR/users.lang index 3d8540e3237..5470e0e254f 100644 --- a/htdocs/langs/hr_HR/users.lang +++ b/htdocs/langs/hr_HR/users.lang @@ -6,14 +6,14 @@ Permission=Dopuštenje Permissions=Dopuštenja EditPassword=Uredi lozinku SendNewPassword=Ponovno stvori i pošalji lozinku -SendNewPasswordLink=Send link to reset password +SendNewPasswordLink=Pošalji link za reset lozinke ReinitPassword=Ponovno stvori lozinku PasswordChangedTo=Lozinka promjenjena u: %s SubjectNewPassword=Vaša nova zaporka za %s GroupRights=Grupna dopuštenja UserRights=Korisnička dopuštenja -Credentials=Credentials -UserGUISetup=User Display Setup +Credentials=Vjerodajnice +UserGUISetup=Podešavanje korisničkog prikaza DisableUser=Onemogući DisableAUser=Onemogući korisnika DeleteUser=Obriši @@ -35,7 +35,7 @@ ListOfUsers=Lista korisnika SuperAdministrator=Super administrator SuperAdministratorDesc=Globalni administrator AdministratorDesc=Administrator -DefaultRights=Default Permissions +DefaultRights=Zadane dozvole 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 korisnik LastName=Prezime @@ -45,13 +45,13 @@ NewGroup=Nova grupa CreateGroup=Izradi grupu RemoveFromGroup=Ukloni iz grupe PasswordChangedAndSentTo=Lozinka je promjenjena i poslana %s. -PasswordChangeRequest=Request to change password for %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. IfEmailExistPasswordRequestSent=If this email is a valid account, an email to reset password has been sent. -ConfirmPasswordReset=Confirm password reset +ConfirmPasswordReset=Potvrdite resetiranje lozinke MenuUsersAndGroups=Korisnici & Grupe -LastGroupsCreated=Latest %s groups created +LastGroupsCreated=Zadnjih %s kreiranih grupa LastUsersCreated=Zadnja %s izrađenih korisnika ShowGroup=Prikaži grupu ShowUser=Prikaži korisnika @@ -62,7 +62,7 @@ ListOfUsersInGroup=Popis korisnika u grupi ListOfGroupsForUser=Popis grupa za korisnika LinkToCompanyContact=Veza na komitenta/kontakt LinkedToDolibarrMember=Poveži s članom -LinkedToDolibarrUser=Link to user +LinkedToDolibarrUser=Poveži s korisnikom LinkedToDolibarrThirdParty=Link to third party CreateDolibarrLogin=Izradi korisnika CreateDolibarrThirdParty=Izradi treću osobu @@ -97,8 +97,8 @@ LoginToCreate=Prijavite se za stvaranje NameToCreate=Naziv komitenta za kreiranje YourRole=Vaše uloge YourQuotaOfUsersIsReached=Vaša kvota aktivnih korisnika je dostignuta ! -NbOfUsers=Number of users -NbOfPermissions=Number of permissions +NbOfUsers=Broj korisnika +NbOfPermissions=Broj dozvola DontDowngradeSuperAdmin=Samo superadmin može unazaditi superadmina HierarchicalResponsible=Nadglednik HierarchicView=Hijerarhijski prikaz @@ -124,3 +124,7 @@ 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 diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang index 29831210fb6..adcee2de52b 100644 --- a/htdocs/langs/hr_HR/website.lang +++ b/htdocs/langs/hr_HR/website.lang @@ -1,39 +1,39 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kod -WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. +WebsiteSetupDesc=Ovdje kreirajte web stranice koje želite koristiti. Zatim idite na izbornik Web stranice da ih uredite. DeleteWebsite=Obriši Web mjesto -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. +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. WEBSITE_TYPE_CONTAINER=Type of page/container -WEBSITE_PAGE_EXAMPLE=Web page to use as example +WEBSITE_PAGE_EXAMPLE=Web stranica za korištenje kao primjer WEBSITE_PAGENAME=Naziv stranice/alias -WEBSITE_ALIASALT=Alternative page names/aliases +WEBSITE_ALIASALT=Alternativni nazivi stranica/pseudonim 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 vanjske CSS datoteke -WEBSITE_CSS_INLINE=CSS file content (common to all pages) -WEBSITE_JS_INLINE=Javascript file content (common to all pages) +WEBSITE_CSS_INLINE=Sadržaj CSS datoteke (zajednički za sve stranice) +WEBSITE_JS_INLINE=Sadržaj Javascript datoteke (zajednički za sve stranice) 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 +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. 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=Mediji -EditCss=Edit website properties +EditCss=Uredite svojstva web stranice EditMenu=Uredi izbornik EditMedias=Edit medias EditPageMeta=Edit page/container properties EditInLine=Edit inline -AddWebsite=Add website +AddWebsite=Dodajte web stranicu Webpage=Web page/container AddPage=Add page/container PageContainer=Strana 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 +RequestedPageHasNoContentYet=Zatražena stranica s ID-om %s još nema sadržaja ili je datoteka iz predmemorije .tpl.php uklonjena. Uredite sadržaj stranice kako biste to riješili. +SiteDeleted=Web stranica '%s' je izbrisana PageContent=Page/Contenair PageDeleted=Page/Contenair '%s' of website %s deleted PageAdded=Page/Contenair '%s' added @@ -43,105 +43,105 @@ SetAsHomePage=Postavi kao početnu stranicu RealURL=Pravi URL ViewWebsiteInProduction=Pogledaj web lokaciju koristeći URL naslovnice 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: +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 -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=Read -WritePerm=Write -TestDeployOnWeb=Test/deploy on web +ReadPerm=Čitaj +WritePerm=Piši +TestDeployOnWeb=Testirajte / implementirajte na 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 +NoPageYet=Još nema stranica +YouCanCreatePageOrImportTemplate=Možete stvoriti novu stranicu ili uvesti cijeli predložak web stranice +SyntaxHelp=Pomoć za određene savjete za sintaksu 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
    . +YouCanEditHtmlSourceMore=
    More examples of HTML or dynamic code available on the wiki documentation
    . ClonePage=Clone page/container CloneSite=Clone site -SiteAdded=Website added +SiteAdded=Web stranica dodana 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 +PageIsANewTranslation=Nova stranica je prijevod trenutne stranice? +LanguageMustNotBeSameThanClonedPage=Klonirate stranicu kao prijevod. Jezik nove stranice mora se razlikovati od jezika izvorne stranice. +ParentPageId=ID roditeljske stranice +WebsiteId=ID web stranice 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 +OrEnterPageInfoManually=Ili izradite stranicu od nule ili iz predloška stranice... +FetchAndCreate=Dohvati i kreiraj +ExportSite=Izvoz web stranice +ImportSite=Uvezite predložak web stranice +IDOfPage=Id stranice +Banner=Baner BlogPost=Blog post WebsiteAccount=Website account -WebsiteAccounts=Website accounts +WebsiteAccounts=Računi web stranice AddWebsiteAccount=Create web site account BackToListForThirdParty=Back to list for the third-party -DisableSiteFirst=Disable website first -MyContainerTitle=My web site title +DisableSiteFirst=Prvo onemogućite web stranicu +MyContainerTitle=Naslov moje web stranice 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... +SorryWebsiteIsCurrentlyOffLine=Nažalost, ova web stranica trenutno nije na mreži. Molim vas, vratite se kasnije... 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 +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Omogućite tablicu za pohranu računa web stranice (login/pass) za svaku web stranicu / treću stranu +YouMustDefineTheHomePage=Najprije morate definirati zadanu početnu stranicu +OnlyEditionOfSourceForGrabbedContentFuture=Upozorenje: Izrada web stranice uvozom vanjske web stranice rezervirana je za iskusne korisnike. Ovisno o složenosti izvorne stranice, rezultat uvoza može se razlikovati od izvornika. Također ako izvorna stranica koristi uobičajene CSS stilove ili sukobljeni javascript, to može narušiti izgled ili značajke uređivača web-mjesta tijekom rada na ovoj stranici. Ova metoda je brži način za izradu stranice, ali se preporučuje da novu stranicu izradite od nule ili iz predloženog predloška stranice.
    Također imajte na umu da ugrađeni uređivač možda neće raditi ispravno kada se koristi na preuzetoj vanjskoj stranici. +OnlyEditionOfSourceForGrabbedContent=Moguće je samo izdanje HTML izvora kada je sadržaj preuzet s vanjske stranice +GrabImagesInto=Uzmite i slike pronađene u css-u i stranici. +ImagesShouldBeSavedInto=Slike bi trebale biti spremljene u imenik +WebsiteRootOfImages=Korijenski direktorij za slike web stranice +SubdirOfPage=Poddirektorij posvećen stranici +AliasPageAlreadyExists=Stranica alias %s već postoji +CorporateHomePage=Početna stranica tvrtke +EmptyPage=Prazna stranica +ExternalURLMustStartWithHttp=Vanjski URL mora početi s http:// ili https:// +ZipOfWebsitePackageToImport=Prenesite Zip datoteku paketa predložaka web-mjesta +ZipOfWebsitePackageToLoad=ili Odaberite dostupni paket ugrađenih predložaka web-mjesta +ShowSubcontainers=Prikaži dinamički sadržaj +InternalURLOfPage=Interni URL stranice 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. +NoWebSiteCreateOneFirst=Još nije stvorena nijedna web stranica. Prvo stvorite jednu. +GoTo=Idi na +DynamicPHPCodeContainsAForbiddenInstruction=Dodajete dinamički PHP kod koji sadrži PHP instrukciju ' %s ' koja je prema zadanim postavkama zabranjena kao dinamički sadržaj (pogledajte skrivene opcije WEBSITE_PHP_ALL list_xxx naredbe za povećanje dopuštenih naredbi). +NotAllowedToAddDynamicContent=Nemate dopuštenje za dodavanje ili uređivanje PHP dinamičkog sadržaja na web stranicama. Zatražite dopuštenje ili jednostavno zadržite kod u php oznakama nepromijenjenim. ReplaceWebsiteContent=Search or Replace website content -DeleteAlsoJs=Delete also all javascript files specific to this website? +DeleteAlsoJs=Izbrisati i sve javascript datoteke specifične za ovu web stranicu? DeleteAlsoMedias=Delete also all medias files specific to this website? -MyWebsitePages=My website pages +MyWebsitePages=Moje web stranice 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 +LinkAndScriptsHereAreNotLoadedInEditor=Upozorenje: Ovaj sadržaj izlazi samo kada se stranici pristupa s poslužitelja. Ne koristi se u načinu uređivanja pa ako trebate učitati javascript datoteke također u načinu uređivanja, samo dodajte svoju oznaku 'script src=...' na stranicu. +Dynamiccontent=Uzorak stranice s dinamičkim sadržajem +ImportSite=Uvezite predložak web stranice EditInLineOnOff=Mode 'Edit inline' is %s -ShowSubContainersOnOff=Mode to execute 'dynamic content' is %s +ShowSubContainersOnOff=Način za izvršavanje 'dinamičkog sadržaja' je %s GlobalCSSorJS=Global CSS/JS/Header file of web site -BackToHomePage=Back to home page... -TranslationLinks=Translation links +BackToHomePage=Povratak na početnu stranicu... +TranslationLinks=Prijevodne veze 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 +UseTextBetween5And70Chars=Za dobre SEO prakse, koristite tekst između 5 i 70 znakova +MainLanguage=Glavni jezik +OtherLanguages=Drugi jezici +UseManifest=Navedite datoteku manifest.json +PublicAuthorAlias=Javno ime autora +AvailableLanguagesAreDefinedIntoWebsiteProperties=Dostupni jezici definirani su u svojstvima web stranice 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 +RegenerateWebsiteContent=Regenerirajte datoteke predmemorije web stranice 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 +DefineListOfAltLanguagesInWebsiteProperties=Definirajte popis svih dostupnih jezika u svojstva web stranice. +GenerateSitemaps=Generirajte Sitemap datoteku +ConfirmGenerateSitemaps=Ako potvrdite, izbrisat ćete postojeću Sitemap datoteku ... +ConfirmSitemapsCreation=Potvrdite generiranje Sitemapa +SitemapGenerated=Generirana datoteka Sitemap %s 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 veličine 16x16, 32x32 ili 64x64 +FaviconTooltip=Prenesite sliku koja mora biti PNG (16x16, 32x32 ili 64x64) diff --git a/htdocs/langs/hr_HR/withdrawals.lang b/htdocs/langs/hr_HR/withdrawals.lang index 0974eedc4aa..ee9994f6965 100644 --- a/htdocs/langs/hr_HR/withdrawals.lang +++ b/htdocs/langs/hr_HR/withdrawals.lang @@ -8,8 +8,8 @@ NewPaymentByBankTransfer=New payment by credit transfer StandingOrderToProcess=Za obradu PaymentByBankTransferReceipts=Credit transfer orders PaymentByBankTransferLines=Credit transfer order lines -WithdrawalsReceipts=Direct debit orders -WithdrawalReceipt=Direct debit order +WithdrawalsReceipts=Bezgotovinski nalog +WithdrawalReceipt=Bezgotovinski nalog BankTransferReceipts=Credit transfer orders BankTransferReceipt=Credit transfer order LatestBankTransferReceipts=Latest %s credit transfer orders @@ -31,9 +31,10 @@ SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit tran InvoiceWaitingWithdraw=Invoice waiting for direct debit InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer AmountToWithdraw=Iznos za isplatu +AmountToTransfer=Iznos za prijenos 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 +ResponsibleUser=Ovlaštena osoba WithdrawalsSetup=Direct debit payment setup CreditTransferSetup=Credit transfer setup WithdrawStatistics=Direct debit payment statistics @@ -44,7 +45,7 @@ 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 +ThirdPartyBankCode=Kod banke komitenta 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=Označi kao kreditirano @@ -104,10 +105,10 @@ DoCreditTransferBeforePayments=This tab allows you to request a credit transfer WithdrawalFile=Debit order file CreditTransferFile=Credit transfer file SetToStatusSent=Postavi status "Datoteka poslana" -ThisWillAlsoAddPaymentOnInvoice=This will also record payments on invoices and will classify them as "Paid" if remain to pay is null +ThisWillAlsoAddPaymentOnInvoice=Ovo će također zabilježiti plaćanja na fakturama i klasificirati ih kao "Plaćene" ako nema preostalog iznosa za plaćanje StatisticsByLineStatus=Statistika statusa stavki RUM=UMR -DateRUM=Mandate signature date +DateRUM=Datum potpisivanja mandata 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) @@ -136,21 +137,23 @@ 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 +ADDDAYS=Dodajte dane datumu izvršenja +NoDefaultIBANFound=Za ovu treću stranu nije pronađen zadani IBAN ### 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ćanje trajnog naloga %s putem banke +InfoCreditMessage=Trajni nalog %s je plačen od banke
    Podaci o plaćanju: %s +InfoTransSubject=Slanje trajnog naloga %s banci +InfoTransMessage=Trajni nalog %s je poslan banci od %s %s.

    InfoTransData=Iznos: %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=Trajni nalog odbijen +InfoRejectMessage=Pozdrav,

    bankovni nalog za plaćanje računa %s koji se odnosi na tvrtku %s s iznosom od %s je odbijen.

    --
    %s ModeWarning=Opcija za stvarni način nije postavljena, zaustavljamo nakon ove simulacije -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=Tvrtka s ID-om %s ima više od jednog zadanog bankovnog računa. Nema načina da se zna koji koristiti. +ErrorICSmissing=Nedostaje ICS na bankovnom računu %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Ukupni iznos naloga za izravno terećenje razlikuje se od zbroja redaka +WarningSomeDirectDebitOrdersAlreadyExists=Upozorenje: Već postoje neki nalozi za izravno terećenje na čekanju (%s) za koji se traži iznos od %s +WarningSomeCreditTransferAlreadyExists=Upozorenje: Već je zatražen kreditni prijenos na čekanju (%s) za iznos od %s +UsedFor=Used for %s diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index 84361955827..e42a9cc7505 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -1,437 +1,462 @@ # Dolibarr language file - en_US - Accountancy (Double entries) -Accountancy=Accountancy +Accountancy=Könyvelés Accounting=Könyvelés ACCOUNTING_EXPORT_SEPARATORCSV=Oszlop határoló az export fájlhoz ACCOUNTING_EXPORT_DATE=Dátum formátuma az export fájlhoz ACCOUNTING_EXPORT_PIECE=Darabszám exportálása ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export globális számlákkal -ACCOUNTING_EXPORT_LABEL=Felíratok Exportálása -ACCOUNTING_EXPORT_AMOUNT=Számlák Exportálása -ACCOUNTING_EXPORT_DEVISE=Export valuta\n -Selectformat=Fájl formátumának kiválasztása -ACCOUNTING_EXPORT_FORMAT=Fájl formátumának kiválasztása -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type -ACCOUNTING_EXPORT_PREFIX_SPEC=Fájlnév előtagjának kiválasztása -ThisService=Ezt a szolgáltatást\n -ThisProduct=Ez a termék\n -DefaultForService=Alapértelmezett szolgáltatás\n -DefaultForProduct=Alapértelmezett termék\n -ProductForThisThirdparty=Product for this thirdparty -ServiceForThisThirdparty=Service for this thirdparty -CantSuggest=Nem javasolhatom\n -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=Configuration of the module accounting (double entry) -Journalization=Journalization -Journals=Naplók +ACCOUNTING_EXPORT_LABEL=Címke exportálása +ACCOUNTING_EXPORT_AMOUNT=Exportálási összeg +ACCOUNTING_EXPORT_DEVISE=Pénznem exportálása +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_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 +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) +Journalization=Újságírás +Journals=Folyóiratok JournalFinancial=Pénzügyi mérleg naplók -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=Új fiók hozzárendelése\n -InvoiceLabel=Számla címke\n -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=Egyéb információk -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=Fiókok listája\n -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 +BackToChartofaccounts=Számlatükör visszaküldése +Chartofaccounts=Számlatábla +ChartOfSubaccounts=Egyéni számlák diagramja +ChartOfIndividualAccountsOfSubsidiaryLedger=Leányvállalati főkönyv egyéni számlatáblázata +CurrentDedicatedAccountingAccount=Jelenlegi dedikált fiók +AssignDedicatedAccountingAccount=Új fiók hozzárendeléséhez +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? +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 +ListOfAccounts=Számlák listája +CountriesInEEC=Országok az EGK-ban +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 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 a %s - %s menüpontot. +ExportAccountingProjectHelp=Adjon meg egy projektet, ha csak egy adott projekthez van szüksége számviteli jelentésre. A költségjelentések és a hitelkifizetések nem szerepelnek a projektjelentésekben. +VueByAccountAccounting=Megtekintés könyvelési fiók szerint +VueBySubAccountAccounting=Megtekintés könyvelési alfiók szerint -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=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 -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=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... -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=%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 -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=%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. -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=%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. -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescClosePeriod=LÉPÉS %s: Az időszak lezárása, hogy a jövőben ne tudjunk módosítani. -TheJournalCodeIsNotDefinedOnSomeBankAccount=A mandatory step in setup has not been completed (accounting code journal not defined for all bank accounts) -Selectchartofaccounts=Válassza ki az aktív számlatervet\n -ChangeAndLoad=Change and load -Addanaccount=Add an accounting account -AccountAccounting=Accounting account +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 +AccountAccounting=Számviteli számla AccountAccountingShort=Számla -SubledgerAccount=Alvállalkozói számla\n -SubledgerAccountLabel=Alvállalkozói fiók címkéje\n -ShowAccountingAccount=Show accounting account -ShowAccountingJournal=Show accounting journal -ShowAccountingAccountInLedger=Könyvelési számla megjelenítése a főkönyvben\n -ShowAccountingAccountInJournals=Show accounting account in journals -AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Alapértelmezett számlák +SubledgerAccount=Alkönyvi fiók +SubledgerAccountLabel=Alkönyvi fiókcímke +ShowAccountingAccount=Számviteli fiók 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 MenuBankAccounts=Bankszámlák -MenuVatAccounts=ÁFA számlák\n +MenuVatAccounts=Áfa-számlák MenuTaxAccounts=Adószámlák -MenuExpenseReportAccounts=Költségjelentési számlák\n +MenuExpenseReportAccounts=Költségjelentés számlák MenuLoanAccounts=Hitelszámlák -MenuProductsAccounts=Product accounts -MenuClosureAccounts=Closure accounts -MenuAccountancyClosure=Closure -MenuAccountancyValidationMovements=A mozgások érvényesítése\n -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=Új tranzakció létrehozása\n -UpdateMvts=Modification of a transaction -ValidTransaction=Tranzakció érvényesítése\n -WriteBookKeeping=Register transactions in accounting +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 +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 Bookkeeping=Főkönyv -BookkeepingSubAccount=Subledger -AccountBalance=Account balance -ObjectsRef=Source object ref -CAHTF=Total purchase vendor before tax -TotalExpenseReport=Teljes költségjelentés\n -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=Alkönyvező +AccountBalance=Számlaegyenleg +ObjectsRef=Forrásobjektum ref +CAHTF=A 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 -Ventilate=Bind -LineId=Id line +Ventilate=Kötelez +LineId=Id sor Processing=Feldolgozás -EndProcessing=Process terminated. -SelectedLines=Kválasztott sorok -Lineofinvoice=Számlasor -LineOfExpenseReport=Költségjelentés sora\n -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 +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 -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=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_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=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_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. +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ásnál mi az alapértelmezetten kiválasztott időszak -ACCOUNTING_SELL_JOURNAL=Eladási napló -ACCOUNTING_PURCHASE_JOURNAL=Beszerzési napló -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal -ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_SELL_JOURNAL=Eladó napló +ACCOUNTING_PURCHASE_JOURNAL=Vásárlási napló +ACCOUNTING_MISCELLANEOUS_JOURNAL=Vegyes naplók +ACCOUNTING_EXPENSEREPORT_JOURNAL=Költségjelentési napló +ACCOUNTING_SOCIAL_JOURNAL=Közösségi napló +ACCOUNTING_HAS_NEW_JOURNAL=Új naplója van -ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) -ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure +ACCOUNTING_RESULT_PROFIT=Eredményelszámolási számla (Profit) +ACCOUNTING_RESULT_LOSS=Eredményelszámolási számla (veszteség) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Bezárási napló -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer -TransitionalAccount=Transitional bank transfer account +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Átmeneti banki átutalás számla +TransitionalAccount=Átmeneti banki átutalásos számla -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=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_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Alapértelmezés szerint számlaszámla az ügyfél befizetésének regisztrálásához +UseAuxiliaryAccountOnCustomerDeposit=Ügyfélszámla tárolása egyéni számlaként a leányfőkönyvben az előlegsorokhoz (ha le van tiltva, az előlegsorokhoz tartozó egyéni számla üres marad) +ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT=Alapértelmezett számviteli számla szállítói előleg nyilvántartásba vételére +UseAuxiliaryAccountOnSupplierDeposit=Tárolja a szállítói számlát egyéni számlaként a alfőkönyvben az előlegsorokhoz (letiltás esetén az előlegsorok egyéni számla üresen marad) -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=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_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=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) -Doctype=A dokumentum típusa\n +Doctype=Dokumentum típusa Docdate=Dátum -Docref=Hivatkozás -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 +Docref=Referencia +LabelAccount=Fiók címkézése +LabelOperation=Címkemű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 Codejournal=Napló -JournalLabel=Journal label +JournalLabel=Naplócímke NumPiece=Darabszám -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=Az év -NotMatch=Nincs beállítva\n -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) -FinanceJournal=Finance journal -ExpenseReportsJournal=Költségjelentési napló\n -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=Új tranzakció\n -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 +TransactionNumShort=Szám. tranzakció +AccountingCategory=Egyéni csoport +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. +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 +DelMonth=A törlés hónapja +DelYear=A törlés éve +DelJournal=Törlendő napló +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 +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. +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 +BankAccountNotDefined=A bank számla nincs megadva +CustomerInvoicePayment=Számlázó ügyfél fizetése +ThirdPartyAccount=Harmadik fél fiókja +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 +PaymentsNotLinkedToProduct=A fizetés semmilyen termékhez/szolgáltatáshoz nem kapcsolódik OpeningBalance=Nyitó egyenleg -ShowOpeningBalance=Show opening balance -HideOpeningBalance=Hide opening balance -ShowSubtotalByGroup=Show subtotal by level +ShowOpeningBalance=Nyitóegyenleg megjelenítése +HideOpeningBalance=Nyitóegyenleg elrejtése +ShowSubtotalByGroup=Részösszeg megjelenítése szint szerint -Pcgtype=Számlacsoport -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=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. -Reconcilable=Reconcilable +Reconcilable=Kibékíthető -TotalVente=Total turnover before tax -TotalMarge=Teljes eladási marzs +TotalVente=Teljes forgalom adózás előtt +TotalMarge=Teljes értékesítési árrés -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=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: 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=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 +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. +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\n -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=A mozgások érvényesítése\n -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=Éves zárás +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 -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +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=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 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=Oktatóanyag megjelenítése\n -NotReconciled=Not reconciled -WarningRecordWithoutSubledgerAreExcluded=Warning, all operations without subledger account defined are filtered and excluded from this view +ErrorAccountancyCodeIsAlreadyUse=Hiba, nem törölheti ezt a fiókot, mert használatban van +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 +ChangeBinding=Módosítsa a kötést +Accounted=Kiszámolva a főkönyvben +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 +AccountRemovedFromCurrentChartOfAccount=Számviteli számla, amely nem létezik az aktuális számlatükörben ## 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=Eladások -AccountingJournalType3=Beszerzések +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 +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 +AccountingJournalType1=Vegyes műveletek +AccountingJournalType2=Értékesítés +AccountingJournalType3=Vásárlások AccountingJournalType4=Bank AccountingJournalType5=Költségjelentés -AccountingJournalType8=Készletnyilvántartás -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=A mozgások száma\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) +AccountingJournalType8=Készlet +AccountingJournalType9=Új +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 +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) ## 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 -Modelcsv=Az export modellje\n -Selectmodelcsv=Válassza ki az exportálási modellt\n +NotifiedExportDate=Az exportált sorok megjelölése exportáltként (a sorok módosítása nem lehetséges) +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 +Modelcsv=Export modell +Selectmodelcsv=Válassza ki az exportálási modellt Modelcsv_normal=Klasszikus 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 +Modelcsv_CEGID=Exportálás a CEGID számviteli szakértő számára +Modelcsv_COALA=Exportálás a Sage Coala számára +Modelcsv_bob50=Exportálás a Sage BOB 50-hez +Modelcsv_ciel=Exportálás Sage50, Ciel Compta vagy Compta Evo számára. (XIMPORT formátum) +Modelcsv_quadratus=Exportálás Quadratus QuadraCompta számára +Modelcsv_ebp=Exportálás EBP-hez +Modelcsv_cogilog=Exportálás a Cogiloghoz +Modelcsv_agiris=Exportálás az Agiris Isacompta számára +Modelcsv_LDCompta=Exportálás LD Compta (v9) számára (teszt) +Modelcsv_LDCompta10=Exportálás LD Comptához (v10 és újabb) +Modelcsv_openconcerto=Exportálás OpenConcerto-hoz (teszt) +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_Gestinumv3=Exportálás a Gestinumhoz (v3) +Modelcsv_Gestinumv5=Exportálás a Gestinumhoz (v5) +Modelcsv_charlemagne=Exportálás az Aplim Charlemagne-hoz +ChartofaccountsId=Számladiagram azonosítója ## 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=Lehetőségek -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=Előre meghatározott csoportok\n -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=Helyi értékesítés\n -SaleExport=Export értékesítés\n -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=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. +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 +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 +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. +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 -Range=Range of accounting account -Calculated=Számított +Range=Számviteli számla köre +Calculated=Kiszámított Formula=Képlet +## Reconcile +Unlettering=Egyeztetetlen +AccountancyNoLetteringModified=Nincs egyeztetés módosítva +AccountancyOneLetteringModifiedSuccessfully=Egy egyeztetés sikeresen módosítva +AccountancyLetteringModifiedSuccessfully=%s egyeztetés sikeresen módosítva +AccountancyNoUnletteringModified=Nincs egyeztetetlen módosítás +AccountancyOneUnletteringModifiedSuccessfully=Egy egyeztetetlen sikeresen módosítva +AccountancyUnletteringModifiedSuccessfully=%s egyeztetetlen sikeresen módosítva + +## Confirm box +ConfirmMassUnlettering=Tömeges egyeztetetlen 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=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=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. +ExportNotSupported=A beállított exportformátum nem támogatott ezen az oldalon +BookeppingLineAlreayExists=A könyvelésben már létező 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 +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=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=Számviteli bejegyzések +ImportAccountingEntriesFECFormat=Számviteli bejegyzések - FEC formátum +FECFormatJournalCode=Kódnapló (JournalCode) +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) +FECFormatSubledgerAccountNumber=Alkönyvi számlaszám (CompAuxNum) +FECFormatSubledgerAccountLabel=Alkönyvi számlaszám (CompAuxLib) +FECFormatPieceRef=Darab ref (PieceRef) +FECFormatPieceDate=Dátum létrehozása (PieceDate) +FECFormatLabelOperation=Címkeművelet (EcritureLib) +FECFormatDebit=Terhelés (terhelés) +FECFormatCredit=Hitel (jóváírás) +FECFormatReconcilableCode=Összeegyeztethető kód (EcritureLet) +FECFormatReconcilableDate=Egyeztetési dátum (DateLet) +FECFormatValidateDate=A darab dátuma érvényesítve (ValidDate) +FECFormatMulticurrencyAmount=Többvaluta összeg (Montdevise) +FECFormatMulticurrencyCode=Több pénznem kódja (ötlet) -DateExport=Exportálás dátuma\n -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=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. +ExpenseReportJournal=Költségjelentési napló +InventoryJournal=Léttári napló -NAccounts=%s accounts +NAccounts=%s fiók diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index c818208a7b4..1a119f91c09 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/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=Nyomtassa ki a termék referencia-idejét és időtartamát PDF-ben +BoldLabelOnPDF=Nyomtassa ki a termék címkéjét félkövéren PDF-ben Foundation=Alapítvány Version=Verzió Publisher=Szerző @@ -34,7 +34,7 @@ PurgeSessions=Munkamenetek beszüntetése ConfirmPurgeSessions=Valóban törölni akarja az összes munkamenetet? Ez minden felhasználót leválaszt (kivéve magad). NoSessionListWithThisHandler=A PHP-be konfigurált munkamenet-kezelő nem engedélyezi az összes futó munkamenet felsorolását. LockNewSessions=Új kapcsolatok letiltása -ConfirmLockNewSessions=Biztos benne, hogy minden új Dolibarr kapcsolatot saját magára kíván korlátozni? Csak az %s felhasználó lesz képes csatlakozni utána. +ConfirmLockNewSessions=Biztos benne, hogy minden új Dolibarr kapcsolatot saját magára kívánja korlátozni? Csak az %s felhasználó lesz képes csatlakozni utána. UnlockNewSessions=Új kapcsolatok engedélyezése YourSession=Az Ön munkamenete Sessions=Felhasználói munkamenetek @@ -60,8 +60,8 @@ GUISetup=Kijelző SetupArea=Beállítás UploadNewTemplate=Új sablon(ok) feltöltése FormToTestFileUploadForm=A fájlfeltöltés tesztelésének űrlapja (beállítás szerint) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +ModuleMustBeEnabled=A(z) %s modult/alkalmazást engedélyezni kell +ModuleIsEnabled=A(z) %s modul/alkalmazás engedélyezve van IfModuleEnabled=Megjegyzés: az 'igen' csak akkor eredményes, ha a %s modul engedélyezve van RemoveLock=Távolítsa el / nevezze át a(z) %s fájlt, ha létezik, hogy engedélyezze a Frissítés / Telepítés eszközt. RestoreLock=Állítsa vissza az %s fájlt, csak olvasási jogokat engedélyezzen, hogy le lehessen tiltani a Frissítés / Telepítés eszköz további használatát. @@ -77,7 +77,7 @@ Dictionary=Szótárak ErrorReservedTypeSystemSystemAuto=A "system" és a "systemauto" típusértékek foglaltak. Saját bejegyzés hozzáadására használhatja a "user" értéket. ErrorCodeCantContainZero=A kód nem tartalmazhatja a 0 értéket DisableJavascript=JavaScript és Ajax funkciók letiltása -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=Megjegyzés: Csak tesztelési vagy hibakeresési célra. Vakok vagy szöveges böngészők számára történő optimalizálás érdekében érdemes a felhasználó profiljában található beállítást használni UseSearchToSelectCompanyTooltip=Ha nagyszámú partnerrel rendelkezik (> 100 000), akkor növelheti a sebességet, ha a COMPANY_DONOTSEARCH_ANYWHERE értéket 1-re állítja a Beállítás-> Egyéb menüben. A keresés ezután a karakterlánc elejére korlátozódik. UseSearchToSelectContactTooltip=Ha nagyszámú harmadik fél van (> 100 000), akkor növelheti a sebességet, ha a CONTACT_DONOTSEARCH_ANYWHERE állandó értéket 1-re állítja a Beállítás-> Egyéb menüben. A keresés ezután a karakterlánc elejére korlátozódik. DelaiedFullListToSelectCompany=A Partnerek kombinált listájának betöltése gombnyomásra vár.
    Ez növelheti a teljesítményt, ha nagyszámú partnerrel rendelkezik, de ez kevésbé kényelmes. @@ -87,11 +87,11 @@ NumberOfBytes=Bájtok száma SearchString=Keresési karakterlánc NotAvailableWhenAjaxDisabled=Nem érhető el, ha az Ajax le van tiltva AllowToSelectProjectFromOtherCompany=A Partner oldalán választhat egy másik partnerrel összekapcsolt projektet -TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months +TimesheetPreventAfterFollowingMonths=Kerülje el, hogy a következő hónapok után eltöltött felvételi idő eltöltse JavascriptDisabled=JavaScript letiltva UsePreviewTabs=Előnézeti lapok használata ShowPreview=Előnézet megtekintése -ShowHideDetails=Show-Hide details +ShowHideDetails=Részletek megjelenítése-elrejtése PreviewNotAvailable=Előnézet nem elérhető ThemeCurrentlyActive=Jelenleg aktív téma MySQLTimeZone=MySql (adatbázis) időzóna @@ -109,7 +109,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 @@ -120,7 +120,7 @@ MultiCurrencySetup=Több valuta beállítása MenuLimits=Korlátok és pontosság MenuIdParent=Szülő menü ID DetailMenuIdParent=Szülő menü azonosítója (a főmenü esetében üres) -ParentID=Parent ID +ParentID=Szülői ID DetailPosition=A menü sorrendjét meghatározó szám AllMenus=Minden NotConfigured=A modul / alkalmazás nincs konfigurálva @@ -161,7 +161,7 @@ SystemToolsAreaDesc=Ez a terület adminisztrációs lehetőségeket biztosít. A Purge=Tisztítsd PurgeAreaDesc=Ezen az oldalon törölheti a Dolibarr által létrehozott vagy tárolt összes fájlt (ideiglenes fájlok vagy az %s könyvtárban lévő fájlok). Ennek a szolgáltatásnak a használata általában nem szükséges. Megkerülő megoldásként szolgál azoknak a felhasználóknak, akiknek a Dolibarr-ját olyan szolgáltató üzemelteti, amely nem engedélyezi a webszerver által generált fájlok törlését. PurgeDeleteLogFile=Naplófájlok törlése, beleértve a(z) %s fájlt, amely a Syslog modulhoz lett megadva (nincs adatvesztés kockázata) -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. +PurgeDeleteTemporaryFiles=Törölje az összes napló- és ideiglenes fájlt (nincs kockázata az adatvesztésnek). A paraméter lehet 'tempfilesold', 'logfiles' vagy mindkettő 'tempfilesold+logfiles'. Megjegyzés: Az ideiglenes fájlok törlésére csak akkor kerül sor, ha az ideiglenes könyvtárat több mint 24 órája hozták létre. PurgeDeleteTemporaryFilesShort=Törölje a naplót és az ideiglenes fájlokat (nincs kockázata az adatvesztésnek) PurgeDeleteAllFilesInDocumentsDir=Az összes fájlt törölése ebben a könyvtárban: %s .
    Ezzel törölheti az elemekhez kapcsolódó összes generált dokumentumot (harmadik felek, számlák stb.), az ECM modulba feltöltött fájlokat, az adatbázis biztonsági mentési ürlapjait és az ideiglenes fájlokat. PurgeRunNow=Ürítsd ki most @@ -212,7 +212,7 @@ FeatureAvailableOnlyOnStable=A szolgáltatás csak a hivatalos stabil verziókba BoxesDesc=A modulok olyan összetevők, amelyek információkat mutatnak, s hozzáadhatóak az oldalak testreszabásához. Választhat úgy, hogy megjelenik-e a modul, vagy nem, ha kiválasztja a céloldalt és kattint az 'Aktiválás' gombra, vagy a kukára kattintva tilthatja le azt. OnlyActiveElementsAreShown=Csak a bekapcsolt modulok elemei jelennek meg. ModulesDesc=A modulok/alkalmazások határozzák meg, mely funkciók érhetők el a szoftverben. Egyes modulok engedélyek megadását igénylik a felhasználók számára a modul aktiválása után. Kattintson egy modul/alkalmazás engedélyezéséhez vagy letiltásához az egyes modulok %s be/ki gombját. -ModulesDesc2=Click the wheel button %s to configure the module/application. +ModulesDesc2=Kattintson a %s kerékgombra a modul/alkalmazás konfigurálásához. ModulesMarketPlaceDesc=Az interneten további modulokat találhat... ModulesDeployDesc=Ha a fájlrendszer engedélyei ezt lehetővé teszik, akkor ezt az eszközt használhatja egy külső modul telepítéséhez. A modul ezután a %s fülön lesz látható. ModulesMarketPlaces=Külső alkalmazások / modulok keresése @@ -226,7 +226,7 @@ NotCompatible=Ez a modul nem tűnik kompatibilisnek a Dolibarr %s verzióval (Mi CompatibleAfterUpdate=Ehhez a modulhoz frissíteni kell a Dolibarr %s-t (Min %s - Max %s). SeeInMarkerPlace=Lásd a piactéren SeeSetupOfModule=Lásd a %s modul beállításait -SetOptionTo=Set option %s to %s +SetOptionTo=Állítsa a %s opciót %s értékre Updated=Frissítve AchatTelechargement=Vásárlás / Letöltés GoModuleSetupArea=Új modul telepítéséhez / telepítéséhez ugorjon a Modul beállítása területre: %s . @@ -240,7 +240,7 @@ BoxesAvailable=Elérhető widgetek BoxesActivated=Aktivált widgetek ActivateOn=Aktiválás ActiveOn=Aktiválódik -ActivatableOn=Activatable on +ActivatableOn=Bekapcsolható SourceFile=Forrás fájl AvailableOnlyIfJavascriptAndAjaxNotDisabled=Csak ha a JavaScript nincs letiltva Required=Kötelező @@ -266,9 +266,9 @@ ReferencedPreferredPartners=Preferált partnerek OtherResources=Egyéb források ExternalResources=Külső források SocialNetworks=Közösségi hálózatok -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 +SocialNetworkId=Közösségi hálózatok ID +ForDocumentationSeeWiki=Felhasználói vagy fejlesztői dokumentációért (Dokumentum, GYIK...)
    vessen egy pillantást a Dolibarr Wikire:
    %s +ForAnswersSeeForum=Bármilyen egyéb kérdés/segítség esetén a Dolibarr fórumot használhatja:
    %s HelpCenterDesc1=Itt kaphat a Dolibarr-rel kapcsolatban segítséget és támogatást. HelpCenterDesc2=Ezeknek az erőforrásoknak egy része csak angol nyelven elérhető. CurrentMenuHandler=Aktuális menü kezelő @@ -281,12 +281,12 @@ SpaceX=X térköz SpaceY=Y térköz FontSize=Betűméret Content=Tartalom -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +ContentForLines=Minden egyes termékhez vagy szolgáltatáshoz megjelenítendő tartalom (a tartalom __LINES__ változójából) NoticePeriod=Felmondási idő NewByMonth=Új hónap szerint Emails=e-mailek EMailsSetup=E-mailek beállítása -EMailsDesc=This page allows you to set parameters or options for email sending. +EMailsDesc=Ezen az oldalon állíthatja be az e-mail küldés paramétereit vagy opcióit. EmailSenderProfiles=E-mailben küldő profilok EMailsSenderProfileDesc=Ezt a részt üresen hagyhatja. Ha néhány e-mail címet beír ide, akkor új e-mail írásakor az esetleges feladók listájába kerülnek a kombinált mezőbe. MAIN_MAIL_SMTP_PORT=SMTP / SMTPS port (alapértelmezett érték a php.ini fájlban: %s ) @@ -343,7 +343,7 @@ StepNb=%s lépés FindPackageFromWebSite=Keressen egy csomagot, amely biztosítja a szükséges szolgáltatásokat (például az %s hivatalos webhelyen). DownloadPackageFromWebSite=Csomag letöltése (például az %s hivatalos webhelyről). UnpackPackageInDolibarrRoot=Csomagolja ki a becsomagolt fájlokat a Dolibarr kiszolgáló könyvtárába: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +UnpackPackageInModulesRoot=Külső modul üzembe helyezéséhez/telepítéséhez ki kell másolnia/ki kell csomagolnia az archív fájlt a külső moduloknak fenntartott szerverkönyvtárba:
    %s SetupIsReadyForUse=A modul telepítése befejeződött. Azonban engedélyeznie kell és be kell állítania a modult az alkalmazásban: %s . NotExistsDirect=Az alternatív gyökérkönyvtár nincs definiálva egy meglévő könyvtárra.
    InfDirAlt=A 3. verzió óta meghatározható egy alternatív gyökérkönyvtár. Ez lehetővé teszi a beépülő modulok és az egyedi sablonok tárolását egy dedikált könyvtárba.
    Csak hozzon létre egy könyvtárat a Dolibarr gyökérkönyvtárában (pl .: egyedi).
    @@ -355,17 +355,17 @@ LastStableVersion=Utolsó stabil verzió LastActivationDate=A legutóbbi aktiválás dátuma LastActivationAuthor=A legutóbbi aktiválás végrehajtója LastActivationIP=A legutóbbi aktiválás IP címe -LastActivationVersion=Latest activation version +LastActivationVersion=Legújabb aktiválási verzió UpdateServerOffline=A szerver offline frissítése WithCounter=Számláló kezelése -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=Az összes többi karakter a maszkban marad érintetlen.
    A szóközök nem megengedettek.
    -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.
    +GenericMaskCodes=Bármilyen számozási maszkot megadhat. Ebben a maszkban a következő címkék használhatók:
    {000000} egy számnak felel meg, amely minden %s-nál növekszik. Írjon be annyi nullát, amennyi a számláló kívánt hosszúsága. A számlálót balról a nullák egészítik ki, hogy annyi nulla legyen, mint a maszkban.
    {000000+000} ugyanaz, mint az előző, de a + jeltől jobbra lévő számnak megfelelő eltolás kerül alkalmazásra az első %s-tól kezdve.
    {000000@x} ugyanaz, mint az előző, de a számláló nullára áll az x hónap elérésekor (x 1 és 12 között, vagy 0 a meghatározott pénzügyi év első hónapjaihoz a konfigurációban, vagy a 99-et a nullára való visszaállításhoz havonta). Ha ezt a beállítást használja, és x értéke 2 vagy nagyobb, akkor az {ééééhh} vagy {éééé}{mm} sorozat is kötelező.
    {dd} nap (01-31).
    {mm} hónap (01-12).
    {yy}< /b>, {yyyy} vagy {y} év 2, 4 vagy 1 számon keresztül.
    +GenericMaskCodes2={cccc} az n karakteres ügyfélkód
    {cccc000} az n karakteres ügyfélkódot egy, az ügyfélnek szánt számláló követi. Ez az ügyfélnek szánt számláló a globális számlálóval egy időben nullázódik.
    {tttt} A harmadik fél típusának kódja n karakterben (lásd a Főmenü - Beállítás - Szótár - Harmadik felek típusai ). Ha hozzáadja ezt a címkét, a számláló minden harmadik fél esetében eltérő lesz.
    +GenericMaskCodes3=Az összes többi karakter a maszkban érintetlen marad.
    A szóközök nem megengedettek.
    +GenericMaskCodes3EAN=A maszk összes többi karaktere érintetlen marad (kivéve a * vagy a ? jelet az EAN13 13. pozíciójában).
    Szóközök nem megengedettek.
    Az EAN13-ban a 13. pozícióban lévő utolsó } után az utolsó karakternek * vagy ? . Ezt a számított kulcs váltja fel.
    GenericMaskCodes4a= Példa a ValamilyenVállalat partner 99. %s, 2007-01-31 dátummal:
    GenericMaskCodes4b=Példa: a harmadik fél létre 2007/03/01:
    GenericMaskCodes4c=Példa egy 2007-03-01-én létrehozott termékre:
    -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} ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/ XXX: 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} a következőt adja: IN0701-0099-A, ha a cég típusa „Felelős Inscripto”, a típus kódja „A_RI” GenericNumRefModelDesc=Vissza szabható számot a meghatározott maszkot. ServerAvailableOnIPOrPort=Kiszolgálóhoz elérhető a címen %s %s porton ServerNotAvailableOnIPOrPort=A kiszolgáló nem elérhető címen %s %s porton @@ -378,8 +378,8 @@ UMask=Umask paramétert az új fájlok a Unix / Linux / BSD fájlrendszer. UMaskExplanation=Ez a paraméter lehetővé teszi, hogy meghatározza jogosultságok beállítása alapértelmezés szerint létrehozott fájlok Dolibarr a szerver (feltöltés közben például).
    Ennek kell lennie az oktális érték (például 0666 segítségével írni és olvasni mindenki számára).
    Ez a paraméter haszontalan egy Windows szerverre. SeeWikiForAllTeam=Vessen egy pillantást a Wiki oldalra a közreműködők és szervezeteik listájára UseACacheDelay= Késleltetése caching export válasz másodpercben (0 vagy üres cache nélkül) -DisableLinkToHelpCenter=Hide the link "Need help or support" on the login page -DisableLinkToHelp=Hide the link to the online help "%s" +DisableLinkToHelpCenter=A bejelentkezési oldalon rejtse el a „Segítségre vagy támogatásra van szüksége” hivatkozást +DisableLinkToHelp=A "%s" online súgó linkjének elrejtése AddCRIfTooLong=Nincs automatikus szövegtördelés, a túl hosszú szöveg nem jelenik meg a dokumentumokon. Szükség esetén nyomjon Enter-t a szövegmezőben. ConfirmPurge=Biztosan végrehajtja ezt a törlést?
    Ez véglegesen törli az összes adatfájlt, amelyek ezután már nem helyreállíthatóak (ECM fájlok, csatolt fájlok ...). MinLength=Minimális hossz @@ -389,7 +389,7 @@ ExamplesWithCurrentSetup=Példák az aktuális konfigurációval ListOfDirectories=OpenDocument sablonok listája könyvtárak ListOfDirectoriesForModelGenODT=Az OpenDocument formátumú sablonfájlokat tartalmazó könyvtárak listája.

    Írja ide a könyvtárak teljes elérési útját.
    Nyomjon "Enter"-t minden egyes könyvtár között.
    A GED modul könyvtárának hozzáadása: DOL_DATA_ROOT/ecm/saját_könyvtár_neve.

    Az e könyvtárakban található fájloknak .odt vagy .ods kiterjesztésre kell végződni. NumberOfModelFilesFound=Ezekben a könyvtárakban található ODT / ODS sablon fájlok száma -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +ExampleOfDirectoriesForModelGen=Példák szintaxisra:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
    Ha tudod, hogyan kell létrehozni a odt dokumentumsablonok, mielőtt tárolja őket azokra a könyvtárakra, olvasd el a wiki dokumentáció: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=A név / vezetéknév sorrendje @@ -406,7 +406,7 @@ SecurityToken=Kulcs a biztonságos URL-ek NoSmsEngine=Nincs elérhető SMS küldő kezelő. Az SMS-küldő kezelőt nem telepíti az alapértelmezett disztribúcióval, mivel azok külső gyártótól függenek, de néhányat találhat az %s-on PDF=PDF PDFDesc=Globális beállítások PDF létrehozására -PDFOtherDesc=PDF Option specific to some modules +PDFOtherDesc=Egyes modulokra jellemző PDF opció PDFAddressForging=A cím szekció szabályai HideAnyVATInformationOnPDF=A forgalmi adóval / ÁFA-val kapcsolatos összes információ elrejtése PDFRulesForSalesTax=A forgalmi adó / ÁFA szabályai @@ -421,7 +421,7 @@ UrlGenerationParameters=URL paraméterek biztosítása SecurityTokenIsUnique=Használjunk olyan egyedi securekey paraméter az URL EnterRefToBuildUrl=Adja meg az objektum referencia %s GetSecuredUrl=Get URL számított -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=A jogosulatlan műveleti gombok elrejtése a belső felhasználók számára is (egyébként szürkén látható) OldVATRates=Régi ÁFA-kulcs NewVATRates=Új ÁFA-kulcs PriceBaseTypeToChange=Módosítsa az árakat a meghatározott alap referenciaértékkel @@ -450,19 +450,19 @@ ExtrafieldCheckBox=Jelölőnégyzeteket ExtrafieldCheckBoxFromList=Jelölőnégyzetek a táblából ExtrafieldLink=Link egy objektumhoz ComputedFormula=Számított mező -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' +ComputedFormulaDesc=Itt megadhat egy képletet az objektum más tulajdonságait vagy bármilyen PHP kódot használva, hogy dinamikusan számított értéket kapjon. Bármilyen PHP-kompatibilis képletet használhat, beleértve a "?" feltétel operátor és a következő globális objektum: $db, $conf, $langs, $mysoc, $user, $object.
    FIGYELMEZTETÉS: A $objektum csak néhány tulajdonsága lehet elérhető. Ha olyan tulajdonságra van szüksége, amely nincs betöltve, egyszerűen töltse be az objektumot a képletbe, mint a második példában.
    A kiszámított mező használata azt jelenti, hogy nem adhat meg magának semmilyen értéket a felületről. Szintaktikai hiba esetén előfordulhat, hogy a képlet semmit sem ad vissza.

    Példa a képletre:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Példa objektum újratöltésére
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj-> rowid: $objektum->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Egy másik példa az objektum és szülőobjektuma betöltésének kényszerítésére szolgáló képletre:
    (($reloadedobj = új feladat($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = új projekt($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project ) > 0)) ? $secondloadedobj->ref: "A szülőprojekt nem található" Computedpersistent=Számított mező mentése ComputedpersistentDesc=A kiszámított extra mezőket az adatbázis tárolja, azonban az érték csak akkor kerül újraszámításra, ha a mező objektuma megváltozik. Ha a kiszámított mező más objektumoktól vagy globális adatoktól függ, akkor ez az érték rossz lehet! ExtrafieldParamHelpPassword=Ha ezt a mezőt üresen hagyja, akkor ez az érték titkosítás nélkül lesz tárolva (a mezőt csak a csillaggal lehet elrejteni a képernyőn).
    Állítsa be az „auto” értéket az alapértelmezett titkosítási szabály használatával a jelszó adatbázisba mentéséhez (akkor az olvasott érték csak hash kód lesz, az eredeti érték nem olvasható) -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 +ExtrafieldParamHelpselect=Az értékek listájának olyan sorokat kell tartalmaznia, amelyek formátuma kulcs,érték (ahol a kulcs nem lehet '0')

    például:
    1,érték1
    2,érték2
    kód3,érték3< br>...

    Ahhoz, hogy a lista egy másik kiegészítő attribútumlistától függ:
    1,érték1|opciók_szülőlista_kódja:szülőkulcs
    2,érték2|opciók_ parent_list_code:parent_key

    Ahhoz, hogy a lista egy másik listától függjön:
    1,érték1|szülőlista_kódja:parent_key
    2,value2 |parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Az értékek listájának soroknak kell lennie formátumkulccsal, értékkel (ahol a kulcs nem lehet „0”)

    például:
    1,érték1
    2,érték2
    3, érték3
    ... ExtrafieldParamHelpradio=Az értékek listájának soroknak kell lennie formátumkulccsal, értékkel (ahol a kulcs nem lehet „0”)

    például:
    1,érték1
    2,érték2
    3, érték3
    ... -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 +ExtrafieldParamHelpsellist=Az értékek listája egy táblából származik.
    Szintaxis: táblázat_neve:címkemező:id_mező::filtersql
    Példa: c_typent:libelle:id::filtersql

    - Az id_field feltétlenül elsődleges int kulcs
    - A filtersql egy SQL feltétel. Ez lehet egy egyszerű teszt (pl. active=1), hogy csak az aktív értéket jelenítse meg.
    Használhatja a $ID$ azonosítót is a szűrőben, amely az aktuális objektum aktuális azonosítója.
    A SELECT szűrő használatához használja a kulcsszót $SEL$ a befecskendezés elleni védelem megkerüléséhez.
    ha extramezőkre szeretne szűrni, használja az extra.fieldcode=... szintaxist (ahol a mezőkód az extramező kódja)

    Ahhoz, hogy a lista egy másik kiegészítő attribútum listától függően:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    Ahhoz, hogy a lista egy másik listától függ:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=Az értékek listája egy táblázatból származik.
    Szintaxis: tábla_neve:címkemező:id_mező::filtersql
    Példa: c_typent:libelle:id::filtersql

    a szűrő egy egyszerű teszt is lehet (pl. active=1 ) csak az aktív érték megjelenítéséhez
    Használhatja a $ID$-t is a szűrőben, ez az aktuális objektum aktuális azonosítója
    A szűrőben történő KIVÁLASZTÁSHOZ használja a $SEL$
    ha extramezőkre szeretne szűrni, használja szintaxis extra.fieldcode=... (ahol a mezőkód az extramező kódja)

    Ahhoz, hogy a lista egy másik kiegészítő attribútumlistától függ:
    c_typent:libelle:id:options_ parent_list_code|parent_column:filter

    Ahhoz, hogy a lista egy másik listától függjön:
    c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=A paramétereknek ObjectName:Classpath típusúnak kell lennie
    Szintaxis: 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) +ExtrafieldParamHelpSeparator=Hagyja üresen egyszerű elválasztó esetén
    Állítsa ezt 1-re összecsukódó elválasztó esetén (alapértelmezés szerint nyitva van új munkamenethez, majd az állapot megmarad minden felhasználói munkamenethez)
    Állítsa ezt 2-re összecsukódó elválasztó esetén (alapértelmezés szerint összecsukva új munkamenet, akkor az állapot minden felhasználói munkamenetre megmarad) LibraryToBuildPDF=A PDF létrehozásához használt programkönyvtár -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=Egyes országok két vagy három adót alkalmazhatnak minden számlasoron. Ha ez a helyzet, válassza ki a második és harmadik adó típusát és mértékét. Lehetséges típusok:
    1: helyi adó vonatkozik a termékekre és szolgáltatásokra áfa nélkül (a helyi adót az adó nélküli összegre számítják)
    2: a helyi adót kell alkalmazni a termékekre és szolgáltatásokra, beleértve az áfát (a helyi adó összege + főadó )
    3: az áfa nélküli termékekre helyi adó vonatkozik (a helyi adót az adó nélküli összegre kell számítani)
    4: a helyi adót az áfával együtt tartalmazó termékekre kell alkalmazni (a helyi adó összege + fő áfa)
    5: helyi áfa nélküli szolgáltatások után adót kell fizetni (a helyi adót az adó nélküli összegre kell számítani)
    6: az áfával együtt nyújtott szolgáltatásokra helyi adót kell fizetni (a helyi adót az összegre + adóra számítják) SMS=SMS LinkToTestClickToDial=Írjon be egy telefonszámot, hogy kipróbálhassa a ClickToDial URL-t %s felhasználóhoz RefreshPhoneLink=Hivatkozás frissítése @@ -477,7 +477,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 @@ -492,26 +492,26 @@ EnableAndSetupModuleCron=Ha azt akarja, hogy ezt az ismétlődő számlát autom ModuleCompanyCodeCustomerAquarium=%s, amelyet az ügyfélkód követ egy ügyfélszámlázási kódhoz ModuleCompanyCodeSupplierAquarium=%s, amelyet szállítói kód követ a eladói számviteli kódhoz ModuleCompanyCodePanicum=Visszaad egy üres könyvelési kódot. -ModuleCompanyCodeDigitaria=Egy összetett számviteli kódot ad vissza a partner neve szerint. A kód egy előtagból áll, amelyet az első pozícióban lehet meghatározni, amelyet a partnerl kódjában meghatározott karakterek száma követ. +ModuleCompanyCodeDigitaria=Összetett számviteli kódot ad vissza a harmadik fél nevének megfelelően. A kód egy előtagból áll, amely az első helyen definiálható, amelyet a harmadik fél kódjában meghatározott karakterek száma követ. ModuleCompanyCodeCustomerDigitaria=%s, majd az ügyfél rövidített neve és a karakterek száma: %s az ügyfél könyvelési kódjához. ModuleCompanyCodeSupplierDigitaria=%s, majd a szállító rövidített neve és a karakterek száma: %s a beszállítói könyvelési kódhoz. -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. +Use3StepsApproval=Alapértelmezés szerint a beszerzési rendeléseket 2 különböző felhasználónak kell létrehoznia és jóváhagynia (egy lépés/felhasználó létrehozása és egy lépés/felhasználó jóváhagyása. Ne feledje, hogy ha a felhasználó rendelkezik mind a létrehozási, mind a jóváhagyási engedéllyel, akkor egy lépés/felhasználó elegendő) . Ezzel az opcióval kérheti egy harmadik lépés/felhasználói jóváhagyás bevezetését, ha az összeg nagyobb, mint egy dedikált érték (tehát 3 lépésre lesz szükség: 1=érvényesítés, 2=első jóváhagyás és 3=második jóváhagyás, ha az összeg elegendő).
    Állítsa üresre, ha egy jóváhagyás (2 lépés) elegendő, állítsa nagyon alacsony értékre (0,1), ha mindig szükség van egy második jóváhagyásra (3 lépés). UseDoubleApproval=Használjon 3 lépéses jóváhagyást, ha az összeg (adó nélkül) nagyobb, mint ... WarningPHPMail=FIGYELMEZTETÉS: Az e-mailek alkalmazásból történő küldéséhez használt beállítás az alapértelmezett általános beállítást használja. Gyakran jobb, ha a kimenő e-maileket úgy állítja be, hogy az alapértelmezett beállítás helyett az e-mail szolgáltató e-mail szerverét használja, több okból: -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). +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=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=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. 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=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 +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 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 TheKeyIsTheNameOfHtmlField=Ez a HTML mező neve. A HTML-oldal tartalmának elolvasásához műszaki ismeretekre van szükség a mező kulcsának megszerzéséhez. PageUrlForDefaultValues=Meg kell adnia az oldal URL-jének relatív elérési útját. Ha paramétereket kapcsol az URL-hez, az alapértelmezett értékek akkor lesznek érvényesek, ha az összes paraméter azonos értékre van állítva. -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 +PageUrlForDefaultValuesCreate=
    Példa:
    Az új harmadik felet létrehozó űrlaphoz az %s.
    Az egyéni könyvtárba telepített külső modulok URL-jéhez ne használja a "custom/ ", ezért használja a mymodule/mypage.php elérési utat, ne pedig custom/mymodule/mypage.php.
    Ha csak akkor szeretne alapértelmezett értéket, ha az url-nek van valamilyen paramétere, használhatja a %st +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 @@ -521,9 +521,9 @@ Field=Mező ProductDocumentTemplates=Dokumentumsablonok a termékdokumentum létrehozásához FreeLegalTextOnExpenseReports=Ingyenes jogi szöveg a költségjelentésekről WatermarkOnDraftExpenseReports=Vízjel a költségjelentések tervezetén -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 +ProjectIsRequiredOnExpenseReports=Költségjelentés rögzítéséhez a projekt kötelező +PrefillExpenseReportDatesWithCurrentMonth=Töltse ki előre az új költségjelentés kezdő és záró dátumát az aktuális hónap kezdő és befejező dátumával +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Kényszerítse a költségjelentési összegek rögzítését mindig az adókkal együtt AttachMainDocByDefault=Állítsa ezt az értéket 1-re, ha alapdokumentumot szeretne csatolni az e-mailhez alapértelmezés szerint (ha van) FilesAttachedToEmail=Fájl csatolása SendEmailsReminders=Küldje el a napirend emlékeztetőket e-mailben @@ -558,8 +558,8 @@ Module40Name=Eladók Module40Desc=Szállítók és beszerzésmenedzsment (beszerzési megrendelések és szállítói számlák kiszámlázása) Module42Name=Hibanaplók Module42Desc=Naplózási lehetőségek (fájl, syslog, ...). Az ilyen naplók műszaki / hibakeresési célokra szolgálnak. -Module43Name=Debug Bar -Module43Desc=A tool for developper adding a debug bar in your browser. +Module43Name=Hibakereső sáv +Module43Desc=Eszköz a fejlesztők számára, hogy hibakereső sávot adjanak hozzá a böngészőhöz. Module49Name=Szerkesztők Module49Desc=Szerkesztő vezetése Module50Name=Termékek @@ -607,19 +607,19 @@ Module310Desc=Alapítvány tagjai menedzsment Module320Name=RSS Feed Module320Desc=Adjon hozzá RSS-hírcsatornát a Dolibarr oldalakhoz Module330Name=Könyvjelzők és hivatkozások -Module330Desc=Hozzon létre mindig elérhető parancsikonokat a belső vagy külső oldalakhoz, amelyekhez gyakran használnak +Module330Desc=Hozzon létre mindig elérhető parancsikonokat azokhoz a belső vagy külső oldalakhoz, amelyekhez gyakran hozzáfér Module400Name=Projektek vagy Vezetők -Module400Desc=Projektek, vezetők/aehetőségek és/vagy feladatok menedzselése. Bármely elemet (számla, megrendelés, javaslat, intervenció, stb.) hozzárendelhet egy projekthez, és általános képet kaphat a projektről. +Module400Desc=Projektek, vezetők/lehetőségek és/vagy feladatok menedzselése. Bármilyen elemet (számla, rendelés, ajánlat, beavatkozás, ...) is hozzárendelhet egy projekthez, és keresztirányú nézetet kaphat a projektnézetből. Module410Name=WebCalendar Module410Desc=WebCalendar integráció Module500Name=Adók és különleges költségek -Module500Desc=Management of other expenses (sales taxes, social or fiscal taxes, dividends, ...) +Module500Desc=Egyéb kiadások kezelése (forgalmi adók, szociális vagy fiskális adók, osztalékok, ...) Module510Name=Bérek -Module510Desc=A munkavállalói kifizetések nyilvántartása és nyomon követése4 +Module510Desc=A munkavállalói kifizetések nyilvántartása és nyomon követése Module520Name=Hitelek Module520Desc=Hitelek kezelése Module600Name=Értesítések üzleti eseményről -Module600Desc=Üzleti esemény által kiváltott e-mailes értesítések küldése: felhasználónként (a beállításokat minden felhasználó meghatározza), harmadik fél kapcsolattartóinként (a beállításokat minden harmadik fél meghatározza) vagy meghatározott e-mailek +Module600Desc=Üzleti esemény által kiváltott e-mail-értesítések küldése: felhasználónként (a beállítás minden felhasználónál meghatározott), harmadik felek kapcsolattartóinak (minden harmadik félnél meghatározott beállítás) vagy meghatározott e-mailek alapján Module600Long=Vegye figyelembe, hogy ez a modul valós időben küld e-maileket, amikor egy adott üzleti esemény bekövetkezik. Ha olyan funkciót keres, amely e-mailben emlékeztetőt küld a napirend eseményeiről, akkor lépjen az Agenda (Napirend) modul beállításához. Module610Name=Termékváltozatok Module610Desc=Termékváltozatok készítése (szín, méret stb.) @@ -627,8 +627,8 @@ Module700Name=Adományok Module700Desc=Adomány vezetése Module770Name=Költségjelentések Module770Desc=Költségjelentések kezelése (szállítás, étkezés, ...) -Module1120Name=Eladói kereskedelmi javaslatok -Module1120Desc=Kérjen eladói kereskedelmi ajánlatot és árakat +Module1120Name=Eladói árajánlatok +Module1120Desc=Kérjen eladói árajánlatot és árakat Module1200Name=Mantis Module1200Desc=Mantis integráció Module1520Name=Dokumentumok generálása @@ -657,17 +657,17 @@ Module2800Desc=FTP kliens Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP MaxMind konverziók képességek Module3200Name=Megváltoztathatatlan archívumok -Module3200Desc=Az üzleti események megváltoztathatatlan naplójának engedélyezése. Az eseményeket valós időben archiválódnak. A napló csak olvasható táblázat, amely exportálható láncolt eseményekből áll. Ez a modul egyes országokban kötelező lehet. +Module3200Desc=Az üzleti események megváltoztathatatlan naplójának engedélyezése. Az események valós időben archiválódnak. A napló a láncolt események csak olvasható táblázata, amely exportálható. Ez a modul bizonyos országokban kötelező lehet. Module3400Name=Közösségi hálózatok Module3400Desc=Engedélyezze a közösségi hálózatok mezőit harmadik felek és címek számára (skype, twitter, facebook, ...). Module4000Name=HRM Module4000Desc=Humánerőforrás menedzsment (osztály vezetése, munkavállalói szerződések és elégedettség) Module5000Name=Több-cég Module5000Desc=Több vállalat kezelését teszi lehetővé -Module6000Name=Inter-modules Workflow -Module6000Desc=Workflow management between different modules (automatic creation of object and/or automatic status change) +Module6000Name=Modulok közötti munkafolyamat +Module6000Desc=Munkafolyamat-kezelés a különböző modulok között (objektum automatikus létrehozása és/vagy automatikus állapotváltás) Module10000Name=Weboldalak -Module10000Desc=Készítsen (nyilvános) webhelyeket egy WYSIWYG szerkesztővel. Ez egy webmester vagy fejlesztőorientált CMS (jobb, ha ismerjük a HTML és a CSS nyelvet). Csak állítsa be a webszervert (Apache, Nginx, ...), hogy mutasson a dedikált Dolibarr könyvtárra, hogy online legyen az interneten saját domain nevével. +Module10000Desc=Hozzon létre weboldalakat (nyilvános) a WYSIWYG szerkesztővel. Ez egy webmester vagy fejlesztő orientált CMS (jobb, ha ismeri a HTML és CSS nyelvet). Csak állítsa be a webszerverét (Apache, Nginx, ...), hogy a dedikált Dolibarr könyvtárra mutasson, hogy az Ön saját domain nevével elérhető legyen az interneten. Module20000Name=Kérelmek kezelésének engedélyezése Module20000Desc=Határozza meg és kövesse nyomon a munkavállalói szabadság igényeket Module39000Name=Termékmennyiségek (vagy termékcsomagok) @@ -685,13 +685,13 @@ Module50200Desc=Ajánlja az ügyfeleknek a PayPal online fizetési oldalt (PayPa Module50300Name=Stripe Module50300Desc=Ajánlja az ügyfeleknek a Stripe online fizetési oldalt (hitel-/bankkártyák). Ez arra használható, hogy az ügyfelek ad-hoc kifizetéseket vagy egy adott Dolibarr-objektumhoz kapcsolódó kifizetéseket (számla, megrendelés stb.) elvégezzenek. Module50400Name=Számvitel (kettős könyvelés) -Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module50400Desc=Számviteli vezetés (kettős könyvelés, fő- és leánykönyvek támogatása). Exportálja a főkönyvet számos más számviteli szoftver formátumba. Module54000Name=PrintIPP Module54000Desc=Közvetlen nyomtatás (a dokumentumok kinyitása nélkül) a Cups IPP felülettel (A nyomtatónak látnia kell a szervert, a CUPS-t pedig telepíteni kell a szerverre). Module55000Name=Szavazás, felmérés vagy választás Module55000Desc=Hozzon létre online szavazást, felmérést vagy választást (például Doodle, Studs, RDVz stb.) Module59000Name=Margók -Module59000Desc=A margók követésére szolgáló modul +Module59000Desc=Az árrések követésére szolgáló modul Module60000Name=Jutalékok Module60000Desc=Modul a jutalékok kezelésére Module62000Name=Nemzetközi kereskedelmi feltételek @@ -700,7 +700,7 @@ Module63000Name=Erőforrások Module63000Desc=Az eseményekhez elosztandó erőforrások (nyomtatók, autók, helyiségek, ...) kezelése Permission11=Olvassa vevői számlák Permission12=Létrehozza / módosítja vevői számlák -Permission13=Ügyfélszámlák érvénytelenítése +Permission13=Érvénytelen vevői számlák Permission14=Érvényesítés vevői számlák Permission15=Küldés e-mailben vevői számlák Permission16=Készítsen kifizetések vevői számlák @@ -714,19 +714,20 @@ 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 Permission39=A minimális ár figyelmen kívül hagyása -Permission41=Projektek és feladatok megtekintése (megosztott projekt és projektek, amelyekhez kapcsolatba lépek). Megadhatja az felhasznált időt nekem vagy a hierarchiámnak a kijelölt feladatoknál (munkaidő-nyilvántartás) -Permission42=Projektek létrehozása / módosítása (megosztott projekt és projektek, amelyekkel kapcsolatba léptem). Feladatokat is létrehozhat, és felhasználókat rendelhet a projektekhez és feladatokhoz -Permission44=Projekt törlése (megosztott projekt és azok a projektek, amelyekkel kapcsolatba léptem) -Permission45=Projektek exportálása +Permission41=Projektek és feladatok olvasása (megosztott projektek és projektek, amelyeknek kapcsolattartója vagyok). +Permission42=Projektek létrehozása/módosítása (megosztott projektek és projektek, amelyeknek kapcsolattartója vagyok). Felhasználókat is hozzárendelhet a projektekhez és a feladatokhoz +Permission44=Projektek törlése (megosztott projektek és projektek, amelyeknek kapcsolattartója vagyok) +Permission45=Export projektek Permission61=Olvassa beavatkozások Permission62=Létrehozza / módosítja beavatkozások Permission64=Törlés beavatkozások Permission67=Export beavatkozások -Permission68=Küldje el a beavatkozásokat e-mailben +Permission68=A beavatkozásokat e-mailben küldje el Permission69=A beavatkozások érvényesítése Permission70=A beavatkozások érvénytelenítése Permission71=Olvassa tagjai @@ -739,65 +740,67 @@ 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 Permission89=Törlés ügyfelek megrendelések -Permission91=Szociális vagy fiskális adók, ÁFA megtekintése -Permission92=Szociális vagy fiskális adók, ÁFA létrehozása/módosítása -Permission93=Szociális vagy fiskális adók, ÁFA törlése -Permission94=Szociális vagy fiskális adók exportálása +Permission91=Olvassa el a szociális vagy fiskális adókat és az áfát +Permission92=Szociális vagy fiskális adók és áfa létrehozása/módosítása +Permission93=Törölje a szociális vagy fiskális adókat és az áfát +Permission94=Export szociális vagy fiskális adók Permission95=Olvassa jelentések Permission101=Olvassa küldések Permission102=Létrehozza / módosítja küldések Permission104=Érvényesítés küldések -Permission105=Üzenetek elküldése e-mailben +Permission105=Küldemények küldése e-mailben Permission106=Küldemények exportálása Permission109=Törlés küldések Permission111=Olvassa el a pénzügyi számlák Permission112=Létrehozása / módosítása / törlése, és hasonlítsa össze tranzakciók -Permission113=Setup financial accounts (create, manage categories of bank transactions) -Permission114=Tranzakciók összehangolása +Permission113=Pénzügyi számlák beállítása (banki tranzakciók kategóriáinak létrehozása, kezelése) +Permission114=A tranzakciók egyeztetése Permission115=Export ügyletek és számlakivonatok Permission116=Számlák közötti átcsoportosítás -Permission117=A elküldés/feladás ellenőrzéseinek menedzselése +Permission117=Csekkküldés kezelése Permission121=Olvassa harmadik fél kapcsolódó felhasználói Permission122=Létrehozza / módosítja harmadik fél kapcsolódó felhasználói Permission125=Törlés harmadik fél kapcsolódó felhasználói Permission126=Export harmadik fél -Permission130=Create/modify third parties payment information -Permission141=Az összes projekt és feladat megtekintése (azok a magánprojektek is, amelyekkel nem vagyok kapcsolatban) -Permission142=Hozzon létre / módosítson minden projektet és feladatot (magánprojektek is, amelyekkel nem vagyok kapcsolatban) -Permission144=Az összes projekt és feladat törlése (azok a magánprojektek is, amelyekkel nem vagyok kapcsolatban) +Permission130=Hozzon létre/módosítson harmadik fél fizetési adatait +Permission141=Olvassa el az összes projektet és feladatot (valamint azokat a privát projekteket, amelyeknek nem vagyok kapcsolattartója) +Permission142=Minden projekt és feladat létrehozása/módosítása (valamint azokat a privát projekteket, amelyeknek nem vagyok kapcsolattartója) +Permission144=Törölje az összes projektet és feladatot (valamint azokat a privát projekteket, amelyek nem vagyok kapcsolattartó) +Permission145=Megadhatja az általam vagy a hierarchiámban felhasznált időt a kijelölt feladatokhoz (munkaidő-nyilvántartás) Permission146=Olvassa szolgáltatók Permission147=Olvassa statisztika -Permission151=Beszedési megbízások megtekintése -Permission152=Beszedési megbízás létrehozása/módosítása -Permission153=Közvetlen beszedési megbízások küldése/továbbítása -Permission154=A beszedési megbízások jóváírása/elutasítása -Permission161=Szerződések/előfizetések megtekintése +Permission151=Olvassa el a csoportos beszedési megbízásokat +Permission152=Csoportos beszedési megbízások létrehozása/módosítása +Permission153=Csoportos beszedési megbízások küldése/továbbítása +Permission154=Csoportos beszedési megbízások jóváírásainak/elutasításainak rögzítése +Permission161=Olvassa el a szerződéseket/előfizetéseket Permission162=Szerződések/előfizetések létrehozása/módosítása -Permission163=Aktiválja a szolgáltatás / a szerződés előfizetését -Permission164=Szolgáltatás / szerződés előfizetés letiltása -Permission165=Szerződések / előfizetések törlése -Permission167=Szerződések exportálása -Permission171=Utak és költségek megjelenítése (az Öné és beosztottaié) -Permission172=Utak és költségek létrehozása/megjelenítése -Permission173=Utak és költségek törlése -Permission174=Minden út és költség megjelenítése -Permission178=Utak és költségek exportálása +Permission163=Szolgáltatás aktiválása/szerződés előfizetése +Permission164=Szolgáltatás/szerződés előfizetés letiltása +Permission165=Törölje a szerződéseket/előfizetéseket +Permission167=Exportszerződések +Permission171=Olvassa el az utazásokat és a költségeket (a saját és a beosztottjai) +Permission172=Utazások és kiadások létrehozása/módosítása +Permission173=Törölje az utazásokat és a költségeket +Permission174=Olvassa el az összes utazást és kiadást +Permission178=Exportutak és költségek Permission180=Olvassa beszállítók -Permission181=Megrendelések megjelenítése -Permission182=Megrendelések létrehozása/módosítása -Permission183=Megrendelések hitelesítése -Permission184=Megrendelések jóváhagyása -Permission185=Megrendelés végrehajtása vagy visszavonása -Permission186=Megrendelés fogadása -Permission187=Megrendelés(ek) lezárása -Permission188=Megrendelések törlése +Permission181=Beszerzési rendelések olvasása +Permission182=Beszerzési rendelések létrehozása/módosítása +Permission183=Beszerzési rendelések érvényesítése +Permission184=Beszerzési rendelések jóváhagyása +Permission185=Beszerzési rendelések rendelése vagy törlése +Permission186=Beszerzési rendelések fogadása +Permission187=Beszerzési rendelések bezárása +Permission188=Megrendelés törlése Permission192=Létrehozása vonalak Permission193=Mégsem vonalak -Permission194=Ssávszélesség megjelenítése +Permission194=Olvassa be a sávszélesség-vonalakat Permission202=ADSL csatlakozások létrehozása Permission203=Rendelés kapcsolatok megrendelések Permission204=Rendelés kapcsolatok @@ -813,8 +816,8 @@ Permission222=Létrehozza / módosítja emailings (téma, címzettek ...) Permission223=Érvényesítése emailings (lehetővé teszi a küldő) Permission229=Törlés emailings Permission237=Címzettek és információk megtekintése -Permission238=Küldés manuálisan -Permission239=Törölje a leveleket az érvényesítés után, vagy küldje el +Permission238=Levelek kézi küldése +Permission239=Levelezés törlése az érvényesítés vagy elküldés után Permission241=Olvassa kategóriák Permission242=Létrehozza / módosítja kategóriában Permission243=Törlés kategóriák @@ -822,13 +825,13 @@ Permission244=Lásd a rejtett partíció tartalmával kategóriák Permission251=Olvassa el más felhasználók és csoportok PermissionAdvanced251=Olvassa el a többi felhasználó Permission252=Olvassa el a többi felhasználó jogosultságait -Permission253=Felhasználók, csoportok és engedélyek létrehozása/módosítása +Permission253=Más felhasználók, csoportok és engedélyek létrehozása/módosítása PermissionAdvanced253=Létrehozza / módosítja belső / külső felhasználók és jogosultságok Permission254=Létrehozása / módosítása csak a külső felhasználók számára Permission255=Módosíthat más felhasználó jelszavát Permission256=Törlése vagy tiltsa le más felhasználók -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=A hozzáférés kiterjesztése minden harmadik félre ÉS tárgyaikra (nem csak harmadik felekre, akiknek a felhasználó értékesítési képviselője).
    Külső felhasználók számára nem hatékony (mindig saját magukra korlátozódnak az ajánlatok, rendelések, számlák, szerződések stb. esetében).
    Nem hatékony projekteknél (csak a projektengedélyekre, a láthatóságra és a hozzárendelésre vonatkozó szabályok számítanak). +Permission263=A hozzáférés kiterjesztése minden harmadik félre, tárgyaik NÉLKÜL (nem csak olyan harmadik felekre, akiknek a felhasználó értékesítési képviselője).
    Külső felhasználók számára nem hatékony (mindig saját magukra korlátozódnak az ajánlatok, rendelések, számlák, szerződések stb. esetében).
    Nem hatékony projekteknél (csak a projektengedélyekre, a láthatóságra és a hozzárendelésre vonatkozó szabályok számítanak). Permission271=Olvassa CA Permission272=Olvassa számlák Permission273=Számlák kibocsátása @@ -838,12 +841,12 @@ Permission283=Névjegyek törlése 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 ügyfél tarifáit +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 Permission311=Olvassa szolgáltatások -Permission312=Szolgáltatás/előfizetés hozzárendelése szerződéshez +Permission312=Szolgáltatás/előfizetés hozzárendelése a szerződéshez Permission331=Olvassa könyvjelzők Permission332=Létrehozza / módosítja könyvjelzők Permission333=Törlés könyvjelzők @@ -860,186 +863,192 @@ Permission401=Olvassa kedvezmények Permission402=Létrehozza / módosítja kedvezmények Permission403=Kedvezmények érvényesítése Permission404=Törlés kedvezmények -Permission430=Használja a Hibakeresősávot -Permission511=Read salaries and payments (yours and subordinates) -Permission512=Fizetések és kifizetések létrehozása/módosítása -Permission514=Törölje a fizetéseket és a kifizetéseket -Permission517=Read salaries and payments everybody -Permission519=Fizetések exportálása -Permission520=Hitelek megtekintése +Permission430=A hibakereső sáv használata +Permission511=Olvassa el a fizetéseket és a kifizetéseket (a saját és a beosztottjai) +Permission512=Bérek és kifizetések létrehozása/módosítása +Permission514=Bérek és kifizetések törlése +Permission517=Mindenki olvassa el a fizetéseket és a kifizetéseket +Permission519=Export fizetések +Permission520=Kölcsönek olvasása Permission522=Hitelek létrehozása/módosítása Permission524=Hitelek törlése Permission525=Hozzáférés a hitelkalkulátorhoz -Permission527=Hitelek exportálása +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 -Permission561=A fizetési megbízások átutalással megtekintése -Permission562=Create/modify payment order by credit transfer -Permission563=Send/Transmit payment order by credit transfer -Permission564=Record Debits/Rejections of credit transfer -Permission601=Olvassa el a matricákat -Permission602=Create/modify stickers -Permission609=Delete stickers -Permission650=Darabjegyzékek megtekintése -Permission651=Darabjegyzék létrehozása / frissítése -Permission652=Darabjegyzék törlése -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) +Permission561=A fizetési megbízások olvasása átutalással +Permission562=Fizetési megbízás létrehozása/módosítása átutalással +Permission563=Fizetési megbízás küldése/továbbítása átutalással +Permission564=Rögzítse a terheléseket/átutalások elutasítását +Permission601=Matricák olvasása +Permission602=Matricák létrehozása/módosítása +Permission609=Matricák törlése +Permission611=Olvassa el a változatok attribútumait +Permission612=Változatok attribútumai létrehozása/frissítése +Permission613=Törölje a változatok attribútumait +Permission650=Olvassa el az anyagjegyzéket +Permission651=Anyagjegyzékek létrehozása/frissítése +Permission652=Az anyagjegyzékek törlése +Permission660=Gyártási rendelés (MO) olvasása +Permission661=Gyártási rendelés (MO) létrehozása/frissítése +Permission662=Gyártási rendelés törlése (MO) Permission701=Olvassa el adományokat Permission702=Létrehozza / módosítja adományok Permission703=Törlés adományok -Permission771=Költségjelentések megtekintése (sajátja és beosztottjaié) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission771=Költségjelentések olvasása (a saját és a beosztottjai) +Permission772=Költségjelentések létrehozása/módosítása (a saját és a beosztottjaik) Permission773=Költségjelentések törlése -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 +Permission775=Költségjelentések jóváhagyása +Permission776=Fizetési költségjelentések +Permission777=Minden költségjelentés olvasása (még a felhasználó nem beosztottjaét is) +Permission778=Költségjelentések létrehozása/módosítása mindenkiről +Permission779=Költségjelentések exportálása Permission1001=Olvassa készletek -Permission1002=Raktárak létrehozása / módosítása +Permission1002=Raktárak létrehozása/módosítása Permission1003=Raktárak törlése Permission1004=Olvassa állomány mozgását Permission1005=Létrehozza / módosítja állomány mozgását -Permission1011=Tekintse meg a készleteket +Permission1011=A készlet megtekintése Permission1012=Új készlet létrehozása -Permission1014=A készlet érvényesítése -Permission1015=Allow to change PMP value for a product -Permission1016=Készlet törlése -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 +Permission1014=A készlet ellenőrzése +Permission1015=A termék PMP értékének módosítása +Permission1016=A készlet törlése +Permission1101=Olvassa el a kézbesítési elismervényeket +Permission1102=Szállítási bizonylatok létrehozása/módosítása +Permission1104=Szállítási bizonylatok ellenőrzése +Permission1109=Szállítási nyugták törlése +Permission1121=Olvassa el a szállítói árajánlatokat +Permission1122=Szállítói ajánlatok létrehozása/módosítása +Permission1123=Szállítói ajánlatok érvényesítése +Permission1124=Szállítói ajánlatok küldése +Permission1125=Szállítói ajánlatok törlése +Permission1126=Szállítói árkérések bezárása Permission1181=Olvassa beszállítók -Permission1182=Megrendelések megjelenítése -Permission1183=Megrendelések létrehozása/módosítása -Permission1184=Megrendelések hitelesítése -Permission1185=Megrendelések jóváhagyása -Permission1186=Order purchase orders -Permission1187=Megrendelések kézhezvételének nyugtázása +Permission1182=Beszerzési rendelések olvasása +Permission1183=Beszerzési rendelések létrehozása/módosítása +Permission1184=Beszerzési rendelések érvényesítése +Permission1185=Beszerzési rendelések jóváhagyása +Permission1186=Beszerzési rendelések rendelése +Permission1187=A beszerzési megrendelések átvételének nyugtázása Permission1188=Megrendelések törlése -Permission1189=Check/Uncheck a purchase order reception -Permission1190=Beszerzési rendelések jóváhagyása (második jóváhagyás) -Permission1191=Export supplier orders and their attributes +Permission1189=Megrendelés fogadásának ellenőrzése/kijelölésének törlése +Permission1190=Beszerzési rendelések jóváhagyása (második jóváhagyás). +Permission1191=Szállítói rendelések és attribútumuk exportálása Permission1201=Get eredményeképpen az export Permission1202=Létrehozása / módosítása a kiviteli -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=Szállítói számlák olvasása +Permission1232=Szállítói számlák létrehozása/módosítása +Permission1233=Szállítói számlák ellenőrzése +Permission1234=Szállítói számlák törlése +Permission1235=Szállítói számlák küldése e-mailben +Permission1236=Szállítói számlák, attribútumok és kifizetések exportálása +Permission1237=Beszerzési rendelések és részleteik exportálása Permission1251=Fuss tömeges import a külső adatok adatbázisba (adatok terhelés) Permission1321=Export vevői számlák, attribútumok és kifizetések -Permission1322=Befizetett számla újranyitása -Permission1421=Értékesítési megrendelések és attribútumok exportálása -Permission1521=Read documents -Permission1522=Delete documents -Permission2401=Felhasználói fiókjához kapcsolódó műveletek (eseményeket vagy feladatokat) megjelenítésa (ha az esemény tulajdonosa vagy csak hozzá van rendelve) -Permission2402=A felhasználói fiókjához kapcsolódó tevékenységek (események vagy feladatok) létrehozása / módosítása (ha Ön az esemény tulajdonosa) -Permission2403=Felhasználói fiókjához kapcsolódó műveletek (eseményeket vagy feladatokat) törlése (ha Ön az esemény tulajdonosa) +Permission1322=Nyissa meg újra a kifizetett számlát +Permission1421=Értékesítési rendelések és attribútumok exportálása +Permission1521=Dokumentumok olvasása +Permission1522=Dokumentumok törlése +Permission2401=A felhasználói fiókjához kapcsolódó műveletek (események vagy feladatok) olvasása (ha az esemény tulajdonosa vagy csak hozzá van rendelve) +Permission2402=A felhasználói fiókjához kapcsolódó műveletek (események vagy feladatok) létrehozása/módosítása (ha az esemény tulajdonosa) +Permission2403=A felhasználói fiókjához kapcsolódó műveletek (események vagy feladatok) törlése (ha az esemény tulajdonosa) Permission2411=Olvassa tevékenységek (rendezvények, vagy feladatok) mások Permission2412=Létrehozza / módosítja tevékenységek (rendezvények, vagy feladatok) mások Permission2413=Törlés tevékenységek (rendezvények, vagy feladatok) mások -Permission2414=Mások tevékenységeinek / feladatainak exportálása +Permission2414=Mások műveleteinek/feladatainak exportálása Permission2501=Olvasás / Dokumentumok letöltése Permission2502=Dokumentumok letöltése Permission2503=Beküldése vagy törlése dokumentumok Permission2515=Beállítás dokumentumok könyvtárak -Permission2801=FTP kliens olvasás módban való használata (csak böngészés és letöltés) -Permission2802=FTP kliens írási módban való használata (fájlok törlése vagy feltöltése) -Permission3200=Archivált események és ujjlenyomatok megtekintése -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 -Permission10001=Weboldal tartalmának megtekintése -Permission10002=Webhely-tartalom létrehozása / módosítása (html és javascript) -Permission10003=Weboldal-tartalom létrehozása / módosítása (dinamikus php kód). Veszélyes, fejlesztőknek kell fenntartani. -Permission10005=Webhely-tartalom törlése -Permission20001=Szabadság iránti kérelmek megtekintése (Ön és beosztottjai szabadsága) -Permission20002=Szabadság iránti kérelmek létrehozása / módosítása (Ön és beosztottjai szabadsága) -Permission20003=Szabadság iránti kérelmek törlése -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=Ütemezett feladatok megtekintése -Permission23002=Ütemezett feladatok létrehozása / frissítése -Permission23003=Ütemezett feladatok törlése +Permission2801=FTP kliens használata olvasási módban (csak böngészés és letöltés) +Permission2802=FTP kliens használata írási módban (fájlok törlése vagy feltöltése) +Permission3200=Archivált események és ujjlenyomatok olvasása +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 +Permission4031=Személyes adatokat olvasása +Permission4032=Személyes adatokat írása +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. +Permission10005=A webhely tartalmának törlése +Permission20001=Olvassa el a szabadságra vonatkozó kérelmeket (a saját és a beosztottjaik szabadsága) +Permission20002=Létrehozhatja/módosíthatja szabadság kérelmeket (a saját és a beosztottjaik szabadsága) +Permission20003=Szabadság kérelmek törlése +Permission20004=Minden szabadság kérelem olvasása (még a nem beosztott felhasználóké is) +Permission20005=Létrehozhat/módosíthat szabadság kérelmeket mindenki számára (még a nem beosztottak esetében is) +Permission20006=Szabadság kérelmek adminisztrálása (egyenleg beállítása és frissítése) +Permission20007=Szabadság kérelmek jóváhagyása +Permission23001=Ütemezett feladat olvasása +Permission23002=Ütemezett feladat létrehozása/frissítése +Permission23003=Ütemezett feladat törlése Permission23004=Ütemezett feladat végrehajtása -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) -Permission50152=Edit sales lines -Permission50153=Edit ordered sales lines +Permission50101=Értékesítési pont használata (SimplePOS) +Permission50151=Értékesítési pont használata (TakePOS) +Permission50152=Értékesítési sorok szerkesztése +Permission50153=Megrendelt értékesítési sorok szerkesztése Permission50201=Olvassa tranzakciók Permission50202=Import ügyletek -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=Főkönyvi műveletek megtekintése -Permission50412=Főkönyvi műveletek írása / szerkesztése -Permission50414=Főkönyvi műveletek törlése -Permission50415=Delete all operations by year and journal in ledger -Permission50418=Főkönyvi műveletek exportálása -Permission50420=Jelentés és exportjelentés (forgalom, egyenleg, naplók, főkönyv) -Permission50430=Pénzügyi időszakok megadása. Hitelesítse a tranzakciókat és zárja le a pénzügyi időszakokat. -Permission50440=Számlatükör kezelése, számviteli beállítások -Permission51001=Vagyontárgyak megtekintése -Permission51002=Vagyontárgyak létrehozása / frissítése -Permission51003=Vagyontárgyak törlése -Permission51005=Vagyontárgyak típusainak beállítása +Permission50330=A Zapier objektumainak olvasása +Permission50331=A Zapier objektumainak létrehozása/frissítése +Permission50332=Törölje a Zapier objektumokat +Permission50401=Termékek és számlák összekapcsolása könyvelési számlákkal +Permission50411=Műveletek beolvasása a főkönyvben +Permission50412=Műveletek írása/szerkesztése a főkönyvben +Permission50414=Műveletek törlése a főkönyvben +Permission50415=Az összes művelet törlése év és napló szerint a főkönyvben +Permission50418=A főkönyvi műveletek exportálása +Permission50420=Jelentések jelentése és exportálása (forgalom, egyenleg, naplók, főkönyv) +Permission50430=Fiskális időszakok meghatározása. Érvényesítse a tranzakciókat és zárja le a pénzügyi időszakokat. +Permission50440=Számlaterv kezelése, könyvelés beállítása +Permission51001=Eszközök olvasása +Permission51002=Eszközök létrehozása/frissítése +Permission51003=Eszközök törlése +Permission51005=Eszköztípusok beállítása Permission54001=Nyomtatás -Permission55001=Közvélemény-kutatások megtekintése -Permission55002=Közvélemény-kutatás létrehozása / módosítása -Permission59001=Kereskedelmi árrések megtekintése -Permission59002=Kereskedelmi árrések megadása -Permission59003=Felhasználói árrések megtekintése -Permission63001=Erőforrások megtekintése -Permission63002=Erőforrások létrehozása / módosítása +Permission55001=Szavazások olvasása +Permission55002=Szavazások létrehozása/módosítása +Permission59001=Kereskedelmi árrések olvasása +Permission59002=A kereskedelmi árrések meghatározása +Permission59003=Minden felhasználói árrés beolvasása +Permission63001=Források olvasása +Permission63002=Erőforrások létrehozása/módosítása Permission63003=Erőforrások törlése -Permission63004=Erőforrások összekapcsolása a napirend eseményeivel -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 +Permission63004=Erőforrások összekapcsolása a napirendi eseményekkel +Permission64001=Közvetlen nyomtatás engedélyezése +Permission67000=A nyugták nyomtatásának engedélyezése +Permission68001=Kommunikáción belüli jelentés olvasása +Permission68002=Kommunikáción belüli jelentés létrehozása/módosítása +Permission68004=Kommunikáción belüli jelentés törlése +Permission941601=Nyugták olvasása +Permission941602=Nyugták létrehozása és módosítása +Permission941603=A nyugták ellenőrzése +Permission941604=Nyugták küldése e-mailben +Permission941605=Nyugták exportálása +Permission941606=Nyugták törlése DictionaryCompanyType=Partnerek típusai DictionaryCompanyJuridicalType=Partner jogi képviselői -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts +DictionaryProspectLevel=Kilátás lehetséges szintje a vállalatok számára +DictionaryProspectContactLevel=Tekintse meg a kapcsolatok potenciális szintjét DictionaryCanton=Államok / Tartományok DictionaryRegion=Régiók DictionaryCountry=Országok DictionaryCurrency=Pénznemek -DictionaryCivility=Honorific titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Types of social or fiscal taxes +DictionaryCivility=Megtisztelő címek +DictionaryActions=A napirendi események típusai +DictionarySocialContributions=A szociális vagy fiskális adók fajtái DictionaryVAT=HÉA-kulcsok vagy Értékesítés adókulcsok -DictionaryRevenueStamp=Amount of tax stamps +DictionaryRevenueStamp=Az adójegyek mennyisége DictionaryPaymentConditions=Fizetési feltételek DictionaryPaymentModes=Fizetési módok DictionaryTypeContact=Kapcsolat- és címtípusok @@ -1051,78 +1060,79 @@ DictionaryFees=Költségjelentés - A költségjelentési sorok típusai DictionarySendingMethods=Szállítási módok DictionaryStaff=Alkalmazottak száma DictionaryAvailability=Szállítási késedelem -DictionaryOrderMethods=Order methods +DictionaryOrderMethods=Rendelési módok DictionarySource=Származási javaslatok / megrendelések -DictionaryAccountancyCategory=Personalized groups for reports -DictionaryAccountancysystem=Models for chart of accounts -DictionaryAccountancyJournal=Accounting journals +DictionaryAccountancyCategory=Személyre szabott csoportok jelentésekhez +DictionaryAccountancysystem=Számlatükör modellek +DictionaryAccountancyJournal=Számviteli naplók DictionaryEMailTemplates=E-mail sablonok DictionaryUnits=Egységek DictionaryMeasuringUnits=Mértékegységek DictionarySocialNetworks=Közösségi hálózatok -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 -TypeOfUnit=Type of unit +DictionaryProspectStatus=Vállalkozások kilátásba helyezett státusza +DictionaryProspectContactStatus=A kapcsolatok potenciális állapota +DictionaryHolidayTypes=Szabadság – A szabadság típusai +DictionaryOpportunityStatus=Vezetési állapot a projekthez/vezetőhöz +DictionaryExpenseTaxCat=Költségjelentés – Szállítási kategóriák +DictionaryExpenseTaxRange=Költségjelentés – Tartomány szállítási kategória szerint +DictionaryTransportMode=Kommunikáción belüli jelentés – Szállítási mód +DictionaryBatchStatus=Terméktétel/sorozat minőségellenőrzési állapota +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 BackToModuleList=Vissza a modulok listájához BackToDictionaryList=Vissza a szótárak listájához TypeOfRevenueStamp=Adóbélyegző típusa VATManagement=Forgalmi adó menedzsment -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. +VATIsUsedDesc=Alapértelmezés szerint a potenciális ügyfelek, számlák, megrendelések stb. létrehozásakor a forgalmi adó kulcsa az aktív standard szabályt követi:
    Ha az eladót nem kell forgalmi adónak fizetni, akkor az áfa alapértelmezés szerint 0. Szabály vége.
    Ha a (eladó országa = vevő országa), akkor a forgalmi adó alapértelmezés szerint megegyezik a termék forgalmi adójával az eladó országában. A szabály vége.
    Ha az eladó és a vevő is az Európai Közösségben tartózkodik, és az áruk szállítással kapcsolatos termékek (fuvarozás, szállítás, légitársaság), az alapértelmezett áfa 0. Ez a szabály az eladó országától függ - kérjük, forduljon hozzá a könyvelőddel. Az áfát a vevőnek kell megfizetnie országa vámhivatalának, nem pedig az eladónak. A szabály vége.
    Ha az eladó és a vevő is az Európai Közösségben tartózkodik, és a vevő nem cég (bejegyzett Közösségen belüli áfaszámmal), akkor az áfa alapértelmezés szerint az eladó országának áfakulcsa. Szabály vége.
    Ha az eladó és a vevő is az Európai Közösségben tartózkodik, és a vevő egy cég (bejegyzett közösségen belüli adószámmal), akkor az áfa alapértelmezés szerint 0. A szabály vége.
    Minden más esetben a javasolt alapértelmezett forgalmi adó=0. A szabály vége. +VATIsNotUsedDesc=Alapértelmezés szerint a javasolt forgalmi adó 0, amely olyan esetekben használható, mint egyesületek, magánszemélyek vagy kisvállalatok. +VATIsUsedExampleFR=Franciaországban olyan vállalatokat vagy szervezeteket jelent, amelyek valódi adórendszerrel (egyszerűsített valós vagy normál reál) rendelkeznek. Olyan rendszer, amelyben az áfát bevallják. +VATIsNotUsedExampleFR=Franciaországban olyan egyesületeket jelent, amelyek nem forgalmi adót jelentenek be, vagy olyan vállalatokat, szervezeteket vagy szabadfoglalkozásúakat, amelyek a mikrovállalkozási adórendszert (franchise forgalmi adót) választották és franchise forgalmi adót fizettek forgalmi adóbevallás nélkül. Ez a választás a „Nem alkalmazandó forgalmi adó – CGI art-293B” hivatkozást jeleníti meg a számlákon. ##### Local Taxes ##### -TypeOfSaleTaxes=Type of sales tax +TypeOfSaleTaxes=A forgalmi adó típusa LTRate=Arány -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 +LocalTax1IsNotUsed=Ne használjon második adót +LocalTax1IsUsedDesc=Második adónem használata (az elsőtől eltérő) +LocalTax1IsNotUsedDesc=Ne használjon más típusú adót (az elsőtől eltérő) +LocalTax1Management=Második adónem 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 +LocalTax2IsNotUsed=Ne használjon harmadik adót +LocalTax2IsUsedDesc=Harmadik adónem használata (az elsőtől eltérő) +LocalTax2IsNotUsedDesc=Ne használjon más típusú adót (az elsőtől eltérő) +LocalTax2Management=Harmadik adónem LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=RE menedzsment -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=Az RE kamatláb alapértelmezés szerint ügyletek, számlák, megbízások stb. létrehozásakor az aktív standard szabályt követi:
    Ha a vevőre nem vonatkozik RE, akkor az RE alapértelmezés szerint 0. A szabály vége.
    Ha a vevő ki van téve az RE-nek, akkor alapértelmezés szerint az RE. A szabály vége.
    LocalTax1IsNotUsedDescES=Alapértelmezésben a javasolt RE 0.. Vége a szabály. LocalTax1IsUsedExampleES=Spanyolországban vannak szakemberek figyelemmel néhány konkrét részeit spanyol IAE. LocalTax1IsNotUsedExampleES=Spanyolországban ezt a szakmai és a társadalmak és bizonyos részei a spanyol IAE. LocalTax2ManagementES=IRPF menedzsment -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=Az IRPF-árfolyam alapértelmezés szerint a potenciális ügyfelek, számlák, megbízások stb. létrehozásakor az aktív standard szabályt követi:
    Ha az eladóra nem vonatkozik az IRPF, akkor az IRPF alapértelmezés szerint 0. A szabály vége.
    Ha az eladó IRPF-nek van kitéve, akkor alapértelmezés szerint az IRPF. A szabály vége.
    LocalTax2IsNotUsedDescES=Alapértelmezésben a javasolt IRPF 0. Vége a szabály. LocalTax2IsUsedExampleES=Spanyolországban, szabadúszók és független szakemberek, akik szolgáltatásokat nyújtanak és a vállalatok akik úgy döntöttek, az adórendszer a modulok. -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 +LocalTax2IsNotUsedExampleES=Spanyolországban olyan vállalkozásokról van szó, amelyek nem tartoznak a modulokból álló adórendszer hatálya alá. +RevenueStampDesc=Az "adóbélyeg" vagy a "bevételi bélyeg" egy számlánkénti fix adó (nem függ a számla összegétől). Ez lehet százalékos adó is, de a második vagy harmadik adónem használata jobb százalékos adó esetén, mivel az adójegyek nem nyújtanak jelentést. Csak néhány országban alkalmazzák ezt az adót. +UseRevenueStamp=Használjon adóbélyeget +UseRevenueStampExample=Az adójegy értéke alapértelmezés szerint a szótárak beállításaiban van megadva (%s - %s - %s) +CalcLocaltax=Jelentések a helyi adókról +CalcLocaltax1=Értékesítés – vásárlások +CalcLocaltax1Desc=A helyi adók jelentések kiszámítása a helyi adók értékesítése és a helyi adók vásárlása közötti különbséggel történik CalcLocaltax2=Beszerzések -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases +CalcLocaltax2Desc=A helyi adók jelentései a helyi adókból származó vásárlások összességét jelentik CalcLocaltax3=Eladások -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 +CalcLocaltax3Desc=A helyi adók jelentései a helyi adók összesített értékesítését jelentik +NoLocalTaxXForThisCountry=Az adóbeállítások szerint (lásd %s - %s - %s) az Ön országának nem kell ilyen típusú adót alkalmaznia LabelUsedByDefault=Label az alap, ha nincs fordítás megtalálható a kód LabelOnDocuments=Címke dokumentumok LabelOrTranslationKey=Címke vagy fordítási kulcs ValueOfConstantKey=Egy konfigurációs konstans értéke -ConstantIsOn=Option %s is on +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 @@ -1164,17 +1174,17 @@ LoginPage=Bejelentkezési oldal BackgroundImageLogin=Háttérkép PermanentLeftSearchForm=Állandó keresési űrlapot baloldali menüben DefaultLanguage=Alapértelmezett nyelv -EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships +EnableMultilangInterface=Engedélyezze a többnyelvű támogatást az ügyfél- vagy szállítói kapcsolatokhoz EnableShowLogo=Mutassa meg a vállalati logót a menüben CompanyInfo=Cég / Szervezet -CompanyIds=Company/Organization identities +CompanyIds=Vállalati/szervezeti identitás CompanyName=Név CompanyAddress=Cím CompanyZip=Zip CompanyTown=Város CompanyCountry=Ország CompanyCurrency=Fő valuta -CompanyObject=Object of the company +CompanyObject=A társaság tárgya IDCountry=Országazonosító Logo=Logó LogoDesc=A cég fő logója. A létrehozott dokumentumokban felhasználásra kerülnek (PDF, ...) @@ -1184,97 +1194,98 @@ DoNotSuggestPaymentMode=Ne azt NoActiveBankAccountDefined=Nincs aktív bankszámla definiált OwnerOfBankAccount=Tulajdonosa bankszámla %s BankModuleNotActive=Bankszámlák modul nincs engedélyezve -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=A "%s" link megjelenítése +ShowBugTrackLinkDesc=Hagyja üresen, hogy ne jelenítse meg ezt a hivatkozást, használja a „github” értéket a Dolibarr projekt hivatkozásához, vagy adjon meg közvetlenül egy „https://...” URL-t. Alerts=Figyelmeztetések DelaysOfToleranceBeforeWarning=Késleltetés a következő figyelmeztető riasztás megjelenése előtt: DelaysOfToleranceDesc=Állítsa be a késleltetést, mielőtt az %s riasztási ikon megjelenik a képernyőn a késésben lévő elemnél. Delays_MAIN_DELAY_ACTIONS_TODO=A tervezett események (napirend események) még nem fejeződtek be Delays_MAIN_DELAY_PROJECT_TO_CLOSE=A projektet nem zárták le időben Delays_MAIN_DELAY_TASKS_TODO=A tervezett feladat (projektfeladatok) nem fejeződött be -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=A megrendelés nem került feldolgozásra -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=A megrendelés nem került feldolgozásra +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=A rendelés feldolgozása nem történt meg +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=A megrendelés feldolgozása nem történt meg Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Az ajánlat nincs lezárva Delays_MAIN_DELAY_PROPALS_TO_BILL=Az ajánlat nincs számlázva -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Szolgáltatás az aktiváláshoz +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Aktiválandó szolgáltatás Delays_MAIN_DELAY_RUNNING_SERVICES=Lejárt szolgáltatás -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. +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Kifizetetlen szállítói számla +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Kifizetetlen ügyfélszámla +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Banki egyeztetés függőben +Delays_MAIN_DELAY_MEMBERS=Késedelmes tagdíj +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=A csekk befizetése nem történt meg +Delays_MAIN_DELAY_EXPENSEREPORTS=Költségjelentés jóváhagyásra +Delays_MAIN_DELAY_HOLIDAYS=Hagyja a kérelmeket jóváhagyásra +SetupDescription1=A Dolibarr használatának megkezdése előtt meg kell határozni néhány kezdeti paramétert, és engedélyezni/konfigurálni kell a modulokat. +SetupDescription2=A következő két rész kötelező (a Setup menü két első bejegyzése): +SetupDescription3=%s -> %s

    Az alkalmazás alapértelmezett viselkedésének testreszabásához használt alapvető paraméterek (pl. az országgal kapcsolatos funkciókhoz). +SetupDescription4=%s -> %s

    Ez a szoftver számos modul/alkalmazás készlete. Az Ön igényeihez kapcsolódó modulokat engedélyezni és konfigurálni kell. Ezen modulok aktiválásával menübejegyzések jelennek meg. SetupDescription5=Az "Egyéb beállítás" menü az opcionális paramétereket tartalmazza. 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=Az alkalmazás alapértelmezett viselkedésének testreszabásához használt alapvető paraméterek (pl. az országgal kapcsolatos szolgáltatásokhoz). +SetupDescription4b=Ez a szoftver sok modulból/alkalmazásból álló csomag. Az Ön igényeihez kapcsolódó modulokat engedélyezni és konfigurálni kell. Ezen modulok aktiválásával menübejegyzések jelennek meg. +AuditedSecurityEvents=Auditált biztonsági események +NoSecurityEventsAreAduited=Nincsenek biztonsági események auditálva. A %s menüből engedélyezheti őket +Audit=Biztonsági események InfoDolibarr=A Dolibarr jellemzői InfoBrowser=A böngésző jellemzői InfoOS=Az operációs rendszer jellemzői InfoWebServer=A webszerver jellemzői InfoDatabase=Az adatbázis jellemzői InfoPHP=A PHP jellemzői -InfoPerf=About Performances -InfoSecurity=About Security +InfoPerf=Az előadásokról +InfoSecurity=A biztonságról 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 -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=Trackable security events +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=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. +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. AccountantDesc=Ha van külső könyvelője / könyvvizsgálója, itt szerkesztheti annak adatait. AccountantFileNumber=Könyvelői kód -DisplayDesc=Parameters affecting the look and presentation of the application can be modified here. +DisplayDesc=Az alkalmazás megjelenését és megjelenítését befolyásoló paraméterek itt módosíthatók. AvailableModules=Elérhető alkalmazások / modulok ToActivateModule=Ha aktiválni modulok, menjen a Setup Terület (Home-> Beállítások-> Modulok). SessionTimeOut=A munkamenet lejárt -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=Ez a szám garantálja, hogy a munkamenet soha nem fog lejárni a késleltetés előtt, ha a munkamenet-tisztítót az Internal PHP session Cleaner végzi (és semmi más). A belső PHP munkamenet-tisztító nem garantálja, hogy a munkamenet ezen késleltetés után lejár. Ez a késleltetés után, és a munkamenet-tisztító futtatásakor lejár, tehát minden %s/%s hozzáférés, de csak más munkamenetek által végzett hozzáférés során (ha az érték 0, az a munkamenet törlését jelenti a munkamenetet csak egy külső folyamat hajtja végre).
    Megjegyzés: néhány külső munkamenet-tisztító mechanizmussal rendelkező szerveren (cron alatt debian, ubuntu...) a munkamenetek megsemmisülhetnek egy külső beállítás által meghatározott időtartam után, nem nem számít, mi az itt megadott érték. +SessionsPurgedByExternalSystem=Úgy tűnik, hogy ezen a szerveren a munkameneteket egy külső mechanizmus (cron alatt debian, ubuntu...) tisztítja, valószínűleg minden %s másodpercben (= a session.gc_maxlifetime paraméter értéke ), így az érték módosításának nincs hatása. Meg kell kérnie a kiszolgáló rendszergazdáját, hogy módosítsa a munkamenet késleltetését. TriggersAvailable=Elérhető triggerek -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=A triggerek olyan fájlok, amelyek a htdocs/core/triggers könyvtárba másolás után módosítják a Dolibarr munkafolyamat viselkedését. Dolibarr eseményeken aktivált új akciókat valósítanak meg (új cég létrehozása, számla érvényesítése, ...). TriggerDisabledByName=Triggerek ebben a fájlban vannak tiltva a NORUN-utótag a nevükben. TriggerDisabledAsModuleDisabled=Triggerek ebben a fájlban vannak tiltva, mint %s modul le van tiltva. TriggerAlwaysActive=Triggerek ebben a fájlban mindig aktív, függetlenül az aktivált Dolibarr modulokat. TriggerActiveAsModuleActive=Triggerek ebben a fájlban vannak aktív %s modul engedélyezve van. GeneratedPasswordDesc=Válassza ki a módszert a jelszavak automatikus létrehozásához. -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=Illessze be az összes referenciaadatot. Értékeit hozzáadhatja az alapértelmezett értékekhez. +ConstDesc=Ezen az oldalon olyan paramétereket szerkeszthet (felülbírálhat), amelyek más oldalakon nem állnak rendelkezésre. Ezek többnyire csak a fejlesztők/haladó hibaelhárítás számára fenntartott paraméterek. +MiscellaneousDesc=Az összes többi biztonsággal kapcsolatos paraméter itt kerül meghatározásra. LimitsSetup=Korlátok / Precision beállítás -LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here +LimitsDesc=Itt meghatározhatja a Dolibarr által használt korlátokat, pontosságokat és optimalizációkat MAIN_MAX_DECIMALS_UNIT=Tizedesjegyek száma az egységárakban MAIN_MAX_DECIMALS_TOT=Tizedesjegyek száma az összegzett árban -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) +MAIN_MAX_DECIMALS_SHOWN=Max. tizedesjegyek a képernyőn megjelenő árakhoz. Ha azt szeretné, hogy a "..." a csonka ár utótagjaként szerepeljen, adjon hozzá egy hárompontos jelet ... e paraméter után (pl. "2..."). +MAIN_ROUNDING_RULE_TOT=A kerekítési tartomány lépése (olyan országokban, ahol a kerekítés nem a 10-es alapon történik. Például adjon 0,05-öt, ha a kerekítés 0,05 lépéssel történik) UnitPriceOfProduct=Nettó egységár egy termék -TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding +TotalPriceAfterRounding=Teljes ár (nem/áfa/áfával) kerekítés után ParameterActiveForNextInputOnly=Paraméter hatékony következő bemeneti csak -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=Nincs biztonsági esemény naplózva. Ez normális, ha az Audit nincs engedélyezve a "Beállítás - Biztonság - Események" oldalon. +NoEventFoundWithCriteria=Ennél a keresési feltételnél nem található biztonsági esemény. SeeLocalSendMailSetup=Nézze meg a helyi sendmail beállítása -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. +BackupDesc=A Dolibarr telepítés teljes biztonsági mentése két lépést igényel. +BackupDesc2=Készítsen biztonsági másolatot az összes feltöltött és generált fájlt tartalmazó "documents" könyvtár (%s) tartalmáról. Ez magában foglalja az 1. lépésben létrehozott összes kiíratási fájlt is. Ez a művelet több percig is eltarthat. +BackupDesc3=Az adatbázis (%s) szerkezetéről és tartalmáról készítsen biztonsági másolatot egy dump fájlba. Ehhez használhatja a következő asszisztenst. BackupDescX=Az archivált könyvtárat biztonságos helyen kell tárolni. BackupDescY=A generált dump fájlt kell tárolni biztonságos helyen. BackupPHPWarning=A biztonsági mentés nem garantálható ezzel a módszerrel. Az előző ajánlott. RestoreDesc=A Dolibarr biztonsági másolatának visszaállításához két lépés szükséges. RestoreDesc2=Másolja vissza a "documents" könyvtár biztonsági másolatát (például zip fájl) egy új Dolibarr telepítésre vagy a jelenlegi dokumentum könyvtárba (%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. +RestoreDesc3=Állítsa vissza az adatbázis szerkezetét és adatait egy biztonsági mentési kiíratási fájlból az új Dolibarr telepítés adatbázisába vagy a jelenlegi telepítés adatbázisába (%s). Figyelmeztetés, a visszaállítás befejezése után a biztonsági mentés időpontjában/telepítéskor meglévő bejelentkezési/jelszót kell használnia az újbóli csatlakozáshoz.
    A biztonsági mentési adatbázis visszaállításához a jelenlegi telepítésbe kövesse ezt az asszisztenst. RestoreMySQL=MySQL import ForcedToByAModule=Ez a szabály arra kényszerül, hogy %s által aktivált modul -ValueIsForcedBySystem=This value is forced by the system. You can't change it. +ValueIsForcedBySystem=Ezt az értéket a rendszer kényszeríti ki. Nem tudod megváltoztatni. PreviousDumpFiles=Meglévő biztonsági mentési fájlok PreviousArchiveFiles=Meglévő archív fájlok WeekStartOnDay=A hét első napja @@ -1282,12 +1293,12 @@ RunningUpdateProcessMayBeRequired=Úgy tűnik, hogy szükséges a frissítési f YouMustRunCommandFromCommandLineAfterLoginToUser=Kell futtatni ezt a parancsot a parancssorból bejelentkezés után a shell felhasználói %s vagy hozzá kell-W opció végén parancsot, hogy %s jelszót. YourPHPDoesNotHaveSSLSupport=SSL funkció nem áll rendelkezésre a PHP DownloadMoreSkins=További bőrök letöltése -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=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 TranslationUncomplete=Részleges fordítás -MAIN_DISABLE_METEO=Disable weather thumb +MAIN_DISABLE_METEO=Az időjárásmutató kikapcsolása MeteoStdMod=Normál mód MeteoStdModEnabled=A normál mód engedélyezve MeteoPercentageMod=Százalékos mód @@ -1296,17 +1307,17 @@ MeteoUseMod=Kattintson az %s használatához TestLoginToAPI=Az API belépéshez teszt ProxyDesc=A Dolibarr egyes funkciói internet-hozzáférést igényelnek. Adja meg az internetkapcsolat paramétereit, például szükség esetén egy proxykiszolgálón keresztül történő hozzáférést. ExternalAccess=Külső / Internet hozzáférés -MAIN_PROXY_USE=Használjon proxykiszolgálót (különben a hozzáférés közvetlen az internetre) +MAIN_PROXY_USE=Használjon proxyszervert (egyébként a hozzáférés közvetlenül az internethez) MAIN_PROXY_HOST=Proxy szerver: Név / Cím MAIN_PROXY_PORT=Proxy szerver: Port MAIN_PROXY_USER=Proxy szerver: Bejelentkezés / Felhasználó MAIN_PROXY_PASS=Proxy szerver: Jelszó -DefineHereComplementaryAttributes=Define any additional / custom attributes that must be added to: %s +DefineHereComplementaryAttributes=Határozzon meg minden további / egyéni attribútumot, amelyet hozzá kell adni a következőhöz: %s ExtraFields=Kiegészítő tulajdonságok -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsLinesRec=Complementary attributes (templates invoices lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) +ExtraFieldsLines=Kiegészítő attribútumok (sorok) +ExtraFieldsLinesRec=Kiegészítő attribútumok (sablonok számlasorai) +ExtraFieldsSupplierOrdersLines=Kiegészítő attribútumok (rendelési sorok) +ExtraFieldsSupplierInvoicesLines=Kiegészítő attribútumok (számla sorai) ExtraFieldsThirdParties=Kiegészítő tulajdonságok (partner) ExtraFieldsContacts=Kiegészítő tulajdonságok (névjegyek / cím) ExtraFieldsMember=Kiegészítő tulajdonságok (tag) @@ -1318,27 +1329,28 @@ ExtraFieldsSupplierInvoices=Kiegészítő tulajdonságok (számlák) ExtraFieldsProject=Kiegészítő tulajdonságok (projektek) ExtraFieldsProjectTask=Kiegészítő tulajdonságok (feladatok) ExtraFieldsSalaries=Kiegészítő tulajdonságok (fizetések) -ExtraFieldHasWrongValue=A(z) %s attribútumnak rossz értéke van. -AlphaNumOnlyLowerCharsAndNoSpace=csak alfanumerikus és kisbetűs karakterek szóköz nélkül +ExtraFieldHasWrongValue=A %s attribútum értéke hibás. +AlphaNumOnlyLowerCharsAndNoSpace=Csak alfanumerikus és kisbetűs karakterek szóköz nélkül SendmailOptionNotComplete=Figyelem, egyes Linux rendszereken, hogy küldjön e-mailt az e-mail, sendmail beállítás végrehajtása lehetőséget kell conatins-ba (paraméter mail.force_extra_parameters be a php.ini fájl). Ha néhány címzett nem fogadja az üzeneteket, próbáld meg szerkeszteni ezt a PHP paraméter = mail.force_extra_parameters-ba). PathToDocuments=A dokumentumok elérési útvonala PathDirectory=Könyvtár -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=A "PHP mail direct" módszerrel történő e-mailek küldése olyan e-mail üzenetet generál, amelyet egyes fogadó levelezőszerverek esetleg nem elemeznek megfelelően. Az eredmény az, hogy egyes leveleket nem tudnak elolvasni az ilyen hibás platformokon üzemeltetett emberek. Ez a helyzet néhány internetszolgáltató esetében (pl.: Orange Franciaországban). Ez nem a Dolibarrral vagy a PHP-vel van probléma, hanem a fogadó levelezőszerverrel. Azonban hozzáadhat egy MAIN_FIX_FOR_BUGGED_MTA opciót az 1-hez a Setup - Other menüben, hogy ennek elkerülése érdekében módosítsa a Dolibarr-t. Azonban problémákat tapasztalhat más, szigorúan az SMTP szabványt használó kiszolgálókkal. A másik megoldás (ajánlott) az "SMTP socket library" módszer alkalmazása, aminek nincs hátránya. TranslationSetup=Fordítási beállítások TranslationKeySearch=Fordítási kulcs vagy karakterlánc keresése TranslationOverwriteKey=A fordító karakterlánc felülírása -TranslationDesc=A megjelenítési nyelv beállítása:
    * Alapértelmezett/Rendszer: menü Nyítólap -> Beállítás -> Kijelző
    * Felhasználónként: Kattintson a felhasználónévre a képernyő tetején, majd a Kártya gombra kattintva keresse a Megjelenítési beállítások. -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 +TranslationDesc=A megjelenítési nyelv beállítása:
    * Alapértelmezett/Rendszerszinten: menü Főoldal -> Beállítás -> Megjelenítés
    * Felhasználónként: Kattintson a képernyő tetején lévő felhasználónévre, és módosítsa a Felhasználói megjelenítés beállítása lapon a felhasználói kártyán. +TranslationOverwriteDesc=A következő táblázatot kitöltő karakterláncokat is felülírhatja. Válassza ki a nyelvet a "%s" legördülő menüből, szúrja be a fordítási kulcsot a "%s"-be, az új fordítást pedig a "%s"-be. +TranslationOverwriteDesc2=A másik lap segítségével megtudhatja, melyik fordítókulcsot kell használni TranslationString=Fordító karakterlánc CurrentTranslationString=Jelenlegi fordító karakterlánc -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show +WarningAtLeastKeyOrTranslationRequired=A kulcshoz vagy a fordítási karakterlánchoz legalább egy keresési feltétel szükséges +NewTranslationStringToShow=Megjelenítendő új fordítási karakterlánc OriginalValueWas=Az eredeti fordítás felülírva. Az eredeti érték:

    %s TransKeyWithoutOriginalValue=Új fordítást adott meg a(z) '%s' fordítási kulcsra, amely egyetlen nyelvi fájlban sem létezik. -TitleNumberOfActivatedModules=Activated modules -TotalNumberOfActivatedModules=Activated modules: %s / %s +TitleNumberOfActivatedModules=Aktivált modulok +TotalNumberOfActivatedModules=Aktivált modulok: %s / %s YouMustEnableOneModule=Legalább egy modult engedélyezni kell +YouMustEnableTranslationOverwriteBefore=Először engedélyeznie kell a fordítás felülírását, hogy lecserélhesse a fordítást ClassNotFoundIntoPathWarning=A(z) %s osztály nem található a PHP elérési útján YesInSummer=Nyáron OnlyFollowingModulesAreOpenedToExternalUsers=Megjegyzés: csak a következő modulok érhetők el a külső felhasználók számára (függetlenül az ilyen felhasználók engedélyeitől), és csak akkor, ha engedélyeket kapnak:
    @@ -1347,28 +1359,28 @@ ConditionIsCurrently=Az állapot jelenleg %s YouUseBestDriver=A(z) %s illesztőprogramot használja, amely a jelenleg elérhető legjobb illesztőprogram. YouDoNotUseBestDriver=A(z) %s illesztőprogramot használja, de az %s illesztőprogram használata ajánlott. NbOfObjectIsLowerThanNoPb=Csak %s %s van az adatbázisban. Ez nem igényel különösebb optimalizálást. -ComboListOptim=Combo list loading optimization +ComboListOptim=Kombinált lista betöltésének optimalizálása SearchOptim=Keresés optimalizálása -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. +YouHaveXObjectUseComboOptim=%s %s van az adatbázisban. Beléphet a modul beállításába, hogy engedélyezze a kombinált lista betöltését a billentyűlenyomott eseménynél. +YouHaveXObjectUseSearchOptim=%s %s van az adatbázisban. Hozzáadhatja a %s állandót 1-hez a Home-Setup-Other menüpontban. +YouHaveXObjectUseSearchOptimDesc=Ez a keresést a karakterláncok elejére korlátozza, ami lehetővé teszi az adatbázis számára, hogy indexeket használjon, és azonnali választ kell kapnia. +YouHaveXObjectAndSearchOptimOn=%s %s van az adatbázisban, és a %s állandó értéke %s a Home-Setup-Other menüben. BrowserIsOK=A(z) %s webböngészőt használja. Ez a böngésző rendben van a biztonság és a teljesítmény szempontjából. BrowserIsKO=Az %s webböngészőt használja. Ez a böngésző köztudottan rossz választás a biztonság, a teljesítmény és a megbízhatóság szempontjából. Javasoljuk a Firefox, a Chrome, az Opera vagy a Safari használatát. PHPModuleLoaded=Az %s PHP összetevő betöltődött -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. +PreloadOPCode=Előre betöltött OPCode használatos +AddRefInList=Megjelenítés Ügyfél/Szállító ref. kombinált listákba.
    A harmadik felek a következő névformátumban jelennek meg: "CC12345 - SC45678 - The Big Company corp." "The Big Company corp" helyett. +AddVatInList=Vevő/szállító adószám megjelenítése kombinált listákban. +AddAdressInList=Az Ügyfél/Szállító címének megjelenítése kombinált listákban.
    A harmadik felek névformátuma „The Big Company corp. – 21 jump street 123456 Big Town – USA” lesz a „The Big Company corp” helyett. +AddEmailPhoneTownInContactList=A kapcsolattartói e-mail-cím (vagy telefonszámok, ha nincs megadva) és a város információs listájának megjelenítése (kiválasztott lista vagy kombinált mező)
    A névjegyek névformátuma "Dupond Durand - dupond.durand@email.com - Párizs" vagy "Dupond Durand - 06 07 59 65 66 - Párizs" a „Dupond Durand" helyett. +AskForPreferredShippingMethod=Kérjen harmadik felek számára preferált szállítási módot. FieldEdition=%s mező szerkesztése -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -NumberingModules=Numbering models -DocumentModules=Document models +FillThisOnlyIfRequired=Példa: +2 (csak akkor töltse ki, ha időzóna-eltolási problémákat tapasztal) +GetBarCode=Szerezzen vonalkódot +NumberingModules=Számozási modellek +DocumentModules=Dokumentummodellek ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Belső Dolibarr algoritmus szerint generált jelszót ad vissza: %s karakter, amely megosztott számokat és kisbetűs karaktereket tartalmaz. 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 @@ -1378,9 +1390,9 @@ RuleForGeneratedPasswords=A jelszavak létrehozására és érvényesítésére DisableForgetPasswordLinkOnLogonPage=Ne jelenítse meg az "Elfelejtett jelszó" linket a Bejelentkezés oldalon UsersSetup=Felhasználók modul beállítása UserMailRequired=Új felhasználó létrehozásához e-mail szükséges -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 +UserHideInactive=Az inaktív felhasználók elrejtése az összes kombinált felhasználólistáról (Nem ajánlott: ez azt jelenti, hogy egyes oldalakon nem fog tudni szűrni vagy keresni a régi felhasználók között) +UsersDocModules=Felhasználói rekordból generált dokumentumok dokumentumsablonjai +GroupsDocModules=Csoportrekordból generált dokumentumok dokumentumsablonjai ##### HRM setup ##### HRMSetup=HRM modul beállításai ##### Company setup ##### @@ -1390,18 +1402,18 @@ AccountCodeManager=Opciók a vevó/eladó elszámolási kódok automatikus gener NotificationsDesc=Az e-mail értesítések automatikusan elküldhetők egyes Dolibarr eseményekről.
    Az értesítések címzettjei meghatározhatók: NotificationsDescUser=* Felhasználónként, egy felhasználó egyszerre. NotificationsDescContact=* partner (vevő vagy eladó) kapcsolatonként, egy kapcsolat egy időben. -NotificationsDescGlobal=* or by setting global email addresses in the setup page of the module. +NotificationsDescGlobal=* vagy globális e-mail címek beállításával a modul beállítási oldalán. ModelModules=Dokumentumsablonok DocumentModelOdt=Generáljon dokumentumokat az OpenDocument sablonokból (.ODT / .ODS fájlok: LibreOffice, OpenOffice, KOffice, TextEdit, ...) WatermarkOnDraft=Vízjel dokumentum tervezetét -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules for Professional IDs +JSOnPaimentBill=Aktiválja a funkciót a fizetési sorok automatikus kitöltéséhez a fizetési űrlapon +CompanyIdProfChecker=A szakmai igazolványok szabályai MustBeUnique=Egyedinek kell lennie? -MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? -MustBeInvoiceMandatory=Mandatory to validate invoices? +MustBeMandatory=Kötelező harmadik felek létrehozása (ha van adószám vagy cégtípus)? +MustBeInvoiceMandatory=Kötelező a számlák érvényesítése? TechnicalServicesProvided=Technikai szolgáltatások #####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. +WebDAVSetupDesc=Ez a hivatkozás a WebDAV-könyvtár eléréséhez. Tartalmaz egy "nyilvános" könyvtárat, amely minden felhasználó számára elérhető, aki ismeri az URL-t (ha a nyilvános könyvtárhoz való hozzáférés engedélyezett), valamint egy "privát" könyvtárat, amelyhez meglévő bejelentkezési fiókra/jelszóra van szüksége. WebDavServer=A(z) %s szerver gyökér URL-je: %s ##### Webcal setup ##### WebCalUrlForVCalExport=Az export linket %s formátumban elérhető a következő linkre: %s @@ -1409,66 +1421,68 @@ WebCalUrlForVCalExport=Az export linket %s formátumban elérhető a köv BillsSetup=Számlák modul beállítása BillsNumberingModule=Számlák és jóváírási számozási modul BillsPDFModules=Számla dokumentumok modellek -BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type -PaymentsPDFModules=Payment documents models +BillsPDFModulesAccordindToInvoiceType=Számla bizonylat modellek számla típus szerint +PaymentsPDFModules=Fizetési bizonylatok modelljei ForceInvoiceDate=Kényszer számla keltétől annak érvényességét -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=Alapértelmezés szerint javasolt fizetési mód a számlán, ha nincs megadva a számlán +SuggestPaymentByRIBOnAccount=Javasoljon számlafelvétellel történő fizetést +SuggestPaymentByChequeToAddress=Fizetési javaslat csekkel a címre FreeLegalTextOnInvoices=Szabad szöveg a számlán WatermarkOnDraftInvoices=Vízjel a számlavázlatokon (nincs, ha üres) -PaymentsNumberingModule=Payments numbering model +PaymentsNumberingModule=Kifizetések számozási modellje SuppliersPayment=Szállítói kifizetések -SupplierPaymentSetup=Vendor payments setup +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. ##### Proposals ##### PropalSetup=A kereskedelmi modul beállítási javaslatok ProposalsNumberingModules=Üzleti ajánlat számozási modulok ProposalsPDFModules=Üzleti ajánlat dokumentumok modellek -SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined on the proposal +SuggestedPaymentModesIfNotDefinedInProposal=Alapértelmezés szerint javasolt fizetési mód az ajánlatban, ha nincs megadva az ajánlatban FreeLegalTextOnProposal=Szabad szöveg a kereskedelmi javaslatok -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal +WatermarkOnDraftProposal=Vízjel az árajánlatok tervezetén (ha üres, nincs) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Kérje bankszámla célját az ajánlathoz ##### 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 +SupplierProposalSetup=Ár kérelem beszállítói modul beállítása +SupplierProposalNumberingModules=Ár kérelem szállítók számozási modellek +SupplierProposalPDFModules=Ár kérelem beszállítók dokumentum modellek +FreeLegalTextOnSupplierProposal=Szabad szöveg a beszállítók ár kéreleméhez +WatermarkOnDraftSupplierProposal=Vízjel az ár kérelemek tervezetén a szállítókon (nincs, ha üres) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Az ár kérelemhez kérje bankszámla rendeltetési helyét +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Rendeléshez kérje a raktári forrást ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Kérje bankszámla rendeltetési helyét ##### Orders ##### -SuggestedPaymentModesIfNotDefinedInOrder=Suggested payments mode on sales order by default if not defined on the order -OrdersSetup=Sales Orders management setup +SuggestedPaymentModesIfNotDefinedInOrder=Alapértelmezés szerint javasolt fizetési mód az értékesítési rendelésen, ha nincs megadva a rendelésen +OrdersSetup=Értékesítési rendelések kezelésének beállítása OrdersNumberingModules=Megrendelés számozási modulok OrdersModelModule=Rendelés dokumentumok modellek FreeLegalTextOnOrders=Szabad szöveg rendelés -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) +WatermarkOnDraftOrders=Vízjel a rendelésvázlatokon (nincs, ha üres) ShippableOrderIconInList=Megrendelés szállíthatóságát jelző ikon hozzáadása a megrendelések listájához -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Kérje bankszámla rendeltetési helyét ##### Interventions ##### InterventionsSetup=Beavatkozások modul beállítása FreeLegalTextOnInterventions=Szabad az intervenciós szöveges dokumentumok FicheinterNumberingModules=Beavatkozás számozási modulok TemplatePDFInterventions=Beavatkozás kártya dokumentumok modellek -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) +WatermarkOnDraftInterventionCards=Vízjel a beavatkozási kártya dokumentumokon (nincs, ha üres) ##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup +ContractsSetup=Szerződések/előfizetések modul beállítása ContractsNumberingModules=Szerződések számozási modulok -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) +TemplatePDFContracts=Szerződési dokumentumok modelljei +FreeLegalTextOnContracts=Szabad szöveg a szerződésekről +WatermarkOnDraftContractCards=Vízjel a szerződéstervezeteken (nincs, ha üres) ##### Members ##### MembersSetup=Tagok modul beállítása MemberMainOptions=Fő opciók AdherentLoginRequired= Készítsen egy Login minden tagja számára -AdherentMailRequired=Email required to create a new member +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=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=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 +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 ##### LDAPSetup=LDAP beállítása LDAPGlobalParameters=Globális paraméterek @@ -1486,17 +1500,17 @@ LDAPSynchronizeUsers=Szervezet a felhasználók LDAP LDAPSynchronizeGroups=Csoportok szervezése az LDAP-ban LDAPSynchronizeContacts=Kapcsolatok szervezése az LDAP-ban LDAPSynchronizeMembers=Szervezet alapító tagjai az LDAP-ban -LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP +LDAPSynchronizeMembersTypes=Az alapítványi tagtípusok rendszerezése LDAP-ban LDAPPrimaryServer=Elsődleges szerver LDAPSecondaryServer=Másodlagos szerver LDAPServerPort=Szerver port -LDAPServerPortExample=Standard or StartTLS: 389, LDAPs: 636 +LDAPServerPortExample=Normál vagy StartTLS: 389, LDAP: 636 LDAPServerProtocolVersion=Protocol version LDAPServerUseTLS=Használja a TLS -LDAPServerUseTLSExample=Your LDAP server use StartTLS +LDAPServerUseTLSExample=Az LDAP-kiszolgáló StartTLS-t használ 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) +LDAPAdminDnExample=Teljes DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) LDAPPassword=Rendszergazda jelszó LDAPUserDn=A felhasználók DN LDAPUserDnExample=Teljes DN (ex: ou = Users, dc = társadalom, dc = com) @@ -1510,7 +1524,7 @@ LDAPDnContactActive=Ismerősök szinkronizálás LDAPDnContactActiveExample=Az aktivált / Unactivated szinkronizálás LDAPDnMemberActive=A képviselők szinkronizálás LDAPDnMemberActiveExample=Az aktivált / Unactivated szinkronizálás -LDAPDnMemberTypeActive=Members types' synchronization +LDAPDnMemberTypeActive=Tagtípusok szinkronizálása LDAPDnMemberTypeActiveExample=Az aktivált / Unactivated szinkronizálás LDAPContactDn=Dolibarr kapcsolatok "DN LDAPContactDnExample=Teljes DN (ex: ou = Contacts, dc = társadalom, dc = com) @@ -1518,8 +1532,8 @@ LDAPMemberDn=Dolibarr tag DN LDAPMemberDnExample=Teljes DN (ex: ou = tagok, dc = társadalom, dc = com) LDAPMemberObjectClassList=ObjectClass listája LDAPMemberObjectClassListExample=Listája objectClass meghatározó adatrekord jellemzői (pl.: felső, vagy felső inetOrgPerson, felhasználó Active Directory) -LDAPMemberTypeDn=Dolibarr members types DN -LDAPMemberTypepDnExample=Complete DN (ex: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeDn=A Dolibarr tagok DN típusokat írnak elő +LDAPMemberTypepDnExample=Teljes DN (ex: ou=memberstypes,dc=example,dc=com) LDAPMemberTypeObjectClassList=ObjectClass listája LDAPMemberTypeObjectClassListExample=Listája objectClass meghatározó adatrekord jellemzői (pl.: felső, groupOfUniqueNames) LDAPUserObjectClassList=ObjectClass listája @@ -1533,15 +1547,15 @@ LDAPTestSynchroContact=Teszt névjegy szinkronizálás LDAPTestSynchroUser=Test felhasználó szinkronizálás LDAPTestSynchroGroup=Teszt csoport szinkronizáció LDAPTestSynchroMember=Teszt tag szinkronizálás -LDAPTestSynchroMemberType=Test member type synchronization -LDAPTestSearch= Test a LDAP search +LDAPTestSynchroMemberType=Teszt tag típusú szinkronizálás +LDAPTestSearch= Tesztelje az LDAP keresést LDAPSynchroOK=A szinkronizálás sikeres teszt LDAPSynchroKO=Nem sikerült a szinkronizálás teszt -LDAPSynchroKOMayBePermissions=Nem sikerült a szinkronizálási teszt. Ellenőrizze, hogy a szerverrel való kapcsolat megfelelően van-e konfigurálva, és lehetővé teszi-e az LDAP frissítéseket +LDAPSynchroKOMayBePermissions=Sikertelen szinkronizálási teszt. Ellenőrizze, hogy a kiszolgálóhoz való kapcsolat megfelelően van-e konfigurálva, és lehetővé teszi-e az LDAP-frissítéseket LDAPTCPConnectOK=TCP csatlakozni az LDAP szerver sikeres (= %s Server, Port = %s) LDAPTCPConnectKO=TCP csatlakozni az LDAP kiszolgáló nem (Server = %s, Port = %s) -LDAPBindOK=Csatlakozás/hitelesítés az LDAP szerverhez sikeres (Szerver = %s, Port = %s, Rendszergazda = %s, Jelszó = %s) -LDAPBindKO=Csatlakozás/hitelesítés az LDAP szerverhez sikertelen (Szerver = %s, Port = %s, Rendszergazda = %s, Jelszó = %s) +LDAPBindOK=Csatlakozás/hitelesítés az LDAP szerverhez sikeres (Szerver=%s, Port=%s, Admin=%s, Jelszó=%s) +LDAPBindKO=A csatlakozás/hitelesítés az LDAP-kiszolgálóhoz nem sikerült (Szerver=%s, Port=%s, Admin=%s, Jelszó=%s) LDAPSetupForVersion3=LDAP-kiszolgáló konfigurálva a 3-as verzió LDAPSetupForVersion2=LDAP-kiszolgáló konfigurálva a 2-es verziója LDAPDolibarrMapping=Dolibarr Mapping @@ -1550,7 +1564,7 @@ LDAPFieldLoginUnix=Bejelentkezés (unix) LDAPFieldLoginExample=Példa: uid LDAPFilterConnection=Keresés szűrő LDAPFilterConnectionExample=Példa: &(objectClass=inetOrgPerson) -LDAPGroupFilterExample=Example: &(objectClass=groupOfUsers) +LDAPGroupFilterExample=Példa: &(objectClass=groupOfUsers) LDAPFieldLoginSamba=Bejelentkezés (samba, ActiveDirectoryba) LDAPFieldLoginSambaExample=Példa: samaccountname LDAPFieldFullname=Keresztnév @@ -1564,7 +1578,7 @@ LDAPFieldNameExample=Példa: sn LDAPFieldFirstName=Keresztnév LDAPFieldFirstNameExample=Példa: keresztnév LDAPFieldMail=E-mail cím -LDAPFieldMailExample=Példa: mail +LDAPFieldMailExample=Példa: e-mail LDAPFieldPhone=Szakmai telefonszám LDAPFieldPhoneExample=Példa: telefonszám LDAPFieldHomePhone=Személyes telefonszám @@ -1578,19 +1592,19 @@ LDAPFieldAddressExample=Példa: utca LDAPFieldZip=Zip LDAPFieldZipExample=Példa: irányítószám LDAPFieldTown=Város -LDAPFieldTownExample=Example: l +LDAPFieldTownExample=Példa: város LDAPFieldCountry=Ország LDAPFieldDescription=Leírás LDAPFieldDescriptionExample=Példa: leírás LDAPFieldNotePublic=Nyilvános jegyzet LDAPFieldNotePublicExample=Példa: nyilvánosjegyzet LDAPFieldGroupMembers= A csoport tagjai -LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldGroupMembersExample= Példa: egyedi tag LDAPFieldBirthdate=Születésének LDAPFieldCompany=Vállalat LDAPFieldCompanyExample=Példa: o LDAPFieldSid=SID -LDAPFieldSidExample=Példa: objectsid +LDAPFieldSidExample=Példa: object sid LDAPFieldEndLastSubscription=Születési előfizetés vége LDAPFieldTitle=Állás pozíció LDAPFieldTitleExample=Példa: cím @@ -1607,56 +1621,56 @@ LDAPDescContact=Ez az oldal lehetővé teszi, hogy meghatározza az LDAP attrib LDAPDescUsers=Ez az oldal lehetővé teszi, hogy meghatározza az LDAP attribútumok név LDAP fa minden egyes adat található Dolibarr felhasználók. LDAPDescGroups=Ez az oldal lehetővé teszi, hogy meghatározza az LDAP attribútumok név LDAP fa minden egyes adat található Dolibarr csoportok. LDAPDescMembers=Ez az oldal lehetővé teszi, hogy meghatározza az LDAP attribútumok név LDAP-fában minden adat megtalálható Dolibarr tagjai modul. -LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members types. +LDAPDescMembersTypes=Ez az oldal lehetővé teszi az LDAP attribútumok nevének meghatározását az LDAP fában a Dolibarr tagtípusokon található minden egyes adathoz. LDAPDescValues=Példaértékek tervezték OpenLDAP az alábbi betöltött sémák: core.schema, cosine.schema, inetorgperson.schema). Ha a thoose értékek és az OpenLDAP, módosíthatja az LDAP konfigurációs file slapd.conf hogy minden thoose sémák betöltve. ForANonAnonymousAccess=A hitelesített hozzáférés (egy írási például) -PerfDolibarr=Teljesítménybeállítás/optimalizálás jelentés -YouMayFindPerfAdviceHere=Ezen az oldalon található néhány ellenőrzés vagy tanácsadás a teljesítményhez kapcsolódóan. -NotInstalled=Not installed. -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. -ApplicativeCache=Alkalmazható gyorsítótár -MemcachedNotAvailable=Nem található alkalmazható gyorsítótár. A teljesítmény javításához telepítheti a Memcached gyorsítótár-kiszolgálót és egy modult, amely képes használni ezt a gyorsítótár-kiszolgálót.
    További információ itt http://wiki.dolibarr.org/index.php/Module_MemCached_EN .
    Vegye figyelembe, hogy sok webtárhely-szolgáltató nem nyújt ilyen gyorsítótár-kiszolgálót. -MemcachedModuleAvailableButNotSetup=Található memcached modul a gyorsítótár-kiszolgálóhoz, de a modul telepítése még nem fejeződött be. -MemcachedAvailableAndSetup=A memcached szerver használatához a memcached modul engedélyezve van. +PerfDolibarr=Teljesítménybeállítási/optimalizálási jelentés +YouMayFindPerfAdviceHere=Ez az oldal a teljesítménnyel kapcsolatos ellenőrzéseket vagy tanácsokat tartalmaz. +NotInstalled=Nincs telepítve. +NotSlowedDownByThis=Ez nem lassítja le. +NotRiskOfLeakWithThis=Nincs a szivárgás veszélye. +ApplicativeCache=Alkalmazási gyorsítótár +MemcachedNotAvailable=Nem található alkalmazás gyorsítótár. Javíthatja a teljesítményt egy Memcached gyorsítótár-kiszolgáló és egy ezt a gyorsítótár-kiszolgálót használó modul telepítésével.
    További információ itt: http: //wiki.dolibarr.org/index.php/Module_MemCached_EN.
    Ne feledje, hogy sok webtárhely-szolgáltató nem biztosít ilyen gyorsítótár-kiszolgálót. +MemcachedModuleAvailableButNotSetup=Az alkalmazás gyorsítótárához tárolt modult megtaláltuk, de a modul beállítása nem fejeződött be. +MemcachedAvailableAndSetup=A memcached szerver használatára szánt memcached modul engedélyezve van. OPCodeCache=OPCode gyorsítótár -NoOPCodeCacheFound=Nem található az OPCode gyorsítótár. Lehet, hogy egy másik OPCode gyorsítótárat használ, mint például az XCache-t vagy az eAccelerator-t (jó), vagy lehet, hogy nincs OPCode-gyorsítótár (nagyon rossz). +NoOPCodeCacheFound=Nem található OPCode gyorsítótár. Lehet, hogy az XCache-től vagy az eAcceleratortól eltérő OPCode-gyorsítótárat használ (jó), vagy esetleg nincs OPCode-gyorsítótára (nagyon rossz). HTTPCacheStaticResources=Statikus erőforrások (css, img, javascript) HTTP gyorsítótára FilesOfTypeCached=A HTTP szerver a %s típusú fájlok esetében használja a gyorsítótárat. FilesOfTypeNotCached=A HTTP szerver a %s típusú fájlok esetében nem használja a gyorsítótárat. FilesOfTypeCompressed=A HTTP szerver a %s típusú fájlokat tömöríti. FilesOfTypeNotCompressed=A HTTP szerver a %s típusú fájlokat nem tömöríti. -CacheByServer=Gyorsítótár kiszolgálónként -CacheByServerDesc=Például az "ExpiresByType image/gif A2592000" Apache irányelv használatával -CacheByClient=Cache by browser +CacheByServer=Gyorsítótár szerverenként +CacheByServerDesc=Például az "ExpiresByType image/gif A2592000" Apache direktíva használatával +CacheByClient=Gyorsítótár böngészőnként CompressionOfResources=HTTP válaszok tömörítése -CompressionOfResourcesDesc=Például az "AddOutputFilterByType DEFLATE" Apache irányelv használatával -TestNotPossibleWithCurrentBrowsers=A jelenlegi böngészőknél nem lehetséges ilyen automatikus észlelés -DefaultValuesDesc=Meghatározhatja azt az alapértelmezett értéket, amelyet új rekord létrehozásakor használni kíván, és/vagy az alapértelmezett szűrőket, vagy a rendezési sorrendet a rekordok listázásakor. -DefaultCreateForm=Alapértelmezett értékek (űrlapok használatához) +CompressionOfResourcesDesc=Például az "AddOutputFilterByType DEFLATE" Apache direktíva használatával +TestNotPossibleWithCurrentBrowsers=Ez az automatikus felismerés a jelenlegi böngészőkkel nem lehetséges +DefaultValuesDesc=Itt megadhatja az új rekord létrehozásakor használni kívánt alapértelmezett értéket és/vagy az alapértelmezett szűrőket vagy a rendezési sorrendet a rekordok listázásakor. +DefaultCreateForm=Alapértelmezett értékek (az űrlapokon használandó) DefaultSearchFilters=Alapértelmezett keresési szűrők -DefaultSortOrder=Alapértelmezett rendezési sorrendek -DefaultFocus=Default focus fields +DefaultSortOrder=Alapértelmezett rendezési sorrend +DefaultFocus=Alapértelmezett fókuszmezők DefaultMandatory=Kötelező űrlapmezők ##### Products ##### ProductSetup=Termékek modul beállítása ServiceSetup=Szolgáltatások modul beállítása ProductServiceSetup=Termékek és szolgáltatások modulok beállítása -NumberOfProductShowInSelect=A kombinált kiválasztási listákban megjelenítendő termékek maximális száma (0 = nincs korlátozás) -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) +NumberOfProductShowInSelect=A kombinált listában megjeleníthető termékek maximális száma (0=nincs korlát) +ViewProductDescInFormAbility=Termékleírások megjelenítése tételsorokban (ellenkező esetben a leírás megjelenítése az eszköztipp felugró ablakában) +OnProductSelectAddProductDesc=Hogyan kell használni a termékek leírását, amikor egy terméket adunk a dokumentum soraként +AutoFillFormFieldBeforeSubmit=A leírás beviteli mezőjének automatikus kitöltése a termék leírásával +DoNotAutofillButAutoConcat=Ne töltse ki automatikusan a beviteli mezőt a termék leírásával. A termék leírása automatikusan összefűződik a megadott leírással. +DoNotUseDescriptionOfProdut=A termék leírása soha nem fog szerepelni a dokumentumsorok leírásában +MergePropalProductCard=Aktiválás a Termék/szolgáltatás Csatolt fájlok lapon lehetőség a termék PDF-dokumentumának egyesítésére a PDF azur-ban, ha termék/szolgáltatás szerepel az ajánlatban +ViewProductDescInThirdpartyLanguageAbility=Termékleírások megjelenítése űrlapokon a harmadik fél nyelvén (egyébként a felhasználó nyelvén) +UseSearchToSelectProductTooltip=Ha sok terméke van (> 100 000), növelheti a sebességet, ha a PRODUCT_DONOTSEARCH_ANYWHERE konstans értéket 1-re állítja a Beállítás->Egyéb részben. A keresés ezután a karakterlánc elejére korlátozódik. +UseSearchToSelectProduct=Várja meg, amíg megnyom egy billentyűt, mielőtt betölti a termékkombináció tartalmát (Ez növelheti a teljesítményt, ha sok terméke van, de kevésbé kényelmes) SetDefaultBarcodeTypeProducts=Alapértelmezett típusú vonalkód használatát termékek SetDefaultBarcodeTypeThirdParties=Alapértelmezett típusú vonalkód használatát harmadik felek számára -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 +UseUnits=Mértékegység meghatározása a Mennyiséghez a rendelés, az ajánlat vagy a számlasorok kiadása során +ProductCodeChecker= Modul termékkód generálásához és ellenőrzéséhez (termék vagy szolgáltatás) +ProductOtherConf= Termék/szolgáltatás konfigurációja IsNotADir=ez nem egy könyvtár! ##### Syslog ##### SyslogSetup=Naplók modul beállítása @@ -1666,10 +1680,10 @@ SyslogLevel=Szint SyslogFilename=A fájl nevét és elérési útvonalát YouCanUseDOL_DATA_ROOT=Használhatja DOL_DATA_ROOT / dolibarr.log egy log fájlt Dolibarr "Dokumentumok" mappa. Beállíthatjuk, más utat kell tárolni ezt a fájlt. ErrorUnknownSyslogConstant=Constant %s nem ismert Syslog állandó -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 rendszeren csak a LOG_USER szolgáltatás támogatott +CompressSyslogs=Hibakeresési naplófájlok tömörítése és biztonsági mentése (a Log for debug modul által generált) +SyslogFileNumberOfSaves=A megőrzendő biztonsági mentési naplók száma +ConfigureCleaningCronjobToSetFrequencyOfSaves=Az ütemezett tisztítási feladat konfigurálása a napló biztonsági mentési gyakoriságának beállításához ##### Donations ##### DonationsSetup=Adomány modul beállítása DonationsReceiptModel=Sablon az adomány átvételét @@ -1686,37 +1700,37 @@ BarcodeDescUPC=Vonalkód típusú UPC BarcodeDescISBN=Vonalkód típusú ISBN BarcodeDescC39=Vonalkód típusú C39 BarcodeDescC128=Vonalkód típusú 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 +BarcodeDescDATAMATRIX=Datamátrix típusú vonalkód +BarcodeDescQRCODE=QR kód típusú vonalkód +GenbarcodeLocation=Vonalkód generáló parancssori eszköz (egyes vonalkódtípusokhoz a belső motor használja). Kompatibilisnek kell lennie a „genbarcode” kóddal.
    Például: /usr/local/bin/genbarcode +BarcodeInternalEngine=Belső motor +BarCodeNumberManager=Kezelõ a vonalkód számok automatikus meghatározásához ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=A Csoportos beszedési megbízás modul beállítása ##### ExternalRSS ##### ExternalRSSSetup=Külső RSS import setup NewRSS=Új RSS Feed RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed +RSSUrlExample=Érdekes RSS hírfolyam ##### Mailing ##### MailingSetup=Küldése e-mailben modul beállítása -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 +MailingEMailFrom=Feladó e-mail (Feladó) az e-mail modul által küldött e-mailekhez +MailingEMailError=E-mail visszaküldése (Errors-to) a hibás e-mailekhez +MailingDelay=Másodpercek a következő üzenet elküldése után ##### Notification ##### -NotificationSetup=Email Notification module setup -NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +NotificationSetup=E-mail értesítési modul beállítása +NotificationEMailFrom=Feladó e-mail (Feladó) az Értesítések modul által küldött e-mailekhez FixedEmailTarget=Címzett -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=Az értesítések címzettjeinek (kapcsolattartóként feliratkozott) listájának elrejtése a megerősítő üzenetben +NotificationDisableConfirmMessageUser=Az értesítések címzettjeinek (felhasználóként feliratkozott) listájának elrejtése a megerősítő üzenetben +NotificationDisableConfirmMessageFix=Az értesítések címzettjeinek (globális e-mailként előfizetett) listájának elrejtése a megerősítő üzenetben ##### Sendings ##### -SendingsSetup=Shipping module setup +SendingsSetup=Szállítási modul beállítása SendingsReceiptModel=Küldése modell átvételét SendingsNumberingModules=Küldések számozási modulok -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 +SendingsAbility=Szállítási lapok támogatása az ügyfelek szállításához +NoNeedForDeliveryReceipts=A legtöbb esetben a szállítási lapokat a vevői kézbesítéshez (a küldendő termékek listája), valamint a vevő által átvett és aláírt lapként is használják. Ezért a termékszállítási nyugta egy megkettőzött funkció, és ritkán aktiválódik. +FreeLegalTextOnShippings=Szabad szöveg a szállítmányokon ##### Deliveries ##### DeliveryOrderNumberingModules=Termékek szállítások kézhezvételét számozás modul DeliveryOrderModel=Termékek szállítások modell átvételét @@ -1725,28 +1739,28 @@ FreeLegalTextOnDeliveryReceipts=Szabad szöveg szállítási bevételek ##### FCKeditor ##### AdvancedEditor=Speciális szerkesztő ActivateFCKeditor=Aktiválja a fejlett szerkesztő: -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 létrehozása / kiadás levelek -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -FCKeditorForTicket=WYSIWIG creation/edition for tickets +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á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 ##### 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=Raktári modul beállítása +IfYouUsePointOfSaleCheckModule=Ha az alapértelmezésben biztosított értékesítési pont modult (POS) vagy egy külső modult használja, előfordulhat, hogy ezt a beállítást figyelmen kívül hagyja a POS-modul. A legtöbb POS-modult alapértelmezés szerint úgy tervezték, hogy azonnal számlát készítsen, és csökkentse a készletet, függetlenül az itt található lehetőségektől. Tehát, ha szüksége van vagy sem készletcsökkenésre, amikor értékesítést regisztrál a POS-ból, ellenőrizze a POS-modul beállításait is. ##### Menu ##### MenuDeleted=Menü törölve -Menu=Menu +Menu=Menü Menus=Menük TreeMenuPersonalized=Személyre szabott menük -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry +NotTopTreeMenuPersonalized=Személyre szabott menük, amelyek nem kapcsolódnak a felső menübejegyzéshez NewMenu=Új menü MenuHandler=Menü kezelő MenuModule=Forrás modul -HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +HideUnauthorizedMenu=A jogosulatlan menük elrejtése belső felhasználók számára is (egyébként szürkén jelenik meg) DetailId=Id menü DetailMenuHandler=Menü, ahol a kezelő jelzi az új menü DetailMenuModule=Modul neve, ha menübejegyzés származnak modul @@ -1758,22 +1772,22 @@ DetailRight=Feltétel megjeleníteni jogosulatlan szürke menük DetailLangs=Lang fájl nevét címke kód fordítást DetailUser=Intern / Extern / All Target=Cél -DetailTarget=Target for links (_blank top opens a new window) +DetailTarget=Cél a hivatkozásokhoz (_blank top új ablakot nyit) DetailLevel=Szint (-1: felső menüben, 0: fejléc menü> 0 menü és almenü) ModifMenu=MENÜ DeleteMenu=Törlése menüpont -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu +ConfirmDeleteMenu=Biztosan törölni szeretné a(z) %s menübejegyzést? +FailedToInitializeMenu=A menü inicializálása sikertelen ##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup +TaxSetup=Adók, szociális vagy fiskális adók és osztalékok modul beállítása OptionVatMode=ÁFA miatt -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: +OptionVATDefault=Szabványos alap +OptionVATDebitOption=Elhatárolás alapja +OptionVatDefaultDesc=ÁFA esedékes:
    - az áruk leszállításakor (a számla dátuma alapján)
    - a szolgáltatások kifizetésekor +OptionVatDebitOptionDesc=ÁFA esedékes:
    - az áruk leszállításakor (a számla dátuma alapján)
    - a szolgáltatások számláján (terhelés) +OptionPaymentForProductAndServices=Készpénzes termékek és szolgáltatások +OptionPaymentForProductAndServicesDesc=ÁFA esedékes:
    - az áruk kifizetésekor
    - a szolgáltatások kifizetésekor +SummaryOfVatExigibilityUsedByDefault=Alapértelmezés szerint az áfa-jogosultság ideje a választott opció szerint: OnDelivery=A szállítási OnPayment=A fizetési OnInvoice=A számlát @@ -1782,86 +1796,86 @@ SupposedToBeInvoiceDate=Számla dátuma használt Buy=Megvesz Sell=Eladás InvoiceDateUsed=Számla dátuma használt -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=Az Ön cége úgy lett meghatározva, hogy nem használ áfát (Beállítás - Vállalat/Szervezet), ezért nincs áfa-beállítási lehetőség. +AccountancyCode=Számviteli kód AccountancyCodeSell=Eladás számviteli kódja AccountancyCodeBuy=Vétel számviteli kódja -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=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 -SecurityKey = Security Key +SecurityKey = Biztonsági kulcs PastDelayVCalExport=Ne export esetén, mint a régebbi -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=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 +AGENDA_DEFAULT_FILTER_STATUS=Automatikusan állítsa be ezt az állapotot az eseményekhez a napirendnézet keresőszűrőjében +AGENDA_DEFAULT_VIEW=Melyik nézetet szeretné alapértelmezés szerint megnyitni a Napirend menü kiválasztásakor +AGENDA_REMINDER_BROWSER=Eseményemlékeztető engedélyezése a felhasználó böngészőjében (Az emlékeztető dátumának elérésekor a böngésző felugró ablakot jelenít meg. Minden felhasználó letilthatja az ilyen értesítéseket a böngésző értesítési beállításaiból). +AGENDA_REMINDER_BROWSER_SOUND=Hangjelzés engedélyezése +AGENDA_REMINDER_EMAIL=Eseményemlékeztető engedélyezése e-mailben (emlékeztető opció/késleltetés minden eseménynél megadható). +AGENDA_REMINDER_EMAIL_NOTE=Megjegyzés: Az ütemezett feladat %s gyakoriságának elegendőnek kell lennie ahhoz, hogy az emlékeztető a megfelelő pillanatban kerüljön elküldésre. +AGENDA_SHOW_LINKED_OBJECT=A csatolt objektum megjelenítése a napirend nézetben ##### Clicktodial ##### ClickToDialSetup=Kattintson a Tárcsázás modul beállítása -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=Az URL meghívása, amikor a telefon képére kattintott. Az URL-ben használhat címkéket
    __PHONETO__, amelyek helyére a hívni kívánt személy telefonszáma lesz
    __PHONEFROM__, amelyet a hívás telefonszáma helyettesít személy (a tiéd)
    __LOGIN__, amelyet a clicktodial bejelentkezés helyére (a felhasználói kártyán meghatározott)
    __PASS__ váltja fel a clicktodial jelszó (a felhasználó által meghatározott) kártya). +ClickToDialDesc=Ez a modul megváltoztatja a telefonszámokat, amikor asztali számítógépet használ, kattintható hivatkozásokká. Egy kattintás hívja a számot. Ez használható a telefonhívás indítására, ha egy puha telefont használ az asztalon, vagy ha például SIP protokollon alapuló CTI rendszert használ. Megjegyzés: Okostelefon használatakor a telefonszámok mindig rákattinthatók. +ClickToDialUseTelLink=Csak egy "tel:" hivatkozást használjon a telefonszámokon +ClickToDialUseTelLinkDesc=Használja ezt a módszert, ha felhasználói szoftveres telefonnal vagy szoftveres interfésszel rendelkeznek, amely ugyanarra a számítógépre van telepítve, mint a böngésző, és akkor hívható meg, amikor a böngészőjében a „tel:” betűvel kezdődő hivatkozásra kattint. Ha olyan hivatkozásra van szüksége, amely "sip:"-vel kezdődik, vagy teljes szervermegoldásra (nincs szükség helyi szoftvertelepítésre), akkor ezt "Nem"-re kell állítania, és ki kell töltenie a következő mezőt. ##### Point Of Sale (CashDesk) ##### -CashDesk=Point of Sale -CashDeskSetup=Point of Sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sales +CashDesk=Értékesítési pont +CashDeskSetup=Értékesítési pont modul beállítása +CashDeskThirdPartyForSell=Alapértelmezett általános harmadik fél az értékesítéshez CashDeskBankAccountForSell=Alapértelmezett fiók kezelhető készpénz kifizetések -CashDeskBankAccountForCheque=Default account to use to receive payments by check +CashDeskBankAccountForCheque=Alapértelmezett számla a csekken történő kifizetések fogadásához CashDeskBankAccountForCB=Alapértelmezett fiók kezelhető készpénz kifizetések hitelkártyák -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) +CashDeskBankAccountForSumup=Alapértelmezett bankszámla a SumUp általi kifizetések fogadásához +CashDeskDoNotDecreaseStock=Készletcsökkentés letiltása, ha az értékesítés az értékesítés helyéről történik (ha "nem", akkor a készletcsökkenés minden POS-ból történő értékesítésnél megtörténik, függetlenül a Készlet modulban beállított opciótól). +CashDeskIdWareHouse=Raktár kényszerítése és korlátozása a készletcsökkentéshez +StockDecreaseForPointOfSaleDisabled=Készletcsökkenés az értékesítési pontról letiltva +StockDecreaseForPointOfSaleDisabledbyBatch=A POS készletének csökkenése nem kompatibilis a soros/tételkezelés modullal (jelenleg aktív), ezért a készletcsökkentés le van tiltva. +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) ##### Bookmark ##### BookmarkSetup=Könyvjelző beállítása modul -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=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. NbOfBoomarkToShow=Maximális száma könyvjelzők mutatni a bal menüben ##### WebServices ##### WebServicesSetup=Webservices modul beállítása WebServicesDesc=Azáltal, hogy ez a modul, Dolibarr vált a web szerver szolgáltatást nyújtani különböző webes szolgáltatásokat. WSDLCanBeDownloadedHere=WSDL leíró fájlok a nyújtott szolgáltatások is letölthető itt -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL +EndPointIs=A SOAP-ügyfeleknek el kell küldeniük kéréseiket az URL címen elérhető Dolibarr-végpontra ##### 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. +ApiSetup=API modul beállítása +ApiDesc=A modul engedélyezésével a Dolibarr REST szerverré válik, amely különféle webszolgáltatásokat nyújt. +ApiProductionMode=Éles üzemmód engedélyezése (ez aktiválja a gyorsítótár használatát a szolgáltatások kezeléséhez) +ApiExporerIs=Az URL címen felfedezheti és tesztelheti az API-kat +OnlyActiveElementsAreExposed=Csak az engedélyezett modulokból származó elemek jelennek meg +ApiKey=API kulcsa +WarningAPIExplorerDisabled=Az API Explorer le van tiltva. Az API Explorer nem köteles API-szolgáltatásokat nyújtani. Ez egy eszköz a fejlesztők számára a REST API-k megtalálásához/teszteléséhez. Ha szüksége van erre az eszközre, lépjen be az API REST modul beállításába az aktiváláshoz. ##### Bank ##### BankSetupModule=Bank modul beállítása -FreeLegalTextOnChequeReceipts=Free text on check receipts +FreeLegalTextOnChequeReceipts=Szabad szöveg a csekken BankOrderShow=Megjelenítési sorrendjét bankszámlák használó országok "részletes bank szám" BankOrderGlobal=Általános BankOrderGlobalDesc=Általános megjelenítési sorrend BankOrderES=Spanyol BankOrderESDesc=Spanyol megjelenítési sorrend -ChequeReceiptsNumberingModule=Check Receipts Numbering Module +ChequeReceiptsNumberingModule=Nyugta számozási modul ellenőrzése ##### Multicompany ##### MultiCompanySetup=Több cég setup modul ##### 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=Szállítói modul beállítása +SuppliersCommandModel=Megrendelés teljes sablonja +SuppliersCommandModelMuscadet=A beszerzési rendelés teljes sablonja (a cornas sablon régi megvalósítása) +SuppliersInvoiceModel=Szállítói számla teljes sablonja +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=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=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 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. @@ -1870,353 +1884,426 @@ TestGeoIPResult=Teszt egy átalakítási IP -> ország ProjectsNumberingModules=Projektek modul számozás ProjectsSetup=Projekt modul beállítása ProjectsModelModule=Projektjének dokumentum modellje -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. +TasksNumberingModules=Feladatok számozási modulja +TaskModelModule=Tasks jelentések dokumentummodellje +UseSearchToSelectProject=Várja meg, amíg egy billentyűt lenyomnak, mielőtt betölti a Project kombinált lista tartalmát.
    Ez javíthatja a teljesítményt, ha sok projektje van, de kevésbé kényelmes. ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods +AccountingPeriods=Számviteli időszakok AccountingPeriodCard=Könyvelési periódus -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=Új elszámolási időszak +OpenFiscalYear=Nyitott elszámolási időszak +CloseFiscalYear=Elszámolási időszak lezárása +DeleteFiscalYear=Elszámolási időszak törlése +ConfirmDeleteFiscalYear=Biztosan törli ezt az elszámolási időszakot? +ShowFiscalYear=Elszámolási időszak megjelenítése AlwaysEditable=Mindig szerkeszthető MAIN_APPLICATION_TITLE=Megrendelés szállíthatóságát jelző ikon hozzáadása a megrendelések listájához -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 +NbMajMin=A nagybetűk minimális száma +NbNumMin=A numerikus karakterek minimális száma +NbSpeMin=Speciális karakterek minimális száma +NbIteConsecutive=Az ismétlődő azonos karakterek maximális száma +NoAmbiCaracAutoGeneration=Ne használjon kétértelmű karaktereket ("1", "l", "i", "|", "0", "O") az automatikus generáláshoz SalariesSetup=Alkalmazottak modul beállítása SortOrder=Rendezés iránya Format=Formátum -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) -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=Hide images 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 dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) -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 +TypePaymentDesc=0: Ügyfél fizetési típusa, 1: Szállító fizetési típusa, 2: Ügyfél és szállító fizetési típusa +IncludePath=Útvonal szerepeltetése (a %s változóban van meghatározva) +ExpenseReportsSetup=Költségjelentések modul beállítása +TemplatePDFExpenseReports=Dokumentum sablonok költségjelentési bizonylat generálásához +ExpenseReportsRulesSetup=Költségjelentések modul beállítása - Szabályok +ExpenseReportNumberingModules=Költségjelentések számozási modulja +NoModueToManageStockIncrease=Nincs olyan modul aktiválva, amely képes lenne kezelni az automatikus készletnövekedést. A készletnövelés csak kézi bevitellel történik. +YouMayFindNotificationsFeaturesIntoModuleNotification=Az "Értesítés" modul engedélyezésével és konfigurálásával az e-mail értesítésekre vonatkozó lehetőségeket találhat. +TemplatesForNotifications=Sablonok értesítésekhez +ListOfNotificationsPerUser=Felhasználónkénti automatikus értesítések listája* +ListOfNotificationsPerUserOrContact=A lehetséges automatikus értesítések listája (üzleti eseményekről) felhasználónként* vagy kapcsolattartónként** +ListOfFixedNotifications=Az automatikus javított értesítések listája +GoOntoUserCardToAddMore=A felhasználók értesítéseinek hozzáadásához vagy eltávolításához lépjen a felhasználó "Értesítések" lapjára +GoOntoContactCardToAddMore=Lépjen a harmadik fél "Értesítések" lapjára, ha értesítéseket szeretne hozzáadni vagy eltávolítani a névjegyekről/címekről +Threshold=Küszöb +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. +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 +HighlightLinesColor=A vonal színének kiemelése, amikor az egér áthalad (ha nem kiemeli, használja az 'ffffff'-t) +HighlightLinesChecked=Kiemeli a vonal színét, ha be van jelölve (ha nem kiemeli, használja az 'ffffff'-t) +UseBorderOnTable=Bal-jobb szegélyek megjelenítése a táblázatokon +BtnActionColor=A művelet gomb színe +TextBtnActionColor=A műveletgomb szövegének színe +TextTitleColor=Az oldal címének szövegszíne +LinkColor=A hivatkozások színe +PressF5AfterChangingThis=Nyomja meg a CTRL+F5 billentyűkombinációt a billentyűzeten, vagy törölje a böngésző gyorsítótárát az érték módosítása után, hogy az érvényes legyen +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=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 +BackgroundTableTitleTextlinkColor=A táblázat címének hivatkozási sorának szövegszíne +BackgroundTableLineOddColor=A páratlan táblázatsorok háttérszíne +BackgroundTableLineEvenColor=Háttérszín az egyenletes táblázatsorokhoz +MinimumNoticePeriod=Minimális felmondási idő (a szabadságigényét a késedelem előtt kell benyújtani) +NbAddedAutomatically=A felhasználók számlálóihoz (automatikusan) hozzáadott napok száma havonta +EnterAnyCode=Ez a mező hivatkozást tartalmaz a vonal azonosítására. Adjon meg tetszőleges értéket, de speciális karakterek nélkül. +Enter0or1=Írjon be 0 vagy 1 értéket +UnicodeCurrency=Írja be ide a kapcsos zárójelek közé, a pénznem szimbólumát jelentő bájtszámok listáját. Például: $ esetén írja be: [36] - brazil real R$ [82,36] - € esetén írja be a [8364] +ColorFormat=Az RGB szín HEX formátumú, pl.: FF0000 +PictoHelp=Az ikon neve formátumban:
    - image.png egy képfájlhoz az aktuális témakönyvtárba
    - image.png@module, ha a fájl egy modul /img/ könyvtárában van
    - fonwtawesome_xxx_fa_color_size a FontAwesome fa-xxx képhez (előtaggal, szín- és méretkészlettel) +PositionIntoComboList=A sor pozíciója a kombinált listákban +SellTaxRate=Forgalmi adó mértéke +RecuperableOnly=Igen a "Nem észlelt, de visszaigényelhető" ÁFA-ra, amelyet Franciaország egyes államaiban rendelt el. Minden más esetben tartsa a „Nem” értéket. +UrlTrackingDesc=Ha a szolgáltató vagy a szállítási szolgáltatás kínál egy oldalt vagy webhelyet a küldeményei állapotának ellenőrzésére, akkor itt megadhatja. Használhatja a {TRACKID} kulcsot az URL paraméterekben, így a rendszer azt a nyomkövetési számra cseréli, amelyet a felhasználó a szállítmánykártyán megadott. +OpportunityPercent=A potenciális ügyfél létrehozásakor meg kell határoznia a projekt/potenciál becsült mennyiségét. A potenciális ügyfél állapotától függően ezt az összeget meg lehet szorozni ezzel az aránnyal, hogy kiértékeljük az összes potenciális ügyfél által generált teljes összeget. Az érték egy százalék (0 és 100 között). +TemplateForElement=Ez a levélsablon milyen típusú objektumhoz kapcsolódik? E-mail sablon csak akkor érhető el, ha a kapcsolódó objektum "E-mail küldése" gombját használja. +TypeOfTemplate=Sablon típusa +TemplateIsVisibleByOwnerOnly=A sablon csak a tulajdonos számára látható +VisibleEverywhere=Látható mindenhol +VisibleNowhere=Sehol sem látható +FixTZ=Időzóna javítás +FillFixTZOnlyIfRequired=Példa: +2 (csak probléma esetén töltse ki) +ExpectedChecksum=Várható ellenőrző összeg +CurrentChecksum=Aktuális ellenőrző összeg +ExpectedSize=Várható méret +CurrentSize=Jelenlegi méret +ForcedConstants=Kötelező állandó értékek MailToSendProposal=Ügyfél ajánlatok -MailToSendOrder=Értékesítési megrendelések +MailToSendOrder=Értékesítési rendelések MailToSendInvoice=Ügyfél számlák MailToSendShipment=Szállítások MailToSendIntervention=Beavatkozások -MailToSendSupplierRequestForQuotation=Quotation request -MailToSendSupplierOrder=Megrendelések +MailToSendSupplierRequestForQuotation=Ajánlatkérés +MailToSendSupplierOrder=Beszerzési rendelések MailToSendSupplierInvoice=Szállítói számlák MailToSendContract=Szerződések -MailToSendReception=Receptions +MailToSendReception=Fogadások +MailToExpenseReport=Költségjelentések MailToThirdparty=Partner MailToMember=Tagok MailToUser=Felhasználók MailToProject=Projektek MailToTicket=Jegyek -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 data about European companies/citizens, 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 -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? -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, with no 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 +ByDefaultInList=Alapértelmezés szerint megjelenítése listanézetben +YouUseLastStableVersion=A legújabb stabil verziót használja +TitleExampleForMajorRelease=Példa üzenetre, amellyel bejelentheti ezt a jelentős kiadást (bátran használhatja webhelyein) +TitleExampleForMaintenanceRelease=Példa üzenetre, amellyel bejelentheti ezt a karbantartási kiadást (bátran használhatja webhelyein) +ExampleOfNewsMessageForMajorRelease=A Dolibarr ERP és CRM %s elérhető. A %s verzió egy jelentős kiadás, számos új funkcióval mind a felhasználók, mind a fejlesztők számára. Letöltheti a https://www.dolibarr.org portál letöltési területéről (Stable versions alkönyvtár). A változtatások teljes listáját a ChangeLog oldalon találja. +ExampleOfNewsMessageForMaintenanceRelease=A Dolibarr ERP és CRM %s elérhető. A %s verzió karbantartási verzió, tehát csak hibajavításokat tartalmaz. Minden felhasználónak javasoljuk, hogy frissítsen erre a verzióra. A karbantartási kiadások nem vezetnek be új funkciókat vagy változtatásokat az adatbázisban. Letöltheti a https://www.dolibarr.org portál letöltési területéről (Stable versions alkönyvtár). A változtatások teljes listáját a ChangeLog oldalon olvashatja el. +MultiPriceRuleDesc=Ha a "Több árszint termékenként/szolgáltatásonként" opció engedélyezve van, minden termékhez különböző árat (árszintenként egyet) határozhat meg. Időmegtakarítás érdekében itt megadhat egy szabályt, amely automatikusan kiszámítja az egyes szintek árát az első szint ára alapján, így minden terméknél csak az első szint árat kell megadnia. Ez az oldal úgy készült, hogy időt takarítson meg, de csak akkor hasznos, ha az egyes szintek árai az első szinthez viszonyítva vannak. Ezt az oldalt a legtöbb esetben figyelmen kívül hagyhatja. +ModelModulesProduct=Sablonok a termékdokumentumokhoz +WarehouseModelModules=Sablonok a raktárak dokumentumaihoz +ToGenerateCodeDefineAutomaticRuleFirst=A kódok automatikus generálásához először meg kell határoznia egy kezelőt a vonalkód szám automatikus meghatározásához. +SeeSubstitutionVars=Lásd a * megjegyzést a lehetséges helyettesítési változók listájához +SeeChangeLog=Lásd a ChangeLog fájlt (csak angolul) +AllPublishers=Minden kiadó +UnknownPublishers=Ismeretlen kiadók +AddRemoveTabs=Fülek hozzáadása vagy eltávolítása +AddDataTables=Objektumtáblázatok hozzáadása +AddDictionaries=Szótártáblázatok hozzáadása +AddData=Objektumok vagy szótáradatok hozzáadása +AddBoxes=Widgetek hozzáadása +AddSheduledJobs=Ütemezett munkák hozzáadása +AddHooks=Horgok hozzáadása +AddTriggers=Triggerek hozzáadása +AddMenus=Menük hozzáadása +AddPermissions=Engedélyek hozzáadása +AddExportProfiles=Exportálási profilok hozzáadása +AddImportProfiles=Importálási profilok hozzáadása +AddOtherPagesOrServices=Más oldalak vagy szolgáltatások hozzáadása +AddModels=Dokumentum vagy számozási sablonok hozzáadása +AddSubstitutions=Kulcshelyettesítések hozzáadása +DetectionNotPossible=Az észlelés nem lehetséges +UrlToGetKeyToUseAPIs=Url az API használatához szükséges token lekéréséhez (a token megérkezése után a rendszer elmenti az adatbázis felhasználói táblájába, és minden API-hívásnál meg kell adni) +ListOfAvailableAPIs=Az elérhető API-k listája +activateModuleDependNotSatisfied=A "%s" modul a "%s" modultól függ, ami hiányzik, ezért előfordulhat, hogy a "%1$s" modul nem működik megfelelően. Kérjük, telepítse a "%2$s" modult, vagy tiltsa le a "%1$s" modult, ha biztonságban szeretne lenni a meglepetésektől +CommandIsNotInsideAllowedCommands=A futtatni kívánt parancs nem szerepel a $dolibarr_main_restrict_os_commands paraméterben definiált engedélyezett parancsok listájában a conf.php fájlban. +LandingPage=Céloldal +SamePriceAlsoForSharedCompanies=Ha többvállalati modult használ, az "Egyetlen ár" választással, akkor az ár minden vállalatnál ugyanaz lesz, ha a termékek meg vannak osztva a környezetek között +ModuleEnabledAdminMustCheckRights=A modul aktiválva lett. Az aktivált modul(ok)hoz csak adminisztrátori felhasználók kaptak engedélyt. Szükség esetén manuálisan kell engedélyeket megadnia más felhasználóknak vagy csoportoknak. +UserHasNoPermissions=Ennek a felhasználónak nincsenek megadva engedélyei +TypeCdr=Használja a "Nincs" opciót, ha a fizetési határidő dátuma a számla dátuma plusz egy delta napokban (a delta a "%s" mező)
    Használja a "Hónap végén" lehetőséget, ha a delta után a dátumnak nőtt a hónap végéig (+ egy opcionális "%s" napokban)
    A "Jelenlegi/Következő" beállítást használja, hogy a fizetési határidő dátuma a hónap első N-e legyen a delta után (a delta a "%s" mező, N a "%s" mezőben van eltárolva) +BaseCurrency=A vállalat referencia pénzneme (a megváltoztatásához lépjen be a vállalat beállításaiba) +WarningNoteModuleInvoiceForFrenchLaw=Ez a %s modul megfelel a francia törvényeknek (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Ez a %s modul megfelel a francia törvényeknek (Loi Finance 2016), mivel a Nem visszafordítható naplók modul automatikusan aktiválódik. +WarningInstallationMayBecomeNotCompliantWithLaw=A %s modult próbálja telepíteni, amely egy külső modul. Egy külső modul aktiválása azt jelenti, hogy megbízik az adott modul kiadójában, és biztos abban, hogy ez a modul nem befolyásolja hátrányosan az alkalmazás működését, és megfelel az Ön országa (%s) törvényeinek. Ha a modul illegális szolgáltatást vezet be, Ön felelőssé válik az illegális szoftver használatáért. +MAIN_PDF_MARGIN_LEFT=Bal margó a PDF-en +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 +MAIN_PDF_NO_RECIPENT_FRAME=Szegélyek elrejtése a receptcímkereten +MAIN_PDF_HIDE_CUSTOMER_CODE=Ügyfélkód elrejtése +MAIN_PDF_HIDE_SENDER_NAME=A feladó/cégnév elrejtése a címblokkban +PROPOSAL_PDF_HIDE_PAYMENTTERM=Fizetési feltételek elrejtése +PROPOSAL_PDF_HIDE_PAYMENTMODE=Fizetési mód elrejtése +MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Elektronikus bejelentkezés hozzáadása a PDF-hez +NothingToSetup=Nincs speciális beállítás szükséges ehhez a modulhoz. +SetToYesIfGroupIsComputationOfOtherGroups=Állítsa ezt igenre, ha ez a csoport más csoportok számítása +EnterCalculationRuleIfPreviousFieldIsYes=Adja meg a számítási szabályt, ha az előző mező Igen értékre volt állítva.
    Például:
    CODEGRP1+CODEGRP2 +SeveralLangugeVariatFound=Számos nyelvváltozatot találtunk +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 +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 +HelpOnTooltipDesc=Tegyen ide szöveget vagy fordítókulcsot, hogy a szöveg megjelenjen az eszköztippben, amikor ez a mező megjelenik egy űrlapon +YouCanDeleteFileOnServerWith=Ezt a fájlt a következő parancssorral törölheti a szerveren:
    %s +ChartLoaded=Számladiagram betöltve +SocialNetworkSetup=A Social Networks modul beállítása +EnableFeatureFor=Funkciók engedélyezése a következőhöz: %s +VATIsUsedIsOff=Megjegyzés: A forgalmi adó vagy áfa használatának lehetőségét Ki értékre állítottuk a %s - %s menüben, így a forgalmi adó vagy a felhasznált áfa mindig 0 lesz az eladásoknál. +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 +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 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-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 +EmailCollectorExampleToCollectJobCandidaturesDesc=Gyűjtse össze az állásajánlatokra jelentkező e-maileket (a modultoborzást engedélyezni kell). Ezt a gyűjtőt akkor töltheti ki, ha automatikusan szeretne pályázatot létrehozni egy álláskérésre. Megjegyzés: Ebben a kezdeti példában a jelentkezés címe generálódik, beleértve az e-mailt is. +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-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) +CodeLastResult=Legfrissebb eredménykód +NbOfEmailsInInbox=E-mailek száma a forráskönyvtárban +LoadThirdPartyFromName=Harmadik féltől származó keresés betöltése a következőn: %s (csak betöltés) +LoadThirdPartyFromNameOrCreate=Harmadik féltől származó keresés betöltése a következőn: %s (létrehozás, ha nem található) +AttachJoinedDocumentsToObject=Mentse el a csatolt fájlokat objektum dokumentumokba, ha egy objektum hivatkozása található az e-mail témakörben. +WithDolTrackingID=Üzenet egy beszélgetésből, amelyet a Dolibarrtól küldött első e-mail indított +WithoutDolTrackingID=Üzenet egy beszélgetésből, amelyet a Dolibarrtól NEM küldött első e-mail indított +WithDolTrackingIDInMsgId=Üzenet küldése a Dolibarrtól +WithoutDolTrackingIDInMsgId=Az üzenetet NEM küldte a Dolibarr +CreateCandidature=Állással kapcsolatos jelentkezés létrehozása 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=Enable feature to check if a resource is in use in an event -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. +MainMenuCode=Menü belépési kód (főmenü) +ECMAutoTree=Automatikus ECM fa megjelenítése +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 +UseSearchToSelectResource=Használjon keresési űrlapot az erőforrás kiválasztásához (legördülő lista helyett). +DisabledResourceLinkUser=A szolgáltatás letiltása az erőforrás felhasználókhoz való kapcsolásához +DisabledResourceLinkContact=Az erőforrás kapcsolattartókhoz való kapcsolásának letiltása +EnableResourceUsedInEventCheck=A napirenden ugyanazon forrás egyidejű felhasználásának tiltása +ConfirmUnactivation=Modul visszaállításának megerősítése +OnMobileOnly=Csak kis képernyőn (okostelefonon). +DisableProspectCustomerType=A "Leendő ügyfél + Ügyfél" harmadik fél típusának letiltása (tehát a harmadik félnek "Leendő ügyfél" vagy "Ügyfél" kell lennie, de nem lehet mindkettő) +MAIN_OPTIMIZEFORTEXTBROWSER=Egyszerűsítse a felületet vakok számára +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Engedélyezze ezt az opciót, ha Ön vak, vagy ha szöveges böngészőből használja az alkalmazást, például Lynx vagy Links. +MAIN_OPTIMIZEFORCOLORBLIND=Módosítsa a színvak felület színét +MAIN_OPTIMIZEFORCOLORBLINDDesc=Engedélyezze ezt az opciót, ha Ön színvak, bizonyos esetekben az interfész megváltoztatja a színbeállítást a kontraszt növelése érdekében. 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 access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +ThisValueCanOverwrittenOnUserLevel=Ezt az értéket minden felhasználó felülírhatja a felhasználói oldaláról - '%s' lap +DefaultCustomerType=Alapértelmezett harmadik fél típusa az "Új ügyfél" létrehozási űrlaphoz +ABankAccountMustBeDefinedOnPaymentModeSetup=Megjegyzés: A bankszámlát minden fizetési mód (Paypal, Stripe, ...) moduljában meg kell határozni, hogy ez a funkció működjön. +RootCategoryForProductsToSell=Eladó termékek gyökérkategóriája +RootCategoryForProductsToSellDesc=Ha meg van határozva, akkor csak az ebbe a kategóriába tartozó termékek vagy a kategória alárendelt termékei lesznek elérhetők az értékesítési helyen +DebugBar=Hibakeresési sáv +DebugBarDesc=Eszköztár, amely rengeteg eszközzel rendelkezik a hibakeresés egyszerűsítésére +DebugBarSetup=Hibakeresési sáv beállítása +GeneralOptions=Általános beállítások +LogsLinesNumber=A naplók lapon megjelenítendő sorok száma +UseDebugBar=Használja a hibakereső sávot +DEBUGBAR_LOGS_LINES_NUMBER=A konzolon megtartandó utolsó naplósorok száma +WarningValueHigherSlowsDramaticalyOutput=Figyelem, a magasabb értékek drámaian lelassítják a kimenetet +ModuleActivated=A %s modul aktiválva van, és lelassítja az interfészt +ModuleActivatedWithTooHighLogLevel=A %s modul túl magas naplózási szinttel van aktiválva (próbáljon alacsonyabb szintet használni a jobb teljesítmény és biztonság érdekében) +ModuleSyslogActivatedButLevelNotTooVerbose=A %s modul aktiválva van, és a naplózási szint (%s) megfelelő (nem túl bőbeszédű) +IfYouAreOnAProductionSetThis=Ha éles környezetben dolgozik, ezt a tulajdonságot %s értékre kell állítania. +AntivirusEnabledOnUpload=A vírusirtó engedélyezve van a feltöltött fájlokon +SomeFilesOrDirInRootAreWritable=Egyes fájlok vagy könyvtárak nem csak olvasható módban vannak +EXPORTS_SHARE_MODELS=Az exportmodelleket mindenkivel megosztja +ExportSetup=Az Export modul beállítása +ImportSetup=A modul importálása +InstanceUniqueID=A példány egyedi azonosítója +SmallerThan=Kisebb mint +LargerThan=Nagyobb mint +IfTrackingIDFoundEventWillBeLinked=Ne feledje, hogy ha egy objektum nyomkövetési azonosítója található az e-mailben, vagy ha az e-mail egy olyan e-mailre adott válasz, amely összegyűjtött és egy objektumhoz kapcsolódik, akkor a létrehozott esemény automatikusan összekapcsolódik az ismert kapcsolódó objektummal. +WithGMailYouCanCreateADedicatedPassword=GMail-fiókkal, ha engedélyezte a 2 lépéses érvényesítést, javasoljuk, hogy hozzon létre egy dedikált második jelszót az alkalmazáshoz ahelyett, hogy saját fiókja jelszavát használná a https://myaccount.google.com/ webhelyről. +EmailCollectorTargetDir=Sikeres feldolgozás után kívánatos lehet az e-mail áthelyezése egy másik címkébe/könyvtárba. Csak állítsa be itt a könyvtár nevét a funkció használatához (NE használjon speciális karaktereket a névben). Vegye figyelembe, hogy olvasási/írási bejelentkezési fiókot is kell használnia. +EmailCollectorLoadThirdPartyHelp=Ezt a műveletet használhatja arra, hogy az e-mail tartalmát felhasználva keressen és töltsön be egy meglévő harmadik felet az adatbázisába. A talált (vagy létrehozott) harmadik felet a rendszer a következő műveletekhez használja, amelyeknek szüksége van rá.
    Ha például egy harmadik felet szeretne létrehozni a törzsben található „Név: keresendő név” karakterláncból kivont névvel, használja a a feladó e-mailje e-mailként, a paramétermezőt a következőképpen állíthatja be:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*); client=SET:2;'
    +EndPointFor=%s végpontja: %s +DeleteEmailCollector=E-mail gyűjtő törlése +ConfirmDeleteEmailCollector=Biztosan törölni szeretné ezt az e-mail gyűjtőt? +RecipientEmailsWillBeReplacedWithThisValue=A címzett e-mailjei mindig ezzel az értékkel lesznek helyettesítve +AtLeastOneDefaultBankAccountMandatory=Legalább 1 alapértelmezett bankszámlát meg kell határozni +RESTRICT_ON_IP=Csak bizonyos ügyfél IP-címekhez engedélyezze az API-hozzáférést (a helyettesítő karakter nem megengedett, használjon szóközt az értékek között). Az üres azt jelenti, hogy minden ügyfél hozzáférhet. 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= A termék jellege\n -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=A könyvtár SabreDAV verziója alapján +NotAPublicIp=Nem nyilvános IP +MakeAnonymousPing=Készíts egy névtelen ping '+1'-t a Dolibarr Foundation szerverre (csak egyszer a telepítés után), hogy az alapítvány megszámolhassa a Dolibarr telepítések számát. +FeatureNotAvailableWithReceptionModule=A szolgáltatás nem érhető el, ha a modul fogadása engedélyezett +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 +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. +RssNote=Megjegyzés: Minden RSS-hírcsatorna-definíció tartalmaz egy widgetet, amelyet engedélyezned kell, hogy elérhető legyen az irányítópulton +JumpToBoxes=Ugrás a Beállítás -> Widgetek menüpontra +MeasuringUnitTypeDesc=Használjon itt olyan értékeket, mint a "méret", "felület", "térfogat", "tömeg", "idő" +MeasuringScaleDesc=A skála az a helyek száma, ahol a tizedes részt el kell mozgatnia, hogy megfeleljen az alapértelmezett referenciaegységnek. Az "idő" mértékegység típusa esetén ez a másodpercek száma. A 80 és 99 közötti értékek fenntartott értékek. +TemplateAdded=Sablon hozzáadva +TemplateUpdated=Sablon frissítve +TemplateDeleted=Sablon törölve +MailToSendEventPush=Esemény emlékeztető e-mail +SwitchThisForABetterSecurity=Ezt az értéket %s értékre állítjuk a nagyobb biztonság érdekében +DictionaryProductNature= A termék jellege +CountryIfSpecificToOneCountry=Ország (ha egy adott országra jellemző) +YouMayFindSecurityAdviceHere=Itt biztonsági tájékoztatót találhat +ModuleActivatedMayExposeInformation=Ez a PHP-bővítmény érzékeny adatokat fedhet fel. Ha nincs rá szüksége, tiltsa le. +ModuleActivatedDoNotUseInProduction=Egy fejlesztéshez tervezett modul engedélyezve lett. Éles környezetben ne engedélyezze. +CombinationsSeparator=Elválasztó karakter a termékkombinációkhoz +SeeLinkToOnlineDocumentation=Példákért lásd az online dokumentációra mutató hivatkozást a felső menüben +SHOW_SUBPRODUCT_REF_IN_PDF=Ha a %s modul "%s" funkcióját használja, mutassa meg a készlet résztermékeinek részleteit PDF-ben. +AskThisIDToYourBank=Vegye fel a kapcsolatot bankjával az azonosító beszerzéséhez +AdvancedModeOnly=Az engedély csak Speciális engedély módban érhető el +ConfFileIsReadableOrWritableByAnyUsers=A konf fájl bármely felhasználó számára olvasható vagy írható. Csak a webszerver felhasználójának és csoportjának adjon engedélyt. +MailToSendEventOrganization=Eseményszervezés +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 +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=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 sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale 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 -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 +NotRecommended=Nem ajánlott +ARestrictedPath=Néhány korlátozott elérési út +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ő +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=For Proposals, Orders, Invoices. +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 +YouShouldSetThisToOff=Állítsa ezt 0-ra vagy ki +InstallAndUpgradeLockedBy=A telepítést és a frissítéseket a %s fájl zárolja +OldImplementation=Régi megvalósítás +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=Ha egyes online fizetési modulok engedélyezve vannak (Paypal, Stripe, ...), adjon hozzá egy hivatkozást a PDF-fájlhoz az online fizetéshez +DashboardDisableGlobal=Globálisan letiltja a nyitott objektumok összes mutatóját +BoxstatsDisableGlobal=A dobozstatisztika teljes letiltása +DashboardDisableBlocks=Nyitott objektumok mutatói (feldolgozásra vagy késve) a fő műszerfalon +DashboardDisableBlockAgenda=A mutató letiltása a napirendhez +DashboardDisableBlockProject=A mutató letiltása projekteknél +DashboardDisableBlockCustomer=A mutató letiltása az ügyfelek számára +DashboardDisableBlockSupplier=A mutató letiltása a szállítóknál +DashboardDisableBlockContract=A mutató letiltása a szerződéseknél +DashboardDisableBlockTicket=A mutató letiltása a jegyeknél +DashboardDisableBlockBank=A mutató letiltása a bankoknál +DashboardDisableBlockAdherent=A mutató letiltása a tagságoknál +DashboardDisableBlockExpenseReport=A költségjelentések mutatóinak letiltása +DashboardDisableBlockHoliday=A mutató letiltása a leveleknél +EnabledCondition=A mező engedélyezésének feltétele (ha nincs engedélyezve, a láthatóság mindig ki lesz kapcsolva) +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ha második adót szeretne használni, engedélyeznie kell az első forgalmi adót is +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ha harmadik adót szeretne használni, engedélyeznie kell az első forgalmi adót is +LanguageAndPresentation=Nyelv és megjelenítés +SkinAndColors=Bőr és színek +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ha második adót szeretne használni, engedélyeznie kell az első forgalmi adót is +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ha harmadik adót szeretne használni, engedélyeznie kell az első forgalmi adót is +PDF_USE_1A=PDF létrehozása PDF/A-1b formátumban +MissingTranslationForConfKey = Hiányzó fordítás a következőhöz: %s +NativeModules=Natív modulok +NoDeployedModulesFoundWithThisSearchCriteria=Nem található modul ezekhez a keresési feltételekhez +API_DISABLE_COMPRESSION=Az API-válaszok tömörítésének letiltása +EachTerminalHasItsOwnCounter=Minden terminál a saját számlálóját használja. +FillAndSaveAccountIdAndSecret=Először töltse ki és mentse el a fiókazonosítót és a titkot +PreviousHash=Előző hash +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. + +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 +IconOnlyTextOnHover=Csak ikon – Az ikon szövege az ikon alatt jelenik meg, vigye az egeret az ikonra +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 +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 diff --git a/htdocs/langs/hu_HU/agenda.lang b/htdocs/langs/hu_HU/agenda.lang index cb1e0ee84d4..f5c667ac88d 100644 --- a/htdocs/langs/hu_HU/agenda.lang +++ b/htdocs/langs/hu_HU/agenda.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - agenda -IdAgenda=ID event +IdAgenda=ID esemény Actions=Cselekvések Agenda=Napirend TMenuAgenda=Napirend @@ -14,13 +14,13 @@ EventsNb=Események száma ListOfActions=Események listája EventReports=Eseményjelentések Location=Helyszín -ToUserOfGroup=Event assigned to any user in the group +ToUserOfGroup=A csoport bármely felhasználójához hozzárendelt esemény EventOnFullDay=Egész napos esemény MenuToDoActions=Minden nem teljesített cselekvés MenuDoneActions=Minden megszüntetett cselekvés MenuToDoMyActions=Nem teljesített cselekvéseim MenuDoneMyActions=Megszüntetett cselekvéseim -ListOfEvents=List of events (default calendar) +ListOfEvents=Események listája (alapértelmezett naptár) ActionsAskedBy=Cselekvéseket rögzítette ActionsToDoBy=Események hozzárendelve ActionsDoneBy=Végrehajtotta @@ -34,108 +34,111 @@ AutoActions= Napirend automatikus kitöltése AgendaAutoActionDesc= Itt adhatja meg azokat az eseményeket, amelyeket a Dolibarr automatikusan szeretne létrehozni az Agenda programban. Ha semmi nincs bejelölve, akkor csak a kézi műveletek kerülnek be a naplókba, és megjelennek az Agenda programban. Az objektumokon végrehajtott üzleti műveletek (érvényesítés, állapotváltozás) automatikus követése nem kerül mentésre. AgendaSetupOtherDesc= Ez az oldal lehetőséget kínál a Dolibarr -események exportálására külső naptárba (Thunderbird, Google Calendar stb.). AgendaExtSitesDesc=Ez az oldal lehetővé teszi, hogy nyilvánítsa külső forrásokat naptárak látják eseményeket Dolibarr napirenden. -ActionsEvents=Events for which Dolibarr will create an action in agenda automatically +ActionsEvents=Események, amelyekhez a Dolibarr automatikusan létrehoz egy műveletet a napirendben EventRemindersByEmailNotEnabled=Az e -mailben küldött esemény -emlékeztetők nem lettek engedélyezve a %s modul beállításában. ##### Agenda event labels ##### NewCompanyToDolibarr=Harmadik fél %s létrehozta COMPANY_MODIFYInDolibarr=Harmadik fél %s módosította COMPANY_DELETEInDolibarr=Harmadik fél %s törölte ContractValidatedInDolibarr=%s szerződés jóváhagyva -CONTRACT_DELETEInDolibarr=Contract %s deleted -PropalClosedSignedInDolibarr=A %s javaslat alárva -PropalClosedRefusedInDolibarr=Proposal %s refused +CONTRACT_DELETEInDolibarr=%s szerződés törölve +PropalClosedSignedInDolibarr=A %s ajánlat alárva +PropalClosedRefusedInDolibarr=%s ajánlat elutasítva PropalValidatedInDolibarr=%s ajánlat érvényesítve -PropalClassifiedBilledInDolibarr=Proposal %s classified billed +PropalBackToDraftInDolibarr=Az %s árajánlat visszatér a vázlat állapotához +PropalClassifiedBilledInDolibarr=Ajánlat %s minősített számlázva InvoiceValidatedInDolibarr=%s számla érvényesítve -InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS +InvoiceValidatedInDolibarrFromPos=%s számla a POS-ból érvényesítve InvoiceBackToDraftInDolibarr=Számla %s menj vissza a tervezett jogállását InvoiceDeleteDolibarr=%s számla törölve InvoicePaidInDolibarr=%s számla fizetettre változott InvoiceCanceledInDolibarr=%s számla visszavonva MemberValidatedInDolibarr=%s tag jóváhagyva -MemberModifiedInDolibarr=Member %s modified -MemberResiliatedInDolibarr=Member %s terminated -MemberDeletedInDolibarr=Member %s deleted -MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added -MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified -MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted +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 ShipmentValidatedInDolibarr=A %s szállítás jóváhagyva -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 -OrderCreatedInDolibarr=Order %s created +ShipmentClassifyClosedInDolibarr=A %s küldemény minősített számlázva +ShipmentUnClassifyCloseddInDolibarr=A(z) %s szállítmány újra megnyílik +ShipmentBackToDraftInDolibarr=A %s szállítmány visszatér a vázlat állapotába +ShipmentDeletedInDolibarr=%s szállítmány törölve +ShipmentCanceledInDolibarr=Szállítás %s törölve +ReceptionValidatedInDolibarr=A fogadás %s érvényesítve +ReceptionClassifyClosedInDolibarr=Recepció %s zárt besorolású +OrderCreatedInDolibarr=%s rendelés létrehozva OrderValidatedInDolibarr=%s megrendelés érvényesítve -OrderDeliveredInDolibarr=Order %s classified delivered +OrderDeliveredInDolibarr=%s minősített rendelés kézbesítve OrderCanceledInDolibarr=Rendelés %s törölt -OrderBilledInDolibarr=Order %s classified billed +OrderBilledInDolibarr=Rendelés %s minősített számlázva OrderApprovedInDolibarr=Rendelés %s jóváhagyott OrderRefusedInDolibarr=A %s megrendelés elutasítva OrderBackToDraftInDolibarr=Rendelés %s menj vissza vázlat -ProposalSentByEMail=Commercial proposal %s sent by email -ContractSentByEMail=Contract %s sent by email -OrderSentByEMail=Sales order %s sent by email +ProposalSentByEMail=Kereskedelmi ajánlat %s e-mailben elküldve +ContractSentByEMail=A szerződés %s e-mailben elküldve +OrderSentByEMail=%s értékesítési rendelés e-mailben elküldve InvoiceSentByEMail=%s ügyfélszámla e-mailben elküldve -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 +SupplierOrderSentByEMail=%s megrendelés e-mailben elküldve +ORDER_SUPPLIER_DELETEInDolibarr=%s megrendelés törölve +SupplierInvoiceSentByEMail=Szállítói számla %s e-mailben +ShippingSentByEMail=%s küldemény e-mailben ShippingValidated= A %s szállítás jóváhagyva -InterventionSentByEMail=Intervention %s sent by email +InterventionSentByEMail=%s beavatkozás e-mailben elküldve ProposalDeleted=A javaslat törölve OrderDeleted=Rendelés törölve InvoiceDeleted=Számla törölve DraftInvoiceDeleted=Számlatervezet törölve -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 +CONTACT_CREATEInDolibarr=%s névjegy létrehozva +CONTACT_MODIFYInDolibarr=%s névjegy módosult +CONTACT_DELETEInDolibarr=%s névjegy törölve +PRODUCT_CREATEInDolibarr=%s termék létrehozva +PRODUCT_MODIFYInDolibarr=%s termék módosítva +PRODUCT_DELETEInDolibarr=%s termék törölve +HOLIDAY_CREATEInDolibarr=%s szabadságra vonatkozó kérelem létrehozva +HOLIDAY_MODIFYInDolibarr=%s szabadsági kérelem módosítva +HOLIDAY_APPROVEInDolibarr=%s szabadság iránti kérelem jóváhagyva +HOLIDAY_VALIDATEInDolibarr=%s szabadságra vonatkozó kérelem érvényesítve +HOLIDAY_DELETEInDolibarr=%s szabadságra vonatkozó kérelem törölve +EXPENSE_REPORT_CREATEInDolibarr=%s költségjelentés létrehozva +EXPENSE_REPORT_VALIDATEInDolibarr=Költségjelentés %s érvényesítve +EXPENSE_REPORT_APPROVEInDolibarr=Költségjelentés %s jóváhagyva +EXPENSE_REPORT_DELETEInDolibarr=Költségjelentés %s törölve EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused PROJECT_CREATEInDolibarr=%s projekt létrehozva PROJECT_MODIFYInDolibarr=%s projekt módosítva -PROJECT_DELETEInDolibarr=Project %s deleted +PROJECT_DELETEInDolibarr=%s projekt törölve TICKET_CREATEInDolibarr=%s jegy létrehozva -TICKET_MODIFYInDolibarr=Ticket %s modified +TICKET_MODIFYInDolibarr=%s jegy módosítva TICKET_ASSIGNEDInDolibarr=%s jegy hozzárendelve TICKET_CLOSEInDolibarr=%s jegy zárva -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_DELETEInDolibarr=%s jegy törölve +BOM_VALIDATEInDolibarr=Anyagjegyzék (BOM) érvényes +BOM_UNVALIDATEInDolibarr=Az anyagjegyzék (BOM) nem érvényes +BOM_CLOSEInDolibarr=Az anyagjegyzék (BOM) letiltva +BOM_REOPENInDolibarr=Az anyagjegyzék (BOM) újranyitás +BOM_DELETEInDolibarr=Az anyagjegyzék (BOM) törölve +MRP_MO_VALIDATEInDolibarr=MO validált +MRP_MO_UNVALIDATEInDolibarr=MO vázlat állapotra állítva +MRP_MO_PRODUCEDInDolibarr=MO előállított +MRP_MO_DELETEInDolibarr=MO törölve +MRP_MO_CANCELInDolibarr=MO törölve +PAIDInDolibarr=%s fizetve ##### End agenda events ##### -AgendaModelModule=Document templates for event +AgendaModelModule=Dokumentum sablonok eseményhez DateActionStart=Indulási dátum DateActionEnd=Befejezési dátum AgendaUrlOptions1=Az alábbi paramétereket hozzá lehet adni a kimenet szűréséhez: -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=Rejtse el a születésnapokat a névjegyzékben +AgendaUrlOptions3=logina=%s a kimenet korlátozásához a(z) %s felhasználó tulajdonában lévő műveletekre. +AgendaUrlOptionsNotAdmin=logina=!%s a kimenet korlátozása olyan műveletekre, amelyek nem a(z) %s felhasználó tulajdonában vannak. +AgendaUrlOptions4=logint=%s a kimenet korlátozása a(z) %s felhasználóhoz (tulajdonos és mások) rendelt műveletekre. +AgendaUrlOptionsProject=project=__PROJECT_ID__ a kimenet korlátozásához a(z) __PROJECT_ID__ projekthez kapcsolódó műveletekre. +AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto az automatikus események kizárásához. +AgendaUrlOptionsIncludeHolidays=Az includeholidays=1 az ünnepi eseményeket tartalmazza. +AgendaShowBirthdayEvents=Kapcsolattartók születésnapja +AgendaHideBirthdayEvents=Rejtse el a születésnapokat a névjegyzékben Busy=Elfoglalt ExportDataset_event1=A napirend eseményeinek listája DefaultWorkingDays=A hét munkanapjai alapértelmezés szerint (pl. 1-5, 1-6) @@ -144,31 +147,33 @@ DefaultWorkingHours=A napi munkaidő alapértelmezése (pl. 9-18) ExportCal=Export naptár ExtSites=Külső naptárak importálása ExtSitesEnableThisTool=Külső (globális beállításban meghatározott) naptárak megjelenítése az Agendában. Nem érinti a felhasználók által meghatározott külső naptárakat. -ExtSitesNbOfAgenda=Naptárak száma -AgendaExtNb=Calendar no. %s +ExtSitesNbOfAgenda=Naptárak száma +AgendaExtNb=Naptár sz. %s ExtSiteUrlAgenda=Az iCal fájl URL elérése ExtSiteNoLabel=Nincs leírás -VisibleTimeRange=Visible time range -VisibleDaysRange=Visible days range +VisibleTimeRange=Látható időtartomány +VisibleDaysRange=A látható napok tartománya AddEvent=Esemény létrehozása MyAvailability=Elérhetőségem ActionType=Esemény típus -DateActionBegin=Start event date -ConfirmCloneEvent=Are you sure you want to clone the event %s? -RepeatEvent=Repeat event +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=Day of month -DayOfWeek=Day of week -DateStartPlusOne=Date start + 1 hour -SetAllEventsToTodo=Set all events to todo +DayOfMonth=A hónap napja +DayOfWeek=A hét napja +DateStartPlusOne=Kezdési dátum + 1 óra +SetAllEventsToTodo=Állítsa be az összes eseményt tennivalóra SetAllEventsToInProgress=Állítsa az összes eseményt folyamatban lévőre SetAllEventsToFinished=Állítsa az összes eseményt befejezettre -ReminderTime=Reminder period before the event +ReminderTime=Emlékeztető időszak az esemény előtt TimeType=Időtartam típusa -ReminderType=Callback type -AddReminder=Create an automatic reminder notification for this event -ErrorReminderActionCommCreation=Error creating the reminder notification for this event +ReminderType=Visszahívás típusa +AddReminder=Hozzon létre egy automatikus emlékeztető értesítést ehhez az eseményhez +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=Enabled by default +ActiveByDefault=Alapértelmezés szerint engedélyezve +Until=amíg diff --git a/htdocs/langs/hu_HU/banks.lang b/htdocs/langs/hu_HU/banks.lang index e4a27c8e6fb..6de2231ddce 100644 --- a/htdocs/langs/hu_HU/banks.lang +++ b/htdocs/langs/hu_HU/banks.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - banks Bank=Bank -MenuBankCash=Banks | Cash +MenuBankCash=Bankok | Készpénz MenuVariousPayment=Egyéb fizetések -MenuNewVariousPayment=New Miscellaneous payment +MenuNewVariousPayment=Új Vegyes fizetés BankName=Bank neve FinancialAccount=Fiók BankAccount=Bankszámla BankAccounts=Bankszámlák -BankAccountsAndGateways=Bank accounts | Gateways +BankAccountsAndGateways=Bankszámlák | Átjárók ShowAccount=Számla fiók mutatása AccountRef=Pénzügyi mérleg ref AccountLabel=Pénzügyi mérleg címke @@ -31,26 +31,26 @@ Reconciliation=Egyeztetés RIB=Bankszámla száma IBAN=IBAN szám BIC=BIC/SWIFT kód -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 +SwiftValid=BIC/SWIFT érvényes +SwiftNotValid=BIC/SWIFT nem érvényes +IbanValid=BAN érvényes +IbanNotValid=A BAN nem érvényes +StandingOrders=Beszedési megbízások +StandingOrder=Beszedési megbízás +PaymentByDirectDebit=Fizetés csoportos beszedési megbízással +PaymentByBankTransfers=Fizetések átutalással PaymentByBankTransfer=Fizetés átutalással AccountStatement=Számlakivonat AccountStatementShort=Nyilatkozat AccountStatements=Számlakivonatok LastAccountStatements=Utolsó számlakivonatok IOMonthlyReporting=Havi jelentés -BankAccountDomiciliation=Bank address +BankAccountDomiciliation=Bank címe BankAccountCountry=Számla országa BankAccountOwner=Számlatulajdonos neve BankAccountOwnerAddress=Számlatulajdonos címe CreateAccount=Számla létrehozás -NewBankAccount=Új számla fiók +NewBankAccount=Új számla NewFinancialAccount=Új pénzügyi számla MenuNewFinancialAccount=Új pénzügyi számla EditFinancialAccount=Fiók szerkesztése @@ -62,73 +62,73 @@ BankType2=Készpénz számla AccountsArea=Számlák területe AccountCard=Számla kártya DeleteAccount=Számla fiók törlése -ConfirmDeleteAccount=Are you sure you want to delete this account? +ConfirmDeleteAccount=Biztosan törölni szeretné ezt a fiókot? Account=Számla -BankTransactionByCategories=Bank entries by categories -BankTransactionForCategory=Bank entries for category %s +BankTransactionByCategories=Banki bejegyzések kategóriák szerint +BankTransactionForCategory=Banki bejegyzések a(z) %s kategóriában RemoveFromRubrique=Kapcsolat eltávolítása kategóriával -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? -ListBankTransactions=List of bank entries +RemoveFromRubriqueConfirm=Biztosan eltávolítja a kapcsolatot a bejegyzés és a kategória között? +ListBankTransactions=A banki bejegyzések listája IdTransaction=Tranzakció ID azonosító -BankTransactions=Bank entries -BankTransaction=Bank entry -ListTransactions=List entries -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile -TransactionsToConciliateShort=To reconcile +BankTransactions=Banki bejegyzések +BankTransaction=Bank bejegyzés +ListTransactions=Lista bejegyzések +ListTransactionsByCategory=Lista bejegyzések/kategória +TransactionsToConciliate=Bejegyzések egyeztetéséhez +TransactionsToConciliateShort=Az egyeztetés Conciliable=Lehet egyeztetni Conciliate=Összeegyeztetni Conciliation=Egyeztetés -SaveStatementOnly=Save statement only -ReconciliationLate=Reconciliation late +SaveStatementOnly=Csak kimutatás mentése +ReconciliationLate=Késő az egyeztetés IncludeClosedAccount=Közé zárt fiókok -OnlyOpenedAccount=Csak nyitott számla egyenlegeket +OnlyOpenedAccount=Csak nyitott fiókok AccountToCredit=Jóváirandó számla AccountToDebit=Terhelendő számla DisableConciliation=Letiltása összehangolási funkció erre a számlára ConciliationDisabled=Megbékélés funkció tiltva -LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Nyitott +LinkedToAConciliatedTransaction=Összehangolt bejegyzéshez kapcsolódik +StatusAccountOpened=Nyitva StatusAccountClosed=Lezárt AccountIdShort=Szám LineRecord=Tranzakció -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually -Conciliated=Reconciled -ConciliatedBy=Egyeztetésenként +AddBankRecord=Bejegyzés hozzáadása +AddBankRecordLong=Bejegyzés manuális hozzáadása +Conciliated=Egyeztet +ReConciliedBy=Egyeztetésenként DateConciliating=Összeegyeztetés dátuma -BankLineConciliated=Entry reconciled with bank receipt -Reconciled=Reconciled -NotReconciled=Not reconciled +BankLineConciliated=Bejegyzés egyeztetve a banki nyugtával +BankLineReconciled=Egyeztetve +BankLineNotReconciled=Nincs egyeztetve CustomerInvoicePayment=Vásárlói fizetés -SupplierInvoicePayment=Szállítói kifizetés\n +SupplierInvoicePayment=Szállítói fizetés SubscriptionPayment=Előfizetés kiegyenlítése -WithdrawalPayment=Debit payment order +WithdrawalPayment=Teher fizetési megbízás SocialContributionPayment=Szociális/költségvetési adó fizetés -BankTransfer=Credit transfer -BankTransfers=Credit transfers +BankTransfer=Átutalás +BankTransfers=Átutalások MenuBankInternalTransfer=Belső átutalás -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=Használjon belső átutalást az egyik számláról a másikra történő átvitelhez, az alkalmazás két rekordot ír: egy terhelést a forrásszámlán és egy jóváírást a célszámlán. Ennél a tranzakciónál ugyanaz az összeg, címke és dátum kerül felhasználásra. TransferFrom=Feladó TransferTo=Címzett TransferFromToDone=A transzfer %s a %s a %s %s lett felvéve. -CheckTransmitter=Küldő -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? +CheckTransmitter=Feladó +ValidateCheckReceipt=Érvényesíti ezt a csekk nyugtát? +ConfirmValidateCheckReceipt=Biztosan el akarja küldeni ezt a csekk nyugtát érvényesítésre? Az érvényesítést követően semmilyen változtatás nem lehetséges. +DeleteCheckReceipt=Törli ezt a csekk nyugtát? +ConfirmDeleteCheckReceipt=Biztosan törölni szeretné ezt a csekk nyugtát? BankChecks=Banki csekkek BankChecksToReceipt=Letétre váró csekkek -BankChecksToReceiptShort=Letétre váró csekkek +BankChecksToReceiptShort=Csekk befizetésre vár ShowCheckReceipt=Mutasd a letéti csekk bizonylatát -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=Csekk száma +DeleteTransaction=Bejegyzés törlése +ConfirmDeleteTransaction=Biztosan törölni szeretné ezt a bejegyzést? +ThisWillAlsoDeleteBankRecord=Ez a generált banki bejegyzést is törli BankMovements=Pénzmozgások -PlannedTransactions=Planned entries -Graph=Graphs -ExportDataset_banque_1=Bank entries and account statement +PlannedTransactions=Tervezett bejegyzések +Graph=Grafikonok +ExportDataset_banque_1=Banki bejegyzések és számlakivonat ExportDataset_banque_2=Letéti irat TransactionOnTheOtherAccount=Tranzakció a másik számlára PaymentNumberUpdateSucceeded=A fizetés száma sikeresen frissítve @@ -136,49 +136,52 @@ PaymentNumberUpdateFailed=A fizetés számát nem lehet frissíteni PaymentDateUpdateSucceeded=A fizetés időpontja sikeresen frissítve PaymentDateUpdateFailed=Fizetési határidőt nem lehet frissíteni Transactions=Tranzakciók -BankTransactionLine=Bank entry -AllAccounts=All bank and cash accounts +BankTransactionLine=Bank bejegyzés +AllAccounts=Minden bank- és készpénzszámla BackToAccount=Visszalép a számlához ShowAllAccounts=Mutasd az összes fióknál -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=Jövőbeli tranzakció. Képtelen megbékíteni. +SelectChequeTransactionAndGenerate=Válassza ki/szűrje ki azokat a csekkeket, amelyeket a csekkbefizetési bizonylatnak tartalmaznia kell. Ezután kattintson a "Létrehozás" gombra. InputReceiptNumber=Határozza meg az egyeztetéssel összefüggő bank kivonatot. Használjon egy rövidíthető szám értéket: ÉÉÉÉHH or ÉÉÉÉHHNN EventualyAddCategory=Végezetül, határozzon meg egy kategóriát, melybe beosztályozza a könyvelési belyegyzéseket -ToConciliate=To reconcile? +ToConciliate=Békíteni? ThenCheckLinesAndConciliate=Ezután, ellenőrizze a bank kivinathoz tartozó tételsorokat és kattintson DefaultRIB=Alaptértelmezett BAN AllRIB=Összes BAN LabelRIB=BAN felirat NoBANRecord=Nincs BAN megadva DeleteARib=BAN törlése -ConfirmDeleteRib=Are you sure you want to delete this BAN record? +ConfirmDeleteRib=Biztosan törölni szeretné ezt a BAN rekordot? RejectCheck=Csekk visszatért -ConfirmRejectCheck=Are you sure you want to mark this check as rejected? +ConfirmRejectCheck=Biztosan elutasítottként szeretné megjelölni ezt a csekket? RejectCheckDate=Csekk visszatéréséenk dátuma CheckRejected=Csekk visszatért -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 +CheckRejectedAndInvoicesReopened=Csekk visszaküldve és a számlák újranyitása +BankAccountModelModule=Dokumentum sablonok bankszámlákhoz +DocumentModelSepaMandate=SEPA megbízás sablonja. Csak az EGK európai országai számára hasznos. +DocumentModelBan=Sablon a BAN információkat tartalmazó oldal nyomtatásához. +NewVariousPayment=Új vegyes fizetés +VariousPayment=Egyéb fizetések VariousPayments=Egyéb fizetések -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 +ShowVariousPayment=Egyéb fizetések megjelenítése +AddVariousPayment=Vegyes fizetés hozzáadása +VariousPaymentId=Egyéb fizetési azonosító +VariousPaymentLabel=Egyéb fizetési címke +ConfirmCloneVariousPayment=Egyféle fizetés klónjának megerősítése +SEPAMandate=SEPA mandátum +YourSEPAMandate=Az Ön SEPA megbízása +FindYourSEPAMandate=Ez az Ön SEPA felhatalmazása, hogy felhatalmazza cégünket csoportos beszedési megbízás benyújtására az Ön bankja felé. Aláírva küldje vissza (az aláírt dokumentum szkennelése), vagy küldje el postai úton a címre +AutoReportLastAccountStatement=A 'banki kivonat száma' mező automatikus kitöltése az utolsó kivonatszámmal az egyeztetés során +CashControl=POS készpénz ellenőrzés +NewCashFence=Új készpénz-ellenőrzés (nyitás vagy zárás) +BankColorizeMovement=A mozgások színezése +BankColorizeMovementDesc=Ha ez a funkció engedélyezve van, kiválaszthat egy adott háttérszínt a terhelési vagy jóváírási mozgásokhoz +BankColorizeMovementName1=A terhelési mozgás háttérszíne +BankColorizeMovementName2=Háttérszín a hitelmozgáshoz +IfYouDontReconcileDisableProperty=Ha egyes bankszámlákon nem hajt végre banki egyeztetést, tiltsa le azokon a "%s" tulajdonságot a figyelmeztetés eltávolításához. +NoBankAccountDefined=Nincs bankszámla megadva +NoRecordFoundIBankcAccount=Nem található rekord a bankszámlán. Ez általában akkor fordul elő, ha egy rekordot manuálisan töröltek a bankszámlán lévő tranzakciók listájáról (például a bankszámla egyeztetése során). Egy másik ok, hogy a fizetést a „%s” modul letiltásakor rögzítették. +AlreadyOneBankAccount=Már egy bankszámla meghatározva +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA átutalás: „Fizetési típus” „Átutalás” szinten +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Amikor SEPA XML-fájlt generál átutaláshoz, a "PaymentTypeInformation" szakaszt a "CreditTransferTransactionInformation" szakaszban lehet elhelyezni (a "Fizetés" szakasz helyett). Nyomatékosan javasoljuk, hogy ne jelölje be ezt a bejelölést a PaymentTypeInformation Fizetés szinten történő elhelyezéséhez, mivel nem minden bank fogadja el feltétlenül a CreditTransferTransactionInformation szinten. Vegye fel a kapcsolatot bankjával, mielőtt a PaymentTypeInformationt CreditTransferTransactionInformation szinten helyezné el. +ToCreateRelatedRecordIntoBank=Hiányzó kapcsolódó banki rekord létrehozása diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index 205ba0efd8c..e0dd310975b 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -1,37 +1,37 @@ # Dolibarr language file - Source file is en_US - bills Bill=Számla Bills=Számlák -BillsCustomers=Ügyfél számlák +BillsCustomers=Vásárlói számlák BillsCustomer=Vásárlói számla BillsSuppliers=Szállítói számlák -BillsCustomersUnpaid=Nyiott vevőszámlák -BillsCustomersUnpaidForCompany=Fizetetlen vevői száma: %s -BillsSuppliersUnpaid=Fizetetlen szállítói számlák -BillsSuppliersUnpaidForCompany=Fizetetlen szállítók számlái %s részére +BillsCustomersUnpaid=Kifizetetlen vásárlói számlák +BillsCustomersUnpaidForCompany=A %s kifizetetlen ügyfélszámlái +BillsSuppliersUnpaid=Kifizetetlen szállítói számlák +BillsSuppliersUnpaidForCompany=A %s kifizetetlen szállítói számlái BillsLate=Késedelmes fizetések BillsStatistics=Vevőszámla statisztika -BillsStatisticsSuppliers=A szállítói számlák statisztikái -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. +BillsStatisticsSuppliers=Szállítói számlák statisztikái +DisabledBecauseDispatchedInBookkeeping=Letiltva, mert a számlát a könyvelésbe küldték +DisabledBecauseNotLastInvoice=Letiltva, mert a számla nem törölhető. Néhány számlát ez után rögzítettek, és ez lyukakat fog okozni a számlálóban. DisabledBecauseNotErasable=Letiltva, mert nem törölhető InvoiceStandard=Normál számla InvoiceStandardAsk=Normál számla InvoiceStandardDesc=Ez a fajta számla az általános számla. -InvoiceDeposit=Előlegszámla -InvoiceDepositAsk=Előlegszámla -InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. +InvoiceDeposit=Előleg fizetési számla +InvoiceDepositAsk=Előleg fizetési számla +InvoiceDepositDesc=Ez a fajta számla akkor készül, amikor előleg beérkezett. InvoiceProForma=Proforma számla InvoiceProFormaAsk=Proforma számla InvoiceProFormaDesc=Proforma számla egy kép egy valódi számla, de nincs könyvelési értéke. InvoiceReplacement=Csere számla InvoiceReplacementAsk=A számla csere számlája -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'. +InvoiceReplacementDesc=A Csereszámla arra szolgál, hogy egy olyan számlát teljesen kicseréljen, amelynél még nincs befizetés.

    Megjegyzés: Csak a fizetés nélküli számlák cserélhetők ki. Ha a lecserélt számla még nincs lezárva, akkor automatikusan „elhagyott” állapotba kerül. InvoiceAvoir=Jóváírás InvoiceAvoirAsk=Számlát javtó jóváíró számla -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 +InvoiceAvoirDesc=A jóváírás egy negatív számla, amelyet annak a ténynek a kijavítására használnak, hogy a számla a ténylegesen kifizetett összegtől eltérő összeget tartalmaz (pl. az ügyfél tévedésből túl sokat fizetett, vagy nem fizeti ki a teljes összeget, mivel egyes termékeket visszaküldtek). +invoiceAvoirWithLines=Jóváírás létrehozása a származási számla soraival +invoiceAvoirWithPaymentRestAmount=Jóváírás létrehozása a fennmaradó kifizetetlen származási számlával +invoiceAvoirLineWithPaymentRestAmount=Jóváírás a fennmaradó kifizetetlen összegről ReplaceInvoice=Csere erre a számlára %s ReplacementInvoice=Csere számla ReplacedByInvoice=Kicserélve ezzel a számlával %s @@ -41,9 +41,9 @@ CorrectionInvoice=Javító számla UsedByInvoice=Fizetésre használt számla %s ConsumedBy=Által elfogyasztott NotConsumed=Nem fogyasztott -NoReplacableInvoice=Nincsenek helyettesíthető számlák +NoReplacableInvoice=Nincsenek cserélhető számlák NoInvoiceToCorrect=Nincs javítandó számla -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Egy vagy több jóváírás forrása volt CardBill=Számla kártya PredefinedInvoices=Előre definiált számlák Invoice=Számla @@ -52,11 +52,11 @@ Invoices=Számlák InvoiceLine=Számla tételsor InvoiceCustomer=Vásárlói számla CustomerInvoice=Vásárlói számla -CustomersInvoices=Ügyfél számlák -SupplierInvoice=Szállítói számla\n +CustomersInvoices=Vásárlói számlák +SupplierInvoice=Szállítói számla SuppliersInvoices=Szállítói számlák -SupplierInvoiceLines=Szállítói számla sorok -SupplierBill=Szállítói számla\n +SupplierInvoiceLines=Szállítói számla sorai +SupplierBill=Szállítói számla SupplierBills=Szállítói számlák Payment=Fizetés PaymentBack=Visszatérítés @@ -66,56 +66,56 @@ PaymentsBack=Visszatérítések paymentInInvoiceCurrency=Számla pénznemében PaidBack=Visszafizetések DeletePayment=Fizetés törlése -ConfirmDeletePayment=Biztosan törli ezt a befizetést? -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=Az összeg mentésre kerül az összes kedvezmény között, és kedvezményként használható fel az eladó jelenlegi vagy jövőbeli számláihoz. -SupplierPayments=Szállítói kifizetések +ConfirmDeletePayment=Biztosan törölni szeretné ezt a fizetést? +ConfirmConvertToReduc=Szeretné ezt a %s-t szabad jóváírássá konvertálni? +ConfirmConvertToReduc2=Az összeg el lesz mentve az összes engedmény között, és felhasználható kedvezményként az ügyfél jelenlegi vagy jövőbeli számlájához. +ConfirmConvertToReducSupplier=Szeretné átváltani ezt a %s-t elérhető jóváírássá? +ConfirmConvertToReducSupplier2=Az összeg el lesz mentve az összes engedmény között, és felhasználható engedményként a szállító jelenlegi vagy jövőbeli számlájához. +SupplierPayments=Szállítói fizetések ReceivedPayments=Fogadott befizetések ReceivedCustomersPayments=Vásárlóktól kapott befizetések -PayedSuppliersPayments=Az szállítónak fizetett kifizetések +PayedSuppliersPayments=Szállítóknak fizetett kifizetések ReceivedCustomersPaymentsToValid=Jóváhagyásra váró vásárlóktól fogadott befizetések PaymentsReportsForYear=Fizetések jelentései %s PaymentsReports=Fizetések jelentései PaymentsAlreadyDone=Fizetve -PaymentsBackAlreadyDone=A visszatérítések teljesültek +PaymentsBackAlreadyDone=A visszatérítések már megtörténtek PaymentRule=Fizetési szabály -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Fizetési mód +PaymentModes=Fizetési módok +DefaultPaymentMode=Alapértelmezett fizetési mód DefaultBankAccount=Alapértelmezett bankszámla -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Fizetési mód (azonosító) +CodePaymentMode=Fizetési mód (kód) +LabelPaymentMode=Fizetési mód (címke) +PaymentModeShort=Fizetési mód PaymentTerm=Fizetési határidő PaymentConditions=Fizetési feltételek PaymentConditionsShort=Fizetési feltételek PaymentAmount=Fizetés összege PaymentHigherThanReminderToPay=Fizetés magasabb az emlékeztetőben leírtnál -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. +HelpPaymentHigherThanReminderToPay=Figyelem, egy vagy több számla fizetési összege magasabb, mint a fizetendő kintlévőség.
    Szerkessze a bejegyzést, ellenkező esetben erősítse meg, és fontolja meg jóváírás létrehozását minden túlfizetett számlánál kapott többletről. +HelpPaymentHigherThanReminderToPaySupplier=Figyelem, egy vagy több számla kifizetési összege magasabb, mint a fizetendő összeg.
    Szerkessze a bejegyzést, ellenkező esetben erősítse meg, és fontolja meg jóváírás létrehozását minden túlfizetett számlánál. ClassifyPaid=Osztályozva mint 'Fizetve' -ClassifyUnPaid=„Fizetetlen” besorolás +ClassifyUnPaid=„Nem fizetett” besorolás ClassifyPaidPartially=Osztályozva mint 'Részben fizetve' ClassifyCanceled=Osztályozva mint 'Elhagyott' ClassifyClosed=Osztályozva mint 'Lezárt' -ClassifyUnBilled=„Számlázatlan” besorolás +ClassifyUnBilled=„Nem számlázatlan” besorolás CreateBill=Számla létrehozása -CreateCreditNote=Jóváírást létrehozása +CreateCreditNote=Jóváírás létrehozása AddBill=Számla vagy jóváírás készítése AddToDraftInvoices=Számlatervezethez ad DeleteBill=Számla törlése SearchACustomerInvoice=Keressen egy vásárlói számlát -SearchASupplierInvoice=Keressen szállítói számlát +SearchASupplierInvoice=Szállítói számla keresése CancelBill=Visszavon egy számlát -SendRemindByMail=Küldje az emlékeztetőt e-mailben +SendRemindByMail=Emlékeztető küldése e-mailben DoPayment=Adja meg a fizetést DoPaymentBack=Adja meg a visszatérítést -ConvertToReduc=Mark as credit available -ConvertExcessReceivedToReduc=Convert excess received into available credit -ConvertExcessPaidToReduc=A befizetett többletet konvertálja elérhető kedvezménnyé +ConvertToReduc=Megjelölés elérhető hitelként +ConvertExcessReceivedToReduc=A kapott többlet átváltása rendelkezésre álló jóváírásra +ConvertExcessPaidToReduc=A befizetett többlet átváltása elérhető engedménnyel EnterPaymentReceivedFromCustomer=Írja be a vásárlótól kapott a fizetést EnterPaymentDueToCustomer=Legyen esedékes a vásárló fizetése DisabledBecauseRemainderToPayIsZero=Letiltva, mivel a maradék egyenleg 0. @@ -124,88 +124,89 @@ BillStatus=Számla állapota StatusOfGeneratedInvoices=A generált számlák állapota BillStatusDraft=Tervezet (érvényesítés szükséges) BillStatusPaid=Fizetett -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available -BillStatusConverted=Paid (ready for consumption in final invoice) +BillStatusPaidBackOrConverted=Hiteljegy visszatérítés vagy elérhető jóváírásként megjelölve +BillStatusConverted=Fizetett (fogyasztásra kész a végszámlán) BillStatusCanceled=Elveszett BillStatusValidated=Hitelesített (ki kell fizetni) BillStatusStarted=Indította BillStatusNotPaid=Nem fizetett -BillStatusNotRefunded=Nincs visszatérítve +BillStatusNotRefunded=Nem térítették vissza BillStatusClosedUnpaid=Zárt (nem fizetett) BillStatusClosedPaidPartially=Fizetett (részben) BillShortStatusDraft=Tervezet BillShortStatusPaid=Fizetett -BillShortStatusPaidBackOrConverted=Visszatérített vagy átalakított +BillShortStatusPaidBackOrConverted=Visszatérítve vagy átalakítva Refunded=Visszatérítve BillShortStatusConverted=Fizetett BillShortStatusCanceled=Elveszett BillShortStatusValidated=Hitelesítve BillShortStatusStarted=Indította BillShortStatusNotPaid=Nem fizetett -BillShortStatusNotRefunded=Nincs visszatérítve +BillShortStatusNotRefunded=Nem térítik vissza BillShortStatusClosedUnpaid=Lezárt BillShortStatusClosedPaidPartially=Fizetett (részben) PaymentStatusToValidShort=Hitelesítéshez -ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined -ErrorNoPaiementModeConfigured=Nincs megadva alapértelmezett fizetési típus. Ennek megoldásához lépjen a Számla modul beállításához. -ErrorCreateBankAccount=Hozzon létre egy bankszámlát, majd lépjen a Számla modul Beállítás panelre a fizetési típusok meghatározásához +ErrorVATIntraNotConfigured=Közösségen belüli adószám még nincs megadva +ErrorNoPaiementModeConfigured=Nincs megadva alapértelmezett fizetési típus. Ennek javításához lépjen a Számlamodul beállításaihoz. +ErrorCreateBankAccount=Hozzon létre egy bankszámlát, majd lépjen a Számla modul Beállítás paneljére a fizetési típusok meghatározásához ErrorBillNotFound=Számla %s nem létezik -ErrorInvoiceAlreadyReplaced=Hiba, egy számlát próbált érvényesíteni a (z) %s számla helyett. De ezt már a %s számla váltotta fel. +ErrorInvoiceAlreadyReplaced=Hiba, megpróbált érvényesíteni egy számlát a %s számla cseréjéhez. De ezt már felváltotta a %s számla. ErrorDiscountAlreadyUsed=Hiba, a kedvezmény már használt ErrorInvoiceAvoirMustBeNegative=Hiba, a helyetesítő számlátnak negatív összegűnek kell lennie -ErrorInvoiceOfThisTypeMustBePositive=Hiba, ennek a számlatípusnak tartalmaznia kell egy adómentes (vagy nulla) összeget +ErrorInvoiceOfThisTypeMustBePositive=Hiba, ennek a típusú számlának pozitív (vagy nulla) adót nem tartalmazó összeget kell tartalmaznia. ErrorCantCancelIfReplacementInvoiceNotValidated=Hiba, nem lehet törölni egy számlát, a helyébe egy másik számlát, amelyet még mindig vázlat -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ez vagy más rész már használatban van, így a kedvezménysorozatok nem távolíthatók el. +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ez vagy egy másik alkatrész már használatban van, így az akciós sorozatokat nem lehet eltávolítani. +ErrorInvoiceIsNotLastOfSameType=Hiba: Az %s számla dátuma %s. Utólagosnak kell lennie, vagy egyenlőnek kell lennie az utolsó dátummal azonos típusú számlák esetén (%s). Kérjük, módosítsa a számla dátumát. BillFrom=Feladó BillTo=Címzett ActionsOnBill=Műveletek a számlán RecurringInvoiceTemplate=Sablon / Ismétlődő számla -NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation. -FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. -NotARecurringInvoiceTemplate=Nem ismétlődő sablon számla +NoQualifiedRecurringInvoiceTemplateFound=Nincs generálható ismétlődő sablonszámla. +FoundXQualifiedRecurringInvoiceTemplate=%s ismétlődő sablonszámlát találtunk generálásra. +NotARecurringInvoiceTemplate=Nem ismétlődő sablonszámla NewBill=Új számla -LastBills=%s legújabb számlái -LatestTemplateInvoices=%s legújabb sablon számlái -LatestCustomerTemplateInvoices=%s legújabb vásárlói sablon számlái -LatestSupplierTemplateInvoices=Latest %s vendor template invoices -LastCustomersBills=Legutóbbi %s vásárlói számla -LastSuppliersBills=Legutóbbi %s szállítói számla +LastBills=A legújabb %s számlák +LatestTemplateInvoices=A legújabb %s sablonszámlák +LatestCustomerTemplateInvoices=A legfrissebb %s ügyfélsablon számlák +LatestSupplierTemplateInvoices=A legújabb %s szállítói sablon számlák +LastCustomersBills=A legfrissebb %s ügyfélszámlák +LastSuppliersBills=A legújabb %s szállítói számlák AllBills=Minden számla -AllCustomerTemplateInvoices=Minden sablon számla +AllCustomerTemplateInvoices=Minden sablonszámla OtherBills=Más számlák DraftBills=Tervezet számlák -CustomersDraftInvoices=Ügyfél számlatervezetek +CustomersDraftInvoices=Vásárlói számlatervezetek SuppliersDraftInvoices=Szállítói számlatervezetek Unpaid=Kifizetetlen -ErrorNoPaymentDefined=Hiba nincs megadva fizetés -ConfirmDeleteBill=Biztosan törli ezt a számlát? -ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? -ConfirmUnvalidateBill=Biztos benne, hogy a %s számlát piszkozat állapotra szeretné módosítani? -ConfirmClassifyPaidBill=Biztosan módosítani szeretné az %s számlát kifizetett állapotra?\n -ConfirmCancelBill=Biztosan érvényteleníti a %s számlát? -ConfirmCancelBillQuestion=Miért szeretné ezt a számlát „elhagyottnak” minősíteni? -ConfirmClassifyPaidPartially=Biztosan módosítani szeretné az %s számlát kifizetett állapotra?\n -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. +ErrorNoPaymentDefined=Hiba Nincs fizetés meghatározva +ConfirmDeleteBill=Biztosan törölni szeretné ezt a számlát? +ConfirmValidateBill=Biztosan érvényesíteni szeretné ezt a számlát a %s hivatkozással? +ConfirmUnvalidateBill=Biztosan módosítani szeretné a(z) %s számla tervezet állapotát? +ConfirmClassifyPaidBill=Biztos benne, hogy a(z) %s számlát kifizetett állapotúra szeretné módosítani? +ConfirmCancelBill=Biztosan törölni szeretné a(z) %s számlát? +ConfirmCancelBillQuestion=Miért szeretné "elhagyottnak" minősíteni ezt a számlát? +ConfirmClassifyPaidPartially=Biztos benne, hogy a(z) %s számlát kifizetett állapotúra szeretné módosítani? +ConfirmClassifyPaidPartiallyQuestion=Ez a számla nincs teljesen kifizetve. Mi az oka ennek a számla lezárásának? +ConfirmClassifyPaidPartiallyReasonAvoir=A hátralévő kiegyenlítés (%s %s) egy kedvezmény, amelyet azért adnak, mert a fizetés határidő előtt történt. Az áfát jóváírással rendezem. +ConfirmClassifyPaidPartiallyReasonDiscount=Fennmaradó kifizetetlen (%s %s) egy kedvezmény, amelyet azért adnak, mert a fizetés határidő előtt történt. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Maradék egyenleg (%s %s) elengedésre kerül kedvezményként, mivel a kifizetés a hatridő elött történt. Az ÁFA-t nem korrigálm, a jóváírás áfája elvesztésre kerül. ConfirmClassifyPaidPartiallyReasonDiscountVat=Maradék egyenleg (%s %s) elengedésre kerül kedvezményként, mivel a kifizetés a határidő előtt történt. Az ÁFA-t visszaigénylem jóváírás készítése nélkül. ConfirmClassifyPaidPartiallyReasonBadCustomer=Rossz ügyfél -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Banki levonás (közvetítő banki díjak) ConfirmClassifyPaidPartiallyReasonProductReturned=Részben visszaszállított termékek ConfirmClassifyPaidPartiallyReasonOther=Összeg elhagyott más okból -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=Egyes országokban ez a választás csak akkor lehetséges, ha a számla helyes megjegyzéseket tartalmaz. +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ez a választás akkor lehetséges, ha a számláját megfelelő megjegyzésekkel látták el. (Példa "Csak a ténylegesen megfizetett árnak megfelelő adó ad levonási jogot") +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Egyes országokban ez a választás csak akkor lehetséges, ha a számlája megfelelő megjegyzéseket tartalmaz. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Használja ezt minden más esetben. -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A bad customer is a customer that refuses to pay his debt. +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A rossz ügyfél olyan ügyfél, aki nem hajlandó fizetni tartozását. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ez a választás akkor használatos, ha a fizetés nem teljes, mert egyes termékek kerültek vissza -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=A ki nem fizetett összeg közvetítő banki díjak, amelyet közvetlenül az Ügyfél által fizetett helyes összegből vonnak le. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Használja ezt a lehetőséget, ha az összes többi nem megfelelő, például a következő helyzetben:
    - a fizetés nem fejeződött be, mert egyes termékeket visszaküldtek
    - túl fontos az igényelt összeg, mert elfelejtették a kedvezményt
    Minden esetben , a túligényelt összeget a számviteli rendszerben jóváírás készítésével kell korrigálni. ConfirmClassifyAbandonReasonOther=Más ConfirmClassifyAbandonReasonOtherDesc=Ez a választás fogja használni minden más esetben. Például azért, mert azt tervezi, hogy létrehoz egy számla helyett. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Biztosan érvényesíteni szeretné ezt a befizetést? A fizetés érvényesítése után nem lehet változtatni. +ConfirmCustomerPayment=Megerősíti ezt a befizetést a következőhöz: %s %s? +ConfirmSupplierPayment=Megerősíti ezt a befizetést a következőhöz: %s %s? +ConfirmValidatePayment=Biztosan érvényesíteni szeretné ezt a fizetést? A fizetés érvényesítése után nem lehet változtatni. ValidateBill=Számla jóváhagyása UnvalidateBill=Számla jóváhagyás törlése NumberOfBills=Számlák száma @@ -213,46 +214,46 @@ NumberOfBillsByMonth=Számlák száma havonta AmountOfBills=Számlák összege AmountOfBillsHT=Számlák összege (adó nélkül) AmountOfBillsByMonthHT=Összege a számlák havonta (adózott) -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=Helyzetszámla engedélyezése +UseSituationInvoicesCreditNote=Számla-jóváírás engedélyezése +Retainedwarranty=Fenntartott garancia +AllowedInvoiceForRetainedWarranty=Fenntartott garancia a következő típusú számlákra +RetainedwarrantyDefaultPercent=Fenntartott jótállási alapértelmezett százalék +RetainedwarrantyOnlyForSituation=A „fenntartott jótállás” csak a helyzetszámlákra vonatkozó +RetainedwarrantyOnlyForSituationFinal=A helyzetszámlákon a globális "fenntartott garancia" levonás csak a végső helyzetre vonatkozik +ToPayOn=Fizetés: %s +toPayOn=%s fizetéshez +RetainedWarranty=Fenntartott garancia +PaymentConditionsShortRetainedWarranty=Fenntartott garanciális fizetési feltételek +DefaultPaymentConditionsRetainedWarranty=Alapértelmezett fenntartott garanciális fizetési feltételek +setPaymentConditionsShortRetainedWarranty=A fenntartott garanciális fizetési feltételek beállítása +setretainedwarranty=Fenntartott garancia beállítása +setretainedwarrantyDateLimit=A fenntartott jótállás dátumának korlátjának beállítása +RetainedWarrantyDateLimit=A jótállás megtartásának határideje +RetainedWarrantyNeed100Percent=A helyzetszámlának 100%%-os előrehaladást kell elérnie, hogy megjelenjen a PDF-ben AlreadyPaid=Már kifizetett AlreadyPaidBack=Visszafizetés megtörtént -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) +AlreadyPaidNoCreditNotesNoDeposits=Már kifizetve (jóváírás és előleg nélkül) Abandoned=Elveszett RemainderToPay=Maradék egyenleg -RemainderToPayMulticurrency=Fizetetlen, eredeti pénznem +RemainderToPayMulticurrency=Fennmaradó kifizetetlen, eredeti pénznem RemainderToTake=Fennmaradt átadandó összeg -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=Fennmaradó összeg, eredeti pénznem +RemainderToPayBack=Fennmaradó visszafizetendő összeg +RemainderToPayBackMulticurrency=Fennmaradó összeg, eredeti pénznemben +NegativeIfExcessRefunded=negatív, ha többletvisszatérítés történik Rest=Folyamatban AmountExpected=Követelt összeg ExcessReceived=Túlfizetés beérkezett -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received -ExcessPaid=Túlfizetett -ExcessPaidMulticurrency=Túlfizetett, eredeti pénznem +ExcessReceivedMulticurrency=Túlzott összeg, eredeti pénznem +NegativeIfExcessReceived=Negatív, ha többlet érkezik +ExcessPaid=Túlfizetés +ExcessPaidMulticurrency=Túlfizetés, eredeti pénznem EscompteOffered=Árengedmény (kif. előtt tart) EscompteOfferedShort=Kedvezmény SendBillRef=Számla elküldése %s SendReminderBillRef=Számla elküldése %s (emlékeztető) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Befizetési bizonylat benyújtása %s NoDraftBills=Nincsenek tervezet számlák NoOtherDraftBills=Nincs más tervezet számlák NoDraftInvoices=Nincs számlaterv @@ -262,40 +263,42 @@ RemainderToBill=Emlékeztető számlázásra SendBillByMail=Számla küldése e-mailben SendReminderBillByMail=Küldje az emlékeztetőt e-mailben RelatedCommercialProposals=Kapcsolódó üzleti ajánlatok -RelatedRecurringCustomerInvoices=Related recurring customer invoices +RelatedRecurringCustomerInvoices=Kapcsolódó ismétlődő vásárlói számlák MenuToValid=Jóváhagyásra -DateMaxPayment=Fizetés esedékes +DateMaxPayment=A fizetés esedékessége DateInvoice=Számla dátuma -DatePointOfTax=Point of tax +DatePointOfTax=Adópont NoInvoice=Nincs számla NoOpenInvoice=Nincs nyitott számla -NbOfOpenInvoices=Nyitott számlák száma +NbOfOpenInvoices=A nyitott számlák száma ClassifyBill=Számla osztályozása -SupplierBillsToPay=Fizetetlen szállítói számlák +SupplierBillsToPay=Kifizetetlen szállítói számlák CustomerBillsUnpaid=Nyiott vevőszámlák NonPercuRecuperable=Nem visszahozható -SetConditions=Állítsa be a fizetési feltételeket +SetConditions=Fizetési feltételek beállítása SetMode=Fizetési típus beállítása -SetRevenuStamp=Set revenue stamp +SetRevenuStamp=Bevételi bélyeg beállítása Billed=Kiszámlázott RecurringInvoices=Ismétlődő számlák -RecurringInvoice=Recurring invoice +RecurringInvoice=Ismétlődő számla RepeatableInvoice=Számla minta RepeatableInvoices=Számlaminták +RecurringInvoicesJob=Ismétlődő számlák generálása (értékesítési számlák) +RecurringSupplierInvoicesJob=Ismétlődő számlák generálása (beszerzési számlák) Repeatable=Minta Repeatables=Minták ChangeIntoRepeatableInvoice=Konvertálás számlamintává CreateRepeatableInvoice=Számlaminta készítése CreateFromRepeatableInvoice=Létrehozás számlamintából -CustomersInvoicesAndInvoiceLines=Vásárlói számlák és a számla részletei +CustomersInvoicesAndInvoiceLines=Vásárlói számlák és számlaadatok CustomersInvoicesAndPayments=Vevői számlák és kifizetések -ExportDataset_invoice_1=Vásárlói számlák és a számla részletei +ExportDataset_invoice_1=Vásárlói számlák és számla részletei ExportDataset_invoice_2=Vevői számlák és befizetések ProformaBill=Proforma számla: Reduction=Csökkentés -ReductionShort=Disc. +ReductionShort=Kedvezm. Reductions=Csökkentések -ReductionsShort=Disc. +ReductionsShort=Kedvezm. Discounts=Kedvezmények AddDiscount=Kedvezmény létrehozása AddRelativeDiscount=Relatív kedvezmény létrehozása @@ -304,35 +307,35 @@ AddGlobalDiscount=Abszolút kedvezmény létrehozása EditGlobalDiscounts=Abszolút kedvezmények szerkesztése AddCreditNote=Jóváírást létrehozása ShowDiscount=Kedvezmény mutatása -ShowReduc=Mutasd meg a kedvezményt -ShowSourceInvoice=A forrás számla megjelenítése +ShowReduc=Mutasd a kedvezményt +ShowSourceInvoice=A forrásszámla megjelenítése RelativeDiscount=Relatív kedvezmény GlobalDiscount=Globális kedvezmény CreditNote=Jóváírást CreditNotes=Jóváírások -CreditNotesOrExcessReceived=Credit notes or excess received +CreditNotesOrExcessReceived=Jóváírás vagy többlet kapott Deposit=Előleg Deposits=Előlegek DiscountFromCreditNote=Kedvezmény a jóváírásból %s -DiscountFromDeposit=Down payments from invoice %s -DiscountFromExcessReceived=Payments in excess of invoice %s -DiscountFromExcessPaid=Payments in excess of invoice %s +DiscountFromDeposit=Előlegek a %s számláról +DiscountFromExcessReceived=A %s számlát meghaladó kifizetések +DiscountFromExcessPaid=A %s számlát meghaladó befizetések AbsoluteDiscountUse=Ez a fajta hitel felhasználható a számlán, mielőtt azok jóváhagyásra kerülnek -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +CreditNoteDepositUse=A számlát érvényesíteni kell az ilyen típusú jóváírások használatához NewGlobalDiscount=Új abszolút kedvezmény NewRelativeDiscount=Új relatív kedvezmény DiscountType=Kedvezmény típusa NoteReason=Megjegyzés / Ok ReasonDiscount=Ok DiscountOfferedBy=Által nyújtott -DiscountStillRemaining=Discounts or credits available -DiscountAlreadyCounted=Discounts or credits already consumed +DiscountStillRemaining=Elérhető engedmények vagy kreditek +DiscountAlreadyCounted=Már felhasznált engedmények vagy kreditek CustomerDiscounts=Vásárlói kedvezmények -SupplierDiscounts=Szállítói kedvezmények +SupplierDiscounts=Szállítói engedmények BillAddress=Szánmlázási cím -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=Ez a kedvezmény az ügyfélnek biztosított kedvezmény, mert a fizetés a határidő előtt történt. +HelpAbandonBadCustomer=Ezt az összeget elhagyták (az ügyfélről azt mondják, hogy rossz ügyfél), és rendkívüli veszteségnek minősül. +HelpAbandonOther=Ezt az összeget egy hiba miatt hagyták el (például rossz ügyfél vagy számlát cseréltek ki egy másikkal) IdSocialContribution=Szociális/költségvetési adó fizetési azonosító PaymentId=Fizetés id PaymentRef=Fizetési hivatkozás @@ -343,75 +346,75 @@ InvoiceStatus=Számla állapota InvoiceNote=Számla megjegyzés InvoicePaid=Számla fizetett InvoicePaidCompletely=Teljesen kifizetve -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=Rendelés számlázva -DonationPaid=Donation paid +InvoicePaidCompletelyHelp=A teljes mértékben kifizetett számlák. Ez nem tartalmazza a részben kifizetett számlákat. Az összes „Lezárt” vagy nem „Lezárt” számla megtekintéséhez használjon szűrőt a számla állapotára vonatkozóan. +OrderBilled=A rendelés kiszámlázva +DonationPaid=Az adomány kifizetve PaymentNumber=Fizetés száma RemoveDiscount=Vegye el a kedvezményt WatermarkOnDraftBill=Vízjel a számla sablonokon (semmi, ha üres) InvoiceNotChecked=Nincs számla kiválasztva ConfirmCloneInvoice=Biztosan klónozni szeretné ezt a számlát %s? DisabledBecauseReplacedInvoice=Akció tiltva, mert számlát kicserélte -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payments during the fixed year are included here. +DescTaxAndDividendsArea=Ez a terület a speciális kiadásokra teljesített összes kifizetés összegzését mutatja. Csak azok a rekordok szerepelnek itt, amelyekben a fix év során történt kifizetések. NbOfPayments=Kifizetések száma SplitDiscount=Kedvezmény kettéosztása -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=Biztosan fel akarja osztani ezt a %s %s kedvezményt két kisebb kedvezményre? +TypeAmountOfEachNewDiscount=Beviteli összeg a két rész mindegyikéhez: +TotalOfTwoDiscountMustEqualsOriginal=A két új kedvezmény összegének meg kell egyeznie az eredeti engedmény összegével. +ConfirmRemoveDiscount=Biztosan el akarja távolítani ezt a kedvezményt? RelatedBill=Kapcsolódó számla RelatedBills=Kapcsolódó számlák RelatedCustomerInvoices=Kapcsolódó ügyfélszámlák RelatedSupplierInvoices=Kapcsolódó szállítói számlák LatestRelatedBill=Utolsó kapcsolódó számla WarningBillExist=Figyelem, egy vagy több számla már létezik -MergingPDFTool=Merging PDF tool -AmountPaymentDistributedOnInvoice=Fizetési összeg a számlán -PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company +MergingPDFTool=PDF egyesítési eszköz +AmountPaymentDistributedOnInvoice=A számlán elosztott fizetési összeg +PaymentOnDifferentThirdBills=Különböző harmadik felek számláira történő fizetés engedélyezése, de ugyanaz az anyavállalat PaymentNote=Fizetési megjegyzés -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 +ListOfPreviousSituationInvoices=Korábbi számlák listája +ListOfNextSituationInvoices=A következő helyzetű számlák listája +ListOfSituationInvoices=A helyzetszámlák listája +CurrentSituationTotal=Teljes jelenlegi helyzet +DisabledBecauseNotEnouthCreditNote=Egy helyzetszámla ciklusból való eltávolításához a számla jóváírási összegének fedeznie kell ezt a számla végösszegét +RemoveSituationFromCycle=Távolítsa el ezt a számlát a ciklusból +ConfirmRemoveSituationFromCycle=Eltávolítja ezt a számlát %s a ciklusból? +ConfirmOuting=Kimenet megerősítése FrequencyPer_d=Minden %s. nap FrequencyPer_m=Minden %s. hónap FrequencyPer_y=Minden %s. év -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 +FrequencyUnit=Frekvencia egység +toolTipFrequency=Példák:
    7. készlet, nap: új számlát ad 7 naponta
    3. halmaz, hónap: új számlát ad 3 havonta NextDateToExecution=Következő számlakészítés dátuma -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=A számlák automatikus érvényesítése -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=Tekintse meg az elérhető kedvezményeket -GroupPaymentsByModOnReports=Group payments by mode on reports +NextDateToExecutionShort=A következő generáció dátuma. +DateLastGeneration=A legújabb generáció dátuma +DateLastGenerationShort=A legfrissebb generáció dátuma. +MaxPeriodNumber=Max. számlagenerálás száma +NbOfGenerationDone=A már elkészült számlagenerálások száma +NbOfGenerationOfRecordDone=A már elkészült rekordok száma +NbOfGenerationDoneShort=A végzett generálás száma +MaxGenerationReached=Elérte a generációk maximális számát +InvoiceAutoValidate=Számlák automatikus ellenőrzése +GeneratedFromRecurringInvoice=Sablon ismétlődő számlából generálva: %s +DateIsNotEnough=A dátum még nem érte el +InvoiceGeneratedFromTemplate=A %s számla ismétlődő sablonszámla %s alapján készült +GeneratedFromTemplate=A %s számlás sablonból generálva +WarningInvoiceDateInFuture=Figyelem, a számla dátuma magasabb, mint az aktuális dátum +WarningInvoiceDateTooFarInFuture=Figyelem, a számla dátuma túl messze van az aktuális dátumtól +ViewAvailableGlobalDiscounts=Az elérhető kedvezmények megtekintése +GroupPaymentsByModOnReports=A kifizetések csoportosítása mód szerint a jelentésekben # PaymentConditions -Statut=Státusz -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +Statut=Állapot +PaymentConditionShortRECEP=Utánvétel +PaymentConditionRECEP=Utánvétel PaymentConditionShort30D=30 nap PaymentCondition30D=30 nap PaymentConditionShort30DENDMONTH=30 nap a hónap végén -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentCondition30DENDMONTH=A hónap végét követő 30 napon belül PaymentConditionShort60D=60 nap PaymentCondition60D=60 nap PaymentConditionShort60DENDMONTH=60 nap a hónap végén -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentCondition60DENDMONTH=A hónap végét követő 60 napon belül PaymentConditionShortPT_DELIVERY=Kézbesítés PaymentConditionPT_DELIVERY=Kézbesítéskor PaymentConditionShortPT_ORDER=Megrendelés @@ -420,46 +423,56 @@ PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% azonnal, 50%% átvételkor PaymentConditionShort10D=10 nap PaymentCondition10D=10 nap -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month +PaymentConditionShort10DENDMONTH=10 nap a hónap végén +PaymentCondition10DENDMONTH=A hónap végét követő 10 napon belül PaymentConditionShort14D=14 nap PaymentCondition14D=14 nap PaymentConditionShort14DENDMONTH=14 nap a hónap végén -PaymentCondition14DENDMONTH=Within 14 days following the end of the month -FixAmount=Fixed amount - 1 line with label '%s' +PaymentCondition14DENDMONTH=A hónap végét követő 14 napon belül +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% letét +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% letét, a fennmaradó rész kiszállításkor +FixAmount=Rögzített összeg – 1 sor „%s” címkével VarAmount=Változó összeg (%% össz.) -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s' -VarAmountAllLines=Variable amount (%% tot.) - all lines from origin +VarAmountOneLine=Változó mennyiség (%% összesen) – 1 sor „%s” címkével +VarAmountAllLines=Változó mennyiség (%% összesen) - minden sor a forrásból +DepositPercent=Letét %% +DepositGenerationPermittedByThePaymentTermsSelected=Ezt a kiválasztott fizetési feltételek lehetővé teszik +GenerateDeposit=%s%% letéti számla generálása +ValidateGeneratedDeposit=Érvényesítse a generált betétet +DepositGenerated=Betét keletkezett +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Csak ajánlatból vagy rendelésből tud automatikusan letétet generálni +ErrorPaymentConditionsNotEligibleToDepositCreation=A választott fizetési feltételek nem jogosultak automatikus befizetésre # PaymentType PaymentTypeVIR=Banki átutalás PaymentTypeShortVIR=Banki átutalás -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Beszedési megbízás +PaymentTypePREdetails=(a fiókban *-%s) +PaymentTypeShortPRE=Teher fizetési megbízás PaymentTypeLIQ=Készpénz PaymentTypeShortLIQ=Kp PaymentTypeCB=Bankkártya PaymentTypeShortCB=Hitelkártya PaymentTypeCHQ=Csekk PaymentTypeShortCHQ=Csekk -PaymentTypeTIP=TIP (Documents against Payment) -PaymentTypeShortTIP=TIP Payment +PaymentTypeTIP=TIP (Dokumentumok fizetés ellenében) +PaymentTypeShortTIP=TIP Fizetés PaymentTypeVAD=Online fizetés PaymentTypeShortVAD=Online fizetés -PaymentTypeTRA=Banki tervezet +PaymentTypeTRA=Bankváltó PaymentTypeShortTRA=Piszkozat -PaymentTypeFAC=Factor -PaymentTypeShortFAC=Factor -PaymentTypeDC=Debit/Credit Card +PaymentTypeFAC=Tényező +PaymentTypeShortFAC=Tényező +PaymentTypeDC=Betéti/Hitelkártya PaymentTypePP=PayPal BankDetails=Banki adatok BankCode=Bank kódja -DeskCode=Branch code +DeskCode=Fiókkód BankAccountNumber=Számlaszám -BankAccountNumberKey=Checksum +BankAccountNumberKey=Ellenőrző összeg Residence=Cím IBANNumber=IBAN számlaszám IBAN=IBAN -CustomerIBAN=Az ügyfél IBAN -száma +CustomerIBAN=Az ügyfél IBAN-ja SupplierIBAN=Szállító IBAN száma BIC=BIC / SWIFT BICNumber=BIC/SWIFT kód @@ -467,8 +480,8 @@ ExtraInfos=Extra infók RegulatedOn=Szabályozni ChequeNumber=Csekk N ° ChequeOrTransferNumber=Csekk / Transzfer N ° -ChequeBordereau=Ellenőrizze az ütemtervet -ChequeMaker=Check/Transfer sender +ChequeBordereau=Ellenőrzés ütemezése +ChequeMaker=Feladó ellenőrzése/átadása ChequeBank=Csekk bankja CheckBank=Csekk NetToBePaid=Fizetendő nettó @@ -476,33 +489,34 @@ PhoneNumber=Tel FullPhoneNumber=Telefon TeleFax=Fax PrettyLittleSentence=Fogadja el az esedékes összegeket a nevemre kibocsátott csekkeken a számviteli egyesület tagjaként, amit az adóigazgatási adminisztráció által jóváhagyott. -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=Közösségen belüli áfaazonosító +PaymentByChequeOrderedTo=A csekkbefizetések (adóval együtt) %s részére fizetendők, küldje el +PaymentByChequeOrderedToShort=A csekkbefizetéseket (adóval együtt) kell fizetni SendTo=küldött -PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account +PaymentByTransferOnThisBankAccount=Fizetés átutalással a következő bankszámlára VATIsNotUsedForInvoice=* Nem alkalmazható ÁFA art-293B a CGI +VATIsNotUsedForInvoiceAsso=* Nem alkalmazható ÁFA, a CGI-261-7 cikkelye LawApplicationPart1=A jog alkalmazása a 80,335 12/05/80 LawApplicationPart2=az áru tulajdonában marad: -LawApplicationPart3=the seller until full payment of +LawApplicationPart3=Az eladó a teljes kifizetésig LawApplicationPart4=azok árait. -LimitedLiabilityCompanyCapital=SARL a főváros +LimitedLiabilityCompanyCapital=SARL tőkével UseLine=Alkalmaz UseDiscount=Használja kedvezmény UseCredit=Használja hitel UseCreditNoteInInvoicePayment=Végösszeg csökkentése ezzel a hitellel -MenuChequeDeposits=Check Deposits +MenuChequeDeposits=Befizetések ellenőrzése MenuCheques=Csekkek -MenuChequesReceipts=Check receipts +MenuChequesReceipts=Nyugták ellenőrzése NewChequeDeposit=Új betéti -ChequesReceipts=Check receipts -ChequesArea=Check deposits area -ChequeDeposits=Check deposits +ChequesReceipts=Nyugták ellenőrzése +ChequesArea=Csekk befizetési terület +ChequeDeposits=Csekk befizetések Cheques=Csekkek -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 +DepositId=Letét Id +NbCheque=Csekkek száma +CreditNoteConvertedIntoDiscount=Ez a %s a következőre lett konvertálva: %s +UsBillingContactAsIncoiveRecipientIfExist=Használja a kapcsolattartót/címet 'számlázási kapcsolattartó' típussal a harmadik fél címe helyett a számlák címzettjeként ShowUnpaidAll=Összes ki nem fizetett számlák mutatása ShowUnpaidLateOnly=Csak a későn fizetett számlák mutatása PaymentInvoiceRef=Fizetési számla %s @@ -512,98 +526,99 @@ Cash=Készpénz Reported=Késik DisabledBecausePayments=Nem lehetséges, mert van némi kifizetés CantRemovePaymentWithOneInvoicePaid=Nem lehet eltávolítani a fizetést, hiszen legalább egy számla kifizettetként osztályozott -CantRemovePaymentVATPaid=Can't remove payment since VAT declaration is classified paid -CantRemovePaymentSalaryPaid=Can't remove payment since salary is classified paid +CantRemovePaymentVATPaid=Nem lehet eltávolítani a fizetést, mivel az áfabevallás fizetettnek minősül +CantRemovePaymentSalaryPaid=Nem távolítható el a kifizetés, mivel a fizetés kifizetettnek minősül ExpectedToPay=Várható fizetés -CantRemoveConciliatedPayment=Can't remove reconciled payment +CantRemoveConciliatedPayment=Nem távolítható el az egyeztetett fizetés PayedByThisPayment=Ezzel a fizetéssel fizetve -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=Automatikusan minősítse az áfa -bevallást "fizetettnek", ha a fizetés teljes. -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=Minden szabványos, előleg- vagy csereszámlát automatikusan "Kifizetett" kategóriába sorolja, ha a fizetés teljesen megtörtént. +ClosePaidCreditNotesAutomatically=Minden jóváírás automatikus besorolása "Kifizetett" kategóriába, ha a visszatérítés megtörtént. +ClosePaidContributionsAutomatically=Minden társadalombiztosítási vagy adófizetési hozzájárulás automatikus besorolása „Kifizetett” kategóriába, ha a kifizetés teljes egészében megtörtént. +ClosePaidVATAutomatically=Áfa-bevallás automatikus besorolása "Kifizetett"-re, ha a fizetés teljesen megtörtént. +ClosePaidSalaryAutomatically=A fizetés automatikus besorolása "Kifizetett" kategóriába, ha a kifizetés teljesen megtörtént. +AllCompletelyPayedInvoiceWillBeClosed=Minden számla, amelynél nincs hátralék fizetni, automatikusan „Kifizetett” állapottal záródik. ToMakePayment=Kifizetés ToMakePaymentBack=Visszafizetés ListOfYourUnpaidInvoices=Nyitott számlák listája -NoteListOfYourUnpaidInvoices=Megjegyzés: Ez a lista csak azon harmadik felek számláit tartalmazza, akikhez értékesítési képviselőként kapcsolódik. -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 +NoteListOfYourUnpaidInvoices=Megjegyzés: Ez a lista csak azon harmadik felek számláit tartalmazza, akikkel Ön értékesítési képviselőként kapcsolódik. +RevenueStamp=Adóbélyeg +YouMustCreateInvoiceFromThird=Ez a lehetőség csak akkor érhető el, ha számlát hoz létre a harmadik fél "Ügyfél" lapjáról +YouMustCreateInvoiceFromSupplierThird=Ez a lehetőség csak akkor érhető el, ha számlát hoz létre harmadik fél "Szállító" lapjáról +YouMustCreateStandardInvoiceFirstDesc=Először létre kell hoznia egy szabványos számlát, majd "sablonná" kell konvertálnia egy új sablon létrehozásához +PDFCrabeDescription=Számla PDF sablon Crabe. Teljes számlasablon (a Sponge sablon régi megvalósítása) +PDFSpongeDescription=Számla PDF sablon szivacs. Teljes számla sablon +PDFCrevetteDescription=Számla PDF sablon Crevette. Teljes számlasablon helyzetszámlákhoz +TerreNumRefModelDesc1=Visszatérési szám a következő formátumban: %syymm-nnnn szabványos számlákhoz és %syymm-nnnn jóváírásokhoz, ahol az yy az év, a mm a hónap és az nnnn egy szekvenciális automatikusan növekvő szám, megszakítás nélkül és 0-hoz való visszatérés nélkül +MarsNumRefModelDesc1=Visszaküldési szám a következő formátumban: %syymm-nnnn szabványos számlákhoz, %syymm-nnnn csereszámlákhoz, %syymm-nnnn előlegszámlához és %syymm-nnnn jóváíráshoz, ahol az yy év, mm a hónap és nnnn egy szekvenciális automatikusan növekvő szám törés és 0-hoz való visszatérés nélkül TerreNumRefModelError=A $syymm kezdődéssel már létezik számla, és nem kompatibilis ezzel a sorozat modellel. Töröld le vagy nevezd át, hogy aktiválja ezt a modult. -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=Visszaküldési szám a következő formátumban: %syymm-nnnn szabványos számlákhoz, %syymm-nnnn jóváírásokhoz és %syymm-nnnn előlegszámlákhoz, ahol az yy év, mm a hónap és az nnnn egy szekvenciális automatikusan növekvő szám szünet és nincs visszatérés a 0-hoz +EarlyClosingReason=A korai bezárás oka +EarlyClosingComment=Korai záró megjegyzés ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Reprezentatív vevőszámla nyomon követése TypeContact_facture_external_BILLING=Ügyfél számla Kapcsolat TypeContact_facture_external_SHIPPING=Megrendelő szállítási kapcsolattartó TypeContact_facture_external_SERVICE=Ügyfélszolgálat Kapcsolat -TypeContact_invoice_supplier_internal_SALESREPFOLL=Representative following-up vendor invoice -TypeContact_invoice_supplier_external_BILLING=Szállítói számla elérhetősége -TypeContact_invoice_supplier_external_SHIPPING=Eladó szállítási kapcsolat -TypeContact_invoice_supplier_external_SERVICE=Vendor service contact +TypeContact_invoice_supplier_internal_SALESREPFOLL=Reprezentatív nyomon követési szállítói számla +TypeContact_invoice_supplier_external_BILLING=Szállító számla kapcsolattartója +TypeContact_invoice_supplier_external_SHIPPING=A szállító szállítási kapcsolattartója +TypeContact_invoice_supplier_external_SERVICE=A szállítói szerviz kapcsolattartója # 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 +InvoiceFirstSituationAsk=Első helyzetű számla +InvoiceFirstSituationDesc=A helyzeti számlák előrehaladással kapcsolatos helyzetekhez vannak kötve, például egy építkezés előrehaladásához. Minden helyzet számlához van kötve. +InvoiceSituation=Helyzetszámla +PDFInvoiceSituation=Helyzetszámla +InvoiceSituationAsk=Számla a helyzetet követve +InvoiceSituationDesc=Új helyzet létrehozása egy már meglévő után +SituationAmount=Helyzetszámla összege (nettó) +SituationDeduction=A helyzet kivonása ModifyAllLines=Minden sor módosítása -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. +CreateNextSituationInvoice=Következő helyzet létrehozása +ErrorFindNextSituationInvoice=Hiba nem található a következő helyzetciklus hiv. +ErrorOutingSituationInvoiceOnUpdate=Ez a helyzetszámla nem írható ki. +ErrorOutingSituationInvoiceCreditNote=Nem lehet kiadni a kapcsolódó jóváírást. +NotLastInCycle=Ez a számla nem a legfrissebb a ciklusban, ezért nem szabad módosítani. +DisabledBecauseNotLastInCycle=A következő helyzet már létezik. +DisabledBecauseFinal=Ez a helyzet végleges. situationInvoiceShortcode_AS=AS situationInvoiceShortcode_S=V -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. +CantBeLessThanMinPercent=A haladás nem lehet kisebb, mint az előző helyzetben. +NoSituations=Nincsenek nyitott helyzetek +InvoiceSituationLast=Végső és általános számla +PDFCrevetteSituationNumber=N°%s helyzet +PDFCrevetteSituationInvoiceLineDecompte=Helyzetszámla - COUNT +PDFCrevetteSituationInvoiceTitle=Helyzetszámla +PDFCrevetteSituationInvoiceLine=Helyzetszám: %s: Száml. N°%s itt: %s +TotalSituationInvoice=Teljes helyzet +invoiceLineProgressError=A számlasor előrehaladása nem lehet nagyobb vagy egyenlő a következő számlasorral +updatePriceNextInvoiceErrorUpdateline=Hiba: ár frissítése a számlasorban: %s +ToCreateARecurringInvoice=Ha ismétlődő számlát szeretne készíteni ehhez a szerződéshez, először hozza létre ezt a számlavázlatot, majd alakítsa át számlasablonná, és határozza meg a jövőbeni számlák generálásának gyakoriságát. ToCreateARecurringInvoiceGene=A rendszeres jövőbeni számlák kézi készítéséhez válassza a %s - %s - %s menüpontot. -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. +ToCreateARecurringInvoiceGeneAuto=Ha az ilyen számlákat automatikusan kell generálni, kérje meg rendszergazdáját, hogy engedélyezze és állítsa be a %s modult. Vegye figyelembe, hogy mindkét módszer (kézi és automatikus) együtt is használható, a duplikáció veszélye nélkül. DeleteRepeatableInvoice=Sablon számla törlése -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=%s számla létrehozva +ConfirmDeleteRepeatableInvoice=Biztosan törölni szeretné a számlás sablont? +CreateOneBillByThird=Egy számla létrehozása harmadik félenként (egyébként kiválasztott objektumonként egy számla) +BillCreated=%s számla(k) generálva +BillXCreated=%s számla generálva StatusOfGeneratedDocuments=A dokumentumgenerálás állapota -DoNotGenerateDoc=Do not generate document file -AutogenerateDoc=Auto generate document file -AutoFillDateFrom=Set start date for service line with invoice date -AutoFillDateFromShort=Állítsa be a kezdő dátumot -AutoFillDateTo=Állítsa be a befejező dátumot a szolgáltatási sorhoz a következő számla dátumával -AutoFillDateToShort=Állítsa be a befejezési dátumot -MaxNumberOfGenerationReached=Max number of gen. reached +DoNotGenerateDoc=Ne hozzon létre dokumentumfájlt +AutogenerateDoc=A dokumentumfájl automatikus generálása +AutoFillDateFrom=A szolgáltatássor kezdő dátumának beállítása a számla dátumával +AutoFillDateFromShort=Kezdési dátum beállítása +AutoFillDateTo=Szolgáltatási sor befejezési dátumának beállítása a következő számla dátumával +AutoFillDateToShort=Befejezési dátum beállítása +MaxNumberOfGenerationReached=Elérte a generációk maximális számát BILL_DELETEInDolibarr=Számla törölve\n BILL_SUPPLIER_DELETEInDolibarr=A szállítói számla törölve -UnitPriceXQtyLessDiscount=Egységár x db - Kedvezmény -CustomersInvoicesArea=Vásárlói számlázási terület -SupplierInvoicesArea=Beszállítói számlázási terület -FacParentLine=Invoice Line Parent -SituationTotalRayToRest=Remainder to pay without taxe -PDFSituationTitle=Situation n° %d -SituationTotalProgress=Total progress %d %% -SearchUnpaidInvoicesWithDueDate=Fizetetlen számlák keresése esedékességgel = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +UnitPriceXQtyLessDiscount=Egységár x Mennyiség – Kedvezmény +CustomersInvoicesArea=Ügyfélszámlázási terület +SupplierInvoicesArea=Szállítói számlázási terület +SituationTotalRayToRest=A fennmaradó összeg adó nélkül +PDFSituationTitle=N°%d helyzet +SituationTotalProgress=Teljes haladás %d %% +SearchUnpaidInvoicesWithDueDate=Keressen kifizetetlen számlákat, amelyek esedékessége = %s +NoPaymentAvailable=Nem áll rendelkezésre fizetés a következőhöz: %s +PaymentRegisteredAndInvoiceSetToPaid=A befizetés regisztrálva és a %s számla kifizetve +SendEmailsRemindersOnInvoiceDueDate=Emlékeztető küldése e-mailben a kifizetetlen számlákról +MakePaymentAndClassifyPayed=Fizetés rögzítése +BulkPaymentNotPossibleForInvoice=Tömeges fizetés nem lehetséges a(z) %s számlánál (rossz típus vagy állapot) diff --git a/htdocs/langs/hu_HU/boxes.lang b/htdocs/langs/hu_HU/boxes.lang index e9e8a28c34d..cc5a970b5a7 100644 --- a/htdocs/langs/hu_HU/boxes.lang +++ b/htdocs/langs/hu_HU/boxes.lang @@ -1,120 +1,120 @@ # Dolibarr language file - Source file is en_US - boxes -BoxDolibarrStateBoard=Statistics on main business objects in database -BoxLoginInformation=Bejelentkezési Információ -BoxLastRssInfos=RSS Information -BoxLastProducts=%s legújabb termékei/szolgáltatásai -BoxProductsAlertStock=Termék-készlet figyelmeztetések -BoxLastProductsInContract=Legutóbbi %s termék/szolgáltatás megállapodás -BoxLastSupplierBills=A legújabb szállítói számlák -BoxLastCustomerBills=Legfrissebb vásárlói számlák -BoxOldestUnpaidCustomerBills=Legrégebbi rendezetlen ügyfél számla -BoxOldestUnpaidSupplierBills=A legrégebbi, ki nem fizetett szállítói számlák -BoxLastProposals=Legutóbbi kereskedelmi ajánlatok -BoxLastProspects=Latest modified prospects -BoxLastCustomers=Legutóbbi módosított ügyfelek -BoxLastSuppliers=Legutóbbi módosított beszállítók -BoxLastCustomerOrders=Legújabb értékesítési megrendelések -BoxLastActions=Legutóbbi műveletek -BoxLastContracts=A legújabb szerződések -BoxLastContacts=Legújabb névjegyek/címek +BoxDolibarrStateBoard=Statisztikák az adatbázisban lévő fő üzleti objektumokról +BoxLoginInformation=Bejelentkezési adatok +BoxLastRssInfos=RSS információ +BoxLastProducts=A legújabb %s termékek/szolgáltatások +BoxProductsAlertStock=Részletértesítések a termékekhez +BoxLastProductsInContract=Legutóbbi %s szerződött termék/szolgáltatás +BoxLastSupplierBills=Legfrissebb szállítói számlák +BoxLastCustomerBills=A legfrissebb vásárlói számlák +BoxOldestUnpaidCustomerBills=A legrégebbi kifizetetlen vásárlói számlák +BoxOldestUnpaidSupplierBills=A legrégebbi kifizetetlen szállítói számlák +BoxLastProposals=Legújabb árajánlatok +BoxLastProspects=Utoljára módosított potenciális ügyfelek +BoxLastCustomers=Utoljára módosított ügyfelek +BoxLastSuppliers=Utoljára módosított szállítók +BoxLastCustomerOrders=Legújabb értékesítési rendelések +BoxLastActions=Legújabb műveletek +BoxLastContracts=Legújabb szerződések +BoxLastContacts=Legfrissebb kapcsolatok/címek BoxLastMembers=Legújabb tagok -BoxLastModifiedMembers=Legutóbb módosított tagok -BoxLastMembersSubscriptions=Latest member subscriptions -BoxFicheInter=A legújabb beavatkozások -BoxCurrentAccounts=Nyitott számla egyenleg +BoxLastModifiedMembers=Utoljára módosított tagok +BoxLastMembersSubscriptions=Utolsó tag-előfizetések +BoxFicheInter=Legújabb beavatkozások +BoxCurrentAccounts=Nyitott számlaegyenleg BoxTitleMemberNextBirthdays=E hónap születésnapjai (tagok) -BoxTitleMembersByType=A tagok típus szerint -BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year -BoxTitleLastRssInfos=Latest %s news from %s -BoxTitleLastProducts=Products/Services: last %s modified -BoxTitleProductsAlertStock=Termékek: készletfigyelmeztetés -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 +BoxTitleMembersByType=Tagok típus és állapot szerint +BoxTitleMembersSubscriptionsByYear=Tagok előfizetései évenként +BoxTitleLastRssInfos=Legfrissebb %s hírek a következőtől: %s +BoxTitleLastProducts=Termékek/Szolgáltatások: utolsó %s módosítás +BoxTitleProductsAlertStock=Termékek: készlet riasztás +BoxTitleLastSuppliers=A legutóbbi %s beszállítók +BoxTitleLastModifiedSuppliers=Szállítók: legutóbbi %s módosítás +BoxTitleLastModifiedCustomers=Ügyfelek: legutóbbi %s módosítás +BoxTitleLastCustomersOrProspects=A legújabb %s ügyfél vagy potenciális ügyfél +BoxTitleLastCustomerBills=A legutóbbi %s módosított ügyfélszámlák +BoxTitleLastSupplierBills=A legutóbbi %s módosított szállítói számlák +BoxTitleLastModifiedProspects=Lehetőségek: legutóbbi %s módosítás +BoxTitleLastModifiedMembers=Utolsó %s tag +BoxTitleLastFicheInter=A legutóbbi %s módosított beavatkozás +BoxTitleOldestUnpaidCustomerBills=Ügyfélszámlák: a legrégebbi %s kifizetetlen +BoxTitleOldestUnpaidSupplierBills=Szállítói számlák: a legrégebbi %s kifizetetlen BoxTitleCurrentAccounts=Nyitott számlák: egyenlegek -BoxTitleSupplierOrdersAwaitingReception=Supplier orders awaiting reception -BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified -BoxMyLastBookmarks=Könyvjelzők: legújabb %s -BoxOldestExpiredServices=Legrégebbi aktív lejárt szolgáltatások -BoxLastExpiredServices=Latest %s oldest contacts with active expired services -BoxTitleLastActionsToDo=Latest %s actions to do -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 +BoxTitleSupplierOrdersAwaitingReception=Beszállítói rendelések fogadásra várnak +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 +BoxLastExpiredServices=A legújabb %s legrégebbi névjegy aktív lejárt szolgáltatásokkal +BoxTitleLastActionsToDo=A legutóbbi %s művelet +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 +BoxTitleLatestModifiedBoms=A legutóbbi %s anyagjegyzék, amely módosult +BoxTitleLatestModifiedMos=A legutóbbi %s gyártási rendelés, amely módosult +BoxTitleLastOutstandingBillReached=Ügyfelek, akiknek a maximális kintlévőség túllépte BoxGlobalActivity=Globális tevékenység (számlák, ajánlatok, megrendelések) BoxGoodCustomers=Jó ügyfelek -BoxTitleGoodCustomers=%s Good customers -BoxScheduledJobs=Időzített feladatok -BoxTitleFunnelOfProspection=Lead funnel -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s -LastRefreshDate=A legújabb frissítési dátum -NoRecordedBookmarks=Nincs könyvjezlő. Kattintson ide könyvjelző hozzáadásához. -ClickToAdd=Klikkelj ide. -NoRecordedCustomers=Nincs bejegyzett ügyfél -NoRecordedContacts=Nincs rögzített kapcsolatok -NoActionsToDo=Nincs végrehatjtásra váró cselekvés -NoRecordedOrders=Nincs rögzített értékesítési megrendelés -NoRecordedProposals=Nincs bejegyzett ajánlat -NoRecordedInvoices=Nincsenek rögzített vevői számlák -NoUnpaidCustomerBills=Nincs kifizetetlen vásárlói számla -NoUnpaidSupplierBills=Nincs kifizetetlen szállítói számla -NoModifiedSupplierBills=Nincs rögzített szállítói számla -NoRecordedProducts=Nincs bejegyzett termék / szolgáltatás -NoRecordedProspects=Nincs bejegyzett kilátás -NoContractedProducts=Nincs szerződött termék / szolgáltatás -NoRecordedContracts=Nincs bejegyzett szerződés +BoxTitleGoodCustomers=%s Jó ügyfelek +BoxScheduledJobs=Ütemezett munkák +BoxTitleFunnelOfProspection=Potenciális tölcsér +FailedToRefreshDataInfoNotUpToDate=Nem sikerült az RSS-folyam frissítése. A legutóbbi sikeres frissítés dátuma: %s +LastRefreshDate=Utolsó frissítési dátum +NoRecordedBookmarks=Nincsenek könyvjelzők megadva. +ClickToAdd=Kattintson ide a hozzáadáshoz. +NoRecordedCustomers=Nincsenek rögzített ügyfelek +NoRecordedContacts=Nincsenek rögzített névjegyek +NoActionsToDo=Nincs teendő +NoRecordedOrders=Nincs rögzített értékesítési rendelés +NoRecordedProposals=Nincs rögzített ajánlat +NoRecordedInvoices=Nincs rögzített ügyfélszámla +NoUnpaidCustomerBills=Nincsenek kifizetetlen vásárlói számlák +NoUnpaidSupplierBills=Nincsenek kifizetetlen szállítói számlák +NoModifiedSupplierBills=Nincsenek rögzített szállítói számlák +NoRecordedProducts=Nincsenek rögzített termékek/szolgáltatások +NoRecordedProspects=Nincsenek rögzített potenciális ügyfelek +NoContractedProducts=Nincs szerződéses termék/szolgáltatás +NoRecordedContracts=Nincs rögzített szerződés NoRecordedInterventions=Nincs rögzített beavatkozás BoxLatestSupplierOrders=Legújabb beszerzési rendelések -BoxLatestSupplierOrdersAwaitingReception=Latest Purchase Orders (with a pending reception) +BoxLatestSupplierOrdersAwaitingReception=Legfrissebb beszerzési megrendelések (függőben lévő fogadással) NoSupplierOrder=Nincs rögzített beszerzési rendelés -BoxCustomersInvoicesPerMonth=Vevői számlák havonta -BoxSuppliersInvoicesPerMonth=Eladói számlák havonta +BoxCustomersInvoicesPerMonth=Ügyfélszámlák havonta +BoxSuppliersInvoicesPerMonth=Szállítói számlák havonta BoxCustomersOrdersPerMonth=Értékesítési rendelések havonta BoxSuppliersOrdersPerMonth=Szállítói rendelések havonta BoxProposalsPerMonth=Ajánlatok havonta -NoTooLowStockProducts=Egyetlen termék sem éri el az alacsony készlethatárt -BoxProductDistribution=Termékek/szolgáltatások forgalmazása -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=Ügyfél számlák -ForCustomersOrders=Ügyfél megrendelések -ForProposals=Javaslatok -LastXMonthRolling=The latest %s month rolling -ChooseBoxToAdd=Widget hozzáadása az irányítópulthoz -BoxAdded=A modult hozzáadták az irányítópulthoz +NoTooLowStockProducts=Nincs termék az alsó készlethatár alatt +BoxProductDistribution=Termékek/Szolgáltatások terjesztése +ForObject=Tovább %s +BoxTitleLastModifiedSupplierBills=Szállítói számlák: legutóbbi %s módosítás +BoxTitleLatestModifiedSupplierOrders=Szállítói rendelések: legutóbbi %s módosítva +BoxTitleLastModifiedCustomerBills=Ügyfélszámlák: legutóbbi %s módosítás +BoxTitleLastModifiedCustomerOrders=Értékesítési rendelések: utolsó %s módosítva +BoxTitleLastModifiedPropals=A legutóbbi %s módosított árajánlat +BoxTitleLatestModifiedJobPositions=A legutóbbi %s módosított munkakör +BoxTitleLatestModifiedCandidatures=A legutóbbi %s módosított álláspályázat +ForCustomersInvoices=Vásárlói számlák +ForCustomersOrders=Vásárlói rendelések +ForProposals=Árajánlatok +LastXMonthRolling=A legutóbbi %s hónap gördülése +ChooseBoxToAdd=Modul hozzáadása az irányítópulthoz +BoxAdded=A widget hozzáadva az irányítópulthoz BoxTitleUserBirthdaysOfMonth=E hónap születésnapjai (felhasználók) -BoxLastManualEntries=Latest record in accountancy entered manually or without source document -BoxTitleLastManualEntries=%s latest record entered manually or without source document -NoRecordedManualEntries=A könyvelésben nincs kézi bejegyzés -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=Utolsó vevői szállítmányok -BoxTitleLastCustomerShipments=Latest %s customer shipments -NoRecordedShipments=Nincs rögzített ügyfél szállítás -BoxCustomersOutstandingBillReached=Customers with oustanding limit reached +BoxLastManualEntries=A könyvelés legfrissebb rekordja kézzel vagy forrásdokumentum nélkül +BoxTitleLastManualEntries=%s legutóbbi rekord kézzel vagy forrásdokumentum nélkül beírva +NoRecordedManualEntries=Nincsenek kézi bejegyzések a könyvelésben +BoxSuspenseAccount=Számlálási művelet függő számlával +BoxTitleSuspenseAccount=Nem allokált sorok száma +NumberOfLinesInSuspenseAccount=A sorok száma a függő fiókban +SuspenseAccountNotDefined=A felfüggesztett fiók nincs megadva +BoxLastCustomerShipments=Utolsó ügyfélszállítások +BoxTitleLastCustomerShipments=Utolsó %s ügyfélszállítmány +NoRecordedShipments=Nincs rögzített ügyfélszállítmány +BoxCustomersOutstandingBillReached=A túllépési korlátot elérő ügyfelek # Pages -UsersHome=Home users and groups -MembersHome=Home Membership -ThirdpartiesHome=Home Thirdparties -TicketsHome=Home Tickets -AccountancyHome=Home Accountancy -ValidatedProjects=Érvényesített projektek +UsersHome=Otthoni felhasználók és csoportok +MembersHome=Otthoni tagság +ThirdpartiesHome=Otthoni harmadik felek +TicketsHome=Hazai jegyek +AccountancyHome=Home Könyvelés +ValidatedProjects=Ellenőrzött projektek diff --git a/htdocs/langs/hu_HU/cashdesk.lang b/htdocs/langs/hu_HU/cashdesk.lang index 0b5f5822622..ebd55bf4814 100644 --- a/htdocs/langs/hu_HU/cashdesk.lang +++ b/htdocs/langs/hu_HU/cashdesk.lang @@ -16,7 +16,7 @@ AddThisArticle=Add hozzá ezt a cikket RestartSelling=Menj vissza eladni SellFinished=Értékesítés befejezte PrintTicket=Nyomtatás jegy -SendTicket=Send ticket +SendTicket=Jegy küldése NoProductFound=Nem találtam cikket ProductFound=termék található NoArticle=Nincs cikk @@ -26,111 +26,114 @@ Difference=Különbség TotalTicket=Összes jegy NoVAT=Nem ez az értékesítés ÁFA Change=A felesleges kapott -BankToPay=Account for payment +BankToPay=Fizetési számla ShowCompany=Mutasd cég ShowStock=Mutasd raktár DeleteArticle=Kattintson, hogy távolítsa el ezt a cikket FilterRefOrLabelOrBC=Keresés (Ref/Cédula) -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock. +UserNeedPermissionToEditStockToUsePos=A számlakészítéskor a készlet csökkentését kéri, így a POS-t használó felhasználónak engedélyt kell kapnia a készlet szerkesztésére. DolibarrReceiptPrinter=Dolibarr Nyugta Nyomtató -PointOfSale=Point of Sale +PointOfSale=Értékesítési pont 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=Bizonylat -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 +CloseBill=Számla lezárása +Floors=Padlók +Floor=Padló +AddTable=Táblázat hozzáadása +Place=Hely +TakeposConnectorNecesary='TakePOS-csatlakozó' szükséges +OrderPrinters=Gomb hozzáadása, amellyel fizetés nélkül elküldheti a rendelést bizonyos nyomtatókra (például a konyhára történő rendelés) +NotAvailableWithBrowserPrinter=Nem érhető el, ha a nyugtanyomtató böngészőre van állítva +SearchProduct=Termék keresése +Receipt=Átvétel +Header=Fejléc +Footer=Lábléc +AmountAtEndOfPeriod=Összeg az időszak végén (nap, hónap vagy év) +TheoricalAmount=Elméleti összeg +RealAmount=Valós összeg +CashFence=Pénztár bezárása +CashFenceDone=Pénztár zárása az időszakra megtörtént NbOfInvoices=Számlák száma -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=Történet -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 +Paymentnumpad=Pad típusa a fizetés megadásához +Numberspad=Számbillentyűzet +BillsCoinsPad=Érmék és bankjegyek lap +DolistorePosCategory=TakePOS modulok és egyéb POS megoldások a Dolibarr számára +TakeposNeedsCategories=A TakePOS működéséhez legalább egy termékkategóriára van szüksége +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=A TakePOS működéséhez legalább 1 termékkategóriára van szüksége a(z) %s kategóriában +OrderNotes=Hozzáadhat néhány megjegyzést minden megrendelt cikkhez +CashDeskBankAccountFor=A befizetésekhez használt alapértelmezett számla +NoPaimementModesDefined=Nincs fizetési mód megadva a TakePOS konfigurációjában +TicketVatGrouped=Csoportos áfa kulcs szerint a jegyekben|nyugtákban +AutoPrintTickets=Jegyek|nyugták automatikus nyomtatása +PrintCustomerOnReceipts=Ügyfél nyomtatása a jegyekre| +EnableBarOrRestaurantFeatures=Funkciók engedélyezése bárban vagy étteremben +ConfirmDeletionOfThisPOSSale=Megerősíti az aktuális akció törlését? +ConfirmDiscardOfThisPOSSale=Elveti ezt az aktuális akciót? +History=Történelem +ValidateAndClose=Érvényesítés és bezárás +Terminal=Terminál +NumberOfTerminals=Terminálok száma +TerminalSelect=Válassza ki a használni kívánt terminált: +POSTicket=POS jegy +POSTerminal=POS terminál +POSModule=POS modul +BasicPhoneLayout=Alap elrendezés használata telefonokhoz +SetupOfTerminalNotComplete=A %s terminál beállítása nem fejeződött be +DirectPayment=Közvetlen fizetés +DirectPaymentButton=Adjon hozzá egy "Közvetlen készpénzes fizetés" gombot +InvoiceIsAlreadyValidated=A számla már érvényesítve van +NoLinesToBill=Nincsenek számlázandó sorok +CustomReceipt=Egyedi nyugta +ReceiptName=Nyugta neve +ProductSupplements=Termékkiegészítők kezelése +SupplementCategory=Kiegészítési kategória +ColorTheme=Színtéma +Colorful=Színes +HeadBar=Fejléc +SortProductField=Mező a termékek válogatására Browser=Böngésző -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=Egyszerű és egyszerű nyugtanyomtatás. Csak néhány paraméter a nyugta konfigurálásához. Nyomtatás böngészőn keresztül. +TakeposConnectorMethodDescription=Külső modul extra szolgáltatásokkal. Felhőből történő nyomtatás lehetősége. +PrintMethod=Nyomtatási módszer +ReceiptPrinterMethodDescription=Erőteljes módszer sok paraméterrel. Teljesen testreszabható sablonokkal. Az alkalmazást kiszolgáló szerver nem lehet a felhőben (el kell érnie a hálózaton lévő nyomtatókat). +ByTerminal=Terminál által +TakeposNumpadUsePaymentIcon=Szöveg helyett használjon ikont a számbillentyűzet fizetési gombjain +CashDeskRefNumberingModules=Számozási modul POS értékesítésekhez +CashDeskGenericMaskCodes6 =
    {TN} címke a terminálszám hozzáadásához +TakeposGroupSameProduct=Azonos termékvonalak csoportosítása +StartAParallelSale=Új párhuzamos értékesítés indítása +SaleStartedAt=Az értékesítés kezdete: %s +ControlCashOpening=A POS megnyitásakor nyissa meg a "Control cash box" felugró ablakot +CloseCashFence=Zárja be a pénztárgép vezérlőjét +CashReport=Pénztárjelentés +MainPrinterToUse=Fő használandó nyomtató +OrderPrinterToUse=Nyomtató rendelése a használatra +MainTemplateToUse=Fő használandó sablon +OrderTemplateToUse=Rendelési sablon a használatra +BarRestaurant=Bár étterem +AutoOrder=A vevő maga rendeli meg +RestaurantMenu=Menü +CustomerMenu=Ügyfél menü +ScanToMenu=A menü megtekintéséhez olvassa be a QR-kódot +ScanToOrder=Rendeléshez szkennelje be a QR-kódot +Appearance=Megjelenés +HideCategoryImages=Kategóriaképek elrejtése +HideProductImages=Termékképek elrejtése +NumberOfLinesToShow=A megjelenítendő képek sorainak száma +DefineTablePlan=Táblázatterv meghatározása +GiftReceiptButton=Adjon hozzá egy "Ajándékátvétel" gombot +GiftReceipt=Ajándékátvétel +ModuleReceiptPrinterMustBeEnabled=A modulnyugta nyomtatót először engedélyezni kell +AllowDelayedPayment=Késleltetett fizetés engedélyezése +PrintPaymentMethodOnReceipts=Fizetési mód nyomtatása a jegyekre |nyugtákra +WeighingScale=Mérleg +ShowPriceHT = Az oszlop megjelenítése az adó nélkül (a képernyőn) +ShowPriceHTOnReceipt = Az adó nélküli ár oszlopának megjelenítése (a nyugtán) +CustomerDisplay=Ügyfél megjelenítése +SplitSale=Osztott értékesítés +PrintWithoutDetailsButton=A "Nyomtatás részletek nélkül" gomb hozzáadása +PrintWithoutDetailsLabelDefault=Alapértelmezett vonalcímke részletek nélküli nyomtatásnál +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 dafa7dee0cb..25f02517fca 100644 --- a/htdocs/langs/hu_HU/categories.lang +++ b/htdocs/langs/hu_HU/categories.lang @@ -1,100 +1,103 @@ # Dolibarr language file - Source file is en_US - categories -Rubrique=Címke/kategória\n -Rubriques=Címkék/kategóriák -RubriquesTransactions=Tags/Categories of transactions +Rubrique=Címke/Kategória +Rubriques=Címkék/Kategóriák +RubriquesTransactions=Címkék/Tranzakciók kategóriái categories=címkék/kategóriák NoCategoryYet=Ilyen típusú címke/kategória nem jött létre -In=In -AddIn=Add hozzá\n +In=ben +AddIn=Add hozzá modify=módosítás Classify=Osztályozás -CategoriesArea=Címkék/kategóriák terület\n -ProductsCategoriesArea=Product/Service tags/categories area -SuppliersCategoriesArea=Szállítói címkék/kategóriák terület\n -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 +CategoriesArea=Címkék/Kategóriák terület +ProductsCategoriesArea=Termék/szolgáltatás címkék/kategóriák terület +SuppliersCategoriesArea=Szállítói címkék/kategóriák terület +CustomersCategoriesArea=Ügyfél címkék/kategóriák terület +MembersCategoriesArea=Tag címkék/kategóriák terület +ContactsCategoriesArea=Kapcsolati címkék/kategóriák terület +AccountsCategoriesArea=Bankszámla címkék/kategóriák terület +ProjectsCategoriesArea=Projekt címkék/kategóriák terület +UsersCategoriesArea=Felhasználói címkék/kategóriák terület SubCats=Alkategóriák -CatList=Címkék/kategóriák listája\n +CatList=Címkék/kategóriák listája CatListAll=Címkék/kategóriák listája (minden típus) -NewCategory=Új címke/kategória\n -ModifCat=Címke/kategória módosítása\n -CatCreated=Címke/kategória létrehozva\n +NewCategory=Új címke/kategória +ModifCat=Címke/kategória módosítása +CatCreated=Címke/kategória létrehozva CreateCat=Címke/kategória létrehozása -CreateThisCat=Hozza létre ezt a címkét/kategóriát\n +CreateThisCat=Hozd létre ezt a címkét/kategóriát NoSubCat=Nincs alkategória. SubCatOf=Alkategória -FoundCats=Talált címkék/kategóriák\n -ImpossibleAddCat=Impossible to add the tag/category %s +FoundCats=Talált címkéket/kategóriákat +ImpossibleAddCat=Lehetetlen hozzáadni az %s címkét/kategóriát WasAddedSuccessfully=%s sikeresen hozzá lett adva. -ObjectAlreadyLinkedToCategory=Az elem már össze van kapcsolva ezzel a címkével/kategóriával.\n -ProductIsInCategories=A termék/szolgáltatás a következő címkékhez/kategóriákhoz kapcsolódik\n -CompanyIsInCustomersCategories=Ez a harmadik fél a következő ügyfelek/potenciális ügyfelek címkéihez/kategóriáihoz kapcsolódik\n -CompanyIsInSuppliersCategories=Ez a harmadik fél a következő szállítók címkéihez/kategóriáihoz kapcsolódik\n -MemberIsInCategories=Ez a tag a következő tagok címkéihez/kategóriáihoz kapcsolódik\n -ContactIsInCategories=Ez a névjegy a következő címkékhez/kategóriákhoz kapcsolódik -ProductHasNoCategory=Ez a termék/szolgáltatás nem tartozik semmilyen címkéhez/kategóriához\n -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=Ez a projekt nem tartozik semmilyen címkéhez/kategóriához\n -ClassifyInCategory=Hozzáadás a címkéhez/kategóriához\n -NotCategorized=Címke/kategória nélküli\n +ObjectAlreadyLinkedToCategory=Az elem már hozzá van kapcsolva ehhez a címkéhez/kategóriához. +ProductIsInCategories=A termék/szolgáltatás a következő címkékhez/kategóriákhoz kapcsolódik +CompanyIsInCustomersCategories=Ez a harmadik fél a következő ügyfelek/leendő ügyfelek címkéihez/kategóriáihoz kapcsolódik +CompanyIsInSuppliersCategories=Ez a harmadik fél a következő szállítói címkékhez/kategóriákhoz kapcsolódik +MemberIsInCategories=Ez a tag a következő tagok címkéihez/kategóriáihoz kapcsolódik +ContactIsInCategories=Ez a névjegy a következő névjegycímkékhez/kategóriákhoz kapcsolódik +ProductHasNoCategory=Ez a termék/szolgáltatás nem szerepel egyetlen címkében/kategóriában sem +CompanyHasNoCategory=Ez a harmadik fél nem szerepel egyetlen címkében/kategóriában sem +MemberHasNoCategory=Ez a tag egyetlen címkében/kategóriában sem szerepel +ContactHasNoCategory=Ez a névjegy egyetlen címkében/kategóriában sem szerepel +ProjectHasNoCategory=Ez a projekt egyetlen címkében/kategóriában sem szerepel +ClassifyInCategory=Hozzáadás címkéhez/kategóriához +NotCategorized=Címke/kategória nélkül CategoryExistsAtSameLevel=Ez a kategória ezzel a ref# -el már létezik ContentsVisibleByAllShort=Tartalom látható mindenki számára ContentsNotVisibleByAllShort=Tartalom nem látható mindenki számára -DeleteCategory=Címke/kategória törlése\n -ConfirmDeleteCategory=Biztosan törli ezt a címkét/kategóriát?\n -NoCategoriesDefined=Nincs megadva címke/kategória\n -SuppliersCategoryShort=Szállítók címkéje/kategória\n -CustomersCategoryShort=Ügyfelek címkéje/kategória\n -ProductsCategoryShort=Termékek címke/kategória\n -MembersCategoryShort=Tag tag/kategória\n -SuppliersCategoriesShort=Tag tag/kategória\n -CustomersCategoriesShort=Ügyfelek címkéi/kategóriái\n -ProspectsCategoriesShort=Ajánlat címkék/kategóriák\n -CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories -ProductsCategoriesShort=Termék címkék/kategóriák\n -MembersCategoriesShort=Tagok címkék/kategóriák\n -ContactCategoriesShort=Kapcsolatok címkék/kategóriák\n -AccountsCategoriesShort=Accounts tags/categories +DeleteCategory=Címke/kategória törlése +ConfirmDeleteCategory=Biztosan törli ezt a címkét/kategóriát? +NoCategoriesDefined=Nincs meghatározva címke/kategória +SuppliersCategoryShort=Szállítói címke/kategória +CustomersCategoryShort=Ügyfélcímke/kategória +ProductsCategoryShort=Termékcímke/kategória +MembersCategoryShort=Tagok címke/kategória +SuppliersCategoriesShort=Szállítói címkék/kategóriák +CustomersCategoriesShort=Ügyfélcímkék/kategóriák +ProspectsCategoriesShort=Árajánlat címkéi/kategóriái +CustomersProspectsCategoriesShort=Ügyfél/Potenciális ügyfél címkék/kategóriák +ProductsCategoriesShort=Termékcímkék/kategóriák +MembersCategoriesShort=Tagok címkéi/kategóriái +ContactCategoriesShort=Névjegycímkék/kategóriák +AccountsCategoriesShort=Fiókcímkék/kategóriák ProjectsCategoriesShort=Projektek címkék/kategóriák -UsersCategoriesShort=Felhasználói címkék/kategóriák\n -StockCategoriesShort=Raktári címkék/kategóriák\n -ThisCategoryHasNoItems=Ez a kategória nem tartalmaz elemeket.\n -CategId=Tag/category id -ParentCategory=Parent tag/category -ParentCategoryLabel=Label of parent tag/category +UsersCategoriesShort=Felhasználói címkék/kategóriák +StockCategoriesShort=Raktári címkék/kategóriák +ThisCategoryHasNoItems=Ez a kategória nem tartalmaz elemeket. +CategId=Címke/kategória azonosítója +ParentCategory=Szülőcímke/kategória +ParentCategoryLabel=Szülőcímke/kategória címkéje CatSupList=A szállítók címkéinek/kategóriáinak listája -CatCusList=List of customers/prospects tags/categories +CatCusList=Ügyfelek/potenciális ügyfelek címkéinek/kategóriáinak listája CatProdList=Termékek címkék/kategóriák listája -CatMemberList=List of members tags/categories -CatContactList=List of contacts tags/categories -CatProjectsList=Projekt címkék/kategóriák listája\n -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=Eltávolítás a címkékből/kategóriákból\n +CatMemberList=Tagok címkéinek/kategóriáinak listája +CatContactList=Névjegycímkék/kategóriák listája +CatProjectsList=Projektcímkék/kategóriák listája +CatUsersList=Felhasználói címkék/kategóriák listája +CatSupLinks=Hivatkozások a szállítók és a címkék/kategóriák között +CatCusLinks=Kapcsolatok az ügyfelek/potenciális ügyfelek és a címkék/kategóriák között +CatContactsLinks=Kapcsolatok a kapcsolatok/címek és a címkék/kategóriák között +CatProdLinks=Termékek/szolgáltatások és címkék/kategóriák közötti kapcsolatok +CatMembersLinks=Linkek a tagok és a címkék/kategóriák között +CatProjectsLinks=Linkek projektek és címkék/kategóriák között +CatUsersLinks=Linkek a felhasználók és a címkék/kategóriák között +DeleteFromCat=Eltávolítás a címkékből/kategóriából ExtraFieldsCategories=Kiegészítő tulajdonságok -CategoriesSetup=Címkék/kategóriák beállítása\n -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 +CategoriesSetup=Címkék/kategóriák beállítása +CategorieRecursiv=Automatikus kapcsolat a szülő címkével/kategóriával +CategorieRecursivHelp=Ha az opció be van kapcsolva, amikor egy terméket hozzáad egy alkategóriához, a termék a szülőkategóriába is bekerül. +AddProductServiceIntoCategory=Adja hozzá a következő terméket/szolgáltatást AddCustomerIntoCategory=Kategória hozzárendelése az ügyfélhez AddSupplierIntoCategory=Kategória hozzárendelése a szállítóhoz +AssignCategoryTo=Kategória hozzárendelése ehhez ShowCategory=Címke/kategória megjelenítése -ByDefaultInList=By default in list +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=Page-Container Categories -KnowledgemanagementsCategoriesArea=KM article Categories -UseOrOperatorForCategories=Use 'OR' operator for categories +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 b18a7d207cc..d6b10d4c1e6 100644 --- a/htdocs/langs/hu_HU/commercial.lang +++ b/htdocs/langs/hu_HU/commercial.lang @@ -52,29 +52,30 @@ ActionAC_TEL=Telefon hívás ActionAC_FAX=Fax küldés ActionAC_PROP=Ajánlat küldése emailben ActionAC_EMAIL=Email küldése -ActionAC_EMAIL_IN=E-mail fogadása +ActionAC_EMAIL_IN=E-mailek fogadása ActionAC_RDV=Találkozók ActionAC_INT=Helyszíni beavatkozás ActionAC_FAC=Számla küldése vevők levélben ActionAC_REL=Számla küldése vevőnek levélben (emlékeztető) ActionAC_CLO=Bezár ActionAC_EMAILING=Tömeges email küldés -ActionAC_COM=Küldje el értékesítési megrendelését e-mailben +ActionAC_COM=Eladási rendelés küldése postai úton ActionAC_SHIP=Fuvarlevél küldése levélben -ActionAC_SUP_ORD=Küldje el megrendelését e-mailben -ActionAC_SUP_INV=Küldje el az eladói számlát e-mailben +ActionAC_SUP_ORD=Megrendelés elküldése postai úton +ActionAC_SUP_INV=Szállítói számla küldése postai úton ActionAC_OTH=Más -ActionAC_OTH_AUTO=Automatikusan generált események +ActionAC_OTH_AUTO=Egyéb automatikus ActionAC_MANUAL=Kézzel hozzáadott események ActionAC_AUTO=Automatikusan generált események -ActionAC_OTH_AUTOShort=Automatikus +ActionAC_OTH_AUTOShort=Egyéb +ActionAC_EVENTORGANIZATION=Rendezvényszervezési események Stats=Eladási statisztikák 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, elfogadhatja a(z) %s kereskedelmi javaslatait -ThisScreenAllowsYouToSignDocFrom=Ez a képernyő lehetővé teszi, hogy elfogadjon és aláírjon, vagy elutasítson egy ajánlatot / kereskedelmi ajánlatot -ThisIsInformationOnDocumentToSign=Ez az elfogadásra vagy elutasításra vonatkozó dokumentumon található információ -SignatureProposalRef=Ajánlat / kereskedelmi ajánlat aláírása %s -FeatureOnlineSignDisabled=Az online aláírás funkciója letiltva, vagy a szolgáltatás engedélyezése előtt létrehozott dokumentum +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ó +SignatureProposalRef=Árajánlat aláírása: %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 82c665ef2dc..c4de327829b 100644 --- a/htdocs/langs/hu_HU/companies.lang +++ b/htdocs/langs/hu_HU/companies.lang @@ -2,94 +2,98 @@ ErrorCompanyNameAlreadyExists=Cégnév %s már létezik. Válasszon egy másikat. ErrorSetACountryFirst=Először állítsa be az országot SelectThirdParty=Válasszon egy partnert -ConfirmDeleteCompany=Are you sure you want to delete this company and all related information? +ConfirmDeleteCompany=Biztosan törölni szeretné ezt a céget és az összes kapcsolódó információt? DeleteContact=Kapcsolat/címek törlése -ConfirmDeleteContact=Are you sure you want to delete this contact and all related information? -MenuNewThirdParty=Új partner -MenuNewCustomer=Új vásárló -MenuNewProspect=Új lehetséges ügyfél -MenuNewSupplier=Új eladó +ConfirmDeleteContact=Biztosan törölni szeretné ezt a névjegyet és az összes kapcsolódó információt? +MenuNewThirdParty=Új harmadik fél +MenuNewCustomer=Új ügyfél +MenuNewProspect=Új potenciális ügyfél +MenuNewSupplier=Új szállító MenuNewPrivateIndividual=Új magánszemély -NewCompany=Új cég (leendő, vásárló, eladó) -NewThirdParty=Új partner (leendő, vásárló, eladó) -CreateDolibarrThirdPartySupplier=Partner létrehozása (eladó) -CreateThirdPartyOnly=Parnter létrehozása (harmadik fél) +NewCompany=Új cég (potenciális ügyfél, szállító) +NewThirdParty=Új harmadik fél (lehetséges, ügyfél, szállító) +CreateDolibarrThirdPartySupplier=Harmadik fél (szállító) létrehozása +CreateThirdPartyOnly=Harmadik fél létrehozása CreateThirdPartyAndContact=Harmadik fél létrehozása + szülő kapcsolat ProspectionArea=Potenciális ​​terület IdThirdParty=Partner ID IdCompany=Cég ID IdContact=Contact ID -ThirdPartyContacts=Partner kapcsolatok -ThirdPartyContact=Partner elérhetősége / címe +ThirdPartyAddress=Harmadik fél címe +ThirdPartyContacts=Harmadik fél kapcsolattartói +ThirdPartyContact=Harmadik fél kapcsolattartója/címe Company=Cég CompanyName=Cégnév AliasNames=Álnév megnevezése (kereskedelmi, jogvédett, ...) -AliasNameShort=Álnév +AliasNameShort=Alias ​​név Companies=Cégek -CountryIsInEEC=Az ország az Európai Gazdasági Közösségen belül található -PriceFormatInCurrentLanguage=Az ár megjelenítési formátuma az aktuális nyelven és pénznemben -ThirdPartyName=Partner neve -ThirdPartyEmail=Partner e-mail címe -ThirdParty=Partner -ThirdParties=Partnerek +CountryIsInEEC=Az ország az Európai Gazdasági Közösségen belül van +PriceFormatInCurrentLanguage=Ármegjelenítési formátum az aktuális nyelven és pénznemben +ThirdPartyName=Harmadik fél neve +ThirdPartyEmail=Harmadik féltől származó e-mail +ThirdParty=Harmadik fél +ThirdParties=Harmadik felek ThirdPartyProspects=Jelentkezők ThirdPartyProspectsStats=Jelentkezők ThirdPartyCustomers=Vevők ThirdPartyCustomersStats=Vevők ThirdPartyCustomersWithIdProf12=Vevők %s vagy %s -ThirdPartySuppliers=Eladók -ThirdPartyType=Partner típusa +ThirdPartySuppliers=Szállítók +ThirdPartyType=Harmadik fél típusa Individual=Magánszemély -ToCreateContactWithSameName=Automatikusan létrehoz egy névjegyet / címet ugyanazzal az információval, mint a partner a partner alatt. A legtöbb esetben, még ha a partner is fizikai személy, elegendő egy partner létrehozása. +ToCreateContactWithSameName=Automatikusan létrehoz egy kapcsolattartót/címet ugyanazokkal az adatokkal, mint a harmadik félhez tartozó harmadik fél. A legtöbb esetben, még akkor is, ha a harmadik fél fizikai személy, önmagában elegendő egy harmadik fél létrehozása. ParentCompany=Anyavállalat Subsidiaries=Leányvállalatok -ReportByMonth=Jelentés havonta -ReportByCustomers=Jelentés vásárlónként -ReportByThirdparties=Report per thirdparty -ReportByQuarter=Report per rate +ReportByMonth=Havi jelentés +ReportByCustomers=Ügyfelenkénti jelentés +ReportByThirdparties=Harmadik félre vonatkozó jelentés +ReportByQuarter=Jelentés árfolyamonként CivilityCode=Udvariassági kód RegisteredOffice=Bejegyzett iroda Lastname=Vezetéknév Firstname=Keresztnév +RefEmployee=Alkalmazotti hivatkozás +NationalRegistrationNumber=Országos regisztrációs szám PostOrFunction=Állás pozíció UserTitle=Cím -NatureOfThirdParty=Partner jellege -NatureOfContact=A kapcsolat jellege +NatureOfThirdParty=Harmadik fél természete +NatureOfContact=A kapcsolattartás jellege Address=Cím State=Állam / Tartomány -StateCode=Állam / tartomány / megye kódja +StateId=Állami azonosító +StateCode=Állam/Tartomány kódja StateShort=Állam/Megye Region=Régió -Region-State=Régió - állam +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 Call=Hívás Chat=Chat -PhonePro=Bus. phone +PhonePro=Üzleti telefon PhonePerso=Szem. telefon PhoneMobile=Mobil -No_Email=Tömeges levelezés letiltása +No_Email=Tömeges e-mailek visszautasítása Fax=Fax Zip=Irányítószám Town=Város Web=Web Poste= Pozíció DefaultLang=Alapértelmezett nyelv -VATIsUsed=Használt forgalmi adó -VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers -VATIsNotUsed=Forgalmi adó nem használt -CopyAddressFromSoc=Cím másolása a partner adataiból -ThirdpartyNotCustomerNotSupplierSoNoRef=A partner sem vevő, sem eladó, nincsenek elérhető referenciaobjektumok -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=A partner sem vásárló, sem eladó, kedvezmények nem állnak rendelkezésre +VATIsUsed=Felhasznált forgalmi adó +VATIsUsedWhenSelling=Ez határozza meg, hogy ez a harmadik fél tartalmaz-e forgalmi adót vagy sem, amikor számlát állít ki saját ügyfelei számára +VATIsNotUsed=A forgalmi adó nincs felhasználva +CopyAddressFromSoc=Cím másolása harmadik fél adataiból +ThirdpartyNotCustomerNotSupplierSoNoRef=Harmadik fél sem vevő, sem szállító, nincsenek elérhető hivatkozási objektumok +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Harmadik fél sem vásárló, sem szállító, kedvezmények nem érhetők el PaymentBankAccount=Fizetési bank számla -OverAllProposals=Javaslatok -OverAllOrders=Megrendelések +OverAllProposals=Árajánlatok +OverAllOrders=Rendelések OverAllInvoices=Számlák -OverAllSupplierProposals=Ár kérések +OverAllSupplierProposals=Árkérések ##### Local Taxes ##### LocalTax1IsUsed=Másodlagos adó használata LocalTax1IsUsedES= RE használandó @@ -98,10 +102,11 @@ LocalTax2IsUsed=Helyi adó használata LocalTax2IsUsedES= IRPF használandó LocalTax2IsNotUsedES= IRPF nem használandó WrongCustomerCode=Vevőkód érvénytelen -WrongSupplierCode=Az eladói kód érvénytelen +WrongSupplierCode=Érvénytelen szállítói kód CustomerCodeModel=Vevőkód modell -SupplierCodeModel=Eladó kód modell +SupplierCodeModel=Szállító kódmodell Gencod=Vonalkód +GencodBuyPrice=Az ár vonalkódja ref ##### Professional ID ##### ProfId1Short=Szakma ID 1 ProfId2Short=Szakma ID 2 @@ -125,7 +130,7 @@ ProfId1AT=Szakma ID 1 (USt.-IdNr) ProfId2AT=Szakma Id 2 (USt.-Nr) ProfId3AT=Szakma Id 3 (Kereskedelm kamarai szám) ProfId4AT=- -ProfId5AT=EORI number +ProfId5AT=EORI szám ProfId6AT=- ProfId1AU=Prof ID 1 (ABN) ProfId2AU=- @@ -137,7 +142,7 @@ ProfId1BE=Szakma ID 1 (Szakma szám) ProfId2BE=- ProfId3BE=- ProfId4BE=- -ProfId5BE=EORI number +ProfId5BE=EORI szám ProfId6BE=- ProfId1BR=- ProfId2BR=RÁ (Regisztrált Állam) @@ -145,11 +150,11 @@ ProfId3BR=RV (Regisztrált város) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS -ProfId1CH=UID-Nummer +ProfId1CH=UID-szám ProfId2CH=- ProfId3CH=Szakma ID 1 (szövetségi szám) ProfId4CH=Szakma ID 2 (Kereskedelmi azonosító) -ProfId5CH=EORI number +ProfId5CH=EORI szám ProfId6CH=- ProfId1CL=Szakma ID 1 (RUT) ProfId2CL=- @@ -157,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=- -ProfId5CM=- +ProfId1CM=1. szakmai azonosító (kereskedelmi nyilvántartás) +ProfId2CM=2. szakmai azonosító (adózó száma) +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=Trade Register -ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId1ShortCM=Kereskedelmi nyilvántartás +ProfId2ShortCM=Adófizető sz. +ProfId3ShortCM=Létrehozási rendelet sz. +ProfId4ShortCM=számú letéti igazolás +ProfId5ShortCM=Mások ProfId6ShortCM=- ProfId1CO=Szakma ID 1 (RUT) ProfId2CO=- @@ -179,21 +184,21 @@ ProfId1DE=Szakma ID 1 (USt.-IdNr) ProfId2DE=Szakma Id 2 (USt.-Nr) ProfId3DE=Szakma Id 3 (Kereskedelm kamarai szám) ProfId4DE=- -ProfId5DE=EORI number +ProfId5DE=EORI szám ProfId6DE=- ProfId1ES=Szakma ID 1 (CIF / NIF) ProfId2ES=Szakma ID 2 (Társadalombiztosítási szám) ProfId3ES=Szakma Id 3 (CNAE) ProfId4ES=Szakma Id 4 (Collegiate szám) -ProfId5ES=Prof Id 5 (EORI number) +ProfId5ES=5. szakmai azonosító (EORI-szám) ProfId6ES=- ProfId1FR=Szakma ID 1 (SIREN) ProfId2FR=Szakma ID 2 (SIRET) ProfId3FR=Szakma Id 3 (NAF, régi APE) ProfId4FR=Szakma Id 4 (RCS / RM) -ProfId5FR=Prof Id 5 (numéro EORI) +ProfId5FR=5. szakmai azonosító (EORI szám) ProfId6FR=- -ProfId1ShortFR=SIREN +ProfId1ShortFR=SZIRÉNA ProfId2ShortFR=SIRET ProfId3ShortFR=NAF ProfId4ShortFR=RCS @@ -221,19 +226,19 @@ ProfId1IT=- ProfId2IT=- ProfId3IT=- ProfId4IT=- -ProfId5IT=EORI number +ProfId5IT=EORI szám ProfId6IT=- ProfId1LU=Technikai azonosító 1 (Luxemburg) ProfId2LU=Technikai azonosító 2 (Üzlet engedélye) ProfId3LU=- ProfId4LU=- -ProfId5LU=EORI number +ProfId5LU=EORI szám ProfId6LU=- ProfId1MA=Szakma id 1 (RC) ProfId2MA=Szakma id 2 (Patente) ProfId3MA=Szakma id 3 (IF) ProfId4MA=Szakma id 4 (CNSS) -ProfId5MA=Id prof. 5 (I.C.E.) +ProfId5MA=5. szakmai azonosító (I.C.E.) ProfId6MA=- ProfId1MX=Szakma ID 1 (RFC). ProfId2MX=Szakma ID 2 (R.. P. IMSS) @@ -245,13 +250,13 @@ ProfId1NL=KVK Szám ProfId2NL=- ProfId3NL=- ProfId4NL=Burgerservicenummer (BSN) -ProfId5NL=EORI number +ProfId5NL=EORI szám ProfId6NL=- ProfId1PT=Szakma ID 1 (NIPC) ProfId2PT=Szakma ID 2 (Társadalombiztosítási szám) ProfId3PT=Szakma Id 3 (Kereskedelmi azonosító szám) ProfId4PT=Szakma Id 4 (Konzervatórium) -ProfId5PT=Prof Id 5 (EORI number) +ProfId5PT=5. szakmai azonosító (EORI-szám) ProfId6PT=- ProfId1SN=RC ProfId2SN=NINEA @@ -265,17 +270,17 @@ ProfId3TN=Szakma Id 3 (Douane kód) ProfId4TN=Szakma Id 4 (BAN) ProfId5TN=- ProfId6TN=- -ProfId1US=Szakma ID (FEIN) +ProfId1US=Szakmai azonosító (FEIN) ProfId2US=- ProfId3US=- ProfId4US=- ProfId5US=- ProfId6US=- -ProfId1RO=Szakma id 1 (CUI) -ProfId2RO=Szakma ID 2 (regisztrációs szám) -ProfId3RO=Szakma ID 3 (CAEN) -ProfId4RO=Szakma ID 5 (EUID) -ProfId5RO=Prof Id 5 (EORI number) +ProfId1RO=1. szakmai azonosító (CUI) +ProfId2RO=2. szakmai azonosító (Nr. Înmatriculare) +ProfId3RO=3. szakmai azonosító (CAEN) +ProfId4RO=5. szakmai azonosító (EUID) +ProfId5RO=5. szakmai azonosító (EORI-szám) ProfId6RO=- ProfId1RU=Szakma ID 1 (OGRN) ProfId2RU=Szakma ID 2 (INN) @@ -283,44 +288,44 @@ ProfId3RU=Szakma Id 3 (KKP) ProfId4RU=Szakma 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. szakmai azonosító (EDRPOU) +ProfId2UA=Professzionális azonosító 2 (DRFO) +ProfId3UA=3. szakmai azonosító (INN) +ProfId4UA=4. szakmai azonosító (tanúsítvány) +ProfId5UA=5. szakmai azonosító (RNOKPP) +ProfId6UA=6. szakmai azonosító (TRDPAU) ProfId1DZ=RC ProfId2DZ=Art. ProfId3DZ=NIF ProfId4DZ=NIS -VATIntra=Adószám -VATIntraShort=Adószám +VATIntra=ÁFA azonosító +VATIntraShort=ÁFA azonosító VATIntraSyntaxIsValid=Szintaxis érvényes -VATReturn=Áfa-visszatérítés +VATReturn=ÁFA vissatérítés ProspectCustomer=Jelentkező / Vevő Prospect=Jelentkező CustomerCard=Vevő-kártya Customer=Vevő CustomerRelativeDiscount=Relatív vásárlói kedvezmény -SupplierRelativeDiscount=Relatív eladói kedvezmény +SupplierRelativeDiscount=Relatív szállítói engedmény CustomerRelativeDiscountShort=Relatív kedvezmény CustomerAbsoluteDiscountShort=Abszolút kedvezmény CompanyHasRelativeDiscount=A vevő alapértelmezett kedvezménye %s%% CompanyHasNoRelativeDiscount=A vevő nem rendelkezik relatív kedvezménnyel alapértelmezésben -HasRelativeDiscountFromSupplier=Alapértelmezett kedvezménye %s%% ennél az eladónál -HasNoRelativeDiscountFromSupplier=Nincs alapértelmezett relatív engedménye ennél az eladónál -CompanyHasAbsoluteDiscount=Ennek az ügyfélnek kedvezmények állnak rendelkezésre (jóváírási jegyek vagy előleg) %s %s -CompanyHasDownPaymentOrCommercialDiscount=Ez az ügyfél kedvezményekkel rendelkezik (kereskedelmi, előlegek) %s %s +HasRelativeDiscountFromSupplier=Az alapértelmezett %s%% kedvezménye van ettől a szállítótól +HasNoRelativeDiscountFromSupplier=Nincs alapértelmezett relatív engedménye ettől a szállítótól +CompanyHasAbsoluteDiscount=Ennek az ügyfélnek kedvezményei vannak (jóváírás vagy előleg) a következőhöz: %s %s +CompanyHasDownPaymentOrCommercialDiscount=Ennek az ügyfélnek kedvezményei vannak (kereskedelmi, előleg) a következőre: %s %s CompanyHasCreditNote=Ez a vevő még hitellel rendelkezik %s %s-ig -HasNoAbsoluteDiscountFromSupplier=Nincs elérhető kedvezményes hitel ennél az eladónál -HasAbsoluteDiscountFromSupplier=Van engedménye (jóváírási jegyek vagy előlegek) %s %s ennél az eladónál. -HasDownPaymentOrCommercialDiscountFromSupplier=Van engedménye (kereskedelmi, előlegek) %s %s ennél az eladónál. -HasCreditNoteFromSupplier=Van hitelkártyája %s %s ennél az eladónál +HasNoAbsoluteDiscountFromSupplier=Nincs kedvezményes jóváírása ennél a szállítónál +HasAbsoluteDiscountFromSupplier=Kedvezményei vannak (jóváírások vagy előlegek) a következőhöz: %s %s ettől a szállítótól +HasDownPaymentOrCommercialDiscountFromSupplier=Kereskedelmi kedvezmények, előlegek) a következőhöz: %s %s ettől a szállítótól +HasCreditNoteFromSupplier=Önnek van jóváírása a következőhöz: %s %s ettől a szállítótól CompanyHasNoAbsoluteDiscount=A vevőnek nincs kedvezménye vagy hitele -CustomerAbsoluteDiscountAllUsers=Abszolút vásárlói engedmények (minden felhasználó által biztosított) -CustomerAbsoluteDiscountMy=Abszolút vásárlói engedmények (Ön által megadva) -SupplierAbsoluteDiscountAllUsers=Abszolút eladói kedvezmények (minden felhasználó megadta) -SupplierAbsoluteDiscountMy=Abszolút eladói kedvezmények (saját maga adja meg) +CustomerAbsoluteDiscountAllUsers=Abszolút vásárlói kedvezmények (minden felhasználó által biztosított) +CustomerAbsoluteDiscountMy=Abszolút vásárlói kedvezmények (Ön által biztosított) +SupplierAbsoluteDiscountAllUsers=Abszolút szállítói engedmények (minden felhasználó által megadva) +SupplierAbsoluteDiscountMy=Abszolút szállítói engedmények (Ön által megadott) DiscountNone=Nincs Vendor=Eladó Supplier=Eladó @@ -336,28 +341,28 @@ FromContactName=Név: NoContactDefinedForThirdParty=Nincs szerződés ehhez a partnerhez NoContactDefined=Nincs kapcsolat megadva DefaultContact=Alapértelmezett kapcsolat -ContactByDefaultFor=Alapértelmezett kapcsolat +ContactByDefaultFor=Alapértelmezett kapcsolattartó/cím AddThirdParty=Parnter létrehozása (harmadik fél) DeleteACompany=Cég törlése PersonalInformations=Személyes adatok -AccountancyCode=Accounting account +AccountancyCode=Számviteli számla CustomerCode=Ügyfélkód -SupplierCode=Eladói kód +SupplierCode=Szállítói kód CustomerCodeShort=Ügyfélkód -SupplierCodeShort=Eladói kód -CustomerCodeDesc=Ügyfélkód, minden vásárló számára egyedi -SupplierCodeDesc=Eladói kód, minden eladó számára egyedi +SupplierCodeShort=Szállítói kód +CustomerCodeDesc=Ügyfélkód, minden ügyfél számára egyedi +SupplierCodeDesc=Szállítói kód, minden szállító számára egyedi RequiredIfCustomer=Kötelező, ha a partner vevő vagy jelentkező -RequiredIfSupplier=Szükséges, ha a partner eladó -ValidityControledByModule=Validity controlled by the module -ThisIsModuleRules=A modul szabályai +RequiredIfSupplier=Szükséges, ha harmadik fél egy szállító +ValidityControledByModule=Az érvényességet a modul szabályozza +ThisIsModuleRules=Szabályok ehhez a modulhoz ProspectToContact=Jelentkező a kapcsolat felvételre CompanyDeleted="%s" cég törölve az adatbázisból. ListOfContacts=Névjegyek / címek -ListOfContactsAddresses=Névjegyek / címek -ListOfThirdParties=Partnerek listája +ListOfContactsAddresses=Névjegyek/címek listája +ListOfThirdParties=Harmadik felek listája ShowCompany=Harmadik fél -ShowContact=Kapcsolat-Cím +ShowContact=Kapcsolattartási cím ContactsAllShort=Minden (nincs szűrő) ContactType=Kapcsolat típusa ContactForOrders=Megrendelés kapcsolattartó @@ -371,20 +376,20 @@ NoContactForAnyProposal=Nem kapcsolattartó egyik kereskedelmi javaslatnál sem NoContactForAnyContract=Nem kapcsolattartó egyetlen szerződésnél sem NoContactForAnyInvoice=Nem kapcsolattartó egyik számlánál sem NewContact=Új kapcsolat -NewContactAddress=Új kapcsolattartó / cím +NewContactAddress=Új kapcsolattartó/cím MyContacts=Kapcsolataim Capital=Tőke CapitalOf=%s tőkéje EditCompany=Cég szerkesztése -ThisUserIsNot=Ez a felhasználó nem lehetséges partner, vevő vagy eladó +ThisUserIsNot=Ez a felhasználó nem potenciális ügyfél, nem szállító VATIntraCheck=Csekk -VATIntraCheckDesc=Az ÁFA-azonosítónak tartalmaznia kell az ország előtagot. Az %s link az Európai ÁFA-ellenőrző szolgáltatást (VIES) használja, amely internet-hozzáférést igényel a Dolibarr szerverről. +VATIntraCheckDesc=Az adóazonosítónak tartalmaznia kell az ország előtagját. A %s hivatkozás az európai áfa-ellenőrző szolgáltatást (VIES) használja, amely internet-hozzáférést igényel a Dolibarr szervertől. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do -VATIntraCheckableOnEUSite=Ellenőrizze a Közösségen belüli ÁFA-azonosítót az Európai Bizottság weboldalán -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraCheckableOnEUSite=Ellenőrizze a Közösségen belüli áfaazonosítót az Európai Bizottság honlapján +VATIntraManualCheck=Manuálisan is ellenőrizheti az Európai Bizottság webhelyén: %s ErrorVATCheckMS_UNAVAILABLE=Ellenőrzés nem lehetséges. A szolgáltatást a tagállam nem teszi lehetővé (%s). -NorProspectNorCustomer=Nem leendő partner, nem ügyfél -JuridicalStatus=Business entity type +NorProspectNorCustomer=Nem potenciális ügyfél, sem ügyfél +JuridicalStatus=Üzleti entitás típusa Workforce=Munkaerő Staff=Alkalmazottak ProspectLevelShort=Potenciális @@ -426,23 +431,23 @@ ExportCardToFormat=Kártya exportálása formázással ContactNotLinkedToCompany=Kapcsolat nincs partnerhez csatolva DolibarrLogin=Dolibarr bejelentkezés NoDolibarrAccess=Nem Dolibarr hozzáférés -ExportDataset_company_1=Partnerek (társaságok/alapítványok/személyek) és azok adatai -ExportDataset_company_2=Kapcsolatok és azok adatai -ImportDataset_company_1=Partnerek és azok adatai -ImportDataset_company_2=Partnerek további elérhetőségei / címei és jellemzői -ImportDataset_company_3=Partnerek bankszámlái -ImportDataset_company_4=Partnerek értékesítési képviselői (értékesítési képviselőket / felhasználókat rendelhetnek a vállalatokhoz) +ExportDataset_company_1=Harmadik felek (cégek/alapítványok/fizikai személyek) és tulajdonságaik +ExportDataset_company_2=Kapcsolattartók és tulajdonságaik +ImportDataset_company_1=Harmadik felek és tulajdonságaik +ImportDataset_company_2=Harmadik féltől származó további kapcsolatok/címek és attribútumok +ImportDataset_company_3=Harmadik fél bankszámlái +ImportDataset_company_4=Harmadik felek értékesítési képviselői (értékesítési képviselők/felhasználók hozzárendelése a vállalatokhoz) PriceLevel=Árszint PriceLevelLabels=Árszint címkék DeliveryAddress=Szállítási cím AddAddress=Cím hozzáadása -SupplierCategory=Eladó kategória +SupplierCategory=Szállító kategória JuridicalStatus200=Független DeleteFile=Fájl törlése ConfirmDeleteFile=Biztosan törölni akarja ezt a fájlt? AllocateCommercial=Értékesítési képviselőhöz hozzárendelve Organization=Szervezet -FiscalYearInformation=Pénzügyi év +FiscalYearInformation=Fizális év FiscalMonthStart=Pénzügyi év kezdő hónapja SocialNetworksInformation=Közösségi hálózatok SocialNetworksFacebookURL=Facebook URL @@ -451,45 +456,45 @@ SocialNetworksLinkedinURL=Linkedin URL SocialNetworksInstagramURL=Instagram URL SocialNetworksYoutubeURL=Youtube URL SocialNetworksGithubURL=Github URL -YouMustAssignUserMailFirst=Az e-mail értesítés hozzáadása előtt meg kell adnia egy e-mail címet a felhasználó számára. +YouMustAssignUserMailFirst=E-mail értesítés hozzáadása előtt létre kell hoznia egy e-mailt a felhasználó számára. YouMustCreateContactFirst=E-mail értesítő hozzáadásához létre kell hozni egy e-mail kapcsolatot a harmadik félhez. -ListSuppliersShort=Eladók listája -ListProspectsShort=A lehetséges partnerek listája +ListSuppliersShort=Szállítók listája +ListProspectsShort=Lehetőségek listája ListCustomersShort=Ügyfelek listája -ThirdPartiesArea=Partnerek / kapcsolattartók -LastModifiedThirdParties=Latest %s Third Parties which were modified -UniqueThirdParties=Total number of Third Parties -InActivity=Nyitott +ThirdPartiesArea=Harmadik felek/Kapcsolatok +LastModifiedThirdParties=A legutóbbi %s harmadik fél, amely módosult +UniqueThirdParties=Harmadik felek teljes száma +InActivity=Nyitva ActivityCeased=Lezárt ThirdPartyIsClosed=Harmadik fél lezárva -ProductsIntoElements=List of products/services mapped to %s +ProductsIntoElements=A termékek/szolgáltatások listája a következőhöz rendelve: %s CurrentOutstandingBill=Jelenlegi kintlévőség OutstandingBill=Maximális kintlévőség OutstandingBillReached=Max. a kintlévőség elért OrderMinAmount=Minimális rendelési összeg -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. +MonkeyNumRefModelDesc=Számot ad vissza %syymm-nnnn formátumban az ügyfél kódjaként és %syymm-nnnn formátumban a szállító kódjaként, ahol az yy az év, a mm a hónap és az nnnn egy szekvenciális automatikusan növekvő szám, megszakítás nélkül és 0-hoz való visszatérés nélkül. . LeopardNumRefModelDesc=A kód szabad. Ez a kód bármikor módosítható. ManagingDirectors=Vezető(k) neve (ügyvezető, elnök, igazgató) MergeOriginThirdparty=Duplikált partner (a partnert törlésre kerül) MergeThirdparties=Partnerek egyesítése -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=A partnereket egyesítve +ConfirmMergeThirdparties=Biztosan egyesíteni szeretné a kiválasztott harmadik felet a jelenlegivel? Minden kapcsolt objektum (számlák, rendelések, ...) átkerül az aktuális harmadik félhez, majd a kiválasztott harmadik fél törlődik. +ThirdpartiesMergeSuccess=Harmadik felek egyesítése megtörtént SaleRepresentativeLogin=Kereskedelmi képviselő bejelentkezés -SaleRepresentativeFirstname=Az értékesítési képviselő vezetékneve +SaleRepresentativeFirstname=Az értékesítési képviselő keresztneve SaleRepresentativeLastname=Az értékesítési képviselő vezetékneve -ErrorThirdpartiesMerge=Hiba történt a partner(ek) törlésekor. Kérjük, ellenőrizze a naplót. A változtatások visszavonva. -NewCustomerSupplierCodeProposed=A vevő vagy az eladó kódja már használatban van, egy új kód javasolt -KeepEmptyIfGenericAddress=Hagyja üresen ezt a mezőt, ha a cím általános cím +ErrorThirdpartiesMerge=Hiba történt a harmadik felek törlésekor. Kérjük, ellenőrizze a naplót. A változtatásokat visszaállították. +NewCustomerSupplierCodeProposed=Az ügyfél vagy szállító kódja már használatban van, új kód javasolt +KeepEmptyIfGenericAddress=Hagyja üresen ezt a mezőt, ha ez egy általános cím #Imports -PaymentTypeCustomer=Fizetés típusa - Ügyfél +PaymentTypeCustomer=Fizetési típus - Ügyfél PaymentTermsCustomer=Fizetési feltételek - Ügyfél -PaymentTypeSupplier=Fizetés típusa - Eladó -PaymentTermsSupplier=Fizetési határidő - Eladó -PaymentTypeBoth=Fizetés típusa - Vevő és eladó +PaymentTypeSupplier=Fizetési típus - Szállító +PaymentTermsSupplier=Fizetési határidő – Szállító +PaymentTypeBoth=Fizetési típus - Vevő és szállító MulticurrencyUsed=Több pénznem használata MulticurrencyCurrency=Pénznem -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. +InEEC=Európa (EGK) +RestOfEurope=Európa többi része (EGK) +OutOfEurope=Európán kívül (EGK) +CurrentOutstandingBillLate=A jelenlegi fennálló számla késik +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Legyen óvatos, a termék árbeállításaitól függően meg kell változtatnia a harmadik felet, mielőtt hozzáadná a terméket a POS-hoz. diff --git a/htdocs/langs/hu_HU/compta.lang b/htdocs/langs/hu_HU/compta.lang index 0e434db0cfc..e8e456e2f32 100644 --- a/htdocs/langs/hu_HU/compta.lang +++ b/htdocs/langs/hu_HU/compta.lang @@ -1,300 +1,302 @@ # 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=Könyvelési opció -OptionModeTrue=Bevételek - Kiadások opció -OptionModeVirtual=Követelések - Tartozások opció -OptionModeTrueDesc=Ebben az összefüggésben a forgalom számított kifizetések (a kifizetések ideje). \\ NA érvényességét a számok csak akkor biztosított, ha a könyvelést is vizsgálják át az input / output A számlákon keresztül számlákat. -OptionModeVirtualDesc=Ebben az összefüggésben a forgalom kiszámítása során számlákat (érvényesítés időpontja). Amikor ezek a számlák miatt, attól, hogy fizetett vagy sem, azok szerepelnek a forgalmi teljesítmény. -FeatureIsSupportedInInOutModeOnly=Funkciót csak az KREDITEK-TARTOZÁSOK számviteli módban (lásd könyvelés modul konfiguráció) -VATReportBuildWithOptionDefinedInModule=Az itt feltüntetett összegek kiszámítása a szabályok által meghatározott adó modul beállítása. -LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Company setup. +MenuFinancial=Számlázás | Fizetés +TaxModuleSetupToModifyRules=Lépjen az adómodul beállításához a számítási szabályok módosításához +TaxModuleSetupToModifyRulesLT=Lépjen a Vállalati beállítás oldalra a számítási szabályok módosításához +OptionMode=Opció a könyveléshez +OptionModeTrue=Opciós bevételek-kiadások +OptionModeVirtual=Opciós követelések-tartozások +OptionModeTrueDesc=Ebben az összefüggésben a forgalom a kifizetések alapján kerül kiszámításra (a kifizetések dátuma). A számadatok érvényessége csak akkor biztosított, ha a könyvelést a számlákon keresztül a számlákon történő input/output útján ellenőrzik. +OptionModeVirtualDesc=Ebben az összefüggésben a forgalom a számlák alapján kerül kiszámításra (érvényesítés dátuma). Amikor ezek a számlák esedékesek, függetlenül attól, hogy kifizették-e vagy sem, a forgalom kibocsátása között szerepelnek. +FeatureIsSupportedInInOutModeOnly=A szolgáltatás csak CREDITS-DEBTS könyvelési módban érhető el (lásd: Könyvelési modul konfigurációja) +VATReportBuildWithOptionDefinedInModule=Az itt látható összegek az Adómodul beállításai által meghatározott szabályok alapján lettek kiszámítva. +LTReportBuildWithOptionDefinedInModule=Az itt látható összegek a vállalati beállítások által meghatározott szabályok alapján lettek kiszámítva. Param=Beállítás -RemainingAmountPayment=Fennmaradó összeg: -Account=Fiók -Accountparent=Parent account -Accountsparent=Parent accounts +RemainingAmountPayment=Fennmaradó befizetés összege: +Account=Számla +Accountparent=Szülői fiók +Accountsparent=Szülői fiókok Income=Jövedelem Outcome=Költség -MenuReportInOut=Bevétel / Kiadás -ReportInOut=Balance of income and expenses -ReportTurnover=Turnover invoiced -ReportTurnoverCollected=Turnover collected -PaymentsNotLinkedToInvoice=Kifizetések nem kapcsolódik semmilyen számlát, így nem kapcsolódik semmilyen harmadik fél -PaymentsNotLinkedToUser=Kifizetések nem kapcsolódnak egyetlen felhasználó -Profit=Nyereség +MenuReportInOut=Bevétel/kiadás +ReportInOut=A bevételek és kiadások egyenlege +ReportTurnover=A forgalom kiszámlázva +ReportTurnoverCollected=Beszedett forgalom +PaymentsNotLinkedToInvoice=A kifizetések nem kapcsolódnak egyetlen számlához sem, tehát nem kapcsolódnak harmadik félhez +PaymentsNotLinkedToUser=Egyetlen felhasználóhoz sem kapcsolt kifizetések +Profit=Profit AccountingResult=Számviteli eredmény BalanceBefore=Egyenleg (előtte) Balance=Egyenleg -Debit=Tartozik +Debit=Terhelés Credit=Hitel -Piece=Accounting Doc. -AmountHTVATRealReceived=Net gyűjtött -AmountHTVATRealPaid=Net fizetett -VATToPay=Tax sales -VATReceived=Tax received -VATToCollect=Tax purchases -VATSummary=Adó havonta +Piece=Számviteli dok. +AmountHTVATRealReceived=A nettó összegyűlt +AmountHTVATRealPaid=Nettó fizetett +VATToPay=Adóértékesítés +VATReceived=Adó beérkezett +VATToCollect=Adó vásárlások +VATSummary=Havi adó VATBalance=Adóegyenleg -VATPaid=Befizetett adó -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=Fizetett IRPF -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 értékesítési +VATPaid=Fizetett adó +LT1Summary=Adó 2 összesítése +LT2Summary=Adó 3 összegzése +LT1SummaryES=RE Egyenleg +LT2SummaryES=IRPF-egyenleg +LT1SummaryIN=CGST-egyenleg +LT2SummaryIN=SGST egyenleg +LT1Paid=2 fizetett adó +LT2Paid=3 fizetett adó +LT1PaidES=RE Fizetett +LT2PaidES=IRPF Fizetett +LT1PaidIN=CGST fizetett +LT2PaidIN=SGST Fizetett +LT1Customer=Adó 2 értékesítés +LT1Supplier=Adó 2 vásárlások +LT1CustomerES=RE értékesítés +LT1SupplierES=RE vásárlások +LT1CustomerIN=CGST értékesítés +LT1SupplierIN=CGST vásárlások +LT2Customer=Adó 3 értékesítés +LT2Supplier=Adó 3 vásárlások +LT2CustomerES=IRPF értékesítés LT2SupplierES=IRPF vásárlások -LT2CustomerIN=SGST sales -LT2SupplierIN=SGST purchases -VATCollected=Beszedett HÉA +LT2CustomerIN=SGST értékesítés +LT2SupplierIN=SGST vásárlások +VATCollected=ÁFA beszedett StatusToPay=Fizetni -SpecialExpensesArea=Area for all special payments -VATExpensesArea=Area for all TVA payments -SocialContribution=Social or fiscal tax +SpecialExpensesArea=Az összes speciális kifizetés területe +VATExpensesArea=Az összes TVA-kifizetés területe +SocialContribution=Szociális vagy fiskális adó SocialContributions=Szociális vagy fiskális adók -SocialContributionsDeductibles=Deductible social or fiscal taxes -SocialContributionsNondeductibles=Nondeductible social or fiscal taxes -DateOfSocialContribution=A szociális vagy fiskális adó dátuma -LabelContrib=Címke közreműködése -TypeContrib=Type contribution -MenuSpecialExpenses=Különleges költségek -MenuTaxAndDividends=Adók és osztalék -MenuSocialContributions=Szociális vagy fiskális adók +SocialContributionsDeductibles=Levonható szociális vagy fiskális adók +SocialContributionsNondeductibles=Nem levonható szociális vagy fiskális adók +DateOfSocialContribution=Szociális vagy fiskális adó dátuma +LabelContrib=A címke hozzájárulása +TypeContrib=Típus hozzájárulás +MenuSpecialExpenses=Speciális kiadások +MenuTaxAndDividends=Adók és osztalékok +MenuSocialContributions=Szociális/fiskális adók MenuNewSocialContribution=Új szociális/fiskális adó NewSocialContribution=Új szociális/fiskális adó AddSocialContribution=Szociális/fiskális adó hozzáadása -ContributionsToPay=Social/fiscal taxes to pay -AccountancyTreasuryArea=Billing and payment area -NewPayment=Új fizetési -PaymentCustomerInvoice=Ügyfél számla fizetési -PaymentSupplierInvoice=szállítói számla fizetés -PaymentSocialContribution=Szociális/költségvetési adó fizetés -PaymentVat=ÁFA-fizetés +ContributionsToPay=Szociális/fiskális adók, amelyeket fizetni kell +AccountancyTreasuryArea=Számlázási és fizetési terület +NewPayment=Új fizetés +PaymentCustomerInvoice=Vásárlói számla kifizetése +PaymentSupplierInvoice=szállítói számla kifizetése +PaymentSocialContribution=Szociális/fiskális adófizetés +PaymentVat=ÁFA fizetés AutomaticCreationPayment=A fizetés automatikus rögzítése -ListPayment=A fizetési lista -ListOfCustomerPayments=Ügyfelek fizetési listája -ListOfSupplierPayments=A szállítói kifizetések listája -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=Új fizetési IRPF -LT1PaymentES=RE Payment -LT1PaymentsES=RE Payments -LT2PaymentES=Fizetési IRPF -LT2PaymentsES=IRPF kifizetések -VATPayment=Sales tax payment -VATPayments=Sales tax payments -VATDeclarations=ÁFA bevallások -VATDeclaration=ÁFA bevallás -VATRefund=Forgalmi adó visszatérítése -NewVATPayment=New sales tax payment -NewLocalTaxPayment=New tax %s payment +ListPayment=Kifizetések listája +ListOfCustomerPayments=Az ügyfél fizetéseinek listája +ListOfSupplierPayments=Szállítói fizetések listája +DateStartPeriod=Dátum kezdési időszak +DateEndPeriod=Dátum befejezési időszak +newLT1Payment=Új adó 2 befizetés +newLT2Payment=Új adó 3 befizetés +LT1Payment=Adó 2 befizetés +LT1Payments=Adó 2 befizetés +LT2Payment=Adó 3 befizetés +LT2Payments=Adó 3 befizetés +newLT1PaymentES=Új RE fizetés +newLT2PaymentES=Új IRPF fizetés +LT1PaymentES=RE Fizetés +LT1PaymentsES=RE Fizetések +LT2PaymentES=IRPF fizetés +LT2PaymentsES=IRPF-kifizetések +VATPayment=Forgalmi adó fizetése +VATPayments=Forgalmi adó fizetése +VATDeclarations=ÁFA nyilatkozatok +VATDeclaration=ÁFA nyilatkozat +VATRefund=Forgalmi adó visszatérítés +NewVATPayment=Új forgalmi adó fizetése +NewLocalTaxPayment=Új %s adófizetés Refund=Visszatérítés -SocialContributionsPayments=Social/fiscal taxes payments -ShowVatPayment=Mutasd ÁFA fizetési -TotalToPay=Összes fizetni -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=Ügyfél számviteli kód -SupplierAccountancyCode=Szállítói számviteli kód -CustomerAccountancyCodeShort=Cust. account. code -SupplierAccountancyCodeShort=Sup. account. code +SocialContributionsPayments=Szociális/fiskális adók befizetései +ShowVatPayment=ÁFA befizetés megjelenítése +TotalToPay=Összesen fizetendő +BalanceVisibilityDependsOnSortAndFilters=Az egyenleg csak akkor látható ebben a listában, ha a táblázat %s szerint van rendezve, és 1 bankszámlára van szűrve (más szűrő nélkül) +CustomerAccountancyCode=Ügyfél könyvelési kódja +SupplierAccountancyCode=Szállító könyvelési kódja +CustomerAccountancyCodeShort=Ügyfélszámla kód +SupplierAccountancyCodeShort=Szállítói számlakód AccountNumber=Számlaszám -NewAccountingAccount=Új számla fiók -Turnover=Turnover invoiced -TurnoverCollected=Turnover collected +NewAccountingAccount=Új fiók +Turnover=Kiszámlázott forgalom +TurnoverCollected=Beszedett forgalom SalesTurnoverMinimum=Minimális forgalom ByExpenseIncome=Kiadások és bevételek szerint -ByThirdParties=Bu harmadik fél -ByUserAuthorOfInvoice=A számla szerző -CheckReceipt=Ellenőrizze a betéti -CheckReceiptShort=Ellenőrizze a betéti -LastCheckReceiptShort=Latest %s check receipts +ByThirdParties=Harmadik féltől +ByUserAuthorOfInvoice=Számla szerzője szerint +CheckReceipt=Csekk letét +CheckReceiptShort=Csekk letét +LastCheckReceiptShort=A legutóbbi %s csekk nyugták NewCheckReceipt=Új kedvezmény -NewCheckDeposit=Új ellenőrizze betéti -NewCheckDepositOn=Készítsen nyugtát letét számla: %s -NoWaitingChecks=No checks awaiting deposit. -DateChequeReceived=Check receiving date -NbOfCheques=No. of checks -PaySocialContribution=Pay a social/fiscal tax -PayVAT=Fizessen ÁFA bevallást -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=Szociális és fiskális adók és befizetések -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=Bevételek és kiadások mérlege, éves összefoglaló -AnnualSummaryInputOutputMode=Bevételek és kiadások mérlege, éves összefoglaló -AnnualByCompanies=A bevételek és költségek egyenlege előre meghatározott számlacsoportok szerint -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=- A feltüntetett összegek az összes adót tartalmazzák -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 +NewCheckDeposit=Új csekkbefizetés +NewCheckDepositOn=Nyugta létrehozása a következő számlán: %s +NoWaitingChecks=Nincs befizetésre váró csekk +DateChequeReceived=A kézhezvétel dátumának ellenőrzése +NbOfCheques=Csekkek száma +PaySocialContribution=Szociális/fiskális adó fizetése +PayVAT=Áfa-bevallás befizetése +PaySalary=Bérkártya fizetés +ConfirmPaySocialContribution=Biztosan fizetettnek kívánja minősíteni ezt a szociális vagy adóadót? +ConfirmPayVAT=Biztosan kifizetettnek kívánja minősíteni ezt az áfabevallást? +ConfirmPaySalary=Biztosan kifizetettnek szeretné minősíteni ezt a fizetési kártyát? +DeleteSocialContribution=Szociális vagy adófizetési kötelezettség törlése +DeleteVAT=ÁFA bevallás törlése +DeleteSalary=Bérkártya törlése +DeleteVariousPayment=Különféle fizetés törlése +ConfirmDeleteSocialContribution=Biztosan törölni szeretné ezt a szociális/adófizetési kötelezettséget? +ConfirmDeleteVAT=Biztosan törölni szeretné ezt az ÁFA bevallást? +ConfirmDeleteSalary=Biztosan törli ezt a fizetést? +ConfirmDeleteVariousPayment=Biztosan törli ezt a különböző fizetést? +ExportDataset_tax_1=Szociális és fiskális adók és kifizetések +CalcModeVATDebt=Mód: %sVAT a kötelezettségvállalási könyvelésen%s. +CalcModeVATEngagement=Mód: %sÁFA a bevételekre-kiadásokra%s. +CalcModeDebt=Ismert rögzített bizonylatok elemzése, még akkor is, ha még nincsenek elkönyvelve a főkönyvben. +CalcModeEngagement=Ismert rögzített kifizetések elemzése, még akkor is, ha még nincsenek elszámolva a Főkönyvben. +CalcModeBookkeeping=A Könyvelési Főkönyvi táblában naplózott adatok elemzése. +CalcModeLT1= %sRE mód a vásárlói számlákon - szállítói számlák%s +CalcModeLT1Debt=Mód: %sRE ügyfélszámlákon%s +CalcModeLT1Rec= %sRE mód a szállítói számlákon%s +CalcModeLT2= %sIRPF mód a vevői számlákon – szállítói számlák%s +CalcModeLT2Debt=Mód: %sIRPF a vevői számlákon%s +CalcModeLT2Rec= %sIRPF mód a szállítói számlákon%s +AnnualSummaryDueDebtMode=Bevételek és kiadások mérlege, éves összesítés +AnnualSummaryInputOutputMode=Bevételek és kiadások mérlege, éves összesítés +AnnualByCompanies=A bevételek és kiadások egyenlege előre meghatározott számlacsoportok szerint +AnnualByCompaniesDueDebtMode=A bevételek és kiadások egyenlege, részletezés előre meghatározott csoportok szerint, a %sClaims-Debts%s mód szerint a Kötelezettségvállalás elszámolása. +AnnualByCompaniesInputOutputMode=A bevételek és kiadások egyenlege, részletezés előre meghatározott csoportok szerint, a %sIncomes-Expenses%s mód szerint a pénztári elszámolás. +SeeReportInInputOutputMode=Lásd a befizetések %s elemzését a rögzített befizetéseken alapuló számításért, még akkor is, ha azokat még nem könyvelték el a Főkönyvben +SeeReportInDueDebtMode=Tekintse meg a rögzített dokumentumok %s elemzését az ismert rögzített dokumentumokon alapuló számításért, még akkor is, ha még nincsenek elszámolva a Főkönyvben +SeeReportInBookkeepingMode=Lásd a könyvelési főkönyvi tábla%s elemzését a könyvelési főkönyvi tábla alapján készült jelentésért +RulesAmountWithTaxIncluded=- A megjelenített összegek az összes adót tartalmazzák +RulesAmountWithTaxExcluded=- A megjelenített számlák összegei az összes adót nem tartalmazzák +RulesResultDue=- Tartalmazza az összes számlát, költséget, áfát, adományt, fizetést, függetlenül attól, hogy ki vannak-e fizetve vagy sem.
    - A számlák számlázási dátuma, valamint a költségek vagy adófizetés esedékessége alapján történik. A fizetéseknél az időszak végének dátumát kell használni. +RulesResultInOut=- Tartalmazza a valós számlák, költségek, áfa és fizetések kifizetését.
    - A számlák, költségek, áfa, adományok és fizetések fizetési dátuma alapján történik. +RulesCADue=- Tartalmazza az ügyfél esedékes számláit, függetlenül attól, hogy ki vannak fizetve vagy sem.
    - Ezeknek a számláknak a számlázási dátumán alapul.
    +RulesCAIn=- Tartalmazza az ügyfelektől kapott számlák összes tényleges kifizetését.
    - A számlák fizetési dátumán alapul
    +RulesCATotalSaleJournal=Az értékesítési napló összes hitelkeretét tartalmazza. +RulesSalesTurnoverOfIncomeAccounts=Az INCOME csoport termékszámláihoz tartozó sorokat tartalmazza (jóváírás - terhelés) +RulesAmountOnInOutBookkeepingRecord=Tartalmazza a főkönyvi nyilvántartást a "KIADÁS" vagy "BEVEZETÉS" csoporttal rendelkező könyvelési számlákkal. +RulesResultBookkeepingPredefined=Tartalmazza a könyvelési könyvben a "KIADÁS" vagy "BEVEZETÉS" csoporttal rendelkező könyvelési számlákat. +RulesResultBookkeepingPersonalized=Rekordot jelenít meg a Főkönyvben a könyvelési számlákkal személyre szabott csoportok szerint csoportosítva +SeePageForSetup=Lásd a %s menüt a beállításhoz +DepositsAreNotIncluded=- Az előlegszámlákat nem tartalmazza DepositsAreIncluded=- Az előlegszámlákat tartalmazza -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=Jelentés a harmadik fél 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=Megjegyzés: A tárgyi eszközök, nem szabad használni a szállítás időpontját, hogy igazságosabb. -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=%% / Számla -NotUsedForGoods=Nem használt termékek -ProposalStats=Statisztika javaslatok -OrderStats=Statisztikák a megrendelések -InvoiceStats=Statisztikák a számlák -Dispatch=Teherelosztása -Dispatched=Feladása -ToDispatch=Az elszállítást -ThirdPartyMustBeEditAsCustomer=A harmadik fél által kell meghatározni, mint vevő -SellsJournal=Értékesítési Journal -PurchasesJournal=Beszerzés lap -DescSellsJournal=Értékesítési Journal -DescPurchasesJournal=Vásárlások Journal -CodeNotDef=Nem meghatározott -WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. -DatePaymentTermCantBeLowerThanObjectDate=A fizetés határideje nem lehet korábbi a tárgy dátumánál -Pcg_version=Chart of accounts models -Pcg_type=Pcg type -Pcg_subtype=Pcg subtype -InvoiceLinesToDispatch=Invoice lines to dispatch +LT1ReportByMonth=Adó 2 jelentés havi bontásban +LT2ReportByMonth=Adó 3 jelentés hónaponként +LT1ReportByCustomers=A 2. adó bejelentése harmadik fél által +LT2ReportByCustomers=A 3. adóbejelentés harmadik fél által +LT1ReportByCustomersES=Harmadik fél RE jelentése +LT2ReportByCustomersES=Harmadik fél IRPF jelentése +VATReport=Forgalmi adó jelentés +VATReportByPeriods=Áfa jelentés időszakonként +VATReportByMonth=Áfa jelentés havi bontásban +VATReportByRates=Forgalmi adó jelentés kulcs szerint +VATReportByThirdParties=Harmadik fél által készített forgalmi adó jelentés +VATReportByCustomers=A vevő által készített forgalmi adó jelentés +VATReportByCustomersInInputOutputMode=Az ügyfél jelentése beszedett és befizetett áfa +VATReportByQuartersInInputOutputMode=A beszedett és befizetett adó forgalmi adókulcsa szerinti jelentése +VATReportShowByRateDetails=Részletek megjelenítése az árfolyamról +LT1ReportByQuarters=Jelentés Adó 2 kulcs szerint +LT2ReportByQuarters=Jelentés Adó 3 kulcs szerint +LT1ReportByQuartersES=Jelentés RE arány szerint +LT2ReportByQuartersES=Jelentés IRPF arány szerint +SeeVATReportInInputOutputMode=Lásd a %sÁFA beszedés%s jelentést a szabványos számításhoz +SeeVATReportInDueDebtMode=Tekintse meg a %sáfa %s terhelésen jelentést a számlázási opcióval rendelkező számításért +RulesVATInServices=- A szolgáltatások esetében a jelentés a ténylegesen beérkezett vagy kifizetett kifizetések áfáját tartalmazza a fizetés dátuma alapján. +RulesVATInProducts=- Anyagi javak esetén a jelentés a fizetés dátuma alapján tartalmazza az áfát. +RulesVATDueServices=- A szolgáltatások esetében a jelentés tartalmazza az esedékes számlák áfáját, függetlenül attól, hogy ki vannak-e fizetve, a számla dátuma alapján. +RulesVATDueProducts=- Anyagi javak esetében a jelentés tartalmazza az esedékes számlák áfáját, a számla dátuma alapján. +OptionVatInfoModuleComptabilite=Megjegyzés: Az anyagi javak esetében a méltányosság érdekében a szállítás dátumát kell használnia. +ThisIsAnEstimatedValue=Ez egy előnézet, amely üzleti eseményeken alapul, és nem a végső főkönyvi táblázatból, így a végeredmény eltérhet ettől az előnézeti értéktől +PercentOfInvoice=%%/számla +NotUsedForGoods=Nem használt árukhoz +ProposalStats=A pályázatok statisztikái +OrderStats=Statisztikák a rendelésekről +InvoiceStats=Számlák statisztikái +Dispatch=Kiküldés +Dispatched=Elküldve +ToDispatch=Felküldés +ThirdPartyMustBeEditAsCustomer=A harmadik felet ügyfélként kell meghatározni +SellsJournal=Értékesítési napló +PurchasesJournal=Vásárlási napló +DescSellsJournal=Értékesítési napló +DescPurchasesJournal=Vásárlási napló +CodeNotDef=Nincs definiálva +WarningDepositsNotIncluded=Az előlegszámlákat ez a verzió nem tartalmazza ebben a könyvelési modulban. +DatePaymentTermCantBeLowerThanObjectDate=A fizetési határidő dátuma nem lehet alacsonyabb az objektum dátumánál. +Pcg_version=Számladiagram modellek +Pcg_type=Pcg típus +Pcg_subtype=Pcg altípus +InvoiceLinesToDispatch=Kiküldendő számlasorok ByProductsAndServices=Termék és szolgáltatás szerint -RefExt=Külső hiv -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click on button "%s". -LinkedOrder=Link a rendelésre -Mode1=Method 1 -Mode2=Method 2 -CalculationRuleDesc=Az összes Áfa kiszámítására 2 mód van:
    1. mód: az Áfa kerekítése soronként, majd összeadva.
    2. mód: összeadva soronként, majd a végeredmény kerekítve.
    A végeredményben lehet némi eltérés. Az alapértelmezett: %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. +RefExt=Külső hiv. +ToCreateAPredefinedInvoice=Számlasablon létrehozásához hozzon létre egy szabványos számlát, majd annak érvényesítése nélkül kattintson a "%s" gombra. +LinkedOrder=Link a rendeléshez +Mode1=1. módszer +Mode2=2. módszer +CalculationRuleDesc=A teljes áfa kiszámításához két módszer létezik:
    Az 1. módszer az áfát minden soron kerekíti, majd összegzi.
    A 2. módszer az összes áfa összegzése az egyes sorokon, majd az eredmény kerekítése.
    Végső eredmény néhány centtől eltérhet. Az alapértelmezett mód a %s mód. +CalculationRuleDescSupplier=A szállítótól függően válassza ki a megfelelő módszert, hogy ugyanazt a számítási szabályt alkalmazza, és ugyanazt az eredményt kapja, amelyet a szállítója vár. +TurnoverPerProductInCommitmentAccountingNotRelevant=A termékenként gyűjtött forgalomról szóló jelentés nem érhető el. Ez a jelentés csak a számlázott forgalomról érhető el. +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=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=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_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_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 +ConfirmCloneSalary=Egy fizetés klónjának megerősítése CloneTaxForNextMonth=Klónozza a következő hónapra SimpleReport=Egyszerű jelentés -AddExtraReport=Extra reports (add foreign and national customer report) -OtherCountriesCustomersReport=Külföldi vásárlók összesítése -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code -SameCountryCustomersWithVAT=Hazai vásárlók összesítése -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=Szociális vagy fiskális adók -ImportDataset_tax_vat=Áfa fizetés -ErrorBankAccountNotFound=Error: Bank account not found -FiscalPeriod=Könyvelési periódus -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 +AddExtraReport=Extra jelentések (külföldi és belföldi ügyféljelentés hozzáadása) +OtherCountriesCustomersReport=Külföldi ügyfelek jelentése +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Az adószám első két betűje alapján, amely eltér a saját cége országkódjától +SameCountryCustomersWithVAT=Nemzeti ügyfelek jelentése +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Az adószám első két betűje alapján, amely megegyezik a saját cége országkódjával +LinkedFichinter=Link egy beavatkozáshoz +ImportDataset_tax_contrib=Szociális/fiskális adók +ImportDataset_tax_vat=Áfa befizetések +ErrorBankAccountNotFound=Hiba: Bankszámla nem található +FiscalPeriod=Elszámolási időszak +ListSocialContributionAssociatedProject=A projekthez kapcsolódó társadalmi hozzájárulások listája +DeleteFromCat=Eltávolítás a könyvelési csoportból +AccountingAffectation=Számviteli feladat +LastDayTaxIsRelatedTo=Az adózás időszakának utolsó napja +VATDue=Áfa igényelve +ClaimedForThisPeriod=Követelve az időszakra +PaidDuringThisPeriod=Erre az időszakra fizetve +PaidDuringThisPeriodDesc=Ez az összes olyan ÁFA-bevalláshoz kapcsolódó kifizetés összege, amelyeknek az időszak végi dátuma van a kiválasztott dátumtartományban +ByVatRate=A forgalmi adó mértéke szerint +TurnoverbyVatrate=A forgalmi adó mértéke szerint számlázott forgalom +TurnoverCollectedbyVatrate=A forgalmi adó mértéke alapján beszedett forgalom +PurchasebyVatrate=Vásárlás forgalmi adókulcs szerint LabelToShow=Rövid címke -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 = A hitelek szerepeltetése a jelentésekben -InvoiceLate30Days = Késő számlák (> 30 nap) -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=Vásárlási forgalom +PurchaseTurnoverCollected=Vásárlási forgalom begyűjtve +RulesPurchaseTurnoverDue=- Tartalmazza a szállító esedékes számláit, függetlenül attól, hogy azokat kifizették-e vagy sem.
    - Ezeknek a számláknak a számla dátumán alapul.
    +RulesPurchaseTurnoverIn=- Tartalmazza a szállítóknak kiállított számlák összes tényleges kifizetését.
    - A számlák fizetési dátumán alapul
    +RulesPurchaseTurnoverTotalPurchaseJournal=Tartalmazza a beszerzési napló összes terhelési sorát. +RulesPurchaseTurnoverOfExpenseAccounts=Az EXPENSE csoport termékszámláihoz tartozó sorokat tartalmazza (terhelés - jóváírás) +ReportPurchaseTurnover=A vásárlási forgalom kiszámlázva +ReportPurchaseTurnoverCollected=A vásárlási forgalom összegyűjtve +IncludeVarpaysInResults = Különféle kifizetések szerepeltetése a jelentésekben +IncludeLoansInResults = A kölcsönök szerepeltetése a jelentésekben +InvoiceLate30Days = Késő (> 30 nap) +InvoiceLate15Days = Későn (15-30 nap) +InvoiceLateMinus15Days = Későn (< 15 nap) +InvoiceNotLate = Beszedendő (< 15 nap) +InvoiceNotLate15Days = Beszedendő (15-30 nap) +InvoiceNotLate30Days = Beszedendő (> 30 nap) +InvoiceToPay=Fizetés (< 15 nap) +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? diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang index e097d2988db..ac8af20bdc5 100644 --- a/htdocs/langs/hu_HU/errors.lang +++ b/htdocs/langs/hu_HU/errors.lang @@ -1,334 +1,349 @@ # Dolibarr language file - Source file is en_US - errors # No errors -NoErrorCommitIsDone=No error, we commit +NoErrorCommitIsDone=Nincs hiba, véglegesítjük # Errors -ErrorButCommitIsDone=Hibákat találtunk, de ennek ellenére érvényesítjük -ErrorBadEMail=A(z) %s e-mail nem megfelelő -ErrorBadMXDomain=A(z) %s e-mail cím helytelennek tűnik (a domain nem rendelkezik érvényes MX rekorddal) -ErrorBadUrl=%s URL helytelen -ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. -ErrorRefAlreadyExists=Reference %s already exists. -ErrorLoginAlreadyExists=A %s felhasználói név már létezik. +ErrorButCommitIsDone=Hibákat találtunk, de ennek ellenére ellenőrizzük +ErrorBadEMail=A %s e-mail hibás +ErrorBadMXDomain=A %s e-mail helytelennek tűnik (a domainnek nincs érvényes MX rekordja) +ErrorBadUrl=A %s URL helytelen +ErrorBadValueForParamNotAString=Rossz értéke a paraméterhez. Általában hozzáfűződik, ha hiányzik a fordítás. +ErrorRefAlreadyExists=A(z) %s hivatkozás már létezik. +ErrorTitleAlreadyExists=Az %s cím már létezik. +ErrorLoginAlreadyExists=A %s bejelentkezés már létezik. ErrorGroupAlreadyExists=A %s csoport már létezik. -ErrorEmailAlreadyExists=%s e-mail már létezik. -ErrorRecordNotFound=A rekord nem található -ErrorFailToCopyFile=A '%s' fájl másolása sikertelen '%s' -ba. -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. -ErrorFailToRenameFile=Nem sikerült átnevezni a '%s' fájlt '%s' -ra. -ErrorFailToDeleteFile=Nem sikerült eltávolítani a '%s' fájlt. -ErrorFailToCreateFile=Nem sikerült létrehozni a '%s' fájlt. -ErrorFailToRenameDir=Nem sikerült átnevezni a '%s' könyvtárat '%s' -ra. +ErrorEmailAlreadyExists=A %s e-mail már létezik. +ErrorRecordNotFound=A rekord nem található. +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. +ErrorFailToDeleteFile=A(z) '%s' fájl eltávolítása sikertelen. +ErrorFailToCreateFile=Nem sikerült létrehozni a(z) '%s' fájlt. +ErrorFailToRenameDir=Nem sikerült átnevezni a '%s könyvtárat '%s' névre. ErrorFailToCreateDir=Nem sikerült létrehozni a '%s' könyvtárat. ErrorFailToDeleteDir=Nem sikerült törölni a '%s' könyvtárat. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. -ErrorThisContactIsAlreadyDefinedAsThisType=Ez a kapcsolat már definiálva van, mint az ilyen típusú kapcsolatot. -ErrorCashAccountAcceptsOnlyCashMoney=Ez egy folyószámla, ezért csak készpénzes fizetési módot fogad el. -ErrorFromToAccountsMustDiffers=A forrás és cél bankszámláknak különbözőeknek kell lenniük. -ErrorBadThirdPartyName=Rossz érték a harmadik fél nevében -ForbiddenBySetupRules=Forbidden by setup rules -ErrorProdIdIsMandatory=A %s kötelezően megadandó -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory -ErrorBadCustomerCodeSyntax=Az ügyfélkód szintaxisa rossz -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. +ErrorFailToMakeReplacementInto=Nem sikerült a '%s' fájl cseréje. +ErrorFailToGenerateFile=Nem sikerült létrehozni a(z) '%s' fájlt. +ErrorThisContactIsAlreadyDefinedAsThisType=Ez a kapcsolattartó már meg van határozva ehhez a típushoz. +ErrorCashAccountAcceptsOnlyCashMoney=Ez a bankszámla készpénzes számla, így csak készpénzes fizetést fogad el. +ErrorFromToAccountsMustDiffers=A forrás és a cél bankszámláknak különbözniük kell. +ErrorBadThirdPartyName=Hibás érték a harmadik fél nevéhez +ForbiddenBySetupRules=A beállítási szabályok tiltják +ErrorProdIdIsMandatory=A %s kötelező +ErrorAccountancyCodeCustomerIsMandatory=Az %s ügyfél számviteli kódja kötelező +ErrorBadCustomerCodeSyntax=Rossz szintaxis az ügyfélkódhoz +ErrorBadBarCodeSyntax=Rossz vonalkód szintaxis. Lehet, hogy rossz vonalkódtípust állított be, vagy olyan vonalkódmaszkot definiált a számozáshoz, amely nem egyezik a beolvasott értékkel. ErrorCustomerCodeRequired=Ügyfélkód szükséges ErrorBarCodeRequired=Vonalkód szükséges -ErrorCustomerCodeAlreadyUsed=Ügyfélkód már használatban -ErrorBarCodeAlreadyUsed=Barcode already used +ErrorCustomerCodeAlreadyUsed=Az ügyfélkód már használatban van +ErrorBarCodeAlreadyUsed=Már használt vonalkód ErrorPrefixRequired=Előtag szükséges -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code -ErrorSupplierCodeRequired=Szállítói kód szükséges -ErrorSupplierCodeAlreadyUsed=Vendor code already used -ErrorBadParameters=Hibás paraméterek -ErrorWrongParameters=Wrong or missing parameters -ErrorBadValueForParameter=A '%s' érték nem megfelelő a '%s' paraméter számára -ErrorBadImageFormat=A képfájl formátuma nem támogatott (A PHP nem támogatja ilyen formátumú képek konverzióját) -ErrorBadDateFormat=A '%s' értéke nem megfelelő dátum formátum -ErrorWrongDate=A dátum nem megfelelő! +ErrorBadSupplierCodeSyntax=Hibás szintaxis a szállítói kódhoz +ErrorSupplierCodeRequired=Szállítókód szükséges +ErrorSupplierCodeAlreadyUsed=Már használt szállítói kód +ErrorBadParameters=Rossz paraméterek +ErrorWrongParameters=Hibás vagy hiányzó paraméterek +ErrorBadValueForParameter=Hibás '%s' érték a '%s' paraméterhez +ErrorBadImageFormat=A képfájl formátuma nem támogatott (a PHP nem támogatja az ilyen formátumú képeket konvertáló funkciókat) +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 -ErrorFoundBadEmailInFile=Talált rossz e-mail szintaxisa %s sorok fájlt (például az e-mail vonal %s %s =) -ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities. -ErrorFieldsRequired=Some required fields have been left blank. -ErrorSubjectIsRequired=Az e -mail tárgya kötelező -ErrorFailedToCreateDir=Nem sikerült létrehozni egy könyvtárat. Ellenőrizze, hogy a Web szerver felhasználó engedélyekkel rendelkezik, hogy ültesse át Dolibarr dokumentumok könyvtárba. Ha a paraméter safe_mode engedélyezve van ez a PHP-t, ellenőrizze, hogy Dolibarr PHP fájlok tulajdonosa a webszerver felhasználó (vagy csoport). -ErrorNoMailDefinedForThisUser=Nincs megadva a felhasználó email címe -ErrorSetupOfEmailsNotComplete=Az e -mailek beállítása nem fejeződött be -ErrorFeatureNeedJavascript=A funkcó működéséhez Javascript aktiválására van szükség. A beállítások - képernyő részben beállíthatja. -ErrorTopMenuMustHaveAParentWithId0=Egy menü típusú "fent" nem lehet egy szülő menüben. Tedd 0 szülő menüből, vagy válasszon egy menüt típusú "baloldal". -ErrorLeftMenuMustHaveAParentId=Egy menü típusú "Bal" kell egy szülő id. -ErrorFileNotFound=%s fájl nem található (Rossz út, rossz engedélyek vagy a hozzáférés megtagadva a PHP safe_mode openbasedir vagy paraméter) -ErrorDirNotFound=%s könyvtár nem található (Rossz út, rossz engedélyek vagy a hozzáférés megtagadva a PHP safe_mode openbasedir vagy paraméter) -ErrorFunctionNotAvailableInPHP=Funkció %s van szükség, de ez a funkció nem érhető el ez a verzió / beállítását PHP. -ErrorDirAlreadyExists=A könyvtár ezzel a névvel már létezik. -ErrorFileAlreadyExists=Egy ugyanilyen nevű fájl már létezik. -ErrorDestinationAlreadyExists=Another file with the name %s already exists. -ErrorPartialFile=A fájlt nem sikerült teljesen feltölteni. -ErrorNoTmpDir=A %s ideiglenes könyvtár nem létezik. -ErrorUploadBlockedByAddon=A feltöltést akadályozza valamilyen PHP / Apache plugin. +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. +ErrorSubjectIsRequired=Az e-mail tárgya kötelező +ErrorFailedToCreateDir=Nem sikerült létrehozni egy könyvtárat. Ellenőrizze, hogy a webszerver-felhasználó jogosult-e írni a Dolibarr dokumentumok könyvtárába. Ha a safe_mode paraméter engedélyezve van ezen a PHP-n, ellenőrizze, hogy a Dolibarr php fájlok a webszerver felhasználójához (vagy csoportjához) tartoznak-e. +ErrorNoMailDefinedForThisUser=Nincs levél definiálva ehhez a felhasználóhoz +ErrorSetupOfEmailsNotComplete=Az e-mailek beállítása nem fejeződött be +ErrorFeatureNeedJavascript=A funkció működéséhez aktiválni kell a javascriptet. Módosítsa ezt a beállítás - kijelzőben. +ErrorTopMenuMustHaveAParentWithId0=A „Felső” típusú menünek nem lehet szülőmenüje. Írjon 0-t a szülőmenübe, vagy válasszon egy „Bal” típusú menüt. +ErrorLeftMenuMustHaveAParentId=A 'Bal' típusú menünek szülőazonosítóval kell rendelkeznie. +ErrorFileNotFound=A(z) %s fájl nem található (Rossz elérési út, rossz engedélyek vagy a PHP openbasedir vagy safe_mode paramétere megtagadta a hozzáférést) +ErrorDirNotFound=A(z) %s könyvtár nem található (rossz elérési út, rossz engedélyek vagy hozzáférés megtagadva a PHP openbasedir vagy safe_mode paramétere miatt) +ErrorFunctionNotAvailableInPHP=A(z) %s függvény szükséges ehhez a szolgáltatáshoz, de a PHP ezen verziójában/beállításában nem érhető el. +ErrorDirAlreadyExists=Már létezik ilyen nevű könyvtár. +ErrorFileAlreadyExists=Már létezik ilyen nevű fájl. +ErrorDestinationAlreadyExists=Már létezik egy másik fájl %s néven. +ErrorPartialFile=A fájlt nem kapta meg teljesen a szerver. +ErrorNoTmpDir=A %s ideiglenes címtár nem létezik. +ErrorUploadBlockedByAddon=A feltöltést egy PHP/Apache bővítmény blokkolta. ErrorFileSizeTooLarge=A fájl mérete túl nagy. -ErrorFieldTooLong=Field %s is too long. -ErrorSizeTooLongForIntType=Túl nagy szám az int típushoz (maximum %s számjegy) -ErrorSizeTooLongForVarcharType=Túl hosszú szöveg a string típushoz (%s karakter 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=Nem számviteli modul aktiválódik -ErrorExportDuplicateProfil=This profile name already exists for this export set. -ErrorLDAPSetupNotComplete=Dolibarr LDAP-egyezés nem teljes. -ErrorLDAPMakeManualTest=Egy. LDIF fájlt keletkezett %s könyvtárban. Próbálja meg kézzel betölteni a parancssorból, hogy több információt hibákat. -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 nem szabad tiltani, hogy ez a funkció működik. Annak engedélyezése / tiltása Javascript, menj a menü Home-> Beállítások-> Kijelző. -ErrorPasswordsMustMatch=Mindkét típusú jelszavakat kell egyeznie egymással -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 -ErrorFileIsInfectedWithAVirus=A víruskereső program nem tudta érvényesíteni a fájl (file lehet megfertőzte egy vírus) -ErrorSpecialCharNotAllowedForField=Speciális karakterek használata nem engedélyezett területen "%s" -ErrorNumRefModel=A referencia létezik az adatbázis (%s), és nem kompatibilis ezzel a számozással a szabály. Vegye rekord vagy átnevezték hivatkozással, hogy aktiválja ezt a modult. -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=Hiba a maszk -ErrorBadMaskFailedToLocatePosOfSequence=Hiba, maszk sorozatszám nélkül -ErrorBadMaskBadRazMonth=Hiba, rossz érték visszaállítása -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 van rendelve egy másik harmadik +ErrorFieldTooLong=A %s mező túl hosszú. +ErrorSizeTooLongForIntType=A méret túl hosszú az int típushoz (maximum %s számjegy) +ErrorSizeTooLongForVarcharType=A méret túl hosszú a karakterlánc típusához (maximum %s karakter) +ErrorNoValueForSelectType=Kérjük, töltse ki a kiválasztási lista értékét +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. +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. +ErrorLDAPSetupNotComplete=Dolibarr-LDAP egyeztetés nem fejeződött be. +ErrorLDAPMakeManualTest=Egy .ldif fájl jött létre a %s könyvtárban. Próbálja meg manuálisan betölteni a parancssorból, hogy több információhoz jusson a hibákról. +ErrorCantSaveADoneUserWithZeroPercentage=Nem lehet elmenteni egy műveletet "az állapot nem indult el", ha a "készült" mező is kitöltve van. +ErrorRefAlreadyExists=A(z) %s hivatkozás már létezik. +ErrorPleaseTypeBankTransactionReportName=Kérjük, adja meg a bankszámlakivonat nevét, ahol a bejegyzést jelenteni kell (ÉÉÉÉHH vagy ÉÉÉÉHHNN formátum) +ErrorRecordHasChildren=Nem sikerült törölni a rekordot, mert van néhány alárendelt rekordja. +ErrorRecordHasAtLeastOneChildOfType=A %s objektumnak legalább egy %s típusú gyermeke van +ErrorRecordIsUsedCantDelete=A rekord nem törölhető. Már használatban van vagy egy másik objektumban szerepel. +ErrorModuleRequireJavascript=A szolgáltatás működéséhez a JavaScriptet nem szabad letiltani. A Javascript engedélyezéséhez/letiltásához lépjen a Főmenü->Beállítás->Kijelző menübe. +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 +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 +ErrorModuleSetupNotComplete=A %s modul beállítása úgy tűnik, hogy nem fejeződött be. A befejezéshez lépjen a Kezdőlap - Beállítás - Modulok pontra. +ErrorBadMask=Hiba a maszknál +ErrorBadMaskFailedToLocatePosOfSequence=Hiba, maszk sorszám nélkül +ErrorBadMaskBadRazMonth=Hiba, rossz visszaállítási érték +ErrorMaxNumberReachForThisMask=Elérte a maszk maximális számát +ErrorCounterMustHaveMoreThan3Digits=A számlálónak több mint 3 számjegyből kell állnia +ErrorSelectAtLeastOne=Hiba, válasszon ki legalább egy bejegyzést. +ErrorDeleteNotPossibleLineIsConsolidated=A törlés nem lehetséges, mert a rekord egy egyeztetett banki tranzakcióhoz kapcsolódik +ErrorProdIdAlreadyExist=%s egy másik harmadhoz van hozzárendelve ErrorFailedToSendPassword=Nem sikerült elküldeni a jelszót -ErrorFailedToLoadRSSFile=Nem kap RSS feed. Próbálja felvenni, ha állandó MAIN_SIMPLEXMLLOAD_DEBUG hibaüzenetek nem nyújt elegendő információt. -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=Engedély e be lehet meghatározni a Dolibarr rendszergazda menüből %s-> %s. -ErrorForbidden3=Úgy tűnik, hogy Dolibarr nem használt keresztül hitelesített ülésén. Vessen egy pillantást Dolibarr üzembe helyezési dokumentációban tudni, hogyan kell kezelni hitelesítések (htaccess, mod_auth vagy más ...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. -ErrorNoImagickReadimage=Osztály imagick nem található ebben a PHP. Nem előnézet elérhető. A rendszergazdák letilthatják ezt a lapot menüből Setup - Display. -ErrorRecordAlreadyExists=Felvétel már létezik +ErrorFailedToLoadRSSFile=Nem sikerült lekérni az RSS hírfolyamot. Próbálja meg hozzáadni a MAIN_SIMPLEXMLLOAD_DEBUG állandót, ha a hibaüzenetek nem adnak elegendő információt. +ErrorForbidden=Hozzáférés megtagadva.
    Egy letiltott modul oldalához, területéhez vagy szolgáltatásához próbál hozzáférni, vagy anélkül, hogy hitelesített munkamenetben lenne, vagy amely nem engedélyezett a felhasználó számára. +ErrorForbidden2=Ennek a bejelentkezésnek az engedélyét a Dolibarr rendszergazdája határozhatja meg a %s->%s menüben. +ErrorForbidden3=Úgy tűnik, hogy a Dolibarr nem hitelesített munkameneten keresztül történik. Tekintse meg a Dolibarr beállítási dokumentációját, hogy megtudja, hogyan kezelheti a hitelesítéseket (htaccess, mod_auth vagy egyéb...). +ErrorForbidden4=Megjegyzés: törölje a böngésző cookie-jait, hogy megsemmisítse a meglévő munkameneteket ehhez a bejelentkezéshez. +ErrorNoImagickReadimage=A Class Imagick nem található ebben a PHP-ben. Nem érhető el előnézet. A rendszergazdák letilthatják ezt a lapot a Beállítás - Megjelenítés menüben. +ErrorRecordAlreadyExists=Már létezik rekord ErrorLabelAlreadyExists=Ez a címke már létezik -ErrorCantReadFile=Nem sikerült olvasni file "%s" -ErrorCantReadDir=Nem sikerült olvasni könyvtár "%s" -ErrorBadLoginPassword=Rossz érték be vagy jelszó -ErrorLoginDisabled=A fiók le van tiltva -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. +ErrorCantReadFile=Nem sikerült beolvasni a(z) '%s' fájlt +ErrorCantReadDir=Nem sikerült beolvasni a '%s' könyvtárat +ErrorBadLoginPassword=Rossz bejelentkezési vagy jelszó értéke +ErrorLoginDisabled=Fiókját letiltották +ErrorFailedToRunExternalCommand=A külső parancs futtatása nem sikerült. Ellenőrizze, hogy elérhető-e és futtatható-e a PHP-kiszolgáló felhasználója. Ellenőrizze azt is, hogy a parancsot nem védi shell szinten olyan biztonsági réteg, mint az apparmor. ErrorFailedToChangePassword=Nem sikerült megváltoztatni a jelszót -ErrorLoginDoesNotExists=Felhasználó bejelentkezési %s nem található. -ErrorLoginHasNoEmail=Ennek a felhasználónak nincs e-mail címre. Folyamat megszakítva. -ErrorBadValueForCode=Rossz érték a biztonsági kódot. Próbálja újra, az új érték ... -ErrorBothFieldCantBeNegative=Fields %s %s és nem lehet egyszerre negatív -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=Felhasználói fiók %s végrehajtására használnak web szerver nincs engedélye az adott -ErrorNoActivatedBarcode=Nem vonalkód típus aktivált -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=Nem sikerült hozzáadni a névjegyet -ErrorDateMustBeBeforeToday=The date must be lower than today +ErrorLoginDoesNotExists=A(z) %s bejelentkezési névvel rendelkező felhasználó nem található. +ErrorLoginHasNoEmail=Ennek a felhasználónak nincs e-mail címe. A folyamat megszakítva. +ErrorBadValueForCode=A biztonsági kód hibás értéke. Próbálja újra új értékkel... +ErrorBothFieldCantBeNegative=A %s és a %s mező nem lehet negatív +ErrorFieldCantBeNegativeOnInvoice=A(z) %s mező nem lehet negatív az ilyen típusú számlákon. Ha kedvezménysort kell hozzáadnia, először csak hozza létre a kedvezményt (a harmadik féltől származó kártya „%s” mezőjéből), és alkalmazza azt a számlán. +ErrorLinesCantBeNegativeForOneVATRate=A sorok összessége (adó nélkül) nem lehet negatív egy adott nem null áfakulcs esetén (Negatív összeget találtunk a(z) %s%% áfakulcshoz. +ErrorLinesCantBeNegativeOnDeposits=A sorok nem lehetnek negatívak a betétben. Problémákkal kell szembenéznie, amikor a végszámlán szereplő letétet fel kell használnia. +ErrorQtyForCustomerInvoiceCantBeNegative=A vevői számlák sorának mennyisége nem lehet negatív +ErrorWebServerUserHasNotPermission=A webszerver végrehajtásához használt %s felhasználói fióknak nincs engedélye ehhez +ErrorNoActivatedBarcode=Nincs aktivált vonalkód típus +ErrUnzipFails=Nem sikerült kicsomagolni %s a ZipArchive segítségével +ErrNoZipEngine=Nincs motor a %s fájl tömörítésére/kicsomagolására ebben a PHP-ben +ErrorFileMustBeADolibarrPackage=A %s fájlnak Dolibarr zip csomagnak kell lennie +ErrorModuleFileRequired=Ki kell választania egy Dolibarr modul csomagfájlt +ErrorPhpCurlNotInstalled=A PHP CURL nincs telepítve, ez elengedhetetlen a Paypallal való beszélgetéshez +ErrorFailedToAddToMailmanList=Nem sikerült hozzáadni a(z) %s rekordot a(z) %s levelezőlistához vagy a SPIP-bázishoz +ErrorFailedToRemoveToMailmanList=Nem sikerült eltávolítani a(z) %s rekordot a(z) %s levelezőlistából vagy a SPIP-bázisból +ErrorNewValueCantMatchOldValue=Az új érték nem lehet egyenlő a régivel +ErrorFailedToValidatePasswordReset=A jelszó újraindítása sikertelen. Lehet, hogy a reinit már megtörtént (ez a hivatkozás csak egyszer használható). Ha nem, próbálja meg újraindítani az újraindítási folyamatot. +ErrorToConnectToMysqlCheckInstance=Az adatbázishoz való csatlakozás sikertelen. Ellenőrizze, hogy fut-e az adatbázis-kiszolgáló (például mysql/mariadb esetén elindíthatja parancssorból a „sudo service mysql start” paranccsal). +ErrorFailedToAddContact=Nem sikerült a névjegy hozzáadása +ErrorDateMustBeBeforeToday=A dátumnak alacsonyabbnak kell lennie a mainál ErrorDateMustBeInFuture=A dátumnak nagyobbnak kell lennie a mainál -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 +ErrorPaymentModeDefinedToWithoutSetup=A fizetési mód %s típusúra lett állítva, de a Számla modul beállítása nem fejeződött be az ehhez a fizetési módhoz megjelenítendő információk meghatározásához. +ErrorPHPNeedModule=Hiba, a funkció használatához a PHP-ben telepítve kell lennie a(z) %s modulnak. +ErrorOpenIDSetupNotComplete=A Dolibarr konfigurációs fájlját úgy állította be, hogy engedélyezze az OpenID hitelesítést, de az OpenID szolgáltatás URL-je nincs megadva %s konstansban +ErrorWarehouseMustDiffers=A forrás és a cél raktáraknak különbözniük kell ErrorBadFormat=Rossz formátum! -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' +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Hiba, ez a tag még nem kapcsolódik harmadik félhez. Kapcsolja össze a tagot egy meglévő harmadik féllel, vagy hozzon létre egy új harmadik felet, mielőtt számlás előfizetést hoz létre. +ErrorThereIsSomeDeliveries=Hiba, ehhez a szállítmányhoz néhány szállítás kapcsolódik. A törlés elutasítva. +ErrorCantDeletePaymentReconciliated=Nem lehet törölni egy olyan fizetést, amely egyeztetett banki bejegyzést generált +ErrorCantDeletePaymentSharedWithPayedInvoice=Nem lehet törölni egy fizetést, amely legalább egy Fizetett állapotú számlán meg van osztva +ErrorPriceExpression1=Nem lehet hozzárendelni a '%s' állandóhoz +ErrorPriceExpression2=A beépített '%s' függvény nem definiálható újra +ErrorPriceExpression3=Nem definiált '%s' változó a függvénydefinícióban +ErrorPriceExpression4=Illegális karakter '%s' +ErrorPriceExpression5=Váratlan '%s' +ErrorPriceExpression6=Rossz számú argumentum (%s megadva, %s várható) +ErrorPriceExpression8=Váratlan operátor '%s' +ErrorPriceExpression9=Váratlan hiba történt +ErrorPriceExpression10=A '%s' operátorból hiányzik az operandus +ErrorPriceExpression11='%s' várható +ErrorPriceExpression14=Osztás nullával +ErrorPriceExpression17=Nem definiált változó '%s' +ErrorPriceExpression19=A kifejezés nem található +ErrorPriceExpression20=Üres kifejezés +ErrorPriceExpression21=Üres eredmény '%s' +ErrorPriceExpression22=Negatív eredmény: '%s' +ErrorPriceExpression23=Ismeretlen vagy nem beállított változó '%s' itt: %s +ErrorPriceExpression24=A '%s' változó létezik, de nincs értéke +ErrorPriceExpressionInternal=Belső hiba '%s' +ErrorPriceExpressionUnknown=Ismeretlen hiba: '%s' +ErrorSrcAndTargetWarehouseMustDiffers=A forrás és a cél raktáraknak különbözniük kell +ErrorTryToMakeMoveOnProductRequiringBatchData=Hiba a készlet-/szériainformációk nélküli készletmozgás során a '%s' terméken, amely tétel-/szériainformációt igényel +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Minden rögzített vételt először ellenőrizni kell (jóvá kell hagyni vagy meg kell tagadni), mielőtt engedélyezni lehetne ezt a műveletet +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Minden rögzített vételt először ellenőrizni (jóvá kell hagyni), mielőtt engedélyeznék ezt a műveletet +ErrorGlobalVariableUpdater0=A HTTP-kérés meghiúsult '%s' hibával +ErrorGlobalVariableUpdater1=Érvénytelen JSON formátum '%s' +ErrorGlobalVariableUpdater2=Hiányzó paraméter: '%s' +ErrorGlobalVariableUpdater3=A kért adat nem található az eredményben +ErrorGlobalVariableUpdater4=A SOAP kliens '%s' hibával meghiúsult ErrorGlobalVariableUpdater5=Nincs globális változó kiválasztva -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'. +ErrorFieldMustBeANumeric=A(z) %s mezőnek numerikus értéknek kell lennie +ErrorMandatoryParametersNotProvided=A kötelező paraméter(ek) nincsenek megadva +ErrorOppStatusRequiredIfAmount=Beállított egy becsült összeget ehhez az ügylethez. Tehát meg kell adni az állapotát is. +ErrorFailedToLoadModuleDescriptorForXXX=Nem sikerült betölteni a modulleíró osztályt a következőhöz: %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=A menütömb hibás meghatározása a modulleíróban (az fk_menu kulcs hibás értéke) +ErrorSavingChanges=Hiba történt a változtatások mentésekor +ErrorWarehouseRequiredIntoShipmentLine=Raktár szükséges a szállítási vonalon +ErrorFileMustHaveFormat=A fájlnak %s formátumúnak kell lennie +ErrorFilenameCantStartWithDot=A fájlnév nem kezdődhet "." +ErrorSupplierCountryIsNotDefined=Ennek a szállítónak az országa nincs megadva. Először ezt javítsd ki. +ErrorsThirdpartyMerge=Nem sikerült egyesíteni a két rekordot. A kérés törölve. +ErrorStockIsNotEnoughToAddProductOnOrder=A készlet nem elegendő a(z) %s termékhez ahhoz, hogy hozzáadja egy új rendeléshez. +ErrorStockIsNotEnoughToAddProductOnInvoice=A készlet nem elegendő a(z) %s termékhez ahhoz, hogy hozzáadja egy új számlához. +ErrorStockIsNotEnoughToAddProductOnShipment=A készlet nem elegendő a(z) %s termékhez ahhoz, hogy új szállítmányhoz adhassa. +ErrorStockIsNotEnoughToAddProductOnProposal=A készlet nem elegendő a(z) %s terméknek ahhoz, hogy hozzáadja egy új ajánlathoz. +ErrorFailedToLoadLoginFileForMode=Nem sikerült lekérni a bejelentkezési kulcsot a '%s' módhoz. ErrorModuleNotFound=A modul fájlja nem található. -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. +ErrorFieldAccountNotDefinedForBankLine=A számviteli fiók értéke nincs megadva a(z) %s (%s) forrássorazonosítóhoz +ErrorFieldAccountNotDefinedForInvoiceLine=A számviteli fiók értéke nincs megadva a(z) %s számlaazonosítóhoz (%s) +ErrorFieldAccountNotDefinedForLine=A számviteli fiók értéke nincs megadva a (%s) sorhoz +ErrorBankStatementNameMustFollowRegex=Hiba, a bankszámlakivonat nevének követnie kell a következő szintaktikai szabályt: %s +ErrorPhpMailDelivery=Ellenőrizze, hogy nem használ túl sok címzettet, és hogy az e-mail tartalma nem hasonlít-e a spamhez. Kérje meg a rendszergazdát is, hogy ellenőrizze a tűzfal és a szerver naplófájljait a teljesebb információkért. +ErrorUserNotAssignedToTask=A felhasználót hozzá kell rendelni a feladathoz, hogy beírhassa az elhasznált időt. ErrorTaskAlreadyAssigned=A feladat már hozzá van rendelve a felhasználóhoz -ErrorModuleFileSeemsToHaveAWrongFormat=Úgy tűnik, hogy a modulcsomag rossz formátumú. -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=Hiba, nincsenek raktárak definiálva. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorModuleFileSeemsToHaveAWrongFormat=Úgy tűnik, hogy a modulcsomag formátuma rossz. +ErrorModuleFileSeemsToHaveAWrongFormat2=Legalább egy kötelező könyvtárnak léteznie kell a modul zip-fájljában: %s vagy %s +ErrorFilenameDosNotMatchDolibarrPackageRules=A modulcsomag neve (%s) nem egyezik a név várt szintaxisával: %s +ErrorDuplicateTrigger=Hiba, ismétlődő triggernév: %s. Már betöltve innen: %s. +ErrorNoWarehouseDefined=Hiba, nincsenek megadva raktárak. +ErrorBadLinkSourceSetButBadValueForRef=A használt hivatkozás érvénytelen. A fizetés „forrása” meg van határozva, de a „ref” értéke nem érvényes. ErrorTooManyErrorsProcessStopped=Túl sok hiba. A folyamat leállt. -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. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=A tömeges érvényesítés nem lehetséges, ha a készlet növelésének/csökkentésének opciója be van állítva ennél a műveletnél (egyenként kell érvényesítenie, hogy meg tudja határozni a raktár növelését/csökkentését) +ErrorObjectMustHaveStatusDraftToBeValidated=A(z) %s objektumnak 'Vázlat' állapotúnak kell lennie az érvényesítéshez. +ErrorObjectMustHaveLinesToBeValidated=A %s objektumnak rendelkeznie kell sorokkal az érvényesítéshez. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Csak érvényesített számlák küldhetők a "Küldés e-mailben" tömeges művelettel. +ErrorChooseBetweenFreeEntryOrPredefinedProduct=Ki kell választania, hogy a cikk előre meghatározott termék-e vagy sem +ErrorDiscountLargerThanRemainToPaySplitItBefore=Az érvényesíteni kívánt kedvezmény nagyobb, mint amennyit még fizetni kell. Előtte oszd meg a kedvezményt 2 kisebb kedvezményre. +ErrorFileNotFoundWithSharedLink=A fájl nem található. Lehet, hogy a megosztási kulcsot módosították, vagy a fájlt nemrégiben eltávolították. +ErrorProductBarCodeAlreadyExists=A termék vonalkódja (%s) már létezik egy másik termékreferencián. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Ne feledje, hogy a készletek használata az altermékek automatikus növelésére/csökkentésére nem lehetséges, ha legalább egy részterméknek (vagy altermékek résztermékének) sorozat-/tételszámra van szüksége. +ErrorDescRequiredForFreeProductLines=A leírás kötelező az ingyenes terméket tartalmazó soroknál +ErrorAPageWithThisNameOrAliasAlreadyExists=A(z) %s oldalnak/tárolónak ugyanaz a neve vagy alternatív álneve, mint amit használni próbál +ErrorDuringChartLoad=Hiba a számlatükör betöltésekor. Ha néhány fiók nem lett betöltve, akkor is megadhatja azokat manuálisan. +ErrorBadSyntaxForParamKeyForContent=A param keyforcontent szintaxisa hibás. Meg kell adnia egy %s vagy %s karakterekkel kezdődő értéket +ErrorVariableKeyForContentMustBeSet=Hiba, a %s nevű (megjelenítendő szövegtartalommal) vagy %s (megjelenítendő külső URL-lel) állandót be kell állítani. +ErrorURLMustEndWith=A %s URL-nek a következőnek kell lennie: %s +ErrorURLMustStartWithHttp=A %s URL-nek http:// vagy https:// előtaggal kell kezdődnie +ErrorHostMustNotStartWithHttp=A(z) %s gazdagépnév NEM kezdődhet http:// vagy https:// előtaggal +ErrorNewRefIsAlreadyUsed=Hiba, az új hivatkozás már használatban van +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Hiba, a lezárt számlához kapcsolódó fizetés törlése nem lehetséges. ErrorSearchCriteriaTooSmall=A keresési feltételek túl kicsik. -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. +ErrorObjectMustHaveStatusActiveToBeDisabled=A letiltáshoz az objektumok állapotának „Aktív” állapotúnak kell lennie +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 +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. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Hiba, a nyelv kötelező, ha az oldalt egy másik fordításaként állítja be. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Hiba, a lefordított oldal nyelve megegyezik ezzel. +ErrorBatchNoFoundForProductInWarehouse=Nem található tétel/széria a „%s” termékhez a „%s” raktárban. +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Nincs elegendő mennyiség ehhez a tételhez/sorozathoz a(z) "%s" termékhez a "%s" raktárban. +ErrorOnlyOneFieldForGroupByIsPossible=Csak 1 mező adható meg a "Csoportosítás" mezőhöz (a többit el kell dobni) +ErrorTooManyDifferentValueForSelectedGroupBy=Túl sok különböző értéket találtunk (több mint %s) a(z) "%s" mezőhöz, ezért nem használhatjuk "Csoportosítás"-ként a grafikákhoz . A "Csoportosítás" mezőt eltávolították. Lehet, hogy X-tengelyként akarta használni? +ErrorReplaceStringEmpty=Hiba, a helyettesítendő karakterlánc üres +ErrorProductNeedBatchNumber=Hiba, a(z) '%s termékhez tételszám/sorozatszám szükséges +ErrorProductDoesNotNeedBatchNumber=Hiba, a '%s termék nem fogad el tételt/sorozatszámot +ErrorFailedToReadObject=Hiba, nem sikerült beolvasni a(z) %s típusú objektumot +ErrorParameterMustBeEnabledToAllwoThisFeature=Hiba, a %s paramétert engedélyezni kell a conf/conf.php fájlban, hogy a belső job ütemező használhassa a parancssori felületet +ErrorLoginDateValidity=Hiba, ez a bejelentkezés kívül esik az érvényességi dátumtartományon +ErrorValueLength=A „%s” mező hosszának nagyobbnak kell lennie, mint „%s” +ErrorReservedKeyword=A '%s' szó fenntartott kulcsszó +ErrorNotAvailableWithThisDistribution=Nem érhető el ezzel a disztribúcióval +ErrorPublicInterfaceNotEnabled=A nyilvános interfész nem volt engedélyezve +ErrorLanguageRequiredIfPageIsTranslationOfAnother=Az új oldal nyelvét meg kell határozni, ha egy másik oldal fordításaként van beállítva +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=Az új oldal nyelve nem lehet a forrásnyelv, ha egy másik oldal fordításaként van beállítva +ErrorAParameterIsRequiredForThisOperation=Ehhez a művelethez egy paraméter kötelező +ErrorDateIsInFuture=Hiba, a dátum nem lehet a jövőben +ErrorAnAmountWithoutTaxIsRequired=Hiba, az összeg kötelező +ErrorAPercentIsRequired=Hiba, kérjük, adja meg helyesen a százalékot +ErrorYouMustFirstSetupYourChartOfAccount=Először be kell állítania a számlatervét +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=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 +ErrorActionCommBadType=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary +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 +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 +ErrorPaymentInBothCurrency=Hiba, minden összeget ugyanabba az oszlopba kell beírni +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 aktuális állapota nem teszi lehetővé +ErrorAjaxRequestFailed=Kérés sikertelen +ErrorThirpdartyOrMemberidIsMandatory=Harmadik fél vagy partnerségi tag kötelező +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=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=Kattintson ide a kötelező paraméterek beállításához +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 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 beállítás be van kapcsolva, így parancsot kell tárolni benne egy könyvtár által bejelentett PHP paraméter safe_mode_exec_dir. -WarningBookmarkAlreadyExists=A könyvjelző ezzel a címmel, vagy ez a cél (URL) már létezik. -WarningPassIsEmpty=Figyelem, az adatbázis jelszó üres. Ez egy biztonsági lyuk. Meg kell hozzá egy jelszót, hogy az adatbázis és változtassa meg a fájl conf.php ezt tükröznie kell. -WarningConfFileMustBeReadOnly=Figyelem, a config file (htdocs / conf / conf.php) át lehet írni a webszerver. Ez egy komoly biztonsági rést. Jogosultságát módosítani a fájlt, hogy a csak olvasható módban az operációs rendszer felhasználói által használt webszerver. Ha Windows FAT és az a lemez, akkor tudnia kell, hogy ez a fájl rendszer nem engedi hozzáadni file jogosultságokat, így nem lehet teljesen biztonságos. -WarningsOnXLines=Figyelmeztetések %s forrás vonalak -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=Figyelem, ennek a doboznak a használata jelentősen lelassítja a dobozt megjelenítő összes oldalt. -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=Figyelem, a sor dátuma nem szerepel a költségjelentés tartományában -WarningProjectDraft=A projekt még piszkozat módban van. Ne felejtse el érvényesíteni, ha feladatokat tervez használni. -WarningProjectClosed=A projekt lezárult. Először újra kell nyitnia. -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. +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). +WarningPassIsEmpty=Figyelem! Az adatbázis jelszava üres. Ez egy biztonsági rés. Adjon hozzá egy jelszót az adatbázisához, és módosítsa a conf.php fájlt ennek megfelelően. +WarningConfFileMustBeReadOnly=Figyelem, a konfigurációs fájlt (htdocs/conf/conf.php) felülírhatja a webszerver. Ez egy komoly biztonsági rés. Módosítsa a fájl engedélyeit, hogy csak olvasható módban legyenek a webszerver által használt operációs rendszer felhasználói számára. Ha Windows és FAT formátumot használ a lemezhez, tudnia kell, hogy ez a fájlrendszer nem teszi lehetővé a fájlokhoz való engedélyek hozzáadását, így nem lehet teljesen biztonságos. +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). +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). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=A szolgáltatás letiltva, ha a kijelző beállítása vak személyekre vagy szöveges böngészőkre van optimalizálva. +WarningPaymentDateLowerThanInvoiceDate=A fizetés dátuma (%s) korábbi, mint a %s számla dátuma (%s). +WarningTooManyDataPleaseUseMoreFilters=Túl sok adat (több mint %s sor). Kérjük, használjon több szűrőt, vagy állítsa a %s állandót magasabb határértékre. +WarningSomeLinesWithNullHourlyRate=Egyes felhasználók rögzítettek néhány időpontot, miközben az óradíjukat nem határozták meg. Óránként 0 %s értéket használtak, de ez az eltöltött idő rossz értékeléséhez vezethet. +WarningYourLoginWasModifiedPleaseLogin=Bejelentkezésed módosult. Biztonsági okokból a következő művelet előtt be kell jelentkeznie az új bejelentkezési adataival. +WarningAnEntryAlreadyExistForTransKey=Már létezik bejegyzés a fordítási kulcshoz ehhez a nyelvhez +WarningNumberOfRecipientIsRestrictedInMassAction=Figyelem, a különböző címzettek száma legfeljebb %s lehet, ha tömeges műveleteket használ a listákon +WarningDateOfLineMustBeInExpenseReportRange=Figyelem, a sor dátuma nem esik a költségjelentés tartományába +WarningProjectDraft=A projekt még mindig vázlat módban van. Ne felejtse el érvényesíteni, ha feladatokat szeretne használni. +WarningProjectClosed=Projekt lezárva. Először újra meg kell nyitnia. +WarningSomeBankTransactionByChequeWereRemovedAfter=Néhány banki tranzakció eltávolításra került azután, hogy az azokat tartalmazó nyugta létrejött. Tehát a csekkek száma és a nyugta összege eltérhet a listában szereplő számtól és végösszegtől. +WarningFailedToAddFileIntoDatabaseIndex=Figyelmeztetés, nem sikerült hozzáadni a fájl bejegyzést az ECM adatbázis indextáblájához +WarningTheHiddenOptionIsOn=Figyelem, a %s rejtett opció be van kapcsolva. +WarningCreateSubAccounts=Figyelem, nem hozhat létre közvetlenül alfiókot, létre kell hoznia egy harmadik felet vagy egy felhasználót, és hozzá kell rendelnie egy számviteli kódot, hogy megtalálja őket ebben a listában. +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 # Validate RequireValidValue = Az érték nem érvényes -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 = E-mail cím nem érvényes -RequireMaxLength = Length must be less than %s chars -RequireMinLength = Length must be more than %s char(s) -RequireValidUrl = Érvényes URL megadása szükséges -RequireValidDate = Require a valid date -RequireANotEmptyValue = Szükséges -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 +RequireAtLeastXString = Legalább %s karakter szükséges +RequireXStringMax = Maximum %s karakter szükséges +RequireAtLeastXDigits = Legalább %s számjegy szükséges +RequireXDigitsMax = Maximum %s számjegy szükséges +RequireValidNumeric = Számértékre van szükség +RequireValidEmail = Az e-mail cím érvénytelen +RequireMaxLength = A hossznak kisebbnek kell lennie, mint %s karakter +RequireMinLength = A hossznak többnek kell lennie, mint %s karakter +RequireValidUrl = Érvényes URL megkövetelése +RequireValidDate = Érvényes dátum szükséges +RequireANotEmptyValue = Kötelező +RequireValidDuration = Érvényes időtartam szükséges +RequireValidExistingElement = Meglévő érték megkövetelése +RequireValidBool = Érvényes logikai érték szükséges +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 diff --git a/htdocs/langs/hu_HU/eventorganization.lang b/htdocs/langs/hu_HU/eventorganization.lang index 0a859f511d2..eb253d63dc4 100644 --- a/htdocs/langs/hu_HU/eventorganization.lang +++ b/htdocs/langs/hu_HU/eventorganization.lang @@ -17,151 +17,153 @@ # # 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 = Eseményszervezés +EventOrganizationDescription = Eseményszervezés a modulprojekten keresztül +EventOrganizationDescriptionLong= Esemény szervezésének kezelése (műsor, konferenciák, résztvevők vagy előadók, nyilvános oldalakkal javaslatokhoz, szavazáshoz vagy regisztrációhoz) # # Menu # -EventOrganizationMenuLeft = Organized events -EventOrganizationConferenceOrBoothMenuLeft = Conference Or Booth +EventOrganizationMenuLeft = Szervezett események +EventOrganizationConferenceOrBoothMenuLeft = Konferencia vagy stand -PaymentEvent=Payment of event +PaymentEvent=Esemény fizetése # # Admin page # -NewRegistration=Registration -EventOrganizationSetup=Event Organization setup -EventOrganization=Event organization +NewRegistration=Regisztráció +EventOrganizationSetup=Eseményszervezés beállítása +EventOrganization=Rendezvényszervezés Settings=Beállítások -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 = Eseményszervezés beállítási oldal +EVENTORGANIZATION_TASK_LABEL = A projekt érvényesítésekor automatikusan létrehozandó feladatok címkéje +EVENTORGANIZATION_TASK_LABELTooltip = Amikor érvényesít egy eseményt megszervezésre, bizonyos feladatok automatikusan létrehozhatók a projektben

    Például:
    Konferencia felhívás küldése
    Stand felhívás küldése
    Érvényesítse a konferenciák javaslatait
    Érvényesítse a jelentkezést a Standra
    Nyitott jelentkezés az eseményre a résztvevők számára
    Emlékeztető küldése az eseményről az előadóknak
    Emlékeztető küldése az eseményről a Stand házigazdáinak
    Emlékeztető küldése az eseményről a résztvevőknek +EVENTORGANIZATION_TASK_LABELTooltip2=Ha nem kell automatikusan létrehoznia a feladatokat, hagyja üresen. +EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = A harmadik felekhez hozzáadandó kategória automatikusan létrejön, amikor valaki konferenciát javasol +EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = A harmadik felekhez hozzáadandó kategória automatikusan létrejön, amikor standot javasolnak +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = E-mail sablon, amelyet el kell küldeni, miután megkapta a konferencia-javaslatot. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = E-mail-sablon, amelyet el kell küldeni, miután megkapta a stand javaslatot. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = E-mail-sablon, amelyet el kell küldeni, miután kifizették a regisztrációt egy standon. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = E-mail sablon, amelyet el kell küldeni, miután egy eseményre való regisztrációt kifizették. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = E-mail-sablon, amelyet akkor kell használni, amikor az "E-mailek küldése" csoportból küld e-maileket a hangszóróknak +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = E-mail-sablon, amelyet akkor kell használni, amikor e-maileket küld a résztvevők listáján szereplő „E-mailek küldése” csoportból +EVENTORGANIZATION_FILTERATTENDEES_CAT = A résztvevő létrehozására/hozzáadására szolgáló űrlapon a harmadik felek listáját a kategóriában lévő harmadik felekre korlátozza +EVENTORGANIZATION_FILTERATTENDEES_TYPE = A résztvevő létrehozására/hozzáadására szolgáló űrlapon a harmadik felekre korlátozza a harmadik felek listáját. # # 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= Konferencia vagy stand +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 # # 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 = Konferenciára vonatkozó kérése megérkezett +YourOrganizationEventBoothRequestWasReceived = A standra vonatkozó kérése megérkezett +EventOrganizationEmailAskConf = Konferencia kérése +EventOrganizationEmailAskBooth = Stand kérése +EventOrganizationEmailBoothPayment = Az Ön standjának kifizetése +EventOrganizationEmailRegistrationPayment = Regisztráció egy eseményre +EventOrganizationMassEmailAttendees = Kommunikáció a résztvevőkkel +EventOrganizationMassEmailSpeakers = Kommunikáció az előadókkal +ToSpeakers=A hangszórókhoz # # 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=Konferenciák javaslatának engedélyezése +AllowUnknownPeopleSuggestConfHelp=Engedélyezi az ismeretlen személyeknek, hogy javasoljanak egy konferenciát +AllowUnknownPeopleSuggestBooth=Engedélyezi az embereknek, hogy jelentkezzenek egy standra +AllowUnknownPeopleSuggestBoothHelp=Ismeretlen személyek jelentkezhetnek egy standra +PriceOfRegistration=Regisztráció ára +PriceOfRegistrationHelp=Az eseményen való részvételért vagy regisztrációért fizetendő ár +PriceOfBooth=Előfizetési ár, hogy megállja a helyét +PriceOfBoothHelp=Előfizetési ár, hogy megállja a helyét +EventOrganizationICSLink=ICS összekapcsolása konferenciákhoz +ConferenceOrBoothInformation=Konferencia vagy fülke információk +Attendees=Részvevők +ListOfAttendeesOfEvent=Az eseményprojekt résztvevőinek listája +DownloadICSLink = ICS hivatkozás letöltése +EVENTORGANIZATION_SECUREKEY = Magvető a nyilvános regisztrációs oldal kulcsának biztosításához konferencia javaslatához +SERVICE_BOOTH_LOCATION = A standhellyel kapcsolatos számlasorhoz használt szolgáltatás +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Az esemény résztvevőinek előfizetéséről szóló számlasorhoz használt szolgáltatás +NbVotes=Szavazatok száma # # Status # EvntOrgDraft = Piszkozat -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified +EvntOrgSuggested = Javasolt +EvntOrgConfirmed = Megerősítve +EvntOrgNotQualified = Nem minősített EvntOrgDone = Kész -EvntOrgCancelled = Cancelled +EvntOrgCancelled = Törölve # # 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 = Esemény típus -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 +SuggestForm = Javaslat oldal +SuggestOrVoteForConfOrBooth = Javaslat vagy szavazás oldala +EvntOrgRegistrationHelpMessage = Itt szavazhat egy konferenciára, vagy javasolhat újat az eseményhez. A rendezvény ideje alatt is lehet jelentkezni standra. +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 +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 +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 +EventType = Esemény típusa +LabelOfBooth=Stand címke +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 -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) +NewSubscription=Regisztráció +OrganizationEventConfRequestWasReceived=A konferenciára vonatkozó javaslatát megkaptuk +OrganizationEventBoothRequestWasReceived=A standra vonatkozó kérése megérkezett +OrganizationEventPaymentOfBoothWasReceived=Az Ön standjáért fizetett fizetését rögzítettük +OrganizationEventPaymentOfRegistrationWasReceived=Az esemény regisztrációjának kifizetését rögzítettük +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 -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Jelentkezés egy standra +NewSuggestionOfConference=Jelentkezés egy konferenciára # # 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 = Üdvözöljük a konferencia- vagy standjavaslat-oldalon. +EvntOrgRegistrationConfWelcomeMessage = Üdvözöljük a konferencia javaslati oldalán. +EvntOrgRegistrationBoothWelcomeMessage = Üdvözöljük a standjavaslat oldalon. +EvntOrgVoteHelpMessage = Itt megtekintheti a projekthez javasolt eseményeket és szavazhat rájuk +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 = 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 = Regisztrációját ellenőriztük +ConfAttendeeSubscriptionConfirmation = Egy eseményre való feliratkozás megerősítése +Attendee = Résztvevő +PaymentConferenceAttendee = Konferencia résztvevőinek kifizetése +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 +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 +NoPublicActionsAllowedForThisEvent=Ennél az eseménynél nincs nyilvános művelet +MaxNbOfAttendees=A résztvevők maximális száma diff --git a/htdocs/langs/hu_HU/exports.lang b/htdocs/langs/hu_HU/exports.lang index 92888d79b51..5515fc659aa 100644 --- a/htdocs/langs/hu_HU/exports.lang +++ b/htdocs/langs/hu_HU/exports.lang @@ -1,137 +1,140 @@ # Dolibarr language file - Source file is en_US - exports -ExportsArea=Export +ExportsArea=Exportálás ImportArea=Importálás -NewExport=Új exportálás +NewExport=Új export NewImport=Új importálás ExportableDatas=Exportálható adatkészlet -ImportableDatas=Adathalmaz importálható -SelectExportDataSet=Válassza ki a kívánt adatsor exportálni ... -SelectImportDataSet=Válasszon adathalmaz kíván importálni ... +ImportableDatas=Importálható adatkészlet +SelectExportDataSet=Válassza ki az exportálni kívánt adatkészletet... +SelectImportDataSet=Válassza ki az importálni kívánt adatkészletet... SelectExportFields=Válassza ki az exportálni kívánt mezőket, vagy válasszon egy előre meghatározott exportálási profilt -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=Területek forrás fájl importálása nem -SaveExportModel=Save your selections as an export profile/template (for reuse). -SaveImportModel=Save this import profile (for reuse) ... -ExportModelName=Export profil nevét -ExportModelSaved=Export profile saved as %s. +SelectImportFields=Válassza ki az importálni kívánt forrásfájl mezőket és a célmezőket az adatbázisban úgy, hogy fel-le mozgatja őket a %s horgony segítségével, vagy válasszon egy előre meghatározott importálási profilt: +NotImportedFields=A forrásfájl mezői nincsenek importálva +SaveExportModel=Mentsd el a kiválasztottakat exportálási profilként/sablonként (újrafelhasználásra). +SaveImportModel=Az importálási profil mentése (újrafelhasználásra)... +ExportModelName=Profilnév exportálása +ExportModelSaved=Exportálási profil %s néven mentve. ExportableFields=Exportálható mezők ExportedFields=Exportált mezők -ImportModelName=Import profil nevét -ImportModelSaved=Import profile saved as %s. -DatasetToExport=Dataset exportálni -DatasetToImport=Import fájl adatsor -ChooseFieldsOrdersAndTitle=Válassza ki a mezőket érdekében ... -FieldsTitle=Fields címmel -FieldTitle=Mező cím -NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... -AvailableFormats=Elérhető formátumok\n +ImportModelName=Profilnév importálása +ImportModelSaved=Importálási profil %s néven mentve. +DatasetToExport=Exportálandó adatkészlet +DatasetToImport=Fájl importálása adatkészletbe +ChooseFieldsOrdersAndTitle=Mezők sorrendjének kiválasztása... +FieldsTitle=Mezők címe +FieldTitle=Mező címe +NowClickToGenerateToBuildExportFile=Most válassza ki a fájlformátumot a kombinált mezőben, és kattintson a "Létrehozás" gombra az exportfájl létrehozásához... +AvailableFormats=Elérhető formátumok LibraryShort=Könyvtár -ExportCsvSeparator=CSV elválasztó karakter -ImportCsvSeparator=CSV elválasztó karakter +ExportCsvSeparator=CSV karakterelválasztó +ImportCsvSeparator=Csv karakterelválasztó Step=Lépés -FormatedImport=Import Assistant -FormatedImportDesc1=Ez a modul lehetővé teszi a meglévő adatok frissítését vagy új objektumok hozzáadását az adatbázishoz egy fájlból, technikai tudás nélkül, asszisztens segítségével. +FormatedImport=Importálási segéd +FormatedImportDesc1=Ez a modul lehetővé teszi a meglévő adatok frissítését vagy új objektumok hozzáadását az adatbázisba egy fájlból technikai ismeretek nélkül, egy asszisztens segítségével. FormatedImportDesc2=Első lépésként válassza ki az importálni kívánt adatok típusát, majd a forrásfájl formátumát, majd az importálni kívánt mezőket. -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 importálható adat (nincs modul meghatározások lehetővé teszik az adatok import) -FileSuccessfullyBuilt=Fájl létrehozva\n -SQLUsedForExport=SQL Request used to extract data -LineId=Id sor -LineLabel=Label of line -LineDescription=Leírása vonal -LineUnitPrice=Egységára vonal -LineVATRate=Az áfa-kulcs sora -LineQty=Mennyiség a sorhoz\n -LineTotalHT=Amount excl. tax for line -LineTotalTTC=Összeg adóval a sorhoz -LineTotalVAT=HÉA összegét a vonal -TypeOfLineServiceOrProduct=Vonal típusa (0 = a termék, 1 = szolgáltatás) -FileWithDataToImport=File adatokat importálni -FileToImport=Forrás fájlt importálni -FileMustHaveOneOfFollowingFormat=File to import must have one of following formats -DownloadEmptyExample=Töltse le a sablonfájlt a mező tartalmával kapcsolatos információkkal -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... -SourceFileFormat=Forrás fájlformátum -FieldsInSourceFile=Mezői forrásfájlban -FieldsInTargetDatabase=Target fields in Dolibarr database (bold=mandatory) +FormatedExport=Exportálási segéd +FormatedExportDesc1=Ezek az eszközök lehetővé teszik a személyre szabott adatok exportálását egy asszisztens segítségével, hogy technikai ismeretek nélkül segítsenek a folyamatban. +FormatedExportDesc2=Első lépésként válasszon egy előre meghatározott adatkészletet, majd az exportálni kívánt mezőket és milyen sorrendben. +FormatedExportDesc3=Az exportálandó adatok kiválasztásakor kiválaszthatja a kimeneti fájl formátumát. +Sheet=Lap +NoImportableData=Nincs importálható adat (nincs modul adatimportálást lehetővé tevő definíciókkal) +FileSuccessfullyBuilt=Fájl generálva +SQLUsedForExport=SQL-kérés az adatok kinyerésére +LineId=A sor azonosítója +LineLabel=A vonal címkéje +LineDescription=A vonal leírása +LineUnitPrice=A vonal egységára +LineVATRate=A sor ÁFA-kulcsa +LineQty=A sorhoz tartozó mennyiség +LineTotalHT=Összeg nem tartalmazza adó soronként +LineTotalTTC=A sor adójával együtt +LineTotalVAT=A sor ÁFA összege +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 +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... +ChooseFileToImport=Fájl feltöltése, majd kattintson a %s ikonra a fájl forrás importálási fájlként való kiválasztásához... +SourceFileFormat=Forrásfájl formátum +FieldsInSourceFile=Mezők a forrásfájlban +FieldsInTargetDatabase=Célmezők a Dolibarr adatbázisban (félkövér = kötelező) Field=Mező -NoFields=Nem mezők -MoveField=Mező áthelyezése oszlop száma %s -ExampleOfImportFile=Example_of_import_file -SaveImportProfile=Mentse az import profil -ErrorImportDuplicateProfil=Nem sikerült menteni a behozatali profilt ezen a néven. Meglévő profil már létezik ezen a néven. +NoFields=Nincsenek mezők +MoveField=Mező oszlopszám áthelyezése %s +ExampleOfImportFile=Példa_import_fájlra +SaveImportProfile=Mentsd el ezt az importálási profilt +ErrorImportDuplicateProfil=Nem sikerült menteni az importálási profilt ezen a néven. Már létezik egy profil ezzel a névvel. TablesTarget=Célzott táblázatok -FieldsTarget=Célzott területek -FieldTarget=Célzott terület -FieldSource=Forrás mezőben -NbOfSourceLines=Sorok száma a forrás fájlban -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=Futtassa az Import szimulációt -FieldNeedSource=This field requires data from the source file -SomeMandatoryFieldHaveNoSource=Néhány kötelező mező nincs forrás adatfájl -InformationOnSourceFile=Információ forrás fájl -InformationOnTargetTables=Tájékoztatás a cél mezők -SelectAtLeastOneField=Kapcsolja be legalább egy forrás mező oszlopban a mezők az export -SelectFormat=Válassza ezt az import fájl formátum +FieldsTarget=Célzott mezők +FieldTarget=Célzott mező +FieldSource=Forrás mező +NbOfSourceLines=A sorok száma a forrásfájlban +NowClickToTestTheImport=Ellenőrizze, hogy a fájl fájlformátuma (mező- és karakterlánc-határolók) egyezik-e a megjelenített opciókkal, és hogy kihagyta-e a fejléc sort, különben ezek hibaként lesznek megjelölve a következő szimulációban.
    Kattintson a "%s
    " gombot a fájl szerkezetének/tartalmának ellenőrzéséhez és az importálási folyamat szimulálásához.
    Az adatbázisban lévő adatok nem módosulnak. +RunSimulateImportFile=Importálási szimuláció futtatása +FieldNeedSource=Ebbe a mezőbe adatok szükségesek a forrásfájlból +SomeMandatoryFieldHaveNoSource=Néhány kötelező mezőnek nincs adatfájlból származó forrása +InformationOnSourceFile=Információ a forrásfájlról +InformationOnTargetTables=A célmezőkre vonatkozó információk +SelectAtLeastOneField=Váltson legalább egy forrásmezőt az exportálandó mezők oszlopában +SelectFormat=Válassza ki ezt az import fájlformátumot RunImportFile=Adatok importálása -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. -EmptyLine=Üres sor (törlődik) -CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. -FileWasImported=A fájl behozott %s száma. -YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. -NbOfLinesOK=Sorok száma és nem hiba, és nincs figyelmeztetés: %s. -NbOfLinesImported=Sorok száma sikeresen importálva: %s. -DataComeFromNoWhere=Érték beszúrni jön elő a semmiből a forrás fájlt. -DataComeFromFileFieldNb=Érték beszúrni származik %s mező számát a forrás fájlt. -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. -DataIsInsertedInto=Érkező adatokat forrás fájlt be kell illeszteni a következő területen: -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=Adatérték kötelező -SourceExample=Példa lehet az adatok értékét -ExampleAnyRefFoundIntoElement=Minden ref talált elem %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 +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. +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) +CorrectErrorBeforeRunningImport=A végleges importálás futtatása előtt ki kell minden hibát kijavítania. +FileWasImported=A fájl importálva a következő számmal: %s. +YouCanUseImportIdToFindRecord=Az összes importált rekordot megtalálhatja az adatbázisában az import_key='%s' mező szűrésével. +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. +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: +SourceRequired=Az adatérték kötelező +SourceExample=Példa lehetséges adatértékre +ExampleAnyRefFoundIntoElement=A(z) %s elemhez tartozó bármely hivatkozás található +ExampleAnyCodeOrIdFoundIntoDictionary=A %s szótárban található bármely kód (vagy azonosító) +CSVFormatDesc=Vesszővel elválasztott érték fájlformátum (.csv).
    Ez egy szöveges fájlformátum, amelyben a mezőket elválasztó [ %s ] választja el. Ha egy mezőtartalomban található elválasztó, akkor a mező kerek karakterrel kerekítésre kerül [ %s ]. Escape karakter a menekülési kör karakterhez: [ %s ]. +Excel95FormatDesc=Excel fájlformátum (.xls)
    Ez a natív Excel 95 formátum (BIFF5). +Excel2007FormatDesc=Excel fájlformátum (.xlsx)
    Ez az Excel 2007 natív formátuma (SpreadsheetML). +TsvFormatDesc=Tabulátorral elválasztott érték fájlformátum (.tsv)
    Ez egy szöveges fájlformátum, amelyben a mezőket tabulátor [tab] választja el. +ExportFieldAutomaticallyAdded=A(z) %s mező automatikusan hozzáadásra került. Ezzel elkerülhető, hogy a hasonló sorokat ismétlődő rekordként kezelje (a mező hozzáadásával minden sor saját azonosítóval rendelkezik, és eltérő lesz). +CsvOptions=CSV formátumbeállítások +Separator=Mezőelválasztó +Enclosure=String határoló +SpecialCode=Speciális kód +ExportStringFilter=%% lehetővé teszi egy vagy több karakter cseréjét a szövegben +ExportDateFilter=ÉÉÉÉ, ÉÉÉÉHH, ÉÉÉÉHHNN: szűrések egy év/hónap/nap szerint
    ÉÉÉÉ+ÉÉÉÉ, ÉÉÉÉHH+ÉÉÉÉHH, ÉÉÉHHNN+ÉÉÉÉHHNN: szűrések év/hónap/nap tartományon belül
    > ÉÉÉÉHH, > > ÉÉÉÉHH > ÉÉÉÉHHNN: szűri az összes következő évet/hónapot/napot
    < ÉÉÉÉ, < ÉÉÉÉHH, < ÉÉÉÉHHNN: szűr az összes előző évre/hónapra/napra +ExportNumericFilter=NNNNN szűr egy érték alapján
    NNNNN+NNNNN szűr egy értéktartományon
    < NNNNN szűr alacsonyabb értékek szerint
    > NNNNN szűr magasabb értékek alapján +ImportFromLine=Importálás a sorszámtól kezdve EndAtLineNb=Vége a sorszámnál -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=Számított mező +ImportFromToLine=Határ tartomány (tól-ig). Például. fejlécsor(ok) kihagyásához. +SetThisValueTo2ToExcludeFirstLine=Például állítsa ezt az értéket 3-ra az első 2 sor kizárásához.
    Ha a fejlécsorokat NEM hagyja ki, az több hibát eredményez az importálási szimulációban. +KeepEmptyToGoToEndOfFile=Hagyja üresen ezt a mezőt a fájl végéig tartó összes sor feldolgozásához. +SelectPrimaryColumnsForUpdateAttempt=Válassza ki az UPDATE importáláshoz elsődleges kulcsként használni kívánt oszlopo(ka)t +UpdateNotYetSupportedForThisImport=A frissítés nem támogatott ennél a típusú importnál (csak beszúrás) +NoUpdateAttempt=Nem történt frissítési kísérlet, csak beszúrás +ImportDataset_user_1=Felhasználók (alkalmazottak vagy nem) és tulajdonságok +ComputedField=Kiszámított mező ## filters -SelectFilterFields=If you want to filter on some values, just input values here. -FilteredFields=Filtered fields +SelectFilterFields=Ha bizonyos értékekre szeretne szűrni, csak írja be ide az értékeket. +FilteredFields=Szűrt mezők FilteredFieldsValues=Szűrő értéke -FormatControlRule=Format control rule +FormatControlRule=Formatszabályozási szabály ## imports updates -KeysToUseForUpdates=Key (column) to use for updating existing data -NbInsert=Beszúrt sorok száma: %s -NbUpdate=Frissített sorok száma: %s -MultipleRecordFoundWithTheseFilters=Ezekkel a szűrőkkel több rekordot találtunk: %s -StocksWithBatch=A tétel/sorozatszámú termékek készletei és helye (raktár) +KeysToUseForUpdates=A meglévő adatok frissítéséhez használható kulcs (oszlop) +NbInsert=A beszúrt sorok száma: %s +NbUpdate=A frissített sorok száma: %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: 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 a9615c8d743..ff7ace94f57 100644 --- a/htdocs/langs/hu_HU/holiday.lang +++ b/htdocs/langs/hu_HU/holiday.lang @@ -2,138 +2,138 @@ HRM=HRM Holidays=Szabadság CPTitreMenu=Szabadság -MenuReportMonth=Havi kivonat\n -MenuAddCP=Új szabadság kérelem\n -NotActiveModCP=Engedélyeznie kell az Szabadság modult az oldal megtekintéséhez.\n -AddCP=Kérjen szabadságot\n -DateDebCP=Kezdési dátum -DateFinCP=Befejezési dátum -DraftCP=Tervezet -ToReviewCP=Jóváhagyásra vár\n -ApprovedCP=Jóváhagyott +MenuReportMonth=Havi kimutatás +MenuAddCP=Új 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 +DateFinCP=Befejezés dátuma +DraftCP=Vázlat +ToReviewCP=Jóváhagyásra vár +ApprovedCP=Jóváhagyva CancelCP=Megszakítva -RefuseCP=Megtagadta -ValidatorCP=Jóváhagyó\n -ListeCP=A szabadságok listája\n -Leave=Leave request -LeaveId=Leave ID -ReviewedByCP=Will be approved by -UserID=User ID -UserForApprovalID=User for approval ID -UserForApprovalFirstname=A jóváhagyó felhasználó keresztneve\n -UserForApprovalLastname=A jóváhagyó felhasználó vezetékneve\n -UserForApprovalLogin=A jóváhagyó felhasználó bejelentkezése\n +RefuseCP=Elutasítva +ValidatorCP=Jóváhagyó +ListeCP=Szabadságok listája +Leave=Szabadság kérelem +LeaveId=Szabadság azonosító +ReviewedByCP=Jóváhagyja +UserID=Felhasználói azonosító +UserForApprovalID=Felhasználó a jóváhagyáshoz +UserForApprovalFirstname=A jóváhagyó felhasználó utóneve +UserForApprovalLastname=A jóváhagyó felhasználó vezetékneve +UserForApprovalLogin=Jóváhagyó felhasználó bejelentkezése DescCP=Leírás -SendRequestCP=Szabadság kérelem létrehozása\n -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=Visszatérés az előző oldalra\n -ErrorUserViewCP=Ön nem jogosult a szabadság iránti kérelem elolvasására. -InfosWorkflowCP=Information Workflow -RequestByCP=Requested by -TitreRequestCP=Leave request -TypeOfLeaveId=Type of leave ID -TypeOfLeaveCode=Type of leave code -TypeOfLeaveLabel=A szabadság címke típusa\n -NbUseDaysCP=A felhasznált szabadságnapok száma\n -NbUseDaysCPHelp=The calculation takes into account the non-working days and the holidays defined in the dictionary. -NbUseDaysCPShort=Szabadság napjai\n -NbUseDaysCPShortInMonth=Szabadságok a hónapban\n -DayIsANonWorkingDay=%s is a non-working day -DateStartInMonth=Start date in month -DateEndInMonth=End date in month +SendRequestCP=Szabadság kérelem létrehozása +DelayToRequestCP=A szabadság kérelmeket legalább %s nappal előtt kell benyújtani. +MenuConfCP=Szabadság egyenlege +SoldeCPUser=Szabadság egyenleg (napokban) %s +ErrorEndDateCP=A kezdő dátumnál nagyobb befejezési dátumot kell kiválasztania. +ErrorSQLCreateCP=SQL hiba történt a létrehozás során: +ErrorIDFicheCP=Hiba történt, a szabadság kérelem nem létezik. +ReturnCP=Vissza az előző oldalra +ErrorUserViewCP=Nem jogosult elolvasni ezt a szabadság kérelmet. +InfosWorkflowCP=Információs munkafolyamat +RequestByCP=Kérelmezte +TitreRequestCP=Szabadság kérelem +TypeOfLeaveId=A szabadság azonosító típusa +TypeOfLeaveCode=A szabadság kód típusa +TypeOfLeaveLabel=A szabadság címke típusa +NbUseDaysCP=A felhasznált szabadság napjainak száma +NbUseDaysCPHelp=A számításnál figyelembe veszik a szótárban meghatározott munkaszüneti napokat és ünnepnapokat. +NbUseDaysCPShort=Szabadság napjai +NbUseDaysCPShortInMonth=Szabadság napjai a hónapban +DayIsANonWorkingDay=%s munkaszüneti nap +DateStartInMonth=Kezdő dátum a hónapban +DateEndInMonth=Befejezés dátuma a hónapban EditCP=Szerkesztés DeleteCP=Törlés -ActionRefuseCP=Elutasít -ActionCancelCP=Megszakítás +ActionRefuseCP=Elutasítás +ActionCancelCP=Mégse StatutCP=Állapot -TitleDeleteCP=Törölje a szabadság kérelmet\n -ConfirmDeleteCP=Megerősíti a szabadság iránti kérelem törlését?\n -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=Ki kell választania a kezdő dátumot.\n -NoDateFin=Ki kell választania a befejező dátumot.\n -ErrorDureeCP=A szabadság iránti kérelem nem tartalmaz munkanapot.\n -TitleValidCP=Jóváhagyja a szabadság iránti kérelmet\n -ConfirmValidCP=Biztosan jóváhagyja a szabadság kérelmet?\n -DateValidCP=A jóváhagyás dátuma\n -TitleToValidCP=Küldje el a szabadság kérését\n -ConfirmToValidCP=Biztos, hogy el szeretné küldeni a szabadság iránti kérelmet?\n -TitleRefuseCP=Utasítsa el a szabadság kérelmet\n -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=Biztosan visszavonja a szabadság kérelmet?\n -DetailRefusCP=Az elutasítás oka\n -DateRefusCP=Az elutasítás dátuma\n -DateCancelCP=Date of cancellation -DefineEventUserCP=Rendeljen kivételes szabadságot a felhasználó számára\n -addEventToUserCP=Assign leave -NotTheAssignedApprover=Nem Ön a kijelölt jóváhagyó\n +TitleDeleteCP=A szabadság kérelem törlése +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. +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. +TitleValidCP=Jóváhagyja a szabadság kérelmet +ConfirmValidCP=Biztosan jóváhagyja a szabadság kérelmet? +DateValidCP=Jóváhagyás dátuma +TitleToValidCP=Szabadság kérelem küldése +ConfirmToValidCP=Biztosan el akarja küldeni a szabadság kérelmet? +TitleRefuseCP=A szabadság kérelmének elutasítása +ConfirmRefuseCP=Biztosan elutasítja a szabadság kérelmet? +NoMotifRefuseCP=Meg kell választania a kérelem elutasításának okát. +TitleCancelCP=A szabadság kérelmének visszavonása +ConfirmCancelCP=Biztosan visszavonja a szabadság kérelmet? +DetailRefusCP=Elutasítás oka +DateRefusCP=Az elutasítás dátuma +DateCancelCP=A törlés dátuma +DefineEventUserCP=Rendkívüli szabadság hozzárendelése egy felhasználóhoz +addEventToUserCP=Szabadság hozzárendelése +NotTheAssignedApprover=Nem Ön a hozzárendelt jóváhagyó MotifCP=Ok UserCP=Felhasználó -ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. -AddEventToUserOkCP=The addition of the exceptional leave has been completed. -MenuLogCP=Változásnaplók megtekintése\n -LogCP=Log of all updates made to "Balance of Leave" +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. +MenuLogCP=Változásnaplók megtekintése +LogCP=A "Szabadság egyenleg" összes frissítésének naplója ActionByCP=Frissítette -UserUpdateCP=Updated for -PrevSoldeCP=Previous Balance -NewSoldeCP=New Balance -alreadyCPexist=A leave request has already been done on this period. -FirstDayOfHoliday=Beginning day of leave request -LastDayOfHoliday=Ending day of leave request -BoxTitleLastLeaveRequests=Latest %s modified leave requests -HolidaysMonthlyUpdate=Monthly update -ManualUpdate=Manuális frissítés\n -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=Minden szabadságkérelem\n -HalfDay=Fél nap\n -NotTheAssignedApprover=Nem Ön a kijelölt jóváhagyó\n -LEAVE_PAID=Fizetett szabadság\n +UserUpdateCP=Frissítve ehhez +PrevSoldeCP=Előző egyenleg +NewSoldeCP=Új egyenleg +alreadyCPexist=Erre az időszakra már küldtek szabadság kérelmet. +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 +HolidaysMonthlyUpdate=Havi frissítés +ManualUpdate=Kézi frissítés +HolidaysCancelation=Szabadság kérelem törlése +EmployeeLastname=Alkalmazott vezetékneve +EmployeeFirstname=Alkalmazott keresztneve +TypeWasDisabledOrRemoved=A szabadság típusa (azonosító %s) le van tiltva vagy el van távolítva +LastHolidays=A legutóbbi %s szabadság kérelmek +AllHolidays=Minden szabadság kérelem +HalfDay=Fél nap +NotTheAssignedApprover=Nem Ön a hozzárendelt jóváhagyó +LEAVE_PAID=Fizetett szabadság LEAVE_SICK=Betegszabadság -LEAVE_OTHER=Egyéb szabadság\n -LEAVE_PAID_FR=Fizetett szabadság\n +LEAVE_OTHER=Egyéb szabadság +LEAVE_PAID_FR=Fizetett szabadság ## Configuration du Module ## -LastUpdateCP=Last automatic update of leave allocation -MonthOfLastMonthlyUpdate=Month of last automatic update of leave allocation -UpdateConfCPOK=Sikeresen frissítve.\n -Module27130Name= Management of leave requests -Module27130Desc= Management of leave requests -ErrorMailNotSend=An error occurred while sending email: -NoticePeriod=Felmondási idő +LastUpdateCP=A szabadság kiosztásának utolsó automatikus frissítése +MonthOfLastMonthlyUpdate=A szabadságkiosztás utolsó automatikus frissítésének hónapja +UpdateConfCPOK=Sikeres frissítés. +Module27130Name= Szabadság kérelmek kezelése +Module27130Desc= Szabadság igénylések kezelése +ErrorMailNotSend=Hiba történt az e-mail küldése közben: +NoticePeriod=Felmondási időszak #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=Kérelem elutasítva\n -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=Ünnepek jóváhagyásra\n -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 +HolidaysToValidate=Szabadság kérelmek érvényesítése +HolidaysToValidateBody=Az alábbiakban egy érvényesítési kérelem található +HolidaysToValidateDelay=Ez a szabadság kérelem kevesebb, mint %s napon belül megtörténik. +HolidaysToValidateAlertSolde=A szabadság kérelem benyújtó felhasználónak nincs elég szabad napja. +HolidaysValidated=Ellenőrzött szabadság kérelmek +HolidaysValidatedBody=Az Ön %s és %s közötti szabadságigényét jóváhagytuk. +HolidaysRefused=Kérelem elutasítva +HolidaysRefusedBody=Az Ön %s és %s számára küldött szabadság kérelmét a következő ok miatt elutasították: +HolidaysCanceled=Szabadság kérelem visszavonva +HolidaysCanceledBody=Az Ön %s és %s részére benyújtott szabadság kérelmét töröltük. +FollowedByACounter=1: Az ilyen típusú szabadságot számlálónak kell követnie. A számláló manuálisan vagy automatikusan növekszik, és amikor a szabadság kérelmet érvényesítik, a számláló csökken.
    0: Nem követi számláló. +NoLeaveWithCounterDefined=Nincsenek olyan szabadságtípusok, amelyeket számlálónak kell követnie +GoIntoDictionaryHolidayTypes=A különböző típusú levelek beállításához lépjen a Főoldal - Beállítás - Szótárak - Szabadság típusa elemre. +HolidaySetup=A Szabadság modul beállítása +HolidaysNumberingModules=Számozási modellek szabadság kérelmekhez +TemplatePDFHolidays=Sablon szabadság kérelmek PDF-hez +FreeLegalTextOnHolidays=Szabad szöveg PDF-ben +WatermarkOnDraftHolidayCards=Vízjelek a szabadság kérelmek piszkozatán +HolidaysToApprove=Jóváhagyandó ünnepek +NobodyHasPermissionToValidateHolidays=Senkinek nincs engedélye a szabadságok érvényesítésére +HolidayBalanceMonthlyUpdate=Az ünnepi egyenleg havi frissítése +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 diff --git a/htdocs/langs/hu_HU/hrm.lang b/htdocs/langs/hu_HU/hrm.lang index ae3d4eb0077..9d63812f9fd 100644 --- a/htdocs/langs/hu_HU/hrm.lang +++ b/htdocs/langs/hu_HU/hrm.lang @@ -2,80 +2,91 @@ # Admin -HRM_EMAIL_EXTERNAL_SERVICE=E-mail a HRM (emberi erőforrás) külső szolgáltatásának megakadályozására +HRM_EMAIL_EXTERNAL_SERVICE=E-mail a HRM külső szolgáltatásának megakadályozásához Establishments=Létesítmények Establishment=Létesítmény NewEstablishment=Új létesítmény -DeleteEstablishment=A létesítmény törlése -ConfirmDeleteEstablishment=Biztosan törli ezt a létesítményt? -OpenEtablishment=Létesítmény megnyitása -CloseEtablishment=Létesítmény lezárása +DeleteEstablishment=Létesítmény törlése +ConfirmDeleteEstablishment=Biztosan törölni szeretné ezt a létesítményt? +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 -DictionaryFunction=HRM - Pozíciók +DictionaryPublicHolidays=Szabadság - Munkaszüneti napok +DictionaryDepartment=HRM - Szervezeti egység +DictionaryFunction=HRM – Munkaköri pozíciók # Module Employees=Alkalmazottak Employee=Foglalkoztató NewEmployee=Új alkalmazott ListOfEmployees=Alkalmazottak listája -HrmSetup=HRM modul beállításai -HRM_MAXRANK=Maximum rank for a skill -HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created +HrmSetup=HRM modul beállítása +SkillsManagement=Készségkezelés +HRM_MAXRANK=A szintek maximális száma a készség rangsorolásához +HRM_DEFAULT_SKILL_DESCRIPTION=A rangok alapértelmezett leírása a készség létrehozásakor deplacement=Shift -DateEval=Evaluation date -JobCard=Job card -Job=Feladat -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=Pozíció -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 +DateEval=Értékelés dátuma +JobCard=Munkakártya +JobPosition=Munka +JobsPosition=Munkák +NewSkill=Új készség +SkillType=Képesség típusa +Skilldets=Ennek a képességnek a rangjainak listája +Skilldet=Képességi szint +rank=Rang +ErrNoSkillSelected=Nincs kiválasztott készség +ErrSkillAlreadyAdded=Ez a képesség már szerepel a listában +SkillHasNoLines=Ennek a képességnek nincsenek vonalai +skill=Képesség +Skills=Készségek +SkillCard=Képességkártya +EmployeeSkillsUpdated=Az alkalmazotti készségeket frissítettük (lásd az alkalmazotti kártya „Készségek” lapját) +Eval=Értékelés +Evals=Értékelések +NewEval=Új értékelés +ValidateEvaluation=Értékelés ellenőrzése +ConfirmValidateEvaluation=Biztosan érvényesíteni szeretné ezt az értékelést a %s hivatkozással? +EvaluationCard=Értékelő kártya +RequiredRank=Szükséges rang ehhez a munkához +EmployeeRank=Alkalmazotti rang ehhez a képességhez +EmployeePosition=Alkalmazotti pozíció +EmployeePositions=Alkalmazotti pozíciók +EmployeesInThisPosition=Alkalmazottak ebben a pozícióban +group1ToCompare=Elemezendő felhasználói csoport +group2ToCompare=Második felhasználói csoport az összehasonlításhoz +OrJobToCompare=Hasonlítsa össze a munkaköri készségigényekkel difference=Különbség -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=Egy vagy több felhasználó által megszerzett, de a második összehasonlító által nem kért kompetencia +MaxlevelGreaterThan=Maximális szint nagyobb, mint a kért +MaxLevelEqualTo=Maximális szint megegyezik az igényléssel +MaxLevelLowerThan=Maximális szint alacsonyabb, mint az igény +MaxlevelGreaterThanShort=Alkalmazotti szint magasabb, mint a kért +MaxLevelEqualToShort=Alkalmazotti szint megegyezik a keresettel +MaxLevelLowerThanShort=Az alkalmazotti szint alacsonyabb, mint az igény +SkillNotAcquired=A készségeket nem minden felhasználó szerezte meg, és a második összehasonlító kérte legend=Jelmagyarázat -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=Képesség típusa +AddSkill=Készségek hozzáadása a munkához +RequiredSkills=Szükséges készségek ehhez a munkához +UserRank=Felhasználói rang +SkillList=Képességlista +SaveRank=Rang mentése +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 +HowManyUserWithThisMaxNote=Az ezzel a ranggal rendelkező felhasználók száma +HighestRank=Legmagasabb rang +SkillComparison=Képesség-összehasonlítás +ActionsOnJob=Események ehhez a munkához +VacantPosition=üres állás +VacantCheckboxHelper=Ha bejelöli ezt a lehetőséget, akkor a betöltetlen pozíciók jelennek meg (üres állás) +SaveAddSkill = Készség(ek) hozzáadva +SaveLevelSkill = Képesség(ek) szintje mentve +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 2c0a5332cbd..ecc3ba04460 100644 --- a/htdocs/langs/hu_HU/install.lang +++ b/htdocs/langs/hu_HU/install.lang @@ -2,40 +2,35 @@ InstallEasy=Csak kövesse az utasitásokat lépésrõl lépésre. MiscellaneousChecks=Előeltételek ellenörézse ConfFileExists=%s konfigurációs fájl már létezik. -ConfFileDoesNotExistsAndCouldNotBeCreated=Az %s konfigurációs fájl nem létezik, és nem lehetett létrehozni! +ConfFileDoesNotExistsAndCouldNotBeCreated=A %s konfigurációs fájl nem létezik és nem hozható létre! ConfFileCouldBeCreated=%s konfigurációs fájl létrehozható. -ConfFileIsNotWritable=Az %s konfigurációs fájl nem írható. Ellenőrizze az engedélyeket. Az első telepítéshez a webkiszolgálónak képesnek kell lennie arra, hogy ebbe a fájlba írjon a konfigurációs folyamat során ("chmod 666" például egy Unix/Linux operációs rendszer esetén). +ConfFileIsNotWritable=A %s konfigurációs fájl nem írható. Ellenőrizze az engedélyeket. Az első telepítéshez a webszervernek képesnek kell lennie ebbe a fájlba írni a konfigurációs folyamat során ("chmod 666" például Unix-szerű operációs rendszeren). ConfFileIsWritable=%s konfigurációs fájl írható. -ConfFileMustBeAFileNotADir=Az %s konfigurációs fájl fájlnak kell lennie, nem könyvtárnak. +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 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 a GET változókat. Ellenőrizze az variables_order paramétert a php.ini-ben. +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. -PHPSupport=Ez a PHP támogatja a(z) %s funkciókat. +PHPSupport=Ez a PHP támogatja a %s függvényeket. PHPMemoryOK=A munkamenetek maximális memóriája %s. Ennek elégnek kéne lennie. -PHPMemoryTooLow=A PHP munkamenetmemóriája %s bájt maximumra van beállítva. Ez túl alacsony. Változtassa meg a php.ini fájlban a memory_limit paraméter értékét legalább %s bájtra. +PHPMemoryTooLow=A PHP max munkamenet memóriája %s bájtra van beállítva. Ez túl alacsony. Módosítsa a php.ini fájlt úgy, hogy a memory_limit paramétert legalább %s bájtra állítsa. Recheck=Kattintson ide a részletesebb tesztért -ErrorPHPDoesNotSupportSessions=A telepített PHP jelenleg nem támogatja a munkameneteket. Ez a szolgáltatás szükséges ahhoz, hogy a Dolibarr megfelelően működjön. Ellenőrizze a PHP beállításait és a munkamenet-könyvtár engedélyeit. -ErrorPHPDoesNotSupportGD=A telepített PHP jelenleg nem támogatja a GD grafikus funkcióit. Nem állnak rendelkezésre grafikonok. -ErrorPHPDoesNotSupportCurl=A PHP telepítése nem támogatja a Curl-t. -ErrorPHPDoesNotSupportCalendar=A telepített PHP nem támogatja a php naptárkiterjesztéseket. -ErrorPHPDoesNotSupportUTF8=A telepített PHP nem támogatja az UTF8 funkciókat. A Dolibarr nem működik megfelelően. A Dolibarr telepítése előtt oldja meg ezt. -ErrorPHPDoesNotSupportIntl=A telepített PHP nem támogatja a többnyelvű funkciókat. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. -ErrorPHPDoesNotSupport=A telepített PHP nem támogatja a(z) %s funkciókat. +ErrorPHPDoesNotSupportSessions=A PHP telepítése nem támogatja a munkameneteket. Ez a funkció szükséges a Dolibarr működéséhez. Ellenőrizze a PHP beállításait és a sessions könyvtár engedélyeit. +ErrorPHPDoesNotSupport=A PHP telepítése nem támogatja a %s függvényeket. ErrorDirDoesNotExists=%s könyvtár nem létezik. -ErrorGoBackAndCorrectParameters=Menjen vissza és ellenőrizze / javítsa ki a paramétereket. +ErrorGoBackAndCorrectParameters=Menjen vissza, és ellenőrizze/javítsa a paramétereket. ErrorWrongValueForParameter=Lehet, hogy rossz értéket adott meg a(z) '%s' paraméter számára. 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. -ErrorConnectedButDatabaseNotFound=Csatlakozás a szerverhez sikeres, de a(z) '%s' adatbázis nem található. +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 válassza az "adatbázis létrehozása" lehetőséget. +IfDatabaseNotExistsGoBackAndUncheckCreate=Ha az adatbázis nem létezik, menjen vissza és jelölje be az "Adatbázis létrehozása" opciót. IfDatabaseExistsGoBackAndCheckCreate=Ha az adatbázis már létezik, menjen vissza és ne válassza az "Adatbázis létrehozása" opciót. -WarningBrowserTooOld=A Ön böngésző verziója túl régi. Erősen ajánlott a frissítés a Firefox, a Chrome vagy az Opera legújabb verziójára. +WarningBrowserTooOld=A böngésző verziója túl régi. Javasoljuk, hogy frissítse böngészőjét a Firefox, Chrome vagy Opera legújabb verziójára. PHPVersion=PHP Verzió License=Használatban lévõ licensz ConfigurationFile=Konfigurációs fájl @@ -48,23 +43,23 @@ DolibarrDatabase=Dolibarr Adatbázis DatabaseType=Adatbázis típus DriverType=Meghajtó típus Server=Szerver -ServerAddressDescription=Az adatbázis-kiszolgáló neve vagy IP-címe. Általában 'localhost', amikor az adatbázis-kiszolgálót ugyanazon a szerveren tárolják, mint a webszervert. +ServerAddressDescription=Az adatbázis-kiszolgáló neve vagy IP-címe. Általában „localhost”, ha az adatbázis-kiszolgáló ugyanazon a szerveren található, mint a webszerver. ServerPortDescription=Adatbázis szerver port. Hagyja üresen ha nem tudja. DatabaseServer=Adatbázis szerver DatabaseName=Adatbázis név -DatabasePrefix=Az adatbázis tábla-előtagja -DatabasePrefixDescription=Az adatbázis tábla-előtagja. Ha üres, akkor alapértelmezés szerint llx_. -AdminLogin=A Dolibarr adatbázis tulajdonosának felhasználói fiókja. -PasswordAgain=Írja be újra a jelszót +DatabasePrefix=Adatbázistábla előtag +DatabasePrefixDescription=Adatbázistábla előtag. Ha üres, az alapértelmezett érték llx_. +AdminLogin=Felhasználói fiók a Dolibarr adatbázis-tulajdonos számára. +PasswordAgain=Írja be újra a jelszó megerősítését AdminPassword=Adatbázis tulajdonos jelszava. CreateDatabase=Adatbázis lérehozása -CreateUser=Hozzon létre felhasználói fiókot, vagy adjon felhasználói fiók engedélyt a Dolibarr adatbázisban +CreateUser=Felhasználói fiók létrehozása vagy felhasználói fiók engedélyezése a Dolibarr adatbázisban DatabaseSuperUserAccess=Adatbázis szerver - Superuser hozzáférés -CheckToCreateDatabase=Jelölje be a négyzetet, ha az adatbázis még nem létezik, ezért létre kell hozni.
    Ebben az esetben az oldal alján ki kell töltenie a felhasználói fiók felhasználói nevét és jelszavát is. -CheckToCreateUser=Jelölje be a négyzetet, ha:
    az adatbázis felhasználói fiókja még nem létezik, ezért létre kell hozni, vagy
    , ha a felhasználói fiók létezik, de az adatbázis nem létezik, és engedélyeket kell megadni.
    Ebben az esetben be kell írnia a felhasználói fiókot és a jelszót, és , valamint a superuser fiók nevét és jelszavát az oldal alján. Ha ez a négyzet nincs bejelölve, az adatbázis tulajdonosának és jelszavának már léteznie kell. -DatabaseRootLoginDescription=Superuser fióknév (új adatbázisok vagy új felhasználók létrehozásához), kötelező, ha az adatbázis vagy annak tulajdonosa még nem létezik. -KeepEmptyIfNoPassword=Hagyja üresen, ha a superusernek nincs jelszava (NEM ajánlott) -SaveConfigurationFile=Paraméterek mentése +CheckToCreateDatabase=Jelölje be a jelölőnégyzetet, ha az adatbázis még nem létezik, ezért létre kell hozni.
    Ebben az esetben a szuperfelhasználói fiókhoz tartozó felhasználónevet és jelszót is ki kell töltenie az oldal alján. +CheckToCreateUser=Jelölje be a négyzetet, ha:
    az adatbázis felhasználói fiók még nem létezik, ezért létre kell hozni, vagy
    ha a felhasználói fiók létezik, de az adatbázis nem létezik, és engedélyeket kell megadni.
    Ebben az esetben meg kell adnia a felhasználói fiókot és a jelszót, valamint a szuperfelhasználói fiók nevét és jelszavát az oldal alján. Ha ez a négyzet nincs bejelölve, akkor az adatbázis tulajdonosának és jelszavának már léteznie kell. +DatabaseRootLoginDescription=Superuser fiók neve (új adatbázisok vagy új felhasználók létrehozásához), kötelező, ha az adatbázis vagy tulajdonosa még nem létezik. +KeepEmptyIfNoPassword=Hagyja üresen, ha a szuperfelhasználónak nincs jelszava (NEM ajánlott) +SaveConfigurationFile=Paraméterek mentése ide ServerConnection=Szerver kapcsolat DatabaseCreation=Adatbázis létrehozása CreateDatabaseObjects=Adatbázis objektumok létrehozása @@ -75,9 +70,9 @@ CreateOtherKeysForTable=Külsõ kulcsok és indexek létrehozása a(z) %s tábla OtherKeysCreation=Idegen Külsõ kulcsok és indexek létrehozása FunctionsCreation=Funkciók létrehozása AdminAccountCreation=Adminisztrátor bejelntkezés létrehozása -PleaseTypePassword=Kérjük, írjon be egy jelszót, az üres jelszavak nem engedélyezettek! -PleaseTypeALogin=Kérjük, írja be a bejelentkezési nevét! -PasswordsMismatch=A jelszavak eltérőek, próbálkozzon újra! +PleaseTypePassword=Kérjük, írjon be egy jelszót, üres jelszavak nem megengedettek! +PleaseTypeALogin=Kérjük, írjon be egy bejelentkezést! +PasswordsMismatch=A jelszavak különböznek, próbáld újra! SetupEnd=Telepítés vége SystemIsInstalled=A telepítés készen van. SystemIsUpgraded=Dolibarr frissítése sikeres. @@ -85,73 +80,73 @@ YouNeedToPersonalizeSetup=Most már konfiguálhatja a Dolibarr-t az igényei sze AdminLoginCreatedSuccessfuly=Dolibarr adminisztrátor bejelentkezés '%s' sikeresen létrehozva. GoToDolibarr=Ugrás a Dolibarr-ba GoToSetupArea=Ugrás a Dolibarr-ba (beállítási terültre) -MigrationNotFinished=Az adatbázis verziója nincs teljesen naprakész: futtassa újra a frissítési folyamatot. +MigrationNotFinished=Az adatbázis verziója nem teljesen naprakész: futtassa újra a frissítési folyamatot. GoToUpgradePage=Ugrás a frissítési oldalra WithNoSlashAtTheEnd="/" nélkül a végén -DirectoryRecommendation= FONTOS : Olyan könyvtárat kell használnia, amely kívül esik a weboldalakon (tehát ne használja az előző paraméter alkönyvtárát). +DirectoryRecommendation=FONTOS: Olyan könyvtárat kell használnia, amely kívül esik a weboldalakon (tehát ne használjon előző paraméter alkönyvtárát). LoginAlreadyExists=Már létezik DolibarrAdminLogin=Dolibarr admin bejelentkezés -AdminLoginAlreadyExists=A ' %s ' Dolibarr rendszergazdai fiók már létezik. Menjen vissza, ha újat akar létrehozni. +AdminLoginAlreadyExists=A „%s” Dolibarr rendszergazdai fiók már létezik. Menjen vissza, ha másikat szeretne létrehozni. FailedToCreateAdminLogin=Nem tudta létrehozni a Dolibarr rendszergazda fiókot. -WarningRemoveInstallDir=Figyelem, biztonsági okokból a telepítés vagy a frissítés befejezése után az install.lock nevű fájlt létre kell hozni a Dolibarr dokumentum-könyvtárába a telepítőeszközök véletlen / rosszindulatú felhasználásának megelőzése érdekében. -FunctionNotAvailableInThisPHP=Ebben a PHP-ben nem érhető el +WarningRemoveInstallDir=Figyelmeztetés, biztonsági okokból, ha a telepítés vagy frissítés befejeződött, adjon hozzá egy install.lock nevű fájlt a Dolibarr dokumentumkönyvtárába, hogy megakadályozza a telepítőeszközök véletlen/rosszindulatú használatát. újra. +FunctionNotAvailableInThisPHP=Nem érhető el ebben a PHP-ben ChoosedMigrateScript=Migrációs szkript választása -DataMigration=Adatbázis-migráció (adatok) -DatabaseMigration=Adatbázis-migráció (struktúra + néhány adat) +DataMigration=Adatbázis migráció (adatok) +DatabaseMigration=Adatbázis migráció (struktúra + néhány adat) ProcessMigrateScript=Szkript feldolhozása ChooseYourSetupMode=Válassta ki a telepítési módot és kattintson a "START"-ra... FreshInstall=Friss telepítés -FreshInstallDesc=Használja ezt a módot, ha ez az első telepítés. Ha nem, ez a mód kijavíthatja a hiányos előző telepítést. Ha frissíteni szeretné verzióját, válassza a "Frissítés" módot. +FreshInstallDesc=Használja ezt a módot, ha ez az első telepítés. Ha nem, ez a mód javíthatja a hiányos korábbi telepítést. Ha frissíteni szeretné a verzióját, válassza a „Frissítés” módot. Upgrade=Frissítés UpgradeDesc=Használja ezt a módot, ha már helyettesítette a régi fájlokat az újabb verzió fájlaival. Frissíti az adatbázist és az adatokat. Start=START InstallNotAllowed=Telepítés nincs engedélyezve a conf.php fájlban YouMustCreateWithPermission=Létre kell hoznia %s fájlt és írásai jogokat adnia a webszerveren a telepítés idejére. -CorrectProblemAndReloadPage=Javítsa ki a problémát, és nyomja meg az F5 billentyűt az oldal újratöltéséhez. +CorrectProblemAndReloadPage=Kérjük, javítsa a problémát, és nyomja meg az F5 billentyűt az oldal újratöltéséhez. AlreadyDone=Már migárlva DatabaseVersion=Adatbázis verzió ServerVersion=Adatbázis szerver verzió YouMustCreateItAndAllowServerToWrite=Létre kell hoznia ezt a könyvtárat és engedélyeznie a szervenek, hogy írhasson bele. DBSortingCollation=Karakter rendezés -YouAskDatabaseCreationSoDolibarrNeedToConnect=Ön a(z) %sadatbázis létrehozását választotta, de ehhez a Dolibarr-nak kapcsolódnia kell a(z) %sszerverhez, %sszuper felhasználói engedélyekkel. -YouAskLoginCreationSoDolibarrNeedToConnect=Ön a(z) %s adatbázis felhasználó létrehozását választotta, de ehhez a Dolibarr-nak kapcsolódnia kell a(z) %s szerverhez, %s szuper felhasználói engedélyekkel. +YouAskDatabaseCreationSoDolibarrNeedToConnect=A(z) %s adatbázis létrehozását választotta, de ehhez a Dolibarrnak csatlakoznia kell a(z) %s szerverhez %s szuperfelhasználói engedélyekkel. +YouAskLoginCreationSoDolibarrNeedToConnect=A(z) %s adatbázis-felhasználó létrehozását választotta, de ehhez a Dolibarrnak csatlakoznia kell a(z) %s szerverhez %s szuperfelhasználói engedélyekkel. BecauseConnectionFailedParametersMayBeWrong=Az adatbázis-kapcsolat sikertelen: a gazdagép vagy a szuperfelhasználó paraméterei hibásak OrphelinsPaymentsDetectedByMethod=%s metódus által felfedezett árva fizetések vannak a rendszerben RemoveItManuallyAndPressF5ToContinue=Távolítsa el manuálisan, majd F5-el frissítsen. FieldRenamed=Mezõ átnevezve -IfLoginDoesNotExistsCheckCreateUser=Ha a felhasználó még nem létezik, akkor jelölje be a "Felhasználó létrehozása" lehetőséget -ErrorConnection=„%s” szerver, „%s” adatbázis, „ %s ” felhasználó, vagy adatbázis jelszó hibás, vagy a PHP kliens verziója túl régi az adatbázis verziójához. +IfLoginDoesNotExistsCheckCreateUser=Ha a felhasználó még nem létezik, be kell jelölnie a "Felhasználó létrehozása" opciót. +ErrorConnection=Szerver "%s", adatbázisnév "%s", bejelentkezési név "%s" vagy adatbázis jelszava lehet rossz, vagy A PHP kliens verziója túl régi lehet az adatbázis verziójához képest. InstallChoiceRecommanded=A javasolt választás %s verzióra frissítés a %s jelenlegi verzióról InstallChoiceSuggested=A telepítõ által javasolt választás. -MigrateIsDoneStepByStep=A célzott verzióig (%s) többlépcsős lehet a frissítés. A telepítővarázsló visszatér, és javaslatot tesz egy további migrációra, miután ez befejeződött. -CheckThatDatabasenameIsCorrect=Ellenőrizze, hogy az "%s" adatbázisnév helyes-e. +MigrateIsDoneStepByStep=A megcélzott verzióban (%s) több verzió hiányzik. A telepítővarázsló visszatér, és javasolja a további áttelepítést, ha ez befejeződött. +CheckThatDatabasenameIsCorrect=Ellenőrizze, hogy a "%s" adatbázisnév helyes-e. IfAlreadyExistsCheckOption=Ha a név jó és a megadott adatbázis nem létezik, használja az "Adatbázis létrehozása" opciót. OpenBaseDir=PHP openbasedir paraméter -YouAskToCreateDatabaseSoRootRequired=Bejelölte az "Adatbázis létrehozása" négyzetet. Ehhez meg kell adnia a superuser felhasználónevét / jelszavát (az űrlap alján). -YouAskToCreateDatabaseUserSoRootRequired=Bejelölte az "adatbázis-tulajdonos létrehozása" négyzetet. Ehhez meg kell adnia a superuser felhasználónevét / jelszavát (az űrlap alján). -NextStepMightLastALongTime=Az aktuális lépés néhány percet vehet igénybe. Mielőtt folytatná, várjon, amíg a következő képernyő teljesen meg nem jelenik. -MigrationCustomerOrderShipping=A szállítási információk migrálása az értékesítési megrendelések tárolására +YouAskToCreateDatabaseSoRootRequired=Bejelölte az "Adatbázis létrehozása" négyzetet. Ehhez meg kell adnia a superuser bejelentkezési nevét/jelszavát (az űrlap alján). +YouAskToCreateDatabaseUserSoRootRequired=Bejelölte az "Adatbázistulajdonos létrehozása" négyzetet. Ehhez meg kell adnia a superuser bejelentkezési nevét/jelszavát (az űrlap alján). +NextStepMightLastALongTime=Az aktuális lépés több percig is eltarthat. Kérjük, várja meg, amíg a következő képernyő teljesen megjelenik, mielőtt folytatná. +MigrationCustomerOrderShipping=Szállítás áttelepítése értékesítési rendelések tárolására MigrationShippingDelivery=Szállítási tárló frissítése MigrationShippingDelivery2=Szállítási tárló frissítése 2 MigrationFinished=Migráció befejezte -LastStepDesc=Utolsó lépés: Adjon meg egy felhasználónevet és jelszót, amelyet használni kíván a Dolibarr-hoz való csatlakozáshoz. Jól jegyezze meg ezeket az adatokat, ugyanis az összes többi felhasználói fiók, valamint a Dolibarr adminisztrálására szolgáló főfiók. +LastStepDesc=Utolsó lépés: Itt adja meg azt a bejelentkezési nevet és jelszót, amelyet a Dolibarrhoz való csatlakozáshoz használni kíván. Ne veszítse el ezt, mivel ez a fő fiók az összes többi/további felhasználói fiók kezeléséhez. ActivateModule=Modul aktiválása %s ShowEditTechnicalParameters=Klikkelj ide a haladó beállítasok megtekintéséhez/szerkezstéséhez. (szakértő mód) -WarningUpgrade=Figyelem:\nElőször futtatta az adatbázis biztonsági mentését?\nNagyon ajánlott: a folyamat során adatvesztés (például a mysql 5.5.40/41/42/43 verziójában található hibák miatt) lehetséges, ezért alapvető fontosságú, hogy az áttelepítés megkezdése előtt teljes adatbázist készítsen az adatbázisról.\n\nKattintson az OK gombra az migrálási folyamat elindításához ... -ErrorDatabaseVersionForbiddenForMigration=Az adatbázis verziója %s. Ennek a verziónak kritikus hibája van, emiatt lehetséges az adatvesztés, ha szerkezeti változtatásokat hajt végre az adatbázisban, ami például a migrálási folyamat miatt szükséges. Ezért a migrálás addig nem engedélyezett, amíg az adatbázist nem frissíti javított verzióra (az ismert hibás verziók listája: %s) -KeepDefaultValuesWamp=Használta a DoliWamp Dolibarr beállítóvarázslóját, így az itt javasolt értékek már optimalizálva vannak. Csak akkor cserélje ki őket, ha tudja, mit csinál. -KeepDefaultValuesDeb=Használta a Dolibarr beállítóvarázslót egy Linux csomagból (Ubuntu, Debian, Fedora ...), így az itt javasolt értékek már optimalizálva vannak. Csak az adatbázis tulajdonosának a létrehozásához szükséges jelszót kell megadnia. Csak akkor változtasson meg más paramétereket, ha tudja, mit csinál. -KeepDefaultValuesMamp=Használta a DoliMamp Dolibarr beállítóvarázslóját, így az itt javasolt értékek már optimalizálva vannak. Csak akkor cserélje ki őket, ha tudja, mit csinál. -KeepDefaultValuesProxmox=A Proxmox virtuális eszközből a Dolibarr beállítóvarázslót használta, így az itt javasolt értékek már optimalizálva vannak. Csak akkor cserélje ki őket, ha tudja, mit csinál. +WarningUpgrade=Figyelem:\nFuttatott először adatbázis biztonsági mentést?\nEz erősen ajánlott. A folyamat során előfordulhat adatvesztés (például a mysql 5.5.40/41/42/43 verziójának hibái miatt), ezért elengedhetetlen, hogy az adatbázis teljes kiíratását végezze el az áttelepítés megkezdése előtt.\n\nKattintson a gombra. OK a migrációs folyamat elindításához... +ErrorDatabaseVersionForbiddenForMigration=Az adatbázis verziója %s. Van egy kritikus hibája, amely lehetővé teszi az adatvesztést, ha olyan strukturális változtatásokat hajt végre az adatbázisban, amelyeket az átállási folyamat megkövetel. Emiatt a migráció nem engedélyezett mindaddig, amíg nem frissíti az adatbázist egy réteg (javított) verzióra (az ismert hibás verziók listája: %s) +KeepDefaultValuesWamp=A DoliWamp Dolibarr telepítővarázslóját használta, így az itt javasolt értékek már optimalizálva vannak. Csak akkor változtasd meg őket, ha tudod, mit csinálsz. +KeepDefaultValuesDeb=Linux csomagból (Ubuntu, Debian, Fedora...) használta a Dolibarr telepítővarázslót, így az itt javasolt értékek már optimalizálva vannak. Csak a létrehozandó adatbázis tulajdonosának jelszavát kell megadni. A többi paramétert csak akkor módosítsa, ha tudja, mit csinál. +KeepDefaultValuesMamp=A Dolibarr beállító varázslót használta a DoliMamp-tól, így az itt javasolt értékek már optimalizálva vannak. Csak akkor változtasd meg őket, ha tudod, mit csinálsz. +KeepDefaultValuesProxmox=Egy Proxmox virtuális készülékről használta a Dolibarr telepítővarázslót, így az itt javasolt értékek már optimalizálva vannak. Csak akkor változtasd meg őket, ha tudod, mit csinálsz. UpgradeExternalModule=Futtassa a külső modul dedikált frissítési folyamatát -SetAtLeastOneOptionAsUrlParameter=Állítson be legalább egy opciót paraméterként az URL-ben. Például: "... javítás.php?Szabvány=megerősítve" -NothingToDelete=Nincs tisztítandó / törlendő -NothingToDo=Nincs mit tenni +SetAtLeastOneOptionAsUrlParameter=Állítson be legalább egy beállítást paraméterként az URL-ben. Például: '...repair.php?standard=confirmed' +NothingToDelete=Nincs mit tisztítani/törölni +NothingToDo=Nincs tennivaló ######### # upgrade MigrationFixData=Fix denormalizált adatra MigrationOrder=Ügyfél rendelések migrációja -MigrationSupplierOrder=Adatáttelepítés az eladó rendeléseihez +MigrationSupplierOrder=Adatmigráció a szállítói rendelésekhez MigrationProposal=Üzleti ajánlatok migrációja MigrationInvoice=Ügyfél számlák migrációja MigrationContract=Szerzõdések migrációja @@ -169,7 +164,7 @@ MigrationContractsLineCreation=%s számú szerzõdés számára új sorok létre MigrationContractsNothingToUpdate=Nincs több tenni való MigrationContractsFieldDontExist=Az fk_facture mező már nem létezik. Nincs mit tenni. MigrationContractsEmptyDatesUpdate=Szerzõdés üres dátumának korrekciója -MigrationContractsEmptyDatesUpdateSuccess=A szerződés üres dátumának helyesbítése sikeresen megtörtént +MigrationContractsEmptyDatesUpdateSuccess=A szerződés üres dátumának javítása sikeresen megtörtént MigrationContractsEmptyDatesNothingToUpdate=Nincs szerzõdés üres dátummal MigrationContractsEmptyCreationDatesNothingToUpdate=Nincs szerzõdés üres létrehozási dátummal MigrationContractsInvalidDatesUpdate=Szerzõdés érvénytelen dátumának korrekciója @@ -191,29 +186,29 @@ MigrationDeliveryDetail=Szállítások frissítése MigrationStockDetail=Termékek készletének frissítése MigrationMenusDetail=Dinamikus menük frissítése MigrationDeliveryAddress=Szállítási címek frissítése -MigrationProjectTaskActors=Adatáttelepítés az llx_projet_task_actors táblában +MigrationProjectTaskActors=Adatmigráció az llx_projet_task_actors táblához MigrationProjectUserResp=Adatok migrálása fk_user_resp/llx_projet llx_element_contact -ba MigrationProjectTaskTime=Frissítési idõ másodpercekben MigrationActioncommElement=Frissítés adatok akciók -MigrationPaymentMode=Az adatáttelepítés a fizetési típushoz +MigrationPaymentMode=Adatmigráció fizetési típushoz MigrationCategorieAssociation=Kategória migrálása -MigrationEvents=Események áttelepítése az esemény tulajdonosának hozzáadásához a hozzárendelési táblázathoz -MigrationEventsContact=Események áttelepítése az eseménykapcsolat hozzáadásához a hozzárendelési táblázathoz +MigrationEvents=Események áttelepítése az eseménytulajdonos hozzárendelési táblázatba való felvételéhez +MigrationEventsContact=Események áttelepítése az esemény kapcsolattartójának hozzárendelési táblázatba való felvételéhez MigrationRemiseEntity=Üres mező érték frissítése: llx_societe_remise MigrationRemiseExceptEntity=Üres mező érték frissítése: llx_societe_remise_except -MigrationUserRightsEntity=Frissítse az llx_user_rights entitásmező értékét -MigrationUserGroupRightsEntity=Frissítse az llx_usergroup_rights entitásmező értékét -MigrationUserPhotoPath=Képek útvonalainak áttelepítése a felhasználók számára -MigrationFieldsSocialNetworks=A felhasználói fiókok migrációja a közösségi hálózatokon (%s) +MigrationUserRightsEntity=Az llx_user_rights entitásmező értékének frissítése +MigrationUserGroupRightsEntity=Az llx_usergroup_rights entitásmező értékének frissítése +MigrationUserPhotoPath=Fénykép-útvonalak migrálása a felhasználók számára +MigrationFieldsSocialNetworks=A felhasználók migrációja a közösségi hálózatok mezőiben (%s) MigrationReloadModule=Modul újratöltése %s -MigrationResetBlockedLog=Alaphelyzetbe állítja a BlockedLog modult a v7 algoritmushoz -MigrationImportOrExportProfiles=Migration of import or export profiles (%s) -ShowNotAvailableOptions=Nem elérhető lehetőségek megjelenítése -HideNotAvailableOptions=Nem elérhető lehetőségek elrejtése -ErrorFoundDuringMigration=Hibá(k) fordulhattak elő a migrálási folyamat során, így a következő lépés nem érhető el. A hibák figyelmen kívül hagyásához kattintson ide, de lehet, hogy az alkalmazás vagy egyes szolgáltatások nem működnek addig helyesen, amíg a hibákat ki nem javítja (valaki). -YouTryInstallDisabledByDirLock=Az alkalmazás megpróbált frissítést végrehajtani, de a telepítés / frissítés oldalait a biztonság miatt letiltottuk (.lock utótaggal átnevezett könyvtár).
    -YouTryInstallDisabledByFileLock=Az alkalmazás megpróbált frissítést végrehajtani, de a biztonságot szem előtt tartva letiltottuk a telepítési / frissítési oldalakat (az install.lock zárolási fájl létrehozásával a dolibarr dokumentumok könyvtárában).
    -ClickHereToGoToApp=Kattintson ide az alkalmazás eléréséhez -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=A BlockedLog modul visszaállítása a v7 algoritmushoz +MigrationImportOrExportProfiles=Importálási vagy exportálási profilok (%s) áttelepítése +ShowNotAvailableOptions=Nem elérhető opciók megjelenítése +HideNotAvailableOptions=A nem elérhető opciók elrejtése +ErrorFoundDuringMigration=Hiba(k) jelentek meg az áttelepítési folyamat során, így a következő lépés nem érhető el. A hibák figyelmen kívül hagyásához kattintson ide, de előfordulhat, hogy az alkalmazás vagy egyes szolgáltatások nem működnek megfelelően, amíg a hibákat meg nem oldják. +YouTryInstallDisabledByDirLock=Az alkalmazás megpróbált önállóan frissíteni, de a telepítési/frissítési oldalakat a biztonság kedvéért letiltották (a könyvtárat .lock utótaggal nevezték át).
    +YouTryInstallDisabledByFileLock=Az alkalmazás megpróbált önállóan frissíteni, de a telepítési/frissítési oldalakat a biztonság kedvéért letiltották (a dolibarr dokumentumok könyvtárában található install.lock zárolási fájl miatt).
    +ClickHereToGoToApp=Kattintson ide az alkalmazás megnyitásához +ClickOnLinkOrRemoveManualy=Ha frissítés van folyamatban, kérjük, várjon. Ha nem, kattintson a következő linkre. Ha mindig ugyanazt az oldalt látja, el kell távolítania/át kell neveznie az install.lock fájlt a dokumentumok könyvtárában. +Loaded=Töltve +FunctionTest=Funkcióteszt diff --git a/htdocs/langs/hu_HU/interventions.lang b/htdocs/langs/hu_HU/interventions.lang index 6b0ac23348b..c73ca523aa8 100644 --- a/htdocs/langs/hu_HU/interventions.lang +++ b/htdocs/langs/hu_HU/interventions.lang @@ -1,68 +1,70 @@ # Dolibarr language file - Source file is en_US - interventions -Intervention=Intervenció +Intervention=Beavatkozás Interventions=Intervenciók -InterventionCard=Intervenció kártya -NewIntervention=Új intervenció -AddIntervention=Create intervention -ChangeIntoRepeatableIntervention=Change to repeatable intervention -ListOfInterventions=Intervenciók liskáta -ActionsOnFicheInter=Műveletek az intervenciós -LastInterventions=Latest %s interventions -AllInterventions=Minden intervenció -CreateDraftIntervention=Vázlat létrehozása -InterventionContact=Intervenció kapcsolat -DeleteIntervention=Intervenció törlése -ValidateIntervention=Intervenció érvényesítése -ModifyIntervention=Intervenció módosítása -DeleteInterventionLine=Minden intervenció sor törlése -ConfirmDeleteIntervention=Biztosan törli ezt a beavatkozást? -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=A beavatkozó neve és aláírása: -NameAndSignatureOfExternalContact=Name and signature of customer: -DocumentModelStandard=Standard dokumentum modell intervenciókhoz -InterventionCardsAndInterventionLines=Interventions and lines of interventions -InterventionClassifyBilled=Besorolva "Számlázottnak" -InterventionClassifyUnBilled=Classify "Unbilled" -InterventionClassifyDone=Osztályozva "Kész" -StatusInterInvoiced=Számlázott -SendInterventionRef=Submission of intervention %s +InterventionCard=Beavatkozási kártya +NewIntervention=Új beavatkozás +AddIntervention=Beavatkozás létrehozása +ChangeIntoRepeatableIntervention=Váltás megismételhető beavatkozásra +ListOfInterventions=A beavatkozások listája +ActionsOnFicheInter=Műveletek beavatkozáskor +LastInterventions=A legújabb %s beavatkozás +AllInterventions=Minden beavatkozás +CreateDraftIntervention=Piszkozat létrehozása +InterventionContact=Beavatkozási kapcsolat +DeleteIntervention=A beavatkozás törlése +ValidateIntervention=A beavatkozás érvényesítése +ModifyIntervention=A beavatkozás módosítása +DeleteInterventionLine=A beavatkozási vonal törlése +ConfirmDeleteIntervention=Biztosan törölni szeretné ezt a beavatkozást? +ConfirmValidateIntervention=Biztosan érvényesíteni szeretné ezt a beavatkozást %s néven? +ConfirmModifyIntervention=Biztosan módosítani szeretné ezt a beavatkozást? +ConfirmDeleteInterventionLine=Biztosan törölni szeretné ezt a beavatkozási sort? +ConfirmCloneIntervention=Biztosan klónozni akarja ezt a beavatkozást? +NameAndSignatureOfInternalContact=Beavatkozó neve és aláírása: +NameAndSignatureOfExternalContact=Az ügyfél neve és aláírása: +DocumentModelStandard=A beavatkozások szabványos dokumentummodellje +InterventionCardsAndInterventionLines=Beavatkozások és beavatkozási vonalak +InterventionClassifyBilled="Számlázott" besorolás +InterventionClassifyUnBilled=Besorolás "Nem számlázva" +InterventionClassifyDone=Besorolás "Kész" +StatusInterInvoiced=Számlázva +SendInterventionRef=%s beavatkozás benyújtása SendInterventionByMail=Beavatkozás küldése e-mailben -InterventionCreatedInDolibarr=Intervention %s created -InterventionValidatedInDolibarr=%s közbenjárás érvényesítve -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 +InterventionCreatedInDolibarr=%s beavatkozás létrehozva +InterventionValidatedInDolibarr=%s beavatkozás érvényesítve +InterventionModifiedInDolibarr=%s beavatkozás módosítva +InterventionClassifiedBilledInDolibarr=%s beavatkozás számlázottként beállítva +InterventionClassifiedUnbilledInDolibarr=A %s beavatkozás számlázatlanként beállítva +InterventionSentByEMail=%s beavatkozás e-mailben elküldve +InterventionDeletedInDolibarr=%s beavatkozás törölve +InterventionsArea=Beavatkozási terület DraftFichinter=Beavatkozások tervezete -LastModifiedInterventions=Latest %s modified interventions -FichinterToProcess=A feldolgozandó beavatkozások -TypeContact_fichinter_external_CUSTOMER=Ügyfél kapcsolat követés -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=A beavatkozások statisztikája -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 +LastModifiedInterventions=A legutóbbi %s módosított beavatkozás +FichinterToProcess=Feldolgozandó beavatkozások +TypeContact_fichinter_external_CUSTOMER=Az ügyfél kapcsolatfelvételének nyomon követése +PrintProductsOnFichinter=A "termék" típusú sorok nyomtatása is (nem csak szolgáltatások) a beavatkozási kártyán +PrintProductsOnFichinterDetails=megrendelésekből generált beavatkozások +UseServicesDurationOnFichinter=A szolgáltatások időtartama a rendelésekből generált beavatkozásokhoz +UseDurationOnFichinter=Elrejti a beavatkozási rekordok időtartammezőjét +UseDateWithoutHourOnFichinter=Elrejti az órákat és perceket a dátummezőtől a beavatkozási rekordokhoz +InterventionStatistics=A beavatkozások statisztikái +NbOfinterventions=A beavatkozási kártyák száma +NumberOfInterventionsByMonth=A beavatkozási kártyák száma hónaponként (érvényesítés dátuma) +AmountOfInteventionNotIncludedByDefault=A beavatkozás összege alapértelmezés szerint nem számít bele a profitba (a legtöbb esetben munkaidő-nyilvántartást használnak az eltöltött idő számlálására). Adja hozzá a PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT opciót az 1-hez a home-setup-other részhez, hogy felvegye őket. +InterId=Beavatkozási azonosító +InterRef=Beavatkozási hiv. +InterDateCreation=Dátum létrehozási beavatkozás +InterDuration=A beavatkozás időtartama +InterStatus=Állapot-beavatkozás +InterNote=Beavatkozás megjegyzés +InterLine=Beavatkozási vonal +InterLineId=Sorazonosító beavatkozás +InterLineDate=Vonaldátum beavatkozás +InterLineDuration=Vonaltartamú beavatkozás +InterLineDesc=Vonalleíró beavatkozás +RepeatableIntervention=A beavatkozás sablonja +ToCreateAPredefinedIntervention=Előre meghatározott vagy ismétlődő beavatkozás létrehozásához hozzon létre egy közös beavatkozást, és alakítsa át beavatkozási sablonná +ConfirmReopenIntervention=Biztosan vissza akarja nyitni a(z) %s beavatkozást? +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. 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/loan.lang b/htdocs/langs/hu_HU/loan.lang index 1efd439d66f..3d5fd3e8baf 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=Alapértelmezés szerint a számviteli tőke +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Alapértelmezés szerint a számla kamatai +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Alapértelmezés szerint a könyvelési számlabiztosítás +CreateCalcSchedule=Pénzügyi kötelezettségvállalás szerkesztése diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index 152bbff480c..0184ec8d184 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=, @@ -24,15 +30,15 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p DatabaseConnection=Adatbási Kapcsolat -NoTemplateDefined=Ilyen e-mail típushoz nincs elérhető sablon +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 -CurrentTimeZone=A PHP (szerver) időzónája +CurrentTimeZone=TimeZone PHP (szerver) EmptySearchString=Adjon meg nem üres keresési feltételeket -EnterADateCriteria=Enter a date criteria +EnterADateCriteria=Adja meg a dátum kritériumát NoRecordFound=Rekord nem található -NoRecordDeleted=Nincs törölt rekord +NoRecordDeleted=Nincs rekord törölve NotEnoughDataYet=Nincs elég adat NoError=Nincs hiba Error=Hiba @@ -47,28 +53,28 @@ ErrorConstantNotDefined=%s paraméter nincs definiálva ErrorUnknown=Ismeretlen hiba ErrorSQL=SQL Hiba ErrorLogoFileNotFound='%s' logo fájl nincs meg -ErrorGoToGlobalSetup=Lépj a Vállalat/Szervezet beállításba a javításhoz +ErrorGoToGlobalSetup=A probléma kijavításához lépjen a "Vállalat/Szervezet" beállításhoz ErrorGoToModuleSetup=Menj a Modul beállításokhoz a javítás érdekében ErrorFailedToSendMail=Nemsikerült elküldeni a levelet (feladó=%s, címzett=%s) ErrorFileNotUploaded=A Fájl nem lett feltöltve. Ellenőrizd, hogy a méret nem haladja -e meg a maximum méretet, van -e elég szabad hely és hogy a célkönyvtárban nincs -e még egy ugyan ilyen nevü fájl. ErrorInternalErrorDetected=Hiba észlelve ErrorWrongHostParameter=Rossz hoszt paraméter -ErrorYourCountryIsNotDefined=Az ország nem definiált. Lépj a Kezdőlap-Beállítások-Szerkesztés elemre és küldd újra az űrlapot. -ErrorRecordIsUsedByChild=A rekord nem törölhető, mert hasznélatban van. +ErrorYourCountryIsNotDefined=Az országa nincs megadva. Lépjen a Beállítás-Szerkesztés menüpontra, és töltse ki újra az űrlapot. +ErrorRecordIsUsedByChild=Nem sikerült törölni ezt a rekordot. Ezt a rekordot legalább egy gyermekrekord használja. ErrorWrongValue=Rossz érték ErrorWrongValueForParameterX=%s paraméter rossz értékkel rendelkezik ErrorNoRequestInError=Nincs kérés a hibában -ErrorServiceUnavailableTryLater=A szolgáltatás nem elérhető. Kérjük ismételd meg később. +ErrorServiceUnavailableTryLater=A szolgáltatás jelenleg nem érhető el. Próbáld újra később. ErrorDuplicateField=Két példányú érték egyedülálló mezőben -ErrorSomeErrorWereFoundRollbackIsDone=Hibát találtunk. A változtatások nincsenek elmentve. -ErrorConfigParameterNotDefined=A %s paraméter nincs definiálva a conf.php Dolibarr configurációs fájlban . +ErrorSomeErrorWereFoundRollbackIsDone=Néhány hibát találtunk. A változtatásokat visszaállították. +ErrorConfigParameterNotDefined=A %s paraméter nincs megadva a Dolibarr conf.php konfigurációs fájljában. ErrorCantLoadUserFromDolibarrDatabase=%s felhasználó nem található a Dolibarr adatbázisban. ErrorNoVATRateDefinedForSellerCountry=Hiba '%s' számára nincs Áfa meghatározva. ErrorNoSocialContributionForSellerCountry=Hiba, nincsenek meghatározva társadalombiztosítási és adóügyi adattípusok a '%s' ország részére. ErrorFailedToSaveFile=Hiba, nem sikerült a fájl mentése. -ErrorCannotAddThisParentWarehouse=Megpróbáltál hozzáadni egy szülőraktárt, amely már létező raktár gyermeke -FieldCannotBeNegative=Field "%s" cannot be negative -MaxNbOfRecordPerPage=Rekorodok maximális száma oldalanként. +ErrorCannotAddThisParentWarehouse=Olyan szülőraktárt próbál hozzáadni, amely már egy meglévő raktár utódja +FieldCannotBeNegative=A "%s" mező nem lehet negatív +MaxNbOfRecordPerPage=Max. rekordok száma oldalanként NotAuthorized=Nincs jogosultsága ehhez a tevékenységhez SetDate=Dátum beállítása SelectDate=Válasszon egy dátumot @@ -78,21 +84,21 @@ ClickHere=Kattintson ide Here=Itt Apply=Alkalmaz BackgroundColorByDefault=Alapértelmezett háttérszin -FileRenamed=A fájl sikeresen átnevezve -FileGenerated=A fájl sikeresen létrehozva -FileSaved=Állomány mentése sikeres +FileRenamed=A fájl sikeresen át lett nevezve +FileGenerated=A fájl létrehozása sikeres volt +FileSaved=A fájl sikeresen elmentve FileUploaded=A fájl sikeresen fel lett töltve -FileTransferComplete=A fájl(ok) sikeresen feltöltve -FilesDeleted=Az állomány(ok) törlése megtörtént +FileTransferComplete=Fájl(ok) sikeresen feltöltve +FilesDeleted=Fájl(ok) sikeresen törölve FileWasNotUploaded=Egy fájl ki lett választva csatolásra, de még nincs feltöltve. Kattintson a "Fájl Csatolása" gombra. NbOfEntries=Bejegyzések száma GoToWikiHelpPage=Online súgó olvasása (Internet hozzáférés szükséges) GoToHelpPage=Segítség olvasása -DedicatedPageAvailable=Dedicated help page related to your current screen -HomePage=Kezdőlap +DedicatedPageAvailable=A jelenlegi képernyőhöz kapcsolódó külön súgóoldal +HomePage=Főoldal RecordSaved=Rekord elmentve RecordDeleted=Rekord törölve -RecordGenerated=Rekord létrehozva +RecordGenerated=Rekord generálva LevelOfFeature=Funkciók szintje NotDefined=Nem meghatározott DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr hitelesítési mód beélítva ehhez %s a conf.php beállító fájlban.
    Ez azt jelenti, hogy ez a jelszó adatbázis Dolibarr rendszertől független, így ennek a mezönek a megváltoztatása nem befolyásoló. @@ -103,7 +109,7 @@ NoAccount=Nincs fiók? SeeAbove=Lásd feljebb HomeArea=Nyitólap LastConnexion=Utolsó bejelentkezés -PreviousConnexion=Előző bejelentkezés +PreviousConnexion=Korábbi bejelentkezés PreviousValue=Előző érték ConnectedOnMultiCompany=Entitáson kapcsolódva ConnectedSince=Kapcslódás kezdete @@ -114,19 +120,19 @@ RequestLastAccessInError=Az utolsó adatbázis hozzáférés hibaüzenete ReturnCodeLastAccessInError=Az utolsó adatbázis hozzáférés hibakódja InformationLastAccessInError=Az utolsó adatbázis hozzáférési hiba leírása DolibarrHasDetectedError=A Dolibarr technikai hibát észlelt -YouCanSetOptionDolibarrMainProdToZero=Elolvashatja a naplófájlt, vagy beállíthatja a $ dolibarr_main_prod opciót '0' értékre a konfigurációs fájlban, hogy további információkat kapjon. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +YouCanSetOptionDolibarrMainProdToZero=Beolvashatja a naplófájlt, vagy beállíthatja a $dolibarr_main_prod beállítást "0"-ra a konfigurációs fájlban, hogy további információkat kapjon. +InformationToHelpDiagnose=Ez az információ hasznos lehet diagnosztikai célokra (az érzékeny információk elrejtéséhez a $dolibarr_main_prod beállítást '1-re állíthatja) MoreInformation=További információ TechnicalInformation=Technikai információk TechnicalID=Technikai azon. -LineID=Sorazonosító +LineID=Vonalazonosító NotePublic=Megjegyzés (nyilvános) NotePrivate=Megjegyzés (privát) PrecisionUnitIsLimitedToXDecimals=Dolibarr beállított pontossági határral az egység árakhoz %s decimálisokkal. DoTest=Teszt ToFilter=Szűrő NoFilter=Nincs szűrő -WarningYouHaveAtLeastOneTaskLate=Figyelem, van legalább egy elem, amely túllépte a toleranciaidőt. +WarningYouHaveAtLeastOneTaskLate=Figyelem, legalább egy olyan eleme van, amely túllépte a tűrésidőt. yes=igen Yes=Igen no=nem @@ -148,9 +154,9 @@ Activate=Aktivál Activated=Aktiválva Closed=Zárva Closed2=Zárva -NotClosed=Nincs lezárva +NotClosed=Nincs zárva Enabled=Bekapcsolt -Enable=Engedélyez +Enable=Engedélyezés Deprecated=Elavult Disable=Letilt Disabled=Kikapcsolva @@ -160,10 +166,10 @@ RemoveLink=Hivatkozás megszüntetése AddToDraft=Adja a vázlathoz Update=Frissítés Close=Zár -CloseAs=Állapot beállítása +CloseAs=Állapot beállítása erre CloseBox=A widget eltávolítása a vezérlőpultról Confirm=Megerősít -ConfirmSendCardByMail=Valóban el akarod küldeni levélben ezt a kártyát %s címre? +ConfirmSendCardByMail=Valóban el akarja küldeni a kártya tartalmát e-mailben a következő címre: %s? Delete=Törlés Remove=Eltávolitás Resiliate=Befejezés @@ -171,16 +177,16 @@ Cancel=Mégse Modify=Módosítás Edit=Szerkesztés Validate=Hitelesítés -ValidateAndApprove=Vizsgálat és elfogadás +ValidateAndApprove=Érvényesítés és jóváhagyás ToValidate=Hitelesyteni -NotValidated=Validálatlan +NotValidated=Nincs érvényesítve Save=Mentés SaveAs=Mentés másként -SaveAndStay=Mentés és maradj +SaveAndStay=Mentés és maradás SaveAndNew=Mentés és új TestConnection=Kapcsolat tesztelése ToClone=Klónozás -ConfirmCloneAsk=Biztosan klónozza az %s objektumot? +ConfirmCloneAsk=Biztosan klónozni akarja a(z) %s objektumot? ConfirmClone=Válassza ki a klónozni kívánt adatokat: NoCloneOptionsSpecified=Nincs klónozandó adat meghatározva. Of=birtokában @@ -192,28 +198,28 @@ Hide=Elrejt ShowCardHere=Kártyát mutat Search=Keres SearchOf=Keres -SearchMenuShortCut=Ctrl + shift + f +SearchMenuShortCut=Ctrl + Shift + f QuickAdd=Gyors hozzáadás -QuickAddMenuShortCut=Ctrl + shift + l +QuickAddMenuShortCut=Ctrl + Shift + l Valid=Hiteles Approve=Jóváhagy -Disapprove=Elvetés -ReOpen=Újra megnyit +Disapprove=Elutasítás +ReOpen=Újranyitás Upload=Feltöltés ToLink=Link Select=Kiválaszt SelectAll=Mindet kiválaszt Choose=Kiválaszt Resize=Átméretezés -ResizeOrCrop=Átméretezés és levágás +ResizeOrCrop=Átméretezés vagy levágás Recenter=Újra középre igazít Author=Szerző User=Felhasználó Users=Felhasználók Group=Csoport Groups=Csoportok -UserGroup=User group -UserGroups=User groups +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 @@ -241,21 +247,22 @@ Info=Napló Family=Család Description=Leírás Designation=Megnevezés -DescriptionOfLine=Leírása vonal +DescriptionOfLine=A vonal leírása DateOfLine=A sor dátuma -DurationOfLine=A sor időtartama +DurationOfLine=A vonal időtartama +ParentLine=Szülővonal azonosítója Model=Dokumentum sablon DefaultModel=Alapértelmezett dokumentum sablon Action=Cselekvés About=Névjegy Number=Szám -NumberByMonth=Összes jelentés havonta +NumberByMonth=Összes jelentés hónaponként AmountByMonth=Összeg havonta Numero=Szám Limit=Határ Limits=Határok Logout=Kijelentkezés -NoLogoutProcessWithAuthMode=Nincs alkalmazható leválasztási szolgáltatás hitelesítési móddal %s +NoLogoutProcessWithAuthMode=Nincs alkalmazásleválasztó funkció %s hitelesítési móddal Connection=Bejelentkezés Setup=Beállítás Alert=Figyelmeztetés @@ -275,10 +282,10 @@ DateStart=Kezdet dátuma DateEnd=Befejezés dátuma DateCreation=Létrehozás dátuma DateCreationShort=Létreh. dátuma -IPCreation=Létrehozás IP +IPCreation=IP létrehozása DateModification=Szerkesztés dátuma DateModificationShort=Szerk. dátuma -IPModification=Modification IP +IPModification=IP módosítása DateLastModification=Utolsó módosítás dátuma DateValidation=Hitelesítés dátuma DateSigning=Aláírás dátuma @@ -298,10 +305,10 @@ DateApprove2=Jóváhagyás dátuma (megerősítés) RegistrationDate=Regisztráció dátuma UserCreation=Felhasználó létrehozása UserModification=Felhasználó módosítása -UserValidation=Érvényes felhasználó -UserCreationShort=Létrehozó felhasználó -UserModificationShort=Módosító felhasználó -UserValidationShort=Érvényes felhasználó +UserValidation=Felhasználó érvényesítése +UserCreationShort=Felhasználó létrehozása +UserModificationShort=Felhasználó módosítása +UserValidationShort=Felhasználó érvényesítése DurationYear=év DurationMonth=hónap DurationWeek=hét @@ -344,7 +351,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 @@ -358,92 +365,92 @@ Default=Alaptértelmezett DefaultValue=Alaptértelmezett érték DefaultValues=Alapértelmezett érték/szűrő/rendezés Price=Ár -PriceCurrency=Ár (valuta) +PriceCurrency=Ár (pénznem) UnitPrice=Egység ár -UnitPriceHT=Egységár (ÁFA nélkül) -UnitPriceHTCurrency=Egységár (ÁFA nélkül) (valuta) +UnitPriceHT=Egységár (kivéve) +UnitPriceHTCurrency=Egységár (kivéve) (pénznem) UnitPriceTTC=Egység ár PriceU=E.Á. PriceUHT=E.Á. (nettó) -PriceUHTCurrency=U.P (net) (currency) +PriceUHTCurrency=E.Á. (nettó) (valuta) PriceUTTC=E.Á. (adóval) Amount=Mennyiség AmountInvoice=Számla mennyiség AmountInvoiced=Számlázott összeg -AmountInvoicedHT=Számlázott összeg (ÁFA nélkül) +AmountInvoicedHT=Számlázott összeg (adó nélkül) AmountInvoicedTTC=Számlázott összeg (adóval együtt) AmountPayment=Fizetés mennyiség -AmountHTShort=Összeg (ÁFA nélkül) +AmountHTShort=Összeg (kivéve) AmountTTCShort=Mennyiség (bruttó) -AmountHT=Összeg (ÁFA nélkül) +AmountHT=Összeg (adó nélkül) AmountTTC=Mennyiség (bruttó) AmountVAT=ÁFA mennyiség -MulticurrencyAlreadyPaid=Már fizetett, eredeti pénznem -MulticurrencyRemainderToPay=Fizetendő, eredeti pénznemben -MulticurrencyPaymentAmount=Fizetendő összeg, eredeti pénznem -MulticurrencyAmountHT=Összeg (ÁFA nélkül), eredeti pénznem -MulticurrencyAmountTTC=Összeg (ÁFA-val), eredeti pénznem -MulticurrencyAmountVAT=ÁFA összeg, eredeti pénznem -MulticurrencySubPrice=Amount sub price multi currency +MulticurrencyAlreadyPaid=Már kifizetett, eredeti pénznem +MulticurrencyRemainderToPay=Még fizetendő, eredeti pénznem +MulticurrencyPaymentAmount=Fizetési összeg, eredeti pénznem +MulticurrencyAmountHT=Összeg (adó nélkül), eredeti pénznem +MulticurrencyAmountTTC=Összeg (adóval együtt), eredeti pénznem +MulticurrencyAmountVAT=Adóösszeg, eredeti pénznem +MulticurrencySubPrice=Összeg alár több pénznemben AmountLT1=ÁFA mennyiség 2 AmountLT2=ÁFA mennyiség 3 AmountLT1ES=RE mennyiség AmountLT2ES=IRPF mennyiség AmountTotal=Teljes mennyiség AmountAverage=Átlag mennyiség -PriceQtyMinHT=Price quantity min. (excl. tax) -PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) +PriceQtyMinHT=Ár mennyiség min. (adó nélkül) +PriceQtyMinHTCurrency=Ár mennyiség min. (adó nélkül) (valuta) PercentOfOriginalObject=Az eredeti objektum százaléka AmountOrPercent=Összeg vagy százalék Percentage=Százalék Total=Végösszeg SubTotal=Részösszeg -TotalHTShort=Összesen (ÁFA nélkül) -TotalHT100Short=Összesen 100%% (ÁFA nélkül) -TotalHTShortCurrency=Összesen (ÁFA nélkül devizában) +TotalHTShort=Összesen (kivéve) +TotalHT100Short=Összesen 100%% (kivéve) +TotalHTShortCurrency=Összesen (deviza nélkül) TotalTTCShort=Végösszeg (bruttó) -TotalHT=Összesen (ÁFA nélkül) -TotalHTforthispage=Az oldal összesen (ÁFA nélkül) +TotalHT=Összesen (adó nélkül) +TotalHTforthispage=Összesen (adó nélkül) ehhez az oldalhoz Totalforthispage=Végösszeg ezen az oldalon TotalTTC=Végösszeg (bruttó) TotalTTCToYourCredit=Végösszeg (bruttó) terhelve az ön számláján TotalVAT=ÁFA összesen -TotalVATIN=IGST összesen +TotalVATIN=Össz. IGST TotalLT1=ÁFA összesen 2 TotalLT2=ÁFA összesen 3 TotalLT1ES=Total RE TotalLT2ES=Total IRPF -TotalLT1IN=CGST összesen -TotalLT2IN=SGST összesen -HT=ÁFA nélkül +TotalLT1IN=Összes CGST +TotalLT2IN=Össz. SGST +HT=Adó nélkül TTC=Bruttó -INCVATONLY=ÁFA-val +INCVATONLY=ÁFA-t tartalmaz INCT=Minden adót tartalmaz VAT=ÁFA VATIN=IGST -VATs=Értékesítést terhelő adók +VATs=Forgalmi adók VATINs=IGST adók LT1=Forgalmi adó 2 -LT1Type=Forgalmi adó 2 típus +LT1Type=2. forgalmi adó típusa LT2=Forgalmi adó 3 -LT2Type=Forgalmi adó 3 típus +LT2Type=3. forgalmi adó típusa LT1ES=RE LT2ES=IRPF LT1IN=CGST LT2IN=SGST -LT1GC=Kiegészítő összeg +LT1GC=További cent VATRate=ÁFA érték -RateOfTaxN=Rate of tax %s -VATCode=Adószám kód -VATNPR=NPR adó mértéke -DefaultTaxRate=Alapértelmezett adómérték +RateOfTaxN=%s adó mértéke +VATCode=Adókulcs kódja +VATNPR=Adókulcs NPR +DefaultTaxRate=Alapértelmezett adókulcs Average=Átlag Sum=Szumma Delta=Delta StatusToPay=Fizetni -RemainToPay=Még fizetendő +RemainToPay=Még fizetni kell Module=Modul/Alkalmazás -Modules=Modulok/alkalmazások +Modules=Modulok/Alkalmazások Option=Opció Filters=Szűrők List=Lista @@ -456,7 +463,7 @@ Favorite=Kedvenc ShortInfo=Info. Ref=Ref. ExternalRef=Külső hivatkozás -RefSupplier=Kapcsolt eladó +RefSupplier=Referencia szállító RefPayment=Fizetési Ref. CommercialProposalsShort=Üzleti ajánlatok Comment=Megjegyzés @@ -469,24 +476,24 @@ ActionRunningNotStarted=Nincs elkezdve ActionRunningShort=Folyamatban ActionDoneShort=Befejezett ActionUncomplete=Befejezetlen -LatestLinkedEvents=A legutóbbi %s kapcsolódó esemény(ek) -CompanyFoundation=Cég / Szervezet +LatestLinkedEvents=A legutóbbi %s kapcsolt események +CompanyFoundation=Vállalat/Szervezet Accountant=Könyvelő ContactsForCompany=Kapcsolat/cím ehhez a harmadik félhez ContactsAddressesForCompany=Kapcsolat/cím ehhez a harmadik félhez AddressesForCompany=Cím ehhez a harmadik félhez -ActionsOnCompany=Események ennek a harmadik félnek -ActionsOnContact=Események ehhez a kapcsolattartóhoz / címhez +ActionsOnCompany=Események ehhez a harmadik félhez +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 erről a termékről +ActionsOnProduct=Események ezzel a termékkel kapcsolatban NActionsLate=%s késés -ToDo=Tennivaló +ToDo=Teendő Completed=Befejezve Running=Folyamatban RequestAlreadyDone=A kérés már rögzítve Filter=Szűrő -FilterOnInto=Keresési kritériumok: ' %s ', az %s mezőkbe +FilterOnInto=Keresési feltételek '%s' a %s mezőkbe RemoveFilter=Szűrő eltávolítása ChartGenerated=Grafikon generálva ChartNotGenerated=Grafikon nincs generálva @@ -495,9 +502,9 @@ Generate=Generálás Duration=Időtartam TotalDuration=Teljes időtartam Summary=Összefoglalás -DolibarrStateBoard=Adatbázis statisztikák -DolibarrWorkBoard=Nyitott elemek -NoOpenedElementToProcess=Nincs feldolgozandó elem +DolibarrStateBoard=Adatbázis-statisztika +DolibarrWorkBoard=Elemek megnyitása +NoOpenedElementToProcess=Nincs feldolgozandó nyitott elem Available=Elérhető NotYetAvailable=Még nem elérhető NotAvailable=Nem elérhető @@ -517,6 +524,7 @@ or=vagy Other=Más Others=Mások OtherInformations=Egyéb információk +Workflow=Munkafolyamat Quantity=Mennyiség Qty=Menny. ChangedBy=Módosította @@ -532,10 +540,10 @@ Draft=Piszkozat Drafts=Piszkozatok StatusInterInvoiced=Számlázva Validated=Hitelesítve -ValidatedToProduce=Érvényesítve (gyártáshoz) -Opened=Nyitott -OpenAll=Megnyitás (összes) -ClosedAll=Bezárás (összes) +ValidatedToProduce=Érvényesített (előállításhoz) +Opened=Nyitva +OpenAll=Megnyitás (Minden) +ClosedAll=Zárva (minden) New=Új Discount=Kedvezmény Unknown=Ismeretlen @@ -546,7 +554,7 @@ Received=Kapott Paid=Fizetett Topic=Tárgy ByCompanies=Harmadik fél által -ByUsers=Felhasználó által +ByUsers=Felhasználó szerint Links=Linkek Link=Link Rejects=Selejtek @@ -555,9 +563,9 @@ NextStep=Következő lépés Datas=Adat None=Nincs NoneF=Nincs -NoneOrSeveral=Egyik sem +NoneOrSeveral=Nincs vagy több Late=Késő -LateDesc=Az elem késleltetettnek minősül, a rendszerkonfigurációnak megfelelően a Kezdőlap - Beállítások - Figyelmeztetések menüben. +LateDesc=Egy elem Késleltetettként van definiálva a Kezdőlap - Beállítás - Figyelmeztetések menü rendszerkonfigurációja szerint. NoItemLate=Nincs késői tétel Photo=Kép Photos=Képek @@ -618,7 +626,8 @@ MonthVeryShort10=O MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Csatolt fájlok és dokumentumok -JoinMainDoc=Csatlakozzon a fő dokumentumhoz +JoinMainDoc=Csatlakozás a fő dokumentumhoz +JoinMainDocOrLastGenerated=Ha nem található, küldje el a fő dokumentumot vagy az utoljára generált dokumentumot DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -627,7 +636,7 @@ ReportPeriod=Jelentés periódusa ReportDescription=Leírás Report=Jelentés Keyword=Kulcsszó -Origin=Származás +Origin=Eredet Legend=Jelmagyarázat Fill=Kitölt Reset=Nulláz @@ -643,14 +652,14 @@ FindBug=Hiba jelentése NbOfThirdParties=Harmadik felek száma NbOfLines=Sorok száma NbOfObjects=Objektumok szMa -NbOfObjectReferers=Hivatkozott tételek száma +NbOfObjectReferers=Kapcsolódó elemek száma Referers=Kapcsolódó elemek TotalQuantity=Teljes mennyiség DateFromTo=%s -től %s -ig DateFrom=%s -től DateUntil=%s -ig Check=Ellenőriz -Uncheck=Kijelölés megszüntetése +Uncheck=Kijelölés törlése Internal=Belső External=Külső Internals=Belső @@ -661,18 +670,18 @@ BuildDoc=Dokumentum generálása Entity=Környezet Entities=Entitások CustomerPreview=Ügyfél előnézet -SupplierPreview=Eladói előnézet +SupplierPreview=Szállító előnézete ShowCustomerPreview=Ügyfél előnézet mutatása -ShowSupplierPreview=Eladói előnézet megjelenítése +ShowSupplierPreview=Szállító előnézetének megjelenítése RefCustomer=Ügyfél Ref. -InternalRef=Internal ref. +InternalRef=Belső hivatkozás Currency=Pénznem InfoAdmin=Információ adminisztrátorok számára Undo=Visszacsinál Redo=újracsinál ExpandAll=Az összes kibontása UndoExpandAll=Kibontás visszavonsáa -SeeAll=Minden megjelenítése +SeeAll=Az összes megtekintése Reason=Ok FeatureNotYetSupported=Még nem támogatott funkció CloseWindow=Ablak bezárása @@ -680,14 +689,14 @@ Response=Válasz Priority=Prioritás SendByMail=Küldés e-mailben MailSentBy=Email feladója -NotSent=Nem küldött +NotSent=Nem küldték el TextUsedInTheMessageBody=Email tartalma SendAcknowledgementByMail=Megerősítő email küldése SendMail=E-mail küldése Email=E-mail NoEMail=Nincs email -AlreadyRead=Már elolvasott -NotRead=Nem olvasott +AlreadyRead=Már olvastam +NotRead=Olvasatlan NoMobilePhone=Nincs mobilszám Owner=Tulajdonos FollowingConstantsWillBeSubstituted=Az alábbi konstansok helyettesítve leszenek a hozzájuk tartozó értékekkel. @@ -701,40 +710,41 @@ ValueIsValid=Az érték érvényes ValueIsNotValid=Hibás érték RecordCreatedSuccessfully=A rekord sikeresen létrehozva RecordModifiedSuccessfully=A rekord sikeresen módosítva lett -RecordsModified=%s rekord (ok) módosítva -RecordsDeleted=%s rekord (ok) törölve -RecordsGenerated=%s rekord (ok) létrehozva +RecordsModified=%s rekord(ok) módosítva +RecordsDeleted=%s rekord(ok) törölve +RecordsGenerated=%s rekord(ok) generálva AutomaticCode=Automatikus kód 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 -CompleteOrNoMoreReceptionExpected=Teljes, vagy semmi több várható -ExpectedValue=Várt érték +CompleteOrNoMoreReceptionExpected=Teljes vagy semmi több +ExpectedValue=Várható érték ExpectedQty=Várható mennyiség PartialWoman=Részleges TotalWoman=Összes NeverReceived=Soha nem került átvételre Canceled=Megszakítva YouCanChangeValuesForThisListFromDictionarySetup=A lista értékeit a Beállítás - Szótárak menüben módosíthatja -YouCanChangeValuesForThisListFrom=A lista értékeit az %s menüben módosíthatja -YouCanSetDefaultValueInModuleSetup=Beállíthatja az alapértelmezett értéket, amikor a modul beállításában új rekordot hoz létre +YouCanChangeValuesForThisListFrom=A lista értékeit a %s menüből módosíthatja +YouCanSetDefaultValueInModuleSetup=Beállíthatja az új rekord létrehozásakor használt alapértelmezett értéket a modul beállításában Color=Szín Documents=Kapcsolt fájlok Documents2=Dokumentumok UploadDisabled=Feltöltés kikapcsolva -MenuAccountancy=Könyvelés +MenuAccountancy=Számvitel MenuECM=Dokumentumok MenuAWStats=AWStats MenuMembers=Tagok MenuAgendaGoogle=Google naptár MenuTaxesAndSpecialExpenses=Adók | Különleges kiadások 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 +ThisLimitIsDefinedInSetupAt=Dolibarr határ (%s menü): %s Kb, PHP határ (%s paraméter): %s Kb +NoFileFound=Nincs feltöltött dokumentum CurrentUserLanguage=Jelenlegi nyelv CurrentTheme=Jelenlegi téma CurrentMenuManager=Jelenlegi menü-menedzser @@ -749,39 +759,39 @@ DateOfSignature=Kelt HidePassword=Parancs mutatása rejtett jelszóval UnHidePassword=Igazi parancs mutatása üres jelszóval Root=Gyökér -RootOfMedias=Publikus médiakönyvtár (/medias) +RootOfMedias=A nyilvános média gyökerei (/medias) Informations=Információ Page=Oldal Notes=Megjegyzés AddNewLine=Új sor hozzáadása AddFile=Fájl hozzáadása -FreeZone=Szabad szöveges termék -FreeLineOfType=Szabad szöveges leírás, válassz típust: +FreeZone=Szabad szövegű termék +FreeLineOfType=Szabad szövegű elem, típus: CloneMainAttributes=Objektum klónozása a főbb jellemzőivel ReGeneratePDF=PDF újragenerálása PDFMerge=PDF összeolvasztás Merge=Összeolvasztás -DocumentModelStandardPDF=Szabványos PDF sablon +DocumentModelStandardPDF=Szabványos PDF-sablon PrintContentArea=Show page to print main content area MenuManager=Menü-menedzser -WarningYouAreInMaintenanceMode=Figyelem, karbantartási módban van: csak %s bejelentkezés engedélyezett ebben az üzemmódban. +WarningYouAreInMaintenanceMode=Figyelem, Ön karbantartási módban van: ebben a módban csak a(z) %s bejelentkezés engedélyezett. CoreErrorTitle=Rendszerhiba CoreErrorMessage=Sajnálatos hiba történt. Lépjen kapcsolatba a rendszergazdával a naplófájlok megtekintéséhez vagy állítsa 0-ra a $dolibarr_main_prod=1 paramétert részletesebb információkért ! CreditCard=Hitelkártya -ValidatePayment=Jóváhagyott fizetés -CreditOrDebitCard=Hitel- vagy bankkártya +ValidatePayment=Fizetés érvényesítése +CreditOrDebitCard=Hitel- vagy betéti kártya FieldsWithAreMandatory=%s-al jelölt mezők kötelezőek -FieldsWithIsForPublic=Az %s mezők szerepelnek a tagok nyilvános listájában. Ha nem akarja, akkor törölje a "nyilvános" négyzetet. +FieldsWithIsForPublic=A(z) %s mezők megjelennek a nyilvános taglistán. Ha nem szeretné ezt, törölje a jelölést a „nyilvános” négyzetből. AccordingToGeoIPDatabase=(a GeoIP konverzió szerint) Line=Sor NotSupported=Nincs támogatva RequiredField=Szükséges mező Result=Eredmény ToTest=Teszt -ValidateBefore=A funkció használata előtt ezt az elemet érvényesíteni kell +ValidateBefore=Az elemet érvényesíteni kell a szolgáltatás használata előtt Visibility=Láthatóság Totalizable=Összesíthető -TotalizableDesc=Ez a mező összesíthető a listában +TotalizableDesc=Ez a mező összegezhető a listában Private=Privát Hidden=Rejtett Resources=Erőforrás @@ -797,24 +807,24 @@ AttributeCode=Attribútum kód URLPhoto=Url fotó / logo SetLinkToAnotherThirdParty=Link egy másik harmadik fél LinkTo=Hivatkozás erre: -LinkToProposal=Link a javaslathoz -LinkToOrder=Link a rendelésre +LinkToProposal=Link az ajánlathoz +LinkToOrder=Link a rendeléshez LinkToInvoice=Link a számlához -LinkToTemplateInvoice=Link a sablon számlához -LinkToSupplierOrder=Link a megrendeléshez -LinkToSupplierProposal=Link az eladó ajánlatához -LinkToSupplierInvoice=Link az eladó számlához +LinkToTemplateInvoice=Hivatkozás a sablonszámlához +LinkToSupplierOrder=Link a beszerzési rendeléshez +LinkToSupplierProposal=Link a szállítói ajánlathoz +LinkToSupplierInvoice=Link a szállítói számlához LinkToContract=Link a szerződéshez -LinkToIntervention= Link a beavatkozáshoz +LinkToIntervention=Link a beavatkozáshoz LinkToTicket=Link a jegyhez -LinkToMo=Link to Mo +LinkToMo=Link az MO-hoz CreateDraft=Tervezet készítése SetToDraft=Vissza a vázlathoz ClickToEdit=Kattintson a szerkesztéshez ClickToRefresh=Kattintson a frissítéshez -EditWithEditor=Szerkesztés CKEditorral +EditWithEditor=Szerkesztés a CKEditorral EditWithTextEditor=Szerkesztés szövegszerkesztővel -EditHTMLSource=HTML forrás szerkesztése +EditHTMLSource=HTML-forrás szerkesztése ObjectDeleted=Az %s objektum törölve ByCountry=Ország szerint ByTown=Város szerint @@ -826,130 +836,130 @@ ByDay=Nappal BySalesRepresentative=Az értékesítési képviselő LinkedToSpecificUsers=Hozzárendelve egy adott felhasználói kapcsolathoz NoResults=Nincs eredmény -AdminTools=Rendszergazda eszközök +AdminTools=Felügyeleti eszközök SystemTools=Rendszereszközök ModulesSystemTools=Modul eszközök Test=Teszt Element=Elem NoPhotoYet=Nem érhető el még fénykép Dashboard=Vezérlőpult -MyDashboard=Irányítópult +MyDashboard=Saját irányítópult Deductible=Levonható from=tól toward=felé Access=Hozzáférés SelectAction=Válasszon tevékenységet -SelectTargetUser=Válassza ki a cél felhasználót / alkalmazottat +SelectTargetUser=Cél felhasználó/alkalmazott kiválasztása HelpCopyToClipboard=Használja a Ctrl+C kombinációt a vágólapra másoláshoz -SaveUploadedFileWithMask=Fájl mentése a kiszolgálóra " %s " néven (egyébként "%s") +SaveUploadedFileWithMask=Fájl mentése a szerveren "%s" néven (egyébként "%s") OriginFileName=Eredeti fájlnév SetDemandReason=Forrás beállítása SetBankAccount=Bankszámla megadása -AccountCurrency=Bankszámla pénzneme +AccountCurrency=Számla pénzneme ViewPrivateNote=Megjegyzések XMoreLines=%s sor rejtve maradt -ShowMoreLines=Több / kevesebb sor megjelenítése +ShowMoreLines=Több/kevesebb sor megjelenítése PublicUrl=Nyílvános URL AddBox=Doboz hozzáadása -SelectElementAndClick=Select an element and click on %s +SelectElementAndClick=Válasszon ki egy elemet, és kattintson a %s elemre PrintFile=%s fájl nyomtatása ShowTransaction=Bejegyzés megjelenítése a bankszámlán -ShowIntervention=Mutasd beavatkozás -ShowContract=Szerződés mutatása -GoIntoSetupToChangeLogo=Ugrás a Kezdőlapra - Beállítás - Vállalatra a logó megváltoztatásához, vagy a Kezdőlaphoz - Beállítás - Megjelenítés helyre az elrejtéshez. +ShowIntervention=A beavatkozás megjelenítése +ShowContract=Szerződés megjelenítése +GoIntoSetupToChangeLogo=Lépjen a Főoldalra - Beállítás - Vállalat a logó megváltoztatásához, vagy lépjen a Kezdőlapra - Beállítás - Megjelenítés az elrejtéshez. Deny=Elutasít Denied=Elutasítva -ListOf=A következők listája: %s +ListOf=%s listája ListOfTemplates=Sablonok listája Gender=Nem Genderman=Férfi Genderwoman=Nő Genderother=Egyéb ViewList=Lista megtekintése -ViewGantt=Gantt-nézet +ViewGantt=Gantt nézet ViewKanban=Kanban nézet Mandatory=Kötelező kitölteni Hello=Hello -GoodBye=Viszontlátásra +GoodBye=Viszlát Sincerely=Tisztelettel -ConfirmDeleteObject=Biztosan törli ezt az objektumot? +ConfirmDeleteObject=Biztosan törölni szeretné ezt az objektumot? DeleteLine=Sor törlése ConfirmDeleteLine=Biztos, hogy törölni akarja ezt a sort ? -ErrorPDFTkOutputFileNotFound=Hiba: a fájl nem lett létrehozva. Kérjük, ellenőrizze, hogy a 'pdftk' parancs telepítve van-e a $PATH környezeti változóban található könyvtárba (csak linux/unix), vagy vegye fel a kapcsolatot a rendszergazdával. -NoPDFAvailableForDocGenAmongChecked=Az ellenőrzött rekordok között nem volt elérhető PDF a dokumentum előállításához -TooManyRecordForMassAction=Túl sok rekord van kiválasztva a tömeges művelethez. A művelet %s rekord listájára korlátozódik. -NoRecordSelected=Nincs kiválasztva rekord -MassFilesArea=A tömeges műveletek által létrehozott fájlok területe -ShowTempMassFilesArea=Mutassa a tömeges műveletek által létrehozott fájlok területét +ErrorPDFTkOutputFileNotFound=Hiba: a fájl nem jött létre. Kérjük, ellenőrizze, hogy a 'pdftk' parancs a $PATH környezeti változóban található könyvtárba van-e telepítve (csak linux/unix), vagy forduljon a rendszergazdához. +NoPDFAvailableForDocGenAmongChecked=Nem volt elérhető PDF a dokumentum generálásához az ellenőrzött rekordok között +TooManyRecordForMassAction=Túl sok rekord van kiválasztva tömeges akcióhoz. A művelet a %s rekordok listájára korlátozódik. +NoRecordSelected=Nincs rekord kiválasztva +MassFilesArea=Tömeges műveletek által létrehozott fájlok területe +ShowTempMassFilesArea=A tömeges műveletek által létrehozott fájlok területének megjelenítése ConfirmMassDeletion=Tömeges törlés megerősítése -ConfirmMassDeletionQuestion=Biztosan törli az %s kiválasztott rekordot/rekordokat? +ConfirmMassDeletionQuestion=Biztosan törölni szeretné a %s kiválasztott rekordo(ka)t? RelatedObjects=Kapcsolódó objektumok ClassifyBilled=Minősítse kiszámlázottként -ClassifyUnbilled=Minősítse nem számlázottnak +ClassifyUnbilled=Számlázatlan osztályozás Progress=Előrehaladás -ProgressShort=Progr. -FrontOffice=Ügyfélkapcsolati részleg +ProgressShort=Haladás +FrontOffice=Első iroda BackOffice=Támogató iroda -Submit=Beküldés -View=Megnéz +Submit=Küldés +View=Nézet Export=Export Exports=Export -ExportFilteredList=Exportálja a szűrt listát -ExportList=Export lista -ExportOptions=Export opciók -IncludeDocsAlreadyExported=Beleértve a már exportált dokumentumokat -ExportOfPiecesAlreadyExportedIsEnable=A már exportált részek exportálása engedélyezve van -ExportOfPiecesAlreadyExportedIsDisable=A már exportált részek exportálása le van tiltva -AllExportedMovementsWereRecordedAsExported=Az összes exportált szállítást exportáltként rögzítve -NotAllExportedMovementsCouldBeRecordedAsExported=Nem minden exportált szállítást lehetett exportáltként rögzíteni +ExportFilteredList=Szűrt lista exportálása +ExportList=Lista exportálása +ExportOptions=Exportálási beállítások +IncludeDocsAlreadyExported=A már exportált dokumentumokat tartalmazza +ExportOfPiecesAlreadyExportedIsEnable=A már exportált darabok exportálása engedélyezett +ExportOfPiecesAlreadyExportedIsDisable=A már exportált darabok exportálása le van tiltva +AllExportedMovementsWereRecordedAsExported=Minden exportált mozgás exportáltként lett rögzítve +NotAllExportedMovementsCouldBeRecordedAsExported=Nem minden exportált mozgás rögzíthető exportáltként Miscellaneous=Vegyes Calendar=Naptár -GroupBy=Csoportosít... -ViewFlatList=Lapos lista megtekintése +GroupBy=Csoportosítás... +ViewFlatList=Sík lista megtekintése ViewAccountList=Főkönyv megtekintése -ViewSubAccountList=Alszámlák megtekintése -RemoveString=Távolítsa el a '%s' karakterláncot -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. +ViewSubAccountList=Alszámla főkönyv megtekintése +RemoveString=A '%s' karakterlánc eltávolítása +SomeTranslationAreUncomplete=Egyes felajánlott nyelvek csak részben vannak lefordítva, vagy hibákat tartalmazhatnak. Kérjük, segítsen a nyelvezet javításában úgy, hogy regisztrál a https://transifex.com/ oldalon. Projects/p/dolibarr/, hogy hozzáadja a fejlesztéseket. DirectDownloadLink=Nyilvános letöltési link -PublicDownloadLinkDesc=Only the link is required to download the file +PublicDownloadLinkDesc=Csak a hivatkozásra van szükség a fájl letöltéséhez DirectDownloadInternalLink=Privát letöltési link -PrivateDownloadLinkDesc=You need to be logged and you need permissions to view or download the file +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 ActualizeCurrency=Árfolyam frissítése Fiscalyear=Pénzügyi év -ModuleBuilder=Modul és alkalmazáskészítő -SetMultiCurrencyCode=Állítsa be a pénznemet +ModuleBuilder=Modul- és alkalmazáskészítő +SetMultiCurrencyCode=Pénznem beállítása BulkActions=Tömeges műveletek -ClickToShowHelp=Kattintson az eszköztipp-súgó megjelenítéséhez -WebSite=Weboldal -WebSites=Weboldalak -WebSiteAccounts=Webhely-fiókok +ClickToShowHelp=Kattintson az eszköztipp súgójának megjelenítéséhez +WebSite=Webhely +WebSites=Webhelyek +WebSiteAccounts=Webhelyfiókok ExpenseReport=Költségjelentés -ExpenseReports=Költség kimutatások -HR=Személyügy +ExpenseReports=Költségjelentések +HR=Munkaügy HRAndBank=HR és Bank -AutomaticallyCalculated=Automatikusan számolva -TitleSetToDraft=Vissza a vázlathoz -ConfirmSetToDraft=Biztos benne, hogy vissza szeretne térni a Vázlat állapotba? -ImportId=Import azonosító -Events=Cselekvések +AutomaticallyCalculated=Automatikusan számítva +TitleSetToDraft=Vissza a piszkozathoz +ConfirmSetToDraft=Biztosan vissza akar térni a Vázlat állapothoz? +ImportId=Importálási azonosító +Events=Események EMailTemplates=E-mail sablonok -FileNotShared=A fájlt nem osztották meg a külső nyilvánossággal -Project=Projekt +FileNotShared=A fájl nincs megosztva külső nyilvánosan +Project=Project Projects=Projektek -LeadOrProject=Vezető | Projekt -LeadsOrProjects=Vezetők | Projektek -Lead=Vezető -Leads=Vezetők -ListOpenLeads=Vezetők listája -ListOpenProjects=Projektek listája -NewLeadOrProject=Új vezető vagy projekt +LeadOrProject=Lehetőség | Projekt +LeadsOrProjects=Lehetőségek | Projektek +Lead=Lehetőség +Leads=Lehetőségek +ListOpenLeads=Nyitott lehetőségek listázása +ListOpenProjects=Nyitott projektek listázása +NewLeadOrProject=Új lehetőség vagy projekt Rights=Engedélyek -LineNb=Sorszám -IncotermLabel=Nemzetközi kereskedelmi feltételek -TabLetteringCustomer=Ügyfél levelek -TabLetteringSupplier=Szállítói levelek +LineNb=Vonalszám +IncotermLabel=Incoterms +TabLetteringCustomer=Ügyfél feliratozása +TabLetteringSupplier=Szállítói feliratok Monday=Hétfő Tuesday=Kedd Wednesday=Szerda @@ -1011,156 +1021,169 @@ million=millió billion=milliárd trillion=billió quadrillion=kvadrillió -SelectMailModel=Válasszon egy e-mail sablont -SetRef=Set ref -Select2ResultFoundUseArrows=Találati lista. Használja a nyilakat a kiválasztáshoz. +SelectMailModel=Válasszon ki egy e-mail sablont +SetRef=Referencia beállítása +Select2ResultFoundUseArrows=Néhány eredmény található. Használja a nyilakat a kiválasztásához. Select2NotFound=Nincs találat Select2Enter=Enter -Select2MoreCharacter=vagy több betű +Select2MoreCharacter=vagy több karakter Select2MoreCharacters=vagy több karakter -Select2MoreCharactersMore=  Keresési szintaxis:
    | VAGY (a | b)
    * Bármely karakter (a * b)
    ^ Indítás (^ ab)
    $ End ( ab $)
    +Select2MoreCharactersMore=Keresési szintaxis:
    | VAGY (a|b)
    < strong>*
    Bármely karakter (a*b)
    ^ Kezdje ezzel: (^ab)
    $ A vége a következővel: (ab$)
    Select2LoadingMoreResults=További eredmények betöltése... Select2SearchInProgress=Keresés folyamatban... -SearchIntoThirdparties=Partner +SearchIntoThirdparties=Harmadik felek SearchIntoContacts=Kapcsolatok SearchIntoMembers=Tagok SearchIntoUsers=Felhasználók SearchIntoProductsOrServices=Termékek vagy Szolgáltatások -SearchIntoBatch=Tételek / Sorozatok +SearchIntoBatch=Tétek / sorozatok SearchIntoProjects=Projektek SearchIntoMO=Gyártási rendelések SearchIntoTasks=Tennivalók SearchIntoCustomerInvoices=Ügyfél számlák SearchIntoSupplierInvoices=Szállítói számlák -SearchIntoCustomerOrders=Értékesítési megrendelések -SearchIntoSupplierOrders=Megrendelések -SearchIntoCustomerProposals=Üzleti ajánlatok -SearchIntoSupplierProposals=Szállítói javaslatok +SearchIntoCustomerOrders=Értékesítési rendelések +SearchIntoSupplierOrders=Beszerzési rendelések +SearchIntoCustomerProposals=Kereskedelmi ajánlatok +SearchIntoSupplierProposals=Szállítói ajánlatok SearchIntoInterventions=Beavatkozások SearchIntoContracts=Szerződések SearchIntoCustomerShipments=Vásárlói kiszállítások SearchIntoExpenseReports=Költség kimutatások -SearchIntoLeaves=Elhagy +SearchIntoLeaves=Hagyd el SearchIntoTickets=Jegyek -SearchIntoCustomerPayments=Ügyfél befizetések -SearchIntoVendorPayments=Szállítói kifizetések -SearchIntoMiscPayments=Egyéb fizetések -CommentLink=Megjegyzéske +SearchIntoCustomerPayments=Vásárlói fizetések +SearchIntoVendorPayments=Szállítói fizetések +SearchIntoMiscPayments=Vegyes fizetések +CommentLink=Megjegyzések NbComments=Megjegyzések száma -CommentPage=Megjegyzés helye +CommentPage=Megjegyzések területe CommentAdded=Megjegyzés hozzáadva -CommentDeleted=A megjegyzés törölve +CommentDeleted=Megjegyzés törölve Everybody=Mindenki -PayedBy=Fizetve -PayedTo=Fizetett +PayedBy=Fizetett +PayedTo=Kifizetett Monthly=Havi -Quarterly=Negyedévi -Annual=Évi +Quarterly=Negyedévente +Annual=Éves Local=Helyi Remote=Távoli LocalAndRemote=Helyi és távoli KeyboardShortcut=Billentyűparancs AssignedTo=Hozzárendelve -Deletedraft=Vázlat törlése -ConfirmMassDraftDeletion=Vázlatok tömeges törlésének megerősítése -FileSharedViaALink=Fájl nyilvános linkkel megosztva -SelectAThirdPartyFirst=Először válassza ki a harmadik felet ... +Deletedraft=Piszkozat törlése +ConfirmMassDraftDeletion=Piszkozat tömeges törlésének megerősítése +FileSharedViaALink=Nyilvános hivatkozással megosztott fájl +SelectAThirdPartyFirst=Először válasszon ki egy harmadik felet... YouAreCurrentlyInSandboxMode=Jelenleg %s "sandbox" módban van Inventory=Készletnyilvántartás -AnalyticCode=Analitikai kód +AnalyticCode=Analitikus kód TMenuMRP=MRP -ShowCompanyInfos=Mutassa be a cég adatait -ShowMoreInfos=További infók megjelenítése -NoFilesUploadedYet=Először töltsön fel egy dokumentumot +ShowCompanyInfos=Cégadatok megjelenítése +ShowMoreInfos=További információk megjelenítése +NoFilesUploadedYet=Kérjük, először töltsön fel egy dokumentumot SeePrivateNote=Lásd a privát jegyzetet PaymentInformation=Fizetési információ -ValidFrom=Érvényes (-tól) -ValidUntil=Érvényes (-ig) +ValidFrom=Érvényes innen +ValidUntil=Érvényes eddig NoRecordedUsers=Nincs felhasználó ToClose=Bezárni ToRefuse=Elutasítani -ToProcess=Feldolgozni -ToApprove=Jóváhagyásra +ToProcess=Feldolgozás +ToApprove=Jóváhagyni GlobalOpenedElemView=Globális nézet -NoArticlesFoundForTheKeyword=Nem található cikk a(z) ' %s ' kulcsszóra -NoArticlesFoundForTheCategory=A kategóriában nem található cikk -ToAcceptRefuse=Elfogad | megtagad -ContactDefault_agenda=Cselekvés -ContactDefault_commande=Megrendelés +NoArticlesFoundForTheKeyword=Nem található cikk a '%s' kulcsszóra +NoArticlesFoundForTheCategory=Nem található cikk a kategóriában +ToAcceptRefuse=Elfogadni | elutasítani +ContactDefault_agenda=Esemény +ContactDefault_commande=Rendelés ContactDefault_contrat=Szerződés ContactDefault_facture=Számla -ContactDefault_fichinter=Intervenció +ContactDefault_fichinter=Beavatkozás ContactDefault_invoice_supplier=Szállítói számla -ContactDefault_order_supplier=Rendelés +ContactDefault_order_supplier=Megrendelés ContactDefault_project=Projekt ContactDefault_project_task=Feladat -ContactDefault_propal=Javaslat -ContactDefault_supplier_proposal=Beszállítói javaslat +ContactDefault_propal=Ajánlat +ContactDefault_supplier_proposal=Szállítói ajánlat ContactDefault_ticket=Jegy -ContactAddedAutomatically=Kapcsolattartó hozzáadva a kapcsolattartó harmadik féltől +ContactAddedAutomatically=Kapcsolat hozzáadva a kapcsolattartó harmadik fél szerepköréből More=Több ShowDetails=Részletek megjelenítése CustomReports=Egyéni jelentések -StatisticsOn=Statisztikák bekapcsolva -SelectYourGraphOptionsFirst=Válassza ki a grafikon beállításait a grafikon felépítéséhez -Measures=Méretek +StatisticsOn=Statisztika bekapcsolva +SelectYourGraphOptionsFirst=Válassza ki a grafikon beállításait a grafikon létrehozásához +Measures=Mérések XAxis=X-tengely YAxis=Y-tengely -StatusOfRefMustBe=Az %s állapotának %s kell lennie -DeleteFileHeader=A fájl törlésének megerősítése -DeleteFileText=Tényleg törölni szeretné ezt a fájlt? -ShowOtherLanguages=További nyelvek megjelenítése -SwitchInEditModeToAddTranslation=Váltson szerkesztési módba, ha fordításokat szeretne hozzáadni ehhez a nyelvhez -NotUsedForThisCustomer=Ehhez az ügyfélhez nem használt +StatusOfRefMustBe=A %s állapotának %snak kell lennie +DeleteFileHeader=Fájl törlésének megerősítése +DeleteFileText=Valóban törölni szeretné ezt a fájlt? +ShowOtherLanguages=Más nyelvek megjelenítése +SwitchInEditModeToAddTranslation=Váltson szerkesztési módba fordítások hozzáadásához ehhez a nyelvhez +NotUsedForThisCustomer=Nem használt ennél az ügyfélnél AmountMustBePositive=Az összegnek pozitívnak kell lennie -ByStatus=Státusz szerint +ByStatus=Állapot szerint InformationMessage=Információ Used=Használt -ASAP=Amint lehetséges +ASAP=A lehető leghamarabb CREATEInDolibarr=%s rekord létrehozva MODIFYInDolibarr=%s rekord módosítva DELETEInDolibarr=%s rekord törölve VALIDATEInDolibarr=%s rekord érvényesítve APPROVEDInDolibarr=%s rekord jóváhagyva -DefaultMailModel=Alapértelmezett levélminta -PublicVendorName=Az szállító nyilvános neve -DateOfBirth=Dátum a születési -SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Security token has expired, so action has been canceled. Please try again. -UpToDate=Naprakész -OutOfDate=Lejárt +DefaultMailModel=Alapértelmezett levelezési modell +PublicVendorName=A szállító nyilvános neve +DateOfBirth=Születési dátum +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=A biztonsági token lejárt, ezért a művelet megszakadt. Kérlek próbáld újra. +UpToDate=Aktuális +OutOfDate=Elavult EventReminder=Esemény emlékeztető -UpdateForAllLines=Frissítés minden sort -OnHold=Tartva -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 +UpdateForAllLines=Frissítés minden vonalhoz +OnHold=Tart +Civility=Udvariasság +AffectTag=Címke hozzárendelése +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? +CategTypeNotFound=Nem található címketípus a rekordtípusokhoz CopiedToClipboard=Vágólapra másolva -InformationOnLinkToContract=This amount is only the total of all the lines of the contract. No notion of time is taken into consideration. -ConfirmCancel=Biztosan érvényteleníteni akarod -EmailMsgID=Email MsgID -SetToEnabled=Állítsa be engedélyezve +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ó +SetToEnabled=Engedélyezve SetToDisabled=Letiltva -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 +ConfirmMassEnabling=tömegengedélyezés megerősítése +ConfirmMassEnablingQuestion=Biztosan engedélyezi a %s kiválasztott rekordo(ka)t? +ConfirmMassDisabling=tömeges letiltás megerősítése +ConfirmMassDisablingQuestion=Biztosan letiltja a %s kiválasztott rekordo(ka)t? +RecordsEnabled=%s rekord(ok) engedélyezve +RecordsDisabled=%s rekord letiltva +RecordEnabled=Rögzítés engedélyezve +RecordDisabled=A felvétel letiltva +Forthcoming=Közelgő Currently=Jelenleg -ConfirmMassLeaveApprovalQuestion=Are you sure you want to approve the %s selected record(s)? -ConfirmMassLeaveApproval=Mass leave approval confirmation -RecordAproved=A rekord jóváhagyva -RecordsApproved=%s Record(s) approved +ConfirmMassLeaveApprovalQuestion=Biztosan jóváhagyja a %s kiválasztott rekordo(ka)t? +ConfirmMassLeaveApproval=Tömeges szabadság jóváhagyásának megerősítése +RecordAproved=Rekord jóváhagyva +RecordsApproved=%s rekord(ok) jóváhagyva Properties=Tulajdonságok -hasBeenValidated=%sérvényesítve lett -ClientTZ=Kliens időzónája (felhasználó) +hasBeenValidated=%s ellenőrzése megtörtént +ClientTZ=Ügyfél időzóna (felhasználó) NotClosedYet=Még nincs lezárva -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +ClearSignature=Aláírás visszaállítása +CanceledHidden=Elrejtett törölve +CanceledShown=Megszakítva látható +Terminate=Befejezés +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 +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=Created by Email collector +CreatedByPublicPortal=Created from Public portal diff --git a/htdocs/langs/hu_HU/margins.lang b/htdocs/langs/hu_HU/margins.lang index 0e3d6485b02..d7c9968f39e 100644 --- a/htdocs/langs/hu_HU/margins.lang +++ b/htdocs/langs/hu_HU/margins.lang @@ -1,45 +1,45 @@ # Dolibarr language file - Source file is en_US - marges Margin=Árrés -Margins=Margók -TotalMargin=Total Margin +Margins=Árrések +TotalMargin=Teljes árrés MarginOnProducts=Árrés / Termékek -MarginOnServices=Árrés / Szolgáltatás -MarginRate=Árrés ráta -MarkRate=Mark rate -DisplayMarginRates=Display margin rates -DisplayMarkRates=Display mark rates -InputPrice=Input price -margin=A haszonkulcsok kezelése -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=Termék vagy Szolgáltatás -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 +MarginOnServices=Árrés / Szolgáltatások +MarginRate=Árrés arány +MarkRate=Jelzés arány +DisplayMarginRates=Megjelenítési árrés arányok +DisplayMarkRates=Jelzési arányok megjelenítése +InputPrice=Bemeneti ár +margin=Profit árrés menedzsment +margesSetup=A haszonkulcs kezelésének beállítása +MarginDetails=Árrés részletei +ProductMargins=Termék árrés +CustomerMargins=Vásárlói árrések +SalesRepresentativeMargins=Értékesítési képviselő árrései +ContactOfInvoice=Számla elérhetősége +UserMargins=Felhasználói árrések +ProductService=Termék vagy szolgáltatás +AllProducts=Minden termék és szolgáltatás +ChooseProduct/Service=Válasszon terméket vagy szolgáltatást +ForceBuyingPriceIfNull=A vételi/önköltségi ár kényszerítése eladási árra, ha nincs megadva +ForceBuyingPriceIfNullDetails=Ha a vételi/önköltségi árat nem adjuk meg új sor hozzáadásakor, és ez az opció "BE" van kapcsolva, az árrés 0%% lesz az új soron (vételi/önköltségi ár = eladási ár). Ha ez az opció "KI" (ajánlott), a margó megegyezik az alapértelmezés szerint javasolt értékkel (és lehet 100%%, ha nem található alapértelmezett érték). +MARGIN_METHODE_FOR_DISCOUNT=A globális kedvezmények árrésmódszere +UseDiscountAsProduct=Termékként +UseDiscountAsService=Szolgáltatásként UseDiscountOnTotal=Részösszegben -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=Súlyozott átlagár (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 +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Meghatározza, hogy a globális engedményt termékként, szolgáltatásként vagy csak részösszegként kell-e kezelni az árrés kiszámításához. +MARGIN_TYPE=A fedezeti számításhoz alapértelmezés szerint javasolt vételi/költségi ár +MargeType1=Árrés a legjobb eladói áron +MargeType2=Rész a súlyozott átlagáron (WAP) +MargeType3=Önköltségi árrés +MarginTypeDesc=* Árrés a legjobb vételi áron = eladási ár - a termékkártyán meghatározott legjobb eladói ár
    * súlyozott átlagár (WAP) árrés = eladási ár - termék súlyozott átlagára (WAP) vagy a legjobb eladói ár, ha még nem WAP meghatározott
    * Önköltségi árrés = Eladási ár - A termékkártyán vagy a WAP-on meghatározott önköltségi ár, ha az önköltségi ár nincs megadva, vagy a legjobb szállítói ár, ha a WAP még nincs meghatározva +CostPrice=Önköltségi ár UnitCharges=Egységdíjak Charges=Díjak -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). +AgentContactType=Kereskedelmi ügynök kapcsolati típusa +AgentContactTypeDetails=Határozza meg, hogy kapcsolattartónként/címenként milyen kapcsolattípust használjon (a számlákra hivatkozva) a fedezeti jelentéshez. Vegye figyelembe, hogy a kapcsolattartók statisztikáinak leolvasása nem megbízható, mivel a legtöbb esetben előfordulhat, hogy a kapcsolattartó nincs egyértelműen meghatározva a számlákon. +rateMustBeNumeric=Az árfolyamnak numerikus értéknek kell lennie +markRateShouldBeLesserThan100=A jelölési aránynak 100-nál kisebbnek kell lennie +ShowMarginInfos=Margó információk megjelenítése +CheckMargins=Margórészletek +MarginPerSaleRepresentativeWarning=A felhasználónkénti árrés jelentés a harmadik felek és az értékesítési képviselők közötti kapcsolatot használja az egyes értékesítési képviselők árrésének kiszámításához. Mivel előfordulhat, hogy egyes harmadik feleknek nincs külön értékesítési képviselője, és egyes harmadik felek többhez is kapcsolódnak, előfordulhat, hogy bizonyos összegek nem szerepelnek ebben a jelentésben (ha nincs értékesítési képviselő), mások pedig különböző sorokban jelenhetnek meg (minden értékesítési képviselőnél). diff --git a/htdocs/langs/hu_HU/members.lang b/htdocs/langs/hu_HU/members.lang index 8ad8843114b..b3b0abda26f 100644 --- a/htdocs/langs/hu_HU/members.lang +++ b/htdocs/langs/hu_HU/members.lang @@ -1,220 +1,223 @@ # Dolibarr language file - Source file is en_US - members -MembersArea=Felhasználói terület +MembersArea=Tagok területe MemberCard=Tagkártya -SubscriptionCard=Előfizetés kártya +SubscriptionCard=Előfizetési kártya Member=Tag Members=Tagok ShowMember=Tagkártya megjelenítése -UserNotLinkedToMember=A felhasználó nem kapcsolódik taghoz -ThirdpartyNotLinkedToMember=Taghoz nem kötődő harmadik fél -MembersTickets=Membership address sheet -FundationMembers=Alapítvány tagjai -ListOfValidatedPublicMembers=Hitelesített nyilvános tagok listája -ErrorThisMemberIsNotPublic=Nem nyilvános tag -ErrorMemberIsAlreadyLinkedToThisThirdParty=Egy másik tag (név: %s, bejelentkezés: %s) már kapcsolódik egy harmadik fél %s. Vegye meg ezt a linket elsősorban azért, mert egy harmadik fél nem köthető csak egy tag (és fordítva). -ErrorUserPermissionAllowsToLinksToItselfOnly=Biztonsági okokból, meg kell szerkeszteni engedéllyel rendelkezik a minden felhasználó számára, hogy képes összekapcsolni egy tag a felhasználó, hogy nem a tiéd. -SetLinkToUser=Link a Dolibarr felhasználó -SetLinkToThirdParty=Link egy harmadik fél Dolibarr -MembersCards=Business cards for members -MembersList=A tagok listája -MembersListToValid=Tagok listája tervezet (érvényesíteni kell) +UserNotLinkedToMember=A felhasználó nincs taghoz kapcsolva +ThirdpartyNotLinkedToMember=Harmadik fél, amely nem kapcsolódik taghoz +MembersTickets=Tagsági címlap +FundationMembers=Alapítványi tagok +ListOfValidatedPublicMembers=Az érvényesített nyilvános tagok listája +ErrorThisMemberIsNotPublic=Ez a tag nem nyilvános +ErrorMemberIsAlreadyLinkedToThisThirdParty=Egy másik tag (név: %s, bejelentkezési név: %s) már kapcsolódik egy harmadik félhez %s. Először távolítsa el ezt a hivatkozást, mert harmadik felet nem lehet csak egy taghoz kapcsolni (és fordítva). +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 +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) MembersListValid=Érvényes tagok listája -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=Kilépett tagok listája -MembersListQualified=Képesítéssel rendelkező tagok listája -MenuMembersToValidate=Draft tagjai -MenuMembersValidated=Jóváhagyott tagjai -MenuMembersExcluded=Excluded members -MenuMembersResiliated=Kilépett tagok -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=Tag azonosító +MembersListUpToDate=Érvényes tagok listája naprakész hozzájárulással +MembersListNotUpToDate=Az érvényes tagok listája elavult hozzájárulással +MembersListExcluded=A kizárt tagok listája +MembersListResiliated=A megszűnt tagok listája +MembersListQualified=A minősített tagok listája +MenuMembersToValidate=Piszkozat tagok +MenuMembersValidated=Érvényesített tagok +MenuMembersExcluded=Kizárt tagok +MenuMembersResiliated=Megszakított tagok +MembersWithSubscriptionToReceive=Kapni való hozzájárulással rendelkező tagok +MembersWithSubscriptionToReceiveShort=Fogadandó hozzájárulások +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=Tag-azonosító +MemberRef=Tag Ref NewMember=Új tag -MemberType=Tagság típusa -MemberTypeId=Tagság típusa id -MemberTypeLabel=Tagja címkéről -MembersTypes=Tagok típusok -MemberStatusDraft=Tervezet (hitelesítés szükséges) +MemberType=Tag típusa +MemberTypeId=Tag típusazonosító +MemberTypeLabel=Tagtípus címke +MembersTypes=Tagtípusok +MemberStatusDraft=Piszkozat (ellenőrizni kell) MemberStatusDraftShort=Piszkozat -MemberStatusActive=Validated (waiting contribution) -MemberStatusActiveShort=Hitelesítetve -MemberStatusActiveLate=Contribution expired +MemberStatusActive=Érvényesítve (a hozzájárulásra vár) +MemberStatusActiveShort=Érvényesített +MemberStatusActiveLate=A hozzájárulás lejárt MemberStatusActiveLateShort=Lejárt -MemberStatusPaid=Előfizetés naprakész -MemberStatusPaidShort=Naprakész -MemberStatusExcluded=Excluded member -MemberStatusExcludedShort=Excluded -MemberStatusResiliated=Kiléptetett tag -MemberStatusResiliatedShort=Kilépett -MembersStatusToValid=Draft tagjai -MembersStatusExcluded=Excluded members -MembersStatusResiliated=Kilépett tagok -MemberStatusNoSubscription=Validated (no contribution required) -MemberStatusNoSubscriptionShort=Hitelesítetve -SubscriptionNotNeeded=No contribution required +MemberStatusPaid=Az előfizetés naprakész +MemberStatusPaidShort=Aktuális +MemberStatusExcluded=Kizárt tag +MemberStatusExcludedShort=Kizárva +MemberStatusResiliated=Megszakított tag +MemberStatusResiliatedShort=Megszakítva +MembersStatusToValid=Piszkozat tagok +MembersStatusExcluded=Kizárt tagok +MembersStatusResiliated=Felmondott tagok +MemberStatusNoSubscription=Érvényesített (nem szükséges hozzájárulás) +MemberStatusNoSubscriptionShort=Érvényesítve +SubscriptionNotNeeded=Nem szükséges hozzájárulás NewCotisation=Új hozzájárulás -PaymentSubscription=Új járulékfizetési -SubscriptionEndDate=Előfizetés zárónapjának -MembersTypeSetup=Tagok írja be setup -MemberTypeModified=Tag típus módosítva +PaymentSubscription=Új hozzájárulás befizetés +SubscriptionEndDate=Az előfizetés befejezési dátuma +MembersTypeSetup=Tagtípus beállítása +MemberTypeModified=A tag típusa módosítva DeleteAMemberType=Tagtípus törlése -ConfirmDeleteMemberType=Valóban szeretné törölni az adott tag típust? -MemberTypeDeleted=Tagtípus törölve -MemberTypeCanNotBeDeleted=A tagtípus nem került törlésre +ConfirmDeleteMemberType=Biztosan törölni szeretné ezt a tagtípust? +MemberTypeDeleted=A tag típusa törölve +MemberTypeCanNotBeDeleted=A tagtípus nem törölhető NewSubscription=Új hozzájárulás -NewSubscriptionDesc=Ez a forma lehetővé teszi, hogy rögzítsék az előfizetés, mint egy új tagja az alapítvány. Ha szeretné újítani az előfizetést (ha már regisztrált tag), kérjük, lépjen kapcsolatba alapítványi tanács helyett e-mailben %s. -Subscription=Contribution -Subscriptions=Contributions +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 +Subscriptions=Hozzájárulások SubscriptionLate=Késő -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions -SendCardByMail=A kártya elküldése e-mailben +SubscriptionNotReceived=A hozzájárulás nem érkezett meg +ListOfSubscriptions=Hozzájárulások listája +SendCardByMail=Kártya küldése e-mailben AddMember=Tag létrehozása -NoTypeDefinedGoToSetup=Nem tagja típust nem definiál. Lépjen be a Setup - Tagok típusok -NewMemberType=Új tagtípus +NoTypeDefinedGoToSetup=Nincsenek tagtípusok definiálva. Lépjen a "Tagtípusok" menübe +NewMemberType=Új tag típusa WelcomeEMail=Üdvözlő e-mail -SubscriptionRequired=Contribution required +SubscriptionRequired=Hozzájárulás szükséges DeleteType=Törlés -VoteAllowed=Szavazz megengedett -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=Tag kiléptetése -ConfirmResiliateMember=Valóban ki szeretné léptetni az adott tagot? +VoteAllowed=Szavazás engedélyezett +Physical=Egyéni +Moral=Vállalat +MorAndPhy=Vállalati és magánszemély +Reenable=Újra engedélyezés +ExcludeMember=Tag kizárása +Exclude=Kizárás +ConfirmExcludeMember=Biztosan kizárja ezt a tagot? +ResiliateMember=Tag megszüntetése +ConfirmResiliateMember=Biztosan megszünteti ezt a tagot? DeleteMember=Tag törlése -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +ConfirmDeleteMember=Biztosan törölni szeretné ezt a tagot (egy tag törlésével az összes hozzájárulása törlődik)? DeleteSubscription=Előfizetés törlése -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteSubscription=Biztosan törölni szeretné ezt a hozzájárulást? Filehtpasswd=htpasswd fájl ValidateMember=Tag érvényesítése -ConfirmValidateMember=Valóban érvényesíteni szeretné ezt a tagot? -FollowingLinksArePublic=A következő hivatkozások olyan oldalakat fognak megnyitni, amelyek nem védettek semmilyen Dolibarr jogosultsággal. Ezek nem formázott oldalak. Példaként szolgálnak, hogy bemutassák a tagok adatbázisának listáját. -PublicMemberList=Nyilvános lista tagja -BlankSubscriptionForm=Public self-registration form -BlankSubscriptionFormDesc=A Dolibarr nyilvános URL-t / weboldalt szolgáltathat Önnek. Ez lehetővé teszi a külső látogatók számára a feliratkozást. Ha engedélyezve van az online fizetési modul, akkor a fizetési űrlap automatikusan elérhetővé válik. -EnablePublicSubscriptionForm=Engedélyezze a nyilvános weboldalt az önfeliratkozó űrlapon -ForceMemberType=Tagtipus kikényszerítése. -ExportDataset_member_1=Members and contributions +ConfirmValidateMember=Biztosan érvényesíteni szeretné ezt a tagot? +FollowingLinksArePublic=A következő hivatkozások olyan nyitott oldalak, amelyeket semmilyen Dolibarr engedély nem véd. Ezek nem formázott oldalak, példaként szolgálnak a tagok adatbázisának felsorolására. +PublicMemberList=Nyilvános taglista +BlankSubscriptionForm=Nyilvános önregisztrációs űrlap +BlankSubscriptionFormDesc=A Dolibarr nyilvános URL-t/webhelyet biztosít Önnek, amely lehetővé teszi a külső látogatók számára, hogy feliratkozást kérjenek az alapítványra. Ha engedélyezve van az online fizetési modul, akkor a fizetési űrlap is automatikusan rendelkezésre állhat. +EnablePublicSubscriptionForm=Nyilvános webhely engedélyezése saját előfizetési űrlappal +ForceMemberType=A tagtípus kényszerítése +ExportDataset_member_1=Tagok és hozzájárulások ImportDataset_member_1=Tagok -LastMembersModified=A legutóbbi 1 %s módosított tagok -LastSubscriptionsModified=Latest %s modified contributions +LastMembersModified=A legutóbbi %s módosított tag +LastSubscriptionsModified=A legutóbbi %s módosított hozzájárulás String=Szöveg Text=Szöveg Int=Int DateAndTime=Dátum és idő -PublicMemberCard=Tagállamban közvélemény-kártya -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +PublicMemberCard=Nyilvános tagkártya +SubscriptionNotRecorded=A hozzájárulás nincs rögzítve +AddSubscription=Hozzájárulás létrehozása +ShowSubscription=Hozzájárulás megjelenítése # Label of email templates -SendingAnEMailToMember=E-mailben történő információ küldés a tagnak. -SendingEmailOnAutoSubscription=E-mail küldése az automatikus regisztrációval kapcsolatban -SendingEmailOnMemberValidation=E-mail küldése az új tag érvényesítéséről -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions -SendingEmailOnCancelation=E-mail küldése a lemondásról -SendingReminderActionComm=Sending reminder for agenda event +SendingAnEMailToMember=Információs e-mail küldése a tagnak +SendingEmailOnAutoSubscription=E-mail küldése automatikus regisztrációról +SendingEmailOnMemberValidation=E-mail küldése új tag érvényesítéséről +SendingEmailOnNewSubscription=E-mail küldése új hozzájárulásról +SendingReminderForExpiredSubscription=Emlékeztető küldése a lejárt hozzájárulásokról +SendingEmailOnCancelation=E-mail küldése lemondáskor +SendingReminderActionComm=Emlékeztető küldése a napirendi eseményhez # Topic of email templates -YourMembershipRequestWasReceived=A tagságod megérkezett. -YourMembershipWasValidated=Tagságod érvényesítve -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder -YourMembershipWasCanceled=Tagságod megszüntetve -CardContent=Tartalma a kártya tagja +YourMembershipRequestWasReceived=Tagságodat megkaptuk. +YourMembershipWasValidated=Tagságát ellenőriztük +YourSubscriptionWasRecorded=Új hozzájárulását rögzítettük +SubscriptionReminderEmail=hozzájárulási emlékeztető +YourMembershipWasCanceled=Tagságát törölték +CardContent=Tagsági kártya tartalma # Text of email templates -ThisIsContentOfYourMembershipRequestWasReceived=Értesítjük, hogy a tagsági kérelme megérkezett.

    -ThisIsContentOfYourMembershipWasValidated=Értesítjük, hogy a tagságát a következő adatokkal érvényesítettük:

    -ThisIsContentOfYourSubscriptionWasRecorded=Értesítjük, hogy az új előfizetését rögzítettük.

    -ThisIsContentOfSubscriptionReminderEmail=Felhívjuk figyelmét, hogy előfizetése hamarosan lejár vagy már lejárt (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Reméljük, megújítja.

    -ThisIsContentOfYourCard=Az Önnel kapcsolatos információk összefoglalása. Kérjük, nem megfelelő adatok esetében vegye fel velünk a kapcsolatot.

    -DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=A vendég automatikus feliratkozása esetén, a beérkezett értesítő e-mail tárgya -DescADHERENT_AUTOREGISTER_NOTIF_MAIL=A vendég automatikus feliratkozása esetén kapott értesítési e-mail tartalma. -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=A tagoknak küldött tagérvényesítő e-mail sablon. -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=Az előfizetés lemondásakor kiküldött e-mail sablonja. -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=Email template to use to send email to a member on member exclusion -DescADHERENT_MAIL_FROM=Feladó e-mail címe az automatikus e-mailekhez -DescADHERENT_ETIQUETTE_TYPE=Oldal formátuma címkék -DescADHERENT_ETIQUETTE_TEXT=A tag címzési lapjára nyomtatott szöveg -DescADHERENT_CARD_TYPE=Formátuma kártyák oldal -DescADHERENT_CARD_HEADER_TEXT=Nyomtatott szöveg tetején tag kártyák -DescADHERENT_CARD_TEXT=Nyomtatott szöveg tagja kártyák (igazítsa a bal) -DescADHERENT_CARD_TEXT_RIGHT=Nyomtatott szöveg tagja kártyák (igazítása jobb oldalon) -DescADHERENT_CARD_FOOTER_TEXT=Nyomtatott szöveg alján tag kártyák -ShowTypeCard=Mutasd a '%s' típust -HTPasswordExport=htpassword fájl létrehozása -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions -MoreActions=Kiegészítő fellépés a felvételi -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution -MoreActionBankDirect=Közvetlen bejegyzés létrehozása a bankszámlára -MoreActionBankViaInvoice=Számla készitése és kifizetése bankszámlára -MoreActionInvoiceOnly=Hozzon létre egy számlát nem kell fizetni -LinkToGeneratedPages=Generálása névkártyák -LinkToGeneratedPagesDesc=Ez a képernyő lehetővé teszi a PDF fájlok névjegykártyák az összes tagjai, vagy egy bizonyos tagja. -DocForAllMembersCards=Generálása névjegykártyák minden tagja számára (a kimeneti formátum tulajdonképpen setup: %s) -DocForOneMemberCards=Generálása névjegykártyák egy adott tag (kimeneti formátum tulajdonképpen setup: %s) -DocForLabels=Létrehoz cím lap (a kimeneti formátum tulajdonképpen setup: %s) -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution -LastMemberType=Last Member type -MembersStatisticsByCountries=Országonkénti tagstatisztika. -MembersStatisticsByState=Tartományonkénti tagstatisztika. -MembersStatisticsByTown=Városonkénti tagstatisztika. -MembersStatisticsByRegion=Földrajzi régiónkénti tagstatisztika. -NbOfMembers=Total number of members -NbOfActiveMembers=Total number of current active members -NoValidatedMemberYet=Nemérvényesített tag található -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=Válassza ki a kívánt statisztikákat olvasni ... -MenuMembersStats=Statisztika -LastMemberDate=Latest membership date -LatestSubscriptionDate=Latest contribution date -MemberNature=Nature of the member -MembersNature=Nature of the members -Public=Information is public -NewMemberbyWeb=Új tag hozzáadása megtörtént. Várakozás jóváhagyásra. -NewMemberForm=Új tag ürlap -SubscriptionsStatistics=Contributions statistics -NbOfSubscriptions=Number of contributions -AmountOfSubscriptions=Amount collected from contributions -TurnoverOrBudget=Forgalom (a cég) vagy Költségvetés (egy alapítvány) -DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution +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.

    +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 +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=A vendég automatikus feliratkozása esetén kapott értesítő e-mail tartalma +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=E-mail sablon, amellyel e-mailt küldhet egy tagnak az automatikus tagregisztráció során +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=E-mail sablon, amellyel e-mailt küldhet egy tagnak a tag érvényesítéséről +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=E-mail sablon, amellyel e-mailt küldhet egy tagnak az új hozzájárulás felvételéről +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=E-mail sablon emlékeztető e-mail küldésére, ha a hozzájárulás lejár +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=E-mail sablon, amellyel e-mailt küldhet egy tagnak a tagság törlése esetén +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=E-mail-sablon, amellyel e-mailt küldhet a tag kizárása esetén +DescADHERENT_MAIL_FROM=Feladó e-mail automatikus e-mailekhez +DescADHERENT_ETIQUETTE_TYPE=A címkeoldal formátuma +DescADHERENT_ETIQUETTE_TEXT=A tagok címlapjára nyomtatott szöveg +DescADHERENT_CARD_TYPE=A kártyák oldal formátuma +DescADHERENT_CARD_HEADER_TEXT=Szöveg a tagkártyák tetejére nyomtatva +DescADHERENT_CARD_TEXT=A tagkártyákra nyomtatott szöveg (balra igazítva) +DescADHERENT_CARD_TEXT_RIGHT=Szöveg a tagkártyákra nyomtatva (igazítás a jobb oldalon) +DescADHERENT_CARD_FOOTER_TEXT=Szöveg a tagkártyák aljára nyomtatva +ShowTypeCard=A '%s' típus megjelenítése +HTPasswordExport=htpassword fájl generálása +NoThirdPartyAssociatedToMember=Nincs harmadik fél társítva ehhez a taghoz +MembersAndSubscriptions=Tagok és hozzájárulások +MoreActions=Kiegészítő művelet a rögzítéshez +MoreActionsOnSubscription=A hozzájárulás rögzítésekor alapértelmezés szerint javasolt kiegészítő művelet, amely a hozzájárulás online befizetésekor is automatikusan megtörténik +MoreActionBankDirect=Közvetlen bejegyzés létrehozása a bankszámlán +MoreActionBankViaInvoice=Számla létrehozása és befizetés bankszámlára +MoreActionInvoiceOnly=Számla létrehozása fizetés nélkül +LinkToGeneratedPages=Névjegykártyák vagy címlapok generálása +LinkToGeneratedPagesDesc=Ez a képernyő lehetővé teszi, hogy PDF-fájlokat generáljon névjegykártyákkal az összes tag vagy egy adott tag számára. +DocForAllMembersCards=Névjegykártyák generálása minden tag számára +DocForOneMemberCards=Névjegykártyák generálása egy adott tag számára +DocForLabels=Címlapok generálása +SubscriptionPayment=Hozzájárulás kifizetése +LastSubscriptionDate=A legutóbbi hozzájárulás befizetésének dátuma +LastSubscriptionAmount=A legutóbbi hozzájárulás összege +LastMemberType=Utolsó tag típusa +MembersStatisticsByCountries=Tagstatisztikák országonként +MembersStatisticsByState=Tagstatisztikák állam/tartomány szerint +MembersStatisticsByTown=Tagstatisztikák városonként +MembersStatisticsByRegion=Tagstatisztikák régiónként +NbOfMembers=A tagok teljes száma +NbOfActiveMembers=A jelenlegi aktív tagok teljes száma +NoValidatedMemberYet=Nem található érvényesített tag +MembersByCountryDesc=Ez a képernyő a tagok statisztikáit mutatja országok szerint. A grafikonok és diagramok a Google online grafikonszolgáltatásának elérhetőségétől, valamint a működő internetkapcsolat elérhetőségétől függenek. +MembersByStateDesc=Ez a képernyő a tagok statisztikáit mutatja állam/tartomány/kanton szerint. +MembersByTownDesc=Ez a képernyő a tagok statisztikáit mutatja városonként. +MembersByNature=Ez a képernyő a tagok természet szerinti statisztikáit jeleníti meg. +MembersByRegion=Ez a képernyő a tagok statisztikáit mutatja régiónként. +MembersStatisticsDesc=Válassza ki az olvasni kívánt statisztikákat... +MenuMembersStats=Statisztikák +LastMemberDate=Utolsó tagsági dátum +LatestSubscriptionDate=A legutóbbi hozzájárulás dátuma +MemberNature=A tag természete +MembersNature=A tagok természete +Public=Az információ nyilvános +NewMemberbyWeb=Új tag hozzáadva. Jóváhagyásra vár +NewMemberForm=Új tag űrlap +SubscriptionsStatistics=Hozzájárulási statisztikák +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 -ByProperties=Jelleg szerint -MembersStatisticsByProperties=Jelleg szerinti tag statisztika -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=Cégnév -SubscriptionRecorded=Contribution recorded -NoEmailSentToMember=A tagnak nem került e-mail elküldésre -EmailSentToMember=E-mail kiküldve a tagnak 1 %s-kor -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=A tagdíj kiegyenlítve az aktuális időszakra ( 1 %s-ig ) -YouMayFindYourInvoiceInThisEmail=A számlát ehhez az e-mailhez csatolva találhatja meg. -XMembersClosed=1 %s tag(ok) lezárva -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. +ByProperties=Természeténél fogva +MembersStatisticsByProperties=Tagstatisztikák jellegük szerint +VATToUseForSubscriptions=A hozzájárulások áfakulcsa +NoVatOnSubscription=Nincs áfa a hozzájárulásokra +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=A számla hozzájárulási sorához használt termék: %s +NameOrCompany=Név vagy cég +SubscriptionRecorded=A hozzájárulás rögzítve +NoEmailSentToMember=Nem küldtek e-mailt a tagnak +EmailSentToMember=E-mail elküldve a tagnak a következő címen: %s +SendReminderForExpiredSubscriptionTitle=Emlékeztető küldése e-mailben a lejárt hozzájárulásokról +SendReminderForExpiredSubscription=Emlékeztető küldése e-mailben a tagoknak, ha a hozzájárulás hamarosan lejár (a paraméter a tagság vége előtti napok száma az emlékeztető elküldéséhez. Ez lehet pontosvesszővel elválasztott napok listája, például '10;5;0; -5') +MembershipPaid=A jelenlegi időszakra fizetett tagság (%s-ig) +YouMayFindYourInvoiceInThisEmail=A számlát ehhez az e-mailhez csatolva találhatja +XMembersClosed=%s tag bezárva +XExternalUserCreated=%s külső felhasználó létrehozva +ForceMemberNature=Kényszertag jellege (egyéni vagy vállalati) +CreateDolibarrLoginDesc=A felhasználói bejelentkezés létrehozása a tagok számára lehetővé teszi számukra az alkalmazáshoz való csatlakozást. A megadott jogosultságoktól függően például saját maguk is megtekinthetik vagy módosíthatják a fájljukat. +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 diff --git a/htdocs/langs/hu_HU/modulebuilder.lang b/htdocs/langs/hu_HU/modulebuilder.lang index b1ea33eeb11..cb229dc49f9 100644 --- a/htdocs/langs/hu_HU/modulebuilder.lang +++ b/htdocs/langs/hu_HU/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 +ModuleBuilderDesc=Ezt az eszközt csak tapasztalt felhasználók vagy fejlesztők használhatják. Segédprogramokat biztosít saját modul létrehozásához vagy szerkesztéséhez. Az alternatív kézi fejlesztés dokumentációja itt található. +EnterNameOfModuleDesc=Írja be a létrehozandó modul/alkalmazás nevét szóközök nélkül. Használjon nagybetűket a szavak elválasztásához (például: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Írja be a létrehozandó objektum nevét szóközök nélkül. A szavak elválasztásához használjon nagybetűt (például: Saját tárgy, Tanuló, Tanár...). Létrejön a CRUD osztályfájl, de az API fájl, az objektumok listázásához/adásához/szerkesztéséhez/törléséhez szükséges oldalak és SQL-fájlok is. +EnterNameOfDictionaryDesc=Írja be a létrehozandó szótár nevét szóközök nélkül. A szavak elválasztásához használjon nagybetűt (például: MyDico...). Létrejön az osztályfájl, de az SQL fájl is. +ModuleBuilderDesc2=A modulok létrehozásának/szerkesztésének elérési útja (első könyvtár a külső modulok számára, a(z) %s-ben): %s +ModuleBuilderDesc3=Létrehozott/szerkeszthető modulok találhatók: %s +ModuleBuilderDesc4=A modul „szerkeszthetőként” észlelhető, ha a(z) %s fájl létezik a modul könyvtárának gyökérkönyvtárában NewModule=Új modul -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 +NewObjectInModulebuilder=Új objektum +NewDictionary=Új szótár +ModuleKey=Modulkulcs +ObjectKey=Objektumkulcs +DicKey=Szótár kulcsa +ModuleInitialized=A modul inicializálva +FilesForObjectInitialized=Az új objektum '%s' fájljai inicializálva +FilesForObjectUpdated=A '%s' objektum fájlok frissítve (.sql fájlok és .class.php fájl) +ModuleBuilderDescdescription=Írja be ide a modulját leíró összes általános információt. +ModuleBuilderDescspecifications=Itt megadhatja a modul specifikációinak részletes leírását, amely még nincs strukturálva más lapokra. Így könnyen elérhető az összes kidolgozandó szabály. Ez a szöveges tartalom is bekerül a generált dokumentációba (lásd az utolsó fület). Használhatja a Markdown formátumot, de javasolt az Asciidoc formátum használata (az .md és az .asciidoc összehasonlítása: http://asciidoctor.org/docs/user-manual/#compared-to-markdown). +ModuleBuilderDescobjects=Határozza meg itt a moduljával kezelni kívánt objektumokat. Létrejön egy CRUD DAO osztály, SQL fájlok, az objektumok rekordjainak listázására szolgáló oldal, rekord létrehozása/szerkesztése/megtekintése, valamint egy API. +ModuleBuilderDescmenus=Ez a lap a modul által biztosított menübejegyzések meghatározására szolgál. +ModuleBuilderDescpermissions=Ez a lap a modulhoz adni kívánt új engedélyek meghatározására szolgál. +ModuleBuilderDesctriggers=Ez a modul által biztosított triggerek nézete. A kiváltott üzleti esemény elindításakor végrehajtott kód belefoglalásához egyszerűen szerkessze ezt a fájlt. +ModuleBuilderDeschooks=Ez a lap a horgoknak van szentelve. +ModuleBuilderDescwidgets=Ez a lap widgetek kezelésére/készítésére szolgál. +ModuleBuilderDescbuildpackage=Itt létrehozhat egy "terjesztésre kész" csomagfájlt (egy normalizált .zip fájlt) a moduljáról és egy "terjesztésre kész" dokumentációs fájlt. Csak kattintson a gombra a csomag vagy a dokumentációs fájl elkészítéséhez. +EnterNameOfModuleToDeleteDesc=Törölheti a modult. FIGYELMEZTETÉS: A modul összes kódolási fájlja (generált vagy manuálisan létrehozott) ÉS strukturált adata és dokumentációja törlődik! +EnterNameOfObjectToDeleteDesc=Törölhet egy objektumot. FIGYELMEZTETÉS: Az objektumhoz kapcsolódó (generált vagy manuálisan létrehozott) összes kódolási fájl törlődik! +DangerZone=Veszélyzóna +BuildPackage=Csomag összeállítása +BuildPackageDesc=Létrehozhat egy zip-csomagot az alkalmazásból, így készen áll arra, hogy bármely Dolibarron terjeszthesse. Terjesztheti vagy értékesítheti olyan piacon is, mint a DoliStore.com. +BuildDocumentation=Kiépítési dokumentáció +ModuleIsNotActive=Ez a modul még nincs aktiválva. Lépjen ide: %s, hogy élővé tegye, vagy kattintson ide +ModuleIsLive=Ez a modul aktiválva lett. Bármilyen változtatás megszakíthatja az aktuális élő funkciót. +DescriptionLong=Hosszú leírás +EditorName=A szerkesztő neve +EditorUrl=A szerkesztő URL-je +DescriptorFile=A modul leíró fájlja +ClassFile=Fájl a PHP DAO CRUD osztályhoz +ApiClassFile=Fájl a PHP API osztályhoz +PageForList=PHP oldal a rekordok listájához +PageForCreateEditView=PHP oldal rekord létrehozásához/szerkesztéséhez/megtekintéséhez +PageForAgendaTab=PHP oldal az esemény laphoz +PageForDocumentTab=PHP oldal a dokumentum laphoz +PageForNoteTab=PHP oldal a jegyzetlaphoz +PageForContactTab=PHP oldal a kapcsolattartó laphoz +PathToModulePackage=A modul/alkalmazáscsomag zip-jének elérési útja +PathToModuleDocumentation=A modul/alkalmazás dokumentációjának elérési útja (%s) +SpaceOrSpecialCharAreNotAllowed=Szóközök vagy speciális karakterek nem megengedettek. +FileNotYetGenerated=A fájl még nem jött létre +RegenerateClassAndSql=.class és .sql fájlok kényszerített frissítése +RegenerateMissingFiles=Hiányzó fájlok előállítása +SpecificationFile=A dokumentáció fájlja +LanguageFile=Fájl a nyelvhez +ObjectProperties=Objektumtulajdonságok +ConfirmDeleteProperty=Biztosan törölni szeretné a(z) %s tulajdonságot? Ez megváltoztatja a PHP osztály kódját, de egyben eltávolítja az oszlopot is az objektum tábladefiníciójából. +NotNull=Nem NULL +NotNullDesc=1=Állítsa be az adatbázist NEM NULL-ra, 0=Null értékek engedélyezése, -1=Null értékek engedélyezése az érték NULL-ra kényszerítésével, ha üres ('' vagy 0) +SearchAll=A 'keress az összesben' +DatabaseIndex=Adatbázis index +FileAlreadyExists=A %s fájl már létezik +TriggersFile=Fájl az indítókódhoz +HooksFile=Fájl a hooks kódhoz +ArrayOfKeyValues=A kulcsérték tömbje +ArrayOfKeyValuesDesc=Kulcsok és értékek tömbje, ha a mező egy kombinált lista rögzített értékekkel +WidgetFile=Widget fájl +CSSFile=CSS fájl +JSFile=Javascript fájl +ReadmeFile=Olvass el fájl +ChangeLog=ChangeLog fájl +TestClassFile=Fájl a PHP Unit Test osztályhoz +SqlFile=Sql fájl +PageForLib=Fájl a közös PHP könyvtárhoz +PageForObjLib=Fájl az objektumhoz rendelt PHP könyvtárhoz +SqlFileExtraFields=Sql fájl a kiegészítő attribútumokhoz +SqlFileKey=Sql fájl a kulcsokhoz +SqlFileKeyExtraFields=Sql fájl a kiegészítő attribútumok kulcsaihoz +AnObjectAlreadyExistWithThisNameAndDiffCase=Már létezik objektum ezzel a névvel és más kis- és nagybetűvel +UseAsciiDocFormat=Használhatja a Markdown formátumot, de javasolt az Asciidoc formátum használata (az .md és az .asciidoc összehasonlítása: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=Mérték +DirScanned=A könyvtár beolvasva +NoTrigger=Nincs trigger +NoWidget=Nincs widget +GoToApiExplorer=API-böngésző +ListOfMenusEntries=A menübejegyzések listája +ListOfDictionariesEntries=Szótárbejegyzések listája +ListOfPermissionsDefined=A meghatározott engedélyek listája +SeeExamples=Példákat lásd itt +EnabledDesc=Feltétel, hogy ez a mező aktív legyen (Példák: 1 vagy $conf->global->MYMODULE_MYOPTION) +VisibleDesc=Látható a mező? (Példák: 0=soha nem látható, 1=látható a listán és az űrlapok létrehozása/frissítése/megtekintése, 2=csak a listán látható, 3=csak a létrehozási/frissítési/megtekintési űrlapon látható (nem listán), 4=látható a listán és csak frissítés/megtekintés űrlap (nem létrehozás), 5=Csak a lista végén látható űrlapon látható (nem létrehozás, nem frissítés).

    A negatív érték használata azt jelenti, hogy a mező alapértelmezés szerint nem jelenik meg a listán, de kiválasztható megtekintésre).

    Lehet egy kifejezés, például:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:1
    ($user->rights->holiday->define_holiday ? 1 : 0) +DisplayOnPdfDesc=Ezt a mezőt kompatibilis PDF dokumentumokon jelenítse meg, a pozíciót a "Pozíció" mezővel kezelheti.
    Jelenleg a következő ismert kompatibilis PDF modellek: eratosthene (rendelés), espadon (hajó), sponge (számlák), cyan (propal/ árajánlat), cornas (beszállítói rendelés)

    A dokumentumhoz:
    0 = nem jelenik meg
    1 = kijelző
    2 = csak akkor jelenjen meg, ha nem üres

    Dokumentumsorokhoz:
    0 = nincs megjelenítve
    1 = oszlopban jelenik meg
    3 = megjelenítése a leírás utáni sorleíró oszlopban
    4 = megjelenítése csak akkor a leírás után, ha nem üres +DisplayOnPdf=Megjelenítés PDF-en +IsAMeasureDesc=A mező értéke összesíthető, hogy a listába kerüljön az összeg? (Példák: 1 vagy 0) +SearchAllDesc=Használják a mezőt a gyorskereső eszközből történő kereséshez? (Példák: 1 vagy 0) +SpecDefDesc=Írja be ide az összes olyan dokumentációt, amelyet a modulhoz szeretne adni, és amelyet más lapok még nem definiáltak. Használhat .md vagy jobb, gazdag .asciidoc szintaxist. +LanguageDefDesc=Írja be ebbe a fájlba az összes kulcsot és fordítást minden egyes nyelvi fájlhoz. +MenusDefDesc=Határozza meg itt a modulja által biztosított menüket +DictionariesDefDesc=Határozza meg itt a modul által biztosított szótárakat +PermissionsDefDesc=Határozza meg itt a modul által biztosított új engedélyeket +MenusDefDescTooltip=A modul/alkalmazás által biztosított menük a $this->menus tömbben vannak meghatározva a modulleíró fájlban. Ezt a fájlt manuálisan is szerkesztheti, vagy használhatja a beágyazott szerkesztőt.

    Megjegyzés: A definiálást (és a modul újraaktiválását követően) a menük a %s rendszergazdai felhasználói számára elérhető menüszerkesztőben is láthatók. +DictionariesDefDescTooltip=A modul/alkalmazás által biztosított szótárak a $this->szótárak tömbben vannak meghatározva a modulleíró fájlban. Ezt a fájlt manuálisan is szerkesztheti, vagy használhatja a beágyazott szerkesztőt.

    Megjegyzés: A definiálást (és a modul újraaktiválását követően) a szótárak a beállítási területen is láthatják a %s rendszergazdái számára. +PermissionsDefDescTooltip=A modul/alkalmazás által biztosított engedélyek a $this->rights tömbben vannak meghatározva a modulleíró fájlban. Szerkesztheti manuálisan ezt a fájlt, vagy használhatja a beágyazott szerkesztőt.

    Megjegyzés: A definiálás (és a modul újraaktiválása) után az engedélyek láthatók lesznek az alapértelmezett %s engedélybeállításban. +HooksDefDesc=Határozza meg a module_parts['hooks'] tulajdonságban, a modulleíróban a kezelni kívánt hookok kontextusát (a kontextusok listáját az 'initHooks() kereséssel találhatja meg ' az alapkódban).
    Szerkessze a hook-fájlt, hogy hozzáadja a hozzákapcsolt függvények kódját (a beköthető függvényeket az alapkódban található "executeHooks" kifejezéssel találhatja meg). +TriggerDefDesc=Határozza meg az indítófájlban azt a kódot, amelyet a modulon kívüli üzleti esemény végrehajtásakor szeretne végrehajtani (más modulok által kiváltott események). +SeeIDsInUse=Tekintse meg a telepítésben használt azonosítókat +SeeReservedIDsRangeHere=Tekintse meg a fenntartott azonosítók tartományát +ToolkitForDevelopers=Eszközkészlet Dolibarr fejlesztőknek +TryToUseTheModuleBuilder=Ha ismeri az SQL-t és a PHP-t, használhatja a natív modulkészítő varázslót.
    Engedélyezze a %s modult, és használja a varázslót a a jobb felső menüben.
    Figyelmeztetés: Ez egy speciális fejlesztői funkció, ne kísérletezzen a termelési webhelyén! +SeeTopRightMenu=Lásd: a jobb felső menüben +AddLanguageFile=Nyelvfájl hozzáadása +YouCanUseTranslationKey=Itt egy olyan kulcsot használhat, amely a nyelvi fájlban található fordítási kulcs (lásd a "Nyelvek" lapot) +DropTableIfEmpty=(A táblázat megsemmisítése, ha üres) +TableDoesNotExists=A %s tábla nem létezik +TableDropped=%s tábla törölve +InitStructureFromExistingTable=Létező tábla szerkezettömb karakterláncának létrehozása +UseAboutPage=A névjegyoldal letiltása +UseDocFolder=A dokumentációs mappa letiltása +UseSpecificReadme=Adott ReadMe használata +ContentOfREADMECustomized=Megjegyzés: A README.md fájl tartalma le lett cserélve a ModuleBuilder beállításánál megadott értékre. +RealPathOfModule=A modul valós elérési útja +ContentCantBeEmpty=A fájl tartalma nem lehet üres +WidgetDesc=Itt létrehozhatja és szerkesztheti a moduljába beágyazott widgeteket. +CSSDesc=Itt létrehozhat és szerkeszthet egy fájlt a moduljába ágyazott, személyre szabott CSS-sel. +JSDesc=Itt létrehozhat és szerkeszthet egy fájlt a moduljába ágyazott személyre szabott Javascripttel. +CLIDesc=Itt létrehozhat néhány parancssori szkriptet, amelyet a modulhoz szeretne adni. +CLIFile=CLI fájl +NoCLIFile=Nincsenek CLI-fájlok +UseSpecificEditorName = Adott szerkesztőnév használata +UseSpecificEditorURL = Adott szerkesztő URL használata +UseSpecificFamily = Adott család használata +UseSpecificAuthor = Adott szerző használata +UseSpecificVersion = Egy adott kezdeti verzió használata +IncludeRefGeneration=Az objektum hivatkozását az egyéni számozási szabályoknak automatikusan létre kell hozniuk +IncludeRefGenerationHelp=Jelölje be, ha kódot szeretne tartalmazni a referencia létrehozásának automatikus kezeléséhez egyéni számozási szabályok segítségével +IncludeDocGeneration=Néhány dokumentumot szeretnék létrehozni az objektum sablonjaiból +IncludeDocGenerationHelp=Ha bejelöli ezt, akkor a rendszer egy kódot generál a "Dokumentum létrehozása" mező hozzáadásához. +ShowOnCombobox=Érték megjelenítése a kombinált mezőben +KeyForTooltip=Eszköztipp kulcsa +CSSClass=CSS az űrlap szerkesztéséhez/létrehozásához +CSSViewClass=CSS az olvasási űrlaphoz +CSSListClass=CSS a listához +NotEditable=Nem szerkeszthető +ForeignKey=Idegen kulcs +TypeOfFieldsHelp=Mezők típusa:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[ [ +AsciiToHtmlConverter=Ascii-HTML konverter +AsciiToPdfConverter=Ascii PDF konvertáló +TableNotEmptyDropCanceled=A táblázat nem üres. Az eldobást törölték. +ModuleBuilderNotAllowed=A modulkészítő elérhető, de nem engedélyezett a felhasználó számára. +ImportExportProfiles=Profilok importálása és exportálása +ValidateModBuilderDesc=Állítsa ezt 1-re, ha azt szeretné, hogy az objektum $this->validateField() metódusa legyen meghívva a mező tartalmának érvényesítésére a beszúrás vagy frissítés során. Állítson 0-t, ha nincs szükség érvényesítésre. +WarningDatabaseIsNotUpdated=Figyelmeztetés: Az adatbázis nem frissül automatikusan, meg kell semmisíteni a táblákat, és le kell tiltani-engedélyezni a modult a táblák újbóli létrehozásához +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 018449c4d68..d0ff6f492c7 100644 --- a/htdocs/langs/hu_HU/mrp.lang +++ b/htdocs/langs/hu_HU/mrp.lang @@ -1,109 +1,114 @@ Mrp=Gyártási rendelések -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=Gyártási rendelések +ManufacturingOrder=Gyártási rendelés +MRPDescription=Modul a termelési és gyártási rendelések (MO) kezelésére. +MRPArea=MRP terület +MrpSetupPage=Az MRP modul beállítása +MenuBOM=Anyagjegyzékek +LatestBOMModified=A legújabb %s anyagjegyzék módosítva +LatestMOModified=A legújabb %s gyártási rendelés módosítva +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 +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 +BOMsModelModule=BOM dokumentumsablonok +MOsNumberingModules=MO számozási sablonok +MOsModelModule=MO dokumentumsablonok +FreeLegalTextOnBOMs=Szabad szöveg az anyagjegyzék dokumentumán +WatermarkOnDraftBOMs=Vízjel a vázlaton +FreeLegalTextOnMOs=Szabad szöveg a MO dokumentumán +WatermarkOnDraftMOs=Vízjel a MO piszkozaton +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 +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 +DeleteMo=Gyártási rendelés törlése +ConfirmDeleteBillOfMaterials=Biztosan törölni szeretné ezt az anyagjegyzéket? +ConfirmDeleteMo=Biztosan törölni szeretné ezt a gyártási rendelést? MenuMRP=Gyártási rendelések -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=Új gyártási rendelés +QtyToProduce=A gyártandó mennyiség +DateStartPlannedMo=A kezdés tervezett dátuma +DateEndPlannedMo=Befejezés tervezett dátuma +KeepEmptyForAsap=Az üres azt jelenti, hogy "a lehető leghamarabb" +EstimatedDuration=Becsült időtartam +EstimatedDurationDesc=A termék gyártásának (vagy szétszerelésének) becsült időtartama ezzel az anyagjegyzékkel +ConfirmValidateBom=Biztosan érvényesíteni szeretné az anyagjegyzéket a %s hivatkozással (használhatja új gyártási rendelések készítésére) +ConfirmCloseBom=Biztosan törölni szeretné ezt az anyagjegyzéket (többé nem fogja tudni használni új gyártási rendelések készítésére)? +ConfirmReopenBom=Biztos benne, hogy újra meg akarja nyitni ezt az anyagjegyzéket (használhatja majd új gyártási rendelések készítésére) +StatusMOProduced=Elkészült +QtyFrozen=Fagyasztott mennyiség +QuantityFrozen=Fagyasztott mennyiség +QuantityConsumedInvariable=Ha ez a jelző be van állítva, az elfogyasztott mennyiség mindig a meghatározott érték, és nem relatív a megtermelt mennyiséghez. +DisableStockChange=A készlet módosítása letiltva +DisableStockChangeHelp=Ha ez a jelző be van állítva, nincs készletváltozás ezen a terméken, függetlenül az elfogyasztott mennyiségtől +BomAndBomLines=Anyag- és vonaljegyzékek +BOMLine=A darabjegyzék sora +WarehouseForProduction=Termelő raktár +CreateMO=MO létrehozása +ToConsume=Fogyaszt +ToProduce=Gyártani +ToObtain=Megszerezni +QtyAlreadyConsumed=Már elfogyasztott mennyiség +QtyAlreadyProduced=Már gyártott mennyiség +QtyRequiredIfNoLoss=mennyiség szükséges, ha nincs veszteség (a gyártási hatékonyság 100%%) +ConsumeOrProduce=Fogyaszt vagy termel +ConsumeAndProduceAll=Fogyassza el és állítsa elő mindent +Manufactured=Gyártott +TheProductXIsAlreadyTheProductToProduce=A hozzáadandó termék már az előállítandó termék. +ForAQuantityOf=%s gyártandó mennyiséghez +ForAQuantityToConsumeOf=A %s szétszedendő mennyiségéhez +ConfirmValidateMo=Biztosan érvényesíteni szeretné ezt a gyártási rendelést? +ConfirmProductionDesc=A '%s' gombra kattintva érvényesíti a fogyasztást és/vagy a termelést a beállított mennyiségekhez. Ez frissíti a készletet és rögzíti a készletmozgásokat is. +ProductionForRef=%s gyártása +CancelProductionForRef=Az %s termék készletcsökkentésének törlése +TooltipDeleteAndRevertStockMovement=Sor törlése és készletmozgás visszaállítása +AutoCloseMO=A gyártási rendelés automatikus lezárása, ha elérte a felhasználandó és előállítandó mennyiséget +NoStockChangeOnServices=Nincs készletváltozás a szolgáltatásokon +ProductQtyToConsumeByMO=A nyitott MO-ig még elfogyasztandó termékmennyiség +ProductQtyToProduceByMO=Még előállítandó termékmennyiség nyitott MO-n keresztül +AddNewConsumeLines=Új sor hozzáadása a fogyasztáshoz +AddNewProduceLines=Új sor hozzáadása a gyártáshoz +ProductsToConsume=Fogyasztandó termékek +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) +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 +Workstations=Munkaállomások +WorkstationsDescription=Munkaállomások kezelése +WorkstationSetup = Munkaállomások beállítása +WorkstationSetupPage = Munkaállomások beállítási oldala +WorkstationList=Munkaállomáslista +WorkstationCreate=Új munkaállomás hozzáadása +ConfirmEnableWorkstation=Biztosan engedélyezi a(z) %s munkaállomást? +EnableAWorkstation=Munkaállomás engedélyezése +ConfirmDisableWorkstation=Biztosan letiltja a(z) %s munkaállomást? +DisableAWorkstation=Munkaállomás letiltása DeleteWorkstation=Törlés -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=Szükséges operátorok száma +THMOperatorEstimated=Becsült operátor THM +THMMachineEstimated=Becsült gép THM +WorkstationType=Munkaállomás típusa +Human=Ember +Machine=Gép +HumanMachine=Ember / Gép +WorkstationArea=Munkaállomás területe +Machines=Gépek +THMEstimatedHelp=Ez az arány lehetővé teszi a cikk előrejelzett költségének meghatározását +BOM=Anyagjegyzék +CollapseBOMHelp=Meghatározhatja a nómenklatúra részleteinek alapértelmezett megjelenítését a BOM modul konfigurációjában +MOAndLines=Gyártási rendelések és sorok +MoChildGenerate=Gyermek Mo. generálása +ParentMo=MO Szülő +MOChild=MO Gyermek 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 ea38d0502df..4ae45aaeced 100644 --- a/htdocs/langs/hu_HU/orders.lang +++ b/htdocs/langs/hu_HU/orders.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - orders OrdersArea=Vevők megrendelései -SuppliersOrdersArea=Beszerzési megrendelések +SuppliersOrdersArea=Beszerzési rendelési terület OrderCard=Megrendelőlap OrderId=Megrendelés azonosító Order=Megrendelés @@ -11,25 +11,25 @@ OrderDate=Megrendelés dátuma OrderDateShort=Megrendelés dátuma OrderToProcess=Feldolgozandó megrendelés NewOrder=Új megbízás -NewSupplierOrderShort=Új megbízás -NewOrderSupplier=Új beszerzési megrendelés +NewSupplierOrderShort=Új rendelés +NewOrderSupplier=Új beszerzési rendelés ToOrder=Rendelés készítése MakeOrder=Rendelés készítése -SupplierOrder=Beszerzési megrendelés -SuppliersOrders=Megrendelések +SupplierOrder=Megrendelés +SuppliersOrders=Beszerzési rendelések SaleOrderLines=Értékesítési rendelési sorok -PurchaseOrderLines=Beszerzési rendelés sorok -SuppliersOrdersRunning=Jelenlegi beszerzési megrendelések -CustomerOrder=Értékesítési megrendelés -CustomersOrders=Értékesítési megrendelések -CustomersOrdersRunning=Jelenlegi értékesítési megrendelések -CustomersOrdersAndOrdersLines=Értékesítési megrendelések és a megrendelés részletei -OrdersDeliveredToBill=Értékesítési megrendelések számlázásra +PurchaseOrderLines=Vásárlási rendelési sorok +SuppliersOrdersRunning=Jelenlegi beszerzési rendelések +CustomerOrder=Értékesítési rendelés +CustomersOrders=Értékesítési rendelések +CustomersOrdersRunning=Aktuális értékesítési rendelések +CustomersOrdersAndOrdersLines=Értékesítési rendelések és rendelési adatok +OrdersDeliveredToBill=Értékesítési rendelések számlára szállítva OrdersToBill=Értékesítési rendelések kézbesítve -OrdersInProcess=Értékesítési megrendelések folyamatban -OrdersToProcess=Értékesítési megrendelések feldolgozása -SuppliersOrdersToProcess=Beszerzési megrendelések feldolgozása -SuppliersOrdersAwaitingReception=Fogadásra váró beszerzési megrendelések +OrdersInProcess=Értékesítési rendelések folyamatban +OrdersToProcess=Feldolgozandó értékesítési rendelések +SuppliersOrdersToProcess=Feldolgozandó beszerzési rendelések +SuppliersOrdersAwaitingReception=Beszerzésre váró rendelések AwaitingReception=Fogadásra vár StatusOrderCanceledShort=Visszavonva StatusOrderDraftShort=Tervezet @@ -68,33 +68,35 @@ CreateOrder=Megrendelés készítése RefuseOrder=Megrendelés elutasítása ApproveOrder=Megrendelés jóváhagyása Approve2Order=Megrendelés jóváhagyása (második szint) +UserApproval=Felhasználó jóváhagyásra +UserApproval2=Felhasználó jóváhagyásra (második szint) ValidateOrder=Megrendelés érvényesítése UnvalidateOrder=Érvényesítés törlése DeleteOrder=Megrendelés törlése CancelOrder=Megrendelés visszavonása -OrderReopened= %s megrendelés újbóli megnyitása +OrderReopened= A %s rendelés újra megnyílik AddOrder=Megrendelés készítése -AddSupplierOrderShort=Megrendelés készítése -AddPurchaseOrder=Beszerzési megrendelés létrehozása +AddSupplierOrderShort=Megrendelés létrehozása +AddPurchaseOrder=Megrendelés létrehozása AddToDraftOrders=Megrendelés tervekhez ad ShowOrder=Megrendelés mutatása OrdersOpened=Feldolgozandó megrendelések NoDraftOrders=Nincsenek megrendelés tervek NoOrder=Nincs megrendelés -NoSupplierOrder=Nincs beszerzési megrendelés -LastOrders=A legújabb %s értékesítési megrendelés -LastCustomerOrders=A legújabb %s értékesítési megrendelés -LastSupplierOrders=A legújabb %s beszerzési megrendelések +NoSupplierOrder=Nincs beszerzési rendelés +LastOrders=A legújabb %s értékesítési rendelés +LastCustomerOrders=A legújabb %s értékesítési rendelés +LastSupplierOrders=Legfrissebb %s beszerzési rendelés LastModifiedOrders=Utolsó %s módosított megrendelések AllOrders=Minden megrendelés NbOfOrders=Megrendelések száma OrdersStatistics=Rendelési statisztikák -OrdersStatisticsSuppliers=Beszerzési rendelés statisztikák +OrdersStatisticsSuppliers=Vásárlási statisztika NumberOfOrdersByMonth=Megrendelések száma havonta -AmountOfOrdersByMonthHT=Megrendelések értéke havonta (adó nélkül) +AmountOfOrdersByMonthHT=Megrendelések havi bontásban (adó nélkül) ListOfOrders=Megrendelések listája CloseOrder=Megrendelés lezárása -ConfirmCloseOrder=Biztos benne, hogy ezt a megrendelést kézbesítettre állítja? A kézbesített megrendelés állítható számlázottra. +ConfirmCloseOrder=Biztosan kézbesítve szeretné beállítani ezt a rendelést? A megrendelés kézbesítése után beállítható számlázásra. ConfirmDeleteOrder=Biztos benne, hogy törölni kívánja ezt a megrendelést? ConfirmValidateOrder=Biztosan érvényesíteni szeretné ezt a megrendelést ezzel a számmal %s? ConfirmUnvalidateOrder=Biztos vagy benne, hogy a %s megrendelést vissza akarja tervezetnek állítani? @@ -102,13 +104,15 @@ ConfirmCancelOrder=Biztosan vissza akarja vonni ezt a megrendelést? ConfirmMakeOrder=Biztosan megerősíti a %s számú megrendelést? GenerateBill=Számla generálása ClassifyShipped='Kézbesített'-ként megjelöl +PassedInShippedStatus=minősítetten szállítva +YouCantShipThis=Ezt nem tudom minősíteni. Kérjük, ellenőrizze a felhasználói engedélyeket DraftOrders=Megrendelés tervezetek -DraftSuppliersOrders=Beszerzési megrendelések tervezet +DraftSuppliersOrders=Vásárlási megrendelés-tervezetek OnProcessOrders=Folyamatban lévő megrendelések RefOrder=Megrendelés ref. RefCustomerOrder=Ügyfél megrendelés hiv. -RefOrderSupplier=Referencia megrendelés eladónak -RefOrderSupplierShort=Ref. megrendelés eladó +RefOrderSupplier=Referencia rendelés a szállító számára +RefOrderSupplierShort=Referencia rendelés szállítója SendOrderByMail=A megrendelés elküldése levélben ActionsOnOrder=Megrendelés eseményei NoArticleOfTypeProduct=Nincs termék a megrendelésben, így nincs mit kiszállítani @@ -117,26 +121,26 @@ AuthorRequest=Készítette UserWithApproveOrderGrant='Megrendelés jóváhagyása' jogosultsággal rendelkező felhasználók PaymentOrderRef=%s megrendeléssel kapcsolatos fizetések ConfirmCloneOrder=Biztosan klónozni szeretné ezt a %s megrendelést? -DispatchSupplierOrder=Beszerzési megrendelés fogadása %s +DispatchSupplierOrder=%s beszerzési rendelés fogadása FirstApprovalAlreadyDone=Első jóváhagyás már elvégezve SecondApprovalAlreadyDone=Másod jóváhagyás már elvégezve -SupplierOrderReceivedInDolibarr=Beszerzési megrendelés %s kapott %s -SupplierOrderSubmitedInDolibarr=%s beszerzési megrendelés benyújtva -SupplierOrderClassifiedBilled=Beszerzési megrendelés %s számlázva -OtherOrders=Egyéb megrendelések -SupplierOrderValidatedAndApproved=A szállítói megrendelés érvényesítve és jóváhagyva: %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderReceivedInDolibarr=%s beszerzési rendelés érkezett %s +SupplierOrderSubmitedInDolibarr=%s megrendelés elküldve +SupplierOrderClassifiedBilled=Megrendelés %s készlet kiszámlázva +OtherOrders=Egyéb rendelések +SupplierOrderValidatedAndApproved=A beszállítói rendelés érvényesítése és jóváhagyása megtörtént: %s +SupplierOrderValidated=A beszállítói rendelés érvényesítése megtörtént: %s ##### Types de contacts ##### -TypeContact_commande_internal_SALESREPFOLL=Reprezentatív értékesítési megrendelés nyomon követése +TypeContact_commande_internal_SALESREPFOLL=Reprezentatív követő értékesítési rendelés TypeContact_commande_internal_SHIPPING=Képviselő-up a következő hajózási TypeContact_commande_external_BILLING=Vevő számlázási cím TypeContact_commande_external_SHIPPING=Vevő szállítási cím TypeContact_commande_external_CUSTOMER=Vevő megrendelés nyomon követési kapcsolat -TypeContact_order_supplier_internal_SALESREPFOLL=Reprezentatív beszerzési megrendelés nyomon követése +TypeContact_order_supplier_internal_SALESREPFOLL=Reprezentatív követő beszerzési rendelés TypeContact_order_supplier_internal_SHIPPING=Képviselő nyomon követi a szállítást -TypeContact_order_supplier_external_BILLING=Szállítói számla elérhetősége -TypeContact_order_supplier_external_SHIPPING=Eladó szállítási kapcsolat -TypeContact_order_supplier_external_CUSTOMER=Eladó kapcsolatfelvételi megrendelés +TypeContact_order_supplier_external_BILLING=Szállítói számla kapcsolattartója +TypeContact_order_supplier_external_SHIPPING=A szállító szállítási kapcsolattartója +TypeContact_order_supplier_external_CUSTOMER=A szállítói kapcsolatfelvételi rendelés nyomon követése Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Állandó COMMANDE_SUPPLIER_ADDON nincs definiálva Error_COMMANDE_ADDON_NotDefined=Állandó COMMANDE_ADDON nincs definiálva Error_OrderNotChecked=Nincs megrendelés kiválasztva @@ -147,13 +151,13 @@ OrderByEMail=E-mail OrderByWWW=Online OrderByPhone=Telefon # Documents models -PDFEinsteinDescription=Teljes megrendelési modell (az Eratosthene sablon régi megvalósítása) -PDFEratostheneDescription=Teljes megrendelési modell +PDFEinsteinDescription=Teljes rendelési modell (az Eratosthene sablon régi megvalósítása) +PDFEratostheneDescription=Teljes rendelési modell PDFEdisonDescription=Egyszerű megrendelési sablon -PDFProformaDescription=Teljes Proforma számlasablon +PDFProformaDescription=Egy teljes Proforma számlasablon CreateInvoiceForThisCustomer=Megrendelések számlázása -CreateInvoiceForThisSupplier=Megrendelések számlázása -CreateInvoiceForThisReceptions=Bill receptions +CreateInvoiceForThisSupplier=Számlarendelések +CreateInvoiceForThisReceptions=Számla fogadása NoOrdersToInvoice=Nincsenek számlázandó megrendelések CloseProcessedOrdersAutomatically=Minden kijelölt megrendelés jelölése 'Feldolgozott'-nak. OrderCreation=Megrendelés készítés @@ -162,35 +166,35 @@ OrderCreated=A megrendelései elkészültek OrderFail=Hiba történt a megrendelések készítése közben CreateOrders=Megrendelések készítése ToBillSeveralOrderSelectCustomer=Több megrendeléshez tartozó számla elkészítéséhez először kattintson a partnerre, majd válassza ki: "%s" -OptionToSetOrderBilledNotEnabled=A munkafolyamat modulból származó opció, amely szerint a megrendelést automatikusan „Számlázott” -ra állítja a számla érvényesítésekor, nem engedélyezett, ezért a számla létrehozása után manuálisan „Számlázott” -ra kell állítania a megrendelések állapotát. -IfValidateInvoiceIsNoOrderStayUnbilled=Ha a számla érvényesítése „Nem”, akkor a megrendelés „Nem számlázott” állapotban marad a számla érvényesítéséig. -CloseReceivedSupplierOrdersAutomatically=Az "%s" státusz automatikus lezárása az összes termék kézhezvételekor. +OptionToSetOrderBilledNotEnabled=A munkafolyamat modul opciója, amely a számla érvényesítésekor automatikusan 'Számlázott'-ra állítja a sorrendet, nincs engedélyezve, ezért a számla generálása után manuálisan kell a rendelések állapotát 'Számlázva' értékre állítani. +IfValidateInvoiceIsNoOrderStayUnbilled=Ha a számla érvényesítése 'Nem', a megrendelés 'Nem számlázva' állapotú marad a számla érvényesítéséig. +CloseReceivedSupplierOrdersAutomatically=A rendelés automatikus lezárása "%s" állapotra, ha minden termék megérkezett. SetShippingMode=Szállítási mód beállítása WithReceptionFinished=A fogadás befejeződött #### supplier orders status -StatusSupplierOrderCanceledShort=Visszavonva +StatusSupplierOrderCanceledShort=Megszakítva StatusSupplierOrderDraftShort=Piszkozat -StatusSupplierOrderValidatedShort=Hitelesítetve +StatusSupplierOrderValidatedShort=Érvényesítve StatusSupplierOrderSentShort=Folyamatban StatusSupplierOrderSent=Szállítás folyamatban StatusSupplierOrderOnProcessShort=Megrendelve -StatusSupplierOrderProcessedShort=Feldolgozott +StatusSupplierOrderProcessedShort=Feldolgozva StatusSupplierOrderDelivered=Kézbesítve StatusSupplierOrderDeliveredShort=Kézbesítve StatusSupplierOrderToBillShort=Kézbesítve -StatusSupplierOrderApprovedShort=Jóváhagyott -StatusSupplierOrderRefusedShort=Visszautasított -StatusSupplierOrderToProcessShort=Feldolgozni -StatusSupplierOrderReceivedPartiallyShort=Részben kiszállított -StatusSupplierOrderReceivedAllShort=Beérkezett termékek -StatusSupplierOrderCanceled=Visszavonva -StatusSupplierOrderDraft=Tervezet (hitelesítés szükséges) -StatusSupplierOrderValidated=Hitelesítetve -StatusSupplierOrderOnProcess=Megrendelve - beérkezésre vár -StatusSupplierOrderOnProcessWithValidation=Megrendelve - beérkezésre vagy jóváhagyásra vár -StatusSupplierOrderProcessed=Feldolgozott +StatusSupplierOrderApprovedShort=Jóváhagyva +StatusSupplierOrderRefusedShort=Elutasítva +StatusSupplierOrderToProcessShort=Feldolgozás +StatusSupplierOrderReceivedPartiallyShort=Részben érkezett +StatusSupplierOrderReceivedAllShort=Termékek beérkeztek +StatusSupplierOrderCanceled=Megszakítva +StatusSupplierOrderDraft=Piszkozat (ellenőrizni kell) +StatusSupplierOrderValidated=Érvényesítve +StatusSupplierOrderOnProcess=Megrendelve - Készenléti vétel +StatusSupplierOrderOnProcessWithValidation=Megrendelve - Készenléti fogadás vagy érvényesítés +StatusSupplierOrderProcessed=Feldolgozva StatusSupplierOrderToBill=Kézbesítve -StatusSupplierOrderApproved=Jóváhagyott -StatusSupplierOrderRefused=Visszautasított -StatusSupplierOrderReceivedPartially=Részben kiszállított -StatusSupplierOrderReceivedAll=Összes termék beérkezett +StatusSupplierOrderApproved=Jóváhagyva +StatusSupplierOrderRefused=Elutasítva +StatusSupplierOrderReceivedPartially=Részben érkezett +StatusSupplierOrderReceivedAll=Minden termék beérkezett diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index f8e59d4ee71..37a0ed74e12 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -1,148 +1,148 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Biztonsági kód -NumberingShort=N ° +NumberingShort=N° Tools=Eszközök TMenuTools=Eszközök -ToolsDesc=A menükben nem szereplő összes eszköz ide van gyűjtve.
    Az eszközök a bal oldali menüből érhetők el. +ToolsDesc=A többi menübejegyzésben nem szereplő összes eszköz itt van csoportosítva.
    Az összes eszköz elérhető a bal oldali menüből. Birthday=Születésnap -BirthdayAlertOn=Születésnaposok aktív -BirthdayAlertOff=Születésnaposok inaktív -TransKey=Translation of the key TransKey -MonthOfInvoice=A számla dátumánap hónapja számmal (1-12) -TextMonthOfInvoice=A számla dátumának hónapja (szöveges) -PreviousMonthOfInvoice=A számla dátumát megelőző hónap (1–12) -TextPreviousMonthOfInvoice=A számla dátumát megelőző hónap (szöveges) -NextMonthOfInvoice=A számla dátumát követő hónap (1-12) -TextNextMonthOfInvoice=A számla dátumát követő hónap (szöveges) +BirthdayAlertOn=Születésnapi riasztás aktív +BirthdayAlertOff=születésnapi riasztás inaktív +TransKey=A TransKey kulcs fordítása +MonthOfInvoice=Számla dátumának hónapja (1-12. szám). +TextMonthOfInvoice=Számla dátumának hónapja (szöveg). +PreviousMonthOfInvoice=A számla dátumának előző hónapja (1-12. szám) +TextPreviousMonthOfInvoice=A számla dátumának előző hónapja (szövege). +NextMonthOfInvoice=A számla dátumának következő hónapja (1-12. szám) +TextNextMonthOfInvoice=A számla dátumának következő hónapja (szövege). PreviousMonth=Előző hónap -CurrentMonth=Jelenlegi hónap -ZipFileGeneratedInto=A(z) %s fájlba létrehozott ZIP-fájl. -DocFileGeneratedInto=A(z) %s fájlba létrehozott dokumentum fájl. -JumpToLogin=A kapcsolat megszakadt. Ugrás a bejelentkezési oldalra ... -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 +CurrentMonth=Aktuális hónap +ZipFileGeneratedInto=Zip fájl létrehozása ide: %s. +DocFileGeneratedInto=Dokumentumfájl létrehozása ide: %s. +JumpToLogin=Kikapcsolva. Ugrás a bejelentkezési oldalra... +MessageForm=Üzenet az online fizetési űrlapon +MessageOK=Üzenet a visszatérési oldalon egy érvényes fizetéshez +MessageKO=Üzenet a visszatérési oldalon törölt fizetés esetén ContentOfDirectoryIsNotEmpty=A könyvtár tartalma nem üres. DeleteAlsoContentRecursively=Jelölje be az összes tartalom rekurzív törléséhez -PoweredBy=Működteti -YearOfInvoice=A számla dátumának éve -PreviousYearOfInvoice=A számla dátumát megelőző év -NextYearOfInvoice=A számla dátumát követő év -DateNextInvoiceBeforeGen=A következő számla kelte (generálás előtt) -DateNextInvoiceAfterGen=A következő számla kelte (generálás után) -GraphInBarsAreLimitedToNMeasures=A grafikák „Sávok” módban %s mértékre korlátozva. Ehelyett automatikusan a „Vonalak” üzemmódot választottuk. +PoweredBy=Támogatja +YearOfInvoice=A számla keltezésének éve +PreviousYearOfInvoice=A számla dátumának előző éve +NextYearOfInvoice=A számla dátumának következő éve +DateNextInvoiceBeforeGen=Következő számla dátuma (generálás előtt) +DateNextInvoiceAfterGen=Következő számla dátuma (generálás után) +GraphInBarsAreLimitedToNMeasures=A grafika %s mértékre korlátozódik 'Bars' módban. Ehelyett automatikusan a „Vonalok” mód lett kiválasztva. OnlyOneFieldForXAxisIsPossible=Jelenleg csak 1 mező lehetséges X-tengelyként. Csak az első kiválasztott mező került kiválasztásra. -AtLeastOneMeasureIsRequired=Legalább 1 mező szükséges a méréshez -AtLeastOneXAxisIsRequired=Legalább 1 mező szükséges az X-tengelyhez -LatestBlogPosts=Legújabb blogbejegyzések -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail -Notify_ORDER_VALIDATE=Az értékesítési megrendelés érvényes -Notify_ORDER_SENTBYMAIL=Az értékesítési megrendelés postai úton elküldve -Notify_ORDER_SUPPLIER_SENTBYMAIL=A beszerzési megrendelés e-mailben elküldve -Notify_ORDER_SUPPLIER_VALIDATE=A beszerzési megrendelés rögzítve -Notify_ORDER_SUPPLIER_APPROVE=A beszerzési megrendelés jóváhagyva -Notify_ORDER_SUPPLIER_REFUSE=A beszerzési megrendelés elutasítva -Notify_PROPAL_VALIDATE=Ügyfél javaslat érvényesített -Notify_PROPAL_CLOSE_SIGNED=A vevői ajánlat lezárva, aláírva -Notify_PROPAL_CLOSE_REFUSED=A vevői ajánlat lezárva, visszautasítva -Notify_PROPAL_SENTBYMAIL=Kereskedelmi által küldött javaslatban mail -Notify_WITHDRAW_TRANSMIT=Átviteli visszavonása -Notify_WITHDRAW_CREDIT=Hitel visszavonása -Notify_WITHDRAW_EMIT=Isue visszavonása -Notify_COMPANY_CREATE=Harmadik fél létre -Notify_COMPANY_SENTBYMAIL=Partner-kártyáról küldött levelek -Notify_BILL_VALIDATE=Ügyfél számla hitelesített -Notify_BILL_UNVALIDATE=Vevőszámla nincs érvényesítve -Notify_BILL_PAYED=Ügyfél számla fizetve -Notify_BILL_CANCEL=Az ügyfél számlát törölt -Notify_BILL_SENTBYMAIL=Az ügyfél számlát postai úton -Notify_BILL_SUPPLIER_VALIDATE=Az eladói számla érvényes -Notify_BILL_SUPPLIER_PAYED=Az eladói számla kifizetve -Notify_BILL_SUPPLIER_SENTBYMAIL=Az eladó számla postai úton elküldve -Notify_BILL_SUPPLIER_CANCELED=Az eladói számla törölve -Notify_CONTRACT_VALIDATE=A szerződés a validált -Notify_FICHINTER_VALIDATE=Beavatkozás érvényesített -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention -Notify_FICHINTER_SENTBYMAIL=Beavatkozás küldése e-mailben -Notify_SHIPPING_VALIDATE=Szállítás validált +AtLeastOneMeasureIsRequired=Legalább 1 mező kitöltése kötelező +AtLeastOneXAxisIsRequired=Az X-Axishoz legalább 1 mezőt kötelező kitölteni +LatestBlogPosts=Legfrissebb blogbejegyzések +notiftouser=Felhasználóknak +notiftofixedemail=Rögzített levelekre +notiftouserandtofixedemail=Felhasználói és rögzített levelekhez +Notify_ORDER_VALIDATE=Értékesítési rendelés érvényesítve +Notify_ORDER_SENTBYMAIL=Értékesítési megrendelés postai úton +Notify_ORDER_SUPPLIER_SENTBYMAIL=A megrendelés e-mailben elküldve +Notify_ORDER_SUPPLIER_VALIDATE=Megrendelés rögzítve +Notify_ORDER_SUPPLIER_APPROVE=Megrendelés jóváhagyva +Notify_ORDER_SUPPLIER_REFUSE=Megrendelés elutasítva +Notify_PROPAL_VALIDATE=Az ügyfél ajánlata érvényesítve +Notify_PROPAL_CLOSE_SIGNED=Az ügyfél ajánlata lezárva, aláírva +Notify_PROPAL_CLOSE_REFUSED=Az ügyfél ajánlatának lezárása elutasítva +Notify_PROPAL_SENTBYMAIL=Kereskedelmi ajánlat levélben +Notify_WITHDRAW_TRANSMIT=Átvitel visszavonása +Notify_WITHDRAW_CREDIT=Hitelfelvétel +Notify_WITHDRAW_EMIT=Kivonás végrehajtása +Notify_COMPANY_CREATE=Harmadik fél létrehozta +Notify_COMPANY_SENTBYMAIL=Harmadik fél kártyájáról küldött levelek +Notify_BILL_VALIDATE=Az ügyfél számla érvényesítve +Notify_BILL_UNVALIDATE=Az ügyfél számlája nem érvényes +Notify_BILL_PAYED=Az ügyfél számla kifizetve +Notify_BILL_CANCEL=Az ügyfél számlája törölve +Notify_BILL_SENTBYMAIL=Az ügyfél által küldött számla postai úton +Notify_BILL_SUPPLIER_VALIDATE=Szállítói számla érvényesítve +Notify_BILL_SUPPLIER_PAYED=Szállítói számla kifizetve +Notify_BILL_SUPPLIER_SENTBYMAIL=Szállítói számla postai úton +Notify_BILL_SUPPLIER_CANCELED=Szállítói számla törölve +Notify_CONTRACT_VALIDATE=A szerződés érvényesítve +Notify_FICHINTER_VALIDATE=A beavatkozás érvényesítve +Notify_FICHINTER_ADD_CONTACT=Kapcsolattartó hozzáadva a beavatkozáshoz +Notify_FICHINTER_SENTBYMAIL=Beavatkozás levélben +Notify_SHIPPING_VALIDATE=Szállítás érvényesítve Notify_SHIPPING_SENTBYMAIL=Szállítás postai úton -Notify_MEMBER_VALIDATE=Tagállamnak jóvá -Notify_MEMBER_MODIFY=Tag módosítva -Notify_MEMBER_SUBSCRIPTION=Tagállam jegyzett +Notify_MEMBER_VALIDATE=Tag érvényesítve +Notify_MEMBER_MODIFY=A tag módosult +Notify_MEMBER_SUBSCRIPTION=Tag feliratkozott Notify_MEMBER_RESILIATE=A tag megszűnt Notify_MEMBER_DELETE=Tag törölve Notify_PROJECT_CREATE=Projekt létrehozása -Notify_TASK_CREATE=A feladat létrehozva -Notify_TASK_MODIFY=A feladat módosítva -Notify_TASK_DELETE=A feladat törölve -Notify_EXPENSE_REPORT_VALIDATE=A költségjelentés érvényesítve (jóváhagyás szükséges) -Notify_EXPENSE_REPORT_APPROVE=A költségjelentés jóváhagyva -Notify_HOLIDAY_VALIDATE=Leave request validated (approval required) -Notify_HOLIDAY_APPROVE=A kérelem jóváhagyása -Notify_ACTION_CREATE=Tevékenység hozzáadva a napirendhez -SeeModuleSetup=Lásd a %s modul beállításait -NbOfAttachedFiles=Száma csatolt fájlok / dokumentumok -TotalSizeOfAttachedFiles=Teljes méretű csatolt fájlok / dokumentumok +Notify_TASK_CREATE=Feladat létrehozva +Notify_TASK_MODIFY=Feladat módosítva +Notify_TASK_DELETE=Feladat törölve +Notify_EXPENSE_REPORT_VALIDATE=Költségjelentés érvényesítve (jóváhagyás szükséges) +Notify_EXPENSE_REPORT_APPROVE=Költségjelentés jóváhagyva +Notify_HOLIDAY_VALIDATE=A kérés érvényesítve (jóváhagyás szükséges) +Notify_HOLIDAY_APPROVE=A távozási kérelem jóváhagyva +Notify_ACTION_CREATE=Művelet hozzáadva a napirendhez +SeeModuleSetup=Lásd a %s modul beállítását +NbOfAttachedFiles=A csatolt fájlok/dokumentumok száma +TotalSizeOfAttachedFiles=A csatolt fájlok/dokumentumok teljes mérete MaxSize=Maximális méret -AttachANewFile=Helyezzen fel egy új file / dokumentum -LinkedObject=Csatolt objektum -NbOfActiveNotifications=Értesítések száma (a címzettek e-mailjeinek száma) -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\nLásd a csatolt __REF__ számlát\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nFelhívjuk figyelmét, hogy a __REF__ számlát valószínűleg nem fizették ki. A számla egy példányát emlékeztetőként csatoljuk.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendProposal=__(Helló)__\n\nKérjük keresse a csatolt __REF__ kereskedelmi ajánlatot\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=A kifizetéshez kattintson az alábbi linkre, ha még nem történt meg.\n\n%s\n\n -PredefinedMailContentGeneric=__(Helló)__\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. +AttachANewFile=Új fájl/dokumentum csatolása +LinkedObject=Linked objektum +NbOfActiveNotifications=Értesítések száma (címzett e-mailek száma) +PredefinedMailTest=__(Hello)__\nEz egy tesztlevél, amelyet a __EMAIL__ címre küldtek.\nA sorokat kocsivisszaküldés választja el.\n\n__USER_SIGNATURE__ +PredefinedMailTestHtml=__(Hello)__
    Ez egy teszt levél, amelyet a __EMAIL__ címre küldtek (a teszt szót félkövér betűvel kell szedni).
    A sorokat kocsivisszajelzés választja el.

    __USER_SIGNATURE__ +PredefinedMailContentContract=__(Üdv +PredefinedMailContentSendInvoice=__(Szia +PredefinedMailContentSendInvoiceReminder=Tisztelt __THIRDPARTY_NAME__!\n\nSzeretnénk emlékeztetni, hogy a __REF__ számú számlát úgy tűnik, nem fizették ki. Emlékeztetőül mellékeljük a számla másolatát.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=Tisztelt __THIRDPARTY_NAME__!

    A árajánlat elkészül __REF__ számon. Az árajánlatot megtalálja mellékletként csatolva.

    Kérjük tekintse át az árajánlatot, és a gyorsabb ügyintézés érdekében fogadja el vagy utasítsa vissza azt elektronikusan az alábbi linkre kattintva.


    Tisztelettel:

    __USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nAz árajánlatot __REF__ csatolva találja\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Hello)__\n\nKérjük, keresse a __REF__ rendelést a mellékletben\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nMegrendelésünket __REF__ csatolva találja\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nKérjük, keresse a __REF__ számlát a mellékeltben\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Hello)__\n\nKérjük, keresse a szállítási __REF__ címet a mellékletben\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Hello)__\n\nKérjük, keresse a beavatkozást __REF__ a mellékletben\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentLink=Az alábbi linkre kattintva befizetheti, ha még nem tette meg.\n\n%s\n\n +PredefinedMailContentGeneric=__(Üdvözlöm)__\n\n\n__(Tisztelettel)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendActionComm=Esemény emlékeztető "__EVENT_LABEL__", __EVENT_DATE__, __EVENT_TIME__

    Ez egy automatikus üzenet, kérjük, ne válaszoljon. DemoDesc=A Dolibarr egy kompakt ERP/CRM, amely számos üzleti modult támogat. Az összes modult bemutató demonstrációnak nincs értelme, mivel ez a forgatókönyv soha nem fordul elő (több száz elérhető). Azonban számos demo profil elérhető. -ChooseYourDemoProfil=Válassza ki az igényeinek leginkább megfelelő bemutató profilt ... -ChooseYourDemoProfilMore=... vagy készítsen saját profilt
    (manuális modulválasztás) -DemoFundation=Tagok kezelése egy alapítvány -DemoFundation2=Tagok kezelése és bankszámla egy alapítvány +ChooseYourDemoProfil=Válassza ki az igényeinek leginkább megfelelő bemutató profilt... +ChooseYourDemoProfilMore=...vagy készítse el saját profilját
    (manuális modulválasztás) +DemoFundation=Alapítvány tagjainak kezelése +DemoFundation2=Alapítvány tagjainak és bankszámlájának kezelése DemoCompanyServiceOnly=Csak vállalati vagy szabadúszó értékesítési szolgáltatás -DemoCompanyShopWithCashDesk=Készítsen egy bolt a pénztári -DemoCompanyProductAndStocks=Shop selling products with Point Of Sales -DemoCompanyManufacturing=Termékeket gyártó cég -DemoCompanyAll=Company with multiple activities (all main modules) -CreatedBy=Készítette %s -ModifiedBy=Módosította %s -ValidatedBy=Érvényesíti %s -SignedBy=Signed by %s -ClosedBy=Lezárta %s -CreatedById=Étrehozó ID -ModifiedById=A legutóbbi változtatást elvégező felhasználó azonosítója -ValidatedById=Jóváhagyó ID -CanceledById=Visszavonó ID -ClosedById=Lezáró ID -CreatedByLogin=Létrehozó -ModifiedByLogin=A legutóbbi változtatást elvégző felhasználó -ValidatedByLogin=Jóváhagyta -CanceledByLogin=Visszavonta -ClosedByLogin=Lezárta -FileWasRemoved=Fájl %s eltávolították -DirWasRemoved=Directory %s eltávolították -FeatureNotYetAvailable=A funkció a jelenlegi verzióban még nem érhető el -FeatureNotAvailableOnDevicesWithoutMouse=Feature not available on devices without mouse +DemoCompanyShopWithCashDesk=Pénztárral rendelkező üzlet vezetése +DemoCompanyProductAndStocks=Termékeket árusító bolt az értékesítési ponton +DemoCompanyManufacturing=Vállalati termékek gyártása +DemoCompanyAll=Több tevékenységgel rendelkező vállalat (minden fő modul) +CreatedBy=Létrehozta: %s +ModifiedBy=Módosította: %s +ValidatedBy=Érvényesítette: %s +SignedBy=%s írta alá +ClosedBy=Bezárta: %s +CreatedById=A létrehozó felhasználó azonosítója +ModifiedById=Utolsó módosítást végrehajtó felhasználói azonosító +ValidatedById=Felhasználói azonosító, aki ellenőrizte +CanceledById=Felhasználói azonosító, aki lemondta +ClosedById=Felhasználói azonosító, aki bezárta +CreatedByLogin=A létrehozó felhasználói bejelentkezés +ModifiedByLogin=A legutóbbi módosítást végrehajtó felhasználói bejelentkezés +ValidatedByLogin=Az érvényesített felhasználói bejelentkezés +CanceledByLogin=Felhasználói bejelentkezés, aki törölte +ClosedByLogin=Felhasználói bejelentkezés, aki bezárta +FileWasRemoved=%s fájl eltávolítva +DirWasRemoved=A %s könyvtár eltávolítva +FeatureNotYetAvailable=A funkció még nem érhető el a jelenlegi verzióban +FeatureNotAvailableOnDevicesWithoutMouse=A funkció nem érhető el egér nélküli eszközökön FeaturesSupported=Támogatott szolgáltatások Width=Szélesség Height=Magasság Depth=Mélység Top=Felső -Bottom=Alsó -Left=Balra +Bottom=Alul +Left=Bal Right=Jobb -CalculatedWeight=Számított súlya -CalculatedVolume=Számított mennyiség +CalculatedWeight=Számított súly +CalculatedVolume=Kiszámított mennyiség Weight=Súly WeightUnitton=tonna WeightUnitkg=kg @@ -160,9 +160,9 @@ SurfaceUnitm2=m² SurfaceUnitdm2=dm² SurfaceUnitcm2=cm² SurfaceUnitmm2=mm² -SurfaceUnitfoot2=négyzetláb +SurfaceUnitfoot2=ft² SurfaceUnitinch2=in² -Volume=Mennyiség +Volume=Hangerő VolumeUnitm3=m³ VolumeUnitdm3=dm³ (L) VolumeUnitcm3=cm³ (ml) @@ -176,130 +176,152 @@ SizeUnitm=m SizeUnitdm=dm SizeUnitcm=cm SizeUnitmm=mm -SizeUnitinch=hüvelyk +SizeUnitinch=inch SizeUnitfoot=láb SizeUnitpoint=pont -BugTracker=Bug tracker -SendNewPasswordDesc=Az űrlap lehetővé teszi új jelszó igénylését, melyet elküldünk az Ön e-mail címére.
    A változás akkor lép hatályba, ha rákattint az e-mailben található megerősítő linkre.
    Ellenőrizze a beérkező levelek mappáját. -BackToLoginPage=Vissza a belépéshez oldalra -AuthenticationDoesNotAllowSendNewPassword=Hitelesítési mód %s.
    Ebben az üzemmódban Dolibarr nem lehet tudni, sem megváltoztatni a jelszót.
    Forduljon a rendszergazdához, ha meg akarja változtatni a jelszavát. -EnableGDLibraryDesc=Telepítse vagy engedélyezze a GD könyvtárat a PHP beállításokban az opció használatához. -ProfIdShortDesc=Prof Id %s egy információs függően harmadik fél ország.
    Például, az ország %s, ez %s kódot. -DolibarrDemo=Dolibarr ERP / CRM demo +BugTracker=Hibakövető +SendNewPasswordDesc=Ez az űrlap lehetővé teszi új jelszó kérését. Elküldjük az Ön e-mail címére.
    A módosítás akkor lép életbe, ha rákattint az e-mailben található megerősítő linkre.
    Ellenőrizze a beérkezett üzeneteket. +BackToLoginPage=Vissza a bejelentkezési oldalra +AuthenticationDoesNotAllowSendNewPassword=A hitelesítési mód: %s.
    Ebben a módban a Dolibarr nem tudhatja és nem módosíthatja jelszavát.
    Ha módosítani szeretné a jelszavát, forduljon a rendszergazdához. +EnableGDLibraryDesc=Telepítse vagy engedélyezze a GD könyvtárat a PHP telepítésén, hogy használni tudja ezt az opciót. +ProfIdShortDesc=Prof Id %s egy harmadik fél országától függő információ.
    Például %s ország esetén ez a kód: %s. +DolibarrDemo=Dolibarr ERP/CRM bemutató StatsByNumberOfUnits=A termékek/szolgáltatások mennyiségének statisztikája -StatsByNumberOfEntities=Statistics for number of referring entities (no. of invoices, or orders...) -NumberOfProposals=A javaslatok száma -NumberOfCustomerOrders=Az értékesítési megrendelések száma -NumberOfCustomerInvoices=Ügyfélszámlák száma -NumberOfSupplierProposals=Eladói javaslatok száma -NumberOfSupplierOrders=A megrendelések száma -NumberOfSupplierInvoices=Eladói számlák száma -NumberOfContracts=A szerződések száma +StatsByNumberOfEntities=A hivatkozó entitások számának statisztikái (számlák vagy megrendelések száma...) +NumberOfProposals=Árajánlatok száma +NumberOfCustomerOrders=Értékesítési rendelések száma +NumberOfCustomerInvoices=Vásárlói számlák száma +NumberOfSupplierProposals=Szállítói ajánlatok száma +NumberOfSupplierOrders=Beszerzési rendelések száma +NumberOfSupplierInvoices=Szállítói számlák száma +NumberOfContracts=Szerződések száma NumberOfMos=Gyártási megrendelések száma -NumberOfUnitsProposals=Az javaslatok egységeinek száma -NumberOfUnitsCustomerOrders=Értékesítési megrendelések egységeinek száma -NumberOfUnitsCustomerInvoices=Az vevőszámla egységeinek száma -NumberOfUnitsSupplierProposals=Az eladói ajánlatok egységeinek száma -NumberOfUnitsSupplierOrders=A megrendelések egységeinek száma -NumberOfUnitsSupplierInvoices=Az eladói számlán szereplő egységek száma -NumberOfUnitsContracts=Szerződéseken szereplő egységek száma -NumberOfUnitsMos=Number of units to produce in manufacturing orders -EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. -EMailTextInterventionValidated=A beavatkozás %s nem érvényesítette. -EMailTextInvoiceValidated=Az %s számla érvényesítve. -EMailTextInvoicePayed=Az %s számla kifizetve. -EMailTextProposalValidated=Az %s javaslat érvényesítve. -EMailTextProposalClosedSigned=Az %s javaslat lezárva aláírva. -EMailTextOrderValidated=Az %s megrendelés érvényesítve. -EMailTextOrderApproved=Az %s megrendelés jóváhagyva. -EMailTextOrderValidatedBy=Az %s megrendelést %s rögzítette. -EMailTextOrderApprovedBy=Az %s megrendelést %s hagyta jóvá. -EMailTextOrderRefused=Az %s megrendelés elutasítva. -EMailTextOrderRefusedBy=Az %s megrendelést %s elutasította. -EMailTextExpeditionValidated=A %s kiszállítás érvényesítve. -EMailTextExpenseReportValidated=Az %s költségjelentés érvényesítve. -EMailTextExpenseReportApproved=Az %s költségjelentés jóváhagyva. -EMailTextHolidayValidated=Az %sszabadságkérelem érvényesítve. -EMailTextHolidayApproved=Az %s szabadságkérelem jóváhagyva. -EMailTextActionAdded=The action %s has been added to the Agenda. -ImportedWithSet=Behozatal adathalmaz +NumberOfUnitsProposals=A pályázatokon szereplő egységek száma +NumberOfUnitsCustomerOrders=Az értékesítési rendeléseken szereplő egységek száma +NumberOfUnitsCustomerInvoices=Egységek száma a vásárlói számlákon +NumberOfUnitsSupplierProposals=A szállítói ajánlatokban szereplő egységek száma +NumberOfUnitsSupplierOrders=A beszerzési rendeléseken szereplő egységek száma +NumberOfUnitsSupplierInvoices=A szállítói számlákon szereplő egységek száma +NumberOfUnitsContracts=A szerződésekben szereplő egységek száma +NumberOfUnitsMos=A gyártandó egységek száma a gyártási rendelésekben +EMailTextInterventionAddedContact=Új beavatkozást rendeltünk hozzád: %s. +EMailTextInterventionValidated=A %s beavatkozás érvényesítése megtörtént. +EMailTextInvoiceValidated=A %s számla érvényesítése megtörtént. +EMailTextInvoicePayed=%s számlát kifizettük. +EMailTextProposalValidated=A %s ajánlat érvényesítése megtörtént. +EMailTextProposalClosedSigned=A %s ajánlat lezárva és aláírva. +EMailTextOrderValidated=A %s rendelés érvényesítése megtörtént. +EMailTextOrderApproved=%s rendelés jóváhagyva. +EMailTextOrderValidatedBy=%s megrendelést %s rögzítette. +EMailTextOrderApprovedBy=A %s megrendelést %s jóváhagyta. +EMailTextOrderRefused=A %s rendelés elutasítva. +EMailTextOrderRefusedBy=%s megrendelését %s elutasította. +EMailTextExpeditionValidated=A %s szállítás érvényesítése megtörtént. +EMailTextExpenseReportValidated=%s költségjelentés érvényesítése megtörtént. +EMailTextExpenseReportApproved=%s költségjelentés jóváhagyva. +EMailTextHolidayValidated=%s távozási kérés érvényesítése megtörtént. +EMailTextHolidayApproved=%s távozási kérés jóváhagyva. +EMailTextActionAdded=A %s művelet felkerült a napirendre. +ImportedWithSet=Importálási adatkészlet DolibarrNotification=Automatikus értesítés -ResizeDesc=Írja be az új szélesség vagy új magasság. Arányt kell tartani során átméretezés ... +ResizeDesc=Adja meg az új szélességet VAGY új magasságot. Az arány megmarad az átméretezés során... NewLength=Új szélesség NewHeight=Új magasság -NewSizeAfterCropping=Új mérete a vágás után -DefineNewAreaToPick=Adjuk meg az új terület a képre, hogy vegye (bal gombbal a képre, majd húzza addig, amíg el nem éri a szemközti sarokban) -CurrentInformationOnImage=Ezt az eszközt arra tervezték, hogy segítse a kép átméretezését vagy kivágását. Ez az aktuálisan szerkesztett képen található információ -ImageEditor=Kép szerkesztő -YouReceiveMailBecauseOfNotification=Ez az üzenet, mert az e-mail bővült listájához célokat kell tájékoztatni a különleges események %s %s szoftver. +NewSizeAfterCropping=Új méret a kivágás után +DefineNewAreaToPick=Határozzon meg egy új területet a képen a kiválasztáshoz (bal gombbal kattintson a képre, majd húzza a szemközti sarokig) +CurrentInformationOnImage=Ez az eszköz célja, hogy segítsen átméretezni vagy kivágni egy képet. Ez az információ az aktuálisan szerkesztett képen +ImageEditor=Képszerkesztő +YouReceiveMailBecauseOfNotification=Azért kapta ezt az üzenetet, mert az e-mail címe felkerült a célpontok listájára, hogy tájékozódjon bizonyos eseményekről %s %s szoftverében. YouReceiveMailBecauseOfNotification2=Ez az esemény a következő: -ThisIsListOfModules=Ez egy lista a modulok által előre kiválasztott profil ez a demó (csak a leggyakrabban használt modulok látható ez a demó). Edit ezt egy személyre szabottabb demo és kattintson a "Start". -UseAdvancedPerms=A speciális engedélyek egyes modulok +ThisIsListOfModules=Ez a demóprofil által előre kiválasztott modulok listája (ebben a bemutatóban csak a leggyakoribb modulok láthatók). Szerkessze ezt, hogy személyre szabottabb demót kapjon, majd kattintson a "Start" gombra. +UseAdvancedPerms=Egyes modulok speciális engedélyeinek használata FileFormat=Fájlformátum -SelectAColor=Válasszon egy színt +SelectAColor=Válasszon színt AddFiles=Fájlok hozzáadása -StartUpload=Első feltöltés -CancelUpload=Mégsem feltöltési -FileIsTooBig=Fájlok túl nagy -PleaseBePatient=Kerjük legyen türelemmel... +StartUpload=Feltöltés indítása +CancelUpload=Feltöltés megszakítása +FileIsTooBig=A fájlok túl nagyok +PleaseBePatient=Kérjük, legyen türelmes... NewPassword=Új jelszó ResetPassword=Jelszó visszaállítása -RequestToResetPasswordReceived=A jelszó megváltoztatására vonatkozó kérelmet megkaptuk. -NewKeyIs=Ez az új kulcs a bejelentkezéshez -NewKeyWillBe=A szoftverbe való bejelentkezéshez szükséges új kulcsa -ClickHereToGoTo=Ide kattintva lépjen az %s oldalra -YouMustClickToChange=Először rá kell kattintania a következő linkre a jelszó megváltoztatásának érvényesítéséhez -ConfirmPasswordChange=Erősítse meg a jelszó módosítását -ForgetIfNothing=Ha nem kérte ezt a változtatást, felejtse el ezt az e-mailt. A hitelesítő adatait biztonságban tartjuk. -IfAmountHigherThan=Ha a mennyiség nagyobb, mint %s -SourcesRepository=Források tárolója +RequestToResetPasswordReceived=Jelszava megváltoztatására vonatkozó kérés érkezett. +NewKeyIs=Ez az Ön új belépési kulcsa +NewKeyWillBe=Az Ön új kulcsa a szoftverbe való bejelentkezéshez +ClickHereToGoTo=Kattintson ide a %s eléréséhez +YouMustClickToChange=A jelszómódosítás érvényesítéséhez azonban először a következő hivatkozásra kell kattintania +ConfirmPasswordChange=Jelszómódosítás megerősítése +ForgetIfNothing=Ha nem Ön kérte ezt a módosítást, egyszerűen felejtse el ezt az e-mailt. Az Ön hitelesítő adatai biztonságban vannak. +IfAmountHigherThan=Ha az összeg nagyobb, mint %s +SourcesRepository=A források tárháza Chart=Diagram PassEncoding=Jelszó kódolás PermissionsAdd=Engedélyek hozzáadva -PermissionsDelete=Engedélyek eltávolítva -YourPasswordMustHaveAtLeastXChars=A jelszónak legalább %s karakterből kell állnia -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=Jelszava sikeresen vissza lett állítva -ApplicantIpAddress=A pályázó IP címe -SMSSentTo=SMS elküldve %s-re +PermissionsDelete=Az engedélyek eltávolítva +YourPasswordMustHaveAtLeastXChars=A jelszavának legalább %s karakterből kell állnia +PasswordNeedAtLeastXUpperCaseChars=A jelszónak legalább %s nagybetűs karakternek kell lennie +PasswordNeedAtLeastXDigitChars=A jelszónak legalább %s numerikus karakterből kell állnia +PasswordNeedAtLeastXSpecialChars=A jelszónak legalább %s speciális karakterből kell állnia +PasswordNeedNoXConsecutiveChars=A jelszó nem tartalmazhat %s egymást követő hasonló karaktert +YourPasswordHasBeenReset=Jelszava sikeresen visszaállításra került +ApplicantIpAddress=A jelentkező IP-címe +SMSSentTo=SMS elküldve a következőnek: %s MissingIds=Hiányzó azonosítók -ThirdPartyCreatedByEmailCollector=Partner létrehozva az e-mail gyűjtő által az MSGID %s e-mailből -ContactCreatedByEmailCollector=Az elérhetőség/cím létrehozva az e-mail gyűjtő által az MSGID %s e-mailből -ProjectCreatedByEmailCollector=A projektet létrehozva az e-mail gyűjtő által az MSGID %s e-mailből -TicketCreatedByEmailCollector=A jegy létrehozva az e-mail gyűjtő által az MSGID %s e-mailből -OpeningHoursFormatDesc=A nyitvatartási időket (-tól-ig) kötőjellel (-) válassza el.
    Használjon szóközt a különböző idősávok megadásához.
    Példa: 8-12 14-18 -SuffixSessionName=Suffix for session name -LoginWith=Login with %s +ThirdPartyCreatedByEmailCollector=Harmadik fél az e-mail gyűjtő által létrehozott MSGID %s e-mailből +ContactCreatedByEmailCollector=Kapcsolattartó/cím az e-mail gyűjtő által létrehozott MSGID %s e-mailből +ProjectCreatedByEmailCollector=A projektet az e-mail gyűjtő hozta létre a %s MSGID e-mailből +TicketCreatedByEmailCollector=Jegyet az e-mail gyűjtő hozta létre a(z) %s MSGID e-mailből +OpeningHoursFormatDesc=Használjon egy - jelet a nyitvatartási és zárási idő elválasztásához.
    Használjon szóközt a különböző tartományok megadásához.
    Példa: 8-12 14-18 +SuffixSessionName=Utótag a munkamenet nevéhez +LoginWith=Belépés a következővel: %s ##### Export ##### -ExportsArea=Az export területén +ExportsArea=Exportálási terület AvailableFormats=Elérhető formátumok -LibraryUsed=Könyvtár használt -LibraryVersion=Könyvtár verzió +LibraryUsed=Használt könyvtár +LibraryVersion=Könyvtári verzió ExportableDatas=Exportálható adatok -NoExportableData=Nem exportálható adatok (nincs modulok exportálható adatok betöltése, vagy hiányzó engedélyek) +NoExportableData=Nincsenek exportálható adatok (nincs betöltve exportálható adatokkal rendelkező modul vagy hiányzó engedélyek) ##### External sites ##### -WebsiteSetup=Setup of module website +WebsiteSetup=A modul webhelyének beállítása WEBSITE_PAGEURL=Az oldal URL-je WEBSITE_TITLE=Cím WEBSITE_DESCRIPTION=Leírás WEBSITE_IMAGE=Kép -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_IMAGEDesc=A képhordozó relatív elérési útja. Ezt üresen hagyhatja, mivel ezt ritkán használják (dinamikus tartalom használhatja miniatűr megjelenítésére a blogbejegyzések listájában). Használja a __WEBSITE_KEY__ kulcsot az elérési útban, ha az elérési út a webhely nevétől függ (például: image/__WEBSITE_KEY__/stories/myimage.png). WEBSITE_KEYWORDS=Kulcsszavak LinesToImport=Importálandó sorok MemoryUsage=Memóriahasználat -RequestDuration=A kérelem időtartama -ProductsPerPopularity=Products/Services by popularity -PopuProp=Termékek/szolgáltatások népszerűsége a javaslatokban -PopuCom=Termékek/szolgáltatások népszerűsége a megrendelésekben -ProductStatistics=Termékek/szolgáltatások statisztikája -NbOfQtyInOrders=Mennyiség a megrendelésekben -SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... +RequestDuration=A kérés időtartama +ProductsPerPopularity=Termékek/szolgáltatások népszerűség szerint +PopuProp=Termékek/szolgáltatások népszerűség szerint az ajánlatokban +PopuCom=Termékek/szolgáltatások népszerűség szerint a rendelésekben +ProductStatistics=Termékek/szolgáltatások statisztika +NbOfQtyInOrders=Mennyiség a rendelésekben +SelectTheTypeOfObjectToAnalyze=Válasszon ki egy objektumot a statisztikák megtekintéséhez... -ConfirmBtnCommonContent = Are you sure you want to "%s" ? +ConfirmBtnCommonContent = Biztos, hogy "%s"? ConfirmBtnCommonTitle = Erősítse meg a műveletet -CloseDialog = Zár +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 c23a1317e03..6136bf4179d 100644 --- a/htdocs/langs/hu_HU/partnership.lang +++ b/htdocs/langs/hu_HU/partnership.lang @@ -16,77 +16,79 @@ # # 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=Partnerség kezelése +PartnershipDescription=Partnerség modul kezelés +PartnershipDescriptionLong= Partnerség modul kezelés +Partnership=Partnerség +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 # # Menu # -NewPartnership=New Partnership -ListOfPartnerships=List of partnership +NewPartnership=Új partnerség +ListOfPartnerships=A partnerségek listája # # 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=Partnerség beállítása +PartnershipAbout=A partnerségről +PartnershipAboutPage=Partnerség az oldalról +partnershipforthirdpartyormember=A partner státuszát „harmadik félre” vagy „tagra” kell állítani +PARTNERSHIP_IS_MANAGED_FOR=Partnerség kezelve +PARTNERSHIP_BACKLINKS_TO_CHECK=Visszamutató hivatkozások az ellenőrzéshez +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb napok a partnerség állapotának lemondása előtt, ha az előfizetés lejárt +ReferingWebsiteCheck=A webhely hivatkozásának ellenőrzése +ReferingWebsiteCheckDesc=Engedélyezhet egy funkciót, amellyel ellenőrizheti, hogy partnerei hozzáadtak-e egy visszamutató hivatkozást az Ön webhelyének domainjéhez a saját webhelyükön. +PublicFormRegistrationPartnerDesc=A Dolibarr nyilvános URL-t/webhelyet tud Önnek biztosítani, amely lehetővé teszi a külső látogatók számára, hogy kérjék a partnerségi programban való részvételt. # # Object # -DeletePartnership=Delete a partnership -PartnershipDedicatedToThisThirdParty=Partnership dedicated to this third party -PartnershipDedicatedToThisMember=Partnership dedicated to this member -DatePartnershipStart=Kezdet dátuma +DeletePartnership=Partnerség törlése +PartnershipDedicatedToThisThirdParty=Ennek a harmadik félnek szentelt partnerség +PartnershipDedicatedToThisMember=Ennek a tagnak szentelt partnerség +DatePartnershipStart=Kezdő dátum DatePartnershipEnd=Befejezés dátuma -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=Elutasítás oka +ReasonDeclineOrCancel=Elutasítás oka +PartnershipAlreadyExist=Már létezik partnerség +ManagePartnership=Partnerség kezelése +BacklinkNotFoundOnPartnerWebsite=A visszamutató hivatkozás nem található a partner webhelyén +ConfirmClosePartnershipAsk=Biztosan felmondja ezt a partnerséget? +PartnershipType=Partnerség típusa +PartnershipRefApproved=%s partnerség jóváhagyva +KeywordToCheckInWebsite=Ha ellenőrizni szeretné, hogy egy adott kulcsszó megtalálható-e az egyes partnerek weboldalán, akkor itt adja meg ezt a kulcsszót +PartnershipDraft=Piszkozat +PartnershipAccepted=Elfogadva +PartnershipRefused=Elutasítva +PartnershipCanceled=Megszakítva +PartnershipManagedFor=A partnerek # # Template Mail # -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled +SendingEmailOnPartnershipWillSoonBeCanceled=A partnerség hamarosan megszűnik +SendingEmailOnPartnershipRefused=A partnerség elutasítva +SendingEmailOnPartnershipAccepted=Partnerség elfogadva +SendingEmailOnPartnershipCanceled=Partnerség törölve -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled +YourPartnershipWillSoonBeCanceledTopic=A partnerség hamarosan megszűnik +YourPartnershipRefusedTopic=A partnerség elutasítva +YourPartnershipAcceptedTopic=Partnerség elfogadva +YourPartnershipCanceledTopic=Partnerség törölve -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=Tájékoztatjuk, hogy partnerségét hamarosan megszüntetjük (a visszamutató hivatkozás nem található) +YourPartnershipRefusedContent=Tájékoztatjuk, hogy partnerségi kérelmét elutasították. +YourPartnershipAcceptedContent=Tájékoztatjuk, hogy partnerségi kérelmét elfogadtuk. +YourPartnershipCanceledContent=Tájékoztatjuk, hogy a partnerségét megszüntettük. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason +CountLastUrlCheckError=Az utolsó URL-ellenőrzés hibáinak száma +LastCheckBacklink=Az utolsó URL-ellenőrzés dátuma +ReasonDeclineOrCancel=Elutasítás oka + +NewPartnershipRequest=Új partnerségi kérelem +NewPartnershipRequestDesc=Ez az űrlap lehetővé teszi, hogy kérjen részt partnerségi programunkban. Ha segítségre van szüksége az űrlap kitöltéséhez, kérjük, lépjen kapcsolatba e-mailben %s . -# -# Status -# -PartnershipDraft=Piszkozat -PartnershipAccepted=Elfogadott -PartnershipRefused=Visszautasított -PartnershipCanceled=Visszavonva -PartnershipManagedFor=Partners are 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 4863e3e29f5..f9f3cebf843 100644 --- a/htdocs/langs/hu_HU/products.lang +++ b/htdocs/langs/hu_HU/products.lang @@ -1,194 +1,195 @@ # Dolibarr language file - Source file is en_US - products -ProductRef=Termék ref#. -ProductLabel=Termék neve +ProductRef=Termék ref. +ProductLabel=Termékcímke ProductLabelTranslated=Lefordított termékcímke ProductDescription=Termékleírás -ProductDescriptionTranslated=Lefordított termékleírás -ProductNoteTranslated=Lefordított termékjegyzet -ProductServiceCard=Termék/Szolgáltatás kártya +ProductDescriptionTranslated=Termékleírás lefordítása +ProductNoteTranslated=A termékleírás lefordítása +ProductServiceCard=Termékek/Szolgáltatások kártya TMenuProducts=Termékek TMenuServices=Szolgáltatások Products=Termékek Services=Szolgáltatások Product=Termék Service=Szolgáltatás -ProductId=Termék/Szolgáltatás azon. +ProductId=Termék/szolgáltatás azonosító Create=Létrehozás Reference=Referencia NewProduct=Új termék NewService=Új szolgáltatás -ProductVatMassChange=ÁFA globális frissítése -ProductVatMassChangeDesc=Ez az eszköz frissíti MINDEN termékre és szolgáltatásra meghatározott HÉA/ÁFA-kulcsot! -MassBarcodeInit=Tömeges vonalkód létrehozás -MassBarcodeInitDesc=Ezen az oldalon lehet vonalkódot létrehozni azon objektumoknak, amelyeknél még nincs meghatározva vonalkód. Ellenőrizze a beállításokat, mielőtt a barcode modul befejeződik. +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! +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 (EU vásárlás) -ProductAccountancyBuyExportCode=Számviteli kód (import 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 eladás) -ProductAccountancySellExportCode=Számviteli kód (export eladás) -ProductOrService=Termék vagy Szolgáltatás -ProductsAndServices=Termékek és Szolgáltatások -ProductsOrServices=Termékek vagy Szolgáltatások +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 ProductsPipeServices=Termékek | Szolgáltatások -ProductsOnSale=Eladó termékek -ProductsOnPurchase=Megvásárolható termékek -ProductsOnSaleOnly=Csak eladó termékek -ProductsOnPurchaseOnly=Kizárólag vásárlásra szánt termékek -ProductsNotOnSell=Nem eladó és nem vásárolható termékek -ProductsOnSellAndOnBuy=Eladó és vásárolható termékek -ServicesOnSale=Eladó szolgáltatások -ServicesOnPurchase=Megvásárolható szolgáltatások -ServicesOnSaleOnly=Kizárólag eladó szolgáltatások -ServicesOnPurchaseOnly=Kizárólag megvásárolható szolgáltatások -ServicesNotOnSell=Nem eladó és nem vásárolható szolgáltatások -ServicesOnSellAndOnBuy=Eladó és vásárolható szolgáltatások -LastModifiedProductsAndServices=Latest %s products/services which were modified -LastRecordedProducts=A legújabb %s rögzített termékek -LastRecordedServices=A legújabb %s rögzített szolgáltatás +ProductsOnSale=Eladható termékek +ProductsOnPurchase=Vásárolható termékek +ProductsOnSaleOnly=Csak eladható termékek +ProductsOnPurchaseOnly=Csak megvásárolható termékek +ProductsNotOnSell=Nem eladható és nem vásárolható termékek +ProductsOnSellAndOnBuy=Eladható és megvá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 +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 CardProduct0=Termék CardProduct1=Szolgáltatás Stock=Készlet MenuStocks=Készletek -Stocks=A termékek készlete és elhelyezkedése (raktár) +Stocks=A termékek készletei és elhelyezkedése (raktár). Movements=Mozgások Sell=Eladás Buy=Vásárlás -OnSell=Elérhető -OnBuy=Vásárolható -NotOnSell=Nem vásárolható -ProductStatusOnSell=Elérhető -ProductStatusNotOnSell=Nem elérhető -ProductStatusOnSellShort=Elérhető -ProductStatusNotOnSellShort=Nem elérhető -ProductStatusOnBuy=Vásárolható -ProductStatusNotOnBuy=Nem vásárolható -ProductStatusOnBuyShort=Vásárolható -ProductStatusNotOnBuyShort=Nem vásárolható -UpdateVAT=ÁFA frissítése -UpdateDefaultPrice=Alapár fissítése -UpdateLevelPrices=Árak frissítése minden szinten +OnSell=Eladó +OnBuy=Vásárlásra +NotOnSell=Nem eladható +ProductStatusOnSell=Eladó +ProductStatusNotOnSell=Nem eladó +ProductStatusOnSellShort=Eladó +ProductStatusNotOnSellShort=Nem eladó +ProductStatusOnBuy=Vásárlásra +ProductStatusNotOnBuy=Nem vásárolható meg +ProductStatusOnBuyShort=Vásárlásra +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 SellingPrice=Eladási ár SellingPriceHT=Eladási ár (adó nélkül) -SellingPriceTTC=Eladási ár (bruttó) -SellingMinPriceTTC=Minimális eladási ár (adóval) -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=Ezt az értéket fel lehet használni a különbözet (árrés) kiszámításához. -ManufacturingPrice=Gyártási/gyártói ár +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. +ManufacturingPrice=Gyártási ár SoldAmount=Eladott mennyiség -PurchasedAmount=Vásárolt mennyiség +PurchasedAmount=Vásárolt összeg NewPrice=Új ár -MinPrice=Min. eladási ár\n -EditSellingPriceLabel=Az eladási árcímke szerkesztése -CantBeLessThanMinPrice=Az eladási ár nem lehet kisebb a minimum árnál (nettó %s) -ContractStatusClosed=Lezárva -ErrorProductAlreadyExists=Egy terméke ezzel a referenciával %s már létezik. -ErrorProductBadRefOrLabel=Rossz érték a referenciának vagy feliratnak. -ErrorProductClone=A termék vagy szolgáltatás duplikálása során hiba lépett fel -ErrorPriceCantBeLowerThanMinPrice=Hiba, az ár nem lehet alacsonyabb, mint a minimális ár. -Suppliers=Eladók -SupplierRef=Eladó cikkelem (SKU) -ShowProduct=Termék megmutatása -ShowService=Szolgáltatás megmutatása -ProductsAndServicesArea=Termékek és Szolgáltatások területe -ProductsArea=Termékek területe -ServicesArea=Szolgáltatások területe -ListOfStockMovements=Készlet mozgások listája -BuyingPrice=Vásárlási ár -PriceForEachProduct=Specifikus árú termékek -SupplierCard=Eladói kártya -PriceRemoved=Ár eltávolítva +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. +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. +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 +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 +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 BarCode=Vonalkód -BarcodeType=Vonalkód típus +BarcodeType=Vonalkód típusa SetDefaultBarcodeType=Vonalkód típusának beállítása BarcodeValue=Vonalkód érték -NoteNotVisibleOnBill=Megjegyzés (nem látszik a számlákon, ajánlatokon...) -ServiceLimitedDuration=Ha a termék vagy szolgáltatás időkorlátos: -FillWithLastServiceDates=Fill with last service line dates -MultiPricesAbility=Több árszegmens termékenként / szolgáltatásonként (minden ügyfél egy árszegmensben van) +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) MultiPricesNumPrices=Árak száma -DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices +DefaultPriceType=Alapértelmezett árak alapja (az 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 (termékváltozatok, például szín, méret) -AssociatedProducts=Kits +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=Number of parent packaging product -ParentProducts=Főtermékek -IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit -IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit -KeywordFilter=Kulcsszó szűrés -CategoryFilter=Kategória szűrés -ProductToAddSearch=Termék keresése hozzáadáshoz -NoMatchFound=Nincs találat -ListOfProductsServices=Termékek / szolgáltatások felsorolása -ProductAssociationList=List of products/services that are component(s) of this kit -ProductParentList=List of kits with this product as a component -ErrorAssociationIsFatherOfThis=Az egyik kiválaszott termék szülője az aktuális terméknek +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ő +CategoryFilter=Kategória szűrő +ProductToAddSearch=A 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 DeleteProduct=Termék/szolgáltatás törlése -ConfirmDeleteProduct=Biztos törölni akarja ezt a terméket/szolgáltatást? -ProductDeleted="%s" Termék/szolgáltatás törölve az adatbázisból. +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. 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=Biztos törölni akarja ezt a termékvonalat? -ProductSpecial=Különleges -QtyMin=Min. vásárlási mennyiség -PriceQtyMin=Price quantity min. -PriceQtyMinCurrency=Ár (valuta) ehhez a mennyiséghez. (Nincs leárazás) +ConfirmDeleteProductLine=Biztosan törölni szeretné ezt a terméksort? +ProductSpecial=Speciális +QtyMin=Min. beszerzési mennyiség +PriceQtyMin=Ár mennyiség min. +PriceQtyMinCurrency=Ennek a mennyiségnek az ára (pénznem). (Nincs leárazás) +WithoutDiscount=Kedvezmény nélkül VATRateForSupplierProduct=Áfakulcs (ehhez az eladóhoz / termékhez) -DiscountQtyMin=Discount for this qty. -NoPriceDefinedForThisSupplier=Ehhez a gyártóhoz / termékhez nincs megadva ár / mennyiség -NoSupplierPriceDefinedForThisProduct=Ehhez a termékhez nincs meghatározva eladási ár / mennyiség -PredefinedItem=Predefined item +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 +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=Predefined product to purchase -PredefinedServicesToPurchase=Predefined services to purchase -PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase -NotPredefinedProducts=Not predefined products/services -GenerateThumb=Kiskép generálása -ServiceNb=#%s szolgáltatás -ListProductServiceByPopularity=Termékek/szolgáltatások népszerűség szerinti listája -ListProductByPopularity=Termékek/szolgáltatások listázása népszerűség szerint -ListServiceByPopularity=Szolgáltatások listája népszerűség szerint +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 +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 +ListProductByPopularity=Termékek listája népszerűség szerint +ListServiceByPopularity=A szolgáltatások listája népszerűség szerint Finished=Gyártott termék RowMaterial=Nyersanyag -ConfirmCloneProduct=Biztos benne, hogy klónozni szeretne egy terméket vagy szolgáltatást %s? -CloneContentProduct=Clone all main information of the product/service -ClonePricesProduct=Árak klónozása -CloneCategoriesProduct=Címkék/kategóriák klónozása +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 +CloneCategoriesProduct=Kapcsolt címkék/kategóriák klónozása CloneCompositionProduct=Virtuális termékek/szolgáltatások klónozása -CloneCombinationsProduct=Klónozza a termékváltozatokat +CloneCombinationsProduct=A termékváltozatok klónozása ProductIsUsed=Ez a termék használatban van -NewRefForClone=Új termék/szolgáltatás ref#. +NewRefForClone=Új termék/szolgáltatás hivatkozása SellingPrices=Eladási árak BuyingPrices=Vételi árak -CustomerPrices=Végfelhasználói árak -SuppliersPrices=Eladási árak -SuppliersPricesOfProductsOrServices=Eladási árak (termékek vagy szolgáltatások) -CustomCode=Customs|Commodity|HS code -CountryOrigin=Származási ország\n -RegionStateOrigin=Származási régió\n -StateOrigin=State|Province of origin -Nature=Nature of product (raw/manufactured) -NatureOfProductShort=A termék jellege\n -NatureOfProductDesc=Raw material or manufactured product +CustomerPrices=Vásárlói árak +SuppliersPrices=Szállítói árak +SuppliersPricesOfProductsOrServices=Szállító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ó +StateOrigin=Állam | Származási tartomány +Nature=A termék jellege (nyers/gyártott) +NatureOfProductShort=A termék jellege +NatureOfProductDesc=Nyersanyag vagy előállított termék ShortLabel=Rövid címke Unit=Egység -p=db. +p=u. set=készlet se=készlet -second=másodperc -s=mp +second=második +s=s hour=óra -h=ó +h=h day=nap -d=n -kilogram=kiló +d=d +kilogram=kilogramm kg=kg gram=gramm g=g @@ -200,15 +201,15 @@ m3=m³ liter=liter l=L unitP=Darab -unitSET=Készlet -unitS=Másoderc +unitSET=Beállítva +unitS=Második unitH=Óra unitD=Nap unitG=gramm -unitM=méter -unitLM=folyóméter -unitM2=négyzetméter -unitM3=köbméter +unitM=Méter +unitLM=Lineáris méter +unitM2=Négyzetméter +unitM3=Köbméter unitL=liter unitT=tonna unitKG=kg @@ -216,19 +217,19 @@ unitG=gramm unitMG=mg unitLB=font unitOZ=uncia -unitM=méter +unitM=Méter unitDM=dm unitCM=cm unitMM=mm -unitFT=láb -unitIN=inch -unitM2=négyzetméter +unitFT=ft +unitIN=in +unitM2=Négyzetméter unitDM2=dm² unitCM2=cm² unitMM2=mm² unitFT2=ft² unitIN2=in² -unitM3=köbméter +unitM3=Köbméter unitDM3=dm³ unitCM3=cm³ unitMM3=mm³ @@ -236,131 +237,131 @@ unitFT3=ft³ unitIN3=in³ unitOZ3=uncia unitgallon=gallon -ProductCodeModel=Termék ref sablon -ServiceCodeModel=Szolgáltatás ref sablon -CurrentProductPrice=Aktuális ár -AlwaysUseNewPrice=Mindig a termék/szolgáltatás aktuális árát használja -AlwaysUseFixedPrice=Használja a fix árat -PriceByQuantity=Mennyiségtől függő ár -DisablePriceByQty=Disable prices by quantity -PriceByQuantityRange=Mennyiségi intervallum +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 +PriceByQuantityRange=Mennyiségtartomány MultipriceRules=Automatikus árak a szegmenshez -UseMultipriceRules=Használjon árszegmens-szabályokat (meghatározva a termékmodul beállításában), hogy automatikusan kiszámítsa az összes többi szegmens árát az első szegmens szerint -PercentVariationOver=%% változó ár %s fölött -PercentDiscountOver=%% kedvezmény %s fölött -KeepEmptyForAutoCalculation=Hagyja üresen a termékek tömegéből vagy mennyiségéből történő automatikus kiszámításhoz +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 VariantRefExample=Példák: SZÍN, MÉRET -VariantLabelExample=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 ár szegmensenként -ProductsOrServiceMultiPrice=Vevői árak (termékek vagy szolgáltatások, többáras) -ProductSellByQuarterHT=A termékek forgalma negyedévente adózás előtt -ServiceSellByQuarterHT=A szolgáltatások forgalma negyedévente adózás előtt -Quarter1=1. negyedév -Quarter2=2. negyedév -Quarter3=3. negyedév -Quarter4=4. negyedév -BarCodePrintsheet=Vonalkód nyomtatása -PageToGenerateBarCodeSheets=Ezzel az eszközzel nyomtathat vonalkódos matricákat. Válassza ki a matricaoldal formátumát, a vonalkód típusát és a vonalkód értékét, majd kattintson a(z) %s gombra. -NumberOfStickers=Egy lapon lévő matricák száma -PrintsheetForOneBarCode=Több matrica nyomtatása egyetlen vonalkóddal -BuildPageToPrint=Oldal generálása nyomtatáshoz -FillBarCodeTypeAndValueManually=Adja meg a vonalkód típusát és értékét. -FillBarCodeTypeAndValueFromProduct=Vonalkód típusának és értékének megadása létező termékről -FillBarCodeTypeAndValueFromThirdParty=Töltse ki a vonalkód típusát és értékét a partner vonalkódjából. -DefinitionOfBarCodeForProductNotComplete=A(z) %s terméknél a vonalkód típusának vagy értékének meghatározása nem teljes. -DefinitionOfBarCodeForThirdpartyNotComplete=A(z) %s partnernél a vonalkód típusának vagy értékének meghatározása nem teljes . -BarCodeDataForProduct=Az %s termék vonalkód információi: -BarCodeDataForThirdparty=A(z) %s partner vonalkód-adatai : -ResetBarcodeForAllRecords=Az összes rekord vonalkód értékének megadása (felülírja új értékkel a már definiált vonalkód értéket is) -PriceByCustomer=Egyedi ár minden vevő számára +ProductsMultiPrice=Termékek és árak az egyes árszegmensekhez +ProductsOrServiceMultiPrice=Vásárlói á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ó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 oldalon nyomtatandó matricák száma +PrintsheetForOneBarCode=Több matrica nyomtatása egy vonalkódhoz +BuildPageToPrint=Oldal létrehozása nyomtatáshoz +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. +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 PriceCatalogue=Egyetlen eladási ár termékenként/szolgáltatásonként -PricingRule=Az eladási árak szabályai -AddCustomerPrice=Ár hozzáadása ügyfelek szerint -ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries -PriceByCustomerLog=A korábbi vevői árak naplója -MinimumPriceLimit=A minimális ár nem lehet kisebb mint %s -MinimumRecommendedPrice=Ajánlott minimális ár: %s -PriceExpressionEditor=Ármeghatározó képletszerkesztő -PriceExpressionSelected=Aktuális ármeghatározó képlet -PriceExpressionEditorHelp1="price = 2 + 2" vagy "2 + 2" az ár meghatározásához. Használjon ";"-t a képletek elválasztásához -PriceExpressionEditorHelp2=Az ExtraFieldshez olyan változókkal férhet hozzá, mint az #extrafield_myextrafieldkey#, és a globális változókhoz az #global_mycode# -PriceExpressionEditorHelp3=Mind a termékek / szolgáltatások, mind az eladási árak között elérhetőek ezek a változók:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# -PriceExpressionEditorHelp4=Csak a termékek / szolgáltatások árainál: #supplier_min_price#
    Csak eladói áraknál: #supplier_quantity# és #supplier_tva_tx# +PricingRule=Eladási árakra vonatkozó szabályok +AddCustomerPrice=Ár 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 +MinimumPriceLimit=A minimális ár nem lehet alacsonyabb, mint %s +MinimumRecommendedPrice=A minimális ajánlott ár: %s +PriceExpressionEditor=Árkifejezé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 +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# PriceExpressionEditorHelp5=Elérhető globális értékek: PriceMode=Ár mód PriceNumeric=Szám -DefaultPrice=Alapár -DefaultPriceLog=Korábban megadott alapárak visszatekintése -ComposedProductIncDecStock=Növelje/csökkentse a készletet a szülő termék változásakor -ComposedProduct=Gyermek termékek +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 MinSupplierPrice=Minimális vételár MinCustomerPrice=Minimális eladási ár -NoDynamicPrice=Nincs dinamikus ár\n +NoDynamicPrice=Nincs dinamikus ár DynamicPriceConfiguration=Dinamikus árkonfiguráció -DynamicPriceDesc=Megadhat matematikai képleteket a vevői vagy a szállítói árak kiszámításához. Az ilyen képletek felhasználhatják az összes matematikai operátort, néhány állandót és változót. Itt meghatározhatja azokat a változókat, amelyeket használni kíván. Ha a változónak automatikus frissítésre van szüksége, megadhatja a külső URL-t, hogy a Dolibarr automatikusan frissítse az értéket. +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. AddVariable=Változó hozzáadása AddUpdater=Frissítő hozzáadása GlobalVariables=Globális változók -VariableToUpdate=Variable to update -GlobalVariableUpdaters=A változók külső frissítései -GlobalVariableUpdaterType0=JSON-adatok -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=Frissítési periódus (perc) -LastUpdated=Legutolsó frissítés -CorrectlyUpdated=Rendben frissítve -PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is -PropalMergePdfProductChooseFile=PDF fájlok kiválasztása -IncludingProductWithTag=Including products/services with the tag -DefaultPriceRealPriceMayDependOnCustomer=Alapár, a valós ár vevőnként eltérhet -WarningSelectOneDocument=Kérjük, válasszon legalább egy dokumentumot +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, +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 +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 +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 +WarningSelectOneDocument=Kérjük, válasszon ki legalább egy dokumentumot DefaultUnitToShow=Egység -NbOfQtyInProposals=Mennyiség a javaslatokban -ClinkOnALinkOfColumn=Kattintson a %s oszlop hivatkozására a részletes nézethez... -ProductsOrServicesTranslations=Termékek / szolgáltatások fordítása +NbOfQtyInProposals=Ajánlatok mennyisége +ClinkOnALinkOfColumn=Kattintson a %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 térfogata -WeightUnits=Súly egység -VolumeUnits=Térfogat egység -WidthUnits=Szélesség mértékegység -LengthUnits=Hosszúság mértékegység -HeightUnits=Magasság mértékegység -SurfaceUnits=Területegység -SizeUnits=Méret egység +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 +SurfaceUnits=Felületi egység +SizeUnits=Méretegység DeleteProductBuyPrice=Vételár törlése -ConfirmDeleteProductBuyPrice=Biztosan törli ezt a vételárat? +ConfirmDeleteProductBuyPrice=Biztosan törölni szeretné ezt a vételárat? SubProduct=Altermék ProductSheet=Terméklap ServiceSheet=Szolgáltatási lap PossibleValues=Lehetséges értékek -GoOnMenuToCreateVairants=Lépjen a %s - %s menübe az attribútumváltozatok (pl. színek, méret, ...) elkészítéséhez. -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=A termék szállítói leírása -UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents) +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) PackagingForThisProduct=Csomagolás -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 +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 #Attributes VariantAttributes=Változat attribútumok -ProductAttributes=Változat attribútumok termékekhez -ProductAttributeName=Változat attribútum %s +ProductAttributes=Változatos attribútumok a termékekhez +ProductAttributeName=%s változat attribútum ProductAttribute=Változat attribútum -ProductAttributeDeleteDialog=Biztosan törli ezt az attribútumot? Minden érték törlődik -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? -ProductCombinationDeleteDialog=Biztosan törli a "%s" termék változatát? -ProductCombinationAlreadyUsed=Hiba történt a változat törlésekor. Kérjük, ellenőrizze, hogy nem használják semmilyen objektumban +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? +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=Propagate variants -HideProductCombinations=A termékváltozatok elrejtése a termékválasztóban +PropagateVariant=Változatok terjesztése +HideProductCombinations=Termékváltozat elrejtése a termékválasztóban ProductCombination=Változat NewProductCombination=Új változat EditProductCombination=Változat szerkesztése @@ -369,45 +370,60 @@ EditProductCombinations=Változatok szerkesztése SelectCombination=Kombináció kiválasztása ProductCombinationGenerator=Változatgenerátor Features=Jellemzők -PriceImpact=Price impact -ImpactOnPriceLevel=Impact on price level %s -ApplyToAllPriceImpactLevel= Alkalmazza minden szintre -ApplyToAllPriceImpactLevelHelp=By clicking here you set the same price impact on all levels -WeightImpact=Weight impact +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 NewProductAttribute=Új attribútum NewProductAttributeValue=Új attribútumérték -ErrorCreatingProductAttributeValue=Hiba történt az attribútumérték létrehozása során. Lehetséges, hogy már van egy létező érték ezzel a hivatkozással -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=Túl sok variáció létrehozása nagy processzor terhelést és memória-használatot eredményezhet és a Dolibarr hibára futhat. A "%s" opció bekapcsolásával csökkentheti a túlzott memória foglalást. +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. DoNotRemovePreviousCombinations=Ne távolítsa el a korábbi változatokat -UsePercentageVariations=Százalékos variációk használata -PercentageVariation=Százalékos variáció -ErrorDeletingGeneratedProducts=Hiba történt a meglévő termékváltozatok törlésekor +UsePercentageVariations=Százalékos eltérések használata +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=Termékváltozatok elrejtése -ShowChildProducts=Termékváltozatok mutatása -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=A céltermékre vonatkozó referencia +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 +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 ErrorCopyProductCombinations=Hiba történt a termékváltozatok másolása közben ErrorDestinationProductNotFound=A céltermék nem található -ErrorProductCombinationNotFound=Termékváltozat nem található -ActionAvailableOnVariantProductOnly=A művelet csak a termék változatánál érhető el -ProductsPricePerCustomer=Termékárak vevőnként -ProductSupplierExtraFields=További tulajdonságok (szállítói árak) -DeleteLinkedProduct=Törölje a kombinációhoz kapcsolt gyermekterméket -AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price +ErrorProductCombinationNotFound=A termékváltozat nem található +ActionAvailableOnVariantProductOnly=A művelet csak a termék változatán é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 PMPValue=Súlyozott átlagár -PMPValueShort=SÁÉ -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) +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. +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”. +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. +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 +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 +PuttingPricesUpToDate=Frissítse az árakat az aktuális ismert árakkal +PMPExpected=Várható PMP +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? +ModifyValueExtrafields = Extra mező értékének módosítása diff --git a/htdocs/langs/hu_HU/projects.lang b/htdocs/langs/hu_HU/projects.lang index d826ba8b40b..878583e027f 100644 --- a/htdocs/langs/hu_HU/projects.lang +++ b/htdocs/langs/hu_HU/projects.lang @@ -1,289 +1,296 @@ # Dolibarr language file - Source file is en_US - projects -RefProject=Ref. projekt +RefProject=Ref. projektet ProjectRef=Projekt ref. -ProjectId=Projekt azonosítója -ProjectLabel=Projekt címke -ProjectsArea=Projektek területe +ProjectId=Projektazonosító +ProjectLabel=Projektcímke +ProjectsArea=Projektterület ProjectStatus=Projekt állapota SharedProject=Mindenki -PrivateProject=Projekt kapcsolatok -ProjectsImContactFor=Olyan projektek, amelyekkel kifejezetten kapcsolatban állok -AllAllowedProjects=Az összes projekt, amit el tudok olvasni (az enyém + nyilvános) +PrivateProject=Hozzárendelt névjegyek +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, amelyekhez Ön kapcsolattartó -ProjectsPublicDesc=Ez a nézet minden az ön által megtekinthető projektre van korlátozva. -TasksOnProjectsPublicDesc=Ez a nézet azokat a projekteket mutatja be, amelyeket elolvashat. -ProjectsPublicTaskDesc=Ez a nézet minden az ön által megtekinthető projektre van korlátozva. -ProjectsDesc=Ez a nézet minden projektet tartalmaz. -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything). -MyTasksDesc=Ez a nézet azokra a projektekre vagy feladatokra korlátozódik, amelyekhez Ön kapcsolattartó -OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible). +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). ClosedProjectsAreHidden=A lezárt projektek nem láthatók. -TasksPublicDesc=Ez a nézet minden az ön által megtekinthető projektre van korlátozva. -TasksDesc=Ez a nézet minden projektet tartalmaz. -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=A projektek feladatai -ProjectCategories=Projekt címkék/kategóriák +TasksPublicDesc=Ez a nézet megjeleníti az összes olyan projektet és feladatot, amelyet elolvashat. +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. +ImportDatasetTasks=Projektek feladatai +ProjectCategories=Projektcímkék/kategóriák NewProject=Új projekt AddProject=Projekt létrehozása DeleteAProject=Projekt törlése DeleteATask=Feladat törlése -ConfirmDeleteAProject=Biztosan törli a projektet? -ConfirmDeleteATask=Biztosan törli ezt a feladatot? +ConfirmDeleteAProject=Biztosan törölni szeretné ezt a projektet? +ConfirmDeleteATask=Biztosan törölni szeretné ezt a feladatot? OpenedProjects=Nyitott projektek -OpenedTasks=Nyitott feladatok -OpportunitiesStatusForOpenedProjects=Vezet a nyitott projektek mennyisége állapot szerint -OpportunitiesStatusForProjects=Vezeti a projektek mennyiségét állapot szerint -ShowProject=Projektek mutatása -ShowTask=Feladat mutatása +OpenedTasks=Feladatok megnyitása +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 SetProject=Projekt beállítása -NoProject=Nincs létrehozott vagy tulajdonolt projekt +NoProject=Nincs definiált vagy tulajdonos projekt NbOfProjects=Projektek száma NbOfTasks=Feladatok száma TimeSpent=Eltöltött idő -TimeSpentByYou=Ön által eltöltött idő +TimeSpentByYou=Az Ön által eltöltött idő TimeSpentByUser=A felhasználó által eltöltött idő TimesSpent=Eltöltött idő -TaskId=Feladat azonosítója +TaskId=Feladatazonosító RefTask=Feladat ref. LabelTask=Feladat címke TaskTimeSpent=Feladatokra fordított idő TaskTimeUser=Felhasználó TaskTimeNote=Megjegyzés TaskTimeDate=Dátum -TasksOnOpenedProject=Feladatok nyílt projektekről +TasksOnOpenedProject=Feladatok nyitott projekteken WorkloadNotDefined=A munkaterhelés nincs meghatározva -NewTimeSpent=Töltött idő -MyTimeSpent=Az én eltöltött időm -BillTime=Bill az eltöltött idő -BillTimeShort=Bill idő -TimeToBill=Az idő nincs számlázva -TimeBilled=Számlázott idő +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 +TimeToBill=Nem számlázott idő +TimeBilled=Kiszámlázott idő Tasks=Feladatok Task=Feladat -TaskDateStart=A feladat kezdési dátuma -TaskDateEnd=A feladat befejezésének dátuma -TaskDescription=Feladatleírás +TaskDateStart=Feladat kezdő dátuma +TaskDateEnd=Feladat befejezési dátuma +TaskDescription=Feladat leírása NewTask=Új feladat AddTask=Feladat létrehozása -AddTimeSpent=Hozzon létre töltött időt -AddHereTimeSpentForDay=Adja ide a napra / feladatra fordított időt -AddHereTimeSpentForWeek=Adja ide a hétre / feladatra fordított időt -Activity=Aktivitás -Activities=Feladatok/aktivitások -MyActivities=Feladataim/Aktivitásaim -MyProjects=Projektjeim -MyProjectsArea=Saját projektek Terület -DurationEffective=Effektív időtartam -ProgressDeclared=Deklarált valódi haladás -TaskProgressSummary=A feladat előrehaladása -CurentlyOpenedTasks=Gondosan nyitott feladatok -TheReportedProgressIsLessThanTheCalculatedProgressionByX=The declared real progress is less %s than the progress on consumption -TheReportedProgressIsMoreThanTheCalculatedProgressionByX=A bejelentett valós haladás inká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=amelyet a projekthez kötök +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 +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 +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 Time=Idő -TimeConsumed=Consumed +TimeConsumed=Fogyaszt ListOfTasks=Feladatok listája -GoToListOfTimeConsumed=Ugrás az elfogyasztott idő listájára -GanttView=Gantt nézet -ListWarehouseAssociatedProject=A projekthez kapcsolódó raktárak listája -ListProposalsAssociatedProject=A projekttel kapcsolatos kereskedelmi javaslatok felsorolása +GoToListOfTimeConsumed=Ugrás az elhasznált idő listájához +GanttView=Gantt-nézet +ListWarehouseAssociatedProject=A projekthez társított 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 projekttel kapcsolatos ügyfélszámlák listája -ListPredefinedInvoicesAssociatedProject=A projekthez kapcsolódó ügyfélsablonok 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 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 -ListContractAssociatedProject=A projekttel kapcsolatos szerződések 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 projekttel kapcsolatos beavatkozások listája +ListFichinterAssociatedProject=A projekthez kapcsolódó beavatkozások listája ListExpenseReportsAssociatedProject=A projekthez kapcsolódó költségjelentések listája ListDonationsAssociatedProject=A projekthez kapcsolódó adományok listája ListVariousPaymentsAssociatedProject=A projekthez kapcsolódó különféle kifizetések listája -ListSalariesAssociatedProject=A projekthez kapcsolódó fizetések fizetési listája -ListActionsAssociatedProject=A projekttel kapcsolatos események listája -ListMOAssociatedProject=A projekthez kapcsolódó gyártási megrendelések listája -ListTaskTimeUserProject=A projekt feladataihoz felhasznált idő listája -ListTaskTimeForTask=A feladathoz felhasznált idő listája -ActivityOnProjectToday=A projekt tevékenysége ma -ActivityOnProjectYesterday=Tegnapi projekt tevékenység -ActivityOnProjectThisWeek=Heti projekt aktivitás -ActivityOnProjectThisMonth=Havi projekt aktivitás -ActivityOnProjectThisYear=Évi projekt aktivitás -ChildOfProjectTask=Projekt/Feladat gyermeke +ListSalariesAssociatedProject=A projekthez kapcsolódó fizetések listája +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 +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 +ChildOfProjectTask=A projekt/feladat gyermeke ChildOfTask=A feladat gyermeke -TaskHasChild=Feladatnak gyermeke van +TaskHasChild=A feladatnak gyermeke van NotOwnerOfProject=Nem tulajdonosa ennek a privát projektnek -AffectedTo=Érinti -CantRemoveProject=Ez a projekt nem távolítható el, mivel más objektumok (számla, megrendelések vagy egyéb) hivatkoznak rá. Lásd az '%s' lapot. -ValidateProject=Projekt hitelesítése +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. +ValidateProject=Projekt érvényesítése ConfirmValidateProject=Biztosan érvényesíteni szeretné ezt a projektet? -CloseAProject=Projekt lezárása +CloseAProject=Projekt bezárása ConfirmCloseAProject=Biztosan bezárja ezt a projektet? -AlsoCloseAProject=Szintén zárja be a projektet (tartsa nyitva, ha továbbra is követnie kell a gyártási feladatokat rajta) -ReOpenAProject=Projekt nyitása -ConfirmReOpenAProject=Biztosan újra megnyitja ezt a projektet? -ProjectContact=A projekt kapcsolatai +AlsoCloseAProject=Projekt bezárása is (tartsa nyitva, ha továbbra is követnie kell rajta a termelési feladatokat) +ReOpenAProject=Projekt megnyitása +ConfirmReOpenAProject=Biztosan újra akarja nyitni ezt a projektet? +ProjectContact=A projekt elérhetőségei TaskContact=Feladat kapcsolattartói -ActionsOnProject=Projekteh tartozó cselekvések -YouAreNotContactOfProject=Nem kapcsolata ennek a privát projektnek -UserIsNotContactOfProject=A felhasználó nem a privát projekt kapcsolattartója +ActionsOnProject=Események a projektben +YouAreNotContactOfProject=Ön nem partnere ennek a privát projektnek +UserIsNotContactOfProject=A felhasználó nem kapcsolattartója ennek a privát projektnek DeleteATimeSpent=Eltöltött idő törlése -ConfirmDeleteATimeSpent=Biztosan törli ezt az eltöltött időt? -DoNotShowMyTasksOnly=Lásd még a hozzám nem rendelt feladatokat -ShowMyTasksOnly=Csak a hozzám rendelt feladatokat tekintheti meg -TaskRessourceLinks=A feladat kapcsolatai -ProjectsDedicatedToThisThirdParty=Harmadik félhnek dedikált projektek -NoTasks=Nincs a projekthez tartozó feladat -LinkedToAnotherCompany=Harmadik félhez kapcsolva -TaskIsNotAssignedToUser=A feladat nincs hozzárendelve a felhasználóhoz. A feladat hozzárendeléséhez használja az ' %s ' gombot. -ErrorTimeSpentIsEmpty=Töltött idő üres -TimeRecordingRestrictedToNMonthsBack=Time recording is restricted to %s months back -ThisWillAlsoRemoveTasks=Ez a művelet is törli az összes feladatot a projekt (%s feladatokat a pillanatban), és az összes bemenet eltöltött idő. -IfNeedToUseOtherObjectKeepEmpty=Ha egyes tárgyakat (számla, megrendelés, ...), amelyek egy másik harmadik félnek kell kapcsolódniuk a projekt létrehozásához, tartsa ezt az üres, hogy a projekt, hogy több harmadik fél. -CloneTasks=Klónfeladatok -CloneContacts=Klónozza a névjegyeket -CloneNotes=Klón jegyzetek -CloneProjectFiles=Klón projekt csatlakozott fájlokhoz -CloneTaskFiles=Feladat (ok) egyesített fájljainak klónozása (ha feladat (ok) klónozása) -CloneMoveDate=Frissíti a projekteket / feladatokat mostantól? +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 +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. +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. +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? ConfirmCloneProject=Biztosan klónozza ezt a projektet? -ProjectReportDate=Módosítsa a feladat dátumát az új projekt kezdési dátumának megfelelően -ErrorShiftTaskDate=Lehetetlen áthelyezni a feladat dátumát az új projekt kezdési dátumának megfelelően +ProjectReportDate=A feladatdátumok módosítása 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 -ProjectValidatedInDolibarr=Az %s projekt érvényesítve -ProjectModifiedInDolibarr=Az %s projekt módosítva -TaskCreatedInDolibarr=Az %s feladat létrehozva -TaskModifiedInDolibarr=Az %s feladat módosítva -TaskDeletedInDolibarr=Az %s feladat törölve -OpportunityStatus=Ólom státusz -OpportunityStatusShort=Ólom státusz -OpportunityProbability=Ólom valószínűsége -OpportunityProbabilityShort=Ólom probab. -OpportunityAmount=Ólom mennyisége -OpportunityAmountShort=Ólom mennyisége -OpportunityWeightedAmount=Lehetőséggel súlyozott összeg -OpportunityWeightedAmountShort=Opp. súlyozott összeg -OpportunityAmountAverageShort=Átlagos ólommennyiség +ProjectValidatedInDolibarr=%s projekt érvényesítve +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 +OpportunityWeightedAmountShort=Lehetőséggel súlyozott összeg +OpportunityAmountAverageShort=Lehetőség átlagos összege OpportunityAmountWeigthedShort=Súlyozott ólommennyiség -WonLostExcluded=Nyert / elveszett kizárva +WonLostExcluded=Nyert/Vesztes kizárva ##### Types de contacts ##### -TypeContact_project_internal_PROJECTLEADER=Projekt vezető -TypeContact_project_external_PROJECTLEADER=Projekt vezető -TypeContact_project_internal_PROJECTCONTRIBUTOR=Hozzájáruló -TypeContact_project_external_PROJECTCONTRIBUTOR=Hozzájáruló -TypeContact_project_task_internal_TASKEXECUTIVE=Feladatvezető -TypeContact_project_task_external_TASKEXECUTIVE=Feladatvezető -TypeContact_project_task_internal_TASKCONTRIBUTOR=Hozzájáruló -TypeContact_project_task_external_TASKCONTRIBUTOR=Hozzájáruló -SelectElement=Válasszon elemet -AddElement=Link elemhez -LinkToElementShort=Hivatkozás erre: +TypeContact_project_internal_PROJECTLEADER=Projektvezető +TypeContact_project_external_PROJECTLEADER=Projektvezető +TypeContact_project_internal_PROJECTCONTRIBUTOR=Közreműködő +TypeContact_project_external_PROJECTCONTRIBUTOR=Közreműködő +TypeContact_project_task_internal_TASKEXECUTIVE=Feladat végrehajtó +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 # Documents models -DocumentModelBeluga=Projektdokumentum-sablon a kapcsolt objektumok áttekintéséhez -DocumentModelBaleine=Projektdokumentum sablon feladatokhoz -DocumentModelTimeSpent=Projekt jelentés sablon a töltött időre -PlannedWorkload=Tervezett terhelés +DocumentModelBeluga=Projekt dokumentumsablon a csatolt 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ó elemek +ProjectReferers=Kapcsolódó tételek ProjectMustBeValidatedFirst=A projektet először érvényesíteni kell -FirstAddRessourceToAllocateTime=Rendeljen felhasználói erőforrást a projekt kapcsolattartójává az időosztáshoz +MustBeValidatedToBeSigned=Az %s elemet először érvényesíteni kell, hogy aláírva legyen. +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 -InputPerMonth=Havi bevitel -InputDetail=Bemenet részletei -TimeAlreadyRecorded=Ez az a nap, amelyet erre a feladatra már naponta rögzítettünk, és az %s felhasználó -ProjectsWithThisUserAsContact=Vetíti ezt a felhasználót kapcsolattartóként -ProjectsWithThisContact=Projects with this contact +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ő +ProjectsWithThisUserAsContact=Projektek ezzel a felhasználóval kapcsolattartóként +ProjectsWithThisContact=Projektek ezzel a kapcsolattal TasksWithThisUserAsContact=A felhasználóhoz rendelt feladatok -ResourceNotAssignedToProject=Nincs hozzárendelve a projekthez +ResourceNotAssignedToProject=Nincs projekthez rendelve ResourceNotAssignedToTheTask=Nincs hozzárendelve a feladathoz NoUserAssignedToTheProject=Nincs felhasználó hozzárendelve ehhez a projekthez -TimeSpentBy=Által töltött idő -TasksAssignedTo=Hozzárendelt feladatok -AssignTaskToMe=Hozzám rendelt feladatok -AssignTaskToUser=Hozzárendelje a feladatot az %s fájlhoz -SelectTaskToAssign=Válassza ki a hozzárendelni kívánt feladatot ... -AssignTask=Hozzárendelni +TimeSpentBy=Által eltöltött idő +TasksAssignedTo=Feladatok hozzárendelve +AssignTaskToMe=Feladat hozzárendelése magamhoz +AssignTaskToUser=Feladat hozzárendelése ehhez: %s +SelectTaskToAssign=Válassza ki a hozzárendelendő feladatot... +AssignTask=Hozzárendelés ProjectOverview=Áttekintés -ManageTasks=Használja a projekteket a feladatok követésére és / vagy az eltöltött idő jelentésére (munkaidő-táblázatok) -ManageOpportunitiesStatus=Használja a projekteket a vezetők / ügyfelek követésére +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 ProjectNbProjectByMonth=Létrehozott projektek száma hónaponként -ProjectNbTaskByMonth=A létrehozott feladatok száma hónaponként -ProjectOppAmountOfProjectsByMonth=A leadek száma havonta -ProjectWeightedOppAmountOfProjectsByMonth=Súlyozott leadmennyiség havonta -ProjectOpenedProjectByOppStatus=Nyitott projekt | vezető a vezető státus szerint -ProjectsStatistics=Projektek vagy leadek statisztikája -TasksStatistics=Statisztika a projektek vagy a vezetők feladatairól -TaskAssignedToEnterTime=Feladat kijelölve. Lehetővé kell tenni a feladat megadásának idejét. -IdTaskTime=Id feladat idő -YouCanCompleteRef=Ha a ref-et valamilyen utótaggal szeretné kiegészíteni, akkor ajánlott egy - karakter hozzáadása az elválasztáshoz, így az automatikus számozás továbbra is megfelelően fog működni a következő projekteknél. Például %s-MYSUFFIX -OpenedProjectsByThirdparties=Nyitott projektek harmadik felektől -OnlyOpportunitiesShort=Csak vezet -OpenedOpportunitiesShort=Nyílt vezetők -NotOpenedOpportunitiesShort=Nem nyílt vezető -NotAnOpportunityShort=Nem ólom -OpportunityTotalAmount=A leadek teljes száma -OpportunityPonderatedAmount=Súlyozott mennyiségű ólom -OpportunityPonderatedAmountDesc=A valószínűséggel súlyozott ólomösszeg -OppStatusPROSP=Felkutatás -OppStatusQUAL=Képesítés +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 +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 +YouCanCompleteRef=Ha a ref-et valamilyen utótaggal szeretné kiegészíteni, akkor javasolt egy - karakter hozzáadása az elválasztáshoz, így az automatikus számozás továbbra is megfelelően fog működni a következő projekteknél. Például %s-MYSUFFIX +OpenedProjectsByThirdparties=Harmadik felek által nyitott projektek +OnlyOpportunitiesShort=Csak potenciális ügyfelek +OpenedOpportunitiesShort=Nyitott lehetőségek +NotOpenedOpportunitiesShort=Nem nyitott lehetőség +NotAnOpportunityShort=Nem vezető +OpportunityTotalAmount=A lehetőségek teljes mennyisége +OpportunityPonderatedAmount=A lehetőségek súlyozott mennyisége +OpportunityPonderatedAmountDesc=Valószínűséggel súlyozott leadek összege +OppStatusPROSP=Potenciális +OppStatusQUAL=Minősítés OppStatusPROPO=Javaslat OppStatusNEGO=Tárgyalás -OppStatusPENDING=Függőben levő -OppStatusWON=Megnyert +OppStatusPENDING=Függőben +OppStatusWON=Nyert OppStatusLOST=Elveszett Budget=Költségvetés -AllowToLinkFromOtherCompany=Engedélyezheti a másik vállalat projektjeinek összekapcsolását harmadik felek vesszővel elválasztott azonosítói: összekapcsolhatják e harmadik fél összes projektjét (példa: 123,4795,53)
    -LatestProjects=Legfrissebb %s projektek -LatestModifiedProjects=A legújabb %s módosított projektek +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)
    +LatestProjects=A legújabb %s projekt +LatestModifiedProjects=A legutóbbi %s módosított projekt OtherFilteredTasks=Egyéb szűrt feladatok -NoAssignedTasks=Nem található hozzárendelt feladat (az aktuális felhasználóhoz rendeljen projektet / feladatokat a felső jelölőnégyzetből az idő megadásához) -ThirdPartyRequiredToGenerateInvoice=A számlázáshoz meg kell határozni egy harmadik felet a projekten. -ThirdPartyRequiredToGenerateInvoice=A számlázáshoz meg kell határozni egy harmadik felet a projekten. -ChooseANotYetAssignedTask=Válasszon ki egy olyan feladatot, amely még nincs hozzárendelve +NoAssignedTasks=Nem található hozzárendelt feladat (rendelje hozzá a projektet/feladatokat az aktuális felhasználóhoz a felső jelölőnégyzetből az idő megadásához) +ThirdPartyRequiredToGenerateInvoice=Harmadik félnek meg kell határoznia a projektet, hogy ki tudja számlázni. +ThirdPartyRequiredToGenerateInvoice=Harmadik félnek meg kell határoznia a projektet, hogy ki tudja számlázni. +ChooseANotYetAssignedTask=Válasszon egy olyan feladatot, amely még nincs hozzárendelve # Comments trans -AllowCommentOnTask=Felhasználói megjegyzések engedélyezése a feladatokhoz -AllowCommentOnProject=Felhasználói megjegyzések engedélyezése a projektekhez -DontHavePermissionForCloseProject=Nincs engedélye az %s projekt bezárására -DontHaveTheValidateStatus=Az %s projektnek nyitva kell lennie a lezáráshoz -RecordsClosed=%s projekt lezárult +AllowCommentOnTask=A felhasználók megjegyzéseinek engedélyezése a feladatokhoz +AllowCommentOnProject=A felhasználók megjegyzéseinek engedélyezése a projektekhez +DontHavePermissionForCloseProject=Nincs jogosultsága a %s projekt bezárásához +DontHaveTheValidateStatus=A %s projektnek nyitva kell lennie a bezáráshoz +RecordsClosed=%s projekt lezárva SendProjectRef=Információs projekt %s -ModuleSalaryToDefineHourlyRateMustBeEnabled=A „Fizetések” modulnak lehetővé kell tennie az alkalmazottak óradíjának meghatározását az eltöltött idő valorizálása érdekében -NewTaskRefSuggested=A feladat ref már használatban van, új feladat ref szükséges -TimeSpentInvoiced=Számlázással töltött idő +ModuleSalaryToDefineHourlyRateMustBeEnabled=A 'Bérek' modult engedélyezni kell az alkalmazotti órabér meghatározásához, hogy az eltöltött idő értékelhető legyen +NewTaskRefSuggested=Feladat ref. már használt, új feladat ref szükséges +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 -InvoiceGeneratedFromTimeSpent=Az %s számla a projektre fordított időből származik -InterventionGeneratedFromTimeSpent=Intervention %s has been generated from time spent on project -ProjectBillTimeDescription=Ellenőrizze, hogy beírta-e a munkaidő-nyilvántartást a projekt feladataira, ÉS azt tervezi, hogy számlákat generál az időről, hogy kiszámlázza a projekt ügyfelét (ne ellenőrizze, hogy olyan számlát kíván-e létrehozni, amely nem a beírt munkaidő-nyilvántartások alapján készül). Megjegyzés: Számla előállításához lépjen a projekt „Idő eltelt” fülére, és válassza ki a beépítendő sorokat. -ProjectFollowOpportunity=Kövesse a lehetőséget -ProjectFollowTasks=Kövesse a feladatokat vagy az eltöltött időt +ServiceToUseOnLines=Service to use on lines +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. +ProjectFollowOpportunity=Lehetőség követése +ProjectFollowTasks=Feladatok vagy eltöltött idő követése Usage=Használat UsageOpportunity=Használat: Lehetőség UsageTasks=Használat: Feladatok -UsageBillTimeShort=Használat: Számlaidő -InvoiceToUse=Használandó számlatervezet -InterToUse=Draft intervention to use +UsageBillTimeShort=Használat: Számlázási idő +InvoiceToUse=Használandó számlavázlat +InterToUse=Használandó beavatkozás tervezete NewInvoice=Új számla -NewInter=Új intervenció +NewInter=Új beavatkozás OneLinePerTask=Feladatonként egy sor OneLinePerPeriod=Periódusonként egy sor -OneLinePerTimeSpentLine=One line for each time spent declaration -AddDetailDateAndDuration=With date and duration into line description +OneLinePerTimeSpentLine=Egy sor minden eltöltött deklarációhoz +AddDetailDateAndDuration=Dátummal és időtartammal a sorleírásban RefTaskParent=Ref. Szülői feladat -ProfitIsCalculatedWith=A nyereség kiszámítása -AddPersonToTask=Hozzáadás a feladatokhoz is\n -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=Projektfeladatok eltöltött idő nélkül\n -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=A befejezés időpontja nem lehet hamarabb mint a kezdet +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. +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. +ProjectsHavingThisContact=Ezzel a kapcsolattal rendelkező projektek +StartDateCannotBeAfterEndDate=A befejező dátum nem lehet korábbi a kezdő dátumnál +ErrorPROJECTLEADERRoleMissingRestoreIt=A „PROJECTLEADER” szerepkör hiányzik vagy deaktiválva lett. Kérjük, állítsa vissza a kapcsolattípusok szótárában +LeadPublicFormDesc=Itt engedélyezhet egy nyilvános oldalt, amely lehetővé teszi, hogy potenciális ügyfelek először kapcsolatba léphessenek Önnel egy nyilvános online űrlapon +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 diff --git a/htdocs/langs/hu_HU/propal.lang b/htdocs/langs/hu_HU/propal.lang index 6e161b61a8d..a2c7f756838 100644 --- a/htdocs/langs/hu_HU/propal.lang +++ b/htdocs/langs/hu_HU/propal.lang @@ -1,68 +1,69 @@ # Dolibarr language file - Source file is en_US - propal -Proposals=Üzleti ajánlatok -Proposal=Üzleti ajánlat -ProposalShort=Javaslat -ProposalsDraft=Készítsen üzleti ajánlatot -ProposalsOpened=Nyílt kereskedelmi ajánlatok\n -CommercialProposal=Üzleti ajánlat -PdfCommercialProposalTitle=Javaslat -ProposalCard=Javaslat kártya -NewProp=Új kereskedelmi javaslat -NewPropal=Új javaslat -Prospect=Kilátás -DeleteProp=Üzleti ajánlat törlése -ValidateProp=Érvényesítése kereskedelmi javaslat -AddProp=Javaslat létrehozása\n -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 +Proposals=Árajánlatok +Proposal=Árajánlat +ProposalShort=Ajánlat +ProposalsDraft=Árajánlatok tervezete +ProposalsOpened=Nyitott árajánlatok +CommercialProposal=Árajánlat +PdfCommercialProposalTitle=Ajánlat +ProposalCard=Ajánlati kártya +NewProp=Új árajánlat +NewPropal=Új árajánlat +Prospect=Leendő +DeleteProp=Árajánlat törlése +ValidateProp=Árajánlat érvényesítése +AddProp=Ajánlat létrehozása +ConfirmDeleteProp=Biztosan törölni szeretné ezt az árajánlatot? +ConfirmValidateProp=Biztosan érvényesíteni szeretné ezt az árajánlatot %s néven? +LastPropals=A legújabb %s javaslat +LastModifiedProposals=A legutóbbi %s módosított javaslat AllPropals=Minden javaslat -SearchAProposal=Keressen egy javaslatot -NoProposal=Nincs javaslat\n -ProposalsStatistics=Üzleti ajánlat statisztikái -NumberOfProposalsByMonth=Havi száma -AmountOfProposalsByMonthHT=Amount by month (excl. tax) -NbOfProposals=Száma a kereskedelmi javaslatok -ShowPropal=Mutasd javaslat +SearchAProposal=Ajánlat keresése +NoProposal=Nincs javaslat +ProposalsStatistics=Árajánlat statisztikái +NumberOfProposalsByMonth=Szám havonta +AmountOfProposalsByMonthHT=Havi összeg (adó nélkül) +NbOfProposals=Árajánlatok száma +ShowPropal=Ajánlat megjelenítése PropalsDraft=Piszkozatok -PropalsOpened=Nyitott -PropalStatusDraft=Tervezet (kell érvényesíteni) -PropalStatusValidated=Jóváhagyott (javaslat nyitott) -PropalStatusSigned=Aláírt (szükséges számlázási) -PropalStatusNotSigned=Nem írta alá (zárt) -PropalStatusBilled=Kiszámlázott -PropalStatusDraftShort=Tervezet -PropalStatusValidatedShort=Ellenőrizve (nyitva)\n +PropalsOpened=Nyitva +PropalStatusDraft=Piszkozat (ellenőrizni kell) +PropalStatusValidated=Érvényesítve (az ajánlat nyitva van) +PropalStatusSigned=Aláírt (számlázás szükséges) +PropalStatusNotSigned=Nincs aláírva (zárva) +PropalStatusBilled=Számlázva +PropalStatusDraftShort=Piszkozat +PropalStatusValidatedShort=Érvényesített (nyitott) PropalStatusClosedShort=Zárva -PropalStatusSignedShort=Aláírt -PropalStatusNotSignedShort=Nem írták alá -PropalStatusBilledShort=Kiszámlázott -PropalsToClose=Kereskedelmi javaslatokat, hogy lezárja -PropalsToBill=Aláírták a kereskedelmi javaslatok törvényjavaslatot -ListOfProposals=Üzleti ajánlatok listája -ActionsOnPropal=Események javaslatára -RefProposal=Üzleti ajánlat ref -SendPropalByMail=Küldés e-mailben kereskedelmi javaslat -DatePropal=Születési javaslat -DateEndPropal=Érvényesség vége dátuma +PropalStatusSignedShort=Aláírva +PropalStatusNotSignedShort=Nincs aláírva +PropalStatusBilledShort=Számlázva +PropalsToClose=Bezárandó árajánlatok +PropalsToBill=Aláírt árajánlatok a számlához +ListOfProposals=Árajánlatok listája +ActionsOnPropal=Események az ajánlat alapján +RefProposal=Árajánlat ref +SendPropalByMail=Árajánlat küldése e-mailben +DatePropal=Ajánlat dátuma +DateEndPropal=Érvényesség záró dátuma ValidityDuration=Érvényesség időtartama -SetAcceptedRefused=Set accepted/refused -ErrorPropalNotFound=Propal %s nem található -AddToDraftProposals=Add to draft proposal -NoDraftProposals=No draft proposals -CopyPropalFrom=Hozzon létre a kereskedelmi javaslat másolásával meglévő javaslat -CreateEmptyPropal=Create empty commercial proposal or from list of products/services -DefaultProposalDurationValidity=Alapértelmezett érvényesség időtartamát kereskedelmi javaslat (napokban) -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=Üzleti ajánlat és vonalak -ProposalLine=Javaslat vonal +SetAcceptedRefused=Beállítás elfogadva/elutasítva +ErrorPropalNotFound=%s ajánlat nem található +AddToDraftProposals=Hozzáadás a javaslattervezethez +NoDraftProposals=Nincs javaslattervezet +CopyPropalFrom=Árajánlat létrehozása meglévő árajánlat másolásával +CreateEmptyPropal=Üres árajánlat létrehozása vagy a termékek/szolgáltatások listájából +DefaultProposalDurationValidity=Az árajánlat alapértelmezett érvényességi időtartama (napokban) +DefaultPuttingPricesUpToDate=Alapértelmezés szerint frissítse az árakat az aktuális ismert árakkal az ajánlat klónozásakor +UseCustomerContactAsPropalRecipientIfExist=Kapcsolattartó/cím használata 'Kapcsolattartási javaslat' típussal, ha harmadik fél címe helyett ajánlat címzettjeként van megadva +ConfirmClonePropal=Biztosan klónozni szeretné a(z) %s árajánlatot? +ConfirmReOpenProp=Biztosan újra szeretné nyitni a(z) %s árajánlatot? +ProposalsAndProposalsLines=Árajánlat és sorok +ProposalLine=Ajánlatsor ProposalLines=Ajánlatsorok -AvailabilityPeriod=Elérhetőség késleltetés -SetAvailability=Állítsa be a rendelkezésre álló késedelem -AfterOrder=rendezés után +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 @@ -71,29 +72,42 @@ AvailabilityTypeAV_2W=2 hét AvailabilityTypeAV_3W=3 hét AvailabilityTypeAV_1M=1 hónap ##### Types de contacts ##### -TypeContact_propal_internal_SALESREPFOLL=Képviselő-up a következő javaslatot -TypeContact_propal_external_BILLING=Ügyfél számla Kapcsolat -TypeContact_propal_external_CUSTOMER=Ügyfélkapcsolati nyomon követése javaslat -TypeContact_propal_external_SHIPPING=Customer contact for delivery +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=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=A szállítójavaslatok statisztikái\n -CaseFollowedBy=Case followed by -SignedOnly=Csak aláírva\n -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? +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 +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ó +IdProduct=Termékazonosító +LineBuyPriceHT=Vételi ár a sor adó nélküli összege +SignPropal=Ajánlat elfogadása +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? diff --git a/htdocs/langs/hu_HU/receiptprinter.lang b/htdocs/langs/hu_HU/receiptprinter.lang index 81b3873ebf1..2cf6dcbf315 100644 --- a/htdocs/langs/hu_HU/receiptprinter.lang +++ b/htdocs/langs/hu_HU/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=A nyugtanyomtató modul beállítása +PrinterAdded=%s nyomtató hozzáadva +PrinterUpdated=%s nyomtató frissítve +PrinterDeleted=A %s nyomtató törölve +TestSentToPrinter=Teszt elküldve a %s nyomtatóra +ReceiptPrinter=Nyugtanyomtatók +ReceiptPrinterDesc=Nyugtanyomtatók beállítása +ReceiptPrinterTemplateDesc=Sablonok beállítása +ReceiptPrinterTypeDesc=A nyugtanyomtató típusának leírása +ReceiptPrinterProfileDesc=A nyugtanyomtató profiljának leírása +ListPrinters=Nyomtatók listája +SetupReceiptTemplate=Sablon beállítása +CONNECTOR_DUMMY=Áru nyomtató +CONNECTOR_NETWORK_PRINT=Hálózati nyomtató +CONNECTOR_FILE_PRINT=Helyi nyomtató +CONNECTOR_WINDOWS_PRINT=Helyi Windows nyomtató +CONNECTOR_CUPS_PRINT=CUPS nyomtató +CONNECTOR_DUMMY_HELP=Hamis nyomtató teszthez, nem csinál semmit 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 +CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:titkos@számítógépnév/munkacsoport/Receipt Printer +CONNECTOR_CUPS_PRINT_HELP=CUPS nyomtató neve, példa: HPRT_TP805L +PROFILE_DEFAULT=Alapértelmezett profil +PROFILE_SIMPLE=Egyszerű profil +PROFILE_EPOSTEP=Epos Tep profil +PROFILE_P822D=P822D profil +PROFILE_STAR=Csillag profil +PROFILE_DEFAULT_HELP=Alapértelmezett profil Epson nyomtatókhoz +PROFILE_SIMPLE_HELP=Egyszerű profil, nincs grafika +PROFILE_EPOSTEP_HELP=Epos Tep profil +PROFILE_P822D_HELP=P822D profil, nincs grafika +PROFILE_STAR_HELP=Sztárprofil +DOL_LINE_FEED=Sor kihagyása +DOL_ALIGN_LEFT=Szöveg balra igazítása +DOL_ALIGN_CENTER=Szöveg középre helyezése +DOL_ALIGN_RIGHT=Szöveg jobbra igazítása +DOL_USE_FONT_A=Használja a nyomtató A betűtípusát +DOL_USE_FONT_B=Használja a nyomtató B betűtípusát +DOL_USE_FONT_C=Használja a nyomtató C betűtípusát DOL_PRINT_BARCODE=Vonalkód nyomtatása -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 +DOL_PRINT_BARCODE_CUSTOMER_ID=Vonalkódos ügyfél-azonosító nyomtatása +DOL_CUT_PAPER_FULL=Vágja ki a jegyet teljesen +DOL_CUT_PAPER_PARTIAL=Részlegesen vágja ki a jegyet +DOL_OPEN_DRAWER=Pénztár megnyitása +DOL_ACTIVATE_BUZZER=Csengő aktiválása +DOL_PRINT_QRCODE=Nyomtassa ki a QR-kódot +DOL_PRINT_LOGO=Nyomtassa ki cégem logóját +DOL_PRINT_LOGO_OLD=A cégem logójának nyomtatása (régi nyomtatók) +DOL_BOLD=Félkövér +DOL_BOLD_DISABLED=A félkövér szedésének letiltása +DOL_DOUBLE_HEIGHT=Dupla magasságú méret +DOL_DOUBLE_WIDTH=Dupla szélességű méret +DOL_DEFAULT_HEIGHT_WIDTH=Alapértelmezett magasság és szélesség méret +DOL_UNDERLINE=Aláhúzás engedélyezése +DOL_UNDERLINE_DISABLED=Aláhúzás letiltása +DOL_BEEP=Sípoló hang +DOL_BEEP_ALTERNATIVE=Hangjelzés (alternatív mód) +DOL_PRINT_CURR_DATE=Aktuális dátum/idő nyomtatása +DOL_PRINT_TEXT=Szöveg nyomtatása +DateInvoiceWithTime=Számla dátuma és ideje +YearInvoice=Számla éve +DOL_VALUE_MONTH_LETTERS=A számla hónapja betűkkel +DOL_VALUE_MONTH=Számla hónapja +DOL_VALUE_DAY=Számla napja +DOL_VALUE_DAY_LETTERS=Számla napján levélben +DOL_LINE_FEED_REVERSE=Soremelés fordított +InvoiceID=Számlaazonosító InvoiceRef=Számla hiv. -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=Számlasorok +DOL_VALUE_CUSTOMER_FIRSTNAME=Az ügyfél keresztneve +DOL_VALUE_CUSTOMER_LASTNAME=Az ügyfél vezetékneve +DOL_VALUE_CUSTOMER_MAIL=Ügyfél levelezés +DOL_VALUE_CUSTOMER_PHONE=Ügyfél telefonszáma +DOL_VALUE_CUSTOMER_MOBILE=Ügyfélmobil +DOL_VALUE_CUSTOMER_SKYPE=Ügyfél Skype +DOL_VALUE_CUSTOMER_TAX_NUMBER=Ügyfél adószáma +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Ügyfélszámla egyenlege +DOL_VALUE_MYSOC_NAME=Az Ön cége neve +VendorLastname=Szállító vezetékneve +VendorFirstname=Szállító keresztneve +VendorEmail=Szállító e-mail +DOL_VALUE_CUSTOMER_POINTS=Ügyfélpontok +DOL_VALUE_OBJECT_POINTS=Objektumpontok diff --git a/htdocs/langs/hu_HU/receptions.lang b/htdocs/langs/hu_HU/receptions.lang index 99207f1d856..c4a5a3b7dfd 100644 --- a/htdocs/langs/hu_HU/receptions.lang +++ b/htdocs/langs/hu_HU/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 -Reception=Recepció -Receptions=Receptions -AllReceptions=All Receptions -Reception=Recepció -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=Visszavonva +ReceptionDescription=Szállítói átvétel kezelése (Átvételi dokumentumok létrehozása) +ReceptionsSetup=Szállítói átvétel beállítása +RefReception=Ref. átvétel +Reception=Átvétel +Receptions=Átvételek +AllReceptions=Minden átvétel +Reception=Átvétel +Receptions=Átvételek +ShowReception=Átvételek megjelenítése +ReceptionsArea=Átvételi terület +ListOfReceptions=Átvételek listája +ReceptionMethod=Átvételi mód +LastReceptions=Utolsó %s átvétel +StatisticsOfReceptions=Az átvételek statisztikái +NbOfReceptions=Átvételek száma +NumberOfReceptionsByMonth=Az átvételek száma hónaponként +ReceptionCard=Átvételkártya +NewReception=Új átvétel +CreateReception=Átvétel létrehozása +QtyInOtherReceptions=Mennyiség más átvételekben +OtherReceptionsForSameOrder=Egyéb átvételek ehhez a rendeléshez +ReceptionsAndReceivingForSameOrder=A rendelés átvételei és bevételei +ReceptionsToValidate=Érvényesítendő átvételek +StatusReceptionCanceled=Megszakítva StatusReceptionDraft=Piszkozat -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) -StatusReceptionProcessed=Feldolgozott +StatusReceptionValidated=Érvényesítve (kapandó vagy már kapott termékek) +StatusReceptionValidatedToReceive=Érvényesített (átveendő termékek) +StatusReceptionValidatedReceived=Érvényesítve (érkezett termékek) +StatusReceptionProcessed=Feldolgozva StatusReceptionDraftShort=Piszkozat -StatusReceptionValidatedShort=Hitelesítetve -StatusReceptionProcessedShort=Feldolgozott -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=A nyitott értékesítési rendelésből származó termékmennyiség már elküldve -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 +StatusReceptionValidatedShort=Érvényesítve +StatusReceptionProcessedShort=Feldolgozva +ReceptionSheet=Átvételi lap +ConfirmDeleteReception=Biztosan törölni szeretné ezt az átvételt? +ConfirmValidateReception=Biztosan érvényesíteni szeretné ezt az átvételt a(z) %s hivatkozással? +ConfirmCancelReception=Biztosan meg akarja szakítani ezt az átvételt? +StatsOnReceptionsOnlyValidated=Az átvételeken végzett statisztikák csak érvényesítve. A felhasznált dátum az átvétel érvényesítésének dátuma (a tervezett kézbesítés dátuma nem mindig ismert). +SendReceptionByEMail=Átvétel küldése e-mailben +SendReceptionRef=%s átvétel elküldése +ActionsOnReception=Események átvételkor +ReceptionCreationIsDoneFromOrder=Jelenleg az új átvétel létrehozása a Megrendelésből történik. +ReceptionLine=Átvételi vonal +ProductQtyInReceptionAlreadySent=A már elküldött nyitott értékesítési rendelésből származó termék mennyisége +ProductQtyInSuppliersReceptionAlreadyRecevied=A nyitott beszállítói rendelésből már beérkezett termék mennyisége +ValidateOrderFirstBeforeReception=Elõbb érvényesítenie kell a rendelést, mielõtt fogadásokat tudna végezni. +ReceptionsNumberingModules=Számozási modul átvételekhez +ReceptionsReceiptModel=Dokumentum sablonok átvételhez +NoMorePredefinedProductToDispatch=Nincs több előre meghatározott termék kiszállításra +ReceptionExist=Átvétel van +ByingPrice=Vételi ár +ReceptionBackToDraftInDolibarr=%s átvétel vissza a piszkozatba +ReceptionClassifyClosedInDolibarr=Az átvétel %s besorolása zárva +ReceptionUnClassifyCloseddInDolibarr=A %s átvétel újra megnyílik diff --git a/htdocs/langs/hu_HU/recruitment.lang b/htdocs/langs/hu_HU/recruitment.lang index e91ff5b3723..ac9364a8365 100644 --- a/htdocs/langs/hu_HU/recruitment.lang +++ b/htdocs/langs/hu_HU/recruitment.lang @@ -20,17 +20,17 @@ # Module label 'ModuleRecruitmentName' ModuleRecruitmentName = Toborzás # Module description 'ModuleRecruitmentDesc' -ModuleRecruitmentDesc = Az új állásokra vonatkozó toborzási kampányok kezelése és követése +ModuleRecruitmentDesc = Kezelje és kövesse az új álláshelyekre vonatkozó toborzási kampányokat # # Admin page # -RecruitmentSetup = Toborzási beállítások +RecruitmentSetup = Toborzás beállítása Settings = Beállítások -RecruitmentSetupPage = Enter here the setup of main options for the recruitment module +RecruitmentSetupPage = Adja meg itt a toborzási modul főbb beállításait RecruitmentArea=Toborzási terület -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 +PublicInterfaceRecruitmentDesc=A munkák nyilvános oldalai nyilvános URL-ek, amelyek megjelenítik és megválaszolják a nyitott munkákat. Minden egyes munkarekordon egy-egy hivatkozás található minden nyitott munkához. +EnablePublicRecruitmentPages=A nyitott munkák nyilvános oldalainak engedélyezése # # About page @@ -45,32 +45,34 @@ DateExpected=Várható dátum FutureManager=Jövőbeli vezető ResponsibleOfRecruitement=A toborzásért felelős IfJobIsLocatedAtAPartner=Amennyiben a munkapozíció partnernél található -PositionToBeFilled=Állás pozíció +PositionToBeFilled=Munkakör PositionsToBeFilled=Munkakörök ListOfPositionsToBeFilled=Munkakörök listája NewPositionToBeFilled=Új állások -JobOfferToBeFilled=Job position to be filled -ThisIsInformationOnJobPosition=Information of the job position to be filled -ContactForRecruitment=Contact for recruitment +JobOfferToBeFilled=Betöltésre váró munkakör +ThisIsInformationOnJobPosition=A betöltendő munkakör információja +ContactForRecruitment=Kapcsolatfelvétel a toborzáshoz EmailRecruiter=E-mail toborzó -ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used +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=Requested remuneration -ProposedRemuneration=Proposed remuneration -ContractProposed=Contract proposed +RequestedRemuneration=Kért díjazás +ProposedRemuneration=Javasolt díjazás +ContractProposed=Javasolt szerződés ContractSigned=Szerződés aláírva -ContractRefused=A szerződést elutasították -RecruitmentCandidature=Application +ContractRefused=A szerződés elutasítva +RecruitmentCandidature=Jelentkezés JobPositions=Munkakörök RecruitmentCandidatures=Alkalmazások -InterviewToDo=Interview to do -AnswerCandidature=Application answer -YourCandidature=A te alkalmazásod -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=Ajánlatot tesz +InterviewToDo=Interjú +AnswerCandidature=Jelentkezési válasz +YourCandidature=Az Ön jelentkezése +YourCandidatureAnswerMessage=Köszönjük jelentkezését.
    ... +JobClosedTextCandidateFound=A munkakör lezárva. Az állás betöltve. +JobClosedTextCanceled=A munkakör lezárva. +ExtrafieldsJobPosition=Kiegészítő tulajdonságok (munkahelyi pozíciók) +ExtrafieldsApplication=Kiegészítő tulajdonságok (munkapályázatok) +MakeOffer=Tegyen ajánlatot +WeAreRecruiting=Toborozunk. Ez a betöltendő pozíciók listája... +NoPositionOpen=Jelenleg nincs nyitott pozíció diff --git a/htdocs/langs/hu_HU/resource.lang b/htdocs/langs/hu_HU/resource.lang index 0d577688d38..ff1844f3083 100644 --- a/htdocs/langs/hu_HU/resource.lang +++ b/htdocs/langs/hu_HU/resource.lang @@ -5,7 +5,7 @@ DeleteResource=Erőforrás törlése ConfirmDeleteResourceElement=Hagyja jóvá az elemhez tartozó erőforrás törlését NoResourceInDatabase=Nincs erőforrás az adatbázisban NoResourceLinked=Nincs kapcsolt erőforrás -ActionsOnResource=Az erőforrás eseményei +ActionsOnResource=Események ezzel az erőforrással kapcsolatban ResourcePageIndex=Erőforrás-lista ResourceSingular=Erőforrás ResourceCard=Erőforrás kártya @@ -32,8 +32,8 @@ SelectResource=Válasszon erőforrást IdResource=Erőforrás ID AssetNumber=Sorozatszám -ResourceTypeCode=Erőforrás típusa +ResourceTypeCode=Erőforrástípus kódja ImportDataset_resource_1=Erőforrások ErrorResourcesAlreadyInUse=Néhány erőforrás használatban van -ErrorResourceUseInEvent=%s használva az %s eseményben +ErrorResourceUseInEvent=%s használt %s eseményben diff --git a/htdocs/langs/hu_HU/salaries.lang b/htdocs/langs/hu_HU/salaries.lang index 364f11a1991..02893a0d0f1 100644 --- a/htdocs/langs/hu_HU/salaries.lang +++ b/htdocs/langs/hu_HU/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=Számviteli számla alapértelmezés szerint bérfizetésre -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=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_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 -Salaries=Bérek -NewSalary=Új kifizetés\n -AddSalary=Add salary -NewSalaryPayment=New salary card -AddSalaryPayment=Kifizetés hozzáadása\n -SalaryPayment=Fizetés kifizetés -SalariesPayments=Fizetések kifizetései\n -SalariesPaymentsOf=Fizetések kifizetései: %s -ShowSalaryPayment=Mutasd a fizetés kifizetését\n +Salaries=Fizetések +NewSalary=Új fizetés +AddSalary=Bér hozzáadása +NewSalaryPayment=Új bérkártya +AddSalaryPayment=Bérfizetés hozzáadása +SalaryPayment=Bérfizetés +SalariesPayments=Bérek kifizetése +SalariesPaymentsOf=%s fizetések +ShowSalaryPayment=Mutasd a fizetést THM=Átlagos óradíj -TJM=Átlagos napi ráta\n -CurrentSalary=Jelenlegi fizetés\n -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=Ez az érték jelenleg csak tájékoztató jellegű, és semmilyen számításhoz nem használható\n -LastSalaries=Legutóbbi %s fizetések\n -AllSalaries=Minden fizetés\n -SalariesStatistics=Fizetési statisztikák -SalariesAndPayments=Fizetések és kifizetések\n -ConfirmDeleteSalaryPayment=Törli ezt a fizetés kifizetést?\n -FillFieldFirst=Először töltse ki a munkavállalói mezőt\n +TJM=Átlagos napi díj +CurrentSalary=Jelenlegi fizetés +THMDescription=Ez az érték használható a felhasználók által beírt projektben eltöltött idő költségének kiszámítására, ha modulprojektet használnak +TJMDescription=Ez az érték jelenleg csak tájékoztató jellegű, és nem használható semmilyen számításhoz +LastSalaries=A legutóbbi %s fizetések +AllSalaries=Minden fizetés +SalariesStatistics=Bérstatisztika +SalariesAndPayments=Bérek és kifizetések +ConfirmDeleteSalaryPayment=Törölni szeretné ezt a fizetési kifizetést? +FillFieldFirst=Először töltse ki az alkalmazott mezőt +UpdateAmountWithLastSalary=Állítsa be az összeget az utolsó fizetéssel diff --git a/htdocs/langs/hu_HU/sendings.lang b/htdocs/langs/hu_HU/sendings.lang index b84f346395b..0d164a996a9 100644 --- a/htdocs/langs/hu_HU/sendings.lang +++ b/htdocs/langs/hu_HU/sendings.lang @@ -1,76 +1,76 @@ # Dolibarr language file - Source file is en_US - sendings RefSending=Szállítási Ref. Sending=Szállítás -Sendings=Szállítások +Sendings=Szállítmányok AllSendings=Minden szállítmány -Shipment=Szállítás -Shipments=Szállítások -ShowSending=Szállítmányok megjelenítése\n -Receivings=Szállítási bizonylatok -SendingsArea=Szállítási terület -ListOfSendings=Szállítások listája -SendingMethod=Szállítás módja -LastSendings=Legutóbbi %s szállítmány -StatisticsOfSendings=Szállítási statisztikák -NbOfSendings=Szállítások száma -NumberOfShipmentsByMonth=A szállítások száma havonta -SendingCard=Shipment card -NewSending=Új szállítás -CreateShipment=Szállítás létrehozása -QtyShipped=Kiszállított mennyiség -QtyShippedShort=Qty ship. -QtyPreparedOrShipped=Qty prepared or shipped +Shipment=Szállítmány +Shipments=Szállítmányok +ShowSending=Szállítmányok megjelenítése +Receivings=Szállítási nyugták +SendingsArea=Szállítmányok területe +ListOfSendings=Szállítmányok listája +SendingMethod=Szállítási mód +LastSendings=A legutóbbi %s küldemény +StatisticsOfSendings=Szállítmányok statisztikái +NbOfSendings=Szállítmányok száma +NumberOfShipmentsByMonth=Szállítmányok száma havonta +SendingCard=Szállítmánykártya +NewSending=Új szállítmány +CreateShipment=Szállítmány létrehozása +QtyShipped=Szállított mennyiség +QtyShippedShort=Szállítás mennyisége. +QtyPreparedOrShipped=Elkészített vagy szállított mennyiség QtyToShip=Szállítandó mennyiség -QtyToReceive=Qty to receive -QtyReceived=Átvett mennyiség -QtyInOtherShipments=Qty in other shipments -KeepToShip=Remain to ship -KeepToShipShort=Marad -OtherSendingsForSameOrder=Más szállítások ehhez a megrendeléshez -SendingsAndReceivingForSameOrder=Shipments and receipts for this order -SendingsToValidate=Hitelesítésre váró szállítások +QtyToReceive=Fogadási mennyiség +QtyReceived=Mennyi érkezett +QtyInOtherShipments=Mennyiség más szállítmányokban +KeepToShip=Szállításra marad +KeepToShipShort=Szállításra marad +OtherSendingsForSameOrder=Egyéb szállítmányok ehhez a rendeléshez +SendingsAndReceivingForSameOrder=Szállítmányok és nyugták ehhez a rendeléshez +SendingsToValidate=Érvényesítendő küldemények StatusSendingCanceled=Megszakítva -StatusSendingCanceledShort=Visszavonva +StatusSendingCanceledShort=Megszakítva StatusSendingDraft=Piszkozat -StatusSendingValidated=Hitelesítve (már szállítva) -StatusSendingProcessed=Feldolgozott +StatusSendingValidated=Érvényesített (szállításra váró vagy már leszállított termékek) +StatusSendingProcessed=Feldolgozva StatusSendingDraftShort=Piszkozat -StatusSendingValidatedShort=Hitelesítve -StatusSendingProcessedShort=Feldolgozott +StatusSendingValidatedShort=Érvényesített +StatusSendingProcessedShort=Feldolgozva SendingSheet=Szállítási lap -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=Biztosan törölni szeretné ezt a szállítmányt? +ConfirmValidateSending=Biztosan érvényesíteni szeretné ezt a szállítmányt a következő hivatkozással: %s? +ConfirmCancelSending=Biztosan törölni szeretné ezt a szállítmányt? DocumentModelMerou=Merou A5 modell -WarningNoQtyLeftToSend=Figyelem, nincs szállításra váró termék. -StatsOnShipmentsOnlyValidated=Statistics are only for validated shipments. Date used is the date of validation of shipment (planned delivery date is not always known) -DateDeliveryPlanned=A szállítás tervezett időpontja -RefDeliveryReceipt=Ref delivery receipt -StatusReceipt=Status delivery receipt -DateReceived=Átvétel dátuma -ClassifyReception=Classify reception -SendShippingByEMail=Küldje el a szállítást e-mailben -SendShippingRef=Submission of shipment %s -ActionsOnShipping=Események a szállítás -LinkToTrackYourPackage=Link követni a csomagot -ShipmentCreationIsDoneFromOrder=Jelenleg az új szállítmány létrehozása az Értékesítési rendelés rekordból történik. -ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=A nyitott értékesítési rendelésekből származó termékmennyiség -ProductQtyInSuppliersOrdersRunning=Nyitott megrendelésekből származó termékmennyiség -ProductQtyInShipmentAlreadySent=A nyitott értékesítési rendelésből származó termékmennyiség már elküldve -ProductQtyInSuppliersShipmentAlreadyRecevied=A már beérkezett nyitott megrendelésekből származó termékmennyiség -NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. Correct stock or go back to choose another warehouse. -WeightVolShort=Súly/térfogat -ValidateOrderFirstBeforeShipment=A szállítmányozás előtt először meg kell erősítenie a rendelést. +WarningNoQtyLeftToSend=Figyelem, nincsenek szállításra váró termékek. +StatsOnShipmentsOnlyValidated=A statisztikák csak az érvényesített szállítmányokra vonatkoznak. A felhasznált dátum a szállítmány érvényesítésének dátuma (a tervezett szállítási dátum nem mindig ismert) +DateDeliveryPlanned=A szállítás tervezett dátuma +RefDeliveryReceipt=Szállítási visszaigazolás +StatusReceipt=Kézbesítési nyugta állapota +DateReceived=Kézbesítés beérkezésének dátuma +ClassifyReception=A fogadás osztályozása +SendShippingByEMail=Szállítmány küldése e-mailben +SendShippingRef=Szállítmány benyújtása %s +ActionsOnShipping=Események a szállítás során +LinkToTrackYourPackage=Link a csomag nyomon követéséhez +ShipmentCreationIsDoneFromOrder=Jelenleg az új szállítmány létrehozása a Vevői rendelés rekordból történik. +ShipmentLine=Szállítási vonal +ProductQtyInCustomersOrdersRunning=Termékmennyiség nyitott értékesítési rendelésekből +ProductQtyInSuppliersOrdersRunning=Termékmennyiség nyitott beszerzési rendelésekből +ProductQtyInShipmentAlreadySent=A már elküldött nyitott értékesítési rendelésből származó termék mennyisége +ProductQtyInSuppliersShipmentAlreadyRecevied=Termékmennyiség a már beérkezett nyitott megrendelésekből +NoProductToShipFoundIntoStock=Nem található szállítandó termék a(z) %s raktárban. Javítsa ki a készletet, vagy menjen vissza egy másik raktár kiválasztásához. +WeightVolShort=Súly/térfogat. +ValidateOrderFirstBeforeShipment=Elõször érvényesítenie kell a rendelést, mielõtt kiszállítást végezhet. # Sending methods # ModelDocument -DocumentModelTyphon=Teljesebb dokumentum modell bizonylatokhoz (logo...) -DocumentModelStorm=Részletesebb dokumentummodell a szállítási bizonylatok és az extra mezők kompatibilitása érdekében (logó...) -Error_EXPEDITION_ADDON_NUMBER_NotDefined=Állandó EXPEDITION_ADDON_NUMBER nincs definiálva -SumOfProductVolumes=A termékmennyiségek összege -SumOfProductWeights=A termék súlyainak összege +DocumentModelTyphon=Teljesebb dokumentummodell a kézbesítési bizonylatokhoz (logó...) +DocumentModelStorm=Teljesebb dokumentummodell a kézbesítési elismervényekhez és az extrafield-kompatibilitáshoz (logó...) +Error_EXPEDITION_ADDON_NUMBER_NotDefined=Állandó EXPEDITION_ADDON_NUMBER nincs megadva +SumOfProductVolumes=Termékmennyiségek összege +SumOfProductWeights=Terméksúlyok összege # warehouse details -DetailWarehouseNumber= Raktári részletek -DetailWarehouseFormat= W:%s (Qty: %d) +DetailWarehouseNumber= Raktár adatai +DetailWarehouseFormat= W:%s (Menny.: %d) diff --git a/htdocs/langs/hu_HU/sms.lang b/htdocs/langs/hu_HU/sms.lang index bc96d8fb920..26e69c3d78d 100644 --- a/htdocs/langs/hu_HU/sms.lang +++ b/htdocs/langs/hu_HU/sms.lang @@ -1,7 +1,7 @@ # 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 +SmsSetup=SMS beállítása +SmsDesc=Ez az oldal lehetővé teszi az SMS szolgáltatások globális opcióinak meghatározását SmsCard=SMS-kártya AllSms=Minden SMS kampány SmsTargets=Célok @@ -14,19 +14,19 @@ SmsTopic=Téma SMS SmsText=Üzenet SmsMessage=SMS-üzenet ShowSms=SMS megjelenítése -ListOfSms=List SMS campaigns -NewSms=New SMS campaign -EditSms=Edit SMS +ListOfSms=SMS kampányok listázása +NewSms=Új SMS kampány +EditSms=SMS szerkesztése ResetSms=Új küldés -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 +DeleteSms=SMS kampány törlése +DeleteASms=SMS kampány eltávolítása +PreviewSms=Előző SMS +PrepareSms=SMS előkészítése +CreateSms=SMS létrehozása +SmsResult=SMS küldés eredménye +TestSms=Teszt SMS +ValidSms=SMS érvényesítése +ApproveSms=SMS jóváhagyása SmsStatusDraft=Tervezet SmsStatusValidated=Hitelesítette SmsStatusApproved=Jóváhagyott @@ -35,17 +35,17 @@ SmsStatusSentPartialy=Elküldött részben SmsStatusSentCompletely=Elküldött teljes SmsStatusError=Hiba SmsStatusNotSent=Nem küldött -SmsSuccessfulySent=SMS correctly sent (from %s to %s) +SmsSuccessfulySent=SMS helyesen elküldve (%s-tól %s-ig) ErrorSmsRecipientIsEmpty=Számú cél üres WarningNoSmsAdded=Nincs új telefonszámot, amelyhez a tűztábla -ConfirmValidSms=Do you confirm validation of this campaign? -NbOfUniqueSms=No. of unique phone numbers -NbOfSms=No. of phone numbers +ConfirmValidSms=Megerősíti ennek a kampánynak az érvényesítését? +NbOfUniqueSms=Egyedi telefonszámok száma +NbOfSms=Telefonszámok száma ThisIsATestMessage=Ez egy teszt üzenet SendSms=SMS küldése -SmsInfoCharRemain=No. of remaining characters -SmsInfoNumero= (international format i.e.: +33899701761) +SmsInfoCharRemain=A fennmaradó karakterek száma +SmsInfoNumero= (nemzetközi formátum, pl.: +33899701761) DelayBeforeSending=Késleltetett küldés előtt (perc) -SmsNoPossibleSenderFound=A küldő nem elérhető. Ellenőrizze az SMS szolgáltató beállításait. +SmsNoPossibleSenderFound=Nincs elérhető feladó. Ellenőrizze az SMS-szolgáltató beállításait. SmsNoPossibleRecipientFound=Nincs cél elérhető. Ellenőrizze beállítása az SMS szolgáltató. -DisableStopIfSupported=Disable STOP message (if supported) +DisableStopIfSupported=STOP üzenet letiltása (ha támogatott) diff --git a/htdocs/langs/hu_HU/stocks.lang b/htdocs/langs/hu_HU/stocks.lang index 11042e52f95..a660ffaf59f 100644 --- a/htdocs/langs/hu_HU/stocks.lang +++ b/htdocs/langs/hu_HU/stocks.lang @@ -2,111 +2,111 @@ WarehouseCard=Raktár kártya Warehouse=Raktár Warehouses=Raktárak -ParentWarehouse=Szülő raktár\n -NewWarehouse=Új raktár / raktárhely\n +ParentWarehouse=Szülő raktár +NewWarehouse=Új raktár/készlet helye WarehouseEdit=Raktár módosítása MenuNewWarehouse=Új raktár WarehouseSource=Forrás raktár WarehouseSourceNotDefined=Nincs meghatározva raktár, -AddWarehouse=Raktár létrehozása\n +AddWarehouse=Raktár létrehozása AddOne=Egyet adjon hozzá -DefaultWarehouse=Alapértelmezett raktár\n +DefaultWarehouse=Alapértelmezett raktár WarehouseTarget=Cél raktár -ValidateSending=Erősítse meg a szállítást\n -CancelSending=Szállítás visszavonása\n -DeleteSending=Szállítmány törlése\n +ValidateSending=Szállítás megerősítése +CancelSending=Szállítás megszüntetése +DeleteSending=Szállítás törlése Stock=Készlet Stocks=Készletek MissingStocks=Hiányzó készletek StockAtDate=Készletek dátuma -StockAtDateInPast=Date in the past -StockAtDateInFuture=Date in the future +StockAtDateInPast=Dátum a múltban +StockAtDateInFuture=Dátum a jövőben StocksByLotSerial=Készletek tétel/cikkszám alapján -LotSerial=Lots/Serials -LotSerialList=List of lot/serials +LotSerial=Tétek/Sorozatok +LotSerialList=A tételek/sorozatok listája Movements=Mozgások ErrorWarehouseRefRequired=Raktár referencia név szükséges ListOfWarehouses=Raktárak listája ListOfStockMovements=Készlet mozgatások listája -ListOfInventories=List of inventories -MovementId=Movement ID -StockMovementForId=Mozgatás azonosítója %d -ListMouvementStockProject=List of stock movements associated to project +ListOfInventories=A készletek listája +MovementId=Mozgásazonosító +StockMovementForId=Mozgásazonosító %d +ListMouvementStockProject=A projekthez kapcsolódó készletmozgások listája StocksArea=Raktárak -AllWarehouses=Minden raktár\n -IncludeEmptyDesiredStock=Include also negative stock with undefined desired stock -IncludeAlsoDraftOrders=Include also draft orders +AllWarehouses=Minden raktár +IncludeEmptyDesiredStock=Tartalmazzon negatív készletet is a nem meghatározott kívánt készletekkel +IncludeAlsoDraftOrders=Megrendeléstervezeteket is tartalmazzon Location=Hely -LocationSummary=Short name of location -NumberOfDifferentProducts=Number of unique products +LocationSummary=A hely rövid neve +NumberOfDifferentProducts=Egyedi termékek száma NumberOfProducts=Termékek összesen LastMovement=Utolsó mozgatás LastMovements=Utolsó mozgatások Units=Egységek Unit=Egység -StockCorrection=Készlet korrekció -CorrectStock=Jelenlegi készlet -StockTransfer=Készlet áthelyezés -TransferStock=Készlet mozgatása +StockCorrection=Készletkorrekció +CorrectStock=Helyes készlet +StockTransfer=Készlettranszfer +TransferStock=Készlet átadása MassStockTransferShort=Tömeges készletmozgatás StockMovement=Készletmozgás StockMovements=Készletmozgás NumberOfUnit=Egységek száma UnitPurchaseValue=Vételár StockTooLow=Készlet alacsony -StockLowerThanLimit=A készlet határérték alá (%s) csökkent +StockLowerThanLimit=A készlet a riasztási határnál alacsonyabb (%s) EnhancedValue=Érték EnhancedValueOfWarehouses=Raktárak értéke -UserWarehouseAutoCreate=Felhasználói raktár automatikus létrehozása felhasználó hozzáadásakor -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=Alapértelmezett raktár\n -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 +UserWarehouseAutoCreate=Felhasználói raktár létrehozása automatikusan a felhasználó létrehozásakor +AllowAddLimitStockByWarehouse=A minimális és kívánt készlet értékének kezelése párosításonként (termék-raktár) a termékenkénti minimális és kívánt készlet értéke mellett +RuleForWarehouse=Raktárak szabálya +WarehouseAskWarehouseOnThirparty=Raktár beállítása harmadik felek számára +WarehouseAskWarehouseDuringPropal=Raktár beállítása az árajánlatokhoz +WarehouseAskWarehouseDuringOrder=Raktár beállítása az értékesítési rendelésekhez +WarehouseAskWarehouseDuringProject=Raktár beállítása a projektekben +UserDefaultWarehouse=Raktár beállítása a felhasználók számára +MainDefaultWarehouse=Alapértelmezett raktár +MainDefaultWarehouseUser=Minden felhasználóhoz alapértelmezett raktárt használjon +MainDefaultWarehouseUserDesc=Ezen opció aktiválásával egy termék létrehozása során a termékhez rendelt raktár kerül meghatározásra. Ha a felhasználónál nincs megadva raktár, akkor az alapértelmezett raktár kerül meghatározásra. +IndependantSubProductStock=A termékkészlet és az altermékkészlet független QtyDispatched=Mennyiség kiküldése QtyDispatchedShort=Kiadott mennyiség QtyToDispatchShort=Kiadásra vár -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 +OrderDispatch=Tétel nyugták +RuleForStockManagementDecrease=Szabály kiválasztása az automatikus készletcsökkentéshez (a kézi csökkentés mindig lehetséges, még akkor is, ha az automatikus csökkentési szabály be van kapcsolva) +RuleForStockManagementIncrease=Szabály kiválasztása az automatikus készletnöveléshez (kézi növelés mindig lehetséges, még akkor is, ha az automatikus növelési szabály be van kapcsolva) +DeStockOnBill=A valós készletek csökkentése az ügyfél számla/jóváírás érvényesítésével +DeStockOnValidateOrder=A valós készletek csökkentése értékesítési rendelés érvényesítésekor DeStockOnShipment=Tényleges készlet csökkentése kiszállítás jóváhagyásakor -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 +DeStockOnShipmentOnClosing=Csökkentse a valós készleteket, ha a szállítás zárva van +ReStockOnBill=Valódi készletek növelése a szállítói számla/jóváírás érvényesítésekor +ReStockOnValidateOrder=Növelje a valós készleteket a beszerzési rendelés jóváhagyásakor +ReStockOnDispatchOrder=Növelje a valós készletet kézi raktárba szállítással, a vásárlási rendelés átvétele után +StockOnReception=Növelje a valós készleteket a fogadás érvényesítésekor +StockOnReceptionOnClosing=Növelje a valós készleteket, ha az átvétel zárva van OrderStatusNotReadyToDispatch=A rendelés még nincs olyan állapotban, hogy kiküldhető legyen a raktárba. -StockDiffPhysicTeoric=Magyarázat a fizikai és elméleti készlet közötti eltérésről +StockDiffPhysicTeoric=Magyarázat a fizikai és a virtuális készlet közötti különbséghez NoPredefinedProductToDispatch=Nincs előredefiniált termék ehhez az objektumhoz. Tehát nincs szükség raktárba küldésre. DispatchVerb=Kiküldés StockLimitShort=Figyelmeztetés küszöbértéke StockLimit=A készlet figyelmeztetési határértéke -StockLimitDesc=(empty) means no warning.
    0 can be used to trigger a warning as soon as the stock is empty. -PhysicalStock=Fizikai készlet\n +StockLimitDesc=(üres) azt jelenti, hogy nincs figyelmeztetés.
    A 0 használható figyelmeztetés kiváltására, amint a készlet kiürült. +PhysicalStock=Fizikai készlet RealStock=Igazi készlet -RealStockDesc=A fizikai/valós készlet a raktárakban található jelenleg készlet. -RealStockWillAutomaticallyWhen=The real stock will be modified according to this rule (as defined in the Stock module): +RealStockDesc=A fizikai/valós készlet a jelenleg a raktárakban lévő készlet. +RealStockWillAutomaticallyWhen=A valós készlet ennek a szabálynak megfelelően módosul (a Készlet modulban meghatározottak szerint): VirtualStock=Virtuális készlet -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=Dátumon +VirtualStockAtDate=Virtuális készlet egy jövőbeni időpontban +VirtualStockAtDateDesc=Virtuális készlet, ha az összes függőben lévő rendelés, amelyet a kiválasztott dátum előtt feldolgozni tervezünk, befejeződik +VirtualStockDesc=A virtuális készlet az a kiszámított készlet, amely elérhető, miután minden (a készleteket érintő) nyitott/függőben lévő művelet lezárult (beérkezett beszerzési rendelések, szállított értékesítési rendelések, előállított gyártási rendelések stb.) +AtDate=Dátum szerint IdWarehouse=Raktár azon. DescWareHouse=Raktár leírás LieuWareHouse=Raktár helye WarehousesAndProducts=Raktárak és termékek WarehousesAndProductsBatchDetail=Raktárak és termékek (tétel/cikkszám szerint részletezve) AverageUnitPricePMPShort=Súlyozott átlagár -AverageUnitPricePMPDesc=The input average unit price we had to expense to get 1 unit of product into our stock. +AverageUnitPricePMPDesc=A bevitt átlagos egységár, amelyet rá kellett költenünk, hogy 1 egységnyi terméket raktárunkba kerüljünk. SellPriceMin=Értékesítés Egységár EstimatedStockValueSellShort=Eladási érték EstimatedStockValueSell=Eladási érték @@ -119,155 +119,199 @@ ThisWarehouseIsPersonalStock=Ez a raktár %s %s személyes készletet képvisel SelectWarehouseForStockDecrease=Válassza ki melyik raktár készlete csökkenjen SelectWarehouseForStockIncrease=Válassza ki melyik raktár készlete növekedjen NoStockAction=Nincs készletmozgás -DesiredStock=Desired Stock +DesiredStock=Kívánt készlet DesiredStockDesc=Ez a készlet mennyiség lesz használatos a pótlási funkcióban az alapértelmezett értéknek StockToBuy=Rendelésre Replenishment=Feltöltés ReplenishmentOrders=Megrendelések pótlásra -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) +VirtualDiffersFromPhysical=A készletopciók növelésének/csökkentésének megfelelően a fizikai készlet és a virtuális készlet (fizikai készlet + nyitott megbízások) eltérhet +UseRealStockByDefault=Valódi készlet használata a virtuális készlet helyett a feltöltési funkcióhoz +ReplenishmentCalculation=A rendelés összege (kívánt mennyiség - valós készlet) lesz (kívánt mennyiség - virtuális készlet) helyett. UseVirtualStock=Virtuális készlet felhasználása UsePhysicalStock=Fizikai készlet használata CurentSelectionMode=Jelenlegi kiválasztási mód CurentlyUsingVirtualStock=Virtuális készlet CurentlyUsingPhysicalStock=Fizikai készlet RuleForStockReplenishment=A készletek pótlásának szabálya -SelectProductWithNotNullQty=Select at least one product with a qty not null and a vendor +SelectProductWithNotNullQty=Válasszon ki legalább egy terméket, amelynek mennyisége nem nulla, és válasszon ki egy szállítót AlertOnly= Csak figyelmeztetések -IncludeProductWithUndefinedAlerts = Include also negative stock for products with no desired quantity defined, to restore them to 0 +IncludeProductWithUndefinedAlerts = Tartalmazza a negatív készletet azon termékek esetében is, amelyeknél nincs megadva kívánt mennyiség, hogy visszaállítsa őket 0-ra WarehouseForStockDecrease=A %s raktár készlete lesz csökkentve WarehouseForStockIncrease=A %s raktár készlete lesz növelve ForThisWarehouse=Az aktuális raktár részére -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. +ReplenishmentStatusDesc=Ez az összes olyan termék listája, amelynek készlete alacsonyabb a kívánt készletnél (vagy alacsonyabb, mint a riasztási érték, ha be van jelölve a "csak figyelmeztetés" jelölőnégyzet). A jelölőnégyzet segítségével beszerzési rendeléseket hozhat létre a különbözet ​​kitöltéséhez. +ReplenishmentStatusDescPerWarehouse=Ha a raktáronként meghatározott kívánt mennyiség alapján szeretne utánpótlást, szűrőt kell hozzáadnia a raktárhoz. +ReplenishmentOrdersDesc=Ez az összes nyitott beszerzési rendelés listája, beleértve az előre meghatározott termékeket. Csak az előre definiált termékekkel rendelkező nyitott rendelések jelennek meg itt, tehát azok a rendelések, amelyek hatással lehetnek a készletekre. Replenishments=Készletek pótlása NbOfProductBeforePeriod=A %s termékből rendelkezésre álló mennyiség a kiválasztott periódusban (%s előtt) NbOfProductAfterPeriod=A %s termékből rendelkezésre álló mennyiség a kiválasztott periódusban (%s után) MassMovement=Tömeges mozgatás -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=Mozgatás rögzítése +SelectProductInAndOutWareHouse=Válasszon ki egy forrásraktárt és egy célraktárt, egy terméket és egy mennyiséget, majd kattintson a "%s" gombra. Ha ez megtörtént az összes szükséges mozdulatnál, kattintson a "%s" gombra. +RecordMovement=Rekordátvitel ReceivingForSameOrder=Megrendelés nyugtái StockMovementRecorded=Rögzített készletmozgások RuleForStockAvailability=A készlet tartásának szabályai -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) +StockMustBeEnoughForInvoice=A készletszintnek elegendőnek kell lennie ahhoz, hogy a terméket/szolgáltatást hozzáadja a számlához (az aktuális valós készlet ellenőrzése történik, amikor egy sort ad hozzá a számlához, függetlenül az automatikus készletváltozás szabályától) +StockMustBeEnoughForOrder=A készletszintnek elegendőnek kell lennie ahhoz, hogy terméket/szolgáltatást adjon a rendeléshez (az aktuális valós készlet ellenőrzése történik, amikor sor kerül a rendelésbe, függetlenül az automatikus készletváltozás szabályától) +StockMustBeEnoughForShipment= A készletszintnek elegendőnek kell lennie ahhoz, hogy terméket/szolgáltatást adjon a szállítmányhoz (az aktuális valós készlet ellenőrzése történik, amikor egy sort ad a szállítmányhoz, függetlenül az automatikus készletváltozás szabályától) MovementLabel=Mozgás címkéje TypeMovement=A mozgás iránya -DateMovement=A mozgás dátuma\n +DateMovement=A mozgás dátuma InventoryCode=Mozgás vagy leltár kód IsInPackage=Csomag tartalmazza WarehouseAllowNegativeTransfer=A készlet lehet negatív -qtyToTranferIsNotEnough=Nincs elegendő készlete a forrásraktárban és a beállítások nem teszik lehetővé a negatív készletet -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'). +qtyToTranferIsNotEnough=Nincs elegendő készlete a forrásraktárból, és a beállítás nem engedélyezi a negatív készleteket. +qtyToTranferLotIsNotEnough=Nincs elég raktárkészlete ehhez a tételszámhoz a forrásraktárból, és a beállítások nem engedik meg a negatív készleteket (a '%s' termék mennyisége '%s' tétellel: %s a '%s' raktárban ). ShowWarehouse=Raktár részletei MovementCorrectStock=A %s termék készlet-módosítása MovementTransferStock=A %s termék készletének mozgatása másik raktárba InventoryCodeShort=Lelt./Mozg. kód -NoPendingReceptionOnSupplierOrder=No pending reception due to open purchase order +NoPendingReceptionOnSupplierOrder=Nincs függőben lévő fogadás a nyitott megrendelés miatt ThisSerialAlreadyExistWithDifferentDate=A (%s) tétel/cikkszám már létezik de eltérő lejárati/eladási határidővel (jelenleg %s az imént felvitt érték ellenben %s). -OpenAnyMovement=Nyitott (minden mozgás)\n +OpenAnyMovement=Megnyitás (minden mozgás) OpenInternal=Nyitott (csak belső mozgás) -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=Állítson be új korlátot a riasztásra és a kívánt optimális készletre -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product -InventoryDate=Leltári dátum\n -Inventories=Leltárak -NewInventory=Új leltár\n +UseDispatchStatus=Használjon feladási állapotot (jóváhagyás/elutasítás) a terméksorokhoz a beszerzési rendelés fogadásakor +OptionMULTIPRICESIsOn=A "szegmensenként több ár" opció be van kapcsolva. Ez azt jelenti, hogy egy terméknek több eladási ára van, így az eladási érték nem számítható ki +ProductStockWarehouseCreated=Készletkorlát a riasztáshoz és a kívánt optimális készlet helyes létrehozásához +ProductStockWarehouseUpdated=Készletkorlát a riasztáshoz és a kívánt optimális készlet helyes frissítése +ProductStockWarehouseDeleted=Készletkorlát a riasztáshoz és a kívánt optimális készlet helyesen törölve +AddNewProductStockWarehouse=Állítson be új limitet a riasztáshoz és a kívánt optimális készlethez +AddStockLocationLine=Csökkentse a mennyiséget, majd kattintson a gombra egy másik raktár hozzáadásához ehhez a termékhez +InventoryDate=Készlet dátuma +Inventories=Készletek +NewInventory=Új készlet inventorySetup = Készlet beállítása inventoryCreatePermission=Új készlet létrehozása -inventoryReadPermission=Tekintse meg a készleteket -inventoryWritePermission=Készletek frissítése +inventoryReadPermission=Készletek megtekintése +inventoryWritePermission=A készletek frissítése inventoryValidatePermission=A készlet érvényesítése inventoryDeletePermission=Készlet törlése -inventoryTitle=Készletnyilvántartás -inventoryListTitle=Leltárak -inventoryListEmpty=Nincs leltár folyamatban\n +inventoryTitle=Készlet +inventoryListTitle=Készletek +inventoryListEmpty=Nincs folyamatban lévő készlet inventoryCreateDelete=Készlet létrehozása/törlése -inventoryCreate=Újat készíteni\n +inventoryCreate=Új létrehozása inventoryEdit=Szerkesztés -inventoryValidate=Hitelesítetve -inventoryDraft=Folyamatban -inventorySelectWarehouse=Raktár választás -inventoryConfirmCreate=Készít -inventoryOfWarehouse=Raktárkészlet: %s -inventoryErrorQtyAdd=Error: one quantity is less than zero -inventoryMvtStock=Leltár szerint\n -inventoryWarningProductAlreadyExists=Ez a termék már szerepel a listában -SelectCategory=Kategória szűrés -SelectFournisseur=Eladó szűrő\n -inventoryOnDate=Készletnyilvántartás -INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=A készletmozgásoknál a készlet dátuma szerepel (a készlet érvényesítésének dátuma helyett) -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=Valódi Menny\n -RealValue=Valós érték -RegulatedQty=Szabályozott mennyiség\n -AddInventoryProduct=Add product to inventory +inventoryValidate=Ellenőrzött +inventoryDraft=Fut +inventorySelectWarehouse=Raktárválasztás +inventoryConfirmCreate=Létrehozás +inventoryOfWarehouse=A raktár készlete: %s +inventoryErrorQtyAdd=Hiba: egy mennyiség kisebb, mint nulla +inventoryMvtStock=Készlet szerint +inventoryWarningProductAlreadyExists=Ez a termék már szerepel a listán +SelectCategory=Kategória szűrő +SelectFournisseur=Szállítószűrő +inventoryOnDate=Készlet +INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=A készletmozgások a készletezés dátumával rendelkeznek (a készletellenőrzés dátuma helyett) +inventoryChangePMPPermission=A termék PMP értékének módosítása +ColumnNewPMP=Új egység PMP +OnlyProdsInStock=Ne adjon hozzá terméket készlet nélkül +TheoricalQty=Elméleti mennyiség +TheoricalValue=Elméleti mennyiség +LastPA=Utolsó BP +CurrentPA=Jelenlegi BP +RecordedQty=Rögzített mennyiség +RealQty=Valós mennyiség +RealValue=Valódi érték +RegulatedQty=Szabályozott mennyiség +AddInventoryProduct=Termék hozzáadása a készlethez AddProduct=Hozzáadás -ApplyPMP=Apply PMP -FlushInventory=Flush inventory -ConfirmFlushInventory=Do you confirm this action? -InventoryFlushed=Inventory flushed -ExitEditMode=Exit edition +ApplyPMP=PMP alkalmazása +FlushInventory=Készlet kiürítése +ConfirmFlushInventory=Megerősíti ezt a műveletet? +InventoryFlushed=Készlet kiürült +ExitEditMode=Kilépés a kiadásból inventoryDeleteLine=Sor törlése -RegulateStock=Készlet szabályozása +RegulateStock=Részvény szabályozása ListInventory=Lista -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=Tételek fogadása -StockIncreaseAfterCorrectTransfer=Increase by correction/transfer -StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer -StockIncrease=Készletnövekedés -StockDecrease=Készlet csökkenés -InventoryForASpecificWarehouse=Leltár egy adott raktárhoz\n -InventoryForASpecificProduct=Leltár egy adott termékhez\n -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=Jelenlegi készlet\n -InventoryRealQtyHelp=Set value to 0 to reset qty
    Keep field empty, or remove line, to keep unchanged -UpdateByScaning=Complete real qty by scaning -UpdateByScaningProductBarcode=Frissítés szkenneléssel (termék vonalkódja)\n -UpdateByScaningLot=Frissítés szkenneléssel (tétel | széria vonalkód)\n -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=Újranyit -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=Mozgások generálása és bezárása\n -AutofillWithExpected=Replace 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=Ismeretlen vonalkód mód\n -ProductDoesNotExist=A termék nem létezik\n -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=Raktári azonosító\n -WarehouseRef=Raktár Ref\n -SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. -InventoryStartedShort=Elkezdett -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 +StockSupportServices=A készletkezelés támogatja a szolgáltatásokat +StockSupportServicesDesc=Alapértelmezés szerint csak "termék" típusú termékeket raktározhat. A "szolgáltatás" típusú terméket is raktáron tarthatja, ha a Szolgáltatások modul és ez az opció is engedélyezett. +ReceiveProducts=Elemek fogadása +StockIncreaseAfterCorrectTransfer=Növelés javítással/átvitellel +StockDecreaseAfterCorrectTransfer=Csökkentés javítással/átvitellel +StockIncrease=Készletnövelés +StockDecrease=Készletcsökkenés +InventoryForASpecificWarehouse=Egy adott raktár készlete +InventoryForASpecificProduct=Egy adott termék készlete +StockIsRequiredToChooseWhichLotToUse=Részletre van szükség a használni kívánt tétel kiválasztásához +ForceTo=Kényszerítés +AlwaysShowFullArbo=A raktár teljes fájának megjelenítése a raktári hivatkozások felugró ablakában (Figyelmeztetés: Ez drámaian csökkentheti a teljesítményt) +StockAtDatePastDesc=Itt megtekintheti a készletet (valós készletet) egy adott múltbeli dátumon +StockAtDateFutureDesc=Itt megtekintheti a részvényeket (virtuális részvényeket) egy adott időpontban a jövőben +CurrentStock=Jelenlegi készlet +InventoryRealQtyHelp=Állítsa az értéket 0-ra a mennyiség visszaállításához
    Hagyja üresen a mezőt, vagy távolítsa el a sort, hogy változatlan maradjon +UpdateByScaning=Töltse ki a valós mennyiséget szkenneléssel +UpdateByScaningProductBarcode=Frissítés szkenneléssel (termék vonalkódja) +UpdateByScaningLot=Frissítés szkenneléssel (tétel |soros vonalkód) +DisableStockChangeOfSubProduct=A mozgás során a készlet összes altermékének készletváltozásának kikapcsolása. +ImportFromCSV=A mozgások CSV-listájának importálása +ChooseFileToImport=Fájl feltöltése, majd kattintson a %s ikonra a fájl forrás importálási fájlként való kiválasztásához... +SelectAStockMovementFileToImport=válassza ki az importálandó készletmozgási fájlt +InfoTemplateImport=A feltöltött fájlnak a következő formátumúnak kell lennie (* kötelezően kitöltendő mezők):
    Forrásraktár* | Célraktár* | Termék* | Mennyiség* | Tétel/sorozatszám
    A CSV-karakterelválasztónak „%s”-nak kell lennie +LabelOfInventoryMovemement=%s készlet +ReOpen=Újranyitás +ConfirmFinish=Megerősíti a készlet lezárását? Ez minden készletmozgást generál, hogy frissítse a készletét a készletben megadott valós mennyiségre. +ObjectNotFound=%s nem található +MakeMovementsAndClose=Mozgások generálása és bezárás +AutofillWithExpected=Cserélje ki a valós mennyiséget a várt mennyiségre +ShowAllBatchByDefault=Alapértelmezés szerint a köteg részleteinek megjelenítése a termék "készlet" lapján +CollapseBatchDetailHelp=Beállíthatja a kötegrészletek alapértelmezett megjelenítését a készletmodul konfigurációjában +ErrorWrongBarcodemode=Ismeretlen vonalkód mód +ProductDoesNotExist=A termék nem létezik +ErrorSameBatchNumber=A kötegszámhoz több rekord is található a leltári lapon. Nem lehet tudni, melyiket kell növelni. +ProductBatchDoesNotExist=A kötegelt/szériás termék nem létezik +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 +QtyWasAddedToTheScannedBarcode=Siker!! A mennyiség hozzá lett adva az összes kért vonalkódhoz. Bezárhatja a Szkenner eszközt. +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 8fb23827f04..1444c2bfd58 100644 --- a/htdocs/langs/hu_HU/stripe.lang +++ b/htdocs/langs/hu_HU/stripe.lang @@ -1,71 +1,72 @@ # 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=Következő URL-ek elérhetők a vevő részére egy oldal felajánlásához a Dollibar objektumok kifizetéséhez -PaymentForm=Fizetési ürlap +StripeSetup=Stripe modul beállítása +StripeDesc=Ajánljon fel ügyfelei számára egy online fizetési oldalt hitel-/bankkártyás fizetéshez a Stripe szolgáltatáson keresztül. . Ez felhasználható arra, hogy ügyfelei eseti vagy egy adott Dolibarr objektumhoz kapcsolódó kifizetéseket hajtsanak végre (számla, megrendelés stb.) +StripeOrCBDoPayment=Fizetés hitelkártyával vagy Stripe-pal +FollowingUrlAreAvailableToMakePayments=A következő URL-ek állnak rendelkezésre, hogy egy oldalt kínálhassanak az ügyfeleknek a Dolibarr objektumok kifizetésére +PaymentForm=Fizetési űrlap WelcomeOnPaymentPage=Üdvözöljük online fizetési szolgáltatásunkban -ThisScreenAllowsYouToPay=Ez az oldal lehetővé teszi az online fizetést %s számára. -ThisIsInformationOnPayment=Ez az információ a fizetendő tételről -ToComplete=Befejezni +ThisScreenAllowsYouToPay=Ez a képernyő lehetővé teszi, hogy online fizetést hajtson végre %s részére. +ThisIsInformationOnPayment=Ez a fizetési kötelezettséggel kapcsolatos információ +ToComplete=Befejezés YourEMail=Email a fizetés teljesítéséről -STRIPE_PAYONLINE_SENDEMAIL=Email notification after a payment attempt (success or fail) +STRIPE_PAYONLINE_SENDEMAIL=E-mail értesítés fizetési kísérlet után (siker vagy sikertelen) Creditor=Hitelező PaymentCode=Fizetési kód -StripeDoPayment=Pay with Stripe -YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +StripeDoPayment=Fizetés a Stripe segítségével +YouWillBeRedirectedOnStripe=A rendszer átirányítja a biztonságos Stripe oldalra, hogy adja meg hitelkártyaadatait Continue=Következő -ToOfferALinkForOnlinePayment=URL %s fizeté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. -AccountParameter=Számla paraméterek -UsageParameter=Használat paraméterek -InformationToFindParameters=Segíts, hogy megtaláld a %s fiókadatokat -STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment -CSSUrlForPaymentForm=CSS stíluslapot url fizetési forma -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 +ToOfferALinkForOnlinePayment=A %s fizetés URL-je +ToOfferALinkForOnlinePaymentOnOrder=URL egy %s online fizetési oldal felajánlásához értékesítési rendelés esetén +ToOfferALinkForOnlinePaymentOnInvoice=URL %s online fizetési oldal felajánlásához egy ügyfél számlájához +ToOfferALinkForOnlinePaymentOnContractLine=URL %s online fizetési oldal felajánlásához a szerződés sorához +ToOfferALinkForOnlinePaymentOnFreeAmount=URL egy %s online fizetési oldal felajánlásához bármilyen összegben létező objektum nélkül +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL %s online fizetési oldal felajánlásához egy tagi előfizetéshez +ToOfferALinkForOnlinePaymentOnDonation=URL %s online fizetési oldal felajánlásához adomány kifizetéséhez +YouCanAddTagOnUrl=A &tag=value url paramétert is hozzáadhatja bármelyik URL-hez (csak olyan fizetés esetén kötelező, amely nem kapcsolódik objektumhoz), és hozzáadhatja saját fizetési megjegyzés címkéjét.< br>A meglévő objektum nélküli fizetések URL-jéhez hozzáadhatja a &noidempotency=1 paramétert is, így ugyanaz a hivatkozás ugyanazzal a címkével többször is használható (egyes fizetési módok 1-re korlátozhatják a fizetést minden egyes hivatkozáshoz e paraméter nélkül) +SetupStripeToHavePaymentCreatedAutomatically=Állítsa be a Stripe-ot a(z) %s URL-lel, hogy a Stripe ellenőrzésekor automatikusan létrejöjjön a fizetés. +AccountParameter=Számlaparaméterek +UsageParameter=Használati paraméterek +InformationToFindParameters=Segítség megtalálni %s fiókadatait +STRIPE_CGI_URL_V2=A Stripe CGI modul URL-je fizetéshez +CSSUrlForPaymentForm=CSS-stíluslap URL-címe a fizetési űrlaphoz +NewStripePaymentReceived=Új Stripe fizetés érkezett +NewStripePaymentFailed=Új Stripe fizetés próbálkozott, de nem sikerült +FailedToChargeCard=Nem sikerült feltölteni a kártyát +STRIPE_TEST_SECRET_KEY=Titkos tesztkulcs +STRIPE_TEST_PUBLISHABLE_KEY=Tesztkulcs közzétehető +STRIPE_TEST_WEBHOOK_KEY=Webhook tesztkulcs +STRIPE_LIVE_SECRET_KEY=Titkos élő kulcs +STRIPE_LIVE_PUBLISHABLE_KEY=Közzétéve élő kulcs +STRIPE_LIVE_WEBHOOK_KEY=Webhook élő kulcs +ONLINE_PAYMENT_WAREHOUSE=A készlet csökkentésére használható készlet, amikor online fizetés megtörtént
    (TODO Amikor a készletcsökkentési lehetőség megtörténik egy számlán végzett műveletnél, és az online fizetés önmagában generálja a számlát?) +StripeLiveEnabled=Stripe live engedélyezve (egyébként teszt/sandbox mód) +StripeImportPayment=Stripe fizetések importálása +ExampleOfTestCreditCard=Példa hitelkártyára a teszteléshez: %s => érvényes, %s => CVC hiba, %s => lejárt, %s => terhelés sikertelen +StripeGateways=Stripe átjárók +OAUTH_STRIPE_TEST_ID=Stripe Connect kliensazonosító (ca_...) +OAUTH_STRIPE_LIVE_ID=Stripe Connect kliensazonosító (ca_...) +BankAccountForBankTransfer=Bankszámla pénzkifizetésekhez +StripeAccount=Stripe fiók +StripeChargeList=Stripe töltések listája +StripeTransactionList=A Stripe tranzakciók listája +StripeCustomerId=Stripe ügyfél-azonosító +StripePaymentModes=Stripe fizetési módok +LocalID=Helyi azonosító +StripeID=Stripe azonosító +NameOnCard=Név a kártyán +CardNumber=Kártyaszám +ExpiryDate=Lejárati dátum 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=Kártya törlése +ConfirmDeleteCard=Biztosan törölni szeretné ezt a hitel- vagy betéti kártyát? +CreateCustomerOnStripe=Ügyfél létrehozása a Stripe-on +CreateCardOnStripe=Kártya létrehozása a Stripe-on +ShowInStripe=Stripe megjelenítés +StripeUserAccountForActions=Felhasználói fiók, amely e-mailben értesíti egyes Stripe eseményekről (Stripe kifizetések) +StripePayoutList=Stripe kifizetések listája +ToOfferALinkForTestWebhook=Link a Stripe WebHook beállításához az IPN hívásához (teszt mód) +ToOfferALinkForLiveWebhook=Link a Stripe WebHook beállításához az IPN hívásához (élő mód) +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/supplier_proposal.lang b/htdocs/langs/hu_HU/supplier_proposal.lang index d9865ae4b11..9dd60e09171 100644 --- a/htdocs/langs/hu_HU/supplier_proposal.lang +++ b/htdocs/langs/hu_HU/supplier_proposal.lang @@ -1,58 +1,58 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposal=Szállítói kereskedelmi ajánlatok +SupplierProposal=Szállítói árajánlatok supplier_proposalDESC=Kezelje a beszállítói árajánlatokat -SupplierProposalNew=Új árajánlat -CommRequest=Árajánlat -CommRequests=Ár kérések -SearchRequest=Find a request -DraftRequests=Draft requests -SupplierProposalsDraft=Szállítói javaslatok tervezete -LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Nyitott árajánlat -SupplierProposalArea=Vendor proposals area -SupplierProposalShort=Szállítói javaslat -SupplierProposals=Szállítói javaslatok -SupplierProposalsShort=Szállítói javaslatok -AskPrice=Árajánlat -NewAskPrice=Új árajánlat -ShowSupplierProposal=Árajánlat megjelenítése -AddSupplierProposal=Create a price request -SupplierProposalRefFourn=Vendor ref -SupplierProposalDate=Kézbesítés dátuma -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=Tervezet (érvényesítés szükséges) -SupplierProposalStatusValidated=Validated (request is open) -SupplierProposalStatusClosed=Lezárt -SupplierProposalStatusSigned=Elfogadott -SupplierProposalStatusNotSigned=Visszautasított +SupplierProposalNew=Új ár kérelmek +CommRequest=Ár kérelem +CommRequests=Ár kérelmek +SearchRequest=Kérelem keresése +DraftRequests=Piszkozat kérelmek +SupplierProposalsDraft=Szállítói ajánlatok tervezete +LastModifiedRequests=A legutóbbi %s módosított ár kérelem +RequestsOpened=Ár kérelmek megnyitása +SupplierProposalArea=Szállítói ajánlatok terület +SupplierProposalShort=Szállítói ajánlat +SupplierProposals=Szállítói ajánlatok +SupplierProposalsShort=Szállítói ajánlatok +AskPrice=Ár kérelem +NewAskPrice=Új ár kérelem +ShowSupplierProposal=Ár kérelem megjelenítése +AddSupplierProposal=Ár kérelem létrehozása +SupplierProposalRefFourn=Szállítói ref +SupplierProposalDate=Szállítási dátum +SupplierProposalRefFournNotice=Mielőtt bezárja az "Elfogadva", gondolja meg, hogy megragadja a beszállítói hivatkozásokat. +ConfirmValidateAsk=Biztosan érvényesíteni szeretné ezt az ár kérelmet %s néven? +DeleteAsk=Kérelem törlése +ValidateAsk=Kérelem érvényesítése +SupplierProposalStatusDraft=Piszkozat (ellenőrizni kell) +SupplierProposalStatusValidated=Érvényesítve (a kérelem nyitva van) +SupplierProposalStatusClosed=Zárva +SupplierProposalStatusSigned=Elfogadva +SupplierProposalStatusNotSigned=Elutasítva SupplierProposalStatusDraftShort=Piszkozat -SupplierProposalStatusValidatedShort=Hitelesítetve -SupplierProposalStatusClosedShort=Lezárt -SupplierProposalStatusSignedShort=Elfogadott -SupplierProposalStatusNotSignedShort=Visszautasított -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=Árajánlat -DefaultModelSupplierProposalCreate=Default model creation -DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) -DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposals=A szállítói ajánlatkérések listája -ListSupplierProposalsAssociatedProject=List of vendor proposals associated with project -SupplierProposalsToClose=Vendor proposals to close -SupplierProposalsToProcess=Vendor proposals to process -LastSupplierProposals=Legutóbbi %s árkérés -AllPriceRequests=Minden kérés -TypeContact_supplier_proposal_external_SHIPPING=A szállító elérhetősége a szállításhoz -TypeContact_supplier_proposal_external_BILLING=Szállítói kapcsolattartó a számlázáshoz -TypeContact_supplier_proposal_external_SERVICE=Képviselő-up a következő javaslatot +SupplierProposalStatusValidatedShort=Érvényesített +SupplierProposalStatusClosedShort=Zárva +SupplierProposalStatusSignedShort=Elfogadva +SupplierProposalStatusNotSignedShort=Elutasítva +CopyAskFrom=Ár kérelem létrehozása egy meglévő kérelem másolásával +CreateEmptyAsk=Üres kérelem létrehozása +ConfirmCloneAsk=Biztosan klónozni szeretné a(z) %s ár kérelmet? +ConfirmReOpenAsk=Biztosan újra szeretné nyitni a(z) %s ár kérelmet? +SendAskByMail=Ár kérelem küldése e-mailben +SendAskRef=Ár kérelem küldése %s +SupplierProposalCard=Kártya kérése +ConfirmDeleteAsk=Biztosan törölni szeretné ezt az ár kérelmet %s? +ActionsOnSupplierProposal=Események ár kérelemre +DocModelAuroreDescription=A teljes kérelem modell (logó...) +CommercialAsk=Ár kérelem +DefaultModelSupplierProposalCreate=Alapértelmezett modell létrehozása +DefaultModelSupplierProposalToBill=Alapértelmezett sablon ár kérelem lezárásakor (elfogadva) +DefaultModelSupplierProposalClosed=Alapértelmezett sablon ár kérelem lezárásakor (elutasítva) +ListOfSupplierProposals=Szállítói ajánlatkérések listája +ListSupplierProposalsAssociatedProject=A projekthez társított szállítói ajánlatok listája +SupplierProposalsToClose=Bezárandó szállítói ajánlatok +SupplierProposalsToProcess=Feldolgozandó szállítói ajánlatok +LastSupplierProposals=Legfrissebb %s ár kérelem +AllPriceRequests=Minden kérelem +TypeContact_supplier_proposal_external_SHIPPING=Eladó kapcsolatfelvétel a szállítással kapcsolatban +TypeContact_supplier_proposal_external_BILLING=Szállító kapcsolattartó a számlázással kapcsolatban +TypeContact_supplier_proposal_external_SERVICE=Reprezentatív nyomon követési javaslat diff --git a/htdocs/langs/hu_HU/suppliers.lang b/htdocs/langs/hu_HU/suppliers.lang index a34f0b89dea..42699314bb0 100644 --- a/htdocs/langs/hu_HU/suppliers.lang +++ b/htdocs/langs/hu_HU/suppliers.lang @@ -1,49 +1,56 @@ # Dolibarr language file - Source file is en_US - vendors -Suppliers=Eladók +Suppliers=Szállítók 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ó History=Történet -ListOfSuppliers=List of vendors -ShowSupplier=Show vendor +ListOfSuppliers=Szállítók listája +ShowSupplier=Szállító megjelenítése OrderDate=Megrendelés dátuma -BuyingPriceMin=A legjobb felvásárlási ár -BuyingPriceMinShort=A legjobb felvásárlási ár -TotalBuyingPriceMinShort=Az altermékek vételára összesen -TotalSellingPriceMinShort=Az altermékek eladási ára összesen +BuyingPriceMin=Legjobb vételi ár +BuyingPriceMinShort=Legjobb vételi ár +TotalBuyingPriceMinShort=Az altermékek vásárlási árai összesen +TotalSellingPriceMinShort=Az altermékek eladási árai összesen SomeSubProductHaveNoPrices=Néhány altermékhez nincs ár megadva -AddSupplierPrice=Vásárlási ár hozzáadása -ChangeSupplierPrice=Vásárlási ár módosítása -SupplierPrices=Eladási árak -ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s -NoRecordedSuppliers=No vendor recorded -SupplierPayment=Szállítói kifizetés -SuppliersArea=Vendor area -RefSupplierShort=Kapcsolt eladó +AddSupplierPrice=Vételi ár hozzáadása +ChangeSupplierPrice=Vételár módosítása +SupplierPrices=Szállítói árak +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ez a szállítói hivatkozás már társítva van egy termékhez: %s +NoRecordedSuppliers=Nincs szállító rögzítve +SupplierPayment=Szállítói fizetés +SuppliersArea=Eladói terület +RefSupplierShort=Ref. eladó Availability=Elérhetőség -ExportDataset_fournisseur_1=Szállítói számlák és a számla részletei +ExportDataset_fournisseur_1=Szállítói számlák és számla részletei ExportDataset_fournisseur_2=Szállítói számlák és kifizetések -ExportDataset_fournisseur_3=Beszerzési rendelések és a rendelés részletei +ExportDataset_fournisseur_3=Beszerzési rendelések és rendelési adatok ApproveThisOrder=Beszerzési megrendelés jóváhagyása -ConfirmApproveThisOrder=Are you sure you want to approve order %s? +ConfirmApproveThisOrder=Biztosan jóváhagyja a(z) %s megrendelést? DenyingThisOrder=Megrendelés elutasítása -ConfirmDenyingThisOrder=Are you sure you want to deny this order %s? -ConfirmCancelThisOrder=Are you sure you want to cancel this order %s? -AddSupplierOrder=Beszerzési rendelés létrehozása -AddSupplierInvoice=Create vendor invoice -ListOfSupplierProductForSupplier=List of products and prices for vendor %s -SentToSuppliers=Sent to vendors -ListOfSupplierOrders=A beszerzési rendelések listája -MenuOrdersSupplierToBill=Vásárlási rendelések számlázása -NbDaysToDelivery=Kézbesítési késés (nap) -DescNbDaysToDelivery=The longest delivery delay of the products from this order -SupplierReputation=Vendor reputation -ReferenceReputation=Reference reputation +ConfirmDenyingThisOrder=Biztosan elutasítja ezt a megrendelést %s? +ConfirmCancelThisOrder=Biztosan törölni szeretné ezt a megrendelést %s? +AddSupplierOrder=Megrendelés létrehozása +AddSupplierInvoice=Szállítói számla létrehozása +ListOfSupplierProductForSupplier=A(z) %s szállító termékeinek és árainak listája +SentToSuppliers=Elküldve szállítóknak +ListOfSupplierOrders=Beszerzési rendelések listája +MenuOrdersSupplierToBill=Beszerzési rendelések számlázásra +NbDaysToDelivery=Szállítási késedelem (napok) +DescNbDaysToDelivery=A termékek leghosszabb szállítási késése ebből a rendelésből +SupplierReputation=Szállító hírneve +ReferenceReputation=Referencia hírnév DoNotOrderThisProductToThisSupplier=Ne rendeljen -NotTheGoodQualitySupplier=Low quality -ReputationForThisProduct=Reputation -BuyerName=Buyer name -AllProductServicePrices=All product / service prices -AllProductReferencesOfSupplier=All references of vendor -BuyingPriceNumShort=Eladási árak +NotTheGoodQualitySupplier=Alacsony minőség +ReputationForThisProduct=Hírnév +BuyerName=Vevő neve +AllProductServicePrices=Minden termék/szolgáltatás ára +AllProductReferencesOfSupplier=A szállító összes hivatkozása +BuyingPriceNumShort=Szállítói árak +RepeatableSupplierInvoice=Szállítói számla sablon +RepeatableSupplierInvoices=Szállítói számlák sablonja +RepeatableSupplierInvoicesList=Szállítói számlák sablonja +RecurringSupplierInvoices=Ismétlődő szállítói számlák +ToCreateAPredefinedSupplierInvoice=A szállítói számla sablon elkészítéséhez szabványos számlát kell készíteni, majd annak érvényesítése nélkül kattintson az "%s" gombra. +GeneratedFromSupplierTemplate=Az %s szállítói számla sablonból generálva +SupplierInvoiceGeneratedFromTemplate=Szállítói számla %s szállítói számla sablonból generálva %s diff --git a/htdocs/langs/hu_HU/ticket.lang b/htdocs/langs/hu_HU/ticket.lang index d0e0ece7543..edb3da6045c 100644 --- a/htdocs/langs/hu_HU/ticket.lang +++ b/htdocs/langs/hu_HU/ticket.lang @@ -19,53 +19,53 @@ # Module56000Name=Jegyek -Module56000Desc=Jegyrendszer a probléma vagy kérések kezeléséhez +Module56000Desc=Jegyrendszer, probléma- vagy kéréskezeléshez -Permission56001=Tekintse meg a jegyeket +Permission56001=Lásd a jegyeket Permission56002=Jegyek módosítása -Permission56003=Jegyek törlése\n -Permission56004=Jegyek kezelése\n -Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on) +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) TicketDictType=Jegy - típusok TicketDictCategory=Jegy - Csoportok -TicketDictSeverity=Ticket - Severities -TicketDictResolution=Ticket - Resolution +TicketDictSeverity=Jegy – Súlyosságok +TicketDictResolution=Jegy - Felbontás -TicketTypeShortCOM=Kereskedelmi kérdés\n -TicketTypeShortHELP=Funkcionális segítség kérése\n -TicketTypeShortISSUE=Probléma vagy hiba\n +TicketTypeShortCOM=Kereskedelmi kérdés +TicketTypeShortHELP=Funkcionális segítségkérés +TicketTypeShortISSUE=Probléma vagy hiba TicketTypeShortPROBLEM=Probléma -TicketTypeShortREQUEST=Change or enhancement request +TicketTypeShortREQUEST=Módosítási vagy bővítési kérelem TicketTypeShortPROJET=Projekt TicketTypeShortOTHER=Egyéb TicketSeverityShortLOW=Alacsony -TicketSeverityShortNORMAL=Normal +TicketSeverityShortNORMAL=Normál TicketSeverityShortHIGH=Magas -TicketSeverityShortBLOCKING=Critical, Blocking +TicketSeverityShortBLOCKING=Kritikus, blokkoló TicketCategoryShortOTHER=Egyéb -ErrorBadEmailAddress=Field '%s' incorrect -MenuTicketMyAssign=A jegyeimet\n -MenuTicketMyAssignNonClosed=Nyitott jegyeim\n +ErrorBadEmailAddress=A '%s' mező hibás +MenuTicketMyAssign=Jegyeim +MenuTicketMyAssignNonClosed=Nyitott jegyeim MenuListNonClosed=Nyitott jegyek -TypeContact_ticket_internal_CONTRIBUTOR=Hozzájáruló +TypeContact_ticket_internal_CONTRIBUTOR=Közreműködő TypeContact_ticket_internal_SUPPORTTEC=Hozzárendelt felhasználó -TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking +TypeContact_ticket_external_SUPPORTCLI=Ügyfél kapcsolatfelvétel/incidens nyomon követése TypeContact_ticket_external_CONTRIBUTOR=Külső közreműködő -OriginEmail=Reporter Email -Notify_TICKET_SENTBYMAIL=Send ticket message by email +OriginEmail=Jelentés e-mail +Notify_TICKET_SENTBYMAIL=Jegy üzenet küldése e-mailben # Status -Read=Olvas -Assigned=Assigned +Read=Olvasás +Assigned=Hozzárendelve InProgress=Folyamatban -NeedMoreInformation=Waiting for reporter feedback -NeedMoreInformationShort=Várom a visszajelzést +NeedMoreInformation=Várakozás a riporter visszajelzésére +NeedMoreInformationShort=Visszajelzésre vár Answered=Válaszolt Waiting=Várakozás SolvedClosed=Megoldva @@ -74,251 +74,279 @@ Deleted=Törölve # Dict Type=Típus Severity=Súlyosság -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 +TicketGroupIsPublic=A csoport nyilvános +TicketGroupIsPublicDesc=Ha egy jegycsoport nyilvános, akkor látható lesz az űrlapon, amikor jegyet hoz létre a nyilvános felületről # Email templates -MailToSendTicketMessage=To send email from ticket message +MailToSendTicketMessage=E-mail küldése jegyüzenetből # # Admin page # -TicketSetup=Ticket module setup +TicketSetup=Jegy modul beállítása TicketSettings=Beállítások 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=E -mail beállítás\n -TicketEmailNotificationFrom=Értesítő e-mail -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=Nyilvános felület\n -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. +TicketPublicAccess=A következő URL-címen elérhető egy nyilvános interfész, amely nem igényel azonosítást +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=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=É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 +TicketNewEmailBodyHelp=Az itt megadott szöveg bekerül az új jegy létrehozását megerősítő e-mailbe a nyilvános felületről. A jegy egyeztetésével kapcsolatos információk automatikusan hozzáadódnak. +TicketParamPublicInterface=Nyilvános felület beállítása +TicketsEmailMustExist=Meglévő e-mail cím szükséges a jegy létrehozásához +TicketsEmailMustExistHelp=A nyilvános felületen az e-mail címnek már ki kell töltenie az adatbázist egy új jegy létrehozásához. +TicketCreateThirdPartyWithContactIfNotExist=Ismeretlen e-mailek esetén kérdezze meg a nevét és a cég nevét. +TicketCreateThirdPartyWithContactIfNotExistHelp=Ellenőrizze, hogy létezik-e harmadik fél vagy kapcsolattartó a megadott e-mail-címhez. Ha nem, kérjen egy nevet és egy cégnevet egy harmadik fél létrehozásához a kapcsolattartóval. +PublicInterface=Nyilvános felület +TicketUrlPublicInterfaceLabelAdmin=Alternatív URL nyilvános felülethez +TicketUrlPublicInterfaceHelpAdmin=Lehetőség van álnevet megadni a webszerver számára, és így elérhetővé tenni a nyilvános felületet egy másik URL-lel (a szervernek proxyként kell működnie ezen az új URL-en) +TicketPublicInterfaceTextHomeLabelAdmin=A nyilvános felület üdvözlő szövege +TicketPublicInterfaceTextHome=Létrehozhat támogatási jegyet, vagy megtekintheti a meglévőt az azonosító nyomkövető jegyéből. +TicketPublicInterfaceTextHomeHelpAdmin=Az itt meghatározott szöveg megjelenik a nyilvános felület kezdőlapján. TicketPublicInterfaceTopicLabelAdmin=Interfész címe -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. +TicketPublicInterfaceTopicHelp=Ez a szöveg a nyilvános felület címeként fog megjelenni. +TicketPublicInterfaceTextHelpMessageLabelAdmin=Súgószöveg az üzenetbejegyzéshez +TicketPublicInterfaceTextHelpMessageHelpAdmin=Ez a szöveg a felhasználó üzenetbeviteli területe felett fog megjelenni. ExtraFieldsTicket=Extra attribútumok -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=Továbbá küldjön értesítést a fő e -mail címre\n -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=Aktiválja a nyilvános felületet -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. +TicketCkEditorEmailNotActivated=A HTML-szerkesztő nincs aktiválva. Kérjük, adja meg az FCKEDITOR_ENABLE_MAIL tartalmat 1-re, hogy megkapja. +TicketsDisableEmail=Ne küldjön e-mailt jegykészítéshez vagy üzenetrögzítéshez +TicketsDisableEmailHelp=Alapértelmezés szerint új jegyek vagy üzenetek létrehozásakor a rendszer e-maileket küld. Engedélyezze ezt a beállítást az *összes* e-mail értesítés letiltásához +TicketsLogEnableEmail=E-mailben történő naplózás engedélyezése +TicketsLogEnableEmailHelp=Minden változáskor egy e-mailt küldünk **minden kapcsolatnak**, amely a jegyhez kapcsolódik. +TicketParams=Paraméterek +TicketsShowModuleLogo=A modul logójának megjelenítése a nyilvános felületen +TicketsShowModuleLogoHelp=Engedélyezze ezt az opciót a logó modul elrejtéséhez a nyilvános felület oldalain +TicketsShowCompanyLogo=A cég logójának megjelenítése a nyilvános felületen +TicketsShowCompanyLogoHelp=Engedélyezze ezt az opciót a fő cég logójának elrejtéséhez a nyilvános felület oldalain +TicketsEmailAlsoSendToMainAddress=Értesítés küldése a fő e-mail címre is +TicketsEmailAlsoSendToMainAddressHelp=Engedélyezve e-mailt is küldhet a "%s" beállításban megadott címre (lásd a "%s" lapot) +TicketsLimitViewAssignedOnly=A megjelenítés korlátozása az aktuális felhasználóhoz rendelt jegyekre (külső felhasználókra nem érvényes, mindig az általuk függő harmadik félre korlátozódik) +TicketsLimitViewAssignedOnlyHelp=Csak az aktuális felhasználóhoz rendelt jegyek lesznek láthatók. Nem vonatkozik jegykezelési jogosultsággal rendelkező felhasználóra. +TicketsActivatePublicInterface=Nyilvános felület aktiválása +TicketsActivatePublicInterfaceHelp=A nyilvános felület lehetővé teszi a látogatók számára, hogy jegyeket hozzanak létre. +TicketsAutoAssignTicket=A jegyet létrehozó felhasználó automatikus hozzárendelése +TicketsAutoAssignTicketHelp=Jegy létrehozásakor a felhasználó automatikusan hozzárendelhető a jegyhez. +TicketNumberingModules=Jegyszámozási modul +TicketsModelModule=Jegyek dokumentumsablonjai +TicketNotifyTiersAtCreation=Harmadik fél értesítése a létrehozáskor +TicketsDisableCustomerEmail=Mindig tiltsa le az e-maileket, ha jegyet hoz létre nyilvános felületről +TicketsPublicNotificationNewMessage=E-mail(ek) küldése, ha új üzenetet/megjegyzést adnak egy jegyhez +TicketsPublicNotificationNewMessageHelp=E-mail(ek) küldése, ha új üzenetet adnak hozzá a nyilvános felületről (a hozzárendelt felhasználónak vagy az értesítési e-mail címre (frissítés) és/vagy az értesítési e-mail címre) +TicketPublicNotificationNewMessageDefaultEmail=Értesítési e-mail címre (frissítés) +TicketPublicNotificationNewMessageDefaultEmailHelp=E-mail küldése erre a címre minden új üzenetért, ha a jegyhez nincs hozzárendelve felhasználó, vagy ha a felhasználónak nincs ismert e-mail címe. +TicketsAutoReadTicket=A jegy automatikus megjelölése olvasottként (ha backoffice-ból hozta létre) +TicketsAutoReadTicketHelp=A jegy automatikus megjelölése olvasottként, amikor a backoffice-ból hozták létre. Amikor jegyet hoz létre a nyilvános felületről, a jegy "Nem olvasott" állapotú marad. +TicketsDelayBeforeFirstAnswer=Az új jegyre az első válasz előtt (óra): +TicketsDelayBeforeFirstAnswerHelp=Ha egy új jegyre ezen időn belül (órában) nem érkezett válasz, a listanézetben egy fontos figyelmeztető ikon jelenik meg. +TicketsDelayBetweenAnswers=A feloldatlan jegy nem lehet inaktív a következő időszakban: (óra): +TicketsDelayBetweenAnswersHelp=Ha egy feloldatlan jegy, amelyre már választ kapott, ezen időtartam letelte után (órában) nem történt további interakció, akkor a listanézetben figyelmeztető ikon jelenik meg. +TicketsAutoNotifyClose=A jegy lezárásakor automatikusan értesíti a harmadik felet +TicketsAutoNotifyCloseHelp=A jegy lezárásakor a rendszer javasolni fogja, hogy küldjön üzenetet harmadik fél kapcsolattartóinak. Tömeges záráskor üzenetet küldenek a jegyhez kapcsolódó harmadik fél egyik kapcsolattartójának. +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. + # # Index & list page # -TicketsIndex=Tickets area -TicketList=Jegyek listája\n -TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user -NoTicketsFound=Nem található jegy\n -NoUnreadTicketsFound=No unread ticket found +TicketsIndex=Jegyek területe +TicketList=Jegyek listája +TicketAssignedToMeInfos=Ez az oldal az aktuális felhasználó által létrehozott vagy hozzárendelt jegylistát jeleníti meg +NoTicketsFound=Nem található jegy +NoUnreadTicketsFound=Nem található olvasatlan jegy TicketViewAllTickets=Az összes jegy megtekintése -TicketViewNonClosedOnly=Csak nyitott jegyek megtekintése +TicketViewNonClosedOnly=Csak a nyitott jegyek megtekintése TicketStatByStatus=Jegyek állapot szerint -OrderByDateAsc=Sort by ascending date -OrderByDateDesc=Sort by descending date -ShowAsConversation=Show as conversation list -MessageListViewType=Show as table list +OrderByDateAsc=Rendezés növekvő dátum szerint +OrderByDateDesc=Rendezés csökkenő dátum szerint +ShowAsConversation=Megjelenítés beszélgetési listaként +MessageListViewType=Megjelenítés táblázatlistaként +ConfirmMassTicketClosingSendEmail=Automatikus e-mailek küldése a jegyek lezárásakor +ConfirmMassTicketClosingSendEmailQuestion=Értesíteni szeretné a harmadik feleket a jegyek lezárásakor? # # Ticket card # Ticket=Jegy -TicketCard=Ticket card -CreateTicket=Jegy létrehozása\n +TicketCard=Jegykártya +CreateTicket=Jegy létrehozása EditTicket=Jegy szerkesztése -TicketsManagement=Tickets Management -CreatedBy=Készítette -NewTicket=Új Jegy\n -SubjectAnswerToTicket=Jegyválasz -TicketTypeRequest=Request type -TicketCategory=Jegyek kategorizálása\n +TicketsManagement=Jegykezelés +CreatedBy=Létrehozta +NewTicket=Új jegy +SubjectAnswerToTicket=Jegy válasz +TicketTypeRequest=Kérés típusa +TicketCategory=Jegyek kategorizálása SeeTicket=Lásd a jegyet -TicketMarkedAsRead=A jegyet olvasottként jelölték meg -TicketReadOn=Read on -TicketCloseOn=Lezárás dátuma +TicketMarkedAsRead=A jegy olvasottként meg lett jelölve +TicketReadOn=Olvass tovább +TicketCloseOn=Záró dátum MarkAsRead=Jegy megjelölése olvasottként -TicketHistory=Jegytörténet +TicketHistory=Jegyelőzmények AssignUser=Hozzárendelés a felhasználóhoz TicketAssigned=A jegy most hozzá van rendelve TicketChangeType=Típus módosítása -TicketChangeCategory=Change analytic code -TicketChangeSeverity=Change severity -TicketAddMessage=Üzenet hozzáadása\n -AddMessage=Üzenet hozzáadása\n +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 MessageSuccessfullyAdded=Jegy hozzáadva -TicketMessageSuccessfullyAdded=Message successfully added +TicketMessageSuccessfullyAdded=Az üzenet sikeresen hozzáadva TicketMessagesList=Üzenetlista -NoMsgForThisTicket=No message for this ticket +NoMsgForThisTicket=Nincs üzenet ehhez a jegyhez TicketProperties=Osztályozás -LatestNewTickets=Latest %s newest tickets (not read) +LatestNewTickets=A legutóbbi %s legújabb jegy (nem olvasott) TicketSeverity=Súlyosság ShowTicket=Lásd a jegyet RelatedTickets=Kapcsolódó jegyek -TicketAddIntervention=Create intervention -CloseTicket=Close|Solve ticket +TicketAddIntervention=Beavatkozás létrehozása +CloseTicket=Bezárás|Jegy megoldása AbandonTicket=Jegy elhagyása -CloseATicket=Zárt|Megoldott jegy -ConfirmCloseAticket=Erősítse meg a jegyzárást -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 +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 +ConfirmDeleteTicket=Kérjük, erősítse meg a jegy törlését +TicketDeletedSuccess=A jegy sikeresen törölve +TicketMarkedAsClosed=A jegy zártként megjelölve +TicketDurationAuto=Kiszámított időtartam +TicketDurationAutoInfos=Az időtartam automatikusan számítódik ki a beavatkozással kapcsolatosan TicketUpdated=Jegy frissítve -SendMessageByEmail=Send message by email +SendMessageByEmail=Üzenet küldése e-mailben TicketNewMessage=Új üzenet -ErrorMailRecipientIsEmptyForSendTicketMessage=Recipient is empty. No email send -TicketGoIntoContactTab=Please go into "Contacts" tab to select them +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 -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. +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=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=Jegyhez kapcsolódó dokumentumok -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 a szerződéshez +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. +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. +TimeElapsedSince=Azóta eltelt idő +TicketTimeToRead=Az olvasás előtt eltelt idő +TicketTimeElapsedBeforeSince=Előtte / azóta eltelt idő +TicketContacts=Kapcsolatjegy +TicketDocumentsLinked=Jegyhez kapcsolt dokumentumok +ConfirmReOpenTicket=Megerősíti a jegy újbóli megnyitását? +TicketMessageMailIntroAutoNewPublicMessage=Új üzenet került a jegyre %s tárggyal: +TicketAssignedToYou=Jegy hozzárendelve +TicketAssignedEmailBody=A(z) #%s jegyet %s rendelte hozzá +MarkMessageAsPrivate=Üzenet megjelölése privátként +TicketMessagePrivateHelp=Ez az üzenet nem jelenik meg külső felhasználók számára +TicketEmailOriginIssuer=A jegyek kibocsátója +InitialMessage=Kezdő üzenet +LinkToAContract=Link egy szerződéshez TicketPleaseSelectAContract=Válasszon szerződést -UnableToCreateInterIfNoSocid=Can not create an intervention when no third party is defined -TicketMailExchanges=Mail exchanges -TicketInitialMessageModified=Initial message modified -TicketMessageSuccesfullyUpdated=Message successfully updated -TicketChangeStatus=Állapotváltozás -TicketConfirmChangeStatus=Confirm the status change: %s ? -TicketLogStatusChanged=Status changed: %s to %s -TicketNotNotifyTiersAtCreate=Not notify company at create -Unread=Nem olvasott -TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. -ErrorTicketRefRequired=Ticket reference name is required +UnableToCreateInterIfNoSocid=Nem hozható létre beavatkozás, ha nincs megadva harmadik fél +TicketMailExchanges=Levelezések +TicketInitialMessageModified=A kezdeti üzenet módosítva +TicketMessageSuccesfullyUpdated=Üzenet sikeresen frissítve +TicketChangeStatus=Állapot módosítása +TicketConfirmChangeStatus=Az állapotváltozás megerősítése: %s ? +TicketLogStatusChanged=Állapot megváltozott: %s %s értékre +TicketNotNotifyTiersAtCreate=Nem értesíti a céget a létrehozáskor +NotifyThirdpartyOnTicketClosing=A jegy lezárásakor értesítendő kapcsolatok +TicketNotifyAllTiersAtClose=Minden kapcsolódó kapcsolat +TicketNotNotifyTiersAtClose=Nincs kapcsolódó kapcsolat +Unread=Olvasatlan +TicketNotCreatedFromPublicInterface=Nem elérhető. A jegy nem nyilvános felületről készült. +ErrorTicketRefRequired=A jegy hivatkozási neve kötelező +TicketsDelayForFirstResponseTooLong=Túl sok idő telt el a jegyfelbontás óta válasz nélkül. +TicketsDelayFromLastResponseTooLong=Túl sok idő telt el az utolsó válasz óta ezen a jegyen. +TicketNoContractFoundToLink=Nem találtunk olyan szerződést, amely automatikusan kapcsolódik ehhez a jegyhez. Kérjük, kapcsolja össze a szerződést manuálisan. +TicketManyContractsLinked=Sok szerződést automatikusan ehhez a jegyhez kapcsoltak. Ügyeljen arra, hogy ellenőrizze, melyiket válassza. # # 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=%s jegyet olvasott: %s +NoLogForThisTicket=Még nincs napló ehhez a jegyhez +TicketLogAssignedTo=%s jegy hozzárendelve a következőhöz: %s +TicketLogPropertyChanged=%s jegy módosítva: besorolás %s-ról %s-ra +TicketLogClosedBy=%s jegyet %s zárt +TicketLogReopen=%s jegy újra nyitva # # Public pages # TicketSystem=Jegyrendszer -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=Új támogatási jegy\n -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=Információk a jegy ellenőrzéséhez\n -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! +ShowListTicketWithTrackId=Jegylista megjelenítése a számazonosítóból +ShowTicketWithTrackId=Jegy megjelenítése a számazonosítóból +TicketPublicDesc=Létrehozhat támogatási jegyet vagy csekket egy meglévő azonosítóból. +YourTicketSuccessfullySaved=A jegy sikeresen elmentve! +MesgInfosPublicTicketCreatedWithTrackId=Új jegy készült %s azonosítóval és %s hivatkozási számmal. +PleaseRememberThisId=Kérjük, őrizze meg a nyomkövetési számot, amelyet később megkérdezhetünk. +TicketNewEmailSubject=Jegy létrehozásának megerősítése - Ref %s (nyilvános jegyazonosító %s) +TicketNewEmailSubjectCustomer=Új támogatási jegy +TicketNewEmailBody=Ez egy automatikus e-mail, amely megerősíti, hogy új jegyet regisztrált. +TicketNewEmailBodyCustomer=Ez egy automatikus e-mail, amely megerősíti, hogy új jegyet hoztak létre fiókjában. +TicketNewEmailBodyInfosTicket=Információ a jegy figyeléséhez +TicketNewEmailBodyInfosTrackId=Jegykövetési szám: %s +TicketNewEmailBodyInfosTrackUrl=A jegy folyamatát az alábbi linkre kattintva tekintheti meg +TicketNewEmailBodyInfosTrackUrlCustomer=A következő linkre kattintva megtekintheti a jegy folyamatát az adott felületen +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. +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 +ErrorTicketNotFound=%s nyomkövetési azonosítójú jegy nem található! Subject=Tárgy -ViewTicket=A jegy megtekintése\n -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=Régi felhasználó\n +ViewTicket=Jegy megtekintése +ViewMyTicketList=Jegylista megtekintése +ErrorEmailMustExistToCreateTicket=Hiba: az e-mail cím nem található az adatbázisunkban +TicketNewEmailSubjectAdmin=Új jegy létrehozva – Ref %s (nyilvános jegyazonosító %s) +TicketNewEmailBodyAdmin=

    Jegyet most hoztak létre #%s azonosítóval, lásd az információkat:

    +SeeThisTicketIntomanagementInterface=Jegy megtekintése a kezelőfelületen +TicketPublicInterfaceForbidden=A jegyek nyilvános felülete nem volt engedélyezve +ErrorEmailOrTrackingInvalid=Rossz érték a nyomkövetési azonosítóhoz vagy e-mailhez +OldUser=Régi felhasználó NewUser=Új felhasználó -NumberOfTicketsByMonth=Jegyek száma havonta\n -NbOfTickets=Jegyek száma\n +NumberOfTicketsByMonth=Jegyek száma havonta +NbOfTickets=Jegyek száma # 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=Napló üzenet\n -TicketNotificationEmailBodyInfosTrackUrlinternal=View ticket into interface -TicketNotificationNumberEmailSent=Notification email sent: %s +TicketCloseEmailSubjectCustomer=Jegy lezárva +TicketCloseEmailBodyCustomer=Ez egy automatikus üzenet, amely értesíti Önt, hogy az %s jegyet nemrég zárták le. +TicketCloseEmailSubjectAdmin=Jegy lezárva – Ref %s (nyilvános jegyazonosító %s) +TicketCloseEmailBodyAdmin=A(z) #%s azonosítójú jegyet nemrég zárták le, lásd az információkat: +TicketNotificationEmailSubject=%s jegy frissítve +TicketNotificationEmailBody=Ez egy automatikus üzenet, amely értesíti, hogy a %s jegy frissült +TicketNotificationRecipient=Értesítés címzettje +TicketNotificationLogMessage=Naplóüzenet +TicketNotificationEmailBodyInfosTrackUrlinternal=Jegy megtekintése a felületen +TicketNotificationNumberEmailSent=Értesítési e-mail elküldve: %s -ActionsOnTicket=Események a jegyben\n +ActionsOnTicket=Rendezvények jegyre # # Boxes # -BoxLastTicket=Latest created tickets -BoxLastTicketDescription=Latest %s created tickets +BoxLastTicket=Utoljára létrehozott jegyek +BoxLastTicketDescription=A legutóbbi %s jegyek BoxLastTicketContent= -BoxLastTicketNoRecordedTickets=No recent unread tickets -BoxLastModifiedTicket=Latest modified tickets -BoxLastModifiedTicketDescription=Latest %s modified tickets +BoxLastTicketNoRecordedTickets=Nincsenek legutóbbi olvasatlan jegyek +BoxLastModifiedTicket=Utoljára módosított jegyek +BoxLastModifiedTicketDescription=A legutóbbi %s módosított jegy BoxLastModifiedTicketContent= -BoxLastModifiedTicketNoRecordedTickets=Nincsenek frissen módosított jegyek\n -BoxTicketType=Distribution of open tickets by type -BoxTicketSeverity=Number of open tickets by severity -BoxNoTicketSeverity=Nem nyitottak jegyeket -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=Napi új jegyek száma\n -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) -TicketCreatedToday=A jegy ma készült\n -TicketClosedToday=Ticket closed today -KMFoundForTicketGroup=We found topics and FAQs that may answers your question, thanks to check them before submitting the ticket +BoxLastModifiedTicketNoRecordedTickets=Nincs legutóbb módosított jegy +BoxTicketType=A nyitott jegyek típus szerinti megoszlása +BoxTicketSeverity=Nyitott jegyek száma súlyosság szerint +BoxNoTicketSeverity=Nincs nyitott jegy +BoxTicketLastXDays=Új jegyek száma napok szerint az elmúlt %s napban +BoxTicketLastXDayswidget = Új jegyek száma napok szerint az elmúlt X napban +BoxNoTicketLastXDays=Nincs új jegy az elmúlt %s napban +BoxNumberOfTicketByDay=Új jegyek száma naponként +BoxNewTicketVSClose=Jegyek száma a zárt jegyekhez képest (ma) +TicketCreatedToday=Jegy ma készült +TicketClosedToday=A jegy ma zárva tart +KMFoundForTicketGroup=Találtunk olyan témákat és GYIK-ket, amelyek választ adhatnak kérdésére, hála, hogy ellenőrizzük őket a jegy elküldése előtt diff --git a/htdocs/langs/hu_HU/trips.lang b/htdocs/langs/hu_HU/trips.lang index 80095743c4c..6fc556fc9eb 100644 --- a/htdocs/langs/hu_HU/trips.lang +++ b/htdocs/langs/hu_HU/trips.lang @@ -1,150 +1,150 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Show expense report -Trips=Költség kimutatások -TripsAndExpenses=Expenses reports -TripsAndExpensesStatistics=Expense reports statistics -TripCard=Expense report card -AddTrip=Create expense report -ListOfTrips=List of expense reports -ListOfFees=Költségek listája -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=Kilóméterek száma -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 +ShowExpenseReport=Költségjelentés megjelenítése +Trips=Költségjelentések +TripsAndExpenses=Költségjelentések +TripsAndExpensesStatistics=Költségjelentési statisztikák +TripCard=Költségbeszámoló kártya +AddTrip=Költségjelentés készítése +ListOfTrips=Költségjelentések listája +ListOfFees=Díjak listája +TypeFees=Díjtípusok +ShowTrip=Költségjelentés megjelenítése +NewTrip=Új költségjelentés +LastExpenseReports=A legújabb %s költségjelentések +AllExpenseReports=Minden költségjelentés +CompanyVisited=A felkeresett vállalat/szervezet +FeesKilometersOrAmout=Összeg vagy kilométer +DeleteTrip=Költségjelentés törlése +ConfirmDeleteTrip=Biztosan törölni szeretné ezt a költségjelentést? +ListTripsAndExpenses=Költségjelentések listája +ListToApprove=Jóváhagyásra vár +ExpensesArea=Költségjelentési terület +ClassifyRefunded=„Visszatérített” besorolás +ExpenseReportWaitingForApproval=Új költségjelentést nyújtottak be jóváhagyásra +ExpenseReportWaitingForApprovalMessage=Új költségjelentés elküldve, és jóváhagyásra vár.
    - Felhasználó: %s
    - Időszak: %s
    Az érvényesítéshez kattintson ide: %s +ExpenseReportWaitingForReApproval=Egy költségjelentést elküldtek újra jóváhagyásra +ExpenseReportWaitingForReApprovalMessage=Költségjelentés elküldve, és újbóli jóváhagyásra vár.
    A %s, Ön a következő okból tagadta meg a költségjelentés jóváhagyását: %s.
    Új verziót javasoltak, és az Ön jóváhagyására vár.
    - Felhasználó: %s
    - Időszak: %s
    Az érvényesítéshez kattintson ide: %s +ExpenseReportApproved=Egy költségjelentést jóváhagytunk +ExpenseReportApprovedMessage=A %s költségjelentés jóváhagyva.
    - Felhasználó: %s
    - Jóváhagyta: %s
    Kattintson ide a költségjelentés megjelenítéséhez: %s +ExpenseReportRefused=A költségjelentés elutasítva +ExpenseReportRefusedMessage=A %s költségjelentés elutasítva.
    - Felhasználó: %s
    - Elutasította: %s
    - Elutasítás indoka: %s
    Kattintson ide a költségjelentés megjelenítéséhez: %s +ExpenseReportCanceled=Egy költségjelentés törölve lett +ExpenseReportCanceledMessage=A %s költségjelentést törölték.
    - Felhasználó: %s
    - Törölte: %s
    - Lemondás indoka: %s
    Kattintson ide a költségjelentés megjelenítéséhez: %s +ExpenseReportPaid=Költségjelentés kifizetése megtörtént +ExpenseReportPaidMessage=A %s költségjelentés kifizetésre került.
    - Felhasználó: %s
    - Fizetett: %s
    Kattintson ide a költségjelentés megjelenítéséhez: %s +TripId=Id költségjelentés +AnyOtherInThisListCanValidate=A kérés érvényesítéséről tájékoztatni kell. +TripSociete=Információs társaság +TripNDF=Információs költségjelentés +PDFStandardExpenseReports=Szabvány sablon PDF dokumentum generálása költségjelentéshez +ExpenseReportLine=Költségjelentés sor TF_OTHER=Egyéb -TF_TRIP=Transportation +TF_TRIP=Szállítás TF_LUNCH=Ebéd -TF_METRO=Metró +TF_METRO=Metro TF_TRAIN=Vonat TF_BUS=Busz TF_CAR=Autó -TF_PEAGE=Autópályadíj +TF_PEAGE=Útdíj TF_ESSENCE=Üzemanyag TF_HOTEL=Szálloda TF_TAXI=Taxi -EX_KME=Mileage costs -EX_FUE=Fuel CV +EX_KME=Fuvarköltség +EX_FUE=Üzemanyag-CV EX_HOT=Szálloda -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=Fizetés módja -VALIDATOR=User responsible for approval -VALIDOR=Jóváhagyva -AUTHOR=Recorded by -AUTHORPAIEMENT=Fizetve -REFUSEUR=Denied by -CANCEL_USER=Deleted by +EX_PAR=Parkolási CV +EX_TOL=Díjköteles CV +EX_TAX=Különféle adók +EX_IND=Kártalanítási szállítási előfizetés +EX_SUM=Karbantartási ellátás +EX_SUO=Irodai kellékek +EX_CAR=Autókölcsönzés +EX_DOC=Dokumentáció +EX_CUR=Vásárlók fogadása +EX_OTR=Egyéb fogadás +EX_POS=Postaköltség +EX_CAM=CV karbantartás és javítás +EX_EMM=Alkalmazottak étkezése +EX_GUM=Vendégétkezés +EX_BRE=Reggeli +EX_FUE_VP=Üzemanyag PV +EX_TOL_VP=Útdíj PV +EX_PAR_VP=Parkolás PV +EX_CAM_VP=PV karbantartás és javítás +DefaultCategoryCar=Alapértelmezett szállítási mód +DefaultRangeNumber=Alapértelmezett tartomány száma +UploadANewFileNow=Új dokumentum feltöltése most +Error_EXPENSEREPORT_ADDON_NotDefined=Hiba, a költségjelentés számozási szabálya nincs megadva a 'Költségjelentés' modul beállításaiban +ErrorDoubleDeclaration=Ön egy másik költségjelentést jelentett be hasonló dátumtartományba. +AucuneLigne=Még nincs bejelentett költségjelentés +ModePaiement=Fizetési mód +VALIDATOR=A jóváhagyásért felelős felhasználó +VALIDOR=Jóváhagyta +AUTHOR=Rögzítette +AUTHORPAIEMENT=Fizetett +REFUSEUR=Tagadta +CANCEL_USER=Törölte MOTIF_REFUS=Ok MOTIF_CANCEL=Ok -DATE_REFUS=Deny date -DATE_SAVE=Hitelesítés dátuma -DATE_CANCEL=Cancelation date -DATE_PAIEMENT=Fizetési határidő -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 +DATE_REFUS=Dátum megtagadása +DATE_SAVE=Érvényesítés dátuma +DATE_CANCEL=Lemondás dátuma +DATE_PAIEMENT=Fizetési dátum +ExpenseReportRef=Ref. költségjelentés +ValidateAndSubmit=Érvényesítés és elküldés jóváhagyásra +ValidatedWaitingApproval=Érvényesítve (jóváhagyásra vár) +NOT_AUTHOR=Nem Ön a szerzője ennek a költségjelentésnek. A művelet megszakadt. +ConfirmRefuseTrip=Biztosan meg akarja tagadni ezt a költségjelentést? +ValideTrip=Költségjelentés jóváhagyása +ConfirmValideTrip=Biztosan jóváhagyja ezt a költségjelentést? +PaidTrip=Költségjelentés fizetése +ConfirmPaidTrip=Biztosan módosítani szeretné ennek a költségjelentésnek az állapotát "Kifizetett"-re? +ConfirmCancelTrip=Biztosan törölni szeretné ezt a költségjelentést? +BrouillonnerTrip=A költségjelentés visszahelyezése "Vázlat" állapotba +ConfirmBrouillonnerTrip=Biztosan át szeretné helyezni ezt a költségjelentést "Vázlat" állapotba? +SaveTrip=Költségjelentés érvényesítése +ConfirmSaveTrip=Biztosan érvényesíteni szeretné ezt a költségjelentést? +NoTripsToExportCSV=Nincs exportálható költségjelentés erre az időszakra. +ExpenseReportPayment=Költségjelentés befizetése +ExpenseReportsToApprove=Jóváhagyandó költségjelentések +ExpenseReportsToPay=Költségjelentések +ConfirmCloneExpenseReport=Biztosan klónozni szeretné ezt a költségjelentést? +ExpenseReportsIk=A kilométerdíjak konfigurálása +ExpenseReportsRules=Költségjelentési szabályok +ExpenseReportIkDesc=Módosíthatja a kilométerköltség számítását kategóriák és tartományok szerint, hogy kik voltak korábban meghatározottak. d a távolság kilométerben +ExpenseReportRulesDesc=Meghatározhatja a költségjelentések maximális összegére vonatkozó szabályokat. Ezeket a szabályokat akkor kell alkalmazni, amikor új kiadás kerül egy költségjelentésbe 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=Kezdő dátum -ExpenseReportDateEnd=Befejező dátum -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 +expenseReportCoef=Együttható +expenseReportTotalForFive=Példa: d = 5 +expenseReportRangeFromTo=%d-tól %d-ig +expenseReportRangeMoreThan=több mint %d +expenseReportCoefUndefined=(érték nincs megadva) +expenseReportCatDisabled=Kategória letiltva – lásd a c_exp_tax_cat szótárt +expenseReportRangeDisabled=Tartomány letiltva – lásd a c_exp_tax_range szótárat +expenseReportPrintExample=eltolás + (d x együttható) = %s +ExpenseReportApplyTo=Alkalmazás erre +ExpenseReportDomain=Alkalmazandó tartomány +ExpenseReportLimitOn=Korlátozás bekapcsolva +ExpenseReportDateStart=Kezdés dátuma +ExpenseReportDateEnd=Vége dátuma +ExpenseReportLimitAmount=Maximális összeg +ExpenseReportRestrictive=Tiltott túllépés +AllExpenseReport=Minden típusú költségjelentés +OnExpense=Költségsor +ExpenseReportRuleSave=Költségjelentési szabály mentve +ExpenseReportRuleErrorOnSave=Hiba: %s +RangeNum=%d tartomány +ExpenseReportConstraintViolationError=A maximális összeg túllépve (%s szabály): %s nagyobb, mint %s (Túllépés tilos) +byEX_DAY=naponként (korlátozás: %s) +byEX_MON=hónaponként (korlátozás: %s) +byEX_YEA=évenként (korlátozás: %s) +byEX_EXP=sor szerint (korlátozás: %s) +ExpenseReportConstraintViolationWarning=A maximális összeg túllépve (%s szabály): %s nagyobb, mint %s (Túllépés engedélyezett) +nolimitbyEX_DAY=naponként (korlátozás nélkül) +nolimitbyEX_MON=havonta (korlátozás nélkül) +nolimitbyEX_YEA=évenként (korlátozás nélkül) +nolimitbyEX_EXP=soronként (nincs korlátozás) +CarCategory=Járműkategória +ExpenseRangeOffset=Eltolás összege: %s +RangeIk=Kifutási tartomány +AttachTheNewLineToTheDocument=A sort csatolja egy feltöltött dokumentumhoz diff --git a/htdocs/langs/hu_HU/users.lang b/htdocs/langs/hu_HU/users.lang index 4788b7ac4a6..959749a7053 100644 --- a/htdocs/langs/hu_HU/users.lang +++ b/htdocs/langs/hu_HU/users.lang @@ -6,14 +6,14 @@ Permission=Engedély Permissions=Engedélyek EditPassword=Jelszó szerkesztése SendNewPassword=Jelszó újragenerálása és küldése -SendNewPasswordLink=Link a jelszó visszaállításához +SendNewPasswordLink=Link küldése a jelszó visszaállításához ReinitPassword=Jelszó újragenerálása PasswordChangedTo=A jelszó erre változott: %s -SubjectNewPassword=Az új jelszava %s-hoz +SubjectNewPassword=Az Ön új jelszava a következőhöz: %s GroupRights=Csoport engedélyek UserRights=Felhasználói engedélyek -Credentials=Hitelesítő adatok -UserGUISetup=Megjelenítési beállítások +Credentials=Hitelesítési adatok +UserGUISetup=Felhasználói kijelző beállítása DisableUser=Letiltás DisableAUser=Felhasználó letiltása DeleteUser=Törlés @@ -21,12 +21,12 @@ DeleteAUser=Felhasználó törlése EnableAUser=Felhasználó engedélyezése DeleteGroup=Törlés DeleteAGroup=Csoport törlése -ConfirmDisableUser=Biztos benne, hogy letiltja a(z) %s felhasználót? -ConfirmDeleteUser=Biztosan törli a(z) %s felhasználót? -ConfirmDeleteGroup=Biztosan törli a(z) %s csoportot? +ConfirmDisableUser=Biztosan letiltja a(z) %s felhasználót? +ConfirmDeleteUser=Biztosan törölni szeretné %s felhasználót? +ConfirmDeleteGroup=Biztosan törölni szeretné a(z) %s csoportot? ConfirmEnableUser=Biztosan engedélyezi a(z) %s felhasználót? -ConfirmReinitPassword=Biztosan új jelszót szeretne létrehozni a(z) %s felhasználó számára? -ConfirmSendNewPassword=Biztos benne, hogy új jelszót kíván generálni és elküldeni a(z) %s felhasználó számára? +ConfirmReinitPassword=Biztosan új jelszót szeretne létrehozni %s felhasználó számára? +ConfirmSendNewPassword=Biztosan új jelszót kíván létrehozni és elküldeni a(z) %s felhasználónak? NewUser=Új felhasználó CreateUser=Felhasználó létrehozása LoginNotDefined=Bejelentkezés nincs definiálva. @@ -36,7 +36,7 @@ SuperAdministrator=Szuper Adminisztrátor SuperAdministratorDesc=Adminisztrátor minden joggal AdministratorDesc=Rendszergazda DefaultRights=Alapértelmezett engedélyek -DefaultRightsDesc=Adja meg az alapértelmezett engedélyeket, amelyeket automatikusan megkap egy új felhasználó (a meglévő felhasználók engedélyének módosításához menjen a felhasználói kártyára). +DefaultRightsDesc=Határozza meg itt az alapértelmezett engedélyeket, amelyeket automatikusan megadnak egy új felhasználónak (a meglévő felhasználók engedélyeinek módosításához lépjen a felhasználói kártyára). DolibarrUsers=Dolibarr felhasználók LastName=Vezetéknév FirstName=Keresztnév @@ -45,13 +45,13 @@ NewGroup=Új csoport CreateGroup=Csoport létrehozása RemoveFromGroup=Eltávolítás a csoportból PasswordChangedAndSentTo=A jelszó megváltoztatva és elküldve: %s. -PasswordChangeRequest=Jelszó megváltoztatásának kérése %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=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=A jelszó visszaállításának megerősítése +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. +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 -LastGroupsCreated=Legutóbb létrehozott %s csoportok +LastGroupsCreated=A legutóbbi %s csoport létrehozva LastUsersCreated=Utóbbi %s létrehozott felhasználók ShowGroup=Csoport mutatása ShowUser=Felhasználó mutatása @@ -63,7 +63,7 @@ ListOfGroupsForUser=Felhasználóhoz tartozó csoportok listája LinkToCompanyContact=Harmadik félhez/kapcsolathoz kapcsolás LinkedToDolibarrMember=Taghoz kapcsolás LinkedToDolibarrUser=Link a felhasználóhoz -LinkedToDolibarrThirdParty=Link to third party +LinkedToDolibarrThirdParty=Link harmadik félhez CreateDolibarrLogin=Felhasználó létrehozása CreateDolibarrThirdParty=Harmadik fél létrehozása LoginAccountDisableInDolibarr=Fiók kiakapcsolva a Dolibarrban. @@ -72,17 +72,17 @@ InternalUser=Belső felahsználó ExportDataset_user_1=Felhasználók és tulajdonságaik DomainUser=Domain felhasználók %s Reactivate=Újra aktiválás -CreateInternalUserDesc=Ez az űrlap lehetővé teszi belső felhasználó létrehozását a vállalatban/szervezetben. Külső felhasználó (vevő, eladó stb.) létrehozásához használja a 'Dolibarr felhasználó létrehozása' gombot a partner névjegykártyáján. -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=Ez az űrlap lehetővé teszi, hogy belső felhasználót hozzon létre a vállalatában/szervezetében. Külső felhasználó (ügyfél, szállító stb.) létrehozásához használja a „Dolibarr-felhasználó létrehozása” gombot a harmadik fél névjegykártyáján. +InternalExternalDesc=Egy belső felhasználó olyan felhasználó, aki az Ön vállalatának/szervezetének tagja, vagy a szervezeten kívüli partner felhasználó, akinek esetleg több adatot kell látnia, mint a cégéhez (az engedélyrendszerhez) kapcsolódó adatot meghatározza, hogy mit láthat és mit nem láthat vagy tehet.
    A külső felhasználó olyan ügyfél, szállító vagy más, akinek CSAK saját magával kapcsolatos adatokat kell megtekintenie (Külső felhasználó létrehozása egy harmadik számára megtehető a harmadik fél kapcsolatfelvételi rekordjából).

    Mindkét esetben engedélyt kell adnia a felhasználónak szükséges szolgáltatásokhoz. PermissionInheritedFromAGroup=Engedélyek megadva mert örökölte az egyik csoporttól. Inherited=Örökölve -UserWillBe=Created user will be +UserWillBe=Létrehozott felhasználó lesz UserWillBeInternalUser=Létrehozta felhasználó lesz egy belső felhasználó (mivel nem kapcsolódik az adott harmadik fél) UserWillBeExternalUser=Létrehozott felhasználó lesz egy külső felhasználó (mivel kapcsolódnak az adott harmadik fél) IdPhoneCaller=Telfon hívó azonosító NewUserCreated=Felhasználó %s létrehozva NewUserPassword=Jelszó megváltoztatása %s -NewPasswordValidated=Your new password have been validated and must be used now to login. +NewPasswordValidated=Új jelszava érvényesítésre került, és most használni kell a bejelentkezéshez. EventUserModified=Felhasználó %s módosítva UserDisabled=Felhasználó %s kikapcsolva UserEnabled=Felhasználó %s aktiválva @@ -90,9 +90,9 @@ UserDeleted=Felhasználó %s eltávolítva NewGroupCreated=Csoport %s létrehozva GroupModified=%s csoport módosítva GroupDeleted=Csoport %s eltávolítva -ConfirmCreateContact=Biztosan létrehoz egy Dolibarr fiókot ehhez a kapcsolattartóhoz? -ConfirmCreateLogin=Biztosan létrehoz egy Dolibarr fiókot ehhez a taghoz? -ConfirmCreateThirdParty=Biztos benne, hogy egy partnert akar létrehozni ehhez a taghoz? +ConfirmCreateContact=Biztosan létrehoz egy Dolibarr fiókot ehhez a kapcsolathoz? +ConfirmCreateLogin=Biztosan létrehoz egy Dolibarr fiókot ennek a tagnak? +ConfirmCreateThirdParty=Biztosan létrehoz egy harmadik felet ehhez a taghoz? LoginToCreate=Létrehozandó bejelentkezés NameToCreate=Létrehozandó harmadik fél neve YourRole=Szerepkörei @@ -105,22 +105,26 @@ HierarchicView=Hierachia nézet UseTypeFieldToChange=Hansználd a mezőt a módosításhoz OpenIDURL=OpenID URL LoginUsingOpenID=Használd az OpenID-t a belépéshez -WeeklyHours=Munkaidő (hetente) -ExpectedWorkedHours=Expected hours worked per week +WeeklyHours=Munkaórák (hetente) +ExpectedWorkedHours=Várható heti munkaórák ColorUser=A felhasználó színe DisabledInMonoUserMode=Karbantartási módban kikapcsolt -UserAccountancyCode=Felhasználói számviteli kód +UserAccountancyCode=Felhasználói elszámolási kód UserLogoff=Felhasználó kilépés UserLogged=Felhasználó naplózva -DateOfEmployment=Employment date +DateOfEmployment=A foglalkoztatás dátuma DateEmployment=Foglalkoztatás -DateEmploymentstart=A foglalkoztatás kezdő dátuma -DateEmploymentEnd=A foglalkoztatás befejezési dátuma -RangeOfLoginValidity=Access validity date range -CantDisableYourself=Saját felhasználói rekordját nem tilthatja le -ForceUserExpenseValidator=A költségjelentés érvényesítésének kényszerítése -ForceUserHolidayValidator=A szabadságkérelem érvényesítése -ValidatorIsSupervisorByDefault=Alapértelmezés szerint az érvényesítő a felhasználó vezetője. Hagyja üresen ha ez így van. +DateEmploymentStart=A foglalkoztatás kezdő dátuma +DateEmploymentEnd=A foglalkoztatás befejezésének dátuma +RangeOfLoginValidity=Hozzáférés érvényességi dátumtartománya +CantDisableYourself=Nem tilthatja le saját felhasználói rekordját +ForceUserExpenseValidator=Kényszerített költségjelentés érvényesítő +ForceUserHolidayValidator=Kényszerített szabadság kérés érvényesítője +ValidatorIsSupervisorByDefault=Alapértelmezés szerint a validátor a felhasználó felügyelője. Tartsa üresen ezt a viselkedést. UserPersonalEmail=Személyes e-mail UserPersonalMobile=Személyes mobiltelefon -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 +WarningNotLangOfInterface=Figyelem, ez a fő nyelv, amelyet a felhasználó beszél, nem pedig az általa látni kívánt felület nyelve. A felhasználó által látható felület nyelvének módosításához lépjen a %s lapra +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 diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang index 4f3fc5bc963..61b8f8885c7 100644 --- a/htdocs/langs/hu_HU/website.lang +++ b/htdocs/langs/hu_HU/website.lang @@ -1,147 +1,147 @@ # Dolibarr language file - Source file is en_US - website Shortname=Kód -WebsiteSetupDesc=Itt hozza létre a használni kívánt webhelyeket. Ezután lépjen a Weboldalak menübe, és szerkessze őket. -DeleteWebsite=A honlap törlése -ConfirmDeleteWebsite=Biztosan törli ezt a webhelyet? Az összes oldalát és tartalmát szintén eltávolítják. A feltöltött fájlok (mint például a média könyvtárba, az ECM modul, stb.) Megmaradnak. -WEBSITE_TYPE_CONTAINER=Az oldal / tároló típusa -WEBSITE_PAGE_EXAMPLE=Példaként használni kívánt weboldal -WEBSITE_PAGENAME=Oldal neve / alias -WEBSITE_ALIASALT=Alternatív oldalnevek / alias-ok -WEBSITE_ALIASALTDesc=Használj itt egyéb nevek / alias-ok listáját, így az oldal elérhető lesz egyéb neveken / álnevek használatával is (például a régi név az álnév átnevezése után mint backlink továbbra is fennmaradjon a régi hivatkozáson / néven). A szintaxis:
    alternatív név1, alternatív név2, ... -WEBSITE_CSS_URL=A külső CSS fájl URL-je -WEBSITE_CSS_INLINE=CSS fájl tartalma (közös minden oldalra) -WEBSITE_JS_INLINE=Javascript fájl tartalma (közös minden oldalra) -WEBSITE_HTML_HEADER=Kiegészítés a HTML fejléc alján (közös minden oldalra) +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. +WEBSITE_TYPE_CONTAINER=Oldal/tároló típusa +WEBSITE_PAGE_EXAMPLE=Példaként használható weboldal +WEBSITE_PAGENAME=Oldalnév/álnév +WEBSITE_ALIASALT=Alternatív oldalnevek/álnevek +WEBSITE_ALIASALTDesc=Használja itt a többi név/álnevek listáját, hogy az oldal más nevek/álnevek használatával is elérhető legyen (például a régi név az álnév átnevezése után, hogy a régi link/név visszamutató hivatkozása működjön). A szintaxis:
    alternatívnév1, alternatívnév2, ... +WEBSITE_CSS_URL=A külső CSS-fájl URL-je +WEBSITE_CSS_INLINE=CSS-fájltartalom (minden oldalon közös) +WEBSITE_JS_INLINE=Javascript fájltartalom (minden oldalon közös) +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=Weboldal .htaccess fájl -WEBSITE_MANIFEST_JSON=Honlap manifest.json fájl +WEBSITE_HTACCESS=Webhely .htaccess fájl +WEBSITE_MANIFEST_JSON=Webhely manifest.json fájl WEBSITE_README=README.md fájl -WEBSITE_KEYWORDSDesc=Use a comma to separate values -EnterHereLicenseInformation=Írja ide a meta adatokat vagy a licenc információkat a README.md fájl kitöltéséhez. ha sablonként terjeszti webhelyét, akkor a fájl belekerül a temptate csomagba. -HtmlHeaderPage=HTML fejléc (csak ezen az oldalon) -PageNameAliasHelp=Az oldal neve vagy aliasa.
    Ezt az aliast SEO URL kovácsolására is használják, ha a webhelyet egy webszerver virtuális gazdagépről indítják (például Apacke, Nginx, ...). Használja az " %s " gombot az alias szerkesztéséhez. -EditTheWebSiteForACommonHeader=Megjegyzés: Ha az összes oldalhoz személyre szabott fejlécet szeretne meghatározni, akkor a fejlécet az oldal / tároló helyett a webhelyszinten kell szerkeszteni. +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. +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. MediaFiles=Médiakönyvtár -EditCss=A webhely tulajdonságainak szerkesztése +EditCss=Webhely tulajdonságainak szerkesztése EditMenu=Szerkesztés menü -EditMedias=A média szerkesztése -EditPageMeta=Az oldal / tároló tulajdonságainak szerkesztése -EditInLine=Szerkesztés inline +EditMedias=Média szerkesztése +EditPageMeta=Oldal/tároló tulajdonságainak szerkesztése +EditInLine=Szerkesztés soron belül AddWebsite=Webhely hozzáadása Webpage=Weblap / tároló -AddPage=Oldal / tároló hozzáadása +AddPage=Oldal/tároló hozzáadása PageContainer=Oldal -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=Az %s azonosítóval kért oldalnak még nincs tartalma, vagy a .tpl.php gyorsítótár fájlt eltávolították. Szerkessze az oldal tartalmát ennek megoldásához. -SiteDeleted='%s' webhely törölve -PageContent=Oldal / Konténer -PageDeleted=Az %s weboldal '%s' oldala törölve -PageAdded=Oldal / Contenair '%s' hozzáadva -ViewSiteInNewTab=A webhely megtekintése új lapon -ViewPageInNewTab=Az oldal megtekintése új lapon -SetAsHomePage=Beállítás kezdőlapnak +PreviewOfSiteNotYetAvailable=Webhelyének %s előnézete még nem érhető el. Először a „Teljes webhelysablon importálása” vagy „Oldal/tároló hozzáadása” parancsot kell végrehajtania. +RequestedPageHasNoContentYet=A(z) %s azonosítójú kért oldalon még nincs tartalom, vagy a .tpl.php gyorsítótár fájl eltávolításra került. Ennek megoldásához szerkessze az oldal tartalmát. +SiteDeleted=A '%s' webhely törölve +PageContent=Oldal/Tartalom +PageDeleted=A %s webhely '%s' oldala/tartalma törölve +PageAdded=Oldal/tartalom '%s' hozzáadva +ViewSiteInNewTab=Webhely megtekintése új lapon +ViewPageInNewTab=Oldal megtekintése új lapon +SetAsHomePage=Beállítás kezdőlapként RealURL=Valódi URL -ViewWebsiteInProduction=Tekintse meg a webhelyet otthoni URL-ek segítségével -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=Használjon beépített PHP szerverrel
    Fejlesztői környezetben a futtatással inkább tesztelheti a webhelyet a beágyazott PHP szerverrel (PHP 5.5 szükséges)
    php -S 0.0.0.0:8080 -t %s -YouCanAlsoDeployToAnotherWHP=Futtassa weboldalát egy másik Dolibarr tárhely szolgáltatóval
    Ha még nem áll rendelkezésre internetes szerver, például Apache vagy NGinx, akkor exportálhatja és importálhatja webhelyét egy másik Dolibarr példányra, amelyet egy másik Dolibarr tárhely szolgáltató biztosít, és amely teljes mértékben integrálja a webhely modult. Néhány Dolibarr tárhely-szolgáltató felsorolását a https://saas.dolibarr.org oldalon találja -CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s -ReadPerm=Olvas -WritePerm=Ír -TestDeployOnWeb=Tesztelés / telepítés az interneten -PreviewSiteServedByWebServer=Előnézet %s új fülön.

    Az %s-et egy külső webszerver fogja kiszolgálni (például Apache, Nginx, IIS). A kiszolgáló telepítése és telepítése előtt telepítenie kell a könyvtárat:
    %s
    Külső szerver által kiszolgált URL:
    %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=A külső webszerver által kiszolgált virtuális gazdagép URL-je nincs meghatározva -NoPageYet=Még nincs oldal -YouCanCreatePageOrImportTemplate=Készíthet új oldalt, vagy importálhat egy teljes webhelysablont -SyntaxHelp=Súgó a konkrét szintaxis-tippekhez -YouCanEditHtmlSourceckeditor=A HTML forráskódot a szerkesztőben a "Forrás" gombbal szerkesztheti. -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">
    +ViewWebsiteInProduction=Webhely megtekintése otthoni URL-ek használatával +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 +YouCanAlsoDeployToAnotherWHP=Futtassa webhelyét egy másik Dolibarr tárhelyszolgáltatóval
    Ha nem rendelkezik olyan webszerverrel, mint az Apache vagy az NGinx, exportálhatja és importálhatja webhelyét egy másik Dolibarr-példányba. egy másik Dolibarr tárhelyszolgáltató biztosítja, amely teljes körű integrációt biztosít a Webhely modullal. Néhány Dolibarr tárhelyszolgáltató listája a https://saas.dolibarr.orgon található. a> +CheckVirtualHostPerms=Ellenőrizze azt is, hogy a virtuális gazdagép felhasználója (például a www-data) rendelkezik-e %s engedélyekkel a
    %s fájlokhoz +ReadPerm=Olvasás +WritePerm=Írás +TestDeployOnWeb=Tesztelés/telepítés a weben +PreviewSiteServedByWebServer=A %s előnézete egy új lapon.

    A %s egy külső webszerver (például Apache, Nginx, IIS) fogja kiszolgálni. Telepítenie és be kell állítania ezt a szervert, mielőtt a következő könyvtárra mutatna:
    %s
    A külső szerver által kiszolgált URL:
    %s +PreviewSiteServedByDolibarr=A %s előnézete egy új lapon.

    A %s-t a Dolibarr szerver fogja kiszolgálni, így nincs szüksége további webszerverre (például Apache, Nginx, IIS) telepíteni kell.
    Az a kellemetlen, hogy az oldalak URL-címei nem felhasználóbarátok, és a Dolibarr elérési útjával kezdődnek.
    A Dolibarr által kiszolgált URL:
    %s

    Ha saját külső webszerverét szeretné használni a webhely kiszolgálására, hozzon létre egy virtuális gazdagépet a webszerverén, amely a
    %s
    könyvtárra mutat, majd adja meg a virtuális nevét, szervert a webhely tulajdonságaiban, és kattintson a „Tesztelés/telepítés a weben” hivatkozásra. +VirtualHostUrlNotDefined=A külső webszerver által kiszolgált virtuális gazdagép URL-je nincs megadva +NoPageYet=Még nincsenek oldalak +YouCanCreatePageOrImportTemplate=Létrehozhat egy új oldalt vagy importálhat egy teljes webhelysablont +SyntaxHelp=Súgó adott szintaktikai tippekhez +YouCanEditHtmlSourceckeditor=A HTML forráskódot a szerkesztő "Forrás" gombjával szerkesztheti. +YouCanEditHtmlSource=
    A PHP kódot a <?php ?> címkék használatával helyezheti el ebbe a forrásba. A következő globális változók állnak rendelkezésre: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Másik oldal/tároló tartalma is szerepelhet a következő szintaxissal:
    <?php includeContainer('alias_of_container_to_include'); ?>

    A következő szintaxissal átirányíthat egy másik oldalra/tárolóra (Megjegyzés: ne adjon ki tartalmat átirányítás előtt):
    <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

    Egy másik oldalra mutató hivatkozás hozzáadásához használja a következő szintaxist:
    <a href ="alias_of_page_to_link_to.php">mylink<a>

    A letöltési link hozzáadása a documents könyvtárban tárolt fájl esetén használja a document.php wrappert:
    Például egy dokumentumokba/ecm-be (naplózni kell) a szintaxis :
    <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
    Dokumentumokba/médiákba helyezhető fájlokhoz (könyvtár megnyitása nyilvános hozzáférés), szintaxisa:
    <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
    A következővel megosztott fájl esetén megosztási hivatkozás (nyílt hozzáférés a fájl megosztási hash kulcsával), szintaxisa:
    <a href="/document.php?hashp=publicsharekeyoffile">

    kép felvételéhez a documents könyvtárban tárolva használja a viewimage.php wrappert:
    Például egy dokumentumokba/médiákba helyezett kép esetén (nyitott könyvtár nyilvános hozzáféréshez) a szintaxis a következő:
    <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=Oldal / tároló klónozása -CloneSite=Klón webhely +YouCanEditHtmlSource2=Megosztási hivatkozással megosztott kép esetén (nyílt hozzáférés a fájl megosztási hash kulcsával) a szintaxis:
    <img src="/viewimage.php?hashp=12345679012..."> ;
    +YouCanEditHtmlSourceMore=
    A HTML-re vagy a dinamikus kódra további példák érhetők el a wiki dokumentációjában
    . +ClonePage=Oldal/tároló klónozása +CloneSite=Webhely klónozása SiteAdded=Webhely hozzáadva -ConfirmClonePage=Kérjük, írja be az új oldal kódját / aliasait, ha ez a klónozott oldal fordítása. +ConfirmClonePage=Kérjük, adja meg az új oldal kódját/álnevét, és azt, hogy a klónozott oldal fordítása-e. PageIsANewTranslation=Az új oldal az aktuális oldal fordítása? -LanguageMustNotBeSameThanClonedPage=Klónoz egy oldalt fordításként. Az új oldal nyelvének különböznie kell a forrásoldal nyelvétől. +LanguageMustNotBeSameThanClonedPage=Klónozol egy oldalt fordításként. Az új oldal nyelvének el kell térnie a forrásoldal nyelvétől. ParentPageId=Szülőoldal azonosítója -WebsiteId=Webhely azonosítója -CreateByFetchingExternalPage=Hozzon létre oldalt / tárolót külső URL-ből való letöltéssel ... -OrEnterPageInfoManually=Vagy hozzon létre oldalt a semmiből vagy egy sablonból ... -FetchAndCreate=Létrehozás és létrehozás -ExportSite=Export webhely +WebsiteId=Webhelyazonosító +CreateByFetchingExternalPage=Oldal/tároló létrehozása oldal külső URL-ről való lekérésével... +OrEnterPageInfoManually=Vagy hozzon létre oldalt a semmiből vagy egy oldalsablonból... +FetchAndCreate=Lehívás és létrehozás +ExportSite=Webhely exportálása ImportSite=Webhelysablon importálása -IDOfPage=Az oldal azonosítója +IDOfPage=Oldal azonosítója Banner=Banner -BlogPost=Blog bejegyzés -WebsiteAccount=Weboldal-account -WebsiteAccounts=Webhely-accountok -AddWebsiteAccount=Hozzon létre webhely accountot -BackToListForThirdParty=Back to list for the third-party +BlogPost=Blogbejegyzés +WebsiteAccount=Webhelyfiók +WebsiteAccounts=Webhelyfiókok +AddWebsiteAccount=Webhelyfiók létrehozása +BackToListForThirdParty=Vissza a harmadik fél listájához DisableSiteFirst=Először tiltsa le a webhelyet -MyContainerTitle=Saját webhelyem címe -AnotherContainer=Így lehet beépíteni egy másik oldal / tároló tartalmát (itt lehet hiba, ha engedélyezi a dinamikus kódot, mert a beágyazott konténer nem létezik) -SorryWebsiteIsCurrentlyOffLine=Sajnáljuk, ez a webhely jelenleg offline állapotban van. Kérem, jöjjön vissza később ... -WEBSITE_USE_WEBSITE_ACCOUNTS=Engedélyezze a webhely account tábláját -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Engedélyezze a táblát a webhely accountok (usernév / jelszó) tárolására minden weboldalon / harmadik félnél -YouMustDefineTheHomePage=Először meg kell határoznia az alapértelmezett Kezdőlapot -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=Csak a HTML forrás kiadása lehetséges, ha a tartalmat egy külső webhelyről megragadták -GrabImagesInto=Ragadja meg a css-ben és az oldalon található képeket is. +MyContainerTitle=A webhelyem címe +AnotherContainer=Így lehet belefoglalni egy másik oldal/tároló tartalmát (itt hiba léphet fel, ha engedélyezi a dinamikus kódot, mert előfordulhat, hogy a beágyazott altároló nem létezik) +SorryWebsiteIsCurrentlyOffLine=Sajnos ez a webhely jelenleg nem elérhető. Kérjük, gyere vissza később... +WEBSITE_USE_WEBSITE_ACCOUNTS=A webhely fióktáblázatának engedélyezése +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Engedélyezze a táblázatban a webhelyfiókok (bejelentkezési/belépési) tárolását minden egyes webhelyhez/harmadik félhez +YouMustDefineTheHomePage=Először meg kell határoznia az alapértelmezett kezdőlapot +OnlyEditionOfSourceForGrabbedContentFuture=Figyelmeztetés: Weboldal létrehozása külső weboldal importálásával csak tapasztalt felhasználók számára van fenntartva. A forrásoldal összetettségétől függően az importálás eredménye eltérhet az eredetitől. Továbbá, ha a forrásoldal általános CSS-stílusokat vagy ütköző JavaScript-kódokat használ, az megzavarhatja a Webhely-szerkesztő megjelenését vagy szolgáltatásait, amikor ezen az oldalon dolgozik. Ezzel a módszerrel gyorsabban hozhat létre oldalt, de ajánlatos az új oldalt a semmiből vagy egy javasolt oldalsablonból létrehozni.
    Ne feledje, hogy előfordulhat, hogy a beágyazott szerkesztő nem működik megfelelően, ha egy megragadott külső oldalon használják. +OnlyEditionOfSourceForGrabbedContent=Csak a HTML-forrás kiadása lehetséges, ha a tartalmat egy külső webhelyről szerezték be +GrabImagesInto=A css-ben és az oldalon talált képeket is megragadja. ImagesShouldBeSavedInto=A képeket a könyvtárba kell menteni -WebsiteRootOfImages=Gyökérkönyvtár a weboldal képeihez -SubdirOfPage=Alkönyvtár az oldal számára -AliasPageAlreadyExists=Az %salias már létezik -CorporateHomePage=Vállalati honlap +WebsiteRootOfImages=A webhely képeinek gyökérkönyvtára +SubdirOfPage=Az oldalnak szentelt alkönyvtár +AliasPageAlreadyExists=A(z) %s álnév már létezik +CorporateHomePage=Vállalati kezdőlap EmptyPage=Üres oldal -ExternalURLMustStartWithHttp=A külső URL-nek http: // vagy https: // -el kell kezdődnie. -ZipOfWebsitePackageToImport=Töltse fel a webhelysablon-csomag Zip fájlját -ZipOfWebsitePackageToLoad=vagy Válasszon egy elérhető beágyazott webhelysablon-csomagot -ShowSubcontainers=Show dynamic content +ExternalURLMustStartWithHttp=A külső URL-nek http:// vagy https:// előtaggal kell kezdődnie +ZipOfWebsitePackageToImport=Töltse fel a webhelysablon csomag Zip fájlját +ZipOfWebsitePackageToLoad=vagy Válasszon egy elérhető beágyazott webhelysabloncsomagot +ShowSubcontainers=Dinamikus tartalom megjelenítése InternalURLOfPage=Az oldal belső URL-je -ThisPageIsTranslationOf=Ez az oldal / konténer a(z) ... nyelv fordítása -ThisPageHasTranslationPages=Ezen az oldalon / tárolóban van fordítás -NoWebSiteCreateOneFirst=Még nem hoztak létre weboldalt. Először hozzon létre egyet. -GoTo=Ugorj -DynamicPHPCodeContainsAForbiddenInstruction=Dinamikus PHP-kódot ad hozzá, amely dinamikus tartalomként alapértelmezés szerint tiltott ' %s ' PHP utasítást tartalmaz (lásd az elrejtett opciókat a WEBSITE_PHP_ALLOW_xxx az engedélyezett parancsok listájának növelése érdekében). -NotAllowedToAddDynamicContent=Nincs engedélye az oldalon PHP dinamikus tartalmának hozzáadására vagy szerkesztésére. Kérjen engedélyt, vagy tartsa módosítatlanul a kódot a php címkékben. -ReplaceWebsiteContent=Keressen vagy cserélje ki a webhely tartalmát -DeleteAlsoJs=Törli a webhelyre jellemző összes javascript fájlt? -DeleteAlsoMedias=Törli az összes, a weboldalra jellemző média fájlt? -MyWebsitePages=Saját honlapom -SearchReplaceInto=Keresés | Csere -ReplaceString=Új string -CSSContentTooltipHelp=Írja ide a CSS-tartalmat. Az alkalmazás CSS-sel való ütközés elkerülése érdekében minden nyilatkozatot feltöltsön a .bodywebsite osztályra. Például:

    #mycssselector, input.myclass: hover {...}
    kell, hogy legyen
    .bodywebsite #mycssselector, .bodywebsite input.myclass: hover {...}

    Megjegyzés: Ha nagy fájllal rendelkezik ennek az előtagnak a nélkül, akkor a 'lessc' segítségével konvertálhatja azt, hogy a .bodywebsite előtagot mindenhol hozzáfűzze. -LinkAndScriptsHereAreNotLoadedInEditor=Figyelem: Ez a tartalom csak akkor kerül kiadásra, ha a webhelyet kiszolgálóról érik el. Szerkesztés módban nem használják, tehát ha javascript fájlokat szerkesztési módban is be kell töltenie, csak adja hozzá a 'script src = ...' címkét az oldalhoz. -Dynamiccontent=Példa egy dinamikus tartalommal rendelkező oldalra +ThisPageIsTranslationOf=Ez az oldal/tároló ennek a fordítása +ThisPageHasTranslationPages=Ennek az oldalnak/tárolónak van fordítása +NoWebSiteCreateOneFirst=Még nem jött létre webhely. Először hozzon létre egyet. +GoTo=Ugrás ide +DynamicPHPCodeContainsAForbiddenInstruction=Dinamikus PHP-kódot ad hozzá, amely tartalmazza az alapértelmezés szerint tiltott '%s PHP utasítást dinamikus tartalomként (lásd a WEBSITE_PHP_ALLOW_xxx rejtett opciókat az engedélyezett parancsok listájának növeléséhez). +NotAllowedToAddDynamicContent=Nincs jogosultsága PHP dinamikus tartalom hozzáadására vagy szerkesztésére a webhelyeken. Kérjen engedélyt, vagy csak tartsa módosítatlanul a kódot a php címkékbe. +ReplaceWebsiteContent=Webhelytartalom keresése vagy cseréje +DeleteAlsoJs=Törli az ehhez a webhelyhez tartozó összes javascript fájlt is? +DeleteAlsoMedias=Törli az ehhez a webhelyhez tartozó összes médiafájlt is? +MyWebsitePages=Saját weboldalaim +SearchReplaceInto=Keresés | Cserélje be +ReplaceString=Új karakterlánc +CSSContentTooltipHelp=Írja be ide a CSS-tartalmat. Az alkalmazás CSS-jével való ütközés elkerülése érdekében ügyeljen arra, hogy az összes deklaráció elé fűzze a .bodywebsite osztályt. Például:

    #mycssselector, input.myclass:hover { ...
    kell
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ...

    Megjegyzés: Ha van egy nagy fájlja ennek az előtagnak a nélkül, a 'lessc' segítségével konvertálhatja, és mindenhol hozzáfűzheti a .bodywebsite előtagot. +LinkAndScriptsHereAreNotLoadedInEditor=Figyelmeztetés: Ez a tartalom csak akkor jelenik meg, ha a webhelyet egy szerverről érik el. Szerkesztés módban nem használatos, így ha szerkesztés módban is be kell töltenie a javascript fájlokat, csak adja hozzá a 'script src=...' címkét az oldalhoz. +Dynamiccontent=Példa egy dinamikus tartalommal rendelkező oldalról ImportSite=Webhelysablon importálása -EditInLineOnOff=Az „Inline szerkesztés” mód %s -ShowSubContainersOnOff=A 'dinamikus tartalom' végrehajtásának módja %s -GlobalCSSorJS=A webhely globális CSS / JS / fejléc fájlja -BackToHomePage=Vissza a honlapra... -TranslationLinks=Fordítási linkek -YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not available.
    (ref=%s, type=%s, status=%s) -UseTextBetween5And70Chars=A helyes SEO gyakorlat érdekében használjon 5 és 70 karakter közötti szöveget +EditInLineOnOff=A 'Inline szerkesztés' mód %s +ShowSubContainersOnOff=A 'dinamikus tartalom' végrehajtási módja %s +GlobalCSSorJS=A webhely globális CSS/JS/fejlécfájlja +BackToHomePage=Vissza a kezdőlapra... +TranslationLinks=Fordítási hivatkozások +YouTryToAccessToAFileThatIsNotAWebsitePage=Olyan oldalhoz próbál hozzáférni, amely nem elérhető.
    (ref=%s, type=%s, status=%s) +UseTextBetween5And70Chars=A jó SEO gyakorlatok érdekében használjon 5 és 70 karakter közötti szöveget MainLanguage=Fő nyelv OtherLanguages=Más nyelvek UseManifest=Adjon meg egy manifest.json fájlt -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 +PublicAuthorAlias=Nyilvános szerző álneve +AvailableLanguagesAreDefinedIntoWebsiteProperties=Az elérhető nyelvek webhelytulajdonságokban vannak meghatározva +ReplacementDoneInXPages=A csere megtörtént %s oldalon vagy tárolóban +RSSFeed=RSS hírfolyam +RSSFeedDesc=Erről az URL-ről kaphat egy RSS-hírcsatornát a legfrissebb cikkekből 'blogpost' típussal +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 +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 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=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) diff --git a/htdocs/langs/hu_HU/withdrawals.lang b/htdocs/langs/hu_HU/withdrawals.lang index f1651051352..eba96d096d5 100644 --- a/htdocs/langs/hu_HU/withdrawals.lang +++ b/htdocs/langs/hu_HU/withdrawals.lang @@ -1,156 +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=Feldolgozásához -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=Visszavonási mennyiség -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=Selejtek -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=Jóváírtan osztályozva -ClassDebited=Classify debited -ClassCreditedConfirm=Biztos, hogy jóvírtan akarja osztályozni a visszavonást a bankszámlájáról? -TransData=Dátum Átviteli +CustomersStandingOrdersArea=Beszedési megbízással történő fizetés +SuppliersStandingOrdersArea=Fizetések átutalással +StandingOrdersPayment=Beszedési megbízások +StandingOrderPayment=Beszedési megbízás +NewStandingOrder=Új csoportos beszedési megbízás +NewPaymentByBankTransfer=Új fizetés átutalással +StandingOrderToProcess=Feldolgozás +PaymentByBankTransferReceipts=Átutalási megbízások +PaymentByBankTransferLines=Átutalási megbízási sorok +WithdrawalsReceipts=Beszedési megbízások +WithdrawalReceipt=Közvetlen beszedési megbízás +BankTransferReceipts=Átutalási megbízások +BankTransferReceipt=Átutalási megbízás +LatestBankTransferReceipts=A legutóbbi %s átutalási megbízás +LastWithdrawalReceipts=A legújabb %s csoportos beszedési megbízásos fájl +WithdrawalsLine=Beszedési megbízás sora +CreditTransfer=Hitelátutalás +CreditTransferLine=Hitelátutalási vonal +WithdrawalsLines=Beszedési megbízás sorai +CreditTransferLines=Átutalási vonalak +RequestStandingOrderToTreat=A csoportos beszedési megbízás feldolgozása iránti kérelmek +RequestStandingOrderTreated=A csoportos beszedési megbízásra vonatkozó kérelmek feldolgozva +RequestPaymentsByBankTransferToTreat=Feldolgozandó átutalási kérelmek +RequestPaymentsByBankTransferTreated=Átutalási kérelmek feldolgozva +NotPossibleForThisStatusOfWithdrawReceiptORLine=Még nem lehetséges. A visszavonás állapotát „jóváírt” értékre kell állítani, mielőtt bizonyos soroknál elutasítást jelentene ki. +NbOfInvoiceToWithdraw=Minősített ügyfélszámlák száma várakozó csoportos beszedési megbízással +NbOfInvoiceToWithdrawWithInfo=A meghatározott bankszámlaadatokkal rendelkező csoportos beszedési megbízást tartalmazó ügyfélszámlák száma +NbOfInvoiceToPayByBankTransfer=A minősített szállítói számlák száma, amelyek átutalással történő fizetésre várnak +SupplierInvoiceWaitingWithdraw=Szállítói számla átutalással történő fizetésre vár +InvoiceWaitingWithdraw=A számla csoportos beszedési megbízásra vár +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. +ResponsibleUser=Felelős felhasználó +WithdrawalsSetup=A csoportos beszedési megbízás beállítása +CreditTransferSetup=Átutalás beállítása +WithdrawStatistics=Közvetlen beszedési megbízás fizetési statisztikák +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 +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 +ThirdPartyBankCode=Harmadik fél bankkódja +NoInvoiceCouldBeWithdrawed=Nincs sikeresen megterhelt számla. Ellenőrizze, hogy a számlák érvényes IBAN-számmal rendelkező vállalatokra vonatkoznak-e, és hogy az IBAN-ban van-e UMR (egyedi megbízási hivatkozás) %s móddal. +WithdrawalCantBeCreditedTwice=Ez a kifizetési bizonylat már jóváírásként meg van jelölve; ezt nem lehet kétszer megtenni, mivel ez duplikált fizetéseket és banki bejegyzéseket eredményezhet. +ClassCredited=Besorolás jóváírva +ClassDebited=Besorolás terhelve +ClassCreditedConfirm=Biztosan a bankszámláján jóváírtnak kívánja minősíteni ezt a kifizetési bizonylatot? +TransData=Adás dátuma TransMetod=Átviteli módszer -Send=Küld +Send=Küldés Lines=Vonalak -StandingOrderReject=Add ki egy visszautasító -WithdrawsRefused=Direct debit refused -WithdrawalRefused=Megtagadta visszavonása -CreditTransfersRefused=Credit transfers refused -WithdrawalRefusedConfirm=Biztosan meg szeretné adni a visszavonás elutasító a társadalom -RefusedData=Elutasításának napjától -RefusedReason=Az elutasítás indoka -RefusedInvoicing=Billing elutasítása -NoInvoiceRefused=Ne töltse az elutasítás -InvoiceRefused=Invoice refused (Charge the rejection to customer) -StatusDebitCredit=Status debit/credit +StandingOrderReject=Elutasítás kiadása +WithdrawsRefused=A csoportos beszedési megbízás elutasítva +WithdrawalRefused=A visszavonás elutasítva +CreditTransfersRefused=A hitelátutalások elutasítva +WithdrawalRefusedConfirm=Biztos benne, hogy a társadalom számára kilépési elutasítást kíván megadni +RefusedData=Elutasítás dátuma +RefusedReason=Elutasítás oka +RefusedInvoicing=Elutasítás számlázása +NoInvoiceRefused=Ne számítson fel díjat az elutasításért +InvoiceRefused=Számla elutasítva (Az elutasítás számlája az ügyfélnek) +StatusDebitCredit=A terhelés/jóváírás állapota StatusWaiting=Várakozás -StatusTrans=Küldött -StatusDebited=Debited -StatusCredited=Jóváírt +StatusTrans=Elküldve +StatusDebited=Terhelve +StatusCredited=Jóváírva StatusPaid=Fizetett -StatusRefused=Megtagadta -StatusMotif0=Meghatározatlan -StatusMotif1=Rendelkezni insuffisante -StatusMotif2=Conteste tirázs -StatusMotif3=No direct debit payment order +StatusRefused=Elutasítva +StatusMotif0=Nem meghatározott +StatusMotif1=Nincs elegendő forrás +StatusMotif2=A kérelem megtámadva +StatusMotif3=Nincs csoportos beszedési megbízás StatusMotif4=Értékesítési rendelés -StatusMotif5=RIB inexploitable -StatusMotif6=Számla nélküli egyenleg +StatusMotif5=RIB használhatatlan +StatusMotif6=Számla egyenleg nélkül StatusMotif7=Bírósági határozat StatusMotif8=Egyéb ok -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=Csak az Office -CreateBanque=Csak a bank -OrderWaiting=Várakozás kezelés -NotifyTransmision=Record file transmission of order -NotifyCredit=Record credit of order -NumeroNationalEmetter=Nemzeti Adó száma -WithBankUsingRIB=A bankszámlák segítségével RIB -WithBankUsingBANBIC=A bankszámlák segítségével IBAN / BIC / SWIFT -BankToReceiveWithdraw=Receiving Bank Account -BankToPayCreditTransfer=Bank Account used as source of payments -CreditDate=Hitelt -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 +CreateForSepaFRST=A csoportos beszedési megbízás fájl létrehozása (SEPA FRST) +CreateForSepaRCUR=A csoportos beszedési megbízás fájl létrehozása (SEPA RCUR) +CreateAll=A csoportos beszedési megbízás fájl létrehozása +CreateFileForPaymentByBankTransfer=Fájl létrehozása átutaláshoz +CreateSepaFileForPaymentByBankTransfer=Átutalási fájl (SEPA) létrehozása +CreateGuichet=Csak iroda +CreateBanque=Csak bank +OrderWaiting=Várakozás a kezelésre +NotifyTransmision=A megrendelés átvitelének rögzítése +NotifyCredit=Rögzítse a rendelés jóváírását +NumeroNationalEmetter=Nemzeti adószám +WithBankUsingRIB=RIB-et használó bankszámlákhoz +WithBankUsingBANBIC=IBAN/BIC/SWIFT kódot használó bankszámlákhoz +BankToReceiveWithdraw=Bankszámla fogadása +BankToPayCreditTransfer=Fizetési forrásként használt bankszámla +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. +WithdrawalFile=Beszedési megbízás fájl +CreditTransferFile=Hitelátutalási fájl +SetToStatusSent=Állítás "Fájl elküldve" állapotra +ThisWillAlsoAddPaymentOnInvoice=Ez is rögzíti a kifizetéseket a számlákon, és "Kifizetett" kategóriába sorolja őket, ha a hátralévő fizetés nulla +StatisticsByLineStatus=Statisztikák a sorok állapota szerint 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=A megbízás aláírásának dátuma +RUMLong=Egyedi Mandátum Referencia +RUMWillBeGenerated=Ha üres, akkor a bankszámla információinak mentése után egy UMR (Unique Mandate Reference) jön létre. +WithdrawMode=Csoportos beszedési mód (FRST vagy RECUR) +WithdrawRequestAmount=A csoportos beszedési megbízás összege: +BankTransferAmount=Átutalási kérelem összege: +WithdrawRequestErrorNilAmount=Nem lehet beszedési megbízást létrehozni üres összegre. +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. +CreditorIdentifier=Hitelező azonosítója +CreditorName=Hitelező neve +SEPAFillForm=(B) Kérjük, töltse ki az összes *-gal jelölt mezőt +SEPAFormYourName=Az Ön neve +SEPAFormYourBAN=Az Ön bankszámla neve (IBAN) +SEPAFormYourBIC=Az Ön bankazonosító kódja (BIC) +SEPAFrstOrRecur=Fizetés típusa +ModeRECUR=Ismétlődő fizetés +ModeFRST=Egyszeri fizetés +PleaseCheckOne=Kérem, csak egyet jelöljön be +CreditTransferOrderCreated=%s átutalási megbízás létrehozva +DirectDebitOrderCreated=Beszedési megbízás %s létrehozva +AmountRequested=Kért összeg 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=Végrehajtás dátuma +CreateForSepa=A csoportos beszedési megbízás fájl létrehozása +ICS=Hitelező azonosító - ICS +IDS=Adós azonosító +END_TO_END="EndToEndId" SEPA XML címke – tranzakciónként hozzárendelt egyedi azonosító +USTRD="Strukturálatlan" SEPA XML címke +ADDDAYS=Napok hozzáadása a végrehajtási dátumhoz +NoDefaultIBANFound=Nem található alapértelmezett IBAN ehhez a harmadik félhez ### 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=Összeg: %s
    Metode: %s
    Dátum: %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=Opció a valós módban nem volt beállítva, akkor hagyja abba ezt követően szimuláció -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 +InfoCreditSubject=A csoportos beszedési megbízás %s fizetése a bank által +InfoCreditMessage=A csoportos beszedési megbízást %s a bank kifizette.
    Fizetési adatok: %s +InfoTransSubject=A csoportos beszedési megbízás %s továbbítása a bankba +InfoTransMessage=A csoportos beszedési megbízást %s elküldte a banknak: %s %s.

    +InfoTransData=Összeg: %s
    Módszer: %s
    Dátum: %s +InfoRejectSubject=A csoportos beszedési megbízás elutasítva +InfoRejectMessage=Üdvözöljük!

    A %s céghez kapcsolódó %s számla csoportos beszedési megbízását %s összeggel a bank elutasította.

    --
    %s +ModeWarning=A valós mód opciója nincs beállítva, a szimuláció után leállunk +ErrorCompanyHasDuplicateDefaultBAN=A %s azonosítójú vállalatnak egynél több alapértelmezett bankszámlája van. Nem lehet tudni, melyiket kell használni. +ErrorICSmissing=Hiányzó ICS a %s bankszámláról +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=A csoportos beszedési megbízás teljes összege eltér a sorok összegétől +WarningSomeDirectDebitOrdersAlreadyExists=Figyelmeztetés: Már van néhány függőben lévő csoportos beszedési megbízás (%s) kérve %s összegre +WarningSomeCreditTransferAlreadyExists=Figyelmeztetés: Már van néhány függőben lévő átutalás (%s) %s összegre +UsedFor=Használt %s diff --git a/htdocs/langs/hu_HU/workflow.lang b/htdocs/langs/hu_HU/workflow.lang index 3612ea32e83..d97d0f48f09 100644 --- a/htdocs/langs/hu_HU/workflow.lang +++ b/htdocs/langs/hu_HU/workflow.lang @@ -1,26 +1,36 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Workflow modul beállítása -WorkflowDesc=Ez a modul néhány automatikus műveletet biztosít. Alapértelmezés szerint a munkafolyamat nyitva van (a kívánt sorrendben végezhet feladatokat), de itt aktiválhat néhány automatikus műveletet is. -ThereIsNoWorkflowToModify=Az aktivált modulokhoz nem állnak rendelkezésre munkafolyamat-módosítások. +WorkflowSetup=Munkafolyamat-modul beállítása +WorkflowDesc=Ez a modul bizonyos automatikus műveleteket biztosít. Alapértelmezés szerint a munkafolyamat nyitott (a kívánt sorrendben végezheti el a dolgokat), de itt aktiválhat néhány automatikus műveletet. +ThereIsNoWorkflowToModify=Nem érhető el munkafolyamat-módosítás az aktivált modulokkal. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Értékesítési megrendelés automatikus létrehozása a kereskedelmi ajánlat aláírása után (az új megrendelés összege megegyezik az ajánlat összegével) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Az ügyfélszámla automatikus létrehozása a kereskedelmi ajánlat aláírása után (az új számla összege megegyezik az ajánlat összegével) -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Az ügyfélszámla automatikus létrehozása a szerződés érvényesítése után -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Az ügyfélszámla automatikus létrehozása az értékesítési megrendelés lezárása után (az új számla összege megegyezik a megrendelés összegével) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Értékesítési rendelés automatikus létrehozása az árajánlat aláírása alapján (az új rendelés összege megegyezik az ajánlat összegével) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=A vevői számla automatikus létrehozása az árajánlat aláírása alapján (az új számla összege megegyezik az ajánlat összegével) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=A vevői számla automatikus létrehozása a szerződés érvényesítése után +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Vevői számla automatikus létrehozása a vevői rendelés lezárása után (az új számla összege megegyezik a rendelés összegével) +descWORKFLOW_TICKET_CREATE_INTERVENTION=A jegy létrehozásakor automatikusan hozzon létre beavatkozást. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=A kapcsolt forrásból származó javaslatot számlázottként minősíti, ha az értékesítési rendelés számlázottra van állítva (és ha a megrendelés összege megegyezik az aláírt csatolt javaslat teljes összegével) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=A kapcsolt forrásból származó javaslatot számlázottra minősíti, ha az ügyfélszámla érvényesítésre kerül (és ha a számla összege megegyezik az aláírt csatolt javaslat teljes összegével) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=A kapcsolt forrásból származó értékesítési megrendelést számlázottra minősíti, ha az ügyfélszámla érvényesítve lesz (és ha a számla összege megegyezik a kapcsolódó rendelés teljes összegével) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=A kapcsolt forrásból származó értékesítési megrendelést számlázottra minősíti, ha az ügyfélszámla kifizetettre van állítva (és ha a számla összege megegyezik a kapcsolódó rendelés teljes összegével) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=A kapcsolt forrásból származó értékesítési megrendelést kiszállítottként minősíti, ha a kiszállítás érvényesítve van (és ha az összes szállítmány által szállított mennyiség megegyezik a frissített megrendelésével) -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=A kapcsolt forrásajánlat besorolása számlázottként, ha az értékesítési rendelés számlázottra van állítva (és ha a rendelés összege megegyezik az aláírt összekapcsolt ajánlat teljes összegével) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=A kapcsolt forrásajánlat besorolása számlázottként az ügyfélszámla érvényesítésekor (és ha a számla összege megegyezik az aláírt összekapcsolt ajánlat teljes összegével) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=A kapcsolt forrás értékesítési rendelés besorolása számlázottként a vevői számla érvényesítésekor (és ha a számla összege megegyezik a kapcsolt rendelés teljes összegével) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=A kapcsolt forrás értékesítési rendelés besorolása számlázottként, ha a vevői számla kifizetésre van állítva (és ha a számla összege megegyezik a kapcsolt rendelés teljes összegével) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=A kapcsolt forrás értékesítési rendelés besorolása a szállítmány érvényesítésekor (és ha az összes szállítmány által szállított mennyiség megegyezik a frissítendő rendelésben szereplővel) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=A kapcsolt forrás értékesítési rendelés besorolása a szállítmány lezárásakor (és ha az összes szállítmány által kiszállított mennyiség megegyezik a frissítendő rendelésben szereplővel) +# Autoclassify purchase proposal +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=A kapcsolt forrás szállítói ajánlat besorolása számlázottként a szállítói számla érvényesítésekor (és ha a számla összege megegyezik a kapcsolt ajánlat teljes összegével) # Autoclassify purchase order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=A kapcsolt forrásból származó szállítói javaslatot számlázottként minősíti, ha a szállítói számla érvényesítve lesz (és ha a számla összege megegyezik a kapcsolódó ajánlat teljes összegével) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=A kapcsolt forrásból származó megrendelést számlázottra minősíti, ha a szállítói számla érvényesítve lesz (és ha a számla összege megegyezik a kapcsolódó rendelés teljes összegével) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=A kapcsolt forrás beszerzési rendelés besorolása számlázottként a szállítói számla érvényesítésekor (és ha a számla összege megegyezik a kapcsolt rendelés teljes összegével) +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 +# 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 # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=A jegyhez kapcsolódó összes beavatkozás bezárása, amikor a jegy bezár AutomaticCreation=Automatikus létrehozás -AutomaticClassification=Automatikus minősítés +AutomaticClassification=Automatikus osztályozás # Autoclassify shipment -descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated +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 +AutomaticClosing=Automatikus zárás +AutomaticLinking=Automatikus összekapcsolás diff --git a/htdocs/langs/hu_HU/zapier.lang b/htdocs/langs/hu_HU/zapier.lang index 70cb3185d52..e972bf32798 100644 --- a/htdocs/langs/hu_HU/zapier.lang +++ b/htdocs/langs/hu_HU/zapier.lang @@ -14,8 +14,8 @@ # along with this program. If not, see . ModuleZapierForDolibarrName = Zapier for Dolibarr -ModuleZapierForDolibarrDesc = Zapier for Dolibarr modul -ZapierForDolibarrSetup=Zapier for Dolibarr beállítása -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. +ModuleZapierForDolibarrDesc = Zapier Dolibarr modulhoz +ZapierForDolibarrSetup=A Zapier beállítása Dolibarrhoz +ZapierDescription=Interfész a Zapierrel +ZapierAbout=A Zapier modulról +ZapierSetupPage=A Zapier használatához nincs szükség a Dolibarr oldalon történő beállításra. A Zapier és a Dolibarr használatához azonban csomagot kell generálnia és közzé kell tennie a zapieren. Tekintse meg a dokumentációt ezen a wikioldalon. diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index f2e882301a9..a785c12bff2 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Akun akuntansi utama untuk pembayara AccountancyArea=Bidang akuntansi AccountancyAreaDescIntro=Penggunaan modul akuntansi dilakukan dalam beberapa langkah: AccountancyAreaDescActionOnce=Tindakan berikut ini biasanya dilakukan hanya sekali saja, atau sekali setahun... -AccountancyAreaDescActionOnceBis=Langkah-langkah selanjutnya harus dilakukan untuk menghemat waktu Anda di masa depan dengan menyarankan akun akuntansi standar yang benar ketika membuat Pencatatan Jurnal (menulis catatan dalam Jurnal dan Buku Besar) +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=Tindakan berikut ini biasanya dilakukan setiap bulan, minggu atau hari untuk perusahaan yang sangat besar... -AccountancyAreaDescJournalSetup=LANGKAH %s: Buat atau periksa konten daftar jurnal Anda dari menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=LANGKAH %s: Periksa apakah tersedia model bagan akun atau buat model barudari menu %s AccountancyAreaDescChart=LANGKAH %s: Pilih dan|atau selesaikan bagan akun Anda dari menu %s AccountancyAreaDescVat=LANGKAH %s: Tentukan akun akuntansi untuk setiap Tarif PPN. Untuk ini, gunakan entri menu %s. AccountancyAreaDescDefault=LANGKAH %s: Tentukan akun akuntansi standar. Untuk ini, gunakan entri menu %s. -AccountancyAreaDescExpenseReport=LANGKAH %s: Tetapkan akun akuntansi standar untuk setiap jenis laporan pengeluaran. Untuk ini, gunakan entri menu %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=LANGKAH %s: Tentukan akun akuntansi standar untuk pembayaran gaji. Untuk ini, gunakan entri menu %s. -AccountancyAreaDescContrib=LANGKAH %s: Tetapkan akun akuntansi standar untuk pengeluaran khusus (pajak lain - lain). Untuk ini, gunakan entri menu %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=LANGKAH %s: Tentukan akun akuntansi standar untuk donasi. Untuk ini, gunakan entri menu %s. AccountancyAreaDescSubscription=LANGKAH %s: Tetapkan akun akuntansi standar untuk langganan anggota. Untuk ini, gunakan entri menu %s. AccountancyAreaDescMisc=LANGKAH %s: Tetapkan akun standar wajib dan akun akuntansi standar untuk transaksi lain-lain. Untuk ini, gunakan entri menu %s. AccountancyAreaDescLoan=LANGKAH %s: Tentukan akun akuntansi standar untuk pinjaman. Untuk ini, gunakan entri menu %s. AccountancyAreaDescBank=LANGKAH %s: Tentukan akun akuntansi dan kode jurnal untuk masing-masing bank dan akun keuangan. Untuk ini, gunakan entri menu %s. -AccountancyAreaDescProd=LANGKAH %s: Tentukan akun akuntansi pada produk/layanan Anda. Untuk ini, gunakan entri menu %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=LANGKAH %s: Periksa pengikatan antara garis %s yang ada dan akun akuntansi telah dilakukan, sehingga aplikasi akan dapat membuat jurnal transaksi di Buku Besar dalam satu klik. Lengkapi pengikatan yang hilang. Untuk ini, gunakan entri menu %s. AccountancyAreaDescWriteRecords=LANGKAH %s: Tulis transaksi ke dalam Buku Besar. Untuk ini, masuk ke menu %s, dan klik ke tombol %s. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Penutupan MenuAccountancyValidationMovements=Validasi gerakan ProductsBinding=Akun produk TransferInAccounting=Transfer dalam akuntansi -RegistrationInAccounting=Pendaftaran dalam akuntansi +RegistrationInAccounting=Recording in accounting Binding=Mengikat ke akun CustomersVentilation=Penjilidan faktur pelanggan SuppliersVentilation=Penjilidan faktur vendor @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Penjilidan laporan pengeluaran CreateMvts=Buat transaksi baru UpdateMvts=Modifikasi sebuah transaksi ValidTransaction=Validasi transaksi -WriteBookKeeping=Daftarkan transaksi dalam akuntansi +WriteBookKeeping=Record transactions in accounting Bookkeeping=Buku Besar BookkeepingSubAccount=Subledger AccountBalance=Saldo akun @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Akun akuntansi untuk mendaftarkan sumbangan ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Akun akuntansi untuk mendaftar langganan ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Akun akuntansi secara default untuk mendaftarkan deposit pelanggan +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Oleh kelompok yang telah ditentukan ByPersonalizedAccountGroups=Oleh grup yang dipersonalisasi ByYear=Tahun NotMatch=Tidak diatur -DeleteMvt=Hapus beberapa jalur operasi dari akuntansi +DeleteMvt=Delete some lines from accounting DelMonth=Bulan untuk dihapus DelYear=Tahun untuk dihapus DelJournal=Jurnal untuk dihapus -ConfirmDeleteMvt=Ini akan menghapus semua baris operasi akuntansi untuk tahun / bulan dan / atau untuk jurnal tertentu (Setidaknya satu kriteria diperlukan). Anda harus menggunakan kembali fitur '%s' agar catatan yang dihapus kembali ke buku besar. -ConfirmDeleteMvtPartial=Ini akan menghapus transaksi dari akunting (semua jalur operasi yang terkait dengan transaksi yang sama akan dihapus) +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=Jurnal biaya laporan DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -278,30 +279,31 @@ 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=Konsultasikan di sini jumlah gerakan berdasarkan bulan yang tidak divalidasi & tahun fiskal sudah terbuka -OverviewOfMovementsNotValidated=Langkah 1 / Ikhtisar gerakan yang tidak divalidasi. (Diperlukan untuk menutup tahun fiskal) -AllMovementsWereRecordedAsValidated=Semua pergerakan dicatat sebagai divalidasi -NotAllMovementsCouldBeRecordedAsValidated=Tidak semua pergerakan dapat direkam sebagai divalidasi -ValidateMovements=Validasi gerakan +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=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 -MvtNotCorrectlyBalanced=Gerakan tidak seimbang dengan benar. Debit = %s | Kredit = %s +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=Tidak ada lagi catatan untuk dijurnal +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Daftar produk yang tidak terikat ke akun akuntansi apa pun ChangeBinding=Ubah ikatannya Accounted=Disumbang dalam buku besar NotYetAccounted=Not yet transferred to accounting ShowTutorial=Perlihatkan Tutorial NotReconciled=Tidak didamaikan -WarningRecordWithoutSubledgerAreExcluded=Peringatan, semua operasi tanpa akun subledger ditentukan disaring dan dikecualikan dari tampilan ini +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=Opsi mengikat @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Nonaktifkan pengikatan & transfer akunta ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Nonaktifkan pengikatan & transfer akuntansi pada laporan pengeluaran (laporan pengeluaran tidak akan diperhitungkan dalam akuntansi) ## 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) +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=Konfirmasi pembuatan file ekspor akuntansi? ExportDraftJournal=Ekspor draft jurnal Modelcsv=Model Ekspor @@ -394,6 +397,21 @@ Range=Rentang akun-akun akuntansi Calculated=Terhitung Formula=Rumus +## 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=Beberapa langkah pengaturan wajib tidak dilakukan, harap lengkapi ErrorNoAccountingCategoryForThisCountry=Tidak ada grup akun akuntansi yang tersedia untuk negara %s (Lihat Beranda - Pengaturan - Kamus) @@ -406,6 +424,9 @@ Binded=Garis terikat ToBind=Baris untuk mengikat UseMenuToSetBindindManualy=Baris belum terikat, gunakan menu %s untuk membuat pengikatan secara manual 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 ## Import ImportAccountingEntries=Entri akuntansi diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index 9892491fec2..a8b7aff6e9b 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -109,7 +109,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 @@ -477,7 +477,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 next %s empty records EraseAllCurrentBarCode=Hapus semua nilai barcode saat ini ConfirmEraseAllCurrentBarCode=Anda yakin ingin menghapus semua nilai barcode saat ini? AllBarcodeReset=Semua nilai barcode telah dihapus @@ -504,7 +504,7 @@ WarningPHPMailC=- Menggunakan server SMTP milik Penyedia Layanan Email Anda send 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. 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 @@ -718,9 +718,9 @@ Permission34=Menghapus Produk Permission36=Lihat / kelola produk tersembunyi Permission38=Produk ekspor Permission39=Abaikan harga minimum -Permission41=Baca proyek dan tugas (proyek bersama dan proyek yang saya hubungi). Dapat juga memasukkan waktu yang dikonsumsi, untuk saya atau hierarki saya, pada tugas yang diberikan (absen) -Permission42=Buat / modifikasi proyek (proyek bersama dan proyek yang saya hubungi). Dapat juga membuat tugas dan menetapkan pengguna untuk proyek dan tugas -Permission44=Hapus proyek (proyek bersama dan proyek yang saya hubungi) +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=Proyek ekspor Permission61=Baca intervensi Permission62=Buat / modifikasi intervensi @@ -766,9 +766,10 @@ Permission122=Buat / modifikasi pihak ketiga yang ditautkan dengan pengguna Permission125=Hapus pihak ketiga yang tertaut ke pengguna Permission126=Ekspor pihak ketiga Permission130=Create/modify third parties payment information -Permission141=Baca semua proyek dan tugas (juga proyek pribadi yang bukan saya kontak) -Permission142=Buat / modifikasi semua proyek dan tugas (juga proyek pribadi yang bukan saya kontak) -Permission144=Hapus semua proyek dan tugas (juga proyek pribadi yang tidak saya hubungi) +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=Baca penyedia Permission147=Baca statistik Permission151=Baca pesanan pembayaran debit langsung @@ -883,6 +884,9 @@ Permission564=Catat Debit / Penolakan transfer kredit Permission601=Baca stiker Permission602=Buat / modifikasi stiker Permission609=Hapus stiker +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Baca Bills of Material Permission651=Buat / Perbarui Bills of Material Permission652=Hapus Bills of Material @@ -906,8 +910,8 @@ Permission1003=Menghapus Gudang Permission1004=Membaca pergerakan stok Permission1005=Buat / modifikasi pergerakan stok Permission1011=Lihat inventaris -Permission1012=Create new inventory -Permission1014=Validate inventory +Permission1012=Buat inventori baru +Permission1014=Validasi inventori Permission1015=Allow to change PMP value for a product Permission1016=Hapus inventaris Permission1101=Baca tanda terima pengiriman @@ -962,13 +966,15 @@ Permission2802=Gunakan klien FTP dalam mode tulis (hapus atau unggah file) Permission3200=Baca agenda yang diarsipkan dan sidik jari Permission3301=Hasilkan modul baru Permission4001=Read skill/job/position -Permission4002=Create/modify skill/job/position -Permission4003=Delete skill/job/position +Permission4002=Buat/ubah skill/pekerjaan/posisi +Permission4003=Hapus skill/pekerjaan/posisi Permission4020=Read evaluations -Permission4021=Create/modify your evaluation -Permission4022=Validate evaluation -Permission4023=Delete evaluation -Permission4030=See comparison menu +Permission4021=Buat/ubah evaluasi Anda +Permission4022=Validasi evaluasi +Permission4023=Hapus evaluasi +Permission4030=Lihat menu perbandingan +Permission4031=Read personal information +Permission4032=Write personal information 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. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Laporan biaya - Kategori transportasi DictionaryExpenseTaxRange=Laporan biaya - Kisaran berdasarkan kategori transportasi DictionaryTransportMode=Laporan Intracomm - Mode transportasi DictionaryBatchStatus=Status Kontrol Kualitas lot/serial produk +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Jenis unit SetupSaved=Pengaturan disimpan SetupNotSaved=Pengaturan tidak disimpan @@ -1122,7 +1129,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 @@ -1187,7 +1194,7 @@ BankModuleNotActive=Modul rekening bank tidak diaktifkan ShowBugTrackLink=Tunjukkan tautan " %s " ShowBugTrackLinkDesc=Kosongkan untuk tidak menampilkan tautan ini, gunakan nilai 'github' untuk tautan ke proyek Dolibarr atau tentukan langsung url 'https://...' Alerts=Lansiran -DelaysOfToleranceBeforeWarning=Tunda sebelum menampilkan peringatan untuk: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Atur penundaan sebelum ikon peringatan %s ditampilkan di layar untuk elemen yang terakhir. Delays_MAIN_DELAY_ACTIONS_TODO=Perihal yang direncanakan (agenda agenda) tidak selesai Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Proyek tidak ditutup tepat waktu @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=Anda memaksa terjemahan baru untuk kunci terjemahan TitleNumberOfActivatedModules=Modul yang diaktifkan TotalNumberOfActivatedModules=Modul yang diaktifkan: %s / %s YouMustEnableOneModule=Anda setidaknya harus mengaktifkan 1 modul +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Kelas %s tidak ditemukan di jalur PHP YesInSummer=Ya di musim panas OnlyFollowingModulesAreOpenedToExternalUsers=Catatan, hanya modul berikut yang tersedia untuk pengguna eksternal (terlepas dari izin pengguna tersebut) dan hanya jika izin diberikan:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=Tanda air pada faktur konsep (tidak ada jika kosong) PaymentsNumberingModule=Model penomoran pembayaran 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. ##### Proposals ##### PropalSetup=Penyiapan modul proposal komersial ProposalsNumberingModules=Model penomoran proposal komersial @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=Menginstal atau membuat modul eksternal dari aplikasi HighlightLinesOnMouseHover=Sorot garis-garis tabel ketika mouse bergerak HighlightLinesColor=Sorot warna garis ketika mouse dilewati (gunakan 'ffffff' tanpa highlight) HighlightLinesChecked=Sorot warna garis ketika dicentang (gunakan 'ffffff' tanpa highlight) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Warna teks judul Halaman @@ -1925,7 +1936,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 @@ -1938,7 +1949,7 @@ EnterAnyCode=Bidang ini berisi referensi untuk mengidentifikasi garis. Masukkan Enter0or1=Masukkan 0 atau 1 UnicodeCurrency=Masukkan di sini di antara kurung kurawal, daftar nomor byte yang mewakili simbol mata uang. Misalnya: untuk $, masukkan [36] - untuk brazil real R $ [82,36] - untuk €, masukkan [8364] ColorFormat=Warna RGB dalam format HEX, mis .: FF0000 -PictoHelp=Nama ikon dalam format dolibarr ('image.png' jika masuk ke direktori tema saat ini, 'image.png@nom_du_module' jika masuk ke direktori / img / modul) +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=Posisi baris ke dalam daftar kombo SellTaxRate=Tarif pajak penjualan RecuperableOnly=Ya untuk PPN "Tidak Ditanggapi tetapi Dapat Dipulihkan" yang didedikasikan untuk beberapa negara bagian di Prancis. Simpan nilai "Tidak" dalam semua kasus lainnya. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter untuk membersihkan nilai (COMPANY_AQUA COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter untuk membersihkan nilai (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat tidak diizinkan GDPRContact=Petugas Perlindungan Data (DPO, Privasi Data, atau kontak GDPR) -GDPRContactDesc=Jika Anda menyimpan data tentang perusahaan / warga negara Eropa, Anda dapat menyebutkan kontak yang bertanggung jawab atas Peraturan Perlindungan Data Umum di sini +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 HelpOnTooltipDesc=Letakkan teks atau kunci terjemahan di sini agar teks ditampilkan di tooltip saat baris ini muncul dalam formulir YouCanDeleteFileOnServerWith=Anda dapat menghapus file ini di server dengan Command Line:
    %s @@ -2048,6 +2059,7 @@ 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 @@ -2057,18 +2069,30 @@ EmailcollectorOperations=Operasi yang harus dilakukan oleh kolektor EmailcollectorOperationsDesc=Operasi dijalankan dari urutan atas ke bawah MaxEmailCollectPerCollect=Jumlah email maksimum yang dikumpulkan per kumpulkan CollectNow=Kumpulkan sekarang -ConfirmCloneEmailCollector=Anda yakin ingin mengkloning kolektor Email %s? +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 an agenda event. EmailCollectorConfirmCollectTitle=Konfirmasi pengumpulan email -EmailCollectorConfirmCollect=Apakah Anda ingin menjalankan koleksi untuk kolektor ini sekarang? +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=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, 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=Kode hasil terbaru NbOfEmailsInInbox=Jumlah email dalam direktori sumber LoadThirdPartyFromName=Muat pihak ketiga yang mencari di %s (hanya memuat) @@ -2089,7 +2113,7 @@ ResourceSetup=Modul Konfigurasi Sumber Daya UseSearchToSelectResource=Gunakan formulir pencarian untuk memilih sumber daya (bukan daftar drop-down). DisabledResourceLinkUser=Nonaktifkan fitur untuk menautkan sumber daya ke pengguna DisabledResourceLinkContact=Nonaktifkan fitur untuk menautkan sumber daya ke kontak -EnableResourceUsedInEventCheck=Aktifkan fitur untuk memeriksa apakah sumber daya digunakan dalam suatu agenda +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Konfirmasikan setel ulang modul OnMobileOnly=Hanya pada layar kecil (smartphone) DisableProspectCustomerType=Nonaktifkan jenis pihak ketiga "Prospek + Pelanggan" (sehingga pihak ketiga haruslah "Prospek" atau "Pelanggan", tetapi tidak boleh keduanya) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=Hapus pengumpul email ConfirmDeleteEmailCollector=Anda yakin ingin menghapus pengumpul email ini? RecipientEmailsWillBeReplacedWithThisValue=Email penerima akan selalu diganti dengan nilai ini AtLeastOneDefaultBankAccountMandatory=Setidaknya 1 rekening bank default harus ditentukan -RESTRICT_ON_IP=Izinkan akses ke beberapa IP host saja (wildcard tidak diizinkan, gunakan ruang antar nilai). Kosong berarti setiap host dapat mengakses. +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=Berdasarkan versi perpustakaan SabreDAV NotAPublicIp=Bukan IP publik @@ -2144,6 +2168,9 @@ 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 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. @@ -2206,12 +2233,12 @@ DashboardDisableBlockAdherent=Nonaktifkan ikon untuk keanggotaan DashboardDisableBlockExpenseReport=Nonaktifkan ikon untuk laporan pengeluaran DashboardDisableBlockHoliday=Nonaktifkan ikon untuk cuti EnabledCondition=Kondisi untuk mengaktifkan bidang (jika tidak diaktifkan, visibilitas akan selalu mati) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Jika Anda ingin menggunakan pajak kedua, Anda harus mengaktifkan juga pajak penjualan pertama -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Jika Anda ingin menggunakan pajak ketiga, Anda harus mengaktifkan juga pajak penjualan pertama +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=Bahasa dan presentasi SkinAndColors=Kulit dan warna -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Jika Anda ingin menggunakan pajak kedua, Anda harus mengaktifkan juga pajak penjualan pertama -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Jika Anda ingin menggunakan pajak ketiga, Anda harus mengaktifkan juga pajak penjualan pertama +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 = 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 +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/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/banks.lang b/htdocs/langs/id_ID/banks.lang index f4b913a5c59..0dc7a2246ea 100644 --- a/htdocs/langs/id_ID/banks.lang +++ b/htdocs/langs/id_ID/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transaksi AddBankRecord=Tambahkan entri AddBankRecordLong=Tambahkan entri secara manual Conciliated=Berdamai -ConciliatedBy=Direkonsiliasi oleh +ReConciliedBy=Reconciled by DateConciliating=Rekonsiliasi tanggal BankLineConciliated=Entri direkonsiliasi dengan kwitansi bank -Reconciled=Berdamai -NotReconciled=Tidak didamaikan +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Pembayaran pelanggan SupplierInvoicePayment=Pembayaran vendor SubscriptionPayment=Pembayaran berlangganan @@ -172,8 +172,8 @@ SEPAMandate=Mandat SEPA YourSEPAMandate=Mandat SEPA Anda FindYourSEPAMandate=Ini adalah mandat SEPA Anda untuk mengotorisasi perusahaan kami untuk melakukan pemesanan debit langsung ke bank Anda. Kembalikan ditandatangani (pindai dokumen yang ditandatangani) atau kirimkan melalui pos ke AutoReportLastAccountStatement=Isi kolom 'nomor rekening bank' secara otomatis dengan nomor pernyataan terakhir saat melakukan rekonsiliasi -CashControl=Kontrol meja kas POS -NewCashFence=Pembukaan atau penutupan meja kas baru +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Warnai gerakan BankColorizeMovementDesc=Jika fungsi ini diaktifkan, Anda dapat memilih warna latar belakang spesifik untuk gerakan debit atau kredit BankColorizeMovementName1=Warna latar belakang untuk pergerakan debit @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Jika Anda tidak membuat rekonsiliasi bank pada NoBankAccountDefined=Tidak ada rekening bank yang ditentukan NoRecordFoundIBankcAccount=Tidak ada catatan yang ditemukan di rekening bank. Biasanya, ini terjadi ketika catatan telah dihapus secara manual dari daftar transaksi di rekening bank (misalnya selama rekonsiliasi rekening bank). Alasan lainnya adalah pembayaran dicatat ketika modul "%s" dinonaktifkan. 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/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang index a95adcb4e93..c19c9aa3e6d 100644 --- a/htdocs/langs/id_ID/bills.lang +++ b/htdocs/langs/id_ID/bills.lang @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Ada kesalahan, tagihan yang sudah terkoreksi ha ErrorInvoiceOfThisTypeMustBePositive=Kesalahan, jenis faktur ini harus memiliki jumlah tidak termasuk pajak positif (atau nol) ErrorCantCancelIfReplacementInvoiceNotValidated=Ada kesalahan, tagihan yang pernah diganti dengan tagihan lain tidak bisa digantikan kalau masih dalam status konsep ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Bagian ini atau yang lain sudah digunakan sehingga seri diskon tidak dapat dihapus. +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=Dari BillTo=Kepada ActionsOnBill=Tindak lanjut tagihan @@ -282,6 +283,8 @@ RecurringInvoices=Faktur berulang RecurringInvoice=Recurring invoice RepeatableInvoice=Faktur templat RepeatableInvoices=Faktur templat +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=Templat Repeatables=Templat ChangeIntoRepeatableInvoice=Konversi menjadi faktur templat @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=Cek pembayaran (termasuk pajak) dibayarkan ke SendTo=dikirim ke PaymentByTransferOnThisBankAccount=Pembayaran dengan transfer ke rekening bank berikut VATIsNotUsedForInvoice=* PPN non-293B CGI yang tidak berlaku +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Dengan penerapan hukum 80,335 dari 12/05/80 LawApplicationPart2=barang tetap menjadi milik LawApplicationPart3=penjual sampai pembayaran penuh @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Faktur pemasok dihapus UnitPriceXQtyLessDiscount=Harga satuan x Jumlah - Diskon CustomersInvoicesArea=Area penagihan pelanggan SupplierInvoicesArea=Area penagihan pemasok -FacParentLine=Induk Baris Faktur SituationTotalRayToRest=Sisanya bayar tanpa pajak PDFSituationTitle=Situasi n° %d SituationTotalProgress=Total kemajuan %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=Cari faktur yang belum dibayar dengan tanggal ja NoPaymentAvailable=Tidak ada pembayaran yang tersedia untuk %s PaymentRegisteredAndInvoiceSetToPaid=Pembayaran terdaftar dan faktur %s disetel ke dibayar 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/id_ID/cashdesk.lang b/htdocs/langs/id_ID/cashdesk.lang index c41769561d7..0e002fa4874 100644 --- a/htdocs/langs/id_ID/cashdesk.lang +++ b/htdocs/langs/id_ID/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Catatan Kaki AmountAtEndOfPeriod=Jumlah pada akhir periode (hari, bulan atau tahun) TheoricalAmount=Jumlah teoretis RealAmount=Jumlah nyata -CashFence=Penutupan meja kas -CashFenceDone=Penutupan meja kas untuk periode selesai +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Nb faktur Paymentnumpad=Jenis Pad untuk memasukkan pembayaran Numberspad=Angka pad @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 = tag
    {TN}digunakan untuk menambahkan nomo TakeposGroupSameProduct=Kelompokkan lini produk yang sama StartAParallelSale=Mulai penjualan paralel baru SaleStartedAt=Penjualan dimulai pada %s -ControlCashOpening=Buka popup "Kontrol uang tunai" saat membuka POS -CloseCashFence=Tutup kontrol meja kas +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Laporan tunai MainPrinterToUse=Printer utama untuk digunakan OrderPrinterToUse=Memesan printer untuk digunakan @@ -134,3 +134,5 @@ 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
    diff --git a/htdocs/langs/id_ID/companies.lang b/htdocs/langs/id_ID/companies.lang index 378dfe8a374..669da132c78 100644 --- a/htdocs/langs/id_ID/companies.lang +++ b/htdocs/langs/id_ID/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Area prospek IdThirdParty=ID Pihak Ketiga IdCompany=ID Perusahaan IdContact=ID Kontak +ThirdPartyAddress=Third-party address ThirdPartyContacts=Kontak pihak ketiga ThirdPartyContact=Kontak/alamat pihak ketiga Company=Perusahaan @@ -51,19 +52,22 @@ CivilityCode=Kode peradaban RegisteredOffice=Kantor terdaftar Lastname=nama keluarga Firstname=Nama depan +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Posisi pekerjaan UserTitle=Judul 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Kode vendor tidak valid CustomerCodeModel=Model kode pelanggan SupplierCodeModel=Model kode vendor Gencod=Kode batang +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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 Prof 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Daftar Pihak Ketiga ShowCompany=Pihak ketiga ShowContact=Kontak Alamat ContactsAllShort=Semua (Tanpa filter) -ContactType=Jenis kontak +ContactType=Contact role ContactForOrders=Kontak pesanan ContactForOrdersOrShipments=Kontak pesanan atau pengiriman ContactForProposals=Kontak proposal @@ -439,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 ff998bd3746..3b33003d6b9 100644 --- a/htdocs/langs/id_ID/compta.lang +++ b/htdocs/langs/id_ID/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Apakah Anda yakin ingin mengklasifikasikan kartu gaji ini sebag DeleteSocialContribution=Hapus pembayaran pajak sosial atau fiskal DeleteVAT=Hapus pernyataan PPN DeleteSalary=Hapus kartu gaji +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Anda yakin ingin menghapus pembayaran pajak sosial / fiskal ini? ConfirmDeleteVAT=Apakah Anda yakin ingin menghapus pernyataan PPN ini? -ConfirmDeleteSalary=Apakah Anda yakin ingin menghapus gaji ini? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Pajak dan pembayaran sosial dan fiskal CalcModeVATDebt=Mode%sVAT pada komitmen akuning%s . CalcModeVATEngagement=Mode%sVAT pada pendapatan-pengeluaran%s . @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Beli turnover yang ditagih ReportPurchaseTurnoverCollected=Turnover pembelian dikumpulkan IncludeVarpaysInResults = Sertakan berbagai pembayaran dalam laporan IncludeLoansInResults = Sertakan pinjaman dalam laporan -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) diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang index 2df9104a067..900cd9ef031 100644 --- a/htdocs/langs/id_ID/errors.lang +++ b/htdocs/langs/id_ID/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Email %s tampaknya salah (domain tidak memiliki data MX yang va ErrorBadUrl=Url %s salah ErrorBadValueForParamNotAString=Nilai buruk untuk parameter Anda. Biasanya ditambahkan ketika terjemahan tidak ada. ErrorRefAlreadyExists=Referensi %s sudah ada. +ErrorTitleAlreadyExists=Title %s already exists. ErrorLoginAlreadyExists=Login %s sudah ada. ErrorGroupAlreadyExists=Grup %s sudah ada. ErrorEmailAlreadyExists=Email %s sudah ada. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=File lain dengan nama %s sudah ada. ErrorPartialFile=File tidak diterima sepenuhnya oleh server. ErrorNoTmpDir=Directy directy %s tidak ada. ErrorUploadBlockedByAddon=Unggah diblokir oleh plugin PHP / Apache. -ErrorFileSizeTooLarge=Ukuran file terlalu besar. +ErrorFileSizeTooLarge=File size is too large or file not provided. ErrorFieldTooLong=Bidang %s terlalu panjang. ErrorSizeTooLongForIntType=Ukuran terlalu panjang untuk tipe int (maksimum digit %s) ErrorSizeTooLongForVarcharType=Ukuran terlalu panjang untuk tipe string (maksimum karakter %s) @@ -91,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 @@ -269,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. @@ -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=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. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Nilai tidak valid diff --git a/htdocs/langs/id_ID/exports.lang b/htdocs/langs/id_ID/exports.lang index 955c430dced..2c9a33384f5 100644 --- a/htdocs/langs/id_ID/exports.lang +++ b/htdocs/langs/id_ID/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=Jenis garis (0 = produk, 1 = layanan) FileWithDataToImport=File dengan data untuk diimpor FileToImport=Sumber file untuk diimpor FileMustHaveOneOfFollowingFormat=File yang akan diimpor harus memiliki salah satu format berikut -DownloadEmptyExample=Unduh file template dengan informasi konten bidang -StarAreMandatory=* adalah bidang wajib +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=Pilih format file untuk digunakan sebagai format file impor dengan mengklik ikon %s untuk memilihnya ... ChooseFileToImport=Unggah file kemudian klik ikon %s untuk memilih file sebagai file impor sumber ... SourceFileFormat=Format file sumber @@ -135,3 +135,6 @@ NbInsert=Jumlah baris yang dimasukkan: %s NbUpdate=Jumlah baris yang diperbarui: %s MultipleRecordFoundWithTheseFilters=Beberapa catatan telah ditemukan dengan filter ini: %s StocksWithBatch=Stok dan lokasi (gudang) produk dengan nomor batch/serial +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: 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/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 ae99fe588da..8aac1bb7f95 100644 --- a/htdocs/langs/id_ID/install.lang +++ b/htdocs/langs/id_ID/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Memori sesi maks PHP Anda diatur ke%s . Ini sudah cukup. PHPMemoryTooLow=Memori sesi maks PHP Anda diatur ke%sbyte. Ini terlalu rendah. Ubahphp.iniAnda untuk menetapkanmemory_limit parameterke setidaknya%s a09a4b7 Recheck=Klik di sini untuk tes yang lebih rinci ErrorPHPDoesNotSupportSessions=Instalasi PHP Anda tidak mendukung sesi. Fitur ini diperlukan untuk memungkinkan Dolibarr berfungsi. Periksa pengaturan PHP Anda dan izin direktori sesi. -ErrorPHPDoesNotSupportGD=Instalasi PHP Anda tidak mendukung fungsi grafis GD. Tidak ada grafik yang tersedia. -ErrorPHPDoesNotSupportCurl=Instalasi PHP Anda tidak mendukung Curl. -ErrorPHPDoesNotSupportCalendar=Instalasi PHP Anda tidak mendukung ekstensi kalender php. -ErrorPHPDoesNotSupportUTF8=Instalasi PHP Anda tidak mendukung fungsi UTF8. Dolibarr tidak dapat bekerja dengan benar. Atasi ini sebelum menginstal Dolibarr. -ErrorPHPDoesNotSupportIntl=Instalasi PHP Anda tidak mendukung fungsi Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Instalasi PHP Anda tidak mendukung perluasan fungsi debug. ErrorPHPDoesNotSupport=Instalasi PHP Anda tidak mendukung fungsi %s. ErrorDirDoesNotExists=Direktori %s tidak ada. ErrorGoBackAndCorrectParameters=Kembali dan periksa / koreksi parameter. @@ -30,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..5bd1f86c599 100644 --- a/htdocs/langs/id_ID/loan.lang +++ b/htdocs/langs/id_ID/loan.lang @@ -24,7 +24,7 @@ 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 diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index 23fbd8255cb..21b62af26c7 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -244,6 +244,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 +345,7 @@ KiloBytes=Kilobyte MegaBytes=Megabita GigaBytes=Gigabytes TeraBytes=Terabyte -UserAuthor=Dibuat oleh +UserAuthor=Created by UserModif=Diperbaharui oleh b=b. Kb=Kb @@ -517,6 +518,7 @@ or=atau Other=Lainnya Others=Lainnya OtherInformations=Informasi lain +Workflow=Workflow Quantity=Kuantitas Qty=Jumlah ChangedBy=Diubah oleh @@ -619,6 +621,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 +712,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 +802,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 @@ -1164,3 +1169,14 @@ 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/id_ID/members.lang b/htdocs/langs/id_ID/members.lang index 8780b974214..898cda41a78 100644 --- a/htdocs/langs/id_ID/members.lang +++ b/htdocs/langs/id_ID/members.lang @@ -15,7 +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 -MembersCards=Kartu nama untuk anggota +MembersCards=Generation of cards for members MembersList=Daftar anggota MembersListToValid=Daftar anggota konsep (akan divalidasi) MembersListValid=Daftar anggota yang valid @@ -35,7 +35,8 @@ DateEndSubscription=Tanggal akhir keanggotaan EndSubscription=Akhir keanggotaan SubscriptionId=ID Kontribusi WithoutSubscription=Tanpa kontribusi -MemberId=Tanda Anggota +MemberId=Member Id +MemberRef=Member Ref NewMember=Anggota baru MemberType=Tipe anggota MemberTypeId=ID tipe anggota @@ -135,7 +136,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.

    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 @@ -159,11 +160,11 @@ HTPasswordExport=pembuatan file htpassword NoThirdPartyAssociatedToMember=Tidak ada pihak ketiga yang terkait dengan anggota ini MembersAndSubscriptions=Anggota dan Kontribusi MoreActions=Tindakan pelengkap saat merekam -MoreActionsOnSubscription=Tindakan pelengkap, disarankan secara default saat merekam kontribusi +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution MoreActionBankDirect=Buat entri langsung di rekening bank MoreActionBankViaInvoice=Buat faktur, dan pembayaran di rekening bank MoreActionInvoiceOnly=Buat faktur tanpa pembayaran -LinkToGeneratedPages=Buat kartu kunjungan +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Layar ini memungkinkan Anda untuk menghasilkan file PDF dengan kartu bisnis untuk semua anggota Anda atau anggota tertentu. DocForAllMembersCards=Hasilkan kartu nama untuk semua anggota DocForOneMemberCards=Hasilkan kartu nama untuk anggota tertentu @@ -218,3 +219,5 @@ 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 diff --git a/htdocs/langs/id_ID/modulebuilder.lang b/htdocs/langs/id_ID/modulebuilder.lang index f6b55d0ea74..09854dc68f8 100644 --- a/htdocs/langs/id_ID/modulebuilder.lang +++ b/htdocs/langs/id_ID/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=Masukkan nama modul / aplikasi yang akan dibuat tanpa spasi. Gunakan huruf besar untuk memisahkan kata-kata (Misalnya: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Masukkan nama objek yang akan dibuat tanpa spasi. Gunakan huruf besar untuk memisahkan kata-kata (Misalnya: MyObject, Siswa, Guru ...). File kelas CRUD, tetapi juga file API, halaman ke daftar / tambahkan / edit / hapus objek dan file SQL akan dihasilkan. +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=Jalur tempat modul dihasilkan / diedit (direktori pertama untuk modul eksternal didefinisikan menjadi %s):%s ModuleBuilderDesc3=Modul yang dihasilkan / dapat diedit ditemukan:%s ModuleBuilderDesc4=Modul terdeteksi sebagai 'dapat diedit' ketika file%s ada di root direktori modul NewModule=Modul baru NewObjectInModulebuilder=Objek baru +NewDictionary=New dictionary ModuleKey=Kunci modul ObjectKey=Kunci objek +DicKey=Dictionary key ModuleInitialized=Modul diinisialisasi FilesForObjectInitialized=File untuk objek baru '%s' diinisialisasi FilesForObjectUpdated=File untuk objek '%s' diperbarui (file .sql dan file .class.php) @@ -52,7 +55,7 @@ LanguageFile=File untuk bahasa ObjectProperties=Properti Obyek 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 = Atur basis data ke NOT NULL. -1 = Izinkan nilai nol dan nilai paksa ke NULL jika kosong ('' atau 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=Digunakan untuk 'cari semua' DatabaseIndex=Indeks basis data FileAlreadyExists=File %s sudah ada @@ -94,7 +97,7 @@ LanguageDefDesc=Masukkan file ini, semua kunci dan terjemahan untuk setiap file MenusDefDesc=Tentukan di sini menu yang disediakan oleh modul Anda DictionariesDefDesc=Tentukan di sini kamus yang disediakan oleh modul Anda PermissionsDefDesc=Tetapkan di sini izin baru yang disediakan oleh modul Anda -MenusDefDescTooltip=Menu yang disediakan oleh modul / aplikasi Anda didefinisikan ke dalam array$ this-> menus ke dalam file deskriptor modul. Anda dapat mengedit file ini secara manual atau menggunakan editor yang disematkan.

    Catatan: Setelah ditentukan (dan modul diaktifkan kembali), menu juga terlihat ke dalam editor menu yang tersedia untuk pengguna administrator di %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=Kamus yang disediakan oleh modul / aplikasi Anda didefinisikan ke dalam array$ this-> kamus ke file deskriptor modul. Anda dapat mengedit file ini secara manual atau menggunakan editor yang disematkan.

    Catatan: Setelah ditentukan (dan modul diaktifkan kembali), kamus juga dapat dilihat di area pengaturan untuk pengguna administrator pada %s. PermissionsDefDescTooltip=Izin yang disediakan oleh modul / aplikasi Anda didefinisikan ke dalam array$ this-> rights ke file deskriptor modul. Anda dapat mengedit file ini secara manual atau menggunakan editor yang disematkan.

    Catatan: Setelah ditentukan (dan modul diaktifkan kembali), izin terlihat ke pengaturan izin default %s. HooksDefDesc=Definisikan di propertimodule_parts ['hooks] , dalam deskriptor modul, konteks kait yang ingin Anda kelola (daftar konteks dapat ditemukan dengan pencarian di'initHooks (a04fbf07fbf0fbfbf0fbfbfbfbfbfbfbfjfbfjfjjfjfjjfjjfjjfjjfjfjjfjfjfjjfjfjjfjfjfjfjfjfjjfjjfjfjfjfjfjjfjjfjfjfjfjjfjfjfjfjjfjfjfjfjjfjfjfjfjjfjfjfjfjfjfjfjfjfjfjfjjfjfjjfj) file kait untuk menambahkan kode fungsi terkait Anda (fungsi hookable dapat ditemukan dengan pencarian di ' executeHooks ' dalam kode inti). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Hancurkan basis table jika kosong) TableDoesNotExists=Tabel %s tidak ada TableDropped=Tabel %s dihapus InitStructureFromExistingTable=Membangun string array struktur dari tabel yang ada -UseAboutPage=Nonaktifkan halaman tentang +UseAboutPage=Do not generate the About page UseDocFolder=Nonaktifkan folder dokumentasi UseSpecificReadme=Gunakan ReadMe tertentu ContentOfREADMECustomized=Catatan: Konten file README.md telah diganti dengan nilai spesifik yang ditentukan ke dalam pengaturan ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Gunakan URL editor tertentu UseSpecificFamily = Gunakan keluarga tertentu UseSpecificAuthor = Gunakan penulis tertentu UseSpecificVersion = Gunakan versi awal tertentu -IncludeRefGeneration=Referensi objek harus dihasilkan secara otomatis -IncludeRefGenerationHelp=Periksa ini jika Anda ingin memasukkan kode untuk mengelola pembuatan referensi secara otomatis -IncludeDocGeneration=Saya ingin menghasilkan beberapa dokumen dari objek +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=Jika Anda mencentang ini, beberapa kode akan dibuat untuk menambahkan kotak "Hasilkan dokumen" pada catatan. ShowOnCombobox=Tunjukkan nilai ke dalam kotak kombo KeyForTooltip=Kunci untuk tooltip @@ -138,10 +141,15 @@ CSSViewClass=CSS untuk membaca formulir CSSListClass=CSS untuk daftar NotEditable=Tidak dapat diedit ForeignKey=Kunci asing -TypeOfFieldsHelp=Jenis bidang:
    varchar (99), ganda (24,8), real, teks, html, datetime, timestamp, integer, integer: ClassName: relativepath / to / classfile.class.php [: 1 [: filter]] ('1' berarti kita menambahkan tombol + setelah kombo untuk membuat catatan, 'filter' dapat berupa 'status = 1 DAN fk_user = __USER_ID DAN entitas IN (__SHARED_ENTITIES__)' misalnya) +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=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=Masukkan 1 jika bidang ini perlu divalidasi dengan $this->validateField() atau 0 jika diperlukan validasi +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. 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 477ca55a00a..8efd4345cb7 100644 --- a/htdocs/langs/id_ID/other.lang +++ b/htdocs/langs/id_ID/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... atau buat profil Anda sendiri
    (pemilihan modul DemoFundation=Kelola anggota sebuah yayasan DemoFundation2=Kelola anggota dan rekening bank suatu yayasan DemoCompanyServiceOnly=Perusahaan atau freelance hanya menjual layanan -DemoCompanyShopWithCashDesk=Kelola toko dengan meja kas +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Berbelanja produk yang dijual dengan Point Of Sales DemoCompanyManufacturing=Perusahaan memproduksi produk DemoCompanyAll=Perusahaan dengan berbagai kegiatan (semua modul utama) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Pilih objek untuk melihat statistiknya... ConfirmBtnCommonContent = Apakah Anda yakin ingin "%s" ? ConfirmBtnCommonTitle = Konfirmasikan tindakan Anda CloseDialog = Tutup +Autofill = Autofill diff --git a/htdocs/langs/id_ID/projects.lang b/htdocs/langs/id_ID/projects.lang index 7f70ebfff40..8ef2b56090c 100644 --- a/htdocs/langs/id_ID/projects.lang +++ b/htdocs/langs/id_ID/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Label proyek ProjectsArea=Area Proyek ProjectStatus=Status proyek SharedProject=Semua orang -PrivateProject=Kontak proyek +PrivateProject=Assigned contacts ProjectsImContactFor=Proyek yang secara eksplisit saya hubungi AllAllowedProjects=Semua proyek yang dapat saya baca (milik saya + publik) AllProjects=Semua proyek @@ -190,6 +190,7 @@ PlannedWorkload=Beban kerja yang direncanakan PlannedWorkloadShort=Beban kerja ProjectReferers=Item terkait ProjectMustBeValidatedFirst=Proyek harus divalidasi terlebih dahulu +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Tetapkan sumber daya pengguna sebagai kontak proyek untuk mengalokasikan waktu InputPerDay=Masukan per hari InputPerWeek=Masukan per minggu @@ -258,7 +259,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. @@ -287,3 +288,10 @@ 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/id_ID/propal.lang b/htdocs/langs/id_ID/propal.lang index 84be0c40906..34b4826aa44 100644 --- a/htdocs/langs/id_ID/propal.lang +++ b/htdocs/langs/id_ID/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Tidak ada konsep proposal CopyPropalFrom=Buat proposal komersial dengan menyalin proposal yang ada CreateEmptyPropal=Buat proposal komersial kosong atau dari daftar produk / layanan DefaultProposalDurationValidity=Durasi validitas proposal komersial default (dalam beberapa hari) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Gunakan kontak / alamat dengan tipe 'Kontak tindak lanjut proposal' jika didefinisikan sebagai ganti alamat pihak ketiga sebagai alamat penerima proposal ConfirmClonePropal=Yakin ingin mengkloning proposal komersial%s ? ConfirmReOpenProp=Anda yakin ingin membuka kembali proposal komersial%s ? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Penerimaan tertulis, stempel perusahaan, tanggal dan t ProposalsStatisticsSuppliers=Statistik proposal proposal vendor CaseFollowedBy=Kasus diikuti oleh SignedOnly=Hanya yang ditandatangani +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=ID proposal IdProduct=ID Produk -PrParentLine=Garis Induk Proposal LineBuyPriceHT=Jumlah Harga Beli setelah pajak untuk baris SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign +NoSign=Set not signed PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted 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 01299f20d56..538d1027999 100644 --- a/htdocs/langs/id_ID/ticket.lang +++ b/htdocs/langs/id_ID/ticket.lang @@ -90,10 +90,10 @@ 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=Email pemberitahuan dari -TicketEmailNotificationFromHelp=Digunakan untuk menjawab pesan tiket dengan contoh -TicketEmailNotificationTo=Email pemberitahuan ke -TicketEmailNotificationToHelp=Kirim pemberitahuan email ke alamat ini. +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 TicketNewEmailBodyLabel=Pesan teks dikirim setelah membuat tiket TicketNewEmailBodyHelp=Teks yang ditentukan di sini akan dimasukkan ke dalam email yang mengkonfirmasikan pembuatan tiket baru dari antarmuka publik. Informasi tentang konsultasi tiket ditambahkan secara otomatis. TicketParamPublicInterface=Penyiapan antarmuka publik @@ -136,6 +136,18 @@ TicketsPublicNotificationNewMessage=Kirim email ketika pesan/komentar baru ditam TicketsPublicNotificationNewMessageHelp=Kirim email ketika pesan baru ditambahkan dari antarmuka publik (ke pengguna yang ditetapkan atau email notifikasi ke (pembaruan) dan/atau email notifikasi ke) TicketPublicNotificationNewMessageDefaultEmail=Email pemberitahuan ke (perbarui) TicketPublicNotificationNewMessageDefaultEmailHelp=Kirim email ke alamat ini untuk setiap pemberitahuan pesan baru jika tiket tidak memiliki pengguna yang ditetapkan atau jika pengguna tidak memiliki email yang dikenal. +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 # @@ -151,6 +163,8 @@ OrderByDateAsc=Urutkan berdasarkan tanggal kenaikan OrderByDateDesc=Urutkan berdasarkan tanggal turun ShowAsConversation=Tampilkan sebagai daftar percakapan MessageListViewType=Tampilkan sebagai daftar tabel +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Penerima kosong. Tidak ada email y TicketGoIntoContactTab=Buka tab "Kontak" untuk memilihnya TicketMessageMailIntro=pengantar TicketMessageMailIntroHelp=Teks ini hanya ditambahkan di awal email dan tidak akan disimpan. -TicketMessageMailIntroLabelAdmin=Pengantar pesan saat mengirim email -TicketMessageMailIntroText=Halo,
    Respons baru terkirim pada tiket yang Anda hubungi. Ini pesannya:
    -TicketMessageMailIntroHelpAdmin=Teks ini akan dimasukkan sebelum teks respons terhadap tiket. +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=

    Hormat kami,

    -

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Tanda tangan email respons TicketMessageMailSignatureHelpAdmin=Teks ini akan dimasukkan setelah pesan respons. TicketMessageHelp=Hanya teks ini yang akan disimpan dalam daftar pesan di kartu tiket. @@ -238,9 +252,16 @@ TicketChangeStatus=Merubah status TicketConfirmChangeStatus=Konfirmasikan perubahan status: %s? TicketLogStatusChanged=Status berubah: %s menjadi %s TicketNotNotifyTiersAtCreate=Tidak memberi tahu perusahaan saat membuat +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Belum dibaca TicketNotCreatedFromPublicInterface=Tidak tersedia. Tiket tidak dibuat dari antarmuka publik. ErrorTicketRefRequired=Diperlukan nama referensi tiket +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,8 +289,9 @@ TicketNewEmailBody=Ini adalah email otomatis untuk mengonfirmasi bahwa Anda tela TicketNewEmailBodyCustomer=Ini adalah email otomatis untuk mengonfirmasi bahwa tiket baru baru saja dibuat ke akun Anda. TicketNewEmailBodyInfosTicket=Informasi untuk memantau tiket TicketNewEmailBodyInfosTrackId=Nomor pelacakan tiket: %s -TicketNewEmailBodyInfosTrackUrl=Anda dapat melihat progres tiket dengan mengklik tautan di atas. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Anda dapat melihat kemajuan tiket di antarmuka spesifik dengan mengklik tautan berikut +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. @@ -291,6 +313,10 @@ NewUser=Pengguna Baru NumberOfTicketsByMonth=Jumlah tiket per bulan NbOfTickets=Jumlah tiket # 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=Tiket %s diperbarui TicketNotificationEmailBody=Ini adalah pesan otomatis untuk memberi tahu Anda bahwa tiket %s baru saja diperbarui TicketNotificationRecipient=Penerima pemberitahuan diff --git a/htdocs/langs/id_ID/users.lang b/htdocs/langs/id_ID/users.lang index 89035aa8918..3374528f545 100644 --- a/htdocs/langs/id_ID/users.lang +++ b/htdocs/langs/id_ID/users.lang @@ -114,7 +114,7 @@ UserLogoff=Logout pengguna UserLogged=Pengguna login DateOfEmployment=Tanggal masuk kerja DateEmployment=Pekerjaan -DateEmploymentstart=Tanggal Mulai Kerja +DateEmploymentStart=Tanggal Mulai Kerja DateEmploymentEnd=Tanggal Akhir Pekerjaan RangeOfLoginValidity=Rentang tanggal validitas akses CantDisableYourself=Anda tidak dapat menonaktifkan catatan pengguna Anda sendiri @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Secara default, validator adalah pengawas penggun UserPersonalEmail=Email pribadi UserPersonalMobile=Ponsel pribadi WarningNotLangOfInterface=Peringatan, ini adalah bahasa utama yang digunakan pengguna, bukan bahasa antarmuka yang dia pilih untuk dilihat. Untuk mengubah bahasa antarmuka yang terlihat oleh pengguna ini, buka tab %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login 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 606eb738205..f4d4a1f7b2a 100644 --- a/htdocs/langs/is_IS/companies.lang +++ b/htdocs/langs/is_IS/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Prospection area IdThirdParty=Auðkenni þriðja aðila IdCompany=Fyrirtækið Auðkenni IdContact=Hafðu Id +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Fyrirtæki @@ -51,19 +52,22 @@ CivilityCode=Civility kóða RegisteredOffice=Skráð skrifstofa Lastname=Lastname Firstname=Firstname +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Titill 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=Viðskiptavinur númer líkan SupplierCodeModel=Vendor code model Gencod=Strikamerki +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prófessor persónuskilríki 1 ProfId2Short=Prófessor persónuskilríki 2 @@ -159,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=Aðrir ProfId6ShortCM=- ProfId1CO=Prof Id 1 (Rut) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Öll (síu) -ContactType=Hafðu tegund +ContactType=Contact role ContactForOrders=Panta's samband ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Tillögunnar samband 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/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/members.lang b/htdocs/langs/is_IS/members.lang index ed333e6bce0..33fd7c7a5cd 100644 --- a/htdocs/langs/is_IS/members.lang +++ b/htdocs/langs/is_IS/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Listi yfir meðlimi MembersListToValid=Listi yfir meðlimi drög (verður staðfest) MembersListValid=Listi yfir gildar meðlimir @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Aðildarríkin persónuskilríki +MemberId=Member Id +MemberRef=Member Ref NewMember=Nýr meðlimur MemberType=Aðildarríkin tegund MemberTypeId=Aðildarríkin Auðkenni @@ -159,11 +160,11 @@ HTPasswordExport=htpassword skrá kynslóð NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Fjölbreyttari aðgerðir á upptöku -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=Búa til reikning án greiðslu -LinkToGeneratedPages=Búa til korta heimsókn +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Þessi skjár leyfa þér að búa til PDF skrár með nafnspjöld fyrir alla aðila eða tiltekna félagi. DocForAllMembersCards=Búa til nafnspjöld fyrir alla meðlimi (Format fyrir framleiðsla raunverulega skipulag: %s) DocForOneMemberCards=Búa til nafnspjöld fyrir tiltekinn aðili (Format fyrir framleiðsla raunverulega skipulag: %s) @@ -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/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index 84da72c8bac..339ff19aebd 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Manage meðlimum úr grunni DemoFundation2=Manage Aðilar og bankareikning sem grunn DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Manage búð með reiðufé skrifborðið +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Loka +Autofill = Autofill diff --git a/htdocs/langs/is_IS/projects.lang b/htdocs/langs/is_IS/projects.lang index dda11fdbe0e..18f026e3929 100644 --- a/htdocs/langs/is_IS/projects.lang +++ b/htdocs/langs/is_IS/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Allir -PrivateProject=Project tengiliðir +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Öll verkefni @@ -190,6 +190,7 @@ 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 @@ -287,3 +288,9 @@ 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 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/it_CH/accountancy.lang b/htdocs/langs/it_CH/accountancy.lang new file mode 100644 index 00000000000..44c4229cd8b --- /dev/null +++ b/htdocs/langs/it_CH/accountancy.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - 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...). +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) diff --git a/htdocs/langs/it_CH/admin.lang b/htdocs/langs/it_CH/admin.lang index 9bfd4f12f48..3b3a8d2c685 100644 --- a/htdocs/langs/it_CH/admin.lang +++ b/htdocs/langs/it_CH/admin.lang @@ -1,7 +1,4 @@ # 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 -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/companies.lang b/htdocs/langs/it_CH/companies.lang index 40b5f885e43..373e6cb5e14 100644 --- a/htdocs/langs/it_CH/companies.lang +++ b/htdocs/langs/it_CH/companies.lang @@ -1,7 +1,3 @@ # Dolibarr language file - Source file is en_US - companies -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/it_CH/exports.lang b/htdocs/langs/it_CH/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/it_CH/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/it_CH/products.lang b/htdocs/langs/it_CH/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/it_CH/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index 9e3b6ed7f2d..d3f1d5242e6 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -48,7 +48,7 @@ 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=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. ExportAccountingSourceDocHelp2=Per esportare i tuoi diari, usa la voce di menu %s - %s. VueByAccountAccounting=Visualizza per conto contabile VueBySubAccountAccounting=Visualizza per conto secondario contabile @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Account principale di contabilità p 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=I prossimi passi dovrebbero essere fatti per farti risparmiare tempo in futuro, suggerendoti l'account di contabilità predefinito corretto quando fai la registrazione nel Giornale (registra nel Libro Mastro e Contabilità Generale) +AccountancyAreaDescActionOnceBis=I passaggi successivi dovrebbero essere eseguiti per farti risparmiare tempo in futuro suggerendoti automaticamente l'account di contabilità predefinito corretto durante il trasferimento dei dati nella contabilità AccountancyAreaDescActionFreq=Le seguenti azioni vengono di solito eseguite ogni mese, settimana o giorno per le grandi compagnie... -AccountancyAreaDescJournalSetup=PASSO %s: Crea o controlla il contenuto del tuo elenco del giornale dal menu %s +AccountancyAreaDescJournalSetup=PASSO %s: controlla il contenuto dell'elenco del tuo diario dal 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 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: Definisci gli account di contabilità di default per ogni tipo di nota spese. Per questo, usa la voce di 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: Definisci gli account di contabilità di default per le spese extra (tasse varie). Per questo, usa la voce di menù %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. 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: Definisci le voci del piano dei conti per i tuoi prodotti/servizi. Per fare ciò usa il menu %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. @@ -161,7 +161,7 @@ BANK_DISABLE_DIRECT_INPUT=Disabilita la registrazione diretta della transazione 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_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 @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Conto di contabilità per registrare le donazioni ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conto contabile per registrare gli abbonamenti ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Conto contabile per impostazione predefinita per registrare il deposito del cliente +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_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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Per gruppi predefiniti ByPersonalizedAccountGroups=Gruppi personalizzati ByYear=Per anno NotMatch=Non impostato -DeleteMvt=Elimina alcune righe di operazione dalla contabilità +DeleteMvt=Elimina alcune righe dalla contabilità DelMonth=Mese da cancellare DelYear=Anno da cancellare DelJournal=Giornale da cancellare -ConfirmDeleteMvt=Ciò cancellerà tutte le righe operative della contabilità 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=Ciò cancellerà la transazione dalla contabilità (tutte le righe di operazione relative alla stessa transazione verranno eliminate) +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 @@ -278,30 +279,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=Chiusura annuale -DescClosure=Consultare qui il numero di movimenti per mese che non sono stati convalidati e gli anni fiscali già aperti -OverviewOfMovementsNotValidated=Passaggio 1 / Panoramica dei movimenti non convalidati. (Necessario per chiudere un anno fiscale) -AllMovementsWereRecordedAsValidated=Tutti i movimenti sono stati registrati come convalidati -NotAllMovementsCouldBeRecordedAsValidated=Non tutti i movimenti possono essere registrati come convalidati -ValidateMovements=Convalida i movimenti +DescClosure=Consult here the number of movements by month not yet validated & locked +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 record... 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 +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 journalize +NoNewRecordSaved=Nessun record da trasferire ListOfProductsWithoutAccountingAccount=Lista di prodotti non collegati a nessun piano dei conti ChangeBinding=Cambia il piano dei conti Accounted=Accounted in ledger NotYetAccounted=Non ancora trasferito in contabilità ShowTutorial=Mostra tutorial NotReconciled=Non conciliata -WarningRecordWithoutSubledgerAreExcluded=Avvertenza, tutte le operazioni senza account subledger definito vengono filtrate ed escluse da questa visualizzazione +WarningRecordWithoutSubledgerAreExcluded=Attenzione, tutte le righe senza conto subledger definito vengono filtrate ed escluse da questa visualizzazione +AccountRemovedFromCurrentChartOfAccount=Conto contabile che non esiste nel piano dei conti corrente ## Admin BindingOptions=Opzioni di rilegatura @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disabilita vincolante e trasferimento in ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Disabilita binding e trasferimento in contabilità sulle note spese (le note spese non verranno prese in considerazione in contabilità) ## Export -NotifiedExportDate=Contrassegna le righe esportate come esportate (la modifica delle righe non sarà possibile) -NotifiedValidationDate=Convalidare le voci esportate (non sarà possibile modificare o eliminare le righe) +NotifiedExportDate=Contrassegna le righe esportate come Esportate (per modificare una riga è necessario eliminare l'intera transazione e ritrasferirla in contabilità) +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=Convalida e blocco della data ConfirmExportFile=Conferma della generazione del file di esportazione contabile? ExportDraftJournal=Export draft journal Modelcsv=Modello di esportazione @@ -394,6 +397,21 @@ Range=Range of accounting account Calculated=Calcolato Formula=Formula +## Reconcile +Unlettering=Non riconciliarsi +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 Conferma di non riconciliazione +ConfirmMassUnletteringQuestion=Sei sicuro di voler annullare la riconciliazione dei record selezionati %s? +ConfirmMassDeleteBookkeepingWriting=Conferma eliminazione massiva +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 ErrorNoAccountingCategoryForThisCountry=Nessun gruppo di piano dei conti disponibile per il paese %s ( Vedi Home - Impostazioni - Dizionari ) @@ -406,6 +424,10 @@ Binded=Linee collegate ToBind=Linee da vincolare UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Spiacenti, questo modulo non è compatibile con la funzione sperimentale delle fatture di situazione +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 diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index e2632df530a..60d5e28d754 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -63,8 +63,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 +83,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 +109,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=Use graphical code (CAPTCHA) on login page and some public pages 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 @@ -477,7 +477,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=Init value for the %s empty barcodes 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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Anche l'utilizzo del server SMTP del tuo provider di servizi d 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. 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=Actual SPF record found (for email %s) : %s ClickToShowDescription=Clicca per mostrare la descrizione DependsOn=This module needs the module(s) RequiredBy=Questo modulo è richiesto dal modulo @@ -714,13 +714,14 @@ Permission27=Eliminare proposte commerciali Permission28=Esportare proposte commerciali Permission31=Vedere prodotti Permission32=Creare/modificare prodotti +Permission33=Read prices products Permission34=Eliminare prodotti Permission36=Vedere/gestire prodotti nascosti Permission38=Esportare prodotti Permission39=Ignora il prezzo minimo -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=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 +740,7 @@ Permission79=Creare/modificare gli abbonamenti Permission81=Vedere ordini clienti Permission82=Creare/modificare ordini clienti Permission84=Convalidare degli ordini clienti +Permission85=Generate the documents sales orders Permission86=Inviare ordini clienti Permission87=Chiudere gli ordini clienti Permission88=Annullare ordini clienti @@ -766,9 +768,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 (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=Cancella tutti i progetti e tutti i compiti (anche progetti privati in cui non sono stato insertio come contatto) +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 @@ -873,6 +876,7 @@ Permission525=Access loan calculator Permission527=Esporta prestiti Permission531=Vedere servizi Permission532=Creare/modificare servizi +Permission533=Read prices services Permission534=Eliminare servizi Permission536=Vedere/gestire servizi nascosti Permission538=Esportare servizi @@ -883,6 +887,9 @@ Permission564=Registrare addebiti/rifiuti di bonifici Permission601=Leggi gli adesivi Permission602=Crea/modifica adesivi Permission609=Elimina adesivi +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 @@ -969,6 +976,8 @@ Permission4021=Crea/modifica la tua valutazione Permission4022=Convalida la valutazione Permission4023=Elimina valutazione Permission4030=Vedi menu di confronto +Permission4031=Leggi le informazioni personali +Permission4032=Scrivi informazioni personali 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=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=Tipologia di dismissione dei beni TypeOfUnit=Tipo di unità SetupSaved=Impostazioni salvate SetupNotSaved=Impostazioni non salvate @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Valore di una costante ConstantIsOn=L'opzione %s è attiva NbOfDays=Numero di giorni AtEndOfMonth=Alla fine del mese -CurrentNext=Corrente/Successivo +CurrentNext=A given day in month Offset=Scostamento AlwaysActive=Sempre attivo Upgrade=Aggiornamento @@ -1187,7 +1197,7 @@ 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=Delay before 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 @@ -1228,6 +1238,7 @@ BrowserName=Browser BrowserOS=Sistema operativo ListOfSecurityEvents=Elenco degli eventi di sicurezza Dolibarr SecurityEventsPurged=Eventi di sicurezza eliminati +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=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. @@ -1339,6 +1350,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=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:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Bozze delle fatture filigranate (nessuna filigrana se v PaymentsNumberingModule=Modello per la numerazione dei documenti SuppliersPayment=Pagamenti fornitori SupplierPaymentSetup=Impostazioni pagamenti fornitori +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. ##### Proposals ##### PropalSetup=Impostazioni proposte commerciali ProposalsNumberingModules=Modelli di numerazione della proposta commerciale @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica 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=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 @@ -1925,7 +1940,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 @@ -1938,7 +1953,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=Nome dell'icona in formato dolibarr ('image.png' se nella directory del tema corrente, 'image.png@nom_du_module' se nella directory /img/ di un modulo) +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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Ordini d'acquisto MailToSendSupplierInvoice=Fatture Fornitore MailToSendContract=Contratti MailToSendReception=Receptions +MailToExpenseReport=Note spese MailToThirdparty=Soggetti terzi MailToMember=Membri MailToUser=Utenti @@ -2019,6 +2035,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=Show first sales representative 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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter su clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicazione non consentita GDPRContact=DPO (Data Protection Officer) o in italiano RPD (Responsabile della Protezione dei Dati) -GDPRContactDesc=Se memorizzi dati relativi a società / cittadini europei, puoi memorizzare qui il contatto responsabile del trattamento dei dati personali/sensibili +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 @@ -2048,27 +2065,46 @@ VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to 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=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=Le operazioni vengono eseguite dall'alto verso il basso MaxEmailCollectPerCollect=Max number of emails collected per collect 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=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 the collection for this collector now ? +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=Creare un ticket (collegato a una terza parte se la terza parte è stata caricata da un'operazione precedente, altrimenti senza una terza parte) +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) @@ -2082,14 +2118,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=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=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=Abilitare la funzione per verificare se una risorsa è in uso in un evento +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) @@ -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=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 @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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=For Proposals, Orders, Invoices. 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 @@ -2206,12 +2246,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=Se vuoi utilizzare una seconda imposta, devi abilitare anche la prima imposta sulla vendita -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se vuoi utilizzare una terza imposta, devi abilitare anche la prima imposta sulla vendita +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=Se vuoi utilizzare una seconda imposta, devi abilitare anche la prima imposta sulla vendita -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se vuoi utilizzare una terza imposta, devi abilitare anche la prima imposta sulla vendita +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 @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Disabilita la compressione delle risposte API 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=Modello per biglietto da visita di diverse dimensioni +InventorySetup= Inventory Setup +ExportUseLowMemoryMode=Utilizzare una modalità di memoria insufficiente +ExportUseLowMemoryModeHelp=Utilizzare la modalità di memoria insufficiente per eseguire l'exec del dump (la compressione viene eseguita tramite una pipe anziché nella memoria PHP). Questo metodo non consente di verificare che il file sia completato e non è possibile segnalare un messaggio di errore in caso di errore. + +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 +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=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=Senza nome +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +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=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/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/banks.lang b/htdocs/langs/it_IT/banks.lang index 0fa9abdc08b..f550d01d18c 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 -ConciliatedBy=Transazione conciliata da +ReConciliedBy=Reconciled by DateConciliating=Data di conciliazione BankLineConciliated=Voce riconciliata con ricevuta bancaria -Reconciled=Conciliata -NotReconciled=Non conciliata +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled 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=Controllo cassa POS -NewCashFence=Apertura o chiusura nuova cassa +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) 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,3 +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 diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang index d12ff11b14b..8de711bae32 100644 --- a/htdocs/langs/it_IT/bills.lang +++ b/htdocs/langs/it_IT/bills.lang @@ -156,6 +156,7 @@ 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. BillFrom=Da BillTo=A ActionsOnBill=Azioni su fattura @@ -282,6 +283,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) Repeatable=Modello Repeatables=Modelli ChangeIntoRepeatableInvoice=Converti in modello di fattura @@ -482,6 +485,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 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 @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Fattura fornitore eliminata UnitPriceXQtyLessDiscount=Prezzo unitario x Qtà - Sconto CustomersInvoicesArea=Area fatturazione clienti SupplierInvoicesArea=Area di fatturazione del fornitore -FacParentLine=Genitore riga fattura SituationTotalRayToRest=Resto da pagare senza tasse PDFSituationTitle=Situazione n ° %d SituationTotalProgress=Avanzamento totale %d %% @@ -607,3 +610,5 @@ 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) diff --git a/htdocs/langs/it_IT/boxes.lang b/htdocs/langs/it_IT/boxes.lang index 4f7bb3f5d3a..217c7056940 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 diff --git a/htdocs/langs/it_IT/cashdesk.lang b/htdocs/langs/it_IT/cashdesk.lang index 0aa9f577634..cd023006979 100644 --- a/htdocs/langs/it_IT/cashdesk.lang +++ b/htdocs/langs/it_IT/cashdesk.lang @@ -51,7 +51,7 @@ AmountAtEndOfPeriod=Amount at end of period (day, month or year) TheoricalAmount=Importo teorico RealAmount=Real amount CashFence=Chiusura cassa -CashFenceDone=Chiusura cassa avvenuta nel periodo +CashFenceDone=Chiusura cassa effettuata per il periodo NbOfInvoices=Numero di fatture Paymentnumpad=Type of Pad to enter payment Numberspad=Numbers Pad @@ -102,7 +102,7 @@ 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=Apri il popup "Controllo contanti" quando apri il POS +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 @@ -134,3 +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=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/companies.lang b/htdocs/langs/it_IT/companies.lang index c0a45186b90..86f02c34c0c 100644 --- a/htdocs/langs/it_IT/companies.lang +++ b/htdocs/langs/it_IT/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Area clienti potenziali IdThirdParty=Id soggetto terzo IdCompany=Id società IdContact=Id contatto +ThirdPartyAddress=Indirizzo di terze parti ThirdPartyContacts=Contatti del soggetto terzo ThirdPartyContact=Contatto/indirizzo del soggetto terzo Company=Società @@ -43,27 +44,30 @@ Individual=Privato 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=Società madre Subsidiaries=Controllate -ReportByMonth=Rapporto al mese +ReportByMonth=Report per mese ReportByCustomers=Report per cliente ReportByThirdparties=Report per terze parti -ReportByQuarter=Rapporto per tariffa +ReportByQuarter=Report per aliquota IVA CivilityCode=Titolo RegisteredOffice=Sede legale Lastname=Cognome Firstname=Nome +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 @@ -102,6 +106,7 @@ WrongSupplierCode=Codice fornitore non valido CustomerCodeModel=Modello codice cliente SupplierCodeModel=Modello codice fornitore Gencod=Codice a barre +GencodBuyPrice=Codice a barre del prezzo rif ##### Professional ID ##### ProfId1Short=C.C.I.A.A. ProfId2Short=R.E.A. @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=ID. prof. 1 (Registro delle imprese) ProfId2CM=ID. prof. 2 (n. contribuente) -ProfId3CM=ID. prof. 3 (Decreto di creazione) -ProfId4CM=Id Professionale 6 -ProfId5CM=Id Professionale 6 +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=Id Professionale 6 -ProfId5ShortCM=Id Professionale 6 +ProfId3ShortCM=N. di decreto di creazione +ProfId4ShortCM=Certificato di deposito n. +ProfId5ShortCM=Altri ProfId6ShortCM=Id Professionale 6 ProfId1CO=RUT ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Elenco dei soggetti terzi ShowCompany=Terze parti ShowContact=Contatto-Indirizzo ContactsAllShort=Tutti (Nessun filtro) -ContactType=Tipo di contatto +ContactType=Ruolo di contatto ContactForOrders=Contatto per gli ordini ContactForOrdersOrShipments=Contatto per ordini o spedizioni ContactForProposals=Contatto per le proposte commerciali @@ -439,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 c6352f9dc5e..1541aec5fbb 100644 --- a/htdocs/langs/it_IT/compta.lang +++ b/htdocs/langs/it_IT/compta.lang @@ -146,9 +146,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 ConfirmDeleteSocialContribution=Sei sicuro di voler eliminare questo pagamento fiscale/sociale? ConfirmDeleteVAT=Sei sicuro di voler eliminare questa dichiarazione IVA? -ConfirmDeleteSalary=Sei sicuro di voler eliminare questo stipendio? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Tasse/contributi e pagamenti CalcModeVATDebt=Modalità %sIVA su contabilità d'impegno%s. CalcModeVATEngagement=Calcola %sIVA su entrate-uscite%s @@ -193,11 +195,11 @@ VATReport=Report IVA VATReportByPeriods=Report IVA per periodo VATReportByMonth=Report IVA per mese VATReportByRates=Report IVA per aliquota -VATReportByThirdParties=Report IVA di terzi +VATReportByThirdParties=Report IVA per soggetto terzo VATReportByCustomers=Report IVA per cliente VATReportByCustomersInInputOutputMode=Report per IVA cliente riscossa e pagata VATReportByQuartersInInputOutputMode=Report per aliquota dell'imposta sulle vendite dell'imposta riscossa e pagata -VATReportShowByRateDetails=Mostra i dettagli di questa tariffa +VATReportShowByRateDetails=Mostra dettagli per questa aliquota LT1ReportByQuarters=Report tax 2 by rate LT2ReportByQuarters=Report tax 3 by rate LT1ReportByQuartersES=Report by RE rate @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Fatturato di acquisto fatturato ReportPurchaseTurnoverCollected=Fatturato di acquisto raccolto IncludeVarpaysInResults = Includere vari pagamenti nei rapporti IncludeLoansInResults = Includere prestiti nei report -InvoiceLate30Days = Fatture in ritardo (> 30 giorni) -InvoiceLate15Days = Fatture in ritardo (da 15 a 30 giorni) -InvoiceLateMinus15Days = Fatture in ritardo (< 15 giorni) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = In scadenza (< 15 giorni) InvoiceNotLate15Days = In scadenza (tra 15 e 30 giorni) InvoiceNotLate30Days = In scadenza (> 30 giorni) 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/errors.lang b/htdocs/langs/it_IT/errors.lang index f784773bb16..006e711a8d3 100644 --- a/htdocs/langs/it_IT/errors.lang +++ b/htdocs/langs/it_IT/errors.lang @@ -9,6 +9,7 @@ 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à. @@ -66,7 +67,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) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=%s errors found @@ -269,7 +271,7 @@ 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=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Controllo della versione fallito ErrorWrongFileName=Il nome del file non può contenere __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Non nel dizionario dei termini di pagamento, modificare. @@ -277,11 +279,23 @@ ErrorIsNotADraft=%s non è una bozza ErrorExecIdFailed=Impossibile eseguire il comando "id" ErrorBadCharIntoLoginName=Carattere non autorizzato nel nome di accesso ErrorRequestTooLarge=Errore, richiesta troppo grande +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=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=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=Click here to setup main parameters 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à. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Attenzione, non puoi creare direttamente un sub account 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 # Validate RequireValidValue = Valore non valido diff --git a/htdocs/langs/it_IT/exports.lang b/htdocs/langs/it_IT/exports.lang index 127c4f93293..0681ccd47ce 100644 --- a/htdocs/langs/it_IT/exports.lang +++ b/htdocs/langs/it_IT/exports.lang @@ -53,8 +53,8 @@ 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=Scarica il file del template con le informazioni da inserire nei vari campi -StarAreMandatory=* sono campi obbligatori +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=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 @@ -135,3 +135,6 @@ NbInsert=Numero di righe inserite: %s NbUpdate=Numero di righe 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: 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/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 e9f4fdbaeb1..8fbb9eca9cb 100644 --- a/htdocs/langs/it_IT/install.lang +++ b/htdocs/langs/it_IT/install.lang @@ -8,6 +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=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. @@ -16,13 +17,6 @@ PHPMemoryOK=La memoria massima per la sessione è fissata dal PHP a %s. D 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=L'attuale installazione di PHP non supporta cURL. -ErrorPHPDoesNotSupportCalendar=La tua installazione di PHP non supporta le estensioni del calendario php. -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=La tua installazione PHP non supporta le funzioni mbstring. -ErrorPHPDoesNotSupportxDebug=La tua installazione di PHP non supporta l'estensione delle funzioni di debug. ErrorPHPDoesNotSupport=La tua installazione di PHP non supporta le funzioni %s. ErrorDirDoesNotExists=La directory %s non esiste. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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/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/loan.lang b/htdocs/langs/it_IT/loan.lang index 8b6f0dae914..76d1d5e1637 100644 --- a/htdocs/langs/it_IT/loan.lang +++ b/htdocs/langs/it_IT/loan.lang @@ -24,7 +24,7 @@ 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 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..39b2f954cf4 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=, @@ -244,6 +250,7 @@ Designation=Descrizione DescriptionOfLine=Linea Descrizione DateOfLine=Data DurationOfLine=Durata +ParentLine=ID linea padre Model=Modello DefaultModel=Modello predefinito Action=Azione @@ -344,7 +351,7 @@ KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Ceato da +UserAuthor=Creato da UserModif=Aggiornato da b=b Kb=Kb @@ -517,6 +524,7 @@ or=o Other=Altro Others=Altri OtherInformations=Altre informazioni +Workflow=Flusso di lavoro Quantity=Quantità Qty=Qtà ChangedBy=Cambiato da @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=File e documenti allegati JoinMainDoc=Iscriviti al 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 @@ -709,6 +718,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 @@ -1164,3 +1174,16 @@ 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=Rappresentanti di vendita interessati +CommercialAffected=Rappresentante di vendita interessato +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=Created by Email collector +CreatedByPublicPortal=Created from Public portal diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index ab06eeb7f40..3b74c46b7c1 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -15,7 +15,7 @@ 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=Biglietti da visita per i membri +MembersCards=Generazione di tessere per i membri MembersList=Elenco dei membri MembersListToValid=Elenco dei membri del progetto (da convalidare) MembersListValid=Elenco dei membri validi @@ -35,7 +35,8 @@ DateEndSubscription=Data di fine adesione EndSubscription=Fine adesione SubscriptionId=ID contributo WithoutSubscription=Senza contributo -MemberId=ID +MemberId=ID membro +MemberRef=Membro Rif NewMember=Nuovo membro MemberType=Tipo membro MemberTypeId=Id membro @@ -61,7 +62,7 @@ MemberStatusNoSubscriptionShort=convalidato SubscriptionNotNeeded=Nessun contributo richiesto NewCotisation=Nuovo contributo PaymentSubscription=Nuovo contributo di pagamento -SubscriptionEndDate=Termine ultimo per la sottoscrizione +SubscriptionEndDate=Termine ultimo per l'adesione MembersTypeSetup=Impostazioni tipi di membri MemberTypeModified=Member type modified DeleteAMemberType=Delete a member type @@ -103,7 +104,7 @@ FollowingLinksArePublic=The following links are open pages not protected by any PublicMemberList=Elenco pubblico dei membri BlankSubscriptionForm=Modulo di autoregistrazione pubblica 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 +EnablePublicSubscriptionForm=Abilita sito web pubblico con modulo di adesione ForceMemberType=Force the member type ExportDataset_member_1=Soci e contributi ImportDataset_member_1=Membri @@ -159,11 +160,11 @@ HTPasswordExport=Esporta htpassword NoThirdPartyAssociatedToMember=Nessuna terza parte associata a questo membro MembersAndSubscriptions=Membri e contributi MoreActions=Azioni complementari alla registrazione -MoreActionsOnSubscription=Azione complementare, suggerita di default al momento della registrazione di un contributo +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=Genera biglietti da visita +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,7 +199,7 @@ 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 +CanEditAmount=Visitor can choose/edit amount of its contribution MEMBER_NEWFORM_PAYONLINE=Saltate sulla integrato pagina di pagamento online ByProperties=By nature MembersStatisticsByProperties=Members statistics by nature @@ -218,3 +219,5 @@ 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 diff --git a/htdocs/langs/it_IT/modulebuilder.lang b/htdocs/langs/it_IT/modulebuilder.lang index dc748c8c44b..7f20fe542c4 100644 --- a/htdocs/langs/it_IT/modulebuilder.lang +++ b/htdocs/langs/it_IT/modulebuilder.lang @@ -1,14 +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 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=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=Nuovo dizionario ModuleKey=Module key ObjectKey=Object 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) @@ -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=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 @@ -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=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 module re-activated), 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). @@ -110,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=Disable 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. @@ -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=Il riferimento dell'oggetto deve essere generato automaticamente -IncludeRefGenerationHelp=Seleziona questa opzione se desideri includere il codice per gestire la generazione automatica del riferimento -IncludeDocGeneration=Desidero generare alcuni documenti da questo oggetto +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 @@ -138,10 +141,16 @@ CSSViewClass=CSS per il modulo di lettura CSSListClass=CSS per l'elenco NotEditable=Non modificabile ForeignKey=Chiave esterna -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" può essere "status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)" per esempio) +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=Metti 1 se questo campo deve essere convalidato con $this->validateField() o 0 se è richiesta la convalida +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/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/other.lang b/htdocs/langs/it_IT/other.lang index 7daf1c74056..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=Gestire un negozio con una cassa +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,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Seleziona un oggetto per visualizzarne le statist ConfirmBtnCommonContent = Sei sicuro di voler "%s"? ConfirmBtnCommonTitle = Conferma la tua azione CloseDialog = Chiudere +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/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/projects.lang b/htdocs/langs/it_IT/projects.lang index 7d652db4c4b..b8a3c829254 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=Contatti del progetto +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 @@ -190,11 +190,12 @@ PlannedWorkload=Carico di lavoro previsto PlannedWorkloadShort=Carico di lavoro ProjectReferers=Elementi correlati ProjectMustBeValidatedFirst=I progetti devono prima essere validati +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 @@ -287,3 +288,9 @@ 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=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 diff --git a/htdocs/langs/it_IT/propal.lang b/htdocs/langs/it_IT/propal.lang index 76d2fa597ad..39f4064ad1b 100644 --- a/htdocs/langs/it_IT/propal.lang +++ b/htdocs/langs/it_IT/propal.lang @@ -54,6 +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 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? @@ -85,13 +86,26 @@ 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 -PrParentLine=Riga genitore proposta 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 diff --git a/htdocs/langs/it_IT/receiptprinter.lang b/htdocs/langs/it_IT/receiptprinter.lang index 49621049ddf..566f762bbbd 100644 --- a/htdocs/langs/it_IT/receiptprinter.lang +++ b/htdocs/langs/it_IT/receiptprinter.lang @@ -55,6 +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_PRINT_TEXT=Stampa il testo DateInvoiceWithTime=Data e ora della fattura YearInvoice=Anno della fattura diff --git a/htdocs/langs/it_IT/stocks.lang b/htdocs/langs/it_IT/stocks.lang index 4a1c3b32740..449ef8f72af 100644 --- a/htdocs/langs/it_IT/stocks.lang +++ b/htdocs/langs/it_IT/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=Inventari NewInventory=Nuovo inventario @@ -254,7 +254,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=Fill real quantity with expected quantity 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 +265,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 NoWarehouseDefinedForTerminal=Nessun magazzino definito per il 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=Impostazioni +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/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 c49e994ca10..db4e7f87e63 100644 --- a/htdocs/langs/it_IT/ticket.lang +++ b/htdocs/langs/it_IT/ticket.lang @@ -90,10 +90,10 @@ 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=Notifiche via email a -TicketEmailNotificationToHelp=Invia email di notifica a questo indirizzo +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 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 @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Il destinatario è vuoto. Nessuna TicketGoIntoContactTab=Please go into "Contacts" tab to select them TicketMessageMailIntro=Introduction TicketMessageMailIntroHelp=Questo testo viene aggiunto solo all'inizio dell'email e non verrà salvato -TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email -TicketMessageMailIntroText=Buongiorno,
    Abbiamo risposto alla sua richiesta. Messaggio:
    -TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket. +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=

    Sincerely,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Firma dell'email di risposta TicketMessageMailSignatureHelpAdmin=Questo testo verrà inserito dopo il messaggio di risposta TicketMessageHelp=Only this text will be saved in the message list on ticket card. @@ -238,9 +252,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 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. # # Logs @@ -268,8 +289,9 @@ 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=Puoi seguire l'avanzamento del ticket cliccando il link qui sopra +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=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. @@ -291,6 +313,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: 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/users.lang b/htdocs/langs/it_IT/users.lang index c836df7bd03..bc2975754e9 100644 --- a/htdocs/langs/it_IT/users.lang +++ b/htdocs/langs/it_IT/users.lang @@ -114,7 +114,7 @@ UserLogoff=Logout utente UserLogged=Utente connesso DateOfEmployment=Data di assunzione DateEmployment=Dipendente -DateEmploymentstart=Data di assunzione +DateEmploymentStart=Data di assunzione DateEmploymentEnd=Data di fine rapporto lavorativo RangeOfLoginValidity=Intervallo di validità accesso CantDisableYourself=You can't disable your own user record @@ -124,3 +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=Data ultimo accesso +DatePreviousLogin=Data di accesso precedente +IPLastLogin=IP ultimo accesso +IPPreviousLogin=IP di accesso precedente diff --git a/htdocs/langs/it_IT/withdrawals.lang b/htdocs/langs/it_IT/withdrawals.lang index 9792251ccbe..2d6a6b05113 100644 --- a/htdocs/langs/it_IT/withdrawals.lang +++ b/htdocs/langs/it_IT/withdrawals.lang @@ -31,6 +31,7 @@ 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. ResponsibleUser=User Responsible @@ -136,6 +137,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 +156,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/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index 28d5b7f9cc6..8eb9dd0b0cd 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -20,74 +20,75 @@ ProductForThisThirdparty=この取引先向けの製品 ServiceForThisThirdparty=この取引先向けのサービス CantSuggest=提案できない AccountancySetupDoneFromAccountancyMenu=会計のほとんどの設定はメニュー%sから行われる -ConfigAccountingExpert=モジュールアカウンティングの構成(複式簿記) +ConfigAccountingExpert=会計モジュールの構成(複式簿記) Journalization=仕訳帳化 Journals=仕訳日記帳 JournalFinancial=財務仕訳帳 BackToChartofaccounts=Return chart of accounts Chartofaccounts=勘定科目表 -ChartOfSubaccounts=個別勘定科目表 -ChartOfIndividualAccountsOfSubsidiaryLedger=補助元帳の個別勘定科目表 +ChartOfSubaccounts=補助勘定科目表 +ChartOfIndividualAccountsOfSubsidiaryLedger=補助元帳の補助勘定科目表 CurrentDedicatedAccountingAccount=現在の専用科目 AssignDedicatedAccountingAccount=割り当てる新規科目 InvoiceLabel=請求書ラベル -OverviewOfAmountOfLinesNotBound=会計科目にバインドされていない行数の概要 -OverviewOfAmountOfLinesBound=すでに会計科目にバインドされている行数の概要 +OverviewOfAmountOfLinesNotBound=勘定科目に結合されていない行数の概要 +OverviewOfAmountOfLinesBound=既に勘定科目に結合されている行数の概要 OtherInfo=他の情報 -DeleteCptCategory=グループから会計科目を削除する -ConfirmDeleteCptCategory=この会計科目を会計科目グループから削除してもよいか? +DeleteCptCategory=グループから勘定科目を削除する +ConfirmDeleteCptCategory=この勘定科目を勘定科目グループから削除してもよいか? JournalizationInLedgerStatus=仕訳帳化の状況 -AlreadyInGeneralLedger=すでに会計仕訳帳と元帳に転送されている -NotYetInGeneralLedger=まだ会計仕訳帳と元帳に転送されていない -GroupIsEmptyCheckSetup=グループが空。パーソナライズされたアカウンティンググループの設定を確認すること +AlreadyInGeneralLedger=既に会計仕訳日記帳と元帳に転記済 +NotYetInGeneralLedger=まだ会計仕訳日記帳と元帳に未転記 +GroupIsEmptyCheckSetup=グループが空。パーソナライズされた会計グループの設定を確認すること DetailByAccount=科目ごとに詳細を表示 AccountWithNonZeroValues=ゼロ以外の値の科目 ListOfAccounts=勘定科目一覧 CountriesInEEC=EECの国 CountriesNotInEEC=EECにない国 CountriesInEECExceptMe=%sを除くEECの国 -CountriesExceptMe=%sを除くすべての国 +CountriesExceptMe=%sを除く全国 AccountantFiles=ソースドキュメントのエクスポート -ExportAccountingSourceDocHelp=このツールで、会計処理を生成するために使用されるソースイベント(CSVおよびPDFのリスト)をエクスポートできる。 -ExportAccountingSourceDocHelp2=ジャーナルをエクスポートするには、メニューエントリ%s --%sを使用。 -VueByAccountAccounting=会計科目順に表示 -VueBySubAccountAccounting=アカウンティングサブアカウントで表示 +ExportAccountingSourceDocHelp=このツールを使用すると、アカウンティを生成するために使用されるソースイベントを検索およびエクスポートできる。
    エクスポートされたZIPファイルには、CSVで要求されたアイテムのリストと、元の形式(PDF、ODT、DOCX ...)の添付ファイルが含まれる。 +ExportAccountingSourceDocHelp2=仕訳日記帳をエクスポートするには、メニューエントリ%s --%sを使用。 +ExportAccountingProjectHelp=特定のプロジェクトについてのみアカウンティングレポートが必要な場合は、プロジェクトを指定する。経費報告書とローン支払いはプロジェクト報告書に含まれていない。 +VueByAccountAccounting=勘定科目順に表示 +VueBySubAccountAccounting=会計補助勘定科目で表示 -MainAccountForCustomersNotDefined=設定で定義されていない顧客のメインアカウンティング科目 -MainAccountForSuppliersNotDefined=設定で定義されていないベンダーのメインアカウンティング科目 -MainAccountForUsersNotDefined=設定で定義されていないユーザーのメインアカウンティング科目 -MainAccountForVatPaymentNotDefined=設定で定義されていないVAT支払いのメインアカウンティング科目 -MainAccountForSubscriptionPaymentNotDefined=設定で定義されていないサブスクリプション支払いのメインアカウンティング科目 +MainAccountForCustomersNotDefined=設定で定義されていない顧客のメイン勘定科目 +MainAccountForSuppliersNotDefined=設定で定義されていないベンダーのメイン勘定科目 +MainAccountForUsersNotDefined=設定で定義されていないユーザのメイン勘定科目 +MainAccountForVatPaymentNotDefined=設定で定義されていないVAT支払のメイン勘定科目 +MainAccountForSubscriptionPaymentNotDefined=設定で定義されていないサブスクリプション支払のメイン勘定科目 AccountancyArea=経理エリア AccountancyAreaDescIntro=会計モジュールの使用は、いくつかのステップで行われる。 AccountancyAreaDescActionOnce=次のアクションは通常、1回だけ、または1年に1回実行される。 -AccountancyAreaDescActionOnceBis=次のステップは、仕訳帳化を行うときに正しいデフォルトの会計科目を提案することにより、将来の時間を節約するために実行する必要がある(仕訳帳および総勘定元帳にレコードを書き込む) +AccountancyAreaDescActionOnceBis=経理でデータ転送するときに自動的に正しいデフォルトの勘定科目を提案することで将来の時間を節約できるよう、次のステップを実行する必要がある AccountancyAreaDescActionFreq=次のアクションは通常、非常に大規模な企業の場合、毎月、毎週、または毎日実行される。 -AccountancyAreaDescJournalSetup=ステップ%s:メニュー%sから仕訳帳リストのコンテンツを作成または確認する +AccountancyAreaDescJournalSetup=ステップ%s: メニュー%sから仕訳リストの内容を確認する AccountancyAreaDescChartModel=ステップ%s:勘定科目表のモデルが存在することを確認するか、メニュー%sからモデルを作成する。 AccountancyAreaDescChart=ステップ%s:メニュー%sから勘定科目表を選択および|または完成させる -AccountancyAreaDescVat=ステップ%s:各VAT率の会計科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescDefault=ステップ%s:デフォルトの会計科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescExpenseReport=ステップ%s:経費報告書の種別ごとにデフォルトの会計科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescSal=ステップ%s:給与支払いのデフォルトの会計科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescContrib=ステップ%s:特別経費(雑税)のデフォルトの会計科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescDonation=ステップ%s:寄付のデフォルトの会計科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescSubscription=ステップ%s:メンバーサブスクリプションのデフォルトのアカウンティング科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescMisc=ステップ%s:その他のトランザクションの必須のデフォルト科目とデフォルトのアカウンティング科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescLoan=ステップ%s:ローンのデフォルトの会計科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescVat=ステップ%s:各VAT率の勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescDefault=ステップ%s:デフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescExpenseReport=ステップ%s: 経費報告書のタイプごとにデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescSal=ステップ%s:給与支払のデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescContrib=ステップ%s: 税金(特別経費)のデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescDonation=ステップ%s:寄付のデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescSubscription=ステップ%s:構成員サブスクリプションのデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescMisc=ステップ%s:その他のトランザクションの必須のデフォルト科目とデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescLoan=ステップ%s:ローンのデフォルトの勘定科目を定義する。これには、メニューエントリ%sを使用する。 AccountancyAreaDescBank=ステップ%s:各銀行および金融口座の会計口座と仕訳コードを定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescProd=ステップ%s:製品/サービスの会計科目を定義する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescProd=ステップ%s: 製品/サービスの勘定科目を定義する。これには、メニューエントリ%sを使用する。 -AccountancyAreaDescBind=ステップ%s:既存の%s行と会計科目の間の紐付けが完了していることを確認する。これにより、アプリケーションはワンクリックで元帳のトランザクションを仕訳できるようになる。不足している紐付を完了する。これには、メニューエントリ%sを使用する。 +AccountancyAreaDescBind=ステップ%s:既存の%s行と勘定科目の間の結合が完了していることを確認する。これにより、アプリケーションはワンクリックで元帳のトランザクションを仕訳できるようになる。不足している結合を完了する。これには、メニューエントリ%sを使用する。 AccountancyAreaDescWriteRecords=ステップ%s:元帳にトランザクションを書き込む。これを行うには、メニュー %s に移動し、ボタン%sをクリックする。 AccountancyAreaDescAnalyze=ステップ%s:既存のトランザクションを追加または編集し、報告書sとエクスポートを生成する。 AccountancyAreaDescClosePeriod=ステップ%s:期間を閉じて、将来変更できないようにする。 -TheJournalCodeIsNotDefinedOnSomeBankAccount=設定の必須ステップが完了していない(すべての銀行口座に対して会計コード仕訳帳が定義されていない) +TheJournalCodeIsNotDefinedOnSomeBankAccount=設定の必須ステップが完了していない(全銀行口座に対して会計コード仕訳帳が定義されていない) Selectchartofaccounts=アクティブな勘定科目表を選択する ChangeAndLoad=変更してロード Addanaccount=勘定科目を追加 @@ -109,93 +110,96 @@ MenuLoanAccounts=借入金科目 MenuProductsAccounts=製品科目 MenuClosureAccounts=閉鎖口座 MenuAccountancyClosure=閉鎖 -MenuAccountancyValidationMovements=動きを検証する +MenuAccountancyValidationMovements=動きを検証 ProductsBinding=製品科目 -TransferInAccounting=会計の転送 -RegistrationInAccounting=会計への登録 -Binding=科目への紐付け -CustomersVentilation=顧客の請求書の紐付け -SuppliersVentilation=ベンダーの請求書の紐付け -ExpenseReportsVentilation=経費報告書の製本 +TransferInAccounting=会計での移動 +RegistrationInAccounting=会計での記録 +Binding=勘定科目への結合 +CustomersVentilation=顧客の請求書の結合 +SuppliersVentilation=ベンダーの請求書の結合 +ExpenseReportsVentilation=経費報告書の結合 CreateMvts=新規トランザクションを作成する UpdateMvts=トランザクションの変更 -ValidTransaction=トランザクションを検証する -WriteBookKeeping=会計に取引を登録する +ValidTransaction=トランザクションを検証 +WriteBookKeeping=会計での取引の記録 Bookkeeping=元帳 BookkeepingSubAccount=補助元帳 AccountBalance=勘定残高 ObjectsRef=ソースオブジェクト参照 CAHTF=税引前の合計購入ベンダー TotalExpenseReport=総経費報告書 -InvoiceLines=紐付けする請求書の行 +InvoiceLines=結合する請求書の行 InvoiceLinesDone=請求書の境界線 -ExpenseReportLines=紐付けする経費報告書sの行 +ExpenseReportLines=結合する経費報告書sの行 ExpenseReportLinesDone=経費報告書sの境界線 -IntoAccount=会計科目との紐付け行 -TotalForAccount=総会計勘定 +IntoAccount=勘定科目との結合行 +TotalForAccount=合計勘定科目 -Ventilate=紐付 +Ventilate=結合 LineId=IDライン Processing=Processing EndProcessing=プロセスが終了した。 SelectedLines=Selected lines Lineofinvoice=Line of invoice LineOfExpenseReport=経費報告書 -NoAccountSelected=会計科目が選択されていない -VentilatedinAccount=会計科目に正常に紐付けされた -NotVentilatedinAccount=会計科目にバインドされていない -XLineSuccessfullyBinded=%s製品/サービスがアカウンティング科目に正常にバインドされた -XLineFailedToBeBinded=%s製品/サービスはどの会計科目にもバインドされていない +NoAccountSelected=勘定科目が選択されていない +VentilatedinAccount=勘定科目に正常に結合された +NotVentilatedinAccount=勘定科目に結合されていない +XLineSuccessfullyBinded=%s製品/サービスが勘定科目に正常に結合された +XLineFailedToBeBinded=%s製品/サービスはどの勘定科目にも結合されていない -ACCOUNTING_LIMIT_LIST_VENTILATION=リストおよびバインドページの最大行数(推奨:50) +ACCOUNTING_LIMIT_LIST_VENTILATION=リストおよび結合ページの最大行数(推奨:50) ACCOUNTING_LIST_SORT_VENTILATION_TODO=「Bindingtodo」ページの最新の要素による並べ替えを開始する -ACCOUNTING_LIST_SORT_VENTILATION_DONE=「製本完了」ページの最新の要素による並べ替えを開始する +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_MANAGE_ZERO=会計科目の最後に異なる数のゼロを管理できるようにする。一部の国(スイスなど)で必要。オフ(デフォルト)に設定すると、次の2つのパラメーターを設定して、アプリケーションに仮想ゼロを追加するように要求できる。 +ACCOUNTING_LENGTH_GACCOUNT=一般勘定科目の長さ(ここで値を6に設定すると、勘定科目「706」は画面に「706000」のように表示される) +ACCOUNTING_LENGTH_AACCOUNT=取引先の勘定科目の長さ(ここで値を6に設定すると、科目「401」は画面に「401000」のように表示される) +ACCOUNTING_MANAGE_ZERO=勘定科目の最後に異なる数のゼロを管理できるようにする。一部の国(スイスなど)で必要。オフ(デフォルト)に設定すると、次の2つのパラメーターを設定して、アプリケーションに仮想ゼロを追加するように要求できる。 BANK_DISABLE_DIRECT_INPUT=銀行口座での取引の直接記録を無効にする 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=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal -ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_SELL_JOURNAL=販売仕訳帳 +ACCOUNTING_PURCHASE_JOURNAL=購買仕訳帳 +ACCOUNTING_MISCELLANEOUS_JOURNAL=その他仕訳帳 +ACCOUNTING_EXPENSEREPORT_JOURNAL=経費報告仕訳帳 +ACCOUNTING_SOCIAL_JOURNAL=交際費仕訳帳 ACCOUNTING_HAS_NEW_JOURNAL=新規仕訳帳がある -ACCOUNTING_RESULT_PROFIT=結果会計科目(利益) -ACCOUNTING_RESULT_LOSS=結果会計科目(損失) +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=顧客預金を登録するためのデフォルトの会計科目 +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域内で購入した製品のデフォルト勘定科目(製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=購入品で、EEC域外から輸入された製品のデフォルト勘定科目(製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=販売された製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=EECで販売された製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=EECから販売およびエクスポートされた製品のデフォルトの勘定科目(製品シートで定義されていない場合に使用) -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で購入したサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=購入したサービスおよびEECからインポートされたサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=販売されたサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) +ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=EECで販売されるサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) +ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=EECから販売およびエクスポートされたサービスのデフォルトの勘定科目(サービスシートで定義されていない場合に使用) Doctype=ドキュメントの種別 Docdate=日付 @@ -203,7 +207,7 @@ Docref=参照 LabelAccount=ラベル科目 LabelOperation=ラベル操作 Sens=方向 -AccountingDirectionHelp=顧客の勘定科目の場合、貸方を使用して受取った支払いを記録する。
    仕入先の勘定科目の場合、借方を使用して実行した支払いを記録する。 +AccountingDirectionHelp=顧客の勘定科目の場合、貸方を使用して受取った支払を記録する。
    仕入先の勘定科目の場合、借方を使用して実行した支払を記録する。 LetteringCode=レタリングコード Lettering=レタリング Codejournal=仕訳帳 @@ -213,22 +217,22 @@ TransactionNumShort=数トランザクション AccountingCategory=カスタムグループ GroupByAccountAccounting=総勘定元帳勘定によるグループ化 GroupBySubAccountAccounting=補助元帳アカウントでグループ化 -AccountingAccountGroupsDesc=ここで、会計科目のいくつかのグループを定義できる。それらは、パーソナライズされた会計報告書sに使用される。 +AccountingAccountGroupsDesc=ここで、勘定科目のいくつかのグループを定義できる。それらは、パーソナライズされた会計報告書sに使用される。 ByAccounts=科目別 ByPredefinedAccountGroups=事前定義されたグループによる ByPersonalizedAccountGroups=パーソナライズされたグループによる ByYear=年度別 NotMatch=設定されていない -DeleteMvt=アカウンティングからいくつかの操作行を削除する +DeleteMvt=会計からいくつかの行を削除する DelMonth=削除する月 DelYear=削除する年 DelJournal=削除する仕訳帳 -ConfirmDeleteMvt=これにより、年/月および/または特定の仕訳帳の会計のすべての操作行が削除される(少なくとも1つの基準が必要 )。削除されたレコードを元帳に戻すには、機能「%s」を再利用する必要がある。 -ConfirmDeleteMvtPartial=これにより、トランザクションがアカウンティングから削除される(同じトランザクションに関連するすべての操作ラインが削除される) +ConfirmDeleteMvt=これにより、年/月および/または特定の仕訳の会計の全行が削除される(少なくとも1つの基準が必要 )。削除されたレコードを元帳に戻すには、機能「%s」を再利用する必要がある。 +ConfirmDeleteMvtPartial=これにより、トランザクションが会計から削除される(同じトランザクションに関連する全行が削除される) FinanceJournal=財務仕訳帳 ExpenseReportsJournal=経費報告仕訳帳 -DescFinanceJournal=銀行口座による全種別の支払いを含む財務仕訳帳 -DescJournalOnlyBindedVisible=これは、会計科目にバインドされ、仕訳帳と元帳に記録できるレコードのビュー。 +DescFinanceJournal=銀行口座による全種別の支払を含む財務仕訳帳 +DescJournalOnlyBindedVisible=これは、勘定科目に結合され、仕訳帳と元帳に記録できるレコードのビュー。 VATAccountNotDefined=VATの科目が定義されていない ThirdpartyAccountNotDefined=定義されていない取引先の科目 ProductAccountNotDefined=定義されていない製品の科目 @@ -240,74 +244,75 @@ NewAccountingMvt=新規トランザクション NumMvts=取引の番号 ListeMvts=動きのリスト ErrorDebitCredit=Debit and Credit cannot have a value at the same time -AddCompteFromBK=グループに会計科目を追加する +AddCompteFromBK=グループに勘定科目を追加する ReportThirdParty=取引先科目を一覧表示する -DescThirdPartyReport=取引先の顧客とベンダー、およびそれらの会計科目のリストをここで参照すること -ListAccounts=会計科目のリスト +DescThirdPartyReport=取引先の顧客とベンダー、およびそれらの勘定科目のリストをここで参照すること +ListAccounts=勘定科目のリスト UnknownAccountForThirdparty=不明な取引先科目。 %sを使用する UnknownAccountForThirdpartyBlocking=不明な取引先科目。ブロッキングエラー ThirdpartyAccountNotDefinedOrThirdPartyUnknown=補助元帳勘定が定義されていないか、取引先またはユーザが不明。 %sを使用する -ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=第三者が不明で、補助元帳が支払いに定義されていない。補助元帳勘定の値は空のままにする。 +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=第三者が不明で、補助元帳が支払に定義されていない。補助元帳勘定の値は空のままにする。 ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=補助元帳勘定が定義されていないか、取引先またはユーザが不明。ブロッキングエラー。 UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=不明な取引先科目と待機中の科目が定義されていない。ブロッキングエラー -PaymentsNotLinkedToProduct=支払いはどの製品/サービスにもリンクされていない +PaymentsNotLinkedToProduct=支払はどの製品/サービスにもリンクされていない OpeningBalance=期首残高 ShowOpeningBalance=期首残高を表示する HideOpeningBalance=期首残高を非表示にする ShowSubtotalByGroup=レベルごとに小計を表示 Pcgtype=勘定科目のグループ -PcgtypeDesc=科目のグループは、一部のアカウンティング報告書sの事前定義された「フィルタ」および「グループ化」基準として使用される。たとえば、「INCOME」または「EXPENSE」は、費用/収入報告書sを作成するための製品の会計科目のグループとして使用される。 +PcgtypeDesc=科目のグループは、一部の会計報告書sの事前定義された「フィルタ」および「グループ化」基準として使用される。たとえば、「INCOME」または「EXPENSE」は、費用/収入報告書sを作成するための製品の勘定科目のグループとして使用される。 Reconcilable=調整可能 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=経費報告書sの行とその手数料会計科目のリストをここで参照すること +DescVentilSupplier=ここで参照するのは仕入先請求書明細のリストで、それは製品会計勘定科目に引当済または未済のもの(会計でまだ転記されていないレコードのみが表示される) +DescVentilDoneSupplier=ベンダーの請求書の行とその勘定科目のリストをここで参照すること +DescVentilTodoExpenseReport=まだ料金勘定科目に結合されていない経費報告書行を結合する +DescVentilExpenseReport=手数料勘定科目に結合されている(または結合されていない)経費報告行のリストをここで参照すること +DescVentilExpenseReportMore=経費報告行の種別で勘定科目を設定すると、アプリケーションは、ボタン "%s" をワンクリックするだけで、経費報告行と勘定科目表の勘定科目の間の全結合を行うことができる。勘定科目が料金辞書に設定されていない場合、または勘定科目に結合されていない行がまだある場合は、メニュー「%s」から手動で結合する必要がある。 +DescVentilDoneExpenseReport=経費報告書sの行とその手数料勘定科目のリストをここで参照すること Closure=年次閉鎖 -DescClosure=検証されていない月ごとの動きの数とすでに開いている会計年度をここで参照すること -OverviewOfMovementsNotValidated=ステップ1 /検証されていない動きの概要。 (決算期に必要) -AllMovementsWereRecordedAsValidated=すべての動きは検証済として記録された -NotAllMovementsCouldBeRecordedAsValidated=すべての動きを検証済として記録できるわけではない -ValidateMovements=動きを検証する -DescValidateMovements=書き込み、レタリング、削除の変更または削除は禁止される。演習のすべてのエントリを検証する必要がある。検証しないと、閉じることができない。 +DescClosure=まだ検証されておらずロックされていない月ごとの動きの数はこちらを参照すること +OverviewOfMovementsNotValidated=検証およびロックされていない動きの概要 +AllMovementsWereRecordedAsValidated=全動きは検証され、ロックされたものとして記録された +NotAllMovementsCouldBeRecordedAsValidated=全動きを検証済みおよびロック済みとして記録できるわけではない +ValidateMovements=レコードを検証してロックする... +DescValidateMovements=書き込み、レタリング、削除の変更または削除は禁止される。演習の全エントリが要検証済。検証済でないと、閉じることができない。 -ValidateHistory=自動的に紐付け -AutomaticBindingDone=自動バインドが実行された(%s)-一部のレコードでは自動バインド不可(%s) +ValidateHistory=自動的に結合 +AutomaticBindingDone=自動結合が実行された(%s)-一部のレコードでは自動結合不可(%s) ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=動きのバランスが正しくない。借方= %s |クレジット= %s +MvtNotCorrectlyBalanced=動きのバランスが正しくない。借方=%s&貸方= %s Balancing=バランシング -FicheVentilation=製本カード +FicheVentilation=結合カード GeneralLedgerIsWritten=トランザクションは元帳に書き込まれる -GeneralLedgerSomeRecordWasNotRecorded=一部のトランザクションは仕訳帳化できないでした。他にエラーメッセージがない場合は、すでに仕訳帳化されている可能性がある。 -NoNewRecordSaved=仕訳帳化するレコードはもうない -ListOfProductsWithoutAccountingAccount=会計科目にバインドされていない製品のリスト -ChangeBinding=紐付を変更する +GeneralLedgerSomeRecordWasNotRecorded=一部のトランザクションは仕訳帳化できない。他にエラーメッセージがない場合は、既に仕訳帳化されている可能性がある。 +NoNewRecordSaved=転送するレコードはもうない +ListOfProductsWithoutAccountingAccount=勘定科目に結合されていない製品のリスト +ChangeBinding=結合を変更する Accounted=元帳に計上 NotYetAccounted=まだ経理に回していない ShowTutorial=チュートリアルを表示 NotReconciled=調整されていない -WarningRecordWithoutSubledgerAreExcluded=警告、補助元帳アカウントが定義されていないすべての操作はフィルタリングされ、このビューから除外される +WarningRecordWithoutSubledgerAreExcluded=警告、補助元帳アカウントが定義されていない全行はフィルタリングされ、このビューから除外される +AccountRemovedFromCurrentChartOfAccount=現在の勘定科目表に存在しない会計勘定 ## Admin -BindingOptions=製本オプション +BindingOptions=結合オプション ApplyMassCategories=マスカテゴリを適用する AddAccountFromBookKeepingWithNoCategories=パーソナライズされたグループにまだない利用可能な科目 -CategoryDeleted=会計科目のカテゴリが削除された +CategoryDeleted=勘定科目のカテゴリが削除された AccountingJournals=会計仕訳帳 AccountingJournal=会計仕訳 NewAccountingJournal=新規会計仕訳 @@ -320,17 +325,18 @@ AccountingJournalType4=バンク AccountingJournalType5=経費報告書 AccountingJournalType8=目録 AccountingJournalType9=持っている-新規 -ErrorAccountingJournalIsAlreadyUse=この仕訳帳はすでに使用されている -AccountingAccountForSalesTaxAreDefinedInto=注:消費税の会計科目は、メニュー %s -- %sに定義されている。 +ErrorAccountingJournalIsAlreadyUse=この仕訳帳は既に使用されている +AccountingAccountForSalesTaxAreDefinedInto=注:消費税の勘定科目は、メニュー %s -- %sに定義されている。 NumberOfAccountancyEntries=エントリー数 NumberOfAccountancyMovements=楽章の数 -ACCOUNTING_DISABLE_BINDING_ON_SALES=販売の会計における紐付け力と移転を無効にする(顧客の請求書は会計に考慮されない) -ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=購入時の会計における紐付け力と移転を無効にする(ベンダーの請求書は会計で考慮されない) -ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=経費報告書sの会計における紐付け力と移転を無効にする(経費報告書sは会計で考慮されない) +ACCOUNTING_DISABLE_BINDING_ON_SALES=販売の会計における結合と転記を無効にする(顧客の請求書は会計に考慮されない) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=購入時の会計における結合と転記を無効にする(ベンダーの請求書は会計で考慮されない) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=経費報告書sの会計における結合と転記を無効にする(経費報告書sは会計で考慮されない) ## Export -NotifiedExportDate=エクスポートされた行にエクスポート済みのフラグを付ける(行の変更はできない) -NotifiedValidationDate=エクスポートされたエントリを検証する(行の変更または削除はできない) +NotifiedExportDate=エクスポートされた行にエクスポート済みのフラグを付ける(行を変更するには、トランザクション全体を削除して、会計に再転送する必要がある) +NotifiedValidationDate=エクスポートされたエントリを検証してロックする(「%s」機能と同じ効果、行の変更と削除は絶対に不可) +DateValidationAndLock=日付の検証とロック ConfirmExportFile=会計エクスポートファイルの生成を確定するか? ExportDraftJournal=下書き仕訳帳のエクスポート Modelcsv=エクスポートのモデル @@ -359,8 +365,8 @@ ChartofaccountsId=勘定科目表ID ## Tools - Init accounting account on product / service InitAccountancy=初期会計 -InitAccountancyDesc=このページを使用して、販売および購入用に定義された会計科目がない製品およびサービスの会計科目を初期化できる。 -DefaultBindingDesc=このページを使用して、特定の会計科目がまだ設定されていない場合に、支払い給与、寄付、税金、および付加価値税に関するトランザクションレコードをリンクするために使用するデフォルトの科目を設定できる。 +InitAccountancyDesc=このページを使用して、販売および購入用に定義された勘定科目がない製品およびサービスの勘定科目を初期化できる。 +DefaultBindingDesc=このページを使用して、特定の勘定科目がまだ設定されていない場合に、支払給与、寄付、税金、および付加価値税に関するトランザクションレコードをリンクするために使用するデフォルトの科目を設定できる。 DefaultClosureDesc=このページは、会計上の閉鎖に使用されるパラメーターを設定するために使用できる。 Options=オプション OptionModeProductSell=モード販売 @@ -369,49 +375,68 @@ OptionModeProductSellExport=他の国にエクスポートされたモード販 OptionModeProductBuy=モード購入 OptionModeProductBuyIntra=EECにインポートされたモード購入 OptionModeProductBuyExport=他の国から輸入して購入したモード -OptionModeProductSellDesc=販売の会計科目を持つすべての製品を表示する。 -OptionModeProductSellIntraDesc=EECでの販売の会計科目を持つすべての製品を表示する。 -OptionModeProductSellExportDesc=その他の海外販売の会計科目を持つすべての製品を表示する。 -OptionModeProductBuyDesc=購入の会計科目を持つすべての製品を表示する。 -OptionModeProductBuyIntraDesc=EECでの購入の会計科目を持つすべての製品を表示する。 -OptionModeProductBuyExportDesc=他の海外購入の会計科目を持つすべての製品を表示する。 +OptionModeProductSellDesc=販売の勘定科目を持つ全製品を表示する。 +OptionModeProductSellIntraDesc=EECでの販売の勘定科目を持つ全製品を表示する。 +OptionModeProductSellExportDesc=その他の海外販売の勘定科目を持つ全製品を表示する。 +OptionModeProductBuyDesc=購入の勘定科目を持つ全製品を表示する。 +OptionModeProductBuyIntraDesc=EECでの購入の勘定科目を持つ全製品を表示する。 +OptionModeProductBuyExportDesc=他の海外購入の勘定科目を持つ全製品を表示する。 CleanFixHistory=勘定科目表に存在しない線から会計コードを削除する -CleanHistory=選択した年のすべての紐付をリセットする +CleanHistory=選択した年の全結合をリセットする PredefinedGroups=事前定義されたグループ WithoutValidAccount=有効な専用科目なし WithValidAccount=有効な専用科目で -ValueNotIntoChartOfAccount=会計科目のこの値は勘定科目表に存在しない +ValueNotIntoChartOfAccount=勘定科目のこの値は勘定科目表に存在しない AccountRemovedFromGroup=科目がグループから削除された SaleLocal=ローカルセール SaleExport=エクスポート販売 SaleEEC=EECでの販売 SaleEECWithVAT=VATがnullではないEECでの販売。したがって、これは域内販売ではなく、提案された科目は標準の製品科目であると想定する。 SaleEECWithoutVATNumber=VATなしのEECでの販売 が、取引先のVATIDは定義されていない。標準販売の製品科目にフォールバックする。必要に応じて、取引先または製品科目のVATIDを修正できる。 -ForbiddenTransactionAlreadyExported=禁止:トランザクションが検証済 かつ/または エクスポート済。 +ForbiddenTransactionAlreadyExported=禁止:トランザクションは検証済 かつ/または エクスポート済。 ForbiddenTransactionAlreadyValidated=禁止:トランザクションは検証済。 ## Dictionary -Range=会計科目の範囲 +Range=勘定科目の範囲 Calculated=計算済 Formula=式 +## Reconcile +Unlettering=和解しない +AccountancyNoLetteringModified=調整は変更されない +AccountancyOneLetteringModifiedSuccessfully=1つの調整が正常に変更された +AccountancyLetteringModifiedSuccessfully=%s調整が正常に変更された +AccountancyNoUnletteringModified=調整されていない変更はない +AccountancyOneUnletteringModifiedSuccessfully=1つの調整解除が正常に変更された +AccountancyUnletteringModifiedSuccessfully=%sunreconcileが正常に変更された + +## Confirm box +ConfirmMassUnlettering=一括調整解除確認 +ConfirmMassUnletteringQuestion=選択した%sレコード(s)の調整を解除してもよいか? +ConfirmMassDeleteBookkeepingWriting=一括削除確定 +ConfirmMassDeleteBookkeepingWritingQuestion=これにより、トランザクションが会計から削除される(同じトランザクションに関連する全行が削除される)。選択した%sレコード(s)を削除してもよいか? + ## Error -SomeMandatoryStepsOfSetupWereNotDone=設定のいくつかの必須の手順が実行されないでした。それらを完了すること -ErrorNoAccountingCategoryForThisCountry=国%sで使用できる会計科目グループがない( ホーム - 設定 - 辞書 を参照) -ErrorInvoiceContainsLinesNotYetBounded=請求書%s の一部の行を仕訳しようとしたが、他の一部の行はまだ会計科目にバインドされていない。この請求書のすべての請求書行の仕訳は拒否される。 -ErrorInvoiceContainsLinesNotYetBoundedShort=請求書の一部の行は、会計科目にバインドされていない。 +SomeMandatoryStepsOfSetupWereNotDone=設定のいくつかの必須の手順が実行されない。それらを完了すること +ErrorNoAccountingCategoryForThisCountry=国%sで使用できる勘定科目グループがない( ホーム - 設定 - 辞書 を参照) +ErrorInvoiceContainsLinesNotYetBounded=請求書%s の一部の行を仕訳しようとしたが、他の一部の行はまだ勘定科目に結合されていない。この請求書の全請求書行の仕訳は拒否される。 +ErrorInvoiceContainsLinesNotYetBoundedShort=請求書の一部の行は、勘定科目に結合されていない。 ExportNotSupported=設定されたエクスポート形式は、このページではサポートされていない -BookeppingLineAlreayExists=簿記にすでに存在する行 +BookeppingLineAlreayExists=簿記に既に存在する行 NoJournalDefined=仕訳帳が定義されていない Binded=境界線 -ToBind=紐付けする行 -UseMenuToSetBindindManualy=まだ紐付けされていない行。メニュー%s を使用して、手動で紐付けする。 +ToBind=結合する行 +UseMenuToSetBindindManualy=まだ結合されていない行。メニュー%s を使用して、手動で結合する。 SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=御免、このモジュールはシチュエーションインボイスの実験的機能と互換性がない +AccountancyErrorMismatchLetterCode=調整コードの不一致 +AccountancyErrorMismatchBalanceAmount=残高(%s)が0に等しくない +AccountancyErrorLetteringBookkeeping=トランザクションに関してエラーが発生しました:%s +ErrorAccountNumberAlreadyExists=会計番号%sはすでに存在する ## Import ImportAccountingEntries=会計仕訳 ImportAccountingEntriesFECFormat=会計項目 - FEC形式 -FECFormatJournalCode=コード 日記帳 (JournalCode) -FECFormatJournalLabel=ラベル 日記帳 (JournalLib) +FECFormatJournalCode=コード 仕訳帳 (JournalCode) +FECFormatJournalLabel=ラベル 仕訳帳 (JournalLib) FECFormatEntryNum=単体番号 (EcritureNum) FECFormatEntryDate=単体日付 (EcritureDate) FECFormatGeneralAccountNumber=一般勘定番号 (CompteNum) @@ -425,13 +450,13 @@ FECFormatDebit=借方 (Debit) FECFormatCredit=貸方(Credit) FECFormatReconcilableCode=調整可能なコード (EcritureLet) FECFormatReconcilableDate=調整可能日付 (DateLet) -FECFormatValidateDate=検証された単体日付 (ValidDate) +FECFormatValidateDate=検証済単体日付 (ValidDate) FECFormatMulticurrencyAmount=多通貨額 (Montantdevise) FECFormatMulticurrencyCode=他通貨 コード (Idevise) DateExport=日付のエクスポート WarningReportNotReliable=警告、この報告書は元帳に基づいていないため、元帳で手動で変更されたトランザクションは含まれていない。仕訳帳化が最新の場合、簿記ビューはより正確。 ExpenseReportJournal=経費報告仕訳帳 -InventoryJournal=目録日記帳 +InventoryJournal=目録仕訳帳 NAccounts=%sアカウント diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index 11803c0dc1a..8627254d779 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/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=出版社 @@ -31,8 +31,8 @@ SessionId=セッションID SessionSaveHandler=セッションを保存するためのハンドラ SessionSavePath=セッション保存位置 PurgeSessions=セッションのパージ -ConfirmPurgeSessions=本当にすべてのセッションを削除するか?これにより、すべてのユーザ ( 自分を除く ) が切断される。 -NoSessionListWithThisHandler=PHPで構成された保存セッションハンドラでは、すべての実行中セッションを一覧表示できない。 +ConfirmPurgeSessions=本当に全セッションを削除するか?これにより、全ユーザ ( 自分を除く ) が切断される。 +NoSessionListWithThisHandler=PHPで構成された保存セッションハンドラでは、全実行中セッションを一覧表示できない。 LockNewSessions=新規接続をロック ConfirmLockNewSessions=新規Dolibarr接続を自分自身に制限してもよいか?ユーザ %sのみが接続できることになる。 UnlockNewSessions=接続ロックを解除する @@ -49,13 +49,13 @@ HostCharset=ホストのキャラセット ClientCharset=クライアントのキャラセット ClientSortingCharset=クライアントの文字照合則 WarningModuleNotActive=モジュール%sを有効にする必要がある -WarningOnlyPermissionOfActivatedModules=ここには、活性化されたモジュールに関連する権限のみが表示される。ホーム->設定->モジュール ページで他のモジュールを活性化できる。 +WarningOnlyPermissionOfActivatedModules=ここには、有効化されたモジュールに関連する権限のみが表示される。ホーム->設定->モジュール ページで他のモジュールを有効化できる。 DolibarrSetup=Dolibarrインストールまたはアップグレード InternalUser=内部ユーザ ExternalUser=外部ユーザ InternalUsers=内部ユーザ ExternalUsers=外部ユーザ -UserInterface=ユーザーインターフェース +UserInterface=ユーザインターフェース GUISetup=表示 SetupArea=設定 UploadNewTemplate=新規テンプレート(s)をアップロード @@ -77,7 +77,7 @@ Dictionary=辞書 ErrorReservedTypeSystemSystemAuto=種別の値 ’system' および 'systemauto' は予約されている。 値 'user' は自分自身のレコード追加に使用可能 ErrorCodeCantContainZero=コード値に0は不可 DisableJavascript=JavaScriptとAjaxの機能を無効にする -DisableJavascriptNote=注:テストまたはデバッグの目的でのみ使用すること。目の不自由な人やテキストブラウザの最適化のために、ユーザーのプロファイルで設定を使用することを推奨 +DisableJavascriptNote=注:テストまたはデバッグの目的でのみ使用すること。目の不自由な人やテキストブラウザの最適化のために、ユーザのプロファイルで設定を使用することを推奨 UseSearchToSelectCompanyTooltip=また、取引先が多数 ( > 100 000 ) ある場合、【設定】-> 【その他】で定数 COMPANY_DONOTSEARCH_ANYWHERE を1に設定することで速度を上げることができる。その場合、検索は文字列の先頭に限定される。 UseSearchToSelectContactTooltip=また、取引先が多数 ( > 100 000 ) ある場合、【設定】-> 【その他】で定数 CONTACT_DONOTSEARCH_ANYWHERE を1に設定することで速度を上げることができる。その場合、検索は文字列の先頭に限定される。 DelaiedFullListToSelectCompany=キーが押されるまで待ち、取引先コンボリスト
    のコンテンツは後からロードする。これで、取引先が多数ある場合にパフォーマンス向上を見込めるが、やや利便性は劣る。 @@ -108,8 +108,8 @@ NextValueForDeposit=次の値 ( 頭金 ) NextValueForReplacements=次の値 ( 置換 ) MustBeLowerThanPHPLimit=注:現在、PHP構成では、このパラメーターの値に関係なく、アップロードの最大ファイルサイズが %s %sに制限されている。 NoMaxSizeByPHPLimit=注:お使いのPHP設定では無制限 -MaxSizeForUploadedFiles=アップロードファイルの最大サイズ ( 0 で、すべてのアップロード禁止 ) -UseCaptchaCode=ログインページで、グラフィカルコード ( CAPTCHA ) を使用して +MaxSizeForUploadedFiles=アップロードファイルの最大サイズ ( 0 で、全アップロード禁止 ) +UseCaptchaCode=ログインページと一部の公開ページでグラフィカルコード (CAPTCHA) を使用する AntiVirusCommand=アンチウイルスのコマンドへのフルパス AntiVirusCommandExample=ClamAvデーモンの例: ( clamav-daemonが必要 ) /usr/bin/clamdscan
    ClamWinの例: ( 非常に非常に遅い ) c:\\Program~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= コマンドラインで複数のパラメータ @@ -121,7 +121,7 @@ MenuLimits=限界と精度 MenuIdParent=親メニューのID DetailMenuIdParent=親メニューのID ( 上のメニューの場合は0 ) ParentID=親ID -DetailPosition=メニューの位置を定義するには、ソート番号 +DetailPosition=メニュー位置を定義するソート番号 AllMenus=すべて NotConfigured=モジュール/アプリが未設定 Active=アクティブ @@ -146,11 +146,11 @@ HoursOnThisPageAreOnServerTZ=警告、他の画面とは異なり、このペー Box=ウィジェット Boxes=ウィジェット MaxNbOfLinesForBoxes=ウィジェットsの最大行数 -AllWidgetsWereEnabled=使用可能なすべてのウィジェットsが有効 +AllWidgetsWereEnabled=使用可能な全ウィジェットsが有効 PositionByDefault=デフォルト順 Position=位置 MenusDesc=メニューマネージャは、2つのメニューバー ( 水平および垂直 ) のコンテンツを設定する。 -MenusEditorDesc=メニューエディタを使用すると、カスタムメニューエントリを定義できる。不安定で永久に到達できないメニューエントリを避けるために、慎重に使用すること。
    一部のモジュールはメニューエントリを追加する ( メニューのほとんどすべての ) 。これらのエントリの一部を誤って削除した場合は、モジュールの無効化と再有効化で復元できる。 +MenusEditorDesc=メニューエディタを使用すると、カスタムメニューエントリを定義できる。不安定で永久に到達できないメニューエントリを避けるために、慎重に使用すること。
    一部のモジュールはメニューエントリを追加する ( メニューのほとんど ) 。これらのエントリの一部を誤って削除した場合は、モジュールの無効化と再有効化で復元できる。 MenuForUsers=ユーザのためのメニュー LangFile=.lang ファイル Language_en_US_es_MX_etc=言語 (en_US, ja_JP, ...) @@ -159,17 +159,17 @@ SystemInfo=システム情報 SystemToolsArea=システムツールエリア SystemToolsAreaDesc=この領域は管理機能を提供する。メニューを使用して、必要な機能を選択する。 Purge=パージ -PurgeAreaDesc=このページでは、Dolibarrによって生成または保存されたすべてのファイル ( 一時ファイルまたは %s ディレクトリ内のすべてのファイル ) を削除できる。通常、この機能を使用する必要はない。これは、Webサーバーによって生成されたファイルを削除する権限を提供しないプロバイダーによってDolibarrがホストされているユーザの回避策として提供されている。 +PurgeAreaDesc=このページでは、Dolibarrによって生成または保存された全ファイル ( 一時ファイルまたは %s ディレクトリ内の全ファイル ) を削除できる。通常、この機能を使用する必要はない。これは、Webサーバーによって生成されたファイルを削除する権限を提供しないプロバイダーによってDolibarrがホストされているユーザの回避策として提供されている。 PurgeDeleteLogFile=Syslogモジュール用に定義された%s を含むログファイルを削除する ( データを失うリスクはない ) -PurgeDeleteTemporaryFiles=すべてのログファイルと一時ファイルを削除する(データを失うリスクはない)。パラメータは、'tempfilesold'、 'logfiles'、または両方の 'tempfilesold+logfiles' にすることができる。注:一時ファイルの削除は、一時ディレクトリが24時間以上前に作成された場合にのみ実行される。 -PurgeDeleteTemporaryFilesShort=ログと一時ファイルを削除します(データを失うリスクはありません) -PurgeDeleteAllFilesInDocumentsDir=ディレクトリ: %s 内のすべてのファイルを削除する。
    これにより、要素 ( 取引先、請求書など ) に関連する生成されたすべてのドキュメント、ECMモジュールにアップロードされたファイル、データベースのバックアップダンプ、および一時ファイルが削除される。 +PurgeDeleteTemporaryFiles=全ログファイルと一時ファイルを削除する(データを失うリスクはない)。パラメータは、'tempfilesold'、 'logfiles'、または両方の 'tempfilesold+logfiles' にすることができる。注:一時ファイルの削除は、一時ディレクトリが24時間以上前に作成された場合にのみ実行される。 +PurgeDeleteTemporaryFilesShort=ログと一時ファイルを削除する(データを失うリスクはない) +PurgeDeleteAllFilesInDocumentsDir=ディレクトリ: %s 内の全ファイルを削除する。
    これにより、要素 ( 取引先、請求書など ) に関連する生成された全ドキュメント、ECMモジュールにアップロードされたファイル、データベースのバックアップダンプ、および一時ファイルが削除される。 PurgeRunNow=今パージ PurgeNothingToDelete=削除するディレクトリやファイルはない。 PurgeNDirectoriesDeleted=%s ファイルまたはディレクトリが削除された。 PurgeNDirectoriesFailed= %sファイルまたはディレクトリの削除に失敗した。 -PurgeAuditEvents=すべてのセキュリティイベントをパージする -ConfirmPurgeAuditEvents=すべてのセキュリティイベントを削除してもよいか?すべてのセキュリティログが削除され、他のデータは削除されない。 +PurgeAuditEvents=全セキュリティイベントをパージする +ConfirmPurgeAuditEvents=全セキュリティイベントを削除してもよいか?全セキュリティログが削除され、他のデータは削除されない。 GenerateBackup=バックアップを生成 Backup=バックアップ Restore=リストア @@ -183,7 +183,7 @@ ImportMethod=インポート方法 ToBuildBackupFileClickHere=バックアップファイルを作成するには、ここクリックすること 。 ImportMySqlDesc=MySQLバックアップファイルをインポートするには、ホスティング経由でphpMyAdminを使用するか、コマンドラインからmysqlコマンドを使用する。
    例: ImportPostgreSqlDesc=バックアップファイルをインポートするには、コマンドラインからpg_restoreのコマンドを使用する必要がある。 -ImportMySqlCommand=%s %s <mybackupfile.sql +ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=バックアップのファイル名: Compression=圧縮 @@ -210,7 +210,7 @@ AutoDetectLang=自動検出 ( ブラウザの言語 ) FeatureDisabledInDemo=デモで機能を無効にする FeatureAvailableOnlyOnStable=公式の安定版でのみ利用可能な機能 BoxesDesc=ウィジェットは、一部のページをパーソナライズするために追加できる情報を表示するコンポーネント。ターゲットページを選択して 'Activate' をクリックするか、ゴミ箱をクリックしてウィジェットを無効にすることで、ウィジェットを表示するかどうかを選択できる。 -OnlyActiveElementsAreShown=から要素のみ対応のモジュールが表示される。 +OnlyActiveElementsAreShown=有効化済モジュールsの要素のみが表示される。 ModulesDesc=モジュール/アプリケーションは、ソフトウェアで使用できる機能を決定する。一部のモジュールでは、モジュールをアクティブ化した後、ユーザに権限を付与する必要がある。各モジュールのオン/オフボタン%s をクリックして、モジュール/アプリケーションを有効または無効にする。 ModulesDesc2=ホイールボタン%s をクリックして、モジュール/アプリケーションを構成する。 ModulesMarketPlaceDesc=インターネット上の外部Webサイトでダウンロードするモジュールをさらに見つけることができる... @@ -236,10 +236,10 @@ WebSiteDesc=その他のアドオン ( 非コア ) モジュールの外部Web DevelopYourModuleDesc=独自のモジュールを開発するためのいくつかのソリューション... URL=URL RelativeURL=相対URL -BoxesAvailable=利用可能なウィジェット -BoxesActivated=ウィジェットがアクティブ化されました -ActivateOn=でアクティブに -ActiveOn=でアクティブ化 +BoxesAvailable=利用可能ウィジェット +BoxesActivated=有効化済ウィジェット +ActivateOn=で有効化 +ActiveOn=で有効化済 ActivatableOn=でアクティブ化可能 SourceFile=ソースファイル AvailableOnlyIfJavascriptAndAjaxNotDisabled=JavaScriptが無効になっていない場合にのみ使用可能 @@ -247,12 +247,12 @@ Required=必須 UsedOnlyWithTypeOption=一部の議題オプションでのみ使用 Security=セキュリティー Passwords=パスワード -DoNotStoreClearPassword=データベースに保存されているパスワードを暗号化する ( プレーンテキストとしてではない ) 。このオプションを有効にすることを強くお勧めする。 -MainDbPasswordFileConfEncrypted=conf.phpに保存されているデータベースパスワードを暗号化する。このオプションを有効にすることを強くお勧めする。 +DoNotStoreClearPassword=データベースに保存されているパスワードを暗号化する ( プレーンテキストとしてではない ) 。このオプションを有効化することを強くお勧めする。 +MainDbPasswordFileConfEncrypted=conf.phpに保存されているデータベースパスワードを暗号化する。このオプションを有効化することを強くお勧めする。 InstrucToEncodePass=パスワードをconf.php ファイルにエンコードするには、行
    $ dolibarr_main_db_pass = "..."を置き換える。
    by
    $ dolibarr_main_db_pass = "crypted:%s"; InstrucToClearPass=パスワードをconf.php ファイルにデコード ( クリア ) するには、行
    $ dolibarr_main_db_pass = "crypted:...";を置き換える。
    by
    $ dolibarr_main_db_pass = "%s"; -ProtectAndEncryptPdfFiles=生成されたPDFファイルを保護する。大量のPDF生成が中断されるため、これはお勧めしません。 -ProtectAndEncryptPdfFilesDesc=PDFドキュメントを保護することで、PDFブラウザでの読み取りと印刷が可能になる。ただし、編集やコピーはできなくなった。この機能を使用すると、グローバルにマージされたPDFの作成が機能しなくなることに注意すること。 +ProtectAndEncryptPdfFiles=生成されたPDFファイルを保護する。大量のPDF生成が中断されるため、これはお勧めしない。 +ProtectAndEncryptPdfFilesDesc=PDFドキュメントを保護することで、PDFブラウザでの読取りと印刷が可能になる。ただし、編集やコピーはできなくなった。この機能を使用すると、グローバルにマージされたPDFの作成が機能しなくなることに注意すること。 Feature=機能 DolibarrLicense=ライセンス Developpers=開発者/貢献者 @@ -295,9 +295,9 @@ MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPSポート ( Unixライ MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPSホスト ( UnixライクなシステムではPHPに定義されていない ) MAIN_MAIL_EMAIL_FROM=自動メールの送信者メール ( php.iniのデフォルト値: %s ) MAIN_MAIL_ERRORS_TO=エラーに使用されたEメールはEメールを返する ( 送信されたEメールのフィールド「Errors-To」 ) -MAIN_MAIL_AUTOCOPY_TO= 送信されたすべてのメールをコピー ( Bcc ) -MAIN_DISABLE_ALL_MAILS=すべての電子メール送信を無効にする ( テスト目的またはデモ用 ) -MAIN_MAIL_FORCE_SENDTO=すべての電子メールを ( 実際の受信者ではなく、テスト目的で ) に送信する +MAIN_MAIL_AUTOCOPY_TO= 送信された全メールをコピー ( Bcc ) +MAIN_DISABLE_ALL_MAILS=全電子メール送信を無効にする ( テスト目的またはデモ用 ) +MAIN_MAIL_FORCE_SENDTO=全電子メールを ( 実際の受信者ではなく、テスト目的で ) に送信する MAIN_MAIL_ENABLED_USER_DEST_SELECT=新規電子メールを作成するときに、事前定義された受信者のリストに従業員の電子メール ( 定義されている場合 ) を提案する MAIN_MAIL_SENDMODE=メール送信方法 MAIN_MAIL_SMTPS_ID=SMTP ID ( 送信サーバーが認証を必要とする場合 ) @@ -309,10 +309,10 @@ 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=すべてのSMS送信を無効にする ( テスト目的またはデモ用 ) +MAIN_DISABLE_ALL_SMS=全SMS送信を無効にする ( テスト目的またはデモ用 ) MAIN_SMS_SENDMODE=SMSを送信するために使用する方法 MAIN_MAIL_SMS_FROM=SMS送信のデフォルトの送信者電話番号 -MAIN_MAIL_DEFAULT_FROMTYPE=手動送信のデフォルトの送信者Eメール ( ユーザEメールまたは法人Eメール ) +MAIN_MAIL_DEFAULT_FROMTYPE=手動送信のデフォルトの送信者メール ( ユーザメールまたは法人メール ) UserEmail=ユーザのメール CompanyEmail=法人のメール FeatureNotAvailableOnLinux=システムと同様にUnix上では使用できないが備わっている。ローカルでsendmailプログラムをテストする。 @@ -358,10 +358,10 @@ LastActivationIP=最新のアクティベーションIP LastActivationVersion=最新のアクティベーションバージョン UpdateServerOffline=サーバーをオフラインで更新する 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} 1,2,4桁の年
    +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} 1,2,4桁の年
    GenericMaskCodes2= {cccc} n文字のクライアントコード
    {cccc000} n文字のクライアントコードの後に顧客専用カウンタが続く。顧客専用カウンタと、グローバルカウンタは、同時にリセットされる。
    {tttt} n文字の取引先タイプのコード(メニュー 【ホーム】-【設定】-【辞書】-【取引先のタイプ】を参照)。このタグを追加すると、取引先の種類ごとにカウンタが異なる。
    -GenericMaskCodes3=マスク内の他のすべての文字はそのまま残る。
    スペースは許可されていない。
    -GenericMaskCodes3EAN=マスク内の他のすべての文字はそのまま残る(EAN13の13番目の位置にある*または?を除く)。
    スペースは許可されていない。
    EAN13では、最後の}の後の13番目の位置は*または? のみで、計算されたキーに置き換えられる。
    +GenericMaskCodes3=マスク内の他の全文字はそのまま残る。
    スペースは許可されていない。
    +GenericMaskCodes3EAN=マスク内の他の全文字はそのまま残る(EAN13の13番目の位置にある*または?を除く)。
    スペースは許可されていない。
    EAN13では、最後の}の後の13番目の位置は*または? のみで、計算されたキーに置き換えられる。
    GenericMaskCodes4a= 取引先 TheCompany の99番目の%sの例、日付 2007-01-31:
    GenericMaskCodes4b=2007-03-01に作成された取引先の例:
    GenericMaskCodes4c= 2007-03-01に作成された製品の例:
    @@ -376,12 +376,12 @@ ErrorCantUseRazIfNoYearInMask=エラー。シーケンス{yy}または{yyyy}が ErrorCantUseRazInStartedYearIfNoYearMonthInMask=エラー、シーケンス場合は、@オプションを使用することはできない{YY} {ミリメートル}または{探す} {mmは}マスクではない。 UMask=のUnix / Linux / BSDのファイルシステム上に新規ファイルのumaskパラメータ。 UMaskExplanation=このパラメータは、 ( たとえば、アップロード中に ) 、サーバー上でDolibarrによって作成されたファイルは、デフォルトで設定されているアクセス許可を定義することができる。
    それは、8進値 ( 例えば、0666が意味するのは全員に対して読取および書込 ) である必要がある。
    このパラメータは、Windowsサーバー上では役に立たない。 -SeeWikiForAllTeam=寄稿者とその組織のリストについては、Wikiページをご覧ください。 +SeeWikiForAllTeam=寄稿者とその組織のリストについては、Wikiページを見ること。 UseACacheDelay= 秒単位でをエクスポート応答をキャッシュするための遅延 ( 0またはキャッシュなしの空の ) DisableLinkToHelpCenter=ログインページのリンク「ヘルプまたはサポートが必要」を非表示にする DisableLinkToHelp=オンラインヘルプ「%s」へのリンクを非表示にする AddCRIfTooLong=自動テキスト折り返しはない。長すぎるテキストはドキュメントに表示されない。必要に応じて、テキスト領域にキャリッジリターンを追加すること。 -ConfirmPurge=このパージを実行してもよいか?
    これにより、すべてのデータファイルが完全に削除され、復元する方法はない ( ECMファイル、添付ファイルなど ) 。 +ConfirmPurge=このパージを実行してもよいか?
    これにより、全データファイルが完全に削除され、復元する方法はない ( ECMファイル、添付ファイルなど ) 。 MinLength=最小長 LanguageFilesCachedIntoShmopSharedMemory=ファイルlangは、共有メモリにロードされ LanguageFile=言語ファイル @@ -390,13 +390,13 @@ ListOfDirectories=OpenDocumentをテンプレートディレクトリのリス ListOfDirectoriesForModelGenODT=OpenDocument形式のテンプレートファイルを含むディレクトリのリスト。

    ここにディレクトリのフルパスを入力する。
    eahディレクトリ間にキャリッジリターンを追加する。
    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ドキュメントテンプレートを作成する方法を知って、それらのディレクトリに格納する前に、ウィキのドキュメントをお読みください。 +FollowingSubstitutionKeysCanBeUsed=
    あなたのODTドキュメントテンプレートを作成する方法を知って、それらのディレクトリに格納する前に、ウィキのドキュメントを読むこと。 FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=名/姓の位置 DescWeather=遅延アクションの数が次の値に達すると、ダッシュボードに次の画像が表示される。 KeyForWebServicesAccess=Webサービス ( webservicesのパラメータ "dolibarrkey" ) を使用するキー TestSubmitForm=入力テストフォーム -ThisForceAlsoTheme=このメニューマネージャーを使用すると、ユーザの選択に関係なく、独自のテーマも使用される。また、このスマートフォン専用のメニューマネージャーは、すべてのスマートフォンで動作するわけではない。問題が発生した場合は、別のメニューマネージャーを使用すること。 +ThisForceAlsoTheme=このメニューマネージャーを使用すると、ユーザの選択に関係なく、独自のテーマも使用される。また、このスマートフォン専用のメニューマネージャーは、全スマートフォンで動作するわけではない。問題が発生した場合は、別のメニューマネージャーを使用すること。 ThemeDir=スキンディレクトリ ConnectionTimeout=接続タイムアウト ResponseTimeout=応答タイムアウト @@ -408,7 +408,7 @@ PDF=PDF PDFDesc=PDF生成のグローバルオプション PDFOtherDesc=一部のモジュールに固有のPDFオプション PDFAddressForging=アドレスセクションのルール -HideAnyVATInformationOnPDF=消費税/ VATに関連するすべての情報を非表示にする +HideAnyVATInformationOnPDF=消費税/ VATに関連する全情報を非表示にする PDFRulesForSalesTax=消費税/ VATのルール PDFLocaltax=%sのルール HideLocalTaxOnPDF=消費税 / VATの列で%sレートを非表示 @@ -421,7 +421,7 @@ UrlGenerationParameters=URLを確保するためのパラメータ SecurityTokenIsUnique=各URLごとに一意securekeyパラメータを使用して、 EnterRefToBuildUrl=オブジェクト%sの参照を入力する。 GetSecuredUrl=計算されたURLを取得する -ButtonHideUnauthorized=内部ユーザーに対しても不正なアクションボタンを非表示にする(それ以外の場合は灰色で表示される) +ButtonHideUnauthorized=内部ユーザに対しても不正なアクションボタンを非表示にする(それ以外の場合は灰色で表示される) OldVATRates=古いVAT率 NewVATRates=新規VAT率 PriceBaseTypeToChange=で定義された基本参照値を使用して価格を変更する @@ -459,8 +459,8 @@ ExtrafieldParamHelpcheckbox=値のリストは、 key,value形式 (key は '0' ExtrafieldParamHelpradio=値のリストは、 key,value形式 (key は '0' 以外) の行であること

    for example:
    1,value1
    2,value2
    3,value3
    ... ExtrafieldParamHelpsellist=値のリストはテーブルから取得される
    構文: table_name:label_field:id_field::filtersql
    例: c_typent:libelle:id::filtersql

    - id_field は整数のプライマリキーが必須
    - filtersql は SQL 条件文。アクティブな値のみを表示する簡単なテストでもよい (例 active=1)
    フィルタで $ID$ を使用することもでき、それは現在のオブジェクトの現在のID
    フィルタで SELECT を使うには、キーワード $SEL$ を使うことで、インジェクション対抗防御を回避できる。
    エクストラフィールドでフィルタするには、構文 extra.fieldcode=... (ここで、フィールドコードはエクストラフィールドのコード)を使用する

    別の補完属性リストに依存するリストを作成するには:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    別のリストに依存したリストを作成するには:
    c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=値のリストはテーブルから取得される
    Syntax: table_name:label_field:id_field::filtersql
    例: c_typent:libelle:id::filtersql

    フィルターは、簡単なテスト (例 active=1) で、アクティブな値のみを表示する
    フィルタで $ID$ を使用することもでき、それは現在のオブジェクトの現在のID
    フィルタで SELECT を実行するには、 $SEL$ を使う
    エクストラフィールドでフィルタするには、構文 extra.fieldcode=... (ここで、フィールドコードはエクストラフィールドのコード)を使用する

    別の補完属性リストに依存するリストを作成するには:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    別のリストに依存したリストを作成するには:
    c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=パラメータはObjectName:Classpathでなければなりません
    構文:ObjectName:Classpath -ExtrafieldParamHelpSeparator=単純なセパレーターの場合は空のままにする
    折りたたみセパレーターの場合はこれを1に設定する ( 新規セッションの場合はデフォルトで開き、ユーザセッションごとにステータスが保持される )
    折りたたみセパレーターの場合はこれを2に設定する ( 新規セッションの場合はデフォルトで折りたたむ。ステータスは各ユーザセッションの間保持される ) +ExtrafieldParamHelplink=パラメータはObjectName:Classpathでなければならない
    構文:ObjectName:Classpath +ExtrafieldParamHelpSeparator=単純なセパレーターの場合は空のままにする
    折りたたみセパレーターの場合はこれを1に設定する ( 新規セッションの場合はデフォルトで開き、ユーザセッションごとに状態が保持される )
    折りたたみセパレーターの場合はこれを2に設定する ( 新規セッションの場合はデフォルトで折りたたむ。状態は各ユーザセッションの間保持される ) LibraryToBuildPDF=PDF生成に使用されるライブラリ LocalTaxDesc=国によっては、各請求書の行に2つまたは3つの税金を適用する場合がある。その場合は、2番目と3番目の税の種類とその税率を選択すること。可能な種別は次のとおり。
    1:VATなしの製品およびサービスに地方税が適用される ( 地方税は税抜きの金額に基づいて計算される )
    2:VATを含む製品およびサービスに地方税が適用される ( 地方税は金額+主税に基づいて計算される )
    3:地方税はVATのない製品に適用される ( 地方税は税抜金額に基づいて計算される )
    4:地方税はVATを含む製品に適用される ( 地方税は金額+主VATに基づいて計算される )
    5:地方税はVATのないサービスに適用される ( 地方税は計算される ) 税抜き金額 )
    6:VATを含むサービスには地方税が適用される ( 地方税は金額+税で計算される ) SMS=SMS @@ -473,15 +473,15 @@ DefaultLink=デフォルトのリンク SetAsDefault=デフォルトとして設定 ValueOverwrittenByUserSetup=警告、この値はユーザ固有の設定によって上書きされる可能性がある ( 各ユーザは独自のクリックダイヤルURLを設定できる ) ExternalModule=外部モジュール -InstalledInto=ディレクトリ%sにインストールされました +InstalledInto=ディレクトリ%sにインストールされた BarcodeInitForThirdparties=取引先向けの大量バーコード初期化 BarcodeInitForProductsOrServices=製品またはサービスの大量バーコードの初期化またはリセット CurrentlyNWithoutBarCode=現在、%s%sにバーコードが定義されていない%sレコードがある。 -InitEmptyBarCode=次の%s空レコードの初期値 +InitEmptyBarCode=%s 空バーコードの初期値 EraseAllCurrentBarCode=現在のバーコード値をすべて消去する ConfirmEraseAllCurrentBarCode=現在のバーコード値をすべて消去してもよいか? -AllBarcodeReset=すべてのバーコード値が削除されました -NoBarcodeNumberingTemplateDefined=バーコードモジュールの設定で番号付けバーコードテンプレートが有効になっていない。 +AllBarcodeReset=全バーコード値が削除された +NoBarcodeNumberingTemplateDefined=バーコードモジュールの設定で採番バーコードテンプレートが有効でない。 EnableFileCache=ファイルキャッシュを有効にする ShowDetailsInPDFPageFoot=法人の住所やマネージャーの名前 ( 職業分類IDに加えて、法人の資本金、VAT番号 ) などの詳細をフッターに追加する。 NoDetails=フッターに追加の詳細はない @@ -495,21 +495,21 @@ ModuleCompanyCodePanicum=空の会計コードを返する。 ModuleCompanyCodeDigitaria=取引先の名前に従って複合会計コードを返する。コードは、最初の位置で定義できるプレフィックスと、それに続く取引先のコードで定義された文字数で構成される。 ModuleCompanyCodeCustomerDigitaria=%sの後に、文字数で切り捨てられた顧客名が続く。顧客会計コードの場合は%s。 ModuleCompanyCodeSupplierDigitaria=%sの後に、文字数で切り捨てられたサプライヤ名が続く。サプライヤ会計コードの場合は%s。 -Use3StepsApproval=デフォルトでは、発注書は2人の異なるユーザによって作成および承認される必要がある ( 作成する1つのステップ/ユーザと承認する1つのステップ/ユーザ。ユーザが作成と承認の両方の権限を持っている場合は、1つのステップ/ユーザで十分 ) 。金額が専用の値よりも高い場合は、このオプションを使用して3番目のステップ/ユーザ承認を導入するように依頼できる ( したがって、3つのステップが必要になる:1 =検証、2 =最初の承認、3 =金額が十分な場合は2番目の承認 ) 。
    1つの承認 ( 2ステップ ) で十分な場合はこれを空に設定し、2番目の承認 ( 3ステップ ) が常に必要な場合は非常に低い値 ( 0.1 ) に設定する。 +Use3StepsApproval=デフォルトでは、購買発注は2人の異なるユーザによって作成および承認される必要がある ( 作成する1つのステップ/ユーザと承認する1つのステップ/ユーザ。ユーザが作成と承認の両方の権限を持っている場合は、1つのステップ/ユーザで十分 ) 。金額が専用の値よりも高い場合は、このオプションを使用して3番目のステップ/ユーザ承認を導入するように依頼できる ( したがって、3つのステップが必要になる:1 =検証、2 =最初の承認、3 =金額が十分な場合は2番目の承認 ) 。
    1つの承認 ( 2ステップ ) で十分な場合はこれを空に設定し、2番目の承認 ( 3ステップ ) が常に必要な場合は非常に低い値 ( 0.1 ) に設定する。 UseDoubleApproval=金額 ( 税抜き ) が...より高い場合は、3段階の承認を使用すること。 WarningPHPMail=警告:アプリケーションから電子メールを送信するための設定は、デフォルトの汎用設定を使用している。多くの場合、いくつかの理由から、デフォルトの設定ではなく、メールサービスプロバイダーのメールサーバーを使用するように送信メールを設定することをお勧めする。 WarningPHPMailA=-電子メールサービスプロバイダーのサーバーを使用すると、電子メールの信頼性が向上するため、スパムとしてフラグが立てられることなく配信可能性が向上する。 WarningPHPMailB=-一部の電子メールサービスプロバイダー ( Yahooなど ) では、独自のサーバー以外のサーバーから電子メールを送信することを許可していない。現在の設定では、電子メールプロバイダーのサーバーではなく、アプリケーションのサーバーを使用して電子メールを送信するため、一部の受信者 ( 制限付きDMARCプロトコルと互換性のある受信者 ) は、電子メールプロバイダーと一部の電子メールプロバイダーを受け入れることができるかどうかを電子メールプロバイダーに尋ねる。 ( Yahooのように ) サーバーが彼らのものではないために「いいえ」と応答する場合がある。そのため、送信された電子メールの一部が配信を受け入れられない場合がある ( 電子メールプロバイダーの送信クォータにも注意すること ) 。 -WarningPHPMailC=-独自の電子メールサービスプロバイダーのSMTPサーバーを使用して電子メールを送信することも興味深いので、アプリケーションから送信されるすべての電子メールもメールボックスの「送信済」ディレクトリに保存される。 +WarningPHPMailC=-独自の電子メールサービスプロバイダーのSMTPサーバーを使用して電子メールを送信することも興味深いので、アプリケーションから送信される全電子メールもメールボックスの「送信済」ディレクトリに保存される。 WarningPHPMailD=また、メールの送信方法を「SMTP」に変更することを推奨。メールを送信するためにデフォルトの「PHP」メソッドを本当に維持したい場合、この警告を無視するか、ホーム - 設定 - その他 で MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP 定数を1に設定して削除すること。 WarningPHPMail2=電子メールSMTPプロバイダーが電子メールクライアントをいくつかのIPアドレスに制限する必要がある場合 ( 非常にまれ ) 、これはERP CRMアプリケーションのメールユーザエージェント ( MUA ) のIPアドレス : %s。 WarningPHPMailSPF=送信者のメールアドレスのドメイン名がSPFレコードで保護されている場合(ドメイン名登録者に問い合わせる)、自ドメインのDNSのSPFレコードに次のIPを追加する必要がある: %s。 -ActualMailSPFRecordFound=見つかった実際のSPFレコード:%s +ActualMailSPFRecordFound=実際の SPF レコードが見つかった (電子メール %s の場合): %s ClickToShowDescription=クリックして説明を表示 DependsOn=このモジュールにはモジュールが必要 RequiredBy=このモジュールはモジュールに必要 TheKeyIsTheNameOfHtmlField=これはHTMLフィールドの名前。 HTMLページのコンテンツを読んでフィールドのキー名を取得するには、技術的な知識が必要。 -PageUrlForDefaultValues=ページURLの相対パスを入力する必要がある。 URLにパラメータを含める場合、すべてのパラメータが同じ値に設定されていれば、デフォルト値が有効になる。 +PageUrlForDefaultValues=ページURLの相対パスを入力する必要がある。 URLにパラメータを含める場合、全パラメータが同じ値に設定されていれば、デフォルト値が有効になる。 PageUrlForDefaultValuesCreate=
    例:
    新規取引先を作成するフォームの場合、 %s
    カスタムディレクトリにインストールされた外部モジュールのURLには、「custom /」を含めないため、custom/mymodule/mypage.phpではなく、 mymodule/mypage.phpのようなパスを使用する。
    URLに何らかのパラメータがある場合にのみデフォルト値が必要な場合は、 %sを使用できる。 PageUrlForDefaultValuesList=
    例:
    取引先を一覧表示するページの場合、 %s
    カスタムディレクトリにインストールされた外部モジュールのURLには、「custom /」を含めないため、custom/mymodule/mypagelist.phpではなくmymodule/mypagelist.phpのようなパスを使用する。
    URLに何らかのパラメータがある場合にのみデフォルト値が必要な場合は、 %sを使用できる。 AlsoDefaultValuesAreEffectiveForActionCreate=また、フォーム作成のデフォルト値の上書きは、正しく設計されたページに対してのみ機能することに注意すること ( したがって、パラメーターaction = createまたはpresend ...を使用 ) 。 @@ -520,7 +520,7 @@ WarningSettingSortOrder=警告、デフォルトのソート順を設定する Field=フィールド ProductDocumentTemplates=製品ドキュメントを生成するためのドキュメントテンプレート FreeLegalTextOnExpenseReports=経費報告書sに関する無料の法的テキスト -WatermarkOnDraftExpenseReports=ドラフト経費報告書sの透かし +WatermarkOnDraftExpenseReports=下書き経費報告書sの透かし ProjectIsRequiredOnExpenseReports=プロジェクトは経費報告書を入力するために必須 PrefillExpenseReportDatesWithCurrentMonth=新規経費報告書の開始日と終了日を当月の開始日と終了日で事前に入力する ForceExpenseReportsLineAmountsIncludingTaxesOnly=経費報告書の金額を常に税金と同じ金額で入力するように強制する @@ -532,20 +532,20 @@ DAVSetup=モジュールDAVの設定 DAV_ALLOW_PRIVATE_DIR=汎用非公開ディレクトリを有効にする ( 「private」という名前のWebDAV専用ディレクトリ-ログインが必要 ) DAV_ALLOW_PRIVATE_DIRTooltip=汎用非公開ディレクトリは、アプリケーションのログイン/パスを使用して誰でもアクセスできるWebDAVディレクトリ。 DAV_ALLOW_PUBLIC_DIR=汎用公開ディレクトリを有効にする ( 「public」という名前のWebDAV専用ディレクトリ-ログインは不要 ) -DAV_ALLOW_PUBLIC_DIRTooltip=汎用公開ディレクトリは、誰でも ( 読み取りおよび書き込みモードで ) アクセスできるWebDAVディレクトリであり、認証は必要ない ( ログイン/パスワードアカウント ) 。 +DAV_ALLOW_PUBLIC_DIRTooltip=汎用公開ディレクトリは、誰でも ( 読取りおよび書き込みモードで ) アクセスできるWebDAVディレクトリであり、認証は必要ない ( ログイン/パスワードアカウント ) 。 DAV_ALLOW_ECM_DIR=DMS / ECM非公開ディレクトリを有効にする ( DMS / ECMモジュールのルートディレクトリ-ログインが必要 ) -DAV_ALLOW_ECM_DIRTooltip=DMS / ECMモジュールの使用時にすべてのファイルが手動でアップロードされるルートディレクトリ。同様に、Webインターフェイスからのアクセスと同様に、アクセスするには、適切な権限を持つ有効なログイン/パスワードが必要。 +DAV_ALLOW_ECM_DIRTooltip=DMS / ECMモジュールの使用時に全ファイルが手動でアップロードされるルートディレクトリ。同様に、Webインターフェイスからのアクセスと同様に、アクセスするには、適切な権限を持つ有効なログイン/パスワードが必要。 # Modules Module0Name=ユーザとグループ Module0Desc=ユーザ/従業員およびグループの管理 Module1Name=取引先 Module1Desc=企業と連絡先の管理 ( 顧客、見込み客... ) Module2Name=コマーシャル -Module2Desc=商業管理 +Module2Desc=商取引管理 Module10Name=会計 ( 簡略化 ) -Module10Desc=データベースの内容に基づく単純な会計報告書s ( ジャーナル、売上高 ) 。元帳テーブルを使用しません。 +Module10Desc=データベースの内容に基づく単純な会計報告書s ( ジャーナル、売上高 ) 。元帳テーブルを使用しない。 Module20Name=提案 -Module20Desc=商業的な提案の管理 +Module20Desc=商取引提案の管理 Module22Name=大量の電子メール Module22Desc=一括メールを管理する Module23Name=エネルギー @@ -555,7 +555,7 @@ Module25Desc=受注管理 Module30Name=請求書 Module30Desc=顧客の請求書と貸方票の管理。サプライヤーの請求書と貸方票の管理 Module40Name=仕入先s -Module40Desc=仕入先と購入管理 ( 発注書とサプライヤーの請求書の請求 ) +Module40Desc=仕入先と購入管理 ( 購買発注とサプライヤーの請求書の請求 ) Module42Name=デバッグログ Module42Desc=ロギング機能 ( ファイル、syslog、... ) 。このようなログは、技術/デバッグを目的としている。 Module43Name=デバッグバー @@ -574,9 +574,9 @@ Module54Name=契約/サブスクリプション Module54Desc=契約の管理 ( サービスまたは定期購読 ) Module55Name=バーコード Module55Desc=バーコードまたはQRコードの管理 -Module56Name=クレジット振込によるお支払い -Module56Desc=クレジット転送注文によるサプライヤーの支払いの管理。これには、ヨーロッパ諸国向けのSEPAファイルの生成が含まれる。 -Module57Name=口座振替による支払い +Module56Name=債権譲渡によるお支払 +Module56Desc=債権譲渡注文によるサプライヤーの支払の管理。これには、ヨーロッパ諸国向けのSEPAファイルの生成が含まれる。 +Module57Name=口座振替による支払 Module57Desc=口座振替注文の管理。これには、ヨーロッパ諸国向けのSEPAファイルの生成が含まれる。 Module58Name=ClickToDial Module58Desc=ClickToDialシステムの統合 ( アスタリスク、... ) @@ -593,7 +593,7 @@ Module85Desc=銀行や現金勘定の管理 Module100Name=外部サイト Module100Desc=メインメニューアイコンとして外部Webサイトへのリンクを追加する。ウェブサイトはトップメニューの下のフレームに表示される。 Module105Name=Mailmanとすする -Module105Desc=メンバーモジュールのための郵便配達またはSPIPインタフェース +Module105Desc=構成員モジュールのための郵便配達またはSPIPインタフェース Module200Name=LDAP Module200Desc=LDAPディレクトリの同期 Module210Name=PostNuke @@ -602,8 +602,8 @@ Module240Name=データをエクスポート Module240Desc=Dolibarrにデータをエクスポートするツール(アシスタントを利用) Module250Name=データのインポート Module250Desc=Dolibarrにデータをインポートするツール(アシスタントを利用) -Module310Name=メンバー -Module310Desc=財団のメンバーの管理 +Module310Name=構成員s +Module310Desc=財団の構成員の管理 Module320Name=RSSフィード Module320Desc=DolibarrページにRSSフィードを追加する Module330Name=ブックマークとショートカット @@ -615,7 +615,7 @@ Module410Desc=のwebcalendar統合 Module500Name=租税および特別経費 Module500Desc=その他の費用の管理(消費税、社会税または財政税、配当、...) Module510Name=給与 -Module510Desc=従業員の支払いを記録および追跡する +Module510Desc=従業員の支払を記録および追跡する Module520Name=ローン Module520Desc=ローンの管理 Module600Name=ビジネスイベントのお知らせ @@ -627,14 +627,14 @@ Module700Name=寄付 Module700Desc=寄付金の管理 Module770Name=経費報告書s Module770Desc=経費報告書sの請求を管理する ( 輸送、食事、... ) -Module1120Name=仕入先の商業提案 -Module1120Desc=仕入先の商業提案と価格を要求する +Module1120Name=仕入先の商取引提案 +Module1120Desc=仕入先の商取引提案と価格を要求する Module1200Name=カマキリ Module1200Desc=カマキリの統合 Module1520Name=ドキュメントの生成 Module1520Desc=大量の電子メールドキュメントの生成 Module1780Name=タグ/カテゴリ -Module1780Desc=タグ/カテゴリ ( 製品、顧客、サプライヤー、連絡先、またはメンバー ) を作成する +Module1780Desc=タグ/カテゴリ ( 製品、顧客、サプライヤー、連絡先、または構成員 ) を作成する Module2000Name=WYSIWYGエディタ Module2000Desc=CKEditor ( html ) を使用してテキストフィールドを編集/フォーマットできるようにする Module2200Name=ダイナミックプライシング @@ -650,14 +650,14 @@ Module2600Desc=APIサービスを提供するDolibarrSOAPサーバーを有効 Module2610Name=API / Webサービス ( RESTサーバー ) Module2610Desc=APIサービスを提供するDolibarrRESTサーバーを有効にする Module2660Name=Webサービスの呼び出し ( SOAPクライアント ) -Module2660Desc=Dolibarr Webサービスクライアントを有効にする ( データ/要求を外部サーバーにプッシュするために使用できる。現在サポートされているのは発注書のみ ) 。 +Module2660Desc=Dolibarr Webサービスクライアントを有効にする ( データ/要求を外部サーバーにプッシュするために使用できる。現在サポートされているのは購買発注のみ ) 。 Module2700Name=グラバター -Module2700Desc=オンラインのGravatarサービス ( www.gravatar.com ) を使用して、ユーザ/メンバーの写真を表示する ( メールに記載されている ) 。インターネットアクセスが必要 +Module2700Desc=オンラインのGravatarサービス (www.gravatar.com) を使用して、ユーザ/構成員の写真を表示する ( メールに記載されている ) 。インターネットアクセスが必要 Module2800Desc=FTPクライアント Module2900Name=GeoIPMaxmind Module2900Desc=のGeoIP Maxmindの変換機能 Module3200Name=変更不可能なアーカイブ -Module3200Desc=ビジネスイベントの変更不可能なログを有効にする。イベントはリアルタイムでアーカイブされる。ログは、エクスポート可能な連鎖イベントの読み取り専用テーブル。このモジュールは、国によっては必須の場合がある。 +Module3200Desc=ビジネスイベントの変更不可能なログを有効にする。イベントはリアルタイムでアーカイブされる。ログは、エクスポート可能な連鎖イベントの読取り専用テーブル。このモジュールは、国によっては必須の場合がある。 Module3400Name=ソーシャルネットワーク Module3400Desc=ソーシャルネットワークフィールドを取引先とアドレス(skype、twitter、facebookなど)に対して有効化する。 Module4000Name=HRM @@ -665,25 +665,25 @@ Module4000Desc=人事管理 ( 部門の管理、従業員の契約と感情 ) Module5000Name=マルチ法人 Module5000Desc=複数の企業を管理できる Module6000Name=モジュール間ワークフロー -Module6000Desc=異なるモジュール間のワークフロー管理(オブジェクトの自動作成および/または自動ステータス変更) +Module6000Desc=異なるモジュール間のワークフロー管理(オブジェクトの自動作成および/または自動状態変更) Module10000Name=ウェブサイト Module10000Desc=WYSIWYGエディターを使用してWebサイト ( 公開 ) を作成する。これはウェブマスターまたは開発者向けのCMS ( HTMLとCSS言語を知っている方が良い ) 。専用のDolibarrディレクトリを指すようにWebサーバー ( Apache、Nginxなど ) を設定するだけで、独自のドメイン名を使用してインターネット上でオンラインにできる。 -Module20000Name=リクエスト管理を終了 +Module20000Name=休暇申請管理を終了 Module20000Desc=従業員の休暇申請を定義および追跡する Module39000Name=製品ロット Module39000Desc=製品のロット、シリアル番号、イートバイ/セルバイ日付管理 Module40000Name=多通貨 Module40000Desc=価格とドキュメントで代替通貨を使用する Module50000Name=切符売り場 -Module50000Desc=PayBoxオンライン支払いページ ( クレジット/デビットカード ) を顧客に提供する。これを使用して、顧客がアドホック支払いまたは特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払いを行えるようにすることができる。 +Module50000Desc=PayBoxオンライン支払ページ ( クレジット/デビットカード ) を顧客に提供する。これを使用して、顧客がアドホック支払または特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払を行えるようにすることができる。 Module50100Name=POS SimplePOS Module50100Desc=POSモジュールSimplePOS ( シンプルPOS ) 。 Module50150Name=POS TakePOS Module50150Desc=POSモジュールTakePOS ( タッチスクリーンPOS、ショップ、バー、レストラン用 ) 。 Module50200Name=ペイパル -Module50200Desc=顧客にPayPalオンライン支払いページ ( PayPalアカウントまたはクレジット/デビットカード ) を提供する。これを使用して、顧客がアドホック支払いまたは特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払いを行えるようにすることができる。 -Module50300Name=縞 -Module50300Desc=Stripeオンライン支払いページ ( クレジット/デビットカード ) を顧客に提供する。これを使用して、顧客がアドホック支払いまたは特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払いを行えるようにすることができる。 +Module50200Desc=顧客にPayPalオンライン支払ページ ( PayPalアカウントまたはクレジット/デビットカード ) を提供する。これを使用して、顧客がアドホック支払または特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払を行えるようにすることができる。 +Module50300Name=ストライプ +Module50300Desc=Stripeオンライン支払ページ ( クレジット/デビットカード ) を顧客に提供する。これを使用して、顧客がアドホック支払または特定のDolibarrオブジェクト ( 請求書、注文など ) に関連する支払を行えるようにすることができる。 Module50400Name=会計 ( 複式簿記 ) Module50400Desc=会計管理 ( ダブルエントリ、一般および子会社の元帳をサポート ) 。元帳を他のいくつかの会計ソフトウェア形式でエクスポートする。 Module54000Name=PrintIPP @@ -698,47 +698,49 @@ Module62000Name=インコタームズ Module62000Desc=インコタームズを管理する機能を追加する Module63000Name=資源 Module63000Desc=イベントに割り当てるためのリソース ( プリンター、車、部屋など ) を管理する -Permission11=顧客の請求書を読み取る +Permission11=顧客の請求書を読込む Permission12=顧客の請求書を作成/変更 Permission13=顧客の請求書を無効にする -Permission14=顧客の請求書を検証する +Permission14=顧客の請求書を検証 Permission15=電子メールで顧客の請求書を送る -Permission16=顧客の請求書の支払いを作成する。 +Permission16=顧客の請求書の支払を作成する。 Permission19=顧客の請求書を削除する。 -Permission21=商業的な提案を読み取る -Permission22=商業的な提案を作成/変更 -Permission24=商業的な提案を検証する -Permission25=商業的な提案を送る -Permission26=商業的な提案を閉じる -Permission27=商業的な提案を削除する。 -Permission28=売買提案書をエクスポート -Permission31=製品を読み取る +Permission21=商取引提案を読込む +Permission22=商取引提案を作成/変更 +Permission24=商取引提案を検証 +Permission25=商取引提案を送る +Permission26=商取引提案を閉じる +Permission27=商取引提案を削除する。 +Permission28=商取引提案をエクスポート +Permission31=製品を読込む Permission32=製品を作成/変更 +Permission33=価格製品読込 Permission34=製品を削除する。 Permission36=隠された製品を参照すること/管理 Permission38=製品をエクスポート Permission39=最低価格を無視する -Permission41=プロジェクトとタスクを読込む ( 共有プロジェクトと私が連絡しているプロジェクト ) 。割り当てられたタスクで、私または私の階層に費やされた時間を入力することもできる ( タイムシート ) -Permission42=プロジェクトを作成/変更する ( 共有プロジェクトと連絡先のプロジェクト ) 。タスクを作成し、ユーザをプロジェクトとタスクに割り当てることもできる -Permission44=プロジェクトを削除する ( 共有プロジェクトと連絡先のプロジェクト ) +Permission41=プロジェクトとタスク(共有プロジェクトと私が連絡先であるプロジェクト)を読込む。 +Permission42=プロジェクト(共有プロジェクトおよび私が連絡先であるプロジェクト)を作成/変更する。プロジェクトやタスクにユーザーを割り当てることもできる +Permission44=プロジェクトを削除する(共有プロジェクトと私が連絡しているプロジェクト) Permission45=プロジェクトをエクスポート Permission61=出張を読込む Permission62=出張を作成/変更 Permission64=出張を削除する。 Permission67=出張をエクスポート Permission68=電子メールで出張を送信する -Permission69=出張を検証する +Permission69=出張を検証 Permission70=出張を無効にする -Permission71=メンバーを読み取る -Permission72=メンバーを作成/変更 -Permission74=メンバーを削除する -Permission75=メンバーシップの種類を設定する +Permission71=構成員を読込む +Permission72=構成員を作成/変更 +Permission74=構成員を削除する +Permission75=成員資格の種類を設定する Permission76=データをエクスポート Permission78=サブスクリプションを読込む Permission79=サブスクリプションを作成/変更 -Permission81=お客様の注文を読み取る +Permission81=お客様の注文を読込む Permission82=作成/変更、顧客の注文 Permission84=お客様の注文を検証 +Permission85=ドキュメントの販売注文を生成する Permission86=お客様の注文を送る Permission87=顧客の注文を閉じる Permission88=お客様の注文を取り消す @@ -750,7 +752,7 @@ Permission94=社会税または財政税をエクスポート Permission95=報告書sを読込む Permission101=sendingsを読込む Permission102=sendingsを作成/変更 -Permission104=sendingsを検証する +Permission104=sendingsを検証 Permission105=メールで送信する Permission106=送信録をエクスポート Permission109=sendingsを削除する。 @@ -759,42 +761,43 @@ Permission112=作成/変更/削除して取引を比較する Permission113=金融科目の設定(銀行取引のカテゴリの作成、管理) Permission114=トランザクションを調整する Permission115=取引と口座ステートメントをエクスポート -Permission116=アカウント間の転送 +Permission116=口座間振替 Permission117=小切手の発送を管理する Permission121=ユーザにリンクされている取引先を読込む Permission122=ユーザにリンクされている取引先が作成/変更 Permission125=ユーザにリンクされている取引先を削除する。 Permission126=取引先をエクスポート Permission130=取引先の支払情報を作成/変更する -Permission141=すべてのプロジェクトとタスクを読込む ( 私が連絡先ではない非公開プロジェクトも ) -Permission142=すべてのプロジェクトとタスクを作成/変更する ( 私が連絡先ではない非公開プロジェクトも ) -Permission144=すべてのプロジェクトとタスクを削除する ( 私が連絡していない非公開プロジェクトも削除する ) +Permission141=すべてのプロジェクトとタスク(および私が連絡先ではないプライベートプロジェクト)を読込む +Permission142=すべてのプロジェクトとタスク(および私が連絡先ではないプライベートプロジェクト)を作成/変更する +Permission144=すべてのプロジェクトとタスク(および私が連絡先ではないプライベートプロジェクト)を削除する +Permission145=割り当てられたタスクで、私または私の階層に費やされた時間を入力できる(タイムシート) Permission146=プロバイダを読込む Permission147=統計を読込む -Permission151=口座振替の支払い注文を読込む -Permission152=口座振替の支払い注文を作成/変更する -Permission153=口座振替の支払い注文の送信/送信 -Permission154=口座振替の支払い注文のクレジット/拒否を記録する +Permission151=口座振替の支払注文を読込む +Permission152=口座振替の支払注文を作成/変更する +Permission153=口座振替の支払注文の送信/送信 +Permission154=口座振替の支払注文のクレジット/拒否を記録する Permission161=契約/サブスクリプションを読込む Permission162=契約/サブスクリプションを作成/変更する -Permission163=契約のサービス/サブスクリプションをアクティブ化する +Permission163=契約のサービス/サブスクリプションを有効化する Permission164=契約のサービス/サブスクリプションを無効にする Permission165=契約/サブスクリプションを削除する Permission167=契約をエクスポート Permission171=旅行と経費を読込む ( あなたとあなたの部下 ) Permission172=旅行と経費を作成/変更する Permission173=旅行と経費を削除する -Permission174=すべての旅行と経費を読込む +Permission174=全旅行と経費を読込む Permission178=旅行と経費をエクスポート Permission180=仕入先を読込む -Permission181=注文書を読込む -Permission182=注文書を作成/変更する -Permission183=注文書を検証する -Permission184=注文書を承認する -Permission185=注文書の注文またはキャンセル -Permission186=注文書を受け取る -Permission187=注文書を閉じる -Permission188=注文書をキャンセルする +Permission181=購買発注を読込む +Permission182=購買発注を作成/変更する +Permission183=購買発注を検証 +Permission184=購買発注を承認する +Permission185=購買発注の注文またはキャンセル +Permission186=購買発注を受け取る +Permission187=購買発注を閉じる +Permission188=購買発注をキャンセルする Permission192=線を作成する Permission193=線をキャンセルする Permission194=帯域幅の線を読込む @@ -802,37 +805,37 @@ Permission202=ADSL接続を作成する Permission203=順序接続順序 Permission204=順序接続 Permission205=接続を管理する -Permission206=接続を読み取る +Permission206=接続を読込む Permission211=テレフォニーを読込む Permission212=注文明細行 -Permission213=ラインをアクティブにする +Permission213=ラインを有効化する Permission214=設定テレフォニー Permission215=設定·プロバイダー Permission221=emailingsを読込む Permission222=作成/変更emailings ( トピック、受信... ) -Permission223= ( 送信できる ) emailingsを検証 +Permission223=電子メールを検証 ( 送信許可) Permission229=emailingsを削除する。 Permission237=受信者と情報を表示する Permission238=手動でメールを送信する -Permission239=検証後または送信後にメーリングを削除する +Permission239=検証後または送信後に郵送物を削除する Permission241=カテゴリを読込む Permission242=カテゴリを作成/変更 Permission243=カテゴリを削除する。 Permission244=隠されたカテゴリの内容を参照すること。 Permission251=他のユーザおよびグループを読込む PermissionAdvanced251=他のユーザを読込む -Permission252=他のユーザの読み取り権限を +Permission252=他のユーザの読取り権限を Permission253=他のユーザ、グループ、権限を作成/変更する PermissionAdvanced253=内部/外部ユーザおよびアクセス許可を作成/変更 Permission254=変更の作成/外部ユーザのみ Permission255=他のユーザのパスワードを変更する Permission256=他のユーザを削除するか、または無効にする -Permission262=すべての取引先とそのオブジェクト(ユーザが営業担当者である取引先だけでなく)へのアクセスを拡張する。
    外部ユーザには効果的ではない(提案、注文、請求書、契約などについては常に自分自身に限定される)。
    プロジェクトには効果的ではない(プロジェクトの権限、可視性、および割り当てに関するルールのみが重要)。 -Permission263=オブジェクトなしで、すべての取引先にアクセスを拡張する(ユーザが営業担当者である取引先だけでなく)。
    外部ユーザには効果的ではない(提案、注文、請求書、契約などについては常に自分自身に限定される)。
    プロジェクトには効果的ではない(プロジェクトの権限、可視性、および割り当てに関するルールのみが重要)。 +Permission262=全取引先とそのオブジェクト(ユーザが営業担当者である取引先だけでなく)へのアクセスを拡張する。
    外部ユーザには効果的ではない(提案、注文、請求書、契約などについては常に自分自身に限定される)。
    プロジェクトには効果的ではない(プロジェクトの権限、可視性、および割り当てに関するルールのみが重要)。 +Permission263=オブジェクトなしで、全取引先にアクセスを拡張する(ユーザが営業担当者である取引先だけでなく)。
    外部ユーザには効果的ではない(提案、注文、請求書、契約などについては常に自分自身に限定される)。
    プロジェクトには効果的ではない(プロジェクトの権限、可視性、および割り当てに関するルールのみが重要)。 Permission271=CAを読込む -Permission272=請求書をお読みください +Permission272=請求書を読込む Permission273=問題の請求書 -Permission281=連絡先をお読みください +Permission281=連絡先を読込む Permission282=の作成/変更連絡先 Permission283=連絡先を削除 Permission286=連絡先をエクスポート @@ -847,24 +850,24 @@ Permission312=契約にサービス/サブスクリプションを割り当て Permission331=ブックマークを読み込む Permission332=ブックマークを作成/変更 Permission333=ブックマークを削除 -Permission341=独自の読み取りアクセス許可を +Permission341=独自の読取りアクセス許可を Permission342=自分のユーザ情報を作成/変更 Permission343=自分のパスワードを変更する Permission344=独自のパーミッションを変更する Permission351=グループを読込む -Permission352=グループの読み取りアクセス許可を +Permission352=グループの読取りアクセス許可を Permission353=グループを作成/変更 Permission354=グループを削除するか、または無効にする Permission358=ユーザをエクスポート Permission401=割引を読込む Permission402=割引を作成/変更 -Permission403=割引を検証する +Permission403=割引を検証 Permission404=割引を削除する。 Permission430=デバッグバーを使用する -Permission511=給与と支払いを見る(自分と部下) -Permission512=給与と支払いを作成/変更する -Permission514=給与と支払いを削除する -Permission517=全員の給料と支払いを見る +Permission511=給与と支払を見る(自分と部下) +Permission512=給与と支払を作成/変更する +Permission514=給与と支払を削除する +Permission517=全員の給料と支払を見る Permission519=給与をエクスポート Permission520=ローンを読込む Permission522=ローンの作成/変更 @@ -873,16 +876,20 @@ Permission525=アクセスローン計算機 Permission527=ローンをエクスポート Permission531=サービスを読込む Permission532=サービスを作成/変更 +Permission533=価格サービス読込 Permission534=サービスを削除する Permission536=隠されたサービスを参照すること/管理 Permission538=サービスをエクスポート -Permission561=クレジット転送による支払い注文の読み取り -Permission562=クレジット転送による支払い注文の作成/変更 -Permission563=クレジット転送による支払い注文の送信/送信 +Permission561=債権譲渡による支払注文の読取り +Permission562=債権譲渡による支払注文の作成/変更 +Permission563=債権譲渡による支払注文の送信/送信 Permission564=借方/貸方振込の拒否を記録する Permission601=ステッカーを読込む Permission602=ステッカーを作成/変更する Permission609=ステッカーを削除する +Permission611=バリアントの属性を読込む +Permission612=バリアントの属性を作成/更新する +Permission613=バリアントの属性を削除する Permission650=部品表を読込む Permission651=部品表の作成/更新 Permission652=部品表を削除する @@ -896,8 +903,8 @@ Permission771=経費報告書sを読込む ( あなたとあなたの部下 ) Permission772=経費報告書の作成/変更(自分および部下のため) Permission773=経費報告書sを削除する Permission775=経費報告書sを承認する -Permission776=経費報告書sの支払い -Permission777=すべての経費報告書を読込む(部下ではないユーザの報告書も含む) +Permission776=経費報告書sの支払 +Permission777=全経費報告書を読込む(部下ではないユーザの報告書も含む) Permission778=全員の経費報告書sを作成/変更する Permission779=経費報告書sをエクスポート Permission1001=在庫を読込む @@ -907,46 +914,46 @@ Permission1004=在庫推移を読込む Permission1005=在庫推移を作成/変更 Permission1011=在庫を見る Permission1012=新規目録を作成する -Permission1014=目録を検証する +Permission1014=目録を検証 Permission1015=製品のPMP値の変更を許可する Permission1016=目録を削除 Permission1101=配達領収書を読込む Permission1102=配達領収書を作成/変更する -Permission1104=配達領収書を検証する +Permission1104=配達領収書を検証 Permission1109=領収書を削除する Permission1121=サプライヤーの提案を読込む Permission1122=サプライヤー提案の作成/変更 -Permission1123=サプライヤーの提案を検証する +Permission1123=サプライヤーの提案を検証 Permission1124=サプライヤーの提案を送信する Permission1125=サプライヤー提案を削除する Permission1126=サプライヤーの価格要求を閉じる Permission1181=仕入先を読込む -Permission1182=注文書を読込む -Permission1183=注文書を作成/変更する -Permission1184=注文書を検証する -Permission1185=注文書を承認する -Permission1186=注文書を注文する -Permission1187=注文書の受領を確認する -Permission1188=注文書を削除する -Permission1189=注文書の受付を確認/確認解除する -Permission1190=発注書を承認 ( 2回目の承認 ) する +Permission1182=購買発注を読込む +Permission1183=購買発注を作成/変更する +Permission1184=購買発注を検証 +Permission1185=購買発注を承認する +Permission1186=購買発注を注文する +Permission1187=購買発注の受領を確認する +Permission1188=購買発注を削除する +Permission1189=購買発注の領収を確認/確認解除する +Permission1190=購買発注を承認 ( 2回目の承認 ) する Permission1191=サプライヤーの注文とその属性をエクスポート Permission1201=エクスポートの結果を得る Permission1202=エクスポートを作成/変更 Permission1231=仕入先の請求書を読込む Permission1232=仕入先の請求書を作成/変更する -Permission1233=仕入先の請求書を検証する +Permission1233=仕入先の請求書を検証 Permission1234=仕入先の請求書を削除する Permission1235=メールで仕入先の請求書を送信する -Permission1236=仕入先の請求書、属性、支払いをエクスポート -Permission1237=注文書とその詳細をエクスポート +Permission1236=仕入先の請求書、属性、支払をエクスポート +Permission1237=購買発注とその詳細をエクスポート Permission1251=データベース ( データロード ) に外部データの大量インポートを実行する -Permission1321=顧客の請求書、属性、および支払いをエクスポート -Permission1322=支払い済の請求書を再開する +Permission1321=顧客の請求書、属性、および支払をエクスポート +Permission1322=支払済の請求書を再開する Permission1421=受注と属性をエクスポート Permission1521=ドキュメントを読込む Permission1522=ドキュメントを削除する -Permission2401=ユーザアカウントにリンクされているアクション ( イベントまたはタスク ) を読み取る ( イベントの所有者または割り当てられたばかりの場合 ) +Permission2401=ユーザアカウントにリンクされているアクション ( イベントまたはタスク ) を読込む ( イベントの所有者または割り当てられたばかりの場合 ) Permission2402=ユーザアカウントにリンクされたアクション ( イベントまたはタスク ) を作成/変更する ( イベントの所有者の場合 ) Permission2403=ユーザアカウントにリンクされているアクション ( イベントまたはタスク ) を削除する ( イベントの所有者の場合 ) Permission2411=他のアクション ( イベントまたはタスク ) を読込む @@ -957,7 +964,7 @@ Permission2501=ドキュメントを読込む/ダウンロード Permission2502=ドキュメントをダウンロードする Permission2503=書類の提出または削除 Permission2515=設定のドキュメントディレクトリ -Permission2801=FTPクライアントを読み取りモードで使用する ( 参照およびダウンロードのみ ) +Permission2801=FTPクライアントを読取りモードで使用する ( 参照およびダウンロードのみ ) Permission2802=FTPクライアントを書き込みモードで使用する ( ファイルを削除またはアップロードする ) Permission3200=アーカイブされたイベントとフィンガープリントを読込む Permission3301=新規モジュールを生成する @@ -966,9 +973,11 @@ Permission4002=技能/職種/役職の作成/変更 Permission4003=技能/職種/役職を削除する Permission4020=評価を読込む Permission4021=評価を作成/変更する -Permission4022=評価を検証する +Permission4022=評価を検証 Permission4023=評価を削除する Permission4030=比較メニューを見る +Permission4031=個人情報を読込む +Permission4032=個人情報書出 Permission10001=ウェブサイトのコンテンツを読込む Permission10002=ウェブサイトのコンテンツ ( htmlおよびjavascriptコンテンツ ) を作成/変更する Permission10003=Webサイトのコンテンツ ( 動的PHPコード ) を作成/変更する。危険。制限された開発者に予約する必要がある。 @@ -976,8 +985,8 @@ Permission10005=ウェブサイトのコンテンツを削除する Permission20001=休暇申請書 ( あなたの休暇と部下の休暇 ) を読込む Permission20002=休暇申請 ( 休暇と部下の休暇 ) を作成/変更する Permission20003=休暇申請を削除する -Permission20004=すべての休暇申請を読込む(部下ではないユーザの申請も含む) -Permission20005=すべての人(部下ではないユーザの場合でも)の休暇申請を作成/変更する +Permission20004=全休暇申請を読込む(部下ではないユーザの申請も含む) +Permission20005=全人(部下ではないユーザの場合でも)の休暇申請を作成/変更する Permission20006=休暇申請の管理(残高の設定と更新) Permission20007=休暇申請を承認する Permission23001=スケジュールされたジョブを読込む @@ -993,11 +1002,11 @@ Permission50202=輸入取引 Permission50330=Zapierのオブジェクトを読込む Permission50331=Zapierのオブジェクトを作成/更新する Permission50332=Zapierのオブジェクトを削除する -Permission50401=製品と請求書を会計アカウントにバインドする -Permission50411=元帳の読み取り操作 +Permission50401=製品と請求書を勘定科目に結合する +Permission50411=元帳の読取り操作 Permission50412=元帳での書き込み/編集操作 Permission50414=元帳の削除操作 -Permission50415=年ごとのすべての操作と元帳の仕訳を削除する +Permission50415=年ごとの全操作と元帳の仕訳を削除する Permission50418=元帳の操作をエクスポート Permission50420=報告書sとエクスポート報告書s ( 売上高、残高、仕訳帳、元帳 ) Permission50430=会計期間を定義する。トランザクションを検証し、会計期間を閉じる。 @@ -1011,7 +1020,7 @@ Permission55001=世論調査を読込む Permission55002=投票の作成/変更 Permission59001=売上総利益を読込む Permission59002=売上総利益を定義する -Permission59003=すべてのユーザ粗利を読込む +Permission59003=全ユーザ粗利を読込む Permission63001=リソースを読込む Permission63002=リソースの作成/変更 Permission63003=リソースを削除する @@ -1023,7 +1032,7 @@ Permission68002=域内報告書の作成/変更 Permission68004=域内報告書を削除する Permission941601=領収書を読んで Permission941602=領収書を作成および変更する -Permission941603=領収書を検証する +Permission941603=領収書を検証 Permission941604=メールで領収書を送る Permission941605=領収書をエクスポート Permission941606=領収書を削除する @@ -1040,8 +1049,8 @@ DictionaryActions=議題イベントの種類 DictionarySocialContributions=社会税または財政税の種類 DictionaryVAT=VAT率または消費税率 DictionaryRevenueStamp=税印紙の額 -DictionaryPaymentConditions=支払い条件 -DictionaryPaymentModes=支払いモード +DictionaryPaymentConditions=支払条件 +DictionaryPaymentModes=支払モード DictionaryTypeContact=種類をお問い合わせ DictionaryTypeOfContainer=ウェブサイト-ウェブサイトのページ/コンテナの種類 DictionaryEcotaxe=Ecotax ( WEEE ) @@ -1052,7 +1061,7 @@ DictionarySendingMethods=配送方法 DictionaryStaff=就業者数 DictionaryAvailability=配達遅延 DictionaryOrderMethods=注文方法 -DictionarySource=提案/受注の起源 +DictionarySource=提案/受注の出処 DictionaryAccountancyCategory=報告書s用にパーソナライズされたグループ DictionaryAccountancysystem=勘定科目表のモデル DictionaryAccountancyJournal=会計仕訳帳 @@ -1061,15 +1070,16 @@ DictionaryUnits=ユニット DictionaryMeasuringUnits=測定単位 DictionarySocialNetworks=ソーシャルネットワーク DictionaryProspectStatus=企業の見通し状況 -DictionaryProspectContactStatus=連絡先の見込み客のステータス +DictionaryProspectContactStatus=連絡先の見込み客の状態 DictionaryHolidayTypes=休暇-休暇の種類 -DictionaryOpportunityStatus=プロジェクト/引合の引合ステータス +DictionaryOpportunityStatus=プロジェクト/引合の引合状態 DictionaryExpenseTaxCat=経費報告書-輸送カテゴリ DictionaryExpenseTaxRange=経費報告書-輸送カテゴリ別の範囲 DictionaryTransportMode=域内報告書-トランスポートモード -DictionaryBatchStatus=製品ロット/シリアル品質管理ステータス +DictionaryBatchStatus=製品ロット/シリアル品質管理状態 +DictionaryAssetDisposalType=資産の処分の種類 TypeOfUnit=ユニットの種類 -SetupSaved=設定が保存されました +SetupSaved=設定が保存された SetupNotSaved=設定が保存されていない BackToModuleList=モジュールリストに戻る BackToDictionaryList=辞書リストに戻る @@ -1122,7 +1132,7 @@ ValueOfConstantKey=構成定数の値 ConstantIsOn=オプション%sがオンになっている NbOfDays=日数 AtEndOfMonth=今月末に -CurrentNext=現在/次へ +CurrentNext=月の指定日 Offset=オフセット AlwaysActive=常にアクティブ Upgrade=アップグレード @@ -1149,7 +1159,7 @@ NbOfRecord=レコード数 Host=サーバ DriverType=ドライバの種類 SummarySystem=システム情報の概要 -SummaryConst=すべてのDolibarr設定パラメータのリスト +SummaryConst=全Dolibarr設定パラメータのリスト MenuCompanySetup=法人/組織 DefaultMenuManager= 標準メニューマネージャ DefaultMenuSmartphoneManager=スマートフォンメニューマネージャ @@ -1187,24 +1197,24 @@ BankModuleNotActive=銀行口座モジュールは無効 ShowBugTrackLink=リンク「%s」を表示する ShowBugTrackLinkDesc=このリンクを表示しない場合は空のままにする。Dolibarrプロジェクトへのリンクに値「github」を使用するか、URL「https:// ...」を直接定義する。 Alerts=アラート -DelaysOfToleranceBeforeWarning=次の警告アラートを表示する前に遅延する。 +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=注文書は処理されない +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_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_CHEQUES_TO_DEPOSIT=小切手入金が未済 Delays_MAIN_DELAY_EXPENSEREPORTS=承認する経費報告書 -Delays_MAIN_DELAY_HOLIDAYS=承認のリクエストを残す +Delays_MAIN_DELAY_HOLIDAYS=承認の休暇申請を残す SetupDescription1=Dolibarrの使用を開始する前に、いくつかの初期パラメーターを定義し、モジュールを有効化/構成する必要がある。 SetupDescription2=次の2つのセクションは必須 ( 【設定】メニューの最初の2つのエントリ ) 。 SetupDescription3= %s-> %s

    アプリケーションのデフォルトの動作をカスタマイズするために使用される基本パラメーター ( 国関連の機能など ) 。 @@ -1228,29 +1238,30 @@ BrowserName=ブラウザ名 BrowserOS=ブラウザOS ListOfSecurityEvents=Dolibarrセキュリティイベントのリスト SecurityEventsPurged=セキュリティイベントのパージ +TrackableSecurityEvents=Trackable security events LogEventDesc=特定のセキュリティイベントのログを有効にする。管理者はメニュー%s-%sを介してログを記録する。警告、この機能はデータベースに大量のデータを生成する可能性がある。 AreaForAdminOnly=設定パラメータは、管理者ユーザのみが設定できる。 -SystemInfoDesc=システム情報では、読み取り専用モードでのみ管理者の目に見える得るその他の技術情報。 +SystemInfoDesc=システム情報では、読取り専用モードでのみ管理者の目に見える得るその他の技術情報。 SystemAreaForAdminOnly=この領域は、管理者ユーザのみが使用できる。 Dolibarrのユーザ権限は、この制限を変更できない。 CompanyFundationDesc=あなたの法人/組織の情報を編集する。完了したら、ページの下部にある「%s」ボタンをクリックする。 AccountantDesc=外部の会計士/簿記係がいる場合は、ここでその情報を編集できる。 AccountantFileNumber=会計士コード DisplayDesc=アプリケーションの外観と表示に影響を与えるパラメータは、ここで変更できる。 AvailableModules=利用可能なアプリ/モジュール -ToActivateModule=モジュールを有効にするには、設定エリア ( ホーム - >設定 - >モジュール ) に行く。 +ToActivateModule=モジュールを有効化するには、設定エリア ( ホーム - >設定 - >モジュール ) に行く。 SessionTimeOut=セッションのタイムアウト -SessionExplanation=この数値は、セッションクリーナーが内部PHPセッションクリーナーによって実行された場合 ( および他に何も実行されない場合 ) 、この遅延の前にセッションが期限切れにならないことを保証する。内部PHPセッションクリーナーは、この遅延後にセッションが期限切れになることを保証しない。この遅延の後、セッションクリーナーが実行されると期限切れになるので、すべての %s / %s アクセス、他のセッションによるアクセス中のみ ( 値が0なら、セッションのクリアは外部処理によってのみ行われることを意味する ) 。
    注:外部セッションクリーニングメカニズム ( debianのcron、ubuntu ... ) を備えた一部のサーバーでは、ここに入力した値に関係なく、外部設定で定義された期間が経過するとセッションが破棄される可能性がある。 +SessionExplanation=この数値は、セッションクリーナーが内部PHPセッションクリーナーによって実行された場合 ( および他に何も実行されない場合 ) 、この遅延の前にセッションが期限切れにならないことを保証する。内部PHPセッションクリーナーは、この遅延後にセッションが期限切れになることを保証しない。この遅延の後、セッションクリーナーが実行されると期限切れになるので、全 %s / %s アクセス、他のセッションによるアクセス中のみ ( 値が0なら、セッションのクリアは外部処理によってのみ行われることを意味する ) 。
    注:外部セッションクリーニングメカニズム ( debianのcron、ubuntu ... ) を備えた一部のサーバーでは、ここに入力した値に関係なく、外部設定で定義された期間が経過するとセッションが破棄される可能性がある。 SessionsPurgedByExternalSystem=このサーバー上のセッションは、外部メカニズム ( debianの下のcron、ubuntu ... ) 、おそらく %s 秒 ( =パラメーターセッションの値changeing the value so.gc_maxlifetime a09a4b739f17f8 ) によってクリーンアップされているもよう。サーバー管理者にセッション遅延の変更を依頼する必要がある。 TriggersAvailable=使用可能なトリガ -TriggersDesc=トリガーは、ディレクトリ htdocs / core / triggersにコピーされるとDolibarrワークフローの動作を変更するファイル。彼らは、Dolibarrイベントでアクティブ化された新規アクション ( 新規法人の作成、請求書の検証など ) を実現する。 +TriggersDesc=トリガーは、ディレクトリ htdocs / core / triggersにコピーされるとDolibarrワークフローの動作を変更するファイル。それらは、Dolibarrイベントで有効化された新規アクション ( 新規法人の作成、請求書の検証など ) を実現する。 TriggerDisabledByName=このファイル内のトリガはその名前に-NORUNサフィックスは無効になっている。 TriggerDisabledAsModuleDisabled=モジュール%sが無効になっているとして、このファイル内のトリガーが無効になっている。 -TriggerAlwaysActive=このファイル内のトリガーがアクティブにDolibarrモジュールであれ、常にアクティブ。 +TriggerAlwaysActive=このファイル内のトリガーは常に有効、有効化済Dolibarrモジュールであれば何でも。 TriggerActiveAsModuleActive=モジュール%sが有効になっているとして、このファイル内のトリガーがアクティブになる。 GeneratedPasswordDesc=自動生成されたパスワードに使用する方法を選択する。 -DictionaryDesc=すべての参照データを挿入する。デフォルトに値を追加できる。 +DictionaryDesc=全参照データを挿入する。デフォルトに値を追加できる。 ConstDesc=このページでは、他のページでは使用できないパラメーターを編集 ( オーバーライド ) できる。これらは主に、開発者/高度なトラブルシューティング専用の予約済パラメーター。 -MiscellaneousDesc=他のすべてのセキュリティ関連パラメータはここで定義される。 +MiscellaneousDesc=他の全セキュリティ関連パラメータはここで定義される。 LimitsSetup=制限/精密設定 LimitsDesc=Dolibarrが使用する制限、精度、最適化をここで定義できる MAIN_MAX_DECIMALS_UNIT=最大単価の小数 @@ -1264,7 +1275,7 @@ NoEventOrNoAuditSetup=セキュリティイベントはログに記録されて NoEventFoundWithCriteria=この検索条件のセキュリティイベントは見つからなかった。 SeeLocalSendMailSetup=ローカルのsendmailの設定を参照すること。 BackupDesc=Dolibarrインストールの完全バックアップには、2つの手順が必要。 -BackupDesc2=アップロードおよび生成されたすべてのファイルを含む「documents」ディレクトリ ( %s ) の内容をバックアップする。これには、ステップ1で生成されたすべてのダンプファイルも含まれる。この操作は数分続く場合がある。 +BackupDesc2=アップロードおよび生成された全ファイルを含む「documents」ディレクトリ ( %s ) の内容をバックアップする。これには、ステップ1で生成された全ダンプファイルも含まれる。この操作は数分続く場合がある。 BackupDesc3=データベース ( %s ) の構造と内容をダンプファイルにバックアップする。これには、次のアシスタントを使用できる。 BackupDescX=アーカイブされたディレクトリは安全な場所に保存する必要がある。 BackupDescY=生成されたダンプ·ファイルは安全な場所に格納する必要がある。 @@ -1273,7 +1284,7 @@ RestoreDesc=Dolibarrバックアップを復元するには、2つの手順が RestoreDesc2=「documents」ディレクトリのバックアップファイル ( zipファイルなど ) を新規Dolibarrインストールまたはこの現在のdocumentsディレクトリ ( %s ) に復元する。 RestoreDesc3=データベース構造とデータをバックアップダンプファイルから、新規Dolibarrインストールのデータベースまたはこの現在のインストールのデータベース ( %s ) に復元する。警告、復元が完了したら、バックアップ時間/インストールから存在したログイン/パスワードを使用して再度接続する必要がある。
    バックアップデータベースをこの現在のインストールに復元するには、このアシスタントに従うことができる。 RestoreMySQL=MySQLのインポート -ForcedToByAModule=このルールがアクティブ化モジュールによって%sに強制される。 +ForcedToByAModule=このルールが有効化済モジュールによって%sに強制される。 ValueIsForcedBySystem=この値はシステムによって強制される。変更することはできない。 PreviousDumpFiles=既存のバックアップファイル PreviousArchiveFiles=既存のアーカイブファイル @@ -1309,8 +1320,8 @@ ExtraFieldsSupplierOrdersLines=補完的な属性 ( 注文ライン ) ExtraFieldsSupplierInvoicesLines=補完的な属性 ( 請求書の行 ) ExtraFieldsThirdParties=補完的な属性 ( 取引先 ) ExtraFieldsContacts=補完的な属性 ( 連絡先/住所 ) -ExtraFieldsMember=補完的な属性 ( メンバー ) -ExtraFieldsMemberType=補完属性 ( メンバー種別 ) +ExtraFieldsMember=補完的な属性 ( 構成員 ) +ExtraFieldsMemberType=補完属性 ( 構成員種別 ) ExtraFieldsCustomerInvoices=補完的な属性 ( 請求書 ) ExtraFieldsCustomerInvoicesRec=補完的な属性 ( 請求書のテンプレート ) ExtraFieldsSupplierOrders=補完的な属性 ( 注文 ) @@ -1336,10 +1347,11 @@ WarningAtLeastKeyOrTranslationRequired=少なくともキーまたは翻訳文 NewTranslationStringToShow=表示する新規翻訳文字列 OriginalValueWas=元の翻訳は上書きされる。元の値は次のとおり。

    %s TransKeyWithoutOriginalValue=どの言語ファイルにも存在しない翻訳キー ' %s'の新規翻訳を強制した -TitleNumberOfActivatedModules=アクティブ化されたモジュール -TotalNumberOfActivatedModules=アクティブ化されたモジュール: %s / %s +TitleNumberOfActivatedModules=有効化されたモジュール +TotalNumberOfActivatedModules=有効化済モジュール: %s / %s YouMustEnableOneModule=少なくとも1つのモジュールを有効にする必要がある -ClassNotFoundIntoPathWarning=クラス%sがPHPパスに見つかりません +YouMustEnableTranslationOverwriteBefore=翻訳を置き換えることができるようにするには、最初に翻訳の上書きを有効にする必要がある +ClassNotFoundIntoPathWarning=クラス%sがPHPパスに見つからない YesInSummer=はい夏に OnlyFollowingModulesAreOpenedToExternalUsers=次のモジュールのみが ( そのようなユーザのアクセス許可に関係なく ) 外部ユーザが使用でき、アクセス許可が付与されている場合にのみ使用できることに注意すること:
    SuhosinSessionEncrypt=Suhosinによって暗号化されたセッションストレージ @@ -1374,11 +1386,11 @@ PasswordGenerationPerso=個人的に定義した構成に従ってパスワー SetupPerso=構成に応じて PasswordPatternDesc=パスワードパターンの説明 ##### Users setup ##### -RuleForGeneratedPasswords=パスワードを生成および検証するためのルール +RuleForGeneratedPasswords=パスワードを生成および検証ためのルール DisableForgetPasswordLinkOnLogonPage=ログインページに「パスワードを忘れた」リンクを表示しないこと UsersSetup=ユーザモジュールの設定 UserMailRequired=新規ユーザを作成するにはメールが必要 -UserHideInactive=非アクティブなユーザをユーザのすべてのコンボリストから非表示にする ( 非推奨:これは、一部のページで古いユーザをフィルタリングまたは検索できないことを意味する場合がある ) +UserHideInactive=非アクティブなユーザをユーザの全コンボリストから非表示にする ( 非推奨:これは、一部のページで古いユーザをフィルタリングまたは検索できないことを意味する場合がある ) UsersDocModules=ユーザレコードから生成されたドキュメントのドキュメントテンプレート GroupsDocModules=グループレコードから生成されたドキュメントのドキュメントテンプレート ##### HRM setup ##### @@ -1393,90 +1405,92 @@ NotificationsDescContact=*取引先の連絡先 ( 顧客または仕入先 ) ご NotificationsDescGlobal=*または、モジュールの設定ページでグローバルメールアドレスを設定する。 ModelModules=ドキュメントテンプレート DocumentModelOdt=OpenDocumentテンプレートからドキュメントを生成する ( LibreOffice、OpenOffice、KOffice、TextEditなどの.ODT / .ODSファイル ) -WatermarkOnDraft=ドラフト文書に透かし -JSOnPaimentBill=支払いフォームの支払い明細を自動入力する機能をアクティブ化する +WatermarkOnDraft=下書き文書に透かし +JSOnPaimentBill=支払フォームの支払明細を自動入力する機能を有効化する CompanyIdProfChecker=職業分類IDのルール -MustBeUnique=ユニークでなければなりませんか? +MustBeUnique=ユニークでなければならないか? MustBeMandatory=取引先の作成が必須 ( VAT番号または法人の種類が定義されている場合 ) ? MustBeInvoiceMandatory=請求書の検証は必須 か? TechnicalServicesProvided=提供される技術サービス #####DAV ##### -WebDAVSetupDesc=これは、WebDAVディレクトリにアクセスするためのリンク。これには、URLを知っているすべてのユーザに公開されている "public" ディレクトリ ( 公開ディレクトリへのアクセスが許可されている場合 ) と、アクセスに既存のログインアカウント/パスワードが必要な "private" ディレクトリが含まれる。 +WebDAVSetupDesc=これは、WebDAVディレクトリにアクセスするためのリンク。これには、URLを知っている全ユーザに公開されている "public" ディレクトリ ( 公開ディレクトリへのアクセスが許可されている場合 ) と、アクセスに既存のログインアカウント/パスワードが必要な "private" ディレクトリが含まれる。 WebDavServer=%sサーバーのルートURL:%s ##### Webcal setup ##### WebCalUrlForVCalExport=%s形式のエクスポートリンクは以下のリンクから利用可能:%s ##### Invoices ##### BillsSetup=請求書モジュールの設定 -BillsNumberingModule=モジュールの番号請求書とクレジットメモ +BillsNumberingModule=請求書と貸方票採番モデル BillsPDFModules=請求書ドキュメントモデル BillsPDFModulesAccordindToInvoiceType=請求書種別に応じた請求書ドキュメントモデル PaymentsPDFModules=支払文書モデル -ForceInvoiceDate=検証日に請求書の日付を強制的に -SuggestedPaymentModesIfNotDefinedInInvoice=請求書に定義されていない場合、デフォルトで請求書の推奨支払いモード -SuggestPaymentByRIBOnAccount=口座からの引出しによる支払いを提案 -SuggestPaymentByChequeToAddress=小切手による支払いを提案する +ForceInvoiceDate=請求書の日付を検証日に強制する +SuggestedPaymentModesIfNotDefinedInInvoice=請求書に定義されていない場合、デフォルトで請求書の推奨支払モード +SuggestPaymentByRIBOnAccount=口座からの引出しによる支払を提案 +SuggestPaymentByChequeToAddress=小切手による支払を提案する FreeLegalTextOnInvoices=請求書のフリーテキスト -WatermarkOnDraftInvoices=ドラフト請求書の透かし ( 空の場合はなし ) -PaymentsNumberingModule=支払い番号付けモデル -SuppliersPayment=仕入先の支払い -SupplierPaymentSetup=仕入先支払いの設定 +WatermarkOnDraftInvoices=下書き請求書の透かし ( 空ならなし ) +PaymentsNumberingModule=支払採番モデル +SuppliersPayment=仕入先の支払 +SupplierPaymentSetup=仕入先支払の設定 +InvoiceCheckPosteriorDate=検証前に製造日を確認すること +InvoiceCheckPosteriorDateHelp=請求書の日付が同じタイプの最後の請求書の日付より前である場合、請求書の検証は禁止される。 ##### Proposals ##### -PropalSetup=商業的な提案はモジュールの設定 -ProposalsNumberingModules=商業的な提案番号モジュール -ProposalsPDFModules=商業的な提案文書のモデル -SuggestedPaymentModesIfNotDefinedInProposal=プロポーザルで定義されていない場合、デフォルトでプロポーザルの推奨支払いモード -FreeLegalTextOnProposal=商業的な提案でフリーテキスト -WatermarkOnDraftProposal=ドラフト商業提案の透かし ( 空の場合はなし ) +PropalSetup=商取引提案モジュールの設定 +ProposalsNumberingModules=商取引提案採番モデル +ProposalsPDFModules=商取引提案文書のモデル +SuggestedPaymentModesIfNotDefinedInProposal=プロポーザルで定義されていない場合、デフォルトでプロポーザルの推奨支払モード +FreeLegalTextOnProposal=商取引提案でのフリーテキスト +WatermarkOnDraftProposal=下書き商取引提案の透かし ( 空ならなし ) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=提案先の銀行口座を尋ねる ##### SupplierProposal ##### SupplierProposalSetup=価格はサプライヤーモジュールの設定を要求する -SupplierProposalNumberingModules=価格はサプライヤーにモデルの番号付けを要求する +SupplierProposalNumberingModules=価格には仕入先採番モデルが必要 SupplierProposalPDFModules=価格要求サプライヤー文書モデル FreeLegalTextOnSupplierProposal=価格要求サプライヤーに関するフリーテキスト -WatermarkOnDraftSupplierProposal=ドラフト価格要求サプライヤーの透かし ( 空の場合はなし ) +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=モジュールの番号受注 +OrdersNumberingModules=注文採番モデル OrdersModelModule=注文書のモデル FreeLegalTextOnOrders=受注上のフリーテキスト -WatermarkOnDraftOrders=ドラフト注文の透かし ( 空の場合はなし ) +WatermarkOnDraftOrders=下書き注文の透かし ( 空ならなし ) ShippableOrderIconInList=注文が発送可能かどうかを示すアイコンを注文リストに追加する BANK_ASK_PAYMENT_BANK_DURING_ORDER=注文先の銀行口座を尋ねる ##### Interventions ##### InterventionsSetup=出張モジュールの設定 FreeLegalTextOnInterventions=出張のドキュメント上でフリーテキスト -FicheinterNumberingModules=出張番号モジュール +FicheinterNumberingModules=出張採番モデル TemplatePDFInterventions=出張カードのドキュメントモデル WatermarkOnDraftInterventionCards=出張カード文書の透かし ( 空の場合はなし ) ##### Contracts ##### ContractsSetup=契約/サブスクリプションモジュールの設定 -ContractsNumberingModules=モジュールの番号付けの契約 +ContractsNumberingModules=契約採番モジュール TemplatePDFContracts=契約文書モデル FreeLegalTextOnContracts=契約に関するフリーテキスト -WatermarkOnDraftContractCards=ドラフト契約の透かし ( 空の場合はなし ) +WatermarkOnDraftContractCards=下書き契約の透かし ( 空ならなし ) ##### Members ##### -MembersSetup=メンバーモジュールの設定 +MembersSetup=構成員モジュールの設定 MemberMainOptions=主なオプション -AdherentLoginRequired= 各メンバーのログインを管理する -AdherentMailRequired=新規メンバーを作成するにはメールが必要 -MemberSendInformationByMailByDefault=メンバー ( 検証や新規サブスクリプション ) にメールの確定を送信するチェックボックスはデフォルトでオンになっている -MemberCreateAnExternalUserForSubscriptionValidated=検証された新規メンバーサブスクリプションごとに外部ユーザーログインを作成する -VisitorCanChooseItsPaymentMode=訪問者は利用可能な支払いモードから選択できる +AdherentLoginRequired= 各構成員のログインを管理する +AdherentMailRequired=新規構成員を作成するにはメールが必要 +MemberSendInformationByMailByDefault=構成員 ( 検証や新規サブスクリプション ) にメールの確定を送信するチェックボックスはデフォルトでオンになっている +MemberCreateAnExternalUserForSubscriptionValidated=検証済新規構成員サブスクリプションごとに外部ユーザログインを作成する +VisitorCanChooseItsPaymentMode=訪問者は利用可能な支払モードから選択できる MEMBER_REMINDER_EMAIL=期限切れのサブスクリプションの電子メール
    によって自動リマインダーを有効にする。注:モジュール %s を有効にして、リマインダーを送信するように正しく設定する必要がある。 -MembersDocModules=メンバーレコードから生成されたドキュメント用のドキュメントテンプレート +MembersDocModules=構成員レコードから生成されたドキュメント用のドキュメントテンプレート ##### LDAP setup ##### LDAPSetup=LDAPの設定 LDAPGlobalParameters=グローバルパラメータ LDAPUsersSynchro=ユーザ LDAPGroupsSynchro=グループ LDAPContactsSynchro=コンタクト -LDAPMembersSynchro=メンバー -LDAPMembersTypesSynchro=メンバーの種類 +LDAPMembersSynchro=構成員 +LDAPMembersTypesSynchro=構成員の種類 LDAPSynchronization=LDAP同期 LDAPFunctionsNotAvailableOnPHP=LDAP関数は、PHPで利用可能ではない LDAPToDolibarr=LDAP - > Dolibarr @@ -1485,8 +1499,8 @@ LDAPNamingAttribute=LDAP内のキー LDAPSynchronizeUsers=LDAP内のユーザの組織 LDAPSynchronizeGroups=LDAPのグループの組織 LDAPSynchronizeContacts=LDAPの連絡組織 -LDAPSynchronizeMembers=LDAPの財団のメンバーの組織 -LDAPSynchronizeMembersTypes=LDAPでの財団のメンバー種別の編成 +LDAPSynchronizeMembers=LDAPでの財団構成員の組織 +LDAPSynchronizeMembersTypes=LDAPでの財団の構成員種別の編成 LDAPPrimaryServer=プライマリサーバ LDAPSecondaryServer=セカンダリサーバ LDAPServerPort=サーバポート @@ -1507,18 +1521,18 @@ LDAPServerDnExample=完全なDN ( 例:DC =会社、dc = comなど ) LDAPDnSynchroActive=ユーザとグループの同期 LDAPDnSynchroActiveExample=LDAP同期にDolibarrまたはDolibarrへのLDAP LDAPDnContactActive=連絡先の同期 -LDAPDnContactActiveExample=活性化/不活性の同期 -LDAPDnMemberActive=メンバーの同期 -LDAPDnMemberActiveExample=活性化/不活性の同期 -LDAPDnMemberTypeActive=メンバー種別の同期 -LDAPDnMemberTypeActiveExample=活性化/不活性の同期 +LDAPDnContactActiveExample=有効化/無効化の同期 +LDAPDnMemberActive=構成員の同期 +LDAPDnMemberActiveExample=有効化/無効化の同期 +LDAPDnMemberTypeActive=構成員種別の同期 +LDAPDnMemberTypeActiveExample=有効化/不活性の同期 LDAPContactDn=Dolibarrの連絡先のDN LDAPContactDnExample=完全なDN ( 例:OU =連絡先、DC =社会、dc = comなど ) -LDAPMemberDn=DolibarrメンバーのDN -LDAPMemberDnExample=完全なDN ( 例:OU =メンバー、DC =社会、dc = comなど ) +LDAPMemberDn=Dolibarr構成員のDN +LDAPMemberDnExample=完全なDN ( 例:ou=members,dc=example,dc=com) LDAPMemberObjectClassList=オブジェクトクラスのリスト LDAPMemberObjectClassListExample=レコードの属性を定義するオブジェクトクラスのリスト ( 例:上は、inetOrgPersonまたはトップ、アクティブディレクトリのユーザ ) -LDAPMemberTypeDn=Dolibarrメンバー種別DN +LDAPMemberTypeDn=Dolibarr構成員種別DN LDAPMemberTypepDnExample=完全なDN ( 例:ou = memberstypes、dc = example、dc = com ) LDAPMemberTypeObjectClassList=オブジェクトクラスのリスト LDAPMemberTypeObjectClassListExample=レコードの属性を定義するオブジェクトクラスのリスト ( 例:上、groupOfUniqueNamesの ) @@ -1532,8 +1546,8 @@ LDAPTestConnect=LDAP接続をテストする LDAPTestSynchroContact=連絡先の同期をテスト LDAPTestSynchroUser=テストユーザの同期 LDAPTestSynchroGroup=テストグループの同期 -LDAPTestSynchroMember=テストメンバーの同期 -LDAPTestSynchroMemberType=メンバー種別の同期をテストする +LDAPTestSynchroMember=テスト構成員の同期 +LDAPTestSynchroMemberType=構成員種別の同期をテストする LDAPTestSearch= LDAP検索をテストする LDAPSynchroOK=同期テストに成功 LDAPSynchroKO=失敗した同期のテスト @@ -1584,7 +1598,7 @@ LDAPFieldDescription=説明 LDAPFieldDescriptionExample=例:説明 LDAPFieldNotePublic=公開メモ LDAPFieldNotePublicExample=例:publicnote -LDAPFieldGroupMembers= グループメンバー +LDAPFieldGroupMembers= グループ構成員 LDAPFieldGroupMembersExample= 例:uniqueMember LDAPFieldBirthdate=誕生日 LDAPFieldCompany=法人 @@ -1602,13 +1616,13 @@ LDAPFieldHomedirectory=ホームディレクトリ LDAPFieldHomedirectoryExample=例:ホームディレクトリ LDAPFieldHomedirectoryprefix=ホームディレクトリプレフィックス LDAPSetupNotComplete= ( 他のタブに行く ) LDAP設定完了していない -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=いいえ、管理者またはパスワードが提供されない。 LDAPのアクセスは匿名で、読み取り専用モードになる。 +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=いいえ、管理者またはパスワードが提供されない。 LDAPのアクセスは匿名で、読取り専用モードになる。 LDAPDescContact=このページでは、Dolibarr接点で検出された各データのためにLDAPツリー内のLDAP属性名を定義することができる。 LDAPDescUsers=このページでは、Dolibarrユーザで検出された各データのためにLDAPツリー内のLDAP属性名を定義することができる。 LDAPDescGroups=このページでは、Dolibarrグループで検出された各データのためにLDAPツリー内のLDAP属性名を定義することができる。 -LDAPDescMembers=このページでは、Dolibarrメンバーモジュールで検出された各データのためにLDAPツリー内のLDAP属性名を定義することができる。 -LDAPDescMembersTypes=このページでは、Dolibarrメンバー種別で見つかった各データのLDAPツリーでLDAP属性名を定義できる。 -LDAPDescValues=値の例は、次のロードされたスキーマを持つOpenLDAPのために設計されている。core.schema、cosine.schema、inetorgperson.schema ) 。あなたがthoose値とOpenLDAPを使用する場合は、すべてのthooseスキーマが読み込まれているように、LDAP設定ファイル slapd.conf 変更する 。 +LDAPDescMembers=このページでは、Dolibarr構成員モジュールで検出された各データのためにLDAPツリー内のLDAP属性名を定義することができる。 +LDAPDescMembersTypes=このページでは、Dolibarr構成員種別で見つかった各データのLDAPツリーでLDAP属性名を定義できる。 +LDAPDescValues=値の例は、次のロードされたスキーマを持つOpenLDAPのために設計されている。core.schema、cosine.schema、inetorgperson.schema ) 。あなたがthoose値とOpenLDAPを使用する場合は、全thooseスキーマが読み込まれているように、LDAP設定ファイル slapd.conf 変更する 。 ForANonAnonymousAccess=認証されたアクセスも ( たとえば、書き込みアクセス用 ) PerfDolibarr=パフォーマンスの設定/最適化報告書 YouMayFindPerfAdviceHere=このページでは、パフォーマンスに関連するいくつかのチェックまたはアドバイスを提供する。 @@ -1616,11 +1630,11 @@ NotInstalled=インストールされていない。 NotSlowedDownByThis=これによって遅くなることはない。 NotRiskOfLeakWithThis=これで漏れのリスクはない。 ApplicativeCache=適用可能なキャッシュ -MemcachedNotAvailable=適用可能なキャッシュが見つかりません。キャッシュサーバーMemcachedと、このキャッシュサーバーを使用できるモジュールをインストールすることで、パフォーマンスを向上させることができる。
    詳細はこちらhttp://wiki.dolibarr.org/index.php/Module_MemCached_EN
    多くのウェブホスティングプロバイダーがそのようなキャッシュサーバーを提供していないことに注意すること。 +MemcachedNotAvailable=適用可能なキャッシュが見つからない。キャッシュサーバーMemcachedと、このキャッシュサーバーを使用できるモジュールをインストールすることで、パフォーマンスを向上させることができる。
    詳細はこちらhttp://wiki.dolibarr.org/index.php/Module_MemCached_EN
    多くのウェブホスティングプロバイダーがそのようなキャッシュサーバーを提供していないことに注意すること。 MemcachedModuleAvailableButNotSetup=適用キャッシュのモジュールmemcachedが見つかりましたが、モジュールの設定が完了していない。 MemcachedAvailableAndSetup=memcachedサーバー専用のモジュールmemcachedが有効になっている。 OPCodeCache=OPCodeキャッシュ -NoOPCodeCacheFound=OPCodeキャッシュが見つかりません。 XCacheまたはeAccelerator以外のOPCodeキャッシュを使用している ( 良い ) か、OPCodeキャッシュを持っていない ( 非常に悪い ) 可能性がある。 +NoOPCodeCacheFound=OPCodeキャッシュが見つからない。 XCacheまたはeAccelerator以外のOPCodeキャッシュを使用している ( 良い ) か、OPCodeキャッシュを持っていない ( 非常に悪い ) 可能性がある。 HTTPCacheStaticResources=静的リソース ( css、img、javascript ) のHTTPキャッシュ FilesOfTypeCached=種別%sのファイルはHTTPサーバーによってキャッシュされる FilesOfTypeNotCached=種別%sのファイルはHTTPサーバーによってキャッシュされない @@ -1648,7 +1662,7 @@ OnProductSelectAddProductDesc=ドキュメントの行として製品追加す AutoFillFormFieldBeforeSubmit=説明入力フィールドに製品説明を自動入力する DoNotAutofillButAutoConcat=入力フィールドに製品説明を自動入力しない。製品説明は、入力された説明に自動的に連結される。 DoNotUseDescriptionOfProdut=製品説明が文書の行の説明に含まれることはない -MergePropalProductCard=製品/サービスが提案に含まれている場合、製品/サービスの【添付ファイル】タブで、製品のPDFドキュメントを提案のPDFazurにマージするオプションをアクティブにする +MergePropalProductCard=製品/サービスが提案に含まれている場合、製品/サービスの【添付ファイル】タブで、製品のPDFドキュメントを提案のPDF azurにマージするオプションを有効化する ViewProductDescInThirdpartyLanguageAbility=フォームでは製品説明を取引先の言語(それ以外の場合はユーザの言語)で表示 UseSearchToSelectProductTooltip=また、製品の数が多い ( > 100 000 ) 場合は、【設定】-> 【その他】で定数PRODUCT_DONOTSEARCH_ANYWHEREを1に設定することで速度を上げることができる。その後、検索は文字列の先頭に限定される。 UseSearchToSelectProduct=キーを押すまで待ってから、製品コンボリストのコンテンツをロードすること ( これにより、製品の数が多い場合にパフォーマンスが向上する可能性があるが、あまり便利ではない ) @@ -1692,7 +1706,7 @@ GenbarcodeLocation=バーコード生成コマンドラインツール ( 一部 BarcodeInternalEngine=内部エンジン BarCodeNumberManager=バーコード番号を自動定義するマネージャー ##### Prelevements ##### -WithdrawalsSetup=モジュールの口座振替支払いの設定 +WithdrawalsSetup=モジュールの口座振替支払の設定 ##### ExternalRSS ##### ExternalRSSSetup=外部のRSSをインポート設定 NewRSS=新規RSSフィード @@ -1708,31 +1722,31 @@ NotificationSetup=電子メール通知モジュールの設定 NotificationEMailFrom=通知モジュールによって送信された電子メールの送信者電子メール ( 差出人 ) FixedEmailTarget=受信者 NotificationDisableConfirmMessageContact=通知受信者(連絡先としてサブスクライブ)のリストを確定メッセージに非表示にする -NotificationDisableConfirmMessageUser=通知受信者(ユーザーとしてサブスクライブ)のリストを確定メッセージに非表示にする +NotificationDisableConfirmMessageUser=通知受信者(ユーザとしてサブスクライブ)のリストを確定メッセージに非表示にする NotificationDisableConfirmMessageFix=通知受信者(グローバル電子メールとしてサブスクライブ)のリストを確定メッセージに非表示にする ##### Sendings ##### SendingsSetup=出荷モジュールの設定 SendingsReceiptModel=領収書のモデルを送信する -SendingsNumberingModules=モジュールの番号Sendings +SendingsNumberingModules=発信採番モジュール SendingsAbility=顧客への配送用の出荷シートをサポートする NoNeedForDeliveryReceipts=ほとんどの場合、出荷用シートは、顧客への配送用のシート ( 送信する製品のリスト ) と、顧客が受け取って署名するシートの両方として使用される。したがって、製品入庫受領書は重複した機能であり、有効化されることはめったにない。 FreeLegalTextOnShippings=出荷に関するフリーテキスト ##### Deliveries ##### -DeliveryOrderNumberingModules=製品の納入領収書ナンバリングモジュール +DeliveryOrderNumberingModules=製品発送受領採番モジュール DeliveryOrderModel=製品の納入領収書モデル DeliveriesOrderAbility=サポート製品の納入の領収書 FreeLegalTextOnDeliveryReceipts=配達のレシートにフリーテキスト ##### FCKeditor ##### AdvancedEditor=高度なエディタ -ActivateFCKeditor=のための高度なエディタをアクティブにする。 +ActivateFCKeditor=高度なエディタを有効化: FCKeditorForNotePublic=要素の「パブリックノート」フィールドのWYSIWIG作成/編集 FCKeditorForNotePrivate=要素の「プライベートノート」フィールドのWYSIWIG作成/編集 FCKeditorForCompany=要素のフィールド記述のWYSIWIG作成/エディション(製品/サービスを除く) FCKeditorForProduct=製品/サービスのフィールド記述のWYSIWIG作成/エディション -FCKeditorForProductDetails=WYSIWIGによる製品の作成/編集では、すべてのエンティティ(提案、注文、請求書など)の詳細行が示される。 警告:この場合にこのオプションを使用することは、PDFファイルを作成するときに特殊文字やページの書式設定で問題が発生する可能性があるため、真剣に推奨されない。 +FCKeditorForProductDetails=WYSIWIGによる製品の作成/編集では、全エンティティ(提案、注文、請求書など)の詳細行が示される。 警告:この場合にこのオプションを使用することは、PDFファイルを作成するときに特殊文字やページの書式設定で問題が発生する可能性があるため、真剣に推奨されない。 FCKeditorForMailing= 郵送のWYSIWIGエディタの作成/版 FCKeditorForUserSignature=WYSIWIGによるユーザ署名の作成/編集 -FCKeditorForMail=すべてのメールのWYSIWIG作成/エディション ( 【ツール】-> 【電子メール】を除く ) +FCKeditorForMail=全メールのWYSIWIG作成/エディション ( 【ツール】-> 【電子メール】を除く ) FCKeditorForTicket=チケットのWYSIWIG作成/エディション ##### Stock ##### StockSetup=在庫モジュール設定 @@ -1746,7 +1760,7 @@ NotTopTreeMenuPersonalized=トップメニューエントリにリンクされ NewMenu=新メニュー MenuHandler=メニューハンドラ MenuModule=ソース·モジュール -HideUnauthorizedMenu=内部ユーザーに対しても許可されていないメニューを非表示にする(それ以外の場合は灰色で表示される) +HideUnauthorizedMenu=内部ユーザに対しても許可されていないメニューを非表示にする(それ以外の場合は灰色で表示される) DetailId=idのメニュー DetailMenuHandler=新規メニューを表示するメニューハンドラ DetailMenuModule=モジュール名のメニューエントリは、モジュールから来る場合 @@ -1769,13 +1783,13 @@ TaxSetup=税金、社会税または財政税、配当モジュールの設定 OptionVatMode=により、付加価値税 OptionVATDefault=標準ベース OptionVATDebitOption=発生主義 -OptionVatDefaultDesc=付加価値税の支払い期限:
    -商品の配達時 ( 請求日に基づく )
    -サービスの支払い時 -OptionVatDebitOptionDesc=VATの支払い期限:
    -商品の配達時 ( 請求日に基づく )
    -サービスの請求書 ( 借方 ) +OptionVatDefaultDesc=付加価値税の支払期限:
    -商品の配達時 ( 請求日に基づく )
    -サービスの支払時 +OptionVatDebitOptionDesc=VATの支払期限:
    -商品の配達時 ( 請求日に基づく )
    -サービスの請求書 ( 借方 ) OptionPaymentForProductAndServices=製品およびサービスの現金ベース -OptionPaymentForProductAndServicesDesc=付加価値税の支払い期限:
    -商品の支払いについて
    -サービスの支払いについて +OptionPaymentForProductAndServicesDesc=付加価値税の支払期限:
    -商品の支払について
    -サービスの支払について SummaryOfVatExigibilityUsedByDefault=選択したオプションに応じたデフォルトのVAT適格期間: OnDelivery=着払い -OnPayment=支払いに +OnPayment=支払に OnInvoice=請求書 SupposedToBePaymentDate=使用する支払日 SupposedToBeInvoiceDate=使用される請求書の日付 @@ -1786,7 +1800,7 @@ YourCompanyDoesNotUseVAT=あなたの法人はVATを使用しないように定 AccountancyCode=会計コード AccountancyCodeSell=販売会計コード AccountancyCodeBuy=購入会計コード -CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=新しい税金を作成するときは、デフォルトで「支払いを自動的に作成する」チェックボックスを空のままにする +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=新しい税金を作成するときは、デフォルトで「支払を自動的に作成する」チェックボックスを空のままにする ##### Agenda ##### AgendaSetup=イベントと議題モジュールの設定 PasswordTogetVCalExport=エクスポートのリンクを許可するキー @@ -1795,9 +1809,9 @@ PastDelayVCalExport=より古いイベントはエクスポートしない AGENDA_USE_EVENT_TYPE=イベント種別を使用する ( メニューの【設定】-> 【辞書】-> 【アジェンダイベントの種別】で管理 ) AGENDA_USE_EVENT_TYPE_DEFAULT=イベント作成フォームでイベントの種別にこのデフォルト値を自動的に設定する AGENDA_DEFAULT_FILTER_TYPE=アジェンダビューの検索フィルタでこの種別のイベントを自動的に設定する -AGENDA_DEFAULT_FILTER_STATUS=アジェンダビューの検索フィルタでイベントのこのステータスを自動的に設定する +AGENDA_DEFAULT_FILTER_STATUS=アジェンダビューの検索フィルタでイベントのこの状態を自動的に設定する AGENDA_DEFAULT_VIEW=メニューの議題を選択するときに、デフォルトでどのビューを開くか -AGENDA_REMINDER_BROWSER=ユーザーのブラウザ
    でイベントリマインダーを有効にする(リマインダーの日付に達すると、ブラウザにポップアップが表示される。各ユーザーは、ブラウザの通知設定からそのような通知を無効にできる)。 +AGENDA_REMINDER_BROWSER=ユーザのブラウザでイベントリマインダーを有効にする(リマインダーの日付に達すると、ブラウザにポップアップが表示される。各ユーザは、ブラウザの通知設定からそのような通知を無効にできる)。 AGENDA_REMINDER_BROWSER_SOUND=音声通知を有効にする AGENDA_REMINDER_EMAIL=電子メールでイベントリマインダーを有効にする(リマインダーオプション/遅延は各イベントで定義できる)。 AGENDA_REMINDER_EMAIL_NOTE=注:スケジュールされたジョブ%sの頻度は、リマインダーが正しいタイミングで送信されることを確認するのに十分であること。 @@ -1812,16 +1826,16 @@ ClickToDialUseTelLinkDesc=ユーザがソフトフォンまたはソフトウェ CashDesk=POS CashDeskSetup=POSモジュールの設定 CashDeskThirdPartyForSell=販売に使用するデフォルトのジェネリック取引先 -CashDeskBankAccountForSell=現金支払いを受け取るために使用するデフォルトの勘定科目 -CashDeskBankAccountForCheque=小切手による支払いの受け取りに使用するデフォルトの勘定科目 -CashDeskBankAccountForCB=クレジットカードでの現金支払いを受け取るために使用するデフォルトの勘定科目 -CashDeskBankAccountForSumup=SumUpによる支払いの受け取りに使用するデフォルトの銀行口座 +CashDeskBankAccountForSell=現金支払を受け取るために使用するデフォルトの勘定科目 +CashDeskBankAccountForCheque=小切手による支払の受け取りに使用するデフォルトの勘定科目 +CashDeskBankAccountForCB=クレジットカードでの現金支払を受け取るために使用するデフォルトの勘定科目 +CashDeskBankAccountForSumup=SumUpによる支払の受け取りに使用するデフォルトの銀行口座 CashDeskDoNotDecreaseStock=POSから販売が行われる場合、在庫減少を無効にする ( 「いいえ」の場合、在庫モジュールで設定されたオプションに関係なく、POSから行われた販売ごとに在庫減少が行われる ) 。 CashDeskIdWareHouse=在庫減少に使用する倉庫を強制および制限する StockDecreaseForPointOfSaleDisabled=POSからの在庫減少が無効になった StockDecreaseForPointOfSaleDisabledbyBatch=POSの在庫減少は、モジュールシリアル/ロット管理 ( 現在アクティブ ) と互換性がないため、在庫減少は無効になっている。 CashDeskYouDidNotDisableStockDecease=POSから販売するときに、在庫減少を無効にしなかった。したがって、倉庫が必要。 -CashDeskForceDecreaseStockLabel=バッチ製品の在庫減少を余儀なくされました。 +CashDeskForceDecreaseStockLabel=バッチ製品の在庫減少を余儀なくされた。 CashDeskForceDecreaseStockDesc=最も古いeatbyおよびsellbyの日付で最初に減らする。 CashDeskReaderKeyCodeForEnter=バーコードリーダーで定義された「Enter」のキーコード ( 例:13 ) ##### Bookmark ##### @@ -1832,15 +1846,15 @@ NbOfBoomarkToShow=左側のメニューに表示するブックマークの最 WebServicesSetup=ウェブサービスモジュールの設定 WebServicesDesc=このモジュールを有効にすることによって、Dolibarrでは、その他のウェブサービスを提供するWebサービスのサーバーになる。 WSDLCanBeDownloadedHere=提供されるサービスのWSDL記述子ファイルはここからダウンロードできる。 -EndPointIs=SOAPクライアントは、URLで入手可能なDolibarrエンドポイントにリクエストを送信する必要がある +EndPointIs=SOAPクライアントは、URLで入手可能なDolibarrエンドポイントに要求を送信する必要がある ##### API #### ApiSetup=APIモジュールの設定 ApiDesc=このモジュールを有効にすることで、DolibarrはさまざまなWebサービスを提供するRESTサーバーになる。 -ApiProductionMode=本番モードを有効にする ( これにより、サービス管理のためのキャッシュの使用がアクティブになる ) +ApiProductionMode=本番モードを有効化する ( これにより、サービス管理のためのキャッシュの使用が有効化する ) ApiExporerIs=URLでAPIを調べてテストできる OnlyActiveElementsAreExposed=有効なモジュールの要素のみが公開される ApiKey=APIのキー -WarningAPIExplorerDisabled=APIエクスプローラーが無効になっている。 APIサービスを提供するためにAPIエクスプローラーは必要ない。これは、開発者がRESTAPIを検索/テストするためのツール。このツールが必要な場合は、モジュールAPIRESTの設定に移動してアクティブにする。 +WarningAPIExplorerDisabled=APIエクスプローラーが無効になっている。 APIサービスを提供するためにAPIエクスプローラーは必要ない。これは、開発者がRESTAPIを検索/テストするためのツール。このツールが必要な場合は、モジュールAPIRESTの設定に移動して有効化する。 ##### Bank ##### BankSetupModule=銀行のモジュールの設定 FreeLegalTextOnChequeReceipts=小切手領収書のフリーテキスト @@ -1849,28 +1863,28 @@ BankOrderGlobal=一般的な BankOrderGlobalDesc=一般的な表示順 BankOrderES=スペイン語 BankOrderESDesc=スペイン語の表示順​​序 -ChequeReceiptsNumberingModule=領収書番号付けモジュールを確認する +ChequeReceiptsNumberingModule=領収採番モジュールを確認する ##### Multicompany ##### MultiCompanySetup=マルチ法人のモジュールの設定 ##### Suppliers ##### SuppliersSetup=仕入先モジュールの設定 -SuppliersCommandModel=注文書の完全なテンプレート -SuppliersCommandModelMuscadet=注文書の完全なテンプレート ( cornasテンプレートの古い実装 ) +SuppliersCommandModel=購買発注の完全なテンプレート +SuppliersCommandModelMuscadet=購買発注の完全なテンプレート ( cornasテンプレートの古い実装 ) SuppliersInvoiceModel=仕入先請求書の完全なテンプレート -SuppliersInvoiceNumberingModel=仕入先の請求書の番号付けモデル +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 -NoteOnPathLocation=国のデータファイルへのあなたのIPは、PHPが読み取ることができるディレクトリ内になければならないことに注意すること ( お使いのPHPのopen_basedirの設定とファイルシステムのアクセス権を確認する ) 。 +NoteOnPathLocation=国のデータファイルへのあなたのIPは、PHPが読込むことができるディレクトリ内になければならないことに注意すること ( お使いのPHPのopen_basedirの設定とファイルシステムのアクセス権を確認する ) 。 YouCanDownloadFreeDatFileTo=あなたは%sでMaxmindののGeoIP国ファイルの無料デモ版をダウンロードすることできる。 YouCanDownloadAdvancedDatFileTo=また、%sでMaxmindののGeoIP国のファイルの更新と 、より完全なバージョンを、ダウンロードすることができる。 TestGeoIPResult=変換IPのテスト - >国 ##### Projects ##### -ProjectsNumberingModules=プロジェクトは、モジュールの番号 +ProjectsNumberingModules=プロジェクト採番モジュール ProjectsSetup=プロジェクトモジュールの設定 ProjectsModelModule=プロジェクトの報告書sドキュメントモデル -TasksNumberingModules=タスク番号付けモジュール +TasksNumberingModules=タスク採番モジュール TaskModelModule=タスク報告書sドキュメントモデル UseSearchToSelectProject=キーが押されるまで待ってから、プロジェクトコンボリストのコンテンツをロードすること。
    これにより、プロジェクトの数が多い場合にパフォーマンスが向上する可能性があるが、あまり便利ではない。 ##### ECM (GED) ##### @@ -1893,13 +1907,13 @@ NoAmbiCaracAutoGeneration=自動生成にあいまいな文字 ("1","l","i","|" SalariesSetup=モジュール給与の設定 SortOrder=並べ替え順序 Format=フォーマット -TypePaymentDesc=0:顧客支払い種別、1:仕入先支払い種別、2:顧客とサプライヤーの両方の支払い種別 +TypePaymentDesc=0:顧客支払種別、1:仕入先支払種別、2:顧客とサプライヤーの両方の支払種別 IncludePath=インクルードパス ( 変数%sに定義 ) ExpenseReportsSetup=モジュール経費報告書sの設定 TemplatePDFExpenseReports=経費報告書ドキュメントを生成するためのドキュメントテンプレート ExpenseReportsRulesSetup=モジュール経費報告書sの設定-ルール -ExpenseReportNumberingModules=経費報告書sの番号付けモジュール -NoModueToManageStockIncrease=自動在庫増加を管理できるモジュールはアクティブ化されていない。在庫増加は手動入力のみで行われる。 +ExpenseReportNumberingModules=経費報告書s採番モジュール +NoModueToManageStockIncrease=自動在庫増加を管理できるモジュールは有効化されていない。在庫増加は手動入力のみで行われる。 YouMayFindNotificationsFeaturesIntoModuleNotification=モジュール「通知」を有効にして構成することにより、電子メール通知のオプションを見つけることができる。 TemplatesForNotifications=通知用のテンプレート ListOfNotificationsPerUser=ユーザごとの自動通知のリスト* @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=アプリケーションから外部モジュールを HighlightLinesOnMouseHover=マウスの動きが通過したときにテーブルの行を強調表示する HighlightLinesColor=マウスが通過したときの線のハイライト色 ( ハイライトなしの場合は「ffffff」を使用 ) HighlightLinesChecked=チェックされたときの線のハイライト色 ( ハイライトなしの場合は「ffffff」を使用 ) +UseBorderOnTable=テーブルに左右の境界線を表示する BtnActionColor=アクションボタンの色 TextBtnActionColor=アクションボタンのテキストの色 TextTitleColor=ページタイトルのテキストの色 @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=キーボードのCTRL + F5を押すか、この値を NotSupportedByAllThemes=コアテーマで動作するが、外部テーマではサポートされていない可能性がある BackgroundColor=背景色 TopMenuBackgroundColor=トップメニューの背景色 -TopMenuDisableImages=トップメニューで画像を非表示 +TopMenuDisableImages=トップメニューのアイコンまたはテキスト LeftMenuBackgroundColor=左メニューの背景色 BackgroundTableTitleColor=表のタイトル行の背景色 BackgroundTableTitleTextColor=表のタイトル行のテキストの色 @@ -1938,12 +1953,12 @@ EnterAnyCode=このフィールドには、ラインを識別するための参 Enter0or1=0または1を入力すること UnicodeCurrency=中括弧、通貨記号を表すバイト番号のリストの間にここに入力する。例:$の場合は【36】と入力する-ブラジルレアルの場合はR $ 【82,36】-€の場合は【8364】と入力する ColorFormat=RGBカラーはHEX形式 例: FF0000 -PictoHelp=dolibarr形式のアイコン名 ( 現在のテーマディレクトリにある場合は「image.png」、モジュールのディレクトリ/ img /にある場合は「image.png@nom_du_module」 ) +PictoHelp=アイコン名の形式:
    -現在のテーマディレクトリへの画像ファイルの場合はimage.png
    -ファイルがモジュールのディレクトリ/img/にある場合はimage.png@module
    -FontAwesomefa-xxx pictoの場合はfa-xxx
    -FontAwesome fa-xxx picto (プレフィックス、色、サイズ設定) の場合はfonwtawesome_xxx_fa_color_size PositionIntoComboList=コンボリストへの行の位置 SellTaxRate=消費税率 RecuperableOnly=フランスの一部の州専用のVAT「認識されていないが回復可能」についてははい。それ以外の場合は、値を「いいえ」のままにすること。 -UrlTrackingDesc=プロバイダーまたは輸送サービスが出荷のステータスを確認するためのページまたはWebサイトを提供している場合は、ここに入力できる。 URLパラメータでキー{TRACKID}を使用すると、システムはそれをユーザが出荷カードに入力した追跡番号に置き換える。 -OpportunityPercent=引合を作成するときは、プロジェクト/引合の推定量を定義する。引合のステータスに応じて、この金額にこのレートを掛けて、すべての引合が生成する可能性のある合計金額を評価することができる。値はパーセンテージ ( 0から100の間 ) 。 +UrlTrackingDesc=プロバイダーまたは輸送サービスが出荷の状態を確認するためのページまたはWebサイトを提供している場合は、ここに入力できる。 URLパラメータでキー{TRACKID}を使用すると、システムはそれをユーザが出荷カードに入力した追跡番号に置き換える。 +OpportunityPercent=引合を作成するときは、プロジェクト/引合の推定量を定義する。引合の状態に応じて、この金額にこのレートを掛けて、全引合が生成する可能性のある合計金額を評価することができる。値はパーセンテージ ( 0から100の間 ) 。 TemplateForElement=このメールテンプレートは、どのタイプのオブジェクトに関連するか?メールテンプレートは、関連オブジェクトの "メールを送信" ボタンを使用する場合にのみ使用できる。 TypeOfTemplate=テンプレートの種類 TemplateIsVisibleByOwnerOnly=テンプレートは所有者にのみ表示される @@ -1962,12 +1977,13 @@ MailToSendInvoice=顧客の請求書 MailToSendShipment=出荷 MailToSendIntervention=出張 MailToSendSupplierRequestForQuotation=見積依頼 -MailToSendSupplierOrder=注文書 +MailToSendSupplierOrder=購買発注 MailToSendSupplierInvoice=仕入先の請求書 MailToSendContract=契約 -MailToSendReception=受付 +MailToSendReception=領収 +MailToExpenseReport=経費報告書s MailToThirdparty=取引先 -MailToMember=メンバー +MailToMember=構成員 MailToUser=ユーザ MailToProject=プロジェクト MailToTicket=切符売場 @@ -1975,15 +1991,15 @@ ByDefaultInList=リストビューにデフォルトで表示 YouUseLastStableVersion=最新の安定バージョンを使用する TitleExampleForMajorRelease=このメジャーリリースを発表するために使用できるメッセージの例 ( Webサイトで自由に使用すること ) TitleExampleForMaintenanceRelease=このメンテナンスリリースを発表するために使用できるメッセージの例 ( Webサイトで自由に使用すること ) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP&CRM%sが利用可能。バージョン%sは、ユーザと開発者の両方に多くの新機能を備えたメジャーリリース。 https://www.dolibarr.orgポータル ( サブディレクトリStableバージョン ) のダウンロードエリアからダウンロードできる。変更の完全なリストについては、 ChangeLogを読込むことができる。 -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP&CRM%sが利用可能。バージョン%sはメンテナンスバージョンであるため、バグ修正のみが含まれている。すべてのユーザがこのバージョンにアップグレードすることをお勧めする。メンテナンスリリースでは、データベースに新規機能や変更は導入されない。 https://www.dolibarr.orgポータル ( サブディレクトリStableバージョン ) のダウンロードエリアからダウンロードできる。変更の完全なリストについては、 ChangeLogを読込むことができる。 +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP&CRM%sが利用可能。バージョン%sは、ユーザと開発者の両方に多くの新機能を備えたメジャーリリース。 https://www.dolibarr.org ポータル ( サブディレクトリStableバージョン ) のダウンロードエリアからダウンロードできる。変更の完全なリストについては、 ChangeLogを読込むことができる。 +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP&CRM%sが利用可能。バージョン%sはメンテナンスバージョンであるため、バグ修正のみが含まれている。全ユーザがこのバージョンにアップグレードすることをお勧めする。メンテナンスリリースでは、データベースに新規機能や変更は導入されない。 https://www.dolibarr.org ポータル ( サブディレクトリStableバージョン ) のダウンロードエリアからダウンロードできる。変更の完全なリストについては、 ChangeLogを読込むことができる。 MultiPriceRuleDesc=オプション「製品/サービスごとの価格のいくつかのレベル」が有効になっている場合、製品ごとに異なる価格 ( 価格レベルごとに1つ ) を定義できる。時間を節約するために、ここで、最初のレベルの価格に基づいて各レベルの価格を自動計算するルールを入力できる。したがって、各製品の最初のレベルの価格を入力するだけで済む。このページは時間を節約するように設計されているが、各レベルの価格が最初のレベルに関連している場合にのみ役立つ。ほとんどの場合、このページは無視してかまいない。 ModelModulesProduct=製品ドキュメントのテンプレート WarehouseModelModules=倉庫のドキュメントのテンプレート ToGenerateCodeDefineAutomaticRuleFirst=コードを自動的に生成できるようにするには、最初にバーコード番号を自動定義するマネージャーを定義する必要がある。 SeeSubstitutionVars=可能な置換変数のリストについては、*注を参照すること SeeChangeLog=ChangeLogファイルを参照すること ( 英語のみ ) -AllPublishers=すべての出版社 +AllPublishers=全出版社 UnknownPublishers=不明な発行元 AddRemoveTabs=タブを追加または削除する AddDataTables=オブジェクトテーブルを追加する @@ -1998,7 +2014,7 @@ AddPermissions=権限を追加する AddExportProfiles=エクスポートプロファイルを追加する AddImportProfiles=インポートプロファイルを追加する AddOtherPagesOrServices=他のページやサービスを追加する -AddModels=ドキュメントまたは番号付けテンプレートを追加する +AddModels=ドキュメントまたは採番テンプレートを追加する AddSubstitutions=キー置換を追加 DetectionNotPossible=検出できない UrlToGetKeyToUseAPIs=APIを使用するためのトークンを取得するためのURL ( トークンが受信されると、データベースのユーザテーブルに保存され、各API呼び出しで提供する必要がある ) @@ -2006,27 +2022,28 @@ ListOfAvailableAPIs=利用可能なAPIのリスト activateModuleDependNotSatisfied=モジュール「%s」はモジュール「%s」に依存しているため、モジュール「%1$s」が正しく機能しない場合がある。予期せぬ事態から安全を確保したい場合は、モジュール「%2$s」をインストールするか、モジュール「%1$s」を無効にすること。 CommandIsNotInsideAllowedCommands=実行しようとしているコマンドは、 conf.phpファイルのパラメーター $ dolibarr_main_restrict_os_commandsで定義されている許可されたコマンドのリストにない。 LandingPage=ランディングページ -SamePriceAlsoForSharedCompanies=複数の法人のモジュールを使用し、「単一価格」を選択した場合、製品が環境間で共有されていれば、価格もすべての法人で同じになる -ModuleEnabledAdminMustCheckRights=モジュールがアクティブ化されました。アクティブ化されたモジュールのアクセス許可は、管理者ユーザにのみ付与されました。必要に応じて、他のユーザまたはグループに手動でアクセス許可を付与する必要がある場合がある。 +SamePriceAlsoForSharedCompanies=複数の法人のモジュールを使用し、「単一価格」を選択した場合、製品が環境間で共有されていれば、価格も全法人で同じになる +ModuleEnabledAdminMustCheckRights=モジュールが有効化された。有効化されたモジュール(s)のアクセス許可は、管理者ユーザにのみ付与された。必要に応じて、他のユーザまたはグループに手動でアクセス許可を付与する必要がある場合がある。 UserHasNoPermissions=このユーザには権限が定義されていない -TypeCdr=支払い期間の日付が請求書の日付に日数のデルタを加えたものである場合は「なし」を使用する ( デルタはフィールド「%s」 )
    デルタの後、日付を増やして終了する必要がある場合は、「月末」を使用する月の ( +オプションの「%s」 ( 日数 ) )
    「現在/次」を使用して、支払い期間の日付をデルタの後の月の最初のN番目にする ( デルタはフィールド「%s」、Nはフィールド「%s」に格納される ) +TypeCdr=支払期間の日付が請求書の日付に日数のデルタを加えたものである場合は「なし」を使用する ( デルタはフィールド「%s」 )
    デルタの後、日付を増やして終了する必要がある場合は、「月末」を使用する月の ( +オプションの「%s」 ( 日数 ) )
    「現在/次」を使用して、支払期間の日付をデルタの後の月の最初のN番目にする ( デルタはフィールド「%s」、Nはフィールド「%s」に格納される ) BaseCurrency=法人の参照通貨 ( これを変更するには、法人の設定に入る ) WarningNoteModuleInvoiceForFrenchLaw=このモジュール%sは、フランスの法律 ( Loi Finance 2016 ) に準拠している。 -WarningNoteModulePOSForFrenchLaw=このモジュール%sは、モジュールNon Reversible Logsが自動的にアクティブ化されるため、フランスの法律 ( Loi Finance 2016 ) に準拠している。 +WarningNoteModulePOSForFrenchLaw=このモジュール%sは、モジュールNon Reversible Logsが自動的に有効化されるため、フランスの法律 ( 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=PDFのロゴの高さ +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=支払いモードを非表示にする +PROPOSAL_PDF_HIDE_PAYMENTTERM=支払条件を非表示にする +PROPOSAL_PDF_HIDE_PAYMENTMODE=支払モードを非表示にする MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=PDFで電子サインを追加する NothingToSetup=このモジュールに必要な特定の設定はない。 SetToYesIfGroupIsComputationOfOtherGroups=このグループが他のグループの計算である場合は、これをyesに設定する @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=値をクリーンアップするための正規表 COMPANY_DIGITARIA_CLEAN_REGEX=値をクリーンアップするための正規表現フィルタ ( COMPANY_DIGITARIA_CLEAN_REGEX ) COMPANY_DIGITARIA_UNIQUE_CODE=複製は許可されていない GDPRContact=データ保護責任者 ( DPO、データプライバシーまたはGDPRの連絡先 ) -GDPRContactDesc=ヨーロッパの企業/市民に関するデータを保存する場合は、ここで一般データ保護規則の責任者を指定できる +GDPRContactDesc=個人データを情報システムに保存する場合は、ここで一般データ保護規則の責任者を指名できる HelpOnTooltip=ツールチップに表示するヘルプテキスト HelpOnTooltipDesc=このフィールドがフォームに表示されたときにツールチップに表示されるテキストのテキストまたは翻訳キーをここに入力する YouCanDeleteFileOnServerWith=次のコマンドラインを使用して、サーバー上のこのファイルを削除できる:
    %s @@ -2048,27 +2065,46 @@ 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=収集ごとに収集される電子メールの最大数 CollectNow=今すぐ収集 -ConfirmCloneEmailCollector=メールコレクター%sのクローンを作成してもよいか? +ConfirmCloneEmailCollector=メールコレクタ%sのクローンを作成してもよいか? DateLastCollectResult=最新の取得試行の日付 DateLastcollectResultOk=最新の取得成功の日付 LastResult=最新の結果 +EmailCollectorHideMailHeaders=収集された電子メールの保存されたコンテンツに電子メールヘッダーのコンテンツを含めないこと +EmailCollectorHideMailHeadersHelp=有効にすると、アジェンダイベントとして保存される電子メールコンテンツの最後に電子メールヘッダーは追加されない。 EmailCollectorConfirmCollectTitle=メール収集確定 -EmailCollectorConfirmCollect=このコレクターのコレクションを今すぐ実行するか? +EmailCollectorConfirmCollect=このコレクタを今すぐ実行するか? +EmailCollectorExampleToCollectTicketRequestsDesc=いくつかのルールに一致する電子メールを収集し、電子メール情報を含むチケットを自動的に作成する(モジュールチケットを有効化する必要がある)。電子メールでサポートを提供する場合は、このコレクタを使用できるため、チケット要求が自動的に生成される。 Collect_Responsesも有効化して、チケットビューで直接クライアントの回答を収集する(Dolibarrから返信する必要がある)。 +EmailCollectorExampleToCollectTicketRequests=チケット要求の収集例(最初のメッセージのみ) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=メールボックスの「送信済み」ディレクトリをスキャンして、Dolibarrからではなく、電子メールソフトウェアから直接別の電子メールの応答として送信された電子メールを見つけます。そのような電子メールが見つかった場合、回答のイベントはDolibarrに記録される +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftware=外部の電子メールソフトウェアから送信された電子メールの回答を収集する例 +EmailCollectorExampleToCollectDolibarrAnswersDesc=アプリケーションから送信された電子メールの回答であるすべての電子メールを収集する。電子メール応答を含むイベント(モジュールアジェンダを有効にする必要があ)は、適切な場所に記録される。たとえば、アプリケーションから電子メールでチケットの商取引提案、注文、請求書、またはメッセージを送信し、受信者が電子メールに応答すると、システムは自動的に応答をキャッチしてERPに追加する。 +EmailCollectorExampleToCollectDolibarrAnswers=Dolibarrから送信されたメッセージへの回答である全受信メッセージを収集する例 +EmailCollectorExampleToCollectLeadsDesc=いくつかのルールに一致する電子メールを収集し、電子メール情報を使用してリードを自動的に作成する(モジュールプロジェクトを有効にする必要がある)。モジュールプロジェクト(1リード= 1プロジェクト)を使用してリードをフォローする場合は、このコレクタを使用できる。これにより、リードが自動的に生成される。コレクタのCollect_Responsesも有効になっている場合、リード、プロポーザル、またはその他のオブジェクトから電子メールを送信すると、アプリケーションに直接顧客またはパートナーの回答が表示される場合がある。
    注:この最初の例では、リードのタイトルが電子メールを含めて生成される。サードパーティがデータベース(新規顧客)で見つからない場合、リードはID1のサードパーティに接続される。 +EmailCollectorExampleToCollectLeads=リードの収集例 +EmailCollectorExampleToCollectJobCandidaturesDesc=求人に応募するメールを収集する(モジュール採用を有効にする必要がある)。ジョブ要求の候補を自動的に作成する場合は、このコレクタを完成させることができる。注:この最初の例では、候補者のタイトルが電子メールを含めて生成される。 +EmailCollectorExampleToCollectJobCandidatures=電子メールで受け取った求職者の収集例 NoNewEmailToProcess=処理する新規電子メール ( 一致するフィルタ ) はない NothingProcessed=何もしていない -XEmailsDoneYActionsDone=%s電子メールが修飾され、%s電子メールが正常に処理されました ( %sレコード/アクションが実行された場合 ) +XEmailsDoneYActionsDone=%s電子メールは事前に認定され、%s電子メールは正常に処理されました(%sレコード/アクションが実行された場合) RecordEvent=議題にイベントを記録する(送信または受信した電子メールの種類を使用) CreateLeadAndThirdParty=リード(および必要なら取引先)を作成する -CreateTicketAndThirdParty=チケットを作成する(取引先が以前の操作によってロードされた場合は取引先にリンクされ、それ以外の場合は取引先はリンクされない) +CreateTicketAndThirdParty=チケットを作成する(取引先が以前の操作によってロードされた場合、またはメールヘッダーのトラッカーから推測された場合は、取引先にリンクされる。それ以外の場合は取引先は含まれない) CodeLastResult=最新の結果コード NbOfEmailsInInbox=ソースディレクトリ内の電子メールの数 LoadThirdPartyFromName=%sで検索している取引先をロードする ( ロードのみ ) @@ -2082,14 +2118,14 @@ 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=リソースモジュールの構成 UseSearchToSelectResource= ( ドロップダウンリストではなく ) 検索フォームを使用してリソースを選択する。 DisabledResourceLinkUser=リソースをユーザにリンクする機能を無効にする DisabledResourceLinkContact=リソースを連絡先にリンクする機能を無効にする -EnableResourceUsedInEventCheck=リソースがイベントで使用されているかどうかを確認する機能を有効にする +EnableResourceUsedInEventCheck=アジェンダで同時に同じリソースを使用することを禁止する ConfirmUnactivation=モジュールのリセットを確定する OnMobileOnly=小画面 ( スマートフォン ) のみ DisableProspectCustomerType=「見込み客+顧客」の取引先種別を無効にする ( したがって、取引先は「見込み客」または「顧客」である必要があるが、両方にすることはできない ) @@ -2102,7 +2138,7 @@ Deuteranopes=2型2色覚緑色盲 Tritanopes=3型2色覚青色盲 ThisValueCanOverwrittenOnUserLevel=この値は、各ユーザがそのユーザページから上書きできる-タブ '%s' DefaultCustomerType=「新規顧客」作成フォームのデフォルト取引先種別 -ABankAccountMustBeDefinedOnPaymentModeSetup=注:この機能を機能させるには、各支払いモード ( Paypal、Stripeなど ) のモジュールで銀行口座を定義する必要がある。 +ABankAccountMustBeDefinedOnPaymentModeSetup=注:この機能を機能させるには、各支払モード ( Paypal、Stripeなど ) のモジュールで銀行口座を定義する必要がある。 RootCategoryForProductsToSell=販売する製品のルートカテゴリ RootCategoryForProductsToSellDesc=定義されている場合、このカテゴリ内の製品またはこのカテゴリの子のみがPOSで利用可能になる DebugBar=デバッグバー @@ -2113,37 +2149,40 @@ LogsLinesNumber=【ログ】タブに表示する行数 UseDebugBar=デバッグバーを使用する DEBUGBAR_LOGS_LINES_NUMBER=コンソールに保持する最後のログ行の数 WarningValueHigherSlowsDramaticalyOutput=警告、値を大きくすると出力が劇的に遅くなる -ModuleActivated=モジュール%sがアクティブ化され、インターフェイスの速度が低下する -ModuleActivatedWithTooHighLogLevel=モジュール%sが高すぎるロギングレベルでアクティブ化されている(パフォーマンスとセキュリティを向上させるために、より低いレベルを使用してみること) -ModuleSyslogActivatedButLevelNotTooVerbose=モジュール%sがアクティブ化され、ログレベル(%s)が正しい(冗長すぎない) +ModuleActivated=モジュール%sが有効化され、インターフェイスの速度が低下する +ModuleActivatedWithTooHighLogLevel=モジュール%sが高すぎるロギングレベルで有効化されている(パフォーマンスとセキュリティを向上させるために、より低いレベルを使用してみること) +ModuleSyslogActivatedButLevelNotTooVerbose=モジュール%sが有効化され、ログレベル(%s)が正しい(冗長すぎない) IfYouAreOnAProductionSetThis=実稼働環境を使用している場合は、このプロパティを%sに設定する必要がある。 AntivirusEnabledOnUpload=アップロードされたファイルでウイルス対策が有効になっている -SomeFilesOrDirInRootAreWritable=一部のファイルやディレクトリが読み取り専用モードになっていない +SomeFilesOrDirInRootAreWritable=一部のファイルやディレクトリが読取り専用モードになっていない EXPORTS_SHARE_MODELS=エクスポートモデルは誰とでも共有 ExportSetup=モジュールエクスポートの設定 ImportSetup=モジュールインポートの設定 InstanceUniqueID=インスタンスの一意のID SmallerThan=より小さい LargerThan=より大きい -IfTrackingIDFoundEventWillBeLinked=オブジェクトの追跡IDが電子メールで見つかった場合、または電子メールがすでに収集されてオブジェクトにリンクされている電子メールの回答である場合、作成されたイベントは既知の関連オブジェクトに自動的にリンクされる。 +IfTrackingIDFoundEventWillBeLinked=オブジェクトの追跡IDが電子メールで見つかった場合、または電子メールが既に収集されてオブジェクトにリンクされている電子メールの回答である場合、作成されたイベントは既知の関連オブジェクトに自動的にリンクされる。 WithGMailYouCanCreateADedicatedPassword=Gmailアカウントで、2段階検証を有効にした場合は、https://myaccount.google.com/ での自分のGoogleパスワードを使わないで、アプリケーション専用の2番目のパスワードを作成することを勧める。 -EmailCollectorTargetDir=正常に処理されたときに電子メールを別のタグ/ディレクトリに移動することが望ましい動作である可能性がある。この機能を使用するには、ここでディレクトリの名前を設定するだけ ( 名前に特殊文字を使用しないこと ) 。読み取り/書き込みログインアカウントも使用する必要があることに注意すること。 +EmailCollectorTargetDir=正常に処理されたときに電子メールを別のタグ/ディレクトリに移動することが望ましい動作である可能性がある。この機能を使用するには、ここでディレクトリの名前を設定するだけ ( 名前に特殊文字を使用しないこと ) 。読取り/書き込みログインアカウントも使用する必要があることに注意すること。 EmailCollectorLoadThirdPartyHelp=このアクションを使用して、電子メールコンテンツを使用して、データベース内の既存の取引先を検索してロードできる。見つかった(または作成された)取引先は、それを必要とするアクションを追跡するために使用される。
    たとえば、文字列 'Name: name to find' から抽出された名前で取引先を作成する場合は、送信者の電子メールをemailと置くと、次のようにパラメータフィールドを設定できる。
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=%sのエンドポイント:%s DeleteEmailCollector=メールコレクターを削除する ConfirmDeleteEmailCollector=このメールコレクターを削除してもよいか? RecipientEmailsWillBeReplacedWithThisValue=受信者の電子メールは常にこの値に置き換えられる AtLeastOneDefaultBankAccountMandatory=少なくとも1つのデフォルトの銀行口座を定義する必要がある -RESTRICT_ON_IP=一部のホストIPへのアクセスのみを許可する ( ワイルドカードは許可されない。値の間にスペースを使用すること ) 。空とは、すべてのホストがアクセスできることを意味する。 +RESTRICT_ON_IP=特定のクライアントIPのみへのAPIアクセスを許可する(ワイルドカードは許可されない、値の間にスペースを使用する)。空なら、全クライアントがアクセスできることを意味する。 IPListExample=127.0.0.1 192.168.0.2 【:: 1】 BaseOnSabeDavVersion=ライブラリSabreDAVバージョンに基づく NotAPublicIp=公開IPではない MakeAnonymousPing=Dolibarr Foundationサーバーに匿名のPing「+1」を作成し ( インストール後に1回のみ実行 ) 、FoundationがDolibarrのインストール数をカウントできるようにする。 -FeatureNotAvailableWithReceptionModule=モジュールの受信が有効になっている場合、この機能は使用できない +FeatureNotAvailableWithReceptionModule=領収モジュールが有効の場合、この機能は使用不可 EmailTemplate=メールのテンプレート EMailsWillHaveMessageID=電子メールには、この構文に一致するタグ「参照」がある PDF_SHOW_PROJECT=ドキュメントにプロジェクトを表示 ShowProjectLabel=プロジェクトラベル +PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME=取引先名にエイリアスを含める +THIRDPARTY_ALIAS=取引先に名前を付ける-エイリアス取引先 +ALIAS_THIRDPARTY=エイリアス取引先-取引先に名前を付ける 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を使用できる。 @@ -2153,7 +2192,7 @@ MeasuringUnitTypeDesc=ここでは、「サイズ」、「表面」、「体積 MeasuringScaleDesc=スケールは、デフォルトの参照単位に一致するように小数部を移動する必要がある場所の数。 「時間」単位種別の場合、秒数。 80〜99の値は予約値。 TemplateAdded=テンプレートを追加 TemplateUpdated=テンプレートを更新 -TemplateDeleted=テンプレートが削除されました +TemplateDeleted=テンプレートが削除された MailToSendEventPush=イベントリマインダーメール SwitchThisForABetterSecurity=セキュリティを強化するために、この値を%sに切り替えることをお勧めする DictionaryProductNature= 製品目 @@ -2166,10 +2205,10 @@ SeeLinkToOnlineDocumentation=例については、トップメニューのオン SHOW_SUBPRODUCT_REF_IN_PDF=モジュール%s の機能「%s」を使用する場合は、キットの副産物の詳細をPDFで表示すること。 AskThisIDToYourBank=このIDを取得するには、銀行に問い合わせること AdvancedModeOnly=許可は、高度な許可モードでのみ使用可能 -ConfFileIsReadableOrWritableByAnyUsers=confファイルは、どのユーザでも読み取りまたは書き込みが可能。 Webサーバーのユーザとグループにのみアクセス許可を与える。 +ConfFileIsReadableOrWritableByAnyUsers=confファイルは、どのユーザでも読取りまたは書き込みが可能。 Webサーバーのユーザとグループにのみアクセス許可を与える。 MailToSendEventOrganization=イベント組織 MailToPartnership=パートナーシップ -AGENDA_EVENT_DEFAULT_STATUS=フォームからイベントを作成するときのデフォルトのイベントステータス +AGENDA_EVENT_DEFAULT_STATUS=フォームからイベントを作成するときのデフォルトのイベント状態 YouShouldDisablePHPFunctions=PHP関数を無効にする必要がある IfCLINotRequiredYouShouldDisablePHPFunctions=カスタムコードでシステムコマンドを実行する必要がある場合を除いて、PHP関数を無効にする必要がある PHPFunctionsRequiredForCLI=シェルの目的(スケジュールされたジョブのバックアップやanitivursプログラムの実行など)では、PHP関数を保持する必要がある @@ -2185,14 +2224,15 @@ NoExternalModuleWithUpdate=外部モジュールの更新が見つからない SwaggerDescriptionFile=Swagger API記述ファイル(たとえば、redocで使用するため) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=非推奨のWS APIが有効化された。それよりもREST APIを使用すべきである。 RandomlySelectedIfSeveral=画像が複数ある場合はランダムに選択 +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=データベースのパスワードは conf ファイルで難読化されている DatabasePasswordNotObfuscated=データベースのパスワードは conf ファイルで難読化されていない APIsAreNotEnabled=APIモジュールが有効になっていない YouShouldSetThisToOff=これを0またはオフに設定する必要がある InstallAndUpgradeLockedBy=インストールとアップグレードはファイル%sによってロックされる OldImplementation=古い実装 -PDF_SHOW_LINK_TO_ONLINE_PAYMENT=一部のオンライン支払いモジュール(Paypal、Stripeなど)が有効になっている場合は、PDFにリンクを追加してオンライン支払いを行う -DashboardDisableGlobal=開いているオブジェクトのすべてのサムネをグローバルに無効にする +PDF_SHOW_LINK_TO_ONLINE_PAYMENT=一部のオンライン支払モジュール(Paypal、Stripeなど)が有効になっている場合は、PDFにリンクを追加してオンライン支払を行う +DashboardDisableGlobal=開いているオブジェクトの全サムネをグローバルに無効にする BoxstatsDisableGlobal=ボックス統計を完全に無効にする DashboardDisableBlocks=メインダッシュボードで開いているオブジェクトのサムネ(処理または遅延) DashboardDisableBlockAgenda=議題のサムネを無効にする @@ -2202,7 +2242,7 @@ DashboardDisableBlockSupplier=サプライヤーのサムネを無効にする DashboardDisableBlockContract=契約のサムネを無効にする DashboardDisableBlockTicket=チケットのサムネを無効にする DashboardDisableBlockBank=銀行のサムネを無効にする -DashboardDisableBlockAdherent=メンバーシップのサムネを無効にする +DashboardDisableBlockAdherent=成員資格のサムネを無効にする DashboardDisableBlockExpenseReport=経費報告書sのサムネを無効にする DashboardDisableBlockHoliday=葉のサムネを無効にする EnabledCondition=フィールドを有効にする条件(有効にしない場合、可視性は常にオフになる) @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=API応答の圧縮を無効にする EachTerminalHasItsOwnCounter=各端末は独自のカウンターを使用する。 FillAndSaveAccountIdAndSecret=最初にアカウントIDとシークレットを入力して保存する PreviousHash=以前のハッシュ +LateWarningAfter=後の「遅延」警告 +TemplateforBusinessCards=異なるサイズの名刺のテンプレート +InventorySetup= 目録設定 +ExportUseLowMemoryMode=低メモリモードを使用する +ExportUseLowMemoryModeHelp=低メモリモードを使用して、ダンプのexecを実行する(圧縮は、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=アイコンのみ-すべてのテキストはマウスがメニューバー上にある時アイコン下に表示される +IconOnlyTextOnHover=アイコンのみ-アイコンのテキストはマウスがアイコン上にある時にアイコン下部に表示される +IconOnly=アイコンのみ-ツールチップのみのテキスト +INVOICE_ADD_ZATCA_QR_CODE=請求書にZATCAQRコードを表示する +INVOICE_ADD_ZATCA_QR_CODEMore=一部のアラビア語の国では、請求書にこのQRコードが必要 +INVOICE_ADD_SWISS_QR_CODE=請求書にスイスのQR-Billコードを表示する +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 フィールドで許可される画像の最大数 diff --git a/htdocs/langs/ja_JP/agenda.lang b/htdocs/langs/ja_JP/agenda.lang index 6ee85ac8114..4cecfc858cd 100644 --- a/htdocs/langs/ja_JP/agenda.lang +++ b/htdocs/langs/ja_JP/agenda.lang @@ -14,10 +14,10 @@ EventsNb=イベント数 ListOfActions=イベントのリスト EventReports=イベント報告書s Location=場所 -ToUserOfGroup=グループ内の任意のユーザーに割り当てられたイベント +ToUserOfGroup=グループ内の任意のユーザに割り当てられたイベント EventOnFullDay=一日のイベント -MenuToDoActions=すべての不完全なイベント -MenuDoneActions=すべての終了イベント +MenuToDoActions=全不完全なイベント +MenuDoneActions=全終了イベント MenuToDoMyActions=私の不完全なイベント MenuDoneMyActions=私の終了イベント ListOfEvents=イベントのリスト(デフォルトのカレンダ) @@ -28,58 +28,61 @@ ActionAssignedTo=イベントに影響を受けた ViewCal=月間表示 ViewDay=日表示 ViewWeek=週ビュー -ViewPerUser=ユーザービューごと +ViewPerUser=ユーザビューごと ViewPerType=種別ビューごと AutoActions= 議題の自動充填 -AgendaAutoActionDesc= ここで、Dolibarrが議題で自動的に作成するイベントを定義できる。何もチェックされていない場合、手動アクションのみがログに含まれ、議題に表示される。オブジェクトに対して実行されたビジネスアクション(検証、ステータス変更)の自動追跡は保存されません。 +AgendaAutoActionDesc= ここで、Dolibarrが議題で自動的に作成するイベントを定義できる。何もチェックされていない場合、手動アクションのみがログに含まれ、議題に表示される。オブジェクトに対して実行されたビジネスアクション(検証、状態変更)の自動追跡は保存されない。 AgendaSetupOtherDesc= このページには、Dolibarrイベントを外部カレンダー(Thunderbird、Googleカレンダーなど)にエクスポートできるようにするオプションがある。 AgendaExtSitesDesc=このページでは、Dolibarrの議題にそれらのイベントを表示するにはカレンダーの外部ソースを宣言することができる。 ActionsEvents=Dolibarrが自動的に議題でアクションを作成する対象のイベント EventRemindersByEmailNotEnabled=電子メールによるイベントリマインダーは、%sモジュール設定で有効になっていなかった。 ##### Agenda event labels ##### -NewCompanyToDolibarr=取引先%sが作成されました +NewCompanyToDolibarr=取引先%sが作成された COMPANY_MODIFYInDolibarr=取引先%s変更 -COMPANY_DELETEInDolibarr=取引先%sが削除されました -ContractValidatedInDolibarr=契約%sが承認されました -CONTRACT_DELETEInDolibarr=契約%sが削除されました +COMPANY_DELETEInDolibarr=取引先%sが削除された +ContractValidatedInDolibarr=契約%sは承認済 +CONTRACT_DELETEInDolibarr=契約%sが削除された PropalClosedSignedInDolibarr=提案%sが署名された PropalClosedRefusedInDolibarr=提案%sは拒否された -PropalValidatedInDolibarr=提案%sが承認されました -PropalClassifiedBilledInDolibarr=提案%s分類請求済 -InvoiceValidatedInDolibarr=請求書%sが承認されました -InvoiceValidatedInDolibarrFromPos=請求書%sがPOSから承認されました -InvoiceBackToDraftInDolibarr=請求書%sが下書きに差し戻されました -InvoiceDeleteDolibarr=請求書%sが削除されました -InvoicePaidInDolibarr=請求書%sが入金済みに変更されました -InvoiceCanceledInDolibarr=請求書%sが取り消されました -MemberValidatedInDolibarr=メンバー%sが承認されました -MemberModifiedInDolibarr=メンバー%sが修正されました -MemberResiliatedInDolibarr=メンバー%sが解除されました -MemberDeletedInDolibarr=メンバー%sが削除されました -MemberSubscriptionAddedInDolibarr=メンバー%sのサブスクリプション%sは追加済 -MemberSubscriptionModifiedInDolibarr=メンバー%sのサブスクリプション%sは変更済 -MemberSubscriptionDeletedInDolibarr=メンバー%sのサブスクリプション%sは削除済 +PropalValidatedInDolibarr=提案%sは承認済 +PropalBackToDraftInDolibarr=提案%sは下書き状態に戻る +PropalClassifiedBilledInDolibarr=提案%s指定請求済 +InvoiceValidatedInDolibarr=請求書%sは承認済 +InvoiceValidatedInDolibarrFromPos=請求書%sがPOSから承認された +InvoiceBackToDraftInDolibarr=請求書%sを下書き状態に差戻す +InvoiceDeleteDolibarr=請求書%sが削除された +InvoicePaidInDolibarr=請求書%sが入金済みに変更された +InvoiceCanceledInDolibarr=請求書%sが取り消された +MemberValidatedInDolibarr=構成員%sは承認済 +MemberModifiedInDolibarr=構成員%sが修正された +MemberResiliatedInDolibarr=構成員%sが解除された +MemberDeletedInDolibarr=構成員%sが削除された +MemberExcludedInDolibarr=メンバー%sは除外された +MemberSubscriptionAddedInDolibarr=構成員%sのサブスクリプション%sは追加済 +MemberSubscriptionModifiedInDolibarr=構成員%sのサブスクリプション%sは変更済 +MemberSubscriptionDeletedInDolibarr=構成員%sのサブスクリプション%sは削除済 ShipmentValidatedInDolibarr=出荷%sは検証済 -ShipmentClassifyClosedInDolibarr=出荷%s分類請求済 -ShipmentUnClassifyCloseddInDolibarr=出荷%s分類再開 -ShipmentBackToDraftInDolibarr=出荷%sはドラフトステータスに戻る +ShipmentClassifyClosedInDolibarr=出荷%s請求済指定 +ShipmentUnClassifyCloseddInDolibarr=出荷%s指定再開 +ShipmentBackToDraftInDolibarr=出荷%sは下書き状態に戻る ShipmentDeletedInDolibarr=出荷%sは削除済 ShipmentCanceledInDolibarr=発送%sがキャンセルされた -ReceptionValidatedInDolibarr=受信%sは検証済 +ReceptionValidatedInDolibarr=領収%sは検証済 +ReceptionClassifyClosedInDolibarr=領収%sは閉鎖済指定 OrderCreatedInDolibarr=注文%sは作成済 OrderValidatedInDolibarr=注文%sは検証済 -OrderDeliveredInDolibarr=分類された%sを注文して配達 +OrderDeliveredInDolibarr=注文%sは配送済指定 OrderCanceledInDolibarr=注文%s は取消済 -OrderBilledInDolibarr=注文 %sは分類請求済 +OrderBilledInDolibarr=注文 %sは請求済指定 OrderApprovedInDolibarr=注文%sは承認済 OrderRefusedInDolibarr=注文%sが拒否された -OrderBackToDraftInDolibarr=注文%sは、ドラフトの状態に戻って -ProposalSentByEMail=電子メールで送信された商用提案%s +OrderBackToDraftInDolibarr=注文%sを下書き状態に差戻す +ProposalSentByEMail=メール送信された商取引提案%s ContractSentByEMail=メールで送信された契約%s OrderSentByEMail=電子メールで送信された販売注文%s InvoiceSentByEMail=電子メールで送信された顧客の請求書%s -SupplierOrderSentByEMail=電子メールで送信された注文書%s -ORDER_SUPPLIER_DELETEInDolibarr=注文書%sは削除済 +SupplierOrderSentByEMail=電子メールで送信された購買発注%s +ORDER_SUPPLIER_DELETEInDolibarr=購買発注%sは削除済 SupplierInvoiceSentByEMail=電子メールで送信された仕入先の請求書%s ShippingSentByEMail=電子メールで送信された出荷%s ShippingValidated= 出荷%sは検証済 @@ -87,7 +90,7 @@ InterventionSentByEMail=電子メールで送信された介入%s ProposalDeleted=提案は削除済 OrderDeleted=注文は削除済 InvoiceDeleted=請求書は削除済 -DraftInvoiceDeleted=ドラフト請求書は削除済 +DraftInvoiceDeleted=下書き請求書は削除済 CONTACT_CREATEInDolibarr=作成された連絡先%s CONTACT_MODIFYInDolibarr=連絡先%s変更 CONTACT_DELETEInDolibarr=連絡先%sは削除済 @@ -97,7 +100,7 @@ PRODUCT_DELETEInDolibarr=製品%sは削除済 HOLIDAY_CREATEInDolibarr=休暇申請%sは作成済 HOLIDAY_MODIFYInDolibarr=休暇申請%sを変更 HOLIDAY_APPROVEInDolibarr=休暇申請%s承認済 -HOLIDAY_VALIDATEInDolibarr=休暇のリクエスト%sは検証済 +HOLIDAY_VALIDATEInDolibarr=休暇の休暇申請%sは検証済 HOLIDAY_DELETEInDolibarr=休暇申請%sを削除 EXPENSE_REPORT_CREATEInDolibarr=経費報告書%sは作成済 EXPENSE_REPORT_VALIDATEInDolibarr=経費報告書%sは検証済 @@ -112,13 +115,13 @@ TICKET_MODIFYInDolibarr=チケット%sは変更済 TICKET_ASSIGNEDInDolibarr=割り当てられたチケット%s TICKET_CLOSEInDolibarr=チケット%sは終了した TICKET_DELETEInDolibarr=チケット%sは削除済 -BOM_VALIDATEInDolibarr=BOM検証済 -BOM_UNVALIDATEInDolibarr=BOMは検証されていない +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_VALIDATEInDolibarr=MOは検証済 +MRP_MO_UNVALIDATEInDolibarr=MOを下書き状態に設定 MRP_MO_PRODUCEDInDolibarr=MOプロデュース MRP_MO_DELETEInDolibarr=MOは削除済 MRP_MO_CANCELInDolibarr=MOは取消済 @@ -128,9 +131,9 @@ AgendaModelModule=イベントのドキュメントテンプレート DateActionStart=開始日 DateActionEnd=終了日 AgendaUrlOptions1=また、出力をフィルタリングするには、次のパラメータを追加することができる。 -AgendaUrlOptions3= logina = %s は、出力をユーザーが所有するアクションに制限する%s。 -AgendaUrlOptionsNotAdmin= logina =!%s は、出力をユーザーが所有していないアクションに制限する %s。 -AgendaUrlOptions4= logint = %s は、出力をユーザー %s (所有者など)に割り当てられたアクションに制限する。 +AgendaUrlOptions3= logina = %s は、出力をユーザが所有するアクションに制限する%s。 +AgendaUrlOptionsNotAdmin= logina =!%s は、出力をユーザが所有していないアクションに制限する %s。 +AgendaUrlOptions4= logint = %s は、出力をユーザ %s (所有者など)に割り当てられたアクションに制限する。 AgendaUrlOptionsProject= project = __ PROJECT_ID__ は、出力をプロジェクト __PROJECT_ID__にリンクされたアクションに制限する。 AgendaUrlOptionsNotAutoEvent= 自動イベントを除外するには、 notactiontype = systemauto。 AgendaUrlOptionsIncludeHolidays= includeholidays = 1 は、休日のイベントを含む。 @@ -143,7 +146,7 @@ DefaultWorkingHours=1日のデフォルトの労働時間(例:9-18) # External Sites ical ExportCal=輸出カレンダー ExtSites=外部カレンダーをインポートする -ExtSitesEnableThisTool=議題に外部カレンダー(グローバル設定で定義)を表示する。ユーザーが定義した外部カレンダーには影響しない。 +ExtSitesEnableThisTool=議題に外部カレンダー(グローバル設定で定義)を表示する。ユーザが定義した外部カレンダーには影響しない。 ExtSitesNbOfAgenda=カレンダーの数 AgendaExtNb=カレンダー番号%s ExtSiteUrlAgenda=。iCalファイルにアクセスするためのURL @@ -157,14 +160,15 @@ DateActionBegin=イベント開始日 ConfirmCloneEvent=イベント%s のクローンを作成してもよいか? RepeatEvent=イベントを繰り返す OnceOnly=一回だけ +EveryDay=毎日 EveryWeek=毎週 EveryMonth=毎月 DayOfMonth=曜日 DayOfWeek=曜日 DateStartPlusOne=開始日+1時間 -SetAllEventsToTodo=すべてのイベントをToDoに設定する -SetAllEventsToInProgress=すべてのイベントを進行中に設定する -SetAllEventsToFinished=すべてのイベントを終了に設定する +SetAllEventsToTodo=全イベントをToDoに設定する +SetAllEventsToInProgress=全イベントを進行中に設定する +SetAllEventsToFinished=全イベントを終了に設定する ReminderTime=イベント前のリマインダー期間 TimeType=期間種別 ReminderType=コールバック種別 @@ -172,3 +176,4 @@ AddReminder=このイベントの自動リマインダー通知を作成する ErrorReminderActionCommCreation=このイベントのリマインダー通知の作成中にエラーが発生した BrowserPush=ブラウザのポップアップ通知 ActiveByDefault=デフォルトで有効 +Until=それまで diff --git a/htdocs/langs/ja_JP/banks.lang b/htdocs/langs/ja_JP/banks.lang index 3dc4be416d9..c992ea2dcc5 100644 --- a/htdocs/langs/ja_JP/banks.lang +++ b/htdocs/langs/ja_JP/banks.lang @@ -15,7 +15,7 @@ CashAccount=現金勘定 CashAccounts=現金勘定 CurrentAccounts=現在の口座 SavingAccounts=貯蓄口座 -ErrorBankLabelAlreadyExists=金融勘定のラベルはすでに存在する +ErrorBankLabelAlreadyExists=金融勘定のラベルは既に存在する BankBalance=残高 BankBalanceBefore=前の残高 BankBalanceAfter=後の残高 @@ -38,8 +38,8 @@ IbanNotValid=禁止は無効 StandingOrders=口座振替の注文 StandingOrder=口座振替の注文 PaymentByDirectDebit=口座振替による支払 -PaymentByBankTransfers=クレジット転送による支払 -PaymentByBankTransfer=クレジット振込による支払 +PaymentByBankTransfers=債権譲渡による支払 +PaymentByBankTransfer=債権譲渡による支払 AccountStatement=口座明細書 AccountStatementShort=明細書 AccountStatements=口座明細書s @@ -95,32 +95,32 @@ LineRecord=トランザクション AddBankRecord=入力を追加 AddBankRecordLong=手動で入力を追加 Conciliated=照合 -ConciliatedBy=による照合 +ReConciliedBy=による照合 DateConciliating=日付を照合 BankLineConciliated=銀行の領収書と照合した入力 -Reconciled=照合 -NotReconciled=照合されていない -CustomerInvoicePayment=顧客の支払い +BankLineReconciled=照合 +BankLineNotReconciled=照合されていない +CustomerInvoicePayment=顧客の支払 SupplierInvoicePayment=仕入先の支払 -SubscriptionPayment=サブスクリプション費用の支払い +SubscriptionPayment=サブスクリプション費用の支払 WithdrawalPayment=デビット支払注文 SocialContributionPayment=社会/財政税の支払 -BankTransfer=銀行口座振替 -BankTransfers=クレジット転送 +BankTransfer=債権譲渡 +BankTransfers=債権譲渡s MenuBankInternalTransfer=内部転送 -TransferDesc=内部転送を使用して、あるアカウントから別のアカウントに転送する。アプリケーションは、ソースアカウントの借方とターゲットアカウントの貸方の2つのレコードを書き込む。この取引には、同じ金額、ラベル、日付が使用される。 +TransferDesc=内部転送を使用して、ある勘定科目から別の勘定科目に転送する。アプリケーションは、ソース勘定科目の借方とターゲット勘定科目の貸方の2つのレコードを書き込む。この取引には、同じ金額、ラベル、日付が使用される。 TransferFrom=期初 TransferTo=期末 TransferFromToDone=%s %s %sからの%sへの転送が記録されている。 CheckTransmitter=差出人 -ValidateCheckReceipt=この小切手領収書を検証するか? -ConfirmValidateCheckReceipt=検証のため、この小切手領収書を提出してよいか?検証後は変更できない。 +ValidateCheckReceipt=この小切手領収書を検証か? +ConfirmValidateCheckReceipt=検証済のため、この小切手領収書を提出してよいか?検証済後は変更できない。 DeleteCheckReceipt=この小切手領収書を削除か? ConfirmDeleteCheckReceipt=この小切手領収書を削除してもよいか? BankChecks=銀行小切手 BankChecksToReceipt=入金待ちの小切手 BankChecksToReceiptShort=入金待ちの小切手 -ShowCheckReceipt=預金証書を確認表示 +ShowCheckReceipt=小切手入金証書を表示 NumberOfCheques=小切手の数 DeleteTransaction=入力を削除 ConfirmDeleteTransaction=この入力を削除してもよいか? @@ -129,33 +129,33 @@ BankMovements=動作 PlannedTransactions=予定入力 Graph=グラフ ExportDataset_banque_1=銀行入力と口座明細書 -ExportDataset_banque_2=預金伝票 +ExportDataset_banque_2=入金伝票 TransactionOnTheOtherAccount=他の口座でのトランザクション -PaymentNumberUpdateSucceeded=支払番号が正常に更新されました -PaymentNumberUpdateFailed=支払番号を更新できませんでした -PaymentDateUpdateSucceeded=支払日が正常に更新されました -PaymentDateUpdateFailed=支払日は更新できませんでした +PaymentNumberUpdateSucceeded=支払番号が正常に更新された +PaymentNumberUpdateFailed=支払番号を更新できない +PaymentDateUpdateSucceeded=支払日が正常に更新された +PaymentDateUpdateFailed=支払日は更新できない Transactions=トランザクション BankTransactionLine=銀行入力 -AllAccounts=すべての銀行口座と現金口座 +AllAccounts=全銀行口座と現金口座 BackToAccount=口座へ戻る -ShowAllAccounts=すべての口座に表示 -FutureTransaction=先物取引。照合できません。 -SelectChequeTransactionAndGenerate=小切手預金の領収書に含める小切手を選択/フィルタリングする。次に、「作成」をクリックする。 +ShowAllAccounts=全口座に表示 +FutureTransaction=先物取引。照合できない。 +SelectChequeTransactionAndGenerate=小切手入金の領収書に含める小切手を選択/フィルタリングする。次に、「作成」をクリックする。 InputReceiptNumber=調停に関連する銀行取引明細書を選択する。ソート可能な数値を使用する:YYYYMMまたはYYYYMMDD EventualyAddCategory=最終的に、レコードを分類するカテゴリを指定する ToConciliate=照合するには? ThenCheckLinesAndConciliate=次に、銀行の明細書に記載されている行を確認して、 DefaultRIB=デフォルトのBAN -AllRIB=すべての禁止 +AllRIB=全禁止 LabelRIB=BANラベル NoBANRecord=BANレコードなし DeleteARib=BANレコードを削除 ConfirmDeleteRib=このBANレコードを削除してもよいか? -RejectCheck=小切手が返送されました +RejectCheck=小切手が返送された ConfirmRejectCheck=このチェックを拒否済としてマークしてもよいか? RejectCheckDate=小切手が返却された日付 -CheckRejected=小切手が返送されました +CheckRejected=小切手が返送された CheckRejectedAndInvoicesReopened=返送された小切手と請求書が再開される BankAccountModelModule=銀行口座のドキュメントテンプレート DocumentModelSepaMandate=SEPA指令のテンプレート。 EECのヨーロッパ諸国でのみ役立つ。 @@ -172,13 +172,16 @@ SEPAMandate=SEPA指令 YourSEPAMandate=あなたのSEPA指令 FindYourSEPAMandate=これは、当法人が銀行に口座振替を注文することを承認するSEPA指令。署名済(署名済ドキュメントをスキャン)で返送するか、メールで送付すること AutoReportLastAccountStatement=照合を行うときに、フィールド「銀行取引明細書の番号」に最後の取引明細書番号を自動的に入力する -CashControl=POS現金出納帳制御 -NewCashFence=新規キャッシュデスクの開閉 +CashControl=POS金銭制御 +NewCashFence=新規金銭管理(開ける又は閉める) BankColorizeMovement=移動に色を付ける BankColorizeMovementDesc=この機能が有効になっている場合は、借方または貸方の移動に特定の背景色を選択できる BankColorizeMovementName1=借方移動の背景色 BankColorizeMovementName2=クレジット移動の背景色 IfYouDontReconcileDisableProperty=一部の銀行口座で銀行照合を行わない場合は、それらのプロパティ "%s"を無効にして、この警告を削除すること。 NoBankAccountDefined=銀行口座が定義されていない -NoRecordFoundIBankcAccount=銀行口座にレコードが見つかならい。通常、これは、銀行口座のトランザクションのリストからレコードが手動で削除された場合に発生する(たとえば、銀行口座の照合中)。もう1つ別の理由としては、モジュール「%s」が無効化されたまま支払いが記録されたこと。 -AlreadyOneBankAccount=すでに1つの銀行口座が定義されている +NoRecordFoundIBankcAccount=銀行口座にレコードが見つかならい。通常、これは、銀行口座のトランザクションのリストからレコードが手動で削除された場合に発生する(たとえば、銀行口座の照合中)。もう1つ別の理由としては、モジュール「%s」が無効化されたまま支払が記録されたこと。 +AlreadyOneBankAccount=既に1つの銀行口座が定義されている +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA振込:「債権譲渡」レベルの「支払タイプ」 +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=債権譲渡用のSEPA XMLファイルを生成するときに、「PaymentTypeInformation」セクション(「Payment」セクションではなく)は「CreditTransferTransactionInformation」セクション内に設置できるようになった。PaymentTypeInformationをPaymentレベルに設置する時は、これは未チェックにしておくことを強く勧める。なぜなら、全銀行が必ずしもそれをCreditTransferTransactionInformationレベルで受入るとは限らないためだ。PaymentTypeInformationをCreditTransferTransactionInformationレベルに設置する前には、銀行に連絡すること。 +ToCreateRelatedRecordIntoBank=不足している関連銀行レコードを作成するには diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index 8df18ce010d..8e1cade94a6 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -43,7 +43,7 @@ ConsumedBy=によって消費される NotConsumed=消費されない NoReplacableInvoice=交換可能な請求書はない NoInvoiceToCorrect=訂正する請求書なし -InvoiceHasAvoir=1つまたは複数の貸方表のソースでした +InvoiceHasAvoir=1つまたは複数の貸方表のソースだ CardBill=請求書カード PredefinedInvoices=事前に定義された請求書 Invoice=請求書 @@ -68,27 +68,27 @@ PaidBack=返済 DeletePayment=支払を削除 ConfirmDeletePayment=この支払を削除してもよいか? ConfirmConvertToReduc=この%sを利用可能なクレジットに変換するか? -ConfirmConvertToReduc2=金額はすべての割引の中で保存され、この顧客現在または将来の請求書の割引として使用できる。 +ConfirmConvertToReduc2=金額は全割引の中で保存され、この顧客現在または将来の請求書の割引として使用できる。 ConfirmConvertToReducSupplier=この%sを利用可能なクレジットに変換するか? -ConfirmConvertToReducSupplier2=金額はすべての割引の中で保存され、この仕入先現在または将来の請求書の割引として使用できる。 +ConfirmConvertToReducSupplier2=金額は全割引の中で保存され、この仕入先現在または将来の請求書の割引として使用できる。 SupplierPayments=仕入先支払 ReceivedPayments=受け取った支払 ReceivedCustomersPayments=顧客から受け取った支払 PayedSuppliersPayments=仕入先に支払われる支払 -ReceivedCustomersPaymentsToValid=検証するために受信されたお客様の支払 +ReceivedCustomersPaymentsToValid=検証ために受信されたお客様の支払 PaymentsReportsForYear=%sの支払報告書s PaymentsReports=決済報告書s PaymentsAlreadyDone=支払は実行済 PaymentsBackAlreadyDone=払戻は実行済 PaymentRule=支払ルール -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=支払方法 +PaymentModes=支払方法 +DefaultPaymentMode=デフォルトの支払方法 DefaultBankAccount=デフォルト銀行口座 -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=支払方法(id) +CodePaymentMode=支払方法(コード) +LabelPaymentMode=支払方法(ラベル) +PaymentModeShort=支払方法 PaymentTerm=支払条件 PaymentConditions=支払条件 PaymentConditionsShort=支払条件 @@ -121,13 +121,13 @@ EnterPaymentDueToCustomer=顧客ために支払をする DisabledBecauseRemainderToPayIsZero=未払残りがゼロであるため無効 PriceBase=本体価格 BillStatus=請求書の状況 -StatusOfGeneratedInvoices=生成された請求書のステータス -BillStatusDraft=下書き(検証する必要がある) +StatusOfGeneratedInvoices=生成された請求書の状態 +BillStatusDraft=下書き(要検証済) BillStatusPaid=有料 BillStatusPaidBackOrConverted=貸方表の払戻または利用可能なクレジットとしてマーク BillStatusConverted=支払済(最終請求書で消費できる状態) BillStatusCanceled=放棄された -BillStatusValidated=(支払する必要がある)を検証 +BillStatusValidated=(支払する必要がある)を検証済 BillStatusStarted=開始 BillStatusNotPaid=未支払 BillStatusNotRefunded=未返金 @@ -145,17 +145,18 @@ BillShortStatusNotPaid=未支払 BillShortStatusNotRefunded=未返金 BillShortStatusClosedUnpaid=閉じた BillShortStatusClosedPaidPartially=支払済(一部) -PaymentStatusToValidShort=検証するには +PaymentStatusToValidShort=検証には ErrorVATIntraNotConfigured=コミュニティ内のVAT番号はまだ定義されていない ErrorNoPaiementModeConfigured=デフォルトの支払種別は定義されていない。これを修正するには、請求書モジュールの設定に移動。 ErrorCreateBankAccount=銀行口座を作成し、請求書モジュールの設定パネルに移動して支払種別を定義する ErrorBillNotFound=請求書%sは存在しない。 -ErrorInvoiceAlreadyReplaced=エラー、請求書%sを置き換えるために請求書を検証しようとしました。しかし、これはすでに請求書%sに置き換えられている。 +ErrorInvoiceAlreadyReplaced=エラー、請求書%sを置き換えるために請求書を検証しようとしました。しかし、これは既に請求書%sに置き換えられている。 ErrorDiscountAlreadyUsed=既に使用されるエラー、割引 ErrorInvoiceAvoirMustBeNegative=エラーは、正しい請求書は、負の金額を持っている必要がある ErrorInvoiceOfThisTypeMustBePositive=エラー、この種別の請求書には、正の税額(またはnull)を除いた金額が必要 -ErrorCantCancelIfReplacementInvoiceNotValidated=エラーは、下書きの状態のままで別の請求書に置き換えられている請求書を取り消すことはできない -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=この部分または別の部分はすでに使用されているため、割引シリーズを削除することはできない。 +ErrorCantCancelIfReplacementInvoiceNotValidated=エラーは、下書き状態のままの別請求書を置換した請求書は取消不可 +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=この部分または別の部分は既に使用されているため、割引シリーズを削除することはできない。 +ErrorInvoiceIsNotLastOfSameType=エラー:請求書%sの日付は%s。同じタイプの請求書(%s)の場合は、最終日以降である必要がある。請求書の日付を変更すること。 BillFrom=期初 BillTo=期末 ActionsOnBill=請求書上のアクション @@ -170,21 +171,21 @@ LatestCustomerTemplateInvoices=最新の%s顧客テンプレートの請求書 LatestSupplierTemplateInvoices=最新の%s仕入先テンプレートの請求書 LastCustomersBills=最新の%s顧客請求書 LastSuppliersBills=最新の%s仕入先請求書 -AllBills=すべての請求書 -AllCustomerTemplateInvoices=すべてのテンプレート請求書 +AllBills=全請求書 +AllCustomerTemplateInvoices=全テンプレート請求書 OtherBills=他の請求書 -DraftBills=下書きの請求書 +DraftBills=下書き請求書 CustomersDraftInvoices=顧客下書き請求書 SuppliersDraftInvoices=仕入先下書き請求書 Unpaid=未払 ErrorNoPaymentDefined=エラー支払が定義されていない ConfirmDeleteBill=この請求書を削除してもよいか? ConfirmValidateBill=この請求書を参照%s で検証してもよいか? -ConfirmUnvalidateBill=請求書%s を下書きステータスに変更してもよいか? -ConfirmClassifyPaidBill=請求書%s を支払済のステータスに変更してもよいか? +ConfirmUnvalidateBill=請求書%s を下書き状態に変更してもよいか? +ConfirmClassifyPaidBill=請求書%s を支払済の状態に変更してもよいか? ConfirmCancelBill=請求書をキャンセルしてもよいか%s ? ConfirmCancelBillQuestion=なぜこの請求書を「放棄」と分類したいのか? -ConfirmClassifyPaidPartially=請求書%s を支払済のステータスに変更してもよいか? +ConfirmClassifyPaidPartially=請求書%s を支払済の状態に変更してもよいか? ConfirmClassifyPaidPartiallyQuestion=この請求書は完全には支払われていない。この請求書を閉じる理由は何か? ConfirmClassifyPaidPartiallyReasonAvoir=残りの未払い(%s %s)は、期間前に支払が行われたために付与された割引。私はVATを貸方表で正規化。 ConfirmClassifyPaidPartiallyReasonDiscount=残りの未払い(%s %s)は、期間前に支払が行われたために付与された割引。 @@ -202,12 +203,12 @@ ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=製品の一部が返さ ConfirmClassifyPaidPartiallyReasonBankChargeDesc=未払いの金額は中間銀行手数料であり、顧客が支払った正しい金額から直接差し引かれる。 ConfirmClassifyPaidPartiallyReasonOtherDesc=他のすべてが適切でない場合、たとえば次の状況でこの選択を使用。
    -一部の製品が返送されたため支払が未完了
    -割引を忘れたため請求額が多すぎる
    いずれにせよ、貸方表を作成することにより、会計システムで過払い金を修正。 ConfirmClassifyAbandonReasonOther=その他 -ConfirmClassifyAbandonReasonOtherDesc=この選択は、他のすべての例で使用される。交換する請求書を作成することを計画するなどの理由で。 +ConfirmClassifyAbandonReasonOtherDesc=この選択は、他の全例で使用される。交換する請求書を作成することを計画するなどの理由で。 ConfirmCustomerPayment= %s %sのこの支払入力を確定するか? ConfirmSupplierPayment= %s %sのこの支払入力を確定するか? ConfirmValidatePayment=この支払を確認してもよいか?支払が確認されると、変更を加えることはできない。 -ValidateBill=請求書を検証する -UnvalidateBill=請求書を未検証に戻す +ValidateBill=請求書を検証 +UnvalidateBill=請求書を未検証に NumberOfBills=請求書の数 NumberOfBillsByMonth=1か月あたりの請求書の数 AmountOfBills=請求書の金額 @@ -231,8 +232,8 @@ setretainedwarrantyDateLimit=保証期間の制限を設定する RetainedWarrantyDateLimit=保証期間の制限 RetainedWarrantyNeed100Percent=PDFに表示するには、状況請求書が100%%の進行状況である必要がある AlreadyPaid=既に支払済 -AlreadyPaidBack=すでに払戻済 -AlreadyPaidNoCreditNotesNoDeposits=すでに支払済(貸方表と頭金 以外) +AlreadyPaidBack=既に払戻済 +AlreadyPaidNoCreditNotesNoDeposits=既に支払済(貸方表と頭金 以外) Abandoned=放棄済 RemainderToPay=未払まま RemainderToPayMulticurrency=未払残額、元通貨 @@ -253,15 +254,15 @@ EscompteOfferedShort=割引 SendBillRef=請求書の提出%s SendReminderBillRef=請求書の提出%s(リマインダー) SendPaymentReceipt=領収書の提出%s -NoDraftBills=下書きの請求なし -NoOtherDraftBills=他の下書きの請求なし -NoDraftInvoices=下書きの請求なし +NoDraftBills=下書き請求書なし +NoOtherDraftBills=他の下書き請求書なし +NoDraftInvoices=下書き請求書なし RefBill=請求書参照 ToBill=請求する RemainderToBill=法案に残り SendBillByMail=電子メールで請求書を送付 SendReminderBillByMail=電子メールでリマインダを送信 -RelatedCommercialProposals=関連する商業的な提案 +RelatedCommercialProposals=関連する商取引提案 RelatedRecurringCustomerInvoices=関連する定期的な顧客請求書 MenuToValid=有効に DateMaxPayment=支払期日 @@ -282,6 +283,8 @@ RecurringInvoices=定期的な請求書 RecurringInvoice=定期的な請求書 RepeatableInvoice=テンプレート請求書 RepeatableInvoices=テンプレートの請求書 +RecurringInvoicesJob=定期請求書(販売請求書)生成 +RecurringSupplierInvoicesJob=定期請求書(購入請求書)生成 Repeatable=テンプレート Repeatables=テンプレート ChangeIntoRepeatableInvoice=テンプレートの請求書に変換する @@ -318,7 +321,7 @@ DiscountFromDeposit=請求書からの頭金%s DiscountFromExcessReceived=請求書を超える支払%s DiscountFromExcessPaid=請求書を超える支払%s AbsoluteDiscountUse=クレジットこの種のは、その検証の前に請求書に使用することができる -CreditNoteDepositUse=この種のクレジットを使用するには、請求書を検証する必要がある +CreditNoteDepositUse=この種のクレジットを使用するには、請求書が要検証済 NewGlobalDiscount=新規絶対割引 NewRelativeDiscount=新規相対的な割引 DiscountType=割引種別 @@ -326,7 +329,7 @@ NoteReason=(注)/理由 ReasonDiscount=理由 DiscountOfferedBy=によって付与された DiscountStillRemaining=利用可能な割引またはクレジット -DiscountAlreadyCounted=すでに消費された割引またはクレジット +DiscountAlreadyCounted=既に消費された割引またはクレジット CustomerDiscounts=顧客割引 SupplierDiscounts=仕入先割引 BillAddress=ビル·住所 @@ -343,16 +346,16 @@ InvoiceStatus=請求書の状況 InvoiceNote=納品請求書 InvoicePaid=支払われた請求 InvoicePaidCompletely=完全に支払われた -InvoicePaidCompletelyHelp=完全に支払われる請求書。これには、部分的に支払われる請求書は含まれない。すべての「クローズ」または「クローズ」以外の請求書のリストを取得するには、請求書のステータスにフィルタを使用することを勧める。 +InvoicePaidCompletelyHelp=完全に支払われる請求書。これには、部分的に支払われる請求書は含まれない。全「クローズ」または「クローズ」以外の請求書のリストを取得するには、請求書の状態にフィルタを使用することを勧める。 OrderBilled=請求済の注文 DonationPaid=寄付金を支払ました PaymentNumber=支払番号 RemoveDiscount=割引を削除 -WatermarkOnDraftBill=下書きの請求書上にウォーターマーク(空の場合はNothing) +WatermarkOnDraftBill=下書き請求書上に透かし(空ならなし) InvoiceNotChecked=ない請求書が選択されていない ConfirmCloneInvoice=この請求書のクローンを作成してもよいか%s ? DisabledBecauseReplacedInvoice=請求書が交換されたため、アクションを無効に -DescTaxAndDividendsArea=この領域には、特別経費に対して行われたすべての支払の概要が表示される。固定年の支払のあるレコードのみがここに含まれる。 +DescTaxAndDividendsArea=この領域には、特別経費に対して行われた全支払の概要が表示される。固定年の支払のあるレコードのみがここに含まれる。 NbOfPayments=支払回数 SplitDiscount=二つに割引を分割 ConfirmSplitDiscount=この%s %sの割引を2つの小さな割引に分割してもよいか? @@ -364,7 +367,7 @@ RelatedBills=関連する請求書 RelatedCustomerInvoices=関連する顧客請求書 RelatedSupplierInvoices=関連する仕入先請求書 LatestRelatedBill=最新の関連請求書 -WarningBillExist=警告、1つ以上の請求書がすでに存在する +WarningBillExist=警告、1つ以上の請求書が既に存在する MergingPDFTool=PDFツールのマージ AmountPaymentDistributedOnInvoice=請求書に記載されている支払金額 PaymentOnDifferentThirdBills=異なる取引先の請求書での支払を許可するが、親法人は同じ @@ -387,11 +390,11 @@ NextDateToExecutionShort=次世代の日付。 DateLastGeneration=最新世代の日付 DateLastGenerationShort=最新世代の日付 MaxPeriodNumber=最大請求書の生成回数 -NbOfGenerationDone=すでに行われた請求書の生成数 -NbOfGenerationOfRecordDone=すでに処理済のレコード生成数 +NbOfGenerationDone=既に行われた請求書の生成数 +NbOfGenerationOfRecordDone=既に処理済のレコード生成数 NbOfGenerationDoneShort=行われた世代の数 MaxGenerationReached=最大世代数に達しました -InvoiceAutoValidate=請求書を自動的に検証する +InvoiceAutoValidate=請求書を自動的に検証 GeneratedFromRecurringInvoice=テンプレートの定期的な請求書から生成%s DateIsNotEnough=まだ日付に達していない InvoiceGeneratedFromTemplate=定期的なテンプレート請求書%sから生成された請求書%s @@ -401,7 +404,7 @@ WarningInvoiceDateTooFarInFuture=警告、請求日が現在の日付から遠 ViewAvailableGlobalDiscounts=利用可能な割引を表示する GroupPaymentsByModOnReports=報告書sのモードごとのグループ支払 # PaymentConditions -Statut=ステータス +Statut=状態 PaymentConditionShortRECEP=受領時 PaymentConditionRECEP=受領時 PaymentConditionShort30D=30日 @@ -426,14 +429,24 @@ PaymentConditionShort14D=14日間 PaymentCondition14D=14日間 PaymentConditionShort14DENDMONTH=月末の14日 PaymentCondition14DENDMONTH=月末から14日以内 +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%%入金 +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%%入金、残りは配送中 FixAmount=固定金額-ラベル「%s」の1行 VarAmount=可変量(%% tot。) VarAmountOneLine=可変量(%% tot。)-ラベル「%s」の1行 -VarAmountAllLines=可変数量(%% tot.)-原点からのすべての行 +VarAmountAllLines=可変数量(%% tot.)-原点からの全行 +DepositPercent=入金%% +DepositGenerationPermittedByThePaymentTermsSelected=これは、選択した支払い条件によって許可される +GenerateDeposit=%s%%入金請求書を生成する +ValidateGeneratedDeposit=生成された入金を検証する +DepositGenerated=入金が生成された +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=提案または注文からのみ自動的に入金を生成できる +ErrorPaymentConditionsNotEligibleToDepositCreation=選択した支払い条件は、自動入金生成の対象ではない # PaymentType -PaymentTypeVIR=銀行の転送 -PaymentTypeShortVIR=銀行の転送 +PaymentTypeVIR=銀行振込 +PaymentTypeShortVIR=銀行振込 PaymentTypePRE=口座振替の支払注文 +PaymentTypePREdetails=(アカウント *-%s) PaymentTypeShortPRE=デビット支払注文 PaymentTypeLIQ=現金 PaymentTypeShortLIQ=現金 @@ -445,7 +458,7 @@ PaymentTypeTIP=ヒント(支払に対する文書) PaymentTypeShortTIP=ヒント支払 PaymentTypeVAD=オンライン支払 PaymentTypeShortVAD=オンライン支払 -PaymentTypeTRA=銀行為替手形 +PaymentTypeTRA=銀行手形 PaymentTypeShortTRA=下書き PaymentTypeFAC=因子 PaymentTypeShortFAC=因子 @@ -466,22 +479,23 @@ BICNumber=BIC / SWIFTコード ExtraInfos=余分に関する情報 RegulatedOn=に規制 ChequeNumber=Nを確認して° -ChequeOrTransferNumber=転送チェック/ N° +ChequeOrTransferNumber=小切手/振込 番号 ChequeBordereau=スケジュールを確認する -ChequeMaker=送信者の確認/転送 +ChequeMaker=小切手/振込 送り主 ChequeBank=チェックの銀行 CheckBank=チェック NetToBePaid=支払われるネット PhoneNumber=電話番号 FullPhoneNumber=電話 TeleFax=ファックス -PrettyLittleSentence=財政主管庁により承認された会計協会のメンバーとして私の名前で発行された小切手による支払の量を受け入れる。 +PrettyLittleSentence=財政主管庁により承認された会計協会の構成員として私の名前で発行された小切手による支払の量を受け入れる。 IntracommunityVATNumber=コミュニティ内VATID PaymentByChequeOrderedTo=小切手による支払(税込)は%sに支払う必要があり、 PaymentByChequeOrderedToShort=小切手による支払(税込)は、 SendTo=送り先 PaymentByTransferOnThisBankAccount=以下の銀行口座への振込による支払 VATIsNotUsedForInvoice=CGIの*非適用される付加価値税がart-293B +VATIsNotUsedForInvoiceAsso=* 該当しないVAT CGIのart-261-7 LawApplicationPart1=12/05/80の法則80.335のアプリケーションによって LawApplicationPart2=製品は次の所有が持続する LawApplicationPart3=次の全額が支払われるまで売り手 @@ -491,38 +505,38 @@ UseLine=適用 UseDiscount=割引を使用 UseCredit=クレジットを使用 UseCreditNoteInInvoicePayment=このクレジットで支払う金額を減らす -MenuChequeDeposits=預金を確認して +MenuChequeDeposits=小切手入金 MenuCheques=かどうかをチェック MenuChequesReceipts=領収書を確認する -NewChequeDeposit=新規預金 +NewChequeDeposit=新規入金 ChequesReceipts=領収書を確認する -ChequesArea=預金エリアを確認して -ChequeDeposits=預金を確認する +ChequesArea=小切手入金エリア +ChequeDeposits=小切手入金s Cheques=小切手s -DepositId=IDデポジット +DepositId=入金ID NbCheque=チェックの数 CreditNoteConvertedIntoDiscount=この%sは%sに変換された UsBillingContactAsIncoiveRecipientIfExist=請求書の受信者として、取引先の住所の代わりに「請求先連絡先」種別の連絡先/住所を使用する -ShowUnpaidAll=すべての未払請求書を表示する +ShowUnpaidAll=全未払請求書を表示する ShowUnpaidLateOnly=後半未払請求書のみを表示 PaymentInvoiceRef=支払の請求書%s -ValidateInvoice=請求書を検証する -ValidateInvoices=請求書を検証する +ValidateInvoice=請求書を検証 +ValidateInvoices=請求書を検証 Cash=現金 Reported=遅延 DisabledBecausePayments=いくつかの支払があるので不可 -CantRemovePaymentWithOneInvoicePaid=支払済に分類される請求書が少なくとも一つあるので支払を削除できない -CantRemovePaymentVATPaid=VAT申告は支払い済に分類されているため、支払いを削除できない -CantRemovePaymentSalaryPaid=給与は支払済に分類されているため、支払を削除できない +CantRemovePaymentWithOneInvoicePaid=支払済指定された請求書が少なくとも一つあるので支払を削除できない +CantRemovePaymentVATPaid=VAT申告は支払済指定されているため、支払を削除できない +CantRemovePaymentSalaryPaid=給与は支払済指定されているため、支払を削除できない ExpectedToPay=予想される支払 CantRemoveConciliatedPayment=調整済の支払を削除できない PayedByThisPayment=この支払によって支払った -ClosePaidInvoicesAutomatically=支払が完全に行われると、すべての標準、頭金、または交換の請求書が「支払済」として自動的に分類される。 -ClosePaidCreditNotesAutomatically=払戻が完全に行われると、すべての貸方表が「支払済」として自動的に分類される。 -ClosePaidContributionsAutomatically=支払が完全に行われると、すべての社会的または財政的貢献を「支払済」として自動的に分類。 -ClosePaidVATAutomatically=支払いが完全に行われると、VAT申告が「支払い済」として自動的に分類される。 +ClosePaidInvoicesAutomatically=支払が完全に行われると、全標準、頭金、または交換の請求書が「支払済」として自動的に分類される。 +ClosePaidCreditNotesAutomatically=払戻が完全に行われると、全貸方表が「支払済」として自動的に分類される。 +ClosePaidContributionsAutomatically=支払が完全に行われると、全社会的または財政的貢献を「支払済」として自動的に分類。 +ClosePaidVATAutomatically=支払が完全に行われると、VAT申告が「支払済」として自動的に分類される。 ClosePaidSalaryAutomatically=支払が完全に行われると、給与は自動的に ”支払済" に分類される。 -AllCompletelyPayedInvoiceWillBeClosed=残りの支払がないすべての請求書は、ステータス「支払済」で自動的に閉じられる。 +AllCompletelyPayedInvoiceWillBeClosed=残りの支払がない全請求書は、状態「支払済」で自動的に閉じられる。 ToMakePayment=支払う ToMakePaymentBack=返済 ListOfYourUnpaidInvoices=未払請求書のリスト @@ -536,7 +550,7 @@ PDFSpongeDescription=請求書PDFテンプレートスポンジ。完全な請 PDFCrevetteDescription=請求書PDFテンプレートクレベット。シチュエーション請求書の完全な請求書テンプレート TerreNumRefModelDesc1=戻る数値の形式は、標準請求書の場合は%syymm-nnnnの形式、貸方票の場合は%syymm-nnnnの形式。ここで、yyは年、mmは月、nnnnは自動増加順次番号で切れ目なく0戻りしない数値。 MarsNumRefModelDesc1= 戻る数値の形式は、標準請求書の場合は%syymm-nnnn の形式、交換請求書の場合は %syymm-nnnn の形式、頭金請求書の場合は %syymm-nnnn の形式 、貸方票の場合は %syymm-nnnn の形式。ここで、 yy は年、mm は月、nnnn は自動増加順次番号で切れ目なく0戻りしない数値。 -TerreNumRefModelError=$ syymm始まる法案はすでに存在し、シーケンスのこのモデルと互換性がない。それを削除するか、このモジュールを有効にするために名前を変更。 +TerreNumRefModelError=$ syymm で始まる支払が既に存在し、シーケンスのこのモデルと互換性がない。このモジュールを有効化するため、それを削除するか、名前を変更すること。 CactusNumRefModelDesc1=戻る数値の形式は、標準請求書の場合は%syymm-nnnn の形式、貸方票の場合は%syymm-nnnn の形式、頭金請求書の場合は%syymm-nnnn の形式。ここで、 yy は年、mm は月、nnnn は自動増加順次番号で切れ目なく0戻しない数値。 EarlyClosingReason=早期閉鎖理由 EarlyClosingComment=早期終了メモ @@ -558,13 +572,13 @@ InvoiceSituationAsk=状況に応じた請求書 InvoiceSituationDesc=既存の状況に続いて新規状況を作成する SituationAmount=状況請求額(純額) SituationDeduction=状況減算 -ModifyAllLines=すべての行を変更する +ModifyAllLines=全行を変更する CreateNextSituationInvoice=次の状況を作成する ErrorFindNextSituationInvoice=次のシチュエーションサイクル参照が見つからないというエラー ErrorOutingSituationInvoiceOnUpdate=この状況の請求書を出すことができない。 ErrorOutingSituationInvoiceCreditNote=リンクされた貸方表は外部化できない。 NotLastInCycle=この請求書は最新のサイクルではないため、変更しない。 -DisabledBecauseNotLastInCycle=次の状況はすでに存在。 +DisabledBecauseNotLastInCycle=次の状況は既に存在。 DisabledBecauseFinal=この状況は最終的なもの。 situationInvoiceShortcode_AS=なので situationInvoiceShortcode_S=S @@ -586,7 +600,7 @@ ConfirmDeleteRepeatableInvoice=テンプレートの請求書を削除しても CreateOneBillByThird=取引先ごとに1つ請求書を作成(または、選択オブジェクトごとに1つ請求書を作成) BillCreated=%s請求書(s)が作成された BillXCreated=請求書%sが生成された -StatusOfGeneratedDocuments=ドキュメント生成のステータス +StatusOfGeneratedDocuments=ドキュメント生成の状態 DoNotGenerateDoc=ドキュメントファイルを生成しない AutogenerateDoc=ドキュメントファイルの自動生成 AutoFillDateFrom=請求書の日付でサービスラインの開始日を設定する @@ -599,11 +613,12 @@ BILL_SUPPLIER_DELETEInDolibarr=サプライヤーの請求書が削除された UnitPriceXQtyLessDiscount=単価x数量-割引 CustomersInvoicesArea=顧客請求エリア SupplierInvoicesArea=サプライヤーの請求エリア -FacParentLine=請求書明細の親 SituationTotalRayToRest=税抜き支払残 PDFSituationTitle=状況番号%d SituationTotalProgress=総進捗状況%d%% SearchUnpaidInvoicesWithDueDate=期日が%sの未払請求書を検索する -NoPaymentAvailable=%sの支払いはない +NoPaymentAvailable=%sの支払はない PaymentRegisteredAndInvoiceSetToPaid=支払は登録済、請求書%sは支払済に設定 SendEmailsRemindersOnInvoiceDueDate=未払いの請求書については、メールでリマインダーを送信する +MakePaymentAndClassifyPayed=支払の記録 +BulkPaymentNotPossibleForInvoice=請求書%s(タイプまたは状態が不良)の一括支払はできない diff --git a/htdocs/langs/ja_JP/blockedlog.lang b/htdocs/langs/ja_JP/blockedlog.lang index afdb0876c7a..32907187617 100644 --- a/htdocs/langs/ja_JP/blockedlog.lang +++ b/htdocs/langs/ja_JP/blockedlog.lang @@ -2,10 +2,10 @@ BlockedLog=変更不可能なログ Field=フィールド BlockedLogDesc=このモジュールは、いくつかのイベントを、ブロックチェーンへの変更不可能なログ(一度記録すると変更できない)にリアルタイムで追跡する。このモジュールは、一部の国の法律の要件との互換性を提供する(フランスの法律Finance 2016-Norme NF525など)。 Fingerprints=アーカイブ済イベントとフィンガープリント -FingerprintsDesc=これは、変更できないログを参照または抽出するためのツール。変更不可能なログは、ビジネスイベントを記録するときにリアルタイムで生成され、専用のテーブルにローカルにアーカイブされる。このツールを使用して、このアーカイブをエクスポートし、外部サポートに保存できる(フランスなど、毎年行うように依頼する国もある)。このログを削除する機能はなく、このログに直接(ハッカーなどによって)実行されようとしたすべての変更は、無効なフィンガープリントで報告されることに注意して。アプリケーションをデモ/テスト目的で使用し、データをクリーンアップして本番環境を開始したいためにこのテーブルを本当にパージする必要がある場合は、リセラーまたはインテグレーターにデータベースのリセットを依頼できる(すべてのデータが削除される)。 +FingerprintsDesc=これは、変更できないログを参照または抽出するためのツール。変更不可能なログは、ビジネスイベントを記録するときにリアルタイムで生成され、専用のテーブルにローカルにアーカイブされる。このツールを使用して、このアーカイブをエクスポートし、外部サポートに保存できる(フランスなど、毎年行うように依頼する国もある)。このログを削除する機能はなく、このログに直接(ハッカーなどによって)実行されようとした全変更は、無効なフィンガープリントで報告されることに注意して。アプリケーションをデモ/テスト目的で使用し、データをクリーンアップして本番環境を開始したいためにこのテーブルを本当にパージする必要がある場合は、リセラーまたはインテグレーターにデータベースのリセットを依頼できる(全データが削除される)。 CompanyInitialKey=法人の初期キー(ジェネシスブロックのハッシュ) BrowseBlockedLog=変更できないログ -ShowAllFingerPrintsMightBeTooLong=アーカイブ済すべてのログを表示する(長い場合あり) +ShowAllFingerPrintsMightBeTooLong=アーカイブ済全ログを表示する(長い場合あり) ShowAllFingerPrintsErrorsMightBeTooLong=無効なアーカイブログをすべて表示する(長くなる可能性あり) DownloadBlockChain=指紋をダウンロードする KoCheckFingerprintValidity=アーカイブされたログエントリは無効。これは、誰か(ハッカー?)が記録後にこのレコードの一部のデータを変更したか、前のアーカイブレコードを消去したか(以前の番号が付いた行の存在を確認する)、前のレコードのチェックサムを変更したことを意味する。 @@ -24,7 +24,7 @@ logDONATION_PAYMENT_CREATE=寄付金は作成済 logDONATION_PAYMENT_DELETE=寄付金は論理削除済 logBILL_PAYED=顧客請求書は支払済 logBILL_UNPAYED=顧客請求書は未払にした -logBILL_VALIDATE=顧客への請求書が検証済 +logBILL_VALIDATE=顧客への請求書は検証済 logBILL_SENTBYMAIL=顧客請求書を郵送 logBILL_DELETE=顧客請求書は論理削除済 logMODULE_RESET=モジュールBlockedLogは無効化済 @@ -32,9 +32,9 @@ logMODULE_SET=モジュールBlockedLogは有効化済 logDON_VALIDATE=寄付は検証済 logDON_MODIFY=寄付は変更済 logDON_DELETE=寄付は論理削除済 -logMEMBER_SUBSCRIPTION_CREATE=メンバーサブスクリプションは作成済 -logMEMBER_SUBSCRIPTION_MODIFY=メンバーサブスクリプションは変更済 -logMEMBER_SUBSCRIPTION_DELETE=メンバーサブスクリプションは論理削除済 +logMEMBER_SUBSCRIPTION_CREATE=構成員サブスクリプションは作成済 +logMEMBER_SUBSCRIPTION_MODIFY=構成員サブスクリプションは変更済 +logMEMBER_SUBSCRIPTION_DELETE=構成員サブスクリプションは論理削除済 logCASHCONTROL_VALIDATE=現金出納帳の締めを記録中 BlockedLogBillDownload=顧客請求書のダウンロード BlockedLogBillPreview=顧客請求書のプレビュー @@ -46,8 +46,8 @@ logDOC_PREVIEW=印刷またはダウンロードするための検証済ドキ logDOC_DOWNLOAD=印刷または送信するための検証済ドキュメントのダウンロード DataOfArchivedEvent=アーカイブ済イベントの完全なデータ ImpossibleToReloadObject=元のオブジェクト(タイプ%s、id %s)がリンクされていない(変更できない保存データを取得するには、「完全なデータ」列を参照して) -BlockedLogAreRequiredByYourCountryLegislation=変更不可能なログモジュールは、お住まいの国の法律によって要求される場合あり。このモジュールを無効にすると、税務監査で検証できないため、法律および法律ソフトウェアの使用に関して将来の取引が無効になる可能性あり。 -BlockedLogActivatedBecauseRequiredByYourCountryLegislation=あなたの国の法律により、変更不可能なログモジュールがアクティブ化済。このモジュールを無効にすると、税務監査で検証できないため、法律および法律ソフトウェアの使用に関して将来の取引が無効になる可能性あり。 +BlockedLogAreRequiredByYourCountryLegislation=変更不可能なログモジュールは、居住国の法律によって要求される場合あり。このモジュールを無効にすると、税務監査で検証済にできないため、法律および法律ソフトウェアの使用に関して将来の取引が無効になる可能性あり。 +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=あなたの国の法律により、変更不可能なログモジュールが有効化済。このモジュールを無効にすると、税務監査で検証済にできないため、法律および法律ソフトウェアの使用に関して将来の取引が無効になる可能性あり。 BlockedLogDisableNotAllowedForCountry=このモジュールの使用が必須である国のリスト(誤ってモジュールを無効にするのを防ぐために、あなたの国がこのリストにある場合、最初にこのリストを編集しないとモジュールを無効にできない。このモジュールの有効/無効は、変更不可能なログに追跡されることに注意)。 OnlyNonValid=無効 TooManyRecordToScanRestrictFilters=スキャン/分析するにはレコードが多すぎ。より制限の厳しいフィルタでリストを制限すること。 diff --git a/htdocs/langs/ja_JP/boxes.lang b/htdocs/langs/ja_JP/boxes.lang index d21f5b0d29b..50556765e00 100644 --- a/htdocs/langs/ja_JP/boxes.lang +++ b/htdocs/langs/ja_JP/boxes.lang @@ -9,7 +9,7 @@ BoxLastSupplierBills=最新の仕入先の請求書 BoxLastCustomerBills=最新の顧客の請求書 BoxOldestUnpaidCustomerBills=最も古い未払いの顧客の請求書 BoxOldestUnpaidSupplierBills=最も古い未払いの仕入先の請求書 -BoxLastProposals=最新の商業提案 +BoxLastProposals=最新の商取引提案 BoxLastProspects=最新の変更された見通し BoxLastCustomers=最新の変更された顧客 BoxLastSuppliers=最新の変更されたサプライヤー @@ -17,14 +17,14 @@ BoxLastCustomerOrders=最新の販売注文 BoxLastActions=最新のアクション BoxLastContracts=最新の契約 BoxLastContacts=最新の連絡先/住所 -BoxLastMembers=最新のメンバー -BoxLastModifiedMembers=最新の変更されたメンバ -BoxLastMembersSubscriptions=最新のメンバサブスクリプション +BoxLastMembers=最新の構成員 +BoxLastModifiedMembers=最新の変更された構成員 +BoxLastMembersSubscriptions=最新の構成員サブスクリプション BoxFicheInter=最新の介入 BoxCurrentAccounts=口座残高 -BoxTitleMemberNextBirthdays=今月の誕生日(会員) -BoxTitleMembersByType=タイプ別のメンバ -BoxTitleMembersSubscriptionsByYear=年ごとのメンバサブスクリプション +BoxTitleMemberNextBirthdays=今月の誕生日(構成員) +BoxTitleMembersByType=タイプと状態別の構成員 +BoxTitleMembersSubscriptionsByYear=年ごとの構成員サブスクリプション BoxTitleLastRssInfos=%sからの最新の%sニュース BoxTitleLastProducts=製品/サービス:最後に変更された%s BoxTitleProductsAlertStock=製品:在庫アラート @@ -35,12 +35,12 @@ BoxTitleLastCustomersOrProspects=最新の%sの顧客または見込み客 BoxTitleLastCustomerBills=最近修正された請求書:%s件 BoxTitleLastSupplierBills=最新の%s変更された仕入先の請求書 BoxTitleLastModifiedProspects=見通し:最後に変更された%s -BoxTitleLastModifiedMembers=最新の%sメンバー +BoxTitleLastModifiedMembers=最新の%s構成員 BoxTitleLastFicheInter=最新の%s修正された介入 BoxTitleOldestUnpaidCustomerBills=未入金の請求書:最古から%s件 BoxTitleOldestUnpaidSupplierBills=仕入先の請求書:最も古い%s未払い BoxTitleCurrentAccounts=開設中口座:残高 -BoxTitleSupplierOrdersAwaitingReception=受付待ちのサプライヤー注文 +BoxTitleSupplierOrdersAwaitingReception=領収待ちのサプライヤー注文 BoxTitleLastModifiedContacts=最近修正された連絡先・アドレス:%s件 BoxMyLastBookmarks=ブックマーク:最新の%s BoxOldestExpiredServices=最も古いアクティブな期限切れのサービス @@ -60,7 +60,7 @@ BoxTitleFunnelOfProspection=リードファンネル FailedToRefreshDataInfoNotUpToDate=RSSフラックスの更新に失敗しました。最新の正常な更新日:%s LastRefreshDate=最新の更新日 NoRecordedBookmarks=ブックマークが定義されていない。 -ClickToAdd=追加するにはここをクリックしてください。 +ClickToAdd=追加するにはここをクリックすること。 NoRecordedCustomers=記録された顧客がない NoRecordedContacts=コンタクトの記録なし NoActionsToDo=そうするアクションはない @@ -75,9 +75,9 @@ NoRecordedProspects=全く記録された見通しなし NoContractedProducts=製品/サービスの契約なし NoRecordedContracts=契約の記録なし NoRecordedInterventions=記録された介入はない -BoxLatestSupplierOrders=最新の注文書 -BoxLatestSupplierOrdersAwaitingReception=最新の注文書(受付待ち) -NoSupplierOrder=注文書は記録されていない +BoxLatestSupplierOrders=最新の購買発注 +BoxLatestSupplierOrdersAwaitingReception=最新の購買発注(領収待ち) +NoSupplierOrder=購買発注は記録されていない BoxCustomersInvoicesPerMonth=1か月あたりの顧客の請求書 BoxSuppliersInvoicesPerMonth=1か月あたりの仕入先の請求書 BoxCustomersOrdersPerMonth=1か月あたりの販売注文 @@ -99,7 +99,7 @@ ForProposals=提案 LastXMonthRolling=最新の %s 月ローリング ChooseBoxToAdd=ダッシュボードにウィジェットを追加する BoxAdded=ダッシュボードにウィジェットが追加された -BoxTitleUserBirthdaysOfMonth=今月の誕生日(ユーザー) +BoxTitleUserBirthdaysOfMonth=今月の誕生日(ユーザ) BoxLastManualEntries=手動またはソースドキュメントなしで入力された会計の最新レコード BoxTitleLastManualEntries=%s手動またはソースドキュメントなしで入力された最新のレコード NoRecordedManualEntries=会計に手動入力の記録はない @@ -113,7 +113,7 @@ NoRecordedShipments=顧客の出荷は記録されていない BoxCustomersOutstandingBillReached=上限に達した顧客 # Pages UsersHome=ユーザとグループ -MembersHome=メンバーシップ +MembersHome=ホーム成員資格 ThirdpartiesHome=取引先 TicketsHome=チケット AccountancyHome=会計 diff --git a/htdocs/langs/ja_JP/cashdesk.lang b/htdocs/langs/ja_JP/cashdesk.lang index 7e9b4ce86fc..b7ce14ca2ff 100644 --- a/htdocs/langs/ja_JP/cashdesk.lang +++ b/htdocs/langs/ja_JP/cashdesk.lang @@ -12,16 +12,16 @@ CashDeskOn=上の CashDeskThirdParty=第三者 ShoppingCart=ショッピングカート NewSell=新規販売 -AddThisArticle=この記事を追加。 +AddThisArticle=この項目を追加。 RestartSelling=販売に戻る SellFinished=販売完了 PrintTicket=印刷チケット SendTicket=チケットを送る -NoProductFound=記事見つからない +NoProductFound=項目見つからない ProductFound=製品が見つかった -NoArticle=記事なし +NoArticle=項目なし Identification=識別 -Article=記事 +Article=項目 Difference=違い TotalTicket=合計チケット NoVAT=この売却のための付加価値税なし @@ -29,9 +29,9 @@ Change=受領した余剰 BankToPay=支払口座 ShowCompany=法人を表示 ShowStock=倉庫を表示 -DeleteArticle=この記事を削除するときにクリックする +DeleteArticle=この項目を削除するときにクリックする FilterRefOrLabelOrBC=検索 (参照/ラベル) -UserNeedPermissionToEditStockToUsePos=請求書の作成時に在庫を減らすように依頼するため、POSを使用するユーザーには在庫を編集する権限が必要。 +UserNeedPermissionToEditStockToUsePos=請求書の作成時に在庫を減らすように依頼するため、POSを使用するユーザには在庫を編集する権限が必要。 DolibarrReceiptPrinter=Dolibarr領収書プリンター PointOfSale=販売時点 PointOfSaleShort=POS @@ -41,7 +41,7 @@ Floor=床 AddTable=テーブルを追加 Place=場所 TakeposConnectorNecesary=「TakePOSコネクタ」が必要 -OrderPrinters=支払いなしで特定のプリンターに注文を送信するためのボタンを追加する(たとえば、キッチンに注文を送信するため) +OrderPrinters=支払なしで特定のプリンターに注文を送信するためのボタンを追加する(たとえば、キッチンに注文を送信するため) NotAvailableWithBrowserPrinter=レシート用プリンターがブラウザに設定されている場合は使用できない SearchProduct=製品を検索する Receipt=領収書 @@ -50,18 +50,18 @@ Footer=フッター AmountAtEndOfPeriod=期末の金額(日、月、または年) TheoricalAmount=理論量 RealAmount=実数 -CashFence=現金出納帳の締め -CashFenceDone=当該期間での現金出納帳の締めが完了 +CashFence=金銭収納箱を閉める +CashFenceDone=期間中に行われた金銭収納箱の閉め NbOfInvoices=請求書のNb -Paymentnumpad=支払いを入力するパッドのタイプ +Paymentnumpad=支払を入力するパッドのタイプ Numberspad=ナンバーズパッド BillsCoinsPad=硬貨と紙幣パッド DolistorePosCategory=Dolibarr用のTakePOSモジュールおよびその他のPOSソリューション TakeposNeedsCategories=TakePOSが機能するには、少なくとも1つの製品カテゴリが必要 TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=TakePOSが機能するには、カテゴリ %sの下に少なくとも1つの製品カテゴリが必要。 OrderNotes=注文した各アイテムにメモを追加できる -CashDeskBankAccountFor=での支払いに使用するデフォルトのアカウント -NoPaimementModesDefined=TakePOS構成で定義された支払いモードはあらない +CashDeskBankAccountFor=での支払に使用するデフォルトのアカウント +NoPaimementModesDefined=TakePOS構成で定義された支払モードはあらない TicketVatGrouped=チケットのレートでVATをグループ化|領収書 AutoPrintTickets=チケットを自動的に印刷|領収書 PrintCustomerOnReceipts=チケットに顧客を印刷する|領収書 @@ -78,9 +78,9 @@ POSTerminal=POS端末 POSModule=POSモジュール BasicPhoneLayout=電話の基本的なレイアウトを使用する SetupOfTerminalNotComplete=ターミナル%sの設定が完了していない -DirectPayment=直接支払い -DirectPaymentButton=「直接現金支払い」ボタンを追加する -InvoiceIsAlreadyValidated=請求書はすでに検証されている +DirectPayment=直接支払 +DirectPaymentButton=「直接現金支払」ボタンを追加する +InvoiceIsAlreadyValidated=請求書は既に検証済である NoLinesToBill=請求する行がない CustomReceipt=カスタム領収書 ReceiptName=領収書名 @@ -96,21 +96,21 @@ TakeposConnectorMethodDescription=追加機能を備えた外部モジュール PrintMethod=印刷方法 ReceiptPrinterMethodDescription=多くのパラメータを持つ強力な方法。テンプレートで完全にカスタマイズ可能。アプリケーションをホストしているサーバーをクラウドに配置することはできない(ネットワーク内のプリンターにアクセスできる必要がある)。 ByTerminal=ターミナルで -TakeposNumpadUsePaymentIcon=テンキーの支払いボタンのテキストの代わりにアイコンを使用する -CashDeskRefNumberingModules=POS販売用の番号付けモジュール +TakeposNumpadUsePaymentIcon=テンキーの支払ボタンのテキストの代わりにアイコンを使用する +CashDeskRefNumberingModules=POS販売用の採番モジュール CashDeskGenericMaskCodes6 =
    {TN} タグは端末番号を追加するために使用される TakeposGroupSameProduct=同じ製品ラインをグループ化する StartAParallelSale=新規並行販売を開始する SaleStartedAt=%sから販売開始 -ControlCashOpening=POSを開くときに「現金の管理」ポップアップを開く -CloseCashFence=現金出納帳制御を閉じる +ControlCashOpening=POSを開くときに「金銭収納箱制御」ポップアップを開く +CloseCashFence=金銭収納箱制御を閉める CashReport=現金報告書 MainPrinterToUse=使用するメインプリンター OrderPrinterToUse=使用するプリンタを注文する MainTemplateToUse=使用するメインテンプレート OrderTemplateToUse=使用する注文テンプレート BarRestaurant=バーレストラン -AutoOrder=お客様ご自身でご注文ください +AutoOrder=顧客自身による注文 RestaurantMenu=メニュー CustomerMenu=カスタマーメニュー ScanToMenu=QRコードをスキャンしてメニューを表示する @@ -123,8 +123,8 @@ DefineTablePlan=テーブルプランを定義する GiftReceiptButton=「領収書」ボタンを追加 GiftReceipt=ギフトレシート ModuleReceiptPrinterMustBeEnabled=モジュールレシートプリンターを最初に有効にしておく必要がある -AllowDelayedPayment=支払いの遅延を許可する -PrintPaymentMethodOnReceipts=チケットに支払い方法を印刷する|領収書 +AllowDelayedPayment=支払の遅延を許可する +PrintPaymentMethodOnReceipts=チケットに支払方法を印刷する|領収書 WeighingScale=体重計 ShowPriceHT = 税抜き価格の列を表示する(画面上) ShowPriceHTOnReceipt = (領収書に)税抜き価格の列を表示する @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=「詳細なしで印刷」ボタンを追加 PrintWithoutDetailsLabelDefault=詳細なしで印刷する場合のデフォルトの行ラベル 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 29b1f77f984..3a6c0fba446 100644 --- a/htdocs/langs/ja_JP/categories.lang +++ b/htdocs/langs/ja_JP/categories.lang @@ -12,14 +12,14 @@ CategoriesArea=タグ/カテゴリエリア ProductsCategoriesArea=製品/サービスタグ/カテゴリ領域 SuppliersCategoriesArea=仕入先タグ/カテゴリエリア CustomersCategoriesArea=顧客タグ/カテゴリ領域 -MembersCategoriesArea=メンバータグ/カテゴリエリア +MembersCategoriesArea=構成員タグ/カテゴリエリア ContactsCategoriesArea=連絡先タグ/カテゴリ領域 AccountsCategoriesArea=銀行口座のタグ/カテゴリ領域 ProjectsCategoriesArea=プロジェクトタグ/カテゴリ領域 -UsersCategoriesArea=ユーザータグ/カテゴリ領域 +UsersCategoriesArea=ユーザタグ/カテゴリ領域 SubCats=サブカテゴリ CatList=タグ/カテゴリのリスト -CatListAll=タグ/カテゴリのリスト(すべての種別) +CatListAll=タグ/カテゴリのリスト(全種別) NewCategory=新規タグ/カテゴリ ModifCat=タグ/カテゴリを変更する CatCreated=作成されたタグ/カテゴリ @@ -28,17 +28,17 @@ CreateThisCat=このタグ/カテゴリを作成する NoSubCat=サブカテゴリなし SubCatOf=サブカテゴリ FoundCats=見つかったタグ/カテゴリ -ImpossibleAddCat=タグ/カテゴリを%sに追加できません。 -WasAddedSuccessfully=%sが正常追加されました。 -ObjectAlreadyLinkedToCategory=要素はすでにこのタグ/カテゴリにリンクされている。 +ImpossibleAddCat=タグ/カテゴリを%sに追加できない。 +WasAddedSuccessfully=%sが正常追加された。 +ObjectAlreadyLinkedToCategory=要素は既にこのタグ/カテゴリにリンクされている。 ProductIsInCategories=製品/サービスは以下のタグ/カテゴリにリンクされている CompanyIsInCustomersCategories=この取引先は、次の顧客/見込み客のタグ/カテゴリにリンクされている CompanyIsInSuppliersCategories=この取引先は、次のベンダーのタグ/カテゴリにリンクされている -MemberIsInCategories=このメンバーは、次のメンバーのタグ/カテゴリにリンクされている +MemberIsInCategories=この構成員は、次の構成員のタグ/カテゴリにリンクされている ContactIsInCategories=この連絡先は、次の連絡先タグ/カテゴリにリンクされている ProductHasNoCategory=この製品/サービスはどのタグ/カテゴリにも含まれていない CompanyHasNoCategory=この取引先はタグ/カテゴリに含まれていない -MemberHasNoCategory=このメンバーはどのタグ/カテゴリにも含まれていない +MemberHasNoCategory=この構成員はどのタグ/カテゴリにも含まれていない ContactHasNoCategory=この連絡先はどのタグ/カテゴリにもない ProjectHasNoCategory=このプロジェクトはどのタグ/カテゴリにも含まれていない ClassifyInCategory=タグ/カテゴリに追加 @@ -52,17 +52,17 @@ NoCategoriesDefined=タグ/カテゴリが定義されていない SuppliersCategoryShort=ベンダーのタグ/カテゴリ CustomersCategoryShort=顧客のタグ/カテゴリ ProductsCategoryShort=製品タグ/カテゴリ -MembersCategoryShort=メンバーのタグ/カテゴリ +MembersCategoryShort=構成員のタグ/カテゴリ SuppliersCategoriesShort=ベンダーのタグ/カテゴリ CustomersCategoriesShort=顧客のタグ/カテゴリ ProspectsCategoriesShort=見込み客のタグ/カテゴリ CustomersProspectsCategoriesShort=顧客・見込み顧客のタグ/カテゴリ ProductsCategoriesShort=製品タグ/カテゴリ -MembersCategoriesShort=メンバーのタグ/カテゴリ +MembersCategoriesShort=構成員のタグ/カテゴリ ContactCategoriesShort=連絡先タグ/カテゴリ AccountsCategoriesShort=アカウントのタグ/カテゴリ ProjectsCategoriesShort=プロジェクトのタグ/カテゴリ -UsersCategoriesShort=ユーザーのタグ/カテゴリ +UsersCategoriesShort=ユーザのタグ/カテゴリ StockCategoriesShort=倉庫のタグ/カテゴリ ThisCategoryHasNoItems=このカテゴリにはアイテムは含まれていない。 CategId=タグ/カテゴリID @@ -71,17 +71,17 @@ ParentCategoryLabel=親タグ/カテゴリのラベル CatSupList=仕入先のタグ/カテゴリのリスト CatCusList=顧客/見込み客のタグ/カテゴリのリスト CatProdList=製品タグ/カテゴリのリスト -CatMemberList=メンバーのタグ/カテゴリのリスト +CatMemberList=構成員のタグ/カテゴリのリスト CatContactList=連絡先タグ/カテゴリのリスト CatProjectsList=プロジェクトのタグ/カテゴリのリスト -CatUsersList=ユーザーのタグ/カテゴリのリスト +CatUsersList=ユーザのタグ/カテゴリのリスト CatSupLinks=仕入先とタグ/カテゴリ間のリンク CatCusLinks=顧客/見込み客とタグ/カテゴリ間のリンク CatContactsLinks=連絡先/アドレスとタグ/カテゴリ間のリンク CatProdLinks=製品/サービスとタグ/カテゴリ間のリンク -CatMembersLinks=メンバーとタグ/カテゴリ間のリンク +CatMembersLinks=構成員とタグ/カテゴリ間のリンク CatProjectsLinks=プロジェクトとタグ/カテゴリ間のリンク -CatUsersLinks=ユーザーとタグ/カテゴリ間のリンク +CatUsersLinks=ユーザとタグ/カテゴリ間のリンク DeleteFromCat=タグ/カテゴリから削除する ExtraFieldsCategories=補完的な属性 CategoriesSetup=タグ/カテゴリの設定 @@ -90,11 +90,14 @@ CategorieRecursivHelp=オプションがオンの場合、製品をサブカテ AddProductServiceIntoCategory=次の製品/サービスを追加する AddCustomerIntoCategory=顧客にカテゴリを割り当てる AddSupplierIntoCategory=カテゴリをサプライヤに割り当てる +AssignCategoryTo=カテゴリをに割り当てる ShowCategory=タグ/カテゴリを表示 ByDefaultInList=デフォルトでリストに ChooseCategory=カテゴリを選択 StocksCategoriesArea=倉庫カテゴリ +TicketsCategoriesArea=チケットカテゴリ ActionCommCategoriesArea=イベントカテゴリ WebsitePagesCategoriesArea=ページ-コンテナカテゴリ -KnowledgemanagementsCategoriesArea=KM記事カテゴリー +KnowledgemanagementsCategoriesArea=KM項目カテゴリー UseOrOperatorForCategories=カテゴリには「OR」演算子を使用する +AddObjectIntoCategory=オブジェクトをカテゴリに追加 diff --git a/htdocs/langs/ja_JP/commercial.lang b/htdocs/langs/ja_JP/commercial.lang index 9a121c41589..f5741ede8fa 100644 --- a/htdocs/langs/ja_JP/commercial.lang +++ b/htdocs/langs/ja_JP/commercial.lang @@ -34,7 +34,7 @@ LastActionsToDo=最も古い%sが未完了アクション DoneAndToDoActions=完了し、イベントを実行するには DoneActions=完了済イベント ToDoActions=未完了イベント -SendPropalRef=売買契約提案書%s の提出 +SendPropalRef=商取引提案%s の提出 SendOrderRef=注文の提出%s StatusNotApplicable=適用されない StatusActionToDo=実行する @@ -52,7 +52,7 @@ ActionAC_TEL=電話 ActionAC_FAX=FAX送信 ActionAC_PROP=メールで提案を送信 ActionAC_EMAIL=電子メールを送信 -ActionAC_EMAIL_IN=メールの受付 +ActionAC_EMAIL_IN=メールの受領 ActionAC_RDV=打ち合わせ ActionAC_INT=現場での介入 ActionAC_FAC=メールでの顧客の請求書を送信 @@ -61,7 +61,7 @@ ActionAC_CLO=閉じる ActionAC_EMAILING=大量メールを送信 ActionAC_COM=メールで販売注文を送信 ActionAC_SHIP=メールでの発送を送信 -ActionAC_SUP_ORD=メールで注文書を送信 +ActionAC_SUP_ORD=メールで購買発注を送信 ActionAC_SUP_INV=ベンダーの請求書をメールで送信 ActionAC_OTH=その他 ActionAC_OTH_AUTO=その他の自動車 @@ -71,11 +71,11 @@ ActionAC_OTH_AUTOShort=その他 ActionAC_EVENTORGANIZATION=イベント主催イベント Stats=販売統計 StatusProsp=見込の状態 -DraftPropals=売買契約提案書の下書き +DraftPropals=下書き商取引提案 NoLimit=制限なし ToOfferALinkForOnlineSignature=オンライン署名へのリンク -WelcomeOnOnlineSignaturePage=%sからの売買契約提案書sを受諾するページへようこそ -ThisScreenAllowsYouToSignDocFrom=この画面では、見積書/売買契約提案書を受諾して署名するか、拒否することができる +WelcomeOnOnlineSignaturePage=%sからの商取引提案sを受諾するページへようこそ +ThisScreenAllowsYouToSignDocFrom=この画面では、見積書/商取引提案を受諾して署名するか、拒否することができる ThisIsInformationOnDocumentToSign=これは、承認または拒否するドキュメントに関する情報。 -SignatureProposalRef=見積書/売買契約提案書%s の署名 -FeatureOnlineSignDisabled=オンライン署名の機能が無効になっているか、機能が有効になる前にドキュメントが生成されました +SignatureProposalRef=見積書/商取引提案%s の署名 +FeatureOnlineSignDisabled=オンライン署名の機能が無効になっているか、機能が有効になる前にドキュメントが生成された diff --git a/htdocs/langs/ja_JP/companies.lang b/htdocs/langs/ja_JP/companies.lang index 83257937a61..d6f1e81f0d8 100644 --- a/htdocs/langs/ja_JP/companies.lang +++ b/htdocs/langs/ja_JP/companies.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - companies -ErrorCompanyNameAlreadyExists=法人名 %s は既に存在する。別の名称を選択してください。 +ErrorCompanyNameAlreadyExists=法人名 %s は既に存在する。別の名称を選択すること。 ErrorSetACountryFirst=始めに国を設定する SelectThirdParty=取引先を選択する -ConfirmDeleteCompany=この法人とすべての関連情報を削除してもよいか? +ConfirmDeleteCompany=この法人と全関連情報を削除してもよいか? DeleteContact=連絡先/住所を削除 -ConfirmDeleteContact=この連絡先とすべての関連情報を削除してもよいか? +ConfirmDeleteContact=この連絡先と全関連情報を削除してもよいか? MenuNewThirdParty=新規取引先 MenuNewCustomer=新規顧客 MenuNewProspect=新規見込客 @@ -19,6 +19,7 @@ ProspectionArea=見込客エリア IdThirdParty=ID取引先 IdCompany=法人ID IdContact=連絡先ID +ThirdPartyAddress=取引先のアドレス ThirdPartyContacts=取引先の連絡先 ThirdPartyContact=取引先の連絡先/住所 Company=法人 @@ -51,19 +52,22 @@ CivilityCode=敬称コード RegisteredOffice=登録事務所 Lastname=姓 Firstname=姓名の名 +RefEmployee=従業員リファレンス +NationalRegistrationNumber=国民登録番号 PostOrFunction=役職 UserTitle=役職名 NatureOfThirdParty=取引先の性質 NatureOfContact=連絡の性質 Address=住所 State=州/地方 +StateId=州ID StateCode=州/地方コード StateShort=州 Region=地域 Region-State=地域 - 州 Country=国 CountryCode=国コード -CountryId=国番号 +CountryId=国ID Phone=電話 PhoneShort=電話 Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=取引先コード無効 CustomerCodeModel=顧客コードモデル SupplierCodeModel=取引先コードモデル Gencod=バーコード +GencodBuyPrice=価格参照のバーコード ##### Professional ID ##### ProfId1Short=プロフID 1 ProfId2Short=プロフID 2 @@ -157,17 +162,17 @@ ProfId3CL=- ProfId4CL=- ProfId5CL=- ProfId6CL=- -ProfId1CM=Id。プロフ 1(貿易登録) -ProfId2CM=Id。プロフ 2(納税者番号) -ProfId3CM=Id。プロフ 3(作成指令) -ProfId4CM=- -ProfId5CM=- +ProfId1CM=Id. プロフ 1(貿易登録) +ProfId2CM=Id. プロフ 2(納税者番号) +ProfId3CM=Id. プロフ3(作成命令の数) +ProfId4CM=Id. プロフ4(預託金証書番号) +ProfId5CM=Id. プロフ 5(その他) ProfId6CM=- ProfId1ShortCM=貿易登録 ProfId2ShortCM=納税者番号 -ProfId3ShortCM=作成指令 -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=作成令の数 +ProfId4ShortCM=預託金証書番号 +ProfId5ShortCM=他人 ProfId6ShortCM=- ProfId1CO=プロフID 1 (R.U.T.) ProfId2CO=- @@ -317,9 +322,9 @@ HasAbsoluteDiscountFromSupplier=この仕入先から、%s %s 相当の HasDownPaymentOrCommercialDiscountFromSupplier=この仕入先から、 %s %s 相当の割引が可能 (現金値引、頭金充当) HasCreditNoteFromSupplier=この仕入先から、%s %s相当の返金確約があり CompanyHasNoAbsoluteDiscount=この顧客は、使用可能な割引クレジットを持っていない -CustomerAbsoluteDiscountAllUsers=絶対顧客割引(すべてのユーザーで付与) +CustomerAbsoluteDiscountAllUsers=絶対顧客割引(全ユーザで付与) CustomerAbsoluteDiscountMy=絶対顧客割引(自身で付与) -SupplierAbsoluteDiscountAllUsers=絶対仕入先割引(すべてのユーザーで入力) +SupplierAbsoluteDiscountAllUsers=絶対仕入先割引(全ユーザで入力) SupplierAbsoluteDiscountMy=絶対仕入先割引(自分で入力) DiscountNone=なし Vendor=仕入先 @@ -352,14 +357,14 @@ RequiredIfSupplier=取引先が仕入先である場合は必須 ValidityControledByModule=モジュールによって制御される有効性 ThisIsModuleRules=このモジュールのルールs ProspectToContact=連絡する見込客 -CompanyDeleted=法人 "%s" はデータベースから削除されました。 +CompanyDeleted=法人 "%s" はデータベースから削除された。 ListOfContacts=連絡先/住所の一覧 ListOfContactsAddresses=連絡先/住所の一覧 ListOfThirdParties=取引先一覧 ShowCompany=取引先 ShowContact=連絡先-住所 ContactsAllShort=すべて(フィルタなし) -ContactType=連絡先種別 +ContactType=連絡先の役割 ContactForOrders=注文の連絡先 ContactForOrdersOrShipments=注文または配送の連絡先 ContactForProposals=提案の連絡先 @@ -367,7 +372,7 @@ ContactForContracts=契約の連絡先 ContactForInvoices=請求の連絡先 NoContactForAnyOrder=この連絡先はどの注文にも非対応 NoContactForAnyOrderOrShipments=この連絡先はどの注文、どの配送にも非対応 -NoContactForAnyProposal=この連絡先は、どの商業提案のにも非対応 +NoContactForAnyProposal=この連絡先は、どの商取引提案にも非対応 NoContactForAnyContract=この連絡先は、どの契約とも非対応 NoContactForAnyInvoice=この連絡先は、どの請求とも非対応 NewContact=新規 連絡先 @@ -376,13 +381,13 @@ MyContacts=自分の連絡先 Capital=資本 CapitalOf=%sの首都 EditCompany=会社を編集する。 -ThisUserIsNot=このユーザーは見込客・顧客・仕入先のいずれにも該当しません +ThisUserIsNot=このユーザは見込客・顧客・仕入先のいずれにも該当しない VATIntraCheck=チェック VATIntraCheckDesc=VAT IDには、国のプレフィックスを含めることが必要。リンク%s は、欧州VATチェッカーサービス(VIES)を使用し、そのためにはDolibarrサーバーからのインターネットアクセスが必要。 VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=欧州委員会のウェブサイトでコミュニティ間のVAT IDを確認 VATIntraManualCheck=欧州委員会のウェブサイト%sで手動で確認することもできる -ErrorVATCheckMS_UNAVAILABLE=ことはできませんを確認してください。サービスは加盟国(%s)によって提供されていない確認してください。 +ErrorVATCheckMS_UNAVAILABLE=可能ではないを確認。サービスは加盟国(%s)によって提供されていないを確認。 NorProspectNorCustomer=見込客でない、顧客でない JuridicalStatus=事業体種別 Workforce=従業員数 @@ -420,7 +425,7 @@ ChangeNeverContacted=状態を '連絡未済' に変更 ChangeToContact=状態を '要連絡' に変更 ChangeContactInProcess=状態を '連絡中' に変更 ChangeContactDone=状態を '連絡済' に変更 -ProspectsByStatus=ステータス別の見通し +ProspectsByStatus=状態別の見通し NoParentCompany=なし ExportCardToFormat=形式にカードをエクスポートする ContactNotLinkedToCompany=どの取引先にも該当しない連絡先 @@ -472,20 +477,20 @@ LeopardNumRefModelDesc=顧客/サプライヤーコードは無料。このコ ManagingDirectors=管理職名称 (CEO, 部長, 社長...) MergeOriginThirdparty=重複する取引先 (削除したい取引先) MergeThirdparties=取引先を統合 -ConfirmMergeThirdparties=選択した取引先を現在の取引先とマージしてもよいか?リンクされたすべてのオブジェクト (請求書、注文など) は現在の取引先に移動され、その後、選択された取引先が削除される。 -ThirdpartiesMergeSuccess=取引先は統合されました +ConfirmMergeThirdparties=選択した取引先を現在の取引先とマージしてもよいか?リンクされた全オブジェクト (請求書、注文など) は現在の取引先に移動され、その後、選択された取引先が削除される。 +ThirdpartiesMergeSuccess=取引先は統合された SaleRepresentativeLogin=販売担当者のログイン SaleRepresentativeFirstname=販売担当者の姓名の名 SaleRepresentativeLastname=販売担当者の姓 -ErrorThirdpartiesMerge=取引先の削除でエラーが発生しました。ログを確認して下さい。変更は元に戻されました。 +ErrorThirdpartiesMerge=取引先の削除でエラーが発生しました。ログを確認して下さい。変更は元に戻された。 NewCustomerSupplierCodeProposed=顧客コードまたは仕入先のコードが既に使用されており、新しいコードが提案されている。 KeepEmptyIfGenericAddress=もし代表住所でよければ、ここは空欄にしておく #Imports -PaymentTypeCustomer=支払い方式 - 顧客 -PaymentTermsCustomer=支払い期限 - 顧客 -PaymentTypeSupplier=支払い方式 - 仕入先 -PaymentTermsSupplier=支払い期限 - 仕入先 -PaymentTypeBoth=支払い方式 - 顧客と仕入先 +PaymentTypeCustomer=支払方式 - 顧客 +PaymentTermsCustomer=支払期限 - 顧客 +PaymentTypeSupplier=支払方式 - 仕入先 +PaymentTermsSupplier=支払期限 - 仕入先 +PaymentTypeBoth=支払方式 - 顧客と仕入先 MulticurrencyUsed=多通貨利用をする MulticurrencyCurrency=通貨 InEEC=欧州 (EEC) diff --git a/htdocs/langs/ja_JP/compta.lang b/htdocs/langs/ja_JP/compta.lang index 25691b11d55..6360919891e 100644 --- a/htdocs/langs/ja_JP/compta.lang +++ b/htdocs/langs/ja_JP/compta.lang @@ -6,7 +6,7 @@ OptionMode=会計のためのオプション OptionModeTrue=オプション 収益・費用 OptionModeVirtual=オプション 債権・債務 OptionModeTrueDesc=この文脈では、売上高は、支払(支払日)に渡って計算される。この数値の妥当性は、簿記の記帳が請求書を経由して勘定科目に 入/出 していると精査されている場合にのみ保証される。 -OptionModeVirtualDesc=この文脈では、売上高は、請求書(検証日)に渡って計算される。これらの請求書が期日になると、支払いが済んでいるかどうかに関わらず、売上高の出力に記載される。 +OptionModeVirtualDesc=この文脈では、売上高は、請求書(検証日)に渡って計算される。これらの請求書が期日になると、支払が済んでいるかどうかに関わらず、売上高の出力に記載される。 FeatureIsSupportedInInOutModeOnly=​​債権・債務の会計モードでのみ使用可能な機能(会計モジュール設定を参照すること) VATReportBuildWithOptionDefinedInModule=ここに示されている金額は税モジュール設定によって定義されたルールを使用して計算される。 LTReportBuildWithOptionDefinedInModule=ここに表示されている金額は、法人の設定で定義されたルールを使用して計算されている。 @@ -22,7 +22,7 @@ ReportInOut=収支差額 ReportTurnover=請求済売上高 ReportTurnoverCollected=回収済売上高 PaymentsNotLinkedToInvoice=任意の請求書にリンクされていない支払は、その第三者にリンクされていない -PaymentsNotLinkedToUser=すべてのユーザーにリンクされていない支払 +PaymentsNotLinkedToUser=全ユーザにリンクされていない支払 Profit=利益 AccountingResult=会計結果 BalanceBefore=残高(前) @@ -32,7 +32,7 @@ Credit=貸方 Piece=会計ドキュメント AmountHTVATRealReceived=純回収額 AmountHTVATRealPaid=純支払額 -VATToPay=税の売上高 +VATToPay=税販売 VATReceived=受け取った税金 VATToCollect=税金の購入 VATSummary=毎月の税金 @@ -64,8 +64,8 @@ LT2CustomerIN=SGST販売 LT2SupplierIN=SGSTの購入 VATCollected=付加価値税回収した StatusToPay=支払に -SpecialExpensesArea=すべての特別支払のエリア -VATExpensesArea=すべてのTVA支払いの領域 +SpecialExpensesArea=全特別支払のエリア +VATExpensesArea=全TVA支払の領域 SocialContribution=社会税または財政税 SocialContributions=社会税または財政税 SocialContributionsDeductibles=控除可能な社会税または財政税 @@ -86,7 +86,7 @@ PaymentCustomerInvoice=顧客の請求書支払 PaymentSupplierInvoice=ベンダーの請求書支払 PaymentSocialContribution=社会/財政税支払 PaymentVat=付加価値税支払 -AutomaticCreationPayment=支払いを自動的に記録する +AutomaticCreationPayment=支払を自動的に記録する ListPayment=支払のリスト ListOfCustomerPayments=顧客支払のリスト ListOfSupplierPayments=ベンダー支払のリスト @@ -128,12 +128,12 @@ SalesTurnoverMinimum=最小売上高 ByExpenseIncome=費用と収入別 ByThirdParties=富栄第三者 ByUserAuthorOfInvoice=請求書著者 -CheckReceipt=入金を確認すること -CheckReceiptShort=入金を確認すること +CheckReceipt=小切手入金 +CheckReceiptShort=小切手入金 LastCheckReceiptShort=最新の%s小切手領収書 NewCheckReceipt=新規割引 -NewCheckDeposit=新規チェック預金 -NewCheckDepositOn=%s:科目上で預金の領収書を作成する +NewCheckDeposit=新規小切手入金 +NewCheckDepositOn=科目%s:で入金の領収書を作成する NoWaitingChecks=入金待ちの小切手はない。 DateChequeReceived=受領日を確認する NbOfCheques=小切手の数 @@ -146,15 +146,17 @@ ConfirmPaySalary=この給与カードを支払済として分類してもよい DeleteSocialContribution=社会税または財政税支払を削除する DeleteVAT=VAT宣言を削除する DeleteSalary=給与カードを削除する +DeleteVariousPayment=諸口を削除する ConfirmDeleteSocialContribution=この社会的/財政的納税を削除してもよいか? ConfirmDeleteVAT=このVAT申告を削除してもよいか? ConfirmDeleteSalary=この給与を削除してもよいか? +ConfirmDeleteVariousPayment=この諸口を削除してもよいか? ExportDataset_tax_1=社会的および財政的な税金と支払 -CalcModeVATDebt=コミットメントアカウンティングのモード%sVAT%s。 +CalcModeVATDebt=モード%s確定会計上のVAT%s。 CalcModeVATEngagement=収入のモード%sVAT-expenses%s。 CalcModeDebt=元帳未計上によらず、既知の記録済文書の分析。 CalcModeEngagement=元帳にまだ計上されていない場合でも、既知の記録された支払の分析。 -CalcModeBookkeeping=簿記元帳テーブルにジャーナル化されたデータの分析。 +CalcModeBookkeeping=簿記元帳テーブルに仕訳されたデータの分析。 CalcModeLT1= 顧客の請求書のモード%sRE-サプライヤーの請求書s%s CalcModeLT1Debt=顧客の請求書のモード%sREs%s CalcModeLT1Rec= サプライヤ請求書のモード%sREs%s @@ -169,17 +171,17 @@ AnnualByCompaniesInputOutputMode=収支差額、事前定義されたグルー SeeReportInInputOutputMode=元帳未計上によらず、 %s支払の分析%s を参照すること。その対象は 記録済支払 に基づく計算。 SeeReportInDueDebtMode=元帳未計上によらず、 %s記録済文書sの分析%s を参照すること。その対象は、既知の 記録済文書s に基づく計算。 SeeReportInBookkeepingMode=%s簿記元帳テーブルの分析%s を参照すること。その対象は、 簿記元帳テーブル基づく報告書。 -RulesAmountWithTaxIncluded=-表示されている金額はすべての税金が含まれている +RulesAmountWithTaxIncluded=-表示されている金額は全税金が含まれている RulesAmountWithTaxExcluded=-表示されている請求書の金額は、すべて税抜き -RulesResultDue=-支払済かどうかにかかわらず、すべての請求書、経費、VAT、寄付、給与が含まれる。
    -請求書の請求日と、費用または納税の期限日に基づいている。給与については、期末日を使用する。 -RulesResultInOut=-これには、請求書、経費、VAT、および給与に対して行われた実際の支払いが含まれる。
    -請求書、経費、VAT、寄付、給与の支払い日に基づいている。 +RulesResultDue=-支払済かどうかにかかわらず、全請求書、経費、VAT、寄付、給与が含まれる。
    -請求書の請求日と、費用または納税の期限日に基づいている。給与については、期末日を使用する。 +RulesResultInOut=-これには、請求書、経費、VAT、および給与に対して行われた実際の支払が含まれる。
    -請求書、経費、VAT、寄付、給与の支払日に基づいている。 RulesCADue=-支払の有無にかかわらず、顧客の期日請求書が含まれる。
    -これらの請求書の請求日に基づいている。
    -RulesCAIn=-これには、顧客から受け取った請求書のすべての有効な支払が含まれる。
    -これらの請求書支払日に基づいている
    -RulesCATotalSaleJournal=これには、販売仕訳帳のすべての貸方行が含まれる。 +RulesCAIn=-これには、顧客から受け取った請求書の全有効な支払が含まれる。
    -これらの請求書支払日に基づいている
    +RulesCATotalSaleJournal=これには、販売仕訳帳の全貸方行が含まれる。 RulesSalesTurnoverOfIncomeAccounts=それには、グループINCOMEでの製品勘定の (貸方-借方) 行が含まれる。 -RulesAmountOnInOutBookkeepingRecord=これには、グループ「EXPENSE」または「INCOME」を持つ会計勘定を持つ元帳のレコードが含まれる -RulesResultBookkeepingPredefined=これには、グループ「EXPENSE」または「INCOME」を持つ会計勘定を持つ元帳のレコードが含まれる -RulesResultBookkeepingPersonalized=パーソナライズされたグループ
    によってグループ化された会計アカウントを使用して元帳にレコードが表示される +RulesAmountOnInOutBookkeepingRecord=これには、グループ「EXPENSE」または「INCOME」を持つ勘定科目を持つ元帳のレコードが含まれる +RulesResultBookkeepingPredefined=これには、グループ「EXPENSE」または「INCOME」を持つ勘定科目を持つ元帳のレコードが含まれる +RulesResultBookkeepingPersonalized=パーソナライズされたグループによってグループ化された勘定科目を使用して元帳にレコードが表示される SeePageForSetup=設定については、メニュー %sを参照すること。 DepositsAreNotIncluded=-頭金の請求書は含まれていない DepositsAreIncluded=-頭金の請求書が含まれている @@ -204,8 +206,8 @@ LT1ReportByQuartersES=RE率による報告書 LT2ReportByQuartersES=IRPF率による報告書 SeeVATReportInInputOutputMode=標準的な計算については、報告書 %sVATcollection%sを参照すること。 SeeVATReportInDueDebtMode=請求に関するオプションを使用した計算については、debit%sの報告書%sVATを参照すること。 -RulesVATInServices=-サービスの場合、報告書には、支払い日に基づいて実際に受領または支払われた支払いのVATが含まれる。 -RulesVATInProducts=-重要な資産の場合、報告書には支払い日に基づくVATが含まれる。 +RulesVATInServices=-サービスの場合、報告書には、支払日に基づいて実際に受領または支払われた支払のVATが含まれる。 +RulesVATInProducts=-重要な資産の場合、報告書には支払日に基づくVATが含まれる。 RulesVATDueServices=-サービスの場合、報告書には、請求書の日付に基づいた、支払済みかどうかに関係なく、期日が到来した請求書のVATが含まれる。 RulesVATDueProducts=-重要な資産の場合、報告書には、請求日に基づいた期日請求書のVATが含まれる。 OptionVatInfoModuleComptabilite=注:材料の資産については、それがより公正に配信した日付を使用する必要がある。 @@ -219,9 +221,9 @@ Dispatch=ディスパッチ Dispatched=に送出される ToDispatch=ディスパッチへ ThirdPartyMustBeEditAsCustomer=第三者が顧客として定義する必要がある。 -SellsJournal=セールス仕訳帳 +SellsJournal=売上仕訳帳 PurchasesJournal=購入仕訳帳 -DescSellsJournal=セールス仕訳帳 +DescSellsJournal=売上仕訳帳 DescPurchasesJournal=購入仕訳帳 CodeNotDef=定義されていない WarningDepositsNotIncluded=頭金請求書は、この会計モジュールのこのバージョンには含まれていない。 @@ -236,19 +238,19 @@ ToCreateAPredefinedInvoice=テンプレート請求書を作成するには、 LinkedOrder=注文へのリンク Mode1=方法1 Mode2=方法2 -CalculationRuleDesc=合計VATを計算するには、次の2つの方法がある。
    方法1は、各行のバットを丸めてから合計。
    方法2は、各行のすべてのバットを合計してから、結果を丸める。
    最終結果は数円異なる場合がある。デフォルトのモードは %s モード。 +CalculationRuleDesc=合計VATを計算するには、次の2つの方法がある。
    方法1は、各行のバットを丸めてから合計。
    方法2は、各行の全バットを合計してから、結果を丸める。
    最終結果は数円異なる場合がある。デフォルトのモードは %s モード。 CalculationRuleDescSupplier=ベンダーによると、適切な方法を選択して同じ計算ルールを適用し、ベンダーが期待する同じ結果を取得する。 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_ACCOUNT_CUSTOMER_Desc=取引先カードで定義された専用の会計アカウントは、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、取引先の専用顧客会計勘定が定義されていない場合は補助元帳会計のデフォルト値として使用される。 -ACCOUNTING_ACCOUNT_SUPPLIER=ベンダーの取引先に使用される会計アカウント -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=取引先カードで定義された専用の会計アカウントは、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、取引先の専用仕入先会計勘定が定義されていない場合は補助元帳会計のデフォルト値として使用される。 +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_Desc=取引先カードで定義された専用の勘定科目は、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、取引先の専用仕入先勘定科目が定義されていない場合は補助元帳会計のデフォルト値として使用される。 ConfirmCloneTax=社会税/財政税のクローンを確定する ConfirmCloneVAT=VAT宣言のクローンを確定する ConfirmCloneSalary=給与のクローンを確定する @@ -265,13 +267,13 @@ ImportDataset_tax_vat=付加価値税支払 ErrorBankAccountNotFound=エラー:銀行口座が見つからない FiscalPeriod=会計期間 ListSocialContributionAssociatedProject=プロジェクトに関連する社会貢献のリスト -DeleteFromCat=アカウンティンググループから削除する +DeleteFromCat=会計グループから削除する AccountingAffectation=会計の割り当て LastDayTaxIsRelatedTo=期間の最終日税は関連している -VATDue=消費税が請求されました +VATDue=消費税が請求された ClaimedForThisPeriod=期間中請求 PaidDuringThisPeriod=この期間に支払われた -PaidDuringThisPeriodDesc=これは、選択した日付範囲内の期末日を持つVAT申告にリンクされたすべての支払いの合計。 +PaidDuringThisPeriodDesc=これは、選択した日付範囲内の期末日を持つVAT申告にリンクされた全支払の合計。 ByVatRate=売却税率 TurnoverbyVatrate=消費税率別請求高 TurnoverCollectedbyVatrate=消費税率別回収高 @@ -280,16 +282,16 @@ LabelToShow=短縮ラベル PurchaseTurnover=購入売上高 PurchaseTurnoverCollected=回収済購入取引高 RulesPurchaseTurnoverDue=-支払の有無にかかわらず、サプライヤーの期日請求書が含まれる。
    -これらの請求書の請求日に基づいている。
    -RulesPurchaseTurnoverIn=-これには、サプライヤーに対して行われた請求書のすべての有効な支払が含まれる。
    -これらの請求書支払日に基づいている
    -RulesPurchaseTurnoverTotalPurchaseJournal=これには、購入仕訳帳からのすべての借方明細が含まれる。 +RulesPurchaseTurnoverIn=-これには、サプライヤーに対して行われた請求書の全有効な支払が含まれる。
    -これらの請求書支払日に基づいている
    +RulesPurchaseTurnoverTotalPurchaseJournal=これには、購入仕訳帳からの全借方明細が含まれる。 RulesPurchaseTurnoverOfExpenseAccounts=それには、グループEXPENSEでの製品勘定の (借方-貸方) 行が含まれる。 ReportPurchaseTurnover=請求済購入取引高 ReportPurchaseTurnoverCollected=回収済購入取引高 IncludeVarpaysInResults = 報告書sにさまざまな支払を含める IncludeLoansInResults = 報告書sにローンを含める -InvoiceLate30Days = 請求書遅延(> 30日) -InvoiceLate15Days = 請求書遅延(15〜30日) -InvoiceLateMinus15Days = 請求書遅延(<15日) +InvoiceLate30Days = 遅延(> 30日) +InvoiceLate15Days = 遅延(15〜30日) +InvoiceLateMinus15Days = 遅延(<15日) InvoiceNotLate = 収集予定(<15日) InvoiceNotLate15Days = 回収予定(15〜30日) InvoiceNotLate30Days = 収集予定(> 30日) diff --git a/htdocs/langs/ja_JP/contracts.lang b/htdocs/langs/ja_JP/contracts.lang index 6d69bd57da5..bb610dfdd08 100644 --- a/htdocs/langs/ja_JP/contracts.lang +++ b/htdocs/langs/ja_JP/contracts.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - contracts ContractsArea=契約エリア ListOfContracts=契約リスト -AllContracts=すべての契約 +AllContracts=全契約 ContractCard=契約カード ContractStatusNotRunning=非実行中 ContractStatusDraft=下書き -ContractStatusValidated=検証 +ContractStatusValidated=検証済 ContractStatusClosed=閉じた ServiceStatusInitial=非実行中 ServiceStatusRunning=実行中 @@ -20,6 +20,7 @@ ContractsSubscriptions=契約/サブスクリプション ContractsAndLine=契約と契約行 Contract=契約 ContractLine=契約行 +ContractLines=契約ライン Closing=閉鎖 NoContracts=無契約 MenuServices=サービス @@ -31,16 +32,16 @@ NewContract=新規契約 NewContractSubscription=新規契約またはサブスクリプション AddContract=契約を作成する DeleteAContract=契約を削除する -ActivateAllOnContract=すべてのサービスをアクティブ化する +ActivateAllOnContract=全サービスを有効化する CloseAContract=契約を閉じる -ConfirmDeleteAContract=こ契約とそのすべてのサービスを削除してもよいか? +ConfirmDeleteAContract=こ契約とその全サービスを削除してもよいか? ConfirmValidateContract=こ契約を%s という名前で検証してもよいか? -ConfirmActivateAllOnContract=これにより、すべてのサービスが開く(まだアクティブではない)。すべてのサービスを開始してもよいか? -ConfirmCloseContract=これにより、すべてのサービスが閉じられる(期限に無関係)。この契約を終了してもよいか? +ConfirmActivateAllOnContract=これにより、全サービスが開く(まだアクティブではない)。全サービスを開始してもよいか? +ConfirmCloseContract=これにより、全サービスが閉じられる(期限に無関係)。この契約を終了してもよいか? ConfirmCloseService=日付%s でこのサービスを終了してもよいか? ValidateAContract=契約を検証 -ActivateService=サービスをアクティブ化 -ConfirmActivateService=日付%s でこのサービスをアクティブ化してもよいか? +ActivateService=サービスを有効化 +ConfirmActivateService=日付%s でこのサービスを有効化してもよいか? RefContract=契約リファレンス DateContract=契約日 DateServiceActivate=サービスのアクティブ化の日付 @@ -50,7 +51,7 @@ ListOfExpiredServices=失効済アクティブサービスリスト ListOfClosedServices=クローズドサービスリスト ListOfRunningServices=実行中サービスリスト NotActivatedServices=非アクティブなサービス(検証済契約の中で) -BoardNotActivatedServices=検証済契約の中でアクティブにするサービス +BoardNotActivatedServices=検証済契約の中で有効化するサービス BoardNotActivatedServicesShort=アクティベートするサービス LastContracts=最新の%s契約 LastModifiedServices=最新の%s変更されたサービス @@ -69,10 +70,10 @@ BoardRunningServices=実行中サービス BoardRunningServicesShort=実行中サービス BoardExpiredServices=失効済サービス BoardExpiredServicesShort=失効済サービス -ServiceStatus=サービスのステータス +ServiceStatus=サービスの状態 DraftContracts=下書き契約 CloseRefusedBecauseOneServiceActive=少なくとも1つのオープンサービスがあるため、契約を閉じることはできない -ActivateAllContracts=すべて契約行をアクティブ化する +ActivateAllContracts=すべて契約行を有効化する CloseAllContracts=すべて契約行を閉じる DeleteContractLine=契約の行を削除する ConfirmDeleteContractLine=こ契約行を削除してもよいか? @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=署名契約の顧客の連絡先 HideClosedServiceByDefault=デフォルトで閉じたサービスを非表示 ShowClosedServices=クローズドサービスを表示 HideClosedServices=クローズドサービスを非表示 +UserStartingService=ユーザ開始サービス +UserClosingService=ユーザクロージングサービス diff --git a/htdocs/langs/ja_JP/cron.lang b/htdocs/langs/ja_JP/cron.lang index f6215bfde2a..4c7815d373a 100644 --- a/htdocs/langs/ja_JP/cron.lang +++ b/htdocs/langs/ja_JP/cron.lang @@ -15,7 +15,7 @@ CronExplainHowToRunUnix=Unix環境では、次のcrontabエントリを使用し CronExplainHowToRunWin=Microsoft(tm)Windows環境では、スケジュールされたタスクツールを使用して、5分ごとにコマンドラインを実行できる。 CronMethodDoesNotExists=クラス%sには、メソッド%sが含まれていない。 CronMethodNotAllowed=クラス%sのメソッド%sは、禁止されているメソッドのブラックリストに含まれている -CronJobDefDesc=cronジョブプロファイルは、モジュール記述子ファイルに定義されている。モジュールがアクティブ化されると、それらがロードされて使用可能になるため、管理ツールメニュー%sからジョブを管理できる。 +CronJobDefDesc=cronジョブプロファイルは、モジュール記述子ファイルに定義されている。モジュールが有効化されると、それらがロードされて使用可能になるため、管理ツールメニュー%sからジョブを管理できる。 CronJobProfiles=事前定義されたcronジョブプロファイルのリスト # Menu EnabledAndDisabled=有効および無効 @@ -57,7 +57,7 @@ CronSaveSucess=保存成功 CronNote=コメント CronFieldMandatory=フィールド%sは必須 CronErrEndDateStartDt=終了日を開始日より前にすることはできない -StatusAtInstall=モジュールインストール時のステータス +StatusAtInstall=モジュールインストール時の状態 CronStatusActiveBtn=スケジュール CronStatusInactiveBtn=無効にする CronTaskInactive=このジョブは無効になっている(スケジュールされていない) @@ -82,6 +82,8 @@ UseMenuModuleToolsToAddCronJobs=メニュー ”ホーム - 管理 JobDisabled=ジョブが無効 MakeLocalDatabaseDumpShort=ローカルデータベースのバックアップ MakeLocalDatabaseDump=ローカルデータベースダンプを作成する。パラメータは次のもの: 圧縮 ('gz' or 'bz' or 'none')、バックアップ種別 ('mysql', 'pgsql', 'auto')、1、 'auto' またはビルドするファイル名、保持するバックアップファイルの数 +MakeSendLocalDatabaseDumpShort=ローカルデータベースのバックアップを送信する +MakeSendLocalDatabaseDump=ローカルデータベースのバックアップを電子メールで送信する。パラメータは次のとおり 。to、from、subject、message、filename(送信されたファイルの名前)、filter(データベースのバックアップのみの「sql」) WarningCronDelayed=注意、パフォーマンスの目的で、有効なジョブの次の実行日が何であれ、ジョブは実行される前に最大%s時間まで遅延する可能性がある。 DATAPOLICYJob=データクリーナとアノニマイザ JobXMustBeEnabled=ジョブ%sを有効にする必要がある diff --git a/htdocs/langs/ja_JP/deliveries.lang b/htdocs/langs/ja_JP/deliveries.lang index 0a6356e386b..14952f550e6 100644 --- a/htdocs/langs/ja_JP/deliveries.lang +++ b/htdocs/langs/ja_JP/deliveries.lang @@ -7,15 +7,15 @@ DeliveryDate=配送日 CreateDeliveryOrder=配送領収書を生成する DeliveryStateSaved=保存された配送状態 SetDeliveryDate=出荷の日付を設定する -ValidateDeliveryReceipt=配送の領収書を検証する +ValidateDeliveryReceipt=配送の領収書を検証 ValidateDeliveryReceiptConfirm=この配送領収書を検証してもよいか? DeleteDeliveryReceipt=配送済メッセージを削除する DeleteDeliveryReceiptConfirm=領収書%s を削除してもよいか? DeliveryMethod=配送方法 TrackingNumber=追跡番号 -DeliveryNotValidated=配送検証されない +DeliveryNotValidated=配送は未検証済 StatusDeliveryCanceled=キャンセル -StatusDeliveryDraft=ドラフト +StatusDeliveryDraft=下書き StatusDeliveryValidated=受領された # merou PDF model NameAndSignature=名前と署名: @@ -27,7 +27,7 @@ Recipient=受領者 ErrorStockIsNotEnough=在庫が不十分 Shippable=発送可能 NonShippable=発送不可 -ShowShippableStatus=出荷可能なステータスを表示する +ShowShippableStatus=出荷可能な状態を表示する ShowReceiving=配送領収書を表示する NonExistentOrder=存在しない注文 -StockQuantitiesAlreadyAllocatedOnPreviousLines = 前の行にすでに割り当てられている在庫数量 +StockQuantitiesAlreadyAllocatedOnPreviousLines = 前の行に既に割り当てられている在庫数量 diff --git a/htdocs/langs/ja_JP/dict.lang b/htdocs/langs/ja_JP/dict.lang index b939355d57d..5fe30a20a17 100644 --- a/htdocs/langs/ja_JP/dict.lang +++ b/htdocs/langs/ja_JP/dict.lang @@ -301,7 +301,7 @@ DemandReasonTypeSRC_CAMP_MAIL=メーリングキャンペーン DemandReasonTypeSRC_CAMP_EMAIL=キャンペーンをメールで送信 DemandReasonTypeSRC_CAMP_PHO=電話のキャンペーン DemandReasonTypeSRC_CAMP_FAX=ファックスキャンペーン -DemandReasonTypeSRC_COMM=商業的接触 +DemandReasonTypeSRC_COMM=商取引接触 DemandReasonTypeSRC_SHOP=店の連絡先 DemandReasonTypeSRC_WOM=口頭 DemandReasonTypeSRC_PARTNER=パートナー diff --git a/htdocs/langs/ja_JP/donations.lang b/htdocs/langs/ja_JP/donations.lang index 8a678143108..4e59c386a7b 100644 --- a/htdocs/langs/ja_JP/donations.lang +++ b/htdocs/langs/ja_JP/donations.lang @@ -9,27 +9,27 @@ DeleteADonation=寄付を削除する ConfirmDeleteADonation=この寄付を削除してもよいか? PublicDonation=義援金 DonationsArea=寄付のエリア -DonationStatusPromiseNotValidated=下書きの約束 -DonationStatusPromiseValidated=検証約束 +DonationStatusPromiseNotValidated=下書き約定 +DonationStatusPromiseValidated=検証済約定 DonationStatusPaid=寄付は、受信した DonationStatusPromiseNotValidatedShort=下書き -DonationStatusPromiseValidatedShort=検証 +DonationStatusPromiseValidatedShort=検証済 DonationStatusPaidShort=受信された DonationTitle=寄付の領収書 DonationDate=寄付日 DonationDatePayment=支払期日 -ValidPromess=約束を検証する +ValidPromess=約定を検証 DonationReceipt=寄付の領収書 DonationsModels=寄付金の領収書のドキュメントモデル LastModifiedDonations=最新の%s変更された寄付 DonationRecipient=寄付先 -IConfirmDonationReception=受取人は、寄付として以下の金額の受領を宣言する +IConfirmDonationReception=受取人は、寄付として以下の金額の領収を宣言する MinimumAmount=最小額は%s FreeTextOnDonations=フッターに表示するフリーテキスト FrenchOptions=フランスのオプション -DONATION_ART200=懸念がある場合は、CGIの記事200を表示すること -DONATION_ART238=懸念がある場合は、CGIの記事238を表示すること -DONATION_ART885=懸念がある場合は、CGIの記事885を表示すること +DONATION_ART200=懸念がある場合は、CGIの項目200を表示すること +DONATION_ART238=懸念がある場合は、CGIの項目238を表示すること +DONATION_ART885=懸念がある場合は、CGIの項目885を表示すること DonationPayment=寄付金の支払 -DonationValidated=寄付%sが検証された +DonationValidated=寄付%sは検証済 DonationUseThirdparties=寄付者の調整として既存の取引先を使用する diff --git a/htdocs/langs/ja_JP/ecm.lang b/htdocs/langs/ja_JP/ecm.lang index 4452d1ba6f1..b4b9231bc99 100644 --- a/htdocs/langs/ja_JP/ecm.lang +++ b/htdocs/langs/ja_JP/ecm.lang @@ -41,9 +41,9 @@ FileNotYetIndexedInDatabase=ファイルはまだデータベースにインデ ExtraFieldsEcmFiles=ExtrafieldsEcmファイル ExtraFieldsEcmDirectories=ExtrafieldsEcmディレクトリ ECMSetup=ECM設定 -GenerateImgWebp=すべての画像を.webp形式の別のバージョンで複製する -ConfirmGenerateImgWebp=確定すると、現在このフォルダーにあるすべての画像に対して.webp形式の画像が生成される(サブフォルダーは含まれない)... -ConfirmImgWebpCreation=すべての画像の重複を確定する +GenerateImgWebp=全画像を.webp形式の別のバージョンで複製する +ConfirmGenerateImgWebp=確定すると、現在このフォルダーにある全画像に対して.webp形式の画像が生成される(サブフォルダーは含まれない)... +ConfirmImgWebpCreation=全画像の重複を確定する SucessConvertImgWebp=画像が正常に複製された ECMDirName=ディレクトリ名 ECMParentDirectory=親ディレクトリ diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang index 221d7673ead..551b2872ad8 100644 --- a/htdocs/langs/ja_JP/errors.lang +++ b/htdocs/langs/ja_JP/errors.lang @@ -3,15 +3,16 @@ # No errors NoErrorCommitIsDone=エラーなし、コミットする # Errors -ErrorButCommitIsDone=エラーが見つかったが、これにもかかわらず検証する +ErrorButCommitIsDone=エラーが見つかったが、それでも検証 ErrorBadEMail=メール%sが正しくない ErrorBadMXDomain=メール%sが正しくないよう (ドメインに有効なMXレコードがない) ErrorBadUrl=URL%sが正しくない ErrorBadValueForParamNotAString=パラメータ の値が正しくない。通常、翻訳が欠落している場合に追加される。 -ErrorRefAlreadyExists=参照%sはすでに存在する。 -ErrorLoginAlreadyExists=ログイン%sはすでに存在している。 -ErrorGroupAlreadyExists=グループ%sはすでに存在している。 -ErrorEmailAlreadyExists=メール%sはすでに存在する。 +ErrorRefAlreadyExists=参照%sは既に存在する。 +ErrorTitleAlreadyExists=タイトル%sは既に存在する。 +ErrorLoginAlreadyExists=ログイン%sは既に存在している。 +ErrorGroupAlreadyExists=グループ%sは既に存在している。 +ErrorEmailAlreadyExists=メール%sは既に存在する。 ErrorRecordNotFound=レコードが見つからなかった。 ErrorFailToCopyFile="%s"にファイル"%s"をコピーに失敗した。 ErrorFailToCopyDir=ディレクトリ ' %s'を ' %s'にコピーできなかった。 @@ -31,15 +32,15 @@ ForbiddenBySetupRules=設定ルールにより禁止 ErrorProdIdIsMandatory=%sは必須だ ErrorAccountancyCodeCustomerIsMandatory=顧客%sの会計コードは必須 ErrorBadCustomerCodeSyntax=顧客コードの不正な構文 -ErrorBadBarCodeSyntax=バーコードの構文が正しくない。不正なバーコードタイプを設定したか、スキャンした値と一致しない番号付け用のバーコードマスクを定義した可能性がある。 +ErrorBadBarCodeSyntax=バーコードの構文が正しくない。不正なバーコードタイプを設定したか、スキャンした値と一致しない採番用のバーコードマスクを定義した可能性がある。 ErrorCustomerCodeRequired=顧客コードが必要だ ErrorBarCodeRequired=バーコードが必要だ ErrorCustomerCodeAlreadyUsed=顧客コードは既に使用され -ErrorBarCodeAlreadyUsed=すでに使用されているバーコード +ErrorBarCodeAlreadyUsed=既に使用されているバーコード ErrorPrefixRequired=接頭辞が必要 ErrorBadSupplierCodeSyntax=ベンダーコードの構文が正しくない ErrorSupplierCodeRequired=ベンダーコードが必要だ -ErrorSupplierCodeAlreadyUsed=すでに使用されているベンダーコード +ErrorSupplierCodeAlreadyUsed=既に使用されているベンダーコード ErrorBadParameters=パラメータ が不正で ErrorWrongParameters=パラメータ が間違っているか欠落している ErrorBadValueForParameter=パラメータ "%s" の値 "%s" が間違っている @@ -48,25 +49,25 @@ ErrorBadDateFormat=値 '%s'に間違った日付の形式になっている ErrorWrongDate=日付が正しくない! ErrorFailedToWriteInDir=ディレクトリ%sの書き込みに失敗した ErrorFoundBadEmailInFile=ファイル内の%s線の発見誤った電子メールのシンタックス(電子メール= %sを使用したサンプルライン%s) -ErrorUserCannotBeDelete=ユーザーを削除することはできない。多分それはDolibarrエンティティに関連付けられている。 +ErrorUserCannotBeDelete=ユーザを削除することはできない。多分それはDolibarrエンティティに関連付けられている。 ErrorFieldsRequired=一部の必須フィールドは空白のままになっている。 ErrorSubjectIsRequired=メールの件名が必要 -ErrorFailedToCreateDir=ディレクトリの作成に失敗した。そのWebサーバのユーザがDolibarrのドキュメントディレクトリに書き込む権限を持って確認すること。パラメータ のsafe_modeがこのPHPが有効になっている場合、Dolibarr PHPファイルは、Webサーバーのユーザー(またはグループ)に所有していることを確認すること。 -ErrorNoMailDefinedForThisUser=このユーザーに定義されたメールはない +ErrorFailedToCreateDir=ディレクトリの作成に失敗した。そのWebサーバのユーザがDolibarrのドキュメントディレクトリに書き込む権限を持って確認すること。パラメータ のsafe_modeがこのPHPが有効になっている場合、Dolibarr PHPファイルは、Webサーバーのユーザ(またはグループ)に所有していることを確認すること。 +ErrorNoMailDefinedForThisUser=このユーザに定義されたメールはない ErrorSetupOfEmailsNotComplete=メールの設定が完了していない -ErrorFeatureNeedJavascript=この機能が動作するようにアクティブにするjavascriptをする必要がある。設定でこれを変更 - 表示される。 +ErrorFeatureNeedJavascript=この機能が動作するように有効化するjavascriptをする必要がある。設定でこれを変更 - 表示される。 ErrorTopMenuMustHaveAParentWithId0=タイプは 'top'のメニューが親メニューを持つことはできない。親メニューに0を置くか、または型 "左"のメニューを選択する。 ErrorLeftMenuMustHaveAParentId=タイプ "左"のメニューは、親IDを持つ必要がある。 -ErrorFileNotFound=ファイルが見つかりませんでし%s(PHP openbasedirまたはセーフモードパラメータ によって拒否された不正なパスが、間違ったパーミッションやアクセス) -ErrorDirNotFound=ディレクトリが見つかりません%s(PHP openbasedirまたはセーフモードパラメータ によって拒否された不正なパスが、間違ったパーミッションやアクセス) +ErrorFileNotFound=ファイル%sが見つからない (不良パス、不正権限、アクセス拒否など、PHP openbasedir または セーフモードパラメータ による) +ErrorDirNotFound=ディレクトリ%sが見つからない (不良パス、不正権限、またはアクセス拒否などで、PHP openbasedirまたはセーフモードパラメータ による) ErrorFunctionNotAvailableInPHP=関数%sは、この機能を使用するために必要となるが、このバージョンの/ PHPの設定では使用できない。 -ErrorDirAlreadyExists=この名前のディレクトリがすでに存在している。 -ErrorFileAlreadyExists=この名前を持つファイルがすでに存在している。 +ErrorDirAlreadyExists=この名前のディレクトリが既に存在している。 +ErrorFileAlreadyExists=この名前を持つファイルが既に存在している。 ErrorDestinationAlreadyExists= %sという名前の別のファイルが既に存在する。 ErrorPartialFile=ファイルはサーバーで完全に受け取っていない。 -ErrorNoTmpDir=一時的なdirectyの%sが存在しません。 +ErrorNoTmpDir=一時的directyの%sが存在しない。 ErrorUploadBlockedByAddon=PHP / Apacheプラグインによってブロックされてアップロードする。 -ErrorFileSizeTooLarge=ファイルサイズが大きすぎる。 +ErrorFileSizeTooLarge=ファイルサイズが大きすぎるか、ファイルが提供されていない。 ErrorFieldTooLong=フィールド%sが長すぎる。 ErrorSizeTooLongForIntType=(%s桁の最大値)int型に対して長すぎるサイズ ErrorSizeTooLongForVarcharType=文字列型(%s文字最大)長すぎるサイズ @@ -77,26 +78,27 @@ ErrorBadFormatValueList=リスト値に複数のコンマを含めることは ErrorFieldCanNotContainSpecialCharacters=フィールド%sに特殊文字を含めることはできない。 ErrorFieldCanNotContainSpecialNorUpperCharacters=フィールド%s には、特殊文字や大文字を含めることはできず、数字のみを含めることはできない。 ErrorFieldMustHaveXChar=フィールド%s には、少なくとも%s文字が必要だ。 -ErrorNoAccountancyModuleLoaded=全く会計モジュールが活性化しない -ErrorExportDuplicateProfil=このプロファイル名は、このエクスポートセットにすでに存在する。 +ErrorNoAccountancyModuleLoaded=有効化済会計モジュールなし +ErrorExportDuplicateProfil=このプロファイル名は、このエクスポートセットに既に存在する。 ErrorLDAPSetupNotComplete=Dolibarr-LDAPのマッチングは完全ではない。 ErrorLDAPMakeManualTest=.ldifファイルは、ディレクトリ%sで生成された。エラーの詳細情報を持つようにコマンドラインから手動でそれをロードしようとする。 ErrorCantSaveADoneUserWithZeroPercentage= "doneby" フィールドも入力されている場合、 "statusnotstarted" のアクションを保存できない。 -ErrorRefAlreadyExists=参照%sはすでに存在する。 +ErrorRefAlreadyExists=参照%sは既に存在する。 ErrorPleaseTypeBankTransactionReportName=エントリを報告する必要のある銀行取引明細書名を入力すること(フォーマットYYYYMMまたはYYYYMMDD) ErrorRecordHasChildren=子レコードがいくつかあるため、レコードの削除に失敗した。 ErrorRecordHasAtLeastOneChildOfType=オブジェクト%sには、タイプ%sの子が少なくとも1つある。 -ErrorRecordIsUsedCantDelete=レコードを削除できない。すでに使用されているか、別のオブジェクトに含まれている。 +ErrorRecordIsUsedCantDelete=レコードを削除できない。既に使用されているか、別のオブジェクトに含まれている。 ErrorModuleRequireJavascript=Javascriptがこの機能が動作しているために無効にすることはできない。 Javascriptを有効/無効にするには、メニューHome - >設定 - >ディスプレイに移動する。 ErrorPasswordsMustMatch=両方入力したパスワードは、互いに一致している必要がある ErrorContactEMail=技術的なエラーが発生した。次の電子メール%s に管理者に連絡し、メッセージにエラーコード %s を入力するか、このページの画面コピーを追加すること。 ErrorWrongValueForField=フィールド%s : ' %s ' は、正規表現ルール%s に不適合 -ErrorFieldValueNotIn=フィールド %s : ' %s ' が値が %s %s の分野では見られません +ErrorHtmlInjectionForField=フィールド%s: 値 ' %s 'には、許可されない悪意あるデータが含まれる +ErrorFieldValueNotIn=フィールド%s:'%s' はフィールド %s である %s にあるものの値とは異なる ErrorFieldRefNotIn=フィールド%s : ' %s' は存在する %s 参照ではない ErrorsOnXLines=%sエラーが見つかった -ErrorFileIsInfectedWithAVirus=ウイルス対策プログラムがファイルを検証することができなかった(ファイルがウイルスに感染されるかもしれない) +ErrorFileIsInfectedWithAVirus=ウイルス対策プログラムがファイルを検証ことができなかった(ファイルがウイルスに感染されるかもしれない) ErrorSpecialCharNotAllowedForField=特殊文字は、フィールド "%s"に許可されていない -ErrorNumRefModel=参照は、データベース(%s)に存在し、この番号規則と互換性がない。レコードを削除するか、このモジュールを有効にするために参照を変更した。 +ErrorNumRefModel=参照は、データベース(%s)に存在し、この発番規則と互換性がない。このモジュールを有効化するため、レコードを削除するか、参照を変更すること。 ErrorQtyTooLowForThisSupplier=このベンダーの数量が少なすぎるか、このベンダーのこの製品に価格が定義されていない ErrorOrdersNotCreatedQtyTooLow=数量が少なすぎるため、一部の注文が作成されていない ErrorModuleSetupNotComplete=モジュール%sの設定が完了していないようだ。ホーム-設定-モジュールに移動して完了する。 @@ -110,29 +112,29 @@ ErrorDeleteNotPossibleLineIsConsolidated=レコードが調整された銀行取 ErrorProdIdAlreadyExist=%sは別の第三者に割り当てられている ErrorFailedToSendPassword=パスワードの送信に失敗した ErrorFailedToLoadRSSFile=RSSフィードの取得に失敗した。エラーメッセージが十分な情報を提供していない場合は定数MAIN_SIMPLEXMLLOAD_DEBUGを追加しようとする。 -ErrorForbidden=アクセスが拒否された。
    無効にされたモジュールのページ、領域、または機能にアクセスしようとしたか、認証されたセッションに参加していないか、ユーザーに許可されていない。 +ErrorForbidden=アクセスが拒否された。
    無効にされたモジュールのページ、領域、または機能にアクセスしようとしたか、認証されたセッションに参加していないか、ユーザに許可されていない。 ErrorForbidden2=このログインの許可は、メニュー%s - > %sからDolibarr管理者によって定義することができる。 ErrorForbidden3=そのDolibarrが認証セッションを介して使用されていないようだ。認証を(htaccessファイルは、mod_authまたは他の...)を管理する方法を知ってDolibarr設定ドキュメントを見てみよう。 ErrorForbidden4=注:このログインの既存のセッションを破棄するには、ブラウザのCookieをクリアすること。 ErrorNoImagickReadimage=クラスImagickが、このPHPで発見さ​​れていない。なしプレビューは利用できない。管理者は、メニューのSetupから、このタブを無効にすることができる - 表示する。 -ErrorRecordAlreadyExists=すでに登録されている -ErrorLabelAlreadyExists=このラベルはすでに存在する -ErrorCantReadFile=ファイル"%s"を読み取ることができなかった -ErrorCantReadDir=ディレクトリ"%s"を読み取ることができなかった +ErrorRecordAlreadyExists=既に登録されている +ErrorLabelAlreadyExists=このラベルは既に存在する +ErrorCantReadFile=ファイル"%s"を読込むことができなかった +ErrorCantReadDir=ディレクトリ"%s"を読込むことができなかった ErrorBadLoginPassword=ログインまたはパスワードの値が正しくない ErrorLoginDisabled=あなたのアカウントは無効にされている -ErrorFailedToRunExternalCommand=外部コマンドの実行に失敗した。 PHPサーバーユーザーが利用可能で実行可能であることを確認すること。コマンドがapparmorのようなセキュリティレイヤーによってシェルレベルで保護されていないことも確認すること。 +ErrorFailedToRunExternalCommand=外部コマンドの実行に失敗した。 PHPサーバーユーザが利用可能で実行可能であることを確認すること。コマンドがapparmorのようなセキュリティレイヤーによってシェルレベルで保護されていないことも確認すること。 ErrorFailedToChangePassword=パスワードの変更に失敗した -ErrorLoginDoesNotExists=ログイン%sを持つユーザーを見つけることができなかった。 -ErrorLoginHasNoEmail=このユーザーは電子メールアドレスを持っていない。プロセスが中止された。 +ErrorLoginDoesNotExists=ログイン%sを持つユーザを見つけることができなかった。 +ErrorLoginHasNoEmail=このユーザは電子メールアドレスを持っていない。プロセスが中止された。 ErrorBadValueForCode=セキュリティコードの値が正しくない。新規値で再試行すること... ErrorBothFieldCantBeNegative=フィールド%s %sとは負の両方にすることはできない ErrorFieldCantBeNegativeOnInvoice=このタイプの請求書では、フィールド %sを負にすることはできない。割引ラインを追加する必要がある場合は、最初に割引を作成し(取引先カードのフィールド '%s'から)、それを請求書に適用する。 ErrorLinesCantBeNegativeForOneVATRate=行の合計(税控除後)は、特定のnull以外のVAT率に対して負になることはできない(VAT率 %s %%の負の合計が見つかった)。 -ErrorLinesCantBeNegativeOnDeposits=預金でラインがマイナスになることはない。あなたがそうするならば、あなたが最終的な請求書で預金を消費する必要があるとき、あなたは問題に直面するだろう。 +ErrorLinesCantBeNegativeOnDeposits=入金でラインがマイナスになることはない。あなたがそうするならば、あなたが最終的な請求書で入金を消費する必要があるとき、あなたは問題に直面するだろう。 ErrorQtyForCustomerInvoiceCantBeNegative=顧客の請求書への明細の数量をマイナスにすることはできない -ErrorWebServerUserHasNotPermission=Webサーバを実行するユーザーアカウントを使用%sそのための権限を持っていない -ErrorNoActivatedBarcode=活性化バーコード·タイプません +ErrorWebServerUserHasNotPermission=Webサーバを実行するユーザアカウントを使用%sそのための権限を持っていない +ErrorNoActivatedBarcode=有効化済バーコード·タイプがない ErrUnzipFails=ZipArchiveで%sを解凍できなかった ErrNoZipEngine=このPHPで%sファイルをzip / unzipするエンジンはない ErrorFileMustBeADolibarrPackage=ファイル%sはDolibarrzipパッケージである必要がある @@ -141,20 +143,20 @@ ErrorPhpCurlNotInstalled=PHPCURLがインストールされていない。これ ErrorFailedToAddToMailmanList=レコード%sをMailmanリスト%sまたはSPIPベースに追加できなかった ErrorFailedToRemoveToMailmanList=レコード%sをMailmanリスト%sまたはSPIPベースに削除できなかった ErrorNewValueCantMatchOldValue=新規値を古い値と等しくすることはできない -ErrorFailedToValidatePasswordReset=パスワードの再初期化に失敗した。 reinitがすでに実行されている可能性がある(このリンクは1回しか使用できない)。そうでない場合は、再初期化プロセスを再開してみること。 +ErrorFailedToValidatePasswordReset=パスワードの再初期化に失敗した。 reinitが既に実行されている可能性がある(このリンクは1回しか使用できない)。そうでない場合は、再初期化プロセスを再開してみること。 ErrorToConnectToMysqlCheckInstance=データベースへの接続に失敗。データベースサーバーが実行されていることを確認する(たとえば、mysql/mariadb なら、コマンドラインから "sudo service mysql start" を使用して起動できる)。 ErrorFailedToAddContact=連絡先の追加に失敗した ErrorDateMustBeBeforeToday=日付は今日よりも低くする必要がある ErrorDateMustBeInFuture=日付は今日より大きくなければならない -ErrorPaymentModeDefinedToWithoutSetup=支払いモードはタイプ%sに設定されたが、この支払いモードで表示する情報を定義するためのモジュール請求書の設定が完了していなかった。 +ErrorPaymentModeDefinedToWithoutSetup=支払モードはタイプ%sに設定されたが、この支払モードで表示する情報を定義するためのモジュール請求書の設定が完了していなかった。 ErrorPHPNeedModule=エラー、この機能を使用するには、PHPにモジュール %sがインストールされている必要がある。 ErrorOpenIDSetupNotComplete=OpenID認証を許可するようにDolibarr構成ファイルを設定したが、OpenIDサービスのURLが定数%sに定義されていない ErrorWarehouseMustDiffers=ソースウェアハウスとターゲットウェアハウスは異なる必要がある ErrorBadFormat=悪いフォーマット! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=エラー、このメンバーはまだ取引先にリンクされていない。請求書付きのサブスクリプションを作成する前に、メンバーを既存の取引先にリンクするか、新規取引先を作成すること。 +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=エラー、この構成員はまだ取引先にリンクされていない。請求書付きのサブスクリプションを作成する前に、構成員を既存の取引先にリンクするか、新規取引先を作成すること。 ErrorThereIsSomeDeliveries=エラー、この出荷に関連するいくつかの配送がある。削除は拒否された。 -ErrorCantDeletePaymentReconciliated=調整された銀行エントリを生成した支払いを削除できない -ErrorCantDeletePaymentSharedWithPayedInvoice=ステータスがPaidの少なくとも1つの請求書で共有されている支払いを削除できない +ErrorCantDeletePaymentReconciliated=調整された銀行エントリを生成した支払を削除できない +ErrorCantDeletePaymentSharedWithPayedInvoice=状態がPaidの少なくとも1つの請求書で共有されている支払を削除できない ErrorPriceExpression1=定数 "%s" に割り当てることはできない ErrorPriceExpression2=組み込み関数 '%s'を再定義できない ErrorPriceExpression3=関数定義の未定義変数 '%s' @@ -167,7 +169,7 @@ ErrorPriceExpression10=演算子 '%s'にオペランドがない ErrorPriceExpression11='%s'を期待している ErrorPriceExpression14=ゼロ除算 ErrorPriceExpression17=未定義の変数 '%s' -ErrorPriceExpression19=式が見つかりません +ErrorPriceExpression19=式が見つからない ErrorPriceExpression20=空の表情 ErrorPriceExpression21=空の結果 '%s' ErrorPriceExpression22=否定的な結果 '%s' @@ -177,9 +179,9 @@ ErrorPriceExpressionInternal=内部エラー '%s' ErrorPriceExpressionUnknown=不明なエラー '%s' ErrorSrcAndTargetWarehouseMustDiffers=ソースウェアハウスとターゲットウェアハウスは異なる必要がある ErrorTryToMakeMoveOnProductRequiringBatchData=ロット/シリアル情報を必要とする製品 '%s'で、ロット/シリアル情報なしで在庫推移を行おうとするとエラーが発生した -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=記録されたすべての受付は、このアクションを実行する前に、まず確認(承認または拒否)する必要がある -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=このアクションを実行する前に、記録されたすべての受付を最初に確認(承認)する必要がある -ErrorGlobalVariableUpdater0=HTTPリクエストがエラー "%s" で失敗した +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=記録された全領収は、このアクションを実行する前に、まず確認(承認または拒否)する必要がある +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=このアクションを実行する前に、記録された全領収を最初に検証(承認)する必要がある +ErrorGlobalVariableUpdater0=HTTP要求がエラー "%s" で失敗した ErrorGlobalVariableUpdater1=無効なJSON形式 '%s' ErrorGlobalVariableUpdater2=パラメータ '%s'がない ErrorGlobalVariableUpdater3=要求されたデータが結果に見つからなかった @@ -187,7 +189,7 @@ ErrorGlobalVariableUpdater4=SOAPクライアントがエラー "%s" で失敗し ErrorGlobalVariableUpdater5=グローバル変数が選択されていない ErrorFieldMustBeANumeric=フィールド%sは数値である必要がある ErrorMandatoryParametersNotProvided=必須パラメータ (s)が提供されていない -ErrorOppStatusRequiredIfAmount=このリードの見積もり金額を設定する。したがって、そのステータスも入力する必要がある。 +ErrorOppStatusRequiredIfAmount=このリードの見積もり金額を設定する。したがって、その状態も入力する必要がある。 ErrorFailedToLoadModuleDescriptorForXXX=%sのモジュール記述子クラスのロードに失敗した ErrorBadDefinitionOfMenuArrayInModuleDescriptor=モジュール記述子のメニュー配列の定義が正しくない(キーfk_menuの値が正しくない) ErrorSavingChanges=変更を保存するときにエラーが発生した @@ -195,35 +197,35 @@ ErrorWarehouseRequiredIntoShipmentLine=出荷するラインには倉庫が必 ErrorFileMustHaveFormat=ファイルの形式は%sである必要がある ErrorFilenameCantStartWithDot=ファイル名を "。" で始めることはできない。 ErrorSupplierCountryIsNotDefined=このベンダーの国は定義されていない。最初にこれを修正すること。 -ErrorsThirdpartyMerge=2つのレコードのマージに失敗した。リクエストはキャンセルされた。 +ErrorsThirdpartyMerge=2つのレコードのマージに失敗した。要求はキャンセルされた。 ErrorStockIsNotEnoughToAddProductOnOrder=製品%sが新規注文に追加するには、在庫が十分ではない。 ErrorStockIsNotEnoughToAddProductOnInvoice=製品%sが新規請求書に追加するには、在庫が十分ではない。 ErrorStockIsNotEnoughToAddProductOnShipment=製品%sが新規出荷に追加するには、在庫が十分ではない。 ErrorStockIsNotEnoughToAddProductOnProposal=製品%sが新規提案に追加するには、在庫が十分ではない。 ErrorFailedToLoadLoginFileForMode=モード "%s" のログインキーの取得に失敗した。 ErrorModuleNotFound=モジュールのファイルが見つからなかった。 -ErrorFieldAccountNotDefinedForBankLine=ソース行ID%s(%s)に対してアカウンティングアカウントの値が定義されていない -ErrorFieldAccountNotDefinedForInvoiceLine=請求書ID%s(%s)に定義されていない会計勘定の値 -ErrorFieldAccountNotDefinedForLine=行に定義されていない会計勘定の値(%s) +ErrorFieldAccountNotDefinedForBankLine=ソース行ID%s(%s)に対して会計勘定科目の値が定義されていない +ErrorFieldAccountNotDefinedForInvoiceLine=請求書ID%s(%s)に定義されていない勘定科目の値 +ErrorFieldAccountNotDefinedForLine=行に定義されていない勘定科目の値(%s) ErrorBankStatementNameMustFollowRegex=エラー、銀行取引明細書名は次の構文規則に従う必要がある%s ErrorPhpMailDelivery=使用する受信者の数が多すぎないこと、および電子メールの内容がスパムに類似していないことを確認すること。詳細については、ファイアウォールとサーバーのログファイルを確認するように管理者に依頼すること。 -ErrorUserNotAssignedToTask=消費時間を入力できるようにするには、ユーザーをタスクに割り当てる必要がある。 -ErrorTaskAlreadyAssigned=すでにユーザーに割り当てられているタスク +ErrorUserNotAssignedToTask=消費時間を入力できるようにするには、ユーザをタスクに割り当てる必要がある。 +ErrorTaskAlreadyAssigned=既にユーザに割り当てられているタスク ErrorModuleFileSeemsToHaveAWrongFormat=モジュールパッケージの形式が間違っているようだ。 ErrorModuleFileSeemsToHaveAWrongFormat2=モジュールのzipには、少なくとも1つの必須ディレクトリが存在する必要がある: %sまたは%s -ErrorFilenameDosNotMatchDolibarrPackageRules=モジュールパッケージの名前( %s )が予期される名前の構文と一致しません: %s -ErrorDuplicateTrigger=エラー、トリガー名%sが重複している。すでに%sからロードされている。 +ErrorFilenameDosNotMatchDolibarrPackageRules=モジュールパッケージの名前( %s )が予期される名前の構文と一致しない: %s +ErrorDuplicateTrigger=エラー、トリガー名%sが重複している。既に%sからロードされている。 ErrorNoWarehouseDefined=エラー、倉庫が定義されていない。 -ErrorBadLinkSourceSetButBadValueForRef=使用しているリンクは無効だ。支払いの "ソース" が定義されているが、 "ref" の値が無効だ。 +ErrorBadLinkSourceSetButBadValueForRef=使用しているリンクは無効だ。支払の "ソース" が定義されているが、 "ref" の値が無効だ。 ErrorTooManyErrorsProcessStopped=エラーが多すぎる。プロセスが停止した。 -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=このアクションで在庫を増減するオプションが設定されている場合、一括検証はできない(増加/減少する倉庫を定義できるように、1つずつ検証する必要がある) -ErrorObjectMustHaveStatusDraftToBeValidated=オブジェクト%sを検証するには、ステータスが "ドラフト" である必要がある。 -ErrorObjectMustHaveLinesToBeValidated=オブジェクト%sには、検証する行が必要だ。 -ErrorOnlyInvoiceValidatedCanBeSentInMassAction= "電子メールで送信" 一括アクションを使用して送信できるのは、検証済の請求書のみだ。 -ErrorChooseBetweenFreeEntryOrPredefinedProduct=記事が事前定義された製品であるかどうかを選択する必要がある +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=このアクションで在庫を増減するオプションが設定されている場合、一括検証はできない(増加/減少する倉庫を定義できるように、1つずつ要検証) +ErrorObjectMustHaveStatusDraftToBeValidated=オブジェクト%sを検証済とするには、状態が "下書き" である必要がある。 +ErrorObjectMustHaveLinesToBeValidated=オブジェクト%sには、検証済の行が必要。 +ErrorOnlyInvoiceValidatedCanBeSentInMassAction= "電子メールで送信" 一括アクションを使用して送信できるのは、検証済の請求書のみ。 +ErrorChooseBetweenFreeEntryOrPredefinedProduct=項目が事前定義された製品であるかどうかを選択する必要がある ErrorDiscountLargerThanRemainToPaySplitItBefore=あなたが適用しようとする割引は、支払うべき残りよりも大きいだ。前に割引を2つの小さな割引に分割する。 ErrorFileNotFoundWithSharedLink=ファイルが見つからなかった。共有キーが変更されたか、ファイルが最近削除された可能性がある。 -ErrorProductBarCodeAlreadyExists=製品バーコード%sは、別の製品リファレンスにすでに存在する。 +ErrorProductBarCodeAlreadyExists=製品バーコード%sは、別の製品リファレンスに既に存在する。 ErrorNoteAlsoThatSubProductCantBeFollowedByLot=少なくとも1つのサブ製品(またはサブ製品のサブ製品)にシリアル番号/ロット番号が必要な場合、キットを使用してサブ製品を自動的に増減させることはできないことにも注意すること。 ErrorDescRequiredForFreeProductLines=無料の製品を含むラインには説明が必須だ ErrorAPageWithThisNameOrAliasAlreadyExists=ページ/コンテナ%s は、使用しようとしているものと同じ名前または代替エイリアスを持っている @@ -233,26 +235,26 @@ ErrorVariableKeyForContentMustBeSet=エラー、名前%s(表示するテキス ErrorURLMustEndWith=URL%sは%sで終了する必要がある ErrorURLMustStartWithHttp=URL %sは http:// または https:// で始まる必要がある ErrorHostMustNotStartWithHttp=ホスト名%sは、http:// または https:// で始まらないこと -ErrorNewRefIsAlreadyUsed=エラー、新規参照はすでに使用されている -ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=エラー、クローズされた請求書にリンクされた支払いを削除することはできない。 +ErrorNewRefIsAlreadyUsed=エラー、新規参照は既に使用されている +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=エラー、クローズされた請求書にリンクされた支払を削除することはできない。 ErrorSearchCriteriaTooSmall=検索条件が小さすぎる。 -ErrorObjectMustHaveStatusActiveToBeDisabled=無効にするには、オブジェクトのステータスが "アクティブ" である必要がある -ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=オブジェクトを有効にするには、ステータスが "ドラフト" または "無効" である必要がある +ErrorObjectMustHaveStatusActiveToBeDisabled=無効にするには、オブジェクトの状態が "アクティブ" である必要がある +ErrorObjectMustHaveStatusDraftOrDisabledToBeActivated=オブジェクトを有効にするには、状態が "下書き" または "無効" である必要がある ErrorNoFieldWithAttributeShowoncombobox=オブジェクト '%s'の定義にプロパティ 'showoncombobox'を持つフィールドはない。コンボリストを表示する方法はない。 ErrorFieldRequiredForProduct=製品%sには、フィールド '%s'が必要だ。 ProblemIsInSetupOfTerminal=ターミナル%sの設定に問題がある。 ErrorAddAtLeastOneLineFirst=最初に少なくとも1行追加する -ErrorRecordAlreadyInAccountingDeletionNotPossible=エラー、レコードはすでにアカウンティングで転送されており、削除できない。 +ErrorRecordAlreadyInAccountingDeletionNotPossible=エラー、レコードは既に会計で移動済、削除不可。 ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=エラー、ページを別のページの翻訳として設定する場合は、言語が必須だ。 ErrorLanguageOfTranslatedPageIsSameThanThisPage=エラー、翻訳されたページの言語はこれと同じだ。 -ErrorBatchNoFoundForProductInWarehouse=倉庫 "%s" に製品 "%s" のロット/シリアルが見つかりません。 +ErrorBatchNoFoundForProductInWarehouse=倉庫 "%s" に製品 "%s" のロット/シリアルが見つからない。 ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=倉庫 "%s" の製品 "%s" のこのロット/シリアルに十分な数量がない。 ErrorOnlyOneFieldForGroupByIsPossible='Group by'のフィールドは1つだけ可能だ(他のフィールドは破棄される) ErrorTooManyDifferentValueForSelectedGroupBy=フィールド ' %s 'に異なる値( %s 以上)が多すぎるため、 それを図形に対する ' Group by ' として使用することはできない。フィールド "Group By" は削除された。 X軸として使用したかったのか? ErrorReplaceStringEmpty=エラー、置き換える文字列が空だ ErrorProductNeedBatchNumber=エラー、製品 ' %s'にはロット/シリアル番号が必要だ -ErrorProductDoesNotNeedBatchNumber=エラー、製品 ' %s'はロット/シリアル番号を受け入れません -ErrorFailedToReadObject=エラー、タイプ %sのオブジェクトの読み取りに失敗した +ErrorProductDoesNotNeedBatchNumber=エラー、製品 ' %s'はロット/シリアル番号を受け入れない +ErrorFailedToReadObject=エラー、タイプ %sのオブジェクトの読取りに失敗した ErrorParameterMustBeEnabledToAllwoThisFeature=エラー、パラメータ %s conf / conf.php で有効にして、内部ジョブスケジューラでコマンドラインインターフェイスを使用できるようにする必要がある ErrorLoginDateValidity=エラー、このログインは有効期間外だ ErrorValueLength=フィールドの長さ ' %s 'は ' %s'より大きくなければならない @@ -266,51 +268,64 @@ ErrorDateIsInFuture=エラー、日付を未来にすることはできない ErrorAnAmountWithoutTaxIsRequired=エラー、数量は必須 ErrorAPercentIsRequired=エラー、パーセンテージを正しく入力すること ErrorYouMustFirstSetupYourChartOfAccount=最初に勘定科目表を設定する必要がある -ErrorFailedToFindEmailTemplate=コードネーム%sのテンプレートが見つかりませんでした +ErrorFailedToFindEmailTemplate=コードネーム%sのテンプレートが見つからない ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=サービスで期間が定義されていない。時給計算する方法がない。 ErrorActionCommPropertyUserowneridNotDefined=ユーザの所有者が必要 -ErrorActionCommBadType=選択したイベント種別 (id: %n, code: %s) がイベント種別辞書に存在しない +ErrorActionCommBadType=選択したイベント タイプ (ID: %s、コード: %s) がイベント タイプ ディクショナリに存在しない CheckVersionFail=バージョンチェックに失敗する ErrorWrongFileName=ファイル名に__SOMETHING__を含めることはできない ErrorNotInDictionaryPaymentConditions=支払条件辞書にないので、変更すること。 -ErrorIsNotADraft=%sはドラフトではない +ErrorIsNotADraft=%sは下書きではない ErrorExecIdFailed=コマンド「id」を実行できない ErrorBadCharIntoLoginName=ログイン名に含まれる不正な文字 -ErrorRequestTooLarge=Error, request too large +ErrorRequestTooLarge=エラー、要求が大きすぎる +ErrorNotApproverForHoliday=あなたは休暇の承認者ではない%s +ErrorAttributeIsUsedIntoProduct=この属性は、1つ以上の製品バリアントで使用される +ErrorAttributeValueIsUsedIntoProduct=この属性値は、1つ以上の製品バリアントで使用される +ErrorPaymentInBothCurrency=エラー、全金額を同じ列に入力する必要がある +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=通貨%sのアカウントから通貨%sで請求書を支払おうとした +ErrorInvoiceLoadThirdParty=請求書「%s」の取引先オブジェクトを読み込めない +ErrorInvoiceLoadThirdPartyKey=取引先のキー「%s」が請求書「%s」に設定されていない +ErrorDeleteLineNotAllowedByObjectStatus=現在のオブジェクトステータスでは行の削除は許可されていない +ErrorAjaxRequestFailed=申請が失敗 +ErrorThirpdartyOrMemberidIsMandatory=取引先またはパートナーシップのメンバーは必須 +ErrorFailedToWriteInTempDirectory=一時ディレクトリへの書き込みに失敗 +ErrorQuantityIsLimitedTo=数量限定 %s # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=PHPパラメータ upload_max_filesize(%s)は、PHPパラメータ post_max_size(%s)よりも大きくなっている。これは一貫した設定ではない。 -WarningPasswordSetWithNoAccount=このメンバーにパスワードが設定された。ただし、ユーザーアカウントは作成されなかった。したがって、このパスワードは保存されるが、Dolibarrへのログインには使用できない。外部モジュール/インターフェースで使用できるが、メンバーのログインやパスワードを定義する必要がない場合は、メンバーモジュールの設定から "各メンバーのログインを管理する" オプションを無効にすることができる。ログインを管理する必要があるがパスワードは必要ない場合は、このフィールドを空のままにして、この警告を回避できる。注:メンバーがユーザーにリンクされている場合は、電子メールをログインとして使用することもできる。 -WarningMandatorySetupNotComplete=必須パラメータ を設定するには、ここをクリックすること +WarningPasswordSetWithNoAccount=この構成員にパスワードが設定された。ただし、ユーザアカウントは作成されなかった。したがって、このパスワードは保存されるが、Dolibarrへのログインには使用できない。外部モジュール/インターフェースで使用できるが、構成員のログインやパスワードを定義する必要がない場合は、構成員モジュールの設定から "各構成員のログインを管理する" オプションを無効にすることができる。ログインを管理する必要があるがパスワードは必要ない場合は、このフィールドを空のままにして、この警告を回避できる。注:構成員がユーザにリンクされている場合は、電子メールをログインとして使用することもできる。 +WarningMandatorySetupNotComplete=主なパラメータの設定はこちら WarningEnableYourModulesApplications=モジュールとアプリケーションを有効にするには、ここをクリックすること WarningSafeModeOnCheckExecDir=警告、PHPのオプションセーフモードは、PHPのパラメータ safe_mode_exec_dirの宣言されたディレクトリ内に格納する必要があるので、コマンドにある。 -WarningBookmarkAlreadyExists=この職種またはこのターゲットを使用して、ブックマーク(URL)がすでに存在している。 +WarningBookmarkAlreadyExists=この職種またはこのターゲットを使用して、ブックマーク(URL)が既に存在している。 WarningPassIsEmpty=警告は、データベースのパスワードは空だ。これはセキュリティホールだ。あなたのデータベースにパスワードを追加し、これを反映するようにconf.phpファイルを変更する必要がある。 -WarningConfFileMustBeReadOnly=警告、設定ファイル (htdocs/conf/conf.php) はWebサーバーによって上書きされうる。これは重大なセキュリティホールだ。 Webサーバーで使用されるオペレーティング·システム·ユーザーのために読み取り専用モードになるようにファイルのパーミッションを変更すること。あなたのディスクにWindowsとFATフォーマットを使用すると、このファイルシステムはファイルのパーミッションを追加することはできず、完全な安全を得られないことを知っている必要がある。 +WarningConfFileMustBeReadOnly=警告、設定ファイル (htdocs/conf/conf.php) はWebサーバーによって上書きされうる。これは重大なセキュリティホールだ。 Webサーバーで使用されるオペレーティング·システム·ユーザのために読取り専用モードになるようにファイルのパーミッションを変更すること。あなたのディスクにWindowsとFATフォーマットを使用すると、このファイルシステムはファイルのパーミッションを追加することはできず、完全な安全を得られないことを知っている必要がある。 WarningsOnXLines=%sソース行に関する警告 -WarningNoDocumentModelActivated=ドキュメント生成用のモデルはアクティブ化されていない。モジュールの設定を確認するまで、デフォルトでモデルが選択される。 +WarningNoDocumentModelActivated=ドキュメント生成用のモデルは有効化されていない。モジュールの設定を確認するまで、デフォルトでモデルが選択される。 WarningLockFileDoesNotExists=警告、設定が完了したら、ファイル install.lockをディレクトリ%s に追加して、インストール/移行ツールを無効にする必要がある。このファイルの作成を省略すると、重大なセキュリティリスクが発生する。 -WarningUntilDirRemoved=すべてのセキュリティ警告(管理者ユーザーのみに表示)は、脆弱性が存在する限り(または、 設定 -> その他の設定 で定数 MAIN_REMOVE_INSTALL_WARNING が追加されている限り)アクティブなままだ。 +WarningUntilDirRemoved=全セキュリティ警告(管理者ユーザのみに表示)は、脆弱性が存在する限り(または、 設定 -> その他の設定 で定数 MAIN_REMOVE_INSTALL_WARNING が追加されている限り)アクティブなままだ。 WarningCloseAlways=警告、ソース要素とターゲット要素の間で量が異なっていても、クローズは行われる。この機能は注意して有効にすること。 -WarningUsingThisBoxSlowDown=警告、このボックスを使用すると、ボックスを表示しているすべてのページの速度が大幅に低下する。 -WarningClickToDialUserSetupNotComplete=ユーザーのClickToDial情報の設定が完了していない(ユーザーカードのClickToDialタブを参照)。 +WarningUsingThisBoxSlowDown=警告、このボックスを使用すると、ボックスを表示している全ページの速度が大幅に低下する。 +WarningClickToDialUserSetupNotComplete=ユーザのClickToDial情報の設定が完了していない(ユーザカードのClickToDialタブを参照)。 WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=表示設定が視覚障害者またはテキストブラウザ用に最適化されている場合、機能は無効になる。 -WarningPaymentDateLowerThanInvoiceDate=請求書%sの支払い日(%s)が請求日(%s)よりも前だ。 +WarningPaymentDateLowerThanInvoiceDate=請求書%sの支払日(%s)が請求日(%s)よりも前だ。 WarningTooManyDataPleaseUseMoreFilters=データが多すぎる(%s行を超えている)。より多くのフィルタを使用するか、定数%sをより高い制限に設定すること。 -WarningSomeLinesWithNullHourlyRate=時間料金が定義されていないときに、一部のユーザーによって記録された時間もある。 1時間あたり0%sの値が使用されたが、これにより、費やされた時間の誤った評価が発生する可能性がある。 +WarningSomeLinesWithNullHourlyRate=時間料金が定義されていないときに、一部のユーザによって記録された時間もある。 1時間あたり0%sの値が使用されたが、これにより、費やされた時間の誤った評価が発生する可能性がある。 WarningYourLoginWasModifiedPleaseLogin=ログインが変更された。セキュリティ上の理由から、次のアクションの前に新規ログインでログインする必要がある。 -WarningAnEntryAlreadyExistForTransKey=この言語の翻訳キーのエントリはすでに存在する +WarningAnEntryAlreadyExistForTransKey=この言語の翻訳キーのエントリは既に存在する WarningNumberOfRecipientIsRestrictedInMassAction=警告、リストで一括アクションを使用する場合、異なる受信者の数は %sに制限される WarningDateOfLineMustBeInExpenseReportRange=警告、行の日付が経費報告書の範囲内にない -WarningProjectDraft=プロジェクトはまだドラフトモードだ。タスクを使用する場合は、検証することを忘れないでください。 +WarningProjectDraft=プロジェクトはまだ下書きモードだ。タスクを使用する場合は、検証を忘れないこと。 WarningProjectClosed=プロジェクトは終了した。最初に再度開く必要がある。 WarningSomeBankTransactionByChequeWereRemovedAfter=一部の銀行取引は、それらを含む領収書が生成された後に削除された。そのため、小切手の数と領収書の合計は、リストの数と合計とは異なる場合がある。 WarningFailedToAddFileIntoDatabaseIndex=警告、ECMデータベースインデックステーブルにファイルエントリを追加できなかった WarningTheHiddenOptionIsOn=警告、非表示のオプション %sがオンになっている。 -WarningCreateSubAccounts=警告、サブアカウントを直接作成することはできない。このリストでそれらを見つけるには、取引先またはユーザーを作成し、それらにアカウンティングコードを割り当てる必要がある +WarningCreateSubAccounts=警告、補助勘定科目を直接作成することはできない。このリストでそれらを見つけるには、取引先またはユーザを作成し、それらに勘定科目コードを割り当てる必要がある WarningAvailableOnlyForHTTPSServers=HTTPSで保護された接続を使用している場合にのみ使用できる。 WarningModuleXDisabledSoYouMayMissEventHere=モジュール%sが有効になっていない。そのため、ここでは多くのイベントを見逃す可能性がある。 WarningPaypalPaymentNotCompatibleWithStrict=値「Strict」では、現在はオンライン支払機能が正常動作せず。代わりに「Lax」を使用すること。 +WarningThemeForcedTo=警告、テーマは隠し定数 MAIN_FORCETHEME によって%sに強制された # Validate RequireValidValue = 値が無効. @@ -330,5 +345,5 @@ RequireValidExistingElement = 既存の値が必要 RequireValidBool = 有効なブール値が必要 BadSetupOfField = フィールドの設定エラー BadSetupOfFieldClassNotFoundForValidation = フィールドの設定エラー:検証用のクラスが見つからない -BadSetupOfFieldFileNotFound = フィールドの設定が正しくない:含めるファイルが見つかりません +BadSetupOfFieldFileNotFound = フィールドの設定が正しくない:含めるファイルが見つからない BadSetupOfFieldFetchNotCallable = フィールドの設定不正エラー:クラスでフェッチを呼び出せない diff --git a/htdocs/langs/ja_JP/eventorganization.lang b/htdocs/langs/ja_JP/eventorganization.lang index 8d39e33b2b4..1ebd624b0f7 100644 --- a/htdocs/langs/ja_JP/eventorganization.lang +++ b/htdocs/langs/ja_JP/eventorganization.lang @@ -26,7 +26,7 @@ EventOrganizationDescriptionLong= イベントの構成を管理する(提案 EventOrganizationMenuLeft = 開催済イベント EventOrganizationConferenceOrBoothMenuLeft = 会議またはブース -PaymentEvent=イベントの支払い +PaymentEvent=イベントの支払 # # Admin page @@ -36,8 +36,9 @@ EventOrganizationSetup=イベント組織の設定 EventOrganization=イベント主催 Settings=設定 EventOrganizationSetupPage = イベント組織設定ページ -EVENTORGANIZATION_TASK_LABEL = プロジェクトが検証されたときに自動的に作成するタスクのラベル -EVENTORGANIZATION_TASK_LABELTooltip = 組織化されたイベントを検証すると、プロジェクトにいくつかのタスクが自動的に作成される。

    例:
    会議の呼び出しを送信
    ブースの呼び出しを送信
    会議の呼出を受信
    ブースの呼出を受信
    参加者にイベントへのサブスクリプションを公開
    話者にイベントのリマインダーを送信
    ブースの主催者にイベントのリマインダーを送信
    参加者にイベントのリマインダーを送信 +EVENTORGANIZATION_TASK_LABEL = プロジェクトは検証済なら自動的に作成するタスクのラベル +EVENTORGANIZATION_TASK_LABELTooltip = 整理するイベントを検証と、プロジェクトにいくつかのタスクが自動的に作成される

    例:
    カンファレンス募集を送信
    ブース募集を送信
    カンファレンス提案を検証
    ブース申請を検証
    出席者向けのイベント参加登録を開始
    話者にイベント催告を送信
    ブース主催者にイベント催告を送信
    出席者にイベント催告を送信 +EVENTORGANIZATION_TASK_LABELTooltip2=タスクを自動的に作成する必要がない場合は、空のままにする。 EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = 誰かが会議を提案したときに自動的に作成される取引先に追加するカテゴリ EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = ブースを提案したときに自動的に作成される取引先に追加するカテゴリ EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = 会議の提案を受け取った後に送信する電子メールのテンプレート。 @@ -59,15 +60,17 @@ ConferenceOrBoothTab = 会議またはブース AmountPaid = 払込金額 DateOfRegistration = 登録日 ConferenceOrBoothAttendee = 会議またはブースの参加者 +ApplicantOrVisitor=申請者または訪問者 +Speaker=スピーカー # # Template Mail # -YourOrganizationEventConfRequestWasReceived = 会議リクエストは受信済 +YourOrganizationEventConfRequestWasReceived = 会議要求は受信済 YourOrganizationEventBoothRequestWasReceived = ブースの要望は受信済み -EventOrganizationEmailAskConf = 会議のリクエスト +EventOrganizationEmailAskConf = 会議の要求 EventOrganizationEmailAskBooth = ブースのご要望 -EventOrganizationEmailBoothPayment = ブースのお支払い +EventOrganizationEmailBoothPayment = ブースのお支払 EventOrganizationEmailRegistrationPayment = イベントへの登録 EventOrganizationMassEmailAttendees = 参加者へのコミュニケーション EventOrganizationMassEmailSpeakers = 話者とのコミュニケーション @@ -126,18 +129,19 @@ BoothLocationFee = イベントのブース位置: '%s' で %s から %s まで EventType = イベント種別 LabelOfBooth=ブースラベル LabelOfconference=会議ラベル -ConferenceIsNotConfirmed=登録できません。会議はまだ確定されていない +ConferenceIsNotConfirmed=登録できない。会議はまだ確定されていない DateMustBeBeforeThan=%sは必ず%sの前 DateMustBeAfterThan=%sは必ず%sの後 NewSubscription=登録 OrganizationEventConfRequestWasReceived=会議への提案を受け取った OrganizationEventBoothRequestWasReceived=ブースのご要望をいただいた -OrganizationEventPaymentOfBoothWasReceived=ブースの支払いが記録された -OrganizationEventPaymentOfRegistrationWasReceived=イベント登録の支払いが記録された +OrganizationEventPaymentOfBoothWasReceived=ブースの支払が記録された +OrganizationEventPaymentOfRegistrationWasReceived=イベント登録の支払が記録された OrganizationEventBulkMailToAttendees=これは、参加者としてのイベントへの参加を思い出させるものだ。 OrganizationEventBulkMailToSpeakers=これは、スピーカーとしてのイベントへの参加を思い出させるものだ。 OrganizationEventLinkToThirdParty=サードパーティ(顧客、サプライヤー、またはパートナー)へのリンク +OrganizationEvenLabelName=会議またはブースの公開名 NewSuggestionOfBooth=ブース申請 NewSuggestionOfConference=会議申請 @@ -150,18 +154,19 @@ EvntOrgRegistrationConfWelcomeMessage = カンファレンスの提案ページ EvntOrgRegistrationBoothWelcomeMessage = ブース提案ページへようこそ。 EvntOrgVoteHelpMessage = ここで、プロジェクトの提案されたイベントを表示して投票できる VoteOk = あなたの投票が承認された。 -AlreadyVoted = あなたはすでにこのイベントに投票している。 +AlreadyVoted = あなたは既にこのイベントに投票している。 VoteError = 投票中にエラーが発生した。もう一度やり直し願う。 -SubscriptionOk = 登録が検証された +SubscriptionOk = 登録は検証済 ConfAttendeeSubscriptionConfirmation = イベントへのサブスクリプションの確定 Attendee = 参加者 -PaymentConferenceAttendee = 会議参加者の支払い -PaymentBoothLocation = ブースの場所の支払い +PaymentConferenceAttendee = 会議参加者の支払 +PaymentBoothLocation = ブースの場所の支払 DeleteConferenceOrBoothAttendee=出席者を削除する -RegistrationAndPaymentWereAlreadyRecorder=電子メール%sの登録と支払いはすでに記録されている +RegistrationAndPaymentWereAlreadyRecorder=電子メール%sの登録と支払は既に記録されている EmailAttendee=参加者の電子メール EmailCompanyForInvoice=法人の電子メール(請求書に対して、参加者の電子メールと異なる場合) -ErrorSeveralCompaniesWithEmailContactUs=このメールを使用している会社がいくつか見つかったため、登録を自動的に検証することはできない。手動検証については、%sまで問い合わせること。 -ErrorSeveralCompaniesWithNameContactUs=この名前の会社がいくつか見つかったため、登録を自動的に検証することはできない。手動検証については、%sまで問い合わせること。 +ErrorSeveralCompaniesWithEmailContactUs=このメールを使用している会社がいくつか見つかったため、登録を自動的に検証ことはできない。手動検証については、%sまで問い合わせること。 +ErrorSeveralCompaniesWithNameContactUs=この名前の会社がいくつか見つかったため、登録を自動的に検証ことはできない。手動検証については、%sまで問い合わせること。 NoPublicActionsAllowedForThisEvent=このイベントの公開アクションは公開されていない +MaxNbOfAttendees=参加者の最大数 diff --git a/htdocs/langs/ja_JP/exports.lang b/htdocs/langs/ja_JP/exports.lang index 08d9d2203f5..bb71ad8bd21 100644 --- a/htdocs/langs/ja_JP/exports.lang +++ b/htdocs/langs/ja_JP/exports.lang @@ -38,8 +38,8 @@ FormatedExportDesc2=最初のステップは、事前定義されたデータセ FormatedExportDesc3=エクスポートするデータを選択すると、出力ファイルの形式を選択できる。 Sheet=シート NoImportableData=いいえインポート可能なデータがない(データのインポートを可能にするための定義としないモジュール) -FileSuccessfullyBuilt=ファイルが生成されました -SQLUsedForExport=データの抽出に使用されるSQLリクエスト +FileSuccessfullyBuilt=ファイルが生成された +SQLUsedForExport=データの抽出に使用されるSQL要求 LineId=行のid LineLabel=行のラベル LineDescription=ラインの説明 @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=行の種類(0 =製品、1 =サービス) FileWithDataToImport=インポートするデータを持つファイル FileToImport=インポートするソースファイル FileMustHaveOneOfFollowingFormat=インポートするファイルは、次のいずれかの形式である必要がある -DownloadEmptyExample=フィールドコンテンツ情報を含むテンプレートファイルをダウンロードする -StarAreMandatory=*は必須フィールド +DownloadEmptyExample=インポートできるフィールドの例と情報を含むテンプレートファイルをダウンロードする +StarAreMandatory=テンプレートファイルでは、*が付いているすべてのフィールドは必須フィールド ChooseFormatOfFileToImport=%sアイコンをクリックして選択し、インポートファイル形式として使用するファイル形式を選択する... ChooseFileToImport=ファイルをアップロードし、%sアイコンをクリックして、ソースインポートファイルとしてファイルを選択する。 SourceFileFormat=ソースファイルの形式 @@ -86,9 +86,9 @@ ErrorMissingMandatoryValue=フィールド%sのソースファイルの TooMuchErrors=エラーのある%s の他のソース行がまだあるが、出力は制限されている。 TooMuchWarnings=警告のある他のソース行はまだ%s が、出力は制限されている。 EmptyLine=空行(破棄される) -CorrectErrorBeforeRunningImport=は、が最終的なインポートを実行する前に、
    がすべてのエラーを修正する必要がある。 +CorrectErrorBeforeRunningImport=は、が最終的なインポートを実行する前に、が全エラーを修正する必要がある。 FileWasImported=ファイルが数%sでインポートされた。 -YouCanUseImportIdToFindRecord=フィールドimport_key = '%s' でフィルタリングすると、データベースにインポートされたすべてのレコードを見つけることができる。 +YouCanUseImportIdToFindRecord=フィールドimport_key = '%s' でフィルタリングすると、データベースにインポートされた全レコードを見つけることができる。 NbOfLinesOK=エラーなしで警告なしの行数:%s。 NbOfLinesImported=正常インポートの行数:%s。 DataComeFromNoWhere=挿入する値は、ソース·ファイル内のどこからも来ていない。 @@ -106,7 +106,7 @@ CSVFormatDesc= カンマ区切り値ファイル形式(.csv)。
    こ Excel95FormatDesc= Excel ファイル形式(.xls)
    これはネイティブのExcel 95形式(BIFF5) 。 Excel2007FormatDesc= Excel ファイル形式(.xlsx)
    これはネイティブのExcel 2007形式(SpreadsheetML) 。 TsvFormatDesc= タブ区切り値ファイル形式(.tsv)
    これは、フィールドがタブ文字 [tab] で区切られているテキストファイル形式 。 -ExportFieldAutomaticallyAdded=フィールド%sが自動的に追加された。類似の行を重複レコードとして扱うのを防止するように(このフィールドを付加すると、すべての行が独自のIDを所有し、異なるものとなる)。 +ExportFieldAutomaticallyAdded=フィールド%sが自動的に追加された。類似の行を重複レコードとして扱うのを防止するように(このフィールドを付加すると、全行が独自のIDを所有し、異なるものとなる)。 CsvOptions=CSV形式のオプション Separator=フィールドセパレータ Enclosure=文字列区切り文字 @@ -118,7 +118,7 @@ ImportFromLine=行番号からインポート EndAtLineNb=行番号で終了 ImportFromToLine=制限範囲(From-To)。例えばヘッダー行を省略する際に使用する。 SetThisValueTo2ToExcludeFirstLine=たとえば、この値を3に設定して、最初の2行を除外する。
    ヘッダー行が省略されていない場合、インポートシミュレーションで複数のエラーが発生する。 -KeepEmptyToGoToEndOfFile=ファイルの終わりまでのすべての行を処理するには、このフィールドを空のままにする。 +KeepEmptyToGoToEndOfFile=ファイルの終わりまでの全行を処理するには、このフィールドを空のままにする。 SelectPrimaryColumnsForUpdateAttempt=UPDATEインポートの主キーとして使用する列(s)を選択する UpdateNotYetSupportedForThisImport=このタイプのインポートでは更新はサポートされていない(挿入のみ) NoUpdateAttempt=更新は実行されず、挿入のみが実行された @@ -135,3 +135,6 @@ NbInsert=挿入された行数:%s NbUpdate=更新された行数:%s MultipleRecordFoundWithTheseFilters=これらのフィルタで複数のレコードが見つかった:%s StocksWithBatch=バッチ/シリアル番号のある製品の在庫と場所(倉庫) +WarningFirstImportedLine=最初の行(s)は、現在の選択ではインポートされない +NotUsedFields=使用されていないデータベースのフィールド +SelectImportFieldsSource = 各選択ボックスのフィールドを選択して、インポートするソースファイルフィールドとデータベース内のターゲットフィールドを選択するか、事前定義されたインポートプロファイルを選択する。 diff --git a/htdocs/langs/ja_JP/externalsite.lang b/htdocs/langs/ja_JP/externalsite.lang deleted file mode 100644 index 8683fb033fb..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 ffdb542f460..dec4b487e60 100644 --- a/htdocs/langs/ja_JP/holiday.lang +++ b/htdocs/langs/ja_JP/holiday.lang @@ -8,14 +8,14 @@ NotActiveModCP=このページを表示するには、モジュールLeaveを有 AddCP=休暇申請をする DateDebCP=開始日 DateFinCP=終了日 -DraftCP=ドラフト +DraftCP=下書き ToReviewCP=承認待ち ApprovedCP=承認済 CancelCP=キャンセル RefuseCP=拒否 ValidatorCP=承認者 ListeCP=休暇のリスト -Leave=休暇願 +Leave=休暇申請 LeaveId=IDを残す ReviewedByCP=によって承認される UserID=ユーザID @@ -30,12 +30,12 @@ MenuConfCP=休暇のバランス SoldeCPUser=残額(日数) %s ErrorEndDateCP=開始日よりも大きい終了日を選択する必要がある。 ErrorSQLCreateCP=作成中にSQLエラーが発生した: -ErrorIDFicheCP=エラーが発生した。脱退リクエストは存在しない。 +ErrorIDFicheCP=エラーが発生した。休暇申請は存在しない。 ReturnCP=前のページに戻る ErrorUserViewCP=この休暇申請を読込むことは許可されていない。 InfosWorkflowCP=情報ワークフロー RequestByCP=に要求された -TitreRequestCP=休暇願 +TitreRequestCP=休暇申請 TypeOfLeaveId=休暇IDの種類 TypeOfLeaveCode=休暇コードの種類 TypeOfLeaveLabel=休暇ラベルの種類 @@ -50,7 +50,7 @@ EditCP=編集 DeleteCP=削除 ActionRefuseCP=却下 ActionCancelCP=キャンセル -StatutCP=ステータス +StatutCP=状態 TitleDeleteCP=休暇申請を削除する ConfirmDeleteCP=この休暇申請の削除を確定するか? ErrorCantDeleteCP=エラー この休暇申請を削除する権利がない。 @@ -66,7 +66,7 @@ TitleToValidCP=休暇申請を送信する ConfirmToValidCP=休暇申請を送信してもよいか? TitleRefuseCP=休暇申請を拒否する ConfirmRefuseCP=休暇申請を拒否してもよいか? -NoMotifRefuseCP=リクエストを拒否する理由を選択する必要がある。 +NoMotifRefuseCP=要求を拒否する理由を選択する必要がある。 TitleCancelCP=休暇申請をキャンセルする ConfirmCancelCP=休暇申請をキャンセルしてもよいか? DetailRefusCP=拒否の理由 @@ -80,23 +80,23 @@ UserCP=ユーザ ErrorAddEventToUserCP=例外休暇の追加中にエラーが発生した。 AddEventToUserOkCP=特別休暇の追加が完了した。 MenuLogCP=変更ログを表示する -LogCP="Balance of Leave" に加えられたすべての更新ログ +LogCP="Balance of Leave" に加えられた全更新ログ ActionByCP=更新済の原因 UserUpdateCP=更新済の対象 PrevSoldeCP=以前のバランス NewSoldeCP=ニューバランス -alreadyCPexist=この期間はすでに休暇申請が行われている。 +alreadyCPexist=この期間は既に休暇申請が行われている。 FirstDayOfHoliday=休暇申請の開始日 LastDayOfHoliday=休暇申請の終了日 BoxTitleLastLeaveRequests=最新の%s変更された休暇申請 HolidaysMonthlyUpdate=毎月の更新 ManualUpdate=手動更新 -HolidaysCancelation=リクエストのキャンセルを残す +HolidaysCancelation=休暇申請のキャンセルを残す EmployeeLastname=従業員の姓 EmployeeFirstname=従業員の名 TypeWasDisabledOrRemoved=休暇タイプ(id %s)が無効化または削除された LastHolidays=最新の%s休暇申請 -AllHolidays=すべての休暇申請 +AllHolidays=全休暇申請 HalfDay=半日 NotTheAssignedApprover=あなたは割り当てられた承認者ではない LEAVE_PAID=有給休暇 @@ -112,28 +112,28 @@ Module27130Desc= 休暇申請の管理 ErrorMailNotSend=メールの送信中にエラーが発生した: NoticePeriod=通知期間 #Messages -HolidaysToValidate=休暇申請を検証する -HolidaysToValidateBody=以下は検証するための休暇申請 +HolidaysToValidate=休暇申請を検証 +HolidaysToValidateBody=以下は検証すべき休暇申請 HolidaysToValidateDelay=この休暇申請は、%s日未満の期間内に行われる。 HolidaysToValidateAlertSolde=この休暇申請を行ったユーザには、十分な利用可能日がない。 HolidaysValidated=検証済の休暇申請 -HolidaysValidatedBody=%sから%sへの休暇申請が検証された。 +HolidaysValidatedBody=%sから%sへの休暇申請は検証済。 HolidaysRefused=要求は拒否された HolidaysRefusedBody=%sから%sへの休暇申請は、次の理由で拒否された。 -HolidaysCanceled=取り消されたリクエスト +HolidaysCanceled=取り消された休暇申請 HolidaysCanceledBody=%sから%sへの休暇申請はキャンセルされた。 -FollowedByACounter=1:このタイプの休暇にはカウンタの追随が必要。カウンタは手動または自動でインクリメントされ、休暇要求が検証されると、カウンタはデクリメントされる。
    0:カウンタに追随していない。 +FollowedByACounter=1:このタイプの休暇にはカウンタの追随が必要。カウンタは手動または自動でインクリメントされ、休暇休暇申請が検証済されると、カウンタはデクリメントされる。
    0:カウンタに追随していない。 NoLeaveWithCounterDefined=カウンタが続く必要がある定義された休暇タイプはない GoIntoDictionaryHolidayTypes=ホーム-設定-辞書-休暇の種類に移動して、さまざまな種類の葉を設定する。 HolidaySetup=モジュールLeaveの設定 -HolidaysNumberingModules=休暇申請の番号付けモデル +HolidaysNumberingModules=休暇申請採番モデル TemplatePDFHolidays=休暇申請用テンプレートPDF FreeLegalTextOnHolidays=PDFのフリーテキスト -WatermarkOnDraftHolidayCards=ドラフト休暇リクエストの透かし +WatermarkOnDraftHolidayCards=下書き休暇休暇申請の透かし 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=リクエスト%sは下書きのままとし、取消済や拒否済のものは削除すること +BlockHolidayIfNegative=残高がマイナスの場合はブロック +LeaveRequestCreationBlockedBecauseBalanceIsNegative=残高がマイナスのため、休暇申請作成はブロックされた +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=休暇申請%sは下書きのままとし、取消済や拒否済のものは削除すること diff --git a/htdocs/langs/ja_JP/hrm.lang b/htdocs/langs/ja_JP/hrm.lang index 466654da6a7..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 @@ -34,7 +34,7 @@ Skilldets=このスキルのランクのリスト Skilldet=スキルレベル rank=ランク ErrNoSkillSelected=スキルが選択されていない -ErrSkillAlreadyAdded=このスキルはすでにリストにある +ErrSkillAlreadyAdded=このスキルは既にリストにある SkillHasNoLines=このスキルには行がない skill=スキル Skills=スキル @@ -43,7 +43,7 @@ EmployeeSkillsUpdated=従業員のスキルは更新済(従業員カードの Eval=評価 Evals=評価 NewEval=新しい評価 -ValidateEvaluation=評価を検証する +ValidateEvaluation=評価を検証 ConfirmValidateEvaluation=参照%s を使用してこの評価を検証してもよいか? EvaluationCard=評価カード RequiredRank=この仕事に必要なランク @@ -51,31 +51,42 @@ EmployeeRank=このスキルの従業員ランク EmployeePosition=従業員の役職 EmployeePositions=従業員の役職s EmployeesInThisPosition=この役職の従業員 -group1ToCompare=分析するユーザーグループ -group2ToCompare=比較のための2番目のユーザーグループ +group1ToCompare=分析するユーザグループ +group2ToCompare=比較のための2番目のユーザグループ OrJobToCompare=仕事のスキル要件と比較する difference=違い -CompetenceAcquiredByOneOrMore=1人以上のユーザーによって取得されたが、2番目のコンパレータによって要求されていない能力 +CompetenceAcquiredByOneOrMore=1人以上のユーザによって取得されたが、2番目のコンパレータによって要求されていない能力 MaxlevelGreaterThan=要求されたレベルよりも大きい最大レベル MaxLevelEqualTo=その需要に等しい最大レベル MaxLevelLowerThan=その需要よりも低い最大レベル MaxlevelGreaterThanShort=要求されたレベルよりも高い従業員レベル MaxLevelEqualToShort=従業員レベルはその需要に等しい MaxLevelLowerThanShort=その需要よりも低い従業員レベル -SkillNotAcquired=すべてのユーザーが習得したわけではなく、2番目のコンパレータから要求されたスキル +SkillNotAcquired=全ユーザが習得したわけではなく、2番目のコンパレータから要求されたスキル legend=凡例 TypeSkill=スキルタイプ AddSkill=仕事にスキルを追加する RequiredSkills=この仕事に必要なスキル -UserRank=ユーザーランク +UserRank=ユーザランク SkillList=スキルリスト SaveRank=ランクを保存 -knowHow=ノーハウ -HowToBe=なる方法 -knowledge=知識 +TypeKnowHow=ノーハウ +TypeHowToBe=あるべき姿 +TypeKnowledge=知識 AbandonmentComment=放棄コメント DateLastEval=最終評価日 NoEval=この従業員の評価は行われていない -HowManyUserWithThisMaxNote=このランクのユーザー数 +HowManyUserWithThisMaxNote=このランクのユーザ数 HighestRank=最高ランク SkillComparison=スキル比較 +ActionsOnJob=この仕事のイベント +VacantPosition=求人 +VacantCheckboxHelper=このオプションをチェックすると、埋められていないポジション(求人)が表示される +SaveAddSkill = 追加されたスキル(s) +SaveLevelSkill = 保存されたスキル(s)レベル +DeleteSkill = スキルが削除された +SkillsExtraFields=追加属性(コンピテンシー) +JobsExtraFields=追加属性(求人情報) +EvaluationsExtraFields=追加属性(評価) +NeedBusinessTravels=出張が必要 +NoDescription=説明なし diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang index 06174cca6a6..6983572ab28 100644 --- a/htdocs/langs/ja_JP/install.lang +++ b/htdocs/langs/ja_JP/install.lang @@ -4,10 +4,11 @@ MiscellaneousChecks=前提条件チェック ConfFileExists=コンフィギュレーションファイル%sが存在している 。 ConfFileDoesNotExistsAndCouldNotBeCreated=構成ファイル%s が存在せず、作成できなかった。 ConfFileCouldBeCreated=設定ファイルの%sを作成できる。 -ConfFileIsNotWritable=構成ファイル%sは書き込み可能ではありません。権限を確認すること。最初のインストールでは、Webサーバーが構成プロセス中にこのファイルに書き込める必要がある(たとえば、OSのようなUnixでは「chmod666」)。 +ConfFileIsNotWritable=構成ファイル%sは書き込み可能ではない。権限を確認すること。最初のインストールでは、Webサーバーが構成プロセス中にこのファイルに書き込める必要がある(たとえば、OSのようなUnixでは「chmod666」)。 ConfFileIsWritable=コンフィギュレーションファイルの%sは書き込み可能。 ConfFileMustBeAFileNotADir=構成ファイル%s は、ディレクトリーではなくファイルでなければならない。 ConfFileReload=構成ファイルからパラメーターを再ロードする。 +NoReadableConfFileSoStartInstall=構成ファイルconf/ conf.php が存在しないか、読み取り可能ではない。インストールプロセスを実行して、初期化を試みる。 PHPSupportPOSTGETOk=このPHPは、変数POSTとGETをサポートする。 PHPSupportPOSTGETKo=PHP設定が変数POSTやGETをサポートしない可能性がある。 php.iniのパラメーターvariables_orderを確認すること。 PHPSupportSessions=このPHPは、セッションをサポートする。 @@ -16,22 +17,16 @@ PHPMemoryOK=PHPの最大のセッションメモリは%sに設定され PHPMemoryTooLow=PHPの最大セッションメモリは%sバイトに設定されている。これは低すぎる。 php.ini を変更して、 memory_limitパラメーターを少なくとも%sバイトに設定する。 Recheck=より詳細なテストについては、ここをクリックすること ErrorPHPDoesNotSupportSessions=PHPインストールはセッションをサポートしない。この機能は、Dolibarrを機能させるために必要。 PHPの設定とセッションディレクトリの権限を確認すること。 -ErrorPHPDoesNotSupportGD=PHPインストールは、GDグラフィカル関数をサポートしない。グラフは利用できない。 -ErrorPHPDoesNotSupportCurl=お使いのPHPインストールはCurlをサポートしない。 -ErrorPHPDoesNotSupportCalendar=PHPインストールは、phpカレンダー拡張機能をサポートしない。 -ErrorPHPDoesNotSupportUTF8=PHPインストールはUTF8関数をサポートしない。 Dolibarrは正しく機能しない。 Dolibarrをインストールする前にこれを解決すること。 -ErrorPHPDoesNotSupportIntl=PHPインストールはIntl関数をサポートしない。 -ErrorPHPDoesNotSupportMbstring=このPHPインストールはmbstring関数をサポートしない。 -ErrorPHPDoesNotSupportxDebug=PHPインストールは、拡張デバッグ機能をサポートしない。 ErrorPHPDoesNotSupport=PHPインストールは、%s関数をサポートしない。 -ErrorDirDoesNotExists=%sディレクトリが存在しません。 +ErrorDirDoesNotExists=%sディレクトリが存在しない。 ErrorGoBackAndCorrectParameters=戻ってパラメータを確認/修正すること。 ErrorWrongValueForParameter=あなたは、パラメータ '%s' に間違った値を入力した可能性がある。 ErrorFailedToCreateDatabase=データベース %s を作成できなかった。 ErrorFailedToConnectToDatabase=データベース %s への接続に失敗した。 ErrorDatabaseVersionTooLow=データベースのバージョン (%s) が古すぎる。 バージョン %s 以降が必要。 -ErrorPHPVersionTooLow=PHPのバージョンが古すぎる。バージョン%sが必要。 -ErrorConnectedButDatabaseNotFound=サーバーへの接続は成功したが、データベース '%s'が見つかりません。 +ErrorPHPVersionTooLow=PHPバージョンが古すぎ。バージョン%s以降が必要。 +ErrorPHPVersionTooHigh=PHPバージョンが高すぎる。バージョン%s以下が必要。 +ErrorConnectedButDatabaseNotFound=サーバーへの接続は成功したが、データベース '%s'が見つからない。 ErrorDatabaseAlreadyExists=データベース %s は既に存在する。 IfDatabaseNotExistsGoBackAndUncheckCreate=データベースが存在しない場合は、戻って "データベースの作成" オプションをオンにする。 IfDatabaseExistsGoBackAndCheckCreate=データベースが既に存在する場合は、戻ってチェックを外してオプションの "データベースの作成" を参照すること。 @@ -49,7 +44,7 @@ DatabaseType=データベース種別 DriverType=ドライバ種別 Server=サーバー ServerAddressDescription=データベースサーバーの名前またはIP住所。データベースサーバーがWebサーバーと同じサーバーでホストされている場合、通常は「localhost」。 -ServerPortDescription=データベース・サーバーのポート。不明な場合は空欄のままにしてください。 +ServerPortDescription=データベース・サーバーのポート。不明な場合は空欄のままにすること。 DatabaseServer=データベース·サーバー DatabaseName=データベース名 DatabasePrefix=データベースのテーブル接頭辞 @@ -61,7 +56,7 @@ CreateDatabase=データベースを作成する。 CreateUser=Dolibarrデータベースでユーザアカウントを作成するか、ユーザアカウントのアクセス許可を付与する DatabaseSuperUserAccess=データベースサーバ - スーパーユーザのアクセス CheckToCreateDatabase=データベースがまだ存在しないため、作成する必要がある場合は、チェックボックスをオンにする。
    この場合、このページの下部にスーパーユーザアカウントのユーザ名とパスワードも入力する必要がある。 -CheckToCreateUser=データベースのユーザーアカウントがまだ存在しないため作成する必要がある場合、または
    ユーザーアカウントは存在するがデータベースが存在しておらず、アクセス権限を付与する必要がある場合
    はチェックを入れて下さい。
    この場合、ページ下部のフォームに上位管理者アカウントのユーザー名とパスワード入力する必要がある。このボックスがチェックされていない場合、データベースの所有者とパスワードがすでに存在していることが必須。 +CheckToCreateUser=データベースのユーザアカウントがまだ存在しないため作成する必要がある場合、または
    ユーザアカウントは存在するがデータベースが存在しておらず、アクセス権限を付与する必要がある場合
    はチェックを入れて下さい。
    この場合、ページ下部のフォームに上位管理者アカウントのユーザ名とパスワード入力する必要がある。このボックスがチェックされていない場合、データベースの所有者とパスワードが既に存在していることが必須。 DatabaseRootLoginDescription=スーパーユーザアカウント名(新規データベースまたは新規ユーザを作成するため)。データベースまたはその所有者がまだ存在しない場合は必須。 KeepEmptyIfNoPassword=スーパーユーザにパスワードがない場合は空のままにする(非推奨) SaveConfigurationFile=パラメータをに保存する @@ -80,20 +75,20 @@ PleaseTypeALogin=ログインを入力すること! PasswordsMismatch=パスワードが異なる。もう一度お試しください。 SetupEnd=設定の終了 SystemIsInstalled=インストールが完了しました。 -SystemIsUpgraded=Dolibarrが正常にアップグレードされました。 +SystemIsUpgraded=Dolibarrが正常にアップグレードされた。 YouNeedToPersonalizeSetup=Dolibarrをご自身のニーズに合わせて設定する必要がある(外観、機能など)。設定を実行するには以下のリンクをクリックして下さい。 AdminLoginCreatedSuccessfuly=Dolibarr 管理者ログイン '%s' の作成が成功した。 GoToDolibarr=Dolibarrに行く GoToSetupArea=Dolibarr(設定の領域)に移動する -MigrationNotFinished=データベースのバージョンが完全に最新ではありません。アップグレードプロセスを再実行すること。 +MigrationNotFinished=データベースのバージョンが完全に最新ではない。アップグレードプロセスを再実行すること。 GoToUpgradePage=アップグレードページへ再度行く WithNoSlashAtTheEnd=末尾のスラッシュ"/"なし DirectoryRecommendation= 重要:Webページの外部にあるディレクトリを使用する必要がある(したがって、前のパラメータのサブディレクトリは使用しないこと)。 -LoginAlreadyExists=すでに存在する +LoginAlreadyExists=既に存在する DolibarrAdminLogin=Dolibarr 管理者ログイン -AdminLoginAlreadyExists=Dolibarr管理者アカウント ' %s'は既に存在する。別のものを作成したい場合は戻ってください。 +AdminLoginAlreadyExists=Dolibarr管理者アカウント ' %s'は既に存在する。別のものを作成したい場合は戻ること。 FailedToCreateAdminLogin=Dolibarr管理者アカウントの作成に失敗した。 -WarningRemoveInstallDir=警告:セキュリティ上の理由から、インストールツールの不意または悪意ある再使用を防ぐため、インストールまたはアップグレードの完了後に install.lockというファイルをドキュメントディレクトリにアップロードしてください。 +WarningRemoveInstallDir=警告:セキュリティ上の理由から、インストールツールの不意または悪意ある再使用を防ぐため、インストールまたはアップグレードの完了後に install.lockというファイルをドキュメントディレクトリにアップロードすること。 FunctionNotAvailableInThisPHP=このPHPでは使用できない ChoosedMigrateScript=移行スクリプトを選択する。 DataMigration=データベースの移行(データ) @@ -113,10 +108,10 @@ DatabaseVersion=データベースのバージョン ServerVersion=データベースサーバのバージョン YouMustCreateItAndAllowServerToWrite=このディレクトリを作成し、そこに書き込むようにWebサーバを許可する必要がある。 DBSortingCollation=文字のソート順 -YouAskDatabaseCreationSoDolibarrNeedToConnect=データベース %sの作成を選択したが、このために、Dolibarrはサーバー %s にスーパーユーザー%s 権限で接続する必要がある。 -YouAskLoginCreationSoDolibarrNeedToConnect=データベースユーザ %s の作成を選択したが、このために、Dolibarrはサーバー %s にスーパーユーザー %s 権限で接続する必要がある。 +YouAskDatabaseCreationSoDolibarrNeedToConnect=データベース %sの作成を選択したが、このために、Dolibarrはサーバー %s にスーパーユーザ%s 権限で接続する必要がある。 +YouAskLoginCreationSoDolibarrNeedToConnect=データベースユーザ %s の作成を選択したが、このために、Dolibarrはサーバー %s にスーパーユーザ %s 権限で接続する必要がある。 BecauseConnectionFailedParametersMayBeWrong=データベース接続に失敗した。ホストまたはスーパーユーザのパラメーターが間違っている必要がある。 -OrphelinsPaymentsDetectedByMethod=メソッド%sによって検出された孤児の支払い +OrphelinsPaymentsDetectedByMethod=メソッド%sによって検出された孤児の支払 RemoveItManuallyAndPressF5ToContinue=手動で削除してF5を押して続行。 FieldRenamed=フィールド名称変更済 IfLoginDoesNotExistsCheckCreateUser=ユーザがまだ存在しない場合は、 "ユーザの作成" オプションをオンにする必要がある @@ -134,40 +129,40 @@ MigrationCustomerOrderShipping=販売受注保管庫のための出荷を移行 MigrationShippingDelivery=出荷の保管庫をアップグレード MigrationShippingDelivery2=出荷 2 の保管庫をアップグレード MigrationFinished=マイグレーションが終了した -LastStepDesc= 最後のステップ:Dolibarrへの接続に使用するログインとパスワードを設定する。 他のすべてのユーザアカウント・追加のユーザアカウントを管理するためのマスターアカウントであるため、紛失しないようにして下さい。 -ActivateModule=モジュール%sをアクティブにする +LastStepDesc= 最後のステップ:Dolibarrへの接続に使用するログインとパスワードを設定する。 他の全ユーザアカウント・追加のユーザアカウントを管理するためのマスターアカウントであるため、紛失しないようにして下さい。 +ActivateModule=モジュール%sを有効化する ShowEditTechnicalParameters=高度なパラメータを表示/編集するには、ここをクリックすること (エキスパートモード) WarningUpgrade=警告:\n最初にデータベースバックアップを実行したか?\nこれを強くお勧めする。このプロセス中にデータが失われる可能性があるため(たとえば、mysqlバージョン5.5.40 / 41/42/43のバグが原因)、移行を開始する前にデータベースの完全なダンプを取得することが不可欠。\n\n "OK" をクリックして移行プロセスを開始する... -ErrorDatabaseVersionForbiddenForMigration=データベースのバージョンは%s。重大なバグがあり、移行プロセスで必要になるなど、データベースに構造的な変更を加えるとデータが失われる可能性がある。彼の理由により、データベースをレイヤー(パッチ)バージョンにアップグレードするまで移行は許可されません(既知のバグのあるバージョンのリスト:%s) -KeepDefaultValuesWamp=DoliWampのDolibarr設定ウィザードを使用したため、ここで提案されている値はすでに最適化されている。自分が何をするのかがわかっている場合にのみ、それらを変更すること。 -KeepDefaultValuesDeb=Linuxパッケージ(Ubuntu、Debian、Fedora ...)のDolibarr設定ウィザードを使用したため、ここで提案する値はすでに最適化されている。作成するデータベース所有者のパスワードのみを入力する必要がある。自分が何をするかがわかっている場合にのみ、他のパラメータを変更すること。 -KeepDefaultValuesMamp=DoliMampのDolibarr設定ウィザードを使用したため、ここで提案されている値はすでに最適化されている。自分が何をするのかがわかっている場合にのみ、それらを変更すること。 -KeepDefaultValuesProxmox=Proxmox仮想アプライアンスからDolibarr設定ウィザードを使用したため、ここで提案されている値はすでに最適化されている。自分が何をするのかがわかっている場合にのみ、それらを変更すること。 +ErrorDatabaseVersionForbiddenForMigration=データベースのバージョンは%s。重大なバグがあり、移行プロセスで必要になるなど、データベースに構造的な変更を加えるとデータが失われる可能性がある。彼の理由により、データベースをレイヤー(パッチ)バージョンにアップグレードするまで移行は許可されない(既知のバグのあるバージョンのリスト:%s) +KeepDefaultValuesWamp=DoliWampのDolibarr設定ウィザードを使用したため、ここで提案されている値は既に最適化されている。自分が何をするのかがわかっている場合にのみ、それらを変更すること。 +KeepDefaultValuesDeb=Linuxパッケージ(Ubuntu、Debian、Fedora ...)のDolibarr設定ウィザードを使用したため、ここで提案する値は既に最適化されている。作成するデータベース所有者のパスワードのみを入力する必要がある。自分が何をするかがわかっている場合にのみ、他のパラメータを変更すること。 +KeepDefaultValuesMamp=DoliMampのDolibarr設定ウィザードを使用したため、ここで提案されている値は既に最適化されている。自分が何をするのかがわかっている場合にのみ、それらを変更すること。 +KeepDefaultValuesProxmox=Proxmox仮想アプライアンスからDolibarr設定ウィザードを使用したため、ここで提案されている値は既に最適化されている。自分が何をするのかがわかっている場合にのみ、それらを変更すること。 UpgradeExternalModule=外部モジュールの専用アップグレードプロセスを実行する SetAtLeastOneOptionAsUrlParameter=URLのパラメータとして少なくとも1つのオプションを設定する。例: '... repair.php?standard = Confirmed' -NothingToDelete=クリーン/削除するものはありません -NothingToDo=何もしません +NothingToDelete=クリーン/削除するものはない +NothingToDo=することがない ######### # upgrade MigrationFixData=非正規化データを修正 MigrationOrder=顧客の注文のためのデータ移行 MigrationSupplierOrder=ベンダーの注文のためのデータ移行 -MigrationProposal=商用の提案のためのデータ移行 +MigrationProposal=商取引提案のためのデータ移行 MigrationInvoice=顧客の請求書のデータ移行 MigrationContract=契約のためのデータ移行 MigrationSuccessfullUpdate=成功したアップグレード MigrationUpdateFailed=失敗したアップグレード·プロセス MigrationRelationshipTables=関係テーブル (%s) のデータ移行 MigrationPaymentsUpdate=支払データ補正 -MigrationPaymentsNumberToUpdate=更新する%s支払い(秒) -MigrationProcessPaymentUpdate=更新の支払い(秒)%s +MigrationPaymentsNumberToUpdate=更新する%s支払(秒) +MigrationProcessPaymentUpdate=更新の支払(秒)%s MigrationPaymentsNothingToUpdate=これ以上実行すべきことはない -MigrationPaymentsNothingUpdatable=訂正することができるこれ以上の支払いなし +MigrationPaymentsNothingUpdatable=訂正することができるこれ以上の支払なし MigrationContractsUpdate=契約データの補正 MigrationContractsNumberToUpdate=更新する%s契約(複数可) MigrationContractsLineCreation=契約参照 %s の契約行を作成する。 MigrationContractsNothingToUpdate=これ以上実行すべきことsはない -MigrationContractsFieldDontExist=フィールドfk_factureはもう存在しません。何もすることはありません。 +MigrationContractsFieldDontExist=フィールドfk_factureはもう存在しない。何もすることはない。 MigrationContractsEmptyDatesUpdate=契約空の日付の訂正 MigrationContractsEmptyDatesUpdateSuccess=契約の空の日付の修正が正常に実行された MigrationContractsEmptyDatesNothingToUpdate=修正する契約空の日ない @@ -184,7 +179,7 @@ MigrationReopenThisContract=契約%sを再度開く MigrationReopenedContractsNumber=%s契約の変更 MigrationReopeningContractsNothingToUpdate=開ける終結契約はない MigrationBankTransfertsUpdate=銀行取引と銀行振込との間のリンクを更新 -MigrationBankTransfertsNothingToUpdate=すべてのリンクが最新のものである +MigrationBankTransfertsNothingToUpdate=全リンクが最新のものである MigrationShipmentOrderMatching=Sendings領収書の更新 MigrationDeliveryOrderMatching=配信確認メッセージの更新 MigrationDeliveryDetail=配信のアップデート @@ -195,7 +190,7 @@ MigrationProjectTaskActors=テーブルllx_projet_task_actorsのデータ移行 MigrationProjectUserResp=llx_projetのデータマイグレーション分野fk_user_resp llx_element_contactへ MigrationProjectTaskTime=更新時間は秒単位で過ごした MigrationActioncommElement=アクション上でデータを更新する -MigrationPaymentMode=支払い種別のデータ移行 +MigrationPaymentMode=支払種別のデータ移行 MigrationCategorieAssociation=カテゴリの移行 MigrationEvents=イベントの所有者を割り当てテーブルに追加するためのイベントの移行 MigrationEventsContact=イベントの連絡先を割り当てテーブルに追加するためのイベントの移行 diff --git a/htdocs/langs/ja_JP/interventions.lang b/htdocs/langs/ja_JP/interventions.lang index cc33484227e..4649c3ccf8f 100644 --- a/htdocs/langs/ja_JP/interventions.lang +++ b/htdocs/langs/ja_JP/interventions.lang @@ -8,8 +8,8 @@ ChangeIntoRepeatableIntervention=反復可能な出張への変更 ListOfInterventions=出張のリスト ActionsOnFicheInter=出張のアクション LastInterventions=最新の%s出張 -AllInterventions=すべての出張 -CreateDraftIntervention=ドラフトを作成 +AllInterventions=全出張 +CreateDraftIntervention=下書きを作成 InterventionContact=出張の接点 DeleteIntervention=出張を削除 ValidateIntervention=出張を検証 @@ -31,14 +31,14 @@ StatusInterInvoiced=請求 SendInterventionRef=出張の提出%s SendInterventionByMail=電子メールで出張を送信 InterventionCreatedInDolibarr=出張%sが作成された -InterventionValidatedInDolibarr=出張%sは、検証 +InterventionValidatedInDolibarr=出張%sは、検証済 InterventionModifiedInDolibarr=出張%sが変更された InterventionClassifiedBilledInDolibarr=請求済として設定された出張%s InterventionClassifiedUnbilledInDolibarr=出張%sが未請求として設定 InterventionSentByEMail=電子メールで送信された出張%s InterventionDeletedInDolibarr=出張%sが削除された InterventionsArea=出張エリア -DraftFichinter=ドラフト出張 +DraftFichinter=下書き出張 LastModifiedInterventions=最新の%s修正された出張 FichinterToProcess=処理 ための出張 TypeContact_fichinter_external_CUSTOMER=フォローアップ顧客との接触 @@ -55,7 +55,7 @@ InterId=出張ID InterRef=出張参照。 InterDateCreation=日付作成出張 InterDuration=期間出張 -InterStatus=ステータス出張 +InterStatus=状態出張 InterNote=出張に注意 InterLine=出張ライン InterLineId=ラインID出張 @@ -66,3 +66,5 @@ RepeatableIntervention=出張のテンプレート ToCreateAPredefinedIntervention=事前定義された出張または定期的な出張を作成 には、共通の出張を作成し、それを出張テンプレートに変換 ConfirmReopenIntervention=出張 %s を開いてよいか? GenerateInter=出張を生成する +FichinterNoContractLinked=出張%sは、リンクされた契約なしで作成された。 +ErrorFicheinterCompanyDoesNotExist=法人は存在しない。出張は作成されていない。 diff --git a/htdocs/langs/ja_JP/knowledgemanagement.lang b/htdocs/langs/ja_JP/knowledgemanagement.lang index 34bcc6ef39d..7a7e4d63afe 100644 --- a/htdocs/langs/ja_JP/knowledgemanagement.lang +++ b/htdocs/langs/ja_JP/knowledgemanagement.lang @@ -39,16 +39,16 @@ KnowledgeManagementAboutPage = 知識管理に関するページ KnowledgeManagementArea = 知識管理 MenuKnowledgeRecord = 知識ベース -ListKnowledgeRecord = 記事一覧 -NewKnowledgeRecord = 新しい記事 -ValidateReply = ソリューションを検証する -KnowledgeRecords = 記事 -KnowledgeRecord = 記事 -KnowledgeRecordExtraFields = 記事のエクストラフィールド +ListKnowledgeRecord = 項目一覧 +NewKnowledgeRecord = 新しい項目 +ValidateReply = ソリューションを検証 +KnowledgeRecords = 項目s +KnowledgeRecord = 項目 +KnowledgeRecordExtraFields = 項目のエクストラフィールド GroupOfTicket=チケットのグループ -YouCanLinkArticleToATicketCategory=記事をチケットグループにリンクできる(新規チケット認定時に記事が提案されるようになる) +YouCanLinkArticleToATicketCategory=記事をチケット グループにリンクできる(すると、記事はこのグループのすべてのチケットで強調表示される)。 SuggestedForTicketsInGroup=チケットに対して提案されるのは、グループが SetObsolete=廃止として設定 -ConfirmCloseKM=この記事の締めくくりが廃止されたことを確定するか? -ConfirmReopenKM=この記事をステータス「検証済み」に復元するか? +ConfirmCloseKM=この項目の締めくくりが廃止されたことを確定するか? +ConfirmReopenKM=この項目を状態「検証済」に復元するか? diff --git a/htdocs/langs/ja_JP/languages.lang b/htdocs/langs/ja_JP/languages.lang index 454daca8a75..b099dd63c48 100644 --- a/htdocs/langs/ja_JP/languages.lang +++ b/htdocs/langs/ja_JP/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=エチオピア語 Language_ar_AR=アラビア語 Language_ar_DZ=アラビア語(アルジェリア) Language_ar_EG=アラビア語(エジプト) +Language_ar_JO=アラビア語(ヨルダン) Language_ar_MA=アラビア語(モロッコ) Language_ar_SA=アラビア語 Language_ar_TN=アラビア語 (チュニジア) @@ -12,9 +13,11 @@ 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=ドイツ語 @@ -22,6 +25,7 @@ Language_de_AT=ドイツ語 (オーストリア) Language_de_CH=ドイツ語 (スイス) Language_el_GR=ギリシャ語 Language_el_CY=ギリシャ語 (キプロス) +Language_en_AE=英語(アラブ首長国連邦) Language_en_AU=英語 (オーストラリア) Language_en_CA=英語 (カナダ) Language_en_GB=英語 (イギリス) @@ -36,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=スペイン語(グアテマラ) @@ -83,18 +88,21 @@ 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=ポルトガル語(アンゴラ) +Language_pt_MZ=ポルトガル語(モザンビーク) Language_pt_BR=ポルトガル語 (ブラジル) Language_pt_PT=ポルトガル語 Language_ro_MD=ルーマニア語 (モルダビア) Language_ro_RO=ルーマニア語 Language_ru_RU=ロシア語 Language_ru_UA=ロシア語(ウクライナ) +Language_ta_IN=タミル語 Language_tg_TJ=タジク語 Language_tr_TR=トルコ語 Language_sl_SI=スロベニア語 @@ -106,6 +114,7 @@ Language_sr_RS=セルビア語 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/ja_JP/ldap.lang b/htdocs/langs/ja_JP/ldap.lang index 2b39d2066a2..0aae0e58c46 100644 --- a/htdocs/langs/ja_JP/ldap.lang +++ b/htdocs/langs/ja_JP/ldap.lang @@ -4,13 +4,13 @@ UserMustChangePassNextLogon=ユーザは、ドメイン%sにパスワードを LDAPInformationsForThisContact=この連絡先のLDAPデータベース内の情報 LDAPInformationsForThisUser=このユーザのLDAPデータベース内の情報 LDAPInformationsForThisGroup=このグループのLDAPデータベース内の情報 -LDAPInformationsForThisMember=このメンバーのLDAPデータベース内の情報 -LDAPInformationsForThisMemberType=このメンバータイプのLDAPデータベース内の情報 +LDAPInformationsForThisMember=この構成員のLDAPデータベース内での情報 +LDAPInformationsForThisMemberType=この構成員タイプのLDAPデータベース内の情報 LDAPAttributes=LDAP属性 LDAPCard=LDAPカード LDAPRecordNotFound=レコードは、LDAPデータベースに見つからなかった LDAPUsers=LDAPデータベース内のユーザ -LDAPFieldStatus=ステータス +LDAPFieldStatus=状態 LDAPFieldFirstSubscriptionDate=最初のサブスクリプションの日付 LDAPFieldFirstSubscriptionAmount=最初のサブスクリプションの金額 LDAPFieldLastSubscriptionDate=最後のサブスクリプションの日付 @@ -19,9 +19,13 @@ LDAPFieldSkype=Skype ID LDAPFieldSkypeExample=例: skypeName UserSynchronized=ユーザを同期した GroupSynchronized=グループを同期した -MemberSynchronized=メンバーを同期した -MemberTypeSynchronized=同期されたメンバータイプ +MemberSynchronized=構成員同期 +MemberTypeSynchronized=同期された構成員タイプ ContactSynchronized=連絡先を同期した ForceSynchronize=強制的に同期 Dolibarr -> LDAP ErrorFailedToReadLDAP=LDAPデータベースの読み込みに失敗した。 LDAPモジュールの設定とデータベースのアクセシビリティをチェックする。 PasswordOfUserInLDAP=LDAPのユーザのパスワード +LDAPPasswordHashType=パスワードハッシュタイプ +LDAPPasswordHashTypeExample=サーバーで使用されるパスワードハッシュのタイプ +SupportedForLDAPExportScriptOnly=LDAPエクスポートスクリプトでのみサポートされる +SupportedForLDAPImportScriptOnly=LDAPインポートスクリプトでのみサポートされる diff --git a/htdocs/langs/ja_JP/loan.lang b/htdocs/langs/ja_JP/loan.lang index fa97491403b..3cb194418ad 100644 --- a/htdocs/langs/ja_JP/loan.lang +++ b/htdocs/langs/ja_JP/loan.lang @@ -5,30 +5,30 @@ NewLoan=新規ローン ShowLoan=ローンを表示 PaymentLoan=ローンの支払 LoanPayment=ローンの支払 -ShowLoanPayment=ローンの支払いを表示する +ShowLoanPayment=ローンの支払を表示する LoanCapital=資本 Insurance=保険 Interest=興味 Nbterms=用語の数 Term=期間 -LoanAccountancyCapitalCode=会計科目資本 -LoanAccountancyInsuranceCode=会計科目保険 -LoanAccountancyInterestCode=会計科目利息 +LoanAccountancyCapitalCode=勘定科目資本 +LoanAccountancyInsuranceCode=勘定科目保険 +LoanAccountancyInterestCode=勘定科目利息 ConfirmDeleteLoan=このローンの削除を確定する LoanDeleted=ローンが正常に削除された ConfirmPayLoan=分類がこのローンを支払ったことを確定する -LoanPaid=ローン支払い +LoanPaid=ローン支払 ListLoanAssociatedProject=プロジェクトに関連するローンのリスト AddLoan=ローンを作成する FinancialCommitment=財政的コミットメント InterestAmount=興味 CapitalRemain=資本は残る -TermPaidAllreadyPaid = この期間はすでに支払われている -CantUseScheduleWithLoanStartedToPaid = 支払いが開始されたローンにスケジューラを使用できない +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/ja_JP/mailmanspip.lang b/htdocs/langs/ja_JP/mailmanspip.lang index 9191af58e84..33d3598ec21 100644 --- a/htdocs/langs/ja_JP/mailmanspip.lang +++ b/htdocs/langs/ja_JP/mailmanspip.lang @@ -10,18 +10,18 @@ SynchroSpipEnabled=Spipの更新が実行される DescADHERENT_MAILMAN_ADMINPW=Mailman管理者パスワード DescADHERENT_MAILMAN_URL=MailmanサブスクリプションのURL DescADHERENT_MAILMAN_UNSUB_URL=Mailmanのサブスクリプション解除のURL -DescADHERENT_MAILMAN_LISTS=新規メンバーの自動登録用のリスト(s)(コンマで区切る) +DescADHERENT_MAILMAN_LISTS=新規構成員の自動登録用のリスト(s)(コンマで区切る) SPIPTitle=SPIPコンテンツ管理システム DescADHERENT_SPIP_SERVEUR=SPIPサーバー DescADHERENT_SPIP_DB=SPIPデータベース名 DescADHERENT_SPIP_USER=SPIPデータベースログイン DescADHERENT_SPIP_PASS=SPIPデータベースのパスワード AddIntoSpip=SPIPに追加 -AddIntoSpipConfirmation=このメンバーをSPIPに追加してもよいか? -AddIntoSpipError=SPIPにユーザーを追加できませんでした +AddIntoSpipConfirmation=この構成員をSPIPに追加してもよいか? +AddIntoSpipError=SPIPにユーザを追加できない DeleteIntoSpip=SPIPから削除 -DeleteIntoSpipConfirmation=このメンバーをSPIPから削除してもよいか? -DeleteIntoSpipError=SPIPからのユーザーの抑制に失敗した +DeleteIntoSpipConfirmation=この構成員をSPIPから削除してもよいか? +DeleteIntoSpipError=SPIPからのユーザの抑制に失敗した SPIPConnectionFailed=SPIPへの接続に失敗した SuccessToAddToMailmanList=%sがメールマンリスト%sまたはSPIPデータベースに正常に追加された SuccessToRemoveToMailmanList=%sがメールマンリスト%sまたはSPIPデータベースから正常に削除された diff --git a/htdocs/langs/ja_JP/mails.lang b/htdocs/langs/ja_JP/mails.lang index 1df89aa640e..d3b4be716b5 100644 --- a/htdocs/langs/ja_JP/mails.lang +++ b/htdocs/langs/ja_JP/mails.lang @@ -32,15 +32,15 @@ PreviewMailing=電子メールで送信プレビュー CreateMailing=メール送信作成 TestMailing=テスト用の電子メール ValidMailing=有効なメール送信 -MailingStatusDraft=ドラフト -MailingStatusValidated=検証 +MailingStatusDraft=下書き +MailingStatusValidated=検証済 MailingStatusSent=送信 MailingStatusSentPartialy=部分的に送信 MailingStatusSentCompletely=完全に送信 MailingStatusError=エラーが発生 MailingStatusNotSent=送信されない MailSuccessfulySent=電子メール(%sから%sへ)の配信が正常に受け入れられた -MailingSuccessfullyValidated=Eメールは正常に検証された +MailingSuccessfullyValidated=Eメールは正常に検証済 MailUnsubcribe=登録を解除する MailingStatusNotContact=もう連絡しないこと MailingStatusReadAndUnsubscribe=読んで購読を解除する @@ -73,7 +73,7 @@ ActivateCheckReadKey=「開封確認」および「退会」機能に使用さ EMailSentToNRecipients=%s受信者に送信される電子メール。 EMailSentForNElements=%s要素に対して送信された電子メール。 XTargetsAdded= %s受信者がターゲットリストに追加された -OnlyPDFattachmentSupported=送信するオブジェクトのPDFドキュメントがすでに生成されている場合は、電子メールに添付される。そうでない場合、電子メールは送信されない(また、このバージョンでは、大量送信の添付ファイルとしてPDFドキュメントのみがサポートされていることに注意すること)。 +OnlyPDFattachmentSupported=送信するオブジェクトのPDFドキュメントが既に生成されている場合は、電子メールに添付される。そうでない場合、電子メールは送信されない(また、このバージョンでは、大量送信の添付ファイルとしてPDFドキュメントのみがサポートされていることに注意すること)。 AllRecipientSelected=選択された%sレコードの受信者(電子メールがわかっている場合)。 GroupEmails=グループメール OneEmailPerRecipient=受信者ごとに1つの電子メール(デフォルトでは、選択されたレコードごとに1つの電子メール) @@ -83,7 +83,7 @@ NbSelected=選択した番号 NbIgnored=無視された数 NbSent=送信番号 SentXXXmessages=%sメッセージ(s)が送信された。 -ConfirmUnvalidateEmailing=メール%s をドラフトステータスに変更してもよいか? +ConfirmUnvalidateEmailing=メール%s を下書き状態に変更してもよいか? MailingModuleDescContactsWithThirdpartyFilter=顧客フィルタとの接触 MailingModuleDescContactsByCompanyCategory=取引先カテゴリ別の連絡先 MailingModuleDescContactsByCategory=カテゴリ別の連絡先 @@ -93,7 +93,7 @@ MailingModuleDescEmailsFromUser=ユーザが入力したメール MailingModuleDescDolibarrUsers=メールを持っているユーザ MailingModuleDescThirdPartiesByCategories=取引先(カテゴリ別) SendingFromWebInterfaceIsNotAllowed=Webインターフェイスからの送信は許可されていない。 -EmailCollectorFilterDesc=メールを取得するには、すべてのフィルタが適合している必要がある +EmailCollectorFilterDesc=メールを取得するには、全フィルタが適合している必要がある # Libelle des modules de liste de destinataires mailing LineInFile=ファイル内の行%s @@ -103,11 +103,11 @@ MailingArea=EMailingsエリア LastMailings=最新の%sメール TargetsStatistics=ターゲットの統計情報 NbOfCompaniesContacts=企業のユニークなコンタクト -MailNoChangePossible=検証メール送信の受信者を変更することはできない +MailNoChangePossible=検証済メール送信の受信者を変更することはできない SearchAMailing=Searchメーリング SendMailing=メール送信送信 SentBy=によって送信され、 -MailingNeedCommand=メールの送信はコマンドラインから実行できる。サーバー管理者に次のコマンドを起動して、すべての受信者に電子メールを送信するように依頼すること。 +MailingNeedCommand=メールの送信はコマンドラインから実行できる。サーバー管理者に次のコマンドを起動して、全受信者に電子メールを送信するように依頼すること。 MailingNeedCommand2=ただし、セッションで送信するメールの最大数の値を持つパラメータのMAILING_LIMIT_SENDBYWEBを追加することによってそれらをオンラインで送信することができる。このため、ホーム - 設定 - その他 に行くこと。 ConfirmSendingEmailing=この画面から直接メールを送信したい場合は、ブラウザから今すぐメールを送信することを確定すること。 LimitSendingEmailing=注:Webインターフェースからの電子メールの送信は、セキュリティとタイムアウトの理由から数回行われる。各送信セッションで一度に %s受信者が実行される。 @@ -132,8 +132,8 @@ NoNotificationsWillBeSent=このイベントタイプと法人では、自動電 ANotificationsWillBeSent=1つの自動通知が電子メールで送信される SomeNotificationsWillBeSent=%s自動通知は電子メールで送信される AddNewNotification=新規自動電子メール通知を購読する(ターゲット/イベント) -ListOfActiveNotifications=自動電子メール通知のすべてのアクティブなサブスクリプション(ターゲット/イベント)のリスト -ListOfNotificationsDone=送信されたすべての自動電子メール通知のリスト +ListOfActiveNotifications=自動電子メール通知の全アクティブなサブスクリプション(ターゲット/イベント)のリスト +ListOfNotificationsDone=送信された全自動電子メール通知のリスト MailSendSetupIs=電子メール送信の構成は「%s」に設定されている。このモードは、大量の電子メールを送信するために使用することはできない。 MailSendSetupIs2=モード'%s'を使うには、まず、管理者アカウントを使用して、メニュー%sホーム - 設定 - メール %sに移動し、パラメーター'%s 'を変更する。このモードでは、インターネットサービスプロバイダーが提供するSMTPサーバーの設定に入り、大量電子メールの機能を使用できる。 MailSendSetupIs3=SMTPサーバーの設定方法について質問がある場合は、%sに問い合わせることができる。 @@ -143,7 +143,7 @@ UseFormatFileEmailToTarget=インポートされたファイルの形式は email; name; firstname; other
    の形式で文字列を入力する MailAdvTargetRecipients=受信者(高度な選択) AdvTgtTitle=入力フィールドに入力して、ターゲットとする取引先または連絡先/アドレスを事前に選択する -AdvTgtSearchTextHelp=ワイルドカードとして %% を使用。たとえば、jean, joe, jim のような全アイテムを探すには、 j%% を入力、値の区切り文字として ; を使用し、値の除外として ! を使用できる。たとえば jean;joe;jim%%;!jimo;!jima%% なら、すべての jean, joe と jim で始まる文字列の内で jimo でないものと jima で始まるものを除外したすべてを意味する。 +AdvTgtSearchTextHelp=ワイルドカードとして %% を使用。たとえば、jean, joe, jim のような全アイテムを探すには、 j%% を入力、値の区切り文字として ; を使用し、値の除外として ! を使用できる。たとえば jean;joe;jim%%;!jimo;!jima%% なら、全 jean, joe と jim で始まる文字列の内で jimo でないものと jima で始まるものを除外したすべてを意味する。 AdvTgtSearchIntHelp=間隔を使用してintまたはfloat値を選択する AdvTgtMinVal=最小値 AdvTgtMaxVal=最大値 @@ -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 f085068bfda..f55325b6daa 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=. @@ -31,8 +37,8 @@ Translation=翻訳 CurrentTimeZone=PHP(サーバー)のタイムゾーン EmptySearchString=空文字以外の検索候補を入力 EnterADateCriteria=日付基準を入力する -NoRecordFound=レコードが見つかりませんでした -NoRecordDeleted=削除されたレコードはありません +NoRecordFound=レコードが見つからない +NoRecordDeleted=削除されたレコードはない NotEnoughDataYet=データが不十分 NoError=エラーなし Error=エラー @@ -50,23 +56,23 @@ ErrorLogoFileNotFound=ロゴファイル '%s' が見つからず ErrorGoToGlobalSetup=修正するには、'法人/組織' 設定へ ErrorGoToModuleSetup=修正するには、モジュールの設定へ ErrorFailedToSendMail=メール送信に失敗 (送信者= %s、受信機= %s) -ErrorFileNotUploaded=ファイルがアップロードされていないでした。最大許容超えないようにサイズを確認し、その空き領域がディスク上で使用可能であり、すでにこのディレクトリ内の同じ名前のファイルが存在しないことに注意してください。 +ErrorFileNotUploaded=ファイルがアップロードされていない。最大許容超えないようにサイズを確認し、その空き領域がディスク上で使用可能であり、既にこのディレクトリ内の同じ名前のファイルが存在しないことに注意すること。 ErrorInternalErrorDetected=エラーを検出 ErrorWrongHostParameter=ホストパラメータに誤り ErrorYourCountryIsNotDefined=あなたの国は定義されていない。ホーム-設定-編集に移動し、フォームを再度投稿する。 ErrorRecordIsUsedByChild=このレコードの削除に失敗しました。このレコードは、少なくとも1つの子レコードによって使用される。 ErrorWrongValue=値に誤り ErrorWrongValueForParameterX=パラメータ%s に対する値に誤り -ErrorNoRequestInError=リクエストはエラーせず +ErrorNoRequestInError=エラー要求はなし ErrorServiceUnavailableTryLater=サービスは少しの間、使用できず。後でもう一度お試しを。 ErrorDuplicateField=ユニークフィールドの値が重複 -ErrorSomeErrorWereFoundRollbackIsDone=いくつかのエラーが見つかりました。変更はロールバックされました。 +ErrorSomeErrorWereFoundRollbackIsDone=いくつかのエラーが見つかりました。変更はロールバックされた。 ErrorConfigParameterNotDefined=パラメータ%s は、Dolibarr構成ファイル conf.phpで定義されていない。 -ErrorCantLoadUserFromDolibarrDatabase=Dolibarrデータベース内のユーザーの%sを見つけることができませんでした。 +ErrorCantLoadUserFromDolibarrDatabase=Dolibarrデータベース内のユーザの%sを見つけることができない。 ErrorNoVATRateDefinedForSellerCountry=エラー、国%s 'に対して定義されていないのVAT率。 -ErrorNoSocialContributionForSellerCountry=エラー、国 '%s'に定義された社会/財政税タイプがありません。 +ErrorNoSocialContributionForSellerCountry=エラー、国 '%s'に定義された社会/財政税タイプがない。 ErrorFailedToSaveFile=エラー、ファイルを保存に失敗しました。 -ErrorCannotAddThisParentWarehouse=すでに既存の倉庫の子である親倉庫を追加しようとしている +ErrorCannotAddThisParentWarehouse=既に既存の倉庫の子である親倉庫を追加しようとしている FieldCannotBeNegative=フィールド "%s" は負の値にはできない MaxNbOfRecordPerPage=パージ当たりの最大レコード数 NotAuthorized=その実行には権限が不足 @@ -78,13 +84,13 @@ ClickHere=ここをクリック Here=ここ Apply=適用 BackgroundColorByDefault=デフォルトの背景色 -FileRenamed=ファイルの名前が正常に変更されました -FileGenerated=ファイルは正常に生成されました -FileSaved=ファイルは正常に保存されました -FileUploaded=ファイルが正常にアップロードされました -FileTransferComplete=ファイルが正常にアップロードされました -FilesDeleted=ファイルが正常に削除されました -FileWasNotUploaded=ファイルが添付ファイルが選択されているが、まだアップロードされませんでした。このために "添付ファイル"をクリックしてください。 +FileRenamed=ファイルの名前が正常に変更された +FileGenerated=ファイルは正常に生成された +FileSaved=ファイルは正常に保存された +FileUploaded=ファイルが正常にアップロードされた +FileTransferComplete=ファイル(s)が正常にアップロードされた +FilesDeleted=ファイル(s)が正常に削除された +FileWasNotUploaded=ファイルが添付ファイルが選択されているが、まだアップロードさない。このために "添付ファイル"をクリックすること。 NbOfEntries=エントリー番号 GoToWikiHelpPage=オンラインヘルプを読込む(インターネットアクセスが必要) GoToHelpPage=ヘルプを見る @@ -108,14 +114,14 @@ PreviousValue=以前の値 ConnectedOnMultiCompany=環境に接続 ConnectedSince=接続開始は AuthenticationMode=認証モード -RequestedUrl=リクエストURL +RequestedUrl=要求されたURL DatabaseTypeManager=データベース·タイプ·マネージャ RequestLastAccessInError=最新のデータベースアクセス要求エラー ReturnCodeLastAccessInError=最新のデータベースアクセス要求エラーの戻りコード InformationLastAccessInError=最新のデータベースアクセス要求エラーに関する情報 DolibarrHasDetectedError=Dolibarrで技術的なエラーを検出 -YouCanSetOptionDolibarrMainProdToZero=詳細については、ログファイルを読み取るか、構成ファイルでオプション$ dolibarr_main_prodを「0」に設定してください。 -InformationToHelpDiagnose=この情報は診断目的に役立ちます(機密情報を非表示にするためにオプション$ dolibarr_main_prodを「1」に設定できる) +YouCanSetOptionDolibarrMainProdToZero=詳細については、ログファイルを読込むか、構成ファイルでオプション$ dolibarr_main_prodを「0」に設定すること。 +InformationToHelpDiagnose=この情報は診断目的に役立つ(オプション $dolibarr_main_prodを「1」に設定することで、機密情報を非表示にできる) MoreInformation=詳しい情報 TechnicalInformation=技術的情報 TechnicalID=技術ID @@ -144,8 +150,8 @@ Period=期間 PeriodEndDate=期間の終了日 SelectedPeriod=選択した期間 PreviousPeriod=前回の期間 -Activate=活性化 -Activated=活性化済 +Activate=有効化 +Activated=有効化済 Closed=閉じた Closed2=閉じた NotClosed=未閉鎖 @@ -160,7 +166,7 @@ RemoveLink=リンクを削除 AddToDraft=下書きに追加 Update=更新 Close=閉じる -CloseAs=ステータスをに設定する +CloseAs=状態をに設定する CloseBox=ダッシュボードからウィジェットを削除する Confirm=確定する ConfirmSendCardByMail=このカードの内容を本当にメールで%s に送信するか? @@ -173,7 +179,7 @@ Edit=編集 Validate=検証 ValidateAndApprove=検証および承認 ToValidate=検証するには -NotValidated=検証されていない +NotValidated=非検証済 Save=保存 SaveAs=名前を付けて保存 SaveAndStay=保存して滞在 @@ -182,7 +188,7 @@ TestConnection=試験用接続 ToClone=クローン ConfirmCloneAsk=オブジェクト%s のクローンを作成してもよいか? ConfirmClone=クローンを作成するデータを選択する。 -NoCloneOptionsSpecified=定義されているクローンを作成するデータがありません。 +NoCloneOptionsSpecified=定義されているクローンを作成するデータがない。 Of=の Go=行く Run=実行 @@ -208,16 +214,16 @@ Resize=サイズを変更する ResizeOrCrop=サイズ変更またはトリミング Recenter=recenterは Author=作成者 -User=ユーザー -Users=ユーザー +User=ユーザ +Users=ユーザ Group=グループ Groups=グループ UserGroup=ユーザ・グループ UserGroups=ユーザ・グループs -NoUserGroupDefined=ユーザーグループが定義されていない +NoUserGroupDefined=ユーザグループが定義されていない Password=パスワード PasswordRetype=パスワードを再入力 -NoteSomeFeaturesAreDisabled=機能/モジュールの多くは、このデモで無効になっていることに注意してください。 +NoteSomeFeaturesAreDisabled=機能/モジュールの多くは、このデモで無効になっていることに注意すること。 Name=名 NameSlashCompany=名前/法人 Person=人 @@ -244,6 +250,7 @@ Designation=説明 DescriptionOfLine=ラインの説明 DateOfLine=行の日付 DurationOfLine=ラインの長さ +ParentLine=親回線ID Model=ドキュメントテンプレート DefaultModel=デフォルトのドキュメントテンプレート Action=イベント @@ -255,7 +262,7 @@ Numero=数 Limit=制限 Limits=制限 Logout=ログアウト -NoLogoutProcessWithAuthMode=認証モード%sの適用可能な切断機能はありません +NoLogoutProcessWithAuthMode=認証モード%sの適用可能な切断機能はない Connection=ログイン Setup=設定 Alert=警告 @@ -289,19 +296,19 @@ DateValueShort=値の日付 DateOperation=運転日 DateOperationShort=オペラ。日付 DateLimit=日付を制限する -DateRequest=リクエストの日付 +DateRequest=要求の日付 DateProcess=処理日 DateBuild=ビルド日を報告 DatePayment=支払日 DateApprove=承認日 DateApprove2=承認日(2回目の承認) RegistrationDate=登録日 -UserCreation=作成ユーザー -UserModification=変更ユーザー -UserValidation=検証ユーザー -UserCreationShort=クリート。ユーザー -UserModificationShort=Modif。ユーザー -UserValidationShort=有効。ユーザー +UserCreation=作成ユーザ +UserModification=変更ユーザ +UserValidation=検証ユーザ +UserCreationShort=クリート。ユーザ +UserModificationShort=Modif。ユーザ +UserValidationShort=有効。ユーザ DurationYear=年 DurationMonth=月 DurationWeek=週 @@ -344,7 +351,7 @@ KiloBytes=キロバイト MegaBytes=メガバイト GigaBytes=ギガバイト TeraBytes=テラバイト -UserAuthor=によってCeated +UserAuthor=により作成済 UserModif=更新済の原因 b=B。 Kb=KB @@ -378,9 +385,9 @@ AmountTTCShort=金額(税込) AmountHT=金額(税込) AmountTTC=金額(税込) AmountVAT=金額税 -MulticurrencyAlreadyPaid=すでに支払われた元の通貨 -MulticurrencyRemainderToPay=元の通貨で支払いを続ける -MulticurrencyPaymentAmount=お支払い金額、元の通貨 +MulticurrencyAlreadyPaid=既に支払われた元の通貨 +MulticurrencyRemainderToPay=元の通貨で支払を続ける +MulticurrencyPaymentAmount=お支払金額、元の通貨 MulticurrencyAmountHT=金額(税抜き)、元の通貨 MulticurrencyAmountTTC=金額(税込み)、元の通貨 MulticurrencyAmountVAT=金額税、元の通貨 @@ -440,8 +447,8 @@ DefaultTaxRate=デフォルトの税率 Average=平均 Sum=合計 Delta=デルタ -StatusToPay=支払いに -RemainToPay=支払いを続ける +StatusToPay=支払に +RemainToPay=支払を続ける Module=モジュール/アプリケーション Modules=モジュール/アプリケーション Option=オプション @@ -451,14 +458,14 @@ FullList=全リスト FullConversation=完全な会話 Statistics=統計 OtherStatistics=他の統計 -Status=ステータス +Status=状態 Favorite=お気に入り ShortInfo=情報 Ref=参照符号 ExternalRef=外部参照符号 RefSupplier=仕入先参照符号 RefPayment=支払参照符号 -CommercialProposalsShort=商用の提案 +CommercialProposalsShort=商取引提案 Comment=コメント Comments=コメント ActionsToDo=行うためのイベント @@ -478,7 +485,7 @@ AddressesForCompany=取引先の住所s ActionsOnCompany=この取引先に関する出来事s ActionsOnContact=この 連絡先/住所 に関する出来事 ActionsOnContract=この契約に関する出来事 -ActionsOnMember=このメンバーに関する出来事 +ActionsOnMember=この構成員に関する出来事 ActionsOnProduct=この製品に関する出来事 NActionsLate=%s遅延 ToDo=すること @@ -517,6 +524,7 @@ or=または Other=その他 Others=他人 OtherInformations=他の情報 +Workflow=ワークフロー Quantity=量 Qty=個数 ChangedBy=によって変更され @@ -619,6 +627,7 @@ MonthVeryShort11=十一 MonthVeryShort12=十二 AttachedFiles=添付ファイルとドキュメント JoinMainDoc=主ドキュメントを結合 +JoinMainDocOrLastGenerated=メインドキュメントまたは最後に生成されたドキュメントが見つからない場合は送信する DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -680,15 +689,15 @@ Response=応答 Priority=優先順位 SendByMail=メールで送る MailSentBy=によって送信される電子メール -NotSent=送信されません +NotSent=送信されない TextUsedInTheMessageBody=電子メールの本文 SendAcknowledgementByMail=確定メールを送信する SendMail=メールを送る Email=Eメール NoEMail=まだメールしない -AlreadyRead=すでに読んだ +AlreadyRead=既に読んだ NotRead=未読 -NoMobilePhone=携帯電話はありません +NoMobilePhone=携帯電話はない Owner=所有者 FollowingConstantsWillBeSubstituted=以下の定数は、対応する値を持つ代替となる。 Refresh=リフレッシュ @@ -699,16 +708,17 @@ CanBeModifiedIfOk=有効であれば変更することができる CanBeModifiedIfKo=有効でない場合は変更することができる ValueIsValid=値が有効。 ValueIsNotValid=値が無効 -RecordCreatedSuccessfully=レコードが正常に作成されました +RecordCreatedSuccessfully=レコードが正常に作成された RecordModifiedSuccessfully=レコードが正常に変更 -RecordsModified=%sレコードが変更されました -RecordsDeleted=%sレコードが削除されました +RecordsModified=%sレコード(s)が変更された +RecordsDeleted=%sレコード(s)が削除された RecordsGenerated=生成された%sレコード AutomaticCode=自動コード FeatureDisabled=機能が無効に MoveBox=ウィジェットの移動 Offered=提供 NotEnoughPermissions=このアクションの権限を持っていない +UserNotInHierachy=このアクションは、このユーザのスーパーバイザに予約された SessionName=セッション名 Method=方法 Receive=受け取る @@ -717,7 +727,7 @@ ExpectedValue=予測値 ExpectedQty=予測数 PartialWoman=部分的な TotalWoman=合計 -NeverReceived=受信しませんでした +NeverReceived=受信されず Canceled=キャンセル YouCanChangeValuesForThisListFromDictionarySetup=このリストの値は、メニューの 設定 - 辞書 から変更できる。 YouCanChangeValuesForThisListFrom=このリストの値は、メニュー%sから変更できる。 @@ -729,7 +739,7 @@ UploadDisabled=アップロードを無効に MenuAccountancy=会計 MenuECM=ドキュメント MenuAWStats=AWStatsは -MenuMembers=メンバー +MenuMembers=構成員 MenuAgendaGoogle=Googleの議題 MenuTaxesAndSpecialExpenses=税金|特別経費 ThisLimitIsDefinedInSetup=Dolibarr制限(メニューホーム設定·セキュリティ):%s KB、PHP制限:%s KB @@ -766,19 +776,19 @@ PrintContentArea=メインのコンテンツ領域を印刷するページを表 MenuManager=メニューマネージャー WarningYouAreInMaintenanceMode=警告、メンテナンスモード。ログイン %s のみが、このモードでアプリケーションを使用できる。 CoreErrorTitle=システムエラー -CoreErrorMessage=申し訳ありませんが、エラーが発生しました。システム管理者に連絡してログを確認するか、$ dolibarr_main_prod = 1を無効にして詳細情報を入手してください。 +CoreErrorMessage=申し訳ないが、エラーが発生した。システム管理者に連絡してログを確認するか、$ dolibarr_main_prod = 1を無効にして詳細情報を入手すること。 CreditCard=クレジットカード -ValidatePayment=支払いを検証する +ValidatePayment=支払を検証 CreditOrDebitCard=クレジットカードまたはデビットカード FieldsWithAreMandatory=%sのフィールドは必須 -FieldsWithIsForPublic= %s のフィールドは、メンバーの公開リストに表示される。これを望まない場合は、「公開」ボックスのチェックを外してください。 +FieldsWithIsForPublic= %s のフィールドは、構成員の公開リストに表示される。これを望まない場合は、「公開」ボックスのチェックを外すること。 AccordingToGeoIPDatabase=(GeoIP変換による) Line=ライン NotSupported=サポートされていない RequiredField=必須フィールド Result=結果 ToTest=テスト -ValidateBefore=この機能を使用する前に、アイテムを検証する必要がある +ValidateBefore=この機能を使用する前に、アイテムが要検証済 Visibility=可視性 Totalizable=合計可能 TotalizableDesc=このフィールドはリストで合計可能 @@ -801,7 +811,7 @@ LinkToProposal=提案へのリンク LinkToOrder=注文へのリンク LinkToInvoice=請求書へのリンク LinkToTemplateInvoice=テンプレート請求書へのリンク -LinkToSupplierOrder=注文書へのリンク +LinkToSupplierOrder=購買発注へのリンク LinkToSupplierProposal=ベンダー提案へのリンク LinkToSupplierInvoice=ベンダーの請求書へのリンク LinkToContract=契約へのリンク @@ -824,14 +834,14 @@ ByYear=年度別 ByMonth=月別 ByDay=日ごとに BySalesRepresentative=営業担当者によって -LinkedToSpecificUsers=特定のユーザー連絡先にリンク -NoResults=結果がありません +LinkedToSpecificUsers=特定のユーザ連絡先にリンク +NoResults=結果がない AdminTools=管理ツール SystemTools=システムツール ModulesSystemTools=モジュールツール Test=テスト Element=素子 -NoPhotoYet=写真はまだありません +NoPhotoYet=写真はまだない Dashboard=ダッシュボード MyDashboard=マイダッシュボード Deductible=控除可能 @@ -839,7 +849,7 @@ from=から toward=に向かって Access=アクセス SelectAction=アクションを選択 -SelectTargetUser=ターゲットユーザー/従業員を選択する +SelectTargetUser=ターゲットユーザ/従業員を選択する HelpCopyToClipboard=Ctrl + Cを使用してクリップボードにコピーする SaveUploadedFileWithMask=「%s」(それ以外の場合は「%s」)という名前でファイルをサーバーに保存する OriginFileName=元のファイル名 @@ -858,7 +868,7 @@ ShowIntervention=介入を示す ShowContract=契約を表示する GoIntoSetupToChangeLogo=ホーム - 設定 - 法人 に移動してロゴを変更するか、ホーム - 設定 - 表示 に移動して非表示にする。 Deny=拒否 -Denied=拒否されました +Denied=拒否された ListOf=%sのリスト ListOfTemplates=テンプレートのリスト Gender=性別 @@ -875,8 +885,8 @@ Sincerely=心から ConfirmDeleteObject=このオブジェクトを削除してもよいか? DeleteLine=行を削除 ConfirmDeleteLine=この行を削除してもよいか? -ErrorPDFTkOutputFileNotFound=エラー:ファイルは生成されませんでした。 'pdftk'コマンドが$ PATH環境変数(linux / unixのみ)に含まれるディレクトリーにインストールされていることを確認するか、システム管理者に連絡してください。 -NoPDFAvailableForDocGenAmongChecked=チェックされたレコードの中でドキュメント生成に使用できるPDFがありませんでした +ErrorPDFTkOutputFileNotFound=エラー:ファイルは生成さない。 'pdftk'コマンドが$ PATH環境変数(linux / unixのみ)に含まれるディレクトリーにインストールされていることを確認するか、システム管理者に連絡すること。 +NoPDFAvailableForDocGenAmongChecked=チェックされたレコードの中でドキュメント生成に使用できるPDFがない TooManyRecordForMassAction=マスアクション用に選択されたレコードが多すぎる。アクションは、%sレコードのリストに制限されている。 NoRecordSelected=レコードが選択されていない MassFilesArea=大量アクションによって作成されたファイルの領域 @@ -897,17 +907,17 @@ Exports=Exports ExportFilteredList=フィルタリングされたリストをエクスポートする ExportList=エクスポートリスト ExportOptions=エクスポートオプション -IncludeDocsAlreadyExported=すでにエクスポートされたドキュメントを含める -ExportOfPiecesAlreadyExportedIsEnable=すでにエクスポートされたピースのエクスポートが有効になる -ExportOfPiecesAlreadyExportedIsDisable=すでにエクスポートされたピースのエクスポートは無効になっている -AllExportedMovementsWereRecordedAsExported=エクスポートされたすべての動きは、エクスポートされたものとして記録されました -NotAllExportedMovementsCouldBeRecordedAsExported=エクスポートされたすべての動きをエクスポート済として記録できるわけではありません +IncludeDocsAlreadyExported=既にエクスポートされたドキュメントを含める +ExportOfPiecesAlreadyExportedIsEnable=既にエクスポートされたピースのエクスポートが有効になる +ExportOfPiecesAlreadyExportedIsDisable=既にエクスポートされたピースのエクスポートは無効になっている +AllExportedMovementsWereRecordedAsExported=エクスポートされた全動きは、エクスポートされたものとして記録された +NotAllExportedMovementsCouldBeRecordedAsExported=エクスポートされた全動きをエクスポート済として記録できるわけではない Miscellaneous=その他 Calendar=カレンダー GroupBy=グループ化... ViewFlatList=フラットリストを表示 ViewAccountList=元帳を表示 -ViewSubAccountList=補助科目元帳を表示 +ViewSubAccountList=補助勘定科目元帳を表示 RemoveString=文字列 '%s'を削除する SomeTranslationAreUncomplete=提供されている言語の中には、部分的にしか翻訳されていないか、エラーが含まれているものがある。 https://transifex.com/projects/p/dolibarr/ に登録して言語を修正し、改善点を追加すること。 DirectDownloadLink=公開ダウンロードリンク @@ -1014,7 +1024,7 @@ quadrillion=千兆 SelectMailModel=メールテンプレートを選択する SetRef=参照を設定 Select2ResultFoundUseArrows=いくつかの結果が見つかりました。矢印を使用して選択する。 -Select2NotFound=結果が見つかりません +Select2NotFound=結果が見つからない Select2Enter=入る Select2MoreCharacter=以上のキャラクター Select2MoreCharacters=以上の文字 @@ -1023,8 +1033,8 @@ Select2LoadingMoreResults=より多くの結果を読み込んでいる... Select2SearchInProgress=進行中の検索... SearchIntoThirdparties=取引先 SearchIntoContacts=コンタクト -SearchIntoMembers=メンバー -SearchIntoUsers=ユーザー +SearchIntoMembers=構成員 +SearchIntoUsers=ユーザ SearchIntoProductsOrServices=製品またはサービス SearchIntoBatch=ロット/シリアル SearchIntoProjects=プロジェクト @@ -1033,8 +1043,8 @@ SearchIntoTasks=タスク SearchIntoCustomerInvoices=顧客の請求書 SearchIntoSupplierInvoices=仕入先の請求書 SearchIntoCustomerOrders=受注 -SearchIntoSupplierOrders=注文書 -SearchIntoCustomerProposals=商用の提案 +SearchIntoSupplierOrders=購買発注 +SearchIntoCustomerProposals=商取引提案 SearchIntoSupplierProposals=ベンダーの提案 SearchIntoInterventions=介入 SearchIntoContracts=契約 @@ -1042,9 +1052,9 @@ SearchIntoCustomerShipments=顧客の出荷 SearchIntoExpenseReports=経費報告書s SearchIntoLeaves=離れる SearchIntoTickets=切符売場 -SearchIntoCustomerPayments=顧客の支払い -SearchIntoVendorPayments=仕入先の支払い -SearchIntoMiscPayments=その他の支払い +SearchIntoCustomerPayments=顧客の支払 +SearchIntoVendorPayments=仕入先の支払 +SearchIntoMiscPayments=その他の支払 CommentLink=コメント NbComments=コメント数 CommentPage=コメントスペース @@ -1061,29 +1071,29 @@ Remote=リモート LocalAndRemote=ローカルおよびリモート KeyboardShortcut=キーボードショートカット AssignedTo=影響を受ける -Deletedraft=下書き削除 -ConfirmMassDraftDeletion=下書き大量削除確 +Deletedraft=下書きを削除する +ConfirmMassDraftDeletion=下書き大量削除確約 FileSharedViaALink=公開リンクと共有されているファイル -SelectAThirdPartyFirst=最初に取引先を選択してください... +SelectAThirdPartyFirst=最初に取引先を選択すること... YouAreCurrentlyInSandboxMode=現在、%s「サンドボックス」モードになっている Inventory=目録 AnalyticCode=分析コード TMenuMRP=MRP ShowCompanyInfos=法人情報を表示する ShowMoreInfos=詳細情報を表示 -NoFilesUploadedYet=最初にドキュメントをアップロードしてください +NoFilesUploadedYet=最初にドキュメントをアップロードすること SeePrivateNote=非公開メモを見る PaymentInformation=支払情報 ValidFrom=から有効 ValidUntil=まで有効 -NoRecordedUsers=ユーザーなし +NoRecordedUsers=ユーザなし ToClose=閉じるには ToRefuse=拒む ToProcess=処理するには ToApprove=承認するために GlobalOpenedElemView=グローバルビュー -NoArticlesFoundForTheKeyword=キーワード「%s」の記事が見つかりません -NoArticlesFoundForTheCategory=カテゴリの記事が見つかりません +NoArticlesFoundForTheKeyword=キーワード「%s」の項目が見つからない +NoArticlesFoundForTheCategory=当該カテゴリの項目が見つからない ToAcceptRefuse=受領 | 拒否 ContactDefault_agenda=イベント ContactDefault_commande=オーダー @@ -1091,7 +1101,7 @@ ContactDefault_contrat=契約 ContactDefault_facture=請求書 ContactDefault_fichinter=介入 ContactDefault_invoice_supplier=サプライヤーの請求書 -ContactDefault_order_supplier=注文書 +ContactDefault_order_supplier=購買発注 ContactDefault_project=プロジェクト ContactDefault_project_task=タスク ContactDefault_propal=提案 @@ -1106,39 +1116,39 @@ SelectYourGraphOptionsFirst=グラフオプションを選択してグラフを Measures=対策 XAxis=X軸 YAxis=Y軸 -StatusOfRefMustBe=%sのステータスは%sである必要がある +StatusOfRefMustBe=%sの状態は%sである必要がある DeleteFileHeader=ファイル削除の確定 DeleteFileText=本当にこのファイルを削除するか? ShowOtherLanguages=他の言語を表示する SwitchInEditModeToAddTranslation=この言語の翻訳を追加するには、編集モードに切り替える NotUsedForThisCustomer=この顧客には使用されていない -AmountMustBePositive=金額は正でなければなりません -ByStatus=ステータス別 +AmountMustBePositive=金額は正でなければならない +ByStatus=状態別 InformationMessage=情報 Used=中古 ASAP=できるだけ速やかに CREATEInDolibarr=作成されたレコード%s -MODIFYInDolibarr=レコード%sが変更されました -DELETEInDolibarr=レコード%sが削除されました +MODIFYInDolibarr=レコード%sが変更された +DELETEInDolibarr=レコード%sが削除された VALIDATEInDolibarr=検証済のレコード%s APPROVEDInDolibarr=承認された記録%s DefaultMailModel=デフォルトのメールモデル PublicVendorName=ベンダーの公開名 DateOfBirth=誕生日 -SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=セキュリティトークンの有効期限が切れたため、アクションはキャンセルされました。もう一度やり直してください。 +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=セキュリティトークンの有効期限が切れたため、アクションはキャンセルされた。もう一度やり直すること。 UpToDate=最新の OutOfDate=時代遅れ EventReminder=イベントリマインダー -UpdateForAllLines=すべての行を更新 +UpdateForAllLines=全行を更新 OnHold=保留 Civility=敬称 AffectTag=タグに影響を与える -CreateExternalUser=外部ユーザーを作成する +CreateExternalUser=外部ユーザを作成する ConfirmAffectTag=バルクタグの影響 ConfirmAffectTagQuestion=選択した%sレコード(s)のタグに影響を与えてもよいか? CategTypeNotFound=レコードのタイプのタグタイプが見つからない CopiedToClipboard=クリップボードにコピー -InformationOnLinkToContract=この金額は、契約のすべての行の合計にすぎません。時間の概念は考慮されていない。 +InformationOnLinkToContract=この金額は、契約の全行の合計にすぎない。時間の概念は考慮されていない。 ConfirmCancel=本当にキャンセルしたいか EmailMsgID=メールMsgID SetToEnabled=有効に設定 @@ -1158,9 +1168,22 @@ ConfirmMassLeaveApproval=一括休暇承認確定 RecordAproved=承認された記録 RecordsApproved=%sレコード(s)承認済み Properties=プロパティ -hasBeenValidated=%sが検証された +hasBeenValidated=%sは検証済 ClientTZ=クライアントのタイムゾーン (ユーザ) -NotClosedYet=まだ閉店していません +NotClosedYet=まだ閉店していない ClearSignature=署名をリセット CanceledHidden=非表示キャンセル済 CanceledShown=表示済キャンセル済 +Terminate=終了する +Terminated=解除された +AddLineOnPosition=位置に行を追加(空の場合は最後に) +ConfirmAllocateCommercial=営業担当者の確認を割り当てる +ConfirmAllocateCommercialQuestion=選択した%sレコード(s)を割り当ててもよいか? +CommercialsAffected=影響を受ける営業担当者 +CommercialAffected=影響を受ける営業担当者 +YourMessage=あなたのメッセージ +YourMessageHasBeenReceived=貴方のメッセージは受理済。できるだけ早く回答または連絡する予定。 +UrlToCheck=チェックするURL +Automation=オートメーション +CreatedByEmailCollector=メールコレクターによって作成された +CreatedByPublicPortal=公開ポータルから作成 diff --git a/htdocs/langs/ja_JP/margins.lang b/htdocs/langs/ja_JP/margins.lang index 65aaf84dfa3..2e7139ed039 100644 --- a/htdocs/langs/ja_JP/margins.lang +++ b/htdocs/langs/ja_JP/margins.lang @@ -17,9 +17,9 @@ ProductMargins=製品利益 CustomerMargins=顧客利益 SalesRepresentativeMargins=営業担当者の利益 ContactOfInvoice=請求書の連絡先 -UserMargins=ユーザー利益 +UserMargins=ユーザ利益 ProductService=製品やサービス -AllProducts=すべての製品とサービス +AllProducts=全製品とサービス ChooseProduct/Service=製品またはサービスを選択すること ForceBuyingPriceIfNull=定義されていない場合、購入/原価を販売価格に強制する ForceBuyingPriceIfNullDetails=新しい行を追加するときに購入/原価が提供されておらず、このオプションが「オン」の場合、マージンは新しい行の0%%になる(購入/原価=販売価格)。このオプションが「オフ」(推奨)の場合、マージンはデフォルトで提案されている値と等しくなる(デフォルト値が見つからない場合は、100%%になる可能性がある)。 @@ -36,10 +36,10 @@ MarginTypeDesc=*ベストバイイング価格の利益=販売価格-製品カ CostPrice=原価 UnitCharges=ユニット料金 Charges=料金 -AgentContactType=商業代理店の連絡先タイプ -AgentContactTypeDetails=連絡先/住所ごとの利益報告書に使用される連絡先タイプ(請求書にリンクされている)を定義する。ほとんどの場合、連絡先が請求書で明示的に定義されていない可能性があるため、連絡先の統計の読み取りは信頼できないことに注意すること。 -rateMustBeNumeric=レートは数値でなければなりません +AgentContactType=商取引代理店の連絡先タイプ +AgentContactTypeDetails=連絡先/住所ごとの利益報告書に使用される連絡先タイプ(請求書にリンクされている)を定義する。ほとんどの場合、連絡先が請求書で明示的に定義されていない可能性があるため、連絡先の統計の読取りは信頼できないことに注意すること。 +rateMustBeNumeric=レートは数値でなければならない markRateShouldBeLesserThan100=マーク率は100未満である必要がある ShowMarginInfos=利益情報を表示する CheckMargins=利益の詳細 -MarginPerSaleRepresentativeWarning=ユーザーあたりの利益の報告書は、取引先と営業担当者の間のリンクを使用して、各営業担当者の利益を計算する。一部の取引先には専任の営業担当者がいない場合や、一部の取引先が複数にリンクされている場合があるため、一部の金額はこの報告書に含まれない場合があり(営業担当者がいない場合)、一部は異なる行に表示される場合がある(営業担当者ごとに) 。 +MarginPerSaleRepresentativeWarning=ユーザあたりの利益の報告書は、取引先と営業担当者の間のリンクを使用して、各営業担当者の利益を計算する。一部の取引先には専任の営業担当者がいない場合や、一部の取引先が複数にリンクされている場合があるため、一部の金額はこの報告書に含まれない場合があり(営業担当者がいない場合)、一部は異なる行に表示される場合がある(営業担当者ごとに) 。 diff --git a/htdocs/langs/ja_JP/members.lang b/htdocs/langs/ja_JP/members.lang index b732577d9d7..cb1bc7224fa 100644 --- a/htdocs/langs/ja_JP/members.lang +++ b/htdocs/langs/ja_JP/members.lang @@ -1,84 +1,85 @@ # Dolibarr language file - Source file is en_US - members -MembersArea=メンバー部門 -MemberCard=メンバーカード +MembersArea=構成員部門 +MemberCard=構成員カード SubscriptionCard=サブスクリプション·カード -Member=メンバー -Members=メンバー -ShowMember=メンバーカードを表示 -UserNotLinkedToMember=メンバーにリンクされていないユーザー -ThirdpartyNotLinkedToMember=メンバーにリンクされていない取引先 -MembersTickets=会員住所シート -FundationMembers=Foundationのメンバー -ListOfValidatedPublicMembers=認証済みの公開メンバーのリスト -ErrorThisMemberIsNotPublic=このメンバーは非公開 -ErrorMemberIsAlreadyLinkedToThisThirdParty=別のメンバー(名前:%s、ログイン:%s)がすでに取引先%sにリンクされている。取引先は1人のメンバーにしかリンクできないため(逆も同様)、まずこのリンクを削除して下さい。 -ErrorUserPermissionAllowsToLinksToItselfOnly=セキュリティ上の理由から、あなたはすべてのユーザーが自分のものでないユーザーにメンバをリンクすることができるように編集する権限を付与する必要がある。 -SetLinkToUser=Dolibarrユーザーへのリンク +Member=構成員 +Members=構成員 +ShowMember=構成員カードを表示 +UserNotLinkedToMember=構成員にリンクされていないユーザ +ThirdpartyNotLinkedToMember=構成員にリンクされていない取引先 +MembersTickets=構成員住所シート +FundationMembers=Foundationの構成員 +ListOfValidatedPublicMembers=検証済の公開構成員のリスト +ErrorThisMemberIsNotPublic=この構成員は非公開 +ErrorMemberIsAlreadyLinkedToThisThirdParty=別の構成員(名前:%s、ログイン:%s)が既に取引先%sにリンクされている。取引先は1人の構成員にしかリンクできないため(逆も同様)、まずこのリンクを削除して下さい。 +ErrorUserPermissionAllowsToLinksToItselfOnly=セキュリティ上の理由から、あなたは全ユーザが自分のものでないユーザに構成員をリンクすることができるように編集する権限を付与する必要がある。 +SetLinkToUser=Dolibarrユーザへのリンク SetLinkToThirdParty=Dolibarrの取引先にリンクする -MembersCards=会員用名刺 -MembersList=メンバーのリスト -MembersListToValid=下書きのメンバーのリスト(要承認) -MembersListValid=有効なメンバーのリスト -MembersListUpToDate=拠出金を更新している有効会員リスト -MembersListNotUpToDate=拠出金が未更新の有効会員リスト -MembersListExcluded=除外されたメンバーのリスト -MembersListResiliated=解除されたメンバーのリスト -MembersListQualified=修正されたメンバーのリスト -MenuMembersToValidate=下書きのメンバー -MenuMembersValidated=承認済みのメンバー -MenuMembersExcluded=除外されたメンバー -MenuMembersResiliated=解除されたメンバー -MembersWithSubscriptionToReceive=受取り拠出金のある会員 +MembersCards=構成員向けカードの生成 +MembersList=構成員のリスト +MembersListToValid=下書きの構成員のリスト(要検証) +MembersListValid=有効な構成員のリスト +MembersListUpToDate=拠出金を更新している有効構成員リスト +MembersListNotUpToDate=拠出金が未更新の有効構成員リスト +MembersListExcluded=除外された構成員のリスト +MembersListResiliated=解除された構成員のリスト +MembersListQualified=修正された構成員のリスト +MenuMembersToValidate=下書きの構成員 +MenuMembersValidated=検証済構成員 +MenuMembersExcluded=除外された構成員 +MenuMembersResiliated=解除された構成員 +MembersWithSubscriptionToReceive=受取り拠出金のある構成員 MembersWithSubscriptionToReceiveShort=受取拠出金 DateSubscription=入会日 -DateEndSubscription=会員シップの終了日 -EndSubscription=会員シップの終了 +DateEndSubscription=成員資格終了日 +EndSubscription=成員資格終了 SubscriptionId=拠出金 ID WithoutSubscription=拠出金なし MemberId=メンバーID -NewMember=新メンバー -MemberType=メンバー種別 -MemberTypeId=メンバー種別ID -MemberTypeLabel=メンバー種別ラベル -MembersTypes=メンバー種別 -MemberStatusDraft=下書き(要承認) +MemberRef=メンバー参照 +NewMember=新構成員 +MemberType=構成員種別 +MemberTypeId=構成員種別ID +MemberTypeLabel=構成員種別ラベル +MembersTypes=構成員種別 +MemberStatusDraft=下書き(要検証) MemberStatusDraftShort=下書き MemberStatusActive=検証済(拠出金待ち) -MemberStatusActiveShort=承認 +MemberStatusActiveShort=検証済 MemberStatusActiveLate=拠出金は失効済 MemberStatusActiveLateShort=期限切れ MemberStatusPaid=最新のサブスクリプション MemberStatusPaidShort=最新の -MemberStatusExcluded=除外されたメンバー -MemberStatusExcludedShort=除外されました -MemberStatusResiliated=解除されたメンバー -MemberStatusResiliatedShort=解除されました -MembersStatusToValid=下書きのメンバー -MembersStatusExcluded=除外されたメンバー -MembersStatusResiliated=解除されたメンバー +MemberStatusExcluded=除外された構成員 +MemberStatusExcludedShort=除外された +MemberStatusResiliated=解除された構成員 +MemberStatusResiliatedShort=解除された +MembersStatusToValid=下書きの構成員 +MembersStatusExcluded=除外された構成員 +MembersStatusResiliated=解除された構成員 MemberStatusNoSubscription=検証済(拠出金不要) -MemberStatusNoSubscriptionShort=検証 +MemberStatusNoSubscriptionShort=検証済 SubscriptionNotNeeded=拠出金不要 NewCotisation=新規貢献 -PaymentSubscription=新規貢献の支払い +PaymentSubscription=新規貢献の支払 SubscriptionEndDate=サブスクリプションの終了日 -MembersTypeSetup=メンバー種別の設定 -MemberTypeModified=メンバー種別が変更されました -DeleteAMemberType=メンバー種別の削除 -ConfirmDeleteMemberType=このメンバー種別を削除してもよいか? -MemberTypeDeleted=メンバー種別が削除されました -MemberTypeCanNotBeDeleted=メンバー種別が削除できません +MembersTypeSetup=構成員種別の設定 +MemberTypeModified=構成員種別が変更された +DeleteAMemberType=構成員種別の削除 +ConfirmDeleteMemberType=この構成員種別を削除してもよいか? +MemberTypeDeleted=構成員種別が削除された +MemberTypeCanNotBeDeleted=構成員種別が削除できない NewSubscription=新規貢献 -NewSubscriptionDesc=このフォームは、財団の新規メンバーとしての購読を記録するためのもの。更新を希望される方(すでにメンバーの方)は、財団理事会までメールで%sご連絡ください。 +NewSubscriptionDesc=このフォームは、財団の新規構成員としての購読を記録するためのもの。更新を希望される方(既に構成員の方)は、財団理事会までメールで%sご連絡ください。 Subscription=拠出金 Subscriptions=拠出金 SubscriptionLate=遅い SubscriptionNotReceived=拠出金未受領 ListOfSubscriptions=拠出金リスト SendCardByMail=カードをメールで送信 -AddMember=メンバーの作成 -NoTypeDefinedGoToSetup=メンバー種別が定義されていない。メニューの「メンバー種別」にアクセスして下さい。 -NewMemberType=新規メンバー種別 +AddMember=構成員の作成 +NoTypeDefinedGoToSetup=構成員種別が定義されていない。メニューの「構成員種別」にアクセスして下さい。 +NewMemberType=新規構成員種別 WelcomeEMail=ウェルカムメール SubscriptionRequired=拠出金必須 DeleteType=削除する @@ -87,112 +88,112 @@ Physical=個人 Moral=株式会社 MorAndPhy=法人および個人 Reenable=再度有効にする -ExcludeMember=メンバーを除外する +ExcludeMember=構成員を除外する Exclude=除外する -ConfirmExcludeMember=このメンバーを除外してもよいか? -ResiliateMember=メンバーを解除する -ConfirmResiliateMember=このメンバーを解除してもよいか? -DeleteMember=メンバーを削除 -ConfirmDeleteMember=この会員を削除してもよいか(会員を削除すると、その会員の拠出金はすべて削除される)。 +ConfirmExcludeMember=この構成員を除外してもよいか? +ResiliateMember=構成員を解除する +ConfirmResiliateMember=この構成員を解除してもよいか? +DeleteMember=構成員を削除 +ConfirmDeleteMember=この構成員を削除してもよいか(構成員を削除すると、その構成員の拠出金はすべて削除される)。 DeleteSubscription=サブスクリプションを削除する ConfirmDeleteSubscription=この拠出金を削除してもよいか? Filehtpasswd=htpasswdファイル -ValidateMember=メンバーを承認する -ConfirmValidateMember=このメンバーを承認してよいか? -FollowingLinksArePublic=以下のリンクはDolibarrの権限によって保護されていない公開ページ。これはフォーマットされたページではなく、メンバーをデータベースに載せる方法の例として提示されている。 -PublicMemberList=公共のメンバリスト +ValidateMember=構成員を承認する +ConfirmValidateMember=この構成員を承認してよいか? +FollowingLinksArePublic=以下のリンクはDolibarrの権限によって保護されていない公開ページ。これはフォーマットされたページではなく、構成員をデータベースに載せる方法の例として提示されている。 +PublicMemberList=公共の構成員リスト BlankSubscriptionForm=公開自己登録フォーム -BlankSubscriptionFormDesc=Dolibarrは、外部の訪問者が財団への登録を依頼できるように、公開URL /ウェブサイトを提供できる。オンライン支払いモジュールが有効になっている場合、支払いフォームも自動的に提供される場合がある。 +BlankSubscriptionFormDesc=Dolibarrは、外部の訪問者が財団への登録を依頼できるように、公開URL /ウェブサイトを提供できる。オンライン支払モジュールが有効になっている場合、支払フォームも自動的に提供される場合がある。 EnablePublicSubscriptionForm=セルフサブスクリプションフォームで公開ウェブサイトを有効にする -ForceMemberType=メンバー種別を強制する -ExportDataset_member_1=会員と拠出金 -ImportDataset_member_1=メンバー -LastMembersModified=最近更新されたメンバー%s件 +ForceMemberType=構成員種別を強制する +ExportDataset_member_1=構成員と拠出金 +ImportDataset_member_1=構成員 +LastMembersModified=最近更新された構成員%s件 LastSubscriptionsModified=最新の%s変更済拠出金 String=文字列 Text=テキスト Int=int型 DateAndTime=日時 -PublicMemberCard=メンバー公開カード +PublicMemberCard=構成員公開カード SubscriptionNotRecorded=拠出金記録未済 AddSubscription=拠出金作成 ShowSubscription=拠出金を表示 # Label of email templates -SendingAnEMailToMember=メンバーに情報メールを送信する +SendingAnEMailToMember=構成員に情報メールを送信する SendingEmailOnAutoSubscription=自動登録に関するメールの送信 -SendingEmailOnMemberValidation=新規メンバーの承認に関するメールの送信 +SendingEmailOnMemberValidation=新規構成員の承認に関するメールの送信 SendingEmailOnNewSubscription=新しい拠出金に関するメールの送信 SendingReminderForExpiredSubscription=期限切れの拠出金のリマインダーを送信する SendingEmailOnCancelation=キャンセル時にメールを送信する SendingReminderActionComm=議題イベントのリマインダーを送信する # Topic of email templates -YourMembershipRequestWasReceived=メンバーシップを受け取りました。 -YourMembershipWasValidated=メンバーシップが承認されました。 +YourMembershipRequestWasReceived=成員資格を受取った。 +YourMembershipWasValidated=成員資格は承認済。 YourSubscriptionWasRecorded=あなたの新しい拠出金が記録された SubscriptionReminderEmail=拠出金のリマインダー -YourMembershipWasCanceled=メンバーシップがキャンセルされました。 -CardContent=あなたの会員カードの内容 +YourMembershipWasCanceled=成員資格がキャンセルされた。 +CardContent=あなたの構成員カードの内容 # Text of email templates -ThisIsContentOfYourMembershipRequestWasReceived=メンバーシップのリクエストを受領したことをお知らせする。

    -ThisIsContentOfYourMembershipWasValidated=メンバーシップが下記の情報で承認されたことをお知らせする:

    +ThisIsContentOfYourMembershipRequestWasReceived=成員資格の要求を受領したことをお知らせする。

    +ThisIsContentOfYourMembershipWasValidated=成員資格が下記の情報で承認されたことをお知らせする:

    ThisIsContentOfYourSubscriptionWasRecorded=新規サブスクリプションが記録されたことをお知らせする。

    -ThisIsContentOfSubscriptionReminderEmail=サブスクリプションの有効期限が近づいているか、すでに有効期限が切れていることをお知らせする(__MEMBER_LAST_SUBSCRIPTION_DATE_END__)。更新していただければ幸い。

    +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_AUTOREGISTER=構成員の自動登録で構成員にメールを送信するために使用するメールテンプレート +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=構成員に対して構成員の承認についてのメールを送信する際使用するテンプレート +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=新しい拠出金の記録について構成員にメールを送信するために使用するメールテンプレート DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=拠出金の有効期限が近づいたときにメールリマインダーを送信するために使用するメールテンプレート -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=メンバーに対してメンバーのキャンセルについての電子メールを送信する際使用するテンプレート -DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=メンバーの除外時にメンバーに電子メールを送信するために使用する電子メールテンプレート +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=構成員に対して構成員のキャンセルについてのメールを送信する際使用するテンプレート +DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=構成員の除外時に構成員に電子メールを送信するために使用する電子メールテンプレート DescADHERENT_MAIL_FROM=自動メールの送信者メール DescADHERENT_ETIQUETTE_TYPE=ラベルページのフォーマット -DescADHERENT_ETIQUETTE_TEXT=メンバーのアドレスシートに印刷されたテキスト +DescADHERENT_ETIQUETTE_TEXT=構成員のアドレスシートに印刷されたテキスト DescADHERENT_CARD_TYPE=カードのページのフォーマット -DescADHERENT_CARD_HEADER_TEXT=メンバーカードの上に印刷されたテキスト -DescADHERENT_CARD_TEXT=メンバーカードに印刷されたテキスト(左寄せ) -DescADHERENT_CARD_TEXT_RIGHT=メンバーカードに印刷されたテキスト(右寄せ) -DescADHERENT_CARD_FOOTER_TEXT=メンバーカードの下部に印刷されたテキスト +DescADHERENT_CARD_HEADER_TEXT=構成員カードの上に印刷されたテキスト +DescADHERENT_CARD_TEXT=構成員カードに印刷されたテキスト(左寄せ) +DescADHERENT_CARD_TEXT_RIGHT=構成員カードに印刷されたテキスト(右寄せ) +DescADHERENT_CARD_FOOTER_TEXT=構成員カードの下部に印刷されたテキスト ShowTypeCard=種別 "%s"を表示 HTPasswordExport=htpasswordファイルの生成 -NoThirdPartyAssociatedToMember=この会員に関連付けられている取引先はない -MembersAndSubscriptions=会員と拠出金 +NoThirdPartyAssociatedToMember=この構成員に関連付けられている取引先はない +MembersAndSubscriptions=構成員と拠出金 MoreActions=記録上の相補的なアクション -MoreActionsOnSubscription=拠出金の記録時にデフォルトで提案される補完的アクション +MoreActionsOnSubscription=寄付を記録するときにデフォルトで提案される補完的なアクション。寄付のオンライン支払でも自動的に実行される MoreActionBankDirect=銀行口座に直接エントリを作成する -MoreActionBankViaInvoice=請求書と銀行口座での支払いを作成する -MoreActionInvoiceOnly=なし支払いで請求書を作成する。 -LinkToGeneratedPages=訪問カードを生成 -LinkToGeneratedPagesDesc=この画面では全てのメンバーもしくは特定のメンバーの名刺のPDFファイルを生成できる。 -DocForAllMembersCards=全てのメンバーの名刺を生成する -DocForOneMemberCards=特定のメンバーの名刺を生成する +MoreActionBankViaInvoice=請求書と銀行口座での支払を作成する +MoreActionInvoiceOnly=なし支払で請求書を作成する。 +LinkToGeneratedPages=名刺またはアドレスシートの生成 +LinkToGeneratedPagesDesc=この画面では全ての構成員もしくは特定の構成員の名刺のPDFファイルを生成できる。 +DocForAllMembersCards=全ての構成員の名刺を生成する +DocForOneMemberCards=特定の構成員の名刺を生成する DocForLabels=アドレスシートを生成 SubscriptionPayment=拠出金支払 -LastSubscriptionDate=最新の拠出金の支払い日 +LastSubscriptionDate=最新の拠出金の支払日 LastSubscriptionAmount=最新拠出金金額 -LastMemberType=前回のメンバー種別 -MembersStatisticsByCountries=国別メンバー統計 -MembersStatisticsByState=州・都道府県別メンバー統計 -MembersStatisticsByTown=市区町村別メンバー統計 -MembersStatisticsByRegion=地域別メンバー統計 -NbOfMembers=会員総数 -NbOfActiveMembers=現在アクティブなメンバーの総数 -NoValidatedMemberYet=承認済みのメンバーが見つかりませんでした -MembersByCountryDesc=この画面には、国別のメンバーの統計が表示される。グラフとチャートは、Googleオンライングラフサービスの可用性と、機能しているインターネット接続の可用性に依存する。 -MembersByStateDesc=この画面には、州/県/州ごとのメンバーの統計が表示される。 -MembersByTownDesc=この画面には、町ごとのメンバーの統計が表示される。 -MembersByNature=この画面には、メンバーの統計が表示される。 -MembersByRegion=この画面には、地域ごとのメンバーの統計が表示される。 +LastMemberType=前回の構成員種別 +MembersStatisticsByCountries=国別構成員統計 +MembersStatisticsByState=州・都道府県別構成員統計 +MembersStatisticsByTown=市区町村別構成員統計 +MembersStatisticsByRegion=地域別構成員統計 +NbOfMembers=構成員総数 +NbOfActiveMembers=現在アクティブな構成員の総数 +NoValidatedMemberYet=承認済みの構成員が見つからない +MembersByCountryDesc=この画面には、国別の構成員の統計が表示される。グラフとチャートは、Googleオンライングラフサービスの可用性と、機能しているインターネット接続の可用性に依存する。 +MembersByStateDesc=この画面には、州/県/地区ごとの構成員の統計が表示される。 +MembersByTownDesc=この画面には、町ごとの構成員の統計が表示される。 +MembersByNature=この画面には、構成員の統計が表示される。 +MembersByRegion=この画面には、地域ごとの構成員の統計が表示される。 MembersStatisticsDesc=読みたい統計を選択... MenuMembersStats=統計 -LastMemberDate=最新の会員日 +LastMemberDate=最新の入会日 LatestSubscriptionDate=最新の拠出金発生日 -MemberNature=メンバーの性質 -MembersNature=メンバーの性質 +MemberNature=構成員の性質 +MembersNature=構成員の性質 Public=情報は公開されている -NewMemberbyWeb=新規メンバーが追加されました。承認待ち。 -NewMemberForm=新規メンバーフォーム +NewMemberbyWeb=新規構成員が追加された。承認待ち。 +NewMemberForm=新規構成員フォーム SubscriptionsStatistics=拠出金統計 NbOfSubscriptions=拠出金の本数 AmountOfSubscriptions=拠出金から集計した金額 @@ -201,20 +202,22 @@ DefaultAmount=デフォルトの拠出金金額 CanEditAmount=訪問者はその拠出金額を選択/編集できる MEMBER_NEWFORM_PAYONLINE=統合されたオンライン決済のページにジャンプ ByProperties=本質的に -MembersStatisticsByProperties=性質別メンバー統計 +MembersStatisticsByProperties=性質別構成員統計 VATToUseForSubscriptions=拠出金に使用するVAT率 NoVatOnSubscription=拠出金にはVATなし ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=請求書での拠出金行に使用される製品:%s NameOrCompany=名前または法人 SubscriptionRecorded=記録された貢献 -NoEmailSentToMember=メンバーにメールが送信されていない -EmailSentToMember=%sででメンバーに送信された電子メール +NoEmailSentToMember=構成員にメールが送信されていない +EmailSentToMember=%sでで構成員に送信された電子メール SendReminderForExpiredSubscriptionTitle=期限切れの拠出金についてメールでリマインダーを送信する -SendReminderForExpiredSubscription=拠出金の有効期限が近づいたときに、会員にメールでリマインダーを送信 ( パラメーターは、会員シップが終了する前にリマインダーを送信する日数。セミコロンで区切った日数のリストにできる。例:'10; 5; 0; -5' ) -MembershipPaid=現在の期間に支払われたメンバーシップ(%sまで) +SendReminderForExpiredSubscription=拠出金の有効期限が近づいたときに、構成員にメールでリマインダーを送信 ( パラメーターは、成員資格が終了する前にリマインダーを送信する日数。セミコロンで区切った日数のリストにできる。例:'10; 5; 0; -5' ) +MembershipPaid=現在の期間に支払われた成員資格(%sまで) YouMayFindYourInvoiceInThisEmail=このメールに請求書が添付されている場合がある -XMembersClosed=メンバー%s件がクローズしました +XMembersClosed=構成員(s)%s件をクローズ XExternalUserCreated=%s外部ユーザ(s)が作成された -ForceMemberNature=強制メンバーの性質(個人または法人) -CreateDolibarrLoginDesc=会員のユーザーログインを作成すると、会員はアプリケーションに接続できる。付与された権限に応じて、たとえば、自分でファイルを調べたり変更したりできる。 +ForceMemberNature=強制構成員の性質(個人または法人) +CreateDolibarrLoginDesc=構成員のユーザログインを作成すると、構成員はアプリケーションに接続できる。付与された権限に応じて、たとえば、自分でファイルを調べたり変更したりできる。 CreateDolibarrThirdPartyDesc=取引先とは法人であり、拠出金ごとに請求書生成することにした場合に請求書で使用される。後から、拠出金を記録するプロセスにて作成できる。 +MemberFirstname=メンバの名 +MemberLastname=メンバの姓 diff --git a/htdocs/langs/ja_JP/modulebuilder.lang b/htdocs/langs/ja_JP/modulebuilder.lang index 81ac79f478f..47e28f19dbc 100644 --- a/htdocs/langs/ja_JP/modulebuilder.lang +++ b/htdocs/langs/ja_JP/modulebuilder.lang @@ -1,19 +1,22 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=このツールは、経験豊富なユーザまたは開発者のみが使用する必要がある。独自のモジュールを構築または編集するためのユーティリティを提供する。代替の手動開発のドキュメントは、ここにある。 -EnterNameOfModuleDesc=作成するモジュール/アプリケーションの名前をスペースなしで入力する。大文字を使用して単語を区切る(例:MyModule、EcommerceForShop、SyncWithMySystem ...) -EnterNameOfObjectDesc=作成するオブジェクトの名前をスペースなしで入力する。大文字を使用して単語を区切る(例:MyObject、Student、Teacher ...)。 CRUDクラスファイルだけでなく、APIファイル、オブジェクトを一覧表示/追加/編集/削除するページ、およびSQLファイルが生成される。 +EnterNameOfModuleDesc=作成するモジュール/アプリケーションの名前をスペースなしで入力する。大文字を使用して単語を区切る(例:MyModule、EcommerceForShop、SyncWithMySystem ...) +EnterNameOfObjectDesc=作成するオブジェクトの名前をスペースなしで入力する。大文字を使用して単語を区切る(例:MyObject、Student、Teacher ...)。 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 )。 +ModuleBuilderDescdescription=モジュールを説明する全一般情報をここに入力する。 +ModuleBuilderDescspecifications=まだ他のタブに構造化されていないモジュール仕様の詳細説明をここに入力できる。したがって、開発する全ルールに簡単にアクセスできる。また、このテキストコンテンツは、生成されたドキュメントに含まれる(最後のタブを参照)。 Markdown形式を使用できるが、Asciidoc形式を使用することをお勧めする(.mdと.asciidocの比較: http://asciidoctor.org/docs/user-manual/#compared-to-markdown )。 ModuleBuilderDescobjects=ここで、モジュールで管理するオブジェクトを定義する。 CRUD DAOクラス、SQLファイル、オブジェクトのレコードを一覧表示するページ、レコードを作成/編集/表示するためのページ、およびAPIが生成される。 ModuleBuilderDescmenus=このタブは、モジュールによって提供されるメニューエントリを定義するためのもの。 ModuleBuilderDescpermissions=このタブは、モジュールに提供する新規権限を定義するためのもの。 @@ -21,14 +24,14 @@ ModuleBuilderDesctriggers=これは、モジュールによって提供される ModuleBuilderDeschooks=このタブはフック専用。 ModuleBuilderDescwidgets=このタブは、ウィジェットの管理/構築専用。 ModuleBuilderDescbuildpackage=ここで、モジュールの「配布準備完了」パッケージファイル(正規化された.zipファイル)と「配布準備完了」ドキュメントファイルを生成できる。ボタンをクリックするだけで、パッケージまたはドキュメントファイルを作成できる。 -EnterNameOfModuleToDeleteDesc=モジュールを削除できる。警告:モジュールのすべてのコーディングファイル(手動で生成または作成されたもの)および構造化されたデータとドキュメントは削除される! -EnterNameOfObjectToDeleteDesc=オブジェクトを削除できる。警告:オブジェクトに関連するすべてのコーディングファイル(手動で生成または作成されたもの)は削除される! +EnterNameOfModuleToDeleteDesc=モジュールを削除できる。警告:モジュールの全コーディングファイル(手動で生成または作成されたもの)および構造化されたデータとドキュメントは削除される! +EnterNameOfObjectToDeleteDesc=オブジェクトを削除できる。警告:オブジェクトに関連する全コーディングファイル(手動で生成または作成されたもの)は削除される! DangerZone=危険区域 BuildPackage=パッケージをビルドする BuildPackageDesc=アプリケーションのzipパッケージを生成して、Dolibarrで配布する準備を整えることができる。また、 DoliStore.comのようなマーケットプレイスで配布または販売することもできる。 BuildDocumentation=ドキュメントを作成する -ModuleIsNotActive=このモジュールはまだアクティブ化されていない。 %sにアクセスしてライブにするか、ここをクリックすること -ModuleIsLive=このモジュールはアクティブ化されている。変更を加えると、現在のライブ機能が破損する可能性がある。 +ModuleIsNotActive=このモジュールはまだ有効化されていない。 %sにアクセスしてライブにするか、ここをクリックすること +ModuleIsLive=このモジュールは有効化されている。変更を加えると、現在のライブ機能が破損する可能性がある。 DescriptionLong=長い説明 EditorName=編集者の名前 EditorUrl=編集者のURL @@ -52,10 +55,10 @@ LanguageFile=言語のファイル ObjectProperties=オブジェクトのプロパティ ConfirmDeleteProperty=プロパティ%s を削除してもよいか?これにより、PHPクラスのコードが変更されるが、オブジェクトのテーブル定義から列も削除される。 NotNull=NULLではない -NotNullDesc=1 =データベースをNOTNULLに設定する。 -1 = null値を許可し、空( ''または0)の場合は値をNULLに強制する。 +NotNullDesc=1=データベースを NOT NULL に設定、0=null値を許可、-1=空の場合に値をNULLに強制することでnull値を許可(''または0) SearchAll=「すべて検索」に使用 DatabaseIndex=データベースインデックス -FileAlreadyExists=ファイル%sはすでに存在する +FileAlreadyExists=ファイル%sは既に存在する TriggersFile=トリガーコードのファイル HooksFile=フックコードのファイル ArrayOfKeyValues=key-valの配列 @@ -72,7 +75,7 @@ PageForObjLib=オブジェクト専用のPHPライブラリのファイル SqlFileExtraFields=補完属性のSQLファイル SqlFileKey=キーのSQLファイル SqlFileKeyExtraFields=補完的な属性のキーのSQLファイル -AnObjectAlreadyExistWithThisNameAndDiffCase=この名前と別の大文字小文字のオブジェクトはすでに存在する +AnObjectAlreadyExistWithThisNameAndDiffCase=この名前と別の大文字小文字のオブジェクトは既に存在する UseAsciiDocFormat=Markdown形式を使用できるが、Asciidoc形式を使用することをお勧めする(.mdと.asciidocの比較: http://asciidoctor.org/docs/user-manual/#compared-to-markdown ) IsAMeasure=尺度は DirScanned=スキャンされたディレクトリ @@ -82,21 +85,21 @@ GoToApiExplorer=APIエクスプローラー ListOfMenusEntries=メニューエントリのリスト ListOfDictionariesEntries=辞書エントリのリスト ListOfPermissionsDefined=定義された権限のリスト -SeeExamples=こちらの例をご覧ください +SeeExamples=こちらの例を見ること EnabledDesc=このフィールドをアクティブにする条件(例:1または$ conf-> global-> MYMODULE_MYOPTION) VisibleDesc=フィールドは表示されているか? (例:0 =表示されない、1 =リストおよび作成/更新/表示フォームで表示、2 =リストでのみ表示、3 =作成/更新/表示フォームでのみ表示(リストではない)、4 =リストおよび更新/表示フォームでのみ表示(作成しない)、5 =リストおよび表示フォームでのみ表示(作成しない、更新しない)

    負の値を使用すると、フィールドはデフォルトでリストに表示されないが、表示用に選択できる)。

    これは、次のような式にできる。例:
    preg_match('/public/', $_SERVER['PHP_SELF'])?0:
    ($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) SearchAllDesc=クイック検索ツールから検索するためにフィールドが使用されているか? (例:1または0) -SpecDefDesc=他のタブでまだ定義されていない、モジュールで提供するすべてのドキュメントをここに入力する。豊富な.asciidoc構文である.md以上を使用できる。 -LanguageDefDesc=このファイルに、各言語ファイルのすべてのキーと翻訳を入力する。 +SpecDefDesc=他のタブでまだ定義されていない、モジュールで提供する全ドキュメントをここに入力する。豊富な.asciidoc構文である.md以上を使用できる。 +LanguageDefDesc=このファイルに、各言語ファイルの全キーと翻訳を入力する。 MenusDefDesc=モジュールが提供するメニューをここで定義する DictionariesDefDesc=モジュールが提供する辞書をここで定義する PermissionsDefDesc=モジュールによって提供される新規権限をここで定義する -MenusDefDescTooltip=モジュール/アプリケーションによって提供されるメニューは、モジュール記述子ファイルの配列 $ this-> menusに定義されている。このファイルを手動で編集するか、埋め込みエディターを使用できる。

    注:定義されると(およびモジュールが再アクティブ化されると)、メニューは%sの管理者ユーザーが使用できるメニューエディターにも表示される。 -DictionariesDefDescTooltip=モジュール/アプリケーションによって提供されるディクショナリは、モジュール記述子ファイルの配列 $ this-> dictionariesに定義されている。このファイルを手動で編集するか、埋め込みエディターを使用できる。

    注:定義(およびモジュールの再アクティブ化)が完了すると、%sの管理者ユーザーには辞書も設定領域に表示される。 -PermissionsDefDescTooltip=モジュール/アプリケーションによって提供されるアクセス許可は、配列 $ this-> rightsにモジュール記述子ファイルに定義される。このファイルを手動で編集するか、埋め込みエディターを使用できる。

    注:定義されると(およびモジュールが再アクティブ化されると)、アクセス許可はデフォルトのアクセス許可設定%sに表示される。 +MenusDefDescTooltip=モジュール/アプリケーションによって提供されるメニューは、モジュール記述子ファイルの配列 $ this->menusに定義されている。このファイルを手動で編集するか、埋め込みエディターを使用できる。

    注:定義されると(およびモジュールが再有効化されると)、メニューは%sの管理者ユーザが使用できるメニューエディターにも表示される。 +DictionariesDefDescTooltip=モジュール/アプリケーションによって提供されるディクショナリは、モジュール記述子ファイルの配列 $ this-> dictionariesに定義されている。このファイルを手動で編集するか、埋め込みエディターを使用できる。

    注:定義(およびモジュールの再有効化)が完了すると、%sの管理者ユーザには辞書も設定領域に表示される。 +PermissionsDefDescTooltip=モジュール/アプリケーションによって提供されるアクセス許可は、配列 $ this-> rightsにモジュール記述子ファイルに定義される。このファイルを手動で編集するか、埋め込みエディターを使用できる。

    注:定義されると(およびモジュールが再有効化されると)、アクセス許可はデフォルトのアクセス許可設定%sに表示される。 HooksDefDesc=定義する:管理したいフックのコンテキストを module_parts['hooks'] プロパティのモジュール記述子の中に。 (コンテキストのリストは、コアコードで 'initHooks(' を検索すると見つかる).
    編集する:フックされた関数のコードを追加するためのフックファイルを。 (フック可能な関数は、コアコードで 'executeHooks' を検索すると見つかる). TriggerDefDesc=モジュールの外部のビジネスイベント(他のモジュールによってトリガーされるイベント)が実行されるときに実行するコードをトリガーファイルで定義する。 SeeIDsInUse=インストールで使用されているIDを確認する @@ -110,7 +113,7 @@ DropTableIfEmpty=(空の場合はテーブルを破棄する) TableDoesNotExists=テーブル%sは存在しない TableDropped=テーブル%sが削除された InitStructureFromExistingTable=既存のテーブルの構造体配列文字列を作成する -UseAboutPage=アバウトページを無効にする +UseAboutPage=Aboutページを生成しないこと UseDocFolder=ドキュメントフォルダを無効にする UseSpecificReadme=特定のReadMeを使用する ContentOfREADMECustomized=注:README.mdファイルの内容は、ModuleBuilderの設定で定義された特定の値に置き換えられている。 @@ -127,9 +130,9 @@ UseSpecificEditorURL = 特定のエディターURLを使用する UseSpecificFamily = 特定の家族を使用する UseSpecificAuthor = 特定の作成者を使用する UseSpecificVersion = 特定の初期バージョンを使用する -IncludeRefGeneration=オブジェクトの参照は自動的に生成される必要がある -IncludeRefGenerationHelp=参照の生成を自動的に管理するコードを含める場合は、これをチェックすること -IncludeDocGeneration=オブジェクトからいくつかのドキュメントを生成したい +IncludeRefGeneration=オブジェクトの参照は、カスタム採番ルールによって自動的に生成される必要がある +IncludeRefGenerationHelp=カスタム採番ルールを使用して参照の生成を自動的に管理するコードを含める場合は、これをチェックすること +IncludeDocGeneration=オブジェクトのテンプレートからいくつかのドキュメントを生成したい IncludeDocGenerationHelp=これをチェックすると、レコードに「ドキュメントの生成」ボックスを追加するためのコードが生成される。 ShowOnCombobox=コンボボックスに値を表示する KeyForTooltip=ツールチップのキー @@ -138,10 +141,16 @@ 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' は、コンボの後に+ボタンを追加してレコードを作成することを意味する、 'filter' は例えば、 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' ) +TypeOfFieldsHelp=フィールドのタイプ:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1'は、コンボの後に+ボタンを追加して、レコードを作成することを意味する
    'filter' はSQLの条件文、例: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=アスキーからHTMLへのコンバーター AsciiToPdfConverter=アスキーからPDFへのコンバーター TableNotEmptyDropCanceled=テーブルが空ではない。ドロップはキャンセルされた。 ModuleBuilderNotAllowed=モジュールビルダーは利用できるが、あなたのユーザには許可されていない。 ImportExportProfiles=プロファイルのインポートとエクスポート -ValidateModBuilderDesc=このフィールドが $this->validateField() で検証済であるべき場合は 1 を、検証が必要な場合は 0 を入力する。 +ValidateModBuilderDesc=挿入または更新中にフィールドの内容を検証ために呼び出されるオブジェクトの $this->validateField() メソッドがある場合、これを1に設定する。検証が必要ない場合は0を設定する。 +WarningDatabaseIsNotUpdated=警告:データベースは自動的に更新済にならない。テーブルを破棄し、モジュールを 無効 - 有効 にしてテーブルを再作成する必要がある +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 5fcc7bc9fae..663143a5c52 100644 --- a/htdocs/langs/ja_JP/mrp.lang +++ b/htdocs/langs/ja_JP/mrp.lang @@ -15,9 +15,9 @@ ListOfBOMs=部品表のリスト - BOM ListOfManufacturingOrders=製造注文のリスト NewBOM=新規部品表 ProductBOMHelp=このBOMで作成(または分解)する製品。
    注:プロパティ「製品目」=「原材料」を持つ製品はこのリストに表示されない。 -BOMsNumberingModules=BOM番号付けテンプレート +BOMsNumberingModules=BOM採番テンプレート BOMsModelModule=BOMドキュメントテンプレート -MOsNumberingModules=MOナンバリングテンプレート +MOsNumberingModules=MO採番テンプレート MOsModelModule=MOドキュメントテンプレート FreeLegalTextOnBOMs=BOMのドキュメントのフリーテキスト WatermarkOnDraftBOMs=下書きBOMの透かし @@ -27,7 +27,7 @@ ConfirmCloneBillOfMaterials=部品表%sのクローンを作成してよいか ConfirmCloneMo=製造指図%sのクローンを作成してよいか? ManufacturingEfficiency=製造効率 ConsumptionEfficiency=消費効率 -ValueOfMeansLoss=0.95の値は、製造中または分解中の平均5%%の損失を意味します。 +ValueOfMeansLoss=0.95の値は、製造中または分解中の平均5%%の損失を意味する。 ValueOfMeansLossForProductProduced=0.95の値は、生産された製品の損失の平均5%%を意味する DeleteBillOfMaterials=部品表を削除 DeleteMo=製造指図を削除 @@ -49,7 +49,7 @@ QtyFrozen=凍結量 QuantityFrozen=凍結数量 QuantityConsumedInvariable=このフラグが設定されている場合、消費された数量は常に定義された値であり、生産された数量に相対的ではない。 DisableStockChange=在庫変更が無効 -DisableStockChangeHelp=このフラグが設定されている場合、消費量に関係なく、この製品の在庫は変更されません。 +DisableStockChangeHelp=このフラグが設定されている場合、消費量に関係なく、この製品の在庫は変更されない。 BomAndBomLines=部品表とライン BOMLine=BOMのライン WarehouseForProduction=生産のための倉庫 @@ -57,18 +57,20 @@ CreateMO=MOを作成 ToConsume=消費するには ToProduce=生産するには ToObtain=入手するには -QtyAlreadyConsumed=すでに消費された数量 -QtyAlreadyProduced=すでに生産された数量 +QtyAlreadyConsumed=既に消費された数量 +QtyAlreadyProduced=既に生産された数量 QtyRequiredIfNoLoss=損失がない場合は必要な数量(製造効率は100%%) ConsumeOrProduce=消費または生産 ConsumeAndProduceAll=すべてを消費して生産する Manufactured=製造完了 -TheProductXIsAlreadyTheProductToProduce=追加する製品は、すでに生産する製品。 +TheProductXIsAlreadyTheProductToProduce=追加する製品は、既に生産する製品。 ForAQuantityOf=%sの生産数量について ForAQuantityToConsumeOf=%sを分解する数量に対して ConfirmValidateMo=この製造指図を検証してよいか? -ConfirmProductionDesc='%s'をクリックすると、設定された数量の消費および/または生産を検証する。これにより、在庫が更新され、在庫推移が記録される。 +ConfirmProductionDesc='%s'をクリックすると、設定された数量の消費および/または生産を検証。これにより、在庫が更新され、在庫推移が記録される。 ProductionForRef=%sの生産 +CancelProductionForRef=製品%sの製品在庫減少のキャンセル +TooltipDeleteAndRevertStockMovement=行を削除し、在庫移動を元に戻す AutoCloseMO=消費および生産する数量に達した場合、製造指図を自動的に閉じる NoStockChangeOnServices=サービスの在庫変更はない ProductQtyToConsumeByMO=オープンMOで今後も消費する製品数量 @@ -107,3 +109,6 @@ THMEstimatedHelp=このレートにより、アイテムの予測コストを定 BOM=部品表 CollapseBOMHelp=BOMモジュールの構成で、命名法の詳細のデフォルト表示を定義できる。 MOAndLines=製造オーダーとライン +MoChildGenerate=子Moを生成する +ParentMo=親MO +MOChild=子MO diff --git a/htdocs/langs/ja_JP/multicurrency.lang b/htdocs/langs/ja_JP/multicurrency.lang index da5c08ced40..4b49fe45281 100644 --- a/htdocs/langs/ja_JP/multicurrency.lang +++ b/htdocs/langs/ja_JP/multicurrency.lang @@ -19,7 +19,7 @@ MulticurrencyRemainderToTake=残額、元の通貨 MulticurrencyPaymentAmount=支払額、元の通貨 AmountToOthercurrency=金額(受取口座の通貨) CurrencyRateSyncSucceed=為替レートの同期が正常に実行された -MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=オンライン支払いにはドキュメントの通貨を使用する +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=オンライン支払にはドキュメントの通貨を使用する TabTitleMulticurrencyRate=料金表 ListCurrencyRate=通貨の為替レートのリスト CreateRate=レートを作成する @@ -35,4 +35,4 @@ ErrorUpdateRate=レート変更時のエラー Codemulticurrency=通貨コード UpdateRate=レートを変更する CancelUpdate=キャンセル -NoEmptyRate=レートフィールドは空であってはなりません +NoEmptyRate=レートフィールドは空であってはならない diff --git a/htdocs/langs/ja_JP/oauth.lang b/htdocs/langs/ja_JP/oauth.lang index 376b42a2717..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/opensurvey.lang b/htdocs/langs/ja_JP/opensurvey.lang index ef0f22c3b80..4fc242fbad5 100644 --- a/htdocs/langs/ja_JP/opensurvey.lang +++ b/htdocs/langs/ja_JP/opensurvey.lang @@ -12,19 +12,19 @@ ToReceiveEMailForEachVote=投票ごとにメールを受け取る TypeDate=日付を入力 TypeClassic=タイプスタンダード OpenSurveyStep2=休日(灰色)の中から日付を選択する。選択した日は緑色。以前に選択した日をもう一度クリックすると、選択を解除できる -RemoveAllDays=すべての日を削除する +RemoveAllDays=全日を削除する CopyHoursOfFirstDay=初日のコピー時間 -RemoveAllHours=すべての時間を削除する +RemoveAllHours=全時間を削除する SelectedDays=選択した日 TheBestChoice=現在の最良の選択は TheBestChoices=現在の最良の選択は with=と -OpenSurveyHowTo=この投票に投票することに同意する場合は、名前を付け、自分に最適な値を選択し、行末のプラスボタンで検証する必要がある。 +OpenSurveyHowTo=この投票に投票することに同意する場合は、名前を付け、自分に最適な値を選択し、行末のプラスボタンで要検証。 CommentsOfVoters=有権者のコメント -ConfirmRemovalOfPoll=この投票(およびすべての投票)を削除してもよいか? +ConfirmRemovalOfPoll=この投票(および全投票)を削除してもよいか? RemovePoll=投票を削除する UrlForSurvey=投票に直接アクセスするために通信するURL -PollOnChoice=投票の複数の選択肢を作成するための投票を作成している。まず、投票で可能なすべての選択肢を入力する。 +PollOnChoice=投票の複数の選択肢を作成するための投票を作成している。まず、投票で可能な全選択肢を入力する。 CreateSurveyDate=日付投票を作成する CreateSurveyStandard=標準の投票を作成する CheckBox=シンプルなチェックボックス @@ -37,11 +37,11 @@ ExpireDate=日付を制限する NbOfSurveys=投票数 NbOfVoters=投票者数 SurveyResults=結果 -PollAdminDesc=「編集」ボタンを使用して、この投票のすべての投票行を変更できる。 %sを使用して列または行を削除することもできる。 %sを使用して新規列を追加することもできる。 +PollAdminDesc=「編集」ボタンを使用して、この投票の全投票行を変更できる。 %sを使用して列または行を削除することもできる。 %sを使用して新規列を追加することもできる。 5MoreChoices=さらに5つの選択肢 Against=に対して YouAreInivitedToVote=この投票に投票すること -VoteNameAlreadyExists=この名前はすでにこの投票に使用されていた +VoteNameAlreadyExists=この名前は既にこの投票に使用されていた AddADate=日付を追加する AddStartHour=開始時間を追加 AddEndHour=終了時間を追加する @@ -60,4 +60,4 @@ MoreChoices=有権者のためのより多くの選択肢を入力すること SurveyExpiredInfo=投票が終了したか、投票の遅延が期限切れになった。 EmailSomeoneVoted=%sが行を埋めました。\nあなたはリンクであなたの投票を見つけることができる:\n%s ShowSurvey=アンケートを表示 -UserMustBeSameThanUserUsedToVote=コメントを投稿するには、投票して、投票に使用したのと同じユーザー名を使用する必要がある +UserMustBeSameThanUserUsedToVote=コメントを投稿するには、投票して、投票に使用したのと同じユーザ名を使用する必要がある diff --git a/htdocs/langs/ja_JP/orders.lang b/htdocs/langs/ja_JP/orders.lang index c0f21bdc34f..79d1c47c9d9 100644 --- a/htdocs/langs/ja_JP/orders.lang +++ b/htdocs/langs/ja_JP/orders.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - orders +OrderExists=この提案にリンクされた注文はすでに開かれているため、他の注文は自動的に作成されませんでした OrdersArea=お客様の注文エリア -SuppliersOrdersArea=注文書エリア +SuppliersOrdersArea=購買発注エリア OrderCard=注文カード OrderId=注文ID Order=注文 @@ -12,14 +13,14 @@ OrderDateShort=注文日 OrderToProcess=プロセスの順序 NewOrder=新規注文 NewSupplierOrderShort=新規注文 -NewOrderSupplier=新規注文書 +NewOrderSupplier=新規購買発注 ToOrder=順序を作る MakeOrder=順序を作る -SupplierOrder=注文書 -SuppliersOrders=注文書 +SupplierOrder=購買発注 +SuppliersOrders=購買発注 SaleOrderLines=受注明細 PurchaseOrderLines=購入注文ライン -SuppliersOrdersRunning=現在の注文書 +SuppliersOrdersRunning=現在の購買発注 CustomerOrder=販売注文 CustomersOrders=受注 CustomersOrdersRunning=現在の販売注文 @@ -28,12 +29,12 @@ OrdersDeliveredToBill=請求書に配信された販売注文 OrdersToBill=納品された販売注文 OrdersInProcess=進行中の販売注文 OrdersToProcess=処理する受注 -SuppliersOrdersToProcess=処理する注文書 -SuppliersOrdersAwaitingReception=受付待ちの注文書 -AwaitingReception=受付待ち +SuppliersOrdersToProcess=処理する購買発注 +SuppliersOrdersAwaitingReception=領収待ちの購買発注 +AwaitingReception=領収待ち StatusOrderCanceledShort=キャンセル StatusOrderDraftShort=下書き -StatusOrderValidatedShort=検証 +StatusOrderValidatedShort=検証済 StatusOrderSentShort=プロセスの StatusOrderSent=発送中 StatusOrderOnProcessShort=順序付けられた @@ -47,16 +48,16 @@ StatusOrderToProcessShort=処理するには StatusOrderReceivedPartiallyShort=部分的に受け StatusOrderReceivedAllShort=受け取った製品 StatusOrderCanceled=キャンセル -StatusOrderDraft=下書き(検証する必要がある) -StatusOrderValidated=検証 -StatusOrderOnProcess=注文済 - 受付待機 -StatusOrderOnProcessWithValidation=注文済 - 受付または検証を待機 +StatusOrderDraft=下書き(要検証済) +StatusOrderValidated=検証済 +StatusOrderOnProcess=注文済 - 領収待機 +StatusOrderOnProcessWithValidation=注文済 - 領収または検証を待機 StatusOrderProcessed=処理 StatusOrderToBill=請求する StatusOrderApproved=承認された StatusOrderRefused=拒否 StatusOrderReceivedPartially=部分的に受け -StatusOrderReceivedAll=受け取ったすべての製品 +StatusOrderReceivedAll=受け取った全製品 ShippingExist=出荷が存在する QtyOrdered=数量は、注文された ProductQtyInDraft=下書き注文への製品数量 @@ -68,28 +69,30 @@ CreateOrder=順序を作成する。 RefuseOrder=順番を拒否 ApproveOrder=注文を承認する Approve2Order=注文の承認(第2レベル) -ValidateOrder=順序を検証する -UnvalidateOrder=順序をUnvalidate +UserApproval=承認のためのユーザ +UserApproval2=承認のためのユーザ(第2レベル) +ValidateOrder=注文を検証 +UnvalidateOrder=注文を未検証に DeleteOrder=順序を削除する CancelOrder=注文を取り消す OrderReopened= %sを再度開くように注文する AddOrder=注文を作成する AddSupplierOrderShort=注文を作成する -AddPurchaseOrder=注文書を作成する +AddPurchaseOrder=購買発注を作成する AddToDraftOrders=下書き注文に追加 ShowOrder=順序を示す OrdersOpened=処理する注文 NoDraftOrders=下書き注文はない NoOrder=注文なし -NoSupplierOrder=注文書なし +NoSupplierOrder=購買発注なし LastOrders=最新の%s販売注文 LastCustomerOrders=最新の%s販売注文 -LastSupplierOrders=最新の%s注文書 +LastSupplierOrders=最新の%s購買発注 LastModifiedOrders=最新の%s変更された注文 -AllOrders=すべての注文 +AllOrders=全注文 NbOfOrders=注文数 OrdersStatistics=注文の統計 -OrdersStatisticsSuppliers=注文書の統計 +OrdersStatisticsSuppliers=購買発注の統計 NumberOfOrdersByMonth=月別受注数 AmountOfOrdersByMonthHT=月別のご注文金額(税込) ListOfOrders=注文の一覧 @@ -97,13 +100,15 @@ CloseOrder=密集隊形 ConfirmCloseOrder=この注文を配信済に設定してもよいか?注文が配信されると、請求に設定できる。 ConfirmDeleteOrder=この注文を削除してもよいか? ConfirmValidateOrder=この注文を%s という名前で検証してもよいか? -ConfirmUnvalidateOrder=注文%s を下書きステータスに復元してもよいか? +ConfirmUnvalidateOrder=注文%s を下書き状態に復元してもよいか? ConfirmCancelOrder=この注文をキャンセルしてもよいか? ConfirmMakeOrder= %s でこの注文をしたことを確定するか? GenerateBill=請求書を生成する。 ClassifyShipped=配信された分類 +PassedInShippedStatus=配送済指定 +YouCantShipThis=これは分類できない。ユーザ権限を確認すること DraftOrders=下書き注文 -DraftSuppliersOrders=注文書の下書き +DraftSuppliersOrders=下書き購買発注 OnProcessOrders=プロセス受注 RefOrder=REF。注文 RefCustomerOrder=参照。顧客の注文 @@ -111,28 +116,28 @@ RefOrderSupplier=参照。ベンダーの注文 RefOrderSupplierShort=参照。注文ベンダー SendOrderByMail=メールで注文を送る ActionsOnOrder=ためのイベント -NoArticleOfTypeProduct=この注文のため、型 '製品'なし発送の記事のない記事ません +NoArticleOfTypeProduct='製品'型の項目がないので、この注文には発送の項目がない OrderMode=注文·メソッド -AuthorRequest=リクエストの作成者 -UserWithApproveOrderGrant=ユーザーは、 "注文を承認する"権限が付与された。 -PaymentOrderRef=注文の%sの支払い +AuthorRequest=要求の作成者 +UserWithApproveOrderGrant=ユーザは、 "注文を承認する"権限が付与された。 +PaymentOrderRef=注文の%sの支払 ConfirmCloneOrder=この注文のクローンを作成してもよいか%s ? -DispatchSupplierOrder=注文書の受信%s -FirstApprovalAlreadyDone=最初の承認はすでに行われている -SecondApprovalAlreadyDone=2回目の承認はすでに完了している -SupplierOrderReceivedInDolibarr=注文書%sが%sを受け取りた -SupplierOrderSubmitedInDolibarr=注文書%sが提出された -SupplierOrderClassifiedBilled=注文書%sセットの請求 +DispatchSupplierOrder=購買発注の受信%s +FirstApprovalAlreadyDone=最初の承認は既に行われている +SecondApprovalAlreadyDone=2回目の承認は既に完了している +SupplierOrderReceivedInDolibarr=購買発注%sが%sを受け取りた +SupplierOrderSubmitedInDolibarr=購買発注%sが提出された +SupplierOrderClassifiedBilled=購買発注%sセットの請求 OtherOrders=他の注文 -SupplierOrderValidatedAndApproved=サプライヤーの注文は検証および承認されている:%s -SupplierOrderValidated=サプライヤーの注文が検証される:%s +SupplierOrderValidatedAndApproved=サプライヤーの注文は検証済および承認されている:%s +SupplierOrderValidated=サプライヤーの注文が検証済される:%s ##### Types de contacts ##### 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_SALESREPFOLL=代表的なフォローアップ購買発注 TypeContact_order_supplier_internal_SHIPPING=代表的なフォローアップ出荷 TypeContact_order_supplier_external_BILLING=ベンダー請求書連絡先 TypeContact_order_supplier_external_SHIPPING=仕入先配送担当者 @@ -153,24 +158,24 @@ PDFEdisonDescription=単純な次のモデル PDFProformaDescription=完全な 見積請求書 テンプレート CreateInvoiceForThisCustomer=請求書注文 CreateInvoiceForThisSupplier=請求書注文 -CreateInvoiceForThisReceptions=ビル受付 +CreateInvoiceForThisReceptions=ビル領収 NoOrdersToInvoice=請求可能な注文はない -CloseProcessedOrdersAutomatically=選択したすべての注文を「処理済」に分類する。 +CloseProcessedOrdersAutomatically=選択した全注文を「処理済」に分類する。 OrderCreation=注文の作成 Ordered=順序付けられた OrderCreated=注文が作成された OrderFail=注文の作成中にエラーが発生した CreateOrders=注文を作成する ToBillSeveralOrderSelectCustomer=複数の注文の請求書を作成するには、最初に顧客をクリックしてから、「%s」を選択する。 -OptionToSetOrderBilledNotEnabled=モジュールワークフローのオプションで、請求書検証時に注文を自動的に「請求済」に設定するオプションが有効になっていないため、請求書が生成された後、注文のステータスを手動で「請求済」に設定する必要がある。 -IfValidateInvoiceIsNoOrderStayUnbilled=請求書検証が「いいえ」の場合、請求書が検証されるまで、注文はステータス「未請求」のままになる。 -CloseReceivedSupplierOrdersAutomatically=すべての製品を受け取ったら、注文を自動的にステータス「%s」に閉じる。 +OptionToSetOrderBilledNotEnabled=モジュールワークフローのオプションで、請求書検証済時に注文を自動的に「請求済」に設定するオプションが有効になっていないため、請求書が生成された後、注文の状態を手動で「請求済」に設定する必要がある。 +IfValidateInvoiceIsNoOrderStayUnbilled=請求書検証済が「いいえ」の場合、請求書が検証済されるまで、注文は状態「未請求」のままになる。 +CloseReceivedSupplierOrdersAutomatically=全製品を受け取ったら、注文を自動的に状態「%s」に閉じる。 SetShippingMode=配送モードを設定する -WithReceptionFinished=受付終了 +WithReceptionFinished=領収終了 #### supplier orders status StatusSupplierOrderCanceledShort=キャンセル StatusSupplierOrderDraftShort=下書き -StatusSupplierOrderValidatedShort=検証 +StatusSupplierOrderValidatedShort=検証済 StatusSupplierOrderSentShort=プロセスの StatusSupplierOrderSent=発送中 StatusSupplierOrderOnProcessShort=順序付けられた @@ -184,13 +189,13 @@ StatusSupplierOrderToProcessShort=処理するには StatusSupplierOrderReceivedPartiallyShort=部分的に受け StatusSupplierOrderReceivedAllShort=受け取った製品 StatusSupplierOrderCanceled=キャンセル -StatusSupplierOrderDraft=下書き(検証する必要がある) -StatusSupplierOrderValidated=検証 -StatusSupplierOrderOnProcess=注文済-スタンバイ受信 -StatusSupplierOrderOnProcessWithValidation=注文済-スタンバイ受信または検証 +StatusSupplierOrderDraft=下書き(要検証済) +StatusSupplierOrderValidated=検証済 +StatusSupplierOrderOnProcess=注文済-スタンバイ受領 +StatusSupplierOrderOnProcessWithValidation=注文済-スタンバイ受領または検証 StatusSupplierOrderProcessed=処理 StatusSupplierOrderToBill=請求する StatusSupplierOrderApproved=承認された StatusSupplierOrderRefused=拒否 StatusSupplierOrderReceivedPartially=部分的に受け -StatusSupplierOrderReceivedAll=受け取ったすべての製品 +StatusSupplierOrderReceivedAll=受け取った全製品 diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index 99dc53f5c12..2130e94c730 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -3,7 +3,7 @@ SecurityCode=セキュリティコード NumberingShort=番号 Tools=ツール TMenuTools=ツールs -ToolsDesc=他のメニューエントリに含まれていないすべてのツールがここにグループ化される。
    すべてのツールは左側のメニューからアクセスできる。 +ToolsDesc=他のメニューエントリに含まれていない全ツールがここにグループ化される。
    全ツールは左側のメニューからアクセスできる。 Birthday=誕生日 BirthdayAlertOn=誕生日アラートアクティブ BirthdayAlertOff=非アクティブな誕生日アラート @@ -19,11 +19,11 @@ CurrentMonth=今月 ZipFileGeneratedInto= %sに生成されたZipファイル。 DocFileGeneratedInto= %sに生成されたドキュメントファイル。 JumpToLogin=切断された。ログインページに移動... -MessageForm=オンライン支払いフォームのメッセージ -MessageOK=確認済の支払いの返品ページのメッセージ -MessageKO=キャンセルされた支払いの返品ページのメッセージ +MessageForm=オンライン支払フォームのメッセージ +MessageOK=確認済の支払の返品ページのメッセージ +MessageKO=キャンセルされた支払の返品ページのメッセージ ContentOfDirectoryIsNotEmpty=このディレクトリの内容は空ではない。 -DeleteAlsoContentRecursively=チェックすると、すべてのコンテンツが再帰的に削除される +DeleteAlsoContentRecursively=チェックすると、全コンテンツが再帰的に削除される PoweredBy=搭載 YearOfInvoice=請求日の年 PreviousYearOfInvoice=請求日の前年 @@ -35,52 +35,52 @@ OnlyOneFieldForXAxisIsPossible=現在、X軸として使用できるフィール AtLeastOneMeasureIsRequired=測定には少なくとも1つのフィールドが必要 AtLeastOneXAxisIsRequired=X軸には少なくとも1つのフィールドが必要 LatestBlogPosts=最新のブログ投稿 -notiftouser=ユーザーへ +notiftouser=ユーザへ notiftofixedemail=定型メールへ -notiftouserandtofixedemail=ユーザーと定型メールへ -Notify_ORDER_VALIDATE=検証済の販売注文 +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_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_PROPAL_SENTBYMAIL=電子メールによって送信された商取引提案 Notify_WITHDRAW_TRANSMIT=伝送撤退 Notify_WITHDRAW_CREDIT=クレジット撤退 Notify_WITHDRAW_EMIT=撤退を実行する。 Notify_COMPANY_CREATE=第三者が作成した Notify_COMPANY_SENTBYMAIL=取引先のカードから送信されたメール -Notify_BILL_VALIDATE=顧客への請求書が検証さ +Notify_BILL_VALIDATE=顧客への請求書は検証済 Notify_BILL_UNVALIDATE=顧客の請求書は未検証 Notify_BILL_PAYED=顧客の請求書は支払済 -Notify_BILL_CANCEL=顧客への請求書が取り消されました +Notify_BILL_CANCEL=顧客への請求書が取り消された Notify_BILL_SENTBYMAIL=メールで送信された顧客への請求書 -Notify_BILL_SUPPLIER_VALIDATE=ベンダーの請求書が検証された +Notify_BILL_SUPPLIER_VALIDATE=仕入先の請求書は検証済 Notify_BILL_SUPPLIER_PAYED=支払われたベンダーの請求書 Notify_BILL_SUPPLIER_SENTBYMAIL=メールで送信されるベンダーの請求書 Notify_BILL_SUPPLIER_CANCELED=ベンダーの請求書がキャンセルされた -Notify_CONTRACT_VALIDATE=検証済の契約 -Notify_FICHINTER_VALIDATE=介入検証 +Notify_CONTRACT_VALIDATE=契約は検証済 +Notify_FICHINTER_VALIDATE=出張は検証済 Notify_FICHINTER_ADD_CONTACT=介入への連絡先を追加 Notify_FICHINTER_SENTBYMAIL=郵送による介入 -Notify_SHIPPING_VALIDATE=送料は、検証 +Notify_SHIPPING_VALIDATE=送料は検証済 Notify_SHIPPING_SENTBYMAIL=電子メールによって送信された商品 -Notify_MEMBER_VALIDATE=メンバー検証 -Notify_MEMBER_MODIFY=メンバーが変更された -Notify_MEMBER_SUBSCRIPTION=メンバー購読 -Notify_MEMBER_RESILIATE=メンバーが終了した -Notify_MEMBER_DELETE=メンバーが削除されました +Notify_MEMBER_VALIDATE=構成員は検証済 +Notify_MEMBER_MODIFY=構成員が変更された +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_VALIDATE=経費報告書は検証済(要承認 ) Notify_EXPENSE_REPORT_APPROVE=経費報告書が承認された -Notify_HOLIDAY_VALIDATE=リクエストを検証したままにする(承認が必要 ) -Notify_HOLIDAY_APPROVE=リクエストを承認したままにする +Notify_HOLIDAY_VALIDATE=休暇申請を検証済したままにする(承認が必要 ) +Notify_HOLIDAY_APPROVE=休暇申請を承認したままにする Notify_ACTION_CREATE=アジェンダにアクションを追加 SeeModuleSetup=モジュール%sの設定を参照すること NbOfAttachedFiles=添付ファイル/文書の数 @@ -94,41 +94,41 @@ PredefinedMailTestHtml=__(Hello)__
    これは__EMAIL__に送信される 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__ +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 +PredefinedMailContentLink=まだ行っていない場合は、下のリンクをクリックして支払を行うことができる。\n\n%s\n\n PredefinedMailContentGeneric=__(こんにちは)__\n\n\n__(誠意をこめて)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendActionComm=__EVENT_DATE__の__EVENT_TIME__のイベントリマインダー「__EVENT_LABEL __」

    これは自動メッセージ 。返信しないこと。 -DemoDesc=Dolibarrは、いくつかのビジネスモジュールをサポートするコンパクトなERP / CRM 。このシナリオは決して発生しないため、すべてのモジュールを紹介するデモは意味がない(数百が利用可能)。したがって、いくつかのデモプロファイルが利用可能 。 +DemoDesc=Dolibarrは、いくつかのビジネスモジュールをサポートするコンパクトなERP / CRM 。このシナリオは決して発生しないため、全モジュールを紹介するデモは意味がない(数百が利用可能)。したがって、いくつかのデモプロファイルが利用可能 。 ChooseYourDemoProfil=ニーズに最適なデモプロファイルを選択すること... ChooseYourDemoProfilMore=...または独自のプロファイルを作成する
    (手動モジュール選択) -DemoFundation=基礎のメンバーを管理する -DemoFundation2=基礎のメンバーとの銀行口座を管理する +DemoFundation=基礎の構成員を管理する +DemoFundation2=基礎の構成員との銀行口座を管理する DemoCompanyServiceOnly=法人またはフリーランスの販売サービスのみ -DemoCompanyShopWithCashDesk=現金デスクでお店を管理する +DemoCompanyShopWithCashDesk=金銭収納箱での店舗管理 DemoCompanyProductAndStocks=POSで製品を販売するショップ DemoCompanyManufacturing=製品を製造する法人 -DemoCompanyAll=複数の活動を行う法人(すべてのメインモジュール) +DemoCompanyAll=複数の活動を行う法人(全メインモジュール) CreatedBy=作成者:%s ModifiedBy=変更者:%s ValidatedBy=確認者:%s SignedBy=%sによる署名 ClosedBy=%sによって閉じ -CreatedById=作成したユーザーID -ModifiedById=最新の変更を行ったユーザーID -ValidatedById=検証したユーザーID -CanceledById=キャンセルしたユーザーID -ClosedById=閉じたユーザーID -CreatedByLogin=作成したユーザーログイン -ModifiedByLogin=最新の変更を加えたユーザーログイン -ValidatedByLogin=検証したユーザーログイン -CanceledByLogin=キャンセルしたユーザーログイン -ClosedByLogin=閉じたユーザーログイン +CreatedById=作成したユーザID +ModifiedById=最新の変更を行ったユーザID +ValidatedById=検証済したユーザID +CanceledById=キャンセルしたユーザID +ClosedById=閉じたユーザID +CreatedByLogin=作成したユーザログイン +ModifiedByLogin=最新の変更を加えたユーザログイン +ValidatedByLogin=検証済したユーザログイン +CanceledByLogin=キャンセルしたユーザログイン +ClosedByLogin=閉じたユーザログイン FileWasRemoved=ファイルの%sは削除された DirWasRemoved=ディレクトリの%sは削除された FeatureNotYetAvailable=現在のバージョンではまだ利用できない機能 @@ -180,9 +180,9 @@ SizeUnitinch=インチ SizeUnitfoot=フィート SizeUnitpoint=ポイント BugTracker=バグトラッカー -SendNewPasswordDesc=このフォームでは、新規パスワードをリクエストできる。それはあなたのメールアドレスに送られる。
    メール内の確定リンクをクリックすると、変更が有効になる。
    受信トレイを確定すること。 +SendNewPasswordDesc=このフォームでは、新規パスワードを要求できる。それはあなたのメールアドレスに送られる。
    メール内の確定リンクをクリックすると、変更が有効になる。
    受信トレイを確定すること。 BackToLoginPage=ログインページに戻る -AuthenticationDoesNotAllowSendNewPassword=認証モードは%s
    このモードではDolibarr上でパスワードの表示も変更もできません。
    パスワードを変更したい場合はシステム管理者に連絡して下さい。 +AuthenticationDoesNotAllowSendNewPassword=認証モードは%s
    このモードではDolibarr上でパスワードの表示も変更もできない。
    パスワードを変更したい場合はシステム管理者に連絡すること。 EnableGDLibraryDesc=このオプションを使用するには、PHPインストールでGDライブラリをインストールまたは有効にする。 ProfIdShortDesc=プロフID %sは、取引先の国に応じた情報 。
    たとえば、国%sに対して、コードは%s 。 DolibarrDemo=Dolibarr ERP / CRMデモ @@ -192,7 +192,7 @@ NumberOfProposals=提案数 NumberOfCustomerOrders=受注数 NumberOfCustomerInvoices=顧客の請求書の数 NumberOfSupplierProposals=ベンダー提案の数 -NumberOfSupplierOrders=注文書の数 +NumberOfSupplierOrders=購買発注の数 NumberOfSupplierInvoices=ベンダーの請求書の数 NumberOfContracts=契約数 NumberOfMos=製造受注数 @@ -200,26 +200,26 @@ NumberOfUnitsProposals=提案のユニット数 NumberOfUnitsCustomerOrders=販売注文のユニット数 NumberOfUnitsCustomerInvoices=顧客の請求書のユニット数 NumberOfUnitsSupplierProposals=ベンダー提案のユニット数 -NumberOfUnitsSupplierOrders=注文書のユニット数 +NumberOfUnitsSupplierOrders=購買発注のユニット数 NumberOfUnitsSupplierInvoices=ベンダーの請求書のユニット数 NumberOfUnitsContracts=契約ユニット数 NumberOfUnitsMos=製造指図で生産するユニットの数 EMailTextInterventionAddedContact=新規介入%sが割り当てられた。 -EMailTextInterventionValidated=介入%sが検証されている。 -EMailTextInvoiceValidated=請求書%sが検証された。 +EMailTextInterventionValidated=出張%sは検証済。 +EMailTextInvoiceValidated=請求書%sは検証済。 EMailTextInvoicePayed=請求書%sが支払われた。 -EMailTextProposalValidated=提案%sが検証された。 +EMailTextProposalValidated=提案%sは検証済。 EMailTextProposalClosedSigned=提案%sはクローズドサインされた。 -EMailTextOrderValidated=注文%sが検証された。 +EMailTextOrderValidated=注文%sは検証済。 EMailTextOrderApproved=注文%sが承認された。 EMailTextOrderValidatedBy=注文%sは%sによって記録された。 EMailTextOrderApprovedBy=注文%sは%sによって承認された。 EMailTextOrderRefused=注文%sは拒否された。 EMailTextOrderRefusedBy=注文%sは%sによって拒否された。 -EMailTextExpeditionValidated=出荷%sが検証された。 -EMailTextExpenseReportValidated=経費報告書%sが検証された。 +EMailTextExpeditionValidated=出荷%sは検証済。 +EMailTextExpenseReportValidated=経費報告書%sは検証済。 EMailTextExpenseReportApproved=経費報告書%sが承認された。 -EMailTextHolidayValidated=休暇申請%sが検証された。 +EMailTextHolidayValidated=休暇申請%sは検証済。 EMailTextHolidayApproved=休暇申請%sが承認された。 EMailTextActionAdded=アクション%sがアジェンダに追加された。 ImportedWithSet=輸入データセット @@ -248,9 +248,9 @@ RequestToResetPasswordReceived=パスワードの変更申請を受け付けま NewKeyIs=これはログインするための新規キー NewKeyWillBe=ソフトウェアにログインするための新規キーは次のようになる ClickHereToGoTo=%sに移動するには、ここをクリックすること -YouMustClickToChange=ただし、このパスワードの変更を検証するには、最初に次のリンクをクリックする必要がある +YouMustClickToChange=ただし、このパスワードの変更を検証には、最初に次のリンクをクリックする必要がある ConfirmPasswordChange=パスワードの変更を確定する -ForgetIfNothing=この変更をリクエストしなかった場合は、このメールを忘れてください。あなたの資格情報は安全に保たれる。 +ForgetIfNothing=この変更を要求しなかった場合は、このメールを忘れること。あなたの資格情報は安全に保たれる。 IfAmountHigherThan= %sよりも多い場合 SourcesRepository=ソースのリポジトリ Chart=チャート @@ -265,7 +265,7 @@ PasswordNeedNoXConsecutiveChars=パスワードには、 %sの YourPasswordHasBeenReset=パスワードは正常にリセットされた ApplicantIpAddress=申請者のIPアドレス SMSSentTo=SMSが%sに送信された -MissingIds=IDが見つかりません +MissingIds=IDが見つからない ThirdPartyCreatedByEmailCollector=電子メールMSGID%sから電子メールコレクターによって作成された取引先 ContactCreatedByEmailCollector=メールMSGID%sからメールコレクターによって作成された連絡先/アドレス ProjectCreatedByEmailCollector=メールMSGID%sからメールコレクターによって作成されたプロジェクト @@ -292,7 +292,7 @@ WEBSITE_KEYWORDS=キーワード LinesToImport=インポートする行 MemoryUsage=メモリ使用量 -RequestDuration=リクエストの期間 +RequestDuration=要求の期間 ProductsPerPopularity=人気別の製品/サービス PopuProp=提案の人気による製品/サービス PopuCom=注文の人気別の製品/サービス @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=オブジェクトを選択してその統計を ConfirmBtnCommonContent = 「%s」を実行してもよいか? ConfirmBtnCommonTitle = アクションを確定する CloseDialog = 閉じる +Autofill = オートフィル + +# externalsite +ExternalSiteSetup=外部ウェブサイトへのリンクを設定 +ExternalSiteURL=HTMLiframeコンテンツの外部サイトURL +ExternalSiteModuleNotComplete=モジュールExternalSite(外部サイト)が正しく構成されていない。 +ExampleMyMenuEntry=私のメニューエントリ + +# FTP +FTPClientSetup=FTPまたはSFTPクライアントモジュールの設定 +NewFTPClient=新規FTP / FTPS接続の設定 +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/ja_JP/partnership.lang b/htdocs/langs/ja_JP/partnership.lang index 9b7694c0d3b..6636b1667ee 100644 --- a/htdocs/langs/ja_JP/partnership.lang +++ b/htdocs/langs/ja_JP/partnership.lang @@ -21,7 +21,7 @@ PartnershipDescription=モジュールパートナーシップ管理 PartnershipDescriptionLong= モジュールパートナーシップ管理 Partnership=パートナーシップ AddPartnership=パートナーシップを追加 -CancelPartnershipForExpiredMembers=パートナーシップ: サブスクリプションの有効期限が切れた会員のパートナーシップをキャンセル +CancelPartnershipForExpiredMembers=パートナーシップ: サブスクリプションの有効期限が切れた構成員のパートナーシップをキャンセル PartnershipCheckBacklink=パートナーシップ: 参照元のバックリンクを確認する # @@ -36,29 +36,36 @@ ListOfPartnerships=パートナーシップのリスト PartnershipSetup=パートナーシップの設定 PartnershipAbout=パートナーシップについて PartnershipAboutPage=ページについてのパートナーシップ -partnershipforthirdpartyormember=パートナー ステータスは「取引先」または「会員」に設定する必要がある +partnershipforthirdpartyormember=パートナー 状態は「取引先」または「構成員」に設定する必要がある PARTNERSHIP_IS_MANAGED_FOR=パートナーシップ管理は PARTNERSHIP_BACKLINKS_TO_CHECK=チェックするバックリンク -PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=サブスクリプションの有効期限が切れた場合にパートナーシップのステータスをキャンセルするまでの日数 +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=サブスクリプションの有効期限が切れた場合にパートナーシップの状態をキャンセルするまでの日数 ReferingWebsiteCheck=参考ウェブサイトの確認 ReferingWebsiteCheckDesc=パートナーが独自の ウェブサイトに ウェブサイト ドメインへのバックリンクを追加したことを確認する機能を有効にできる。 +PublicFormRegistrationPartnerDesc=Dolibarrは、外部の訪問者がパートナーシッププログラムへの参加を要求できるように、公開URL/ウェブサイトを提供できる。 # # Object # DeletePartnership=パートナーシップを削除する PartnershipDedicatedToThisThirdParty=この取引先専用のパートナーシップ -PartnershipDedicatedToThisMember=このメンバー専用のパートナーシップ +PartnershipDedicatedToThisMember=この構成員専用のパートナーシップ DatePartnershipStart=開始日 DatePartnershipEnd=終了日 ReasonDecline=拒絶理由 ReasonDeclineOrCancel=断りの理由 -PartnershipAlreadyExist=パートナーシップはすでに存在する +PartnershipAlreadyExist=パートナーシップは既に存在する ManagePartnership=パートナーシップを管理する BacklinkNotFoundOnPartnerWebsite=パートナーのウェブサイトにバックリンクが見つからない ConfirmClosePartnershipAsk=このパートナーシップをキャンセルしてもよいか? PartnershipType=パートナーシップの種類 PartnershipRefApproved=パートナーシップ%sは承認済 +KeywordToCheckInWebsite=特定のキーワードが各パートナーのウェブサイトに存在することを確認する場合、ここでこのキーワードを定義する +PartnershipDraft=下書き +PartnershipAccepted=承認済 +PartnershipRefused=拒否 +PartnershipCanceled=キャンセル +PartnershipManagedFor=パートナーは # # Template Mail @@ -74,19 +81,14 @@ YourPartnershipAcceptedTopic=パートナーシップが受け入れられた YourPartnershipCanceledTopic=パートナーシップがキャンセルされた YourPartnershipWillSoonBeCanceledContent=パートナーシップはまもなくキャンセルされる(バックリンクが見つからない) -YourPartnershipRefusedContent=パートナーシップのリクエストが拒否されたことをお知らせする。 -YourPartnershipAcceptedContent=パートナーシップのリクエストが受理されたことをお知らせする。 +YourPartnershipRefusedContent=パートナーシップの要求が拒否されたことをお知らせする。 +YourPartnershipAcceptedContent=パートナーシップの要求が受理されたことをお知らせする。 YourPartnershipCanceledContent=パートナーシップがキャンセルされたことをお知らせする。 CountLastUrlCheckError=最後のURLチェックのエラー数 LastCheckBacklink=最後のURLチェックの日付 ReasonDeclineOrCancel=断りの理由 -# -# Status -# -PartnershipDraft=下書き -PartnershipAccepted=承認済 -PartnershipRefused=拒否 -PartnershipCanceled=キャンセル -PartnershipManagedFor=パートナーは +NewPartnershipRequest=新しいパートナーシップリクエスト +NewPartnershipRequestDesc=このフォームでは、パートナーシッププログラムへの参加をリクエストできる。このフォームへの記入についてサポートが必要な場合は、メール%sまでご連絡ください。 + diff --git a/htdocs/langs/ja_JP/paybox.lang b/htdocs/langs/ja_JP/paybox.lang index e8a3e2a749a..2b7fa17deea 100644 --- a/htdocs/langs/ja_JP/paybox.lang +++ b/htdocs/langs/ja_JP/paybox.lang @@ -1,29 +1,29 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=PayBoxモジュールの設定 -PayBoxDesc=このモジュールは、顧客による Payboxでの支払いを許可するページを提供する。これは、無料の支払いまたは特定のDolibarrオブジェクト(請求書、注文など)での支払いに使用できる。 -FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払いをするために顧客にページを提供するために利用可能 -PaymentForm=支払い形態 +PayBoxDesc=このモジュールは、顧客による Payboxでの支払を許可するページを提供する。これは、無料の支払または特定のDolibarrオブジェクト(請求書、注文など)での支払に使用できる。 +FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払をするために顧客にページを提供するために利用可能 +PaymentForm=支払形態 WelcomeOnPaymentPage=オンライン決済サービスへようこそ ThisScreenAllowsYouToPay=この画面では、%sにオンライン決済を行うことができる。 -ThisIsInformationOnPayment=これは、実行する支払いに関する情報。 +ThisIsInformationOnPayment=これは、実行する支払に関する情報。 ToComplete=完了する YourEMail=入金確定を受信する電子メール Creditor=債権者 -PaymentCode=支払いコード +PaymentCode=支払コード PayBoxDoPayment=Payboxで支払う YouWillBeRedirectedOnPayBox=あなたが入力するクレジットカード情報をセキュリティで保護された切符売り場のページにリダイレクトされる。 Continue=次の -SetupPayBoxToHavePaymentCreatedAutomatically=Payboxによる検証時に支払いが自動的に作成されるように、URL %sを使用してPayboxを設定する。 +SetupPayBoxToHavePaymentCreatedAutomatically=Payboxによる検証済時に支払が自動的に作成されるように、URL %sを使用してPayboxを設定する。 YourPaymentHasBeenRecorded=このページでは、あなたの支払が記録されていることを確定する。ありがとうございる。 -YourPaymentHasNotBeenRecorded=お支払いは記録されておらず、取引はキャンセルされている。ありがとうございる。 +YourPaymentHasNotBeenRecorded=お支払は記録されておらず、取引はキャンセルされている。ありがとうございる。 AccountParameter=アカウントのパラメータ UsageParameter=使用パラメータ InformationToFindParameters=あなたの%sアカウント情報を見つけるのを助ける -PAYBOX_CGI_URL_V2=支払いのために切符売り場CGIモジュールのurl -CSSUrlForPaymentForm=支払いフォームのCSSスタイルシートのURL +PAYBOX_CGI_URL_V2=支払のために切符売り場CGIモジュールのurl +CSSUrlForPaymentForm=支払フォームのCSSスタイルシートのURL NewPayboxPaymentReceived=新規Paybox支払を受け取った NewPayboxPaymentFailed=新規Paybox支払を試みましたが失敗した -PAYBOX_PAYONLINE_SENDEMAIL=支払い試行後の電子メール通知(成功または失敗) +PAYBOX_PAYONLINE_SENDEMAIL=支払試行後の電子メール通知(成功または失敗) PAYBOX_PBX_SITE=PBX SITEの値 PAYBOX_PBX_RANG=PBX Rangの値 PAYBOX_PBX_IDENTIFIANT=PBX IDの値 diff --git a/htdocs/langs/ja_JP/paypal.lang b/htdocs/langs/ja_JP/paypal.lang index 5a2e882fdab..00ab548784b 100644 --- a/htdocs/langs/ja_JP/paypal.lang +++ b/htdocs/langs/ja_JP/paypal.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=ペイパルモジュールの設定 -PaypalDesc=このモジュールでは、 PayPalを介した顧客による支払いが可能。これは、アドホック支払いまたはDolibarrオブジェクト(請求書、注文など)に関連する支払いに使用できる。 +PaypalDesc=このモジュールでは、 PayPalを介した顧客による支払が可能。これは、アドホック支払またはDolibarrオブジェクト(請求書、注文など)に関連する支払に使用できる。 PaypalOrCBDoPayment=PayPalで支払う(カードまたはPayPal) PaypalDoPayment=PayPalで支払う PAYPAL_API_SANDBOX=モード試験/サンドボックス @@ -8,18 +8,18 @@ PAYPAL_API_USER=API名 PAYPAL_API_PASSWORD=APIパスワード PAYPAL_API_SIGNATURE=APIの署名 PAYPAL_SSLVERSION=カールSSLバージョン -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=「統合」支払い(クレジットカード+ PayPal)または「PayPal」のみを提供 +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=「統合」支払(クレジットカード+ PayPal)または「PayPal」のみを提供 PaypalModeIntegral=統合 PaypalModeOnlyPaypal=PayPalのみ -ONLINE_PAYMENT_CSS_URL=オンライン支払いページのCSSスタイルシートのオプションのURL +ONLINE_PAYMENT_CSS_URL=オンライン支払ページのCSSスタイルシートのオプションのURL ThisIsTransactionId=%s:これは、トランザクションのID。 -PAYPAL_ADD_PAYMENT_URL=メールでドキュメントを送信するときは、PayPalの支払いURLを含めること -NewOnlinePaymentReceived=受け取った新規オンライン支払い -NewOnlinePaymentFailed=新規オンライン支払いが試行されたが失敗した -ONLINE_PAYMENT_SENDEMAIL=各支払い試行後の通知の電子メールアドレス(成功および失敗の場合) -ReturnURLAfterPayment=支払い後にURLを返す -ValidationOfOnlinePaymentFailed=オンライン支払いの検証に失敗した -PaymentSystemConfirmPaymentPageWasCalledButFailed=支払いシステムによって支払い確定ページが呼び出され、エラーが返された +PAYPAL_ADD_PAYMENT_URL=メールでドキュメントを送信するときは、PayPalの支払URLを含めること +NewOnlinePaymentReceived=受け取った新規オンライン支払 +NewOnlinePaymentFailed=新規オンライン支払が試行されたが失敗した +ONLINE_PAYMENT_SENDEMAIL=各支払試行後の通知の電子メールアドレス(成功および失敗の場合) +ReturnURLAfterPayment=支払後にURLを返す +ValidationOfOnlinePaymentFailed=オンライン支払の検証に失敗した +PaymentSystemConfirmPaymentPageWasCalledButFailed=支払システムによって支払確定ページが呼び出され、エラーが返された SetExpressCheckoutAPICallFailed=SetExpressCheckoutAPI呼び出しが失敗した。 DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPaymentAPI呼び出しが失敗した。 DetailedErrorMessage=詳細なエラーメッセージ @@ -28,9 +28,9 @@ ErrorCode=エラーコード ErrorSeverityCode=エラー重大度コード OnlinePaymentSystem=オンライン決済システム PaypalLiveEnabled=PayPalの「ライブ」モードが有効になっている(それ以外の場合はテスト/サンドボックスモード) -PaypalImportPayment=PayPal支払いをインポートする -PostActionAfterPayment=支払い後にアクションを投稿する -ARollbackWasPerformedOnPostActions=すべてのPostアクションでロールバックが実行された。必要に応じて、投稿アクションを手動で完了する必要がある。 -ValidationOfPaymentFailed=支払いの検証に失敗した +PaypalImportPayment=PayPal支払をインポートする +PostActionAfterPayment=支払後にアクションを投稿する +ARollbackWasPerformedOnPostActions=全Postアクションでロールバックが実行された。必要に応じて、投稿アクションを手動で完了する必要がある。 +ValidationOfPaymentFailed=支払の検証に失敗した CardOwner=カードホルダー PayPalBalance=ペイパルクレジット diff --git a/htdocs/langs/ja_JP/printing.lang b/htdocs/langs/ja_JP/printing.lang index 65e29cf1dc4..a2073244fba 100644 --- a/htdocs/langs/ja_JP/printing.lang +++ b/htdocs/langs/ja_JP/printing.lang @@ -10,12 +10,12 @@ ListDrivers=ドライバーのリスト PrintTestDesc=プリンターのリスト。 FileWasSentToPrinter=ファイル%sがプリンターに送信された ViaModule=モジュール経由 -NoActivePrintingModuleFound=ドキュメントを印刷するためのアクティブなドライバがありません。モジュール%sの設定を確認すること。 +NoActivePrintingModuleFound=ドキュメントを印刷するためのアクティブなドライバがない。モジュール%sの設定を確認すること。 PleaseSelectaDriverfromList=リストからドライバーを選択すること。 PleaseConfigureDriverfromList=リストから選択したドライバーを構成すること。 SetupDriver=ドライバーの設定 TargetedPrinter=ターゲットプリンター -UserConf=ユーザーごとの設定 +UserConf=ユーザごとの設定 PRINTGCP_INFO=Google OAuthAPIの設定 PRINTGCP_AUTHLINK=認証 PRINTGCP_TOKEN_ACCESS=GoogleクラウドプリントのOAuthトークン diff --git a/htdocs/langs/ja_JP/productbatch.lang b/htdocs/langs/ja_JP/productbatch.lang index 75f5060bea6..25b2e47030a 100644 --- a/htdocs/langs/ja_JP/productbatch.lang +++ b/htdocs/langs/ja_JP/productbatch.lang @@ -24,12 +24,12 @@ ProductLotSetup=モジュールのロット/シリアルの設定 ShowCurrentStockOfLot=組合せ 製品/ロットの現在在庫を表示 ShowLogOfMovementIfLot=組合せ 製品/ロットの移動ログを表示 StockDetailPerBatch=ロットごとの在庫詳細 -SerialNumberAlreadyInUse=シリアル番号%sはすでに製品%sに使用されている +SerialNumberAlreadyInUse=シリアル番号%sは既に製品%sに使用されている TooManyQtyForSerialNumber=シリアル番号%sに対して使用できる製品%sは1つだけ。 ManageLotMask=カスタムマスク -CustomMasks=製品ごとに異なるナンバリングマスクを定義するオプション -BatchLotNumberingModules=ロット番号の自動生成のための附番規則 -BatchSerialNumberingModules=シリアル番号の自動生成の附番規則(製品が製品毎に一意のロット/シリアルを1個だけ持つ性質の場合) +CustomMasks=製品ごとに異なる採番マスクを定義するオプション +BatchLotNumberingModules=ロット番号の自動生成のための採番規則 +BatchSerialNumberingModules=シリアル番号の自動生成の採番規則(製品が製品毎に一意のロット/シリアルを1個だけ持つ性質の場合) QtyToAddAfterBarcodeScan=スキャンされた各バーコード/ロット/シリアルの数量から%s LifeTime=寿命(日数) EndOfLife=製品寿命 @@ -37,9 +37,10 @@ ManufacturingDate=製造日付 DestructionDate=破壊日 FirstUseDate=初回使用日 QCFrequency=品質管理頻度(日数) -ShowAllLots=すべてのロットを表示 +ShowAllLots=全ロットを表示 HideLots=たくさん隠す #Traceability - qc status OutOfOrder=故障中 InWorkingOrder=正常動作中 ToReplace=交換 +CantMoveNonExistantSerial=エラー。既に存在しないシリアルに対応するレコードの移動を要求。同じ倉庫で同じ出荷に同一のシリアルを複数回取得したか、別の出荷でそのシリアルが使用された可能性がある。この出荷を削除して、別の出荷を準備する。 diff --git a/htdocs/langs/ja_JP/products.lang b/htdocs/langs/ja_JP/products.lang index a79d0524633..2b96b855f85 100644 --- a/htdocs/langs/ja_JP/products.lang +++ b/htdocs/langs/ja_JP/products.lang @@ -83,7 +83,7 @@ MinPrice=最小販売価格 EditSellingPriceLabel=販売価格ラベルを編集する CantBeLessThanMinPrice=販売価格は、本製品(税抜き%s)に許可される最小値より小さくなることはない。あなたはあまりにも重要な割引を入力した場合にも、このメッセージが表示される。 ContractStatusClosed=閉じた -ErrorProductAlreadyExists=参照%sした製品はすでに存在している。 +ErrorProductAlreadyExists=参照%sした製品は既に存在している。 ErrorProductBadRefOrLabel=参照またはラベルの間違った値。 ErrorProductClone=製品またはサービスの複製を作成しようとしたときに問題が発生した。 ErrorPriceCantBeLowerThanMinPrice=エラー、価格は最低価格より低くすることはできない。 @@ -103,7 +103,7 @@ BarCode=バーコード BarcodeType=バーコードの種別 SetDefaultBarcodeType=バーコードの種別を設定。 BarcodeValue=バーコードの値 -NoteNotVisibleOnBill=メモ(請求書や提案書などには表示されません) +NoteNotVisibleOnBill=メモ(請求書や提案書などには表示されない) ServiceLimitedDuration=製品は、限られた期間を持つサービスの場合: FillWithLastServiceDates=最後のサービスラインの日付を入力 MultiPricesAbility=製品/サービスごとに複数の価格セグメント(各顧客は1つの価格セグメントに含まれる) @@ -127,7 +127,7 @@ ProductParentList=この製品をコンポーネントとして含むキット ErrorAssociationIsFatherOfThis=選択した製品の一つは、現在の製品を持つ親。 DeleteProduct=製品/サービスを削除。 ConfirmDeleteProduct=この製品/サービスを削除してもよいか? -ProductDeleted=製品/サービス「%s 」がデータベースから削除されました。 +ProductDeleted=製品/サービス「%s 」がデータベースから削除された。 ExportDataset_produit_1=製品 ExportDataset_service_1=サービス ImportDataset_produit_1=製品 @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=この商品の行を削除してもよいか? ProductSpecial=特別な QtyMin=最小購入数量 PriceQtyMin=価格数量最小 -PriceQtyMinCurrency=この数量の価格(通貨)。 (値下げなし) +PriceQtyMinCurrency=この数量の価格(通貨)。 +WithoutDiscount=割引なし VATRateForSupplierProduct=VAT率(この仕入先/製品の場合) DiscountQtyMin=この数量の割引。 NoPriceDefinedForThisSupplier=この仕入先/製品の価格/数量は定義されていない @@ -158,7 +159,7 @@ ListServiceByPopularity=人気によるサービスのリスト Finished=製造品 RowMaterial=最初の材料 ConfirmCloneProduct=製品またはサービスの複製を作成してもよいか%s ? -CloneContentProduct=製品/サービスのすべての主要な情報を複製する +CloneContentProduct=製品/サービスの全主要な情報を複製する ClonePricesProduct=価格の複製 CloneCategoriesProduct=リンクされたタグ/カテゴリのクローンを作成する CloneCompositionProduct=仮想製品/サービスのクローンを作成する @@ -245,7 +246,7 @@ PriceByQuantity=数量による異なる価格 DisablePriceByQty=数量で価格を無効にする PriceByQuantityRange=数量範囲 MultipriceRules=セグメントの自動価格 -UseMultipriceRules=価格セグメントルール(製品モジュールの設定で定義)を使用して、最初のセグメントに従って他のすべてのセグメントの価格を自動計算する +UseMultipriceRules=価格セグメントルール(製品モジュールの設定で定義)を使用して、最初のセグメントに従って他の全セグメントの価格を自動計算する PercentVariationOver=%sに対する%%の変動 PercentDiscountOver=%sに対する%%割引 KeepEmptyForAutoCalculation=製品の重量または体積からこれを自動的に計算するには、空のままにする @@ -261,7 +262,7 @@ Quarter1=第 1 四半期 Quarter2=第 2 四半期 Quarter3=第 3 四半期 Quarter4=第 4 四半期 -BarCodePrintsheet=バーコードを印刷 +BarCodePrintsheet=バーコードを印刷する PageToGenerateBarCodeSheets=このツールを使用すると、バーコードステッカーのシートを印刷できる。ステッカーページの形式、バーコードの種別、バーコードの値を選択し、ボタン %sをクリック。 NumberOfStickers=ページに印刷するステッカーの数 PrintsheetForOneBarCode=1つのバーコードに複数のステッカーを印刷 @@ -273,7 +274,7 @@ DefinitionOfBarCodeForProductNotComplete=製品%sのバーコードのタイプ DefinitionOfBarCodeForThirdpartyNotComplete=取引先%sのバーコードのタイプまたは値の定義が不完全。 BarCodeDataForProduct=製品%sのバーコード情報: BarCodeDataForThirdparty=取引先のバーコード情報%s: -ResetBarcodeForAllRecords=すべてのレコードのバーコード値を定義する(これにより、定義済のバーコード値も新規の値でリセットされる) +ResetBarcodeForAllRecords=全レコードのバーコード値を定義する(これにより、定義済のバーコード値も新規の値でリセットされる) PriceByCustomer=顧客ごとに異なる価格 PriceCatalogue=製品/サービスごとの単一の販売価格 PricingRule=販売価格のルール @@ -299,7 +300,7 @@ MinSupplierPrice=最小購入価格 MinCustomerPrice=最低販売価格 NoDynamicPrice=動的価格でない DynamicPriceConfiguration=動的な価格構成 -DynamicPriceDesc=数式を定義して、顧客または仕入先の価格を計算できる。このような数式では、すべての数学演算子、一部の定数および変数を使用できる。ここで、使用する変数を定義できる。変数に自動更新が必要な場合は、外部URLを定義して、Dolibarrが値を自動的に更新できるようにすることができる。 +DynamicPriceDesc=数式を定義して、顧客または仕入先の価格を計算できる。このような数式では、全数学演算子、一部の定数および変数を使用できる。ここで、使用する変数を定義できる。変数に自動更新が必要な場合は、外部URLを定義して、Dolibarrが値を自動的に更新できるようにすることができる。 AddVariable=変数を追加 AddUpdater=アップデータを追加 GlobalVariables=グローバル変数 @@ -307,10 +308,10 @@ VariableToUpdate=更新する変数 GlobalVariableUpdaters=変数の外部アップデーター GlobalVariableUpdaterType0=JSONデータ GlobalVariableUpdaterHelp0=指定されたURLからJSONデータを解析し、VALUEは関連する値の場所を指定。 -GlobalVariableUpdaterHelpFormat0=リクエストの形式 {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterHelpFormat0=要求の形式 {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=Webサービスデータ GlobalVariableUpdaterHelp1=指定されたURLからWebServiceデータを解析し、NSは名前空間を指定し、VALUEは関連する値の場所を指定し、DATAは送信するデータを含む必要があり、METHODは呼び出し元のWSメソッド。 -GlobalVariableUpdaterHelpFormat1=リクエストの形式は {"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=最新のアップデート CorrectlyUpdated=正しく更新された @@ -346,7 +347,7 @@ UseProductFournDesc=顧客に関する説明に加え、(仕入先参照ごと ProductSupplierDescription=製品の仕入先の説明 UseProductSupplierPackaging=サプライヤ価格のパッケージを使用する(サプライヤドキュメントの行を追加/更新するときに、サプライヤ価格に設定されたパッケージに従って数量を再計算する) PackagingForThisProduct=包装 -PackagingForThisProductDesc=サプライヤの注文時に、この数量(またはこの数量の倍数)を自動的に注文。最小購入数量より少なくすることはできない +PackagingForThisProductDesc=この数量の倍数を自動的に購入する。 QtyRecalculatedWithPackaging=ラインの数量は、サプライヤーのパッケージに従って再計算された #Attributes @@ -354,7 +355,7 @@ VariantAttributes=バリアント属性 ProductAttributes=製品のバリアント属性 ProductAttributeName=バリアント属性%s ProductAttribute=バリアント属性 -ProductAttributeDeleteDialog=この属性を削除してもよいか?すべての値が削除される +ProductAttributeDeleteDialog=この属性を削除してもよいか?全値が削除される ProductAttributeValueDeleteDialog=この属性の「%s」を参照して値「%s」を削除してもよいか? ProductCombinationDeleteDialog=製品「%s」のバリアントを削除してもよいか? ProductCombinationAlreadyUsed=バリアントの削除中にエラーが発生した。どのオブジェクトにも使用されていないことを確認すること @@ -371,12 +372,12 @@ ProductCombinationGenerator=バリアントジェネレータ Features=特徴 PriceImpact=価格への影響 ImpactOnPriceLevel=価格水準への影響%s -ApplyToAllPriceImpactLevel= すべてのレベルに適用 -ApplyToAllPriceImpactLevelHelp=ここをクリックすると、すべてのレベルで同じ価格の影響を設定できる +ApplyToAllPriceImpactLevel= 全レベルに適用 +ApplyToAllPriceImpactLevelHelp=ここをクリックすると、全レベルで同じ価格の影響を設定できる WeightImpact=重量への影響 NewProductAttribute=新規属性 NewProductAttributeValue=新規属性値 -ErrorCreatingProductAttributeValue=属性値の作成中にエラーが発生した。その参照を持つ既存の値がすでに存在するためである可能性がある +ErrorCreatingProductAttributeValue=属性値の作成中にエラーが発生した。その参照を持つ既存の値が既に存在するためである可能性がある ProductCombinationGeneratorWarning=続行すると、新規バリアントを生成前に、以前のバリアントはすべて削除される。既存のものは新規値で更新される TooMuchCombinationsWarning=多数のバリアントを生成と、CPU、メモリ使用量が高くなり、Dolibarrがそれらを作成できなくなる可能性がある。オプション「%s」を有効にすると、メモリ使用量を減らすのに役立つ場合がある。 DoNotRemovePreviousCombinations=以前のバリアントを削除しないこと @@ -389,7 +390,7 @@ ParentProduct=親製品 HideChildProducts=バリアント製品を非表示にする ShowChildProducts=バリエーション製品を表示 NoEditVariants=親製品カードに移動し、バリエーション タブでバリエーションの価格への影響を編集する -ConfirmCloneProductCombinations=指定された参照を使用して、すべての製品バリアントを他の親製品にコピーするか? +ConfirmCloneProductCombinations=指定された参照を使用して、全製品バリアントを他の親製品にコピーするか? CloneDestinationReference=宛先製品リファレンス ErrorCopyProductCombinations=製品バリアントのコピー中にエラーが発生した ErrorDestinationProductNotFound=宛先製品が見つからない @@ -404,10 +405,25 @@ PMPValueShort=WAP mandatoryperiod=必須期間 mandatoryPeriodNeedTobeSet=注:期間(開始と終了)を定義すること mandatoryPeriodNeedTobeSetMsgValidate=サービスには開始期間と終了期間が必要 -mandatoryHelper=このサービスで、行に開始日と終了日を入力せずに請求書、売買契約提案書、販売注文署を作成/検証する場青、もしユーザーにメッセージが必要な時は、これをチェックする。
    メッセージは警告であり、ブロッキングエラーではないことに注意。 +mandatoryHelper=このサービスで、行に開始日と終了日を入力せずに請求書、商取引提案、販売注文署を作成/検証場青、もしユーザにメッセージが必要な時は、これをチェックする。
    メッセージは警告であり、ブロッキングエラーではないことに注意。 DefaultBOM=デフォルトのBOM DefaultBOMDesc=この製品の製造に使用が推奨されるデフォルトBOM。このフィールドは、製品目が「%s」の場合にのみ設定できる。 Rank=ランク -SwitchOnSaleStatus=販売ステータスをオンにする -SwitchOnPurchaseStatus=購入ステータスをオンにする +MergeOriginProduct=重複製品(削除したい製品) +MergeProducts=製品をマージ +ConfirmMergeProducts=選択した製品を現在の製品とマージしてよいか?リンクされた全オブジェクト(請求書、注文など)は現在の製品に移動され、その後、選択した製品が削除される。 +ProductsMergeSuccess=製品は統合済 +ErrorsProductsMerge=製品エラーがマージ +SwitchOnSaleStatus=販売状態をオンにする +SwitchOnPurchaseStatus=購入状態をオンにする StockMouvementExtraFields= エクストラフィールド(在庫移動) +InventoryExtraFields= 追加フィールド(在庫) +ScanOrTypeOrCopyPasteYourBarCodes=バーコードをスキャンまたは入力して コピー/貼り付け +PuttingPricesUpToDate=現在の既知価格で価格更新する +PMPExpected=期待されるPMP +ExpectedValuation=期待される評価 +PMPReal=実際のPMP +RealValuation=実際の評価 +ConfirmEditExtrafield = 変更するエクストラフィールドを選択する +ConfirmEditExtrafieldQuestion = このエクストラフィールドを変更してもよいか? +ModifyValueExtrafields = エクストラフィールドの値を変更する diff --git a/htdocs/langs/ja_JP/projects.lang b/htdocs/langs/ja_JP/projects.lang index 96a931acc0b..9820d8adcd6 100644 --- a/htdocs/langs/ja_JP/projects.lang +++ b/htdocs/langs/ja_JP/projects.lang @@ -6,22 +6,22 @@ ProjectLabel=プロジェクトラベル ProjectsArea=プロジェクトエリア ProjectStatus=プロジェクトの状況 SharedProject=皆 -PrivateProject=プロジェクトの連絡先 +PrivateProject=割当済連絡先 ProjectsImContactFor=私が明示的に連絡を取っているプロジェクト -AllAllowedProjects=私が読むことができるすべてのプロジェクト(私の+公開) -AllProjects=すべてのプロジェクト +AllAllowedProjects=私が読むことができる全プロジェクト(私の+公開) +AllProjects=全プロジェクト MyProjectsDesc=このビューは、連絡先のプロジェクトに限定されている -ProjectsPublicDesc=このビューには、読み取りを許可されているすべてのプロジェクトを紹介する。 -TasksOnProjectsPublicDesc=このビューには、読み取りが許可されているプロジェクトのすべてのタスクが表示される。 -ProjectsPublicTaskDesc=このビューには、読み取りを許可されているすべてのプロジェクトやタスクを示する。 -ProjectsDesc=このビューはすべてのプロジェクトを(あなたのユーザー権限はあなたに全てを表示する権限を付与)を提示する。 -TasksOnProjectsDesc=このビューには、すべてのプロジェクトのすべてのタスクが表示される(ユーザー権限により、すべてを表示する権限が付与される)。 +ProjectsPublicDesc=このビューには、読取りを許可されている全プロジェクトを紹介する。 +TasksOnProjectsPublicDesc=このビューには、読取りが許可されているプロジェクトの全タスクが表示される。 +ProjectsPublicTaskDesc=このビューには、読取りを許可されている全プロジェクトやタスクを示する。 +ProjectsDesc=このビューは全プロジェクトを(あなたのユーザ権限はあなたに全てを表示する権限を付与)を提示する。 +TasksOnProjectsDesc=このビューには、全プロジェクトの全タスクが表示される(ユーザ権限により、すべてを表示する権限が付与される)。 MyTasksDesc=このビューは、連絡先のプロジェクトまたはタスクに限定されている -OnlyOpenedProject=開いているプロジェクトのみが表示される(ドラフトまたはクローズステータスのプロジェクトは表示されない)。 +OnlyOpenedProject=開いているプロジェクトのみが表示される(下書きまたはクローズ状態のプロジェクトは表示されない)。 ClosedProjectsAreHidden=閉じたプロジェクトは表示されない。 -TasksPublicDesc=このビューには、読み取りを許可されているすべてのプロジェクトやタスクを示する。 -TasksDesc=このビューは、すべてのプロジェクトとタスク(あなたのユーザー権限はあなたに全てを表示する権限を付与)を提示する。 -AllTaskVisibleButEditIfYouAreAssigned=資格のあるプロジェクトのすべてのタスクが表示されるが、選択したユーザーに割り当てられたタスクの時間のみを入力できる。時間を入力する必要がある場合は、タスクを割り当てる。 +TasksPublicDesc=このビューには、読取りを許可されている全プロジェクトやタスクを示する。 +TasksDesc=このビューは、全プロジェクトとタスク(あなたのユーザ権限はあなたに全てを表示する権限を付与)を提示する。 +AllTaskVisibleButEditIfYouAreAssigned=資格のあるプロジェクトの全タスクが表示されるが、選択したユーザに割り当てられたタスクの時間のみを入力できる。時間を入力する必要がある場合は、タスクを割り当てる。 OnlyYourTaskAreVisible=自分に割り当てられたタスクのみが表示される。タスクの時間を入力する必要があり、タスクがここに表示されていない場合は、タスクを自分に割り当てる必要がある。 ImportDatasetTasks=プロジェクトのタスク ProjectCategories=プロジェクトタグ/カテゴリ @@ -33,8 +33,8 @@ ConfirmDeleteAProject=このプロジェクトを削除してもよいか? ConfirmDeleteATask=このタスクを削除してもよいか? OpenedProjects=開いているプロジェクト OpenedTasks=開いているタスク -OpportunitiesStatusForOpenedProjects=ステータス別に開いているプロジェクトの量をリード -OpportunitiesStatusForProjects=ステータス別のプロジェクト数をリード +OpportunitiesStatusForOpenedProjects=状態別に開いているプロジェクトの量をリード +OpportunitiesStatusForProjects=状態別のプロジェクト数をリード ShowProject=プロジェクトを表示する ShowTask=タスクを表示する SetProject=プロジェクトを設定する。 @@ -43,13 +43,13 @@ NbOfProjects=プロジェクト数 NbOfTasks=タスクの数 TimeSpent=に費や​​された時間は TimeSpentByYou=あなたが費やした時間 -TimeSpentByUser=ユーザーが費やした時間 +TimeSpentByUser=ユーザが費やした時間 TimesSpent=に費や​​された時間は TaskId=タスクID RefTask=タスク参照符号 LabelTask=タスクラベル TaskTimeSpent=タスクに費やした時間 -TaskTimeUser=ユーザー +TaskTimeUser=ユーザ TaskTimeNote=メモ TaskTimeDate=日付 TasksOnOpenedProject=開いているプロジェクトのタスク @@ -90,11 +90,11 @@ ListOfTasks=タスクのリスト GoToListOfTimeConsumed=消費時間のリストに移動 GanttView=ガントビュー ListWarehouseAssociatedProject=プロジェクトに関連する倉庫のリスト -ListProposalsAssociatedProject=プロジェクトに関連する商業提案のリスト +ListProposalsAssociatedProject=プロジェクトに関連する商取引提案のリスト ListOrdersAssociatedProject=プロジェクトに関連する販売注文のリスト ListInvoicesAssociatedProject=プロジェクトに関連する顧客の請求書のリスト ListPredefinedInvoicesAssociatedProject=プロジェクトに関連する顧客テンプレートの請求書のリスト -ListSupplierOrdersAssociatedProject=プロジェクトに関連する発注書のリスト +ListSupplierOrdersAssociatedProject=プロジェクトに関連する購買発注のリスト ListSupplierInvoicesAssociatedProject=プロジェクトに関連するベンダーの請求書のリスト ListContractAssociatedProject=プロジェクトに関連する契約のリスト ListShippingAssociatedProject=プロジェクトに関連する出荷のリスト @@ -102,7 +102,7 @@ ListFichinterAssociatedProject=プロジェクトに関連する介入のリス ListExpenseReportsAssociatedProject=プロジェクトに関連する経費報告書sのリスト ListDonationsAssociatedProject=プロジェクトに関連する寄付のリスト ListVariousPaymentsAssociatedProject=プロジェクトに関連する雑費のリスト -ListSalariesAssociatedProject=プロジェクトに関連する給与の支払いのリスト +ListSalariesAssociatedProject=プロジェクトに関連する給与の支払のリスト ListActionsAssociatedProject=プロジェクトに関連するイベントのリスト ListMOAssociatedProject=プロジェクトに関連する製造オーダーのリスト ListTaskTimeUserProject=プロジェクトのタスクに費やされた時間のリスト @@ -117,8 +117,8 @@ ChildOfTask=タスクの子 TaskHasChild=タスクには子がある NotOwnerOfProject=この民間プロジェクトの所有者でない AffectedTo=に割り当てられた -CantRemoveProject=このプロジェクトは、他のオブジェクト(請求書、注文など)によって参照されているため、削除できません。タブ「%s」を参照すること。 -ValidateProject=プロジェクトを承認する +CantRemoveProject=このプロジェクトは、他のオブジェクト(請求書、注文など)によって参照されているため、削除できない。タブ「%s」を参照すること。 +ValidateProject=プロジェクトを検証 ConfirmValidateProject=このプロジェクトを検証してもよいか? CloseAProject=プロジェクトを閉じる ConfirmCloseAProject=このプロジェクトを終了してもよいか? @@ -128,8 +128,8 @@ ConfirmReOpenAProject=このプロジェクトを再開してもよいか? ProjectContact=プロジェクトの連絡先 TaskContact=タスクの連絡先 ActionsOnProject=プロジェクトのイベント -YouAreNotContactOfProject=この民間プロジェクトの接触ではありません -UserIsNotContactOfProject=ユーザーはこの非公開プロジェクトの連絡先ではない +YouAreNotContactOfProject=この民間プロジェクトの接触ではない +UserIsNotContactOfProject=ユーザはこの非公開プロジェクトの連絡先ではない DeleteATimeSpent=費やした時間を削除する。 ConfirmDeleteATimeSpent=この時間を削除してもよいか? DoNotShowMyTasksOnly=私に割り当てられていないタスクも参照すること @@ -138,10 +138,10 @@ TaskRessourceLinks=タスクの連絡先 ProjectsDedicatedToThisThirdParty=この第三者に専用のプロジェクト NoTasks=このプロジェクトのための作業をしない LinkedToAnotherCompany=他の第三者へのリンク -TaskIsNotAssignedToUser=タスクがユーザーに割り当てられていない。ボタン ' %s 'を使用して、今すぐタスクを割り当てる。 +TaskIsNotAssignedToUser=タスクがユーザに割り当てられていない。ボタン ' %s 'を使用して、今すぐタスクを割り当てる。 ErrorTimeSpentIsEmpty=費やした時間は空 TimeRecordingRestrictedToNMonthsBack=時間の記録は、%sか月前に制限されている -ThisWillAlsoRemoveTasks=このアクションは、プロジェクトのすべてのタスク(現時点では%sタスク)と過ごした時間のすべての入力を削除する。 +ThisWillAlsoRemoveTasks=このアクションは、プロジェクトの全タスク(現時点では%sタスク)と過ごした時間の全入力を削除する。 IfNeedToUseOtherObjectKeepEmpty=いくつかのオブジェクト(請求書、注文、...)、別の第三者に属するが、作成するプロジェクトにリンクする必要がある場合は、複数の取引先中のプロジェクトを持っているこの空を保持する。 CloneTasks=クローンタスク CloneContacts=連絡先のクローン @@ -151,16 +151,16 @@ CloneTaskFiles=ファイルを結合したタスク(s)をクローンする(タ CloneMoveDate=今からプロジェクト/タスクの日付を更新するか? ConfirmCloneProject=このプロジェクトのクローンを作成してもよいか? ProjectReportDate=新規プロジェクトの開始日に応じてタスクの日付を変更する -ErrorShiftTaskDate=新規プロジェクトの開始日に応じてタスクの日付をシフトすることはできません +ErrorShiftTaskDate=新規プロジェクトの開始日に応じてタスクの日付をシフトすることはできない ProjectsAndTasksLines=プロジェクトとタスク ProjectCreatedInDolibarr=プロジェクト%sは作成済 -ProjectValidatedInDolibarr=プロジェクト%sが検証された +ProjectValidatedInDolibarr=プロジェクト%sは検証済 ProjectModifiedInDolibarr=プロジェクト%sは変更済 TaskCreatedInDolibarr=タスク%sが作成された TaskModifiedInDolibarr=タスク%sが変更された TaskDeletedInDolibarr=タスク%sが削除された -OpportunityStatus=リードステータス -OpportunityStatusShort=リードステータス +OpportunityStatus=リード状態 +OpportunityStatusShort=リード状態 OpportunityProbability=リード確率 OpportunityProbabilityShort=鉛の確率。 OpportunityAmount=鉛量 @@ -189,19 +189,20 @@ DocumentModelTimeSpent=費やした時間のプロジェクト報告書テンプ PlannedWorkload=計画されたワークロード PlannedWorkloadShort=ワークロード ProjectReferers=関連項目 -ProjectMustBeValidatedFirst=プロジェクトを最初に検証する必要がある -FirstAddRessourceToAllocateTime=プロジェクトの連絡先としてユーザーリソースを割り当て、時間を割り当てる +ProjectMustBeValidatedFirst=プロジェクトは最初に要検証済 +MustBeValidatedToBeSigned=%sを最初に検証済して、Signedに設定する必要がある。 +FirstAddRessourceToAllocateTime=プロジェクトの連絡先としてユーザリソースを割り当て、時間を割り当てる InputPerDay=1日あたりの入力 InputPerWeek=週あたりの入力 InputPerMonth=1か月あたりの入力 InputDetail=詳細を入力 -TimeAlreadyRecorded=これは、このタスク/日およびユーザー%sについてすでに記録されている時間。 -ProjectsWithThisUserAsContact=このユーザーを連絡先とするプロジェクト +TimeAlreadyRecorded=これは、このタスク/日およびユーザ%sについて既に記録されている時間。 +ProjectsWithThisUserAsContact=このユーザを連絡先とするプロジェクト ProjectsWithThisContact=この連絡先のあるプロジェクト -TasksWithThisUserAsContact=このユーザーに割り当てられたタスク +TasksWithThisUserAsContact=このユーザに割り当てられたタスク ResourceNotAssignedToProject=プロジェクトに割り当てられていない ResourceNotAssignedToTheTask=タスクに割り当てられていない -NoUserAssignedToTheProject=このプロジェクトに割り当てられているユーザーはない +NoUserAssignedToTheProject=このプロジェクトに割り当てられているユーザはない TimeSpentBy=によって費やされた時間 TasksAssignedTo=に割り当てられたタスク AssignTaskToMe=自分にタスクを割り当てる @@ -215,12 +216,12 @@ ProjectNbProjectByMonth=月ごとに作成されたプロジェクトの数 ProjectNbTaskByMonth=月ごとに作成されたタスクの数 ProjectOppAmountOfProjectsByMonth=月ごとのリードの量 ProjectWeightedOppAmountOfProjectsByMonth=月ごとのリードの加重量 -ProjectOpenedProjectByOppStatus=プロジェクトを開く|リードステータスでリード +ProjectOpenedProjectByOppStatus=プロジェクトを開く|リード状態でリード ProjectsStatistics=プロジェクトまたはリードに関する統計 TasksStatistics=プロジェクトまたはリードのタスクに関する統計 TaskAssignedToEnterTime=割り当てられたタスク。このタスクに時間を入力できるはず。 IdTaskTime=IDタスク時間 -YouCanCompleteRef=参照に接尾辞を付けて完成させたい場合は、-文字を追加して区切ることをお勧めする。これにより、自動番号付けは次のプロジェクトでも正しく機能する。例:%s-MYSUFFIX +YouCanCompleteRef=参照に接尾辞を付けて完成させたい場合は、-文字を追加して区切ることをお勧めする。これにより、自動採番は次のプロジェクトでも正しく機能する。例:%s-MYSUFFIX OpenedProjectsByThirdparties=取引先による開いているプロジェクト OnlyOpportunitiesShort=リードのみ OpenedOpportunitiesShort=開いているリード @@ -237,27 +238,27 @@ OppStatusPENDING=保留中 OppStatusWON=勝った OppStatusLOST=失われた Budget=予算 -AllowToLinkFromOtherCompany=他の会社のプロジェクトのリンクを許可する

    サポートされる値:
    - 空のままにする: 会社の任意のプロジェクトをリンクできる(デフォルト)
    - "すべて": 任意のプロジェクトをリンクできる、たとえ他の法人のプロジェクトであっても
    - カンマ区切りの取引先ID: これらの取引先のすべてのプロジェクトをリンクできる(例:123,4795,53)
    +AllowToLinkFromOtherCompany=他の会社のプロジェクトのリンクを許可する

    サポートされる値:
    - 空のままにする: 会社の任意のプロジェクトをリンクできる(デフォルト)
    - "すべて": 任意のプロジェクトをリンクできる、たとえ他の法人のプロジェクトであっても
    - カンマ区切りの取引先ID: これらの取引先の全プロジェクトをリンクできる(例:123,4795,53)
    LatestProjects=最新の%sプロジェクト LatestModifiedProjects=最新の%s変更プロジェクト OtherFilteredTasks=その他のフィルタリングされたタスク -NoAssignedTasks=割り当てられたタスクが見つかりません(上部の選択ボックスから現在のユーザーにプロジェクト/タスクを割り当てて、時間を入力する) +NoAssignedTasks=割り当てられたタスクが見つからない(上部の選択ボックスから現在のユーザにプロジェクト/タスクを割り当てて、時間を入力する) ThirdPartyRequiredToGenerateInvoice=プロジェクトに請求できるようにするには、プロジェクトで取引先を定義する必要がある。 ThirdPartyRequiredToGenerateInvoice=プロジェクトに請求できるようにするには、プロジェクトで取引先を定義する必要がある。 ChooseANotYetAssignedTask=まだ割り当てられていないタスクを選択すること # Comments trans -AllowCommentOnTask=タスクへのユーザーコメントを許可する -AllowCommentOnProject=プロジェクトへのユーザーコメントを許可する +AllowCommentOnTask=タスクへのユーザコメントを許可する +AllowCommentOnProject=プロジェクトへのユーザコメントを許可する DontHavePermissionForCloseProject=プロジェクトを閉じる権限がない%s DontHaveTheValidateStatus=プロジェクト%sを閉じるには、開いている必要がある RecordsClosed=%sプロジェクト(s)が終了しました SendProjectRef=情報プロジェクト%s ModuleSalaryToDefineHourlyRateMustBeEnabled=モジュール「給与」を有効にして、時間を評価するために従業員の時給を定義する必要がある -NewTaskRefSuggested=タスク参照はすでに使用される。新規タスク参照が必要 +NewTaskRefSuggested=タスク参照は既に使用される。新規タスク参照が必要 TimeSpentInvoiced=請求に費やされた時間 TimeSpentForIntervention=に費や​​された時間は TimeSpentForInvoice=に費や​​された時間は -OneLinePerUser=ユーザーごとに1行 +OneLinePerUser=ユーザごとに1行 ServiceToUseOnLines=行で利用するサービス InvoiceGeneratedFromTimeSpent=請求書%sは、プロジェクトに費やされた時間から生成された InterventionGeneratedFromTimeSpent=出張%sは、プロジェクトに費やされた時間から生成された @@ -268,8 +269,8 @@ Usage=使用法 UsageOpportunity=使用法:機会 UsageTasks=使用法:タスク UsageBillTimeShort=使用法:請求時間 -InvoiceToUse=使用する請求書のドラフト -InterToUse=使用する出張案 +InvoiceToUse=使用する請求書の下書き +InterToUse=使うための下書き出張 NewInvoice=新規請求書 NewInter=新規出張 OneLinePerTask=タスクごとに1行 @@ -280,10 +281,16 @@ RefTaskParent=参照符号親タスク 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=全タスクが完了したら、プロジェクトをクローズとして分類する(100%%の進行状況) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=注:100%%の進行状況にある全タスクを持つ既存のプロジェクトは影響を受けない。手動で閉じる必要がある。このオプションは、開いているプロジェクトにのみ影響する。 SelectLinesOfTimeSpentToInvoice=請求されていない時間の行を選択し、「請求書の生成」を一括して請求する ProjectTasksWithoutTimeSpent=プロジェクトタスクで時間をかけないもの FormForNewLeadDesc=連絡のため、以下のフォームへの記入に対して謝意を申し上げる。また、 %sで直接メール送信することも可能である。 ProjectsHavingThisContact=この連絡先を持つプロジェクト StartDateCannotBeAfterEndDate=終了日を開始日より前にすることはできない +ErrorPROJECTLEADERRoleMissingRestoreIt=「PROJECTLEADER」の役割が欠落しているか、非アクティブ化されている。連絡先タイプの辞書で復元すること +LeadPublicFormDesc=ここで公開ページを有効にして、見込み客が公開オンラインフォームから最初の連絡ができるようにする +EnablePublicLeadForm=連絡用の公開フォームを有効にする +NewLeadbyWeb=メッセージまたはリクエストは記録済。すぐに回答または連絡する予定。 +NewLeadForm=新規問合せフォーム +LeadFromPublicForm=公開フォームからのオンライン導線 diff --git a/htdocs/langs/ja_JP/propal.lang b/htdocs/langs/ja_JP/propal.lang index 3266dbb57c7..10bdfd74fa9 100644 --- a/htdocs/langs/ja_JP/propal.lang +++ b/htdocs/langs/ja_JP/propal.lang @@ -1,63 +1,64 @@ # Dolibarr language file - Source file is en_US - propal -Proposals=売買契約提案書 -Proposal=売買契約提案書 +Proposals=商取引提案 +Proposal=商取引提案 ProposalShort=提案書 -ProposalsDraft=下書き売買契約提案書 -ProposalsOpened=オープンな商業提案書 -CommercialProposal=売買契約提案書 +ProposalsDraft=下書き商取引提案 +ProposalsOpened=仕掛中の商取引提案 +CommercialProposal=商取引提案 PdfCommercialProposalTitle=提案書 ProposalCard=提案書カード -NewProp=新規商業提案書 +NewProp=新規商取引提案 NewPropal=新たな提案書 Prospect=見通し -DeleteProp=売買契約提案書を削除する。 -ValidateProp=売買契約提案書を検証する +DeleteProp=商取引提案を削除する。 +ValidateProp=商取引提案を検証 AddProp=提案書を作成する -ConfirmDeleteProp=この売買契約提案書を削除してもよいか? -ConfirmValidateProp=この売買契約提案書を %s という名前で検証してもよいか? +ConfirmDeleteProp=この商取引提案を削除してもよいか? +ConfirmValidateProp=この商取引提案を %s という名前で検証してもよいか? LastPropals=最新の%s提案書 LastModifiedProposals=最新の%s変更された提案書 -AllPropals=すべての提案書 +AllPropals=全提案書 SearchAProposal=提案書を検索 NoProposal=提案書なし -ProposalsStatistics=商業的な提案書の統計 +ProposalsStatistics=商取引提案の統計 NumberOfProposalsByMonth=月ごとの数 AmountOfProposalsByMonthHT=月別金額(税込) -NbOfProposals=売買契約提案書の数 +NbOfProposals=商取引提案の数 ShowPropal=提案書を示す PropalsDraft=下書き PropalsOpened=開く -PropalStatusDraft=下書き(検証する必要がある) -PropalStatusValidated=(提案書が開いている)を検証 +PropalStatusDraft=下書き(要検証済) +PropalStatusValidated=検証済(提案は仕掛中) PropalStatusSigned=(要請求)署名 PropalStatusNotSigned=(クローズ)署名されていない PropalStatusBilled=請求 PropalStatusDraftShort=下書き -PropalStatusValidatedShort=検証済(オープン) +PropalStatusValidatedShort=検証済(仕掛中) PropalStatusClosedShort=閉じた PropalStatusSignedShort=署名された PropalStatusNotSignedShort=署名されていない PropalStatusBilledShort=請求 -PropalsToClose=閉じるには、売買契約提案書 -PropalsToBill=法案に署名した売買契約提案書 -ListOfProposals=売買契約提案書のリスト +PropalsToClose=閉じるべき商取引提案 +PropalsToBill=請求すべき署名済商取引提案 +ListOfProposals=商取引提案のリスト ActionsOnPropal=提案書のイベント -RefProposal=商業的な提案書のref -SendPropalByMail=メールでの売買契約提案書を送る +RefProposal=商取引提案の参照 +SendPropalByMail=メールでの商取引提案送付 DatePropal=提案書の日付 DateEndPropal=日付の最後の有効性 ValidityDuration=有効期間 SetAcceptedRefused=承認/拒否の設定 ErrorPropalNotFound=Propalの%sが見つからない -AddToDraftProposals=提案書案に追加 -NoDraftProposals=提案書案はない -CopyPropalFrom=既存のプロポーザルをコピーして、売買契約提案書を作成する。 -CreateEmptyPropal=空の売買契約提案書を作成するか、製品/サービスのリストから作成する -DefaultProposalDurationValidity=デフォルトの商業提案書の有効期間(日数) +AddToDraftProposals=下書き提案に追加 +NoDraftProposals=下書き提案なし +CopyPropalFrom=既存の提案をコピーして、商取引提案を作成する。 +CreateEmptyPropal=空の商取引提案を作成するか、製品/サービスのリストから作成する +DefaultProposalDurationValidity=デフォルトの商取引提案の有効期間(日数) +DefaultPuttingPricesUpToDate=デフォルトでは、提案を複製して現在の既知価格で価格更新する UseCustomerContactAsPropalRecipientIfExist=プロポーザルの受信者アドレスとして取引先のアドレスの代わりに定義されている場合は、タイプ「連絡先フォローアッププロポーザル」の連絡先/アドレスを使用する -ConfirmClonePropal=売買契約提案書 %s のクローンを作成してもよいか? -ConfirmReOpenProp=売買契約提案書 %s を開いてよいか? -ProposalsAndProposalsLines=売買契約提案書や行 +ConfirmClonePropal=商取引提案 %s のクローンを作成してもよいか? +ConfirmReOpenProp=商取引提案 %s を開いてよいか? +ProposalsAndProposalsLines=商取引提案と行 ProposalLine=提案書ライン ProposalLines=提案ライン AvailabilityPeriod=可用性の遅延 @@ -85,15 +86,28 @@ ProposalCustomerSignature=承諾書、会社印、日付、署名 ProposalsStatisticsSuppliers=ベンダー提案書統計 CaseFollowedBy=ケースに続いて SignedOnly=署名のみ +NoSign=署名されていないセット +NoSigned=署名されていないセット +CantBeNoSign=署名せずに設定することはできない +ConfirmMassNoSignature=一括無署名確定 +ConfirmMassNoSignatureQuestion=選択したレコードに署名しないように設定してもよいか? +IsNotADraft=下書きではない +PassedInOpenStatus=検証済 +Sign=署名 +Signed=署名 +ConfirmMassValidation=一括検証確定 +ConfirmMassSignature=一括署名確定 +ConfirmMassValidationQuestion=選択したレコードを検証してもよいか? +ConfirmMassSignatureQuestion=選択したレコードに署名してもよいか? IdProposal=プロポーザルID IdProduct=製品番号 -PrParentLine=提案書親ライン LineBuyPriceHT=ラインの購入価格税控除後の金額 SignPropal=提案を受諾 RefusePropal=提案を拒否する Sign=署名 +NoSign=署名されていないセット PropalAlreadySigned=提案は受諾済 -PropalAlreadyRefused=提案はすでに拒否済 +PropalAlreadyRefused=提案は既に拒否済 PropalSigned=提案を受諾 PropalRefused=提案は拒否済 -ConfirmRefusePropal=この売買契約提案書を拒否してもよいか? +ConfirmRefusePropal=この商取引提案を拒否してもよいか? diff --git a/htdocs/langs/ja_JP/receiptprinter.lang b/htdocs/langs/ja_JP/receiptprinter.lang index e3d30ac5598..ca7af6979c4 100644 --- a/htdocs/langs/ja_JP/receiptprinter.lang +++ b/htdocs/langs/ja_JP/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=プリンターに送信されたテスト%s ReceiptPrinter=レシートプリンター ReceiptPrinterDesc=レシートプリンターの設定 ReceiptPrinterTemplateDesc=テンプレートの設定 -ReceiptPrinterTypeDesc=レシートプリンターの種類の説明 +ReceiptPrinterTypeDesc=ドライバーのタイプに応じた「パラメーター」フィールドの可能な値の例 ReceiptPrinterProfileDesc=レシートプリンターのプロファイルの説明 ListPrinters=プリンタのリスト SetupReceiptTemplate=テンプレートの設定 @@ -43,7 +43,7 @@ DOL_PRINT_BARCODE_CUSTOMER_ID=バーコードの顧客IDを印刷する DOL_CUT_PAPER_FULL=チケットを完全にカット DOL_CUT_PAPER_PARTIAL=チケットを部分的にカット DOL_OPEN_DRAWER=キャッシュドロワーを開く -DOL_ACTIVATE_BUZZER=ブザーを鳴らする +DOL_ACTIVATE_BUZZER=ブザーを有効化 DOL_PRINT_QRCODE=QRコードを印刷する DOL_PRINT_LOGO=私の法人のロゴを印刷する DOL_PRINT_LOGO_OLD=私の法人のロゴを印刷する(古いプリンター) @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=デフォルトの高さと幅のサイズ DOL_UNDERLINE=下線を有効にする DOL_UNDERLINE_DISABLED=下線を無効にする DOL_BEEP=ビープ音 +DOL_BEEP_ALTERNATIVE=ビープ音(代替モード) +DOL_PRINT_CURR_DATE=現在の日付/時刻を印刷する DOL_PRINT_TEXT=テキストを印刷する DateInvoiceWithTime=請求書の日時 YearInvoice=請求年 diff --git a/htdocs/langs/ja_JP/receptions.lang b/htdocs/langs/ja_JP/receptions.lang index 5ed8404c11f..a098f0598fa 100644 --- a/htdocs/langs/ja_JP/receptions.lang +++ b/htdocs/langs/ja_JP/receptions.lang @@ -1,54 +1,54 @@ # Dolibarr language file - Source file is en_US - receptions -ReceptionDescription=仕入先受付管理(受付文書作成) -ReceptionsSetup=仕入先受付設定 -RefReception=参照受付 -Reception=受付 -Receptions=受付 -AllReceptions=すべての受付 -Reception=受付 -Receptions=受付 -ShowReception=受付を表示 -ReceptionsArea=受付エリア -ListOfReceptions=受付のリスト -ReceptionMethod=受付方法 -LastReceptions=最新%s受付 -StatisticsOfReceptions=受付の統計 -NbOfReceptions=受付数 -NumberOfReceptionsByMonth=月別の受付数 -ReceptionCard=受付カード -NewReception=新規受付 -CreateReception=受付を作成する -QtyInOtherReceptions=他の受付の数量 -OtherReceptionsForSameOrder=この注文の他の受付 -ReceptionsAndReceivingForSameOrder=この注文の領収書と領収書 -ReceptionsToValidate=検証する受付 +ReceptionDescription=仕入先領収管理(領収文書作成) +ReceptionsSetup=仕入先領収設定 +RefReception=参照領収 +Reception=領収 +Receptions=領収 +AllReceptions=全領収 +Reception=領収 +Receptions=領収 +ShowReception=領収を表示 +ReceptionsArea=領収エリア +ListOfReceptions=領収のリスト +ReceptionMethod=領収方法 +LastReceptions=最新%s領収 +StatisticsOfReceptions=領収の統計 +NbOfReceptions=領収数 +NumberOfReceptionsByMonth=月別の領収数 +ReceptionCard=領収カード +NewReception=新規領収 +CreateReception=領収を作成する +QtyInOtherReceptions=他の領収の数量 +OtherReceptionsForSameOrder=この注文の他の領収 +ReceptionsAndReceivingForSameOrder=この注文の領収と領収書 +ReceptionsToValidate=検証すべき領収 StatusReceptionCanceled=キャンセル -StatusReceptionDraft=ドラフト -StatusReceptionValidated=検証済み(受取り製品またはすでに受取済製品) -StatusReceptionValidatedToReceive=検証済み(受取り製品) -StatusReceptionValidatedReceived=検証済み(受取済製品) +StatusReceptionDraft=下書き +StatusReceptionValidated=検証済(受取向または既に受取済の製品) +StatusReceptionValidatedToReceive=検証済(受取り製品) +StatusReceptionValidatedReceived=検証済(受取済製品) StatusReceptionProcessed=処理 -StatusReceptionDraftShort=ドラフト -StatusReceptionValidatedShort=検証 +StatusReceptionDraftShort=下書き +StatusReceptionValidatedShort=検証済 StatusReceptionProcessedShort=処理 -ReceptionSheet=受付シート -ConfirmDeleteReception=この受付を削除してもよいか? -ConfirmValidateReception=参照%s を使用して、この受付を検証してもよいか? -ConfirmCancelReception=この受付をキャンセルしてもよいか? -StatsOnReceptionsOnlyValidated=受付で実施された統計は検証されただけ。使用される日付は、受付の検証日(飛行機の配達日は常にわかっているわけではない)。 -SendReceptionByEMail=メールで受付を送信する -SendReceptionRef=受付の提出%s -ActionsOnReception=受付のイベント -ReceptionCreationIsDoneFromOrder=現時点では、新しい受付の作成は発注書から行われる。 -ReceptionLine=受付ライン -ProductQtyInReceptionAlreadySent=未処理の受注からの製品数量はすでに送信された -ProductQtyInSuppliersReceptionAlreadyRecevied=すでに受け取ったオープンサプライヤー注文からの製品数量 -ValidateOrderFirstBeforeReception=受付を行う前に、まず注文を確認する必要がある。 -ReceptionsNumberingModules=受付のナンバリングモジュール -ReceptionsReceiptModel=受付のドキュメントテンプレート +ReceptionSheet=領収シート +ConfirmDeleteReception=この領収を削除してもよいか? +ConfirmValidateReception=参照%s を使用して、この領収を検証してもよいか? +ConfirmCancelReception=この領収をキャンセルしてもよいか? +StatsOnReceptionsOnlyValidated=実施された統計は検証済のみされた領収に関して。使用された日付は、領収の検証済日(予定配送日は常に周知ではない)。 +SendReceptionByEMail=メールで領収を送信する +SendReceptionRef=領収の提出%s +ActionsOnReception=領収のイベント +ReceptionCreationIsDoneFromOrder=現時点では、新しい領収の作成は購買発注から行われる。 +ReceptionLine=領収ライン +ProductQtyInReceptionAlreadySent=未処理の受注からの製品数量は既に送信された +ProductQtyInSuppliersReceptionAlreadyRecevied=既に受け取ったオープンサプライヤー注文からの製品数量 +ValidateOrderFirstBeforeReception=領収を行う前に、まず注文を要検証。 +ReceptionsNumberingModules=領収の採番モジュール +ReceptionsReceiptModel=領収のドキュメントテンプレート NoMorePredefinedProductToDispatch=ディスパッチする事前定義された製品はもうない -ReceptionExist=受付がある +ReceptionExist=領収がある ByingPrice=買取価格 -ReceptionBackToDraftInDolibarr=受付%sドラフト戻り -ReceptionClassifyClosedInDolibarr=受付%s閉鎖分類 -ReceptionUnClassifyCloseddInDolibarr=受付%s再開 +ReceptionBackToDraftInDolibarr=領収%sは下書きに戻す +ReceptionClassifyClosedInDolibarr=領収%sは閉鎖済指定 +ReceptionUnClassifyCloseddInDolibarr=領収%sは再開 diff --git a/htdocs/langs/ja_JP/recruitment.lang b/htdocs/langs/ja_JP/recruitment.lang index 951900d123c..b83e7ac69ac 100644 --- a/htdocs/langs/ja_JP/recruitment.lang +++ b/htdocs/langs/ja_JP/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=求人は終了した。 ExtrafieldsJobPosition=補完的な属性(役職) ExtrafieldsApplication=補完的な属性(求人応募) MakeOffer=申し出する +WeAreRecruiting=募集中。これは、募集職種のリスト... +NoPositionOpen=現在募集職種なし diff --git a/htdocs/langs/ja_JP/salaries.lang b/htdocs/langs/ja_JP/salaries.lang index b5860f86bbb..1080cd93c71 100644 --- a/htdocs/langs/ja_JP/salaries.lang +++ b/htdocs/langs/ja_JP/salaries.lang @@ -1,18 +1,18 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=ユーザの取引先に使用される会計科目 -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=ユーザカードで定義された専用の会計科目は、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、ユーザの専用ユーザ会計勘定が定義されていない場合は補助元帳会計のデフォルト値として使用される。 -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=賃金支払いのデフォルトの会計科目 +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=ユーザの取引先に使用される勘定科目 +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=ユーザカードで定義された専用の勘定科目は、補助元帳の会計にのみ使用される。これは総勘定元帳に使用され、ユーザの専用ユーザ勘定科目が定義されていない場合は補助元帳会計のデフォルト値として使用される。 +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=賃金支払のデフォルトの勘定科目 CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=デフォルトでは、給与を作成するときに ”支払合計を自動的に作成" オプションを空のままにする Salary=給料 Salaries=給与 NewSalary=新規給与 AddSalary=給与を追加 NewSalaryPayment=新規給与カード -AddSalaryPayment=給与支払いを追加する -SalaryPayment=給与の支払い -SalariesPayments=給与の支払い +AddSalaryPayment=給与支払を追加する +SalaryPayment=給与の支払 +SalariesPayments=給与の支払 SalariesPaymentsOf=%sの給与支払 -ShowSalaryPayment=給与の支払いを表示する +ShowSalaryPayment=給与の支払を表示する THM=平均時給 TJM=1日あたりの平均料金 CurrentSalary=現在の給与 @@ -21,6 +21,7 @@ TJMDescription=この値は現在情報提供のみを目的としており、 LastSalaries=最新%s給与 AllSalaries=全給与 SalariesStatistics=給与統計 -SalariesAndPayments=給与と支払い -ConfirmDeleteSalaryPayment=この給与支払いを削除するか? +SalariesAndPayments=給与と支払 +ConfirmDeleteSalaryPayment=この給与支払を削除するか? FillFieldFirst=最初に従業員フィールドに入力する +UpdateAmountWithLastSalary=最終給与で金額を設定する diff --git a/htdocs/langs/ja_JP/sendings.lang b/htdocs/langs/ja_JP/sendings.lang index ad6b1952356..04c1ccbbb10 100644 --- a/htdocs/langs/ja_JP/sendings.lang +++ b/htdocs/langs/ja_JP/sendings.lang @@ -2,7 +2,7 @@ RefSending=参照符号 出荷 Sending=出荷 Sendings=出荷 -AllSendings=すべての出荷 +AllSendings=全出荷 Shipment=出荷 Shipments=出荷 ShowSending=出荷を表示 @@ -28,27 +28,27 @@ KeepToShip=出荷残 KeepToShipShort=残 OtherSendingsForSameOrder=当該注文に対する他の出荷 SendingsAndReceivingForSameOrder=当該注文の出荷と受領 -SendingsToValidate=検査用に出荷 +SendingsToValidate=検証用に出荷 StatusSendingCanceled=キャンセル StatusSendingCanceledShort=キャンセル StatusSendingDraft=下書き -StatusSendingValidated=検査済(製品で出荷用または出荷済) +StatusSendingValidated=検証済(出荷向または出荷済の製品) StatusSendingProcessed=処理 StatusSendingDraftShort=下書き -StatusSendingValidatedShort=検査 +StatusSendingValidatedShort=検証済 StatusSendingProcessedShort=処理 SendingSheet=出荷シート ConfirmDeleteSending=この貨物を削除してもよいか? -ConfirmValidateSending=この出荷を参照%s で検査してもよいか? +ConfirmValidateSending=この出荷を参照%s で検証してもよいか? ConfirmCancelSending=この出荷をキャンセルしてもよいか? DocumentModelMerou=メロウA5モデル WarningNoQtyLeftToSend=警告、出荷待ちの製品はない。 -StatsOnShipmentsOnlyValidated=統計は、検証済みの出荷のみを対象としている。使用日は出荷の検証日(配達予定日は常にわかっているわけではない) +StatsOnShipmentsOnlyValidated=統計は、検証済の出荷のみを対象としている。使用日は出荷の検証済日(配達予定日は常にわかっているわけではない) DateDeliveryPlanned=配達予定日 RefDeliveryReceipt=参照納品書 -StatusReceipt=ステータス納品書 +StatusReceipt=状態納品書 DateReceived=配達受領日付 -ClassifyReception=レセプションを分類する +ClassifyReception=領収を分類する SendShippingByEMail=メールで出荷する SendShippingRef=出荷の提出%s ActionsOnShipping=出荷のイベント @@ -56,12 +56,12 @@ LinkToTrackYourPackage=あなたのパッケージを追跡するためのリン ShipmentCreationIsDoneFromOrder=現時点では、新しい出荷の作成は受注レコードから行われる。 ShipmentLine=出荷ライン ProductQtyInCustomersOrdersRunning=未処理の受注からの製品数量 -ProductQtyInSuppliersOrdersRunning=未処理の発注書からの製品数量 -ProductQtyInShipmentAlreadySent=未処理の受注からの製品数量はすでに送信された -ProductQtyInSuppliersShipmentAlreadyRecevied=すでに受け取った未処理の発注書からの製品数量 -NoProductToShipFoundIntoStock=倉庫%sに出荷する製品が見つかりません。在庫を修正するか、戻って別の倉庫を選択すること。 +ProductQtyInSuppliersOrdersRunning=未処理の購買発注からの製品数量 +ProductQtyInShipmentAlreadySent=未処理の受注からの製品数量は既に送信された +ProductQtyInSuppliersShipmentAlreadyRecevied=既に受け取った未処理の購買発注からの製品数量 +NoProductToShipFoundIntoStock=倉庫%sに出荷する製品が見つからない。在庫を修正するか、戻って別の倉庫を選択すること。 WeightVolShort=重量/容量 -ValidateOrderFirstBeforeShipment=出荷を行う前に、まず注文を検査する必要がある。 +ValidateOrderFirstBeforeShipment=出荷を行う前に、まず注文を検証する必要がある。 # Sending methods # ModelDocument diff --git a/htdocs/langs/ja_JP/sms.lang b/htdocs/langs/ja_JP/sms.lang index c2ea40576c2..0dc09567ba1 100644 --- a/htdocs/langs/ja_JP/sms.lang +++ b/htdocs/langs/ja_JP/sms.lang @@ -3,7 +3,7 @@ Sms=SMS SmsSetup=SMSの設定 SmsDesc=このページでは、SMS機能のグローバルオプションを定義できる SmsCard=SMSカード -AllSms=すべてのSMSキャンペーン +AllSms=全SMSキャンペーン SmsTargets=ターゲット SmsRecipients=ターゲット SmsRecipient=ターゲット @@ -25,10 +25,10 @@ PrepareSms=SMSを準備する CreateSms=SMSを作成する SmsResult=SMS送信の結果 TestSms=SMSをテストする -ValidSms=SMSを検証する +ValidSms=SMSを検証 ApproveSms=SMSを承認する SmsStatusDraft=下書き -SmsStatusValidated=検証 +SmsStatusValidated=検証済 SmsStatusApproved=承認された SmsStatusSent=送信 SmsStatusSentPartialy=部分的に送信 diff --git a/htdocs/langs/ja_JP/stocks.lang b/htdocs/langs/ja_JP/stocks.lang index 74c52d0211d..bee56bf56d2 100644 --- a/htdocs/langs/ja_JP/stocks.lang +++ b/htdocs/langs/ja_JP/stocks.lang @@ -33,9 +33,9 @@ MovementId=移動 ID StockMovementForId=移動 ID%d ListMouvementStockProject=プロジェクトに関連する在庫推移のリスト StocksArea=倉庫エリア -AllWarehouses=すべての倉庫 +AllWarehouses=全倉庫 IncludeEmptyDesiredStock=未定義の希望在庫で負の在庫も含める -IncludeAlsoDraftOrders=ドラフト注文も含める +IncludeAlsoDraftOrders=下書き注文も含める Location=場所 LocationSummary=場所の短い名前 NumberOfDifferentProducts=ユニークな製品の数 @@ -46,9 +46,9 @@ Units=ユニット Unit=ユニット StockCorrection=在庫修正 CorrectStock=正しい在庫 -StockTransfer=在庫移転 -TransferStock=在庫移転 -MassStockTransferShort=大量在庫移転 +StockTransfer=在庫移動 +TransferStock=在庫移動 +MassStockTransferShort=大量在庫移動 StockMovement=在庫推移 StockMovements=在庫推移 NumberOfUnit=ユニット数 @@ -57,17 +57,17 @@ StockTooLow=低すぎる在庫 StockLowerThanLimit=在庫がアラート制限を下回っている(%s) EnhancedValue=値 EnhancedValueOfWarehouses=倉庫の値 -UserWarehouseAutoCreate=ユーザーの作成時にユーザー倉庫を自動的に作成する +UserWarehouseAutoCreate=ユーザの作成時にユーザ倉庫を自動的に作成する AllowAddLimitStockByWarehouse=製品ごとの最小在庫と希望在庫の値に加えて、ペアリングごとの最小在庫と希望在庫の値(製品倉庫)も管理する。 RuleForWarehouse=倉庫のルール WarehouseAskWarehouseOnThirparty=取引先に倉庫を設置する -WarehouseAskWarehouseDuringPropal=商業提案に倉庫を設定する +WarehouseAskWarehouseDuringPropal=商取引提案に倉庫を設定する WarehouseAskWarehouseDuringOrder=受注に対して倉庫を設定 WarehouseAskWarehouseDuringProject=プロジェクトに倉庫を設定 -UserDefaultWarehouse=ユーザーに倉庫を設定する +UserDefaultWarehouse=ユーザに倉庫を設定する MainDefaultWarehouse=デフォルトの倉庫 -MainDefaultWarehouseUser=ユーザーごとにデフォルトの倉庫を使用する -MainDefaultWarehouseUserDesc=このオプションを有効にすると、製品の作成時に、製品に割り当てられた倉庫がこのオプションで定義される。ユーザーに倉庫が定義されていない場合は、デフォルトの倉庫が定義される。 +MainDefaultWarehouseUser=ユーザごとにデフォルトの倉庫を使用する +MainDefaultWarehouseUserDesc=このオプションを有効にすると、製品の作成時に、製品に割り当てられた倉庫がこのオプションで定義される。ユーザに倉庫が定義されていない場合は、デフォルトの倉庫が定義される。 IndependantSubProductStock=製品在庫と副製品在庫は独立している QtyDispatched=手配済数量 QtyDispatchedShort=手配済数量 @@ -79,12 +79,12 @@ DeStockOnBill=顧客の請求書/貸方表の検証で実際の在庫を減ら DeStockOnValidateOrder=受注の検証時に実在庫を減らす DeStockOnShipment=出荷検証で実際の在庫を減らす DeStockOnShipmentOnClosing=出荷がクローズに設定されている場合は、実際の在庫を減らす -ReStockOnBill=仕入先の請求書/貸方表の検証で実際の在庫を増やす -ReStockOnValidateOrder=注文書の承認時に実在庫を増やす -ReStockOnDispatchOrder=商品の発注書受領後、倉庫への手動発送で実際の在庫を増やす -StockOnReception=受信の検証で実際の在庫を増やす -StockOnReceptionOnClosing=受付がクローズに設定されている場合は、実際の在庫を増やす -OrderStatusNotReadyToDispatch=注文のステータスは、在庫倉庫にある製品の発送を、まだ許可していないか、これ以上許可できない状態。 +ReStockOnBill=仕入先の請求書/貸方票の検証で実際の在庫を増やす +ReStockOnValidateOrder=購買発注の承認時に実在庫を増やす +ReStockOnDispatchOrder=商品の購買発注受領後、倉庫への手動発送で実際の在庫を増やす +StockOnReception=受領検証の上で実在庫を増やす +StockOnReceptionOnClosing=受領が終了に設定されている場合、実在庫を増やす +OrderStatusNotReadyToDispatch=注文の状態は、在庫倉庫にある製品の発送を、まだ許可していないか、これ以上許可できない状態。 StockDiffPhysicTeoric=物理在庫と仮想在庫の違いの説明 NoPredefinedProductToDispatch=このオブジェクト用に事前定義された製品なし。よって在庫発送の要なし。 DispatchVerb=派遣 @@ -98,7 +98,7 @@ RealStockWillAutomaticallyWhen=実際の在庫は、このルールに従って VirtualStock=仮想在庫 VirtualStockAtDate=将来の仮想在庫 VirtualStockAtDateDesc=仮想在庫、かつての保留中の注文で、 選択した日付より前に処理される予定のものが、完了となる -VirtualStockDesc=仮想在庫は、すべてのオープン/保留アクション(在庫に影響を与える)が閉じられたときに使用可能な計算された在庫 (発注書の受領、販売注文の出荷、製造注文の作成など)。 +VirtualStockDesc=仮想在庫は、全オープン/保留アクション(在庫に影響を与える)が閉じられたときに使用可能な計算された在庫 (購買発注の受領、販売注文の出荷、製造注文の作成など)。 AtDate=日付で IdWarehouse=Id 倉庫 DescWareHouse=説明倉庫 @@ -133,27 +133,27 @@ CurentSelectionMode=現在の選択モード CurentlyUsingVirtualStock=仮想在庫 CurentlyUsingPhysicalStock=現物在庫 RuleForStockReplenishment=在庫補充のルール -SelectProductWithNotNullQty=数量がnullではない製品と仕入先を少なくとも1つ選択してください +SelectProductWithNotNullQty=数量がnullではない製品と仕入先を少なくとも1つ選択すること AlertOnly= アラートのみ IncludeProductWithUndefinedAlerts = 希望数量が定義されていない製品の負の在庫も含めて、0に戻す。 WarehouseForStockDecrease=倉庫%sは在庫減少に使用される WarehouseForStockIncrease=倉庫%sは在庫増加に使用される ForThisWarehouse=この倉庫のために -ReplenishmentStatusDesc=これは、在庫が希望在庫より少ない(またはチェックボックス「アラートのみ」がチェックされている場合はアラート値より低い)すべての製品のリスト 。チェックボックスを使用して、差額を埋めるための発注書を作成できる。 +ReplenishmentStatusDesc=これは、在庫が希望在庫より少ない(またはチェックボックス「アラートのみ」がチェックされている場合はアラート値より低い)全製品のリスト 。チェックボックスを使用して、差額を埋めるための購買発注を作成できる。 ReplenishmentStatusDescPerWarehouse=倉庫ごとに定義された希望数量に基づいて補充が必要な場合は、倉庫にフィルタを追加する必要がある。 -ReplenishmentOrdersDesc=これは、事前定義された製品を含むすべての未処理の注文書のリスト 。事前定義された製品を含む未処理の注文のみ、つまり在庫に影響を与える可能性のある注文がここに表示される。 +ReplenishmentOrdersDesc=これは、事前定義された製品を含む全未処理の購買発注のリスト 。事前定義された製品を含む未処理の注文のみ、つまり在庫に影響を与える可能性のある注文がここに表示される。 Replenishments=補充 NbOfProductBeforePeriod=選択した期間の前に在庫がある製品%sの数量(<%s) NbOfProductAfterPeriod=選択した期間後の在庫の製品%sの数量(> %s) MassMovement=マス移動 -SelectProductInAndOutWareHouse=ソース倉庫とターゲット倉庫、製品と数量を選択し、「%s」をクリックする。必要なすべての動きに対してこれが完了したら、「%s」をクリックする。 -RecordMovement=レコード移転 +SelectProductInAndOutWareHouse=ソース倉庫とターゲット倉庫、製品と数量を選択し、「%s」をクリックする。必要な全動きに対してこれが完了したら、「%s」をクリックする。 +RecordMovement=レコード移動 ReceivingForSameOrder=この注文の領収書 StockMovementRecorded=記録された在庫推移 RuleForStockAvailability=在庫要件に関する規則 -StockMustBeEnoughForInvoice=在庫レベルは、製品/サービスを請求書に追加するのに十分でなければなりません(自動在庫変更のルールに関係なく、請求書に行を追加するときに現在の実際の在庫に対してチェックが行われる) -StockMustBeEnoughForOrder=在庫レベルは、注文に製品/サービスを追加するのに十分でなければなりません(自動在庫変更のルールに関係なく、注文にラインを追加するときに現在の実際の在庫でチェックが行われる) -StockMustBeEnoughForShipment= 在庫レベルは、製品/サービスを出荷に追加するのに十分でなければなりません(自動在庫変更のルールに関係なく、出荷にラインを追加するときに現在の実際の在庫でチェックが行われる) +StockMustBeEnoughForInvoice=在庫レベルは、製品/サービスを請求書に追加するのに十分でなければならない(自動在庫変更のルールに関係なく、請求書に行を追加するときに現在の実際の在庫に対してチェックが行われる) +StockMustBeEnoughForOrder=在庫レベルは、注文に製品/サービスを追加するのに十分でなければならない(自動在庫変更のルールに関係なく、注文にラインを追加するときに現在の実際の在庫でチェックが行われる) +StockMustBeEnoughForShipment= 在庫レベルは、製品/サービスを出荷に追加するのに十分でなければならない(自動在庫変更のルールに関係なく、出荷にラインを追加するときに現在の実際の在庫でチェックが行われる) MovementLabel=動きのラベル TypeMovement=移動方向 DateMovement=移動日 @@ -164,19 +164,19 @@ qtyToTranferIsNotEnough=ソース倉庫からの十分な在庫がなく、設 qtyToTranferLotIsNotEnough=ソース倉庫からこのロット番号に対して十分な在庫がなく、設定で負の在庫が許可されていない(製品 '%s'の数量とロット '%s'は倉庫 '%s'の%s )。 ShowWarehouse=倉庫を表示 MovementCorrectStock=製品%sの在庫修正 -MovementTransferStock=製品%sの別の倉庫への在庫移転 +MovementTransferStock=製品%sの別の倉庫への在庫移動 InventoryCodeShort=Inv./Mov。コード -NoPendingReceptionOnSupplierOrder=注文書が開いているため、保留中の受付はない +NoPendingReceptionOnSupplierOrder=購買発注が開いているため、保留中の領収はない ThisSerialAlreadyExistWithDifferentDate=ロット/シリアル 番号 (%s) は異なる賞味期限または販売期限で ( %s が見つかったが、入力したのは %s). OpenAnyMovement=開く(全移動) OpenInternal=オープン(内部移動のみ) -UseDispatchStatus=発注書受付の製品ラインにディスパッチステータス(承認/拒否)を使用する +UseDispatchStatus=購買発注の受領については製品ラインにディスパッチ状態(承認/拒否)を使用する OptionMULTIPRICESIsOn=オプション「セグメントごとのいくつかの価格」がオンになっている。これは、製品に複数の販売価格があるため、販売価値を計算できないことを意味する ProductStockWarehouseCreated=アラートの在庫制限と希望する最適在庫が正しく作成された ProductStockWarehouseUpdated=アラートの在庫制限と希望する最適在庫が正しく更新された ProductStockWarehouseDeleted=アラートの在庫制限と希望する最適在庫が正しく削除された AddNewProductStockWarehouse=アラートと望ましい最適在庫の新規制限を設定する -AddStockLocationLine=数量を減らしてから、クリックしてこの製品の別の倉庫を追加する +AddStockLocationLine=数量を減らしてからクリックして行を分割 InventoryDate=目録日付 Inventories=在庫 NewInventory=新規目録 @@ -184,7 +184,7 @@ inventorySetup = 目録設定 inventoryCreatePermission=新規目録を作成する inventoryReadPermission=在庫を見る inventoryWritePermission=在庫を更新する -inventoryValidatePermission=目録を検証する +inventoryValidatePermission=目録を検証 inventoryDeletePermission=目録を削除 inventoryTitle=目録 inventoryListTitle=在庫 @@ -192,14 +192,14 @@ inventoryListEmpty=進行中の目録はない inventoryCreateDelete=目録の作成/削除 inventoryCreate=新規作成 inventoryEdit=編集 -inventoryValidate=検証 +inventoryValidate=検証済 inventoryDraft=ランニング inventorySelectWarehouse=倉庫の選択 inventoryConfirmCreate=作成 inventoryOfWarehouse=倉庫の目録:%s inventoryErrorQtyAdd=エラー:1つの数量がゼロ未満 inventoryMvtStock=目録別 -inventoryWarningProductAlreadyExists=この製品はすでにリストに含まれている +inventoryWarningProductAlreadyExists=この製品は既にリストに含まれている SelectCategory=カテゴリフィルタ SelectFournisseur=仕入先フィルタ inventoryOnDate=目録 @@ -228,8 +228,8 @@ ListInventory=リスト StockSupportServices=在庫管理はサービスをサポートする StockSupportServicesDesc=デフォルトでは、"製品" 種別 の製品のみを在庫できる。サービスモジュールとこのオプションの両方が有効になっている場合は、"サービス"種別 の製品を在庫することもできる。 ReceiveProducts=アイテムを受け取る -StockIncreaseAfterCorrectTransfer=修正/移転による増加 -StockDecreaseAfterCorrectTransfer=修正/移転による減少 +StockIncreaseAfterCorrectTransfer=修正/移動による増加 +StockDecreaseAfterCorrectTransfer=修正/移動による減少 StockIncrease=在庫増加 StockDecrease=在庫減少 InventoryForASpecificWarehouse=特定の倉庫の目録 @@ -244,17 +244,17 @@ InventoryRealQtyHelp=値を0に設定して、数量をリセットする。
    UpdateByScaning=スキャンして実際の数量を完了する UpdateByScaningProductBarcode=スキャンによる更新(製品バーコード) UpdateByScaningLot=スキャンによる更新(ロット|シリアルバーコード) -DisableStockChangeOfSubProduct=この移動中は、このキットのすべての副産物の在庫変更を無効にする。 +DisableStockChangeOfSubProduct=この移動中は、このキットの全副産物の在庫変更を無効にする。 ImportFromCSV=移動のCSVリストをインポート ChooseFileToImport=ファイルをアップロードし、%sアイコンをクリックして、ソースインポートファイルとしてファイルを選択する。 SelectAStockMovementFileToImport=インポートする在庫品移動ファイルを選択 InfoTemplateImport=アップロードされたファイルは次の形式が必要 (*は必須フィールド):
    元倉庫* | 先倉庫* | 製品* | 数量* | ロット/シリアル番号
    CSV文字区切は「%s」であること LabelOfInventoryMovemement=目録%s ReOpen=再開 -ConfirmFinish=目録の閉鎖を確定するか?これにより、すべての在庫推移が生成され、目録に入力した実数量で在庫が更新される。 +ConfirmFinish=目録の閉鎖を確定するか?これにより、全在庫推移が生成され、目録に入力した実数量で在庫が更新される。 ObjectNotFound=%sが見つからない MakeMovementsAndClose=移動を生成して閉じる -AutofillWithExpected=実際の数量を予想数量に置き換える +AutofillWithExpected=実際の数量を予想数量で埋める ShowAllBatchByDefault=デフォルトでは、製品の「在庫」タブにバッチの詳細を表示する CollapseBatchDetailHelp=在庫モジュール構成でバッチ詳細のデフォルト表示を設定できる ErrorWrongBarcodemode=不明なバーコードモード @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=バーコード付き製品は存在しない WarehouseId=倉庫ID WarehouseRef=倉庫参照 SaveQtyFirst=在庫推移の作成を依頼する前に、最初に実際の在庫数量を保存する。 +ToStart=スタート InventoryStartedShort=開始済 ErrorOnElementsInventory=次の理由により、操作がキャンセルされた。 ErrorCantFindCodeInInventory=インベントリに次のコードが見つからない -QtyWasAddedToTheScannedBarcode=成功 !!数量は、要求されたすべてのバーコードに追加された。スキャナーツールを閉じることができる。 +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=見積在庫移動シート +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 ad0bb8fa8f0..68a15282dee 100644 --- a/htdocs/langs/ja_JP/stripe.lang +++ b/htdocs/langs/ja_JP/stripe.lang @@ -1,36 +1,36 @@ # Dolibarr language file - Source file is en_US - stripe StripeSetup=Stripe モジュールの設定 -StripeDesc= Stripeを介してクレジット/デビットカードで支払うためのオンライン支払いページを顧客に提供する。これを使用して、顧客が臨時の支払いや、特定のDolibarrオブジェクト(請求書、注文など)に関連する支払いの実行ができるようになる。 +StripeDesc= Stripeを介してクレジット/デビットカードで支払うためのオンライン支払ページを顧客に提供する。これを使用して、顧客が臨時の支払や、特定のDolibarrオブジェクト(請求書、注文など)に関連する支払の実行ができるようになる。 StripeOrCBDoPayment=クレジットカードまたはStripeで支払う -FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払いをするために顧客にページを提供するために利用可能 -PaymentForm=支払い形態 +FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払をするために顧客にページを提供するために利用可能 +PaymentForm=支払形態 WelcomeOnPaymentPage=オンライン決済サービスへようこそ ThisScreenAllowsYouToPay=この画面では、%sにオンライン決済を行うことができる。 -ThisIsInformationOnPayment=これは、実行する支払いに関する情報。 +ThisIsInformationOnPayment=これは、実行する支払に関する情報。 ToComplete=完了する YourEMail=入金確定を受信する電子メール -STRIPE_PAYONLINE_SENDEMAIL=支払い試行後の電子メール通知(成功または失敗) +STRIPE_PAYONLINE_SENDEMAIL=支払試行後の電子メール通知(成功または失敗) Creditor=債権者 -PaymentCode=支払いコード +PaymentCode=支払コード StripeDoPayment=Stripeで支払う YouWillBeRedirectedOnStripe=クレジットカード情報を入力するために、セキュリティで保護されたStripeページにリダイレクトされる Continue=次の -ToOfferALinkForOnlinePayment=%s支払いのURL -ToOfferALinkForOnlinePaymentOnOrder=受注の%sオンライン支払いページを提供するURL -ToOfferALinkForOnlinePaymentOnInvoice=顧客の請求書に%sオンライン支払いページを提供するためのURL -ToOfferALinkForOnlinePaymentOnContractLine=契約ラインの%sオンライン支払いページを提供するURL -ToOfferALinkForOnlinePaymentOnFreeAmount=既存のオブジェクトのない任意の金額の%sオンライン支払いページを提供するURL -ToOfferALinkForOnlinePaymentOnMemberSubscription=メンバーサブスクリプションの%sオンライン支払いページを提供するURL -ToOfferALinkForOnlinePaymentOnDonation=寄付の支払いのために%sオンライン支払いページを提供するURL -YouCanAddTagOnUrl=また、URLパラメーター&tag=valueをこれらのURLのいずれかに追加して(オブジェクトにリンクされていない支払いにのみ必須)、独自の支払いコメントタグを追加することもできる。
    既存のオブジェクトがない支払いのURLの場合、パラメーター&noidempotency=1を追加して、同じタグを持つ同じリンクを複数回使用できるようにすることもできる(一部の支払いモードでは、このパラメータがないと、異なるリンクごとに支払いが1に制限される場合がある) -SetupStripeToHavePaymentCreatedAutomatically=Stripeによって検証されたときに支払いが自動的に作成されるように、URL %sを使用してStripeを設定する。 +ToOfferALinkForOnlinePayment=%s支払のURL +ToOfferALinkForOnlinePaymentOnOrder=受注の%sオンライン支払ページを提供するURL +ToOfferALinkForOnlinePaymentOnInvoice=顧客の請求書に%sオンライン支払ページを提供するためのURL +ToOfferALinkForOnlinePaymentOnContractLine=契約ラインの%sオンライン支払ページを提供するURL +ToOfferALinkForOnlinePaymentOnFreeAmount=既存のオブジェクトのない任意の金額の%sオンライン支払ページを提供するURL +ToOfferALinkForOnlinePaymentOnMemberSubscription=構成員サブスクリプションの%sオンライン支払ページを提供するURL +ToOfferALinkForOnlinePaymentOnDonation=寄付の支払のために%sオンライン支払ページを提供するURL +YouCanAddTagOnUrl=また、URLパラメーター&tag=valueをこれらのURLのいずれかに追加して(オブジェクトにリンクされていない支払にのみ必須)、独自の支払コメントタグを追加することもできる。
    既存のオブジェクトがない支払のURLの場合、パラメーター&noidempotency=1を追加して、同じタグを持つ同じリンクを複数回使用できるようにすることもできる(一部の支払モードでは、このパラメータがないと、異なるリンクごとに支払が1に制限される場合がある) +SetupStripeToHavePaymentCreatedAutomatically=Stripeによって検証済なら支払が自動的に作成されるように、URL %sを使用してStripeを設定する。 AccountParameter=アカウントのパラメータ UsageParameter=使用パラメータ InformationToFindParameters=あなたの%sアカウント情報を見つけるのを助ける -STRIPE_CGI_URL_V2=支払い用のStripe CGIモジュールのURL -CSSUrlForPaymentForm=支払いフォームのCSSスタイルシートのURL -NewStripePaymentReceived=新規Stripeの支払いを受け取りました -NewStripePaymentFailed=新規Stripe支払いが試行されましたが、失敗した +STRIPE_CGI_URL_V2=支払用のStripe CGIモジュールのURL +CSSUrlForPaymentForm=支払フォームのCSSスタイルシートのURL +NewStripePaymentReceived=新規Stripeの支払を受け取りました +NewStripePaymentFailed=新規Stripe支払が試行されたが、失敗した FailedToChargeCard=カードのチャージに失敗した STRIPE_TEST_SECRET_KEY=秘密のテストキー STRIPE_TEST_PUBLISHABLE_KEY=公開可能なテストキー @@ -38,19 +38,19 @@ STRIPE_TEST_WEBHOOK_KEY=Webhookテストキー STRIPE_LIVE_SECRET_KEY=秘密のライブキー STRIPE_LIVE_PUBLISHABLE_KEY=公開可能なライブキー STRIPE_LIVE_WEBHOOK_KEY=Webhookライブキー -ONLINE_PAYMENT_WAREHOUSE=オンライン支払いが行われるときに在庫減少に使用する在庫
    (TODO請求書のアクションで在庫を減らすオプションが実行され、オンライン支払いがそれ自体で請求書を生成する場合?) +ONLINE_PAYMENT_WAREHOUSE=オンライン支払が行われるときに在庫減少に使用する在庫
    (TODO請求書のアクションで在庫を減らすオプションが実行され、オンライン支払がそれ自体で請求書を生成する場合?) StripeLiveEnabled=Stripe ライブが有効(それ以外の場合はテスト/サンドボックスモード) -StripeImportPayment=Stripe 支払いのインポート +StripeImportPayment=Stripe 支払のインポート ExampleOfTestCreditCard=テスト用のクレジットカードの例:%s =>有効、%s =>エラーCVC、%s =>期限切れ、%s =>充電に失敗 StripeGateways=Stripe ゲートウェイ OAUTH_STRIPE_TEST_ID=Stripe ConnectクライアントID(ca _...) OAUTH_STRIPE_LIVE_ID=Stripe ConnectクライアントID(ca _...) -BankAccountForBankTransfer=資金支払いのための銀行口座 +BankAccountForBankTransfer=資金支払のための銀行口座 StripeAccount=Stripe アカウント StripeChargeList=Stripe 料金のリスト StripeTransactionList=Stripeトランザクションのリスト StripeCustomerId=Stripe の顧客ID -StripePaymentModes=Stripe 支払いモード +StripePaymentModes=Stripe 支払モード LocalID=ローカルID StripeID=Stripe ID NameOnCard=カードの名前 @@ -62,10 +62,11 @@ ConfirmDeleteCard=このクレジットカードまたはデビットカード CreateCustomerOnStripe=Stripeで顧客を作成する CreateCardOnStripe=Stripeでカードを作成する ShowInStripe=Stripe で表示 -StripeUserAccountForActions=一部のStripeイベントの電子メール通知に使用するユーザーアカウント(Stripeペイアウト) +StripeUserAccountForActions=一部のStripeイベントの電子メール通知に使用するユーザアカウント(Stripeペイアウト) StripePayoutList=Stripe ペイアウトのリスト ToOfferALinkForTestWebhook=IPNを呼び出すためのStripeWebHookの設定へのリンク(テストモード) ToOfferALinkForLiveWebhook=IPNを呼び出すためのStripeWebHookの設定へのリンク(ライブモード) -PaymentWillBeRecordedForNextPeriod=支払いは次の期間に記録される。 +PaymentWillBeRecordedForNextPeriod=支払は次の期間に記録される。 ClickHereToTryAgain= ここをクリックして再試行すること... CreationOfPaymentModeMustBeDoneFromStripeInterface=強力な顧客認証ルールにより、カードの作成はStripeバックオフィスから行う必要がある。 Stripeの顧客レコードをオンにするには、ここをクリックすること:%s +TERMINAL_LOCATION=端末の場所(住所) diff --git a/htdocs/langs/ja_JP/supplier_proposal.lang b/htdocs/langs/ja_JP/supplier_proposal.lang index 2bae204541a..80042787301 100644 --- a/htdocs/langs/ja_JP/supplier_proposal.lang +++ b/htdocs/langs/ja_JP/supplier_proposal.lang @@ -1,55 +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=オープン価格リクエスト +SearchRequest=要求を探す +DraftRequests=下書き要求 +SupplierProposalsDraft=下書き仕入先提案 +LastModifiedRequests=最新の%s修正価格要求 +RequestsOpened=仕掛中価格要求 SupplierProposalArea=仕入先提案エリア SupplierProposalShort=仕入先提案 SupplierProposals=仕入先の提案 SupplierProposalsShort=仕入先の提案 -AskPrice=価格リクエスト -NewAskPrice=新規価格リクエスト -ShowSupplierProposal=価格リクエストを表示 -AddSupplierProposal=価格リクエストを作成する +AskPrice=価格要求 +NewAskPrice=新規価格要求 +ShowSupplierProposal=価格要求を表示 +AddSupplierProposal=価格要求を作成する SupplierProposalRefFourn=仕入先参照 SupplierProposalDate=配達日 -SupplierProposalRefFournNotice=「承認済み」に戻る前に、サプライヤーの参照を把握することを検討すること。 +SupplierProposalRefFournNotice=「承認済」に戻る前に、サプライヤーの参照を把握することを検討すること。 ConfirmValidateAsk=この価格要求を%s という名前で検証してもよいか? -DeleteAsk=リクエストの削除 -ValidateAsk=リクエストの検証 -SupplierProposalStatusDraft=ドラフト(検証する必要がある) -SupplierProposalStatusValidated=検証済み(リクエストはオープン) +DeleteAsk=要求の削除 +ValidateAsk=要求の検証 +SupplierProposalStatusDraft=下書き(要検証済) +SupplierProposalStatusValidated=検証済(要求はオープン) SupplierProposalStatusClosed=閉じた -SupplierProposalStatusSigned=承認済み +SupplierProposalStatusSigned=承認済 SupplierProposalStatusNotSigned=拒否 -SupplierProposalStatusDraftShort=ドラフト -SupplierProposalStatusValidatedShort=検証 +SupplierProposalStatusDraftShort=下書き +SupplierProposalStatusValidatedShort=検証済 SupplierProposalStatusClosedShort=閉じた -SupplierProposalStatusSignedShort=承認済み +SupplierProposalStatusSignedShort=承認済 SupplierProposalStatusNotSignedShort=拒否 -CopyAskFrom=既存のリクエストをコピーして価格リクエストを作成する -CreateEmptyAsk=空白のリクエストを作成する -ConfirmCloneAsk=価格リクエスト%s のクローンを作成してもよいか? -ConfirmReOpenAsk=価格リクエスト%s をオープンバックしてもよいか? -SendAskByMail=価格リクエストをメールで送信 -SendAskRef=価格リクエストの送信%s -SupplierProposalCard=カードをリクエストする -ConfirmDeleteAsk=この価格リクエストを削除してもよいか%s ? -ActionsOnSupplierProposal=価格リクエストのイベント -DocModelAuroreDescription=完全なリクエストモデル(ロゴ...) -CommercialAsk=価格リクエスト +CopyAskFrom=既存の要求をコピーして価格要求を作成する +CreateEmptyAsk=空白の要求を作成する +ConfirmCloneAsk=価格要求%s のクローンを作成してもよいか? +ConfirmReOpenAsk=価格要求%s をオープンバックしてもよいか? +SendAskByMail=価格要求をメールで送信 +SendAskRef=価格要求の送信%s +SupplierProposalCard=カードを要求する +ConfirmDeleteAsk=この価格要求を削除してもよいか%s ? +ActionsOnSupplierProposal=価格要求のイベント +DocModelAuroreDescription=完全な要求モデル(ロゴ...) +CommercialAsk=価格要求 DefaultModelSupplierProposalCreate=デフォルトのモデル作成 -DefaultModelSupplierProposalToBill=価格リクエストを閉じるときのデフォルトテンプレート(承認済み) -DefaultModelSupplierProposalClosed=価格リクエストを閉じるときのデフォルトテンプレート(拒否) -ListOfSupplierProposals=仕入先提案リクエストのリスト +DefaultModelSupplierProposalToBill=価格要求を閉じるときのデフォルトテンプレート(承認済) +DefaultModelSupplierProposalClosed=価格要求を閉じるときのデフォルトテンプレート(拒否) +ListOfSupplierProposals=仕入先提案要求のリスト ListSupplierProposalsAssociatedProject=プロジェクトに関連する仕入先提案のリスト SupplierProposalsToClose=終了する仕入先の提案 SupplierProposalsToProcess=処理する仕入先の提案 -LastSupplierProposals=最新の%s価格リクエスト -AllPriceRequests=すべてのリクエスト +LastSupplierProposals=最新の%s価格要求 +AllPriceRequests=全要求 +TypeContact_supplier_proposal_external_SHIPPING=納品のための仕入先の連絡先 +TypeContact_supplier_proposal_external_BILLING=請求に関する仕入先の連絡先 +TypeContact_supplier_proposal_external_SERVICE=代表的なフォローアップの提案書 diff --git a/htdocs/langs/ja_JP/suppliers.lang b/htdocs/langs/ja_JP/suppliers.lang index 853cd40b317..f0550761e92 100644 --- a/htdocs/langs/ja_JP/suppliers.lang +++ b/htdocs/langs/ja_JP/suppliers.lang @@ -16,26 +16,26 @@ SomeSubProductHaveNoPrices=一部のサブ製品には価格が定義されて AddSupplierPrice=購入価格を追加 ChangeSupplierPrice=購入価格の変更 SupplierPrices=仕入先価格 -ReferenceSupplierIsAlreadyAssociatedWithAProduct=この仕入先リファレンスは、すでに製品に関連付けられている:%s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=この仕入先リファレンスは、既に製品に関連付けられている:%s NoRecordedSuppliers=仕入先は記録されていない SupplierPayment=仕入先の支払 SuppliersArea=仕入先エリア RefSupplierShort=仕入先参照符号 Availability=可用性 ExportDataset_fournisseur_1=仕入先の請求書と請求書の詳細 -ExportDataset_fournisseur_2=仕入先の請求書と支払い -ExportDataset_fournisseur_3=注文書と注文の詳細 +ExportDataset_fournisseur_2=仕入先の請求書と支払 +ExportDataset_fournisseur_3=購買発注と注文の詳細 ApproveThisOrder=この注文を承認 ConfirmApproveThisOrder=注文%s を承認してもよいか? DenyingThisOrder=この注文を拒否する ConfirmDenyingThisOrder=この注文を拒否してもよいか%s ? ConfirmCancelThisOrder=この注文をキャンセルしてもよいか%s ? -AddSupplierOrder=注文書を作成する +AddSupplierOrder=購買発注を作成する AddSupplierInvoice=仕入先の請求書を作成する ListOfSupplierProductForSupplier=仕入先の製品と価格のリスト%s SentToSuppliers=仕入先に送信 -ListOfSupplierOrders=注文書のリスト -MenuOrdersSupplierToBill=請求書への注文書 +ListOfSupplierOrders=購買発注のリスト +MenuOrdersSupplierToBill=請求書への購買発注 NbDaysToDelivery=配達遅延(日) DescNbDaysToDelivery=この注文からの製品の最長配達遅延 SupplierReputation=仕入先の評判 @@ -44,6 +44,13 @@ DoNotOrderThisProductToThisSupplier=注文しないこと NotTheGoodQualitySupplier=低品質 ReputationForThisProduct=評判 BuyerName=バイヤー名 -AllProductServicePrices=すべての製品/サービスの価格 -AllProductReferencesOfSupplier=仕入先のすべての参照 +AllProductServicePrices=全製品/サービスの価格 +AllProductReferencesOfSupplier=仕入先の全参照 BuyingPriceNumShort=仕入先価格 +RepeatableSupplierInvoice=テンプレートサプライヤー請求書 +RepeatableSupplierInvoices=テンプレートサプライヤー請求書 +RepeatableSupplierInvoicesList=テンプレートサプライヤー請求書 +RecurringSupplierInvoices=定期的サプライヤー請求書 +ToCreateAPredefinedSupplierInvoice=テンプレートサプライヤー請求書を作成するには、標準の請求書を作成してから、検証せずに「%s」ボタンをクリックする必要がある。 +GeneratedFromSupplierTemplate=サプライヤーの請求書テンプレート%sから生成 +SupplierInvoiceGeneratedFromTemplate=サプライヤー請求書%sサプライヤー請求書テンプレート%sから生成 diff --git a/htdocs/langs/ja_JP/ticket.lang b/htdocs/langs/ja_JP/ticket.lang index 45f9d066fb7..d1ba081b31e 100644 --- a/htdocs/langs/ja_JP/ticket.lang +++ b/htdocs/langs/ja_JP/ticket.lang @@ -25,18 +25,18 @@ Permission56001=チケットを見る Permission56002=チケットを変更する Permission56003=チケットを削除する Permission56004=チケットを管理する -Permission56005=すべての取引先のチケットを参照すること(外部ユーザーには有効ではなく、常に依存している取引先に限定される) +Permission56005=全取引先のチケットを参照すること(外部ユーザには有効ではなく、常に依存している取引先に限定される) TicketDictType=チケット-タイプ TicketDictCategory=チケット-グループ TicketDictSeverity=チケット-重大度 TicketDictResolution=チケット-解決策 -TicketTypeShortCOM=商業的な質問 -TicketTypeShortHELP=機能的なヘルプのリクエスト +TicketTypeShortCOM=商取引質問 +TicketTypeShortHELP=機能的なヘルプの要求 TicketTypeShortISSUE=問題またはバグ TicketTypeShortPROBLEM=問題 -TicketTypeShortREQUEST=変更または拡張リクエスト +TicketTypeShortREQUEST=変更または拡張要求 TicketTypeShortPROJET=プロジェクト TicketTypeShortOTHER=その他 @@ -53,7 +53,7 @@ MenuTicketMyAssignNonClosed=私のオープンチケット MenuListNonClosed=オープンチケット TypeContact_ticket_internal_CONTRIBUTOR=貢献者 -TypeContact_ticket_internal_SUPPORTTEC=割り当てられたユーザー +TypeContact_ticket_internal_SUPPORTTEC=割り当てられたユーザ TypeContact_ticket_external_SUPPORTCLI=顧客連絡/インシデント追跡 TypeContact_ticket_external_CONTRIBUTOR=外部寄稿者 @@ -90,15 +90,17 @@ TicketPublicAccess=IDを必要としない公開インターフェイスは、 TicketSetupDictionaries=チケットのタイプ、重大度、および分析コードは辞書から構成できる TicketParamModule=モジュール変数の設定 TicketParamMail=メールの設定 -TicketEmailNotificationFrom=からの通知メール -TicketEmailNotificationFromHelp=例によるチケットメッセージの回答に使用 -TicketEmailNotificationTo=通知メール -TicketEmailNotificationToHelp=このアドレスに電子メール通知を送信する。 +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=チケット作成後に送信されるテキストメッセージ TicketNewEmailBodyHelp=ここで指定されたテキストは、公開インターフェイスからの新規チケットの作成を確定する電子メールに挿入される。チケットの相談に関する情報は自動的に追加される。 TicketParamPublicInterface=公開インターフェイスの設定 TicketsEmailMustExist=チケットを作成するには、既存のメールアドレスが必要 -TicketsEmailMustExistHelp=公開インターフェイスでは、新規チケットを作成するために、電子メールアドレスがデータベースにすでに入力されている必要がある。 +TicketsEmailMustExistHelp=公開インターフェイスでは、新規チケットを作成するために、電子メールアドレスがデータベースに既に入力されている必要がある。 +TicketCreateThirdPartyWithContactIfNotExist=不明なメールについては、名前と法人名を尋ねること。 +TicketCreateThirdPartyWithContactIfNotExistHelp=入力したメールアドレスに取引先または連絡先が存在するかどうかを確認する。ない場合、名前と法人名を尋ね、連絡先を付加した取引先を作成する。 PublicInterface=公開インターフェイス TicketUrlPublicInterfaceLabelAdmin=公開インターフェイスの代替URL TicketUrlPublicInterfaceHelpAdmin=Webサーバーのエイリアスを定義して、別のURLで公開インターフェイスを利用できるようにすることができる(サーバーはこの新規URLのプロキシとして機能する必要がある) @@ -108,11 +110,11 @@ TicketPublicInterfaceTextHomeHelpAdmin=ここで定義されたテキストは TicketPublicInterfaceTopicLabelAdmin=インターフェイスタイトル TicketPublicInterfaceTopicHelp=このテキストは、公開インターフェイスのタイトルとして表示される。 TicketPublicInterfaceTextHelpMessageLabelAdmin=メッセージエントリへのヘルプテキスト -TicketPublicInterfaceTextHelpMessageHelpAdmin=このテキストは、ユーザーのメッセージ入力領域の上に表示される。 +TicketPublicInterfaceTextHelpMessageHelpAdmin=このテキストは、ユーザのメッセージ入力領域の上に表示される。 ExtraFieldsTicket=追加の属性 -TicketCkEditorEmailNotActivated=HTMLエディタがアクティブ化されていない。 FCKEDITOR_ENABLE_MAILのコンテンツを1に設定して取得すること。 +TicketCkEditorEmailNotActivated=HTMLエディタが有効化されていない。 FCKEDITOR_ENABLE_MAILのコンテンツを1に設定して取得すること。 TicketsDisableEmail=チケットの作成やメッセージの記録のためにメールを送信しないこと -TicketsDisableEmailHelp=デフォルトでは、新規チケットまたはメッセージが作成されたときに電子メールが送信される。このオプションを有効にすると、*すべての*電子メール通知が無効になる +TicketsDisableEmailHelp=デフォルトでは、新規チケットまたはメッセージが作成されたときに電子メールが送信される。このオプションを有効にすると、*全*電子メール通知が無効になる TicketsLogEnableEmail=メールでログを有効にする TicketsLogEnableEmailHelp=変更のたびに、チケットに関連付けられた**各連絡先**にメールが送信される。 TicketParams=パラメータ @@ -122,35 +124,49 @@ TicketsShowCompanyLogo=公開インターフェイスに法人のロゴを表示 TicketsShowCompanyLogoHelp=このオプションを有効にすると、公開インターフェイスのページで主要法人のロゴが非表示になる。 TicketsEmailAlsoSendToMainAddress=また、メインの電子メールアドレスに通知を送信する TicketsEmailAlsoSendToMainAddressHelp=このオプションを有効にすると、設定「%s」で定義されたアドレスにも電子メールが送信される(タブ「%s」を参照)。 -TicketsLimitViewAssignedOnly=現在のユーザーに割り当てられたチケットに表示を制限する(外部ユーザーには無効で、常に依存している取引先に制限される) -TicketsLimitViewAssignedOnlyHelp=現在のユーザーに割り当てられているチケットのみが表示される。チケット管理権を持つユーザーには適用されない。 -TicketsActivatePublicInterface=公開インターフェイスをアクティブ化する -TicketsActivatePublicInterfaceHelp=公開インターフェイスにより、すべての訪問者がチケットを作成できる。 -TicketsAutoAssignTicket=チケットを作成したユーザーを自動的に割り当てる -TicketsAutoAssignTicketHelp=チケットを作成するときに、ユーザーを自動的にチケットに割り当てることができる。 -TicketNumberingModules=チケット番号付けモジュール +TicketsLimitViewAssignedOnly=現在のユーザに割り当てられたチケットに表示を制限する(外部ユーザには無効で、常に依存している取引先に制限される) +TicketsLimitViewAssignedOnlyHelp=現在のユーザに割り当てられているチケットのみが表示される。チケット管理権を持つユーザには適用されない。 +TicketsActivatePublicInterface=公開インターフェイスを有効化する +TicketsActivatePublicInterfaceHelp=公開インターフェイスにより、全訪問者がチケットを作成できる。 +TicketsAutoAssignTicket=チケットを作成したユーザを自動的に割り当てる +TicketsAutoAssignTicketHelp=チケットを作成するときに、ユーザを自動的にチケットに割り当てることができる。 +TicketNumberingModules=チケット採番モジュール TicketsModelModule=チケットのドキュメントテンプレート TicketNotifyTiersAtCreation=作成時に取引先に通知する TicketsDisableCustomerEmail=公開インターフェイスからチケットを作成するときは、常にメールを無効にすること TicketsPublicNotificationNewMessage=新規メッセージ/コメントがチケットに追加されたときにメール(s)を送信する -TicketsPublicNotificationNewMessageHelp=新規メッセージが公開インターフェイスから追加されたときに電子メール(s)を送信する(割り当てられたユーザーまたは通知電子メールを(更新)および/または通知電子メールに) +TicketsPublicNotificationNewMessageHelp=新規メッセージが公開インターフェイスから追加されたときに電子メール(s)を送信する(割り当てられたユーザまたは通知電子メールを(更新)および/または通知電子メールに) TicketPublicNotificationNewMessageDefaultEmail=通知メール(更新) TicketPublicNotificationNewMessageDefaultEmailHelp=チケットにユーザが割り当てられていない場合、またはユーザに既知の電子メールがない場合は、新規メッセージ通知ごとにこのアドレスに電子メールを送信する。 +TicketsAutoReadTicket=チケットを自動的に既読としてマークする(バックオフィスから作成された場合) +TicketsAutoReadTicketHelp=バックオフィスから作成されたときに、チケットを自動的に既読としてマークする。パブリックインターフェイスからチケットを作成すると、チケットの状態は「未読」のままになる。 +TicketsDelayBeforeFirstAnswer=新しいチケットは、次の期間(時間)の前に最初の回答を受取るべき: +TicketsDelayBeforeFirstAnswerHelp=この期間(時間)を過ぎても新しいチケットが回答を受取らなかった場合、重要な警告アイコンがリストビューに表示される。 +TicketsDelayBetweenAnswers=未解決チケットは、次の期間(時間)は非アクティブにしないべき: +TicketsDelayBetweenAnswersHelp=既に回答を受け取っていて未解決のチケットがこの期間(時間)を過ぎてもそれ以上のやり取りがない場合、リストビューに警告アイコンが表示される。 +TicketsAutoNotifyClose=チケットを閉じるときに自動的にサードパーティに通知する +TicketsAutoNotifyCloseHelp=チケットを閉じるときに、サードパーティの連絡先の1つにメッセージを送信するように提案される。一括クローズ時に、チケットにリンクされているサードパーティの1つの連絡先にメッセージが送信される。 +TicketWrongContact=提供された連絡先は、現在のチケット連絡先の一部ではない。メールは送信されない。 +TicketChooseProductCategory=チケットサポートの製品カテゴリ +TicketChooseProductCategoryHelp=チケットサポートの製品カテゴリを選択する。これは、契約をチケットに自動的にリンクするために使用される。 + # # Index & list page # TicketsIndex=チケットエリア TicketList=チケット一覧 -TicketAssignedToMeInfos=このページには、現在のユーザーによって作成または割り当てられたチケットリストが表示される +TicketAssignedToMeInfos=このページには、現在のユーザによって作成または割り当てられたチケットリストが表示される NoTicketsFound=チケットが見つからない -NoUnreadTicketsFound=未読のチケットは見つからないでした -TicketViewAllTickets=すべてのチケットを見る +NoUnreadTicketsFound=未読のチケットは見つからない +TicketViewAllTickets=全チケットを見る TicketViewNonClosedOnly=開いているチケットのみを表示する -TicketStatByStatus=ステータス別のチケット +TicketStatByStatus=状態別のチケット OrderByDateAsc=昇順で並べ替え OrderByDateDesc=日付の降順で並べ替え ShowAsConversation=会話リストとして表示 MessageListViewType=テーブルリストとして表示 +ConfirmMassTicketClosingSendEmail=チケットを閉じるときに自動的にメールを送信する +ConfirmMassTicketClosingSendEmailQuestion=これらのチケットを閉じるときにサードパーティに通知するか? # # Ticket card @@ -163,7 +179,7 @@ TicketsManagement=チケット管理 CreatedBy=によって作成された NewTicket=新規チケット SubjectAnswerToTicket=チケットの回答 -TicketTypeRequest=リクエストの種類 +TicketTypeRequest=要求の種類 TicketCategory=チケット分類 SeeTicket=チケットを見る TicketMarkedAsRead=チケットは既読としてマークされている @@ -171,7 +187,7 @@ TicketReadOn=読む TicketCloseOn=日付を閉じる MarkAsRead=チケットに既読のマークを付ける TicketHistory=チケット履歴 -AssignUser=ユーザーに割り当てる +AssignUser=ユーザに割り当てる TicketAssigned=チケットが割り当てられました TicketChangeType=タイプを変更する TicketChangeCategory=分析コードを変更する @@ -192,7 +208,7 @@ CloseTicket=チケットを 閉じる|解決 する AbandonTicket=チケットを放棄する CloseATicket=チケット1つを 閉じる|解決 する ConfirmCloseAticket=チケットの終了を確定する -ConfirmAbandonTicket=チケットを終了し、ステータスを「放棄」に確定するか +ConfirmAbandonTicket=チケットを終了し、状態を「放棄」に確定するか ConfirmDeleteTicket=チケットの削除を確定すること TicketDeletedSuccess=チケットは正常に削除された TicketMarkedAsClosed=チケットはクローズとしてマークされている @@ -205,18 +221,18 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=受信者は空。メール送信 TicketGoIntoContactTab=「連絡先」タブに移動して選択すること TicketMessageMailIntro=前書き TicketMessageMailIntroHelp=このテキストはメールの冒頭にのみ追加され、保存されない。 -TicketMessageMailIntroLabelAdmin=メール送信時のメッセージの紹介 -TicketMessageMailIntroText=こんにちは、
    連絡したチケットに新規応答が送信された。メッセージは次のとおり:
    -TicketMessageMailIntroHelpAdmin=このテキストは、チケットへの応答のテキストの前に挿入される。 +TicketMessageMailIntroLabelAdmin=全チケット回答の紹介テキスト +TicketMessageMailIntroText=こんにちは、
    あなたがフォローしているチケットに新しい回答が追加された。メッセージは次のとおりです:
    +TicketMessageMailIntroHelpAdmin=このテキストは、Dolibarrからのチケットに返信するときに、回答の前に挿入される TicketMessageMailSignature=署名 TicketMessageMailSignatureHelp=このテキストはメールの最後にのみ追加され、保存されない。 -TicketMessageMailSignatureText=

    敬具。

    --

    +TicketMessageMailSignatureText=Dolibarr経由で%sによって送信されたメッセージ TicketMessageMailSignatureLabelAdmin=返信メールの署名 TicketMessageMailSignatureHelpAdmin=このテキストは、応答メッセージの後に挿入される。 TicketMessageHelp=このテキストのみがチケットカードのメッセージリストに保存される。 TicketMessageSubstitutionReplacedByGenericValues=置換変数は一般的な値に置き換えられる。 TimeElapsedSince=からの経過時間 -TicketTimeToRead=読み取るまでの経過時間 +TicketTimeToRead=読込むまでの経過時間 TicketTimeElapsedBeforeSince=前後の経過時間 TicketContacts=連絡先チケット TicketDocumentsLinked=チケットにリンクされているドキュメント @@ -225,7 +241,7 @@ TicketMessageMailIntroAutoNewPublicMessage=件名が%sの新規メッセージ TicketAssignedToYou=割り当てられたチケット TicketAssignedEmailBody=%sによってチケット#%sが割り当てられました MarkMessageAsPrivate=メッセージを非公開としてマークする -TicketMessagePrivateHelp=このメッセージは外部ユーザーには表示されない +TicketMessagePrivateHelp=このメッセージは外部ユーザには表示されない TicketEmailOriginIssuer=チケットの発行元の発行者 InitialMessage=最初のメッセージ LinkToAContract=契約へのリンク @@ -234,13 +250,20 @@ UnableToCreateInterIfNoSocid=取引先が定義されていない場合、介入 TicketMailExchanges=メール交換 TicketInitialMessageModified=最初のメッセージが変更された TicketMessageSuccesfullyUpdated=メッセージが正常に更新された -TicketChangeStatus=ステータスを変更する -TicketConfirmChangeStatus=ステータスの変更を確定する:%s? -TicketLogStatusChanged=ステータスが変更された:%sから%s +TicketChangeStatus=状態を変更する +TicketConfirmChangeStatus=状態の変更を確定する:%s? +TicketLogStatusChanged=状態が変更された:%sから%s TicketNotNotifyTiersAtCreate=作成時に法人に通知しない +NotifyThirdpartyOnTicketClosing=チケットを閉じるときに通知する連絡先 +TicketNotifyAllTiersAtClose=関連する全連絡先 +TicketNotNotifyTiersAtClose=関連する連絡先はない Unread=未読 TicketNotCreatedFromPublicInterface=利用不可。チケットは公開インターフェイスから作成されなかった。 ErrorTicketRefRequired=チケット参照名が必要 +TicketsDelayForFirstResponseTooLong=チケット開封で無回答のまま過大な時間が経過した。 +TicketsDelayFromLastResponseTooLong=このチケットの最後の回答から過大な時間が経過した。 +TicketNoContractFoundToLink=このチケットに自動的にリンクされている契約は見つからない。契約を手動でリンクすること。 +TicketManyContractsLinked=多くの契約がこのチケットに自動的にリンクされている。どちらを選択するかを必ず確認すること。 # # Logs @@ -268,11 +291,12 @@ TicketNewEmailBody=これは、新規チケットを登録したことを確定 TicketNewEmailBodyCustomer=これは、新規チケットがアカウントに作成されたことを確定するための自動メール。 TicketNewEmailBodyInfosTicket=チケットを監視するための情報 TicketNewEmailBodyInfosTrackId=チケット追跡番号:%s -TicketNewEmailBodyInfosTrackUrl=上のリンクをクリックすると、チケットの進行状況を確認できる。 +TicketNewEmailBodyInfosTrackUrl=次のリンクをクリックすると、チケットの進行状況を確認できる TicketNewEmailBodyInfosTrackUrlCustomer=次のリンクをクリックすると、特定のインターフェイスでチケットの進行状況を確認できる。 +TicketCloseEmailBodyInfosTrackUrlCustomer=次のリンクをクリックすると、このチケットの履歴を確認できる TicketEmailPleaseDoNotReplyToThisEmail=このメールに直接返信しないこと。リンクを使用して、インターフェースに返信する。 TicketPublicInfoCreateTicket=このフォームを使用すると、管理システムにサポートチケットを記録できる。 -TicketPublicPleaseBeAccuratelyDescribe=問題を正確に説明すること。お客様のリクエストを正しく特定できるように、可能な限り多くの情報を提供すること。 +TicketPublicPleaseBeAccuratelyDescribe=問題を正確に説明すること。お客様の要求を正しく特定できるように、可能な限り多くの情報を提供すること。 TicketPublicMsgViewLogIn=チケット追跡IDを入力すること TicketTrackId=公開トラッキングID OneOfTicketTrackId=トラッキングIDの1つ @@ -286,11 +310,15 @@ TicketNewEmailBodyAdmin=

    チケットはID#%sで作成された。情報を SeeThisTicketIntomanagementInterface=管理インターフェースでチケットを見る TicketPublicInterfaceForbidden=チケットの公開インターフェイスが有効になっていない ErrorEmailOrTrackingInvalid=IDまたは電子メールを追跡するための不正な値 -OldUser=古いユーザー +OldUser=古いユーザ NewUser=新規ユーザ NumberOfTicketsByMonth=1か月あたりのチケット数 NbOfTickets=チケット数 # notifications +TicketCloseEmailSubjectCustomer=チケットは締め切られた +TicketCloseEmailBodyCustomer=これは、チケット%sがちょうど閉じられたことを通知する自動メッセージ 。 +TicketCloseEmailSubjectAdmin=チケットがクローズされた-Réf%s(公開チケットID %s) +TicketCloseEmailBodyAdmin=ID#%sのチケットがクローズされた。情報を参照すること。 TicketNotificationEmailSubject=チケット%sが更新された TicketNotificationEmailBody=これは、チケット%sが更新されたことを通知する自動メッセージ。 TicketNotificationRecipient=通知の受信者 diff --git a/htdocs/langs/ja_JP/trips.lang b/htdocs/langs/ja_JP/trips.lang index ff82b6100c3..7c7ddef5496 100644 --- a/htdocs/langs/ja_JP/trips.lang +++ b/htdocs/langs/ja_JP/trips.lang @@ -11,7 +11,7 @@ TypeFees=料金の種類 ShowTrip=経費報告書を表示する NewTrip=新規経費報告書 LastExpenseReports=最新の%s経費報告書s -AllExpenseReports=すべての経費報告書s +AllExpenseReports=全経費報告書s CompanyVisited=訪問した法人/組織 FeesKilometersOrAmout=金額またはキロメートル DeleteTrip=経費報告書を削除する @@ -21,9 +21,9 @@ ListToApprove=承認待ち ExpensesArea=経費報告エリア ClassifyRefunded=分類「返金済」 ExpenseReportWaitingForApproval=新規経費報告書が承認のために提出された -ExpenseReportWaitingForApprovalMessage=新規経費報告書が提出され、承認を待っている。
    -ユーザ:%s
    -期間:%s
    検証するにはここをクリック:%s +ExpenseReportWaitingForApprovalMessage=新規経費報告書が提出され、承認を待っている。
    -ユーザ:%s
    -期間:%s
    検証にはここをクリック:%s ExpenseReportWaitingForReApproval=再承認のために経費報告書が提出された -ExpenseReportWaitingForReApprovalMessage=経費報告書が提出され、再承認を待っている。
    %s、この理由で経費報告書の承認を拒否した:%s。
    新規バージョンが提案され、承認を待っている。
    -ユーザ:%s
    -期間:%s
    検証するにはここをクリック:%s +ExpenseReportWaitingForReApprovalMessage=経費報告書が提出され、再承認を待っている。
    %s、この理由で経費報告書の承認を拒否した:%s。
    新規バージョンが提案され、承認を待っている。
    -ユーザ:%s
    -期間:%s
    検証にはここをクリック:%s ExpenseReportApproved=経費報告書が承認された ExpenseReportApprovedMessage=経費報告書%sが承認された。
    -ユーザ:%s
    -承認者:%s
    ここをクリックして経費報告書を表示する:%s ExpenseReportRefused=経費報告書は拒否された @@ -31,9 +31,9 @@ ExpenseReportRefusedMessage=経費報告書%sは拒否された。
    -ユー ExpenseReportCanceled=経費報告がキャンセルされた ExpenseReportCanceledMessage=経費報告書%sはキャンセルされた。
    -ユーザ:%s
    -キャンセル者:%s
    -キャンセルの動機:%s
    ここをクリックして経費報告書: %s を表示 ExpenseReportPaid=経費報告書が支払われた -ExpenseReportPaidMessage=経費報告書%sが支払われた。
    -ユーザ:%s
    -支払い者:%s
    ここをクリックして経費報告書を表示する:%s +ExpenseReportPaidMessage=経費報告書%sが支払われた。
    -ユーザ:%s
    -支払者:%s
    ここをクリックして経費報告書を表示する:%s TripId=ID経費報告書 -AnyOtherInThisListCanValidate=リクエストを検証するために通知される人。 +AnyOtherInThisListCanValidate=要求を検証ために通知される人。 TripSociete=情報法人 TripNDF=情報経費報告書 PDFStandardExpenseReports=経費報告書のPDFドキュメントを生成するための標準テンプレート @@ -74,10 +74,10 @@ EX_CAM_VP=PVのメンテナンスと修理 DefaultCategoryCar=デフォルトの輸送モード DefaultRangeNumber=デフォルトの範囲番号 UploadANewFileNow=今すぐ新規ドキュメントをアップロードする -Error_EXPENSEREPORT_ADDON_NotDefined=エラー、経費報告書の番号付け参照のルールがモジュール「経費報告書」の設定に定義されていなかった +Error_EXPENSEREPORT_ADDON_NotDefined=エラー、経費報告書採番参照のルールがモジュール「経費報告書」の設定に定義されていなかった ErrorDoubleDeclaration=同様の日付範囲で別の経費報告書を宣言した。 AucuneLigne=経費報告書はまだ宣言されていない -ModePaiement=支払いモード +ModePaiement=支払モード VALIDATOR=承認を担当するユーザ VALIDOR=によって承認された AUTHOR=によって記録された @@ -98,14 +98,14 @@ ConfirmRefuseTrip=この経費報告書を拒否してもよいか? ValideTrip=経費報告書を承認する ConfirmValideTrip=この経費報告書を承認してもよいか? PaidTrip=経費報告書を支払う -ConfirmPaidTrip=この経費報告書のステータスを「支払い済」に変更してもよいか? +ConfirmPaidTrip=この経費報告書の状態を「支払済」に変更してもよいか? ConfirmCancelTrip=この経費報告書をキャンセルしてもよいか? -BrouillonnerTrip=経費報告書をステータス「ドラフト」に戻する -ConfirmBrouillonnerTrip=この経費報告書をステータス「ドラフト」に移動してもよいか? -SaveTrip=経費報告書を検証する +BrouillonnerTrip=経費報告書を状態「下書き」に戻する +ConfirmBrouillonnerTrip=この経費報告書を状態「下書き」に移動してもよいか? +SaveTrip=経費報告書を検証 ConfirmSaveTrip=この経費報告書を検証してもよいか? NoTripsToExportCSV=この期間にエクスポートする経費報告書はない。 -ExpenseReportPayment=経費報告書の支払い +ExpenseReportPayment=経費報告書の支払 ExpenseReportsToApprove=承認する経費報告書s ExpenseReportsToPay=支払うべき経費報告書s ConfirmCloneExpenseReport=この経費報告書のクローンを作成してもよいか? diff --git a/htdocs/langs/ja_JP/users.lang b/htdocs/langs/ja_JP/users.lang index 5c4f07b0ce5..14fd18b1424 100644 --- a/htdocs/langs/ja_JP/users.lang +++ b/htdocs/langs/ja_JP/users.lang @@ -61,8 +61,8 @@ PhotoFile=写真ファイル ListOfUsersInGroup=このグループのユーザのリスト ListOfGroupsForUser=このユーザのグループのリスト LinkToCompanyContact=取引先/お問い合わせへのリンク -LinkedToDolibarrMember=メンバーへのリンク -LinkedToDolibarrUser=ユーザーへのリンク +LinkedToDolibarrMember=構成員へのリンク +LinkedToDolibarrUser=ユーザへのリンク LinkedToDolibarrThirdParty=取引先へのリンク CreateDolibarrLogin=ユーザを作成する CreateDolibarrThirdParty=取引先を作成する。 @@ -71,7 +71,7 @@ UsePersonalValue=個人的な値を使用 InternalUser=内部ユーザ ExportDataset_user_1=ユーザとそのプロパティ DomainUser=ドメインユーザ%s -Reactivate=再アクティブ化 +Reactivate=再有効化 CreateInternalUserDesc=このフォームを使用すると、法人/組織に内部ユーザを作成できる。外部ユーザ(顧客、仕入先など)を作成するには、その取引先の連絡先カードから Dolibarrユーザの作成 ボタンを使用する。 InternalExternalDesc=内部ユーザは、法人/組織の一部であるユーザ、または法人に関連するデータよりも多くのデータを表示する必要がある組織外のパートナーユーザ(許可システムは、彼が見るまたは実行することの可・不可を定義)。
    外部ユーザは、自分に関連するデータのみを表示する必要がある顧客、仕入先、またはその他のユーザ(取引先の外部ユーザの作成は、取引先の連絡先レコードから実行できる)。

    どちらの場合も、ユーザが必要とする機能に対するアクセス許可を付与する必要がある。 PermissionInheritedFromAGroup=ユーザのグループのいずれかから継承されたので、許可が付与される。 @@ -85,14 +85,14 @@ NewUserPassword=%s用パスワードの変更 NewPasswordValidated=新規パスワードは検証済であり、ログインするには今すぐ使用する必要がある。 EventUserModified=ユーザの%sは変更 UserDisabled=ユーザの%sが無効になって -UserEnabled=ユーザ%sは、アクティブ +UserEnabled=ユーザ%sは、有効化済 UserDeleted=ユーザ%sは削除され NewGroupCreated=グループ%sが作成 -GroupModified=グループ%sが変更されました +GroupModified=グループ%sが変更された GroupDeleted=グループ%sは削除され ConfirmCreateContact=この連絡先のDolibarrアカウントを作成してもよいか? -ConfirmCreateLogin=このメンバーのDolibarrアカウントを作成してもよいか? -ConfirmCreateThirdParty=このメンバーの取引先を作成してもよいか? +ConfirmCreateLogin=この構成員のDolibarrアカウントを作成してもよいか? +ConfirmCreateThirdParty=この構成員の取引先を作成してもよいか? LoginToCreate=作成するには、ログインすること NameToCreate=作成するには、取引先の名前 YourRole=あなたの役割 @@ -109,18 +109,22 @@ WeeklyHours=労働時間(週あたり) ExpectedWorkedHours=週あたりの予想労働時間 ColorUser=ユーザの色 DisabledInMonoUserMode=メンテナンスモードでは無効 -UserAccountancyCode=ユーザアカウンティングコード +UserAccountancyCode=ユーザ会計コード UserLogoff=ユーザのログアウト UserLogged=ユーザがログに記録 DateOfEmployment=雇用日 DateEmployment=雇用 -DateEmploymentstart=雇用開始日 +DateEmploymentStart=雇用開始日 DateEmploymentEnd=雇用終了日 RangeOfLoginValidity=アクセス有効期間 -CantDisableYourself=自分のユーザレコードを無効にすることはできません +CantDisableYourself=自分のユーザレコードを無効にすることはできない ForceUserExpenseValidator=経費報告書検証ツールを強制する -ForceUserHolidayValidator=強制休暇リクエストバリデーター +ForceUserHolidayValidator=強制休暇休暇申請バリデーター ValidatorIsSupervisorByDefault=デフォルトでは、バリデーターはユーザのスーパーバイザー。この動作を維持するには、空のままにする。 UserPersonalEmail=個人的なメール UserPersonalMobile=個人の携帯電話 WarningNotLangOfInterface=警告、これはユーザが話す主要な言語であり、ユーザが表示することを選択したインターフェースの言語ではない。このユーザに表示されるインターフェース言語を変更するには、タブ%sに移動する。 +DateLastLogin=最終ログイン日 +DatePreviousLogin=前回のログイン日 +IPLastLogin=IP最終ログイン +IPPreviousLogin=IP前回ログイン diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang index 5863b45a2a2..feb099de343 100644 --- a/htdocs/langs/ja_JP/website.lang +++ b/htdocs/langs/ja_JP/website.lang @@ -2,16 +2,16 @@ Shortname=コー​​ド WebsiteSetupDesc=使用したいウェブサイトをここに作成する。次に、メニューのWebサイトに移動して編集する。 DeleteWebsite=ウェブサイトを削除 -ConfirmDeleteWebsite=このWebサイトを削除してもよいか?そのすべてのページとコンテンツも削除される。アップロードされたファイル(メディアディレクトリ、ECMモジュールなど)は残る。 +ConfirmDeleteWebsite=このWebサイトを削除してもよいか?その全ページとコンテンツも削除される。アップロードされたファイル(メディアディレクトリ、ECMモジュールなど)は残る。 WEBSITE_TYPE_CONTAINER=ページ/コンテナのタイプ WEBSITE_PAGE_EXAMPLE=例として使用するWebページ WEBSITE_PAGENAME=ページ名/エイリアス WEBSITE_ALIASALT=代替ページ名/エイリアス WEBSITE_ALIASALTDesc=他の名前/エイリアスのリストをここで使用して、この他の名前/エイリアスを使用してページにアクセスできるようにする(たとえば、古いリンク/名前のバックリンクを機能させるためにエイリアスの名前を変更した後の古い名前)。構文は次のとおり。
    alternativename1、alternativename2、..。 WEBSITE_CSS_URL=外部CSSファイルのURL -WEBSITE_CSS_INLINE=CSSファイルの内容(すべてのページに共通) -WEBSITE_JS_INLINE=Javascriptファイルの内容(すべてのページに共通) -WEBSITE_HTML_HEADER=HTMLヘッダーの下部に追加(すべてのページに共通) +WEBSITE_CSS_INLINE=CSSファイルの内容(全ページに共通) +WEBSITE_JS_INLINE=Javascriptファイルの内容(全ページに共通) +WEBSITE_HTML_HEADER=HTMLヘッダーの下部に追加(全ページに共通) WEBSITE_ROBOT=ロボットファイル(robots.txt) WEBSITE_HTACCESS=ウェブサイトの.htaccessファイル WEBSITE_MANIFEST_JSON=ウェブサイトmanifest.jsonファイル @@ -20,7 +20,7 @@ WEBSITE_KEYWORDSDesc=値を区切るにはコンマを使用する EnterHereLicenseInformation=ここにメタデータまたはライセンス情報を入力して、README.mdファイルに入力する。ウェブサイトをテンプレートとして配布する場合、ファイルは誘惑パッケージに含まれる。 HtmlHeaderPage=HTMLヘッダー(このページにのみ固有) PageNameAliasHelp=ページの名前またはエイリアス。
    このエイリアスは、WebサイトがWebサーバーの仮想ホスト(Apacke、Nginxなど)から実行されるときにSEOURLを偽造するためにも使用される。このエイリアスを編集するには、ボタン「%s」を使用する。 -EditTheWebSiteForACommonHeader=注:すべてのページにパーソナライズされたヘッダーを定義する場合は、ページ/コンテナーではなくサイトレベルでヘッダーを編集する。 +EditTheWebSiteForACommonHeader=注:全ページにパーソナライズされたヘッダーを定義する場合は、ページ/コンテナーではなくサイトレベルでヘッダーを編集する。 MediaFiles=メディアライブラリ EditCss=Webサイトのプロパティを編集する EditMenu=編集メニュー @@ -46,12 +46,12 @@ SetHereVirtualHost=Apache/NGinx/...で使用
    専用の仮想ホスト ExampleToUseInApacheVirtualHostConfig=Apache仮想ホストの設定で使用する例: YouCanAlsoTestWithPHPS=PHP組み込みサーバーでの使用
    開発環境では、 PHP組み込みWebサーバ (PHP 5.5 が必要) でサイトをテストするのが都合がいいなら、次のコマンドを動かす
    php -S 0.0.0.0:8080 -t %s YouCanAlsoDeployToAnotherWHP= 別のDolibarrホスティングプロバイダーでWebサイトを実行する
    インターネット上でApacheやNGinxなどのWebサーバーを利用できない場合は、完全なDolibarrホスティングプロバイダーが提供する別のDolibarrインスタンスにWebサイトをエクスポートおよびインポートできる。ウェブサイトモジュールとの統合。いくつかのDolibarrホスティングプロバイダーのリストは、 https://saas.dolibarr.orgにある。 -CheckVirtualHostPerms=また、仮想ホストユーザー(www-dataなど)が、 %s 権限があり、ファイルに対して
    %sへが可能であることをも確認する。 +CheckVirtualHostPerms=また、仮想ホストユーザ(www-dataなど)が、 %s 権限があり、ファイルに対して
    %sへが可能であることをも確認する。 ReadPerm=読む WritePerm=書く TestDeployOnWeb=Webでのテスト/デプロイ PreviewSiteServedByWebServer=新規タブで %s をプレビュー。

    %s は、外部Webサーバ (Apache, Nginx, IIS など) から提供される。 以下のディレクトリを指定するには、当該サーバをインストールして設定する必要あり:
    %s
    URL は外部サーバ:
    %s による -PreviewSiteServedByDolibarr= 新しいタブで%sをプレビューする。

    %sはDolibarrサーバーによって提供されるため、追加のWebサーバー(Apache、Nginx、IISなど)をインストールする必要はない。
    不便なのは、ページのURLがユーザーフレンドリーではなく、Dolibarrのパスで始まること。 URL
    Dolibarrによって提供:
    %s

    ディレクトリ
    %s
    上のポイントは、この仮想サーバーの名前を入力するWebサーバー上の仮想ホストを作成し、このウェブサイトを提供するために、独自の外部Webサーバーを使用するにはこのWebサイトのプロパティで、「Webでのテスト/展開」リンクをクリックする。 +PreviewSiteServedByDolibarr= 新しいタブで%sをプレビューする。

    %sはDolibarrサーバーによって提供されるため、追加のWebサーバー(Apache、Nginx、IISなど)をインストールする必要はない。
    不便なのは、ページのURLがユーザフレンドリーではなく、Dolibarrのパスで始まること。 URL
    Dolibarrによって提供:
    %s

    ディレクトリ
    %s
    上のポイントは、この仮想サーバーの名前を入力するWebサーバー上の仮想ホストを作成し、このウェブサイトを提供するために、独自の外部Webサーバーを使用するにはこのWebサイトのプロパティで、「Webでのテスト/展開」リンクをクリックする。 VirtualHostUrlNotDefined=外部Webサーバーによって提供される仮想ホストのURLが定義されていない NoPageYet=まだページはない YouCanCreatePageOrImportTemplate=新規ページを作成するか、完全なWebサイトテンプレートをインポートできる @@ -84,17 +84,17 @@ BackToListForThirdParty=取引先のリストに戻る DisableSiteFirst=最初にウェブサイトを無効にする MyContainerTitle=私のウェブサイトのタイトル AnotherContainer=これは、別のページ/コンテナのコンテンツを含める方法(埋め込まれたサブコンテナが存在しない可能性があるため、動的コードを有効にすると、ここでエラーが発生する可能性がある) -SorryWebsiteIsCurrentlyOffLine=申し訳ないが、このウェブサイトは現在オフライン。後で戻ってきてください... +SorryWebsiteIsCurrentlyOffLine=申し訳ありませんが、このウェブサイトは現在オフラインです。後ほどお戻りください... WEBSITE_USE_WEBSITE_ACCOUNTS=Webサイトのアカウントテーブルを有効にする WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=テーブルを有効にして、各Webサイト/取引先のWebサイトアカウント(ログイン/パス)を保存する YouMustDefineTheHomePage=最初にデフォルトのホームページを定義する必要がある -OnlyEditionOfSourceForGrabbedContentFuture=警告:外部WebページをインポートしてWebページを作成することは、経験豊富なユーザーのために予約されている。ソースページの複雑さによっては、インポートの結果が元のページと異なる場合がある。また、ソースページが一般的なCSSスタイルまたは競合するJavaScriptを使用している場合、このページで作業するときにウェブサイトエディターの外観や機能が損なわれる可能性がある。この方法はページを作成するためのより迅速な方法だが、最初から、または提案されたページテンプレートから新規ページを作成することをお勧めする。
    取得した外部ページで使用すると、インラインエディタが正しく機能しない場合があることにも注意すること。 +OnlyEditionOfSourceForGrabbedContentFuture=警告:外部WebページをインポートしてWebページを作成することは、経験豊富なユーザのために予約されている。ソースページの複雑さによっては、インポートの結果が元のページと異なる場合がある。また、ソースページが一般的なCSSスタイルまたは競合するJavaScriptを使用している場合、このページで作業するときにウェブサイトエディターの外観や機能が損なわれる可能性がある。この方法はページを作成するためのより迅速な方法だが、最初から、または提案されたページテンプレートから新規ページを作成することをお勧めする。
    取得した外部ページで使用すると、インラインエディタが正しく機能しない場合があることにも注意すること。 OnlyEditionOfSourceForGrabbedContent=コンテンツが外部サイトから取得された場合は、HTMLソースのエディションのみが可能。 GrabImagesInto=cssとページにある画像も取得する。 ImagesShouldBeSavedInto=画像はディレクトリに保存する必要がある WebsiteRootOfImages=ウェブサイト画像のルートディレクトリ SubdirOfPage=ページ専用のサブディレクトリ -AliasPageAlreadyExists=エイリアスページ%sはすでに存在する +AliasPageAlreadyExists=エイリアスページ%sは既に存在する CorporateHomePage=企業ホームページ EmptyPage=空のページ ExternalURLMustStartWithHttp=外部URLは http:// または https:// で始まる必要がある @@ -109,12 +109,12 @@ GoTo=に移動 DynamicPHPCodeContainsAForbiddenInstruction=動的コンテンツとしてデフォルトで禁止されているPHP命令 ' %s 'を含む動的PHPコードを追加する(許可されるコマンドのリストを増やすには、非表示のオプションWEBSITE_PHP_ALLOW_xxxを参照すること)。 NotAllowedToAddDynamicContent=WebサイトでPHP動的コンテンツを追加または編集する権限がない。許可を求めるか、コードを変更せずにphpタグに入れること。 ReplaceWebsiteContent=Webサイトのコンテンツを検索または置換する -DeleteAlsoJs=このウェブサイトに固有のすべてのJavaScriptファイルも削除するか? -DeleteAlsoMedias=このウェブサイトに固有のすべてのメディアファイルも削除するか? +DeleteAlsoJs=このウェブサイトに固有の全JavaScriptファイルも削除するか? +DeleteAlsoMedias=このウェブサイトに固有の全メディアファイルも削除するか? MyWebsitePages=私のウェブサイトのページ SearchReplaceInto=検索|に置き換える ReplaceString=新規文字列 -CSSContentTooltipHelp=ここにCSSコンテンツを入力する。アプリケーションのCSSとの競合を避けるために、すべての定義に .bodywebsite クラスを前置することが必須。例:

    #mycssselector, input.myclass:hover { ... }
    は、以下のようにする。
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }

    注記: もし大きなファイルでこの前置が無いものがあれば、 'lessc' を使用して .bodywebsite の前置をすべての場所に追加する変換ができる。 +CSSContentTooltipHelp=ここにCSSコンテンツを入力する。アプリケーションのCSSとの競合を避けるために、全定義に .bodywebsite クラスを前置することが必須。例:

    #mycssselector, input.myclass:hover { ... }
    は、以下のようにする。
    .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }

    注記: もし大きなファイルでこの前置が無いものがあれば、 'lessc' を使用して .bodywebsite の前置を全場所に追加する変換ができる。 LinkAndScriptsHereAreNotLoadedInEditor=警告:このコンテンツは、サーバーからサイトにアクセスした場合にのみ出力される。編集モードでは使用されないため、編集モードでもJavaScriptファイルをロードする必要がある場合は、タグ「scriptsrc = ...」をページに追加するだけ。 Dynamiccontent=動的コンテンツを含むページのサンプル ImportSite=ウェブサイトテンプレートをインポートする @@ -132,11 +132,11 @@ PublicAuthorAlias=公開著者エイリアス AvailableLanguagesAreDefinedIntoWebsiteProperties=利用可能な言語はウェブサイトのプロパティに定義されている ReplacementDoneInXPages=%sページまたはコンテナで行われた交換 RSSFeed=RSSフィード -RSSFeedDesc=このURLを使用して、タイプ「blogpost」の最新記事のRSSフィードを取得できる。 +RSSFeedDesc=このURLを使用して、タイプ「blogpost」の最新項目のRSSフィードを取得できる。 PagesRegenerated=%sページ(s)/コンテナ(s)が再生成された RegenerateWebsiteContent=Webサイトのキャッシュファイルを再生成する AllowedInFrames=フレームで許可 -DefineListOfAltLanguagesInWebsiteProperties=使用可能なすべての言語のリストをWebサイトのプロパティに定義する。 +DefineListOfAltLanguagesInWebsiteProperties=使用可能な全言語のリストをWebサイトのプロパティに定義する。 GenerateSitemaps=ウェブサイトサイトマップファイルを生成する ConfirmGenerateSitemaps=確定すると、既存のサイトマップファイルが消去される... ConfirmSitemapsCreation=サイトマップの生成を確定する diff --git a/htdocs/langs/ja_JP/withdrawals.lang b/htdocs/langs/ja_JP/withdrawals.lang index 0e89c239fce..6fd0ade4287 100644 --- a/htdocs/langs/ja_JP/withdrawals.lang +++ b/htdocs/langs/ja_JP/withdrawals.lang @@ -1,52 +1,53 @@ # Dolibarr language file - Source file is en_US - withdrawals CustomersStandingOrdersArea=口座振替による支払 -SuppliersStandingOrdersArea=クレジット振込による支払 +SuppliersStandingOrdersArea=債権譲渡による支払 StandingOrdersPayment=口座振替の支払注文 StandingOrderPayment=口座振替の支払注文 NewStandingOrder=新規口座振替の注文 -NewPaymentByBankTransfer=クレジット振込による新規支払 +NewPaymentByBankTransfer=債権譲渡による新規支払 StandingOrderToProcess=処理するには -PaymentByBankTransferReceipts=クレジット転送注文 -PaymentByBankTransferLines=クレジット転送オーダーライン +PaymentByBankTransferReceipts=債権譲渡注文 +PaymentByBankTransferLines=債権譲渡注文ライン WithdrawalsReceipts=口座振替の注文 WithdrawalReceipt=口座振替の注文 -BankTransferReceipts=クレジット転送注文 -BankTransferReceipt=クレジット転送注文 -LatestBankTransferReceipts=最新の%sクレジット転送注文 +BankTransferReceipts=債権譲渡注文 +BankTransferReceipt=債権譲渡注文 +LatestBankTransferReceipts=最新の%s債権譲渡注文 LastWithdrawalReceipts=最新の%s口座振替ファイル WithdrawalsLine=口座振替注文ライン CreditTransfer=銀行口座振替 -CreditTransferLine=クレジット転送ライン +CreditTransferLine=債権譲渡ライン WithdrawalsLines=口座振替注文明細 -CreditTransferLines=クレジット転送ライン -RequestStandingOrderToTreat=処理する口座振替の注文のリクエスト -RequestStandingOrderTreated=口座振替の支払注文のリクエストが処理された -RequestPaymentsByBankTransferToTreat=処理するクレジット転送のリクエスト -RequestPaymentsByBankTransferTreated=処理されたクレジット転送のリクエスト -NotPossibleForThisStatusOfWithdrawReceiptORLine=まだ不可能。特定の行で拒否を宣言する前に、撤回ステータスを「クレジット済」に設定する必要がある。 +CreditTransferLines=債権譲渡ライン +RequestStandingOrderToTreat=処理する口座振替の注文の要求 +RequestStandingOrderTreated=口座振替の支払注文の要求が処理された +RequestPaymentsByBankTransferToTreat=処理する債権譲渡の要求 +RequestPaymentsByBankTransferTreated=処理された債権譲渡の要求 +NotPossibleForThisStatusOfWithdrawReceiptORLine=まだ不可能。特定の行で拒否を宣言する前に、撤回状態を「クレジット済」に設定する必要がある。 NbOfInvoiceToWithdraw=口座振替の注文を待っている適格な顧客の請求書の数 NbOfInvoiceToWithdrawWithInfo=銀行口座情報が定義された口座振替の注文を含む顧客の請求書の数 -NbOfInvoiceToPayByBankTransfer=クレジット振込による支払を待っている適格なサプライヤー請求書の数 -SupplierInvoiceWaitingWithdraw=クレジット振込による支払を待っている仕入先の請求書 +NbOfInvoiceToPayByBankTransfer=債権譲渡による支払を待っている適格なサプライヤー請求書の数 +SupplierInvoiceWaitingWithdraw=債権譲渡による支払を待っている仕入先の請求書 InvoiceWaitingWithdraw=口座振替を待っている請求書 -InvoiceWaitingPaymentByBankTransfer=クレジット転送を待っている請求書 +InvoiceWaitingPaymentByBankTransfer=債権譲渡を待っている請求書 AmountToWithdraw=引落とす金額 -NoInvoiceToWithdraw='%s'の未処理の請求書は待機していない。請求書カードのタブ「%s」に移動して、リクエストを行う。 -NoSupplierInvoiceToWithdraw=「直接クレジットリクエスト」が開いているサプライヤの請求書は待機していない。請求書カードのタブ「%s」に移動して、リクエストを行う。 +AmountToTransfer=送金金額 +NoInvoiceToWithdraw='%s'の未処理の請求書は待機していない。請求書カードのタブ「%s」に移動して、要求を行う。 +NoSupplierInvoiceToWithdraw=「直接クレジット要求」が開いているサプライヤの請求書は待機していない。請求書カードのタブ「%s」に移動して、要求を行う。 ResponsibleUser=ユーザ責任 WithdrawalsSetup=口座振替の設定 -CreditTransferSetup=クレジット転送の設定 +CreditTransferSetup=債権譲渡の設定 WithdrawStatistics=口座振替の支払統計 -CreditTransferStatistics=クレジット転送統計 +CreditTransferStatistics=債権譲渡統計 Rejects=拒否する LastWithdrawalReceipt=最新の%s口座振替の領収書 -MakeWithdrawRequest=口座振替の支払リクエストを行う -MakeBankTransferOrder=クレジット振込をリクエストする +MakeWithdrawRequest=口座振替の支払要求を行う +MakeBankTransferOrder=債権譲渡を要求する WithdrawRequestsDone=%s口座振替の支払要求が記録された -BankTransferRequestsDone=%sクレジット転送リクエストが記録済 +BankTransferRequestsDone=%s債権譲渡要求が記録済 ThirdPartyBankCode=取引先の銀行コード NoInvoiceCouldBeWithdrawed=正常に引き落とされた請求書はない。請求書が有効なIBANを持つ会社のものであり、IBANにモード %s のUMR(一意の委任参照)があることを確認すること。 -WithdrawalCantBeCreditedTwice=この出金票はすでに貸方でマークされている。これは、重複した支払いと銀行エントリを作成する可能性があるため、2回実行することは不可。 +WithdrawalCantBeCreditedTwice=この出金票は既に貸方でマークされている。これは、重複した支払と銀行エントリを作成する可能性があるため、2回実行することは不可。 ClassCredited=入金分類 ClassDebited=借方を分類 ClassCreditedConfirm=あなたの銀行口座に入金、この引落しの領収書を分類してもよいか? @@ -57,14 +58,14 @@ Lines=行 StandingOrderReject=拒否を発行 WithdrawsRefused=口座振替は拒否された WithdrawalRefused=引落しは拒否された -CreditTransfersRefused=クレジット転送が拒否された +CreditTransfersRefused=債権譲渡が拒否された WithdrawalRefusedConfirm=協会に対する引落し拒否を入力してもよいか RefusedData=拒絶反応の日付 RefusedReason=拒否理由 RefusedInvoicing=拒絶反応を請求 NoInvoiceRefused=拒絶反応を充電しないこと InvoiceRefused=請求書が拒否された(拒否を顧客に請求する) -StatusDebitCredit=ステータスの借方/貸方 +StatusDebitCredit=状態の借方/貸方 StatusWaiting=待っている StatusTrans=送信 StatusDebited=借方記入 @@ -78,13 +79,13 @@ StatusMotif3=口座振替の注文はない StatusMotif4=販売注文 StatusMotif5=inexploitable RIB StatusMotif6=バランスせずにアカウント -StatusMotif7=裁判 +StatusMotif7=司法判断 StatusMotif8=他の理由 CreateForSepaFRST=口座振替ファイルの作成(SEPA FRST) CreateForSepaRCUR=口座振替ファイルの作成(SEPA RCUR) CreateAll=自動引落ファイルを作成 -CreateFileForPaymentByBankTransfer=クレジット転送用のファイルを作成する -CreateSepaFileForPaymentByBankTransfer=クレジット転送ファイル(SEPA)の作成 +CreateFileForPaymentByBankTransfer=債権譲渡用のファイルを作成する +CreateSepaFileForPaymentByBankTransfer=債権譲渡ファイル(SEPA)の作成 CreateGuichet=唯一のオフィス CreateBanque=唯一の銀行 OrderWaiting=治療を待っている @@ -99,28 +100,28 @@ CreditDate=クレジットで WithdrawalFileNotCapable=お住まいの国の引き出しレシートファイルを生成できない%s(お住まいの国はサポートされていない) ShowWithdraw=口座振替の注文を表示 IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ただし、請求書にまだ処理されていない口座振替の支払注文が少なくとも1つある場合、事前の引き出し管理を可能にするために支払済として設定されない。 -DoStandingOrdersBeforePayments=このタブでは、口座振替の支払注文をリクエストできる。完了したら、メニューの 銀行 -> 口座振替による支払 に移動して、口座振替の注文を生成および管理する。口座振替の注文が締め切られると、請求書の支払は自動的に記録され、残りの支払がゼロの場合は請求書が締め切られる。 -DoCreditTransferBeforePayments=このタブでは、クレジット振込の注文をリクエストできる。完了したら、メニュー 銀行 -> クレジット転送による支払 に移動して、クレジット転送オーダーを生成および管理する。クレジット振込注文がクローズされると、請求書の支払が自動的に記録され、残りの支払がゼロの場合、請求書はクローズされる。 +DoStandingOrdersBeforePayments=このタブでは、口座振替の支払注文を要求できる。完了したら、メニューの 銀行 -> 口座振替による支払 に移動して、口座振替の注文を生成および管理する。口座振替の注文が締め切られると、請求書の支払は自動的に記録され、残りの支払がゼロの場合は請求書が締め切られる。 +DoCreditTransferBeforePayments=このタブでは、債権譲渡の注文を要求できる。完了したら、メニュー 銀行 -> 債権譲渡による支払 に移動して、債権譲渡注文を生成および管理する。債権譲渡注文がクローズされると、請求書の支払が自動的に記録され、残りの支払がゼロの場合、請求書はクローズされる。 WithdrawalFile=デビット注文ファイル -CreditTransferFile=クレジット転送ファイル -SetToStatusSent=ステータス「ファイル送信済」に設定 +CreditTransferFile=債権譲渡ファイル +SetToStatusSent=状態「ファイル送信済」に設定 ThisWillAlsoAddPaymentOnInvoice=これはまた、請求書に支払を記録し、支払の残りがnullの場合、それらを「支払済」として分類する -StatisticsByLineStatus=行のステータスによる統計 +StatisticsByLineStatus=行の状態による統計 RUM=UMR DateRUM=署名日を委任する RUMLong=独自のマンデートリファレンス RUMWillBeGenerated=空の場合、銀行口座情報が保存されると、UMR(Unique Mandate Reference)が生成される。 WithdrawMode=口座振替モード(FRSTまたはRECUR) -WithdrawRequestAmount=口座振替リクエストの金額: -BankTransferAmount=クレジット送金リクエストの金額: -WithdrawRequestErrorNilAmount=空の金額の口座振替リクエストを作成できない。 +WithdrawRequestAmount=口座振替要求の金額: +BankTransferAmount=クレジット送金要求の金額: +WithdrawRequestErrorNilAmount=空の金額の口座振替要求を作成できない。 SepaMandate=SEPA口座振替の委任 SepaMandateShort=SEPAマンデート PleaseReturnMandate=この委任フォームを電子メールで%sに、または郵送でに返送すること。 SEPALegalText=この委任フォームに署名することにより、(A)%sが銀行に口座からの引き落としを指示し、(B)銀行が%sからの指示に従って口座から引き落としを行うことを承認する。あなたの権利の一部として、あなたはあなたの銀行とのあなたの合意の条件の下であなたの銀行からの払い戻しを受ける権利がある。上記委任事項に関するあなたの権利は、あなたが銀行から入手できる明細書で説明されている。 CreditorIdentifier=債権者識別子 CreditorName=債権者名 -SEPAFillForm=(B)*のマークが付いているすべてのフィールドに入力すること +SEPAFillForm=(B)*のマークが付いている全フィールドに入力すること SEPAFormYourName=あなたの名前 SEPAFormYourBAN=あなたの銀行口座名(IBAN) SEPAFormYourBIC=銀行識別コード(BIC) @@ -128,7 +129,7 @@ SEPAFrstOrRecur=支払方法 ModeRECUR=定期支払 ModeFRST=一回限りの支払 PleaseCheckOne=1つだけ確認すること -CreditTransferOrderCreated=クレジット転送オーダー%sが作成された +CreditTransferOrderCreated=債権譲渡注文%sが作成された DirectDebitOrderCreated=口座振替注文%sが作成された AmountRequested=要求された金額 SEPARCUR=SEPA CUR @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=実行日 CreateForSepa=口座振替ファイルを作成する ICS=債権者識別子-ICS +IDS=債務者識別子 END_TO_END=「EndToEndId」SEPAXMLタグ-トランザクションごとに割り当てられた一意のID USTRD=「非構造化」SEPAXMLタグ ADDDAYS=実行日に日数を追加 @@ -152,5 +154,6 @@ ModeWarning=リアルモードのオプションが設定されていない、 ErrorCompanyHasDuplicateDefaultBAN=ID %s の法人には、複数のデフォルトの銀行口座がある。どちらを使用するかを知る方法はない。 ErrorICSmissing=銀行口座%sにICSがない TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=口座振替の合計金額が行の合計と異なる -WarningSomeDirectDebitOrdersAlreadyExists=警告:すでに保留中の口座振替要求 (%s) があり、金額は %s -WarningSomeCreditTransferAlreadyExists=警告:すでに保留中の振込要求(%s) があり、その金額は %s +WarningSomeDirectDebitOrdersAlreadyExists=警告:既に保留中の口座振替要求 (%s) があり、金額は %s +WarningSomeCreditTransferAlreadyExists=警告:既に保留中の振込要求(%s) があり、その金額は %s +UsedFor=%sに使用 diff --git a/htdocs/langs/ja_JP/workflow.lang b/htdocs/langs/ja_JP/workflow.lang index e7fc1b8b56a..ca5945992a0 100644 --- a/htdocs/langs/ja_JP/workflow.lang +++ b/htdocs/langs/ja_JP/workflow.lang @@ -1,26 +1,36 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=ワークフローモジュールの設定 -WorkflowDesc=このモジュールは、いくつかの自動アクションを提供する。デフォルトでは、ワークフローは開いている(必要な順序で実行できる)が、ここでいくつかの自動アクションをアクティブ化できる。 -ThereIsNoWorkflowToModify=アクティブ化されたモジュールで使用できるワークフローの変更はない。 +WorkflowDesc=このモジュールは、いくつかの自動アクションを提供する。デフォルトでは、ワークフローは開いている(必要な順序で実行できる)が、ここでいくつかの自動アクションを有効化できる。 +ThereIsNoWorkflowToModify=有効化されたモジュールで使用できるワークフローの変更はない。 # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=売買契約提案書が署名された後、自動的に販売注文を作成する(新規注文は提案と同じ金額になる) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=売買契約提案書書に署名した後、顧客の請求書を自動的に作成する(新規請求書は提案書と同じ金額になる) -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=契約が検証された後、顧客の請求書を自動的に作成する +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=商取引提案が署名された後、自動的に販売注文を作成する(新規注文は提案と同じ金額になる) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=商取引提案書に署名した後、顧客の請求書を自動的に作成する(新規請求書は提案と同じ金額になる) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=契約は検証済後、顧客の請求書を自動的に作成する descWORKFLOW_ORDER_AUTOCREATE_INVOICE=受注がクローズされた後、顧客の請求書を自動的に作成する(新規請求書は注文と同じ金額になる) +descWORKFLOW_TICKET_CREATE_INTERVENTION=チケット作成時、出張を自動的に作成。 # Autoclassify customer proposal or order 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=リンクされたソース販売注文を、出荷がクローズされた(かつ、すべての出荷によって出荷された数量が更新する注文と同じである)場合に出荷されたものとして分類する +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=リンクされたソースベンダーの提案を、ベンダーの請求書が検証されたときに請求済として分類する(また、請求書の金額がリンクされた提案の合計金額と同じである場合)。 -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=ベンダーの請求書が検証されたときに請求済としてリンクされたソース発注書を分類する(請求書の金額がリンクされた注文の合計金額と同じである場合) -descWORKFLOW_BILL_ON_RECEPTION=リンクされたサプライヤの注文が検証されたときに、受信を「請求済」に分類する +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=リンクされたサプライヤの注文は検証済なら、領収を「請求済」に指定する +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=チケットを作成するときは、一致するサードパーティの利用可能な契約をリンクする +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=契約をリンクする場合は、親会社の契約を検索すること # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=チケットが閉じられたら、チケットにリンクされているすべての介入を閉じる +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/companies.lang b/htdocs/langs/ka_GE/companies.lang index 7de663ede6d..10028814c63 100644 --- a/htdocs/langs/ka_GE/companies.lang +++ b/htdocs/langs/ka_GE/companies.lang @@ -19,6 +19,7 @@ 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 @@ -51,6 +52,8 @@ 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 @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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 eaeadc8ac44..10f9c9d5d85 100644 --- a/htdocs/langs/kk_KZ/accountancy.lang +++ b/htdocs/langs/kk_KZ/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Орнатуда анықталма AccountancyArea=Бухгалтерлік есеп аймағы AccountancyAreaDescIntro=Бухгалтерлік есеп модулін пайдалану бірнеше кезеңнен тұрады: AccountancyAreaDescActionOnce=Келесі әрекеттер әдетте бір рет немесе жылына бір рет орындалады ... -AccountancyAreaDescActionOnceBis=Болашақта уақытты үнемдеу үшін келесі қадамдарды жасау керек: журналды жасау кезінде дұрыс әдепкі бухгалтерлік есепті ұсыну (журналды журналда және бас кітапта жазу) +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=Келесі әрекеттер әдетте ай сайын, аптада немесе күн сайын өте ірі компаниялар үшін орындалады ... -AccountancyAreaDescJournalSetup=ҚАДАМ %s: %s мәзірінен журнал тізімінің мазмұнын жасаңыз немесе тексеріңіз. +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=%s ҚАДАМЫ: Есеп шотының үлгісі бар екенін тексеріңіз немесе %s мәзірінен үлгі жасаңыз AccountancyAreaDescChart=%s ҚАДАМЫ: %s мәзірінен шот схемасын таңдаңыз және | немесе толтырыңыз. AccountancyAreaDescVat=%s ҚАДАМЫ: ҚҚС мөлшерлемелері бойынша бухгалтерлік есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. AccountancyAreaDescDefault=ҚАДАМ %s: Әдепкі бухгалтерлік есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. -AccountancyAreaDescExpenseReport=%s ҚАДАМЫ: Шығындар есебінің әр түрі үшін әдепкі бухгалтерлік есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=%s ҚАДАМЫ: Жалақы төлеу бойынша есеп айырысу шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. -AccountancyAreaDescContrib=%s ҚАДАМЫ: Арнайы шығыстар бойынша есеп айырысу шоттарын анықтаңыз (әр түрлі салықтар). Ол үшін %s мәзір жазбасын қолданыңыз. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=ҚАДАМ %s: Қайырымдылық үшін әдепкі есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. AccountancyAreaDescSubscription=ҚАДАМ %s: мүше жазылымы үшін әдепкі есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. AccountancyAreaDescMisc=%s ҚАДАМЫ: Әр түрлі транзакциялар үшін міндетті әдепкі есептік жазба мен әдепкі есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. AccountancyAreaDescLoan=%s ҚАДАМЫ: Несие бойынша әдепкі бухгалтерлік есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. AccountancyAreaDescBank=%s ҚАДАМЫ: Әр банк пен қаржылық шоттар үшін бухгалтерлік есеп шоттары мен журнал кодын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. -AccountancyAreaDescProd=%s ҚАДАМЫ: Өнімдеріңіз/қызметтеріңіз бойынша бухгалтерлік есеп шоттарын анықтаңыз. Ол үшін %s мәзір жазбасын қолданыңыз. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=%s ҚАДАМЫ: қолданыстағы %s жолдары мен бухгалтерлік есептік жазба арасындағы байланыстың бар -жоғын тексеріңіз, осылайша бағдарлама Ledger -де операцияларды бір рет басу арқылы журналға жаза алады. Толық жетіспейтін байланыстар. Ол үшін %s мәзір жазбасын қолданыңыз. AccountancyAreaDescWriteRecords=%s ҚАДАМЫ: Кітапқа операцияларды жазу. Ол үшін %s мәзіріне өтіп, %s a0a65d071f6fc9z түймесін басыңыз. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Жабу MenuAccountancyValidationMovements=Қозғалыстарды растау ProductsBinding=Өнім шоттары TransferInAccounting=Бухгалтерлік есепке аудару -RegistrationInAccounting=Бухгалтерлік есепте тіркеу +RegistrationInAccounting=Recording in accounting Binding=Шоттарға міндетті CustomersVentilation=Тұтынушының шот -фактурасын бекіту SuppliersVentilation=Сатушының шот -фактурасын бекіту @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Шығындар есебін бекіту CreateMvts=Жаңа транзакция жасаңыз UpdateMvts=Мәмілені өзгерту ValidTransaction=Транзакцияны растау -WriteBookKeeping=Бухгалтерлік есепте операцияларды тіркеу +WriteBookKeeping=Record transactions in accounting Bookkeeping=Кітап BookkeepingSubAccount=Қосалқы кітап AccountBalance=Шоттың қалдығы @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Қайырымдылықты тіркеу үшін б ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Жазылымдарды тіркеу үшін бухгалтерлік есеп ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Клиенттердің депозитін тіркеу үшін әдепкі бойынша бухгалтерлік есеп +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines ACCOUNTING_PRODUCT_BUY_ACCOUNT=Сатып алынған өнімдер бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=ЕЭК -те сатып алынған өнімдер бойынша әдепкі бойынша бухгалтерлік есеп шоты (егер өнім парағында анықталмаса қолданылады) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Алдын ала анықталған топтар б ByPersonalizedAccountGroups=Жеке топтар бойынша ByYear=Жыл бойынша NotMatch=Орнатылмаған -DeleteMvt=Бухгалтерлік есептен кейбір операциялық желілерді жою +DeleteMvt=Delete some lines from accounting DelMonth=Жойылатын ай DelYear=Жойылатын жыл DelJournal=Жойылатын журнал -ConfirmDeleteMvt=Бұл жыл/ай және/немесе белгілі бір журнал бойынша бухгалтерлік есептің барлық операциялық жолдарын жояды (Кем дегенде бір критерий қажет). Жойылған жазбаны бухгалтерлік кітапқа қайтару үшін '%s' мүмкіндігін қайта пайдалану қажет болады. -ConfirmDeleteMvtPartial=Бұл транзакцияны бухгалтерлік есептен жояды (сол операцияға қатысты барлық операциялық жолдар жойылады) +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=Қаржы журналы ExpenseReportsJournal=Шығындар туралы есеп журналы DescFinanceJournal=Банк шоты бойынша төлемдердің барлық түрлерін қамтитын қаржы журналы @@ -278,30 +279,31 @@ DescVentilExpenseReportMore=Егер сіз бухгалтерлік есепт DescVentilDoneExpenseReport=Мұнда шығыстар туралы есептер мен олардың есепке алу шоттарының тізімін қараңыз Closure=Жылдық жабылу -DescClosure=Мұнда айына расталмаған және қаржы жылы ашылмаған қозғалыстардың санын біліңіз -OverviewOfMovementsNotValidated=1 -қадам/ Тексерілмеген қозғалыстарға шолу. (Қаржылық жылды жабу қажет) -AllMovementsWereRecordedAsValidated=Барлық қозғалыстар тексерілген ретінде тіркелді -NotAllMovementsCouldBeRecordedAsValidated=Барлық қозғалыстарды расталған деп жазу мүмкін емес -ValidateMovements=Қозғалыстарды растау +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=Жазуды, жазуды және жоюды кез келген өзгертуге немесе жоюға тыйым салынады. Жаттығуға арналған барлық жазбалар тексерілуі керек, әйтпесе жабу мүмкін болмайды ValidateHistory=Автоматты түрде байлау AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) ErrorAccountancyCodeIsAlreadyUse=Қате, сіз бұл есептік жазбаны жоя алмайсыз, себебі ол пайдаланылады -MvtNotCorrectlyBalanced=Қозғалыс дұрыс теңгерілмеген. Дебет = %s | Несие = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Тепе -теңдік FicheVentilation=Міндетті карта GeneralLedgerIsWritten=Мәмілелер кітапта жазылады GeneralLedgerSomeRecordWasNotRecorded=Кейбір транзакциялар журналға енгізілмеді. Егер басқа қате туралы хабар болмаса, бұл олардың журналға енгізілгендіктен болар. -NoNewRecordSaved=Журналистік рекорд жоқ +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Бухгалтерлік есепке жатпайтын өнімдердің тізімі ChangeBinding=Байланысты өзгерту Accounted=Бухгалтерлік кітапта есепке алынды NotYetAccounted=Not yet transferred to accounting ShowTutorial=Оқу құралын көрсету NotReconciled=Татуласқан жоқ -WarningRecordWithoutSubledgerAreExcluded=Ескерту, қосалқы есептік жазбасы жоқ барлық операциялар сүзіледі және осы көріністен шығарылады +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=Байланыстыру опциялары @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Сатып алу кезінде бух ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Бухгалтерлік есепте міндеттемелер мен аударымдарды өшіру (шығындар туралы есептер бухгалтерлік есепке алынбайды) ## 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) +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=Бухгалтерлік экспорттық файлдың генерациясын растау? ExportDraftJournal=Журналдың жобасын экспорттау Modelcsv=Экспорт моделі @@ -394,6 +397,21 @@ 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 + +## 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=Орнатудың кейбір міндетті қадамдары орындалмады, оларды аяқтаңыз ErrorNoAccountingCategoryForThisCountry=%s елінде бухгалтерлік есепке алу тобы жоқ (Басты бет - Орнату - Сөздіктерді қараңыз) @@ -406,6 +424,9 @@ 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 ## Import ImportAccountingEntries=Бухгалтерлік жазбалар diff --git a/htdocs/langs/kk_KZ/admin.lang b/htdocs/langs/kk_KZ/admin.lang index 74905691d9d..825bd6eab5f 100644 --- a/htdocs/langs/kk_KZ/admin.lang +++ b/htdocs/langs/kk_KZ/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=ClamAv Daemon үлгісі (clamav-демон қажет):/usr/bin/clamdscan
    ClamWin мысалы (өте баяу): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Пәрмен жолында қосымша параметрлер @@ -477,7 +477,7 @@ InstalledInto=%s каталогына орнатылды BarcodeInitForThirdparties=Үшінші тараптар үшін жаппай штрих-код BarcodeInitForProductsOrServices=Штрих -кодтың жаппай басталуы немесе өнімдерге немесе қызметтерге қалпына келтіру CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Келесі %s бос жазбалардың бастапқы мәні +InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=Штрих -кодтың барлық ағымдағы мәндерін өшіріңіз ConfirmEraseAllCurrentBarCode=Штрих -кодтың барлық ағымдағы мәндерін шынымен өшіргіңіз келе ме? AllBarcodeReset=Штрих -кодтың барлық мәндері жойылды @@ -504,7 +504,7 @@ WarningPHPMailC=- Электрондық поштаны жіберу үшін ө 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=Егер сіздің электрондық пошта 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=Бұл модуль модульдер үшін қажет @@ -718,9 +718,9 @@ Permission34=Өнімдерді жою Permission36=Жасырын өнімдерді қараңыз/басқарыңыз Permission38=Өнімдерді экспорттау Permission39=Ең төменгі бағаны елемеу -Permission41=Жобалар мен тапсырмаларды оқу (ортақ жоба мен мен хабарласатын жобалар). Мен немесе менің иерархиям үшін берілген тапсырмаларға уақытты енгізуге болады (уақыт кестесі) -Permission42=Жобаларды құру/өзгерту (ортақ жоба мен мен хабарласатын жобалар). Сондай -ақ тапсырмалар жасай алады және пайдаланушыларды жоба мен тапсырмаларға тағайындай алады -Permission44=Жобаларды жою (ортақ жоба мен мен хабарласатын жобалар) +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=Жобаларды экспорттау Permission61=Интервенцияларды оқыңыз Permission62=Интервенция жасау/өзгерту @@ -766,9 +766,10 @@ Permission122=Пайдаланушымен байланыстырылған үш Permission125=Пайдаланушымен байланыстырылған үшінші тараптарды жою Permission126=Үшінші тараптарға экспорттау Permission130=Create/modify third parties payment information -Permission141=Барлық жобалар мен тапсырмаларды оқу (сонымен қатар мен байланыста болмайтын жеке жобалар) -Permission142=Барлық жобалар мен тапсырмаларды жасау/өзгерту (сонымен қатар мен байланысқа шықпайтын жеке жобалар) -Permission144=Барлық жобалар мен тапсырмаларды жою (сонымен қатар мен байланыспайтын жеке жобалар) +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=Тікелей дебеттік төлем тапсырмаларын оқыңыз @@ -883,6 +884,9 @@ Permission564=Кредиттік аударымнан бас тартуды/де Permission601=Стикерлерді оқу Permission602=Стикерлер жасау/өзгерту Permission609=Жапсырмаларды жою +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Материалдық есептерді оқыңыз Permission651=Материалдық шоттарды жасау/жаңарту Permission652=Материалдық есепшоттарды жою @@ -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=Сайт мазмұнын оқыңыз Permission10002=Веб -сайт мазмұнын жасау/өзгерту (html және JavaScript мазмұны) Permission10003=Веб -сайт мазмұнын жасаңыз/өзгертіңіз (динамикалық PHP коды). Қауіпті, шектеулі әзірлеушілерге сақталуы керек. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Шығындар есебі - Тасымалдау са DictionaryExpenseTaxRange=Шығындар есебі - Тасымалдау санаты бойынша диапазон DictionaryTransportMode=Ішкі есеп - Тасымалдау режимі DictionaryBatchStatus=Өнім партиясы/сериялық сапаны бақылау күйі +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Бірлік түрі SetupSaved=Орнату сақталды SetupNotSaved=Орнату сақталмады @@ -1122,7 +1129,7 @@ ValueOfConstantKey=Конфигурация константасының мән ConstantIsOn=%s опциясы қосулы NbOfDays=Күндер саны AtEndOfMonth=Айдың соңында -CurrentNext=Ағымдағы/Келесі +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=Ескерту ескертуін көрсетпес бұрын кідірту: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=%s ескерту белгісі экранда кеш элемент үшін көрсетілгенге дейін кідірісті орнатыңыз. Delays_MAIN_DELAY_ACTIONS_TODO=Жоспарланған іс -шаралар (күн тәртібіндегі шаралар) аяқталмаған Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Жоба уақытында жабылған жоқ @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=Сіз кез келген тілдік файлд TitleNumberOfActivatedModules=Белсендірілген модульдер TotalNumberOfActivatedModules=Белсендірілген модульдер: %s / %s YouMustEnableOneModule=Сіз кем дегенде 1 модульді қосуыңыз керек +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=%s класы PHP жолында табылмады YesInSummer=Иә жазда OnlyFollowingModulesAreOpenedToExternalUsers=Назар аударыңыз, тек келесі модульдер сыртқы пайдаланушыларға қол жетімді (мұндай пайдаланушылардың рұқсаттарына қарамастан) және рұқсат берілген жағдайда ғана:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=Шот -фактуралардағы су белгіс PaymentsNumberingModule=Төлем нөмірлеу моделі 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. ##### Proposals ##### PropalSetup=Коммерциялық ұсыныстар модулін орнату ProposalsNumberingModules=Коммерциялық ұсыныстарды нөмірлеу модельдері @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=Қолданбадан сыртқы модульді HighlightLinesOnMouseHover=Тышқанды жылжыту кезінде кесте сызықтарын бөлектеңіз HighlightLinesColor=Тінтуір өткен кезде сызықтың түсін бөлектеңіз (ерекшелеу үшін 'ffffff' пайдаланыңыз) HighlightLinesChecked=Жолдың түсін тексерген кезде бөлектеңіз (ерекшелеу үшін 'ffffff' пайдаланыңыз) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Бет атауының мәтін түсі @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=Бұл мәнді өзгерткеннен кейін NotSupportedByAllThemes=Уилл негізгі тақырыптармен жұмыс істейді, сыртқы тақырыптармен қолдау көрсетілмеуі мүмкін BackgroundColor=Фон түсі TopMenuBackgroundColor=Жоғарғы мәзір үшін фон түсі -TopMenuDisableImages=Жоғарғы мәзірде суреттерді жасыру +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Сол жақ мәзір үшін фон түсі BackgroundTableTitleColor=Кестенің тақырып жолының фон түсі BackgroundTableTitleTextColor=Кестенің тақырып жолының мәтін түсі @@ -1938,7 +1949,7 @@ EnterAnyCode=Бұл өрісте жолды анықтау үшін сілтем Enter0or1=0 немесе 1 енгізіңіз UnicodeCurrency=Бұл жерге жақша арасына енгізіңіз, валюта белгісін білдіретін байт нөмірінің тізімі. Мысалы: $ үшін [36] енгізіңіз - бразилиялық нақты R үшін [82,36] - € үшін енгізіңіз [8364] ColorFormat=RGB түсі HEX форматында, мысалы: FF0000 -PictoHelp=Долибарр форматындағы белгіше атауы (ағымдағы тақырып каталогында 'image.png', модуль каталогында / img / болса 'image.png@nom_du_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=Біріктірілген тізімдердегі жолдың орналасуы SellTaxRate=Sales tax rate RecuperableOnly=Иә, Францияның кейбір штатына арналған «Қабылданбайды, бірақ қалпына келтірілетін» ҚҚС үшін. Барлық басқа жағдайларда «Жоқ» мәнін сақтаңыз. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Регекс сүзгісі таза мәнге (CO COMPANY_DIGITARIA_CLEAN_REGEX=Регекс сүзгісі таза мәнге (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Көшірмеге рұқсат жоқ GDPRContact=Деректерді қорғау жөніндегі қызметкер (DPO, деректердің құпиялылығы немесе GDPR байланысы) -GDPRContactDesc=Егер сіз еуропалық компаниялар/азаматтар туралы деректерді сақтасаңыз, мұнда деректерді қорғаудың жалпы ережесіне жауап беретін контактіні атауға болады +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=Мәтінді құралдар тақтасында көрсетуге көмектесіңіз HelpOnTooltipDesc=Мәтін немесе аударма кілтін осы өріс пішінде пайда болған кезде құралдар кеңесінде көрсету үшін осында қойыңыз YouCanDeleteFileOnServerWith=Бұл файлды пәрмен жолы арқылы серверде жоюға болады:
    %s @@ -2048,6 +2059,7 @@ 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 серверінің электрондық пошта хосты @@ -2057,18 +2069,30 @@ EmailcollectorOperations=Коллектормен жасалатын опера EmailcollectorOperationsDesc=Әрекеттер жоғарыдан төменге қарай орындалады MaxEmailCollectPerCollect=Бір жинауға жиналған электрондық хаттардың максималды саны CollectNow=Қазір жинаңыз -ConfirmCloneEmailCollector=%s электрондық пошта жинаушысын клондау керек екеніне сенімдісіз бе? +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 an agenda event. EmailCollectorConfirmCollectTitle=Растауды растау туралы электрондық пошта -EmailCollectorConfirmCollect=Осы коллекционерге арналған коллекцияны қазір іске қосқыңыз келе ме? +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=Өңделетін жаңа электрондық пошта (сәйкес келетін сүзгілер) жоқ 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, 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=Соңғы нәтиже коды NbOfEmailsInInbox=Бастапқы каталогтағы электрондық пошталардың саны LoadThirdPartyFromName=%s бойынша іздейтін үшінші тарапты жүктеңіз (тек жүктеу үшін) @@ -2089,7 +2113,7 @@ ResourceSetup=Ресурс модулінің конфигурациясы UseSearchToSelectResource=Ресурсты таңдау үшін іздеу формасын пайдаланыңыз (ашылмалы тізім емес). DisabledResourceLinkUser=Пайдаланушыларға ресурсты байланыстыру мүмкіндігін өшіріңіз DisabledResourceLinkContact=Контактілермен ресурсты байланыстыру мүмкіндігін өшіріңіз -EnableResourceUsedInEventCheck=Кез келген жағдайда ресурстың қолданылып жатқанын тексеру үшін мүмкіндікті қосыңыз +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Модульді қалпына келтіруді растаңыз OnMobileOnly=Тек шағын экранда (смартфонда) DisableProspectCustomerType=Үшінші тараптың «Болашақ + Тұтынушы» түрін өшіріңіз (сондықтан үшінші тарап «Болашақ» немесе «Тұтынушы» болуы керек, бірақ екеуі де бола алмайды) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=Электрондық пошта жинаушысын жо ConfirmDeleteEmailCollector=Бұл электрондық пошта жинаушыны шынымен жойғыңыз келе ме? RecipientEmailsWillBeReplacedWithThisValue=Алушы хаттары әрқашан осы мәнмен ауыстырылады AtLeastOneDefaultBankAccountMandatory=Кем дегенде 1 төлемсіз банктік шот анықталуы керек -RESTRICT_ON_IP=Кейбір хост IP -ге кіруге рұқсат етіңіз (қойылмалы таңбаға рұқсат жоқ, мәндер арасындағы бос орынды пайдаланыңыз). Бос дегеніміз - барлық хосттар кіре алады. +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=SabreDAV кітапханасының нұсқасы негізінде NotAPublicIp=Жалпыға ортақ IP емес @@ -2144,6 +2168,9 @@ 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 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 жалпы мәнін пайдалана аласыз. @@ -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/kk_KZ/banks.lang b/htdocs/langs/kk_KZ/banks.lang index b79a99c9760..567d2d175fd 100644 --- a/htdocs/langs/kk_KZ/banks.lang +++ b/htdocs/langs/kk_KZ/banks.lang @@ -95,11 +95,11 @@ LineRecord=Транзакция AddBankRecord=Жазба қосу AddBankRecordLong=Жазбаны қолмен қосыңыз Conciliated=Татуласты -ConciliatedBy=Келіскен +ReConciliedBy=Reconciled by DateConciliating=Сәйкестендіру күні BankLineConciliated=Кіріс банк түбіртегімен салыстырылды -Reconciled=Татуласты -NotReconciled=Татуласқан жоқ +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Тұтынушының төлемі SupplierInvoicePayment=Сатушы төлемі SubscriptionPayment=Жазылым төлемі @@ -172,8 +172,8 @@ SEPAMandate=SEPA мандаты YourSEPAMandate=Сіздің SEPA мандатыңыз FindYourSEPAMandate=Бұл сіздің SEPA мандаты, біздің компанияға сіздің банкке тікелей дебеттік тапсырыс беруге рұқсат береді. Қол қойылғанды қайтарыңыз (қол қойылған құжатты сканерлеңіз) немесе пошта арқылы жіберіңіз AutoReportLastAccountStatement=Салыстыру кезінде автоматты түрде 'банк көшірмесінің нөмірі' өрісін соңғы үзінді көшірме нөмірімен толтырыңыз -CashControl=POS кассалық бақылау -NewCashFence=Жаңа кассаның ашылуы немесе жабылуы +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Қозғалыстарды бояу BankColorizeMovementDesc=Егер бұл функция қосылған болса, сіз дебеттік немесе несиелік қозғалыстар үшін белгілі бір өң түсін таңдай аласыз BankColorizeMovementName1=Дебеттік қозғалыстың фондық түсі @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Егер сіз кейбір банктік ш 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 diff --git a/htdocs/langs/kk_KZ/bills.lang b/htdocs/langs/kk_KZ/bills.lang index e3f9523f522..1a58c0813e8 100644 --- a/htdocs/langs/kk_KZ/bills.lang +++ b/htdocs/langs/kk_KZ/bills.lang @@ -156,6 +156,7 @@ 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. 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=Шот -фактураны үлгіге айналдыру @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=Чек төлемдері (салықты қосқ SendTo=жіберу PaymentByTransferOnThisBankAccount=Келесі банктік шотқа аудару арқылы төлеу VATIsNotUsedForInvoice=* ҚҚС бойынша қолданылмайтын CGI-293В +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Заңды қолдану арқылы 80.035.05 LawApplicationPart2=тауар меншігінде қалады LawApplicationPart3=сатушы толық төленгенге дейін @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Жеткізушінің шот -фактурас UnitPriceXQtyLessDiscount=Бірлік бағасы x Саны - жеңілдік CustomersInvoicesArea=Клиенттердің есеп айырысу аймағы SupplierInvoicesArea=Жеткізушінің есеп айырысу аймағы -FacParentLine=Шот -фактураның негізгі атауы SituationTotalRayToRest=Қалған салықсыз төлеу PDFSituationTitle=Жағдай n ° %d SituationTotalProgress=Жалпы үлгерім %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=Мерзімі бар төленбеген шо 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/kk_KZ/cashdesk.lang b/htdocs/langs/kk_KZ/cashdesk.lang index ec9bc24b34e..d1e53532c30 100644 --- a/htdocs/langs/kk_KZ/cashdesk.lang +++ b/htdocs/langs/kk_KZ/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Төменгі деректеме AmountAtEndOfPeriod=Кезең соңындағы сома (күн, ай немесе жыл) TheoricalAmount=Теориялық мөлшер RealAmount=Нақты сома -CashFence=Касса жабылуы -CashFenceDone=Касса кезеңінде жабылды +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Nb шот -фактуралар Paymentnumpad=Төлемді енгізу үшін тақтаның түрі Numberspad=Сандар тақтасы @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} тег терминал нөмі TakeposGroupSameProduct=Бірдей өнімдер желісін топтастырыңыз StartAParallelSale=Жаңа параллель сатуды бастаңыз SaleStartedAt=Сатылым %s басталды -ControlCashOpening=POS ашқан кезде «Бақылау қолма -қол ақшасы» қалқымалы терезесін ашыңыз -CloseCashFence=Касса бақылауын жабыңыз +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Ақшалай есеп MainPrinterToUse=Қолданылатын негізгі принтер OrderPrinterToUse=Принтерді пайдалануға тапсырыс беріңіз @@ -134,3 +134,5 @@ 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
    diff --git a/htdocs/langs/kk_KZ/companies.lang b/htdocs/langs/kk_KZ/companies.lang index f162f294328..23c7efee851 100644 --- a/htdocs/langs/kk_KZ/companies.lang +++ b/htdocs/langs/kk_KZ/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Іздеу аймағы IdThirdParty=Үшінші тарап IdCompany=Компания идентификаторы IdContact=Байланыс идентификаторы +ThirdPartyAddress=Third-party address ThirdPartyContacts=Үшінші тарап байланыстары ThirdPartyContact=Үшінші тараптың байланыс/мекен-жайы Company=Компания @@ -51,19 +52,22 @@ CivilityCode=Азаматтық коды RegisteredOffice=Тіркелген кеңсе Lastname=Тек Firstname=Аты +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Жұмыс орны UserTitle=Тақырып NatureOfThirdParty=Үшінші тараптың табиғаты NatureOfContact=Байланыс сипаты Address=Мекенжай State=Штат/провинция +StateId=State ID StateCode=Мемлекет/провинция коды StateShort=Мемлекет Region=Аймақ Region-State=Аймақ - Мемлекет Country=Ел CountryCode=Ел коды -CountryId=Ел идентификаторы +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=Сатушы коды жарамсыз CustomerCodeModel=Тұтынушы кодының моделі SupplierCodeModel=Сатушы кодының моделі Gencod=Штрих -код +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Проф. Идентификаторы 1 ProfId2Short=Проф. Идентификаторы 2 @@ -159,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=- @@ -359,7 +364,7 @@ ListOfThirdParties=Үшінші тараптардың тізімі ShowCompany=Үшінші жақ ShowContact=Байланыс мекенжайы ContactsAllShort=Барлығы (сүзгі жоқ) -ContactType=Байланыс түрі +ContactType=Contact role ContactForOrders=Тапсырыстың байланысы ContactForOrdersOrShipments=Тапсырыс немесе жүктің байланысы ContactForProposals=Ұсыныстың байланысы @@ -439,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 1f92f7c5918..bd4b3527e99 100644 --- a/htdocs/langs/kk_KZ/compta.lang +++ b/htdocs/langs/kk_KZ/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Сіз бұл жалақы картасын ақылы деп DeleteSocialContribution=Әлеуметтік немесе фискалдық салық төлемін жою DeleteVAT=ҚҚС бойынша декларацияны жойыңыз DeleteSalary=Жалақы картасын жою +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Бұл әлеуметтік/фискалдық салық төлемін шынымен жойғыңыз келе ме? ConfirmDeleteVAT=ҚҚС бойынша декларацияны шынымен жойғыңыз келе ме? -ConfirmDeleteSalary=Бұл жалақыны шынымен жойғыңыз келе ме? +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 . @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Сатып алу айналымы шот -фактура ReportPurchaseTurnoverCollected=Сатып алу айналымы жиналды IncludeVarpaysInResults = Есептерге әр түрлі төлемдерді енгізіңіз IncludeLoansInResults = Есепке несиені қосыңыз -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) 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/exports.lang b/htdocs/langs/kk_KZ/exports.lang index 9cc76516e90..cff23ab8e7a 100644 --- a/htdocs/langs/kk_KZ/exports.lang +++ b/htdocs/langs/kk_KZ/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=Жол түрі (0 = өнім, 1 = қызмет) FileWithDataToImport=Импортталатын деректер бар файл FileToImport=Импортталатын бастапқы файл FileMustHaveOneOfFollowingFormat=Импортталатын файл келесі форматтардың біріне ие болуы керек -DownloadEmptyExample=Өріс мазмұны туралы ақпарат бар үлгі файлын жүктеңіз -StarAreMandatory=* міндетті өрістер +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 белгішесін басу арқылы импорттау файл пішімі ретінде қолданылатын файл пішімін таңдаңыз ... ChooseFileToImport=Файлды жүктеңіз, содан кейін %s белгішесін нұқыңыз, файлды бастапқы импорттық файл ретінде таңдаңыз ... SourceFileFormat=Бастапқы файл пішімі @@ -135,3 +135,6 @@ NbInsert=Енгізілген жолдар саны: %s NbUpdate=Жаңартылған жолдар саны: %s MultipleRecordFoundWithTheseFilters=Бұл сүзгілермен бірнеше жазбалар табылды: %s StocksWithBatch=Топтамалық/сериялық нөмірі бар өнімдердің қорлары мен орналасуы (қоймасы) +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: 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/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 3ef2aa70e41..b16cace5e25 100644 --- a/htdocs/langs/kk_KZ/install.lang +++ b/htdocs/langs/kk_KZ/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable= %s конфигурация файлы жазыл ConfFileIsWritable= %s конфигурация файлы жазылады. ConfFileMustBeAFileNotADir= %s конфигурация файлы каталог емес, файл болуы керек. ConfFileReload=Конфигурация файлынан параметрлерді қайта жүктеу. +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 сеанстарды қолдайды. @@ -16,13 +17,6 @@ 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=Толығырақ тест алу үшін мына жерді басыңыз ErrorPHPDoesNotSupportSessions=PHP орнату сеанстарды қолдамайды. Бұл функция Dolibarr жұмыс істеуі үшін қажет. PHP параметрлерін және сеанс каталогының рұқсаттарын тексеріңіз. -ErrorPHPDoesNotSupportGD=Сіздің PHP қондырғыңыз GD графикалық функцияларын қолдамайды. Графиктер қол жетімді болмайды. -ErrorPHPDoesNotSupportCurl=Сіздің PHP қондырғыңыз Curl қолдамайды. -ErrorPHPDoesNotSupportCalendar=PHP қондырғысы php күнтізбелік кеңейтімдерін қолдамайды. -ErrorPHPDoesNotSupportUTF8=Сіздің PHP қондырғыңыз UTF8 функцияларын қолдамайды. Dolibarr дұрыс жұмыс істей алмайды. Мұны Dolibarr орнатпас бұрын шешіңіз. -ErrorPHPDoesNotSupportIntl=PHP орнату Intl функцияларын қолдамайды. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=PHP қондырғысы жөндеуді кеңейту функцияларын қолдамайды. ErrorPHPDoesNotSupport=Сіздің PHP қондырғыңыз %s функцияларын қолдамайды. ErrorDirDoesNotExists=%s каталогы жоқ. ErrorGoBackAndCorrectParameters=Қайтып оралыңыз және параметрлерді тексеріңіз/түзетіңіз. @@ -30,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..9d004eeee5b 100644 --- a/htdocs/langs/kk_KZ/loan.lang +++ b/htdocs/langs/kk_KZ/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=Қаржылық міндеттеме InterestAmount=Қызығушылық CapitalRemain=Капитал қалады TermPaidAllreadyPaid = Бұл мерзім толығымен төленген -CantUseScheduleWithLoanStartedToPaid = Төлем басталған кезде несие үшін жоспарлаушыны пайдалану мүмкін емес +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Егер сіз кестені қолдансаңыз, қызығушылықты өзгерте алмайсыз # Admin ConfigLoan=Кредиттік модульді конфигурациялау diff --git a/htdocs/langs/kk_KZ/main.lang b/htdocs/langs/kk_KZ/main.lang index 83448cb7eae..071c4ac9834 100644 --- a/htdocs/langs/kk_KZ/main.lang +++ b/htdocs/langs/kk_KZ/main.lang @@ -244,6 +244,7 @@ Designation=Сипаттама DescriptionOfLine=Сызық сипаттамасы DateOfLine=Жолдың күні DurationOfLine=Жолдың ұзақтығы +ParentLine=Parent line ID Model=Құжат үлгісі DefaultModel=Әдепкі құжат үлгісі Action=Оқиға @@ -344,7 +345,7 @@ KiloBytes=Килобайт MegaBytes=Мегабайт GigaBytes=Гигабайт TeraBytes=Терабайт -UserAuthor=Күткен +UserAuthor=Created by UserModif=Жаңартқан b=б. Kb=Kb @@ -517,6 +518,7 @@ or=немесе Other=Басқа Others=Басқалар OtherInformations=Басқа ақпарат +Workflow=Workflow Quantity=Саны Qty=Саны ChangedBy=Өзгерткен @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=Мүмкіндік өшірілген MoveBox=Виджетті жылжыту Offered=Ұсынылған NotEnoughPermissions=Сізде бұл әрекетке рұқсат жоқ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Сеанстың атауы Method=Әдіс Receive=Қабылдау @@ -798,6 +802,7 @@ URLPhoto=Фотосуреттің/логотиптің URL мекенжайы SetLinkToAnotherThirdParty=Басқа үшінші тарапқа сілтеме LinkTo=Сілтеме LinkToProposal=Ұсынысқа сілтеме +LinkToExpedition= Link to expedition LinkToOrder=Тапсырысқа сілтеме LinkToInvoice=Шот -фактураға сілтеме LinkToTemplateInvoice=Шот -фактураның үлгісіне сілтеме @@ -1164,3 +1169,14 @@ 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 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/kk_KZ/members.lang b/htdocs/langs/kk_KZ/members.lang index 1c970154a30..7186cd35c9a 100644 --- a/htdocs/langs/kk_KZ/members.lang +++ b/htdocs/langs/kk_KZ/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=Қауіпсіздік мақсатында мүшені сіздікі емес пайдаланушымен байланыстыру үшін барлық пайдаланушыларды өңдеуге рұқсат алуыңыз қажет. SetLinkToUser=Dolibarr пайдаланушысына сілтеме SetLinkToThirdParty=Dolibarr үшінші тарапқа сілтеме -MembersCards=Мүшелерге арналған визит карталары +MembersCards=Generation of cards for members MembersList=Мүшелердің тізімі MembersListToValid=Жобаға қатысушылардың тізімі (расталады) MembersListValid=Жарамды мүшелердің тізімі @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Мүше идентификаторы +MemberId=Member Id +MemberRef=Member Ref NewMember=Жаңа мүше MemberType=Мүше түрі MemberTypeId=Мүше түрінің идентификаторы @@ -71,6 +72,12 @@ MemberTypeCanNotBeDeleted=Мүше түрін жою мүмкін емес NewSubscription=New contribution NewSubscriptionDesc=Бұл форма жазылымды қордың жаңа мүшесі ретінде жазуға мүмкіндік береді. Егер сіз жазылымды жаңартқыңыз келсе (егер оның мүшесі болса), оның орнына %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=Кеш SubscriptionNotReceived=Contribution never received @@ -135,7 +142,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=Қонақтың автоматты түрде жазылуы кезінде алынған хабарлама электрондық поштасының тақырыбы @@ -159,11 +166,11 @@ HTPasswordExport=htpassword файлын құру NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Жазу бойынша қосымша әрекет -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=Банк шотына тікелей жазба жасаңыз MoreActionBankViaInvoice=Шот -фактураны және банк шотына төлем жасаңыз MoreActionInvoiceOnly=Төлемсіз шот -фактураны жасаңыз -LinkToGeneratedPages=Келу карталарын жасаңыз +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Бұл экран сіздің барлық мүшелеріңізге немесе белгілі бір мүшеге арналған визит карточкалары бар PDF файлдарын құруға мүмкіндік береді. DocForAllMembersCards=Барлық мүшелер үшін визит карталарын жасаңыз DocForOneMemberCards=Белгілі бір мүшеге визит картасын жасаңыз @@ -198,7 +205,8 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Айналым (компания үшін) немесе бюджет (іргетас үшін) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its 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=Біріктірілген онлайн төлем бетіне өтіңіз ByProperties=Табиғаты бойынша MembersStatisticsByProperties=Мүшелердің статистикасы табиғаты бойынша @@ -218,3 +226,5 @@ 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 diff --git a/htdocs/langs/kk_KZ/modulebuilder.lang b/htdocs/langs/kk_KZ/modulebuilder.lang index b64e33b2aab..2945556eb3d 100644 --- a/htdocs/langs/kk_KZ/modulebuilder.lang +++ b/htdocs/langs/kk_KZ/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=Бос орынсыз құру үшін модуль/қосымшаның атын енгізіңіз. Сөздерді ажырату үшін бас әріптерді қолданыңыз (Мысалы: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Бос орынсыз жасалатын нысан атауын енгізіңіз. Сөздерді ажырату үшін бас әріптерді қолданыңыз (Мысалы: MyObject, Student, Teacher ...). CRUD сынып файлы, сонымен қатар API файлы, объектілерді тізімдеу/қосу/өңдеу/жою үшін беттер және SQL файлдары жасалады. +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=Модульдер жасалатын/өңделетін жол (%s анықталған сыртқы модульдердің бірінші каталогы): %s ModuleBuilderDesc3=Жасалған/өңделетін модульдер табылды: %s ModuleBuilderDesc4=Модуль каталогының түбірінде %s файлы болған кезде модуль «өңделетін» ретінде анықталады NewModule=Жаңа модуль NewObjectInModulebuilder=Жаңа объект +NewDictionary=New dictionary ModuleKey=Модуль кілті ObjectKey=Объект кілті +DicKey=Dictionary key ModuleInitialized=Модуль инициализацияланды FilesForObjectInitialized=«%s» жаңа объектісінің файлдары инициализацияланды FilesForObjectUpdated=«%s» нысанына арналған файлдар жаңартылды (.sql файлдары мен .class.php файлы) @@ -52,7 +55,7 @@ LanguageFile=Тілге арналған файл ObjectProperties=Объектілердің қасиеттері ConfirmDeleteProperty= %s сипатын шынымен жойғыңыз келе ме? Бұл PHP класындағы кодты өзгертеді, сонымен қатар объектінің кесте анықтамасынан бағанды алып тастайды. NotNull=NULL емес -NotNullDesc=1 = Мәліметтер қорын NOT NULL етіп орнатыңыз. -1 = Нөлдік мәндерге рұқсат етіңіз және бос болса NULL мәнін күшейтіңіз ('' немесе 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=«Барлығын іздеу» үшін қолданылады DatabaseIndex=Мәліметтер қорының индексі FileAlreadyExists=%s файлы бұрыннан бар @@ -94,7 +97,7 @@ LanguageDefDesc=Бұл файлдарға барлық кілт пен әр ті MenusDefDesc=Мұнда сіздің модуль ұсынған мәзірлерді анықтаңыз DictionariesDefDesc=Мұнда сіздің модуль ұсынған сөздіктерді анықтаңыз PermissionsDefDesc=Мұнда модуль ұсынған жаңа рұқсаттарды анықтаңыз -MenusDefDescTooltip=Сіздің модуль/қосымша ұсынған мәзірлер $ this-> мәзірлер массивінде модуль дескриптор файлында анықталған. Сіз бұл файлды қолмен өңдей аласыз немесе ендірілген редакторды пайдалана аласыз.

    Ескертпе: Анықталғаннан кейін (және модуль қайта белсендірілгеннен кейін), мәзірлер %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=Модуль/қосымшамен қамтамасыз етілген сөздіктер $ this-> сөздіктер жиымында модуль дескрипторының файлында анықталған. Сіз бұл файлды қолмен өңдей аласыз немесе ендірілген редакторды пайдалана аласыз.

    Ескертпе: Анықталғаннан кейін (және модуль қайта белсендірілгеннен кейін), сөздіктер орнату аймағында %s әкімші пайдаланушыларына көрінеді. PermissionsDefDescTooltip=Модуль/қосымшамен берілген рұқсаттар $ this-> массивінде модуль дескриптор файлында анықталған. Сіз бұл файлды қолмен өңдей аласыз немесе ендірілген редакторды пайдалана аласыз.

    Ескертпе: Анықталғаннан кейін (және модуль қайта іске қосылады), рұқсаттар %s әдепкі рұқсаттарды орнатуда көрінеді. HooksDefDesc= module_parts ['ілмектер'] қасиетінде модуль дескрипторында басқарғыңыз келетін ілгектердің контекстін анықтаңыз (мәтінмәндер тізімін ' initHooks a09a19b4 a091742 кодында іздеу арқылы табуға болады) ілінетін функциялардың кодын қосатын ілмек файлы (ілінетін функцияларды негізгі кодтағы ' executeHooks ' бойынша іздеу арқылы табуға болады). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Бос болса кестені жойыңыз) TableDoesNotExists=%s кестесі жоқ TableDropped=%s кестесі жойылды InitStructureFromExistingTable=Бар кестенің құрылымдық массив жолын құрыңыз -UseAboutPage=Туралы бетті өшіріңіз +UseAboutPage=Do not generate the About page UseDocFolder=Құжаттар қалтасын өшіріңіз UseSpecificReadme=Белгілі бір ReadMe қолданыңыз ContentOfREADMECustomized=Ескерту: README.md файлының мазмұны ModuleBuilder орнатуда анықталған нақты мәнмен ауыстырылды. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Белгілі бір редактордың URL меке UseSpecificFamily = Белгілі бір отбасын қолданыңыз UseSpecificAuthor = Белгілі бір авторды қолданыңыз UseSpecificVersion = Нақты бастапқы нұсқаны қолданыңыз -IncludeRefGeneration=Объектінің сілтемесі автоматты түрде жасалуы керек -IncludeRefGenerationHelp=Сілтемені автоматты түрде құруды басқару үшін кодты қосқыңыз келсе, мұны тексеріңіз -IncludeDocGeneration=Мен объектіден кейбір құжаттарды жасағым келеді +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=Егер сіз мұны тексерсеңіз, жазбада «Құжатты жасау» жолағын қосу үшін кейбір код жасалады. ShowOnCombobox=Комбокске мәнді көрсетіңіз KeyForTooltip=Нұсқаулық үшін кілт @@ -138,10 +141,15 @@ CSSViewClass=Оқуға арналған CSS формасы CSSListClass=Тізімге арналған CSS NotEditable=Өңдеуге болмайды ForeignKey=Сыртқы кілт -TypeOfFieldsHelp=Өрістер түрі:
    varchar (99), қос (24,8), нақты, мәтін, html, уақыт, уақыт белгісі, бүтін сан, бүтін сан: ClassName: relatpath/to/classfile.class.php [: 1 [: filter]] ('1' дегеніміз жазбаны жасау үшін комбинациядан кейін + түймесін қосамыз дегенді білдіреді, 'сүзгі' мысалы 'status = 1 AND fk_user = __USER_ID AND IN IN (__SHARED_ENTITIES__)' болуы мүмкін) +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 - HTML түрлендіргіші AsciiToPdfConverter=Ascii - PDF түрлендіргіші TableNotEmptyDropCanceled=Кесте бос емес. Түсіру тоқтатылды. ModuleBuilderNotAllowed=Модуль құрастырушысы қол жетімді, бірақ сіздің пайдаланушыға рұқсат етілмеген. ImportExportProfiles=Профильдерді импорттау және экспорттау -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=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. 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/other.lang b/htdocs/langs/kk_KZ/other.lang index 8e2120e47d0..9dd60c87eaf 100644 --- a/htdocs/langs/kk_KZ/other.lang +++ b/htdocs/langs/kk_KZ/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... немесе өзіңіздің
    профилі DemoFundation=Қор мүшелерін басқару DemoFundation2=Қордың мүшелері мен банк шотын басқарыңыз DemoCompanyServiceOnly=Тек компания немесе фрилансерлік қызмет көрсету -DemoCompanyShopWithCashDesk=Кассасы бар дүкенді басқарыңыз +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Өнімді сату нүктесімен сататын дүкен DemoCompanyManufacturing=Өнімді шығаратын кәсіпорын DemoCompanyAll=Бірнеше әрекеті бар компания (барлық негізгі модульдер) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Статистиканы қарау үшін ны ConfirmBtnCommonContent = «%s» алғыңыз келетініне сенімдісіз бе? ConfirmBtnCommonTitle = Әрекетті растаңыз CloseDialog = Жабық +Autofill = Autofill diff --git a/htdocs/langs/kk_KZ/projects.lang b/htdocs/langs/kk_KZ/projects.lang index 73ad960ca01..6e3cab5d57c 100644 --- a/htdocs/langs/kk_KZ/projects.lang +++ b/htdocs/langs/kk_KZ/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Жоба белгісі ProjectsArea=Жобалар аймағы ProjectStatus=Жоба күйі SharedProject=Барлығы -PrivateProject=Жобалық байланыстар +PrivateProject=Assigned contacts ProjectsImContactFor=Мен байланыста болатын жобалар AllAllowedProjects=Мен оқи алатын барлық жоба (менікі + көпшілікке арналған) AllProjects=Барлық жобалар @@ -190,6 +190,7 @@ PlannedWorkload=Жоспарланған жұмыс көлемі PlannedWorkloadShort=Жұмыс жүктемесі ProjectReferers=Қатысты элементтер ProjectMustBeValidatedFirst=Алдымен жоба расталуы керек +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Уақыт бөлу үшін пайдаланушы ресурсын жобаның контактісі ретінде тағайындаңыз InputPerDay=Күніне енгізу InputPerWeek=Аптасына енгізу @@ -258,7 +259,7 @@ TimeSpentInvoiced=Есепке жұмсалатын уақыт TimeSpentForIntervention=Өткізілген уақыт TimeSpentForInvoice=Өткізілген уақыт OneLinePerUser=Бір пайдаланушыға бір жол -ServiceToUseOnLines=Желіде қолдануға арналған қызмет +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=%s шот -фактурасы жобаға жұмсалған уақыттан құрылды InterventionGeneratedFromTimeSpent=%s интервенциясы жобаға жұмсалған уақыттан құрылды ProjectBillTimeDescription=Жобаның тапсырмалары бойынша уақыт кестесін енгізгеніңізді тексеріңіз және жобаның тапсырыс берушісіне есеп айырысу үшін уақыт кестесінен шот -фактураларды құруды жоспарлап отырғаныңызды тексеріңіз (енгізілген уақыт кестелеріне негізделмеген шот -фактураны құруды жоспарлап отырғаныңызды тексермеңіз). Ескерту: Шот -фактураны құру үшін, жобаның «Өткізілген уақыт» қойындысына өтіп, қосылатын жолдарды таңдаңыз. @@ -287,3 +288,10 @@ 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/kk_KZ/propal.lang b/htdocs/langs/kk_KZ/propal.lang index 05096252913..72235abbe24 100644 --- a/htdocs/langs/kk_KZ/propal.lang +++ b/htdocs/langs/kk_KZ/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 коммерциялық ұсынысын қайтарғыңыз келетініне сенімдісіз бе? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Жазбаша қабылдау, компания мө ProposalsStatisticsSuppliers=Сатушы ұсыныстарының статистикасы CaseFollowedBy=Іс соңынан SignedOnly=Тек қол қойылған +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=Ұсыныстың идентификаторы IdProduct=Өнім идентификаторы -PrParentLine=Ұсыныстың негізгі атауы LineBuyPriceHT=Сатып алу бағасы Салықты шегергенде SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign +NoSign=Set not signed PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted diff --git a/htdocs/langs/kk_KZ/ticket.lang b/htdocs/langs/kk_KZ/ticket.lang index 71eb513003e..26b8925094c 100644 --- a/htdocs/langs/kk_KZ/ticket.lang +++ b/htdocs/langs/kk_KZ/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=Сәйкестендіруді қажет етпейтін ж TicketSetupDictionaries=Билеттің түрі, маңыздылығы мен аналитикалық кодтары сөздіктерден конфигурацияланады TicketParamModule=Айнымалы модульді баптау TicketParamMail=Электрондық поштаны реттеу -TicketEmailNotificationFrom=Хабарлама электрондық поштасы -TicketEmailNotificationFromHelp=Мысал бойынша билет хабарламасына жауап ретінде қолданылады -TicketEmailNotificationTo=Хабарлама электрондық поштаға -TicketEmailNotificationToHelp=Осы мекенжайға электрондық хабарландырулар жіберіңіз. +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 TicketNewEmailBodyLabel=Билетті жасағаннан кейін мәтіндік хабарлама жіберіледі TicketNewEmailBodyHelp=Мұнда көрсетілген мәтін ашық интерфейстен жаңа билеттің жасалуын растайтын электрондық поштаға енгізіледі. Билеттің консультациясы туралы ақпарат автоматты түрде қосылады. TicketParamPublicInterface=Жалпыға ортақ интерфейсті орнату @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=Өсу күні бойынша сұрыптау OrderByDateDesc=Азаю күні бойынша сұрыптау ShowAsConversation=Әңгіме тізімі ретінде көрсету MessageListViewType=Кесте тізімі ретінде көрсету +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Алушы бос. Электро TicketGoIntoContactTab=Оларды таңдау үшін «Контактілер» қойындысына өтіңіз TicketMessageMailIntro=Кіріспе TicketMessageMailIntroHelp=Бұл мәтін электрондық поштаның басында ғана қосылады және сақталмайды. -TicketMessageMailIntroLabelAdmin=Электрондық поштаны жіберу кезінде хабарламаға кіріспе -TicketMessageMailIntroText=Сәлеметсіз бе,
    Сіз хабарласатын билетке жаңа жауап жіберілді. Міне, хабарлама:
    -TicketMessageMailIntroHelpAdmin=Бұл мәтін билетке жауап мәтінінің алдында енгізіледі. +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=

    Құрметпен,

    -

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Жауап электрондық поштасының қолтаңбасы TicketMessageMailSignatureHelpAdmin=Бұл мәтін жауап хабарынан кейін енгізіледі. TicketMessageHelp=Билеттер картасындағы хабарламалар тізімінде тек осы мәтін сақталады. @@ -238,9 +252,16 @@ TicketChangeStatus=Күйді өзгерту TicketConfirmChangeStatus=Күйдің өзгеруін растаңыз: %s? TicketLogStatusChanged=Күй өзгерді: %s %s TicketNotNotifyTiersAtCreate=Жасау кезінде компанияға хабарламаңыз +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=Бұл жаңа билетті тіркегеніңізді TicketNewEmailBodyCustomer=Бұл сіздің шотыңызға жаңа билет енгізілгенін растайтын автоматты электрондық хат. TicketNewEmailBodyInfosTicket=Билетті бақылауға арналған ақпарат TicketNewEmailBodyInfosTrackId=Билеттердің бақылау нөмірі: %s -TicketNewEmailBodyInfosTrackUrl=Билеттің барысын жоғарыдағы сілтемені басу арқылы көруге болады. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Келесі сілтемені басу арқылы арнайы интерфейсте билеттің барысын көруге болады +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Бұл электрондық поштаға тікелей жауап бермеңіз! Интерфейске жауап беру үшін сілтемені пайдаланыңыз. TicketPublicInfoCreateTicket=Бұл форма біздің билік жүйесінде қолдау билетін жазуға мүмкіндік береді. TicketPublicPleaseBeAccuratelyDescribe=Мәселені нақты сипаттаңыз. Сіздің сұранысты дұрыс анықтауға мүмкіндік беретін барынша көп ақпарат беріңіз. @@ -291,6 +313,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: TicketNotificationEmailSubject=Билет %s жаңартылды TicketNotificationEmailBody=Бұл автоматты түрде %s билеті жаңартылғанын хабарлайды. TicketNotificationRecipient=Хабарлама алушы diff --git a/htdocs/langs/kk_KZ/users.lang b/htdocs/langs/kk_KZ/users.lang index b1b6c86b90c..b1d4b6e368f 100644 --- a/htdocs/langs/kk_KZ/users.lang +++ b/htdocs/langs/kk_KZ/users.lang @@ -114,7 +114,7 @@ UserLogoff=Пайдаланушыдан шығу UserLogged=Қолданушы тіркелді DateOfEmployment=Жұмысқа қабылданған күн DateEmployment=Жұмыспен қамту -DateEmploymentstart=Жұмыстың басталу күні +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Жұмыстың аяқталу күні RangeOfLoginValidity=Жарамдылық мерзімі диапазонына кіру CantDisableYourself=Сіз өзіңіздің жеке жазбаңызды өшіре алмайсыз @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Әдепкі бойынша, валидатор UserPersonalEmail=Жеке электрондық пошта UserPersonalMobile=Жеке ұялы телефон WarningNotLangOfInterface=Ескерту, бұл пайдаланушы сөйлейтін негізгі тіл, ол таңдаған интерфейстің тілі емес. Осы пайдаланушы көретін интерфейс тілін өзгерту үшін %s қойындысына өтіңіз +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login 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/kn_IN/companies.lang b/htdocs/langs/kn_IN/companies.lang index 0096c780082..4060aec5cc0 100644 --- a/htdocs/langs/kn_IN/companies.lang +++ b/htdocs/langs/kn_IN/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Prospection ಪ್ರದೇಶ IdThirdParty=ತೃತೀಯ ಪಕ್ಷದ ಗುರುತು IdCompany=ಸಂಸ್ಥೆಯ ಗುರುತು IdContact=ಸಂಪರ್ಕದ ಗುರುತು +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=ಸಂಸ್ಥೆ @@ -51,19 +52,22 @@ CivilityCode=ಸೌಜನ್ಯದ ಕೋಡ್ RegisteredOffice=ನೋಂದಾಯಿತ ಕಚೇರಿ Lastname=ಕೊನೆಯ ಹೆಸರು Firstname=ಮೊದಲ ಹೆಸರು +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=ಶೀರ್ಷಿಕೆ 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=ಸ್ಕೈಪ್ @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=ಗ್ರಾಹಕ ಕೋಡ್ ಮಾದರಿ SupplierCodeModel=Vendor code model Gencod=Barcode +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=ವೃತ್ತಿಪರ ಐಡಿ 1 ProfId2Short=ವೃತ್ತಿಪರ ಐಡಿ 2 @@ -159,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=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=ಎಲ್ಲಾ (ಸೋಸಿಲ್ಲದ) -ContactType=ಸಂಪರ್ಕದ ಮಾದರಿ +ContactType=Contact role ContactForOrders=ಆರ್ಡರ್ ಸಂಪರ್ಕ ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=ಪ್ರಸ್ತಾಪದ ಸಂಪರ್ಕ 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/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 7d88a290ce1..2c70c284ad2 100644 --- a/htdocs/langs/ko_KR/companies.lang +++ b/htdocs/langs/ko_KR/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=매장 지역 IdThirdParty=협력업체 ID IdCompany=회사 ID IdContact=담당자 ID +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=회사 @@ -51,19 +52,22 @@ CivilityCode=성격 코드 RegisteredOffice=등록 된 사무실 Lastname=성씨 Firstname=이름 +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=직위 UserTitle=제목 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=고객 코드 모델 SupplierCodeModel=Vendor code model Gencod=Barcode +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=프로필 id 1 ProfId2Short=프로필 id 2 @@ -159,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=기타 ProfId6ShortCM=- ProfId1CO=프로필 Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=모두 (필터 없음) -ContactType=연락처 유형 +ContactType=Contact role ContactForOrders=주문 연락처 ContactForOrdersOrShipments=주문 또는 배송 문의 ContactForProposals=제안 연락처 @@ -439,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/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/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/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index 3cc6d6d6a6f..e5bbd886e8d 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=ບັນຊີບັນຊີຫຼ AccountancyArea=ພື້ນທີ່ການບັນຊີ AccountancyAreaDescIntro=ການ ນຳ ໃຊ້ໂມດູນການບັນຊີແມ່ນເຮັດໄດ້ຫຼາຍຂັ້ນຕອນ: AccountancyAreaDescActionOnce=ການກະທໍາຕໍ່ໄປນີ້ປົກກະຕິແລ້ວແມ່ນປະຕິບັດພຽງຄັ້ງດຽວເທົ່ານັ້ນ, ຫຼືຄັ້ງດຽວຕໍ່ປີ ... -AccountancyAreaDescActionOnceBis=ຂັ້ນຕອນຕໍ່ໄປຄວນຈະເຮັດເພື່ອປະຫຍັດເວລາຂອງເຈົ້າໃນອະນາຄົດໂດຍການແນະນໍາບັນຊີບັນຊີເລີ່ມຕົ້ນທີ່ຖືກຕ້ອງໃຫ້ເຈົ້າໃນເວລາເຮັດບັນທຶກການເຮັດ ໜັງ ສືພິມ (ຂຽນບັນທຶກລົງໃນວາລະສານແລະປຶ້ມບັນຊີທົ່ວໄປ). +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=ການກະ ທຳ ຕໍ່ໄປນີ້ປົກກະຕິແລ້ວແມ່ນປະຕິບັດທຸກ every ເດືອນ, ອາທິດຫຼືມື້ ສຳ ລັບບໍລິສັດຂະ ໜາດ ໃຫຍ່ຫຼາຍ ... -AccountancyAreaDescJournalSetup=ຂັ້ນຕອນ %s: ສ້າງຫຼືກວດເບິ່ງເນື້ອໃນຂອງລາຍການວາລະສານຂອງເຈົ້າຈາກເມນູ %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=ຂັ້ນຕອນ %s: ກວດເບິ່ງວ່າມີຮູບແບບຂອງແຜນຜັງບັນຊີຢູ່ຫຼືສ້າງຈາກເມນູ %s AccountancyAreaDescChart=ຂັ້ນຕອນ %s: ເລືອກແລະ | ຫຼືປະກອບແຜນວາດບັນຊີຂອງເຈົ້າຈາກເມນູ %s AccountancyAreaDescVat=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີສໍາລັບແຕ່ລະອັດຕາອາກອນມູນຄ່າເພີ່ມ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. AccountancyAreaDescDefault=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີການບັນຊີເລີ່ມຕົ້ນ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. -AccountancyAreaDescExpenseReport=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບແຕ່ລະປະເພດລາຍງານລາຍຈ່າຍ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບການຊໍາລະເງິນເດືອນ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. -AccountancyAreaDescContrib=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບຄ່າໃຊ້ຈ່າຍພິເສດ (ພາສີຕ່າງcell). ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບການບໍລິຈາກ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. AccountancyAreaDescSubscription=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບການສະmemberັກໃຊ້ສະມາຊິກ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. AccountancyAreaDescMisc=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີເລີ່ມຕົ້ນທີ່ບັງຄັບແລະບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບການເຮັດທຸລະກໍາຕ່າງcell. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. AccountancyAreaDescLoan=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີເລີ່ມຕົ້ນສໍາລັບເງິນກູ້. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. AccountancyAreaDescBank=ຂັ້ນຕອນ %s: ກໍານົດບັນຊີບັນຊີແລະລະຫັດວາລະສານສໍາລັບແຕ່ລະທະນາຄານແລະບັນຊີການເງິນ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. -AccountancyAreaDescProd=ຂັ້ນຕອນ %s: ກຳ ນົດບັນຊີບັນຊີຢູ່ໃນຜະລິດຕະພັນ/ການບໍລິການຂອງເຈົ້າ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=ຂັ້ນຕອນ %s: ກວດເບິ່ງການຜູກມັດລະຫວ່າງສາຍ %s ທີ່ມີຢູ່ແລ້ວແລະບັນຊີການບັນຊີແມ່ນສໍາເລັດແລ້ວ, ສະນັ້ນຄໍາຮ້ອງສະwillັກຈະສາມາດບັນທຶກການເຮັດທຸລະກໍາໃນ Ledger ໄດ້ໃນຄລິກດຽວ. ສຳ ເລັດການເຊື່ອມໂຍງທີ່ຂາດໄປ. ສໍາລັບອັນນີ້, ໃຊ້ລາຍການເມນູ %s. AccountancyAreaDescWriteRecords=ຂັ້ນຕອນ %s: ຂຽນທຸລະກໍາລົງໃນປື້ມບັນຊີ. ເພື່ອເຮັດສິ່ງນີ້, ເຂົ້າໄປໃນເມນູ %s , ແລະຄລິກເຂົ້າໄປໃນປຸ່ມ %s . @@ -112,7 +112,7 @@ MenuAccountancyClosure=ປິດ MenuAccountancyValidationMovements=ກວດສອບການເຄື່ອນໄຫວ ProductsBinding=ບັນຊີຜະລິດຕະພັນ TransferInAccounting=ໂອນເຂົ້າບັນຊີ -RegistrationInAccounting=ການລົງທະບຽນໃນບັນຊີ +RegistrationInAccounting=Recording in accounting Binding=ການຜູກມັດກັບບັນຊີ CustomersVentilation=ການຜູກມັດໃບແຈ້ງ ໜີ້ ລູກຄ້າ SuppliersVentilation=ການຜູກມັດໃບຮຽກເກັບເງິນຜູ້ຂາຍ @@ -120,7 +120,7 @@ ExpenseReportsVentilation=ການຜູກມັດລາຍງານລາຍ CreateMvts=ສ້າງທຸລະກໍາໃຫມ່ UpdateMvts=ການແກ້ໄຂການເຮັດທຸລະກໍາ ValidTransaction=ກວດສອບທຸລະ ກຳ -WriteBookKeeping=ລົງທະບຽນທຸລະກໍາໃນການບັນຊີ +WriteBookKeeping=Record transactions in accounting Bookkeeping=ປື້ມບັນຊີ BookkeepingSubAccount=Subledger AccountBalance=ຍອດເງິນໃນບັນຊີ @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=ບັນຊີບັນຊີເພື່ອລົ ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=ບັນຊີບັນຊີເພື່ອລົງທະບຽນການສະັກໃຊ້ ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=ບັນຊີບັນຊີໂດຍມາດຕະຖານເພື່ອລົງທະບຽນເງິນcustomerາກຂອງລູກຄ້າ +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines ACCOUNTING_PRODUCT_BUY_ACCOUNT=ບັນຊີບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຊື້ມາ (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=ບັນຊີການບັນຊີຕາມມາດຕະຖານສໍາລັບຜະລິດຕະພັນທີ່ຊື້ມາໃນ EEC (ໃຊ້ຖ້າບໍ່ໄດ້ກໍານົດໄວ້ໃນແຜ່ນຜະລິດຕະພັນ) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=ໂດຍກຸ່ມທີ່ໄດ້ ກຳ ນົ ByPersonalizedAccountGroups=ໂດຍກຸ່ມສ່ວນບຸກຄົນ ByYear=ໂດຍປີ NotMatch=ບໍ່ໄດ້ຕັ້ງ -DeleteMvt=ລຶບສາຍ ດຳ ເນີນງານບາງອັນອອກຈາກບັນຊີ +DeleteMvt=Delete some lines from accounting DelMonth=ເດືອນເພື່ອລຶບ DelYear=ປີທີ່ຈະລຶບ DelJournal=ວາລະສານທີ່ຈະລຶບ -ConfirmDeleteMvt=ອັນນີ້ຈະລຶບສາຍການດໍາເນີນງານທັງofົດຂອງການບັນຊີສໍາລັບປີ/ເດືອນແລະ/ຫຼືສໍາລັບວາລະສານສະເພາະ (ຕ້ອງມີຢ່າງ ໜ້ອຍ ໜຶ່ງ ເງື່ອນໄຂ). ເຈົ້າຈະຕ້ອງໃຊ້ຄຸນສົມບັດຄືນໃa່ '%s' ເພື່ອໃຫ້ບັນທຶກທີ່ຖືກລຶບກັບຄືນມາຢູ່ໃນບັນຊີແຍກປະເພດ. -ConfirmDeleteMvtPartial=ອັນນີ້ຈະລຶບທຸລະກໍາອອກຈາກບັນຊີ (ທຸກສາຍການດໍາເນີນການທີ່ກ່ຽວຂ້ອງກັບທຸລະກໍາດຽວກັນຈະຖືກລຶບອອກ) +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=ວາລະສານລາຍງານລາຍຈ່າຍ DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -278,30 +279,31 @@ DescVentilExpenseReportMore=ຖ້າເຈົ້າຕັ້ງບັນຊີ DescVentilDoneExpenseReport=ປຶກສາຫາລືຢູ່ທີ່ນີ້ບັນຊີລາຍຊື່ຂອງລາຍງານຄ່າໃຊ້ຈ່າຍແລະບັນຊີຄ່າທໍານຽມຂອງເຂົາເຈົ້າ Closure=ການປິດປະຈໍາປີ -DescClosure=ປຶກສາຫາລືຢູ່ທີ່ນີ້ຈໍານວນການເຄື່ອນໄຫວຕາມເດືອນຜູ້ທີ່ບໍ່ຖືກຕ້ອງ & ປີງົບປະມານເປີດແລ້ວ -OverviewOfMovementsNotValidated=ຂັ້ນຕອນທີ 1/ ພາບລວມການເຄື່ອນໄຫວບໍ່ຖືກກວດສອບ. (ຈໍາເປັນເພື່ອປິດປີງົບປະມານ) -AllMovementsWereRecordedAsValidated=ການເຄື່ອນໄຫວທັງwereົດຖືກບັນທຶກເປັນການກວດສອບ -NotAllMovementsCouldBeRecordedAsValidated=ບໍ່ສາມາດບັນທຶກການເຄື່ອນໄຫວທັງasົດໄດ້ຕາມທີ່ຖືກຕ້ອງ -ValidateMovements=ກວດສອບການເຄື່ອນໄຫວ +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=ການດັດແກ້ຫຼືການລຶບລາຍລັກອັກສອນ, ຕົວອັກສອນແລະການລຶບໃດ 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 -MvtNotCorrectlyBalanced=ການເຄື່ອນໄຫວບໍ່ສົມດຸນຖືກຕ້ອງ. ເດບິດ = %s | ສິນເຊື່ອ = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=ການດຸ່ນດ່ຽງ FicheVentilation=ບັດຜູກມັດ GeneralLedgerIsWritten=ທຸລະ ກຳ ຖືກຂຽນໄວ້ໃນປື້ມບັນຊີ GeneralLedgerSomeRecordWasNotRecorded=ບາງທຸລະກໍາບໍ່ສາມາດຖືກເຮັດເປັນວາລະສານໄດ້. ຖ້າບໍ່ມີຂໍ້ຄວາມຜິດພາດອັນອື່ນ, ອັນນີ້ອາດຈະເປັນເພາະວ່າເຂົາເຈົ້າໄດ້ຖືກເຮັດ ໜັງ ສືພິມແລ້ວ. -NoNewRecordSaved=ບໍ່ມີບັນທຶກໃຫ້ບັນທຶກເປັນວາລະສານອີກຕໍ່ໄປ +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=ບັນຊີລາຍຊື່ຂອງຜະລິດຕະພັນບໍ່ໄດ້ຜູກມັດກັບບັນຊີການບັນຊີໃດ ChangeBinding=ປ່ຽນການຜູກມັດ Accounted=ບັນຊີຢູ່ໃນບັນຊີ NotYetAccounted=Not yet transferred to accounting ShowTutorial=ສະແດງສາທິດການ ນຳ ໃຊ້ NotReconciled=ບໍ່ໄດ້ຄືນດີ -WarningRecordWithoutSubledgerAreExcluded=ຄຳ ເຕືອນ, ການ ດຳ ເນີນການທັງwithoutົດທີ່ບໍ່ມີບັນຊີຕົວເລກຍ່ອຍທີ່ໄດ້ ກຳ ນົດແມ່ນຖືກກັ່ນຕອງແລະບໍ່ໄດ້ຄິດໄລ່ຈາກທັດສະນະນີ້ +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=ທາງເລືອກໃນການຜູກມັດ @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=ປິດໃຊ້ງານການຜ ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=ປິດໃຊ້ງານການຜູກມັດແລະການໂອນບັນຊີຢູ່ໃນລາຍງານລາຍຈ່າຍ (ບົດລາຍງານຄ່າໃຊ້ຈ່າຍຈະບໍ່ຖືກເອົາເຂົ້າໃນບັນຊີ) ## 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) +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=ການຢືນຢັນການສ້າງເອກະສານການສົ່ງອອກບັນຊີບໍ? ExportDraftJournal=ສົ່ງອອກວາລະສານຮ່າງ Modelcsv=Model of export @@ -394,6 +397,21 @@ 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 + +## 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=ບາງຂັ້ນຕອນທີ່ບັງຄັບຂອງການຕິດຕັ້ງບໍ່ສໍາເລັດ, ກະລຸນາເຮັດໃຫ້ສໍາເລັດ ErrorNoAccountingCategoryForThisCountry=ບໍ່ມີກຸ່ມບັນຊີການບັນຊີສໍາລັບປະເທດ %s (ເບິ່ງ ໜ້າ ທໍາອິດ - ການຕັ້ງຄ່າ - ວັດຈະນານຸກົມ) @@ -406,6 +424,9 @@ 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 ## Import ImportAccountingEntries=ລາຍການບັນຊີ diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 95df1b8c140..fba067ff1d9 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -109,7 +109,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= ຕົວກໍານົດການເພີ່ມເຕີມໃນບັນທັດຄໍາສັ່ງ @@ -477,7 +477,7 @@ InstalledInto=ຕິດຕັ້ງໃສ່ໄດເຣັກທໍຣີ %s BarcodeInitForThirdparties=ການລິເລີ່ມບາໂຄດ ຈຳ ນວນຫຼາຍ ສຳ ລັບພາກສ່ວນທີສາມ BarcodeInitForProductsOrServices=ເລີ່ມຫຼືຕັ້ງບາໂຄດຄືນໃfor່ ສຳ ລັບຜະລິດຕະພັນຫຼືການບໍລິການ CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=ຄ່າ ທຳ ອິດ ສຳ ລັບບັນທຶກເປົ່າ %s ຖັດໄປ +InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=ລຶບຄ່າ barcode ປັດຈຸບັນທັງົດ ConfirmEraseAllCurrentBarCode=ເຈົ້າແນ່ໃຈບໍວ່າເຈົ້າຕ້ອງການລຶບຄ່າ barcode ປັດຈຸບັນທັງ?ົດ? AllBarcodeReset=ຄ່າ barcode ທັງົດຖືກລຶບອອກແລ້ວ @@ -504,7 +504,7 @@ 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. 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=ໂມດູນນີ້ຕ້ອງການໂດຍໂມດູນ @@ -718,9 +718,9 @@ Permission34=ລຶບຜະລິດຕະພັນ Permission36=ເບິ່ງ/ຈັດການຜະລິດຕະພັນທີ່ເຊື່ອງໄວ້ Permission38=ຜະລິດຕະພັນສົ່ງອອກ Permission39=ບໍ່ສົນໃຈລາຄາຕໍ່າສຸດ -Permission41=ອ່ານໂຄງການແລະ ໜ້າ ວຽກຕ່າງ project (ໂຄງການຮ່ວມກັນແລະໂຄງການທີ່ຂ້ອຍຕິດຕໍ່ຫາ). ຍັງສາມາດໃສ່ເວລາທີ່ບໍລິໂພກໄດ້, ສໍາລັບຂ້ອຍຫຼືລໍາດັບຊັ້ນຂອງຂ້ອຍ, ໃນ ໜ້າ ວຽກທີ່ໄດ້ຮັບມອບ(າຍ (Timesheet) -Permission42=ສ້າງ/ດັດແກ້ໂຄງການ (ໂຄງການແບ່ງປັນແລະໂຄງການທີ່ຂ້ອຍຕິດຕໍ່ຫາ). ຍັງສາມາດສ້າງ ໜ້າ ວຽກແລະມອບusersາຍຜູ້ໃຊ້ໃຫ້ກັບໂຄງການແລະ ໜ້າ ວຽກຕ່າງ -Permission44=ລຶບໂຄງການ (ໂຄງການແບ່ງປັນແລະໂຄງການທີ່ຂ້ອຍຕິດຕໍ່ຫາ) +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=ໂຄງການສົ່ງອອກ Permission61=ອ່ານການແຊກແຊງ Permission62=ສ້າງ/ແກ້ໄຂການແຊກແຊງ @@ -766,9 +766,10 @@ Permission122=ສ້າງ/ດັດແກ້ພາກສ່ວນທີສາ Permission125=ລຶບພາກສ່ວນທີສາມທີ່ເຊື່ອມໂຍງກັບຜູ້ໃຊ້ Permission126=ສົ່ງອອກພາກສ່ວນທີສາມ Permission130=Create/modify third parties payment information -Permission141=ອ່ານໂຄງການແລະ ໜ້າ ວຽກທັງ(ົດ (ນອກຈາກໂຄງການສ່ວນຕົວທີ່ຂ້ອຍບໍ່ໄດ້ເປັນຜູ້ຕິດຕໍ່) -Permission142=ສ້າງ/ດັດແກ້ທຸກໂຄງການແລະ ໜ້າ ວຽກ (ລວມທັງໂຄງການສ່ວນຕົວທີ່ຂ້ອຍບໍ່ແມ່ນຜູ້ຕິດຕໍ່) -Permission144=ລຶບໂຄງການແລະ ໜ້າ ວຽກທັງ(ົດອອກ (ນອກຈາກໂຄງການສ່ວນຕົວທີ່ຂ້ອຍບໍ່ໄດ້ຕິດຕໍ່ຫາ) +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=ອ່ານຄໍາສັ່ງການຊໍາລະບັນຊີໂດຍກົງ @@ -883,6 +884,9 @@ Permission564=ບັນທຶກ ໜີ້/ການປະຕິເສດກາ Permission601=ອ່ານສະຕິກເກີ Permission602=ສ້າງ/ແກ້ໄຂສະຕິກເກີ Permission609=ລຶບສະຕິກເກີ +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=ອ່ານໃບບິນຄ່າວັດສະດຸ Permission651=ສ້າງ/ອັບເດດໃບບິນຄ່າວັດສະດຸ Permission652=ລຶບໃບບິນຄ່າວັດສະດຸ @@ -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=ອ່ານເນື້ອໃນເວັບໄຊທ Permission10002=ສ້າງ/ດັດແປງເນື້ອໃນເວັບໄຊທ ((ເນື້ອໃນ html ແລະ javascript) Permission10003=ສ້າງ/ດັດແປງເນື້ອໃນເວັບໄຊທ ((ລະຫັດ php ແບບເຄື່ອນໄຫວ). ອັນຕະລາຍ, ຕ້ອງສະຫງວນໃຫ້ກັບຜູ້ພັດທະນາທີ່ຖືກ ຈຳ ກັດ. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=ລາຍງານລາຍຈ່າຍ - categoriesວ DictionaryExpenseTaxRange=ລາຍງານລາຍຈ່າຍ - ຂອບເຂດຕາມປະເພດການຂົນສົ່ງ DictionaryTransportMode=ບົດລາຍງານ Intracomm - ຮູບແບບການຂົນສົ່ງ DictionaryBatchStatus=ສະຖານະການຄວບຄຸມຄຸນະພາບຜະລິດຕະພັນ/ລໍາດັບ +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=ປະເພດຂອງ ໜ່ວຍ SetupSaved=ບັນທຶກການຕັ້ງແລ້ວ SetupNotSaved=ບໍ່ໄດ້ບັນທຶກການຕັ້ງຄ່າ @@ -1122,7 +1129,7 @@ ValueOfConstantKey=ຄ່າຂອງຄ່າຄົງທີ່ການ ກຳ ConstantIsOn=ຕົວເລືອກ %s ເປີດຢູ່ NbOfDays=ຈຳ ນວນມື້ AtEndOfMonth=ໃນທ້າຍເດືອນ -CurrentNext=ປັດຈຸບັນ/ຕໍ່ໄປ +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=ຊັກຊ້າກ່ອນທີ່ຈະສະແດງການເຕືອນເຕືອນສໍາລັບ: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=ຕັ້ງການຊັກຊ້າກ່ອນໄອຄອນແຈ້ງເຕືອນ %s ຖືກສະແດງຢູ່ ໜ້າ ຈໍສໍາລັບອົງປະກອບຊ້າ. Delays_MAIN_DELAY_ACTIONS_TODO=ເຫດການທີ່ວາງແຜນໄວ້ (ເຫດການວາລະ) ບໍ່ ສຳ ເລັດ Delays_MAIN_DELAY_PROJECT_TO_CLOSE=ໂຄງການບໍ່ໄດ້ປິດຕາມເວລາ @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=ເຈົ້າບັງຄັບໃຫ້ມີກ TitleNumberOfActivatedModules=ໂມດູນທີ່ເປີດໃຊ້ງານ TotalNumberOfActivatedModules=ໂມດູນທີ່ເປີດໃຊ້ງານ: %s / %s YouMustEnableOneModule=ຢ່າງ ໜ້ອຍ ເຈົ້າຕ້ອງເປີດໃຊ້ 1 ໂມດູນ +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=ຊັ້ນ %s ບໍ່ພົບໃນເສັ້ນທາງ PHP YesInSummer=ແມ່ນແລ້ວໃນລະດູຮ້ອນ OnlyFollowingModulesAreOpenedToExternalUsers=Noteາຍເຫດ, ມີພຽງແຕ່ໂມດູນຕໍ່ໄປນີ້ທີ່ມີໃຫ້ກັບຜູ້ໃຊ້ພາຍນອກ (ໂດຍບໍ່ຄໍານຶງເຖິງການອະນຸຍາດຂອງຜູ້ໃຊ້ດັ່ງກ່າວ) ແລະພຽງແຕ່ຖ້າການອະນຸຍາດໄດ້ຮັບ:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=ລາຍນ້ ຳ ຢູ່ໃນໃບຮຽກເ PaymentsNumberingModule=ຮູບແບບຕົວເລກການຈ່າຍເງິນ 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. ##### Proposals ##### PropalSetup=ການຕັ້ງຄ່າໂມດູນຂໍ້ສະ ເໜີ ທາງການຄ້າ ProposalsNumberingModules=ຮູບແບບຕົວເລກການສະ ເໜີ ທາງການຄ້າ @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=ການຕິດຕັ້ງຫຼືສ້າງໂ HighlightLinesOnMouseHover=ເນັ້ນເສັ້ນຕາຕະລາງເມື່ອການເຄື່ອນຍ້າຍເມົ້າຜ່ານ HighlightLinesColor=ເນັ້ນສີຂອງເສັ້ນເມື່ອເມົ້າຜ່ານ (ໃຊ້ 'ffffff' ໂດຍບໍ່ມີຈຸດເດັ່ນ) HighlightLinesChecked=ເນັ້ນສີຂອງເສັ້ນເມື່ອມັນຖືກກວດກາ (ໃຊ້ 'ffffff' ໂດຍບໍ່ມີຈຸດເດັ່ນ) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=ສີຂໍ້ຄວາມຂອງຫົວຂໍ້ ໜ້າ @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=ກົດ CTRL+F5 ຢູ່ເທິງແປ້ນພ NotSupportedByAllThemes=ຈະໃຊ້ໄດ້ກັບຫົວຂໍ້ຫຼັກ, ອາດຈະບໍ່ຮອງຮັບໂດຍຮູບແບບພາຍນອກ BackgroundColor=ສີພື້ນຫຼັງ TopMenuBackgroundColor=ສີພື້ນຫຼັງ ສຳ ລັບເມນູທາງເທີງ -TopMenuDisableImages=ເຊື່ອງຮູບຢູ່ໃນເມນູດ້ານເທິງ +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=ສີພື້ນຫຼັງ ສຳ ລັບເມນູຊ້າຍ BackgroundTableTitleColor=ສີພື້ນຫຼັງ ສຳ ລັບແຖວຫົວຂໍ້ຕາຕະລາງ BackgroundTableTitleTextColor=ສີຂໍ້ຄວາມ ສຳ ລັບແຖວຫົວຂໍ້ຕາຕະລາງ @@ -1938,7 +1949,7 @@ EnterAnyCode=ພາກສະຫນາມນີ້ປະກອບດ້ວຍເ Enter0or1=ໃສ່ 0 ຫຼື 1 UnicodeCurrency=ໃສ່ບ່ອນນີ້ລະຫວ່າງວົງປີກກາ, ລາຍການຕົວເລກໄບຕ that ທີ່ເປັນຕົວແທນຂອງສັນຍາລັກສະກຸນເງິນ. ຕົວຢ່າງ: for $, enter [36] - for brazil real R $ [82,36] - for €, enter [8364] ColorFormat=ສີ RGB ແມ່ນຢູ່ໃນຮູບແບບ HEX, ຕົວຢ່າງ: FF0000 -PictoHelp=ຊື່ໄອຄອນໃນຮູບແບບ dolibarr ('image.png' ຖ້າຢູ່ໃນໄດເຣັກທໍຣີຮູບແບບປະຈຸບັນ, 'image.png@nom_du_module' ຖ້າເຂົ້າໄປໃນບັນຊີລາຍຊື່ / img / ຂອງໂມດູນ) +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=ຕຳ ແໜ່ງ ແຖວໃນລາຍການຄອມໂບ SellTaxRate=Sales tax rate RecuperableOnly=ແມ່ນແລ້ວສໍາລັບ VAT "ບໍ່ໄດ້ຮັບຮູ້ແຕ່ສາມາດເກັບຄືນໄດ້" ສໍາລັບບາງລັດໃນປະເທດຣັ່ງ. ຮັກສາຄຸນຄ່າໃຫ້ "ບໍ່" ໃນທຸກກໍລະນີອື່ນ. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=ຕົວກອງ Regex ເພື່ອເຮັ COMPANY_DIGITARIA_CLEAN_REGEX=ຕົວກອງ Regex ເພື່ອເຮັດຄວາມສະອາດຄ່າ (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=ບໍ່ອະນຸຍາດໃຫ້ຊໍ້າກັນ GDPRContact=ເຈົ້າ ໜ້າ ທີ່ປົກປ້ອງຂໍ້ມູນ (DPO, ຄວາມເປັນສ່ວນຕົວຂອງຂໍ້ມູນຫຼືການຕິດຕໍ່ GDPR) -GDPRContactDesc=ຖ້າເຈົ້າເກັບຮັກສາຂໍ້ມູນກ່ຽວກັບບໍລິສັດ/ພົນລະເມືອງຂອງເອີຣົບ, ເຈົ້າສາມາດຕັ້ງຊື່ຜູ້ຕິດຕໍ່ທີ່ຮັບຜິດຊອບຕໍ່ກົດລະບຽບການປົກປ້ອງຂໍ້ມູນທົ່ວໄປໄດ້ທີ່ນີ້ +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=ຂໍ້ຄວາມຊ່ວຍເຫຼືອເພື່ອສະແດງຢູ່ໃນຄໍາແນະນໍາ HelpOnTooltipDesc=ວາງຕົວ ໜັງ ສືຫຼືກະແຈການແປຢູ່ບ່ອນນີ້ເພື່ອໃຫ້ຂໍ້ຄວາມສະແດງຢູ່ໃນ ຄຳ ແນະ ນຳ ເມື່ອຊ່ອງຂໍ້ມູນນີ້ປະກົດຂຶ້ນໃນແບບຟອມ YouCanDeleteFileOnServerWith=ເຈົ້າສາມາດລຶບໄຟລ this ນີ້ຢູ່ໃນເຊີບເວີດ້ວຍບັນທັດຄໍາສັ່ງ:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=າຍເຫດ: ທາງເລືອກທີ່ຈະໃຊ້ SwapSenderAndRecipientOnPDF=ສະຫຼັບ ຕຳ ແໜ່ງ ຜູ້ສົ່ງແລະທີ່ຢູ່ຜູ້ຮັບໃນເອກະສານ PDF FeatureSupportedOnTextFieldsOnly=ຄຳ ເຕືອນ, ຄຸນສົມບັດທີ່ຮອງຮັບໃນຊ່ອງຂໍ້ຄວາມແລະລາຍການຄອມໂບເທົ່ານັ້ນ. ການປະຕິບັດຕົວກໍານົດການ URL = ສ້າງຫຼືການປະຕິບັດ = ດັດແກ້ຕ້ອງຖືກກໍານົດຫຼືຊື່ ໜ້າ ຈະຕ້ອງລົງທ້າຍດ້ວຍ 'new.php' ເພື່ອເປີດໃຊ້ຄຸນສົມບັດນີ້. EmailCollector=ຜູ້ເກັບອີເມລ +EmailCollectors=Email collectors EmailCollectorDescription=ເພີ່ມ ໜ້າ ວຽກທີ່ໄດ້ກໍານົດໄວ້ແລະ ໜ້າ ຕິດຕັ້ງເພື່ອສະແກນກ່ອງອີເມວເປັນປະຈໍາ (ໂດຍໃຊ້ໂປຣໂຕຄໍ IMAP) ແລະບັນທຶກອີເມວທີ່ໄດ້ຮັບເຂົ້າໃນໃບສະັກຂອງເຈົ້າ, ຢູ່ບ່ອນທີ່ຖືກຕ້ອງແລະ/ຫຼືສ້າງບັນທຶກຈໍານວນ ໜຶ່ງ ໂດຍອັດຕະໂນມັດ (ເຊັ່ນ: ນໍາ). NewEmailCollector=ຜູ້ເກັບອີເມລ New ໃຫມ່ EMailHost=ໂຮສຂອງເຊີບເວີ IMAP ຂອງອີເມວ @@ -2057,18 +2069,30 @@ EmailcollectorOperations=ການດໍາເນີນງານທີ່ຕ້ EmailcollectorOperationsDesc=ການປະຕິບັດງານແມ່ນ ດຳ ເນີນຈາກ ລຳ ດັບເທິງຫາລຸ່ມ MaxEmailCollectPerCollect=ຈໍານວນສູງສຸດຂອງອີເມລ collected ທີ່ເກັບກໍາຕໍ່ການເກັບກໍາ CollectNow=ເກັບກໍາໃນປັດຈຸບັນ -ConfirmCloneEmailCollector=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການໂຄນຜູ້ເກັບອີເມລ a %s? +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 an agenda event. EmailCollectorConfirmCollectTitle=ອີເມລ collect ເກັບກໍາຂໍ້ຢືນຢັນ -EmailCollectorConfirmCollect=ເຈົ້າຕ້ອງການແລ່ນຊຸດສະສົມ ສຳ ລັບຜູ້ເກັບສະສົມນີ້ດຽວນີ້ບໍ? +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=ບໍ່ມີອີເມວໃ(່ (ການກັ່ນຕອງທີ່ກົງກັນ) ເພື່ອປະມວນຜົນ 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, 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=ລະຫັດຜົນໄດ້ຮັບຫຼ້າສຸດ NbOfEmailsInInbox=ຈຳ ນວນອີເມວຢູ່ໃນບັນຊີລາຍຊື່ແຫຼ່ງທີ່ມາ LoadThirdPartyFromName=ໂຫຼດການຄົ້ນຫາຈາກພາກສ່ວນທີສາມຢູ່ໃນ %s (ໂຫຼດເທົ່ານັ້ນ) @@ -2089,7 +2113,7 @@ ResourceSetup=ການຕັ້ງຄ່າໂມດູນຊັບພະຍາ UseSearchToSelectResource=ໃຊ້ແບບຟອມການຄົ້ນຫາເພື່ອເລືອກຊັບພະຍາກອນ (ແທນທີ່ຈະເປັນລາຍຊື່ແບບເລື່ອນລົງ). DisabledResourceLinkUser=ປິດການ ນຳ ໃຊ້ຄຸນສົມບັດເພື່ອເຊື່ອມຕໍ່ຊັບພະຍາກອນກັບຜູ້ໃຊ້ DisabledResourceLinkContact=ປິດໃຊ້ງານຄຸນສົມບັດເພື່ອເຊື່ອມຕໍ່ຊັບພະຍາກອນຫາລາຍຊື່ຜູ້ຕິດຕໍ່ -EnableResourceUsedInEventCheck=ເປີດໃຊ້ຄຸນສົມບັດເພື່ອກວດເບິ່ງວ່າມີການໃຊ້ຊັບພະຍາກອນຢູ່ໃນເຫດການຫຼືບໍ່ +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=ຢືນຢັນການຣີເຊັດໂມດູນ OnMobileOnly=ໃນ ໜ້າ ຈໍຂະ ໜາດ ນ້ອຍ (ສະມາດໂຟນ) ເທົ່ານັ້ນ DisableProspectCustomerType=ປິດໃຊ້ງານປະເພດບຸກຄົນທີສາມ "ລູກຄ້າ + ລູກຄ້າ" (ດັ່ງນັ້ນບຸກຄົນທີສາມຕ້ອງເປັນ "ຜູ້ຄາດຄະເນ" ຫຼື "ລູກຄ້າ", ແຕ່ບໍ່ສາມາດເປັນທັງສອງຢ່າງໄດ້) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=ລຶບຜູ້ເກັບອີເມລ ConfirmDeleteEmailCollector=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບຕົວເກັບອີເມວນີ້? RecipientEmailsWillBeReplacedWithThisValue=ອີເມວຜູ້ຮັບຈະຖືກແທນທີ່ດ້ວຍຄ່ານີ້ສະເີ AtLeastOneDefaultBankAccountMandatory=ຕ້ອງ ກຳ ນົດບັນຊີທະນາຄານເລີ່ມຕົ້ນຢ່າງ ໜ້ອຍ 1 ບັນຊີ -RESTRICT_ON_IP=ອະນຸຍາດໃຫ້ເຂົ້າເຖິງ IP ຂອງບາງໂຮສເທົ່ານັ້ນ (ບໍ່ອະນຸຍາດໃຫ້ຕົວແທນ, ໃຊ້ຍະຫວ່າງລະຫວ່າງຄ່າ). ຫວ່າງເປົ່າmeansາຍຄວາມວ່າເຈົ້າພາບທຸກຄົນສາມາດເຂົ້າຫາໄດ້. +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=ອີງໃສ່ສະບັບ SabreDAV ຂອງຫ້ອງສະຸດ NotAPublicIp=ບໍ່ແມ່ນ IP ສາທາລະນະ @@ -2144,6 +2168,9 @@ 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 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. @@ -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/lo_LA/banks.lang b/htdocs/langs/lo_LA/banks.lang index adbdc719bff..34720e31d45 100644 --- a/htdocs/langs/lo_LA/banks.lang +++ b/htdocs/langs/lo_LA/banks.lang @@ -95,11 +95,11 @@ LineRecord=ທຸລະກໍາ AddBankRecord=ຕື່ມການເຂົ້າ AddBankRecordLong=ເພີ່ມລາຍການດ້ວຍຕົນເອງ Conciliated=ຄືນດີ -ConciliatedBy=ຄືນດີໂດຍ +ReConciliedBy=Reconciled by DateConciliating=ວັນທີຄືນດີ BankLineConciliated=ການຄືນດີເຂົ້າກັບໃບຮັບເງິນຂອງທະນາຄານ -Reconciled=ຄືນດີ -NotReconciled=ບໍ່ໄດ້ຄືນດີ +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=ການຊໍາລະເງິນຂອງລູກຄ້າ SupplierInvoicePayment=ການຈ່າຍເງິນຂອງຜູ້ຂາຍ SubscriptionPayment=ການຈ່າຍຄ່າການສະັກໃຊ້ @@ -172,8 +172,8 @@ SEPAMandate=ຄຳ ສັ່ງ SEPA YourSEPAMandate=ຄຳ ສັ່ງ SEPA ຂອງເຈົ້າ FindYourSEPAMandate=ນີ້ແມ່ນ ຄຳ ສັ່ງ SEPA ຂອງເຈົ້າທີ່ຈະອະນຸຍາດໃຫ້ບໍລິສັດຂອງພວກເຮົາ ດຳ ເນີນການສັ່ງຊື້ບັນຊີໂດຍກົງກັບທະນາຄານຂອງເຈົ້າ. ສົ່ງມັນຄືນທີ່ໄດ້ເຊັນ (ສະແກນເອກະສານທີ່ໄດ້ເຊັນແລ້ວ) ຫຼືສົ່ງມັນທາງໄປສະນີຫາ AutoReportLastAccountStatement=ຕື່ມຂໍ້ມູນໃສ່ໃນຊ່ອງ 'ຈຳ ນວນໃບແຈ້ງຍອດທະນາຄານ' ໂດຍອັດຕະໂນມັດດ້ວຍnumberາຍເລກໃບແຈ້ງຍອດຄັ້ງສຸດທ້າຍເມື່ອມີການປອງດອງກັນ -CashControl=ການຄວບຄຸມໂຕ cash ະເງິນສົດ POS -NewCashFence=ເປີດຫຼືປິດໂຕ desk ະເງິນສົດໃNew່ +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=ການເຄື່ອນໄຫວສີ BankColorizeMovementDesc=ຖ້າ ໜ້າ ທີ່ນີ້ຖືກເປີດໃຊ້, ເຈົ້າສາມາດເລືອກສີພື້ນຫຼັງສະເພາະສໍາລັບການເຄື່ອນຍ້າຍເດບິດຫຼືສິນເຊື່ອ BankColorizeMovementName1=ສີພື້ນຫຼັງ ສຳ ລັບການເຄື່ອນຍ້າຍເດບິດ @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=ຖ້າເຈົ້າບໍ່ເຮັດ 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 diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang index fc1f1b1cc97..cffd31b92b8 100644 --- a/htdocs/langs/lo_LA/bills.lang +++ b/htdocs/langs/lo_LA/bills.lang @@ -156,6 +156,7 @@ 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. 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=ປ່ຽນເປັນໃບຮຽກເກັບເງິນແມ່ແບບ @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=ການຊໍາລະເງິນເຊັກ ( SendTo=ຖືກ​ສົ່ງ​ໄປ PaymentByTransferOnThisBankAccount=ການຊໍາລະໂດຍການໂອນເຂົ້າບັນຊີທະນາຄານຕໍ່ໄປນີ້ VATIsNotUsedForInvoice=* ສິນຄ້າ VAT-293B ຂອງ CGI ບໍ່ສາມາດນໍາໃຊ້ໄດ້ +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=ໂດຍການ ນຳ ໃຊ້ກົດ80າຍ 80.335 ຂອງວັນທີ 12/05/80 LawApplicationPart2=ສິນຄ້າຍັງຄົງເປັນຊັບສິນຂອງ LawApplicationPart3=ຜູ້ຂາຍຈົນກວ່າຈະຈ່າຍເງິນເຕັມ ຈຳ ນວນ @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=ລຶບໃບຮຽກເກັບເງິນ UnitPriceXQtyLessDiscount=ລາຄາຕໍ່ຫົວ ໜ່ວຍ x ຈໍານວນ - ສ່ວນຫຼຸດ CustomersInvoicesArea=ພື້ນທີ່ເກັບເງິນຂອງລູກຄ້າ SupplierInvoicesArea=ພື້ນທີ່ຮຽກເກັບເງິນຂອງຜູ້ສະ ໜອງ -FacParentLine=Invoice Line ຫຼັກ SituationTotalRayToRest=ສ່ວນທີ່ເຫຼືອເພື່ອຈ່າຍໂດຍບໍ່ຕ້ອງເສຍພາສີ PDFSituationTitle=ສະຖານະການເລກທີ %d SituationTotalProgress=ຄວາມຄືບ ໜ້າ ທັງaົດ %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=ຄົ້ນຫາໃບຮຽກເກັບເ 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/lo_LA/cashdesk.lang b/htdocs/langs/lo_LA/cashdesk.lang index 9f75f9044e6..735638d196a 100644 --- a/htdocs/langs/lo_LA/cashdesk.lang +++ b/htdocs/langs/lo_LA/cashdesk.lang @@ -50,8 +50,8 @@ Footer=ສ່ວນທ້າຍສຸດ AmountAtEndOfPeriod=ຈຳ ນວນໃນຕອນທ້າຍຂອງມື້ (ມື້, ເດືອນຫຼືປີ) TheoricalAmount=ຈໍານວນທິດສະດີ RealAmount=ຈໍານວນທີ່ແທ້ຈິງ -CashFence=ການປິດໂຕະເງິນສົດ -CashFenceDone=ການປິດໂຕະເງິນສົດ ສຳ ລັບງວດ +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Nb ຂອງໃບແຈ້ງ ໜີ້ Paymentnumpad=ປະເພດແຜ່ນເພື່ອປ້ອນການຊໍາລະ Numberspad=ແຜ່ນຕົວເລກ @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} ແທັກຖືກໃຊ້ TakeposGroupSameProduct=ຈັດກຸ່ມສາຍຜະລິດຕະພັນອັນດຽວກັນ StartAParallelSale=ເລີ່ມການຂາຍຂະ ໜານ ໃnew່ SaleStartedAt=ການຂາຍເລີ່ມຕົ້ນທີ່ %s -ControlCashOpening=ເປີດປັອບອັບ "ຄວບຄຸມເງິນສົດ" ເມື່ອເປີດ POS -CloseCashFence=ປິດການຄວບຄຸມໂຕ desk ະເງິນສົດ +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=ລາຍງານເງິນສົດ MainPrinterToUse=ເຄື່ອງພິມຫຼັກທີ່ຈະໃຊ້ OrderPrinterToUse=ສັ່ງໃຫ້ເຄື່ອງພິມໃຊ້ @@ -134,3 +134,5 @@ 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
    diff --git a/htdocs/langs/lo_LA/companies.lang b/htdocs/langs/lo_LA/companies.lang index 4342af5e745..44b8706202c 100644 --- a/htdocs/langs/lo_LA/companies.lang +++ b/htdocs/langs/lo_LA/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=ພື້ນທີ່ການສໍາຫຼວດ IdThirdParty=ID ພາກສ່ວນທີສາມ IdCompany=ID ບໍລິສັດ IdContact=ID ຕິດຕໍ່ +ThirdPartyAddress=Third-party address ThirdPartyContacts=ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງພາກສ່ວນທີສາມ ThirdPartyContact=ການຕິດຕໍ່/ທີ່ຢູ່ຂອງພາກສ່ວນທີສາມ Company=ບໍລິສັດ @@ -51,19 +52,22 @@ CivilityCode=ລະຫັດພົນລະເມືອງ RegisteredOffice=ຫ້ອງການຈົດທະບຽນ Lastname=ນາມ​ສະ​ກຸນ Firstname=ຊື່ແທ້ +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=ຕຳ ແໜ່ງ ວຽກ UserTitle=ຊື່ເລື່ອງ NatureOfThirdParty=ລັກສະນະຂອງພາກສ່ວນທີສາມ NatureOfContact=ລັກສະນະຂອງການຕິດຕໍ່ Address=ທີ່ຢູ່ State=ລັດ/ແຂວງ +StateId=State ID StateCode=ລະຫັດລັດ/ແຂວງ StateShort=ລັດ Region=ພາກພື້ນ Region-State=ພາກພື້ນ - ລັດ Country=ປະເທດ CountryCode=ລະ​ຫັດ​ປະ​ເທດ -CountryId=ລະຫັດປະເທດ +CountryId=Country ID Phone=ໂທລະສັບ PhoneShort=ໂທລະສັບ Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=ລະຫັດຜູ້ຂາຍບໍ່ຖືກຕ້ອ CustomerCodeModel=ຮູບແບບລະຫັດລູກຄ້າ SupplierCodeModel=ຮູບແບບລະຫັດຜູ້ຂາຍ Gencod=ບາໂຄດ +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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=Prof Id 1 (R.U.T. ) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=ລາຍຊື່ພາກສ່ວນທີສາມ ShowCompany=ບຸກ​ຄົນ​ທີ່​ສາມ ShowContact=ທີ່ຢູ່ຕິດຕໍ່ ContactsAllShort=ທັງ(ົດ (ບໍ່ມີຕົວກັ່ນຕອງ) -ContactType=ປະເພດການຕິດຕໍ່ +ContactType=Contact role ContactForOrders=ຕິດຕໍ່ສັ່ງຊື້ ContactForOrdersOrShipments=ການຕິດຕໍ່ຂອງຄໍາສັ່ງຫຼືການຂົນສົ່ງ ContactForProposals=ການຕິດຕໍ່ຂອງບົດສະ ເໜີ @@ -439,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 93f5578dd8d..c57ce0cd794 100644 --- a/htdocs/langs/lo_LA/compta.lang +++ b/htdocs/langs/lo_LA/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າ DeleteSocialContribution=ລຶບການຈ່າຍອາກອນທາງສັງຄົມຫຼືງົບປະມານ DeleteVAT=ລຶບການປະກາດ VAT DeleteSalary=ລຶບບັດເງິນເດືອນອອກ +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=ເຈົ້າແນ່ໃຈບໍວ່າເຈົ້າຕ້ອງການລຶບການຈ່າຍອາກອນທາງສັງຄົມ/ງົບປະມານນີ້? ConfirmDeleteVAT=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບການປະກາດ VAT ນີ້? -ConfirmDeleteSalary=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບເງິນເດືອນນີ້? +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 ກ່ຽວກັບການບັນຊີຄໍາcommitmentັ້ນສັນຍາ %s . CalcModeVATEngagement=ຮູບແບບ %sVAT ກ່ຽວກັບລາຍຮັບ-ລາຍຈ່າຍ %s . @@ -287,9 +289,9 @@ ReportPurchaseTurnover=ໃບເກັບເງິນລາຍຮັບການ ReportPurchaseTurnoverCollected=ເກັບລາຍຮັບການຊື້ IncludeVarpaysInResults = ລວມເອົາການຊໍາລະຕ່າງ various ຢູ່ໃນລາຍງານ IncludeLoansInResults = ລວມເອົາເງິນກູ້ຢືມເຂົ້າໃນລາຍງານ -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) 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/exports.lang b/htdocs/langs/lo_LA/exports.lang index 40f0eea9c2e..a185be1e262 100644 --- a/htdocs/langs/lo_LA/exports.lang +++ b/htdocs/langs/lo_LA/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=ປະເພດຂອງແຖວ (0 = ຜະລິ FileWithDataToImport=ໄຟລ with ທີ່ມີຂໍ້ມູນເພື່ອນໍາເຂົ້າ FileToImport=ໄຟລ Source ແຫຼ່ງທີ່ຈະນໍາເຂົ້າ FileMustHaveOneOfFollowingFormat=ໄຟລ to ທີ່ຈະ ນຳ ເຂົ້າຕ້ອງມີ ໜຶ່ງ ໃນຮູບແບບຕໍ່ໄປນີ້ -DownloadEmptyExample=ດາວໂຫຼດໄຟລ template ແມ່ແບບທີ່ມີຂໍ້ມູນເນື້ອໃນພາກສະຫນາມ -StarAreMandatory=* ແມ່ນຂົງເຂດບັງຄັບ +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=ເລືອກຮູບແບບໄຟລ to ເພື່ອໃຊ້ເປັນຮູບແບບໄຟລ import ນໍາເຂົ້າໂດຍການຄລິກທີ່ໄອຄອນ %s ເພື່ອເລືອກມັນ ... ChooseFileToImport=ອັບໂຫຼດໄຟລ then ຈາກນັ້ນຄລິກທີ່ໄອຄອນ %s ເພື່ອເລືອກໄຟລ as ເປັນໄຟລ import ນໍາເຂົ້າແຫຼ່ງທີ່ມາ ... SourceFileFormat=ຮູບແບບໄຟລ Source ແຫຼ່ງຂໍ້ມູນ @@ -135,3 +135,6 @@ NbInsert=ຈໍານວນຂອງແຖວທີ່ໃສ່ເຂົ້າ: NbUpdate=ຈໍານວນແຖວທີ່ອັບເດດ: %s MultipleRecordFoundWithTheseFilters=ພົບບັນທຶກຫຼາຍອັນດ້ວຍຕົວກັ່ນຕອງເຫຼົ່ານີ້: %s StocksWithBatch=ຫຼັກຊັບແລະສະຖານທີ່ (ສາງ) ຜະລິດຕະພັນທີ່ມີຊຸດ/ialາຍເລກຊີລຽວ +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: 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/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 2043f916ca3..10d3f90736d 100644 --- a/htdocs/langs/lo_LA/install.lang +++ b/htdocs/langs/lo_LA/install.lang @@ -8,6 +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 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 ນີ້ສະ ໜັບ ສະ ໜູນ ເຊດຊັນຕ່າງ. @@ -16,13 +17,6 @@ PHPMemoryOK=ໜ່ວຍ ຄວາມ ຈຳ session max PHP ຂອງເຈົ PHPMemoryTooLow=ໜ່ວຍ ຄວາມ ຈຳ session max PHP ຂອງເຈົ້າຖືກຕັ້ງເປັນ %s bytes. ອັນນີ້ຕໍ່າເກີນໄປ. ການປ່ຽນແປງຂອງທ່ານ php.ini ເພື່ອກໍານົດ memory_limit ຕົວກໍານົດການທີ່ຈະຢູ່ຢ່າງຫນ້ອຍ %s ໄບຕ໌. Recheck=ຄລິກທີ່ນີ້ສໍາລັບການທົດສອບລາຍລະອຽດເພີ່ມເຕີມ ErrorPHPDoesNotSupportSessions=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ສະ ໜັບ ສະ ໜູນ ເຊດຊັນຕ່າງ. ຄຸນສົມບັດນີ້ຕ້ອງການເພື່ອອະນຸຍາດໃຫ້ Dolibarr ເຮັດວຽກໄດ້. ກວດເບິ່ງການຕັ້ງ PHP ຂອງເຈົ້າແລະການອະນຸຍາດຂອງລາຍການເຊດຊັນ. -ErrorPHPDoesNotSupportGD=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ສະ ໜັບ ສະ ໜູນ ຟັງຊັນກຣາຟິກ GD. ບໍ່ມີເສັ້ນສະແດງ. -ErrorPHPDoesNotSupportCurl=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ສະ ໜັບ ສະ ໜູນ Curl. -ErrorPHPDoesNotSupportCalendar=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ຮອງຮັບການຂະຫຍາຍປະຕິທິນ php. -ErrorPHPDoesNotSupportUTF8=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ຮອງຮັບຟັງຊັນ UTF8. Dolibarr ບໍ່ສາມາດເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ. ແກ້ໄຂບັນຫານີ້ກ່ອນທີ່ຈະຕິດຕັ້ງ Dolibarr. -ErrorPHPDoesNotSupportIntl=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ຮອງຮັບຟັງຊັນ Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ສະ ໜັບ ສະ ໜູນ ການຂະຫຍາຍ ໜ້າ ທີ່ແກ້ໄຂບັນຫາ. ErrorPHPDoesNotSupport=ການຕິດຕັ້ງ PHP ຂອງເຈົ້າບໍ່ຮອງຮັບຟັງຊັນ %s. ErrorDirDoesNotExists=ບັນຊີລາຍຊື່ %s ບໍ່ມີ. ErrorGoBackAndCorrectParameters=ກັບຄືນໄປແລະກວດເບິ່ງ/ແກ້ໄຂຕົວກໍານົດການ. @@ -30,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..ae6a86cfcfe 100644 --- a/htdocs/langs/lo_LA/loan.lang +++ b/htdocs/langs/lo_LA/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=ຄໍາຫມັ້ນສັນຍາທາງດ້ານ InterestAmount=ດອກເບ້ຍ CapitalRemain=ທຶນຍັງຄົງຢູ່ TermPaidAllreadyPaid = ໄລຍະນີ້ແມ່ນໄດ້ຈ່າຍເງິນົດແລ້ວ -CantUseScheduleWithLoanStartedToPaid = ບໍ່ສາມາດໃຊ້ ກຳ ນົດເວລາ ສຳ ລັບເງິນກູ້ທີ່ມີການຈ່າຍເງິນເລີ່ມຕົ້ນແລ້ວ +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = ເຈົ້າບໍ່ສາມາດແກ້ໄຂຄວາມສົນໃຈໄດ້ຖ້າເຈົ້າໃຊ້ ກຳ ນົດເວລາ # Admin ConfigLoan=ການ ກຳ ນົດຄ່າເງິນກູ້ຂອງໂມດູນ diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index e929be052f5..8f0b1e13018 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -244,6 +244,7 @@ Designation=ລາຍລະອຽດ DescriptionOfLine=ລາຍລະອຽດຂອງ DateOfLine=ວັນທີແຖວ DurationOfLine=ໄລຍະເວລາຂອງເສັ້ນ +ParentLine=Parent line ID Model=ແມ່ແບບເອກະສານ DefaultModel=ແມ່ແບບເອກະສານເລີ່ມຕົ້ນ Action=ເຫດການ @@ -344,7 +345,7 @@ KiloBytes=ກິໂລໄບ MegaBytes=ເມກາໄບ GigaBytes=ກິກະໄບ TeraBytes=ເທຣາໄບຕ -UserAuthor=ແຕ່ງຕັ້ງໂດຍ +UserAuthor=Created by UserModif=ອັບເດດໂດຍ b=ຂ Kb=ກ @@ -517,6 +518,7 @@ or=ຫຼື Other=ອື່ນ Others=ອື່ນ OtherInformations=ຂໍ້​ມູນ​ອື່ນ ໆ +Workflow=Workflow Quantity=ປະລິມານ Qty=ຈຳ ນວນ ChangedBy=ປ່ຽນໂດຍ @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=ປິດການ ນຳ ໃຊ້ຄຸນສົມບັດ MoveBox=ຍ້າຍວິດເຈັດ Offered=ສະ ເໜີ ໃຫ້ NotEnoughPermissions=ເຈົ້າບໍ່ມີສິດອະນຸຍາດ ສຳ ລັບການກະ ທຳ ນີ້ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=ຊື່ເຊດຊັນ Method=ວິທີການ Receive=ຮັບ @@ -798,6 +802,7 @@ URLPhoto=URL ຂອງຮູບ/ໂລໂກ້ SetLinkToAnotherThirdParty=ເຊື່ອມຕໍ່ຫາພາກສ່ວນທີສາມອື່ນ LinkTo=ເຊື່ອມຕໍ່ກັບ LinkToProposal=ເຊື່ອມຕໍ່ກັບຂໍ້ສະ ເໜີ +LinkToExpedition= Link to expedition LinkToOrder=ການເຊື່ອມຕໍ່ກັບຄໍາສັ່ງ LinkToInvoice=ລິ້ງຫາໃບຮຽກເກັບເງິນ LinkToTemplateInvoice=ເຊື່ອມຕໍ່ກັບໃບຮຽກເກັບເງິນແມ່ແບບ @@ -1164,3 +1169,14 @@ 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/lo_LA/members.lang b/htdocs/langs/lo_LA/members.lang index 38758bb1981..32a51826792 100644 --- a/htdocs/langs/lo_LA/members.lang +++ b/htdocs/langs/lo_LA/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=ດ້ວຍເຫດຜົນດ້ານຄວາມປອດໄພ, ເຈົ້າຕ້ອງໄດ້ຮັບການອະນຸຍາດໃຫ້ແກ້ໄຂຜູ້ໃຊ້ທຸກຄົນເພື່ອສາມາດເຊື່ອມໂຍງສະມາຊິກກັບຜູ້ໃຊ້ທີ່ບໍ່ແມ່ນຂອງເຈົ້າ. SetLinkToUser=ເຊື່ອມຕໍ່ກັບຜູ້ໃຊ້ Dolibarr SetLinkToThirdParty=ເຊື່ອມຕໍ່ຫາພາກສ່ວນທີສາມຂອງ Dolibarr -MembersCards=ນາມບັດສໍາລັບສະມາຊິກ +MembersCards=Generation of cards for members MembersList=ລາຍຊື່ສະມາຊິກ MembersListToValid=ລາຍຊື່ສະມາຊິກຮ່າງ (ເພື່ອກວດສອບ) MembersListValid=ລາຍຊື່ສະມາຊິກທີ່ຖືກຕ້ອງ @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID ສະມາຊິກ +MemberId=Member Id +MemberRef=Member Ref NewMember=ສະມາຊິກໃ່ MemberType=ປະເພດສະມາຊິກ MemberTypeId=typeາຍເລກປະເພດສະມາຊິກ @@ -71,6 +72,12 @@ MemberTypeCanNotBeDeleted=ປະເພດສະມາຊິກບໍ່ສາມ NewSubscription=New contribution NewSubscriptionDesc=ແບບຟອມນີ້ອະນຸຍາດໃຫ້ເຈົ້າບັນທຶກການສະyourັກຂອງເຈົ້າເປັນສະມາຊິກໃof່ຂອງມູນນິທິ. ຖ້າເຈົ້າຕ້ອງການຕໍ່ອາຍຸການສະyourັກໃຊ້ຂອງເຈົ້າ (ຖ້າເປັນສະມາຊິກຢູ່ແລ້ວ), ກະລຸນາຕິດຕໍ່ຄະນະກໍາມະການຮາກຖານແທນທາງອີເມລ a %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=ຊ້າ SubscriptionNotReceived=Contribution never received @@ -135,7 +142,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=ຫົວຂໍ້ຂອງອີເມວແຈ້ງເຕືອນທີ່ໄດ້ຮັບໃນກໍລະນີທີ່ມີການໃສ່ຊື່ຂອງແຂກຄົນໂດຍອັດຕະໂນມັດ @@ -159,11 +166,11 @@ HTPasswordExport=ການສ້າງໄຟລ ht htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=ການປະຕິບັດເພີ່ມເຕີມກ່ຽວກັບການບັນທຶກ -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=ສ້າງບັນຊີໂດຍກົງຢູ່ໃນບັນຊີທະນາຄານ MoreActionBankViaInvoice=ສ້າງໃບແຈ້ງ ໜີ້, ແລະການຊໍາລະຢູ່ໃນບັນຊີທະນາຄານ MoreActionInvoiceOnly=ສ້າງໃບແຈ້ງ ໜີ້ ໂດຍບໍ່ຕ້ອງຈ່າຍເງິນ -LinkToGeneratedPages=ສ້າງບັດຢ້ຽມຢາມ +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=ໜ້າ ຈໍນີ້ຊ່ວຍໃຫ້ເຈົ້າສ້າງໄຟລ PDF PDF ດ້ວຍນາມບັດສໍາລັບສະມາຊິກທັງorົດຂອງເຈົ້າຫຼືສະມາຊິກສະເພາະ. DocForAllMembersCards=ສ້າງນາມບັດໃຫ້ສະມາຊິກທຸກຄົນ DocForOneMemberCards=ສ້າງນາມບັດໃຫ້ສະມາຊິກສະເພາະ @@ -198,7 +205,8 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=ລາຍຮັບ (ສໍາລັບບໍລິສັດ) ຫຼືງົບປະມານ (ສໍາລັບພື້ນຖານ) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its 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=ໂດດໄປຫາ ໜ້າ ການຊໍາລະເງິນອອນໄລນ integrated ທີ່ປະສົມປະສານ ByProperties=ໂດຍທໍາມະຊາດ MembersStatisticsByProperties=ສະຖິຕິສະມາຊິກໂດຍ ທຳ ມະຊາດ @@ -218,3 +226,5 @@ 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 diff --git a/htdocs/langs/lo_LA/modulebuilder.lang b/htdocs/langs/lo_LA/modulebuilder.lang index ce7e74ff135..383152fa129 100644 --- a/htdocs/langs/lo_LA/modulebuilder.lang +++ b/htdocs/langs/lo_LA/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=ໃສ່ຊື່ຂອງໂມດູນ/ແອັບພລິເຄຊັນເພື່ອສ້າງໂດຍບໍ່ມີຍະຫວ່າງ. ໃຊ້ຕົວພິມໃຫຍ່ເພື່ອແຍກຄໍາ (ຕົວຢ່າງ: MyModule, EcommerceForShop, SyncWithMySystem ... ) -EnterNameOfObjectDesc=ໃສ່ຊື່ຂອງອອບເຈັກເພື່ອສ້າງໂດຍບໍ່ມີຍະຫວ່າງ. ໃຊ້ຕົວພິມໃຫຍ່ເພື່ອແຍກຄໍາ (ຕົວຢ່າງ: MyObject, ນັກຮຽນ, ຄູ ... ). ໄຟລ class ຊັ້ນ CRUD, ແຕ່ຍັງມີໄຟລ API API, ໜ້າ ເພື່ອສ້າງລາຍການ/ເພີ່ມ/ແກ້ໄຂ/ລຶບວັດຖຸແລະໄຟລ S SQL ຈະຖືກສ້າງຂຶ້ນ. +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=ເສັ້ນທາງບ່ອນທີ່ມີການສ້າງ/ແກ້ໄຂໂມດູນ (ໄດເຣັກທໍຣີ ທຳ ອິດ ສຳ ລັບໂມດູນພາຍນອກທີ່ ກຳ ນົດໄວ້ໃນ %s): %s ModuleBuilderDesc3=ພົບໂມດູນທີ່ສ້າງຂຶ້ນ/ແກ້ໄຂໄດ້: %s ModuleBuilderDesc4=ໂມດູນຖືກກວດພົບວ່າສາມາດແກ້ໄຂໄດ້ເມື່ອໄຟລ a %s ມີຢູ່ໃນຮາກຂອງລະບົບໂມດູນ NewModule=ໂມດູນໃຫມ່ NewObjectInModulebuilder=ວັດຖຸໃ່ +NewDictionary=New dictionary ModuleKey=ປຸ່ມໂມດູນ ObjectKey=ປຸ່ມວັດຖຸ +DicKey=Dictionary key ModuleInitialized=ໂມດູນເລີ່ມຕົ້ນ FilesForObjectInitialized=ເລີ່ມຕົ້ນໄຟລ for ສໍາລັບວັດຖຸໃ'່ '%s' FilesForObjectUpdated=ອັບເດດໄຟລ for ສຳ ລັບວັດຖຸ '%s' (ໄຟລ. .sql ແລະແຟ້ມ .class.php) @@ -52,7 +55,7 @@ LanguageFile=ໄຟລ for ສໍາລັບພາສາ ObjectProperties=ຄຸນສົມບັດວັດຖຸ ConfirmDeleteProperty=ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການລຶບຄຸນສົມບັດ %s ? ອັນນີ້ຈະປ່ຽນລະຫັດໃນຊັ້ນ PHP ແຕ່ຍັງເອົາຖັນອອກມາຈາກການກໍານົດຕາຕະລາງວັດຖຸ. NotNull=ບໍ່ແມ່ນ NULL -NotNullDesc=1 = ຕັ້ງຖານຂໍ້ມູນເປັນ NOT NULL. -1 = ອະນຸຍາດໃຫ້ຄ່າ null ແລະບັງຄັບຄ່າເປັນ NULL ຖ້າຫວ່າງເປົ່າ ("ຫຼື 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=ໃຊ້ສໍາລັບ 'ຄົ້ນຫາທັງ'ົດ' DatabaseIndex=ດັດຊະນີຖານຂໍ້ມູນ FileAlreadyExists=ໄຟລ a %s ມີຢູ່ແລ້ວ @@ -94,7 +97,7 @@ LanguageDefDesc=ໃສ່ໃນໄຟລ this ນີ້, ທຸກຄີແລ MenusDefDesc=ກໍານົດທີ່ນີ້ເມນູທີ່ສະ ໜອງ ໂດຍໂມດູນຂອງເຈົ້າ DictionariesDefDesc=ກຳ ນົດວັດຈະນານຸກົມທີ່ສະ ໜອງ ໃຫ້ໂດຍໂມດູນຂອງເຈົ້າ PermissionsDefDesc=ກໍານົດທີ່ນີ້ການອະນຸຍາດໃຫມ່ສະຫນອງໃຫ້ໂດຍໂມດູນຂອງທ່ານ -MenusDefDescTooltip=ເມນູທີ່ສະ ໜອງ ໃຫ້ໂດຍໂມດູນ/ແອັບພລິເຄຊັນຂອງເຈົ້າຖືກກໍານົດໄວ້ໃນອາເຣ $ this-> ເມນູ ເຂົ້າໄປໃນໄຟລ des ຕົວອະທິບາຍໂມດູນ. ເຈົ້າສາມາດແກ້ໄຂໄຟລ this ນີ້ດ້ວຍຕົນເອງຫຼືໃຊ້ຕົວແກ້ໄຂທີ່embedັງໄວ້.

    Noteາຍເຫດ: ເມື່ອຖືກ ກຳ ນົດ (ແລະເປີດໃຊ້ໂມດູນຄືນໃ່), ເມນູຍັງສາມາດເບິ່ງເຫັນໄດ້ໃນຕົວແກ້ໄຂເມນູທີ່ມີໃຫ້ກັບຜູ້ບໍລິຫານເທິງ %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=ວັດຈະນານຸກົມທີ່ສະ ໜອງ ໃຫ້ໂດຍໂມດູນ/ແອັບພລິເຄຊັນຂອງເຈົ້າຖືກກໍານົດໄວ້ໃນອາເຣ $ this-> ວັດຈະນານຸກົມ ເຂົ້າໄປໃນໄຟລ des ຄໍາອະທິບາຍໂມດູນ. ເຈົ້າສາມາດແກ້ໄຂໄຟລ this ນີ້ດ້ວຍຕົນເອງຫຼືໃຊ້ຕົວແກ້ໄຂທີ່embedັງໄວ້.

    Noteາຍເຫດ: ເມື່ອຖືກ ກຳ ນົດ (ແລະເປີດໃຊ້ໂມດູນຄືນໃ່), ວັດຈະນານຸກົມຍັງສາມາດເບິ່ງເຫັນໄດ້ໃນພື້ນທີ່ການຕັ້ງໃຫ້ກັບຜູ້ໃຊ້ບໍລິຫານເທິງ %s. PermissionsDefDescTooltip=ການອະນຸຍາດທີ່ສະ ໜອງ ໃຫ້ໂດຍໂມດູນ/ແອັບພລິເຄຊັນຂອງເຈົ້າຖືກກໍານົດໄວ້ໃນອາເຣ $ this-> ສິດ ເຂົ້າໄປໃນໄຟລ des ຕົວອະທິບາຍໂມດູນ. ເຈົ້າສາມາດແກ້ໄຂໄຟລ this ນີ້ດ້ວຍຕົນເອງຫຼືໃຊ້ຕົວແກ້ໄຂທີ່embedັງໄວ້.

    Noteາຍເຫດ: ເມື່ອຖືກ ກຳ ນົດ (ແລະເປີດໃຊ້ໂມດູນຄືນໃ່), ການອະນຸຍາດສາມາດເບິ່ງເຫັນໄດ້ໃນການຕັ້ງຄ່າການອະນຸຍາດເລີ່ມຕົ້ນ %s. HooksDefDesc=ກໍານົດໃນ module_parts [ 'ສຽງ'] ຄຸນສົມບັດ, ໃນຄໍາສັບອຸປະກອນນະ, ສະພາບການຂອງສຽງທີ່ທ່ານຕ້ອງການທີ່ຈະຈັດການ (ບັນຊີລາຍຊື່ຂອງບໍລິບົດສາມາດໄດ້ຮັບການພົບເຫັນໂດຍການຊອກຫາໃນ 'initHooks ( ໃນລະຫັດຫຼັກ) ໄດ້. Edit
    ໄຟລ hook hook ເພື່ອເພີ່ມລະຫັດຂອງ ໜ້າ ທີ່ມີສຽງຂອງທ່ານ (ຟັງຊັນ hookable ສາມາດພົບໄດ້ໂດຍການຄົ້ນຫາໃນ ' executeHooks ' ໃນລະຫັດຫຼັກ). @@ -110,7 +113,7 @@ DropTableIfEmpty=(ທຳ ລາຍຕາຕະລາງຖ້າຫວ່າງ TableDoesNotExists=ຕາຕະລາງ %s ບໍ່ມີຢູ່ TableDropped=ຕາຕະລາງ %s ຖືກລຶບແລ້ວ InitStructureFromExistingTable=ສ້າງ string array array ຂອງຕາຕາລາງທີ່ມີຢູ່ແລ້ວ -UseAboutPage=ປິດໃຊ້ງານ ໜ້າ ກ່ຽວກັບ +UseAboutPage=Do not generate the About page UseDocFolder=ປິດໃຊ້ງານໂຟເດີເອກະສານ UseSpecificReadme=ໃຊ້ ReadMe ສະເພາະ ContentOfREADMECustomized=Noteາຍເຫດ: ເນື້ອໃນຂອງໄຟລ RE README.md ໄດ້ຖືກແທນທີ່ດ້ວຍຄ່າສະເພາະທີ່ໄດ້ກໍານົດໄວ້ໃນການຕັ້ງຄ່າຂອງ ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = ໃຊ້ URL ຕົວແກ້ໄຂສະເພາະ UseSpecificFamily = ໃຊ້ຄອບຄົວສະເພາະ UseSpecificAuthor = ໃຊ້ຜູ້ຂຽນສະເພາະ UseSpecificVersion = ໃຊ້ສະບັບເລີ່ມຕົ້ນສະເພາະ -IncludeRefGeneration=ການອ້າງອິງວັດຖຸຕ້ອງຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດ -IncludeRefGenerationHelp=ກວດເບິ່ງອັນນີ້ຖ້າເຈົ້າຕ້ອງການລວມເອົາລະຫັດເພື່ອຈັດການການຜະລິດໂດຍອັດຕະໂນມັດຂອງການອ້າງອີງ -IncludeDocGeneration=ຂ້ອຍຕ້ອງການສ້າງເອກະສານບາງອັນຈາກວັດຖຸ +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=ຖ້າເຈົ້າກວດເບິ່ງອັນນີ້, ລະຫັດບາງອັນຈະຖືກສ້າງຂຶ້ນເພື່ອເພີ່ມກ່ອງ "ສ້າງເອກະສານ" ໃສ່ໃນບັນທຶກ. ShowOnCombobox=ສະແດງໃຫ້ເຫັນມູນຄ່າໃນການ combobox KeyForTooltip=ກະແຈ ສຳ ລັບ ຄຳ ແນະ ນຳ @@ -138,10 +141,15 @@ CSSViewClass=CSS ສໍາລັບແບບຟອມການອ່ານ CSSListClass=CSS ສຳ ລັບລາຍຊື່ NotEditable=ບໍ່ສາມາດແກ້ໄຂໄດ້ ForeignKey=ກະແຈຕ່າງປະເທດ -TypeOfFieldsHelp=ປະເພດຂອງຊ່ອງຂໍ້ມູນ:
    varchar (99), double (24,8), ຕົວຈິງ, ຂໍ້ຄວາມ, html, ວັນທີ, ເວລາ, ເວລາ, ຈໍານວນເຕັມ, ຈໍານວນເຕັມ: ClassName: relativepath/to/classfile.class.php [: 1 [: filter]] ('1' meansາຍຄວາມວ່າພວກເຮົາເພີ່ມປຸ່ມ + ຫຼັງຈາກເລື່ອນເພື່ອສ້າງບັນທຶກ, 'ຕົວກັ່ນຕອງ' ສາມາດເປັນ 'ສະຖານະ = 1 ແລະ fk_user = __USER_ID ແລະນິຕິບຸກຄົນໃນ (__SHARED_ENTITIES__)' ຕົວຢ່າງ) +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 ເປັນ HTML AsciiToPdfConverter=Ascii ເປັນຕົວປ່ຽນ PDF TableNotEmptyDropCanceled=ຕາຕະລາງບໍ່ຫວ່າງເປົ່າ. ການຍົກເລີກໄດ້ຖືກຍົກເລີກ. ModuleBuilderNotAllowed=ຕົວສ້າງໂມດູນສາມາດໃຊ້ໄດ້ແຕ່ບໍ່ອະນຸຍາດໃຫ້ກັບຜູ້ໃຊ້ຂອງເຈົ້າ. ImportExportProfiles=ນຳ ເຂົ້າແລະສົ່ງອອກໂປຣໄຟລ -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=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. 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/other.lang b/htdocs/langs/lo_LA/other.lang index 26fdf397de8..435021d19c0 100644 --- a/htdocs/langs/lo_LA/other.lang +++ b/htdocs/langs/lo_LA/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... ຫຼືສ້າງໂປຣໄຟລ your ຂອ DemoFundation=ຄຸ້ມຄອງສະມາຊິກຂອງຮາກຖານ DemoFundation2=ຄຸ້ມຄອງສະມາຊິກແລະບັນຊີທະນາຄານຂອງມູນນິທິ DemoCompanyServiceOnly=ບໍລິສັດຫຼືບໍລິການຂາຍອິດສະຫຼະເທົ່ານັ້ນ -DemoCompanyShopWithCashDesk=ຈັດການຮ້ານຄ້າດ້ວຍໂຕະເຮັດເງິນສົດ +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=ຮ້ານຂາຍຜະລິດຕະພັນທີ່ມີຈຸດຂາຍ DemoCompanyManufacturing=ຜະລິດຕະພັນຂອງບໍລິສັດ DemoCompanyAll=ບໍລິສັດທີ່ມີຫຼາຍກິດຈະກໍາ (ທຸກໂມດູນຫຼັກ) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=ເລືອກວັດຖຸໃດນຶ່ງ ConfirmBtnCommonContent = ເຈົ້າແນ່ໃຈບໍ່ວ່າເຈົ້າຕ້ອງການ "%s"? ConfirmBtnCommonTitle = ຢືນຢັນການກະ ທຳ ຂອງເຈົ້າ CloseDialog = ປິດ +Autofill = Autofill diff --git a/htdocs/langs/lo_LA/projects.lang b/htdocs/langs/lo_LA/projects.lang index d5660ce0082..147a4a4071d 100644 --- a/htdocs/langs/lo_LA/projects.lang +++ b/htdocs/langs/lo_LA/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=ປ້າຍຊື່ໂຄງການ ProjectsArea=ພື້ນທີ່ໂຄງການ ProjectStatus=ສະຖານະໂຄງການ SharedProject=ທຸກຄົນ -PrivateProject=ຕິດຕໍ່ພົວພັນໂຄງການ +PrivateProject=Assigned contacts ProjectsImContactFor=ໂຄງການທີ່ຂ້ອຍຕິດຕໍ່ຢ່າງຈະແຈ້ງ AllAllowedProjects=ໂຄງການທັງIົດທີ່ຂ້ອຍສາມາດອ່ານໄດ້ (ຂອງຂ້ອຍ + ສາທາລະນະ) AllProjects=ໂຄງການທັງຫມົດ @@ -190,6 +190,7 @@ PlannedWorkload=ວຽກງານທີ່ວາງແຜນໄວ້ PlannedWorkloadShort=ພາລະວຽກ ProjectReferers=ລາຍການທີ່ກ່ຽວຂ້ອງ ProjectMustBeValidatedFirst=ໂຄງການຕ້ອງໄດ້ຮັບການກວດສອບກ່ອນ +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=ມອບresourceາຍຊັບພະຍາກອນຜູ້ໃຊ້ເປັນຜູ້ຕິດຕໍ່ຂອງໂຄງການເພື່ອຈັດສັນເວລາ InputPerDay=ການປ້ອນຂໍ້ມູນຕໍ່ມື້ InputPerWeek=ການປ້ອນຂໍ້ມູນຕໍ່ອາທິດ @@ -258,7 +259,7 @@ TimeSpentInvoiced=ເວລາທີ່ໃຊ້ຈ່າຍໃບບິນ TimeSpentForIntervention=ເວລາທີ່ໃຊ້ TimeSpentForInvoice=ເວລາທີ່ໃຊ້ OneLinePerUser=ໜຶ່ງ ແຖວຕໍ່ຜູ້ໃຊ້ -ServiceToUseOnLines=ການບໍລິການການນໍາໃຊ້ໃນສາຍ +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=ໃບເກັບເງິນ %s ໄດ້ຖືກສ້າງຂຶ້ນຈາກເວລາທີ່ໃຊ້ຢູ່ໃນໂຄງການ InterventionGeneratedFromTimeSpent=ການແຊກແຊງ %s ໄດ້ຖືກສ້າງຂຶ້ນຈາກເວລາທີ່ໃຊ້ຢູ່ໃນໂຄງການ ProjectBillTimeDescription=ກວດເບິ່ງວ່າເຈົ້າໃສ່ຕາຕະລາງເວລາໃນ ໜ້າ ວຽກຂອງໂຄງການຫຼືບໍ່ແລະເຈົ້າວາງແຜນທີ່ຈະສ້າງໃບແຈ້ງ ໜີ້ ຈາກຕາຕະລາງເວລາເພື່ອຮຽກເກັບເງິນລູກຄ້າຂອງໂຄງການ (ບໍ່ກວດເບິ່ງວ່າເຈົ້າວາງແຜນທີ່ຈະສ້າງໃບແຈ້ງ ໜີ້ ທີ່ບໍ່ອີງໃສ່ຕາຕະລາງເວລາທີ່ປ້ອນເຂົ້າໄປ). Noteາຍເຫດ: ເພື່ອສ້າງໃບແຈ້ງ ໜີ້, ໃຫ້ໄປທີ່ແຖບ 'ເວລາທີ່ໃຊ້' ຂອງໂຄງການແລະເລືອກແຖວເພື່ອລວມເອົາ. @@ -287,3 +288,10 @@ 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/lo_LA/propal.lang b/htdocs/langs/lo_LA/propal.lang index 7a87576af92..2c7fb7be35f 100644 --- a/htdocs/langs/lo_LA/propal.lang +++ b/htdocs/langs/lo_LA/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 ? @@ -85,13 +86,26 @@ ProposalCustomerSignature=ການຍອມຮັບເປັນລາຍລັ ProposalsStatisticsSuppliers=ສະຖິຕິການສະ ເໜີ ຂອງຜູ້ຂາຍ CaseFollowedBy=ຄະດີຕິດຕາມມາດ້ວຍ SignedOnly=ເຊັນເທົ່ານັ້ນ +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=ID ບົດສະ ເໜີ IdProduct=ID ຜະລິດຕະພັນ -PrParentLine=ສາຍພໍ່ແມ່ສະ ເໜີ LineBuyPriceHT=ຊື້ລາຄາ ຈຳ ນວນສຸດທິຂອງອາກອນຕໍ່ເສັ້ນ SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign +NoSign=Set not signed PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted diff --git a/htdocs/langs/lo_LA/ticket.lang b/htdocs/langs/lo_LA/ticket.lang index cbaf695a134..0d495975fcc 100644 --- a/htdocs/langs/lo_LA/ticket.lang +++ b/htdocs/langs/lo_LA/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=ສ່ວນຕິດຕໍ່ສາທາລະນະທີ TicketSetupDictionaries=ປະເພດຂອງປີ້, ຄວາມຮຸນແຮງແລະລະຫັດການວິເຄາະແມ່ນສາມາດຕັ້ງຄ່າໄດ້ຈາກວັດຈະນານຸກົມ TicketParamModule=ການຕັ້ງຄ່າຕົວປ່ຽນໂມດູນ TicketParamMail=ການຕັ້ງອີເມລ -TicketEmailNotificationFrom=ອີເມວແຈ້ງເຕືອນຈາກ -TicketEmailNotificationFromHelp=ຕົວຢ່າງທີ່ໃຊ້ເຂົ້າໃນການຕອບຂໍ້ຄວາມປີ້ໂດຍຕົວຢ່າງ -TicketEmailNotificationTo=ແຈ້ງເຕືອນອີເມລຫາ -TicketEmailNotificationToHelp=ສົ່ງອີເມວແຈ້ງເຕືອນໄປຫາທີ່ຢູ່ນີ້. +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 TicketNewEmailBodyLabel=ຂໍ້ຄວາມໄດ້ຖືກສົ່ງຫຼັງຈາກການສ້າງປີ້ TicketNewEmailBodyHelp=ຂໍ້ຄວາມທີ່ລະບຸຢູ່ທີ່ນີ້ຈະຖືກໃສ່ເຂົ້າໄປໃນອີເມວຢືນຢັນການສ້າງປີ້ໃfrom່ຈາກສ່ວນຕິດຕໍ່ສາທາລະນະ. ຂໍ້ມູນກ່ຽວກັບການປຶກສາຫາລືຂອງປີ້ຈະຖືກເພີ່ມເຂົ້າໂດຍອັດຕະໂນມັດ. TicketParamPublicInterface=ຕັ້ງຄ່າສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ສາທາລະນະ @@ -136,6 +136,18 @@ TicketsPublicNotificationNewMessage=ສົ່ງອີເມວເມື່ອ TicketsPublicNotificationNewMessageHelp=ສົ່ງອີເມລ when ເມື່ອມີການເພີ່ມຂໍ້ຄວາມໃfrom່ຈາກອິນເຕີເຟດສາທາລະນະ (ໃຫ້ກັບຜູ້ໃຊ້ທີ່ໄດ້ຮັບມອບorາຍຫຼືອີເມລແຈ້ງການຫາ (ອັບເດດ) ແລະ/ຫຼືອີເມວແຈ້ງການຫາ) TicketPublicNotificationNewMessageDefaultEmail=ອີເມວແຈ້ງເຕືອນຫາ (ອັບເດດ) TicketPublicNotificationNewMessageDefaultEmailHelp=ສົ່ງອີເມວໄປຫາທີ່ຢູ່ນີ້ສໍາລັບການແຈ້ງເຕືອນຂໍ້ຄວາມໃeach່ແຕ່ລະອັນຖ້າປີ້ບໍ່ມີຜູ້ໃຊ້ມອບitາຍໃຫ້ຫຼືຖ້າຜູ້ໃຊ້ບໍ່ມີອີເມວທີ່ຮູ້ຈັກ. +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 # @@ -151,6 +163,8 @@ OrderByDateAsc=ຈັດຮຽງຕາມວັນທີທີ່ຫານ້ OrderByDateDesc=ຈັດຮຽງຕາມວັນທີໃຫຍ່ຫານ້ອຍ ShowAsConversation=ສະແດງເປັນລາຍການສົນທະນາ MessageListViewType=ສະແດງເປັນລາຍການຕາຕະລາງ +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=ຜູ້ຮັບບໍ່ຫວ TicketGoIntoContactTab=ກະລຸນາເຂົ້າໄປທີ່ແຖບ "ລາຍຊື່ຜູ້ຕິດຕໍ່" ເພື່ອເລືອກພວກມັນ TicketMessageMailIntro=ການນໍາສະເຫນີ TicketMessageMailIntroHelp=ຂໍ້ຄວາມນີ້ຖືກເພີ່ມໃສ່ແຕ່ຕອນຕົ້ນຂອງອີເມວແລະຈະບໍ່ຖືກບັນທຶກໄວ້. -TicketMessageMailIntroLabelAdmin=ການ ນຳ ສະ ເໜີ ຂໍ້ຄວາມເມື່ອສົ່ງອີເມວ -TicketMessageMailIntroText=ສະບາຍດີ,
    ໄດ້ມີການຕອບກັບໃnew່ຢູ່ໃນປີ້ທີ່ເຈົ້າຕິດຕໍ່. ນີ້ແມ່ນຂໍ້ຄວາມ:
    -TicketMessageMailIntroHelpAdmin=ຂໍ້ຄວາມນີ້ຈະຖືກໃສ່ກ່ອນຂໍ້ຄວາມຂອງການຕອບກັບປີ້. +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=

    ດ້ວຍຄວາມນັບຖື,

    -

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=ລາຍເຊັນອີເມວຕອບກັບ TicketMessageMailSignatureHelpAdmin=ຂໍ້ຄວາມນີ້ຈະຖືກແຊກໃສ່ຫຼັງຈາກຂໍ້ຄວາມຕອບກັບ. TicketMessageHelp=ສະເພາະຂໍ້ຄວາມນີ້ຈະຖືກບັນທຶກໄວ້ໃນລາຍການຂໍ້ຄວາມຢູ່ໃນບັດປີ້. @@ -238,9 +252,16 @@ TicketChangeStatus=ປ່ຽນສະຖານະພາບ TicketConfirmChangeStatus=ຢືນຢັນການປ່ຽນສະຖານະ: %s? TicketLogStatusChanged=ສະຖານະມີການປ່ຽນແປງ: %s ເປັນ %s TicketNotNotifyTiersAtCreate=ບໍ່ແຈ້ງໃຫ້ບໍລິສັດສ້າງ +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=ນີ້ແມ່ນອີເມວອັດຕະໂນມ TicketNewEmailBodyCustomer=ນີ້ແມ່ນອີເມວອັດຕະໂນມັດເພື່ອຢືນຢັນວ່າປີ້ໃhas່ຫາກໍ່ຖືກສ້າງຂຶ້ນໃນບັນຊີຂອງເຈົ້າ. TicketNewEmailBodyInfosTicket=ຂໍ້ມູນສໍາລັບການຕິດຕາມປີ້ TicketNewEmailBodyInfosTrackId=trackingາຍເລກຕິດຕາມປີ້: %s -TicketNewEmailBodyInfosTrackUrl=ເຈົ້າສາມາດເບິ່ງຄວາມຄືບ ໜ້າ ຂອງປີ້ໂດຍການຄລິກທີ່ລິ້ງຂ້າງເທິງ. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=ເຈົ້າສາມາດເບິ່ງຄວາມຄືບ ໜ້າ ຂອງປີ້ຢູ່ໃນສ່ວນຕິດຕໍ່ສະເພາະໂດຍການຄລິກທີ່ລິ້ງຕໍ່ໄປນີ້ +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=ກະລຸນາຢ່າຕອບກັບອີເມລ directly ນີ້ໂດຍກົງ! ໃຊ້ຕົວເຊື່ອມຕໍ່ເພື່ອຕອບກັບເຂົ້າໄປໃນອິນເຕີເຟດ. TicketPublicInfoCreateTicket=ແບບຟອມນີ້ອະນຸຍາດໃຫ້ເຈົ້າບັນທຶກປີ້ສະ ໜັບ ສະ ໜູນ ໃນລະບົບການຈັດການຂອງພວກເຮົາ. TicketPublicPleaseBeAccuratelyDescribe=ກະລຸນາອະທິບາຍບັນຫາໃຫ້ຖືກຕ້ອງ. ໃຫ້ຂໍ້ມູນຫຼາຍທີ່ສຸດເທົ່າທີ່ເປັນໄປໄດ້ເພື່ອອະນຸຍາດໃຫ້ພວກເຮົາລະບຸການຮ້ອງຂໍຂອງເຈົ້າໄດ້ຢ່າງຖືກຕ້ອງ. @@ -291,6 +313,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: TicketNotificationEmailSubject=ປີ້ %s ອັບເດດແລ້ວ TicketNotificationEmailBody=ນີ້ແມ່ນຂໍ້ຄວາມອັດຕະໂນມັດເພື່ອແຈ້ງໃຫ້ເຈົ້າຮູ້ວ່າປີ້ %s ຫາກໍ່ຖືກອັບເດດ TicketNotificationRecipient=ຜູ້ຮັບການແຈ້ງເຕືອນ diff --git a/htdocs/langs/lo_LA/users.lang b/htdocs/langs/lo_LA/users.lang index d142d6e9256..2308fec58ae 100644 --- a/htdocs/langs/lo_LA/users.lang +++ b/htdocs/langs/lo_LA/users.lang @@ -114,7 +114,7 @@ UserLogoff=ຜູ້ໃຊ້ອອກຈາກລະບົບ UserLogged=ຜູ້ໃຊ້ເຂົ້າສູ່ລະບົບ DateOfEmployment=ວັນທີການຈ້າງງານ DateEmployment=ການຈ້າງງານ -DateEmploymentstart=ວັນທີເລີ່ມວຽກ +DateEmploymentStart=Employment Start Date DateEmploymentEnd=ວັນທີສິ້ນສຸດການຈ້າງງານ RangeOfLoginValidity=ເຂົ້າເຖິງຂອບເຂດວັນທີທີ່ຖືກຕ້ອງ CantDisableYourself=ເຈົ້າບໍ່ສາມາດປິດການ ນຳ ໃຊ້ບັນທຶກຜູ້ໃຊ້ຂອງເຈົ້າເອງໄດ້ @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=ໂດຍຄ່າເລີ່ມຕົ້ນ, UserPersonalEmail=ອີເມວສ່ວນຕົວ UserPersonalMobile=ໂທລະສັບມືຖືສ່ວນຕົວ WarningNotLangOfInterface=ຄຳ ເຕືອນ, ນີ້ແມ່ນພາສາຫຼັກທີ່ຜູ້ໃຊ້ເວົ້າ, ບໍ່ແມ່ນພາສາຂອງອິນເຕີເຟດທີ່ລາວເລືອກທີ່ຈະເຫັນ. ເພື່ອປ່ຽນພາສາໃນການໂຕ້ຕອບໂດຍຜູ້ໃຊ້ນີ້, ໃຫ້ໄປທີ່ແຖບ %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login 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 1dfa2f95973..b14fb23d2b3 100644 --- a/htdocs/langs/lt_LT/companies.lang +++ b/htdocs/langs/lt_LT/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Numatoma sritis IdThirdParty=Trečiosios šalies ID IdCompany=Įmonės ID IdContact=Adresato ID +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Įmonė @@ -51,19 +52,22 @@ CivilityCode=Mandagumo kodeksas RegisteredOffice=Buveinės registracijos adresas Lastname=Pavardė Firstname=Vardas +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Pavadinimas 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=Kliento kodo modelis SupplierCodeModel=Vendor code model Gencod=Brūkšninis kodas +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Juridinis kodas ProfId2Short=Prof ID 2 @@ -159,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=Kiti ProfId6ShortCM=- ProfId1CO=Prof ID 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Visi (nėra filtro) -ContactType=Kontakto tipas +ContactType=Contact role ContactForOrders=Užsakymo kontaktai ContactForOrdersOrShipments=Užsakymai arba pristatymo kontaktai ContactForProposals=Pasiūlymo kontaktai 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/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/members.lang b/htdocs/langs/lt_LT/members.lang index 9c5e26e5f18..f1fbdd9ba2b 100644 --- a/htdocs/langs/lt_LT/members.lang +++ b/htdocs/langs/lt_LT/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Narių sąrašas MembersListToValid=Numatomų narių sąrašas (tvirtinimui) MembersListValid=Patvirtintų galiojančių narių sąrašas @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Nario ID +MemberId=Member Id +MemberRef=Member Ref NewMember=Naujas narys MemberType=Nario tipas MemberTypeId=Nario tipo ID @@ -159,11 +160,11 @@ HTPasswordExport=htpassword failo generavimas NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Papildomi veiksmai įrašomi -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=Sukurti sąskaitą-faktūrą be mokėjimo -LinkToGeneratedPages=Sukurti apsilankymų korteles +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Šis ekranas leidžia Jums sukurti PDF failus su vizitinėmis kortelėmis visiems Jūsų nariams ar tik tam tikriems nariams. DocForAllMembersCards=Sukurti vizitines korteles visiems nariams DocForOneMemberCards=Sukurti vizitines korteles tam tikriems nariams @@ -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/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang index 110ced16ac7..97858418b48 100644 --- a/htdocs/langs/lt_LT/other.lang +++ b/htdocs/langs/lt_LT/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Valdyti organizacijos narius DemoFundation2=Valdyti organizacijos narius ir banko sąskaitą DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Valdyti parduotuvę su kasos aparatu +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Uždaryti +Autofill = Autofill diff --git a/htdocs/langs/lt_LT/projects.lang b/htdocs/langs/lt_LT/projects.lang index 8c7a271873c..bb047dd614a 100644 --- a/htdocs/langs/lt_LT/projects.lang +++ b/htdocs/langs/lt_LT/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Projekto statusas SharedProject=Visi -PrivateProject=Projekto kontaktai +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Visi projektai @@ -190,6 +190,7 @@ PlannedWorkload=Planuojamas darbo krūvis PlannedWorkloadShort=Darbo krūvis ProjectReferers=Related items ProjectMustBeValidatedFirst=Projektas turi būti pirmiausia patvirtintas +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time InputPerDay=Įvesčių per dieną InputPerWeek=Įvesčių per savaitę @@ -287,3 +288,9 @@ 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=Pabaigos data negali būti ankstesnė už pradžios datą +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 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/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index 3ee38b2080c..8903bac917d 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -48,7 +48,7 @@ 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=With this tool, you can export the source events (list in CSV and PDFs) that are used to generate your accountancy. ExportAccountingSourceDocHelp2=Lai eksportētu žurnālus, izmantojiet izvēlnes ierakstu %s - %s. VueByAccountAccounting=Skatīt pēc grāmatvedības konta VueBySubAccountAccounting=Skatīt pēc grāmatvedības apakškonta @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Galvenais grāmatvedības konts abon AccountancyArea=Grāmatvedības zona AccountancyAreaDescIntro=Grāmatvedības moduļa lietošana tiek veikta vairākos posmos: AccountancyAreaDescActionOnce=Šīs darbības parasti izpilda tikai vienu reizi vai reizi gadā ... -AccountancyAreaDescActionOnceBis=Veicot nākamo darbību, lai nākotnē ietaupītu laiku, ierosinot pareizu noklusējuma grāmatvedības kontu žurnālistikas veikšanā (rakstot žurnālu un galveno virsgrāmatu) +AccountancyAreaDescActionOnceBis=Nākamās darbības jāveic, lai ietaupītu jūsu laiku nākotnē, automātiski iesakot pareizo noklusējuma grāmatvedības kontu, pārsūtot datus grāmatvedībā AccountancyAreaDescActionFreq=Šīs darbības parasti tiek veiktas katru mēnesi, nedēļu vai dienu ļoti lieliem uzņēmumiem ... -AccountancyAreaDescJournalSetup=Solis %s: izveidojiet vai pārbaudiet žurnāla satura saturu no izvēlnes %s +AccountancyAreaDescJournalSetup=SOLIS %s: pārbaudiet žurnālu saraksta saturu izvēlnē %s AccountancyAreaDescChartModel=Solis %s: pārbaudiet, vai pastāv konta diagrammas modelis, vai izveidojiet to no izvēlnes %s AccountancyAreaDescChart=Solis %s: izvēlnē %s atlasiet un vai aizpildiet kontu no izvēlnes. AccountancyAreaDescVat=Solis %s: definējiet katras PVN likmes grāmatvedības kontus. Izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescDefault=Solis %s: definējiet noklusējuma grāmatvedības kontus. Šajā nolūkā izmantojiet izvēlnes ierakstu %s. -AccountancyAreaDescExpenseReport=STEP %s: definējiet noklusējuma uzskaites kontus katram izdevumu pārskatam. Šajā nolūkā izmantojiet izvēlnes ierakstu %s. +AccountancyAreaDescExpenseReport=SOLIS %s: definējiet noklusējuma grāmatvedības kontus katram Izdevumu pārskata veidam. Šim nolūkam izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescSal=Solis %s: definējiet noklusējuma uzskaites kontus algu izmaksāšanai. Izmantojiet izvēlnes ierakstu %s. -AccountancyAreaDescContrib=Solis %s: definējiet noklusējuma grāmatvedības kontus īpašiem izdevumiem (dažādiem nodokļiem). Izmantojiet izvēlnes ierakstu %s. +AccountancyAreaDescContrib=SOLIS %s: definējiet noklusējuma grāmatvedības kontus nodokļiem (īpašiem izdevumiem). Šim nolūkam izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescDonation=Solis %s: definējiet noklusējuma uzskaites kontus ziedojumiem. Izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescSubscription=STEP %s: definējiet noklusējuma grāmatvedības kontus dalībnieku abonementam. Lai to izdarītu, izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescMisc=Solis %s: norādiet obligātos noklusējuma kontu un noklusējuma grāmatvedības kontus dažādiem darījumiem. Šajā nolūkā izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescLoan=STEP %s: definējiet noklusējuma aizņēmumu grāmatvedības uzskaiti. Šajā nolūkā izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescBank=Solis %s: definējiet grāmatvedības kontus un žurnāla kodu katrai bankai un finanšu kontiem. Izmantojiet izvēlnes ierakstu %s. -AccountancyAreaDescProd=Solis %s: definējiet savu produktu/pakalpojumu grāmatvedības kontus. Izmantojiet izvēlnes ierakstu %s. +AccountancyAreaDescProd=SOLIS %s: definējiet grāmatvedības kontus saviem produktiem/pakalpojumiem. Šim nolūkam izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescBind=STEP %s: pārbaudiet saistību starp esošajām %s līnijām un grāmatvedības kontu, tāpēc pieteikums varēs žurnālizēt darījumus Ledger ar vienu klikšķi. Pabeigt trūkstošos piesaisti. Šajā nolūkā izmantojiet izvēlnes ierakstu %s. AccountancyAreaDescWriteRecords=Solis %s: rakstīt darījumus uz grāmatvedi. Lai to izdarītu, dodieties uz izvēlni %s un noklikšķiniet uz pogas %s. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Slēgšana MenuAccountancyValidationMovements=Apstipriniet kustības ProductsBinding=Produktu konti TransferInAccounting=Pārskaitījums grāmatvedībā -RegistrationInAccounting=Reģistrācija grāmatvedībā +RegistrationInAccounting=Ierakstīšana grāmatvedībā Binding=Saistīšana ar kontiem CustomersVentilation=Klienta rēķins saistošs SuppliersVentilation=Piegādātāja rēķins saistošs @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Izdevumu pārskats ir saistošs CreateMvts=Izveidot jaunu darījumu UpdateMvts=Darījuma grozīšana ValidTransaction=Apstipriniet darījumu -WriteBookKeeping=Reģistrējiet darījumus grāmatvedībā +WriteBookKeeping=Ierakstīt darījumus grāmatvedībā Bookkeeping=Grāmatvedis BookkeepingSubAccount=Zemesgrāmata AccountBalance=Konta bilance @@ -161,7 +161,7 @@ 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 @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Grāmatvedības konts, lai reģistrētu abonementus ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Grāmatvedības konts pēc noklusējuma reģistrē klientu depozītu +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_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ā) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Iepriekš definētās grupas ByPersonalizedAccountGroups=Personalizētās grupas ByYear=Pēc gada NotMatch=Nav iestatīts -DeleteMvt=Izdzēsiet dažas operāciju rindas no grāmatvedības +DeleteMvt=Izdzēsiet dažas rindas no grāmatvedības DelMonth=Mēnesis kas jādzēš DelYear=Gads kurš jādzēš DelJournal=Žurnāls kurš jādzēš -ConfirmDeleteMvt=Tas izdzēsīs visas grāmatvedības operāciju rindas par gadu / mēnesi un / vai konkrētu žurnālu (nepieciešams vismaz viens kritērijs). Jums būs atkārtoti jāizmanto līdzeklis '%s', lai dzēstais ieraksts atgrieztos virsgrāmatā. -ConfirmDeleteMvtPartial=Tādējādi darījums tiks dzēsts no grāmatvedības (visas operācijas rindas, kas saistītas ar to pašu darījumu, tiks dzēstas) +ConfirmDeleteMvt=Tādējādi tiks dzēstas visas gada/mēneša un/vai konkrēta žurnāla grāmatvedības rindas (ir nepieciešams vismaz viens kritērijs). Jums būs atkārtoti jāizmanto līdzeklis “%s”, lai dzēstais ieraksts būtu atpakaļ virsgrāmatā. +ConfirmDeleteMvtPartial=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) FinanceJournal=Finanšu žurnāls ExpenseReportsJournal=Izdevumu pārskatu žurnāls DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -278,30 +279,31 @@ 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 apskatiet neapstiprināto kustību skaitu mēnesī, un fiskālie gadi jau ir atvērti -OverviewOfMovementsNotValidated=1. solis / Nepārvērtēts kustību pārskats. (Nepieciešams, lai slēgtu fiskālo gadu) -AllMovementsWereRecordedAsValidated=Visas kustības tika reģistrētas kā apstiprinātas -NotAllMovementsCouldBeRecordedAsValidated=Ne visas kustības varēja reģistrēt kā apstiprinātas -ValidateMovements=Apstipriniet kustības +DescClosure=Consult here the number of movements by month not yet validated & locked +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... 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 -MvtNotCorrectlyBalanced=Kustība nav pareizi sabalansēta. Debits = %s | Kredīts = %s +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=Neviens ieraksts žurnālistikai nav +NoNewRecordSaved=Vairs nav pārsūtāmu ierakstu ListOfProductsWithoutAccountingAccount=Produktu saraksts, uz kuriem nav saistīta kāds grāmatvedības konts ChangeBinding=Mainiet saites Accounted=Uzskaitīts virsgrāmatā NotYetAccounted=Vēl nav pārnests uz grāmatvedību ShowTutorial=Rādīt apmācību NotReconciled=Nesaskaņots -WarningRecordWithoutSubledgerAreExcluded=Brīdinājums: visas darbības, kurās nav definēts apakškārtas konts, tiek filtrētas un izslēgtas no šī skata +WarningRecordWithoutSubledgerAreExcluded=Brīdinājums! Visas rindas bez apakšvirsgrāmatas konta tiek filtrētas un izslēgtas no šī skata +AccountRemovedFromCurrentChartOfAccount=Grāmatvedības konts, kas neeksistē pašreizējā kontu plānā ## Admin BindingOptions=Iesiešanas iespējas @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Atspējot saistīšanu un pārsūtīšan 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) ## Export -NotifiedExportDate=Atzīmēt eksportētās rindas kā eksportētas (rindu modificēšana nebūs iespējama) -NotifiedValidationDate=Apstipriniet eksportētos ierakstus (mainīt vai dzēst rindas nebūs iespējams) +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=Validate and Lock the exported entries (same effect than the "Closure" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Datuma apstiprināšana un bloķēšana ConfirmExportFile=Apstiprinājums par grāmatvedības eksporta faila ģenerēšanu? ExportDraftJournal=Eksporta žurnāla projekts Modelcsv=Eksporta modulis @@ -394,6 +397,21 @@ Range=Grāmatvedības konta diapazons Calculated=Aprēķināts Formula=Formula +## Reconcile +Unlettering=Nesamierināties +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 +AccountancyNoUnletteringModified=Neviena nesaskaņošana nav mainīta +AccountancyOneUnletteringModifiedSuccessfully=Viena nesaskaņošana ir veiksmīgi pārveidota +AccountancyUnletteringModifiedSuccessfully=%s nesaskaņošana ir veiksmīgi modificēta + +## Confirm box +ConfirmMassUnlettering=Lielapjoma 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? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Daži obligāti uzstādīšanas soļi nav pabeigti, lūdzu, aizpildiet tos ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) @@ -406,6 +424,10 @@ Binded=Līnijas saistītas ToBind=Rindiņas saistīt UseMenuToSetBindindManualy=Līnijas, kas vēl nav saistītas, izmantojiet izvēlni %s , lai padarītu saistošu manuāli SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Diemžēl šis modulis nav saderīgs ar situāciju rēķinu eksperimentālo līdzekli +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 diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index 94a2b211349..52ab7d36c57 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/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=Drukājiet atsauci un produkta preces periodu PDF formātā +BoldLabelOnPDF=Drukājiet produkta preces etiķeti treknrakstā PDF formātā Foundation=Organizācija Version=Versija Publisher=Izdevējs @@ -109,7 +109,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=Use graphical code (CAPTCHA) on login page and some public pages 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 @@ -477,7 +477,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=Init value for the %s empty barcodes 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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Arī sava e-pasta pakalpojumu sniedzēja SMTP servera izmanto 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. 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=Actual SPF record found (for email %s) : %s ClickToShowDescription=Noklikšķiniet, lai parādītu aprakstu DependsOn=Šim modulim nepieciešams modulis(-i) RequiredBy=Šis modulis nepieciešams modulim (-ļiem) @@ -714,13 +714,14 @@ Permission27=Dzēst komerciālos priekšlikumus Permission28=Eksportēt tirdzniecības priekšlikumus Permission31=Lasīt produktus Permission32=Izveidot / mainīt produktus +Permission33=Read prices products Permission34=Dzēst produktus Permission36=Skatīt/vadīt slēptos produktus Permission38=Eksportēt produktus Permission39=Ignorēt minimālo cenu -Permission41=Lasīt projektus un uzdevumus (kopīgs projekts un projekti, par kuriem es kontaktēju). Var arī ievadīt patērēto laiku man vai manai hierarhijai par piešķirtajiem uzdevumiem (laika kontrolsaraksts) -Permission42=Izveidojiet / modificējiet projektus (kopīgu projektu un projektus, par kuriem esmu kontaktējies). Var arī izveidot uzdevumus un piešķirt lietotājus projektam un uzdevumiem -Permission44=Dzēsiet projektus (kopīgots projekts un projekti, par kuriem es kontaktēju) +Permission41=Lasīt projektus un uzdevumus (dalītos projektus un projektus, kuru kontaktpersona esmu es). +Permission42=Izveidot/pārveidot projektus (koplietojamus projektus un projektus, kuru kontaktpersona esmu es). Var arī piešķirt lietotājus projektiem un uzdevumiem +Permission44=Dzēst projektus (kopīgos projektus un projektus, kuru kontaktpersona esmu es) Permission45=Eksportēt projektus Permission61=Lasīt intervences Permission62=Izveidot / mainīt intervences @@ -739,6 +740,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=Generate the documents sales orders Permission86=Sūtīt klientu pasūtījumus Permission87=Slēgt klientu pasūtījumus Permission88=Atcelt klientu pasūtījumus @@ -766,9 +768,10 @@ Permission122=Izveidot/labot trešās personas, kas saistītas ar lietotāju Permission125=Dzēst trešās personas, kas saistītas ar lietotāju Permission126=Eksportēt trešās puses Permission130=Izveidot/mainīt trešo pušu maksājumu informāciju -Permission141=Lasīt visus projektus un uzdevumus (arī privātus projektus, kuriem es neesmu kontaktpersona) -Permission142=Izveidot / modificēt visus projektus un uzdevumus (arī privātus projektus, kuriem es neesmu kontaktpersona) -Permission144=Dzēst visus projektus un uzdevumus (arī privātus projektus, ar kuriem neesmu sazinājies) +Permission141=Izlasiet visus projektus un uzdevumus (kā arī privātos projektus, kuriem neesmu kontaktpersona) +Permission142=Izveidot/pārveidot visus projektus un uzdevumus (kā arī privātos projektus, kuriem es neesmu kontaktpersona) +Permission144=Dzēst visus projektus un uzdevumus (kā arī privātos projektus, ar kuriem es neesmu kontaktpersona) +Permission145=Var ievadīt man vai manai hierarhijai patērēto laiku piešķirtajiem uzdevumiem (laika kontrolsaraksts) Permission146=Lasīt pakalpojumu sniedzējus Permission147=Lasīt statistiku Permission151=Read direct debit payment orders @@ -784,7 +787,7 @@ Permission167=Eksportēt līgumus Permission171=Lasīt ceļojumus un izdevumus (jūsu un jūsu padotajiem) Permission172=Izveidot/labot ceļojumu un izdevumus Permission173=Dzēst ceļojumus un izdevumus -Permission174=Read all trips and expenses +Permission174=Apskatīt visus ceļojumus un izdevumus Permission178=Eksportēt ceļojumus un izdevumus Permission180=Lasīt piegādātājus Permission181=Lasīt pirkuma pasūtījumus @@ -873,6 +876,7 @@ Permission525=Piekļuves kredīta kalkulators Permission527=Eksportēt kredītus Permission531=Lasīt pakalpojumus Permission532=Izveidot/mainīt pakalpojumus +Permission533=Read prices services Permission534=Dzēst pakalpojumus Permission536=Skatīt/vadīt slēptos pakalpojumus Permission538=Eksportēt pakalpojumus @@ -883,6 +887,9 @@ Permission564=Kredīta pārveduma iegrāmatošana / noraidīšana Permission601=Lasiet uzlīmes Permission602=Izveidojiet / modificējiet uzlīmes Permission609=Dzēst uzlīmes +Permission611=Lasīt variantu atribūtus +Permission612=Izveidot/atjaunināt variantu atribūtus +Permission613=Dzēst variantu atribūtus Permission650=Lasīt materiālu rēķinus Permission651=Izveidot / atjaunināt materiālu rēķinus Permission652=Dzēst materiālu rēķinus @@ -969,6 +976,8 @@ 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 +Permission4031=Izlasiet personisko informāciju +Permission4032=Uzrakstiet personisko informāciju 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Izdevumu pārskats - transporta kategorijas DictionaryExpenseTaxRange=Izdevumu pārskats - diapazons pēc transporta kategorijas DictionaryTransportMode=Intracomm pārskats - transporta veids DictionaryBatchStatus=Produkta partijas / sērijas kvalitātes kontroles statuss +DictionaryAssetDisposalType=Aktīvu atsavināšanas veids TypeOfUnit=Vienības veids SetupSaved=Iestatījumi saglabāti SetupNotSaved=Iestatīšana nav saglabāta @@ -1122,7 +1132,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=A given day in month Offset=Kompensācija AlwaysActive=Vienmēr aktīvs Upgrade=Atjaunināt @@ -1187,7 +1197,7 @@ BankModuleNotActive=Bankas kontu modulis nav ieslēgts ShowBugTrackLink=Rādīt saiti " %s " ShowBugTrackLinkDesc=Turiet tukšu, lai nerādītu šo saiti, izmantojiet vērtību “github” saitei uz projektu Dolibarr vai tieši definējiet URL “https: // ...” Alerts=Brīdinājumi -DelaysOfToleranceBeforeWarning=Kavēšanās, pirms tiek parādīts brīdinājuma brīdinājums par: +DelaysOfToleranceBeforeWarning=Tiek rādīts brīdinājuma brīdinājums... DelaysOfToleranceDesc=Iestatiet aizkavi pirms brīdinājuma ikonas %s parādīšanas ekrānā par novēloto elementu. Delays_MAIN_DELAY_ACTIONS_TODO=Plānotie notikumi (darba kārtības notikumi) nav pabeigti Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekts nav slēgts laikā @@ -1228,6 +1238,7 @@ 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=Trackable security events 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Jūs piespiedāt jaunu tulkojumu tulkošanas tausti TitleNumberOfActivatedModules=Aktivizētie moduļi TotalNumberOfActivatedModules=Aktivizētie moduļi: %s / %s YouMustEnableOneModule=Jums ir jābūt ieslēgtam vismaz 1 modulim +YouMustEnableTranslationOverwriteBefore=Vispirms ir jāiespējo tulkojuma pārrakstīšana, lai varētu aizstāt tulkojumu ClassNotFoundIntoPathWarning=Klase %s nav atrodama PHP ceļā YesInSummer=Jā vasarā OnlyFollowingModulesAreOpenedToExternalUsers=Ņemiet vērā, ka ārējiem lietotājiem ir pieejami tikai šādi moduļi (neatkarīgi no šādu lietotāju atļaujām) un tikai tad, ja tiek piešķirtas atļaujas:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Ūdenszīme uz sagataves rēķiniem (nav ja tukšs) PaymentsNumberingModule=Maksājumu numerācijas modelis 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. ##### Proposals ##### PropalSetup=Commercial priekšlikumi modulis uzstādīšana ProposalsNumberingModules=Komerciālie priekšlikumu numerācijas modeļi @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Lai instalētu vai izveidotu ārēju moduli no lietoju HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Iezīmējiet līnijas krāsu, kad pele iet pāri (izmantojiet 'ffffff', lai nerādītu izcilumu) HighlightLinesChecked=Iezīmējiet līnijas krāsu, kad tā ir pārbaudīta (izmantojiet 'ffffff', lai nerādītu izcilumu) +UseBorderOnTable=Rādīt tabulas kreisās un labās puses apmales BtnActionColor=Darbības pogas krāsa TextBtnActionColor=Darbības pogas teksta krāsa TextTitleColor=Lapas nosaukuma teksta krāsa @@ -1925,7 +1940,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 @@ -1938,7 +1953,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=Ikonas nosaukums dolibarr formātā ('image.png', ja pašreizējā motīvu direktorijā, 'image.png@nom_du_module', ja moduļa direktorijā / img /) +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. @@ -1966,6 +1981,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 @@ -2019,6 +2035,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=Show first sales representative 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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filtrs tīrajai vērtībai (COMPANY_AQUARIUM_ 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 GDPRContact=Datu aizsardzības inspektors (DPO, datu konfidencialitāte vai GDPR kontakts) -GDPRContactDesc=Ja jūs glabājat datus par Eiropas uzņēmumiem / pilsoņiem, varat nosaukt kontaktpersonu, kas ir atbildīga par Vispārējo datu aizsardzības regulu +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 @@ -2048,27 +2065,46 @@ 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=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=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 CollectNow=Savākt tagad -ConfirmCloneEmailCollector=Vai tiešām vēlaties klonēt e-pasta kolekcionāru %s? +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ā dienas kārtības notikums. EmailCollectorConfirmCollectTitle=E-pasts apkopo apstiprinājumu -EmailCollectorConfirmCollect=Vai vēlaties savākt šīs kolekcijas kolekciju tagad? +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 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 +EmailCollectorExampleToCollectJobCandidaturesDesc=Savāciet e-pasta ziņojumus, kas attiecas uz darba piedāvājumiem (jābūt iespējotai Moduļa personāla atlasei). Varat pabeigt šo apkopojumu, ja vēlaties automātiski izveidot kandidatūru darba pieprasījumam. Piezīme. Šajā sākotnējā piemērā tiek ģenerēts kandidatūras nosaukums, ieskaitot e-pastu. +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 iepriekšējās darbības rezultātā, bez trešās puses citādi) +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) CodeLastResult=Jaunākais rezultātu kods NbOfEmailsInInbox=E-pasta ziņojumu skaits avota direktorijā LoadThirdPartyFromName=Ielādējiet trešo personu meklēšanu pakalpojumā %s (tikai ielāde) @@ -2082,14 +2118,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=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=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=Iespējot funkciju, lai pārbaudītu, vai notikumā tiek izmantots resurss +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) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Dzēst e-pasta kolekcionāru ConfirmDeleteEmailCollector=Vai tiešām vēlaties dzēst šo e-pasta kolekcionāru? RecipientEmailsWillBeReplacedWithThisValue=Adresātu e-pasti vienmēr tiks aizstāti ar šo vērtību AtLeastOneDefaultBankAccountMandatory=Jādefinē vismaz 1 noklusējuma bankas konts -RESTRICT_ON_IP=Atļaut piekļuvi tikai dažam resursdatora IP (aizstājējzīme nav atļauta, izmantojiet atstarpi starp vērtībām). Tukši nozīmē, ka ikviens saimnieks var tam piekļūt. +RESTRICT_ON_IP=Atļaut API piekļuvi tikai noteiktiem klientu IP adresēm (aizstājējzīme nav atļauta, izmantojiet atstarpi starp vērtībām). Tukšs nozīmē, ka var piekļūt katrs klients. IPListExample=127.0.0.1 192.168.0.2 [:: 1] BaseOnSabeDavVersion=Balstīts uz bibliotēkas SabreDAV versiju NotAPublicIp=Nav publiskā IP @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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=For Proposals, Orders, Invoices. 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 @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Atspējojiet īkšķi, lai iegūtu dalību DashboardDisableBlockExpenseReport=Izdevumu pārskatiem atspējojiet īkšķi DashboardDisableBlockHoliday=Atspējojiet īkšķi lapām EnabledCondition=Nosacījums, lai lauks būtu iespējots (ja tas nav iespējots, redzamība vienmēr būs izslēgta) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot otro nodokli, jums ir jāiespējo arī pirmais pārdošanas nodoklis -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot trešo nodokli, ir jāiespējo arī pirmā pārdošanas nodoklis +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot otro nodokli, ir jāiespējo arī pirmais tirdzniecības nodoklis +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot trešo nodokli, ir jāiespējo arī pirmais tirdzniecības nodoklis LanguageAndPresentation=Valoda un prezentācija SkinAndColors=Āda un krāsas -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot otro nodokli, jums ir jāiespējo arī pirmais pārdošanas nodoklis -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot trešo nodokli, ir jāiespējo arī pirmā pārdošanas nodoklis +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot otro nodokli, ir jāiespējo arī pirmais tirdzniecības nodoklis +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Ja vēlaties izmantot trešo nodokli, ir jāiespējo arī pirmais tirdzniecības nodoklis PDF_USE_1A=Ģenerējiet PDF formātā PDF/A-1b MissingTranslationForConfKey = Trūkst tulkojuma %s NativeModules=Vietējie moduļi @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Atspējot API atbilžu saspiešanu EachTerminalHasItsOwnCounter=Katrs terminālis izmanto savu skaitītāju. FillAndSaveAccountIdAndSecret=Vispirms aizpildiet un saglabājiet konta ID un noslēpumu PreviousHash=Iepriekšējais hash +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. + +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=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 +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=Dark theme mode +AlwaysDisabled=Always disabled +AccordingToBrowser=According to browser +AlwaysEnabled=Always Enabled +DoesNotWorkWithAllThemes=Will not work with all themes +NoName=Nav vārda +ShowAdvancedOptions= Show advanced options +HideAdvancedoptions= Hide advanced options +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 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/lv_LV/agenda.lang b/htdocs/langs/lv_LV/agenda.lang index 533ec827001..8ef8b4abce7 100644 --- a/htdocs/langs/lv_LV/agenda.lang +++ b/htdocs/langs/lv_LV/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Līgums %s svītrots PropalClosedSignedInDolibarr=Piedāvājumi %s parakstīti PropalClosedRefusedInDolibarr=Piedāvājums %s atteikts PropalValidatedInDolibarr=Priekšlikums %s apstiprināts +PropalBackToDraftInDolibarr=Priekšlikums %s atgriezties uz projekta statusu PropalClassifiedBilledInDolibarr=Priekšlikums %s klasificēts samaksāts InvoiceValidatedInDolibarr=Rēķins %s apstiprināts InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS @@ -66,6 +67,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 +ReceptionClassifyClosedInDolibarr=Reģistratūra %s klasificēta kā slēgta OrderCreatedInDolibarr=Pasūtījums %s izveidots OrderValidatedInDolibarr=Pasūtījums %s pārbaudīts OrderDeliveredInDolibarr=Pasūtījums %s klasificēts piegādāts diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang index b8cdb746603..29553d7e47e 100644 --- a/htdocs/langs/lv_LV/banks.lang +++ b/htdocs/langs/lv_LV/banks.lang @@ -95,11 +95,11 @@ LineRecord=Darījums AddBankRecord=Pievienot ierakstu AddBankRecordLong=Pievienot ierakstu manuāli Conciliated=Saskaņots -ConciliatedBy=Saskaņots ar +ReConciliedBy=Saskaņots ar DateConciliating=Izvērtējiet datumu BankLineConciliated=Ieraksts saskaņots ar bankas kvīti -Reconciled=Saskaņots -NotReconciled=Nesaskaņot +BankLineReconciled=Saskaņots +BankLineNotReconciled=Nav samierinājies CustomerInvoicePayment=Klienta maksājums SupplierInvoicePayment=Piegādātāja maksājums SubscriptionPayment=Abonēšanas maksa @@ -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 kases kontrole -NewCashFence=Jaunas kases atvēršana vai aizvēršana +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 @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Ja dažos bankas kontos neveicat bankas saska NoBankAccountDefined=Nav noteikts bankas konts NoRecordFoundIBankcAccount=Bankas kontā nav atrasts neviens ieraksts. Parasti tas notiek, ja ieraksts ir manuāli izdzēsts no bankas konta darījumu saraksta (piemēram, bankas konta saskaņošanas laikā). Vēl viens iemesls ir tas, ka maksājums tika reģistrēts, kad tika atspējots modulis "%s". AlreadyOneBankAccount=Viens bankas konts jau ir definēts +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA pārvedums: “Maksājuma veids” “Kredīta pārveduma” līmenī +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Ģenerējot SEPA XML failu kredīta pārvedumiem, sadaļu "PaymentTypeInformation" tagad var ievietot sadaļā "CreditTransferTransactionInformation" (nevis sadaļas "Maksājums"). Mēs stingri iesakām atstāt šo atzīmi neatzīmētu, lai Maksājuma veida informāciju ievietotu Maksājuma līmenī, jo ne visas bankas to pieņems CreditTransferTransactionInformation līmenī. Sazinieties ar savu banku, pirms ievietojat PaymentTypeInformation CreditTransferTransactionInformation līmenī. +ToCreateRelatedRecordIntoBank=Lai izveidotu trūkstošo saistīto bankas ierakstu diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index c1c3116e49a..f4a726e5a99 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Maksājumu atskaites PaymentsAlreadyDone=Jau samaksāts PaymentsBackAlreadyDone=Jau veiktas atmaksas PaymentRule=Maksājuma noteikums -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Apmaksas veids +PaymentModes=Maksājuma metodes +DefaultPaymentMode=Noklusējuma maksājuma veids DefaultBankAccount=Noklusējuma bankas konts -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Maksājuma veids (id) +CodePaymentMode=Maksājuma veids (kods) +LabelPaymentMode=Maksājuma veids (etiķete) +PaymentModeShort=Apmaksas veids PaymentTerm=Maksājuma termiņš PaymentConditions=Maksājuma nosacījumi PaymentConditionsShort=Maksājuma nosacījumi @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Kļūda, pareizs rēķins, jābūt ar negatīvu ErrorInvoiceOfThisTypeMustBePositive=Kļūda, šāda veida rēķinā jābūt summai, kurā nav norādīta pozitīva nodokļu summa (vai nulles vērtība) ErrorCantCancelIfReplacementInvoiceNotValidated=Kļūda, nevar atcelt rēķinu, kas ir aizstāts ar citu rēķina, kas vēl ir projekta stadijā ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Šī daļa jau ir izmantota, tāpēc atlaides sērijas nevar noņemt. +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 ActionsOnBill=Pasākumi attiecībā uz rēķinu @@ -282,6 +283,8 @@ RecurringInvoices=Atkārtoti rēķini RecurringInvoice=Periodisks rēķins RepeatableInvoice=Rēķina paraugs RepeatableInvoices=Rēķinu paraugs +RecurringInvoicesJob=Atkārtotu rēķinu ģenerēšana (pārdošanas rēķini) +RecurringSupplierInvoicesJob=Periodisku rēķinu ģenerēšana (pirkuma rēķini) Repeatable=Sagateve Repeatables=Sagataves ChangeIntoRepeatableInvoice=Pārveidot par parauga rēķinu @@ -426,10 +429,19 @@ PaymentConditionShort14D=14 dienas PaymentCondition14D=14 dienas PaymentConditionShort14DENDMONTH=Mēneša 14 dienas PaymentCondition14DENDMONTH=14 dienu laikā pēc mēneša beigām +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozīts +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozīts, atlikums pēc piegādes FixAmount=Fiksēta summa - 1 rinda ar etiķeti '%s' VarAmount=Mainīgais apjoms (%% kop.) VarAmountOneLine=Mainīgā summa (%% kopā) - 1 rinda ar etiķeti '%s' VarAmountAllLines=Mainīga summa (%% tot.) - visas līnijas no sākuma +DepositPercent=Depozīts %% +DepositGenerationPermittedByThePaymentTermsSelected=To pieļauj izvēlētie maksāšanas noteikumi +GenerateDeposit=Ģenerējiet %s%% depozīta rēķinu +ValidateGeneratedDeposit=Apstipriniet izveidoto depozītu +DepositGenerated=Izveidots depozīts +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Jūs varat tikai automātiski ģenerēt depozītu no priekšlikuma vai pasūtījuma +ErrorPaymentConditionsNotEligibleToDepositCreation=Izvēlētie maksājuma nosacījumi nav piemēroti automātiskai depozīta ģenerēšanai # PaymentType PaymentTypeVIR=Bankas pārskaitījums PaymentTypeShortVIR=Bankas pārskaitījums @@ -482,6 +494,7 @@ PaymentByChequeOrderedToShort=Pārbaudiet maksājumus (t.sk. nodokļus) SendTo=nosūtīts PaymentByTransferOnThisBankAccount=Maksājums ar pārskaitījumu uz sekojošo bankas kontu VATIsNotUsedForInvoice=* Nav piemērojams PVN art-293B ar CGI +VATIsNotUsedForInvoiceAsso=* Nepiemēro CGI art-261-7 LawApplicationPart1=Piemērojot likuma 80,335 no 12/05/80 LawApplicationPart2=preces paliek īpašumā LawApplicationPart3=pārdevējs, kamēr nav pilnībā samaksāts @@ -599,7 +612,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Piegādātāja rēķins ir izdzēsts UnitPriceXQtyLessDiscount=Vienības cena x Daudzums - Atlaide CustomersInvoicesArea=Klientu norēķinu zona SupplierInvoicesArea=Piegādātāja norēķinu zona -FacParentLine=Rēķinu rindas vecāks SituationTotalRayToRest=Atlikušais maksājums bez nodokļa PDFSituationTitle=Situācija Nr. %d SituationTotalProgress=Kopējais progress %d %% @@ -607,3 +619,5 @@ SearchUnpaidInvoicesWithDueDate=Meklēt neapmaksātos rēķinos ar termiņu = %s NoPaymentAvailable=Nav pieejams maksājums par %s PaymentRegisteredAndInvoiceSetToPaid=Maksājums reģistrēts un rēķins %s iestatīts kā apmaksāts 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) diff --git a/htdocs/langs/lv_LV/boxes.lang b/htdocs/langs/lv_LV/boxes.lang index 2615d12ce7b..ea6e1fe36aa 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 diff --git a/htdocs/langs/lv_LV/cashdesk.lang b/htdocs/langs/lv_LV/cashdesk.lang index c9003a48888..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=Kases slēgšana -CashFenceDone=Perioda kases slēgšana +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=Atverot POS, atveriet uznirstošo logu “Kontrolēt skaidru naudu” -CloseCashFence=Aizveriet kases kontroli +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 @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=Pievienojiet pogu "Drukāt bez detaļām". PrintWithoutDetailsLabelDefault=Līnijas etiķete pēc noklusējuma, drukājot bez detaļām 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 41283266e33..2da314699a5 100644 --- a/htdocs/langs/lv_LV/categories.lang +++ b/htdocs/langs/lv_LV/categories.lang @@ -90,10 +90,12 @@ CategorieRecursivHelp=Ja opcija ir ieslēgta, pievienojot produktu apakškategor AddProductServiceIntoCategory=Add the following product/service AddCustomerIntoCategory=Piešķirt kategoriju klientam AddSupplierIntoCategory=Piešķirt kategoriju piegādātājam +AssignCategoryTo=Piešķirt kategoriju 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 diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang index 60de56f60d6..c151320b07d 100644 --- a/htdocs/langs/lv_LV/companies.lang +++ b/htdocs/langs/lv_LV/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Apzināšanas lauks IdThirdParty=Trešās personas Id IdCompany=Uzņēmuma Id IdContact=Kontaktu ID +ThirdPartyAddress=Trešās puses adrese ThirdPartyContacts=Trešās puses kontakti ThirdPartyContact=Trešās puses kontaktpersona/adrese Company=Uzņēmums @@ -51,19 +52,22 @@ CivilityCode=Pieklājība kods RegisteredOffice=Juridiskā adrese Lastname=Uzvārds Firstname=Vārds +RefEmployee=Darbinieka atsauce +NationalRegistrationNumber=Valsts reģistrācijas numurs PostOrFunction=Ieņemamais amats UserTitle=Virsraksts 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Pārdevēja kods nav derīgs CustomerCodeModel=Klienta koda modelis SupplierCodeModel=Pārdevēja koda modelis Gencod=Svītrkods +GencodBuyPrice=Svītrkods cenas ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,15 +164,15 @@ 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=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=izveides dekrēta Nr +ProfId4ShortCM=Depozīta sertifikāts Nr. +ProfId5ShortCM=Citi ProfId6ShortCM=- ProfId1CO=Prof ID 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Trešo personu saraksts ShowCompany=Trešā ballīte ShowContact=Kontakts-adrese ContactsAllShort=Visi (Bez filtra) -ContactType=Kontakta veids +ContactType=Kontaktpersonas loma ContactForOrders=Pasutījumu kontakti ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Piedāvājumu kontakti diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang index b6e4d087006..6cb9919eb81 100644 --- a/htdocs/langs/lv_LV/compta.lang +++ b/htdocs/langs/lv_LV/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Vai tiešām vēlaties klasificēt šo algas karti kā apmaksā DeleteSocialContribution=Dzēst sociālo vai fiskālo nodokļu maksājumu DeleteVAT=Dzēst PVN deklarāciju DeleteSalary=Dzēst algas karti +DeleteVariousPayment=Dzēst dažādus maksājumus ConfirmDeleteSocialContribution=Vai tiešām vēlaties dzēst šo sociālā / fiskālā nodokļa maksājumu? ConfirmDeleteVAT=Vai tiešām vēlaties dzēst šo PVN deklarāciju? ConfirmDeleteSalary=Vai tiešām vēlaties dzēst šo algu? +ConfirmDeleteVariousPayment=Vai tiešām vēlaties dzēst šo dažādo maksājumu? ExportDataset_tax_1=Sociālie un fiskālie nodokļi un maksājumi CalcModeVATDebt=Mode %sVAT par saistību accounting%s. CalcModeVATEngagement=Mode %sVAT par ienākumu-expense%sS. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Par pirkuma apgrozījumu izrakstīts rēķins ReportPurchaseTurnoverCollected=Apkopots pirkumu apgrozījums IncludeVarpaysInResults = Pārskatos iekļaujiet dažādus maksājumus IncludeLoansInResults = Iekļaujiet pārskatos aizdevumus -InvoiceLate30Days = Novēloti rēķini (> 30 dienas) -InvoiceLate15Days = Novēloti rēķini (15–30 dienas) -InvoiceLateMinus15Days = Nokavēti rēķini (< 15 dienas) +InvoiceLate30Days = Vēlu (> 30 dienas) +InvoiceLate15Days = Vēlu (15–30 dienas) +InvoiceLateMinus15Days = Vēlu (< 15 dienas) InvoiceNotLate = Jāsavāc (< 15 dienas) InvoiceNotLate15Days = Jāsavāc (15 līdz 30 dienas) InvoiceNotLate30Days = Jāsavāc (> 30 dienas) @@ -298,3 +300,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/errors.lang b/htdocs/langs/lv_LV/errors.lang index 58997394f1d..7a0e8cc365b 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=E-pasts %s šķiet nepareizs (domēnam nav derīga MX ieraksta) ErrorBadUrl=URL %s nav pareizs ErrorBadValueForParamNotAString=Jūsu parametra nepareiza vērtība. Tas parasti parādās, ja trūkst tulkojuma. ErrorRefAlreadyExists=Atsauce %s jau pastāv. +ErrorTitleAlreadyExists=Nosaukums %s jau pastāv. ErrorLoginAlreadyExists=Lietotājs %s jau pastāv. ErrorGroupAlreadyExists=Grupa %s jau pastāv. ErrorEmailAlreadyExists=E-pasts %s jau pastāv. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Jau pastāv cits fails ar nosaukumu %s . ErrorPartialFile=Serveris failu nav saņemis pilnīgi. ErrorNoTmpDir=Pagaidu direktorija %s neeksistē. ErrorUploadBlockedByAddon=Augšupielāde bloķēja ar PHP/Apache spraudni. -ErrorFileSizeTooLarge=Faila izmērs ir pārāk liels. +ErrorFileSizeTooLarge=Faila izmērs ir pārāk liels vai fails nav nodrošināts. ErrorFieldTooLong=Lauks %s ir pārāk garš. ErrorSizeTooLongForIntType=Izmērs ir pārāk garš int tipam (%s cipari maksimums) ErrorSizeTooLongForVarcharType=Izmērs ir pārāk garš (%s simboli maksimums) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=atrastas %s kļūdas @@ -269,19 +271,31 @@ 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=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary 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=Error, request too large +ErrorRequestTooLarge=Kļūda, pieprasījums ir pārāk liels +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 +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=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=Failed to write in temp directory +ErrorQuantityIsLimitedTo=Quantity is limited to %s # 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=Click here to setup main parameters 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. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Vērtība nav derīga diff --git a/htdocs/langs/lv_LV/eventorganization.lang b/htdocs/langs/lv_LV/eventorganization.lang index 3afd7a79508..cff9538f3ca 100644 --- a/htdocs/langs/lv_LV/eventorganization.lang +++ b/htdocs/langs/lv_LV/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Pasākuma organizēšana Settings=Iestatījumi EventOrganizationSetupPage = Pasākuma organizācijas iestatīšanas lapa EVENTORGANIZATION_TASK_LABEL = Uzdevumu iezīme, kas jāizveido automātiski, kad projekts ir apstiprināts -EVENTORGANIZATION_TASK_LABELTooltip = Apstiprinot organizētu notikumu, dažus uzdevumus var automātiski izveidot projektā

    Piemēram:
    Sūtīt konferences zvanu
    Sūtīt zvanu stendam
    A032fccfz19bz0 A032fccfz19bz002 Saņemt konferences zvanu03 atgādināt par notikumu runātājiem
    Nosūtīt atgādinājumu par notikumu Booth hoster
    Nosūtīt atgādinājumu par pasākumu dalībniekiem +EVENTORGANIZATION_TASK_LABELTooltip = Kad jūs apstiprināt pasākumu organizēt, daži uzdevumi var tikt automātiski izveidots projekta

    Piemēram:
    Sūtīt Aicinājums konferencēm
    Nosūtīt Zvanīt, Kabīnes
    apstiprināt ierosinājumiem konferenču
    Apstiprināt pieteikumu Būdiņu
    Atvērt abonementus uz pasākuma apmeklētājiem
    Sūtīt atgādinājumu par notikumu runātājiem
    Nosūtīt atgādinājumu par pasākumu stenda vadītājiem
    Nosūtīt atgādinājumu par pasākumu apmeklētājiem +EVENTORGANIZATION_TASK_LABELTooltip2=Ja uzdevumi nav jāizveido automātiski, atstājiet tukšu. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kategorija, ko pievienot trešajām pusēm, tiek automātiski izveidota, kad kāds iesaka konferenci EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Kategorija, ko pievienot trešajām pusēm, tiek automātiski izveidota, kad viņi iesaka stendu EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = E-pasta ziņojuma veidne, kas jānosūta pēc konferences ieteikuma saņemšanas. @@ -165,3 +166,4 @@ EmailCompanyForInvoice=Uzņēmuma e -pasts (rēķinam, ja atšķiras no dalībni 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 NoPublicActionsAllowedForThisEvent=Šajā pasākumā neviena publiska darbība nav pieejama sabiedrībai +MaxNbOfAttendees=Maksimālais dalībnieku skaits diff --git a/htdocs/langs/lv_LV/exports.lang b/htdocs/langs/lv_LV/exports.lang index 9bfbffaf5b7..3268fd7cf15 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=Lejupielādējiet veidnes failu ar lauka satura informāciju -StarAreMandatory=* ir obligāti aizpildāmi lauki +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 kolonnas %s , tiks izmantota, lai atrastu izmantojamā vecākobjekta ID (tātad objektam a0ecb2ecz07f4 ir7f fails, kas ir7 ref.7 avota fails7.7fz0 a0ecb2ec87f4). +DataComeFromIdFoundFromCodeId=Kods, kas nāk no avota faila kolonnas %s , tiks izmantots, lai atrastu izmantojamā vecākobjekta ID (tātad kodam no avota faila ir jābūt vārdnīcā a0aee8336 a0837f2fzf79037f49fz07f49fz07f49fzfz07fzfz07f49fz17fzfz07f49fz07fzfz07fzfz07fzfz07fzfz07fzfz07fzfz07f49fz07fzfz07fzfz07fzfz07fzfz07fzfz07f49fz07f49fz07fzfz07fzfz07f49fz07f49fz0. Ņ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ā: @@ -135,3 +137,9 @@ NbInsert=Ievietoto līniju skaits: %s NbUpdate=Atjaunināto līniju 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..951c5184a20 100644 --- a/htdocs/langs/lv_LV/holiday.lang +++ b/htdocs/langs/lv_LV/holiday.lang @@ -134,6 +134,6 @@ 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 diff --git a/htdocs/langs/lv_LV/hrm.lang b/htdocs/langs/lv_LV/hrm.lang index 24727d83443..da441146c33 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 @@ -70,12 +70,22 @@ 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 HowManyUserWithThisMaxNote=Lietotāju skaits ar šo rangu HighestRank=Augstākais rangs SkillComparison=Prasmju salīdzinājums +ActionsOnJob=Notikumi par šo darbu +VacantPosition=darba vakance +VacantCheckboxHelper=Atzīmējot šo opciju, tiks parādītas neaizpildītas vietas (vakances) +SaveAddSkill = Pievienotas prasmes +SaveLevelSkill = Prasmju līmenis ir saglabāts +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 diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang index 97b89006a76..a4c2ba6519b 100644 --- a/htdocs/langs/lv_LV/install.lang +++ b/htdocs/langs/lv_LV/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Jūsu PHP maksimālā sesijas atmiņa ir iestatīts uz %s. Ta PHPMemoryTooLow=Jūsu PHP max sesijas atmiņa ir iestatīta uz %s baitiem. Tas ir pārāk zems. Mainiet php.ini, lai iestatītu memory_limit parametru vismaz %s baitiem. Recheck=Noklikšķiniet šeit, lai iegūtu sīkāku pārbaudi ErrorPHPDoesNotSupportSessions=Jūsu PHP instalācija neatbalsta sesijas. Šī funkcija ir nepieciešama, lai Dolibarr darbotos. Pārbaudiet sesiju direktorijas PHP iestatījumus un atļaujas. -ErrorPHPDoesNotSupportGD=Jūsu PHP instalācija neatbalsta GD grafiskās funkcijas. Nebūs pieejami grafiki. -ErrorPHPDoesNotSupportCurl=Jūsu PHP instalācija neatbalsta Curl. -ErrorPHPDoesNotSupportCalendar=Jūsu PHP instalācija neatbalsta php kalendāra paplašinājumus. -ErrorPHPDoesNotSupportUTF8=Jūsu PHP instalācija neatbalsta UTF8 funkcijas. Dolibarr nevar darboties pareizi. Atrisiniet to pirms Dolibarr instalēšanas. -ErrorPHPDoesNotSupportIntl=Jūsu PHP instalācija neatbalsta Intl funkcijas. -ErrorPHPDoesNotSupportMbstring=Jūsu PHP instalācija neatbalsta mbstring funkcijas. -ErrorPHPDoesNotSupportxDebug=Jūsu PHP instalācija neatbalsta paplašināšanas atkļūdošanas funkcijas. ErrorPHPDoesNotSupport=Jūsu PHP instalācija neatbalsta %s funkcijas. ErrorDirDoesNotExists=Katalogs %s neeksistē. ErrorGoBackAndCorrectParameters=Atgriezieties un pārbaudiet/labojiet parametrus. @@ -30,7 +24,8 @@ 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ē. IfDatabaseNotExistsGoBackAndUncheckCreate=Ja datubāze neeksistē, atgriezieties un atzīmējiet opciju "Izveidot datubāzi". diff --git a/htdocs/langs/lv_LV/interventions.lang b/htdocs/langs/lv_LV/interventions.lang index 1ef227d22b7..87563a86b0e 100644 --- a/htdocs/langs/lv_LV/interventions.lang +++ b/htdocs/langs/lv_LV/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Intervences paraugs ToCreateAPredefinedIntervention=Lai izveidotu iepriekš noteiktu vai atkārtotu intervenci, izveidojiet kopēju intervenci un pārveidojiet to par intervences veidni ConfirmReopenIntervention=Vai tiešām vēlaties atvērt iejaukšanos %s ? GenerateInter=Ģenerēt iejaukšanos +FichinterNoContractLinked=Intervence %s ir izveidota bez saistīta līguma. +ErrorFicheinterCompanyDoesNotExist=Uzņēmums neeksistē. Intervence nav izveidota. diff --git a/htdocs/langs/lv_LV/knowledgemanagement.lang b/htdocs/langs/lv_LV/knowledgemanagement.lang index 007279c1986..47f7f963f99 100644 --- a/htdocs/langs/lv_LV/knowledgemanagement.lang +++ b/htdocs/langs/lv_LV/knowledgemanagement.lang @@ -46,7 +46,7 @@ KnowledgeRecords = Raksti KnowledgeRecord = Raksts KnowledgeRecordExtraFields = Raksta paplašinājumi GroupOfTicket=Biļešu grupa -YouCanLinkArticleToATicketCategory=Rakstu var saistīt ar biļešu grupu (tāpēc raksts tiks ieteikts jauno biļešu kvalifikācijas iegūšanas laikā) +YouCanLinkArticleToATicketCategory=You can link the article to a ticket group (so the article will be highlighted on any tickets in this group) SuggestedForTicketsInGroup=Ieteicams biļetēm, kad grupa ir SetObsolete=Iestatīt kā novecojušu diff --git a/htdocs/langs/lv_LV/languages.lang b/htdocs/langs/lv_LV/languages.lang index 077ff51c375..0c7107b8bf7 100644 --- a/htdocs/langs/lv_LV/languages.lang +++ b/htdocs/langs/lv_LV/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Etiopietis Language_ar_AR=Arābu Language_ar_DZ=arābu (Alžīrija) Language_ar_EG=Arābu (Ēģipte) +Language_ar_JO=arābu (Jordānija) Language_ar_MA=Arābu (Maroka) Language_ar_SA=Arābu Language_ar_TN=Arābu (Tunisija) @@ -12,9 +13,11 @@ Language_az_AZ=Azerbaidžāņi Language_bn_BD=Bengali Language_bn_IN=Bengāļu (Indija) Language_bg_BG=Bulgāru +Language_bo_CN=tibetietis Language_bs_BA=Bosniešu Language_ca_ES=Katalāņu Language_cs_CZ=Čehu +Language_cy_GB=velsiešu Language_da_DA=Dāņu Language_da_DK=Dāņu Language_de_DE=Vācu @@ -22,6 +25,7 @@ Language_de_AT=Vācu (Austrija) Language_de_CH=Vācu (Šveice) Language_el_GR=Grieķu Language_el_CY=Grieķu (Kipra) +Language_en_AE=angļu (Apvienotie Arābu Emirāti) Language_en_AU=Angļu (Austrālija) Language_en_CA=Angļu (Kanāda) Language_en_GB=Angļu (Apvienotā Karaliste) @@ -36,6 +40,7 @@ Language_es_AR=Spāņu (Argentīna) Language_es_BO=Spāņu (Bolīvija) Language_es_CL=Spāņu (Ķīle) Language_es_CO=Spāņu (Kolumbija) +Language_es_CR=spāņu (Kostarika) Language_es_DO=Spāņu (Dominikānas Republika) Language_es_EC=Spāņu (Ekvadora) Language_es_GT=Spāņu (Gvatemala) @@ -83,18 +88,21 @@ Language_lt_LT=Lietuviešu Language_lv_LV=Latviešu Language_mk_MK=Maķedoniešu Language_mn_MN=Mongoļu +Language_my_MM=birmietis Language_nb_NO=Norvēģu (bukmols) Language_ne_NP=Nepālietis Language_nl_BE=Holandiešu (Beļģijas) Language_nl_NL=Holandiešu Language_pl_PL=Poļu Language_pt_AO=Portugāļu (Angola) +Language_pt_MZ=portugāļu (Mozambika) Language_pt_BR=Portugāļu (Brazīlija) Language_pt_PT=Portugāļu Language_ro_MD=Rumāņu (Moldāvija) Language_ro_RO=Rumāņu Language_ru_RU=Krievu Language_ru_UA=Krievu (Ukraina) +Language_ta_IN=tamilu Language_tg_TJ=Tadžiku Language_tr_TR=Turku Language_sl_SI=Slovēņu @@ -106,6 +114,7 @@ Language_sr_RS=Serbu Language_sw_SW=Kiswahili Language_th_TH=Thai Language_uk_UA=Ukraiņu +Language_ur_PK=urdu Language_uz_UZ=Uzbeku Language_vi_VN=Vjetnamiešu Language_zh_CN=Ķīniešu diff --git a/htdocs/langs/lv_LV/loan.lang b/htdocs/langs/lv_LV/loan.lang index 8063c52b091..24ac9a01d8f 100644 --- a/htdocs/langs/lv_LV/loan.lang +++ b/htdocs/langs/lv_LV/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=Finanšu saistības InterestAmount=Interese CapitalRemain=Kapitāls paliek TermPaidAllreadyPaid = Šis termiņš jau ir samaksāts -CantUseScheduleWithLoanStartedToPaid = Nevar izmantot plānotāju aizdevumam ar sāktu maksājumu +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Jūs nevarat mainīt interesi, ja izmantojat grafiku # Admin ConfigLoan=Configuration of the module loan diff --git a/htdocs/langs/lv_LV/mails.lang b/htdocs/langs/lv_LV/mails.lang index 6afe2eb584f..4d01ceeecac 100644 --- a/htdocs/langs/lv_LV/mails.lang +++ b/htdocs/langs/lv_LV/mails.lang @@ -178,3 +178,4 @@ IsAnAnswer=Vai ir atbilde uz sākotnējo e-pastu RecordCreatedByEmailCollector=Ierakstu izveidojis e-pasta savācējs %s no e-pasta %s DefaultBlacklistMailingStatus=Lauka %s noklusējuma vērtība, veidojot jaunu kontaktpersonu DefaultStatusEmptyMandatory=Tukšs, bet obligāts +WarningLimitSendByDay=BRĪDINĀJUMS. Jūsu instances iestatīšana vai līgums ierobežo jūsu e-pasta ziņojumu skaitu dienā līdz %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 127cfdc0446..3613aa3e808 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=, @@ -244,6 +250,7 @@ Designation=Apraksts DescriptionOfLine=Līnijas apraksts DateOfLine=Līnijas datums DurationOfLine=Līnijas ilgums +ParentLine=Vecāka līnijas ID Model=Doc veidne DefaultModel=Noklusējuma doc veidne Action=Notikums @@ -344,7 +351,7 @@ KiloBytes=Kilobaiti MegaBytes=Megabaiti GigaBytes=Gigabaiti TeraBytes=Terabaiti -UserAuthor=Apkrāpts ar +UserAuthor=Izveidojis UserModif=Atjaunināja b=b. Kb=Kb @@ -517,6 +524,7 @@ or=vai Other=Cits Others=Citi OtherInformations=Cita informācija +Workflow=Darba plūsma Quantity=Daudzums Qty=Daudz ChangedBy=Labojis @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Pievienotie faili un dokumenti JoinMainDoc=Pievienojieties galvenajam dokumentam +JoinMainDocOrLastGenerated=Nosūtiet galveno dokumentu vai pēdējo ģenerēto dokumentu, ja tas nav atrasts DateFormatYYYYMM=MM.YYYY DateFormatYYYYMMDD=DD.MM.YYYY DateFormatYYYYMMDDHHMM=DD.MM.YYYY HH:SS @@ -709,6 +718,7 @@ FeatureDisabled=Funkcija bloķēta MoveBox=Pārvietot logrīku Offered=Piedāvāts NotEnoughPermissions=Jums nav atļauta šī darbība +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Sesijas nosaukums Method=Metode Receive=Saņemt @@ -1164,3 +1174,16 @@ NotClosedYet=Vēl nav slēgts ClearSignature=Atiestatīt parakstu CanceledHidden=Atcelts paslēpts CanceledShown=Parādīts atcelts +Terminate=Pārtraukt +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=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=Created by Email collector +CreatedByPublicPortal=Created from Public portal diff --git a/htdocs/langs/lv_LV/members.lang b/htdocs/langs/lv_LV/members.lang index 45c9c16e721..a1bb699573b 100644 --- a/htdocs/langs/lv_LV/members.lang +++ b/htdocs/langs/lv_LV/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Vēl viens dalībnieks (nosaukums: manuālai izstrādei ir pieejama šeit . -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=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, kā arī API 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=Jauna vārdnīca ModuleKey=Moduļa atslēga ObjectKey=Objekta atslēga +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) @@ -52,7 +55,7 @@ LanguageFile=Valoda ObjectProperties=Objekta rekvizīti 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 = Iestatiet datubāzi NOT NULL. -1 = Atļaut nulles vērtības un spēka vērtību NULL, ja tukšs ('' vai 0). +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) SearchAll=Lietots, lai "meklētu visu" DatabaseIndex=Datubāzes indekss FileAlreadyExists=Fails %s jau eksistē @@ -94,7 +97,7 @@ LanguageDefDesc=Ievadiet šos failus, visu valodas faila atslēgu un tulkojumu. MenusDefDesc=Šeit norādiet savas moduļa nodrošinātās izvēlnes DictionariesDefDesc=Šeit definējiet vārdnīcas, kuras nodrošina jūsu modulis PermissionsDefDesc=Šeit definējiet jaunās atļaujas, ko sniedz jūsu modulis -MenusDefDescTooltip=Jūsu moduļa / lietojumprogrammas piedāvātās izvēlnes ir definētas masīva $ this-> izvēlnēs moduļa deskriptora failā. Šo failu var rediģēt manuāli vai izmantot iegulto redaktoru.

    Piezīme. Kad definēts (un modulis atkārtoti aktivizēts), izvēlnes ir redzamas arī izvēlnes redaktorā, kas pieejams administratora lietotājiem %s. +MenusDefDescTooltip=Jūsu moduļa/lietojumprogrammas nodrošinātās izvēlnes ir definētas masīvā $this->menus moduļa deskriptora failā. Varat manuāli rediģēt šo failu vai izmantot iegulto redaktoru.

    Piezīme. Pēc definēšanas (un moduļa atkārtotas aktivizēšanas) izvēlnes ir redzamas arī izvēlņu redaktorā, kas pieejams administratora lietotājiem vietnē %s. DictionariesDefDescTooltip=Jūsu moduļa / lietojumprogrammas piedāvātās vārdnīcas tiek definētas masīvā $ this-> vārdnīcas moduļa deskriptora failā. Šo failu var rediģēt manuāli vai izmantot iegulto redaktoru.

    Piezīme. Pēc definēšanas (un moduļa atkārtotas aktivizēšanas) vārdnīcas ir redzamas arī iestatīšanas apgabalā administratora lietotājiem vietnē %s. PermissionsDefDescTooltip=Jūsu moduļa / lietojumprogrammas piešķirtās atļaujas ir definētas masīva $ this-> tiesību elementos moduļa deskriptora failā. Šo failu var rediģēt manuāli vai izmantot iegulto redaktoru.

    Piezīme. Pēc definīcijas (un moduļa atkārtotas aktivizēšanas) atļaujas ir redzamas noklusējuma atļauju iestatījumā %s. HooksDefDesc=Modu deskriptorā module_parts ['āķi'] definējiet āķu kontekstu, kuru vēlaties pārvaldīt (konteksta sarakstu var atrast, veicot meklēšanu ar initHooks ('galvenajā kodā).
    Rediģējiet āķa failu, lai pievienotu savu āķa funkciju kodu (kontaktu funkcijas var atrast, veicot meklēšanu ar kodu executeHooks '). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Iznīcināt tabulu, ja tā ir tukša) TableDoesNotExists=Tabula %s neeksistē TableDropped=Tabula %s dzēsta InitStructureFromExistingTable=Veidojiet esošās tabulas struktūras masīva virkni -UseAboutPage=Atspējot par lapu +UseAboutPage=Neģenerēj lapu Par UseDocFolder=Atspējot dokumentācijas mapi UseSpecificReadme=Izmantot īpašu IzlasiMani ContentOfREADMECustomized=Piezīme: faila README.md saturs ir aizstāts ar īpašo vērtību, kas definēta ModuleBuilder iestatīšanā. @@ -127,9 +130,9 @@ 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 jāģenerē automātiski -IncludeRefGenerationHelp=Atzīmējiet šo, ja vēlaties iekļaut kodu, lai automātiski pārvaldītu atsauces ģenerēšanu -IncludeDocGeneration=Es gribu no objekta ģenerēt dažus dokumentus +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 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ņā KeyForTooltip=Rīka padoma atslēga @@ -138,10 +141,16 @@ 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: reliapath / to / classfile.class.php [: 1 [: filter]] ('1' nozīmē mēs pievienojam pogu + pēc kombināta, lai izveidotu ierakstu; “filtrs” var būt “status = 1 UN fk_user = __USER_ID UN entītija (piemēram, __SHARED_ENTITIES__)”. +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. 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=Ievietojiet 1, ja šis lauks jāapstiprina ar $ this-> validateField () vai 0, ja nepieciešama validācija +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. +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 diff --git a/htdocs/langs/lv_LV/mrp.lang b/htdocs/langs/lv_LV/mrp.lang index 0c06f88010e..d0a3d3af907 100644 --- a/htdocs/langs/lv_LV/mrp.lang +++ b/htdocs/langs/lv_LV/mrp.lang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=Lai izjauktu daudzumu %s ConfirmValidateMo=Vai tiešām vēlaties apstiprināt šo ražošanas pasūtījumu? ConfirmProductionDesc=Noklikšķinot uz “%s”, jūs apstiprināsit noteikto daudzumu patēriņu un / vai ražošanu. Tas arī atjauninās krājumus un reģistrēs krājumu kustību. ProductionForRef=%s ražošana +CancelProductionForRef=Produkta krājumu samazināšanas atcelšana produktam %s +TooltipDeleteAndRevertStockMovement=Dzēst līniju un atjaunot krājumu kustību AutoCloseMO=Automātiski aizveriet ražošanas pasūtījumu, ja ir sasniegti patērējamie un saražotie daudzumi NoStockChangeOnServices=Pakalpojumu krājumi nemainās ProductQtyToConsumeByMO=Produkta daudzums, ko vēl vajadzētu patērēt atvērtā MO @@ -107,3 +109,6 @@ 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=Ģenerēt Child Mo +ParentMo=MO Vecāks +MOChild=MO bērns diff --git a/htdocs/langs/lv_LV/oauth.lang b/htdocs/langs/lv_LV/oauth.lang index ba808ac55e7..9e5967fbb0f 100644 --- a/htdocs/langs/lv_LV/oauth.lang +++ b/htdocs/langs/lv_LV/oauth.lang @@ -9,12 +9,13 @@ 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 +RequestAccess=Noklikšķiniet šeit, lai pieprasītu/atjaunotu piekļuvi un saņemtu jaunu pilnvaru DeleteAccess=Noklikšķiniet šeit, lai izdzē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 +24,13 @@ 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 diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang index 610a68b53dd..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 @@ -68,6 +69,8 @@ CreateOrder=Izveidot pasūtījumu RefuseOrder=Atteikt pasūtījumu ApproveOrder=Apstiprināt pasūtījumu Approve2Order=Approve order (second level) +UserApproval=Lietotājs apstiprināšanai +UserApproval2=Lietotājs apstiprināšanai (otrais līmenis) ValidateOrder=Apstiprināt pasūtījumu UnvalidateOrder=Neapstiprināts pasūtījums DeleteOrder=Dzēst pasūtījumu @@ -102,6 +105,8 @@ ConfirmCancelOrder=Vai esat pārliecināts, ka vēlaties atcelt šo pasūtījumu ConfirmMakeOrder=Vai tiešām vēlaties apstiprināt, ka esat veicis šo pasūtījumu %s ? GenerateBill=Izveidot rēķinu ClassifyShipped=Klasificēt piegādāts +PassedInShippedStatus=klasificēts piegādāts +YouCantShipThis=Es nevaru šo klasificēt. Lūdzu, pārbaudiet lietotāja atļaujas DraftOrders=Pasūtījumu projekti DraftSuppliersOrders=Pirkuma pasūtījumu projekts OnProcessOrders=Pasūtījumi procesā diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index 13b78f66cbc..3559bd983df 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -110,7 +110,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=Pārvaldīt veikals ar kasē +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) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Atlasiet objektu, lai skatītu tā statistiku ... 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 / FTPS savienojuma iestatīšana +FTPArea=FTP/FTPS sadaļa +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 diff --git a/htdocs/langs/lv_LV/partnership.lang b/htdocs/langs/lv_LV/partnership.lang index 48427c3321d..48cc4282e13 100644 --- a/htdocs/langs/lv_LV/partnership.lang +++ b/htdocs/langs/lv_LV/partnership.lang @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Atpakaļsaites, lai pārbaudītu PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nb dienas pirms partnerības statusa atcelšanas, kad abonements ir beidzies ReferingWebsiteCheck=Vietnes atsauces pārbaude ReferingWebsiteCheckDesc=Varat iespējot funkciju, lai pārbaudītu, vai jūsu partneri ir pievienojuši atpakaļsaišu jūsu vietnes domēniem savā vietnē. +PublicFormRegistrationPartnerDesc=Dolibarr var nodrošināt jums publisku URL/tīmekļa vietni, lai ārējie apmeklētāji varētu pieprasīt dalību partnerības programmā. # # Object @@ -59,6 +60,12 @@ BacklinkNotFoundOnPartnerWebsite=Atpakaļsaite nav atrasta partnera vietnē ConfirmClosePartnershipAsk=Vai tiešām vēlaties atcelt šo partnerību? PartnershipType=Partnerības veids PartnershipRefApproved=Partnerība %s apstiprināta +KeywordToCheckInWebsite=Ja vēlaties pārbaudīt, vai konkrētais atslēgvārds ir iekļauts katra partnera vietnē, definējiet šo atslēgvārdu šeit +PartnershipDraft=Melnraksts +PartnershipAccepted=Pieņemts +PartnershipRefused=Atteikts +PartnershipCanceled=Atcelts +PartnershipManagedFor=Partneri ir # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Kļūdu skaits pēdējā URL pārbaudē LastCheckBacklink=Pēdējās URL pārbaudes datums ReasonDeclineOrCancel=Noraidīt iemeslu -# -# Status -# -PartnershipDraft=Melnraksts -PartnershipAccepted=Pieņemts -PartnershipRefused=Atteikts -PartnershipCanceled=Atcelts -PartnershipManagedFor=Partneri ir +NewPartnershipRequest=Jauns partnerības pieprasījums +NewPartnershipRequestDesc=Šī veidlapa ļauj jums pieprasīt dalību kādā no mūsu partnerības programmām. Ja jums nepieciešama palīdzība, lai aizpildītu šo veidlapu, lūdzu, sazinieties pa e-pastu %s . + diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index fb90f8b5cff..161b4bbebb0 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -113,7 +113,7 @@ AssociatedProductsAbility=Iespējot komplektus (vairāku produktu komplekts) VariantsAbility=Iespējot variantus (produktu variācijas, piemēram, krāsa, izmērs) AssociatedProducts=Komplekti AssociatedProductsNumber=Produktu skaits, kas veido šo komplektu -ParentProductsNumber=Number of parent packaging product +ParentProductsNumber=Sākotnējā iepakojuma produkta skaits ParentProducts=Mātes produkti IfZeroItIsNotAVirtualProduct=Ja 0, šis produkts nav komplekts IfZeroItIsNotUsedByVirtualProduct=Ja 0, šis produkts netiek izmantots nevienā komplektā @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Vai tiešām vēlaties dzēst šo produktu līniju? ProductSpecial=Īpašs QtyMin=Minimālais daudzums PriceQtyMin=Cenas daudzums min. -PriceQtyMinCurrency=Cena (valūta) šim daudzumam. (bez atlaides) +PriceQtyMinCurrency=Cena (valūtā) šim daudzumam. +WithoutDiscount=Bez atlaides VATRateForSupplierProduct=PVN likme (šim pārdevējam / produktam) DiscountQtyMin=Atlaide šim daudzumam. NoPriceDefinedForThisSupplier=Šim pārdevējam / produktam nav noteikta cena / daudzums @@ -261,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 @@ -346,7 +347,7 @@ UseProductFournDesc=Pievienojiet līdzekli, lai definētu produkta aprakstu, ko 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) PackagingForThisProduct=Iepakojums -PackagingForThisProductDesc=Pēc piegādātāja pasūtījuma jūs automātiski pasūtīsit šo daudzumu (vai šī daudzkārtni). Nevar būt mazāks par minimālo pirkšanas daudzumu +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 #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Atzīmējiet šo, ja vēlaties saņemt ziņojumu lietotājam, ve DefaultBOM=Noklusējuma BOM DefaultBOMDesc=Šī produkta ražošanai ieteicams izmantot noklusējuma BOM. Šo lauku var iestatīt tikai tad, ja produkta veids ir “%s”. Rank=Rangs +MergeOriginProduct=Produkta dublikāts (produkts, kuru vēlaties dzēst) +MergeProducts=Apvienot produktus +ConfirmMergeProducts=Vai tiešām vēlaties apvienot izvēlēto produktu ar pašreizējo? Visi saistītie objekti (rēķini, pasūtījumi, ...) tiks pārvietoti uz pašreizējo produktu, pēc kura izvēlētā prece tiks dzēsta. +ProductsMergeSuccess=Produkti ir apvienoti +ErrorsProductsMerge=Kļūdas produktos saplūst SwitchOnSaleStatus=Ieslēgt pārdošanas statusu SwitchOnPurchaseStatus=Ieslēdziet pirkuma statusu StockMouvementExtraFields= Papildu lauki (akciju kustība) +InventoryExtraFields= Papildu lauki (inventārs) +ScanOrTypeOrCopyPasteYourBarCodes=Skenējiet ierakstiet vai kopējiet/ielīmējiet savus svītrkodus +PuttingPricesUpToDate=Atjauniniet cenas ar pašreizējām zināmajām cenām +PMPExpected=Paredzams PMP +ExpectedValuation=Paredzamais novērtējums +PMPReal=Īsts PMP +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 diff --git a/htdocs/langs/lv_LV/projects.lang b/htdocs/langs/lv_LV/projects.lang index fca34c7b1ac..e9771d9d624 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=Projekta kontakti +PrivateProject=Piešķirtie kontakti ProjectsImContactFor=Projekti, par kuriem tieši esmu kontaktpersona AllAllowedProjects=All project I can read (mine + public) AllProjects=Visi projekti @@ -190,6 +190,7 @@ PlannedWorkload=Plānotais darba apjoms PlannedWorkloadShort=Darba slodze ProjectReferers=Saistītās vienības ProjectMustBeValidatedFirst=Projektu vispirms jāpārbauda +MustBeValidatedToBeSigned=Vispirms ir jāvalidē %s, lai to iestatītu uz Parakstīts. FirstAddRessourceToAllocateTime=Piešķiriet lietotāja resursam kā projekta kontaktpersonai laika piešķiršanai InputPerDay=Ievades dienā InputPerWeek=Ievades nedēļā @@ -258,7 +259,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=Service to use on lines 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. @@ -287,3 +288,9 @@ 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=Š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 diff --git a/htdocs/langs/lv_LV/propal.lang b/htdocs/langs/lv_LV/propal.lang index c03e00b9cbe..1727bbc79c8 100644 --- a/htdocs/langs/lv_LV/propal.lang +++ b/htdocs/langs/lv_LV/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Nav sagatavot priekšlikumus CopyPropalFrom=Izveidot komerciālo priekšlikumu, kopējot esošo priekšlikumu CreateEmptyPropal=Izveidojiet tukšus komerciālus priekšlikumus vai produktu / pakalpojumu sarakstu DefaultProposalDurationValidity=Default komerciālā priekšlikumu derīguma termiņš (dienās) +DefaultPuttingPricesUpToDate=Pēc noklusējuma atjauniniet cenas ar pašreizējām zināmajām cenām, klonējot piedāvājumu UseCustomerContactAsPropalRecipientIfExist=Izmantojiet kontaktpersonu / adresi ar veidu "Sazināties ar pēcpārbaudes priekšlikumu", ja tā ir definēta kā trešās puses adrese kā pieteikuma saņēmēja adrese ConfirmClonePropal=Vai tiešām vēlaties klonēt komerciālo priekšlikumu %s ? ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? @@ -85,13 +86,26 @@ 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 +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 IdProduct=Produkta ID -PrParentLine=Priekšlikuma vecāku līnija LineBuyPriceHT=Pirkt cenu Summa bez nodokļiem līnijai SignPropal=Pieņemt priekšlikumu 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 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/recruitment.lang b/htdocs/langs/lv_LV/recruitment.lang index d85ea93e206..cd80719e8cd 100644 --- a/htdocs/langs/lv_LV/recruitment.lang +++ b/htdocs/langs/lv_LV/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=Darba vieta ir slēgta. ExtrafieldsJobPosition=Papildu atribūti (amata vietas) ExtrafieldsApplication=Papildu atribūti (darba pieteikumi) MakeOffer=Uztaisīt piedāvājumu +WeAreRecruiting=Mēs vervējam. Šis ir aizpildāmo brīvo vietu saraksts... +NoPositionOpen=Šobrīd neviena atvērta pozīcija diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang index 536bcf9e53e..7391a084ec1 100644 --- a/htdocs/langs/lv_LV/stocks.lang +++ b/htdocs/langs/lv_LV/stocks.lang @@ -142,13 +142,13 @@ 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". RecordMovement=Ierakstīt pārvietošanu -ReceivingForSameOrder=Receipts for this order +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 +176,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 @@ -254,7 +254,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 +265,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 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/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 213774c5716..e376d2dbb4f 100644 --- a/htdocs/langs/lv_LV/ticket.lang +++ b/htdocs/langs/lv_LV/ticket.lang @@ -90,15 +90,17 @@ 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=Paziņojuma e-pasts no -TicketEmailNotificationFromHelp=Izmanto biļešu ziņu atbildē, izmantojot piemēru -TicketEmailNotificationTo=Paziņojumu e-pastu uz -TicketEmailNotificationToHelp=Sūtiet e-pasta paziņojumus uz šo adresi. +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=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 TicketNewEmailBodyHelp=Šeit norādītais teksts tiks ievietots e-pastā, apstiprinot jauna biļetes izveidi no publiskā saskarnes. Informācija par biļetes apspriešanu tiek automātiski pievienota. 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=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) @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Sūtīt e-pastu (-us), kad biļetei tiek pie TicketsPublicNotificationNewMessageHelp=Sūtiet e-pastu (s), kad no publiskās saskarnes tiek pievienots jauns ziņojums (piešķirtajam lietotājam vai paziņojumu e-pastu uz (atjaunināt) un / vai paziņojumu e-pastu uz) TicketPublicNotificationNewMessageDefaultEmail=Paziņojumu e-pasts adresātam (atjaunināt) TicketPublicNotificationNewMessageDefaultEmailHelp=Nosūtiet e-pastu uz šo adresi par katru jaunu ziņojumu paziņojumu, ja biļetei nav piešķirts lietotājs vai ja lietotājam nav zināms e-pasts. +TicketsAutoReadTicket=Automātiski atzīmēt biļeti kā izlasītu (ja izveidota no Backoffice) +TicketsAutoReadTicketHelp=Automātiski atzīmējiet biļeti kā izlasītu, kad tā tiek izveidota no backoffice. Kad biļete tiek izveidota no publiskā interfeisa, biļete paliek ar statusu "Nav izlasīta". +TicketsDelayBeforeFirstAnswer=Par jaunu biļeti pirmā atbilde jāsaņem pirms (stundas): +TicketsDelayBeforeFirstAnswerHelp=Ja pēc šī laika perioda (stundās) jauna biļete nav saņēmusi atbildi, saraksta skatā tiks parādīta svarīga brīdinājuma ikona. +TicketsDelayBetweenAnswers=Neatrisināta biļete nedrīkst būt neaktīva šādā laikā (stundas): +TicketsDelayBetweenAnswersHelp=Ja neatrisinātai biļetei, kas jau ir saņēmusi atbildi, pēc šī laika perioda (stundās) nav veikta turpmāka mijiedarbība, saraksta skatā tiks parādīta brīdinājuma ikona. +TicketsAutoNotifyClose=Automātiski paziņot trešajai pusei, aizverot biļeti +TicketsAutoNotifyCloseHelp=Aizverot biļeti, jums tiks piedāvāts nosūtīt ziņojumu kādai no trešās puses kontaktpersonām. Masveida slēgšanā vienai ar biļeti saistītās trešās puses kontaktpersonai tiks nosūtīts ziņojums. +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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Kārtot pēc augošā datuma OrderByDateDesc=Kārtot pēc dilstošā datuma ShowAsConversation=Rādīt kā sarunu sarakstu MessageListViewType=Rādīt kā tabulu sarakstu +ConfirmMassTicketClosingSendEmail=Automātiski sūtīt e-pastus, aizverot biļetes +ConfirmMassTicketClosingSendEmailQuestion=Vai vēlaties informēt trešās puses, slēdzot šīs biļetes? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Saņēmējs ir tukšs. Nav e-pasta TicketGoIntoContactTab=Lūdzu, dodieties uz cilni "Kontakti", lai tos atlasītu TicketMessageMailIntro=Ievads TicketMessageMailIntroHelp=Šis teksts tiek pievienots tikai e-pasta sākumā un netiks saglabāts. -TicketMessageMailIntroLabelAdmin=Ievads, nosūtot e-pastu -TicketMessageMailIntroText=Labdien,
    Jauna atbilde tika nosūtīta uz biļeti, ar kuru sazināties. Šeit ir ziņa:
    -TicketMessageMailIntroHelpAdmin=Šis teksts tiks ievietots pirms atbildes uz biļeti teksta. +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=

    Ar cieņu,

    --

    +TicketMessageMailSignatureText=Ziņojumu nosūtīja %s , izmantojot Dolibarr TicketMessageMailSignatureLabelAdmin=Atbildes e-pasta paraksts TicketMessageMailSignatureHelpAdmin=Šis teksts tiks ievietots pēc atbildes ziņojuma. TicketMessageHelp=Tikai šis teksts tiks saglabāts ziņojumu sarakstā uz biļešu kartes. @@ -238,9 +254,16 @@ TicketChangeStatus=Mainīt statusu TicketConfirmChangeStatus=Apstipriniet statusa maiņu: %s? TicketLogStatusChanged=Statuss mainīts: %s līdz %s TicketNotNotifyTiersAtCreate=Neinformēt uzņēmumu par radīšanu +NotifyThirdpartyOnTicketClosing=Kontaktpersonas, par kurām informēt biļetes aizvēršanas laikā +TicketNotifyAllTiersAtClose=Visi saistītie kontakti +TicketNotNotifyTiersAtClose=Nav saistīta kontaktpersona Unread=Nelasīts TicketNotCreatedFromPublicInterface=Nav pieejams. Biļete netika izveidota no publiskās saskarnes. ErrorTicketRefRequired=Nepieciešams biļetes atsauces nosaukums +TicketsDelayForFirstResponseTooLong=Pārāk daudz laika pagājis kopš biļetes atvēršanas bez atbildes. +TicketsDelayFromLastResponseTooLong=Pārāk daudz laika pagājis kopš pēdējās atbildes šajā biļetē. +TicketNoContractFoundToLink=Netika atrasts neviens līgums, kas būtu automātiski saistīts ar šo biļeti. Lūdzu, manuāli saistiet līgumu. +TicketManyContractsLinked=Daudzi līgumi ir automātiski saistīti ar šo biļeti. Noteikti pārbaudiet, kuru izvēlēties. # # Logs @@ -268,8 +291,9 @@ TicketNewEmailBody=Šis ir automātisks e-pasts, lai apstiprinātu, ka esat reģ TicketNewEmailBodyCustomer=Šis ir automātiskais e-pasta ziņojums, kas apstiprina, ka jaunais biļete ir tikko izveidots jūsu kontā. TicketNewEmailBodyInfosTicket=Informācija biļetes uzraudzībai TicketNewEmailBodyInfosTrackId=Biļešu izsekošanas numurs: %s -TicketNewEmailBodyInfosTrackUrl=Jūs varat apskatīt biļetes norisi, noklikšķinot uz iepriekš redzamās saites. +TicketNewEmailBodyInfosTrackUrl=Biļešu iegādes gaitu varat apskatīt, noklikšķinot uz šīs saites TicketNewEmailBodyInfosTrackUrlCustomer=Jūs varat apskatīt pieteikuma statusu konkrētajā saskarnē, noklikšķinot uz šīs saites +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. @@ -291,6 +315,10 @@ NewUser=Jauns lietotājs NumberOfTicketsByMonth=Pieteikumu skaits mēnesī NbOfTickets=Pieteikumu skaits # notifications +TicketCloseEmailSubjectCustomer=Biļete slēgta +TicketCloseEmailBodyCustomer=Šis ir automātisks ziņojums, lai informētu, ka biļete %s tikko ir aizvērta. +TicketCloseEmailSubjectAdmin=Biļete slēgta — Réf %s (publiskās biļetes ID %s) +TicketCloseEmailBodyAdmin=Biļete ar ID #%s tikko ir slēgta, skatiet informāciju: TicketNotificationEmailSubject=Pieteikums %s ir atjaunots TicketNotificationEmailBody=Šī ir automātiska ziņa, kas informē jūs, ka biļete %s tikko atjaunināta TicketNotificationRecipient=Paziņojuma saņēmējs diff --git a/htdocs/langs/lv_LV/users.lang b/htdocs/langs/lv_LV/users.lang index 9ee881c889b..c90e3ec50d4 100644 --- a/htdocs/langs/lv_LV/users.lang +++ b/htdocs/langs/lv_LV/users.lang @@ -114,7 +114,7 @@ UserLogoff=Lietotājs atslēdzies UserLogged=Lietotājs pieteicies DateOfEmployment=Nodarbināšanas datums DateEmployment=Nodarbinātība -DateEmploymentstart=Nodarbinātības sākuma datums +DateEmploymentStart=Nodarbinātības sākuma datums DateEmploymentEnd=Nodarbinātības beigu datums RangeOfLoginValidity=Piekļuves derīguma datumu diapazons CantDisableYourself=Jūs nevarat atspējot savu lietotāja ierakstu @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Pēc noklusējuma validētājs ir lietotāja uzra UserPersonalEmail=Personīgais e-pasts UserPersonalMobile=Personīgais mobilais tālrunis WarningNotLangOfInterface=Brīdinājums: šī ir galvenā valoda, kurā runā lietotājs, nevis tā saskarnes valoda, kuru viņš izvēlējās redzēt. Lai mainītu interfeisa valodu, kuru redz šis lietotājs, dodieties uz cilni %s +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 diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang index b0b0760088a..6882e68056d 100644 --- a/htdocs/langs/lv_LV/withdrawals.lang +++ b/htdocs/langs/lv_LV/withdrawals.lang @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Pārdevēja rēķins, kas gaida samaksu ar pārsk InvoiceWaitingWithdraw=Invoice waiting for direct debit 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. ResponsibleUser=Lietotājs ir atbildīgs @@ -136,6 +137,7 @@ SEPAFRST=SEPA vispirms ExecutionDate=Izpildes datums CreateForSepa=Izveidojiet tiešā debeta failu ICS=Kreditora identifikators - ICS +IDS=Debitora identifikators END_TO_END="EndToEndId" SEPA XML tag - katram darījumam piešķirts unikāls ID USTRD="Nestrukturēts" SEPA XML tag ADDDAYS=Pievienojiet dienas izpildes datumam @@ -154,3 +156,4 @@ ErrorICSmissing=Bankas kontā %s trūkst ICS TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Tiešā debeta rīkojuma kopējā summa atšķiras no rindu summas WarningSomeDirectDebitOrdersAlreadyExists=Brīdinājums: jau ir pieprasīti daži neapstiprināti tiešā debeta pasūtījumi (%s) par summu %s WarningSomeCreditTransferAlreadyExists=Brīdinājums: jau ir pieprasīts neapstiprināts kredīta pārvedums (%s) par summu %s +UsedFor=Izmantots %s diff --git a/htdocs/langs/lv_LV/workflow.lang b/htdocs/langs/lv_LV/workflow.lang index e22269f5790..c7b8d5ac73d 100644 --- a/htdocs/langs/lv_LV/workflow.lang +++ b/htdocs/langs/lv_LV/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automātiski izveidojiet pārdošanas pasū descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automātiski izveidojiet klienta rēķinu pēc komerciāla piedāvājuma parakstīšanas (jaunajā rēķinā būs tāda pati summa kā piedāvājumā) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automātiski izveidot klienta rēķinu pēc līguma apstiprināšanas descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automātiski izveidojiet klienta rēķinu pēc pārdošanas pasūtījuma slēgšanas (jaunajam rēķinam būs tāda pati summa kā pasūtījumam) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Izveidojot biļeti, automātiski izveidojiet iejaukšanos. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasificējiet saistītā avota priekšlikumu kā rēķinu, kad pārdošanas pasūtījums ir iestatīts uz rēķinu (un ja pasūtījuma summa ir vienāda ar parakstītā saistītā priekšlikuma kopējo summu) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klasificēt saistīto avota priekšlikumu kā rēķinu, kad klienta rēķins ir apstiprināts (un ja rēķina summa ir tāda pati kā parakstītā saistītā piedāvājuma kopējā summa) @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Klasificēt saistītā avota pirk 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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Kad biļete ir slēgta, aizveriet visas ar biļeti saistītās darbības 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 +AutomaticClosing=Automātiska aizvēršana +AutomaticLinking=Automātiska saistīšana diff --git a/htdocs/langs/mk_MK/companies.lang b/htdocs/langs/mk_MK/companies.lang index fda7ce0c11b..edec734afcf 100644 --- a/htdocs/langs/mk_MK/companies.lang +++ b/htdocs/langs/mk_MK/companies.lang @@ -19,6 +19,7 @@ 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 @@ -51,6 +52,8 @@ 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 @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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/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/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/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/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 00af466fceb..8c9d8002207 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -37,8 +37,8 @@ OtherInfo=Annen informasjon DeleteCptCategory=Fjern regnskapskonto fra gruppe ConfirmDeleteCptCategory=Er du sikker på at du vil fjerne denne regnskapskontoen fra gruppen? JournalizationInLedgerStatus=Status for journalisering -AlreadyInGeneralLedger=Already transferred to accounting journals and ledger -NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger +AlreadyInGeneralLedger=Allerede overført til regnskapsjournal og reskontro +NotYetInGeneralLedger=Foreløpig ikke overført til regnskapsjournal og reskontro GroupIsEmptyCheckSetup=Gruppen er tom, sjekk oppsettet for den personlige regnskapsgruppen DetailByAccount=Vis detaljer etter konto AccountWithNonZeroValues=Kontoer med ikke-nullverdier @@ -48,8 +48,9 @@ CountriesNotInEEC=Land ikke i EEC CountriesInEECExceptMe=Land i EEC unntatt %s CountriesExceptMe=Alle land unntatt %s AccountantFiles=Eksporter kildedokumenter -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. +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=For å eksportere journalene dine, bruk menyoppføringen %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=Vis etter regnskapskonto VueBySubAccountAccounting=Vis etter regnskaps-subkonto @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=Hovedregnskapskonto for abonnementsb AccountancyArea=Regnskapsområde AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt: AccountancyAreaDescActionOnce=Følgende tiltak blir vanligvis utført en gang, eller en gang i året ... -AccountancyAreaDescActionOnceBis=De neste skrittene bør gjøres for å spare tid i fremtiden ved å foreslå deg riktig standardregnskapskonto når du foretar journalføringen (skriv inn post i journaler og hovedbok) +AccountancyAreaDescActionOnceBis=De neste trinnene bør gjøres for å spare deg for tid i fremtiden ved å foreslå at du automatisk får riktig standard regnskapskonto når du overfører data i regnskapet AccountancyAreaDescActionFreq=Følgende tiltak blir vanligvis utført hver måned, uke eller dag for svært store selskaper ... -AccountancyAreaDescJournalSetup=TRINN %s: Lag eller kontroller innholdet i din journalliste fra menyen %s +AccountancyAreaDescJournalSetup=TRINN %s: Sjekk innholdet i journallisten din fra menyen %s AccountancyAreaDescChartModel=TRINN %s: Sjekk at det finnes en modell av kontoplan eller lag en fra menyen %s AccountancyAreaDescChart=TRINN %s: Velg og|eller fullfør kontoplanen din fra meny %s AccountancyAreaDescVat=TRINN %s: Definer regnskapskonto for hver MVA-sats. Bruk menyoppføringen %s. AccountancyAreaDescDefault=TRINN %s: Definer standard regnskapskontoer. For dette, bruk menyoppføringen %s. -AccountancyAreaDescExpenseReport=TRINN %s: Definer standard regnskapskontoer for hver type kostnadsrapport. 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=TRINN %s: Definer standard regnskapskonto for spesielle utgifter (diverse skatter). For dette, bruk menyoppføringen %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %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=TRINN %s: Definer regnskapskontoer for dine varer/tjenester. Bruk menyoppføringen %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %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 +113,7 @@ MenuAccountancyClosure=Nedleggelse MenuAccountancyValidationMovements=Valider bevegelser ProductsBinding=Varekontoer TransferInAccounting=Overføring i regnskap -RegistrationInAccounting=Registrering i regnskap +RegistrationInAccounting=Recording in accounting Binding=Binding til kontoer CustomersVentilation=Binding av kundefakturaer SuppliersVentilation=Leverandørfaktura-bindinger @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Utgiftsrapport-binding CreateMvts=Opprett ny transaksjon UpdateMvts=Endre en transaksjon ValidTransaction=Valider transaksjonen -WriteBookKeeping=Registrer transaksjoner i regnskap +WriteBookKeeping=Registrere transaksjoner i regnskapet Bookkeeping=Hovedbok BookkeepingSubAccount=Sub-Hovedbok AccountBalance=Kontobalanse @@ -161,7 +162,7 @@ BANK_DISABLE_DIRECT_INPUT=Deaktiver direkteregistrering av transaksjoner på ban 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) 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=On accountancy transfer, what is the period selected by default ACCOUNTING_SELL_JOURNAL=Salgsjournal ACCOUNTING_PURCHASE_JOURNAL=Innkjøpsjournal @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Regnskapskonto for registrering av donasjoner ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Regnskapskonto for å registrere abonnementer ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Regnskapskonto som standard for å registrere kundeinnskudd +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=Accounting account by default to register supplier deposit +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=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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=Etter forhåndsdefinerte grupper ByPersonalizedAccountGroups=Etter personlige grupper ByYear=Etter år NotMatch=Ikke valgt -DeleteMvt=Slett noen operasjonslinjer fra regnskapet +DeleteMvt=Slett linjer fra regnskapet DelMonth=Måned å slette DelYear=År som skal slettes DelJournal=Journal som skal slettes -ConfirmDeleteMvt=Dette vil slette alle operasjonslinjene i regnskapet for året/måneden og/eller for en bestemt journal (minst ett kriterium kreves). Du må bruke funksjonen '%s' for å hente den slettede posten tilbake til hovedboken. -ConfirmDeleteMvtPartial=Dette vil slette transaksjonen fra regnskapet (alle operasjonslinjer relatert til den samme transaksjonen vil bli slettet) +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=Dette vil slette transaksjonen fra regnskapet (alle linjer knyttet til samme transaksjon vil bli slettet) FinanceJournal=Finansjournal ExpenseReportsJournal=Journal for utgiftsrapporter DescFinanceJournal=Finansjournal med alle typer betalinger etter bankkonto @@ -278,30 +282,31 @@ DescVentilExpenseReportMore=Hvis du setter opp regnskapskonto med type utgiftsra DescVentilDoneExpenseReport=Liste over utgiftsrapport-linjer og tilhørende gebyr-regnskapskonto Closure=Årsavslutning -DescClosure=Kontroller antall bevegelser per måned som ikke er validert og regnskapsår som allerede er åpne -OverviewOfMovementsNotValidated=Trinn 1 / Oversikt over bevegelser som ikke er validert. (Nødvendig for å avslutte et regnskapsår) -AllMovementsWereRecordedAsValidated=Alle bevegelser ble registrert som validert -NotAllMovementsCouldBeRecordedAsValidated=Ikke alle bevegelser kunne registreres som validert -ValidateMovements=Valider bevegelser +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=Valider og lås posten... 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=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +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 -MvtNotCorrectlyBalanced=Bevegelse er ikke riktig balansert. Debet = %s | Kreditt = %s +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 å journalisere +NoNewRecordSaved=Ingen flere poster å overføre ListOfProductsWithoutAccountingAccount=Liste over varer som ikke bundet til en regnskapskonto ChangeBinding=Endre bindingen Accounted=Regnskapsført i hovedbok -NotYetAccounted=Not yet transferred to accounting +NotYetAccounted=Foreløpig ikke overført til regnskap ShowTutorial=Vis veiledning NotReconciled=Ikke sammenslått -WarningRecordWithoutSubledgerAreExcluded=Advarsel, alle operasjoner uten definert sub-hovedbokskonto er filtrert og ekskludert fra denne visningen +WarningRecordWithoutSubledgerAreExcluded=Advarsel, alle linjer uten definert underreskontro er filtrert og ekskludert fra denne visningen +AccountRemovedFromCurrentChartOfAccount=Regnskapskonto som ikke finnes i gjeldende kontoplan ## Admin BindingOptions=Bindingsalternativer @@ -329,9 +334,10 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Deaktiver binding og overføring til reg ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Deaktiver binding og overføring til regnskap på utgiftsrapporter (utgiftsrapporter blir ikke tatt med i regnskapet) ## 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 ? +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=Datovalidering og lås +ConfirmExportFile=Bekreftelse på generering av regnskapseksportfilen ? ExportDraftJournal=Eksporter utkastjournal Modelcsv=Eksportmodell Selectmodelcsv=Velg eksportmodell @@ -339,11 +345,11 @@ Modelcsv_normal=Klassisk eksport Modelcsv_CEGID=Eksport til CEGID Expert Comptabilité Modelcsv_COALA=Eksport til Saga Coala Modelcsv_bob50=Eksport til Sage BOB 50 -Modelcsv_ciel=Export for Sage50, Ciel Compta or Compta Evo. (Format XIMPORT) +Modelcsv_ciel=Eksporter for Sage50, Ciel Compta eller Compta Evo. (Format XIMPORT) Modelcsv_quadratus=Eksport til Quadratus QuadraCompta Modelcsv_ebp=Eksport tilEBP Modelcsv_cogilog=Eksport til Cogilog -Modelcsv_agiris=Export for Agiris Isacompta +Modelcsv_agiris=Eksport for Agiris Isacompta Modelcsv_LDCompta=Eksport for LD Compta (v9) (Test) Modelcsv_LDCompta10=Eksporter for LD Compta (v10 og høyere) Modelcsv_openconcerto=Eksport for OpenConcerto (Test) @@ -351,10 +357,10 @@ Modelcsv_configurable=Eksport CSV Konfigurerbar Modelcsv_FEC=Eksporter FEC Modelcsv_FEC2=Eksporter FEC (med datogenerering/dokument omvendt) Modelcsv_Sage50_Swiss=Eksport for Sage 50 Switzerland -Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta +Modelcsv_winfic=Eksporter for Winfic - eWinfic - WinSis Compta Modelcsv_Gestinumv3=Eksport for Gestinum (v3) -Modelcsv_Gestinumv5=Export for Gestinum (v5) -Modelcsv_charlemagne=Export for Aplim Charlemagne +Modelcsv_Gestinumv5=Eksporter for Gestinum (v5) +Modelcsv_charlemagne=Eksport for Aplim Charlemagne ChartofaccountsId=Kontoplan ID ## Tools - Init accounting account on product / service @@ -387,13 +393,28 @@ SaleExport=Eksportsalg SaleEEC=Salg i EU SaleEECWithVAT=Salg i EU med mva som ikke er null, så vi antar at dette IKKE er et intra-EU salg og den foreslåtte kontoen er standard produktkonto. SaleEECWithoutVATNumber=Salg i EU uten mva, men mva-ID for tredjepart er ikke definert. Vi faller tilbake på produktkontoen for standard salg. Du kan fikse mva-ID for tredjepart eller produktkonto om nødvendig. -ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. -ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. +ForbiddenTransactionAlreadyExported=Ikke tillatt: Transaksjonen er validert og/eller eksportert. +ForbiddenTransactionAlreadyValidated=Ikke tillatt: Transaksjonen er validert. ## Dictionary Range= Oversikt over regnskapskonto Calculated=Kalkulert Formula=Formel +## Reconcile +Unlettering=Reverser avstemming +AccountancyNoLetteringModified=Ingen avstemming endret +AccountancyOneLetteringModifiedSuccessfully=Én avstemming ble endret +AccountancyLetteringModifiedSuccessfully=%s avstemming ble endret +AccountancyNoUnletteringModified=Ingen reversert avstemming modifisert +AccountancyOneUnletteringModifiedSuccessfully=Én reversert avstemming ble endret +AccountancyUnletteringModifiedSuccessfully=%s reversertavstemming ble endret + +## Confirm box +ConfirmMassUnlettering=Bulk Unreconcile confirmation +ConfirmMassUnletteringQuestion=Are you sure you want to Unreconcile the %s selected record(s)? +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)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Noen obligatoriske trinn for oppsett ble ikke gjort, vennligst fullfør disse ErrorNoAccountingCategoryForThisCountry=Ingen regnskapskonto-gruppe tilgjengelig for land %s (Se Hjem - Oppsett - Ordbøker) @@ -406,6 +427,10 @@ 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 +AccountancyErrorMismatchBalanceAmount=Saldoen (%s) er ikke lik 0 +AccountancyErrorLetteringBookkeeping=Det har oppstått feil angående transaksjonene: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Regnskapsposter @@ -434,4 +459,4 @@ WarningReportNotReliable=Advarsel, denne rapporten er ikke basert på hovedboken ExpenseReportJournal=Utgiftsrapport-journal InventoryJournal=Inventar-journal -NAccounts=%s accounts +NAccounts=%s kontoer diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index fe8f31859c0..fbda984841c 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -109,7 +109,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=Use graphical code (CAPTCHA) on login page and some public pages 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 @@ -477,7 +477,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 value for the %s empty barcodes 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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Ved å bruke SMTP-serveren til din egen e-posttjenesteleverand 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. 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=Actual SPF record found (for email %s) : %s ClickToShowDescription=Klikk for å vise beskrivelse DependsOn=Denne modulen trenger modulen(ene) RequiredBy=Denne modulen er påkrevd av modul(ene) @@ -714,13 +714,14 @@ Permission27=Slett tilbud Permission28=Eksporter tilbud Permission31=Les varer Permission32=Opprett/endre varer +Permission33=Read prices products Permission34=Slett varer Permission36=Se/administrer skjulte varer Permission38=Eksporter varer Permission39=Ignorer minstepris -Permission41=Les prosjekter og oppgaver (delt prosjekt og prosjekter jeg er kontakt for). Kan også skrive inn tidsforbruk for meg eller mitt hierarki, på tildelte oppgaver (Tidsskjema) -Permission42=Opprett/endre prosjekter (delte prosjekter og de jeg er kontakt for). Kan også opprette oppgaver og tildele prosjekter og oppgaver til brukere. -Permission44=Slett prosjekter (delte og mine egne) +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=Eksporter prosjekter Permission61=Vis intervensjoner Permission62=Opprett/endre intervensjoner @@ -739,6 +740,7 @@ Permission79=Opprett/endre abonnementer Permission81=Les kundeordre Permission82=Opprett/endre kundeordre Permission84=Valider kundeordre +Permission85=Generate the documents sales orders Permission86=Send kundeordre Permission87=Lukk kundeordre Permission88=Avbryt kundeordre @@ -766,9 +768,10 @@ Permission122=Opprett/endre tredjeparter lenket til bruker Permission125=Slett tredjeparter lenket til bruker Permission126=Eksportere tredjeparter Permission130=Opprett/endre betalingsinformasjon for tredjeparter -Permission141=Les alle prosjekter og oppgaver (også prosjekter jeg ikke er kontakt for) -Permission142=Opprett/endre alle prosjekter og oppgaver (også prosjekter jeg ikke er kontakt for) -Permission144=Slett alle prosjekter og oppgaver (også prosjekter jeg ikke er kontakt 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=Les tilbydere Permission147=Les statistikk Permission151=Les direktedebet betalingsordre @@ -873,6 +876,7 @@ Permission525=Gå til lånekalkulator Permission527=Eksporter lån Permission531=Vis tjenester Permission532=Opprett/endre tjenester +Permission533=Read prices services Permission534=Slett tjenester Permission536=Administrer skjulte tjenester Permission538=Eksporter tjenester @@ -883,6 +887,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 Permission650=Les BOM (Bills of Materials) Permission651=Opprett/oppdater BOM Permission652=Slett BOM @@ -969,6 +976,8 @@ Permission4021=Opprett/endre evalueringen din Permission4022=Valider evaluering Permission4023=Slett evaluering Permission4030=Se sammenligningsmeny +Permission4031=Les personlig informasjon +Permission4032=Skriv personlig informasjon 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Utgiftsrapport - Transportkategorier DictionaryExpenseTaxRange=Utgiftsrapport - Rangert etter transportkategori DictionaryTransportMode=Intracomm rapport - Transportmodus DictionaryBatchStatus=Vare lot/serie kvalitetskontrollstatus +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type enhet SetupSaved=Innstillinger lagret SetupNotSaved=Oppsettet er ikke lagret @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Verdien av en konfigurasjonskonstant ConstantIsOn=Alternativ %s er på NbOfDays=Antall dager AtEndOfMonth=Ved månedsslutt -CurrentNext=Nåværende/Neste +CurrentNext=A given day in month Offset=Forskyvning AlwaysActive=Alltid aktiv Upgrade=Oppgrader @@ -1187,7 +1197,7 @@ BankModuleNotActive=Bankkontomodul ikke slått på ShowBugTrackLink=Vis lenken " %s " ShowBugTrackLinkDesc=Hold tom for ikke å vise denne lenken, bruk verdien 'github' for lenken til Dolibarr-prosjektet eller definer en url direkte 'https://...' Alerts=Varsler -DelaysOfToleranceBeforeWarning=Forsinkelse før du viser en advarsel for: +DelaysOfToleranceBeforeWarning=Viser et varsel for... DelaysOfToleranceDesc=Angi forsinkelsen før et advarselsikon %s vises på skjermen for det forsinkede elementet. Delays_MAIN_DELAY_ACTIONS_TODO=Planlagte hendelser (agendahendelser) ikke fullført Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Prosjektet er ikke lukket i tide @@ -1228,6 +1238,7 @@ BrowserName=Navn på nettleser BrowserOS=Nettleserens operativsystem ListOfSecurityEvents=Oversikt over sikkerhetshendelser i Dolibarr SecurityEventsPurged=Sikkerhetshendelser renset +TrackableSecurityEvents=Trackable security events 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Du tvang en ny oversettelse for oversettelsesnøkke TitleNumberOfActivatedModules=Aktiverte moduler TotalNumberOfActivatedModules=Aktiverte moduler: %s / %s YouMustEnableOneModule=Du må minst aktivere en modul +YouMustEnableTranslationOverwriteBefore=Du må først aktivere overskriving for å få lov til å erstatte en oversettelse ClassNotFoundIntoPathWarning=Klasse %s ikke funnet i PHP banen YesInSummer=Ja i sommer OnlyFollowingModulesAreOpenedToExternalUsers=Merk at bare de følgende modulene er tilgjengelige for eksterne brukere (uavhengig av tillatelsene til slike brukere) og bare hvis tillatelser er gitt:
    @@ -1420,6 +1432,8 @@ 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. ##### Proposals ##### PropalSetup=Oppsett av modulen Tilbud ProposalsNumberingModules=Nummereringsmodul for tilbud @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Ved installering eller bygging av en ekstern modul fra 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 BtnActionColor=Farge på handlingsknappen TextBtnActionColor=Tekstfarge på handlingsknappen TextTitleColor=Tekstfarge på sidetittel @@ -1925,7 +1940,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=Icon or Text in Top menu LeftMenuBackgroundColor=Bakgrunnsfarge for venstre meny BackgroundTableTitleColor=Bakgrunnsfarge for tittellinje i tabellen BackgroundTableTitleTextColor=Tekstfarge for tabellens tittellinje @@ -1938,7 +1953,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=Ikonnavn i dolibarr-format ('image.png' hvis det er i den aktuelle temakatalogen, 'image.png@nom_du_module' hvis det er i katalogen /img/ til en modul) +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=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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Innkjøpsordrer MailToSendSupplierInvoice=Leverandørfakturaer MailToSendContract=Kontrakter MailToSendReception=Mottak +MailToExpenseReport=Utgiftsrapporter MailToThirdparty=Tredjeparter MailToMember=Medlemmer MailToUser=Brukere @@ -2019,6 +2035,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=Show first sales representative 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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter til ren verdi (COMPANY_AQUARIUM_CLEAN_ COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter til ren verdi (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat er ikke tillatt GDPRContact=Databeskyttelsesansvarlig (DPO, Data Privacy eller GDPR kontakt) -GDPRContactDesc=Hvis du lagrer data om europeiske firmaer/borgere, kan du lagre den kontakten som er ansvarlig for GDPR - General Data Protection Regulation +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=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 @@ -2048,27 +2065,46 @@ 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 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 emails pre-qualified, %s emails successfully processed (for %s record/actions done) 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=Opprett en billett (knyttet til en tredjepart hvis tredjeparten ble lastet inn av en tidligere operasjon, ellers uten noen annen tredjepart) +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=Siste resultatkode NbOfEmailsInInbox=Antall e-poster i kildemappen LoadThirdPartyFromName=Legg inn tredjepartsøk på %s (bare innlasting) @@ -2082,14 +2118,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=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=Å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=Aktiver funksjon for å sjekke om en ressurs er i bruk i en hendelse +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda 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) @@ -2134,7 +2170,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=Tillat tilgang til noen verts-IP (jokertegn er ikke tillatt, bruk mellomrom mellom verdier). Tom betyr at alle verter har tilgang. +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=Basert på biblioteket SabreDAV versjon NotAPublicIp=Ikke en offentlig IP @@ -2144,6 +2180,9 @@ 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=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty 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. @@ -2185,6 +2224,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 Proposals, Orders, Invoices. DatabasePasswordObfuscated=Databasepassord er skjult i conf-filen DatabasePasswordNotObfuscated=Databasepassord er IKKE skjult i conf-filen APIsAreNotEnabled=API-moduler er ikke aktivert @@ -2206,12 +2246,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=Hvis du vil bruke en andre avgift, må du også aktivere den første avgiften -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en tredje avgift, må du også aktivere den første avgiften +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=Språk og presentasjon SkinAndColors=Bakgrunn og farger -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en andre avgift, må du også aktivere den første avgiften -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Hvis du vil bruke en tredje avgift, må du også aktivere den første avgiften +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=Generer PDF med PDF/A-1b-format MissingTranslationForConfKey = Mangler oversettelse for %s NativeModules=Standard moduler @@ -2220,3 +2260,50 @@ 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 +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. + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = Innstillinger +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=Ikon og tekst +TextOnly=Kun tekst +IconOnlyAllTextsOnHover=Bare ikon - Alle tekster vises under ikonet når musepekeren er over menylinjen +IconOnlyTextOnHover=Bare ikon - Teksten til ikonet vises under ikonet når musepekeren er over ikonet +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=Show the swiss QR-Bill code on invoices +UrlSocialNetworksDesc=URL-lenke til sosialt nettverk. Bruk {socialid} for den variable delen som inneholder ID-en for det sosiale nettverket. +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/nb_NO/agenda.lang b/htdocs/langs/nb_NO/agenda.lang index e4204bec783..16061b4786f 100644 --- a/htdocs/langs/nb_NO/agenda.lang +++ b/htdocs/langs/nb_NO/agenda.lang @@ -38,13 +38,14 @@ ActionsEvents=Handlinger som Dolibarr automatisk registrerer i agendaen EventRemindersByEmailNotEnabled=Hendelsespåminnelser via e-post ble ikke aktivert i %s moduloppsett. ##### Agenda event labels ##### NewCompanyToDolibarr=Tredjepart %s opprettet -COMPANY_MODIFYInDolibarr=Third party %s modified +COMPANY_MODIFYInDolibarr=Tredjepart %s endret COMPANY_DELETEInDolibarr=Tredjepart %s slettet ContractValidatedInDolibarr=Kontrakt %s validert CONTRACT_DELETEInDolibarr=Kontrakt %s slettet PropalClosedSignedInDolibarr=Tilbud %s signert PropalClosedRefusedInDolibarr=Tilbud %s avvist PropalValidatedInDolibarr=Tilbud godkjent +PropalBackToDraftInDolibarr=Proposal %s go back to draft status PropalClassifiedBilledInDolibarr=Tilbud %s klassifisert betalt InvoiceValidatedInDolibarr=Faktura %s validert InvoiceValidatedInDolibarrFromPos=Faktura %s validert fra POS @@ -64,8 +65,9 @@ ShipmentClassifyClosedInDolibarr=Forsendelse %s klassifisert fakturert ShipmentUnClassifyCloseddInDolibarr=Forsendelse %s klassifisert gjenåpnet ShipmentBackToDraftInDolibarr=Sett levering %s tilbake til utkaststatus ShipmentDeletedInDolibarr=Leveranse %s slettet -ShipmentCanceledInDolibarr=Shipment %s canceled +ShipmentCanceledInDolibarr=Forsendelse %s kansellert ReceptionValidatedInDolibarr=Mottak %s validert +ReceptionClassifyClosedInDolibarr=Reception %s classified closed OrderCreatedInDolibarr=Ordre %s opprettet OrderValidatedInDolibarr=Ordre %s validert OrderDeliveredInDolibarr=Ordre %s klassifisert som levert @@ -89,7 +91,7 @@ OrderDeleted=Ordre slettet InvoiceDeleted=Faktura slettet DraftInvoiceDeleted=Fakturautkast slettet CONTACT_CREATEInDolibarr=Kontakt %s opprettet -CONTACT_MODIFYInDolibarr=Contact %s modified +CONTACT_MODIFYInDolibarr=Kontakt %s endret CONTACT_DELETEInDolibarr=Kontakt %s slettet PRODUCT_CREATEInDolibarr=Vare%s opprettet PRODUCT_MODIFYInDolibarr=Vare %s endret diff --git a/htdocs/langs/nb_NO/assets.lang b/htdocs/langs/nb_NO/assets.lang index 48b4d2125d9..fc6ee6f270b 100644 --- a/htdocs/langs/nb_NO/assets.lang +++ b/htdocs/langs/nb_NO/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 = Aktiva -NewAsset = Ny aktiva -AccountancyCodeAsset = Regnskapskode (aktiva) -AccountancyCodeDepreciationAsset = Regnskapskode (aktiva avskrivningskonto) -AccountancyCodeDepreciationExpense = Regnskapskode (aktiva kostnadskonto) -NewAssetType=Ny aktivatype -AssetsTypeSetup=Oppsett av aktivatype -AssetTypeModified=Aktivatype endret -AssetType=Aktivatype +NewAsset=Ny aktiva +AccountancyCodeAsset=Regnskapskode (aktiva) +AccountancyCodeDepreciationAsset=Regnskapskode (aktiva avskrivningskonto) +AccountancyCodeDepreciationExpense=Regnskapskode (aktiva kostnadskonto) AssetsLines=Aktiva DeleteType=Slett -DeleteAnAssetType=Slett en aktivatype -ConfirmDeleteAssetType=Er du sikker på at du vil slette denne aktivatypen? -ShowTypeCard=Vis type '%s' +DeleteAnAssetType=Slett en aktivamodell +ConfirmDeleteAssetType=Er du sikker på at du vil slette denne aktivamodellen? +ShowTypeCard=Vis modell '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Aktiva +ModuleAssetsName=Aktiva # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Aktiva beskrivelse +ModuleAssetsDesc=Aktiva beskrivelse # # Admin page # -AssetsSetup = Aktiva oppsett -Settings = innstillinger -AssetsSetupPage = Innstillingsside for aktiva -ExtraFieldsAssetsType = Komplementære attributter (Aktivatype) -AssetsType=Aktivatype -AssetsTypeId=Aktivatype-ID -AssetsTypeLabel=Aktivatype etikett -AssetsTypes=Aktivatyper +AssetSetup=Aktiva oppsett +AssetSetupPage=Innstillingsside for aktiva +ExtraFieldsAssetModel=Komplementære attributter (aktivets modell) + +AssetsType=Aktivamodell +AssetsTypeId=Aktivamodell-ID +AssetsTypeLabel=Aktivamodell-etikett +AssetsTypes=Aktivamodeller +ASSET_ACCOUNTANCY_CATEGORY=Regnskapsgruppe for eiendeler # # Menu # -MenuAssets = Eiendeler -MenuNewAsset = Ny eiendel -MenuTypeAssets = Aktivatyper -MenuListAssets = Liste -MenuNewTypeAssets = Ny -MenuListTypeAssets = Liste +MenuAssets=Eiendeler +MenuNewAsset=Ny eiendel +MenuAssetModels=Modell eiendeler +MenuListAssets=Liste +MenuNewAssetModel=Ny eiendelsmodell +MenuListAssetModels=Liste # # Module # -NewAssetType=Ny aktivatype -NewAsset=Ny aktiva +ConfirmDeleteAsset=Vil du virkelig fjerne denne eiendelen? + +# +# Tab +# +AssetDepreciationOptions=Avskrivningsmuligheter +AssetAccountancyCodes=Regnskapskonti +AssetDepreciation=Avskrivninger + +# +# Asset +# +Asset=Ressurs +Assets=Aktiva +AssetReversalAmountHT=Tilbakeføringsbeløp (uten avgifter) +AssetAcquisitionValueHT=Anskaffelsesbeløp (uten avgifter) +AssetRecoveredVAT=Recovered VAT +AssetReversalDate=Reversal date +AssetDateAcquisition=Anskaffelsesdato +AssetDateStart=Dato for oppstart +AssetAcquisitionType=Type anskaffelse +AssetAcquisitionTypeNew=Ny +AssetAcquisitionTypeOccasion=Brukt +AssetType=Type eiendel +AssetTypeIntangible=Immateriell +AssetTypeTangible=Håndgripelig +AssetTypeInProgress=Pågår +AssetTypeFinancial=Finansiell +AssetNotDepreciated=Ikke avskrevet +AssetDisposal=Avhending +AssetConfirmDisposalAsk=Er du sikker på at du vil avhende eiendelen %s ? +AssetConfirmReOpenAsk=Er du sikker på at du vil gjenåpne ressursen %s ? + +# +# Asset status +# +AssetInProgress=Pågår +AssetDisposed=Avhendet +AssetRecorded=Regnskapsført + +# +# Asset disposal +# +AssetDisposalDate=Dato for avhending +AssetDisposalAmount=Avhendingsverdi +AssetDisposalType=Type avhending +AssetDisposalDepreciated=Depreciate the year of transfer +AssetDisposalSubjectToVat=Disposal subject to VAT + +# +# Asset model +# +AssetModel=Eiendel modell +AssetModels=Eiendel modeller + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Økonomisk avskrivning +AssetDepreciationOptionAcceleratedDepreciation=Akselerert avskrivning (skatt) +AssetDepreciationOptionDepreciationType=Type avskrivning +AssetDepreciationOptionDepreciationTypeLinear=Lineær +AssetDepreciationOptionDepreciationTypeDegressive=Degressiv +AssetDepreciationOptionDepreciationTypeExceptional=Eksepsjonell +AssetDepreciationOptionDegressiveRate=Degressiv rate +AssetDepreciationOptionAcceleratedDepreciation=Akselerert avskrivning (skatt) +AssetDepreciationOptionDuration=Varighet +AssetDepreciationOptionDurationType=Type varighet +AssetDepreciationOptionDurationTypeAnnual=Årlig +AssetDepreciationOptionDurationTypeMonthly=Månedlig +AssetDepreciationOptionDurationTypeDaily=Daglig +AssetDepreciationOptionRate=Rate (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Avskrivningsgrunnlag (ekskl. mva) +AssetDepreciationOptionAmountBaseDeductibleHT=Egenandelsgrunnlag (ekskl. mva) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Total amount last depreciation (excl. VAT) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Økonomisk avskrivning +AssetAccountancyCodeAsset=Ressurs +AssetAccountancyCodeDepreciationAsset=Avskrivninger +AssetAccountancyCodeDepreciationExpense=Depreciation expense +AssetAccountancyCodeValueAssetSold=Value of asset disposed +AssetAccountancyCodeReceivableOnAssignment=Receivable on disposal +AssetAccountancyCodeProceedsFromSales=Inntekter fra avhending +AssetAccountancyCodeVatCollected=Innkrevd MVA +AssetAccountancyCodeVatDeductible=Gjenvunnet merverdiavgift på eiendeler +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Akselerert avskrivning (skatt) +AssetAccountancyCodeAcceleratedDepreciation=Konto +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Depreciation expense +AssetAccountancyCodeProvisionAcceleratedDepreciation=Repossession/Provision + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Depreciation basis (excl. VAT) +AssetDepreciationBeginDate=Start of depreciation on +AssetDepreciationDuration=Varighet +AssetDepreciationRate=Rate (%%) +AssetDepreciationDate=Avskrivningsdato +AssetDepreciationHT=Avskrivninger (ekskl. mva) +AssetCumulativeDepreciationHT=Akkumulerte avskrivninger (ekskl. mva) +AssetResidualHT=Restverdi (ekskl. mva) +AssetDispatchedInBookkeeping=Avskrivninger bokført +AssetFutureDepreciationLine=Fremtidige avskrivninger +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 diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang index dd89ad3631b..16826ef708e 100644 --- a/htdocs/langs/nb_NO/banks.lang +++ b/htdocs/langs/nb_NO/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transaksjon AddBankRecord=Legg til oppføringer AddBankRecordLong=Legg til oppføring manuelt Conciliated=Slått sammen -ConciliatedBy=Avstemt av +ReConciliedBy=Avstemt av DateConciliating=Avstemt den BankLineConciliated=Oppføring avstemt med bankkvittering -Reconciled=Slått sammen -NotReconciled=Ikke sammenslått +BankLineReconciled=Slått sammen +BankLineNotReconciled=Ikke sammenslått CustomerInvoicePayment=Kundeinnbetaling SupplierInvoicePayment=Leverandørbetaling SubscriptionPayment=Abonnementsbetaling @@ -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 kassekontroll -NewCashFence=New cash desk opening or closing +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Fargelegg bevegelser BankColorizeMovementDesc=Hvis denne funksjonen er aktivert, kan du velge spesifikk bakgrunnsfarge for debet- eller kredittbevegelser BankColorizeMovementName1=Bakgrunnsfarge for debetbevegelse @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Hvis du ikke foretar bankavstemninger på noen 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 diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang index 6434c132de9..3d12c1d30c0 100644 --- a/htdocs/langs/nb_NO/bills.lang +++ b/htdocs/langs/nb_NO/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Betalingsrapporter PaymentsAlreadyDone=Betalinger allerede utført PaymentsBackAlreadyDone=Refusjon allerede gjort PaymentRule=Betalingsregel -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Betalingsmetode +PaymentModes=Betalingsmetoder +DefaultPaymentMode=Standard betalingsmåte DefaultBankAccount=Standard bankkonto -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Betalingsmåte (id) +CodePaymentMode=Betalingsmåte (kode) +LabelPaymentMode=Betalingsmåte (etikett) +PaymentModeShort=Betalingsmetode PaymentTerm=Betalingsbetingelser PaymentConditions=Betalingsbetingelser PaymentConditionsShort=Betalingsbetingelser @@ -119,7 +119,7 @@ ConvertExcessPaidToReduc=Konverter overskudd betalt til tilgjengelig rabatt EnterPaymentReceivedFromCustomer=Legg inn betaling mottatt fra kunde EnterPaymentDueToCustomer=Lag purring til kunde DisabledBecauseRemainderToPayIsZero=Slått av fordi restbeløpet er null -PriceBase=Base price +PriceBase=Grunnpris BillStatus=Fakturastatus StatusOfGeneratedInvoices=Status for genererte fakturaer BillStatusDraft=Kladd (må valideres) @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Feil! Korrigeringsfaktura må ha negativt beløp ErrorInvoiceOfThisTypeMustBePositive=Feil, denne fakturaen må ha et beløp eksklusivt MVA (eller null) ErrorCantCancelIfReplacementInvoiceNotValidated=Feil: Kan ikke kansellere en faktura som er erstattet av en annen faktura som fortsatt er i kladdemodus ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne delen eller en annen er allerede brukt, så rabattserien kan ikke fjernes. +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 ActionsOnBill=Handlinger på faktura @@ -235,7 +236,7 @@ AlreadyPaidBack=Allerede tilbakebetalt AlreadyPaidNoCreditNotesNoDeposits=Allerede betalt (uten kreditnotater og nedbetalinger) Abandoned=Tapsført RemainderToPay=Restbeløp -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=Gjenværende ubetalt, original valuta RemainderToTake=Restbeløp RemainderToTakeMulticurrency=Remaining amount to take, original currency RemainderToPayBack=Restbeløp å refundere @@ -268,8 +269,8 @@ DateMaxPayment=Betaling forfaller DateInvoice=Fakturadato DatePointOfTax=Skattepunkt NoInvoice=Ingen faktura -NoOpenInvoice=No open invoice -NbOfOpenInvoices=Number of open invoices +NoOpenInvoice=Ingen åpen faktura +NbOfOpenInvoices=Antall åpne fakturaer ClassifyBill=Klassifiser faktura SupplierBillsToPay=Ubetalte leverandørfakturaer CustomerBillsUnpaid=Ubetalte kundefakturaer @@ -279,9 +280,11 @@ SetMode=Angi betalingsmåte SetRevenuStamp=Sett stempelmerke Billed=Fakturert RecurringInvoices=Gjentagende fakturaer -RecurringInvoice=Recurring invoice +RecurringInvoice=Gjentakende faktura RepeatableInvoice=Fakturamal RepeatableInvoices=Fakturamaler +RecurringInvoicesJob=Generering av gjentakende fakturaer (salgsfakturaer) +RecurringSupplierInvoicesJob=Generering av gjentakende fakturaer (innkjøpsfakturaer) Repeatable=Mal Repeatables=Maler ChangeIntoRepeatableInvoice=Gjør om til fakturamal @@ -426,10 +429,19 @@ PaymentConditionShort14D=14 dager PaymentCondition14D=14 dager PaymentConditionShort14DENDMONTH=14 dager etter månedens slutt PaymentCondition14DENDMONTH=Innen 14 dager etter slutten av måneden +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% innskudd +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% innskudd, resten ved levering 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 %% +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 # PaymentType PaymentTypeVIR=Bankoverførsel PaymentTypeShortVIR=Bankoverførsel @@ -482,6 +494,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 LawApplicationPart1=Alle varer forblir vår eiendom LawApplicationPart2=til de er fullt ut betalt. LawApplicationPart3=selgeren til full betaling av @@ -599,11 +612,12 @@ BILL_SUPPLIER_DELETEInDolibarr=Leverandørfaktura slettet UnitPriceXQtyLessDiscount=Enhetspris x Antall - Rabatt CustomersInvoicesArea=Kunde-faktureringsområde SupplierInvoicesArea=Leverandør faktureringsområde -FacParentLine=Faktura forelderlinje SituationTotalRayToRest=Rest å betale eks. mva PDFSituationTitle=Delfaktura nr. %d SituationTotalProgress=Total progresjon%d %% -SearchUnpaidInvoicesWithDueDate=Search unpaid invoices with a due date = %s +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) diff --git a/htdocs/langs/nb_NO/blockedlog.lang b/htdocs/langs/nb_NO/blockedlog.lang index c4aebc4e0b3..0b368bc2e08 100644 --- a/htdocs/langs/nb_NO/blockedlog.lang +++ b/htdocs/langs/nb_NO/blockedlog.lang @@ -52,6 +52,6 @@ BlockedLogDisableNotAllowedForCountry=Liste over land der bruken av denne module OnlyNonValid=Ikke gyldig TooManyRecordToScanRestrictFilters=For mange poster å skanne/analysere. Vennligst begrens listen med mer restriktive filtre. RestrictYearToExport=Begrens måned/år å eksportere -BlockedLogEnabled=System to track events into unalterable logs has been enabled +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. diff --git a/htdocs/langs/nb_NO/bookmarks.lang b/htdocs/langs/nb_NO/bookmarks.lang index a0e7f1410e8..66850c4ccab 100644 --- a/htdocs/langs/nb_NO/bookmarks.lang +++ b/htdocs/langs/nb_NO/bookmarks.lang @@ -15,8 +15,8 @@ UrlOrLink=URL BehaviourOnClick=Oppførsel når et bokmerke-URL er valgt CreateBookmark=Opprett bokmerke SetHereATitleForLink=Angi et navn for bokmerket -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=Bruk en ekstern/absolutt lenke (https://externalurl.com) eller en intern/relativ lenke (/mypage.php). Du kan også bruke telefon som tlf:0123456. ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Velg om den koblede siden skal åpnes i den nåværende kategorien eller en ny kategori BookmarksManagement=Behandling av bokmerker BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=Ingen bokmerker definert diff --git a/htdocs/langs/nb_NO/boxes.lang b/htdocs/langs/nb_NO/boxes.lang index 191c5b93f60..bd7203b0e91 100644 --- a/htdocs/langs/nb_NO/boxes.lang +++ b/htdocs/langs/nb_NO/boxes.lang @@ -18,12 +18,12 @@ BoxLastActions=Siste hendelser BoxLastContracts=Siste kontrakter BoxLastContacts=Siste kontakter/adresser BoxLastMembers=Siste medlemmer -BoxLastModifiedMembers=Latest modified members +BoxLastModifiedMembers=Sist endrede medlemmer BoxLastMembersSubscriptions=Latest member subscriptions BoxFicheInter=Siste intervensjoner BoxCurrentAccounts=Åpne kontobalanse BoxTitleMemberNextBirthdays=Fødselsdager denne måneden (medlemmer) -BoxTitleMembersByType=Medlemmer etter type +BoxTitleMembersByType=Members by type and status BoxTitleMembersSubscriptionsByYear=Members Subscriptions by year BoxTitleLastRssInfos=Siste %s nyheter fra %s BoxTitleLastProducts=Varer/Tjenester: siste %s endret @@ -114,7 +114,7 @@ BoxCustomersOutstandingBillReached=Kunder med utestående grense nådd # Pages UsersHome=Home users and groups MembersHome=Home Membership -ThirdpartiesHome=Home Thirdparties -TicketsHome=Home Tickets +ThirdpartiesHome=Hjem Tredjeparter +TicketsHome=Hjem Billetter AccountancyHome=Home Accountancy ValidatedProjects=Validerte prosjekter diff --git a/htdocs/langs/nb_NO/cashdesk.lang b/htdocs/langs/nb_NO/cashdesk.lang index 7f3b2c27652..5df74a896ed 100644 --- a/htdocs/langs/nb_NO/cashdesk.lang +++ b/htdocs/langs/nb_NO/cashdesk.lang @@ -42,7 +42,7 @@ 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) -NotAvailableWithBrowserPrinter=Not available when printer for receipt is set to browser +NotAvailableWithBrowserPrinter=Ikke tilgjengelig når skriver for kvittering er satt til nettleser SearchProduct=Søk produkt Receipt=Kvittering Header=Overskrift @@ -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=Kasseavslutning -CashFenceDone=Kasseavslutning utført for perioden +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Ant. fakturaer Paymentnumpad=Tastaturtype for å legge inn betaling Numberspad=Nummertastatur @@ -84,7 +84,7 @@ InvoiceIsAlreadyValidated=Faktura er allerede validert NoLinesToBill=Ingen linjer å fakturere CustomReceipt=Tilpasset kvittering ReceiptName=Kvitteringsnavn -ProductSupplements=Manage supplements of products +ProductSupplements=Administrer varesupplement SupplementCategory=Tilleggskategori ColorTheme=Fargetema Colorful=Fargerik @@ -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" popup when opening the POS -CloseCashFence=Lukk kassekontroll +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Kontantrapport MainPrinterToUse=Hovedskriver som skal brukes OrderPrinterToUse=Odreskriver som skal brukes @@ -130,7 +130,9 @@ 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 +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
    diff --git a/htdocs/langs/nb_NO/categories.lang b/htdocs/langs/nb_NO/categories.lang index c15fc12ff30..f0e6d4284cc 100644 --- a/htdocs/langs/nb_NO/categories.lang +++ b/htdocs/langs/nb_NO/categories.lang @@ -14,8 +14,8 @@ 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 +AccountsCategoriesArea=Bankkonto etikett/kategorier område +ProjectsCategoriesArea=Prosjekt tags/kategorier område UsersCategoriesArea=User tags/categories area SubCats=Underkategorier CatList=Liste over merker/kategorier @@ -90,11 +90,12 @@ CategorieRecursivHelp=Hvis alternativet er på, når du legger til et produkt i AddProductServiceIntoCategory=Legg til følgende vare/tjeneste AddCustomerIntoCategory=Tilordne kategori til kunde AddSupplierIntoCategory=Tilordne kategori til leverandør +AssignCategoryTo=Assign category to ShowCategory=Vis merke/kategori ByDefaultInList=Som standard i liste ChooseCategory=Velg kategori StocksCategoriesArea=Varehuskategorier ActionCommCategoriesArea=Arrangementskategorier WebsitePagesCategoriesArea=Side-Container Kategorier -KnowledgemanagementsCategoriesArea=KM article Categories +KnowledgemanagementsCategoriesArea=KM artikkel Kategorier UseOrOperatorForCategories=Use 'OR' operator for categories diff --git a/htdocs/langs/nb_NO/companies.lang b/htdocs/langs/nb_NO/companies.lang index d87813fa5ce..6e92a231b3f 100644 --- a/htdocs/langs/nb_NO/companies.lang +++ b/htdocs/langs/nb_NO/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=Firmanavnet %s finnes allerede. Velg et annet! ErrorSetACountryFirst=Angi land først SelectThirdParty=Velg en tredjepart -ConfirmDeleteCompany=Are you sure you want to delete this company and all related information? +ConfirmDeleteCompany=Er du sikker på at du vil slette dette selskapet og all relatert informasjon? DeleteContact=Slett kontaktperson -ConfirmDeleteContact=Are you sure you want to delete this contact and all related information? +ConfirmDeleteContact=Er du sikker på at du vil slette denne kontakten og all relatert informasjon? MenuNewThirdParty=Ny tredje part MenuNewCustomer=Ny kunde MenuNewProspect=Nytt prospekt @@ -19,6 +19,7 @@ ProspectionArea=Prospektområde IdThirdParty=Tredjepart-ID IdCompany=Firma-ID IdContact=Kontaktperson-ID +ThirdPartyAddress=Tredjeparts adresse ThirdPartyContacts=Tredjeparts kontakter ThirdPartyContact=Tredjeparts kontakt/adresse Company=Bedrift @@ -44,26 +45,29 @@ ToCreateContactWithSameName=Vil automatisk opprette en kontakt/adresse med samme ParentCompany=Morselskap Subsidiaries=Datterselskaper ReportByMonth=Rapport per måned -ReportByCustomers=Report per customer -ReportByThirdparties=Report per thirdparty +ReportByCustomers=Rapport per kunde +ReportByThirdparties=Rapporter per tredjepart ReportByQuarter=Report per rate CivilityCode=Civility code (ikke i Norge) RegisteredOffice=Registered office (ikke i Norge) Lastname=Etternavn Firstname=Fornavn +RefEmployee=Ansatt referanse +NationalRegistrationNumber=National registration number PostOrFunction=Stilling UserTitle=Tittel 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 @@ -80,7 +84,7 @@ Web=Web Poste= Posisjon DefaultLang=Standardspråk VATIsUsed=MVA brukt -VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers +VATIsUsedWhenSelling=Dette definerer om denne tredjeparten inkluderer en merverdiavgift eller ikke når den lager en faktura til sine egne kunder VATIsNotUsed=Salgsavgift er ikke brukt CopyAddressFromSoc=Kopier adresse fra tredjepartsdetaljer ThirdpartyNotCustomerNotSupplierSoNoRef=Tredjepart verken kunde eller leverandør, ingen tilgjengelige henvisende objekter @@ -102,6 +106,7 @@ WrongSupplierCode=Leverandørkode ugyldig CustomerCodeModel=Mal kundekode SupplierCodeModel=Leverandørkode modell Gencod=Strekkode +GencodBuyPrice=Strekkode av prisreferanse ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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 +ProfId1ShortCM=Handelsregister ProfId2ShortCM=Taxpayer No. -ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Andre ProfId6ShortCM=- ProfId1CO=Prof ID 1 (RUT) ProfId2CO=- @@ -349,7 +354,7 @@ CustomerCodeDesc=Kundekode, unikt for alle kunder SupplierCodeDesc=Leverandørkode, unikt for alle leverandører RequiredIfCustomer=Påkrevet hvis tredjeparten er kunde eller prospekt RequiredIfSupplier=Påkrevd hvis tredjepart er en leverandør -ValidityControledByModule=Validity controlled by the module +ValidityControledByModule=Gyldighet kontrollert av modulen ThisIsModuleRules=Regler for denne modulen ProspectToContact=Prospekt til kontakt CompanyDeleted=Firma "%s" er slettet fra databasen. @@ -359,7 +364,7 @@ ListOfThirdParties=Liste over tredjeparter ShowCompany=Tredjepart ShowContact=Kontakt-Adresse ContactsAllShort=Alle (ingen filter) -ContactType=Kontaktperson type +ContactType=Kontaktrolle ContactForOrders=Ordrekontakt ContactForOrdersOrShipments=Ordre- eller leveransekontakt ContactForProposals=Tilbudskontakt @@ -381,7 +386,7 @@ VATIntraCheck=Sjekk VATIntraCheckDesc=MVA-ID-en må inneholde landets prefiks. Koblingen %s bruker den europeiske MVA-kontrolltjenesten (VIES) som krever internettilgang fra Dolibarr-serveren. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=Sjekk internasjonal MVA-ID på EU-kommisjonens nettsted -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraManualCheck=Du kan også sjekke manuelt på EU-kommisjonens nettsted %s ErrorVATCheckMS_UNAVAILABLE=Sjekk er ikke tilgjengelig. Tjenesten er ikke tilgjengelig for landet (%s). NorProspectNorCustomer=Ikke prospekt, eller kunde JuridicalStatus=Forretningsenhetstype @@ -457,22 +462,22 @@ ListSuppliersShort=Liste over leverandører ListProspectsShort=Liste over prospekter ListCustomersShort=Liste over kunder ThirdPartiesArea=Tredjeparter / Kontakter -LastModifiedThirdParties=Latest %s Third Parties which were modified -UniqueThirdParties=Total number of Third Parties +LastModifiedThirdParties=Siste %s Tredjeparter som ble endret +UniqueThirdParties=Totalt antall tredjeparter InActivity=Åpent ActivityCeased=Stengt ThirdPartyIsClosed=Tredjepart er stengt -ProductsIntoElements=List of products/services mapped to %s +ProductsIntoElements=Liste over varer/tjenester tilordnet til %s CurrentOutstandingBill=Gjeldende utestående regning OutstandingBill=Max. utestående beløp OutstandingBillReached=Maksimun utestående beløp nådd OrderMinAmount=Minimumsbeløp for bestilling -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. +MonkeyNumRefModelDesc=Returner et tall i formatet %syymm-nnnn for kundekoden og %syymm-nnnn for leverandørkoden der yy er år, mm er måned og nnnn er et sekvensielt automatisk økende tall uten pause og ingen retur til 0. LeopardNumRefModelDesc=Fri kode. Denne koden kan endres når som helst. ManagingDirectors=(E) navn (CEO, direktør, president ...) MergeOriginThirdparty=Dupliser tredjepart (tredjepart du vil slette) MergeThirdparties=Flett tredjeparter -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=Er du sikker på at du vil slå sammen den valgte tredjeparten med den nåværende? Alle tilknyttede objekter (fakturaer, ordre, ...) vil bli flyttet til gjeldende tredjepart, hvoretter den valgte tredjeparten vil bli slettet. ThirdpartiesMergeSuccess=Tredjeparter har blitt flettet SaleRepresentativeLogin=Innlogging for salgsrepresentant SaleRepresentativeFirstname=Selgers fornavn diff --git a/htdocs/langs/nb_NO/compta.lang b/htdocs/langs/nb_NO/compta.lang index b7b006d1ef5..ea6f3223509 100644 --- a/htdocs/langs/nb_NO/compta.lang +++ b/htdocs/langs/nb_NO/compta.lang @@ -86,7 +86,7 @@ PaymentCustomerInvoice=Kundefaktura-betaling PaymentSupplierInvoice=betaling av leverandørfaktura PaymentSocialContribution=Skatter- og avgiftsbetaling PaymentVat=MVA betaling -AutomaticCreationPayment=Automatically record the payment +AutomaticCreationPayment=Registrer betalingen automatisk ListPayment=Liste over betalinger ListOfCustomerPayments=Liste over kundebetalinger ListOfSupplierPayments=Liste over leverandørbetalinger @@ -135,20 +135,22 @@ NewCheckReceipt=Ny rabatt NewCheckDeposit=Nytt sjekkinnskudd NewCheckDepositOn=Lag kvittering for innskudd på konto: %s NoWaitingChecks=Ingen sjekker venter på å bli satt inn. -DateChequeReceived=Check receiving date +DateChequeReceived=Sjekk mottaksdato NbOfCheques=Antall sjekker PaySocialContribution=Betal skatt/avgift PayVAT=Betal en MVA-deklarasjon -PaySalary=Pay a salary card +PaySalary=Betal et lønnskort ConfirmPaySocialContribution=Er du sikker på at du vil klassifisere denne sosiale eller skatterelaterte betalingen som utført? ConfirmPayVAT=Er du sikker på at du vil klassifisere denne MVA-deklarasjonen som betalt? -ConfirmPaySalary=Are you sure you want to classify this salary card as paid? +ConfirmPaySalary=Er du sikker på at du vil klassifisere dette lønnskortet som betalt? DeleteSocialContribution=Slett en skatt eller avgift DeleteVAT=Slett en MVA-deklarasjon -DeleteSalary=Delete a salary card +DeleteSalary=Slett et lønnskort +DeleteVariousPayment=Slett en variabel betaling ConfirmDeleteSocialContribution=Er du sikker på at du vil slette denne sosiale/skatterelaterte betalingen? ConfirmDeleteVAT=Er du sikker på at du vil slette denne MVA-deklarasjonen? -ConfirmDeleteSalary=Are you sure you want to delete this salary? +ConfirmDeleteSalary=Er du sikker på at du vil slette denne lønnen? +ConfirmDeleteVariousPayment=Er du sikker på at du vil slette denne variable betalingen? ExportDataset_tax_1=Skatte- og avgiftsbetalinger CalcModeVATDebt=Modus %sMVA ved commitment regnskap%s. CalcModeVATEngagement=Modus %sMVA på inntekt-utgifter%s. @@ -287,14 +289,14 @@ ReportPurchaseTurnover=Kjøpsomsetning fakturert ReportPurchaseTurnoverCollected=Kjøpsomsetning mottatt IncludeVarpaysInResults = Inkluder forskjellige betalinger i rapportene IncludeLoansInResults = Inkluder lån i rapporter -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) +InvoiceLate30Days = Sen (> 30 dager) +InvoiceLate15Days = Sent (15 til 30 dager) +InvoiceLateMinus15Days = Sen (< 15 dager) +InvoiceNotLate = Skal innkreves (< 15 dager) +InvoiceNotLate15Days = Skal innkreves (15 til 30 dager) +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 ? diff --git a/htdocs/langs/nb_NO/contracts.lang b/htdocs/langs/nb_NO/contracts.lang index 677f441c74c..7529f23c7f4 100644 --- a/htdocs/langs/nb_NO/contracts.lang +++ b/htdocs/langs/nb_NO/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Kontrakter/abonnementer ContractsAndLine=Kontrakter og kontraktlinjer Contract=Kontrakt ContractLine=Kontraktlinje +ContractLines=Kontraktslinjer Closing=Lukker NoContracts=Ingen kontrakter MenuServices=Tjenester @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Kundens signaturkontakt HideClosedServiceByDefault=Skjul lukkede tjenester som standard ShowClosedServices=Vis lukkede tjenester HideClosedServices=Skjul lukkede tjenester +UserStartingService=Brukerstarttjeneste +UserClosingService=Brukerlukkingstjeneste diff --git a/htdocs/langs/nb_NO/cron.lang b/htdocs/langs/nb_NO/cron.lang index ed4116f8a74..431388bc0ed 100644 --- a/htdocs/langs/nb_NO/cron.lang +++ b/htdocs/langs/nb_NO/cron.lang @@ -82,6 +82,8 @@ UseMenuModuleToolsToAddCronJobs=Gå til menyen " Hjem - Administrat JobDisabled=Jobb deaktivert 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) 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 diff --git a/htdocs/langs/nb_NO/ecm.lang b/htdocs/langs/nb_NO/ecm.lang index cadacfe9a44..afd0af2e340 100644 --- a/htdocs/langs/nb_NO/ecm.lang +++ b/htdocs/langs/nb_NO/ecm.lang @@ -41,9 +41,9 @@ FileNotYetIndexedInDatabase=Filen er ikke indeksert i databasen (prøv å laste ExtraFieldsEcmFiles=Ekstrafelt Ecm Filer ExtraFieldsEcmDirectories=Ekstrafelt Ecm-mapper ECMSetup=ECM-oppsett -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 +GenerateImgWebp=Dupliser alle bilder med en annen versjon med .webp-format +ConfirmGenerateImgWebp=Hvis du bekrefter, vil du generere et bilde i .webp-format for alle bildene i denne mappen (undermapper er ikke inkludert)... +ConfirmImgWebpCreation=Bekreft duplisering av alle bilder +SucessConvertImgWebp=Bilder ble duplisert +ECMDirName=Katalognavn +ECMParentDirectory=Overordnet katalog diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang index c9842c73f67..525af6048b7 100644 --- a/htdocs/langs/nb_NO/errors.lang +++ b/htdocs/langs/nb_NO/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=E-posten %s virker feil (domenet har ingen gyldig MX-post) ErrorBadUrl=URL %s er feil ErrorBadValueForParamNotAString=Feil parameterverdi. Dette skjer vanligvis når en oversettelse mangler. ErrorRefAlreadyExists=Referanse %s eksisterer allerede. +ErrorTitleAlreadyExists=Tittel %s eksisterer allerede. ErrorLoginAlreadyExists=brukernavnet %s eksisterer allerede. ErrorGroupAlreadyExists=Gruppen %s eksisterer allerede. ErrorEmailAlreadyExists=E-post %s eksisterer allerede. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=En annen fil med navnet %s eksisterer all ErrorPartialFile=Filen ble ikke fullstendig mottatt av server. ErrorNoTmpDir=Midlertidig mappe %s finnes ikke. ErrorUploadBlockedByAddon=Opplastning blokkert av en PHP/Apache plugin. -ErrorFileSizeTooLarge=Filstørrelsen er for stor. +ErrorFileSizeTooLarge=Filstørrelsen er for stor eller filen er ikke oppgitt. ErrorFieldTooLong=Felt %s er for langt. ErrorSizeTooLongForIntType=Størrelse for lang for int-type (%s sifre maksimum) ErrorSizeTooLongForVarcharType=Størrelse for lang for streng-type (%s tegn maksimum) @@ -85,12 +86,13 @@ ErrorCantSaveADoneUserWithZeroPercentage=Kan ikke lagre en handling med "status ErrorRefAlreadyExists=Referanse %s eksisterer allerede. ErrorPleaseTypeBankTransactionReportName=Vennligst skriv inn kontoutskriftsnavnet der oppføringen skal rapporteres (Format YYYYMM eller YYYYMMDD) ErrorRecordHasChildren=Kunne ikke slette posten fordi den har noen under-oppføringer. -ErrorRecordHasAtLeastOneChildOfType=Object %s has at least one child of type %s +ErrorRecordHasAtLeastOneChildOfType=Objekt %s har minst ett barn av typen %s ErrorRecordIsUsedCantDelete=Kan ikke slette posten. Den er allerede brukt eller inkludert i et annet objekt. ErrorModuleRequireJavascript=Javascript må være aktivert for å kunne bruke denne funksjonen. For å aktivere/deaktivere Javascript, gå til menyen Hjem-> Oppsett-> Visning. 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=Field %s: The value '%s' contains a malicious data not allowed ErrorFieldValueNotIn=Felt %s : ' %s ' er ikke en verdi funnet i felt %s av %s ErrorFieldRefNotIn=Felt %s : ' %s ' er ikke en %s eksisterende ref ErrorsOnXLines=%s feil funnet @@ -113,7 +115,7 @@ ErrorFailedToLoadRSSFile=Klarer ikke hente RSS-feed. Prøv å legge konstant MAI ErrorForbidden=Ingen tilgang.
    Du prøver å få tilgang til en side, område eller funksjon i en deaktivert modul eller uten å være i en godkjent økt eller som ikke er tillatt din bruker. ErrorForbidden2=Tillatelse for denne innloggingen kan settes av Dolibarr-administratoren fra menyen %s->%s. ErrorForbidden3=Det ser ut til at Dolibarr ikke brukes gjennom en autentisert sesjon. Du kan lese mer i dokumentasjonen om hvordan du håndterer autentisering (htaccess, mod_auth eller andre...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=Merk: slett informasjonskapslene i nettleseren for å fjerne eksisterende økter for denne påloggingen. ErrorNoImagickReadimage=Funksjonen imagick_readimage finnes ikke på denne PHP-installasjonen. Forhåndsvisning er da ikke mulig. Administrator kan slå av denne fanen i Oppsett - Visning. ErrorRecordAlreadyExists=Posten eksistererer fra før. ErrorLabelAlreadyExists=Denne etiketten eksisterer allerede @@ -121,7 +123,7 @@ ErrorCantReadFile=Kunne ikke lese filen '%s' ErrorCantReadDir=Kunne ikke lese mappen '%s' ErrorBadLoginPassword=Feil verdi for brukernavn eller passord ErrorLoginDisabled=Kontoen din har blitt deaktivert -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=Kunne ikke kjøre ekstern kommando. Sjekk at den er tilgjengelig og kan kjøres av PHP-serverbrukeren. Sjekk også at kommandoen ikke er beskyttet på skallnivå av et sikkerhetslag som apparmor. ErrorFailedToChangePassword=Kunne ikke endre passord ErrorLoginDoesNotExists=Bruker med loginn %s kunne ikke bli funnet. ErrorLoginHasNoEmail=Denne brukeren har ingen e-postadresse. Prosess avbrutt. @@ -266,22 +268,34 @@ ErrorDateIsInFuture=Feil, datoen kan ikke settes frem i tid ErrorAnAmountWithoutTaxIsRequired=Feil, beløp er obligatorisk ErrorAPercentIsRequired=Feil, fyll ut prosentandelen riktig ErrorYouMustFirstSetupYourChartOfAccount=Du må først konfigurere kontoplanen din -ErrorFailedToFindEmailTemplate=Failed to find template with code name %s -ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Duration not defined on service. No way to calculate the hourly price. +ErrorFailedToFindEmailTemplate=Kunne ikke finne mal med kodenavn %s +ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Varighet ikke definert på tjenesten. Ingen måte å beregne timeprisen. ErrorActionCommPropertyUserowneridNotDefined=Brukerens eier kreves -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=Versjonskontroll mislyktes -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 +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 +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 +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=Delete line is not allowed by current object status +ErrorAjaxRequestFailed=Forespørsel feilet +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-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=Click here to setup main parameters 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. @@ -310,25 +324,26 @@ WarningTheHiddenOptionIsOn=Advarsel, det skjulte alternativet %s er på WarningCreateSubAccounts=Advarsel, du kan ikke opprette en underkonto direkte, du må opprette en tredjepart eller en bruker og tildele dem en regnskapskode for å finne dem i denne listen 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=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. +WarningPaypalPaymentNotCompatibleWithStrict=Verdien 'Strict' gjør at betalingsfunksjonene på nettet ikke fungerer som de skal. Bruk 'Lax' i stedet. +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 +RequireValidValue = Verdien er ikke gyldig +RequireAtLeastXString = Krever minst %s tegn +RequireXStringMax = Krever maks%s tegn +RequireAtLeastXDigits = Krever minst %s siffer +RequireXDigitsMax = Krever maks %s siffer +RequireValidNumeric = Krever en numerisk verdi +RequireValidEmail = E-postadressen er ikke gyldig +RequireMaxLength = Lengden må være mindre enn %s tegn +RequireMinLength = Lengden må være mer enn %s tegn +RequireValidUrl = Krev gyldig URL +RequireValidDate = Krev en gyldig dato +RequireANotEmptyValue = Er påkrevd +RequireValidDuration = Krev en gyldig varighet +RequireValidExistingElement = Krev en eksisterende verdi +RequireValidBool = Krev en gyldig boolsk verdi +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 diff --git a/htdocs/langs/nb_NO/eventorganization.lang b/htdocs/langs/nb_NO/eventorganization.lang index 1550104e1a6..70651303828 100644 --- a/htdocs/langs/nb_NO/eventorganization.lang +++ b/htdocs/langs/nb_NO/eventorganization.lang @@ -19,149 +19,151 @@ # ModuleEventOrganizationName = Arrangementorganisasjon EventOrganizationDescription = Arrangementsorganisasjon gjennom Prosjektmodul -EventOrganizationDescriptionLong= Manage the organization of an event (show, conferences, attendees or speakers, with public pages for suggestion, vote or registration) +EventOrganizationDescriptionLong= Administrer organiseringen av et arrangement (show, konferanser, deltakere eller foredragsholdere, med offentlige sider for forslag, stemme eller registrering) # # Menu # EventOrganizationMenuLeft = Organiserte arrangementer EventOrganizationConferenceOrBoothMenuLeft = Konferanse eller messe -PaymentEvent=Payment of event +PaymentEvent=Betaling av arrangement # # Admin page # -NewRegistration=Registration +NewRegistration=Registrering EventOrganizationSetup=Oppsett av arrangementorganisasjon -EventOrganization=Event organization +EventOrganization=Arrangementsorganisering Settings=Innstillinger EventOrganizationSetupPage = Konfigurasjonsside for arrangementsorganisasjon -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 +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_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 +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Mal for e-post som skal sendes etter å ha mottatt et forslag til en konferanse. +EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Mal for e-post som skal sendes etter å ha mottatt et forslag til stand. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Mal for e-post som skal sendes etter at en påmelding til en stand er betalt. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Mal for e-post som skal sendes etter at en påmelding til et arrangement er betalt. +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER = Mal for e-post som skal brukes når du sender e-poster fra masseaksjonen "Send e-poster" til talere +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Mal for e-post som skal brukes når du sender e-poster fra masseaksjonen "Send e-poster" på deltakerlisten +EVENTORGANIZATION_FILTERATTENDEES_CAT = I skjemaet for å opprette/legge til en deltaker, begrenser listen over tredjeparter til tredjeparter i kategorien +EVENTORGANIZATION_FILTERATTENDEES_TYPE = I skjemaet for å opprette/legge til en deltaker, begrenser listen over tredjeparter til tredjeparter med arten # # Object # EventOrganizationConfOrBooth= Konferanse eller messe -ManageOrganizeEvent = Manage the organization of an event +ManageOrganizeEvent = Administrer organiseringen av et arrangement ConferenceOrBooth = Konferanse eller messe ConferenceOrBoothTab = Konferanse eller messe -AmountPaid = Amount paid -DateOfRegistration = Date of registration -ConferenceOrBoothAttendee = Conference Or Booth Attendee +AmountPaid = Beløpet betalt +DateOfRegistration = Registreringsdato +ConferenceOrBoothAttendee = Konferanse- eller standdeltaker # # 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 +YourOrganizationEventConfRequestWasReceived = Din forespørsel om konferanse ble mottatt +YourOrganizationEventBoothRequestWasReceived = Din forespørsel om stand ble mottatt +EventOrganizationEmailAskConf = Forespørsel om konferanse +EventOrganizationEmailAskBooth = Forespørsel om stand +EventOrganizationEmailBoothPayment = Betaling av standen din +EventOrganizationEmailRegistrationPayment = Påmelding til et arrangement EventOrganizationMassEmailAttendees = Kommunikasjon til deltakere -EventOrganizationMassEmailSpeakers = Communication to speakers -ToSpeakers=To speakers +EventOrganizationMassEmailSpeakers = Kommunikasjon til foredragsholdere +ToSpeakers=Til foredragsholdere # # Event # AllowUnknownPeopleSuggestConf=Tillat folk å foreslå konferanser AllowUnknownPeopleSuggestConfHelp=Tillat ukjente personer å foreslå en konferanse de ønsker å holde -AllowUnknownPeopleSuggestBooth=Allow people to apply for a booth -AllowUnknownPeopleSuggestBoothHelp=Allow unknown people to apply for a booth +AllowUnknownPeopleSuggestBooth=La folk søke om stand +AllowUnknownPeopleSuggestBoothHelp=La ukjente søke om stand PriceOfRegistration=Pris for registrering -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 +PriceOfRegistrationHelp=Pris for å registrere seg eller delta i arrangementet +PriceOfBooth=Abonnementspris for en stand +PriceOfBoothHelp=Abonnementspris for en stand +EventOrganizationICSLink=Koble til ICS for konferanser +ConferenceOrBoothInformation=Informasjon om konferanse eller stand Attendees=Deltakere -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 +ListOfAttendeesOfEvent=Liste over deltakere til arrangementsprosjektet +DownloadICSLink = Last ned ICS-lenke +EVENTORGANIZATION_SECUREKEY = Seed for å sikre nøkkelen til den offentlige registreringssiden for å foreslå en konferanse +SERVICE_BOOTH_LOCATION = Tjenesten brukt for fakturalinjen om en standplassering +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Tjenesten som brukes for fakturalinjen om et deltakerabonnement på et arrangement +NbVotes=Antall stemmer # # Status # EvntOrgDraft = Kladd -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed +EvntOrgSuggested = Foreslått +EvntOrgConfirmed = Bekreftet EvntOrgNotQualified = Ikke kvalifisert EvntOrgDone = Utført EvntOrgCancelled = Kansellert # # 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. +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. -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 +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 +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 = 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 +MissingOrBadSecureKey = Sikkerhetsnøkkelen er ugyldig eller mangler +EvntOrgWelcomeMessage = Dette skjemaet lar deg registrere deg som ny deltaker til arrangementet: %s +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 EventType = Hendelsestype -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=Stand-etikett +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 -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) +NewSubscription=Registrering +OrganizationEventConfRequestWasReceived=Ditt forslag til en konferanse er mottatt +OrganizationEventBoothRequestWasReceived=Din forespørsel om stand er mottatt +OrganizationEventPaymentOfBoothWasReceived=Betalingen for standen din er registrert +OrganizationEventPaymentOfRegistrationWasReceived=Betalingen for arrangementsregistreringen din er registrert +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) -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Søknad om stand +NewSuggestionOfConference=Søknad om konferanse # # 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. +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. -SubscriptionOk = Your registration has been validated -ConfAttendeeSubscriptionConfirmation = Confirmation of your subscription to an event -Attendee = Attendee -PaymentConferenceAttendee = Conference attendee payment +SubscriptionOk = Registreringen din er validert +ConfAttendeeSubscriptionConfirmation = Bekreftelse på ditt abonnement på et arrangement +Attendee = Deltaker +PaymentConferenceAttendee = Betaling for konferansedeltakere PaymentBoothLocation = Booth location payment -DeleteConferenceOrBoothAttendee=Remove attendee +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 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 2bea6f53125..ba51387b850 100644 --- a/htdocs/langs/nb_NO/holiday.lang +++ b/htdocs/langs/nb_NO/holiday.lang @@ -41,8 +41,8 @@ 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. -NbUseDaysCPShort=Days of leave -NbUseDaysCPShortInMonth=Days of leave in month +NbUseDaysCPShort=Permisjonsdager +NbUseDaysCPShortInMonth=Permisjonsdager i måned DayIsANonWorkingDay=%s er ikke en arbeidsdag DateStartInMonth=Startdato i måned DateEndInMonth=Sluttdato i måned diff --git a/htdocs/langs/nb_NO/hrm.lang b/htdocs/langs/nb_NO/hrm.lang index db7383f745d..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 @@ -56,26 +56,36 @@ group2ToCompare=Andre brukergruppe for sammenligning OrJobToCompare=Sammenlign med krav til jobbkompetanse difference=Forskjell 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 +MaxlevelGreaterThan=Maksnivå høyere enn det forespurte +MaxLevelEqualTo=Maks nivå er lik kravet +MaxLevelLowerThan=Maksnivå lavere enn dette kravet 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=Historikk TypeSkill=Ferdighetstype -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 +AddSkill=Legg ferdigheter til jobben +RequiredSkills=Nødvendig kompetanse for denne jobben +UserRank=Brukerrangering +SkillList=Ferdighetsliste +SaveRank=Lagre rangering +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Kunnskap AbandonmentComment=Abandonment comment DateLastEval=Date last evaluation -NoEval=No evaluation done for this employee +NoEval=Ingen evaluering gjort for denne ansatte HowManyUserWithThisMaxNote=Number of users with this rank -HighestRank=Highest rank +HighestRank=Høyeste rangering 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/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang index 610a81b0135..4605a2e999d 100644 --- a/htdocs/langs/nb_NO/install.lang +++ b/htdocs/langs/nb_NO/install.lang @@ -8,6 +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=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. @@ -16,13 +17,6 @@ PHPMemoryOK=Din PHP økt-minne er satt til maks.%s bytes. Dette bør vær PHPMemoryTooLow=Din PHP max økter-minnet er satt til %s bytes. Dette er for lavt. Endre php.ini å sette memory_limit parameter til minst %s byte. Recheck=Klikk her for en mer detaljert test ErrorPHPDoesNotSupportSessions=PHP-installasjonen din støtter ikke økter. Denne funksjonen er nødvendig for å tillate Dolibarr å fungere. Sjekk PHP-oppsettet og tillatelsene i øktkatalogen. -ErrorPHPDoesNotSupportGD=Din PHP installasjon har ikke støtte for GD-funksjon. Ingen grafer vil være tilgjengelig. -ErrorPHPDoesNotSupportCurl=Din PHP-installasjon støtter ikke Curl. -ErrorPHPDoesNotSupportCalendar=PHP-installasjonen din støtter ikke php-kalenderutvidelser. -ErrorPHPDoesNotSupportUTF8=Din PHP installasjon har ikke støtte for UTF8-funksjoner. Dolibarr vil ikke fungere riktig. Løs dette før du installerer Dolibarr. -ErrorPHPDoesNotSupportIntl=PHP-installasjonen støtter ikke Intl-funksjoner. -ErrorPHPDoesNotSupportMbstring=PHP-installasjonen din støtter ikke mbstring-funksjoner. -ErrorPHPDoesNotSupportxDebug=PHP-installasjonen din støtter ikke utvidede feilsøkingsfunksjoner. ErrorPHPDoesNotSupport=PHP-installasjonen din støtter ikke %s-funksjoner. ErrorDirDoesNotExists=Mappen %s finnes ikke. ErrorGoBackAndCorrectParameters=Gå tilbake og sjekk/korrigér parametrene. @@ -30,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 70e3828eb16..b98e74e962a 100644 --- a/htdocs/langs/nb_NO/interventions.lang +++ b/htdocs/langs/nb_NO/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Intervensjon-mal ToCreateAPredefinedIntervention=Hvis du vil lage et forhåndsdefinert eller tilbakevendende intervensjon, oppretter du en vanlig intervensjon og konverterer den til intervensjonsmal ConfirmReopenIntervention=Er du sikker på at du vil gjenåpne intervensjonen %s ? GenerateInter=Generer intervensjon +FichinterNoContractLinked=Intervensjon %s er opprettet uten en tilknyttet kontrakt. +ErrorFicheinterCompanyDoesNotExist=Selskapet eksisterer ikke. Intervensjon er ikke opprettet. diff --git a/htdocs/langs/nb_NO/knowledgemanagement.lang b/htdocs/langs/nb_NO/knowledgemanagement.lang index 21668a4b710..2d394ad0ac9 100644 --- a/htdocs/langs/nb_NO/knowledgemanagement.lang +++ b/htdocs/langs/nb_NO/knowledgemanagement.lang @@ -46,9 +46,9 @@ KnowledgeRecords = Artikler KnowledgeRecord = Artikkel KnowledgeRecordExtraFields = Ekstra felt for artikkel GroupOfTicket=Billettgrupper -YouCanLinkArticleToATicketCategory=Du kan koble en artikkel til en billettgruppe (artikkelen vil bli foreslått under kvalifisering av nye billetter) -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=Foreslått for billetter når gruppen er -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=Angi som foreldet +ConfirmCloseKM=Bekrefter du at avslutningen av denne artikkelen som foreldet? +ConfirmReopenKM=Vil du gjenopprette denne artikkelen til status "Validert"? diff --git a/htdocs/langs/nb_NO/languages.lang b/htdocs/langs/nb_NO/languages.lang index de4ba72b600..861cfa57ddd 100644 --- a/htdocs/langs/nb_NO/languages.lang +++ b/htdocs/langs/nb_NO/languages.lang @@ -1,13 +1,14 @@ # Dolibarr language file - Source file is en_US - languages Language_am_ET=Etiopisk Language_ar_AR=Arabisk -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=Arabisk (Algerie) Language_ar_EG=Arabisk (Egypt) -Language_ar_MA=Arabic (Moroco) +Language_ar_JO=Arabisk (Jordan) +Language_ar_MA=Arabisk (Marokko) Language_ar_SA=Arabisk -Language_ar_TN=Arabic (Tunisia) -Language_ar_IQ=Arabic (Iraq) -Language_as_IN=Assamese +Language_ar_TN=Arabisk (Tunisia) +Language_ar_IQ=Arabisk (Irak) +Language_as_IN=Assamisk Language_az_AZ=Aserbajdsjansk Language_bn_BD=Bengalsk Language_bn_IN=Bengali (India) @@ -15,6 +16,7 @@ Language_bg_BG=Bulgarsk Language_bs_BA=Bosnisk Language_ca_ES=Katalansk Language_cs_CZ=Tsjekkisk +Language_cy_GB=Walisisk Language_da_DA=Dansk Language_da_DK=Dansk Language_de_DE=Tysk @@ -22,6 +24,7 @@ Language_de_AT=Tysk (Østerrike) Language_de_CH=Tysk (Sveits) Language_el_GR=Gresk Language_el_CY=Gresk (Kypros) +Language_en_AE=Engelsk (Forente Arabiske Emirater) Language_en_AU=Engelsk (Australia) Language_en_CA=Engelsk (Canada) Language_en_GB=Engelsk (U.K.) @@ -74,7 +77,7 @@ Language_it_IT=Italiensk Language_it_CH=Italiensk (Sveits) Language_ja_JP=Japansk Language_ka_GE=Georgisk -Language_kk_KZ=Kazakh +Language_kk_KZ=kasakhisk Language_km_KH=Khmer Language_kn_IN=Kanadisk Language_ko_KR=Koreansk @@ -83,19 +86,21 @@ Language_lt_LT=Litauisk Language_lv_LV=Latvisk Language_mk_MK=Makedonsk Language_mn_MN=Mongolsk +Language_my_MM=Burmesisk Language_nb_NO=Norsk (bokmål) Language_ne_NP=Nepalsk Language_nl_BE=Nederlandsk (Belgia) Language_nl_NL=Nederlandsk Language_pl_PL=Polsk -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=Portugisisk (Angola) Language_pt_BR=Portugisisk (Brasil) Language_pt_PT=Portugisisk -Language_ro_MD=Romanian (Moldavia) +Language_ro_MD=Rumensk (Moldavia) Language_ro_RO=Rumensk Language_ru_RU=Russisk Language_ru_UA=Russisk (Ukraina) -Language_tg_TJ=Tajik +Language_ta_IN=Tamil +Language_tg_TJ=tadsjikisk Language_tr_TR=Tyrkisk Language_sl_SI=Slovensk Language_sv_SV=Svensk @@ -106,6 +111,7 @@ Language_sr_RS=Serbisk Language_sw_SW=Kiswahili Language_th_TH=Thai Language_uk_UA=Ukrainsk +Language_ur_PK=Urdu Language_uz_UZ=Usbekisk Language_vi_VN=Vietnamesisk Language_zh_CN=Kinesisk diff --git a/htdocs/langs/nb_NO/ldap.lang b/htdocs/langs/nb_NO/ldap.lang index 6184f5b8f46..03089c24f9a 100644 --- a/htdocs/langs/nb_NO/ldap.lang +++ b/htdocs/langs/nb_NO/ldap.lang @@ -16,7 +16,7 @@ LDAPFieldFirstSubscriptionAmount=Første abonnementsbeløp LDAPFieldLastSubscriptionDate=Siste abonnementsdato LDAPFieldLastSubscriptionAmount=Siste abonnementsbeløp LDAPFieldSkype=Skype ID -LDAPFieldSkypeExample=Eksempel: skypeNavn +LDAPFieldSkypeExample=Eksempel: SkypeName UserSynchronized=Brukeren er synkronisert GroupSynchronized=Gruppe synkronisert MemberSynchronized=Medlem synkronisert @@ -24,4 +24,8 @@ MemberTypeSynchronized=Medlemstype synkronisert ContactSynchronized=Kontakt synkronisert ForceSynchronize=Tving synkronisering Dolibarr -> LDAP ErrorFailedToReadLDAP=Kunne ikke lese LDAP-databasen. Sjekk LDAP-modulens innstillinger og databasetilgjengelighet. -PasswordOfUserInLDAP=Password of user in LDAP +PasswordOfUserInLDAP=Passord for bruker i LDAP +LDAPPasswordHashType=Passordhash-type +LDAPPasswordHashTypeExample=Type passordhash som brukes på serveren +SupportedForLDAPExportScriptOnly=Støttes kun av et ldap-eksportskript +SupportedForLDAPImportScriptOnly=Støttes kun av et ldap-importskript diff --git a/htdocs/langs/nb_NO/loan.lang b/htdocs/langs/nb_NO/loan.lang index 3950d015409..9c048550be7 100644 --- a/htdocs/langs/nb_NO/loan.lang +++ b/htdocs/langs/nb_NO/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=Finansiell forpliktelse InterestAmount=Rente CapitalRemain=Gjenstående kapital TermPaidAllreadyPaid = Denne terminen er allerede betalt -CantUseScheduleWithLoanStartedToPaid = Kan ikke bruke planlegger for et lån med startet betaling +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Du kan ikke endre rente hvis du bruker tidsplan # Admin ConfigLoan=Oppset av lån-modulen diff --git a/htdocs/langs/nb_NO/mails.lang b/htdocs/langs/nb_NO/mails.lang index 45bb44508a1..bc39a8d9c3b 100644 --- a/htdocs/langs/nb_NO/mails.lang +++ b/htdocs/langs/nb_NO/mails.lang @@ -15,7 +15,7 @@ MailToUsers=Til bruker(e) MailCC=Kopi til MailToCCUsers=Kopier til brukere(e) MailCCC=Cached kopi til -MailTopic=Email subject +MailTopic=E-post emne MailText=Meldingstekst MailFile=Filvedlegg MailMessage=E-mail meldingstekst @@ -60,7 +60,7 @@ EMailTestSubstitutionReplacedByGenericValues=Når du er i testmodus blir flettef MailingAddFile=Legg ved denne filen NoAttachedFiles=Ingen vedlagte filer BadEMail=Feil verdi for e-post -EMailNotDefined=Email not defined +EMailNotDefined=E-post ikke definert ConfirmCloneEMailing=Er du sikker på at du vil klone denne epostutsendelsen? CloneContent=Klon melding CloneReceivers=Klon mottakere @@ -132,8 +132,8 @@ NoNotificationsWillBeSent=Ingen automatiske e-postvarsler er planlagt for denne ANotificationsWillBeSent=Én automatisk varsling vil bli sendt via e-post SomeNotificationsWillBeSent=%s automatiske varsler vil bli sendt via e-post AddNewNotification=Abonner på et nytt automatisk e-postvarsel (mål/hendelse) -ListOfActiveNotifications=List of all active subscriptions (targets/events) for automatic email notification -ListOfNotificationsDone=List of all automatic email notifications sent +ListOfActiveNotifications=Liste over alle aktive abonnementer (mål/hendelser) for automatisk e-postvarsling +ListOfNotificationsDone=Liste over alle automatiske e-postvarsler sendt MailSendSetupIs=E-postutsendelser er blitt satt opp til '%s'. Denne modusen kan ikke brukes ved masseutsendelser MailSendSetupIs2=Logg på som administrator, gå til menyen %sHjem - Oppsett - E-post%s for å endre parameter '%s' for å bruke '%s' modus. I denne modusen for du tilgang til oppsett av SMTP-server og muligheten til å bruke masseutsendelser. MailSendSetupIs3=Ved spørsmål om hvordan du skal sette opp SMTP-serveren din, kontakt %s @@ -163,8 +163,8 @@ AdvTgtDeleteFilter=Slett filter AdvTgtSaveFilter=Lagre filter AdvTgtCreateFilter=Opprett filter AdvTgtOrCreateNewFilter=Navn på nytt filter -NoContactWithCategoryFound=No category found linked to some contacts/addresses -NoContactLinkedToThirdpartieWithCategoryFound=No category found linked to some thirdparties +NoContactWithCategoryFound=Ingen kategori funnet knyttet til noen kontakter/adresser +NoContactLinkedToThirdpartieWithCategoryFound=Ingen kategori funnet knyttet til enkelte tredjeparter OutGoingEmailSetup=Utgående e-post InGoingEmailSetup=Innkommende e-post OutGoingEmailSetupForEmailing=Utgående e-post (for modul %s) @@ -176,5 +176,5 @@ Answered=Besvarte IsNotAnAnswer=Er ikke svar (første e-post) IsAnAnswer=Er et svar på en første e-post RecordCreatedByEmailCollector=Post opprettet av Email Collector %s fra e-post %s -DefaultBlacklistMailingStatus=Default value for field '%s' when creating a new contact +DefaultBlacklistMailingStatus=Standardverdi for feltet '%s' når du oppretter en ny kontakt DefaultStatusEmptyMandatory=Tom, men obligatorisk diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index 790be456d63..002c7a202be 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -244,6 +244,7 @@ Designation=Beskrivelse DescriptionOfLine=Beskrivelse av linje DateOfLine=Dato for linje DurationOfLine=Varighet for linjen +ParentLine=Parent line ID Model=Dokumentmal DefaultModel=Standard dokumentmal Action=Handling @@ -344,7 +345,7 @@ KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Opprettet av +UserAuthor=Laget av UserModif=Oppdatert av b=b. Kb=Kb @@ -517,6 +518,7 @@ or=eller Other=Annen Others=Andre OtherInformations=Annen informasjon +Workflow=Arbeidsflyt Quantity=Antall Qty=Ant ChangedBy=Endret av @@ -619,6 +621,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 DateFormatYYYYMM=ÅÅÅÅ-MM DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD TT:SS @@ -709,6 +712,7 @@ FeatureDisabled=Funksjonen er slått av MoveBox=Flytt widget Offered=Tilbudt NotEnoughPermissions=Du har ikke tillatelse til å gjøre denne handlingen +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Sesjonnavn Method=Metode Receive=Motta @@ -798,6 +802,7 @@ URLPhoto=Url til bilde/logo SetLinkToAnotherThirdParty=Link til en annen tredjepart LinkTo=Lenke til LinkToProposal=Lenke til tilbud +LinkToExpedition= Link to expedition LinkToOrder=Lenke til ordre LinkToInvoice=Lenke til faktura LinkToTemplateInvoice=Link til fakturamal @@ -1164,3 +1169,14 @@ NotClosedYet=Ikke lukket ennå ClearSignature=Tilbakestill signatur 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=Your message +YourMessageHasBeenReceived=Meldingen din er mottatt. Vi vil svare eller kontakte deg så snart som mulig. +UrlToCheck=URL for å sjekke +Automation=Automation diff --git a/htdocs/langs/nb_NO/members.lang b/htdocs/langs/nb_NO/members.lang index 30baf3f9b6c..38b4a1e2029 100644 --- a/htdocs/langs/nb_NO/members.lang +++ b/htdocs/langs/nb_NO/members.lang @@ -15,7 +15,7 @@ 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=Visittkort for medlemmer +MembersCards=Generation of cards for members MembersList=Liste over medlemmer MembersListToValid=Liste over medlems-utkast (må valideres) MembersListValid=Liste over gyldige medlemmer @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Medlems-ID +MemberId=Member Id +MemberRef=Member Ref NewMember=Nytt medlem MemberType=Medlemstype MemberTypeId=Medlemstype-ID @@ -159,11 +160,11 @@ HTPasswordExport=htpassword-fil generering NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Komplementære tiltak ved opprettelse -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=Opprett en direkteføring på bankkonto MoreActionBankViaInvoice=Opprett en faktura, og en betaling på bankkonto MoreActionInvoiceOnly=Lag en faktura uten betaling -LinkToGeneratedPages=Generer besøkskort +LinkToGeneratedPages=Generation of business cards or address sheets 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 @@ -218,3 +219,5 @@ 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. +MemberFirstname=Medlemmets fornavn +MemberLastname=Medlemmets etternavn diff --git a/htdocs/langs/nb_NO/modulebuilder.lang b/htdocs/langs/nb_NO/modulebuilder.lang index fd831ad64e0..5a82b38b2d0 100644 --- a/htdocs/langs/nb_NO/modulebuilder.lang +++ b/htdocs/langs/nb_NO/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=Skriv inn navnet på modulen/applikasjonen du vil opprette, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal opprettes, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyObject, Student, Lærer ...). CRUD-klassefilen, men også API-filen, sider for å liste/legge til/redigere/slette objekt og SQL-filer blir generert . +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. +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 ModuleBuilderDesc4=En modul detekteres som "redigerbar" når filen%s eksisterer i roten av modulkatalogen NewModule=Ny modul NewObjectInModulebuilder=Nytt objekt +NewDictionary=Ny ordbok ModuleKey=Modulnøkkel ObjectKey=Objektnøkkel +DicKey=Ordbok nøkkel ModuleInitialized=Modul initialisert FilesForObjectInitialized=Filer for nytt objekt '%s' initialisert FilesForObjectUpdated=Filer for objektet '%s' oppdatert (.sql-filer og .class.php-fil) @@ -52,7 +55,7 @@ LanguageFile=Språkfil ObjectProperties=Objektegenskaper ConfirmDeleteProperty=Er du sikker på at du vil slette egenskapen %s? Dette vil endre kode i PHP klassen, og fjerne kolonne fra tabelldefinisjon av objekt. NotNull=Ikke NULL -NotNullDesc=1=Angi database til IKKE NULL. -1=Tillat nullverdier og tving verdien til NULL hvis tom ('' eller 0). +NotNullDesc=1=Sett databasen til IKKE NULL, 0=Tillat nullverdier, -1=Tillat nullverdier ved å tvinge verdien til NULL hvis tom ('' eller 0) SearchAll=Brukt for 'søk alle' DatabaseIndex=Database indeks FileAlreadyExists=Filen %s eksisterer allerede @@ -94,11 +97,11 @@ 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=Menyene som tilbys av modulen/applikasjonen, er definert i array $this->menus i modulbeskrivelsesfilen. Du kan redigere denne filen manuelt eller bruke den innebygde editoren.

    Merk: Når en gang er definert (og modul gjenaktivert), er menyer også synlige i menyeditoren som er tilgjengelig for administratorbrukere på %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=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). -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=Definer i triggerfilen koden du ønsker å kjøre når en forretningshendelse utenfor modulen din blir utført (hendelser utløst av andre moduler). SeeIDsInUse=Se IDer som brukes i installasjonen din SeeReservedIDsRangeHere=Se område av reserverte IDer ToolkitForDevelopers=Verktøy for Dolibarr-utviklere @@ -110,7 +113,7 @@ DropTableIfEmpty=(Fjern tabellen hvis den er tom) TableDoesNotExists=Tabellen %s finnes ikke TableDropped=Tabell %s slettet InitStructureFromExistingTable=Bygg struktur-matrisestrengen fra en eksisterende tabell -UseAboutPage=Deaktiver "om"-siden +UseAboutPage=Ikke generer Om-siden UseDocFolder=Deaktiver dokumentasjonsmappen UseSpecificReadme=Bruk en bestemt Les-meg ContentOfREADMECustomized=Merk: Innholdet i filen README.md er erstattet med den spesifikke verdien som er definert i konfigurasjonen av ModuleBuilder. @@ -127,21 +130,26 @@ 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 -IncludeRefGenerationHelp=Merk av for dette hvis du vil inkludere kode for å administrere genereringen av referansen automatisk -IncludeDocGeneration=Jeg vil generere noen dokumenter fra objektet +IncludeRefGeneration=Referansen til 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 IncludeDocGenerationHelp=Hvis du krysser av for dette, genereres det kode for å legge til en "Generer dokument" -boksen på posten. ShowOnCombobox=Vis verdi i kombinasjonsboks KeyForTooltip=Nøkkel for verktøytips CSSClass=CSS for å redigere/opprette skjema -CSSViewClass=CSS for read form -CSSListClass=CSS for list +CSSViewClass=CSS for leseskjema +CSSListClass=CSS for liste NotEditable=Ikke redigerbar ForeignKey=Fremmed nøkkel -TypeOfFieldsHelp=Type felt:
    varchar (99), dobbel (24,8), ekte, tekst, html, datetime, tidstempel, heltall, heltall:ClassName:relativepath/to/classfile.class.php [:1[:filter]] ('1' betyr at vi legger til en + -knapp etter kombinasjonsboksen for å opprette posten, 'filter' kan være 'status=1 OG fk_user=__USER_ID OG enhet IN (__SHARED_ENTITIES__)' for eksempel) +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 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=Import and export profiles -ValidateModBuilderDesc=Put 1 if this field need to be validated with $this->validateField() or 0 if validation required +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 +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. diff --git a/htdocs/langs/nb_NO/mrp.lang b/htdocs/langs/nb_NO/mrp.lang index 763cb48fd6f..2ede940ab54 100644 --- a/htdocs/langs/nb_NO/mrp.lang +++ b/htdocs/langs/nb_NO/mrp.lang @@ -69,12 +69,14 @@ 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 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 ProductQtyToProduceByMO=Varemengde som fremdeles skal produseres av åpen MO AddNewConsumeLines=Legg til en ny linje for konsum -AddNewProduceLines=Add new line to produce +AddNewProduceLines=Legg til ny linje for å produsere ProductsToConsume=Vare å konsumere ProductsToProduce=Varer å produsere UnitCost=Enhetskostnad @@ -107,3 +109,6 @@ THMEstimatedHelp=Denne verdien gjør det mulig å definere en prognosekostnad fo 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/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 0a376c4c43b..3b923557671 100644 --- a/htdocs/langs/nb_NO/orders.lang +++ b/htdocs/langs/nb_NO/orders.lang @@ -68,6 +68,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) ValidateOrder=Valider ordre UnvalidateOrder=Fjern validering på ordre DeleteOrder=Slett ordre @@ -102,6 +104,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 DraftOrders=Ordrekladder DraftSuppliersOrders=Innkjøpsordre-kladder OnProcessOrders=Ordre i behandling @@ -124,8 +128,8 @@ SupplierOrderReceivedInDolibarr=Innkjøpsordre %s mottatt %s SupplierOrderSubmitedInDolibarr=Innkjøpsordre %s sendt SupplierOrderClassifiedBilled=Innkjøpsordre %s satt til fakturert OtherOrders=Andre ordre -SupplierOrderValidatedAndApproved=Supplier order is validated and approved : %s -SupplierOrderValidated=Supplier order is validated : %s +SupplierOrderValidatedAndApproved=Leverandørbestilling er validert og godkjent: %s +SupplierOrderValidated=Leverandørbestilling er validert: %s ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Representant for oppfølging av salgsordre TypeContact_commande_internal_SHIPPING=Representant for oppfølging av levering diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index e41499eddea..c797e66b27f 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... eller bygg din egen profil
    (manuell utvelgelse a DemoFundation=Håndtere medlemmer i en organisasjon DemoFundation2=Håndtere medlemmer og bankkonti i en organisasjon DemoCompanyServiceOnly=Firma som kun selger tjenester -DemoCompanyShopWithCashDesk=Administrer en butikk med kontantomsetning/kasse +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Handle varer med Point Of Sales DemoCompanyManufacturing=Selskapets varer DemoCompanyAll=Firma med mange aktiviteter (alle hovedmoduler) @@ -132,7 +132,7 @@ ClosedByLogin=Bruker-login som lukket FileWasRemoved=Filen ble slettet DirWasRemoved=Mappen ble slettet FeatureNotYetAvailable=Funksjonen er ikke tilgjengelig i gjeldende versjon -FeatureNotAvailableOnDevicesWithoutMouse=Feature not available on devices without mouse +FeatureNotAvailableOnDevicesWithoutMouse=Funksjonen er ikke tilgjengelig på enheter uten mus FeaturesSupported=Støttede funksjoner Width=Bredde Height=Høyde @@ -249,7 +249,7 @@ NewKeyIs=Dette er din nye innloggingsnøkkel NewKeyWillBe=Ny nøkkel for innlogging er ClickHereToGoTo=Klikk her for å gå til %s YouMustClickToChange=Du må først klikke på følgende lenke for å validere passord-endringen -ConfirmPasswordChange=Confirm password change +ConfirmPasswordChange=Bekreft endring av passord ForgetIfNothing=Hvis det ikke er du som har bedt om endringen, kan du glemme denne e-posten. Dine opplysninger er trygge IfAmountHigherThan=Hvis beløpet er høyere enn%s SourcesRepository=Oppbevaring av kilder @@ -271,7 +271,7 @@ ContactCreatedByEmailCollector=Kontakt/adresse opprettet av e-post samler fra e- ProjectCreatedByEmailCollector=Prosjekt opprettet av e-post samler fra e-post MSGID %s TicketCreatedByEmailCollector=Supportseddel opprettet av e-post samler fra e-post MSGID %s OpeningHoursFormatDesc=Bruk en bindestrek for å skille åpning og stengetid.
    Bruk et mellomrom for å angi forskjellige områder.
    Eksempel: 8-12 14-18 -SuffixSessionName=Suffix for session name +SuffixSessionName=Suffiks for øktnavn LoginWith=Login with %s ##### Export ##### @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... 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 e08cf536e63..d7eae1e5d25 100644 --- a/htdocs/langs/nb_NO/partnership.lang +++ b/htdocs/langs/nb_NO/partnership.lang @@ -20,9 +20,9 @@ ModulePartnershipName=Håndtering av partnerskap PartnershipDescription=Modul for Partnerskapshåndtering PartnershipDescriptionLong= Modul for Partnerskapshåndtering Partnership=Partnerskap -AddPartnership=Add partnership -CancelPartnershipForExpiredMembers=Partnership: Cancel partnership of members with expired subscriptions -PartnershipCheckBacklink=Partnership: Check referring backlink +AddPartnership=Legg til partnerskap +CancelPartnershipForExpiredMembers=Partnerskap: Avbryt partnerskap for medlemmer med utløpt abonnement +PartnershipCheckBacklink=Partnerskap: Sjekk refererende tilbakekobling # # Menu @@ -36,12 +36,13 @@ ListOfPartnerships=Liste over partnerskap PartnershipSetup=Oppsett av partnerskap PartnershipAbout=Om partnerskap PartnershipAboutPage=Om Partnerskap-side -partnershipforthirdpartyormember=Partner status must be set on a 'thirdparty' or a 'member' +partnershipforthirdpartyormember=Partnerstatus må settes på en "tredjepart" eller et "medlem" PARTNERSHIP_IS_MANAGED_FOR=Partnerskap administrert for PARTNERSHIP_BACKLINKS_TO_CHECK=Backlinks å sjekke -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. +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Antall dager før kanselleringsstatus for et partnerskap når et abonnement har utløpt +ReferingWebsiteCheck=Sjekk av refererende nettsted +ReferingWebsiteCheckDesc=Du kan aktivere en funksjon for å sjekke at partnerne dine har lagt til en tilbakekobling til nettsteddomenene dine på deres eget nettsted. +PublicFormRegistrationPartnerDesc=Dolibarr kan gi deg en offentlig URL/nettside slik at eksterne besøkende kan be om å bli en del av partnerskapsprogrammet. # # Object @@ -54,11 +55,17 @@ DatePartnershipEnd=Sluttdato ReasonDecline=Årsak til avslag ReasonDeclineOrCancel=Avvis grunn PartnershipAlreadyExist=Partnerskap eksisterer allerede -ManagePartnership=Manage partnership +ManagePartnership=Administrer partnerskap BacklinkNotFoundOnPartnerWebsite=Backlink ble ikke funnet på partnerens nettsted ConfirmClosePartnershipAsk=Er du sikker på at du vil avbryte dette partnerskapet? -PartnershipType=Partnership type -PartnershipRefApproved=Partnership %s approved +PartnershipType=Partnerskapstype +PartnershipRefApproved=Partnerskap %s godkjent +KeywordToCheckInWebsite=Hvis du vil sjekke at et gitt søkeord er til stede på nettsiden til hver partner, definer dette søkeordet her +PartnershipDraft=Kladd +PartnershipAccepted=Akseptert +PartnershipRefused=Avvist +PartnershipCanceled=Kansellert +PartnershipManagedFor=Partnere er # # Template Mail @@ -78,15 +85,10 @@ YourPartnershipRefusedContent=Vi informerer deg om at partnerskapsforespørselen YourPartnershipAcceptedContent=Vi informerer deg om at din forespørsel om partnerskap er godtatt. YourPartnershipCanceledContent=Vi informerer deg om at partnerskapet ditt er kansellert. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check +CountLastUrlCheckError=Antall feil for siste URL-sjekk +LastCheckBacklink=Dato for siste URL-sjekk ReasonDeclineOrCancel=Avvis grunn -# -# Status -# -PartnershipDraft=Kladd -PartnershipAccepted=Akseptert -PartnershipRefused=Avvist -PartnershipCanceled=Kansellert -PartnershipManagedFor=Partnere er +NewPartnershipRequest=Ny forespørsel om partnerskap +NewPartnershipRequestDesc=Dette skjemaet lar deg be om å bli en del av et av våre partnerskapsprogram. Hvis du trenger hjelp til å fylle ut dette skjemaet, vennligst kontakt via e-post %s . + diff --git a/htdocs/langs/nb_NO/printing.lang b/htdocs/langs/nb_NO/printing.lang index 2605eae026c..7796c6b913c 100644 --- a/htdocs/langs/nb_NO/printing.lang +++ b/htdocs/langs/nb_NO/printing.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=One click 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. -MenuDirectPrinting=One click Printing jobs -DirectPrint=One click Print +MenuDirectPrinting=Ettklikks utskriftsjobber +DirectPrint=Ettklikks utskrift PrintingDriverDesc=Oppsett av skrivervariabler ListDrivers=Liste over drivere PrintTestDesc=Liste over skrivere diff --git a/htdocs/langs/nb_NO/productbatch.lang b/htdocs/langs/nb_NO/productbatch.lang index b78e339cb99..5d42c684af5 100644 --- a/htdocs/langs/nb_NO/productbatch.lang +++ b/htdocs/langs/nb_NO/productbatch.lang @@ -26,20 +26,21 @@ 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 -ManageLotMask=Custom mask -CustomMasks=Option to define a different numbering mask for each product +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 -LifeTime=Life span (in days) +LifeTime=Levetid (i dager) 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 +ManufacturingDate=Produksjonsdato +DestructionDate=Destruksjonsdato +FirstUseDate=Første bruksdato +QCFrequency=Kvalitetskontrollfrekvens (i dager) +ShowAllLots=Vis alle partiene +HideLots=Skjul partier #Traceability - qc status -OutOfOrder=Out of order -InWorkingOrder=In working order +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. diff --git a/htdocs/langs/nb_NO/products.lang b/htdocs/langs/nb_NO/products.lang index e6fb47664dc..aaa9dd1246c 100644 --- a/htdocs/langs/nb_NO/products.lang +++ b/htdocs/langs/nb_NO/products.lang @@ -73,13 +73,13 @@ SellingPrice=Salgspris SellingPriceHT=Utsalgspris (ekskl. MVA) SellingPriceTTC=Salgspris (inkl. MVA) SellingMinPriceTTC=Minimum utsalgspris (inkl. MVA) -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. +CostPriceDescription=Dette prisfeltet (ekskl. mva) kan brukes til å fange opp det gjennomsnittlige beløpet dette produktet koster for din bedrift. Det kan være en hvilken som helst pris du selv beregner, for eksempel fra gjennomsnittlig kjøpspris pluss gjennomsnittlig produksjons- og distribusjonskostnad. CostPriceUsage=Denne verdien kan brukes for kalkulering av marginer -ManufacturingPrice=Manufacturing price +ManufacturingPrice=Produksjonspris SoldAmount=Mengde solgt PurchasedAmount=Mengde kjøpt NewPrice=Ny pris -MinPrice=Min. selling price +MinPrice=Min. salgspris EditSellingPriceLabel=Rediger salgsprisetikett CantBeLessThanMinPrice=Salgsprisen kan ikke være lavere enn minste tillatte for denne varen (%s uten avgifter) ContractStatusClosed=Lukket @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Er du sikker på at du vil slette denne varelinjen? ProductSpecial=Spesial QtyMin=Min. Innkjøpsmengde PriceQtyMin=Kvantumsrabatt min. -PriceQtyMinCurrency=Pris (valuta) for denne kvantiteten. (ingen rabatt) +PriceQtyMinCurrency=Pris (valuta) for dette antallet. +WithoutDiscount=Uten rabatt VATRateForSupplierProduct=MVA (for denne leverandøren/varen) DiscountQtyMin=Rabatt for denne kvantiteten. NoPriceDefinedForThisSupplier=Ingen pris/antall definert for denne leverandøren/varen @@ -158,11 +159,11 @@ ListServiceByPopularity=Liste av tjenester etter popularitet Finished=Ferdigvare RowMaterial=Råvare ConfirmCloneProduct=Er du sikker på at du vil klone vare eller tjeneste %s? -CloneContentProduct=Clone all main information of the product/service +CloneContentProduct=Klon all hovedinformasjon om varen/tjenesten ClonePricesProduct=Klon priser -CloneCategoriesProduct=Clone linked tags/categories -CloneCompositionProduct=Clone virtual products/services -CloneCombinationsProduct=Clone the product variants +CloneCategoriesProduct=Klon koblede tagger/kategorier +CloneCompositionProduct=Klon virtuelle varer/tjenester +CloneCombinationsProduct=Klon varevariantene ProductIsUsed=Denne varen brukes NewRefForClone=Ref. av nye vare/tjeneste SellingPrices=Utsalgspris @@ -171,12 +172,12 @@ CustomerPrices=Kundepriser SuppliersPrices=Leverandørpriser SuppliersPricesOfProductsOrServices=Leverandørpriser (av varer eller tjenester) CustomCode=Toll | Råvare | HS-kode -CountryOrigin=Country of origin -RegionStateOrigin=Region of origin -StateOrigin=State|Province of origin -Nature=Nature of product (raw/manufactured) +CountryOrigin=Opprinnelsesland +RegionStateOrigin=Opprinnelsesregion +StateOrigin=Stat|Opprinnelsesprovins +Nature=Varens art (rå/produsert) NatureOfProductShort=Varens art -NatureOfProductDesc=Raw material or manufactured product +NatureOfProductDesc=Råstoff eller produsert vare ShortLabel=Kort etikett Unit=Enhet p= stk @@ -346,7 +347,7 @@ UseProductFournDesc=Add a feature to define the product description defined by t 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) PackagingForThisProduct=Emballasje -PackagingForThisProductDesc=På leverandørbestilling vil du automatisk bestille denne mengden (eller et multiplum av denne mengden). Kan ikke være mindre enn minimum kjøpsmengde +PackagingForThisProductDesc=You will automaticaly purchase a multiple of this quantity. QtyRecalculatedWithPackaging=Mengden på linjen ble beregnet på nytt i henhold til leverandøremballasje #Attributes @@ -401,13 +402,28 @@ DeleteLinkedProduct=Slett sub-produktet som er knyttet til kombinasjonen AmountUsedToUpdateWAP=Amount to use to update the Weighted Average Price PMPValue=Vektet gjennomsnittspris PMPValueShort=WAP -mandatoryperiod=Mandatory periods +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'. 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 diff --git a/htdocs/langs/nb_NO/projects.lang b/htdocs/langs/nb_NO/projects.lang index 03a762f1e2d..5e694e906dd 100644 --- a/htdocs/langs/nb_NO/projects.lang +++ b/htdocs/langs/nb_NO/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Prosjektetikett ProjectsArea=Prosjektområde ProjectStatus=Prosjektstatus SharedProject=Alle -PrivateProject=Prosjektkontakter +PrivateProject=Assigned contacts ProjectsImContactFor=Prosjekter som jeg eksplisitt er en kontakt for AllAllowedProjects=Alt prosjekter jeg kan lese (min + offentlig) AllProjects=Alle prosjekter @@ -89,7 +89,7 @@ TimeConsumed=Forbrukt ListOfTasks=Oppgaveliste GoToListOfTimeConsumed=Gå til liste for tidsbruk GanttView=Gantt visning -ListWarehouseAssociatedProject=List of warehouses associated to the project +ListWarehouseAssociatedProject=Liste over varehus knyttet til prosjektet ListProposalsAssociatedProject=Liste over tilbud knyttet til prosjektet ListOrdersAssociatedProject=Liste over salgsordre knyttet til prosjektet ListInvoicesAssociatedProject=Liste over kundefakturaer knyttet til prosjektet @@ -190,6 +190,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. FirstAddRessourceToAllocateTime=Tildel en brukerressurs som kontakt for prosjektet for å fordele tid InputPerDay=Tidsbruk pr. dag InputPerWeek=Tidsbruk pr. uke @@ -204,7 +205,7 @@ ResourceNotAssignedToTheTask=Ikke tildelt oppgaven NoUserAssignedToTheProject=Ingen brukere tilordnet dette prosjektet TimeSpentBy=Tid brukt av TasksAssignedTo=Oppgaver tildelt -AssignTaskToMe=Assign task to myself +AssignTaskToMe=Tildele oppgave til meg selv AssignTaskToUser=Tildel oppgave til %s SelectTaskToAssign=Velg oppgave å tildele... AssignTask=Tildel @@ -282,8 +283,14 @@ 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. -SelectLinesOfTimeSpentToInvoice=Select lines of time spent that are unbilled, then bulk action "Generate Invoice" to bill them -ProjectTasksWithoutTimeSpent=Project tasks without time spent +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 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 +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 diff --git a/htdocs/langs/nb_NO/propal.lang b/htdocs/langs/nb_NO/propal.lang index f0d7985dbdd..3cd00be1a47 100644 --- a/htdocs/langs/nb_NO/propal.lang +++ b/htdocs/langs/nb_NO/propal.lang @@ -54,6 +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 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? @@ -85,13 +86,26 @@ 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 +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 IdProduct=Vare-ID -PrParentLine=Tilbud foreldrelinje LineBuyPriceHT=Innkjøpspris beløp eksklusive avgift for linje SignPropal=Accept proposal RefusePropal=Refuse proposal -Sign=Sign +Sign=Signer +NoSign=Sett til ikke signert PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted diff --git a/htdocs/langs/nb_NO/receiptprinter.lang b/htdocs/langs/nb_NO/receiptprinter.lang index 67c8c29c91b..6a4cdb6dd04 100644 --- a/htdocs/langs/nb_NO/receiptprinter.lang +++ b/htdocs/langs/nb_NO/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Test sendt til skriver %s ReceiptPrinter=Printere ReceiptPrinterDesc=Oppsett av kvitteringsskrivere ReceiptPrinterTemplateDesc=Oppsett av maler -ReceiptPrinterTypeDesc=Beskrivelse av skrivertype +ReceiptPrinterTypeDesc=Eksempel på mulige verdier for feltet "Parametere" i henhold til drivertype ReceiptPrinterProfileDesc=Beskrivelse av skriverprofil ListPrinters=Liste over skrivere SetupReceiptTemplate=Maloppsett @@ -54,7 +54,9 @@ DOL_DOUBLE_WIDTH=Dobbel skriftbredde DOL_DEFAULT_HEIGHT_WIDTH=Standard skrifthøyde og -bredde DOL_UNDERLINE=Aktiver understreking DOL_UNDERLINE_DISABLED=Deaktiver understreking -DOL_BEEP=Lyd +DOL_BEEP=Pipelyd +DOL_BEEP_ALTERNATIVE=Pipelyd (alternativ modus) +DOL_PRINT_CURR_DATE=Skriv ut gjeldende dato/klokkeslett DOL_PRINT_TEXT=Skriv ut tekst DateInvoiceWithTime=Fakturadato og -tid YearInvoice=Fakturaår diff --git a/htdocs/langs/nb_NO/receptions.lang b/htdocs/langs/nb_NO/receptions.lang index 6696f50ec6a..25df6e46845 100644 --- a/htdocs/langs/nb_NO/receptions.lang +++ b/htdocs/langs/nb_NO/receptions.lang @@ -48,7 +48,7 @@ ReceptionsNumberingModules=Nummereringsmodul for mottak ReceptionsReceiptModel=Dokumentmaler for mottak NoMorePredefinedProductToDispatch=Ingen flere forhåndsdefinerte varer som skal sendes ReceptionExist=Et mottak finnes -ByingPrice=Bying price +ByingPrice=Innkjøpspris ReceptionBackToDraftInDolibarr=Reception %s back to draft ReceptionClassifyClosedInDolibarr=Reception %s classified Closed ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open diff --git a/htdocs/langs/nb_NO/recruitment.lang b/htdocs/langs/nb_NO/recruitment.lang index 2f771eba131..aa5a6c616f8 100644 --- a/htdocs/langs/nb_NO/recruitment.lang +++ b/htdocs/langs/nb_NO/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=Stillingen er stengt. ExtrafieldsJobPosition=Utfyllende attributter (stillinger) ExtrafieldsApplication=Utfyllende attributter (jobbsøknader) MakeOffer=Gi et tilbud +WeAreRecruiting=Vi rekrutterer. Dette er en liste over ledige stillinger som skal fylles... +NoPositionOpen=Ingen ledige stillinger for øyeblikket diff --git a/htdocs/langs/nb_NO/salaries.lang b/htdocs/langs/nb_NO/salaries.lang index dcf3db6cb8d..77f763efbd7 100644 --- a/htdocs/langs/nb_NO/salaries.lang +++ b/htdocs/langs/nb_NO/salaries.lang @@ -6,7 +6,7 @@ CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=La som standard alternativet "Opprett aut Salary=Lønn Salaries=Lønn NewSalary=Ny lønn -AddSalary=Add salary +AddSalary=Legg til lønn NewSalaryPayment=Nytt lønnskort AddSalaryPayment=Legg til lønnsutbetaling SalaryPayment=Lønnsutbetaling @@ -18,9 +18,10 @@ TJM=Gjennomsnittlig dagspris CurrentSalary=Nåværende lønn THMDescription=Denne verdien kan brukes til å kalkulere tidsforbruket på et prosjekt hvis prosjekt-modulen er i bruk TJMDescription=Dene verdien er foreløpig brukt til informasjon, og er ikke brukt i noen kalkulasjoner -LastSalaries=Latest %s salaries -AllSalaries=All salaries +LastSalaries=Siste %s lønninger +AllSalaries=Alle lønninger SalariesStatistics=Lønnsstatistikk SalariesAndPayments=Lønn og utbetalinger -ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ? -FillFieldFirst=Fill employee field first +ConfirmDeleteSalaryPayment=Vil du slette denne lønnsutbetalingen? +FillFieldFirst=Fyll ansatt-feltet først +UpdateAmountWithLastSalary=Sett beløp med siste lønn diff --git a/htdocs/langs/nb_NO/stocks.lang b/htdocs/langs/nb_NO/stocks.lang index d439487fb4e..f0230b8431c 100644 --- a/htdocs/langs/nb_NO/stocks.lang +++ b/htdocs/langs/nb_NO/stocks.lang @@ -12,9 +12,9 @@ AddWarehouse=Opprett lager AddOne=Legg til DefaultWarehouse=Standard lager WarehouseTarget=Mållager -ValidateSending=Confirm shipment -CancelSending=Cancel shipment -DeleteSending=Delete shipment +ValidateSending=Bekreft forsendelse +CancelSending=Kanseller forsendelse +DeleteSending=Slett forsendelse Stock=Lagerbeholdning Stocks=Lagerbeholdning MissingStocks=Manglende varer @@ -60,10 +60,10 @@ EnhancedValueOfWarehouses=Lagerverdi UserWarehouseAutoCreate=Opprett et brukerlager automatisk når du oppretter en bruker AllowAddLimitStockByWarehouse=Administrer verdi for minimum og ønsket lager per sammenkobling (varelager) i tillegg til verdien for minimum og ønsket lager pr. vare RuleForWarehouse=Regel for lagre -WarehouseAskWarehouseOnThirparty=Set a warehouse on Third-parties +WarehouseAskWarehouseOnThirparty=Sett et lager på tredjeparter WarehouseAskWarehouseDuringPropal=Sett varehus på tilbud -WarehouseAskWarehouseDuringOrder=Set a warehouse on Sales Orders -WarehouseAskWarehouseDuringProject=Set a warehouse on Projects +WarehouseAskWarehouseDuringOrder=Angi et lager på salgsordrer +WarehouseAskWarehouseDuringProject=Sett et lager på prosjekter UserDefaultWarehouse=Sett et lager på brukere MainDefaultWarehouse=Standard lager MainDefaultWarehouseUser=Bruk et standardlager for hver bruker @@ -169,14 +169,14 @@ InventoryCodeShort=Lag./bev.-kode NoPendingReceptionOnSupplierOrder=Ingen ventende mottak på grunn av åpen innkjøpsordre ThisSerialAlreadyExistWithDifferentDate=Dette lot/serienummeret (%s) finnes allerede, men med ulik "best før" og "siste forbruksdag" (funnet %s , men tastet inn %s). OpenAnyMovement=Open (all movement) -OpenInternal=Open (only internal movement) +OpenInternal=Åpen (kun intern bevegelse) UseDispatchStatus=Bruk en utsendelses-status (godkjenn/avslå) for varelinjer på innkjøpsordre ved varemottak OptionMULTIPRICESIsOn=Opsjonen "Flere priser pr. segment" er slått på. Det betyr at en vare har flere utsalgspriser og salgsverdi ikke kan kalkuleres ProductStockWarehouseCreated=Varsel for nedre og ønsket varebeholdning opprettet ProductStockWarehouseUpdated=Varsel for nedre og ønsket varebeholdning oppdatert ProductStockWarehouseDeleted=Varsel for nedre og ønsket varebeholdning slettet AddNewProductStockWarehouse=Sett ny grense for nedre og ønsket varebeholdning -AddStockLocationLine=Reduser mengden, legg deretter til et annet lager for dette produktet +AddStockLocationLine=Decrease quantity then click to split the line InventoryDate=Lagerdato Inventories=Varetellinger NewInventory=Ny oversikt @@ -207,8 +207,8 @@ INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Lagerbevegelser vil ha datoen for l inventoryChangePMPPermission=Tillat å endre PMP-verdi for en vare ColumnNewPMP=Ny enhet PMP OnlyProdsInStock=Ikke legg til vare uten lager -TheoricalQty=Theorical qty -TheoricalValue=Theorical qty +TheoricalQty=Teoretisk antall +TheoricalValue=Teoretisk antall LastPA=Siste BP CurrentPA=Gjeldende BP RecordedQty=Registrert antall @@ -254,7 +254,7 @@ ReOpen=Gjenåpne 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 @@ -262,12 +262,56 @@ 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 +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 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=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/suppliers.lang b/htdocs/langs/nb_NO/suppliers.lang index 8eb97040929..25a282834b2 100644 --- a/htdocs/langs/nb_NO/suppliers.lang +++ b/htdocs/langs/nb_NO/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Kjøpernavn AllProductServicePrices=Alle vare-/tjenestepriser AllProductReferencesOfSupplier=Alle referanser fra leverandøren BuyingPriceNumShort=Leverandørpriser +RepeatableSupplierInvoice=Template supplier invoice +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 diff --git a/htdocs/langs/nb_NO/ticket.lang b/htdocs/langs/nb_NO/ticket.lang index f4c6d260b1b..bc9e688db75 100644 --- a/htdocs/langs/nb_NO/ticket.lang +++ b/htdocs/langs/nb_NO/ticket.lang @@ -68,7 +68,7 @@ NeedMoreInformation=Venter på tilbakemelding på rapporten NeedMoreInformationShort=Venter på tilbakemelding Answered=Besvarte Waiting=Venter -SolvedClosed=Solved +SolvedClosed=Løst Deleted=Slettede # Dict @@ -90,15 +90,17 @@ 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=Varslings epost fra -TicketEmailNotificationFromHelp=Brukes som eksempel i svar på supportseddel -TicketEmailNotificationTo=Notifikasjons-epost til -TicketEmailNotificationToHelp=Send e-postvarsler til denne adressen. +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=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 TicketNewEmailBodyHelp=Teksten som er angitt her, vil bli satt inn i epostbekreftelsen for opprettelsen av en ny supportseddel fra det offentlige grensesnittet. Informasjon om konsultasjon av supportseddelen blir automatisk lagt til. 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. 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) @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Send e-post (e) når en ny melding/kommentar TicketsPublicNotificationNewMessageHelp=Send epost(er) når en ny melding legges til fra det offentlige grensesnittet (til tildelt bruker eller varslings-eposten til (oppdatering) og/eller varslings-eposten til) 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. +TicketChooseProductCategory=Produktkategori for billettstøtte +TicketChooseProductCategoryHelp=Velg produktkategori for billettstøtte. Dette vil bli brukt til å automatisk knytte en kontrakt til en billett. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Sorter etter stigende dato OrderByDateDesc=Sorter etter synkende dato ShowAsConversation=Vis som samtaleliste MessageListViewType=Vis som tabell +ConfirmMassTicketClosingSendEmail=Send e-post automatisk når du stenger billetter +ConfirmMassTicketClosingSendEmailQuestion=Vil du varsle tredjeparter når du stenger disse billettene? # # Ticket card @@ -188,11 +204,11 @@ TicketSeverity=Alvorlighetsgrad ShowTicket=Se supportseddel RelatedTickets=Relaterte supportsedler TicketAddIntervention=Opprett intervensjon -CloseTicket=Close|Solve ticket -AbandonTicket=Abandon ticket -CloseATicket=Close|Solve a ticket +CloseTicket=Lukk|Løs billett +AbandonTicket=Forlat billett +CloseATicket=Lukk|Løs en billett ConfirmCloseAticket=Bekreft lukking av supportseddel -ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned' +ConfirmAbandonTicket=Bekrefter du lukkingen av billetten til status 'Forlatt' ConfirmDeleteTicket=Vennligst bekreft fjerning av supportseddel TicketDeletedSuccess=Supportseddel slettet TicketMarkedAsClosed=Supportseddel merket som lukket @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Mottaker er tom. Ingen epost sendt TicketGoIntoContactTab=Vennligst gå inn på "Kontakter" -fanen for å velge TicketMessageMailIntro=Introduksjon TicketMessageMailIntroHelp=Denne teksten legges bare til i begynnelsen av eposten og vil ikke bli lagret. -TicketMessageMailIntroLabelAdmin=Introduksjon i meldingen når du sender epost -TicketMessageMailIntroText=Hei,
    Et nytt svar ble sendt på en billett som du er kontakt for. Her er meldingen:
    -TicketMessageMailIntroHelpAdmin=Denne teksten blir satt inn før teksten til svaret på en supportseddel. +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=

    Med vennlig hilsen

    -

    +TicketMessageMailSignatureText=Melding sendt av %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Signatur på svar-epost TicketMessageMailSignatureHelpAdmin=Denne teksten vil bli satt inn etter svarmeldingen. TicketMessageHelp=Kun denne teksten blir lagret i meldingslisten på supportseddelen. @@ -238,9 +254,16 @@ TicketChangeStatus=Endre status TicketConfirmChangeStatus=Bekreft statusendringen: %s? TicketLogStatusChanged=Status endret: %s til %s TicketNotNotifyTiersAtCreate=Ikke gi beskjed til firmaet ved opprettelse +NotifyThirdpartyOnTicketClosing=Kontakter å varsle når du lukker billetten +TicketNotifyAllTiersAtClose=Alle relaterte kontakter +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. +TicketManyContractsLinked=Mange kontrakter er automatisk knyttet til denne billetten. Sørg for å bekrefte hvilken som skal velges. # # Logs @@ -268,8 +291,9 @@ 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=Du kan se fremdriften til supportseddelen ved å klikke på lenken over. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link 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 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. @@ -291,6 +315,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: TicketNotificationEmailSubject=Supportseddel%s oppdatert TicketNotificationEmailBody=Dette er en automatisk melding for å varsle deg om at billetten %s nettopp er oppdatert TicketNotificationRecipient=Meldingsmottaker diff --git a/htdocs/langs/nb_NO/trips.lang b/htdocs/langs/nb_NO/trips.lang index 6cfd440af94..cd875412e8b 100644 --- a/htdocs/langs/nb_NO/trips.lang +++ b/htdocs/langs/nb_NO/trips.lang @@ -127,8 +127,8 @@ ExpenseReportDomain=Domenet skal gjelde ExpenseReportLimitOn=Beløpsgrense på ExpenseReportDateStart=Startdato ExpenseReportDateEnd=Utløpsdato -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden +ExpenseReportLimitAmount=Maks beløp +ExpenseReportRestrictive=Overskridelse forbudt AllExpenseReport=Alle typer kostnadsrapporter OnExpense=Utgiftslinje ExpenseReportRuleSave=Utgiftsrapportregel lagret diff --git a/htdocs/langs/nb_NO/users.lang b/htdocs/langs/nb_NO/users.lang index 51afe8d773e..a0d3fd0d0d7 100644 --- a/htdocs/langs/nb_NO/users.lang +++ b/htdocs/langs/nb_NO/users.lang @@ -12,7 +12,7 @@ PasswordChangedTo=Passordet er endret til : %s SubjectNewPassword=Ditt nye passord til %s GroupRights=Grupperettigheter UserRights=Brukerrettigheter -Credentials=Credentials +Credentials=Legitimasjon UserGUISetup=Brukerens visningsoppsett DisableUser=Deaktiver DisableAUser=Deaktiver en bruker @@ -62,8 +62,8 @@ ListOfUsersInGroup=Oversikt over brukere i denne gruppen ListOfGroupsForUser=Oversikt over grupper for denne brukeren LinkToCompanyContact=Lenke til tredjepart / kontakt LinkedToDolibarrMember=Lenke til medlem -LinkedToDolibarrUser=Link to user -LinkedToDolibarrThirdParty=Link to third party +LinkedToDolibarrUser=Link til bruker +LinkedToDolibarrThirdParty=Link til tredjepart CreateDolibarrLogin=Lag Dolibarrkonto CreateDolibarrThirdParty=Lag en tredjepart LoginAccountDisableInDolibarr=Kontoen er deaktivert i Dolibarr. @@ -106,7 +106,7 @@ UseTypeFieldToChange=Bruk feltet Type til endring OpenIDURL=OpenID URL LoginUsingOpenID=Bruk OpenID til å logge inn WeeklyHours=Timer arbeidet (per uke) -ExpectedWorkedHours=Expected hours worked per week +ExpectedWorkedHours=Forventet arbeidstid per uke ColorUser=Farge på bruker DisabledInMonoUserMode=Deaktivert i vedlikeholds-modus UserAccountancyCode=Bruker regnskapskode @@ -114,7 +114,7 @@ UserLogoff=Brukerutlogging UserLogged=Bruker innlogget DateOfEmployment=Ansettelsesdato DateEmployment=Arbeid -DateEmploymentstart=Ansettelse startdato +DateEmploymentStart=Ansettelse startdato DateEmploymentEnd=Ansettelse sluttdato RangeOfLoginValidity=Access validity date range CantDisableYourself=Du kan ikke deaktivere din egen brukeroppføring @@ -124,3 +124,7 @@ 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 diff --git a/htdocs/langs/nb_NO/workflow.lang b/htdocs/langs/nb_NO/workflow.lang index 1395daf1ac3..648ef7587b4 100644 --- a/htdocs/langs/nb_NO/workflow.lang +++ b/htdocs/langs/nb_NO/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Opprett en kundeordre automatisk etter at e descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Opprett en kundefaktura automatisk etter at et tilbud er signert (ny faktura vil ha samme beløp som tilbud) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når en kontrakt er validert descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Opprett en kundefaktura automatisk etter at en kundeordre er stengt (ny faktura vil ha samme beløp som ordre) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Ved opprettelse av billett oppretter du automatisk en intervensjon. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassifiser tilknyttede kildetilbud til fakturert(e) når kundeordren er satt til fakturert (og hvis beløpet av bestillingen er det samme som totalbeløpet av signerte koblede tilbud) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klassifiser koblede kilde-tilbud som fakturert(e) når faktura er validert (og hvis fakturabeløpet er det samme som totalbeløpet av signerte tilbud) @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=Klassifiser koblet kilde-innkjøp 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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Lukk alle intervensjoner knyttet til billetten når en billett er lukket AutomaticCreation=Automatisk opprettelse AutomaticClassification=Automatisk klassifisering # Autoclassify shipment descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifiser koblet kildesending som lukket når kundefaktura er validert +AutomaticClosing=Automatisk lukking +AutomaticLinking=Automatisk kobling 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/admin.lang b/htdocs/langs/nl_BE/admin.lang index 31f9c63429b..29adcec7d4d 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -192,6 +192,7 @@ LibraryToBuildPDF=Bibliotheek om PDF bestanden te genereren. RefreshPhoneLink=Herladen link SetAsDefault=Instellen als standaard BarcodeInitForProductsOrServices=Mass barcode init of reset voor producten of diensten +InitEmptyBarCode=Init value for the %s empty barcodes NoDetails=Geen aanvullende details in voettekst DisplayCompanyInfo=Bedrijfsadres weergeven DisplayCompanyManagers=Namen van beheerders weergeven @@ -241,9 +242,10 @@ SalariesSetup=Setup van module salarissen MailToSendProposal=Klant voorstellen MailToSendInvoice=Klantfacturen MailToSendReception=Ontvangen +MailToExpenseReport=Uitgaven rapporten MailToThirdparty=Klant AddBoxes=Widgets toevoegen +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 -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 +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/assets.lang b/htdocs/langs/nl_BE/assets.lang index e658d8ba95f..fdc13d78ca5 100644 --- a/htdocs/langs/nl_BE/assets.lang +++ b/htdocs/langs/nl_BE/assets.lang @@ -1,24 +1,9 @@ # Dolibarr language file - Source file is en_US - assets -Assets =Middelen -AccountancyCodeAsset =Boekhoudcode (activum) -AccountancyCodeDepreciationAsset =Boekhoudcode (afschrijvingsrekening) -AccountancyCodeDepreciationExpense =Boekhoudcode (afschrijvingskostenrekening) -NewAssetType=Nieuw activumtype -AssetsTypeSetup=Instelling bestandstype -AssetTypeModified=Bestandstype gewijzigd AssetType=Activa type AssetsLines=Middelen DeleteAnAssetType=Verwijder een bestandstype ConfirmDeleteAssetType=Weet u zeker dat u dit bestandstype wilt verwijderen? -ModuleAssetsName =Middelen -ModuleAssetsDesc =Activabeschrijving -AssetsSetup =Activa instellen -AssetsSetupPage =Activa-instellingenpagina -ExtraFieldsAssetsType =Aanvullende attributen (bestandstype) AssetsType=Activa type AssetsTypeId=Activa type id AssetsTypeLabel=Label van het activatype AssetsTypes=Activa types -MenuAssets =Middelen -MenuTypeAssets =Type activa -MenuListAssets =Lijst diff --git a/htdocs/langs/nl_BE/companies.lang b/htdocs/langs/nl_BE/companies.lang index 3fac9814ad5..162da73b1d5 100644 --- a/htdocs/langs/nl_BE/companies.lang +++ b/htdocs/langs/nl_BE/companies.lang @@ -35,10 +35,6 @@ SupplierCodeModel=Leverancierscode-model ProfId6=Professionele ID 6 ProfId2AR=Prof Id 2 (Inkomsten voor belastingen) ProfId3CH=Prof id 1 (Federaal nummer) -ProfId1CM=Id. prof. 1 (Trade Register) -ProfId2CM=Id. prof. 2 (Taxpayer No.) -ProfId1ShortCM=Trade Register -ProfId2ShortCM=Taxpayer No. 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/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/ticket.lang b/htdocs/langs/nl_BE/ticket.lang index 0dd1b06d21b..37e0550685c 100644 --- a/htdocs/langs/nl_BE/ticket.lang +++ b/htdocs/langs/nl_BE/ticket.lang @@ -7,6 +7,7 @@ Permission56005=Bekijk tickets van alle externe partijen (niet effectief voor ex TicketDictSeverity=Ticket - Gradaties TicketTypeShortREQUEST=Verander- of verbeteringsverzoek TicketTypeShortOTHER=Ander +TicketCategoryShortOTHER=Ander ErrorBadEmailAddress=Veld '%s' onjuist MenuTicketMyAssignNonClosed=Mijn open tickets TypeContact_ticket_external_SUPPORTCLI=Klantcontact / incident volgen @@ -18,10 +19,6 @@ TicketSetup=Installatie van ticketmodule TicketPublicAccess=Een openbare interface die geen identificatie vereist, is beschikbaar op de volgende URL TicketSetupDictionaries=Het type ticket, Gradatie en analytische codes kunnen vanuit woordenboeken worden geconfigureerd TicketParamMail=E-mail instellen -TicketEmailNotificationFrom=Meldingsmail van -TicketEmailNotificationFromHelp=Gebruikt als antwoord op het ticketbericht door een voorbeeld -TicketEmailNotificationTo=Meldingen e-mail naar -TicketEmailNotificationToHelp=Stuur e-mailmeldingen naar dit adres. TicketNewEmailBodyLabel=Tekstbericht 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 nieuw ticket is gemaakt in de openbare interface. Informatie over de raadpleging van het ticket wordt automatisch toegevoegd. TicketParamPublicInterface=Openbare interface-instellingen @@ -70,8 +67,6 @@ 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. -TicketMessageMailIntroText=Hallo,
    Er is een nieuw antwoord verzonden op een ticket waarmee u contact hebt. Hier is het bericht:
    -TicketMessageMailSignatureText=

    Vriendelijke groet,

    -

    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. @@ -106,7 +101,6 @@ TicketNewEmailBody=Dit is een automatische e-mail om te bevestigen dat u een nie TicketNewEmailBodyCustomer=Dit is een automatische e-mail om te bevestigen dat een nieuw ticket zojuist is aangemaakt in uw account. TicketNewEmailBodyInfosTicket=Informatie voor het opvolgen van het ticket TicketNewEmailBodyInfosTrackId=Volgnummer van ticket: %s -TicketNewEmailBodyInfosTrackUrl=U kunt de voortgang van het ticket bekijken door op de bovenstaande link te klikken. 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. diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index b6b1d9f1351..f8f6e23da4a 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=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=Overzicht per grootboekrekening VueBySubAccountAccounting=Overzicht op volgorde subrekening @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=Hoofdrekening voor abonnementsbetali AccountancyArea=Boekhouding AccountancyAreaDescIntro=Het gebruiken van de boekhoudmodule gaat met verschillende stappen AccountancyAreaDescActionOnce=De volgende werkzaamheden worden maar één keer uitgevoerd of jaarlijks -AccountancyAreaDescActionOnceBis=De volgende stappen kunnen in de toekomst een tijdsbesparing opleveren bij het aanmaken van journaalposten (bij het schrijven van de journaalposten in de boekhouding) +AccountancyAreaDescActionOnceBis=De volgende stappen moeten worden gedaan om u in de toekomst tijd te besparen door u automatisch het juiste standaard accounting account voor te stellen bij het overdragen van gegevens in de boekhouding AccountancyAreaDescActionFreq=De volgende werkzaamheden worden meestal elke maand, week of dagelijks uitgevoerd bij grote bedrijven.... -AccountancyAreaDescJournalSetup=STAP %s: Aanmaken of controleren journaal vanuit menu %s +AccountancyAreaDescJournalSetup=STAP %s: Controleer de inhoud van uw dagboeklijst vanuit het menu %s AccountancyAreaDescChartModel=STAP %s: Controleer of er een rekeningschema bestaat of maak er een vanuit het menu %s AccountancyAreaDescChart=STAP %s: Selecteer en/of voltooi uw rekeningoverzicht vanuit menu %s AccountancyAreaDescVat=STAP %s: Vastleggen grootboekrekeningen voor BTW registratie. Gebruik hiervoor menukeuze %s. AccountancyAreaDescDefault=STAP %s: standaard grootboekrekeningen vastleggen. Gebruik hiervoor het menu-item %s. -AccountancyAreaDescExpenseReport=STAP %s: Vastleggen grootboekrekeningen voor elke soort kostenoverzicht. Gebruik hiervoor menukeuze %s. +AccountancyAreaDescExpenseReport=STAP %s: Definieer standaard boekhoudkundige rekeningen voor elk type onkostenrapport. Gebruik hiervoor het menu-item %s. AccountancyAreaDescSal=STAP %s: Vastleggen grootboekrekeningen voor salarisbetalingen. Gebruik hiervoor menukeuze %s. -AccountancyAreaDescContrib=STAP %s: Definieer standaard grootboekrekeningen voor speciale uitgaven (diverse belastingen). Gebruik hiervoor het menu-item %s. +AccountancyAreaDescContrib=STAP %s: Definieer standaard boekhoudkundige rekeningen voor belastingen (speciale uitgaven). Gebruik hiervoor het menu-item %s. AccountancyAreaDescDonation=STAP %s : Vastleggen grootboekrekeningen voor donaties. Gebruik hiervoor menukeuze %s. AccountancyAreaDescSubscription=STAP %s : Vastleggen grootboekrekeningen voor abonnementen. Gebruik hiervoor menukeuze %s. AccountancyAreaDescMisc=STAP %s: Vastleggen standaard grootboekrekeningen voor overige transacties. Gebruik hiervoor menukeuze %s. AccountancyAreaDescLoan=STAP %s: Vastleggen grootboekrekeningen voor salarisbetalingen. Gebruik hiervoor menukeuze %s. AccountancyAreaDescBank=STAP %s: Vastleggen dagboeken en balansrekeningen. Gebruik hiervoor menukeuze %s. -AccountancyAreaDescProd=STAP %s: Vastleggen grootboekrekening bij producten/diensten. Gebruik hiervoor menu %s. +AccountancyAreaDescProd=STAP %s: Definieer boekhoudaccounts op uw Producten/Diensten. Gebruik hiervoor het menu-item %s. AccountancyAreaDescBind=STAP %s: Als de koppeling tussen bestaande %s boekingsregels en grootboekrekening is gecontroleerd, kunnen deze in de boekhouding worden weggeschreven met één muis-klik. Vul de eventuele ontbrekende koppelingen aan. Gebruik hiervoor menukeuze %s. AccountancyAreaDescWriteRecords=STAP %s: Wegschrijven transacties in boekhouding. Gebruik hiervoor menukeuze %s en klik op %s. @@ -112,7 +113,7 @@ MenuAccountancyClosure=Sluiting MenuAccountancyValidationMovements=Valideer wijzigingen ProductsBinding=Grootboekrekeningen producten TransferInAccounting=Boeken in de boekhouding -RegistrationInAccounting=Vastleggen in boekhouding +RegistrationInAccounting=Vastlegging in boekhouding Binding=Koppelen aan grootboekrekening CustomersVentilation=Koppelen verkoopfacturen SuppliersVentilation=Koppelen inkoopfacturen @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Declaraties koppelen aan rekening CreateMvts=Nieuwe boeking UpdateMvts=Aanpassing boeking ValidTransaction=Transacties valideren -WriteBookKeeping=Verwerk transacties in de boekhouding +WriteBookKeeping=Boek transacties in de boekhouding Bookkeeping=Grootboek BookkeepingSubAccount=Sub-grootboek AccountBalance=Balans @@ -161,7 +162,7 @@ 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=On accountancy transfer, what is the period selected by default ACCOUNTING_SELL_JOURNAL=Verkoopboek ACCOUNTING_PURCHASE_JOURNAL=Inkoopboek @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Grootboeknummer voor donaties ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Grootboekrekening om abonnementen te registreren ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Standaard grootboekrekening voor storting door klant +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=Accounting account by default to register supplier deposit +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=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) @@ -219,7 +223,7 @@ ByPredefinedAccountGroups=Op voorgedefinieerde groepen ByPersonalizedAccountGroups=Op gepersonaliseerde groepen ByYear=Per jaar NotMatch=Niet ingesteld -DeleteMvt=Verwijder enkele boekregels uit de boekhouding +DeleteMvt=Verwijder enkele regels uit de boekhouding DelMonth=Maand om te verwijderen DelYear=Te verwijderen jaar DelJournal=Te verwijderen journaal @@ -270,7 +274,7 @@ DescVentilDoneCustomer=Bekijk hier de lijst met factuurregels en hun grootboekre 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: 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=Raadpleeg hier de lijst met leverancier factuurregels die al dan niet zijn gekoppeld aan een productgrootboekrekening (alleen mutaties die nog niet zijn doorgeboekt in de boekhouding zijn zichtbaar) 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). @@ -278,10 +282,10 @@ 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=Raadpleeg hier het aantal bewegingen per maand die niet zijn gevalideerd en fiscale jaren die al open zijn -OverviewOfMovementsNotValidated=Stap 1 / Overzicht van bewegingen niet gevalideerd. (Noodzakelijk om een boekjaar af te sluiten) -AllMovementsWereRecordedAsValidated=Alle boekingen zijn geregistreerd als gevalideerd -NotAllMovementsCouldBeRecordedAsValidated=Niet alle boekingen konden als gevalideerd worden geregistreerd +DescClosure=Consult here the number of movements by month not yet validated & locked +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 wijzigingen DescValidateMovements=Elke wijziging of verwijdering van inboeken, afletteren en verwijderingen is verboden. Alle boekingen moeten worden gevalideerd, anders is afsluiten niet mogelijk @@ -289,19 +293,20 @@ ValidateHistory=Automatisch boeken 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=Boeking is niet in balans. Debet = %s | Credit = %s +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 posten door te boeken +NoNewRecordSaved=Geen record meer om over te zetten ListOfProductsWithoutAccountingAccount=Overzicht van producten welke nog niet zijn gekoppeld aan een grootboekrekening 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 subgrootboekrekening worden gefilterd en uitgesloten van deze weergave +WarningRecordWithoutSubledgerAreExcluded=Pas op, alle bewerkingen zonder gedefinieerde sub grootboekrekening worden gefilterd en uitgesloten van deze weergave +AccountRemovedFromCurrentChartOfAccount=Boekhoudrekening die niet bestaat in het huidige rekeningschema ## Admin BindingOptions=Koppelmogelijkheden @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Schakel het koppelen en doorboeken naar 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) ## Export -NotifiedExportDate=Markeer geëxporteerde regels als geëxporteerd (wijziging van de regels is niet mogelijk) -NotifiedValidationDate=Valideer de geëxporteerde invoer (wijziging of verwijdering van de regels is niet mogelijk) +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=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +DateValidationAndLock=Datum validatie en vergrendelen ConfirmExportFile=Bevestiging van het genereren van het boekhoudkundige exportbestand ? ExportDraftJournal=Journaal exporteren Modelcsv=Export model @@ -394,6 +400,21 @@ Range=Grootboeknummer van/tot Calculated=Berekend Formula=Formule +## Reconcile +Unlettering=niet afstemmen +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 verwijderen afstemming bevestiging +ConfirmMassUnletteringQuestion=Weet u zeker dat u de %s geselecteerde record(s) ongedaan wilt maken? +ConfirmMassDeleteBookkeepingWriting=Bevestiging bulk verwijdering +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. ErrorNoAccountingCategoryForThisCountry=Geen rekeningschema beschikbaar voor land %s (zie Home - Setup - Woordenboeken) @@ -406,6 +427,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=Komt niet overeen in afstemmingscode +AccountancyErrorMismatchBalanceAmount=Het saldo (%s) is niet gelijk aan 0 +AccountancyErrorLetteringBookkeeping=Er zijn fouten opgetreden met betrekking tot de transacties: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Boekingen diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index ec295e41fb9..ab201c44d23 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/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=Referentie en periode van productitem afdrukken in PDF +BoldLabelOnPDF=Print het etiket van het productartikel vetgedrukt in PDF Foundation=Stichting Version=Versie Publisher=Auteur @@ -109,7 +109,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 @@ -343,7 +343,7 @@ StepNb=Stap %s FindPackageFromWebSite=Zoek een pakket met de functies die u nodig hebt (bijvoorbeeld op de officiële website %s). DownloadPackageFromWebSite=Downloadpakket (bijvoorbeeld van de officiële website %s). UnpackPackageInDolibarrRoot=Pak de ingepakte bestanden uit in uw Dolibarr servermap: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +UnpackPackageInModulesRoot=Om een externe module te implementeren/installeren, moet u het archiefbestand uitpakken/uitpakken in de servermap die is toegewezen aan externe modules:
    %s SetupIsReadyForUse=Module-implementatie is voltooid. U moet de module in uw toepassing echter inschakelen en configureren door naar de pagina Instellingen / modules te gaan: %s. NotExistsDirect=De alternatieve hoofdmap is niet gedefinieerd in een bestaande map.
    InfDirAlt=Vanaf versie 3 is het mogelijk om een alternatieve root directory te definiëren. Dit stelt je in staat om op dezelfde plaats zowel plug-ins als eigen templates te bewaren.
    Maak gewoon een directory op het niveau van de root van Dolibarr (bv met de naam: aanpassing).
    @@ -355,7 +355,7 @@ LastStableVersion=Laatste stabiele versie LastActivationDate=Laatste activeringsdatum LastActivationAuthor=Laatste activeringsauteur LastActivationIP=Laatste activering IP-adres -LastActivationVersion=Latest activation version +LastActivationVersion=Laatste activeringsversie UpdateServerOffline=Updateserver offline WithCounter=Beheer een teller GenericMaskCodes=U kunt elk nummeringsmasker invoeren. In dit masker kunnen de volgende tags worden gebruikt:
    {000000} komt overeen met een nummer dat op elke %s wordt verhoogd. Voer zoveel nullen in als de gewenste lengte van de teller. De teller wordt aangevuld met nullen van links om evenveel nullen te hebben als het masker.
    {000000+000} hetzelfde als de vorige, maar een offset die overeenkomt met het nummer rechts van het + teken wordt toegepast vanaf de eerste %s.
    {000000@x} hetzelfde als de vorige, maar de teller wordt op nul gezet wanneer maand x is bereikt (x tussen 1 en 12, of 0 om de eerste maanden van het fiscale jaar te gebruiken die in uw configuratie zijn gedefinieerd, of 99 tot elke maand op nul worden gezet). Als deze optie wordt gebruikt en x is 2 of hoger, dan is ook de reeks {yy}{mm} of {yyyy}{mm} vereist.
    {dd} dag (01 tot 31).
    {mm} maand (01 tot 12).
    {yy} , {yyyy} of {y} 217f 4b739f.
    @@ -477,7 +477,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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Het gebruik van de SMTP-server van uw eigen e-mailserviceprovi 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. 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) @@ -714,13 +714,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=Lees projecten en taken (gedeeld project en projecten waarvoor ik contact heb). Kan ook tijd in beslag nemen, voor mij of mijn hiërarchie, op toegewezen taken (Urenstaat) -Permission42=Projecten maken / wijzigen (gedeeld project en projecten waarvoor ik contact heb). Kan ook taken maken en gebruikers toewijzen aan projecten en taken -Permission44=Projecten verwijderen (gedeeld project en projecten waar ik contact mee heb) +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 +740,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 @@ -756,7 +758,7 @@ Permission106=Export zendingen Permission109=Verwijder verzendingen Permission111=Bekijk de financiële rekeningen Permission112=Creëer / wijzig / verwijder en vergelijk transacties -Permission113=Setup financial accounts (create, manage categories of bank transactions) +Permission113=Financiële rekeningen instellen (categorieën banktransacties maken, beheren) Permission114=Consolideer transacties Permission115=Exporteer transacties en rekeningafschriften Permission116=Overschrijvingen tussen rekeningen @@ -766,9 +768,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=Lees alle projecten en taken (ook privéprojecten waarvoor ik geen contactpersoon ben) -Permission142=Alle projecten en taken maken / wijzigen (ook privéprojecten waarvoor ik geen contactpersoon ben) -Permission144=Verwijder alle projecten en taken (ook de private projecten waarvoor ik geen contactpersoon ben) +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 @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Vastleggen verwerkingen/weigeringen van overboekingen Permission601=Lees stickers Permission602=Stickers maken/wijzigen Permission609=Verwijder etiketten +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 @@ -893,11 +900,11 @@ Permission701=Bekijk donaties Permission702=Creëren / wijzigen donaties Permission703=Verwijderen donaties Permission771=Declaraties (eigen en ondergeschikten) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission772=Onkostendeclaraties maken/wijzigen (voor u en uw ondergeschikten) Permission773=Verwijderen onkostennota's Permission775=Goedkeuren onkostennota's Permission776=Betalen onkostennota's -Permission777=Read all expense reports (even those of user not subordinates) +Permission777=Lees alle onkostennota's (zelfs die van ondergeschikten niet van gebruiker) Permission778=Aanmaken/wijzigen onkostendeclaraties van iedereen Permission779=Export onkostennota's Permission1001=Bekijk voorraden @@ -961,14 +968,16 @@ Permission2801=Gebruik FTP-client in lees modus (enkel verkennen en downloaden) Permission2802=Gebruik FTP-client in schrijf modus (verwijderen of bestanden uploaden) Permission3200=Lees gearchiveerde evenementen en vingerafdrukken Permission3301=Maak nieuwe 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 +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=Persoonlijke informatie lezen +Permission4032=Schrijf persoonlijke informatie 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. @@ -976,9 +985,9 @@ Permission10005=Verwijder website-inhoud Permission20001=Lees verlofaanvragen (uw verlof en die van uw ondergeschikten) Permission20002=Creëer / wijzig uw verlofaanvragen (uw verlof en die van uw ondergeschikten) Permission20003=Verlofaanvragen verwijderen -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) +Permission20004=Lees alle verlofaanvragen (zelfs die van ondergeschikten niet van de gebruiker) +Permission20005=Maak/wijzig alle verlofaanvragen (zelfs die van ondergeschikten niet van de gebruiker) +Permission20006=Verlofaanvragen beheren (saldo instellen en bijwerken) Permission20007=Verlofaanvragen goedkeuren Permission23001=Lees geplande taak Permission23002=Maak/wijzig geplande taak @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Onkostenoverzicht - Vervoerscategorieën DictionaryExpenseTaxRange=Onkostenoverzicht - bereik per transportcategorie DictionaryTransportMode=Intracomm rapport - Transportmodus DictionaryBatchStatus=Status product partij/serie kwaliteitscontrole +DictionaryAssetDisposalType=Type vervreemding van activa TypeOfUnit=Type eenheid SetupSaved=Instellingen opgeslagen SetupNotSaved=Installatie niet opgeslagen @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Bankrekeningen module niet ingeschakeld ShowBugTrackLink=Toon de link " %s " ShowBugTrackLinkDesc=Houd leeg om deze link niet weer te geven, gebruik de waarde 'github' voor de link naar het Dolibarr-project of definieer direct een url 'https://...' Alerts=Kennisgevingen -DelaysOfToleranceBeforeWarning=Vertraging voordat een waarschuwing wordt weergegeven voor: +DelaysOfToleranceBeforeWarning=Een waarschuwing weergeven voor... DelaysOfToleranceDesc=Stel de vertraging in voordat een waarschuwingspictogram %s op het scherm wordt weergegeven voor het late element. Delays_MAIN_DELAY_ACTIONS_TODO=Geplande evenementen (agenda-evenementen) niet voltooid Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project niet op tijd afgesloten @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,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=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:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Watermerk op ontwerp-facturen (geen indien leeg) PaymentsNumberingModule=Nummeringsmodel voor betalingen SuppliersPayment=Leveranciersbetalingen SupplierPaymentSetup=Instelling leveranciersbetalingen +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. ##### Proposals ##### PropalSetup=Offertemoduleinstellingen ProposalsNumberingModules=Offertenummeringmodules @@ -1707,9 +1721,9 @@ MailingDelay=Seconden te wachten na het verzenden van het volgende bericht NotificationSetup=Instelling module e-mailmeldingen NotificationEMailFrom=E-mail afzender (van) voor e-mails die zijn verzonden door de meldingenmodule FixedEmailTarget=Ontvanger -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=Verberg de lijst met ontvangers (geabonneerd als contact) van meldingen in het bevestigingsbericht +NotificationDisableConfirmMessageUser=Verberg de lijst met ontvangers (geabonneerd als gebruiker) van meldingen in het bevestigingsbericht +NotificationDisableConfirmMessageFix=Verberg de lijst met ontvangers (geabonneerd als algemene e-mail) van meldingen in het bevestigingsbericht ##### Sendings ##### SendingsSetup=Verzendmodule instellen SendingsReceiptModel=Verzendontvangstsjabloon @@ -1901,7 +1915,7 @@ ExpenseReportsRulesSetup=Opzetten van module onkostendeclaraties - regels ExpenseReportNumberingModules=Onkostenrapportage nummeringsmodule NoModueToManageStockIncrease=Geen module in staat om automatische voorraad toename beheren is geactiveerd. Stock verhoging zal worden gedaan via handmatige invoer. YouMayFindNotificationsFeaturesIntoModuleNotification=Mogelijk vindt u opties voor e-mailmeldingen door de module "Melding" in te schakelen en te configureren. -TemplatesForNotifications=Templates for notifications +TemplatesForNotifications=Sjablonen voor meldingen ListOfNotificationsPerUser=Lijst met automatische meldingen per gebruiker * ListOfNotificationsPerUserOrContact=Lijst met mogelijke automatische meldingen (bij zakelijk evenement) beschikbaar per gebruiker * of per contact ** ListOfFixedNotifications=Lijst met automatische vaste meldingen @@ -1917,15 +1931,16 @@ ConfFileMustContainCustom=Het installeren of bouwen van een externe module vanui 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) -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +UseBorderOnTable=Links-rechts randen op tabellen weergeven +BtnActionColor=Kleur van de actieknop +TextBtnActionColor=Tekstkleur van de actieknop TextTitleColor=Tekstkleur van paginatitel LinkColor=Link-kleur PressF5AfterChangingThis=Druk op CTRL + F5 op het toetsenbord of wis de cache van uw browser nadat u deze waarde hebt gewijzigd om deze effectief te maken 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 @@ -1938,7 +1953,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=Pictogramnaam in dolibarr-formaat ('image.png' indien in de huidige themamap, 'image.png@nom_du_module' indien in de directory / img / van een module) +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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Inkooporders MailToSendSupplierInvoice=Inkoopfacturen MailToSendContract=Contracten MailToSendReception=Ontvangsten +MailToExpenseReport=Declaraties MailToThirdparty=Derde partijen MailToMember=Leden MailToUser=Gebruikers @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter om waarde te reinigen (COMPANY_AQUARIU COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter om waarde op te schonen (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Dupliceren niet toegestaan GDPRContact=Functionaris voor gegevensbescherming (DPO, gegevensprivacy of GDPR-contact) -GDPRContactDesc=Als u gegevens over Europese bedrijven / burgers opslaat, kunt u hier de contactpersoon noemen die verantwoordelijk is voor de Algemene verordening gegevensbescherming +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 @@ -2048,32 +2065,51 @@ 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 CollectNow=Verzamel nu -ConfirmCloneEmailCollector=Weet je zeker dat je de e-mailverzamelaar %s wilt klonen? +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=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=Wil je de collectie voor deze verzamelaar nu runnen? +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) -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) +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=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) LoadThirdPartyFromNameOrCreate=Zoeken van derden laden op %s (maken indien niet gevonden) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. +AttachJoinedDocumentsToObject=Sla bijgevoegde bestanden op in objectdocumenten als een referentie van een object wordt gevonden in een e-mailonderwerp. WithDolTrackingID=Bericht inzake een gesprek geïnitieerd door een eerste e-mail verzonden vanuit Dolibarr WithoutDolTrackingID=Bericht van een gesprek geïnitieerd door een eerste e-mail die NIET is verzonden vanuit Dolibarr WithDolTrackingIDInMsgId=Bericht verzonden vanuit Dolibarr @@ -2082,14 +2118,14 @@ CreateCandidature=Maak een sollicitatie FormatZip=Zip MainMenuCode=Menu toegangscode (hoofdmenu) ECMAutoTree=Toon automatische ECM-structuur -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=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=Schakel de functie in om te controleren of een bron in een gebeurtenis wordt gebruikt +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) @@ -2128,13 +2164,13 @@ LargerThan=Groter dan IfTrackingIDFoundEventWillBeLinked=Houd er rekening mee dat als een tracking-ID van een object in e-mail wordt gevonden, of als de e-mail een antwoord is van een e-mail die al is verzameld en aan een object is gekoppeld, de gemaakte gebeurtenis automatisch wordt gekoppeld aan het bekende gerelateerde object. WithGMailYouCanCreateADedicatedPassword=Als u bij een GMail-account de validatie in 2 stappen hebt ingeschakeld, wordt aanbevolen om een speciaal tweede wachtwoord voor de toepassing te maken in plaats van uw eigen wachtwoord van https://myaccount.google.com/. EmailCollectorTargetDir=Het kan een gewenst gedrag zijn om de e-mail naar een andere tag / directory te verplaatsen wanneer deze met succes is verwerkt. Stel hier gewoon de naam van de map in om deze functie te gebruiken (gebruik GEEN speciale tekens in de naam). Houd er rekening mee dat u ook een inlogaccount voor lezen / schrijven moet gebruiken. -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=U kunt deze actie gebruiken om de e-mailinhoud te gebruiken om een bestaande derde partij in uw database te zoeken en te laden. De gevonden (of aangemaakte) derde partij wordt gebruikt voor de volgende acties die dit nodig hebben.
    Als u bijvoorbeeld een derde partij wilt maken met een naam die is geëxtraheerd uit een tekenreeks 'Naam: naam te vinden' aanwezig in de body, gebruik dan het e-mailadres van de afzender als e-mail, u kunt het parameterveld als volgt instellen:
    'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=Eindpunt voor %s: %s 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=Alleen toegang tot bepaalde host-IP's toestaan (jokerteken niet toegestaan, gebruik ruimte tussen waarden). Leeg betekent dat elke gastheer toegang heeft. +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 @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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 @@ -2216,7 +2256,54 @@ PDF_USE_1A=PDF genereren met PDF/A-1b-indeling MissingTranslationForConfKey = Ontbrekende vertaling voor %s NativeModules=Native modules NoDeployedModulesFoundWithThisSearchCriteria=Geen modules gevonden voor deze zoekcriteria -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 +API_DISABLE_COMPRESSION=Compressie van API-antwoorden uitschakelen +EachTerminalHasItsOwnCounter=Elke terminal gebruikt zijn eigen balie. +FillAndSaveAccountIdAndSecret=Vul en bewaar account-ID en geheim eerst +PreviousHash=Vorige hash +LateWarningAfter="Vertraagde" waarschuwing na +TemplateforBusinessCards=Sjabloon voor een visitekaartje in een ander formaat +InventorySetup= Setup inventarisatie +ExportUseLowMemoryMode=Gebruik een modus met weinig geheugen +ExportUseLowMemoryModeHelp=Gebruik de modus met weinig geheugen om de exec van de dump uit te voeren (compressie gebeurt via een pijp in plaats van in het PHP-geheugen). Met deze methode kan niet worden gecontroleerd of het bestand is voltooid en een foutbericht kan niet worden gerapporteerd als het mislukt. + +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 +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 diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang index 10945c6fc8a..7ddc5abd9ac 100644 --- a/htdocs/langs/nl_NL/banks.lang +++ b/htdocs/langs/nl_NL/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transactie AddBankRecord=Transactie toevoegen AddBankRecordLong=Transactie handmatig toevoegen Conciliated=Afgestemd -ConciliatedBy=Afgestemd door +ReConciliedBy=Afgestemd door DateConciliating=Afgestemd op BankLineConciliated=Boeking afgestemd met bankafschrift -Reconciled=Afgestemd -NotReconciled=Niet afgestemd +BankLineReconciled=Afgestemd +BankLineNotReconciled=Niet afgestemd CustomerInvoicePayment=Afnemersbetaling SupplierInvoicePayment=Leveranciersbetaling SubscriptionPayment=Betaling van abonnement @@ -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 kassa controle -NewCashFence=Nieuwe kassa openen of sluiten +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Inkleuren mutaties BankColorizeMovementDesc=Als deze functie is ingeschakeld, kunt u een specifieke achtergrondkleur kiezen voor debet- of creditmutaties BankColorizeMovementName1=Achtergrondkleur voor debetmutatie @@ -181,4 +181,7 @@ BankColorizeMovementName2=Achtergrondkleur voor creditmutatie IfYouDontReconcileDisableProperty=Als u op sommige bankrekeningen geen bankafstemmingen uitvoert, schakelt u de eigenschap "%s" uit om deze waarschuwing te verwijderen. 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 gedefineerd +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 diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang index a38b6fc19af..0ff3733512d 100644 --- a/htdocs/langs/nl_NL/bills.lang +++ b/htdocs/langs/nl_NL/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Betalingsverslagen PaymentsAlreadyDone=Betalingen gedaan PaymentsBackAlreadyDone=Al betaalde restitutie PaymentRule=Betalingsvoorwaarde -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Betalingswijze +PaymentModes=Betaalmethoden +DefaultPaymentMode=Standaard betaalmethode DefaultBankAccount=Standaard bankrekening -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Betaalmethode (id) +CodePaymentMode=Betaalmethode (code) +LabelPaymentMode=Betaalmethode (label) +PaymentModeShort=Betalingswijze PaymentTerm=Betaalvoorwaarde PaymentConditions=Betalingsvoorwaarden PaymentConditionsShort=Betalingsvoorwaarden @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Fout, correcte factuur moet een negatief bedrag ErrorInvoiceOfThisTypeMustBePositive=Fout, dit type factuur moet een bedrag hebben exclusief BTW-positief (of nul) ErrorCantCancelIfReplacementInvoiceNotValidated=Fout, kan een factuur niet annuleren die is vervangen door een ander factuur als deze nog in conceptstatus is ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Dit onderdeel of een ander onderdeel is al in gebruik, dus kortingsreeksen kunnen niet worden verwijderd. +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=Van BillTo=Voor ActionsOnBill=Acties op factuur @@ -191,7 +192,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=Resterende onbetaalde bedragen (%s ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Aan restant te betalen (%s %s) wordt een korting toegekend, omdat de betaling werd verricht vóór de termijn. Ik accepteer de BTW te verliezen op deze korting. ConfirmClassifyPaidPartiallyReasonDiscountVat=Aan restant te betalen (%s %s) wordt een korting toegekend, omdat de betaling werd verricht vóór de termijn. Ik vorder de BTW terug van deze korting, zonder een credit nota. ConfirmClassifyPaidPartiallyReasonBadCustomer=Slechte afnemer -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Inhouding per bank (intermediaire bankkosten) ConfirmClassifyPaidPartiallyReasonProductReturned=Producten gedeeltelijk teruggegeven ConfirmClassifyPaidPartiallyReasonOther=Claim verlaten om andere redenen ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Deze keuze is mogelijk als uw factuur van passende opmerkingen is voorzien. (Voorbeeld «Alleen de belasting die overeenkomt met de daadwerkelijk betaalde prijs geeft recht op aftrek») @@ -199,7 +200,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In sommige landen is deze keuz ConfirmClassifyPaidPartiallyReasonAvoirDesc=Maak deze keuze als alle andere keuzes niet passend zijn ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Een slechte klant is een klant die weigert zijn schuld te betalen. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Deze keuze wordt gebruikt wanneer er geen complete betaling is ontvangen, omdat sommige van de producten zijn geretourneerd -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=Het onbetaalde bedrag is intermediaire bankkosten, direct in mindering gebracht op het correcte bedrag betaald door de Klant. ConfirmClassifyPaidPartiallyReasonOtherDesc=Gebruik deze keuze als alle andere niet geschikt zijn, bijvoorbeeld in de volgende situatie:
    - betaling niet voltooid omdat sommige producten zijn teruggestuurd
    - geclaimd bedrag te belangrijk omdat een korting is vergeten
    In alle gevallen moet het te veel gevorderde bedrag in het boekhoudsysteem worden gecorrigeerd door een creditnota te maken. ConfirmClassifyAbandonReasonOther=Andere ConfirmClassifyAbandonReasonOtherDesc=Deze keuze zal in alle andere gevallen worden gebruikt. Bijvoorbeeld omdat u van plan bent om de factuur te vervangen. @@ -235,24 +236,24 @@ AlreadyPaidBack=Reeds terugbetaald AlreadyPaidNoCreditNotesNoDeposits=Reeds betaald (zonder creditnota's en stortingen's) Abandoned=Verlaten RemainderToPay=Resterend onbetaald -RemainderToPayMulticurrency=Remaining unpaid, original currency +RemainderToPayMulticurrency=Resterend onbetaald bedrag, oorspronkelijke valuta RemainderToTake=Resterende bedrag over te nemen -RemainderToTakeMulticurrency=Remaining amount to take, original currency +RemainderToTakeMulticurrency=Resterend bedrag te nemen, originele valuta RemainderToPayBack=Resterende bedrag terug te storten -RemainderToPayBackMulticurrency=Remaining amount to refund, original currency -NegativeIfExcessRefunded=negative if excess refunded +RemainderToPayBackMulticurrency=Resterend te restitueren bedrag, originele valuta +NegativeIfExcessRefunded=negatief indien teveel terugbetaald Rest=Hangende AmountExpected=Gevorderde bedrag ExcessReceived=Overbetaling -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received +ExcessReceivedMulticurrency=Te veel ontvangen, originele valuta +NegativeIfExcessReceived=negatief indien teveel ontvangen ExcessPaid=Teveel betaald -ExcessPaidMulticurrency=Excess paid, original currency +ExcessPaidMulticurrency=Te veel betaald, originele valuta EscompteOffered=Korting aangeboden (betaling vóór termijn) EscompteOfferedShort=Korting SendBillRef=Stuur factuur %s SendReminderBillRef=Stuur factuur %s (herinnering) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Indiening van betalingsbewijs %s NoDraftBills=Geen conceptfacturen NoOtherDraftBills=Geen andere conceptfacturen NoDraftInvoices=Geen facturen in aanmaak @@ -269,7 +270,7 @@ DateInvoice=Factuurdatum DatePointOfTax=Belastingpunt NoInvoice=Geen factuur NoOpenInvoice=Geen openstaande factuur -NbOfOpenInvoices=Number of open invoices +NbOfOpenInvoices=Aantal openstaande facturen ClassifyBill=Classifiseer factuur SupplierBillsToPay=Onbetaalde leveranciersfacturen CustomerBillsUnpaid=Onbetaalde klant facturen @@ -279,9 +280,11 @@ SetMode=Stel betalingstype in SetRevenuStamp=Instellen fiscaal stempel Billed=Gefactureerd RecurringInvoices=Terugkerende facturen -RecurringInvoice=Recurring invoice +RecurringInvoice=Terugkerende factuur RepeatableInvoice=Sjabloon factuur RepeatableInvoices=Sjabloon facturen +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=Sjabloon Repeatables=Sjablonen ChangeIntoRepeatableInvoice=Omzetten in sjabloon factuur @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=Cheque betalingen (incl. BTW) zijn verschuldigd aa SendTo=Verzonden naar PaymentByTransferOnThisBankAccount=Betaling via overschrijving op de volgende bankrekening VATIsNotUsedForInvoice=* BTW niet van toepassing +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Door toepassing van burgerwetboek LawApplicationPart2=blijven de goederen eigendom van LawApplicationPart3=de verkoper tot volledige betaling van @@ -583,7 +587,7 @@ ToCreateARecurringInvoiceGene=Om toekomstige facturen regelmatig en handmatig te ToCreateARecurringInvoiceGeneAuto=Als u dergelijke facturen automatisch wilt laten genereren, vraag dan uw beheerder om module %s in te schakelen en in te stellen. Merk op dat beide methoden (handmatig en automatisch) samen kunnen worden gebruikt zonder risico op duplicatie. DeleteRepeatableInvoice=Verwijder tijdelijke factuur ConfirmDeleteRepeatableInvoice=Weet u zeker dat u dit sjabloon factuur wilt verwijderen? -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per selected object) +CreateOneBillByThird=Maak één factuur per derde partij aan (anders één factuur per geselecteerd object) BillCreated=%s factuur(en) gegenereerd BillXCreated=Factuur %s gegenereerd StatusOfGeneratedDocuments=Status aanmaken document @@ -599,11 +603,12 @@ BILL_SUPPLIER_DELETEInDolibarr=Leverancierfactuur verwijderd UnitPriceXQtyLessDiscount=Eenheidsprijs x Aantal - Korting CustomersInvoicesArea=Factureringsgebied voor klanten SupplierInvoicesArea=Factureringsgebied leverancier -FacParentLine=Hoofd factuurregel SituationTotalRayToRest=Netto restant te betalen PDFSituationTitle=Situatie n ° %d SituationTotalProgress=Totale voortgang %d %% SearchUnpaidInvoicesWithDueDate=Zoek onbetaalde facturen met een vervaldatum = %s -NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +NoPaymentAvailable=Geen betaling beschikbaar voor %s +PaymentRegisteredAndInvoiceSetToPaid=Betaling geregistreerd en factuur %s op betaald gezet +SendEmailsRemindersOnInvoiceDueDate=Stuur een herinnering per e-mail voor onbetaalde facturen +MakePaymentAndClassifyPayed=Betaling registreren +BulkPaymentNotPossibleForInvoice=Bulkbetaling is niet mogelijk voor factuur %s (slecht type of status) diff --git a/htdocs/langs/nl_NL/cashdesk.lang b/htdocs/langs/nl_NL/cashdesk.lang index a767d5173e6..6c761e4fdef 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=Kassa sluiten -CashFenceDone=Kassa gesloten voor de periode +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period 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 de pop-up "Kassa beheren" bij het openen van de kassa -CloseCashFence=Sluit de kassa-bediening +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Kassa verslag MainPrinterToUse=Hoofdprinter om te gebruiken OrderPrinterToUse=Bestel printer om te gebruiken @@ -130,7 +130,9 @@ ShowPriceHT = Toon de kolom met de prijs exclusief btw (op het scherm) ShowPriceHTOnReceipt = Toon kolom met prijs exclusief btw (bon) CustomerDisplay=Klantdisplay SplitSale=Verkoop splitsen -PrintWithoutDetailsButton=Add "Print without details" button -PrintWithoutDetailsLabelDefault=Line label by default on printing without details -PrintWithoutDetails=Print without details -YearNotDefined=Year is not defined +PrintWithoutDetailsButton=Voeg de knop "Afdrukken zonder details" toe +PrintWithoutDetailsLabelDefault=Standaard lijn label bij afdrukken zonder details +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
    diff --git a/htdocs/langs/nl_NL/companies.lang b/htdocs/langs/nl_NL/companies.lang index cc7e2432b00..253a550df77 100644 --- a/htdocs/langs/nl_NL/companies.lang +++ b/htdocs/langs/nl_NL/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Prospectenoverzicht IdThirdParty=ID Klant IdCompany=ID bedrijf IdContact=ID contactpersoon +ThirdPartyAddress=Adres van derden ThirdPartyContacts=Contacten van derden ThirdPartyContact=Contact / adres van derden Company=Bedrijf @@ -51,19 +52,22 @@ CivilityCode=Aanspreekvorm RegisteredOffice=Statutaire zetel Lastname=Achternaam Firstname=Voornaam +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 @@ -80,7 +84,7 @@ Web=Internetadres Poste= Functie DefaultLang=Standaard taal VATIsUsed=Gebruikte BTW -VATIsUsedWhenSelling=This defines if this third party includes a sales tax or not when it makes an invoice to its own customers +VATIsUsedWhenSelling=Dit bepaalt of deze derde partij een omzetbelasting opneemt of niet wanneer hij een factuur maakt aan zijn eigen klanten VATIsNotUsed=BTW wordt niet gebruikt CopyAddressFromSoc=Adres kopiëren van gegevens van relatie ThirdpartyNotCustomerNotSupplierSoNoRef=Relatie is noch klant, noch leverancier, geen beschikbare verwijzende objecten @@ -102,6 +106,7 @@ WrongSupplierCode=Ongeldige leveranciercode CustomerCodeModel=Afnemersmodel SupplierCodeModel=Leveranciercode model Gencod=Streepjescode +GencodBuyPrice=Barcode van prijsref ##### Professional ID ##### ProfId1Short=Prof id 1 ProfId2Short=Prof id 2 @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=KVK nummer ProfId2CM=BTW-id -ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +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=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId3ShortCM=Nr. van scheppingsdecreet +ProfId4ShortCM=Depositobewijs nr. +ProfId5ShortCM=Overigen ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -283,10 +288,10 @@ 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) +ProfId1UA=Prof-ID 1 (EDRPOU) +ProfId2UA=Prof-ID 2 (DRFO) +ProfId3UA=Prof-ID 3 (INN) +ProfId4UA=Prof Id 4 (Certificaat) ProfId5UA=Prof Id 5 (RNOKPP) ProfId6UA=Prof Id 6 (TRDPAU) ProfId1DZ=RC @@ -359,7 +364,7 @@ ListOfThirdParties=Lijst van derden ShowCompany=Relatie ShowContact=Contact adres ContactsAllShort=Alle (Geen filter) -ContactType=Type contactpersoon +ContactType=Contactrol ContactForOrders=Opdrachtencontactpersoon ContactForOrdersOrShipments=Contactpersoon bij order of verzending ContactForProposals=Offertecontactpersoon @@ -381,7 +386,7 @@ VATIntraCheck=Controleren VATIntraCheckDesc=Het btw-nummer moet het landnummer bevatten. De link %s maakt gebruik van de European VAT checker service (VIES) die internettoegang vanaf de Dolibarr-server vereist. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=Controleer het intracommunautaire btw-nummer op de website van de Europese Commissie -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraManualCheck=U kunt ook handmatig controleren op de website van de Europese Commissie %s ErrorVATCheckMS_UNAVAILABLE=Controle niet mogelijk. Controleerdienst wordt niet verleend door lidstaat (%s). NorProspectNorCustomer=Geen prospect, noch klant JuridicalStatus=Soort bedrijf diff --git a/htdocs/langs/nl_NL/compta.lang b/htdocs/langs/nl_NL/compta.lang index ebf78431f3b..2ffdfc74c2a 100644 --- a/htdocs/langs/nl_NL/compta.lang +++ b/htdocs/langs/nl_NL/compta.lang @@ -104,8 +104,8 @@ LT1PaymentES=RE Betaling LT1PaymentsES=RE Betalingen LT2PaymentES=IRPF betaling LT2PaymentsES=IRPF Betalingen -VATPayment=Betaling verkoop-belasting -VATPayments=Betalingen verkoop-belasting +VATPayment=Betaling BTW +VATPayments=Betalingen BTW VATDeclarations=BTW-aangiften VATDeclaration=btw-aangifte VATRefund=BTW Terugbetaling @@ -146,9 +146,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=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=Weet je zeker dat je dit salaris wilt verwijderen? +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. @@ -170,9 +172,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. @@ -189,26 +191,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 -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=Btw-rapport +VATReportByPeriods=Btw-rapport per periode +VATReportByMonth=BTW overzicht per maand +VATReportByRates=BTW overzicht per tarief +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 @@ -287,14 +289,15 @@ ReportPurchaseTurnover=Inkoopbedrag gefactureerd ReportPurchaseTurnoverCollected=Verzamelde inkoop-omzet IncludeVarpaysInResults = Neem verschillende betalingen op in rapporten IncludeLoansInResults = Leningen opnemen in rapporten -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 ? +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/errors.lang b/htdocs/langs/nl_NL/errors.lang index fe70a2010cb..ac8ed16cfd8 100644 --- a/htdocs/langs/nl_NL/errors.lang +++ b/htdocs/langs/nl_NL/errors.lang @@ -9,6 +9,7 @@ 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 @@ -27,9 +28,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 @@ -66,7 +67,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) @@ -85,12 +86,13 @@ 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 ErrorsOnXLines=%s fouten gevonden @@ -113,7 +115,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 @@ -269,19 +271,31 @@ 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=Ongeautoriseerd teken in de inlognaam +ErrorRequestTooLarge=Fout, verzoek te groot +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 # 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. @@ -310,25 +324,26 @@ 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 # 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/exports.lang b/htdocs/langs/nl_NL/exports.lang index 038a3f90c80..e547a96ed86 100644 --- a/htdocs/langs/nl_NL/exports.lang +++ b/htdocs/langs/nl_NL/exports.lang @@ -53,8 +53,8 @@ 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 de template file met informatie over de velden -StarAreMandatory=* zijn verplichte velden +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=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 @@ -135,3 +135,6 @@ NbInsert=Aantal ingevoegde regels: %s NbUpdate=Aantal bijgewerkte regels: %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: 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 28841f9e4a9..e73a3129bdd 100644 --- a/htdocs/langs/nl_NL/install.lang +++ b/htdocs/langs/nl_NL/install.lang @@ -8,6 +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=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. @@ -16,13 +17,6 @@ PHPMemoryOK=Het maximale sessiegeheugen van deze PHP installatie is ingesteld op PHPMemoryTooLow=Uw PHP max sessie-geheugen is ingesteld op %s bytes. Dit is te laag. Wijzig uw php.ini om de parameter memory_limit in te stellen op ten minste %s bytes. Recheck=Klik hier voor een meer gedetailleerde test ErrorPHPDoesNotSupportSessions=Uw PHP-installatie ondersteunt geen sessies. Deze functie is vereist om Dolibarr te laten werken. Controleer uw PHP-instellingen en machtigingen van de sessiemap. -ErrorPHPDoesNotSupportGD=Uw PHP-installatie ondersteunt geen grafische GD-functies. Er zijn geen grafieken beschikbaar. -ErrorPHPDoesNotSupportCurl=Uw PHP versie ondersteunt geen Curl. -ErrorPHPDoesNotSupportCalendar=Uw PHP-installatie ondersteunt geen php-agenda-extensies. -ErrorPHPDoesNotSupportUTF8=Uw PHP-installatie ondersteunt geen UTF8-functies. Dolibarr kan niet correct werken. Los dit op voordat u Dolibarr installeert. -ErrorPHPDoesNotSupportIntl=Uw PHP-installatie ondersteunt geen Intl-functies. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Uw PHP-installatie ondersteunt geen uitgebreide debug-functies. ErrorPHPDoesNotSupport=Uw PHP-installatie ondersteunt geen %s-functies. ErrorDirDoesNotExists=De map %s bestaat niet. ErrorGoBackAndCorrectParameters=Ga terug en controleer / corrigeer de parameters. @@ -30,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/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..bd45d83e6fc 100644 --- a/htdocs/langs/nl_NL/loan.lang +++ b/htdocs/langs/nl_NL/loan.lang @@ -24,7 +24,7 @@ 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 diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index 5cbc2aaf8f2..d07f0299a3f 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -88,7 +88,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 +115,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 @@ -212,8 +212,8 @@ 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 @@ -244,6 +244,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 +345,7 @@ KiloBytes=KiloBytes MegaBytes=MegaBytes GigaBytes=GigaBytes TeraBytes=Terabytes -UserAuthor=opgemaakt door +UserAuthor=Aangemaakt door UserModif=Bijgewerkt door b=b Kb=Kb @@ -517,6 +518,7 @@ or=of Other=Overig Others=Overigen OtherInformations=Overige informatie +Workflow=Workflow Quantity=Hoeveelheid Qty=Aantal ChangedBy=Veranderd door @@ -619,6 +621,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 +712,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 +802,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,7 +914,7 @@ 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 @@ -1161,6 +1166,17 @@ 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=Betrokken verkoopvertegenwoordigers +CommercialAffected=Betrokken verkoopvertegenwoordiger +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 diff --git a/htdocs/langs/nl_NL/members.lang b/htdocs/langs/nl_NL/members.lang index 9265a01e929..7aad6d87357 100644 --- a/htdocs/langs/nl_NL/members.lang +++ b/htdocs/langs/nl_NL/members.lang @@ -1,41 +1,42 @@ # Dolibarr language file - Source file is en_US - members MembersArea=Ledenoverzicht -MemberCard=Lidmaatschapskaart +MemberCard=Lidkaart SubscriptionCard=Inschrijvingskaart Member=Lid Members=Leden -ShowMember=Toon lidmaatschapskaart +ShowMember=Toon lidkaart UserNotLinkedToMember=Gebruiker niet gekoppeld aan een lid -ThirdpartyNotLinkedToMember=Derden niet gekoppeld aan een lid -MembersTickets=Membership address sheet -FundationMembers=Stichtingsleden / -donateurs +ThirdpartyNotLinkedToMember=Derde partij niet gekoppeld aan een lid +MembersTickets=Adresetiketten leden +FundationMembers=Verenigingsleden ListOfValidatedPublicMembers=Lijst van gevalideerde openbare leden ErrorThisMemberIsNotPublic=Dit lid is niet openbaar ErrorMemberIsAlreadyLinkedToThisThirdParty=Een ander lid (naam: %s, login: %s) is al gekoppeld aan een derde partij %s. Verwijder deze link eerst omdat een derde partij niet kan worden gekoppeld aan slechts een lid (en vice versa). 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 naar een Dolibarr gebruiker +SetLinkToUser=Link aaneen Dolibarr gebruiker SetLinkToThirdParty=Link naar een derde partij in Dolibarr -MembersCards=Visitekaartjes voor leden +MembersCards=Genereren van lidkaarten MembersList=Ledenlijst MembersListToValid=Lijst van conceptleden (te valideren) MembersListValid=Lijst van geldige leden -MembersListUpToDate=List of valid members with up-to-date contribution -MembersListNotUpToDate=List of valid members with out-of-date contribution +MembersListUpToDate=Lijst van gevalideerde leden met geldige bijdrage +MembersListNotUpToDate=Lijst van gevalideerde leden met vervallen bijdrage MembersListExcluded=Lijst met uitgesloten leden MembersListResiliated=Lijst verwijderde leden MembersListQualified=Lijst van gekwalificeerde leden MenuMembersToValidate=Conceptleden MenuMembersValidated=Gevalideerde leden -MenuMembersExcluded=uitgesloten leden +MenuMembersExcluded=Uitgesloten leden MenuMembersResiliated=Verwijderde leden -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=Lid ID +MembersWithSubscriptionToReceive=Leden met te ontvangen bijdragen +MembersWithSubscriptionToReceiveShort=Te ontvangen bijdragen +DateSubscription=Startdatum lidmaatschap +DateEndSubscription=Einddatum lidmaatschap +EndSubscription=Einde lidmaatschap +SubscriptionId=Bijdrage ID +WithoutSubscription=Zonder bijdrage +MemberId=Member Id +MemberRef=Member Ref NewMember=Nieuw lid MemberType=Type lid MemberTypeId=Lidtype id @@ -43,22 +44,22 @@ MemberTypeLabel=Lidtype label MembersTypes=Ledentypes MemberStatusDraft=Concept (moet worden gevalideerd) MemberStatusDraftShort=Ontwerp -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=Gevalideerd (wachtend op bijdrage) MemberStatusActiveShort=Gevalideerd -MemberStatusActiveLate=Contribution expired +MemberStatusActiveLate=Bijdrage vervallen MemberStatusActiveLateShort=Verlopen MemberStatusPaid=Abonnement bijgewerkt MemberStatusPaidShort=Bijgewerkt -MemberStatusExcluded=uitgesloten lid -MemberStatusExcludedShort=uitgesloten +MemberStatusExcluded=Uitgesloten lid +MemberStatusExcludedShort=Uitgesloten MemberStatusResiliated=Verwijderd lid MemberStatusResiliatedShort=Verwijderd MembersStatusToValid=Conceptleden -MembersStatusExcluded=uitgesloten leden +MembersStatusExcluded=Uitgesloten leden MembersStatusResiliated=Verwijderde leden -MemberStatusNoSubscription=Validated (no contribution required) +MemberStatusNoSubscription=Gevalideerd (geen bijdrage vereist) MemberStatusNoSubscriptionShort=Gevalideerd -SubscriptionNotNeeded=No contribution required +SubscriptionNotNeeded=Geen bijdrage vereist NewCotisation=Nieuwe bijdrage PaymentSubscription=Nieuwe bijdragebetaling SubscriptionEndDate=Einddatum abonnement @@ -69,81 +70,81 @@ ConfirmDeleteMemberType=Weet u zeker dat u dit lid wilt verwijderen? MemberTypeDeleted=Lid verwijderd MemberTypeCanNotBeDeleted=Lid kan niet worden verwijderd NewSubscription=Nieuwe bijdrage -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. -Subscription=Contribution -Subscriptions=Contributions +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 +Subscriptions=Bijdragen SubscriptionLate=Laat -SubscriptionNotReceived=Contribution never received -ListOfSubscriptions=List of contributions +SubscriptionNotReceived=Bijdrage nooit ontvangen +ListOfSubscriptions=Lijst van bijdragen SendCardByMail=Verzend kaart per e-mail -AddMember=Creeer lid -NoTypeDefinedGoToSetup=Geen lidtypes ingesteld. Ga naar Home->Setup->Ledentypes +AddMember=Creëer lid +NoTypeDefinedGoToSetup=Geen lidtypes ingesteld. Ga naar Ledentypes. NewMemberType=Nieuw lidtype WelcomeEMail=Welkomst e-mail -SubscriptionRequired=Contribution required +SubscriptionRequired=Bijdrage vereist DeleteType=Verwijderen VoteAllowed=Stemming toegestaan -Physical=Individueel -Moral=bedrijf +Physical=Individu +Moral=Bedrijf MorAndPhy=Bedrijf en individu Reenable=Opnieuw inschakelen ExcludeMember=Een lid uitsluiten -Exclude=Exclude +Exclude=Uitsluiten ConfirmExcludeMember=Weet u zeker dat u dit lid wilt uitsluiten? ResiliateMember=Verwijder een lid ConfirmResiliateMember=Weet je zeker dat je dit lidmaatschap wilt beëindigen? DeleteMember=Lid verwijderen -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his contributions)? +ConfirmDeleteMember=Ben je zeker dat je dit lid wilt verwijderen (Dit verwijdert ook alle bijdragen van het lid)? DeleteSubscription=Abonnement verwijderen -ConfirmDeleteSubscription=Are you sure you want to delete this contribution? +ConfirmDeleteSubscription=Ben je zeker dat je deze bijdrage wilt verwijderen? Filehtpasswd=htpasswd bestand ValidateMember=Valideer een lid ConfirmValidateMember=Weet u zeker dat u dit lid wilt valideren? FollowingLinksArePublic=De volgende links zijn open pagina's die niet worden beschermd door enige Dolibarr-toestemming. Het zijn geen opgemaakte pagina's, die als voorbeeld worden gegeven om te laten zien hoe de ledendatabase moet worden weergegeven. PublicMemberList=Publieke ledenlijst -BlankSubscriptionForm=Public self-registration form +BlankSubscriptionForm=Openbaar inschrijvingsformulier BlankSubscriptionFormDesc=Dolibarr kan u een openbare URL / website bieden waarmee externe bezoekers kunnen vragen zich te abonneren op de stichting. Als een online betaalmodule is ingeschakeld, kan ook automatisch een betaalformulier worden verstrekt. -EnablePublicSubscriptionForm=Schakel de openbare website in met het zelfinschrijvingsformulier +EnablePublicSubscriptionForm=Gebruik openbare website met inschrijvingsformlier ForceMemberType=Forceer het lidtype -ExportDataset_member_1=Members and contributions +ExportDataset_member_1=Leden en bijdragen ImportDataset_member_1=Leden LastMembersModified=Laatste %s gewijzigde leden -LastSubscriptionsModified=Latest %s modified contributions +LastSubscriptionsModified=Laatst %s gewijzigde bijdragen String=String Text=Tekst Int=Numeriek DateAndTime=Datum en tijd -PublicMemberCard=Publieke lidmaatschapskaart -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +PublicMemberCard=Openbare lidkaart +SubscriptionNotRecorded=Bijdrage niet opgeslaan +AddSubscription=Maak bijdrage +ShowSubscription=Toon bijdrage # Label of email templates SendingAnEMailToMember=Informatie-e-mail naar lid verzenden SendingEmailOnAutoSubscription=E-mail verzenden bij automatische registratie SendingEmailOnMemberValidation=E-mail verzenden bij validatie van nieuwe leden -SendingEmailOnNewSubscription=Sending email on new contribution -SendingReminderForExpiredSubscription=Sending reminder for expired contributions +SendingEmailOnNewSubscription=E-mail verzenden bij nieuwe bijdrage +SendingReminderForExpiredSubscription=Herinnering verzenden bij verlopen bijdragen SendingEmailOnCancelation=Verzenden van e-mail bij annulering SendingReminderActionComm=Herinnering verzenden voor agenda-evenement # Topic of email templates YourMembershipRequestWasReceived=Je lidmaatschap is ontvangen. YourMembershipWasValidated=Uw lidmaatschap is gevalideerd -YourSubscriptionWasRecorded=Your new contribution was recorded -SubscriptionReminderEmail=contribution reminder +YourSubscriptionWasRecorded=Uw nieuwe bijdrage is toegevoegd. +SubscriptionReminderEmail=Bijdrageherinnering YourMembershipWasCanceled=Je lidmaatschap is geannuleerd 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 opgenomen.

    +ThisIsContentOfYourSubscriptionWasRecorded=We willen u laten weten dat uw nieuwe abonnement is toegevoegd.

    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 DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Inhoud van de ontvangen e-mail in geval van automatische inschrijving van een gast -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member auto-registration +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=E-mailsjabloon om te verzenden bij zelfregistratie van het lid DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=E-mailsjabloon om te gebruiken om e-mail te verzenden naar een lid over de validatie van leden -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-mailsjabloon om te verzenden bij toevoeging nieuwe bijdrage +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=E-mailsjabloon om een herinneringse-mail te verzenden als de bijdrage bijna vervalt DescADHERENT_EMAIL_TEMPLATE_CANCELATION=E-mailsjabloon om te gebruiken om e-mail naar een lid te verzenden bij annulering van een lid DescADHERENT_EMAIL_TEMPLATE_EXCLUSION=E-mailsjabloon om te gebruiken om e-mail te sturen naar een lid met uitsluiting van leden DescADHERENT_MAIL_FROM=E-mail afzender voor automatische e-mails @@ -156,24 +157,24 @@ DescADHERENT_CARD_TEXT_RIGHT=Tekst gedrukt op lidmaatschapkaarten (Rechts uitlij DescADHERENT_CARD_FOOTER_TEXT=Voettekst van de lidmaatschapskaarten ShowTypeCard=Toon type "%s" HTPasswordExport=htpassword bestandsgeneratie -NoThirdPartyAssociatedToMember=No third party associated with this member -MembersAndSubscriptions=Members and Contributions +NoThirdPartyAssociatedToMember=Geen derde partij gelinkt met dit lid +MembersAndSubscriptions=Leden en bijdragen MoreActions=Aanvullende acties bij inschrijving -MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution +MoreActionsOnSubscription=Bijkomende actie die standaard wordt voorgesteld bij het toevoegen van een bijdrage, ook bij een automatische online betaling. MoreActionBankDirect=Aanmaken boeking in bankboek MoreActionBankViaInvoice=Aanmaken factuur en betaling in bankboek MoreActionInvoiceOnly=Creëer een factuur zonder betaling -LinkToGeneratedPages=Genereer visitekaartjes +LinkToGeneratedPages=Genereer lidkaarten of adresetiketten LinkToGeneratedPagesDesc=Met behulp van dit scherm kunt u PDF-bestanden genereren met visitekaartjes voor al uw leden of een bepaald lid. DocForAllMembersCards=Genereer visitekaartjes voor alle leden (Formaat voor de uitvoer zoals ingesteld: %s) DocForOneMemberCards=Genereer visitekaartjes voor een bepaald lid (Format voor de uitvoer zoals ingesteld: %s) DocForLabels=Genereer adresvellen (formaat voor de uitvoer zoals ingesteld: %s) -SubscriptionPayment=Contribution payment -LastSubscriptionDate=Date of latest contribution payment -LastSubscriptionAmount=Amount of latest contribution +SubscriptionPayment=Bijdragebetaling +LastSubscriptionDate=Datum van laatste bijdrage +LastSubscriptionAmount=Bedrag van laatste bijdrage LastMemberType=Type laatste lid MembersStatisticsByCountries=Leden statistieken per land -MembersStatisticsByState=Leden statistieken per staat / provincie +MembersStatisticsByState=Leden statistieken per regio/provincie MembersStatisticsByTown=Leden van de statistieken per gemeente MembersStatisticsByRegion=Leden statistieken per regio NbOfMembers=Totaal aantal leden @@ -184,37 +185,39 @@ MembersByStateDesc=Dit scherm toont u statistieken van leden per staat/provincie MembersByTownDesc=Dit scherm toont u statistieken van leden per stad. MembersByNature=Dit scherm toont u statistieken van leden van nature. MembersByRegion=Dit scherm toont u statistieken van leden per regio. -MembersStatisticsDesc=Kies de statistieken die u wilt lezen ... +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 NewMemberbyWeb=Nieuw lid toegevoegd. In afwachting van goedkeuring NewMemberForm=Nieuw lid formulier -SubscriptionsStatistics=Contributions statistics -NbOfSubscriptions=Number of contributions -AmountOfSubscriptions=Amount collected from contributions -TurnoverOrBudget=Omzet (voor een bedrijf) of Budget (voor een stichting) -DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its contribution +SubscriptionsStatistics=Bijdragenstatistieken +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 ByProperties=Van nature MembersStatisticsByProperties=Ledenstatistieken per aard -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=Naam of Bedrijf -SubscriptionRecorded=Contribution recorded +VATToUseForSubscriptions=BTW-tarief voor bijdragen +NoVatOnSubscription=Geen BTW voor bijdragen +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=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=Stuur herinneringse-mail voor verlopen bijdragen +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=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=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=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 diff --git a/htdocs/langs/nl_NL/modulebuilder.lang b/htdocs/langs/nl_NL/modulebuilder.lang index 2ce00790ded..7664a672ab9 100644 --- a/htdocs/langs/nl_NL/modulebuilder.lang +++ b/htdocs/langs/nl_NL/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=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=Voer de naam in van het object dat u wilt maken zonder spaties. Gebruik hoofdletters om woorden te scheiden (bijvoorbeeld: MyObject, Student, Teacher ...). Het CRUD-classfile, maar ook het API-bestand, pagina's voor het weergeven/toevoegen/bewerken/verwijderen van objecten en SQL-bestanden worden gegenereerd. +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=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 ModuleKey=Module sleutel ObjectKey=Object sleutel +DicKey=Dictionary key ModuleInitialized=Module geïnitialiseerd FilesForObjectInitialized=Bestanden voor nieuw object '%s' geïnitialiseerd FilesForObjectUpdated=Bestanden voor object '%s' bijgewerkt (.sql-bestanden en .class.php bestand) @@ -52,7 +55,7 @@ LanguageFile=Bestand voor taal ObjectProperties=Object eigenschappen 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 = Stel database in op NIET NULL. -1 = Laat null-waarden toe en forceer waarde op NULL als deze leeg is ('' of 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=Gebruikt voor 'alles zoeken' DatabaseIndex=Database-index FileAlreadyExists=Bestand %s bestaat reeds @@ -94,7 +97,7 @@ 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=De menu's van uw module / toepassing worden gedefinieerd in de array $ this-> menu's in het modulebeschrijvingsbestand. U kunt dit bestand handmatig bewerken of de ingesloten editor gebruiken.

    Opmerking: Eenmaal gedefinieerd (en module opnieuw geactiveerd), zijn menu's ook zichtbaar in de menu-editor die beschikbaar is voor beheerders op %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=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). @@ -110,7 +113,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=Schakel de over-pagina uit +UseAboutPage=Do not generate the About page 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. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Gebruik een specifieke editor-URL UseSpecificFamily = Gebruik een specifieke familie UseSpecificAuthor = Gebruik een specifieke auteur UseSpecificVersion = Gebruik een specifieke eerste versie -IncludeRefGeneration=De referentie van het object moet automatisch worden gegenereerd -IncludeRefGenerationHelp=Vink dit aan als u code wilt opnemen om het genereren van de referentie automatisch te beheren -IncludeDocGeneration=Ik wil enkele documenten genereren van het 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=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 KeyForTooltip=Sleutel voor knopinfo @@ -138,10 +141,15 @@ CSSViewClass=CSS voor leesformulier CSSListClass=CSS voor lijst NotEditable=Niet bewerkbaar ForeignKey=Vreemde sleutel -TypeOfFieldsHelp=Type velden:
    varchar (99), dubbel (24,8), real, tekst, html, datetime, timestamp, integer, integer: ClassName: relativepath / to / classfile.class.php [: 1 [: filter]] ('1' betekent we voegen een + -knop toe na de combo om het record te maken, 'filter' kan 'status = 1 EN fk_user = __USER_ID EN entiteit IN (bijvoorbeeld __SHARED_ENTITIES__)' zijn) +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 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=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=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. 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/other.lang b/htdocs/langs/nl_NL/other.lang index 975622be187..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=Beheren van een winkel met een kassa +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,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Selecteer een object om de statistieken te bekijk ConfirmBtnCommonContent = Weet je zeker dat je "1%s"? ConfirmBtnCommonTitle = Bevestig CloseDialog = Sluiten +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/projects.lang b/htdocs/langs/nl_NL/projects.lang index 9d586de6b52..6d974c93227 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=Projectcontacten +PrivateProject=Toegewezen contacten ProjectsImContactFor=Projecten waarvoor ik expliciet contactpersoon ben AllAllowedProjects=Alle projecten die ik kan lezen (mine + public) AllProjects=Alle projecten @@ -190,6 +190,7 @@ PlannedWorkload=Geplande workload PlannedWorkloadShort=Workload ProjectReferers=Gerelateerde items ProjectMustBeValidatedFirst=Project moet eerst worden gevalideerd +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 @@ -197,7 +198,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 @@ -258,7 +259,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. @@ -275,7 +276,7 @@ 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 @@ -283,7 +284,14 @@ 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. 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=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 e0ff5f2d90e..64e4ebf05f7 100644 --- a/htdocs/langs/nl_NL/propal.lang +++ b/htdocs/langs/nl_NL/propal.lang @@ -54,6 +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 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? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Schriftelijke aanvaarding , stempel , datum en handtek ProposalsStatisticsSuppliers=Leveranciersoffertes statistieken CaseFollowedBy=Geval gevolgd door 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 -PrParentLine=Voorstel bovenliggende lijn 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 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 a3fef7dbaa7..55c5e8259e0 100644 --- a/htdocs/langs/nl_NL/ticket.lang +++ b/htdocs/langs/nl_NL/ticket.lang @@ -90,15 +90,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=Bevestigings e-mail van -TicketEmailNotificationFromHelp=Gebruikt als voorbeeld antwoord in het ticketbericht -TicketEmailNotificationTo=Notificatie e-mail naar -TicketEmailNotificationToHelp=Verzend e-mail notificatie naar dit adres. +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=Meld het aanmaken van tickets naar dit e-mailadres +TicketEmailNotificationToHelp=Indien aanwezig, wordt dit e-mailadres op de hoogte gebracht van 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,6 +138,18 @@ 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=Markeer het ticket automatisch als gelezen (indien aangemaakt vanuit backoffice) +TicketsAutoReadTicketHelp=Markeer het ticket automatisch als gelezen wanneer het vanuit de backoffice wordt aangemaakt. Wanneer een ticket wordt aangemaakt vanuit de openbare interface, blijft het ticket met de status "Niet gelezen". +TicketsDelayBeforeFirstAnswer=Een nieuw ticket moet een eerste antwoord ontvangen vóór (uren): +TicketsDelayBeforeFirstAnswerHelp=Als een nieuw ticket na deze periode (in uren) geen antwoord heeft gekregen, wordt er een belangrijk waarschuwingspictogram weergegeven in de lijstweergave. +TicketsDelayBetweenAnswers=Een onopgelost ticket mag niet inactief zijn tijdens (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=Mits 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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Sorteer op oplopende datum OrderByDateDesc=Sorteer op aflopende datum ShowAsConversation=Weergeven als conversatielijst MessageListViewType=Weergeven als tabellijst +ConfirmMassTicketClosingSendEmail=Automatisch e-mails verzenden bij het sluiten van tickets +ConfirmMassTicketClosingSendEmailQuestion=Wilt u derden verwittigen bij het afsluiten van deze tickets? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Geadresseerde is leeg. Geen e-mail TicketGoIntoContactTab=Ga naar het tabblad "Contacten" om ze te selecteren TicketMessageMailIntro=Introductie TicketMessageMailIntroHelp=Deze tekst wordt alleen aan het begin van de e-mail toegevoegd en zal niet worden opgeslagen. -TicketMessageMailIntroLabelAdmin=Inleiding tot het bericht bij het verzenden van e-mail -TicketMessageMailIntroText=Hallo,
    Er is een nieuw antwoord verzonden op een ticket. Dit is het bericht:
    -TicketMessageMailIntroHelpAdmin=Deze tekst wordt ingevoegd vóór de tekst van het antwoord op een ticket. +TicketMessageMailIntroLabelAdmin=Introductietekst voor alle ticketantwoorden +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 van Dolibarr TicketMessageMailSignature=Handtekening TicketMessageMailSignatureHelp=Deze tekst wordt alleen aan het einde van de e-mail toegevoegd en wordt niet opgeslagen. -TicketMessageMailSignatureText=

    Met vriendelijke groet,

    -

    +TicketMessageMailSignatureText=Bericht verzonden door %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Handtekening van reactie e-mail TicketMessageMailSignatureHelpAdmin=Deze tekst wordt ingevoegd na het antwoordbericht. TicketMessageHelp=Alleen deze tekst zal worden bewaard in de berichtenlijst op de ticketkaart. @@ -238,9 +254,16 @@ TicketChangeStatus=Verander status TicketConfirmChangeStatus=Bevestig de statusverandering: %s? TicketLogStatusChanged=Status gewijzigd: %s in %s TicketNotNotifyTiersAtCreate=Geen bedrijf melden bij aanmaken +NotifyThirdpartyOnTicketClosing=Contacten om op de hoogte te stellen tijdens het sluiten van het 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=Er is te veel tijd verstreken sinds het openen van het ticket zonder enig antwoord. +TicketsDelayFromLastResponseTooLong=Er is te veel tijd verstreken sinds het laatste antwoord op dit ticket. +TicketNoContractFoundToLink=Er is geen contract gevonden dat automatisch aan dit ticket is gekoppeld. Koppel een contract a.u.b. handmatig. +TicketManyContractsLinked=Veel contracten zijn automatisch aan dit ticket gekoppeld. Zorg ervoor dat u controleert welke moet worden gekozen. # # Logs @@ -268,8 +291,9 @@ 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=U kunt de voortgang van de ticket bekijken door op de bovenstaande link te klikken. +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=U kunt de geschiedenis van dit 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 . @@ -291,6 +315,10 @@ NewUser=Nieuwe gebruiker NumberOfTicketsByMonth=Aantal tickets per maand NbOfTickets=Aantal tickets # notifications +TicketCloseEmailSubjectCustomer=Ticket gesloten +TicketCloseEmailBodyCustomer=Dit is een automatisch bericht om u te informeren dat ticket %s zojuist is gesloten. +TicketCloseEmailSubjectAdmin=Ticket gesloten - Réf %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 @@ -318,7 +346,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 ad66a338a5c..635899d8b09 100644 --- a/htdocs/langs/nl_NL/users.lang +++ b/htdocs/langs/nl_NL/users.lang @@ -114,7 +114,7 @@ UserLogoff=Gebruiker uitgelogd UserLogged=Gebruiker gelogd DateOfEmployment=Datum indiensttreding DateEmployment=Werkgelegenheid -DateEmploymentstart=Startdatum dienstverband +DateEmploymentStart=Startdatum dienstverband DateEmploymentEnd=Einddatum dienstverband RangeOfLoginValidity=Toegang geldigheidsdatumbereik CantDisableYourself=U kunt uw eigen gebruikersrecord niet uitschakelen @@ -124,3 +124,7 @@ 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 diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index 7da1ad57bcd..c73af11e686 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Główne konto księgowe dla płatno AccountancyArea=Strefa księgowości AccountancyAreaDescIntro=Korzystanie z modułu księgowości odbywa się w kilku etapach: AccountancyAreaDescActionOnce=Następujące akcje są wykonywane zwykle tylko raz lub raz w roku... -AccountancyAreaDescActionOnceBis=Należy podjąć kolejne kroki, aby zaoszczędzić czas w przyszłości, sugerując prawidłowe domyślne konto księgowe podczas sporządzania dziennika (zapis w dziennikach i księdze głównej) +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=Następujące akcje są wykonywane zwykle każdego miesiąca, tygodnia lub dnia dla naprawdę wielkich firm... -AccountancyAreaDescJournalSetup=KROK %s: Utwórz lub sprawdź zawartość listy czasopism z menu %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=KROK %s: Sprawdź, czy istnieje model planu kont lub utwórz go z menu %s AccountancyAreaDescChart=KROK %s: Wybierz i | lub uzupełnij swój plan kont z menu %s AccountancyAreaDescVat=Krok %s: Zdefiniuj konta księgowe dla każdej stawki VAT. W tym celu użyj pozycji menu %s. AccountancyAreaDescDefault=KROK %s: Zdefiniuj domyślne konta księgowe. W tym celu użyj pozycji menu %s. -AccountancyAreaDescExpenseReport=KROK %s: Zdefiniuj domyślne konta księgowe dla każdego typu raportu z wydatków. W tym celu użyj pozycji menu %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=Krok %s: Zdefiniuj domyślne konta księgowe dla płatności i wynagrodzeń. W tym celu użyj pozycji menu %s. -AccountancyAreaDescContrib=KROK %s: Zdefiniuj domyślne konta księgowe dla wydatków specjalnych (podatki różne). W tym celu użyj pozycji menu %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=Krok %s: Zdefiniuj domyśle konta księgowe dla dotacji. W tym celu użyj pozycji menu %s. AccountancyAreaDescSubscription=KROK %s: Zdefiniuj domyślne konta księgowe dla subskrypcji członków. W tym celu użyj pozycji menu %s. AccountancyAreaDescMisc=KROK %s: Zdefiniuj obowiązkowe konto domyślne i domyślne konta księgowe dla różnych transakcji. W tym celu użyj pozycji menu %s. AccountancyAreaDescLoan=KROK %s: Zdefiniuj domyślne konta księgowe dla pożyczek. W tym celu użyj pozycji menu %s. AccountancyAreaDescBank=KROK %s: Zdefiniuj konta księgowe i kod arkusza dla każdego konta bankowego i finansowego. W tym celu użyj pozycji menu %s. -AccountancyAreaDescProd=Krok %s: Zdefiniuj konta księgowe dla swoich produktów/usług. W tym celu użyj pozycji menu %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=KROK %s: Sprawdź powiązanie między istniejącymi liniami %s a kontem księgowym, aby aplikacja mogła zapisywać transakcje w księdze jednym kliknięciem. Uzupełnij brakujące powiązania. W tym celu użyj pozycji menu %s. AccountancyAreaDescWriteRecords=Krok %s: Zapisz transakcje do głównej księgi. W tym celu idź do %s i kliknij na przycisk %s. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Zamknięte MenuAccountancyValidationMovements=Zatwierdź ruchy ProductsBinding=Konta produktów TransferInAccounting=Przelew w księgowości -RegistrationInAccounting=Rejestracja w rachunkowości +RegistrationInAccounting=Recording in accounting Binding=Powiązanie z kontami CustomersVentilation=Powiązania do faktury klienta SuppliersVentilation=Wiązanie faktury dostawcy @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Wiążący raport z wydatków CreateMvts=Utwórz nową transakcję UpdateMvts=Modyfikacja transakcji ValidTransaction=Potwierdź transakcję -WriteBookKeeping=Zarejestruj transakcje w księgowości +WriteBookKeeping=Record transactions in accounting Bookkeeping=Księga główna BookkeepingSubAccount=Subledger AccountBalance=Bilans konta @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Konto księgowe dla zarejestrowanych dotatcji ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Konto księgowe do rejestracji subskrypcji ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Konto księgowe domyślnie do rejestracji wpłaty klienta +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Według predefiniowanych grup ByPersonalizedAccountGroups=Według spersonalizowanych grup ByYear=Według roku NotMatch=Nie ustawione -DeleteMvt=Usuń niektóre linie operacyjne z księgowania +DeleteMvt=Delete some lines from accounting DelMonth=Miesiąc do usunięcia DelYear=Rok do usunęcia DelJournal=Dziennik do usunięcia -ConfirmDeleteMvt=Spowoduje to usunięcie wszystkich linii operacyjnych z rozliczenia roku / miesiąca i / lub określonego dziennika (wymagane jest co najmniej jedno kryterium). Będziesz musiał ponownie użyć funkcji „%s”, aby usunąć usunięty rekord z powrotem w księdze. -ConfirmDeleteMvtPartial=Spowoduje to usunięcie transakcji z księgowania (wszystkie wiersze operacji związane z tą samą transakcją zostaną usunięte) +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=Dziennik finansów ExpenseReportsJournal=Dziennik raportów kosztów DescFinanceJournal=Dziennik finansów zawiera wszystkie typy płatności wykonane przez konto bankowe @@ -278,30 +279,31 @@ 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=Sprawdź tutaj liczbę operacji miesięcznych, które nie zostały zatwierdzone, a lata podatkowe już otwarte -OverviewOfMovementsNotValidated=Krok 1 / Przegląd ruchów, które nie zostały zatwierdzone. (Konieczne do zamknięcia roku podatkowego) -AllMovementsWereRecordedAsValidated=Wszystkie ruchy zostały zarejestrowane jako zatwierdzone -NotAllMovementsCouldBeRecordedAsValidated=Nie wszystkie ruchy można było zarejestrować jako zatwierdzone -ValidateMovements=Zatwierdź ruchy +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=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 -MvtNotCorrectlyBalanced=Ruch nie jest prawidłowo wyważony. Obciążenie = %s | Kredyt = %s +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=Koniec z zapisem do dziennika +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Lista produktów nie dowiązanych do żadnego konta księgowego ChangeBinding=Zmień dowiązanie Accounted=Rozliczone w księdze NotYetAccounted=Not yet transferred to accounting ShowTutorial=Pokaż Poradnik NotReconciled=Nie pogodzono się -WarningRecordWithoutSubledgerAreExcluded=Ostrzeżenie, wszystkie operacje bez zdefiniowanego konta księgi podrzędnej są filtrowane i wykluczane z tego widoku +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=Opcje wiązania @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Wyłącz powiązanie i przeniesienie w k 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) ## 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) +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=Potwierdzenie wygenerowania pliku eksportu księgowości ? ExportDraftJournal=Export dziennika projektu Modelcsv=Model eksportu @@ -394,6 +397,21 @@ Range=Zakres konta księgowego Calculated=Przeliczone Formula=Formuła +## 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=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)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Niektóre obowiązkowe kroki konfiguracji nie zostały wykonane. Proszę je uzupełnić. ErrorNoAccountingCategoryForThisCountry=Brak dostępnej grupy kont księgowych dla kraju %s (patrz Strona główna - Konfiguracja - Słowniki) @@ -406,6 +424,9 @@ Binded=Linie związane ToBind=Linie do dowiązania UseMenuToSetBindindManualy=Wiersze jeszcze niezwiązane, użyj menu %s , aby wykonać powiązanie ręcznie 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 ## Import ImportAccountingEntries=Zapisy księgowe diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 6fc8a9744cd..df6680f4674 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -109,7 +109,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ń @@ -162,7 +162,7 @@ Purge=Czyszczenie PurgeAreaDesc=Ta strona pozwala usunąć wszystkie pliki wygenerowane lub przechowywane przez Dolibarr (pliki tymczasowe lub wszystkie pliki w katalogu %s). Korzystanie z tej funkcji zwykle nie jest konieczne. Jest to obejście dla użytkowników, których Dolibarr jest hostowany przez dostawcę, który nie oferuje uprawnień do usuwania plików wygenerowanych przez serwer WWW. 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=Delete log and temporary files (no risk of losing data) +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. PurgeRunNow=Czyść teraz PurgeNothingToDelete=Brak katalogu lub plików do usunięcia. @@ -477,7 +477,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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Używanie serwera SMTP własnego dostawcy usług pocztowych do 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=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) @@ -714,13 +714,14 @@ 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 Permission39=Zignoruj cenę minimalną -Permission41=Przeczytaj projekty i zadania (wspólny projekt i projekty, w sprawie których się kontaktuję). Można również wprowadzić czasochłonne, dla mnie lub mojej hierarchii, przydzielone zadania (grafik) -Permission42=Twórz / modyfikuj projekty (współdzielony projekt i projekty, w sprawie których się kontaktuję). Może również tworzyć zadania i przypisywać użytkowników do projektów i zadań -Permission44=Usuń projekty (projekt współdzielony i projekty, z którymi się kontaktuję) +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=Eksportuj projekty Permission61=Czytaj interwencje Permission62=Tworzenie / modyfikacja interwencji @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Tworzenie / modyfikacja stron trzecich związanych z użytkownikie Permission125=Usuń kontrahentów związanych z użytkownikiem z użytkownikiem Permission126=Eksport stron trzecich Permission130=Create/modify third parties payment information -Permission141=Przeczytaj wszystkie projekty i zadania (także projekty prywatne, dla których nie jestem osobą kontaktową) -Permission142=Twórz/modyfikuj wszystkie projekty i zadania (także projekty prywatne, dla których nie jestem kontaktem) -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=Czytaj dostawców Permission147=Czytaj statystyki Permission151=Przeczytaj polecenia zapłaty za polecenie zapłaty @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Rekordowe obciążenia/odrzucenia polecenia przelewu Permission601=Przeczytaj naklejki Permission602=Twórz/modyfikuj naklejki Permission609=Usuń naklejki +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Przeczytaj listy materiałów Permission651=Utwórz/zaktualizuj listy materiałów Permission652=Usuń listy materiałów @@ -909,7 +916,7 @@ Permission1011=Pokaż inwentaryzacje Permission1012=Utwórz nową inwentaryzację Permission1014=Validate inventory Permission1015=Allow to change PMP value for a product -Permission1016=Delete inventory +Permission1016=Usuń inwentaryzację Permission1101=Przeczytaj potwierdzenia dostaw Permission1102=Twórz/modyfikuj potwierdzenia dostaw Permission1104=Zatwierdź pokwitowania dostaw @@ -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=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. @@ -1051,7 +1060,7 @@ DictionaryFees=Raport z wydatków - Rodzaje wierszy raportu z wydatków DictionarySendingMethods=Metody wysyłki DictionaryStaff=Liczba zatrudnionych DictionaryAvailability=Opóźnienie dostawy -DictionaryOrderMethods=Order methods +DictionaryOrderMethods=Inne metody DictionarySource=Pochodzenie wniosków / zleceń DictionaryAccountancyCategory=Spersonalizowane grupy raportów DictionaryAccountancysystem=Modele dla planu kont @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Raport wydatków - Kategorie transportu DictionaryExpenseTaxRange=Raport z wydatków - zakres według kategorii transportu DictionaryTransportMode=Raport Intracomm - tryb transportowy DictionaryBatchStatus=Status kontroli jakości partii/serii produktu +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Rodzaj jednostki SetupSaved=Konfiguracja zapisana SetupNotSaved=Ustawienia nie zapisane @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Moduł Rachunków bankowych jest nie aktywny 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=Alarmy -DelaysOfToleranceBeforeWarning=Opóźnienie przed wyświetleniem ostrzeżenia dotyczącego: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Ustaw opóźnienie, zanim ikona alertu %s zostanie wyświetlona na ekranie dla późnego elementu. Delays_MAIN_DELAY_ACTIONS_TODO=Planowane wydarzenia (wydarzenia w programie) nie zostały zakończone Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projekt nie został zamknięty na czas @@ -1228,6 +1238,7 @@ 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. @@ -1287,7 +1298,7 @@ SimpleNumRefNoDateModelDesc=Zwraca numer referencyjny w formacie %s-nnnn, gdzie ShowProfIdInAddress=Pokaż profesjonalny identyfikator z adresami ShowVATIntaInAddress=Ukryj wewnątrzwspólnotowy numer VAT TranslationUncomplete=Częściowe tłumaczenie -MAIN_DISABLE_METEO=Disable weather thumb +MAIN_DISABLE_METEO=Wyłącz ikonę pogody MeteoStdMod=Tryb standardowy MeteoStdModEnabled=Tryb standardowy włączony MeteoPercentageMod=Tryb procentowy @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Wymuszono nowe tłumaczenie klucza tłumaczenia „ TitleNumberOfActivatedModules=Aktywowane moduły TotalNumberOfActivatedModules=Aktywowane moduły: %s / %s YouMustEnableOneModule=Musisz przynajmniej umożliwić 1 moduł +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Nie znaleziono klasy %s w ścieżce PHP YesInSummer=Tak w lecie OnlyFollowingModulesAreOpenedToExternalUsers=Uwaga, tylko następujące moduły są dostępne dla użytkowników zewnętrznych (niezależnie od uprawnień takich użytkowników) i tylko w przypadku nadania uprawnień:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Znak wodny na projekt faktury (brak jeśli pusty) PaymentsNumberingModule=Model numeracji płatności 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. ##### Proposals ##### PropalSetup=Konfiguracja modułu ofert handlowych ProposalsNumberingModules=Commercial wniosku numeracji modules @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Instalowanie lub budowanie modułu zewnętrznego z poz HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Podświetl kolor linii, gdy mysz przesuwa się nad linią (użyj „ffffff”, aby nie podświetlać) HighlightLinesChecked=Podświetl kolor linii, gdy ta jest zaznaczona (użyj „ffffff”, aby nie wyróżniać) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Kolor tekstu tytułu strony @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=To pole zawiera odniesienie do identyfikacji linii. Wprowadź dowol Enter0or1=Wpisz 0 lub 1 UnicodeCurrency=Wpisz między nawiasami kwadratowymi wielkość dziesiętną Unicode reprezentującą symbol waluty. Na przykład: dla $ [36] - dla zł [122,322] - dla € wpisz [8364] ColorFormat=Kolor RGB jest w formacie HEX, np .: FF0000 -PictoHelp=Nazwa ikony w formacie dolibarr („image.png” w katalogu z bieżącym motywem, „image.png@nom_du_module” w katalogu / img / modułu) +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="Tak" dla podatku VAT „Not Perceived but Recoverable” stosowanego w niektórych stanach Francji. Ustaw „Nie” dla wszelkich innych lokalizacji. @@ -1966,6 +1981,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 @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtr Regex do czyszczenia wartości (COMPANY_AQUAR COMPANY_DIGITARIA_CLEAN_REGEX=Filtr Regex do czyszczenia wartości (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplikat jest niedozwolony GDPRContact=Inspektor ochrony danych osobowych (kontakt w sprawie ochrony danych lub RODO) -GDPRContactDesc=Jeśli przechowujesz dane o europejskich firmach / obywatelach, możesz tutaj wskazać osobę kontaktową odpowiedzialną za ogólne rozporządzenie o ochronie danych +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 HelpOnTooltipDesc=Umieść tutaj tekst lub klucz do tłumaczenia, aby tekst był wyświetlany w etykiecie narzędzia, gdy to pole pojawi się w formularzu YouCanDeleteFileOnServerWith=Możesz usunąć ten plik na serwerze za pomocą wiersza poleceń:
    %s @@ -2048,27 +2065,46 @@ 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 CollectNow=Zbierz teraz -ConfirmCloneEmailCollector=Czy na pewno chcesz sklonować moduł zbierający wiadomości e-mail %s? +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 an agenda event. EmailCollectorConfirmCollectTitle=Potwierdzenie odbioru poczty e-mail -EmailCollectorConfirmCollect=Czy chcesz teraz uruchomić kolekcję dla tego kolekcjonera? +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=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, 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=Kod najnowszego wyniku NbOfEmailsInInbox=Liczba e-maili w katalogu źródłowym LoadThirdPartyFromName=Załaduj wyszukiwanie osób trzecich na %s (tylko ładowanie) @@ -2082,14 +2118,14 @@ 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 UseSearchToSelectResource=Użyj formularza wyszukiwania, aby wybrać zasób (zamiast listy rozwijanej). DisabledResourceLinkUser=Wyłącz funkcję łączenia zasobów z użytkownikami DisabledResourceLinkContact=Wyłącz funkcję łączenia zasobów z kontaktami -EnableResourceUsedInEventCheck=Włącz funkcję, aby sprawdzić, czy zasób jest używany w wydarzeniu +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Potwierdź reset modułu OnMobileOnly=Tylko na małym ekranie (smartfonie) DisableProspectCustomerType=Wyłącz typ strony trzeciej „Prospect + Customer” (więc strona trzecia musi być „Prospect” lub „Customer”, ale nie może być jednocześnie) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Usuń moduł zbierający e-maile ConfirmDeleteEmailCollector=Czy na pewno chcesz usunąć tego kolektora e-maili? RecipientEmailsWillBeReplacedWithThisValue=E-maile adresatów będą zawsze zastępowane tą wartością AtLeastOneDefaultBankAccountMandatory=Należy zdefiniować co najmniej 1 domyślne konto bankowe -RESTRICT_ON_IP=Zezwalaj na dostęp tylko do niektórych adresów IP hostów (symbole wieloznaczne nie są dozwolone, użyj spacji między wartościami). Puste oznacza, że każdy host ma dostęp. +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=Oparty na wersji biblioteki SabreDAV NotAPublicIp=To nie jest publiczny adres IP @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,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 @@ -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= 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. + +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 +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/pl_PL/banks.lang b/htdocs/langs/pl_PL/banks.lang index eeb84654c7f..31ecbe173dc 100644 --- a/htdocs/langs/pl_PL/banks.lang +++ b/htdocs/langs/pl_PL/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transakcja AddBankRecord=Dodaj wpis AddBankRecordLong=Dodaj wpis ręcznie Conciliated=Pojednany -ConciliatedBy=Rekoncyliowany przez +ReConciliedBy=Rekoncyliowany przez DateConciliating=Data rekoncyliacji BankLineConciliated=Wpis uzgodniony z paragonem bankowym -Reconciled=Pojednany -NotReconciled=Nie pogodzono się +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Płatności klienta SupplierInvoicePayment=Płatność dostawcy SubscriptionPayment=Zaplanowana płatność @@ -172,8 +172,8 @@ SEPAMandate=Mandat SEPA YourSEPAMandate=Twój mandat SEPA FindYourSEPAMandate=To jest Twoje upoważnienie SEPA do upoważnienia naszej firmy do złożenia polecenia zapłaty w Twoim banku. Zwróć podpisany (skan podpisanego dokumentu) lub wyślij pocztą na adres AutoReportLastAccountStatement=Automatycznie wypełnij pole „numer wyciągu bankowego” numerem ostatniego wyciągu podczas rozliczenia -CashControl=Kontrola kas kasowych POS -NewCashFence=Otwarcie lub zamknięcie nowej kasy +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Koloruj ruchy BankColorizeMovementDesc=Jeśli ta funkcja jest włączona, możesz wybrać określony kolor tła dla ruchów debetowych lub kredytowych BankColorizeMovementName1=Kolor tła dla przelewu debetowego @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Jeśli nie dokonasz uzgodnień bankowych na ni NoBankAccountDefined=Nie zdefiniowano konta bankowego NoRecordFoundIBankcAccount=Nie znaleziono rekordu na koncie bankowym. Często dzieje się tak, gdy rekord został ręcznie usunięty z listy transakcji na rachunku bankowym (na przykład podczas uzgadniania rachunku bankowego). Innym powodem jest to, że płatność została zarejestrowana, gdy moduł „%s” był wyłączony. 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/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang index 017df02ad28..82ac0ffee38 100644 --- a/htdocs/langs/pl_PL/bills.lang +++ b/htdocs/langs/pl_PL/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Raporty płatności PaymentsAlreadyDone=Płatności już wykonane PaymentsBackAlreadyDone=Zwroty już dokonane PaymentRule=Zasady płatności -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Metoda płatności +PaymentModes=Metody płatności +DefaultPaymentMode=Domyślna metoda płatności DefaultBankAccount=Domyślne konto bankowe -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Metoda płatności (id) +CodePaymentMode=Metoda płatności (kod) +LabelPaymentMode=Metoda płatności (etykieta) +PaymentModeShort=Metoda płatności PaymentTerm=Termin płatności PaymentConditions=Zasady płatności PaymentConditionsShort=Zasady płatności @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Błąd, korekty faktury muszą mieć negatywny k ErrorInvoiceOfThisTypeMustBePositive=Błąd, ten typ faktury musi mieć kwotę bez podatku dodatnią (lub zerową) ErrorCantCancelIfReplacementInvoiceNotValidated=Błąd, nie można anulować faktury, która została zastąpiona przez inną fakturę, będącą ciągle w stanie projektu. ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ta lub inna część jest już używana, więc serii rabatów nie można usunąć. +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=Od BillTo=Do ActionsOnBill=Działania na fakturze @@ -191,7 +192,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=Pozostałe niezapłacone (%s %s) ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Upływające nieopłacone (%s %s) jest przyznana zniżka, ponieważ płatność została dokonana przed terminem. Akceptuję stracić VAT na tej zniżce. ConfirmClassifyPaidPartiallyReasonDiscountVat=Upływające nieopłacone (% s% s) mają przyznaną zniżkę, ponieważ płatność została dokonana przed terminem. Odzyskano VAT od tej zniżki bez noty kredytowej. ConfirmClassifyPaidPartiallyReasonBadCustomer=Zły klient -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Potrącenie przez bank (opłaty banku pośredniczącego) ConfirmClassifyPaidPartiallyReasonProductReturned=Produkty częściowo zwrócone ConfirmClassifyPaidPartiallyReasonOther=Kwota porzucona z innej przyczyny ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Taki wybór jest możliwy, jeśli do faktury zostały dołączone odpowiednie uwagi. (Przykład «Tylko podatek odpowiadający faktycznie zapłaconej cenie daje prawo do odliczenia») @@ -269,7 +270,7 @@ DateInvoice=Daty wystawienia faktury DatePointOfTax=Punkt podatkowy NoInvoice=Nr faktury NoOpenInvoice=Brak otwartej faktury -NbOfOpenInvoices=Number of open invoices +NbOfOpenInvoices=Liczba otwartych faktur ClassifyBill=Klasyfikacja faktury SupplierBillsToPay=Niezapłacone faktury od dostawcy CustomerBillsUnpaid=Niezapłacone faktury klienta @@ -279,9 +280,11 @@ SetMode=Ustaw typ płatności SetRevenuStamp=Ustaw znaczek skarbowy Billed=Billed RecurringInvoices=Faktury cykliczne -RecurringInvoice=Recurring invoice +RecurringInvoice=Faktura cykliczna RepeatableInvoice=Szablon faktury RepeatableInvoices=Szablon faktur +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=Szablon Repeatables=Szablony ChangeIntoRepeatableInvoice=Konwersja do szablonu faktury @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=Płatności czekiem (z podatkiem) są płatne na k SendTo=wysłane do PaymentByTransferOnThisBankAccount=Płatność przelewem na poniższe konto bankowe VATIsNotUsedForInvoice=* Nie dotyczy sztuki VAT-293B z CGI +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Poprzez stosowanie prawa 80,335 do 12/05/80 LawApplicationPart2=towary pozostają własnością LawApplicationPart3=sprzedający do pełnej zapłaty kwoty @@ -599,11 +603,12 @@ BILL_SUPPLIER_DELETEInDolibarr=Faktura dostawcy została usunięta UnitPriceXQtyLessDiscount=Cena jednostkowa x ilość - rabat CustomersInvoicesArea=Obszar rozliczeniowy klienta SupplierInvoicesArea=Obszar rozliczeniowy dostawcy -FacParentLine=Element nadrzędny linii faktury SituationTotalRayToRest=Pozostała kwota do zapłaty bez podatku PDFSituationTitle=Sytuacja nr %d SituationTotalProgress=Całkowity postęp %d %% SearchUnpaidInvoicesWithDueDate=Wyszukaj niezapłacone faktury z terminem płatności = %s NoPaymentAvailable=No payment available for %s -PaymentRegisteredAndInvoiceSetToPaid=Payment registered and invoice %s set to paid -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +PaymentRegisteredAndInvoiceSetToPaid=Płatność zarejestrowana i faktura %s ustawiona jako zapłacona +SendEmailsRemindersOnInvoiceDueDate=Ustaw mailowe przypomnienie o niezapłaconych fakturach +MakePaymentAndClassifyPayed=Record payment +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) diff --git a/htdocs/langs/pl_PL/cashdesk.lang b/htdocs/langs/pl_PL/cashdesk.lang index 6b1c05bcf67..309ab68c92a 100644 --- a/htdocs/langs/pl_PL/cashdesk.lang +++ b/htdocs/langs/pl_PL/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Stopka AmountAtEndOfPeriod=Kwota na koniec okresu (dzień, miesiąc lub rok) TheoricalAmount=Kwota teoretyczna RealAmount=Prawdziwa kwota -CashFence=Zamknięcie kasy -CashFenceDone=Zamknięcie kasy wykonane na okres +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Ilość faktur Paymentnumpad=Typ podkładki do wprowadzenia płatności Numberspad=Numbers Pad @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} służy do dodania numeru termin TakeposGroupSameProduct=Grupuj te same linie produktów StartAParallelSale=Rozpocznij nową sprzedaż równoległą SaleStartedAt=Sprzedaż rozpoczęła się od %s -ControlCashOpening=Otwórz wyskakujące okienko „Kontroluj gotówkę” podczas otwierania POS -CloseCashFence=Zamknij kontrolę kasową +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Raport kasowy MainPrinterToUse=Główna drukarka do użycia OrderPrinterToUse=Zamów drukarkę do użytku @@ -134,3 +134,5 @@ 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
    diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang index 54dd52b18f7..bcdefa4a53e 100644 --- a/htdocs/langs/pl_PL/companies.lang +++ b/htdocs/langs/pl_PL/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Obszar potencjalnych klientów IdThirdParty=ID kontrahenta IdCompany=ID Firmy IdContact=ID Kontaktu +ThirdPartyAddress=Third-party address ThirdPartyContacts=Kontakty kontrahenta ThirdPartyContact=Kontakt/Adres kontrahenta Company=Firma @@ -51,19 +52,22 @@ CivilityCode=Zwrot grzecznościowy RegisteredOffice=Siedziba Lastname=Nazwisko Firstname=Imię +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Stanowisko UserTitle=Tytuł 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Nieprawidłowy kod dostawcy CustomerCodeModel=Model kodu Klienta SupplierCodeModel=Model kodu dostawcy Gencod=Kod kreskowy +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof ID 1 ProfId2Short=Prof ID 2 @@ -159,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=Inne ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Lista kontrahentów ShowCompany=Strona trzecia ShowContact=Kontakt-Adres ContactsAllShort=Wszystkie (bez filtra) -ContactType=Typ kontaktu +ContactType=Contact role ContactForOrders=Kontakt dla zamówienia ContactForOrdersOrShipments=Kontakt do zamówień lub dostaw ContactForProposals=Kontakt dla oferty diff --git a/htdocs/langs/pl_PL/compta.lang b/htdocs/langs/pl_PL/compta.lang index b99e4224bed..921a9bf8063 100644 --- a/htdocs/langs/pl_PL/compta.lang +++ b/htdocs/langs/pl_PL/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Czy na pewno chcesz sklasyfikować tę kartę wynagrodzenia jak DeleteSocialContribution=Usuń płatność za ZUS lub podatek DeleteVAT=Usuń deklarację VAT DeleteSalary=Usuń kartę wynagrodzenia +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Czy na pewno chcesz usunąć tę płatność podatku socjalnego / podatkowego? ConfirmDeleteVAT=Czy na pewno chcesz usunąć tę deklarację VAT? -ConfirmDeleteSalary=Czy na pewno chcesz usunąć to wynagrodzenie? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Składki ZUS, podatki i płatności CalcModeVATDebt=Tryb% Svat na rachunkowości zaangażowanie% s. CalcModeVATEngagement=Tryb% Svat na dochody-wydatki% s. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Zafakturowany obrót zakupowy ReportPurchaseTurnoverCollected=Zebrany obrót zakupowy IncludeVarpaysInResults = Uwzględnij różne płatności w raportach IncludeLoansInResults = Uwzględnij pożyczki w raportach -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) 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/exports.lang b/htdocs/langs/pl_PL/exports.lang index 520f0c46613..9098991992e 100644 --- a/htdocs/langs/pl_PL/exports.lang +++ b/htdocs/langs/pl_PL/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=Rodzaj pozycji (0=produkt, 1=usługa) FileWithDataToImport=Plik z danymi do importu FileToImport=Plik źródłowy do zaimportowania FileMustHaveOneOfFollowingFormat=Plik do zaimportowania musi mieć jeden z następujących formatów -DownloadEmptyExample=Pobierz plik szablonu z informacjami o zawartości pola -StarAreMandatory=* są polami obowiązkowymi +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=Wybierz format pliku, który ma być używany jako format pliku importu, klikając ikonę %s, aby go wybrać ... ChooseFileToImport=Prześlij plik, a następnie kliknij ikonę %s, aby wybrać plik jako źródłowy plik importu ... SourceFileFormat=Format pliku źródłowego @@ -135,3 +135,6 @@ NbInsert=ilość wprowadzonych linii: %s NbUpdate=Ilość zaktualizowanych linii: %s MultipleRecordFoundWithTheseFilters=Znaleziono wiele rekordów z tymi filtrami: %s StocksWithBatch=Stany i lokalizacja (magazyn) produktów z numerem partii / serii +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: 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/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 870648cef15..24a06369132 100644 --- a/htdocs/langs/pl_PL/install.lang +++ b/htdocs/langs/pl_PL/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Maksymalna ilość pamięci sesji PHP ustawiona jest na %s. P PHPMemoryTooLow=Twoja maksymalna pamięć sesji PHP jest ustawiona na %s bajtów. To jest za niskie. Zmień parametr php.ini , aby ustawić memory_limit na co najmniej %s a09a4b739 bajtów. Recheck=Kliknij tutaj, aby uzyskać bardziej szczegółowy test ErrorPHPDoesNotSupportSessions=Twoja instalacja PHP nie obsługuje sesji. Ta funkcja jest wymagana, aby umożliwić działanie Dolibarr. Sprawdź ustawienia PHP i uprawnienia do katalogu sesji. -ErrorPHPDoesNotSupportGD=Twoja instalacja PHP nie obsługuje funkcji graficznych GD. Żadne wykresy nie będą dostępne. -ErrorPHPDoesNotSupportCurl=Twoja instalacja PHP nie wspiera Curl. -ErrorPHPDoesNotSupportCalendar=Twoja instalacja PHP nie obsługuje rozszerzeń kalendarza php. -ErrorPHPDoesNotSupportUTF8=Twoja instalacja PHP nie obsługuje funkcji UTF8. Dolibarr nie działa poprawnie. Rozwiąż ten problem przed zainstalowaniem Dolibarr. -ErrorPHPDoesNotSupportIntl=Twoja instalacja PHP nie obsługuje funkcji Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Twoja instalacja PHP nie obsługuje rozszerzonych funkcji debugowania. ErrorPHPDoesNotSupport=Twoja instalacja PHP nie obsługuje funkcji %s. ErrorDirDoesNotExists=Katalog %s nie istnieje. ErrorGoBackAndCorrectParameters=Wróć i sprawdź / popraw parametry. @@ -30,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..d5da206656e 100644 --- a/htdocs/langs/pl_PL/loan.lang +++ b/htdocs/langs/pl_PL/loan.lang @@ -23,9 +23,9 @@ 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 diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 88b8bc002a5..7adb3235288 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -244,6 +244,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 +345,7 @@ KiloBytes=Kilobajtów MegaBytes=MB GigaBytes=GB TeraBytes=Terabajtów -UserAuthor=Utworzony przez +UserAuthor=Created by UserModif=Poprawiony przez b=b. Kb=Kb @@ -517,6 +518,7 @@ or=lub Other=Inny Others=Inne OtherInformations=Inne informacje +Workflow=Workflow Quantity=Ilość Qty=Ilość ChangedBy=Zmieniona przez @@ -619,6 +621,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 +712,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 +802,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 @@ -1164,3 +1169,14 @@ 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 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/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang index 67ec6dcf6ba..87c3bd72e58 100644 --- a/htdocs/langs/pl_PL/members.lang +++ b/htdocs/langs/pl_PL/members.lang @@ -15,7 +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 -MembersCards=Wizytówki dla członków +MembersCards=Generation of cards for members MembersList=Lista członków MembersListToValid=Lista szkiców członków (do zatwierdzenia) MembersListValid=Wykaz ważnych członków @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID członka +MemberId=Member Id +MemberRef=Member Ref NewMember=Nowy członek MemberType=Typ członka MemberTypeId=ID typu członka @@ -135,7 +136,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.

    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 @@ -159,11 +160,11 @@ HTPasswordExport=htpassword pliku generacji NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Działanie uzupełniające na nagrywanie -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=Utwórz bezpośredni wpis na konto bankowe MoreActionBankViaInvoice=Utwórz fakturę i wpłatę na konto bankowe MoreActionInvoiceOnly=Tworzenie faktury bez zapłaty -LinkToGeneratedPages=Generowanie wizytówki +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Ekran ten umożliwia generowanie plików PDF z wizytówek dla wszystkich członków lub członka szczególności. DocForAllMembersCards=Generowanie wizytówek dla wszystkich członków (Format wyjściowy rzeczywiście setup: %s) DocForOneMemberCards=Generowanie wizytówki dla danego użytkownika (Format wyjściowy rzeczywiście setup: %s) @@ -218,3 +219,5 @@ 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 diff --git a/htdocs/langs/pl_PL/modulebuilder.lang b/htdocs/langs/pl_PL/modulebuilder.lang index 85965e26f1c..05d58189a2b 100644 --- a/htdocs/langs/pl_PL/modulebuilder.lang +++ b/htdocs/langs/pl_PL/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=Wpisz nazwę bez spacji modułu/aplikacji do utworzenia. Używaj wielkich liter do oddzielania słów (na przykład: MyModule, EcommerceForShop, SyncWithMySystem, ...) -EnterNameOfObjectDesc=Wpisz nazwę (bez spacji) obiektu do utworzenia. Używaj wielkich liter do oddzielania słów (na przykład: MyObject, Student, Teacher, ...). Zostanie wygenerowany plik klasy CRUD, ale także plik API, strony do wyświetlenia/dodania/edycji/usunięcia obiektu oraz pliki SQL. +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=Ś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 ModuleBuilderDesc4=Moduł jest wykrywany jako „edytowalny”, gdy plik %s istnieje w katalogu głównym modułu NewModule=Nowy moduł NewObjectInModulebuilder=Nowy obiekt +NewDictionary=New dictionary ModuleKey=Klucz modułu ObjectKey=Klucz obiektu +DicKey=Dictionary key ModuleInitialized=Zainicjowano moduł FilesForObjectInitialized=Zainicjowano pliki dla nowego obiektu „%s” FilesForObjectUpdated=Zaktualizowano pliki obiektu „%s” (pliki .sql i .class.php) @@ -52,7 +55,7 @@ LanguageFile=Plik dla języka ObjectProperties=Właściwości obiektu ConfirmDeleteProperty=Czy na pewno chcesz usunąć właściwość %s ? Spowoduje to zmianę kodu w klasie PHP, ale także usunie kolumnę z tabeli definicji obiektu. NotNull=NOT NULL -NotNullDesc=1 = Ustaw bazę danych na NOT NULL. -1 = Zezwalaj na wartości null i wymuszaj wartość NULL, jeśli jest pusta (`` lub 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=Używane dla „szukaj we wszystkich” DatabaseIndex=Indeks bazy danych FileAlreadyExists=Plik %s już istnieje @@ -94,7 +97,7 @@ LanguageDefDesc=Wprowadź w tych plikach cały klucz i tłumaczenie dla każdego MenusDefDesc=Zdefiniuj tutaj menu dostarczane przez Twój moduł DictionariesDefDesc=Zdefiniuj tutaj słowniki dostarczone przez Twój moduł PermissionsDefDesc=Zdefiniuj tutaj nowe uprawnienia zapewniane przez Twój moduł -MenusDefDescTooltip=Menu dostarczane przez moduł / aplikację są zdefiniowane w tablicy $ this-> menu w pliku deskryptora modułu. Możesz edytować ten plik ręcznie lub użyć wbudowanego edytora.

    Uwaga: Po zdefiniowaniu (i ponownej aktywacji modułu) menu są również widoczne w edytorze menu dostępnym dla administratorów na %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=Słowniki dostarczane przez moduł / aplikację są zdefiniowane w tablicy $ this-> słowniki w pliku deskryptora modułu. Możesz edytować ten plik ręcznie lub użyć wbudowanego edytora.

    Uwaga: Po zdefiniowaniu (i ponownej aktywacji modułu) słowniki są również widoczne w obszarze ustawień dla administratorów na %s. PermissionsDefDescTooltip=Uprawnienia nadawane przez moduł / aplikację są zdefiniowane w tablicy $ this-> rights w pliku deskryptora modułu. Możesz edytować ten plik ręcznie lub użyć wbudowanego edytora.

    Uwaga: Po zdefiniowaniu (i ponownej aktywacji modułu) uprawnienia są widoczne w domyślnej konfiguracji uprawnień %s. HooksDefDesc=Zdefiniuj we właściwości module_parts ['hooks'] , w deskryptorze modułu, kontekst punktów zaczepienia, którymi chcesz zarządzać (listę kontekstów można znaleźć, wyszukując „ initHooksz0f17f17f17kod (a09a4b719f). plik przechwytujący służący do dodawania kodu funkcji przechwyconych (funkcje, które można znaleźć, wyszukując w kodzie podstawowym ' executeHooks '). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Zniszcz stół, jeśli jest pusty) TableDoesNotExists=Tabela %s nie istnieje TableDropped=Tabela %s została usunięta InitStructureFromExistingTable=Zbuduj ciąg tablicy struktury istniejącej tabeli -UseAboutPage=Wyłącz stronę z informacjami +UseAboutPage=Do not generate the About page UseDocFolder=Wyłącz folder dokumentacji UseSpecificReadme=Użyj określonego pliku ReadMe ContentOfREADMECustomized=Uwaga: zawartość pliku README.md została zastąpiona określoną wartością zdefiniowaną w ustawieniach modułu ModuleBuilder. @@ -127,9 +130,9 @@ 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=Odniesienie do obiektu musi być generowane automatycznie -IncludeRefGenerationHelp=Zaznacz tę opcję, jeśli chcesz dołączyć kod do automatycznego zarządzania generowaniem odwołania -IncludeDocGeneration=Chcę wygenerować dokumenty z obiektu +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=Jeśli to zaznaczysz, zostanie wygenerowany kod w celu dodania pola „Generuj dokument” do rekordu. ShowOnCombobox=Pokaż wartość w combobox KeyForTooltip=Klucz do podpowiedzi @@ -138,10 +141,15 @@ CSSViewClass=CSS do formularza odczytu CSSListClass=CSS dla listy NotEditable=Nie można edytować ForeignKey=Klucz obcy -TypeOfFieldsHelp=Typ pól:
    varchar (99), double (24,8), real, text, html, datetime, timestamp, integer, integer: ClassName: względna ścieżka / do / classfile.class.php [: 1 [: filter]] („1” oznacza, że dodajemy przycisk + po kombinacji w celu utworzenia rekordu, „filter” może mieć wartość „status = 1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)” na przykład) +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=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=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=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. 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 dafac57b218..e33591cf29a 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... lub stwórz własny profil
    (ręczny wybór mod DemoFundation=Zarządzanie członkami fundacji DemoFundation2=Zarządzanie członkami i kontami bankowymi fundacji DemoCompanyServiceOnly=Firma lub freelancer sprzedający tylko swoje usługi -DemoCompanyShopWithCashDesk=Zarządzanie sklepem z kasy +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Kupuj produkty w punkcie sprzedaży DemoCompanyManufacturing=Firma produkująca produkty DemoCompanyAll=Firma z kilkoma aktywnościami (wszystkie główne moduły) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Wybierz obiekt, aby wyświetlić jego statystyki. ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zamknij +Autofill = Autofill diff --git a/htdocs/langs/pl_PL/projects.lang b/htdocs/langs/pl_PL/projects.lang index c79162bd334..0adebbec1a1 100644 --- a/htdocs/langs/pl_PL/projects.lang +++ b/htdocs/langs/pl_PL/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Etykieta projektu ProjectsArea=Obszar projektów ProjectStatus=Status projektu SharedProject=Wszyscy -PrivateProject=Kontakty projektu +PrivateProject=Assigned contacts ProjectsImContactFor=Projekty, dla których jestem jawnym kontaktem AllAllowedProjects=Cały projekt, który mogę przeczytać (mój + publiczny) AllProjects=Wszystkie projekty @@ -190,6 +190,7 @@ PlannedWorkload=Planowany nakład pracy PlannedWorkloadShort=Nakład pracy ProjectReferers=Powiązane elementy ProjectMustBeValidatedFirst=Projekt musi być najpierw zatwierdzony +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Przypisz zasób użytkownika jako osobę kontaktową w projekcie, aby przydzielić czas InputPerDay=Wejścia na dzień InputPerWeek=Wejścia w tygodniu @@ -258,7 +259,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. @@ -287,3 +288,10 @@ 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=Data zakończenia nie może być wcześniejsza niż data rozpoczęcia +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/pl_PL/propal.lang b/htdocs/langs/pl_PL/propal.lang index af9961abea3..31cad3d5f3f 100644 --- a/htdocs/langs/pl_PL/propal.lang +++ b/htdocs/langs/pl_PL/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Brak projektu oferty CopyPropalFrom=Stwórz ofertę handlową poprzez skopiowanie istniejącej oferty CreateEmptyPropal=Utwórz pustą ofertę handlową lub z listy produktów / usług DefaultProposalDurationValidity=Domyślny czas ważności wniosku handlowych (w dniach) +DefaultPuttingPricesUpToDate=By default update prices with current known prices on cloning a proposal UseCustomerContactAsPropalRecipientIfExist=Użyj kontaktu / adresu z typem „Propozycja dalszych działań związanych z kontaktem”, jeśli zdefiniowano ją zamiast adresu strony trzeciej jako adresu odbiorcy propozycji ConfirmClonePropal=Czy na pewno chcesz sklonować ofertę komercyjną %s ? ConfirmReOpenProp=Czy na pewno chcesz ponownie otworzyć ofertę komercyjną %s ? @@ -85,13 +86,26 @@ 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 +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 IdProduct=ID produktu -PrParentLine=Linia nadrzędna oferty pakietowej LineBuyPriceHT=Cena zakupu Kwota bez podatku dla wiersza SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign +NoSign=Set not signed PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted 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 bc4eb8ff85d..cf5cfc31814 100644 --- a/htdocs/langs/pl_PL/ticket.lang +++ b/htdocs/langs/pl_PL/ticket.lang @@ -90,10 +90,10 @@ 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=E-mail z powiadomieniem od -TicketEmailNotificationFromHelp=Używany w odpowiedzi na wiadomość biletową na przykład -TicketEmailNotificationTo=Powiadomienia e-mail do -TicketEmailNotificationToHelp=Wysyłaj powiadomienia e-mail na ten adres. +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 TicketNewEmailBodyLabel=Wiadomość tekstowa wysyłana po utworzeniu biletu TicketNewEmailBodyHelp=Podany tutaj tekst zostanie wstawiony do wiadomości e-mail potwierdzającej utworzenie nowego zgłoszenia z interfejsu publicznego. Informacje o sprawdzeniu biletu są dodawane automatycznie. TicketParamPublicInterface=Konfiguracja interfejsu publicznego @@ -136,6 +136,18 @@ TicketsPublicNotificationNewMessage=Wysyłaj e-maile, gdy do zgłoszenia zostani TicketsPublicNotificationNewMessageHelp=Wysyłaj e-maile, gdy nowa wiadomość zostanie dodana z interfejsu publicznego (do przypisanego użytkownika lub powiadomienie e-mail do (aktualizacja) i / lub powiadomienie e-mailem do) TicketPublicNotificationNewMessageDefaultEmail=Powiadomienia e-mail do (aktualizacja) TicketPublicNotificationNewMessageDefaultEmailHelp=Wyślij wiadomość e-mail na ten adres w przypadku każdej nowej wiadomości, jeśli do biletu nie jest przypisany użytkownik lub użytkownik nie ma żadnego znanego adresu e-mail. +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 # @@ -151,6 +163,8 @@ OrderByDateAsc=Sortuj według rosnącej daty OrderByDateDesc=Sortuj według malejącej daty ShowAsConversation=Pokaż jako listę rozmów MessageListViewType=Pokaż jako listę tabel +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Adresat jest pusty. Nie wysłano e TicketGoIntoContactTab=Przejdź do zakładki „Kontakty”, aby je wybrać TicketMessageMailIntro=Wprowadzenie TicketMessageMailIntroHelp=Ten tekst jest dodawany tylko na początku e-maila i nie zostanie zapisany. -TicketMessageMailIntroLabelAdmin=Wprowadzenie do wiadomości podczas wysyłania wiadomości e-mail -TicketMessageMailIntroText=Witaj,
    Nowa odpowiedź została wysłana na zgłoszenie, z którym się kontaktujesz. Oto wiadomość:
    -TicketMessageMailIntroHelpAdmin=Ten tekst zostanie wstawiony przed tekstem odpowiedzi na zgłoszenie. +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=

    Z poważaniem,

    -

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Podpis e-maila zwrotnego TicketMessageMailSignatureHelpAdmin=Ten tekst zostanie wstawiony po wiadomości z odpowiedzią. TicketMessageHelp=Tylko ten tekst zostanie zapisany na liście wiadomości na karcie biletu. @@ -238,9 +252,16 @@ TicketChangeStatus=Zmień status TicketConfirmChangeStatus=Potwierdź zmianę statusu: %s? TicketLogStatusChanged=Status zmieniony: %s na %s TicketNotNotifyTiersAtCreate=Nie powiadamiaj firmy o utworzeniu +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=nieprzeczytane TicketNotCreatedFromPublicInterface=Niedostępne. Bilet nie został utworzony z interfejsu publicznego. ErrorTicketRefRequired=Nazwa biletu jest wymagana +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,8 +289,9 @@ TicketNewEmailBody=To jest automatyczna wiadomość e-mail potwierdzająca zarej TicketNewEmailBodyCustomer=To jest automatyczny e-mail potwierdzający, że nowy bilet został właśnie utworzony na Twoim koncie. TicketNewEmailBodyInfosTicket=Informacje do monitorowania zgłoszenia TicketNewEmailBodyInfosTrackId=Numer śledzenia biletu: %s -TicketNewEmailBodyInfosTrackUrl=Możesz zobaczyć postęp zgłoszenia, klikając powyższy link. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Możesz zobaczyć postęp zgłoszenia w określonym interfejsie, klikając poniższy link +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ę. @@ -291,6 +313,10 @@ NewUser=Nowy użytkownik NumberOfTicketsByMonth=Liczba biletów miesięcznie NbOfTickets=Liczba biletów # 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=Bilet %s został zaktualizowany TicketNotificationEmailBody=To jest automatyczna wiadomość informująca, że bilet %s został właśnie zaktualizowany TicketNotificationRecipient=Odbiorca powiadomienia diff --git a/htdocs/langs/pl_PL/users.lang b/htdocs/langs/pl_PL/users.lang index 0941a38e466..3702483e95f 100644 --- a/htdocs/langs/pl_PL/users.lang +++ b/htdocs/langs/pl_PL/users.lang @@ -114,7 +114,7 @@ UserLogoff=Użytkownik wylogowany UserLogged=Użytkownik zalogowany DateOfEmployment=Data zatrudnienia DateEmployment=Zatrudnienie -DateEmploymentstart=Data rozpoczęcia zatrudnienia +DateEmploymentStart=Data rozpoczęcia zatrudnienia DateEmploymentEnd=Data zakończenia zatrudnienia RangeOfLoginValidity=Dostęp do zakresu dat ważności CantDisableYourself=Nie możesz wyłączyć własnego rekordu użytkownika @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Domyślnie walidator jest opiekunem użytkownika. UserPersonalEmail=Osobisty adres e-mail UserPersonalMobile=Osobisty telefon komórkowy WarningNotLangOfInterface=Ostrzeżenie, to jest główny język, którym mówi użytkownik, a nie język interfejsu, który wybrał. Aby zmienić język interfejsu widoczny dla tego użytkownika, przejdź do zakładki %s +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/pt_AO/accountancy.lang b/htdocs/langs/pt_AO/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/pt_AO/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/pt_AO/admin.lang b/htdocs/langs/pt_AO/admin.lang new file mode 100644 index 00000000000..c8db1c4d3d4 --- /dev/null +++ b/htdocs/langs/pt_AO/admin.lang @@ -0,0 +1,7 @@ +# Dolibarr language file - Source file is en_US - admin +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) +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) diff --git a/htdocs/langs/pt_AO/exports.lang b/htdocs/langs/pt_AO/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/pt_AO/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. diff --git a/htdocs/langs/pt_AO/products.lang b/htdocs/langs/pt_AO/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/pt_AO/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/pt_AO/projects.lang b/htdocs/langs/pt_AO/projects.lang new file mode 100644 index 00000000000..f5f817beac1 --- /dev/null +++ b/htdocs/langs/pt_AO/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +ServiceToUseOnLines=Service to use on lines by default diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index 8300e761616..0e1cc17d702 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -34,20 +34,16 @@ MainAccountForVatPaymentNotDefined=Conta contábil principal para o pagamento do 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... -AccountancyAreaDescActionOnceBis=Os próximos passos devem ser feitos para economizar tempo no futuro, sugerindo-lhe a conta de contabilidade padrão correta ao fazer a reviravolta (gravação de registros em Livros de Registros e contabilidade geral) AccountancyAreaDescActionFreq=As ações a seguir são normalmente executadas a cada mês, semana ou dia para grandes empresas... -AccountancyAreaDescJournalSetup=PASSO %s: Crie ou verifique o conteúdo da sua lista de diários a partir do menu %s 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. -AccountancyAreaDescExpenseReport=PASSO %s: Defina contas contábeis padrão para cada tipo de relatório de despesas. 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. -AccountancyAreaDescProd=PASSO %s: Defina contas contábeis em seus produtos / serviços. 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. @@ -70,7 +66,6 @@ MenuAccountancyClosure=Fechamento MenuAccountancyValidationMovements=Validar movimentações ProductsBinding=Contas dos produtos TransferInAccounting=Transferência em contabilidade -RegistrationInAccounting=Registro em contabilidade Binding=Vinculando para as contas CustomersVentilation=Vinculando as faturas do cliente ExpenseReportsVentilation=Relatório de despesas obrigatórias @@ -168,17 +163,14 @@ DescVentilTodoExpenseReport=Relatórios de linhas de despesas de ligação já n 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 -DescClosure=Consulte aqui o número de movimentos por mês que não são validados e os exercícios já abertos -OverviewOfMovementsNotValidated=Etapa 1 / Visão geral dos movimentos não validados. (Necessário para fechar um ano fiscal) -ValidateMovements=Validar movimentações 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 -NoNewRecordSaved=Não há mais registro para lançar 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 ShowTutorial=Mostrar tutorial NotReconciled=Não conciliada AddAccountFromBookKeepingWithNoCategories=Conta disponível porém ainda não no grupo personalizado @@ -233,6 +225,7 @@ 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 diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 685f1e78aa1..d2ab3e033a9 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -1,4 +1,6 @@ # Dolibarr language file - Source file is en_US - admin +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 @@ -89,7 +91,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) @@ -215,9 +216,12 @@ 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 @@ -258,11 +262,13 @@ 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
    @@ -340,6 +346,8 @@ ComputedpersistentDesc=Campos extra computados serão armazenados no banco de da 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 @@ -357,7 +365,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 @@ -379,7 +386,9 @@ 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 . 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. @@ -391,6 +400,8 @@ WarningSettingSortOrder=Atenção, a configuração de um ordenamento padrão pa 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 @@ -409,6 +420,7 @@ 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) @@ -503,6 +515,8 @@ 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 Module63000Desc=Gerenciar recursos (impressoras, carros, salas, ...) para alocar eventos Permission11=Ler Faturas de Clientes Permission12=Criar/Modificar Faturas de Clientes @@ -523,6 +537,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 @@ -556,6 +573,7 @@ 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 @@ -563,9 +581,11 @@ Permission121=Ler Terceiros Vinculado ao Usuário Permission122=Criar/Modificar Terceiros Permission125=Deletar Terceiros Permission126=Exportar Terceiros -Permission141=Ler todos os projetos e tarefas (também projetos privados para os quais não sou um contato) -Permission142=Criar/modificar todos os projetos e tarefas (também projetos privados para os quais não sou um contato) -Permission144=Deletar Projetos (Projetos Compartilhados e Projetos que eu contratei para) +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 @@ -587,6 +607,8 @@ 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 @@ -673,6 +695,9 @@ 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 @@ -683,9 +708,11 @@ 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 @@ -693,7 +720,9 @@ 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 @@ -721,9 +750,11 @@ 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) @@ -741,6 +772,16 @@ 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 +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 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. @@ -748,6 +789,9 @@ 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 @@ -814,6 +858,7 @@ 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 @@ -826,6 +871,7 @@ 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 @@ -859,7 +905,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 @@ -905,7 +950,7 @@ 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=Atraso antes de exibir um alerta de aviso para: +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 @@ -915,7 +960,12 @@ 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 Audit=Eventos de segurança @@ -936,6 +986,7 @@ DisplayDesc=Parâmetros que modificam a parte visual do aplicativo podem ser mod 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. @@ -970,6 +1021,7 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando n 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 @@ -1007,6 +1059,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 @@ -1015,9 +1068,15 @@ YouUseBestDriver=Você usa o driver %s, que é o melhor driver atualmente dispon 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 @@ -1058,6 +1117,8 @@ WatermarkOnDraftInvoices=Marca d'água sobre o projeto de faturas (nenhum se est 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 @@ -1260,6 +1321,9 @@ 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 @@ -1325,6 +1389,7 @@ 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 @@ -1392,6 +1457,7 @@ ExpenseReportsRulesSetup=Configuração do módulo Relatórios de Despesas - Reg 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 @@ -1405,11 +1471,14 @@ ConfFileMustContainCustom=A instalação ou construção de um módulo externo a 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 +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 @@ -1420,7 +1489,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 dolibarr ('image.png' se estiver no diretório do tema atual, 'image.png@nom_du_module' se estiver no diretório / img / de um módulo) +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. @@ -1437,7 +1506,10 @@ 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 @@ -1473,7 +1545,11 @@ 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 @@ -1484,29 +1560,46 @@ 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=Se você armazenar dados sobre empresas / cidadãos europeus, poderá nomear o contato responsável pelo regulamento geral de proteção de dados aqui +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? +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 a coleta deste coletor agora? +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) 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 @@ -1521,7 +1614,7 @@ 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=Ativar recurso para verificar se recurso está sendo usado em um evento +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. @@ -1555,12 +1648,13 @@ 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 apenas a alguns IPs do host (curinga não permitido, use espaço entre valores). Vazio significa que todos os hosts podem acessar. +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 @@ -1570,6 +1664,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. @@ -1603,12 +1700,14 @@ NoWritableFilesFoundIntoRootDir=Nenhum arquivo gravável ou diretório de progra 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 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. @@ -1616,14 +1715,56 @@ 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, deve habilitar também o primeiro imposto sobre venda -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Se você quiser usar um terceiro imposto, deve habilitar também o primeiro imposto sobre venda +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 +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/assets.lang b/htdocs/langs/pt_BR/assets.lang index 538d42af683..00729988913 100644 --- a/htdocs/langs/pt_BR/assets.lang +++ b/htdocs/langs/pt_BR/assets.lang @@ -1,19 +1,6 @@ # Dolibarr language file - Source file is en_US - assets -AccountancyCodeAsset =Código contábil (ativo) -AccountancyCodeDepreciationAsset =Código contábil (conta de ativo de depreciação) -AccountancyCodeDepreciationExpense =Código contábil (conta de despesas de depreciação) -AssetsTypeSetup=Configuração de tipo de ativo -AssetTypeModified=Tipo de ativo modificado DeleteType=Excluir DeleteAnAssetType=Excluir um tipo de recurso ConfirmDeleteAssetType=Tem certeza de que deseja excluir este tipo de recurso? -ModuleAssetsDesc =Descrição dos Ativos -AssetsSetup =Configuração de Ativos -Settings =Configurações -AssetsSetupPage =Página de configuração de ativos -ExtraFieldsAssetsType =Atributos complementares (Tipo de ativo) AssetsTypeId=Id Tipo de ativo AssetsTypeLabel=Rótulo do tipo de ativo -MenuNewAsset =Novo Ativo -MenuTypeAssets =Digitar ativos -MenuNewTypeAssets =Novo tipo diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index 13649f991dd..ead0d7a907d 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -78,10 +78,8 @@ LineRecord=Transação AddBankRecord=Adicionar transação AddBankRecordLong=Adicionar manualmente uma transação Conciliated=Conciliada -ConciliatedBy=Reconciliado por DateConciliating=Data da reconciliação BankLineConciliated=Entrada conciliada com recibo bancário -Reconciled=Conciliada SupplierInvoicePayment=Pagamento do fornecedores WithdrawalPayment=Pedido com pagamento por débito SocialContributionPayment=Pagamento de contribuição social @@ -134,8 +132,6 @@ VariousPaymentLabel=Rótulo de pagamento diverso ConfirmCloneVariousPayment=Confirmar clone de pagamento diverso YourSEPAMandate=Seu mandato Área Única de Pagamentos em Euros AutoReportLastAccountStatement=Preencha automaticamente o campo 'número de extrato bancário' com o último número de extrato ao fazer a reconciliação -CashControl=Controle de caixa PDV -NewCashFence=Abertura ou fechamento de um novo caixa BankColorizeMovement=Colorir movimentos BankColorizeMovementDesc=Se esta função estiver ativada, você poderá escolher uma cor de plano de fundo específica para movimentos de débito ou crédito BankColorizeMovementName1=Cor de fundo para movimento de débito diff --git a/htdocs/langs/pt_BR/bills.lang b/htdocs/langs/pt_BR/bills.lang index 3405b02a0d0..2bb88f290e5 100644 --- a/htdocs/langs/pt_BR/bills.lang +++ b/htdocs/langs/pt_BR/bills.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - bills 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 @@ -37,8 +38,12 @@ 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 @@ -55,6 +60,14 @@ 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 @@ -70,11 +83,12 @@ DeleteBill=Deletar fatura SearchACustomerInvoice=Procurar fatura de cliente SearchASupplierInvoice=Procurar uma fatura de fornecedor SendRemindByMail=Enviar o restante por e-mail -DoPayment=Digite o pagamento +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 +PriceBase=Preço base BillStatus=Status de fatura StatusOfGeneratedInvoices=Situação das faturas geradas BillStatusDraft=Rascunho (precisa ser validada) @@ -117,7 +131,7 @@ AllBills=Todas faturas AllCustomerTemplateInvoices=Todas as faturas do modelo DraftBills=Rascunho de faturas CustomersDraftInvoices=Faturas de rascunho do cliente -SuppliersDraftInvoices=Faturas de faturas do fornecedor +SuppliersDraftInvoices=Faturas de fornecedores - Rascunho Unpaid=Não pago ErrorNoPaymentDefined=Erro. Nenhum pagamento definido ConfirmDeleteBill=Você tem certeza que deseja excluir esta fatura? @@ -132,10 +146,12 @@ ConfirmClassifyPaidPartiallyReasonDiscount=Restante não remunerado (%s %s) ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu aceitei perder o ICMS neste desconto. ConfirmClassifyPaidPartiallyReasonDiscountVat=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu recuperei o ICMS 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. 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? @@ -151,6 +167,8 @@ 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 @@ -377,5 +395,4 @@ 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 -FacParentLine=Linha principal da fatura SituationTotalRayToRest=Restante a pagar sem imposto diff --git a/htdocs/langs/pt_BR/boxes.lang b/htdocs/langs/pt_BR/boxes.lang index c885132ee70..b2b9318dd4d 100644 --- a/htdocs/langs/pt_BR/boxes.lang +++ b/htdocs/langs/pt_BR/boxes.lang @@ -16,7 +16,6 @@ BoxLastModifiedMembers=Últimos membros modificados BoxLastMembersSubscriptions=Últimas inscrições de membros BoxCurrentAccounts=Saldo das contas ativas BoxTitleMemberNextBirthdays=Aniversários deste mês (membros) -BoxTitleMembersByType=Membros por tipo BoxTitleMembersSubscriptionsByYear=Assinaturas de membros por ano BoxTitleLastRssInfos=Últimas %s novidades de %s BoxTitleLastProducts=Produtos/Serviços: %s modificado @@ -29,13 +28,18 @@ BoxTitleLastCustomerBills=Últimas %s faturas de cliente modificadas mais recent 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 do fornecedor: o mais antigo %s não remunerado +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 @@ -56,17 +60,19 @@ 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 do fornecedor 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 do Fornecedor: último%s modificado +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 diff --git a/htdocs/langs/pt_BR/cashdesk.lang b/htdocs/langs/pt_BR/cashdesk.lang index d50ab31d7ab..14385b4f019 100644 --- a/htdocs/langs/pt_BR/cashdesk.lang +++ b/htdocs/langs/pt_BR/cashdesk.lang @@ -25,8 +25,6 @@ Footer=Rodapé AmountAtEndOfPeriod=Montante no final do período (dia, mês ou ano) TheoricalAmount=Quantidade teórica RealAmount=Quantidade real -CashFence=Fechamento de caixa -CashFenceDone=Fechamento de caixa feito para o período NbOfInvoices=Núm. de faturas Paymentnumpad=Tipo de Pad para inserir pagamento Numberspad=Números de Pad @@ -71,7 +69,6 @@ CashDeskGenericMaskCodes6 =
    A tag {TN} é usada para adicionar o número do t TakeposGroupSameProduct=Agrupe as mesmas linhas de produtos StartAParallelSale=Iniciar uma nova venda paralela SaleStartedAt=Venda iniciada às %s -CloseCashFence=Fechar controle de caixa CashReport=Relatório de caixa MainPrinterToUse=Impressora principal a ser usada OrderPrinterToUse=Solicite impressora a ser usada diff --git a/htdocs/langs/pt_BR/categories.lang b/htdocs/langs/pt_BR/categories.lang index 96b507918ae..90fd95922d2 100644 --- a/htdocs/langs/pt_BR/categories.lang +++ b/htdocs/langs/pt_BR/categories.lang @@ -3,8 +3,17 @@ 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 @@ -39,6 +48,7 @@ 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 @@ -76,3 +86,5 @@ 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_BR/commercial.lang b/htdocs/langs/pt_BR/commercial.lang index b5a90eb6fb1..a70dde7954c 100644 --- a/htdocs/langs/pt_BR/commercial.lang +++ b/htdocs/langs/pt_BR/commercial.lang @@ -41,7 +41,6 @@ ActionDoneBy=Evento feito por ActionAC_TEL=Chamada telefônica ActionAC_PROP=Enviar proposta por correio ActionAC_EMAIL=Enviar e-mail -ActionAC_EMAIL_IN=Recepção de 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) diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index 57dc62f8d8a..41baf08b8ca 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -1,11 +1,13 @@ # 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 -MenuNewProspect=Novo Prospecto +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 (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 @@ -13,6 +15,7 @@ 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 @@ -35,17 +38,21 @@ 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 +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 PhoneMobile=Celular No_Email=Recusar e-mails em massa @@ -54,6 +61,7 @@ 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 @@ -71,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 @@ -88,14 +97,26 @@ 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) +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 @@ -111,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 @@ -150,17 +172,19 @@ AddThirdParty=Adicionar terceiro DeleteACompany=Excluir empresa PersonalInformations=Dados pessoais AccountancyCode=Conta contábil -SupplierCode=Código Fornecedor +CustomerCode=Código de Cliente +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 +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=Tipo de contato +ContactType=Função de contato ContactForOrders=Contato de pedidos ContactForOrdersOrShipments=Contato do pedido ou da remessa ContactForProposals=Contato de orçamentos @@ -178,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 @@ -228,15 +253,21 @@ 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 +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 @@ -249,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 b2807b3ee61..f272f622a09 100644 --- a/htdocs/langs/pt_BR/compta.lang +++ b/htdocs/langs/pt_BR/compta.lang @@ -144,6 +144,7 @@ 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. @@ -163,7 +164,7 @@ ImportDataset_tax_contrib=Contribuições fiscais/sociais LabelToShow=Etiqueta curta PurchaseTurnover=Rotatividade de compras PurchaseTurnoverCollected=Rotatividade de compras coletadas -RulesPurchaseTurnoverDue=- Inclui as faturas do fornecedor, pagas ou não.
    - É baseado na data da fatura dessas faturas.
    +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 diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang index 9b212fefe6d..03f3d75a362 100644 --- a/htdocs/langs/pt_BR/errors.lang +++ b/htdocs/langs/pt_BR/errors.lang @@ -45,7 +45,6 @@ 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. -ErrorFileSizeTooLarge=O tamanho do arquivo é grande demais. 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) @@ -143,7 +142,7 @@ ErrorVariableKeyForContentMustBeSet=Erro, a constante com nome %s (com conteúdo 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 muito pequenos. +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. @@ -160,7 +159,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/holiday.lang b/htdocs/langs/pt_BR/holiday.lang index 756eff2a8b7..978381dac89 100644 --- a/htdocs/langs/pt_BR/holiday.lang +++ b/htdocs/langs/pt_BR/holiday.lang @@ -49,6 +49,7 @@ UserCP=Usuário ErrorAddEventToUserCP=Ocorreu um erro ao adicionar a licença excepcional. AddEventToUserOkCP=A adição da licença excepcional foi completada. MenuLogCP=Ver logs de alterações +ActionByCP=Modificado por PrevSoldeCP=Saldo anterior NewSoldeCP=Novo saldo alreadyCPexist=Um pedido de licença já foi feito sobre este período. 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 b7d29d02045..bcc4805396b 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -7,17 +7,12 @@ ConfFileIsWritable=O arquivo de configuração conf.php tem as permissõe ConfFileMustBeAFileNotADir=O arquivo de configuração %s deve ser um arquivo, não um diretório. PHPSupport=Este PHP suporta funções %s. PHPMemoryOK=Seu parametro PHP max session memory está definido para %s. Isto deve ser suficiente. -ErrorPHPDoesNotSupportCurl=Sua instalacao do PHP nao suporta Curl. -ErrorPHPDoesNotSupportCalendar=Sua instalação PHP não suporta extensões de calendário php. -ErrorPHPDoesNotSupportIntl=Sua instalação do PHP não suporta funções Intl. -ErrorPHPDoesNotSupportxDebug=Sua instalação do PHP não suporta funções de depuração estendida. ErrorPHPDoesNotSupport=Sua instalação do PHP não suporta funções %s. ErrorDirDoesNotExists=Diretório %s não existe. ErrorWrongValueForParameter=Você pode ter digitado um valor incorreto para o parâmetro ' %s'. 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..6fb19e2fcd9 100644 --- a/htdocs/langs/pt_BR/loan.lang +++ b/htdocs/langs/pt_BR/loan.lang @@ -17,7 +17,6 @@ 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 diff --git a/htdocs/langs/pt_BR/mails.lang b/htdocs/langs/pt_BR/mails.lang index bb91aa5809d..90bf4f3a4a6 100644 --- a/htdocs/langs/pt_BR/mails.lang +++ b/htdocs/langs/pt_BR/mails.lang @@ -9,6 +9,7 @@ MailTo=Destinatário(s) MailToUsers=Para usuário (s) MailCC=Copiar para MailToCCUsers=Copiar para o (s) usuário (s) +MailTopic=Assunto do email MailFile=Arquivos anexados SubjectNotIn=Não no assunto BodyNotIn=Não no corpo @@ -34,6 +35,7 @@ YouCanAddYourOwnPredefindedListHere=Para Criar o seu módulo de seleção e-mail MailingAddFile=Adicionar este Arquivo NoAttachedFiles=Sem arquivos anexos BadEMail=Valor inválido para o e-mail +EMailNotDefined=Email não definido ConfirmCloneEMailing=Você tem certeza que deseja clonar esta lista de e-mails? CloneContent=Clonar mensagem CloneReceivers=Clonar recebidores @@ -64,6 +66,7 @@ ToClearAllRecipientsClickHere=Para limpar a lista dos destinatários deste maili ToAddRecipientsChooseHere=Para Adicionar destinatários, escoja os que figuran em listas a continuação NbOfEMailingsReceived=Mailings em massa recebidos NbOfEMailingsSend=E-mails em massa enviados +IdRecord=ID registro DeliveryReceipt=Entrega Ack. YouCanUseCommaSeparatorForSeveralRecipients=Pode usar o caracter0 de separação coma para especificar multiplos destinatários. TagCheckMail=Seguir quando o e-mail sera lido diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang index ca8a3cb6c26..600b1b54dad 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 @@ -49,6 +50,7 @@ ErrorNoVATRateDefinedForSellerCountry=Erro, nenhum tipo de ICMS definido para o 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 @@ -66,6 +68,7 @@ FileWasNotUploaded=O arquivo foi selecionado, mas nao foi ainda enviado. Clique 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 @@ -83,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 @@ -115,6 +119,7 @@ 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 @@ -129,6 +134,8 @@ 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 @@ -139,10 +146,12 @@ CurrentValue=Valor atual MultiLanguage=Multi Idioma RefOrLabel=Ref. da etiqueta DescriptionOfLine=Descrição da Linha -Model=Template doc +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 @@ -151,10 +160,13 @@ Deadline=Prazo final DateAndHour=Data e hora DateEnd=Data de término 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 @@ -178,6 +190,7 @@ Morning=Manha Quadri=Trimistre 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 @@ -187,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) @@ -203,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 @@ -211,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) @@ -233,12 +251,14 @@ 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 RemainToPay=Permanecer para pagar Module=Modulo/Aplicacao Modules=Módulos / Aplicações +Filters=Filtros OtherStatistics=Outras estatisticas Favorite=Favorito RefSupplier=Ref. fornecedor @@ -277,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 @@ -298,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 @@ -312,10 +336,12 @@ 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 Email=E-mail +NotRead=Não lido NoMobilePhone=Sem celular Refresh=Atualizar BackToList=Mostar Lista @@ -333,6 +359,7 @@ 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 @@ -383,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 @@ -415,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 @@ -456,8 +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 @@ -468,7 +503,7 @@ 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=Chumbo | Projeto +LeadOrProject=Lead | Projeto LeadsOrProjects=Leads | Projetos Lead=Conduzir Leads=Conduz @@ -476,6 +511,7 @@ 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 @@ -491,7 +527,9 @@ SearchIntoContacts=Contatos SearchIntoUsers=Usuários SearchIntoBatch=Lotes / Seriais SearchIntoMO=Ordens de fabricação +SearchIntoSupplierInvoices=Faturas de fornecedores SearchIntoCustomerOrders=Pedido de Venda +SearchIntoSupplierOrders=Pedidos de compra SearchIntoSupplierProposals=Propostas de fornecedores SearchIntoContracts=Contratos SearchIntoCustomerShipments=Remessas do cliente @@ -506,6 +544,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 @@ -517,6 +556,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 @@ -539,6 +579,22 @@ 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 +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 +AffectTag=Afetar Tag +CreateExternalUser=Criar usuário externo +ConfirmAffectTag=Efeito de etiqueta em massa +ConfirmAffectTagQuestion=Tem certeza de que deseja afetar as tags nos %s registros selecionados? +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 diff --git a/htdocs/langs/pt_BR/members.lang b/htdocs/langs/pt_BR/members.lang index 44ea33f78dd..c83bc985139 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 @@ -55,7 +54,6 @@ DescADHERENT_CARD_TEXT_RIGHT=Texto impresso em cartões de membros (alinhar à d DescADHERENT_CARD_FOOTER_TEXT=Texto a imprimir na parte inferior do cartão de membro HTPasswordExport=geração Arquivo htpassword MoreActions=Ação complementar em gravação -LinkToGeneratedPages=Gerar cartões de visitas LinkToGeneratedPagesDesc=Esta tela permite gerar arquivos PDF com cartões de visita para todos os seus membros ou um membro particular. DocForAllMembersCards=Gerar cartões de visita para todos os membros DocForLabels=Gerar folhas de endereço diff --git a/htdocs/langs/pt_BR/modulebuilder.lang b/htdocs/langs/pt_BR/modulebuilder.lang index 239b8f2187f..d49ff08f6ab 100644 --- a/htdocs/langs/pt_BR/modulebuilder.lang +++ b/htdocs/langs/pt_BR/modulebuilder.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - modulebuilder -EnterNameOfModuleDesc=Digite o nome do módulo / aplicativo para criar sem espaços. Use letras maiúsculas para separar palavras (por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...) 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. @@ -34,7 +33,6 @@ 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 -MenusDefDescTooltip=Os menus fornecidos pelo seu módulo/aplicativo são definidos nos menus $this-> do array no arquivo descritor do módulo. Você pode editar manualmente este arquivo ou usar o editor incorporado.

    Nota: Uma vez definido (e módulo reativado), os menus também são visíveis no editor de menu disponível para usuários administradores em %s. 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. @@ -50,9 +48,6 @@ 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 -IncludeRefGeneration=A referência do objeto deve ser gerada automaticamente -IncludeRefGenerationHelp=Marque aqui se desejar incluir código para gerenciar a geração automaticamente da referência -IncludeDocGeneration=Gerar alguns documentos a partir do objeto 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 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/orders.lang b/htdocs/langs/pt_BR/orders.lang index 40faecca35d..2368fc2fda6 100644 --- a/htdocs/langs/pt_BR/orders.lang +++ b/htdocs/langs/pt_BR/orders.lang @@ -14,18 +14,20 @@ NewSupplierOrderShort=Novo Pedido NewOrderSupplier=Novo Pedido de Compra ToOrder=Realizar Pedido MakeOrder=Realizar Pedido +SuppliersOrders=Pedidos de compra +SaleOrderLines=Linhas de pedidos de vendas PurchaseOrderLines=Linhas do pedido de compra SuppliersOrdersRunning=Pedidos de compra atuais CustomerOrder=Pedido de venda -CustomersOrders=Ordens de venda -CustomersOrdersRunning=Ordens de venda atuais +CustomersOrders=Pedidos de venda +CustomersOrdersRunning=Pedidos de venda atuais CustomersOrdersAndOrdersLines=Pedidos de venda e detalhes do pedido OrdersDeliveredToBill=Pedidos de vendas entregues para fatura -OrdersToBill=Ordens de vendas entregues +OrdersToBill=Pedidos de vendas entregues OrdersInProcess=Pedidos de venda em andamento -OrdersToProcess=Ordens de vendas para processar +OrdersToProcess=Pedidos de vendas para processar SuppliersOrdersToProcess=Pedidos de compra para processar -SuppliersOrdersAwaitingReception=Ordens de compra aguardando recepção +SuppliersOrdersAwaitingReception=Pedidos de compra aguardando recepção AwaitingReception=Aguardando recepção StatusOrderSent=Entrega encaminhada StatusOrderOnProcessShort=Pedido @@ -62,8 +64,8 @@ ShowOrder=Mostrar Pedido OrdersOpened=Pedidos a processar NoDraftOrders=Não há projetos de pedidos NoOrder=Sem pedidos -LastOrders=Últimas ordens de vendas %s -LastCustomerOrders=Últimas ordens de vendas %s +LastOrders=Últimos %sPedidos de vendas +LastCustomerOrders=Últimos %s Pedidos de vendas LastSupplierOrders=Últimos pedidos de compra %s LastModifiedOrders=Últimos %s pedidos modificados AllOrders=Todos os Pedidos @@ -102,6 +104,8 @@ SecondApprovalAlreadyDone=Segundo aprovação já feito SupplierOrderReceivedInDolibarr=Pedido de compra %s recebeu %s SupplierOrderSubmitedInDolibarr=Pedido de compra %s enviado SupplierOrderClassifiedBilled=Pedido de compra %s set faturado +SupplierOrderValidatedAndApproved=Pedido ao fornecedor validado e aprovado:%s +SupplierOrderValidated=Pedido ao fornecedor está validado:%s TypeContact_commande_internal_SALESREPFOLL=Ordem de venda de acompanhamento representativa TypeContact_commande_internal_SHIPPING=Representante seguindo o envio TypeContact_commande_external_BILLING=Contato fatura cliente @@ -120,6 +124,7 @@ PDFEdisonDescription=O modelo simplificado do pedido PDFProformaDescription=Modelo completo de fatura Proforma CreateInvoiceForThisCustomer=Faturar pedidos CreateInvoiceForThisSupplier=Faturar pedidos +CreateInvoiceForThisReceptions=Recepções de contas NoOrdersToInvoice=Nenhum pedido faturavel CloseProcessedOrdersAutomatically=Classificar como "processados" todos os pedidos selecionados. OrderCreation=Criação de pedidos diff --git a/htdocs/langs/pt_BR/other.lang b/htdocs/langs/pt_BR/other.lang index 54f498e002d..1a589ddc708 100644 --- a/htdocs/langs/pt_BR/other.lang +++ b/htdocs/langs/pt_BR/other.lang @@ -74,7 +74,6 @@ ChooseYourDemoProfilMore=... ou crie seu próprio perfil
    (seleção de mód DemoFundation=Administração de Membros de uma associação DemoFundation2=Administração de Membros e tesouraria de uma associação DemoCompanyServiceOnly=Venda de servico somente para Empresa ou Freelance -DemoCompanyShopWithCashDesk=Administração de uma loja com Caixa DemoCompanyProductAndStocks=Comprar produtos de venda com Ponto de Vendas DemoCompanyManufacturing=Produtos de fabricação da empresa DemoCompanyAll=Empresa com multiplas atividades (todos os principais modulos) @@ -109,11 +108,11 @@ NumberOfCustomerOrders=Número de pedidos de vendas NumberOfCustomerInvoices=Numero de faturas de clientes NumberOfSupplierProposals=Número de propostas de fornecedores NumberOfSupplierOrders=Número de pedidos de compra -NumberOfSupplierInvoices=Número de faturas de fornecedor +NumberOfSupplierInvoices=Número de faturas de fornecedores NumberOfContracts=Número de contratos NumberOfMos=Número de ordens de fabricação NumberOfUnitsProposals=Numero de unidades nas propostas -NumberOfUnitsCustomerOrders=Número de unidades em ordens de venda +NumberOfUnitsCustomerOrders=Número de unidades em Pedidos de venda NumberOfUnitsCustomerInvoices=Numero de unidades nas faturas dos clientes NumberOfUnitsSupplierProposals=Número de unidades em propostas de fornecedores NumberOfUnitsSupplierOrders=Número de unidades em pedidos de compra diff --git a/htdocs/langs/pt_BR/productbatch.lang b/htdocs/langs/pt_BR/productbatch.lang index 524360fb792..04732b11ece 100644 --- a/htdocs/langs/pt_BR/productbatch.lang +++ b/htdocs/langs/pt_BR/productbatch.lang @@ -23,3 +23,18 @@ 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_BR/products.lang b/htdocs/langs/pt_BR/products.lang index cf82f0eb6f7..cf5557153bc 100644 --- a/htdocs/langs/pt_BR/products.lang +++ b/htdocs/langs/pt_BR/products.lang @@ -50,6 +50,7 @@ SellingPriceTTC=Preço de venda (incl. taxas) SellingMinPriceTTC=Preço mínimo de venda (incl. taxas) SoldAmount=Total vendido PurchasedAmount=Total comprado +MinPrice=Preço mínimo de venda CantBeLessThanMinPrice=O preço de venda não deve ser inferior ao mínimo para este produto (%s ICMS) ErrorProductBadRefOrLabel=O valor da referencia ou etiqueta é incorreto ErrorProductClone=Aconteceu um problema durante a clonação do produto ou serviço. @@ -70,7 +71,6 @@ ConfirmDeleteProduct=? Tem certeza que quer eliminar este produto/serviço? ConfirmDeleteProductLine=Tem certeza que quer eliminar esta linha de produto? QtyMin=Quant. de compra mín. PriceQtyMin=Quant. de preço mín. -PriceQtyMinCurrency=Preço (moeda) para esta quant.. (sem desconto) VATRateForSupplierProduct=Taxa de IVA (para este fornecedor/produto) DiscountQtyMin=Desconto para esta quant. NoPriceDefinedForThisSupplier=Nenhum Preço/Quant. definido para este fornecedor/produto @@ -94,6 +94,10 @@ BuyingPrices=Preços para Compra CustomerPrices=Preços de cliente SuppliersPrices=Preços de fornecedores SuppliersPricesOfProductsOrServices=Preços do fornecedor (produtos ou serviços) +CustomCode=Código da mercadoria alfandegária +CountryOrigin=País de Origem +RegionStateOrigin=Região de origem +StateOrigin=Estado / país de origem NatureOfProductShort=Natureza do produto ShortLabel=Etiqueta curta set=conjunto @@ -185,3 +189,4 @@ ActionAvailableOnVariantProductOnly=Ação disponível apenas na variante do pro ProductsPricePerCustomer=Preços de produto por cliente ProductSupplierExtraFields=Atributos adicionais (preços de fornecedores) DeleteLinkedProduct=Excluir o produto filho vinculado à combinação +mandatoryperiod=Períodos obrigatórios diff --git a/htdocs/langs/pt_BR/projects.lang b/htdocs/langs/pt_BR/projects.lang index 1633cafc962..3d2653e0910 100644 --- a/htdocs/langs/pt_BR/projects.lang +++ b/htdocs/langs/pt_BR/projects.lang @@ -1,10 +1,8 @@ # Dolibarr language file - Source file is en_US - projects -ProjectRef=Ref projeto. ProjectId=Id do projeto ProjectLabel=Etiqueta projeto ProjectsArea=Setor de projetos SharedProject=A todos -PrivateProject=Contatos do projeto ProjectsImContactFor=Projetos para os quais eu sou explicitamente um contato AllAllowedProjects=Todo projeto que eu posso ler (meu + público) MyProjectsDesc=Essa visualização está limitada para os projetos que você está definido como contato @@ -13,10 +11,12 @@ TasksOnProjectsPublicDesc=Esta visualização apresenta todas as tarefas nos pro ProjectsPublicTaskDesc=Essa visão apresenta todos os projetos e tarefas que estão autorizados a ler. ProjectsDesc=Exibi todos os projetos (sua permissão de usuário lhe permite ver todos). TasksOnProjectsDesc=Esta visualização apresenta todas as tarefas em todos os projetos (as suas permissões de usuário lhe permitem ver tudo). +MyTasksDesc=Essa visualização é limitada aos projetos ou tarefas aos quais você é um contato OnlyOpenedProject=Só os projetos abertos são visíveis (projetos em fase de projeto ou o estado fechado não são visíveis). ClosedProjectsAreHidden=Projetos encerrados não são visíveis. TasksPublicDesc=Essa exibição apresenta todos os projetos e tarefas que você tem permissão para ler. TasksDesc=Essa exibição apresenta todos os projetos e tarefas (suas permissões de usuário concede-lhe ver tudo). +OnlyYourTaskAreVisible=Somente as tarefas designadas para você serão exibidas. Se você precisa incluir tempo gasto em uma tarefa e essa tarefa não está listada aqui, você precisa adicioná-la a você. ImportDatasetTasks=Tarefas de projetos ProjectCategories=Tags / categorias do projeto AddProject=Criar projeto @@ -49,13 +49,15 @@ AddHereTimeSpentForWeek=Adicione aqui o tempo gasto para esta semana / tarefa Activities=Tarefas/atividades MyActivities=Minhas Tarefas/Atividades MyProjectsArea=Minha Área de projetos +ProgressDeclared=Progresso real declarado TaskProgressSummary=Progresso tarefa CurentlyOpenedTasks=Tarefas atualmente abertas +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=O progresso real declarado é %s maior que o progresso apontado WhichIamLinkedTo=ao qual estou ligado WhichIamLinkedToProject=ao qual estou vinculado ao projeto GoToListOfTimeConsumed=Ir para a lista de dispêndios de tempo ListOrdersAssociatedProject=Lista de pedidos de vendas relacionadas ao projeto -ListSupplierOrdersAssociatedProject=Lista de ordens de compra relacionadas ao projeto +ListSupplierOrdersAssociatedProject=Lista de pedidos de compra relacionadas ao projeto ListSupplierInvoicesAssociatedProject=Lista de faturas do fornec. relacionadas ao projeto ListMOAssociatedProject=Lista de ordens de fabricação relacionadas ao projeto ListTaskTimeUserProject=Lista de tempo consumido nas tarefas de projecto @@ -98,7 +100,9 @@ TaskCreatedInDolibarr=Tarefa %s criada TaskModifiedInDolibarr=Tarefa %s alterada TaskDeletedInDolibarr=Tarefa %s excluída OpportunityStatusShort=Situação de um potencial contrato +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 diff --git a/htdocs/langs/pt_BR/propal.lang b/htdocs/langs/pt_BR/propal.lang index 77f43b79c1e..b1d9e978bf3 100644 --- a/htdocs/langs/pt_BR/propal.lang +++ b/htdocs/langs/pt_BR/propal.lang @@ -2,6 +2,7 @@ ProposalShort=Proposta ProposalsDraft=Orçamentos Rascunho ProposalsOpened=Propostas comerciais abertas +PdfCommercialProposalTitle=Proposta ProposalCard=Cartao de proposta NewProp=Novo Orçamento NewPropal=Novo Orçamento @@ -66,5 +67,10 @@ CaseFollowedBy=Caso seguido por SignedOnly=Apenas assinado IdProposal=ID da proposta IdProduct=ID do produto -PrParentLine=Linha principal da proposta 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? diff --git a/htdocs/langs/pt_BR/receptions.lang b/htdocs/langs/pt_BR/receptions.lang index ca9c55038cb..61e69866e87 100644 --- a/htdocs/langs/pt_BR/receptions.lang +++ b/htdocs/langs/pt_BR/receptions.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - receptions +ReceptionDescription=Gestão de recepção de produtos de fornecedores (Criar documentos de recepção) RefReception=Ref. recebimento Reception=Recebimento Receptions=Recebimentos @@ -10,7 +11,7 @@ ReceptionMethod=Methodo recebimento LastReceptions=Ultimos 1%s recebimentos StatisticsOfReceptions=Estatisticas dos recebimentos NbOfReceptions=Numero de recebimentos -NumberOfReceptionsByMonth=Numero de recebimentos por mes +NumberOfReceptionsByMonth=Número de recebimentos por mês ReceptionCard=Ficha recebimentos NewReception=Novo recebimento CreateReception=Criar recebimento @@ -24,6 +25,7 @@ StatusReceptionDraftShort=Minuta ReceptionSheet=Carta recebimento ConfirmValidateReception=Tem certeza de que deseja validar esta recepção com a referência %s? SendReceptionByEMail=Enviar recepção por e-mail +ReceptionCreationIsDoneFromOrder=Nesse momento a criação de uma nova recepção é feita a partir do Pedido de Compra. ProductQtyInReceptionAlreadySent=Quantidade do produto do pedido do cliente em aberto já enviado ProductQtyInSuppliersReceptionAlreadyRecevied=Quantidade de produtos do pedido de fornecedor aberto já recebida ValidateOrderFirstBeforeReception=Você deve primeiro validar o pedido antes de poder fazer recepções. diff --git a/htdocs/langs/pt_BR/sendings.lang b/htdocs/langs/pt_BR/sendings.lang index 44a415b36ff..29faba499ab 100644 --- a/htdocs/langs/pt_BR/sendings.lang +++ b/htdocs/langs/pt_BR/sendings.lang @@ -35,7 +35,7 @@ SendShippingRef=Submeter para envio %s ActionsOnShipping=Eventos no envio LinkToTrackYourPackage=Atalho para rastreamento do pacote ShipmentLine=Linha de envio -ProductQtyInCustomersOrdersRunning=Quantidade de produtos de ordens de venda em aberto +ProductQtyInCustomersOrdersRunning=Quantidade de produtos de Pedidos de venda em aberto ProductQtyInSuppliersOrdersRunning=Quantidade de produtos por pedidos abertos ProductQtyInShipmentAlreadySent=Quantidade do produto do pedido do cliente em aberto já enviado ProductQtyInSuppliersShipmentAlreadyRecevied=Quantidade de produtos de pedidos abertos já recebidos 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/suppliers.lang b/htdocs/langs/pt_BR/suppliers.lang index 28c08da7876..ddb0435feed 100644 --- a/htdocs/langs/pt_BR/suppliers.lang +++ b/htdocs/langs/pt_BR/suppliers.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - suppliers SuppliersInvoice=Fatura do fornecedor +SupplierInvoices=Faturas de fornecedores ShowSupplierInvoice=Mostrar fatura do fornecedor TotalBuyingPriceMinShort=Total de precos de compra dos subprodutos TotalSellingPriceMinShort=Total de preços de venda de sub-produtos @@ -12,8 +13,8 @@ SupplierPayment=Pagamento de fornecedores SuppliersArea=Área de fornecedores RefSupplierShort=Ref. fornecedor Availability=Entrega -ExportDataset_fournisseur_1=Faturas do fornecedores e detalhes da fatura -ExportDataset_fournisseur_2=Faturas e pagamentos do fornecedores +ExportDataset_fournisseur_1=Faturas de fornecedores e detalhes da fatura +ExportDataset_fournisseur_2=Faturas e pagamentos de fornecedores ExportDataset_fournisseur_3=Pedidos de compra e detalhes do pedido ConfirmApproveThisOrder=Tem certeza que deseja aprovar o pedido %s? DenyingThisOrder=Negar esta pedido diff --git a/htdocs/langs/pt_BR/ticket.lang b/htdocs/langs/pt_BR/ticket.lang index 147b5bb14e5..2a751f5516a 100644 --- a/htdocs/langs/pt_BR/ticket.lang +++ b/htdocs/langs/pt_BR/ticket.lang @@ -33,8 +33,6 @@ MailToSendTicketMessage=Para enviar e-mail da mensagem do ticket TicketSetup=Configuração do módulo de ticket TicketSettings=Configurações TicketSetupDictionaries=O tipo do tiquete, severidade e código analítico sao configuraveis a partir do dicionário -TicketEmailNotificationFromHelp=Usado na resposta da mensagem do ticket pelo exemplo -TicketEmailNotificationToHelp=Envie notificações por e-mail para este endereço. TicketNewEmailBodyLabel=Mensagem de texto enviada após a criação do tiquete TicketNewEmailBodyHelp=O texto especificado aqui será inserido no e-mail confirmando a criação de um novo ticket a partir da interface pública. Informações sobre a consulta do ticket são automaticamente adicionadas. TicketsEmailMustExist=Exigir um endereço de e-mail existente para criar um ticket diff --git a/htdocs/langs/pt_BR/users.lang b/htdocs/langs/pt_BR/users.lang index 1717a885cfd..4c47e51f0bd 100644 --- a/htdocs/langs/pt_BR/users.lang +++ b/htdocs/langs/pt_BR/users.lang @@ -39,6 +39,8 @@ CreateGroup=Criar grupo PasswordChangedAndSentTo=Senha alterada e enviada a %s. PasswordChangeRequest=Pedido para alterar a senha para %s PasswordChangeRequestSent=Solicitação para alterar a senha para %s enviada a %s. +IfLoginExistPasswordRequestSent=Se este login for uma conta válida, um e-mail para redefinir a senha foi enviado. +IfEmailExistPasswordRequestSent=Se este e-mail for uma conta válida, um e-mail para redefinir a senha foi enviado. ConfirmPasswordReset=Confirmar restauração da senha MenuUsersAndGroups=Usuários e Grupos LastGroupsCreated=Últimos grupos de %s criados @@ -52,6 +54,8 @@ ListOfUsersInGroup=Lista de usuários deste grupo ListOfGroupsForUser=Lista de grupos deste usuário LinkToCompanyContact=Atalho para terceiro / contato LinkedToDolibarrMember=Atalho para membro +LinkedToDolibarrUser=Link para o usuário +LinkedToDolibarrThirdParty=Link para terceiro CreateDolibarrLogin=Criar uma usuário CreateDolibarrThirdParty=Criar um fornecedor LoginAccountDisableInDolibarr=A conta está desativada no Dolibarr @@ -78,18 +82,20 @@ LoginToCreate=Login a Criar NameToCreate=Nome do Fornecedor a Criar YourRole=Suas funções YourQuotaOfUsersIsReached=Sua cota de usuarios ativos atingida ! +NbOfUsers=Número de usuários +NbOfPermissions=Número de permissões DontDowngradeSuperAdmin=Somente um Super Administrador pode rebaixar um Super Administrador HierarchicView=Visão hierárquica UseTypeFieldToChange=Use campo Tipo para mudar OpenIDURL=URL do OpenID LoginUsingOpenID=Usar o OpenID para efetuar o login WeeklyHours=Horas trabalhadas (por semana) +ExpectedWorkedHours=Horas de trabalho planejadas por semana ColorUser=Cor do usuario UserAccountancyCode=Código de contabilidade do usuário UserLogoff=Usuário desconetado UserLogged=Usuário Conectado DateOfEmployment=Data de emprego -DateEmploymentstart=Data de Início do Emprego DateEmploymentEnd=Data de término do emprego CantDisableYourself=Você não pode desativar seu próprio registro de usuário ForceUserExpenseValidator=Forçar validação do relatório de despesas diff --git a/htdocs/langs/pt_MZ/accountancy.lang b/htdocs/langs/pt_MZ/accountancy.lang new file mode 100644 index 00000000000..90584e4bd28 --- /dev/null +++ b/htdocs/langs/pt_MZ/accountancy.lang @@ -0,0 +1,235 @@ +# 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 +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...). +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_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 +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 +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 +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 +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 +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 +NotifiedValidationDate=Validate and Lock the exported entries (same effect than the "%s" feature, modification and deletion of the lines will DEFINITELY not be possible) +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 new file mode 100644 index 00000000000..e805a0c6120 --- /dev/null +++ b/htdocs/langs/pt_MZ/admin.lang @@ -0,0 +1,1723 @@ +# Dolibarr language file - Source file is en_US - admin +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 +InternalUser=Usuário Interno +ExternalUser=Usuário Externo +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. +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 . +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. +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) +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 +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 +Permission300=Ler códigos de barras +Permission301=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 +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 +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 +Audit=Eventos de segurança +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 +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 +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. +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 +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) +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) +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) +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 +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. +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 +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 +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. +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 +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 +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 +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. +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..9fc6a662566 --- /dev/null +++ b/htdocs/langs/pt_MZ/bills.lang @@ -0,0 +1,405 @@ +# 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 +PriceBase=Preço base +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..493791da89d --- /dev/null +++ b/htdocs/langs/pt_MZ/commercial.lang @@ -0,0 +1,62 @@ +# 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 +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_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..55154a3b678 --- /dev/null +++ b/htdocs/langs/pt_MZ/compta.lang @@ -0,0 +1,174 @@ +# 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_VAT_PAY_ACCOUNT=Conta da contabilidade padrão para o pagamento de IVA[] +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) +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..61344cf4b60 --- /dev/null +++ b/htdocs/langs/pt_MZ/deliveries.lang @@ -0,0 +1,25 @@ +# Dolibarr language file - Source file is en_US - deliveries +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 +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 +NameAndSignature=Nome e assinatura: +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..3c7bb7eddf3 --- /dev/null +++ b/htdocs/langs/pt_MZ/ecm.lang @@ -0,0 +1,37 @@ +# 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. +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 +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..03f3d75a362 --- /dev/null +++ b/htdocs/langs/pt_MZ/errors.lang @@ -0,0 +1,182 @@ +# 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) +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 +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/exports.lang b/htdocs/langs/pt_MZ/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/pt_MZ/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. 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..6fb19e2fcd9 --- /dev/null +++ b/htdocs/langs/pt_MZ/loan.lang @@ -0,0 +1,23 @@ +# 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 +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_MZ/mailmanspip.lang b/htdocs/langs/pt_MZ/mailmanspip.lang new file mode 100644 index 00000000000..bbea232c4ef --- /dev/null +++ b/htdocs/langs/pt_MZ/mailmanspip.lang @@ -0,0 +1,25 @@ +# 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_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) +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 new file mode 100644 index 00000000000..60e6ab46245 --- /dev/null +++ b/htdocs/langs/pt_MZ/main.lang @@ -0,0 +1,577 @@ +# Dolibarr language file - Source file is en_US - main +DIRECTION=ltr +FONTFORPDF=helvetica +FONTSIZEFORPDF=10 +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=%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..30afe170110 --- /dev/null +++ b/htdocs/langs/pt_MZ/mrp.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - mrp +Mrp=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/products.lang b/htdocs/langs/pt_MZ/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/pt_MZ/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/pt_MZ/projects.lang b/htdocs/langs/pt_MZ/projects.lang new file mode 100644 index 00000000000..8d0c1cedae8 --- /dev/null +++ b/htdocs/langs/pt_MZ/projects.lang @@ -0,0 +1,11 @@ +# 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 +ServiceToUseOnLines=Service to use on lines by default +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..0ac1be4f306 --- /dev/null +++ b/htdocs/langs/pt_MZ/salaries.lang @@ -0,0 +1,17 @@ +# 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 +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..a5781ea5a75 --- /dev/null +++ b/htdocs/langs/pt_MZ/website.lang @@ -0,0 +1,88 @@ +# 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 +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. +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 0b77b76f45b..700e13bf5a7 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscrip AccountancyArea=Área de contabilidade AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas: AccountancyAreaDescActionOnce=As seguintes ações são geralmente executadas apenas uma vez, ou uma vez por ano ... -AccountancyAreaDescActionOnceBis=Os próximos passos devem ser efetuados para economizar tempo no futuro, sugerindo-lhe a conta contabilística padrão correta quando estiver a ser feito um registo no Livro Razão e nos Diários. +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=As seguintes ações são normalmente executadas a cada mês, semana ou dia para grandes empresas... -AccountancyAreaDescJournalSetup=PASSO %s: Crie o verifique o conteúdo do sua lista de diários a partir do 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=PASSO %s: Defina a conta contabilística para cada taxa de IVA. Para tal pode usar a entrada %s do menu. AccountancyAreaDescDefault=STEP %s: definir contas contábeis padrão. Para isso, use a entrada do menu %s. -AccountancyAreaDescExpenseReport=PASSO %s: Defina a conta contabilística para o relatório de despesa. Para tal pode usar a entrada do menu %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=PASSO %s: Defina a conta contabilística para o pagamento de salários. Para tal pode usar a entrada do menu %s. -AccountancyAreaDescContrib=ETAPA %s: Definir contas contábeis padrão para despesas especiais (impostos diversos). Para isso, use a entrada do menu %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=PASSO %s: Defina a conta contabilística para donativos. Para tal pode usar a entrada do menu %s. AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=ETAPA %s: Defina contas padrão obrigatórias e contas contábeis padrão para transações diversas. Para isso, use a entrada do menu %s. AccountancyAreaDescLoan=PASSO %s: Defina a conta contabilística para empréstimos. Para tal pode usar a entrada do menu %s. AccountancyAreaDescBank=STEP %s: defina as contas contábeis e o código do diário para cada banco e contas financeiras. Para isso, use a entrada do menu %s. -AccountancyAreaDescProd=PASSO %s: Defina a contas contabilística para os seus produtos. Para tal pode usar a entrada %s do menu. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=PASSO %s: Verifique a ligação entre as linhas %s existentes e a conta contabilística foi efetuada, de forma a que a aplicação possa registar as transações no Livro Razão num só clique. Complete ligações que faltam. Para tal, utilize a entrada do menu %s. AccountancyAreaDescWriteRecords=PASSO %s: Registar transações no Livro Razão. Para esse efeito, vá ao menu %s e clique no botão %s. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=Contas de produtos TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Vinculação a contas CustomersVentilation=Associação à fatura do cliente SuppliersVentilation=Vinculação de fatura do fornecedor @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Vinculação do relatório de despesas CreateMvts=Criar nova transação UpdateMvts=Modificação de uma transação ValidTransaction=Validar transação -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Livro Razão BookkeepingSubAccount=Subledger AccountBalance=Saldo da conta @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Conta contabilística para registar donativos ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Por grupos predefinidos ByPersonalizedAccountGroups=Por grupos personalizados ByYear=por ano NotMatch=Não configurado -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Ano a apagar DelJournal=Diário a apagar -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=Diário financeiro ExpenseReportsJournal=Diário de relatórios de despesas DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária @@ -278,30 +279,31 @@ 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 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 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=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 -MvtNotCorrectlyBalanced=Movimento não corretamente balanceado. Débito = %s | Crédito = %s +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=Não há mais registos para journalize +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta contabilística ChangeBinding=Alterar vinculação Accounted=Contabilizado no 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 @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=Exportar o diário rascunho Modelcsv=Modelo de exportação @@ -394,6 +397,21 @@ Range=Gama da conta contabilística 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 + +## Confirm box +ConfirmMassUnlettering=Bulk 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)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Não foram efetuados alguns passos obrigatórios da configuração, por favor complete-os ErrorNoAccountingCategoryForThisCountry=Não existe grupo de conta contabilística disponível para o país %s (Consulte Inicio->Configuração->Dicionários) @@ -406,6 +424,9 @@ Binded=Linhas vinculadas ToBind=Linhas a vincular UseMenuToSetBindindManualy=Linhas ainda não encadernadas, use o menu %s para fazer a encadernação manualmente 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 ## Import ImportAccountingEntries=Entradas contábeis diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 185051f8847..08e26813173 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -109,7 +109,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 @@ -477,7 +477,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 @@ -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=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) @@ -714,13 +714,14 @@ 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 Permission39=Ignore minimum price -Permission41=Leia projetos e tarefas (projeto compartilhado e projetos para os quais eu sou contato). Também pode inserir o tempo consumido, para mim ou minha hierarquia, em tarefas atribuídas (Quadro de Horários) -Permission42=Criar / modificar projetos (projeto compartilhado e projetos para os quais sou contato). Também pode criar tarefas e atribuir usuários a projetos e tarefas -Permission44=Excluir projetos (projeto compartilhado e projetos para os quais sou contato) +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=Exportar projetos Permission61=Consultar intervenções Permission62=Criar/Modificar intervenções @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Criar/modificar terceiros associados ao utilizador Permission125=Eliminar terceiros associados ao utilizador Permission126=Exportar terceiros Permission130=Create/modify third parties payment information -Permission141=Leia todos os projetos e tarefas (também projetos privados dos quais não sou um contato) -Permission142=Criar / modificar todos os projetos e tarefas (também projetos privados dos quais não sou um contato) -Permission144=Eliminar todos os projetos e tarefas (também os projetos privados para os quais não sou contactado) +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=Consultar fornecedores de rede Permission147=Consultar estados Permission151=Consultar ordens de pagamento por débito direto @@ -873,6 +876,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 @@ -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=Relatório de despesas - categorias de transporte DictionaryExpenseTaxRange=Relatório de despesas - Escala por categoria de transporte DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Type of unit SetupSaved=Configuração guardada SetupNotSaved=A configuração não foi guardada @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=O módulo de contas bancarias não se encontra ativado 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=Alertas -DelaysOfToleranceBeforeWarning=Atrase antes de exibir um alerta de aviso para: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... 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 @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Você forçou uma nova tradução para a chave de t TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Módulos ativados: %s / %s YouMustEnableOneModule=Deve ativar, pelo menos, 1 módulo +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Classe %s não encontrada no caminho do PHP YesInSummer=Sim no verão OnlyFollowingModulesAreOpenedToExternalUsers=Observe que apenas os seguintes módulos estão disponíveis para usuários externos (independentemente das permissões de tais usuários) e somente se as permissões forem concedidas:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Marca d'água nas faturas rascunho (nenhuma se em branc PaymentsNumberingModule=Modelo de numeração de pagamentos 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. ##### Proposals ##### PropalSetup=Configuração do módulo de orçamentos ProposalsNumberingModules=Modelos de numeração do orçamento @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Instalar ou construir um módulo externo do aplicativo HighlightLinesOnMouseHover=Realçar as linhas da tabela quando o rato passar sobre elas 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=Cor do texto do título da página @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Enter 0 or 1 UnicodeCurrency=Entre aqui entre chaves, lista de números de bytes que representam o símbolo da moeda. Por exemplo: para $, insira [36] - para o brasil real R $ [82,36] - para €, insira [8364] ColorFormat=As cores RGB está no formato HEX, por exemplo: 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=Posição da linha nas listas de seleção SellTaxRate=Sales tax rate RecuperableOnly=Sim para IVA "Não Percebido, mas Recuperável" dedicado a algum regiões ultramarinas da França. Mantenha o valor de "Não" em todos os outros casos.\n\n @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Ordens de compra MailToSendSupplierInvoice=Faturas do fornecedor MailToSendContract=Contratos MailToSendReception=Receptions +MailToExpenseReport=Relatórios de despesas MailToThirdparty=Terceiros MailToMember=Membros MailToUser=Utilizadores @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtro Regex para limpar valor (COMPANY_AQUARIUM_CL COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed GDPRContact=Responsável pela proteção de dados (DPO, Privacidade de dados ou contato GDPR) -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=Texto de ajuda para mostrar na dica de ferramenta 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=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 CollectNow=Recolher agora -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=Confirmação de recebimento de email -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=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, 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=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 UseSearchToSelectResource=Utilizar um formulário de pesquisa para escolher um recurso (em vez de uma lista) DisabledResourceLinkUser=Desativar funcionalidade que permite vincular um recurso aos utilizadores DisabledResourceLinkContact=Desativar funcionalidade que permite vincular um recurso aos contactos -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=Confirmar restauração do módulo OnMobileOnly=Apenas na tela pequena (smartphone) 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 = 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 +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/pt_PT/commercial.lang b/htdocs/langs/pt_PT/commercial.lang index e9f04e1debc..b0aefc17d93 100644 --- a/htdocs/langs/pt_PT/commercial.lang +++ b/htdocs/langs/pt_PT/commercial.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - commercial -Commercial=Commerce -CommercialArea=Commerce area +Commercial=Comércio +CommercialArea=Área de comércio Customer=Cliente Customers=Clientes Prospect=Cliente Potencial @@ -52,22 +52,23 @@ ActionAC_TEL=Chamada telefónica ActionAC_FAX=Enviar fax ActionAC_PROP=Envío de orçamento por correio ActionAC_EMAIL=Enviar email -ActionAC_EMAIL_IN=Reception of Email +ActionAC_EMAIL_IN=Recepção de e-mail ActionAC_RDV=Reuniões ActionAC_INT=Intervenção no local ActionAC_FAC=Enviar fatura do cliente por correio ActionAC_REL=Enviar fatura do cliente por correio (lembrete) ActionAC_CLO=Fechar ActionAC_EMAILING=Enviar email em massa -ActionAC_COM=Send sales order by mail +ActionAC_COM=Enviar pedido de venda pelo correio ActionAC_SHIP=Enviar expedição por correio ActionAC_SUP_ORD=Enviar encomenda a fornecedor por correio ActionAC_SUP_INV=Enviar fatura do fornecedor por correio ActionAC_OTH=Outro -ActionAC_OTH_AUTO=Eventos inseridos automaticamente +ActionAC_OTH_AUTO=Other auto ActionAC_MANUAL=Eventos inseridos manualmente ActionAC_AUTO=Eventos inseridos automaticamente -ActionAC_OTH_AUTOShort=Auto +ActionAC_OTH_AUTOShort=Outro +ActionAC_EVENTORGANIZATION=Event organization events Stats=Estatísticas de venda StatusProsp=Estado da prospeção DraftPropals=Orçamentos rascunhos diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang index de2a743c6fb..ccfb56424f9 100644 --- a/htdocs/langs/pt_PT/companies.lang +++ b/htdocs/langs/pt_PT/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Área de prospeção IdThirdParty=ID Terceiro IdCompany=Id Empresa IdContact=Id Contacto +ThirdPartyAddress=Third-party address ThirdPartyContacts=Contatos de terceiros ThirdPartyContact=Contato / endereço de terceiros Company=Empresa @@ -51,19 +52,22 @@ CivilityCode=Código cortesía RegisteredOffice=Domicilio social Lastname=Apelidos Firstname=Primeiro Nome +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Posição da tarefa UserTitle=Título 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Código de fornecedor inválido CustomerCodeModel=Modelo de código cliente SupplierCodeModel=Modelo de código de fornecedor Gencod=Código de barras +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=ID Prof. 1 ProfId2Short=ID Prof. 2 @@ -159,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=Outros ProfId6ShortCM=- ProfId1CO=ID Prof. 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Lista de Terceiros ShowCompany=Terceiro ShowContact=Endereço de contacto ContactsAllShort=Todos (sem filtro) -ContactType=Tipo de Contacto +ContactType=Contact role ContactForOrders=Contacto para Pedidos ContactForOrdersOrShipments=Contacto da encomenda ou da expedição ContactForProposals=Contacto do orçamento 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/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 68df6cf5d08..31f5a8642b3 100644 --- a/htdocs/langs/pt_PT/install.lang +++ b/htdocs/langs/pt_PT/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=A sua memória máxima da sessão PHP está definida para %s. PHPMemoryTooLow=Sua memória de sessão do PHP max está configurada para %s bytes. Isso é muito baixo. Altere seu php.ini para definir o parâmetro memory_limit para pelo menos %s bytes. Recheck=Clique aqui para um teste mais detalhado ErrorPHPDoesNotSupportSessions=Sua instalação do PHP não suporta sessões. Este recurso é necessário para permitir que o Dolibarr funcione. Verifique sua configuração do PHP e permissões do diretório de sessões. -ErrorPHPDoesNotSupportGD=Sua instalação do PHP não suporta funções gráficas do GD. Nenhum gráfico estará disponível. -ErrorPHPDoesNotSupportCurl=A sua instalação PHP não suporta Curl. -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=Sua instalação do PHP não suporta funções UTF8. Dolibarr não pode funcionar corretamente. Resolva isso antes de instalar o 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=A diretoria %s não existe. ErrorGoBackAndCorrectParameters=Volte e verifique / corrija os parâmetros. @@ -30,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/main.lang b/htdocs/langs/pt_PT/main.lang index 4dcf47e511a..21ae8fa4148 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -244,6 +244,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 +345,7 @@ KiloBytes=Kilobytes MegaBytes=Megabytes GigaBytes=Gigabytes TeraBytes=Terabytes -UserAuthor=Ceated by +UserAuthor=Criado por UserModif=Updated by b=b. Kb=Kb @@ -517,6 +518,7 @@ or=ou Other=Outro Others=Outros OtherInformations=Outras informações +Workflow=Fluxo de trabalho Quantity=quantidade Qty=Quant. ChangedBy=Modificado por @@ -619,6 +621,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 +712,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 +802,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 @@ -1164,3 +1169,14 @@ 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 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/pt_PT/members.lang b/htdocs/langs/pt_PT/members.lang index 4fe2efbcc3d..b5bedee77b4 100644 --- a/htdocs/langs/pt_PT/members.lang +++ b/htdocs/langs/pt_PT/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Lista de Membros MembersListToValid=Lista de Membros rascunho (a Confirmar) MembersListValid=Lista de Membros validados @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Estados-id +MemberId=Member Id +MemberRef=Member Ref NewMember=Novo membro MemberType=Tipo de Membro MemberTypeId=ID tipo de membro @@ -135,7 +136,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.

    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 +160,11 @@ HTPasswordExport=geração Ficheiro htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Complementares de acção sobre a gravação -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=Criar uma entrada direta na conta bancária MoreActionBankViaInvoice=Crie uma fatura e um pagamento na conta bancária MoreActionInvoiceOnly=Criar uma fatura sem pagamento -LinkToGeneratedPages=Gerar cartões de visita +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Esta tela permite gerar arquivos PDF com os cartões de negócio para todos os seus membros ou de um membro particular. DocForAllMembersCards=Gerar cartões de negócio para todos os membros DocForOneMemberCards=Gerar cartões de visita para um determinado membro @@ -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/pt_PT/modulebuilder.lang b/htdocs/langs/pt_PT/modulebuilder.lang index 70bd8351693..76cdf48221d 100644 --- a/htdocs/langs/pt_PT/modulebuilder.lang +++ b/htdocs/langs/pt_PT/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=Introduza o nome do módulo/aplicação a criar, sem espaços. Use maiúsculas para separar palavras (Por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Digite o nome do objeto para criar sem espaços. Use letras maiúsculas para separar palavras (por exemplo: MyObject, Student, Teacher ...). O arquivo de classe CRUD, mas também o arquivo da API, serão geradas páginas para listar / adicionar / editar / excluir objetos e arquivos SQL. +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=Módulos gerados / editáveis ​​encontrados: %s ModuleBuilderDesc4=Um módulo é detectado como 'editável' quando o arquivo %s existe na raiz do diretório do módulo NewModule=Novo módulo NewObjectInModulebuilder=Novo objeto +NewDictionary=New dictionary ModuleKey=Chave do módulo ObjectKey=Chave do objeto +DicKey=Dictionary key ModuleInitialized=Módulo inicializado FilesForObjectInitialized=Arquivos para o novo objeto '%s' inicializado FilesForObjectUpdated=Arquivos para o objeto '%s' atualizado (arquivos .sql e arquivo .class.php) @@ -52,7 +55,7 @@ LanguageFile=Arquivar por idioma ObjectProperties=Object Properties ConfirmDeleteProperty=Tem certeza de que deseja excluir a propriedade %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 = Definir banco de dados para NOT NULL. -1 = Permitir valores nulos e forçar valor para NULL se vazio ('' ou 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=Usado para "pesquisar todos" DatabaseIndex=Índex da Base de Dados FileAlreadyExists=O arquivo %s já existe @@ -94,7 +97,7 @@ LanguageDefDesc=Entre neste arquivo, toda a chave e a tradução para cada arqui 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=Defina na propriedade module_parts ['hooks'] , no descritor de módulo, o contexto dos ganchos que você deseja gerenciar (lista de contextos pode ser encontrada por uma pesquisa em ' initHooks ( 'in core code).
    Edite o arquivo hook para adicionar código de suas funções (funções hookable podem ser encontradas por uma pesquisa em' executeHooks 'no código principal). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destroy table if empty) TableDoesNotExists=A tabela %s não existe TableDropped=Tabela %s excluída InitStructureFromExistingTable=Construir a cadeia de matriz de estrutura de uma tabela existente -UseAboutPage=Desativar a página sobre +UseAboutPage=Do not generate the About page UseDocFolder=Desativar a pasta de documentação UseSpecificReadme=Use um ReadMe específico 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,15 @@ 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=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. 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 46c77acc4bd..a52c82329ee 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...ou crie o seu próprio perfil
    (seleção manual DemoFundation=Gestão de Membros de uma associação DemoFundation2=Gestão de Membros e tesouraria de uma associação DemoCompanyServiceOnly=Empresa ou serviço de freelancer apenas -DemoCompanyShopWithCashDesk=Gestão de uma loja com Caixa +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Empresa com múltiplas atividades (todos os módulos principais) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Fechar +Autofill = Autofill diff --git a/htdocs/langs/pt_PT/projects.lang b/htdocs/langs/pt_PT/projects.lang index f55ae2a20f4..f72fb9fa22b 100644 --- a/htdocs/langs/pt_PT/projects.lang +++ b/htdocs/langs/pt_PT/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Nome do Projeto ProjectsArea=Área de Projetos ProjectStatus=Estado do projeto SharedProject=Toda a Gente -PrivateProject=Contactos do Projeto +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=Todos os projetos que eu posso ler (meus + público) AllProjects=Todos os Projetos @@ -190,6 +190,7 @@ PlannedWorkload=Carga de trabalho prevista PlannedWorkloadShort=Carga de trabalho ProjectReferers=Itens relacionados ProjectMustBeValidatedFirst=Primeiro deve validar o projeto +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time InputPerDay=Entrada por dia InputPerWeek=Entrada por semana @@ -287,3 +288,9 @@ 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=A data de fim não pode ser anterior à data de início +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 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 f02713efe60..9ed3c42da2d 100644 --- a/htdocs/langs/pt_PT/ticket.lang +++ b/htdocs/langs/pt_PT/ticket.lang @@ -90,10 +90,10 @@ 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=E-mail de notificação de -TicketEmailNotificationFromHelp=Utilizado como exemplo na mensagem de resposta do ticket -TicketEmailNotificationTo=E-mail de notificações para -TicketEmailNotificationToHelp=Envie notificações por email para este endereço. +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 TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=O texto especificado aqui será inserido no email confirmando a criação de um novo ticket a partir da interface pública. Informações sobre a consulta do ticket são automaticamente adicionadas. TicketParamPublicInterface=Configuração da interface pública @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=O destinatário está vazio. Nenhu TicketGoIntoContactTab=Por favor, vá para a aba "Contatos" para selecioná-los TicketMessageMailIntro=Introdução TicketMessageMailIntroHelp=Este texto é adicionado apenas no início do email e não será salvo. -TicketMessageMailIntroLabelAdmin=Introdução à mensagem ao enviar e-mail -TicketMessageMailIntroText=Olá,
    Uma nova resposta foi enviada em um ticket que você contata. Aqui está a mensagem:
    -TicketMessageMailIntroHelpAdmin=Este texto será inserido antes do texto da resposta a um ticket. +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=

    Atenciosamente,

    - +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Assinatura do email de resposta TicketMessageMailSignatureHelpAdmin=Este texto será inserido após a mensagem de resposta. TicketMessageHelp=Apenas este texto será salvo na lista de mensagens no cartão do ticket. @@ -238,9 +252,16 @@ TicketChangeStatus=Alterar o estado TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Não notificar a empresa na criação +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Não lida 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,8 +289,9 @@ TicketNewEmailBody=Este é um email automático para confirmar que você registr TicketNewEmailBodyCustomer=Este é um email automático para confirmar que um novo ticket acaba de ser criado na sua conta. TicketNewEmailBodyInfosTicket=Informações para monitorar o ticket TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=Você pode ver o progresso do ticket clicando no link acima. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Você pode ver o progresso do ticket na interface específica clicando no seguinte link +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. @@ -291,6 +313,10 @@ NewUser=Novo Utilizador 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 atualizado TicketNotificationEmailBody=Esta é uma mensagem automática para notificá-lo de que o ticket %s acabou de ser atualizado TicketNotificationRecipient=Destinatário da notificação diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 00f79f1b897..0b1725efbb8 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 @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=Contul contabil principal pentru pl AccountancyArea=Zona contabilă AccountancyAreaDescIntro=Utilizarea modulului de contabilitate se face în mai multe etape: AccountancyAreaDescActionOnce=Următoarele acțiuni sunt executate de obicei doar o singură dată sau o dată pe an... -AccountancyAreaDescActionOnceBis=Următorii pași trebuie făcuți pentru a vă economisi timpul în viitor prin sugerarea contului contabil implicit corect atunci când efectuați jurnalizarea (scrierea înregistrărilor în Jurnale și în registrul Cartea Mare). +AccountancyAreaDescActionOnceBis=Următorii pași ar trebui făcuți pentru a economisi timp pe viitor, ţi se va propune automat contul contabil implicit corect atunci când transferi datele în contabilitate AccountancyAreaDescActionFreq=Următoarele acțiuni sunt executate de obicei în fiecare lună, săptămână sau zi pentru companii foarte mari... -AccountancyAreaDescJournalSetup=PASUL %s: Creați sau verificați conținutul jurnalului din meniul %s +AccountancyAreaDescJournalSetup=PASUL %s: Verifică conținutul listei de jurnal din meniul %s AccountancyAreaDescChartModel=PASUL %s: Verificați dacă există un plan de conturi sau creați unul din meniul %s AccountancyAreaDescChart=PASUL %s: Selectaţi şi|sau completaţi planul de conturi din meniul %s AccountancyAreaDescVat=PASUL %s: Definire conturi contabile pentru fiecare cotă de TVA. Pentru aceasta, utilizați intrarea în meniu %s. AccountancyAreaDescDefault=PAS %s: Definiți conturile implicite de contabilitate. Pentru aceasta, utilizați intrarea în meniu %s. -AccountancyAreaDescExpenseReport=PASUL %s: Definire conturi contabile implicite pentru fiecare tip de raport de cheltuieli. Pentru aceasta, utilizați intrarea în meniu %s. +AccountancyAreaDescExpenseReport=PASUL %s: Defineşte conturile contabile implicite pentru fiecare tip de Raport de cheltuieli. Pentru aceasta, utilizează opţiunea din meniul %s. AccountancyAreaDescSal=PASUL %s: Definire conturi contabile implicite pentru plata salariilor. Pentru aceasta, utilizați intrarea în meniu %s. -AccountancyAreaDescContrib=PASUL %s: Definire conturi contabile implicite pentru cheltuieli speciale (taxe diverse). Pentru aceasta, utilizați intrarea în meniu %s. +AccountancyAreaDescContrib=PASUL %s: Defineşte conturile contabile implicite pentru Taxe (cheltuieli speciale). Pentru aceasta, utilizează opţiunea din meniul %s. AccountancyAreaDescDonation=PASUL %s: Definire conturi contabile implicite pentru donații. Pentru aceasta, utilizați intrarea în meniu %s. AccountancyAreaDescSubscription=PAS %s: Definiți conturile contabile implicite pentru abonamente pentru membri. Pentru aceasta, utilizați intrarea în meniu %s. AccountancyAreaDescMisc=PASUL %s: Definire conturi contabile implicite obligatorii și conturi contabile implicite pentru tranzacții diverse. Pentru aceasta, utilizați intrarea în meniu %s. AccountancyAreaDescLoan=PASUL %s: Definire conturi contabile implicite pentru împrumuturi. Pentru aceasta, utilizați intrarea în meniu %s. AccountancyAreaDescBank=PASUL %s: Definire conturi contabile și codul de jurnal pentru fiecare bancă și conturi financiare. Pentru aceasta, utilizați intrarea în meniu %s. -AccountancyAreaDescProd=STEP %s: Definire conturi contabile pentru produse/ servicii. Pentru aceasta, utilizați intrarea în meniu %s. +AccountancyAreaDescProd=PASUL %s: Defineşte conturile contabile pentru produsele/serviciile tale. Pentru aceasta, utilizează opţiunea din meniul %s.  AccountancyAreaDescBind=PASUL %s: Verifică dacă asocierea între liniile %s existente și contul contabil este făcută, astfel încât aplicația să poate scrie tranzacțiile în Cartea Mare cu un singur clic. Completați asocierile lipsă. Pentru aceasta, utilizați intrarea în meniu %s. AccountancyAreaDescWriteRecords=PASUL %s: Scriere tranzacţii în Registrul jurnal. Pentru aceasta, accesează meniul %s, apoi fă clic pe butonul %s. @@ -120,7 +121,7 @@ ExpenseReportsVentilation=Asociere deconturi de cheltuieli CreateMvts=Creați o tranzacție nouă UpdateMvts=Modificarea unei tranzacții ValidTransaction=Tranzacție validată -WriteBookKeeping=Înregistrare tranzacţii în contabilitate +WriteBookKeeping=Înregistrează tranzacţiile în contabilitate Bookkeeping=Registru jurnal BookkeepingSubAccount=Registru jurnal secundar AccountBalance=Sold cont @@ -161,7 +162,7 @@ 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 @@ -182,6 +183,9 @@ DONATION_ACCOUNTINGACCOUNT=Contul contabil pentru înregistrarea donațiilor ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cont contabil pentru a înregistra abonamente ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT= Cont contabil implicit pentru înregistra depunerilor clientului +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=Cont contabil implicit pentru a înregistra depozitul furnizorului +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) @@ -219,12 +223,12 @@ ByPredefinedAccountGroups=După grupe predefinite ByPersonalizedAccountGroups=După grupe personalizate ByYear=După an NotMatch=Nu este setat -DeleteMvt=Ștergeți câteva linii operate din contabilitate +DeleteMvt=Ştergere linii din contabilitate DelMonth=Luna care se şterge DelYear=An de șters DelJournal=Jurnal de șters -ConfirmDeleteMvt=Aceasta va șterge toate liniile operate în contabilitate pentru anul/luna și/sau pentru un registru jurnal specific (este necesar cel puțin un criteriu). Va trebui să refolosiți caracteristica '%s' pentru a înregistra tranzacţia ștearsă din registrul jurnal. -ConfirmDeleteMvtPartial=Aceasta va șterge tranzacția din contabilitate (toate liniile de operațiuni legate de aceeași tranzacție vor fi șterse) +ConfirmDeleteMvt=Aceasta va șterge toate rândurile din contabilitate pentru anul/luna și/sau pentru un anumit jurnal (este necesar cel puțin un criteriu). Va trebui să refoloseşti caracteristica '%s' pentru a avea înregistrarea ștearsă înapoi în registru. +ConfirmDeleteMvtPartial=Aceasta va șterge tranzacția din contabilitate (toate liniile legate de aceeași tranzacție vor fi șterse) FinanceJournal=Jurnal Bancă ExpenseReportsJournal=Jurnalul rapoartelor de cheltuieli DescFinanceJournal=Jurnal financiar bancar, include toate tipurile de plăți efectuate prin conturile bancare @@ -278,30 +282,31 @@ 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=Consultați aici numărul de tranzacţii lunare care nu sunt validate și se află în anii fiscali deschişi -OverviewOfMovementsNotValidated=Pasul 1 / Prezentarea generală a tranzacţiilor nevalidate. (Necesar pentru a închide un an fiscal) -AllMovementsWereRecordedAsValidated=Toate mișcările au fost înregistrate ca validate -NotAllMovementsCouldBeRecordedAsValidated=Nu toate mișcările au putut fi înregistrate ca validate -ValidateMovements=Vallidare trasferuri +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... 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 -MvtNotCorrectlyBalanced=Contarea nu este corect echilibrată. Debit = %s | Credit = %s +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 se mai înregistrează nicio intrare în jurnal. +NoNewRecordSaved=Nu mai sunt înregistrări de transferat ListOfProductsWithoutAccountingAccount=Lista produselor care nu sunt asociate unui cont contabil ChangeBinding=Schimbați asocierea Accounted=Contabilizat în Registrul Jurnal NotYetAccounted=Netransferat încă în contabilitate ShowTutorial=Arată tutorial NotReconciled=Ne-reconciliat -WarningRecordWithoutSubledgerAreExcluded=Atenție, toate operațiunile fără cont de subregistru definit sunt filtrate și excluse din această vizualizare +WarningRecordWithoutSubledgerAreExcluded=Atenție, toate liniile fără cont de registru secundar definit sunt filtrate și excluse din această vizualizare +AccountRemovedFromCurrentChartOfAccount=Cont contabil care nu există în planul de conturi actual ## Admin BindingOptions=Opțiuni de legare @@ -329,8 +334,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Dezactivați legarea și transferul în 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) ## Export -NotifiedExportDate=Marcaţi liniile ca exportate (modificarea liniilor nu va fi posibilă) -NotifiedValidationDate=Validați intrările exportate (modificarea sau ștergerea liniilor nu va fi posibilă) +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 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ţă Modelcsv=Model export @@ -394,6 +400,21 @@ Range=Interval cont contabil Calculated=Calculat Formula=Formulă +## Reconcile +Unlettering=Dereconciliere +AccountancyNoLetteringModified=Nicio reconciliere modificată +AccountancyOneLetteringModifiedSuccessfully=O reconciliere a fost modificată cu succes +AccountancyLetteringModifiedSuccessfully=%s reconciliere modificată cu succes +AccountancyNoUnletteringModified=Nicio dereconciliere modificată +AccountancyOneUnletteringModifiedSuccessfully=O dereconciliere a fost modificată cu succes +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?  +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? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Câțiva pași obligatorii de configurare nu au fost făcuți, efectuează-i ErrorNoAccountingCategoryForThisCountry=Nu există grupe de conturi contabile disponibile pentru țara %s (Consultă Acasă - Setări - Dicționare) @@ -406,6 +427,10 @@ Binded=Linii asociate ToBind=Linii de asociat UseMenuToSetBindindManualy=Linii care nu sunt încă asociate, utilizează meniul %s pentru a face asocierea manual SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Ne pare rău, acest modul nu este compatibil cu caracteristica experimentală a facturilor de situație +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 diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 31911e48199..960c08741dc 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -109,7 +109,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ă @@ -477,7 +477,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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Utilizând serverul SMTP al furnizorului de servicii email pen 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. 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) @@ -714,13 +714,14 @@ 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 Permission39=Ignoră preţul minim de vânzare -Permission41=Citeşte proiectele și task-urile (proiecte partajate și proiecte care sunt persoană de contact). Se poate, de asemenea, să introduci timpul consumat, pentru mine sau pentru ierarhia mea, asupra task-urilor atribuite (Timesheet) -Permission42=Creare/modificare proiecte (proiecte partajate și proiecte la care este persoană de contact). De asemenea, poate crea task-uri și poate atribui utilizatori la proiecte și tak-uri -Permission44=Șterge proiecte (proiecte partajate și proiecte pentru care este persoană de contact) +Permission41=Citeşte proiecte și sarcini (proiecte comune și proiecte ale căror contact sunt eu). +Permission42=Creare/modificare proiecte (proiecte partajate și proiecte ale căror contact sunt eu). De asemenea, poate atribui utilizatori la proiecte și sarcini +Permission44=Șterge proiecte (proiecte partajate și proiecte la care sunt contact) Permission45=Export proiecte Permission61=Citeşte intervenţii Permission62=Creare/modificare intervenţii @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Creare/modificare terţi asociaţi la utilizator Permission125=Ştergere terţi asociaţi la utilizator Permission126=Export terţi Permission130=Creare/modificare info plată terţi -Permission141=Citește toate proiectele și task-urile (inclusiv proiectele private pentru care nu este persoană de contact) -Permission142=Creare/modificare toate proiectele și task-urile (inclusiv proiectele private pentru care nu este persoană de contact) -Permission144=Şterge toate proiectele și task-urile (inclusiv proiectele private pentru care nu sunt persoană de contact) +Permission141=Citeşte toate proiectele și sarcinile (precum și proiectele private pentru care nu sunt un contact) +Permission142=Creare/modificare toate proiectele și sarcinile (precum și proiectele private pentru care nu sunt un contact) +Permission144=Șterge toate proiectele și sarcinile (precum și proiectele private la care nu sunt contact) +Permission145=Poate introduce timp consumat, pentru mine sau pentru ierarhia mea, pentru sarcinile alocate (Foaie de pontaj) Permission146=Citeşte furnizorii Permission147=Citeşte statisticile Permission151=Citeşte ordinele de plată prin debitare directă @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Înregistrare debite/respingeri de transfer de credit Permission601=Citeşte stickere Permission602=Creare/modificare stickere Permission609=Şterge stickere +Permission611=Citeşte atribute variante de produs +Permission612=Ceare/Modificare atribute variante de produs +Permission613=Şterge atribute variante de produs Permission650=Citeşte Bonuri de consum Permission651=Creare/actualizare Bonuri de consum Permission652=Șterge bonuri de consum @@ -969,6 +976,8 @@ Permission4021=Creare/modificare evaluare a ta Permission4022=Validare evaluare Permission4023=Ştergere evaluare Permission4030=Vede meniul de comparare +Permission4031=Citeşte informaţii personale +Permission4032=Scrie informaţii personale 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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Raport de cheltuieli - Categorii de transport DictionaryExpenseTaxRange=Raport de cheltuieli - Gama de categorii de transport DictionaryTransportMode=Raportare intracomunitară - Mod transport DictionaryBatchStatus=Status control calitate lot/serie produs +DictionaryAssetDisposalType=Tip de amortizare active TypeOfUnit=Tip de unitate SetupSaved=Setări salvate SetupNotSaved=Setarea nu a fost salvată @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Modulul Conturi bancare nu este activat ShowBugTrackLink=Arată link-ul "%s" ShowBugTrackLinkDesc=Lasă necompletat pentru a nu afișa acest link, utilizează valoarea 'github' pentru linkul către proiectul Dolibarr sau definiți direct o adresă URL 'https://...' Alerts=Alerte -DelaysOfToleranceBeforeWarning=Durată înainte de afișarea unei alerte pentru: +DelaysOfToleranceBeforeWarning=Se afișează o alertă de avertizare pentru... DelaysOfToleranceDesc=Setați întârzierea înainte ca o pictogramă de alertă %s să apară pe ecran pentru ultimul element. Delays_MAIN_DELAY_ACTIONS_TODO=Evenimente planificate (evenimente din agendă) nefinalizate Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Proiectul nu a fost închis la timp @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Ați forțat o traducere nouă pentru cheia de trad TitleNumberOfActivatedModules=Module activate TotalNumberOfActivatedModules=Module activate: %s / %s YouMustEnableOneModule=Trebuie activat cel puţin 1 modul +YouMustEnableTranslationOverwriteBefore=Mai întâi trebuie să activezi suprascrierea traducerii pentru a putea înlocui o traducere  ClassNotFoundIntoPathWarning=Clasa %s nu a fost găsită în calea PHP YesInSummer=Da în vară OnlyFollowingModulesAreOpenedToExternalUsers=Rețineți că doar următoarele module sunt disponibile pentru utilizatorii externi (indiferent de permisiunile acestora) și numai dacă sunt acordate permisiunile următoare:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Filigranul pe facturile schiţă (niciunul dacă e gol) PaymentsNumberingModule=Model de numerotare a plăților 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. ##### Proposals ##### PropalSetup=Configurare modul Oferte Comerciale ProposalsNumberingModules=Modele numerotare Oferte comerciale @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Instalarea sau construirea unui modul extern din aplic HighlightLinesOnMouseHover=Evidențiați liniile tabelului când treceţi cu mouse-ul peste ele HighlightLinesColor=Evidențiere culoare linie la trecerea cu mouse-ul (foloseşte „ffffff” pentru dezactivare) HighlightLinesChecked=Evidențiere culoare linie atunci când este bifată (foloseşte „ffffff” pentru dezactivare) +UseBorderOnTable=Afișare chenare stânga-dreapta în tabele BtnActionColor=Culoarea butonului de acţiune TextBtnActionColor=Culoarea textului butonului de acţiune TextTitleColor=Culoarea textului pentru titlul de pagină @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=Acest câmp conține o referință pentru identificarea liniei. Int Enter0or1=Introdu 0 sau 1 UnicodeCurrency=Introdu aici între paranteze, lista de octeți care reprezintă simbolul monedei. De exemplu: pentru $, introdu [36] - pentru Real brazilian R$ [82,36] - pentru €, introdu [8364] ColorFormat=Culoarea RGB este în format HEX , de exemplu: FF0000 -PictoHelp=Numele pictogramei în format dolibarr ('image.png' dacă se află în directorul temei actuale, 'image.png@nume_modul' dacă se află în directorul /img/ al unui modul) +PictoHelp=Numele pictogramei în format:
    - image.png pentru un fișier imagine din directorul temei curente
    - image.png@module dacă fișierul se află în directorul /img/ al unui modul
    - fa-xxx pentru un FontAwesome fa-xxx picto
    -fonwtawesome_xxx_fa_color_size pentru picto FontAwesome fa-xxx (cu prefix, culoare, dimensiune și set) PositionIntoComboList=Poziția linei în listele combo SellTaxRate=Cote taxe/impozite pe vânzări RecuperableOnly=Da pentru TVA "neperceput, dar recuperabil" dedicat pentru unele regiuni din Franța. Mențineți valoarea "Nu" în toate celelalte cazuri. @@ -1966,6 +1981,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 @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Filtrul Regex pentru a curăța valoarea (COMPANY_A COMPANY_DIGITARIA_CLEAN_REGEX=Flitru Regex pentru curăţarea valorii (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Nu sunt permise duplicate GDPRContact=Responsabilul cu protecția datelor (DPO, confidențialitatea datelor sau contact GDPR ) -GDPRContactDesc=Dacă stocați date despre companii/cetățeni europeni, puteți numi persoana de contact care este responsabilă cu GDPR - Regulamentul general privind protecția datelor aici +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 HelpOnTooltipDesc=Puneți un text sau o cheie de traducere aici pentru ca textul să apară într-o sugestie atunci când acest câmp apare într-un formular YouCanDeleteFileOnServerWith=Puteți șterge acest fișier de pe server din linia de comandă:
    %s @@ -2048,27 +2065,46 @@ 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 CollectNow=Colectați acum -ConfirmCloneEmailCollector=Eşti sigur că vrei să clonezi colectorul de email %s? +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 în agendă. EmailCollectorConfirmCollectTitle=Confirmarea colectării de emailuri -EmailCollectorConfirmCollect=Doriți să rulați acum colectarea pentru acest colector de email-uri? +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=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 +EmailCollectorExampleToCollectJobCandidaturesDesc=Colectează emailuri prin care aplică la ofertele de joburi (Modulul Recrutare trebuie să fie activat). Poți completa acest colector dacă dorești să creezi automat o candidatură pentru o cerere de angajare. Notă: Cu acest exemplu inițial, titlul candidaturii este generat inclusiv email-ul. +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 de un terț, dacă terțul a fost încărcat printr-o operațiune anterioară, fără terț altfel) +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) CodeLastResult=Ultimul cod rezultat NbOfEmailsInInbox=Numărul de email-uri în directorul sursă LoadThirdPartyFromName=Încărcați un terţ căutând în %s (doar încărcare) @@ -2082,14 +2118,14 @@ 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 UseSearchToSelectResource=Utilizați un formular de căutare pentru a alege o resursă (mai degrabă decât o listă derulantă). DisabledResourceLinkUser=Dezactivați funcţia care conectează o resursă la utilizatori DisabledResourceLinkContact=Dezactivați funcţia care conectează o resursă la contacte -EnableResourceUsedInEventCheck=Activează funcţionalitatea de verificare a resurselor în uz pe un eveniment +EnableResourceUsedInEventCheck=Interzice utilizarea aceleiași resurse în același timp în agendă ConfirmUnactivation=Confirmați resetarea modulului OnMobileOnly=Numai pe ecrane mici (smartphone) DisableProspectCustomerType=Dezactivați tipul terțului „Prospect + Client” (deci terțul trebuie să fie „Prospect” sau „Client”, dar nu poate fi ambele) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=Şterge colectorul de email-uri ConfirmDeleteEmailCollector=Eşti sigur că vrei să ştergi acest colector de email-uri? RecipientEmailsWillBeReplacedWithThisValue= E-mailurile destinatarilor vor fi întotdeauna înlocuite cu această valoare AtLeastOneDefaultBankAccountMandatory=Trebuie definit cel puțin 1 cont bancar implicit -RESTRICT_ON_IP=Permiteți accesul doar la un anumit IP gazdă (caracterul wildcard nu este permis, folosiți spațiu între valori). Gol înseamnă că fiecare gazdă poate avea acces. +RESTRICT_ON_IP=Permite accesul API numai la anumite adrese IP ale clientului (caracterul wildcard nu este permis, utilizează spațiu între valori). Gol înseamnă că orice client poate accesa. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=Bazat pe o versiune a librăriei SabreDAV NotAPublicIp=IP non-public @@ -2144,6 +2180,9 @@ 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ț 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. @@ -2185,6 +2224,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 @@ -2206,12 +2246,12 @@ DashboardDisableBlockAdherent=Dezactivare miniatură pentru adeziuni membri DashboardDisableBlockExpenseReport=Dezactivare miniatură pentru rapoarte de cheltuieli DashboardDisableBlockHoliday=Dezactivare miniatură pentru concedii EnabledCondition=Condiția pentru activarea câmpului (dacă nu este activat, vizibilitatea va fi întotdeauna dezactivată) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a doua taxă, trebuie să activezi și prima taxă de vânzare -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a treia taxă, trebuie să activezi și prima taxă de vânzare +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a doua taxă, trebuie să activezi și prima taxă pe vânzări +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a treia taxă, trebuie să activezi și prima taxă pe vânzări LanguageAndPresentation=Limbă şi prezentare SkinAndColors=Temă şi culori -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a doua taxă, trebuie să activezi și prima taxă de vânzare -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a treia taxă, trebuie să activezi și prima taxă de vânzare +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a doua taxă, trebuie să activezi și prima taxă pe vânzări +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Dacă vrei să utilizezi o a treia taxă, trebuie să activezi și prima taxă pe vânzări PDF_USE_1A=Generare PDF în format PDF/A-1b MissingTranslationForConfKey = Lipseşte traducerea pentru %s NativeModules=Module native @@ -2220,3 +2260,50 @@ API_DISABLE_COMPRESSION=Dezactivare compresie răspunsuri API EachTerminalHasItsOwnCounter=Fiecare terminal foloseşte propriul contor. FillAndSaveAccountIdAndSecret=Completează și salvează mai întâi ID-ul contului și cheia secretă PreviousHash=Hash anterior +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. + +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 +IconOnlyTextOnHover=Doar pictogramă - Textul pictogramei apare dedesubt la plutirea cu mouse-ul pe pictogramă +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 +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 diff --git a/htdocs/langs/ro_RO/agenda.lang b/htdocs/langs/ro_RO/agenda.lang index 7b8c150c695..1c8a6fd6bf8 100644 --- a/htdocs/langs/ro_RO/agenda.lang +++ b/htdocs/langs/ro_RO/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Contractul %s a fost șters PropalClosedSignedInDolibarr=Oferta comercială %s a fost semnată PropalClosedRefusedInDolibarr=Oferta comercială %s a fost refuzată PropalValidatedInDolibarr=Oferta comercială %s a fost validată +PropalBackToDraftInDolibarr=Oferta %s a fost reîntoarsă la statusul schiță PropalClassifiedBilledInDolibarr=Oferta comercială %s a fost clasificată ca facturată InvoiceValidatedInDolibarr=Factura %s a fost validată InvoiceValidatedInDolibarrFromPos=Factura %s a fost validată din POS @@ -56,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ă @@ -66,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ă +ReceptionClassifyClosedInDolibarr=Recepția %s a fost clasificată ca închisă OrderCreatedInDolibarr=Comanda %s a fost creată OrderValidatedInDolibarr=Comanda %s a fost validată OrderDeliveredInDolibarr=Comanda %s a fost clasificată ca livrată @@ -157,6 +160,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 @@ -172,3 +176,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/assets.lang b/htdocs/langs/ro_RO/assets.lang index c65786f8371..f94f78f5e27 100644 --- a/htdocs/langs/ro_RO/assets.lang +++ b/htdocs/langs/ro_RO/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 = Active -NewAsset = Activ nou -AccountancyCodeAsset = Cod contabil (activ) -AccountancyCodeDepreciationAsset = Cod contabil (contul de activ al deprecierii) -AccountancyCodeDepreciationExpense = Cod contabil (cont de cheltuieli de amortizare) -NewAssetType=Tip de activ nou -AssetsTypeSetup=Setarea tipului de activ -AssetTypeModified=Tipul activului a fost modificat -AssetType=Tipul activului +NewAsset=Activ nou +AccountancyCodeAsset=Cod contabil (activ) +AccountancyCodeDepreciationAsset=Cod contabil (contul de activ al deprecierii) +AccountancyCodeDepreciationExpense=Cod contabil (cont de cheltuieli de amortizare) AssetsLines=Active DeleteType=Şterge -DeleteAnAssetType=Ștergeți un tip de activ -ConfirmDeleteAssetType=Sigur doriți să ștergeți acest tip de activ? -ShowTypeCard=Arată tipul '%s' +DeleteAnAssetType=Şterge un model de activ +ConfirmDeleteAssetType=Sigur vrei să ștergi acest model de activ? +ShowTypeCard=Afişare model '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Active +ModuleAssetsName=Active # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Descrierea activelor +ModuleAssetsDesc=Descrierea activelor # # Admin page # -AssetsSetup = Configurarea activelor -Settings = Configurări -AssetsSetupPage = Pagină de configurare a activelor -ExtraFieldsAssetsType = Atribute complementare (tip de activ) -AssetsType=Tipul activului -AssetsTypeId=ID tip de activ -AssetsTypeLabel=Etichetă tip de activ -AssetsTypes=Tipuri de active +AssetSetup=Configurare active +AssetSetupPage=Pagină de configurare active +ExtraFieldsAssetModel=Atribute complementare (model Active) + +AssetsType=Model active +AssetsTypeId=Id model activ +AssetsTypeLabel=Etichetă model activ +AssetsTypes=Modele de active +ASSET_ACCOUNTANCY_CATEGORY=Grupă contabilă pentru active fixe # # Menu # -MenuAssets = Active -MenuNewAsset = Activ nou -MenuTypeAssets = Tip active -MenuListAssets = Listă -MenuNewTypeAssets = Nou -MenuListTypeAssets = Listă +MenuAssets=Active +MenuNewAsset=Activ nou +MenuAssetModels=Modele active +MenuListAssets=Listă +MenuNewAssetModel=Model nou de activ +MenuListAssetModels=Listă # # Module # -Asset=Activ -NewAssetType=Tip de activ nou -NewAsset=Activ nou -ConfirmDeleteAsset=Sigur doriți să ștergeți acest activ? +ConfirmDeleteAsset=Sigur vrei să ştergi acest activ? + +# +# Tab +# +AssetDepreciationOptions=Opţiuni de amortizare +AssetAccountancyCodes=Conturi contabile +AssetDepreciation=Amortizare + +# +# Asset +# +Asset=Active +Assets=Active +AssetReversalAmountHT=Valoare ajustare (fără taxe) +AssetAcquisitionValueHT=Valoare de achiziţie (fără taxe) +AssetRecoveredVAT=TVA recuperat +AssetReversalDate=Dată ajustare +AssetDateAcquisition=Dată achiziţie +AssetDateStart=Dată punere în funcţiune +AssetAcquisitionType=Tip de achiziţie +AssetAcquisitionTypeNew=Nou +AssetAcquisitionTypeOccasion=Utilizat +AssetType=Tip de active +AssetTypeIntangible=Necorporal +AssetTypeTangible=Corporal +AssetTypeInProgress=În curs +AssetTypeFinancial=Financiar +AssetNotDepreciated=Ne-depreciat +AssetDisposal=Casare +AssetConfirmDisposalAsk=Eşti sigur că vrei să amortizezi activul %s? +AssetConfirmReOpenAsk=Eşti sigur că vrei să re-deschizi activul %s? + +# +# Asset status +# +AssetInProgress=În curs +AssetDisposed=Casat +AssetRecorded=Contabilizat + +# +# Asset disposal +# +AssetDisposalDate=Dată casare +AssetDisposalAmount=Valoare de casare +AssetDisposalType=Tip de casare +AssetDisposalDepreciated=Amortizare la anul de transfer +AssetDisposalSubjectToVat=Amortizare supusă TVA-ului + +# +# Asset model +# +AssetModel=Model activ +AssetModels=Modele de active + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Amortizare economică +AssetDepreciationOptionAcceleratedDepreciation=Amortizare accelerată (taxă) +AssetDepreciationOptionDepreciationType=Tip de amortizare +AssetDepreciationOptionDepreciationTypeLinear=Liniară +AssetDepreciationOptionDepreciationTypeDegressive=Degresivă +AssetDepreciationOptionDepreciationTypeExceptional=Excepţională +AssetDepreciationOptionDegressiveRate=Cotă amortizare degresivă +AssetDepreciationOptionAcceleratedDepreciation=Amortizare accelerată (taxă) +AssetDepreciationOptionDuration=Durată +AssetDepreciationOptionDurationType=Tip durată amortizare +AssetDepreciationOptionDurationTypeAnnual=Anual +AssetDepreciationOptionDurationTypeMonthly=Lunar +AssetDepreciationOptionDurationTypeDaily=Zilnic +AssetDepreciationOptionRate=Cotă (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Bază de amortizare (fără TVA) +AssetDepreciationOptionAmountBaseDeductibleHT=Bază deductibilă (fără TVA) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Valoare totală amortizare (fără TVA) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Amortizare economică +AssetAccountancyCodeAsset=Active +AssetAccountancyCodeDepreciationAsset=Amortizare +AssetAccountancyCodeDepreciationExpense=Cheltuială cu amortizarea +AssetAccountancyCodeValueAssetSold=Valoare activ casat +AssetAccountancyCodeReceivableOnAssignment=Creanţă din casare +AssetAccountancyCodeProceedsFromSales=Încasări din casare +AssetAccountancyCodeVatCollected=TVA colectat +AssetAccountancyCodeVatDeductible=TVA recuperat pe active +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Amortizare accelerată (taxă) +AssetAccountancyCodeAcceleratedDepreciation=Cont +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Cheltuială cu amortizarea +AssetAccountancyCodeProvisionAcceleratedDepreciation=Amortizare accelerată/Provizionare + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Baza de amortizare (fără TVA) +AssetDepreciationBeginDate=Început amortizare pe +AssetDepreciationDuration=Durată +AssetDepreciationRate=Cotă (%%) +AssetDepreciationDate=Dată amortizare +AssetDepreciationHT=Amortizare (fără TVA) +AssetCumulativeDepreciationHT=Amortizare cumulată (fără TVA) +AssetResidualHT=Valoare reziduală (fără TVA) +AssetDispatchedInBookkeeping=Amortizare înregistrată +AssetFutureDepreciationLine=Amortizare în viitor +AssetDepreciationReversal=Ajustare + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Id sau model activ nu a fost furnizat +AssetErrorFetchAccountancyCodesForMode=Eroare la preluarea conturilor contabile pentru metoda de amortizare '%s' +AssetErrorDeleteAccountancyCodesForMode=Eroare la ștergerea conturilor contabile pentru metoda de amortizare '%s'. +AssetErrorInsertAccountancyCodesForMode=Eroare la introducerea conturilor contabile pentru metoda de amortizare '%s' +AssetErrorFetchDepreciationOptionsForMode=Eroare la preluarea opțiunilor pentru metoda de amortizare '%s'. +AssetErrorDeleteDepreciationOptionsForMode=Eroare la ștergerea opțiunilor pentru metoda de amortizare '%s'. +AssetErrorInsertDepreciationOptionsForMode=Eroare la inserarea opțiunilor pentru metoda de amortizare '%s'. +AssetErrorFetchDepreciationLines=Eroare la preluarea liniilor de amortizare înregistrate +AssetErrorClearDepreciationLines=Eroare la curățarea liniilor de amortizare înregistrate (ajustări și amortizări viitoare) +AssetErrorAddDepreciationLine=Eroare la adăugarea unei linii de amortizare +AssetErrorCalculationDepreciationLines=Eroare la calcularea liniilor de amortizare (de recuperare și viitoare) +AssetErrorReversalDateNotProvidedForMode=Data de ajustare nu este prevăzută pentru metoda de amortizare '%s' +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Data de ajustare trebuie să fie mai mare sau egală cu începutul anului fiscal curent pentru metoda de amortizare '%s' +AssetErrorReversalAmountNotProvidedForMode=Pentru metoda de amortizare '%s' nu este prevăzută valoarea de ajustare. +AssetErrorFetchCumulativeDepreciation=Eroare la preluarea valorii amortizare acumulată din linia de amortizare +AssetErrorSetLastCumulativeDepreciation=Eroare la înregistrarea ultimei valori de amortizare acumulată diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang index 27706fac7b7..19400a27dd4 100644 --- a/htdocs/langs/ro_RO/banks.lang +++ b/htdocs/langs/ro_RO/banks.lang @@ -95,11 +95,11 @@ LineRecord=Tranzacţie AddBankRecord=Adaugă intrare AddBankRecordLong=Adăugă intrare manuală Conciliated=Reconciliat -ConciliatedBy=Reconciliat de +ReConciliedBy=Reconciliat de DateConciliating=Dată reconciliere BankLineConciliated=Tranzacţie reconciliată cu extras bancar -Reconciled=Reconciliat -NotReconciled=Ne-reconciliat +BankLineReconciled=Reconciliat +BankLineNotReconciled=Ne-reconciliat CustomerInvoicePayment=Plată client SupplierInvoicePayment=Plată furnizor SubscriptionPayment=Plată cotizaţie @@ -172,8 +172,8 @@ SEPAMandate=Mandat SEPA YourSEPAMandate=Mandatul tău SEPA FindYourSEPAMandate=Acesta este mandatul tău SEPA pentru a autoriza compania noastră să efectueze un ordin de debitare directă către banca ta. Returnaţi-l semnat (document scanat semnat) sau trimiteți-l prin poștă la AutoReportLastAccountStatement=Completați automat câmpul "numărul extrasului de cont" cu ultimul număr al declarației atunci când efectuați reconcilierea -CashControl=Control POS casierie -NewCashFence=Deschidere sau închidere nouă a casei de numerar +CashControl=Control numerar POS  +NewCashFence=Control nou numerar (deschidere sau închidere) BankColorizeMovement=Colorează tranzacţiile BankColorizeMovementDesc=Dacă această funcţie este activată, poţi alege o culoare de fundal personalizată pentru tranzacţiile de debit sau de credit BankColorizeMovementName1=Culoarea de fundal pentru tranzacţiile de debit @@ -182,3 +182,7 @@ IfYouDontReconcileDisableProperty= Dacă nu faceți decontări bancare pe unele NoBankAccountDefined=Nu a fost definit niciun cont bancar NoRecordFoundIBankcAccount=Nu s-a găsit nicio înregistrare în contul bancar. În mod obișnuit, acest lucru se întâmplă atunci când o înregistrare a fost ștearsă manual din lista tranzacțiilor din contul bancar (de exemplu, în timpul decontării contului bancar). Un alt motiv este că plata a fost înregistrată când modulul "%s" a fost dezactivat. 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 1e1faff0685..2ac2c5ccf40 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Eroare, factura de corecţie trebuie să aibă o ErrorInvoiceOfThisTypeMustBePositive=Eroare, acets tip de factură trebuie să aibă valori pozitive(sau nule) fară TVA ErrorCantCancelIfReplacementInvoiceNotValidated=Eroare, nu se poate anula o factură care a fost înlocuită cu o altă factură, şi care este încă schiţă ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Această parte sau alta este deja utilizată, astfel încât seria de reduceri nu poate fi eliminată. +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 ActionsOnBill=Evenimente pe factură @@ -282,6 +283,8 @@ RecurringInvoices=Facturi recurente RecurringInvoice=Factură recurentă RepeatableInvoice=Model factura RepeatableInvoices=Modele facturi +RecurringInvoicesJob=Generare facturi recurente (facturi de vânzare) +RecurringSupplierInvoicesJob=Generare facturi recurente (facturi de achiziţie) Repeatable=Model Repeatables=Modele ChangeIntoRepeatableInvoice=Converteşte in model factură @@ -426,14 +429,24 @@ PaymentConditionShort14D=14 zile PaymentCondition14D=14 zile PaymentConditionShort14DENDMONTH=14 zile de la sfârșitul lunii PaymentCondition14DENDMONTH=În termen de 14 zile de la sfârșitul lunii +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozit, reminder la livrare FixAmount=Sumă fixă - 1 linie cu eticheta '%s' VarAmount=Valoare variabilă (%% tot.) VarAmountOneLine=Cantitate variabilă (%% tot.) - 1 rând cu eticheta "%s" VarAmountAllLines=Valoare variabilă (%% tot.) - toate liniile de origine +DepositPercent=Depozitul %% +DepositGenerationPermittedByThePaymentTermsSelected=Acest lucru este permis de metodele de plată selectate +GenerateDeposit=Generare %s%% factură de depozit +ValidateGeneratedDeposit=Validare depozit generat +DepositGenerated=Depozitul a fost generat +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Poți genera automat un depozit doar dintr-o ofertă comercială sau o comandă de vânzare +ErrorPaymentConditionsNotEligibleToDepositCreation=Condițiile de plată alese nu sunt eligibile pentru generarea automată a depozitului # PaymentType 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 @@ -482,6 +495,7 @@ PaymentByChequeOrderedToShort=Plățile cu cec (cu taxe) se fac către SendTo=trimis la PaymentByTransferOnThisBankAccount=Plată prin transfer către următorul cont bancar VATIsNotUsedForInvoice=* TVA neaplicabil art-293B din CGI +VATIsNotUsedForInvoiceAsso=* TVA neaplicabil art-261-7 of CGI LawApplicationPart1=Prin aplicarea legii 80.335 din 12.05.80 LawApplicationPart2=mărfurile rămân în proprietatea LawApplicationPart3=vânzătorul până la plată integrală @@ -599,7 +613,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Factură furnizor ştearsă UnitPriceXQtyLessDiscount=Preţ unitar x Cantitate - Discount CustomersInvoicesArea=Facturare clienţi SupplierInvoicesArea=Facturare furnizori -FacParentLine=Linie de facturare părinte SituationTotalRayToRest=Rest de plată fără taxe PDFSituationTitle=Situaţia nr. %d SituationTotalProgress=Progres total %d %% @@ -607,3 +620,5 @@ SearchUnpaidInvoicesWithDueDate=Căutare facturi neplătite cu o dată scadentă NoPaymentAvailable=Nicio plată disponibilă pentru %s PaymentRegisteredAndInvoiceSetToPaid=Plata a fost înregistrată și factura %s setată ca la plătită 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) diff --git a/htdocs/langs/ro_RO/boxes.lang b/htdocs/langs/ro_RO/boxes.lang index c88b68e89db..09d942ad92e 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 diff --git a/htdocs/langs/ro_RO/cashdesk.lang b/htdocs/langs/ro_RO/cashdesk.lang index 8858b203ac7..6b76fe1585a 100644 --- a/htdocs/langs/ro_RO/cashdesk.lang +++ b/htdocs/langs/ro_RO/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Subsol AmountAtEndOfPeriod=Valoare la sfârșitul perioadei (zi, lună sau an) TheoricalAmount=Valoare teoretică RealAmount=Sumă reală -CashFence=Închidere casierie -CashFenceDone=Închiderea casei de marcat efectuată pentru perioada respectivă +CashFence=Închidere sertar de numerar +CashFenceDone=Închiderea sertarului de numerar a fost făcută pentru perioada respectivă NbOfInvoices=Nr. facturi Paymentnumpad=Tipul de pad utilizat pentru introducerea plăţii Numberspad=Pad numeric @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 = Tag-ul
    {TN} este utilizat pentru adăugar TakeposGroupSameProduct=Grupează liniile cu produse identice StartAParallelSale=Iniţiază o vânzare paralelă SaleStartedAt=Vânzarea a început la %s -ControlCashOpening=Deschide popup-ul "Control numerar" când se deschide POS-ul -CloseCashFence= Închideți controlul casieriei +ControlCashOpening=Deschide fereastra pop-up "Control sertar numerar" când se deschide POS-ul +CloseCashFence=Control închidere sertar de numerar CashReport=Raport numerar MainPrinterToUse=Imprimantă principală de utilizat OrderPrinterToUse=Imprimantă utilizată pentru comenzi @@ -134,3 +134,6 @@ PrintWithoutDetailsButton=Adaugare buton "Tipărire fără detalii" PrintWithoutDetailsLabelDefault=Etichetă linie în mod implicit la imprimarea fără detalii 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 98ae521426f..78dc6fbb7d6 100644 --- a/htdocs/langs/ro_RO/categories.lang +++ b/htdocs/langs/ro_RO/categories.lang @@ -90,11 +90,14 @@ CategorieRecursivHelp=Dacă opțiunea este activă, când adăugați un produs AddProductServiceIntoCategory=Adaugă următoarele produse/servicii AddCustomerIntoCategory=Atribuire categorie clientului AddSupplierIntoCategory=Atribuire categorie furnizorului +AssignCategoryTo=Asignare categorie la 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/companies.lang b/htdocs/langs/ro_RO/companies.lang index d20e2dca917..765ee3631d5 100644 --- a/htdocs/langs/ro_RO/companies.lang +++ b/htdocs/langs/ro_RO/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Prospecţi IdThirdParty=ID Terţ IdCompany=ID Societate IdContact=Id Contact +ThirdPartyAddress=Adresă terţ ThirdPartyContacts=Contacte terți ThirdPartyContact=Contact/adresă terț Company=Societate @@ -51,19 +52,22 @@ CivilityCode=Mod adresare RegisteredOffice=Sediu social Lastname=Nume Firstname=Prenume +RefEmployee=Referinţă angajat +NationalRegistrationNumber=Număr de înregistrare naţional PostOrFunction=Funcţie UserTitle=Titlu 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Cod furnizor invalid CustomerCodeModel=Model cod client SupplierCodeModel=Model cod furnizor Gencod=Cod de bare +GencodBuyPrice=Cod de bare pentru referinţă de preţ ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1 (Registrul Comerţului) ProfId2CM=Id. prof. 2 (Nr. contribuabil) -ProfId3CM=Id. prof. 3 (Decret de înfiinţare) -ProfId4CM=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=Nr. decret de creaţie +ProfId4ShortCM=Nr. Certificat de depozit +ProfId5ShortCM=Altele ProfId6ShortCM=- ProfId1CO=Prof. Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Listă terți ShowCompany=Terţi ShowContact=Contact-Adresă ContactsAllShort=Toate (fără filtru) -ContactType=Tip contact +ContactType=Rol contact ContactForOrders=Contact comenzi ContactForOrdersOrShipments=Contact comenzi sau livrări ContactForProposals=Contact ofertă comercială diff --git a/htdocs/langs/ro_RO/compta.lang b/htdocs/langs/ro_RO/compta.lang index 338aa10ddae..d5ea56b4144 100644 --- a/htdocs/langs/ro_RO/compta.lang +++ b/htdocs/langs/ro_RO/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Sigur doriți să clasificați acest salariu pe card drept plă DeleteSocialContribution=Şterge o plată de taxe sociale sau fiscale DeleteVAT=Şterge o declaraţie de TVA DeleteSalary=Şterge un card de salarii +DeleteVariousPayment=Şterge plată diversă ConfirmDeleteSocialContribution=Sigur doriți să ștergeți această plată pentru taxa fiscală/socială? ConfirmDeleteVAT=Sigur doriți să ștergeți această declarație de TVA? -ConfirmDeleteSalary=Sigur doriți să ștergeți acest salariu? +ConfirmDeleteSalary=Sigur vrei să ştergi acest salariu? +ConfirmDeleteVariousPayment=Sigur vrei să ştergi această plată diversă? ExportDataset_tax_1=Taxe sociale și fiscale și plăți CalcModeVATDebt=Mod %s TVA pe baza contabilității de angajament %s. CalcModeVATEngagement=Mod %s TVA pe bază venituri-cheltuieli%s. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Cifra de afaceri pe achiziţii facturate ReportPurchaseTurnoverCollected=Cifra de afaceri colectată din achiziţii IncludeVarpaysInResults = Include plăţile diverse în rapoarte IncludeLoansInResults = Includeți creditele - împrumuturile în rapoarte -InvoiceLate30Days = Facturi întârziate (> 30 zile) -InvoiceLate15Days = Facturi întârziate (15 - 30 zile) -InvoiceLateMinus15Days = Facturi întârziate (< 15 zile) +InvoiceLate30Days = Întârziat (> 30 zile) +InvoiceLate15Days = Întârziat (15 - 30 zile) +InvoiceLateMinus15Days = Întârziat (< 15 zile) InvoiceNotLate = De încasat (< 15 zile) InvoiceNotLate15Days = De încasat (15 - 30 zile) InvoiceNotLate30Days = De încasat (> 30 zile) diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang index bb74b86bc27..fd66cb4e4e7 100644 --- a/htdocs/langs/ro_RO/errors.lang +++ b/htdocs/langs/ro_RO/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Adresa de email %s pare incorectă (domeniul nu are o înregist ErrorBadUrl=Url-ul %s este incorect ErrorBadValueForParamNotAString=Valoare greșită pentru parametru. Se adaugă, în general, atunci când traducerea lipsește. ErrorRefAlreadyExists=Referinţa %s există deja. +ErrorTitleAlreadyExists=Titlul %s există deja. ErrorLoginAlreadyExists=Login-ul %s există deja. ErrorGroupAlreadyExists=Grupul %s există deja. ErrorEmailAlreadyExists=Email-ul %s există deja. @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Un fişier cu numele %s există deja. ErrorPartialFile=Fişierul nu a fost recepţionat complet de server. ErrorNoTmpDir=Directorul temporar %s nu există. ErrorUploadBlockedByAddon=Încărcarea este blocată de un plugin PHP/Apache. -ErrorFileSizeTooLarge=Dimensiunea fişierului este prea mare. +ErrorFileSizeTooLarge=Dimensiunea fișierului este prea mare sau fișierul nu este furnizat. ErrorFieldTooLong=Câmpul %s este prea lung. ErrorSizeTooLongForIntType=Dimensiunea este prea mare pentru tipul int (%s cifre maxim) ErrorSizeTooLongForVarcharType=Dimensiune prea mare pentru tipul string(%s caractere maxim) @@ -91,6 +92,7 @@ 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ă ErrorsOnXLines=%s erori găsite @@ -269,7 +271,7 @@ 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. @@ -277,11 +279,23 @@ 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 +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 +ErrorPaymentInBothCurrency=Eroare, toate sumele trebuiesc introduse în aceiaşi coloană +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Încerci să plăteşti facturile în moneda %s dintr-un cont cu moneda%s  +ErrorInvoiceLoadThirdParty=Nu se poate încărca obiectul terț pentru factura "%s" +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 # 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. @@ -311,6 +325,7 @@ 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  # Validate RequireValidValue = Valoare invalidă diff --git a/htdocs/langs/ro_RO/eventorganization.lang b/htdocs/langs/ro_RO/eventorganization.lang index e82c24945da..ad2838e2a78 100644 --- a/htdocs/langs/ro_RO/eventorganization.lang +++ b/htdocs/langs/ro_RO/eventorganization.lang @@ -37,7 +37,8 @@ EventOrganization=Organizare eveniment Settings=Configurări EventOrganizationSetupPage = Pagină de configurare Organizare evenimente EVENTORGANIZATION_TASK_LABEL = Etichetă task-uri de creat automat atunci când proiectul este validat  -EVENTORGANIZATION_TASK_LABELTooltip = Când validezi un eveniment organizat, unele task-uri pot fi create automat în proiect

    De exemplu:
    Apel telefonic pentru conferință
    Apel telefonic pentru Stand
    Primire apel telefonic pentru conferințe
    Primire apel telefonic pentru Stand
    Deschidere înscrieri la evenimente pentru participanți
    Trimitere remindere eveniment către speaker-i
    Trimitere reminder eveniment către gazdă stand
    Trimitere reminder eveniment către participanți +EVENTORGANIZATION_TASK_LABELTooltip = Când validați un eveniment de organizare, unele task-uri pot fi create automat în proiect.

    De exemplu:
    Apelare telefonică pentru conferințe
    Apelare telefonică pentru stand-uri
    Validare propuneri pentru conferințe
    Validare aplicare pentru stand-uri
    Deschidere înscriere la la eveniment pentru participanți
    Trimitere reminder eveniment pentru speaker-i
    Trimitere reminder eveniment pentru găzduitorii de stand-uri
    Trimitere reminder eveniment către participanți +EVENTORGANIZATION_TASK_LABELTooltip2=Lasă necompletat dacă nu ai nevoie să creezi task-uri în mod automat. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Categorie de adăugat terților creaţi automat atunci când cineva sugerează o conferință EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Categorie de adăugat terților creaţi automat atunci când propun un stand EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Șablon email de trimis după primirea unei sugestii de conferință. @@ -59,6 +60,8 @@ 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 @@ -138,6 +141,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ţă @@ -165,3 +169,4 @@ EmailCompanyForInvoice=Email companie (pentru facturare, dacă diferă de cel al 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ă NoPublicActionsAllowedForThisEvent=Nu sunt acțiuni publice deschise pentru acest eveniment +MaxNbOfAttendees=Număr maxim de participanți diff --git a/htdocs/langs/ro_RO/exports.lang b/htdocs/langs/ro_RO/exports.lang index ee04934f08b..eac23ce799a 100644 --- a/htdocs/langs/ro_RO/exports.lang +++ b/htdocs/langs/ro_RO/exports.lang @@ -53,8 +53,8 @@ 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 -DownloadEmptyExample=Descărcare fișier șablon cu informații despre conținutul câmpului -StarAreMandatory=* sunt câmpuri obligatorii +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... ChooseFileToImport=Încărcați fișierul, apoi dați clic pe pictograma %s pentru a selecta fișierul ca sursă de import... SourceFileFormat=Format fişier sursă @@ -135,3 +135,6 @@ NbInsert=Număr linii inserate: %s NbUpdate=Număr linii 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: 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/hrm.lang b/htdocs/langs/ro_RO/hrm.lang index e96b565427f..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 @@ -20,13 +20,14 @@ Employee=Angajat NewEmployee=Angajat nou ListOfEmployees=Lista angajaţilor HrmSetup=Configurare Modul HRM -HRM_MAXRANK=Rang maxim pentru abilitate +SkillsManagement=Management abilităţi +HRM_MAXRANK=Numărul maxim de niveluri pentru a clasifica o abilitate HRM_DEFAULT_SKILL_DESCRIPTION=Descriere implicită a rangurilor la crearea de abilități deplacement=Schimb DateEval=Dată evaluare JobCard=Fişă job -Job=Job -Jobs=Joburi +JobPosition=Job +JobsPosition=Joburi NewSkill=Aptitudine nouă SkillType=Tip aptitudine Skilldets=Listă ranguri pentru această abilitate @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Eşti sigur că vrei să validezi această evaluare cu EvaluationCard=Fişă evaluare RequiredRank=Rang necesar pentru acest post EmployeeRank=Rang angajat pentru această abilitate -Position=Funcţie -Positions=Poziţii -PositionCard=Fişă poziţie - post +EmployeePosition=Funcţie angajat +EmployeePositions=Funcţii angajaţi EmployeesInThisPosition=Angajaţii în această poziţie - funcţie group1ToCompare=Grup de utilizatori de analizat group2ToCompare=Grup de utilizatori secundar pentru comparare @@ -70,12 +70,23 @@ 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 HowManyUserWithThisMaxNote=Număr de utilizatori cu acest rang HighestRank=Cel mai mare rang SkillComparison=Comparaţie aptitudini +ActionsOnJob=Evenimente pe acest job +VacantPosition=post vacant +VacantCheckboxHelper=Bifarea acestei opțiuni va afișa posturile neocupate (posturile vacante) +SaveAddSkill = Aptitudine(i) adăugat +SaveLevelSkill = Nivel aptitudine(i) salvat +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 e4d18a7c931..7c89d198bf5 100644 --- a/htdocs/langs/ro_RO/install.lang +++ b/htdocs/langs/ro_RO/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Memoria max de sesiune din PHP este setată la %s. Acest lucr PHPMemoryTooLow=Memoria maximă a sesiunii PHP este setată la %s octeți. Această valoare este prea mică. Schimbați în php.ini pentru a seta parametrul memory_limit la cel puțin %s octeți. Recheck=Faceți clic aici pentru un test mai detaliat ErrorPHPDoesNotSupportSessions=Instalarea ta PHP nu acceptă sesiuni. Această caracteristică este necesară pentru a permite sistemului să funcționeze. Verificați configurarea PHP și permisiunile directorului sesiunilor. -ErrorPHPDoesNotSupportGD=Instalarea PHP nu suportă funcții grafice GD. Nu vor fi disponibile grafice. -ErrorPHPDoesNotSupportCurl=Instalarea ta PHP nu suportă Curl. -ErrorPHPDoesNotSupportCalendar=Versiunea ta de PHP nu suportă extensii calendar. -ErrorPHPDoesNotSupportUTF8=Instalarea ta PHP nu suportă funcții UTF8. Sistemul nu poate funcționa corect. Rezolvați acest lucru înainte de a instala. -ErrorPHPDoesNotSupportIntl=Versiunea ta de PHP nu suportă funcţii Intl. -ErrorPHPDoesNotSupportMbstring=Configurarea PHP nu are suport pentru funcţiile mbstring. -ErrorPHPDoesNotSupportxDebug=Versiunea ta de PHP nu suportă funcţii de depanare extinse. ErrorPHPDoesNotSupport=Versiunea ta de PHP nu suportă funcţii %s. ErrorDirDoesNotExists=Directorul %s nu există. ErrorGoBackAndCorrectParameters=Întoarceți-vă și verificați/corectați parametrii. @@ -30,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 04476dcfd4e..ecbfb5e2358 100644 --- a/htdocs/langs/ro_RO/interventions.lang +++ b/htdocs/langs/ro_RO/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Şablon intervenţie ToCreateAPredefinedIntervention=Pentru a crea o intervenţie predefinită sau recurentă, creează o intervenţie obişnuită şi converteşte-o într-un şablon ConfirmReopenIntervention=Eşti sigur că vrei să re-deschizi intervenţia %s? 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ă. 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..8a146e5b36d 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 de capital implicit +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Cont contabil de dobândă implicit +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Cont contabil de asigurare implicit CreateCalcSchedule=Editați angajamentul financiar 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 f66b50ed06a..b9e45cb7e93 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=, @@ -244,6 +250,7 @@ Designation=Descriere DescriptionOfLine=Descriere de linie DateOfLine=Data liniei DurationOfLine=Durata liniei +ParentLine=ID linie părinte Model=Șablonul documentului DefaultModel=Șablonul implicit document Action=Eveniment @@ -517,6 +524,7 @@ or=sau Other=Alt Others=Altele OtherInformations=Alte informații +Workflow=Flux de lucru Quantity=Cantitate Qty=Cant ChangedBy=Modificat de @@ -619,6 +627,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Fişiere şi documente ataşate JoinMainDoc=Alăturați documentului principal +JoinMainDocOrLastGenerated=Trimite documentul principal sau ultimul generat dacă nu este găsit  DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -709,6 +718,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ă @@ -1164,3 +1174,16 @@ NotClosedYet=Neînchis ClearSignature=Resetare semnătură CanceledHidden=Ascunde anulate CanceledShown=Afişează anulate +Terminate=Terminare +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 +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 diff --git a/htdocs/langs/ro_RO/members.lang b/htdocs/langs/ro_RO/members.lang index 3d32a26cba8..cc46ed8c201 100644 --- a/htdocs/langs/ro_RO/members.lang +++ b/htdocs/langs/ro_RO/members.lang @@ -15,7 +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 -MembersCards=Cărţi de vizită pentru membri +MembersCards=Generare carduri pentru membri MembersList=Listă de membri MembersListToValid=Listă membri schiţă (de validat) MembersListValid=Lista de membri validaţi @@ -35,7 +35,8 @@ DateEndSubscription=Dată terminare adeziune EndSubscription=Terminare adeziune SubscriptionId=ID contribuţie WithoutSubscription=Fără contribuţie -MemberId=ID membru +MemberId=Id membru +MemberRef=Ref membru NewMember=Membru nou MemberType=Tip Membru MemberTypeId=ID tip membru @@ -159,11 +160,11 @@ HTPasswordExport=Generare fişier htpassword NoThirdPartyAssociatedToMember=Niciun terţ asociat cu acest membru MembersAndSubscriptions=Membri şi Contribuţii MoreActions=Acţiuni suplimentare la înregistrare -MoreActionsOnSubscription=Acțiune complementară, sugerată implicit la înregistrarea unei contribuții  +MoreActionsOnSubscription=Acțiune complementară sugerată în mod implicit la înregistrarea unei contribuții, efectuată automat la plata online a unei contribuții MoreActionBankDirect=Creați o intrare directă în contul bancar MoreActionBankViaInvoice=Creați o factură și o plată în contul bancar MoreActionInvoiceOnly=Crează o factură fără plată -LinkToGeneratedPages=Generare cărţi de vizită +LinkToGeneratedPages=Generare de cărți de vizită sau carduri cu adresă  LinkToGeneratedPagesDesc=Acest ecran îţi permite să generezi fişiere PDF cu cărţi de vizită pentru toţi membri sau pentru un anumit membru. DocForAllMembersCards=Generează cărţi de vizită pentru toţi membrii DocForOneMemberCards=Generează cărţi de vizită pentru un anumit membru @@ -218,3 +219,5 @@ XExternalUserCreated=%s utilizator(i) externi creaţi ForceMemberNature=Impune natura membrului (Persoană fizică sau Presoană juridică) CreateDolibarrLoginDesc=Crearea unui cont de utilizator pentru membri le permite să se conecteze la aplicație. În funcție de drepturile acordate, aceștia vor putea, de exemplu, să își consulte sau să modifice fișa ei înșiși. 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 diff --git a/htdocs/langs/ro_RO/modulebuilder.lang b/htdocs/langs/ro_RO/modulebuilder.lang index e81b9a6bf84..f2cb75bc24d 100644 --- a/htdocs/langs/ro_RO/modulebuilder.lang +++ b/htdocs/langs/ro_RO/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Acest instrument trebuie folosit numai de utilizatori sau dezvoltatori experimentați. Oferă utilități pentru a construi sau edita propriul modul. Documentația pentru dezvoltarea manuală alternativă se găseşte aici. -EnterNameOfModuleDesc=Introduceți numele modulului/aplicației care va fi creat, fără spații. Utilizați majusculă pentru a separa cuvintele (De exemplu: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Introduceți numele obiectului de creat fără spații. Utilizează majusculă pentru a separa cuvintele (De exemplu: MyObject, Student, Profesor ...). Se va genera și fișierul clasă CRUD, dar și fișierul API, paginile de listare/adăugare/editare/ștergere ale obiectului și fișierele SQL. +EnterNameOfModuleDesc=Introdu numele modulului/aplicației de creat fără spații. Foloseşte majuscule pentru a separa cuvintele (De exemplu: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Introdu numele obiectului de creat fără spații. Foloseşte majuscule pentru a separa cuvinte (De exemplu: MyObject, Student, Teacher...). Se vor genera fișierul clasă CRUD, dar și fișierul API, paginile de listă/adăugare/editare/ștergere obiect și fișierele SQL. +EnterNameOfDictionaryDesc=Introdu numele dicționarului de creat fără spații. Foloseşte majuscule pentru a separa cuvintele (de exemplu: MyDic...). Se va genera fişierul clasă, dar şi fişierul SQL. ModuleBuilderDesc2=Calea unde sunt generate/editate modulele (primul director pentru module externe definite în %s): %s ModuleBuilderDesc3=Module generate/editabile găsite: %s ModuleBuilderDesc4=Un modul este detectat ca "editabil" atunci când fișierul %s există în directorul rădăcină al modulului NewModule=Modul nou NewObjectInModulebuilder=Obiect nou +NewDictionary=Dicţionar nou ModuleKey=Cheie modul ObjectKey=Cheie obiect +DicKey=Cheie dicţionar ModuleInitialized=Modulul a fost inițializat FilesForObjectInitialized=Fișierele pentru noul obiect "%s" au fost inițializate FilesForObjectUpdated=Fișierele pentru obiectul "%s" au fost actualizate (fișierele .sql și fișierul .class.php) @@ -52,7 +55,7 @@ LanguageFile=Fișier pentru limbă ObjectProperties=Proprietăţi obiect ConfirmDeleteProperty=Sigur doriți să ștergeți proprietatea %s? Acest lucru va schimba codul în clasa PHP, dar va elimina și coloana din definiția tabelului de obiect. NotNull=Nu NUL -NotNullDesc=1 = Setează baza de date la NOT NULL. -1 = Permite valorile null și valoarea forțată la NULL dacă este goală ('' sau 0). +NotNullDesc=1=Setare baza de date la NOT NULL, 0=Permite valori nule, -1=Permite valori nule forțând valoarea la NULL dacă este goală ('' sau 0) SearchAll=Folosit pentru "căutare tot" DatabaseIndex=Indexul bazei de date FileAlreadyExists=Fișierul %s există deja @@ -94,7 +97,7 @@ LanguageDefDesc=Introdu în aceste fișiere, toate cheile de traducere și tradu MenusDefDesc=Defineşte aici meniurile generate de modulul tău DictionariesDefDesc=Defineşte aici dicţionarele furnizate de modulul tău PermissionsDefDesc=Defineşte aici noile permisiuni furnizate de modulul tău -MenusDefDescTooltip=Meniurile furnizate de modulul/aplicația dvs. sunt definite în tabloul $this->menus în fișierul de descriere al modulului. Puteți edita manual acest fișier sau puteți utiliza editorul încorporat.

    Notă: odată definit (și reactivat modulul), meniurile sunt vizibile și în editorul de meniu disponibil pentru administratori la %s. +MenusDefDescTooltip=Meniurile furnizate de modul/aplicație sunt definite în matricea $this->menus în fișierul descriptor al modulului. Poți edita manual acest fișier sau utiliza editorul încorporat.

    Notă: Odată definite (și modulul reactivat), meniurile sunt vizibile și în editorul de meniu disponibil utilizatorilor administratori în %s. DictionariesDefDescTooltip=Dicționarele furnizate de modulul/aplicația dvs. sunt definite în tabloul $ this->dictionaries în fișierul de descriere al modulului. Puteți edita manual acest fișier sau puteți utiliza editorul încorporat.

    Notă: Modulul o dată definit (și reactivat), dicționarele lui sunt vizibile și în zona de configurare pentru administratori la %s. PermissionsDefDescTooltip= Permisiunile furnizate de modulul/aplicația dvs. sunt definite în matricea $ this->rights în fișierul de descriere al modulului. Puteți edita manual acest fișier sau puteți utiliza editorul încorporat.

    Notă: Modulul o dată definit (și reactivat), permisiunile sunt vizibile în configurarea de bază a permisiunilor %s. HooksDefDesc=Definiți în proprietatea module_parts['hooks'] , în descriptorul modulului, contextul de cârlige pe care doreşti să îl gestionezi (lista de contexte poate fi găsită printr-o căutare după 'initHooks(' în codul nucleu)
    Editează fișierul cârlig hook pentru a adăuga cod cu funcțiile tale (funcțiile care pot fi legate pot fi găsite printr-o căutare după 'executeHooks' în codul nucleu). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Distruge tabelul dacă este gol) TableDoesNotExists=Tabelul %s nu există TableDropped=Tabelul %s a fost șters InitStructureFromExistingTable=Construiți șirul de structură al unui tabel existent -UseAboutPage=Dezactivați pagina Despre +UseAboutPage=Nu genera pagina Despre UseDocFolder=Dezactivați dosarul de documentare UseSpecificReadme=Utilizați un anumit ReadMe ContentOfREADMECustomized=Notă: Conținutul fișierului README.md a fost înlocuit cu valoarea specifică definită la configurarea ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Utilizează un URL specificat de editor UseSpecificFamily = Utilizează o familie specifică UseSpecificAuthor = Utilizează un autor specific UseSpecificVersion = Utilizează o versiune iniţială specifică -IncludeRefGeneration=Referinţa obiectului trebuie să fie generată automat -IncludeRefGenerationHelp=Bifează aceasta dacă vrei să incluzi cod de management pentru generarea automată a referinţei -IncludeDocGeneration=Vreau să generez documente din obiect +IncludeRefGeneration=Referința obiectului trebuie să fie generată automat prin reguli de numerotare personalizate  +IncludeRefGenerationHelp=Bifează această opțiune dacă vrei să incluzi cod pentru a gestiona automat generarea referinței folosind reguli de numerotare personalizate +IncludeDocGeneration=Vreau să generez documente din șabloane pentru obiect IncludeDocGenerationHelp=Dacă bifaţi, va fi generat cod pentru a adăuga o casetă "Generare document" în înregistrarea respectivă. ShowOnCombobox=Afişează valoare în combox KeyForTooltip=Cheie pentru tooltip @@ -138,10 +141,16 @@ CSSViewClass=CSS pentru vizualizare formular CSSListClass=CSS pentru listă NotEditable=Needitabil ForeignKey=Cheie străină -TypeOfFieldsHelp=Tip de câmpuri:
    varchar (99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php [: 1 [: filter]] ( '1' înseamnă că adăugăm un buton + după combo pentru a crea înregistrarea, 'filtru' poate fi 'status = 1 ȘI fk_user = __USER_ID ȘI entity IN (__SHARED_ENTITIES__)', de exemplu) +TypeOfFieldsHelp=Tip de câmpuri:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1” înseamnă că adăugăm un buton + după combo pentru a crea înregistrarea
    'filter' este o condiție sql, de exemplu: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED_ENTITIES__)' AsciiToHtmlConverter=Convertor ASCII la HTML AsciiToPdfConverter=Convertor ASCII la PDF TableNotEmptyDropCanceled=Tabelul nu este gol. Operaţiunea de drop a fost anulată. ModuleBuilderNotAllowed=Generatorul de module este disponibil, dar nu-ţi este permis să-l utilizezi. ImportExportProfiles=Profile import şi export -ValidateModBuilderDesc=Introdu 1 dacă acest câmp trebuie validat cu $this->validateField() sau 0 dacă este necesară validarea +ValidateModBuilderDesc=Setează la 1 dacă vrei ca metoda $this->validateField() a obiectului să fie apelată pentru a valida conținutul câmpului în timpul inserării sau actualizării. Setează la 0 dacă nu este necesară validarea. +WarningDatabaseIsNotUpdated=Atenţie: baza de date nu este actualizată automat, trebuie să distrugi tabelele și să dezactivezi modulul pentru a recrea tabelele +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 b6473445811..476ca0cc5b3 100644 --- a/htdocs/langs/ro_RO/mrp.lang +++ b/htdocs/langs/ro_RO/mrp.lang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=Pentru o cantitate de dezasamblat din %s ConfirmValidateMo=Eşti sigur că vrei să validezi această Comandă de producţie? ConfirmProductionDesc=Făcând clic pe '%s', veți valida consumul și/sau producția pentru cantitățile stabilite. Acest lucru va actualiza, de asemenea, stocurile și vor înregistra mișcările de stoc. ProductionForRef=Producţia a %s +CancelProductionForRef=Anulare scădere stoc pentru produsul %s +TooltipDeleteAndRevertStockMovement=Șterge linia și inversează mișcarea de stoc AutoCloseMO=Închidere automată Comandă de fabricație dacă se ating cantitățile de consumat și de fabricat NoStockChangeOnServices=Fără modificări de stoc pentru servicii ProductQtyToConsumeByMO=Cantitatea de produs rămasă de consumat pe Comanda de fabricaţie deschisă @@ -107,3 +109,6 @@ THMEstimatedHelp=Această rată face posibilă definirea unui cost prognozat al BOM=Bon de materiale CollapseBOMHelp=Poți defini afișarea implicită a detaliilor nomenclaturii în configurarea modulului BOM MOAndLines=Comenzi de producţie şi linii +MoChildGenerate=Generare Bon consum copil +ParentMo=Bon consum părinte +MOChild=Bon consum copil 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 93bf472c0f7..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ă @@ -68,6 +69,8 @@ CreateOrder=Creare comandă RefuseOrder=Refuz comandă ApproveOrder=Aprobare comandă Approve2Order=Aprobă comanda (nivel doi) +UserApproval=Utilizator pentru aprobare +UserApproval2=Utilizator pentru aprobare (nivel 2) ValidateOrder=Validare comandă UnvalidateOrder=Devalidare comandă DeleteOrder=Ştergere comadă @@ -102,6 +105,8 @@ ConfirmCancelOrder=Sigur doriți să anulați această comandă? ConfirmMakeOrder=Sigur doriți să confirmați că ați făcut această comandă pe %s? GenerateBill=Generare Factură ClassifyShipped=Clasează livrată +PassedInShippedStatus=clasificat ca livrat +YouCantShipThis=Nu se poate clasifica. Verifică permisiunile utilizatorului DraftOrders=Comenzi schiţă DraftSuppliersOrders=Comenzi de achiziţie schiţă OnProcessOrders=Comenzi în curs de procesare diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index 9291e47bab1..29bd7e3ce07 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...sau construiți propriul profil
    (selectarea man DemoFundation=Gestionarea membrilor unui fundaţii DemoFundation2=Gestionaţi membrii şi conturile bancare ale unei fundaţii DemoCompanyServiceOnly=Companie sau freelancer cu vânzare de servicii -DemoCompanyShopWithCashDesk=Gestionaţi un magazin cu casă de marcat +DemoCompanyShopWithCashDesk=Gestionează un magazin cu sertar de numerar DemoCompanyProductAndStocks=Comercializare produse cu POS DemoCompanyManufacturing=Produse fabricate de companie DemoCompanyAll=Companie cu activități multiple (toate modulele principale) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Selectează un obiect pentru a-i vedea statistici 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 conexiune nouă FTP/FTPS +FTPArea=FTP/FTPS +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 diff --git a/htdocs/langs/ro_RO/partnership.lang b/htdocs/langs/ro_RO/partnership.lang index 9764c43c426..a73206f4945 100644 --- a/htdocs/langs/ro_RO/partnership.lang +++ b/htdocs/langs/ro_RO/partnership.lang @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Backlink-uri de verificat PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Nr de zile înainte de anularea unui parteneriat când un abonament a expirat  ReferingWebsiteCheck=Verificare referinţă website ReferingWebsiteCheckDesc=Poți activa o funcție pentru a verifica dacă partenerii tăi au adăugat un backlink către site-ul tău pe website-urile lor.\n  +PublicFormRegistrationPartnerDesc=Sistemul vă poate oferi o adresă URL/un site web public pentru a permite vizitatorilor externi să solicite un parteneriat. # # Object @@ -59,6 +60,12 @@ BacklinkNotFoundOnPartnerWebsite=Backlink-ul nu a fost găsit pe site-ul partene ConfirmClosePartnershipAsk=Sigur vrei să anulezi acest parteneriat? PartnershipType=Tip parteneriat PartnershipRefApproved=Parteneriatul %s a fost aprobat +KeywordToCheckInWebsite=Dacă vrei să verifici dacă un anumit cuvânt cheie este prezent pe site-ul fiecărui partener, definește acest cuvânt cheie aici +PartnershipDraft=Schiţă +PartnershipAccepted=Acceptat +PartnershipRefused=Refuzat +PartnershipCanceled=Anulat +PartnershipManagedFor=Partenerii sunt # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Număr de erori pentru ultima verficare URL LastCheckBacklink=Data ultimei verificări URL ReasonDeclineOrCancel=Motiv respingere -# -# Status -# -PartnershipDraft=Schiţă -PartnershipAccepted=Acceptat -PartnershipRefused=Refuzat -PartnershipCanceled=Anulat -PartnershipManagedFor=Partenerii sunt +NewPartnershipRequest=Solicitare nouă de parteneriat +NewPartnershipRequestDesc=Acest formular îţi permite să soliciţi un parteneriat. Dacă ai nevoie de ajutor pentru a completa acest formular, contactează-ne pe email %s. + 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/products.lang b/htdocs/langs/ro_RO/products.lang index e4f41e550e8..88b786c73b3 100644 --- a/htdocs/langs/ro_RO/products.lang +++ b/htdocs/langs/ro_RO/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Sunteţi sigur că doriţi să ştergeţi această lini ProductSpecial=Special QtyMin= Cantitate minimă de achiziţionat PriceQtyMin=Preţ cantitate minimă -PriceQtyMinCurrency=Preț (monedă) pentru această cantitate. (fără discount) +PriceQtyMinCurrency=Preţ (monedă) pt. această cantitate. +WithoutDiscount=Fără discount VATRateForSupplierProduct=Cota TVA (pentru acest furnizor/produs) DiscountQtyMin=Reducere pentru această cantitate. NoPriceDefinedForThisSupplier=Nu există preț/cantitate definite pentru acest furnizor/produs @@ -261,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 @@ -346,7 +347,7 @@ UseProductFournDesc=Adăugați o caracteristică pentru a defini descrierea prod ProductSupplierDescription=Descrierea furnizorului pentru produs UseProductSupplierPackaging=Utilizați împachetările la prețurile furnizor (recalculați cantitățile în funcție de împachetările stabilite la prețurile de furnizor atunci când adăugați/actualizați linia în documentele furnizorului) PackagingForThisProduct=Împachetare -PackagingForThisProductDesc=Pe comanda de achiziţie, veți comanda automat această cantitate (sau un multiplu al acestei cantități). Nu poate fi mai mică decât cantitatea minimă de achiziţie +PackagingForThisProductDesc=Vei achiziţiona automat un multiplu din această cantitate. QtyRecalculatedWithPackaging=Cantitatea liniei a fost recalculată conform împachetării furnizorului #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=Bifează dacă doreşti un mesaj către utilizator la crearea/va DefaultBOM=Bon de consum implicit DefaultBOMDesc=Bon de consum implicit recomandat pentru fabricarea acestui produs. Acest câmp poate fi setat numai dacă natura produsului este '%s'. Rank=Rang +MergeOriginProduct=Produs duplicat (produsul pe care vrei să-l ştergi) +MergeProducts=Îmbinare produse +ConfirmMergeProducts=Sigur vrei să îmbini produsul ales cu cel actual? Toate obiectele legate (facturi, comenzi, ...) vor fi mutate în produsul curent, după care produsul ales va fi șters. +ProductsMergeSuccess=Produsele au fost îmbinate +ErrorsProductsMerge=Erori la îmbinarea produselor SwitchOnSaleStatus=Comutare status vânzare SwitchOnPurchaseStatus=Comutare status achiziţie StockMouvementExtraFields= Câmpuri suplimentare (mişcare de stoc) +InventoryExtraFields= Extracâmpuri (inventar) +ScanOrTypeOrCopyPasteYourBarCodes=Scanează sau introdu sau copiază/lipeşte codurile de bare +PuttingPricesUpToDate=Actualizare prețuri cu prețurile actuale cunoscute +PMPExpected=PMP aşteptat +ExpectedValuation=Evaluare așteptată +PMPReal=PMP real +RealValuation=Evaluare reală +ConfirmEditExtrafield = Selectare extracâmp care se va modifica +ConfirmEditExtrafieldQuestion = Eşti sigur că vrei să modifici acest extracâmp? +ModifyValueExtrafields = Modificare valoare extracâmp diff --git a/htdocs/langs/ro_RO/projects.lang b/htdocs/langs/ro_RO/projects.lang index 57416e1d619..519c9eacd0e 100644 --- a/htdocs/langs/ro_RO/projects.lang +++ b/htdocs/langs/ro_RO/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Etichetă proiect ProjectsArea=Proiecte ProjectStatus=Status proiect SharedProject=Toată lumea -PrivateProject=Contacte proiect +PrivateProject=Contacte asignate ProjectsImContactFor=Proiecte pentru care sunt persoană de contact în mod explicit AllAllowedProjects=Toate proiectele pe care le pot citi (ale mele + cele publice) AllProjects=Toate proiectele @@ -190,6 +190,7 @@ PlannedWorkload=Volum de lucru planificat PlannedWorkloadShort=Volum de lucru ProjectReferers=Obiecte asociate ProjectMustBeValidatedFirst=Proiectul trebuie validat mai întâi +MustBeValidatedToBeSigned=%s trebuie validată mai întâi pentru a fi setată ca Semnată. FirstAddRessourceToAllocateTime=Atribuie o resursă utilizator ca şi contact al proiectului pentru a aloca timp InputPerDay=Input pe zi InputPerWeek=Input pe saptamană @@ -287,3 +288,9 @@ 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. ProjectsHavingThisContact=Proiecte care au acest contact StartDateCannotBeAfterEndDate=Data de sfârşit nu poate fi înaintea datei de început +ErrorPROJECTLEADERRoleMissingRestoreIt=Rolul "PROJECTLEADER" lipsește sau a fost dezactivat, restaurează dicționarul de tipuri de contacte +LeadPublicFormDesc=Poți activa aici o pagină publică pentru a permite clienților potențiali să te contacteze printr-un formular online public +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 diff --git a/htdocs/langs/ro_RO/propal.lang b/htdocs/langs/ro_RO/propal.lang index 1866ac23e0a..388d721ca19 100644 --- a/htdocs/langs/ro_RO/propal.lang +++ b/htdocs/langs/ro_RO/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Nicio ofertă schiţă CopyPropalFrom=Creare ofertă comercială prin copierea uneia existente CreateEmptyPropal=Creare propunere comercială goală sau dintr-o listă de produse/servicii DefaultProposalDurationValidity=Durata valabilităţii implicite a ofertei (în zile) +DefaultPuttingPricesUpToDate=Actualizare prețuri cu prețurile actuale cunoscute la clonarea unei oferte comerciale, în mod implicit UseCustomerContactAsPropalRecipientIfExist=Utilizați contactul/adresa cu tipul de "Contact urmărire ofertă" dacă este definit în locul adresei terțului ca adresă destinatar a ofertei ConfirmClonePropal=Sigur doriți să clonați oferta comercială %s? ConfirmReOpenProp=Sigur doriți să redeschideți oferta comercială %s? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Acordul scris, ștampila companiei, data și semnătur 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 +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ă IdProduct=ID Produs -PrParentLine=Linie părinte ofertă LineBuyPriceHT=Taxare la preţul net de achiziţie pentru linia respectivă SignPropal=Acceptare ofertă RefusePropal=Refuză oferta Sign=Semnare +NoSign=Setează ca ne-semnat PropalAlreadySigned=Ofertă deja acceptată PropalAlreadyRefused=Ofertă deja refuzată PropalSigned=Ofertă acceptată semnată diff --git a/htdocs/langs/ro_RO/receiptprinter.lang b/htdocs/langs/ro_RO/receiptprinter.lang index 195342d6108..90b9c1c6072 100644 --- a/htdocs/langs/ro_RO/receiptprinter.lang +++ b/htdocs/langs/ro_RO/receiptprinter.lang @@ -1,60 +1,62 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Configurarea modulului Imprimante de bonuri -PrinterAdded=Imprimanta %s adaugata -PrinterUpdated=Imprimanta %s actualizata -PrinterDeleted=Imprimanta %s ştearsă -TestSentToPrinter=Test trimis la Imprimanta %s +ReceiptPrinterSetup=Configurare modul Imprimante de bonuri +PrinterAdded=Imprimanta %s a fost adaugată +PrinterUpdated=Imprimanta %s a fost actualizată +PrinterDeleted=Imprimanta %s a fost ştearsă +TestSentToPrinter=Test trimis la imprimanta %s ReceiptPrinter=Imprimante de bonuri -ReceiptPrinterDesc=Configurarea imprimantelor de bonuri -ReceiptPrinterTemplateDesc=Configurarea șabloanelor -ReceiptPrinterTypeDesc=Descrierea tipului Imprimantei de bonuri -ReceiptPrinterProfileDesc=Descrierea profilului imprimantei de bonuri -ListPrinters=Lista imprimantelor -SetupReceiptTemplate=Configurare Model -CONNECTOR_DUMMY=Dummy Printer -CONNECTOR_NETWORK_PRINT=Imprimanta Retea -CONNECTOR_FILE_PRINT=Imprimanta locala -CONNECTOR_WINDOWS_PRINT=Imprimanta locala Windows +ReceiptPrinterDesc=Configurare imprimante de bonuri +ReceiptPrinterTemplateDesc=Configurare șabloane +ReceiptPrinterTypeDesc=Exemplu de valori posibile pentru câmpul "Parametri" în funcție de tipul de driver +ReceiptPrinterProfileDesc=Descriere profil imprimantă de bonuri +ListPrinters=Listă imprimante +SetupReceiptTemplate=Configurare şablon +CONNECTOR_DUMMY=Imprimantă Dummy +CONNECTOR_NETWORK_PRINT=Imprimantă de reţea +CONNECTOR_FILE_PRINT=Imprimantă locală +CONNECTOR_WINDOWS_PRINT=Imprimantă locală Windows CONNECTOR_CUPS_PRINT=Imprimantă CUPS CONNECTOR_DUMMY_HELP=Imprimantă falsă de test, nu face nimic 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 / Printer Receipt -CONNECTOR_CUPS_PRINT_HELP=nume imprimantă CUPS, exemplu: HPRT_TP805L -PROFILE_DEFAULT=Default Profil -PROFILE_SIMPLE=Simplu Profil -PROFILE_EPOSTEP=Epos Tep Profil -PROFILE_P822D=P822D Profil -PROFILE_STAR=Star Profil -PROFILE_DEFAULT_HELP=Profil Implicit adecvat pentru imprimantele Epson -PROFILE_SIMPLE_HELP=Profil simplu nu există grafică -PROFILE_EPOSTEP_HELP=Epos Tep Profil -PROFILE_P822D_HELP=P822D Profil No Graphics -PROFILE_STAR_HELP=Star Profil +CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer +CONNECTOR_CUPS_PRINT_HELP=Nume imprimantă CUPS, exemplu: HPRT_TP805L +PROFILE_DEFAULT=Profil implicit +PROFILE_SIMPLE=Profil simplu +PROFILE_EPOSTEP=Profil Epos Tep +PROFILE_P822D=Profil P822D +PROFILE_STAR=Profil Star +PROFILE_DEFAULT_HELP=Profil implicit adecvat pentru imprimantele Epson +PROFILE_SIMPLE_HELP=Profil simplu fără grafică +PROFILE_EPOSTEP_HELP=Profil Epos Tep +PROFILE_P822D_HELP=Profil P822D fără grafică +PROFILE_STAR_HELP=Profil Star DOL_LINE_FEED=Sări linia -DOL_ALIGN_LEFT=Aliniaza stanga text -DOL_ALIGN_CENTER=Centreaza text -DOL_ALIGN_RIGHT=Aliniaza dreapta text -DOL_USE_FONT_A=Utilizeaza font A a imprimantei -DOL_USE_FONT_B=Utilizeaza font B a imprimantei -DOL_USE_FONT_C=Utilizeaza font C a imprimantei -DOL_PRINT_BARCODE=Printeaza cod de bare -DOL_PRINT_BARCODE_CUSTOMER_ID=Printeaza cod de bare id client -DOL_CUT_PAPER_FULL=Taie tichet complet -DOL_CUT_PAPER_PARTIAL=Taie tichet partial +DOL_ALIGN_LEFT=Aliniere text stânga +DOL_ALIGN_CENTER=Centrare text +DOL_ALIGN_RIGHT=Aliniere text dreapta +DOL_USE_FONT_A=Utilizare font A imprimantă +DOL_USE_FONT_B=Utilizare font B imprimantă +DOL_USE_FONT_C=Utilizare font C imprimantă +DOL_PRINT_BARCODE=Printează cod de bare +DOL_PRINT_BARCODE_CUSTOMER_ID=Printează cod de bare id client +DOL_CUT_PAPER_FULL=Taie complet bonul +DOL_CUT_PAPER_PARTIAL=Taie parţial bonul DOL_OPEN_DRAWER=Deschide sertarul de bani DOL_ACTIVATE_BUZZER=Activează buzzer -DOL_PRINT_QRCODE=Printeaza cod QR -DOL_PRINT_LOGO=Tipăreşte logo-ul companiei -DOL_PRINT_LOGO_OLD=Printați logo-ul companiei mele (imprimante vechi) +DOL_PRINT_QRCODE=Printează cod QR +DOL_PRINT_LOGO=Tipăreşte logo companie +DOL_PRINT_LOGO_OLD=Printare logo companie (imprimante vechi) DOL_BOLD=Îngroşare DOL_BOLD_DISABLED=Dezactivează îngroşare DOL_DOUBLE_HEIGHT=Înălţime dublă DOL_DOUBLE_WIDTH=Lăţime dublă -DOL_DEFAULT_HEIGHT_WIDTH=Înălțimea și lățimea implicită +DOL_DEFAULT_HEIGHT_WIDTH=Înălțime și lățime implicită DOL_UNDERLINE=Activare subliniere DOL_UNDERLINE_DISABLED= Dezactivare subliniere -DOL_BEEP=Beep +DOL_BEEP=Sunet beep +DOL_BEEP_ALTERNATIVE=Sunet bip (mod alternativ) +DOL_PRINT_CURR_DATE=Tipărește data/ora curentă DOL_PRINT_TEXT=Tipăreşte text DateInvoiceWithTime=Data şi ora facturii YearInvoice=Anul facturii @@ -70,10 +72,10 @@ DOL_VALUE_CUSTOMER_FIRSTNAME=Prenume client DOL_VALUE_CUSTOMER_LASTNAME=Nume client DOL_VALUE_CUSTOMER_MAIL=Email client DOL_VALUE_CUSTOMER_PHONE=Telefon client -DOL_VALUE_CUSTOMER_MOBILE=Mobil client +DOL_VALUE_CUSTOMER_MOBILE=Telefon mobil client DOL_VALUE_CUSTOMER_SKYPE=Skype client DOL_VALUE_CUSTOMER_TAX_NUMBER=Cod TVA client -DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Soldul cont client +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Sold cont client DOL_VALUE_MYSOC_NAME=Denumirea companiei tale VendorLastname=Nume furnizor VendorFirstname=Prenume furnizor diff --git a/htdocs/langs/ro_RO/recruitment.lang b/htdocs/langs/ro_RO/recruitment.lang index 56ec5509ec2..a274703fbae 100644 --- a/htdocs/langs/ro_RO/recruitment.lang +++ b/htdocs/langs/ro_RO/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=Oferta de job este închisă. ExtrafieldsJobPosition=Atribute complementare (oferte job) ExtrafieldsApplication=Atribute complementare (aplicări job) MakeOffer=Fă o ofertă de job +WeAreRecruiting=Recrutăm. Aceasta este o listă de posturi vacante care trebuiesc ocupate... +NoPositionOpen=Niciun post vacant la acest moment 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 934ef465069..b3613cf1713 100644 --- a/htdocs/langs/ro_RO/ticket.lang +++ b/htdocs/langs/ro_RO/ticket.lang @@ -90,15 +90,17 @@ 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=Notificare email de la -TicketEmailNotificationFromHelp=Folosit în mesajul tichetului de răspuns de exemplu -TicketEmailNotificationTo=Notificările trimise pe email la -TicketEmailNotificationToHelp=Trimite notificări prin email la această adresă. +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 TicketNewEmailBodyHelp=Textul specificat aici va fi inserat în emailul care confirmă crearea unui nou tichet din interfața publică. Informațiile privind consultarea tichetului sunt adăugate automat. TicketParamPublicInterface=Setări interfață publică TicketsEmailMustExist=Solicitați o adresă de email existentă pentru a crea un tichet TicketsEmailMustExistHelp=În interfața publică, adresa de email ar trebui să fie deja completată în baza de date pentru a crea un tichet nou. +TicketCreateThirdPartyWithContactIfNotExist=Solicită numele și denumirea companiei pentru adresele de email necunoscute. +TicketCreateThirdPartyWithContactIfNotExistHelp=Verifică dacă există un terț sau o persoană de contact pentru email-ul introdus. Dacă nu, solicită un nume și o denumire de companie pentru a crea un terț cu contact. PublicInterface=Interfață publică TicketUrlPublicInterfaceLabelAdmin=URL alternativ pentru interfața publică TicketUrlPublicInterfaceHelpAdmin=Este posibil să definiți un alias pentru serverul web și astfel să puneți la dispoziție interfața publică cu un alt URL (serverul trebuie să acționeze ca proxy pe acest nou URL) @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Trimite email(uri) atunci când un nou mesaj TicketsPublicNotificationNewMessageHelp=Trimiteți email(uri) când un nou mesaj este adăugat din interfața publică (utilizatorului atribuit sau adreselor de notificări la (actualizare) și/sau email-ului de notificări către) TicketPublicNotificationNewMessageDefaultEmail=Notificări email către (actualizare) TicketPublicNotificationNewMessageDefaultEmailHelp=Trimite un email la această adresă pentru fiecare notificare de mesaj nou dacă tichetul nu are un utilizator atribuit sau dacă utilizatorul nu are niciun email cunoscut. +TicketsAutoReadTicket=Marcare automată tichet ca citit (când este creat din backoffice)  +TicketsAutoReadTicketHelp=Marcare automată tichet ca citit atunci când este creat din backoffice. Când tichetul este creat din interfața publică, tichetul rămâne cu statusul "Necitit". +TicketsDelayBeforeFirstAnswer=Un tichet nou ar trebui să primească un prim răspuns înainte de (ore): +TicketsDelayBeforeFirstAnswerHelp=Dacă un tichet nou nu a primit răspuns după această perioadă de timp (în ore), în vizualizarea listă va fi afișată o pictogramă de avertizare importantă. +TicketsDelayBetweenAnswers=Un tichet nerezolvat nu ar trebui să fie inactiv timp de (ore): +TicketsDelayBetweenAnswersHelp=Dacă un tichet nerezolvat care a primit deja un răspuns nu a mai avut interacțiune după această perioadă de timp (în ore), o pictogramă de avertizare va fi afișată în vizualizarea de tip listă. +TicketsAutoNotifyClose=Notificare automată terţ la închiderea tichetului +TicketsAutoNotifyCloseHelp=Când închizi un tichet, ţi se va propune să trimiți un mesaj uneia dintre persoanele de contact ale terților. La închiderea în masă, un mesaj va fi trimis unei persoane de contact a terțului asociat tichetului. +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. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Sortare după dată ascendent OrderByDateDesc=Sortare după dată descendent ShowAsConversation=Afişare ca listă de conversaţie MessageListViewType=Afişare listă ca tabel +ConfirmMassTicketClosingSendEmail=Trimitere automată email-uri la închiderea tichetelor +ConfirmMassTicketClosingSendEmailQuestion=Vrei să anunți terții când închizi aceste tichete ? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Destinatarul este gol. Nu se trimi TicketGoIntoContactTab=Accesează fila "Contacte" pentru a le selecta TicketMessageMailIntro=Introducere TicketMessageMailIntroHelp=Acest text este adăugat numai la începutul emailului și nu va fi salvat. -TicketMessageMailIntroLabelAdmin=Introducere în mesaj când trimiteți un email -TicketMessageMailIntroText=Salut,
    Un nou răspuns a fost trimis pe tichetul pe care l-ai deschis. Iată mesajul:
    -TicketMessageMailIntroHelpAdmin=Acest text va fi inserat înaintea textului de răspuns la tichet. +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=

    Cu stimă,

    --

    +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. TicketMessageHelp=Numai acest text va fi salvat în lista de mesaje de pe fişa tichetului. @@ -238,9 +254,16 @@ TicketChangeStatus=Modifică starea TicketConfirmChangeStatus=Confirmați modificarea stării: %s? TicketLogStatusChanged=Stare modificată: din %s la %s TicketNotNotifyTiersAtCreate=Nu notificați compania la creare +NotifyThirdpartyOnTicketClosing=Contacte de notificat la închiderea tichetului +TicketNotifyAllTiersAtClose=Toate contactele asociate +TicketNotNotifyTiersAtClose=Niciun contact asociat Unread=Necitită TicketNotCreatedFromPublicInterface=Indisponibil. Tichetul nu a fost creat din interfaţa publică. ErrorTicketRefRequired=Referința de tichet este necesară +TicketsDelayForFirstResponseTooLong=A trecut prea mult timp de la deschiderea tichetului fără niciun răspuns. +TicketsDelayFromLastResponseTooLong=A trecut prea mult timp de la ultimul răspuns pe acest tichet. +TicketNoContractFoundToLink=Nu s-a găsit niciun contract asociat automat la acest tichet. Asociază manual un contract. +TicketManyContractsLinked=Mai multe contracte au fost asociate automat la acest tichet. Asigură-te că verifici contractul care ar trebui să fie ales. # # Logs @@ -268,8 +291,9 @@ TicketNewEmailBody=Acesta este un email automat de confirmare a faptului că aț TicketNewEmailBodyCustomer=Acesta este un email automat de confirmare că un nou tichet a fost creat în contul tău. TicketNewEmailBodyInfosTicket=Informații privind monitorizarea tichetului TicketNewEmailBodyInfosTrackId=Numărul de urmărire a tichetului: %s -TicketNewEmailBodyInfosTrackUrl=Puteți vedea evoluția tichetului făcând clic pe linkul de mai sus. +TicketNewEmailBodyInfosTrackUrl=Poți vedea statusul tichetului făcând clic pe următorul link TicketNewEmailBodyInfosTrackUrlCustomer=Puteți vedea statusul tichetului în interfața specifică făcând clic pe următorul link +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. @@ -291,6 +315,10 @@ NewUser=Utilizator nou NumberOfTicketsByMonth=Număr de tichete pe lună NbOfTickets=Număr de tichete # notifications +TicketCloseEmailSubjectCustomer=Tichet închis +TicketCloseEmailBodyCustomer=Acesta este un mesaj automat pentru a te anunța că tichetul %s tocmai a fost închis. +TicketCloseEmailSubjectAdmin=Tichet închis - Ref %s (ID public tichet %s) +TicketCloseEmailBodyAdmin=Tichetul cu ID #%s a fost închis, vezi detalii: TicketNotificationEmailSubject=Tichetul %s a fost actualizat TicketNotificationEmailBody=Acesta este un mesaj automat care vă anunță că tichetul%s tocmai a fost actualizat TicketNotificationRecipient=Destinatar notificare diff --git a/htdocs/langs/ro_RO/users.lang b/htdocs/langs/ro_RO/users.lang index cf2a7d0fc6a..32f67d51357 100644 --- a/htdocs/langs/ro_RO/users.lang +++ b/htdocs/langs/ro_RO/users.lang @@ -114,7 +114,7 @@ UserLogoff=Deconectare utilizator UserLogged=Utilizator autentificat DateOfEmployment=Data angajării DateEmployment=Loc de muncă, ocupaţie -DateEmploymentstart=Data începerii angajării +DateEmploymentStart=Data începerii angajării DateEmploymentEnd=Data încetării angajării RangeOfLoginValidity=Interval de valabilitate al accesului CantDisableYourself=Nu vă puteți dezactiva propria înregistrare de utilizator @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=În mod implicit, validatorul este supervizorul u UserPersonalEmail=Email personal UserPersonalMobile=Telefon mobil personal WarningNotLangOfInterface=Atenţie, aceasta este limba principală pe care o vorbește utilizatorul, nu limba interfeței pe care a ales să o vadă. Pentru a schimba limba interfeței pentru acest utilizator, accesați fila %s +DateLastLogin=Data ultimei autentificări +DatePreviousLogin=Data autentificării anterioare +IPLastLogin=IP ultima autentificare +IPPreviousLogin=IP autentificare anterioară 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 68137b5531e..0ee249cba29 100644 --- a/htdocs/langs/ro_RO/withdrawals.lang +++ b/htdocs/langs/ro_RO/withdrawals.lang @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Factura de achiziţie cu plata prin transfer de c InvoiceWaitingWithdraw=Factură în așteptarea debitului direct InvoiceWaitingPaymentByBankTransfer=Factură cu transfer de credit în aşteptare 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. ResponsibleUser=Utilizator responsabil @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Data executării CreateForSepa=Creați un fișier de debit direct ICS=Identificator Creditor - ICS +IDS=Identificator debitor END_TO_END=Eticheta "EndToEndId" SEPA XML - Id unic atribuit pentru fiecare tranzacție USTRD=Eticheta XML "nestructurată" SEPA ADDDAYS=Adăugați zile la data de executare @@ -154,3 +156,4 @@ ErrorICSmissing=ICS lipsă în contul bancar %s TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Suma totală a ordinului de debitare directă diferă de suma liniilor WarningSomeDirectDebitOrdersAlreadyExists=Atenţie: Sunt deja ordine de debit direct în așteptare (%s) solicitate pentru suma de %s WarningSomeCreditTransferAlreadyExists=Atenţie: Sunt deja transferuri de credit în așteptare (%s) solicitate pentru suma de %s +UsedFor=Utilizat pentru %s diff --git a/htdocs/langs/ro_RO/workflow.lang b/htdocs/langs/ro_RO/workflow.lang index df82b033501..9da05443cb0 100644 --- a/htdocs/langs/ro_RO/workflow.lang +++ b/htdocs/langs/ro_RO/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crează în mod automat o comandă de vânz descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crează în mod automat o factură pentru client după ce se semnează o propunere comercială (noua factură va avea aceeași valoare ca oferta) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crează automat o factură client după ce un contract este validat descWORKFLOW_ORDER_AUTOCREATE_INVOICE=În mod automat se crează o factură client după ce se închide o comandă de vânzări (noua factură va avea aceeași valoare ca comanda) +descWORKFLOW_TICKET_CREATE_INTERVENTION=La crearea unui tichet, crează automat o intervenţie. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificați oferta comercială sursă asociată ca facturată atunci când comanda de vânzări este setată ca facturată (și dacă valoarea comenzii este aceeași cu valoarea totală a ofertei asociate semnate) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificați oferta comercială sursă asociată ca facturată atunci când factura clientului este validată (și dacă valoarea facturii este aceeași cu valoarea totală a ofertei asociate semnate) @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificați comanda de vânz descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificați comanda de vânzări sursă asociată ca fiind facturată atunci când factura clientului este setată la plată (și dacă valoarea facturii este aceeași cu suma totală a comenzii asociate) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificați comanda de vânzări sursă asociată ca livrată atunci când o livrare este validată (și dacă cantitatea livrată de toate expedițiile este aceeași ca în ordinea de actualizare) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Clasificați comanda de vânzare sursă legată ca fiind expediată atunci când o expediere este închisă (și dacă cantitatea expediată din toate livrările este aceeași ca în comanda actualizată) -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasificați propunerea furnizorului sursă asociată ca fiind facturată atunci când factura furnizorului este validată (și dacă valoarea facturii este aceeași cu valoarea totală a propunerii asociate) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasificați comanda de vânzări sursă asociată ca fiind facturată atunci când factura furnizorului este validată (și dacă valoarea facturii este aceeași cu valoarea totală a comenzii asociate) +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ă +# 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ă # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Închideți toate intervențiile legate de tichet atunci când tichetul este închis 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ă +AutomaticClosing=Închidere automată +AutomaticLinking=Asociere automată diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index a23e3c64515..8a42092c368 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -62,10 +62,10 @@ MainAccountForSubscriptionPaymentNotDefined=Основной бухгалтер AccountancyArea=Область бухгалтерского учета AccountancyAreaDescIntro=Использование модуля бухгалтерского учета осуществляется в несколько этапов: AccountancyAreaDescActionOnce=Следующие действия обычно выполняются один раз или один раз в год ... -AccountancyAreaDescActionOnceBis=Следующие шаги должны быть выполнены, чтобы сэкономить ваше время в будущем, предлагая вам правильную учетную запись по умолчанию при ведении журнала (запись записи в журналах и главной книге) +AccountancyAreaDescActionOnceBis=Следующие шаги должны быть выполнены, чтобы сэкономить ваше время в будущем, предлагая вам автоматически правильную учетную запись по умолчанию при передаче данных в бухгалтерии. AccountancyAreaDescActionFreq=Следующие действия обычно выполняются каждый месяц, неделю или день для очень крупных компаний ... -AccountancyAreaDescJournalSetup=ШАГ %s: Создайте или проверьте содержимое вашего списка журналов из меню %s +AccountancyAreaDescJournalSetup=ШАГ %s: Проверьте содержимое списка журналов в меню %s. AccountancyAreaDescChartModel=ШАГ %s: Убедитесь, что модель плана счетов существует, или создайте ее из меню %s AccountancyAreaDescChart=ШАГ %s: Выберите и|или заполните свой план счетов в меню %s @@ -73,13 +73,13 @@ AccountancyAreaDescVat=ШАГ %s: Определите бухгалтерски AccountancyAreaDescDefault=ШАГ %s: Определите учетные записи по умолчанию. Для этого используйте пункт меню %s. AccountancyAreaDescExpenseReport=ШАГ %s: Определите учетные записи по умолчанию для каждого типа отчета о расходах. Для этого используйте пункт меню %s. AccountancyAreaDescSal=ШАГ %s: Определите учетные записи по умолчанию для выплаты заработной платы. Для этого используйте пункт меню %s. -AccountancyAreaDescContrib=ШАГ %s: Определите счета учета по умолчанию для особых расходов (разных налогов). Для этого используйте пункт меню %s. +AccountancyAreaDescContrib=ШАГ %s: Определите бухгалтерские счета по умолчанию для налогов (специальные расходы). Для этого используйте пункт меню %s. AccountancyAreaDescDonation=ШАГ %s: Определите учетные записи по умолчанию для пожертвований. Для этого используйте пункт меню %s. AccountancyAreaDescSubscription=ШАГ %s: Определите учетные записи по умолчанию для подписки участников. Для этого используйте пункт меню %s. AccountancyAreaDescMisc=ШАГ %s: Определите обязательную учетную запись по умолчанию и учетные записи по умолчанию для разных транзакций. Для этого используйте пункт меню %s. AccountancyAreaDescLoan=ШАГ %s: Определите счета учета по умолчанию для займов. Для этого используйте пункт меню %s. AccountancyAreaDescBank=ШАГ %s: Определите учетные счета и код журнала для каждого банковского и финансового счетов. Для этого используйте пункт меню %s. -AccountancyAreaDescProd=ШАГ %s: Определите учетные записи для своих продуктов/услуг. Для этого используйте пункт меню %s. +AccountancyAreaDescProd=ШАГ %s: Определите учетные записи для ваших продуктов/услуг. Для этого используйте пункт меню %s. AccountancyAreaDescBind=ШАГ %s: проверьте, что привязка между существующими строками %s и учетной записью выполнена, поэтому приложение сможет регистрировать транзакции в Ledger одним щелчком мыши. Полностью отсутствующие привязки. Для этого используйте пункт меню %s. AccountancyAreaDescWriteRecords=ШАГ %s: Записывайте транзакции в регистр. Для этого войдите в меню %s и нажмите кнопку %s. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Закрытие MenuAccountancyValidationMovements=Подтвердить движения ProductsBinding=Аккаунты продуктов TransferInAccounting=Перенос в бухгалтерию -RegistrationInAccounting=Регистрация в бухгалтерии +RegistrationInAccounting=Запись в бухгалтерии Binding=Привязка к счетам CustomersVentilation=Привязка счета клиента SuppliersVentilation=Привязка накладной поставщика @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Привязка отчета о расходах CreateMvts=Создать новую проводку UpdateMvts=Изменить проводку ValidTransaction=Подтвердить проводку -WriteBookKeeping=Регистрировать транзакции в бухгалтерии +WriteBookKeeping=Зафиксировать операции в бухгалтерии Bookkeeping=Бухгалтерская книга BookkeepingSubAccount=Вспомогательная книга AccountBalance=Баланс @@ -161,7 +161,7 @@ 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=Журнал платежей @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Бухгалтерский счет для регис ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Учетная запись для регистрации подписок ACCOUNTING_ACCOUNT_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_PRODUCT_BUY_INTRA_ACCOUNT=Бухгалтерский счет по умолчанию для купленных продуктов в EEC (используется, если не определено в описании продукта) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=По предопределенным группам ByPersonalizedAccountGroups=По индивидуальным группам ByYear=По годам NotMatch=Не задано -DeleteMvt=Удалить из бухгалтерии некоторые строки операций +DeleteMvt=Удалить некоторые строки из бухгалтерии DelMonth=Месяц для удаления DelYear=Год для удаления DelJournal=Журнал для удаления -ConfirmDeleteMvt=При этом будут удалены все операционные строки бухгалтерского учета за год/месяц и/или для определенного журнала (требуется хотя бы один критерий). Вам придется повторно использовать функцию «%s», чтобы удаленная запись вернулась в бухгалтерскую книгу. -ConfirmDeleteMvtPartial=При этом проводка будет удалена из бухгалтерского учета (будут удалены все строки операций, относящиеся к одной проводке). +ConfirmDeleteMvt=Это приведет к удалению всех строк в бухгалтерии за год/месяц и/или для определенного журнала (требуется хотя бы один критерий). Вам придется повторно использовать функцию «%s», чтобы вернуть удаленную запись в бухгалтерскую книгу. +ConfirmDeleteMvtPartial=Это удалит транзакцию из учета (будут удалены все строки, относящиеся к одной и той же транзакции) FinanceJournal=Финансовый журнал ExpenseReportsJournal=Журнал отчетов о расходах DescFinanceJournal=Финансовый журнал, включающий все виды платежей по банковскому счету @@ -278,30 +279,31 @@ DescVentilExpenseReportMore=Если вы настроили учетную за DescVentilDoneExpenseReport=Ознакомьтесь здесь со списком строк отчетов о расходах и счетом учета их комиссий. Closure=Ежегодное закрытие -DescClosure=Проконсультируйтесь здесь о количестве движений по месяцам, которые не подтверждены, и уже открытых финансовых лет. -OverviewOfMovementsNotValidated=Шаг 1 / Обзор перемещений не подтвержден. (Необходимо для закрытия финансового года) -AllMovementsWereRecordedAsValidated=Все движения были зарегистрированы как подтвержденные. -NotAllMovementsCouldBeRecordedAsValidated=Не все движения могут быть зарегистрированы как подтвержденные -ValidateMovements=Подтвердить движения +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Обзор перемещений, не подтвержденных и заблокированных +AllMovementsWereRecordedAsValidated=Все движения были записаны как проверенные и заблокированные. +NotAllMovementsCouldBeRecordedAsValidated=Не все движения могли быть записаны как проверенные и заблокированные +ValidateMovements=Подтвердить и заблокировать запись... DescValidateMovements=Любое изменение или удаление надписей, надписей и удалений будет запрещено. Все записи для упражнения должны быть подтверждены, иначе закрытие будет невозможно. ValidateHistory=Связывать автоматически -AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +AutomaticBindingDone=Выполнено автоматическое связывание (%s) — автоматическое связывание невозможно для некоторых записей (%s) ErrorAccountancyCodeIsAlreadyUse=Ошибка, вы не можете удалить эту учетную запись, потому что она используется -MvtNotCorrectlyBalanced=Движение неправильно сбалансировано. Дебет = %s | Кредит = %s +MvtNotCorrectlyBalanced=Движение неправильно сбалансировано. Дебет = %s и кредит = %s Balancing=Балансировка FicheVentilation=Обязательная карта GeneralLedgerIsWritten=Проводки записываются в бухгалтерскую книгу GeneralLedgerSomeRecordWasNotRecorded=Некоторые проводки не удалось зарегистрировать. Если других сообщений об ошибках нет, вероятно, они уже были занесены в журнал. -NoNewRecordSaved=Больше нет записей для журналирования +NoNewRecordSaved=Нет больше записи для передачи ListOfProductsWithoutAccountingAccount=Список продуктов, не привязанных к какой-либо учетной записи ChangeBinding=Сменить привязку Accounted=Учтено в бухгалтерской книге NotYetAccounted=Еще не переведено в бухгалтерский учет ShowTutorial=Показать учебник NotReconciled=Не согласовано -WarningRecordWithoutSubledgerAreExcluded=Внимание! Все операции без определенной учетной записи вспомогательной книги фильтруются и исключаются из этого представления. +WarningRecordWithoutSubledgerAreExcluded=Предупреждение, все строки без определенной учетной записи вспомогательной книги фильтруются и исключаются из этого представления. +AccountRemovedFromCurrentChartOfAccount=Бухгалтерский счет, которого нет в текущем плане счетов ## Admin BindingOptions=Варианты переплета @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Отключить привязку и ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Отключить привязку и перенос в бухгалтерском учете в отчетах о расходах (отчеты о расходах не будут учитываться в бухгалтерском учете) ## Export -NotifiedExportDate=Пометить экспортированные строки как экспортированные (изменение строк невозможно) -NotifiedValidationDate=Подтвердите экспортированные записи (изменение или удаление строк невозможно) +NotifiedExportDate=Отметить экспортированные строки как Экспортированные (чтобы изменить строку, вам нужно будет удалить всю транзакцию и заново перенести ее в учет) +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=Проверка даты и блокировка ConfirmExportFile=Подтверждение генерации файла экспорта бухгалтерского учета? ExportDraftJournal=Экспорт черновика журнала Modelcsv=Модель экспорта @@ -387,13 +390,28 @@ SaleExport=Продажа на экспорт SaleEEC=Продажа в ЕЭС SaleEECWithVAT=Продажа в ЕЭС с ненулевым НДС, поэтому мы предполагаем, что это НЕ внутриобщинная продажа, а предлагаемая учетная запись является стандартной учетной записью продукта. SaleEECWithoutVATNumber=Продажа в ЕЭС без НДС, но идентификатор плательщика НДС третьей стороны не определен. Мы возвращаемся к учетной записи продукта для стандартных продаж. При необходимости вы можете исправить идентификатор плательщика НДС третьей стороны или учетную запись продукта. -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=Несогласие +AccountancyNoLetteringModified=Согласование не изменено +AccountancyOneLetteringModifiedSuccessfully=Одно согласование успешно изменено +AccountancyLetteringModifiedSuccessfully=%s согласование успешно изменено +AccountancyNoUnletteringModified=Нет несогласованных изменений +AccountancyOneUnletteringModifiedSuccessfully=Один несогласованный успешно изменен +AccountancyUnletteringModifiedSuccessfully=%s успешно изменено несоответствие + +## Confirm box +ConfirmMassUnlettering=Массовое несогласованное подтверждение +ConfirmMassUnletteringQuestion=Вы уверены, что хотите отменить согласование выбранных записей %s? +ConfirmMassDeleteBookkeepingWriting=Подтверждение пакетного удаления +ConfirmMassDeleteBookkeepingWritingQuestion=Это удалит транзакцию из учета (все строки, относящиеся к одной и той же транзакции, будут удалены). Вы уверены, что хотите удалить выбранные записи %s? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Некоторые обязательные шаги настройки не были выполнены, выполните их. ErrorNoAccountingCategoryForThisCountry=Группа учетных записей недоступна для страны %s (см. Домашняя страница - Настройка - Словари) @@ -405,7 +423,11 @@ NoJournalDefined=Журнал не определен Binded=Линии связаны ToBind=Линии для привязки UseMenuToSetBindindManualy=Строки еще не связаны, используйте меню %s, чтобы выполнить привязку вручную -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=К сожалению, этот модуль не совместим с экспериментальной функцией ситуационных счетов. +AccountancyErrorMismatchLetterCode=Несоответствие в коде согласования +AccountancyErrorMismatchBalanceAmount=Баланс (%s) не равен 0 +AccountancyErrorLetteringBookkeeping=Произошли ошибки, связанные с транзакциями: %s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=Бухгалтерские записи diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index af785620da5..5b007b8e214 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/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=Издатель @@ -109,7 +109,7 @@ NextValueForReplacements=Следующее значение (замены) MustBeLowerThanPHPLimit=Примечание: ваша конфигурация PHP в настоящее время ограничивает максимальный размер файлов для загрузки до %s %s, независимо от значения этого параметра. NoMaxSizeByPHPLimit=Примечание: в вашей конфигурации PHP установлено no limit 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= Дополнительные параметры командной строки @@ -267,8 +267,8 @@ 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 +ForDocumentationSeeWiki=Для получения документации пользователя или разработчика (Doc, FAQs...),
    загляните в Dolibarr Wiki: +ForAnswersSeeForum=По любым другим вопросам/помощи вы можете использовать форум Долибарра: HelpCenterDesc1=Вот некоторые ресурсы для получения помощи и поддержки с Dolibarr. HelpCenterDesc2=Некоторые из этих ресурсов доступны только на английском языке . CurrentMenuHandler=Обработчик текущего меню @@ -343,7 +343,7 @@ StepNb=Шаг %s FindPackageFromWebSite=Найдите пакет, который предоставит нужные вам функции (например, на официальном веб-сайте %s). DownloadPackageFromWebSite=Скачать пакет (например, с официального сайта %s). UnpackPackageInDolibarrRoot=Распакуйте упакованные файлы в каталог вашего сервера Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +UnpackPackageInModulesRoot=Для развертывания/установки внешнего модуля необходимо распаковать/разархивировать файл архива в каталог сервера, предназначенный для внешних модулей: SetupIsReadyForUse=Развертывание модуля завершено. Однако вы должны включить и настроить модуль в своем приложении, перейдя на страницу настройки модулей: %s . NotExistsDirect=Альтернативная корневая директория не задана.
    InfDirAlt=Начиная с 3-ей версии, можно определить альтернативный корневой каталог. Это позволяет вам хранить в специальном каталоге, плагины и настраиваемые шаблоны.
    Просто создайте каталог в корне Dolibarr (например: custom).
    @@ -477,7 +477,7 @@ InstalledInto=Установлен в каталог %s BarcodeInitForThirdparties=Массовая инициализация штрих-кода для контрагентов BarcodeInitForProductsOrServices=Массовое создание или удаление штрих-кода для Товаров или Услуг CurrentlyNWithoutBarCode=В настоящее время у вас есть %s запись на %s %s без определенного штрих-кода. -InitEmptyBarCode=Начальное значения для следующих %s пустых записей +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Стереть все текущие значения штрих-кодов ConfirmEraseAllCurrentBarCode=Вы действительно хотите удалить все текущие значения штрих-кода? AllBarcodeReset=Все значения штрих-кодов были удалены @@ -504,7 +504,7 @@ WarningPHPMailC=- Использование SMTP-сервера вашего с WarningPHPMailD=Кроме того, рекомендуется изменить способ отправки электронных писем на значение «SMTP». Если вы действительно хотите сохранить метод «PHP» по умолчанию для отправки электронных писем, просто проигнорируйте это предупреждение или удалите его, установив для константы MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP значение 1 в Главная - Настройка - Другое. 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=Этот модуль требуется для модуля (модулей) @@ -714,13 +714,14 @@ Permission27=Удалить коммерческих предложений Permission28=Экспорт коммерческих предложений Permission31=Просмотр продуктов/услуг Permission32=Создание/изменение продуктов/услуг +Permission33=Read prices products Permission34=Удаленные продукты/услуги Permission36=Просмотр/управление скрытыми продуктами/услугами Permission38=Экспорт продуктов Permission39=Игнорировать минимальную цену -Permission41=Просмотрите проекты и задачи (общий проект и мои проекты). Можно также ввести время, затраченное на вас или ваших подчиненных, на назначенные задачи (расписание) -Permission42=Создание/изменение проектов (общий и мои проекты). Может также создавать задачи и назначать пользователей для проекта и задач -Permission44=Удалить проекты (общие и мои проекты) +Permission41=Читать проекты и задачи (общие проекты и проекты, контактом которых я являюсь). +Permission42=Создавать/изменять проекты (общие проекты и проекты, контактом которых я являюсь). Также можно назначать пользователей проектам и задачам +Permission44=Удалить проекты (общие проекты и проекты, контактом которых я являюсь) Permission45=Экспорт проектов Permission61=Смотреть мероприятия Permission62=Создание/измение мероприятий @@ -739,6 +740,7 @@ Permission79=Создать/изменить подписки Permission81=Читать заказы клиентов Permission82=Создать/изменить заказы клиентов Permission84=Проверка заказов клиентов +Permission85=Generate the documents sales orders Permission86=Отправка заказов клиентов Permission87=Закрытые заказы клиентов Permission88=Отмена заказов клиентов @@ -756,7 +758,7 @@ Permission106=Экспортировать отправки Permission109=Удалить отправки Permission111=Читать финансовую отчетность Permission112=Создать/изменить/удалить и сравнить сделки -Permission113=Setup financial accounts (create, manage categories of bank transactions) +Permission113=Настройка финансовых счетов (создание, управление категориями банковских транзакций) Permission114=Сверить транзакции Permission115=Экспорт операций и выписок со счета Permission116=Перераспределение средств между счетами @@ -766,9 +768,10 @@ Permission122=Создать/изменить контрагентов, связ Permission125=Удалить контрагентов, связанных с пользователем Permission126=Экспорт контрагентов Permission130=Создание/изменение платежной информации третьих лиц -Permission141=Просмотреть все проекты и задачи (в том числе частные проекты, в которыми я не контактное лицо) -Permission142=Создать/изменить все проекты и задачи (также частные проекты, для которых я не контактное лицо) -Permission144=Удалить все проекты и задачи (так же частные проекты в которых я не контактное лицо) +Permission141=Читать все проекты и задачи (а также частные проекты, по которым я не контактный) +Permission142=Создавать/изменять все проекты и задачи (а также частные проекты, для которых я не являюсь контактным лицом) +Permission144=Удалить все проекты и задачи (а также частные проекты я не в контакте) +Permission145=Может вводить время, затраченное мной или моей иерархией на назначенные задачи (Табель учета рабочего времени) Permission146=Посмотреть провайдеров Permission147=Посмотреть статистику Permission151=Посмотреть платежные поручения с прямым дебетом @@ -873,6 +876,7 @@ Permission525=Доступ к калькулятору займа Permission527=Экспорт займов Permission531=Читать услуги Permission532=Создать/изменить услуги +Permission533=Read prices services Permission534=Удаление услуг Permission536=Смотреть/Управлять скрытыми услугами Permission538=Экспорт услуг @@ -883,6 +887,9 @@ Permission564=Записывать дебет/отказ в переводе к Permission601=Читать стикеры Permission602=Создавать/изменять стикеры Permission609=Удалить стикеры +Permission611=Чтение атрибутов вариантов +Permission612=Создание/обновление атрибутов вариантов +Permission613=Удалить атрибуты вариантов Permission650=Просмотр ведомости материалов Permission651=Создание/обновление ведомостей материалов Permission652=Удалить списки материалов @@ -893,11 +900,11 @@ 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) +Permission777=Читать все отчеты о расходах (даже отчеты пользователя, не подчиненного) Permission778=Создавать/изменять отчеты о расходах для всех Permission779=Экспорт отчётов о затратах Permission1001=Просмотр запасов @@ -961,14 +968,16 @@ Permission2801=Использовать FTP клиент в режиме тол Permission2802=Использовать FTP клиент в режиме записи (удаление или выгрузка файлов) Permission3200=Просмотреть архивированные события Permission3301=Создавать новые модули -Permission4001=Read skill/job/position -Permission4002=Create/modify skill/job/position -Permission4003=Delete skill/job/position +Permission4001=Читать навык/работа/должность +Permission4002=Создать/изменить навык/работу/должность +Permission4003=Удалить навык/работу/должность Permission4020=Читать оценки -Permission4021=Create/modify your evaluation +Permission4021=Создайте/измените свою оценку Permission4022=Подтвердить оценку Permission4023=Удалить оценку Permission4030=См. Меню сравнения +Permission4031=Читать личную информацию +Permission4032=Напишите личную информацию Permission10001=Смотреть содержание сайта Permission10002=Создание/изменение содержимого веб-сайта (HTML и JavaScript) Permission10003=Создание/изменение содержимого сайта (динамический PHP-код). Опасно, должно быть зарезервировано для разработчиков с ограниченным доступом. @@ -976,9 +985,9 @@ 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) +Permission20004=Читать все запросы на отпуск (даже те, которые принадлежат пользователю, не являющемуся подчиненным) +Permission20005=Создание/изменение запросов на отпуск для всех (даже для пользователей, не являющихся подчиненными) +Permission20006=Администрирование запросов на отпуск (настройка и обновление баланса) Permission20007=Утвердить запросы на отпуск Permission23001=Просмотр Запланированных задач Permission23002=Создать/обновить Запланированную задачу @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Отчет о расходах - Категории тр DictionaryExpenseTaxRange=Отчет о расходах - Диапазон по транспортной категории DictionaryTransportMode=Отчет Intracomm - Транспортный режим DictionaryBatchStatus=Статус контроля качества партии/серии продукта +DictionaryAssetDisposalType=Тип выбытия активов TypeOfUnit=Тип единицы SetupSaved=Настройки сохранены SetupNotSaved=Установки не сохранены @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Значение константы конфигурации ConstantIsOn=Вариант %s включен NbOfDays=Кол-во дней AtEndOfMonth=На конец месяца -CurrentNext=Текущая/Следующая +CurrentNext=A given day in month Offset=Сдвиг AlwaysActive=Всегда активный Upgrade=Обновление @@ -1187,7 +1197,7 @@ BankModuleNotActive=Модуль Банковских счетов не акти ShowBugTrackLink=Показать ссылку "%s" ShowBugTrackLinkDesc=Оставьте поле пустым, чтобы не отображать эту ссылку, используйте значение github для ссылки на проект Dolibarr или определите напрямую URL-адрес https://... Alerts=Предупреждения -DelaysOfToleranceBeforeWarning=Задержка перед отображением предупреждения о: +DelaysOfToleranceBeforeWarning=Отображение предупреждения о... DelaysOfToleranceDesc=Установите задержку до того, как значок предупреждения %s будет отображаться на экране для последнего элемента. Delays_MAIN_DELAY_ACTIONS_TODO=Запланированные события (события повестки дня) не завершены Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Проект не закрыт во время @@ -1228,6 +1238,7 @@ BrowserName=Имя браузера BrowserOS=Операционная система браузера ListOfSecurityEvents=Список событий безопасности Dolibarr SecurityEventsPurged=События безопасности удалены +TrackableSecurityEvents=Trackable security events LogEventDesc=Включите ведение журнала для определенных событий безопасности. Администраторы журнала через меню %s - %s. Предупреждение, эта функция может генерировать большой объем данных в базе данных. AreaForAdminOnly=Параметры настройки могут быть установлены только пользователем администратора. SystemInfoDesc=Система информации разного техническую информацию Вы получите в режиме только для чтения и видимые только для администраторов. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Вы принудительно сделали но TitleNumberOfActivatedModules=Активированные модули TotalNumberOfActivatedModules=Активированные модули: %s/%s YouMustEnableOneModule=Вы должны включить минимум 1 модуль +YouMustEnableTranslationOverwriteBefore=Вы должны сначала разрешить перезапись перевода, чтобы иметь возможность заменить перевод ClassNotFoundIntoPathWarning=Класс %s не найден в пути PHP YesInSummer=Да летом OnlyFollowingModulesAreOpenedToExternalUsers=Обратите внимание, что только следующие модули доступны для внешних пользователей (независимо от разрешений этих пользователей) и только при наличии разрешений:
    @@ -1357,9 +1369,9 @@ BrowserIsOK=Вы используете веб-браузер %s. Этот бр BrowserIsKO=Вы используете веб-браузер %s. Этот браузер, как известно, является плохим выбором по безопасности, производительности и надежности. Мы рекомендуем использовать Firefox, Chrome, Opera или Safari. PHPModuleLoaded=Компонент PHP %s загружен PreloadOPCode=Используется предварительно загруженный OPCode -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". +AddRefInList=Отображение ссылки на клиента/поставщика в комбо-списки.
    Третьи стороны будут отображаться с форматом имени "CC12345 - SC45678 - The Big Company corp." вместо "Корпорация Большой Компании". +AddVatInList=Отображение номера НДС клиента/поставщика в комбинированных списках. +AddAdressInList=Отображение адреса клиента/поставщика в комбинированных списках.
    Третьи стороны будут отображаться с форматом имени «The Big Company corp. — 21 Jump Street 123456 Big Town — USA» вместо «The Big Company corp». AddEmailPhoneTownInContactList=Отображение Контактный адрес электронной почты (или телефоны, если они не определены) и список информации о городе (выберите список или поле со списком)
    Контакты появятся с форматом имени «Дюпон Дюран - dupond.durand@email.com - Париж» или «Дюпон Дюран - 06 07». 59 65 66 - Париж» вместо «Дюпон Дюран». AskForPreferredShippingMethod=Запросить предпочтительный способ доставки для контрагентов. FieldEdition=Редакция поля %s @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Водяные знаки на черновиках с PaymentsNumberingModule=Модель нумерации платежей SuppliersPayment=Платежи поставщику SupplierPaymentSetup=Настройка платежей поставщику +InvoiceCheckPosteriorDate=Проверьте дату счета-фактуры перед проверкой +InvoiceCheckPosteriorDateHelp=Проверка счета будет запрещена, если его дата предшествует дате последнего счета того же типа. ##### Proposals ##### PropalSetup=Настройка модуля Коммерческих предложений ProposalsNumberingModules=Шаблоны нумерации Коммерческих предложений @@ -1707,9 +1721,9 @@ MailingDelay=Время ожидания в секундах перед отпр 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=Настройка модуля доставки SendingsReceiptModel=Модель отправки квитанции @@ -1901,7 +1915,7 @@ ExpenseReportsRulesSetup=Настройка модуля Отчеты о рас ExpenseReportNumberingModules=Модуль нумерации отчетов о расходах NoModueToManageStockIncrease=Был активирован модуль, способный управлять автоматическим увеличением запасов. Увеличение запасов будет производиться только вручную. YouMayFindNotificationsFeaturesIntoModuleNotification=Вы можете найти опции для уведомлений по электронной почте, включив и настроив модуль «Уведомления». -TemplatesForNotifications=Templates for notifications +TemplatesForNotifications=Шаблоны уведомлений ListOfNotificationsPerUser=Список автоматических уведомлений для каждого пользователя * ListOfNotificationsPerUserOrContact=Список возможных автоматических уведомлений (о бизнес-мероприятии), доступных для каждого пользователя * или контакта ** ListOfFixedNotifications=Список автоматических фиксированных уведомлений @@ -1917,15 +1931,16 @@ ConfFileMustContainCustom=Для установки или создания вн HighlightLinesOnMouseHover=Выделите строки таблицы при перемещении мыши HighlightLinesColor=Цвет выделения строки при наведении курсора мыши (используйте 'ffffff', чтобы не выделять) HighlightLinesChecked=Выделите цвет строки, когда она отмечена (используйте 'ffffff', чтобы не выделять) -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +UseBorderOnTable=Показывать левые и правые границы на таблицах +BtnActionColor=Цвет кнопки действия +TextBtnActionColor=Цвет текста кнопки действия TextTitleColor=Цвет текста заголовка страницы LinkColor=Цвет ссылок PressF5AfterChangingThis=Нажмите CTRL + F5 на клавиатуре или очистите кеш браузера после изменения этого значения, чтобы оно было эффективным NotSupportedByAllThemes=Будет работать с основными темами, может не поддерживаться внешними темами BackgroundColor=Фоновый цвет TopMenuBackgroundColor=Цвет фона для верхнего меню -TopMenuDisableImages=Скрыть изображения в верхнем меню +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Цвет фона для меню слева BackgroundTableTitleColor=Цвет фона для заголовка таблицы BackgroundTableTitleTextColor=Цвет текста для заголовка таблицы @@ -1938,7 +1953,7 @@ EnterAnyCode=Это поле содержит ссылку для идентиф Enter0or1=Введите 0 или 1 UnicodeCurrency=Введите здесь в фигурных скобках список номеров байтов, представляющих символ валюты. Например: для $ введите [36] - для бразильских реалов [82,36] - для € введите [8364]. ColorFormat=Цвет RGB находится в формате HEX, например: FF0000 -PictoHelp=Имя значка в формате dolibarr ('image.png', если в текущем каталоге темы, 'image.png@nom_du_module', если в каталоге /img/ модуля) +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=Позиция строки в комбинированных списках SellTaxRate=Ставка налога с продаж RecuperableOnly=Да для НДС «Не воспринимается, а восстанавливается», предназначенный для некоторых государств во Франции. Сохраняйте значение «Нет» во всех других случаях. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Заказы MailToSendSupplierInvoice=Счета-фактуры поставщика MailToSendContract=Договоры MailToSendReception=Приемы +MailToExpenseReport=Отчёты о затратах MailToThirdparty=Контрагенты MailToMember=Участники MailToUser=Пользователи @@ -2019,6 +2035,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=Скрыть границы в рамке адреса отправителя @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Фильтр регулярных выражени COMPANY_DIGITARIA_CLEAN_REGEX=Фильтр регулярных выражений для очистки значения (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Дубликат не допускается GDPRContact=Сотрудник по защите данных (контактное лицо DPO, Data Privacy или GDPR) -GDPRContactDesc=Если вы храните данные о европейских компаниях/гражданах, здесь вы можете указать контактное лицо, отвечающее за общие правила защиты данных. +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=Текст справки для отображения во всплывающей подсказке HelpOnTooltipDesc=Поместите здесь текст или ключ перевода, чтобы текст отображался во всплывающей подсказке, когда это поле появляется в форме YouCanDeleteFileOnServerWith=Вы можете удалить этот файл на сервере с помощью командной строки:
    %s @@ -2048,9 +2065,16 @@ VATIsUsedIsOff=Примечание: В меню %s - %s для параметр 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=Операции, выполняемые сборщиком @@ -2061,19 +2085,31 @@ ConfirmCloneEmailCollector=Вы уверены, что хотите клонир DateLastCollectResult=Дата последней попытки сбора DateLastcollectResultOk=Дата последнего успешного сбора LastResult=Последний результат +EmailCollectorHideMailHeaders=Не включать содержимое заголовка электронной почты в сохраненное содержимое собранных электронных писем. +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=Вы хотите запустить коллекцию для этого сборщика сейчас? +EmailCollectorConfirmCollect=Вы хотите запустить этот сборщик сейчас? +EmailCollectorExampleToCollectTicketRequestsDesc=Собирайте электронные письма, соответствующие некоторым правилам, и автоматически создавайте тикет (модуль тикета должен быть включен) с информацией об электронной почте. Вы можете использовать этот сборщик, если вы окажете поддержку по электронной почте, поэтому ваш запрос на билет будет сгенерирован автоматически. Активируйте также Collect_Responses, чтобы собирать ответы вашего клиента прямо в окне просмотра заявки (вы должны отвечать из Долибарра). +EmailCollectorExampleToCollectTicketRequests=Пример сбора запроса на тикет (только первое сообщение) +EmailCollectorExampleToCollectAnswersFromExternalEmailSoftwareDesc=Сканируйте каталог «Отправленные» вашего почтового ящика, чтобы найти электронные письма, которые были отправлены в качестве ответа на другое электронное письмо непосредственно из вашего почтового программного обеспечения, а не из 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 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=Пример сбора всех входящих сообщений, являющихся ответами на сообщения, отправленные Долибарром. +EmailCollectorExampleToCollectLeadsDesc=Собирайте электронные письма, соответствующие некоторым правилам, и автоматически создавайте потенциальных клиентов (модуль проекта должен быть включен) с информацией об электронной почте. Вы можете использовать этот сборщик, если хотите следить за своим лидом с помощью модуля «Проект» (1 лид = 1 проект), поэтому ваши лиды будут генерироваться автоматически. Если сборщик Collect_Responses также включен, при отправке письма от ваших лидов, предложений или любого другого объекта вы также можете увидеть ответы своих клиентов или партнеров прямо в приложении.
    Примечание. В этом начальном примере заголовок лида создается вместе с адресом электронной почты. Если третье лицо не может быть найдено в базе данных (новый клиент), лид будет привязан к третьему лицу с идентификатором 1. +EmailCollectorExampleToCollectLeads=Пример сбора лидов +EmailCollectorExampleToCollectJobCandidaturesDesc=Собирайте электронные письма с предложениями о работе (Module Recruitment должен быть включен). Вы можете заполнить этот коллектор, если хотите автоматически создать кандидатуру для запроса на работу. Примечание. В этом начальном примере заголовок кандидата генерируется вместе с адресом электронной почты. +EmailCollectorExampleToCollectJobCandidatures=Пример сбора кандидатур на работу, полученных по электронной почте NoNewEmailToProcess=Нет новых писем (соответствующие фильтры) для обработки NothingProcessed=Ничего не было выполнено -XEmailsDoneYActionsDone=Письма %s квалифицированы, электронные письма %s успешно обработаны (для записи %s / выполненных действий) -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) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) +RecordEvent=Запишите событие в повестку дня (с типом Электронная почта отправлена или получена) +CreateLeadAndThirdParty=Создайте лид (и третье лицо, если необходимо) +CreateTicketAndThirdParty=Создать тикет (связанный с третьей стороной, если третья сторона была загружена предыдущей операцией или была угадана из трекера в заголовке электронной почты, без третьей стороны в противном случае) CodeLastResult=Последний код результата NbOfEmailsInInbox=Количество писем в исходном каталоге LoadThirdPartyFromName=Загрузить сторонний поиск на %s (только загрузка) LoadThirdPartyFromNameOrCreate=Загрузите сторонний поиск на %s (создайте, если не найден) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. +AttachJoinedDocumentsToObject=Сохраняйте вложенные файлы в документы объекта, если ссылка на объект найдена в теме письма. WithDolTrackingID=Сообщение из беседы, инициированной первым письмом, отправленным от Dolibarr WithoutDolTrackingID=Сообщение из беседы, инициированной первым электронным письмом, НЕ отправленным от Dolibarr WithDolTrackingIDInMsgId=Сообщение отправлено из Dolibarr @@ -2082,14 +2118,14 @@ 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=Конфигурация модуля Ресурсов UseSearchToSelectResource=Используйте форму поиска, чтобы выбрать ресурс (а не раскрывающийся список). DisabledResourceLinkUser=Отключить функцию привязки ресурса к пользователям DisabledResourceLinkContact=Отключить функцию привязки ресурса к контактам -EnableResourceUsedInEventCheck=Включите функцию, чтобы проверить, используется ли ресурс в событии +EnableResourceUsedInEventCheck=Запретить использование одного и того же ресурса одновременно в повестке дня ConfirmUnactivation=Подтвердите сброс модуля OnMobileOnly=Только на маленьком экране (смартфон) DisableProspectCustomerType=Отключите тип третьей стороны «Проспект + клиент» (таким образом, третья сторона должна быть «Проспект» или «Клиент», но не может быть одновременно) @@ -2128,13 +2164,13 @@ LargerThan=Больше, чем IfTrackingIDFoundEventWillBeLinked=Обратите внимание, что если идентификатор отслеживания объекта найден в электронном письме или если электронное письмо является ответом на электронную почту, которую собирают и связывают с объектом, созданное событие будет автоматически связано с известным связанным объектом. WithGMailYouCanCreateADedicatedPassword=В учетной записи GMail, если вы включили двухэтапную проверку, рекомендуется создать специальный второй пароль для приложения вместо использования пароля своей учетной записи с https://myaccount.google.com/. EmailCollectorTargetDir=Может оказаться желательным переместить электронное письмо в другой тег / каталог, когда оно было успешно обработано. Просто укажите здесь имя каталога, чтобы использовать эту функцию (НЕ используйте в имени специальные символы). Обратите внимание, что вы также должны использовать учетную запись для входа в систему для чтения / записи. -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=Вы можете использовать это действие, чтобы использовать содержимое электронной почты для поиска и загрузки существующей третьей стороны в вашей базе данных. Найденная (или созданная) третья сторона будет использоваться для следующих действий, которые в ней нуждаются.
    Например, если вы хотите создать третью сторону с именем, извлеченным из строки «Имя: имя для поиска», представленной в теле, используйте адрес электронной почты отправителя в качестве электронной почты, вы можете установить поле параметра следующим образом:
    'email= HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=Конечная точка для %s: %s DeleteEmailCollector=Удалить сборщик электронной почты ConfirmDeleteEmailCollector=Вы уверены, что хотите удалить этот сборщик электронной почты? RecipientEmailsWillBeReplacedWithThisValue=Электронная почта получателя всегда будет заменена этим значением AtLeastOneDefaultBankAccountMandatory=Должен быть определен хотя бы 1 банковский счет по умолчанию. -RESTRICT_ON_IP=Разрешить доступ только к IP-адресу некоторого хоста (подстановочные знаки не разрешены, используйте пробел между значениями). Пусто означает, что доступ есть у всех хостов. +RESTRICT_ON_IP=Разрешить доступ API только к определенным клиентским IP-адресам (подстановочные знаки не допускаются, используйте пробелы между значениями). Пусто означает, что каждый клиент может получить доступ. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=На основе версии библиотеки SabreDAV NotAPublicIp=Не публичный IP @@ -2144,6 +2180,9 @@ 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 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. @@ -2185,6 +2224,7 @@ NoExternalModuleWithUpdate=Обновлений для внешних модул SwaggerDescriptionFile=Файл описания Swagger API (например, для использования с redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Вы включили устаревший WS API. Вместо этого вам следует использовать REST API. RandomlySelectedIfSeveral=Выбирается случайным образом, если доступно несколько изображений +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Пароль базы данных зашифрован в файле conf DatabasePasswordNotObfuscated=Пароль базы данных НЕ запутывается в файле conf APIsAreNotEnabled=Модули API не включены @@ -2207,16 +2247,63 @@ DashboardDisableBlockExpenseReport=Отключить большой палец DashboardDisableBlockHoliday=Отключить большой палец для листьев EnabledCondition=Условие для включения поля (если не включено, видимость всегда будет отключена) IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Если вы хотите использовать второй налог, вы должны также включить первый налог с продаж. -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Если вы хотите использовать третий налог, вы должны также включить первый налог с продаж. +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Если вы хотите использовать третий налог, вы также должны включить первый налог с продаж. LanguageAndPresentation=Язык и презентация SkinAndColors=Оболочка и цвета IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Если вы хотите использовать второй налог, вы должны также включить первый налог с продаж. -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Если вы хотите использовать третий налог, вы должны также включить первый налог с продаж. +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Если вы хотите использовать третий налог, вы также должны включить первый налог с продаж. PDF_USE_1A=Создать PDF из PDF/A-1b формата MissingTranslationForConfKey = Отсутствует перевод для %s NativeModules=Родные модули -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 +NoDeployedModulesFoundWithThisSearchCriteria=Модули по этим критериям поиска не найдены +API_DISABLE_COMPRESSION=Отключить сжатие ответов API +EachTerminalHasItsOwnCounter=Каждый терминал использует свой счетчик. +FillAndSaveAccountIdAndSecret=Сначала заполните и сохраните идентификатор учетной записи и секрет +PreviousHash=Предыдущий хэш +LateWarningAfter=«Позднее» предупреждение после +TemplateforBusinessCards=Шаблон визитки разного размера +InventorySetup= Настройка инвентаря +ExportUseLowMemoryMode=Используйте режим с низким объемом памяти +ExportUseLowMemoryModeHelp=Используйте режим низкой памяти для выполнения exec дампа (сжатие выполняется через конвейер, а не в память PHP). Этот метод не позволяет проверить, завершен ли файл, и сообщение об ошибке не может быть сообщено в случае сбоя. + +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=Фиксированный (используйте ключевое слово «фиксированный») или процент (используйте ключевое слово «процент») +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 +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/ru_RU/agenda.lang b/htdocs/langs/ru_RU/agenda.lang index 82da336782f..96ecdbf1ffa 100644 --- a/htdocs/langs/ru_RU/agenda.lang +++ b/htdocs/langs/ru_RU/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=Договор %s удален PropalClosedSignedInDolibarr=Ком. предложение %s подписано PropalClosedRefusedInDolibarr=Ком. предложение %s отклонено PropalValidatedInDolibarr=Предложение проверены +PropalBackToDraftInDolibarr=Предложение %s вернуться к статусу черновика PropalClassifiedBilledInDolibarr=Коммерческое предложение %s отмечено оплаченным InvoiceValidatedInDolibarr=Счёт %s проверен InvoiceValidatedInDolibarrFromPos=Счёт %s подтверждён с платёжного терминала @@ -66,6 +67,7 @@ ShipmentBackToDraftInDolibarr=Отгрузка %s возвращена в ста ShipmentDeletedInDolibarr=Отправка %s удалена ShipmentCanceledInDolibarr=Отгрузка %s отменена ReceptionValidatedInDolibarr=Прием %s подтвержден +ReceptionClassifyClosedInDolibarr=Прием %s закрыт OrderCreatedInDolibarr=Заказ %s создан OrderValidatedInDolibarr=Заказ %s проверен OrderDeliveredInDolibarr=Заказ %s доставлен diff --git a/htdocs/langs/ru_RU/assets.lang b/htdocs/langs/ru_RU/assets.lang index df5081a02ee..8d3df884858 100644 --- a/htdocs/langs/ru_RU/assets.lang +++ b/htdocs/langs/ru_RU/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 = Активы -NewAsset = Новый актив -AccountancyCodeAsset = Учетный код (актив) -AccountancyCodeDepreciationAsset = Учетный код (счет актива амортизации) -AccountancyCodeDepreciationExpense = Учетный код (счет амортизационных расходов) -NewAssetType=Тип нового актива -AssetsTypeSetup=Настройка типа актива -AssetTypeModified=Тип актива изменен -AssetType=Тип актива +NewAsset=Новый актив +AccountancyCodeAsset=Учетный код (актив) +AccountancyCodeDepreciationAsset=Учетный код (счет актива амортизации) +AccountancyCodeDepreciationExpense=Учетный код (счет амортизационных расходов) AssetsLines=Активы DeleteType=Удалить -DeleteAnAssetType=Удалить тип актива -ConfirmDeleteAssetType=Вы действительно хотите удалить этот тип актива? -ShowTypeCard=Показать типу ' %s' +DeleteAnAssetType=Удалить модель актива +ConfirmDeleteAssetType=Вы уверены, что хотите удалить эту модель актива? +ShowTypeCard=Показать модель '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Активы +ModuleAssetsName=Активы # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Описание активов +ModuleAssetsDesc=Описание активов # # Admin page # -AssetsSetup = Настройка активов -Settings = Настройки -AssetsSetupPage = Страница настройки активов -ExtraFieldsAssetsType = Дополнительные атрибуты (тип актива) -AssetsType=Тип актива -AssetsTypeId=Идентификатор типа актива -AssetsTypeLabel=Метка типа актива -AssetsTypes=Типы активов +AssetSetup=Настройка активов +AssetSetupPage=Страница настройки активов +ExtraFieldsAssetModel=Дополнительные атрибуты (модель актива) + +AssetsType=Модель активов +AssetsTypeId=Идентификатор модели актива +AssetsTypeLabel=Ярлык модели актива +AssetsTypes=Модели активов +ASSET_ACCOUNTANCY_CATEGORY=Группа учета основных средств # # Menu # -MenuAssets = Активы -MenuNewAsset = Новый актив -MenuTypeAssets = Тип активов -MenuListAssets = Список -MenuNewTypeAssets = Новый -MenuListTypeAssets = Список +MenuAssets=Активы +MenuNewAsset=Новый актив +MenuAssetModels=Активы модели +MenuListAssets=Список +MenuNewAssetModel=Новая модель актива +MenuListAssetModels=Список # # Module # +ConfirmDeleteAsset=Вы действительно хотите удалить этот актив? + +# +# Tab +# +AssetDepreciationOptions=Варианты амортизации +AssetAccountancyCodes=Учётные записи бухгалтерии +AssetDepreciation=Амортизация + +# +# Asset +# Asset=Актив -NewAssetType=Тип нового актива -NewAsset=Новый актив -ConfirmDeleteAsset=Вы уверены, что хотите удалить этот актив? +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/ru_RU/banks.lang b/htdocs/langs/ru_RU/banks.lang index 2b4adbbd4e8..226b95f3dfe 100644 --- a/htdocs/langs/ru_RU/banks.lang +++ b/htdocs/langs/ru_RU/banks.lang @@ -95,11 +95,11 @@ LineRecord=Транзакция AddBankRecord=Добавить запись AddBankRecordLong=Добавить запись вручную Conciliated=Согласование -ConciliatedBy=Согласовано +ReConciliedBy=Согласовано DateConciliating=Дата согласования BankLineConciliated=Запись сверяется с банковской квитанцией -Reconciled=Согласовано -NotReconciled=Не согласовано +BankLineReconciled=Согласовано +BankLineNotReconciled=Не согласовано CustomerInvoicePayment=Оплата покупателем SupplierInvoicePayment=Оплата продавцу SubscriptionPayment=Абонентская плата @@ -172,8 +172,8 @@ SEPAMandate=Мандат SEPA YourSEPAMandate=Ваш мандат SEPA FindYourSEPAMandate=Это ваш мандат SEPA, чтобы разрешить нашей компании делать распоряжение о прямом дебете в ваш банк. Верните его с подписью (скан подписанного документа) или отправьте по почте на адрес AutoReportLastAccountStatement=Автоматически заполнять поле «номер банковской выписки» номером последней выписки при сверке. -CashControl=Контроль кассы POS -NewCashFence=Открытие или закрытие новой кассы +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Раскрашиваем движения BankColorizeMovementDesc=Если эта функция включена, вы можете выбрать определенный цвет фона для движения дебета или кредита. BankColorizeMovementName1=Цвет фона для движения дебета @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Если вы не проводите выве NoBankAccountDefined=Банковский счет не указан NoRecordFoundIBankcAccount=Никаких записей на банковском счете не найдено. Обычно это происходит, когда запись была вручную удалена из списка транзакций на банковском счете (например, во время выверки банковского счета). Другая причина в том, что платеж был записан при отключении модуля «%s». AlreadyOneBankAccount=Уже определен один банковский счет +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Перевод SEPA: «Тип платежа» на уровне «Кредитный перевод» +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=При создании XML-файла SEPA для кредитных переводов раздел «PaymentTypeInformation» теперь можно поместить внутрь раздела «CreditTransferTransactionInformation» (вместо раздела «Payment»). Мы настоятельно рекомендуем оставить этот флажок снятым, чтобы поместить PaymentTypeInformation на уровень Payment, так как все банки не обязательно примут его на уровне CreditTransferTransactionInformation. Свяжитесь с вашим банком, прежде чем размещать информацию о платеже (PaymentTypeInformation) на уровне CreditTransferTransactionInformation. +ToCreateRelatedRecordIntoBank=Чтобы создать отсутствующую связанную банковскую запись diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang index 425821d0f0e..888fcf11205 100644 --- a/htdocs/langs/ru_RU/bills.lang +++ b/htdocs/langs/ru_RU/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=Отчеты о платежах PaymentsAlreadyDone=Платежи уже сделаны PaymentsBackAlreadyDone=Возврат уже произведен PaymentRule=Правила оплаты -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=Способ оплаты +PaymentModes=Способы оплаты +DefaultPaymentMode=Способ оплаты по умолчанию DefaultBankAccount=Банковский счет по умолчанию -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Способ оплаты (идентификатор) +CodePaymentMode=Способ оплаты (код) +LabelPaymentMode=Способ оплаты (метка) +PaymentModeShort=Способ оплаты PaymentTerm=Условия оплаты PaymentConditions=Условия оплаты PaymentConditionsShort=Условия оплаты @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Ошибка, корректирующий сч ErrorInvoiceOfThisTypeMustBePositive=Ошибка, этот тип счета-фактуры должен иметь положительную (или нулевую) сумму без учета налогов. ErrorCantCancelIfReplacementInvoiceNotValidated=Ошибка, невозможно отменить счет-фактуру, который был заменен на другой счет-фактуру, находящийся в статусе Проекта ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Эта или другая часть уже используется, поэтому серию скидок удалить нельзя. +ErrorInvoiceIsNotLastOfSameType=Ошибка: дата счета-фактуры %s равна %s. Он должен быть более поздним или равным последней дате для счетов того же типа (%s). Пожалуйста, измените дату счета. BillFrom=Продавец BillTo=Покупатель ActionsOnBill=Действия со счетом-фактурой @@ -240,12 +241,12 @@ RemainderToTake=Оставшаяся сумма RemainderToTakeMulticurrency=Оставшаяся сумма в исходной валюте RemainderToPayBack=Оставшаяся сумма к возврату RemainderToPayBackMulticurrency=Оставшаяся сумма к возврату в исходной валюте -NegativeIfExcessRefunded=negative if excess refunded +NegativeIfExcessRefunded=отрицательный, если излишек возвращается Rest=В ожидании AmountExpected=Заявленная сумма ExcessReceived=Полученный излишек ExcessReceivedMulticurrency=Полученный излишек в исходной валюте -NegativeIfExcessReceived=negative if excess received +NegativeIfExcessReceived=отрицательный, если получено превышение ExcessPaid=Оплачено превышение ExcessPaidMulticurrency=Избыточная сумма в исходной валюте EscompteOffered=Предоставлена скидка (за досрочный платеж) @@ -279,9 +280,11 @@ SetMode=Установить тип оплаты SetRevenuStamp=Установить отметку о доходах Billed=Выставлен RecurringInvoices=Периодические счета-фактуры -RecurringInvoice=Recurring invoice +RecurringInvoice=Повторяющийся счет RepeatableInvoice=Шаблоны счёта RepeatableInvoices=Шаблоны счетов +RecurringInvoicesJob=Генерация повторяющихся счетов-фактур (счетов-фактур продаж) +RecurringSupplierInvoicesJob=Генерация повторяющихся счетов-фактур (счета-фактуры покупки) Repeatable=Шаблон Repeatables=Шаблоны ChangeIntoRepeatableInvoice=Конвертировать в шаблон счёта @@ -426,10 +429,19 @@ PaymentConditionShort14D=14 дней PaymentCondition14D=14 дней PaymentConditionShort14DENDMONTH=14 дней в конце месяца PaymentCondition14DENDMONTH=В течение 14 дней после окончания месяца +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% депозит +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% залог, остаток при доставке FixAmount=Фиксированная сумма - 1 строка с надписью '%s' VarAmount=Произвольное значение (%% от суммы) VarAmountOneLine=Переменная сумма (%% tot.) - 1 строка с меткой '%s' VarAmountAllLines=Переменная сумма (%% tot.) - все строки из исходной точки +DepositPercent=Депозит %% +DepositGenerationPermittedByThePaymentTermsSelected=Это разрешено выбранными условиями оплаты. +GenerateDeposit=Сгенерируйте депозитный счет %s%% +ValidateGeneratedDeposit=Подтвердить сгенерированный депозит +DepositGenerated=Сгенерированный депозит +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Вы можете автоматически генерировать депозит только из предложения или заказа +ErrorPaymentConditionsNotEligibleToDepositCreation=Выбранные условия оплаты не подходят для автоматического создания депозита. # PaymentType PaymentTypeVIR=Банковский перевод PaymentTypeShortVIR=Банковский перевод @@ -482,6 +494,7 @@ PaymentByChequeOrderedToShort=Платежи по чекам (включая н SendTo=отправлено PaymentByTransferOnThisBankAccount=Оплата переводом на следующий банковский счет VATIsNotUsedForInvoice=* Неприменяемых НДС арт-293B из CGI +VATIsNotUsedForInvoiceAsso=* Неприменимый НДС арт-261-7 CGI LawApplicationPart1=По применению закона 80.335 от 12/05/80 LawApplicationPart2=товары остаются в собственности LawApplicationPart3=продавец до полной оплаты @@ -599,11 +612,12 @@ BILL_SUPPLIER_DELETEInDolibarr=Счет поставщика удален UnitPriceXQtyLessDiscount=Цена за единицу x Кол-во - Скидка CustomersInvoicesArea=Зона выставления счетов клиента SupplierInvoicesArea=Платежная зона поставщика -FacParentLine=Родительская строка счета-фактуры SituationTotalRayToRest=Осталось заплатить без налога PDFSituationTitle=Ситуация № %d SituationTotalProgress=Общий прогресс %d %% SearchUnpaidInvoicesWithDueDate=Поиск неоплаченных счетов со сроком оплаты = %s NoPaymentAvailable=Нет оплаты для %s PaymentRegisteredAndInvoiceSetToPaid=Платеж зарегистрирован, а счет-фактура %s установлен на оплаченный -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +SendEmailsRemindersOnInvoiceDueDate=Отправить напоминание по электронной почте для неоплаченных счетов +MakePaymentAndClassifyPayed=Записать платеж +BulkPaymentNotPossibleForInvoice=Массовая оплата невозможна для счета %s (неверный тип или статус) diff --git a/htdocs/langs/ru_RU/cashdesk.lang b/htdocs/langs/ru_RU/cashdesk.lang index 7895d02805c..a4165cf0caf 100644 --- a/htdocs/langs/ru_RU/cashdesk.lang +++ b/htdocs/langs/ru_RU/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Нижний колонтитул AmountAtEndOfPeriod=Сумма на конец периода (день, месяц или год) TheoricalAmount=Теоретическая сумма RealAmount=Действительная сумма -CashFence=Закрытие кассы -CashFenceDone=Закрытие кассы за период +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Кол-во счетов-фактур Paymentnumpad=Тип панели для ввода платежа Numberspad=Цифровая клавиатура @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} тег используется дл TakeposGroupSameProduct=Группируйте одинаковые продуктовые линейки StartAParallelSale=Начать новую параллельную продажу SaleStartedAt=Продажа началась на %s -ControlCashOpening=Откройте всплывающее окно «Контролировать наличные» при открытии POS-терминала. -CloseCashFence=Кассовый контроль +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Кассовый отчет MainPrinterToUse=Основной принтер для использования OrderPrinterToUse=Заказать принтер для использования @@ -133,4 +133,6 @@ SplitSale=Сплит продажа PrintWithoutDetailsButton=Добавить кнопку «Распечатать без деталей» PrintWithoutDetailsLabelDefault=Метка линии по умолчанию при печати без деталей PrintWithoutDetails=Печать без деталей -YearNotDefined=Year is not defined +YearNotDefined=Год не определен +TakeposBarcodeRuleToInsertProduct=Правило штрих-кода для вставки продукта +TakeposBarcodeRuleToInsertProductDesc=Правило извлечения артикула продукта + количества из отсканированного штрих-кода.
    Если пусто (значение по умолчанию), приложение будет использовать полный отсканированный штрих-код для поиска продукта.

    Если определено, синтаксис должен быть:
    ссылок: NB + Qu: NB + QD: NB + другое: NB
    , где NB это количество символов, используемый для извлечения данных из отсканированного штрих-кода с:
    • исх : название продукта
    • Qu : количество для набора при вставке товара (единицы)
    • QD : количество для набора при вставке элемента (десятичный)
    • друг : другие символы
    diff --git a/htdocs/langs/ru_RU/categories.lang b/htdocs/langs/ru_RU/categories.lang index 969b0edea9c..0575a8a3c1b 100644 --- a/htdocs/langs/ru_RU/categories.lang +++ b/htdocs/langs/ru_RU/categories.lang @@ -90,6 +90,7 @@ CategorieRecursivHelp=Если опция включена, то при доба AddProductServiceIntoCategory=Добавить следующий продукт/услугу AddCustomerIntoCategory=Присвоить категорию клиенту AddSupplierIntoCategory=Присвоить категорию поставщику +AssignCategoryTo=Присвоить категорию ShowCategory=Показать тег/категорию ByDefaultInList=По умолчанию в списке ChooseCategory=Выберите категорию diff --git a/htdocs/langs/ru_RU/companies.lang b/htdocs/langs/ru_RU/companies.lang index aeab0651951..5ba128975a5 100644 --- a/htdocs/langs/ru_RU/companies.lang +++ b/htdocs/langs/ru_RU/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Область разведки IdThirdParty=Код контрагента IdCompany=Код компании IdContact=Код контакта +ThirdPartyAddress=Сторонний адрес ThirdPartyContacts=Контакты контрагента ThirdPartyContact=Контакт/адрес контрагента Company=Компания @@ -51,19 +52,22 @@ CivilityCode=Код корректности RegisteredOffice=Зарегистрированный офис Lastname=Фамилия Firstname=Имя +RefEmployee=Справка сотрудника +NationalRegistrationNumber=Национальный регистрационный номер PostOrFunction=Должность UserTitle=Название NatureOfThirdParty=Свойство контрагента NatureOfContact=Характер контакта Address=Адрес State=Штат/Провинция +StateId=State ID StateCode=Код штата/провинции StateShort=Штат Region=Регион Region-State=Регион - Штат Country=Страна CountryCode=Код страны -CountryId=id страны +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Скайп @@ -102,6 +106,7 @@ WrongSupplierCode=Неверный код поставщика CustomerCodeModel=Шаблон кода клиента SupplierCodeModel=Модель кода поставщика Gencod=Штрих-код +GencodBuyPrice=Штрих-код цены исх. ##### Professional ID ##### ProfId1Short=Проф. id 1 ProfId2Short=Проф. id 2 @@ -157,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=- -ProfId5CM=- +ProfId1CM=Идентификатор. проф. 1 (Торговый реестр) +ProfId2CM=Идентификатор. проф. 2 (№ налогоплательщика) +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=- +ProfId1ShortCM=Торговый реестр +ProfId2ShortCM=№ налогоплательщика +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Другие ProfId6ShortCM=- ProfId1CO=Проф Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Список контрагентов ShowCompany=Контрагент ShowContact=Контакт-Адрес ContactsAllShort=Все (без фильтра) -ContactType=Тип контакта +ContactType=Контактная роль ContactForOrders=Заказы контакта ContactForOrdersOrShipments=Заказы или отгрузки контактов ContactForProposals=Лиды контакта @@ -381,7 +386,7 @@ VATIntraCheck=Проверить VATIntraCheckDesc=ID НДС должен включать префикс страны. Ссылка %s использует европейскую службу проверки НДС (VIES), для которой требуется доступ в Интернет с сервера Dolibarr. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=Проверьте ID НДС на веб-сайте Европейской комиссии -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraManualCheck=Вы также можете проверить вручную на веб-сайте Европейской комиссии %s ErrorVATCheckMS_UNAVAILABLE=Проверка невозможна. Сервис проверки не предоставляется государством-членом ЕС (%s). NorProspectNorCustomer=Ни лид, ни клиент JuridicalStatus=Тип хозяйствующего субъекта diff --git a/htdocs/langs/ru_RU/compta.lang b/htdocs/langs/ru_RU/compta.lang index 73a69595e62..2c9affb82e1 100644 --- a/htdocs/langs/ru_RU/compta.lang +++ b/htdocs/langs/ru_RU/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Вы уверены, что хотите отнести эту DeleteSocialContribution=Удалить социальный или налоговый платеж DeleteVAT=Удалить декларацию НДС DeleteSalary=Удалить зарплатную карту +DeleteVariousPayment=Удалить другой платеж ConfirmDeleteSocialContribution=Вы действительно хотите удалить этот социальный/налоговый платеж? ConfirmDeleteVAT=Вы уверены, что хотите удалить эту декларацию по НДС? ConfirmDeleteSalary=Вы уверены, что хотите удалить эту зарплату? +ConfirmDeleteVariousPayment=Вы уверены, что хотите удалить этот платеж? ExportDataset_tax_1=Социальные и налоговые налоги и платежи CalcModeVATDebt=Режим %sНДС при учете обязательств%s. CalcModeVATEngagement=Режим %sНДС на доходы-расходы%s. @@ -170,9 +172,9 @@ SeeReportInInputOutputMode=Просматривайте %sанализ пла SeeReportInDueDebtMode=Просматривайте %sанализ записанных документов%s для расчета на основе известных записанных документов, даже если они еще не учтены в бухгалтерской книге SeeReportInBookkeepingMode=Просматривайте %sанализ таблицы бухгалтерской книги%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. +RulesAmountWithTaxExcluded=- Суммы счетов указаны без учета всех налогов. +RulesResultDue=- Он включает в себя все счета, расходы, НДС, пожертвования, зарплаты, независимо от того, оплачены они или нет.
    — основывается на дате выставления счета-фактуры и на дате оплаты расходов или налоговых платежей. Для заработной платы используется дата окончания периода. +RulesResultInOut=- Он включает в себя реальные платежи по счетам, расходы, НДС и заработную плату.
    - Основан на датах оплаты счетов, расходов, НДС, пожертвований и заработной платы. RulesCADue=- Он включает в себя подлежащие оплате счета клиента независимо от того, оплачены они или нет.
    - зависит от даты выставления счетов для этих счетов.
    RulesCAIn=- Он включает в себя все действующие платежи по счетам, полученным от клиентов.
    - он основан на дате оплаты этих счетов-фактур
    RulesCATotalSaleJournal=Он включает все кредитные линии из журнала продаж. @@ -287,14 +289,14 @@ 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 дней) InvoiceToPay=Для оплаты (<15 дней) InvoiceToPay15Days=Для оплаты (от 15 до 30 дней) InvoiceToPay30Days=Для оплаты (> 30 дней) -ConfirmPreselectAccount=Preselect accountancy code -ConfirmPreselectAccountQuestion=Are you sure you want to preselect the %s selected lines with this accountancy code ? +ConfirmPreselectAccount=Предварительный выбор кода счета +ConfirmPreselectAccountQuestion=Вы уверены, что хотите предварительно выбрать выбранные строки %s с этим кодом учета? diff --git a/htdocs/langs/ru_RU/contracts.lang b/htdocs/langs/ru_RU/contracts.lang index f56ed20636d..8e62d71d9fc 100644 --- a/htdocs/langs/ru_RU/contracts.lang +++ b/htdocs/langs/ru_RU/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Контакты/Подписки ContractsAndLine=Договоры и строка с договором Contract=Договор ContractLine=Строка договора +ContractLines=Строки контракта Closing=Закрытие NoContracts=Нет договоров MenuServices=Услуги @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Подписание договора HideClosedServiceByDefault=Скрыть закрытые услуги по умолчанию ShowClosedServices=Показать закрытые услуги HideClosedServices=Скрыть закрытые услуги +UserStartingService=Сервис запуска пользователя +UserClosingService=Сервис закрытия пользователя diff --git a/htdocs/langs/ru_RU/cron.lang b/htdocs/langs/ru_RU/cron.lang index db757f1d5f7..96d8fcb24a6 100644 --- a/htdocs/langs/ru_RU/cron.lang +++ b/htdocs/langs/ru_RU/cron.lang @@ -82,6 +82,8 @@ UseMenuModuleToolsToAddCronJobs=Войдите в меню «Гла JobDisabled=Работа отключена MakeLocalDatabaseDumpShort=Резервное копирование локальной базы данных MakeLocalDatabaseDump=Создайте дамп локальной базы данных. Параметры: сжатие ('gz' или 'bz' или 'none'), тип резервной копии ('mysql', 'pgsql', 'auto'), 1, 'auto' или имя файла для создания, количество файлов резервных копий для хранения +MakeSendLocalDatabaseDumpShort=Отправить резервную копию локальной базы данных +MakeSendLocalDatabaseDump=Отправить резервную копию локальной базы данных по электронной почте. Параметры: кому, от, тема, сообщение, имя файла (имя отправляемого файла), фильтр («sql» только для резервного копирования базы данных) WarningCronDelayed=Внимание, для повышения производительности, какой бы ни была следующая дата выполнения включенных заданий, ваши задания могут быть отложены максимум на %s часов перед запуском. DATAPOLICYJob=Очиститель и анонимайзер данных JobXMustBeEnabled=Должно быть включено задание %s diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang index a5ea90335e0..2424d5b96ab 100644 --- a/htdocs/langs/ru_RU/errors.lang +++ b/htdocs/langs/ru_RU/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=Электронная почта %s кажется невер ErrorBadUrl=URL-адрес %s неверен ErrorBadValueForParamNotAString=Плохое значение для вашего параметра. Обычно он добавляется, когда перевод отсутствует. ErrorRefAlreadyExists=Ссылка %s уже существует. +ErrorTitleAlreadyExists=Название %s уже существует. ErrorLoginAlreadyExists=Логин %s уже существует. ErrorGroupAlreadyExists=Группа %s уже существует. ErrorEmailAlreadyExists=Электронная почта %s уже существует. @@ -27,9 +28,9 @@ ErrorThisContactIsAlreadyDefinedAsThisType=Этот контакт уже опр ErrorCashAccountAcceptsOnlyCashMoney=Этот банковский счет определен как счет для наличных, так что он принимает только наличные платежи. ErrorFromToAccountsMustDiffers=Источник и цели банковского счета должны быть разными. ErrorBadThirdPartyName=Неверное значение для стороннего имени -ForbiddenBySetupRules=Forbidden by setup rules +ForbiddenBySetupRules=Запрещено правилами установки ErrorProdIdIsMandatory=%s является обязательным -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=Учетный код клиента %s обязателен ErrorBadCustomerCodeSyntax=Плохо синтаксис для заказчика код ErrorBadBarCodeSyntax=Неверный синтаксис штрих-кода. Возможно, вы установили неверный тип штрих-кода или определили маску штрих-кода для нумерации, которая не соответствует отсканированному значению. ErrorCustomerCodeRequired=Требуется код клиента @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=Другой файл с именем %s у ErrorPartialFile=Файл не получил полностью на сервер. ErrorNoTmpDir=Временная директория %s не существует. ErrorUploadBlockedByAddon=Добавить заблокирован PHP/Apache плагин. -ErrorFileSizeTooLarge=Размер файла слишком велик. +ErrorFileSizeTooLarge=Размер файла слишком велик или файл не предоставлен. ErrorFieldTooLong=Поле %s слишком длинное. ErrorSizeTooLongForIntType=Размер слишком долго для целого типа (%s цифр максимум) ErrorSizeTooLongForVarcharType=Размер слишком долго для струнного типа (%s символов максимум) @@ -91,6 +92,7 @@ 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 существующей ссылкой ErrorsOnXLines=%s обнаружены ошибки @@ -113,7 +115,7 @@ ErrorFailedToLoadRSSFile=Не в состоянии получить RSS-кан 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=Примечание: очистите файлы cookie браузера, чтобы уничтожить существующие сеансы для этого входа в систему. ErrorNoImagickReadimage=Функция imagick_readimage не найдена в этой PHP. Нет предварительного просмотра могут быть доступны. Администраторы могут отключить эту закладку из меню Настройка - Экран. ErrorRecordAlreadyExists=Запись уже существует ErrorLabelAlreadyExists=Этот ярлык уже существует @@ -269,19 +271,31 @@ 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=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrorExecIdFailed=Не могу выполнить команду "id" +ErrorBadCharIntoLoginName=Несанкционированный символ в имени для входа +ErrorRequestTooLarge=Ошибка, слишком большой запрос +ErrorNotApproverForHoliday=Вы не являетесь утверждающим для отпуска %s +ErrorAttributeIsUsedIntoProduct=Этот атрибут используется в одном или нескольких вариантах продукта. +ErrorAttributeValueIsUsedIntoProduct=Это значение атрибута используется в одном или нескольких вариантах продукта. +ErrorPaymentInBothCurrency=Ошибка, все суммы должны быть введены в один столбец +ErrorYouTryToPayInvoicesInACurrencyFromBankWithAnotherCurrency=Вы пытаетесь оплатить счета в валюте %s со счета с валютой %s +ErrorInvoiceLoadThirdParty=Не удается загрузить сторонний объект для счета "%s" +ErrorInvoiceLoadThirdPartyKey=Сторонний ключ "%s" не установлен для счета "%s" +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 # 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=Значение «Строгий» приводит к некорректной работе функций онлайн-платежей. Вместо этого используйте «Лакс». +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Значение недействительно @@ -318,7 +333,7 @@ RequireAtLeastXString = Требуется не менее %s символа(о RequireXStringMax = Требуется не более %s символов. RequireAtLeastXDigits = Требуется не менее %s цифр RequireXDigitsMax = Требуется не более %s цифр -RequireValidNumeric = Requires a numeric value +RequireValidNumeric = Требуется числовое значение RequireValidEmail = Адрес электронной почты недействителен RequireMaxLength = Длина не должна превышать %s символов. RequireMinLength = Длина должна быть больше, чем %s симв. diff --git a/htdocs/langs/ru_RU/eventorganization.lang b/htdocs/langs/ru_RU/eventorganization.lang index d887083e509..19670d12a3e 100644 --- a/htdocs/langs/ru_RU/eventorganization.lang +++ b/htdocs/langs/ru_RU/eventorganization.lang @@ -37,17 +37,18 @@ 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
    Отправить напоминание о мероприятии спикерам
    Отправить напоминание о мероприятии организаторам стенда
    Отправить напоминание о мероприятии участникам +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 = Template of email to send after a registration to a booth has been paid. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = Шаблон электронного письма для отправки после оплаты регистрации на стенде. EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Шаблон электронного письма для отправки после оплаты регистрации на мероприятие. -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_BULK_SPEAKER = Шаблон электронного письма для отправки писем из массовой акции «Отправить электронные письма» спикерам +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Шаблон электронного письма для использования при отправке электронных писем из массовой акции «Отправить электронные письма» в списке участников +EVENTORGANIZATION_FILTERATTENDEES_CAT = В форме создания/добавления участника ограничивает список третьих лиц третьими лицами в категории +EVENTORGANIZATION_FILTERATTENDEES_TYPE = В форме создания/добавления участника ограничивает список третьих лиц третьими лицами с характером # # Object @@ -71,7 +72,7 @@ EventOrganizationEmailBoothPayment = Оплата вашей выставки EventOrganizationEmailRegistrationPayment = Регистрация на мероприятие EventOrganizationMassEmailAttendees = Общение с участниками EventOrganizationMassEmailSpeakers = Общение со спикерами -ToSpeakers=To speakers +ToSpeakers=Спикерам # # Event @@ -84,14 +85,14 @@ PriceOfRegistration=Стоимость регистрации PriceOfRegistrationHelp=Стоимость регистрации или участия в мероприятии PriceOfBooth=Стоимость подписки на выставку PriceOfBoothHelp=Стоимость подписки на выставку -EventOrganizationICSLink=Link ICS for conferences +EventOrganizationICSLink=Link ICS для конференций ConferenceOrBoothInformation=Информация о конференции или выставке Attendees=Участники ListOfAttendeesOfEvent=Список участников событийного проекта DownloadICSLink = Ссылка для скачивания ICS -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference +EVENTORGANIZATION_SECUREKEY = Seed для защиты ключа для страницы публичной регистрации, чтобы предложить конференцию SERVICE_BOOTH_LOCATION = Услуга, используемая для строки счета-фактуры о местонахождении выставки -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Служба, используемая для строки счета о подписке участника на мероприятие NbVotes=Количество голосов # # Status @@ -165,3 +166,4 @@ EmailCompanyForInvoice=Электронная почта компании (дл ErrorSeveralCompaniesWithEmailContactUs=Было найдено несколько компаний с этим адресом электронной почты, поэтому мы не можем автоматически подтвердить вашу регистрацию. Свяжитесь с нами по адресу %s для ручной проверки ErrorSeveralCompaniesWithNameContactUs=Было найдено несколько компаний с таким названием, поэтому мы не можем автоматически подтвердить вашу регистрацию. Свяжитесь с нами по адресу %s для ручной проверки NoPublicActionsAllowedForThisEvent=В связи с этим мероприятием не проводятся публичные акции. +MaxNbOfAttendees=Максимальное количество участников diff --git a/htdocs/langs/ru_RU/exports.lang b/htdocs/langs/ru_RU/exports.lang index 497bec7f83b..63b38fc9fc5 100644 --- a/htdocs/langs/ru_RU/exports.lang +++ b/htdocs/langs/ru_RU/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=Тип линии (0= продукт, 1=услуга) FileWithDataToImport=Файл с данными для импорта FileToImport=Исходный файл для импорта FileMustHaveOneOfFollowingFormat=Файл для импорта должен иметь один из следующих форматов -DownloadEmptyExample=Скачать файл шаблона с информацией о содержимом поля -StarAreMandatory=* обязательные поля +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, чтобы выбрать его ... ChooseFileToImport=Загрузите файл, затем щелкните значок %s, чтобы выбрать файл в качестве исходного файла импорта ... SourceFileFormat=Формат исходного файла @@ -135,3 +135,6 @@ NbInsert=Количество вставленных строк: %s NbUpdate=Количество обновленных строк: %s MultipleRecordFoundWithTheseFilters=С этими фильтрами было найдено несколько записей: %s StocksWithBatch=Запасы и местонахождение (склад) продукции с указанием партии/серийного номера +WarningFirstImportedLine=Первые строки не будут импортированы с текущим выбором +NotUsedFields=Неиспользуемые поля базы данных +SelectImportFieldsSource = Выберите поля исходного файла, которые вы хотите импортировать, и их целевое поле в базе данных, выбрав поля в каждом поле выбора, или выберите предопределенный профиль импорта: 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 ac09b0ca58b..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=Сотрудники @@ -20,13 +20,14 @@ Employee=Сотрудник NewEmployee=Новый сотрудник ListOfEmployees=Список сотрудников HrmSetup=Настройка модуля HRM (Отдела кадров) -HRM_MAXRANK=Максимальный ранг навыка +SkillsManagement=Управление навыками +HRM_MAXRANK=Максимальное количество уровней для ранжирования навыка HRM_DEFAULT_SKILL_DESCRIPTION=Описание рангов по умолчанию при создании навыка deplacement=Сдвиг DateEval=Дата оценки JobCard=Карточка вакансии -Job=Задание -Jobs=Вакансии +JobPosition=Задание +JobsPosition=Вакансии NewSkill=Новый навык SkillType=Тип навыка Skilldets=Список рангов для этого навыка @@ -47,9 +48,8 @@ ConfirmValidateEvaluation=Вы уверены, что хотите подтве EvaluationCard=Оценочная карта RequiredRank=Требуемый ранг для этой работы EmployeeRank=Звание сотрудника по этому навыку -Position=Позиция -Positions=Позиции -PositionCard=Карточка позиции +EmployeePosition=Должность сотрудника +EmployeePositions=Должности сотрудников EmployeesInThisPosition=Сотрудники на этой должности group1ToCompare=Группа пользователей для анализа group2ToCompare=Вторая группа пользователей для сравнения @@ -70,12 +70,22 @@ RequiredSkills=Необходимые навыки для этой работы UserRank=Рейтинг пользователя SkillList=Список навыков SaveRank=Сохранить рейтинг -knowHow=Знать как -HowToBe=Как быть -knowledge=Знания +TypeKnowHow=Знать как +TypeHowToBe=Как быть +TypeKnowledge=Знания AbandonmentComment=Комментарий об отказе DateLastEval=Дата последней оценки NoEval=Оценка этого сотрудника не проводилась HowManyUserWithThisMaxNote=Количество пользователей с этим рангом HighestRank=Высший ранг SkillComparison=Сравнение навыков +ActionsOnJob=События на этой работе +VacantPosition=вакансия +VacantCheckboxHelper=Отметив эту опцию, вы увидите незаполненные вакансии (вакансия). +SaveAddSkill = Добавлены навыки +SaveLevelSkill = Уровень навыков сохранен +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 9cb29cecb8b..440984fd86f 100644 --- a/htdocs/langs/ru_RU/install.lang +++ b/htdocs/langs/ru_RU/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Файл конфигурации %s недосту ConfFileIsWritable=Файл конфигурации %s доступен для записи. ConfFileMustBeAFileNotADir=Файл конфигурации %s должен быть файлом, а не каталогом. ConfFileReload=Перезагрузка параметров из файла конфигурации. +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 поддерживает сессии. @@ -16,13 +17,6 @@ PHPMemoryOK=Максимально допустимый размер памят PHPMemoryTooLow=Максимальный объем памяти сеанса PHP установлен на %s байт. Это слишком мало. Измените php.ini, чтобы установить параметр memory_limit как минимум на %s байт. Recheck=Щелкните здесь, чтобы получить более подробный тест ErrorPHPDoesNotSupportSessions=Ваша установка PHP не поддерживает сеансы. Эта функция необходима для работы Dolibarr. Проверьте настройки PHP и права доступа к каталогу сессий. -ErrorPHPDoesNotSupportGD=Ваша установка PHP не поддерживает графические функции GD. Графики будут недоступны. -ErrorPHPDoesNotSupportCurl=Ваша установка PHP не поддерживает Curl. -ErrorPHPDoesNotSupportCalendar=Ваша установка PHP не поддерживает расширения календаря php. -ErrorPHPDoesNotSupportUTF8=Ваша установка PHP не поддерживает функции UTF8. Долибарр не может работать правильно. Устраните это перед установкой Dolibarr. -ErrorPHPDoesNotSupportIntl=Ваша установка PHP не поддерживает функции Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Ваша установка PHP не поддерживает расширенные функции отладки. ErrorPHPDoesNotSupport=Ваша установка PHP не поддерживает функции %s. ErrorDirDoesNotExists=Каталог %s не существует. ErrorGoBackAndCorrectParameters=Вернитесь и проверьте/исправьте параметры. @@ -30,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/interventions.lang b/htdocs/langs/ru_RU/interventions.lang index 0ddfa833ffd..668f1872d8a 100644 --- a/htdocs/langs/ru_RU/interventions.lang +++ b/htdocs/langs/ru_RU/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Шаблон посредничества ToCreateAPredefinedIntervention=Чтобы создать предопределенное или повторяющееся посредничество, создайте общее посредничество и преобразуйте его в шаблон посредничества. ConfirmReopenIntervention=Вы уверены, что хотите снова открыть посредничество %s? GenerateInter=Созадать посредничество +FichinterNoContractLinked=Вмешательство %s создано без связанного контракта. +ErrorFicheinterCompanyDoesNotExist=Компания не существует. Вмешательство не создано. 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/languages.lang b/htdocs/langs/ru_RU/languages.lang index c3a938ba05f..a03bca5d862 100644 --- a/htdocs/langs/ru_RU/languages.lang +++ b/htdocs/langs/ru_RU/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=Эфиопский Language_ar_AR=Арабский Language_ar_DZ=Арабский (Алжир) Language_ar_EG=Арабский (Египет) +Language_ar_JO=арабский (Иордания) Language_ar_MA=Арабский (Марокко) Language_ar_SA=Арабский Language_ar_TN=Арабский (Тунис) @@ -15,6 +16,7 @@ Language_bg_BG=Болгарский Language_bs_BA=Боснийский Language_ca_ES=Каталанский Language_cs_CZ=Чешский +Language_cy_GB=валлийский Language_da_DA=Датский Language_da_DK=Датский Language_de_DE=Немецкий @@ -22,6 +24,7 @@ Language_de_AT=Немецкий (Австрия) Language_de_CH=Немецкий (Швейцария) Language_el_GR=Греческий Language_el_CY=Греческий (Кипр) +Language_en_AE=Английский (Объединенные Арабские Эмираты) Language_en_AU=Английский (Австралия) Language_en_CA=Английский (Канада) Language_en_GB=Английский (Великобритания) @@ -83,6 +86,7 @@ Language_lt_LT=Литовский Language_lv_LV=Латышский Language_mk_MK=Македонский Language_mn_MN=Монгольский +Language_my_MM=бирманский Language_nb_NO=Норвежский (Букмол) Language_ne_NP=Непальский Language_nl_BE=Голландский (Бельгия) @@ -95,6 +99,7 @@ Language_ro_MD=Румынский (Молдавия) Language_ro_RO=Румынский Language_ru_RU=Русский Language_ru_UA=Русский (Украина) +Language_ta_IN=тамильский Language_tg_TJ=Таджикский Language_tr_TR=Турецкий Language_sl_SI=Словенский @@ -106,6 +111,7 @@ Language_sr_RS=сербский 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/ru_RU/loan.lang b/htdocs/langs/ru_RU/loan.lang index 451107ace47..02757632358 100644 --- a/htdocs/langs/ru_RU/loan.lang +++ b/htdocs/langs/ru_RU/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=Финансовые обязательства InterestAmount=Доля капитала CapitalRemain=Остается капитал TermPaidAllreadyPaid = Этот срок уже оплачен -CantUseScheduleWithLoanStartedToPaid = Невозможно использовать планировщик для займа с начатым платежом +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Вы не можете изменить интерес, если используете расписание # Admin ConfigLoan=Настройка модуля займов diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index bf508d11dc8..9fab38bf618 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -88,7 +88,7 @@ FileWasNotUploaded=Файл выбран как вложение, но пока NbOfEntries=Кол-во записей GoToWikiHelpPage=Читать интернет-справку (необходим доступ к Интернету) GoToHelpPage=Читать помощь -DedicatedPageAvailable=Dedicated help page related to your current screen +DedicatedPageAvailable=Специальная страница справки, связанная с вашим текущим экраном HomePage=Домашняя страница RecordSaved=Запись сохранена RecordDeleted=Запись удалена @@ -115,7 +115,7 @@ ReturnCodeLastAccessInError=Код ошибки при последнем зап InformationLastAccessInError=Информация по ошибкам при последнем запросе доступа к базе данных DolibarrHasDetectedError=Dolibarr обнаружил техническую ошибку YouCanSetOptionDolibarrMainProdToZero=Вы можете прочитать файл журнала или установить опцию $dolibarr_main_prod в '0' в свой файл конфигурации, чтобы получить дополнительную информацию. -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=Технический идентификатор @@ -212,8 +212,8 @@ User=Пользователь Users=Пользователи Group=Группа Groups=Группы -UserGroup=User group -UserGroups=User groups +UserGroup=Группа пользователей +UserGroups=Группы пользователей NoUserGroupDefined=Не задана группа для пользователя Password=Пароль PasswordRetype=Повторите ваш пароль @@ -244,6 +244,7 @@ Designation=Описание DescriptionOfLine=Описание строки DateOfLine=Дата строки DurationOfLine=Продолжительность строки +ParentLine=Идентификатор родительской линии Model=Шаблон документа DefaultModel=Шаблон документа по-умолчанию Action=Действие @@ -344,7 +345,7 @@ KiloBytes=Килобайт MegaBytes=Мегабайт GigaBytes=Гигабайт TeraBytes=Терабайт -UserAuthor=Создано +UserAuthor=Created by UserModif=Обновлено b=б. Kb=Кб @@ -517,6 +518,7 @@ or=или Other=Другой Others=Другие OtherInformations=Дополнительная информация +Workflow=Бизнес-Процесс Quantity=Количество Qty=Кол-во ChangedBy=Изменен @@ -619,6 +621,7 @@ MonthVeryShort11=Н MonthVeryShort12=Д AttachedFiles=Присоединенные файлы и документы JoinMainDoc=Присоединить основной документ +JoinMainDocOrLastGenerated=Отправьте основной документ или последний сгенерированный, если он не найден DateFormatYYYYMM=ГГГГ-ММ DateFormatYYYYMMDD=ГГГГ-ММ-ДД DateFormatYYYYMMDDHHMM=ГГГГ-ММ-ДД ЧЧ:СС @@ -709,6 +712,7 @@ FeatureDisabled=Функция отключена MoveBox=Переместить виджет Offered=Предложено NotEnoughPermissions=У вас нет разрешений на это действие +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Имя Сессии Method=Метод Receive=Получить @@ -798,6 +802,7 @@ URLPhoto=Адрес фотографии/логотипа SetLinkToAnotherThirdParty=Ссылка на другого контрагента LinkTo=Ссылка LinkToProposal=Ссылка для предложения +LinkToExpedition= Link to expedition LinkToOrder=Ссылка для заказа LinkToInvoice=Ссылка для счета LinkToTemplateInvoice=Ссылка на шаблон счета @@ -909,7 +914,7 @@ ViewFlatList=Вид плоским списком ViewAccountList=Посмотреть бухгалтерскую книгу ViewSubAccountList=Просмотр книги вспомогательного счета RemoveString=Удалить строку '%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=Частная ссылка для скачивания @@ -1161,6 +1166,17 @@ Properties=Характеристики hasBeenValidated=%s был проверен ClientTZ=Часовой пояс клиента (пользователь) NotClosedYet=Еще не закрыто -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +ClearSignature=Сбросить подпись +CanceledHidden=Отменено скрыто +CanceledShown=Отменено показано +Terminate=Завершить +Terminated=Прекращено +AddLineOnPosition=Добавить строку в позицию (в конце, если пусто) +ConfirmAllocateCommercial=Назначение подтверждения торгового представителя +ConfirmAllocateCommercialQuestion=Вы уверены, что хотите назначить выбранные записи %s? +CommercialsAffected=Затронутые торговые представители +CommercialAffected=Затронутый торговый представитель +YourMessage=Your message +YourMessageHasBeenReceived=Ваше сообщение было получено. Мы ответим или свяжемся с вами в ближайшее время. +UrlToCheck=Url to check +Automation=Automation diff --git a/htdocs/langs/ru_RU/members.lang b/htdocs/langs/ru_RU/members.lang index 9da202bf86c..82f00fed1b6 100644 --- a/htdocs/langs/ru_RU/members.lang +++ b/htdocs/langs/ru_RU/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Еще один член (имя и < ErrorUserPermissionAllowsToLinksToItselfOnly=По соображениям безопасности, вы должны получить разрешение, чтобы изменить все пользователи должны иметь доступ к ссылке члена к пользователю, что это не твое. SetLinkToUser=Ссылка на Dolibarr пользователя SetLinkToThirdParty=Ссылка на Dolibarr третья сторона -MembersCards=Визитные карточки для участников +MembersCards=Генерация карточек для участников MembersList=Список участников MembersListToValid=Список кандидатов в участники (на утверждении) MembersListValid=Список действительных участников @@ -35,7 +35,8 @@ DateEndSubscription=Дата окончания членства EndSubscription=Конец членства SubscriptionId=Идентификатор вклада WithoutSubscription=Без вклада -MemberId=ID участника +MemberId=Member Id +MemberRef=Member Ref NewMember=Новый участник MemberType=Тип участника MemberTypeId=ID типа участника @@ -159,11 +160,11 @@ HTPasswordExport=htpassword файл поколения NoThirdPartyAssociatedToMember=Никакая третья сторона не связана с этим участником MembersAndSubscriptions=Члены и взносы MoreActions=Дополнительные меры по записи -MoreActionsOnSubscription=Дополнительное действие, предлагаемое по умолчанию при записи вклада +MoreActionsOnSubscription=Дополнительное действие, предлагаемое по умолчанию при записи взноса, а также автоматически выполняемое при онлайн-оплате взноса. MoreActionBankDirect=Создайте прямую запись на банковский счет MoreActionBankViaInvoice=Создайте счет-фактуру и оплату на банковский счет MoreActionInvoiceOnly=Создание счета без каких-либо оплаты -LinkToGeneratedPages=Создание визитки +LinkToGeneratedPages=Создание визитных карточек или адресных листов LinkToGeneratedPagesDesc=Этот экран позволяет вам создавать PDF файлы с визитных карточек для всех членов вашей или иной член. DocForAllMembersCards=Создание визитной карточки для всех участников DocForOneMemberCards=Создание визитной карточки для конкретного участника @@ -198,7 +199,7 @@ NbOfSubscriptions=Количество вкладов AmountOfSubscriptions=Сумма, полученная от взносов TurnoverOrBudget=Оборот (за компанию) или бюджета (за основу) DefaultAmount=Сумма взноса по умолчанию -CanEditAmount=Посетитель может выбрать / изменить размер своего взноса +CanEditAmount=Visitor can choose/edit amount of its contribution MEMBER_NEWFORM_PAYONLINE=Перейти по комплексному интернет страницу оплаты ByProperties=По природе MembersStatisticsByProperties=Статистика участников по характеру @@ -218,3 +219,5 @@ XExternalUserCreated=Созданы внешние пользователи %s ForceMemberNature=Характер участника силы (физическое лицо или корпорация) CreateDolibarrLoginDesc=Создание пользовательского входа для участников позволяет им подключаться к приложению. В зависимости от предоставленных разрешений они смогут, например, самостоятельно просматривать или изменять свой файл. CreateDolibarrThirdPartyDesc=Третья сторона - это юридическое лицо, которое будет указано в счете-фактуре, если вы решите создавать счет-фактуру для каждого вклада. Вы сможете создать его позже в процессе записи вклада. +MemberFirstname=Имя участника +MemberLastname=Фамилия участника diff --git a/htdocs/langs/ru_RU/modulebuilder.lang b/htdocs/langs/ru_RU/modulebuilder.lang index 00d5d6878ce..2e3f7000978 100644 --- a/htdocs/langs/ru_RU/modulebuilder.lang +++ b/htdocs/langs/ru_RU/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=Введите имя модуля/приложения, которое нужно создать, без пробелов. Используйте прописные буквы для разделения слов (например: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Введите имя создаваемого объекта без пробелов. Используйте прописные буквы для разделения слов (например: MyObject, Student, Teacher ...). Будет сгенерирован файл класса CRUD, а также файл API, страницы для списка/добавления/редактирования/удаления объекта и файлы SQL. +ModuleBuilderDesc=Этот инструмент должен использоваться только опытными пользователями или разработчиками. Он предоставляет утилиты для создания или редактирования вашего собственного модуля. Документация по альтернативной ручной разработке находится здесь . +EnterNameOfModuleDesc=Введите имя создаваемого модуля/приложения без пробелов. Используйте верхний регистр для разделения слов (например, MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Введите имя создаваемого объекта без пробелов. Используйте заглавные буквы для разделения слов (например: МойОбъект, Студент, Учитель...). Будет создан файл класса 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) @@ -52,7 +55,7 @@ LanguageFile=Файл для языка ObjectProperties=Свойства объекта ConfirmDeleteProperty=Вы действительно хотите удалить свойство %s? Это изменит код в классе PHP, но также удалит столбец из определения объекта в таблице. NotNull=Ненулевой -NotNullDesc=1 = Установить для базы данных значение НЕ NULL. -1 = разрешить нулевые значения и принудительно установить значение NULL, если пусто ('' или 0). +NotNullDesc=1=Установить для базы данных значение NOT NULL, 0=Разрешить нулевые значения, -1=Разрешить нулевые значения, принудив значение к NULL, если оно пустое ('' или 0) SearchAll=Используется для поиска по всем DatabaseIndex=Индекс базы данных FileAlreadyExists=Файл %s уже существует @@ -94,11 +97,11 @@ LanguageDefDesc=Введите в эти файлы все ключи и пер MenusDefDesc=Определите здесь меню, предоставляемые вашим модулем DictionariesDefDesc=Определите здесь словари, предоставленные вашим модулем PermissionsDefDesc=Определите здесь новые разрешения, предоставляемые вашим модулем -MenusDefDescTooltip=Меню, предоставляемые вашим модулем / приложением, определены в массиве $ this-> menus в файле дескриптора модуля. Вы можете редактировать этот файл вручную или использовать встроенный редактор.

    Примечание. После определения (и повторной активации модуля) меню также отображаются в редакторе меню, доступном для пользователей-администраторов на %s. +MenusDefDescTooltip=Меню, предоставляемые вашим модулем/приложением, определены в массиве $this->menus в файле дескриптора модуля. Вы можете редактировать этот файл вручную или использовать встроенный редактор.

    Примечание. После определения (и повторной активации модуля) меню также отображаются в редакторе меню, доступном для пользователей-администраторов на %s. DictionariesDefDescTooltip=Словари, предоставляемые вашим модулем / приложением, определены в массиве $ this-> dictionaries в файле дескриптора модуля. Вы можете редактировать этот файл вручную или использовать встроенный редактор.

    Примечание. После определения (и повторной активации модуля) словари также отображаются в области настройки для пользователей-администраторов на %s. PermissionsDefDescTooltip=Разрешения, предоставляемые вашим модулем / приложением, определены в массиве $ this-> rights в файле дескриптора модуля. Вы можете редактировать этот файл вручную или использовать встроенный редактор.

    Примечание. После определения (и повторной активации модуля) разрешения отображаются в настройках разрешений по умолчанию %s. HooksDefDesc=Определите в свойстве module_parts ['hooks'] в дескрипторе модуля контекст хуков, которыми вы хотите управлять (список контекстов можно найти, выполнив поиск в ' initHooks' файл перехвата для добавления кода ваших перехваченных функций (подключаемые функции можно найти, выполнив поиск по ' executeHooks ' в основном коде). -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=Определите в файле триггера код, который вы хотите выполнять при выполнении бизнес-события, внешнего по отношению к вашему модулю (события, инициированные другими модулями). SeeIDsInUse=См. Идентификаторы, используемые в вашей установке SeeReservedIDsRangeHere=См. Диапазон зарезервированных идентификаторов ToolkitForDevelopers=Инструментарий для разработчиков Dolibarr @@ -110,7 +113,7 @@ DropTableIfEmpty=(Уничтожить таблицу, если она пуст TableDoesNotExists=Таблица %s не существует TableDropped=Таблица %s удалена InitStructureFromExistingTable=Построить строку массива структуры существующей таблицы -UseAboutPage=Отключить страницу с информацией +UseAboutPage=Не создавать страницу «О нас» UseDocFolder=Отключить папку документации UseSpecificReadme=Используйте специальный файл ReadMe ContentOfREADMECustomized=Примечание. Содержимое файла README.md было заменено конкретным значением, определенным в настройке ModuleBuilder. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Используйте конкретный URL-адре UseSpecificFamily = Используйте конкретную семью UseSpecificAuthor = Использовать конкретного автора UseSpecificVersion = Используйте конкретную начальную версию -IncludeRefGeneration=Ссылка на объект должна генерироваться автоматически -IncludeRefGenerationHelp=Установите этот флажок, если хотите включить код для автоматического управления генерацией ссылки. -IncludeDocGeneration=Я хочу сгенерировать некоторые документы из объекта +IncludeRefGeneration=Ссылка на объект должна генерироваться автоматически по пользовательским правилам нумерации. +IncludeRefGenerationHelp=Установите этот флажок, если вы хотите включить код для автоматического управления созданием ссылки с использованием пользовательских правил нумерации. +IncludeDocGeneration=Я хочу сгенерировать некоторые документы из шаблонов для объекта IncludeDocGenerationHelp=Если вы установите этот флажок, будет сгенерирован некоторый код для добавления поля «Создать документ» в запись. ShowOnCombobox=Показать значение в поле со списком KeyForTooltip=Ключ для подсказки @@ -138,10 +141,15 @@ 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» означает, что мы добавляем кнопку + после комбо для создания записи, «фильтр» может быть, например, «status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)») +TypeOfFieldsHelp=Тип полей:
    varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' означает, что мы добавляем кнопку + после комбо для создания записи. AsciiToHtmlConverter=Конвертер ascii в HTML AsciiToPdfConverter=Конвертер ascii в PDF TableNotEmptyDropCanceled=Таблица не пустая. Дроп отменен. ModuleBuilderNotAllowed=Конструктор модулей доступен, но не разрешен для вашего пользователя. ImportExportProfiles=Импорт и экспорт профилей -ValidateModBuilderDesc=Поставьте 1, если это поле необходимо проверить с помощью $this-> validateField(), или 0, если требуется проверка. +ValidateModBuilderDesc=Установите это значение в 1, если вы хотите, чтобы метод $this->validateField() объекта вызывался для проверки содержимого поля во время вставки или обновления. Установите 0, если проверка не требуется. +WarningDatabaseIsNotUpdated=Предупреждение: База данных не обновляется автоматически, вы должны уничтожить таблицы и отключить-включить модуль для пересоздания таблиц. +LinkToParentMenu=Родительское меню (fk_xxxxmenu) +ListOfTabsEntries=Список вкладок +TabsDefDesc=Определите здесь вкладки, предоставляемые вашим модулем +TabsDefDescTooltip=Вкладки, предоставляемые вашим модулем/приложением, определены в массиве $this->tabs в файле дескриптора модуля. Вы можете редактировать этот файл вручную или использовать встроенный редактор. diff --git a/htdocs/langs/ru_RU/mrp.lang b/htdocs/langs/ru_RU/mrp.lang index 420cd88994e..31e5bd61a0f 100644 --- a/htdocs/langs/ru_RU/mrp.lang +++ b/htdocs/langs/ru_RU/mrp.lang @@ -27,7 +27,7 @@ ConfirmCloneBillOfMaterials=Вы уверены, что хотите клони ConfirmCloneMo=Вы действительно хотите клонировать заказ на производство %s? ManufacturingEfficiency=Эффективность производства ConsumptionEfficiency=Эффективность потребления -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +ValueOfMeansLoss=Значение 0,95 означает в среднем 5%% потерь при изготовлении или разборке. ValueOfMeansLossForProductProduced=Значение 0.95 означает в среднем 5%% потерь произведенного продукта. DeleteBillOfMaterials=Удалить перечень элементов DeleteMo=Удалить производственный заказ @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=За количество разобрать %s ConfirmValidateMo=Вы уверены, что хотите подтвердить этот производственный заказ? ConfirmProductionDesc=Нажав на '%s', вы подтвердите потребление и/или производство для установленных количеств. Это также обновит запасы и запишет движение запасов. ProductionForRef=Производство %s +CancelProductionForRef=Отмена уменьшения запаса продукта для продукта %s +TooltipDeleteAndRevertStockMovement=Удалить строку и восстановить движение запасов AutoCloseMO=Закрывайте производственный заказ автоматически, если достигнуты объемы потребления и производства. NoStockChangeOnServices=Нет изменений в наличии на сервисах ProductQtyToConsumeByMO=Количество продукта, которое еще предстоит потребить открытым ЗП @@ -107,3 +109,6 @@ THMEstimatedHelp=Эта ставка позволяет определить п BOM=Спецификации материалов CollapseBOMHelp=Вы можете определить отображение деталей номенклатуры по умолчанию в конфигурации модуля Спецификации материалов. MOAndLines=Производственные заказы и строки +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child 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/orders.lang b/htdocs/langs/ru_RU/orders.lang index acc5ef07907..b42a926dc76 100644 --- a/htdocs/langs/ru_RU/orders.lang +++ b/htdocs/langs/ru_RU/orders.lang @@ -68,6 +68,8 @@ CreateOrder=Создать заказ RefuseOrder=Отписаться порядка ApproveOrder=Утвердить заказ Approve2Order=Утвердить заказ (второй уровень) +UserApproval=Пользователь для утверждения +UserApproval2=Пользователь для утверждения (второй уровень) ValidateOrder=Проверка порядка UnvalidateOrder=Unvalidate порядке DeleteOrder=Удалить тему @@ -102,6 +104,8 @@ ConfirmCancelOrder=Вы уверены, что хотите отменить э ConfirmMakeOrder=Вы действительно хотите подтвердить, что сделали этот заказ на %s? GenerateBill=Создать счет-фактуру ClassifyShipped=Отметить доставленным +PassedInShippedStatus=классифицировано доставлено +YouCantShipThis=Я не могу классифицировать это. Пожалуйста, проверьте разрешения пользователя DraftOrders=Проект распоряжения DraftSuppliersOrders=Проекты заказов на закупку OnProcessOrders=В процессе заказов diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index 62d9acc6860..8e2e84fe83c 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... или создайте свой собственн DemoFundation=Управление членов Фонда DemoFundation2=Управление членами и банковские счета Фонда DemoCompanyServiceOnly=Только услуги компании или внештатного продавца -DemoCompanyShopWithCashDesk=Работа магазина в кассу +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Магазин, продающий товары с помощью Точки продаж DemoCompanyManufacturing=Компания по производству продукции DemoCompanyAll=Компания с несколькими видами деятельности (все основные модули) @@ -258,10 +258,10 @@ PassEncoding=Кодировка пароля PermissionsAdd=Разрешения добавлены PermissionsDelete=Разрешения удалены YourPasswordMustHaveAtLeastXChars=Ваш пароль должен содержать не менее %s символов. -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=Пароль должен состоять как минимум из символов верхнего регистра %s +PasswordNeedAtLeastXDigitChars=Пароль должен состоять как минимум из %s числовых символов. +PasswordNeedAtLeastXSpecialChars=Пароль должен содержать как минимум специальные символы %s +PasswordNeedNoXConsecutiveChars=В пароле не должно быть %s последовательных одинаковых символов. YourPasswordHasBeenReset=Ваш пароль был успешно сброшен ApplicantIpAddress=IP-адрес заявителя SMSSentTo=SMS отправлено на %s @@ -272,7 +272,7 @@ ProjectCreatedByEmailCollector=Проект создан сборщиком пи TicketCreatedByEmailCollector=Тикет создан сборщиком электронной почты из электронного адреса MSGID %s OpeningHoursFormatDesc=Используйте - для разделения часов открытия и закрытия.
    Используйте пробел для ввода различных диапазонов.
    Пример: 8-12 14-18 SuffixSessionName=Суффикс имени сеанса -LoginWith=Login with %s +LoginWith=Войти с помощью %s ##### Export ##### ExportsArea=Экспорт области @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=Выберите объект, чтобы про 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/partnership.lang b/htdocs/langs/ru_RU/partnership.lang index d13fcfbae30..35bca851ec4 100644 --- a/htdocs/langs/ru_RU/partnership.lang +++ b/htdocs/langs/ru_RU/partnership.lang @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Обратные ссылки для провер PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Кол-во дней до отмены статуса партнерства по истечении срока подписки ReferingWebsiteCheck=Проверка ссылки на сайт ReferingWebsiteCheckDesc=Вы можете включить функцию проверки того, что ваши партнеры добавили обратную ссылку на домены вашего веб-сайта на своем собственном веб-сайте. +PublicFormRegistrationPartnerDesc=Dolibarr может предоставить вам общедоступный URL-адрес/веб-сайт, чтобы внешние посетители могли запросить участие в партнерской программе. # # Object @@ -58,7 +59,13 @@ ManagePartnership=Управление партнерством BacklinkNotFoundOnPartnerWebsite=Обратная ссылка не найдена на партнерском сайте ConfirmClosePartnershipAsk=Вы уверены, что хотите отменить это партнерство? PartnershipType=Тип партнерства -PartnershipRefApproved=Partnership %s approved +PartnershipRefApproved=Партнерство %s одобрено +KeywordToCheckInWebsite=Если вы хотите проверить, присутствует ли данное ключевое слово на веб-сайте каждого партнера, определите это ключевое слово здесь. +PartnershipDraft=Проект +PartnershipAccepted=Принято +PartnershipRefused=Отклонено +PartnershipCanceled=Отменена +PartnershipManagedFor=Партнеры # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Количество ошибок при последне LastCheckBacklink=Дата последней проверки URL ReasonDeclineOrCancel=Причина отклонения -# -# Status -# -PartnershipDraft=Проект -PartnershipAccepted=Принято -PartnershipRefused=Отклонено -PartnershipCanceled=Отменена -PartnershipManagedFor=Партнеры +NewPartnershipRequest=Новый запрос на партнерство +NewPartnershipRequestDesc=Эта форма позволяет вам подать заявку на участие в одной из наших партнерских программ. Если вам нужна помощь в заполнении этой формы, свяжитесь с нами по электронной почте %s . + diff --git a/htdocs/langs/ru_RU/products.lang b/htdocs/langs/ru_RU/products.lang index 2dd938b567f..978c92b0201 100644 --- a/htdocs/langs/ru_RU/products.lang +++ b/htdocs/langs/ru_RU/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Вы уверены, что хотите удалить ProductSpecial=Специальные QtyMin=Мин. количество покупок PriceQtyMin=Цена количество мин. -PriceQtyMinCurrency=Цена (валюта) за это количество. (нет скидки) +PriceQtyMinCurrency=Цена (валюта) за данное количество. +WithoutDiscount=Без скидки VATRateForSupplierProduct=Ставка НДС (для этого поставщика/продукта) DiscountQtyMin=Скидка на это кол-во. NoPriceDefinedForThisSupplier=Цена/количество не определены для этого поставщика/продукта @@ -346,7 +347,7 @@ UseProductFournDesc=Добавьте функцию для определени ProductSupplierDescription=Описание продавца продукта UseProductSupplierPackaging=Использовать упаковку по ценам поставщика (пересчитать количества в соответствии с упаковкой, указанной в цене поставщика, при добавлении / обновлении строки в документах поставщика) PackagingForThisProduct=Упаковка -PackagingForThisProductDesc=По заказу поставщика вы автоматически закажете это количество (или кратное этому количеству). Не может быть меньше минимального закупочного количества +PackagingForThisProductDesc=Вы автоматически приобретете кратное этому количеству. QtyRecalculatedWithPackaging=Количество линии пересчитано в соответствии с упаковкой поставщика. #Attributes @@ -402,12 +403,27 @@ AmountUsedToUpdateWAP=Сумма, используемая для обновле PMPValue=Средневзвешенная цена PMPValueShort=СВЦ mandatoryperiod=Обязательные периоды -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined +mandatoryPeriodNeedTobeSet=Примечание. Период (дата начала и окончания) должен быть определен mandatoryPeriodNeedTobeSetMsgValidate=Услуге требуются начальный и конечный периоды -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=Установите этот флажок, если вы хотите, чтобы при создании/проверке счета-фактуры, коммерческого предложения, заказа на продажу пользователь получал сообщение без ввода даты начала и окончания в строках с этой услугой.
    Обратите внимание, что это сообщение является предупреждением, а не блокирующей ошибкой. DefaultBOM=Спецификация материалов по умолчанию DefaultBOMDesc=Спецификация материалов по умолчанию, рекомендованная для производства этого продукта. Это поле может быть установлено только в том случае, если тип продукта - "%s". Rank=Ранг -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +MergeOriginProduct=Товар-дубликат (товар, который вы хотите удалить) +MergeProducts=Объединить продукты +ConfirmMergeProducts=Вы уверены, что хотите объединить выбранный продукт с текущим? Все связанные объекты (счета, заказы, ...) будут перемещены в текущий продукт, после чего выбранный продукт будет удален. +ProductsMergeSuccess=Продукты были объединены +ErrorsProductsMerge=Ошибки в объединении продуктов +SwitchOnSaleStatus=Включить статус продажи +SwitchOnPurchaseStatus=Включить статус покупки +StockMouvementExtraFields= Дополнительные поля (стоковое движение) +InventoryExtraFields= Дополнительные поля (инвентарь) +ScanOrTypeOrCopyPasteYourBarCodes=Отсканируйте или введите или скопируйте/вставьте свои штрих-коды +PuttingPricesUpToDate=Обновить цены с текущими известными ценами +PMPExpected=Ожидаемый PMP +ExpectedValuation=Ожидаемая оценка +PMPReal=Настоящий пмп +RealValuation=Реальная оценка +ConfirmEditExtrafield = Выберите дополнительное поле, которое вы хотите изменить +ConfirmEditExtrafieldQuestion = Вы уверены, что хотите изменить это дополнительное поле? +ModifyValueExtrafields = Изменить значение дополнительного поля diff --git a/htdocs/langs/ru_RU/projects.lang b/htdocs/langs/ru_RU/projects.lang index 1a4260181ba..970947ec27f 100644 --- a/htdocs/langs/ru_RU/projects.lang +++ b/htdocs/langs/ru_RU/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Этикетка проекта ProjectsArea=Область проектов ProjectStatus=Статус проекта SharedProject=Общий проект -PrivateProject=Проект контакты +PrivateProject=Назначенные контакты ProjectsImContactFor=Проекты, с которыми я напрямую контактирую AllAllowedProjects=Все проекты, которые я могу прочитать (мой + общедоступный) AllProjects=Все проекты @@ -190,6 +190,7 @@ PlannedWorkload=Запланированная нагрузка PlannedWorkloadShort=Рабочая нагрузка ProjectReferers=Связанные элементы ProjectMustBeValidatedFirst=Проект должен быть сначала подтверждён +MustBeValidatedToBeSigned=%s необходимо сначала проверить, чтобы установить значение Signed. FirstAddRessourceToAllocateTime=Назначьте пользовательский ресурс в качестве контактного лица проекта для распределения времени InputPerDay=Ввод по дням InputPerWeek=Ввод по неделе @@ -197,7 +198,7 @@ InputPerMonth=Ввод в месяц InputDetail=Детализация ввода TimeAlreadyRecorded=Это время, уже зарегистрированное для этой задачи/день, и пользователь %s ProjectsWithThisUserAsContact=Проекты с этим пользователем в качестве контакта -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=Проекты с этим контактом TasksWithThisUserAsContact=Задачи, возложенные на этого пользователя ResourceNotAssignedToProject=Не привязан к проекту ResourceNotAssignedToTheTask=Не назначен на задачу @@ -258,7 +259,7 @@ TimeSpentInvoiced=Время, затраченное на оплату TimeSpentForIntervention=Время, затраченное на посредничество TimeSpentForInvoice=Время, проведенное OneLinePerUser=Одна строка на пользователя -ServiceToUseOnLines=Сервис для использования на линиях +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Счет-фактура %s была создана на основе времени, потраченного на проект InterventionGeneratedFromTimeSpent=Посредничество %s было создано из времени, потраченного на проект ProjectBillTimeDescription=Проверьте, вводите ли вы расписание для задач проекта И планируете ли вы генерировать счет (-а) из расписания, чтобы выставить счет клиенту проекта (не проверяйте, планируете ли вы создавать счет, который не основан на введенных расписаниях). Примечание. Чтобы создать счет, перейдите на вкладку «Затраченное время» проекта и выберите строки для включения. @@ -285,5 +286,12 @@ PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Примечание: суще SelectLinesOfTimeSpentToInvoice=Выберите строки затраченного времени, за которые не выставлены счета, затем выполните массовое действие "Сгенерировать счет-фактуру", чтобы выставить их. ProjectTasksWithoutTimeSpent=Задачи проекта без затрат времени FormForNewLeadDesc=Спасибо, заполните следующую форму, чтобы связаться с нами. Вы также можете отправить нам электронное письмо прямо на адрес %s. -ProjectsHavingThisContact=Projects having this contact +ProjectsHavingThisContact=Проекты, имеющие этот контакт StartDateCannotBeAfterEndDate=Дата окончания не может быть раньше даты начала +ErrorPROJECTLEADERRoleMissingRestoreIt=Роль "PROJECTLEADER" отсутствует или деактивирована, восстановите в словаре типов контактов +LeadPublicFormDesc=Вы можете включить здесь общедоступную страницу, чтобы ваши потенциальные клиенты могли установить с вами первый контакт из общедоступной онлайн-формы. +EnablePublicLeadForm=Включить общедоступную форму для связи +NewLeadbyWeb=Ваше сообщение или запрос записаны. Мы ответим или свяжемся с вами в ближайшее время. +NewLeadForm=Новая контактная форма +LeadFromPublicForm=Лид онлайн из публичной формы +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/ru_RU/propal.lang b/htdocs/langs/ru_RU/propal.lang index 7a127a5fc1e..ca06e8b891f 100644 --- a/htdocs/langs/ru_RU/propal.lang +++ b/htdocs/langs/ru_RU/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Нет проектов коммерческих дредлож CopyPropalFrom=Создание коммерческого предложения, копируя существующие предложения CreateEmptyPropal=Создать пустое коммерческое предложение или из списка продуктов/услуг DefaultProposalDurationValidity=По умолчанию коммерческого предложения действительности продолжительность (в днях) +DefaultPuttingPricesUpToDate=По умолчанию обновить цены с текущими известными ценами на клонирование предложения UseCustomerContactAsPropalRecipientIfExist=В качестве адреса получателя предложения используйте контакт/адрес с типом "Контактное последующее предложение", если он определен, вместо стороннего адреса. ConfirmClonePropal=Вы уверены, что хотите клонировать коммерческое предложение %s? ConfirmReOpenProp=Вы уверены, что хотите снова открыть коммерческое предложение %s? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Письменное подтверждение, пе ProposalsStatisticsSuppliers=Статистика предложений поставщиков CaseFollowedBy=Дело, за которым следует SignedOnly=Только подписано +NoSign=Набор не подписан +NoSigned=набор не подписан +CantBeNoSign=нельзя установить не подписанным +ConfirmMassNoSignature=Массовое не подписанное подтверждение +ConfirmMassNoSignatureQuestion=Вы уверены, что хотите установить неподписанные выбранные записи? +IsNotADraft=это не черновик +PassedInOpenStatus=был подтвержден +Sign=Подписать +Signed=подписал +ConfirmMassValidation=Массовое подтверждение подтверждения +ConfirmMassSignature=Массовое подтверждение подписи +ConfirmMassValidationQuestion=Вы уверены, что хотите проверить выбранные записи? +ConfirmMassSignatureQuestion=Вы уверены, что хотите подписать выбранные записи? IdProposal=ID предложения IdProduct=идантификационный номер продукта -PrParentLine=Родительская линия предложения LineBuyPriceHT=Цена покупки Сумма без налога для строки SignPropal=Принять предложение RefusePropal=Отказаться от предложения Sign=Подписать +NoSign=Набор не подписан PropalAlreadySigned=Предложение уже принято PropalAlreadyRefused=Предложение уже отклонено PropalSigned=Предложение принято diff --git a/htdocs/langs/ru_RU/receiptprinter.lang b/htdocs/langs/ru_RU/receiptprinter.lang index 251e075fc28..9254a259c5c 100644 --- a/htdocs/langs/ru_RU/receiptprinter.lang +++ b/htdocs/langs/ru_RU/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Тест отправлен на принтер %s ReceiptPrinter=Чековые принтеры ReceiptPrinterDesc=Настройка принтеров чеков ReceiptPrinterTemplateDesc=Настройка шаблонов -ReceiptPrinterTypeDesc=Описание типа чекового принтера +ReceiptPrinterTypeDesc=Пример возможных значений поля «Параметры» в зависимости от типа драйвера ReceiptPrinterProfileDesc=Описание профиля чекового принтера ListPrinters=Список принтеров SetupReceiptTemplate=Настройка шаблона @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Высота и ширина по умолчанию DOL_UNDERLINE=Включить подчеркивание DOL_UNDERLINE_DISABLED=Отключить подчеркивание DOL_BEEP=Звуковой сигнал +DOL_BEEP_ALTERNATIVE=Beep sound (alternative mode) +DOL_PRINT_CURR_DATE=Print current date/time DOL_PRINT_TEXT=Печатать текст DateInvoiceWithTime=Дата и время выставления счета YearInvoice=Год выставления счета diff --git a/htdocs/langs/ru_RU/recruitment.lang b/htdocs/langs/ru_RU/recruitment.lang index eed50e966df..5d322684bfb 100644 --- a/htdocs/langs/ru_RU/recruitment.lang +++ b/htdocs/langs/ru_RU/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=Вакансия закрыта. ExtrafieldsJobPosition=Дополнительные атрибуты (должности) ExtrafieldsApplication=Дополнительные атрибуты (заявления о приеме на работу) MakeOffer=Сделай предложение +WeAreRecruiting=Мы набираем. Это список вакансий, которые необходимо заполнить... +NoPositionOpen=На данный момент открытых позиций нет diff --git a/htdocs/langs/ru_RU/stocks.lang b/htdocs/langs/ru_RU/stocks.lang index 2d7be0cac75..7c312bebafc 100644 --- a/htdocs/langs/ru_RU/stocks.lang +++ b/htdocs/langs/ru_RU/stocks.lang @@ -96,7 +96,7 @@ RealStock=Real фондовая RealStockDesc=Физические/реальные запасы - это запасы, находящиеся в настоящее время на складах. RealStockWillAutomaticallyWhen=Реальный запас будет изменен в соответствии с этим правилом (как определено в модуле Stock): VirtualStock=Виртуальный запас -VirtualStockAtDate=Virtual stock at a future date +VirtualStockAtDate=Виртуальный запас в будущем VirtualStockAtDateDesc=Виртуальный запас, когда все отложенные заказы, которые планируется обработать до выбранной даты, будут завершены VirtualStockDesc=Виртуальный запас - это рассчитанный запас, доступный после того, как все открытые/ожидающие действия (которые влияют на запасы) закрыты (полученные заказы на покупку, отправленные заказы на продажу, созданные заказы на производство и т. Д.) AtDate=На дату @@ -176,9 +176,9 @@ ProductStockWarehouseCreated=Правильно установлен лимит ProductStockWarehouseUpdated=Правильно обновлен лимит запаса для оповещения и желаемый оптимальный запас ProductStockWarehouseDeleted=Правильно удален лимит запасов для предупреждения и желаемый оптимальный запас AddNewProductStockWarehouse=Установите новый лимит для предупреждений и желаемый оптимальный запас -AddStockLocationLine=Уменьшите количество, затем нажмите, чтобы добавить еще один склад для этого продукта +AddStockLocationLine=Уменьшите количество, затем нажмите, чтобы разделить строку InventoryDate=Дата инвентаризации -Inventories=Inventories +Inventories=Запасы NewInventory=Новый инвентарь inventorySetup = Настройка инвентаря inventoryCreatePermission=Создать новый инвентарь @@ -207,8 +207,8 @@ INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Движение запасов б inventoryChangePMPPermission=Разрешить изменять значение PMP для продукта ColumnNewPMP=Новый агрегат ПМП OnlyProdsInStock=Не добавляйте товар без наличия на складе -TheoricalQty=Theorical qty -TheoricalValue=Theorical qty +TheoricalQty=Теоретическое количество +TheoricalValue=Теоретическое количество LastPA=Последний БП CurrentPA=Текущий БП RecordedQty=Записанное количество @@ -241,7 +241,7 @@ StockAtDatePastDesc=Здесь вы можете просмотреть запа StockAtDateFutureDesc=Здесь вы можете просмотреть акции (виртуальные акции) на определенную дату в будущем. CurrentStock=Текущий запас InventoryRealQtyHelp=Установите значение 0 для сброса количества
    Оставьте поле пустым или удалите строку, чтобы оставить без изменений -UpdateByScaning=Complete real qty by scaning +UpdateByScaning=Полное реальное количество путем сканирования UpdateByScaningProductBarcode=Обновление путем сканирования (штрих-код продукта) UpdateByScaningLot=Обновление сканированием (партия | серийный штрих-код) DisableStockChangeOfSubProduct=Деактивируйте замену запаса для всех вспомогательных продуктов этого набора во время этого движения. @@ -254,20 +254,64 @@ ReOpen=Открыть заново ConfirmFinish=Вы подтверждаете закрытие инвентаря? Это будет генерировать все движения запаса, чтобы обновить ваш запас до реального количества, которое вы ввели в инвентарь. ObjectNotFound=%s не найден MakeMovementsAndClose=Создайте движения и закройте -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Заполните реальное количество ожидаемым количеством ShowAllBatchByDefault=По умолчанию, детали партии продукта отображаются на вкладке "склад" CollapseBatchDetailHelp=Вы можете установить отображение деталей партии по умолчанию в конфигурации модуля запасы ErrorWrongBarcodemode=Неизвестный режим штрих-кода ProductDoesNotExist=Продукта не существует -ErrorSameBatchNumber=Several record for the batch number were found in the inventory sheet. No way to know which one to increase. +ErrorSameBatchNumber=В инвентарной ведомости было обнаружено несколько записей о номере партии. Нет способа узнать, какой из них увеличить. ProductBatchDoesNotExist=Продукт с партией/серией не существует ProductBarcodeDoesNotExist=Продукт со штрих-кодом не существует WarehouseId=ID склада WarehouseRef=Ссылка на склад -SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. +SaveQtyFirst=Сначала сохраните реальные инвентаризационные количества, прежде чем запрашивать создание движения запасов. +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 +ErrorOnElementsInventory=Операция отменена по следующей причине: +ErrorCantFindCodeInInventory=Не могу найти следующий код в инвентаре +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 69aea15308a..55c3103a6b1 100644 --- a/htdocs/langs/ru_RU/ticket.lang +++ b/htdocs/langs/ru_RU/ticket.lang @@ -90,15 +90,17 @@ TicketPublicAccess=Публичный интерфейс, не требующи TicketSetupDictionaries=Тип тикета, серьезность и аналитические коды настраиваются из словарей. TicketParamModule=Настройка переменных модуля TicketParamMail=Настройка электронной почты -TicketEmailNotificationFrom=Уведомление по электронной почте от -TicketEmailNotificationFromHelp=Используется в ответе на тикет-сообщение на примере -TicketEmailNotificationTo=Уведомления по электронной почте на адрес -TicketEmailNotificationToHelp=Отправлять уведомления по электронной почте на этот адрес. +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=Текстовое сообщение, отправленное после создания тикета TicketNewEmailBodyHelp=Указанный здесь текст будет вставлен в электронное письмо, подтверждающее создание нового тикета из общедоступного интерфейса. Информация о просмотре тикета добавляется автоматически. TicketParamPublicInterface=Настройка публичного интерфейса TicketsEmailMustExist=Требовать существующий адрес электронной почты для создания тикета TicketsEmailMustExistHelp=В публичном интерфейсе адрес электронной почты уже должен быть заполнен в базе данных для создания нового тикета. +TicketCreateThirdPartyWithContactIfNotExist=Спросите имя и название компании для неизвестных электронных писем. +TicketCreateThirdPartyWithContactIfNotExistHelp=Проверьте, существует ли третье лицо или контакт для введенного адреса электронной почты. Если нет, спросите имя и название компании, чтобы создать третью сторону с контактом. PublicInterface=Публичный интерфейс TicketUrlPublicInterfaceLabelAdmin=Альтернативный URL для публичного интерфейса TicketUrlPublicInterfaceHelpAdmin=Можно определить псевдоним для веб-сервера и, таким образом, сделать доступным публичный интерфейс с другим URL-адресом (сервер должен действовать как прокси для этого нового URL-адреса) @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Отправлять электронное TicketsPublicNotificationNewMessageHelp=Отправлять электронное письмо(а), когда новое сообщение добавляется из публичного интерфейса (назначенному пользователю или электронное письмо с уведомлениями для (обновить) и/или электронное письмо с уведомлениями для) TicketPublicNotificationNewMessageDefaultEmail=Уведомления по электронной почте на (обновить) TicketPublicNotificationNewMessageDefaultEmailHelp=Отправляйте электронное письмо на этот адрес для каждого уведомления о новом сообщении, если для тикета не назначен пользователь или если у пользователя нет известного адреса электронной почты. +TicketsAutoReadTicket=Автоматически помечать тикет как прочитанный (при создании из бэк-офиса) +TicketsAutoReadTicketHelp=Автоматически помечать тикет как прочитанный при создании из бэк-офиса. При создании тикета из публичного интерфейса тикет остается со статусом «Не прочитано». +TicketsDelayBeforeFirstAnswer=Новый тикет должен получить первый ответ до (часов): +TicketsDelayBeforeFirstAnswerHelp=Если новая заявка не получила ответа по истечении этого периода времени (в часах), в представлении списка будет отображаться значок важного предупреждения. +TicketsDelayBetweenAnswers=Неразрешенный тикет не должен оставаться неактивным в течение (часов): +TicketsDelayBetweenAnswersHelp=Если неразрешенная заявка, на которую уже получен ответ, не подвергалась дальнейшему взаимодействию по истечении этого периода времени (в часах), в представлении списка будет отображаться значок предупреждения. +TicketsAutoNotifyClose=Автоматически уведомлять третье лицо при закрытии тикета +TicketsAutoNotifyCloseHelp=При закрытии тикета вам будет предложено отправить сообщение одному из сторонних контактов. При массовом закрытии сообщение будет отправлено одному контакту третьей стороны, связанной с заявкой. +TicketWrongContact=Предоставленный контакт не является частью текущих контактов заявки. Электронная почта не отправлена. +TicketChooseProductCategory=Категория продукта для тикет-поддержки +TicketChooseProductCategoryHelp=Выберите категорию продукта поддержки билетов. Это будет использоваться для автоматической привязки контракта к тикету. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Сортировать по дате по возрастанию OrderByDateDesc=Сортировать по дате по убыванию ShowAsConversation=Показать как список бесед MessageListViewType=Показать как список таблиц +ConfirmMassTicketClosingSendEmail=Автоматически отправлять электронные письма при закрытии заявок +ConfirmMassTicketClosingSendEmailQuestion=Вы хотите уведомлять третьих лиц при закрытии этих билетов? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Получатель пуст. Э TicketGoIntoContactTab=Пожалуйста, перейдите на вкладку «Контакты», чтобы выбрать их. TicketMessageMailIntro=Вступление TicketMessageMailIntroHelp=Этот текст добавляется только в начале письма и не сохраняется. -TicketMessageMailIntroLabelAdmin=Знакомство с сообщением при отправке электронной почты -TicketMessageMailIntroText=Привет,
    На тикет, с которым вы связаны, был отправлен новый ответ. Вот сообщение:
    -TicketMessageMailIntroHelpAdmin=Этот текст будет вставлен перед текстом ответа на тикет. +TicketMessageMailIntroLabelAdmin=Вводный текст ко всем ответам на билеты +TicketMessageMailIntroText=Здравствуйте,
    В заявку, на которую вы подписаны, добавлен новый ответ. Вот сообщение:
    +TicketMessageMailIntroHelpAdmin=Этот текст будет вставлен перед ответом при ответе на тикет от Долибарра. TicketMessageMailSignature=Подпись TicketMessageMailSignatureHelp=Этот текст добавляется только в конце письма и не сохраняется. -TicketMessageMailSignatureText=

    С уважением,

    --

    +TicketMessageMailSignatureText=Сообщение отправлено %s через Долибарр TicketMessageMailSignatureLabelAdmin=Подпись ответного электронного письма TicketMessageMailSignatureHelpAdmin=Этот текст будет вставлен после ответного сообщения. TicketMessageHelp=Только этот текст будет сохранен в списке сообщений в карточке тикета. @@ -238,9 +254,16 @@ TicketChangeStatus=Изменить статус TicketConfirmChangeStatus=Подтвердите изменение статуса: %s? TicketLogStatusChanged=Статус изменен: с %s на %s TicketNotNotifyTiersAtCreate=Не уведомлять компанию при создании +NotifyThirdpartyOnTicketClosing=Контакты для уведомления при закрытии тикета +TicketNotifyAllTiersAtClose=Все связанные контакты +TicketNotNotifyTiersAtClose=Нет связанного контакта Unread=Непрочитанный TicketNotCreatedFromPublicInterface=Недоступен. Тикет не был создан из публичного интерфейса. ErrorTicketRefRequired=Требуется справочное название тикета. +TicketsDelayForFirstResponseTooLong=Слишком много времени прошло с момента открытия билета без ответа. +TicketsDelayFromLastResponseTooLong=Прошло слишком много времени с момента последнего ответа на этот запрос. +TicketNoContractFoundToLink=Не было найдено ни одного контракта, автоматически связанного с этим тикетом. Привяжите договор вручную. +TicketManyContractsLinked=Многие контракты были автоматически привязаны к этому тикету. Обязательно проверьте, что следует выбрать. # # Logs @@ -268,8 +291,9 @@ TicketNewEmailBody=Это автоматическое электронное п TicketNewEmailBodyCustomer=Это автоматическое электронное письмо, подтверждающее, что в вашу учетную запись только что был добавлен новый тикет. TicketNewEmailBodyInfosTicket=Информация для наблюдения за тикетом TicketNewEmailBodyInfosTrackId=Номер отслеживания тикетов: %s -TicketNewEmailBodyInfosTrackUrl=Вы можете просмотреть ход выполнения тикета, щелкнув ссылку выше. +TicketNewEmailBodyInfosTrackUrl=Вы можете просмотреть ход выполнения заявки, нажав на следующую ссылку TicketNewEmailBodyInfosTrackUrlCustomer=Вы можете просмотреть ход выполнения тикета в определенном интерфейсе, щелкнув следующую ссылку +TicketCloseEmailBodyInfosTrackUrlCustomer=Вы можете ознакомиться с историей этого билета, нажав на следующую ссылку TicketEmailPleaseDoNotReplyToThisEmail=Пожалуйста, не отвечайте на это письмо напрямую! Используйте ссылку, чтобы ответить в интерфейсе. TicketPublicInfoCreateTicket=Эта форма позволяет вам записать тикет в службу поддержки в нашей системе управления. TicketPublicPleaseBeAccuratelyDescribe=Пожалуйста, подробно опишите проблему. Предоставьте как можно больше информации, чтобы мы могли правильно идентифицировать ваш запрос. @@ -291,6 +315,10 @@ NewUser=Новый пользователь NumberOfTicketsByMonth=Количество тикетов в месяц NbOfTickets=Количество тикетов # notifications +TicketCloseEmailSubjectCustomer=Билет закрыт +TicketCloseEmailBodyCustomer=Это автоматическое сообщение, уведомляющее вас о том, что тикет %s только что был закрыт. +TicketCloseEmailSubjectAdmin=Заявка закрыта — Réf %s (идентификатор публичной заявки %s) +TicketCloseEmailBodyAdmin=Заявка с ID #%s только что закрыта, смотрите информацию: TicketNotificationEmailSubject=Тикет %s обновлен TicketNotificationEmailBody=Это автоматическое сообщение, уведомляющее вас о том, что тикет %s только что был обновлен. TicketNotificationRecipient=Получатель уведомления @@ -318,7 +346,7 @@ BoxTicketLastXDays=Количество новых тикетов по дням BoxTicketLastXDayswidget = Количество новых тикетов по дням за последние X дней BoxNoTicketLastXDays=Нет новых тикетов за последние %s дней BoxNumberOfTicketByDay=Количество новых тикетов по дням -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=Количество тикетов по сравнению с закрытыми тикетами (сегодня) TicketCreatedToday=Тикет создан сегодня TicketClosedToday=Тикет закрыт сегодня KMFoundForTicketGroup=Мы нашли темы и ответы на часто задаваемые вопросы, которые могут ответить на ваш вопрос, спасибо, что проверили их перед отправкой тикета. diff --git a/htdocs/langs/ru_RU/users.lang b/htdocs/langs/ru_RU/users.lang index 45240c93d30..94adab2ba55 100644 --- a/htdocs/langs/ru_RU/users.lang +++ b/htdocs/langs/ru_RU/users.lang @@ -114,7 +114,7 @@ UserLogoff=Выход пользователя UserLogged=Пользователь вошел DateOfEmployment=Дата трудоустройства DateEmployment=Работа -DateEmploymentstart=Дата начала трудоустройства +DateEmploymentStart=Дата начала трудоустройства DateEmploymentEnd=Дата окончания занятости RangeOfLoginValidity=Диапазон дат действия доступа CantDisableYourself=Вы не можете отключить свою собственную запись пользователя @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=По умолчанию валидатор явл UserPersonalEmail=Личное электронное письмо UserPersonalMobile=Персональный мобильный телефон WarningNotLangOfInterface=Предупреждение, это основной язык, на котором говорит пользователь, а не язык интерфейса, который он выбрал для просмотра. Чтобы изменить язык интерфейса, видимый этим пользователем, перейдите на вкладку %s +DateLastLogin=Дата последнего входа +DatePreviousLogin=Дата предыдущего входа +IPLastLogin=IP последний логин +IPPreviousLogin=IP предыдущий логин diff --git a/htdocs/langs/ru_RU/withdrawals.lang b/htdocs/langs/ru_RU/withdrawals.lang index 69c5ee6602b..3c5f1a3f95d 100644 --- a/htdocs/langs/ru_RU/withdrawals.lang +++ b/htdocs/langs/ru_RU/withdrawals.lang @@ -15,7 +15,7 @@ BankTransferReceipt=Распоряжение о переводе кредита LatestBankTransferReceipts=Последние заказы на кредитный перевод %s LastWithdrawalReceipts=Последние файлы прямого дебета %s WithdrawalsLine=Строка ордера на прямой дебет -CreditTransfer=Credit transfer +CreditTransfer=Кредитный перевод CreditTransferLine=Кредитная переводная линия WithdrawalsLines=Строки распоряжения о прямом дебетовании CreditTransferLines=Кредитные переводные линии @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Счет поставщика ожидает оп InvoiceWaitingWithdraw=Счет-фактура ожидает прямого дебетования InvoiceWaitingPaymentByBankTransfer=Счет-фактура ожидает кредитового перевода AmountToWithdraw=Сумма снятия +AmountToTransfer=Сумма для перевода NoInvoiceToWithdraw=Открытых счетов на '%s' нет. Перейдите на вкладку '%s' в карточке счета, чтобы сделать запрос. NoSupplierInvoiceToWithdraw=Счет-фактура поставщика с открытыми «прямыми запросами на кредит» не ожидает. Перейдите на вкладку '%s' в карточке счета, чтобы сделать запрос. ResponsibleUser=Ответственный пользователь @@ -48,7 +49,7 @@ ThirdPartyBankCode=Код стороннего банка NoInvoiceCouldBeWithdrawed=Счет-фактура не списана успешно. Убедитесь, что счета выставлены на компании с действующим IBAN и что IBAN имеет UMR (уникальный мандат) с режимом %s . WithdrawalCantBeCreditedTwice=Эта квитанция о снятии средств уже помечена как зачисленная; это нельзя сделать дважды, так как это потенциально может привести к дублированию платежей и банковских операций. ClassCredited=Классифицировать зачисленных -ClassDebited=Classify debited +ClassDebited=Классифицировать списанные ClassCreditedConfirm=Вы уверены, что хотите классифицировать это изъятие как кредит на вашем счету в банке? TransData=Дата передачи TransMetod=Метод передачи @@ -82,7 +83,7 @@ StatusMotif7=Судебное решение StatusMotif8=Другая причина CreateForSepaFRST=Создать файл прямого дебета (SEPA FRST) CreateForSepaRCUR=Создать файл прямого дебета (SEPA RCUR) -CreateAll=Create direct debit file +CreateAll=Создать файл прямого дебета CreateFileForPaymentByBankTransfer=Создать файл для кредитного перевода CreateSepaFileForPaymentByBankTransfer=Создать файл кредитного перевода (SEPA) CreateGuichet=Только служба @@ -117,7 +118,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=Подписывая эту форму поручения, вы разрешаете (A) %s направить в ваш банк инструкции по дебетованию вашего счета и (B) вашему банку дебетовать ваш счет в соответствии с инструкциями от %s. Как часть ваших прав, вы имеете право на возмещение от вашего банка в соответствии с условиями вашего соглашения с вашим банком. Ваши права в отношении вышеуказанного мандата объясняются в заявлении, которое вы можете получить в своем банке. CreditorIdentifier=Идентификатор кредитора CreditorName=Имя кредитора SEPAFillForm=(B) Пожалуйста, заполните все поля, отмеченные * @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Дата исполнения CreateForSepa=Создать файл прямого дебета ICS=Идентификатор кредитора - ICS +IDS=Идентификатор дебитора END_TO_END=XML-тег SEPA "EndToEndId" - уникальный идентификатор, назначаемый каждой транзакции. USTRD=«Неструктурированный» тег SEPA XML ADDDAYS=Добавить дни к дате исполнения @@ -152,5 +154,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/ru_RU/workflow.lang b/htdocs/langs/ru_RU/workflow.lang index d9ad2170e18..db3c8d8cac9 100644 --- a/htdocs/langs/ru_RU/workflow.lang +++ b/htdocs/langs/ru_RU/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=При создании заявки автоматически создайте вмешательство. # 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_ORDER_CLASSIFY_RECEIVED_RECEPTION=Классифицировать связанный исходный заказ на покупку как полученный, когда прием подтвержден (и если количество, полученное всеми приемами, такое же, как в заказе на покупку для обновления) +descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=Классифицировать связанный исходный заказ на покупку как полученный, когда прием закрыт (и если количество, полученное всеми приемами, такое же, как в заказе на покупку для обновления) +# Autoclassify purchase invoice descWORKFLOW_BILL_ON_RECEPTION=Классифицируйте приемы как "выставленные" при подтверждении связанного заказа поставщика. +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=При создании тикета свяжите доступные контракты соответствующей третьей стороны +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=При привязке договоров искать среди договоров материнских компаний # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Закройте все вмешательства, связанные с заявкой, когда заявка закрыта AutomaticCreation=Автоматическое создание AutomaticClassification=Автоматическая классификация # Autoclassify shipment descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Классифицировать отгрузку из связанного источника как закрытую после подтверждения счета клиента +AutomaticClosing=Автоматическое закрытие +AutomaticLinking=Автоматическое связывание diff --git a/htdocs/langs/ru_UA/accountancy.lang b/htdocs/langs/ru_UA/accountancy.lang new file mode 100644 index 00000000000..f860205b216 --- /dev/null +++ b/htdocs/langs/ru_UA/accountancy.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - accountancy +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s diff --git a/htdocs/langs/ru_UA/companies.lang b/htdocs/langs/ru_UA/companies.lang new file mode 100644 index 00000000000..373e6cb5e14 --- /dev/null +++ b/htdocs/langs/ru_UA/companies.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - companies +ProfId3CM=Id. prof. 3 (Decree of creation) +ProfId3ShortCM=Decree of creation diff --git a/htdocs/langs/ru_UA/exports.lang b/htdocs/langs/ru_UA/exports.lang new file mode 100644 index 00000000000..061d20450dd --- /dev/null +++ b/htdocs/langs/ru_UA/exports.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - exports +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. +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. 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/products.lang b/htdocs/langs/ru_UA/products.lang new file mode 100644 index 00000000000..86edf80cafb --- /dev/null +++ b/htdocs/langs/ru_UA/products.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - products +BarCodePrintsheet=Print barcode diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index 0f8bd32536e..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,13 +714,14 @@ 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 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=Prečítajte intervencie Permission62=Vytvoriť / upraviť zásahy @@ -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 @@ -766,9 +768,10 @@ Permission122=Vytvoriť / modifikovať tretie strany spojené s používateľmi Permission125=Odstránenie tretej strany v súvislosti s užívateľmi Permission126=Export tretej strany 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=Zmazať projekty a úlohy ( taktiež súkromné projekty pre ktoré nie som kontakt ) +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=Prečítajte si poskytovatelia Permission147=Prečítajte si štatistiky Permission151=Read direct debit payment orders @@ -873,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 @@ -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=Nastavenie uložené SetupNotSaved=Setup not saved @@ -1122,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ť @@ -1187,7 +1197,7 @@ BankModuleNotActive=Účty v bankách modul nie je povolený, 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=Upozornenie -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=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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=Musíte povoliť aspoň jeden modul +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Áno v lete 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=Vodoznak k návrhom faktúr (ak žiadny prázdny) 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=Obchodné návrhy modul nastavenia ProposalsNumberingModules=Komerčné návrh číslovanie modely @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica HighlightLinesOnMouseHover=Zvýrazniť riadok pre prechode kurzora 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=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 @@ -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=Zmluvy MailToSendReception=Receptions +MailToExpenseReport=Expense reports MailToThirdparty=Tretie strany MailToMember=Členovia MailToUser=Užívatelia @@ -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=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 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/sk_SK/companies.lang b/htdocs/langs/sk_SK/companies.lang index f8dadfa8cfe..29fe6611cf5 100644 --- a/htdocs/langs/sk_SK/companies.lang +++ b/htdocs/langs/sk_SK/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Prospekcia plochy IdThirdParty=Id treťou stranou IdCompany=IČ IdContact=Contact ID +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Spoločnosť @@ -51,19 +52,22 @@ CivilityCode=Zdvorilosť kód RegisteredOffice=Sídlo spoločnosti Lastname=Priezvisko Firstname=Krstné meno +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Poradie úlohy UserTitle=Názov 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=Zákaznícky kód modelu SupplierCodeModel=Vendor code model Gencod=Čiarový kód +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof id 1 ProfId2Short=Prof id 2 @@ -159,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=Ostatné ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Všetko (Bez filtra) -ContactType=Kontaktujte typ +ContactType=Contact role ContactForOrders=Order kontakt ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Návrh je kontakt 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/install.lang b/htdocs/langs/sk_SK/install.lang index 9b9b37868ad..06f2fbed1cf 100644 --- a/htdocs/langs/sk_SK/install.lang +++ b/htdocs/langs/sk_SK/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Maximálna pamäť pre relácie v PHP je nastavená 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=Vaše nainštalované PHP nepodporuje 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=Adresár %s neexistuje. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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/members.lang b/htdocs/langs/sk_SK/members.lang index dda03cb4fbf..4bb80890494 100644 --- a/htdocs/langs/sk_SK/members.lang +++ b/htdocs/langs/sk_SK/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Zoznam členov MembersListToValid=Zoznam návrhov členov (má byť overený) MembersListValid=Zoznam platných členov @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID člena +MemberId=Member Id +MemberRef=Member Ref NewMember=Nový člen MemberType=Členské typ MemberTypeId=Členské typ id @@ -159,11 +160,11 @@ HTPasswordExport=htpassword generovanie súboru NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Komplementárne akcie na záznam -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=Vytvorte faktúru bez zaplatenia -LinkToGeneratedPages=Vytvoriť vizitiek +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Táto obrazovka umožňuje vytvárať PDF súbory s vizitkami všetkých vašich členov alebo konkrétneho člena. DocForAllMembersCards=Vytvoriť vizitky pre všetkých členov DocForOneMemberCards=Vytvoriť vizitky pre konkrétny člena @@ -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/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang index 41e3d141a56..4d1c0b2f2f7 100644 --- a/htdocs/langs/sk_SK/other.lang +++ b/htdocs/langs/sk_SK/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Správa členov nadácie DemoFundation2=Správa členov a bankový účet nadácie DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Správa obchod s pokladňou +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zavrieť +Autofill = Autofill diff --git a/htdocs/langs/sk_SK/projects.lang b/htdocs/langs/sk_SK/projects.lang index 427c3d7af26..f83513f674c 100644 --- a/htdocs/langs/sk_SK/projects.lang +++ b/htdocs/langs/sk_SK/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Všetci -PrivateProject=Projekt kontakty +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Všetky projekty @@ -190,6 +190,7 @@ PlannedWorkload=Plánované zaťaženie 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 @@ -287,3 +288,9 @@ 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=Dátum ukončenia nemôže byť pred dátumom začatia +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 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/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index 6ee90a1853c..8712f5b9641 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -109,7 +109,7 @@ 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 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=Use graphical code (CAPTCHA) on login page and some public pages 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 AntiVirusParam= Več parametrov v ukazni vrstici @@ -477,7 +477,7 @@ InstalledInto=Installed into directory %s BarcodeInitForThirdparties=Mass barcode init for third-parties 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 +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=Zbrišite vse trenutne vrednosti črtnih kod ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? AllBarcodeReset=Vse vrednosti črtnih kod so bile odstranjene @@ -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=Brisanje komercialnih ponudb Permission28=Izvoz komercialnih ponudb Permission31=Branje proizvodov Permission32=Kreiranje/spreminjanje proizvodov +Permission33=Read prices products Permission34=Brisanje proizvodov Permission36=Pregled/upravljanje skritih proizvodov Permission38=Izvoz proizvodov 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=Branje intervencij Permission62=Kreiranje/spreminjanje intervencij @@ -739,6 +740,7 @@ Permission79=Kreiranje/spreminjanje naročnin Permission81=Branje naročil kupcev Permission82=Kreiranje/spreminjanje naročil kupcev Permission84=Potrjevanje naročil kupcev +Permission85=Generate the documents sales orders Permission86=Pošiljanje naročil kupcev Permission87=Zapiranje naročil kupcev Permission88=Preklic naročil kupcev @@ -766,9 +768,10 @@ 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 (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=Izbriši vse projekte in naloge (tudi zasebne, za katere jaz nisem kontaktna oseba) +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=Brisanje ponudnikov Permission147=Branje statistike Permission151=Read direct debit payment orders @@ -873,6 +876,7 @@ Permission525=Dostop do kalkulatorja posojil Permission527=Izvoz posojil Permission531=Branje storitev Permission532=Kreiranje/spreminjanje storitev +Permission533=Read prices services Permission534=Brisanje storitev Permission536=Pregled/upravljanje skritih storitev Permission538=Izvoz storitev @@ -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=Nastavitve shranjene SetupNotSaved=Setup not saved @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Value of a configuration constant ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=Na koncu meseca -CurrentNext=Current/Next +CurrentNext=A given day in month Offset=Odmik AlwaysActive=Vedno aktiven Upgrade=Nadgradnja @@ -1187,7 +1197,7 @@ 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://...' Alerts=Opozorila -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=Ime brskalnika BrowserOS=OS brskalnika ListOfSecurityEvents=Seznam varnostnih dogodkov Dolibarr SecurityEventsPurged=Varnostni dogodki očistimo +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=Sistemske informacije so raznovrstne tehnične informacije, ki so na voljo samo v bralnem načinu in jih vidi samo administrator. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %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 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:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Vodni žig na osnutku računa (nič, če je prazno) PaymentsNumberingModule=Payments numbering model 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. ##### Proposals ##### PropalSetup=Nastavitve modula za komercialne ponudbe ProposalsNumberingModules=Moduli za številčenje komercialnih ponudb @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica 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 @@ -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=Barva ozadja TopMenuBackgroundColor=Barva ozadja za zgornji meni -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Barva ozadja za levi meni 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=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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Nabavni nalogi MailToSendSupplierInvoice=Fakture dobaviteljev MailToSendContract=Pogodbe MailToSendReception=Receptions +MailToExpenseReport=Stroškovna poročila MailToThirdparty=Partnerji MailToMember=Člani MailToUser=Uporabniki @@ -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/sl_SI/companies.lang b/htdocs/langs/sl_SI/companies.lang index 6b689d59b9c..f3f446280b3 100644 --- a/htdocs/langs/sl_SI/companies.lang +++ b/htdocs/langs/sl_SI/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Področje možnih strank IdThirdParty=ID partnerja IdCompany=ID podjetja IdContact=ID kontakta +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Podjetje @@ -51,19 +52,22 @@ CivilityCode=Vljudnostni naziv RegisteredOffice=Registrirana poslovalnica Lastname=Priimek Firstname=Ime +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Naziv 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=Model kode kupca SupplierCodeModel=Vendor code model Gencod=Črtna koda +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Mat. št. ProfId2Short=Reg. sodišče @@ -159,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=Ostali ProfId6ShortCM=- ProfId1CO== ProfId2CO== @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Vsi (brez filtra) -ContactType=Vrsta kontakta +ContactType=Contact role ContactForOrders=Kontakt za naročilo ContactForOrdersOrShipments=Kontakt za naročilo ali pošiljanje ContactForProposals=Kontakt za ponudbo diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang index a27b6fceea6..7910fee7eaa 100644 --- a/htdocs/langs/sl_SI/errors.lang +++ b/htdocs/langs/sl_SI/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/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/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/members.lang b/htdocs/langs/sl_SI/members.lang index e4ef751c19a..a6e08729998 100644 --- a/htdocs/langs/sl_SI/members.lang +++ b/htdocs/langs/sl_SI/members.lang @@ -15,7 +15,7 @@ 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=Business cards for members +MembersCards=Generation of cards for members MembersList=Seznam članov MembersListToValid=Seznam predlaganih članov (potrebna potrditev) MembersListValid=Seznam potrjenih članov @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID člana +MemberId=Member Id +MemberRef=Member Ref NewMember=Nov član MemberType=Tip člana MemberTypeId=ID tipa člana @@ -159,11 +160,11 @@ HTPasswordExport=Ustvarjanje htpassword datoteke NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Dopolnilna aktivnost pri zapisovanju -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=Ustvarjanje računa brez plačila -LinkToGeneratedPages=Ustvari vizitko +LinkToGeneratedPages=Generation of business cards or address sheets 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) @@ -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/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index eccf4a08c37..a6f0c13b085 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Urejanje članov ustanove DemoFundation2=Urejanje članov in bančnih računov ustanove DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Urejanje trgovine z blagajno +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zapri +Autofill = Autofill diff --git a/htdocs/langs/sl_SI/projects.lang b/htdocs/langs/sl_SI/projects.lang index 3b61be3bbea..fa618707c71 100644 --- a/htdocs/langs/sl_SI/projects.lang +++ b/htdocs/langs/sl_SI/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Projekti v skupni rabi -PrivateProject=Kontakti za projekt +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Vsi projekti @@ -190,6 +190,7 @@ PlannedWorkload=Planirana delovna obremenitev PlannedWorkloadShort=Workload ProjectReferers=Related items 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 @@ -287,3 +288,9 @@ 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 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/sq_AL/companies.lang b/htdocs/langs/sq_AL/companies.lang index 74ba7e4a819..2ab213f5fdb 100644 --- a/htdocs/langs/sq_AL/companies.lang +++ b/htdocs/langs/sq_AL/companies.lang @@ -19,6 +19,7 @@ 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=Kompani @@ -51,6 +52,8 @@ CivilityCode=Civility code RegisteredOffice=Registered office Lastname=Mbiemri Firstname=Emri +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Title NatureOfThirdParty=Nature of Third party @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index 5c19513a263..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,37 +690,38 @@ 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 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=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=Model numerisanja uplata 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=Pozadinska boja za naslovnu liniju tabela 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=Ugovori MailToSendReception=Receptions +MailToExpenseReport=Troškovi 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/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 f0833945290..d263971284b 100644 --- a/htdocs/langs/sr_RS/companies.lang +++ b/htdocs/langs/sr_RS/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Oblast istraživanja IdThirdParty=Id subjekta IdCompany=Id Kompanije IdContact=Id Kontakta +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=Kompanija @@ -37,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. @@ -51,19 +52,22 @@ CivilityCode=Prijavni kod RegisteredOffice=Registrovane kancelarije Lastname=Prezime Firstname=Ime +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Job position UserTitle=Title 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=Model koda klijenta SupplierCodeModel=Vendor code model Gencod=Bar code +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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=Drugi ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Sve (Bez filtera) -ContactType=Tip kontakta +ContactType=Contact role ContactForOrders=Kontakt iz narudžbine ContactForOrdersOrShipments=Kontakti porudžbina ili dostava ContactForProposals=Kontakt iz ponude 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/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/members.lang b/htdocs/langs/sr_RS/members.lang index 18f5f367612..992b739b33f 100644 --- a/htdocs/langs/sr_RS/members.lang +++ b/htdocs/langs/sr_RS/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Lista članova MembersListToValid=Lista draft članova (za potvrdu) MembersListValid=Lista potvrđenih članova @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID člana +MemberId=Member Id +MemberRef=Member Ref NewMember=Novi član MemberType=Tip člana MemberTypeId=ID tipa člana @@ -159,11 +160,11 @@ HTPasswordExport=Generisanje fajla htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Dodatna aktivnost pri snimanju -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=Kreiraj fakturu bez uplate -LinkToGeneratedPages=Kreiraj vizit kartu +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Ovaj ekran omogućava generisanje PDF fajla sa vizit kartama svih Vaših članova ili jednog određenog člana. DocForAllMembersCards=Generiši vizit karte za sve članove DocForOneMemberCards=Generiši vizit kartu za određenog člana @@ -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/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 2cff1f8384a..b9561452741 100644 --- a/htdocs/langs/sr_RS/other.lang +++ b/htdocs/langs/sr_RS/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=Upravljanje članovima fondacije DemoFundation2=Upravljanje članovima i bankovnim računom fondacije DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=Upravljanje prodavnicom sa kasom +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Zatvori +Autofill = Autofill 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/projects.lang b/htdocs/langs/sr_RS/projects.lang index 5ee78601358..e623aaca9be 100644 --- a/htdocs/langs/sr_RS/projects.lang +++ b/htdocs/langs/sr_RS/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Naziv projekta ProjectsArea=Zona projekata ProjectStatus=Status projekta SharedProject=Svi -PrivateProject=Kontakti projekta +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Svi projekti @@ -190,6 +190,7 @@ PlannedWorkload=Planirano utrošeno vreme PlannedWorkloadShort=Utrošeno vreme ProjectReferers=Related items ProjectMustBeValidatedFirst=Projekat prvo mora biti odobren +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time InputPerDay=Ulaz po danu InputPerWeek=Ulaz po nedelji @@ -287,3 +288,9 @@ 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=Kraj ne može biti pre početka +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 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/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index 96f11653851..3baf9fff011 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Huvudkonton för abonnemangsbetalnin 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=Nästa steg bör göras för att spara dig tid i framtiden genom att föreslå dig rätt standardbokföringskonto när du gör bokföringen (skrivning i sloggboker och huvudbok) +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=Följande åtgärder utförs vanligtvis varje månad, vecka eller dag för mycket stora företag ... -AccountancyAreaDescJournalSetup=STEG %s: Skapa eller kolla innehållet i din loggboklista från menyn %s +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %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=STEG %s: Definiera standardbokföringskonto för varje typ av kostnadsrapport. 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. AccountancyAreaDescSal=STEG %s: Definiera standardbokföringskonto för betalning av löner. För detta, använd menyinmatningen %s. -AccountancyAreaDescContrib=STEG %s: Definiera standardbokföringskonto för specialkostnader (diverse skatter). 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. 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=STEG %s: Definiera bokföringskonto på dina produkter / tjänster. För detta, använd menyinmatningen %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %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 +112,7 @@ MenuAccountancyClosure=Stängning MenuAccountancyValidationMovements=Validera rörelser ProductsBinding=Produkter konton TransferInAccounting=Överföring i bokföring -RegistrationInAccounting=Registrering i bokföring +RegistrationInAccounting=Recording in accounting Binding=Förbindande till konton CustomersVentilation=Kundfaktura förbindande SuppliersVentilation=Leverantörsfaktura förbindande @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Utläggsrapport förbindande CreateMvts=Skapa ny transaktion UpdateMvts=Ändring av en transaktion ValidTransaction=Bekräfta transaktionen -WriteBookKeeping=Registrera transaktioner i bokföring +WriteBookKeeping=Record transactions in accounting Bookkeeping=Huvudbok BookkeepingSubAccount=Underledger AccountBalance=Kontobalans @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Redovisningskonto för att registrera donationer ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Redovisningskonto för att registrera prenumerationer ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Redovisningskonto som standard för att registrera kundinsättning +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Av fördefinierade grupper ByPersonalizedAccountGroups=Av personliga grupper ByYear=Per år NotMatch=Inte inställd -DeleteMvt=Ta bort några operationer från redovisningen +DeleteMvt=Delete some lines from accounting DelMonth=Månad att ta bort DelYear=År att radera DelJournal=Loggbok att radera -ConfirmDeleteMvt=Detta raderar alla operationer i bokföringen för året / månaden och / eller för en viss journal (minst ett kriterium krävs). Du måste återanvända funktionen '%s' för att ha den raderade posten tillbaka i huvudboken. -ConfirmDeleteMvtPartial=Detta raderar transaktionen från bokföringen (alla transaktionsrader relaterade till samma transaktion raderas) +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=Finansloggbok ExpenseReportsJournal=Utläggsrapporter loggbok DescFinanceJournal=Finansbokföring inklusive alla typer av betalningar via bankkonto @@ -278,30 +279,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=Se här antalet rörelser per månad som inte har validerats och räkenskapsår som redan är öppna -OverviewOfMovementsNotValidated=Steg 1 / Översikt över rörelser har inte validerats. (Nödvändigt för att avsluta ett räkenskapsår) -AllMovementsWereRecordedAsValidated=Alla rörelser registrerades som validerade -NotAllMovementsCouldBeRecordedAsValidated=Inte alla rörelser kunde spelas in som validerade -ValidateMovements=Validera rörelser +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=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) ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används -MvtNotCorrectlyBalanced=Rörelsen är inte korrekt balanserad. Debit = %s | Kredit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %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=Inga flera linjer att bokföra +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Förteckning över produkter som inte är kopplade till något kontokonto ChangeBinding=Ändra bindningen Accounted=Redovisas i huvudbok NotYetAccounted=Not yet transferred to accounting ShowTutorial=Visa handledning NotReconciled=Inte avstämd -WarningRecordWithoutSubledgerAreExcluded=Varning, alla åtgärder utan underskrivningskonto definieras filtreras och utesluts från den här vyn +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=Bindande alternativ @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Inaktivera bindning och överföring av ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Inaktivera bindning och överföring i bokföring på kostnadsrapporter (kostnadsrapporter kommer inte att beaktas vid redovisning) ## 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) +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=Bekräftelse på generering av bokföringsexportfilen? ExportDraftJournal=Exportera utkast till loggbok Modelcsv=Modell av export @@ -394,6 +397,21 @@ 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 + +## 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=Några obligatoriska steg för installationen var inte färdiga, var god fyll i dem ErrorNoAccountingCategoryForThisCountry=Ingen redovisningskoncern tillgänglig för land %s (Se Hem - Inställning - Ordböcker) @@ -406,6 +424,9 @@ 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 ## Import ImportAccountingEntries=Redovisningsposter diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index f9d711c0215..afd89b4fd7b 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -109,7 +109,7 @@ 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 +UseCaptchaCode=Använd grafisk kod (CAPTCHA) på inloggningssidan och publika sidor 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 AntiVirusParam= Fler parametrar på kommandoraden @@ -477,7 +477,7 @@ 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 +InitEmptyBarCode=Init value for the %s empty barcodes 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 @@ -504,7 +504,7 @@ WarningPHPMailC=- Att använda din egen e-postleverantörs SMTP-server för att 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 +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=Klicka för att visa beskrivning DependsOn=Denna modul behöver modulen / modulerna RequiredBy=Denna modul krävs enligt modul (er) @@ -714,13 +714,14 @@ Permission27=Ta bort affärsförslag Permission28=Export affärsförslag Permission31=Läs produkter Permission32=Skapa / modifiera produkter +Permission33=Read prices products Permission34=Ta bort produkter Permission36=Se / hantera dold produkter Permission38=EXPORTVARA Permission39=Ignorera minimipriset -Permission41=Läs projekt och uppgifter (delat projekt och projekt jag är kontakt för). Kan också ange tidskrävad, för mig eller min hierarki, på tilldelade uppgifter (tidtabell) -Permission42=Skapa / ändra projekt (delat projekt och projekt jag är kontakt för). Kan också skapa uppgifter och tilldela användare projekt och uppgifter -Permission44=Ta bort projekt (delat projekt och projekt jag är kontakt för) +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=Exportera projekt Permission61=Läs insatser Permission62=Skapa / ändra inlägg @@ -739,6 +740,7 @@ Permission79=Skapa / ändra abonnemang Permission81=Läs kunderna order Permission82=Skapa / modifiera kunder order Permission84=Bekräfta kunder order +Permission85=Generate the documents sales orders Permission86=Skicka kunder order Permission87=Stäng kunder order Permission88=Avbryt kunder order @@ -766,9 +768,10 @@ 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=Läs alla projekt och uppgifter (även privata projekt som jag inte är kontakt med) -Permission142=Skapa / ändra alla projekt och uppgifter (även privata projekt som jag inte är kontakt med) -Permission144=Ta bort alla projekt och uppgifter (även privata projekt jag är inte kontakta för) +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 @@ -873,6 +876,7 @@ Permission525=Tillgång lån kalkylator Permission527=Exportlånet Permission531=Läs tjänster Permission532=Skapa / modifiera tjänster +Permission533=Read prices services Permission534=Ta bort tjänster Permission536=Se / Hantera dolda tjänster Permission538=Exportera tjänster @@ -883,6 +887,9 @@ 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 @@ -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=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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Kostnadsrapport - Transportkategorier DictionaryExpenseTaxRange=Kostnadsrapport - Räckvidd per transportkategori DictionaryTransportMode=Intracomm-rapport - Transportläge DictionaryBatchStatus=Produktparti / seriell kvalitetskontrollstatus +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Typ av enhet SetupSaved=Inställningarna sparas SetupNotSaved=Inställningen är inte sparad @@ -1122,7 +1132,7 @@ ValueOfConstantKey=Värdet på en konfigurationskonstant ConstantIsOn=Alternativ %s är på NbOfDays=Antal dagar AtEndOfMonth=I slutet av månaden -CurrentNext=Current / Next +CurrentNext=A given day in month Offset=Offset AlwaysActive=Alltid aktiv Upgrade=Uppgradera @@ -1187,7 +1197,7 @@ 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://...' Alerts=Varningar -DelaysOfToleranceBeforeWarning=Fördröjning innan du visar en varningsvarsel för: +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 Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Projektet är inte stängt i tid @@ -1228,6 +1238,7 @@ BrowserName=Browser namn BrowserOS=Browser OS ListOfSecurityEvents=Förteckning över Dolibarr säkerhetshändelser SecurityEventsPurged=Säkerhetshändelser renas +TrackableSecurityEvents=Trackable security events 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Du tvingade en ny översättning till översättnin 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 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:
    @@ -1420,6 +1432,8 @@ 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. ##### Proposals ##### PropalSetup=Kommersiella förslag modul inställning ProposalsNumberingModules=Kommersiella förslag numrering moduler @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Installera eller bygga en extern modul från programme 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 TextTitleColor=Textfärg på sidtitel @@ -1925,7 +1940,7 @@ PressF5AfterChangingThis=Tryck CTRL + F5 på tangentbordet eller rensa webbläsa 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=Icon or Text in Top menu LeftMenuBackgroundColor=Bakgrundsfärg för vänstermenyn BackgroundTableTitleColor=Bakgrundsfärg för tabellens titellinje BackgroundTableTitleTextColor=Textfärg för tabellens titellinje @@ -1938,7 +1953,7 @@ EnterAnyCode=Det här fältet innehåller en referens för att identifiera raden 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=Ikonnamn i dolibarr-format ('image.png' om i den aktuella temakatalogen, 'image.png@nom_du_module' om i katalogen / img / av en modul) +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 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. @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=Beställning MailToSendSupplierInvoice=Leverantörsfakturor MailToSendContract=Kontrakt MailToSendReception=Mottagningar +MailToExpenseReport=Räkningar MailToThirdparty=Tredje part MailToMember=Medlemmar MailToUser=Användare @@ -2019,6 +2035,7 @@ 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 +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 till rent värde (COMPANY_AQUARIUM_CLE COMPANY_DIGITARIA_CLEAN_REGEX=Regex-filter för att rengöra värdet (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Duplicering är inte tillåtet GDPRContact=Dataskyddsansvarig (DPO, Data Privacy eller GDPR-kontakt) -GDPRContactDesc=Om du lagrar data om europeiska företag / medborgare kan du namnge den kontaktperson som ansvarar för Allmänna databeskyddsförordningen här +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 YouCanDeleteFileOnServerWith=Du kan ta bort den här filen på servern med kommandorad:
    %s @@ -2048,27 +2065,46 @@ VATIsUsedIsOff=Obs! Alternativet att använda moms eller moms har ställts till 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 +EmailCollectors=Email collectors 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). NewEmailCollector=Ny e-postsamlare EMailHost=Värd för e-post 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=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=Är du säker på att du vill klona e-postsamlaren %s? +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 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 an agenda event. EmailCollectorConfirmCollectTitle=E-post samla bekräftelse -EmailCollectorConfirmCollect=Vill du springa samlingen för den här samlaren nu? +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=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) +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=Senaste resultatkoden NbOfEmailsInInbox=Antal e-postmeddelanden i källkatalogen LoadThirdPartyFromName=Ladda tredjepartsökning på %s (endast belastning) @@ -2082,14 +2118,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=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=Ö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=Aktivera funktionen för att kontrollera om en resurs används i en händelse +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda 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) @@ -2134,7 +2170,7 @@ 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=Tillåt endast åtkomst till någon värd-IP (jokertecken är inte tillåtet, använd utrymme mellan värdena). Tom betyder att alla värdar kan komma åt. +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=Baserat på biblioteksversionen av SabreDAV NotAPublicIp=Inte en offentlig IP @@ -2144,6 +2180,9 @@ 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=Include alias in thirdparty name +THIRDPARTY_ALIAS=Name thirdparty - Alias thirdparty +ALIAS_THIRDPARTY=Alias thirdparty - Name thirdparty 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 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. @@ -2185,6 +2224,7 @@ 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=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=Databasens lösenord är dolt i konfigurationsfilen DatabasePasswordNotObfuscated=Databasens lösenord är INTE dolt i konfigurationsfilen APIsAreNotEnabled=API-moduler är inte aktiverade @@ -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 = inställningar +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/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang index de6c498b4e7..f384fbb2c0d 100644 --- a/htdocs/langs/sv_SE/banks.lang +++ b/htdocs/langs/sv_SE/banks.lang @@ -95,11 +95,11 @@ LineRecord=Transaktion AddBankRecord=Lägg till post AddBankRecordLong=Lägg till post manuellt Conciliated=Avstämd -ConciliatedBy=Avstämd av +ReConciliedBy=Avstämd av DateConciliating=Avstämningsdatum BankLineConciliated=Posten avstämd med bankkvitto -Reconciled=Avstämd -NotReconciled=Inte avstämd +BankLineReconciled=Avstämd +BankLineNotReconciled=Inte avstämd CustomerInvoicePayment=Kundbetalning SupplierInvoicePayment=Leverantörsbetalning SubscriptionPayment=Teckning betalning @@ -172,8 +172,8 @@ 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 kassaskåpkontroll -NewCashFence=Ny kassa öppnar eller stänger +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 @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Om du inte gör någon bankavstämning på vis 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 diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 808c8ee481d..73f62304938 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -156,6 +156,7 @@ 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. BillFrom=Från BillTo=Fakturamottagare ActionsOnBill=Åtgärder mot faktura @@ -282,6 +283,8 @@ RecurringInvoices=Återkommande fakturor RecurringInvoice=Recurring invoice RepeatableInvoice=Fakturamall RepeatableInvoices=Fakturamallar +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=Mall Repeatables=Mallar ChangeIntoRepeatableInvoice=Konvertera till fakturamall @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=Check betalningar (inkl. Skatt) 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 LawApplicationPart1=Genom tillämpning av lagen 80,335 av 12/05/80 LawApplicationPart2=Varan förblir egendom LawApplicationPart3=säljaren till full betalning av @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Leverantörsfaktura borttagen UnitPriceXQtyLessDiscount=Enhetspris x Antal - Rabatt CustomersInvoicesArea=Kundfaktureringsområde SupplierInvoicesArea=Leverantörsfaktureringsområde -FacParentLine=Fakturarad förälder SituationTotalRayToRest=Resten att betala utan skatt PDFSituationTitle=Läge nr %d SituationTotalProgress=Total framsteg %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=Sök efter obetalda fakturor med förfallodatum 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/sv_SE/cashdesk.lang b/htdocs/langs/sv_SE/cashdesk.lang index c6dd8249294..93abdeef9bb 100644 --- a/htdocs/langs/sv_SE/cashdesk.lang +++ b/htdocs/langs/sv_SE/cashdesk.lang @@ -50,8 +50,8 @@ Footer=sidfot AmountAtEndOfPeriod=Belopp vid periodens utgång (dag, månad eller år) TheoricalAmount=Teoretisk mängd RealAmount=Verklig mängd -CashFence=Kassastängning -CashFenceDone=Kassastängning gjord för perioden +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Antal av fakturor Paymentnumpad=Typ av kudde för att komma in i betalningen Numberspad=Numbers Pad @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} -tagg används för att lägga ti TakeposGroupSameProduct=Gruppera samma produktlinjer StartAParallelSale=Starta en ny parallellförsäljning SaleStartedAt=Försäljningen startade på %s -ControlCashOpening=Öppna popup-kontrollen "Kontrollera kontanter" när du öppnar kassan -CloseCashFence=Stäng kassakontrollen +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Kassarapport MainPrinterToUse=Huvudskrivare att använda OrderPrinterToUse=Beställ skrivaren att använda @@ -134,3 +134,5 @@ 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
    diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang index 9e3193919f7..de1f09da5c4 100644 --- a/htdocs/langs/sv_SE/companies.lang +++ b/htdocs/langs/sv_SE/companies.lang @@ -19,6 +19,7 @@ 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 Company=Företag @@ -51,19 +52,22 @@ CivilityCode=Hövlighet kod RegisteredOffice=Säte Lastname=Efternamn Firstname=Förnamn +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Befattning UserTitle=Titel NatureOfThirdParty=Tredjepartens art NatureOfContact=Kontaktens art Address=Adress State=Delstat / provins +StateId=State ID StateCode=Stat / provins kod StateShort=stat Region=Region Region-State=Region - Stat Country=Land CountryCode=Landskod -CountryId=Land-id +CountryId=Country ID Phone=Telefon PhoneShort=Tel Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=Leverantörskoden är ogiltig CustomerCodeModel=Kundkod, mall SupplierCodeModel=Leverantörskodsmodell Gencod=Barcode +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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=Övrigt ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Förteckning över tredjeparter ShowCompany=Tredje part ShowContact=Kontaktadress ContactsAllShort=Alla (inget filter) -ContactType=Kontakttyp +ContactType=Contact role ContactForOrders=Beställningens kontaktinformation ContactForOrdersOrShipments=Orderens eller försändelsens kontakt ContactForProposals=Offertens kontaktinformation diff --git a/htdocs/langs/sv_SE/compta.lang b/htdocs/langs/sv_SE/compta.lang index 2db0b767ed6..c611358f7cf 100644 --- a/htdocs/langs/sv_SE/compta.lang +++ b/htdocs/langs/sv_SE/compta.lang @@ -146,9 +146,11 @@ 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 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=Är du säker på att du vill ta bort den här lönen? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? 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. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Fakturerad inköpsomsättning ReportPurchaseTurnoverCollected=Inköpt omsättning IncludeVarpaysInResults = Inkludera olika betalningar i rapporter IncludeLoansInResults = Inkludera lån i rapporter -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) diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang index 6eac66b349a..189b2c6584e 100644 --- a/htdocs/langs/sv_SE/errors.lang +++ b/htdocs/langs/sv_SE/errors.lang @@ -9,6 +9,7 @@ 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=Title %s already exists. ErrorLoginAlreadyExists=Logga %s finns redan. ErrorGroupAlreadyExists=Grupp %s finns redan. ErrorEmailAlreadyExists=E-post %s finns redan. @@ -66,7 +67,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=File size is too large or file not provided. 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) @@ -91,6 +92,7 @@ ErrorModuleRequireJavascript=Javascript måste inte avaktiveras att ha denna fun 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=Field %s: The value '%s' contains a malicious data not allowed 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 ErrorsOnXLines=%s hittade fel @@ -269,7 +271,7 @@ 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=Selected event type (id: %s, code: %s) do not exist in Event Type dictionary CheckVersionFail=Versionskontroll misslyckades ErrorWrongFileName=Filens namn kan inte innehålla __SOMETHING__ ErrorNotInDictionaryPaymentConditions=Inte i ordningen för betalningsvillkor, ändra. @@ -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=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=Click here to setup main parameters 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. @@ -311,6 +325,7 @@ WarningCreateSubAccounts=Varning, du kan inte skapa ett underkonto direkt, du m 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. +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = Value not valid diff --git a/htdocs/langs/sv_SE/exports.lang b/htdocs/langs/sv_SE/exports.lang index 5d097747610..b4815bb027b 100644 --- a/htdocs/langs/sv_SE/exports.lang +++ b/htdocs/langs/sv_SE/exports.lang @@ -53,8 +53,8 @@ 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=Ladda ner mall med fält för innehållsinformation -StarAreMandatory=* alla fält krävs +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=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 @@ -135,3 +135,6 @@ NbInsert=Antal infogade rader: %s NbUpdate=Antal uppdaterade rader: %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: 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/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 b2a27d88380..bd463e4ecb5 100644 --- a/htdocs/langs/sv_SE/install.lang +++ b/htdocs/langs/sv_SE/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=Din PHP max session minne är inställt på %s. Detta bör va PHPMemoryTooLow=Ditt PHP max-sessionminne är inställt på %s bytes. Detta är för lågt. Ändra din php.ini för att ställa in memory_limit parameter till minst %s bytes. Recheck=Klicka här för ett mer detaljerat test ErrorPHPDoesNotSupportSessions=Din PHP-installation stöder inte sessioner. Den här funktionen är nödvändig för att Dolibarr ska fungera. Kontrollera din PHP-inställning och behörighet i sessionskatalogen. -ErrorPHPDoesNotSupportGD=Din PHP-installation stöder inte GD grafiska funktioner. Inga diagram kommer att finnas tillgängliga. -ErrorPHPDoesNotSupportCurl=Din PHP-installation stöder inte Curl. -ErrorPHPDoesNotSupportCalendar=Din PHP-installation stöder inte php-kalendertillägg. -ErrorPHPDoesNotSupportUTF8=Din PHP-installation stöder inte UTF8-funktioner. Dolibarr kan inte fungera korrekt. Lös det här innan du installerar Dolibarr. -ErrorPHPDoesNotSupportIntl=Din PHP-installation stöder inte Intl-funktioner. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Din PHP-installation stöder inte utökade felsökningsfunktioner. ErrorPHPDoesNotSupport=Din PHP-installation stöder inte %s-funktioner. ErrorDirDoesNotExists=Nummer %s finns inte. ErrorGoBackAndCorrectParameters=Gå tillbaka och kontrollera / korrigera parametrarna. @@ -30,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/knowledgemanagement.lang b/htdocs/langs/sv_SE/knowledgemanagement.lang index de1b5b17445..8b0b8b36350 100644 --- a/htdocs/langs/sv_SE/knowledgemanagement.lang +++ b/htdocs/langs/sv_SE/knowledgemanagement.lang @@ -46,7 +46,7 @@ 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) +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/sv_SE/loan.lang b/htdocs/langs/sv_SE/loan.lang index c1be5555d90..4f79e87955b 100644 --- a/htdocs/langs/sv_SE/loan.lang +++ b/htdocs/langs/sv_SE/loan.lang @@ -24,7 +24,7 @@ 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 +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Du kan inte ändra intresse om du använder schema # Admin ConfigLoan=Modullånets konfiguration diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 3ab6e851b6d..6f0c88354ab 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -244,6 +244,7 @@ Designation=Beskrivning DescriptionOfLine=Beskrivning av linjen DateOfLine=Datum för rad DurationOfLine=Varaktighet av raden +ParentLine=Parent line ID Model=Doc mall DefaultModel=Standard doksmall Action=Händelse @@ -344,7 +345,7 @@ KiloBytes=Kilobyte MegaBytes=Megabyte GigaBytes=Gigabyte TeraBytes=Terabyte -UserAuthor=Ceated av +UserAuthor=Created by UserModif=Uppdaterad av b=b. Kb=Kb @@ -517,6 +518,7 @@ or=eller Other=Andra Others=Övrigt OtherInformations=Övrig information +Workflow=Workflow Quantity=Kvantitet Qty=Antal ChangedBy=Ändrad av @@ -619,6 +621,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=Bifogade filer och dokument JoinMainDoc=Gå med i huvuddokumentet +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 +712,7 @@ FeatureDisabled=Funktion avstängd MoveBox=Flytta widgeten Offered=Erbjuds NotEnoughPermissions=Du har inte behörighet för denna åtgärd +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Session namn Method=Metod Receive=Ta emot @@ -798,6 +802,7 @@ URLPhoto=URL foto / logo SetLinkToAnotherThirdParty=Länk till en annan tredje part LinkTo=Anknyta till LinkToProposal=Länk till förslag +LinkToExpedition= Link to expedition LinkToOrder=Länk för att beställa LinkToInvoice=Länk till faktura LinkToTemplateInvoice=Länk till mallfaktura @@ -1164,3 +1169,14 @@ NotClosedYet=Not yet closed ClearSignature=Reset signature CanceledHidden=Canceled hidden CanceledShown=Canceled shown +Terminate=Terminate +Terminated=Avslutad +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/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang index 607e04b5d62..6e93513f819 100644 --- a/htdocs/langs/sv_SE/members.lang +++ b/htdocs/langs/sv_SE/members.lang @@ -15,7 +15,7 @@ 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=Visitkort för medlemmar +MembersCards=Generation of cards for members MembersList=Förteckning över medlemmar MembersListToValid=Förteckning över förslag till medlemmar (att bekräftas) MembersListValid=Förteckning över giltiga medlemmar @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Medlem id +MemberId=Member Id +MemberRef=Member Ref NewMember=Ny medlem MemberType=Medlem typ MemberTypeId=Medlem typ id @@ -135,7 +136,7 @@ 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.

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

    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.

    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 @@ -159,11 +160,11 @@ HTPasswordExport=htpassword-fil skapas NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Kompletterande åtgärder vid registrering -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=Skapa en direkt post på bankkontot MoreActionBankViaInvoice=Skapa en faktura och en betalning på bankkonto MoreActionInvoiceOnly=Skapa en faktura utan betalning -LinkToGeneratedPages=Generera besökskort +LinkToGeneratedPages=Generation of business cards or address sheets 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) @@ -218,3 +219,5 @@ 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. +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/sv_SE/modulebuilder.lang b/htdocs/langs/sv_SE/modulebuilder.lang index 70542db290e..715e897c170 100644 --- a/htdocs/langs/sv_SE/modulebuilder.lang +++ b/htdocs/langs/sv_SE/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=Ange namnet på modulen / programmet för att skapa utan mellanslag. Använd stor bokstav för att skilja ord (till exempel: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Ange namnet på objektet som ska skapas utan mellanslag. Använd stor bokstav för att skilja ord (till exempel: MyObject, Student, Lärare ...). CRUD klassfilen, men även API-filen, kommer sidor att lista / lägga till / redigera / ta bort objekt och SQL-filer genereras. +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=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 ModuleKey=Modulnyckel ObjectKey=Objektnyckel +DicKey=Dictionary key ModuleInitialized=Modul initialiserad FilesForObjectInitialized=Filer för nytt objekt '%s' initialiserades FilesForObjectUpdated=Filer för objekt '%s' uppdaterad (.sql-filer och .class.php-fil) @@ -52,7 +55,7 @@ LanguageFile=Fil för språk ObjectProperties=Objektegenskaper 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 = Ange databas till NOT NULL. -1 = Tillåt nullvärden och tvinga värdet till NULL om det är tomt ('' eller 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=Används för "sök alla" DatabaseIndex=Databasindex FileAlreadyExists=Filen %s existerar redan @@ -94,7 +97,7 @@ 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=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 väl är definierade (och modulen har aktiverats igen) visas menyer också i menyredigeraren som är tillgängliga för administratörsanvändare på %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=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). @@ -110,7 +113,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=Inaktivera den aktuella sidan +UseAboutPage=Do not generate the About page 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. @@ -127,9 +130,9 @@ 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=Objektets referens måste genereras automatiskt -IncludeRefGenerationHelp=Markera detta om du vill inkludera kod för att hantera genereringen av referensen automatiskt -IncludeDocGeneration=Jag vill skapa några dokument från objektet +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=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 KeyForTooltip=Nyckel för verktygstips @@ -138,10 +141,15 @@ CSSViewClass=CSS för läsform CSSListClass=CSS för lista NotEditable=Ej redigerbar ForeignKey=Främmande nyckel -TypeOfFieldsHelp=Typ av fält:
    varchar (99), dubbel (24,8), real, text, html, datetime, tidsstämpel, heltal, heltal: 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' kan vara 'status = 1 OCH fk_user = __USER_ID OCH enhet IN (__SHARED_ENTITIES__)' till exempel) +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 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=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=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. diff --git a/htdocs/langs/sv_SE/oauth.lang b/htdocs/langs/sv_SE/oauth.lang index 58b50d72893..6da92f06dcc 100644 --- a/htdocs/langs/sv_SE/oauth.lang +++ b/htdocs/langs/sv_SE/oauth.lang @@ -9,12 +9,13 @@ 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 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 +RequestAccess=Click here to request/renew access and receive a new token +DeleteAccess=Click here to delete 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 +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 föregående flik +OAuthProvider=OAuth provider OAuthIDSecret=OAuth ID och Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token utgått @@ -23,10 +24,13 @@ 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_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_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 Strip 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/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index b7d29a856ec..c849acbea45 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -110,7 +110,7 @@ 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=Hantera en butik med en kassa +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Handla produkter som säljs med Point of Sales DemoCompanyManufacturing=Företag som tillverkar produkter DemoCompanyAll=Företag med flera aktiviteter (alla huvudmoduler) @@ -303,3 +303,4 @@ 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 CloseDialog = Stäng +Autofill = Autofill diff --git a/htdocs/langs/sv_SE/projects.lang b/htdocs/langs/sv_SE/projects.lang index 2a65f8922ba..93cfa921123 100644 --- a/htdocs/langs/sv_SE/projects.lang +++ b/htdocs/langs/sv_SE/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Projektetikett ProjectsArea=Projektområde ProjectStatus=Projektstatus SharedProject=Alla -PrivateProject=Projekt kontakter +PrivateProject=Assigned contacts ProjectsImContactFor=Projekt där jag är kontaktperson AllAllowedProjects=Allt projekt jag kan läsa (min + offentliga) AllProjects=Alla projekt @@ -190,6 +190,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. FirstAddRessourceToAllocateTime=Tilldela en användarresurs som kontaktperson för projekt att rapportera tid InputPerDay=Ingång per dag InputPerWeek=Ingång per vecka @@ -258,7 +259,7 @@ TimeSpentInvoiced=Tid förbrukad fakturerad TimeSpentForIntervention=Tid TimeSpentForInvoice=Tid OneLinePerUser=En rad per användare -ServiceToUseOnLines=Service att använda på linjer +ServiceToUseOnLines=Service to use on lines by default 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. @@ -287,3 +288,10 @@ 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=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 +ExportAccountingReportButtonLabel=Get report diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang index cc4de7c93e2..c3813ff5a4f 100644 --- a/htdocs/langs/sv_SE/propal.lang +++ b/htdocs/langs/sv_SE/propal.lang @@ -54,6 +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 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 ? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Skriftligt godkännande, företagsstämpel, datum och ProposalsStatisticsSuppliers=Statistik för leverantörsförslag CaseFollowedBy=Fall följt av 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 -PrParentLine=Förslagets moderlinje 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 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/ticket.lang b/htdocs/langs/sv_SE/ticket.lang index f07eef88ac0..f93fd8f86d9 100644 --- a/htdocs/langs/sv_SE/ticket.lang +++ b/htdocs/langs/sv_SE/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=Ett offentligt gränssnitt som kräver ingen identifiering fi 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=E-postmeddelande från -TicketEmailNotificationFromHelp=Används i svar på ärrendemeddelande med exempel -TicketEmailNotificationTo=E-postmeddelande till -TicketEmailNotificationToHelp=Skicka e-postmeddelanden till den här adressen. +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 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 @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Mottagaren är tom. Ingen email sk TicketGoIntoContactTab=Vänligen gå till fliken "Kontakter" för att välja dem TicketMessageMailIntro=Introduktion TicketMessageMailIntroHelp=Denna text läggs till endast i början av e-postmeddelandet och kommer inte att sparas. -TicketMessageMailIntroLabelAdmin=Introduktion till meddelandet när du skickar e-post -TicketMessageMailIntroText=Hej,
    Ett nytt svar skickades på en ärende som du kontaktar. Här är meddelandet:
    -TicketMessageMailIntroHelpAdmin=Denna text kommer att införas före texten på svaret på en ärende. +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=

    Med vänliga hälsningar,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Signatur för e-postsvar TicketMessageMailSignatureHelpAdmin=Denna text läggs in efter svarmeddelandet. TicketMessageHelp=Endast den här texten sparas i meddelandelistan på ärrendekortet. @@ -238,9 +252,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 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. # # Logs @@ -268,8 +289,9 @@ 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=Du kan se framstegen på ärendet genom att klicka på länken ovan. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link 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 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. @@ -291,6 +313,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: TicketNotificationEmailSubject=Ärende %s uppdaterad TicketNotificationEmailBody=Detta är ett automatiskt meddelande för att meddela dig att ärendet %s just har uppdaterats TicketNotificationRecipient=Meddelande mottagare diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang index 2b32cf63398..c510dbebff2 100644 --- a/htdocs/langs/sv_SE/users.lang +++ b/htdocs/langs/sv_SE/users.lang @@ -114,7 +114,7 @@ UserLogoff=Användarutloggning UserLogged=Användare loggad DateOfEmployment=Anställningsdatum DateEmployment=Sysselsättning -DateEmploymentstart=Startdatum för anställning +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Anställningens slutdatum RangeOfLoginValidity=Åtkomst giltighetsdatumintervall CantDisableYourself=Du kan inte inaktivera din egen användarrekord @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Som standard är valideraren användarens överva UserPersonalEmail=Personlig email 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 diff --git a/htdocs/langs/sw_SW/companies.lang b/htdocs/langs/sw_SW/companies.lang index 7de663ede6d..10028814c63 100644 --- a/htdocs/langs/sw_SW/companies.lang +++ b/htdocs/langs/sw_SW/companies.lang @@ -19,6 +19,7 @@ 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 @@ -51,6 +52,8 @@ 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 @@ -102,6 +105,7 @@ 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 @@ -160,14 +164,14 @@ ProfId6CL=- ProfId1CM=Id. prof. 1 (Trade Register) ProfId2CM=Id. prof. 2 (Taxpayer No.) ProfId3CM=Id. prof. 3 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId4CM=Id. prof. 4 (Certificate of deposits) +ProfId5CM=Id. prof. 5 (Others) ProfId6CM=- ProfId1ShortCM=Trade Register ProfId2ShortCM=Taxpayer No. ProfId3ShortCM=Decree of creation -ProfId4ShortCM=- -ProfId5ShortCM=- +ProfId4ShortCM=Certificate of deposits +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +363,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=All (No filter) -ContactType=Contact type +ContactType=Contact role ContactForOrders=Order's contact ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=Proposal's contact 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 29118290f60..d9667295c39 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=கணக்கியல் துணைக் கணக்கு மூலம் பார்க்கவும் @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=சந்தா செலுத் AccountancyArea=கணக்கியல் பகுதி AccountancyAreaDescIntro=கணக்கியல் தொகுதியின் பயன்பாடு பல படிகளில் செய்யப்படுகிறது: AccountancyAreaDescActionOnce=பின்வரும் செயல்கள் வழக்கமாக ஒரு முறை அல்லது வருடத்திற்கு ஒரு முறை மட்டுமே செயல்படுத்தப்படும்... -AccountancyAreaDescActionOnceBis=ஜர்னலைசேஷன் செய்யும் போது சரியான இயல்புநிலை கணக்கியல் கணக்கை பரிந்துரைப்பதன் மூலம் எதிர்காலத்தில் உங்கள் நேரத்தை மிச்சப்படுத்த அடுத்த படிகளைச் செய்ய வேண்டும் (பத்திரிகைகள் மற்றும் பொது லெட்ஜரில் பதிவு எழுதுதல்) +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=பின்வரும் செயல்கள் பொதுவாக ஒவ்வொரு மாதமும், வாரம் அல்லது நாளிலும் மிகப் பெரிய நிறுவனங்களுக்குச் செயல்படுத்தப்படும்... -AccountancyAreaDescJournalSetup=படி %s: %s மெனுவிலிருந்து உங்கள் பத்திரிகை பட்டியலின் உள்ளடக்கத்தை உருவாக்கவும் அல்லது சரிபார்க்கவும் +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=படி %s: கணக்கு விளக்கப்படத்தின் மாதிரி உள்ளதா எனச் சரிபார்க்கவும் அல்லது %s மெனுவிலிருந்து ஒன்றை உருவாக்கவும் AccountancyAreaDescChart=STEP %s: %s மெனுவிலிருந்து உங்கள் கணக்கின் விளக்கப்படத்தைத் தேர்ந்தெடுத்து|அல்லது முடிக்கவும் AccountancyAreaDescVat=STEP %s: ஒவ்வொரு VAT விகிதங்களுக்கும் கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். AccountancyAreaDescDefault=STEP %s: இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். -AccountancyAreaDescExpenseReport=STEP %s: ஒவ்வொரு வகையான செலவு அறிக்கைக்கும் இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: சம்பளம் செலுத்துவதற்கான இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். -AccountancyAreaDescContrib=STEP %s: சிறப்புச் செலவுகளுக்கான இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும் (இதர வரிகள்). இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: நன்கொடைக்கான இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். AccountancyAreaDescSubscription=STEP %s: உறுப்பினர் சந்தாவுக்கான இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். AccountancyAreaDescMisc=STEP %s: இதர பரிவர்த்தனைகளுக்கான கட்டாய இயல்புநிலை கணக்கு மற்றும் இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். AccountancyAreaDescLoan=STEP %s: கடன்களுக்கான இயல்புநிலை கணக்கியல் கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். AccountancyAreaDescBank=STEP %s: ஒவ்வொரு வங்கி மற்றும் நிதிக் கணக்குகளுக்கும் கணக்கியல் கணக்குகள் மற்றும் ஜர்னல் குறியீட்டை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். -AccountancyAreaDescProd=STEP %s: உங்கள் தயாரிப்புகள்/சேவைகளில் கணக்கு கணக்குகளை வரையறுக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: ஏற்கனவே உள்ள %s கோடுகளுக்கு இடையே உள்ள பிணைப்பைச் சரிபார்த்து, கணக்கியல் கணக்கு முடிந்தது, எனவே ஒரே கிளிக்கில் லெட்ஜரில் பரிவர்த்தனைகளை ஜர்னலிஸ் செய்ய பயன்பாடு முடியும். விடுபட்ட பிணைப்புகளை முடிக்கவும். இதற்கு, %s என்ற மெனு உள்ளீட்டைப் பயன்படுத்தவும். AccountancyAreaDescWriteRecords=STEP %s: பரிவர்த்தனைகளை லெட்ஜரில் எழுதவும். இதற்கு, %s மெனுவிற்குச் சென்று, %s a0a65d07z. @@ -112,7 +113,7 @@ MenuAccountancyClosure=மூடல் MenuAccountancyValidationMovements=இயக்கங்களை சரிபார்க்கவும் ProductsBinding=தயாரிப்பு கணக்குகள் TransferInAccounting=கணக்கியலில் இடமாற்றம் -RegistrationInAccounting=கணக்கியலில் பதிவு செய்தல் +RegistrationInAccounting=Recording in accounting Binding=கணக்குகளுக்கு பிணைப்பு CustomersVentilation=வாடிக்கையாளர் விலைப்பட்டியல் பிணைப்பு SuppliersVentilation=விற்பனையாளர் விலைப்பட்டியல் பிணைப்பு @@ -120,7 +121,7 @@ ExpenseReportsVentilation=செலவு அறிக்கை பிணைப CreateMvts=புதிய பரிவர்த்தனையை உருவாக்கவும் UpdateMvts=பரிவர்த்தனையின் மாற்றம் ValidTransaction=பரிவர்த்தனையை சரிபார்க்கவும் -WriteBookKeeping=கணக்கியலில் பரிவர்த்தனைகளை பதிவு செய்யவும் +WriteBookKeeping=Record transactions in accounting Bookkeeping=பேரேடு BookkeepingSubAccount=சப்லெட்ஜர் AccountBalance=கணக்கு இருப்பு @@ -161,7 +162,7 @@ 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=கொள்முதல் இதழ் @@ -182,6 +183,7 @@ DONATION_ACCOUNTINGACCOUNT=நன்கொடைகளை பதிவு செ ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=சந்தாக்களை பதிவு செய்ய கணக்கியல் கணக்கு ACCOUNTING_ACCOUNT_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_PRODUCT_BUY_INTRA_ACCOUNT=EEC இல் வாங்கிய தயாரிப்புகளுக்கான இயல்புநிலை கணக்கு கணக்கு (தயாரிப்பு தாளில் வரையறுக்கப்படவில்லை என்றால் பயன்படுத்தப்படும்) @@ -219,12 +221,12 @@ ByPredefinedAccountGroups=முன் வரையறுக்கப்பட ByPersonalizedAccountGroups=தனிப்பயனாக்கப்பட்ட குழுக்களால் ByYear=ஆண்டு வாரியாக NotMatch=அமைக்கப்படவில்லை -DeleteMvt=கணக்கியலில் இருந்து சில செயல்பாட்டு வரிகளை நீக்கவும் +DeleteMvt=Delete some lines from accounting DelMonth=நீக்க வேண்டிய மாதம் DelYear=நீக்க வேண்டிய வருடம் DelJournal=நீக்க வேண்டிய இதழ் -ConfirmDeleteMvt=இது ஆண்டு/மாதம் மற்றும்/அல்லது ஒரு குறிப்பிட்ட இதழுக்கான கணக்கியலின் அனைத்து செயல்பாட்டு வரிகளையும் நீக்கும் (குறைந்தது ஒரு அளவுகோல் தேவை). நீக்கப்பட்ட பதிவை மீண்டும் லெட்ஜரில் வைத்திருக்க '%s' அம்சத்தை நீங்கள் மீண்டும் பயன்படுத்த வேண்டும். -ConfirmDeleteMvtPartial=இது கணக்கியலில் இருந்து பரிவர்த்தனையை நீக்கும் (ஒரே பரிவர்த்தனை தொடர்பான அனைத்து செயல்பாட்டு வரிகளும் நீக்கப்படும்) +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=நிதி இதழ் ExpenseReportsJournal=செலவு அறிக்கை இதழ் DescFinanceJournal=வங்கிக் கணக்கின் மூலம் அனைத்து வகையான பணம் செலுத்துதல்களையும் உள்ளடக்கிய நிதி இதழ் @@ -278,30 +280,31 @@ DescVentilExpenseReportMore=நீங்கள் அமைப்பு இழ DescVentilDoneExpenseReport=செலவு அறிக்கைகள் மற்றும் அவற்றின் கட்டணக் கணக்குகளின் வரிகளின் பட்டியலை இங்கே பார்க்கவும் Closure=வருடாந்திர மூடல் -DescClosure=சரிபார்க்கப்படாத மற்றும் ஏற்கனவே தொடங்கப்பட்ட நிதியாண்டுகளின் மாத இயக்கங்களின் எண்ணிக்கையை இங்கே பார்க்கவும் -OverviewOfMovementsNotValidated=படி 1/ இயக்கங்களின் மேலோட்டம் சரிபார்க்கப்படவில்லை. (ஒரு நிதியாண்டை மூடுவது அவசியம்) -AllMovementsWereRecordedAsValidated=அனைத்து இயக்கங்களும் சரிபார்க்கப்பட்டதாக பதிவு செய்யப்பட்டன -NotAllMovementsCouldBeRecordedAsValidated=அனைத்து இயக்கங்களும் சரிபார்க்கப்பட்டதாக பதிவு செய்ய முடியாது -ValidateMovements=இயக்கங்களை சரிபார்க்கவும் +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=எழுதுதல், எழுதுதல் மற்றும் நீக்குதல் ஆகியவற்றில் ஏதேனும் மாற்றம் அல்லது நீக்குதல் தடைசெய்யப்படும். ஒரு பயிற்சிக்கான அனைத்து உள்ளீடுகளும் சரிபார்க்கப்பட வேண்டும் இல்லையெனில் மூடுவது சாத்தியமில்லை ValidateHistory=தானாக பிணைக்கவும் AutomaticBindingDone=தானியங்கி பிணைப்புகள் செய்யப்பட்டன (%s) - சில பதிவுகளுக்கு தானியங்கு பிணைப்பு சாத்தியமில்லை (%s) ErrorAccountancyCodeIsAlreadyUse=பிழை, இந்தக் கணக்கியல் கணக்கு பயன்படுத்தப்படுவதால் உங்களால் நீக்க முடியாது -MvtNotCorrectlyBalanced=இயக்கம் சரியாக சமநிலையில் இல்லை. பற்று = %s | கடன் = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=சமநிலைப்படுத்துதல் FicheVentilation=பைண்டிங் கார்டு GeneralLedgerIsWritten=பரிவர்த்தனைகள் லெட்ஜரில் எழுதப்பட்டுள்ளன GeneralLedgerSomeRecordWasNotRecorded=சில பரிவர்த்தனைகளை ஜர்னலிஸ் செய்ய முடியவில்லை. வேறு எந்த பிழைச் செய்தியும் இல்லை என்றால், அவை ஏற்கனவே ஜர்னலிஸ் செய்யப்பட்டதால் இருக்கலாம். -NoNewRecordSaved=பத்திரிக்கை செய்ய இனி பதிவு இல்லை +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=எந்தவொரு கணக்கியல் கணக்கிற்கும் கட்டுப்படாத தயாரிப்புகளின் பட்டியல் ChangeBinding=பிணைப்பை மாற்றவும் Accounted=லெட்ஜரில் கணக்கு வைக்கப்பட்டுள்ளது NotYetAccounted=இன்னும் கணக்கியலுக்கு மாற்றப்படவில்லை ShowTutorial=டுடோரியலைக் காட்டு NotReconciled=சமரசம் செய்யவில்லை -WarningRecordWithoutSubledgerAreExcluded=எச்சரிக்கை, சப்லெட்ஜர் கணக்கு வரையறுக்கப்படாத அனைத்து செயல்பாடுகளும் வடிகட்டப்பட்டு இந்தக் காட்சியிலிருந்து விலக்கப்படும் +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=பிணைப்பு விருப்பங்கள் @@ -329,8 +332,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=வாங்குதல்களில ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=செலவு அறிக்கைகள் மீதான கணக்கியலில் பிணைப்பு மற்றும் பரிமாற்றத்தை முடக்கு (கணக்கில் செலவு அறிக்கைகள் கணக்கில் எடுத்துக்கொள்ளப்படாது) ## Export -NotifiedExportDate=ஏற்றுமதி செய்யப்பட்ட வரிகளை ஏற்றுமதி செய்ததாகக் கொடியிடவும் (வரிகளை மாற்றியமைக்க முடியாது) -NotifiedValidationDate=ஏற்றுமதி செய்யப்பட்ட உள்ளீடுகளை சரிபார்க்கவும் (வரிகளை மாற்றுவது அல்லது நீக்குவது சாத்தியமில்லை) +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=கணக்கியல் ஏற்றுமதி கோப்பின் தலைமுறையை உறுதிப்படுத்தவா? ExportDraftJournal=ஏற்றுமதி வரைவு இதழ் Modelcsv=ஏற்றுமதி மாதிரி @@ -394,6 +398,21 @@ 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 + +## 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=அமைவுக்கான சில கட்டாயப் படிகள் செய்யப்படவில்லை, தயவுசெய்து அவற்றை முடிக்கவும் ErrorNoAccountingCategoryForThisCountry=%s நாட்டிற்கு கணக்கியல் கணக்குக் குழு இல்லை (முகப்பு - அமைவு - அகராதிகளைப் பார்க்கவும்) @@ -406,6 +425,10 @@ Binded=கோடுகள் பிணைக்கப்பட்டுள்ள ToBind=பிணைக்க வேண்டிய கோடுகள் UseMenuToSetBindindManualy=கோடுகள் இன்னும் பிணைக்கப்படவில்லை, கைமுறையாக பிணைப்பை உருவாக்க, மெனு %s ஐப் பயன்படுத்தவும் 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=கணக்கு பதிவுகள் diff --git a/htdocs/langs/ta_IN/admin.lang b/htdocs/langs/ta_IN/admin.lang index a39ec49d666..5817c19ae8a 100644 --- a/htdocs/langs/ta_IN/admin.lang +++ b/htdocs/langs/ta_IN/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=ClamAv Daemon க்கான எடுத்துக்காட்டு (clamav-daemon தேவை): /usr/bin/clamdscan
    ClamWin க்கான எடுத்துக்காட்டு (மிக மிக மெதுவாக): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= கட்டளை வரியில் கூடுதல் அளவுருக்கள் @@ -477,7 +477,7 @@ InstalledInto=%s கோப்பகத்தில் நிறுவப்ப BarcodeInitForThirdparties=மூன்றாம் தரப்பினருக்கான மாஸ் பார்கோடு init BarcodeInitForProductsOrServices=தயாரிப்புகள் அல்லது சேவைகளுக்கு பெருமளவிலான பார்கோடு துவக்கவும் அல்லது மீட்டமைக்கவும் CurrentlyNWithoutBarCode=தற்போது, %s a0a65d071f6fc947c06bz0 %s பதிவு உள்ளது. -InitEmptyBarCode=அடுத்த %s வெற்றுப் பதிவுகளுக்கான தொடக்க மதிப்பு +InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=தற்போதைய பார்கோடு மதிப்புகள் அனைத்தையும் அழிக்கவும் ConfirmEraseAllCurrentBarCode=தற்போதைய பார்கோடு மதிப்புகள் அனைத்தையும் நிச்சயமாக அழிக்க விரும்புகிறீர்களா? AllBarcodeReset=அனைத்து பார்கோடு மதிப்புகளும் அகற்றப்பட்டன @@ -504,7 +504,7 @@ WarningPHPMailC=- மின்னஞ்சல்களை அனுப்ப உ WarningPHPMailD=மேலும், மின்னஞ்சல்களை அனுப்பும் முறையை "SMTP" மதிப்பிற்கு மாற்ற பரிந்துரைக்கப்படுகிறது. மின்னஞ்சல்களை அனுப்புவதற்கு இயல்புநிலை "PHP" முறையை நீங்கள் உண்மையிலேயே வைத்திருக்க விரும்பினால், இந்த எச்சரிக்கையைப் புறக்கணிக்கவும் அல்லது MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP ஐ முகப்பு - அமைவு - மற்றவற்றில் நிலையான 1 என அமைப்பதன் மூலம் அதை அகற்றவும். 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=இந்த தொகுதிக்கு தொகுதி(கள்) தேவை @@ -718,9 +718,9 @@ Permission34=தயாரிப்புகளை நீக்கு Permission36=மறைக்கப்பட்ட தயாரிப்புகளைப் பார்க்கவும்/நிர்வகிக்கவும் Permission38=ஏற்றுமதி பொருட்கள் Permission39=குறைந்தபட்ச விலையை புறக்கணிக்கவும் -Permission41=திட்டங்கள் மற்றும் பணிகளைப் படிக்கவும் (பகிரப்பட்ட திட்டம் மற்றும் நான் தொடர்பு கொண்ட திட்டங்கள்). ஒதுக்கப்பட்ட பணிகளில் எனக்கோ அல்லது எனது படிநிலைக்கோ செலவழித்த நேரத்தையும் உள்ளிடலாம் (டைம்ஷீட்) -Permission42=திட்டங்களை உருவாக்கவும்/மாற்றவும் (பகிரப்பட்ட திட்டம் மற்றும் நான் தொடர்பு கொண்ட திட்டங்கள்). பணிகளை உருவாக்கலாம் மற்றும் திட்டப்பணி மற்றும் பணிகளுக்கு பயனர்களை ஒதுக்கலாம் -Permission44=திட்டப்பணிகளை நீக்கு (பகிரப்பட்ட திட்டம் மற்றும் நான் தொடர்பு கொண்ட திட்டங்கள்) +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=ஏற்றுமதி திட்டங்கள் Permission61=தலையீடுகளைப் படிக்கவும் Permission62=தலையீடுகளை உருவாக்கவும்/மாற்றவும் @@ -766,9 +766,10 @@ Permission122=பயனருடன் இணைக்கப்பட்ட ம Permission125=பயனருடன் இணைக்கப்பட்ட மூன்றாம் தரப்பினரை நீக்கு Permission126=மூன்றாம் தரப்பினரை ஏற்றுமதி செய்யுங்கள் Permission130=மூன்றாம் தரப்பினரின் கட்டணத் தகவலை உருவாக்கவும்/மாற்றவும் -Permission141=அனைத்து திட்டப்பணிகளையும் பணிகளையும் படிக்கவும் (நான் தொடர்பில் இல்லாத தனிப்பட்ட திட்டங்களும்) -Permission142=அனைத்து திட்டங்கள் மற்றும் பணிகளை உருவாக்கவும்/மாற்றவும் (நான் தொடர்பில் இல்லாத தனிப்பட்ட திட்டங்களும்) -Permission144=அனைத்து திட்டங்கள் மற்றும் பணிகளை நீக்கவும் (நான் தொடர்பு கொள்ளாத தனிப்பட்ட திட்டங்களும்) +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=நேரடி டெபிட் கட்டண ஆர்டர்களைப் படிக்கவும் @@ -883,6 +884,9 @@ Permission564=கடன் பரிமாற்றத்தின் பற் Permission601=ஸ்டிக்கர்களைப் படிக்கவும் Permission602=ஸ்டிக்கர்களை உருவாக்கவும்/மாற்றவும் Permission609=ஸ்டிக்கர்களை நீக்கு +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=பொருட்களின் பில்களைப் படிக்கவும் Permission651=பொருட்களின் பில்களை உருவாக்கவும்/புதுப்பிக்கவும் Permission652=பொருட்களின் பில்களை நீக்கவும் @@ -969,6 +973,8 @@ Permission4021=Create/modify your evaluation Permission4022=மதிப்பீட்டைச் சரிபார்க்கவும் Permission4023=மதிப்பீட்டை நீக்கு Permission4030=ஒப்பீட்டு மெனுவைப் பார்க்கவும் +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=இணையதள உள்ளடக்கத்தைப் படிக்கவும் Permission10002=இணையதள உள்ளடக்கத்தை உருவாக்கவும்/மாற்றவும் (html மற்றும் javascript உள்ளடக்கம்) Permission10003=வலைத்தள உள்ளடக்கத்தை உருவாக்கவும்/மாற்றவும் (டைனமிக் php குறியீடு). ஆபத்தானது, கட்டுப்படுத்தப்பட்ட டெவலப்பர்களுக்கு ஒதுக்கப்பட வேண்டும். @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=செலவு அறிக்கை - போக்க DictionaryExpenseTaxRange=செலவு அறிக்கை - போக்குவரத்து வகை வாரியாக வரம்பு DictionaryTransportMode=இன்ட்ராகாம் அறிக்கை - போக்குவரத்து முறை DictionaryBatchStatus=தயாரிப்பு நிறைய/தொடர் தரக் கட்டுப்பாடு நிலை +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=அலகு வகை SetupSaved=அமைவு சேமிக்கப்பட்டது SetupNotSaved=அமைவு சேமிக்கப்படவில்லை @@ -1122,7 +1129,7 @@ ValueOfConstantKey=ஒரு கட்டமைப்பு மாறிலி ConstantIsOn=விருப்பம் %s இயக்கத்தில் உள்ளது NbOfDays=நாட்களின் எண்ணிக்கை AtEndOfMonth=மாத இறுதியில் -CurrentNext=தற்போதைய/அடுத்து +CurrentNext=A given day in month Offset=ஆஃப்செட் AlwaysActive=எப்போதும் சுறுசுறுப்பாக இருக்கும் Upgrade=மேம்படுத்தல் @@ -1187,7 +1194,7 @@ BankModuleNotActive=வங்கி கணக்கு தொகுதி இய ShowBugTrackLink=இணைப்பைக் காட்டு " %s " ShowBugTrackLinkDesc=இந்த இணைப்பைக் காட்டாமல் இருக்க காலியாக இருங்கள், Dolibarr திட்டத்திற்கான இணைப்பிற்கு 'github' மதிப்பைப் பயன்படுத்தவும் அல்லது 'https://...' என்ற url ஐ நேரடியாக வரையறுக்கவும். Alerts=எச்சரிக்கைகள் -DelaysOfToleranceBeforeWarning=இதற்கான எச்சரிக்கை எச்சரிக்கையைக் காண்பிக்கும் முன் தாமதம்: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=தாமதமான உறுப்புக்கான விழிப்பூட்டல் ஐகான் %s திரையில் காண்பிக்கப்படுவதற்கு முன் தாமதத்தை அமைக்கவும். Delays_MAIN_DELAY_ACTIONS_TODO=திட்டமிடப்பட்ட நிகழ்வுகள் (நிகழ்ச்சி நிரல் நிகழ்வுகள்) முடிக்கப்படவில்லை Delays_MAIN_DELAY_PROJECT_TO_CLOSE=திட்டம் சரியான நேரத்தில் மூடப்படவில்லை @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=எந்த மொழிக் கோப்பு TitleNumberOfActivatedModules=செயல்படுத்தப்பட்ட தொகுதிகள் TotalNumberOfActivatedModules=செயல்படுத்தப்பட்ட தொகுதிகள்: %s / %s a09a4b730f17f8 YouMustEnableOneModule=நீங்கள் குறைந்தபட்சம் 1 தொகுதியை இயக்க வேண்டும் +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=வகுப்பு %s PHP பாதையில் இல்லை YesInSummer=ஆம் கோடையில் OnlyFollowingModulesAreOpenedToExternalUsers=குறிப்பு, பின்வரும் தொகுதிகள் மட்டுமே வெளிப்புற பயனர்களுக்குக் கிடைக்கும் (அத்தகைய பயனர்களின் அனுமதிகளைப் பொருட்படுத்தாமல்) அனுமதிகள் வழங்கப்பட்டால் மட்டுமே:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=வரைவு விலைப்பட்டியல PaymentsNumberingModule=கட்டண எண் மாதிரி 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. ##### Proposals ##### PropalSetup=வணிக முன்மொழிவுகள் தொகுதி அமைவு ProposalsNumberingModules=வணிக முன்மொழிவு எண் மாதிரிகள் @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=பயன்பாட்டிலிருந்து HighlightLinesOnMouseHover=மவுஸ் நகர்த்தும்போது அட்டவணை வரிகளை முன்னிலைப்படுத்தவும் HighlightLinesColor=மவுஸ் கடந்து செல்லும் போது கோட்டின் நிறத்தை முன்னிலைப்படுத்தவும் (சிறப்பம்சமாக இல்லாமல் 'ffffff' ஐப் பயன்படுத்தவும்) HighlightLinesChecked=கோட்டின் நிறத்தை தேர்வு செய்யும்போது அதைத் தனிப்படுத்தவும் (சிறப்பம்சமாக இல்லாமல் 'ffffff' ஐப் பயன்படுத்தவும்) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=பக்க தலைப்பின் உரை நிறம் @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=விசைப்பலகையில் CTRL+F5 ஐ NotSupportedByAllThemes=வில் முக்கிய தீம்களுடன் வேலை செய்கிறது, வெளிப்புற தீம்களால் ஆதரிக்கப்படாமல் இருக்கலாம் BackgroundColor=பின்னணி நிறம் TopMenuBackgroundColor=மேல் மெனுவிற்கான பின்னணி நிறம் -TopMenuDisableImages=மேல் மெனுவில் படங்களை மறை +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=இடது மெனுவிற்கான பின்னணி நிறம் BackgroundTableTitleColor=அட்டவணை தலைப்பு வரிக்கான பின்னணி நிறம் BackgroundTableTitleTextColor=அட்டவணை தலைப்பு வரிக்கான உரை வண்ணம் @@ -1938,7 +1949,7 @@ EnterAnyCode=இந்த புலத்தில் கோட்டை அட Enter0or1=0 அல்லது 1 ஐ உள்ளிடவும் UnicodeCurrency=பிரேஸ்களுக்கு இடையில் இங்கே உள்ளிடவும், நாணயக் குறியீட்டைக் குறிக்கும் பைட் எண்ணின் பட்டியல். எடுத்துக்காட்டாக: $க்கு, [36] உள்ளிடவும் - பிரேசிலுக்கு உண்மையான R$ [82,36] - €க்கு, உள்ளிடவும் [8364] ColorFormat=RGB வண்ணம் HEX வடிவத்தில் உள்ளது, எ.கா: FF0000 -PictoHelp=டோலிபார் வடிவத்தில் ஐகான் பெயர் (தற்போதைய தீம் கோப்பகத்தில் இருந்தால் 'image.png', தொகுதியின் /img/ கோப்பகத்தில் இருந்தால் 'image.png@nom_du_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=சேர்க்கை பட்டியல்களில் வரியின் நிலை SellTaxRate=விற்பனை வரி விகிதம் RecuperableOnly=ஆம், பிரான்ஸில் உள்ள சில மாநிலங்களுக்காக அர்ப்பணிக்கப்பட்ட VAT "அறிந்துகொள்ளப்படவில்லை ஆனால் மீட்டெடுக்கக்கூடியது". மற்ற எல்லா நிகழ்வுகளிலும் மதிப்பை "இல்லை" ஆக வைத்திருக்கவும். @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=ரீஜெக்ஸ் வடிப்பான COMPANY_DIGITARIA_CLEAN_REGEX=ரீஜெக்ஸ் ஃபில்டர் சுத்தமான மதிப்பு (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=நகல் அனுமதிக்கப்படவில்லை GDPRContact=தரவு பாதுகாப்பு அதிகாரி (DPO, தரவு தனியுரிமை அல்லது GDPR தொடர்பு) -GDPRContactDesc=ஐரோப்பிய நிறுவனங்கள்/குடிமக்கள் பற்றிய தரவை நீங்கள் சேமித்தால், பொது தரவு பாதுகாப்பு ஒழுங்குமுறைக்கு பொறுப்பான தொடர்பை நீங்கள் இங்கு குறிப்பிடலாம் +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=உதவிக்குறிப்பில் உரையைக் காட்ட உதவும் HelpOnTooltipDesc=இந்தப் புலம் படிவத்தில் தோன்றும் போது, டூல்டிப்பில் உரையைக் காட்ட, உரை அல்லது மொழிபெயர்ப்பு விசையை இங்கே வைக்கவும் YouCanDeleteFileOnServerWith=கட்டளை வரி மூலம் இந்த கோப்பை சர்வரில் நீக்கலாம்:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=குறிப்பு: %s - %s என்ற மெனுவி SwapSenderAndRecipientOnPDF=PDF ஆவணங்களில் அனுப்புநர் மற்றும் பெறுநரின் முகவரி நிலையை மாற்றவும் FeatureSupportedOnTextFieldsOnly=எச்சரிக்கை, அம்சம் உரை புலங்கள் மற்றும் சேர்க்கை பட்டியல்களில் மட்டுமே ஆதரிக்கப்படுகிறது. மேலும் ஒரு URL அளவுரு செயல்=உருவாக்கு அல்லது செயல்=திருத்தம் அமைக்கப்பட வேண்டும் அல்லது இந்த அம்சத்தைத் தூண்டுவதற்கு பக்கத்தின் பெயர் 'new.php' உடன் முடிவடைய வேண்டும். EmailCollector=மின்னஞ்சல் சேகரிப்பான் +EmailCollectors=Email collectors EmailCollectorDescription=வழக்கமான மின்னஞ்சல் பெட்டிகளை (IMAP நெறிமுறையைப் பயன்படுத்தி) ஸ்கேன் செய்ய திட்டமிடப்பட்ட வேலை மற்றும் அமைவுப் பக்கத்தைச் சேர்க்கவும் மற்றும் உங்கள் விண்ணப்பத்தில் பெறப்பட்ட மின்னஞ்சல்களை சரியான இடத்தில் பதிவு செய்யவும் மற்றும்/அல்லது சில பதிவுகளை தானாக உருவாக்கவும் (லீட்கள் போன்றவை). NewEmailCollector=புதிய மின்னஞ்சல் கலெக்டர் EMailHost=மின்னஞ்சல் IMAP சேவையகத்தின் ஹோஸ்ட் @@ -2057,18 +2069,30 @@ EmailcollectorOperations=கலெக்டர் மூலம் செய் EmailcollectorOperationsDesc=செயல்பாடுகள் மேலிருந்து கீழ் வரிசையில் செயல்படுத்தப்படுகின்றன MaxEmailCollectPerCollect=ஒரு சேகரிப்புக்கு அதிகபட்ச மின்னஞ்சல்கள் சேகரிக்கப்படுகின்றன CollectNow=இப்போது சேகரிக்கவும் -ConfirmCloneEmailCollector=மின்னஞ்சல் சேகரிப்பான் %s ஐ நிச்சயமாக குளோன் செய்ய விரும்புகிறீர்களா? +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 an agenda event. EmailCollectorConfirmCollectTitle=மின்னஞ்சல் சேகரிப்பு உறுதிப்படுத்தல் -EmailCollectorConfirmCollect=இந்த சேகரிப்பாளருக்கான சேகரிப்பை இப்போது இயக்க விரும்புகிறீர்களா? +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=செயலாக்க புதிய மின்னஞ்சல் (பொருந்தும் வடிப்பான்கள்) இல்லை 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, 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=சமீபத்திய முடிவு குறியீடு NbOfEmailsInInbox=மூல கோப்பகத்தில் உள்ள மின்னஞ்சல்களின் எண்ணிக்கை LoadThirdPartyFromName=%s இல் மூன்றாம் தரப்பு தேடலை ஏற்றவும் (ஏற்றம் மட்டும்) @@ -2089,7 +2113,7 @@ ResourceSetup=வள தொகுதியின் கட்டமைப்ப UseSearchToSelectResource=ஆதாரத்தைத் தேர்ந்தெடுக்க தேடல் படிவத்தைப் பயன்படுத்தவும் (கீழ்தோன்றும் பட்டியலுக்குப் பதிலாக). DisabledResourceLinkUser=ஒரு ஆதாரத்தை பயனர்களுடன் இணைக்க அம்சத்தை முடக்கவும் DisabledResourceLinkContact=ஒரு ஆதாரத்தை தொடர்புகளுடன் இணைக்க அம்சத்தை முடக்கவும் -EnableResourceUsedInEventCheck=ஒரு நிகழ்வில் ஆதாரம் பயன்பாட்டில் உள்ளதா என்பதைச் சரிபார்க்க அம்சத்தை இயக்கவும் +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=தொகுதி மீட்டமைப்பை உறுதிப்படுத்தவும் OnMobileOnly=சிறிய திரையில் (ஸ்மார்ட்போன்) மட்டும் DisableProspectCustomerType="Prospect + Customer" மூன்றாம் தரப்பு வகையை முடக்கவும் (எனவே மூன்றாம் தரப்பு "Prospect" அல்லது "Customer" ஆக இருக்க வேண்டும், ஆனால் இரண்டும் இருக்க முடியாது) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=மின்னஞ்சல் சேகரிப்பா ConfirmDeleteEmailCollector=இந்த மின்னஞ்சல் சேகரிப்பாளரை நிச்சயமாக நீக்க விரும்புகிறீர்களா? RecipientEmailsWillBeReplacedWithThisValue=பெறுநரின் மின்னஞ்சல்கள் எப்போதும் இந்த மதிப்புடன் மாற்றப்படும் AtLeastOneDefaultBankAccountMandatory=குறைந்தது 1 இயல்புநிலை வங்கிக் கணக்கையாவது வரையறுக்க வேண்டும் -RESTRICT_ON_IP=சில ஹோஸ்ட் ஐபிக்கு மட்டும் அணுகலை அனுமதிக்கவும் (வைல்டு கார்டு அனுமதிக்கப்படவில்லை, மதிப்புகளுக்கு இடையில் இடைவெளியைப் பயன்படுத்தவும்). காலி என்றால் ஒவ்வொரு ஹோஸ்ட்களும் அணுக முடியும். +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=நூலகத்தின் SabreDAV பதிப்பின் அடிப்படையில் NotAPublicIp=பொது ஐபி அல்ல @@ -2144,6 +2168,9 @@ 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 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 என்ற பொதுவான மதிப்பைப் பயன்படுத்தலாம். @@ -2206,12 +2233,12 @@ DashboardDisableBlockAdherent=உறுப்பினர்களுக்க DashboardDisableBlockExpenseReport=செலவு அறிக்கைகளுக்கு கட்டைவிரலை முடக்கவும் DashboardDisableBlockHoliday=இலைகளுக்கு கட்டைவிரலை முடக்கவும் EnabledCondition=புலத்தை இயக்குவதற்கான நிபந்தனை (இயக்கப்படாவிட்டால், தெரிவுநிலை எப்போதும் முடக்கப்படும்) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=நீங்கள் இரண்டாவது வரியைப் பயன்படுத்த விரும்பினால், முதல் விற்பனை வரியையும் நீங்கள் இயக்க வேண்டும் -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=நீங்கள் மூன்றாவது வரியைப் பயன்படுத்த விரும்பினால், முதல் விற்பனை வரியையும் நீங்கள் இயக்க வேண்டும் +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=மொழி மற்றும் விளக்கக்காட்சி SkinAndColors=தோல் மற்றும் நிறங்கள் -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=நீங்கள் இரண்டாவது வரியைப் பயன்படுத்த விரும்பினால், முதல் விற்பனை வரியையும் நீங்கள் இயக்க வேண்டும் -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=நீங்கள் மூன்றாவது வரியைப் பயன்படுத்த விரும்பினால், முதல் விற்பனை வரியையும் நீங்கள் இயக்க வேண்டும் +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=PDF/A-1b வடிவத்தில் PDF ஐ உருவாக்கவும் MissingTranslationForConfKey = %sக்கான மொழிபெயர்ப்பு இல்லை NativeModules=சொந்த தொகுதிகள் @@ -2220,3 +2247,35 @@ API_DISABLE_COMPRESSION=API பதில்களின் சுருக்க 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/ta_IN/banks.lang b/htdocs/langs/ta_IN/banks.lang index 63dd00eef35..ffd7b9d1020 100644 --- a/htdocs/langs/ta_IN/banks.lang +++ b/htdocs/langs/ta_IN/banks.lang @@ -95,11 +95,11 @@ LineRecord=பரிவர்த்தனை AddBankRecord=உள்ளீட்டைச் சேர்க்கவும் AddBankRecordLong=உள்ளீட்டை கைமுறையாகச் சேர்க்கவும் Conciliated=சமரசம் செய்தார் -ConciliatedBy=மூலம் சமரசம் செய்தார் +ReConciliedBy=Reconciled by DateConciliating=தேதியை சரிசெய்யவும் BankLineConciliated=நுழைவு வங்கி ரசீதுடன் சரி செய்யப்பட்டது -Reconciled=சமரசம் செய்தார் -NotReconciled=சமரசம் செய்யவில்லை +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=வாடிக்கையாளர் கட்டணம் SupplierInvoicePayment=விற்பனையாளர் கட்டணம் SubscriptionPayment=சந்தா செலுத்துதல் @@ -172,8 +172,8 @@ SEPAMandate=SEPA ஆணை YourSEPAMandate=உங்கள் SEPA ஆணை FindYourSEPAMandate=உங்கள் வங்கிக்கு நேரடி டெபிட் ஆர்டரைச் செய்ய எங்கள் நிறுவனத்தை அங்கீகரிக்க இது உங்களின் SEPA ஆணை. கையொப்பமிடப்பட்டதைத் திருப்பி அனுப்பவும் (கையொப்பமிடப்பட்ட ஆவணத்தின் ஸ்கேன்) அல்லது அஞ்சல் மூலம் அனுப்பவும் AutoReportLastAccountStatement=சமரசம் செய்யும் போது தானாக 'வங்கி அறிக்கையின் எண்' புலத்தை கடைசி அறிக்கை எண்ணுடன் நிரப்பவும் -CashControl=பிஓஎஸ் பண மேசை கட்டுப்பாடு -NewCashFence=புதிய பண மேசை திறப்பு அல்லது மூடல் +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=இயக்கங்களை வண்ணமயமாக்குங்கள் BankColorizeMovementDesc=இந்த செயல்பாடு இயக்கப்பட்டால், டெபிட் அல்லது கிரெடிட் இயக்கங்களுக்கு குறிப்பிட்ட பின்னணி நிறத்தை நீங்கள் தேர்வு செய்யலாம் BankColorizeMovementName1=டெபிட் இயக்கத்திற்கான பின்னணி நிறம் @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=சில வங்கிக் கணக் NoBankAccountDefined=வங்கிக் கணக்கு எதுவும் வரையறுக்கப்படவில்லை NoRecordFoundIBankcAccount=வங்கிக் கணக்கில் பதிவு எதுவும் இல்லை. பொதுவாக, வங்கிக் கணக்கில் உள்ள பரிவர்த்தனை பட்டியலிலிருந்து ஒரு பதிவு கைமுறையாக நீக்கப்படும்போது இது நிகழ்கிறது (எடுத்துக்காட்டாக, வங்கிக் கணக்கின் சமரசத்தின் போது). மற்றொரு காரணம், "%s" தொகுதி முடக்கப்பட்டபோது கட்டணம் பதிவு செய்யப்பட்டது. AlreadyOneBankAccount=ஏற்கனவே ஒரு வங்கி கணக்கு வரையறுக்கப்பட்டுள்ளது +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/ta_IN/bills.lang b/htdocs/langs/ta_IN/bills.lang index 45c25cd6ff4..7e352e97990 100644 --- a/htdocs/langs/ta_IN/bills.lang +++ b/htdocs/langs/ta_IN/bills.lang @@ -156,6 +156,7 @@ 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. BillFrom=இருந்து BillTo=செய்ய ActionsOnBill=விலைப்பட்டியல் மீதான நடவடிக்கைகள் @@ -282,6 +283,8 @@ RecurringInvoices=தொடர்ச்சியான இன்வாய்ஸ RecurringInvoice=தொடர்ச்சியான விலைப்பட்டியல் RepeatableInvoice=டெம்ப்ளேட் விலைப்பட்டியல் RepeatableInvoices=டெம்ப்ளேட் இன்வாய்ஸ்கள் +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=டெம்ப்ளேட் Repeatables=வார்ப்புருக்கள் ChangeIntoRepeatableInvoice=டெம்ப்ளேட் இன்வாய்ஸாக மாற்றவும் @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=காசோலை கொடுப்பனவு SendTo=அனுப்பப்பட்டது PaymentByTransferOnThisBankAccount=பின்வரும் வங்கிக் கணக்கிற்கு மாற்றுவதன் மூலம் பணம் செலுத்துதல் VATIsNotUsedForInvoice=* CGI இன் பொருந்தாத VAT கலை-293B +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=12/05/80 இன் 80.335 சட்டத்தின் பயன்பாட்டின் மூலம் LawApplicationPart2=பொருட்கள் சொத்தாகவே இருக்கும் LawApplicationPart3=முழுமையாக செலுத்தும் வரை விற்பனையாளர் @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=சப்ளையர் இன்வாய்ஸ UnitPriceXQtyLessDiscount=யூனிட் விலை x Qty - தள்ளுபடி CustomersInvoicesArea=வாடிக்கையாளர் பில்லிங் பகுதி SupplierInvoicesArea=சப்ளையர் பில்லிங் பகுதி -FacParentLine=விலைப்பட்டியல் வரி பெற்றோர் SituationTotalRayToRest=மீதியை வரி இல்லாமல் செலுத்த வேண்டும் PDFSituationTitle=நிலைமை n° %d SituationTotalProgress=மொத்த முன்னேற்றம் %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=செலுத்தப்படாத இன NoPaymentAvailable=%s க்கு கட்டணம் இல்லை PaymentRegisteredAndInvoiceSetToPaid=கட்டணம் பதிவுசெய்யப்பட்டது மற்றும் விலைப்பட்டியல் %s செலுத்தப்பட்டது SendEmailsRemindersOnInvoiceDueDate=செலுத்தப்படாத இன்வாய்ஸ்களுக்கு மின்னஞ்சல் மூலம் நினைவூட்டல் அனுப்பவும் +MakePaymentAndClassifyPayed=Record payment +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) diff --git a/htdocs/langs/ta_IN/cashdesk.lang b/htdocs/langs/ta_IN/cashdesk.lang index 79d9b4a853d..d83eae6db33 100644 --- a/htdocs/langs/ta_IN/cashdesk.lang +++ b/htdocs/langs/ta_IN/cashdesk.lang @@ -50,8 +50,8 @@ Footer=அடிக்குறிப்பு AmountAtEndOfPeriod=காலத்தின் முடிவில் தொகை (நாள், மாதம் அல்லது ஆண்டு) TheoricalAmount=தத்துவார்த்த அளவு RealAmount=உண்மையான தொகை -CashFence=பண மேசை மூடல் -CashFenceDone=காலத்திற்கான பண மேசையை மூடுவது +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=இன்வாய்ஸ்களின் Nb Paymentnumpad=கட்டணத்தை உள்ளிட பேட் வகை Numberspad=எண்கள் பேட் @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} டேக் டெர்மி TakeposGroupSameProduct=அதே தயாரிப்பு வரிகளை குழுவாக்கவும் StartAParallelSale=புதிய இணை விற்பனையைத் தொடங்கவும் SaleStartedAt=%s இல் விற்பனை தொடங்கியது -ControlCashOpening=POS ஐ திறக்கும் போது "Control cash" பாப்அப்பைத் திறக்கவும் -CloseCashFence=பண மேசை கட்டுப்பாட்டை மூடு +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=பண அறிக்கை MainPrinterToUse=பயன்படுத்த வேண்டிய முக்கிய அச்சுப்பொறி OrderPrinterToUse=அச்சுப்பொறியைப் பயன்படுத்த ஆர்டர் செய்யவும் @@ -134,3 +134,5 @@ PrintWithoutDetailsButton="விவரங்கள் இல்லாமல் PrintWithoutDetailsLabelDefault=விவரங்கள் இல்லாமல் அச்சிடும்போது இயல்பாக வரி லேபிள் PrintWithoutDetails=விவரங்கள் இல்லாமல் அச்சிடவும் YearNotDefined=ஆண்டு வரையறுக்கப்படவில்லை +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
    diff --git a/htdocs/langs/ta_IN/companies.lang b/htdocs/langs/ta_IN/companies.lang index 446b7ae95ba..7dd16e899b7 100644 --- a/htdocs/langs/ta_IN/companies.lang +++ b/htdocs/langs/ta_IN/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=எதிர்பார்ப்பு பகுதி IdThirdParty=ஐடி மூன்றாம் தரப்பு IdCompany=நிறுவனத்தின் ஐடி IdContact=தொடர்பு ஐடி +ThirdPartyAddress=Third-party address ThirdPartyContacts=மூன்றாம் தரப்பு தொடர்புகள் ThirdPartyContact=மூன்றாம் தரப்பு தொடர்பு/முகவரி Company=நிறுவனம் @@ -51,19 +52,22 @@ CivilityCode=நாகரிகக் குறியீடு RegisteredOffice=பதிவுசெய்யப்பட்ட அலுவலகம் Lastname=கடைசி பெயர் Firstname=முதல் பெயர் +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=வேலை நிலை UserTitle=தலைப்பு NatureOfThirdParty=மூன்றாம் தரப்பினரின் இயல்பு NatureOfContact=தொடர்பு இயல்பு Address=முகவரி State=மாநிலம்/மாகாணம் +StateId=State ID StateCode=மாநிலம்/ மாகாண குறியீடு StateShort=நிலை Region=பிராந்தியம் Region-State=பகுதி - மாநிலம் Country=நாடு CountryCode=நாட்டின் குறியீடு -CountryId=நாட்டின் ஐடி +CountryId=Country ID Phone=தொலைபேசி PhoneShort=தொலைபேசி Skype=ஸ்கைப் @@ -102,6 +106,7 @@ WrongSupplierCode=விற்பனையாளர் குறியீடு CustomerCodeModel=வாடிக்கையாளர் குறியீடு மாதிரி SupplierCodeModel=விற்பனையாளர் குறியீடு மாதிரி Gencod=பார்கோடு +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=பேராசிரியர் ஐடி 1 ProfId2Short=பேராசிரியர் ஐடி 2 @@ -159,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=- @@ -359,7 +364,7 @@ ListOfThirdParties=மூன்றாம் தரப்பினரின் ShowCompany=மூன்றாம் தரப்பு ShowContact=தொடர்பு-முகவரி ContactsAllShort=அனைத்தும் (வடிப்பான் இல்லை) -ContactType=தொடர்பு வகை +ContactType=Contact role ContactForOrders=ஆர்டரின் தொடர்பு ContactForOrdersOrShipments=ஆர்டர் அல்லது ஏற்றுமதியின் தொடர்பு ContactForProposals=முன்மொழிவின் தொடர்பு @@ -439,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 5448e54dfa1..f776488fa97 100644 --- a/htdocs/langs/ta_IN/compta.lang +++ b/htdocs/langs/ta_IN/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=இந்த சம்பள அட்டையை பணம் DeleteSocialContribution=சமூக அல்லது நிதி வரி செலுத்துதலை நீக்கவும் DeleteVAT=VAT அறிவிப்பை நீக்கவும் DeleteSalary=சம்பள அட்டையை நீக்கவும் +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=இந்த சமூக/நிதி வரி செலுத்துதலை நிச்சயமாக நீக்க விரும்புகிறீர்களா? ConfirmDeleteVAT=இந்த VAT அறிவிப்பை நிச்சயமாக நீக்க விரும்புகிறீர்களா? -ConfirmDeleteSalary=இந்த சம்பளத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா? +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 மீது அர்ப்பணிப்பு கணக்கியல்0ecb2ec87f49fz0 . CalcModeVATEngagement=வருமானத்தில் %sVAT-செலவுகள்-செலவுகள்0ecb2ec87f49fz0 . @@ -287,9 +289,9 @@ ReportPurchaseTurnover=கொள்முதல் விற்றுமுத ReportPurchaseTurnoverCollected=கொள்முதல் விற்றுமுதல் சேகரிக்கப்பட்டது IncludeVarpaysInResults = அறிக்கைகளில் பல்வேறு கொடுப்பனவுகளைச் சேர்க்கவும் IncludeLoansInResults = அறிக்கைகளில் கடன்களைச் சேர்க்கவும் -InvoiceLate30Days = விலைப்பட்டியல் தாமதமானது (> 30 நாட்கள்) -InvoiceLate15Days = இன்வாய்ஸ்கள் தாமதம் (15 முதல் 30 நாட்கள்) -InvoiceLateMinus15Days = விலைப்பட்டியல் தாமதமானது (< 15 நாட்கள்) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = சேகரிக்கப்படும் (< 15 நாட்கள்) InvoiceNotLate15Days = சேகரிக்கப்படும் (15 முதல் 30 நாட்கள்) InvoiceNotLate30Days = சேகரிக்கப்படும் (> 30 நாட்கள்) 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/exports.lang b/htdocs/langs/ta_IN/exports.lang index 3356784be5f..703a059bac8 100644 --- a/htdocs/langs/ta_IN/exports.lang +++ b/htdocs/langs/ta_IN/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=வரி வகை (0=தயாரிப்பு, 1 FileWithDataToImport=இறக்குமதி செய்ய தரவு கொண்ட கோப்பு FileToImport=இறக்குமதி செய்வதற்கான மூலக் கோப்பு FileMustHaveOneOfFollowingFormat=இறக்குமதி செய்வதற்கான கோப்பு பின்வரும் வடிவங்களில் ஒன்றைக் கொண்டிருக்க வேண்டும் -DownloadEmptyExample=புல உள்ளடக்கத் தகவலுடன் டெம்ப்ளேட் கோப்பைப் பதிவிறக்கவும் -StarAreMandatory=* கட்டாய புலங்கள் +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 ஐகானைக் கிளிக் செய்யவும்... ChooseFileToImport=கோப்பைப் பதிவேற்றவும், பின்னர் கோப்பை மூல இறக்குமதி கோப்பாக தேர்ந்தெடுக்க %s ஐகானைக் கிளிக் செய்யவும்... SourceFileFormat=மூல கோப்பு வடிவம் @@ -135,3 +135,6 @@ NbInsert=செருகப்பட்ட வரிகளின் எண்ண NbUpdate=புதுப்பிக்கப்பட்ட வரிகளின் எண்ணிக்கை: %s MultipleRecordFoundWithTheseFilters=இந்த வடிப்பான்களுடன் பல பதிவுகள் கண்டறியப்பட்டுள்ளன: %s StocksWithBatch=தொகுதி/வரிசை எண் கொண்ட தயாரிப்புகளின் பங்குகள் மற்றும் இடம் (கிடங்கு). +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: 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/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 cc851aef05b..682b5cd7503 100644 --- a/htdocs/langs/ta_IN/install.lang +++ b/htdocs/langs/ta_IN/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=உள்ளமைவு கோப்பு %s ConfFileIsWritable=உள்ளமைவு கோப்பு %s எழுதக்கூடியது. ConfFileMustBeAFileNotADir=உள்ளமைவு கோப்பு %s ஒரு கோப்பாக இருக்க வேண்டும், கோப்பகமாக இருக்கக்கூடாது. ConfFileReload=உள்ளமைவு கோப்பிலிருந்து அளவுருக்களை மீண்டும் ஏற்றுகிறது. +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 அமர்வுகளை ஆதரிக்கிறது. @@ -16,13 +17,6 @@ PHPMemoryOK=உங்கள் PHP அதிகபட்ச அமர்வு PHPMemoryTooLow=உங்கள் PHP அதிகபட்ச அமர்வு நினைவகம் %s பைட்டுகளாக அமைக்கப்பட்டுள்ளது. இது மிகவும் குறைவு. உங்கள் php.ini memory_limit அளவுருவை குறைந்தபட்சம் a790 க்கு afz Recheck=மேலும் விரிவான சோதனைக்கு இங்கே கிளிக் செய்யவும் ErrorPHPDoesNotSupportSessions=உங்கள் PHP நிறுவல் அமர்வுகளை ஆதரிக்காது. Dolibarr வேலை செய்ய இந்த அம்சம் தேவை. உங்கள் PHP அமைப்பு மற்றும் அமர்வுகள் கோப்பகத்தின் அனுமதிகளைச் சரிபார்க்கவும். -ErrorPHPDoesNotSupportGD=உங்கள் PHP நிறுவல் GD வரைகலை செயல்பாடுகளை ஆதரிக்காது. வரைபடங்கள் எதுவும் கிடைக்காது. -ErrorPHPDoesNotSupportCurl=உங்கள் PHP நிறுவல் கர்லை ஆதரிக்காது. -ErrorPHPDoesNotSupportCalendar=உங்கள் PHP நிறுவல் php காலண்டர் நீட்டிப்புகளை ஆதரிக்காது. -ErrorPHPDoesNotSupportUTF8=உங்கள் PHP நிறுவல் UTF8 செயல்பாடுகளை ஆதரிக்காது. டோலிபார் சரியாக வேலை செய்ய முடியாது. Dolibarr ஐ நிறுவும் முன் இதைத் தீர்க்கவும். -ErrorPHPDoesNotSupportIntl=உங்கள் PHP நிறுவல் Intl செயல்பாடுகளை ஆதரிக்காது. -ErrorPHPDoesNotSupportMbstring=உங்கள் PHP நிறுவல் mbstring செயல்பாடுகளை ஆதரிக்காது. -ErrorPHPDoesNotSupportxDebug=உங்கள் PHP நிறுவல் நீட்டிக்கப்பட்ட பிழைத்திருத்த செயல்பாடுகளை ஆதரிக்காது. ErrorPHPDoesNotSupport=உங்கள் PHP நிறுவல் %s செயல்பாடுகளை ஆதரிக்காது. ErrorDirDoesNotExists=%s கோப்பகம் இல்லை. ErrorGoBackAndCorrectParameters=திரும்பிச் சென்று அளவுருக்களை சரிபார்க்கவும்/சரி செய்யவும். @@ -30,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..6f030a5e6f0 100644 --- a/htdocs/langs/ta_IN/loan.lang +++ b/htdocs/langs/ta_IN/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=நிதி அர்ப்பணிப்பு InterestAmount=ஆர்வம் CapitalRemain=மூலதனம் உள்ளது TermPaidAllreadyPaid = இந்த காலம் ஏற்கனவே செலுத்தப்பட்டது -CantUseScheduleWithLoanStartedToPaid = பணம் செலுத்தத் தொடங்கியவுடன் கடனுக்காக திட்டமிடலைப் பயன்படுத்த முடியாது +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = நீங்கள் அட்டவணையைப் பயன்படுத்தினால் ஆர்வத்தை மாற்ற முடியாது # Admin ConfigLoan=தொகுதி கடன் கட்டமைப்பு diff --git a/htdocs/langs/ta_IN/main.lang b/htdocs/langs/ta_IN/main.lang index b61756b95b0..e8857b01547 100644 --- a/htdocs/langs/ta_IN/main.lang +++ b/htdocs/langs/ta_IN/main.lang @@ -4,7 +4,7 @@ DIRECTION=ltr # 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=freemono +FONTFORPDF=freeserif FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, @@ -244,6 +244,7 @@ Designation=விளக்கம் DescriptionOfLine=வரியின் விளக்கம் DateOfLine=வரியின் தேதி DurationOfLine=வரியின் காலம் +ParentLine=Parent line ID Model=ஆவண டெம்ப்ளேட் DefaultModel=இயல்புநிலை ஆவண டெம்ப்ளேட் Action=நிகழ்வு @@ -344,7 +345,7 @@ KiloBytes=கிலோபைட்டுகள் MegaBytes=மெகாபைட்கள் GigaBytes=ஜிகாபைட்கள் TeraBytes=டெராபைட்டுகள் -UserAuthor=மூலம் அமைக்கப்பட்டது +UserAuthor=Created by UserModif=மூலம் புதுப்பிக்கப்பட்டது b=பி. Kb=கேபி @@ -517,6 +518,7 @@ or=அல்லது Other=மற்றவை Others=மற்றவைகள் OtherInformations=பிற தகவல் +Workflow=Workflow Quantity=அளவு Qty=அளவு ChangedBy=மூலம் மாற்றப்பட்டது @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=அம்சம் முடக்கப்பட்டது MoveBox=விட்ஜெட்டை நகர்த்தவும் Offered=வழங்கப்பட்டது NotEnoughPermissions=இந்தச் செயலுக்கு உங்களிடம் அனுமதி இல்லை +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=அமர்வு பெயர் Method=முறை Receive=பெறு @@ -798,6 +802,7 @@ URLPhoto=புகைப்படம்/லோகோவின் URL SetLinkToAnotherThirdParty=மற்றொரு மூன்றாம் தரப்பினருக்கான இணைப்பு LinkTo=இணைப்பு LinkToProposal=முன்மொழிவுக்கான இணைப்பு +LinkToExpedition= Link to expedition LinkToOrder=ஆர்டருக்கான இணைப்பு LinkToInvoice=விலைப்பட்டியலுக்கான இணைப்பு LinkToTemplateInvoice=டெம்ப்ளேட் விலைப்பட்டியலுக்கான இணைப்பு @@ -1164,3 +1169,14 @@ 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 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/ta_IN/members.lang b/htdocs/langs/ta_IN/members.lang index 8932a22b739..60ed236be56 100644 --- a/htdocs/langs/ta_IN/members.lang +++ b/htdocs/langs/ta_IN/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=மற்றொரு உறுப ErrorUserPermissionAllowsToLinksToItselfOnly=பாதுகாப்பு காரணங்களுக்காக, உங்களுடையது அல்லாத ஒரு பயனருடன் ஒரு உறுப்பினரை இணைக்க அனைத்து பயனர்களையும் திருத்துவதற்கான அனுமதிகள் உங்களுக்கு வழங்கப்பட வேண்டும். SetLinkToUser=Dolibarr பயனருக்கான இணைப்பு SetLinkToThirdParty=Dolibarr மூன்றாம் தரப்பினருக்கான இணைப்பு -MembersCards=உறுப்பினர்களுக்கான வணிக அட்டைகள் +MembersCards=Generation of cards for members MembersList=உறுப்பினர்களின் பட்டியல் MembersListToValid=வரைவு உறுப்பினர்களின் பட்டியல் (சரிபார்க்கப்பட வேண்டும்) MembersListValid=செல்லுபடியாகும் உறுப்பினர்களின் பட்டியல் @@ -35,7 +35,8 @@ DateEndSubscription=உறுப்பினர் முடிவு தேத EndSubscription=உறுப்பினர் முடிவு SubscriptionId=பங்களிப்பு ஐடி WithoutSubscription=பங்களிப்பு இல்லாமல் -MemberId=உறுப்பினர் அடையாள எண் +MemberId=Member Id +MemberRef=Member Ref NewMember=புதிய உறுப்பினர் MemberType=உறுப்பினர் வகை MemberTypeId=உறுப்பினர் வகை ஐடி @@ -71,6 +72,12 @@ MemberTypeCanNotBeDeleted=உறுப்பினர் வகையை நீ NewSubscription=புதிய பங்களிப்பு NewSubscriptionDesc=அறக்கட்டளையின் புதிய உறுப்பினராக உங்கள் சந்தாவைப் பதிவுசெய்ய இந்தப் படிவம் உங்களை அனுமதிக்கிறது. உங்கள் சந்தாவைப் புதுப்பிக்க விரும்பினால் (ஏற்கனவே உறுப்பினராக இருந்தால்), அதற்கு பதிலாக %s என்ற மின்னஞ்சல் மூலம் அடித்தள வாரியத்தைத் தொடர்பு கொள்ளவும். Subscription=பங்களிப்பு +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=பங்களிப்புகள் SubscriptionLate=லேட் SubscriptionNotReceived=பங்களிப்பு ஒருபோதும் பெறப்படவில்லை @@ -135,7 +142,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=விருந்தினரின் தானாகக் கல்வெட்டு ஏற்பட்டால் பெறப்பட்ட அறிவிப்பு மின்னஞ்சலின் பொருள் @@ -159,11 +166,11 @@ HTPasswordExport=htpassword கோப்பு உருவாக்கம் NoThirdPartyAssociatedToMember=இந்த உறுப்பினருடன் எந்த மூன்றாம் தரப்பினரும் தொடர்பு இல்லை MembersAndSubscriptions=உறுப்பினர்கள் மற்றும் பங்களிப்புகள் MoreActions=பதிவு செய்வதில் கூடுதல் நடவடிக்கை -MoreActionsOnSubscription=ஒரு பங்களிப்பைப் பதிவு செய்யும் போது இயல்பாகப் பரிந்துரைக்கப்படும் நிரப்பு நடவடிக்கை +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution MoreActionBankDirect=வங்கிக் கணக்கில் நேரடி உள்ளீட்டை உருவாக்கவும் MoreActionBankViaInvoice=விலைப்பட்டியலை உருவாக்கவும், வங்கிக் கணக்கில் பணம் செலுத்தவும் MoreActionInvoiceOnly=கட்டணம் இல்லாமல் விலைப்பட்டியல் உருவாக்கவும் -LinkToGeneratedPages=வருகை அட்டைகளை உருவாக்கவும் +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=இந்தத் திரையானது உங்கள் உறுப்பினர்கள் அல்லது குறிப்பிட்ட உறுப்பினருக்கான வணிக அட்டைகளுடன் PDF கோப்புகளை உருவாக்க உங்களை அனுமதிக்கிறது. DocForAllMembersCards=அனைத்து உறுப்பினர்களுக்கும் வணிக அட்டைகளை உருவாக்கவும் DocForOneMemberCards=ஒரு குறிப்பிட்ட உறுப்பினருக்கான வணிக அட்டைகளை உருவாக்கவும் @@ -198,7 +205,8 @@ NbOfSubscriptions=பங்களிப்புகளின் எண்ணி AmountOfSubscriptions=பங்களிப்புகளிலிருந்து சேகரிக்கப்பட்ட தொகை TurnoverOrBudget=விற்றுமுதல் (ஒரு நிறுவனத்திற்கு) அல்லது பட்ஜெட் (ஒரு அடித்தளத்திற்கு) DefaultAmount=பங்களிப்பு தொகையின் இயல்புநிலை -CanEditAmount=அதன் பங்களிப்பின் அளவை பார்வையாளர் தேர்வு செய்யலாம்/திருத்தலாம் +CanEditAmount=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=இயல்பிலேயே உறுப்பினர்களின் புள்ளிவிவரங்கள் @@ -218,3 +226,5 @@ XExternalUserCreated=%s வெளிப்புற பயனர்(கள்) ForceMemberNature=கட்டாய உறுப்பினர் இயல்பு (தனிநபர் அல்லது நிறுவனம்) CreateDolibarrLoginDesc=உறுப்பினர்களுக்கான பயனர் உள்நுழைவை உருவாக்குவது, பயன்பாட்டோடு இணைக்க அவர்களை அனுமதிக்கிறது. வழங்கப்பட்ட அங்கீகாரங்களைப் பொறுத்து, அவர்கள் தங்கள் கோப்பைக் கலந்தாலோசிக்க அல்லது மாற்றியமைக்க முடியும். CreateDolibarrThirdPartyDesc=மூன்றாம் தரப்பினர் என்பது ஒவ்வொரு பங்களிப்பிற்கும் விலைப்பட்டியல் உருவாக்க முடிவு செய்தால், விலைப்பட்டியலில் பயன்படுத்தப்படும் சட்டப்பூர்வ நிறுவனம் ஆகும். பங்களிப்பைப் பதிவு செய்யும் போது நீங்கள் அதை உருவாக்க முடியும். +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/ta_IN/modulebuilder.lang b/htdocs/langs/ta_IN/modulebuilder.lang index 02522b27ef8..b4782fad195 100644 --- a/htdocs/langs/ta_IN/modulebuilder.lang +++ b/htdocs/langs/ta_IN/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=இந்த கருவியை அனுபவம் வாய்ந்த பயனர்கள் அல்லது டெவலப்பர்கள் மட்டுமே பயன்படுத்த வேண்டும். இது உங்கள் சொந்த தொகுதியை உருவாக்க அல்லது திருத்துவதற்கான பயன்பாடுகளை வழங்குகிறது. மாற்று கைமுறை மேம்பாட்டிற்கான ஆவணம் இங்கே . -EnterNameOfModuleDesc=இடைவெளிகள் இல்லாமல் உருவாக்க தொகுதி/பயன்பாட்டின் பெயரை உள்ளிடவும். சொற்களைப் பிரிக்க பெரிய எழுத்தைப் பயன்படுத்தவும் (எடுத்துக்காட்டாக: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=இடங்கள் இல்லாமல் உருவாக்க பொருளின் பெயரை உள்ளிடவும். சொற்களைப் பிரிக்க பெரிய எழுத்தைப் பயன்படுத்தவும் (உதாரணமாக: MyObject, Student, Teacher...). CRUD கிளாஸ் கோப்பு, ஆனால் API கோப்பு, பட்டியலிட/சேர்க்க/திருத்த/நீக்கப் பக்கங்கள் மற்றும் SQL கோப்புகள் உருவாக்கப்படும். +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=தொகுதிகள் உருவாக்கப்படும்/திருத்தப்படும் பாதை (வெளிப்புற தொகுதிகளுக்கான முதல் அடைவு %s என வரையறுக்கப்பட்டுள்ளது): %s ModuleBuilderDesc3=உருவாக்கப்பட்ட/திருத்தக்கூடிய தொகுதிகள் கண்டறியப்பட்டன: %s ModuleBuilderDesc4=தொகுதி கோப்பகத்தின் மூலத்தில் %s கோப்பு இருக்கும்போது ஒரு தொகுதி 'எடிட் செய்யக்கூடியது' எனக் கண்டறியப்பட்டது. NewModule=புதிய தொகுதி NewObjectInModulebuilder=புதிய பொருள் +NewDictionary=New dictionary ModuleKey=தொகுதி விசை ObjectKey=பொருள் விசை +DicKey=Dictionary key ModuleInitialized=தொகுதி துவக்கப்பட்டது FilesForObjectInitialized=புதிய ஆப்ஜெக்ட் '%s'க்கான கோப்புகள் துவக்கப்பட்டன FilesForObjectUpdated=ஆப்ஜெக்ட் '%s'க்கான கோப்புகள் புதுப்பிக்கப்பட்டன (.sql கோப்புகள் மற்றும் .class.php கோப்பு) @@ -52,7 +55,7 @@ LanguageFile=மொழிக்கான கோப்பு ObjectProperties=பொருள் பண்புகள் ConfirmDeleteProperty= %s சொத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா? இது PHP வகுப்பில் குறியீட்டை மாற்றும் ஆனால் பொருளின் அட்டவணை வரையறையிலிருந்து நெடுவரிசையை அகற்றும். NotNull=NULL அல்ல -NotNullDesc=1=தரவுத்தளத்தை NULL என அமைக்கவும். -1=வெறுமையாக இருந்தால் ('' அல்லது 0) பூஜ்ய மதிப்புகள் மற்றும் கட்டாய மதிப்பை 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='அனைத்தையும் தேட' பயன்படுத்தப்பட்டது DatabaseIndex=தரவுத்தள அட்டவணை FileAlreadyExists=கோப்பு %s ஏற்கனவே உள்ளது @@ -94,7 +97,7 @@ LanguageDefDesc=இந்தக் கோப்புகளில், ஒவ் MenusDefDesc=உங்கள் தொகுதி வழங்கிய மெனுக்களை இங்கே வரையறுக்கவும் DictionariesDefDesc=உங்கள் தொகுதி வழங்கிய அகராதிகளை இங்கே வரையறுக்கவும் PermissionsDefDesc=உங்கள் தொகுதி வழங்கிய புதிய அனுமதிகளை இங்கே வரையறுக்கவும் -MenusDefDescTooltip=உங்கள் தொகுதி/பயன்பாடு வழங்கிய மெனுக்கள் $this->மெனுக்கள் என்ற வரிசையில் தொகுதி விளக்கக் கோப்பில் வரையறுக்கப்பட்டுள்ளன. இந்தக் கோப்பை நீங்கள் கைமுறையாகத் திருத்தலாம் அல்லது உட்பொதிக்கப்பட்ட எடிட்டரைப் பயன்படுத்தலாம்.

    குறிப்பு: வரையறுக்கப்பட்டதும் (மற்றும் தொகுதி மீண்டும் செயல்படுத்தப்பட்டது), %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=உங்கள் தொகுதி/பயன்பாடு வழங்கிய அகராதிகள் $this->அகராதிகள் என்ற வரிசையில் தொகுதி விளக்கக் கோப்பில் வரையறுக்கப்பட்டுள்ளன. இந்தக் கோப்பை நீங்கள் கைமுறையாகத் திருத்தலாம் அல்லது உட்பொதிக்கப்பட்ட எடிட்டரைப் பயன்படுத்தலாம்.

    குறிப்பு: வரையறுக்கப்பட்டதும் (மற்றும் தொகுதி மீண்டும் செயல்படுத்தப்பட்டது), அகராதிகளும் %s இல் உள்ள நிர்வாகி பயனர்களுக்கு அமைவுப் பகுதியில் தெரியும். PermissionsDefDescTooltip=உங்கள் தொகுதி/பயன்பாடு வழங்கிய அனுமதிகள் $this->உரிமைகள் என்ற வரிசையில் தொகுதி விளக்கக் கோப்பில் வரையறுக்கப்பட்டுள்ளன. இந்தக் கோப்பை நீங்கள் கைமுறையாகத் திருத்தலாம் அல்லது உட்பொதிக்கப்பட்ட எடிட்டரைப் பயன்படுத்தலாம்.

    குறிப்பு: வரையறுக்கப்பட்டதும் (மற்றும் தொகுதி மீண்டும் செயல்படுத்தப்பட்டது), அனுமதிகள் இயல்புநிலை அனுமதிகள் அமைப்பில் %s இல் தெரியும். HooksDefDesc= module_parts['hooks'] சொத்தை, தொகுதி விளக்கத்தில், நீங்கள் நிர்வகிக்க விரும்பும் கொக்கிகளின் சூழலை வரையறுக்கவும் (' a0aee83z605837f1083605837F10000083665837f108665837F1000000ae8365837FK உங்கள் ஹூக் செய்யப்பட்ட செயல்பாடுகளின் குறியீட்டைச் சேர்க்க ஹூக் கோப்பு (ஹூக் செய்யக்கூடிய செயல்பாடுகளை ' executeHooks ' இல் தேடுவதன் மூலம் கண்டறியலாம்). @@ -110,7 +113,7 @@ DropTableIfEmpty=(டேபிள் காலியாக இருந்தா TableDoesNotExists=அட்டவணை %s இல்லை TableDropped=அட்டவணை %s நீக்கப்பட்டது InitStructureFromExistingTable=ஏற்கனவே உள்ள அட்டவணையின் கட்டமைப்பு வரிசை சரத்தை உருவாக்கவும் -UseAboutPage=பற்றி பக்கத்தை முடக்கவும் +UseAboutPage=Do not generate the About page UseDocFolder=ஆவணக் கோப்புறையை முடக்கு UseSpecificReadme=குறிப்பிட்ட ReadMe ஐப் பயன்படுத்தவும் ContentOfREADMECustomized=குறிப்பு: README.md கோப்பின் உள்ளடக்கமானது ModuleBuilder அமைப்பில் வரையறுக்கப்பட்ட குறிப்பிட்ட மதிப்புடன் மாற்றப்பட்டுள்ளது. @@ -127,9 +130,9 @@ UseSpecificEditorURL = குறிப்பிட்ட எடிட்டர UseSpecificFamily = ஒரு குறிப்பிட்ட குடும்பத்தைப் பயன்படுத்தவும் UseSpecificAuthor = ஒரு குறிப்பிட்ட ஆசிரியரைப் பயன்படுத்தவும் UseSpecificVersion = ஒரு குறிப்பிட்ட ஆரம்ப பதிப்பைப் பயன்படுத்தவும் -IncludeRefGeneration=பொருளின் குறிப்பு தானாகவே உருவாக்கப்பட வேண்டும் -IncludeRefGenerationHelp=குறிப்பின் தலைமுறையை தானாக நிர்வகிக்க குறியீட்டைச் சேர்க்க விரும்பினால் இதைச் சரிபார்க்கவும் -IncludeDocGeneration=பொருளில் இருந்து சில ஆவணங்களை உருவாக்க விரும்புகிறேன் +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=இதை நீங்கள் சரிபார்த்தால், பதிவில் "ஆவணத்தை உருவாக்கு" பெட்டியைச் சேர்க்க சில குறியீடு உருவாக்கப்படும். ShowOnCombobox=காம்போபாக்ஸில் மதிப்பைக் காட்டு KeyForTooltip=உதவிக்குறிப்புக்கான திறவுகோல் @@ -138,10 +141,15 @@ 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' என்றால், பதிவை உருவாக்க, சேர்க்கைக்குப் பிறகு ஒரு + பட்டனைச் சேர்ப்போம், 'வடிகட்டி' என்பது 'status=1 மற்றும் fk_user = __USER_ID மற்றும் IN (__SHARED_ENTITIES__)' ஆக இருக்கலாம். எடுத்துக்காட்டாக) +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 க்கு HTML மாற்றி AsciiToPdfConverter=Ascii to PDF மாற்றி TableNotEmptyDropCanceled=அட்டவணை காலியாக இல்லை. டிராப் ரத்து செய்யப்பட்டது. ModuleBuilderNotAllowed=மாட்யூல் பில்டர் உள்ளது ஆனால் உங்கள் பயனருக்கு அனுமதிக்கப்படவில்லை. ImportExportProfiles=சுயவிவரங்களை இறக்குமதி மற்றும் ஏற்றுமதி -ValidateModBuilderDesc=இந்தப் புலத்தை $this->validateField() உடன் சரிபார்க்க வேண்டும் என்றால் 1 ஐ வைக்கவும் அல்லது சரிபார்ப்பு தேவைப்பட்டால் 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 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. 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/other.lang b/htdocs/langs/ta_IN/other.lang index eb761084e38..1324026af61 100644 --- a/htdocs/langs/ta_IN/other.lang +++ b/htdocs/langs/ta_IN/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...அல்லது உங்கள் சொந் DemoFundation=அறக்கட்டளை உறுப்பினர்களை நிர்வகிக்கவும் DemoFundation2=ஒரு அறக்கட்டளையின் உறுப்பினர்கள் மற்றும் வங்கிக் கணக்கை நிர்வகிக்கவும் DemoCompanyServiceOnly=நிறுவனம் அல்லது ஃப்ரீலான்ஸ் விற்பனை சேவை மட்டுமே -DemoCompanyShopWithCashDesk=பண மேசையுடன் ஒரு கடையை நிர்வகிக்கவும் +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=பாயிண்ட் ஆஃப் சேல்ஸ் மூலம் பொருட்களை விற்கும் ஷாப்பிங் DemoCompanyManufacturing=நிறுவனத்தின் தயாரிப்புகள் DemoCompanyAll=பல செயல்பாடுகளைக் கொண்ட நிறுவனம் (அனைத்து முக்கிய தொகுதிகள்) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=ஒரு பொருளின் புள் ConfirmBtnCommonContent = "%s" நிச்சயமாக விரும்புகிறீர்களா? ConfirmBtnCommonTitle = உங்கள் செயலை உறுதிப்படுத்தவும் CloseDialog = நெருக்கமான +Autofill = Autofill diff --git a/htdocs/langs/ta_IN/projects.lang b/htdocs/langs/ta_IN/projects.lang index 8072dd3b0a8..5f08cc4a354 100644 --- a/htdocs/langs/ta_IN/projects.lang +++ b/htdocs/langs/ta_IN/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=திட்ட முத்திரை ProjectsArea=திட்டங்கள் பகுதி ProjectStatus=திட்ட நிலை SharedProject=எல்லோரும் -PrivateProject=திட்ட தொடர்புகள் +PrivateProject=Assigned contacts ProjectsImContactFor=நான் வெளிப்படையாக தொடர்பு கொண்ட திட்டப்பணிகள் AllAllowedProjects=நான் படிக்கக்கூடிய அனைத்து திட்டப்பணிகளும் (என்னுடையது + பொது) AllProjects=அனைத்து திட்டங்களும் @@ -190,6 +190,7 @@ PlannedWorkload=திட்டமிட்ட பணிச்சுமை PlannedWorkloadShort=பணிச்சுமை ProjectReferers=சார்ந்த பொருட்கள் ProjectMustBeValidatedFirst=திட்டம் முதலில் சரிபார்க்கப்பட வேண்டும் +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=நேரத்தை ஒதுக்குவதற்கு ஒரு பயனர் ஆதாரத்தை திட்டத்தின் தொடர்பாக ஒதுக்கவும் InputPerDay=ஒரு நாளைக்கு உள்ளீடு InputPerWeek=வாரத்திற்கு உள்ளீடு @@ -258,7 +259,7 @@ TimeSpentInvoiced=கட்டணம் செலுத்தப்பட்ட TimeSpentForIntervention=செலவிட்ட நேரம் TimeSpentForInvoice=செலவிட்ட நேரம் OneLinePerUser=ஒரு பயனருக்கு ஒரு வரி -ServiceToUseOnLines=வரிகளில் பயன்படுத்த வேண்டிய சேவை +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=திட்டத்தில் செலவழித்த நேரத்திலிருந்து விலைப்பட்டியல் %s உருவாக்கப்பட்டுள்ளது InterventionGeneratedFromTimeSpent=தலையீடு %s திட்டத்தில் செலவிடப்பட்ட நேரத்திலிருந்து உருவாக்கப்பட்டுள்ளது ProjectBillTimeDescription=திட்டத்தின் பணிகளில் டைம்ஷீட்டை உள்ளிடுகிறீர்களா என்பதைச் சரிபார்த்து, திட்டத்தின் வாடிக்கையாளருக்கு பில் பில் செய்ய டைம்ஷீட்டிலிருந்து விலைப்பட்டியல்(களை) உருவாக்க திட்டமிட்டுள்ளீர்கள் (உள்ளிடப்பட்ட டைம்ஷீட்களின் அடிப்படையில் இல்லாத விலைப்பட்டியலை உருவாக்கத் திட்டமிட்டுள்ளீர்களா எனச் சரிபார்க்க வேண்டாம்). குறிப்பு: விலைப்பட்டியலை உருவாக்க, திட்டத்தின் 'செலவிக்கப்பட்ட நேரம்' தாவலுக்குச் சென்று சேர்க்க வேண்டிய வரிகளைத் தேர்ந்தெடுக்கவும். @@ -287,3 +288,10 @@ ProjectTasksWithoutTimeSpent=நேரத்தை செலவழிக்க FormForNewLeadDesc=எங்களை தொடர்பு கொள்ள பின்வரும் படிவத்தை நிரப்பியதற்கு நன்றி. நீங்கள் எங்களுக்கு நேரடியாக %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/ta_IN/propal.lang b/htdocs/langs/ta_IN/propal.lang index dd9122c71bb..48a680730d8 100644 --- a/htdocs/langs/ta_IN/propal.lang +++ b/htdocs/langs/ta_IN/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 ஐ மீண்டும் திறக்க விரும்புகிறீர்களா? @@ -85,13 +86,26 @@ ProposalCustomerSignature=எழுத்துப்பூர்வ ஏற் ProposalsStatisticsSuppliers=விற்பனையாளர் முன்மொழிவுகள் புள்ளிவிவரங்கள் CaseFollowedBy=தொடர்ந்து வழக்கு SignedOnly=கையெழுத்து மட்டுமே +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=கையெழுத்து +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=முன்மொழிவு ஐடி IdProduct=தயாரிப்பு ஐடி -PrParentLine=முன்மொழிவு பெற்றோர் வரி LineBuyPriceHT=வரியின் நிகர விலையை வாங்கவும் SignPropal=முன்மொழிவை ஏற்கவும் RefusePropal=முன்மொழிவை மறுக்கவும் Sign=கையெழுத்து +NoSign=Set not signed PropalAlreadySigned=முன்மொழிவு ஏற்கனவே ஏற்றுக்கொள்ளப்பட்டது PropalAlreadyRefused=முன்மொழிவு ஏற்கனவே நிராகரிக்கப்பட்டது PropalSigned=முன்மொழிவு ஏற்கப்பட்டது diff --git a/htdocs/langs/ta_IN/ticket.lang b/htdocs/langs/ta_IN/ticket.lang index 465f6ac1ec5..d4b70db3ad3 100644 --- a/htdocs/langs/ta_IN/ticket.lang +++ b/htdocs/langs/ta_IN/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=அடையாளம் தேவைப்படாத ப TicketSetupDictionaries=டிக்கெட்டின் வகை, தீவிரம் மற்றும் பகுப்பாய்வு குறியீடுகள் அகராதிகளிலிருந்து கட்டமைக்கப்படுகின்றன TicketParamModule=தொகுதி மாறி அமைவு TicketParamMail=மின்னஞ்சல் அமைப்பு -TicketEmailNotificationFrom=இருந்து அறிவிப்பு மின்னஞ்சல் -TicketEmailNotificationFromHelp=உதாரணமாக டிக்கெட் செய்தி பதில் பயன்படுத்தப்படுகிறது -TicketEmailNotificationTo=அறிவிப்புகள் மின்னஞ்சல் -TicketEmailNotificationToHelp=இந்த முகவரிக்கு மின்னஞ்சல் அறிவிப்புகளை அனுப்பவும். +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 TicketNewEmailBodyLabel=டிக்கெட்டை உருவாக்கிய பிறகு அனுப்பப்பட்ட குறுஞ்செய்தி TicketNewEmailBodyHelp=பொது இடைமுகத்திலிருந்து புதிய டிக்கெட்டை உருவாக்குவதை உறுதிப்படுத்தும் மின்னஞ்சலில் இங்கு குறிப்பிடப்பட்டுள்ள உரை செருகப்படும். டிக்கெட்டின் ஆலோசனை பற்றிய தகவல்கள் தானாகவே சேர்க்கப்படும். TicketParamPublicInterface=பொது இடைமுக அமைப்பு @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=ஏறுவரிசையின்படி வரிசைப OrderByDateDesc=இறங்கு தேதியின்படி வரிசைப்படுத்தவும் ShowAsConversation=உரையாடல் பட்டியலாகக் காட்டு MessageListViewType=அட்டவணைப் பட்டியலாகக் காட்டு +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=பெறுநர் காலி TicketGoIntoContactTab=அவற்றைத் தேர்ந்தெடுக்க, "தொடர்புகள்" தாவலுக்குச் செல்லவும் TicketMessageMailIntro=அறிமுகம் TicketMessageMailIntroHelp=இந்த உரை மின்னஞ்சலின் தொடக்கத்தில் மட்டுமே சேர்க்கப்படும் மற்றும் சேமிக்கப்படாது. -TicketMessageMailIntroLabelAdmin=மின்னஞ்சல் அனுப்பும் போது செய்தியின் அறிமுகம் -TicketMessageMailIntroText=வணக்கம்,
    நீங்கள் தொடர்பு கொள்ளும் டிக்கெட்டில் புதிய பதில் அனுப்பப்பட்டது. செய்தி இதோ:
    -TicketMessageMailIntroHelpAdmin=டிக்கெட்டுக்கான பதிலின் உரைக்கு முன் இந்த உரை செருகப்படும். +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=

    உண்மையுள்ள,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=பதில் மின்னஞ்சலின் கையொப்பம் TicketMessageMailSignatureHelpAdmin=பதில் செய்திக்குப் பிறகு இந்த உரை செருகப்படும். TicketMessageHelp=டிக்கெட் கார்டில் உள்ள செய்தி பட்டியலில் இந்த உரை மட்டுமே சேமிக்கப்படும். @@ -238,9 +252,16 @@ TicketChangeStatus=நிலையை மாற்றவும் TicketConfirmChangeStatus=நிலை மாற்றத்தை உறுதிப்படுத்தவும்: %s ? TicketLogStatusChanged=நிலை மாற்றப்பட்டது: %s to %s TicketNotNotifyTiersAtCreate=உருவாக்கும்போது நிறுவனத்தை அறிவிக்க வேண்டாம் +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=நீங்கள் புதிய டிக்கெட TicketNewEmailBodyCustomer=இது உங்கள் கணக்கில் புதிய டிக்கெட் உருவாக்கப்பட்டது என்பதை உறுதிப்படுத்தும் தானியங்கி மின்னஞ்சல். TicketNewEmailBodyInfosTicket=டிக்கெட்டை கண்காணிப்பதற்கான தகவல் TicketNewEmailBodyInfosTrackId=டிக்கெட் கண்காணிப்பு எண்: %s -TicketNewEmailBodyInfosTrackUrl=மேலே உள்ள இணைப்பைக் கிளிக் செய்வதன் மூலம் டிக்கெட்டின் முன்னேற்றத்தைக் காணலாம். +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=பின்வரும் இணைப்பைக் கிளிக் செய்வதன் மூலம் குறிப்பிட்ட இடைமுகத்தில் டிக்கெட்டின் முன்னேற்றத்தைக் காணலாம் +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=இந்த மின்னஞ்சலுக்கு நேரடியாக பதிலளிக்க வேண்டாம்! இடைமுகத்தில் பதிலளிக்க இணைப்பைப் பயன்படுத்தவும். TicketPublicInfoCreateTicket=எங்கள் நிர்வாக அமைப்பில் ஆதரவு டிக்கெட்டை பதிவு செய்ய இந்தப் படிவம் உங்களை அனுமதிக்கிறது. TicketPublicPleaseBeAccuratelyDescribe=சிக்கலை சரியாக விவரிக்கவும். உங்கள் கோரிக்கையைச் சரியாகக் கண்டறிய எங்களை அனுமதிக்க, முடிந்தவரை அதிகமான தகவல்களை வழங்கவும். @@ -291,6 +313,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: TicketNotificationEmailSubject=டிக்கெட் %s புதுப்பிக்கப்பட்டது TicketNotificationEmailBody=%s டிக்கெட் புதுப்பிக்கப்பட்டதைத் தெரிவிக்கும் தானியங்கி செய்தி இது TicketNotificationRecipient=அறிவிப்பு பெறுபவர் diff --git a/htdocs/langs/ta_IN/users.lang b/htdocs/langs/ta_IN/users.lang index 535e5c03621..20190b5f547 100644 --- a/htdocs/langs/ta_IN/users.lang +++ b/htdocs/langs/ta_IN/users.lang @@ -114,7 +114,7 @@ UserLogoff=பயனர் வெளியேறுதல் UserLogged=பயனர் உள்நுழைந்தார் DateOfEmployment=வேலை தேதி DateEmployment=வேலைவாய்ப்பு -DateEmploymentstart=வேலை தொடங்கும் தேதி +DateEmploymentStart=Employment Start Date DateEmploymentEnd=வேலைவாய்ப்பு முடிவு தேதி RangeOfLoginValidity=அணுகல் செல்லுபடியாகும் தேதி வரம்பு CantDisableYourself=உங்கள் சொந்த பயனர் பதிவை முடக்க முடியாது @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=இயல்பாக, மதிப்பீட UserPersonalEmail=தனிப்பட்ட மின்னஞ்சல் UserPersonalMobile=தனிப்பட்ட மொபைல் போன் WarningNotLangOfInterface=எச்சரிக்கை, இது பயனர் பேசும் முக்கிய மொழி, அவர் பார்க்கத் தேர்ந்தெடுத்த இடைமுகத்தின் மொழி அல்ல. இந்தப் பயனரால் காணக்கூடிய இடைமுக மொழியை மாற்ற, %s தாவலுக்குச் செல்லவும். +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/tg_TJ/accountancy.lang b/htdocs/langs/tg_TJ/accountancy.lang index de99667b2fc..6abf6edd9f9 100644 --- a/htdocs/langs/tg_TJ/accountancy.lang +++ b/htdocs/langs/tg_TJ/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Ҳисоби асосии баҳис AccountancyArea=Минтақаи баҳисобгирӣ AccountancyAreaDescIntro=Истифодаи модули ҳисобдорӣ дар якчанд марҳила сурат мегирад: AccountancyAreaDescActionOnce=Амалҳои зерин одатан танҳо як маротиба ё дар як сол як маротиба иҷро карда мешаванд ... -AccountancyAreaDescActionOnceBis=Қадамҳои минбаъда бояд барои сарфаи вақти шумо дар оянда бо пешниҳоди ҳисоби дурусти баҳисобгирии муҳосибӣ ҳангоми навиштани рӯзноманигорӣ анҷом дода шаванд (сабт дар маҷаллаҳо ва дафтари умумӣ) +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=Амалҳои зерин одатан барои ширкатҳои хеле калон ҳар моҳ, ҳафта ё рӯз иҷро карда мешаванд ... -AccountancyAreaDescJournalSetup=ҚАДАМИ %s: Аз менюи %s мундариҷаи рӯйхати журнали худро созед ё тафтиш кунед +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=ҚАДАМИ %s: мавҷуд будани модели диаграммаи ҳисобро тафтиш кунед ё аз менюи %s эҷод кунед AccountancyAreaDescChart=ҚАДАМИ %s: Диаграммаи ҳисоби худро аз менюи %s интихоб кунед ва | ё пур кунед. AccountancyAreaDescVat=ҚАДАМИ %s: Ҳисобҳои баҳисобгирии ҳар як Меъёрҳои андоз аз арзиши иловашударо муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. AccountancyAreaDescDefault=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгириро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. -AccountancyAreaDescExpenseReport=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгирии ҳар як намуди ҳисоботи хароҷотро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгирии музди меҳнатро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. -AccountancyAreaDescContrib=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгирии хароҷоти махсусро муайян кунед (андозҳои гуногун). Барои ин, вуруди менюи %s -ро истифода баред. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгирии хайрияро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. AccountancyAreaDescSubscription=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгирии аъзоёнро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. AccountancyAreaDescMisc=ҚАДАМИ %s: Ҳисоби пешфарзии ҳатмӣ ва ҳисобҳои пешфарзро барои амалиётҳои гуногун муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. AccountancyAreaDescLoan=ҚАДАМИ %s: Ҳисобҳои пешфарзии баҳисобгирии қарзҳоро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. AccountancyAreaDescBank=ҚАДАМИ %s: Ҳисобҳои баҳисобгирӣ ва коди маҷаллаҳоро барои ҳар як бонк ва ҳисобҳои молиявӣ муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. -AccountancyAreaDescProd=ҚАДАМИ %s: Ҳисобҳои баҳисобгирии маҳсулот/хидматҳои худро муайян кунед. Барои ин, вуруди менюи %s -ро истифода баред. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=ҚАДАМИ %s: Ҳатмии хатҳои мавҷудаи %s ва ҳисоби баҳисобгирии муҳосибиро тафтиш кунед, аз ин рӯ, барнома метавонад дар як клик амалиётҳоро дар дафтарчаи журналӣ ба қайд гирад. Пайвастҳои пурраи гумшуда. Барои ин, вуруди менюи %s -ро истифода баред. AccountancyAreaDescWriteRecords=ҚАДАМИ %s: Амалиётҳоро ба дафтар нависед. Барои ин ба менюи %s ворид шавед ва тугмаи %s a0a65d071f6fc9z -ро пахш кунед. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Бастани MenuAccountancyValidationMovements=Ҳаракатҳоро тасдиқ кунед ProductsBinding=Ҳисобҳои маҳсулот TransferInAccounting=Интиқол дар баҳисобгирӣ -RegistrationInAccounting=Бақайдгирӣ дар баҳисобгирӣ +RegistrationInAccounting=Recording in accounting Binding=Ҳатмӣ ба ҳисобҳо CustomersVentilation=Ҳатмии фактураи муштарӣ SuppliersVentilation=Ҳисобнома -фактураи фурӯшанда @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Ҳатмии ҳисоботи хароҷот CreateMvts=Эҷоди амалиёти нав UpdateMvts=Тағир додани амалиёт ValidTransaction=Транзаксияро тасдиқ кунед -WriteBookKeeping=Амалиётҳоро дар баҳисобгирӣ ба қайд гиред +WriteBookKeeping=Record transactions in accounting Bookkeeping=Китоб BookkeepingSubAccount=Подшоҳ AccountBalance=Тавозуни суратҳисоб @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Ҳисоби баҳисобгирӣ барои бақ ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Ҳисоби баҳисобгирӣ барои бақайдгирии обунаҳо ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Ҳисоби баҳисобгирӣ бо нобаёнӣ барои бақайдгирии пасандози муштарӣ +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines ACCOUNTING_PRODUCT_BUY_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти харидашуда (агар дар варақаи маҳсулот муайян нашуда бошад) истифода мешавад ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Ҳисоби баҳисобгирии муҳосибӣ барои маҳсулоти харидашуда дар EEC (агар дар варақаи маҳсулот муайян нашуда бошад) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Аз рӯи гурӯҳҳои пешакӣ муайян ByPersonalizedAccountGroups=Аз ҷониби гурӯҳҳои инфиродӣ ByYear=Аз рӯи сол NotMatch=Танзим нашудааст -DeleteMvt=Баъзе хатҳои амалиётро аз баҳисобгирӣ нест кунед +DeleteMvt=Delete some lines from accounting DelMonth=Моҳ барои нест кардан DelYear=Сол барои нест кардан DelJournal=Журнал барои нест кардан -ConfirmDeleteMvt=Ин ҳама сатрҳои амалиёти баҳисобгирии сол/моҳ ва/ё маҷаллаи мушаххасро нест мекунад (Ҳадди ақал як меъёр лозим аст). Шумо бояд хусусияти '%s' -ро дубора истифода баред, то сабти нестшударо дар дафтар баргардонед. -ConfirmDeleteMvtPartial=Ин амалиётро аз баҳисобгирӣ нест мекунад (ҳама хатҳои амалиёти марбут ба як амалиёт нест карда мешаванд) +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=Маҷаллаи молиявӣ ExpenseReportsJournal=Маҷаллаи ҳисоботи хароҷот DescFinanceJournal=Маҷаллаи молиявӣ, аз ҷумла ҳама намуди пардохтҳо бо суратҳисоби бонкӣ @@ -278,30 +279,31 @@ DescVentilExpenseReportMore=Агар шумо ҳисоби баҳисобгир DescVentilDoneExpenseReport=Дар ин ҷо ба рӯйхати хатҳои ҳисобот дар бораи хароҷот ва ҳисоби баҳисобгирии хароҷоти онҳо муроҷиат кунед Closure=Бастани солона -DescClosure=Дар ин ҷо шумораи ҳаракатҳо аз рӯи моҳро баррасӣ кунед, ки тасдиқ нашудаанд ва солҳои молиявӣ аллакай кушода шудаанд -OverviewOfMovementsNotValidated=Қадами 1/ Шарҳи ҳаракатҳо тасдиқ нашудааст. (Барои бастани соли молиявӣ зарур аст) -AllMovementsWereRecordedAsValidated=Ҳама ҳаракатҳо ҳамчун тасдиқшуда сабт карда шуданд -NotAllMovementsCouldBeRecordedAsValidated=На ҳама ҳаракатҳоро метавон ҳамчун тасдиқшуда сабт кард -ValidateMovements=Ҳаракатҳоро тасдиқ кунед +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=Ҳама гуна тағир ё нест кардани навиштан, навиштан ва нест кардан манъ карда мешавад. Ҳама сабтҳо барои машқ бояд тасдиқ карда шаванд, вагарна пӯшида намешавад ValidateHistory=Ба таври худкор пайваст кунед AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) ErrorAccountancyCodeIsAlreadyUse=Хато, шумо наметавонед ин ҳисоби баҳисобгириро нест кунед, зеро он истифода мешавад -MvtNotCorrectlyBalanced=Ҳаракат дуруст тавозун нашудааст. Дебет = %s | Кредит = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=Тавозун FicheVentilation=Корти ҳатмӣ GeneralLedgerIsWritten=Амалиётҳо дар дафтар навишта мешаванд GeneralLedgerSomeRecordWasNotRecorded=Баъзе транзаксияҳоро нашр кардан ғайриимкон буд. Агар паёми хатогии дигар вуҷуд надошта бошад, ин шояд аз он сабаб бошад, ки онҳо аллакай рӯзноманигор буданд. -NoNewRecordSaved=Дигар сабти журналистон нест +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=Рӯйхати маҳсулоте, ки ба ягон ҳисоби баҳисобгирӣ вобастагӣ надоранд ChangeBinding=Пайвастшавиро тағир диҳед Accounted=Дар дафтари баҳисобгирӣ NotYetAccounted=Not yet transferred to accounting ShowTutorial=Нишон додани дарсӣ NotReconciled=Оштӣ нашудааст -WarningRecordWithoutSubledgerAreExcluded=Огоҳӣ, ҳама амалиёте, ки ҳисоби зерҳисобиро муайян накардаанд, филтр карда шудаанд ва аз ин намуд хориҷ карда шудаанд +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=Вариантҳои ҳатмӣ @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Ҳатмӣ ва интиқол дар м ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Ҳатмӣ ва интиқол дар муҳосибот дар ҳисоботи хароҷотро хомӯш кунед (ҳисоботи хароҷот ҳангоми баҳисобгирӣ ба назар гирифта намешаванд) ## 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) +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=Тасдиқи тавлиди файли содироти баҳисобгирӣ? ExportDraftJournal=Содироти маҷаллаи лоиҳа Modelcsv=Модели содирот @@ -394,6 +397,21 @@ 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 + +## 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=Баъзе қадамҳои ҳатмии насбкунӣ иҷро нашудаанд, лутфан онҳоро анҷом диҳед ErrorNoAccountingCategoryForThisCountry=Ҳеҷ як гурӯҳи ҳисобҳои баҳисобгирӣ барои кишвар %s мавҷуд нест (Ба хона нигаред - Танзимот - Луғатҳо) @@ -406,6 +424,9 @@ 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 ## Import ImportAccountingEntries=Сабтҳои баҳисобгирӣ diff --git a/htdocs/langs/tg_TJ/admin.lang b/htdocs/langs/tg_TJ/admin.lang index 5c70912b20e..996d1e86757 100644 --- a/htdocs/langs/tg_TJ/admin.lang +++ b/htdocs/langs/tg_TJ/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=Мисол барои ClamAv Daemon (талаб clamav-daemon):/usr/bin/clamdscan
    Мисол барои ClamWin (хеле суст): c: \\ Progra ~ 1 \\ ClamWin \\ bin \\ clamscan.exe AntiVirusParam= Параметрҳои бештар дар сатри фармон @@ -477,7 +477,7 @@ InstalledInto=Дар феҳристи %s насб карда шудааст BarcodeInitForThirdparties=Барри коди оммавӣ барои шахсони сеюм BarcodeInitForProductsOrServices=Штрихкоди оммавӣ ё аз нав танзимкунии маҳсулот ё хидмат CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Арзиши ибтидоӣ барои сабтҳои холии %s +InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=Ҳама арзишҳои штрих -кодро тоза кунед ConfirmEraseAllCurrentBarCode=Шумо мутмаинед, ки мехоҳед ҳамаи арзишҳои штрих -кодро нест кунед? AllBarcodeReset=Ҳама арзишҳои штрих -код хориҷ карда шуданд @@ -504,7 +504,7 @@ 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. 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=Ин модул аз ҷониби модулҳо талаб карда мешавад @@ -718,9 +718,9 @@ Permission34=Маҳсулотро нест кунед Permission36=Маҳсулоти пинҳоншударо бинед/идора кунед Permission38=Маҳсулотларни экспорт қилиш Permission39=Нархи ҳадди ақалро нодида гиред -Permission41=Лоиҳаҳо ва вазифаҳоро хонед (лоиҳаи муштарак ва лоиҳаҳое, ки ман бо онҳо тамос мегирам). Инчунин метавонад барои ман ё зинанизоми ман вақти сарфшударо ба вазифаҳои таъиншуда ворид кунад (Ҷадвали вақт) -Permission42=Лоиҳаҳоро эҷод/тағир диҳед (лоиҳаи муштарак ва лоиҳаҳое, ки ман бо онҳо тамос мегирам). Он инчунин метавонад вазифаҳо эҷод кунад ва корбаронро ба лоиҳа ва вазифаҳо таъин кунад -Permission44=Лоиҳаҳоро нест кунед (лоиҳаи муштарак ва лоиҳаҳое, ки ман бо онҳо тамос дорам) +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=Лоиҳаҳои содиротӣ Permission61=Интервенсияҳоро хонед Permission62=Эҷод/тағир додани мудохила @@ -766,9 +766,10 @@ Permission122=Эҷод/тағир додани шахсони сеюм, ки б Permission125=Шахсони сеюмеро, ки ба корбар пайванданд, нест кунед Permission126=Ба шахсони сеюм содирот кунед Permission130=Create/modify third parties payment information -Permission141=Ҳама лоиҳаҳо ва вазифаҳоро хонед (инчунин лоиҳаҳои хусусие, ки ман бо онҳо тамос намегирам) -Permission142=Ҳама лоиҳаҳо ва вазифаҳоро эҷод/тағир диҳед (инчунин лоиҳаҳои хусусие, ки ман бо онҳо тамос намегирам) -Permission144=Ҳама лоиҳаҳо ва вазифаҳоро нест кунед (инчунин лоиҳаҳои хусусие, ки ман бо онҳо тамос намегирам) +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=Фармоишҳои пардохти дебетии мустақимро хонед @@ -883,6 +884,9 @@ Permission564=Дебитҳо/радкуниҳои интиқоли кредит Permission601=Стикерҳоро хонед Permission602=Эҷод/тағир додани стикерҳо Permission609=Стикерҳоро нест кунед +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Векселҳои маводро хонед Permission651=Векселҳои маводро созед/навсозӣ кунед Permission652=Векселҳои маводро нест кунед @@ -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=Мундариҷаи вебсайтро хонед Permission10002=Эҷод/тағир додани мундариҷаи вебсайт (мундариҷаи html ва javascript) Permission10003=Эҷод/тағир додани мундариҷаи вебсайт (коди динамикии php). Хатарнок, бояд ба таҳиягарони маҳдуд ҳифз карда шавад. @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Ҳисоботи хароҷот - Категорияҳо DictionaryExpenseTaxRange=Ҳисоботи хароҷот - Диапазон аз рӯи категорияи нақлиёт DictionaryTransportMode=Ҳисоботи дохилӣ - Ҳолати интиқол DictionaryBatchStatus=Лоти маҳсулот/Ҳолати назорати сифатии силсилавӣ +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Навъи воҳид SetupSaved=Танзимот захира карда шуд SetupNotSaved=Танзимот захира карда нашудааст @@ -1122,7 +1129,7 @@ ValueOfConstantKey=Арзиши доимии конфигуратсия ConstantIsOn=Опсияи %s фаъол аст NbOfDays=Шумораи рӯзҳо AtEndOfMonth=Дар охири моҳ -CurrentNext=Ҷорӣ/Оянда +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=Таъхир пеш аз намоиши ҳушдори огоҳкунанда барои: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Таъхирро пеш аз он ки тасвири ҳушдор %s дар экран барои унсури дер нишон дода шавад, таъин кунед. Delays_MAIN_DELAY_ACTIONS_TODO=Чорабиниҳои ба нақша гирифташуда (чорабиниҳои рӯзнома) ба анҷом нарасидаанд Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Лоиҳа сари вақт баста нашудааст @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=Шумо тарҷумаи навро барои к TitleNumberOfActivatedModules=Модулҳои фаъолшуда TotalNumberOfActivatedModules=Модулҳои фаъол: %s / %s YouMustEnableOneModule=Шумо бояд ҳадди аққал 1 модулро фаъол созед +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Синфи %s дар роҳи PHP ёфт нашуд YesInSummer=Бале дар тобистон OnlyFollowingModulesAreOpenedToExternalUsers=Дар хотир доред, ки барои корбарони беруна танҳо модулҳои зерин дастрасанд (новобаста аз иҷозати чунин корбарон) ва танҳо агар иҷозатҳо дода шаванд:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=Нишонаи обӣ дар лоиҳаи ҳисобн PaymentsNumberingModule=Модели рақамгузории пардохт 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. ##### Proposals ##### PropalSetup=Танзими модули пешниҳодҳои тиҷоратӣ ProposalsNumberingModules=Моделҳои рақамгузории пешниҳоди тиҷоратӣ @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=Насб кардан ё сохтани модули HighlightLinesOnMouseHover=Ҳангоми гузаштан аз болои муш хатҳои ҷадвалро равшан кунед HighlightLinesColor=Ҳангоми гузаштани муш ранги сатрро равшан кунед ('ffffff' -ро истифода баред, то равшан набошад) HighlightLinesChecked=Ҳангоме ки он тафтиш карда мешавад, ранги хатро қайд кунед ('ffffff' -ро истифода баред, то равшан накунед) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Ранги матни сарлавҳаи саҳифа @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=CTRL+F5 -ро дар клавиатура пахш ку NotSupportedByAllThemes=Уилл бо мавзӯъҳои асосӣ кор мекунад, мумкин аст аз ҷониби мавзӯъҳои беруна дастгирӣ карда нашавад BackgroundColor=Ранги пасзамина TopMenuBackgroundColor=Ранги пасзамина барои менюи боло -TopMenuDisableImages=Пинҳон кардани тасвирҳо дар менюи боло +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=Ранги пасзамина барои менюи чап BackgroundTableTitleColor=Ранги пасзамина барои сатри сарлавҳаи Ҷадвал BackgroundTableTitleTextColor=Ранги матн барои сатри сарлавҳаи Ҷадвал @@ -1938,7 +1949,7 @@ EnterAnyCode=Ин майдон дорои истинод барои муайян Enter0or1=0 ё 1 ворид кунед UnicodeCurrency=Дар ин ҷо байни қавсҳо, рӯйхати рақами байт, ки рамзи асъорро ифода мекунад, ворид кунед. Масалан: барои $, ворид кунед [36] - барои воқеии бразилӣ R $ [82,36] - барои €, ворид кунед [8364] ColorFormat=Ранги RGB дар формати HEX аст, масалан: FF0000 -PictoHelp=Номи нишона дар формати dolibarr ('image.png' агар дар феҳристи мавзӯъҳои ҷорӣ, 'image.png@nom_du_module' агар дар директория / img / модул бошад) +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=Мавқеи сатр дар рӯйхати омехта SellTaxRate=Sales tax rate RecuperableOnly=Бале барои андоз аз арзиши иловашудаи "Дарк карда намешавад, аммо барқароршаванда" барои баъзе иёлатҳои Фаронса бахшида шудааст. Дар ҳама ҳолатҳои дигар арзиши "Не" -ро нигоҳ доред. @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Филтри регекс ба арзиши тоз COMPANY_DIGITARIA_CLEAN_REGEX=Филтри Regex ба арзиши тоза (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Нусхабардорӣ иҷозат дода намешавад GDPRContact=Корманди ҳифзи маълумот (DPO, Privacy Data or GDPR тамос) -GDPRContactDesc=Агар шумо маълумотро дар бораи ширкатҳо/шаҳрвандони аврупоӣ нигоҳ доред, шумо метавонед алоқаеро номбар кунед, ки барои Низомномаи умумии ҳифзи додаҳо масъул аст +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=Матни кӯмак барои нишон додан дар лавҳаи асбобҳо HelpOnTooltipDesc=Матн ё калиди тарҷумаро дар ин ҷо гузоред, то матн дар лавҳаи асбобҳо нишон дода шавад, вақте ки ин майдон дар шакл пайдо мешавад YouCanDeleteFileOnServerWith=Шумо метавонед ин файлро дар сервер бо сатри фармон тоза кунед:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=Эзоҳ: Имконияти истифодаи андоз аз SwapSenderAndRecipientOnPDF=Мавқеи ирсолкунанда ва қабулкунандаро дар ҳуҷҷатҳои PDF иваз кунед FeatureSupportedOnTextFieldsOnly=Огоҳӣ, хусусият танҳо дар майдонҳои матн ва танҳо рӯйхати комбинатсия дастгирӣ карда мешавад. Инчунин параметри URL -и амал = эҷод ё амал = таҳрир бояд муқаррар карда шавад Ё номи саҳифа бояд бо 'new.php' хотима дода шавад, то ин хусусиятро фаъол созад. EmailCollector=Коллексияи почтаи электронӣ +EmailCollectors=Email collectors EmailCollectorDescription=Барои скан кардани қуттиҳои почтаи электронӣ (бо истифода аз протоколи IMAP) ва сабт кардани мактубҳои ба аризаи шумо дар ҷои лозима навишташуда ва/ё ба таври худкор эҷод кардани баъзе сабтҳо (ба монанди роҳбарон), кори ба нақша гирифташуда ва саҳифаи танзимро илова кунед. NewEmailCollector=Коллексияи нави почтаи электронӣ EMailHost=Хости сервери почтаи IMAP @@ -2057,18 +2069,30 @@ EmailcollectorOperations=Амалиётҳое, ки аз ҷониби колле EmailcollectorOperationsDesc=Амалиётҳо аз боло то поён иҷро карда мешаванд MaxEmailCollectPerCollect=Шумораи максималии мактубҳои дар як ҷамъоварӣ ҷамъшуда CollectNow=Ҳоло ҷамъ кунед -ConfirmCloneEmailCollector=Шумо мутмаин ҳастед, ки коллектори почтаи электрониро %s клон кардан мехоҳед? +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 an agenda event. EmailCollectorConfirmCollectTitle=Тасдиқи ҷамъоварии почтаи электронӣ -EmailCollectorConfirmCollect=Оё мехоҳед, ки ҳозир коллексияро барои ин коллектор иҷро кунед? +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=Барои коркарди почтаи нав (филтрҳои мувофиқ) нест 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, 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=Рамзи натиҷаҳои охирин NbOfEmailsInInbox=Шумораи мактубҳо дар феҳристи манбаъҳо LoadThirdPartyFromName=Ҷустуҷӯи тарафи сеюмро дар %s бор кунед (танҳо бор) @@ -2089,7 +2113,7 @@ ResourceSetup=Танзимоти модули захираҳо UseSearchToSelectResource=Барои интихоби манбаъ шакли ҷустуҷӯро истифода баред (на ба рӯйхати афтанда). DisabledResourceLinkUser=Хусусияти пайваст кардани манбаъ ба корбаронро хомӯш кунед DisabledResourceLinkContact=Хусусиятро барои пайваст кардани манбаъ ба мухотибон хомӯш кунед -EnableResourceUsedInEventCheck=Хусусиятро фаъол созед, то санҷед, ки оё манбаъ дар ягон ҳодиса истифода мешавад +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Аз нав танзимкунии модулро тасдиқ кунед OnMobileOnly=Танҳо дар экрани хурд (смартфон) DisableProspectCustomerType=Навъи тарафи сеюми "Дурнамо + Муштарӣ" -ро хомӯш кунед (аз ин рӯ тарафи сеюм бояд "Дурнамо" ё "Муштарӣ" бошад, аммо ҳарду буда наметавонад) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=Коллекторҳои почтаи электронир ConfirmDeleteEmailCollector=Шумо мутмаин ҳастед, ки ин коллектори почтаи электрониро нест кардан мехоҳед? RecipientEmailsWillBeReplacedWithThisValue=Паёмҳои қабулкунанда ҳамеша бо ин қимат иваз карда мешаванд AtLeastOneDefaultBankAccountMandatory=Ҳадди аққал 1 суратҳисоби бонкии пешфарз бояд муайян карда шавад -RESTRICT_ON_IP=Танҳо дастрасӣ ба баъзе IP -ҳостҳоро иҷозат диҳед (аломати иҷозатдодашуда иҷозат дода намешавад, фосилаи байни арзишҳоро истифода баред). Холи маънои онро дорад, ки ҳар як мизбон метавонад дастрасӣ дошта бошад. +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=Дар асоси нусхаи SabreDAV китобхона NotAPublicIp=IP -и оммавӣ нест @@ -2144,6 +2168,9 @@ 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 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 -ро истифода баред. @@ -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/tg_TJ/banks.lang b/htdocs/langs/tg_TJ/banks.lang index b8bc3545abf..bce4eac4d84 100644 --- a/htdocs/langs/tg_TJ/banks.lang +++ b/htdocs/langs/tg_TJ/banks.lang @@ -95,11 +95,11 @@ LineRecord=Амалиёт AddBankRecord=Воридшавӣ илова кунед AddBankRecordLong=Воридотро ба таври дастӣ илова кунед Conciliated=Оштӣ шуд -ConciliatedBy=Муносибат аз ҷониби +ReConciliedBy=Reconciled by DateConciliating=Санаи оштӣ BankLineConciliated=Воридшавӣ бо квитансияи бонк муқоиса карда шуд -Reconciled=Оштӣ шуд -NotReconciled=Оштӣ нашудааст +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=Пардохти муштариён SupplierInvoicePayment=Пардохти фурӯшанда SubscriptionPayment=Пардохти обуна @@ -172,8 +172,8 @@ SEPAMandate=Мандати SEPA YourSEPAMandate=Мандати SEPA -и шумо FindYourSEPAMandate=Ин мандати SEPA -и шумост, ки ба ширкати мо иҷозат диҳад, ки ба бонки шумо қарзи мустақим супорад. Онро имзо карда баргардонед (сканкунии ҳуҷҷати имзошуда) ё тавассути почта ба AutoReportLastAccountStatement=Ҳангоми созиш ба таври худкор майдони "рақами суратҳисоби бонкӣ" -ро бо рақами охирини изҳорот пур кунед -CashControl=Назорати кассаи POS -NewCashFence=Кассаи нави кушод ё пӯшида +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Ҳаракатҳоро ранг кунед BankColorizeMovementDesc=Агар ин функсия фаъол бошад, шумо метавонед ранги мушаххаси замина барои ҳаракати дебетӣ ё кредитиро интихоб кунед BankColorizeMovementName1=Ранги пасзамина барои ҳаракати дебетӣ @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=Агар шумо дар баъзе сурат 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 diff --git a/htdocs/langs/tg_TJ/bills.lang b/htdocs/langs/tg_TJ/bills.lang index ff02ada6a16..fce08156551 100644 --- a/htdocs/langs/tg_TJ/bills.lang +++ b/htdocs/langs/tg_TJ/bills.lang @@ -156,6 +156,7 @@ 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. 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=Ба фактураи шаблон табдил диҳед @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=Пардохтҳои чек (бо назардош SendTo=ба фиристода шуд PaymentByTransferOnThisBankAccount=Пардохт тавассути интиқол ба суратҳисоби бонкии зерин VATIsNotUsedForInvoice=* Санади андоз аз арзиши иловашуда-293B CGI +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=Бо истифодаи қонун 80.335 аз 12/05/80 LawApplicationPart2=мол моликияти моликият боқӣ мемонад LawApplicationPart3=фурӯшанда то пардохти пурра @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=Ҳисобнома -фактураи таъмин UnitPriceXQtyLessDiscount=Нархи воҳиди x Миқдор - Тахфиф CustomersInvoicesArea=Минтақаи ҳисобкунии муштариён SupplierInvoicesArea=Минтақаи ҳисобкунии таъминкунанда -FacParentLine=Волидони хатти фактура SituationTotalRayToRest=Боқимонда барои пардохти бидуни андоз PDFSituationTitle=Вазъият n ° %d SituationTotalProgress=Пешравии куллӣ %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=Ҳисобнома -фактураҳои пар 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/tg_TJ/cashdesk.lang b/htdocs/langs/tg_TJ/cashdesk.lang index 49401163394..73420467d5a 100644 --- a/htdocs/langs/tg_TJ/cashdesk.lang +++ b/htdocs/langs/tg_TJ/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Поён AmountAtEndOfPeriod=Маблағ дар охири давра (рӯз, моҳ ё сол) TheoricalAmount=Миқдори назариявӣ RealAmount=Маблағи воқеӣ -CashFence=Пӯшидани кассаи пулӣ -CashFenceDone=Пӯшидани кассаи пулӣ дар ин давра анҷом ёфт +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Нб фактураҳо Paymentnumpad=Навъи Pad барои ворид кардани пардохт Numberspad=Ҷадвали рақамҳо @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} тег барои илова к TakeposGroupSameProduct=Хатҳои якхелаи маҳсулотро гурӯҳбандӣ кунед StartAParallelSale=Фурӯши нави параллелиро оғоз кунед SaleStartedAt=Фурӯш дар %s оғоз ёфт -ControlCashOpening=Ҳангоми кушодани POS поп -апи "Нақд пулро" кушоед -CloseCashFence=Назорати кассаро пӯшед +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Ҳисоботи пули нақд MainPrinterToUse=Принтери асосии истифодашаванда OrderPrinterToUse=Барои истифода чопгар фармоиш диҳед @@ -134,3 +134,5 @@ 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
    diff --git a/htdocs/langs/tg_TJ/companies.lang b/htdocs/langs/tg_TJ/companies.lang index 756174c002a..efd0993aac5 100644 --- a/htdocs/langs/tg_TJ/companies.lang +++ b/htdocs/langs/tg_TJ/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Минтақаи ҷустуҷӯ IdThirdParty=Шахси сеюм IdCompany=Шиносаи ширкат IdContact=ID тамос +ThirdPartyAddress=Third-party address ThirdPartyContacts=Тамосҳои шахсони сеюм ThirdPartyContact=Тамос/суроғаи тарафи сеюм Company=Ширкат @@ -51,19 +52,22 @@ CivilityCode=Рамзи шаҳрвандӣ RegisteredOffice=Дафтари бақайдгирифташуда Lastname=Насаб Firstname=Ном +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Мавқеи кор UserTitle=Унвон NatureOfThirdParty=Табиати шахси сеюм NatureOfContact=Табиати тамос Address=Суроға State=Давлат/вилоят +StateId=State ID StateCode=Рамзи иёлот/вилоят StateShort=Давлат Region=Минтақа Region-State=Минтақа - Давлат Country=Кишвар CountryCode=Коди давлат -CountryId=ID и кишвар +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=Рамзи фурӯшанда нодуруст аст CustomerCodeModel=Модели рамзи муштариён SupplierCodeModel=Модели рамзи фурӯшанда Gencod=Баркод +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Проф. Id 1 ProfId2Short=Проф. Id 2 @@ -159,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=- @@ -359,7 +364,7 @@ ListOfThirdParties=Рӯйхати шахсони сеюм ShowCompany=Тарафи сеюм ShowContact=Тамос-Суроға ContactsAllShort=Ҳама (Филтр нест) -ContactType=Навъи тамос +ContactType=Contact role ContactForOrders=Тамос бо фармоиш ContactForOrdersOrShipments=Тамоси фармоиш ё интиқол ContactForProposals=Муносибати пешниҳод @@ -439,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 ed976aa97f6..39a0b1ee583 100644 --- a/htdocs/langs/tg_TJ/compta.lang +++ b/htdocs/langs/tg_TJ/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Шумо мутмаин ҳастед, ки мехоҳед ин DeleteSocialContribution=Пардохти андози иҷтимоӣ ё молиявиро нест кунед DeleteVAT=Эъломияи андоз аз арзиши иловашударо нест кунед DeleteSalary=Корти маошро нест кунед +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Шумо мутмаин ҳастед, ки ин пардохти андози иҷтимоӣ/фискалиро нест кардан мехоҳед? ConfirmDeleteVAT=Шумо мутмаин ҳастед, ки ин эъломияи андоз аз арзиши иловашударо нест кардан мехоҳед? -ConfirmDeleteSalary=Шумо мутмаин ҳастед, ки мехоҳед ин маошро нест кунед? +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=Mode %sVAT on commitment accounting%s. CalcModeVATEngagement=Ҳолати %sVAT оид ба даромад-хароҷот%s . @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Муомилоти харид ҳисоб карда ме ReportPurchaseTurnoverCollected=Гардиши харид ҷамъоварӣ карда шуд IncludeVarpaysInResults = Ба ҳисобот пардохтҳои гуногунро дохил кунед IncludeLoansInResults = Ба ҳисоботҳо қарзҳоро дохил кунед -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) 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/exports.lang b/htdocs/langs/tg_TJ/exports.lang index 0d830123ef7..b33d7f1a562 100644 --- a/htdocs/langs/tg_TJ/exports.lang +++ b/htdocs/langs/tg_TJ/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=Навъи хат (0 = маҳсулот, 1 = хидм FileWithDataToImport=Файл бо маълумот барои воридот FileToImport=Файли манбаъ барои воридот FileMustHaveOneOfFollowingFormat=Файл барои воридот бояд яке аз форматҳои зеринро дошта бошад -DownloadEmptyExample=Файли шаблонро бо маълумоти мундариҷаи соҳа зеркашӣ кунед -StarAreMandatory=* майдонҳои ҳатмӣ мебошанд +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 -ро пахш кунед ... ChooseFileToImport=Файлро бор кунед ва пас тасвири %s -ро клик кунед, то файлро ҳамчун файли воридоти манбаъ интихоб кунед ... SourceFileFormat=Формати файли манбаъ @@ -135,3 +135,6 @@ NbInsert=Шумораи сатрҳои воридшуда: %s NbUpdate=Шумораи сатрҳои навшуда: %s MultipleRecordFoundWithTheseFilters=Бо ин филтрҳо сабтҳои сершумор пайдо шуданд: %s StocksWithBatch=Захираҳо ва маҳалли ҷойгиршавии (анбор) маҳсулот бо рақами серия/серия +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: 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/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 307da23e3cd..ac851fed382 100644 --- a/htdocs/langs/tg_TJ/install.lang +++ b/htdocs/langs/tg_TJ/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=Файли танзимот %s навишта н ConfFileIsWritable=Файли танзимот %s навиштан мумкин аст. ConfFileMustBeAFileNotADir=Файли танзимот %s бояд файл бошад, на директория. ConfFileReload=Бозсозии параметрҳо аз файли танзимот. +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 сессияҳоро дастгирӣ мекунад. @@ -16,13 +17,6 @@ PHPMemoryOK=Хотираи максималии PHP -и шумо ба %s %s
    bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Барои санҷиши муфассал ин ҷо клик кунед ErrorPHPDoesNotSupportSessions=Насби PHP -и шумо ҷаласаҳоро дастгирӣ намекунад. Ин хусусият барои кор кардан ба Долибарр лозим аст. Танзимоти PHP ва иҷозатҳои феҳристи сессияҳоро санҷед. -ErrorPHPDoesNotSupportGD=Насби PHP -и шумо вазифаҳои графикии GD -ро пуштибонӣ намекунад. Графикҳо дастрас нахоҳанд шуд. -ErrorPHPDoesNotSupportCurl=Насби PHP -и шумо Curl -ро дастгирӣ намекунад. -ErrorPHPDoesNotSupportCalendar=Насби PHP -и шумо васеъшавии тақвими php -ро пуштибонӣ намекунад. -ErrorPHPDoesNotSupportUTF8=Насби PHP -и шумо вазифаҳои UTF8 -ро пуштибонӣ намекунад. Dolibarr дуруст кор карда наметавонад. Пеш аз насб кардани Dolibarr инро ҳал кунед. -ErrorPHPDoesNotSupportIntl=Насби PHP -и шумо вазифаҳои Intl -ро дастгирӣ намекунад. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=Насби PHP -и шумо функсияҳои тавсеаи ислоҳотро дастгирӣ намекунад. ErrorPHPDoesNotSupport=Насби PHP -и шумо вазифаҳои %s -ро дастгирӣ намекунад. ErrorDirDoesNotExists=Феҳристи %s вуҷуд надорад. ErrorGoBackAndCorrectParameters=Ба қафо баргардед ва параметрҳоро тафтиш кунед/ислоҳ кунед. @@ -30,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..ae1ca888f32 100644 --- a/htdocs/langs/tg_TJ/loan.lang +++ b/htdocs/langs/tg_TJ/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=Ӯҳдадории молиявӣ InterestAmount=Фоиз CapitalRemain=Сармоя боқӣ мемонад TermPaidAllreadyPaid = Ин мӯҳлат аллакай пардохта шудааст -CantUseScheduleWithLoanStartedToPaid = Ман наметавонам банақшагирро барои қарз бо оғози пардохт истифода барам +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = Агар шумо ҷадвалро истифода баред, шумо наметавонед фоизҳоро тағир диҳед # Admin ConfigLoan=Танзимоти қарзи модул diff --git a/htdocs/langs/tg_TJ/main.lang b/htdocs/langs/tg_TJ/main.lang index 470a718cd60..96bf4d9559f 100644 --- a/htdocs/langs/tg_TJ/main.lang +++ b/htdocs/langs/tg_TJ/main.lang @@ -244,6 +244,7 @@ Designation=Тавсиф DescriptionOfLine=Тавсифи хат DateOfLine=Санаи хат DurationOfLine=Давомнокии хат +ParentLine=Parent line ID Model=Шаблон ҳуҷҷат DefaultModel=Шаблон ҳуҷҷати пешфарз Action=Чорабинӣ @@ -344,7 +345,7 @@ KiloBytes=Килобайтҳо MegaBytes=Мегабайт GigaBytes=Гигабайтҳо TeraBytes=Терабайтҳо -UserAuthor=Аз ҷониби интизорӣ +UserAuthor=Created by UserModif=Навсозӣ аз ҷониби b=б. Kb=Кб @@ -517,6 +518,7 @@ or=ё Other=Дигар Others=Дигарон OtherInformations=Маълумоти дигар +Workflow=Workflow Quantity=Миқдор Qty=Миқдори ChangedBy=Аз ҷониби тағир дода шудааст @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=Хусусият хомӯш карда шудааст MoveBox=Виджетро интиқол диҳед Offered=Пешниҳод шудааст NotEnoughPermissions=Шумо барои ин амал иҷозат надоред +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=Номи сессия Method=Усул Receive=Гирифтан @@ -798,6 +802,7 @@ URLPhoto=URL -и акс/логотип SetLinkToAnotherThirdParty=Истинод ба шахси сеюм LinkTo=Истинод ба LinkToProposal=Пайванд ба пешниҳод +LinkToExpedition= Link to expedition LinkToOrder=Истинод ба фармоиш LinkToInvoice=Истинод ба ҳисобнома -фактура LinkToTemplateInvoice=Истинод ба ҳисобнома -фактура @@ -1164,3 +1169,14 @@ 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/tg_TJ/members.lang b/htdocs/langs/tg_TJ/members.lang index eada8677dc2..aa189d45d8e 100644 --- a/htdocs/langs/tg_TJ/members.lang +++ b/htdocs/langs/tg_TJ/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s, logi ErrorUserPermissionAllowsToLinksToItselfOnly=Бо мақсади амният, шумо бояд иҷозати таҳрири ҳамаи корбаронро дошта бошед, то узвро ба корбаре, ки аз они шумо нест, пайванд кунед. SetLinkToUser=Истинод ба як корбари Dolibarr SetLinkToThirdParty=Истинод ба тарафи сеюми Dolibarr -MembersCards=Варақаҳои боздид барои аъзоён +MembersCards=Generation of cards for members MembersList=Рӯйхати аъзоён MembersListToValid=Рӯйхати аъзоёни лоиҳа (тасдиқ карда мешавад) MembersListValid=Рӯйхати аъзои дуруст @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Идентификатсияи аъзо +MemberId=Member Id +MemberRef=Member Ref NewMember=Аъзои нав MemberType=Навъи аъзо MemberTypeId=Идентификатори намуди аъзо @@ -71,6 +72,12 @@ MemberTypeCanNotBeDeleted=Навъи аъзоро нест кардан мумк NewSubscription=New contribution NewSubscriptionDesc=Ин шакл ба шумо имкон медиҳад, ки обунаи худро ҳамчун узви нави бунёд сабт кунед. Агар шумо хоҳед, ки обунаи худро навсозӣ кунед (агар аллакай узв бошад), лутфан ба Шӯрои бунёд тавассути почтаи электронии %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=Дер SubscriptionNotReceived=Contribution never received @@ -135,7 +142,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=Мавзӯи почтаи огоҳинома дар сурати худкор навиштани меҳмон гирифта мешавад @@ -159,11 +166,11 @@ HTPasswordExport=насли файли htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Амали иловагӣ дар сабт -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=Дар суратҳисоби бонкӣ сабти мустақим эҷод кунед MoreActionBankViaInvoice=Ҳисобнома -фактура ва пардохтро дар суратҳисоби бонкӣ созед MoreActionInvoiceOnly=Ҳисобнома -фактураро бидуни пардохт эҷод кунед -LinkToGeneratedPages=Эҷоди кортҳои боздид +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Ин экран ба шумо имкон медиҳад, ки файлҳои PDF -ро бо кортҳои боздид барои ҳамаи аъзоёни худ ё узви мушаххас эҷод кунед. DocForAllMembersCards=Барои ҳамаи аъзоён кортҳои боздид эҷод кунед DocForOneMemberCards=Барои аъзои мушаххас кортҳои тиҷорӣ эҷод кунед @@ -198,7 +205,8 @@ NbOfSubscriptions=Number of contributions AmountOfSubscriptions=Amount collected from contributions TurnoverOrBudget=Гардиш (барои ширкат) ё буҷет (барои таҳкурсӣ) DefaultAmount=Default amount of contribution -CanEditAmount=Visitor can choose/edit amount of its 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=Ба саҳифаи маҷмӯии пардохти онлайн гузаред ByProperties=Аз рӯи табиат MembersStatisticsByProperties=Аъзоёни омор аз рӯи табиат @@ -218,3 +226,5 @@ 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 diff --git a/htdocs/langs/tg_TJ/modulebuilder.lang b/htdocs/langs/tg_TJ/modulebuilder.lang index 3316cd3f116..f255a6225fa 100644 --- a/htdocs/langs/tg_TJ/modulebuilder.lang +++ b/htdocs/langs/tg_TJ/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=Номи модул/барномаро ворид кунед, то бидуни фосила эҷод кунед. Калимаҳои калонро барои ҷудо кардани калимаҳо истифода баред (Масалан: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Номи объектро ворид кунед, ки бидуни фосила эҷод карда шавад. Калимаҳои калонро барои ҷудо кардани калимаҳо истифода баред (Масалан: MyObject, Student, Teacher ...). Файли синфи CRUD, инчунин файли API, саҳифаҳо барои рӯйхат/илова/таҳрир/нест кардани объект ва файлҳои SQL тавлид карда мешаванд. +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=Роҳе, ки модулҳо тавлид/таҳрир карда мешаванд (феҳристи аввал барои модулҳои беруна ба %s муайян карда шудааст): %s ModuleBuilderDesc3=Модулҳои тавлидшуда/таҳриршаванда ёфт шуданд: %s ModuleBuilderDesc4=Ҳангоме ки файли %s дар решаи директорияи модул мавҷуд аст, модул ҳамчун "таҳриршаванда" муайян карда мешавад NewModule=Модули нав NewObjectInModulebuilder=Объекти нав +NewDictionary=New dictionary ModuleKey=Калиди модул ObjectKey=Калиди объект +DicKey=Dictionary key ModuleInitialized=Модул оғоз карда шуд FilesForObjectInitialized=Файлҳо барои объекти нави '%s' оғоз карда шуданд FilesForObjectUpdated=Файлҳо барои объекти '%s' нав карда шуданд (файлҳои .sql ва файли .class.php) @@ -52,7 +55,7 @@ LanguageFile=Файл барои забон ObjectProperties=Хусусиятҳои объект ConfirmDeleteProperty=Шумо мутмаин ҳастед, ки моликияти %s нест кардан мехоҳед? Ин рамзро дар синфи PHP тағир медиҳад, аммо сутунро аз таърифи ҷадвали объект хориҷ мекунад. NotNull=Не NULL -NotNullDesc=1 = Пойгоҳи додаҳоро ба NOT NULL гузоред. -1 = Ба арзиши сифр иҷозат диҳед ва арзиши холиро ба NULL, агар холӣ бошад ('' ё 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=Барои ҷустуҷӯи ҳама истифода мешавад DatabaseIndex=Индекси пойгоҳи додаҳо FileAlreadyExists=Файли %s аллакай вуҷуд дорад @@ -94,7 +97,7 @@ LanguageDefDesc=Ба ин файлҳо, ҳама калид ва тарҷума MenusDefDesc=Дар ин ҷо менюҳои аз ҷониби модули шумо пешниҳодшударо муайян кунед DictionariesDefDesc=Дар ин ҷо луғатҳоро, ки модули шумо пешниҳод кардааст, муайян кунед PermissionsDefDesc=Дар ин ҷо иҷозатҳои наверо, ки модули шумо пешкаш кардааст, муайян кунед -MenusDefDescTooltip=Менюҳое, ки модул/замимаи шумо пешкаш кардааст, дар массиви $ this-> менюҳои ба файли тавсифкунандаи модул муайян карда шудаанд. Шумо метавонед ин файлро дастӣ таҳрир кунед ё муҳаррири дохилшударо истифода баред.

    Эзоҳ: Пас аз муайян кардан (ва модули дубора фаъол кардан) менюҳо инчунин дар муҳаррири меню, ки барои корбарони админ дар %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=Луғатҳо, ки модул/замимаи шумо пешкаш кардааст, дар массиви $ this-> луғатҳо ба файли тавсифкунандаи модул муайян карда шудаанд. Шумо метавонед ин файлро дастӣ таҳрир кунед ё муҳаррири дохилшударо истифода баред.

    Эзоҳ: Пас аз муайян кардан (ва модули дубора фаъол кардан), луғатҳо низ дар майдони танзим барои корбарони админ дар %s намоён мешаванд. PermissionsDefDescTooltip=Иҷозатҳое, ки модул/замимаи шумо пешкаш кардааст, дар массиви $ this-> ҳуқуқи ба файли тавсифкунандаи модул муайян карда шудаанд. Шумо метавонед ин файлро дастӣ таҳрир кунед ё муҳаррири дохилшударо истифода баред.

    Эзоҳ: Пас аз муайян кардан (ва модул дубора фаъол кардан), иҷозатҳо дар танзимоти пешфарзии %s намоён мешаванд. HooksDefDesc=Дар амволи module_parts ['hooks'] , дар тавсифи модул контексти қалмоқе, ки шумо мехоҳед идора кунед, муайян кунед (рӯйхати контекстҳоро тавассути ҷустуҷӯи ' initHooks (a09a4b2 a09a4b2) файли қалмоқӣ барои илова кардани коди вазифаҳои пайвастшудаи шумо (функсияҳои пайвастшавандаро тавассути ҷустуҷӯи ' executeHooks ' дар коди аслӣ ёфтан мумкин аст). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Агар холӣ бошад, мизро нест кунед) TableDoesNotExists=Ҷадвали %s вуҷуд надорад TableDropped=Ҷадвали %s нест карда шуд InitStructureFromExistingTable=Сатри массиви сохтории ҷадвали мавҷударо созед -UseAboutPage=Дар бораи саҳифа хомӯш кунед +UseAboutPage=Do not generate the About page UseDocFolder=Папкаи ҳуҷҷатҳоро хомӯш кунед UseSpecificReadme=ReadMe -и мушаххасро истифода баред ContentOfREADMECustomized=Эзоҳ: Мундариҷаи файли README.md бо арзиши мушаххасе, ки дар танзимоти ModuleBuilder муайян карда шудааст, иваз карда шудааст. @@ -127,9 +130,9 @@ UseSpecificEditorURL = URL -и муҳаррири мушаххасро исти UseSpecificFamily = Як оилаи мушаххасро истифода баред UseSpecificAuthor = Муаллифи мушаххасро истифода баред UseSpecificVersion = Як версияи мушаххаси ибтидоиро истифода баред -IncludeRefGeneration=Истинод ба объект бояд ба таври худкор тавлид шавад -IncludeRefGenerationHelp=Инро санҷед, агар шумо хоҳед, ки кодро барои идоракунии худкори истинод дохил кунед -IncludeDocGeneration=Ман мехоҳам аз объект чанд ҳуҷҷат тавлид кунам +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=Агар шумо инро тафтиш кунед, барои илова кардани қуттии "Ҳуҷҷат эҷод кардан" дар сабт баъзе кодҳо тавлид карда мешаванд. ShowOnCombobox=Нишон додани арзиши дар combobox KeyForTooltip=Калид барои маслиҳат @@ -138,10 +141,15 @@ CSSViewClass=CSS барои хондан CSSListClass=CSS барои рӯйхат NotEditable=Таҳрир карда намешавад ForeignKey=Калиди хориҷӣ -TypeOfFieldsHelp=Навъи майдонҳо:
    varchar (99), дубора (24,8), воқеӣ, матн, html, datetime, тамғаи вақт, бутун, бутун: ClassName: relatpath/to/classfile.class.php [: 1 [: filter]] ('1' маънои онро дорад, ки мо барои сохтани сабт тугмаи + -ро илова мекунем, 'филтр' метавонад 'status = 1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' бошад) +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 ба HTML AsciiToPdfConverter=Табдилдиҳандаи Ascii ба PDF TableNotEmptyDropCanceled=Ҷадвал холӣ нест. Таркиш бекор карда шуд. ModuleBuilderNotAllowed=Созандаи модул дастрас аст, аммо ба корбари шумо иҷозат дода намешавад. ImportExportProfiles=Профилҳои воридот ва содирот -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=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. 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/other.lang b/htdocs/langs/tg_TJ/other.lang index 45f11e07cc9..88c71da49b1 100644 --- a/htdocs/langs/tg_TJ/other.lang +++ b/htdocs/langs/tg_TJ/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... ё сохтани профили худ
    (ин DemoFundation=Аъзоёни як фондро идора кунед DemoFundation2=Аъзоён ва суратҳисоби бонкии фондро идора кунед DemoCompanyServiceOnly=Танҳо хидмати фурӯши ширкат ё фрилансер -DemoCompanyShopWithCashDesk=Дӯконро бо кассаи идоракунӣ идора кунед +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Дӯкони фурӯши маҳсулот бо нуқтаи фурӯш DemoCompanyManufacturing=Ширкате, ки маҳсулот истеҳсол мекунад DemoCompanyAll=Ширкат бо фаъолиятҳои гуногун (ҳама модулҳои асосӣ) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Объектро барои дидани омор ConfirmBtnCommonContent = Шумо мутмаин ҳастед, ки "%s" мехоҳед? ConfirmBtnCommonTitle = Амали худро тасдиқ кунед CloseDialog = Пӯшед +Autofill = Autofill diff --git a/htdocs/langs/tg_TJ/projects.lang b/htdocs/langs/tg_TJ/projects.lang index 74c0be54a7b..b5fadb314a1 100644 --- a/htdocs/langs/tg_TJ/projects.lang +++ b/htdocs/langs/tg_TJ/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Нишони лоиҳа ProjectsArea=Минтақаи лоиҳаҳо ProjectStatus=Ҳолати лоиҳа SharedProject=Ҳама -PrivateProject=Тамосҳои лоиҳа +PrivateProject=Assigned contacts ProjectsImContactFor=Лоиҳаҳое, ки ман бо онҳо ошкоро тамос дорам AllAllowedProjects=Ҳама лоиҳаҳое, ки ман хонда метавонам (азони ман + оммавӣ) AllProjects=Ҳама лоиҳаҳо @@ -190,6 +190,7 @@ PlannedWorkload=Ҳаҷми кори ба нақша гирифташуда PlannedWorkloadShort=Сарбории кор ProjectReferers=Маводҳои марбут ProjectMustBeValidatedFirst=Лоиҳа бояд аввал тасдиқ карда шавад +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Барои ҷудо кардани вақт як манбаи корбарро ҳамчун тамос бо лоиҳа таъин кунед InputPerDay=Воридшавӣ дар як рӯз InputPerWeek=Воридшавӣ дар як ҳафта @@ -258,7 +259,7 @@ TimeSpentInvoiced=Вақти сарфшуда ҳисоб карда мешава TimeSpentForIntervention=Вақти сарфшуда TimeSpentForInvoice=Вақти сарфшуда OneLinePerUser=Як сатр барои як корбар -ServiceToUseOnLines=Хизмат барои истифода дар хатҳо +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=Ҳисобнома -фактура %s аз вақти сарфшуда дар лоиҳа таҳия шудааст InterventionGeneratedFromTimeSpent=Мудохила %s аз вақти сарфшуда дар лоиҳа тавлид шудааст ProjectBillTimeDescription=Санҷед, ки оё шумо ба ҷадвали вақт оид ба вазифаҳои лоиҳа ворид мешавед ВА шумо ният доред, ки аз ҷадвали вақт ҳисобнома -фактура (ҳо) эҷод кунед, то ба фармоишгари лоиҳа ҳисоб кунед (оё тафтиш накунед, ки оё шумо нақшаи ҳисобнома -фактураро тартиб додаед, ки ба ҷадвали вақт дохил нашудааст). Эзоҳ: Барои таҳияи ҳисобнома -фактура, ба ҷадвали 'Вақти сарфшуда' -и лоиҳа гузаред ва сатрҳои дохилшударо интихоб кунед. @@ -287,3 +288,10 @@ 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/tg_TJ/propal.lang b/htdocs/langs/tg_TJ/propal.lang index 32e74d38102..1f128df762e 100644 --- a/htdocs/langs/tg_TJ/propal.lang +++ b/htdocs/langs/tg_TJ/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 боз кардан мехоҳед? @@ -85,13 +86,26 @@ ProposalCustomerSignature=Қабули хаттӣ, мӯҳри ширкат, са ProposalsStatisticsSuppliers=Омори пешниҳодҳои фурӯшанда CaseFollowedBy=Ҳодиса пас аз он SignedOnly=Фақат имзо +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=ID пешниҳоди IdProduct=ID Маҳсулот -PrParentLine=Пешниҳоди хати волидайн LineBuyPriceHT=Нарх харед Маблағи холис аз андоз барои хат SignPropal=Accept proposal RefusePropal=Refuse proposal Sign=Sign +NoSign=Set not signed PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted diff --git a/htdocs/langs/tg_TJ/ticket.lang b/htdocs/langs/tg_TJ/ticket.lang index dbc1764ceac..ac9b1fa27b4 100644 --- a/htdocs/langs/tg_TJ/ticket.lang +++ b/htdocs/langs/tg_TJ/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=Интерфейси оммавӣ, ки бидуни шино TicketSetupDictionaries=Навъи чипта, вазнинӣ ва рамзҳои таҳлилӣ аз луғатҳо танзим карда мешаванд TicketParamModule=Танзими тағирёбандаи модул TicketParamMail=Танзимоти почтаи электронӣ -TicketEmailNotificationFrom=Паёми электронӣ аз -TicketEmailNotificationFromHelp=Дар посух ба паёми чипта бо мисол истифода мешавад -TicketEmailNotificationTo=Огоҳинома ба почтаи электронӣ -TicketEmailNotificationToHelp=Ба ин адрес огоҳиҳои почтаи электронӣ фиристед. +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 TicketNewEmailBodyLabel=Паёми матнӣ пас аз сохтани чипта фиристода мешавад TicketNewEmailBodyHelp=Матни дар ин ҷо нишон додашуда ба почтаи электронӣ, ки таъсиси чиптаи навро аз интерфейси оммавӣ тасдиқ мекунад, ворид карда мешавад. Маълумот дар бораи машварати чипта ба таври худкор илова карда мешавад. TicketParamPublicInterface=Танзимоти интерфейси оммавӣ @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=Аз рӯи санаи болоравӣ мураттаб куне OrderByDateDesc=Аз рӯи санаи камшаванда ҷудо кунед ShowAsConversation=Ҳамчун рӯйхати сӯҳбат нишон диҳед MessageListViewType=Ҳамчун рӯйхати ҷадвал нишон диҳед +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Қабулкунанда холӣ TicketGoIntoContactTab=Лутфан ба ҷадвали "Тамос" ворид шавед, то онҳоро интихоб кунед TicketMessageMailIntro=Муқаддима TicketMessageMailIntroHelp=Ин матн танҳо дар аввали почтаи электронӣ илова карда мешавад ва захира карда намешавад. -TicketMessageMailIntroLabelAdmin=Муқаддима ба паём ҳангоми фиристодани почтаи электронӣ -TicketMessageMailIntroText=Салом,
    Дар чиптае, ки шумо тамос доред, ҷавоби нав фиристода шуд. Ин аст паём:
    -TicketMessageMailIntroHelpAdmin=Ин матн пеш аз матни посух ба чипта ворид карда мешавад. +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=

    Бо эҳтиром,

    -

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Имзои почтаи электронӣ TicketMessageMailSignatureHelpAdmin=Ин матн пас аз паёми ҷавоб ворид карда мешавад. TicketMessageHelp=Танҳо ин матн дар рӯйхати паёмҳо дар корти чипта сабт карда мешавад. @@ -238,9 +252,16 @@ TicketChangeStatus=Тағир додани ҳолати TicketConfirmChangeStatus=Тағир додани вазъро тасдиқ кунед: %s? TicketLogStatusChanged=Статус тағир ёфт: %s ба %s TicketNotNotifyTiersAtCreate=Ҳангоми эҷод кардан ба ширкат хабар надиҳед +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=Ин почтаи автоматӣ барои тасдиқ к TicketNewEmailBodyCustomer=Ин почтаи автоматӣ барои тасдиқ кардани чиптаи нав аст, ки акнун ба ҳисоби шумо сохта шудааст. TicketNewEmailBodyInfosTicket=Маълумот барои мониторинги чипта TicketNewEmailBodyInfosTrackId=Рақами пайгирии чиптаҳо: %s -TicketNewEmailBodyInfosTrackUrl=Шумо метавонед ҷараёни чиптаро бо пахш кардани истиноди боло дидан кунед. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Шумо метавонед ҷараёни чиптаро дар интерфейси мушаххас бо истиноди зерин дидан кунед +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=Лутфан бевосита ба ин почтаи электронӣ ҷавоб надиҳед! Истинодро барои посух додан ба интерфейс истифода баред. TicketPublicInfoCreateTicket=Ин шакл ба шумо имкон медиҳад, ки чиптаи дастгирӣ дар системаи идоракунии мо сабт кунед. TicketPublicPleaseBeAccuratelyDescribe=Лутфан мушкилотро дақиқ тавсиф кунед. Маълумоти бештарро пешниҳод кунед, то ба мо имкон диҳем, ки дархости шуморо дуруст муайян кунем. @@ -291,6 +313,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: TicketNotificationEmailSubject=Билет %s нав карда шуд TicketNotificationEmailBody=Ин паёми автоматӣ аст, то шуморо огоҳ созад, ки чиптаи %s навсозӣ шудааст TicketNotificationRecipient=Қабулкунандаи огоҳӣ diff --git a/htdocs/langs/tg_TJ/users.lang b/htdocs/langs/tg_TJ/users.lang index 695c4ef57c6..d268d4f6d17 100644 --- a/htdocs/langs/tg_TJ/users.lang +++ b/htdocs/langs/tg_TJ/users.lang @@ -114,7 +114,7 @@ UserLogoff=Хуруҷи корбар UserLogged=Истифодабаранда сабт шудааст DateOfEmployment=Санаи кор DateEmployment=Шуғл -DateEmploymentstart=Санаи оғози кор +DateEmploymentStart=Employment Start Date DateEmploymentEnd=Санаи хотимаи шуғл RangeOfLoginValidity=Дастрасӣ ба доираи санаи эътибор CantDisableYourself=Шумо наметавонед сабти корбари худро хомӯш кунед @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Бо нобаёнӣ, валидатор нози UserPersonalEmail=Почтаи электронии шахсӣ UserPersonalMobile=Телефони мобилии шахсӣ WarningNotLangOfInterface=Огоҳӣ, ин забони асосии корбар аст, на забони интерфейси интихобкардаи ӯ. Барои тағир додани забони интерфейси ин корбар, ба ҷадвали %s гузаред +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index e4311437a46..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,13 +714,14 @@ Permission27=ลบข้อเสนอในเชิงพาณิชย์ Permission28=ข้อเสนอในเชิงพาณิชย์เพื่อการส่งออก Permission31=ดูผลิตภัณฑ์ Permission32=สร้าง / แก้ไขผลิตภัณฑ์ +Permission33=Read prices products 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=สร้าง / แก้ไขการแทรกแซง @@ -739,6 +740,7 @@ Permission79=สร้าง / แก้ไขการสมัครสมา Permission81=อ่านคำสั่งซื้อของลูกค้า Permission82=สร้าง / แก้ไขคำสั่งซื้อของลูกค้า Permission84=ตรวจสอบการสั่งซื้อของลูกค้า +Permission85=Generate the documents sales orders Permission86=ส่งคำสั่งซื้อของลูกค้า Permission87=ลูกค้าปิดการสั่งซื้อ Permission88=ยกเลิกคำสั่งซื้อของลูกค้า @@ -766,9 +768,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=ลบทุกโปรเจคและงาน (รวมถึงโปรเจคส่วนตัวที่ฉันไม่ได้รับการติดต่อ) +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 @@ -873,6 +876,7 @@ Permission525=เครื่องคิดเลขสินเชื่อเ Permission527=เงินให้กู้ยืมเพื่อการส่งออก Permission531=ดูบริการ Permission532=สร้าง / แก้ไขบริการ +Permission533=Read prices services Permission534=ลบบริการ Permission536=ดู / จัดการบริการซ่อน Permission538=บริการส่งออก @@ -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=ประเภทของหน่วย SetupSaved=การตั้งค่าที่บันทึกไว้ SetupNotSaved=ยังไม่ได้บันทึกการตั้งค่า @@ -1122,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=อัพเกรด @@ -1187,7 +1197,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 @@ -1228,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=ข้อมูลระบบข้อมูลทางด้านเทคนิคอื่น ๆ ที่คุณได้รับในโหมดอ่านอย่างเดียวและมองเห็นสำหรับผู้ดูแลระบบเท่านั้น @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=You forced a new translation for the translation ke TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %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:
    @@ -1420,6 +1432,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 +1931,7 @@ ConfFileMustContainCustom=Installing or building an external module from applica 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 @@ -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=สีพื้นหลัง 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 @@ -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=ตำแหน่งของเส้นเป็นรายการคำสั่งผสม 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=รหัสไปรษณีย์ 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 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/th_TH/companies.lang b/htdocs/langs/th_TH/companies.lang index b0595b818de..ae77fd5da39 100644 --- a/htdocs/langs/th_TH/companies.lang +++ b/htdocs/langs/th_TH/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=พื้นที่ prospection IdThirdParty=Id ของบุคคลที่สาม IdCompany=Id บริษัท IdContact=รหัสที่ติดต่อ +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=บริษัท @@ -51,19 +52,22 @@ CivilityCode=รหัสสุภาพ RegisteredOffice=สำนักงานที่สมัครสมาชิก Lastname=นามสกุล Firstname=ชื่อแรก +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=ตำแหน่ง UserTitle=ชื่อเรียก 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Vendor code invalid CustomerCodeModel=รหัสรูปแบบของลูกค้า SupplierCodeModel=Vendor code model Gencod=บาร์โค้ด +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=ศ. รหัส 1 ProfId2Short=ศ. รหัส 2 @@ -159,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=คนอื่น ๆ ProfId6ShortCM=- ProfId1CO=ศหมายเลข 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=ทั้งหมด (ไม่กรอง) -ContactType=ประเภทติดต่อ +ContactType=Contact role ContactForOrders=ติดต่อสั่งซื้อของ ContactForOrdersOrShipments=Order's or shipment's contact ContactForProposals=ติดต่อข้อเสนอของ 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/install.lang b/htdocs/langs/th_TH/install.lang index 79c67fbb0b9..041c1efd3b1 100644 --- a/htdocs/langs/th_TH/install.lang +++ b/htdocs/langs/th_TH/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=ไฟล์การกำหนดค่า %sไ ConfFileIsWritable=ไฟล์การกำหนดค่า %sสามารถเขียนได้ ConfFileMustBeAFileNotADir=ไฟล์การกำหนดค่า %sต้องเป็นไฟล์ ไม่ใช่ไดเร็กทอรี ConfFileReload=กำลังโหลดพารามิเตอร์อีกครั้งจากไฟล์การกำหนดค่า +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 นี้รองรับเซสชัน @@ -16,13 +17,6 @@ PHPMemoryOK=หน่วยความจำสูงสุด PHP เซส PHPMemoryTooLow=PHP max session memory ของคุณกำหนดเป็น %s bytes. ซึ่งน้อยมาก ให้แก้ไข php.ini กำหนดค่า memory_limit พารามิเตอร์อย่างน้อยที่ %s bytes. Recheck=คลิกที่นี่สำหรับรายละเอียดการทดสอบเพิ่มเติม ErrorPHPDoesNotSupportSessions=การติดตั้ง PHP ของคุณไม่รองรับเซสชัน ฟีเจอร์นี้จำเป็นเพื่อให้ Dolibarr ทำงานได้ ตรวจสอบการตั้งค่า PHP และการอนุญาตของไดเร็กทอรีเซสชัน -ErrorPHPDoesNotSupportGD=การติดตั้ง PHP ของคุณไม่สนับสนุนฟังก์ชั่นกราฟิก GD กราฟจะไม่สามารถใช้ได้ -ErrorPHPDoesNotSupportCurl=การติดตั้ง PHP ของคุณไม่รองรับ Curl -ErrorPHPDoesNotSupportCalendar=การติดตั้ง PHP ของคุณไม่รองรับ php calendar extensions -ErrorPHPDoesNotSupportUTF8=การติดตั้ง PHP ของคุณไม่สนับสนุนฟังก์ชั่น UTF8 Dolibarr ไม่สามารถทำงานได้อย่างถูกต้อง แก้ปัญหานี้ก่อนการติดตั้ง Dolibarr -ErrorPHPDoesNotSupportIntl=การติดตั้ง PHP ของคุณไม่รองรับ Intl functions. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=การติดตั้ง PHP ของคุณไม่รองรับ extend debug functions. ErrorPHPDoesNotSupport=การติดตั้ง PHP ของคุณไม่รองรับ %s functions. ErrorDirDoesNotExists=ไดเร็กทอรี่ %s ไม่มีอยู่ ErrorGoBackAndCorrectParameters=ย้อนกลับและตรวจสอบ/แก้ไขพารามิเตอร์ให้ถูกต้อง @@ -30,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/members.lang b/htdocs/langs/th_TH/members.lang index 709f892cc91..4a37d35e480 100644 --- a/htdocs/langs/th_TH/members.lang +++ b/htdocs/langs/th_TH/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=สมาชิกอีกคนห ErrorUserPermissionAllowsToLinksToItselfOnly=ด้วยเหตุผลด้านความปลอดภัยคุณต้องได้รับสิทธิ์ในการแก้ไขผู้ใช้ทุกคนที่จะสามารถที่จะเชื่อมโยงสมาชิกให้กับผู้ใช้ที่ไม่ได้เป็นของคุณ SetLinkToUser=เชื่อมโยงไปยังผู้ใช้ Dolibarr SetLinkToThirdParty=เชื่อมโยงไปยัง Dolibarr ของบุคคลที่สาม -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=รายชื่อสมาชิก MembersListToValid=รายชื่อสมาชิกร่าง (ที่จะถูกตรวจสอบ) MembersListValid=รายชื่อสมาชิกที่ถูกต้อง @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=รหัสสมาชิก +MemberId=Member Id +MemberRef=Member Ref NewMember=สมาชิกใหม่ MemberType=ประเภทสมาชิก MemberTypeId=หมายเลขสมาชิกประเภท @@ -159,11 +160,11 @@ HTPasswordExport=การสร้างแฟ้ม htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=การกระทำประกอบการบันทึก -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=สร้างใบแจ้งหนี้ที่มีการชำระเงินไม่มี -LinkToGeneratedPages=สร้างบัตรเข้าชม +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=หน้าจอนี้จะช่วยให้คุณสามารถสร้างไฟล์ PDF ด้วยนามบัตรสำหรับสมาชิกทุกคนของคุณหรือสมาชิกโดยเฉพาะอย่างยิ่ง DocForAllMembersCards=สร้างนามบัตรสำหรับสมาชิกทุกคน DocForOneMemberCards=สร้างนามบัตรของสมาชิกโดยเฉพาะอย่างยิ่ง @@ -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/th_TH/other.lang b/htdocs/langs/th_TH/other.lang index b903a2571ac..9534d3da785 100644 --- a/htdocs/langs/th_TH/other.lang +++ b/htdocs/langs/th_TH/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...or build your own profile
    (manual module selectio DemoFundation=จัดการสมาชิกของมูลนิธิ DemoFundation2=จัดการสมาชิกและบัญชีธนาคารของมูลนิธิ DemoCompanyServiceOnly=Company or freelance selling service only -DemoCompanyShopWithCashDesk=บริหารจัดการร้านค้าพร้อมโต๊ะเงินสด +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) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = ใกล้ +Autofill = Autofill diff --git a/htdocs/langs/th_TH/projects.lang b/htdocs/langs/th_TH/projects.lang index 8c7db9c4d61..f4234145761 100644 --- a/htdocs/langs/th_TH/projects.lang +++ b/htdocs/langs/th_TH/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Project label ProjectsArea=Projects Area ProjectStatus=สถานะของโครงการ SharedProject=ทุกคน -PrivateProject=รายชื่อโครงการ +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=ทุกโครงการ @@ -190,6 +190,7 @@ PlannedWorkload=ภาระงานที่วางแผนไว้ PlannedWorkloadShort=จำนวนงาน ProjectReferers=Related items ProjectMustBeValidatedFirst=โครงการจะต้องผ่านการตรวจสอบครั้งแรก +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Assign a user resource as contact of project to allocate time InputPerDay=การป้อนข้อมูลต่อวัน InputPerWeek=การป้อนข้อมูลต่อสัปดาห์ @@ -287,3 +288,9 @@ 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=วันที่สิ้นสุดไม่สามารถก่อนวันเริ่มต้น +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 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/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index e80213cdfac..0c452a1d554 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Kurulumda tanımlanmayan abonelik ö AccountancyArea=Muhasebe alanı AccountancyAreaDescIntro=Muhasebe modülünün kullanımı birkaç adımda tamamlanır: AccountancyAreaDescActionOnce=Aşağıdaki eylemler genellikle yalnızca bir kere veya yılda bir kez gerçekleştirilir... -AccountancyAreaDescActionOnceBis=Günlükleme yaparken (Günlüklere ve Genel deftere kayıt girme) size doğru varsayılan muhasebe hesabı önererek zamandan tasarruf etmenizi sağlamak için sonraki adımlar tamamlanmalıdı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 AccountancyAreaDescActionFreq=Aşağıdaki eylemler çok büyük şirketler için genellikle her ay, her hafta veya her gün gerçekleştirilir... -AccountancyAreaDescJournalSetup=ADIM %s: "%s" menüsünü kullanarak günlük listenizin içeriğini oluşturun veya kontrol edin. +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=ADIM %s: Bir hesap planı modelinin mevcut olup olmadığını kontrol edin veya menüden oluşturun %s AccountancyAreaDescChart=ADIM %s: Menüden hesap planınızı seçin ve|veya tamamlayın %s AccountancyAreaDescVat=ADIM %s: "%s" menüsünü kullanarak her bir KDV Oranı için muhasebe hesaplarını tanımlayın. AccountancyAreaDescDefault=ADIM %s: "%s" menüsünü kullanarak varsayılan muhasebe hesaplarını tanımlayın. -AccountancyAreaDescExpenseReport=ADIM %s: "%s" menüsünü kullanarak her bir harcama raporu türü için varsayılan muhasebe hesaplarını tanımlayın. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=ADIM %s: "%s" menüsünü kullanarak maaş ödemeleri için varsayılan muhasebe hesaplarını tanımlayın. -AccountancyAreaDescContrib=ADIM %s: "%s" menüsünü kullanarak özel harcamalar (çeşitli vergiler) için varsayılan muhasebe hesaplarını tanımlayın. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=ADIM %s: "%s" menüsünü kullanarak bağış için varsayılan muhasebe hesaplarını tanımlayın. AccountancyAreaDescSubscription=ADIM %s: Üye aboneliği için varsayılan muhasebe hesaplarını tanımlayın. Bunun için %s menü girişini kullanın. AccountancyAreaDescMisc=ADIM %s: "%s" menüsünü kullanarak çeşitli işlemler için zorunlu olan varsayılan hesabı ve varsayılan muhasebe hesaplarını tanımlayın. AccountancyAreaDescLoan=ADIM %s: "%s" menüsünü kullanarak krediler için varsayılan muhasebe hesaplarını tanımlayın. AccountancyAreaDescBank=ADIM %s: "%s" menüsünü kullanarak muhasebe hesaplarını ve her banka ve finansal hesap için günlük kodunu tanımlayın. -AccountancyAreaDescProd=ADIM %s: "%s" menüsünü kullanarak ürünler/hizmetler için muhasebe hesaplarını tanımlayın. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=ADIM %s: Mevcut %s satırları ve muhasebe hesabı arasındaki bağlamanın tamamlanıp tamamlanmadığını kontrol edin, böylece defterdeki işlemler günlüğe tek tıklamayla uygulama tarafından kaydedilebilecektir. Eksik bağları tamamlayın. Bunun için "%s" menü girişini kullanın. AccountancyAreaDescWriteRecords=ADIM %s: İşlemleri Defter'e yazın. Bunun için %s menüsüne gidin ve %s butonuna tıklayın. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Kapanış MenuAccountancyValidationMovements=Hareketleri doğrula ProductsBinding=Ürün hesapları TransferInAccounting=Muhasebede aktarım -RegistrationInAccounting=Muhasebede kayıt +RegistrationInAccounting=Recording in accounting Binding=Hesaba bağlama CustomersVentilation=Müşteri faturası bağlama SuppliersVentilation=Tedarikçi faturası bağlama @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Gider raporu bağlama CreateMvts=Yeni işlem oluştur UpdateMvts=İşlemi değiştir ValidTransaction=İşlemi doğrula -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Büyük Defter BookkeepingSubAccount=Subledger AccountBalance=Hesap bakiyesi @@ -219,12 +219,12 @@ ByPredefinedAccountGroups=Önceden tanımlanmış gruplar tarafından ByPersonalizedAccountGroups=Kişiselleştirilmiş gruplar tarafından ByYear=Yıla göre NotMatch=Ayarlanmamış -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=Silinecek yıl DelJournal=Silinecek günlük -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=Gider raporları günlüğü DescFinanceJournal=Banka hesabından yapılan tüm ödeme türlerini içeren finans günlüğü @@ -278,11 +278,11 @@ 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 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=Hareketleri doğrula +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=Otomatik Olarak Bağla @@ -294,14 +294,15 @@ 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 journalize +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Bağlamayı değiştir Accounted=Accounted in ledger NotYetAccounted=Henüz muhasebeye aktarılmamış ShowTutorial=Show Tutorial NotReconciled=Uzlaştırılmadı -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 @@ -329,8 +330,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=Export draft journal Modelcsv=Dışa aktarım modeli @@ -394,6 +396,21 @@ Range=Muhasebe hesabı aralığı Calculated=Hesaplanmış Formula=Formül +## 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=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)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Kurulumun bazı zorunlu adımları tamamlanmadı, lütfen onları tamamlayın. ErrorNoAccountingCategoryForThisCountry=%s ülkesi için muhasebe hesap grubu yok (Giriş - Ayarlar - Sözlükler kısmına bakın) @@ -406,6 +423,9 @@ Binded=Bağlanmış satırlar ToBind=Bağlanacak satırlar 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 ## Import ImportAccountingEntries=Muhasebe girişleri diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 890b8e15648..e15f88bfaec 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -109,7 +109,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 @@ -477,7 +477,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 @@ -504,7 +504,7 @@ WarningPHPMailC=- E-posta göndermek için kendi E-posta Servis Sağlayıcınız 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=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 @@ -714,13 +714,14 @@ 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 Permission39=Minimum fiyatı göz ardı et -Permission41=Projeleri ve görevleri okuyun (iletişim kurduğum paylaşılan proje ve projeler). Ayrıca, atanan görevlerde benim veya hiyerarşim için tüketilen zamanı da girebilir (Zaman Çizelgesi) -Permission42=Projeler oluşturun/değiştirin (paylaşılan proje ve iletişim kurduğum projeler). Ayrıca görevler oluşturabilir ve kullanıcıları projeye ve görevlere atayabilir -Permission44=Proje sil (paylaşılan proje ve iletişim kurduğum projeler) +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=Projeleri dışa aktar Permission61=Müdahale oku Permission62=Müdahale oluştur/düzenle @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Kullanıcıya bağlı üçüncü parti oluştur/değiştir Permission125=Kullanıcıya bağlı üçüncü partileri sil Permission126=Üçüncü partileri dışa aktar Permission130=Create/modify third parties payment information -Permission141=Tüm projeleri ve görevleri oku (ayrıca iletişim kurmadığım özel projeler) -Permission142=Tüm projeleri ve görevleri oluştur/değiştir (ayrıca iletişim kurmadığım özel projeler) -Permission144=Bütün proje ve görevleri sil (aynı zamanda ilgilisi olmadığım özel projeleri de) +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=Sağlayıcıları oku Permission147=İstatistikleri oku Permission151=Otomatik ödeme talimatlarını oku @@ -873,6 +876,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 @@ -883,6 +887,9 @@ Permission564=Borçları Kaydet/Kredi transferinin Reddi Permission601=Etiketleri okuyun Permission602=Çıkartma oluştur/değiştir Permission609=Çıkartmaları sil +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=Gereç Cetvelleri Oku Permission651=Gereç Cetvelleri Oluştur/Güncelle Permission652=Gereç Cetvelleri Sil @@ -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=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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Gider raporu - Ulaşım kategorileri DictionaryExpenseTaxRange=Gider raporu - Ulaşım kategorisine göre menzil DictionaryTransportMode=Dahili iletişim raporu - Taşıma modu DictionaryBatchStatus=Product lot/serial Quality Control status +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=Ünite türü SetupSaved=Kurulum kaydedildi SetupNotSaved=Kurulum kaydedilmedi @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Banka hesapları modülü etkin değil ShowBugTrackLink="%s" bağlantısını göster 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=Uyarılar -DelaysOfToleranceBeforeWarning=Bir uyarı işaretini görüntülemeden önceki ek mühlet: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Gecikmiş öğe için ekranda %s şeklinde bir uyarı simgesi gösterilmeden önceki mühleti ayarlayın. Delays_MAIN_DELAY_ACTIONS_TODO=Tamamlanmamış planlı etkinlikler (gündem etkinlikleri) Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Proje zamanında kapanmadı @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Herhangi bir dil dosyasında mevcut olmayan '%s
    /%s YouMustEnableOneModule=Enaz 1 modül etkinleştirmelisiniz +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=%s sınıfı PHP yolunda bulunamadı YesInSummer=Yazın evet OnlyFollowingModulesAreOpenedToExternalUsers=Not: İzinler verildiği takdirde yalnızca şu modüller dış kullanıcılar tarafından kullanılabilir (bu tür kullanıcıların izinleri ne olursa olsun):
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Taslak faturalarda filigran (boşsa yoktur) PaymentsNumberingModule=Ödeme numaralandırma modeli 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. ##### Proposals ##### PropalSetup=Teklif modülü kurulumu ProposalsNumberingModules=Teklif numaralandırma modülü @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Uygulamadan harici bir modül kurmak veya oluşturmak, HighlightLinesOnMouseHover=Tablo satırlarını fare üzerine geldiğinde vurgula HighlightLinesColor=Fare üzerinden geçerken satırı vurgulama rengi (vurgulama rengi istemiyorsanız 'ffffff' kullanın) HighlightLinesChecked=Bir satır işaretlendiğinde bu satırı vurgulama rengi (vurgulama rengi istemiyorsanız 'ffffff' kullanın) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Sayfa başlığının metin rengi @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=Bu alan, çizgiyi tanımlamak için bir referans içerir. Seçtiği Enter0or1=0 veya 1 girin UnicodeCurrency=Buraya parantezlerin arasına para birimi sembolünü temsil eden bayt numaralarının listesini girin. Örneğin: $ için [36] girin - Türk Lirası TL [84,76] - € için [8364] girin ColorFormat=RGB rengi HEX formatındadır, örn: FF0000 -PictoHelp=Dolibarr biçimindeki simge adı (mevcut tema dizinindeyse 'image.png', bir modülün /img/ dizinindeyse 'image.png@nom_du_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=Satırın kombo listesindeki konumu SellTaxRate=Sales tax rate RecuperableOnly=Evet, Fransa'daki bazı eyaletler için adanmış "Algılanmayan Ama Geri Kazanılır" KDV için. Diğer tüm durumlarda değeri "Hayır" olarak tutun. @@ -1966,6 +1981,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 @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Değeri temizlemek için normal ifade filtresi (COM COMPANY_DIGITARIA_CLEAN_REGEX=Değeri temizlemek için normal ifade filtresi (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Yinelemeye izin verilmiyor GDPRContact=Veri Koruma Görevlisi (DPO, Veri Gizliliği veya GDPR kişisi) -GDPRContactDesc=Avrupalı şirketler veya vatandaşlar hakkında veri depoluyorsanız Genel Veri Koruma Yönetmeliği'nden (GDPR) sorumlu kişiyi burada adlandırabilirsiniz +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 HelpOnTooltipDesc=Bu alan bir formda göründüğünde metnin bir araç ipucunda gösterilmesi için buraya metin veya çeviri anahtarı koyun YouCanDeleteFileOnServerWith=Bu dosyayı sunucudaki Komut Satırı ile silebilirsiniz:
    %s @@ -2048,27 +2065,46 @@ 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ı CollectNow=Şimdi topla -ConfirmCloneEmailCollector=E-posta toplayıcısını %s klonlamak istediğinizden emin misiniz? +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 an agenda event. EmailCollectorConfirmCollectTitle=E-posta toplama onayı -EmailCollectorConfirmCollect=Bu koleksiyoncu için koleksiyonu şimdi çalıştırmak istiyor musunuz? +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=İş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, 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=En son sonuç kodu NbOfEmailsInInbox=Kaynak dizindeki e-postaların sayısı LoadThirdPartyFromName=%s üzerinde cari aramasını yükle (yalnızca yükle) @@ -2082,14 +2118,14 @@ 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ı UseSearchToSelectResource=Bir kaynak seçmek için bir arama formu kullanın (bir açılır liste yerine). DisabledResourceLinkUser=Bir kaynağı kullanıcılara bağlama özelliğini devre dışı bırak DisabledResourceLinkContact=Bir kaynağı kişilere bağlama özelliğini devre dışı bırak -EnableResourceUsedInEventCheck=Bir etkinlikte kaynağın kullanılıp kullanılmadığını kontrol etme özelliğini etkinleştir +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Modül sıfırlamayı onayla OnMobileOnly=Sadece küçük ekranda (akıllı telefon) DisableProspectCustomerType="Olasılık + Müşteri" cari türünü devre dışı bırakın (bu nedenle cari "Olasılık" veya "Müşteri" olmalıdır, ancak ikisi birden olamaz) @@ -2134,7 +2170,7 @@ DeleteEmailCollector=E-posta toplayıcıyı sil ConfirmDeleteEmailCollector=Bu e-posta toplayıcıyı silmek istediğinizden emin misiniz? RecipientEmailsWillBeReplacedWithThisValue=Alıcı e-postaları her zaman bu değerle değiştirilecektir AtLeastOneDefaultBankAccountMandatory=En az 1 varsayılan banka hesabı tanımlanmalıdır -RESTRICT_ON_IP=Yalnızca bazı ana bilgisayar IP'lerine erişime izin verin (joker karaktere izin verilmez, değerler arasında boşluk kullanın). Boş, her ana bilgisayarın erişebileceği anlamına gelir. +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=Kütüphane SabreDAV versiyonuna göre NotAPublicIp=Herkese açık bir IP değil @@ -2144,6 +2180,9 @@ 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 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. @@ -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= 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. + +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 +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/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang index 8ba4746193d..03db3db97d1 100644 --- a/htdocs/langs/tr_TR/companies.lang +++ b/htdocs/langs/tr_TR/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Müşteri teklifleri alanı IdThirdParty=Üçüncü parti kimliği IdCompany=Firma kimliği IdContact=Kişi kimliği +ThirdPartyAddress=Third-party address ThirdPartyContacts=Üçüncü parti kişileri ThirdPartyContact=Üçüncü parti kisi/adresi Company=Firma @@ -51,19 +52,22 @@ CivilityCode=Hitap kodu RegisteredOffice=Merkez Lastname=Soyadı Firstname=Adı +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=İş pozisyonu UserTitle=Unvan 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Tedarikçi kodu geçersiz CustomerCodeModel=Müşteri kodu modeli SupplierCodeModel=Tedarikçi kodu modeli Gencod=Barkod +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Vergi Dairesi ProfId2Short=Mersis No @@ -159,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=Diğerleri ProfId6ShortCM=- ProfId1CO=Prof Id 1 (RUT) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Üçüncü Partilerin Listesi ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Hepsi (süzmeden) -ContactType=Kişi tipi +ContactType=Contact role ContactForOrders=Sipariş yetkilisi ContactForOrdersOrShipments=Siparişin ya da sevkiyatın ilgilisi ContactForProposals=Teklif yetkilisi diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 637809ac0e1..0baa8dba090 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Bu maaş kartını ödenmiş olarak sınıflandırmak istediği DeleteSocialContribution=Bir sosyal ya da mali vergi ödemesi sil DeleteVAT=KDV beyannamesi sil DeleteSalary=Maaş kartı sil +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ? ConfirmDeleteVAT=Bu KDV beyannamesini silmek istediğinizden emin misiniz? -ConfirmDeleteSalary=Bu maaşı silmek istediğinizden emin misiniz? +ConfirmDeleteSalary=Are you sure you want to delete this salary ? +ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ? ExportDataset_tax_1=Sosyal ve mali vergiler ve ödemeleri CalcModeVATDebt=Mod %sKDV, taahhüt hesabı%s için. CalcModeVATEngagement=Mod %sKDV, gelirler-giderler%s için. @@ -287,9 +289,9 @@ ReportPurchaseTurnover=Faturalanan satın alma cirosu ReportPurchaseTurnoverCollected=Toplanan satın alma cirosu 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) 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/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 7d9b674fbac..5ce83ac323e 100644 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=PHP nizin ençok oturum belleği %s olarak ayarlanmış. Bu y 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=Daha detaylı bir test için buraya tıklayın 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=PHP kurulumunuz GD grafiksel fonksiyonları desteklemiyor. Hiçbir grafik mevcut olmayacak. -ErrorPHPDoesNotSupportCurl=PHP kurulumunuz Curl. desteklemiyor -ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. -ErrorPHPDoesNotSupportUTF8=PHP kurulumunuz UTF8 işlevlerini desteklemiyor. Dolibarr düzgün çalışamaz. Dolibarr'ı yüklemeden önce bunu çözün. -ErrorPHPDoesNotSupportIntl=PHP kurulumunuz Intl fonksiyonlarını desteklemiyor. -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=%s Dizini yoktur. ErrorGoBackAndCorrectParameters=Geri gidin ve parametreleri kontrol edin/düzeltin. @@ -30,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/languages.lang b/htdocs/langs/tr_TR/languages.lang index ea5db50a81e..030f3bcf9e6 100644 --- a/htdocs/langs/tr_TR/languages.lang +++ b/htdocs/langs/tr_TR/languages.lang @@ -1,20 +1,22 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopian +Language_am_ET=Etiyopya Language_ar_AR=Arapça -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=Arapça(Cezayir) Language_ar_EG=Arabça (Mısır) -Language_ar_MA=Arabic (Moroco) +Language_ar_JO=Arapça(Ürdün) +Language_ar_MA=Arapça(Fas) Language_ar_SA=Arapça -Language_ar_TN=Arabic (Tunisia) -Language_ar_IQ=Arabic (Iraq) -Language_as_IN=Assamese -Language_az_AZ=Azerbaijani +Language_ar_TN=Arapça(Tunus) +Language_ar_IQ=Arapça(Irak) +Language_as_IN=Assam dili +Language_az_AZ=Azeri Türkçesi Language_bn_BD=Bengalce -Language_bn_IN=Bengali (India) +Language_bn_IN=Bengalce(Hindistan) Language_bg_BG=Bulgarca Language_bs_BA=Boşnakça Language_ca_ES=Katalanca Language_cs_CZ=Çekçe +Language_cy_GB=Galce Language_da_DA=Danca Language_da_DK=Danca Language_de_DE=Almanca @@ -22,13 +24,14 @@ Language_de_AT=Almanca (Avusturya) Language_de_CH=Almanca (İsviçre) Language_el_GR=Yunanca Language_el_CY=Yunanca (Güney Kıbrıs) +Language_en_AE=İngilizce(Birleşik Arab Emirlikleri) Language_en_AU=İngilizce (Avustralya) Language_en_CA=İngilizce (Kanada) Language_en_GB=İngilizce (Birleşik Krallık) Language_en_IN=İngilizce (Hindistan) Language_en_NZ=İngilizce (Yeni Zelanda) Language_en_SA=İngilizce (Suudi Arabistan) -Language_en_SG=English (Singapore) +Language_en_SG=İngilizce(Singapur) Language_en_US=İngilizce (ABD) Language_en_ZA=İngilizce (Güney Afrika) Language_es_ES=İspanyolca @@ -38,16 +41,16 @@ Language_es_CL=İspanyolca (Şilil) Language_es_CO=İspanyolca (Kolombiya) Language_es_DO=İspanyolca (Dominik Cumhuriyeti) Language_es_EC=İspanyolca (Ekvador) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=İspanyolca (Guatemala) Language_es_HN=İspanyolca (Honduras) Language_es_MX=İspanyolca (Meksika) Language_es_PA=İspanyolca (Panama) Language_es_PY=İspanyolca (Paraguay) Language_es_PE=İspanyolca (Peru) Language_es_PR=İspanyolca (Porto Riko) -Language_es_US=Spanish (USA) +Language_es_US=İspanyolca (ABD) Language_es_UY=İspanyolca (Uruguay) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=İspanyolca (Guatemala) Language_es_VE=İspanyolca (Venezuela) Language_et_EE=Estonyaca Language_eu_ES=Baskça @@ -56,25 +59,25 @@ Language_fi_FI=Fince Language_fr_BE=Fransızca (Belçika) Language_fr_CA=Fransızca (Kanada) Language_fr_CH=Fransızca (İsviçre) -Language_fr_CI=French (Cost Ivory) -Language_fr_CM=French (Cameroun) +Language_fr_CI=Fransızca ( Fildişi Sahilleri) +Language_fr_CM=Fransızca (Kamerun) Language_fr_FR=Fransızca -Language_fr_GA=French (Gabon) +Language_fr_GA=Fransızca (Gabon) Language_fr_NC=Fransızca (Yeni Kaledonya) -Language_fr_SN=French (Senegal) +Language_fr_SN=Fransızca (Senegal) Language_fy_NL=Frizyanca -Language_gl_ES=Galician +Language_gl_ES=Galiçyaca Language_he_IL=İbranice -Language_hi_IN=Hindi (India) +Language_hi_IN=Hinçe(Hindistan) Language_hr_HR=Hırvatça Language_hu_HU=Macarca Language_id_ID=Endonezya dili Language_is_IS=İzlandaca Language_it_IT=İtalyanca -Language_it_CH=Italian (Switzerland) +Language_it_CH=İtalyanca (İsviçre) Language_ja_JP=Japonca Language_ka_GE=Gürcüce -Language_kk_KZ=Kazakh +Language_kk_KZ=Kazak Türkçesi Language_km_KH=Khmerce Language_kn_IN=Kannadaca Language_ko_KR=Korece @@ -83,19 +86,21 @@ Language_lt_LT=Litvanca Language_lv_LV=Letonca Language_mk_MK=Makedonca Language_mn_MN=Moğolca +Language_my_MM=Burma Language_nb_NO=Norveççe (Bokmål) -Language_ne_NP=Nepali +Language_ne_NP=Nepalce Language_nl_BE=Flemenkçe (Belçika) Language_nl_NL=Flemenkçe Language_pl_PL=Lehçe -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=Portekizce (Angola) Language_pt_BR=Portekizce (Brezilya) Language_pt_PT=Portekizce -Language_ro_MD=Romanian (Moldavia) +Language_ro_MD=Rumence (Moldavya) Language_ro_RO=Romence Language_ru_RU=Rusça Language_ru_UA=Rusça (Ukrayna) -Language_tg_TJ=Tajik +Language_ta_IN=Tamilce +Language_tg_TJ=Tacikce Language_tr_TR=Türkçe Language_sl_SI=Slovence Language_sv_SV=İsveççe @@ -106,9 +111,10 @@ Language_sr_RS=Sırpça Language_sw_SW=Svahili Language_th_TH=Tay dili Language_uk_UA=Ukraynaca +Language_ur_PK=Urduca Language_uz_UZ=Özbekçe Language_vi_VN=Vietnamca Language_zh_CN=Çince Language_zh_TW=Çince (Geleneksel) -Language_zh_HK=Chinese (Hong Kong) +Language_zh_HK=Çince (Hong Kong) Language_bh_MY=Malayca diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index f9a71e2c878..b61e48a7b68 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -244,6 +244,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 +345,7 @@ KiloBytes=Kilobayt MegaBytes=Megabayt GigaBytes=Gigabayt TeraBytes=Terabayt -UserAuthor=Ceated by +UserAuthor=Oluşturan UserModif=Updated by b=bayt Kb=Kb @@ -517,6 +518,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 +621,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 +712,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 +802,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ı @@ -1164,3 +1169,14 @@ 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 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/tr_TR/members.lang b/htdocs/langs/tr_TR/members.lang index ae265df3b8a..43db2175ebb 100644 --- a/htdocs/langs/tr_TR/members.lang +++ b/htdocs/langs/tr_TR/members.lang @@ -15,7 +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ı -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=Üyelerin listesi MembersListToValid=Taslak üye listesi (doğrulanacak) MembersListValid=Geçerli üye listesi @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=Üye kimliği +MemberId=Member Id +MemberRef=Member Ref NewMember=Yeni üye MemberType=Üyelik türü MemberTypeId=Üyelik türü kimliği @@ -159,11 +160,11 @@ HTPasswordExport=htpassword dosyası oluşturulması NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Kayıt üzerinde tamamlayıcı işlem -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=Banka hesabı üzerinde doğrudan bir giriş oluştur MoreActionBankViaInvoice=Bir fatura ve banka hesabında bir ödeme oluşturun MoreActionInvoiceOnly=Ödeme yapılmamış bir fatura oluştur -LinkToGeneratedPages=Ziyaret kartları oluştur +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Bu ekran, tüm üyelerinizin ya da belirli bir üyenizin kartvizitlerinin PDF dosyalarnı oluşturmanızı sağlar. DocForAllMembersCards=Bütün üyeler için kartvizit oluştur (Çıkış formatı için gerçek ayar : %s) DocForOneMemberCards=Belirli bir üye için kartvizit oluştur (Çıkış formatı için gerçek ayar : %s) @@ -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/tr_TR/modulebuilder.lang b/htdocs/langs/tr_TR/modulebuilder.lang index 8a7a9583310..6407f3fb8c3 100644 --- a/htdocs/langs/tr_TR/modulebuilder.lang +++ b/htdocs/langs/tr_TR/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=Oluşturulacak modül/uygulamanın adını boşluksuz girin. Kelimeleri ayırmak için büyük harf kullanın (Örneğin: 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=Bulunan oluşturulmuş/düzenlenebilir modüller: %s ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory NewModule=Yeni modül NewObjectInModulebuilder=Yeni nesne +NewDictionary=New dictionary ModuleKey=Modül anahtarı ObjectKey=Nesne anahtarı +DicKey=Dictionary key ModuleInitialized=Module initialized FilesForObjectInitialized=Yeni nesne '%s' için dosyalar başlatıldı FilesForObjectUpdated='%s' nesnesi için dosyalar güncellendi (.sql dosyaları ve .class.php dosyası) @@ -52,7 +55,7 @@ LanguageFile=Dil için dosya ObjectProperties=Nesne Özellikleri 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=BOŞ değil -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='Tümünü ara' için kullanılır DatabaseIndex=Veritabanı dizini FileAlreadyExists=%s dosyası zaten mevcut @@ -94,7 +97,7 @@ LanguageDefDesc=Enter in this files, all the key and the translation for each la MenusDefDesc=Modülünüz tarafından sunulan menüleri burada tanımlayın DictionariesDefDesc=Modülünüz tarafından sağlanan sözlükleri burada tanımlayın 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=%s tablosu mevcut değil TableDropped=%s tablosu silindi InitStructureFromExistingTable=Build the structure array string of an existing table -UseAboutPage=Hakkında sayfasını devre dışı bırak +UseAboutPage=Do not generate the About page UseDocFolder=Dökümantasyon klasörünü devre dışı bırak 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 = Spesifik bir editör URL'si kullanın UseSpecificFamily = Use a specific family UseSpecificAuthor = Spesifik bir yazar kullanın 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=Nesneden bazı belgeler oluşturmak istiyorum +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,15 @@ 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=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. 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 5bb258a0921..c90819941c4 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...veya kendi profilinizi oluşturun
    (manuel modül DemoFundation=Bir derneğin üyelerini yönet DemoFundation2=Bir derneğin üyelerini ve banka hesabını yönet DemoCompanyServiceOnly=Yalnızca firma veya serbest satış hizmeti -DemoCompanyShopWithCashDesk=Kasası olan bir mağazayı yönet +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=Birden fazla faaliyet gösteren firma (tüm ana modüller) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Kapat +Autofill = Autofill diff --git a/htdocs/langs/tr_TR/projects.lang b/htdocs/langs/tr_TR/projects.lang index c1528c0ede8..3cc6cb2b9aa 100644 --- a/htdocs/langs/tr_TR/projects.lang +++ b/htdocs/langs/tr_TR/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Proje etiketi ProjectsArea=Projeler Alanı ProjectStatus=Proje durumu SharedProject=Herkes -PrivateProject=Proje ilgilileri +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=All project I can read (mine + public) AllProjects=Tüm projeler @@ -190,6 +190,7 @@ PlannedWorkload=Planlı işyükü PlannedWorkloadShort=İşyükü ProjectReferers=İlgili öğeler ProjectMustBeValidatedFirst=Projeler önce doğrulanmalıdır +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Zaman ayırmak için projenin ilgili kişisi olarak bir kullanıcı kaynağı atayın InputPerDay=Günlük giriş InputPerWeek=Haftalık giriş @@ -287,3 +288,9 @@ 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=Bitiş tarihi başlama tarihinden önce olamaz +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 diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang index a5d294ec373..57897e1349c 100644 --- a/htdocs/langs/tr_TR/propal.lang +++ b/htdocs/langs/tr_TR/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=Taslak teklif yok CopyPropalFrom=Varolan teklifi kopyalayarak teklif oluştur CreateEmptyPropal=Boş veya Ürünler/Hizmetler listesinden teklif oluştur DefaultProposalDurationValidity=Varsayılan teklif geçerlilik süresi (gün olarak) +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 teklifinin kopyasını oluşturmak istediğinizden emin misiniz? ConfirmReOpenProp=%s teklifini tekrar açmak istediğinizden emin misiniz ? @@ -85,13 +86,26 @@ 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 +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ı IdProduct=Ürün Kimlik Numarası -PrParentLine=Teklif Üst Satırı LineBuyPriceHT=Buy Price Amount net of tax for line SignPropal=Accept proposal RefusePropal=Teklifi reddet Sign=Sign +NoSign=Set not signed PropalAlreadySigned=Proposal already accepted PropalAlreadyRefused=Proposal already refused PropalSigned=Proposal accepted 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 0fa95b5d2ab..1449a05f6cc 100644 --- a/htdocs/langs/tr_TR/ticket.lang +++ b/htdocs/langs/tr_TR/ticket.lang @@ -90,10 +90,10 @@ 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=Notification email from -TicketEmailNotificationFromHelp=Used into ticket message answer by example -TicketEmailNotificationTo=Notifications email to -TicketEmailNotificationToHelp=E-posta bildirimlerini bu adrese gönder. +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 TicketNewEmailBodyLabel=Bir destek bildirimi oluşturulduktan sonra metin mesajı gönderildi TicketNewEmailBodyHelp=Burada belirtilen metin, ortak arayüzden yeni bir destek bildiriminin oluşturulmasını onaylayan e-postaya eklenecektir. Destek bildiriminin danışmanlığına ilişkin bilgiler otomatik olarak eklenir. TicketParamPublicInterface=Genel arayüz kurulumu @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Alıcı boş. E-posta gönderilmed TicketGoIntoContactTab=Onları seçmek için lütfen "Kişiler" sekmesine gidin TicketMessageMailIntro=Introduction TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved. -TicketMessageMailIntroLabelAdmin=E-posta gönderirken mesaja giriş -TicketMessageMailIntroText=Merhaba,
    Bağlantılı olduğunuz bir destek bildirimine yeni bir yanıt gönderildi. Mesajınız şu şekilde:
    -TicketMessageMailIntroHelpAdmin=Bu metin bir destek bildirimine cevap metninden önce eklenecektir. +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=

    Saygılarımla,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=Yanıt e-postasının imzası TicketMessageMailSignatureHelpAdmin=Bu metin cevap mesajının sonuna eklenecektir. TicketMessageHelp=Destek bildirimi kartı üzerindeki mesaj listesinde sadece bu metin kaydedilecektir. @@ -238,9 +252,16 @@ TicketChangeStatus=Durumu değiştir TicketConfirmChangeStatus=Durum değişikliğini onayla: %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=Okunmamış TicketNotCreatedFromPublicInterface=Mevcut değil. Destek bildirimi genel arayüzden oluşturulmadı. ErrorTicketRefRequired=Destek bildirimi referans adı gerekli +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,8 +289,9 @@ TicketNewEmailBody=Yeni bir destek bildirim kaydınızı onaylamak için bu e-po TicketNewEmailBodyCustomer=Bu, hesabınızda yeni bir destek bildiriminin oluşturulduğunu onaylamak için otomatik olarak gönderilen bir e-postadır. TicketNewEmailBodyInfosTicket=Destek bildiriminin izlenmesi için bilgiler TicketNewEmailBodyInfosTrackId=Destek bildirim takip numarası: %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=Aşağıdaki bağlantıya tıklayarak destek bildiriminin ilerlemesini belirli bir arayüzde görebilirsiniz +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. @@ -291,6 +313,10 @@ NewUser=Yeni Kullanıcı NumberOfTicketsByMonth=Aylık destek bildirim sayısı NbOfTickets=Destek bildirim sayısı # 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=%s destek bildirimi güncellendi TicketNotificationEmailBody=%s destek bildiriminin güncellendiği konusunda sizi bilgilendirmek için bu e-posta otomatik olarak gönderilmiştir TicketNotificationRecipient=Bildirim alıcısı diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang index c6fbe54dcde..cb05fc38d3f 100644 --- a/htdocs/langs/tr_TR/users.lang +++ b/htdocs/langs/tr_TR/users.lang @@ -114,7 +114,7 @@ UserLogoff=Kullanıcı çıkış yaptı UserLogged=Kullanıcı giriş yaptı DateOfEmployment=Çalışma Tarihi DateEmployment=Çalışma -DateEmploymentstart=İşe Başlama Tarihi +DateEmploymentStart=İşe Başlama Tarihi DateEmploymentEnd=İşi Bırakma Tarihi RangeOfLoginValidity=Erişim geçerliliği tarih aralığı CantDisableYourself=Kendi kullanıcı kaydınızı devre dışı bırakamazsınız @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Varsayılan olarak, doğrulayıcı kullanıcını UserPersonalEmail=Kişisel eposta UserPersonalMobile=Kişisel cep telefonu 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/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index 4ff8d35ff33..3f85bb2b132 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -1,5 +1,5 @@ # Dolibarr language file - en_US - Accountancy (Double entries) -Accountancy=Accountancy +Accountancy=Бухгалтерський облік Accounting=Облік ACCOUNTING_EXPORT_SEPARATORCSV=Розділювач колонок для файлу експорту ACCOUNTING_EXPORT_DATE=Формат дати для файлу експорту @@ -14,424 +14,446 @@ ACCOUNTING_EXPORT_ENDLINE=Виберіть тип перенесення ряд ACCOUNTING_EXPORT_PREFIX_SPEC=Задати префікс для назви файлу ThisService=Ця послуга ThisProduct=Цей товар -DefaultForService=Default for service -DefaultForProduct=Default for product -ProductForThisThirdparty=Product for this thirdparty -ServiceForThisThirdparty=Service for this thirdparty -CantSuggest=Can't suggest +DefaultForService=За замовчуванням для обслуговування +DefaultForProduct=За замовчуванням для продукту +ProductForThisThirdparty=Продукт для цієї третьої сторони +ServiceForThisThirdparty=Сервіс для цієї третьої сторони +CantSuggest=Не можу запропонувати AccountancySetupDoneFromAccountancyMenu=Більшість налаштувань обліку здійснюється у меню %s -ConfigAccountingExpert=Configuration of the module accounting (double entry) +ConfigAccountingExpert=Налаштування модуля обліку (подвійний запис) Journalization=Журналізація Journals=Журнали JournalFinancial=Фінансові журнали 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 +Chartofaccounts=План рахунків +ChartOfSubaccounts=План рахунків фізичних осіб +ChartOfIndividualAccountsOfSubsidiaryLedger=План індивідуальних рахунків допоміжної книги +CurrentDedicatedAccountingAccount=Поточний виділений рахунок +AssignDedicatedAccountingAccount=Новий обліковий запис для призначення +InvoiceLabel=Етикетка рахунку +OverviewOfAmountOfLinesNotBound=Огляд кількості рядків, не прив’язаних до бухгалтерського рахунку +OverviewOfAmountOfLinesBound=Огляд кількості рядків, які вже прив’язані до бухгалтерського рахунку OtherInfo=Інша інформація DeleteCptCategory=Видалити обліковий рахунок з групи -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group? +ConfirmDeleteCptCategory=Ви впевнені, що хочете видалити цей обліковий запис із групи облікових записів? JournalizationInLedgerStatus=Статус журналізації -AlreadyInGeneralLedger=Already transferred to accounting journals and ledger -NotYetInGeneralLedger=Not yet transferred to accouting journals and ledger +AlreadyInGeneralLedger=Вже переведено в бухгалтерські журнали та книгу +NotYetInGeneralLedger=Ще не переведено в бухгалтерські журнали та бухгалтерську книгу GroupIsEmptyCheckSetup=Група порожня, перевірте налаштування персоніфікованої облікової групи DetailByAccount=Показати відомості по рахунку AccountWithNonZeroValues=Рахунки з ненульовими значеннями ListOfAccounts=Список рахунків -CountriesInEEC=Countries in EEC -CountriesNotInEEC=Countries not in EEC -CountriesInEECExceptMe=Countries in EEC except %s -CountriesExceptMe=All countries except %s -AccountantFiles=Export source documents +CountriesInEEC=Країни ЄЕС +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. -ExportAccountingSourceDocHelp2=To export your journals, use the menu entry %s - %s. -VueByAccountAccounting=View by accounting account -VueBySubAccountAccounting=View by accounting subaccount +ExportAccountingSourceDocHelp2=Щоб експортувати свої журнали, використовуйте пункт меню %s - %s. +VueByAccountAccounting=Переглянути за обліковим записом +VueBySubAccountAccounting=Перегляд за бухгалтерським субрахунком -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=Основний обліковий запис для клієнтів, не визначений у налаштуваннях +MainAccountForSuppliersNotDefined=Основний обліковий запис для постачальників, не визначених у налаштуваннях +MainAccountForUsersNotDefined=Основний обліковий запис для користувачів, не визначених під час налаштування +MainAccountForVatPaymentNotDefined=Основний рахунок для сплати ПДВ не визначено в налаштуваннях +MainAccountForSubscriptionPaymentNotDefined=Основний обліковий запис для оплати передплати не визначено в налаштуваннях -AccountancyArea=Accounting area +AccountancyArea=Зона обліку AccountancyAreaDescIntro=Використання облікового модуля здійснюється в декілька кроків: AccountancyAreaDescActionOnce=Наступні дії зазвичай виконуються лише один раз або раз на рік... -AccountancyAreaDescActionOnceBis=Наступні кроки потрібні щоб зберегти ваш час у майбутньому за допомогою підстановки коректних облікових рахунків по замовчуванню при здійсненні журналізації (внесенні записів в Журнали чи Головну книгу) +AccountancyAreaDescActionOnceBis=Наступні кроки слід зробити, щоб заощадити ваш час у майбутньому, запропонувавши вам автоматично правильний обліковий запис за замовчуванням під час передачі даних в обліку AccountancyAreaDescActionFreq=Наступні кроки зазвичай виконуються раз на місяць, раз на тиждень або раз на день для дуже великих компаній... -AccountancyAreaDescJournalSetup=КРОК %s: Створіть або виберіть вміст з списку ваших журналів з меню %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=КРОК %s: Перевірте вміст свого списку журналів у меню %s +AccountancyAreaDescChartModel=КРОК %s: Перевірте наявність моделі плану рахунків або створіть її з меню %s +AccountancyAreaDescChart=КРОК %s: Виберіть та|або заповніть план рахунків у меню %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=КРОК %s: Визначте облікові рахунки для кожної Ставки ПДВ. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescDefault=КРОК %s: Визначте облікові рахунки за замовчуванням. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescExpenseReport=КРОК %s: Визначте облікові рахунки за замовчуванням для кожного типу звіту про витрати. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescSal=КРОК %s: Визначте рахунки бухгалтерського обліку за замовчуванням для виплати заробітної плати. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescContrib=КРОК %s: Визначте рахунки бухгалтерського обліку за замовчуванням для податків (спеціальних витрат). Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescDonation=КРОК %s: Визначте облікові рахунки за замовчуванням для пожертв. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescSubscription=КРОК %s: Визначте облікові записи за замовчуванням для підписки членів. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescMisc=КРОК %s: Визначте обов'язковий рахунок за замовчуванням і рахунки обліку за замовчуванням для різних операцій. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescLoan=КРОК %s: Визначте рахунки обліку за замовчуванням для позик. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescBank=КРОК %s: Визначте облікові рахунки та код журналу для кожного банку та фінансових рахунків. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescProd=КРОК %s: Визначте облікові рахунки у своїх Продуктах/Послугах. Для цього скористайтеся пунктом меню %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=КРОК %s: Перевірте, чи виконано зв’язування між наявними рядками %s та обліковим рахунком, тому програма зможе реєструвати транзакції в Ledger одним клацанням миші. Повністю відсутні прив’язки. Для цього скористайтеся пунктом меню %s. +AccountancyAreaDescWriteRecords=КРОК %s: Запишіть транзакції до книги. Для цього перейдіть до меню %s і натисніть кнопку %s a0a65dc07z. +AccountancyAreaDescAnalyze=КРОК %s: Додайте або відредагуйте наявні транзакції та створіть звіти та експортуйте. -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescClosePeriod=КРОК %s: Закрийте період, щоб ми не могли вносити зміни в майбутньому. -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=Обов’язковий крок налаштування не виконано (журнал облікових кодів не визначено для всіх банківських рахунків) +Selectchartofaccounts=Виберіть активний план рахунків +ChangeAndLoad=Змінити і завантажити 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=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 -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 +SubledgerAccount=Рахунок субкниги +SubledgerAccountLabel=Мітка облікового запису Subledger +ShowAccountingAccount=Показати бухгалтерський рахунок +ShowAccountingJournal=Показати бухгалтерський журнал +ShowAccountingAccountInLedger=Показати бухгалтерський рахунок у книзі +ShowAccountingAccountInJournals=Показати бухгалтерський облік у журналах +AccountAccountingSuggest=Запропоновано бухгалтерський рахунок +MenuDefaultAccounts=Облікові записи за замовчуванням +MenuBankAccounts=Банківські рахунки +MenuVatAccounts=ПДВ рахунки +MenuTaxAccounts=Податкові рахунки +MenuExpenseReportAccounts=Звіт про витрати +MenuLoanAccounts=Позикові рахунки +MenuProductsAccounts=Рахунки продуктів +MenuClosureAccounts=Закриття рахунків +MenuAccountancyClosure=Закриття +MenuAccountancyValidationMovements=Підтвердити рухи +ProductsBinding=Рахунки продуктів +TransferInAccounting=Переведення в бухгалтерію +RegistrationInAccounting=Запис в бухгалтерії +Binding=Прив’язка до рахунків +CustomersVentilation=Прив’язка рахунку-фактури клієнта +SuppliersVentilation=Прив’язка рахунків-фактур постачальника +ExpenseReportsVentilation=Прив’язка до звіту про витрати +CreateMvts=Створити нову транзакцію +UpdateMvts=Модифікація транзакції +ValidTransaction=Підтвердити транзакцію +WriteBookKeeping=Записати операції в бухгалтерському обліку +Bookkeeping=Головна книга +BookkeepingSubAccount=Підкнига +AccountBalance=Баланс +ObjectsRef=Посилання на вихідний об'єкт +CAHTF=Загальна сума закупівлі постачальника до оподаткування +TotalExpenseReport=Звіт про загальні витрати +InvoiceLines=Рядки рахунків-фактур для прив’язки +InvoiceLinesDone=Зв'язані рядки рахунків-фактур +ExpenseReportLines=Рядки звітів про витрати для прив’язки +ExpenseReportLinesDone=Зв'язані рядки звітів про витрати +IntoAccount=Прив’язка рядка до бухгалтерського рахунку +TotalForAccount=Разом бухгалтерський рахунок -Ventilate=Bind -LineId=Id line +Ventilate=Зв’язати +LineId=Ідентифікаційний рядок Processing=Processing -EndProcessing=Process terminated. +EndProcessing=Процес припинено. 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 +LineOfExpenseReport=Рядок звіту про витрати +NoAccountSelected=Не вибрано жодного облікового запису +VentilatedinAccount=Успішно прив’язано до облікового запису +NotVentilatedinAccount=Не прив'язаний до бухгалтерського рахунку +XLineSuccessfullyBinded=%s продукти/послуги успішно пов’язані з обліковим записом +XLineFailedToBeBinded=%s продукти/послуги не були прив’язані до жодного облікового запису -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=Максимальна кількість рядків на сторінці списку та прив’язки (рекомендовано: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Почніть сортування сторінки «Прив’язка до справи» за останніми елементами +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Почніть сортування сторінки «Прив’язка виконана» за останніми елементами -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=Скоротити опис продуктів і послуг у списках після x символів (Найкращий = 50) +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=Увімкнути експорт чернетки в журналі +ACCOUNTANCY_COMBO_FOR_AUX=Увімкнути комбінований список для дочірнього облікового запису (може працювати повільно, якщо у вас багато третіх сторін, порушує можливість пошуку на частині вартості) +ACCOUNTING_DATE_START_BINDING=Визначте дату початку зв’язування та перенесення в бухгалтерію. Нижче цієї дати операції не будуть передані до бухгалтерського обліку. +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_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=Облік результатів (прибуток) +ACCOUNTING_RESULT_LOSS=Облік результатів (збиток) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Журнал закриття -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer -TransitionalAccount=Transitional bank transfer account +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Бухгалтерський рахунок перехідного банківського переказу +TransitionalAccount=Перехідний рахунок банківського переказу -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=Бухгалтерський рахунок очікування +DONATION_ACCOUNTINGACCOUNT=Обліковий рахунок для реєстрації пожертв +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Обліковий запис для реєстрації підписок -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_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_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 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=Обліковий рахунок за замовчуванням для придбаних послуг (використовується, якщо не визначено в сервісному листі) +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=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 +LabelOperation=Операція з етикеткою +Sens=Напрямок +AccountingDirectionHelp=Для бухгалтерського рахунку клієнта використовуйте Кредит для запису платежу, який ви отримали
    Для бухгалтерського рахунку постачальника, використовуйте Дебет, щоб записати здійснений вами платіж +LetteringCode=Літерний код +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 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) +JournalLabel=Етикетка журналу +NumPiece=Номер штуки +TransactionNumShort=Кількість транзакції +AccountingCategory=Спеціальна група +GroupByAccountAccounting=Групувати за рахунками Головної книги +GroupBySubAccountAccounting=Групувати за рахунками підкниги +AccountingAccountGroupsDesc=Тут можна визначити кілька груп облікових рахунків. Вони будуть використовуватися для персоніфікованих бухгалтерських звітів. +ByAccounts=За рахунками +ByPredefinedAccountGroups=За попередньо визначеними групами +ByPersonalizedAccountGroups=За персоналізованими групами +ByYear=За роками +NotMatch=Не встановлено +DeleteMvt=Видалити деякі рядки з обліку +DelMonth=Місяць для видалення +DelYear=Рік для видалення +DelJournal=Журнал для видалення +ConfirmDeleteMvt=Це призведе до видалення всіх рядків бухгалтерського обліку за рік/місяць та/або для конкретного журналу (потрібен принаймні один критерій). Вам доведеться повторно використовувати функцію '%s', щоб видалений запис повернути до книги. +ConfirmDeleteMvtPartial=Це призведе до видалення транзакції з бухгалтерського обліку (будуть видалені всі рядки, пов’язані з тією ж операцією) FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal +ExpenseReportsJournal=Журнал звітів про витрати 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=Це подання записів, які прив’язані до бухгалтерського рахунку і можуть бути записані в Журнали та Головну книгу. +VATAccountNotDefined=Рахунок ПДВ не визначено +ThirdpartyAccountNotDefined=Обліковий запис третьої сторони не визначено +ProductAccountNotDefined=Рахунок для продукту не визначено +FeeAccountNotDefined=Плата за рахунок не визначена +BankAccountNotDefined=Рахунок для банку не визначено CustomerInvoicePayment=Payment of invoice customer -ThirdPartyAccount=Third-party account -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +ThirdPartyAccount=Сторонній обліковий запис +NewAccountingMvt=Нова транзакція +NumMvts=Кількість транзакцій +ListeMvts=Список рухів 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 +AddCompteFromBK=Додайте облікові записи до групи +ReportThirdParty=Перелік стороннього облікового запису +DescThirdPartyReport=Перегляньте тут список сторонніх клієнтів і постачальників та їхні облікові записи 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 +UnknownAccountForThirdparty=Невідомий сторонній обліковий запис. Ми будемо використовувати %s +UnknownAccountForThirdpartyBlocking=Невідомий сторонній обліковий запис. Помилка блокування +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Обліковий запис Subledger не визначено, стороння сторона чи користувач невідомі. Ми будемо використовувати %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownSubledgerIgnored=Сторона невідома та підкнига не визначена в платіжі. Ми залишимо значення облікового запису підкниги порожнім. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Обліковий запис Subledger не визначено, стороння сторона чи користувач невідомі. Помилка блокування. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Невідомий обліковий запис третьої сторони та обліковий запис очікування не визначено. Помилка блокування +PaymentsNotLinkedToProduct=Оплата не пов’язана з жодним продуктом/послугою +OpeningBalance=Початковий баланс +ShowOpeningBalance=Показати початковий баланс +HideOpeningBalance=Приховати початковий баланс +ShowSubtotalByGroup=Показати проміжний підсумок за рівнем -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=Група рахунку +PcgtypeDesc=Групи облікових записів використовуються як попередньо визначені критерії «фільтра» та «групування» для деяких бухгалтерських звітів. Наприклад, «ДОХОД» або «ВИТРАТ» використовуються як групи для обліку рахунків продуктів для побудови звіту про витрати/доходи. -Reconcilable=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=Перегляньте тут список рядків рахунків-фактур клієнта, прив’язаних (або ні) до облікового запису продукту +DescVentilMore=У більшості випадків, якщо ви використовуєте попередньо визначені продукти чи послуги та встановите номер рахунку на картці продукту/послуги, програма зможе зробити всі прив’язки між вашими рядками рахунків-фактур та обліковим рахунком вашого плану рахунків лише в одним натисканням кнопки "%s" . Якщо обліковий запис не було встановлено на картках продуктів/послуг або якщо у вас все ще є рядки, не прив’язані до облікового запису, вам доведеться зробити прив’язку вручну з меню « %s «. +DescVentilDoneCustomer=Ознайомтеся зі списком рядків рахунків-фактур клієнтів та їх обліковим записом продукції +DescVentilTodoCustomer=Прив’язуйте рядки рахунків-фактур, які ще не зв’язані з обліковим записом продукту +ChangeAccount=Змініть обліковий запис обліку продуктів/послуг для вибраних рядків на такий обліковий запис: 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=Ознайомтеся зі списком рядків рахунків-фактур постачальника, прив’язаних або ще не прив’язаних до облікового запису продукту (відображаються лише записи, які ще не передані в бухгалтерії) +DescVentilDoneSupplier=Ознайомтеся зі списком рядків рахунків-фактур постачальників та їх бухгалтерського обліку +DescVentilTodoExpenseReport=Прив’язати рядки звіту про витрати, які ще не зв’язані з рахунком обліку комісій +DescVentilExpenseReport=Ознайомтеся зі списком рядків звіту про витрати, прив’язаних (або ні) до рахунку обліку комісій +DescVentilExpenseReportMore=Якщо ви налаштуєте рахунок бухгалтерського обліку за типом рядків звіту про витрати, програма зможе зробити всі прив’язки між рядками звіту про витрати та обліковим рахунком вашого плану рахунків одним натисканням кнопки "%s" a0a65d071f6fc. Якщо обліковий запис не встановлено у словнику зборів або якщо у вас все ще є рядки, не прив’язані до жодного облікового запису, вам доведеться зробити прив’язку вручну з меню « %s «. +DescVentilDoneExpenseReport=Ознайомтеся з переліком рядків звітів про витрати та їх обліковим рахунком -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=Щорічне закриття +DescClosure=Consult here the number of movements by month not yet validated & locked +OverviewOfMovementsNotValidated=Огляд переміщень не підтверджених і заблокованих +AllMovementsWereRecordedAsValidated=Усі рухи були зафіксовані як підтверджені та заблоковані +NotAllMovementsCouldBeRecordedAsValidated=Не всі переміщення можна записати як підтверджені та заблоковані +ValidateMovements=Перевірити та заблокувати запис... +DescValidateMovements=Будь-яка зміна чи видалення записів, написів та видалення буде заборонено. Усі записи для вправи мають бути підтверджені, інакше закриття буде неможливим -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +ValidateHistory=Прив’язувати автоматично +AutomaticBindingDone=Автоматичне прив’язування виконано (%s) – Автоматичне прив’язування неможливе для деяких записів (%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 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 +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s +Balancing=Балансування +FicheVentilation=Картка для прив'язки +GeneralLedgerIsWritten=Операції записуються в Книгу +GeneralLedgerSomeRecordWasNotRecorded=Деякі транзакції не вдалося зареєструвати. Якщо немає іншого повідомлення про помилку, це, ймовірно, тому, що вони вже були внесені в журнал. +NoNewRecordSaved=Більше немає запису для передачі +ListOfProductsWithoutAccountingAccount=Список продуктів, не прив'язаних до жодного бухгалтерського рахунку +ChangeBinding=Змінити прив'язку +Accounted=Облік у книзі +NotYetAccounted=На бухгалтерію ще не передано +ShowTutorial=Показати підручник +NotReconciled=Не помирилися +WarningRecordWithoutSubledgerAreExcluded=Попередження, усі рядки без визначеного облікового запису підкниги фільтруються та виключаються з цього перегляду +AccountRemovedFromCurrentChartOfAccount=Бухгалтерський рахунок, який не існує в поточному плані рахунків ## 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) +BindingOptions=Варіанти прив'язки +ApplyMassCategories=Застосовуйте масові категорії +AddAccountFromBookKeepingWithNoCategories=Доступний обліковий запис ще не в персоналізованій групі +CategoryDeleted=Категорію для облікового запису видалено +AccountingJournals=Бухгалтерські журнали +AccountingJournal=Бухгалтерський журнал +NewAccountingJournal=Новий бухгалтерський журнал +ShowAccountingJournal=Показати бухгалтерський журнал +NatureOfJournal=Характер журналу +AccountingJournalType1=Різні операції +AccountingJournalType2=Продажі +AccountingJournalType3=Покупки +AccountingJournalType4=банк +AccountingJournalType5=Звіт про витрати +AccountingJournalType8=Інвентаризація +AccountingJournalType9=Має-новий +ErrorAccountingJournalIsAlreadyUse=Цим журналом вже користуються +AccountingAccountForSalesTaxAreDefinedInto=Примітка. Обліковий рахунок податку з продажів визначається в меню %s - %s a09f14fz +NumberOfAccountancyEntries=Кількість записів +NumberOfAccountancyMovements=Кількість рухів +ACCOUNTING_DISABLE_BINDING_ON_SALES=Вимкнути прив'язку та переказ в бухгалтерії по продажам (рахунки клієнта в обліку не враховуватимуться) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Вимкнути прив'язку та переказ в обліку закупівель (рахунки постачальника не будуть враховуватися в обліку) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Вимкнути прив'язку та перенесення в бухгалтерії у звітах про витрати (звіти про витрати не враховуватимуться в бухгалтерії) ## 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 +NotifiedExportDate=Позначте експортовані рядки як експортовані (щоб змінити рядок, вам потрібно буде видалити всю транзакцію та повторно перенести її в облік) +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=Перевірка дати та блокування +ConfirmExportFile=Підтвердження створення файлу експорту бухгалтерського обліку? +ExportDraftJournal=Експортувати чернетку журналу 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 +Modelcsv_CEGID=Експорт для CEGID Expert Comptabilité +Modelcsv_COALA=Експорт для шавлії коали +Modelcsv_bob50=Експорт для шавлії BOB 50 +Modelcsv_ciel=Експорт для Sage50, Ciel Compta або Compta Evo. (Формат XIMPORT) +Modelcsv_quadratus=Експорт для Quadratus QuadraCompta +Modelcsv_ebp=Експорт для EBP +Modelcsv_cogilog=Експорт для Cogilog +Modelcsv_agiris=Експорт для Agiris Isacompta +Modelcsv_LDCompta=Експорт для LD Compta (v9) (тест) +Modelcsv_LDCompta10=Експорт для LD Compta (v10 і вище) +Modelcsv_openconcerto=Експорт для OpenConcerto (тест) +Modelcsv_configurable=Експорт CSV можна налаштувати +Modelcsv_FEC=Експортувати FEC +Modelcsv_FEC2=Експортувати FEC (із записом генерації дат / зміненим документом) +Modelcsv_Sage50_Swiss=Експорт для Sage 50 Швейцарія +Modelcsv_winfic=Експорт для Winfic - eWinfic - WinSis Compta +Modelcsv_Gestinumv3=Експорт для Gestinum (v3) +Modelcsv_Gestinumv5=Експорт для Gestinum (v5) +Modelcsv_charlemagne=Експорт для Апліма Карла Великого +ChartofaccountsId=План рахунків Ід ## 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=Початковий облік +InitAccountancyDesc=Цю сторінку можна використовувати для ініціалізації облікового запису для продуктів і послуг, для яких не визначено обліковий запис для продажів і покупок. +DefaultBindingDesc=Цю сторінку можна використовувати, щоб налаштувати обліковий запис за замовчуванням для зв’язування записів транзакцій про виплати заробітної плати, пожертвування, податки та ПДВ, якщо ще не було налаштовано конкретний обліковий запис. +DefaultClosureDesc=Цю сторінку можна використовувати для встановлення параметрів, що використовуються для закриття обліку. +Options=Параметри +OptionModeProductSell=Режим розпродажів +OptionModeProductSellIntra=Продажі режиму експортуються в ЄЕС +OptionModeProductSellExport=Режим продажів експортується в інші країни +OptionModeProductBuy=Режим покупок +OptionModeProductBuyIntra=Режим покупок, імпортований в ЄЕС +OptionModeProductBuyExport=Режим придбаний імпортований з інших країн +OptionModeProductSellDesc=Показати всі товари з обліковим записом для продажу. +OptionModeProductSellIntraDesc=Показати всі товари з обліковим записом для продажу в ЄЕС. +OptionModeProductSellExportDesc=Показати всі товари з обліковим записом інших закордонних продажів. +OptionModeProductBuyDesc=Показати всі товари з обліковим записом покупок. +OptionModeProductBuyIntraDesc=Показати всі товари з обліковим записом покупок в ЄЕС. +OptionModeProductBuyExportDesc=Показати всі товари з обліком інших закупівель за кордоном. +CleanFixHistory=Вилучити код обліку з рядків, які не існують, у плани рахунків +CleanHistory=Скиньте всі прив’язки для вибраного року +PredefinedGroups=Попередньо визначені групи +WithoutValidAccount=Без дійсного виділеного облікового запису +WithValidAccount=З дійсним виділеним обліковим записом +ValueNotIntoChartOfAccount=Це значення бухгалтерського рахунку не існує в плані рахунків +AccountRemovedFromGroup=Обліковий запис видалено з групи +SaleLocal=Місцевий розпродаж +SaleExport=Продаж на експорт +SaleEEC=Продаж в ЄЕС +SaleEECWithVAT=Продаж в ЄЕС з ПДВ не є нульовим, тому ми припускаємо, що це НЕ внутрішньокомунальний продаж, а запропонований обліковий запис є стандартним рахунком продукту. +SaleEECWithoutVATNumber=Продаж в ЄЕС без ПДВ, але ідентифікаційний номер платника ПДВ третьої сторони не визначений. Ми повертаємось до облікового запису продукту для стандартних продажів. За потреби ви можете виправити ідентифікаційний номер платника ПДВ третьої сторони або обліковий запис продукту. +ForbiddenTransactionAlreadyExported=Заборонено: трансакцію підтверджено та/або експортовано. +ForbiddenTransactionAlreadyValidated=Заборонено: трансакцію підтверджено. ## Dictionary -Range=Range of accounting account -Calculated=Calculated +Range=Діапазон бухгалтерського рахунку +Calculated=Розраховано Formula=Формула +## Reconcile +Unlettering=Не погоджуватись +AccountancyNoLetteringModified=Звірка не змінена +AccountancyOneLetteringModifiedSuccessfully=Одне узгодження успішно змінено +AccountancyLetteringModifiedSuccessfully=%s узгодженнь успішно змінено +AccountancyNoUnletteringModified=Неузгодження не змінене +AccountancyOneUnletteringModifiedSuccessfully=Одне неузгодження успішно змінено +AccountancyUnletteringModifiedSuccessfully=%s неузгодженнь успішно змінено + +## Confirm box +ConfirmMassUnlettering=Підтвердження масового неузгодження +ConfirmMassUnletteringQuestion=Ви впевнені, що хочете скасувати узгодження вибраних записів %s? +ConfirmMassDeleteBookkeepingWriting=Підтвердження масового видалення +ConfirmMassDeleteBookkeepingWritingQuestion=Це призведе до видалення транзакції з обліку (усі рядки, пов’язані з тією ж транзакцією, будуть видалені). Ви впевнені, що хочете видалити вибраний запис(и) %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 +SomeMandatoryStepsOfSetupWereNotDone=Деякі обов’язкові кроки налаштування не були виконані, будь ласка, виконайте їх +ErrorNoAccountingCategoryForThisCountry=Немає доступної групи облікових записів для країни %s (Див. Головну сторінку - Налаштування - Словники) +ErrorInvoiceContainsLinesNotYetBounded=Ви намагаєтеся зареєструвати деякі рядки рахунка-фактури %s , але деякі інші рядки ще не прив’язані до бухгалтерського рахунку. Журналізувати всі рядки рахунків-фактур для цього рахунка-фактури відмовлено. +ErrorInvoiceContainsLinesNotYetBoundedShort=Деякі рядки в рахунку-фактурі не прив’язані до бухгалтерського рахунку. +ExportNotSupported=Налаштований формат експорту не підтримується на цій сторінці +BookeppingLineAlreayExists=Вже наявні рядки в бухгалтерії +NoJournalDefined=Журнал не визначено +Binded=Лінії зв'язані +ToBind=Лінії для зв’язування +UseMenuToSetBindindManualy=Рядки ще не зв’язані, скористайтеся меню %s , щоб зробити прив’язку вручну +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=На жаль, цей модуль несумісний з експериментальною функцією рахунків-фактур +AccountancyErrorMismatchLetterCode=Невідповідність коду узгодження +AccountancyErrorMismatchBalanceAmount=Залишок (%s) не дорівнює 0 +AccountancyErrorLetteringBookkeeping=Сталися помилки щодо транзакцій: %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) +ImportAccountingEntries=Бухгалтерські проводки +ImportAccountingEntriesFECFormat=Бухгалтерські проводки - формат FEC +FECFormatJournalCode=Журнал кодів (JournalCode) +FECFormatJournalLabel=Журнал етикеток (JournalLib) +FECFormatEntryNum=Номер частини (EcritureNum) +FECFormatEntryDate=Дата випуску (EcritureDate) +FECFormatGeneralAccountNumber=Загальний номер рахунку (CompteNum) +FECFormatGeneralAccountLabel=Загальна мітка облікового запису (CompteLib) +FECFormatSubledgerAccountNumber=Номер рахунку субкниги (CompAuxNum) +FECFormatSubledgerAccountLabel=Номер рахунку Subledger (CompAuxLib) +FECFormatPieceRef=Посилання на частину (PieceRef) +FECFormatPieceDate=Створення дати фрагмента (PieceDate) +FECFormatLabelOperation=Операція з етикеткою (EcritureLib) +FECFormatDebit=Дебет (дебет) +FECFormatCredit=Кредит (кредит) +FECFormatReconcilableCode=Узгоджуваний код (EcritureLet) +FECFormatReconcilableDate=Узгоджувана дата (DateLet) +FECFormatValidateDate=Перевірена дата товару (ValidDate) +FECFormatMulticurrencyAmount=Мультивалютна сума (Montantdevise) +FECFormatMulticurrencyCode=Мультивалютний код (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=Експорт дати +WarningReportNotReliable=Попередження, цей звіт не базується на Книзі, тому не містить транзакції, змінені вручну в Книзі. Якщо ваша журнальність оновлена, бухгалтерський облік буде точнішим. +ExpenseReportJournal=Журнал звітів про витрати +InventoryJournal=Інвентарний журнал -NAccounts=%s accounts +NAccounts=%s облікові записи diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index 23782246b85..733c3d9a009 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/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=Видавець @@ -39,9 +39,9 @@ UnlockNewSessions=Зняти блокування з'єднання YourSession=Ваш сеанс Sessions=Сеанси користувачів WebUserGroup=Користувач / група веб-сервера -PermissionsOnFiles=Permissions on files -PermissionsOnFilesInWebRoot=Permissions on files in web root directory -PermissionsOnFile=Permissions on file %s +PermissionsOnFiles=Дозволи на файли +PermissionsOnFilesInWebRoot=Дозволи на файли в кореневому каталозі веб-сайту +PermissionsOnFile=Дозволи на файл %s NoSessionFound=Здається, що ваша конфігурація PHP не дозволяє перелічити активні сеанси. Каталог, який використовується для збереження сеансів ( %s ), може бути захищений (наприклад, дозволами ОС або директивою PHP open_basedir). DBStoringCharset=Кодування бази даних для зберігання інформації DBSortingCharset=Кодування бази даних для сортування даних @@ -55,19 +55,19 @@ InternalUser=Внутрішній користувач ExternalUser=Зовнішній користувач InternalUsers=Внутрішні користувачі ExternalUsers=Зовнішні користувачі -UserInterface=User interface +UserInterface=Інтерфейс користувача GUISetup=Зовнішній вигляд SetupArea=Налаштування UploadNewTemplate=Завантажити новий шаблон(и) FormToTestFileUploadForm=Форма для тестування завантаження файлу (відповідно до налаштування) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +ModuleMustBeEnabled=Модуль/програма %s має бути увімкнено +ModuleIsEnabled=Модуль/додаток %s увімкнено IfModuleEnabled=Примітка: так діє, лише якщо модуль %s увімкнено RemoveLock=Видаліть або перейменуйте файл %s , якщо він існує, щоб дозволити використання інструменту "Оновити / Встановити". RestoreLock=Відновіть файл %s , лише з дозволом для читання, щоб відключити подальше використання інструменту "Оновити / Встановити". SecuritySetup=Налаштування безпеки -PHPSetup=PHP setup -OSSetup=OS setup +PHPSetup=Налаштування PHP +OSSetup=Налаштування ОС SecurityFilesDesc=Встановлені тут параметри пов’язані з безпекою щодо завантаження файлів. ErrorModuleRequirePHPVersion=Помилка, для цього модуля потрібна версія PHP %s або вище ErrorModuleRequireDolibarrVersion=Помилка, для цього модуля потрібна версія Dolibarr %s або вище @@ -77,21 +77,21 @@ Dictionary=Довідники 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=Чекати натискання клавіші перед завантаженням вмісту списку контрагентів
    Це може підвищити продуктивність, якщо у вас є велика кількість контрагентів, але це менш зручно. -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. +DelaiedFullListToSelectContact=Зачекайте, поки не буде натиснута клавіша, перш ніж завантажувати вміст комбінованого списку контактів.
    Це може підвищити продуктивність, якщо у вас велика кількість контактів, але це менш зручно. NumberOfKeyToSearch=Кількість символів для запуску пошуку: %s NumberOfBytes=Кількість байт SearchString=Рядок пошуку NotAvailableWhenAjaxDisabled=Недоступно, коли Ajax відключений AllowToSelectProjectFromOtherCompany=В документі контрагента можна вибрати проект, пов'язаний з іншим контрагентом -TimesheetPreventAfterFollowingMonths=Prevent recording time spent after the following number of months +TimesheetPreventAfterFollowingMonths=Заборонити час запису через наступну кількість місяців JavascriptDisabled=JavaScript відключений UsePreviewTabs=Використовуйте вкладки попереднього перегляду ShowPreview=Показати попередній перегляд -ShowHideDetails=Show-Hide details +ShowHideDetails=Показати-Сховати деталі PreviewNotAvailable=Попередній перегляд недоступний ThemeCurrentlyActive=Тема наразі активна MySQLTimeZone=TimeZone MySql (база даних) @@ -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=Приклад для ClamAv Daemon (потрібен clamav-daemon): /usr/bin/clamdscan
    Приклад для ClamWin (дуже-дуже повільно): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Решта параметрів командного рядка @@ -120,7 +120,7 @@ MultiCurrencySetup=Налаштування багато-валютних про MenuLimits=Обмеження та точність MenuIdParent=ID батьківського меню DetailMenuIdParent=ID батьківського меню (порожній для кореневого меню) -ParentID=Parent ID +ParentID=Батьківський ідентифікатор DetailPosition=впорядкуйте номери, щоб визначити положення меню AllMenus=Всі NotConfigured=Модуль/додаток не налаштовано @@ -161,8 +161,8 @@ SystemToolsAreaDesc=Ця область забезпечує функції ад Purge=Чистка PurgeAreaDesc=Ця сторінка дозволяє видалити всі файли, що були створені або зберігаються Dolibarr (тимчасові файли або всі файли в каталозі %s ). Використовувати цю функцію зазвичай не потрібно. Вона надається як рішення для користувачів, у яких Dolibarr розміщений у провайдера, що не надає дозволу на видалення файлів, створених веб-сервером. PurgeDeleteLogFile=Видалення файлів журналів, включаючи %s , визначених для модуля Syslog (немає ризику втрати даних) -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) +PurgeDeleteTemporaryFiles=Видаліть усі журнали та тимчасові файли (без ризику втрати даних). Параметром може бути 'tempfilesold', 'logfiles' або обидва 'tempfilesold+logfiles'. Примітка. Видалення тимчасових файлів виконується лише в тому випадку, якщо тимчасовий каталог було створено більше 24 годин тому. +PurgeDeleteTemporaryFilesShort=Видалити журнал і тимчасові файли (без ризику втрати даних) PurgeDeleteAllFilesInDocumentsDir=Видалить усі файли в каталозі: %s .
    Це видалить усі згенеровані документи, пов'язані з елементами (контрагенти, рахунки тощо), файли, завантажені в модуль ECM, резервні копії бази даних та тимчасові файли. PurgeRunNow=Очистити зараз PurgeNothingToDelete=Немає каталогів або файлів для видалення. @@ -212,7 +212,7 @@ FeatureAvailableOnlyOnStable=Функція доступна лише в офі BoxesDesc=Віджети - це компоненти, які показують певну інформацію, яку ви можете додати, щоб персоналізувати деякі сторінки. Ви можете вибрати, показувати віджет чи ні, вибравши цільову сторінку та натиснувши "Активувати", або натиснувши смітник, щоб відключити його. OnlyActiveElementsAreShown=Відображаються лише елементи з включених модулів. ModulesDesc=Модулі/додатки визначають, які функції доступні в програмному забезпеченні. Деякі модулі вимагають надання дозволів користувачам після активації модуля. Натисніть кнопку включення/вимкнення %s кожного модуля, щоб увімкнути або вимкнути модуль/додаток. -ModulesDesc2=Click the wheel button %s to configure the module/application. +ModulesDesc2=Натисніть кнопку колеса %s , щоб налаштувати модуль/програму. ModulesMarketPlaceDesc=Ви можете знайти більше модулів для завантаження на зовнішніх веб-сайтах в Інтернеті ... ModulesDeployDesc=Якщо дозволи у вашій файловій системі це дозволяють, ви можете використовувати цей інструмент для розгортання зовнішнього модуля. Потім модуль буде видно на вкладці %s . ModulesMarketPlaces=Знайти зовнішні додатки/модулі @@ -226,7 +226,7 @@ NotCompatible=Цей модуль не сумісний з вашою версі CompatibleAfterUpdate=Цей модуль вимагає оновлення версії Dolibarr до %s (Мін %s - Макс %s). SeeInMarkerPlace=Дивіться у магазині SeeSetupOfModule=Див. налаштування модуля %s -SetOptionTo=Set option %s to %s +SetOptionTo=Установіть параметр %s на %s Updated=Оновлено AchatTelechargement=Придбати / завантажити GoModuleSetupArea=Щоб розгорнути/встановити новий модуль, перейдіть на сторінку встановлення модулів: %s . @@ -238,9 +238,9 @@ URL=URL-адреса RelativeURL=Відносна URL-адреса BoxesAvailable=Доступні віджети BoxesActivated=Активні віджети -ActivateOn=Activate on -ActiveOn=Activated on -ActivatableOn=Activatable on +ActivateOn=Активувати +ActiveOn=Активовано +ActivatableOn=Активується увімкнено SourceFile=Вихідний файл AvailableOnlyIfJavascriptAndAjaxNotDisabled=Доступно лише якщо JavaScript не відключений Required=обов'язково @@ -266,9 +266,9 @@ ReferencedPreferredPartners=Партнери OtherResources=Інші ресурси ExternalResources=Додаткові ресурси SocialNetworks=Соціальні мережі -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 +SocialNetworkId=Ідентифікатор соціальної мережі +ForDocumentationSeeWiki=Щоб отримати документацію для користувачів або розробників (документ, відповіді на поширені запитання...),
    перегляньте Dolibarr Wiki:
    a0ecb2ec87f497 a0ecb2ec87f4970f47478d07f4787d0f478747474747777787878888888888 +ForAnswersSeeForum=Для будь-яких інших запитань/довідок ви можете скористатися форумом Dolibarr:
    %s a09f14bf8 HelpCenterDesc1=Ось деякі ресурси для отримання допомоги та підтримки з Dolibarr. HelpCenterDesc2=Деякі з цих ресурсів доступні лише англійською мовою. CurrentMenuHandler=Поточний обробник меню @@ -277,16 +277,16 @@ LeftMargin=Ліве поле TopMargin=Верхнє поле PaperSize=Тип паперу Orientation=Орієнтація -SpaceX=Space X -SpaceY=Space Y +SpaceX=Космос X +SpaceY=Космос Y FontSize=Розмір шрифту Content=Зміст -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +ContentForLines=Вміст для відображення для кожного продукту чи послуги (з змінної __LINES__ вмісту) NoticePeriod=Період повідомлення NewByMonth=Новий за місяць -Emails=Emails +Emails=Електронні листи EMailsSetup=Налаштування Email -EMailsDesc=This page allows you to set parameters or options for email sending. +EMailsDesc=На цій сторінці можна встановити параметри або параметри для відправки електронної пошти. EmailSenderProfiles=Профілі надсилання ел. пошти EMailsSenderProfileDesc=Ви можете залишати цей розділ порожнім. Якщо ви введете тут деякі повідомлення електронної пошти, вони будуть додані до списку можливих відправників під час написання нового електронного листа. MAIN_MAIL_SMTP_PORT=Порт SMTP/SMTPS (значення за замовчуванням у php.ini: %s ) @@ -304,7 +304,7 @@ 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_SMTP_ALLOW_SELF_SIGNED=Авторизуйте auto-signés les certificats MAIN_MAIL_EMAIL_DKIM_ENABLED=Використовувати DKIM для створення підпису електронної пошти MAIN_MAIL_EMAIL_DKIM_DOMAIN=Домен електронної пошти для використання з dkim MAIN_MAIL_EMAIL_DKIM_SELECTOR=Ім'я селектора dkim @@ -331,7 +331,7 @@ ModuleFamilyOther=Інший ModuleFamilyTechnic=Багатомодульні інструменти ModuleFamilyExperimental=Експериментальні модулі ModuleFamilyFinancial=Фінансові модулі (бухгалтерський облік / казначейство) -ModuleFamilyECM=Electronic Content Management (ECM) +ModuleFamilyECM=Управління електронним вмістом (ECM) ModuleFamilyPortal=Веб-сайти та інші публічні програми ModuleFamilyInterface=Інтерфейси із зовнішніми системами MenuHandlers=Обробники меню @@ -343,7 +343,7 @@ StepNb=Крок %s FindPackageFromWebSite=Знайдіть пакет, який надає необхідні функції (наприклад, на офіційному веб-сайті %s). DownloadPackageFromWebSite=Завантажте пакет (наприклад, з офіційного веб-сайту %s). UnpackPackageInDolibarrRoot=Розпакуйте/розархівуйте упаковані файли у каталог на сервері Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +UnpackPackageInModulesRoot=Щоб розгорнути/інсталювати зовнішній модуль, ви повинні розпакувати/розпакувати файл архіву в каталог сервера, призначений для зовнішніх модулів:
    %s SetupIsReadyForUse=Розгортання модуля закінчено. Однак ви повинні ввімкнути та налаштувати модуль у вашому додатку, перейшовши на сторінку налаштування модулів: %s . NotExistsDirect=Альтернативний кореневий каталог не визначений для існуючого каталогу.
    InfDirAlt=Починаючи з версії 3, можна визначити альтернативну кореневу директорію. Це дозволяє зберігати у спеціалізованому каталозі, плагіни та спеціальні шаблони.
    Просто створіть каталог у корені Dolibarr (наприклад: custom).
    @@ -355,13 +355,13 @@ 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.
    +GenericMaskCodes=Ви можете ввести будь-яку маску нумерації. У цій масці можна використовувати такі теги:
    {000000} відповідає числу, яке буде збільшено для кожного %s. Введіть стільки нулів, скільки потрібна довжина лічильника. Лічильник буде доповнено нулями зліва, щоб мати стільки нулів, скільки маска.
    {000000+000} так само, як і попередній, але зміщення, що відповідає числу праворуч від знака +, застосовується, починаючи з першого a0ecb2ecz07f49.
    {000000@x} такий самий, як і попередній, але лічильник скидається на нуль, коли досягається місяць x (x між 1 і 12, або 0, щоб використовувати перші місяці, визначені у вашій конфігурації, або 9) скидається до нуля щомісяця). Якщо використовується цей параметр, а x дорівнює 2 або вище, то послідовність {yy}{mm} або {yyyy}{mm} також потрібна.
    {dd} день (з 1 по 31).
    {mm} місяць (з 1 по 12).
    {yy} , {yyyy} або
    або
    або a0aeeb72f308f887,30aee87
    +GenericMaskCodes2= {cccc} код клієнта на n символів
    {a0a45837fz0 {a0a29d837fz0 {a0a29d837fz0 {a0a29d837fz0 {a0a29d837fz0 {a0a29d837fz0 {a0a29d837fz0 {a0a29d70b70b70b70b} лічильника клієнта наведено на символ клієнта до лічильника} Цей лічильник, призначений для клієнта, скидається одночасно з глобальним лічильником.
    {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.
    +GenericMaskCodes3EAN=Усі інші символи в масці залишаться недоторканими (крім * або ? на 13-й позиції в EAN13).
    Пробіли заборонені.
    У EAN13 останнім символом після останнього } на 13-й позиції має бути * або ? . Його замінить обчислений ключ.
    GenericMaskCodes4a= Приклад 99-го %s контрагента TheCompany, з датою 2007-01-31:
    GenericMaskCodes4b=Зразок контрагента, створеного 2007-03-01:
    GenericMaskCodes4c=Зразок товару, створеного 2007-03-01:
    @@ -378,8 +378,8 @@ UMask=Параметр UMask для нових файлів у файловій UMaskExplanation=Цей параметр дозволяє визначити дозволи, встановлені за замовчуванням для файлів, створених Dolibarr на сервері (наприклад, під час завантаження).
    Це має бути вісімкове значення (наприклад, 0666 означає читання та запис для всіх).
    Цей параметр не потрібний на сервері Windows. 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" +DisableLinkToHelpCenter=Приховати посилання " Потрібна допомога або підтримка " на сторінці входу +DisableLinkToHelp=Приховати посилання на онлайн-довідку " %s " AddCRIfTooLong=Тут немає автоматичного переносу тексту, занадто довгий текст не відображатиметься в документах. Будь ласка, додайте знаки переносу у текстовій області, якщо потрібно. ConfirmPurge=Ви впевнені, що хочете виконати цю чистку?
    Це назавжди видалить усі ваші файли даних, без можливості їх відновлення (файли ECM, додані файли ...). MinLength=Мінімальна довжина @@ -387,9 +387,9 @@ LanguageFilesCachedIntoShmopSharedMemory=Файли .lang завантажені LanguageFile=Мовний файл ExamplesWithCurrentSetup=Приклади з поточною конфігурацією ListOfDirectories=Список каталогів шаблонів OpenDocument -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. +ListOfDirectoriesForModelGenODT=Список каталогів, що містять файли шаблонів у форматі OpenDocument.

    Введіть тут повний шлях до каталогів.
    Додайте повернення каретки між каталогами eah.
    Щоб додати каталог модуля GED, додайте сюди DOL_DATA_ROOT/ecm/yourdirectoryname .

    Файли в цих каталогах мають закінчуватися на .odt або .ods7 a309. NumberOfModelFilesFound=Кількість файлів шаблонів ODT/ODS, знайдених у цих каталогах -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +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=Розміщення імені та прізвища @@ -406,7 +406,7 @@ SecurityToken=Ключ до захищених URL-адрес NoSmsEngine=Не встановлено провайдера послуг для надсилання SMS. Модулі підтримки провайдерів послуг может знайти тут: %s PDF=PDF PDFDesc=Глобальні налаштування генерації PDF -PDFOtherDesc=PDF Option specific to some modules +PDFOtherDesc=PDF Опція, характерна для деяких модулів PDFAddressForging=Правила вибору адреси HideAnyVATInformationOnPDF=Сховати всю інформацію щодо податків та зборів PDFRulesForSalesTax=Правила податків та зборів @@ -414,23 +414,23 @@ PDFLocaltax=Правило для %s HideLocalTaxOnPDF=Сховати значення %sв колонці податків та зборів HideDescOnPDF=Сховати опис товарів HideRefOnPDF=Сховати характеристики товарів -HideDetailsOnPDF=Hide product lines details +HideDetailsOnPDF=Приховати деталі лінійки продуктів PlaceCustomerAddressToIsoLocation=Використовувати французький стандарт (La Poste) розміщення для адрес контрагентів Library=Бібліотека UrlGenerationParameters=Параметри безпеки URL SecurityTokenIsUnique=Використовувати унікальний ключ безпеки для кожної URL-адреси EnterRefToBuildUrl=Введіть характеристику для об'єкта %s GetSecuredUrl=Отримати обчислену URL-адресу -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=Приховати кнопки несанкціонованих дій також для внутрішніх користувачів (в іншому випадку вони будуть сірими) OldVATRates=Старе значення комісії NewVATRates=Нове значення комісії -PriceBaseTypeToChange=Modify on prices with base reference value defined on +PriceBaseTypeToChange=Змінити ціни з базовим довідковим значенням, визначеним на MassConvert=Запустити фонову конвертацію PriceFormatInCurrentLanguage=Формат ціни в поточній мові String=Текст -String1Line=String (1 line) +String1Line=рядок (1 рядок) TextLong=Довгий текст -TextLongNLines=Long text (n lines) +TextLongNLines=Довгий текст (n рядків) HtmlText=Форматований (HTML) текст Int=Ціле чистло Float=Дробове число @@ -457,1766 +457,1825 @@ ExtrafieldParamHelpPassword=Залишивши це поле порожнім, ExtrafieldParamHelpselect=Список значень складається з рядків вигляду ключ,значення (де ключ не повинен бути '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=Список значень повинен складатися з рядків з форматом ключ,значення (де ключ не може бути "0")

    , наприклад:
    1,значення1
    2,значення2
    3,значення3
    ... ExtrafieldParamHelpradio=Список значень повинен складатися з рядків з форматом ключ,значення (де ключ не може бути "0")

    , наприклад:
    1,значення1
    2,значення2
    3,значення3
    ... -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. +ExtrafieldParamHelpsellist=Список значень надходить із таблиці
    Синтаксис: table_name: label_field: id_field :: filtersql
    Приклад: c_typent: libelle: id: initemblcs. intiplters intumblcllcs0 intills. idgllylllys0 intills. intiplits. Це може бути простий тест (наприклад, active=1) для відображення лише активного значення
    Ви також можете використовувати $ID$ у фільтрі, який є поточним ідентифікатором поточного об’єкта
    Щоб використовувати SELECT у фільтрі, використовуйте ключове слово $SEL$, щоб обхідний захист від упорскування.
    , якщо ви хочете фільтрувати за додатковими полями, використовуйте синтаксис extra.fieldcode=... (де код поля є кодом extrafield)

    Щоб список залежав від іншого додаткового списку атрибутів:
    :
    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





    a0342fcc0 активне значення a0342fcc0 ви можете відображати тільки a29bcc0 активне значення a0342fcc0 також можна використовувати $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: місцевий податок стягується на продукти та послуги, включаючи ПДВ (місцевий податок розраховується на суму + основний податок) a0342fccfda31: місцевий податок стягується з продуктів без ПДВ (місцевий податок розраховується на суму без податку)
    4: місцевий податок стягується з продуктів з ПДВ (місцевий податок розраховується на суму + основний ПДВ)
    5: місцевий податок стягується на послуги без ПДВ (розраховується місцевий податок на суму без податку)
    6: місцевий податок стягується з послуг, включаючи ПДВ (місцевий податок розраховується на суму + податок) +SMS=СМС +LinkToTestClickToDial=Введіть номер телефону, щоб зателефонувати, щоб показати посилання для перевірки URL-адреси ClickToDial для користувача %s +RefreshPhoneLink=Оновити посилання +LinkToTest=Посилання, яке можна натиснути, створено для користувача %s (натисніть номер телефону, щоб перевірити) +KeepEmptyToUseDefault=Залиште порожнім, щоб використовувати значення за замовчуванням +KeepThisEmptyInMostCases=У більшості випадків це поле можна залишити порожнім. +DefaultLink=Посилання за замовчуванням +SetAsDefault=Встановити за замовчуванням +ValueOverwrittenByUserSetup=Попередження, це значення може бути перезаписано налаштуваннями користувача (кожен користувач може встановити власну URL-адресу для набору для натискання). +ExternalModule=Зовнішній модуль +InstalledInto=Встановлено в каталог %s +BarcodeInitForThirdparties=Масова ініціалізація штрих-коду для третіх сторін +BarcodeInitForProductsOrServices=Масове ініціювання або скидання штрих-коду для продуктів або послуг +CurrentlyNWithoutBarCode=На даний момент у вас є запис %s на %s a0a65d071f6fc9z, визначений без barcode a0a65d071f6fc9z2. 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. +EraseAllCurrentBarCode=Стерти всі поточні значення штрих-коду +ConfirmEraseAllCurrentBarCode=Ви впевнені, що хочете стерти всі поточні значення штрих-коду? +AllBarcodeReset=Усі значення штрих-коду видалено +NoBarcodeNumberingTemplateDefined=У налаштуваннях модуля штрих-коду не ввімкнено шаблон нумерації. +EnableFileCache=Увімкнути кеш файлів +ShowDetailsInPDFPageFoot=Додайте додаткову інформацію в нижній колонтитул, наприклад адресу компанії або імена керівника (на додаток до професійних ідентифікаторів, капіталу компанії та номера платника ПДВ). +NoDetails=Ніяких додаткових деталей у нижньому колонтитулі +DisplayCompanyInfo=Показати адресу компанії +DisplayCompanyManagers=Відображати імена менеджерів +DisplayCompanyInfoAndManagers=Відображати адресу компанії та імена менеджерів +EnableAndSetupModuleCron=Якщо ви хочете, щоб цей періодичний рахунок-фактура створювався автоматично, модуль *%s* має бути увімкнено та правильно налаштовано. В іншому випадку створення рахунків-фактур необхідно виконувати вручну з цього шаблону за допомогою кнопки *Створити*. Зверніть увагу, що навіть якщо ви ввімкнули автоматичне генерування, ви все одно можете безпечно запускати ручне генерування. Створення дублікатів за той самий період неможливо. +ModuleCompanyCodeCustomerAquarium=%s, а потім код клієнта для коду обліку клієнта +ModuleCompanyCodeSupplierAquarium=%s за яким слідує код постачальника для облікового коду постачальника +ModuleCompanyCodePanicum=Поверніть порожній обліковий код. +ModuleCompanyCodeDigitaria=Повертає складений обліковий код відповідно до імені третьої сторони. Код складається з префікса, який можна визначити на першій позиції, за яким слідує кількість символів, визначена в коді третьої сторони. +ModuleCompanyCodeCustomerDigitaria=%s, за яким слід усечене ім'я клієнта за кількістю символів: %s для коду обліку клієнта. +ModuleCompanyCodeSupplierDigitaria=%s, а потім усічене ім'я постачальника за кількістю символів: %s для коду обліку постачальника. +Use3StepsApproval=За замовчуванням замовлення на покупку мають створювати та затверджувати 2 різні користувачі (один крок/користувач для створення і один крок/користувач для схвалення. Зверніть увагу, що якщо користувач має обидва дозволи на створення та схвалення, буде достатньо одного кроку/користувача) . Ви можете попросити за допомогою цієї опції ввести третій крок/схвалення користувача, якщо сума перевищує визначене значення (тому знадобляться 3 кроки: 1=перевірка, 2=перше схвалення та 3=друге схвалення, якщо суми достатньо).
    Встановіть значення пустим, якщо достатньо одного схвалення (2 кроки), установіть дуже низьке значення (0,1), якщо завжди потрібне друге затвердження (3 кроки). +UseDoubleApproval=Використовуйте 3-етапне схвалення, коли сума (без податку) перевищує... +WarningPHPMail=ПОПЕРЕДЖЕННЯ. Налаштування для надсилання електронних листів із програми використовує загальні налаштування за замовчуванням. Часто краще налаштувати вихідні електронні листи, щоб використовувати сервер електронної пошти вашого постачальника послуг електронної пошти замість налаштування за замовчуванням з кількох причин: +WarningPHPMailA=- Використання сервера постачальника послуг електронної пошти підвищує надійність вашої електронної пошти, тому збільшує доставку, не позначаючись як СПАМ +WarningPHPMailB=- Деякі постачальники послуг електронної пошти (наприклад, Yahoo) не дозволяють надсилати електронні листи з іншого сервера, ніж їх власний сервер. Ваші поточні налаштування використовує сервер програми для надсилання електронної пошти, а не сервер вашого постачальника послуг електронної пошти, тому деякі одержувачі (сумісний з обмежувальним протоколом DMARC) запитуватимуть вашого постачальника електронної пошти, чи можуть вони прийняти вашу електронну пошту та деякі постачальники електронної пошти. (наприклад, Yahoo) може відповісти "ні", тому що сервер не належить їм, тому деякі з ваших надісланих електронних листів можуть не прийматися для доставки (також будьте обережні щодо квоти надсилання вашого постачальника послуг електронної пошти). +WarningPHPMailC=- Використання SMTP-сервера вашого власного постачальника послуг електронної пошти для надсилання електронних листів також є цікавим, тому всі листи, надіслані з програми, також будуть збережені у вашому каталозі «Відправлені» вашої поштової скриньки. +WarningPHPMailD=Тому рекомендується змінити метод надсилання електронних листів на значення «SMTP». Якщо ви дійсно хочете зберегти метод «PHP» за замовчуванням для надсилання електронних листів, просто проігноруйте це попередження або видаліть його, встановивши для константи MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP значення 1 у розділі «Домашня сторінка» - «Налаштування» - «Інше». +WarningPHPMail2=Якщо вашому постачальнику послуг електронної пошти SMTP потрібно обмежити клієнта електронної пошти деякими IP-адресами (дуже рідко), це IP-адреса поштового агента користувача (MUA) для вашої програми ERP CRM: %s . +WarningPHPMailSPF=Якщо доменне ім’я у вашій адресі електронної пошти відправника захищене записом SPF (запитайте ваш реєстр доменних імен), ви повинні додати такі IP-адреси в SPF-запис DNS вашого домену: %s . +ActualMailSPFRecordFound=Actual SPF record found (for email %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=Також зауважте, що перезапис значень за замовчуванням для створення форми працює лише для сторінок, які були правильно розроблені (тому з параметром action=create або presen...) +EnableDefaultValues=Увімкнути налаштування значень за замовчуванням +EnableOverwriteTranslation=Увімкнути використання перезаписаного перекладу +GoIntoTranslationMenuToChangeThis=Знайдено переклад для ключа з цим кодом. Щоб змінити це значення, ви повинні відредагувати його з Home-Setup-translation. +WarningSettingSortOrder=Попередження, встановлення порядку сортування за замовчуванням може призвести до технічної помилки під час переходу на сторінку списку, якщо поле є невідомим полем. Якщо у вас виникла така помилка, поверніться на цю сторінку, щоб видалити порядок сортування за замовчуванням і відновити поведінку за замовчуванням. +Field=Поле +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 з назвою "public" - вхід не потрібен) +DAV_ALLOW_PUBLIC_DIRTooltip=Загальний загальнодоступний каталог — це каталог WebDAV, доступ до якого може отримати будь-хто (у режимі читання та запису), без авторизації (обліковий запис для входу/паролю). +DAV_ALLOW_ECM_DIR=Увімкнути приватний каталог DMS/ECM (кореневий каталог модуля DMS/ECM - потрібен вхід) +DAV_ALLOW_ECM_DIRTooltip=Кореневий каталог, куди всі файли завантажуються вручну під час використання модуля DMS/ECM. Подібно до доступу з веб-інтерфейсу, вам знадобиться дійсний логін/пароль з відповідними дозволами для доступу до нього. # 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. +Module0Name=Користувачі та групи +Module0Desc=Керування користувачами / співробітниками та групами +Module1Name=Треті сторони +Module1Desc=Управління компаніями та контактами (клієнти, перспективи...) +Module2Name=Комерційний +Module2Desc=Комерційний менеджмент +Module10Name=Бухгалтерський облік (спрощений) +Module10Desc=Прості бухгалтерські звіти (журнали, обороти) на основі вмісту бази даних. Не використовує таблицю книги. Module20Name=Пропозиції -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 +Module20Desc=Управління комерційними пропозиціями +Module22Name=Масові розсилки електронною поштою +Module22Desc=Керуйте масовою розсилкою електронної пошти +Module23Name=Енергія +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) -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. +Module40Desc=Постачальники та управління закупівлями (замовлення на купівлю та виставлення рахунків постачальників) +Module42Name=Журнали налагодження +Module42Desc=Засоби ведення журналу (файл, системний журнал, ...). Такі журнали призначені для технічних/налагоджувальних цілей. +Module43Name=Панель налагодження +Module43Desc=Інструмент для розробника, який додає панель налагодження у ваш браузер. +Module49Name=Редактори +Module49Desc=Керівництво редактором +Module50Name=Продукти +Module50Desc=Управління продуктами +Module51Name=Масові розсилки +Module51Desc=Управління масовою паперовою розсилкою +Module52Name=Акції +Module52Desc=Управління запасами +Module53Name=послуги +Module53Desc=Управління послугами +Module54Name=Контракти/Підписка +Module54Desc=Управління контрактами (послуги або регулярні підписки) +Module55Name=Штрих-коди +Module55Desc=Управління штрих-кодами або QR-кодами +Module56Name=Оплата кредитним переказом +Module56Desc=Управління оплатою постачальників за дорученнями кредитного переказу. Він включає створення файлу SEPA для європейських країн. +Module57Name=Платежі прямим дебетом +Module57Desc=Керування замовленнями прямого дебету. Він включає створення файлу SEPA для європейських країн. 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 +Module58Desc=Інтеграція системи ClickToDial (Asterisk, ...) +Module60Name=Наклейки +Module60Desc=Управління наклейками +Module70Name=Втручання +Module70Desc=Управління втручанням +Module75Name=Відомості про витрати та подорожі +Module75Desc=Управління витратами та відрядними записками +Module80Name=Відвантаження +Module80Desc=Управління відправленнями та накладними +Module85Name=Банки та готівка +Module85Desc=Ведення банківських або касових рахунків +Module100Name=Зовнішній сайт +Module100Desc=Додайте посилання на зовнішній веб-сайт як піктограму головного меню. Веб-сайт відображається у рамці під верхнім меню. +Module105Name=Mailman і SPIP +Module105Desc=Інтерфейс Mailman або SPIP для модуля-члена Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=Синхронізація каталогу LDAP 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. +Module210Desc=Інтеграція PostNuke +Module240Name=Експорт даних +Module240Desc=Інструмент для експорту даних Dolibarr (за допомогою) +Module250Name=Імпорт даних +Module250Desc=Інструмент для імпорту даних у Dolibarr (за допомогою) +Module310Name=Члени +Module310Desc=Керівництво членів фонду +Module320Name=RSS-канал +Module320Desc=Додайте RSS-канал до сторінок Dolibarr +Module330Name=Закладки та ярлики +Module330Desc=Створюйте завжди доступні ярлики внутрішніх або зовнішніх сторінок, до яких ви часто звертаєтеся +Module400Name=Проекти або Ліди +Module400Desc=Управління проектами, лідерами/можливостями та/або завданнями. Ви також можете призначити будь-який елемент (рахунок-фактура, замовлення, пропозицію, інтервенцію, ...) до проекту та отримати поперечний вигляд із перегляду проекту. +Module410Name=Веб-календар +Module410Desc=Інтеграція веб-календаря +Module500Name=Податки та спеціальні витрати +Module500Desc=Управління іншими витратами (податки з продажу, соціальні або фіскальні податки, дивіденди, ...) +Module510Name=Заробітна плата +Module510Desc=Записуйте та відстежуйте виплати співробітників +Module520Name=Кредити +Module520Desc=Управління кредитами +Module600Name=Повідомлення про ділову подію +Module600Desc=Надсилати сповіщення електронною поштою, ініційовані діловою подією: на користувача (налаштування визначено для кожного користувача), на контакти третьої сторони (налаштування визначено для кожної третьої сторони) або на конкретні електронні листи +Module600Long=Зауважте, що цей модуль надсилає електронні листи в режимі реального часу, коли відбувається конкретна бізнес-подія. Якщо ви шукаєте функцію надсилання нагадувань електронною поштою про події порядку денного, перейдіть до налаштування модуля Порядок денний. +Module610Name=Варіанти товару +Module610Desc=Створення варіантів продукції (колір, розмір тощо) +Module700Name=Пожертвування +Module700Desc=Управління пожертвуваннями +Module770Name=Звіти про витрати +Module770Desc=Управління претензіями до звітів про витрати (транспортування, харчування, ...) +Module1120Name=Комерційні пропозиції постачальників +Module1120Desc=Запит комерційної пропозиції та ціни від постачальника +Module1200Name=Богомол +Module1200Desc=Інтеграція богомола +Module1520Name=Генерація документів +Module1520Desc=Масове створення документів електронною поштою +Module1780Name=Теги/Категорії +Module1780Desc=Створення тегів/категорій (продуктів, клієнтів, постачальників, контактів або учасників) +Module2000Name=Редактор WYSIWYG +Module2000Desc=Дозволити редагувати/форматувати текстові поля за допомогою CKEditor (html) +Module2200Name=Динамічні ціни +Module2200Desc=Використовуйте математичні вирази для автоматичного генерування цін +Module2300Name=Заплановані роботи +Module2300Desc=Керування запланованими завданнями (псевдонім cron або chrono table) +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/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 +Module2500Desc=Система документообігу / Управління електронним вмістом. Автоматична організація створених або збережених документів. Поділіться ними, коли вам потрібно. +Module2600Name=API/веб-служби (сервер SOAP) +Module2600Desc=Увімкніть SOAP-сервер Dolibarr, який надає послуги API +Module2610Name=API/веб-служби (сервер REST) +Module2610Desc=Увімкніть сервер Dolibarr REST, який надає послуги API +Module2660Name=Виклик WebServices (клієнт SOAP) +Module2660Desc=Увімкнути клієнт веб-сервісів Dolibarr (може використовуватися для надсилання даних/запитів на зовнішні сервери. Наразі підтримуються лише замовлення на покупку.) +Module2700Name=Граватар +Module2700Desc=Використовуйте онлайн-сервіс Gravatar (www.gravatar.com), щоб показати фотографію користувачів/членів (знаходиться разом із їхніми електронними листами). Потрібен доступ до Інтернету +Module2800Desc=FTP-клієнт 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. +Module2900Desc=Можливості перетворення GeoIP Maxmind +Module3200Name=Незмінні архіви +Module3200Desc=Увімкнути незмінний журнал ділових подій. Події архівуються в режимі реального часу. Журнал – це доступна лише для читання таблиця зв’язаних подій, які можна експортувати. Цей модуль може бути обов’язковим для деяких країн. Module3400Name=Соціальні мережі -Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). +Module3400Desc=Увімкнути поля соціальних мереж для третіх сторін і адрес (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 +Module4000Desc=Управління людськими ресурсами (управління відділом, контрактами та почуттями співробітників) +Module5000Name=Мультикомпанія +Module5000Desc=Дозволяє керувати кількома компаніями +Module6000Name=Міжмодульний робочий процес +Module6000Desc=Управління робочим процесом між різними модулями (автоматичне створення об'єкта та/або автоматична зміна статусу) +Module10000Name=веб-сайти +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). +Module50100Desc=Модуль точки продажу SimplePOS (простий 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...) -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). -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 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) -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 (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) -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 -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 -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 +Module54000Desc=Прямий друк (без відкриття документів) за допомогою інтерфейсу Cups IPP (принтер має бути видимим із сервера, а CUPS має бути встановлений на сервері). +Module55000Name=Опитування, опитування або голосування +Module55000Desc=Створюйте онлайн-опитування, опитування або голосування (наприклад, Doodle, Studs, RDVz тощо...) +Module59000Name=Поля +Module59000Desc=Модуль для дотримання полів +Module60000Name=комісії +Module60000Desc=Модуль для управління комісіями +Module62000Name=Інкотермс +Module62000Desc=Додайте функції для керування Інкотермс +Module63000Name=Ресурси +Module63000Desc=Керуйте ресурсами (принтерами, автомобілями, кімнатами, ...) для розподілу подій +Permission11=Читайте рахунки-фактури клієнтів +Permission12=Створення/змінювання рахунків-фактур клієнтів +Permission13=Визнати недійсними рахунки клієнта +Permission14=Перевірка рахунків-фактур клієнтів +Permission15=Надсилайте рахунки клієнтам електронною поштою +Permission16=Створення платежів за рахунками-фактурами клієнтів +Permission19=Видалити рахунки клієнтів +Permission21=Прочитайте комерційні пропозиції +Permission22=Створювати/змінювати комерційні пропозиції +Permission24=Підтвердити комерційні пропозиції +Permission25=Надсилайте комерційні пропозиції +Permission26=Закрити комерційні пропозиції +Permission27=Видалити комерційні пропозиції +Permission28=Експортні комерційні пропозиції +Permission31=Читайте продукти +Permission32=Створювати/змінювати продукти +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) +Permission45=Експортні проекти +Permission61=Прочитайте інтервенції +Permission62=Створити/змінити втручання +Permission64=Видалити втручання +Permission67=Експортні інтервенції +Permission68=Надсилайте інтервенції електронною поштою +Permission69=Підтвердити втручання +Permission70=Недійсні втручання +Permission71=Читайте учасників +Permission72=Створити/змінити учасників +Permission74=Видалити учасників +Permission75=Налаштування типів членства +Permission76=Експортувати дані +Permission78=Читайте підписки +Permission79=Створення/змінювання підписок +Permission81=Читайте замовлення клієнтів +Permission82=Створення/змінювання замовлень клієнтів +Permission84=Перевіряйте замовлення клієнтів +Permission86=Відправляти замовлення клієнтам +Permission87=Закрити замовлення клієнтів +Permission88=Скасувати замовлення клієнтів +Permission89=Видалити замовлення клієнтів +Permission91=Прочитайте соціальні чи фіскальні податки та ПДВ +Permission92=Створити/змінити соціальні чи фіскальні податки та податок +Permission93=Вилучити соціальні чи фіскальні податки та ПДВ +Permission94=Експортні соціальні чи фіскальні податки +Permission95=Читайте звіти +Permission101=Прочитайте відправлення +Permission102=Створити/змінити відправлення +Permission104=Підтвердьте відправлення +Permission105=Надсилайте відправлення електронною поштою +Permission106=Експортні відправлення +Permission109=Видалити відправлення +Permission111=Читайте фінансові рахунки +Permission112=Створюйте/змінюйте/видаляйте та порівнюйте транзакції +Permission113=Налаштування фінансових рахунків (створення, керування категоріями банківських трансакцій) +Permission114=Узгодити операції +Permission115=Експортні операції та виписки з рахунку +Permission116=Перекази між рахунками +Permission117=Керуйте відправленням чеків +Permission121=Читайте сторонні особи, пов’язані з користувачем +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) +Permission146=Читайте провайдерів +Permission147=Читайте статистику +Permission151=Читайте платіжні доручення прямого дебету +Permission152=Створення/змінювання платіжних доручень прямого дебету +Permission153=Відправляти/передати платіжні доручення прямого дебету +Permission154=Запис кредитів/Відхилення платіжних доручень прямого дебету +Permission161=Читайте контракти/передплати +Permission162=Створювати/змінювати контракти/підписки +Permission163=Активуйте послугу/підписку на контракт +Permission164=Вимкнути послугу/передплату контракту +Permission165=Видалити контракти/передплати +Permission167=Експортні контракти +Permission171=Читайте поїздки та витрати (ваші та підлеглі) +Permission172=Створювати/змінювати поїздки та витрати +Permission173=Видалити поїздки та витрати +Permission174=Прочитайте всі поїздки та витрати +Permission178=Експортні поїздки та витрати +Permission180=Читайте постачальників +Permission181=Читайте замовлення на закупівлю +Permission182=Створювати/змінювати замовлення на покупку +Permission183=Підтвердьте замовлення на закупівлю +Permission184=Затвердити замовлення на закупівлю +Permission185=Замовлення або скасування замовлення +Permission186=Отримувати замовлення на покупку +Permission187=Закрийте замовлення на покупку +Permission188=Скасувати замовлення на покупку +Permission192=Створюйте лінії +Permission193=Скасувати рядки +Permission194=Прочитайте рядки пропускної здатності +Permission202=Створіть ADSL-з'єднання +Permission203=Замовлення на підключення +Permission204=Замовити підключення +Permission205=Керуйте з'єднаннями +Permission206=Прочитайте з'єднання +Permission211=Прочитайте Телефонія +Permission212=Лінії замовлення +Permission213=Активувати лінію +Permission214=Налаштування телефонії +Permission215=Постачальники налаштування +Permission221=Читайте електронні листи +Permission222=Створення/змінювання електронних листів (тема, одержувачі...) +Permission223=Перевірка електронних листів (дозволяє надсилати) +Permission229=Видалити електронні листи +Permission237=Переглянути одержувачів та інформацію +Permission238=Розсилка вручну +Permission239=Видаліть листи після підтвердження або відправлення +Permission241=Прочитайте категорії +Permission242=Створювати/змінювати категорії +Permission243=Видалити категорії +Permission244=Перегляньте вміст прихованих категорій +Permission251=Читайте інших користувачів і груп +PermissionAdvanced251=Читайте інших користувачів +Permission252=Дозволи на читання інших користувачів +Permission253=Створення/змінювання інших користувачів, груп і дозволів +PermissionAdvanced253=Створення/змінювання внутрішніх/зовнішніх користувачів і дозволів +Permission254=Створювати/змінювати лише зовнішніх користувачів +Permission255=Змінити пароль інших користувачів +Permission256=Видалити або вимкнути інших користувачів +Permission262=Розширити доступ для всіх третіх сторін І їх об’єктів (а не тільки для третіх сторін, торговим представником яких є користувач).
    Не ефективно для зовнішніх користувачів (завжди обмежуються ними для пропозицій, замовлень, рахунків-фактур, контрактів тощо).
    Не ефективно для проектів (має значення лише правила щодо дозволів проекту, видимості та призначення). +Permission263=Розширити доступ всім третім особам БЕЗ їхніх об’єктів (а не тільки третім особам, для яких користувач є торговим представником).
    Не ефективно для зовнішніх користувачів (завжди обмежуються ними для пропозицій, замовлень, рахунків-фактур, контрактів тощо).
    Не ефективно для проектів (має значення лише правила щодо дозволів проекту, видимості та призначення). +Permission271=Прочитайте CA +Permission272=Прочитайте рахунки-фактури +Permission273=Виставляйте рахунки +Permission281=Читати контакти +Permission282=Створювати/змінювати контакти +Permission283=Видалити контакти +Permission286=Експортувати контакти +Permission291=Читайте тарифи +Permission292=Налаштувати дозволи на тарифи +Permission293=Змінити тарифи клієнта +Permission300=Читайте штрих-коди +Permission301=Створення/змінювання штрих-кодів +Permission302=Видалити штрих-коди +Permission311=Читайте послуги +Permission312=Призначити послугу/підписку на контракт +Permission331=Прочитайте закладки +Permission332=Створення/змінювання закладок +Permission333=Видалити закладки +Permission341=Читайте власні дозволи +Permission342=Створювати/змінювати власну інформацію користувача +Permission343=Змінити власний пароль +Permission344=Змінити власні дозволи +Permission351=Читайте групи +Permission352=Дозволи на читання груп +Permission353=Створювати/змінювати групи +Permission354=Видалити або вимкнути групи +Permission358=Експортувати користувачів +Permission401=Читайте знижки +Permission402=Створювати/змінювати знижки +Permission403=Підтвердити знижки +Permission404=Видалити знижки +Permission430=Використовуйте панель налагодження +Permission511=Читати зарплати та виплати (ваші та підлеглі) +Permission512=Створювати/змінювати зарплати та виплати +Permission514=Видалити зарплати та виплати +Permission517=Читайте всім зарплати та виплати +Permission519=Експортні зарплати +Permission520=Читайте позики +Permission522=Створення/змінювання позик +Permission524=Видалити позики +Permission525=Доступ до кредитного калькулятора +Permission527=Експортні кредити +Permission531=Читайте послуги +Permission532=Створювати/змінювати служби +Permission534=Видалити послуги +Permission536=Переглядати/керувати прихованими службами +Permission538=Експортні послуги +Permission561=Читайте платіжні доручення за допомогою кредитного переказу +Permission562=Створити/змінити платіжне доручення за допомогою кредитного переказу +Permission563=Відправити/Пересилати платіжне доручення кредитним переказом +Permission564=Запис списання/Відхилення кредитного переказу +Permission601=Читайте стікери +Permission602=Створюйте/змінюйте наклейки +Permission609=Видалити наклейки +Permission611=Прочитайте атрибути варіантів +Permission612=Створити/оновити атрибути варіантів +Permission613=Видалити атрибути варіантів +Permission650=Прочитайте перелік матеріалів +Permission651=Створення/оновлення специфікації матеріалів +Permission652=Видалити специфікації +Permission660=Читати замовлення на виготовлення (MO) +Permission661=Створити/оновити замовлення на виробництво (МО) +Permission662=Видалити замовлення на виробництво (МО) +Permission701=Читайте пожертвування +Permission702=Створювати/змінювати пожертвування +Permission703=Видалити пожертвування +Permission771=Читайте звіти про витрати (ваші та підлеглі) +Permission772=Створення/змінювання звітів про витрати (для вас і ваших підлеглих) +Permission773=Видалити звіти про витрати +Permission775=Затвердити звіти про витрати +Permission776=Оплатити звіти про витрати +Permission777=Читати всі звіти про витрати (навіть звіти користувачів, які не є підлеглими) +Permission778=Створюйте/змінюйте звіти про витрати для кожного +Permission779=Експортні звіти про витрати +Permission1001=Читайте акції +Permission1002=Створювати/змінювати склади +Permission1003=Видалити склади +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=Читайте рахунки постачальників +Permission1232=Створення/змінювання рахунків-фактур постачальників +Permission1233=Перевірка рахунків постачальників +Permission1234=Видалити рахунки-фактури постачальників +Permission1235=Надсилайте рахунки-фактури постачальникам електронною поштою +Permission1236=Рахунки-фактури, атрибути та платежі постачальників експорту +Permission1237=Експортувати замовлення на покупку та їх деталі +Permission1251=Запустити масове імпортування зовнішніх даних у базу даних (завантаження даних) +Permission1321=Експортуйте рахунки-фактури, атрибути та платежі клієнтів +Permission1322=Знову відкрити оплачений рахунок +Permission1421=Експортувати замовлення та атрибути +Permission1521=Прочитайте документи +Permission1522=Видалити документи +Permission2401=Читання дій (подій або завдань), пов’язаних з його обліковим записом користувача (якщо власник події або просто призначений) +Permission2402=Створювати/змінювати дії (події чи завдання), пов’язані з його обліковим записом користувача (якщо власник події) +Permission2403=Видалити дії (події або завдання), пов’язані з його обліковим записом користувача (якщо власник події) +Permission2411=Прочитайте дії (події чи завдання) інших +Permission2412=Створювати/змінювати дії (події чи завдання) інших +Permission2413=Видалити дії (події чи завдання) інших +Permission2414=Експортувати дії/завдання інших +Permission2501=Читати/завантажувати документи +Permission2502=Завантажити документи +Permission2503=Подати або видалити документи +Permission2515=Налаштувати каталоги документів +Permission2801=Використовуйте FTP-клієнт у режимі читання (лише перегляд і завантаження) +Permission2802=Використовуйте FTP-клієнт у режимі запису (видалення або завантаження файлів) +Permission3200=Читайте архівні події та відбитки пальців +Permission3301=Створення нових модулів +Permission4001=Читайте навички/робота/посада +Permission4002=Створити/змінити навички/роботу/позицію +Permission4003=Видалити навички/роботу/позицію +Permission4020=Прочитайте оцінки +Permission4021=Створіть/змініть свою оцінку +Permission4022=Підтвердити оцінку +Permission4023=Видалити оцінку +Permission4030=Дивіться меню порівняння +Permission4031=Прочитайте особисту інформацію +Permission4032=Напишіть особисту інформацію +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=Прочитайте об'єкти Зап'єра +Permission50331=Створення/оновлення об’єктів Zapier +Permission50332=Видалити об’єкти Zapier +Permission50401=Прив’язуйте продукти та рахунки-фактури до бухгалтерських рахунків +Permission50411=Прочитати операції в книзі +Permission50412=Операції запису/редагування в книзі +Permission50414=Видалити операції з книги +Permission50415=Видалити всі операції за роками та журналом у книзі +Permission50418=Експортні операції облікової книги +Permission50420=Звіти та експортні звіти (обіг, баланс, журнали, книга) +Permission50430=Визначте фінансові періоди. Перевіряйте операції та закривайте фінансові періоди. +Permission50440=Керування планом рахунків, налагодження бухгалтерського обліку +Permission51001=Прочитати активи +Permission51002=Створити/оновити активи +Permission51003=Видалити активи +Permission51005=Налаштування типів активу +Permission54001=Друк +Permission55001=Читайте опитування +Permission55002=Створити/змінити опитування +Permission59001=Читайте комерційні націнки +Permission59002=Визначте комерційну маржу +Permission59003=Прочитайте поле кожного користувача +Permission63001=Читайте ресурси +Permission63002=Створювати/змінювати ресурси +Permission63003=Видалити ресурси +Permission63004=Пов’язуйте ресурси з подіями порядку денного +Permission64001=Дозволити прямий друк +Permission67000=Дозволити роздрукувати квитанції +Permission68001=Прочитати внутрішньокомунікаційний звіт +Permission68002=Створити/змінити внутрішньокомунікаційний звіт +Permission68004=Видалити звіт внутрішнього зв’язку +Permission941601=Прочитайте квитанції +Permission941602=Створюйте та змінюйте квитанції +Permission941603=Підтвердьте квитанції +Permission941604=Надсилайте квитанції електронною поштою +Permission941605=Експортні квитанції +Permission941606=Видалити квитанції +DictionaryCompanyType=Сторонні типи +DictionaryCompanyJuridicalType=Сторонні юридичні особи +DictionaryProspectLevel=Рівень перспективного потенціалу для компаній +DictionaryProspectContactLevel=Потенційний рівень перспективи для контактів +DictionaryCanton=Штати/Провінції +DictionaryRegion=регіони +DictionaryCountry=країни +DictionaryCurrency=валюти +DictionaryCivility=Почесні звання +DictionaryActions=Види заходів порядку денного +DictionarySocialContributions=Види соціальних чи фіскальних податків +DictionaryVAT=Ставки ПДВ або ставки податку з продажу +DictionaryRevenueStamp=Кількість податкових марок +DictionaryPaymentConditions=Терміни оплати +DictionaryPaymentModes=Режими оплати +DictionaryTypeContact=Типи контактів/адрес +DictionaryTypeOfContainer=Веб-сайт – тип веб-сторінок/контейнерів +DictionaryEcotaxe=Екоподаток (WEEE) +DictionaryPaperFormat=Формати паперу +DictionaryFormatCards=Формати карток +DictionaryFees=Звіт про витрати - Типи рядків звіту про витрати +DictionarySendingMethods=Способи доставки +DictionaryStaff=Кількість працівників +DictionaryAvailability=Затримка доставки +DictionaryOrderMethods=Методи замовлення +DictionarySource=Походження пропозицій/замовлень +DictionaryAccountancyCategory=Персоналізовані групи для звітів +DictionaryAccountancysystem=Моделі для плану рахунків +DictionaryAccountancyJournal=Бухгалтерські журнали +DictionaryEMailTemplates=Шаблони електронних листів +DictionaryUnits=одиниці +DictionaryMeasuringUnits=Одиниці вимірювання DictionarySocialNetworks=Соціальні мережі -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 +DictionaryProspectStatus=Перспективний статус для компаній +DictionaryProspectContactStatus=Статус перспективи для контактів +DictionaryHolidayTypes=Відпустка - Види відпусток +DictionaryOpportunityStatus=Статус керівника проекту/лідера +DictionaryExpenseTaxCat=Звіт про витрати - Категорії перевезень +DictionaryExpenseTaxRange=Звіт про витрати - Діапазон за категоріями транспортування DictionaryTransportMode=Intracomm report - Transport mode -DictionaryBatchStatus=Product lot/serial Quality Control status -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. +DictionaryBatchStatus=Статус контролю якості партії/серійного продукту +DictionaryAssetDisposalType=Вид вибуття активів +TypeOfUnit=Тип агрегату +SetupSaved=Налаштування збережено +SetupNotSaved=Налаштування не збережено +BackToModuleList=Повернутися до списку модулів +BackToDictionaryList=Повернутися до списку словників +TypeOfRevenueStamp=Вид податкової марки +VATManagement=Управління податку з продажу +VATIsUsedDesc=За замовчуванням під час створення перспектив, рахунків-фактур, замовлень тощо ставка податку з продажів відповідає діючому стандартному правилу:
    Якщо продавець не оподатковується податком із продажів, тоді податок з продажів за умовчанням дорівнює 0. Кінець правила.
    Якщо (країна продавця = країна покупця), то податок з продажів за замовчуванням дорівнює податку з продажу товару в країні продавця. Кінець правління.
    Якщо продавець і покупець знаходяться в Європейському співтоваристві, а товари є товарами, пов’язаними з транспортуванням (перевезення, доставка, авіакомпанія), ПДВ за замовчуванням дорівнює 0. Це правило залежить від країни продавця – проконсультуйтеся зі своїм бухгалтером. ПДВ повинен сплачувати покупець у митниці своєї країни, а не продавцю. Кінець правління.
    Якщо продавець і покупець знаходяться в Європейському співтоваристві, а покупець не є компанією (з зареєстрованим номером ПДВ у межах Співтовариства), тоді ПДВ за замовчуванням відповідає ставці ПДВ країни продавця. Кінець правління.
    Якщо продавець і покупець знаходяться в Європейському співтоваристві, а покупець є компанією (з зареєстрованим номером ПДВ у межах Співтовариства), тоді ПДВ за замовчуванням дорівнює 0. Кінець правління.
    У будь-якому іншому випадку запропонованим за замовчуванням є податок з продажу=0. Кінець правління. +VATIsNotUsedDesc=За замовчуванням запропонований податок з продажу дорівнює 0, який можна використовувати для таких випадків, як асоціації, фізичні особи чи невеликі компанії. +VATIsUsedExampleFR=У Франції це означає компанії або організації, що мають реальну фіскальну систему (спрощена реальна або звичайна реальна). Система, в якій декларується ПДВ. +VATIsNotUsedExampleFR=У Франції це означає асоціації, які не оголошено податку з продажів, або компанії, організації чи вільні професії, які вибрали фіскальну систему мікропідприємств (податок з продажів у франшизі) і сплатили податок з продажів франшизи без будь-якої декларації з податку з продажів. У цьому випадку в рахунках-фактурах відображатиметься посилання «Податковий податок із продажів, який не застосовується – арт-293B CGI». ##### 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 +TypeOfSaleTaxes=Вид податку з продажу +LTRate=Оцінити +LocalTax1IsNotUsed=Не використовуйте другий податок +LocalTax1IsUsedDesc=Використовуйте другий тип податку (окрім першого) +LocalTax1IsNotUsedDesc=Не використовуйте інший вид податку (окрім першого) +LocalTax1Management=Другий вид податку 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 +LocalTax2IsNotUsed=Не використовуйте третій податок +LocalTax2IsUsedDesc=Використовуйте третій вид податку (окрім першого) +LocalTax2IsNotUsedDesc=Не використовуйте інший вид податку (окрім першого) +LocalTax2Management=Третій вид податку 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 +LocalTax1ManagementES=Управління РЕ +LocalTax1IsUsedDescES=Ставка RE за замовчуванням під час створення потенційних клієнтів, рахунків-фактур, замовлень тощо дотримується активного стандартного правила:
    Якщо покупець не піддається RE, RE за замовчуванням=0. Кінець правління.
    Якщо покупець піддається RE, тоді RE за замовчуванням. Кінець правління.
    +LocalTax1IsNotUsedDescES=За замовчуванням запропонований RE дорівнює 0. Кінець правила. +LocalTax1IsUsedExampleES=В Іспанії вони є професіоналами, які підпадають під певні розділи Іспанського IAE. +LocalTax1IsNotUsedExampleES=В Іспанії це професійні товариства та підпорядковані певним розділам Іспанського IAE. +LocalTax2ManagementES=Керівництво IRPF +LocalTax2IsUsedDescES=Ставка IRPF за замовчуванням під час створення потенційних клієнтів, рахунків-фактур, замовлень тощо дотримується активного стандартного правила:
    Якщо продавець не піддається IRPF, тоді IRPF за замовчуванням = 0. Кінець правління.
    Якщо продавець піддається IRPF, тоді IRPF за замовчуванням. Кінець правління.
    +LocalTax2IsNotUsedDescES=За замовчуванням запропонований IRPF дорівнює 0. Кінець правила. +LocalTax2IsUsedExampleES=В Іспанії фрілансери та незалежні професіонали, які надають послуги та компанії, які обрали податкову систему з модулів. +LocalTax2IsNotUsedExampleES=В Іспанії це підприємства, які не підлягають податковій системі модулів. +RevenueStampDesc="Податкова марка" або "штамп доходу" - це фіксований податок, який ви отримуєте за рахунок-фактуру (вона не залежить від суми рахунка-фактури). Це також може бути відсотковий податок, але для відсоткових податків краще використовувати другий або третій тип податку, оскільки податкові марки не надають жодної звітності. Лише в кількох країнах використовується цей тип податку. +UseRevenueStamp=Використовуйте податкову марку +UseRevenueStampExample=Значення податкової марки за замовчуванням визначається в налаштуваннях словників (%s - %s - %s) +CalcLocaltax=Звіти про місцеві податки +CalcLocaltax1=Продажі - Покупки +CalcLocaltax1Desc=Звіти про місцеві податки розраховуються на основі різниці між продажами місцевих податків і покупками місцевих податків +CalcLocaltax2=Покупки +CalcLocaltax2Desc=Звіти про місцеві податки – це загальна сума покупок із місцевих податків +CalcLocaltax3=Продажі +CalcLocaltax3Desc=Звіти про місцеві податки – це загальна сума продажів з місцевих податків +NoLocalTaxXForThisCountry=Відповідно до налаштування податків (Див. %s - %s - %s), вашій країні не потрібно використовувати такий тип податку +LabelUsedByDefault=Мітка використовується за замовчуванням, якщо не вдається знайти переклад для коду +LabelOnDocuments=Етикетка на документах +LabelOrTranslationKey=Мітка або ключ перекладу +ValueOfConstantKey=Значення константи конфігурації +ConstantIsOn=Увімкнено параметр %s +NbOfDays=Кількість днів +AtEndOfMonth=В кінці місяця +CurrentNext=A given day in month +Offset=Зміщення +AlwaysActive=Завжди активний +Upgrade=Оновлення +MenuUpgrade=Оновлення / Розширення +AddExtensionThemeModuleOrOther=Розгорніть/встановіть зовнішній додаток/модуль +WebServer=Веб-сервер +DocumentRootServer=Кореневий каталог веб-сервера +DataRootServer=Каталог файлів даних 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 +Port=порт +VirtualServerName=Ім'я віртуального сервера +OS=ОС +PhpWebLink=Посилання на Web-Php +Server=Сервер +Database=База даних +DatabaseServer=Хост бази даних +DatabaseName=Ім'я бази даних +DatabasePort=Порт бази даних +DatabaseUser=Користувач бази даних +DatabasePassword=Пароль до бази даних +Tables=Таблиці +TableName=Ім'я таблиці +NbOfRecord=№ записів +Host=Сервер +DriverType=Тип драйвера +SummarySystem=Зведення інформації про систему +SummaryConst=Список всіх параметрів налаштування Dolibarr +MenuCompanySetup=Компанія/Організація +DefaultMenuManager= Стандартний менеджер меню +DefaultMenuSmartphoneManager=Менеджер меню смартфона +Skin=Тема шкіри +DefaultSkin=Тема шкіри за замовчуванням +MaxSizeList=Максимальна довжина для списку +DefaultMaxSizeList=Максимальна довжина за умовчанням для списків +DefaultMaxSizeShortList=Максимальна довжина за умовчанням для коротких списків (тобто в картці клієнта) +MessageOfDay=Повідомлення дня +MessageLogin=Повідомлення сторінки входу +LoginPage=Сторінка входу +BackgroundImageLogin=Фонове зображення +PermanentLeftSearchForm=Постійна форма пошуку в меню зліва +DefaultLanguage=Мова за замовчуванням +EnableMultilangInterface=Увімкнути багатомовну підтримку відносин із клієнтами або постачальниками +EnableShowLogo=Показати логотип компанії в меню +CompanyInfo=Компанія/Організація +CompanyIds=Ідентичність компанії/організації +CompanyName=Ім'я CompanyAddress=Адреса -CompanyZip=Zip -CompanyTown=Town +CompanyZip=Застібка на блискавці +CompanyTown=Місто CompanyCountry=Країна -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=Delay before 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 -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 +CompanyCurrency=Основна валюта +CompanyObject=Об'єкт компанії +IDCountry=ID країни +Logo=Логотип +LogoDesc=Основний логотип компанії. Буде використано в створених документах (PDF, ...) +LogoSquarred=Логотип (у квадраті) +LogoSquarredDesc=Повинен бути значок у квадраті (ширина = висота). Цей логотип використовуватиметься як улюблена піктограма чи інша потреба, як-от для верхньої панелі меню (якщо не вимкнено в налаштуваннях дисплея). +DoNotSuggestPaymentMode=Не пропонуйте +NoActiveBankAccountDefined=Активного банківського рахунку не визначено +OwnerOfBankAccount=Власник банківського рахунку %s +BankModuleNotActive=Модуль банківських рахунків не ввімкнено +ShowBugTrackLink=Показати посилання " %s " +ShowBugTrackLinkDesc=Залиште порожнім, щоб не відображати це посилання, використовуйте значення "github" для посилання на проект Dolibarr або визначте безпосередньо URL-адресу "https://..." +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_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=Основні параметри, які використовуються для налаштування типової поведінки вашої програми (наприклад, для функцій, пов’язаних із країною). +SetupDescription4b=Це програмне забезпечення являє собою набір багатьох модулів/програм. Модулі, що відповідають вашим потребам, повинні бути увімкнені та налаштовані. Після активації цих модулів з’являться пункти меню. +AuditedSecurityEvents=Події безпеки, які перевіряються +NoSecurityEventsAreAduited=Жодні події безпеки не перевіряються. Ви можете ввімкнути їх з меню %s +Audit=Події безпеки +InfoDolibarr=Про Долібарра +InfoBrowser=Про браузер +InfoOS=Про ОС +InfoWebServer=Про веб-сервер +InfoDatabase=Про базу даних +InfoPHP=Про PHP +InfoPerf=Про вистави +InfoSecurity=Про безпеку +BrowserName=Назва браузера +BrowserOS=ОС браузера +ListOfSecurityEvents=Список подій безпеки Dolibarr +SecurityEventsPurged=Події безпеки очищені +LogEventDesc=Увімкнути ведення журналу для певних подій безпеки. Адміністратори ведуть журнал через меню %s - %s . Увага, ця функція може генерувати велику кількість даних у базі даних. +AreaForAdminOnly=Параметри налаштування можуть встановлювати лише користувачі адміністратора . +SystemInfoDesc=Системна інформація – це різна технічна інформація, яку ви отримуєте в режимі лише для читання та видиму лише для адміністраторів. +SystemAreaForAdminOnly=Ця область доступна лише користувачам-адміністраторам. Дозволи користувача Dolibarr не можуть змінити це обмеження. +CompanyFundationDesc=Відредагуйте інформацію про свою компанію/організацію. Після завершення натисніть кнопку «%s» внизу сторінки. +AccountantDesc=Якщо у вас є зовнішній бухгалтер/бухгалтер, ви можете змінити тут його інформацію. +AccountantFileNumber=Код бухгалтера +DisplayDesc=Тут можна змінити параметри, що впливають на зовнішній вигляд та презентацію програми. +AvailableModules=Доступні програми/модулі +ToActivateModule=Щоб активувати модулі, перейдіть в область налаштувань (Домашня сторінка->Налаштування->Модулі). +SessionTimeOut=Тайм-аут для сесії +SessionExplanation=Це число гарантує, що сеанс ніколи не закінчиться раніше цієї затримки, якщо очищення сесії виконується внутрішнім очисником сеансів PHP (і нічим іншим). Внутрішній очищувач сеансів PHP не гарантує, що сеанс закінчиться після цієї затримки. Термін його дії закінчиться після цієї затримки та після запуску очищувача сеансу, тому кожен %s/%s доступ, але тільки під час доступу, здійсненого іншими сеансами, (якщо це означає, що очищення зовнішнього сеансу виконується лише за допомогою 0). процес).
    Примітка: на деяких серверах із зовнішнім механізмом очищення сеансу (cron під debian, ubuntu ...), сеанси можуть бути знищені після періоду, визначеного зовнішнім налаштуванням, незалежно від значення, введеного тут. +SessionsPurgedByExternalSystem=Здається, що сеанси на цьому сервері очищаються за допомогою зовнішнього механізму (cron під Debian, ubuntu ...), ймовірно, кожні %s секунд (= значення параметра a0aee833658, змінюється тут), значення параметра a0aee833658, змінюється a0aee8336587, так що значення параметра a0aee8336587 змінює значення a0aee8336587. Ви повинні попросити адміністратора сервера змінити затримку сеансу. +TriggersAvailable=Доступні тригери +TriggersDesc=Тригери — це файли, які змінять поведінку робочого процесу Dolibarr після копіювання в каталог htdocs/core/triggers . Вони реалізують нові дії, активовані на подіях Dolibarr (створення нової компанії, перевірка рахунків-фактур, ...). +TriggerDisabledByName=Тригери в цьому файлі вимкнені суфіксом -NORUN в їх назві. +TriggerDisabledAsModuleDisabled=Тригери в цьому файлі вимкнені, оскільки модуль %s вимкнено. +TriggerAlwaysActive=Тригери в цьому файлі завжди активні, незалежно від активованих модулів Dolibarr. +TriggerActiveAsModuleActive=Тригери в цьому файлі активні, оскільки ввімкнено модуль %s . +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=Жодна подія безпеки не зареєстрована. Це нормально, якщо на сторінці "Налаштування - Безпека - Події" не ввімкнено перевірку. +NoEventFoundWithCriteria=За цим критерієм пошуку не знайдено жодної події безпеки. +SeeLocalSendMailSetup=Перегляньте локальні налаштування sendmail +BackupDesc=Повна резервна копія інсталяції Dolibarr вимагає двох кроків. +BackupDesc2=Створіть резервну копію вмісту каталогу «документи» ( %s ), що містить усі завантажені та згенеровані файли. Це також включатиме всі файли дампу, згенеровані на кроці 1. Ця операція може тривати кілька хвилин. +BackupDesc3=Скопіюйте структуру та вміст вашої бази даних ( %s ) у файл дампа. Для цього можна скористатися наступним помічником. +BackupDescX=Заархівований каталог має зберігатися в захищеному місці. +BackupDescY=Згенерований файл дампа слід зберігати в захищеному місці. +BackupPHPWarning=Резервне копіювання не може бути гарантовано цим методом. Попередній рекомендований. +RestoreDesc=Щоб відновити резервну копію Dolibarr, потрібно виконати два кроки. +RestoreDesc2=Відновіть файл резервної копії (наприклад, zip-файл) каталогу «документи» до нової інсталяції Dolibarr або в цей поточний каталог документів ( %s ). +RestoreDesc3=Відновіть структуру бази даних і дані з файлу резервної копії в базу даних нової інсталяції Dolibarr або в базу даних цієї поточної інсталяції ( %s ). Попередження, після завершення відновлення ви повинні використовувати логін/пароль, які існували під час резервного копіювання/інсталяції, щоб знову підключитися.
    Щоб відновити резервну базу даних у поточній інсталяції, ви можете скористатися цим помічником. +RestoreMySQL=Імпорт MySQL +ForcedToByAModule=Це правило примушується до %s активованим модулем +ValueIsForcedBySystem=Це значення встановлюється системою. Ви не можете змінити це. +PreviousDumpFiles=Існуючі файли резервної копії +PreviousArchiveFiles=Існуючі файли архіву +WeekStartOnDay=Перший день тижня +RunningUpdateProcessMayBeRequired=Здається, що процес оновлення необхідний (версія програми %s відрізняється від версії бази даних %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Ви повинні запустити цю команду з командного рядка після входу в оболонку з користувачем %s або ви повинні додати опцію -W в кінці командного рядка, щоб надати пароль a0aee83365837fz2fz08f407f8f407f7f407f407f40b99. +YourPHPDoesNotHaveSSLSupport=Функції SSL недоступні у вашому PHP +DownloadMoreSkins=Більше скінів для завантаження +SimpleNumRefModelDesc=Повертає контрольний номер у форматі %syymm-nnnn, де yy – рік, mm – місяць, а nnnn – послідовне число, що автоматично збільшується без скидання. +SimpleNumRefNoDateModelDesc=Повертає контрольний номер у форматі %s-nnnn, де nnnn – послідовне число, що автоматично збільшується без скидання +ShowProfIdInAddress=Показати професійне посвідчення з адресами +ShowVATIntaInAddress=Приховати номер ПДВ у межах Співтовариства +TranslationUncomplete=Частковий переклад +MAIN_DISABLE_METEO=Вимкнути великий палець погоди +MeteoStdMod=Стандартний режим +MeteoStdModEnabled=Стандартний режим увімкнено +MeteoPercentageMod=Відсотковий режим +MeteoPercentageModEnabled=Відсотковий режим увімкнено +MeteoUseMod=Натисніть, щоб використати %s +TestLoginToAPI=Тестовий вхід до API +ProxyDesc=Деякі функції Dolibarr вимагають доступу до Інтернету. Визначте тут параметри підключення до Інтернету, наприклад доступ через проксі-сервер, якщо необхідно. +ExternalAccess=Зовнішній/доступ до Інтернету +MAIN_PROXY_USE=Використовуйте проксі-сервер (інакше доступ безпосередньо до Інтернету) +MAIN_PROXY_HOST=Проксі-сервер: ім'я/адреса +MAIN_PROXY_PORT=Проксі-сервер: порт +MAIN_PROXY_USER=Проксі-сервер: Вхід/Користувач +MAIN_PROXY_PASS=Проксі-сервер: пароль +DefineHereComplementaryAttributes=Визначте будь-які додаткові/користувацькі атрибути, які потрібно додати до: %s +ExtraFields=Додаткові атрибути +ExtraFieldsLines=Додаткові атрибути (рядки) +ExtraFieldsLinesRec=Додаткові атрибути (шаблони рядків рахунків-фактур) +ExtraFieldsSupplierOrdersLines=Додаткові атрибути (рядки порядку) +ExtraFieldsSupplierInvoicesLines=Додаткові атрибути (рядки рахунків-фактур) +ExtraFieldsThirdParties=Додаткові атрибути (третя сторона) +ExtraFieldsContacts=Додаткові атрибути (контакти/адреса) +ExtraFieldsMember=Додаткові атрибути (член) +ExtraFieldsMemberType=Додаткові атрибути (тип члена) +ExtraFieldsCustomerInvoices=Додаткові атрибути (рахунки-фактури) +ExtraFieldsCustomerInvoicesRec=Додаткові атрибути (шаблони рахунків-фактур) +ExtraFieldsSupplierOrders=Додаткові атрибути (замовлення) +ExtraFieldsSupplierInvoices=Додаткові атрибути (рахунки-фактури) +ExtraFieldsProject=Додаткові атрибути (проекти) +ExtraFieldsProjectTask=Додаткові атрибути (завдання) +ExtraFieldsSalaries=Додаткові атрибути (зарплата) +ExtraFieldHasWrongValue=Атрибут %s має неправильне значення. +AlphaNumOnlyLowerCharsAndNoSpace=лише алфавітно-цифрові символи та символи нижнього регістру без пробілу +SendmailOptionNotComplete=Попередження, у деяких системах Linux для надсилання електронної пошти з вашої електронної пошти налаштування виконання sendmail повинні містити параметр -ba (параметр mail.force_extra_parameters у вашому файлі php.ini). Якщо деякі одержувачі ніколи не отримують електронні листи, спробуйте відредагувати цей параметр PHP за допомогою mail.force_extra_parameters = -ba). +PathToDocuments=Шлях до документів +PathDirectory=Довідник +SendmailOptionMayHurtBuggedMTA=Функція надсилання листів за допомогою методу "PHP mail direct" створить поштове повідомлення, яке може бути неправильно розібрано деякими поштовими серверами. В результаті деякі листи не можуть бути прочитані людьми, розміщеними на цих платформах із помилками. Це стосується деяких інтернет-провайдерів (наприклад, Orange у Франції). Це проблема не з Dolibarr або PHP, а з сервером отримання пошти. Однак ви можете додати параметр MAIN_FIX_FOR_BUGGED_MTA до 1 у Налаштування - Інше, щоб змінити Dolibarr, щоб уникнути цього. Однак у вас можуть виникнути проблеми з іншими серверами, які суворо використовують стандарт SMTP. Іншим рішенням (рекомендується) є використання методу «Бібліотека сокетів SMTP», який не має недоліків. +TranslationSetup=Налаштування перекладу +TranslationKeySearch=Знайдіть ключ або рядок перекладу +TranslationOverwriteKey=Перезаписати рядок перекладу +TranslationDesc=Як налаштувати мову відображення:
    * За замовчуванням/загальносистемний: меню Головна -> Налаштування -> Відображення
    * Для користувача: Відображення у верхній частині екрана a6f6087 на екрані a6f6087 клацніть на ім'я користувача a6f6087. картка. +TranslationOverwriteDesc=Ви також можете замінити рядки, які заповнюють наступну таблицю. Виберіть свою мову зі спадного меню "%s", вставте рядок ключа перекладу в "%s", а новий переклад - в "%s" +TranslationOverwriteDesc2=Ви можете використовувати іншу вкладку, щоб дізнатися, який ключ перекладу використовувати +TranslationString=Рядок перекладу +CurrentTranslationString=Поточний рядок перекладу +WarningAtLeastKeyOrTranslationRequired=Критерій пошуку потрібен принаймні для ключа чи рядка перекладу +NewTranslationStringToShow=Показати новий рядок перекладу +OriginalValueWas=Оригінальний переклад замінено. Початкове значення було:

    %s +TransKeyWithoutOriginalValue=Ви примусово зробили новий переклад для ключа перекладу ' %s ', який не існує в жодних мовних файлах +TitleNumberOfActivatedModules=Активовані модулі +TotalNumberOfActivatedModules=Активовані модулі: %s / %s a09a4b739f17f8z +YouMustEnableOneModule=Ви повинні ввімкнути принаймні 1 модуль +YouMustEnableTranslationOverwriteBefore=Спочатку потрібно ввімкнути перезапис перекладу, щоб дозволити замінити переклад +ClassNotFoundIntoPathWarning=Клас %s не знайдено в шляху PHP +YesInSummer=Так влітку +OnlyFollowingModulesAreOpenedToExternalUsers=Зауважте, що зовнішнім користувачам доступні лише такі модулі (незалежно від дозволів таких користувачів) і лише за умови надання дозволів:
    +SuhosinSessionEncrypt=Сховище сесії зашифровано Сухосіним +ConditionIsCurrently=Наразі умова %s +YouUseBestDriver=Ви використовуєте драйвер %s, який є найкращим драйвером, доступним на даний момент. +YouDoNotUseBestDriver=Ви використовуєте драйвер %s, але рекомендовано драйвер %s. +NbOfObjectIsLowerThanNoPb=У вас є лише %s %s в базі даних. Для цього не потрібна особлива оптимізація. +ComboListOptim=Оптимізація завантаження комбінованого списку +SearchOptim=Пошукова оптимізація +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=Нумерація моделей +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. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description +PasswordGenerationStandard=Повернути пароль, згенерований відповідно до внутрішнього алгоритму Долібарра: %s символи, що містять спільні цифри та символи в нижньому регістрі. +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 -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 +RuleForGeneratedPasswords=Правила створення та перевірки паролів +DisableForgetPasswordLinkOnLogonPage=Не показувати посилання «Забули пароль» на сторінці входу +UsersSetup=Налаштування модуля користувача +UserMailRequired=Для створення нового користувача потрібна електронна адреса +UserHideInactive=Приховати неактивних користувачів з усіх комбінованих списків користувачів (не рекомендується: це може означати, що ви не зможете фільтрувати або шукати старих користувачів на деяких сторінках) +UsersDocModules=Шаблони документів для документів, створені з запису користувача +GroupsDocModules=Шаблони документів для документів, створених із групового запису ##### HRM setup ##### -HRMSetup=HRM module setup +HRMSetup=Налаштування модуля HRM ##### 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 +CompanySetup=Налаштування модуля компанії +CompanyCodeChecker=Опції автоматичного генерування кодів клієнта/постачальника +AccountCodeManager=Опції автоматичного формування облікових кодів клієнта/постачальника +NotificationsDesc=Сповіщення електронною поштою можуть надсилатися автоматично для деяких подій Dolibarr.
    Одержувачів сповіщень можна визначити: +NotificationsDescUser=* на користувача, одного користувача за раз. +NotificationsDescContact=* для контактів третьої сторони (клієнтів або постачальників), по одному контакту. +NotificationsDescGlobal=* або встановивши глобальні адреси електронної пошти на сторінці налаштування модуля. +ModelModules=Шаблони документів +DocumentModelOdt=Створення документів із шаблонів OpenDocument (файли .ODT / .ODS з LibreOffice, OpenOffice, KOffice, TextEdit,...) +WatermarkOnDraft=Водяний знак на проекті документа +JSOnPaimentBill=Активуйте функцію автоматичного заповнення платіжних рядків у платіжній формі +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. Він містить «загальнодоступний» каталог, відкритий для будь-якого користувача, який знає 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=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 +BillsSetup=Налаштування модуля рахунків-фактур +BillsNumberingModule=Модель нумерації рахунків-фактур та кредитових нот +BillsPDFModules=Моделі накладних документів +BillsPDFModulesAccordindToInvoiceType=Моделі документів рахунків-фактур за типом рахунка-фактури +PaymentsPDFModules=Моделі платіжних документів +ForceInvoiceDate=Змусити дату рахунка-фактури до дати підтвердження +SuggestedPaymentModesIfNotDefinedInInvoice=Пропонований режим оплати в рахунку-фактурі за замовчуванням, якщо не визначено в рахунку-фактурі +SuggestPaymentByRIBOnAccount=Запропонуйте оплату шляхом зняття на рахунок +SuggestPaymentByChequeToAddress=Запропонуйте оплату чеком до +FreeLegalTextOnInvoices=Безкоштовний текст на рахунках-фактурах +WatermarkOnDraftInvoices=Водяний знак на чернетках рахунків-фактур (немає, якщо порожній) +PaymentsNumberingModule=Модель нумерації платежів +SuppliersPayment=Платежі постачальників +SupplierPaymentSetup=Налаштування оплати постачальником +InvoiceCheckPosteriorDate=Перевірте дату виготовлення перед підтвердженням +InvoiceCheckPosteriorDateHelp=Перевірка рахунка-фактури буде заборонена, якщо його дата передує даті останнього рахунка-фактури такого ж типу. ##### 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 +PropalSetup=Налаштування модуля комерційних пропозицій +ProposalsNumberingModules=Моделі нумерації комерційних пропозицій +ProposalsPDFModules=Моделі документів комерційної пропозиції +SuggestedPaymentModesIfNotDefinedInProposal=Пропонований режим оплати в пропозиції за замовчуванням, якщо не визначено в пропозиції +FreeLegalTextOnProposal=Вільний текст на комерційні пропозиції +WatermarkOnDraftProposal=Водяний знак на чернетках комерційних пропозицій (немає, якщо порожній) +BANK_ASK_PAYMENT_BANK_DURING_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 +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=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 -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 +SuggestedPaymentModesIfNotDefinedInOrder=Пропонований режим оплати в замовленні на продаж за замовчуванням, якщо не визначено в замовленні +OrdersSetup=Налаштування керування замовленнями на продаж +OrdersNumberingModules=Нумерація моделей замовлень +OrdersModelModule=Замовлення моделей документів +FreeLegalTextOnOrders=Безкоштовний текст на замовлення +WatermarkOnDraftOrders=Водяний знак на чернетках наказів (немає, якщо порожній) +ShippableOrderIconInList=Додайте піктограму в список замовлень, яка вказує, чи замовлення можна відправити +BANK_ASK_PAYMENT_BANK_DURING_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) +InterventionsSetup=Налаштування модуля інтервенцій +FreeLegalTextOnInterventions=Вільний текст до документів інтервенції +FicheinterNumberingModules=Моделі інтервенційної нумерації +TemplatePDFInterventions=Моделі документів інтервенційної картки +WatermarkOnDraftInterventionCards=Водяний знак на документах картки інтервенції (немає, якщо порожній) ##### 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) +ContractsSetup=Налаштування модуля Контракти/Підписки +ContractsNumberingModules=Модулі нумерації договорів +TemplatePDFContracts=Моделі контрактних документів +FreeLegalTextOnContracts=Вільний текст про контракти +WatermarkOnDraftContractCards=Водяний знак на проектах контрактів (немає, якщо порожній) ##### 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 +MembersSetup=Налаштування модуля Members +MemberMainOptions=Основні варіанти +AdherentLoginRequired= Керуйте логіном для кожного члена +AdherentMailRequired=Для створення нового учасника потрібна електронна адреса +MemberSendInformationByMailByDefault=Прапорець для надсилання підтвердження поштою учасникам (перевірка або нова підписка) увімкнено за замовчуванням +MemberCreateAnExternalUserForSubscriptionValidated=Створіть зовнішній логін користувача для кожної підтвердженої підписки нового члена +VisitorCanChooseItsPaymentMode=Відвідувач може вибрати один із доступних способів оплати +MEMBER_REMINDER_EMAIL=Увімкнути автоматичне нагадування електронною поштою про термін дії підписок. Примітка. Модуль %s має бути увімкнений та правильно налаштований для надсилання нагадувань. +MembersDocModules=Шаблони документів для документів, створених із запису члена ##### LDAP setup ##### -LDAPSetup=LDAP Setup +LDAPSetup=Налаштування LDAP 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 +LDAPUsersSynchro=Користувачі +LDAPGroupsSynchro=Групи +LDAPContactsSynchro=Контакти +LDAPMembersSynchro=Члени +LDAPMembersTypesSynchro=Типи членів +LDAPSynchronization=Синхронізація LDAP +LDAPFunctionsNotAvailableOnPHP=Функції LDAP недоступні у вашому 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 +LDAPNamingAttribute=Введіть LDAP +LDAPSynchronizeUsers=Організація користувачів в LDAP +LDAPSynchronizeGroups=Організація груп в LDAP +LDAPSynchronizeContacts=Організація контактів у LDAP +LDAPSynchronizeMembers=Організація членів фонду в LDAP +LDAPSynchronizeMembersTypes=Організація типів членів фонду в LDAP +LDAPPrimaryServer=Основний сервер +LDAPSecondaryServer=Вторинний сервер +LDAPServerPort=Порт сервера +LDAPServerPortExample=Стандартний або StartTLS: 389, LDAP: 636 +LDAPServerProtocolVersion=Версія протоколу +LDAPServerUseTLS=Використовуйте TLS +LDAPServerUseTLSExample=Ваш LDAP-сервер використовує StartTLS +LDAPServerDn=DN сервера +LDAPAdminDn=Адміністратор Д.Н +LDAPAdminDnExample=Повне DN (наприклад: cn=admin,dc=example,dc=com або cn=Administrator,cn=Users,dc=example,dc=com для активного каталогу) +LDAPPassword=Пароль адміністратора +LDAPUserDn=DN користувачів +LDAPUserDnExample=Повне DN (наприклад: ou=users,dc=example,dc=com) +LDAPGroupDn=DN груп +LDAPGroupDnExample=Повне DN (наприклад: ou=groups,dc=example,dc=com) +LDAPServerExample=Адреса сервера (наприклад: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerDnExample=Повне DN (наприклад: dc=example,dc=com) +LDAPDnSynchroActive=Синхронізація користувачів і груп +LDAPDnSynchroActiveExample=Синхронізація LDAP з Dolibarr або Dolibarr з LDAP +LDAPDnContactActive=Синхронізація контактів +LDAPDnContactActiveExample=Активована/Неактивована синхронізація +LDAPDnMemberActive=Синхронізація учасників +LDAPDnMemberActiveExample=Активована/Неактивована синхронізація +LDAPDnMemberTypeActive=Синхронізація типів учасників +LDAPDnMemberTypeActiveExample=Активована/Неактивована синхронізація +LDAPContactDn=DN контактів Dolibarr +LDAPContactDnExample=Заповніть DN (наприклад: ou=contacts,dc=example,dc=com) +LDAPMemberDn=Члени Dolibarr DN +LDAPMemberDnExample=Повне DN (наприклад: ou=члени,dc=приклад,dc=com) +LDAPMemberObjectClassList=Список об'єктного класу +LDAPMemberObjectClassListExample=Список атрибутів запису, що визначають об'єктний клас (наприклад: top,inetOrgPerson або top,user для активного каталогу) +LDAPMemberTypeDn=Члени Dolibarr типу DN +LDAPMemberTypepDnExample=Повне DN (наприклад: ou=memberstypes,dc=example,dc=com) +LDAPMemberTypeObjectClassList=Список об'єктного класу +LDAPMemberTypeObjectClassListExample=Список атрибутів запису, що визначають об'єктний клас (наприклад: top,groupOfUniqueNames) +LDAPUserObjectClassList=Список об'єктного класу +LDAPUserObjectClassListExample=Список атрибутів запису, що визначають об'єктний клас (наприклад: top,inetOrgPerson або top,user для активного каталогу) +LDAPGroupObjectClassList=Список об'єктного класу +LDAPGroupObjectClassListExample=Список атрибутів запису, що визначають об'єктний клас (наприклад: top,groupOfUniqueNames) +LDAPContactObjectClassList=Список об'єктного класу +LDAPContactObjectClassListExample=Список атрибутів запису, що визначають об'єктний клас (наприклад: top,inetOrgPerson або top,user для активного каталогу) +LDAPTestConnect=Перевірте з'єднання LDAP +LDAPTestSynchroContact=Перевірка синхронізації контактів +LDAPTestSynchroUser=Перевірка синхронізації користувача +LDAPTestSynchroGroup=Синхронізація тестової групи +LDAPTestSynchroMember=Синхронізація учасників тесту +LDAPTestSynchroMemberType=Синхронізація типу члена тесту +LDAPTestSearch= Перевірте пошук LDAP +LDAPSynchroOK=Тест синхронізації успішно +LDAPSynchroKO=Помилка тесту синхронізації +LDAPSynchroKOMayBePermissions=Помилка тесту синхронізації. Переконайтеся, що підключення до сервера правильно налаштовано та дозволяє оновлення LDAP +LDAPTCPConnectOK=Підключення TCP до сервера LDAP успішно (Server=%s, Port=%s) +LDAPTCPConnectKO=Помилка підключення TCP до сервера LDAP (Server=%s, Port=%s) +LDAPBindOK=Успішне підключення/автентифікація до сервера LDAP (сервер=%s, порт=%s, адміністратор=%s, пароль=%s) +LDAPBindKO=Помилка підключення/автентифікації до сервера LDAP (сервер=%s, порт=%s, адміністратор=%s, пароль=%s) +LDAPSetupForVersion3=Сервер LDAP налаштовано для версії 3 +LDAPSetupForVersion2=Сервер LDAP налаштовано на версію 2 +LDAPDolibarrMapping=Картографування Долібарра +LDAPLdapMapping=Відображення LDAP +LDAPFieldLoginUnix=Вхід (unix) +LDAPFieldLoginExample=Приклад: uid +LDAPFilterConnection=Пошуковий фільтр +LDAPFilterConnectionExample=Приклад: &(objectClass=inetOrgPerson) +LDAPGroupFilterExample=Приклад: &(objectClass=groupOfUsers) +LDAPFieldLoginSamba=Вхід (samba, activedirectory) +LDAPFieldLoginSambaExample=Приклад: samaccountname +LDAPFieldFullname=Повне ім'я +LDAPFieldFullnameExample=Приклад: cn +LDAPFieldPasswordNotCrypted=Пароль не зашифрований +LDAPFieldPasswordCrypted=Пароль зашифрований +LDAPFieldPasswordExample=Приклад: пароль користувача +LDAPFieldCommonNameExample=Приклад: cn +LDAPFieldName=Ім'я +LDAPFieldNameExample=Приклад: сн LDAPFieldFirstName=Ім'я -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 +LDAPFieldFirstNameExample=Приклад: данеНазва +LDAPFieldMail=Адреса електронної пошти +LDAPFieldMailExample=Приклад: пошта +LDAPFieldPhone=Професійний номер телефону +LDAPFieldPhoneExample=Приклад: номер телефону +LDAPFieldHomePhone=Особистий номер телефону +LDAPFieldHomePhoneExample=Приклад: домашній телефон +LDAPFieldMobile=Стільниковий телефон +LDAPFieldMobileExample=Приклад: мобільний +LDAPFieldFax=Номер факсу +LDAPFieldFaxExample=Приклад: номер телефону факсиміле +LDAPFieldAddress=вул +LDAPFieldAddressExample=Приклад: вул +LDAPFieldZip=Застібка на блискавці +LDAPFieldZipExample=Приклад: поштовий індекс +LDAPFieldTown=Місто +LDAPFieldTownExample=Приклад: л LDAPFieldCountry=Країна -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example: description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example: publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example: uniqueMember -LDAPFieldBirthdate=Birthdate +LDAPFieldDescription=Опис +LDAPFieldDescriptionExample=Приклад: опис +LDAPFieldNotePublic=Громадська примітка +LDAPFieldNotePublicExample=Приклад: publicnote +LDAPFieldGroupMembers= Члени групи +LDAPFieldGroupMembersExample= Приклад: uniqueMember +LDAPFieldBirthdate=Дата народження LDAPFieldCompany=Компанія -LDAPFieldCompanyExample=Example: o +LDAPFieldCompanyExample=Приклад: о LDAPFieldSid=SID -LDAPFieldSidExample=Example: objectsid -LDAPFieldEndLastSubscription=Date of subscription end +LDAPFieldSidExample=Приклад: objectsid +LDAPFieldEndLastSubscription=Дата закінчення підписки LDAPFieldTitle=Місце роботи -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 +LDAPFieldTitleExample=Приклад: заголовок +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=Ця сторінка дозволяє вам визначити назву атрибутів LDAP у дереві LDAP для всіх даних, знайдених у типах членів Dolibarr. +LDAPDescValues=Прикладні значення розроблені для OpenLDAP з такими завантаженими схемами: core.schema, cosine.schema, inetorgperson.schema a09a4b739f1). Якщо ви використовуєте ці значення та OpenLDAP, змініть свій файл конфігурації LDAP slapd.conf , щоб завантажити всі ці схеми. +ForANonAnonymousAccess=Для автентифікованого доступу (наприклад, для доступу до запису) +PerfDolibarr=Звіт про налаштування/оптимізацію продуктивності +YouMayFindPerfAdviceHere=На цій сторінці наведено деякі перевірки або поради щодо продуктивності. +NotInstalled=Не встановлено. +NotSlowedDownByThis=Не сповільнюється цим. +NotRiskOfLeakWithThis=При цьому немає ризику витоку. +ApplicativeCache=Аплікативний кеш +MemcachedNotAvailable=Не знайдено аплікативний кеш. Ви можете підвищити продуктивність, встановивши кеш-сервер Memcached і модуль, здатний використовувати цей сервер кешу.
    Більше інформації тут http://wiki.dolibarr.org/index.php/Module_MemCached_EN .
    Зауважте, що багато постачальників веб-хостингу не надають такий сервер кешу. +MemcachedModuleAvailableButNotSetup=Знайдено модуль memcached для аплікативного кешу, але налаштування модуля не завершено. +MemcachedAvailableAndSetup=Модуль memcached, призначений для використання сервера memcached, увімкнено. +OPCodeCache=Кеш OPCode +NoOPCodeCacheFound=Не знайдено кешу OPCode. Можливо, ви використовуєте кеш OPCode, відмінний від XCache або eAccelerator (добре), або, можливо, у вас немає кешу OPCode (дуже погано). +HTTPCacheStaticResources=Кеш HTTP для статичних ресурсів (css, img, javascript) +FilesOfTypeCached=Файли типу %s кешуються сервером HTTP +FilesOfTypeNotCached=Файли типу %s не кешуються сервером HTTP +FilesOfTypeCompressed=Файли типу %s стискаються HTTP-сервером +FilesOfTypeNotCompressed=Файли типу %s не стискаються сервером HTTP +CacheByServer=Кеш на сервері +CacheByServerDesc=Наприклад, використовуючи директиву Apache "ExpiresByType image/gif A2592000" +CacheByClient=Кеш браузером +CompressionOfResources=Стиснення HTTP-відповідей +CompressionOfResourcesDesc=Наприклад, використовуючи директиву Apache "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=Таке автоматичне виявлення неможливе з поточними браузерами +DefaultValuesDesc=Тут ви можете визначити значення за замовчуванням, яке ви бажаєте використовувати під час створення нового запису, та/або фільтри за замовчуванням або порядок сортування при переліку записів. +DefaultCreateForm=Значення за замовчуванням (для використання у формах) +DefaultSearchFilters=Пошукові фільтри за замовчуванням +DefaultSortOrder=Порядок сортування за замовчуванням +DefaultFocus=Поля фокусування за замовчуванням +DefaultMandatory=Обов'язкові поля форми ##### 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! +ProductSetup=Налаштування модуля продуктів +ServiceSetup=Налаштування сервісного модуля +ProductServiceSetup=Налаштування модулів продуктів і послуг +NumberOfProductShowInSelect=Максимальна кількість продуктів для відображення в комбінованих списках вибору (0 = без обмежень) +ViewProductDescInFormAbility=Відображати описи продуктів у рядках елементів (інакше показувати опис у спливаючому вікні) +OnProductSelectAddProductDesc=Як використовувати опис товарів під час додавання товару як рядка документа +AutoFillFormFieldBeforeSubmit=Автоматичне заповнення поля введення опису описом товару +DoNotAutofillButAutoConcat=Не заповнюйте автоматично поле введення описом товару. Опис товару буде автоматично об’єднано з введеним описом. +DoNotUseDescriptionOfProdut=Опис товару ніколи не буде включено в опис рядків документів +MergePropalProductCard=Активуйте на вкладці «Прикріплені файли» продукту/послуги опцію для об’єднання документа PDF продукту з PDF-файлом пропозиції Azur, якщо продукт/послуга є в пропозиції +ViewProductDescInThirdpartyLanguageAbility=Відображати описи продуктів у формах мовою третьої сторони (інакше мовою користувача) +UseSearchToSelectProductTooltip=Крім того, якщо у вас велика кількість продуктів (> 100 000), ви можете збільшити швидкість, встановивши для константи PRODUCT_DONOTSEARCH_ANYWHERE значення 1 у меню Налаштування->Інше. Тоді пошук буде обмежено початком рядка. +UseSearchToSelectProduct=Зачекайте, поки ви не натиснете клавішу, перш ніж завантажувати вміст комбінованого списку продуктів (це може підвищити продуктивність, якщо у вас велика кількість продуктів, але це менш зручно) +SetDefaultBarcodeTypeProducts=Тип штрих-коду за замовчуванням для продуктів +SetDefaultBarcodeTypeThirdParties=Тип штрих-коду за замовчуванням для третіх сторін +UseUnits=Визначте одиницю виміру для кількості під час видання рядків замовлення, пропозиції або рахунка-фактури +ProductCodeChecker= Модуль для генерації та перевірки коду товару (продукту чи послуги) +ProductOtherConf= Конфігурація продукту/послуги +IsNotADir=це не каталог! ##### 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 +SyslogSetup=Налаштування модуля журналів +SyslogOutput=Реєструє виходи +SyslogFacility=Об'єкт +SyslogLevel=Рівень +SyslogFilename=Ім'я файлу та шлях +YouCanUseDOL_DATA_ROOT=Ви можете використовувати DOL_DATA_ROOT/dolibarr.log для файлу журналу в каталозі Dolibarr «документи». Ви можете встановити інший шлях для зберігання цього файлу. +ErrorUnknownSyslogConstant=Константа %s не є відомою константою Syslog +OnlyWindowsLOG_USER=У Windows підтримуватиметься лише засіб LOG_USER +CompressSyslogs=Стиснення та резервне копіювання файлів журналу налагодження (генерується модулем Log для налагодження) +SyslogFileNumberOfSaves=Кількість журналів резервного копіювання, які потрібно зберегти +ConfigureCleaningCronjobToSetFrequencyOfSaves=Налаштуйте заплановану роботу очищення, щоб встановити частоту резервного копіювання журналів ##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt +DonationsSetup=Налаштування модуля пожертв +DonationsReceiptModel=Шаблон квитанції про пожертвування ##### 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 +BarcodeSetup=Налаштування штрих-коду +PaperFormatModule=Модуль формату друку +BarcodeEncodeModule=Тип кодування штрих-коду +CodeBarGenerator=Генератор штрих-коду +ChooseABarCode=Генератор не визначено +FormatNotSupportedByGenerator=Формат не підтримується цим генератором +BarcodeDescEAN8=Штрих-код типу EAN8 +BarcodeDescEAN13=Штрих-код типу EAN13 +BarcodeDescUPC=Штрих-код типу UPC +BarcodeDescISBN=Штрих-код типу ISBN +BarcodeDescC39=Штрих-код типу С39 +BarcodeDescC128=Штрих-код типу С128 +BarcodeDescDATAMATRIX=Штрих-код типу Datamatrix +BarcodeDescQRCODE=Штрих-код типу QR-код +GenbarcodeLocation=Інструмент командного рядка генерування штрих-коду (використовується внутрішнім механізмом для деяких типів штрих-коду). Повинен бути сумісний із "genbarcode".
    Наприклад: /usr/local/bin/genbarcode +BarcodeInternalEngine=Внутрішній двигун +BarCodeNumberManager=Менеджер для автоматичного визначення номерів штрих-коду ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=Налаштування модуля Прямі дебетові платежі ##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed +ExternalRSSSetup=Налаштування зовнішнього імпорту RSS +NewRSS=Новий RSS-канал +RSSUrl=URL-адреса RSS +RSSUrlExample=Цікавий RSS-канал ##### 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 +MailingSetup=Налаштування модуля електронної розсилки +MailingEMailFrom=Електронна пошта відправника (Від) для листів, надісланих за допомогою модуля електронної пошти +MailingEMailError=Повернути електронну пошту (Помилки-до) для листів з помилками +MailingDelay=Секунди очікування після надсилання наступного повідомлення ##### 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 +NotificationSetup=Налаштування модуля сповіщень електронною поштою +NotificationEMailFrom=Електронна пошта відправника (Від) для листів, надісланих модулем сповіщень +FixedEmailTarget=одержувач +NotificationDisableConfirmMessageContact=Приховати список одержувачів (підписаних як контакт) сповіщень у повідомленні підтвердження +NotificationDisableConfirmMessageUser=Приховати список одержувачів (підписаних як користувач) сповіщень у повідомленні підтвердження +NotificationDisableConfirmMessageFix=Приховати список одержувачів (підписаних як глобальна електронна пошта) сповіщень у повідомленні підтвердження ##### 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 +SendingsSetup=Налаштування модуля доставки +SendingsReceiptModel=Модель квитанції про відправку +SendingsNumberingModules=Модулі нумерації відправок +SendingsAbility=Підтримка транспортних листів для доставки клієнтам +NoNeedForDeliveryReceipts=У більшості випадків транспортні аркуші використовуються як аркуші для поставок клієнтам (перелік продуктів для відправки), так і аркуші, які отримує та підписує клієнт. Тому квитанція про доставку продукції є дубльованою функцією і рідко активується. +FreeLegalTextOnShippings=Безкоштовний текст про відправлення ##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts +DeliveryOrderNumberingModules=Модуль нумерації чеків поставки продукції +DeliveryOrderModel=Модель квитанції про поставку продукції +DeliveriesOrderAbility=Підтримка квитанцій про поставку продукції +FreeLegalTextOnDeliveryReceipts=Безкоштовний текст на квитанціях про доставку ##### 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 +AdvancedEditor=Розширений редактор +ActivateFCKeditor=Активувати розширений редактор для: +FCKeditorForNotePublic=Створення/видання WYSIWIG поля «публічні примітки» елементів +FCKeditorForNotePrivate=Створення/видання WYSIWIG поля «приватні примітки» елементів +FCKeditorForCompany=Створення/видання WYSIWIG опису поля елементів (крім продуктів/послуг) +FCKeditorForProduct=Створення/видання WYSIWIG опису поля продуктів/послуг +FCKeditorForProductDetails=Створення/видання WYSIWIG рядків деталей продуктів для всіх сутностей (пропозиції, замовлення, рахунки-фактури тощо...). Попередження: використання цієї опції в цьому випадку серйозно не рекомендується, оскільки це може створити проблеми зі спеціальними символами та форматуванням сторінки під час створення PDF-файлів. +FCKeditorForMailing= Створення/видання WYSIWIG для масових розсилок електронною поштою (Інструменти->Електронна розсилка) +FCKeditorForUserSignature=Створення/видання підпису користувача WYSIWIG +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), наданий за замовчуванням, або зовнішній модуль, це налаштування може ігноруватися вашим POS-модулем. Більшість POS-модулів розроблені за замовчуванням для негайного створення рахунка-фактури та зменшення запасів, незалежно від наведених тут опцій. Тому, якщо вам потрібно чи ні, щоб зменшити запаси під час реєстрації продажу з вашого POS, перевірте також налаштування вашого POS-модуля. ##### 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 +MenuDeleted=Меню видалено +Menu=Меню +Menus=Меню +TreeMenuPersonalized=Персоналізовані меню +NotTopTreeMenuPersonalized=Персоналізовані меню, не пов’язані з верхнім пунктом меню +NewMenu=Нове меню +MenuHandler=Обробник меню +MenuModule=Модуль джерела +HideUnauthorizedMenu=Приховати неавторизовані меню також для внутрішніх користувачів (в іншому випадку вони будуть сірими) +DetailId=Меню ідентифікатора +DetailMenuHandler=Обробник меню, де відображати нове меню +DetailMenuModule=Ім’я модуля, якщо вхід в меню надходить із модуля +DetailType=Тип меню (верхнє або ліворуч) +DetailTitre=Мітка меню або код етикетки для перекладу +DetailUrl=URL-адреса, куди вам надсилає меню (Посилання на абсолютну URL-адресу або зовнішнє посилання з http://) +DetailEnabled=Умова для показу чи не входу +DetailRight=Умова для відображення несанкціонованих сірих меню +DetailLangs=Назва файлу мови для перекладу коду етикетки +DetailUser=Інтерн / Екстерн / Усі +Target=Ціль +DetailTarget=Ціль для посилань (_blank top відкриває нове вікно) +DetailLevel=Рівень (-1: верхнє меню, 0: меню заголовка, >0 меню та підменю) +ModifMenu=Зміна меню +DeleteMenu=Видалити пункт меню +ConfirmDeleteMenu=Ви впевнені, що хочете видалити пункт меню %s ? +FailedToInitializeMenu=Не вдалося ініціалізувати меню ##### 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 +TaxSetup=Налаштування модуля податки, соціальні чи фіскальні податки та дивіденди +OptionVatMode=ПДВ до сплати +OptionVATDefault=Стандартна основа +OptionVATDebitOption=База нарахування +OptionVatDefaultDesc=ПДВ сплачується:
    - при доставці товарів (за датою виставлення рахунку)
    - при оплаті послуг +OptionVatDebitOptionDesc=ПДВ сплачується:
    - при доставці товарів (за датою виставлення рахунку)
    - за рахунком-фактурою (дебетом) за послуги +OptionPaymentForProductAndServices=Касова база продуктів і послуг +OptionPaymentForProductAndServicesDesc=ПДВ сплачується:
    - на оплату товарів
    - на оплату послуг +SummaryOfVatExigibilityUsedByDefault=Час сплати ПДВ за замовчуванням відповідно до обраного варіанту: +OnDelivery=При доставці +OnPayment=На оплату +OnInvoice=На рахунку-фактурі +SupposedToBePaymentDate=Використана дата платежу +SupposedToBeInvoiceDate=Використана дата рахунка-фактури +Buy=Купуйте +Sell=Продати +InvoiceDateUsed=Використана дата рахунка-фактури +YourCompanyDoesNotUseVAT=Ваша компанія не використовує ПДВ (Домашня сторінка - Налаштування - Компанія/Організація), тому параметрів ПДВ для налаштування немає. +AccountancyCode=Кодекс бухгалтерського обліку +AccountancyCodeSell=Рахунок продажу. код +AccountancyCodeBuy=Придбати обліковий запис. код +CREATE_NEW_VAT_WITHOUT_AUTO_PAYMENT=Під час створення нового податку за замовчуванням залишайте прапорець «Автоматично створювати платіж» порожнім ##### 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 +AgendaSetup=Налаштування модуля подій та порядку денного +PasswordTogetVCalExport=Ключ для авторизації посилання на експорт +SecurityKey = Ключ захисту +PastDelayVCalExport=Не експортуйте подію старше ніж +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=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. +ClickToDialSetup=Натисніть «Налаштування модуля для набору». +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=Використовуйте лише посилання "tel:" на номерах телефонів +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 -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) +CashDesk=Касовий термінал +CashDeskSetup=Налаштування модуля точки продажу +CashDeskThirdPartyForSell=Типова третя сторона за замовчуванням для продажу +CashDeskBankAccountForSell=Рахунок за замовчуванням для отримання готівкових платежів +CashDeskBankAccountForCheque=Обліковий запис за замовчуванням для отримання платежів чеком +CashDeskBankAccountForCB=Обліковий запис за замовчуванням для отримання платежів кредитними картками +CashDeskBankAccountForSumup=Банківський рахунок за умовчанням для отримання платежів через SumUp +CashDeskDoNotDecreaseStock=Вимкнути зменшення запасів, коли продаж здійснюється з точки продажу (якщо «ні», зменшення запасу здійснюється для кожного продажу, здійсненого з POS, незалежно від параметра, встановленого в модулі «Запас»). +CashDeskIdWareHouse=Змусити та обмежити використання складу для зменшення запасів +StockDecreaseForPointOfSaleDisabled=Зменшення запасів з точки продажу вимкнено +StockDecreaseForPointOfSaleDisabledbyBatch=Зменшення запасів у POS несумісне з модулем керування серійним/партійним зв’язком (наразі активним), тому зменшення запасів вимкнено. +CashDeskYouDidNotDisableStockDecease=Ви не вимкнули зменшення запасів під час продажу з точки продажу. Тому потрібен склад. +CashDeskForceDecreaseStockLabel=Зменшення запасів партійної продукції було вимушеним. +CashDeskForceDecreaseStockDesc=Зменшіть спочатку на найстаріші дати споживання та продажу. +CashDeskReaderKeyCodeForEnter=Код ключа для "Enter", визначений у зчитувачі штрих-кодів (Приклад: 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 +BookmarkSetup=Налаштування модуля закладки +BookmarkDesc=Цей модуль дозволяє керувати закладками. Ви також можете додати ярлики до будь-яких сторінок Dolibarr або зовнішніх веб-сайтів у лівому меню. +NbOfBoomarkToShow=Максимальна кількість закладок для відображення в меню зліва ##### 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 +WebServicesSetup=Налаштування модуля веб-сервісів +WebServicesDesc=Увімкнувши цей модуль, Dolibarr стає сервером веб-сервісів для надання різноманітних веб-сервісів. +WSDLCanBeDownloadedHere=Файли дескрипторів WSDL наданих послуг можна завантажити тут +EndPointIs=Клієнти SOAP повинні надсилати свої запити на кінцеву точку Dolibarr, доступну за адресою 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. +ApiSetup=Налаштування модуля API +ApiDesc=Увімкнувши цей модуль, Dolibarr стає REST-сервером для надання різноманітних веб-сервісів. +ApiProductionMode=Увімкнути виробничий режим (це активує використання кешу для керування службами) +ApiExporerIs=Ви можете досліджувати та тестувати API за адресою URL +OnlyActiveElementsAreExposed=Відображаються лише елементи з активованих модулів +ApiKey=Ключ для API +WarningAPIExplorerDisabled=Довідник API вимкнено. API Explorer не потрібен для надання послуг API. Це інструмент для розробника для пошуку/тестування REST API. Якщо вам потрібен цей інструмент, перейдіть до налаштування модуля API REST, щоб активувати його. ##### 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 +BankSetupModule=Налаштування банківського модуля +FreeLegalTextOnChequeReceipts=Вільний текст на чеках +BankOrderShow=Відображення порядку банківських рахунків для країн із використанням "детального номера банку" +BankOrderGlobal=Генеральний +BankOrderGlobalDesc=Загальний порядок відображення BankOrderES=Іспанська -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Check Receipts Numbering Module +BankOrderESDesc=Іспанський порядок показу +ChequeReceiptsNumberingModule=Перевірте модуль нумерації чеків ##### Multicompany ##### -MultiCompanySetup=Multi-company module setup +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=Якщо встановлено значення, відмінне від null, не забудьте надати дозволи групам або користувачам, яким дозволено друге схвалення ##### 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 +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. +NoteOnPathLocation=Зауважте, що ваш файл із даними IP-адреси для країни повинен знаходитися в каталозі, який може прочитати ваш PHP (перевірте налаштування PHP open_basedir і дозволи файлової системи). +YouCanDownloadFreeDatFileTo=Ви можете завантажити безкоштовну демонстраційну версію файлу країни Maxmind GeoIP за адресою %s. +YouCanDownloadAdvancedDatFileTo=Ви також можете завантажити більш повну версію з оновленнями, файлу країни Maxmind GeoIP за адресою %s. +TestGeoIPResult=Тест перетворення IP -> країна ##### 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. +ProjectsNumberingModules=Модуль нумерації проектів +ProjectsSetup=Налаштування модуля проекту +ProjectsModelModule=Модель документа звітів проекту +TasksNumberingModules=Модуль нумерації завдань +TaskModelModule=Звіти про завдання моделі документа +UseSearchToSelectProject=Зачекайте, поки не буде натиснута клавіша, перш ніж завантажувати вміст комбінованого списку проекту.
    Це може покращити продуктивність, якщо у вас є велика кількість проектів, але це менш зручно. ##### 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) -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=Hide images 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 dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) -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 +AccountingPeriods=Облікові періоди +AccountingPeriodCard=Розрахунковий період +NewFiscalYear=Новий звітний період +OpenFiscalYear=Відкритий звітний період +CloseFiscalYear=Закрити звітний період +DeleteFiscalYear=Видалити звітний період +ConfirmDeleteFiscalYear=Ви впевнені, що видалити цей звітний період? +ShowFiscalYear=Показати розрахунковий період +AlwaysEditable=Завжди можна редагувати +MAIN_APPLICATION_TITLE=Примусово відображати назву програми (попередження: встановлення власного імені тут може порушити функцію автозаповнення під час використання мобільного додатка DoliDroid) +NbMajMin=Мінімальна кількість символів верхнього регістру +NbNumMin=Мінімальна кількість цифрових символів +NbSpeMin=Мінімальна кількість спеціальних символів +NbIteConsecutive=Максимальна кількість повторюваних однакових символів +NoAmbiCaracAutoGeneration=Не використовуйте двозначні символи ("1","l","i","|","0","O") для автоматичного створення +SalariesSetup=Встановлення модульних окладів +SortOrder=Порядок сортування +Format=Формат +TypePaymentDesc=0: Тип оплати клієнтом, 1: Тип оплати постачальником, 2: Тип оплати як клієнти, так і постачальники +IncludePath=Включити шлях (визначений у змінній %s) +ExpenseReportsSetup=Налаштування модуля Звіти про витрати +TemplatePDFExpenseReports=Шаблони документів для створення документа звіту про витрати +ExpenseReportsRulesSetup=Налаштування модуля Звіти про витрати - Правила +ExpenseReportNumberingModules=Модуль нумерації звітів про витрати +NoModueToManageStockIncrease=Не було активовано жодного модуля, здатного керувати автоматичним збільшенням запасів. Збільшення запасу буде здійснюватися лише при ручному введенні. +YouMayFindNotificationsFeaturesIntoModuleNotification=Ви можете знайти варіанти сповіщень електронною поштою, увімкнувши та налаштувавши модуль «Сповіщення». +TemplatesForNotifications=Шаблони для сповіщень +ListOfNotificationsPerUser=Список автоматичних сповіщень для кожного користувача* +ListOfNotificationsPerUserOrContact=Список можливих автоматичних сповіщень (про ділову подію), доступних для кожного користувача* або для кожного контакту** +ListOfFixedNotifications=Список автоматичних фіксованих сповіщень +GoOntoUserCardToAddMore=Перейдіть на вкладку «Сповіщення» користувача, щоб додати або видалити сповіщення для користувачів +GoOntoContactCardToAddMore=Перейдіть на вкладку «Сповіщення» третьої сторони, щоб додати або видалити сповіщення для контактів/адрес +Threshold=Поріг +BackupDumpWizard=Майстер для створення файлу дампа бази даних +BackupZipWizard=Майстер для створення архіву документів каталогу +SomethingMakeInstallFromWebNotPossible=Установка зовнішнього модуля з веб-інтерфейсу неможлива з наступних причин: +SomethingMakeInstallFromWebNotPossible2=З цієї причини описаний тут процес оновлення є ручним процесом, який може виконувати лише привілейований користувач. +InstallModuleFromWebHasBeenDisabledByFile=Встановлення зовнішнього модуля з програми було вимкнено вашим адміністратором. Ви повинні попросити його видалити файл %s , щоб дозволити цю функцію. +ConfFileMustContainCustom=Для встановлення або створення зовнішнього модуля з програми необхідно зберегти файли модуля в каталозі %s . Щоб цей каталог обробив Dolibarr, ви повинні налаштувати ваш conf/conf.php , щоб додати 2 рядки директиви:
    a0e7843947c06brl'/mainro_doli_bz0';

    $dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Підсвічуйте рядки таблиці, коли курсор миші проходить +HighlightLinesColor=Колір виділення лінії, коли курсор миші проходить (використовуйте "ffffff", щоб не виділяти) +HighlightLinesChecked=Колір виділення рядка, коли його встановлено (використовуйте 'ffffff', щоб не виділяти) +UseBorderOnTable=Показати ліву-праву межі таблиць +BtnActionColor=Колір кнопки дії +TextBtnActionColor=Колір тексту кнопки дії +TextTitleColor=Колір тексту заголовка сторінки +LinkColor=Колір посилань +PressF5AfterChangingThis=Натисніть CTRL+F5 на клавіатурі або очистіть кеш браузера після зміни цього значення, щоб воно діяло +NotSupportedByAllThemes=Will працює з основними темами, може не підтримуватися зовнішніми темами +BackgroundColor=Колір фону +TopMenuBackgroundColor=Колір фону для верхнього меню +TopMenuDisableImages=Icon or Text in Top menu +LeftMenuBackgroundColor=Колір фону для лівого меню +BackgroundTableTitleColor=Колір фону для рядка заголовка таблиці +BackgroundTableTitleTextColor=Колір тексту рядка заголовка таблиці +BackgroundTableTitleTextlinkColor=Колір тексту для рядка посилання заголовка таблиці +BackgroundTableLineOddColor=Колір фону для непарних рядків таблиці +BackgroundTableLineEvenColor=Колір фону для рівних ліній таблиці +MinimumNoticePeriod=Мінімальний термін попередження (Ваш запит на відпустку необхідно зробити до цієї затримки) +NbAddedAutomatically=Кількість днів, що додаються до лічильників користувачів (автоматично) щомісяця +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) +PositionIntoComboList=Розташування рядка в комбінованих списках +SellTaxRate=Ставка податку з продажу +RecuperableOnly=Так, для ПДВ "Не сприймається, але підлягає відшкодуванню", призначений для деяких штатів у Франції. У всіх інших випадках зберігайте значення "Ні". +UrlTrackingDesc=Якщо постачальник або транспортна служба пропонує сторінку або веб-сайт для перевірки стану ваших відправок, ви можете ввести їх тут. Ви можете використовувати ключ {TRACKID} у параметрах URL-адреси, щоб система замінила його на номер відстеження, який користувач ввів у картку відправлення. +OpportunityPercent=Коли ви створюєте потенційного клієнта, ви визначаєте приблизну кількість проекту/ліда. Відповідно до статусу потенційного клієнта, цю суму можна помножити на цей показник, щоб оцінити загальну суму, яку можуть отримати всі ваші потенційні клієнти. Значення – це відсоток (від 0 до 100). +TemplateForElement=До якого типу об’єкта відноситься цей шаблон листа? Шаблон електронної пошти доступний лише при використанні кнопки «Надіслати електронний лист» із пов’язаного об’єкта. +TypeOfTemplate=Тип шаблону +TemplateIsVisibleByOwnerOnly=Шаблон бачить лише власник +VisibleEverywhere=Видно всюди +VisibleNowhere=Не видно ніде +FixTZ=Виправлення часового поясу +FillFixTZOnlyIfRequired=Приклад: +2 (заповніть, лише якщо виникла проблема) +ExpectedChecksum=Очікувана контрольна сума +CurrentChecksum=Поточна контрольна сума +ExpectedSize=Очікуваний розмір +CurrentSize=Поточний розмір +ForcedConstants=Необхідні постійні значення +MailToSendProposal=Пропозиції клієнтів +MailToSendOrder=Замовлення на продаж +MailToSendInvoice=Рахунки-фактури клієнта +MailToSendShipment=Відвантаження +MailToSendIntervention=Втручання +MailToSendSupplierRequestForQuotation=Запит пропозицій +MailToSendSupplierOrder=Замовлення на закупівлю +MailToSendSupplierInvoice=Рахунки постачальників +MailToSendContract=Контракти +MailToSendReception=Прийоми +MailToThirdparty=Треті особи +MailToMember=Члени +MailToUser=Користувачі +MailToProject=Проекти MailToTicket=Заявки -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 data about European companies/citizens, 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 -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? -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, with no 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 +ByDefaultInList=Показувати за замовчуванням у вигляді списку +YouUseLastStableVersion=Ви використовуєте останню стабільну версію +TitleExampleForMajorRelease=Приклад повідомлення, яке ви можете використати, щоб анонсувати цей основний випуск (використовуйте його на своїх веб-сайтах) +TitleExampleForMaintenanceRelease=Приклад повідомлення, яке ви можете використати, щоб оголосити цей випуск технічного обслуговування (використовуйте його на своїх веб-сайтах) +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s доступний. Версія %s є основним випуском з великою кількістю нових функцій як для користувачів, так і для розробників. Ви можете завантажити його з області завантаження порталу https://www.dolibarr.org (підкаталог Стабільні версії). Ви можете прочитати Журнал змін для отримання повного списку змін. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s доступний. Версія %s є версією обслуговування, тому містить лише виправлення помилок. Ми рекомендуємо всім користувачам оновитися до цієї версії. Реліз обслуговування не вносить нових функцій або змін до бази даних. Ви можете завантажити його з області завантаження порталу https://www.dolibarr.org (підкаталог Стабільні версії). Ви можете прочитати ChangeLog для отримання повного списку змін. +MultiPriceRuleDesc=Якщо увімкнено опцію «Кілька рівнів цін на продукт/послугу», ви можете визначити різні ціни (по одній на рівень ціни) для кожного товару. Щоб заощадити ваш час, тут ви можете ввести правило для автоматичного розрахунку ціни для кожного рівня на основі ціни першого рівня, тому вам доведеться вводити ціну лише для першого рівня для кожного товару. Ця сторінка розроблена, щоб заощадити ваш час, але корисна, лише якщо ваші ціни для кожного рівня відносно першого рівня. Ви можете проігнорувати цю сторінку в більшості випадків. +ModelModulesProduct=Шаблони документів на товар +WarehouseModelModules=Шаблони для складських документів +ToGenerateCodeDefineAutomaticRuleFirst=Щоб мати можливість автоматично генерувати коди, спочатку потрібно визначити менеджера, який автоматично визначає номер штрих-коду. +SeeSubstitutionVars=Список можливих змінних підстановки див +SeeChangeLog=Перегляньте файл журналу змін (лише англійською мовою) +AllPublishers=Усі видавництва +UnknownPublishers=Невідомі видавництва +AddRemoveTabs=Додати або видалити вкладки +AddDataTables=Додати таблиці об’єктів +AddDictionaries=Додайте таблиці словників +AddData=Додайте об'єкти або дані словників +AddBoxes=Додайте віджети +AddSheduledJobs=Додайте заплановані завдання +AddHooks=Додайте гачки +AddTriggers=Додайте тригери +AddMenus=Додати меню +AddPermissions=Додати дозволи +AddExportProfiles=Додати профілі експорту +AddImportProfiles=Додайте профілі імпорту +AddOtherPagesOrServices=Додайте інші сторінки або послуги +AddModels=Додайте шаблони документів або нумерації +AddSubstitutions=Додайте заміни ключів +DetectionNotPossible=Виявлення неможливо +UrlToGetKeyToUseAPIs=URL-адреса для отримання маркера для використання API (після отримання маркера він зберігається в таблиці користувачів бази даних і має вказуватися під час кожного виклику API) +ListOfAvailableAPIs=Список доступних API +activateModuleDependNotSatisfied=Модуль "%s" залежить від модуля "%s", який відсутній, тому модуль "%1$s" може працювати некоректно. Будь ласка, встановіть модуль "%2$s" або вимкніть модуль "%1$s", якщо ви хочете бути в безпеці від будь-яких несподіванок +CommandIsNotInsideAllowedCommands=Команди, яку ви намагаєтеся запустити, немає у списку дозволених команд, визначених у параметрі $dolibarr_main_restrict_os_commands у файлі conf.php a0a65fc0z7 +LandingPage=Цільова сторінка +SamePriceAlsoForSharedCompanies=Якщо ви використовуєте багатокомпанійний модуль з вибором «Єдина ціна», ціна також буде однаковою для всіх компаній, якщо продукти розподіляються між середовищами +ModuleEnabledAdminMustCheckRights=Модуль активовано. Дозволи для активованих модулів були надані лише користувачам-адміністраторам. За потреби вам може знадобитися надати дозволи іншим користувачам або групам вручну. +UserHasNoPermissions=Цей користувач не має визначених дозволів +TypeCdr=Використовуйте "Немає", якщо датою платежу є дата рахунка-фактури плюс дельта в днях (дельта - це поле "%s")
    Використовуйте "Наприкінці місяця", якщо після дельти дату потрібно збільшити, щоб досягти кінця місяця (+ необов’язковий «%s» у днях)
    Використовуйте «Поточний/Наступний», щоб термін платежу був першим N числа місяця після дельти (дельта – це поле «%s», N зберігається в полі «%s», N зберігається в полі «%s» +BaseCurrency=Довідкова валюта компанії (перейдіть у налаштування компанії, щоб змінити це) +WarningNoteModuleInvoiceForFrenchLaw=Цей модуль %s відповідає французькому законодавству (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Цей модуль %s відповідає французькому законодавству (Loi Finance 2016), оскільки модуль Non Reversible Logs автоматично активується. +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_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=Фільтр регулярних виразів для очищення значення (COMPANY_AQUARIUM_CLEAN_REGEX) +COMPANY_DIGITARIA_CLEAN_REGEX=Фільтр регулярних виразів для очищення значення (COMPANY_DIGITARIA_CLEAN_REGEX) +COMPANY_DIGITARIA_UNIQUE_CODE=Копіювання заборонено +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=Текст довідки для відображення у підказці +HelpOnTooltipDesc=Введіть тут текст або ключ перекладу, щоб текст відображався у підказці, коли це поле з’явиться у формі +YouCanDeleteFileOnServerWith=Ви можете видалити цей файл на сервері за допомогою командного рядка:
    %s +ChartLoaded=План рахунків завантажено +SocialNetworkSetup=Налаштування модуля Соціальні мережі +EnableFeatureFor=Увімкнути функції для %s +VATIsUsedIsOff=Примітка. Для параметра використання податку з продажів або ПДВ встановлено значення Вимк. в меню %s - %s, тому податок з продажів або ПДВ для продажів завжди будуть використовуватися. +SwapSenderAndRecipientOnPDF=Поміняйте місцями адреси відправника та одержувача в PDF-документах +FeatureSupportedOnTextFieldsOnly=Попередження, функція підтримується лише в текстових полях і комбінованих списках. Також потрібно встановити параметр URL-адреси action=create або action=edit, АБО назва сторінки має закінчуватися на "new.php", щоб активувати цю функцію. +EmailCollector=Збірник електронної пошти +EmailCollectors=Email collectors +EmailCollectorDescription=Додайте заплановану роботу та сторінку налаштування, щоб регулярно сканувати скриньки електронної пошти (за допомогою протоколу IMAP) і записувати електронні листи, отримані у вашу програму, у потрібному місці та/або створювати деякі записи автоматично (наприклад, потенційні клієнти). +NewEmailCollector=Новий збірник електронної пошти +EMailHost=Хост сервера електронної пошти IMAP +MailboxSourceDirectory=Джерельний каталог поштової скриньки +MailboxTargetDirectory=Цільовий каталог поштової скриньки +EmailcollectorOperations=Операції, які виконує колектор +EmailcollectorOperationsDesc=Операції виконуються зверху вниз +MaxEmailCollectPerCollect=Максимальна кількість електронних листів, зібраних за один збір +CollectNow=Зберіть зараз +ConfirmCloneEmailCollector=Ви впевнені, що хочете клонувати збірник електронної пошти %s? +DateLastCollectResult=Дата останньої спроби збору +DateLastcollectResultOk=Дата останнього успіху збирання +LastResult=Останній результат +EmailCollectorHideMailHeaders=Не включайте вміст заголовка електронної пошти до збереженого вмісту зібраних електронних листів +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=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=Приклад збору потенційних клієнтів +EmailCollectorExampleToCollectJobCandidaturesDesc=Збирайте електронні листи з пропозиціями про роботу (потрібно ввімкнути модуль набору персоналу). Ви можете заповнити цей збірник, якщо хочете автоматично створити кандидатуру для запиту на роботу. Примітка. У цьому початковому прикладі генерується назва кандидатури, включаючи електронну пошту. +EmailCollectorExampleToCollectJobCandidatures=Приклад збору кандидатур на роботу, отриманих на електронну пошту +NoNewEmailToProcess=Немає нових електронних листів (відповідних фільтрів) для обробки +NothingProcessed=Нічого не зроблено +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) +CodeLastResult=Останній код результату +NbOfEmailsInInbox=Кількість листів у вихідному каталозі +LoadThirdPartyFromName=Завантажити пошук третьої сторони на %s (лише завантаження) +LoadThirdPartyFromNameOrCreate=Завантажити пошук третьої сторони на %s (створити, якщо не знайдено) +AttachJoinedDocumentsToObject=Збережіть вкладені файли в об’єктні документи, якщо посилання на об’єкт знайдено в темі електронної пошти. +WithDolTrackingID=Повідомлення з бесіди, ініційованої першим електронним листом, надісланим з Dolibarr +WithoutDolTrackingID=Повідомлення з розмови, ініційованої першим електронним листом, НЕ надісланим з Dolibarr +WithDolTrackingIDInMsgId=Повідомлення надіслано з Dolibarr +WithoutDolTrackingIDInMsgId=Повідомлення НЕ надіслано з Dolibarr +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. -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 -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 access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +OpeningHours=Години роботи +OpeningHoursDesc=Введіть тут звичайні години роботи вашої компанії. +ResourceSetup=Конфігурація модуля ресурсів +UseSearchToSelectResource=Використовуйте форму пошуку, щоб вибрати ресурс (а не розкривний список). +DisabledResourceLinkUser=Вимкнути функцію зв’язування ресурсу з користувачами +DisabledResourceLinkContact=Вимкнути функцію зв’язування ресурсу з контактами +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda +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=Ви можете використовувати цю дію, щоб використовувати вміст електронної пошти для пошуку та завантаження наявної третьої сторони у вашій базі даних. Знайдена (або створена) стороння сторона буде використана для наступних дій, які потребують цього.
    Наприклад, якщо ви хочете створити третю сторону з іменем, витягнутим із рядка "Ім'я: ім'я для пошуку", яке міститься в тілі, використовуйте електронну пошту відправника як електронну пошту, ви можете встановити таке поле параметра:
    'email= HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    +EndPointFor=Кінцева точка для %s : %s +DeleteEmailCollector=Видалити збірник електронної пошти +ConfirmDeleteEmailCollector=Ви впевнені, що хочете видалити цей збірник електронних листів? +RecipientEmailsWillBeReplacedWithThisValue=Електронні листи одержувачів завжди будуть замінюватися цим значенням +AtLeastOneDefaultBankAccountMandatory=Необхідно визначити принаймні 1 банківський рахунок за замовчуванням +RESTRICT_ON_IP=Дозволити доступ API лише до певних IP-адрес клієнтів (підстановка не дозволена, використовуйте пробіл між значеннями). Порожній означає доступ до кожного клієнта. 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=Зробіть анонімний ping «+1» на сервері Dolibarr Foundation (зроблено лише 1 раз після встановлення), щоб фонд міг підрахувати кількість інсталяцій Dolibarr. +FeatureNotAvailableWithReceptionModule=Функція недоступна, якщо ввімкнено прийом модуля +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 +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. +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=Зверніться до свого банку, щоб отримати цей ідентифікатор +AdvancedModeOnly=Дозвіл доступний лише в режимі розширеного дозволу +ConfFileIsReadableOrWritableByAnyUsers=Файл conf доступний для читання або запису будь-якими користувачами. Надайте дозвіл лише користувачеві та групі веб-сервера. +MailToSendEventOrganization=Організація заходу +MailToPartnership=Партнерство +AGENDA_EVENT_DEFAULT_STATUS=Статус події за замовчуванням під час створення події з форми +YouShouldDisablePHPFunctions=Вам слід вимкнути функції PHP +IfCLINotRequiredYouShouldDisablePHPFunctions=За винятком випадків, коли вам потрібно запускати системні команди в спеціальному коді, ви повинні вимкнути функції PHP +PHPFunctionsRequiredForCLI=Для цілей оболонки (наприклад, запланованого резервного копіювання завдань або запуску програми anitivurs) ви повинні зберегти функції PHP +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 sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale 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 -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 +NotRecommended=Не рекомендовано +ARestrictedPath=Якийсь обмежений шлях +CheckForModuleUpdate=Перевірте наявність оновлень зовнішніх модулів +CheckForModuleUpdateHelp=Ця дія підключить редактори зовнішніх модулів, щоб перевірити, чи доступна нова версія. +ModuleUpdateAvailable=Доступне оновлення +NoExternalModuleWithUpdate=Не знайдено оновлень для зовнішніх модулів +SwaggerDescriptionFile=Файл опису API Swagger (наприклад, для використання з redoc) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=Ви ввімкнули застарілий WS API. Натомість слід використовувати REST API. +RandomlySelectedIfSeveral=Вибирається випадковим чином, якщо доступно кілька зображень +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 у форматі PDF/A-1b +MissingTranslationForConfKey = Відсутній переклад для %s +NativeModules=Нативні модулі +NoDeployedModulesFoundWithThisSearchCriteria=За цими критеріями пошуку модулів не знайдено +API_DISABLE_COMPRESSION=Вимкнути стиснення відповідей API +EachTerminalHasItsOwnCounter=Кожен термінал використовує свій власний лічильник. +FillAndSaveAccountIdAndSecret=Спочатку заповніть та збережіть ідентифікатор облікового запису та секрет +PreviousHash=Попередній хеш +LateWarningAfter=«Пізнє» попередження після +TemplateforBusinessCards=Шаблон для візитки різного розміру +InventorySetup= Налаштування інвентарю +ExportUseLowMemoryMode=Використовуйте режим малої пам’яті +ExportUseLowMemoryModeHelp=Використовуйте режим малої пам’яті для виконання дампу (стиснення виконується через канал, а не в пам’ять PHP). Цей метод не дозволяє перевірити, що файл заповнений, і повідомлення про помилку не можна повідомити, якщо він не вдається. + +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 +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/uk_UA/agenda.lang b/htdocs/langs/uk_UA/agenda.lang index 66753891cad..94ff21d3f89 100644 --- a/htdocs/langs/uk_UA/agenda.lang +++ b/htdocs/langs/uk_UA/agenda.lang @@ -1,174 +1,176 @@ # Dolibarr language file - Source file is en_US - agenda -IdAgenda=ID event +IdAgenda=ID події Actions=Події Agenda=Повістка дня TMenuAgenda=Повістка дня Agendas=Повістки денні -LocalAgenda=Default calendar -ActionsOwnedBy=Event owned by -ActionsOwnedByShort=Owner +LocalAgenda=Календар за замовчуванням +ActionsOwnedBy=Подія належить +ActionsOwnedByShort=Власник AffectedTo=Призначено -Event=Event +Event=Подія Events=Події EventsNb=Кількість подій ListOfActions=Список подій -EventReports=Event reports +EventReports=Звіти про події Location=Розташування -ToUserOfGroup=Event assigned to any user in the group +ToUserOfGroup=Подія, призначена будь-якому користувачу в групі EventOnFullDay=Подія на цілий день(дні) MenuToDoActions=Усі невиконані події -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. +MenuDoneActions=Усі припинені події +MenuToDoMyActions=Мої незавершені події +MenuDoneMyActions=Мої припинені події +ListOfEvents=Список подій (календар за замовчуванням) +ActionsAskedBy=Про події повідомляє +ActionsToDoBy=Призначені події +ActionsDoneBy=Події, здійснені +ActionAssignedTo=Подія призначена +ViewCal=Перегляд місяця +ViewDay=Денний вид +ViewWeek=Перегляд тижня +ViewPerUser=За перегляд користувача +ViewPerType=Перегляд за типом +AutoActions= Автоматичне наповнення +AgendaAutoActionDesc= Тут ви можете визначити події, які ви хочете, щоб Dolibarr автоматично створював у порядку денному. Якщо нічого не позначено, лише ручні дії будуть включені в журнали та відображені в порядку денному. Автоматичне відстеження бізнес-дій, здійснених над об’єктами (перевірка, зміна статусу), не зберігатиметься. +AgendaSetupOtherDesc= Ця сторінка надає параметри, які дозволяють експортувати ваші події Dolibarr у зовнішній календар (Thunderbird, Google Calendar тощо...) +AgendaExtSitesDesc=Ця сторінка дозволяє оголосити зовнішні джерела календарів, щоб побачити їх події в порядку денному Dolibarr. +ActionsEvents=Події, для яких Dolibarr автоматично створить дію в порядку денному +EventRemindersByEmailNotEnabled=Нагадування про події електронною поштою не було ввімкнено в налаштуваннях модуля %s. ##### 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 -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 -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 -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 +NewCompanyToDolibarr=Створено сторонню сторінку %s +COMPANY_MODIFYInDolibarr=Стороннє %s змінено +COMPANY_DELETEInDolibarr=Сторонню сторінку %s видалено +ContractValidatedInDolibarr=Контракт %s підтверджено +CONTRACT_DELETEInDolibarr=Контракт %s видалено +PropalClosedSignedInDolibarr=Пропозиція %s підписана +PropalClosedRefusedInDolibarr=Пропозиція %s відхилена +PropalValidatedInDolibarr=Пропозиція %s підтверджена +PropalBackToDraftInDolibarr=Пропозиція %s повернутися до статусу чернетки +PropalClassifiedBilledInDolibarr=Пропозиція %s засекречена +InvoiceValidatedInDolibarr=Рахунок-фактура %s підтверджено +InvoiceValidatedInDolibarrFromPos=Рахунок-фактура %s підтверджено з POS +InvoiceBackToDraftInDolibarr=Рахунок-фактура %s повертається до стану чернетки +InvoiceDeleteDolibarr=Рахунок-фактура %s видалено +InvoicePaidInDolibarr=Рахунок-фактура %s змінено на оплачений +InvoiceCanceledInDolibarr=Рахунок-фактура %s скасовано +MemberValidatedInDolibarr=Член %s підтверджено +MemberModifiedInDolibarr=Член %s змінений +MemberResiliatedInDolibarr=Член %s припинено +MemberDeletedInDolibarr=Члена %s видалено +MemberSubscriptionAddedInDolibarr=Додано підписку %s для члена %s +MemberSubscriptionModifiedInDolibarr=Підписка %s для члена %s змінена +MemberSubscriptionDeletedInDolibarr=Підписку %s для члена %s видалено +ShipmentValidatedInDolibarr=Відправлення %s підтверджено +ShipmentClassifyClosedInDolibarr=Відправлення %s таємно виставлено +ShipmentUnClassifyCloseddInDolibarr=Відправлення %s з таємницею знову відкрито +ShipmentBackToDraftInDolibarr=Відправлення %s повертається до статусу чернетки +ShipmentDeletedInDolibarr=Відправлення %s видалено +ShipmentCanceledInDolibarr=Відправлення %s скасовано +ReceptionValidatedInDolibarr=Прийом %s підтверджено +ReceptionClassifyClosedInDolibarr=Приймальня %s закрита +OrderCreatedInDolibarr=Замовлення %s створено +OrderValidatedInDolibarr=Замовлення %s підтверджено +OrderDeliveredInDolibarr=Замовлення %s оголошення доставлено +OrderCanceledInDolibarr=Замовлення %s скасовано +OrderBilledInDolibarr=Замовлення %s таємницю виставлено +OrderApprovedInDolibarr=Замовлення %s затверджено +OrderRefusedInDolibarr=Замовлення %s відхилено +OrderBackToDraftInDolibarr=Наказ %s повернутися до статусу чернетки +ProposalSentByEMail=Комерційна пропозиція %s надіслана електронною поштою +ContractSentByEMail=Договір %s надіслано електронною поштою +OrderSentByEMail=Замовлення на продаж %s надіслано електронною поштою +InvoiceSentByEMail=Рахунок-фактура клієнта %s надіслано електронною поштою +SupplierOrderSentByEMail=Замовлення на покупку %s надіслано електронною поштою +ORDER_SUPPLIER_DELETEInDolibarr=Замовлення на покупку %s видалено +SupplierInvoiceSentByEMail=Рахунок-фактура постачальника %s надіслано електронною поштою +ShippingSentByEMail=Відправлення %s надіслано електронною поштою +ShippingValidated= Відправлення %s підтверджено +InterventionSentByEMail=Втручання %s надіслано електронною поштою +ProposalDeleted=Пропозицію видалено +OrderDeleted=Замовлення видалено +InvoiceDeleted=Рахунок-фактура видалено +DraftInvoiceDeleted=Проект рахунку-фактури видалено +CONTACT_CREATEInDolibarr=Контакт %s створено +CONTACT_MODIFYInDolibarr=Контакт %s змінено +CONTACT_DELETEInDolibarr=Контакт %s видалено +PRODUCT_CREATEInDolibarr=Створено продукт %s +PRODUCT_MODIFYInDolibarr=Продукт %s змінений +PRODUCT_DELETEInDolibarr=Продукт %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 +PROJECT_MODIFYInDolibarr=Проект %s змінено +PROJECT_DELETEInDolibarr=Проект %s видалено +TICKET_CREATEInDolibarr=Квиток %s створено +TICKET_MODIFYInDolibarr=Квиток %s змінено +TICKET_ASSIGNEDInDolibarr=Квиток %s призначено +TICKET_CLOSEInDolibarr=Квиток %s закрито +TICKET_DELETEInDolibarr=Квиток %s видалено +BOM_VALIDATEInDolibarr=Специфікація підтверджена +BOM_UNVALIDATEInDolibarr=Специфікація не підтверджена +BOM_CLOSEInDolibarr=Специфікація вимкнена +BOM_REOPENInDolibarr=BOM знову відкривається +BOM_DELETEInDolibarr=Специфікація видалена +MRP_MO_VALIDATEInDolibarr=МО підтверджено +MRP_MO_UNVALIDATEInDolibarr=ПН встановлено у статус чернетки +MRP_MO_PRODUCEDInDolibarr=МО вироблено +MRP_MO_DELETEInDolibarr=МО видалено +MRP_MO_CANCELInDolibarr=МО скасовано +PAIDInDolibarr=%s оплачено ##### 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) +AgendaModelModule=Шаблони документів для події +DateActionStart=Дата початку +DateActionEnd=Дата закінчення +AgendaUrlOptions1=Ви також можете додати такі параметри до виводу фільтра: +AgendaUrlOptions3= logina=%s , щоб обмежити вихід до дій, що належать користувачу %s a09a17b7. +AgendaUrlOptionsNotAdmin= logina=!%s , щоб обмежити вихід до дій, що не належать користувачу %s a09f14f8. +AgendaUrlOptions4= logint=%s , щоб обмежити виведення діями, призначеними для користувача %s a09a17b7 та інші. +AgendaUrlOptionsProject= project=__PROJECT_ID__ , щоб обмежити вихід до дій, пов'язаних з проектом __PROJECT_ID__ . +AgendaUrlOptionsNotAutoEvent= notactiontype=systemauto , щоб виключити автоматичні події. +AgendaUrlOptionsIncludeHolidays= includeholidays=1 , щоб включити події свят. +AgendaShowBirthdayEvents=Дні народження контактів +AgendaHideBirthdayEvents=Приховати дні народження контактів +Busy=Зайнятий +ExportDataset_event1=Список заходів порядку денного +DefaultWorkingDays=Діапазон робочих днів за умовчанням у тижні (приклад: 1-5, 1-6) +DefaultWorkingHours=Години роботи за замовчуванням в день (приклад: 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 +ExportCal=Експорт календаря +ExtSites=Імпорт зовнішніх календарів +ExtSitesEnableThisTool=Показувати зовнішні календарі (визначені в глобальних налаштуваннях) у порядку денному. Не впливає на зовнішні календарі, визначені користувачами. +ExtSitesNbOfAgenda=Кількість календарів +AgendaExtNb=№ календаря %s +ExtSiteUrlAgenda=URL для доступу до файлу .ical +ExtSiteNoLabel=Без опису +VisibleTimeRange=Видимий часовий діапазон +VisibleDaysRange=Діапазон видимих днів +AddEvent=Створити подію +MyAvailability=Моя доступність +ActionType=Тип події +DateActionBegin=Дата початку події +ConfirmCloneEvent=Ви впевнені, що хочете клонувати подію %s ? +RepeatEvent=Повторити подію +OnceOnly=Тільки один раз +EveryWeek=Кожного тижня +EveryMonth=Щомісяця +DayOfMonth=День місяця +DayOfWeek=День тижня +DateStartPlusOne=Дата початку + 1 година +SetAllEventsToTodo=Установіть усі події на завдання +SetAllEventsToInProgress=Встановити для всіх подій значення, що виконуються +SetAllEventsToFinished=Установити для всіх подій завершено +ReminderTime=Період нагадування перед подією +TimeType=Тип тривалості +ReminderType=Тип зворотного дзвінка +AddReminder=Створіть автоматичне сповіщення про нагадування для цієї події +ErrorReminderActionCommCreation=Помилка створення сповіщення про нагадування для цієї події +BrowserPush=Спливаюче сповіщення браузера +ActiveByDefault=Увімкнено за замовчуванням diff --git a/htdocs/langs/uk_UA/assets.lang b/htdocs/langs/uk_UA/assets.lang index 4627f2183f5..7fdd74fa306 100644 --- a/htdocs/langs/uk_UA/assets.lang +++ b/htdocs/langs/uk_UA/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 -DeleteType=Delete -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? -ShowTypeCard=Show type '%s' +NewAsset=Новий актив +AccountancyCodeAsset=Код обліку (актив) +AccountancyCodeDepreciationAsset=Код бухгалтерського обліку (рахунок амортизаційних активів) +AccountancyCodeDepreciationExpense=Код бухгалтерського обліку (рахунок витрат амортизації) +AssetsLines=Активи +DeleteType=Видалити +DeleteAnAssetType=Видалити модель активу +ConfirmDeleteAssetType=Ви впевнені, що хочете видалити цю модель об’єкта? +ShowTypeCard=Показати модель '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Assets +ModuleAssetsName=Активи # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Assets description +ModuleAssetsDesc=Опис активів # # Admin page # -AssetsSetup = Assets setup -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 = List -MenuNewTypeAssets = New -MenuListTypeAssets = List +MenuAssets=Активи +MenuNewAsset=Новий актив +MenuAssetModels=Модельні активи +MenuListAssets=Список +MenuNewAssetModel=Модель нового активу +MenuListAssetModels=Список # # Module # -NewAssetType=New asset type -NewAsset=New asset +ConfirmDeleteAsset=Ви дійсно хочете видалити цей об’єкт? + +# +# Tab +# +AssetDepreciationOptions=Варіанти амортизації +AssetAccountancyCodes=Accounting accounts +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=Account +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/uk_UA/banks.lang b/htdocs/langs/uk_UA/banks.lang index a839dbc638b..9e8e94c1c9c 100644 --- a/htdocs/langs/uk_UA/banks.lang +++ b/htdocs/langs/uk_UA/banks.lang @@ -1,184 +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 +Bank=банк +MenuBankCash=Банки | готівкою +MenuVariousPayment=Різні виплати +MenuNewVariousPayment=Нова оплата Різне +BankName=назва банку 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 +BankAccount=банківський рахунок +BankAccounts=Банківські рахунки +BankAccountsAndGateways=Банківські рахунки | Шлюзи +ShowAccount=Показати обліковий запис +AccountRef=Фінансовий рахунок ref +AccountLabel=Етикетка фінансового рахунку +CashAccount=Грошовий рахунок +CashAccounts=Касові рахунки +CurrentAccounts=Поточні рахунки +SavingAccounts=Ощадні рахунки +ErrorBankLabelAlreadyExists=Мітка фінансового рахунку вже існує +BankBalance=Баланс +BankBalanceBefore=Баланс раніше +BankBalanceAfter=Баланс після +BalanceMinimalAllowed=Мінімально дозволений баланс +BalanceMinimalDesired=Мінімальний бажаний баланс +InitialBankBalance=Початковий баланс +EndBankBalance=Кінцевий баланс +CurrentBalance=Поточний баланс +FutureBalance=Майбутній баланс +ShowAllTimeBalance=Показати баланс із самого початку +AllTime=З початку +Reconciliation=Примирення +RIB=Номер рахунку в банку IBAN=Номер IBAN -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? +BIC=BIC/SWIFT-код +SwiftValid=Дійсний BIC/SWIFT +SwiftNotValid=BIC/SWIFT недійсний +IbanValid=BAN діє +IbanNotValid=BAN недійсний +StandingOrders=Доручення прямого дебету +StandingOrder=Доручення прямого дебету +PaymentByDirectDebit=Оплата прямим дебетом +PaymentByBankTransfers=Оплата кредитним переказом +PaymentByBankTransfer=Оплата кредитним переказом +AccountStatement=Виписка з рахунку +AccountStatementShort=Заява +AccountStatements=Виписки з рахунку +LastAccountStatements=Останні виписки з рахунку +IOMonthlyReporting=Щомісячна звітність +BankAccountDomiciliation=адреса банку +BankAccountCountry=Країна облікового запису +BankAccountOwner=Ім'я власника облікового запису +BankAccountOwnerAddress=Адреса власника облікового запису +CreateAccount=Створити обліковий запис +NewBankAccount=Новий акаунт +NewFinancialAccount=Новий фінансовий рахунок +MenuNewFinancialAccount=Новий фінансовий рахунок +EditFinancialAccount=Редагувати обліковий запис +LabelBankCashAccount=Банківська або касова етикетка +AccountType=Тип рахунку +BankType0=Накопичувальний рахунок +BankType1=Поточний або кредитний рахунок +BankType2=Грошовий рахунок +AccountsArea=Зона рахунків +AccountCard=Картка рахунку +DeleteAccount=Видалити аккаунт +ConfirmDeleteAccount=Ви впевнені, що хочете видалити цей обліковий запис? 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 +BankTransactionByCategories=Банківські записи за категоріями +BankTransactionForCategory=Банківські записи для категорії %s +RemoveFromRubrique=Видалити посилання з категорією +RemoveFromRubriqueConfirm=Ви впевнені, що хочете видалити зв’язок між записом і категорією? +ListBankTransactions=Список банківських записів +IdTransaction=ID транзакції +BankTransactions=Банківські записи +BankTransaction=Вхід у банк +ListTransactions=Список записів +ListTransactionsByCategory=Список записів/категорій +TransactionsToConciliate=Записи для звірки +TransactionsToConciliateShort=Щоб помиритися +Conciliable=Можна помиритися +Conciliate=Примиритися +Conciliation=Примирення +SaveStatementOnly=Зберегти лише заяву +ReconciliationLate=Примирення пізно +IncludeClosedAccount=Включити закриті рахунки +OnlyOpenedAccount=Тільки відкриті рахунки +AccountToCredit=Рахунок для кредитування +AccountToDebit=Дебетовий рахунок +DisableConciliation=Вимкнути функцію звірки для цього облікового запису +ConciliationDisabled=Функцію звірки вимкнено +LinkedToAConciliatedTransaction=Пов’язано з узгодженим записом +StatusAccountOpened=ВІДЧИНЕНО StatusAccountClosed=Зачинено -AccountIdShort=Number -LineRecord=Transaction -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually -Conciliated=Reconciled -ConciliatedBy=Reconciled by -DateConciliating=Reconcile date -BankLineConciliated=Entry reconciled with bank receipt -Reconciled=Reconciled -NotReconciled=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. +AccountIdShort=Номер +LineRecord=Транзакція +AddBankRecord=Додати запис +AddBankRecordLong=Додайте запис вручну +Conciliated=Примирилися +ReConciliedBy=Помирився з +DateConciliating=Дата узгодження +BankLineConciliated=Запис звіряється з банківською квитанцією +BankLineReconciled=Примирилися +BankLineNotReconciled=Не помирилися +CustomerInvoicePayment=Оплата клієнта +SupplierInvoicePayment=Оплата постачальником +SubscriptionPayment=Оплата передплати +WithdrawalPayment=Дебетове платіжне доручення +SocialContributionPayment=Сплата соціального/фіскального податку +BankTransfer=Переказ кредиту +BankTransfers=Кредитні перекази +MenuBankInternalTransfer=Внутрішня передача +TransferDesc=Використовуйте внутрішній переказ для переказу з одного рахунку на інший, програма запише два записи: дебет на вихідному рахунку та кредит на цільовий рахунок. Для цієї трансакції буде використана та сама сума, етикетка та дата. TransferFrom=Продавець TransferTo=Покупець -TransferFromToDone=A transfer from %s to %s of %s %s has been recorded. +TransferFromToDone=A transfer from %s to %s of %s %s has been recorded. CheckTransmitter=Відправник -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 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 +ValidateCheckReceipt=Підтвердити цю квитанцію чека? +ConfirmValidateCheckReceipt=Ви впевнені, що хочете надіслати цю квитанцію чека для перевірки? Після підтвердження зміни не будуть можливі. +DeleteCheckReceipt=Видалити цей чек? +ConfirmDeleteCheckReceipt=Ви впевнені, що хочете видалити цей чек? +BankChecks=Банківські чеки +BankChecksToReceipt=Чеки очікують на депозит +BankChecksToReceiptShort=Чеки очікують на депозит +ShowCheckReceipt=Показати квитанцію про внесення чека +NumberOfCheques=№ чека +DeleteTransaction=Видалити запис +ConfirmDeleteTransaction=Ви впевнені, що хочете видалити цей запис? +ThisWillAlsoDeleteBankRecord=Це також видалить згенерований запис банку +BankMovements=Рухи +PlannedTransactions=Заплановані вступи +Graph=Графіки +ExportDataset_banque_1=Банківські записи та виписка з рахунку +ExportDataset_banque_2=Депозитарна розписка +TransactionOnTheOtherAccount=Операція на іншому рахунку +PaymentNumberUpdateSucceeded=Номер платежу успішно оновлено +PaymentNumberUpdateFailed=Не вдалося оновити номер платежу +PaymentDateUpdateSucceeded=Дата платежу успішно оновлена +PaymentDateUpdateFailed=Не вдалося оновити дату платежу +Transactions=Транзакції +BankTransactionLine=Вхід у банк +AllAccounts=Усі банківські та касові рахунки +BackToAccount=Повернутися до облікового запису +ShowAllAccounts=Показати для всіх облікових записів +FutureTransaction=Майбутня транзакція. Не вдається помиритися. +SelectChequeTransactionAndGenerate=Виберіть/відфільтруйте чеки, які будуть включені в квитанцію про внесення чека. Потім натисніть «Створити». +InputReceiptNumber=Виберіть виписку з банку, пов’язану з узгодженням. Використовуйте числове значення, яке можна сортувати: РРРРММ або РРРРММДД +EventualyAddCategory=Зрештою, вкажіть категорію, до якої слід класифікувати записи +ToConciliate=Помиритися? +ThenCheckLinesAndConciliate=Потім перевірте рядки у виписці з банку та натисніть +DefaultRIB=BAN за замовчуванням +AllRIB=Всі БАНУТИ +LabelRIB=Етикетка BAN +NoBANRecord=Немає запису BAN +DeleteARib=Видалити запис BAN +ConfirmDeleteRib=Ви впевнені, що хочете видалити цей запис BAN? +RejectCheck=Чек повернуто +ConfirmRejectCheck=Ви впевнені, що хочете позначити цей чек як відхилений? +RejectCheckDate=Дата повернення чека +CheckRejected=Чек повернуто +CheckRejectedAndInvoicesReopened=Чек повернуто, рахунки-фактури знову відкриті +BankAccountModelModule=Шаблони документів для банківських рахунків +DocumentModelSepaMandate=Шаблон доручення SEPA. Корисно лише для європейських країн ЄЕС. +DocumentModelBan=Шаблон для друку сторінки з інформацією про BAN. +NewVariousPayment=Нова різна оплата +VariousPayment=Різна оплата +VariousPayments=Різні виплати +ShowVariousPayment=Показати різний платіж +AddVariousPayment=Додати різний платіж +VariousPaymentId=Різні ідентифікатори платежу +VariousPaymentLabel=Різне платіжна етикетка +ConfirmCloneVariousPayment=Підтвердьте клон різного платежу +SEPAMandate=Мандат SEPA +YourSEPAMandate=Ваш мандат SEPA +FindYourSEPAMandate=Це ваше доручення SEPA, щоб уповноважити нашу компанію здійснити пряме дебетування вашого банку. Поверніть його підписаним (скан підписаного документа) або відправте поштою на адресу +AutoReportLastAccountStatement=Автоматично заповнюйте поле «номер банківської виписки» номером останньої виписки під час звірки +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) +BankColorizeMovement=Розфарбуйте рухи +BankColorizeMovementDesc=Якщо цю функцію ввімкнено, ви можете вибрати певний колір фону для дебетових або кредитних рухів +BankColorizeMovementName1=Колір тла для руху дебету +BankColorizeMovementName2=Колір фону для кредитного руху +IfYouDontReconcileDisableProperty=Якщо ви не проводите звірку банків для деяких банківських рахунків, вимкніть для них властивість «%s», щоб видалити це попередження. +NoBankAccountDefined=Банківський рахунок не визначено +NoRecordFoundIBankcAccount=На банківському рахунку не знайдено жодного запису. Зазвичай це відбувається, коли запис було видалено вручну зі списку транзакцій на банківському рахунку (наприклад, під час звірки банківського рахунку). Інша причина полягає в тому, що платіж був зафіксований, коли був відключений модуль «%s». +AlreadyOneBankAccount=Вже визначено один банківський рахунок +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=Переказ SEPA: "Тип платежу" на рівні "Кредитний переказ". +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Під час створення XML-файлу SEPA для кредитних переказів розділ «PaymentTypeInformation» тепер можна розмістити всередині розділу «CreditTransferTransactionInformation» (замість розділу «Оплата»). Ми наполегливо рекомендуємо не позначити цей пункт, щоб розмістити PaymentTypeInformation на рівні Payment, оскільки всі банки не обов’язково приймуть його на рівні CreditTransferTransactionInformation. Перш ніж розміщувати PaymentTypeInformation на рівні CreditTransferTransactionInformation, зв’яжіться зі своїм банком. +ToCreateRelatedRecordIntoBank=Щоб створити відсутню пов’язану банківську запис diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang index 613b8129e81..429b8a7fae8 100644 --- a/htdocs/langs/uk_UA/bills.lang +++ b/htdocs/langs/uk_UA/bills.lang @@ -1,37 +1,37 @@ # Dolibarr language file - Source file is en_US - bills Bill=Рахунок-фактура Bills=Рахунки-фактури -BillsCustomers=Customer invoices +BillsCustomers=Рахунки-фактури клієнта BillsCustomer=Рахунок клієнта -BillsSuppliers=Vendor invoices +BillsSuppliers=Рахунки постачальників BillsCustomersUnpaid=Несплачені рахунки клієнта -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s -BillsSuppliersUnpaid=Unpaid vendor invoices -BillsSuppliersUnpaidForCompany=Unpaid vendors invoices for %s +BillsCustomersUnpaidForCompany=Неоплачені рахунки клієнта для %s +BillsSuppliersUnpaid=Неоплачені рахунки постачальників +BillsSuppliersUnpaidForCompany=Неоплачені рахунки постачальників для %s BillsLate=Прострочені платежі BillsStatistics=Статистика рахунків клієнтів -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 +BillsStatisticsSuppliers=Статистика рахунків-фактур постачальників +DisabledBecauseDispatchedInBookkeeping=Вимкнено, оскільки рахунок-фактура відправлено в бухгалтерію +DisabledBecauseNotLastInvoice=Вимкнено, оскільки рахунок-фактуру не можна стерти. Деякі рахунки-фактури були записані після цього, і це створить діри в лічильнику. +DisabledBecauseNotErasable=Вимкнено, оскільки неможливо стерти InvoiceStandard=Стандартний рахунок-фактура InvoiceStandardAsk=Стандартний рахунок-фактура InvoiceStandardDesc=Такий вид рахунку є загальним. -InvoiceDeposit=Down payment invoice -InvoiceDepositAsk=Down payment invoice -InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. +InvoiceDeposit=Рахунок на авансовий платіж +InvoiceDepositAsk=Рахунок на авансовий платіж +InvoiceDepositDesc=Такий рахунок-фактура виставляється після отримання авансового платежу. InvoiceProForma=Рахунок проформа InvoiceProFormaAsk=Рахунок проформа InvoiceProFormaDesc=Рахунок проформа є образом оригінального рахунку, але не має бухгалтерського облікового запису. InvoiceReplacement=Заміна рахунка-фактури InvoiceReplacementAsk=Заміна рахунка-фактури на інший -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'. +InvoiceReplacementDesc= Замінний рахунок-фактура використовується для повної заміни рахунка-фактури без оплати вже отриманого.

    Примітка: можна замінити лише рахунки-фактури, на яких немає платежу. Якщо рахунок-фактуру, який ви замінюєте, ще не закрито, він буде автоматично закритий як «залишений». InvoiceAvoir=Кредитове авізо InvoiceAvoirAsk=Кредитове авізо для коригування рахунка-фактури -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). +InvoiceAvoirDesc=Кредитна нота є негативним рахунком-фактурою, який використовується для виправлення того факту, що в рахунку-фактурі зазначено суму, яка відрізняється від фактично сплаченої суми (наприклад, клієнт заплатив занадто багато помилково або не заплатить повну суму, оскільки деякі продукти були повернені) . invoiceAvoirWithLines=Створити кредитове авізо зі строками з оригінального рахунка -invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice -invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount +invoiceAvoirWithPaymentRestAmount=Створіть кредитну ноту з неоплаченим рахунком-фактурою, що залишився +invoiceAvoirLineWithPaymentRestAmount=Кредитова нота на залишок несплаченої суми ReplaceInvoice=Замінити рахунок-фактуру %s ReplacementInvoice=Заміна рахунка-фактури ReplacedByInvoice=Заміщенний рахунком-фактурою %s @@ -41,261 +41,264 @@ CorrectionInvoice=Коригуючий рахунок UsedByInvoice=Використаний для сплати рахунку-фактури %s ConsumedBy=Використаний NotConsumed=Не використаний -NoReplacableInvoice=No replaceable invoices +NoReplacableInvoice=Немає змінних рахунків-фактур NoInvoiceToCorrect=Немає рахунків-фактур для коригування -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Був джерелом одного або кількох кредитних нот CardBill=Карта рахунка-фактури -PredefinedInvoices=Predefined Invoices +PredefinedInvoices=Попередньо визначені рахунки-фактури Invoice=Рахунок-фактура PdfInvoiceTitle=Рахунок-фактура Invoices=Рахунки-фактури InvoiceLine=Рядок рахунку-фактури InvoiceCustomer=Рахунок клієнта CustomerInvoice=Рахунок клієнта -CustomersInvoices=Customer invoices -SupplierInvoice=Vendor invoice -SuppliersInvoices=Vendor invoices -SupplierInvoiceLines=Vendor invoice lines -SupplierBill=Vendor invoice -SupplierBills=Vendor invoices +CustomersInvoices=Рахунки-фактури клієнта +SupplierInvoice=Рахунок-фактура постачальника +SuppliersInvoices=Рахунки постачальників +SupplierInvoiceLines=Рядки рахунків-фактур постачальника +SupplierBill=Рахунок-фактура постачальника +SupplierBills=Рахунки постачальників Payment=Платіж -PaymentBack=Refund -CustomerInvoicePaymentBack=Refund +PaymentBack=Відшкодування +CustomerInvoicePaymentBack=Відшкодування Payments=Платежі -PaymentsBack=Refunds -paymentInInvoiceCurrency=in invoices currency +PaymentsBack=Повернення коштів +paymentInInvoiceCurrency=у валюті рахунків-фактур PaidBack=Повернення платежу DeletePayment=Видалити платіж -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 +ConfirmDeletePayment=Ви впевнені, що хочете видалити цей платіж? +ConfirmConvertToReduc=Ви хочете перетворити цей %s у доступний кредит? +ConfirmConvertToReduc2=Сума буде збережена серед усіх знижок і може використовуватися як знижка для поточного або майбутнього рахунку-фактури для цього клієнта. +ConfirmConvertToReducSupplier=Ви хочете перетворити цей %s у доступний кредит? +ConfirmConvertToReducSupplier2=Сума буде збережена серед усіх знижок і може бути використана як знижка для поточного або майбутнього рахунку-фактури для цього постачальника. +SupplierPayments=Платежі постачальників ReceivedPayments=Отримані платежі ReceivedCustomersPayments=Платежі, отримані від покупців -PayedSuppliersPayments=Payments paid to vendors +PayedSuppliersPayments=Виплати постачальникам ReceivedCustomersPaymentsToValid=Отримані платежі покупців для підтвердження PaymentsReportsForYear=Звіти про платежі за %s PaymentsReports=Звіти про платежі PaymentsAlreadyDone=Платежі вже зроблені -PaymentsBackAlreadyDone=Refunds already done +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 -PaymentTerm=Payment Term -PaymentConditions=Payment Terms -PaymentConditionsShort=Payment Terms +PaymentMode=Спосіб оплати +PaymentModes=Методи оплати +DefaultPaymentMode=Спосіб оплати за замовчуванням +DefaultBankAccount=Банківський рахунок за замовчуванням +IdPaymentMode=Спосіб оплати (ідентифікатор) +CodePaymentMode=Спосіб оплати (код) +LabelPaymentMode=Спосіб оплати (етикетка) +PaymentModeShort=Спосіб оплати +PaymentTerm=Термін оплати +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. -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. +HelpPaymentHigherThanReminderToPay=Увага, сума платежу одного або кількох рахунків перевищує суму заборгованості.
    Відредагуйте свій запис, інакше підтвердьте та розгляньте можливість створення кредит-ноти для перевищення, отриманого за кожним переплаченим рахунком-фактурою. +HelpPaymentHigherThanReminderToPaySupplier=Увага, сума платежу одного або кількох рахунків перевищує суму заборгованості.
    Відредагуйте свій запис, інакше підтвердьте та розгляньте можливість створення кредит-ноти для перевищення, сплаченого за кожним переплаченим рахунком-фактурою. ClassifyPaid=Класифікувати як 'Сплачений' -ClassifyUnPaid=Classify 'Unpaid' +ClassifyUnPaid=Класифікувати "неоплачені" ClassifyPaidPartially=Класифікувати як 'Сплачений частково' ClassifyCanceled=Класифікувати як 'Анулюваний' ClassifyClosed=Класифікувати як 'Закритий' -ClassifyUnBilled=Classify 'Unbilled' +ClassifyUnBilled=Класифікувати "не оплачено" CreateBill=Створити рахунок-фактуру CreateCreditNote=Створити кредитове авізо AddBill=Створити рахунок або кредитне авізо -AddToDraftInvoices=Add to draft invoice +AddToDraftInvoices=Додати до проекту рахунка-фактури DeleteBill=Видалити рахунок-фактуру SearchACustomerInvoice=Пошук рахунку-фактури Покупця -SearchASupplierInvoice=Search for a vendor invoice +SearchASupplierInvoice=Шукайте рахунок-фактуру постачальника CancelBill=Відмінити рахунок-фактуру SendRemindByMail=Відправити нагадування по 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 +DoPayment=Введіть оплату +DoPaymentBack=Введіть відшкодування +ConvertToReduc=Позначити як доступний кредит +ConvertExcessReceivedToReduc=Перетворіть отриманий надлишок у наявний кредит +ConvertExcessPaidToReduc=Перетворіть надлишок сплачених у наявну знижку EnterPaymentReceivedFromCustomer=Ввести платіж, отриманий від покупця -EnterPaymentDueToCustomer=Make payment due to customer +EnterPaymentDueToCustomer=Здійснити платіж за рахунок клієнта DisabledBecauseRemainderToPayIsZero=Відключено, тому що оплата, що залишилася є нульовою -PriceBase=Base price +PriceBase=Базова ціна BillStatus=Статус рахунку-фактури -StatusOfGeneratedInvoices=Status of generated invoices +StatusOfGeneratedInvoices=Статус створених рахунків-фактур BillStatusDraft=Проект (має бути підтверджений) BillStatusPaid=Сплачений -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available -BillStatusConverted=Paid (ready for consumption in final invoice) +BillStatusPaidBackOrConverted=Повернення кредитної ноти або позначено як доступний кредит +BillStatusConverted=Оплачено (готове до споживання в остаточному рахунку-фактурі) BillStatusCanceled=Анулюваний BillStatusValidated=Підтверджений (необхідно сплатити) BillStatusStarted=Розпочатий BillStatusNotPaid=Неоплачений -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=Не повернуто BillStatusClosedUnpaid=Закритий (неоплачений) BillStatusClosedPaidPartially=Сплачений (частково) BillShortStatusDraft=Проект BillShortStatusPaid=Сплачений -BillShortStatusPaidBackOrConverted=Refunded or converted -Refunded=Refunded +BillShortStatusPaidBackOrConverted=Повернено або конвертовано +Refunded=Повернено BillShortStatusConverted=Сплачений BillShortStatusCanceled=Анулюваний BillShortStatusValidated=Підтверджений BillShortStatusStarted=Розпочатий BillShortStatusNotPaid=Неоплачений -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=Не повернуто BillShortStatusClosedUnpaid=Закритий BillShortStatusClosedPaidPartially=Сплачений (частково) PaymentStatusToValidShort=На підтвердженні -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 +ErrorVATIntraNotConfigured=Номер ПДВ у межах Співтовариства ще не визначений +ErrorNoPaiementModeConfigured=Тип оплати за замовчуванням не визначено. Перейдіть до налаштування модуля рахунків-фактур, щоб виправити це. +ErrorCreateBankAccount=Створіть банківський рахунок, а потім перейдіть на панель налаштування модуля Рахунок-фактура, щоб визначити типи оплати ErrorBillNotFound=Рахунок %s не існує -ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s. +ErrorInvoiceAlreadyReplaced=Помилка, ви намагалися перевірити рахунок-фактуру, щоб замінити рахунок-фактуру %s. Але цей уже замінено рахунком-фактурою %s. ErrorDiscountAlreadyUsed=Помилка, знижка вже використовується ErrorInvoiceAvoirMustBeNegative=Помилка, правильний рахунок-фактура повинен мати негативну суму -ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have an amount excluding tax positive (or null) +ErrorInvoiceOfThisTypeMustBePositive=Помилка, цей тип рахунка-фактури має містити суму без урахування податку позитивною (або нульовою) ErrorCantCancelIfReplacementInvoiceNotValidated=Помилка, неможливо відмінити рахунок-фактуру, який був замінений на іншій рахунок-фактуру, що знаходиться в статусі проекту -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ця чи інша частина вже використовується, тому серію знижок не можна видалити. +ErrorInvoiceIsNotLastOfSameType=Помилка: датою рахунку-фактури %s є %s. Для рахунків-фактур одного типу (%s) вона має бути попередньою або дорівнювати останній даті. Будь ласка, змініть дату виставлення рахунку. BillFrom=Продавець BillTo=Покупець ActionsOnBill=Дії з рахунком-фактурою -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 +RecurringInvoiceTemplate=Шаблон/Повторний рахунок-фактура +NoQualifiedRecurringInvoiceTemplateFound=Немає повторюваних шаблонів рахунків-фактур для створення. +FoundXQualifiedRecurringInvoiceTemplate=Знайдено %s регулярні шаблони рахунків-фактур, які відповідають вимогам для створення. +NotARecurringInvoiceTemplate=Не повторюваний шаблон рахунка-фактури NewBill=Новий рахунок-фактура -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 +LastBills=Останні рахунки-фактури %s +LatestTemplateInvoices=Останні шаблони рахунків-фактур %s +LatestCustomerTemplateInvoices=Останні шаблони рахунків-фактур %s клієнтів +LatestSupplierTemplateInvoices=Останні шаблони рахунків-фактур постачальника %s +LastCustomersBills=Останні рахунки-фактури клієнтів %s +LastSuppliersBills=Останні рахунки-фактури постачальника %s AllBills=Усі рахунки-фактури -AllCustomerTemplateInvoices=All template invoices +AllCustomerTemplateInvoices=Усі шаблони рахунків-фактур OtherBills=Інші рахунки-фактури DraftBills=Проекти рахунків-фактур -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Vendor draft invoices +CustomersDraftInvoices=Проекти рахунків-фактур клієнта +SuppliersDraftInvoices=Проекти рахунків-фактур від постачальників 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. +ErrorNoPaymentDefined=Помилка Платіж не визначено +ConfirmDeleteBill=Ви впевнені, що хочете видалити цей рахунок-фактуру? +ConfirmValidateBill=Ви впевнені, що хочете підтвердити цей рахунок-фактуру з посиланням %s ? +ConfirmUnvalidateBill=Ви впевнені, що хочете змінити рахунок-фактуру %s на статус чернетки? +ConfirmClassifyPaidBill=Ви впевнені, що хочете змінити рахунок-фактуру %s на статус оплаченого? +ConfirmCancelBill=Ви впевнені, що хочете скасувати рахунок-фактуру %s ? +ConfirmCancelBillQuestion=Чому ви хочете класифікувати цей рахунок-фактуру як «недотриманий»? +ConfirmClassifyPaidPartially=Ви впевнені, що хочете змінити рахунок-фактуру %s на статус оплаченого? +ConfirmClassifyPaidPartiallyQuestion=Цей рахунок-фактуру оплачено не повністю. Яка причина закриття цього рахунку? +ConfirmClassifyPaidPartiallyReasonAvoir=Залишок несплаченого (%s %s) – це знижка, яка надається, оскільки платіж було здійснено раніше терміну. Регулюю ПДВ за допомогою кредит-ноти. +ConfirmClassifyPaidPartiallyReasonDiscount=Залишок несплаченого (%s %s) – це знижка, яка надається, оскільки платіж було здійснено раніше терміну. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Залишок несплаченого (%s %s) – це знижка, яка надається, оскільки платіж було здійснено раніше терміну. Я погоджуюся втратити ПДВ на цю знижку. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Залишок несплаченого (%s %s) – це знижка, яка надається, оскільки платіж було здійснено раніше терміну. Я повертаю ПДВ з цієї знижки без кредитного авізо. ConfirmClassifyPaidPartiallyReasonBadCustomer=Поганий Покупець -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Відрахування банком (комісія банку-посередника) ConfirmClassifyPaidPartiallyReasonProductReturned=Продукція частково повернена ConfirmClassifyPaidPartiallyReasonOther=Сума, анульована з інших причин -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=Цей вибір можливий, якщо у вашому рахунку-фактурі є відповідні коментарі. (Приклад «Тільки податок, що відповідає фактично сплаченій ціні, дає право на вирахування») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=У деяких країнах цей вибір може бути можливим, лише якщо ваш рахунок-фактура містить правильні примітки. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Використайте цей вибір, якщо усі інші не підходять -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A bad customer is a customer that refuses to pay his debt. +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Поганий клієнт – це клієнт, який відмовляється сплачувати свій борг. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Цей вибір використовується при неповній оплаті, коли деяка продукція була повернена -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=Несплачена сума – це посередницька комісія банку , вирахована безпосередньо з правильної суми , сплаченої Клієнтом. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Використовуйте цей вибір, якщо всі інші не підходять, наприклад, у такій ситуації:
    - оплата не завершена, тому що деякі продукти були відправлені назад
    - заявлена сума занадто важлива, тому що знижка була забута. в системі бухгалтерського обліку шляхом створення кредит-ноти. ConfirmClassifyAbandonReasonOther=Інший ConfirmClassifyAbandonReasonOtherDesc=Цей вибір використовуватиметься в усіх інших випадках. Наприклад, тому, що ви плануєте створити замінюючий рахунок-фактуру. -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=Ви підтверджуєте цей платіжний вхід для %s %s? +ConfirmSupplierPayment=Ви підтверджуєте цей платіжний вхід для %s %s? +ConfirmValidatePayment=Ви впевнені, що хочете підтвердити цей платіж? Після підтвердження платежу жодні зміни не можуть бути внесені. ValidateBill=Підтвердити рахунок-фактуру -UnvalidateBill=Unvalidate invoice -NumberOfBills=No. of invoices -NumberOfBillsByMonth=No. of invoices per month +UnvalidateBill=Скасувати дію рахунка-фактури +NumberOfBills=№ рахунків-фактур +NumberOfBillsByMonth=Кількість рахунків на місяць AmountOfBills=Сума рахунків-фактур -AmountOfBillsHT=Amount of invoices (net of tax) +AmountOfBillsHT=Сума рахунків-фактур (без урахування податку) AmountOfBillsByMonthHT=Сума рахунків-фактур за місяць (за вирахуванням податку) -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=Дозволити ситуаційний рахунок-фактуру +UseSituationInvoicesCreditNote=Дозволити ситуаційний рахунок-фактуру кредит-нота +Retainedwarranty=Збережена гарантія +AllowedInvoiceForRetainedWarranty=Збережена гарантія, яка використовується для наступних типів рахунків-фактур +RetainedwarrantyDefaultPercent=Відсоток збереженої гарантії за замовчуванням +RetainedwarrantyOnlyForSituation=Зробіть "збережену гарантію" доступною лише для рахунків-фактур +RetainedwarrantyOnlyForSituationFinal=У рахунках-фактурах глобальне відрахування «збереженої гарантії» застосовується лише до кінцевої ситуації +ToPayOn=Для оплати на %s +toPayOn=сплатити на %s +RetainedWarranty=Збережена гарантія +PaymentConditionsShortRetainedWarranty=Умови оплати збереженої гарантії +DefaultPaymentConditionsRetainedWarranty=Умови оплати збереженої гарантії за замовчуванням +setPaymentConditionsShortRetainedWarranty=Встановити умови оплати збереженої гарантії +setretainedwarranty=Встановити збережену гарантію +setretainedwarrantyDateLimit=Встановити ліміт дати збереженої гарантії +RetainedWarrantyDateLimit=Обмеження терміну збереженої гарантії +RetainedWarrantyNeed100Percent=Ситуаційний рахунок-фактура має бути за номером 100%%, щоб відображатися у форматі PDF AlreadyPaid=Вже сплачений -AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) +AlreadyPaidBack=Вже повернувся +AlreadyPaidNoCreditNotesNoDeposits=Уже сплачено (без кредитних нот і авансових платежів) Abandoned=Анулюваний RemainderToPay=Залишити неоплаченим -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 +RemainderToPayMulticurrency=Залишок неоплаченого, оригінальна валюта +RemainderToTake=Сума, що залишилася для прийому +RemainderToTakeMulticurrency=Сума, що залишилася для отримання, оригінальна валюта +RemainderToPayBack=Сума, що залишилася для повернення +RemainderToPayBackMulticurrency=Сума, що залишилася до повернення, оригінальна валюта +NegativeIfExcessRefunded=негативний, якщо перевищення повернено Rest=В очікуванні AmountExpected=Заявлена сума ExcessReceived=Отриманий надлишок -ExcessReceivedMulticurrency=Excess received, original currency -NegativeIfExcessReceived=negative if excess received -ExcessPaid=Excess paid -ExcessPaidMulticurrency=Excess paid, original currency +ExcessReceivedMulticurrency=Надлишок отримано, оригінальна валюта +NegativeIfExcessReceived=негативний, якщо отримано перевищення +ExcessPaid=Надмірна оплата +ExcessPaidMulticurrency=Надмірна оплата, оригінальна валюта EscompteOffered=Надана знижка (за достроковий платіж) EscompteOfferedShort=Знижка SendBillRef=Представлення рахунку %s SendReminderBillRef=Представлення рахунку %s (нагадування) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=Подання квитанції про оплату %s NoDraftBills=Немає проектів рахунків-фактур NoOtherDraftBills=Немає інших проектів рахунків-фактур NoDraftInvoices=Немає проектів рахунків-фактур -RefBill=Invoice ref +RefBill=Номер рахунку-фактури ToBill=Для виставляння RemainderToBill=Залишок до виставляння SendBillByMail=Відправити рахунок-фактуру по email SendReminderBillByMail=Відправити нагадування по email RelatedCommercialProposals=Пов'язані комерційні пропозиції -RelatedRecurringCustomerInvoices=Related recurring customer invoices +RelatedRecurringCustomerInvoices=Пов’язані регулярні рахунки-фактури клієнтів MenuToValid=Для перевірки -DateMaxPayment=Payment due on +DateMaxPayment=Платіж до DateInvoice=Дата рахунку-фактури -DatePointOfTax=Point of tax +DatePointOfTax=Податковий пункт NoInvoice=Немає рахунків-фактур -NoOpenInvoice=No open invoice -NbOfOpenInvoices=Number of open invoices +NoOpenInvoice=Немає відкритого рахунку +NbOfOpenInvoices=Кількість відкритих рахунків-фактур ClassifyBill=Класифікувати рахунок-фактуру -SupplierBillsToPay=Unpaid vendor invoices +SupplierBillsToPay=Неоплачені рахунки постачальників CustomerBillsUnpaid=Несплачені рахунки клієнта NonPercuRecuperable=Не підлягає стягненню -SetConditions=Set Payment Terms -SetMode=Set Payment Type -SetRevenuStamp=Set revenue stamp +SetConditions=Установіть умови оплати +SetMode=Установіть тип оплати +SetRevenuStamp=Встановити марку доходу Billed=Виставлений -RecurringInvoices=Recurring invoices -RecurringInvoice=Recurring invoice +RecurringInvoices=Повторювані рахунки-фактури +RecurringInvoice=Повторний рахунок-фактура RepeatableInvoice=Шаблон рахунку RepeatableInvoices=Шаблони рахунків +RecurringInvoicesJob=Формування повторюваних рахунків-фактур (рахунків-фактур на продаж) +RecurringSupplierInvoicesJob=Формування повторюваних рахунків-фактур (рахунків-фактур на покупку) Repeatable=Шаблон Repeatables=Шаблони ChangeIntoRepeatableInvoice=Конвертувати в шаблон рахунки CreateRepeatableInvoice=Створити шаблон рахунка-фактури CreateFromRepeatableInvoice=Створити з шаблону рахунок-фактуру -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details +CustomersInvoicesAndInvoiceLines=Рахунки-фактури клієнта та реквізити рахунку CustomersInvoicesAndPayments=Рахунки-фактури і платежі Покупця -ExportDataset_invoice_1=Customer invoices and invoice details +ExportDataset_invoice_1=Рахунки-фактури клієнта та реквізити рахунку ExportDataset_invoice_2=Рахунки-фактури і платежі Покупця -ProformaBill=Proforma Bill: +ProformaBill=Проформа законопроекту: Reduction=Скорочення -ReductionShort=Disc. +ReductionShort=Диск. Reductions=Скорочення -ReductionsShort=Disc. +ReductionsShort=Диск. Discounts=Знижки AddDiscount=Створити абсолютну знижку AddRelativeDiscount=Створити відносну знижку @@ -304,306 +307,308 @@ AddGlobalDiscount=Додати знижку EditGlobalDiscounts=Редагувати абсолютні знижки AddCreditNote=Створити кредитове авізо ShowDiscount=Показати знижку -ShowReduc=Show the discount -ShowSourceInvoice=Show the source invoice +ShowReduc=Покажіть знижку +ShowSourceInvoice=Показати вихідний рахунок-фактуру RelativeDiscount=Відносна знижка GlobalDiscount=Глобальна знижка CreditNote=Кредитове авізо CreditNotes=Кредитове авізо -CreditNotesOrExcessReceived=Credit notes or excess received -Deposit=Down payment -Deposits=Down payments +CreditNotesOrExcessReceived=Отримані кредитні ноти або надлишок +Deposit=Передоплата +Deposits=Перші внески DiscountFromCreditNote=Знижка з кредитового авізо %s -DiscountFromDeposit=Down payments from invoice %s -DiscountFromExcessReceived=Payments in excess of invoice %s -DiscountFromExcessPaid=Payments in excess of invoice %s +DiscountFromDeposit=Перші платежі з рахунку-фактури %s +DiscountFromExcessReceived=Платежі, що перевищують рахунок-фактуру %s +DiscountFromExcessPaid=Платежі, що перевищують рахунок-фактуру %s AbsoluteDiscountUse=Такий тип кредиту може бути використаний по рахунку-фактурі до його підтвердження -CreditNoteDepositUse=Invoice must be validated to use this kind of credits -NewGlobalDiscount=New absolute discount -NewRelativeDiscount=New relative discount -DiscountType=Discount type +CreditNoteDepositUse=Для використання такого типу кредитів рахунок-фактура має бути підтверджений +NewGlobalDiscount=Нова абсолютна знижка +NewRelativeDiscount=Нова відносна знижка +DiscountType=Тип знижки NoteReason=Примітка / Підстава ReasonDiscount=Підстава DiscountOfferedBy=Надана -DiscountStillRemaining=Discounts or credits available -DiscountAlreadyCounted=Discounts or credits already consumed -CustomerDiscounts=Customer discounts -SupplierDiscounts=Vendors discounts +DiscountStillRemaining=Можливі знижки або кредити +DiscountAlreadyCounted=Знижки або кредити вже використані +CustomerDiscounts=Знижки для клієнтів +SupplierDiscounts=Знижки продавців BillAddress=Адреса виставляння -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 +HelpEscompte=Ця знижка є знижкою, наданою клієнту, оскільки оплата була здійснена раніше терміну. +HelpAbandonBadCustomer=Ця сума була залишена (клієнт названий поганим клієнтом) і розглядається як виняткова втрата. +HelpAbandonOther=Цю суму було скасовано, оскільки це була помилка (наприклад, неправильний клієнт або рахунок-фактура замінено іншим) +IdSocialContribution=Ідентифікатор соціального/фіскального податку PaymentId=Код платежу -PaymentRef=Payment ref. +PaymentRef=Реф. InvoiceId=Код рахунку-фактури -InvoiceRef=Invoice ref. +InvoiceRef=Номер рахунку-фактури InvoiceDateCreation=Дата створення рахунку-фактури InvoiceStatus=Статус рахунку-фактури InvoiceNote=Примітка до рахунку-фактури InvoicePaid=Рахунок-фактура сплачений -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=Оплачено повністю +InvoicePaidCompletelyHelp=Рахунки-фактури оплачені повністю. Це виключає рахунки-фактури, які оплачуються частково. Щоб отримати список усіх рахунків-фактур «Закриті» або «Не закриті», використовуйте фільтр статусу рахунка-фактури. +OrderBilled=Замовлення оплачено +DonationPaid=Пожертвування сплачено PaymentNumber=Номери платежу RemoveDiscount=Видалити знижку -WatermarkOnDraftBill=Watermark on draft invoices (nothing if empty) +WatermarkOnDraftBill=Водяний знак на чернетках рахунків-фактур (нічого, якщо порожній) InvoiceNotChecked=Рахунок-фактура не вибраний -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Ви впевнені, що хочете клонувати цей рахунок-фактуру %s ? DisabledBecauseReplacedInvoice=Дії відключені оскільки рахунок-фактура був замінений -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=У цьому розділі представлено підсумок усіх платежів, здійснених на спеціальні витрати. Сюди включаються лише записи з виплатами протягом фіксованого року. +NbOfPayments=Кількість платежів SplitDiscount=Розділити знижку на дві -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 +ConfirmSplitDiscount=Ви впевнені, що хочете розділити цю знижку %s %s на дві менші знижки? +TypeAmountOfEachNewDiscount=Введіть суму для кожної з двох частин: +TotalOfTwoDiscountMustEqualsOriginal=Загальна сума двох нових знижок має дорівнювати початковій сумі знижки. +ConfirmRemoveDiscount=Ви впевнені, що хочете видалити цю знижку? +RelatedBill=Пов'язаний рахунок-фактура +RelatedBills=Пов'язані рахунки-фактури +RelatedCustomerInvoices=Пов'язані рахунки-фактури клієнтів +RelatedSupplierInvoices=Пов’язані рахунки-фактури постачальників +LatestRelatedBill=Останній пов’язаний рахунок-фактура +WarningBillExist=Попередження, один або кілька рахунків-фактур уже існують +MergingPDFTool=Інструмент об’єднання PDF +AmountPaymentDistributedOnInvoice=Сума платежу розподілена за рахунком-фактурою +PaymentOnDifferentThirdBills=Дозволити платежі за рахунками різних третіх сторін, але однієї материнської компанії +PaymentNote=Платіжна записка +ListOfPreviousSituationInvoices=Список попередніх рахунків-фактур +ListOfNextSituationInvoices=Список наступних рахунків-фактур +ListOfSituationInvoices=Перелік ситуаційних рахунків +CurrentSituationTotal=Повна поточна ситуація +DisabledBecauseNotEnouthCreditNote=Щоб вилучити ситуаційний рахунок-фактуру з циклу, загальна сума кредитного нота цього рахунка-фактури повинна покривати цю загальну суму рахунку-фактури +RemoveSituationFromCycle=Вилучіть цей рахунок-фактуру з циклу +ConfirmRemoveSituationFromCycle=Вилучити цей рахунок-фактуру %s з циклу? +ConfirmOuting=Підтвердьте вихід +FrequencyPer_d=Кожні %s днів +FrequencyPer_m=Кожні %s місяців +FrequencyPer_y=Кожні %s років +FrequencyUnit=Одиниця частоти +toolTipFrequency=Приклади:
    Набір 7, день : надавати новий рахунок-фактуру кожні 7 днів
    місяць a0aee83365837fz37fz37fz07fz37fz07fz07 +NextDateToExecution=Дата наступного створення рахунка-фактури +NextDateToExecutionShort=Дата наступного ген. +DateLastGeneration=Дата останнього покоління +DateLastGenerationShort=Дата останнього ген. +MaxPeriodNumber=Макс. кількість сформованих рахунків-фактур +NbOfGenerationDone=Кількість створених рахунків-фактур +NbOfGenerationOfRecordDone=Кількість генерації записів уже виконано +NbOfGenerationDoneShort=Кількість виконаних генерацій +MaxGenerationReached=Досягнуто максимальної кількості поколінь +InvoiceAutoValidate=Автоматично перевіряйте рахунки-фактури +GeneratedFromRecurringInvoice=Створено на основі шаблону регулярного рахунку-фактури %s +DateIsNotEnough=Дата ще не досягнута +InvoiceGeneratedFromTemplate=Рахунок-фактура %s, створений на основі повторюваного шаблону рахунка-фактури %s +GeneratedFromTemplate=Створено на основі шаблону рахунка-фактури %s +WarningInvoiceDateInFuture=Попередження, дата рахунку-фактури вища за поточну +WarningInvoiceDateTooFarInFuture=Попередження, дата рахунку-фактури занадто далека від поточної дати +ViewAvailableGlobalDiscounts=Переглянути наявні знижки +GroupPaymentsByModOnReports=Згрупуйте платежі за режимами на звітах # PaymentConditions -Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +Statut=Статус +PaymentConditionShortRECEP=Оплата після отримання +PaymentConditionRECEP=Оплата після отримання PaymentConditionShort30D=30 днів PaymentCondition30D=30 днів -PaymentConditionShort30DENDMONTH=30 days of month-end -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort30DENDMONTH=30 днів кінця місяця +PaymentCondition30DENDMONTH=Протягом 30 днів після закінчення місяця PaymentConditionShort60D=60 днів PaymentCondition60D=60 днів -PaymentConditionShort60DENDMONTH=60 days of month-end -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShort60DENDMONTH=60 днів кінця місяця +PaymentCondition60DENDMONTH=Протягом 60 днів після закінчення місяця PaymentConditionShortPT_DELIVERY=Доставка -PaymentConditionPT_DELIVERY=On delivery -PaymentConditionShortPT_ORDER=Order -PaymentConditionPT_ORDER=On order +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 -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 +PaymentConditionShort10D=10 днів +PaymentCondition10D=10 днів +PaymentConditionShort10DENDMONTH=10 днів закінчення місяця +PaymentCondition10DENDMONTH=Протягом 10 днів після закінчення місяця +PaymentConditionShort14D=14 днів +PaymentCondition14D=14 днів +PaymentConditionShort14DENDMONTH=14 днів закінчення місяця +PaymentCondition14DENDMONTH=Протягом 14 днів після закінчення місяця +FixAmount=Фіксована сума - 1 рядок з міткою "%s" +VarAmount=Змінна сума (%% tot.) +VarAmountOneLine=Сума змінної (%% tot.) - 1 рядок з міткою "%s" +VarAmountAllLines=Сума змінної (%% tot.) - усі рядки з початку # PaymentType -PaymentTypeVIR=Bank transfer -PaymentTypeShortVIR=Bank transfer -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypeVIR=банківський переказ +PaymentTypeShortVIR=банківський переказ +PaymentTypePRE=Платіжне доручення прямого дебету +PaymentTypeShortPRE=Дебетове платіжне доручення PaymentTypeLIQ=Готівка PaymentTypeShortLIQ=Готівка PaymentTypeCB=Кредитна картка PaymentTypeShortCB=Кредитна картка PaymentTypeCHQ=Чек PaymentTypeShortCHQ=Чек -PaymentTypeTIP=TIP (Documents against Payment) -PaymentTypeShortTIP=TIP Payment -PaymentTypeVAD=Online payment -PaymentTypeShortVAD=Online payment -PaymentTypeTRA=Bank draft +PaymentTypeTIP=TIP (Документи проти оплати) +PaymentTypeShortTIP=ПОРАДА Оплата +PaymentTypeVAD=Онлайн оплата +PaymentTypeShortVAD=Онлайн оплата +PaymentTypeTRA=Банківський чек PaymentTypeShortTRA=Проект -PaymentTypeFAC=Factor -PaymentTypeShortFAC=Factor -PaymentTypeDC=Debit/Credit Card +PaymentTypeFAC=Фактор +PaymentTypeShortFAC=Фактор +PaymentTypeDC=Дебетова/кредитна картка PaymentTypePP=PayPal BankDetails=Банківські реквізити BankCode=Код банку -DeskCode=Branch code +DeskCode=Код філії BankAccountNumber=Номер рахунка -BankAccountNumberKey=Checksum +BankAccountNumberKey=контрольна сума Residence=Адреса -IBANNumber=IBAN account number +IBANNumber=Номер рахунку IBAN IBAN=IBAN -CustomerIBAN=IBAN of customer -SupplierIBAN=IBAN of vendor +CustomerIBAN=IBAN клієнта +SupplierIBAN=IBAN постачальника BIC=BIC/SWIFT -BICNumber=BIC/SWIFT code +BICNumber=BIC/SWIFT-код ExtraInfos=Додаткова інформація -RegulatedOn=Regulated on +RegulatedOn=Регулюється на ChequeNumber=Чек № -ChequeOrTransferNumber=Check/Transfer N° -ChequeBordereau=Check schedule -ChequeMaker=Check/Transfer sender +ChequeOrTransferNumber=Перевірка/Номер передачі +ChequeBordereau=Перевірте розклад +ChequeMaker=Відправник чека/переказу ChequeBank=Банк чека CheckBank=Перевірити 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. -IntracommunityVATNumber=Intra-Community VAT ID -PaymentByChequeOrderedTo=Check payments (including tax) are payable to %s, send to -PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to +PrettyLittleSentence=Прийняти суму платежів за чеками, виданими на моє ім’я як члена бухгалтерської асоціації, затвердженої Фіскальною адміністрацією. +IntracommunityVATNumber=Ідентифікаційний номер платника ПДВ у межах Співтовариства +PaymentByChequeOrderedTo=Чеки (включаючи податки) сплачуються на адресу %s, надіслати на +PaymentByChequeOrderedToShort=Платежі чеками (включаючи податки) підлягають сплаті SendTo=відправлено -PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account -VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI -LawApplicationPart1=By application of the law 80.335 of 12/05/80 +PaymentByTransferOnThisBankAccount=Оплата переказом на наступний банківський рахунок +VATIsNotUsedForInvoice=* Не застосовується ПДВ, ст. 293B CGI +VATIsNotUsedForInvoiceAsso=* Не застосовується ПДВ, ст. 261-7 CGI +LawApplicationPart1=Відповідно до Закону 80.335 від 05.12.80р LawApplicationPart2=товари залишаються у власності -LawApplicationPart3=the seller until full payment of -LawApplicationPart4=their price. -LimitedLiabilityCompanyCapital=SARL with Capital of +LawApplicationPart3=Продавець до повної оплати +LawApplicationPart4=їхня ціна. +LimitedLiabilityCompanyCapital=SARL зі столицею оф UseLine=Застосувати UseDiscount=Використати знижку UseCredit=Використати кредит -UseCreditNoteInInvoicePayment=Reduce amount to pay with this credit -MenuChequeDeposits=Check Deposits +UseCreditNoteInInvoicePayment=Зменшити суму для оплати за допомогою цього кредиту +MenuChequeDeposits=Чекові депозити MenuCheques=Чеки -MenuChequesReceipts=Check receipts -NewChequeDeposit=New deposit -ChequesReceipts=Check receipts -ChequesArea=Check deposits area -ChequeDeposits=Check deposits +MenuChequesReceipts=Перевірте квитанції +NewChequeDeposit=Новий депозит +ChequesReceipts=Перевірте квитанції +ChequesArea=Зона депозитів чеків +ChequeDeposits=Чекові депозити Cheques=Чеки -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 +DepositId=Ідентифікаційний депозит +NbCheque=Кількість чеків +CreditNoteConvertedIntoDiscount=Цей %s було перетворено в %s +UsBillingContactAsIncoiveRecipientIfExist=Використовуйте контактну/адресу з типом "контакт з розрахунку" замість адреси третьої сторони як одержувача рахунків-фактур ShowUnpaidAll=Показати усі несплачені рахунки-фактури ShowUnpaidLateOnly=Паказати лише прострочені несплачені рахунки-фактури PaymentInvoiceRef=Оплата рахунка-фактури %s ValidateInvoice=Підтвердити рахунок-фактуру -ValidateInvoices=Validate invoices +ValidateInvoices=Перевірка рахунків-фактур Cash=Готівка Reported=Затриман -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 +DisabledBecausePayments=Неможливо, оскільки є певні платежі +CantRemovePaymentWithOneInvoicePaid=Неможливо видалити платіж, оскільки є принаймні один рахунок-фактура з класифікацією оплачених +CantRemovePaymentVATPaid=Неможливо видалити платіж, оскільки декларація з ПДВ вважається оплаченою +CantRemovePaymentSalaryPaid=Не можу видалити оплату, оскільки зарплата класифікується як виплачена +ExpectedToPay=Очікувана оплата +CantRemoveConciliatedPayment=Не вдається видалити звірений платіж +PayedByThisPayment=Оплачено цим платежем +ClosePaidInvoicesAutomatically=Автоматично класифікуйте всі стандартні, авансові або замінні рахунки-фактури як «Оплачені», коли оплата здійснена повністю. +ClosePaidCreditNotesAutomatically=Автоматично класифікувати всі кредитні ноти як "Оплачені", коли відшкодування виконано повністю. +ClosePaidContributionsAutomatically=Автоматично класифікуйте всі соціальні або фіскальні внески як «Сплачені», коли виплату здійснено повністю. +ClosePaidVATAutomatically=Автоматично класифікувати декларацію з ПДВ як «Сплачено», коли оплата здійснена повністю. +ClosePaidSalaryAutomatically=Автоматично класифікувати заробітну плату як «Оплачувану», коли оплата виконана повністю. +AllCompletelyPayedInvoiceWillBeClosed=Усі рахунки-фактури без залишку до оплати будуть автоматично закриті зі статусом «Оплачено». +ToMakePayment=Платити ToMakePaymentBack=Повернення платежу ListOfYourUnpaidInvoices=Список неоплачених рахунків -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 +NoteListOfYourUnpaidInvoices=Примітка. Цей список містить лише рахунки-фактури для третіх сторін, з якими ви пов’язані як торговий представник. +RevenueStamp=Податкова марка +YouMustCreateInvoiceFromThird=Ця опція доступна лише при створенні рахунку-фактури на вкладці «Клієнт» третьої сторони +YouMustCreateInvoiceFromSupplierThird=Ця опція доступна лише при створенні рахунку-фактури на вкладці «Постачальник» третьої сторони +YouMustCreateStandardInvoiceFirstDesc=Спершу потрібно створити стандартний рахунок-фактуру та перетворити його на «шаблон», щоб створити новий шаблон рахунка-фактури +PDFCrabeDescription=Шаблон рахунку-фактури PDF Crabe. Повний шаблон рахунку-фактури (стара реалізація шаблону Sponge) +PDFSpongeDescription=Шаблон рахунку-фактури PDF Губка. Повний шаблон рахунка-фактури +PDFCrevetteDescription=Шаблон рахунку-фактури PDF Crevette. Повний шаблон рахунка-фактури для рахунків-фактур +TerreNumRefModelDesc1=Номер повернення у форматі %syymm-nnnn для стандартних рахунків-фактур і %syymm-nnnn для кредитних нот, де yy – рік, mm – місяць, а nnnn – послідовне число, що автоматично збільшується без перерви та повернення до 0 +MarsNumRefModelDesc1=Номер повернення у форматі %syymm-nnnn для стандартних рахунків-фактур, %syymm-nnnn для заміни рахунків-фактур, %syymm-nnnn inclement incementnn incementn incementn incementnn incementnn incemnnnn incementnn incemnn incementnn incementnn incemnn inlementnn incemnn incemnn incemnn incemnn incemnn incemnn incemnn без перерви і без повернення до 0 +TerreNumRefModelError=Законопроект, який починається з $syymm, вже існує і не сумісна з цією моделлю послідовності. Видаліть його або перейменуйте, щоб активувати цей модуль. +CactusNumRefModelDesc1=Номер повернення у форматі %syymm-nnnn для стандартних рахунків-фактур, %syymm-nnnn для кредитних нот і %syymm-nnnn для рахунків-фактур, де yy - це рік, а число повернення - місяць, а число "номер повернення" - це місяць 0 +EarlyClosingReason=Причина дострокового закриття +EarlyClosingComment=Дострокове закриття ##### Types de contacts ##### -TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice -TypeContact_facture_external_BILLING=Customer invoice contact +TypeContact_facture_internal_SALESREPFOLL=Представницький наступний рахунок-фактура клієнта +TypeContact_facture_external_BILLING=Зв'язок з рахунками-фактурою клієнта TypeContact_facture_external_SHIPPING=Зверніться в службу доставки -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 +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=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 +InvoiceFirstSituationAsk=Рахунок-фактура першої ситуації +InvoiceFirstSituationDesc=Рахунки-фактури для ситуацій пов’язані з ситуаціями, пов’язаними з прогресом, наприклад, прогресом будівництва. Кожна ситуація прив’язана до рахунку-фактури. +InvoiceSituation=Ситуаційний рахунок +PDFInvoiceSituation=Ситуаційний рахунок +InvoiceSituationAsk=Рахунок за ситуацією +InvoiceSituationDesc=Створіть нову ситуацію після вже існуючої +SituationAmount=Сума рахунка-фактури (нетто) +SituationDeduction=Ситуаційне віднімання ModifyAllLines=Змінити усі строки -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. +CreateNextSituationInvoice=Створіть наступну ситуацію +ErrorFindNextSituationInvoice=Помилка не вдається знайти наступний цикл ситуації +ErrorOutingSituationInvoiceOnUpdate=Не вдається отримати цей рахунок-фактуру. +ErrorOutingSituationInvoiceCreditNote=Неможливо передати пов’язане кредитне авізо. +NotLastInCycle=Цей рахунок-фактура не є останнім у циклі, і його не можна змінювати. +DisabledBecauseNotLastInCycle=Наступна ситуація вже існує. +DisabledBecauseFinal=Ця ситуація остаточна. situationInvoiceShortcode_AS=AS -situationInvoiceShortcode_S=S -CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation. -NoSituations=No open situations +situationInvoiceShortcode_S=С +CantBeLessThanMinPercent=Прогрес не може бути меншим за його значення в попередній ситуації. +NoSituations=Жодних відкритих ситуацій InvoiceSituationLast=Фінальний і основний рахунок -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 -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 +PDFCrevetteSituationNumber=Ситуація N°%s +PDFCrevetteSituationInvoiceLineDecompte=Рахунок-фактура ситуації – COUNT +PDFCrevetteSituationInvoiceTitle=Ситуаційний рахунок +PDFCrevetteSituationInvoiceLine=Ситуація N°%s: Інв. N°%s на %s +TotalSituationInvoice=Тотальна ситуація +invoiceLineProgressError=Перебіг рядка рахунка-фактури не може бути більшим або дорівнювати наступному рядку рахунка-фактури +updatePriceNextInvoiceErrorUpdateline=Помилка: оновити ціну в рядку рахунку-фактури: %s +ToCreateARecurringInvoice=Щоб створити періодичний рахунок-фактуру для цього контракту, спочатку створіть цей проект рахунка-фактури, потім перетворіть його на шаблон рахунка-фактури та визначте частоту створення майбутніх рахунків-фактур. +ToCreateARecurringInvoiceGene=Щоб створювати майбутні рахунки-фактури регулярно та вручну, просто перейдіть до меню %s - %s - %s . +ToCreateARecurringInvoiceGeneAuto=Якщо вам потрібно, щоб такі рахунки-фактури створювалися автоматично, попросіть адміністратора увімкнути та налаштувати модуль %s . Зауважте, що обидва методи (ручний і автоматичний) можна використовувати разом без ризику дублювання. +DeleteRepeatableInvoice=Видалити шаблон рахунка-фактури +ConfirmDeleteRepeatableInvoice=Ви впевнені, що хочете видалити шаблон рахунка-фактури? +CreateOneBillByThird=Створити один рахунок-фактуру для третьої сторони (інакше один рахунок-фактуру на вибраний об’єкт) +BillCreated=%s створено рахунки-фактури +BillXCreated=Створено рахунок-фактуру %s +StatusOfGeneratedDocuments=Стан формування документів +DoNotGenerateDoc=Не створюйте файл документа +AutogenerateDoc=Автоматичне створення файлу документа +AutoFillDateFrom=Установіть дату початку для рядка обслуговування з датою рахунка-фактури +AutoFillDateFromShort=Встановити дату початку +AutoFillDateTo=Встановити дату завершення рядка обслуговування з датою наступного рахунку-фактури +AutoFillDateToShort=Установіть дату завершення +MaxNumberOfGenerationReached=Максимальна кількість ген. досягнуто +BILL_DELETEInDolibarr=Рахунок-фактура видалено +BILL_SUPPLIER_DELETEInDolibarr=Рахунок-фактура постачальника видалено +UnitPriceXQtyLessDiscount=Ціна за одиницю х Кількість - Знижка +CustomersInvoicesArea=Платіжна зона клієнта +SupplierInvoicesArea=Платіжна зона постачальника +SituationTotalRayToRest=Залишок платити без податку +PDFSituationTitle=Ситуація № %d +SituationTotalProgress=Загальний прогрес %d %% +SearchUnpaidInvoicesWithDueDate=Шукати неоплачені рахунки-фактури з датою платежу = %s +NoPaymentAvailable=Немає оплати для %s +PaymentRegisteredAndInvoiceSetToPaid=Платіж зареєстровано, а рахунок-фактуру %s оплачено +SendEmailsRemindersOnInvoiceDueDate=Надсилати нагадування електронною поштою про неоплачені рахунки +MakePaymentAndClassifyPayed=Запис оплати +BulkPaymentNotPossibleForInvoice=Масова оплата неможлива для рахунка-фактури %s (поганий тип або статус) diff --git a/htdocs/langs/uk_UA/blockedlog.lang b/htdocs/langs/uk_UA/blockedlog.lang index 12f28737d49..13e230288d2 100644 --- a/htdocs/langs/uk_UA/blockedlog.lang +++ b/htdocs/langs/uk_UA/blockedlog.lang @@ -1,57 +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. +BlockedLog=Незмінні журнали +Field=Поле +BlockedLogDesc=Цей модуль відстежує деякі події в журналі без змін (який ви не можете змінити після запису) у ланцюжок блоків у режимі реального часу. Цей модуль забезпечує сумісність із вимогами законів деяких країн (наприклад, Франція з законом Finance 2016 - Norme NF525). +Fingerprints=Архівні події та відбитки пальців +FingerprintsDesc=Це інструмент для перегляду або вилучення журналів без змін. Незмінні журнали створюються та архівуються локально в окрему таблицю в режимі реального часу, коли ви записуєте ділову подію. Ви можете використовувати цей інструмент, щоб експортувати цей архів і зберегти його у зовнішній службі підтримки (у деяких країнах, наприклад у Франції, ви просите робити це щороку). Зауважте, що немає функції очищення цього журналу, і кожна зміна, яку намагалися внести безпосередньо в цей журнал (наприклад, хакером), буде повідомлятися з недійсним відбитком пальця. Якщо вам справді потрібно очистити цю таблицю, оскільки ви використовували свою програму для демонстраційних/тестових цілей і хочете очистити свої дані, щоб розпочати виробництво, ви можете попросити свого торговельного посередника або інтегратора скинути вашу базу даних (всі ваші дані буде видалено). +CompanyInitialKey=Початковий ключ компанії (хеш блоку генезису) +BrowseBlockedLog=Незмінні журнали +ShowAllFingerPrintsMightBeTooLong=Показати всі архівні журнали (може бути довгими) +ShowAllFingerPrintsErrorsMightBeTooLong=Показати всі недійсні журнали архіву (може бути довгими) +DownloadBlockChain=Завантажити відбитки пальців +KoCheckFingerprintValidity=Архівний запис журналу недійсний. Це означає, що хтось (хакер?) змінив деякі дані цього запису після його запису, або стер попередній архівований запис (перевірте, чи існує рядок із попереднім #), або змінив контрольну суму попереднього запису. +OkCheckFingerprintValidity=Архівний запис журналу дійсний. Дані в цьому рядку не були змінені, і запис слідує за попереднім. +OkCheckFingerprintValidityButChainIsKo=Архівний журнал виглядає дійсним порівняно з попереднім, але ланцюжок раніше був пошкоджений. +AddedByAuthority=Зберігається у віддаленому центрі +NotAddedByAuthorityYet=Ще не збережено у віддаленому органі влади +ShowDetails=Показати збережені деталі +logPAYMENT_VARIOUS_CREATE=Створено платіж (не пов’язаний із рахунком-фактурою). +logPAYMENT_VARIOUS_MODIFY=Платіж (не пов’язаний з рахунком-фактурою) змінено +logPAYMENT_VARIOUS_DELETE=Логічне видалення платежу (не присвоєно рахунку-фактурі). +logPAYMENT_ADD_TO_BANK=Платіж додано до банку +logPAYMENT_CUSTOMER_CREATE=Створено платіж клієнта +logPAYMENT_CUSTOMER_DELETE=Логічне видалення оплати клієнтом +logDONATION_PAYMENT_CREATE=Створено платіж пожертв +logDONATION_PAYMENT_DELETE=Логічне видалення платежу пожертвування +logBILL_PAYED=Рахунок-фактура клієнта оплачений +logBILL_UNPAYED=Рахунок-фактура клієнта встановлено неоплаченим +logBILL_VALIDATE=Рахунок-фактура клієнта підтверджено +logBILL_SENTBYMAIL=Рахунок клієнту надіслати поштою +logBILL_DELETE=Рахунок-фактура клієнта логічно видалено +logMODULE_RESET=Модуль BlockedLog вимкнено +logMODULE_SET=Модуль BlockedLog увімкнено +logDON_VALIDATE=Пожертвування підтверджено +logDON_MODIFY=Пожертвування змінено +logDON_DELETE=Логічне видалення пожертв +logMEMBER_SUBSCRIPTION_CREATE=Підписка для учасників створена +logMEMBER_SUBSCRIPTION_MODIFY=Передплату членів змінено +logMEMBER_SUBSCRIPTION_DELETE=Логічне видалення підписки учасників +logCASHCONTROL_VALIDATE=Запис закриття каси +BlockedLogBillDownload=Завантаження рахунку-фактури клієнта +BlockedLogBillPreview=Попередній перегляд рахунку-фактури клієнта +BlockedlogInfoDialog=Деталі журналу +ListOfTrackedEvents=Список відстежуваних подій +Fingerprint=Відбиток пальця +DownloadLogCSV=Експортувати архівні журнали (CSV) +logDOC_PREVIEW=Попередній перегляд підтвердженого документа для друку або завантаження +logDOC_DOWNLOAD=Завантажте перевірений документ, щоб роздрукувати або надіслати +DataOfArchivedEvent=Повні дані заархівованої події +ImpossibleToReloadObject=Оригінальний об’єкт (тип %s, id %s) не пов’язаний (перегляньте стовпець «Повні дані», щоб отримати незмінні збережені дані) +BlockedLogAreRequiredByYourCountryLegislation=Законодавством вашої країни може знадобитися модуль Unalterable Logs. Вимкнення цього модуля може зробити будь-які майбутні операції недійсними відповідно до законодавства та використання легального програмного забезпечення, оскільки вони не можуть бути підтверджені податковою перевіркою. +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Модуль Unalterable Logs активовано через законодавство вашої країни. Вимкнення цього модуля може зробити будь-які майбутні операції недійсними відповідно до законодавства та використання легального програмного забезпечення, оскільки вони не можуть бути підтверджені податковою перевіркою. +BlockedLogDisableNotAllowedForCountry=Список країн, де використання цього модуля є обов’язковим (щоб уникнути помилкового вимкнення модуля, якщо ваша країна є в цьому списку, вимкнути модуль неможливо без попереднього редагування цього списку. Також зауважте, що ввімкнення/вимкнення цього модуля призведе до слідкуйте за незмінним журналом). +OnlyNonValid=Недійсний +TooManyRecordToScanRestrictFilters=Забагато записів для сканування/аналізу. Будь ласка, обмежте список більш обмежуючими фільтрами. +RestrictYearToExport=Обмежити місяць/рік на експорт +BlockedLogEnabled=Увімкнено систему відстеження подій у журналах без змін +BlockedLogDisabled=Систему відстеження подій у журналах без змін було вимкнено після того, як було зроблено певний запис. Ми зберегли спеціальний відбиток пальця, щоб відстежити ланцюг як зламаний +BlockedLogDisabledBis=Систему відстеження подій у журналах без змін вимкнено. Це можливо, тому що записів ще не було. diff --git a/htdocs/langs/uk_UA/bookmarks.lang b/htdocs/langs/uk_UA/bookmarks.lang index be0f2f7e25d..152bccdfe26 100644 --- a/htdocs/langs/uk_UA/bookmarks.lang +++ b/htdocs/langs/uk_UA/bookmarks.lang @@ -1,22 +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 +AddThisPageToBookmarks=Додати поточну сторінку до закладок +Bookmark=Закладка +Bookmarks=Закладки +ListOfBookmarks=Список закладок +EditBookmarks=Список/редагування закладок +NewBookmark=Нова закладка +ShowBookmark=Показати закладку +OpenANewWindow=Відкрийте нову вкладку +ReplaceWindow=Замінити поточну вкладку +BookmarkTargetNewWindowShort=Нова вкладка +BookmarkTargetReplaceWindowShort=Поточна вкладка +BookmarkTitle=Назва закладки 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 +BehaviourOnClick=Поведінка, коли вибрано URL-адресу закладки +CreateBookmark=Створити закладку +SetHereATitleForLink=Установіть назву для закладки +UseAnExternalHttpLinkOrRelativeDolibarrLink=Використовуйте зовнішнє/абсолютне посилання (https://externalurl.com) або внутрішнє/відносне посилання (/mypage.php). Ви також можете скористатися телефоном, як тел: 0123456. +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Виберіть, чи потрібно відкривати пов’язану сторінку в поточній вкладці чи в новій вкладці +BookmarksManagement=Управління закладками BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=Закладок не визначено diff --git a/htdocs/langs/uk_UA/boxes.lang b/htdocs/langs/uk_UA/boxes.lang index f89b0b60395..a7c5a919507 100644 --- a/htdocs/langs/uk_UA/boxes.lang +++ b/htdocs/langs/uk_UA/boxes.lang @@ -1,120 +1,120 @@ # 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 -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 -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 +BoxDolibarrStateBoard=Статистика основних бізнес-об'єктів у базі даних +BoxLoginInformation=Інформація для входу +BoxLastRssInfos=RSS інформація +BoxLastProducts=Останні %s продукти/послуги +BoxProductsAlertStock=Повідомлення про запаси продуктів +BoxLastProductsInContract=Останні %s контрактні продукти/послуги +BoxLastSupplierBills=Останні рахунки-фактури постачальника +BoxLastCustomerBills=Останні рахунки-фактури клієнта +BoxOldestUnpaidCustomerBills=Найстаріші неоплачені рахунки клієнта +BoxOldestUnpaidSupplierBills=Найстаріші неоплачені рахунки постачальників +BoxLastProposals=Останні комерційні пропозиції +BoxLastProspects=Останні модифіковані перспективи +BoxLastCustomers=Останні модифіковані клієнти +BoxLastSuppliers=Останні модифіковані постачальники +BoxLastCustomerOrders=Останні замовлення на продаж +BoxLastActions=Останні дії +BoxLastContracts=Останні контракти +BoxLastContacts=Останні контакти/адреси +BoxLastMembers=Останні учасники +BoxLastModifiedMembers=Останні змінені члени +BoxLastMembersSubscriptions=Останні підписки учасників +BoxFicheInter=Останні втручання +BoxCurrentAccounts=Відкрити баланс рахунків +BoxTitleMemberNextBirthdays=Дні народження цього місяця (учасники) +BoxTitleMembersByType=Члени за типом і статусом +BoxTitleMembersSubscriptionsByYear=Підписки учасників за роками +BoxTitleLastRssInfos=Останні новини %s від %s +BoxTitleLastProducts=Продукти/послуги: остання зміна %s +BoxTitleProductsAlertStock=Продукти: оповіщення про запас +BoxTitleLastSuppliers=Останні зареєстровані постачальники %s +BoxTitleLastModifiedSuppliers=Постачальники: остання зміна %s +BoxTitleLastModifiedCustomers=Клієнти: останні зміни %s +BoxTitleLastCustomersOrProspects=Останні клієнти або потенційні клієнти %s +BoxTitleLastCustomerBills=Останні %s змінені рахунки-фактури Клієнта +BoxTitleLastSupplierBills=Останні %s змінені рахунки-фактури постачальника +BoxTitleLastModifiedProspects=Перспективи: остання зміна %s +BoxTitleLastModifiedMembers=Останні користувачі %s +BoxTitleLastFicheInter=Останні модифіковані втручання %s +BoxTitleOldestUnpaidCustomerBills=Рахунки-фактури клієнта: найстаріший %s неоплачений +BoxTitleOldestUnpaidSupplierBills=Рахунки-фактури постачальника: найстаріший %s неоплачений +BoxTitleCurrentAccounts=Відкрити рахунки: залишки +BoxTitleSupplierOrdersAwaitingReception=Замовлення постачальника очікують на отримання +BoxTitleLastModifiedContacts=Контакти/Адреси: останні зміни %s +BoxMyLastBookmarks=Закладки: останні %s +BoxOldestExpiredServices=Найстаріші активні служби, термін дії яких закінчився +BoxLastExpiredServices=Останні %s найстаріші контакти з активними службами, термін дії яких закінчився +BoxTitleLastActionsToDo=Останні дії %s +BoxTitleLastContracts=Останні %s контракти, які були змінені +BoxTitleLastModifiedDonations=Останні пожертвування %s, які були змінені +BoxTitleLastModifiedExpenses=Останні а0ecb2ec87f49fz0 звіти про витрати, які були змінені +BoxTitleLatestModifiedBoms=Останні а0ecb2ec87f49fz0 BOMs, які були змінені +BoxTitleLatestModifiedMos=Останні %s Замовлення на виробництво, які були змінені +BoxTitleLastOutstandingBillReached=Клієнти з максимальною заборгованістю перевищено +BoxGlobalActivity=Глобальна діяльність (рахунки-фактури, пропозиції, замовлення) +BoxGoodCustomers=Хороші клієнти +BoxTitleGoodCustomers=%s Хороші клієнти +BoxScheduledJobs=Заплановані роботи +BoxTitleFunnelOfProspection=Свинцева воронка +FailedToRefreshDataInfoNotUpToDate=Не вдалося оновити потік RSS. Остання успішна дата оновлення: %s +LastRefreshDate=Остання дата оновлення +NoRecordedBookmarks=Закладок не визначено. +ClickToAdd=Натисніть тут, щоб додати. +NoRecordedCustomers=Немає записаних клієнтів +NoRecordedContacts=Немає записаних контактів +NoActionsToDo=Немає дій +NoRecordedOrders=Немає записаних замовлень на продаж +NoRecordedProposals=Немає зафіксованих пропозицій +NoRecordedInvoices=Немає записаних рахунків-фактур клієнтів +NoUnpaidCustomerBills=Немає неоплачених рахунків клієнтам +NoUnpaidSupplierBills=Немає неоплачених рахунків постачальників +NoModifiedSupplierBills=Немає записаних рахунків-фактур постачальників +NoRecordedProducts=Немає записаних продуктів/послуг +NoRecordedProspects=Немає зафіксованих перспектив +NoContractedProducts=Жодних продуктів/послуг не укладено +NoRecordedContracts=Немає записаних контрактів +NoRecordedInterventions=Зафіксованих втручань немає +BoxLatestSupplierOrders=Останні замовлення на покупку +BoxLatestSupplierOrdersAwaitingReception=Останні замовлення на покупку (з очікуванням на отримання) +NoSupplierOrder=Немає записаного замовлення на покупку +BoxCustomersInvoicesPerMonth=Рахунки-фактури клієнта на місяць +BoxSuppliersInvoicesPerMonth=Рахунки-фактури постачальника на місяць +BoxCustomersOrdersPerMonth=Замовлення на продаж за місяць +BoxSuppliersOrdersPerMonth=Замовлення постачальників на місяць +BoxProposalsPerMonth=Пропозиції за місяць +NoTooLowStockProducts=Жодна продукція не перевищує мінімального ліміту запасів +BoxProductDistribution=Розповсюдження продуктів/послуг +ForObject=На %s +BoxTitleLastModifiedSupplierBills=Рахунки-фактури постачальника: остання зміна %s +BoxTitleLatestModifiedSupplierOrders=Замовлення постачальника: остання зміна %s +BoxTitleLastModifiedCustomerBills=Рахунки-фактури клієнта: остання зміна %s +BoxTitleLastModifiedCustomerOrders=Замовлення на продаж: останні зміни %s +BoxTitleLastModifiedPropals=Останні модифіковані пропозиції %s +BoxTitleLatestModifiedJobPositions=Останні а0ecb2ec87f49fz0 змінені вакансії +BoxTitleLatestModifiedCandidatures=Останні %s змінені заявки на роботу ForCustomersInvoices=Рахунки-фактури покупців ForCustomersOrders=Замовлення клієнтів ForProposals=Пропозиції -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 +LastXMonthRolling=Останній місяць %s +ChooseBoxToAdd=Додайте віджет на інформаційну панель +BoxAdded=Віджет додано на вашу інформаційну панель +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/uk_UA/cashdesk.lang b/htdocs/langs/uk_UA/cashdesk.lang index 79d95dee568..5c3f47444d4 100644 --- a/htdocs/langs/uk_UA/cashdesk.lang +++ b/htdocs/langs/uk_UA/cashdesk.lang @@ -1,136 +1,138 @@ # 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 +CashDeskMenu=Касовий термінал +CashDesk=Касовий термінал +CashDeskBankCash=Банківський рахунок (готівка) +CashDeskBankCB=Банківський рахунок (картка) +CashDeskBankCheque=Банківський рахунок (чек) +CashDeskWarehouse=Склад +CashdeskShowServices=Продаж послуг +CashDeskProducts=Продукти +CashDeskStock=Запас +CashDeskOn=на +CashDeskThirdParty=Третя сторона +ShoppingCart=Магазинний візок +NewSell=Новий продаж +AddThisArticle=Додайте цю статтю +RestartSelling=Поверніться до продажу +SellFinished=Продаж завершено +PrintTicket=Роздрукувати квиток +SendTicket=Надіслати квиток +NoProductFound=Не знайдено жодної статті +ProductFound=продукт знайдено +NoArticle=Жодної статті +Identification=Ідентифікація +Article=стаття +Difference=Різниця +TotalTicket=Повний квиток +NoVAT=Немає ПДВ для цього продажу Change=Отриманий надлишок -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 +BankToPay=Рахунок для оплати +ShowCompany=Показова компанія +ShowStock=Показати склад +DeleteArticle=Натисніть, щоб видалити цю статтю +FilterRefOrLabelOrBC=Пошук (посилання/мітка) +UserNeedPermissionToEditStockToUsePos=Ви просите зменшити запас під час створення рахунка-фактури, тому користувач, який використовує POS, повинен мати дозвіл редагувати запас. +DolibarrReceiptPrinter=Принтер чеків Dolibarr +PointOfSale=Касовий термінал 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 desk closing -CashFenceDone=Cash desk closing done for the period +CloseBill=Закрити рахунок +Floors=Підлоги +Floor=підлога +AddTable=Додати таблицю +Place=Місце +TakeposConnectorNecesary=Потрібен «TakePOS Connector». +OrderPrinters=Додайте кнопку для відправки замовлення на певні принтери без оплати (наприклад, щоб відправити замовлення на кухню) +NotAvailableWithBrowserPrinter=Недоступно, якщо для принтера для отримання вибрано браузер +SearchProduct=Пошук продукту +Receipt=Квитанція +Header=Заголовок +Footer=Нижній колонтитул +AmountAtEndOfPeriod=Сума на кінець періоду (день, місяць або рік) +TheoricalAmount=Теоретична сума +RealAmount=Реальна сума +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period 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 ? -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" 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 +Paymentnumpad=Тип планшета для введення платежу +Numberspad=Цифровий блокнот +BillsCoinsPad=Монети та банкноти Pad +DolistorePosCategory=Модулі TakePOS та інші POS-рішення для Dolibarr +TakeposNeedsCategories=Для роботи TakePOS потрібна принаймні одна категорія продукту +TakeposNeedsAtLeastOnSubCategoryIntoParentCategory=Для роботи TakePOS потрібна принаймні 1 категорія продукту в категорії %s +OrderNotes=Можна додати деякі примітки до кожного замовленого товару +CashDeskBankAccountFor=Обліковий запис за умовчанням для платежів +NoPaimementModesDefined=У конфігурації TakePOS не визначено режим оплати +TicketVatGrouped=Згрупуйте ПДВ за ставкою в квитках|квитанціях +AutoPrintTickets=Автоматично друкувати квитки|квитанції +PrintCustomerOnReceipts=Друк клієнта на квитках|квитанціях +EnableBarOrRestaurantFeatures=Увімкнути функції для бару чи ресторану +ConfirmDeletionOfThisPOSSale=Ви підтверджуєте видалення цього поточного продажу? +ConfirmDiscardOfThisPOSSale=Відмінити поточний розпродаж? +History=Історія +ValidateAndClose=Підтвердьте та закрийте +Terminal=термінал +NumberOfTerminals=Кількість терміналів +TerminalSelect=Виберіть термінал, який ви хочете використовувати: +POSTicket=POS квиток +POSTerminal=POS термінал +POSModule=POS модуль +BasicPhoneLayout=Використовуйте базовий макет для телефонів +SetupOfTerminalNotComplete=Налаштування терміналу %s не завершено +DirectPayment=Пряма оплата +DirectPaymentButton=Додайте кнопку «Пряма оплата готівкою». +InvoiceIsAlreadyValidated=Рахунок-фактура вже підтверджений +NoLinesToBill=Немає ліній для виставлення рахунку +CustomReceipt=Спеціальна квитанція +ReceiptName=Назва квитанції +ProductSupplements=Керуйте добавками продуктів +SupplementCategory=Категорія доповнення +ColorTheme=Колірна тема +Colorful=Барвистий +HeadBar=Головна панель +SortProductField=Поле для сортування продуктів +Browser=браузер +BrowserMethodDescription=Простий і легкий друк чеків. Лише кілька параметрів для налаштування квитанції. Друк через браузер. +TakeposConnectorMethodDescription=Зовнішній модуль з додатковими функціями. Можливість друку з хмари. +PrintMethod=Метод друку +ReceiptPrinterMethodDescription=Потужний метод з великою кількістю параметрів. Повна можливість налаштування за допомогою шаблонів. Сервер, на якому розміщено програму, не може бути в хмарі (повинен мати доступ до принтерів у вашій мережі). +ByTerminal=Через термінал +TakeposNumpadUsePaymentIcon=Використовуйте піктограму замість тексту на кнопках оплати цифрової панелі +CashDeskRefNumberingModules=Модуль нумерації для POS продажу +CashDeskGenericMaskCodes6 = Для додавання номера терміналу використовується тег
    {TN} +TakeposGroupSameProduct=Згрупуйте ті ж лінії продуктів +StartAParallelSale=Почніть новий паралельний продаж +SaleStartedAt=Розпродаж розпочалася за адресою %s +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control +CashReport=Касовий звіт +MainPrinterToUse=Основний принтер для використання +OrderPrinterToUse=Замовити принтер для використання +MainTemplateToUse=Основний шаблон для використання +OrderTemplateToUse=Шаблон замовлення для використання +BarRestaurant=Бар Ресторан +AutoOrder=Замовляє сам замовник +RestaurantMenu=Меню +CustomerMenu=Меню клієнта +ScanToMenu=Відскануйте QR-код, щоб побачити меню +ScanToOrder=Скануйте QR-код для замовлення +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
    diff --git a/htdocs/langs/uk_UA/categories.lang b/htdocs/langs/uk_UA/categories.lang index cf0de898bdb..4cd58826ade 100644 --- a/htdocs/langs/uk_UA/categories.lang +++ b/htdocs/langs/uk_UA/categories.lang @@ -1,100 +1,101 @@ # 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 -ShowCategory=Show tag/category -ByDefaultInList=By default in list -ChooseCategory=Choose category -StocksCategoriesArea=Warehouse Categories -ActionCommCategoriesArea=Event Categories -WebsitePagesCategoriesArea=Page-Container Categories -KnowledgemanagementsCategoriesArea=KM article Categories -UseOrOperatorForCategories=Use 'OR' operator for categories +Rubrique=Тег/категорія +Rubriques=Теги/Категорії +RubriquesTransactions=Теги/Категорії транзакцій +categories=теги/категорії +NoCategoryYet=Жодного тега/категорії цього типу не створено +In=в +AddIn=Додати до +modify=змінювати +Classify=Класифікувати +CategoriesArea=Область тегів/категорій +ProductsCategoriesArea=Область тегів товарів/послуг/категорій +SuppliersCategoriesArea=Область тегів/категорій постачальників +CustomersCategoriesArea=Область тегів/категорій клієнтів +MembersCategoriesArea=Область тегів/категорій учасників +ContactsCategoriesArea=Область контактних тегів/категорій +AccountsCategoriesArea=Область тегів/категорій банківського рахунку +ProjectsCategoriesArea=Область тегів/категорій проекту +UsersCategoriesArea=Область тегів/категорій користувачів +SubCats=Підкатегорії +CatList=Список тегів/категорій +CatListAll=Список тегів/категорій (усі типи) +NewCategory=Новий тег/категорія +ModifCat=Змінити тег/категорію +CatCreated=Тег/категорія створена +CreateCat=Створіть тег/категорію +CreateThisCat=Створіть цей тег/категорію +NoSubCat=Немає підкатегорії. +SubCatOf=Підкатегорія +FoundCats=Знайдено теги/категорії +ImpossibleAddCat=Неможливо додати тег/категорію %s +WasAddedSuccessfully= %s успішно додано. +ObjectAlreadyLinkedToCategory=Елемент вже пов’язано з цим тегом/категорією. +ProductIsInCategories=Продукт/послуга пов’язана з наступними тегами/категоріями +CompanyIsInCustomersCategories=Ця третя сторона пов’язана з наступними тегами/категоріями клієнтів/потенційних клієнтів +CompanyIsInSuppliersCategories=Ця третя сторона пов’язана з наступними тегами/категоріями постачальників +MemberIsInCategories=Цей учасник пов’язаний з наступними тегами/категоріями учасників +ContactIsInCategories=Цей контакт пов’язано з наступними тегами/категоріями контактів +ProductHasNoCategory=Цього товару/послуги немає в жодних тегах/категоріях +CompanyHasNoCategory=Ця третя сторона не входить до жодних тегів/категорій +MemberHasNoCategory=Цього учасника немає в жодних тегах/категоріях +ContactHasNoCategory=Цей контакт немає в жодних тегах/категоріях +ProjectHasNoCategory=Цього проекту немає в жодних тегах/категоріях +ClassifyInCategory=Додати до тегу/категорії +NotCategorized=Без тегу/категорії +CategoryExistsAtSameLevel=Ця категорія вже існує з цим посиланням +ContentsVisibleByAllShort=Вміст видимий усім +ContentsNotVisibleByAllShort=Вміст видимий не всім +DeleteCategory=Видалити тег/категорію +ConfirmDeleteCategory=Ви впевнені, що хочете видалити цей тег/категорію? +NoCategoriesDefined=Не визначено тег/категорію +SuppliersCategoryShort=Тег/категорія продавців +CustomersCategoryShort=Тег/категорія клієнтів +ProductsCategoryShort=Тег/категорія товарів +MembersCategoryShort=Тег/категорія учасників +SuppliersCategoriesShort=Теги/категорії продавців +CustomersCategoriesShort=Теги/категорії клієнтів +ProspectsCategoriesShort=Теги/категорії потенційних клієнтів +CustomersProspectsCategoriesShort=Куст./Просп. теги/категорії +ProductsCategoriesShort=Теги/категорії товарів +MembersCategoriesShort=Теги/категорії учасників +ContactCategoriesShort=Теги/категорії контактів +AccountsCategoriesShort=Теги/категорії облікових записів +ProjectsCategoriesShort=Теги/категорії проектів +UsersCategoriesShort=Теги/категорії користувачів +StockCategoriesShort=Складські теги/категорії +ThisCategoryHasNoItems=Ця категорія не містить жодних елементів. +CategId=Ідентифікатор тегу/категорії +ParentCategory=Батьківський тег/категорія +ParentCategoryLabel=Мітка батьківського тега/категорії +CatSupList=Список тегів/категорій постачальників +CatCusList=Список тегів/категорій клієнтів/потенційних клієнтів +CatProdList=Список тегів/категорій товарів +CatMemberList=Список тегів/категорій учасників +CatContactList=Список тегів/категорій контактів +CatProjectsList=Список тегів/категорій проектів +CatUsersList=Список тегів/категорій користувачів +CatSupLinks=Посилання між постачальниками та тегами/категоріями +CatCusLinks=Зв’язки між клієнтами/потенційними клієнтами та тегами/категоріями +CatContactsLinks=Посилання між контактами/адресами та тегами/категоріями +CatProdLinks=Посилання між продуктами/послугами та тегами/категоріями +CatMembersLinks=Посилання між учасниками та тегами/категоріями +CatProjectsLinks=Посилання між проектами та тегами/категоріями +CatUsersLinks=Посилання між користувачами та тегами/категоріями +DeleteFromCat=Видалити з тегів/категорій +ExtraFieldsCategories=Додаткові атрибути +CategoriesSetup=Налаштування тегів/категорій +CategorieRecursiv=Посилання з батьківським тегом/категорією автоматично +CategorieRecursivHelp=Якщо цей параметр увімкнено, коли ви додаєте продукт до підкатегорії, продукт також буде додано до батьківської категорії. +AddProductServiceIntoCategory=Додайте наступний продукт/послугу +AddCustomerIntoCategory=Призначте категорію клієнту +AddSupplierIntoCategory=Призначте категорію постачальнику +AssignCategoryTo=Призначити категорію до +ShowCategory=Показати тег/категорію +ByDefaultInList=За замовчуванням у списку +ChooseCategory=Виберіть категорію +StocksCategoriesArea=Складські категорії +ActionCommCategoriesArea=Категорії подій +WebsitePagesCategoriesArea=Категорії контейнерів сторінки +KnowledgemanagementsCategoriesArea=Категорії статті КМ +UseOrOperatorForCategories=Використовуйте оператор «АБО» для категорій diff --git a/htdocs/langs/uk_UA/commercial.lang b/htdocs/langs/uk_UA/commercial.lang index aec96a6ae3d..dfb601dd0e3 100644 --- a/htdocs/langs/uk_UA/commercial.lang +++ b/htdocs/langs/uk_UA/commercial.lang @@ -1,80 +1,81 @@ # Dolibarr language file - Source file is en_US - commercial -Commercial=Commerce -CommercialArea=Commerce area +Commercial=комерція +CommercialArea=Торговий район Customer=Покупець Customers=Покупці -Prospect=Prospect +Prospect=Проспект 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 +DeleteAction=Видалити подію +NewAction=Нова подія +AddAction=Створити подію +AddAnAction=Створіть подію +AddActionRendezVous=Створіть подію Рандеву +ConfirmDeleteAction=Ви впевнені, що хочете видалити цю подію? +CardAction=Картка події +ActionOnCompany=Пов'язана компанія +ActionOnContact=Пов'язаний контакт +TaskRDVWith=Зустріч з %s +ShowTask=Показати завдання +ShowAction=Показати подію +ActionsReport=Звіт про події +ThirdPartiesOfSaleRepresentative=Треті особи з торговим представником +SaleRepresentativesOfThirdParty=Торгові представники третіх осіб +SalesRepresentative=Торговий представник +SalesRepresentatives=Торгові представники +SalesRepresentativeFollowUp=Торговий представник (подальший нагляд) +SalesRepresentativeSignature=Торговий представник (підпис) +NoSalesRepresentativeAffected=Конкретного торгового представника не призначено +ShowCustomer=Показати клієнту +ShowProspect=Показати перспективу +ListOfProspects=Список перспектив +ListOfCustomers=Список клієнтів +LastDoneTasks=Останні виконані дії %s +LastActionsToDo=Найстаріший %s незавершені дії +DoneAndToDoActions=Завершені події та події +DoneActions=Завершені події +ToDoActions=Незавершені події +SendPropalRef=Подання комерційної пропозиції %s +SendOrderRef=Подання замовлення %s +StatusNotApplicable=Не застосовується +StatusActionToDo=Зробити +StatusActionDone=Завершено +StatusActionInProcess=В процесі +TasksHistoryForThisContact=Події для цього контакту +LastProspectDoNotContact=Не контактувати +LastProspectNeverContacted=Ніколи не зв'язувався +LastProspectToContact=Зв'язатися +LastProspectContactInProcess=Контакт у процесі +LastProspectContactDone=Зв'язок виконано +ActionAffectedTo=Подія призначена +ActionDoneBy=Подія здійснено +ActionAC_TEL=Телефонний дзвінок +ActionAC_FAX=Надіслати факс +ActionAC_PROP=Надішліть пропозицію поштою +ActionAC_EMAIL=Відправити лист +ActionAC_EMAIL_IN=Прийом електронної пошти +ActionAC_RDV=Зустрічі +ActionAC_INT=Втручання на місці +ActionAC_FAC=Надіслати клієнту рахунок-фактуру поштою +ActionAC_REL=Надіслати рахунок-фактуру клієнту поштою (нагадування) +ActionAC_CLO=Закрити +ActionAC_EMAILING=Відправити масову електронну пошту +ActionAC_COM=Відправити замовлення на продаж поштою +ActionAC_SHIP=Відправити відправлення поштою +ActionAC_SUP_ORD=Відправити замовлення поштою +ActionAC_SUP_INV=Надішліть рахунок-фактуру постачальнику поштою ActionAC_OTH=Інший -ActionAC_OTH_AUTO=Automatically inserted events -ActionAC_MANUAL=Manually inserted events -ActionAC_AUTO=Automatically inserted events -ActionAC_OTH_AUTOShort=Auto -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 +ActionAC_OTH_AUTO=Інше авто +ActionAC_MANUAL=Події, вставлені вручну +ActionAC_AUTO=Автоматично вставлені події +ActionAC_OTH_AUTOShort=Інший +ActionAC_EVENTORGANIZATION=Організація заходів +Stats=Статистика продажів +StatusProsp=Перспективний статус +DraftPropals=Проект комерційних пропозицій +NoLimit=Немає межі +ToOfferALinkForOnlineSignature=Посилання для онлайн підпису +WelcomeOnOnlineSignaturePage=Ласкаво просимо на сторінку, щоб прийняти комерційні пропозиції від %s +ThisScreenAllowsYouToSignDocFrom=На цьому екрані ви можете прийняти та підписати або відмовитися від пропозиції/комерційної пропозиції +ThisIsInformationOnDocumentToSign=Це інформація про документ, який потрібно прийняти або відмовити +SignatureProposalRef=Підпис пропозиції/комерційної пропозиції %s +FeatureOnlineSignDisabled=Функція онлайнового підпису вимкнена або документ створений до ввімкнення функції diff --git a/htdocs/langs/uk_UA/companies.lang b/htdocs/langs/uk_UA/companies.lang index 7abc1832bca..ebfedcbc54d 100644 --- a/htdocs/langs/uk_UA/companies.lang +++ b/htdocs/langs/uk_UA/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,6 +19,7 @@ ProspectionArea=Розділ потенційних клієнтів IdThirdParty=Id контрагента IdCompany=Id компанії IdContact=Id контакту +ThirdPartyAddress=Адреса контрагента ThirdPartyContacts=Контакти контрагента ThirdPartyContact=Контакти/адреса контрагента Company=Компанія @@ -43,33 +44,36 @@ Individual=Фізична особа ToCreateContactWithSameName=Автоматично створить контакт / адресу з тією ж інформацією, що і в контрагента. У більшості випадків, якщо ваш контрагент є фізичною особою, достатньо створити контрагента. ParentCompany=Батьківська компанія Subsidiaries=Дочірні компанії -ReportByMonth=Report per month -ReportByCustomers=Report per customer -ReportByThirdparties=Report per thirdparty -ReportByQuarter=Report per rate -CivilityCode=Civility code -RegisteredOffice=Registered office +ReportByMonth=Звіт за місяць +ReportByCustomers=Звіт на кожного клієнта +ReportByThirdparties=Звіт для кожного контрагента +ReportByQuarter=Звіт за ставкою +CivilityCode=Кодекс ввічливості +RegisteredOffice=Зареєстрований офіс Lastname=Прізвище Firstname=Ім'я +RefEmployee=Довідка про співробітника +NationalRegistrationNumber=Національний реєстраційний номер PostOrFunction=Місце роботи UserTitle=Назва NatureOfThirdParty=Характер контрагента NatureOfContact=Характер контакту Address=Адреса State=Штат/провінція/область +StateId=State ID StateCode=Код штату StateShort=Штат/область Region=Регіон Region-State=Регіон - держава Country=Країна CountryCode=Код країни -CountryId=id країни +CountryId=Country ID Phone=Телефон PhoneShort=Телефон Skype=Skype -Call=Call +Call=Телефонуйте Chat=Чат -PhonePro=Bus. phone +PhonePro=Автобус. телефон PhonePerso=Особистий телефон PhoneMobile=Мобільний телефон No_Email=Скасувати автоматичну розсилку @@ -78,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=Контрагент ні покупець, ні постачальник, відсутні доступні об'єкти для посилання @@ -92,52 +96,53 @@ OverAllInvoices=Рахунки-фактури OverAllSupplierProposals=Запити цін ##### Local Taxes ##### LocalTax1IsUsed=Використовувати додаткову комісію/податок -LocalTax1IsUsedES= RE is used -LocalTax1IsNotUsedES= RE is not used +LocalTax1IsUsedES= Використовується RE +LocalTax1IsNotUsedES= RE не використовується LocalTax2IsUsed=Використовувати третю комісію/податок -LocalTax2IsUsedES= IRPF is used -LocalTax2IsNotUsedES= IRPF is not used +LocalTax2IsUsedES= Використовується IRPF +LocalTax2IsNotUsedES= IRPF не використовується WrongCustomerCode=Індивідуальний код покупця WrongSupplierCode=Індивідуальний код постачальника -CustomerCodeModel=Customer code model -SupplierCodeModel=Vendor code model +CustomerCodeModel=Модель коду клієнта +SupplierCodeModel=Модель коду постачальника Gencod=Штрихкод +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) +ProfId1Short=Ідентифікатор проф. 1 +ProfId2Short=Ідентифікатор проф. 2 +ProfId3Short=Ідентифікатор проф. 3 +ProfId4Short=Ідентифікатор проф. 4 +ProfId5Short=Ідентифікатор проф. 5 +ProfId6Short=Ідентифікатор проф. 6 +ProfId1=Професійний ідентифікатор 1 +ProfId2=Професійний ідентифікатор 2 +ProfId3=Професійний ідентифікатор 3 +ProfId4=Професійний ідентифікатор 4 +ProfId5=Професійний ідентифікатор 5 +ProfId6=Професійний ідентифікатор 6 +ProfId1AR=Ідентифікатор професора 1 (CUIT/CUIL) ProfId2AR=Prof Id 2 (Revenu brutes) ProfId3AR=- ProfId4AR=- ProfId5AR=- ProfId6AR=- -ProfId1AT=Prof Id 1 (USt.-IdNr) +ProfId1AT=Ідентифікатор професора 1 (USt.-IdNr) ProfId2AT=Prof Id 2 (USt.-Nr) -ProfId3AT=Prof Id 3 (Handelsregister-Nr.) +ProfId3AT=Ідентифікатор професора 3 (Handelsregister-Nr.) ProfId4AT=- -ProfId5AT=EORI number +ProfId5AT=Номер EORI ProfId6AT=- -ProfId1AU=Prof Id 1 (ABN) +ProfId1AU=Ідентифікатор професора 1 (ABN) ProfId2AU=- ProfId3AU=- ProfId4AU=- ProfId5AU=- ProfId6AU=- -ProfId1BE=Prof Id 1 (Professional number) +ProfId1BE=Prof Id 1 (професійний номер) ProfId2BE=- ProfId3BE=- ProfId4BE=- -ProfId5BE=EORI number +ProfId5BE=Номер EORI ProfId6BE=- ProfId1BR=- ProfId2BR=IE (Inscricao Estadual) @@ -145,113 +150,113 @@ ProfId3BR=IM (Inscricao Municipal) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS -ProfId1CH=UID-Nummer +ProfId1CH=UID-Номер ProfId2CH=- -ProfId3CH=Prof Id 1 (Federal number) -ProfId4CH=Prof Id 2 (Commercial Record number) -ProfId5CH=EORI number +ProfId3CH=Ідентифікатор професора 1 (федеральний номер) +ProfId4CH=Prof Id 2 (номер комерційного запису) +ProfId5CH=Номер EORI ProfId6CH=- -ProfId1CL=Prof Id 1 (R.U.T.) +ProfId1CL=Ідентифікатор професора 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 (Decree of creation) -ProfId4CM=- -ProfId5CM=- +ProfId1CM=id. проф. 1 (Торговий реєстр) +ProfId2CM=id. проф. 2 (№ платника податків) +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=- +ProfId1ShortCM=Торговий реєстр +ProfId2ShortCM=№ платника податків +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others ProfId6ShortCM=- -ProfId1CO=Prof Id 1 (R.U.T.) +ProfId1CO=Ідентифікатор професора 1 (R.U.T.) ProfId2CO=- ProfId3CO=- ProfId4CO=- ProfId5CO=- ProfId6CO=- -ProfId1DE=Prof Id 1 (USt.-IdNr) +ProfId1DE=Ідентифікатор професора 1 (USt.-IdNr) ProfId2DE=Prof Id 2 (USt.-Nr) -ProfId3DE=Prof Id 3 (Handelsregister-Nr.) +ProfId3DE=Ідентифікатор професора 3 (Handelsregister-Nr.) ProfId4DE=- -ProfId5DE=EORI number +ProfId5DE=Номер EORI 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) +ProfId1ES=Ідентифікатор професора 1 (CIF/NIF) +ProfId2ES=Prof Id 2 (номер соціального страхування) +ProfId3ES=Ідентифікатор професора 3 (CNAE) +ProfId4ES=Ідентифікатор професора 4 (номер університету) +ProfId5ES=Ідентифікатор професора 5 (номер EORI) 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) +ProfId1FR=Ідентифікатор професора 1 (SIREN) +ProfId2FR=Ідентифікатор професора 2 (SIRET) +ProfId3FR=Ідентифікатор професора 3 (NAF, старий APE) +ProfId4FR=Ідентифікатор професора 4 (RCS/RM) +ProfId5FR=Ідентифікатор професора 5 (numéro EORI) ProfId6FR=- -ProfId1ShortFR=SIREN +ProfId1ShortFR=СИРЕНА ProfId2ShortFR=SIRET ProfId3ShortFR=NAF ProfId4ShortFR=RCS ProfId5ShortFR=EORI ProfId6ShortFR=- -ProfId1GB=Registration Number +ProfId1GB=Реєстраційний номер ProfId2GB=- ProfId3GB=SIC ProfId4GB=- ProfId5GB=- ProfId6GB=- -ProfId1HN=Id prof. 1 (RTN) +ProfId1HN=Ідентифікатор проф. 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 +ProfId1IN=Ідентифікатор професора 1 (ІПН) +ProfId2IN=Ідентифікатор професора 2 (PAN) +ProfId3IN=Ідентифікатор професора 3 (SRVC TAX) +ProfId4IN=Ідентифікатор професора 4 +ProfId5IN=Ідентифікатор професора 5 ProfId6IN=- ProfId1IT=- ProfId2IT=- ProfId3IT=- ProfId4IT=- -ProfId5IT=EORI number +ProfId5IT=Номер EORI ProfId6IT=- -ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) -ProfId2LU=Id. prof. 2 (Business permit) +ProfId1LU=id. проф. 1 (R.C.S. Люксембург) +ProfId2LU=id. проф. 2 (дозвіл на ведення бізнесу) ProfId3LU=- ProfId4LU=- -ProfId5LU=EORI number +ProfId5LU=Номер EORI 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.) +ProfId1MA=Ідентифікатор проф. 1 (R.C.) +ProfId2MA=Ідентифікатор проф. 2 (Патент) +ProfId3MA=Ідентифікатор проф. 3 (І.Ф.) +ProfId4MA=Ідентифікатор проф. 4 (C.N.S.S.) +ProfId5MA=Ідентифікатор проф. 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) +ProfId1MX=Ідентифікатор професора 1 (R.F.C). +ProfId2MX=Ідентифікатор професора 2 (R..P. IMSS) +ProfId3MX=Prof Id 3 (Професійна хартія) ProfId4MX=- ProfId5MX=- ProfId6MX=- -ProfId1NL=KVK nummer +ProfId1NL=Номер КВК ProfId2NL=- ProfId3NL=- -ProfId4NL=Burgerservicenummer (BSN) -ProfId5NL=EORI number +ProfId4NL=Номер служби бургерів (BSN) +ProfId5NL=Номер EORI 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) +ProfId1PT=Ідентифікатор професора 1 (NIPC) +ProfId2PT=Prof Id 2 (номер соціального страхування) +ProfId3PT=Ідентифікатор професора 3 (номер комерційного запису) +ProfId4PT=Ідентифікатор професора 4 (Консерваторія) +ProfId5PT=Ідентифікатор професора 5 (номер EORI) ProfId6PT=- ProfId1SN=RC ProfId2SN=NINEA @@ -259,46 +264,46 @@ 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) +ProfId1TN=Ідентифікатор професора 1 (RC) +ProfId2TN=Ідентифікатор професора 2 (фіскальна реєстрація) +ProfId3TN=Ідентифікатор професора 3 (код Дуана) +ProfId4TN=Ідентифікатор професора 4 (BAN) ProfId5TN=- ProfId6TN=- -ProfId1US=Prof Id (FEIN) +ProfId1US=Ідентифікатор професора (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) +ProfId1RO=Ідентифікатор професора 1 (CUI) +ProfId2RO=Ідентифікатор професора 2 (Nr. Înmatriculare) +ProfId3RO=Ідентифікатор професора 3 (CAEN) +ProfId4RO=Ідентифікатор професора 5 (EUID) +ProfId5RO=Ідентифікатор професора 5 (номер EORI) ProfId6RO=- -ProfId1RU=Prof Id 1 (OGRN) -ProfId2RU=Prof Id 2 (INN) -ProfId3RU=Prof Id 3 (KPP) -ProfId4RU=Prof Id 4 (OKPO) +ProfId1RU=Ідентифікатор професора 1 (OGRN) +ProfId2RU=Ідентифікатор професора 2 (INN) +ProfId3RU=Ідентифікатор професора 3 (KPP) +ProfId4RU=Ідентифікатор професора 4 (ОКПО) 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 (ЄДРПОУ) +ProfId2UA=Ідентифікатор професора 2 (DRFO) +ProfId3UA=Ідентифікатор професора 3 (INN) +ProfId4UA=Ідентифікатор професора 4 (сертифікат) +ProfId5UA=Ідентифікатор професора 5 (RNOKPP) +ProfId6UA=Ідентифікатор професора 6 (TRDPAU) ProfId1DZ=RC -ProfId2DZ=Art. -ProfId3DZ=NIF +ProfId2DZ=ст. +ProfId3DZ=НІФ ProfId4DZ=NIS -VATIntra=VAT ID -VATIntraShort=VAT ID -VATIntraSyntaxIsValid=Syntax is valid -VATReturn=VAT return -ProspectCustomer=Prospect / Customer -Prospect=Prospect +VATIntra=Ідентифікаційний номер платника ПДВ +VATIntraShort=Ідентифікаційний номер платника ПДВ +VATIntraSyntaxIsValid=Синтаксис дійсний +VATReturn=повернення ПДВ +ProspectCustomer=Проспект / Замовник +Prospect=Проспект CustomerCard=Картка покупця Customer=Покупець CustomerRelativeDiscount=Відносна знижка клієнта @@ -310,18 +315,18 @@ CompanyHasNoRelativeDiscount=Цей клієнт не має відносної HasRelativeDiscountFromSupplier=У вас є знижка за замовчуванням %s%% у цього постачальника HasNoRelativeDiscountFromSupplier=Ви не маєте відносної знижки за замовчуванням у цього постачальника CompanyHasAbsoluteDiscount=У цього клієнта доступні знижки (бонусні бали або знижки) для %s %s -CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s +CompanyHasDownPaymentOrCommercialDiscount=Цей клієнт має доступні знижки (комерційні, авансові платежі) для %s %s CompanyHasCreditNote=Цей клієнт ще має бонусні бали %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 +HasNoAbsoluteDiscountFromSupplier=У вас немає кредиту зі знижкою від цього постачальника +HasAbsoluteDiscountFromSupplier=У вас є доступні знижки (кредити або авансові платежі) для %s %s від цього постачальника +HasDownPaymentOrCommercialDiscountFromSupplier=У вас є знижки (комерційні, авансові платежі) для %s %s від цього постачальника +HasCreditNoteFromSupplier=У вас є кредитні ноти на %s %s від цього постачальника +CompanyHasNoAbsoluteDiscount=Цей клієнт не має кредиту зі знижкою +CustomerAbsoluteDiscountAllUsers=Абсолютні знижки для клієнтів (надаються всіма користувачами) +CustomerAbsoluteDiscountMy=Абсолютні знижки для клієнтів (надані самостійно) +SupplierAbsoluteDiscountAllUsers=Абсолютні знижки постачальників (введені всіма користувачами) +SupplierAbsoluteDiscountMy=Абсолютні знижки постачальників (введені самостійно) +DiscountNone=Жодного Vendor=Постачальник Supplier=Постачальник AddContact=Створити контакт @@ -349,147 +354,147 @@ CustomerCodeDesc=Код клієнта, унікальний для всіх к SupplierCodeDesc=Код постачальника, унікальний для всіх постачальників RequiredIfCustomer=Обов'язково, якщо контрагент є потенційним, або покупцем RequiredIfSupplier=Обов'язково, якщо контрагент є постачальником -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 type -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 +ValidityControledByModule=Термін дії контролюється модулем +ThisIsModuleRules=Правила для цього модуля +ProspectToContact=Перспектива для контакту +CompanyDeleted=Компанію "%s" видалено з бази даних. +ListOfContacts=Список контактів/адрес +ListOfContactsAddresses=Список контактів/адрес +ListOfThirdParties=Список третіх сторін +ShowCompany=Третя сторона +ShowContact=Контактна адреса +ContactsAllShort=Все (без фільтра) +ContactType=Контактна роль +ContactForOrders=Контактна особа замовлення +ContactForOrdersOrShipments=Контактна особа для замовлення або відправлення +ContactForProposals=Контактна особа пропозиції +ContactForContracts=Контактна особа договору +ContactForInvoices=Контактна особа рахунку-фактури +NoContactForAnyOrder=Цей контакт не є контактом для жодного замовлення +NoContactForAnyOrderOrShipments=Цей контакт не є контактним для будь-якого замовлення чи відправлення +NoContactForAnyProposal=Цей контакт не є контактом для будь-яких комерційних пропозицій +NoContactForAnyContract=Цей контакт не є контактом для жодного контракту +NoContactForAnyInvoice=Цей контакт не є контактом для жодного рахунку-фактури +NewContact=Новий контакт +NewContactAddress=Новий контакт/адреса +MyContacts=Мої контакти +Capital=Капітал +CapitalOf=Столиця %s +EditCompany=Редагувати компанію +ThisUserIsNot=Цей користувач не є потенційним клієнтом, клієнтом чи постачальником 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. +VATIntraCheckDesc=Ідентифікаційний номер платника ПДВ має містити префікс країни. Посилання %s використовує європейську службу перевірки ПДВ (VIES), яка вимагає доступу до Інтернету з сервера Dolibarr. 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 +VATIntraCheckableOnEUSite=Перевірте ідентифікаційний номер платника ПДВ всередині Співтовариства на веб-сайті Європейської комісії +VATIntraManualCheck=Ви також можете перевірити вручну на веб-сайті Європейської комісії %s +ErrorVATCheckMS_UNAVAILABLE=Перевірити неможливо. Послуга перевірки не надається державою-членом (%s). +NorProspectNorCustomer=Не потенційний, ані клієнт +JuridicalStatus=Тип суб'єкта господарювання +Workforce=Робоча сила +Staff=Співробітники +ProspectLevelShort=Потенціал +ProspectLevel=Перспективний потенціал +ContactPrivate=Приватний +ContactPublic=Спільний +ContactVisibility=Наочність ContactOthers=Інший -OthersNotLinkedToThirdParty=Others, not linked to a third party -ProspectStatus=Prospect status -PL_NONE=None +OthersNotLinkedToThirdParty=Інші, не пов’язані з третьою стороною +ProspectStatus=Перспективний статус +PL_NONE=Жодного PL_UNKNOWN=Невизначена -PL_LOW=Low -PL_MEDIUM=Medium -PL_HIGH=High +PL_LOW=Низька +PL_MEDIUM=Середній +PL_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_STARTUP=Стартап +TE_GROUP=Велика компанія +TE_MEDIUM=Середня компанія +TE_ADMIN=урядовий +TE_SMALL=Невелика компанія +TE_RETAIL=Роздрібний продавець +TE_WHOLE=Оптовик TE_PRIVATE=Приватна особа TE_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 +StatusProspect-1=Не контактувати +StatusProspect0=Ніколи не зв'язувався +StatusProspect1=Щоб зв'язатися +StatusProspect2=Контакт у процесі +StatusProspect3=Зв'язок виконано +ChangeDoNotContact=Змінити статус на "Не зв'язуватися" +ChangeNeverContacted=Змінити статус на "Ніколи не контактував" +ChangeToContact=Змінити статус на "З нами можна зв'язатися" +ChangeContactInProcess=Змінити статус на "Контакт у обробці" +ChangeContactDone=Змінити статус на "Контакт виконано" +ProspectsByStatus=Перспективи за статусом +NoParentCompany=Жодного +ExportCardToFormat=Експортувати картку у формат +ContactNotLinkedToCompany=Контакт не пов’язаний з третьою стороною +DolibarrLogin=Вхід в систему Dolibarr +NoDolibarrAccess=Немає доступу Dolibarr +ExportDataset_company_1=Треті сторони (компанії/фонди/фізичні особи) та їх власність +ExportDataset_company_2=Контакти та їх властивості +ImportDataset_company_1=Треті особи та їх властивості +ImportDataset_company_2=Додаткові контакти/адреси та атрибути сторонніх розробників +ImportDataset_company_3=Банківські рахунки третіх осіб +ImportDataset_company_4=Торгові представники третіх сторін (призначити торгових представників/користувачів компаніям) +PriceLevel=Рівень цін +PriceLevelLabels=Етикетки рівня цін +DeliveryAddress=Адреса доставки +AddAddress=Додайте адресу +SupplierCategory=Категорія продавця +JuridicalStatus200=Незалежний +DeleteFile=Видалити файл 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 +AllocateCommercial=Призначено торговому представнику +Organization=Організація +FiscalYearInformation=Фіскальний рік +FiscalMonthStart=Початковий місяць фінансового року +SocialNetworksInformation=Соціальні мережі +SocialNetworksFacebookURL=URL-адреса Facebook +SocialNetworksTwitterURL=URL-адреса Twitter +SocialNetworksLinkedinURL=URL-адреса Linkedin +SocialNetworksInstagramURL=URL-адреса Instagram +SocialNetworksYoutubeURL=URL-адреса YouTube +SocialNetworksGithubURL=URL-адреса Github +YouMustAssignUserMailFirst=Ви повинні створити електронну пошту для цього користувача, перш ніж матимете можливість додати сповіщення електронною поштою. +YouMustCreateContactFirst=Щоб мати можливість додавати сповіщення електронною поштою, спочатку потрібно визначити контакти з дійсними електронними листами для третьої сторони +ListSuppliersShort=Список продавців +ListProspectsShort=Список перспектив +ListCustomersShort=Список клієнтів +ThirdPartiesArea=Треті сторони/Контакти +LastModifiedThirdParties=Останні %s Треті сторони, які були змінені +UniqueThirdParties=Загальна кількість Третіх сторін +InActivity=ВІДЧИНЕНО ActivityCeased=Зачинено -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 +ThirdPartyIsClosed=Третя сторона закрита +ProductsIntoElements=Список продуктів/послуг, зіставлених на %s +CurrentOutstandingBill=Поточний непогашений рахунок +OutstandingBill=Макс. за непогашений рахунок +OutstandingBillReached=Макс. за неоплачений рахунок +OrderMinAmount=Мінімальна сума для замовлення +MonkeyNumRefModelDesc=Поверніть число у форматі %syymm-nnnn для коду клієнта та %syymm-nnnn для коду постачальника, де yy – рік, mm – місяць, а nnnn – послідовне число, що автоматично збільшується без перерви та повернення до 0. +LeopardNumRefModelDesc=Код безкоштовний. Цей код можна змінити в будь-який час. +ManagingDirectors=Ім'я менеджера (генеральний директор, директор, президент...) +MergeOriginThirdparty=Дублікат третьої сторони (третя сторона, яку ви хочете видалити) +MergeThirdparties=Об’єднати треті сторони +ConfirmMergeThirdparties=Ви впевнені, що хочете об’єднати вибрану третю сторону з поточною? Усі пов’язані об’єкти (рахунки-фактури, замовлення, ...) будуть переміщені до поточної третьої сторони, після чого вибрана третя сторона буде видалена. +ThirdpartiesMergeSuccess=Треті сторони об’єднані +SaleRepresentativeLogin=Вхід торгового представника +SaleRepresentativeFirstname=Ім'я торгового представника +SaleRepresentativeLastname=Прізвище торгового представника +ErrorThirdpartiesMerge=Під час видалення третіх сторін сталася помилка. Будь ласка, перевірте журнал. Зміни скасовано. +NewCustomerSupplierCodeProposed=Код клієнта або постачальника вже використовується, пропонується новий код +KeepEmptyIfGenericAddress=Залиште це поле порожнім, якщо ця адреса є загальною #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. +PaymentTypeCustomer=Тип оплати - Клієнт +PaymentTermsCustomer=Умови оплати - Замовник +PaymentTypeSupplier=Тип оплати - Постачальник +PaymentTermsSupplier=Термін оплати - Постачальник +PaymentTypeBoth=Тип оплати - Клієнт і Постачальник +MulticurrencyUsed=Використовуйте мультивалюту +MulticurrencyCurrency=Валюта +InEEC=Європа (ЄЕС) +RestOfEurope=Решта Європи (ЄЕС) +OutOfEurope=За межами Європи (ЄЕС) +CurrentOutstandingBillLate=Прострочений поточний рахунок +BecarefullChangeThirdpartyBeforeAddProductToInvoice=Будьте обережні, залежно від налаштувань ціни на ваш продукт, вам слід змінити сторонню сторону, перш ніж додавати продукт до POS. diff --git a/htdocs/langs/uk_UA/compta.lang b/htdocs/langs/uk_UA/compta.lang index 41fab413159..b8b2574e28b 100644 --- a/htdocs/langs/uk_UA/compta.lang +++ b/htdocs/langs/uk_UA/compta.lang @@ -1,300 +1,302 @@ # 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. +MenuFinancial=Виставлення рахунків | оплата +TaxModuleSetupToModifyRules=Перейдіть до Налаштування модуля податків , щоб змінити правила обчислення +TaxModuleSetupToModifyRulesLT=Перейдіть до Налаштування компанії , щоб змінити правила обчислення +OptionMode=Варіант для бухгалтерії +OptionModeTrue=Варіант Доходи-Витрати +OptionModeVirtual=Варіант Претензії-Заборгованість +OptionModeTrueDesc=У цьому контексті оборот розраховується за платежами (дата платежів). Достовірність цифр гарантується лише в тому випадку, якщо бухгалтерський облік перевіряється через введення/виведення на рахунках через рахунки-фактури. +OptionModeVirtualDesc=У цьому контексті оборот розраховується за рахунками-фактурами (дата підтвердження). Коли ці рахунки-фактури настали, незалежно від того, були вони оплачені чи ні, вони відображаються в оборотній продукції. +FeatureIsSupportedInInOutModeOnly=Функція доступна лише в режимі бухгалтерського обліку КРЕДИТИ-БОГИ (див. конфігурацію модуля бухгалтерського обліку) +VATReportBuildWithOptionDefinedInModule=Наведені тут суми розраховуються за правилами, визначеними налаштуваннями модуля податку. +LTReportBuildWithOptionDefinedInModule=Наведені тут суми розраховуються за правилами, визначеними налаштуваннями компанії. Param=Встановлення -RemainingAmountPayment=Amount payment remaining: +RemainingAmountPayment=Залишок платежу: 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 +Accountparent=Батьківський обліковий запис +Accountsparent=Батьківські облікові записи +Income=Дохід +Outcome=Витрати +MenuReportInOut=Доходи / Витрати +ReportInOut=Баланс доходів і витрат +ReportTurnover=Оборот виставлений в рахунок +ReportTurnoverCollected=Зібраний оборот +PaymentsNotLinkedToInvoice=Платежі не пов’язані з жодним рахунком-фактурою, тому не пов’язані з будь-якою третьою стороною +PaymentsNotLinkedToUser=Платежі не пов’язані з жодним користувачем +Profit=прибуток +AccountingResult=Результат бухгалтерського обліку +BalanceBefore=Баланс (раніше) +Balance=Баланс +Debit=Дебет +Credit=Кредит +Piece=Бухгалтерський док. +AmountHTVATRealReceived=Чисто зібрано +AmountHTVATRealPaid=Чиста оплата +VATToPay=Податковий продаж +VATReceived=Податок отримано +VATToCollect=Податкові закупівлі +VATSummary=Податок щомісяця +VATBalance=Податковий баланс +VATPaid=Податок сплачено +LT1Summary=Зведення податку 2 +LT2Summary=Зведення податку 3 +LT1SummaryES=Баланс RE +LT2SummaryES=Баланс IRPF +LT1SummaryIN=Баланс CGST +LT2SummaryIN=Баланс SGST +LT1Paid=Податок 2 сплачено +LT2Paid=Податок 3 сплачено +LT1PaidES=RE Оплачено +LT2PaidES=IRPF Оплачено +LT1PaidIN=CGST оплачено +LT2PaidIN=SGST сплачено +LT1Customer=Податок 2 з продажу +LT1Supplier=Податок на 2 покупки +LT1CustomerES=RE продажу +LT1SupplierES=RE покупки +LT1CustomerIN=Продажі CGST +LT1SupplierIN=Покупки CGST +LT2Customer=Податок 3 з продажу +LT2Supplier=Податок на 3 покупки +LT2CustomerES=Продаж IRPF +LT2SupplierES=Закупівлі IRPF +LT2CustomerIN=Продажі SGST +LT2SupplierIN=Покупки SGST +VATCollected=ПДВ зібрано +StatusToPay=Платити +SpecialExpensesArea=Зона для всіх спеціальних платежів +VATExpensesArea=Зона для всіх платежів TVA +SocialContribution=Соціальний або фіскальний податок +SocialContributions=Соціальні або фіскальні податки +SocialContributionsDeductibles=Соціальні або фіскальні податки, що підлягають відрахуванню +SocialContributionsNondeductibles=Соціальні або фіскальні податки, які не підлягають вирахуванню +DateOfSocialContribution=Дата сплати соціального чи фіскального податку +LabelContrib=Внесок етикетки +TypeContrib=Тип внесок +MenuSpecialExpenses=Спеціальні витрати +MenuTaxAndDividends=Податки та дивіденди +MenuSocialContributions=Соціальні/фіскальні податки +MenuNewSocialContribution=Новий соціальний/фіскальний податок +NewSocialContribution=Новий соціальний/фіскальний податок +AddSocialContribution=Додати соціальний/фіскальний податок +ContributionsToPay=Сплачувати соціальні/фіскальні податки +AccountancyTreasuryArea=Зона виставлення рахунків і платежів +NewPayment=Нова оплата +PaymentCustomerInvoice=Оплата рахунку клієнта +PaymentSupplierInvoice=оплата рахунку постачальника +PaymentSocialContribution=Сплата соціального/фіскального податку +PaymentVat=сплата ПДВ +AutomaticCreationPayment=Автоматично записувати платіж +ListPayment=Список платежів +ListOfCustomerPayments=Список платежів клієнтів +ListOfSupplierPayments=Список платежів постачальників +DateStartPeriod=Період початку дати +DateEndPeriod=Дата закінчення періоду +newLT1Payment=Новий платіж податку 2 +newLT2Payment=Сплата нового податку 3 +LT1Payment=Оплата податку 2 +LT1Payments=Податок 2 платежі +LT2Payment=Оплата податку 3 +LT2Payments=Податок 3 платежі +newLT1PaymentES=Новий платіж RE +newLT2PaymentES=Новий платіж IRPF +LT1PaymentES=Оплата RE 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 +LT2PaymentES=Оплата IRPF +LT2PaymentsES=Платежі IRPF +VATPayment=Оплата податку з продажів +VATPayments=Платежі податку з продажу +VATDeclarations=декларації з ПДВ +VATDeclaration=декларація з ПДВ +VATRefund=Повернення податку з продажу +NewVATPayment=Нова сплата податку з продажів +NewLocalTaxPayment=Новий платіж податку %s +Refund=Відшкодування +SocialContributionsPayments=Соціальні/податкові платежі +ShowVatPayment=Показати сплату ПДВ +TotalToPay=Всього до оплати +BalanceVisibilityDependsOnSortAndFilters=Баланс видно в цьому списку, лише якщо таблиця відсортована за %s та відфільтрована за 1 банківським рахунком (без інших фільтрів) +CustomerAccountancyCode=Код обліку клієнта +SupplierAccountancyCode=Обліковий код постачальника +CustomerAccountancyCodeShort=Cust. рахунок. код +SupplierAccountancyCodeShort=Sup. рахунок. код AccountNumber=Номер рахунка -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 -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 -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 = 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 ? +NewAccountingAccount=Новий акаунт +Turnover=Оборот виставлений в рахунок +TurnoverCollected=Зібраний оборот +SalesTurnoverMinimum=Мінімальний оборот +ByExpenseIncome=За витратами та доходами +ByThirdParties=Третіми особами +ByUserAuthorOfInvoice=За автором рахунка +CheckReceipt=Чековий депозит +CheckReceiptShort=Чековий депозит +LastCheckReceiptShort=Останні чекові квитанції %s +NewCheckReceipt=Нова знижка +NewCheckDeposit=Новий чековий депозит +NewCheckDepositOn=Створіть квитанцію про внесення на рахунок: %s +NoWaitingChecks=Немає чеків, які очікують на депозит. +DateChequeReceived=Перевірте дату отримання +NbOfCheques=Кількість чеків +PaySocialContribution=Сплачуйте соціальний/фіскальний податок +PayVAT=Сплатити декларацію з ПДВ +PaySalary=Оплатити зарплатну картку +ConfirmPaySocialContribution=Ви впевнені, що хочете класифікувати цей соціальний або фіскальний податок як сплачений? +ConfirmPayVAT=Ви впевнені, що хочете класифікувати цю декларацію з ПДВ як сплачену? +ConfirmPaySalary=Ви впевнені, що хочете класифікувати цю зарплатну картку як платну? +DeleteSocialContribution=Видалити соціальний або фіскальний податок +DeleteVAT=Видалити декларацію з ПДВ +DeleteSalary=Видалити зарплатну картку +DeleteVariousPayment=Видалити різні платежі +ConfirmDeleteSocialContribution=Ви впевнені, що хочете видалити цей соціальний/податковий платіж? +ConfirmDeleteVAT=Ви впевнені, що хочете видалити цю декларацію з ПДВ? +ConfirmDeleteSalary=Ви впевнені, що хочете видалити цю зарплату? +ConfirmDeleteVariousPayment=Ви впевнені, що хочете видалити цей різноманітний платіж? +ExportDataset_tax_1=Соціальні та фіскальні податки та платежі +CalcModeVATDebt=Режим %sПДВ на облік зобов'язань%s . +CalcModeVATEngagement=Режим %sПДВ на доходи-витратиs%s . +CalcModeDebt=Аналіз відомих записаних документів, навіть якщо вони ще не враховані в книзі. +CalcModeEngagement=Аналіз відомих зареєстрованих платежів, навіть якщо вони ще не враховані в Книзі. +CalcModeBookkeeping=Аналіз даних, записаних у таблицю Бухгалтерської книги. +CalcModeLT1= Режим %sRE на рахунки-фактури клієнтів - рахунки-фактури постачальниківs%s +CalcModeLT1Debt=Режим %sRE на рахунках клієнтаs%s +CalcModeLT1Rec= Режим %sRE на рахунках-фактурах постачальниківs%s +CalcModeLT2= Режим %sIRPF на рахунки-фактури клієнтів - рахунки-фактури постачальниківs%s +CalcModeLT2Debt=Режим %sIRPF за рахунками-фактурами клієнтаs%s +CalcModeLT2Rec= Режим %sIRPF на рахунках-фактурах постачальниківs%s +AnnualSummaryDueDebtMode=Баланс доходів і витрат, річний підсумок +AnnualSummaryInputOutputMode=Баланс доходів і витрат, річний підсумок +AnnualByCompanies=Баланс доходів і витрат за попередньо визначеними групами рахунків +AnnualByCompaniesDueDebtMode=Баланс доходів і витрат, деталізація за попередньо визначеними групами, режим %sClaims-Debts%s сказав a0aee3f8z0 сказав a0aee833309 Commit Accounting a0aee83330790000000000000000000 +AnnualByCompaniesInputOutputMode=Баланс доходів і витрат, деталізація за попередньо визначеними групами, режим %sIncomes-Expenses%s сказав a0aee333658 account a0aee733658 cash30f70f70f70f70f70f70f30b30f708f70f70f7f8f49f49fz0. +SeeReportInInputOutputMode=Дивіться %sаналіз платежівs%s для розрахунку на основі зареєстрованих платежів a09f14b7 навіть якщо вони ще не здійснені в обліковому записі +SeeReportInDueDebtMode=Дивіться %sаналіз записаних документів%s для розрахунку на основі відомого 4 записаних документів a30f7 навіть якщо вони ще не записані в обліковому записі a38f7 +SeeReportInBookkeepingMode=Див. %sаналіз таблиці бухгалтерської книги %s , щоб отримати звіт на основі таблиці a0aee83365837fzger0 a0aee83365837fzger0 a0f9147 +RulesAmountWithTaxIncluded=- Наведені суми з урахуванням усіх податків +RulesAmountWithTaxExcluded=- Наведені суми рахунків-фактур без урахування податків +RulesResultDue=- У нього входять усі рахунки-фактури, витрати, ПДВ, пожертвування, зарплати, сплачені вони чи ні.
    - Базується на даті виставлення рахунків-фактур і на даті сплати витрат або податкових платежів. Для заробітної плати використовується дата закінчення періоду. +RulesResultInOut=- Включає реальні платежі за рахунками-фактурами, витрати, ПДВ та заробітну плату.
    - Базується на датах сплати рахунків-фактур, витрат, ПДВ, пожертв та зарплат. +RulesCADue=- Він включає рахунки-фактури клієнта, оплачені вони чи ні.
    - Він заснований на даті виставлення рахунку цих рахунків-фактур.
    +RulesCAIn=- Він включає всі ефективні платежі рахунків-фактур, отриманих від клієнтів.
    - Він заснований на даті оплати цих рахунків-фактур
    +RulesCATotalSaleJournal=Він включає всі кредитні лінії з журналу продажів. +RulesSalesTurnoverOfIncomeAccounts=Він включає (кредит - дебет) рядки для рахунків продуктів у групі ДОХОДИ +RulesAmountOnInOutBookkeepingRecord=Він включає запис у Вашій Книзі облікових рахунків, що має групу "ВИТРАТКИ" або "ДОХОДИ" +RulesResultBookkeepingPredefined=Він включає запис у Вашій Книзі облікових рахунків, що має групу "ВИТРАТКИ" або "ДОХОДИ" +RulesResultBookkeepingPersonalized=Він показує запис у вашій книзі з обліковими рахунками , згрупованими за персоналізованими групами +SeePageForSetup=Перегляньте меню %s для налаштування +DepositsAreNotIncluded=- Рахунки з авансовим платежем не включені +DepositsAreIncluded=- Рахунки з авансовим платежем включені +LT1ReportByMonth=Податковий 2 звіт по місяцях +LT2ReportByMonth=Податковий 3 звіт по місяцях +LT1ReportByCustomers=Повідомити про податок 2 третьою стороною +LT2ReportByCustomers=Повідомити про податок 3 третьою стороною +LT1ReportByCustomersES=Звіт третьої сторони RE +LT2ReportByCustomersES=Звіт третьої сторони IRPF +VATReport=Звіт про податок з продажів +VATReportByPeriods=Звіт з податку з продажу за періодами +VATReportByMonth=Звіт з податку з продажів за місяць +VATReportByRates=Звіт з податку з продажів за ставкою +VATReportByThirdParties=Податковий звіт третьої сторони +VATReportByCustomers=Звіт з податку з продажу замовником +VATReportByCustomersInInputOutputMode=Звіт замовника зібраного та сплаченого ПДВ +VATReportByQuartersInInputOutputMode=Звіт за ставкою податку з продажів зібраного та сплаченого податку +VATReportShowByRateDetails=Показати деталі цього тарифу +LT1ReportByQuarters=Повідомте податок 2 за ставкою +LT2ReportByQuarters=Повідомте податок 3 за ставкою +LT1ReportByQuartersES=Звіт за курсом RE +LT2ReportByQuartersES=Звіт за курсом IRPF +SeeVATReportInInputOutputMode=Див. звіт %s збір ПДВ%s для стандартного розрахунку +SeeVATReportInDueDebtMode=Перегляньте звіт %sVAT on debit%s для розрахунку з опцією виставлення рахунку +RulesVATInServices=- Для послуг звіт включає ПДВ фактично отриманих або сплачених платежів на підставі дати оплати. +RulesVATInProducts=- Для матеріальних цінностей звіт включає ПДВ на підставі дати сплати. +RulesVATDueServices=- Для послуг звіт включає ПДВ за належними рахунками, сплаченими чи ні, залежно від дати виставлення рахунку. +RulesVATDueProducts=- Для матеріальних цінностей звіт включає ПДВ належних рахунків-фактур, виходячи з дати виставлення рахунку. +OptionVatInfoModuleComptabilite=Примітка: для матеріальних цінностей слід використовувати дату поставки, щоб бути більш справедливим. +ThisIsAnEstimatedValue=Це попередній перегляд на основі ділових подій, а не з таблиці остаточної книги, тому кінцеві результати можуть відрізнятися від значень попереднього перегляду +PercentOfInvoice=%%/рахунок-фактура +NotUsedForGoods=Не використовується на товарах +ProposalStats=Статистика пропозицій +OrderStats=Статистика замовлень +InvoiceStats=Статистика по рахунках +Dispatch=Диспетчеризація +Dispatched=Відправлено +ToDispatch=Для відправки +ThirdPartyMustBeEditAsCustomer=Третя сторона повинна бути визначена як клієнт +SellsJournal=Журнал продажів +PurchasesJournal=Журнал закупівель +DescSellsJournal=Журнал продажів +DescPurchasesJournal=Журнал закупівель +CodeNotDef=Не визначено +WarningDepositsNotIncluded=Рахунки з авансовим платежем не включені в цю версію з цим модулем бухгалтерського обліку. +DatePaymentTermCantBeLowerThanObjectDate=Дата терміну платежу не може бути нижчою за дату об’єкта. +Pcg_version=Моделі плану рахунків +Pcg_type=Тип ПКГ +Pcg_subtype=Підтип Pcg +InvoiceLinesToDispatch=Рядки рахунків-фактур для відправки +ByProductsAndServices=За продуктами та послугами +RefExt=Зовнішній реф +ToCreateAPredefinedInvoice=Щоб створити шаблон рахунка-фактури, створіть стандартний рахунок-фактуру, потім, не перевіряючи його, натисніть кнопку «%s». +LinkedOrder=Посилання на замовлення +Mode1=Спосіб 1 +Mode2=Спосіб 2 +CalculationRuleDesc=Для обчислення загальної суми ПДВ існує два методи:
    Метод 1 — округлення ПДВ у кожному рядку, а потім їх підсумовування.
    Метод 2: підсумовує весь vat у кожному рядку, а потім округляє результат.
    Кінцевий результат може відрізнятися від кількох центів. Режим за замовчуванням – це режим %s . +CalculationRuleDescSupplier=Відповідно до постачальника, виберіть відповідний метод, щоб застосувати те саме правило обчислення та отримати той самий результат, який очікує ваш постачальник. +TurnoverPerProductInCommitmentAccountingNotRelevant=Звіт про товарообіг, зібраний за продуктом, недоступний. Цей звіт доступний лише для оборотів, за які виставляється рахунок. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Звіт про оборот, зібраний за ставкою податку з продажу, недоступний. Цей звіт доступний лише для оборотів, за які виставляється рахунок. +CalculationMode=Режим розрахунку +AccountancyJournal=Журнал облікових кодів +ACCOUNTING_VAT_SOLD_ACCOUNT=Обліковий запис за замовчуванням для ПДВ на продажі (використовується, якщо не визначено під час налаштування словника ПДВ) +ACCOUNTING_VAT_BUY_ACCOUNT=Обліковий запис за замовчуванням для ПДВ на покупки (використовується, якщо не визначено під час налаштування словника ПДВ) +ACCOUNTING_VAT_PAY_ACCOUNT=Бухгалтерський рахунок за замовчуванням для сплати ПДВ +ACCOUNTING_ACCOUNT_CUSTOMER=Обліковий запис, який використовується для третіх осіб клієнта +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Спеціальний обліковий рахунок, визначений на картці третьої сторони, використовуватиметься лише для обліку Subledger. Це значення буде використовуватися для Головної книги та як значення за замовчуванням для обліку Підкниги, якщо спеціальний обліковий запис клієнта у третьої сторони не визначено. +ACCOUNTING_ACCOUNT_SUPPLIER=Обліковий запис, що використовується для третіх сторін постачальника +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Спеціальний обліковий рахунок, визначений на картці третьої сторони, використовуватиметься лише для обліку Subledger. Це значення буде використовуватися для Головної книги та як значення за замовчуванням для обліку підкниги, якщо виділений обліковий запис постачальника на третьої сторони не визначено. +ConfirmCloneTax=Підтвердьте клон соціального/фіскального податку +ConfirmCloneVAT=Підтвердьте клон декларації з ПДВ +ConfirmCloneSalary=Підтвердьте клон зарплати +CloneTaxForNextMonth=Клонуйте його на наступний місяць +SimpleReport=Простий звіт +AddExtraReport=Додаткові звіти (додати звіт іноземних та національних клієнтів) +OtherCountriesCustomersReport=Звітують іноземні замовники +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=На основі двох перших літер номера ПДВ, який відрізняється від коду країни вашої компанії +SameCountryCustomersWithVAT=Доповідають національні клієнти +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=На основі двох перших літер номера ПДВ, що збігаються з кодом країни вашої компанії +LinkedFichinter=Посилання на втручання +ImportDataset_tax_contrib=Соціальні/фіскальні податки +ImportDataset_tax_vat=Виплати ПДВ +ErrorBankAccountNotFound=Помилка: банківський рахунок не знайдено +FiscalPeriod=Розрахунковий період +ListSocialContributionAssociatedProject=Список соціальних внесків, пов'язаних з проектом +DeleteFromCat=Видалити з групи обліку +AccountingAffectation=Бухгалтерське завдання +LastDayTaxIsRelatedTo=Останній день періоду, до якого відноситься податок +VATDue=Заявлений податок з продажу +ClaimedForThisPeriod=Заявлено за період +PaidDuringThisPeriod=Оплачено за цей період +PaidDuringThisPeriodDesc=Це сума всіх платежів, пов’язаних із деклараціями з ПДВ, які мають дату закінчення періоду у вибраному діапазоні дат +ByVatRate=За ставкою податку з продажу +TurnoverbyVatrate=Оборот виставляється за ставкою податку з продажу +TurnoverCollectedbyVatrate=Оборот, зібраний за ставкою податку з продажу +PurchasebyVatrate=Купівля за ставкою податку з продажу +LabelToShow=Коротка етикетка +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 вибрані рядки з цим обліковим кодом? diff --git a/htdocs/langs/uk_UA/contracts.lang b/htdocs/langs/uk_UA/contracts.lang index c9c171803cb..5bbde0c16e3 100644 --- a/htdocs/langs/uk_UA/contracts.lang +++ b/htdocs/langs/uk_UA/contracts.lang @@ -1,104 +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 +ContractsArea=Контрактна зона +ListOfContracts=Перелік договорів +AllContracts=Усі договори +ContractCard=Картка контракту +ContractStatusNotRunning=Не працює ContractStatusDraft=Проект ContractStatusValidated=Підтверджений ContractStatusClosed=Зачинено -ServiceStatusInitial=Not running -ServiceStatusRunning=Running -ServiceStatusNotLate=Running, not expired -ServiceStatusNotLateShort=Not expired -ServiceStatusLate=Running, expired -ServiceStatusLateShort=Expired +ServiceStatusInitial=Не працює +ServiceStatusRunning=Біг +ServiceStatusNotLate=Запущений, не прострочений +ServiceStatusNotLateShort=Не прострочений +ServiceStatusLate=Запущений, прострочений +ServiceStatusLateShort=Термін дії закінчився ServiceStatusClosed=Зачинено -ShowContractOfService=Show contract of service -Contracts=Contracts -ContractsSubscriptions=Contracts/Subscriptions -ContractsAndLine=Contracts and line of contracts -Contract=Contract -ContractLine=Contract line -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 +ShowContractOfService=Показати договір про надання послуг +Contracts=Контракти +ContractsSubscriptions=Контракти/Підписка +ContractsAndLine=Контракти та лінія контрактів +Contract=Договір +ContractLine=Лінія контракту +ContractLines=Контрактні лінії +Closing=Закриття +NoContracts=Жодних контрактів +MenuServices=послуги +MenuInactiveServices=Послуги не активні +MenuRunningServices=Запущені послуги +MenuExpiredServices=Прострочені послуги +MenuClosedServices=Закриті послуги +NewContract=Новий договір +NewContractSubscription=Новий договір або підписка +AddContract=Створити договір +DeleteAContract=Видалити договір +ActivateAllOnContract=Активуйте всі послуги +CloseAContract=Закрити договір +ConfirmDeleteAContract=Ви впевнені, що хочете видалити цей контракт і всі його послуги? +ConfirmValidateContract=Ви впевнені, що хочете підтвердити цей контракт під іменем %s ? +ConfirmActivateAllOnContract=Це відкриє всі служби (ще не активні). Ви впевнені, що хочете відкрити всі служби? +ConfirmCloseContract=Це призведе до закриття всіх служб (термін дії закінчився чи ні). Ви впевнені, що хочете закрити цей контракт? +ConfirmCloseService=Ви впевнені, що хочете закрити цю службу з датою %s ? +ValidateAContract=Підтвердити договір +ActivateService=Активувати послугу +ConfirmActivateService=Ви впевнені, що хочете активувати цю послугу з датою %s ? +RefContract=Довідка про договір +DateContract=Дата контракту +DateServiceActivate=Дата активації послуги +ListOfServices=Перелік послуг +ListOfInactiveServices=Список неактивних послуг +ListOfExpiredServices=Список активних послуг, термін дії яких закінчився +ListOfClosedServices=Список закритих послуг +ListOfRunningServices=Список запущених послуг +NotActivatedServices=Неактивні послуги (серед підтверджених контрактів) +BoardNotActivatedServices=Послуги для активації серед підтверджених контрактів +BoardNotActivatedServicesShort=Послуги для активації +LastContracts=Останні контракти %s +LastModifiedServices=Останні модифіковані служби %s +ContractStartDate=Дата початку +ContractEndDate=Дата закінчення +DateStartPlanned=Запланована дата початку +DateStartPlannedShort=Запланована дата початку +DateEndPlanned=Запланована дата закінчення +DateEndPlannedShort=Запланована дата закінчення +DateStartReal=Реальна дата початку +DateStartRealShort=Реальна дата початку +DateEndReal=Реальна дата завершення +DateEndRealShort=Реальна дата завершення +CloseService=Закрити обслуговування +BoardRunningServices=Служби працюють +BoardRunningServicesShort=Служби працюють +BoardExpiredServices=Термін дії послуг закінчився +BoardExpiredServicesShort=Термін дії послуг закінчився +ServiceStatus=Стан обслуговування +DraftContracts=Проекти договорів +CloseRefusedBecauseOneServiceActive=Контракт не можна закрити, оскільки в ньому є принаймні одна відкрита послуга +ActivateAllContracts=Активуйте всі контрактні лінії +CloseAllContracts=Закрийте всі контрактні лінії +DeleteContractLine=Видалити рядок контракту +ConfirmDeleteContractLine=Ви впевнені, що хочете видалити цей рядок договору? +MoveToAnotherContract=Перенесіть послугу в інший контракт. +ConfirmMoveToAnotherContract=Я вибрав новий цільовий контракт і підтверджую, що хочу перемістити цю послугу в цей контракт. +ConfirmMoveToAnotherContractQuestion=Виберіть, у якому існуючому контракті (одної третьої сторони) ви хочете перемістити цю послугу? +PaymentRenewContractId=Поновити рядок контракту (номер %s) +ExpiredSince=Термін придатності +NoExpiredServices=Немає прострочених активних послуг +ListOfServicesToExpireWithDuration=Термін дії списку служб закінчується через %s днів +ListOfServicesToExpireWithDurationNeg=Термін дії списку служб закінчився більше ніж через %s днів +ListOfServicesToExpire=Список послуг, термін дії якого закінчується +NoteListOfYourExpiredServices=Цей список містить лише послуги контрактів для третіх сторін, з якими ви пов’язані як торговий представник. +StandardContractsTemplate=Типовий шаблон договору +ContactNameAndSignature=Для %s, ім'я та підпис: +OnlyLinesWithTypeServiceAreUsed=Клонуватимуться лише рядки з типом «Сервіс». +ConfirmCloneContract=Ви впевнені, що хочете клонувати контракт %s ? +LowerDateEndPlannedShort=Нижча запланована дата завершення активних послуг +SendContractRef=Інформація про договір __REF__ +OtherContracts=Інші договори ##### 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 +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/uk_UA/cron.lang b/htdocs/langs/uk_UA/cron.lang index c0d7c18bb44..0aba7c27928 100644 --- a/htdocs/langs/uk_UA/cron.lang +++ b/htdocs/langs/uk_UA/cron.lang @@ -1,91 +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 +Permission23101 = Прочитайте заплановану роботу +Permission23102 = Створити/оновити заплановану роботу +Permission23103 = Видалити заплановану роботу +Permission23104 = Виконати заплановану роботу # 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=Налаштування планового керування завданнями +URLToLaunchCronJobs=URL для перевірки та запуску кваліфікованих завдань cron з браузера +OrToLaunchASpecificJob=Або перевірити та запустити конкретне завдання з браузера +KeyForCronAccess=Ключ безпеки для URL-адреси для запуску завдань cron +FileToLaunchCronJobs=Командний рядок для перевірки та запуску кваліфікованих завдань cron +CronExplainHowToRunUnix=У середовищі Unix ви повинні використовувати наступний запис crontab для запуску командного рядка кожні 5 хвилин +CronExplainHowToRunWin=У середовищі Microsoft(tm) Windows ви можете використовувати інструменти запланованих завдань, щоб запускати командний рядок кожні 5 хвилин +CronMethodDoesNotExists=Клас %s не містить жодного методу %s +CronMethodNotAllowed=Метод %s класу %s знаходиться в чорному списку заборонених методів +CronJobDefDesc=Профілі завдань Cron визначаються у файлі дескриптора модуля. Коли модуль активовано, вони завантажуються та доступні, тому ви можете адмініструвати завдання з меню інструментів адміністратора %s. +CronJobProfiles=Список попередньо визначених профілів завдань cron # Menu -EnabledAndDisabled=Enabled and disabled +EnabledAndDisabled=Увімкнено та вимкнено # 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 +CronLastOutput=Останні результати виконання +CronLastResult=Останній код результату +CronCommand=Команда +CronList=Заплановані роботи +CronDelete=Видалити заплановані завдання +CronConfirmDelete=Ви впевнені, що хочете видалити ці заплановані завдання? +CronExecute=Запустити заплановану роботу +CronConfirmExecute=Ви впевнені, що хочете виконати ці заплановані завдання зараз? +CronInfo=Модуль запланованих завдань дозволяє планувати завдання для їх автоматичного виконання. Роботи також можна запускати вручну. +CronTask=Робота +CronNone=Жодного +CronDtStart=Не раніше +CronDtEnd=Не після +CronDtNextLaunch=Наступне виконання +CronDtLastLaunch=Дата початку останнього виконання +CronDtLastResult=Дата закінчення останнього виконання +CronFrequency=Частота +CronClass=клас +CronMethod=Метод +CronModule=Модуль +CronNoJobs=Вакансії не зареєстровані +CronPriority=Пріоритет +CronLabel=Етикетка +CronNbRun=Кількість запусків +CronMaxRun=Максимальна кількість запусків +CronEach=Кожен +JobFinished=Робота запущена та завершена +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 +CronAdd= Додайте вакансії +CronEvery=Виконайте завдання кожен +CronObject=Примірник/об’єкт для створення +CronArgs=Параметри +CronSaveSucess=Зберегти успішно +CronNote=Коментар +CronFieldMandatory=Поля %s є обов’язковими для заповнення +CronErrEndDateStartDt=Дата завершення не може передувати даті початку +StatusAtInstall=Статус при установці модуля +CronStatusActiveBtn=Розклад +CronStatusInactiveBtn=Вимкнути +CronTaskInactive=Це завдання вимкнено (не заплановано) +CronId=id +CronClassFile=Ім'я файлу з класом +CronModuleHelp=Назва каталогу модуля Dolibarr (також робота із зовнішнім модулем Dolibarr).
    Наприклад, щоб викликати метод вибору продукту Dolibarr об’єкта /htdocs/ product /class/product.class.php, значення для модуля: a0342fccfda19bz78038018fcfda19b27bc03808fcfda19b27bc3e38 +CronClassFileHelp=Відносний шлях та ім’я файлу для завантаження (шлях відносно кореневого каталогу веб-сервера).
    Наприклад, щоб викликати метод отримання об'єкта Dolibarr Product htdocs/product/class/ product.class.php , значення для назви файлу класу a0342fccfda19bclass38fcfda19bclass19bclass38fcfda19bclass38 +CronObjectHelp=Ім'я об'єкта для завантаження.
    Наприклад, щоб викликати метод вибірки об'єкта Dolibarr Product /htdocs/product/class/product.class.php, значення для імені файлу класу:
    Product a0ae64758bac33z +CronMethodHelp=Об'єктний метод для запуску.
    Наприклад, щоб викликати метод вибірки об'єкта Dolibarr Product /htdocs/product/class/product.class.php, значення для методу:
    fetch a0ae64758bac33z +CronArgsHelp=Аргументи методу.
    Наприклад, щоб викликати метод вибірки об'єкта Dolibarr Product /htdocs/product/class/product.class.php, значення параметрів може бути
    0, ProductRef a0a8bac34z +CronCommandHelp=Системний командний рядок для виконання. +CronCreateJob=Створити нове завдання за розкладом CronFrom=Продавець # 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=Тип роботи +CronType_method=Метод виклику класу PHP +CronType_command=Команда оболонки +CronCannotLoadClass=Не вдається завантажити файл класу %s (щоб використовувати клас %s) +CronCannotLoadObject=Файл класу %s завантажено, але об’єкт %s в ньому не знайдено +UseMenuModuleToolsToAddCronJobs=Перейдіть до меню " Головна - Інструменти адміністратора - Заплановані завдання ", щоб переглянути та відредагувати заплановані завдання. +JobDisabled=Робота відключена +MakeLocalDatabaseDumpShort=Резервне копіювання локальної бази даних +MakeLocalDatabaseDump=Створіть локальний дамп бази даних. Параметри: стиснення ('gz' або 'bz' або 'none'), тип резервної копії ('mysql', 'pgsql', 'auto'), 1, 'auto' або ім'я файлу для створення, кількість файлів резервної копії для збереження +MakeSendLocalDatabaseDumpShort=Надіслати резервну копію локальної бази даних +MakeSendLocalDatabaseDump=Надсилайте резервну копію локальної бази даних електронною поштою. Параметри: до, від, тема, повідомлення, ім'я файлу (ім'я надісланого файлу), фільтр ("sql" лише для резервної копії бази даних) +WarningCronDelayed=Увага, з метою продуктивності, незалежно від наступної дати виконання ввімкнених завдань, ваші завдання можуть бути відкладені максимум на %s годин перед запуском. +DATAPOLICYJob=Засіб очищення та анонімізації даних +JobXMustBeEnabled=Завдання %s має бути увімкнено # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=Остання виконана запланована робота +NextScheduledJobExecute=Наступне заплановано завдання для виконання +NumberScheduledJobError=Кількість запланованих завдань з помилкою diff --git a/htdocs/langs/uk_UA/deliveries.lang b/htdocs/langs/uk_UA/deliveries.lang index 590ee2a0dfe..5040d8d555a 100644 --- a/htdocs/langs/uk_UA/deliveries.lang +++ b/htdocs/langs/uk_UA/deliveries.lang @@ -1,33 +1,33 @@ # Dolibarr language file - Source file is en_US - deliveries 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=Проект -StatusDeliveryValidated=Received +DeliveryRef=Ref Доставка +DeliveryCard=Квитанція +DeliveryOrder=Квитанція про доставку +DeliveryDate=Дата доставки +CreateDeliveryOrder=Сформувати квитанцію про доставку +DeliveryStateSaved=Стан доставки збережено +SetDeliveryDate=Установіть дату доставки +ValidateDeliveryReceipt=Підтвердьте квитанцію про доставку +ValidateDeliveryReceiptConfirm=Ви впевнені, що хочете підтвердити цю квитанцію про доставку? +DeleteDeliveryReceipt=Видалити квитанцію про доставку +DeleteDeliveryReceiptConfirm=Ви впевнені, що хочете видалити квитанцію про доставку %s ? +DeliveryMethod=Метод доставки +TrackingNumber=Номер відстеження +DeliveryNotValidated=Доставка не підтверджена +StatusDeliveryCanceled=Скасовано +StatusDeliveryDraft=Чернетка +StatusDeliveryValidated=Отримано # merou PDF model -NameAndSignature=Name and Signature: -ToAndDate=To___________________________________ on ____/_____/__________ -GoodStatusDeclaration=Have received the goods above in good condition, -Deliverer=Deliverer: +NameAndSignature=Ім'я та підпис: +ToAndDate=До________________________________ ____/_____/__________ +GoodStatusDeclaration=Отримали вищевказані товари в хорошому стані, +Deliverer=Постачальник: 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 +Recipient=одержувач +ErrorStockIsNotEnough=Не вистачає запасу +Shippable=Можлива доставка +NonShippable=Не підлягає доставці +ShowShippableStatus=Показати статус відправлення +ShowReceiving=Показати квитанцію про доставку +NonExistentOrder=Неіснуючий порядок +StockQuantitiesAlreadyAllocatedOnPreviousLines = Обсяги запасу вже розподілені на попередніх рядках diff --git a/htdocs/langs/uk_UA/dict.lang b/htdocs/langs/uk_UA/dict.lang index aab36f63266..40d3d272e77 100644 --- a/htdocs/langs/uk_UA/dict.lang +++ b/htdocs/langs/uk_UA/dict.lang @@ -1,337 +1,337 @@ # Dolibarr language file - Source file is en_US - dict -CountryFR=France -CountryBE=Belgium -CountryIT=Italy -CountryES=Spain -CountryDE=Germany -CountryCH=Switzerland +CountryFR=Франція +CountryBE=Бельгія +CountryIT=Італія +CountryES=Іспанія +CountryDE=Німеччина +CountryCH=Швейцарія # 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=Ivoiry 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=Лаоська -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 +CountryGB=Об'єднане Королівство +CountryUK=Об'єднане Королівство +CountryIE=Ірландія +CountryCN=Китай +CountryTN=Туніс +CountryUS=Сполучені Штати +CountryMA=Марокко +CountryDZ=Алжир +CountryCA=Канада +CountryTG=Йти +CountryGA=Габон +CountryNL=Нідерланди +CountryHU=Угорщина +CountryRU=Росія +CountrySE=Швеція +CountryCI=Берег Слонової Кістки +CountrySN=Сенегал +CountryAR=Аргентина +CountryCM=Камерун +CountryPT=Португалія +CountrySA=Саудівська Аравія +CountryMC=Монако +CountryAU=Австралія +CountrySG=Сінгапур +CountryAF=Афганістан +CountryAX=Аландські острови +CountryAL=Албанія +CountryAS=Американське Самоа +CountryAD=Андорра +CountryAO=Ангола +CountryAI=Ангілья +CountryAQ=Антарктида +CountryAG=Антигуа і Барбуда +CountryAM=Вірменія +CountryAW=Аруба +CountryAT=Австрія +CountryAZ=Азербайджан +CountryBS=Багамські острови +CountryBH=Бахрейн +CountryBD=Бангладеш +CountryBB=Барбадос +CountryBY=Білорусь +CountryBZ=Беліз +CountryBJ=Бенін +CountryBM=Бермудські острови +CountryBT=Бутан +CountryBO=Болівія +CountryBA=Боснія і Герцеговина +CountryBW=Ботсвана +CountryBV=Острів Буве +CountryBR=Бразилія +CountryIO=Британська територія в Індійському океані +CountryBN=Бруней-Даруссалам +CountryBG=Болгарія +CountryBF=Буркіна-Фасо +CountryBI=Бурунді +CountryKH=Камбоджа +CountryCV=Кабо-Верде +CountryKY=Кайманові острови +CountryCF=Центральноафриканська Республіка +CountryTD=Чад +CountryCL=Чилі +CountryCX=Острів Різдва +CountryCC=Кокосові (Кілінг) острови +CountryCO=Колумбія +CountryKM=Коморські острови +CountryCG=Конго +CountryCD=Конго, Демократична Республіка +CountryCK=Острови Кука +CountryCR=Коста-Ріка +CountryHR=Хорватія +CountryCU=Куба +CountryCY=Кіпр +CountryCZ=Чеська Республіка +CountryDK=Данія +CountryDJ=Джібуті +CountryDM=Домініка +CountryDO=Домініканська республіка +CountryEC=Еквадор +CountryEG=Єгипет +CountrySV=Сальвадор +CountryGQ=Екваторіальна Гвінея +CountryER=Еритрея +CountryEE=Естонія +CountryET=Ефіопія +CountryFK=Фолклендські острови +CountryFO=Фарерські острови +CountryFJ=Острови Фіджі +CountryFI=Фінляндія +CountryGF=Французька Гвіана +CountryPF=Французька Полінезія +CountryTF=Південні території Франції +CountryGM=Гамбія +CountryGE=Грузія +CountryGH=Гана +CountryGI=Гібралтар +CountryGR=Греція +CountryGL=Гренландія +CountryGD=Гренада +CountryGP=Гваделупа +CountryGU=Гуам +CountryGT=Гватемала +CountryGN=Гвінея +CountryGW=Гвінея-Бісау +CountryGY=Гайана +CountryHT=Гаїті +CountryHM=Острів Херд і Макдональд +CountryVA=Святий Престол (держава Ватикан) +CountryHN=Гондурас +CountryHK=Гонконг +CountryIS=Ісландія +CountryIN=Індія +CountryID=Індонезія +CountryIR=Іран +CountryIQ=Ірак +CountryIL=Ізраїль +CountryJM=Ямайка +CountryJP=Японія +CountryJO=Йорданія +CountryKZ=Казахстан +CountryKE=Кенія +CountryKI=Кірібаті +CountryKP=Північна Корея +CountryKR=Південна Корея +CountryKW=Кувейт +CountryKG=Киргизстан +CountryLA=лаоський +CountryLV=Латвія +CountryLB=Ліван +CountryLS=Лесото +CountryLR=Ліберія +CountryLY=лівійський +CountryLI=Ліхтенштейн +CountryLT=Литва +CountryLU=Люксембург +CountryMO=Макао +CountryMK=Македонія, колишня югослав +CountryMG=Мадагаскар +CountryMW=Малаві +CountryMY=Малайзія +CountryMV=Мальдіви +CountryML=Малі +CountryMT=Мальта +CountryMH=Маршаллові острови +CountryMQ=Мартініка +CountryMR=Мавританії +CountryMU=Маврикій +CountryYT=Майотта +CountryMX=Мексика +CountryFM=Мікронезія +CountryMD=Молдова +CountryMN=Монголія +CountryMS=Монсеррат +CountryMZ=Мозамбік +CountryMM=М'янма (Бірма) +CountryNA=Намібія +CountryNR=Науру +CountryNP=Непал +CountryAN=Нідерландські Антильські острови +CountryNC=Нова Каледонія +CountryNZ=Нова Зеландія +CountryNI=Нікарагуа +CountryNE=Нігер +CountryNG=Нігерія +CountryNU=Ніуе +CountryNF=Острів Норфолк +CountryMP=Північні Маріанські острови +CountryNO=Норвегія +CountryOM=Оман +CountryPK=Пакистан +CountryPW=Палау +CountryPS=Палестинська територія, окупована +CountryPA=Панама +CountryPG=Папуа-Нова Гвінея +CountryPY=Парагвай +CountryPE=Перу +CountryPH=Філіппіни +CountryPN=Острови Піткерн +CountryPL=Польща +CountryPR=Пуерто-Рико +CountryQA=Катар +CountryRE=Возз'єднання +CountryRO=Румунія +CountryRW=Руанда +CountrySH=Свята Олена +CountryKN=Сент-Кітс і Невіс +CountryLC=Сент-Люсія +CountryPM=Сен-П'єр і Мікелон +CountryVC=Сент-Вінсент і Гренадіни +CountryWS=Самоа +CountrySM=Сан-Марино +CountryST=Сан-Томе і Прінсіпі +CountryRS=Сербія +CountrySC=Сейшельські острови +CountrySL=Сьєрра-Леоне +CountrySK=Словаччина +CountrySI=Словенія +CountrySB=Соломонові острови +CountrySO=Сомалі +CountryZA=Південна Африка +CountryGS=Південна Джорджія та Південні Сандвічеві острови +CountryLK=Шрі Ланка +CountrySD=Судан +CountrySR=Суринам +CountrySJ=Шпіцберген і Ян-Майєн +CountrySZ=Свазіленд +CountrySY=сирійський +CountryTW=Тайвань +CountryTJ=Таджикистан +CountryTZ=Танзанія +CountryTH=Таїланд +CountryTL=Східний Тимор +CountryTK=Токелау +CountryTO=Тонга +CountryTT=Тринідад і Тобаго +CountryTR=Туреччина +CountryTM=Туркменістан +CountryTC=Острови Теркс і Кайкос +CountryTV=Тувалу +CountryUG=Уганда +CountryUA=Україна +CountryAE=Об'єднані Арабські Емірати +CountryUM=Малі віддалені острови Сполучених Штатів +CountryUY=Уругвай +CountryUZ=Узбекистан +CountryVU=Вануату +CountryVE=Венесуела +CountryVN=В'єтнам +CountryVG=Віргінські острови, британські +CountryVI=Віргінські острови, США +CountryWF=Уолліс і Футуна +CountryEH=Західна Сахара +CountryYE=Ємен +CountryZM=Замбія +CountryZW=Зімбабве +CountryGG=Гернсі +CountryIM=Острів Мен +CountryJE=Джерсі +CountryME=Чорногорія +CountryBL=Сен-Бартелемі +CountryMF=Святий Мартін ##### Civilities ##### -CivilityMME=Mrs. -CivilityMR=Mr. -CivilityMLE=Ms. -CivilityMTRE=Master -CivilityDR=Doctor +CivilityMME=Пані. +CivilityMR=Містер. +CivilityMLE=РС. +CivilityMTRE=Майстер +CivilityDR=лікар ##### 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 +Currencyeuros=євро +CurrencyAUD=Австралійські долари +CurrencySingAUD=Австралійський долар +CurrencyCAD=CAN доларів +CurrencySingCAD=CAN долар +CurrencyCHF=швейцарські франки +CurrencySingCHF=швейцарський франк +CurrencyEUR=євро +CurrencySingEUR=євро +CurrencyFRF=Французькі франки +CurrencySingFRF=французький франк +CurrencyGBP=ГБ фунтів стерлінгів +CurrencySingGBP=ГБ фунт +CurrencyINR=індійські рупії +CurrencySingINR=індійська рупія +CurrencyMAD=дирхам +CurrencySingMAD=дирхам +CurrencyMGA=Аріарій +CurrencySingMGA=Аріарій +CurrencyMUR=рупії Маврикію +CurrencySingMUR=маврикійська рупія +CurrencyNOK=норвезькі крони +CurrencySingNOK=норвезькі крони +CurrencyTND=туніські динари +CurrencySingTND=туніський динар +CurrencyUSD=доларів США +CurrencySingUSD=Долар США +CurrencyUAH=гривні +CurrencySingUAH=гривні +CurrencyXAF=Франки КФА BEAC +CurrencySingXAF=Франк КФА BEAC +CurrencyXOF=Франки КФА BCEAO +CurrencySingXOF=Франк КФА BCEAO +CurrencyXPF=франки CFP +CurrencySingXPF=франк CFP +CurrencyCentEUR=центів +CurrencyCentSingEUR=цент CurrencyCentINR=paisa CurrencyCentSingINR=paise -CurrencyThousandthSingTND=thousandth +CurrencyThousandthSingTND=тисячний #### 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 +DemandReasonTypeSRC_INTE=Інтернет +DemandReasonTypeSRC_CAMP_MAIL=Розсилка кампанії +DemandReasonTypeSRC_CAMP_EMAIL=Кампанія розсилки електронною поштою +DemandReasonTypeSRC_CAMP_PHO=Телефонна кампанія +DemandReasonTypeSRC_CAMP_FAX=Факс-кампанія +DemandReasonTypeSRC_COMM=Комерційний контакт +DemandReasonTypeSRC_SHOP=Контакт магазину +DemandReasonTypeSRC_WOM=З вуст в уста +DemandReasonTypeSRC_PARTNER=Партнер +DemandReasonTypeSRC_EMPLOYEE=Співробітник +DemandReasonTypeSRC_SPONSORING=Спонсорство +DemandReasonTypeSRC_SRC_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 +PaperFormatEU4A0=Формат 4А0 +PaperFormatEU2A0=Формат 2А0 +PaperFormatEUA0=Формат А0 +PaperFormatEUA1=Формат А1 +PaperFormatEUA2=Формат А2 +PaperFormatEUA3=Формат А3 +PaperFormatEUA4=Формат А4 +PaperFormatEUA5=Формат А5 +PaperFormatEUA6=Формат А6 +PaperFormatUSLETTER=Формат листа США +PaperFormatUSLEGAL=Формат Legal US +PaperFormatUSEXECUTIVE=Формат Executive US +PaperFormatUSLEDGER=Формат Ledger/Tabloid +PaperFormatCAP1=Формат P1 Канада +PaperFormatCAP2=Формат P2 Канада +PaperFormatCAP3=Формат P3 Канада +PaperFormatCAP4=Формат P4 Канада +PaperFormatCAP5=Формат P5 Канада +PaperFormatCAP6=Формат P6 Канада #### Expense report categories #### -ExpAutoCat=Car -ExpCycloCat=Moped -ExpMotoCat=Motorbike +ExpAutoCat=Автомобіль +ExpCycloCat=Мопед +ExpMotoCat=мотоцикл ExpAuto3CV=3 CV ExpAuto4CV=4 CV ExpAuto5CV=5 CV @@ -342,18 +342,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 і більше +ExpAuto4PCV=4 CV і більше +ExpAuto5PCV=5 CV і більше +ExpAuto6PCV=6 CV і більше +ExpAuto7PCV=7 CV і більше +ExpAuto8PCV=8 CV і більше +ExpAuto9PCV=9 CV і більше +ExpAuto10PCV=10 CV і більше +ExpAuto11PCV=11 CV і більше +ExpAuto12PCV=12 CV і більше +ExpAuto13PCV=13 CV і більше +ExpCyclo=Місткість до 50 см3 +ExpMoto12CV=Мотоцикл 1 або 2 CV +ExpMoto345CV=Мотоцикл 3, 4 або 5 CV +ExpMoto5PCV=Мотоцикл 5 CV і більше diff --git a/htdocs/langs/uk_UA/donations.lang b/htdocs/langs/uk_UA/donations.lang index 8ceb3f02a07..519af40202f 100644 --- a/htdocs/langs/uk_UA/donations.lang +++ b/htdocs/langs/uk_UA/donations.lang @@ -1,34 +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 +Donation=Пожертвування +Donations=Пожертвування +DonationRef=Пожертвування ref. +Donor=Донор +AddDonation=Створіть пожертвування +NewDonation=Нове пожертвування +DeleteADonation=Видалити пожертвування +ConfirmDeleteADonation=Ви впевнені, що хочете видалити цей пожертвування? +PublicDonation=Громадське пожертвування +DonationsArea=Зона пожертв +DonationStatusPromiseNotValidated=Проект обіцянки +DonationStatusPromiseValidated=Підтверджена обіцянка +DonationStatusPaid=Пожертвування отримано DonationStatusPromiseNotValidatedShort=Проект DonationStatusPromiseValidatedShort=Підтверджений -DonationStatusPaidShort=Received -DonationTitle=Donation receipt -DonationDate=Donation date +DonationStatusPaidShort=Отримано +DonationTitle=Квитанція про пожертвування +DonationDate=Дата пожертвування DonationDatePayment=Дата платежу -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 +ValidPromess=Підтвердьте обіцянку +DonationReceipt=Квитанція про пожертвування +DonationsModels=Моделі документів для квитанцій про пожертвування +LastModifiedDonations=Останні модифіковані пожертвування %s +DonationRecipient=Одержувач пожертвування +IConfirmDonationReception=Одержувач заявляє про отримання, як пожертвування, наступної суми +MinimumAmount=Мінімальна сума: %s +FreeTextOnDonations=Вільний текст для відображення в нижньому колонтитулі +FrenchOptions=Варіанти для Франції +DONATION_ART200=Якщо вас турбує, покажіть статтю 200 із CGI +DONATION_ART238=Якщо вас турбує, покажіть статтю 238 із CGI +DONATION_ART885=Якщо вас турбує, покажіть статтю 885 із CGI +DonationPayment=Оплата пожертв +DonationValidated=Пожертвування %s підтверджено +DonationUseThirdparties=Використовуйте наявну третю сторону як координати донорів diff --git a/htdocs/langs/uk_UA/ecm.lang b/htdocs/langs/uk_UA/ecm.lang index 494a6c55164..b040af92133 100644 --- a/htdocs/langs/uk_UA/ecm.lang +++ b/htdocs/langs/uk_UA/ecm.lang @@ -1,49 +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 +ECMNbOfDocs=Кількість документів у довіднику +ECMSection=Довідник +ECMSectionManual=Ручний каталог +ECMSectionAuto=Автоматичний довідник +ECMSectionsManual=Ручне дерево +ECMSectionsAuto=Автоматичне дерево +ECMSections=Довідники +ECMRoot=Корінь ECM +ECMNewSection=Новий каталог +ECMAddSection=Додати каталог +ECMCreationDate=Дата створення +ECMNbOfFilesInDir=Кількість файлів у каталозі +ECMNbOfSubDir=Кількість підкаталогів +ECMNbOfFilesInSubDir=Кількість файлів у підкаталогах +ECMCreationUser=Творець +ECMArea=Зона DMS/ECM +ECMAreaDesc=Область DMS/ECM (Система керування документами / електронне керування вмістом) дозволяє зберігати, обмінюватися та швидко шукати всі види документів у Dolibarr. +ECMAreaDesc2=* Автоматичні довідники заповнюються автоматично при додаванні документів з картки елемента.
    * Каталоги вручну можна використовувати для збереження документів, не пов'язаних з певним елементом. +ECMSectionWasRemoved=Каталог %s видалено. +ECMSectionWasCreated=Створено каталог %s . +ECMSearchByKeywords=Пошук за ключовими словами +ECMSearchByEntity=Пошук за об'єктом +ECMSectionOfDocuments=Довідники документів +ECMTypeAuto=Автоматичний +ECMDocsBy=Документи, пов’язані з %s +ECMNoDirectoryYet=Не створено каталог +ShowECMSection=Показати каталог +DeleteSection=Видалити каталог +ConfirmDeleteSection=Чи можете ви підтвердити, що хочете видалити каталог %s ? +ECMDirectoryForFiles=Відносний каталог для файлів +CannotRemoveDirectoryContainsFilesOrDirs=Видалення неможливо, оскільки він містить деякі файли або підкаталоги +CannotRemoveDirectoryContainsFiles=Видалення неможливо, оскільки він містить деякі файли +ECMFileManager=Файловий менеджер +ECMSelectASection=Виберіть каталог у дереві... +DirNotSynchronizedSyncFirst=Здається, що цей каталог створено або змінено поза модулем ECM. Ви повинні спочатку натиснути кнопку «Повторна синхронізація», щоб синхронізувати диск і базу даних, щоб отримати вміст цього каталогу. +ReSyncListOfDir=Повторна синхронізація списку каталогів +HashOfFileContent=Хеш вмісту файлу +NoDirectoriesFound=Не знайдено жодних каталогів +FileNotYetIndexedInDatabase=Файл ще не проіндексований у базі даних (спробуйте завантажити його повторно) +ExtraFieldsEcmFiles=Файли Extrafields Ecm +ExtraFieldsEcmDirectories=Додаткові поля Ecm Directories +ECMSetup=Налаштування ECM +GenerateImgWebp=Скопіюйте всі зображення з іншою версією у форматі .webp +ConfirmGenerateImgWebp=Якщо ви підтвердите, ви згенеруєте зображення у форматі .webp для всіх зображень у цій папці (підпапки не включені)... +ConfirmImgWebpCreation=Підтвердьте дублювання всіх зображень +SucessConvertImgWebp=Зображення успішно скопійовано +ECMDirName=Назва дир +ECMParentDirectory=Батьківський каталог diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang index e05f9dc7a2a..3fc8a11315c 100644 --- a/htdocs/langs/uk_UA/errors.lang +++ b/htdocs/langs/uk_UA/errors.lang @@ -1,334 +1,349 @@ # Dolibarr language file - Source file is en_US - errors # No errors -NoErrorCommitIsDone=No error, we commit +NoErrorCommitIsDone=Без помилок, ми робимо # 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. -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. -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 -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: %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 +ErrorButCommitIsDone=Знайдено помилки, але ми перевіряємо, незважаючи на це +ErrorBadEMail=Електронна адреса %s неправильна +ErrorBadMXDomain=Електронна адреса %s здається неправильною (домен не має дійсного запису MX) +ErrorBadUrl=URL-адреса %s неправильна +ErrorBadValueForParamNotAString=Погане значення для вашого параметра. Зазвичай він додається, коли переклад відсутній. +ErrorRefAlreadyExists=Посилання %s вже існує. +ErrorTitleAlreadyExists=Заголовок %s вже існує. +ErrorLoginAlreadyExists=Вхід %s вже існує. +ErrorGroupAlreadyExists=Група %s вже існує. +ErrorEmailAlreadyExists=Електронна адреса %s вже існує. +ErrorRecordNotFound=Запис не знайдено. +ErrorFailToCopyFile=Не вдалося скопіювати файл ' %s ' в ' %s a09a4b73. +ErrorFailToCopyDir=Не вдалося скопіювати каталог ' %s ' в ' %s a09a17f7. +ErrorFailToRenameFile=Не вдалося перейменувати файл ' %s ' в ' %s a09a17f7. +ErrorFailToDeleteFile=Не вдалося видалити файл " %s ". +ErrorFailToCreateFile=Не вдалося створити файл « %s ». +ErrorFailToRenameDir=Не вдалося перейменувати каталог ' %s ' в ' %s a09f14f7. +ErrorFailToCreateDir=Не вдалося створити каталог " %s ". +ErrorFailToDeleteDir=Не вдалося видалити каталог " %s ". +ErrorFailToMakeReplacementInto=Не вдалося зробити заміну у файлі ' %s '. +ErrorFailToGenerateFile=Не вдалося створити файл " %s ". +ErrorThisContactIsAlreadyDefinedAsThisType=Цей контакт уже визначено як контакт для цього типу. +ErrorCashAccountAcceptsOnlyCashMoney=Цей банківський рахунок є готівковим рахунком, тому він приймає платежі лише готівкою. +ErrorFromToAccountsMustDiffers=Вихідні та цільові банківські рахунки повинні відрізнятися. +ErrorBadThirdPartyName=Неправильне значення для імені третьої сторони +ForbiddenBySetupRules=Заборонено правилами налаштування +ErrorProdIdIsMandatory=%s є обов’язковим +ErrorAccountancyCodeCustomerIsMandatory=Бухгалтерський код клієнта %s є обов'язковим +ErrorBadCustomerCodeSyntax=Поганий синтаксис коду клієнта +ErrorBadBarCodeSyntax=Поганий синтаксис штрих-коду. Можливо, ви встановили неправильний тип штрих-коду або визначили маску штрих-коду для нумерації, яка не відповідає відсканованому значенню. +ErrorCustomerCodeRequired=Необхідний код клієнта +ErrorBarCodeRequired=Необхідний штрих-код +ErrorCustomerCodeAlreadyUsed=Код клієнта вже використаний +ErrorBarCodeAlreadyUsed=Штрих-код уже використаний +ErrorPrefixRequired=Потрібен префікс +ErrorBadSupplierCodeSyntax=Поганий синтаксис коду постачальника +ErrorSupplierCodeRequired=Потрібен код постачальника +ErrorSupplierCodeAlreadyUsed=Код постачальника вже використаний +ErrorBadParameters=Погані параметри +ErrorWrongParameters=Неправильні або відсутні параметри +ErrorBadValueForParameter=Неправильне значення '%s' для параметра '%s' +ErrorBadImageFormat=Файл зображення не підтримує формат (Ваш PHP не підтримує функції для перетворення зображень цього формату) +ErrorBadDateFormat=Значення '%s' має неправильний формат дати +ErrorWrongDate=Дата не правильна! +ErrorFailedToWriteInDir=Не вдалося записати в каталог %s +ErrorFoundBadEmailInFile=Знайдено неправильний синтаксис електронної пошти для рядків %s у файлі (приклад рядка %s з email=%s) +ErrorUserCannotBeDelete=Користувача не можна видалити. Можливо, це пов’язано з сутностями Dolibarr. +ErrorFieldsRequired=Деякі обов’язкові поля залишено порожніми. +ErrorSubjectIsRequired=Тема електронного листа обов’язкова +ErrorFailedToCreateDir=Не вдалося створити каталог. Перевірте, чи має користувач веб-сервера права запису в каталог документів Dolibarr. Якщо параметр safe_mode увімкнено на цьому PHP, переконайтеся, що файли Dolibarr php належать користувачеві (або групі) веб-сервера. +ErrorNoMailDefinedForThisUser=Для цього користувача не визначено пошту +ErrorSetupOfEmailsNotComplete=Налаштування електронних листів не завершено +ErrorFeatureNeedJavascript=Щоб ця функція працювала, потрібен javascript. Змініть це в налаштуваннях - дисплей. +ErrorTopMenuMustHaveAParentWithId0=Меню типу "Верхнє" не може мати батьківського меню. Поставте 0 у батьківському меню або виберіть меню типу «Ліво». +ErrorLeftMenuMustHaveAParentId=Меню типу "Ліво" повинно мати батьківський ідентифікатор. +ErrorFileNotFound=Файл %s не знайдено (поганий шлях, неправильні дозволи або доступ заборонено PHP openbasedir або параметр safe_mode) +ErrorDirNotFound=Каталог %s не знайдено (поганий шлях, неправильні дозволи або доступ заборонено PHP openbasedir або параметр safe_mode) +ErrorFunctionNotAvailableInPHP=Функція %s потрібна для цієї функції, але вона недоступна в цій версії/налаштуванні PHP. +ErrorDirAlreadyExists=Каталог з такою назвою вже існує. +ErrorFileAlreadyExists=Файл з такою назвою вже існує. +ErrorDestinationAlreadyExists=Інший файл з іменем %s вже існує. +ErrorPartialFile=Файл не отримав повністю сервер. +ErrorNoTmpDir=Тимчасовий каталог %s не існує. +ErrorUploadBlockedByAddon=Завантаження заблоковано плагіном PHP/Apache. +ErrorFileSizeTooLarge=Розмір файлу завеликий або файл не надано. +ErrorFieldTooLong=Поле %s задовге. +ErrorSizeTooLongForIntType=Розмір задовгий для типу int (максимум %s цифр) +ErrorSizeTooLongForVarcharType=Розмір задовгий для типу рядка (максимум %s символів) +ErrorNoValueForSelectType=Будь ласка, заповніть значення для вибраного списку +ErrorNoValueForCheckBoxType=Будь ласка, заповніть значення для списку прапорців +ErrorNoValueForRadioType=Будь ласка, заповніть значення для списку радіо +ErrorBadFormatValueList=Значення списку не може містити більше однієї коми: %s , але потрібно принаймні одне: ключ, значення +ErrorFieldCanNotContainSpecialCharacters=Поле %s не повинно містити спеціальних символів. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Поле %s не повинно містити ні спеціальних символів, ні символів верхнього регістру та не може містити лише цифри. +ErrorFieldMustHaveXChar=Поле %s має містити щонайменше символ %s. +ErrorNoAccountancyModuleLoaded=Не активовано модуль бухгалтерії +ErrorExportDuplicateProfil=Ця назва профілю вже існує для цього набору експорту. +ErrorLDAPSetupNotComplete=Узгодження Dolibarr-LDAP не завершено. +ErrorLDAPMakeManualTest=У каталозі %s створено файл .ldif. Спробуйте завантажити його вручну з командного рядка, щоб отримати більше інформації про помилки. +ErrorCantSaveADoneUserWithZeroPercentage=Неможливо зберегти дію зі статусом «не розпочато», якщо також заповнене поле «виконано». +ErrorRefAlreadyExists=Посилання %s вже існує. +ErrorPleaseTypeBankTransactionReportName=Будь ласка, введіть назву банківської виписки, у якій потрібно повідомити запис (формат РРРРММ або РРРРММДД) +ErrorRecordHasChildren=Не вдалося видалити запис, оскільки він має деякі дочірні записи. +ErrorRecordHasAtLeastOneChildOfType=Об’єкт %s має принаймні одну дочірню частину типу %s +ErrorRecordIsUsedCantDelete=Не вдається видалити запис. Він уже використовується або включений до іншого об'єкта. +ErrorModuleRequireJavascript=Javascript не потрібно відключати, щоб ця функція працювала. Щоб увімкнути/вимкнути 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 +ErrorsOnXLines=Знайдено помилки %s +ErrorFileIsInfectedWithAVirus=Антивірусна програма не змогла перевірити файл (можливо, файл заражений вірусом) +ErrorSpecialCharNotAllowedForField=Спеціальні символи не допускаються для поля "%s" +ErrorNumRefModel=Посилання існує в базі даних (%s) і несумісне з цим правилом нумерації. Видаліть запис або перейменуйте посилання, щоб активувати цей модуль. +ErrorQtyTooLowForThisSupplier=Замала кількість для цього постачальника або ціна не визначена на цей продукт для цього постачальника +ErrorOrdersNotCreatedQtyTooLow=Деякі замовлення не створено через занадто малу кількість +ErrorModuleSetupNotComplete=Налаштування модуля %s виглядає незавершеним. Щоб завершити, перейдіть на «Головна» - «Налаштування» - «Модулі». +ErrorBadMask=Помилка на масці +ErrorBadMaskFailedToLocatePosOfSequence=Помилка, маска без порядкового номера +ErrorBadMaskBadRazMonth=Помилка, неправильне значення скидання +ErrorMaxNumberReachForThisMask=Для цієї маски досягнуто максимальної кількості +ErrorCounterMustHaveMoreThan3Digits=Лічильник має містити більше 3 цифр +ErrorSelectAtLeastOne=Помилка, виберіть принаймні один запис. +ErrorDeleteNotPossibleLineIsConsolidated=Видалити неможливо, оскільки запис пов’язаний з банківською трансакцією, яка узгоджена +ErrorProdIdAlreadyExist=%s призначається іншій третині +ErrorFailedToSendPassword=Не вдалося надіслати пароль +ErrorFailedToLoadRSSFile=Не вдається отримати RSS-канал. Спробуйте додати константу MAIN_SIMPLEXMLLOAD_DEBUG, якщо повідомлення про помилки не надають достатньо інформації. +ErrorForbidden=Доступ заборонено.
    Ви намагаєтеся отримати доступ до сторінки, області або функції вимкненого модуля або не перебуваєте в автентифікованому сеансі або це не дозволено вашому користувачеві. +ErrorForbidden2=Дозвіл для цього входу може визначити ваш адміністратор Dolibarr з меню %s->%s. +ErrorForbidden3=Здається, що Dolibarr не використовується через аутентифікований сеанс. Перегляньте документацію з налаштування Dolibarr, щоб дізнатися, як керувати аутентифікаціями (htaccess, mod_auth або інші...). +ErrorForbidden4=Примітка: очистіть файли cookie вашого браузера, щоб знищити наявні сеанси для цього входу. +ErrorNoImagickReadimage=Клас Imagick не знайдено в цьому PHP. Попередній перегляд недоступний. Адміністратори можуть вимкнути цю вкладку з меню Налаштування - Дисплей. +ErrorRecordAlreadyExists=Запис уже існує +ErrorLabelAlreadyExists=Ця мітка вже існує +ErrorCantReadFile=Не вдалося прочитати файл "%s" +ErrorCantReadDir=Не вдалося прочитати каталог "%s" +ErrorBadLoginPassword=Неправильне значення для входу або пароля +ErrorLoginDisabled=Ваш обліковий запис вимкнено +ErrorFailedToRunExternalCommand=Не вдалося запустити зовнішню команду. Перевірте, чи він доступний і запущений користувачем вашого сервера PHP. Також перевірте, чи команда не захищена на рівні оболонки таким рівнем безпеки, як apparmor. +ErrorFailedToChangePassword=Не вдалося змінити пароль +ErrorLoginDoesNotExists=Користувача з логіном %s не вдалося знайти. +ErrorLoginHasNoEmail=Цей користувач не має електронної адреси. Процес перервано. +ErrorBadValueForCode=Погане значення для коду безпеки. Спробуйте ще раз з новим значенням... +ErrorBothFieldCantBeNegative=Поля %s і %s не можуть бути від’ємними +ErrorFieldCantBeNegativeOnInvoice=Поле %s не може бути від’ємним для цього типу рахунка-фактури. Якщо вам потрібно додати рядок знижки, просто спочатку створіть знижку (з поля '%s' в картці третьої сторони) і застосуйте її до рахунку-фактури. +ErrorLinesCantBeNegativeForOneVATRate=Загальна кількість рядків (за вирахуванням податку) не може бути від’ємною для даної ненульової ставки ПДВ (Знайдено від’ємну суму для ставки ПДВ %s %%). +ErrorLinesCantBeNegativeOnDeposits=У депозиті рядки не можуть бути від’ємними. Ви зіткнетеся з проблемами, коли вам потрібно буде витратити заставу в остаточному рахунку-фактурі, якщо ви це зробите. +ErrorQtyForCustomerInvoiceCantBeNegative=Кількість для рядка в рахунках-фактурах клієнта не може бути від’ємною +ErrorWebServerUserHasNotPermission=Обліковий запис користувача %s , який використовується для запуску веб-сервера, не має дозволу на це +ErrorNoActivatedBarcode=Тип штрих-коду не активовано +ErrUnzipFails=Не вдалося розпакувати %s за допомогою ZipArchive +ErrNoZipEngine=У цьому PHP немає механізму для архівування/розпакування файлу %s +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=Для режиму оплати було встановлено тип %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) +ErrorPriceExpression8=Неочікуваний оператор '%s' +ErrorPriceExpression9=Сталася неочікувана помилка +ErrorPriceExpression10=В операторі '%s' відсутній операнд +ErrorPriceExpression11=Очікується "%s" +ErrorPriceExpression14=Ділення на нуль +ErrorPriceExpression17=Невизначена змінна '%s' +ErrorPriceExpression19=Вираз не знайдено +ErrorPriceExpression20=Порожній вираз +ErrorPriceExpression21=Порожній результат '%s' +ErrorPriceExpression22=Негативний результат '%s' +ErrorPriceExpression23=Невідома або не встановлена змінна '%s' в %s +ErrorPriceExpression24=Змінна '%s' існує, але не має значення +ErrorPriceExpressionInternal=Внутрішня помилка "%s" +ErrorPriceExpressionUnknown=Невідома помилка "%s" +ErrorSrcAndTargetWarehouseMustDiffers=Вихідні та цільові склади повинні відрізнятися +ErrorTryToMakeMoveOnProductRequiringBatchData=Помилка, спроба здійснити переміщення запасу без інформації про партію/серію, для продукту "%s", що вимагає інформації про партію/серійну інформацію +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Усі записані прийоми мають бути спершу перевірені (схвалені чи відхилені), перш ніж їм буде дозволено виконувати цю дію +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Усі записані прийоми мають бути спершу перевірені (схвалені), перш ніж їм буде дозволено виконувати цю дію +ErrorGlobalVariableUpdater0=Помилка HTTP-запиту з помилкою "%s" +ErrorGlobalVariableUpdater1=Недійсний формат JSON "%s" +ErrorGlobalVariableUpdater2=Відсутній параметр "%s" +ErrorGlobalVariableUpdater3=Запитувані дані не були знайдені в результаті +ErrorGlobalVariableUpdater4=Помилка клієнта SOAP з помилкою "%s" +ErrorGlobalVariableUpdater5=Глобальну змінну не вибрано +ErrorFieldMustBeANumeric=Поле %s має бути числовим значенням +ErrorMandatoryParametersNotProvided=Обов’язковий параметр(и) не вказано +ErrorOppStatusRequiredIfAmount=Ви встановили приблизну суму для цього потенційного клієнта. Тому ви також повинні ввести його статус. +ErrorFailedToLoadModuleDescriptorForXXX=Не вдалося завантажити клас дескриптора модуля для %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Погане визначення масиву меню в дескрипторі модуля (погане значення для клавіші fk_menu) +ErrorSavingChanges=Під час збереження змін сталася помилка +ErrorWarehouseRequiredIntoShipmentLine=Для відправки потрібен склад на лінії +ErrorFileMustHaveFormat=Файл повинен мати формат %s +ErrorFilenameCantStartWithDot=Ім'я файлу не може починатися з "." +ErrorSupplierCountryIsNotDefined=Країна для цього постачальника не визначена. Спочатку виправте це. +ErrorsThirdpartyMerge=Не вдалося об’єднати два записи. Запит скасовано. +ErrorStockIsNotEnoughToAddProductOnOrder=Запасу недостатньо, щоб продукт %s додати його в нове замовлення. +ErrorStockIsNotEnoughToAddProductOnInvoice=Запасу недостатньо, щоб продукт %s додати його до нового рахунку. +ErrorStockIsNotEnoughToAddProductOnShipment=Запасу недостатньо, щоб продукт %s додати його в нову відправку. +ErrorStockIsNotEnoughToAddProductOnProposal=Запасу недостатньо, щоб продукт %s додати його в нову пропозицію. +ErrorFailedToLoadLoginFileForMode=Не вдалося отримати ключ входу для режиму "%s". +ErrorModuleNotFound=Файл модуля не знайдено. +ErrorFieldAccountNotDefinedForBankLine=Значення для облікового запису не визначено для ідентифікатора вихідного рядка %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Значення для облікового запису не визначено для ідентифікатора рахунка-фактури %s (%s) +ErrorFieldAccountNotDefinedForLine=Значення для облікового запису не визначено для рядка (%s) +ErrorBankStatementNameMustFollowRegex=Помилка, назва банківської виписки має відповідати наступному синтаксичному правилу %s +ErrorPhpMailDelivery=Переконайтеся, що ви не використовуєте занадто велику кількість одержувачів і чи вміст вашої електронної пошти не схожий на спам. Також попросіть свого адміністратора перевірити файли журналів брандмауера та сервера для отримання більш повної інформації. +ErrorUserNotAssignedToTask=Користувача потрібно призначити до завдання, щоб мати можливість ввести витрачений час. +ErrorTaskAlreadyAssigned=Завдання вже призначено користувачеві +ErrorModuleFileSeemsToHaveAWrongFormat=Здається, пакет модуля має неправильний формат. +ErrorModuleFileSeemsToHaveAWrongFormat2=Принаймні один обов'язковий каталог повинен існувати в zip модуля: %s або %s a706 +ErrorFilenameDosNotMatchDolibarrPackageRules=Назва пакета модуля ( %s ) не відповідає очікуваному синтаксису імені: a0ecb2ec87f49fzd0 a019 +ErrorDuplicateTrigger=Помилка, дублікат імені тригера %s. Вже завантажено з %s. +ErrorNoWarehouseDefined=Помилка, склади не визначені. +ErrorBadLinkSourceSetButBadValueForRef=Посилання, яке ви використовуєте, недійсне. "Джерело" для платежу визначено, але значення для "посилання" недійсне. +ErrorTooManyErrorsProcessStopped=Забагато помилок. Процес був зупинений. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Масова перевірка неможлива, якщо для цієї дії встановлено опцію збільшення/зменшення запасу (ви повинні перевіряти один за іншим, щоб ви могли визначити склад для збільшення/зменшення) +ErrorObjectMustHaveStatusDraftToBeValidated=Для підтвердження об’єкт %s повинен мати статус «Чернетка». +ErrorObjectMustHaveLinesToBeValidated=Об’єкт %s повинен мати рядки для перевірки. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=За допомогою масової дії "Надіслати електронною поштою" можна надсилати лише підтверджені рахунки-фактури. +ErrorChooseBetweenFreeEntryOrPredefinedProduct=Ви повинні вибрати, чи є стаття попередньо визначеним продуктом чи ні +ErrorDiscountLargerThanRemainToPaySplitItBefore=Знижка, яку ви намагаєтеся застосувати, більша, ніж залишається платити. Розділіть знижку на 2 менші знижки. +ErrorFileNotFoundWithSharedLink=Файл не знайдено. Можливо, ключ спільного доступу був змінений або файл нещодавно видалено. +ErrorProductBarCodeAlreadyExists=Штрих-код продукту %s вже існує в іншому довіднику продукту. +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Зауважте також, що використання комплектів для автоматичного збільшення/зменшення підпродуктів неможливе, якщо принаймні одному підпродукту (або підпродукту підпродуктів) потрібен серійний номер/номер партії. +ErrorDescRequiredForFreeProductLines=Опис є обов'язковим для рядків з безкоштовним продуктом +ErrorAPageWithThisNameOrAliasAlreadyExists=Сторінка/контейнер %s має те саме ім'я або альтернативний псевдонім, що ви намагаєтеся використати +ErrorDuringChartLoad=Помилка під час завантаження плану рахунків. Якщо кілька облікових записів не завантажено, ви все одно можете ввести їх вручну. +ErrorBadSyntaxForParamKeyForContent=Поганий синтаксис для параметра 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 +ProblemIsInSetupOfTerminal=Проблема в налаштуванні терміналу %s. +ErrorAddAtLeastOneLineFirst=Спочатку додайте хоча б один рядок +ErrorRecordAlreadyInAccountingDeletionNotPossible=Помилка, запис уже перенесено в бухгалтерію, видалення неможливо. +ErrorLanguageMandatoryIfPageSetAsTranslationOfAnother=Помилка, мова є обов’язковою, якщо ви встановлюєте сторінку як переклад іншої. +ErrorLanguageOfTranslatedPageIsSameThanThisPage=Помилка, мова перекладеної сторінки така ж, як ця. +ErrorBatchNoFoundForProductInWarehouse=На складі "%s" для продукту "%s" не знайдено партії/серії. +ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=Недостатня кількість для цієї партії/серії для продукту "%s" на складі "%s". +ErrorOnlyOneFieldForGroupByIsPossible=Можливе лише 1 поле для "Групувати за" (інші відкидаються) +ErrorTooManyDifferentValueForSelectedGroupBy=Знайдено забагато різних значень (більше, ніж %s ) для поля ' %s a09f2ec87f49fz0 a09a14, тому ми можемо використовувати як a09aee83365837fz0 %s a39a147' Поле «Групувати за» видалено. Можливо, ви хотіли використовувати його як вісь X? +ErrorReplaceStringEmpty=Помилка, рядок для заміни порожній +ErrorProductNeedBatchNumber=Помилка, продукту ' %s ' потрібна партія/серійний номер +ErrorProductDoesNotNeedBatchNumber=Помилка, продукт ' %s ' не приймає партію/серійний номер +ErrorFailedToReadObject=Помилка, не вдалося прочитати об’єкт типу %s +ErrorParameterMustBeEnabledToAllwoThisFeature=Помилка, параметр %s має бути включений в conf/conf.php a0aee833365837fz0, щоб дозволити використання Interface внутрішнє завдання команди Liface +ErrorLoginDateValidity=Помилка, цей логін вийшов за межі діапазону дат дії +ErrorValueLength=Довжина поля ' %s ' має бути вищою за ' %s a09f147 +ErrorReservedKeyword=Слово ' %s ' є зарезервованим ключовим словом +ErrorNotAvailableWithThisDistribution=Недоступно з цим дистрибутивом +ErrorPublicInterfaceNotEnabled=Загальнодоступний інтерфейс не ввімкнено +ErrorLanguageRequiredIfPageIsTranslationOfAnother=Мова нової сторінки має бути визначена, якщо вона встановлена як переклад іншої сторінки +ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=Мова нової сторінки не повинна бути вихідною, якщо вона встановлена як переклад іншої сторінки +ErrorAParameterIsRequiredForThisOperation=Параметр є обов’язковим для цієї операції +ErrorDateIsInFuture=Помилка, дата не може бути в майбутньому +ErrorAnAmountWithoutTaxIsRequired=Помилка, сума обов'язкова +ErrorAPercentIsRequired=Помилка, будь ласка, заповніть відсоток правильно +ErrorYouMustFirstSetupYourChartOfAccount=Спочатку потрібно налаштувати план рахунків +ErrorFailedToFindEmailTemplate=Не вдалося знайти шаблон із кодовою назвою %s +ErrorDurationForServiceNotDefinedCantCalculateHourlyPrice=Тривалість обслуговування не визначена. Неможливо розрахувати погодинну ціну. +ErrorActionCommPropertyUserowneridNotDefined=Потрібен власник користувача +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=Помилка, запит завеликий +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 # 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. +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Ваш параметр PHP upload_max_filesize (%s) вищий за параметр PHP post_max_size (%s). Це не послідовне налаштування. +WarningPasswordSetWithNoAccount=Для цього учасника встановлено пароль. Однак обліковий запис користувача не створено. Таким чином, цей пароль зберігається, але його не можна використовувати для входу в Dolibarr. Він може використовуватися зовнішнім модулем/інтерфейсом, але якщо вам не потрібно вказувати логін чи пароль для учасника, ви можете вимкнути опцію «Керувати логіном для кожного члена» у налаштуваннях модуля Member. Якщо вам потрібно керувати логіном, але не потрібен пароль, ви можете залишити це поле порожнім, щоб уникнути цього попередження. Примітка: електронну пошту також можна використовувати як логін, якщо учасник пов’язаний з користувачем. +WarningMandatorySetupNotComplete=Click here to setup main parameters +WarningEnableYourModulesApplications=Натисніть тут, щоб увімкнути свої модулі та програми +WarningSafeModeOnCheckExecDir=Попередження, параметр PHP safe_mode увімкнено, тому команда має зберігатися в каталозі, оголошеному параметром php safe_mode_exec_dir a09a4b739f1. +WarningBookmarkAlreadyExists=Закладка з такою назвою або цією цільовою URL-адресою вже існує. +WarningPassIsEmpty=Попередження, пароль бази даних порожній. Це діра в безпеці. Вам слід додати пароль до вашої бази даних і змінити файл conf.php, щоб відобразити це. +WarningConfFileMustBeReadOnly=Попередження, ваш файл конфігурації ( htdocs/conf/conf.php ) може бути перезаписаний веб-сервером. Це серйозна діра в безпеці. Змініть дозволи на файл, щоб він був у режимі лише для читання для користувача операційної системи, який використовує веб-сервер. Якщо ви використовуєте формат Windows і FAT для свого диска, ви повинні знати, що ця файлова система не дозволяє додавати дозволи до файлу, тому не може бути повністю безпечною. +WarningsOnXLines=Попередження щодо %s вихідних записів +WarningNoDocumentModelActivated=Жодна модель для створення документів не активована. Модель буде вибрана за замовчуванням, доки ви не перевірите налаштування модуля. +WarningLockFileDoesNotExists=Попередження, після завершення налаштування ви повинні вимкнути інструменти встановлення/міграції, додавши файл install.lock до каталогу %s a300. Пропуск створення цього файлу є серйозною загрозою безпеці. +WarningUntilDirRemoved=Усі попередження безпеки (видні лише користувачам-адміністраторам) залишаться активними, доки вразливість є (або константу MAIN_REMOVE_INSTALL_WARNING додано в Налаштування->Інше налаштування). +WarningCloseAlways=Попередження, закриття виконується, навіть якщо кількість різниться між вихідними та цільовими елементами. Увімкніть цю функцію обережно. +WarningUsingThisBoxSlowDown=Попередження, використання цього поля серйозно уповільнює роботу всіх сторінок, на яких відображається поле. +WarningClickToDialUserSetupNotComplete=Налаштування інформації ClickToDial для вашого користувача не завершено (див. вкладку ClickToDial на вашій картці користувача). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Функція вимкнена, якщо налаштування дисплея оптимізовано для сліпих або текстових браузерів. +WarningPaymentDateLowerThanInvoiceDate=Дата платежу (%s) раніше дати рахунка-фактури (%s) для рахунка-фактури %s. +WarningTooManyDataPleaseUseMoreFilters=Забагато даних (більше, ніж %s рядків). Будь ласка, використовуйте більше фільтрів або встановіть для константи %s вищу межу. +WarningSomeLinesWithNullHourlyRate=Деякі користувачі зафіксували деякі часи, а їхня погодинна ставка не була визначена. Використано значення 0 %s на годину, але це може призвести до неправильної оцінки витраченого часу. +WarningYourLoginWasModifiedPleaseLogin=Ваш логін був змінений. З метою безпеки вам доведеться увійти під своїм новим логіном перед наступною дією. +WarningAnEntryAlreadyExistForTransKey=Для ключа перекладу для цієї мови вже існує запис +WarningNumberOfRecipientIsRestrictedInMassAction=Попередження, кількість різних одержувачів обмежена до %s при використанні масових дій у списках +WarningDateOfLineMustBeInExpenseReportRange=Попередження, дата рядка не входить у діапазон звіту про витрати +WarningProjectDraft=Проект все ще в чернетковому режимі. Не забудьте підтвердити його, якщо плануєте використовувати завдання. +WarningProjectClosed=Проект закритий. Спершу його потрібно знову відкрити. +WarningSomeBankTransactionByChequeWereRemovedAfter=Деякі банківські трансакції були видалені після того, як були сформовані квитанції, включаючи їх. Тому кількість чеків і загальна сума надходження можуть відрізнятися від кількості та загальної суми в списку. +WarningFailedToAddFileIntoDatabaseIndex=Попередження, не вдалося додати запис файлу в індексну таблицю бази даних ECM +WarningTheHiddenOptionIsOn=Попередження, увімкнено приховану опцію %s . +WarningCreateSubAccounts=Попередження, ви не можете створити безпосередньо підпорядкований обліковий запис, ви повинні створити третю сторону або користувача та призначити їм обліковий код, щоб знайти їх у цьому списку +WarningAvailableOnlyForHTTPSServers=Доступно лише за умови використання захищеного з’єднання HTTPS. +WarningModuleXDisabledSoYouMayMissEventHere=Модуль %s не ввімкнено. Тому ви можете пропустити багато подій тут. +WarningPaypalPaymentNotCompatibleWithStrict=Значення "Strict" робить функції онлайн-платежів некоректними. Натомість використовуйте "Lax". +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 +RequireValidValue = Недійсне значення +RequireAtLeastXString = Потрібен принаймні %s символ(ів) +RequireXStringMax = Потрібна %s символ(ів) макс +RequireAtLeastXDigits = Потрібна принаймні %s цифра(и) +RequireXDigitsMax = Потрібна а0ecb2ec87f49fz0 цифр(и) макс +RequireValidNumeric = Потрібне числове значення +RequireValidEmail = Адреса електронної пошти недійсна +RequireMaxLength = Довжина має бути меншою за %s символів +RequireMinLength = Довжина має бути більше, ніж %s символів +RequireValidUrl = Потрібна дійсна URL-адреса +RequireValidDate = Вимагайте дійсну дату +RequireANotEmptyValue = Необхідно +RequireValidDuration = Вимагати дійсної тривалості +RequireValidExistingElement = Вимагати наявного значення +RequireValidBool = Вимагати дійсне логічне значення +BadSetupOfField = Помилка неправильне налаштування поля +BadSetupOfFieldClassNotFoundForValidation = Помилка неправильного налаштування поля: клас не знайдено для перевірки +BadSetupOfFieldFileNotFound = Помилка неправильного налаштування поля: файл не знайдено для включення +BadSetupOfFieldFetchNotCallable = Помилка неправильного налаштування поля: вибірку не можна викликати у класі diff --git a/htdocs/langs/uk_UA/eventorganization.lang b/htdocs/langs/uk_UA/eventorganization.lang index 0d43ff770a7..2dccbf9f263 100644 --- a/htdocs/langs/uk_UA/eventorganization.lang +++ b/htdocs/langs/uk_UA/eventorganization.lang @@ -17,151 +17,153 @@ # # 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 = 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
    Надіслати нагадування про подію доповідачам
    Надіслати нагадування про подію організаторам стенду
    Надіслати нагадування про подію учасникам +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= Конференція або стенд +ManageOrganizeEvent = Керуйте організацією заходу +ConferenceOrBooth = Конференція або стенд +ConferenceOrBoothTab = Конференція або стенд +AmountPaid = Виплачувана сума +DateOfRegistration = Дата реєстрації +ConferenceOrBoothAttendee = Учасник конференції або стенду # # 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 = Seed для захисту ключа для загальнодоступної сторінки реєстрації, щоб запропонувати конференцію +SERVICE_BOOTH_LOCATION = Послуга, яка використовується для рядка рахунків-фактур щодо розташування кіоска +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Служба, яка використовується для рядка рахунків-фактур про підписку відвідувача на подію +NbVotes=Кількість голосів # # Status # EvntOrgDraft = Проект -EvntOrgSuggested = Suggested -EvntOrgConfirmed = Confirmed -EvntOrgNotQualified = Not Qualified -EvntOrgDone = Done -EvntOrgCancelled = Cancelled +EvntOrgSuggested = Запропоновано +EvntOrgConfirmed = Підтверджено +EvntOrgNotQualified = Не кваліфікований +EvntOrgDone = Готово +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 -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 +SuggestForm = Сторінка пропозицій +SuggestOrVoteForConfOrBooth = Сторінка для пропозиції або голосування +EvntOrgRegistrationHelpMessage = Тут ви можете проголосувати за конференцію або запропонувати нову для події. Ви також можете подати заявку на наявність стенду під час заходу. +EvntOrgRegistrationConfHelpMessage = Тут ви можете запропонувати нову конференцію для анімації під час події. +EvntOrgRegistrationBoothHelpMessage = Тут ви можете подати заявку на наявність стенду під час заходу. +ListOfSuggestedConferences = Список пропонованих конференцій +ListOfSuggestedBooths = Список пропонованих кабін +ListOfConferencesOrBooths=Список конференцій або стендів заходу проекту +SuggestConference = Запропонуйте нову конференцію +SuggestBooth = Запропонуйте будку +ViewAndVote = Переглядайте запропоновані події та голосуйте за них +PublicAttendeeSubscriptionGlobalPage = Загальне посилання для реєстрації на подію +PublicAttendeeSubscriptionPage = Загальне посилання лише для реєстрації на цю подію +MissingOrBadSecureKey = Ключ безпеки недійсний або відсутній +EvntOrgWelcomeMessage = Ця форма дозволяє зареєструватися як новий учасник заходу: %s +EvntOrgDuration = Ця конференція починається на %s і закінчується на %s. +ConferenceAttendeeFee = Плата за відвідування конференції за подію: «%s» від %s до %s. +BoothLocationFee = Розташування стенду для події: "%s" від %s до %s +EventType = Тип події +LabelOfBooth=Етикетка стенду +LabelOfconference=Етикетка конференції +ConferenceIsNotConfirmed=Реєстрація недоступна, конференція ще не підтверджена +DateMustBeBeforeThan=%s має бути перед %s +DateMustBeAfterThan=%s має бути після %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) +NewSubscription=Реєстрація +OrganizationEventConfRequestWasReceived=Вашу пропозицію щодо конференції отримано +OrganizationEventBoothRequestWasReceived=Ваш запит на будку отримано +OrganizationEventPaymentOfBoothWasReceived=Ваш платіж за ваш стенд зафіксовано +OrganizationEventPaymentOfRegistrationWasReceived=Ваш платіж за реєстрацію на подію зафіксовано +OrganizationEventBulkMailToAttendees=Це нагадування про вашу участь у заході як учасника +OrganizationEventBulkMailToSpeakers=Це нагадування про вашу участь у заході як доповідача +OrganizationEventLinkToThirdParty=Посилання на третю сторону (клієнт, постачальник або партнер) -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 = Ваша реєстрація підтверджена +ConfAttendeeSubscriptionConfirmation = Підтвердження вашої підписки на подію +Attendee = Учасник +PaymentConferenceAttendee = Оплата учасникам конференції +PaymentBoothLocation = Оплата місця розташування стенду +DeleteConferenceOrBoothAttendee=Видалити учасника +RegistrationAndPaymentWereAlreadyRecorder=Реєстрація та платіж уже були записані для електронної пошти %s +EmailAttendee=Електронна адреса учасника +EmailCompanyForInvoice=Електронна адреса компанії (для рахунку-фактури, якщо вона відрізняється від електронної адреси учасника) +ErrorSeveralCompaniesWithEmailContactUs=Знайдено кілька компаній із цією електронною поштою, тому ми не можемо автоматично підтвердити вашу реєстрацію. Будь ласка, зв’яжіться з нами за адресою %s для перевірки вручну +ErrorSeveralCompaniesWithNameContactUs=Було знайдено кілька компаній з такою назвою, тому ми не можемо автоматично підтвердити вашу реєстрацію. Будь ласка, зв’яжіться з нами за адресою %s для перевірки вручну +NoPublicActionsAllowedForThisEvent=Жодні публічні заходи щодо цієї події не є відкритими +MaxNbOfAttendees=Максимальна кількість учасників diff --git a/htdocs/langs/uk_UA/exports.lang b/htdocs/langs/uk_UA/exports.lang index cc32eb42fae..281f51bd56a 100644 --- a/htdocs/langs/uk_UA/exports.lang +++ b/htdocs/langs/uk_UA/exports.lang @@ -1,137 +1,140 @@ # 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. -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 +ImportArea=Імпорт +NewExport=Новий експорт +NewImport=Новий імпорт +ExportableDatas=Експортований набір даних +ImportableDatas=Імпортований набір даних +SelectExportDataSet=Виберіть набір даних, який потрібно експортувати... +SelectImportDataSet=Виберіть набір даних, який потрібно імпортувати... +SelectExportFields=Виберіть поля, які потрібно експортувати, або виберіть попередньо визначений профіль експорту +SelectImportFields=Виберіть поля вихідного файлу, які потрібно імпортувати, та їх цільове поле в базі даних, переміщаючи їх вгору та вниз за допомогою прив’язки %s, або виберіть попередньо визначений профіль імпорту: +NotImportedFields=Поля вихідного файлу не імпортовано +SaveExportModel=Збережіть свій вибір як профіль/шаблон експорту (для повторного використання). +SaveImportModel=Збережіть цей профіль імпорту (для повторного використання) ... +ExportModelName=Експортувати назву профілю +ExportModelSaved=Експортувати профіль збережено як %s . +ExportableFields=Експортовані поля +ExportedFields=Експортовані поля +ImportModelName=Імпорт імені профілю +ImportModelSaved=Профіль імпорту збережено як %s . +DatasetToExport=Набір даних для експорту +DatasetToImport=Імпортувати файл у набір даних +ChooseFieldsOrdersAndTitle=Виберіть порядок полів... +FieldsTitle=Назва полів +FieldTitle=Назва поля +NowClickToGenerateToBuildExportFile=Тепер виберіть формат файлу в полі зі списком і натисніть «Згенерувати», щоб створити файл експорту... +AvailableFormats=Доступні формати LibraryShort=Бібліотека -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 -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... -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 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. -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 field number %s in source file. -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. -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 +ExportCsvSeparator=Роздільник символів Csv +ImportCsvSeparator=Роздільник символів Csv +Step=Крок +FormatedImport=Помічник імпорту +FormatedImportDesc1=Цей модуль дозволяє оновлювати наявні дані або додавати нові об’єкти в базу даних з файлу без технічних знань за допомогою помічника. +FormatedImportDesc2=Перший крок – вибрати тип даних, які ви хочете імпортувати, потім формат вихідного файлу, а потім поля, які потрібно імпортувати. +FormatedExport=Експортний помічник +FormatedExportDesc1=Ці інструменти дозволяють експортувати персоналізовані дані за допомогою помічника, щоб допомогти вам у цьому процесі, не вимагаючи технічних знань. +FormatedExportDesc2=Першим кроком є вибір попередньо визначеного набору даних, потім, які поля ви хочете експортувати та в якому порядку. +FormatedExportDesc3=Коли вибрано дані для експорту, ви можете вибрати формат вихідного файлу. +Sheet=лист +NoImportableData=Немає даних, які можна імпортувати (немає модуля з визначеннями, щоб дозволити імпорт даних) +FileSuccessfullyBuilt=Файл створено +SQLUsedForExport=Запит SQL, що використовується для вилучення даних +LineId=Ідентифікатор рядка +LineLabel=Етикетка лінії +LineDescription=Опис лінії +LineUnitPrice=Ціна одиниці лінії +LineVATRate=Ставка ПДВ рядка +LineQty=Кількість для лінії +LineTotalHT=Сума без урахування податок за лінію +LineTotalTTC=Сума з податком за лінію +LineTotalVAT=Розмір ПДВ за лінію +TypeOfLineServiceOrProduct=Тип лінії (0=продукт, 1=послуга) +FileWithDataToImport=Файл із даними для імпорту +FileToImport=Вихідний файл для імпорту +FileMustHaveOneOfFollowingFormat=Файл для імпорту повинен мати один із наведених нижче форматів +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, щоб вибрати його... +ChooseFileToImport=Завантажте файл, а потім натисніть на піктограму %s, щоб вибрати файл як вихідний файл імпорту... +SourceFileFormat=Формат вихідного файлу +FieldsInSourceFile=Поля у вихідному файлі +FieldsInTargetDatabase=Цільові поля в базі даних Dolibarr (жирний = обов'язковий) +Field=Поле +NoFields=Немає полів +MoveField=Перемістити номер стовпця поля %s +ExampleOfImportFile=Приклад_файлу_імпорту +SaveImportProfile=Збережіть цей профіль імпорту +ErrorImportDuplicateProfil=Не вдалося зберегти цей профіль імпорту з такою назвою. Існуючий профіль із цією назвою вже існує. +TablesTarget=Цільові таблиці +FieldsTarget=Цільові поля +FieldTarget=Цільове поле +FieldSource=Поле джерела +NbOfSourceLines=Кількість рядків у вихідному файлі +NowClickToTestTheImport=Переконайтеся, що формат файлу (розмежники полів і рядків) вашого файлу відповідає показаним параметрам і чи ви пропустили рядок заголовка, інакше вони будуть позначені як помилки в наступній симуляції.
    Натисніть кнопку " %s ", щоб запустити перевірку структури/вмісту файлу та імітувати процес імпорту.
    У вашій базі даних не буде змінено жодних даних . +RunSimulateImportFile=Запустіть моделювання імпорту +FieldNeedSource=У цьому полі потрібні дані з вихідного файлу +SomeMandatoryFieldHaveNoSource=Деякі обов'язкові поля не мають джерела з файлу даних +InformationOnSourceFile=Інформація про вихідний файл +InformationOnTargetTables=Інформація про цільові поля +SelectAtLeastOneField=Змініть принаймні одне вихідне поле в стовпці полів для експорту +SelectFormat=Виберіть цей формат файлу імпорту +RunImportFile=Імпорт даних +NowClickToRunTheImport=Перевірте результати моделювання імпорту. Виправте всі помилки та перевірте.
    Коли моделювання не повідомляє про помилки, ви можете перейти до імпорту даних до бази даних. +DataLoadedWithId=Імпортовані дані матимуть додаткове поле в кожній таблиці бази даних із таким ідентифікатором імпорту: %s , щоб можна було знайти їх у разі дослідження проблеми, пов’язаної з цим імпортом. +ErrorMissingMandatoryValue=У вихідному файлі для поля %s обов’язкові дані пусті. +TooMuchErrors=Ще є %s інші рядки джерела з помилками, але вихід був обмежений. +TooMuchWarnings=Ще є %s інші рядки джерела з попередженнями, але вихід був обмежений. +EmptyLine=Порожній рядок (буде відхилено) +CorrectErrorBeforeRunningImport=Ви повинні виправити всі помилки , перш ніж запустити остаточне імпортування. +FileWasImported=Файл було імпортовано з номером %s . +YouCanUseImportIdToFindRecord=Ви можете знайти всі імпортовані записи у вашій базі даних, відфільтрувавши за полем import_key='%s' . +NbOfLinesOK=Кількість рядків без помилок і без попереджень: %s . +NbOfLinesImported=Кількість успішно імпортованих рядків: %s . +DataComeFromNoWhere=Значення для вставки приходить з нізвідки у вихідному файлі. +DataComeFromFileFieldNb=Значення для вставки походить із номера поля %s у вихідному файлі. +DataComeFromIdFoundFromRef=Значення, яке надходить з поля номер %s вихідного файлу, використовуватиметься для пошуку ідентифікатора батьківського об’єкта, який буде використовуватися (тому об’єкт a7f4092 має існувати файл бази даних a7f4092 з джерела даних a7f4092). +DataComeFromIdFoundFromCodeId=Код, який надходить із поля з номером %s вихідного файлу, використовуватиметься для пошуку ідентифікатора батьківського об’єкта для використання (тому код із вихідного файлу має існувати у словнику a0aee8336583ecb a70f9f8365837b). Зауважте, що якщо вам відомий ідентифікатор, ви також можете використовувати його у вихідному файлі замість коду. Імпорт має працювати в обох випадках. +DataIsInsertedInto=Дані, що надходять з вихідного файлу, будуть вставлені в наступне поле: +DataIDSourceIsInsertedInto=Ідентифікатор батьківського об’єкта, який було знайдено за допомогою даних у вихідному файлі, буде вставлено в наступне поле: +DataCodeIDSourceIsInsertedInto=Ідентифікатор батьківського рядка, який було знайдено з коду, буде вставлено в наступне поле: +SourceRequired=Значення даних є обов'язковим +SourceExample=Приклад можливого значення даних +ExampleAnyRefFoundIntoElement=Знайдено будь-яке посилання для елемента %s +ExampleAnyCodeOrIdFoundIntoDictionary=Будь-який код (або ідентифікатор), знайдений у словнику %s +CSVFormatDesc= Значення, розділені комами, формат файлу (.csv).
    Це формат текстового файлу, в якому поля розділені роздільником [ %s ]. Якщо роздільник знайдено всередині вмісту поля, поле округляється круглим символом [ %s ]. Екранний символ для екранування круглого символу: [ %s ]. +Excel95FormatDesc= Excel формат файлу (.xls)
    Це рідний формат Excel 95 (BIFF5). +Excel2007FormatDesc= Excel Формат файлу (.xlsx)
    Це оригінальний формат Excel 2007 (SpreadsheetML). +TsvFormatDesc= Значення, розділене табуляцією Формат файлу (.tsv)
    Це формат текстового файлу, у якому поля розділені табулятором [tab]. +ExportFieldAutomaticallyAdded=Поле %s було додано автоматично. Це дозволить уникнути того, щоб подібні рядки розглядалися як повторювані записи (з доданим цим полем усі рядки матимуть власний ідентифікатор і відрізнятимуться). +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 наступні роки/місяці/дні
    < РРРР, < РРРРММ, < РРРРММДД: фільтри за всі попередні роки/місяці/дні +ExportNumericFilter=NNNNN фільтрує за одним значенням
    NNNNN+NNNNN фільтрує за діапазоном значень
    < NNNNN фільтрує за меншими значеннями
    > NNNNN фільтрує за вищими значеннями +ImportFromLine=Імпортувати, починаючи з номера рядка +EndAtLineNb=Закінчення на номері рядка +ImportFromToLine=Граничний діапазон (Від - До). напр. щоб опустити рядки заголовка. +SetThisValueTo2ToExcludeFirstLine=Наприклад, встановіть для цього значення 3, щоб виключити 2 перші рядки.
    Якщо рядки заголовка НЕ пропущені, це призведе до множинних помилок під час моделювання імпорту. +KeepEmptyToGoToEndOfFile=Залиште це поле порожнім, щоб обробити всі рядки до кінця файлу. +SelectPrimaryColumnsForUpdateAttempt=Виберіть стовпець(и) для використання як первинного ключа для імпорту UPDATE +UpdateNotYetSupportedForThisImport=Оновлення не підтримується для цього типу імпорту (лише вставити) +NoUpdateAttempt=Спроба оновлення не зроблена, лише вставлення +ImportDataset_user_1=Користувачі (працівники чи ні) та властивості ComputedField=Обчислюване поле ## 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 +SelectFilterFields=Якщо ви хочете відфільтрувати деякі значення, просто введіть значення тут. +FilteredFields=Відфільтровані поля +FilteredFieldsValues=Значення для фільтра +FormatControlRule=Правило керування форматом ## 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=Ключ (стовпець) для використання для оновлення наявних даних +NbInsert=Кількість вставлених рядків: %s +NbUpdate=Кількість оновлених рядків: %s +MultipleRecordFoundWithTheseFilters=За допомогою цих фільтрів знайдено кілька записів: %s +StocksWithBatch=Запаси та місцезнаходження (склад) продукції з номером партії/серії +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: diff --git a/htdocs/langs/uk_UA/externalsite.lang b/htdocs/langs/uk_UA/externalsite.lang deleted file mode 100644 index 452100c65b3..00000000000 --- a/htdocs/langs/uk_UA/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/uk_UA/ftp.lang b/htdocs/langs/uk_UA/ftp.lang deleted file mode 100644 index 8ecb0c55cad..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 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/uk_UA/help.lang b/htdocs/langs/uk_UA/help.lang index a8b8c20e8d0..82662d31adf 100644 --- a/htdocs/langs/uk_UA/help.lang +++ b/htdocs/langs/uk_UA/help.lang @@ -1,23 +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 +CommunitySupport=Підтримка форуму/вікі +EMailSupport=Підтримка електронної пошти +RemoteControlSupport=Онлайн-підтримка в режимі реального часу / віддалена +OtherSupport=Інша підтримка +ToSeeListOfAvailableRessources=Щоб зв’язатися/переглянути доступні ресурси: +HelpCenter=Центр допомоги +DolibarrHelpCenter=Центр довідки та підтримки Dolibarr +ToGoBackToDolibarr=В іншому випадку натисніть тут, щоб продовжити використовувати Dolibarr . +TypeOfSupport=Тип опори +TypeSupportCommunauty=Спільнота (безкоштовно) +TypeSupportCommercial=Комерційний TypeOfHelp=Тип -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 +NeedHelpCenter=Потрібна допомога чи підтримка? +Efficiency=Ефективність +TypeHelpOnly=Тільки допомога +TypeHelpDev=Допомога+Розвиток +TypeHelpDevForm=Допомога+Розвиток+Навчання +BackToHelpCenter=В іншому випадку поверніться на домашню сторінку довідкового центру . +LinkToGoldMember=Ви можете зателефонувати до одного з тренерів, попередньо обраних Dolibarr для вашої мови (%s), натиснувши їх віджет (статус і максимальна ціна оновлюються автоматично): +PossibleLanguages=Підтримувані мови +SubscribeToFoundation=Допоможіть проекту Dolibarr, підпишіться на фонд +SeeOfficalSupport=Для офіційної підтримки Dolibarr вашою мовою:
    %s a09a4b739f17f8 diff --git a/htdocs/langs/uk_UA/holiday.lang b/htdocs/langs/uk_UA/holiday.lang index 33b266ce272..94a4245e689 100644 --- a/htdocs/langs/uk_UA/holiday.lang +++ b/htdocs/langs/uk_UA/holiday.lang @@ -1,139 +1,139 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leave -CPTitreMenu=Leave -MenuReportMonth=Monthly statement -MenuAddCP=New leave request -NotActiveModCP=You must enable the module Leave to view this page. -AddCP=Make a leave request -DateDebCP=Start date -DateFinCP=End date +Holidays=Залишати +CPTitreMenu=Залишати +MenuReportMonth=Щомісячна виписка +MenuAddCP=Нова заява на відпустку +NotActiveModCP=Ви повинні ввімкнути модуль Залишити, щоб переглянути цю сторінку. +AddCP=Подайте заявку на відпустку +DateDebCP=Дата початку +DateFinCP=Дата закінчення DraftCP=Проект -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 +ToReviewCP=Очікує Схвалення +ApprovedCP=Затверджено +CancelCP=Скасовано +RefuseCP=Відмовився +ValidatorCP=Затверджувач +ListeCP=Список відпусток +Leave=Залиште заявку +LeaveId=Залишити ідентифікатор +ReviewedByCP=Буде затверджено +UserID=ідентифікатор користувача +UserForApprovalID=Ідентифікатор користувача для затвердження +UserForApprovalFirstname=Ім’я користувача, що схвалює +UserForApprovalLastname=Прізвище користувача схвалення +UserForApprovalLogin=Вхід користувача затвердження +DescCP=Опис +SendRequestCP=Створити заявку на відпустку +DelayToRequestCP=Запити на відпустку мають бути подані принаймні %s день(ів) до них. +MenuConfCP=Залишок відпустки +SoldeCPUser=Залишити залишок (у днях) %s +ErrorEndDateCP=Ви повинні вибрати дату завершення, більшу за дату початку. +ErrorSQLCreateCP=Під час створення сталася помилка SQL: +ErrorIDFicheCP=Сталася помилка, запит на відпустку не існує. +ReturnCP=Повернутися до попередньої сторінки +ErrorUserViewCP=Ви не маєте права читати цей запит на відпустку. +InfosWorkflowCP=Інформаційний процес +RequestByCP=З проханням +TitreRequestCP=Залишити заявку +TypeOfLeaveId=Тип відпустки ID +TypeOfLeaveCode=Тип коду відпустки +TypeOfLeaveLabel=Тип етикетки відпустки +NbUseDaysCP=Кількість використаних днів відпустки +NbUseDaysCPHelp=У розрахунку враховуються неробочі та святкові дні, визначені у словнику. +NbUseDaysCPShort=Дні відпустки +NbUseDaysCPShortInMonth=Дні відпустки в місяці +DayIsANonWorkingDay=%s – неробочий день +DateStartInMonth=Дата початку в місяці +DateEndInMonth=Дата закінчення в місяці +EditCP=Редагувати +DeleteCP=Видалити +ActionRefuseCP=Відмовитися +ActionCancelCP=Скасувати +StatutCP=Статус +TitleDeleteCP=Видалити заяву на відпустку +ConfirmDeleteCP=Підтвердити видалення цього запиту на відпустку? +ErrorCantDeleteCP=Помилка, ви не маєте права видалити цей запит на відпустку. +CantCreateCP=Ви не маєте права подавати заяву на відпустку. +InvalidValidatorCP=Ви повинні вибрати затверджувача для вашого запиту на відпустку. +NoDateDebut=Ви повинні вибрати дату початку. +NoDateFin=Ви повинні вибрати дату завершення. +ErrorDureeCP=Ваша заява на відпустку не містить робочого дня. +TitleValidCP=Затвердити заяву на відпустку +ConfirmValidCP=Ви впевнені, що хочете схвалити запит на відпустку? +DateValidCP=Дата затвердження +TitleToValidCP=Відправити заявку на відпустку +ConfirmToValidCP=Ви впевнені, що хочете надіслати запит на відпустку? +TitleRefuseCP=Відмовити у проханні відпустки +ConfirmRefuseCP=Ви впевнені, що хочете відхилити запит на відпустку? +NoMotifRefuseCP=Ви повинні вибрати причину для відмови у запиті. +TitleCancelCP=Скасувати заяву про відпустку +ConfirmCancelCP=Ви впевнені, що хочете скасувати запит на відпустку? +DetailRefusCP=Причина відмови +DateRefusCP=Дата відмови +DateCancelCP=Дата скасування +DefineEventUserCP=Призначте виняткову відпустку для користувача +addEventToUserCP=Призначити відпустку +NotTheAssignedApprover=Ви не є призначеним затверджувачем MotifCP=Підстава -UserCP=User -ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. -AddEventToUserOkCP=The addition of the exceptional leave has been completed. -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. -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 +UserCP=Користувач +ErrorAddEventToUserCP=Під час додавання виняткової відпустки сталася помилка. +AddEventToUserOkCP=Додавання виняткової відпустки завершено. +MenuLogCP=Переглянути журнали змін +LogCP=Журнал усіх оновлень, внесених до "Балансу відпусток" +ActionByCP=Оновлено +UserUpdateCP=Оновлено для +PrevSoldeCP=Попередній баланс +NewSoldeCP=Новий баланс +alreadyCPexist=Запит на відпустку на цей період вже подано. +FirstDayOfHoliday=Запит на початок відпустки +LastDayOfHoliday=День закінчення заяви на відпустку +BoxTitleLastLeaveRequests=Останні %s змінені запити на відпустку +HolidaysMonthlyUpdate=Щомісячне оновлення +ManualUpdate=Оновлення вручну +HolidaysCancelation=Залишити запит на скасування +EmployeeLastname=Прізвище працівника +EmployeeFirstname=Прізвище працівника +TypeWasDisabledOrRemoved=Тип відпустки (id %s) вимкнено або видалено +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 -UpdateConfCPOK=Updated successfully. -Module27130Name= Management of leave requests -Module27130Desc= Management of leave requests -ErrorMailNotSend=An error occurred while sending email: +LastUpdateCP=Останнє автоматичне оновлення розподілу відпусток +MonthOfLastMonthlyUpdate=Місяць останнього автоматичного оновлення розподілу відпусток +UpdateConfCPOK=Оновлено успішно. +Module27130Name= Ведення заяв на відпустку +Module27130Desc= Ведення заяв на відпустку +ErrorMailNotSend=Під час надсилання електронної пошти сталася помилка: NoticePeriod=Період повідомлення #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 +HolidaysToValidate=Підтвердити заявки на відпустку +HolidaysToValidateBody=Нижче наведено запит на відпустку для підтвердження +HolidaysToValidateDelay=Цей запит на відпустку буде надано протягом менше ніж %s днів. +HolidaysToValidateAlertSolde=Користувач, який подав цей запит на відпустку, не має достатньо доступних днів. +HolidaysValidated=Заявки на відпустку підтверджені +HolidaysValidatedBody=Ваш запит на відпустку для %s до %s підтверджено. +HolidaysRefused=Запит відхилено +HolidaysRefusedBody=Ваш запит на відпустку для %s до %s було відхилено з такої причини: +HolidaysCanceled=Залишений запит скасовано +HolidaysCanceledBody=Ваш запит на відпустку для %s до %s скасовано. +FollowedByACounter=1: За цим типом відпустки має бути лічильник. Лічильник збільшується вручну або автоматично, а коли запит на відпустку перевіряється, лічильник зменшується.
    0: Не слід лічильник. +NoLeaveWithCounterDefined=Немає визначених типів відпусток, за якими має слідувати лічильник +GoIntoDictionaryHolidayTypes=Перейдіть до Домашня сторінка - Налаштування - Словники - Тип відпустки , щоб налаштувати різні типи листків. +HolidaySetup=Налаштування модуля Залишити +HolidaysNumberingModules=Моделі нумерації заяв на відпустку +TemplatePDFHolidays=Шаблон заяв на відпустку pdf +FreeLegalTextOnHolidays=Безкоштовний текст у pdf +WatermarkOnDraftHolidayCards=Водяні знаки на запитах про відпустку на призов +HolidaysToApprove=Святкові дні для затвердження +NobodyHasPermissionToValidateHolidays=Ніхто не має дозволу на підтвердження відпусток +HolidayBalanceMonthlyUpdate=Щомісячне оновлення балансу відпусток +XIsAUsualNonWorkingDay=%s, як правило, неробочий день +BlockHolidayIfNegative=Блокувати, якщо баланс негативний +LeaveRequestCreationBlockedBecauseBalanceIsNegative=Створення цього запиту на відпустку заблоковано, оскільки ваш баланс негативний +ErrorLeaveRequestMustBeDraftCanceledOrRefusedToBeDeleted=Запит на залишення %s має бути чернетковий, скасований або відмовлено у видаленні diff --git a/htdocs/langs/uk_UA/hrm.lang b/htdocs/langs/uk_UA/hrm.lang index 9890d3c6baf..9175e5488ca 100644 --- a/htdocs/langs/uk_UA/hrm.lang +++ b/htdocs/langs/uk_UA/hrm.lang @@ -2,80 +2,90 @@ # 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=Надіслати електронну пошту, щоб запобігти зовнішнім службам HRM +Establishments=Заклади +Establishment=Заснування +NewEstablishment=Новий заклад +DeleteEstablishment=Видалити заклад +ConfirmDeleteEstablishment=Ви впевнені, що хочете видалити цей заклад? +OpenEtablishment=Відкритий заклад +CloseEtablishment=Закритий заклад # Dictionary -DictionaryPublicHolidays=Leave - Public holidays -DictionaryDepartment=HRM - Department list -DictionaryFunction=HRM - Job positions +DictionaryPublicHolidays=Відпустка - державні свята +DictionaryDepartment=HRM - Organizational Unit +DictionaryFunction=HRM - Посади # Module -Employees=Employees -Employee=Employee -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 -deplacement=Shift -DateEval=Evaluation date -JobCard=Job card -Job=Job -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=Позиція -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 -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 -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 +Employees=Співробітники +Employee=Співробітник +NewEmployee=Новий співробітник +ListOfEmployees=Список працівників +HrmSetup=Налаштування модуля HRM +SkillsManagement=Управління навичками +HRM_MAXRANK=Максимальна кількість рівнів для ранжування навику +HRM_DEFAULT_SKILL_DESCRIPTION=Опис звань за замовчуванням під час створення навику +deplacement=Зміна +DateEval=Дата оцінки +JobCard=Картка роботи +JobPosition=Робота +JobsPosition=Робота +NewSkill=Нова навичка +SkillType=Тип навику +Skilldets=Список звань для цієї навички +Skilldet=Рівень майстерності +rank=Ранг +ErrNoSkillSelected=Навичку не вибрано +ErrSkillAlreadyAdded=Ця навичка вже є в списку +SkillHasNoLines=Цей навик не має ліній +skill=майстерність +Skills=Навички +SkillCard=Карта навичок +EmployeeSkillsUpdated=Оновлено навички співробітників (див. вкладку «Навички» картки співробітника) +Eval=Оцінка +Evals=Оцінки +NewEval=Нова оцінка +ValidateEvaluation=Підтвердити оцінку +ConfirmValidateEvaluation=Ви впевнені, що хочете підтвердити цю оцінку за посиланням %s ? +EvaluationCard=Оціночна картка +RequiredRank=Необхідний ранг для цієї роботи +EmployeeRank=Ранг співробітника за цю навичку +EmployeePosition=Посада співробітника +EmployeePositions=Посади співробітників +EmployeesInThisPosition=Співробітники на цій посаді +group1ToCompare=Група користувачів для аналізу +group2ToCompare=Друга група користувачів для порівняння +OrJobToCompare=Порівняйте з вимогами до професійних навичок +difference=Різниця +CompetenceAcquiredByOneOrMore=Компетенція, отримана одним або кількома користувачами, але не запитувана другим компаратором +MaxlevelGreaterThan=Максимальний рівень, більший за запитаний +MaxLevelEqualTo=Максимальний рівень, що відповідає цій потребі +MaxLevelLowerThan=Максимальний рівень нижчий за цей попит +MaxlevelGreaterThanShort=Рівень співробітника вище, ніж запитуваний +MaxLevelEqualToShort=Рівень працівників відповідає цьому попиту +MaxLevelLowerThanShort=Рівень співробітників нижчий за цей попит +SkillNotAcquired=Навички набувають не всі користувачі та запитують другий компаратор +legend=Легенда +TypeSkill=Тип навику +AddSkill=Додайте навички до роботи +RequiredSkills=Необхідні навички для цієї роботи +UserRank=Ранг користувача +SkillList=Список навичок +SaveRank=Збережіть звання +TypeKnowHow=Know how +TypeHowToBe=How to be +TypeKnowledge=Knowledge +AbandonmentComment=Коментар про відмову +DateLastEval=Дата останньої оцінки +NoEval=Оцінка цього працівника не проводилася +HowManyUserWithThisMaxNote=Кількість користувачів з цим рангом +HighestRank=Найвищий ранг +SkillComparison=Порівняння навичок +ActionsOnJob=Події на цій роботі +VacantPosition=вакансія +VacantCheckboxHelper=Якщо вибрати цей параметр, відображатимуться незаповнені позиції (вакансія) +SaveAddSkill = Навички додані +SaveLevelSkill = Рівень навичок(ів) збережено +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 989f6aa9793..de4b97ac2a8 100644 --- a/htdocs/langs/uk_UA/install.lang +++ b/htdocs/langs/uk_UA/install.lang @@ -1,219 +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. -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. -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=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 is required. -ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. -ErrorDatabaseAlreadyExists=Database '%s' already exists. -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 +InstallEasy=Просто дотримуйтесь інструкцій крок за кроком. +MiscellaneousChecks=Перевірка передумов +ConfFileExists=Файл конфігурації %s існує. +ConfFileDoesNotExistsAndCouldNotBeCreated=Файл конфігурації %s не існує і не може бути створений! +ConfFileCouldBeCreated=Можна створити файл конфігурації %s . +ConfFileIsNotWritable=Файл конфігурації %s недоступний для запису. Перевірте дозволи. Для першої інсталяції ваш веб-сервер повинен мати можливість запису в цей файл під час процесу конфігурації ("chmod 666", наприклад, у ОС Unix, як-от). +ConfFileIsWritable=Файл конфігурації %s доступний для запису. +ConfFileMustBeAFileNotADir=Файл конфігурації %s має бути файлом, а не каталогом. +ConfFileReload=Перезавантаження параметрів з конфігураційного файлу. +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 підтримує сеанси. +PHPSupport=Цей PHP підтримує функції %s. +PHPMemoryOK=Максимальна пам’ять сеансу PHP встановлена на %s . Цього має бути достатньо. +PHPMemoryTooLow=Максимальна пам’ять сеансу PHP встановлена на %s байт. Це занадто низько. Змініть свій php.ini , щоб установити параметр memory_limit принаймні на a0aee83365837f8z07f0837f2f78f07f08f7b7f08f7f2f7f7f7f17f87 +Recheck=Натисніть тут для більш детального тесту +ErrorPHPDoesNotSupportSessions=Ваша інсталяція PHP не підтримує сеанси. Ця функція потрібна для роботи Dolibarr. Перевірте налаштування PHP та дозволи до каталогу сесій. +ErrorPHPDoesNotSupport=Ваша інсталяція PHP не підтримує функції %s. +ErrorDirDoesNotExists=Каталог %s не існує. +ErrorGoBackAndCorrectParameters=Поверніться назад і перевірте/виправте параметри. +ErrorWrongValueForParameter=Можливо, ви ввели неправильне значення для параметра '%s'. +ErrorFailedToCreateDatabase=Не вдалося створити базу даних "%s". +ErrorFailedToConnectToDatabase=Не вдалося підключитися до бази даних "%s". +ErrorDatabaseVersionTooLow=Версія бази даних (%s) застаріла. Потрібна версія %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. +PHPVersion=Версія PHP +License=Використання ліцензії +ConfigurationFile=Конфігураційний файл +WebPagesDirectory=Каталог, де зберігаються веб-сторінки +DocumentsDirectory=Каталог для зберігання завантажених і згенерованих документів +URLRoot=Корінь URL-адреси +ForceHttps=Примусово безпечні з’єднання (https) +CheckToForceHttps=Установіть цей параметр, щоб встановити безпечні з’єднання (https).
    Це вимагає, щоб веб-сервер був налаштований із сертифікатом SSL. +DolibarrDatabase=База даних Dolibarr +DatabaseType=Тип бази даних +DriverType=Тип драйвера +Server=Сервер +ServerAddressDescription=Ім'я або IP-адреса сервера бази даних. Зазвичай «localhost», коли сервер бази даних розміщено на тому ж сервері, що й веб-сервер. +ServerPortDescription=Порт сервера бази даних. Залиште порожнім, якщо невідомо. +DatabaseServer=Сервер бази даних +DatabaseName=Ім'я бази даних +DatabasePrefix=Префікс таблиці бази даних +DatabasePrefixDescription=Префікс таблиці бази даних. Якщо порожній, за замовчуванням llx_. +AdminLogin=Обліковий запис користувача для власника бази даних Dolibarr. +PasswordAgain=Повторно введіть підтвердження пароля +AdminPassword=Пароль для власника бази даних Dolibarr. +CreateDatabase=Створити базу даних +CreateUser=Створіть обліковий запис користувача або надайте дозвіл облікового запису користувача на базу даних Dolibarr +DatabaseSuperUserAccess=Сервер бази даних - доступ суперкористувача +CheckToCreateDatabase=Поставте прапорець, якщо база даних ще не існує, тому її потрібно створити.
    У цьому випадку ви також повинні ввести ім'я користувача та пароль для облікового запису суперкористувача внизу цієї сторінки. +CheckToCreateUser=Установіть прапорець, якщо:
    обліковий запис користувача бази даних ще не існує, і тому його потрібно створити, або
    , якщо обліковий запис користувача існує, але база даних не існує, і потрібно надати дозволи.
    У цьому випадку ви повинні ввести обліковий запис користувача та пароль, а також також ім’я та пароль облікового запису суперкористувача внизу цієї сторінки. Якщо цей прапорець знятий, власник бази даних і пароль вже мають існувати. +DatabaseRootLoginDescription=Ім'я облікового запису суперкористувача (для створення нових баз даних або нових користувачів), обов'язкове, якщо база даних або її власник ще не існує. +KeepEmptyIfNoPassword=Залиште пустим, якщо суперкористувач не має пароля (НЕ рекомендується) +SaveConfigurationFile=Збереження параметрів до +ServerConnection=Підключення до сервера +DatabaseCreation=Створення бази даних +CreateDatabaseObjects=Створення об'єктів бази даних +ReferenceDataLoading=Завантаження довідкових даних +TablesAndPrimaryKeysCreation=Створення таблиць і первинних ключів +CreateTableAndPrimaryKey=Створіть таблицю %s +CreateOtherKeysForTable=Створіть зовнішні ключі та індекси для таблиці %s +OtherKeysCreation=Створення зовнішніх ключів та індексів +FunctionsCreation=Створення функцій +AdminAccountCreation=Створення логіну адміністратора +PleaseTypePassword=Будь ласка, введіть пароль, порожні паролі заборонені! +PleaseTypeALogin=Будь ласка, введіть логін! +PasswordsMismatch=Паролі відрізняються, спробуйте ще раз! +SetupEnd=Кінець налаштування +SystemIsInstalled=Ця установка завершена. +SystemIsUpgraded=Dolibarr успішно оновлено. +YouNeedToPersonalizeSetup=Вам потрібно налаштувати Dolibarr відповідно до ваших потреб (зовнішній вигляд, функції, ...). Для цього перейдіть за посиланням нижче: +AdminLoginCreatedSuccessfuly=Вхід адміністратора Dolibarr ' %s ' створено успішно. +GoToDolibarr=Ідіть до Долібарра +GoToSetupArea=Перейдіть до Dolibarr (область налаштування) +MigrationNotFinished=Версія бази даних не повністю оновлена: запустіть процес оновлення ще раз. +GoToUpgradePage=Знову перейдіть на сторінку оновлення +WithNoSlashAtTheEnd=Без косої риски «/» в кінці +DirectoryRecommendation= ВАЖЛИВО : Ви повинні використовувати каталог, який знаходиться за межами веб-сторінок (тому не використовуйте підкаталог попереднього параметра). +LoginAlreadyExists=Вже існує +DolibarrAdminLogin=Вхід адміністратора Dolibarr +AdminLoginAlreadyExists=Обліковий запис адміністратора Dolibarr ' %s ' вже існує. Поверніться, якщо хочете створити ще один. +FailedToCreateAdminLogin=Не вдалося створити обліковий запис адміністратора Dolibarr. +WarningRemoveInstallDir=Попередження, з міркувань безпеки після завершення встановлення або оновлення вам слід додати файл під назвою install.lock до каталогу документів Dolibarr, щоб знову запобігти випадковому/зловмисному використанню інструментів встановлення. +FunctionNotAvailableInThisPHP=Недоступно в цьому PHP +ChoosedMigrateScript=Виберіть скрипт міграції +DataMigration=Міграція бази даних (дані) +DatabaseMigration=Міграція бази даних (структура + деякі дані) +ProcessMigrateScript=Обробка сценарію +ChooseYourSetupMode=Виберіть режим налаштування та натисніть «Пуск»... +FreshInstall=Свіжа установка +FreshInstallDesc=Використовуйте цей режим, якщо це ваша перша інсталяція. Якщо ні, цей режим може виправити неповну попередню інсталяцію. Якщо ви хочете оновити свою версію, виберіть режим «Оновити». +Upgrade=Оновлення +UpgradeDesc=Використовуйте цей режим, якщо ви замінили старі файли Dolibarr файлами з новішої версії. Це оновить вашу базу даних і дані. +Start=Почніть +InstallNotAllowed=Налаштування заборонено дозволами conf.php +YouMustCreateWithPermission=Ви повинні створити файл %s і встановити для нього дозволи на запис для веб-сервера під час процесу встановлення. +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=Помилка підключення до бази даних: параметри хоста або суперкористувача мають бути неправильними. +OrphelinsPaymentsDetectedByMethod=Виплата для дітей-сиріт виявлена методом %s +RemoveItManuallyAndPressF5ToContinue=Видаліть його вручну та натисніть F5, щоб продовжити. +FieldRenamed=Поле перейменовано +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=Рекомендований вибір для встановлення версії %s з поточної версії %s a09a4b73z +InstallChoiceSuggested= Вибір встановлення, запропонований інсталятором . +MigrateIsDoneStepByStep=Цільова версія (%s) має розрив у кілька версій. Майстер встановлення повернеться, щоб запропонувати подальшу міграцію після завершення цієї міграції. +CheckThatDatabasenameIsCorrect=Перевірте правильність імені бази даних « %s ». +IfAlreadyExistsCheckOption=Якщо це ім’я правильне, і ця база даних ще не існує, ви повинні поставити прапорець «Створити базу даних». +OpenBaseDir=Параметр PHP openbasedir +YouAskToCreateDatabaseSoRootRequired=Ви поставили прапорець «Створити базу даних». Для цього вам потрібно вказати логін/пароль суперкористувача (унизу форми). +YouAskToCreateDatabaseUserSoRootRequired=Ви поставили прапорець «Створити власника бази даних». Для цього вам потрібно вказати логін/пароль суперкористувача (унизу форми). +NextStepMightLastALongTime=Поточний крок може зайняти кілька хвилин. Будь ласка, зачекайте, поки наступний екран не відобразиться повністю, перш ніж продовжити. +MigrationCustomerOrderShipping=Перенесіть доставку для зберігання замовлень на продаж +MigrationShippingDelivery=Оновлення сховища доставки +MigrationShippingDelivery2=Оновити сховище доставки 2 +MigrationFinished=Міграція завершена +LastStepDesc= Останній крок : Визначте тут логін та пароль, які ви хочете використовувати для підключення до Dolibarr. Не втрачайте це, оскільки це головний обліковий запис для адміністрування всіх інших/додаткових облікових записів користувачів. +ActivateModule=Активувати модуль %s +ShowEditTechnicalParameters=Натисніть тут, щоб показати/редагувати розширені параметри (експертний режим) +WarningUpgrade=УВАГА:\nВи спочатку запустили резервне копіювання бази даних?\nЦе дуже рекомендується. Втрата даних (наприклад, через помилки в mysql версії 5.5.40/41/42/43) може бути можлива під час цього процесу, тому важливо зробити повний дамп вашої бази даних перед початком будь-якої міграції.\n\nНатисніть OK, щоб почати процес міграції... +ErrorDatabaseVersionForbiddenForMigration=Версія вашої бази даних: %s. У ньому є критична помилка, через яку втрата даних можлива, якщо ви вносите структурні зміни в базу даних, як це вимагає процес міграції. З його причини міграція не буде дозволена, доки ви не оновите свою базу даних до версії рівня (виправленої) (список відомих версій з помилками: %s) +KeepDefaultValuesWamp=Ви використовували майстер налаштування Dolibarr від DoliWamp, тому запропоновані тут значення вже оптимізовані. Змінюйте їх, тільки якщо знаєте, що робите. +KeepDefaultValuesDeb=Ви використовували майстер налаштування Dolibarr з пакета Linux (Ubuntu, Debian, Fedora...), тому запропоновані тут значення вже оптимізовані. Необхідно ввести лише пароль власника бази даних, яку потрібно створити. Змінюйте інші параметри, тільки якщо знаєте, що робите. +KeepDefaultValuesMamp=Ви використовували майстер налаштування Dolibarr від DoliMamp, тому запропоновані тут значення вже оптимізовані. Змінюйте їх, тільки якщо знаєте, що робите. +KeepDefaultValuesProxmox=Ви використовували майстер налаштування Dolibarr з віртуального пристрою Proxmox, тому запропоновані тут значення вже оптимізовані. Змінюйте їх, тільки якщо знаєте, що робите. +UpgradeExternalModule=Запустіть спеціальний процес оновлення зовнішнього модуля +SetAtLeastOneOptionAsUrlParameter=Встановіть принаймні один параметр як параметр в URL-адресі. Наприклад: '...repair.php?standard=confirmed' +NothingToDelete=Чистити/видаляти нічого +NothingToDo=Нічого робити ######### # 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 +MigrationFixData=Виправлення для денормалізованих даних +MigrationOrder=Міграція даних для замовлень клієнтів +MigrationSupplierOrder=Міграція даних для замовлень постачальників +MigrationProposal=Міграція даних для комерційних пропозицій +MigrationInvoice=Міграція даних для рахунків клієнта +MigrationContract=Міграція даних для контрактів +MigrationSuccessfullUpdate=Оновлення успішно +MigrationUpdateFailed=Помилка процесу оновлення +MigrationRelationshipTables=Міграція даних для таблиць відносин (%s) +MigrationPaymentsUpdate=Виправлення платіжних даних +MigrationPaymentsNumberToUpdate=%s платежі для оновлення +MigrationProcessPaymentUpdate=Оновити платіж(и) %s +MigrationPaymentsNothingToUpdate=Більше нічого робити +MigrationPaymentsNothingUpdatable=Більше жодних платежів, які можна виправити +MigrationContractsUpdate=Виправлення даних договору +MigrationContractsNumberToUpdate=%s контракт(и) для оновлення +MigrationContractsLineCreation=Створіть рядок контракту для контракту ref %s +MigrationContractsNothingToUpdate=Більше нічого робити +MigrationContractsFieldDontExist=Поле fk_facture більше не існує. Нічого робити. +MigrationContractsEmptyDatesUpdate=Виправлення дати порожнього договору +MigrationContractsEmptyDatesUpdateSuccess=Виправлення дати порожнього контракту успішно виконано +MigrationContractsEmptyDatesNothingToUpdate=Немає порожньої дати контракту для виправлення +MigrationContractsEmptyCreationDatesNothingToUpdate=Немає дати створення договору для виправлення +MigrationContractsInvalidDatesUpdate=Неправильне виправлення договору дати валютування +MigrationContractsInvalidDateFix=Правильний договір %s (Дата контракту=%s, дата початку обслуговування min=%s) +MigrationContractsInvalidDatesNumber=%s Контракти змінено +MigrationContractsInvalidDatesNothingToUpdate=Немає дати з поганим значенням для виправлення +MigrationContractsIncoherentCreationDateUpdate=Виправлення дати створення контракту з поганою вартістю +MigrationContractsIncoherentCreationDateUpdateSuccess=Виправлено дату створення контракту з поганою вартістю +MigrationContractsIncoherentCreationDateNothingToUpdate=Немає поганого значення для дати створення контракту для виправлення +MigrationReopeningContracts=Відкритий договір закритий помилково +MigrationReopenThisContract=Повторно відкрити контракт %s +MigrationReopenedContractsNumber=%s Контракти змінено +MigrationReopeningContractsNothingToUpdate=Немає закритого контракту для відкриття +MigrationBankTransfertsUpdate=Оновіть зв’язки між банківським введенням і банківським переказом +MigrationBankTransfertsNothingToUpdate=Усі посилання оновлені +MigrationShipmentOrderMatching=Оновлення квитанції про відправлення +MigrationDeliveryOrderMatching=Оновлення квитанції про доставку +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 +MigrationRemiseExceptEntity=Оновити значення поля сутності llx_societe_remise_except +MigrationUserRightsEntity=Оновити значення поля сутності llx_user_rights +MigrationUserGroupRightsEntity=Оновити значення поля сутності llx_usergroup_rights +MigrationUserPhotoPath=Міграція фотошляхів для користувачів +MigrationFieldsSocialNetworks=Міграція полів користувачів соціальних мереж (%s) +MigrationReloadModule=Перезавантажте модуль %s +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/uk_UA/interventions.lang b/htdocs/langs/uk_UA/interventions.lang index 7d76e4cda2e..575d5f9f108 100644 --- a/htdocs/langs/uk_UA/interventions.lang +++ b/htdocs/langs/uk_UA/interventions.lang @@ -1,68 +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" +Intervention=Втручання +Interventions=Втручання +InterventionCard=Інтервенційна карта +NewIntervention=Нове втручання +AddIntervention=Створіть втручання +ChangeIntoRepeatableIntervention=Перейдіть на повторюване втручання +ListOfInterventions=Список втручань +ActionsOnFicheInter=Дії щодо втручання +LastInterventions=Останні втручання %s +AllInterventions=Усі втручання +CreateDraftIntervention=Створити чернетку +InterventionContact=Контакт для втручання +DeleteIntervention=Видалити втручання +ValidateIntervention=Підтвердити втручання +ModifyIntervention=Змінити втручання +DeleteInterventionLine=Видалити лінію втручання +ConfirmDeleteIntervention=Ви впевнені, що хочете видалити це втручання? +ConfirmValidateIntervention=Ви впевнені, що хочете підтвердити це втручання під іменем %s ? +ConfirmModifyIntervention=Ви впевнені, що хочете змінити це втручання? +ConfirmDeleteInterventionLine=Ви впевнені, що хочете видалити цю лінію втручання? +ConfirmCloneIntervention=Ви впевнені, що хочете клонувати це втручання? +NameAndSignatureOfInternalContact=Прізвище та підпис особи, яка втрутилася: +NameAndSignatureOfExternalContact=Ім'я та підпис замовника: +DocumentModelStandard=Стандартна модель документа для втручань +InterventionCardsAndInterventionLines=Втручання та лінії втручань +InterventionClassifyBilled=Класифікувати "Оплачено" +InterventionClassifyUnBilled=Класифікувати "Не оплачено" +InterventionClassifyDone=Класифікувати "Готово" StatusInterInvoiced=Виставлений -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 +SendInterventionRef=Подання про втручання %s +SendInterventionByMail=Надішліть втручання електронною поштою +InterventionCreatedInDolibarr=Створено втручання %s +InterventionValidatedInDolibarr=Втручання %s підтверджено +InterventionModifiedInDolibarr=Втручання %s змінено +InterventionClassifiedBilledInDolibarr=Втручання %s встановлено як оплачене +InterventionClassifiedUnbilledInDolibarr=Втручання %s встановлено як не оплачене +InterventionSentByEMail=Втручання %s надіслано електронною поштою +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 у home-setup-other, щоб включити їх. +InterId=Ідентифікатор втручання +InterRef=Втручання ref. +InterDateCreation=Втручання щодо створення дати +InterDuration=Тривалість втручання +InterStatus=Статусне втручання +InterNote=Зверніть увагу на втручання +InterLine=Лінія втручання +InterLineId=Ідентифікатор лінії +InterLineDate=Втручання дати рядка +InterLineDuration=Втручання тривалості лінії +InterLineDesc=Втручання в опис лінії +RepeatableIntervention=Шаблон втручання +ToCreateAPredefinedIntervention=Щоб створити попередньо визначене або повторюване втручання, створіть загальне втручання та перетворіть його на шаблон втручання +ConfirmReopenIntervention=Ви впевнені, що хочете знову відкрити інтервенцію %s ? +GenerateInter=Створення втручання +FichinterNoContractLinked=Втручання %s створено без пов’язаного контракту. +ErrorFicheinterCompanyDoesNotExist=Компанія не існує. Втручання не створено. diff --git a/htdocs/langs/uk_UA/intracommreport.lang b/htdocs/langs/uk_UA/intracommreport.lang index 3060300b974..e322d8678f9 100644 --- a/htdocs/langs/uk_UA/intracommreport.lang +++ b/htdocs/langs/uk_UA/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 звіт +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_EXPEDITION=Niveau d'obligation sur les expéditions -INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port" +INTRACOMMREPORT_CATEG_FRAISDEPORT=Категорія послуг типу "Frais de port" -INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant +INTRACOMMREPORT_NUM_DECLARATION=Numéro de declarant # Menu -MenuIntracommReport=Intracomm report -MenuIntracommReportNew=New declaration -MenuIntracommReportList=List +MenuIntracommReport=Intracomm звіт +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/uk_UA/knowledgemanagement.lang b/htdocs/langs/uk_UA/knowledgemanagement.lang index e838c2d1c83..c37fbd261da 100644 --- a/htdocs/langs/uk_UA/knowledgemanagement.lang +++ b/htdocs/langs/uk_UA/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) або Help-Desk # # Admin page # -KnowledgeManagementSetup = Knowledge Management System setup +KnowledgeManagementSetup = Налаштування системи управління знаннями Settings = Налаштування -KnowledgeManagementSetupPage = Knowledge Management System setup page +KnowledgeManagementSetupPage = Сторінка налаштування системи управління знаннями # # About page # -About = About -KnowledgeManagementAbout = About Knowledge Management -KnowledgeManagementAboutPage = Knowledge Management about page +About = Про +KnowledgeManagementAbout = Про управління знаннями +KnowledgeManagementAboutPage = Управління знаннями про сторінку -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 +KnowledgeManagementArea = Управління знаннями +MenuKnowledgeRecord = База знань +ListKnowledgeRecord = Список статей +NewKnowledgeRecord = Нова стаття +ValidateReply = Перевірте рішення +KnowledgeRecords = статті +KnowledgeRecord = стаття +KnowledgeRecordExtraFields = Додаткові поля для ст +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/uk_UA/languages.lang b/htdocs/langs/uk_UA/languages.lang index cf2f4e66617..f5e11c51a83 100644 --- a/htdocs/langs/uk_UA/languages.lang +++ b/htdocs/langs/uk_UA/languages.lang @@ -1,20 +1,22 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopian +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_az_AZ=Azerbaijani +Language_ar_TN=Арабська (Туніс) +Language_ar_IQ=Арабська (Ірак) +Language_as_IN=Ассамська +Language_az_AZ=Азербайджанська Language_bn_BD=Бенгальська -Language_bn_IN=Bengali (India) +Language_bn_IN=Бенгальська (Індія) Language_bg_BG=Болгарська Language_bs_BA=Боснійська Language_ca_ES=Каталонський Language_cs_CZ=Чеський +Language_cy_GB=Валлійська Language_da_DA=Данська Language_da_DK=Данська Language_de_DE=Німецький @@ -22,13 +24,14 @@ Language_de_AT=Німецька (Австрія) Language_de_CH=Німецька (Швейцарія) Language_el_GR=Грецький Language_el_CY=Грецька (Кіпр) +Language_en_AE=Англійська (ОАЕ) Language_en_AU=Англійська (Австралія) Language_en_CA=Англійська (Канада) Language_en_GB=Англійська (Великобританія) Language_en_IN=Англійська (Індія) Language_en_NZ=Англійська (Нова Зеландія) Language_en_SA=Англійська (Саудівська Аравія) -Language_en_SG=English (Singapore) +Language_en_SG=Англійська (Сінгапур) Language_en_US=Англійська (США) Language_en_ZA=Англійська (Південна Африка) Language_es_ES=Іспанська @@ -38,16 +41,16 @@ Language_es_CL=Іспанська (Чілі) Language_es_CO=Іспанська (Колумбія) Language_es_DO=Іспанська (Домініканська Республіка) Language_es_EC=Іспанська (Еквадор) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=Іспанська (Гватемала) Language_es_HN=Іспанська (Гондурас) Language_es_MX=Іспанська (Мексика) Language_es_PA=Іспанська (Панама) Language_es_PY=Іспанська (Парагвай) Language_es_PE=Іспанська (Перу) Language_es_PR=Іспанська (Пуерто-Ріко) -Language_es_US=Spanish (USA) +Language_es_US=Іспанська (США) Language_es_UY=Іспанська (Уругвай) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=Іспанська (Гватемала) Language_es_VE=Іспанська (Венесуела) Language_et_EE=Естонська Language_eu_ES=Баскська @@ -56,25 +59,25 @@ Language_fi_FI=Фінська Language_fr_BE=Французька (Бельгія) Language_fr_CA=Французька (Канада) Language_fr_CH=Французька (Швейцарія) -Language_fr_CI=French (Cost Ivory) -Language_fr_CM=French (Cameroun) +Language_fr_CI=Французька (Cost Ivory) +Language_fr_CM=Французька (Камерун) Language_fr_FR=Французький -Language_fr_GA=French (Gabon) +Language_fr_GA=Французька (Габон) Language_fr_NC=Французька (Нова Каледонія) -Language_fr_SN=French (Senegal) +Language_fr_SN=Французька (Сенегал) Language_fy_NL=Фризька -Language_gl_ES=Galician +Language_gl_ES=Галицька Language_he_IL=Іврит -Language_hi_IN=Hindi (India) +Language_hi_IN=Гінді (Індія) Language_hr_HR=Хорватська Language_hu_HU=Угорська Language_id_ID=Індонезійська Language_is_IS=Ісландський Language_it_IT=Італійський -Language_it_CH=Italian (Switzerland) +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 +86,21 @@ Language_lt_LT=Литовський Language_lv_LV=Латвійська Language_mk_MK=Македонський Language_mn_MN=Монгольська +Language_my_MM=Бірманська Language_nb_NO=Норвезька (букмол) -Language_ne_NP=Nepali +Language_ne_NP=Непальська Language_nl_BE=Голандська (Бельгія) -Language_nl_NL=Dutch +Language_nl_NL=Голландська Language_pl_PL=Польський -Language_pt_AO=Portuguese (Angola) +Language_pt_AO=Португальська (Ангола) 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=Шведська @@ -106,9 +111,10 @@ Language_sr_RS=Сербська Language_sw_SW=Суахілі Language_th_TH=Тайська Language_uk_UA=Український +Language_ur_PK=Урду Language_uz_UZ=Узбецький Language_vi_VN=В'єтнамська Language_zh_CN=Китайський Language_zh_TW=Китайська (традиційна) -Language_zh_HK=Chinese (Hong Kong) +Language_zh_HK=Китайська (Гонконг) Language_bh_MY=Малайська diff --git a/htdocs/langs/uk_UA/ldap.lang b/htdocs/langs/uk_UA/ldap.lang index abe11602147..bddba094825 100644 --- a/htdocs/langs/uk_UA/ldap.lang +++ b/htdocs/langs/uk_UA/ldap.lang @@ -1,27 +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 +YouMustChangePassNextLogon=Пароль для користувача %s на домені %s потрібно змінити. +UserMustChangePassNextLogon=Користувач повинен змінити пароль на домені %s +LDAPInformationsForThisContact=Інформація в базі даних LDAP для цього контакту +LDAPInformationsForThisUser=Інформація в базі даних LDAP для цього користувача +LDAPInformationsForThisGroup=Інформація в базі даних LDAP для цієї групи +LDAPInformationsForThisMember=Інформація в базі даних LDAP для цього учасника +LDAPInformationsForThisMemberType=Інформація в базі даних LDAP для цього типу члена +LDAPAttributes=Атрибути LDAP +LDAPCard=LDAP карта +LDAPRecordNotFound=Запис не знайдено в базі даних LDAP +LDAPUsers=Користувачі в базі даних LDAP +LDAPFieldStatus=Статус +LDAPFieldFirstSubscriptionDate=Дата першої підписки +LDAPFieldFirstSubscriptionAmount=Перша сума підписки +LDAPFieldLastSubscriptionDate=Остання дата підписки +LDAPFieldLastSubscriptionAmount=Остання сума підписки +LDAPFieldSkype=Ідентифікатор Skype +LDAPFieldSkypeExample=Приклад: skypeName +UserSynchronized=Користувач синхронізовано +GroupSynchronized=Група синхронізована +MemberSynchronized=Член синхронізовано +MemberTypeSynchronized=Тип члена синхронізовано +ContactSynchronized=Контакт синхронізовано +ForceSynchronize=Примусова синхронізація Dolibarr -> LDAP +ErrorFailedToReadLDAP=Не вдалося прочитати базу даних LDAP. Перевірте налаштування модуля LDAP та доступність бази даних. +PasswordOfUserInLDAP=Пароль користувача в LDAP +LDAPPasswordHashType=Тип хешування пароля +LDAPPasswordHashTypeExample=Тип хешу пароля, що використовується на сервері +SupportedForLDAPExportScriptOnly=Підтримується лише сценарієм експорту ldap +SupportedForLDAPImportScriptOnly=Підтримується лише сценарієм імпорту ldap diff --git a/htdocs/langs/uk_UA/link.lang b/htdocs/langs/uk_UA/link.lang index 1ffcd41a18b..8fde3beae63 100644 --- a/htdocs/langs/uk_UA/link.lang +++ b/htdocs/langs/uk_UA/link.lang @@ -1,11 +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 +LinkANewFile=Зв’язати новий файл/документ +LinkedFiles=Пов’язані файли та документи +NoLinkFound=Немає зареєстрованих посилань +LinkComplete=Файл успішно пов’язано +ErrorFileNotLinked=Не вдалося зв’язати файл +LinkRemoved=Посилання %s видалено +ErrorFailedToDeleteLink= Не вдалося видалити посилання " %s " +ErrorFailedToUpdateLink= Не вдалося оновити посилання " %s " +URLToLink=URL для посилання +OverwriteIfExists=Перезаписати файл, якщо він існує diff --git a/htdocs/langs/uk_UA/loan.lang b/htdocs/langs/uk_UA/loan.lang index d271ed0c140..3c19217d478 100644 --- a/htdocs/langs/uk_UA/loan.lang +++ b/htdocs/langs/uk_UA/loan.lang @@ -1,34 +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 +Loan=Позика +Loans=Кредити +NewLoan=Нова позика +ShowLoan=Показати позику +PaymentLoan=Оплата кредиту +LoanPayment=Оплата кредиту +ShowLoanPayment=Показати оплату позики +LoanCapital=Капітал +Insurance=Страхування +Interest=Інтерес +Nbterms=Кількість термінів +Term=Термін +LoanAccountancyCapitalCode=Обліковий капітал +LoanAccountancyInsuranceCode=Страхування бухгалтерського рахунку +LoanAccountancyInterestCode=Бухгалтерський рахунок процентів +ConfirmDeleteLoan=Підтвердьте видалення цієї позики +LoanDeleted=Позика успішно видалена +ConfirmPayLoan=Підтвердьте класифікацію виплати цього кредиту +LoanPaid=Позика сплачена +ListLoanAssociatedProject=Список кредитів, пов'язаних з проектом +AddLoan=Створити позику +FinancialCommitment=Фінансові зобов'язання +InterestAmount=Інтерес +CapitalRemain=Залишається капітал +TermPaidAllreadyPaid = Цей термін уже оплачений +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started +CantModifyInterestIfScheduleIsUsed = Ви не можете змінити відсотки, якщо використовуєте розклад # 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=Конфігурація модульної позики +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Обліковий капітал за замовчуванням +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Бухгалтерський рахунок процентів за замовчуванням +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Страхування бухгалтерського рахунку за замовчуванням +CreateCalcSchedule=Відредагувати фінансові зобов'язання diff --git a/htdocs/langs/uk_UA/mailmanspip.lang b/htdocs/langs/uk_UA/mailmanspip.lang index bab4b3576b4..83de047d099 100644 --- a/htdocs/langs/uk_UA/mailmanspip.lang +++ b/htdocs/langs/uk_UA/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_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 +AddIntoSpip=Додати в SPIP +AddIntoSpipConfirmation=Ви впевнені, що хочете додати цього учасника до SPIP? +AddIntoSpipError=Не вдалося додати користувача в SPIP +DeleteIntoSpip=Видалити з SPIP +DeleteIntoSpipConfirmation=Ви впевнені, що хочете видалити цього учасника зі SPIP? +DeleteIntoSpipError=Не вдалося відключити користувача від SPIP +SPIPConnectionFailed=Не вдалося підключитися до SPIP +SuccessToAddToMailmanList=%s успішно додано до списку розсилників %s або бази даних SPIP +SuccessToRemoveToMailmanList=%s успішно видалено зі списку розсилки %s або бази даних SPIP diff --git a/htdocs/langs/uk_UA/mails.lang b/htdocs/langs/uk_UA/mails.lang index 651beced0eb..d871103f853 100644 --- a/htdocs/langs/uk_UA/mails.lang +++ b/htdocs/langs/uk_UA/mails.lang @@ -1,180 +1,180 @@ # 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 +Mailing=Розсилка електронною поштою +EMailing=Розсилка електронною поштою +EMailings=Розсилки електронною поштою +AllEMailings=Усі електронні листи +MailCard=Картка електронної пошти +MailRecipients=Одержувачі +MailRecipient=одержувач +MailTitle=Опис MailFrom=Відправник -MailErrorsTo=Errors to +MailErrorsTo=Помилки до MailReply=Відповісти -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 +MailTo=приймач(и) +MailToUsers=Користувачам +MailCC=Копіювати до +MailToCCUsers=Копіювати користувачам +MailCCC=Кешована копія до +MailTopic=Тема електронного листа +MailText=повідомлення +MailFile=Прикріплені файли +MailMessage=Тіло електронної пошти +SubjectNotIn=Не в темі +BodyNotIn=Не в тілі +ShowEMailing=Показати електронну пошту +ListOfEMailings=Список електронних листів +NewMailing=Нове листування +EditMailing=Редагувати електронну пошту +ResetMailing=Повторно надіслати електронний лист +DeleteMailing=Видалити електронні листи +DeleteAMailing=Видалити електронний лист +PreviewMailing=Попередній перегляд електронної пошти +CreateMailing=Створити електронну пошту +TestMailing=Тестовий електронний лист +ValidMailing=Дійсний електронний лист MailingStatusDraft=Проект MailingStatusValidated=Підтверджений -MailingStatusSent=Sent -MailingStatusSentPartialy=Sent partially -MailingStatusSentCompletely=Sent completely +MailingStatusSent=Надісланий +MailingStatusSentPartialy=Надіслано частково +MailingStatusSentCompletely=Надіслано повністю MailingStatusError=Помилка -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 +MailingStatusNotSent=Не надіслано +MailSuccessfulySent=Електронна пошта (від %s до %s) успішно прийнята для доставки +MailingSuccessfullyValidated=Надсилання електронною поштою успішно підтверджено +MailUnsubcribe=Скасувати підписку +MailingStatusNotContact=Більше не зв'язуйтесь +MailingStatusReadAndUnsubscribe=Прочитайте та відпишіться +ErrorMailRecipientIsEmpty=Одержувач електронної пошти порожній +WarningNoEMailsAdded=Немає нових електронних адрес, які можна додати до списку одержувачів. +ConfirmValidMailing=Ви впевнені, що хочете підтвердити цей електронний лист? +ConfirmResetMailing=Попередження, повторно ініціалізувавши електронний лист %s , ви дозволите повторно надіслати цей електронний лист у масовій розсилці. Ви впевнені, що хочете це зробити? +ConfirmDeleteMailing=Ви впевнені, що хочете видалити це повідомлення електронної пошти? +NbOfUniqueEMails=Кількість унікальних електронних листів +NbOfEMails=Кількість електронних листів +TotalNbOfDistinctRecipients=Кількість окремих одержувачів +NoTargetYet=Одержувачів ще не визначено (перейдіть на вкладку "Одержувачі") +NoRecipientEmail=Немає електронної пошти одержувача для %s +RemoveRecipient=Видалити одержувача +YouCanAddYourOwnPredefindedListHere=Щоб створити свій модуль вибору електронної пошти, див. htdocs/core/modules/mailings/README. +EMailTestSubstitutionReplacedByGenericValues=При використанні тестового режиму змінні підстановки замінюються загальними значеннями +MailingAddFile=Прикріпіть цей файл +NoAttachedFiles=Немає вкладених файлів +BadEMail=Погане значення для електронної пошти +EMailNotDefined=Електронна адреса не визначена +ConfirmCloneEMailing=Ви впевнені, що хочете клонувати цей електронний лист? +CloneContent=Клонувати повідомлення +CloneReceivers=Одержувачі клонера +DateLastSend=Дата останнього відправлення DateSending=Дата відправки -SentTo=Sent to %s +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. -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 +YourMailUnsubcribeOK=Електронна пошта %s правильно скасувала підписку зі списку розсилки +ActivateCheckReadKey=Ключ, який використовується для шифрування URL-адреси, що використовується для функції «Подписка про прочитання» та «Відписатися». +EMailSentToNRecipients=Електронний лист надіслано одержувачам %s. +EMailSentForNElements=Надіслано електронний лист для елементів %s. +XTargetsAdded= %s одержувачів додано до цільового списку +OnlyPDFattachmentSupported=Якщо PDF-документи вже створено для надсилання об’єктів, вони будуть прикріплені до електронної пошти. Якщо ні, електронна пошта не надсилатиметься (також зверніть увагу, що у цій версії як вкладення підтримуються лише документи у форматі pdf). +AllRecipientSelected=Вибрано одержувачів запису %s (якщо їх електронна адреса відома). +GroupEmails=Групові електронні листи +OneEmailPerRecipient=Один електронний лист на одержувача (за замовчуванням вибрано один лист на запис) +WarningIfYouCheckOneRecipientPerEmail=Попередження, якщо ви поставите цей прапорець, це означає, що для кількох вибраних записів буде надіслано лише одне повідомлення електронної пошти, тому, якщо ваше повідомлення містить змінні підстановки, які посилаються на дані запису, замінити їх неможливо. +ResultOfMailSending=Результат масової розсилки електронної пошти +NbSelected=Номер вибрано +NbIgnored=Номер проігноровано +NbSent=Номер надіслано +SentXXXmessages=%s повідомлення надіслано. +ConfirmUnvalidateEmailing=Ви впевнені, що хочете змінити електронний лист %s на статус чернетки? +MailingModuleDescContactsWithThirdpartyFilter=Зв'язок із фільтрами клієнтів +MailingModuleDescContactsByCompanyCategory=Контакти за категоріями сторонніх осіб +MailingModuleDescContactsByCategory=Контакти за категоріями +MailingModuleDescContactsByFunction=Контакти за посадою +MailingModuleDescEmailsFromFile=Електронні листи з файлу +MailingModuleDescEmailsFromUser=Електронні листи, введені користувачем +MailingModuleDescDolibarrUsers=Користувачі з електронною поштою +MailingModuleDescThirdPartiesByCategories=Треті сторони (за категоріями) +SendingFromWebInterfaceIsNotAllowed=Відправлення з веб-інтерфейсу заборонено. +EmailCollectorFilterDesc=Усі фільтри мають збігатися, щоб отримати електронний лист # 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. +LineInFile=Рядок %s у файлі +RecipientSelectionModules=Визначені запити на вибір одержувача +MailSelectedRecipients=Вибрані одержувачі +MailingArea=Зона розсилки електронної пошти +LastMailings=Останні електронні листи %s +TargetsStatistics=Статистика цілей +NbOfCompaniesContacts=Унікальні контакти/адреси +MailNoChangePossible=Одержувачів для підтверджених електронних листів змінити не можна +SearchAMailing=Пошук розсилки +SendMailing=Надіслати електронною поштою +SentBy=Надіслано +MailingNeedCommand=Надсилання електронного листа можна виконати з командного рядка. Попросіть адміністратора сервера запустити таку команду, щоб надіслати електронний лист усім одержувачам: +MailingNeedCommand2=Однак ви можете надіслати їх онлайн, додавши параметр MAILING_LIMIT_SENDBYWEB зі значенням максимальної кількості електронних листів, які ви хочете надіслати за сеанс. Для цього перейдіть до Головна - Налаштування - Інше. +ConfirmSendingEmailing=Якщо ви хочете надсилати електронні листи безпосередньо з цього екрана, підтвердьте, що ви впевнені, що хочете надсилати електронні листи зараз зі свого браузера? +LimitSendingEmailing=Примітка: надсилання електронних листів з веб-інтерфейсу виконується кілька разів з міркувань безпеки та тайм-ауту, %s одержувачів за раз для кожного сеансу надсилання. +TargetsReset=Чистий список +ToClearAllRecipientsClickHere=Натисніть тут, щоб очистити список одержувачів для цього листа +ToAddRecipientsChooseHere=Додайте одержувачів, вибравши зі списків +NbOfEMailingsReceived=Отримано масову електронну пошту +NbOfEMailingsSend=Масова розсилка електронних листів +IdRecord=Ідентифікаційний запис +DeliveryReceipt=Акт доставки. +YouCanUseCommaSeparatorForSeveralRecipients=Ви можете використовувати роздільник коми , щоб вказати кількох одержувачів. +TagCheckMail=Відстежити відкриття пошти +TagUnsubscribe=Посилання для скасування підписки +TagSignature=Підпис користувача-відправника +EMailRecipient=Електронна адреса одержувача +TagMailtoEmail=Електронна адреса одержувача (включаючи посилання html "mailto:") +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 -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 +NotificationsAuto=Автоматичне сповіщення. +NoNotificationsWillBeSent=Автоматичні сповіщення електронною поштою для цього типу події та компанії не плануються +ANotificationsWillBeSent=1 автоматичне сповіщення буде надіслано електронною поштою +SomeNotificationsWillBeSent=%s автоматичні сповіщення буде надіслано електронною поштою +AddNewNotification=Підпишіться на нове автоматичне сповіщення електронною поштою (ціль/подія) +ListOfActiveNotifications=Список усіх активних підписок (цілей/подій) для автоматичного сповіщення електронною поштою +ListOfNotificationsDone=Список усіх надісланих автоматичних сповіщень електронною поштою +MailSendSetupIs=Конфігурацію надсилання електронної пошти встановлено на «%s». Цей режим не можна використовувати для масової розсилки електронної пошти. +MailSendSetupIs2=Ви повинні спочатку перейти з обліковим записом адміністратора в меню %sHome - Setup - EMails%s, щоб змінити параметр '%s' a0a65dc9az0' a0a65dc9az0' a0a65dc9az08f4f49fz0' a0a65d071078f65d071078f49fz071071071 У цьому режимі ви можете ввійти в налаштування SMTP-сервера, наданого вашим Інтернет-провайдером, і використовувати функцію масової розсилки електронною поштою. +MailSendSetupIs3=Якщо у вас виникли запитання щодо налаштування вашого SMTP-сервера, ви можете звернутися за адресою %s. +YouCanAlsoUseSupervisorKeyword=Ви також можете додати ключове слово __SUPERVISOREMAIL__ , щоб електронна пошта надсилалася керівнику користувача (працює, лише якщо для цього керівника визначено електронну адресу) +NbOfTargetedContacts=Поточна кількість цільових контактних електронних адрес +UseFormatFileEmailToTarget=Імпортований файл повинен мати формат email;ім’я;ім’я;інше +UseFormatInputEmailToTarget=Введіть рядок у форматі email;ім’я;ім’я;інше +MailAdvTargetRecipients=Одержувачі (розширений вибір) +AdvTgtTitle=Заповніть поля введення, щоб попередньо вибрати третіх сторін або контакти/адреси для цільового призначення +AdvTgtSearchTextHelp=Використовуйте %% як символи підстановки. Наприклад, щоб знайти всі елементи, як-от jean, joe, jim , ви можете ввести j%% a09a4b739f17f також використовувати; як роздільник значення та використовуйте ! за винятком цього значення. Наприклад, jean;joe;jim%%;!jimo;!jima%% буде націлено на всіх jean, joe, починайте з джима, але не з джимо і не все, що починається з jima +AdvTgtSearchIntHelp=Використовуйте інтервал, щоб вибрати значення int або float +AdvTgtMinVal=Мінімальне значення +AdvTgtMaxVal=Максимальне значення +AdvTgtSearchDtHelp=Використовуйте інтервал, щоб вибрати значення дати +AdvTgtStartDt=Почніть dt. +AdvTgtEndDt=Кінець dt. +AdvTgtTypeOfIncudeHelp=Цільова електронна адреса третьої сторони та контактна електронна адреса третьої сторони, або просто електронна адреса третьої сторони або просто контактна електронна адреса +AdvTgtTypeOfIncude=Тип цільової електронної пошти +AdvTgtContactHelp=Використовуйте, лише якщо ви націлюєте контакт на "Тип цільової електронної пошти" +AddAll=Додайте все +RemoveAll=Видалити всі +ItemsCount=Елемент(и) +AdvTgtNameTemplate=Назва фільтра +AdvTgtAddContact=Додайте електронні листи відповідно до критеріїв +AdvTgtLoadFilter=Завантажте фільтр +AdvTgtDeleteFilter=Видалити фільтр +AdvTgtSaveFilter=Зберегти фільтр +AdvTgtCreateFilter=Створити фільтр +AdvTgtOrCreateNewFilter=Назва нового фільтра +NoContactWithCategoryFound=Не знайдено жодної категорії, пов’язаної з деякими контактами/адресами +NoContactLinkedToThirdpartieWithCategoryFound=Не знайдено жодної категорії, пов’язаної з деякими третіми сторонами +OutGoingEmailSetup=Вихідні листи +InGoingEmailSetup=Вхідні листи +OutGoingEmailSetupForEmailing=Вихідні електронні листи (для модуля %s) +DefaultOutgoingEmailSetup=Така ж конфігурація, що й у глобальних налаштуваннях вихідної електронної пошти +Information=Інформація +ContactsWithThirdpartyFilter=Контакти із стороннім фільтром +Unanswered=Без відповіді +Answered=Відповів +IsNotAnAnswer=Не відповідає (початкова електронна адреса) +IsAnAnswer=Це відповідь на початковий електронний лист +RecordCreatedByEmailCollector=Запис, створений збирачем електронної пошти %s з електронної пошти %s +DefaultBlacklistMailingStatus=Значення за замовчуванням для поля '%s' під час створення нового контакту +DefaultStatusEmptyMandatory=Порожній, але обов’язковий diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index ba1fc97659e..a06f684a5b0 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -14,7 +14,7 @@ FormatDateShortJava=dd.MM.yyyy FormatDateShortJavaInput=dd.MM.yyyy FormatDateShortJQuery=dd.mm.yy FormatDateShortJQueryInput=dd.mm.yy -FormatHourShortJQuery=HH:MI +FormatHourShortJQuery=HH: MI FormatHourShort=%I:%M %p FormatHourShortDuration=ЧЧ:ММ FormatDateTextShort=%d %b %Y @@ -24,19 +24,19 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M DatabaseConnection=Підключеня до Бази Данних -NoTemplateDefined=No template available for this email type -AvailableVariables=Available substitution variables +NoTemplateDefined=Немає шаблону для цього типу електронної пошти +AvailableVariables=Доступні змінні заміни NoTranslation=Немає перекладу -Translation=Translation +Translation=Переклад CurrentTimeZone=PHP TimeZone (сервер) -EmptySearchString=Enter non empty search criterias -EnterADateCriteria=Enter a date criteria +EmptySearchString=Введіть не порожні критерії пошуку +EnterADateCriteria=Введіть критерії дати NoRecordFound=Записів не знайдено -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data +NoRecordDeleted=Жодного запису не видалено +NotEnoughDataYet=Недостатньо даних NoError=Немає помилок Error=Помилка -Errors=Errors +Errors=Помилки ErrorFieldRequired=Поле '%s' є обов'язковим ErrorFieldFormat=Поле '%s' містить помилкове значення ErrorFileDoesNotExists=Файл %s не існує @@ -47,86 +47,86 @@ ErrorConstantNotDefined=Параметр %s не було визначено ErrorUnknown=Невідома помилка ErrorSQL=Помилка SQL ErrorLogoFileNotFound=Файл логотипу '%s' не знайдено -ErrorGoToGlobalSetup=Go to 'Company/Organization' setup to fix this +ErrorGoToGlobalSetup=Перейдіть до налаштувань «Компанія/Організація», щоб виправити це ErrorGoToModuleSetup=Перейти до Модулю налаштувань, щоб це виправити -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) +ErrorFailedToSendMail=Не вдалося надіслати пошту (відправник=%s, одержувач=%s) ErrorFileNotUploaded=Файл не завантажений. Переконайтеся, що розмір не перевищує максимально допустимий, що достатньо вільного місця на диску і що не існує вже файл з таким же ім'ям в цій директорії. 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. -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 +ErrorYourCountryIsNotDefined=Ваша країна не визначена. Перейдіть до Home-Setup-Edit і знову опублікуйте форму. +ErrorRecordIsUsedByChild=Не вдалося видалити цей запис. Цей запис використовується принаймні одним дочірнім записом. +ErrorWrongValue=Неправильне значення +ErrorWrongValueForParameterX=Неправильне значення для параметра %s +ErrorNoRequestInError=Немає помилкового запиту +ErrorServiceUnavailableTryLater=Послуга на даний момент недоступна. Спробуйте ще раз пізніше. +ErrorDuplicateField=Повторюване значення в унікальному полі +ErrorSomeErrorWereFoundRollbackIsDone=Були знайдені деякі помилки. Зміни відмінено. +ErrorConfigParameterNotDefined=Параметр %s не визначено у файлі конфігурації Dolibarr conf.php +ErrorCantLoadUserFromDolibarrDatabase=Не вдалося знайти користувача %s в базі даних Dolibarr. +ErrorNoVATRateDefinedForSellerCountry=Помилка, для країни "%s" не визначено ставки ПДВ. +ErrorNoSocialContributionForSellerCountry=Помилка, тип соціальних/фіскальних податків не визначено для країни "%s". +ErrorFailedToSaveFile=Помилка, не вдалося зберегти файл. +ErrorCannotAddThisParentWarehouse=Ви намагаєтеся додати батьківський склад, який уже є дочірнім до існуючого складу +FieldCannotBeNegative=Поле "%s" не може бути від'ємним +MaxNbOfRecordPerPage=Макс. кількість записів на сторінці +NotAuthorized=Ви не уповноважені це робити. +SetDate=Установіть дату +SelectDate=Виберіть дату +SeeAlso=Дивіться також %s +SeeHere=Дивіться тут +ClickHere=Натисніть тут +Here=Тут 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 +BackgroundColorByDefault=Колір фону за замовчуванням +FileRenamed=Файл було успішно перейменовано +FileGenerated=Файл успішно створено +FileSaved=Файл успішно збережено +FileUploaded=Файл було успішно завантажено +FileTransferComplete=Файл(и) успішно завантажено +FilesDeleted=Файл(и) успішно видалено +FileWasNotUploaded=Файл вибрано для вкладення, але ще не завантажено. Для цього натисніть «Вкласти файл». +NbOfEntries=Кількість записів +GoToWikiHelpPage=Прочитайте онлайн-довідку (потрібен доступ до Інтернету) +GoToHelpPage=Прочитайте довідку +DedicatedPageAvailable=Спеціальна сторінка довідки, пов’язана з вашим поточним екраном +HomePage=Домашня сторінка +RecordSaved=Запис збережено +RecordDeleted=Запис видалено +RecordGenerated=Запис створено +LevelOfFeature=Рівень можливостей +NotDefined=Не визначено +DolibarrInHttpAuthenticationSoPasswordUseless=Режим автентифікації Dolibarr встановлено на %s у файлі конфігурації conf.php
    Це означає, що база даних паролів є зовнішньою для Dolibarr, тому зміна цього поля може не мати ефекту. +Administrator=Адміністратор +Undefined=Невизначено +PasswordForgotten=Пароль забули? +NoAccount=Немає облікового запису? +SeeAbove=Дивись вище HomeArea=Головна -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. +LastConnexion=Останній вхід +PreviousConnexion=Попередній вхід +PreviousValue=Попереднє значення +ConnectedOnMultiCompany=Підключений до навколишнього середовища +ConnectedSince=Підключено відтоді +AuthenticationMode=Режим аутентифікації +RequestedUrl=Запитувана URL-адреса +DatabaseTypeManager=Менеджер типів бази даних +RequestLastAccessInError=Остання помилка запиту на доступ до бази даних +ReturnCodeLastAccessInError=Код повернення для останньої помилки запиту на доступ до бази даних +InformationLastAccessInError=Інформація для останньої помилки запиту на доступ до бази даних +DolibarrHasDetectedError=Dolibarr виявив технічну помилку +YouCanSetOptionDolibarrMainProdToZero=Ви можете прочитати файл журналу або встановити для параметра $dolibarr_main_prod значення «0» у файлі конфігурації, щоб отримати більше інформації. +InformationToHelpDiagnose=Ця інформація може бути корисною для діагностичних цілей (ви можете встановити для параметра $dolibarr_main_prod значення "1", щоб приховати конфіденційну інформацію) +MoreInformation=Більше інформації +TechnicalInformation=Технічна інформація +TechnicalID=Технічний ідентифікатор +LineID=Ідентифікатор рядка +NotePublic=Примітка (загальнодоступна) +NotePrivate=Примітка (приватна) +PrecisionUnitIsLimitedToXDecimals=Dolibarr було налаштовано так, щоб обмежити точність цін за одиницю десятковими знаками %s . DoTest=Тест ToFilter=Фільтер -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +NoFilter=Без фільтра +WarningYouHaveAtLeastOneTaskLate=Попередження, у вас є принаймні один елемент, який перевищив час допуску. yes=так Yes=Так no=ні @@ -136,1031 +136,1047 @@ Home=Головна Help=Допомога OnlineHelp=Он-лайн допомога PageWiki=Wiki сторінка -MediaBrowser=Media browser +MediaBrowser=Медіа-браузер Always=Завжди Never=Ніколи Under=Під Period=Період PeriodEndDate=Кінцева дата періоду -SelectedPeriod=Selected period -PreviousPeriod=Previous period +SelectedPeriod=Вибраний період +PreviousPeriod=Попередній період Activate=Активувати Activated=Активовано Closed=Зачинено Closed2=Зачинено -NotClosed=Not closed +NotClosed=Не закритий 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 +Enable=Увімкнути +Deprecated=Не підтримується +Disable=Вимкнути +Disabled=Вимкнено +Add=Додати +AddLink=Додати посилання +RemoveLink=Видалити посилання +AddToDraft=Додати до чернетки +Update=Оновлення +Close=Закрити +CloseAs=Встановити статус на +CloseBox=Видаліть віджет з інформаційної панелі +Confirm=Підтвердьте +ConfirmSendCardByMail=Ви дійсно хочете надіслати вміст цієї картки поштою на адресу %s ? +Delete=Видалити +Remove=Видалити +Resiliate=Припинити +Cancel=Скасувати +Modify=Змінити +Edit=Редагувати +Validate=Підтвердити +ValidateAndApprove=Підтвердити та затвердити ToValidate=На підтвердженні -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 +NotValidated=Не підтверджено +Save=Зберегти +SaveAs=Зберегти як +SaveAndStay=Зберігай і залишайся +SaveAndNew=Зберегти і нове +TestConnection=Тестове підключення +ToClone=Клон +ConfirmCloneAsk=Ви впевнені, що хочете клонувати об'єкт %s ? +ConfirmClone=Виберіть дані, які потрібно клонувати: +NoCloneOptionsSpecified=Немає даних для клонування. +Of=з +Go=Іди +Run=Біжи +CopyOf=Копія +Show=Показати +Hide=Сховати +ShowCardHere=Показати картку +Search=Пошук +SearchOf=Пошук SearchMenuShortCut=Ctrl + shift + f -QuickAdd=Quick add +QuickAdd=Швидке додавання 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 +Valid=Дійсний +Approve=Затвердити +Disapprove=Не схвалювати +ReOpen=Відкрити повторно +Upload=Завантажити +ToLink=Посилання +Select=Виберіть +SelectAll=Вибрати все +Choose=Виберіть +Resize=Змінити розмір +ResizeOrCrop=Змінити розмір або обрізати Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -UserGroup=User group -UserGroups=User groups -NoUserGroupDefined=No user group defined +Author=Автор +User=Користувач +Users=Користувачі +Group=Група +Groups=Групи +UserGroup=Група користувачів +UserGroups=Групи користувачів +NoUserGroupDefined=Група користувачів не визначена 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 +PasswordRetype=Повторно введіть пароль +NoteSomeFeaturesAreDisabled=Зауважте, що багато функцій/модулів вимкнено в цій демонстрації. +Name=Ім'я +NameSlashCompany=Назва / Компанія +Person=Особа +Parameter=Параметр +Parameters=Параметри +Value=Значення +PersonalValue=Особиста цінність +NewObject=Новий %s +NewValue=Нове значення +OldValue=Старе значення %s +CurrentValue=Поточна вартість +Code=код Type=Тип -Language=Language -MultiLanguage=Multi-language -Note=Note +Language=Мова +MultiLanguage=Багатомовний +Note=Примітка 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 -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 +Label=Етикетка +RefOrLabel=Пос. або етикетку +Info=журнал +Family=Сім'я +Description=Опис +Designation=Опис +DescriptionOfLine=Опис лінії +DateOfLine=Дата лінії +DurationOfLine=Тривалість лінії +ParentLine=Ідентифікатор батьківського рядка +Model=Шаблон документа +DefaultModel=Стандартний шаблон документа +Action=Подія +About=Про +Number=Номер +NumberByMonth=Усього звітів по місяцях +AmountByMonth=Сума по місяцях +Numero=Номер +Limit=Ліміт +Limits=Межі +Logout=Вийти +NoLogoutProcessWithAuthMode=Немає аплікативної функції відключення з режимом аутентифікації %s +Connection=Увійти Setup=Встановлення -Alert=Alert -MenuWarnings=Alerts -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Deadline=Deadline +Alert=Сповіщення +MenuWarnings=Сповіщення +Previous=Попередній +Next=Далі +Cards=Картки +Card=Картка +Now=Тепер +HourStart=Початкова година +Deadline=Дедлайн Date=Date DateAndHour=Дата та час -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 +DateToday=Сьогоднішня дата +DateReference=Довідкова дата +DateStart=Дата початку +DateEnd=Дата закінчення +DateCreation=Дата створення +DateCreationShort=Творіть. дата +IPCreation=Створення IP +DateModification=Дата модифікації +DateModificationShort=Модифікація дата +IPModification=Модифікація IP +DateLastModification=Остання дата модифікації +DateValidation=Дата підтвердження +DateSigning=Дата підписання +DateClosing=Кінцева дата +DateDue=Термін виконання +DateValue=Дата валютування +DateValueShort=Дата валютування +DateOperation=Дата операції +DateOperationShort=опер. Дата +DateLimit=Дата обмеження +DateRequest=Дата запиту +DateProcess=Дата процесу +DateBuild=Дата створення звіту +DatePayment=Дата оплати +DateApprove=Дата затвердження +DateApprove2=Дата затвердження (друге затвердження) +RegistrationDate=Дата Реєстрації +UserCreation=Користувач створення +UserModification=Користувач модифікації +UserValidation=Користувач перевірки +UserCreationShort=Творіть. користувач +UserModificationShort=Модифікація користувач +UserValidationShort=Дійсний. користувач +DurationYear=рік +DurationMonth=місяць +DurationWeek=тиждень +DurationDay=день +DurationYears=років +DurationMonths=місяців +DurationWeeks=тижнів +DurationDays=днів +Year=Рік +Month=Місяць +Week=тиждень +WeekShort=тиждень +Day=День +Hour=годину +Minute=Хвилина +Second=Друге +Years=Роки +Months=Місяці +Days=днів +days=днів +Hours=годин +Minutes=Хвилини +Seconds=Секунди +Weeks=тижнів +Today=Сьогодні +Yesterday=Вчора +Tomorrow=Завтра +Morning=Ранок +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=Ceated by -UserModif=Updated by -b=b. -Kb=Kb -Mb=Mb +MonthOfDay=Місяць дня +DaysOfWeek=Дні тижня +HourShort=Х +MinuteShort=мн +Rate=Оцінити +CurrencyRate=Курс обміну валют +UseLocalTax=Включити податок +Bytes=Байти +KiloBytes=Кілобайти +MegaBytes=мегабайти +GigaBytes=гігабайти +TeraBytes=терабайти +UserAuthor=Створено +UserModif=Оновлено +b=б. +Kb=Кб +Mb=Мб Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -DefaultValues=Default values/filters/sorting +Tb=Тб +Cut=Вирізати +Copy=Копія +Paste=Вставити +Default=За замовчуванням +DefaultValue=Значення за замовчуванням +DefaultValues=Значення за замовчуванням/фільтри/сортування Price=іна -PriceCurrency=Price (currency) -UnitPrice=Unit price -UnitPriceHT=Unit price (excl.) -UnitPriceHTCurrency=Unit price (excl.) (currency) -UnitPriceTTC=Unit price +PriceCurrency=Ціна (валюта) +UnitPrice=Ціна за одиницю +UnitPriceHT=Ціна за одиницю (без урахування) +UnitPriceHTCurrency=Ціна за одиницю (без урахування) (валюта) +UnitPriceTTC=Ціна за одиницю PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (net) (currency) -PriceUTTC=U.P. (inc. tax) +PriceUHT=U.P. (нетто) +PriceUHTCurrency=U.P (нетто) (валюта) +PriceUTTC=U.P. (включаючи податок) Amount=Сума -AmountInvoice=Invoice amount -AmountInvoiced=Amount invoiced -AmountInvoicedHT=Amount invoiced (excl. tax) -AmountInvoicedTTC=Amount invoiced (inc. tax) +AmountInvoice=Сума рахунку-фактури +AmountInvoiced=Сума, виставлена рахунком +AmountInvoicedHT=Сума рахунка-фактури (без податку) +AmountInvoicedTTC=Сума рахунка-фактури (включаючи податок) AmountPayment=Сума платежу -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 +AmountHTShort=Сума (без урахування) +AmountTTCShort=Сума (включаючи податок) +AmountHT=Сума (без податку) +AmountTTC=Сума (включаючи податок) +AmountVAT=Сума податку +MulticurrencyAlreadyPaid=Вже оплачено, оригінальна валюта +MulticurrencyRemainderToPay=Залишається платити, оригінальна валюта +MulticurrencyPaymentAmount=Сума платежу, оригінальна валюта +MulticurrencyAmountHT=Сума (без податку), початкова валюта +MulticurrencyAmountTTC=Сума (з урахуванням податку), початкова валюта +MulticurrencyAmountVAT=Сума податку, вихідна валюта +MulticurrencySubPrice=Сума за нижчою ціною в кількох валютах +AmountLT1=Сума податку 2 +AmountLT2=Сума податку 3 +AmountLT1ES=Сума RE +AmountLT2ES=Сума IRPF +AmountTotal=Загальна кількість +AmountAverage=Середня сума +PriceQtyMinHT=Ціна кількість мін. (без податку) +PriceQtyMinHTCurrency=Ціна кількість мін. (без податку) (валюта) +PercentOfOriginalObject=Відсоток оригінального об'єкта +AmountOrPercent=Сума або відсоток +Percentage=Процент +Total=Всього +SubTotal=Проміжний підсумок +TotalHTShort=Усього (без урахування) +TotalHT100Short=Усього 100%% (без урахування) +TotalHTShortCurrency=Усього (без урахування валюти) +TotalTTCShort=Усього (включаючи податок) +TotalHT=Усього (без податку) +TotalHTforthispage=Усього (без податку) для цієї сторінки +Totalforthispage=Усього для цієї сторінки +TotalTTC=Усього (включаючи податок) +TotalTTCToYourCredit=Усього (включаючи податки) на ваш кредит +TotalVAT=Загальний податок +TotalVATIN=Всього IGST +TotalLT1=Разом податок 2 +TotalLT2=Разом податок 3 +TotalLT1ES=Всього RE +TotalLT2ES=Всього IRPF +TotalLT1IN=Всього CGST +TotalLT2IN=Усього SGST +HT=Викл. податок +TTC=вкл. податок +INCVATONLY=вкл. ПДВ +INCT=Inc. всі податки +VAT=Податок з продажів 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 +VATs=Податки з продажу +VATINs=IGST податки +LT1=Податок з продажу 2 +LT1Type=Податок з продажів 2 типу +LT2=Податок з продажу 3 +LT2Type=Податок з продажів 3 типу 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 +LT1GC=Додаткові центи +VATRate=Ставка податку +RateOfTaxN=Ставка податку %s +VATCode=Код ставки податку +VATNPR=Податкова ставка NPR +DefaultTaxRate=Ставка податку за замовчуванням +Average=Середній +Sum=Сума +Delta=Дельта +StatusToPay=Платити +RemainToPay=Залишається платити +Module=Модуль/Додаток +Modules=Модулі/додатки +Option=Варіант +Filters=фільтри +List=Список +FullList=Повний список +FullConversation=Повна розмова +Statistics=Статистика +OtherStatistics=Інша статистика +Status=Статус +Favorite=Улюблений +ShortInfo=Інформація. +Ref=Пос. +ExternalRef=Пос. зовнішній +RefSupplier=Пос. постачальник +RefPayment=Пос. оплата +CommercialProposalsShort=Комерційні пропозиції +Comment=Коментар +Comments=Коментарі +ActionsToDo=Події, які потрібно зробити +ActionsToDoShort=Зробити +ActionsDoneShort=Готово +ActionNotApplicable=Не застосовується +ActionRunningNotStarted=Починати +ActionRunningShort=В процесі +ActionDoneShort=Готово +ActionUncomplete=Неповна +LatestLinkedEvents=Останні пов’язані події %s +CompanyFoundation=Компанія/Організація +Accountant=Бухгалтер +ContactsForCompany=Контакти цієї третьої сторони +ContactsAddressesForCompany=Контакти/адреси цієї третьої сторони +AddressesForCompany=Адреси цієї третьої сторони +ActionsOnCompany=Події для цієї третьої сторони +ActionsOnContact=Події для цього контакту/адреси +ActionsOnContract=Події для цього договору +ActionsOnMember=Події про цього учасника +ActionsOnProduct=Події про цей продукт +NActionsLate=%s пізно +ToDo=Зробити +Completed=Завершено +Running=В процесі +RequestAlreadyDone=Запит уже записаний 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 +FilterOnInto=Критерії пошуку ' %s ' в поля %s +RemoveFilter=Зніміть фільтр +ChartGenerated=Діаграма створена +ChartNotGenerated=Діаграма не створена +GeneratedOn=Побудуйте на %s +Generate=Згенерувати +Duration=Тривалість +TotalDuration=Загальна тривалість +Summary=Резюме +DolibarrStateBoard=Статистика бази даних +DolibarrWorkBoard=Відкрити елементи +NoOpenedElementToProcess=Немає відкритого елемента для обробки +Available=Доступний +NotYetAvailable=Ще немає в наявності +NotAvailable=Недоступний +Categories=Теги/категорії +Category=Тег/категорія +By=За From=Продавець FromDate=Продавець FromLocation=Продавець -to=to -To=to -ToDate=to -ToLocation=to -at=at -and=and -or=or +to=до +To=до +ToDate=до +ToLocation=до +at=на +and=і +or=або Other=Інший -Others=Others +Others=інші OtherInformations=Інша інформація -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 +Workflow=Робочий процес +Quantity=Кількість +Qty=Кількість +ChangedBy=Змінено на +ApprovedBy=Затверджено +ApprovedBy2=Затверджено (друге затвердження) +Approved=Затверджено +Refused=Відмовився +ReCalculate=Перерахувати +ResultKo=Невдача +Reporting=Звітність +Reportings=Звітність Draft=Проект -Drafts=Drafts -StatusInterInvoiced=Invoiced +Drafts=Чернетки +StatusInterInvoiced=Виставлений рахунок Validated=Підтверджений -ValidatedToProduce=Validated (To produce) -Opened=Open -OpenAll=Open (All) -ClosedAll=Closed (All) -New=New +ValidatedToProduce=Перевірено (для виробництва) +Opened=ВІДЧИНЕНО +OpenAll=Відкрити (Усі) +ClosedAll=Закрито (усі) +New=Новий Discount=Знижка Unknown=Невизначена -General=General -Size=Size -OriginalSize=Original size -Received=Received +General=Генеральний +Size=Розмір +OriginalSize=Оригінальний розмір +Received=Отримано 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 -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 +Topic=Тема +ByCompanies=Третіми особами +ByUsers=За користувачем +Links=Посилання +Link=Посилання +Rejects=Відкидає +Preview=Попередній перегляд +NextStep=Наступний крок +Datas=Дані +None=Жодного +NoneF=Жодного +NoneOrSeveral=Жодного або кількох +Late=Пізно +LateDesc=Пункт визначається як Затримка відповідно до конфігурації системи в меню Головна - Налаштування - Сповіщення. +NoItemLate=Немає запізнілого елемента +Photo=Картина +Photos=Картинки +AddPhoto=Додати зображення +DeletePicture=Видалити зображення +ConfirmDeletePicture=Підтвердити видалення зображення? +Login=Увійти +LoginEmail=Вхід (електронна пошта) +LoginOrEmail=Вхід або електронна пошта +CurrentLogin=Поточний логін +EnterLoginDetail=Введіть дані для входу +January=січня +February=лютий +March=березень +April=квітень +May=Може +June=червень +July=липень +August=серпень +September=Вересень +October=жовтень +November=Листопад +December=Грудень +Month01=січня +Month02=лютий +Month03=березень +Month04=квітень +Month05=Може +Month06=червень +Month07=липень +Month08=серпень +Month09=Вересень +Month10=жовтень +Month11=Листопад +Month12=Грудень +MonthShort01=Січ +MonthShort02=лютий +MonthShort03=березень +MonthShort04=квітень +MonthShort05=Може +MonthShort06=черв +MonthShort07=липень +MonthShort08=серп +MonthShort09=вер +MonthShort10=жовт +MonthShort11=лист +MonthShort12=груд +MonthVeryShort01=Дж +MonthVeryShort02=Ф +MonthVeryShort03=М +MonthVeryShort04=А +MonthVeryShort05=М +MonthVeryShort06=Дж +MonthVeryShort07=Дж +MonthVeryShort08=А +MonthVeryShort09=С +MonthVeryShort10=О +MonthVeryShort11=Н +MonthVeryShort12=д +AttachedFiles=Прикріплені файли та документи +JoinMainDoc=Приєднатися до основного документа +JoinMainDocOrLastGenerated=Надішліть основний документ або останній згенерований, якщо його не знайдено +DateFormatYYYYMM=РРРР-ММ +DateFormatYYYYMMDD=РРРР-ММ-ДД +DateFormatYYYYMMDDHHMM=РРРР-ММ-ДД ГГ:СС +ReportName=Назва звіту +ReportPeriod=Звітний період +ReportDescription=Опис +Report=Звіт +Keyword=Ключове слово +Origin=Походження +Legend=Легенда +Fill=Заповніть +Reset=Скинути 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 +Files=Файли +NotAllowed=Не дозволяється +ReadPermissionNotAllowed=Дозвіл на читання заборонено +AmountInCurrency=Сума у валюті %s +Example=Приклад +Examples=Приклади +NoExample=Без прикладу +FindBug=Повідомити про помилку +NbOfThirdParties=Кількість третіх осіб +NbOfLines=Кількість рядків +NbOfObjects=Кількість об'єктів +NbOfObjectReferers=Кількість споріднених елементів +Referers=Пов'язані елементи +TotalQuantity=Загальна кількість +DateFromTo=Від %s до %s +DateFrom=Від %s +DateUntil=До %s Check=Чек -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings +Uncheck=Зніміть прапорець +Internal=Внутрішній +External=Зовнішній +Internals=Внутрішній +Externals=Зовнішній +Warning=УВАГА +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 +Entity=Середовище +Entities=Сутності +CustomerPreview=Попередній перегляд клієнта +SupplierPreview=Попередній перегляд постачальника +ShowCustomerPreview=Показати попередній перегляд клієнта +ShowSupplierPreview=Показати попередній перегляд постачальника +RefCustomer=Пос. замовник +InternalRef=Внутрішнє реф. +Currency=Валюта +InfoAdmin=Інформація для адміністраторів +Undo=Скасувати +Redo=Повторити +ExpandAll=Розгорнути все +UndoExpandAll=Скасувати розширення +SeeAll=Бачити все 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 +FeatureNotYetSupported=Функція ще не підтримується +CloseWindow=Закрити вікно +Response=Відповідь +Priority=Пріоритет +SendByMail=Надіслати електронною поштою +MailSentBy=Електронний лист надіслав +NotSent=Не надіслано +TextUsedInTheMessageBody=Тіло електронної пошти +SendAcknowledgementByMail=Надіслати підтвердження електронною поштою +SendMail=Відправити лист Email=Email -NoEMail=No email -AlreadyRead=Already read +NoEMail=Немає електронної пошти +AlreadyRead=Вже прочитав NotRead=Непрочитані -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 -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 +NoMobilePhone=Немає мобільного телефону +Owner=Власник +FollowingConstantsWillBeSubstituted=Наступні константи будуть замінені на відповідне значення. +Refresh=Оновити +BackToList=Повернутися до списку +BackToTree=Назад до дерева +GoBack=Повертайся +CanBeModifiedIfOk=Можна змінити, якщо дійсний +CanBeModifiedIfKo=Можна змінити, якщо недійсний +ValueIsValid=Значення дійсне +ValueIsNotValid=Значення недійсне +RecordCreatedSuccessfully=Запис створено успішно +RecordModifiedSuccessfully=Запис успішно змінено +RecordsModified=%s запис(и) змінено +RecordsDeleted=%s запис(ів) видалено +RecordsGenerated=%s згенеровано запис(ів). +AutomaticCode=Автоматичний код +FeatureDisabled=Функція вимкнена +MoveBox=Перемістити віджет +Offered=Запропоновано +NotEnoughPermissions=У вас немає дозволу на цю дію +UserNotInHierachy=This action is reserved to the supervisors of this user +SessionName=Назва сеансу +Method=Метод +Receive=Отримати +CompleteOrNoMoreReceptionExpected=Завершено або нічого більше не очікується +ExpectedValue=Очікуване значення +ExpectedQty=Очікувана кількість +PartialWoman=Часткова +TotalWoman=Всього +NeverReceived=Ніколи не отримував +Canceled=Скасовано +YouCanChangeValuesForThisListFromDictionarySetup=Ви можете змінити значення для цього списку з меню Налаштування - Словники +YouCanChangeValuesForThisListFrom=Ви можете змінити значення для цього списку з меню %s +YouCanSetDefaultValueInModuleSetup=Ви можете встановити значення за замовчуванням, яке використовується під час створення нового запису в налаштуваннях модуля +Color=Колір +Documents=Пов’язані файли +Documents2=Документи +UploadDisabled=Завантаження вимкнено MenuAccountancy=Accounting -MenuECM=Documents +MenuECM=Документи 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. +MenuMembers=Члени +MenuAgendaGoogle=Порядок денний Google +MenuTaxesAndSpecialExpenses=Податки | Спеціальні витрати +ThisLimitIsDefinedInSetup=Ліміт Dolibarr (Меню home-setup-security): %s Kb, обмеження PHP: %s Kb +ThisLimitIsDefinedInSetupAt=Обмеження Dolibarr (меню %s): %s Кб, обмеження PHP (Параметр %s): %s Кб +NoFileFound=Жодних документів не завантажено +CurrentUserLanguage=Поточна мова +CurrentTheme=Актуальна тема +CurrentMenuManager=Поточний менеджер меню +Browser=браузер +Layout=Макет +Screen=Екран +DisabledModules=Відключені модулі +For=Для +ForCustomer=Для замовника +Signature=Підпис +DateOfSignature=Дата підпису +HidePassword=Показати команду з прихованим паролем +UnHidePassword=Показати справжню команду з чітким паролем +Root=Корінь +RootOfMedias=Корінь публічних ЗМІ (/medias) +Informations=Інформація +Page=Сторінка +Notes=Примітки +AddNewLine=Додати новий рядок +AddFile=Додати файл +FreeZone=Продукт із вільним текстом +FreeLineOfType=Елемент вільного тексту, тип: +CloneMainAttributes=Клонування об’єкта з його основними атрибутами +ReGeneratePDF=Повторне створення PDF +PDFMerge=Об'єднання PDF +Merge=Злиття +DocumentModelStandardPDF=Стандартний шаблон PDF +PrintContentArea=Показати сторінку для друку основної області вмісту +MenuManager=Менеджер меню +WarningYouAreInMaintenanceMode=Увага, ви перебуваєте в режимі технічного обслуговування: тільки під час входу %s можна використовувати програму в цьому режимі. +CoreErrorTitle=Системна помилка +CoreErrorMessage=Вибачте, сталася помилка. Зверніться до свого системного адміністратора, щоб перевірити журнали, або вимкніть $dolibarr_main_prod=1, щоб отримати додаткову інформацію. CreditCard=Кредитна картка ValidatePayment=Підтвердити платіж -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 +CreditOrDebitCard=Кредитна або дебетова картка +FieldsWithAreMandatory=Поля з %s є обов'язковими +FieldsWithIsForPublic=Поля з %s відображаються у загальнодоступному списку учасників. Якщо ви цього не хочете, зніміть прапорець «загальнодоступний». +AccordingToGeoIPDatabase=(відповідно до перетворення GeoIP) +Line=Лінія +NotSupported=Не підтримується +RequiredField=Обов'язкове поле +Result=Результат ToTest=Тест -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 -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 +ValidateBefore=Перед використанням цієї функції товар має бути перевірений +Visibility=Видимість +Totalizable=Тоталізується +TotalizableDesc=Це поле сумується в списку +Private=Приватний +Hidden=Прихований +Resources=Ресурси +Source=Джерело +Prefix=Префікс +Before=Раніше +After=Після +IPAddress=IP-адреса +Frequency=Частота +IM=Миттєві повідомлення +NewAttribute=Новий атрибут +AttributeCode=Код атрибута +URLPhoto=URL-адреса фотографії/логотипа +SetLinkToAnotherThirdParty=Посилання на іншу третю сторону +LinkTo=Посилання на +LinkToProposal=Посилання на пропозицію +LinkToExpedition= Link to expedition +LinkToOrder=Посилання на замовлення +LinkToInvoice=Посилання на рахунок-фактуру +LinkToTemplateInvoice=Посилання на шаблон рахунка-фактури +LinkToSupplierOrder=Посилання на замовлення на покупку +LinkToSupplierProposal=Посилання на пропозицію постачальника +LinkToSupplierInvoice=Посилання на рахунок-фактуру постачальника +LinkToContract=Посилання на договір +LinkToIntervention=Посилання на втручання +LinkToTicket=Посилання на квиток +LinkToMo=Посилання на Mo +CreateDraft=Створити чернетку +SetToDraft=Назад до чернетки +ClickToEdit=Натисніть, щоб відредагувати +ClickToRefresh=Натисніть, щоб оновити +EditWithEditor=Редагувати за допомогою CKEditor +EditWithTextEditor=Редагувати за допомогою текстового редактора +EditHTMLSource=Редагувати джерело HTML +ObjectDeleted=Об’єкт %s видалено +ByCountry=За країною +ByTown=По місту +ByDate=За датою +ByMonthYear=За місяць/рік +ByYear=За роками +ByMonth=По місяцях +ByDay=Протягом дня +BySalesRepresentative=Через торгового представника +LinkedToSpecificUsers=Пов’язано з певним контактом користувача +NoResults=Немає результатів +AdminTools=Інструменти адміністратора +SystemTools=Системні інструменти +ModulesSystemTools=Інструменти модулів 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 +Element=Елемент +NoPhotoYet=Ще немає доступних зображень +Dashboard=Панель приладів +MyDashboard=Моя інформаційна панель +Deductible=Франшиза +from=від +toward=до +Access=Доступ +SelectAction=Виберіть дію +SelectTargetUser=Виберіть цільового користувача/співробітника +HelpCopyToClipboard=Використовуйте Ctrl+C, щоб скопіювати в буфер обміну +SaveUploadedFileWithMask=Збережіть файл на сервері з іменем " %s " (інакше "%s") +OriginFileName=Оригінальна назва файлу +SetDemandReason=Встановити джерело +SetBankAccount=Визначте банківський рахунок +AccountCurrency=Валюта рахунку +ViewPrivateNote=Переглянути нотатки +XMoreLines=%s рядок(и) приховано +ShowMoreLines=Показати більше/менше рядків +PublicUrl=Загальнодоступна URL-адреса +AddBox=Додати поле +SelectElementAndClick=Виберіть елемент і натисніть %s +PrintFile=Роздрукувати файл %s +ShowTransaction=Показати запис на банківському рахунку +ShowIntervention=Покажіть втручання +ShowContract=Показати договір +GoIntoSetupToChangeLogo=Щоб змінити логотип, перейдіть до Головна – Налаштування – Компанія, або перейдіть до Головна – Налаштування – Дисплей, щоб приховати. +Deny=Заперечити +Denied=Відмовлено +ListOf=Список %s +ListOfTemplates=Список шаблонів +Gender=Стать +Genderman=Чоловічий +Genderwoman=Жіночий Genderother=Інший -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 +ViewList=Перегляд списку +ViewGantt=Погляд Ганта +ViewKanban=Перегляд канбан +Mandatory=Обов'язковий +Hello=Привіт +GoodBye=До побачення +Sincerely=З повагою +ConfirmDeleteObject=Ви впевнені, що хочете видалити цей об’єкт? +DeleteLine=Видалити рядок +ConfirmDeleteLine=Ви впевнені, що хочете видалити цей рядок? +ErrorPDFTkOutputFileNotFound=Помилка: файл не створено. Будь ласка, переконайтеся, що команда 'pdftk' встановлена в каталозі, включеному в змінну середовища $PATH (лише для Linux/unix), або зверніться до свого системного адміністратора. +NoPDFAvailableForDocGenAmongChecked=Серед перевірених записів не було доступно PDF для створення документа +TooManyRecordForMassAction=Вибрано забагато записів для масової акції. Дія обмежена списком записів %s. +NoRecordSelected=Не вибрано жодного запису +MassFilesArea=Область для файлів, створених за допомогою масових дій +ShowTempMassFilesArea=Показати область файлів, створених масовими діями +ConfirmMassDeletion=Підтвердження масового видалення +ConfirmMassDeletionQuestion=Ви впевнені, що хочете видалити %s вибраний запис(и)? +RelatedObjects=Пов'язані об'єкти +ClassifyBilled=Класифікувати виставлений рахунок +ClassifyUnbilled=Класифікувати без рахунків Progress=Прогрес -ProgressShort=Progr. -FrontOffice=Front office -BackOffice=Back office -Submit=Submit -View=View +ProgressShort=програм. +FrontOffice=Фронт-офіс +BackOffice=Бек-офіс +Submit=Подати +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 +ExportFilteredList=Експортувати відфільтрований список +ExportList=Список експорту +ExportOptions=Параметри експорту +IncludeDocsAlreadyExported=Включити вже експортовані документи +ExportOfPiecesAlreadyExportedIsEnable=Експорт уже експортованих елементів увімкнено +ExportOfPiecesAlreadyExportedIsDisable=Експорт уже експортованих частин вимкнено +AllExportedMovementsWereRecordedAsExported=Усі експортовані переміщення були записані як експортовані +NotAllExportedMovementsCouldBeRecordedAsExported=Не всі експортовані переміщення можна записати як експортовані +Miscellaneous=Різне 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 +GroupBy=Групувати за... +ViewFlatList=Переглянути плоский список +ViewAccountList=Переглянути бухгалтерську книгу +ViewSubAccountList=Перегляд книги субрахунків +RemoveString=Видалити рядок "%s" +SomeTranslationAreUncomplete=Деякі з пропонованих мов можуть бути лише частково перекладені або можуть містити помилки. Будь ласка, допоможіть виправити свою мову, зареєструвавшись на https://transifex.com/projects/p/dolibarr/ , щоб додати свої покращення. +DirectDownloadLink=Загальнодоступне посилання для скачування +PublicDownloadLinkDesc=Для завантаження файлу потрібне лише посилання +DirectDownloadInternalLink=Приватне посилання для скачування +PrivateDownloadLinkDesc=Ви повинні увійти в систему та отримати дозвіл на перегляд або завантаження файлу +Download=Завантажити +DownloadDocument=Завантажити документ +ActualizeCurrency=Оновити курс валюти +Fiscalyear=Фіскальний рік +ModuleBuilder=Конструктор модулів і додатків +SetMultiCurrencyCode=Встановити валюту +BulkActions=Масові дії +ClickToShowHelp=Натисніть, щоб показати підказку +WebSite=Веб-сайт +WebSites=веб-сайти +WebSiteAccounts=Облікові записи веб-сайтів +ExpenseReport=Звіт про витрати +ExpenseReports=Звіти про витрати 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 і банк +AutomaticallyCalculated=Автоматично розраховується +TitleSetToDraft=Поверніться до чернетки +ConfirmSetToDraft=Ви впевнені, що хочете повернутися до статусу чернетки? +ImportId=Імпортувати ідентифікатор 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 +EMailTemplates=Шаблони електронних листів +FileNotShared=Файл не надано для зовнішнього доступу +Project=Проект +Projects=Проекти +LeadOrProject=Свинець | Проект +LeadsOrProjects=Веде | Проекти +Lead=Вести +Leads=Веде +ListOpenLeads=Список відкритих потенційних клієнтів +ListOpenProjects=Перелік відкритих проектів +NewLeadOrProject=Новий лідер або проект +Rights=Дозволи +LineNb=№ рядка +IncotermLabel=Інкотермс +TabLetteringCustomer=Написи клієнта +TabLetteringSupplier=Напис продавця +Monday=понеділок +Tuesday=вівторок +Wednesday=середа +Thursday=четвер +Friday=п'ятниця +Saturday=субота +Sunday=неділя +MondayMin=Пн +TuesdayMin=вт +WednesdayMin=ми 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 +FridayMin=о +SaturdayMin=сб +SundayMin=вд +Day1=понеділок +Day2=вівторок +Day3=середа +Day4=четвер +Day5=п'ятниця +Day6=субота +Day0=неділя +ShortMonday=М +ShortTuesday=Т +ShortWednesday=В +ShortThursday=Т +ShortFriday=Ф +ShortSaturday=С +ShortSunday=С +one=один +two=два +three=три +four=чотири +five=п'ять +six=шість +seven=сім +eight=вісім +nine=дев'ять +ten=десять +eleven=одинадцять +twelve=дванадцять +thirteen=третій десяток +fourteen=чотирнадцять +fifteen=п'ятнадцять +sixteen=шістнадцять +seventeen=сімнадцять +eighteen=вісімнадцять +nineteen=дев'ятнадцять +twenty=двадцять +thirty=тридцять +forty=сорок +fifty=п'ятдесят +sixty=шістдесят +seventy=сімдесят +eighty=вісімдесят +ninety=дев'яносто +hundred=сотня +thousand=тис +million=мільйонів +billion=млрд +trillion=трильйон +quadrillion=квадрильйон +SelectMailModel=Виберіть шаблон електронної пошти +SetRef=Встановити реф +Select2ResultFoundUseArrows=Знайдено деякі результати. Використовуйте стрілки для вибору. +Select2NotFound=Результат не знайдено +Select2Enter=Введіть +Select2MoreCharacter=або більше символів +Select2MoreCharacters=або більше символів +Select2MoreCharactersMore= Синтаксис пошуку:
    | OR (a|b)
    * Any character (a*b)
    ^ Start with (^ab)
    $ End with ( ab$)
    +Select2LoadingMoreResults=Завантаження інших результатів... +Select2SearchInProgress=Триває пошук... +SearchIntoThirdparties=Треті особи +SearchIntoContacts=Контакти +SearchIntoMembers=Члени +SearchIntoUsers=Користувачі +SearchIntoProductsOrServices=Продукти або послуги +SearchIntoBatch=Лоти / Серіали +SearchIntoProjects=Проекти +SearchIntoMO=Замовлення на виготовлення +SearchIntoTasks=Завдання +SearchIntoCustomerInvoices=Рахунки-фактури клієнта +SearchIntoSupplierInvoices=Рахунки постачальників +SearchIntoCustomerOrders=Замовлення на продаж +SearchIntoSupplierOrders=Замовлення на закупівлю +SearchIntoCustomerProposals=Комерційні пропозиції +SearchIntoSupplierProposals=Пропозиції постачальників +SearchIntoInterventions=Втручання +SearchIntoContracts=Контракти +SearchIntoCustomerShipments=Відправки клієнтам +SearchIntoExpenseReports=Звіти про витрати +SearchIntoLeaves=Залишати SearchIntoTickets=Заявки -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 +SearchIntoCustomerPayments=Виплати клієнтів +SearchIntoVendorPayments=Платежі постачальників +SearchIntoMiscPayments=Різні виплати +CommentLink=Коментарі +NbComments=Кількість коментарів +CommentPage=Місце для коментарів +CommentAdded=Коментар додано +CommentDeleted=Коментар видалено +Everybody=Усі +PayedBy=Оплачено +PayedTo=Оплачено до +Monthly=Щомісячно +Quarterly=Щоквартально +Annual=Річний +Local=Місцеві +Remote=Дистанційно +LocalAndRemote=Місцеві та віддалені +KeyboardShortcut=Комбінація клавіш AssignedTo=Призначено -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=Видалити чернетку +ConfirmMassDraftDeletion=Підтвердження масового видалення чернетки +FileSharedViaALink=Файл надано за загальнодоступним посиланням +SelectAThirdPartyFirst=Спочатку виберіть третю сторону... +YouAreCurrentlyInSandboxMode=Зараз ви перебуваєте в режимі «пісочниці» %s +Inventory=Інвентаризація +AnalyticCode=Аналітичний код 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 +ShowCompanyInfos=Показати інформацію про компанію +ShowMoreInfos=Показати більше інформації +NoFilesUploadedYet=Спершу завантажте документ +SeePrivateNote=Дивіться приватну замітку +PaymentInformation=Інформація про оплату +ValidFrom=Діє з +ValidUntil=Діє до +NoRecordedUsers=Немає користувачів +ToClose=Закрити +ToRefuse=Відмовлятися +ToProcess=В процесі +ToApprove=Затвердити +GlobalOpenedElemView=Глобальний погляд +NoArticlesFoundForTheKeyword=Для ключового слова ' %s стаття не знайдена ' +NoArticlesFoundForTheCategory=Для категорії не знайдено жодної статті +ToAcceptRefuse=Прийняти | відмовитися +ContactDefault_agenda=Подія +ContactDefault_commande=Замовити +ContactDefault_contrat=Договір ContactDefault_facture=Рахунок-фактура -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 +ContactDefault_fichinter=Втручання +ContactDefault_invoice_supplier=Рахунок-фактура постачальника +ContactDefault_order_supplier=Замовлення на придбання +ContactDefault_project=Проект +ContactDefault_project_task=Завдання +ContactDefault_propal=Пропозиція +ContactDefault_supplier_proposal=Пропозиція постачальника +ContactDefault_ticket=Квиток +ContactAddedAutomatically=Контакт додано зі сторонніх ролей контакту +More=Більше +ShowDetails=Показати деталі +CustomReports=Спеціальні звіти +StatisticsOn=Статистика на +SelectYourGraphOptionsFirst=Виберіть параметри графіка, щоб побудувати графік +Measures=Заходи +XAxis=Вісь Х +YAxis=Вісь Y +StatusOfRefMustBe=Статус %s має бути %s +DeleteFileHeader=Підтвердьте видалення файлу +DeleteFileText=Ви дійсно хочете видалити цей файл? +ShowOtherLanguages=Показати інші мови +SwitchInEditModeToAddTranslation=Перейдіть у режим редагування, щоб додати переклади для цієї мови +NotUsedForThisCustomer=Не використовується для цього клієнта +AmountMustBePositive=Сума має бути додатною +ByStatus=За статусом +InformationMessage=Інформація +Used=Використовується +ASAP=Якнайшвидше +CREATEInDolibarr=Створено запис %s +MODIFYInDolibarr=Запис %s змінено +DELETEInDolibarr=Запис %s видалено +VALIDATEInDolibarr=Запис %s підтверджено +APPROVEDInDolibarr=Запис %s затверджено +DefaultMailModel=Модель пошти за замовчуванням +PublicVendorName=Публічне ім'я постачальника +DateOfBirth=Дата народження +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Термін дії маркера безпеки закінчився, тому дію скасовано. Будь ласка спробуйте ще раз. +UpToDate=Актуальний +OutOfDate=Застарілий +EventReminder=Нагадування про подію +UpdateForAllLines=Оновлення для всіх ліній +OnHold=На утриманні +Civility=Цивілізованість +AffectTag=Тег впливу +CreateExternalUser=Створити зовнішнього користувача +ConfirmAffectTag=Вплив масових тегів +ConfirmAffectTagQuestion=Ви впевнені, що хочете вплинути на теги для вибраних записів %s? +CategTypeNotFound=Не знайдено тип тегу для типу записів +CopiedToClipboard=Скопійовано в буфер обміну +InformationOnLinkToContract=Ця сума є лише підсумком усіх рядків договору. Поняття часу не враховується. +ConfirmCancel=Ви впевнені, що хочете скасувати? +EmailMsgID=Надіслати електронний лист MsgID +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=Постраждали торгові представники +CommercialAffected=Постраждав торговий представник +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/uk_UA/margins.lang b/htdocs/langs/uk_UA/margins.lang index a91b139ec7b..1c4297ff443 100644 --- a/htdocs/langs/uk_UA/margins.lang +++ b/htdocs/langs/uk_UA/margins.lang @@ -1,45 +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). +Margin=Маржа +Margins=Поля +TotalMargin=Загальна маржа +MarginOnProducts=Маржа / Продукти +MarginOnServices=Маржа / Послуги +MarginRate=Ставка маржі +MarkRate=Оцінка курсу +DisplayMarginRates=Відображення маржових ставок +DisplayMarkRates=Відображення балів +InputPrice=Вхідна ціна +margin=Управління маржою прибутку +margesSetup=Налаштування управління маржою прибутку +MarginDetails=Деталі маржі +ProductMargins=Націнка продукту +CustomerMargins=Маржа клієнта +SalesRepresentativeMargins=Маржа торгового представника +ContactOfInvoice=Контакт рахунка-фактури +UserMargins=Поля користувача +ProductService=Продукт або Послуга +AllProducts=Усі продукти та послуги +ChooseProduct/Service=Виберіть товар або послугу +ForceBuyingPriceIfNull=Змінити ціну купівлі/собівартості до ціни продажу, якщо не визначено +ForceBuyingPriceIfNullDetails=Якщо під час додавання нового рядка ціна купівлі/собівартості не вказана, а цей параметр «ВКЛЮЧЕНО», маржа становитиме 0%% на новому рядку (ціна купівлі/собівартість = ціна продажу). Якщо цей параметр «ВИМКНЕНО» (рекомендовано), поле буде дорівнювати значенню, запропонованому за замовчуванням (і може бути 100%%, якщо значення за замовчуванням не знайдено). +MARGIN_METHODE_FOR_DISCOUNT=Метод маржі для глобальних знижок +UseDiscountAsProduct=Як продукт +UseDiscountAsService=Як послуга +UseDiscountOnTotal=На проміжний підсумок +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Визначає, чи розглядається глобальна знижка як продукт, послуга або лише як проміжний підсумок для розрахунку маржі. +MARGIN_TYPE=Покупка/Собівартість запропонована за замовчуванням для розрахунку маржі +MargeType1=Маржа за ціною найкращого постачальника +MargeType2=Маржа за середньозваженою ціною (WAP) +MargeType3=Націнка на собівартість +MarginTypeDesc=* Маржа за найкращою ціною покупки = Ціна продажу - Найкраща ціна постачальника, визначена на картці продукту
    * Маржа за середньозваженою ціною (WAP) = Ціна продажу - Середня зважена ціна продукту (WAP) або найкраща ціна постачальника, якщо WAP ще не визначено
    * Маржа за собівартістю = ціна продажу - собівартість визначена на картці продукту або WAP, якщо собівартість не визначена, або найкраща ціна постачальника, якщо WAP ще не визначено +CostPrice=Ціна +UnitCharges=Одиничні збори +Charges=Звинувачення +AgentContactType=Тип контакту з комерційним агентом +AgentContactTypeDetails=Визначте, який тип контакту (пов’язаний у рахунках-фактурах) буде використовуватися для звіту про маржу за контактом/адресою. Зауважте, що читання статистики контакту не є надійним, оскільки в більшості випадків контакт може не бути чітко визначений у рахунках-фактурах. +rateMustBeNumeric=Оцінка має бути числовим значенням +markRateShouldBeLesserThan100=Оцінка має бути нижче 100 +ShowMarginInfos=Показати інформацію про маржу +CheckMargins=Деталь полів +MarginPerSaleRepresentativeWarning=Звіт про маржу на користувача використовує зв’язок між третіми сторонами та торговими представниками для обчислення маржі кожного торгового представника. Оскільки деякі треті сторони можуть не мати спеціального торгового представника, а деякі треті сторони можуть бути пов’язані з кількома, деякі суми можуть не включатися в цей звіт (якщо немає торгового представника), а деякі можуть відображатися в різних рядках (для кожного торгового представника). . diff --git a/htdocs/langs/uk_UA/members.lang b/htdocs/langs/uk_UA/members.lang index 7eb3cece4ef..9ec8c48ab53 100644 --- a/htdocs/langs/uk_UA/members.lang +++ b/htdocs/langs/uk_UA/members.lang @@ -1,220 +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=Business 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 -NewMember=New member -MemberType=Member type -MemberTypeId=Member type id -MemberTypeLabel=Member type label -MembersTypes=Members types +MembersArea=Зона членів +MemberCard=Членська картка +SubscriptionCard=Передплатна картка +Member=Член +Members=Члени +ShowMember=Показати картку учасників +UserNotLinkedToMember=Користувач не пов’язаний з учасником +ThirdpartyNotLinkedToMember=Третя сторона не пов’язана з учасником +MembersTickets=Лист членської адреси +FundationMembers=Члени фундації +ListOfValidatedPublicMembers=Список зареєстрованих публічних членів +ErrorThisMemberIsNotPublic=Цей учасник не є загальнодоступним +ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s , login: %s ) is already linked to a third party %s . Спершу видаліть це посилання, оскільки третя сторона не може бути пов’язана лише з учасником (і навпаки). +ErrorUserPermissionAllowsToLinksToItselfOnly=З міркувань безпеки вам потрібно надати дозвіл редагувати всіх користувачів, щоб мати можливість пов’язувати учасника з іншим користувачем. +SetLinkToUser=Посилання на користувача Dolibarr +SetLinkToThirdParty=Посилання на третю сторону Dolibarr +MembersCards=Генерація карток для учасників +MembersList=Список членів +MembersListToValid=Список членів проекту (підлягає підтвердженню) +MembersListValid=Список дійсних членів +MembersListUpToDate=Список дійсних учасників з актуальним внеском +MembersListNotUpToDate=Список дійсних членів із застарілим внеском +MembersListExcluded=Список виключених членів +MembersListResiliated=Список припинених членів +MembersListQualified=Список кваліфікованих членів +MenuMembersToValidate=Члени проекту +MenuMembersValidated=Підтверджені учасники +MenuMembersExcluded=Виключені учасники +MenuMembersResiliated=Припинені члени +MembersWithSubscriptionToReceive=Члени з внеском отримати +MembersWithSubscriptionToReceiveShort=Внески для отримання +DateSubscription=Дата членства +DateEndSubscription=Дата закінчення членства +EndSubscription=Кінець членства +SubscriptionId=Ідентифікатор внеску +WithoutSubscription=Без внеску +MemberId=Member Id +MemberRef=Member Ref +NewMember=Новий учасник +MemberType=Тип члена +MemberTypeId=Ідентифікатор типу члена +MemberTypeLabel=Мітка типу члена +MembersTypes=Типи членів MemberStatusDraft=Проект (має бути підтверджений) MemberStatusDraftShort=Проект -MemberStatusActive=Validated (waiting contribution) +MemberStatusActive=Підтверджено (очікує внесок) MemberStatusActiveShort=Підтверджений -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) +MemberStatusActiveLate=Термін дії внеску закінчився +MemberStatusActiveLateShort=Термін дії закінчився +MemberStatusPaid=Підписка актуальна +MemberStatusPaidShort=Актуально +MemberStatusExcluded=Виключений учасник +MemberStatusExcludedShort=Виключено +MemberStatusResiliated=Припинений член +MemberStatusResiliatedShort=Припинено +MembersStatusToValid=Члени проекту +MembersStatusExcluded=Виключені учасники +MembersStatusResiliated=Припинені члени +MemberStatusNoSubscription=Підтверджено (внесок не потрібен) MemberStatusNoSubscriptionShort=Підтверджений -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 -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 +SubscriptionNotNeeded=Внесок не потрібен +NewCotisation=Новий внесок +PaymentSubscription=Новий внесок +SubscriptionEndDate=Дата закінчення підписки +MembersTypeSetup=Налаштування типу членів +MemberTypeModified=Тип члена змінено +DeleteAMemberType=Видалити тип члена +ConfirmDeleteMemberType=Ви впевнені, що хочете видалити цей тип члена? +MemberTypeDeleted=Тип члена видалено +MemberTypeCanNotBeDeleted=Тип члена не можна видалити +NewSubscription=Новий внесок +NewSubscriptionDesc=Ця форма дозволяє зареєструвати свою підписку як нового члена фонду. Якщо ви хочете поновити свою підписку (якщо вже є учасником), зверніться до ради фонду електронною поштою %s. +Subscription=Внесок +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=Внески +SubscriptionLate=Пізно +SubscriptionNotReceived=Внесок так і не отримав +ListOfSubscriptions=Список внесків +SendCardByMail=Надішліть картку електронною поштою +AddMember=Створити учасника +NoTypeDefinedGoToSetup=Типів членів не визначено. Перейдіть до меню «Типи учасників» +NewMemberType=Новий тип члена +WelcomeEMail=Вітальна електронна пошта +SubscriptionRequired=Необхідний внесок +DeleteType=Видалити +VoteAllowed=Голосування дозволено +Physical=Індивідуальний +Moral=корпорація +MorAndPhy=Корпорація та фізична особа +Reenable=Увімкніть повторно +ExcludeMember=Виключити учасника +Exclude=Виключити +ConfirmExcludeMember=Ви впевнені, що хочете виключити цього учасника? +ResiliateMember=Припиняти учасника +ConfirmResiliateMember=Ви впевнені, що хочете виключити цього учасника? +DeleteMember=Видалити учасника +ConfirmDeleteMember=Ви впевнені, що хочете видалити цього учасника (Видалення учасника призведе до видалення всіх його внесків)? +DeleteSubscription=Видалити підписку +ConfirmDeleteSubscription=Ви впевнені, що хочете видалити цей внесок? +Filehtpasswd=htpasswd файл +ValidateMember=Підтвердити учасника +ConfirmValidateMember=Ви впевнені, що хочете підтвердити цього учасника? +FollowingLinksArePublic=Наведені нижче посилання є відкритими сторінками, які не захищені жодним дозволом Dolibarr. Це не відформатовані сторінки, наведені як приклад, щоб показати, як перерахувати базу даних учасників. +PublicMemberList=Публічний список учасників +BlankSubscriptionForm=Форма публічної самореєстрації +BlankSubscriptionFormDesc=Dolibarr може надати вам загальнодоступну URL-адресу/веб-сайт, щоб зовнішні відвідувачі могли попросити підписатися на фонд. Якщо модуль онлайн-платежів увімкнено, платіжна форма також може бути надана автоматично. +EnablePublicSubscriptionForm=Увімкніть загальнодоступний веб-сайт із формою самостійної підписки +ForceMemberType=Примусовий тип члена +ExportDataset_member_1=Члени та внески +ImportDataset_member_1=Члени +LastMembersModified=Останні змінені члени %s +LastSubscriptionsModified=Останні змінені внески %s String=Текст -Text=Text +Text=Текст Int=Int -DateAndTime=Date and time -PublicMemberCard=Member public card -SubscriptionNotRecorded=Contribution not recorded -AddSubscription=Create contribution -ShowSubscription=Show contribution +DateAndTime=Дата і час +PublicMemberCard=Громадська картка члена +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 -CardContent=Content of your member card +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 -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 -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 -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 -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. +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=Формат сторінки карток +DescADHERENT_CARD_HEADER_TEXT=Текст, надрукований поверх карток учасників +DescADHERENT_CARD_TEXT=Текст, надрукований на картках учасників (вирівняти зліва) +DescADHERENT_CARD_TEXT_RIGHT=Текст, надрукований на картках учасників (вирівняти праворуч) +DescADHERENT_CARD_FOOTER_TEXT=Текст надрукований у нижній частині картки учасників +ShowTypeCard=Показати тип "%s" +HTPasswordExport=генерація файлу htpassword +NoThirdPartyAssociatedToMember=З цим учасником не пов’язана третя сторона +MembersAndSubscriptions=Члени та внески +MoreActions=Додаткова дія під час запису +MoreActionsOnSubscription=Додаткова дія, запропонована за замовчуванням під час запису внеску, також виконується автоматично під час онлайн-оплати внеску +MoreActionBankDirect=Створіть прямий запис на банківському рахунку +MoreActionBankViaInvoice=Створіть рахунок-фактуру та оплату на банківський рахунок +MoreActionInvoiceOnly=Створіть рахунок-фактуру без оплати +LinkToGeneratedPages=Створення візиток або адресних листів +LinkToGeneratedPagesDesc=Цей екран дозволяє створювати PDF-файли з візитними картками для всіх ваших учасників або окремого учасника. +DocForAllMembersCards=Згенеруйте візитні картки для всіх учасників +DocForOneMemberCards=Створіть візитні картки для певного учасника +DocForLabels=Створення адресних листів +SubscriptionPayment=Сплата внеску +LastSubscriptionDate=Дата останнього внеску +LastSubscriptionAmount=Сума останнього внеску +LastMemberType=Тип останнього учасника +MembersStatisticsByCountries=Статистика учасників за країнами +MembersStatisticsByState=Статистика членів за штатами/провінціями +MembersStatisticsByTown=Статистика учасників за містами +MembersStatisticsByRegion=Статистика учасників за регіонами +NbOfMembers=Загальна кількість членів +NbOfActiveMembers=Загальна кількість поточних активних членів +NoValidatedMemberYet=Перевірених учасників не знайдено +MembersByCountryDesc=На цьому екрані відображається статистика учасників за країнами. Графіки та діаграми залежать від наявності онлайн-служби графіків Google, а також від наявності робочого інтернет-з’єднання. +MembersByStateDesc=Цей екран показує вам статистику членів за штатами/провінціями/кантоном. +MembersByTownDesc=На цьому екрані відображається статистика учасників за містами. +MembersByNature=На цьому екрані відображається статистика учасників за характером. +MembersByRegion=На цьому екрані відображається статистика учасників за регіонами. +MembersStatisticsDesc=Виберіть статистику, яку хочете прочитати... +MenuMembersStats=Статистика +LastMemberDate=Остання дата членства +LatestSubscriptionDate=Остання дата внеску +MemberNature=Характер члена +MembersNature=Характер членів +Public=Інформація є загальнодоступною +NewMemberbyWeb=Додано нового учасника. Очікує Схвалення +NewMemberForm=Нова форма члена +SubscriptionsStatistics=Статистика внесків +NbOfSubscriptions=Кількість внесків +AmountOfSubscriptions=Сума, зібрана з внесків +TurnoverOrBudget=Оборот (для компанії) або бюджет (для фонду) +DefaultAmount=Сума внеску за замовчуванням +CanEditAmount=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=Ставка ПДВ для внесків +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=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/uk_UA/modulebuilder.lang b/htdocs/langs/uk_UA/modulebuilder.lang index a7824146cde..057ecd40626 100644 --- a/htdocs/langs/uk_UA/modulebuilder.lang +++ b/htdocs/langs/uk_UA/modulebuilder.lang @@ -1,147 +1,155 @@ # 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 +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. +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 +ModuleBuilderDesc4=Модуль визначається як «доступний для редагування», коли файл %s існує в кореневому каталозі модуля NewModule=Новий модуль -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 +NewObjectInModulebuilder=Новий об'єкт +NewDictionary=New dictionary +ModuleKey=Ключ модуля +ObjectKey=Ключ об'єкта +DicKey=Dictionary key +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=Ви можете створити тут "готовий до розповсюдження" файл пакета (нормалізований файл .zip) вашого модуля та файл документації "готовий до розповсюдження". Просто натисніть кнопку, щоб створити пакет або файл документації. +EnterNameOfModuleToDeleteDesc=Ви можете видалити свій модуль. ПОПЕРЕДЖЕННЯ: Усі файли кодування модуля (згенеровані або створені вручну) ТА структуровані дані та документація будуть видалені! +EnterNameOfObjectToDeleteDesc=Ви можете видалити об’єкт. ПОПЕРЕДЖЕННЯ: усі файли кодування (згенеровані чи створені вручну), пов’язані з об’єктом, будуть видалені! +DangerZone=НЕБЕЗПЕЧНА ЗОНА +BuildPackage=Збірний пакет +BuildPackageDesc=Ви можете створити zip-пакет своєї програми, щоб ви були готові розповсюдити його на будь-якому 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=Шлях до zip пакета модуля/програми +PathToModuleDocumentation=Шлях до файлу документації модуля/програми (%s) +SpaceOrSpecialCharAreNotAllowed=Пробіли або спеціальні символи не допускаються. +FileNotYetGenerated=Файл ще не згенерований +RegenerateClassAndSql=Примусове оновлення файлів .class і .sql +RegenerateMissingFiles=Згенерувати відсутні файли +SpecificationFile=Файл документації +LanguageFile=Файл для мови +ObjectProperties=Властивості об'єкта +ConfirmDeleteProperty=Ви впевнені, що хочете видалити властивість %s ? Це змінить код у класі PHP, але також видалить стовпець із визначення об’єкта в таблиці. +NotNull=Не NULL +NotNullDesc=1=Встановити базу даних у значення NOT NULL, 0=Дозволити нульові значення, -1=Дозволити нульові значення шляхом примусового значення NULL, якщо порожнє ('' або 0) +SearchAll=Використовується для "шукати все" +DatabaseIndex=Індекс бази даних +FileAlreadyExists=Файл %s вже існує +TriggersFile=Файл для коду тригерів +HooksFile=Файл для коду хуків +ArrayOfKeyValues=Масив ключ-val +ArrayOfKeyValuesDesc=Масив ключів і значень, якщо поле є комбінованим списком із фіксованими значеннями +WidgetFile=Файл віджета +CSSFile=файл CSS +JSFile=Файл Javascript +ReadmeFile=Файл Readme +ChangeLog=Файл журналу змін +TestClassFile=Файл для класу модульного тесту PHP +SqlFile=файл SQL +PageForLib=Файл для загальної бібліотеки PHP +PageForObjLib=Файл для бібліотеки PHP, присвячений об'єкту +SqlFileExtraFields=Файл SQL для додаткових атрибутів +SqlFileKey=sql файл для ключів +SqlFileKeyExtraFields=Sql файл для ключів додаткових атрибутів +AnObjectAlreadyExistWithThisNameAndDiffCase=Об’єкт з таким ім’ям і іншим регістром уже існує +UseAsciiDocFormat=Ви можете використовувати формат Markdown, але рекомендується використовувати формат Asciidoc (порівняння між .md і .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=Є мірою +DirScanned=Каталог відскановано +NoTrigger=Без тригера +NoWidget=Немає віджета +GoToApiExplorer=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 +IsAMeasureDesc=Чи можна сумувати значення поля, щоб отримати підсумок у списку? (Приклади: 1 або 0) +SearchAllDesc=Чи використовується поле для пошуку за допомогою інструмента швидкого пошуку? (Приклади: 1 або 0) +SpecDefDesc=Введіть сюди всю документацію, яку ви хочете надати зі своїм модулем, яка ще не визначена іншими вкладками. Ви можете використовувати .md або краще, багатий синтаксис .asciidoc. +LanguageDefDesc=Введіть у ці файли всі ключі та переклад для кожного мовного файлу. +MenusDefDesc=Визначте тут меню, надані вашим модулем +DictionariesDefDesc=Визначте тут словники, надані вашим модулем +PermissionsDefDesc=Визначте тут нові дозволи, надані вашим модулем +MenusDefDescTooltip=Меню, надане вашим модулем/додатком, визначено в масиві $this->menus у файлі дескриптора модуля. Ви можете редагувати цей файл вручну або використовувати вбудований редактор.

    Примітка. Після визначення (і повторної активації модуля) меню також відображаються в редакторі меню, доступному для користувачів адміністратора на %s. +DictionariesDefDescTooltip=Словники, надані вашим модулем/додатком, визначаються в масиві $this->dictionaries у файлі дескриптора модуля. Ви можете редагувати цей файл вручну або використовувати вбудований редактор.

    Примітка. Після визначення (і повторної активації модуля) словники також відображаються в області налаштування користувачам адміністратора на %s. +PermissionsDefDescTooltip=Дозволи, надані вашим модулем/програмою, визначаються в масиві $this->rights у файлі дескриптора модуля. Ви можете редагувати цей файл вручну або використовувати вбудований редактор.

    Примітка. Після визначення (і повторної активації модуля) дозволи відображаються в налаштуваннях дозволів за замовчуванням %s. +HooksDefDesc=Визначте у властивості module_parts['hooks'] , у дескрипторі модуля, контекст хуків, якими ви хочете керувати (список контекстів можна знайти за допомогою пошуку за ' a0aee83365837f8z0 in a0aee83365837f8z07f37f837f8z07f37f837f87f37f37f27f37f27f37f27f37f87). файл hook для додавання коду ваших підключених функцій (функції, які можна підключити, можна знайти за допомогою пошуку за ' executeHooks ' в коді ядра). +TriggerDefDesc=Визначте у файлі тригера код, який ви хочете виконати, коли виконується зовнішня для вашого модуля бізнес-подія (події, ініційовані іншими модулями). +SeeIDsInUse=Перегляньте ідентифікатори, які використовуються у вашій установці +SeeReservedIDsRangeHere=Перегляньте діапазон зарезервованих ідентифікаторів +ToolkitForDevelopers=Набір інструментів для розробників Dolibarr +TryToUseTheModuleBuilder=Якщо ви володієте знаннями SQL і PHP, ви можете скористатися власним майстром створення модулів.
    Увімкніть модуль %s і скористайтеся майстром, клацнувши a014fc1b95 меню вгорі праворуч.
    Попередження: це розширена функція розробника, експериментуйте , а не на своєму виробничому сайті! +SeeTopRightMenu=Дивіться у верхньому правому меню +AddLanguageFile=Додати мовний файл +YouCanUseTranslationKey=Тут можна використовувати ключ, який є ключем перекладу, знайденим у мовному файлі (див. вкладку «Мови») +DropTableIfEmpty=(Знищити таблицю, якщо порожня) +TableDoesNotExists=Таблиця %s не існує +TableDropped=Таблицю %s видалено +InitStructureFromExistingTable=Побудуйте рядок масиву структури існуючої таблиці +UseAboutPage=Не створюйте сторінку про програму +UseDocFolder=Вимкніть папку з документацією +UseSpecificReadme=Використовуйте спеціальний ReadMe +ContentOfREADMECustomized=Примітка. Вміст файлу README.md було замінено на конкретне значення, визначене під час налаштування ModuleBuilder. +RealPathOfModule=Реальний шлях модуля +ContentCantBeEmpty=Вміст файлу не може бути порожнім +WidgetDesc=Тут ви можете створювати та редагувати віджети, які будуть вбудовані у ваш модуль. +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, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]]
    '1' означає, що ми додаємо кнопку + після комбінації для створення запису
    'фільтр' є умовою sql, наприклад: 'status=1 AND fk_user=__USER_ID__ AND entity IN (__SHARED)_ENT. +AsciiToHtmlConverter=Конвертер Ascii в HTML +AsciiToPdfConverter=Конвертер Ascii в PDF +TableNotEmptyDropCanceled=Стіл не порожній. Викидання скасовано. +ModuleBuilderNotAllowed=Конструктор модулів доступний, але не дозволений вашому користувачеві. +ImportExportProfiles=Імпорт і експорт профілів +ValidateModBuilderDesc=Встановіть для цього значення 1, якщо ви хочете, щоб метод $this->validateField() об’єкта був викликаний для перевірки вмісту поля під час вставки або оновлення. Встановіть 0, якщо перевірка не потрібна. +WarningDatabaseIsNotUpdated=Попередження: база даних не оновлюється автоматично, ви повинні знищити таблиці та вимкнути-ввімкнути модуль для відтворення таблиць +LinkToParentMenu=Батьківське меню (fk_xxxxmenu) +ListOfTabsEntries=Список записів вкладки +TabsDefDesc=Визначте тут вкладки, надані вашим модулем +TabsDefDescTooltip=Вкладки, надані вашим модулем/додатком, визначаються в масиві $this->tabs у файлі дескриптора модуля. Ви можете редагувати цей файл вручну або використовувати вбудований редактор. diff --git a/htdocs/langs/uk_UA/mrp.lang b/htdocs/langs/uk_UA/mrp.lang index 74bed0d9186..8b58e9fb5ff 100644 --- a/htdocs/langs/uk_UA/mrp.lang +++ b/htdocs/langs/uk_UA/mrp.lang @@ -1,109 +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 -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 +Mrp=Замовлення на виготовлення +MOs=Замовлення на виготовлення +ManufacturingOrder=Замовлення на виготовлення +MRPDescription=Модуль для управління виробництвом і замовленнями на виробництво (МО). +MRPArea=Зона MRP +MrpSetupPage=Налаштування модуля MRP +MenuBOM=Специфікації матеріалів +LatestBOMModified=Останні зміни %s Специфікації матеріалів +LatestMOModified=Останні %s Змінено замовлення на виробництво +Bom=Специфікація матеріалів +BillOfMaterials=Специфікація матеріалів +BillOfMaterialsLines=Лінії переліку матеріалів +BOMsSetup=Налаштування специфікації модуля +ListOfBOMs=Перелік технічних документів - BOM +ListOfManufacturingOrders=Список замовлень на виготовлення +NewBOM=Нова специфікація матеріалів +ProductBOMHelp=Продукт для створення (або розбирання) за допомогою цієї специфікації.
    Примітка. Продукти з властивістю «Природа продукту» = «Сировина» не відображаються в цьому списку. +BOMsNumberingModules=Шаблони нумерації BOM +BOMsModelModule=Шаблони документів BOM +MOsNumberingModules=Шаблони нумерації МО +MOsModelModule=Шаблони документів МО +FreeLegalTextOnBOMs=Вільний текст на документ специфікації +WatermarkOnDraftBOMs=Водяний знак на чернетці BOM +FreeLegalTextOnMOs=Вільний текст на документ МО +WatermarkOnDraftMOs=Водяний знак на чернетці МО +ConfirmCloneBillOfMaterials=Ви впевнені, що хочете клонувати перелік матеріалів %s? +ConfirmCloneMo=Ви впевнені, що хочете клонувати замовлення на виробництво %s? +ManufacturingEfficiency=Ефективність виробництва +ConsumptionEfficiency=Ефективність споживання +ValueOfMeansLoss=Значення 0,95 означає в середньому 5%% втрати під час виготовлення або розбирання +ValueOfMeansLossForProductProduced=Значення 0,95 означає в середньому 5%% втрати виробленого продукту +DeleteBillOfMaterials=Видалити специфікацію +DeleteMo=Видалити замовлення на виробництво +ConfirmDeleteBillOfMaterials=Ви впевнені, що хочете видалити цей перелік матеріалів? +ConfirmDeleteMo=Ви впевнені, що хочете видалити це замовлення на виробництво? +MenuMRP=Замовлення на виготовлення +NewMO=Нове замовлення на виробництво +QtyToProduce=Кількість для виробництва +DateStartPlannedMo=Дата початку запланована +DateEndPlannedMo=Дата закінчення запланована +KeepEmptyForAsap=Порожній означає «Якнайшвидше» +EstimatedDuration=Орієнтовна тривалість +EstimatedDurationDesc=Орієнтовна тривалість виготовлення (або розбирання) цього продукту з використанням цієї специфікації +ConfirmValidateBom=Ви впевнені, що хочете перевірити специфікацію з посиланням %s (ви зможете використовувати її для створення нових виробничих замовлень) +ConfirmCloseBom=Ви впевнені, що хочете скасувати цю специфікацію (ви більше не зможете використовувати її для створення нових виробничих замовлень)? +ConfirmReopenBom=Ви впевнені, що хочете повторно відкрити цю специфікацію (ви зможете використовувати її для створення нових виробничих замовлень) +StatusMOProduced=Вироблено +QtyFrozen=Заморожена кількість +QuantityFrozen=Заморожена кількість +QuantityConsumedInvariable=Коли цей прапор встановлений, споживана кількість завжди є визначеним значенням і не є відносно виробленої кількості. +DisableStockChange=Зміна запасів вимкнена +DisableStockChangeHelp=Коли цей прапор встановлений, на цьому продукті немає змін на складі, незалежно від спожитої кількості +BomAndBomLines=Спеціальні та лінії +BOMLine=Лінія BOM +WarehouseForProduction=Склад для виробництва +CreateMO=Створити МО +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=Кількість продукту, яке ще потрібно спожити за відкритим ПН +ProductQtyToProduceByMO=Кількість продукту, яке ще потрібно виготовити за відкритим ПН +AddNewConsumeLines=Додайте новий рядок для споживання +AddNewProduceLines=Додайте новий рядок для виробництва +ProductsToConsume=Продукти для споживання +ProductsToProduce=Продукти для виробництва +UnitCost=Вартість одиниці +TotalCost=Загальна вартість +BOMTotalCost=Витрати на виготовлення цієї специфікації на основі вартості кожної кількості та продукту для споживання (використовуйте собівартість, якщо визначено, інакше середню зважену ціну, якщо визначено, інакше найкращу закупівельну ціну) +GoOnTabProductionToProduceFirst=Ви повинні спочатку розпочати виробництво, щоб закрити виробниче замовлення (див. вкладку '%s'). Але ви можете скасувати його. +ErrorAVirtualProductCantBeUsedIntoABomOrMo=Набір не може бути використаний у специфікації або МО +Workstation=Робоча станція +Workstations=Робочі станції +WorkstationsDescription=Управління робочими станціями +WorkstationSetup = Налаштування робочих станцій +WorkstationSetupPage = Сторінка налаштування робочих станцій +WorkstationList=Список робочих станцій +WorkstationCreate=Додати нову робочу станцію +ConfirmEnableWorkstation=Ви впевнені, що хочете ввімкнути робочу станцію %s ? +EnableAWorkstation=Увімкнути робочу станцію +ConfirmDisableWorkstation=Ви впевнені, що хочете вимкнути робочу станцію %s ? +DisableAWorkstation=Вимкніть робочу станцію +DeleteWorkstation=Видалити +NbOperatorsRequired=Необхідна кількість операторів +THMOperatorEstimated=Орієнтовний оператор THM +THMMachineEstimated=Орієнтовна машина THM +WorkstationType=Тип робочої станції +Human=людський +Machine=Машина +HumanMachine=Людина / Машина +WorkstationArea=Зона робочого місця +Machines=Машини +THMEstimatedHelp=Ця норма дає змогу визначити прогнозну вартість об’єкта +BOM=Перелік матеріалів +CollapseBOMHelp=Ви можете визначити відображення за замовчуванням деталей номенклатури в конфігурації модуля BOM +MOAndLines=Виробничі замовлення та лінії +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child diff --git a/htdocs/langs/uk_UA/multicurrency.lang b/htdocs/langs/uk_UA/multicurrency.lang index bfcbd11fb7c..dae94dcfd36 100644 --- a/htdocs/langs/uk_UA/multicurrency.lang +++ b/htdocs/langs/uk_UA/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=Мульти валюта +ErrorAddRateFail=Помилка в доданій ставці +ErrorAddCurrencyFail=Помилка в доданій валюті +ErrorDeleteCurrencyFail=Помилка видалення не вдалося +multicurrency_syncronize_error=Помилка синхронізації: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Використовуйте дату документа, щоб знайти курс валюти, а не останній відомий курс +multicurrency_useOriginTx=Коли об’єкт створюється з іншого, зберігайте початкову швидкість від вихідного об’єкта (інакше використовуйте останню відому швидкість) +CurrencyLayerAccount=API CurrencyLayer +CurrencyLayerAccount_help_to_synchronize=Ви повинні створити обліковий запис на веб-сайті %s, щоб використовувати цю функцію.
    Отримайте ключ API .
    Якщо ви використовуєте безкоштовний обліковий запис, ви не можете змінити вихідну валюту (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/uk_UA/oauth.lang b/htdocs/langs/uk_UA/oauth.lang index 075ff49a895..c59d15d7fe4 100644 --- a/htdocs/langs/uk_UA/oauth.lang +++ b/htdocs/langs/uk_UA/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 ? -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 +ConfigOAuth=Конфігурація OAuth +OAuthServices=Служби OAuth +ManualTokenGeneration=Генерація маркерів вручну +TokenManager=Менеджер токенів +IsTokenGenerated=Чи генерується токен? +NoAccessToken=Маркер доступу не збережено в локальній базі даних +HasAccessToken=Токен було створено та збережено в локальній базі даних +NewTokenStored=Токен отримано та збережено +ToCheckDeleteTokenOnProvider=Натисніть тут, щоб перевірити/видалити авторизацію, збережену постачальником OAuth %s +TokenDeleted=Токен видалено +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 -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 +UseTheFollowingUrlAsRedirectURI=Використовуйте таку URL-адресу як URI переспрямування під час створення облікових даних у свого постачальника 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=Термін дії токена закінчився +TOKEN_EXPIRE_AT=Термін дії токена закінчується о +TOKEN_DELETE=Видалити збережений маркер +OAUTH_GOOGLE_NAME=Сервіс Google OAuth +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_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Go to this page then "Register a new application" to create OAuth credentials +OAUTH_GITHUB_NAME=Служба OAuth GitHub +OAUTH_GITHUB_ID=Ідентифікатор OAuth GitHub +OAUTH_GITHUB_SECRET=Секрет OAuth GitHub +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/opensurvey.lang b/htdocs/langs/uk_UA/opensurvey.lang index 9fafacaf8bf..45c9377a6bd 100644 --- a/htdocs/langs/uk_UA/opensurvey.lang +++ b/htdocs/langs/uk_UA/opensurvey.lang @@ -1,63 +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 +Survey=Опитування +Surveys=Опитування +OrganizeYourMeetingEasily=Легко організуйте свої зустрічі та опитування. Спочатку виберіть тип опитування... +NewSurvey=Нове опитування +OpenSurveyArea=Виборча ділянка +AddACommentForPoll=Ви можете додати коментар до опитування... +AddComment=Додати коментар +CreatePoll=Створити опитування +PollTitle=Назва опитування +ToReceiveEMailForEachVote=Отримувати електронний лист за кожен голос +TypeDate=Введіть дату +TypeClassic=Тип стандартний +OpenSurveyStep2=Виберіть свої дати серед вільних днів (сірі). Вибрані дні зелені. Ви можете скасувати вибір дня, вибраного раніше, знову натиснувши на нього +RemoveAllDays=Видалити всі дні +CopyHoursOfFirstDay=Копія годин першого дня +RemoveAllHours=Видаліть усі години +SelectedDays=Вибрані дні +TheBestChoice=На даний момент найкращий вибір +TheBestChoices=На даний момент найкращий вибір +with=з +OpenSurveyHowTo=Якщо ви погоджуєтеся проголосувати в цьому опитуванні, вам потрібно вказати своє ім’я, вибрати найбільш підходящі для вас значення та підтвердити за допомогою кнопки «плюс» у кінці рядка. +CommentsOfVoters=Коментарі виборців +ConfirmRemovalOfPoll=Ви впевнені, що хочете видалити це опитування (і всі голоси) +RemovePoll=Видалити опитування +UrlForSurvey=URL-адреса для спілкування, щоб отримати прямий доступ до опитування +PollOnChoice=Ви створюєте опитування, щоб зробити кілька варіантів для опитування. Спочатку введіть усі можливі варіанти для вашого опитування: +CreateSurveyDate=Створіть опитування на дату +CreateSurveyStandard=Створіть стандартне опитування +CheckBox=Простий прапорець +YesNoList=Список (порожній/так/ні) +PourContreList=Список (порожній/за/проти) +AddNewColumn=Додати новий стовпець +TitleChoice=Вибір етикетки +ExportSpreadsheet=Експортувати таблицю результатів +ExpireDate=Дата обмеження +NbOfSurveys=Кількість опитувань +NbOfVoters=Кількість виборців +SurveyResults=Результати +PollAdminDesc=Ви можете змінити всі рядки голосування в цьому опитуванні за допомогою кнопки «Редагувати». Ви також можете видалити стовпець або рядок за допомогою %s. Ви також можете додати новий стовпець з %s. +5MoreChoices=Ще 5 варіантів +Against=Проти +YouAreInivitedToVote=Запрошуємо вас проголосувати за це опитування +VoteNameAlreadyExists=Ця назва вже використовувалася для цього опитування +AddADate=Додайте дату +AddStartHour=Додайте годину початку +AddEndHour=Додайте годину закінчення +votes=голоси +NoCommentYet=До цього опитування ще немає коментарів +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" для того ж, але з хвилинами. +BackToCurrentMonth=Повернення до поточного місяця +ErrorOpenSurveyFillFirstSection=Ви не заповнили перший розділ створення опитування +ErrorOpenSurveyOneChoice=Введіть принаймні один варіант +ErrorInsertingComment=Під час вставки вашого коментаря сталася помилка +MoreChoices=Введіть більше варіантів для виборців +SurveyExpiredInfo=Опитування було закрито або минув термін затримки голосування. +EmailSomeoneVoted=%s заповнив рядок.\nВи можете знайти своє опитування за посиланням:\n%s +ShowSurvey=Показати опитування +UserMustBeSameThanUserUsedToVote=Ви повинні проголосувати та використовувати те саме ім’я користувача, що використовувався для голосування, щоб залишити коментар diff --git a/htdocs/langs/uk_UA/orders.lang b/htdocs/langs/uk_UA/orders.lang index e79ead3d7c5..9c33573edd5 100644 --- a/htdocs/langs/uk_UA/orders.lang +++ b/htdocs/langs/uk_UA/orders.lang @@ -1,196 +1,200 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Customers orders area -SuppliersOrdersArea=Purchase orders area -OrderCard=Order card -OrderId=Order Id -Order=Order -PdfOrderTitle=Order +OrdersArea=Зона замовлень клієнтів +SuppliersOrdersArea=Зона замовлень на закупівлю +OrderCard=Картка замовлення +OrderId=Ідентифікатор замовлення +Order=Замовити +PdfOrderTitle=Замовити 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 +OrderLine=Лінія замовлення +OrderDate=Дата замовлення +OrderDateShort=Дата замовлення +OrderToProcess=Замовлення на обробку +NewOrder=Нове замовлення +NewSupplierOrderShort=Нове замовлення +NewOrderSupplier=Нове замовлення на покупку +ToOrder=Зробити замовлення +MakeOrder=Зробити замовлення +SupplierOrder=Замовлення на придбання +SuppliersOrders=Замовлення на закупівлю +SaleOrderLines=Рядки замовлення на продаж +PurchaseOrderLines=Рядки замовлення на покупку +SuppliersOrdersRunning=Поточні замовлення на покупку +CustomerOrder=Замовлення клієнта +CustomersOrders=Замовлення на продаж +CustomersOrdersRunning=Поточні замовлення на продаж +CustomersOrdersAndOrdersLines=Замовлення на продаж і деталі замовлення +OrdersDeliveredToBill=Замовлення на продаж доставлено на рахунок +OrdersToBill=Замовлення на продаж доставлено +OrdersInProcess=Замовлення на продаж в обробці +OrdersToProcess=Замовлення на продаж для обробки +SuppliersOrdersToProcess=Замовлення на закупівлю для обробки +SuppliersOrdersAwaitingReception=Замовлення на покупку очікують на отримання +AwaitingReception=Очікування прийому +StatusOrderCanceledShort=Скасовано StatusOrderDraftShort=Проект StatusOrderValidatedShort=Підтверджений -StatusOrderSentShort=In process -StatusOrderSent=Shipment in process -StatusOrderOnProcessShort=Ordered +StatusOrderSentShort=В процесі +StatusOrderSent=Відвантаження в обробці +StatusOrderOnProcessShort=Замовив StatusOrderProcessedShort=Оброблений -StatusOrderDelivered=Delivered -StatusOrderDeliveredShort=Delivered -StatusOrderToBillShort=Delivered -StatusOrderApprovedShort=Approved -StatusOrderRefusedShort=Refused -StatusOrderToProcessShort=To process -StatusOrderReceivedPartiallyShort=Partially received -StatusOrderReceivedAllShort=Products received -StatusOrderCanceled=Canceled +StatusOrderDelivered=Доставлено +StatusOrderDeliveredShort=Доставлено +StatusOrderToBillShort=Доставлено +StatusOrderApprovedShort=Затверджено +StatusOrderRefusedShort=Відмовився +StatusOrderToProcessShort=В процесі +StatusOrderReceivedPartiallyShort=Отримано частково +StatusOrderReceivedAllShort=Отримані продукти +StatusOrderCanceled=Скасовано StatusOrderDraft=Проект (має бути підтверджений) StatusOrderValidated=Підтверджений -StatusOrderOnProcess=Ordered - Standby reception -StatusOrderOnProcessWithValidation=Ordered - Standby reception or validation +StatusOrderOnProcess=Замовлено - Режим очікування +StatusOrderOnProcessWithValidation=Замовлено - прийом або перевірка в режимі очікування StatusOrderProcessed=Оброблений -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) -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 -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 +StatusOrderToBill=Доставлено +StatusOrderApproved=Затверджено +StatusOrderRefused=Відмовився +StatusOrderReceivedPartially=Отримано частково +StatusOrderReceivedAll=Вся продукція отримана +ShippingExist=Відправка існує +QtyOrdered=Замовлена кількість +ProductQtyInDraft=Кількість продукту в чернетках замовлень +ProductQtyInDraftOrWaitingApproved=Кількість продукту в чернетках або затверджених замовленнях, ще не замовлені +MenuOrdersToBill=Замовлення доставлено +MenuOrdersToBill2=Оплачувані замовлення +ShipProduct=Доставка товару +CreateOrder=Створити замовлення +RefuseOrder=Відмовитися від замовлення +ApproveOrder=Затвердити замовлення +Approve2Order=Затвердити замовлення (другий рівень) +UserApproval=Користувач на затвердження +UserApproval2=Користувач для затвердження (другий рівень) +ValidateOrder=Підтвердити замовлення +UnvalidateOrder=Скасувати дійсність замовлення +DeleteOrder=Видалити замовлення +CancelOrder=Відмінити замовлення +OrderReopened= Повторне відкриття замовлення %s +AddOrder=Створити порядок +AddSupplierOrderShort=Створити порядок +AddPurchaseOrder=Створити замовлення на покупку +AddToDraftOrders=Додати до проекту замовлення +ShowOrder=Показати порядок +OrdersOpened=Замовлення для обробки +NoDraftOrders=Жодних проектів наказів +NoOrder=Без замовлення +NoSupplierOrder=Без замовлення на покупку +LastOrders=Останні замовлення на продаж %s +LastCustomerOrders=Останні замовлення на продаж %s +LastSupplierOrders=Останні замовлення на покупку %s +LastModifiedOrders=Останні модифіковані замовлення %s +AllOrders=Усі замовлення +NbOfOrders=Кількість замовлень +OrdersStatistics=Статистика замовлення +OrdersStatisticsSuppliers=Статистика замовлень +NumberOfOrdersByMonth=Кількість замовлень по місяцях +AmountOfOrdersByMonthHT=Кількість замовлень по місяцях (без податку) +ListOfOrders=Список замовлень +CloseOrder=Закрити замовлення +ConfirmCloseOrder=Ви впевнені, що хочете зробити це замовлення доставленим? Після того, як замовлення буде доставлено, його можна виставити на рахунок. +ConfirmDeleteOrder=Ви впевнені, що хочете видалити це замовлення? +ConfirmValidateOrder=Ви впевнені, що хочете підтвердити це замовлення під іменем %s ? +ConfirmUnvalidateOrder=Ви впевнені, що хочете відновити порядок %s до статусу чернетки? +ConfirmCancelOrder=Ви впевнені, що хочете скасувати це замовлення? +ConfirmMakeOrder=Ви впевнені, що хочете підтвердити, що зробили це замовлення на %s ? +GenerateBill=Сформувати рахунок-фактуру +ClassifyShipped=Класифікувати доставлено +PassedInShippedStatus=таємно доставлено +YouCantShipThis=Я не можу класифікувати це. Будь ласка, перевірте дозволи користувачів +DraftOrders=Проекти наказів +DraftSuppliersOrders=Проекти замовлень на закупівлю +OnProcessOrders=В обробних замовленнях +RefOrder=Пос. замовлення +RefCustomerOrder=Пос. замовлення для замовника +RefOrderSupplier=Пос. замовлення для продавця +RefOrderSupplierShort=Пос. замовник продавця +SendOrderByMail=Відправити замовлення поштою +ActionsOnOrder=Події на замовлення +NoArticleOfTypeProduct=Немає артикула типу "продукт", тому для цього замовлення немає товару, який можна відправити +OrderMode=Спосіб замовлення +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=Representative following-up sales order -TypeContact_commande_internal_SHIPPING=Representative following-up shipping -TypeContact_commande_external_BILLING=Customer invoice contact +TypeContact_commande_internal_SALESREPFOLL=Наступне замовлення представника на продаж +TypeContact_commande_internal_SHIPPING=Представницька подальша доставка +TypeContact_commande_external_BILLING=Контактна інформація для рахунків-фактур клієнта TypeContact_commande_external_SHIPPING=Зверніться в службу доставки -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 +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=Константа 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=Mail +OrderByMail=Пошта OrderByFax=Факс OrderByEMail=Email -OrderByWWW=Online +OrderByWWW=Онлайн OrderByPhone=Телефон # 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 +PDFEinsteinDescription=Повна модель замовлення (стара реалізація шаблону Ератосфена) +PDFEratostheneDescription=Повна модель замовлення +PDFEdisonDescription=Проста модель замовлення +PDFProformaDescription=Повний шаблон рахунку-фактури +CreateInvoiceForThisCustomer=Накази векселя +CreateInvoiceForThisSupplier=Накази векселя +CreateInvoiceForThisReceptions=Прийом рахунків +NoOrdersToInvoice=Замовлення не оплачуються +CloseProcessedOrdersAutomatically=Класифікувати "Оброблено" всі вибрані замовлення. +OrderCreation=Створення замовлення +Ordered=Замовив +OrderCreated=Ваші замовлення створено +OrderFail=Під час створення замовлень сталася помилка +CreateOrders=Створюйте замовлення +ToBillSeveralOrderSelectCustomer=Щоб створити рахунок-фактуру для кількох замовлень, клацніть спочатку на клієнта, а потім виберіть «%s». +OptionToSetOrderBilledNotEnabled=Опція модуля Workflow для автоматичного встановлення замовлення на «Оплачено» під час перевірки рахунка-фактури не ввімкнена, тому вам доведеться вручну встановити статус замовлень на «Оплачено» після створення рахунка-фактури. +IfValidateInvoiceIsNoOrderStayUnbilled=Якщо підтвердження рахунка-фактури має значення «Ні», замовлення залишатиметься в статусі «Не оплачено», доки рахунок-фактура не буде підтверджено. +CloseReceivedSupplierOrdersAutomatically=Автоматично закривати замовлення до статусу "%s", якщо всі продукти отримані. +SetShippingMode=Встановити режим доставки +WithReceptionFinished=Після закінчення прийому #### supplier orders status -StatusSupplierOrderCanceledShort=Canceled +StatusSupplierOrderCanceledShort=Скасовано StatusSupplierOrderDraftShort=Проект StatusSupplierOrderValidatedShort=Підтверджений -StatusSupplierOrderSentShort=In process -StatusSupplierOrderSent=Shipment in process -StatusSupplierOrderOnProcessShort=Ordered +StatusSupplierOrderSentShort=В процесі +StatusSupplierOrderSent=Відвантаження в обробці +StatusSupplierOrderOnProcessShort=Замовив StatusSupplierOrderProcessedShort=Оброблений -StatusSupplierOrderDelivered=Delivered -StatusSupplierOrderDeliveredShort=Delivered -StatusSupplierOrderToBillShort=Delivered -StatusSupplierOrderApprovedShort=Approved -StatusSupplierOrderRefusedShort=Refused -StatusSupplierOrderToProcessShort=To process -StatusSupplierOrderReceivedPartiallyShort=Partially received -StatusSupplierOrderReceivedAllShort=Products received -StatusSupplierOrderCanceled=Canceled +StatusSupplierOrderDelivered=Доставлено +StatusSupplierOrderDeliveredShort=Доставлено +StatusSupplierOrderToBillShort=Доставлено +StatusSupplierOrderApprovedShort=Затверджено +StatusSupplierOrderRefusedShort=Відмовився +StatusSupplierOrderToProcessShort=В процесі +StatusSupplierOrderReceivedPartiallyShort=Отримано частково +StatusSupplierOrderReceivedAllShort=Отримані продукти +StatusSupplierOrderCanceled=Скасовано StatusSupplierOrderDraft=Проект (має бути підтверджений) StatusSupplierOrderValidated=Підтверджений -StatusSupplierOrderOnProcess=Ordered - Standby reception -StatusSupplierOrderOnProcessWithValidation=Ordered - Standby reception or validation +StatusSupplierOrderOnProcess=Замовлено - Резервний прийом +StatusSupplierOrderOnProcessWithValidation=Замовлено - прийом або перевірка в режимі очікування StatusSupplierOrderProcessed=Оброблений -StatusSupplierOrderToBill=Delivered -StatusSupplierOrderApproved=Approved -StatusSupplierOrderRefused=Refused -StatusSupplierOrderReceivedPartially=Partially received -StatusSupplierOrderReceivedAll=All products received +StatusSupplierOrderToBill=Доставлено +StatusSupplierOrderApproved=Затверджено +StatusSupplierOrderRefused=Відмовився +StatusSupplierOrderReceivedPartially=Отримано частково +StatusSupplierOrderReceivedAll=Вся продукція отримана diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang index 8353ab79931..4743d8dff0b 100644 --- a/htdocs/langs/uk_UA/other.lang +++ b/htdocs/langs/uk_UA/other.lang @@ -1,305 +1,306 @@ # Dolibarr language file - Source file is en_US - other -SecurityCode=Security code -NumberingShort=N° +SecurityCode=Код безпеки +NumberingShort=№ 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 +ToolsDesc=Тут згруповано всі інструменти, які не входять до інших пунктів меню.
    Усі інструменти доступні через ліве меню. +Birthday=День народження +BirthdayAlertOn=сповіщення про день народження активне +BirthdayAlertOff=сповіщення про день народження неактивне +TransKey=Переклад ключа TransKey +MonthOfInvoice=Місяць (номер 1-12) дати виставлення рахунку +TextMonthOfInvoice=Місяць (текст) дати рахунку-фактури +PreviousMonthOfInvoice=Попередній місяць (номер 1-12) дати виставлення рахунку +TextPreviousMonthOfInvoice=Попередній місяць (текст) дати рахунка-фактури +NextMonthOfInvoice=Наступний місяць (номер 1-12) з дати виставлення рахунку +TextNextMonthOfInvoice=Наступний місяць (текст) дати рахунку-фактури +PreviousMonth=Попередній місяць +CurrentMonth=Поточний місяць +ZipFileGeneratedInto=Zip-файл, створений у %s . +DocFileGeneratedInto=Файл документа створений у %s . +JumpToLogin=Відключено. Перейти на сторінку входу... +MessageForm=Повідомлення в онлайн-формі оплати +MessageOK=Повідомлення на сторінці повернення для підтвердженого платежу +MessageKO=Повідомлення на сторінці повернення для скасованого платежу +ContentOfDirectoryIsNotEmpty=Вміст цього каталогу не порожній. +DeleteAlsoContentRecursively=Установіть прапорець, щоб видалити весь вміст рекурсивно +PoweredBy=Працює на +YearOfInvoice=Рік дати виставлення рахунку +PreviousYearOfInvoice=Попередній рік дати виставлення рахунку +NextYearOfInvoice=Наступний рік дати виставлення рахунку +DateNextInvoiceBeforeGen=Дата наступного рахунку-фактури (до створення) +DateNextInvoiceAfterGen=Дата наступного рахунку-фактури (після створення) +GraphInBarsAreLimitedToNMeasures=Графіка обмежена тактами %s в режимі «Барси». Натомість автоматично вибрано режим «Лінії». +OnlyOneFieldForXAxisIsPossible=Наразі можливе лише 1 поле як вісь X. Вибрано лише перше вибране поле. +AtLeastOneMeasureIsRequired=Потрібне принаймні 1 поле для вимірювання +AtLeastOneXAxisIsRequired=Потрібне принаймні 1 поле для осі X +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=Пропозиція клієнта закрита з підписом +Notify_PROPAL_CLOSE_REFUSED=Пропозиція клієнта закрита відхилена +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_FICHINTER_ADD_CONTACT=Додано контакт до Intervention +Notify_FICHINTER_SENTBYMAIL=Втручання надіслано поштою +Notify_SHIPPING_VALIDATE=Доставка підтверджена +Notify_SHIPPING_SENTBYMAIL=Доставка відправлена поштою +Notify_MEMBER_VALIDATE=Член підтверджено +Notify_MEMBER_MODIFY=Член змінений +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_ACTION_CREATE=Додано дію до порядку денного SeeModuleSetup=Див. налаштування модуля %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 desk -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 +NbOfAttachedFiles=Кількість вкладених файлів/документів +TotalSizeOfAttachedFiles=Загальний розмір вкладених файлів/документів +MaxSize=Максимальний розмір +AttachANewFile=Вкласти новий файл/документ +LinkedObject=Пов’язаний об’єкт +NbOfActiveNotifications=Кількість сповіщень (кількість електронних листів одержувачів) +PredefinedMailTest=__(Привіт)__\nЦе тестовий лист, надісланий на __EMAIL__.\nРядки розділені поворотом каретки.\n\n__USER_SIGNATURE__ +PredefinedMailTestHtml=__(Привіт)__
    Це тест лист, надісланий на __EMAIL__ (слово test має бути виділено жирним шрифтом).
    Рядки розділені символом повернення каретки.

    __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=Лише компанія або позаштатний продаж +DemoCompanyShopWithCashDesk=Manage a shop with a cash box +DemoCompanyProductAndStocks=Магазин, який продає продукти з точки продажу +DemoCompanyManufacturing=Підприємство, що виробляє продукцію +DemoCompanyAll=Компанія з кількома видами діяльності (усі основні модулі) +CreatedBy=Створено %s +ModifiedBy=Змінено %s +ValidatedBy=Перевірено %s +SignedBy=Підписано %s +ClosedBy=Закрито %s +CreatedById=Ідентифікатор користувача, який створив +ModifiedById=Ідентифікатор користувача, який вніс останню зміну +ValidatedById=Ідентифікатор користувача, який перевірив +CanceledById=Ідентифікатор користувача, який скасував +ClosedById=Ідентифікатор користувача, який закрив +CreatedByLogin=Вхід користувача, який створив +ModifiedByLogin=Вхід користувача, який вніс останню зміну +ValidatedByLogin=Вхід користувача, який підтвердив +CanceledByLogin=Вхід користувача, який скасував +ClosedByLogin=Вхід користувача, який закрив +FileWasRemoved=Файл %s видалено +DirWasRemoved=Каталог %s видалено +FeatureNotYetAvailable=Функція ще недоступна в поточній версії +FeatureNotAvailableOnDevicesWithoutMouse=Функція недоступна на пристроях без миші +FeaturesSupported=Підтримувані функції +Width=Ширина +Height=Висота +Depth=Глибина +Top=Топ +Bottom=Нижня частина +Left=Ліворуч +Right=Правильно +CalculatedWeight=Розрахована вага +CalculatedVolume=Розрахований обсяг +Weight=Вага +WeightUnitton=тонн +WeightUnitkg=кг 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² +WeightUnitmg=мг +WeightUnitpound=фунт +WeightUnitounce=унція +Length=Довжина +LengthUnitm=м +LengthUnitdm=дм +LengthUnitcm=см +LengthUnitmm=мм +Surface=Площа +SurfaceUnitm2=м² +SurfaceUnitdm2=дм² +SurfaceUnitcm2=см² +SurfaceUnitmm2=мм² 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 +SurfaceUnitinch2=в² +Volume=Обсяг +VolumeUnitm3=м³ +VolumeUnitdm3=дм³ (л) +VolumeUnitcm3=см³ (мл) +VolumeUnitmm3=мм³ (мкл) +VolumeUnitfoot3=фут³ +VolumeUnitinch3=в³ +VolumeUnitounce=унція +VolumeUnitlitre=л +VolumeUnitgallon=галон +SizeUnitm=м +SizeUnitdm=дм +SizeUnitcm=см +SizeUnitmm=мм +SizeUnitinch=дюйм +SizeUnitfoot=стопа +SizeUnitpoint=точка +BugTracker=Трекер помилок +SendNewPasswordDesc=Ця форма дозволяє запросити новий пароль. Він буде надіслано на вашу електронну адресу.
    Зміна набуде чинності, коли ви натиснете посилання для підтвердження в електронному листі.
    Перевірте свою папку "Вхідні". +BackToLoginPage=Повернутися до сторінки входу +AuthenticationDoesNotAllowSendNewPassword=Режим автентифікації: %s .
    У цьому режимі Dolibarr не може дізнатися чи змінити ваш пароль.
    Зверніться до свого системного адміністратора, якщо ви хочете змінити свій пароль. +EnableGDLibraryDesc=Щоб використовувати цю опцію, установіть або ввімкніть бібліотеку GD у вашій інсталяції PHP. +ProfIdShortDesc= Prof Id %s – це інформація, що залежить від країни третьої сторони.
    Наприклад, для країни %s , це код a0ecb2ec87f09f19f49. +DolibarrDemo=Демо Dolibarr ERP/CRM +StatsByNumberOfUnits=Статистика суми товарів/послуг +StatsByNumberOfEntities=Статистичні дані щодо кількості посилаючих організацій (кількість рахунків-фактур або замовлень...) +NumberOfProposals=Кількість пропозицій +NumberOfCustomerOrders=Кількість замовлень на продаж +NumberOfCustomerInvoices=Кількість рахунків клієнтів +NumberOfSupplierProposals=Кількість пропозицій постачальників +NumberOfSupplierOrders=Кількість замовлень на покупку +NumberOfSupplierInvoices=Кількість рахунків постачальників +NumberOfContracts=Кількість договорів +NumberOfMos=Кількість виробничих замовлень +NumberOfUnitsProposals=Кількість одиниць пропозицій +NumberOfUnitsCustomerOrders=Кількість одиниць у замовленнях на продаж +NumberOfUnitsCustomerInvoices=Кількість одиниць у рахунках клієнта +NumberOfUnitsSupplierProposals=Кількість одиниць у пропозиціях постачальників +NumberOfUnitsSupplierOrders=Кількість одиниць у замовленнях на закупівлю +NumberOfUnitsSupplierInvoices=Кількість одиниць у рахунках-фактурах постачальників +NumberOfUnitsContracts=Кількість одиниць на контрактах +NumberOfUnitsMos=Кількість одиниць для виробництва у виробничих замовленнях +EMailTextInterventionAddedContact=Вам призначено нове втручання %s. +EMailTextInterventionValidated=Втручання %s підтверджено. +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=Введіть нову ширину АБО нову висоту. Співвідношення зберігатиметься під час зміни розміру... +NewLength=Нова ширина +NewHeight=Нова висота +NewSizeAfterCropping=Новий розмір після обрізання +DefineNewAreaToPick=Визначте нову область на зображенні для вибору (клацніть лівою кнопкою миші на зображенні, а потім перетягніть, поки не досягнете протилежного кута) +CurrentInformationOnImage=Цей інструмент був розроблений, щоб допомогти вам змінити розмір або обрізати зображення. Це інформація щодо поточного відредагованого зображення +ImageEditor=Редактор зображень +YouReceiveMailBecauseOfNotification=Ви отримали це повідомлення, оскільки вашу електронну пошту було додано до списку цілей, щоб отримувати інформацію про певні події в програмному забезпеченні %s %s. +YouReceiveMailBecauseOfNotification2=Ця подія полягає в наступному: +ThisIsListOfModules=Це список модулів, попередньо вибраних цим демонстраційним профілем (у цій демонстрації відображаються лише найпоширеніші модулі). Відредагуйте це, щоб мати більш персоналізовану демонстрацію, і натисніть «Почати». +UseAdvancedPerms=Використовуйте розширені дозволи деяких модулів +FileFormat=Формат файлу +SelectAColor=Виберіть колір +AddFiles=Додати файли +StartUpload=Почніть завантаження +CancelUpload=Скасувати завантаження +FileIsTooBig=Файли завеликі +PleaseBePatient=Будь ласка, будьте терплячі... +NewPassword=Новий пароль +ResetPassword=Скинути пароль +RequestToResetPasswordReceived=Отримано запит на зміну пароля. +NewKeyIs=Це ваші нові ключі для входу +NewKeyWillBe=Ваш новий ключ для входу в програмне забезпечення буде +ClickHereToGoTo=Натисніть тут, щоб перейти до %s +YouMustClickToChange=Однак ви повинні спочатку натиснути на наступне посилання, щоб підтвердити цю зміну пароля +ConfirmPasswordChange=Підтвердьте зміну пароля +ForgetIfNothing=Якщо ви не запитували цю зміну, просто забудьте цей електронний лист. Ваші облікові дані зберігаються в безпеці. +IfAmountHigherThan=Якщо сума перевищує %s +SourcesRepository=Репозиторій джерел +Chart=Діаграма +PassEncoding=Кодування пароля +PermissionsAdd=Додано дозволи +PermissionsDelete=Дозволи видалено +YourPasswordMustHaveAtLeastXChars=Ваш пароль має містити принаймні символи %s +PasswordNeedAtLeastXUpperCaseChars=Пароль повинен мати принаймні символи верхнього регістру %s +PasswordNeedAtLeastXDigitChars=Для пароля потрібно щонайменше числові символи %s +PasswordNeedAtLeastXSpecialChars=Для пароля потрібні принаймні спеціальні символи %s +PasswordNeedNoXConsecutiveChars=Пароль не повинен містити %s послідовних подібних символів +YourPasswordHasBeenReset=Ваш пароль успішно скинуто +ApplicantIpAddress=IP-адреса заявника +SMSSentTo=SMS надіслано на адресу %s +MissingIds=Відсутні ідентифікатори +ThirdPartyCreatedByEmailCollector=Третя сторона, створена збирачем електронної пошти з електронної пошти MSGID %s +ContactCreatedByEmailCollector=Контакт/адреса, створена збирачем електронної пошти з електронної пошти MSGID %s +ProjectCreatedByEmailCollector=Проект, створений збирачем електронної пошти з електронної пошти MSGID %s +TicketCreatedByEmailCollector=Квиток, створений збирачем електронної пошти з електронної пошти MSGID %s +OpeningHoursFormatDesc=Використовуйте -, щоб розділити години роботи та закриття.
    Використовуйте пробіл для введення різних діапазонів.
    Приклад: 8-12 14-18 +SuffixSessionName=Суфікс назви сеансу +LoginWith=Увійдіть за допомогою %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) +ExportsArea=Зона експорту +AvailableFormats=Доступні формати +LibraryUsed=Бібліотека використана +LibraryVersion=Бібліотечна версія +ExportableDatas=Експортовані дані +NoExportableData=Немає експортованих даних (немає модулів із завантаженими даними або відсутніми дозволи) ##### External sites ##### -WebsiteSetup=Setup of module website -WEBSITE_PAGEURL=URL of page +WebsiteSetup=Налаштування веб-сайту модуля +WEBSITE_PAGEURL=URL сторінки WEBSITE_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 +WEBSITE_DESCRIPTION=Опис +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 -CloseDialog = Close +ConfirmBtnCommonContent = Ви впевнені, що хочете "%s"? +ConfirmBtnCommonTitle = Підтвердьте свою дію +CloseDialog = Закрити +Autofill = Автозаповнення diff --git a/htdocs/langs/uk_UA/partnership.lang b/htdocs/langs/uk_UA/partnership.lang index 6c30d4aed7b..2481903d624 100644 --- a/htdocs/langs/uk_UA/partnership.lang +++ b/htdocs/langs/uk_UA/partnership.lang @@ -16,77 +16,79 @@ # # 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=Партнерське управління +PartnershipDescription=Модуль Управління партнерством +PartnershipDescriptionLong= Модуль Управління партнерством +Partnership=Партнерство +AddPartnership=Додати партнерство +CancelPartnershipForExpiredMembers=Партнерство: скасувати партнерство учасників із простроченими підписками +PartnershipCheckBacklink=Партнерство: перевірте зворотне посилання # # Menu # -NewPartnership=New Partnership -ListOfPartnerships=List of partnership +NewPartnership=Нове партнерство +ListOfPartnerships=Список партнерства # # 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=Налаштування партнерства +PartnershipAbout=Про партнерство +PartnershipAboutPage=Партнерство про сторінку +partnershipforthirdpartyormember=Статус партнера має бути встановлений як "третя сторона" або "член" +PARTNERSHIP_IS_MANAGED_FOR=Партнерство керується для +PARTNERSHIP_BACKLINKS_TO_CHECK=Зворотні посилання для перевірки +PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Кількість днів до скасування статусу партнерства, коли закінчився термін дії підписки +ReferingWebsiteCheck=Перевірка посилання на сайт +ReferingWebsiteCheckDesc=Ви можете ввімкнути функцію, щоб перевірити, чи ваші партнери додали зворотне посилання на домени вашого веб-сайту на своєму власному веб-сайті. # # 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 +DeletePartnership=Видалити партнерство +PartnershipDedicatedToThisThirdParty=Партнерство, присвячене цій третьій стороні +PartnershipDedicatedToThisMember=Партнерство, присвячене цьому учаснику +DatePartnershipStart=Дата початку +DatePartnershipEnd=Дата закінчення +ReasonDecline=Причина відмови +ReasonDeclineOrCancel=Причина відмови +PartnershipAlreadyExist=Партнерство вже існує +ManagePartnership=Керуйте партнерством +BacklinkNotFoundOnPartnerWebsite=Зворотне посилання не знайдено на веб-сайті партнера +ConfirmClosePartnershipAsk=Ви впевнені, що хочете скасувати це партнерство? +PartnershipType=Тип партнерства +PartnershipRefApproved=Партнерство %s затверджено +KeywordToCheckInWebsite=Якщо ви хочете переконатися, що дане ключове слово є на веб-сайті кожного партнера, визначте це ключове слово тут # # Template Mail # -SendingEmailOnPartnershipWillSoonBeCanceled=Partnership will soon be canceled -SendingEmailOnPartnershipRefused=Partnership refused -SendingEmailOnPartnershipAccepted=Partnership accepted -SendingEmailOnPartnershipCanceled=Partnership canceled +SendingEmailOnPartnershipWillSoonBeCanceled=Партнерство скоро буде скасовано +SendingEmailOnPartnershipRefused=Від партнерства відмовили +SendingEmailOnPartnershipAccepted=Партнерство прийнято +SendingEmailOnPartnershipCanceled=Партнерство скасовано -YourPartnershipWillSoonBeCanceledTopic=Partnership will soon be canceled -YourPartnershipRefusedTopic=Partnership refused -YourPartnershipAcceptedTopic=Partnership accepted -YourPartnershipCanceledTopic=Partnership canceled +YourPartnershipWillSoonBeCanceledTopic=Партнерство скоро буде скасовано +YourPartnershipRefusedTopic=Від партнерства відмовили +YourPartnershipAcceptedTopic=Партнерство прийнято +YourPartnershipCanceledTopic=Партнерство скасовано -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=Повідомляємо, що ваше партнерство незабаром буде скасовано (Зворотне посилання не знайдено) +YourPartnershipRefusedContent=Повідомляємо, що ваш запит на партнерство відхилено. +YourPartnershipAcceptedContent=Повідомляємо, що ваш запит на партнерство прийнято. +YourPartnershipCanceledContent=Повідомляємо, що ваше партнерство скасовано. -CountLastUrlCheckError=Number of errors for last URL check -LastCheckBacklink=Date of last URL check -ReasonDeclineOrCancel=Decline reason +CountLastUrlCheckError=Кількість помилок для останньої перевірки URL-адреси +LastCheckBacklink=Дата останньої перевірки URL-адреси +ReasonDeclineOrCancel=Причина відмови # # Status # PartnershipDraft=Проект -PartnershipAccepted=Accepted -PartnershipRefused=Refused -PartnershipCanceled=Canceled -PartnershipManagedFor=Partners are +PartnershipAccepted=Прийнято +PartnershipRefused=Відмовився +PartnershipCanceled=Скасовано +PartnershipManagedFor=Партнери є + diff --git a/htdocs/langs/uk_UA/paybox.lang b/htdocs/langs/uk_UA/paybox.lang index 1bbbef4017b..579309ec731 100644 --- a/htdocs/langs/uk_UA/paybox.lang +++ b/htdocs/langs/uk_UA/paybox.lang @@ -1,31 +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 -VendorName=Name of vendor -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 +PayBoxSetup=Налаштування модуля PayBox +PayBoxDesc=Цей модуль пропонує сторінки, які дозволяють клієнтам здійснювати оплату на Paybox . Це можна використовувати для безкоштовного платежу або для оплати за конкретний об’єкт Dolibarr (рахунок-фактура, замовлення, ...) +FollowingUrlAreAvailableToMakePayments=Наведені нижче URL-адреси доступні, щоб запропонувати клієнту сторінку для здійснення платежу за об’єктами Dolibarr +PaymentForm=Форма оплати +WelcomeOnPaymentPage=Ласкаво просимо до нашого сервісу онлайн-платежів +ThisScreenAllowsYouToPay=На цьому екрані ви можете здійснити онлайн-платеж на адресу %s. +ThisIsInformationOnPayment=Це інформація про оплату +ToComplete=Завершувати +YourEMail=Електронна пошта, щоб отримати підтвердження оплати +Creditor=Кредитор +PaymentCode=Код платежу +PayBoxDoPayment=Оплата за допомогою Paybox +YouWillBeRedirectedOnPayBox=Ви будете перенаправлені на захищену сторінку Paybox, щоб ввести дані вашої кредитної картки +Continue=Далі +SetupPayBoxToHavePaymentCreatedAutomatically=Налаштуйте свою Paybox за URL-адресою %s , щоб платіж створювався автоматично після підтвердження Paybox. +YourPaymentHasBeenRecorded=Ця сторінка підтверджує, що ваш платіж зафіксовано. Дякую. +YourPaymentHasNotBeenRecorded=Ваш платіж НЕ зафіксовано, і трансакцію скасовано. Дякую. +AccountParameter=Параметри рахунку +UsageParameter=Параметри використання +InformationToFindParameters=Допоможіть знайти інформацію про ваш обліковий запис %s +PAYBOX_CGI_URL_V2=URL-адреса CGI модуля Paybox для оплати +CSSUrlForPaymentForm=URL-адреса таблиці стилів CSS для форми оплати +NewPayboxPaymentReceived=Отримано новий платіж Paybox +NewPayboxPaymentFailed=Спробував новий платіж Paybox, але не вдалося +PAYBOX_PAYONLINE_SENDEMAIL=Сповіщення електронною поштою після спроби оплати (успішної чи невдалої) +PAYBOX_PBX_SITE=Значення для PBX SITE +PAYBOX_PBX_RANG=Значення для діапазону АТС +PAYBOX_PBX_IDENTIFIANT=Значення для ідентифікатора АТС +PAYBOX_HMAC_KEY=Ключ HMAC diff --git a/htdocs/langs/uk_UA/paypal.lang b/htdocs/langs/uk_UA/paypal.lang index 5eb5f389445..5b84256a2f2 100644 --- a/htdocs/langs/uk_UA/paypal.lang +++ b/htdocs/langs/uk_UA/paypal.lang @@ -1,36 +1,36 @@ # 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 +PaypalSetup=Налаштування модуля 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=Пропонуйте "інтегральний" платіж (кредитна картка+PayPal) або лише "PayPal". +PaypalModeIntegral=Інтегральний +PaypalModeOnlyPaypal=Тільки PayPal +ONLINE_PAYMENT_CSS_URL=Додаткова URL-адреса таблиці стилів CSS на сторінці онлайн-платежів +ThisIsTransactionId=Це ідентифікатор транзакції: %s +PAYPAL_ADD_PAYMENT_URL=Включіть платіжну URL-адресу PayPal, коли ви надсилаєте документ електронною поштою +NewOnlinePaymentReceived=Отримано новий онлайн платіж +NewOnlinePaymentFailed=Спробували новий онлайн-платеж, але не вдалося +ONLINE_PAYMENT_SENDEMAIL=Адреса електронної пошти для сповіщень після кожної спроби платежу (для успішної та невдалої) +ReturnURLAfterPayment=Повернення URL-адреси після оплати +ValidationOfOnlinePaymentFailed=Помилка перевірки онлайн-платежу +PaymentSystemConfirmPaymentPageWasCalledButFailed=Сторінка підтвердження платежу викликана платіжною системою, повернула помилку +SetExpressCheckoutAPICallFailed=Помилка виклику API SetExpressCheckout. +DoExpressCheckoutPaymentAPICallFailed=Помилка виклику API DoExpressCheckoutPayment. +DetailedErrorMessage=Детальне повідомлення про помилку +ShortErrorMessage=Коротке повідомлення про помилку +ErrorCode=Код помилки +ErrorSeverityCode=Код серйозності помилки +OnlinePaymentSystem=Платіжна система онлайн +PaypalLiveEnabled=Увімкнено "живий" режим PayPal (інакше тестовий режим/режим пісочниці) +PaypalImportPayment=Імпорт платежів PayPal +PostActionAfterPayment=Провести дії після оплати +ARollbackWasPerformedOnPostActions=Для всіх дій Post було здійснено відкат. Ви повинні виконувати дії з публікацією вручну, якщо вони необхідні. +ValidationOfPaymentFailed=Не вдалося підтвердити платіж +CardOwner=Власник картки +PayPalBalance=Кредит Paypal diff --git a/htdocs/langs/uk_UA/printing.lang b/htdocs/langs/uk_UA/printing.lang index 106aec639e7..c41be8d707d 100644 --- a/htdocs/langs/uk_UA/printing.lang +++ b/htdocs/langs/uk_UA/printing.lang @@ -1,54 +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 +Module64000Name=Друк одним клацанням миші +Module64000Desc=Увімкнути систему друку одним натисканням кнопки +PrintingSetup=Налаштування системи друку в один клік +PrintingDesc=Цей модуль додає кнопку «Друк» до різних модулів, щоб дозволити друкувати документи безпосередньо на принтері без необхідності відкривати документ в іншій програмі. +MenuDirectPrinting=Завдання друку одним клацанням миші +DirectPrint=Друк в один клік +PrintingDriverDesc=Змінні конфігурації драйвера друку. +ListDrivers=Список драйверів +PrintTestDesc=Список принтерів. +FileWasSentToPrinter=Файл %s надіслано на принтер +ViaModule=через модуль +NoActivePrintingModuleFound=Немає активного драйвера для друку документа. Перевірте налаштування модуля %s. +PleaseSelectaDriverfromList=Виберіть драйвер зі списку. +PleaseConfigureDriverfromList=Будь ласка, налаштуйте вибраний драйвер зі списку. +SetupDriver=Налаштування драйвера +TargetedPrinter=Цільовий принтер +UserConf=Налаштування для кожного користувача +PRINTGCP_INFO=Налаштування Google OAuth API +PRINTGCP_AUTHLINK=Аутентифікація +PRINTGCP_TOKEN_ACCESS=Токен OAuth Google Cloud Print +PrintGCPDesc=Цей драйвер дозволяє надсилати документи безпосередньо на принтер за допомогою Google Cloud Print. +GCP_Name=Ім'я +GCP_displayName=Відображуване ім'я +GCP_Id=Ідентифікатор принтера +GCP_OwnerName=Ім'я власника +GCP_State=Стан принтера +GCP_connectionStatus=Онлайн держава +GCP_Type=Тип принтера +PrintIPPDesc=Цей драйвер дозволяє надсилати документи безпосередньо на принтер. Для цього потрібна система Linux із встановленим CUPS. +PRINTIPP_HOST=Сервер друку +PRINTIPP_PORT=порт +PRINTIPP_USER=Увійти PRINTIPP_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 +NoDefaultPrinterDefined=Не визначено принтер за замовчуванням +DefaultPrinter=Принтер за замовчуванням +Printer=Принтер +IPP_Uri=Принтер Урі +IPP_Name=Назва принтера +IPP_State=Стан принтера +IPP_State_reason=Причина в державі +IPP_State_reason1=Вкажіть причину 1 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. +IPP_Color=Колір +IPP_Device=Пристрій +IPP_Media=Носій для друку +IPP_Supported=Тип носія +DirectPrintingJobsDesc=На цій сторінці перелічено завдання друку, знайдені для доступних принтерів. +GoogleAuthNotConfigured=Google OAuth не налаштовано. Увімкніть модуль OAuth і встановіть Google ID/Secret. +GoogleAuthConfigured=Облікові дані Google OAuth були знайдені в налаштуваннях модуля OAuth. +PrintingDriverDescprintgcp=Змінні конфігурації драйвера друку Google Cloud Print. +PrintingDriverDescprintipp=Змінні конфігурації для друку драйвера Cups. +PrintTestDescprintgcp=Список принтерів для Google Cloud Print. +PrintTestDescprintipp=Список принтерів для чашок. diff --git a/htdocs/langs/uk_UA/productbatch.lang b/htdocs/langs/uk_UA/productbatch.lang index d6f38736aae..463fae204ef 100644 --- a/htdocs/langs/uk_UA/productbatch.lang +++ b/htdocs/langs/uk_UA/productbatch.lang @@ -1,45 +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 +ManageLotSerial=Використовуйте номер партії/серійний номер +ProductStatusOnBatch=Так (потрібно багато) +ProductStatusOnSerial=Так (потрібен унікальний серійний номер) +ProductStatusNotOnBatch=Ні (парт/серія не використовується) +ProductStatusOnBatchShort=Лот +ProductStatusOnSerialShort=Серійний ProductStatusNotOnBatchShort=Ні -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=Лот/Серіал +atleast1batchfield=Дата споживання або дата продажу або номер партії/серійний номер +batch_number=Лот/Серійний номер +BatchNumberShort=Лот/Серіал +EatByDate=Дата їсти +SellByDate=Дата продажу +DetailBatchNumber=Деталі лоту/серії +printBatch=Лот/Серійний номер: %s +printEatby=Споживання: %s +printSellby=Продавець: %s +printQty=Кількість: %d +AddDispatchBatchLine=Додайте рядок для відправлення терміну придатності +WhenProductBatchModuleOnOptionAreForced=Коли модуль Lot/Serial увімкнено, автоматичне зменшення запасів примушується до «Зменшити реальні запаси під час перевірки відвантаження», а режим автоматичного збільшення – «Збільшити реальні запаси при відправці вручну на склади», і його не можна редагувати. Інші параметри можна визначити за вашим бажанням. +ProductDoesNotUseBatchSerial=Цей продукт не використовує партію/серійний номер +ProductLotSetup=Налаштування лоту/серійного модуля +ShowCurrentStockOfLot=Показати поточний запас для пари продуктів/партії +ShowLogOfMovementIfLot=Показати журнал переміщень для пари товару/лоту +StockDetailPerBatch=Інформація про запас на лот +SerialNumberAlreadyInUse=Серійний номер %s вже використовується для продукту %s +TooManyQtyForSerialNumber=Ви можете мати лише один продукт %s для серійного номера %s +ManageLotMask=Індивідуальна маска +CustomMasks=Можливість визначити різні маски нумерації для кожного продукту +BatchLotNumberingModules=Правило нумерації для автоматичного формування номера партії +BatchSerialNumberingModules=Правило нумерації для автоматичного створення серійного номера (для продуктів із властивістю 1 унікальна партія/серія для кожного продукту) +QtyToAddAfterBarcodeScan=Кількість до %s для кожного відсканованого штрих-коду/партії/серійної серії +LifeTime=Тривалість життя (у днях) +EndOfLife=Кінець життя +ManufacturingDate=Дата виготовлення +DestructionDate=Дата знищення +FirstUseDate=Дата першого використання +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/uk_UA/products.lang b/htdocs/langs/uk_UA/products.lang index 500157307e1..ddb0582d5b6 100644 --- a/htdocs/langs/uk_UA/products.lang +++ b/htdocs/langs/uk_UA/products.lang @@ -1,413 +1,426 @@ # 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 +ProductRef=Продукт ref. +ProductLabel=Етикетка продукту +ProductLabelTranslated=Переклад етикетки продукту +ProductDescription=Опис продукту +ProductDescriptionTranslated=Переклад опису товару +ProductNoteTranslated=Переклад примітки про продукт +ProductServiceCard=Картка продуктів/послуг +TMenuProducts=Продукти +TMenuServices=послуги +Products=Продукти +Services=послуги +Product=Продукт +Service=Обслуговування +ProductId=Ідентифікатор продукту/послуги 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. +NewProduct=Новий продукт +NewService=Нова послуга +ProductVatMassChange=Глобальне оновлення ПДВ +ProductVatMassChangeDesc=Цей інструмент оновлює ставку ПДВ, визначену для УСІХ продуктів та послуг! +MassBarcodeInit=Масовий штрих-код ініціал +MassBarcodeInitDesc=Цю сторінку можна використовувати для ініціалізації штрих-коду на об’єктах, для яких не визначено штрих-код. Перевірте до завершення налаштування штрих-коду модуля. +ProductAccountancyBuyCode=Код обліку (придбання) +ProductAccountancyBuyIntraCode=Код бухгалтерського обліку (придбання в межах спільноти) +ProductAccountancyBuyExportCode=Код обліку (імпорт закупівлі) +ProductAccountancySellCode=Код обліку (продаж) +ProductAccountancySellIntraCode=Код бухгалтерського обліку (продаж всередині Співтовариства) +ProductAccountancySellExportCode=Код обліку (експорт продажу) +ProductOrService=Продукт або Послуга +ProductsAndServices=Продукти та послуги +ProductsOrServices=Продукти або послуги +ProductsPipeServices=Продукти | послуги +ProductsOnSale=Продукція на продаж +ProductsOnPurchase=Товари для покупки +ProductsOnSaleOnly=Продукція тільки для продажу +ProductsOnPurchaseOnly=Продукти тільки для покупки +ProductsNotOnSell=Товари не для продажу і не для покупки +ProductsOnSellAndOnBuy=Продукція на продаж і на покупку +ServicesOnSale=Послуги на продаж +ServicesOnPurchase=Послуги для покупки +ServicesOnSaleOnly=Послуги тільки для продажу +ServicesOnPurchaseOnly=Послуги тільки для покупки +ServicesNotOnSell=Послуги не для продажу і не для покупки +ServicesOnSellAndOnBuy=Послуги на продаж і на покупку +LastModifiedProductsAndServices=Останні продукти/послуги %s, які були змінені +LastRecordedProducts=Останні записані продукти %s +LastRecordedServices=Останні записані служби %s +CardProduct0=Продукт +CardProduct1=Обслуговування +Stock=Запас +MenuStocks=Акції +Stocks=Запаси та розташування (склад) продукції +Movements=Рухи +Sell=Продати +Buy=Придбати +OnSell=На продаж +OnBuy=Для покупки +NotOnSell=Не продається +ProductStatusOnSell=На продаж +ProductStatusNotOnSell=Не продається +ProductStatusOnSellShort=На продаж +ProductStatusNotOnSellShort=Не продається +ProductStatusOnBuy=Для покупки +ProductStatusNotOnBuy=Не для покупки +ProductStatusOnBuyShort=Для покупки +ProductStatusNotOnBuyShort=Не для покупки +UpdateVAT=Оновити ПДВ +UpdateDefaultPrice=Оновити ціну за замовчуванням +UpdateLevelPrices=Оновити ціни для кожного рівня +AppliedPricesFrom=Застосовано з +SellingPrice=Відпускна ціна +SellingPriceHT=Ціна продажу (без податку) +SellingPriceTTC=Ціна продажу (включаючи податок) +SellingMinPriceTTC=Мінімальна ціна продажу (включаючи податок) +CostPriceDescription=Це поле ціни (без урахування податку) можна використовувати для визначення середньої вартості цього продукту для вашої компанії. Це може бути будь-яка ціна, яку ви самі розраховуєте, наприклад, із середньої ціни покупки плюс середня вартість виробництва та розповсюдження. +CostPriceUsage=Це значення можна використовувати для розрахунку маржі. +ManufacturingPrice=Ціна виготовлення +SoldAmount=Продана сума +PurchasedAmount=Куплена сума +NewPrice=Нова ціна +MinPrice=Хв. відпускна ціна +EditSellingPriceLabel=Редагувати етикетку ціни продажу +CantBeLessThanMinPrice=Ціна продажу не може бути нижчою за мінімально дозволений для цього продукту (%s без податку). Це повідомлення також може з’явитися, якщо ви введете надто важливу знижку. ContractStatusClosed=Зачинено -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. +ErrorProductAlreadyExists=Продукт із посиланням %s вже існує. +ErrorProductBadRefOrLabel=Неправильне значення для посилання або етикетки. +ErrorProductClone=Під час спроби клонувати продукт або послугу виникла проблема. +ErrorPriceCantBeLowerThanMinPrice=Помилка, ціна не може бути нижчою за мінімальну ціну. Suppliers=Постачальники -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 +SupplierRef=Артикул постачальника +ShowProduct=Показати товар +ShowService=Показати сервіс +ProductsAndServicesArea=Зона продуктів і послуг +ProductsArea=Зона продукту +ServicesArea=Зона обслуговування +ListOfStockMovements=Список руху акцій +BuyingPrice=Ціна покупки +PriceForEachProduct=Товари зі спеціальними цінами +SupplierCard=Картка продавця +PriceRemoved=Ціну видалено 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. (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 -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 +BarcodeType=Тип штрих-коду +SetDefaultBarcodeType=Встановити тип штрих-коду +BarcodeValue=Значення штрих-коду +NoteNotVisibleOnBill=Примітка (не видно в рахунках-фактурах, пропозиціях...) +ServiceLimitedDuration=Якщо продукт є послугою з обмеженою тривалістю: +FillWithLastServiceDates=Заповніть дати останньої лінії обслуговування +MultiPricesAbility=Кілька цінових сегментів на продукт/послугу (кожен клієнт в одному ціновому сегменті) +MultiPricesNumPrices=Кількість цін +DefaultPriceType=Базові ціни за умовчанням (з податком чи без податку) при додаванні нових цін продажу +AssociatedProductsAbility=Увімкнути комплекти (набір з кількох продуктів) +VariantsAbility=Увімкнути варіанти (варіанти продуктів, наприклад колір, розмір) +AssociatedProducts=комплекти +AssociatedProductsNumber=Кількість продуктів, що входять до складу цього набору +ParentProductsNumber=Номер основної упаковки продукту +ParentProducts=Батьківські продукти +IfZeroItIsNotAVirtualProduct=Якщо 0, цей продукт не є комплектом +IfZeroItIsNotUsedByVirtualProduct=Якщо 0, цей продукт не використовується жодним комплектом +KeywordFilter=Фільтр ключових слів +CategoryFilter=Категорійний фільтр +ProductToAddSearch=Шукайте продукт, щоб додати +NoMatchFound=Збігів не знайдено +ListOfProductsServices=Список товарів/послуг +ProductAssociationList=Список продуктів/послуг, які є компонентом(ами) цього комплекту +ProductParentList=Список комплектів з цим продуктом як компонент +ErrorAssociationIsFatherOfThis=Один із вибраних продуктів є батьківським із поточним продуктом +DeleteProduct=Видалити продукт/послугу +ConfirmDeleteProduct=Ви впевнені, що хочете видалити цей продукт/послугу? +ProductDeleted=Продукт/послуга "%s" видалено з бази даних. +ExportDataset_produit_1=Продукти +ExportDataset_service_1=послуги +ImportDataset_produit_1=Продукти +ImportDataset_service_1=послуги +DeleteProductLine=Видалити лінійку продуктів +ConfirmDeleteProductLine=Ви впевнені, що хочете видалити цю лінійку продуктів? +ProductSpecial=Особливий +QtyMin=Хв. кількість закупівлі +PriceQtyMin=Ціна кількість мін. +PriceQtyMinCurrency=Ціна (валюта) за цю кількість. +WithoutDiscount=Без знижки +VATRateForSupplierProduct=Ставка ПДВ (для цього постачальника/продукту) +DiscountQtyMin=Знижка на цю кількість. +NoPriceDefinedForThisSupplier=Ціна/кількість для цього постачальника/продукту не визначено +NoSupplierPriceDefinedForThisProduct=Ціна/кількість постачальника не визначена для цього продукту +PredefinedItem=Попередньо визначений елемент +PredefinedProductsToSell=Попередньо визначений продукт +PredefinedServicesToSell=Попередньо визначена служба +PredefinedProductsAndServicesToSell=Попередньо визначені продукти/послуги для продажу +PredefinedProductsToPurchase=Попередньо визначений продукт для покупки +PredefinedServicesToPurchase=Попередньо визначені послуги для придбання +PredefinedProductsAndServicesToPurchase=Попередньо визначені продукти/послуги для придбання +NotPredefinedProducts=Не попередньо визначені продукти/послуги +GenerateThumb=Створити великий палець +ServiceNb=Послуга #%s +ListProductServiceByPopularity=Список товарів/послуг за популярністю +ListProductByPopularity=Список товарів за популярністю +ListServiceByPopularity=Список послуг за популярністю +Finished=Вироблений продукт +RowMaterial=Сирий матеріал +ConfirmCloneProduct=Ви впевнені, що хочете клонувати продукт або послугу %s ? +CloneContentProduct=Клонувати всю основну інформацію про продукт/послуги +ClonePricesProduct=Ціни на клони +CloneCategoriesProduct=Клонування пов’язаних тегів/категорій +CloneCompositionProduct=Клонуйте віртуальні продукти/послуги +CloneCombinationsProduct=Клонуйте варіанти продукту +ProductIsUsed=Цей продукт використовується +NewRefForClone=Пос. нового продукту/послуги +SellingPrices=Відпускні ціни +BuyingPrices=Покупні ціни +CustomerPrices=Ціни клієнтів +SuppliersPrices=Ціни продавця +SuppliersPricesOfProductsOrServices=Ціни постачальників (продуктів або послуг) +CustomCode=Митний|Товар|Код ТС +CountryOrigin=Країна походження +RegionStateOrigin=Регіон походження +StateOrigin=Держава|Провінція походження +Nature=Характер продукту (сирий/виготовлений) +NatureOfProductShort=Характер продукту +NatureOfProductDesc=Сировина або готовий продукт +ShortLabel=Коротка етикетка +Unit=одиниця p=u. -set=set -se=set -second=second -s=s -hour=hour -h=h -day=day +set=набір +se=набір +second=другий +s=с +hour=годину +h=ч +day=день d=d -kilogram=kilogram -kg=Kg -gram=gram +kilogram=кілограм +kg=Кг +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² +meter=метр +m=м +lm=лм +m2=м² +m3=м³ +liter=л +l=Л +unitP=шматок +unitSET=Набір +unitS=Друге +unitH=годину +unitD=День +unitG=Грам +unitM=Метр +unitLM=Лінійний метр +unitM2=Квадратний метр +unitM3=Кубічний метр +unitL=Літр +unitT=тонн +unitKG=кг +unitG=Грам +unitMG=мг +unitLB=фунт +unitOZ=унція +unitM=Метр +unitDM=дм +unitCM=см +unitMM=мм +unitFT=футів +unitIN=в +unitM2=Квадратний метр +unitDM2=дм² +unitCM2=см² +unitMM2=мм² 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 +unitIN2=в² +unitM3=Кубічний метр +unitDM3=дм³ +unitCM3=см³ +unitMM3=мм³ +unitFT3=фут³ +unitIN3=в³ +unitOZ3=унція +unitgallon=галон +ProductCodeModel=Шаблон посилання на продукт +ServiceCodeModel=Шаблон довідки про послугу +CurrentProductPrice=Поточна ціна +AlwaysUseNewPrice=Завжди використовуйте поточну ціну товару/послуги +AlwaysUseFixedPrice=Використовуйте фіксовану ціну +PriceByQuantity=Різні ціни за кількістю +DisablePriceByQty=Відключити ціни за кількістю +PriceByQuantityRange=Діапазон кількості +MultipriceRules=Автоматичні ціни на сегмент +UseMultipriceRules=Використовуйте правила цінового сегмента (визначені в налаштуваннях модуля продукту), щоб автоматично обчислювати ціни для всіх інших сегментів відповідно до першого сегмента +PercentVariationOver=%% зміна над %s +PercentDiscountOver=%% знижка понад %s +KeepEmptyForAutoCalculation=Залиште порожнім, щоб цей показник обчислювався автоматично на основі ваги або обсягу продуктів +VariantRefExample=Приклади: COL, SIZE +VariantLabelExample=Приклади: колір, розмір ### 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 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. -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=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 +Build=Виробляти +ProductsMultiPrice=Товари та ціни для кожного цінового сегмента +ProductsOrServiceMultiPrice=Ціни клієнтів (продукти чи послуги, багатоцінні) +ProductSellByQuarterHT=Оборот продукції щоквартально до оподаткування +ServiceSellByQuarterHT=Оборот послуг щоквартально до оподаткування +Quarter1=1-й Квартал +Quarter2=2-е. Квартал +Quarter3=3-й. Квартал +Quarter4=4-й Квартал +BarCodePrintsheet=Роздрукувати штрих-код +PageToGenerateBarCodeSheets=За допомогою цього інструменту ви можете роздрукувати аркуші наклейок зі штрих-кодом. Виберіть формат сторінки з наклейками, тип штрих-коду та значення штрих-коду, потім натисніть кнопку %s . +NumberOfStickers=Кількість наклейок для друку на сторінці +PrintsheetForOneBarCode=Роздрукуйте кілька наклейок для одного штрих-коду +BuildPageToPrint=Згенеруйте сторінку для друку +FillBarCodeTypeAndValueManually=Заповніть тип і значення штрих-коду вручну. +FillBarCodeTypeAndValueFromProduct=Заповніть тип штрих-коду та значення зі штрих-коду товару. +FillBarCodeTypeAndValueFromThirdParty=Заповніть тип і значення штрих-коду зі штрих-коду третьої сторони. +DefinitionOfBarCodeForProductNotComplete=Визначення типу або значення штрих-коду неповне для продукту %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Визначення типу або значення штрих-коду неповне для третьої сторони %s. +BarCodeDataForProduct=Інформація про штрих-код продукту %s: +BarCodeDataForThirdparty=Інформація про штрих-код третьої сторони %s: +ResetBarcodeForAllRecords=Визначити значення штрих-коду для всіх записів (це також скине значення штрих-коду, уже визначене з новими значеннями) +PriceByCustomer=Різні ціни для кожного клієнта +PriceCatalogue=Єдина ціна продажу за продукт/послугу +PricingRule=Правила відпускних цін +AddCustomerPrice=Додати ціну за клієнтом +ForceUpdateChildPriceSoc=Встановити однакову ціну для дочірніх компаній замовника +PriceByCustomerLog=Журнал попередніх цін клієнтів +MinimumPriceLimit=Мінімальна ціна не може бути нижчою за %s +MinimumRecommendedPrice=Мінімальна рекомендована ціна: %s +PriceExpressionEditor=Редактор виразів ціни +PriceExpressionSelected=Вибраний вираз ціни +PriceExpressionEditorHelp1=«ціна = 2 + 2» або «2 + 2» для встановлення ціни. Використання ; розділити вирази +PriceExpressionEditorHelp2=Ви можете отримати доступ до ExtraFields за допомогою змінних, як-от #extrafield_myextrafieldkey# і глобальних змінних за допомогою #global_mycode# a09a4b739f17f17f +PriceExpressionEditorHelp3=У цінах товарів/послуг і постачальників доступні такі змінні:
    #tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min# a39a17 +PriceExpressionEditorHelp4=Лише в ціні продукту/послуги: #supplier_min_price#
    Тільки в цінах постачальників: #supplier #supplier_upplitity#a3tva_upplitity#a3tva_upplitier70b70f97 +PriceExpressionEditorHelp5=Доступні глобальні значення: +PriceMode=Режим ціни +PriceNumeric=Номер +DefaultPrice=Ціна за замовчуванням +DefaultPriceLog=Журнал попередніх цін за замовчуванням +ComposedProductIncDecStock=Збільшення/зменшення запасу при зміні батьків +ComposedProduct=Дитячі товари +MinSupplierPrice=Мінімальна ціна покупки +MinCustomerPrice=Мінімальна ціна продажу +NoDynamicPrice=Немає динамічної ціни +DynamicPriceConfiguration=Динамічна конфігурація ціни +DynamicPriceDesc=Ви можете визначити математичні формули для розрахунку цін клієнтів або постачальників. Такі формули можуть використовувати всі математичні оператори, деякі константи та змінні. Тут ви можете визначити змінні, які хочете використовувати. Якщо змінна потребує автоматичного оновлення, ви можете визначити зовнішню URL-адресу, щоб дозволити Dolibarr автоматично оновлювати значення. +AddVariable=Додати змінну +AddUpdater=Додати програму оновлення +GlobalVariables=Глобальні змінні +VariableToUpdate=Змінна для оновлення +GlobalVariableUpdaters=Зовнішні програми оновлення змінних +GlobalVariableUpdaterType0=Дані JSON +GlobalVariableUpdaterHelp0=Розбирає дані JSON із зазначеної URL-адреси, VALUE визначає розташування відповідного значення, +GlobalVariableUpdaterHelpFormat0=Формат запиту {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Дані веб-сервісу +GlobalVariableUpdaterHelp1=Синтаксує дані WebService із зазначеної URL-адреси, NS визначає простір імен, VALUE визначає розташування відповідного значення, DATA має містити дані для надсилання, а METHOD є методом WS, що викликає +GlobalVariableUpdaterHelpFormat1=Формат запиту: {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD" : "myWSMethod", "DATA": {"ваш": "дані", "кому": "відправити"}} +UpdateInterval=Інтервал оновлення (хвилини) +LastUpdated=Останнє оновлення +CorrectlyUpdated=Коректно оновлено +PropalMergePdfProductActualFile=Файли, які використовуються для додавання в PDF Azur є/є +PropalMergePdfProductChooseFile=Виберіть файли PDF +IncludingProductWithTag=Включаючи продукти/послуги з тегом +DefaultPriceRealPriceMayDependOnCustomer=Ціна за замовчуванням, реальна ціна може залежати від замовника +WarningSelectOneDocument=Виберіть принаймні один документ +DefaultUnitToShow=одиниця +NbOfQtyInProposals=Кількість у пропозиціях +ClinkOnALinkOfColumn=Натисніть на посилання стовпця %s, щоб отримати детальний перегляд... +ProductsOrServicesTranslations=Переклад продуктів/послуг +TranslatedLabel=Перекладена етикетка +TranslatedDescription=Перекладений опис +TranslatedNote=Перекладені нотатки +ProductWeight=Вага на 1 виріб +ProductVolume=Обсяг на 1 виріб +WeightUnits=Одиниця ваги +VolumeUnits=Одиниця об’єму +WidthUnits=Одиниця ширини +LengthUnits=Одиниця довжини +HeightUnits=Одиниця висоти +SurfaceUnits=Поверхневий блок +SizeUnits=Одиниця розміру +DeleteProductBuyPrice=Видалити ціну покупки +ConfirmDeleteProductBuyPrice=Ви впевнені, що хочете видалити цю ціну покупки? +SubProduct=Субпродукт +ProductSheet=Лист продукції +ServiceSheet=Сервісний лист +PossibleValues=Можливі значення +GoOnMenuToCreateVairants=Перейдіть до меню %s - %s, щоб підготувати варіанти атрибутів (наприклад, кольори, розмір, ...) +UseProductFournDesc=Додайте функцію для визначення опису продукту, визначеного постачальниками (для кожного посилання на постачальника), на додаток до опису для клієнтів +ProductSupplierDescription=Опис постачальника товару +UseProductSupplierPackaging=Використовуйте упаковку за цінами постачальника (перерахуйте кількість відповідно до упаковки, встановленої в ціні постачальника при додаванні/оновленні рядка в документах постачальника) +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 -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 +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=Нове значення атрибута +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=Сума для оновлення середньозваженої ціни +PMPValue=Середньозважена ціна 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 -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +mandatoryperiod=Обов'язкові періоди +mandatoryPeriodNeedTobeSet=Примітка. Період (дата початку та закінчення) має бути визначений +mandatoryPeriodNeedTobeSetMsgValidate=Послуга потребує періоду початку та завершення +mandatoryHelper=Поставте цей прапорець, якщо ви хочете отримувати повідомлення для користувача під час створення/підтвердження рахунка-фактури, комерційної пропозиції, замовлення на продаж без введення дати початку та завершення в рядках цієї служби.
    Зауважте, що повідомлення є попередженням, а не помилкою блокування. +DefaultBOM=Специфікація за замовчуванням +DefaultBOMDesc=Специфікація за замовчуванням рекомендована для виробництва цього продукту. Це поле можна встановити, лише якщо характер продукту — «%s». +Rank=Ранг +MergeOriginProduct=Дубльований продукт (продукт, який потрібно видалити) +MergeProducts=Об’єднати продукти +ConfirmMergeProducts=Ви впевнені, що хочете об’єднати вибраний продукт з поточним? Усі пов’язані об’єкти (рахунки-фактури, замовлення, ...) будуть переміщені до поточного продукту, після чого вибраний продукт буде видалено. +ProductsMergeSuccess=Продукти об’єднані +ErrorsProductsMerge=Помилки в продуктах злиття +SwitchOnSaleStatus=Увімкнути статус продажу +SwitchOnPurchaseStatus=Увімкніть статус покупки +StockMouvementExtraFields= Додаткові поля (рух акцій) +InventoryExtraFields= Додаткові поля (інвентар) +ScanOrTypeOrCopyPasteYourBarCodes=Скануйте або введіть або скопіюйте/вставте свої штрих-коди +PuttingPricesUpToDate=Оновіть ціни з поточними відомими цінами +PMPExpected=Очікуваний PMP +ExpectedValuation=Очікувана оцінка +PMPReal=Справжній PMP +RealValuation=Реальна оцінка diff --git a/htdocs/langs/uk_UA/projects.lang b/htdocs/langs/uk_UA/projects.lang index 9965dbf4c88..9e3fcad8e1f 100644 --- a/htdocs/langs/uk_UA/projects.lang +++ b/htdocs/langs/uk_UA/projects.lang @@ -1,289 +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=Project 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 +RefProject=Пос. проект +ProjectRef=Проект реф. +ProjectId=Ідентифікатор проекту +ProjectLabel=Етикетка проекту +ProjectsArea=Зона проектів +ProjectStatus=Статус проекту +SharedProject=Усі +PrivateProject=Assigned contacts +ProjectsImContactFor=Проекти, для яких я безпосередньо контактую +AllAllowedProjects=Весь проект, який я можу прочитати (мій + загальнодоступний) +AllProjects=Усі проекти +MyProjectsDesc=Цей перегляд обмежено проектами, для яких ви є контактом +ProjectsPublicDesc=У цьому поданні представлені всі проекти, які вам дозволено читати. +TasksOnProjectsPublicDesc=У цьому поданні представлені всі завдання в проектах, які вам дозволено читати. +ProjectsPublicTaskDesc=У цьому поданні представлені всі проекти та завдання, які вам дозволено читати. +ProjectsDesc=У цьому поданні представлені всі проекти (ваші дозволи користувача надають вам дозвіл переглядати все). +TasksOnProjectsDesc=У цьому поданні представлені всі завдання для всіх проектів (ваші дозволи користувача надають вам дозвіл переглядати все). +MyTasksDesc=Цей перегляд обмежено проектами або завданнями, для яких ви є контактом +OnlyOpenedProject=Відображаються лише відкриті проекти (проекти в чернетці або закриті не відображаються). +ClosedProjectsAreHidden=Закритих проектів не видно. +TasksPublicDesc=У цьому поданні представлені всі проекти та завдання, які вам дозволено читати. +TasksDesc=У цьому поданні представлені всі проекти та завдання (ваші дозволи користувача надають вам дозвіл переглядати все). +AllTaskVisibleButEditIfYouAreAssigned=Усі завдання для кваліфікованих проектів відображаються, але ви можете ввести час лише для завдання, призначеного вибраному користувачеві. Призначте завдання, якщо вам потрібно ввести на нього час. +OnlyYourTaskAreVisible=Відображаються лише призначені вам завдання. Якщо вам потрібно ввести час виконання завдання, і якщо завдання тут не видно, то вам потрібно призначити завдання собі. +ImportDatasetTasks=Завдання проектів +ProjectCategories=Теги/категорії проекту +NewProject=Новий проект +AddProject=Створити проект +DeleteAProject=Видалити проект +DeleteATask=Видалити завдання +ConfirmDeleteAProject=Ви впевнені, що хочете видалити цей проект? +ConfirmDeleteATask=Ви впевнені, що хочете видалити це завдання? +OpenedProjects=Відкриті проекти +OpenedTasks=Відкриті завдання +OpportunitiesStatusForOpenedProjects=Веде кількість відкритих проектів за статусом +OpportunitiesStatusForProjects=Веде кількість проектів за статусом +ShowProject=Показати проект +ShowTask=Показати завдання +SetProject=Встановити проект +NoProject=Жодного проекту не визначено чи належить +NbOfProjects=Кількість проектів +NbOfTasks=Кількість завдань +TimeSpent=Витрачений час +TimeSpentByYou=Час, проведений вами +TimeSpentByUser=Час, витрачений користувачем +TimesSpent=Витрачений час +TaskId=Ідентифікатор завдання +RefTask=Завдання ref. +LabelTask=Мітка завдання +TaskTimeSpent=Час, витрачений на виконання завдань +TaskTimeUser=Користувач +TaskTimeNote=Примітка 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 +TasksOnOpenedProject=Завдання на відкриті проекти +WorkloadNotDefined=Навантаження не визначено +NewTimeSpent=Витрачений час +MyTimeSpent=Мій витрачений час +BillTime=Виставте рахунок за витрачений час +BillTimeShort=Час рахунку +TimeToBill=Час не виставлено +TimeBilled=Оплачений час +Tasks=Завдання +Task=Завдання +TaskDateStart=Дата початку завдання +TaskDateEnd=Дата завершення завдання +TaskDescription=Опис завдання +NewTask=Нове завдання +AddTask=Створити завдання +AddTimeSpent=Створіть витрачений час +AddHereTimeSpentForDay=Додайте сюди час, витрачений на цей день/завдання +AddHereTimeSpentForWeek=Додайте сюди час, витрачений на цей тиждень/завдання +Activity=Діяльність +Activities=Завдання/діяльність +MyActivities=Мої завдання/діяльність +MyProjects=Мої проекти +MyProjectsArea=Зона моїх проектів +DurationEffective=Ефективна тривалість +ProgressDeclared=Заявлений реальний прогрес +TaskProgressSummary=Хід завдання +CurentlyOpenedTasks=Наразі відкриті завдання +TheReportedProgressIsLessThanTheCalculatedProgressionByX=Заявлений реальний прогрес менший %s, ніж прогрес споживання +TheReportedProgressIsMoreThanTheCalculatedProgressionByX=Заявлений реальний прогрес більше %s, ніж прогрес споживання +ProgressCalculated=Прогрес у споживанні +WhichIamLinkedTo=з яким я пов’язаний +WhichIamLinkedToProject=який я пов’язаний з проектом +Time=Час +TimeConsumed=Спожито +ListOfTasks=Список завдань +GoToListOfTimeConsumed=Перейдіть до списку витраченого часу +GanttView=Погляд Ганта +ListWarehouseAssociatedProject=Список складів, пов'язаних з проектом +ListProposalsAssociatedProject=Перелік комерційних пропозицій, що стосуються проекту +ListOrdersAssociatedProject=Список замовлень на продаж, пов'язаних з проектом +ListInvoicesAssociatedProject=Перелік рахунків замовника, пов'язаних з проектом +ListPredefinedInvoicesAssociatedProject=Список шаблонів рахунків-фактур замовника, пов’язаних з проектом +ListSupplierOrdersAssociatedProject=Список замовлень на закупівлю, пов'язаних з проектом +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=Перевірити проект +ConfirmValidateProject=Ви впевнені, що хочете підтвердити цей проект? +CloseAProject=Закрити проект +ConfirmCloseAProject=Ви впевнені, що хочете закрити цей проект? +AlsoCloseAProject=Також закрийте проект (залиште його відкритим, якщо вам все ще потрібно виконувати виробничі завдання в ньому) +ReOpenAProject=Відкритий проект +ConfirmReOpenAProject=Ви впевнені, що хочете знову відкрити цей проект? +ProjectContact=Контакти проекту +TaskContact=Контакти завдання +ActionsOnProject=Події за проектом +YouAreNotContactOfProject=Ви не є контактною особою цього приватного проекту +UserIsNotContactOfProject=Користувач не є контактною особою цього приватного проекту +DeleteATimeSpent=Видалити витрачений час +ConfirmDeleteATimeSpent=Ви впевнені, що хочете видалити цей час? +DoNotShowMyTasksOnly=Дивіться також завдання, не призначені мені +ShowMyTasksOnly=Переглянути лише призначені мені завдання +TaskRessourceLinks=Контакти завдання +ProjectsDedicatedToThisThirdParty=Проекти, присвячені цій третьій стороні +NoTasks=Немає завдань для цього проекту +LinkedToAnotherCompany=Пов’язано з іншою третьою стороною +TaskIsNotAssignedToUser=Завдання не призначено користувачеві. Використовуйте кнопку ' %s ', щоб призначити завдання зараз. +ErrorTimeSpentIsEmpty=Витрачений час порожній +TimeRecordingRestrictedToNMonthsBack=Час запису обмежено до %s місяців тому +ThisWillAlsoRemoveTasks=Ця дія також видалить усі завдання проекту ( %s завдання на даний момент) та всі дані про витрачений час. +IfNeedToUseOtherObjectKeepEmpty=Якщо деякі об’єкти (рахунок-фактура, замовлення, ...), що належать іншій третій стороні, повинні бути пов’язані з проектом для створення, залиште це поле пустим, щоб проект був кількома сторонніми особами. +CloneTasks=Завдання клонування +CloneContacts=Клонування контактів +CloneNotes=Клонувати нотатки +CloneProjectFiles=Клонування об’єднаних файлів проекту +CloneTaskFiles=Клонувати завдання(и) об’єднаних файлів (якщо завдання(и) клоновано) +CloneMoveDate=Оновити дати проекту/завдання з цього моменту? +ConfirmCloneProject=Ви впевнені, що клонуєте цей проект? +ProjectReportDate=Змініть дати завдань відповідно до нової дати початку проекту +ErrorShiftTaskDate=Неможливо змінити дату завдання відповідно до дати початку проекту +ProjectsAndTasksLines=Проекти та завдання +ProjectCreatedInDolibarr=Створено проект %s +ProjectValidatedInDolibarr=Проект %s перевірено +ProjectModifiedInDolibarr=Проект %s змінено +TaskCreatedInDolibarr=Завдання %s створено +TaskModifiedInDolibarr=Завдання %s змінено +TaskDeletedInDolibarr=Завдання %s видалено +OpportunityStatus=Статус ведучого +OpportunityStatusShort=Статус ведучого +OpportunityProbability=Імовірність свинцю +OpportunityProbabilityShort=Ймовірно привести. +OpportunityAmount=Кількість свинцю +OpportunityAmountShort=Кількість свинцю +OpportunityWeightedAmount=Зважена сума можливостей +OpportunityWeightedAmountShort=Opp. зважена сума +OpportunityAmountAverageShort=Середня кількість свинцю +OpportunityAmountWeigthedShort=Зважена кількість свинцю +WonLostExcluded=Виграли/Програли виключені ##### 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 +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_TASKCONTRIBUTOR=Дописувач +TypeContact_project_task_external_TASKCONTRIBUTOR=Дописувач +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 -PlannedWorkload=Planned workload -PlannedWorkloadShort=Workload -ProjectReferers=Related items -ProjectMustBeValidatedFirst=Project must be validated first -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 +DocumentModelBeluga=Шаблон документа проекту для огляду пов’язаних об’єктів +DocumentModelBaleine=Шаблон документа проекту для завдань +DocumentModelTimeSpent=Шаблон звіту про проект за витраченим часом +PlannedWorkload=Планове навантаження +PlannedWorkloadShort=Навантаження +ProjectReferers=Пов'язані елементи +ProjectMustBeValidatedFirst=Спочатку проект має пройти валідацію +MustBeValidatedToBeSigned=%s потрібно спочатку перевірити, щоб встановити значення Підписане. +FirstAddRessourceToAllocateTime=Призначте ресурс користувача як контакт проекту, щоб розподілити час +InputPerDay=Вхід на добу +InputPerWeek=Вхід на тиждень +InputPerMonth=Вхід на місяць +InputDetail=Деталі введення +TimeAlreadyRecorded=Це час, витрачений на це завдання/день і користувач %s +ProjectsWithThisUserAsContact=Проекти з цим користувачем як контактом +ProjectsWithThisContact=Проекти з цим контактом +TasksWithThisUserAsContact=Завдання, призначені цьому користувачеві +ResourceNotAssignedToProject=Не призначено для проекту +ResourceNotAssignedToTheTask=Не призначено для виконання завдання +NoUserAssignedToTheProject=Немає користувачів, призначених для цього проекту +TimeSpentBy=Час, витрачений на +TasksAssignedTo=Поставлені завдання +AssignTaskToMe=Призначити собі завдання +AssignTaskToUser=Призначити завдання %s +SelectTaskToAssign=Виберіть завдання для призначення... +AssignTask=Призначити +ProjectOverview=Огляд +ManageTasks=Використовуйте проекти, щоб стежити за виконанням завдань та/або звітувати про витрачений час (табель робочого часу) +ManageOpportunitiesStatus=Використовуйте проекти, щоб наслідувати приклади/можливості +ProjectNbProjectByMonth=Кількість створених проектів по місяцях +ProjectNbTaskByMonth=Кількість створених завдань по місяцях +ProjectOppAmountOfProjectsByMonth=Кількість потенційних клієнтів за місяцями +ProjectWeightedOppAmountOfProjectsByMonth=Зважена кількість потенційних клієнтів за місяцями +ProjectOpenedProjectByOppStatus=Відкритий проект|відповідний за статусом лідера +ProjectsStatistics=Статистика проектів або лідів +TasksStatistics=Статистика по завданнях проектів або лідів +TaskAssignedToEnterTime=Завдання поставлено. Введення часу на це завдання має бути можливим. +IdTaskTime=Ідентифікатор часу завдання +YouCanCompleteRef=Якщо ви хочете доповнити посилання деяким суфіксом, рекомендується додати символ - для його розділення, щоб автоматична нумерація все одно працювала правильно для наступних проектів. Наприклад, %s-MYSUFFIX +OpenedProjectsByThirdparties=Відкриті проекти сторонніх осіб +OnlyOpportunitiesShort=Тільки веде +OpenedOpportunitiesShort=Відкриті відведення +NotOpenedOpportunitiesShort=Не відкрита позиція +NotAnOpportunityShort=Не підказка +OpportunityTotalAmount=Загальна кількість потенційних клієнтів +OpportunityPonderatedAmount=Зважена кількість запитів +OpportunityPonderatedAmountDesc=Кількість потенційних клієнтів, зважена з імовірністю +OppStatusPROSP=Розвідка +OppStatusQUAL=Кваліфікація +OppStatusPROPO=Пропозиція +OppStatusNEGO=Переговори OppStatusPENDING=В очікуванні -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=Виграв +OppStatusLOST=Загублено +Budget=Бюджет +AllowToLinkFromOtherCompany=Дозволити зв'язувати проект з іншої компанії

    Підтримувані значення:
    - Залишити порожнім: можна зв'язати будь-який проект компанії, навіть можна зв'язати будь-який проект компанії, навіть можна зв'язати будь-який проект компанії, -за умовчанням список проектів компанії: сторонні ідентифікатори, розділені комами: можна пов’язувати всі проекти цих сторонніх розробників (приклад: 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 -TimeSpentForIntervention=Time spent -TimeSpentForInvoice=Time spent -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 +AllowCommentOnTask=Дозволити користувачам коментувати завдання +AllowCommentOnProject=Дозволити користувачам коментувати проекти +DontHavePermissionForCloseProject=У вас немає прав на закриття проекту %s +DontHaveTheValidateStatus=Проект %s має бути відкритим, щоб бути закритим +RecordsClosed=%s проект(и) закрито +SendProjectRef=Інформаційний проект %s +ModuleSalaryToDefineHourlyRateMustBeEnabled=Для визначення погодинної ставки працівника необхідно ввімкнути модуль «Зарплата» для оцінки витраченого часу +NewTaskRefSuggested=Посилання на завдання вже використовується, потрібен новий +TimeSpentInvoiced=Витрачений час +TimeSpentForIntervention=Витрачений час +TimeSpentForInvoice=Витрачений час +OneLinePerUser=Один рядок на користувача +ServiceToUseOnLines=Service to use on lines by default +InvoiceGeneratedFromTimeSpent=Рахунок-фактура %s створено за час, витрачений на проект +InterventionGeneratedFromTimeSpent=Втручання %s було створено з часу, витраченого на проект +ProjectBillTimeDescription=Перевірте, чи ви вводите табель обліку робочого часу для завдань проекту І плануєте створювати рахунки-фактури з табеля обліку робочого часу для виставлення рахунку клієнту проекту (не перевіряйте, чи плануєте ви створювати рахунок-фактуру, який не базується на введених табелях обліку робочого часу). Примітка. Щоб створити рахунок-фактуру, перейдіть на вкладку «Витрачений час» проекту та виберіть рядки для включення. +ProjectFollowOpportunity=Слідкуйте за можливістю +ProjectFollowTasks=Слідкуйте за виконанням завдань або витраченим часом +Usage=Використання +UsageOpportunity=Використання: Можливість +UsageTasks=Використання: Завдання +UsageBillTimeShort=Використання: час рахунку +InvoiceToUse=Проект рахунка-фактури для використання +InterToUse=Проект втручання для використання NewInvoice=Новий рахунок-фактура -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 +NewInter=Нове втручання +OneLinePerTask=Один рядок на завдання +OneLinePerPeriod=Один рядок за період +OneLinePerTimeSpentLine=Один рядок для кожного витраченого часу декларації +AddDetailDateAndDuration=З датою та тривалістю в описі рядка +RefTaskParent=Пос. Батьківське завдання +ProfitIsCalculatedWith=Прибуток розраховується за допомогою +AddPersonToTask=Додайте також до завдань +UsageOrganizeEvent=Використання: Організація подій +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Класифікувати проект як закритий, коли всі його завдання виконані (100%% прогрес) +PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=Примітка: існуючі проекти з усіма завданнями на 100%% прогрес це не вплине: вам доведеться закрити їх вручну. Цей параметр стосується лише відкритих проектів. +SelectLinesOfTimeSpentToInvoice=Виберіть рядки витраченого часу, які не виставляються, а потім групову дію "Створити рахунок-фактуру", щоб виставити рахунок +ProjectTasksWithoutTimeSpent=Проектні завдання без витрат часу +FormForNewLeadDesc=Дякуємо, заповнивши наступну форму, щоб зв’язатися з нами. Ви також можете надіслати нам електронний лист безпосередньо на адресу %s . +ProjectsHavingThisContact=Проекти, які мають цей контакт +StartDateCannotBeAfterEndDate=Дата завершення не може передувати даті початку +ErrorPROJECTLEADERRoleMissingRestoreIt=Роль "КІДІВНИК ПРОЕКТА" відсутня або була деактивована, відновіть її в словнику типів контактів +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/uk_UA/propal.lang b/htdocs/langs/uk_UA/propal.lang index f49c2f7064d..5b061dbff09 100644 --- a/htdocs/langs/uk_UA/propal.lang +++ b/htdocs/langs/uk_UA/propal.lang @@ -1,99 +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 +Proposals=Комерційні пропозиції +Proposal=Комерційна пропозиція +ProposalShort=Пропозиція +ProposalsDraft=Проект комерційних пропозицій +ProposalsOpened=Відкриті комерційні пропозиції +CommercialProposal=Комерційна пропозиція +PdfCommercialProposalTitle=Пропозиція +ProposalCard=Картка з пропозицією +NewProp=Нова комерційна пропозиція +NewPropal=Нова пропозиція +Prospect=Проспект +DeleteProp=Видалити комерційну пропозицію +ValidateProp=Підтвердити комерційну пропозицію +AddProp=Створити пропозицію +ConfirmDeleteProp=Ви впевнені, що хочете видалити цю комерційну пропозицію? +ConfirmValidateProp=Ви впевнені, що хочете підтвердити цю комерційну пропозицію під назвою %s ? +LastPropals=Останні пропозиції %s +LastModifiedProposals=Останні модифіковані пропозиції %s +AllPropals=Усі пропозиції +SearchAProposal=Пошук пропозиції +NoProposal=Жодної пропозиції +ProposalsStatistics=Статистика комерційних пропозицій +NumberOfProposalsByMonth=Кількість по місяцях +AmountOfProposalsByMonthHT=Сума по місяцях (без податку) +NbOfProposals=Кількість комерційних пропозицій +ShowPropal=Показати пропозицію +PropalsDraft=Чернетки +PropalsOpened=ВІДЧИНЕНО PropalStatusDraft=Проект (має бути підтверджений) -PropalStatusValidated=Validated (proposal is open) -PropalStatusSigned=Signed (needs billing) -PropalStatusNotSigned=Not signed (closed) +PropalStatusValidated=Перевірено (пропозиція відкрита) +PropalStatusSigned=Підписано (потрібно виставити рахунок) +PropalStatusNotSigned=Не підписано (закрито) PropalStatusBilled=Виставлений PropalStatusDraftShort=Проект -PropalStatusValidatedShort=Validated (open) +PropalStatusValidatedShort=Перевірено (відкрито) PropalStatusClosedShort=Зачинено -PropalStatusSignedShort=Signed -PropalStatusNotSignedShort=Not signed +PropalStatusSignedShort=Підписано +PropalStatusNotSignedShort=Не підписано PropalStatusBilledShort=Виставлений -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) -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 +PropalsToClose=Комерційні пропозиції закрити +PropalsToBill=Підписані комерційні пропозиції до векселя +ListOfProposals=Список комерційних пропозицій +ActionsOnPropal=Події за пропозицією +RefProposal=Комерційна пропозиція ref +SendPropalByMail=Комерційну пропозицію надіслати поштою +DatePropal=Дата пропозиції +DateEndPropal=Дата закінчення терміну дії +ValidityDuration=Термін дії +SetAcceptedRefused=Набір прийнято/відмовлено +ErrorPropalNotFound=Propal %s не знайдено +AddToDraftProposals=Додати до проекту пропозиції +NoDraftProposals=Жодних проектних пропозицій +CopyPropalFrom=Створіть комерційну пропозицію шляхом копіювання наявної пропозиції +CreateEmptyPropal=Створіть порожню комерційну пропозицію або зі списку товарів/послуг +DefaultProposalDurationValidity=Тривалість дії комерційної пропозиції за умовчанням (у днях) +DefaultPuttingPricesUpToDate=За замовчуванням оновлюйте ціни з поточними відомими цінами на клонування пропозиції +UseCustomerContactAsPropalRecipientIfExist=Використовуйте контактну/адресу з типом "Зв'язатися з подальшою пропозицією", якщо замість адреси третьої сторони як адреси одержувача пропозиції +ConfirmClonePropal=Ви впевнені, що хочете клонувати комерційну пропозицію %s ? +ConfirmReOpenProp=Ви впевнені, що хочете знову відкрити комерційну пропозицію %s ? +ProposalsAndProposalsLines=Комерційна пропозиція та лінії +ProposalLine=Лінія пропозицій +ProposalLines=Лінії пропозицій +AvailabilityPeriod=Затримка доступності +SetAvailability=Установити затримку доступності +AfterOrder=після замовлення +OtherProposals=Інші пропозиції ##### Availability ##### AvailabilityTypeAV_NOW=Негайно -AvailabilityTypeAV_1W=1 week -AvailabilityTypeAV_2W=2 weeks -AvailabilityTypeAV_3W=3 weeks -AvailabilityTypeAV_1M=1 month +AvailabilityTypeAV_1W=1 тиждень +AvailabilityTypeAV_2W=2 тижні +AvailabilityTypeAV_3W=3 тижні +AvailabilityTypeAV_1M=1 місяць ##### 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 +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 -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 -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? +DocModelAzurDescription=Повна модель пропозиції (стара реалізація шаблону Cyan) +DocModelCyanDescription=Повна модель пропозиції +DefaultModelPropalCreate=Створення моделі за замовчуванням +DefaultModelPropalToBill=Шаблон за замовчуванням під час закриття бізнес-пропозиції (виставляється рахунок-фактура) +DefaultModelPropalClosed=Шаблон за умовчанням під час закриття бізнес-пропозиції (не оплачується) +ProposalCustomerSignature=Письмове прийняття, печатка компанії, дата та підпис +ProposalsStatisticsSuppliers=Статистика пропозицій постачальників +CaseFollowedBy=Слідом за випадком +SignedOnly=Тільки підписано +NoSign=Набір не підписаний +NoSigned=набір не підписаний +CantBeNoSign=не можна встановити без підпису +ConfirmMassNoSignature=Масове Непідписане підтвердження +ConfirmMassNoSignatureQuestion=Ви впевнені, що хочете встановити непідписані вибрані записи? +IsNotADraft=не є чернеткою +PassedInOpenStatus=було підтверджено +Sign=Підписати +Signed=підписаний +ConfirmMassValidation=Підтвердження масової перевірки +ConfirmMassSignature=Масове підтвердження підпису +ConfirmMassValidationQuestion=Ви впевнені, що хочете перевірити вибрані записи? +ConfirmMassSignatureQuestion=Ви впевнені, що хочете підписати вибрані записи? +IdProposal=Ідентифікатор пропозиції +IdProduct=Ідентифікатор продукту +LineBuyPriceHT=Купити Ціна Сума без податку за лінію +SignPropal=Прийняти пропозицію +RefusePropal=Відмовитися від пропозиції +Sign=Підписати +NoSign=Набір не підписаний +PropalAlreadySigned=Пропозиція вже прийнята +PropalAlreadyRefused=Пропозиція вже відхилена +PropalSigned=Пропозиція прийнята +PropalRefused=Пропозиція відхилена +ConfirmRefusePropal=Ви впевнені, що хочете відмовитися від цієї комерційної пропозиції? diff --git a/htdocs/langs/uk_UA/receiptprinter.lang b/htdocs/langs/uk_UA/receiptprinter.lang index 2574ff1b4bd..857f9fc5af5 100644 --- a/htdocs/langs/uk_UA/receiptprinter.lang +++ b/htdocs/langs/uk_UA/receiptprinter.lang @@ -1,82 +1,82 @@ # 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 -CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 +ReceiptPrinterSetup=Налаштування модуля ReceiptPrinter +PrinterAdded=Додано принтер %s +PrinterUpdated=Принтер %s оновлено +PrinterDeleted=Принтер %s видалено +TestSentToPrinter=Тест надіслано на принтер %s +ReceiptPrinter=Принтери чеків +ReceiptPrinterDesc=Налаштування квитанційних принтерів +ReceiptPrinterTemplateDesc=Налаштування шаблонів +ReceiptPrinterTypeDesc=Приклад можливих значень для поля «Параметри» відповідно до типу драйвера +ReceiptPrinterProfileDesc=Опис профілю квитанційного принтера +ListPrinters=Список принтерів +SetupReceiptTemplate=Налаштування шаблону +CONNECTOR_DUMMY=Макет принтера +CONNECTOR_NETWORK_PRINT=Мережевий принтер +CONNECTOR_FILE_PRINT=Локальний принтер +CONNECTOR_WINDOWS_PRINT=Локальний принтер Windows +CONNECTOR_CUPS_PRINT=Принтер чашок +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: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 -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 +CONNECTOR_CUPS_PRINT_HELP=Назва принтера CUPS, приклад: HPRT_TP805L +PROFILE_DEFAULT=Профіль за замовчуванням +PROFILE_SIMPLE=Простий профіль +PROFILE_EPOSTEP=Профіль Epos Tep +PROFILE_P822D=Профіль P822D +PROFILE_STAR=Профіль зірка +PROFILE_DEFAULT_HELP=Профіль за замовчуванням підходить для принтерів Epson +PROFILE_SIMPLE_HELP=Простий профіль без графіки +PROFILE_EPOSTEP_HELP=Профіль Epos Tep +PROFILE_P822D_HELP=Профіль P822D Без графіки +PROFILE_STAR_HELP=Профіль зірка +DOL_LINE_FEED=Пропустити рядок +DOL_ALIGN_LEFT=Вирівнювання тексту за лівим краєм +DOL_ALIGN_CENTER=Центральний текст +DOL_ALIGN_RIGHT=Вирівняти текст по правому краю +DOL_USE_FONT_A=Використовуйте шрифт A принтера +DOL_USE_FONT_B=Використовуйте шрифт B принтера +DOL_USE_FONT_C=Використовуйте шрифт C принтера +DOL_PRINT_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_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_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=Рядки рахунків-фактур +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/uk_UA/receptions.lang b/htdocs/langs/uk_UA/receptions.lang index 40d87c6e986..cdcc80ceed3 100644 --- a/htdocs/langs/uk_UA/receptions.lang +++ b/htdocs/langs/uk_UA/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 -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 +ReceptionDescription=Управління прийомом постачальників (Створення приймальних документів) +ReceptionsSetup=Налаштування прийому постачальника +RefReception=Пос. прийом +Reception=Прийом +Receptions=Прийоми +AllReceptions=Усі прийоми +Reception=Прийом +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=Приймальний лист +ConfirmDeleteReception=Ви впевнені, що хочете видалити цей прийом? +ConfirmValidateReception=Ви впевнені, що хочете підтвердити цей прийом посиланням %s ? +ConfirmCancelReception=Ви впевнені, що хочете скасувати цей прийом? +StatsOnReceptionsOnlyValidated=Статистика, проведена на прийомах, лише перевірена. Використовується дата підтвердження отримання (запланована дата доставки не завжди відома). +SendReceptionByEMail=Надіслати прийом електронною поштою +SendReceptionRef=Подання прийому %s +ActionsOnReception=Події на прийомі +ReceptionCreationIsDoneFromOrder=На даний момент створення нового прийому здійснюється з Замовлення на закупівлю. +ReceptionLine=Лінія прийому +ProductQtyInReceptionAlreadySent=Кількість товару з відкритого замовлення вже надіслано +ProductQtyInSuppliersReceptionAlreadyRecevied=Кількість продукту з відкритого замовлення постачальника вже отримано +ValidateOrderFirstBeforeReception=Ви повинні спочатку підтвердити замовлення, перш ніж мати можливість приймати. +ReceptionsNumberingModules=Нумераційний модуль для прийомів +ReceptionsReceiptModel=Шаблони документів для прийомів +NoMorePredefinedProductToDispatch=Більше ніяких попередньо визначених продуктів для відправки +ReceptionExist=Приймальня існує +ByingPrice=Вихідна ціна +ReceptionBackToDraftInDolibarr=Прийом %s повернутися до чернетки +ReceptionClassifyClosedInDolibarr=Прийом %s закритий +ReceptionUnClassifyCloseddInDolibarr=Прийом %s знову відкритий diff --git a/htdocs/langs/uk_UA/recruitment.lang b/htdocs/langs/uk_UA/recruitment.lang index 09d505fb44e..ed7879faf7e 100644 --- a/htdocs/langs/uk_UA/recruitment.lang +++ b/htdocs/langs/uk_UA/recruitment.lang @@ -18,59 +18,61 @@ # # 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 = 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 +About = Про +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=Список додатків +RequestedRemuneration=Запитувана винагорода +ProposedRemuneration=Пропонована винагорода +ContractProposed=Запропоновано договір +ContractSigned=Договір підписаний +ContractRefused=Контракт відмовлено +RecruitmentCandidature=Застосування +JobPositions=Посади +RecruitmentCandidatures=Додатки +InterviewToDo=Інтерв’ю зробити +AnswerCandidature=Відповідь на заявку +YourCandidature=Ваша заявка +YourCandidatureAnswerMessage=Дякую за вашу заявку.
    ... +JobClosedTextCandidateFound=Вакансія закрита. Посада зайнята. +JobClosedTextCanceled=Вакансія закрита. +ExtrafieldsJobPosition=Додаткові атрибути (посади) +ExtrafieldsApplication=Додаткові атрибути (заявки на роботу) +MakeOffer=Зробити пропозицію +WeAreRecruiting=Ми набираємо. Це список відкритих вакансій, які потрібно заповнити... +NoPositionOpen=На даний момент немає відкритих позицій diff --git a/htdocs/langs/uk_UA/resource.lang b/htdocs/langs/uk_UA/resource.lang index 5a907f6ba23..95614ae17a5 100644 --- a/htdocs/langs/uk_UA/resource.lang +++ b/htdocs/langs/uk_UA/resource.lang @@ -1,36 +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 +MenuResourceIndex=Ресурси +MenuResourceAdd=Новий ресурс +DeleteResource=Видалити ресурс +ConfirmDeleteResourceElement=Підтвердьте видалення ресурсу для цього елемента +NoResourceInDatabase=Немає ресурсу в базі даних. +NoResourceLinked=Немає посилання на ресурс +ActionsOnResource=Події на цьому ресурсі +ResourcePageIndex=Список ресурсів +ResourceSingular=Ресурс +ResourceCard=Картка ресурсів +AddResource=Створіть ресурс +ResourceFormLabel_ref=Назва ресурсу +ResourceType=Тип ресурсу +ResourceFormLabel_description=Опис ресурсу -ResourcePageIndex=Resources list -ResourceSingular=Resource -ResourceCard=Resource card -AddResource=Create a resource -ResourceFormLabel_ref=Resource name -ResourceType=Resource type -ResourceFormLabel_description=Resource description +ResourcesLinkedToElement=Ресурси, пов’язані з елементом -ResourcesLinkedToElement=Resources linked to element +ShowResource=Показати ресурс -ShowResource=Show resource +ResourceElementPage=Ресурси елементів +ResourceCreatedWithSuccess=Ресурс успішно створено +RessourceLineSuccessfullyDeleted=Рядок ресурсу успішно видалено +RessourceLineSuccessfullyUpdated=Рядок ресурсів успішно оновлено +ResourceLinkedWithSuccess=Ресурс, пов'язаний з успіхом -ResourceElementPage=Element resources -ResourceCreatedWithSuccess=Resource successfully created -RessourceLineSuccessfullyDeleted=Resource line successfully deleted -RessourceLineSuccessfullyUpdated=Resource line successfully updated -ResourceLinkedWithSuccess=Resource linked with success +ConfirmDeleteResource=Підтвердьте видалення цього ресурсу +RessourceSuccessfullyDeleted=Ресурс успішно видалено +DictionaryResourceType=Тип ресурсів -ConfirmDeleteResource=Confirm to delete this resource -RessourceSuccessfullyDeleted=Resource successfully deleted -DictionaryResourceType=Type of resources +SelectResource=Виберіть ресурс -SelectResource=Select resource +IdResource=Ідентифікатор ресурсу +AssetNumber=Серійний номер +ResourceTypeCode=Код типу ресурсу +ImportDataset_resource_1=Ресурси -IdResource=Id resource -AssetNumber=Serial number -ResourceTypeCode=Resource type code -ImportDataset_resource_1=Resources +ErrorResourcesAlreadyInUse=Деякі ресурси використовуються +ErrorResourceUseInEvent=%s використовується в події %s diff --git a/htdocs/langs/uk_UA/salaries.lang b/htdocs/langs/uk_UA/salaries.lang index c0e115a20df..34ec2d0266d 100644 --- a/htdocs/langs/uk_UA/salaries.lang +++ b/htdocs/langs/uk_UA/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 -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 +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Обліковий запис, що використовується для третіх осіб користувача +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Спеціальний обліковий рахунок, визначений на картці користувача, використовуватиметься лише для обліку Subledger. Це буде використовуватися для Головної книги та як значення за замовчуванням для обліку підкниги, якщо для користувача не визначено спеціальний обліковий запис користувача. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Бухгалтерський рахунок за замовчуванням для виплати заробітної плати +CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=За замовчуванням залиште порожнім параметр «Автоматично створювати загальний платіж» під час створення зарплати +Salary=Заробітна плата +Salaries=Заробітна плата +NewSalary=Нова зарплата +AddSalary=Додати зарплату +NewSalaryPayment=Нова зарплатна картка +AddSalaryPayment=Додати зарплату +SalaryPayment=Виплата заробітної плати +SalariesPayments=Виплати заробітної плати +SalariesPaymentsOf=Виплати заробітної плати %s +ShowSalaryPayment=Показати виплату заробітної плати +THM=Середня погодинна ставка +TJM=Середня добова норма +CurrentSalary=Поточна заробітна платня +THMDescription=Це значення може використовуватися для розрахунку вартості часу, витраченого на проект, введений користувачами, якщо використовується модульний проект +TJMDescription=Наразі це значення є лише інформаційним і не використовується для будь-яких розрахунків +LastSalaries=Останні зарплати %s +AllSalaries=Всі зарплати +SalariesStatistics=Статистика заробітної плати +SalariesAndPayments=Заробітна плата та виплати +ConfirmDeleteSalaryPayment=Ви хочете видалити цю виплату зарплати? +FillFieldFirst=Спочатку заповніть поле співробітника +UpdateAmountWithLastSalary=Встановити суму з останньою зарплатою diff --git a/htdocs/langs/uk_UA/sendings.lang b/htdocs/langs/uk_UA/sendings.lang index 80c43b66104..7aed0c0ed7b 100644 --- a/htdocs/langs/uk_UA/sendings.lang +++ b/htdocs/langs/uk_UA/sendings.lang @@ -1,76 +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 +RefSending=Пос. відправлення +Sending=Відвантаження +Sendings=Відвантаження +AllSendings=Усі відправлення +Shipment=Відвантаження +Shipments=Відвантаження +ShowSending=Показати відправлення +Receivings=Квитанції про доставку +SendingsArea=Зона відвантажень +ListOfSendings=Список відправлень +SendingMethod=Метод доставки +LastSendings=Останні відправлення %s +StatisticsOfSendings=Статистика відправлень +NbOfSendings=Кількість відправлень +NumberOfShipmentsByMonth=Кількість відправок по місяцях +SendingCard=Транспортна картка +NewSending=Нове відправлення +CreateShipment=Створити відправлення +QtyShipped=Кількість відправлено +QtyShippedShort=Кількість корабля. +QtyPreparedOrShipped=Кількість підготовлена або відправлена +QtyToShip=Кількість для відправлення +QtyToReceive=Кількість для отримання +QtyReceived=Отримана кількість +QtyInOtherShipments=Кількість в інших відправленнях +KeepToShip=Залишилося відправити +KeepToShipShort=Залишайтеся +OtherSendingsForSameOrder=Інші відправлення для цього замовлення +SendingsAndReceivingForSameOrder=Відвантаження та квитанції для цього замовлення +SendingsToValidate=Відправки для перевірки +StatusSendingCanceled=Скасовано +StatusSendingCanceledShort=Скасовано StatusSendingDraft=Проект -StatusSendingValidated=Validated (products to ship or already shipped) +StatusSendingValidated=Перевірено (товари для відправлення або вже відправлені) StatusSendingProcessed=Оброблений StatusSendingDraftShort=Проект StatusSendingValidatedShort=Підтверджений StatusSendingProcessedShort=Оброблений -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. +SendingSheet=Відвантажувальний лист +ConfirmDeleteSending=Ви впевнені, що хочете видалити це відправлення? +ConfirmValidateSending=Ви впевнені, що хочете підтвердити це відправлення з посиланням %s ? +ConfirmCancelSending=Ви впевнені, що хочете скасувати цю відправку? +DocumentModelMerou=Модель Merou A5 +WarningNoQtyLeftToSend=Попередження, немає продуктів, які очікують на відправку. +StatsOnShipmentsOnlyValidated=Статистика стосується лише перевірених відправлень. Використана дата – це дата підтвердження відправлення (планова дата доставки не завжди відома) +DateDeliveryPlanned=Запланована дата доставки +RefDeliveryReceipt=Довідкова квитанція про вручення +StatusReceipt=Квитанція про вручення стану +DateReceived=Дата отримання +ClassifyReception=Класифікувати прийом +SendShippingByEMail=Відправити відправлення електронною поштою +SendShippingRef=Подання відправлення %s +ActionsOnShipping=Події на відправленні +LinkToTrackYourPackage=Посилання для відстеження вашої посилки +ShipmentCreationIsDoneFromOrder=На даний момент створення нового відправлення здійснюється з запису замовлення на продаж. +ShipmentLine=Лінія відвантаження +ProductQtyInCustomersOrdersRunning=Кількість товару з відкритих замовлень +ProductQtyInSuppliersOrdersRunning=Кількість товару з відкритих замовлень +ProductQtyInShipmentAlreadySent=Кількість товару з відкритого замовлення вже надіслано +ProductQtyInSuppliersShipmentAlreadyRecevied=Кількість товару з відкритих замовлень вже отримано +NoProductToShipFoundIntoStock=На складі не знайдено жодного товару для відправлення %s . Виправте запас або поверніться, щоб вибрати інший склад. +WeightVolShort=Вага/об. +ValidateOrderFirstBeforeShipment=Ви повинні спочатку підтвердити замовлення, перш ніж мати можливість здійснювати відправлення. # 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 +DocumentModelTyphon=Більш повна модель документа для квитанцій (логотип...) +DocumentModelStorm=Більш повна модель документа для квитанцій про доставку та сумісності додаткових полів (логотип...) +Error_EXPEDITION_ADDON_NUMBER_NotDefined=Константу EXPEDITION_ADDON_NUMBER не визначено +SumOfProductVolumes=Сума обсягів продукції +SumOfProductWeights=Сума ваг продукту # warehouse details -DetailWarehouseNumber= Warehouse details -DetailWarehouseFormat= W:%s (Qty: %d) +DetailWarehouseNumber= Деталі складу +DetailWarehouseFormat= W:%s (кількість: %d) diff --git a/htdocs/langs/uk_UA/sms.lang b/htdocs/langs/uk_UA/sms.lang index a7f27672863..636440e8da5 100644 --- a/htdocs/langs/uk_UA/sms.lang +++ b/htdocs/langs/uk_UA/sms.lang @@ -1,51 +1,51 @@ # Dolibarr language file - Source file is en_US - sms -Sms=Sms -SmsSetup=Sms setup -SmsDesc=This page allows you to define globals options on SMS features -SmsCard=SMS Card -AllSms=All SMS campains -SmsTargets=Targets -SmsRecipients=Targets -SmsRecipient=Target -SmsTitle=Description +Sms=СМС +SmsSetup=Налаштування SMS +SmsDesc=Ця сторінка дозволяє визначити глобальні параметри функцій SMS +SmsCard=СМС-картка +AllSms=Усі SMS-кампанії +SmsTargets=Цілі +SmsRecipients=Цілі +SmsRecipient=Ціль +SmsTitle=Опис SmsFrom=Відправник -SmsTo=Target -SmsTopic=Topic of SMS -SmsText=Message -SmsMessage=SMS Message -ShowSms=Show Sms -ListOfSms=List SMS campains -NewSms=New SMS campain -EditSms=Edit Sms -ResetSms=New sending -DeleteSms=Delete Sms campain -DeleteASms=Remove a Sms campain -PreviewSms=Previuw Sms -PrepareSms=Prepare Sms -CreateSms=Create Sms -SmsResult=Result of Sms sending -TestSms=Test Sms -ValidSms=Validate Sms -ApproveSms=Approve Sms +SmsTo=Ціль +SmsTopic=Тема смс +SmsText=повідомлення +SmsMessage=SMS-повідомлення +ShowSms=Показати SMS +ListOfSms=Список SMS-кампаній +NewSms=Нова SMS-кампанія +EditSms=Редагувати SMS +ResetSms=Нове відправлення +DeleteSms=Видалити SMS-кампанію +DeleteASms=Видалити SMS-кампанію +PreviewSms=Попереднє SMS +PrepareSms=Підготуйте SMS +CreateSms=Створити SMS +SmsResult=Результат відправки SMS +TestSms=Тестове SMS +ValidSms=Підтвердити SMS +ApproveSms=Схвалити SMS SmsStatusDraft=Проект SmsStatusValidated=Підтверджений -SmsStatusApproved=Approved -SmsStatusSent=Sent -SmsStatusSentPartialy=Sent partially -SmsStatusSentCompletely=Sent completely +SmsStatusApproved=Затверджено +SmsStatusSent=Надісланий +SmsStatusSentPartialy=Надіслано частково +SmsStatusSentCompletely=Надіслано повністю SmsStatusError=Помилка -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 campain? -NbOfUniqueSms=Nb dof unique phone numbers -NbOfSms=Nbre of phon numbers -ThisIsATestMessage=This is a test message -SendSms=Send SMS -SmsInfoCharRemain=Nb of remaining characters -SmsInfoNumero= (format international ie : +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) +SmsStatusNotSent=Не надіслано +SmsSuccessfulySent=SMS надіслано правильно (з %s до %s) +ErrorSmsRecipientIsEmpty=Номер цілі порожній +WarningNoSmsAdded=Немає нового номера телефону для додавання до цільового списку +ConfirmValidSms=Ви підтверджуєте підтвердження цієї кампанії? +NbOfUniqueSms=Кількість унікальних телефонних номерів +NbOfSms=Кількість телефонних номерів +ThisIsATestMessage=Це тестове повідомлення +SendSms=Відправити SMS +SmsInfoCharRemain=Кількість символів, що залишилися +SmsInfoNumero= (міжнародний формат, тобто: +33899701761) +DelayBeforeSending=Затримка перед відправкою (хвилин) +SmsNoPossibleSenderFound=Відправник відсутній. Перевірте налаштування свого постачальника SMS. +SmsNoPossibleRecipientFound=Ціль не доступна. Перевірте налаштування свого постачальника SMS. +DisableStopIfSupported=Вимкнути повідомлення STOP (якщо підтримується) diff --git a/htdocs/langs/uk_UA/stocks.lang b/htdocs/langs/uk_UA/stocks.lang index 0b878cef31c..6160f5c7e77 100644 --- a/htdocs/langs/uk_UA/stocks.lang +++ b/htdocs/langs/uk_UA/stocks.lang @@ -1,273 +1,274 @@ # 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 +WarehouseCard=Картка складу +Warehouse=Склад +Warehouses=Складські приміщення +ParentWarehouse=Батьківський склад +NewWarehouse=Новий склад/розташування +WarehouseEdit=Змінити склад +MenuNewWarehouse=Новий склад +WarehouseSource=Джерельний склад +WarehouseSourceNotDefined=Не визначено склад, +AddWarehouse=Створити склад +AddOne=Додайте один +DefaultWarehouse=Склад за замовчуванням +WarehouseTarget=Цільовий склад +ValidateSending=Підтвердити відправлення +CancelSending=Скасувати відправлення +DeleteSending=Видалити відправлення +Stock=Запас +Stocks=Акції +MissingStocks=Відсутні запаси +StockAtDate=Запаси на дату +StockAtDateInPast=Дата в минулому +StockAtDateInFuture=Дата в майбутньому +StocksByLotSerial=Акції за лотами/серійними +LotSerial=Лоти/Серіали +LotSerialList=Список лотів/серіалів +Movements=Рухи +ErrorWarehouseRefRequired=Потрібна довідкова назва складу +ListOfWarehouses=Список складів +ListOfStockMovements=Список руху акцій +ListOfInventories=Список інвентаризацій +MovementId=Ідентифікатор руху +StockMovementForId=Ідентифікатор руху %d +ListMouvementStockProject=Список рухів запасів, пов'язаних з проектом +StocksArea=Площа складів +AllWarehouses=Всі склади +IncludeEmptyDesiredStock=Включіть також негативні запаси з невизначеними бажаними запасами +IncludeAlsoDraftOrders=Включіть також проекти наказів 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 add another warehouse for this product -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 +LocationSummary=Коротка назва місця розташування +NumberOfDifferentProducts=Кількість унікальних продуктів +NumberOfProducts=Загальна кількість продуктів +LastMovement=Останній рух +LastMovements=Останні рухи +Units=одиниці +Unit=одиниця +StockCorrection=Корекція запасу +CorrectStock=Правильний запас +StockTransfer=Передача запасів +TransferStock=Передача запасів +MassStockTransferShort=Перенесення маси запасів +StockMovement=Рух запасів +StockMovements=Рухи запасів +NumberOfUnit=Кількість одиниць +UnitPurchaseValue=Ціна закупівлі одиниці +StockTooLow=Замало запасу +StockLowerThanLimit=Запас нижчий за ліміт попередження (%s) +EnhancedValue=Значення +EnhancedValueOfWarehouses=Вартість складів +UserWarehouseAutoCreate=Створюйте сховище користувачів автоматично під час створення користувача +AllowAddLimitStockByWarehouse=Керуйте також значенням мінімального та бажаного запасу на пару (продукт-склад) на додаток до значення мінімального та бажаного запасу на продукт +RuleForWarehouse=Правило для складів +WarehouseAskWarehouseOnThirparty=Установити склад на сторонніх +WarehouseAskWarehouseDuringPropal=Встановити склад на комерційні пропозиції +WarehouseAskWarehouseDuringOrder=Встановити склад у замовленнях на продаж +WarehouseAskWarehouseDuringProject=Встановіть склад на Проекти +UserDefaultWarehouse=Установіть склад на Користувачах +MainDefaultWarehouse=Склад за замовчуванням +MainDefaultWarehouseUser=Використовуйте склад за замовчуванням для кожного користувача +MainDefaultWarehouseUserDesc=Активуючи цю опцію, під час створення продукту на ньому буде визначено приписаний продукту склад. Якщо для користувача не визначено сховище, визначається склад за замовчуванням. +IndependantSubProductStock=Запас продукту та запас підпродуктів є незалежними +QtyDispatched=Відправлена кількість +QtyDispatchedShort=Кількість відправлено +QtyToDispatchShort=Кількість для відправки +OrderDispatch=Товарні квитанції +RuleForStockManagementDecrease=Виберіть Правило для автоматичного зменшення запасу (зменшення вручну завжди можливо, навіть якщо активовано правило автоматичного зменшення) +RuleForStockManagementIncrease=Виберіть Правило для автоматичного збільшення запасу (збільшення вручну завжди можливо, навіть якщо активовано правило автоматичного збільшення) +DeStockOnBill=Зменшити реальні запаси під час підтвердження рахунку-фактури/кредиту клієнта +DeStockOnValidateOrder=Зменшити реальні запаси під час підтвердження замовлення на продаж +DeStockOnShipment=Зменште реальні запаси під час перевірки доставки +DeStockOnShipmentOnClosing=Зменште реальні запаси, коли доставка закрито +ReStockOnBill=Збільште реальні запаси після підтвердження рахунка-фактури/кредит-ноти постачальника +ReStockOnValidateOrder=Збільште реальні запаси після затвердження замовлення на покупку +ReStockOnDispatchOrder=Збільшити реальні запаси при ручному відвантаженні на склад, після надходження товару на замовлення +StockOnReception=Збільште реальні запаси на підтвердження прийому +StockOnReceptionOnClosing=Збільште реальні запаси, коли стійка реєстрації закрита +OrderStatusNotReadyToDispatch=Замовлення ще не має або більше не має статусу, що дозволяє відправляти продукцію на складі. +StockDiffPhysicTeoric=Пояснення різниці між фізичним і віртуальним запасом +NoPredefinedProductToDispatch=Немає попередньо визначених продуктів для цього об’єкта. Тому не потрібно відправляти на складі. +DispatchVerb=Відправка +StockLimitShort=Обмеження для оповіщення +StockLimit=Ліміт запасу для оповіщення +StockLimitDesc=(порожній) означає відсутність попередження.
    0 можна використовувати, щоб викликати попередження, як тільки запас порожній. +PhysicalStock=Фізичний запас +RealStock=Реальний запас +RealStockDesc=Фізичний/реальний запас – це запас, який зараз знаходиться на складах. +RealStockWillAutomaticallyWhen=Реальний запас буде змінено відповідно до цього правила (як визначено в модулі запасів): +VirtualStock=Віртуальна акція +VirtualStockAtDate=Віртуальні акції на майбутній день +VirtualStockAtDateDesc=Віртуальний запас, коли всі відкладені замовлення, які планується обробити до обраної дати, будуть завершені +VirtualStockDesc=Віртуальний запас — це розрахований запас, доступний після закриття всіх відкритих/незавершених дій (що впливають на запаси) (отримані замовлення на покупку, відвантажені замовлення на продаж, виготовлені замовлення на виробництво тощо) +AtDate=На дату +IdWarehouse=Ідентифікаційний склад +DescWareHouse=Опис складу +LieuWareHouse=Склад локалізації +WarehousesAndProducts=Склади та продукти +WarehousesAndProductsBatchDetail=Склади та продукти (з деталями за партію/серію) +AverageUnitPricePMPShort=Середньозважена ціна +AverageUnitPricePMPDesc=Середня вхідна ціна одиниці, яку ми повинні були витратити, щоб отримати 1 одиницю продукту на нашому складі. +SellPriceMin=Ціна одиниці продажу +EstimatedStockValueSellShort=Цінність для продажу +EstimatedStockValueSell=Цінність для продажу +EstimatedStockValueShort=Вхідна вартість запасу +EstimatedStockValue=Вхідна вартість запасу +DeleteAWarehouse=Видалити склад +ConfirmDeleteWarehouse=Ви впевнені, що хочете видалити склад %s ? +PersonalStock=Особистий запас %s +ThisWarehouseIsPersonalStock=Цей склад представляє особистий запас %s %s +SelectWarehouseForStockDecrease=Виберіть склад для зменшення запасів +SelectWarehouseForStockIncrease=Виберіть склад для збільшення запасів +NoStockAction=Без акцій +DesiredStock=Бажаний запас +DesiredStockDesc=Ця сума запасу буде значенням, використаним для заповнення запасу за допомогою функції поповнення. +StockToBuy=Наказувати +Replenishment=Поповнення +ReplenishmentOrders=Замовлення на поповнення +VirtualDiffersFromPhysical=Відповідно до варіантів збільшення/зменшення запасів, фізичні та віртуальні запаси (фізичні запаси + відкриті замовлення) можуть відрізнятися +UseRealStockByDefault=Використовуйте реальний запас замість віртуального для функції поповнення +ReplenishmentCalculation=Сума замовлення буде (бажана кількість - реальний запас) замість (бажана кількість - віртуальний запас) +UseVirtualStock=Використовуйте віртуальні акції +UsePhysicalStock=Використовуйте фізичний запас +CurentSelectionMode=Поточний режим вибору +CurentlyUsingVirtualStock=Віртуальна акція +CurentlyUsingPhysicalStock=Фізичний запас +RuleForStockReplenishment=Правило поповнення запасів +SelectProductWithNotNullQty=Виберіть принаймні один продукт, кількість якого не є нульовою, і постачальника +AlertOnly= Тільки сповіщення +IncludeProductWithUndefinedAlerts = Включіть також негативний запас для продуктів, для яких не визначена бажана кількість, щоб відновити їх до 0 +WarehouseForStockDecrease=Склад %s буде використовуватися для зменшення запасів +WarehouseForStockIncrease=Склад %s буде використовуватися для збільшення запасів +ForThisWarehouse=Для цього складу +ReplenishmentStatusDesc=Це список усіх продуктів, запаси яких нижчі за бажані (або нижчі за значення сповіщення, якщо встановлено прапорець «лише сповіщення»). Використовуючи прапорець, ви можете створювати замовлення на покупку, щоб заповнити різницю. +ReplenishmentStatusDescPerWarehouse=Якщо ви хочете поповнення на основі бажаної кількості, визначеної для кожного складу, ви повинні додати фільтр на склад. +ReplenishmentOrdersDesc=Це список усіх відкритих замовлень, включаючи попередньо визначені продукти. Тут відображаються лише відкриті замовлення з попередньо визначеними продуктами, тому замовлення, які можуть вплинути на запаси, відображаються тут. +Replenishments=Поповнення +NbOfProductBeforePeriod=Кількість товару %s в наявності до вибраного періоду (< %s) +NbOfProductAfterPeriod=Кількість продукту %s на складі після вибраного періоду (> %s) +MassMovement=Масовий рух +SelectProductInAndOutWareHouse=Виберіть вихідний склад і цільовий склад, продукт і кількість, а потім натисніть «%s». Після того, як це буде зроблено для всіх необхідних рухів, натисніть «%s». +RecordMovement=Передача запису +ReceivingForSameOrder=Квитанції на це замовлення +StockMovementRecorded=Зафіксовано рух запасів +RuleForStockAvailability=Правила вимог до запасів +StockMustBeEnoughForInvoice=Рівень запасу має бути достатнім для додавання товару/послуги до рахунка-фактури (перевірка здійснюється на поточних реальних запасах під час додавання рядка в рахунок-фактуру незалежно від правила автоматичної зміни запасу) +StockMustBeEnoughForOrder=Рівень запасу має бути достатнім для додавання товару/послуги до замовлення (перевірка виконується на поточних реальних запасах під час додавання рядка в замовлення незалежно від правила автоматичної зміни запасу) +StockMustBeEnoughForShipment= Рівень запасу має бути достатнім для додавання товару/послуги до відправлення (перевірка виконується на поточних реальних запасах під час додавання рядка до відправлення, незалежно від правила автоматичної зміни запасу) +MovementLabel=Мітка руху +TypeMovement=Напрямок руху +DateMovement=Дата руху +InventoryCode=Код руху або інвентаризації +IsInPackage=Міститься в упаковці +WarehouseAllowNegativeTransfer=Запас може бути негативним +qtyToTranferIsNotEnough=У вас недостатньо запасів із вихідного складу, а налаштування не допускають негативних запасів. +qtyToTranferLotIsNotEnough=У вас недостатньо запасів для цього номера партії з вашого вихідного складу, і ваші налаштування не дозволяють від’ємні запаси (кількість для продукту '%s' з партією '%s' є %s на складі '%s'). +ShowWarehouse=Показати склад +MovementCorrectStock=Корекція запасу для продукту %s +MovementTransferStock=Передача товару %s на інший склад +InventoryCodeShort=Інв./Мов. код +NoPendingReceptionOnSupplierOrder=Немає очікуваного отримання через відкрите замовлення на покупку +ThisSerialAlreadyExistWithDifferentDate=This lot/serial number ( %s ) already exists but with different eatby or sellby date (found %s but you enter %s ). +OpenAnyMovement=Відкрити (усі рухи) +OpenInternal=Відкритий (тільки внутрішній рух) +UseDispatchStatus=Використовуйте статус відправлення (затвердити/відмовити) для ліній продуктів під час отримання замовлення на покупку +OptionMULTIPRICESIsOn=Увімкнено опцію «кілька цін на сегмент». Це означає, що продукт має кілька відпускних цін, тому вартість продажу не може бути розрахована +ProductStockWarehouseCreated=Обмеження запасу для оповіщення та бажаний оптимальний запас правильно створено +ProductStockWarehouseUpdated=Коректно оновлено ліміт запасу для попередження та бажаний оптимальний запас +ProductStockWarehouseDeleted=Обмеження запасу для оповіщення та бажаний оптимальний запас правильно видалено +AddNewProductStockWarehouse=Установіть новий ліміт для оповіщення та бажаного оптимального запасу +AddStockLocationLine=Зменште кількість, а потім клацніть, щоб розділити лінію +InventoryDate=Дата інвентаризації +Inventories=Інвентаризація +NewInventory=Новий інвентар +inventorySetup = Налаштування інвентарю +inventoryCreatePermission=Створіть новий інвентар +inventoryReadPermission=Перегляд товарних запасів +inventoryWritePermission=Оновлення запасів +inventoryValidatePermission=Перевірити інвентар +inventoryDeletePermission=Видалити інвентар +inventoryTitle=Інвентаризація +inventoryListTitle=Інвентаризація +inventoryListEmpty=Немає інвентаризації +inventoryCreateDelete=Створити/Видалити інвентар +inventoryCreate=Створити новий +inventoryEdit=Редагувати inventoryValidate=Підтверджений -inventoryDraft=Running -inventorySelectWarehouse=Warehouse choice +inventoryDraft=Біг +inventorySelectWarehouse=Вибір складу 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=Replace 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. +inventoryOfWarehouse=Інвентар для складу: %s +inventoryErrorQtyAdd=Помилка: одна величина менша за нуль +inventoryMvtStock=За інвентаризацією +inventoryWarningProductAlreadyExists=Цей продукт вже є в списку +SelectCategory=Категорійний фільтр +SelectFournisseur=Фільтр продавця +inventoryOnDate=Інвентаризація +INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Рух запасів матиме дату інвентаризації (замість дати підтвердження інвентаризації) +inventoryChangePMPPermission=Дозволити змінити значення PMP для продукту +ColumnNewPMP=Новий агрегат PMP +OnlyProdsInStock=Не додавайте продукт без запасу +TheoricalQty=Теоретична кількість +TheoricalValue=Теоретична кількість +LastPA=Останній АТ +CurrentPA=Поточний АТ +RecordedQty=Записана кількість +RealQty=Реальна кількість +RealValue=Реальна вартість +RegulatedQty=Регульована кількість +AddInventoryProduct=Додати товар до інвентарю +AddProduct=Додати +ApplyPMP=Застосуйте PMP +FlushInventory=Очистити інвентар +ConfirmFlushInventory=Ви підтверджуєте цю дію? +InventoryFlushed=Промивається інвентар +ExitEditMode=Вихідна версія +inventoryDeleteLine=Видалити рядок +RegulateStock=Регулювати запас +ListInventory=Список +StockSupportServices=Управління запасами підтримує Служби +StockSupportServicesDesc=За замовчуванням ви можете зберігати лише продукти типу «товар». Ви також можете зберігати продукт типу "послуга", якщо ввімкнено обидва модулі Сервіси та ця опція. +ReceiveProducts=Отримати предмети +StockIncreaseAfterCorrectTransfer=Збільшення шляхом корекції/перенесення +StockDecreaseAfterCorrectTransfer=Зменшення шляхом корекції/перенесення +StockIncrease=Збільшення запасів +StockDecrease=Зниження запасів +InventoryForASpecificWarehouse=Інвентар для конкретного складу +InventoryForASpecificProduct=Інвентаризація для конкретного товару +StockIsRequiredToChooseWhichLotToUse=Запас необхідний, щоб вибрати, який лот використовувати +ForceTo=Змусити до +AlwaysShowFullArbo=Відображати повне дерево складу у спливаючому вікні посилань на склад (Попередження: це може значно знизити продуктивність) +StockAtDatePastDesc=Тут можна переглянути запаси (реальні запаси) на певну дату в минулому +StockAtDateFutureDesc=Тут можна переглянути акції (віртуальні акції) на певну дату в майбутньому +CurrentStock=Поточний запас +InventoryRealQtyHelp=Встановіть значення 0, щоб скинути кількість
    Залиште поле пустим або видаліть рядок, щоб залишити незмінним +UpdateByScaning=Заповніть реальну кількість шляхом сканування +UpdateByScaningProductBarcode=Оновлення за допомогою сканування (штрих-код продукту) +UpdateByScaningLot=Оновлення шляхом сканування (лот|послідовний штрих-код) +DisableStockChangeOfSubProduct=Деактивуйте зміну запасу для всіх підпродуктів цього комплекту під час цього переміщення. +ImportFromCSV=Імпорт CSV списку переміщень +ChooseFileToImport=Завантажте файл, а потім натисніть на піктограму %s, щоб вибрати файл як вихідний файл імпорту... +SelectAStockMovementFileToImport=виберіть файл руху запасу для імпорту +InfoTemplateImport=Завантажений файл повинен мати такий формат (* є обов’язковими для заповнення):
    Source Warehouse* | Цільовий склад* | Продукт* | Кількість* | Лот/серійний номер
    Роздільник символів CSV має бути " %s " +LabelOfInventoryMovemement=Інвентар %s +ReOpen=Відкрити знову +ConfirmFinish=Ви підтверджуєте закриття інвентаризації? Це генерує всі рухи запасів, щоб оновити ваш запас до реальної кількості, яку ви ввели в інвентар. +ObjectNotFound=%s не знайдено +MakeMovementsAndClose=Створіть рухи і закрийте +AutofillWithExpected=Заповніть реальну кількість очікуваною кількістю +ShowAllBatchByDefault=За замовчуванням відображаються відомості про партію на вкладці «Запас». +CollapseBatchDetailHelp=У конфігурації модуля запасів можна налаштувати відображення даних про пакет за замовчуванням +ErrorWrongBarcodemode=Режим невідомого штрих-коду +ProductDoesNotExist=Продукт не існує +ErrorSameBatchNumber=У інвентарному листі було знайдено кілька записів про номер партії. Неможливо дізнатися, який з них збільшити. +ProductBatchDoesNotExist=Продукт із партією/серією не існує +ProductBarcodeDoesNotExist=Товар зі штрих-кодом не існує +WarehouseId=Ідентифікатор складу +WarehouseRef=Склад Реф +SaveQtyFirst=Спочатку збережіть реальні інвентаризовані кількості, перш ніж запитувати створення руху запасів. 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 +ErrorOnElementsInventory=Операцію скасовано з таких причин: +ErrorCantFindCodeInInventory=Не вдається знайти наступний код в інвентарі +QtyWasAddedToTheScannedBarcode=Успіху!! Кількість додано до всіх запитаних штрих-кодів. Ви можете закрити інструмент Scanner. +StockChangeDisabled=Зміна на складі вимкнена +NoWarehouseDefinedForTerminal=Для терміналу не визначено склад +ClearQtys=Очистити всі кількості diff --git a/htdocs/langs/uk_UA/stripe.lang b/htdocs/langs/uk_UA/stripe.lang index 2c95bcfce27..a8f9176d83a 100644 --- a/htdocs/langs/uk_UA/stripe.lang +++ b/htdocs/langs/uk_UA/stripe.lang @@ -1,71 +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 +StripeSetup=Налаштування Stripe модуля +StripeDesc=Запропонуйте своїм клієнтам сторінку онлайн-платежів для оплати кредитними/дебетовими картками через Stripe . Це можна використовувати, щоб дозволити вашим клієнтам здійснювати тимчасові платежі або для платежів, пов’язаних з певним об’єктом Dolibarr (рахунок-фактура, замовлення, ...) +StripeOrCBDoPayment=Оплатіть кредитною карткою або Stripe +FollowingUrlAreAvailableToMakePayments=Наведені нижче URL-адреси доступні, щоб запропонувати клієнту сторінку для здійснення платежу за об’єктами Dolibarr +PaymentForm=Форма оплати +WelcomeOnPaymentPage=Ласкаво просимо до нашого сервісу онлайн-платежів +ThisScreenAllowsYouToPay=Цей екран дозволяє здійснити онлайн-платеж на адресу %s. +ThisIsInformationOnPayment=Це інформація про оплату +ToComplete=Завершувати +YourEMail=Електронна пошта, щоб отримати підтвердження оплати +STRIPE_PAYONLINE_SENDEMAIL=Сповіщення електронною поштою після спроби оплати (успішної чи невдалої) +Creditor=Кредитор +PaymentCode=Код платежу +StripeDoPayment=Оплата за допомогою Stripe +YouWillBeRedirectedOnStripe=Ви будете перенаправлені на захищену сторінку Stripe, щоб ввести дані вашої кредитної картки +Continue=Далі +ToOfferALinkForOnlinePayment=URL для платежу %s +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-адреса модуля CGI Stripe для оплати +CSSUrlForPaymentForm=URL-адреса таблиці стилів CSS для форми оплати +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 live увімкнено (інакше тестовий режим/режим пісочниці) +StripeImportPayment=Імпортні платежі Stripe +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=Список звинувачень Stripe +StripeTransactionList=Список операцій Stripe +StripeCustomerId=Ідентифікатор клієнта Stripe +StripePaymentModes=Режими оплати Stripe +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 +ShowInStripe=Показати в Stripe +StripeUserAccountForActions=Обліковий запис користувача для сповіщень електронною поштою про деякі події Stripe (виплати Stripe) +StripePayoutList=Список виплат Stripe +ToOfferALinkForTestWebhook=Посилання на налаштування Stripe WebHook для виклику IPN (тестовий режим) +ToOfferALinkForLiveWebhook=Посилання на налаштування Stripe WebHook для виклику IPN (живий режим) +PaymentWillBeRecordedForNextPeriod=Оплата буде зафіксована на наступний період. +ClickHereToTryAgain= Натисніть тут, щоб спробувати ще раз... +CreationOfPaymentModeMustBeDoneFromStripeInterface=У зв’язку зі строгими правилами автентифікації клієнтів створення картки має здійснюватися з бек-офісу Stripe. Ви можете натиснути тут, щоб увімкнути запис клієнта Stripe: %s diff --git a/htdocs/langs/uk_UA/supplier_proposal.lang b/htdocs/langs/uk_UA/supplier_proposal.lang index 8b0b708c2c4..3c3544213e3 100644 --- a/htdocs/langs/uk_UA/supplier_proposal.lang +++ b/htdocs/langs/uk_UA/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 +SupplierProposal=Комерційні пропозиції постачальників +supplier_proposalDESC=Керуйте запитами цін до постачальників +SupplierProposalNew=Новий запит ціни +CommRequest=Запит ціни CommRequests=Запити цін -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 -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 +SearchRequest=Знайдіть запит +DraftRequests=Чернетки запитів +SupplierProposalsDraft=Проект пропозицій постачальників +LastModifiedRequests=Останні %s запити змінених цін +RequestsOpened=Відкриті запити на ціни +SupplierProposalArea=Зона пропозицій постачальників +SupplierProposalShort=Пропозиція постачальника +SupplierProposals=Пропозиції постачальників +SupplierProposalsShort=Пропозиції постачальників +AskPrice=Запит ціни +NewAskPrice=Новий запит ціни +ShowSupplierProposal=Показати запит на ціну +AddSupplierProposal=Створіть запит ціни +SupplierProposalRefFourn=Реф. постачальника +SupplierProposalDate=Дата доставки +SupplierProposalRefFournNotice=Перш ніж закрити «Прийнято», подумайте, щоб зрозуміти рекомендації постачальників. +ConfirmValidateAsk=Ви впевнені, що хочете підтвердити цей запит ціни під іменем %s ? +DeleteAsk=Видалити запит +ValidateAsk=Підтвердити запит SupplierProposalStatusDraft=Проект (має бути підтверджений) -SupplierProposalStatusValidated=Validated (request is open) +SupplierProposalStatusValidated=Перевірено (запит відкритий) SupplierProposalStatusClosed=Зачинено -SupplierProposalStatusSigned=Accepted -SupplierProposalStatusNotSigned=Refused +SupplierProposalStatusSigned=Прийнято +SupplierProposalStatusNotSigned=Відмовився SupplierProposalStatusDraftShort=Проект SupplierProposalStatusValidatedShort=Підтверджений SupplierProposalStatusClosedShort=Зачинено -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 +SupplierProposalStatusSignedShort=Прийнято +SupplierProposalStatusNotSignedShort=Відмовився +CopyAskFrom=Створіть запит ціни, скопіювавши наявний запит +CreateEmptyAsk=Створити порожній запит +ConfirmCloneAsk=Ви впевнені, що хочете клонувати запит ціни %s ? +ConfirmReOpenAsk=Ви впевнені, що хочете відкрити запит ціни %s ? +SendAskByMail=Запит ціни надіслати поштою +SendAskRef=Надсилання запиту ціни %s +SupplierProposalCard=Картка запиту +ConfirmDeleteAsk=Ви впевнені, що хочете видалити цей запит ціни %s ? +ActionsOnSupplierProposal=Події за запитом ціни +DocModelAuroreDescription=Повна модель запиту (логотип...) +CommercialAsk=Запит ціни +DefaultModelSupplierProposalCreate=Створення моделі за замовчуванням +DefaultModelSupplierProposalToBill=Шаблон за замовчуванням під час закриття запиту ціни (прийнято) +DefaultModelSupplierProposalClosed=Шаблон за замовчуванням під час закриття запиту ціни (відмовлено) +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/uk_UA/suppliers.lang b/htdocs/langs/uk_UA/suppliers.lang index 70361194561..1bbb42515f2 100644 --- a/htdocs/langs/uk_UA/suppliers.lang +++ b/htdocs/langs/uk_UA/suppliers.lang @@ -1,49 +1,56 @@ # Dolibarr language file - Source file is en_US - vendors Suppliers=Постачальники -SuppliersInvoice=Vendor invoice -SupplierInvoices=Vendor invoices -ShowSupplierInvoice=Show Vendor Invoice -NewSupplier=New vendor -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 +SuppliersInvoice=Рахунок-фактура постачальника +SupplierInvoices=Рахунки постачальників +ShowSupplierInvoice=Показати рахунок-фактуру постачальника +NewSupplier=Новий постачальник +History=Історія +ListOfSuppliers=Список постачальників +ShowSupplier=Показати продавця +OrderDate=Дата замовлення +BuyingPriceMin=Найкраща ціна покупки +BuyingPriceMinShort=Найкраща ціна покупки +TotalBuyingPriceMinShort=Загальна вартість закупівель субпродуктів +TotalSellingPriceMinShort=Усього відпускних цін на субпродукти +SomeSubProductHaveNoPrices=Деякі субпродукти не мають визначеної ціни +AddSupplierPrice=Додайте ціну покупки +ChangeSupplierPrice=Змінити ціну покупки +SupplierPrices=Ціни продавця +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Це посилання на постачальника вже пов’язане з продуктом: %s +NoRecordedSuppliers=Продавець не зафіксований +SupplierPayment=Оплата постачальником +SuppliersArea=Територія продавця +RefSupplierShort=Пос. постачальник +Availability=Доступність +ExportDataset_fournisseur_1=Рахунки-фактури постачальника та реквізити рахунків-фактур +ExportDataset_fournisseur_2=Рахунки-фактури та платежі постачальників +ExportDataset_fournisseur_3=Замовлення на покупку та деталі замовлення +ApproveThisOrder=Затвердити цей наказ +ConfirmApproveThisOrder=Ви впевнені, що хочете затвердити замовлення %s ? +DenyingThisOrder=Відмовтеся від цього наказу +ConfirmDenyingThisOrder=Ви впевнені, що хочете відхилити це замовлення %s ? +ConfirmCancelThisOrder=Ви впевнені, що хочете скасувати це замовлення %s ? +AddSupplierOrder=Створити замовлення на покупку +AddSupplierInvoice=Створити рахунок-фактуру постачальника +ListOfSupplierProductForSupplier=Список продуктів і ціни для постачальника %s +SentToSuppliers=Надіслано продавцям +ListOfSupplierOrders=Список замовлень на закупівлю +MenuOrdersSupplierToBill=Замовлення на закупівлю для виставлення рахунку +NbDaysToDelivery=Затримка доставки (днів) +DescNbDaysToDelivery=Найдовша затримка доставки товарів із цього замовлення +SupplierReputation=Репутація продавця +ReferenceReputation=Довідкова репутація +DoNotOrderThisProductToThisSupplier=Не замовляйте +NotTheGoodQualitySupplier=Низька якість +ReputationForThisProduct=Репутація +BuyerName=Ім'я покупця +AllProductServicePrices=Ціни на всі продукти/послуги +AllProductReferencesOfSupplier=Усі посилання на продавця +BuyingPriceNumShort=Ціни продавця +RepeatableSupplierInvoice=Шаблон рахунку постачальника +RepeatableSupplierInvoices=Шаблони рахунків-фактур постачальників +RepeatableSupplierInvoicesList=Шаблони рахунків-фактур постачальників +RecurringSupplierInvoices=Регулярні рахунки постачальників +ToCreateAPredefinedSupplierInvoice=Щоб створити шаблон рахунка-фактури постачальника, необхідно створити стандартний рахунок-фактуру, потім, не перевіряючи його, натиснути кнопку «%s». +GeneratedFromSupplierTemplate=Створено з шаблону рахунку-фактури постачальника %s +SupplierInvoiceGeneratedFromTemplate=Рахунок-фактура постачальника %s Створений із шаблону рахунку-фактури постачальника %s diff --git a/htdocs/langs/uk_UA/ticket.lang b/htdocs/langs/uk_UA/ticket.lang index 152ee95b8b5..ecdc9a40bd5 100644 --- a/htdocs/langs/uk_UA/ticket.lang +++ b/htdocs/langs/uk_UA/ticket.lang @@ -19,306 +19,334 @@ # Module56000Name=Заявки -Module56000Desc=Ticket system for issue or request management +Module56000Desc=Система заявок для управління питаннями або запитами -Permission56001=See tickets +Permission56001=Дивіться заявки Permission56002=Редагувати заявки Permission56003=Видалити заявки -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) +Permission56004=Управління заявками +Permission56005=Перегляньте заявки всіх контрагентів (не діє для зовнішніх користувачів, завжди обмежуйтеся третьою стороною, від якої вони залежать) -TicketDictType=Заявка-Типи -TicketDictCategory=Заявка-Групи -TicketDictSeverity=Ticket - Severities -TicketDictResolution=Ticket - Resolution +TicketDictType=Заявка - Типи +TicketDictCategory=Заявка - Групи +TicketDictSeverity=Заявка - серйозності +TicketDictResolution=Заявка - Резолюція TicketTypeShortCOM=Комерційне питання -TicketTypeShortHELP=Request for functionnal help -TicketTypeShortISSUE=Issue or bug -TicketTypeShortPROBLEM=Problem -TicketTypeShortREQUEST=Change or enhancement request -TicketTypeShortPROJET=Project +TicketTypeShortHELP=Прохання про функціональну допомогу +TicketTypeShortISSUE=Проблема або помилка +TicketTypeShortPROBLEM=Проблема +TicketTypeShortREQUEST=Запит на зміну або покращення +TicketTypeShortPROJET=Проект TicketTypeShortOTHER=Інший -TicketSeverityShortLOW=Low -TicketSeverityShortNORMAL=Normal -TicketSeverityShortHIGH=High -TicketSeverityShortBLOCKING=Critical, Blocking +TicketSeverityShortLOW=Низька +TicketSeverityShortNORMAL=Нормальний +TicketSeverityShortHIGH=Високий +TicketSeverityShortBLOCKING=Критичний, блокуючий TicketCategoryShortOTHER=Інший -ErrorBadEmailAddress=Field '%s' incorrect +ErrorBadEmailAddress=Поле "%s" неправильне MenuTicketMyAssign=Мої заявки MenuTicketMyAssignNonClosed=Мої відкриті заявки MenuListNonClosed=Відкриті заявки -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 +TypeContact_ticket_internal_CONTRIBUTOR=Дописувач +TypeContact_ticket_internal_SUPPORTTEC=Призначений користувач +TypeContact_ticket_external_SUPPORTCLI=Контакти з клієнтами / відстеження інцидентів +TypeContact_ticket_external_CONTRIBUTOR=Зовнішній учасник -OriginEmail=Reporter Email -Notify_TICKET_SENTBYMAIL=Send ticket message by email +OriginEmail=Електронна пошта репортера +Notify_TICKET_SENTBYMAIL=Надішліть повідомлення про квиток електронною поштою # Status Read=Прочитані -Assigned=Assigned -InProgress=In progress -NeedMoreInformation=Waiting for reporter feedback -NeedMoreInformationShort=Waiting for feedback -Answered=Answered -Waiting=Waiting -SolvedClosed=Solved +Assigned=Призначений +InProgress=В процесі +NeedMoreInformation=Чекаємо відгуку журналіста +NeedMoreInformationShort=Чекаємо зворотного зв'язку +Answered=Відповів +Waiting=Очікування +SolvedClosed=Вирішено Deleted=Видалено # Dict 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 +Severity=Тяжкість +TicketGroupIsPublic=Група публічна +TicketGroupIsPublicDesc=Якщо група квитків є загальнодоступною, вона буде видима у формі під час створення квитка з загальнодоступного інтерфейсу # Email templates -MailToSendTicketMessage=To send email from ticket message +MailToSendTicketMessage=Щоб надіслати електронну пошту з квитка # # Admin page # -TicketSetup=Ticket module setup +TicketSetup=Налаштування квиткового модуля TicketSettings=Налаштування TicketSetupPage= -TicketPublicAccess=A public interface requiring no identification is available at the following url +TicketPublicAccess=Загальнодоступний інтерфейс, який не потребує ідентифікації, доступний за наступною URL-адресою TicketSetupDictionaries=Тип заявки, складність та аналітичні коди можна налаштувати із словників -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. +TicketParamModule=Налаштування змінної модуля +TicketParamMail=Налаштування електронної пошти +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=Текстове повідомлення надіслано після створення квитка +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-адресі) +TicketPublicInterfaceTextHomeLabelAdmin=Вітальний текст загальнодоступного інтерфейсу +TicketPublicInterfaceTextHome=Ви можете створити заявку на підтримку або переглянути наявний за його ідентифікатором квиток відстеження. +TicketPublicInterfaceTextHomeHelpAdmin=Визначений тут текст з’явиться на домашній сторінці загальнодоступного інтерфейсу. +TicketPublicInterfaceTopicLabelAdmin=Назва інтерфейсу +TicketPublicInterfaceTopicHelp=Цей текст відображатиметься як назва загальнодоступного інтерфейсу. +TicketPublicInterfaceTextHelpMessageLabelAdmin=Текст довідки до запису повідомлення +TicketPublicInterfaceTextHelpMessageHelpAdmin=Цей текст з’явиться над областю введення повідомлення користувача. +ExtraFieldsTicket=Додаткові атрибути +TicketCkEditorEmailNotActivated=Редактор HTML не активований. Помістіть вміст FCKEDITOR_ENABLE_MAIL на 1, щоб отримати його. +TicketsDisableEmail=Не надсилайте електронні листи для створення квитка або запису повідомлень +TicketsDisableEmailHelp=За замовчуванням електронні листи надсилаються, коли створюються нові квитки або повідомлення. Увімкніть цей параметр, щоб вимкнути *всі* сповіщення електронною поштою +TicketsLogEnableEmail=Увімкнути журнал по електронній пошті +TicketsLogEnableEmailHelp=При кожній зміні **кожному контакту**, пов’язаному з квитком, надсилатиметься електронний лист. +TicketParams=Параметри +TicketsShowModuleLogo=Відобразити логотип модуля в загальнодоступному інтерфейсі +TicketsShowModuleLogoHelp=Увімкніть цю опцію, щоб приховати модуль логотипу на сторінках загальнодоступного інтерфейсу +TicketsShowCompanyLogo=Відображати логотип компанії в загальнодоступному інтерфейсі +TicketsShowCompanyLogoHelp=Увімкніть цю опцію, щоб приховати логотип основної компанії на сторінках загальнодоступного інтерфейсу +TicketsEmailAlsoSendToMainAddress=Також надішліть сповіщення на основну електронну адресу +TicketsEmailAlsoSendToMainAddressHelp=Увімкніть цю опцію, щоб також надіслати електронний лист на адресу, визначену в налаштуваннях «%s» (див. вкладку «%s») +TicketsLimitViewAssignedOnly=Обмежити відображення квитками, призначеними поточному користувачу (не діє для зовнішніх користувачів, завжди обмежується третьою стороною, від якої вони залежать) +TicketsLimitViewAssignedOnlyHelp=Будуть видимі лише квитки, призначені поточному користувачеві. Не стосується користувача з правами керування квитками. +TicketsActivatePublicInterface=Активувати загальнодоступний інтерфейс +TicketsActivatePublicInterfaceHelp=Публічний інтерфейс дозволяє будь-яким відвідувачам створювати квитки. +TicketsAutoAssignTicket=Автоматично призначати користувача, який створив квиток +TicketsAutoAssignTicketHelp=При створенні квитка користувач може бути автоматично призначений до квитка. +TicketNumberingModules=Модуль нумерації квитків +TicketsModelModule=Шаблони документів для квитків +TicketNotifyTiersAtCreation=Повідомте третю сторону про створення +TicketsDisableCustomerEmail=Завжди вимикайте електронні листи, коли квиток створюється з загальнодоступного інтерфейсу +TicketsPublicNotificationNewMessage=Надсилайте електронні листи, коли до квитка буде додано нове повідомлення/коментар +TicketsPublicNotificationNewMessageHelp=Надсилати електронні листи, коли з загальнодоступного інтерфейсу додається нове повідомлення (призначеному користувачеві або електронний лист із сповіщеннями (оновлення) та/або повідомлення електронної пошти до) +TicketPublicNotificationNewMessageDefaultEmail=Сповіщення електронною поштою (оновлення) +TicketPublicNotificationNewMessageDefaultEmailHelp=Надсилайте електронний лист на цю адресу для кожного повідомлення про нове повідомлення, якщо для квитка не призначено користувача або якщо користувач не має жодної відомої електронної пошти. +TicketsAutoReadTicket=Автоматично позначити квиток як прочитаний (при створенні з бек-офісу) +TicketsAutoReadTicketHelp=Автоматично позначати квиток як прочитаний, коли створено з бек-офісу. Коли квиток створюється з загальнодоступного інтерфейсу, квиток залишається зі статусом «Не прочитано». +TicketsDelayBeforeFirstAnswer=Новий квиток має отримати першу відповідь до (години): +TicketsDelayBeforeFirstAnswerHelp=Якщо новий квиток не отримав відповіді після цього періоду часу (у годинах), у списку буде відображено важливе попередження. +TicketsDelayBetweenAnswers=Невирішений квиток не повинен бути неактивним протягом (години): +TicketsDelayBetweenAnswersHelp=Якщо невирішений квиток, який уже отримав відповідь, не мав подальшої взаємодії після цього періоду часу (у годинах), у перегляді списку відобразиться піктограма попередження. +TicketsAutoNotifyClose=Автоматично сповіщати третю сторону про закриття квитка +TicketsAutoNotifyCloseHelp=При закритті квитка вам буде запропоновано надіслати повідомлення одному з контактів третьої сторони. Після масового закриття повідомлення буде надіслано одному контакту третьої сторони, пов’язаної з квитком. +TicketWrongContact=Наданий контакт не є частиною поточних контактів для квитка. Електронна пошта не надіслана. +TicketChooseProductCategory=Категорія продуктів для підтримки квитків +TicketChooseProductCategoryHelp=Виберіть категорію продукту підтримки квитків. Це буде використано для автоматичного зв’язування контракту з квитком. + # # Index & list page # -TicketsIndex=Tickets area +TicketsIndex=Квиткова зона TicketList=Список заявок -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 +TicketAssignedToMeInfos=На цій сторінці відображається список заявок, створений або призначений поточним користувачем +NoTicketsFound=Квиток не знайдено +NoUnreadTicketsFound=Непрочитаний квиток не знайдено +TicketViewAllTickets=Переглянути всі квитки +TicketViewNonClosedOnly=Переглянути лише відкриті квитки +TicketStatByStatus=Квитки за статусом +OrderByDateAsc=Сортувати за зростаючою датою +OrderByDateDesc=Сортувати за датою убування +ShowAsConversation=Показати як список бесід +MessageListViewType=Показати як список таблиці +ConfirmMassTicketClosingSendEmail=Автоматично надсилати електронні листи під час закриття квитків +ConfirmMassTicketClosingSendEmailQuestion=Ви хочете повідомити третіх осіб про закриття цих квитків? # # Ticket card # -Ticket=Ticket -TicketCard=Ticket card -CreateTicket=Create ticket -EditTicket=Edit ticket -TicketsManagement=Tickets Management +Ticket=Квиток +TicketCard=Квиткова картка +CreateTicket=Створити квиток +EditTicket=Редагувати квиток +TicketsManagement=Управління квитками CreatedBy=Створено -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 +NewTicket=Новий квиток +SubjectAnswerToTicket=Відповідь на квиток +TicketTypeRequest=Тип запиту +TicketCategory=Категоризація квитків +SeeTicket=Дивіться квиток +TicketMarkedAsRead=Квиток позначено як прочитаний +TicketReadOn=Читайте далі +TicketCloseOn=Кінцева дата +MarkAsRead=Позначити квиток як прочитаний +TicketHistory=Історія квитків +AssignUser=Призначити користувачеві +TicketAssigned=Квиток призначено TicketChangeType=Змінити тип -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 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. -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 +TicketChangeCategory=Змінити аналітичний код +TicketChangeSeverity=Зміна тяжкості +TicketAddMessage=Додайте повідомлення +AddMessage=Додайте повідомлення +MessageSuccessfullyAdded=Квиток додано +TicketMessageSuccessfullyAdded=Повідомлення успішно додано +TicketMessagesList=Список повідомлень +NoMsgForThisTicket=Немає повідомлення для цього квитка +TicketProperties=Класифікація +LatestNewTickets=Останні %s найновіші квитки (не прочитані) +TicketSeverity=Тяжкість +ShowTicket=Дивіться квиток +RelatedTickets=Пов'язані квитки +TicketAddIntervention=Створіть втручання +CloseTicket=Закрити|Вирішити квиток +AbandonTicket=Відмовитися від квитка +CloseATicket=Закрити|Розгадати квиток +ConfirmCloseAticket=Підтвердьте закриття квитка +ConfirmAbandonTicket=Чи підтверджуєте ви закриття квитка до статусу «Закинутий» +ConfirmDeleteTicket=Будь ласка, підтвердьте видалення квитка +TicketDeletedSuccess=Квиток успішно видалено +TicketMarkedAsClosed=Квиток позначено як закритий +TicketDurationAuto=Розрахована тривалість +TicketDurationAutoInfos=Тривалість розраховується автоматично на основі втручання +TicketUpdated=Квиток оновлено +SendMessageByEmail=Надіслати повідомлення електронною поштою +TicketNewMessage=Нове повідомлення +ErrorMailRecipientIsEmptyForSendTicketMessage=Одержувач порожній. Немає надсилання електронної пошти +TicketGoIntoContactTab=Будь ласка, перейдіть на вкладку «Контакти», щоб вибрати їх +TicketMessageMailIntro=Вступ +TicketMessageMailIntroHelp=Цей текст додається лише на початку листа і не буде збережено. +TicketMessageMailIntroLabelAdmin=Вступний текст до всіх відповідей на заявки +TicketMessageMailIntroText=Привіт,
    Нова відповідь була додана до заявки, на яку ви підписалися. Ось повідомлення:
    +TicketMessageMailIntroHelpAdmin=Цей текст буде вставлено перед відповіддю під час відповіді на заявку від Dolibarr +TicketMessageMailSignature=Підпис +TicketMessageMailSignatureHelp=Цей текст додається лише в кінці листа і не буде збережено. +TicketMessageMailSignatureText=Повідомлення надіслав %s через Dolibarr +TicketMessageMailSignatureLabelAdmin=Підпис електронного листа з відповіддю +TicketMessageMailSignatureHelpAdmin=Цей текст буде вставлено після повідомлення-відповіді. +TicketMessageHelp=Тільки цей текст буде збережено в списку повідомлень на картці квитка. +TicketMessageSubstitutionReplacedByGenericValues=Змінні підстановки замінюються загальними значеннями. +TimeElapsedSince=З того часу минув час +TicketTimeToRead=Минув час до прочитання +TicketTimeElapsedBeforeSince=Час, що минув до / після +TicketContacts=Контактний квиток +TicketDocumentsLinked=Документи, пов’язані з квитком +ConfirmReOpenTicket=Підтвердити повторно відкрити цей квиток? +TicketMessageMailIntroAutoNewPublicMessage=На квитку було розміщено нове повідомлення з темою %s: +TicketAssignedToYou=Квиток призначено +TicketAssignedEmailBody=Вам призначено квиток #%s від %s +MarkMessageAsPrivate=Позначити повідомлення як приватне +TicketMessagePrivateHelp=Це повідомлення не відображатиметься зовнішнім користувачам +TicketEmailOriginIssuer=Емітент при відправленні квитків +InitialMessage=Початкове повідомлення +LinkToAContract=Посилання на договір +TicketPleaseSelectAContract=Виберіть договір +UnableToCreateInterIfNoSocid=Не можна створити втручання, якщо третя сторона не визначена +TicketMailExchanges=Поштовий обмін +TicketInitialMessageModified=Початкове повідомлення змінено +TicketMessageSuccesfullyUpdated=Повідомлення успішно оновлено +TicketChangeStatus=Змінити статус +TicketConfirmChangeStatus=Підтвердьте зміну статусу: %s ? +TicketLogStatusChanged=Статус змінено: %s на %s +TicketNotNotifyTiersAtCreate=Не повідомляти компанію при створенні +NotifyThirdpartyOnTicketClosing=Контакти для сповіщення під час закриття квитка +TicketNotifyAllTiersAtClose=Усі пов’язані контакти +TicketNotNotifyTiersAtClose=Немає пов’язаного контакту Unread=Непрочитані -TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. -ErrorTicketRefRequired=Ticket reference name is required +TicketNotCreatedFromPublicInterface=Недоступний. Квиток не створено з загальнодоступного інтерфейсу. +ErrorTicketRefRequired=Укажіть назву квитка +TicketsDelayForFirstResponseTooLong=Забагато часу минуло з моменту відкриття квитка без відповіді. +TicketsDelayFromLastResponseTooLong=Забагато часу минуло з моменту останньої відповіді на цей квиток. +TicketNoContractFoundToLink=Не знайдено жодного контракту, який би автоматично пов’язано з цим квитком. Будь ласка, зв’яжіть договір вручну. +TicketManyContractsLinked=Багато контрактів були автоматично пов’язані з цим квитком. Обов’язково перевірте, що слід вибрати. # # 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=Квиток %s читає %s +NoLogForThisTicket=Ще немає журналу для цього квитка +TicketLogAssignedTo=Квиток %s призначено для %s +TicketLogPropertyChanged=Квиток %s змінено: класифікація з %s до %s +TicketLogClosedBy=Квиток %s закрито %s +TicketLogReopen=Квиток %s знову відкрити # # 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! -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 +TicketSystem=Квиткова система +ShowListTicketWithTrackId=Відображення списку квитків із ідентифікатора треку +ShowTicketWithTrackId=Показати квиток з ідентифікатора треку +TicketPublicDesc=Ви можете створити заявку на підтримку або перевірити за наявним ідентифікатором. +YourTicketSuccessfullySaved=Квиток успішно збережено! +MesgInfosPublicTicketCreatedWithTrackId=Створено новий квиток з ідентифікатором %s та Ref %s. +PleaseRememberThisId=Будь ласка, збережіть номер відстеження, який ми можемо запитати у вас пізніше. +TicketNewEmailSubject=Підтвердження створення квитка - Ref %s (загальнодоступний ідентифікатор квитка %s) +TicketNewEmailSubjectCustomer=Новий квиток у службу підтримки +TicketNewEmailBody=Це автоматичний електронний лист, щоб підтвердити, що ви зареєстрували новий квиток. +TicketNewEmailBodyCustomer=Це автоматичний електронний лист, щоб підтвердити, що новий квиток щойно створено у вашому обліковому записі. +TicketNewEmailBodyInfosTicket=Інформація для моніторингу квитка +TicketNewEmailBodyInfosTrackId=Номер відстеження квитка: %s +TicketNewEmailBodyInfosTrackUrl=Ви можете переглянути хід оформлення заявки, натиснувши наступне посилання +TicketNewEmailBodyInfosTrackUrlCustomer=Ви можете переглянути хід оформлення квитка в спеціальному інтерфейсі, натиснувши наступне посилання +TicketCloseEmailBodyInfosTrackUrlCustomer=Ви можете ознайомитися з історією цього квитка, натиснувши наступне посилання +TicketEmailPleaseDoNotReplyToThisEmail=Будь ласка, не відповідайте безпосередньо на цей електронний лист! Використовуйте посилання, щоб відповісти в інтерфейсі. +TicketPublicInfoCreateTicket=Ця форма дозволяє записати заявку на підтримку в нашій системі управління. +TicketPublicPleaseBeAccuratelyDescribe=Будь ласка, точно опишіть проблему. Надайте якомога більше інформації, щоб ми могли правильно ідентифікувати ваш запит. +TicketPublicMsgViewLogIn=Будь ласка, введіть ідентифікатор відстеження квитка +TicketTrackId=Загальнодоступний ідентифікатор відстеження +OneOfTicketTrackId=Один із ваших ідентифікаторів відстеження +ErrorTicketNotFound=Квиток з ідентифікатором відстеження %s не знайдено! +Subject=Тема +ViewTicket=Переглянути квиток +ViewMyTicketList=Переглянути мій список квитків +ErrorEmailMustExistToCreateTicket=Помилка: адресу електронної пошти не знайдено в нашій базі даних +TicketNewEmailSubjectAdmin=Створено новий квиток – Ref %s (загальнодоступний ідентифікатор квитка %s) +TicketNewEmailBodyAdmin=

    Квиток щойно створено з ідентифікатором #%s, дивіться інформацію:

    +SeeThisTicketIntomanagementInterface=Дивіться квиток в інтерфейсі керування +TicketPublicInterfaceForbidden=Загальнодоступний інтерфейс для квитків не ввімкнено +ErrorEmailOrTrackingInvalid=Погане значення для ідентифікатора відстеження або електронної пошти +OldUser=Старий користувач +NewUser=Новий користувач NumberOfTicketsByMonth=Кількість заявок за місяць NbOfTickets=Кількість заявок # 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=Квиток закритий +TicketCloseEmailBodyCustomer=Це автоматичне повідомлення про те, що квиток %s щойно закрито. +TicketCloseEmailSubjectAdmin=Квиток закрито - Réf %s (загальнодоступний ідентифікатор квитка %s) +TicketCloseEmailBodyAdmin=Квиток з ідентифікатором #%s щойно закрито, дивіться інформацію: +TicketNotificationEmailSubject=Квиток %s оновлено +TicketNotificationEmailBody=Це автоматичне повідомлення для сповіщення про те, що квиток %s щойно оновлено +TicketNotificationRecipient=Одержувач сповіщення +TicketNotificationLogMessage=Повідомлення журналу +TicketNotificationEmailBodyInfosTrackUrlinternal=Перегляд квитка в інтерфейсі +TicketNotificationNumberEmailSent=Надіслано сповіщення електронною поштою: %s -ActionsOnTicket=Events on ticket +ActionsOnTicket=Події за квитком # # Boxes # -BoxLastTicket=Latest created tickets -BoxLastTicketDescription=Latest %s created tickets +BoxLastTicket=Останні створені квитки +BoxLastTicketDescription=Останні створені квитки %s BoxLastTicketContent= -BoxLastTicketNoRecordedTickets=No recent unread tickets -BoxLastModifiedTicket=Latest modified tickets -BoxLastModifiedTicketDescription=Latest %s modified tickets +BoxLastTicketNoRecordedTickets=Немає останніх непрочитаних квитків +BoxLastModifiedTicket=Останні модифіковані квитки +BoxLastModifiedTicketDescription=Останні модифіковані квитки %s 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=Немає останніх змінених квитків +BoxTicketType=Розподіл відкритих квитків за видами +BoxTicketSeverity=Кількість відкритих квитків за тяжкістю +BoxNoTicketSeverity=Квитків не відкривали +BoxTicketLastXDays=Кількість нових квитків за днями за останні %s днів +BoxTicketLastXDayswidget = Кількість нових квитків за днями за останні X днів +BoxNoTicketLastXDays=Немає нових квитків за останні %s днів +BoxNumberOfTicketByDay=Кількість нових квитків по днях +BoxNewTicketVSClose=Кількість квитків порівняно з закритими квитками (сьогодні) +TicketCreatedToday=Квиток створено сьогодні +TicketClosedToday=Квиток сьогодні закритий +KMFoundForTicketGroup=Ми знайшли теми та поширені запитання, які можуть дати відповідь на ваше запитання, завдяки перевірці їх перед подачею квитка diff --git a/htdocs/langs/uk_UA/trips.lang b/htdocs/langs/uk_UA/trips.lang index 116222fd0a4..1c04609e72d 100644 --- a/htdocs/langs/uk_UA/trips.lang +++ b/htdocs/langs/uk_UA/trips.lang @@ -1,150 +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 +ShowExpenseReport=Показати звіт про витрати +Trips=Звіти про витрати +TripsAndExpenses=Звіти про витрати +TripsAndExpensesStatistics=Статистика витрат +TripCard=Табель витрат +AddTrip=Створити звіт про витрати +ListOfTrips=Перелік звітів про витрати +ListOfFees=Перелік зборів +TypeFees=Види зборів +ShowTrip=Показати звіт про витрати +NewTrip=Новий звіт про витрати +LastExpenseReports=Останні звіти про витрати %s +AllExpenseReports=Усі звіти про витрати +CompanyVisited=Компанію/організацію відвідали +FeesKilometersOrAmout=Кількість або кілометри +DeleteTrip=Видалити звіт про витрати +ConfirmDeleteTrip=Ви впевнені, що хочете видалити цей звіт про витрати? +ListTripsAndExpenses=Перелік звітів про витрати +ListToApprove=В очікуванні схвалення +ExpensesArea=Область звітів про витрати +ClassifyRefunded=Класифікувати "Відшкодовано" +ExpenseReportWaitingForApproval=Новий звіт про витрати подано на затвердження +ExpenseReportWaitingForApprovalMessage=Новий звіт про витрати було подано і очікує на затвердження.
    - Користувач: %s
    - Період: %s
    Натисніть тут, щоб перевірити: a0ecb2ec87f49fz +ExpenseReportWaitingForReApproval=Звіт про витрати подано на повторне затвердження +ExpenseReportWaitingForReApprovalMessage=Звіт про витрати подано та очікує на повторне затвердження.
    %s, ви відмовилися затвердити звіт про витрати з цієї причини: %s.
    Запропоновано нову версію, яка чекає вашого схвалення.
    - Користувач: %s
    - Період: %s
    Натисніть тут, щоб перевірити: a0ecb2ec87f49fz +ExpenseReportApproved=Затверджено звіт про витрати +ExpenseReportApprovedMessage=Звіт про витрати %s затверджено.
    - Користувач: %s
    - Затверджено: %s
    Натисніть тут, щоб показати звіт про витрати: a0ecbf2ecz87f +ExpenseReportRefused=У звіті про витрати було відмовлено +ExpenseReportRefusedMessage=У звіті про витрати %s було відмовлено.
    - User: %s
    - Refused by: %s
    - Motive for refusal: %s
    Click here to show the expense report: %s +ExpenseReportCanceled=Звіт про витрати було скасовано +ExpenseReportCanceledMessage=Звіт про витрати %s скасовано.
    - User: %s
    - Canceled by: %s
    - Motive for cancellation: %s
    Click here to show the expense report: %s +ExpenseReportPaid=Було оплачено звіт про витрати +ExpenseReportPaidMessage=Звіт про витрати %s був оплачений.
    - Користувач: %s
    - Оплачено: %s
    Натисніть тут, щоб показати звіт про витрати: a0ecb2ec87f49 +TripId=Ідентифікаційний звіт про витрати +AnyOtherInThisListCanValidate=Особа, яку потрібно повідомити для підтвердження запиту. +TripSociete=Інформаційна компанія +TripNDF=Інформаційний звіт про витрати +PDFStandardExpenseReports=Стандартний шаблон для створення PDF-документа для звіту про витрати +ExpenseReportLine=Рядок звіту про витрати TF_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 +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=Платне резюме +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=Паркування ПВ +EX_CAM_VP=Технічне обслуговування та ремонт PV +DefaultCategoryCar=Режим транспортування за замовчуванням +DefaultRangeNumber=Номер діапазону за замовчуванням +UploadANewFileNow=Завантажте новий документ зараз +Error_EXPENSEREPORT_ADDON_NotDefined=Помилка, правило для нумерації звіту про витрати не було визначено в налаштуваннях модуля «Звіт про витрати» +ErrorDoubleDeclaration=Ви задекларували інший звіт про витрати в аналогічний діапазон дат. +AucuneLigne=Звіту про витрати ще немає +ModePaiement=Режим оплати +VALIDATOR=Користувач, відповідальний за схвалення +VALIDOR=Затверджено +AUTHOR=Записав +AUTHORPAIEMENT=Оплачено +REFUSEUR=Відмовлено +CANCEL_USER=Видалено MOTIF_REFUS=Підстава MOTIF_CANCEL=Підстава -DATE_REFUS=Deny date -DATE_SAVE=Validation date -DATE_CANCEL=Cancelation date +DATE_REFUS=Відмовити дату +DATE_SAVE=Дата підтвердження +DATE_CANCEL=Дата скасування DATE_PAIEMENT=Дата платежу -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 +ExpenseReportRef=Пос. звіт про витрати +ValidateAndSubmit=Підтвердити та подати на затвердження +ValidatedWaitingApproval=Перевірено (очікується схвалення) +NOT_AUTHOR=Ви не є автором цього звіту про витрати. Операцію скасовано. +ConfirmRefuseTrip=Ви впевнені, що хочете відхилити цей звіт про витрати? +ValideTrip=Затвердити звіт про витрати +ConfirmValideTrip=Ви впевнені, що хочете затвердити цей звіт про витрати? +PaidTrip=Оплатіть звіт про витрати +ConfirmPaidTrip=Ви впевнені, що хочете змінити статус цього звіту про витрати на "Оплачено"? +ConfirmCancelTrip=Ви впевнені, що хочете скасувати цей звіт про витрати? +BrouillonnerTrip=Повернути звіт про витрати до статусу "Чернетка" +ConfirmBrouillonnerTrip=Ви впевнені, що хочете перемістити цей звіт про витрати до статусу "Чернетка"? +SaveTrip=Підтвердити звіт про витрати +ConfirmSaveTrip=Ви впевнені, що хочете перевірити цей звіт про витрати? +NoTripsToExportCSV=Немає звіту про витрати для експорту за цей період. +ExpenseReportPayment=Оплата звіту про витрати +ExpenseReportsToApprove=Затвердити звіти про витрати +ExpenseReportsToPay=Звіти про витрати до оплати +ConfirmCloneExpenseReport=Ви впевнені, що хочете клонувати цей звіт про витрати? +ExpenseReportsIk=Конфігурація тарифів на пробіг +ExpenseReportsRules=Правила звіту про витрати +ExpenseReportIkDesc=Ви можете змінити розрахунок витрати кілометрів за категоріями та діапазоном, які вони раніше визначені. d - це відстань в кілометрах +ExpenseReportRulesDesc=Ви можете визначити правила максимальної суми для звітів про витрати. Ці правила застосовуватимуться, коли до звіту про витрати буде додано нову витрату +expenseReportOffset=Зміщення +expenseReportCoef=Коефіцієнт +expenseReportTotalForFive=Приклад з d = 5 +expenseReportRangeFromTo=від %d до %d +expenseReportRangeMoreThan=більше, ніж %d +expenseReportCoefUndefined=(значення не визначено) +expenseReportCatDisabled=Категорія вимкнена - дивіться словник c_exp_tax_cat +expenseReportRangeDisabled=Діапазон вимкнено - дивіться словник c_exp_tax_range +expenseReportPrintExample=зміщення + (d x коеф) = %s +ExpenseReportApplyTo=Застосувати до +ExpenseReportDomain=Домен для подання заявки +ExpenseReportLimitOn=Обмеження на +ExpenseReportDateStart=Дата початку +ExpenseReportDateEnd=Дата закінчення +ExpenseReportLimitAmount=Максимальна сума +ExpenseReportRestrictive=Перевищення заборонено +AllExpenseReport=Усі види звіту про витрати +OnExpense=Лінія витрат +ExpenseReportRuleSave=Правило звіту про витрати збережено +ExpenseReportRuleErrorOnSave=Помилка: %s +RangeNum=Діапазон %d +ExpenseReportConstraintViolationError=Перевищено максимальну суму (правило %s): %s вище, ніж %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 +RangeIk=Діапазон пробігу +AttachTheNewLineToTheDocument=Приєднайте рядок до завантаженого документа diff --git a/htdocs/langs/uk_UA/users.lang b/htdocs/langs/uk_UA/users.lang index 4fec80e0d19..1557098d9fa 100644 --- a/htdocs/langs/uk_UA/users.lang +++ b/htdocs/langs/uk_UA/users.lang @@ -1,126 +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 +HRMArea=Зона управління персоналом +UserCard=Картка користувача +GroupCard=Групова картка +Permission=Дозвіл +Permissions=Дозволи +EditPassword=Редагувати пароль +SendNewPassword=Відновіть і відправте пароль +SendNewPasswordLink=Надіслати посилання скидання пароля +ReinitPassword=Відновіть пароль +PasswordChangedTo=Пароль змінено на: %s +SubjectNewPassword=Ваш новий пароль для %s +GroupRights=Дозволи групи +UserRights=Дозволи користувача +Credentials=Посвідчення +UserGUISetup=Налаштування дисплея користувача +DisableUser=Вимкнути +DisableAUser=Вимкнути користувача +DeleteUser=Видалити +DeleteAUser=Видалити користувача +EnableAUser=Увімкнути користувача +DeleteGroup=Видалити +DeleteAGroup=Видалити групу +ConfirmDisableUser=Ви впевнені, що хочете вимкнути користувача %s ? +ConfirmDeleteUser=Ви впевнені, що хочете видалити користувача %s ? +ConfirmDeleteGroup=Ви впевнені, що хочете видалити групу %s ? +ConfirmEnableUser=Ви впевнені, що хочете ввімкнути користувача %s ? +ConfirmReinitPassword=Ви впевнені, що хочете створити новий пароль для користувача %s ? +ConfirmSendNewPassword=Ви впевнені, що хочете згенерувати та надіслати новий пароль для користувача %s ? +NewUser=Новий користувач +CreateUser=Створити користувача +LoginNotDefined=Вхід не визначений. +NameNotDefined=Назва не визначена. +ListOfUsers=Список користувачів +SuperAdministrator=Супер адміністратор +SuperAdministratorDesc=Глобальний адміністратор +AdministratorDesc=Адміністратор +DefaultRights=Дозволи за замовчуванням +DefaultRightsDesc=Визначте тут дозволи за замовчуванням , які автоматично надаються новому користувачеві (щоб змінити дозволи для наявних користувачів, перейдіть на картку користувача). +DolibarrUsers=Користувачі Dolibarr LastName=Прізвище FirstName=Ім'я -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 +ListOfGroups=Список груп +NewGroup=Нова група +CreateGroup=Створити групу +RemoveFromGroup=Видалити з групи +PasswordChangedAndSentTo=Пароль змінено та надіслано на адресу %s . +PasswordChangeRequest=Запит на зміну пароля для %s +PasswordChangeRequestSent=Запит на зміну пароля для %s надіслано на адресу %s a09a4b739f17f17. +IfLoginExistPasswordRequestSent=Якщо цей логін є дійсним обліковим записом, було надіслано електронний лист для відновлення пароля. +IfEmailExistPasswordRequestSent=Якщо цей електронний лист є дійсним обліковим записом, було надіслано лист для відновлення пароля. +ConfirmPasswordReset=Підтвердьте скидання пароля +MenuUsersAndGroups=Користувачі та групи +LastGroupsCreated=Створено останні групи %s +LastUsersCreated=Останні створені користувачі %s +ShowGroup=Показати групу +ShowUser=Показати користувача +NonAffectedUsers=Не призначені користувачі +UserModified=Користувача успішно змінено +PhotoFile=Фотофайл +ListOfUsersInGroup=Список користувачів цієї групи +ListOfGroupsForUser=Список груп для цього користувача +LinkToCompanyContact=Посилання на третю сторону/контакт +LinkedToDolibarrMember=Посилання на учасника +LinkedToDolibarrUser=Посилання на користувача +LinkedToDolibarrThirdParty=Посилання на третю сторону +CreateDolibarrLogin=Створити користувача +CreateDolibarrThirdParty=Створіть третю сторону +LoginAccountDisableInDolibarr=Обліковий запис вимкнено в Dolibarr. +UsePersonalValue=Використовуйте особисту цінність InternalUser=Внутрішній користувач -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 +ExportDataset_user_1=Користувачі та їх властивості +DomainUser=Користувач домену %s +Reactivate=Повторно активувати +CreateInternalUserDesc=Ця форма дозволяє створити внутрішнього користувача у вашій компанії/організації. Щоб створити зовнішнього користувача (замовника, постачальника тощо), скористайтеся кнопкою «Створити користувача Dolibarr» із контактної картки цієї сторонньої сторони. +InternalExternalDesc=Внутрішній користувач – це користувач, який є частиною вашої компанії/організації або є користувачем-партнером за межами вашої організації, якому може знадобитися переглядати більше даних, ніж даних, пов’язаних з його компанією (система дозволів визначить, що він може або може не бачу і не роблю).
    Зовнішній користувач є клієнтом, постачальником або іншим, який повинен переглядати ТІЛЬКИ дані, пов’язані з ним (Створення зовнішнього користувача для третьої сторони можна зробити з контактного запису третьої сторони).

    В обох випадках ви повинні надати дозволи на функції, які потрібні користувачеві. +PermissionInheritedFromAGroup=Дозвіл надано, оскільки успадковано від однієї з груп користувачів. +Inherited=У спадок +UserWillBe=Створений користувач буде +UserWillBeInternalUser=Створений користувач буде внутрішнім користувачем (оскільки він не пов’язаний з певною третьою стороною) +UserWillBeExternalUser=Створений користувач буде зовнішнім користувачем (оскільки він пов’язаний з певною третьою стороною) +IdPhoneCaller=Ідентифікатор абонента +NewUserCreated=Створено користувача %s +NewUserPassword=Зміна пароля для %s +NewPasswordValidated=Ваш новий пароль перевірено, і тепер його потрібно використовувати для входу. +EventUserModified=Користувач %s змінений +UserDisabled=Користувач %s вимкнено +UserEnabled=Користувач %s активований +UserDeleted=Користувача %s видалено +NewGroupCreated=Створено групу %s +GroupModified=Група %s змінена +GroupDeleted=Групу %s видалено +ConfirmCreateContact=Ви впевнені, що хочете створити обліковий запис Dolibarr для цього контакту? +ConfirmCreateLogin=Ви впевнені, що хочете створити обліковий запис Dolibarr для цього учасника? +ConfirmCreateThirdParty=Ви впевнені, що хочете створити третю сторону для цього учасника? +LoginToCreate=Увійдіть, щоб створити +NameToCreate=Ім’я третьої сторони для створення +YourRole=Ваші ролі +YourQuotaOfUsersIsReached=Ваша квота активних користувачів досягнута! +NbOfUsers=Кількість користувачів +NbOfPermissions=Кількість дозволів +DontDowngradeSuperAdmin=Тільки суперадміністратор може понизити статус суперадміністратора +HierarchicalResponsible=Наглядач +HierarchicView=Ієрархічний погляд +UseTypeFieldToChange=Використовуйте поле Тип, щоб змінити +OpenIDURL=URL-адреса OpenID +LoginUsingOpenID=Використовуйте OpenID для входу +WeeklyHours=Відпрацьовані години (за тиждень) +ExpectedWorkedHours=Очікувані відпрацьовані години на тиждень +ColorUser=Колір користувача +DisabledInMonoUserMode=Вимкнено в режимі обслуговування +UserAccountancyCode=Код обліку користувача +UserLogoff=Вихід користувача +UserLogged=Користувач увійшов +DateOfEmployment=Дата прийняття на роботу +DateEmployment=Працевлаштування +DateEmploymentStart=Employment Start Date +DateEmploymentEnd=Дата закінчення роботи +RangeOfLoginValidity=Діапазон дат дії доступу +CantDisableYourself=Ви не можете відключити свій власний запис користувача +ForceUserExpenseValidator=Примусове перевірка звітів про витрати +ForceUserHolidayValidator=Перевірка запиту на примусову відпустку +ValidatorIsSupervisorByDefault=За замовчуванням валідатор є наглядачем користувача. Залиште порожнім, щоб зберегти таку поведінку. +UserPersonalEmail=Особиста електронна пошта +UserPersonalMobile=Персональний мобільний телефон +WarningNotLangOfInterface=Увага, це основна мова, якою розмовляє користувач, а не мова інтерфейсу, який він вибрав для перегляду. Щоб змінити мову інтерфейсу, яку бачить цей користувач, перейдіть на вкладку %s +DateLastLogin=Дата останнього входу +DatePreviousLogin=Дата попереднього входу +IPLastLogin=IP останній вхід +IPPreviousLogin=IP попередній вхід diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang index e4240d8f2ff..a09e3a09cc0 100644 --- a/htdocs/langs/uk_UA/website.lang +++ b/htdocs/langs/uk_UA/website.lang @@ -1,147 +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 +Shortname=код +WebsiteSetupDesc=Створіть тут веб-сайти, які ви хочете використовувати. Потім перейдіть до меню Веб-сайти, щоб відредагувати їх. +DeleteWebsite=Видалити веб-сайт +ConfirmDeleteWebsite=Ви впевнені, що хочете видалити цей веб-сайт? Усі його сторінки та вміст також буде видалено. Завантажені файли (наприклад, у каталог медіа, модуль ECM, ...) залишаться. +WEBSITE_TYPE_CONTAINER=Тип сторінки/контейнера +WEBSITE_PAGE_EXAMPLE=Веб-сторінка для прикладу +WEBSITE_PAGENAME=Ім'я/псевдонім сторінки +WEBSITE_ALIASALT=Альтернативні назви/псевдоніми сторінок +WEBSITE_ALIASALTDesc=Використовуйте тут список інших імен/псевдонімів, щоб отримати доступ до сторінки за допомогою інших імен/псевдонімів (наприклад, старе ім’я після перейменування псевдоніма, щоб зворотне посилання на старе посилання/ім’я працювало). Синтаксис:
    альтернативне ім'я1, альтернативне ім'я2, ... +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_MANIFEST_JSON=Файл manifest.json веб-сайту +WEBSITE_README=Файл README.md +WEBSITE_KEYWORDSDesc=Використовуйте кому для розділення значень +EnterHereLicenseInformation=Введіть тут метадані або інформацію про ліцензію, щоб заповнити файл README.md. якщо ви розповсюджуєте свій веб-сайт як шаблон, файл буде включено до пакета Temptate. +HtmlHeaderPage=HTML-заголовок (лише для цієї сторінки) +PageNameAliasHelp=Ім'я або псевдонім сторінки.
    Цей псевдонім також використовується для підробки URL-адреси SEO, коли веб-сайт запускається з віртуального хоста веб-сервера (наприклад, Apacke, Nginx, ...). Скористайтеся кнопкою « %s », щоб відредагувати цей псевдонім. +EditTheWebSiteForACommonHeader=Примітка. Якщо ви хочете визначити персоналізований заголовок для всіх сторінок, відредагуйте заголовок на рівні сайту, а не на сторінці/контейнері. +MediaFiles=Медіатека +EditCss=Редагувати властивості веб-сайту +EditMenu=Редагувати меню +EditMedias=Редагувати медіа +EditPageMeta=Редагувати властивості сторінки/контейнера +EditInLine=Редагувати вбудовані +AddWebsite=Додати веб-сайт +Webpage=Веб-сторінка/контейнер +AddPage=Додати сторінку/контейнер +PageContainer=Сторінка +PreviewOfSiteNotYetAvailable=Попередній перегляд вашого веб-сайту %s ще недоступний. Спочатку потрібно « Імпортувати повний шаблон веб-сайту » або просто « Додати сторінку/контейнер ». +RequestedPageHasNoContentYet=Запитувана сторінка з ідентифікатором %s ще не має вмісту, або файл кешу .tpl.php видалено. Щоб вирішити цю проблему, відредагуйте вміст сторінки. +SiteDeleted=Веб-сайт "%s" видалено +PageContent=Сторінка/Contenair +PageDeleted=Сторінку/Contenair '%s' веб-сайту %s видалено +PageAdded=Додано сторінку/Contenair "%s". +ViewSiteInNewTab=Переглянути сайт у новій вкладці +ViewPageInNewTab=Переглянути сторінку в новій вкладці +SetAsHomePage=Встановити як домашню сторінку +RealURL=Справжня URL-адреса +ViewWebsiteInProduction=Перегляд веб-сайту за допомогою домашньої URL-адреси +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 +YouCanAlsoDeployToAnotherWHP= Запустіть свій веб-сайт за допомогою іншого постачальника хостингу Dolibarr
    Якщо у вас немає веб-сервера, такого як Apache або NGinx, доступного в Інтернеті, ви можете експортувати та імпортувати свій веб-сайт на інший хостинг Dolibarr, який надає повний постачальник Dolibarr, який надає в Інтернеті інтеграція з модулем веб-сайту. Ви можете знайти список деяких постачальників хостингу Dolibarr на https://saas.dolibarr.org +CheckVirtualHostPerms=Перевірте також, що користувач віртуального хосту (наприклад, www-data) має %s дозволи на файли в
    a0e7843947c06bz607c06b2f07f06b2f07f06b2f07f06b2f66f6f06cf06b2f8 ReadPerm=Читати -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=Пишіть +TestDeployOnWeb=Тестування/розгортання в Інтернеті +PreviewSiteServedByWebServer= Попередній перегляд %s у новій вкладці.

    %s буде обслуговуватися зовнішнім веб-сервером (наприклад, Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s +PreviewSiteServedByDolibarr= Попередній перегляд %s у новій вкладці.

    %s буде обслуговуватися сервером Dolibarr, тому йому не потрібен додатковий веб-сервер (наприклад, Apache, Nginx, IIS).
    Незручним є те, що URL-адреси сторінок не є зручними для користувачів і починаються зі шляху вашого 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 у властивостях цього веб-сайту та натисніть посилання «Тестувати/розгорнути в Інтернеті». +VirtualHostUrlNotDefined=URL-адреса віртуального хосту, що обслуговується зовнішнім веб-сервером, не визначена +NoPageYet=Ще немає сторінок +YouCanCreatePageOrImportTemplate=Ви можете створити нову сторінку або імпортувати повний шаблон веб-сайту +SyntaxHelp=Довідка щодо конкретних порад щодо синтаксису +YouCanEditHtmlSourceckeditor=Ви можете редагувати вихідний код HTML за допомогою кнопки «Джерело» в редакторі. +YouCanEditHtmlSource=
    Ви можете включити PHP-код до цього джерела за допомогою тегів <?php ?a0012c08z65d0c0b08z6d7d750c0b08z6d75 Доступні такі глобальні змінні: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs.

    Ви також можете включити вміст іншої сторінки/контейнера з таким синтаксисом:
    a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0 a0e7cfda19bz0
    ?>

    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">
    Синтаксис файлу в документах/засобах масової інформації (відкритий каталог для загального доступу):
    a0e784070784070707070707070707070707070707070073d06b07dc07db04dcdcbdcbe087z0 "/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) +YouCanEditHtmlSource2=Синтаксис зображення, надано за допомогою посилання для спільного доступу (відкритий доступ, використовуючи хеш-ключ спільного доступу до файлу), такий:
    <img src="/viewimage.php?hashp=123425cf0707cf07c07c07c070fc077cd07cf077c07cd07cf07cb07cb07c07cb07cdcb07cb07cb07cb07cb07cb07cb07cdc07cbc +YouCanEditHtmlSourceMore=
    Більше прикладів HTML або динамічного коду доступно на у вікі-документації
    . +ClonePage=Клонувати сторінку/контейнер +CloneSite=Клонувати сайт +SiteAdded=Веб-сайт додано +ConfirmClonePage=Будь ласка, введіть код/псевдонім нової сторінки та якщо це переклад клонованої сторінки. +PageIsANewTranslation=Нова сторінка є перекладом поточної сторінки? +LanguageMustNotBeSameThanClonedPage=Ви клонуєте сторінку як переклад. Мова нової сторінки має відрізнятися від мови вихідної сторінки. +ParentPageId=Ідентифікатор батьківської сторінки +WebsiteId=Ідентифікатор веб-сайту +CreateByFetchingExternalPage=Створіть сторінку/контейнер шляхом отримання сторінки із зовнішньої URL-адреси... +OrEnterPageInfoManually=Або створіть сторінку з нуля або за шаблоном сторінки... +FetchAndCreate=Отримати та створити +ExportSite=Експортний сайт +ImportSite=Імпортувати шаблон веб-сайту +IDOfPage=Ідентифікатор сторінки +Banner=банер +BlogPost=Повідомлення в блозі +WebsiteAccount=Обліковий запис веб-сайту +WebsiteAccounts=Облікові записи веб-сайтів +AddWebsiteAccount=Створити обліковий запис веб-сайту +BackToListForThirdParty=Повернутися до списку для третьої сторони +DisableSiteFirst=Спочатку вимкніть веб-сайт +MyContainerTitle=Назва мого сайту +AnotherContainer=Ось як включити вміст іншої сторінки/контейнера (тут може виникнути помилка, якщо ви ввімкнете динамічний код, оскільки вбудований підконтейнер може не існувати) +SorryWebsiteIsCurrentlyOffLine=На жаль, цей веб-сайт наразі не працює. Будь ласка, поверніться пізніше... +WEBSITE_USE_WEBSITE_ACCOUNTS=Увімкнути таблицю облікових записів веб-сайту +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Увімкніть таблицю для зберігання облікових записів веб-сайтів (логін/пропуск) для кожного веб-сайту / третьої сторони +YouMustDefineTheHomePage=Спочатку потрібно визначити домашню сторінку за замовчуванням +OnlyEditionOfSourceForGrabbedContentFuture=Попередження: створення веб-сторінки шляхом імпорту зовнішньої веб-сторінки зарезервовано для досвідчених користувачів. Залежно від складності вихідної сторінки результат імпортування може відрізнятися від оригіналу. Крім того, якщо вихідна сторінка використовує звичайні стилі CSS або конфліктуючий JavaScript, це може порушити зовнішній вигляд або функції редактора веб-сайту під час роботи на цій сторінці. Цей метод є швидшим способом створення сторінки, але рекомендується створити нову сторінку з нуля або із запропонованого шаблону сторінки.
    Також зауважте, що вбудований редактор може працювати некоректно, якщо використовується на захопленій зовнішній сторінці. +OnlyEditionOfSourceForGrabbedContent=Лише видання джерела HTML можливе, якщо вміст було захоплено із зовнішнього сайту +GrabImagesInto=Візьміть також зображення, знайдені в css та на сторінці. +ImagesShouldBeSavedInto=Зображення слід зберегти в каталозі +WebsiteRootOfImages=Кореневий каталог для зображень веб-сайту +SubdirOfPage=Підкаталог, присвячений сторінці +AliasPageAlreadyExists=Сторінка псевдоніма %s вже існує +CorporateHomePage=Корпоративна домашня сторінка +EmptyPage=Порожня сторінка +ExternalURLMustStartWithHttp=Зовнішня URL-адреса має починатися з http:// або https:// +ZipOfWebsitePackageToImport=Завантажте Zip-файл пакету шаблонів веб-сайту +ZipOfWebsitePackageToLoad=або Виберіть доступний пакет вбудованих шаблонів веб-сайту +ShowSubcontainers=Показувати динамічний вміст +InternalURLOfPage=Внутрішня URL-адреса сторінки +ThisPageIsTranslationOf=Ця сторінка/контейнер є перекладом +ThisPageHasTranslationPages=Ця сторінка/контейнер має переклад +NoWebSiteCreateOneFirst=Ще не створено жодного веб-сайту. Спочатку створіть один. +GoTo=Йти до +DynamicPHPCodeContainsAForbiddenInstruction=Ви додаєте динамічний код PHP, який містить інструкцію PHP ' %s ', яка заборонена за замовчуванням як динамічний вміст (див. приховані параметри WEBSITE_PHP_ALLOW list_xxx, щоб збільшити команду дозволених). +NotAllowedToAddDynamicContent=Ви не маєте дозволу додавати чи редагувати динамічний вміст PHP на веб-сайтах. Попросіть дозволу або просто збережіть код у тегах php без змін. +ReplaceWebsiteContent=Пошук або заміна вмісту веб-сайту +DeleteAlsoJs=Видалити також усі файли javascript, характерні для цього веб-сайту? +DeleteAlsoMedias=Видалити також усі медіафайли, характерні для цього веб-сайту? +MyWebsitePages=Сторінки мого сайту +SearchReplaceInto=Пошук | Замініть на +ReplaceString=Нова струна +CSSContentTooltipHelp=Введіть сюди вміст CSS. Щоб уникнути будь-яких конфліктів із CSS програми, не забудьте додати до всіх декларацій клас .bodywebsite. Наприклад:

    #mycssselector, input.myclass:hover { ... }
    має бути
    .bodywebsite #mycssselector, .bodywebsite #mycssselector, . цього префікса, ви можете використовувати 'lessc', щоб перетворити його, щоб додавати префікс .bodywebsite всюди. +LinkAndScriptsHereAreNotLoadedInEditor=Попередження: цей вміст виводиться лише при доступі до сайту із сервера. Він не використовується в режимі редагування, тому, якщо вам потрібно завантажити файли JavaScript також у режимі редагування, просто додайте на сторінку свій тег 'script src=...'. +Dynamiccontent=Зразок сторінки з динамічним вмістом +ImportSite=Імпортувати шаблон веб-сайту +EditInLineOnOff=Режим «Редагувати вбудований» — %s +ShowSubContainersOnOff=Режим виконання «динамічного вмісту» — %s +GlobalCSSorJS=Глобальний файл CSS/JS/заголовка веб-сайту +BackToHomePage=Назад на домашню сторінку... +TranslationLinks=Посилання на переклад +YouTryToAccessToAFileThatIsNotAWebsitePage=Ви намагаєтеся отримати доступ до недоступної сторінки.
    (ref=%s, type=%s, status=%s) +UseTextBetween5And70Chars=Для ефективної практики SEO використовуйте текст від 5 до 70 символів +MainLanguage=Основна мова +OtherLanguages=Інші мови +UseManifest=Надайте файл manifest.json +PublicAuthorAlias=Псевдонім публічного автора +AvailableLanguagesAreDefinedIntoWebsiteProperties=Доступні мови визначаються у властивостях веб-сайту +ReplacementDoneInXPages=Заміна виконана на сторінках або контейнерах %s +RSSFeed=RSS-канал +RSSFeedDesc=За допомогою цієї URL-адреси ви можете отримати RSS-канал останніх статей із типом «blogpost». +PagesRegenerated=%s сторінок/контейнерів відновлено +RegenerateWebsiteContent=Відновіть файли кешу веб-сайту +AllowedInFrames=Дозволено в кадрах +DefineListOfAltLanguagesInWebsiteProperties=Визначте список усіх доступних мов у властивостях веб-сайту. +GenerateSitemaps=Створення файлу карти сайту +ConfirmGenerateSitemaps=Якщо ви підтвердите, ви видалите наявний файл карти сайту... +ConfirmSitemapsCreation=Підтвердьте створення карти сайту +SitemapGenerated=Створено файл карти сайту %s +ImportFavicon=Фавікон +ErrorFaviconType=Значок фавікона має бути png +ErrorFaviconSize=Favicon має бути розміром 16x16, 32x32 або 64x64 +FaviconTooltip=Завантажте зображення, яке має бути у форматі png (16x16, 32x32 або 64x64) diff --git a/htdocs/langs/uk_UA/withdrawals.lang b/htdocs/langs/uk_UA/withdrawals.lang index 1af2f477108..0cd26dde3da 100644 --- a/htdocs/langs/uk_UA/withdrawals.lang +++ b/htdocs/langs/uk_UA/withdrawals.lang @@ -1,156 +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 -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 +CustomersStandingOrdersArea=Платежі за дорученнями прямого дебету +SuppliersStandingOrdersArea=Оплата кредитним переказом +StandingOrdersPayment=Платіжні доручення прямого дебету +StandingOrderPayment=Платіжне доручення прямого дебету +NewStandingOrder=Нове замовлення прямого дебету +NewPaymentByBankTransfer=Новий платіж кредитним переказом +StandingOrderToProcess=В процесі +PaymentByBankTransferReceipts=Доручення на кредитні перекази +PaymentByBankTransferLines=Рядки доручення на кредитні перекази +WithdrawalsReceipts=Доручення прямого дебету +WithdrawalReceipt=Доручення прямого дебету +BankTransferReceipts=Доручення на кредитні перекази +BankTransferReceipt=Доручення на переказ кредиту +LatestBankTransferReceipts=Останні розпорядження про кредитні перекази %s +LastWithdrawalReceipts=Останні файли прямого дебету %s +WithdrawalsLine=Рядок замовлення прямого дебету +CreditTransfer=Переказ кредиту +CreditTransferLine=Лінія кредитного переказу +WithdrawalsLines=Рядки доручення прямого дебету +CreditTransferLines=Кредитні переказні лінії +RequestStandingOrderToTreat=Запити на платіжне доручення прямого дебету для обробки +RequestStandingOrderTreated=Запити на платіжне доручення прямого дебету оброблено +RequestPaymentsByBankTransferToTreat=Запити на переказ кредиту для обробки +RequestPaymentsByBankTransferTreated=Запити на переказ кредиту оброблені +NotPossibleForThisStatusOfWithdrawReceiptORLine=Поки що неможливо. Перш ніж оголошувати відхилення в певних рядках, статус зняття має бути встановлений на "зараховано". +NbOfInvoiceToWithdraw=Кількість кваліфікованих рахунків-фактур клієнта з очікуванням замовлення прямого дебету +NbOfInvoiceToWithdrawWithInfo=№ рахунка-фактури клієнта з платіжними дорученнями прямого дебету, які мають визначену інформацію про банківський рахунок +NbOfInvoiceToPayByBankTransfer=Кількість рахунків-фактур кваліфікованого постачальника, які очікують на оплату кредитним переказом +SupplierInvoiceWaitingWithdraw=Рахунок-фактура постачальника очікує на оплату кредитним переказом +InvoiceWaitingWithdraw=Рахунок-фактура очікує прямого дебету +InvoiceWaitingPaymentByBankTransfer=Рахунок-фактура чекає кредитного переказу +AmountToWithdraw=Сума для зняття +AmountToTransfer=Сума для переказу +NoInvoiceToWithdraw=Немає рахунка-фактури, відкритого для '%s'. Перейдіть на вкладку «%s» на картці рахунків-фактур, щоб зробити запит. +NoSupplierInvoiceToWithdraw=Рахунок-фактура постачальника з відкритими "Прями кредитними запитами" не очікується. Перейдіть на вкладку «%s» на картці рахунків-фактур, щоб зробити запит. +ResponsibleUser=Відповідальний користувач +WithdrawalsSetup=Налаштування оплати прямого дебету +CreditTransferSetup=Налаштування кредитного переказу +WithdrawStatistics=Статистика платежів прямого дебету +CreditTransferStatistics=Статистика кредитних переказів +Rejects=Відкидає +LastWithdrawalReceipt=Останні квитанції прямого дебету %s +MakeWithdrawRequest=Зробіть запит на оплату прямим дебетом +MakeBankTransferOrder=Зробіть запит на кредитний переказ +WithdrawRequestsDone=%s Записи запитів на оплату прямого дебету +BankTransferRequestsDone=%s Записи запитів на переказ кредиту +ThirdPartyBankCode=Код стороннього банку +NoInvoiceCouldBeWithdrawed=Рахунок-фактура не списаний успішно. Переконайтеся, що рахунки-фактури надаються компаніям із дійсним номером IBAN і чи IBAN має UMR (унікальний довідник мандату) з режимом %s . +WithdrawalCantBeCreditedTwice=Ця квитанція про зняття коштів уже позначена як зарахована; це не можна робити двічі, оскільки це може призвести до повторюваних платежів та банківських записів. +ClassCredited=Класифікувати зараховано +ClassDebited=Класифікувати дебетовані +ClassCreditedConfirm=Ви впевнені, що хочете класифікувати цю квитанцію про зняття коштів як зараховану на ваш банківський рахунок? +TransData=Дата передачі +TransMetod=Спосіб передачі +Send=Надіслати +Lines=Лінії +StandingOrderReject=Видати відмову +WithdrawsRefused=Прямий дебет відмовлено +WithdrawalRefused=У вилученні відмовили +CreditTransfersRefused=Кредитні перекази відмовлено +WithdrawalRefusedConfirm=Ви впевнені, що хочете ввести відмову від відмови для суспільства +RefusedData=Дата відхилення +RefusedReason=Причина відмови +RefusedInvoicing=Виставлення рахунків за відмову +NoInvoiceRefused=Не стягуйте плату за відмову +InvoiceRefused=Рахунок-фактура відхилено (стягнути плату за відмову клієнту) +StatusDebitCredit=Стан дебету/кредиту +StatusWaiting=Очікування +StatusTrans=Надісланий +StatusDebited=Дебетовано +StatusCredited=Зараховано StatusPaid=Сплачений -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 +StatusRefused=Відмовився +StatusMotif0=Не вказано +StatusMotif1=Недостатньо коштів +StatusMotif2=Запит оскаржено +StatusMotif3=Відсутнє платіжне доручення за прямим дебетом +StatusMotif4=Замовлення клієнта +StatusMotif5=RIB непридатний +StatusMotif6=Рахунок без балансу +StatusMotif7=Судове рішення +StatusMotif8=Інша причина +CreateForSepaFRST=Створити файл прямого дебету (SEPA FRST) +CreateForSepaRCUR=Створити файл прямого дебету (SEPA RCUR) +CreateAll=Створіть файл прямого дебету +CreateFileForPaymentByBankTransfer=Створити файл для переказу кредиту +CreateSepaFileForPaymentByBankTransfer=Створити файл кредитного переказу (SEPA) +CreateGuichet=Тільки офіс +CreateBanque=Тільки банк +OrderWaiting=Чекають на лікування +NotifyTransmision=Запис передачі файлу замовлення +NotifyCredit=Запис кредиту замовлення +NumeroNationalEmetter=Національний номер передавача +WithBankUsingRIB=Для банківських рахунків за допомогою RIB +WithBankUsingBANBIC=Для банківських рахунків із використанням IBAN/BIC/SWIFT +BankToReceiveWithdraw=Банківський рахунок-отримувач +BankToPayCreditTransfer=Як джерело платежів використовується банківський рахунок +CreditDate=Кредит на +WithdrawalFileNotCapable=Не вдається створити файл квитанції про зняття коштів для вашої країни %s (Ваша країна не підтримується) +ShowWithdraw=Показати замовлення прямого дебету +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Однак, якщо в рахунку-фактурі є принаймні одне платіжне доручення прямого дебету, яке ще не оброблено, воно не буде визначено як оплачене, щоб дозволити попереднє зняття коштів. +DoStandingOrdersBeforePayments=Ця вкладка дозволяє запитати платіжне доручення прямого дебету. Після завершення перейдіть до меню Банк->Оплата прямим дебетом, щоб створити та керувати дорученням прямого дебету. Коли доручення прямого дебету закрито, оплата за рахунками-фактурами буде автоматично записана, а рахунки-фактури закриються, якщо залишок до оплати є нульовим. +DoCreditTransferBeforePayments=На цій вкладці можна запитати доручення кредитного переказу. Після завершення перейдіть до меню Банк->Оплата кредитним переказом, щоб створити та керувати дорученням на кредитний переказ. Коли замовлення на кредитний переказ закрито, оплата за рахунками-фактурами буде автоматично записана, а рахунки-фактури закриються, якщо залишок до оплати є нульовим. +WithdrawalFile=Файл дебетового доручення +CreditTransferFile=Файл переказу кредиту +SetToStatusSent=Установити статус «Файл надіслано» +ThisWillAlsoAddPaymentOnInvoice=Це також реєструватиме платежі в рахунках-фактурах та класифікуватиме їх як "Оплачені", якщо залишки до оплати нульові +StatisticsByLineStatus=Статистика за станом рядків 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=Дата підписання доручення +RUMLong=Унікальна довідка про мандат +RUMWillBeGenerated=Якщо порожній, UMR (унікальний довідник про мандат) буде створено після збереження інформації про банківський рахунок. +WithdrawMode=Режим прямого дебету (FRST або RECUR) +WithdrawRequestAmount=Сума запиту на прямий дебет: +BankTransferAmount=Сума запиту на переказ кредиту: +WithdrawRequestErrorNilAmount=Не вдається створити запит на прямий дебет для порожньої суми. +SepaMandate=Доручення на прямий дебет SEPA +SepaMandateShort=Мандат SEPA +PleaseReturnMandate=Будь ласка, поверніть цю форму доручення електронною поштою на адресу %s або поштою на адресу +SEPALegalText=Підписуючи цю форму доручення, ви уповноважуєте (A) %s надсилати інструкції вашому банку щодо списання коштів із вашого рахунку та (B) вашому банку дебетувати ваш рахунок відповідно до інструкцій від %s. Як частина ваших прав, ви маєте право на відшкодування від вашого банку згідно з умовами вашої угоди з вашим банком. Ваші права щодо вищезазначеного мандату пояснюються у заяві, яку ви можете отримати у своєму банку. +CreditorIdentifier=Ідентифікатор кредитора +CreditorName=Ім'я кредитора +SEPAFillForm=(B) Будь ласка, заповніть усі поля, позначені * +SEPAFormYourName=Твоє ім'я +SEPAFormYourBAN=Назва вашого банківського рахунку (IBAN) +SEPAFormYourBIC=Ваш банківський ідентифікаційний код (BIC) +SEPAFrstOrRecur=Вид оплати +ModeRECUR=Регулярна оплата +ModeFRST=Одноразовий платіж +PleaseCheckOne=Будь ласка, позначте лише один +CreditTransferOrderCreated=Доручення на кредитний переказ %s створено +DirectDebitOrderCreated=Доручення прямого дебету %s створено +AmountRequested=Запитувана сума 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=Дата виконання +CreateForSepa=Створіть файл прямого дебету +ICS=Ідентифікатор кредитора - ICS +IDS=Ідентифікатор дебітора +END_TO_END=Тег XML "EndToEndId" SEPA – унікальний ідентифікатор, призначений для транзакції +USTRD="Неструктурований" XML-тег SEPA +ADDDAYS=Додайте дні до дати виконання +NoDefaultIBANFound=Для цієї третьої сторони не знайдено IBAN за замовчуванням ### 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 +InfoCreditSubject=Оплата банком платіжного доручення прямого дебету %s +InfoCreditMessage=Платіжне доручення прямого дебету %s сплачено банком
    Дані платежу: %s +InfoTransSubject=Передача платіжного доручення прямого дебету %s до банку +InfoTransMessage=Платіжне доручення прямого дебету %s надіслано до банку від %s %s.

    +InfoTransData=Сума: %s
    Метод: %s
    Дата: %s +InfoRejectSubject=Платіжне доручення прямого дебету відхилено +InfoRejectMessage=Привіт,

    банк відхилив доручення прямого дебету за рахунком-фактурою %s, пов’язаним із компанією %s, на суму %s.

    --
    %s +ModeWarning=Опція реального режиму не була встановлена, ми зупиняємося після цієї симуляції +ErrorCompanyHasDuplicateDefaultBAN=Компанія з ідентифікатором %s має більше одного банківського рахунку за умовчанням. Немає можливості дізнатися, який із них використовувати. +ErrorICSmissing=Відсутня ICS на банківському рахунку %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Загальна сума доручення прямого дебету відрізняється від суми рядків +WarningSomeDirectDebitOrdersAlreadyExists=Попередження. Уже є запити на розпорядження прямого дебету (%s) на суму %s +WarningSomeCreditTransferAlreadyExists=Попередження: уже запитаний кредитний переказ (%s) на суму %s +UsedFor=Використовується для %s diff --git a/htdocs/langs/uk_UA/workflow.lang b/htdocs/langs/uk_UA/workflow.lang index adfe7f69609..64e893d5601 100644 --- a/htdocs/langs/uk_UA/workflow.lang +++ b/htdocs/langs/uk_UA/workflow.lang @@ -1,26 +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. +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_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_PROPAL_AUTOCREATE_ORDER=Автоматично створювати замовлення на продаж після підписання комерційної пропозиції (нове замовлення матиме ту ж суму, що й пропозиція) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматично створювати рахунок-фактуру клієнта після підписання комерційної пропозиції (новий рахунок-фактура матиме таку ж суму, як і пропозиція) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматично створювати рахунок-фактуру клієнта після підтвердження договору +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_BILL_ON_RECEPTION=Класифікуйте прийоми як «оплачувані», коли пов’язане замовлення постачальника підтверджено +# 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 -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +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=Класифікувати відправлення зв’язаного джерела як закрите, коли рахунок-фактура клієнта підтверджено +AutomaticClosing=Автоматичне закриття +AutomaticLinking=Автоматичне підключення diff --git a/htdocs/langs/uk_UA/zapier.lang b/htdocs/langs/uk_UA/zapier.lang index b4cc4ccba4a..aee3db53c52 100644 --- a/htdocs/langs/uk_UA/zapier.lang +++ b/htdocs/langs/uk_UA/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 для Dolibarr +ModuleZapierForDolibarrDesc = Zapier для модуля Dolibarr +ZapierForDolibarrSetup=Налаштування Zapier для Dolibarr +ZapierDescription=Інтерфейс із Zapier +ZapierAbout=Про модуль Zapier +ZapierSetupPage=Для використання Zapier не потрібно налаштовувати Dolibarr. Однак ви повинні створити та опублікувати пакунок на zapier, щоб мати можливість використовувати Zapier з Dolibarr. Дивіться документацію на на цій вікі-сторінці . diff --git a/htdocs/langs/ur_PK/accountancy.lang b/htdocs/langs/ur_PK/accountancy.lang index b3b1b7daf08..d43f3d80620 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=اکاؤنٹنگ ذیلی اکاؤنٹ کے ذریعہ دیکھیں @@ -62,24 +63,24 @@ MainAccountForSubscriptionPaymentNotDefined=رکنیت کی ادائیگی کے AccountancyArea=اکاؤنٹنگ ایریا AccountancyAreaDescIntro=اکاؤنٹنسی ماڈیول کا استعمال کئی مراحل میں کیا جاتا ہے: AccountancyAreaDescActionOnce=درج ذیل اعمال عام طور پر صرف ایک بار، یا سال میں ایک بار کیے جاتے ہیں... -AccountancyAreaDescActionOnceBis=جرنلائزیشن کرتے وقت آپ کو صحیح ڈیفالٹ اکاؤنٹنگ اکاؤنٹ تجویز کرکے مستقبل میں آپ کا وقت بچانے کے لیے اگلے اقدامات کیے جائیں (جرائد اور جنرل لیجر میں ریکارڈ لکھنا) +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=درج ذیل کارروائیاں عام طور پر بہت بڑی کمپنیوں کے لیے ہر مہینے، ہفتے یا دن کی جاتی ہیں... -AccountancyAreaDescJournalSetup=STEP %s: مینو %s سے اپنے جریدے کی فہرست کا مواد بنائیں یا چیک کریں۔ +AccountancyAreaDescJournalSetup=STEP %s: Check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: چیک کریں کہ اکاؤنٹ کے چارٹ کا ماڈل موجود ہے یا مینو سے ایک بنائیں %s AccountancyAreaDescChart=STEP %s: منتخب کریں اور|یا اپنے اکاؤنٹ کا چارٹ مینو %s سے مکمل کریں AccountancyAreaDescVat=STEP %s: ہر VAT کی شرح کے لیے اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ AccountancyAreaDescDefault=STEP %s: پہلے سے طے شدہ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ -AccountancyAreaDescExpenseReport=STEP %s: ہر قسم کے اخراجات کی رپورٹ کے لیے ڈیفالٹ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=STEP %s: تنخواہوں کی ادائیگی کے لیے پہلے سے طے شدہ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ -AccountancyAreaDescContrib=STEP %s: خصوصی اخراجات (متفرق ٹیکس) کے لیے پہلے سے طے شدہ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: عطیہ کے لیے ڈیفالٹ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ AccountancyAreaDescSubscription=STEP %s: ممبر سبسکرپشن کے لیے ڈیفالٹ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ AccountancyAreaDescMisc=STEP %s: متفرق لین دین کے لیے لازمی ڈیفالٹ اکاؤنٹ اور ڈیفالٹ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ AccountancyAreaDescLoan=STEP %s: قرضوں کے لیے پہلے سے طے شدہ اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ AccountancyAreaDescBank=STEP %s: ہر بینک اور مالیاتی کھاتوں کے لیے اکاؤنٹنگ اکاؤنٹس اور جرنل کوڈ کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ -AccountancyAreaDescProd=STEP %s: اپنی مصنوعات/سروسز پر اکاؤنٹنگ اکاؤنٹس کی وضاحت کریں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=STEP %s: موجودہ %s لائنوں کے درمیان بائنڈنگ کو چیک کریں اور اکاؤنٹنگ اکاؤنٹ مکمل ہو گیا ہے، لہذا ایپلیکیشن ایک کلک میں لیجر میں لین دین کو جرنلائز کر سکے گی۔ مکمل گمشدہ پابندیاں۔ اس کے لیے مینو انٹری %s استعمال کریں۔ AccountancyAreaDescWriteRecords=STEP %s: لیجر میں لین دین لکھیں۔ اس کے لیے، مینو میں جائیں %s ، اور بٹن پر کلک کریں %s a0a65d07z. @@ -112,7 +113,7 @@ MenuAccountancyClosure=بندش MenuAccountancyValidationMovements=نقل و حرکت کی توثیق کریں۔ ProductsBinding=مصنوعات کے اکاؤنٹس TransferInAccounting=اکاؤنٹنگ میں منتقلی -RegistrationInAccounting=اکاؤنٹنگ میں رجسٹریشن +RegistrationInAccounting=Recording in accounting Binding=اکاؤنٹس کا پابند CustomersVentilation=کسٹمر انوائس بائنڈنگ SuppliersVentilation=وینڈر انوائس بائنڈنگ @@ -120,7 +121,7 @@ ExpenseReportsVentilation=اخراجات کی رپورٹ کا پابند CreateMvts=نیا لین دین بنائیں UpdateMvts=لین دین میں ترمیم ValidTransaction=لین دین کی توثیق کریں۔ -WriteBookKeeping=اکاؤنٹنگ میں لین دین کو رجسٹر کریں۔ +WriteBookKeeping=Record transactions in accounting Bookkeeping=لیجر BookkeepingSubAccount=ذیلی AccountBalance=اکاؤنٹ بیلنس @@ -161,7 +162,7 @@ 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=جریدہ خریدیں۔ @@ -182,6 +183,7 @@ DONATION_ACCOUNTINGACCOUNT=عطیات کو رجسٹر کرنے کے لیے اک ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=سبسکرپشنز کو رجسٹر کرنے کے لیے اکاؤنٹنگ اکاؤنٹ ACCOUNTING_ACCOUNT_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_PRODUCT_BUY_INTRA_ACCOUNT=EEC میں خریدی گئی مصنوعات کے لیے بطور ڈیفالٹ اکاؤنٹنگ اکاؤنٹ (اگر پروڈکٹ شیٹ میں وضاحت نہ کی گئی ہو تو استعمال کیا جاتا ہے) @@ -219,12 +221,12 @@ ByPredefinedAccountGroups=پہلے سے طے شدہ گروپوں کے ذریعے ByPersonalizedAccountGroups=ذاتی نوعیت کے گروپوں کے ذریعے ByYear=سال کے حساب سے NotMatch=سیٹ نہیں ہے -DeleteMvt=اکاؤنٹنگ سے کچھ آپریشن لائنوں کو حذف کریں۔ +DeleteMvt=Delete some lines from accounting DelMonth=حذف کرنے کا مہینہ DelYear=حذف کرنے کا سال DelJournal=حذف کرنے کے لیے جرنل -ConfirmDeleteMvt=یہ سال/ماہ اور/یا کسی مخصوص جریدے کے لیے اکاؤنٹنگ کی تمام آپریشن لائنوں کو حذف کر دے گا (کم از کم ایک معیار درکار ہے)۔ حذف شدہ ریکارڈ کو لیجر میں واپس لانے کے لیے آپ کو '%s' فیچر کو دوبارہ استعمال کرنا ہوگا۔ -ConfirmDeleteMvtPartial=یہ اکاؤنٹنگ سے لین دین کو حذف کر دے گا (اسی لین دین سے متعلق تمام آپریشن لائنوں کو حذف کر دیا جائے گا) +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=فنانس جرنل ExpenseReportsJournal=اخراجات کی رپورٹ کا جریدہ DescFinanceJournal=فنانس جرنل بشمول بینک اکاؤنٹ کے ذریعے ادائیگیوں کی تمام اقسام @@ -278,30 +280,31 @@ DescVentilExpenseReportMore=اگر آپ اکاؤنٹنگ اکاؤنٹ کو اخ DescVentilDoneExpenseReport=یہاں اخراجات کی رپورٹوں کی فہرست اور ان کے فیس اکاؤنٹنگ اکاؤنٹ سے مشورہ کریں۔ Closure=سالانہ بندش -DescClosure=یہاں ماہ کے لحاظ سے نقل و حرکت کی تعداد سے مشورہ کریں جن کی توثیق نہیں ہوئی اور مالی سال پہلے ہی کھلے ہیں۔ -OverviewOfMovementsNotValidated=مرحلہ 1/ نقل و حرکت کا جائزہ درست نہیں ہے۔ (مالی سال بند کرنا ضروری ہے) -AllMovementsWereRecordedAsValidated=تمام نقل و حرکت کو توثیق کے طور پر ریکارڈ کیا گیا تھا۔ -NotAllMovementsCouldBeRecordedAsValidated=تمام حرکات کو توثیق کے طور پر ریکارڈ نہیں کیا جا سکتا -ValidateMovements=نقل و حرکت کی توثیق کریں۔ +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=تحریر، حروف اور حذف میں کسی قسم کی ترمیم یا حذف ممنوع ہو گا۔ مشق کے لیے تمام اندراجات کی توثیق ہونی چاہیے ورنہ بند کرنا ممکن نہیں ہوگا۔ ValidateHistory=خودکار طور پر باندھیں۔ AutomaticBindingDone=خودکار بائنڈنگ ہو گئی (%s) - کچھ ریکارڈ کے لیے خودکار بائنڈنگ ممکن نہیں ہے (%s) ErrorAccountancyCodeIsAlreadyUse=خرابی، آپ اس اکاؤنٹنگ اکاؤنٹ کو حذف نہیں کر سکتے کیونکہ یہ استعمال کیا گیا ہے۔ -MvtNotCorrectlyBalanced=نقل و حرکت درست طریقے سے متوازن نہیں ہے۔ ڈیبٹ = %s | کریڈٹ = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=توازن FicheVentilation=بائنڈنگ کارڈ GeneralLedgerIsWritten=لین دین لیجر میں لکھا جاتا ہے۔ GeneralLedgerSomeRecordWasNotRecorded=کچھ لین دین کو جرنلائز نہیں کیا جا سکا۔ اگر کوئی اور غلطی کا پیغام نہیں ہے، تو شاید اس کی وجہ یہ ہے کہ وہ پہلے ہی جرنلائز ہو چکے تھے۔ -NoNewRecordSaved=جرنلائز کرنے کے لیے مزید کوئی ریکارڈ نہیں۔ +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=پروڈکٹس کی فہرست کسی اکاؤنٹنگ اکاؤنٹ کے پابند نہیں ہے۔ ChangeBinding=بائنڈنگ کو تبدیل کریں۔ Accounted=لیجر میں حساب NotYetAccounted=ابھی تک اکاؤنٹنگ میں منتقل نہیں ہوا ہے۔ ShowTutorial=ٹیوٹوریل دکھائیں۔ NotReconciled=صلح نہیں ہوئی۔ -WarningRecordWithoutSubledgerAreExcluded=انتباہ، سبلیجر اکاؤنٹ کے بغیر تمام آپریشنز کو فلٹر کیا گیا ہے اور اس منظر سے خارج کر دیا گیا ہے۔ +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=بائنڈنگ کے اختیارات @@ -329,8 +332,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=خریداری پر اکاؤنٹنسی ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=اخراجات کی رپورٹوں پر اکاؤنٹنسی میں بائنڈنگ اور ٹرانسفر کو غیر فعال کریں (اکاؤنٹنگ میں اخراجات کی رپورٹوں کو مدنظر نہیں رکھا جائے گا) ## Export -NotifiedExportDate=برآمد شدہ لائنوں کو ایکسپورٹ کے طور پر جھنڈا لگائیں (لائنوں میں ترمیم ممکن نہیں ہوگی) -NotifiedValidationDate=برآمد شدہ اندراجات کی توثیق کریں (لائنوں میں ترمیم یا حذف کرنا ممکن نہیں ہوگا) +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=اکاؤنٹنگ برآمد فائل کی نسل کی تصدیق؟ ExportDraftJournal=ڈرافٹ جرنل برآمد کریں۔ Modelcsv=ایکسپورٹ کا ماڈل @@ -394,6 +398,21 @@ 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 + +## 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=سیٹ اپ کے کچھ لازمی اقدامات نہیں کیے گئے، براہ کرم انہیں مکمل کریں۔ ErrorNoAccountingCategoryForThisCountry=ملک %s کے لیے کوئی اکاؤنٹنگ اکاؤنٹ گروپ دستیاب نہیں (دیکھیں ہوم - سیٹ اپ - ڈکشنریز) @@ -406,6 +425,10 @@ Binded=لکیریں جڑی ہوئی ہیں۔ ToBind=باندھنے کے لیے لکیریں۔ UseMenuToSetBindindManualy=لائنیں ابھی تک پابند نہیں ہیں، دستی طور پر بائنڈنگ بنانے کے لیے مینو %s استعمال کریں۔ 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=اکاؤنٹنگ اندراجات diff --git a/htdocs/langs/ur_PK/admin.lang b/htdocs/langs/ur_PK/admin.lang index 5f76e6cef5b..c90a9fcf68b 100644 --- a/htdocs/langs/ur_PK/admin.lang +++ b/htdocs/langs/ur_PK/admin.lang @@ -109,7 +109,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= کمانڈ لائن پر مزید پیرامیٹرز @@ -477,7 +477,7 @@ InstalledInto=ڈائرکٹری %s میں انسٹال ہے۔ BarcodeInitForThirdparties=فریق ثالث کے لیے بڑے پیمانے پر بارکوڈ init BarcodeInitForProductsOrServices=بڑے پیمانے پر بارکوڈ شروع کریں یا مصنوعات یا خدمات کے لیے دوبارہ ترتیب دیں۔ CurrentlyNWithoutBarCode=فی الحال، آپ کے پاس %s ریکارڈ ہے -InitEmptyBarCode=اگلے %s خالی ریکارڈز کے لیے ابتدائی قدر +InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=تمام موجودہ بارکوڈ اقدار کو مٹا دیں۔ ConfirmEraseAllCurrentBarCode=کیا آپ واقعی بارکوڈ کی تمام موجودہ اقدار کو مٹانا چاہتے ہیں؟ AllBarcodeReset=بارکوڈ کی تمام اقدار کو ہٹا دیا گیا ہے۔ @@ -504,7 +504,7 @@ WarningPHPMailC=- ای میلز بھیجنے کے لیے آپ کے اپنے ای WarningPHPMailD=نیز، اس لیے ای میل بھیجنے کے طریقے کو "SMTP" کی قدر میں تبدیل کرنے کی سفارش کی جاتی ہے۔ اگر آپ واقعی ای میلز بھیجنے کے لیے پہلے سے طے شدہ "PHP" طریقہ کو برقرار رکھنا چاہتے ہیں، تو صرف اس انتباہ کو نظر انداز کریں، یا ہوم - سیٹ اپ - دیگر میں MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP مستقل کو 1 پر سیٹ کرکے اسے ہٹا دیں۔ 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=یہ ماڈیول ماڈیول (زبانوں) کو درکار ہے @@ -718,9 +718,9 @@ Permission34=مصنوعات کو حذف کریں۔ Permission36=پوشیدہ پروڈکٹس دیکھیں/ان کا نظم کریں۔ Permission38=مصنوعات برآمد کریں۔ Permission39=کم از کم قیمت کو نظر انداز کریں۔ -Permission41=پروجیکٹس اور ٹاسک پڑھیں (مشترکہ پروجیکٹ اور پروجیکٹس جن کے لیے میں رابطہ کر رہا ہوں)۔ تفویض کردہ کاموں (ٹائم شیٹ) پر، میرے یا میرے درجہ بندی کے لیے استعمال شدہ وقت بھی درج کر سکتے ہیں۔ -Permission42=پروجیکٹ بنائیں/ترمیم کریں (مشترکہ پروجیکٹ اور پروجیکٹس جن کے لیے میں رابطہ کر رہا ہوں)۔ ٹاسک بھی بنا سکتے ہیں اور صارفین کو پروجیکٹ اور ٹاسک تفویض کر سکتے ہیں۔ -Permission44=پروجیکٹس کو حذف کریں (مشترکہ پروجیکٹ اور پروجیکٹس جن کے لیے میں رابطہ کر رہا ہوں) +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=ایکسپورٹ پروجیکٹس Permission61=مداخلتیں پڑھیں Permission62=مداخلتیں بنائیں/ترمیم کریں۔ @@ -766,9 +766,10 @@ Permission122=صارف سے منسلک تیسرے فریق بنائیں/ترمی Permission125=صارف سے منسلک تیسرے فریق کو حذف کریں۔ Permission126=تیسرے فریق کو برآمد کریں۔ Permission130=تیسرے فریق کی ادائیگی کی معلومات بنائیں/ترمیم کریں۔ -Permission141=تمام منصوبوں اور کاموں کو پڑھیں (نجی منصوبے بھی جن کے لیے میں رابطہ نہیں ہوں) -Permission142=تمام پروجیکٹس اور ٹاسک بنائیں/ترمیم کریں (نجی پروجیکٹ بھی جن کے لیے میں رابطہ نہیں ہوں) -Permission144=تمام منصوبوں اور کاموں کو حذف کریں (نجی پروجیکٹس جن کے لیے میں رابطہ نہیں کر رہا ہوں) +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=براہ راست ڈیبٹ ادائیگی کے آرڈر پڑھیں @@ -883,6 +884,9 @@ Permission564=کریڈٹ کی منتقلی کے ڈیبٹ/مسترد ریکارڈ Permission601=اسٹیکرز پڑھیں Permission602=اسٹیکرز بنائیں/ترمیم کریں۔ Permission609=اسٹیکرز کو حذف کریں۔ +Permission611=Read attributes of variants +Permission612=Create/Update attributes of variants +Permission613=Delete attributes of variants Permission650=مواد کے بل پڑھیں Permission651=مواد کے بل بنائیں/اپ ڈیٹ کریں۔ Permission652=مواد کے بلز کو حذف کریں۔ @@ -969,6 +973,8 @@ Permission4021=Create/modify your evaluation Permission4022=تشخیص کی توثیق کریں۔ Permission4023=تشخیص کو حذف کریں۔ Permission4030=موازنہ کا مینو دیکھیں +Permission4031=Read personal information +Permission4032=Write personal information Permission10001=ویب سائٹ کا مواد پڑھیں Permission10002=ویب سائٹ کا مواد بنائیں/ترمیم کریں (HTML اور جاوا اسکرپٹ مواد) Permission10003=ویب سائٹ کا مواد بنائیں/ترمیم کریں (متحرک پی ایچ پی کوڈ)۔ خطرناک، محدود ڈویلپرز کے لیے محفوظ ہونا چاہیے۔ @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=اخراجات کی رپورٹ - نقل و حمل کے DictionaryExpenseTaxRange=اخراجات کی رپورٹ - نقل و حمل کے زمرے کے لحاظ سے حد DictionaryTransportMode=انٹرا کام رپورٹ - ٹرانسپورٹ موڈ DictionaryBatchStatus=پروڈکٹ لاٹ/سیریل کوالٹی کنٹرول کی حیثیت +DictionaryAssetDisposalType=Type of disposal of assets TypeOfUnit=یونٹ کی قسم SetupSaved=سیٹ اپ محفوظ ہو گیا۔ SetupNotSaved=سیٹ اپ محفوظ نہیں ہوا۔ @@ -1122,7 +1129,7 @@ ValueOfConstantKey=کنفیگریشن مستقل کی قدر ConstantIsOn=آپشن %s آن ہے۔ NbOfDays=دنوں کی تعداد AtEndOfMonth=مہینے کے آخر میں -CurrentNext=موجودہ/اگلا +CurrentNext=A given day in month Offset=آفسیٹ AlwaysActive=ہمیشہ متحرک Upgrade=اپ گریڈ @@ -1187,7 +1194,7 @@ BankModuleNotActive=بینک اکاؤنٹس ماڈیول فعال نہیں ہے ShowBugTrackLink=لنک دکھائیں " %s " ShowBugTrackLinkDesc=اس لنک کو ظاہر نہ کرنے کے لیے خالی رکھیں، Dolibarr پروجیکٹ کے لنک کے لیے ویلیو 'github' استعمال کریں یا براہ راست ایک url 'https://...' کی وضاحت کریں۔ Alerts=انتباہات -DelaysOfToleranceBeforeWarning=انتباہی انتباہ ظاہر کرنے سے پہلے تاخیر: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=تاخیر کو سیٹ کریں اس سے پہلے کہ الرٹ آئیکن %s دیر کے عنصر کے لیے اسکرین پر دکھایا جائے۔ Delays_MAIN_DELAY_ACTIONS_TODO=منصوبہ بند واقعات (ایجنڈا ایونٹس) مکمل نہیں ہوئے۔ Delays_MAIN_DELAY_PROJECT_TO_CLOSE=پروجیکٹ وقت پر بند نہیں ہوا۔ @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=آپ نے ترجمہ کلید ' %s %s
    / %s a09a4b739f17f80 YouMustEnableOneModule=آپ کو کم از کم 1 ماڈیول کو فعال کرنا ہوگا۔ +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=کلاس %s پی ایچ پی پاتھ میں نہیں ملی YesInSummer=ہاں گرمیوں میں OnlyFollowingModulesAreOpenedToExternalUsers=نوٹ کریں، صرف مندرجہ ذیل ماڈیولز بیرونی صارفین کے لیے دستیاب ہیں (اس طرح کے صارفین کی اجازتوں سے قطع نظر) اور صرف اس صورت میں جب اجازت دی گئی ہو:
    @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=ڈرافٹ رسیدوں پر واٹر مارک (اگر PaymentsNumberingModule=ادائیگیوں کا نمبر دینے والا ماڈل 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. ##### Proposals ##### PropalSetup=تجارتی تجاویز ماڈیول سیٹ اپ ProposalsNumberingModules=تجارتی تجویز نمبر دینے والے ماڈل @@ -1917,6 +1927,7 @@ ConfFileMustContainCustom=ایپلیکیشن سے کسی بیرونی ماڈیو HighlightLinesOnMouseHover=جب ماؤس کی حرکت گزر جاتی ہے تو ٹیبل لائنوں کو نمایاں کریں۔ HighlightLinesColor=ماؤس کے اوپر سے گزرنے پر لائن کا رنگ نمایاں کریں (کسی ہائی لائٹ کے لیے 'ffffff' استعمال کریں) HighlightLinesChecked=جب لائن کو چیک کیا جائے تو اس کے رنگ کو ہائی لائٹ کریں (کسی ہائی لائٹ کے لیے 'ffffff' استعمال کریں) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=صفحہ کے عنوان کا متن کا رنگ @@ -1925,7 +1936,7 @@ PressF5AfterChangingThis=کی بورڈ پر CTRL+F5 دبائیں یا اس قد NotSupportedByAllThemes=ول بنیادی تھیمز کے ساتھ کام کرتا ہے، ہو سکتا ہے کہ بیرونی تھیمز کی حمایت نہ ہو۔ BackgroundColor=پس منظر کا رنگ TopMenuBackgroundColor=ٹاپ مینو کے لیے پس منظر کا رنگ -TopMenuDisableImages=ٹاپ مینو میں تصاویر چھپائیں۔ +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=بائیں مینو کے لیے پس منظر کا رنگ BackgroundTableTitleColor=ٹیبل ٹائٹل لائن کے لیے پس منظر کا رنگ BackgroundTableTitleTextColor=ٹیبل ٹائٹل لائن کے لیے متن کا رنگ @@ -1938,7 +1949,7 @@ EnterAnyCode=یہ فیلڈ لائن کی شناخت کے لیے ایک حوال Enter0or1=0 یا 1 درج کریں۔ UnicodeCurrency=یہاں منحنی خطوط وحدانی کے درمیان درج کریں، بائٹ نمبر کی فہرست جو کرنسی کی علامت کی نمائندگی کرتی ہے۔ مثال کے طور پر: $ کے لیے، درج کریں [36] - برازیل اصلی R$ [82,36] کے لیے - € کے لیے، [8364] درج کریں ColorFormat=RGB رنگ HEX فارمیٹ میں ہے، جیسے: FF0000 -PictoHelp=ڈولیبر فارمیٹ میں آئیکن کا نام ('image.png' اگر موجودہ تھیم ڈائرکٹری میں ہے، 'image.png@nom_du_module' اگر کسی ماڈیول کی ڈائرکٹری /img/ میں ہے) +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=کومبو فہرستوں میں لائن کی پوزیشن SellTaxRate=سیلز ٹیکس کی شرح RecuperableOnly=جی ہاں فرانس کی کسی ریاست کے لیے مختص VAT کے لیے "معلوم نہیں ہوا لیکن قابل بازیافت"۔ دیگر تمام معاملات میں قدر کو "نہیں" پر رکھیں۔ @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=کلین ویلیو کے لیے ریجیکس فلٹ COMPANY_DIGITARIA_CLEAN_REGEX=کلین ویلیو کے لیے ریجیکس فلٹر (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=نقل کی اجازت نہیں ہے۔ GDPRContact=ڈیٹا پروٹیکشن آفیسر (ڈی پی او، ڈیٹا پرائیویسی یا جی ڈی پی آر رابطہ) -GDPRContactDesc=اگر آپ یورپی کمپنیوں/شہریوں کے بارے میں ڈیٹا ذخیرہ کرتے ہیں، تو آپ یہاں اس رابطہ کا نام دے سکتے ہیں جو جنرل ڈیٹا پروٹیکشن ریگولیشن کا ذمہ دار ہے۔ +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=ٹول ٹپ پر دکھانے کے لیے متن کی مدد کریں۔ HelpOnTooltipDesc=جب یہ فیلڈ فارم میں ظاہر ہوتا ہے تو ٹول ٹپ میں متن دکھانے کے لیے متن یا ترجمہ کی کلید یہاں رکھیں YouCanDeleteFileOnServerWith=آپ اس فائل کو سرور پر کمانڈ لائن کے ساتھ حذف کر سکتے ہیں:
    %s @@ -2048,6 +2059,7 @@ VATIsUsedIsOff=نوٹ: مینو %s - %s میں سیلز ٹیکس یا VAT است SwapSenderAndRecipientOnPDF=پی ڈی ایف دستاویزات پر بھیجنے والے اور وصول کنندہ کے پتے کی پوزیشن کو تبدیل کریں۔ FeatureSupportedOnTextFieldsOnly=تنبیہ، خصوصیت صرف ٹیکسٹ فیلڈز اور کومبو لسٹوں پر معاون ہے۔ نیز ایک URL پیرامیٹر ایکشن=create or action=edit سیٹ ہونا چاہیے یا اس فیچر کو متحرک کرنے کے لیے صفحہ کا نام 'new.php' کے ساتھ ختم ہونا چاہیے۔ EmailCollector=ای میل کلکٹر +EmailCollectors=Email collectors EmailCollectorDescription=باقاعدگی سے ای میل باکسز (IMAP پروٹوکول کا استعمال کرتے ہوئے) اسکین کرنے کے لیے ایک طے شدہ جاب اور سیٹ اپ صفحہ شامل کریں اور اپنی درخواست میں موصول ہونے والی ای میلز کو صحیح جگہ پر ریکارڈ کریں اور/یا کچھ ریکارڈ خود بخود بنائیں (جیسے لیڈز)۔ NewEmailCollector=نیا ای میل کلکٹر EMailHost=ای میل IMAP سرور کا میزبان @@ -2057,18 +2069,30 @@ EmailcollectorOperations=کلیکٹر کے ذریعہ کرنے کے لئے آپ EmailcollectorOperationsDesc=اوپر سے نیچے کے حکم تک آپریشنز کیے جاتے ہیں۔ MaxEmailCollectPerCollect=فی جمع کردہ ای میلز کی زیادہ سے زیادہ تعداد CollectNow=ابھی جمع کریں۔ -ConfirmCloneEmailCollector=کیا آپ واقعی ای میل کلکٹر %s کو کلون کرنا چاہتے ہیں؟ +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 an agenda event. EmailCollectorConfirmCollectTitle=ای میل جمع تصدیق -EmailCollectorConfirmCollect=کیا آپ ابھی اس کلکٹر کے لیے کلیکشن چلانا چاہتے ہیں؟ +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=کارروائی کے لیے کوئی نیا ای میل (مماثل فلٹرز) نہیں ہے۔ 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, 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=تازہ ترین نتیجہ کوڈ NbOfEmailsInInbox=سورس ڈائرکٹری میں ای میلز کی تعداد LoadThirdPartyFromName=%s پر تیسرے فریق کی تلاش کو لوڈ کریں (صرف لوڈ) @@ -2089,7 +2113,7 @@ ResourceSetup=وسائل کے ماڈیول کی ترتیب UseSearchToSelectResource=وسائل کا انتخاب کرنے کے لیے سرچ فارم کا استعمال کریں (ڈراپ ڈاؤن فہرست کے بجائے)۔ DisabledResourceLinkUser=کسی وسائل کو صارفین سے منسلک کرنے کے لیے خصوصیت کو غیر فعال کریں۔ DisabledResourceLinkContact=کسی وسائل کو رابطوں سے جوڑنے کے لیے خصوصیت کو غیر فعال کریں۔ -EnableResourceUsedInEventCheck=یہ چیک کرنے کے لیے فیچر کو فعال کریں کہ آیا کسی ایونٹ میں کوئی وسیلہ استعمال میں ہے۔ +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=ماڈیول ری سیٹ کی تصدیق کریں۔ OnMobileOnly=صرف چھوٹی اسکرین (اسمارٹ فون) پر DisableProspectCustomerType="Prospect + Customer" تیسرے فریق کی قسم کو غیر فعال کریں (لہذا فریق ثالث کو "Prospect" یا "Customer" ہونا چاہیے، لیکن دونوں نہیں ہو سکتے) @@ -2134,7 +2158,7 @@ DeleteEmailCollector=ای میل کلیکٹر کو حذف کریں۔ ConfirmDeleteEmailCollector=کیا آپ واقعی اس ای میل کلیکٹر کو حذف کرنا چاہتے ہیں؟ RecipientEmailsWillBeReplacedWithThisValue=وصول کنندہ کے ای میلز کو ہمیشہ اس قدر سے بدل دیا جائے گا۔ AtLeastOneDefaultBankAccountMandatory=کم از کم 1 ڈیفالٹ بینک اکاؤنٹ کی وضاحت ہونی چاہیے۔ -RESTRICT_ON_IP=صرف کچھ میزبان IP تک رسائی کی اجازت دیں (وائلڈ کارڈ کی اجازت نہیں ہے، اقدار کے درمیان جگہ استعمال کریں)۔ خالی کا مطلب ہے کہ ہر میزبان رسائی کر سکتا ہے۔ +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=لائبریری SabreDAV ورژن پر مبنی NotAPublicIp=عوامی IP نہیں ہے۔ @@ -2144,6 +2168,9 @@ 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 PDF_USE_ALSO_LANGUAGE_CODE=اگر آپ چاہتے ہیں کہ آپ کی پی ڈی ایف میں کچھ متن ایک ہی جنریٹڈ پی ڈی ایف میں 2 مختلف زبانوں میں ڈپلیکیٹ ہوں، تو آپ کو یہاں یہ دوسری زبان سیٹ کرنی ہوگی تاکہ جنریٹ کی گئی پی ڈی ایف ایک ہی صفحہ میں 2 مختلف زبانوں پر مشتمل ہو، جو پی ڈی ایف بنانے کے وقت منتخب کی گئی ہو اور یہ ( صرف چند پی ڈی ایف ٹیمپلیٹس اس کی حمایت کرتے ہیں)۔ فی پی ڈی ایف 1 زبان کے لیے خالی رکھیں۔ PDF_USE_A=ڈیفالٹ فارمیٹ پی ڈی ایف کے بجائے PDF/A فارمیٹ کے ساتھ پی ڈی ایف دستاویزات تیار کریں۔ FafaIconSocialNetworksDesc=یہاں ایک FontAwesome آئیکن کا کوڈ درج کریں۔ اگر آپ نہیں جانتے کہ FontAwesome کیا ہے، تو آپ عام قدر fa-address-book استعمال کر سکتے ہیں۔ @@ -2206,12 +2233,12 @@ DashboardDisableBlockAdherent=رکنیت کے لیے انگوٹھے کو غیر DashboardDisableBlockExpenseReport=اخراجات کی رپورٹ کے لیے انگوٹھے کو غیر فعال کریں۔ DashboardDisableBlockHoliday=پتیوں کے لیے انگوٹھے کو غیر فعال کریں۔ EnabledCondition=فیلڈ کو فعال کرنے کی شرط (اگر فعال نہیں ہے تو، مرئیت ہمیشہ بند رہے گی) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=اگر آپ دوسرا ٹیکس استعمال کرنا چاہتے ہیں، تو آپ کو پہلا سیل ٹیکس بھی فعال کرنا ہوگا۔ -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=اگر آپ تیسرا ٹیکس استعمال کرنا چاہتے ہیں تو آپ کو پہلا سیل ٹیکس بھی فعال کرنا ہوگا۔ +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=زبان اور پیشکش SkinAndColors=جلد اور رنگ -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=اگر آپ دوسرا ٹیکس استعمال کرنا چاہتے ہیں، تو آپ کو پہلا سیل ٹیکس بھی فعال کرنا ہوگا۔ -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=اگر آپ تیسرا ٹیکس استعمال کرنا چاہتے ہیں تو آپ کو پہلا سیل ٹیکس بھی فعال کرنا ہوگا۔ +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=PDF/A-1b فارمیٹ کے ساتھ پی ڈی ایف بنائیں MissingTranslationForConfKey = %s کا ترجمہ غائب ہے۔ NativeModules=مقامی ماڈیولز @@ -2220,3 +2247,35 @@ API_DISABLE_COMPRESSION=API جوابات کے کمپریشن کو غیر فعا 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/ur_PK/banks.lang b/htdocs/langs/ur_PK/banks.lang index 03be017e754..8a8b38c8bfb 100644 --- a/htdocs/langs/ur_PK/banks.lang +++ b/htdocs/langs/ur_PK/banks.lang @@ -95,11 +95,11 @@ LineRecord=لین دین AddBankRecord=اندراج شامل کریں۔ AddBankRecordLong=دستی طور پر اندراج شامل کریں۔ Conciliated=صلح کر لی -ConciliatedBy=کی طرف سے مصالحت +ReConciliedBy=Reconciled by DateConciliating=مصالحت کی تاریخ BankLineConciliated=اندراج بینک کی رسید کے ساتھ ہم آہنگ -Reconciled=صلح کر لی -NotReconciled=صلح نہیں ہوئی۔ +BankLineReconciled=Reconciled +BankLineNotReconciled=Not reconciled CustomerInvoicePayment=گاہک کی ادائیگی SupplierInvoicePayment=وینڈر کی ادائیگی SubscriptionPayment=رکنیت کی ادائیگی @@ -172,8 +172,8 @@ SEPAMandate=SEPA مینڈیٹ YourSEPAMandate=آپ کا SEPA مینڈیٹ FindYourSEPAMandate=یہ آپ کا SEPA مینڈیٹ ہے کہ وہ ہماری کمپنی کو آپ کے بینک کو براہ راست ڈیبٹ آرڈر کرنے کی اجازت دیتا ہے۔ اسے دستخط شدہ واپس کریں (دستخط شدہ دستاویز کو اسکین کریں) یا اسے بذریعہ ڈاک بھیجیں۔ AutoReportLastAccountStatement=مفاہمت کرتے وقت آخری سٹیٹمنٹ نمبر کے ساتھ فیلڈ 'بینک اسٹیٹمنٹ کا نمبر' خودکار طور پر پُر کریں۔ -CashControl=POS کیش ڈیسک کنٹرول -NewCashFence=نیا کیش ڈیسک کھلنا یا بند کرنا +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=حرکات کو رنگین کریں۔ BankColorizeMovementDesc=اگر یہ فنکشن فعال ہے، تو آپ ڈیبٹ یا کریڈٹ کی نقل و حرکت کے لیے مخصوص پس منظر کا رنگ منتخب کر سکتے ہیں۔ BankColorizeMovementName1=ڈیبٹ حرکت کے لیے پس منظر کا رنگ @@ -182,3 +182,6 @@ IfYouDontReconcileDisableProperty=اگر آپ کچھ بینک اکاؤنٹس پ NoBankAccountDefined=کوئی بینک اکاؤنٹ متعین نہیں ہے۔ NoRecordFoundIBankcAccount=بینک اکاؤنٹ میں کوئی ریکارڈ نہیں ملا۔ عام طور پر، ایسا اس وقت ہوتا ہے جب بینک اکاؤنٹ میں لین دین کی فہرست سے ریکارڈ کو دستی طور پر حذف کر دیا جاتا ہے (مثال کے طور پر بینک اکاؤنٹ کی مصالحت کے دوران)۔ دوسری وجہ یہ ہے کہ ادائیگی اس وقت ریکارڈ کی گئی تھی جب ماڈیول "%s" غیر فعال تھا۔ AlreadyOneBankAccount=پہلے ہی ایک بینک اکاؤنٹ کی وضاحت کی گئی ہے۔ +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/ur_PK/bills.lang b/htdocs/langs/ur_PK/bills.lang index 159c25a8a47..42b26776217 100644 --- a/htdocs/langs/ur_PK/bills.lang +++ b/htdocs/langs/ur_PK/bills.lang @@ -156,6 +156,7 @@ 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. BillFrom=سے BillTo=کو ActionsOnBill=انوائس پر کارروائیاں @@ -282,6 +283,8 @@ RecurringInvoices=بار بار چلنے والی رسیدیں RecurringInvoice=بار بار چلنے والی رسید RepeatableInvoice=ٹیمپلیٹ رسید RepeatableInvoices=ٹیمپلیٹ رسیدیں +RecurringInvoicesJob=Generation of recurring invoices (sales invoices) +RecurringSupplierInvoicesJob=Generation of recurring invoices (purchase invoices) Repeatable=سانچے Repeatables=ٹیمپلیٹس ChangeIntoRepeatableInvoice=ٹیمپلیٹ انوائس میں تبدیل کریں۔ @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=چیک کی ادائیگیاں (ٹیکس سمیت) SendTo=کو بھیجا PaymentByTransferOnThisBankAccount=درج ذیل بینک اکاؤنٹ میں ٹرانسفر کے ذریعے ادائیگی VATIsNotUsedForInvoice=* CGI کا غیر قابل اطلاق VAT آرٹ-293B +VATIsNotUsedForInvoiceAsso=* Non applicable VAT art-261-7 of CGI LawApplicationPart1=قانون 80.335 از 12/05/80 کے اطلاق سے LawApplicationPart2=سامان کی ملکیت رہتی ہے LawApplicationPart3=کی مکمل ادائیگی تک بیچنے والے @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=فراہم کنندہ کی رسید حذف کر UnitPriceXQtyLessDiscount=یونٹ کی قیمت x مقدار - ڈسکاؤنٹ CustomersInvoicesArea=کسٹمر بلنگ ایریا SupplierInvoicesArea=سپلائر بلنگ ایریا -FacParentLine=انوائس لائن والدین SituationTotalRayToRest=ٹیکس کے بغیر ادا کرنے کے لیے باقی ہے۔ PDFSituationTitle=صورتحال n° %d SituationTotalProgress=کل پیش رفت %d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=مقررہ تاریخ = %s کے ساتھ بلا NoPaymentAvailable=%s کے لیے کوئی ادائیگی دستیاب نہیں ہے۔ PaymentRegisteredAndInvoiceSetToPaid=ادائیگی رجسٹرڈ اور انوائس %s ادا کرنے پر سیٹ ہے۔ SendEmailsRemindersOnInvoiceDueDate=بلا معاوضہ رسیدوں کے لیے ای میل کے ذریعے یاد دہانی بھیجیں۔ +MakePaymentAndClassifyPayed=Record payment +BulkPaymentNotPossibleForInvoice=Bulk payment is not possible for invoice %s (bad type or status) diff --git a/htdocs/langs/ur_PK/cashdesk.lang b/htdocs/langs/ur_PK/cashdesk.lang index 9b07a7e47f7..0d77912f4a5 100644 --- a/htdocs/langs/ur_PK/cashdesk.lang +++ b/htdocs/langs/ur_PK/cashdesk.lang @@ -50,8 +50,8 @@ Footer=فوٹر AmountAtEndOfPeriod=مدت کے اختتام پر رقم (دن، مہینہ یا سال) TheoricalAmount=نظریاتی رقم RealAmount=اصلی رقم -CashFence=کیش ڈیسک بند ہو رہا ہے۔ -CashFenceDone=کیش ڈیسک کی بندش مدت کے لیے ہو گئی۔ +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=رسیدوں کا نمبر Paymentnumpad=ادائیگی داخل کرنے کے لیے پیڈ کی قسم Numberspad=نمبرز پیڈ @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} ٹیگ ٹرمینل نمبر ش TakeposGroupSameProduct=ایک ہی مصنوعات کی لائنوں کو گروپ کریں۔ StartAParallelSale=ایک نئی متوازی فروخت شروع کریں۔ SaleStartedAt=فروخت %s پر شروع ہوئی۔ -ControlCashOpening=POS کھولتے وقت "کنٹرول کیش" پاپ اپ کھولیں۔ -CloseCashFence=کیش ڈیسک کنٹرول بند کریں۔ +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=کیش رپورٹ MainPrinterToUse=استعمال کرنے کے لیے مین پرنٹر OrderPrinterToUse=پرنٹر کو استعمال کرنے کا آرڈر دیں۔ @@ -134,3 +134,5 @@ PrintWithoutDetailsButton="تفصیلات کے بغیر پرنٹ کریں" بٹ PrintWithoutDetailsLabelDefault=بغیر تفصیلات کے پرنٹنگ پر بطور ڈیفالٹ لائن لیبل PrintWithoutDetails=تفصیلات کے بغیر پرنٹ کریں۔ YearNotDefined=سال کی تعریف نہیں ہے۔ +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
    diff --git a/htdocs/langs/ur_PK/companies.lang b/htdocs/langs/ur_PK/companies.lang index a6a675b79fc..7155ad7f338 100644 --- a/htdocs/langs/ur_PK/companies.lang +++ b/htdocs/langs/ur_PK/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=پراسپیکشن ایریا IdThirdParty=آئی ڈی تھرڈ پارٹی IdCompany=کمپنی کی شناخت IdContact=رابطہ کی شناخت +ThirdPartyAddress=Third-party address ThirdPartyContacts=فریق ثالث کے رابطے ThirdPartyContact=فریق ثالث کا رابطہ/ پتہ Company=کمپنی @@ -51,19 +52,22 @@ CivilityCode=شہریت کا ضابطہ RegisteredOffice=منظور شدہ دفتر Lastname=آخری نام Firstname=پہلا نام +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=عہدہ UserTitle=عنوان NatureOfThirdParty=تیسرے فریق کی نوعیت NatureOfContact=رابطے کی نوعیت Address=پتہ State=ریاست/صوبہ +StateId=State ID StateCode=ریاست/صوبائی کوڈ StateShort=حالت Region=علاقہ Region-State=علاقہ - ریاست Country=ملک CountryCode=ملک کا کوڈ -CountryId=ملک کی شناخت +CountryId=Country ID Phone=فون PhoneShort=فون Skype=سکائپ @@ -102,6 +106,7 @@ WrongSupplierCode=وینڈر کوڈ غلط ہے۔ CustomerCodeModel=کسٹمر کوڈ ماڈل SupplierCodeModel=وینڈر کوڈ ماڈل Gencod=بارکوڈ +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=پروفیسر آئی ڈی 1 ProfId2Short=پروفیسر آئی ڈی 2 @@ -159,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=- @@ -359,7 +364,7 @@ ListOfThirdParties=تیسرے فریق کی فہرست ShowCompany=تیسری پارٹی ShowContact=رابطہ کا پتہ ContactsAllShort=تمام (کوئی فلٹر نہیں) -ContactType=رابطے کی قسم +ContactType=Contact role ContactForOrders=آرڈر کا رابطہ ContactForOrdersOrShipments=آرڈر یا شپمنٹ کا رابطہ ContactForProposals=تجویز کا رابطہ @@ -439,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 1ead4c31257..f442eed2da1 100644 --- a/htdocs/langs/ur_PK/compta.lang +++ b/htdocs/langs/ur_PK/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=کیا آپ واقعی اس تنخواہ کارڈ کو بطور DeleteSocialContribution=سماجی یا مالی ٹیکس کی ادائیگی کو حذف کریں۔ DeleteVAT=VAT اعلامیہ حذف کریں۔ DeleteSalary=تنخواہ کارڈ حذف کریں۔ +DeleteVariousPayment=Delete a various payment ConfirmDeleteSocialContribution=کیا آپ واقعی اس سماجی/مالیاتی ٹیکس کی ادائیگی کو حذف کرنا چاہتے ہیں؟ ConfirmDeleteVAT=کیا آپ واقعی اس VAT ڈیکلریشن کو حذف کرنا چاہتے ہیں؟ -ConfirmDeleteSalary=کیا آپ واقعی اس تنخواہ کو حذف کرنا چاہتے ہیں؟ +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 پر عزم accounting%s ۔ CalcModeVATEngagement=موڈ %sVAT آمدنی-خرچوں0ecb2ec87f49fz0 @@ -287,9 +289,9 @@ ReportPurchaseTurnover=ٹرن اوور کی انوائس خریدی۔ ReportPurchaseTurnoverCollected=خریداری کا کاروبار جمع ہوا۔ IncludeVarpaysInResults = رپورٹس میں مختلف ادائیگیاں شامل کریں۔ IncludeLoansInResults = رپورٹوں میں قرضوں کو شامل کریں۔ -InvoiceLate30Days = رسیدیں تاخیر سے (> 30 دن) -InvoiceLate15Days = رسیدیں تاخیر سے (15 سے 30 دن) -InvoiceLateMinus15Days = رسیدیں تاخیر سے (<15 دن) +InvoiceLate30Days = Late (> 30 days) +InvoiceLate15Days = Late (15 to 30 days) +InvoiceLateMinus15Days = Late (< 15 days) InvoiceNotLate = جمع کیا جائے گا (<15 دن) InvoiceNotLate15Days = جمع کیا جائے گا (15 سے 30 دن) InvoiceNotLate30Days = جمع کیا جائے گا (> 30 دن) 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/exports.lang b/htdocs/langs/ur_PK/exports.lang index ba8d192060d..5b38ebc60d1 100644 --- a/htdocs/langs/ur_PK/exports.lang +++ b/htdocs/langs/ur_PK/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=لائن کی قسم (0=پروڈکٹ، 1=سروس) FileWithDataToImport=درآمد کرنے کے لیے ڈیٹا کے ساتھ فائل کریں۔ FileToImport=درآمد کرنے کے لیے سورس فائل FileMustHaveOneOfFollowingFormat=درآمد کرنے کے لیے فائل میں درج ذیل فارمیٹس میں سے ایک ہونا ضروری ہے۔ -DownloadEmptyExample=فیلڈ مواد کی معلومات کے ساتھ ٹیمپلیٹ فائل ڈاؤن لوڈ کریں۔ -StarAreMandatory=* لازمی فیلڈز ہیں۔ +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 آئیکن پر کلک کرکے امپورٹ فائل فارمیٹ کے طور پر استعمال کرنے کے لیے فائل فارمیٹ کا انتخاب کریں... ChooseFileToImport=فائل اپ لوڈ کریں پھر %s آئیکن پر کلک کریں تاکہ فائل کو سورس امپورٹ فائل کے طور پر منتخب کیا جا سکے۔ SourceFileFormat=ماخذ فائل کی شکل @@ -135,3 +135,6 @@ NbInsert=داخل کردہ لائنوں کی تعداد: %s NbUpdate=اپ ڈیٹ کردہ لائنوں کی تعداد: %s MultipleRecordFoundWithTheseFilters=ان فلٹرز کے ساتھ متعدد ریکارڈز ملے ہیں: %s StocksWithBatch=بیچ/سیریل نمبر والی مصنوعات کا اسٹاک اور مقام (گودام) +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: 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/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 e8847af94c0..167e05d0c94 100644 --- a/htdocs/langs/ur_PK/install.lang +++ b/htdocs/langs/ur_PK/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=کنفیگریشن فائل %s قابل تحری ConfFileIsWritable=کنفیگریشن فائل %s قابل تحریر ہے۔ ConfFileMustBeAFileNotADir=کنفیگریشن فائل %s فائل ہونی چاہیے، ڈائریکٹری نہیں۔ ConfFileReload=کنفیگریشن فائل سے پیرامیٹرز کو دوبارہ لوڈ کرنا۔ +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=یہ پی ایچ پی سیشن کو سپورٹ کرتا ہے۔ @@ -16,13 +17,6 @@ PHPMemoryOK=آپ کی پی ایچ پی کی زیادہ سے زیادہ سیشن PHPMemoryTooLow=آپ کی پی ایچ پی کی زیادہ سے زیادہ سیشن میموری %s بائٹس پر سیٹ ہے۔ یہ بہت کم ہے۔ اپنے php.ini کو memory_limit پیرامیٹر کو کم از کم 87fz087fz907fz07fz07fz7fz097fz میں تبدیل کریں۔ Recheck=مزید تفصیلی ٹیسٹ کے لیے یہاں کلک کریں۔ ErrorPHPDoesNotSupportSessions=آپ کی پی ایچ پی کی تنصیب سیشن کو سپورٹ نہیں کرتی ہے۔ Dolibarr کو کام کرنے کی اجازت دینے کے لیے یہ خصوصیت درکار ہے۔ اپنے پی ایچ پی سیٹ اپ اور سیشن ڈائرکٹری کی اجازتوں کو چیک کریں۔ -ErrorPHPDoesNotSupportGD=آپ کی پی ایچ پی کی تنصیب جی ڈی گرافیکل فنکشنز کو سپورٹ نہیں کرتی ہے۔ کوئی گراف دستیاب نہیں ہوں گے۔ -ErrorPHPDoesNotSupportCurl=آپ کی پی ایچ پی کی تنصیب کرل کو سپورٹ نہیں کرتی ہے۔ -ErrorPHPDoesNotSupportCalendar=آپ کی پی ایچ پی کی تنصیب پی ایچ پی کیلنڈر کی توسیع کو سپورٹ نہیں کرتی ہے۔ -ErrorPHPDoesNotSupportUTF8=آپ کی پی ایچ پی کی تنصیب UTF8 فنکشنز کو سپورٹ نہیں کرتی ہے۔ Dolibarr صحیح طریقے سے کام نہیں کر سکتا. Dolibarr انسٹال کرنے سے پہلے اسے حل کریں۔ -ErrorPHPDoesNotSupportIntl=آپ کی پی ایچ پی کی تنصیب Intl افعال کو سپورٹ نہیں کرتی ہے۔ -ErrorPHPDoesNotSupportMbstring=آپ کی پی ایچ پی کی تنصیب mbstring فنکشنز کو سپورٹ نہیں کرتی ہے۔ -ErrorPHPDoesNotSupportxDebug=آپ کی پی ایچ پی کی تنصیب توسیعی ڈیبگ فنکشنز کو سپورٹ نہیں کرتی ہے۔ ErrorPHPDoesNotSupport=آپ کی پی ایچ پی کی تنصیب %s فنکشنز کو سپورٹ نہیں کرتی ہے۔ ErrorDirDoesNotExists=ڈائرکٹری %s موجود نہیں ہے۔ ErrorGoBackAndCorrectParameters=واپس جائیں اور پیرامیٹرز کو چیک/درست کریں۔ @@ -30,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..927a82db1e7 100644 --- a/htdocs/langs/ur_PK/loan.lang +++ b/htdocs/langs/ur_PK/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=مالی وابستگی InterestAmount=دلچسپی CapitalRemain=سرمایہ باقی ہے۔ TermPaidAllreadyPaid = یہ اصطلاح پہلے سے ادا کی جاتی ہے۔ -CantUseScheduleWithLoanStartedToPaid = ادائیگی شروع ہونے کے ساتھ قرض کے لیے شیڈیولر استعمال نہیں کر سکتے +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = اگر آپ شیڈول استعمال کرتے ہیں تو آپ دلچسپی میں ترمیم نہیں کر سکتے # Admin ConfigLoan=ماڈیول قرض کی ترتیب diff --git a/htdocs/langs/ur_PK/main.lang b/htdocs/langs/ur_PK/main.lang index 8e3147fb32f..857ccb2222d 100644 --- a/htdocs/langs/ur_PK/main.lang +++ b/htdocs/langs/ur_PK/main.lang @@ -244,6 +244,7 @@ Designation=تفصیل DescriptionOfLine=لائن کی تفصیل DateOfLine=لائن کی تاریخ DurationOfLine=لائن کا دورانیہ +ParentLine=Parent line ID Model=دستاویز ٹیمپلیٹ DefaultModel=ڈیفالٹ دستاویز ٹیمپلیٹ Action=تقریب @@ -344,7 +345,7 @@ KiloBytes=کلو بائٹس MegaBytes=میگا بائٹس GigaBytes=گیگا بائٹس TeraBytes=ٹیرا بائٹس -UserAuthor=کی طرف سے مقرر +UserAuthor=Created by UserModif=کی طرف سے اپ ڈیٹ b=ب Kb=Kb @@ -517,6 +518,7 @@ or=یا Other=دیگر Others=دوسرے OtherInformations=دوسری معلومات +Workflow=Workflow Quantity=مقدار Qty=مقدار ChangedBy=کی طرف سے تبدیل @@ -619,6 +621,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 +712,7 @@ FeatureDisabled=خصوصیت غیر فعال ہے۔ MoveBox=ویجیٹ کو منتقل کریں۔ Offered=کی پیشکش کی NotEnoughPermissions=آپ کو اس کارروائی کی اجازت نہیں ہے۔ +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=سیشن کا نام Method=طریقہ Receive=وصول کریں۔ @@ -798,6 +802,7 @@ URLPhoto=تصویر/لوگو کا URL SetLinkToAnotherThirdParty=کسی اور تیسرے فریق سے لنک کریں۔ LinkTo=سے لنک کریں۔ LinkToProposal=تجویز کا لنک +LinkToExpedition= Link to expedition LinkToOrder=آرڈر کے لیے لنک LinkToInvoice=انوائس سے لنک کریں۔ LinkToTemplateInvoice=ٹیمپلیٹ انوائس کا لنک @@ -1164,3 +1169,14 @@ 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 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/ur_PK/members.lang b/htdocs/langs/ur_PK/members.lang index 990e0431813..00b10b8ea83 100644 --- a/htdocs/langs/ur_PK/members.lang +++ b/htdocs/langs/ur_PK/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=ایک اور رکن (نام: %s ErrorUserPermissionAllowsToLinksToItselfOnly=حفاظتی وجوہات کی بناء پر، آپ کو تمام صارفین میں ترمیم کرنے کی اجازت دی جانی چاہیے تاکہ کسی رکن کو کسی ایسے صارف سے جوڑ سکیں جو آپ کا نہیں ہے۔ SetLinkToUser=Dolibarr صارف سے لنک کریں۔ SetLinkToThirdParty=ڈولیبر تھرڈ پارٹی سے لنک کریں۔ -MembersCards=ممبروں کے لیے بزنس کارڈ +MembersCards=Generation of cards for members MembersList=ممبران کی فہرست MembersListToValid=مسودہ کے ارکان کی فہرست (توثیق کی جائے گی) MembersListValid=درست اراکین کی فہرست @@ -35,7 +35,8 @@ DateEndSubscription=رکنیت کی آخری تاریخ EndSubscription=رکنیت کا خاتمہ SubscriptionId=تعاون کی شناخت WithoutSubscription=شراکت کے بغیر -MemberId=رکن کی شناخت +MemberId=Member Id +MemberRef=Member Ref NewMember=نیا رکن MemberType=ممبر کی قسم MemberTypeId=ممبر کی قسم کی شناخت @@ -71,6 +72,12 @@ MemberTypeCanNotBeDeleted=ممبر کی قسم کو حذف نہیں کیا جا NewSubscription=نئی شراکت NewSubscriptionDesc=یہ فارم آپ کو فاؤنڈیشن کے نئے رکن کے طور پر اپنی رکنیت کو ریکارڈ کرنے کی اجازت دیتا ہے۔ اگر آپ اپنی سبسکرپشن کی تجدید کرنا چاہتے ہیں (اگر پہلے ہی ممبر ہیں)، تو براہ کرم اس کے بجائے فاؤنڈیشن بورڈ سے ای میل %s سے رابطہ کریں۔ Subscription=شراکت +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=شراکتیں SubscriptionLate=دیر SubscriptionNotReceived=شراکت کبھی نہیں ملی @@ -135,7 +142,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=کسی مہمان کے خودکار تحریر کی صورت میں موصول ہونے والی اطلاعی ای میل کا موضوع @@ -159,11 +166,11 @@ HTPasswordExport=htpassword فائل جنریشن NoThirdPartyAssociatedToMember=اس رکن کے ساتھ کوئی تیسرا فریق وابستہ نہیں ہے۔ MembersAndSubscriptions=اراکین اور تعاون MoreActions=ریکارڈنگ پر تکمیلی کارروائی -MoreActionsOnSubscription=کسی شراکت کو ریکارڈ کرتے وقت بطور ڈیفالٹ تجویز کردہ تکمیلی کارروائی +MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution MoreActionBankDirect=بینک اکاؤنٹ پر براہ راست اندراج بنائیں MoreActionBankViaInvoice=ایک انوائس بنائیں، اور بینک اکاؤنٹ پر ادائیگی کریں۔ MoreActionInvoiceOnly=بغیر ادائیگی کے ایک رسید بنائیں -LinkToGeneratedPages=وزٹ کارڈز بنائیں +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=یہ اسکرین آپ کو اپنے تمام ممبران یا کسی خاص ممبر کے لیے بزنس کارڈ کے ساتھ پی ڈی ایف فائلیں بنانے کی اجازت دیتی ہے۔ DocForAllMembersCards=تمام اراکین کے لیے بزنس کارڈ بنائیں DocForOneMemberCards=کسی خاص ممبر کے لیے بزنس کارڈ بنائیں @@ -198,7 +205,8 @@ NbOfSubscriptions=تعاون کی تعداد AmountOfSubscriptions=عطیات سے جمع کی گئی رقم TurnoverOrBudget=ٹرن اوور (کمپنی کے لیے) یا بجٹ (فاؤنڈیشن کے لیے) DefaultAmount=شراکت کی طے شدہ رقم -CanEditAmount=وزیٹر اپنی شراکت کی رقم کا انتخاب/ترمیم کر سکتا ہے۔ +CanEditAmount=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=اراکین کے اعداد و شمار فطرت کے لحاظ سے @@ -218,3 +226,5 @@ XExternalUserCreated=%s بیرونی صارف (صارفین) بنائے گئے۔ ForceMemberNature=فورس ممبر کی نوعیت (انفرادی یا کارپوریشن) CreateDolibarrLoginDesc=اراکین کے لیے صارف لاگ ان کی تخلیق انہیں ایپلی کیشن سے منسلک ہونے کی اجازت دیتی ہے۔ دی گئی اجازتوں پر انحصار کرتے ہوئے، وہ، مثال کے طور پر، خود اپنی فائل سے مشورہ کرنے یا اس میں ترمیم کرنے کے قابل ہوں گے۔ CreateDolibarrThirdPartyDesc=فریق ثالث قانونی ادارہ ہے جو انوائس پر استعمال کیا جائے گا اگر آپ ہر شراکت کے لیے انوائس بنانے کا فیصلہ کرتے ہیں۔ آپ شراکت کو ریکارڈ کرنے کے عمل کے دوران بعد میں اسے تخلیق کر سکیں گے۔ +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/ur_PK/modulebuilder.lang b/htdocs/langs/ur_PK/modulebuilder.lang index d5ebc19f4a4..e36a90e1070 100644 --- a/htdocs/langs/ur_PK/modulebuilder.lang +++ b/htdocs/langs/ur_PK/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=یہ ٹول صرف تجربہ کار صارفین یا ڈویلپرز کے ذریعہ استعمال کیا جانا چاہئے۔ یہ آپ کے اپنے ماڈیول کو بنانے یا اس میں ترمیم کرنے کے لیے افادیت فراہم کرتا ہے۔ متبادل مینوئل ڈویلپمنٹ کے لیے دستاویزات یہاں ہے۔ -EnterNameOfModuleDesc=بغیر اسپیس کے تخلیق کرنے کے لیے ماڈیول/ایپلی کیشن کا نام درج کریں۔ الفاظ کو الگ کرنے کے لیے بڑے حروف کا استعمال کریں (مثال کے طور پر: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=بغیر اسپیس کے تخلیق کرنے کے لیے آبجیکٹ کا نام درج کریں۔ الفاظ کو الگ کرنے کے لیے بڑے کا استعمال کریں (مثال کے طور پر: MyObject، طالب علم، استاد...)۔ CRUD کلاس فائل، بلکہ API فائل، آبجیکٹ کی فہرست/شامل/ترمیم/حذف کرنے کے لیے صفحات اور SQL فائلیں تیار کی جائیں گی۔ +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=وہ راستہ جہاں ماڈیولز تیار/ترمیم کیے جاتے ہیں (بیرونی ماڈیولز کے لیے پہلی ڈائریکٹری %s میں بیان کی گئی ہے): %s ModuleBuilderDesc3=تیار کردہ/ قابل تدوین ماڈیولز ملے: %s ModuleBuilderDesc4=جب فائل %s ماڈیول ڈائرکٹری کے روٹ میں موجود ہوتی ہے تو ایک ماڈیول کو 'ایڈیٹ ایبل' کے طور پر پایا جاتا ہے۔ NewModule=نیا ماڈیول NewObjectInModulebuilder=نیا اعتراض +NewDictionary=New dictionary ModuleKey=ماڈیول کلید ObjectKey=آبجیکٹ کلید +DicKey=Dictionary key ModuleInitialized=ماڈیول شروع کر دیا گیا۔ FilesForObjectInitialized=نئی آبجیکٹ '%s' کے لیے فائلیں شروع کی گئیں۔ FilesForObjectUpdated=آبجیکٹ '%s' کے لیے فائلیں اپ ڈیٹ ہو گئیں (.sql فائلیں اور .class.php فائل) @@ -52,7 +55,7 @@ LanguageFile=زبان کے لیے فائل ObjectProperties=آبجیکٹ پراپرٹیز ConfirmDeleteProperty=کیا آپ واقعی %s پراپرٹی کو حذف کرنا چاہتے ہیں؟ یہ پی ایچ پی کلاس میں کوڈ کو تبدیل کرے گا لیکن آبجیکٹ کی ٹیبل تعریف سے کالم کو بھی ہٹا دے گا۔ NotNull=NULL نہیں۔ -NotNullDesc=1= ڈیٹا بیس کو NOT NULL پر سیٹ کریں۔ -1=نل ویلیوز کی اجازت دیں اور اگر خالی ہو تو NULL (''یا 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='تمام تلاش کریں' کے لیے استعمال کیا جاتا ہے DatabaseIndex=ڈیٹا بیس انڈیکس FileAlreadyExists=فائل %s پہلے سے موجود ہے۔ @@ -94,7 +97,7 @@ LanguageDefDesc=اس فائل میں درج کریں، تمام کلید اور MenusDefDesc=اپنے ماڈیول کے ذریعہ فراہم کردہ مینو کی وضاحت یہاں کریں۔ DictionariesDefDesc=یہاں آپ کے ماڈیول کے ذریعہ فراہم کردہ لغات کی وضاحت کریں۔ PermissionsDefDesc=یہاں آپ کے ماڈیول کے ذریعہ فراہم کردہ نئی اجازتوں کی وضاحت کریں۔ -MenusDefDescTooltip=آپ کے ماڈیول/ایپلی کیشن کے ذریعہ فراہم کردہ مینو کی تعریف $this->مینوز میں ماڈیول ڈسکرپٹر فائل میں کی گئی ہے۔ آپ اس فائل کو دستی طور پر ترمیم کرسکتے ہیں یا ایمبیڈڈ ایڈیٹر استعمال کرسکتے ہیں۔

    نوٹ: ایک بار وضاحت (اور ماڈیول دوبارہ چالو) ہو جانے کے بعد، مینیو ایڈمنسٹریٹر صارفین کے لیے %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=آپ کے ماڈیول/ایپلی کیشن کے ذریعے فراہم کردہ لغات کی تعریف $this->ڈکشنریز میں ماڈیول ڈسکرپٹر فائل میں کی گئی ہے۔ آپ اس فائل کو دستی طور پر ایڈٹ کرسکتے ہیں یا ایمبیڈڈ ایڈیٹر استعمال کرسکتے ہیں۔

    نوٹ: ایک بار وضاحت (اور ماڈیول دوبارہ چالو) ہونے کے بعد، لغات بھی سیٹ اپ ایریا میں %s پر ایڈمنسٹریٹر صارفین کو دکھائی دیتی ہیں۔ PermissionsDefDescTooltip=آپ کے ماڈیول/ایپلی کیشن کے ذریعے فراہم کردہ اجازتوں کی تعریف $this->Rights میں ماڈیول ڈسکرپٹر فائل میں کی گئی ہے۔ آپ اس فائل کو دستی طور پر ترمیم کرسکتے ہیں یا ایمبیڈڈ ایڈیٹر استعمال کرسکتے ہیں۔

    نوٹ: ایک بار وضاحت (اور ماڈیول دوبارہ چالو) ہونے کے بعد، اجازتیں پہلے سے طے شدہ اجازت سیٹ اپ %s میں نظر آتی ہیں۔ HooksDefDesc= module_parts['hooks'] پراپرٹی میں وضاحت کریں، ماڈیول ڈسکرپٹر میں، ہکس کا سیاق و سباق جس کا آپ نظم کرنا چاہتے ہیں (سیاق و سباق کی فہرست '' کوڈ کوڈ میں تلاش کرکے تلاش کی جاسکتی ہے ہک فائل آپ کے ہکڈ فنکشنز کا کوڈ شامل کرنے کے لیے (ہک ایبل فنکشنز کو کور کوڈ میں ' executeHooks ' پر تلاش کرکے تلاش کیا جاسکتا ہے)۔ @@ -110,7 +113,7 @@ DropTableIfEmpty=(اگر خالی ہو تو میز کو تباہ کر دیں) TableDoesNotExists=ٹیبل %s موجود نہیں ہے۔ TableDropped=ٹیبل %s حذف کر دیا گیا۔ InitStructureFromExistingTable=موجودہ ٹیبل کے ڈھانچے کی صف کی سٹرنگ بنائیں -UseAboutPage=کے بارے میں صفحہ کو غیر فعال کریں۔ +UseAboutPage=Do not generate the About page UseDocFolder=دستاویزات کے فولڈر کو غیر فعال کریں۔ UseSpecificReadme=ایک مخصوص ReadMe استعمال کریں۔ ContentOfREADMECustomized=نوٹ: README.md فائل کے مواد کو ModuleBuilder کے سیٹ اپ میں بیان کردہ مخصوص قدر سے تبدیل کر دیا گیا ہے۔ @@ -127,9 +130,9 @@ UseSpecificEditorURL = ایک مخصوص ایڈیٹر URL استعمال کری UseSpecificFamily = ایک مخصوص خاندان کا استعمال کریں UseSpecificAuthor = کسی مخصوص مصنف کا استعمال کریں۔ UseSpecificVersion = ایک مخصوص ابتدائی ورژن استعمال کریں۔ -IncludeRefGeneration=آبجیکٹ کا حوالہ خود بخود تیار ہونا چاہیے۔ -IncludeRefGenerationHelp=اگر آپ حوالہ کے خودکار طور پر جنریشن کا نظم کرنے کے لیے کوڈ شامل کرنا چاہتے ہیں تو اسے چیک کریں۔ -IncludeDocGeneration=میں آبجیکٹ سے کچھ دستاویزات بنانا چاہتا ہوں۔ +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=اگر آپ اسے چیک کرتے ہیں تو ریکارڈ پر "دستاویز تیار کریں" کے باکس کو شامل کرنے کے لیے کچھ کوڈ تیار کیا جائے گا۔ ShowOnCombobox=کومبو باکس میں قدر دکھائیں۔ KeyForTooltip=ٹول ٹپ کے لیے کلید @@ -138,10 +141,15 @@ CSSViewClass=پڑھنے کے فارم کے لیے CSS CSSListClass=فہرست کے لیے سی ایس ایس NotEditable=قابل تدوین نہیں۔ ForeignKey=غیر ملکی چابی -TypeOfFieldsHelp=فیلڈز کی قسم:
    varchar(99)، ڈبل(24,8)، اصلی، متن، HTML، ڈیٹ ٹائم، ٹائم اسٹیمپ، انٹیجر، انٹیجر:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' کا مطلب ہے کہ ہم ریکارڈ بنانے کے لیے کومبو کے بعد ایک + بٹن شامل کرتے ہیں، 'فلٹر' 'status=1 اور fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' ہو سکتا ہے مثال کے طور پر) +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 سے HTML کنورٹر AsciiToPdfConverter=Ascii سے پی ڈی ایف کنورٹر TableNotEmptyDropCanceled=ٹیبل خالی نہیں ہے۔ ڈراپ منسوخ کر دیا گیا ہے۔ ModuleBuilderNotAllowed=ماڈیول بلڈر دستیاب ہے لیکن آپ کے صارف کو اس کی اجازت نہیں ہے۔ ImportExportProfiles=پروفائلز درآمد اور برآمد کریں۔ -ValidateModBuilderDesc=اگر اس فیلڈ کو $this->validateField() یا 0 سے توثیق کرنے کی ضرورت ہو تو 1 ڈالیں +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. 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/other.lang b/htdocs/langs/ur_PK/other.lang index 8ea3e43b1cb..76b2eabcc28 100644 --- a/htdocs/langs/ur_PK/other.lang +++ b/htdocs/langs/ur_PK/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=یا اپنا پروفائل بنائیں
    (دست DemoFundation=فاؤنڈیشن کے ممبروں کا نظم کریں۔ DemoFundation2=فاؤنڈیشن کے ممبران اور بینک اکاؤنٹ کا نظم کریں۔ DemoCompanyServiceOnly=صرف کمپنی یا فری لانس سیلنگ سروس -DemoCompanyShopWithCashDesk=کیش ڈیسک کے ساتھ دکان کا انتظام کریں۔ +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=پوائنٹ آف سیلز کے ساتھ مصنوعات کی فروخت کی خریداری کریں۔ DemoCompanyManufacturing=کمپنی کی تیاری کی مصنوعات DemoCompanyAll=متعدد سرگرمیوں والی کمپنی (تمام اہم ماڈیولز) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=اس کے اعدادوشمار دیکھنے کے ConfirmBtnCommonContent = کیا آپ واقعی "%s" کرنا چاہتے ہیں؟ ConfirmBtnCommonTitle = اپنے عمل کی تصدیق کریں۔ CloseDialog = بند کریں +Autofill = Autofill diff --git a/htdocs/langs/ur_PK/projects.lang b/htdocs/langs/ur_PK/projects.lang index 304a2e0ad22..0b5f6827b8b 100644 --- a/htdocs/langs/ur_PK/projects.lang +++ b/htdocs/langs/ur_PK/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=پروجیکٹ لیبل ProjectsArea=پروجیکٹس ایریا ProjectStatus=پروجیکٹ کی حیثیت SharedProject=ہر کوئی -PrivateProject=پروجیکٹ کے رابطے +PrivateProject=Assigned contacts ProjectsImContactFor=پروجیکٹس جن کے لیے میں واضح طور پر ایک رابطہ ہوں۔ AllAllowedProjects=تمام پروجیکٹ جو میں پڑھ سکتا ہوں (میرا + عوامی) AllProjects=تمام منصوبے @@ -190,6 +190,7 @@ PlannedWorkload=منصوبہ بند کام کا بوجھ PlannedWorkloadShort=کام کا بوجھ ProjectReferers=متعلقہ اشیاء ProjectMustBeValidatedFirst=پہلے پروجیکٹ کی توثیق ہونی چاہیے۔ +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=وقت مختص کرنے کے لیے صارف کے وسائل کو پروجیکٹ کے رابطے کے طور پر تفویض کریں۔ InputPerDay=ان پٹ فی دن InputPerWeek=ان پٹ فی ہفتہ @@ -258,7 +259,7 @@ TimeSpentInvoiced=وقت گزارا ہوا بل TimeSpentForIntervention=وقت گزارا۔ TimeSpentForInvoice=وقت گزارا۔ OneLinePerUser=فی صارف ایک لائن -ServiceToUseOnLines=لائنوں پر استعمال کرنے کے لیے سروس +ServiceToUseOnLines=Service to use on lines by default InvoiceGeneratedFromTimeSpent=انوائس %s پروجیکٹ پر خرچ کیے گئے وقت سے تیار کیا گیا ہے InterventionGeneratedFromTimeSpent=مداخلت %s پروجیکٹ پر خرچ کیے گئے وقت سے پیدا کی گئی ہے۔ ProjectBillTimeDescription=چیک کریں کہ آیا آپ پروجیکٹ کے کاموں پر ٹائم شیٹ درج کرتے ہیں اور آپ پروجیکٹ کے کسٹمر کو بل دینے کے لیے ٹائم شیٹ سے انوائس (انوائسز) بنانے کا ارادہ رکھتے ہیں (یہ چیک نہ کریں کہ آیا آپ انوائس بنانے کا ارادہ رکھتے ہیں جو درج کردہ ٹائم شیٹ پر مبنی نہیں ہے)۔ نوٹ: انوائس بنانے کے لیے، پراجیکٹ کے 'وقت گزارا ہوا' ٹیب پر جائیں اور شامل کرنے کے لیے لائنوں کو منتخب کریں۔ @@ -287,3 +288,10 @@ ProjectTasksWithoutTimeSpent=بغیر وقت کے پروجیکٹ کے کام FormForNewLeadDesc=ہم سے رابطہ کرنے کے لیے درج ذیل فارم کو پُر کرنے کا شکریہ۔ آپ ہمیں براہ راست %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/ur_PK/propal.lang b/htdocs/langs/ur_PK/propal.lang index e91871ae533..2b486456f0c 100644 --- a/htdocs/langs/ur_PK/propal.lang +++ b/htdocs/langs/ur_PK/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 کو کھولنا چاہتے ہیں؟ @@ -85,13 +86,26 @@ ProposalCustomerSignature=تحریری قبولیت، کمپنی کا مہر، ProposalsStatisticsSuppliers=وینڈر کی تجویز کے اعدادوشمار CaseFollowedBy=اس کے بعد کیس SignedOnly=صرف دستخط شدہ +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=دستخط +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=تجویز کی شناخت IdProduct=پروڈکٹ کی شناخت -PrParentLine=پروپوزل پیرنٹ لائن LineBuyPriceHT=لائن کے لیے ٹیکس کی قیمت کی رقم خریدیں۔ SignPropal=تجویز قبول کریں۔ RefusePropal=تجویز سے انکار Sign=دستخط +NoSign=Set not signed PropalAlreadySigned=تجویز پہلے ہی قبول کر لی گئی ہے۔ PropalAlreadyRefused=تجویز پہلے ہی مسترد کر دی گئی۔ PropalSigned=تجویز منظور کر لی گئی۔ diff --git a/htdocs/langs/ur_PK/ticket.lang b/htdocs/langs/ur_PK/ticket.lang index 10ccf19600c..36c951e7e57 100644 --- a/htdocs/langs/ur_PK/ticket.lang +++ b/htdocs/langs/ur_PK/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=ایک عوامی انٹرفیس جس کے لیے کسی شن TicketSetupDictionaries=ٹکٹ کی قسم، شدت اور تجزیاتی کوڈ لغات سے قابل ترتیب ہیں۔ TicketParamModule=ماڈیول متغیر سیٹ اپ TicketParamMail=ای میل سیٹ اپ -TicketEmailNotificationFrom=سے اطلاعی ای میل -TicketEmailNotificationFromHelp=ٹکٹ کے پیغام کے جواب میں مثال کے طور پر استعمال کیا جاتا ہے۔ -TicketEmailNotificationTo=نوٹیفکیشنز کو ای میل کریں۔ -TicketEmailNotificationToHelp=اس ایڈریس پر ای میل اطلاعات بھیجیں۔ +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 TicketNewEmailBodyLabel=ٹکٹ بنانے کے بعد ٹیکسٹ میسج بھیجا گیا۔ TicketNewEmailBodyHelp=یہاں بیان کردہ متن عوامی انٹرفیس سے ایک نیا ٹکٹ بنانے کی تصدیق کرنے والے ای میل میں داخل کیا جائے گا۔ ٹکٹ کی مشاورت سے متعلق معلومات خود بخود شامل ہوجاتی ہیں۔ TicketParamPublicInterface=عوامی انٹرفیس سیٹ اپ @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=صعودی تاریخ کے حساب سے ترتیب دیں۔ OrderByDateDesc=نزولی تاریخ کے مطابق ترتیب دیں۔ ShowAsConversation=گفتگو کی فہرست کے بطور دکھائیں۔ MessageListViewType=ٹیبل لسٹ کے بطور دکھائیں۔ +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=وصول کنندہ خالی ہے TicketGoIntoContactTab=براہ کرم انہیں منتخب کرنے کے لیے "رابطے" ٹیب میں جائیں۔ TicketMessageMailIntro=تعارف TicketMessageMailIntroHelp=یہ متن صرف ای میل کے شروع میں شامل کیا گیا ہے اور محفوظ نہیں کیا جائے گا۔ -TicketMessageMailIntroLabelAdmin=ای میل بھیجتے وقت پیغام کا تعارف -TicketMessageMailIntroText=ہیلو،
    ٹکٹ پر ایک نیا جواب بھیجا گیا جس سے آپ رابطہ کرتے ہیں۔ یہ پیغام ہے:
    -TicketMessageMailIntroHelpAdmin=یہ متن ٹکٹ کے جواب کے متن سے پہلے داخل کیا جائے گا۔ +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=

    مخلص،

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=جوابی ای میل کے دستخط TicketMessageMailSignatureHelpAdmin=یہ متن جوابی پیغام کے بعد داخل کیا جائے گا۔ TicketMessageHelp=ٹکٹ کارڈ پر پیغام کی فہرست میں صرف یہ متن محفوظ کیا جائے گا۔ @@ -238,9 +252,16 @@ TicketChangeStatus=حیثیت تبدیل کریں۔ TicketConfirmChangeStatus=حالت کی تبدیلی کی تصدیق کریں: %s؟ TicketLogStatusChanged=حالت بدل گئی: %s سے %s TicketNotNotifyTiersAtCreate=بنانے پر کمپنی کو مطلع نہ کریں۔ +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact 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. # # Logs @@ -268,8 +289,9 @@ TicketNewEmailBody=یہ ایک خودکار ای میل ہے اس بات کی ت TicketNewEmailBodyCustomer=یہ ایک خودکار ای میل ہے اس بات کی تصدیق کرنے کے لیے کہ ابھی آپ کے اکاؤنٹ میں ایک نیا ٹکٹ بنایا گیا ہے۔ TicketNewEmailBodyInfosTicket=ٹکٹ کی نگرانی کے لیے معلومات TicketNewEmailBodyInfosTrackId=ٹکٹ ٹریکنگ نمبر: %s -TicketNewEmailBodyInfosTrackUrl=آپ اوپر دیے گئے لنک پر کلک کرکے ٹکٹ کی پیشرفت دیکھ سکتے ہیں۔ +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=آپ درج ذیل لنک پر کلک کرکے مخصوص انٹرفیس میں ٹکٹ کی پیشرفت دیکھ سکتے ہیں۔ +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=براہ کرم اس ای میل کا براہ راست جواب نہ دیں! انٹرفیس میں جواب دینے کے لیے لنک کا استعمال کریں۔ TicketPublicInfoCreateTicket=یہ فارم آپ کو ہمارے انتظامی نظام میں سپورٹ ٹکٹ ریکارڈ کرنے کی اجازت دیتا ہے۔ TicketPublicPleaseBeAccuratelyDescribe=براہ کرم مسئلہ کی درست وضاحت کریں۔ ہمیں آپ کی درخواست کی درست شناخت کرنے کی اجازت دینے کے لیے زیادہ سے زیادہ معلومات فراہم کریں۔ @@ -291,6 +313,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: TicketNotificationEmailSubject=ٹکٹ %s اپ ڈیٹ ہو گیا۔ TicketNotificationEmailBody=یہ آپ کو مطلع کرنے کے لیے ایک خودکار پیغام ہے کہ ٹکٹ %s کو ابھی اپ ڈیٹ کیا گیا ہے۔ TicketNotificationRecipient=اطلاع وصول کنندہ diff --git a/htdocs/langs/ur_PK/users.lang b/htdocs/langs/ur_PK/users.lang index 9aeae4e7665..18dbee63458 100644 --- a/htdocs/langs/ur_PK/users.lang +++ b/htdocs/langs/ur_PK/users.lang @@ -114,7 +114,7 @@ UserLogoff=صارف لاگ آؤٹ UserLogged=صارف لاگ ان DateOfEmployment=ملازمت کی تاریخ DateEmployment=روزگار -DateEmploymentstart=ملازمت شروع ہونے کی تاریخ +DateEmploymentStart=Employment Start Date DateEmploymentEnd=ملازمت کی آخری تاریخ RangeOfLoginValidity=رسائی کی درستگی کی تاریخ کی حد CantDisableYourself=آپ اپنے صارف کے ریکارڈ کو غیر فعال نہیں کر سکتے @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=پہلے سے طے شدہ طور پر، تصدی UserPersonalEmail=ذاتی ای میل UserPersonalMobile=ذاتی موبائل فون WarningNotLangOfInterface=تنبیہ، یہ وہ مرکزی زبان ہے جو صارف بولتا ہے، نہ کہ اس انٹرفیس کی زبان جسے دیکھنے کے لیے اس نے چنا ہے۔ اس صارف کے ذریعے نظر آنے والی انٹرفیس کی زبان کو تبدیل کرنے کے لیے، %s ٹیب پر جائیں +DateLastLogin=Date last login +DatePreviousLogin=Date previous login +IPLastLogin=IP last login +IPPreviousLogin=IP previous login diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index 7c04ed15532..3a43fb98d83 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=O'rnatishda aniqlanmagan obuna to'lo AccountancyArea=Buxgalteriya hisobi maydoni AccountancyAreaDescIntro=Buxgalteriya modulidan foydalanish bir necha bosqichda amalga oshiriladi: AccountancyAreaDescActionOnce=Quyidagi harakatlar odatda faqat bir marta yoki yiliga bir marta amalga oshiriladi ... -AccountancyAreaDescActionOnceBis=Kelgusida sizning vaqtingizni tejash uchun jurnalistikani rasmiylashtirishda to'g'ri sukut bo'yicha buxgalteriya hisobini taklif qilish orqali (Jurnallarda va Bosh daftarda yozuvlarni yozish) taklif qilish kerak. +AccountancyAreaDescActionOnceBis=Kelajakda buxgalteriya hisobiga ma'lumotlarni uzatishda avtomatik ravishda to'g'ri standart hisob qaydnomasini taklif qilish orqali vaqtni tejash uchun keyingi qadamlar bajarilishi kerak. AccountancyAreaDescActionFreq=Quyidagi harakatlar odatda har oyda, haftada yoki kunda juda katta kompaniyalar uchun amalga oshiriladi ... -AccountancyAreaDescJournalSetup=QADAM %s: %s menyusidan jurnallar ro'yxatining tarkibini yarating yoki tekshiring. +AccountancyAreaDescJournalSetup=QADAM %s: %s menyusidan jurnal ro'yxati tarkibini tekshiring AccountancyAreaDescChartModel=QADAM %s: hisob jadvalining modeli mavjudligini tekshiring yoki menyudan %s yarating. AccountancyAreaDescChart=QADAM %s: tanlang va | yoki hisob qaydnomangizni %s menyusidan to'ldiring. AccountancyAreaDescVat=QADAM %s: har bir QQS stavkasi bo'yicha buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescDefault=QADAM %s: sukut bo'yicha buxgalteriya hisoblarini belgilang. Buning uchun %s menyu yozuvidan foydalaning. -AccountancyAreaDescExpenseReport=QADAM %s: har bir hisobot turi bo'yicha buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. +AccountancyAreaDescExpenseReport=QADAM %s: Xarajatlar hisobotining har bir turi uchun standart buxgalteriya hisoblarini belgilang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescSal=QADAM %s: Ish haqini to'lash bo'yicha buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. -AccountancyAreaDescContrib=QADAM %s: Maxsus xarajatlar (turli xil soliqlar) bo'yicha buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. +AccountancyAreaDescContrib=QADAM %s: Soliqlar uchun standart buxgalteriya hisoblarini belgilang (maxsus xarajatlar). Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescDonation=QADAM %s: xayr-ehson uchun buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescSubscription=QADAM %s: a'zo obuna uchun buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescMisc=QADAM %s: Turli xil operatsiyalar uchun majburiy sukut qaydnomasi va buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescLoan=QADAM %s: ssudalar bo'yicha ssudalarning buxgalteriya hisobini belgilang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescBank=QADAM %s: har bir bank va moliyaviy hisob uchun buxgalteriya hisobi va jurnal kodini aniqlang. Buning uchun %s menyu yozuvidan foydalaning. -AccountancyAreaDescProd=QADAM %s: Mahsulotlaringiz / xizmatlaringiz bo'yicha buxgalteriya hisoblarini aniqlang. Buning uchun %s menyu yozuvidan foydalaning. +AccountancyAreaDescProd=QADAM %s: Mahsulotlar/xizmatlaringizda buxgalteriya hisoblarini aniqlang. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescBind=QADAM %s: mavjud %s satrlari bilan buxgalteriya hisobi o'rtasidagi bog'lanishni tekshiring, shuning uchun dastur bir marta bosish bilan Ledger-dagi operatsiyalarni jurnalga yozib olish imkoniyatiga ega bo'ladi. To'liq etishmayotgan birikmalar. Buning uchun %s menyu yozuvidan foydalaning. AccountancyAreaDescWriteRecords=QADAM %s: operatsiyalarni kitobga yozing. Buning uchun %s menyusiga o'ting va %s tugmachasini bosing. @@ -112,7 +112,7 @@ MenuAccountancyClosure=Yopish MenuAccountancyValidationMovements=Harakatlarni tasdiqlang ProductsBinding=Mahsulotlar hisoblari TransferInAccounting=Buxgalteriya hisobiga o'tkazish -RegistrationInAccounting=Buxgalteriyada ro'yxatdan o'tish +RegistrationInAccounting=Buxgalteriya hisobida qayd etish Binding=Hisobvaraqlar uchun majburiy CustomersVentilation=Xaridorlarning hisob-fakturasi majburiy SuppliersVentilation=Sotuvchi hisob-fakturasini majburiy ravishda to'ldirish @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Xarajatlar to'g'risidagi hisobotni majburiy ravishda b CreateMvts=Yangi tranzaksiya yarating UpdateMvts=Bitimni o'zgartirish ValidTransaction=Bitimni tasdiqlash -WriteBookKeeping=Buxgalteriya hisobidagi operatsiyalarni ro'yxatdan o'tkazing +WriteBookKeeping=Buxgalteriya hisobida operatsiyalarni qayd etish Bookkeeping=Kitob BookkeepingSubAccount=Subledger AccountBalance=Hisob balansi @@ -161,7 +161,7 @@ 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 @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=Xayriya mablag'larini ro'yxatdan o'tkazish uchun buxg ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Obunalarni ro'yxatdan o'tkazish uchun buxgalteriya hisobi ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Mijozlar depozitini ro'yxatdan o'tkazish uchun sukut bo'yicha buxgalteriya hisobi +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=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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Oldindan belgilangan guruhlar bo'yicha ByPersonalizedAccountGroups=Shaxsiylashtirilgan guruhlar bo'yicha ByYear=Yil bo'yicha NotMatch=O'rnatilmagan -DeleteMvt=Buxgalteriya hisobidan ba'zi operatsion liniyalarni o'chirib tashlang +DeleteMvt=Buxgalteriya hisobidan ba'zi qatorlarni o'chiring DelMonth=O'chirish uchun oy DelYear=O'chirish yili DelJournal=O'chirish uchun jurnal -ConfirmDeleteMvt=Bu yil / oy va / yoki ma'lum bir jurnal uchun buxgalteriya hisobining barcha operatsion yo'nalishlarini o'chirib tashlaydi (kamida bitta mezon talab qilinadi). O'chirilgan yozuvni daftarga qaytarish uchun '%s' xususiyatidan qayta foydalanishingiz kerak bo'ladi. -ConfirmDeleteMvtPartial=Bu operatsiyani buxgalteriya hisobidan o'chirib tashlaydi (bir xil operatsiyaga tegishli barcha operatsion liniyalar o'chiriladi) +ConfirmDeleteMvt=Bu yil/oy va/yoki ma'lum bir jurnal uchun buxgalteriya hisobidagi barcha qatorlarni o'chiradi (kamida bitta mezon talab qilinadi). O'chirilgan yozuvni daftarga qaytarish uchun "%s" funksiyasidan qayta foydalanishingiz kerak bo'ladi. +ConfirmDeleteMvtPartial=Bu buxgalteriya hisobidan tranzaksiyani o'chiradi (bir xil tranzaksiyaga tegishli barcha qatorlar o'chiriladi) FinanceJournal=Finance journal ExpenseReportsJournal=Xarajatlar hisoboti jurnali DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -278,30 +279,31 @@ 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=Tasdiqlanmagan oylar bo'yicha harakatlarning soni va allaqachon ochilgan moliya yillari bilan bu erda maslahatlashing -OverviewOfMovementsNotValidated=1-qadam / harakatlarning umumiy ko'rinishi tasdiqlanmagan. (Moliyaviy yilni yopish uchun zarur) -AllMovementsWereRecordedAsValidated=Barcha harakatlar tasdiqlangan deb qayd etildi -NotAllMovementsCouldBeRecordedAsValidated=Barcha harakatlarni tasdiqlangan deb yozib bo'lmaydi -ValidateMovements=Harakatlarni tasdiqlang +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... 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=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) +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 -MvtNotCorrectlyBalanced=Harakat to'g'ri muvozanatlashtirilmagan. Debit = %s | Kredit = %s +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=Jurnalizatsiya qilish uchun boshqa yozuv yo'q +NoNewRecordSaved=O‘tkazish uchun boshqa rekord yo‘q ListOfProductsWithoutAccountingAccount=Hech qanday buxgalteriya hisobiga bog'lanmagan mahsulotlar ro'yxati ChangeBinding=Majburiylikni o'zgartiring Accounted=Hisob kitobida hisobga olingan NotYetAccounted=Buxgalteriya hisobiga hali o'tkazilmagan ShowTutorial=Qo'llanmani ko'rsatish NotReconciled=Yarashtirilmagan -WarningRecordWithoutSubledgerAreExcluded=Ogohlantirish, subledger hisobi aniqlanmagan barcha operatsiyalar filtrlanadi va ushbu ko'rinishdan chiqarib tashlanadi +WarningRecordWithoutSubledgerAreExcluded=Ogohlantirish, subregger hisobi aniqlanmagan barcha qatorlar filtrlanadi va bu ko'rinishdan chiqarib tashlanadi +AccountRemovedFromCurrentChartOfAccount=Joriy hisobvaraqlar rejasida mavjud bo'lmagan buxgalteriya hisobi ## Admin BindingOptions=Majburiy variantlar @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Xaridlar bo'yicha buxgalteriyada majburi ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=Xarajatlar hisobotlari bo'yicha buxgalteriyada majburiy va o'tkazishni o'chirib qo'ying (xarajatlar hisoboti buxgalteriya hisobida hisobga olinmaydi) ## Export -NotifiedExportDate=Eksport qilingan chiziqlarni eksport qilingan deb belgilang (chiziqlarni o'zgartirish mumkin bo'lmaydi) -NotifiedValidationDate=Eksport qilingan yozuvlarni tasdiqlang (satrlarni o'zgartirish yoki o'chirish mumkin bo'lmaydi) +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=Validate and Lock the exported entries (same effect than the "Closure" 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 Modelcsv=Model of export @@ -387,13 +390,28 @@ SaleExport=Eksportni sotish SaleEEC=EECda sotish SaleEECWithVAT=EECda QQS bilan sotish bekor bo'lmaydi, shuning uchun bu kommunal ichki savdo emas va taklif qilingan hisob standart mahsulot hisobvarag'i. SaleEECWithoutVATNumber=EECda QQSsiz sotish, lekin uchinchi tomonning QQS identifikatori aniqlanmagan. Biz standart sotuvlar uchun mahsulot hisobiga tushamiz. Agar kerak bo'lsa, siz uchinchi tomonning QQS identifikatorini yoki mahsulot hisobini tuzatishingiz mumkin. -ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported. -ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated. +ForbiddenTransactionAlreadyExported=Taqiqlangan: tranzaktsiya tasdiqlangan va/yoki eksport qilingan. +ForbiddenTransactionAlreadyValidated=Taqiqlangan: tranzaksiya tasdiqlangan. ## Dictionary Range=Buxgalteriya hisobi doirasi Calculated=Hisoblangan Formula=Formula +## Reconcile +Unlettering=Murosasiz +AccountancyNoLetteringModified=Hech qanday kelishuv o'zgartirilmagan +AccountancyOneLetteringModifiedSuccessfully=Bitta yarashuv muvaffaqiyatli oʻzgartirildi +AccountancyLetteringModifiedSuccessfully=%s moslashtirish muvaffaqiyatli o'zgartirildi +AccountancyNoUnletteringModified=Hech qanday kelishuv oʻzgartirilmagan +AccountancyOneUnletteringModifiedSuccessfully=Bitta kelishuv muvaffaqiyatli oʻzgartirildi +AccountancyUnletteringModifiedSuccessfully=%s unreconcile muvaffaqiyatli oʻzgartirildi + +## Confirm box +ConfirmMassUnlettering=Ommaviy kelishuvni tasdiqlash +ConfirmMassUnletteringQuestion=Haqiqatan ham %s tanlangan yozuv(lar)ni yarashtirmoqchimisiz? +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? + ## Error SomeMandatoryStepsOfSetupWereNotDone=O'rnatishning ba'zi majburiy bosqichlari bajarilmadi, iltimos, ularni to'ldiring ErrorNoAccountingCategoryForThisCountry=%s mamlakati uchun buxgalteriya hisobi guruhi mavjud emas (Uyga qarang - O'rnatish - Lug'atlar) @@ -405,7 +423,11 @@ NoJournalDefined=Hech qanday jurnal aniqlanmagan Binded=Chiziqlar bog'langan ToBind=Bog'lash uchun chiziqlar UseMenuToSetBindindManualy=Chiziqlar hali bog'lanmagan, bog'lanishni qo'lda bajarish uchun %s menyusidan foydalaning -SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Sorry this module is not compatible with the experimental feature of situation invoices +SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=Kechirasiz, bu modul vaziyat hisob-fakturalarining eksperimental xususiyatiga mos kelmaydi +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 diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index ad2754ae46d..de5991eb679 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/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 formatida ma'lumotnoma va mahsulot davrini chop eting +BoldLabelOnPDF=Mahsulot yorlig'ini PDF formatida qalin qilib chop eting Foundation=Jamg'arma Version=Versiya Publisher=Nashriyotchi @@ -109,7 +109,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 @@ -162,7 +162,7 @@ Purge=Tozalash PurgeAreaDesc=Ushbu sahifa Dolibarr tomonidan yaratilgan yoki saqlangan barcha fayllarni o'chirishga imkon beradi (vaqtinchalik fayllar yoki %s katalogidagi barcha fayllar). Ushbu xususiyatdan foydalanish odatda shart emas. Dolibarr veb-server tomonidan yaratilgan fayllarni o'chirishga ruxsat bermaydigan provayder tomonidan joylashtirilgan foydalanuvchilar uchun vaqtinchalik echim sifatida taqdim etiladi. PurgeDeleteLogFile=Syslog moduli uchun belgilangan %s , shu jumladan jurnal fayllarini o'chirish (ma'lumotlarni yo'qotish xavfi yo'q) PurgeDeleteTemporaryFiles=Barcha jurnal va vaqtinchalik fayllarni o'chirib tashlang (ma'lumotlarni yo'qotish xavfi yo'q). Parametr "tempfilesold", "logfiles" yoki ikkalasi ham "tempfilesold + logfiles" bo'lishi mumkin. Eslatma: Vaqtinchalik fayllarni o'chirish faqat vaqtinchalik katalog 24 soatdan ko'proq vaqt oldin yaratilgan taqdirda amalga oshiriladi. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files (no risk of losing data) +PurgeDeleteTemporaryFilesShort=Jurnal va vaqtinchalik fayllarni o'chirish (ma'lumotlarni yo'qotish xavfi yo'q) PurgeDeleteAllFilesInDocumentsDir=Katalogdagi barcha fayllarni o'chirib tashlang: %s .
    Bu elementlar bilan bog'liq barcha yaratilgan hujjatlarni (uchinchi shaxslar, hisob-fakturalar va boshqalar), ECM moduliga yuklangan fayllarni, ma'lumotlar bazasining zaxira zaxiralarini va vaqtinchalik fayllarni o'chirib tashlaydi. PurgeRunNow=Hozir tozalang PurgeNothingToDelete=O'chirish uchun katalog yoki fayl yo'q. @@ -267,8 +267,8 @@ OtherResources=Boshqa manbalar ExternalResources=Tashqi manbalar SocialNetworks=Ijtimoiy tarmoqlar SocialNetworkId=Ijtimoiy tarmoq identifikatori -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=Foydalanuvchi yoki ishlab chiquvchi hujjatlari (Hujjat, tez-tez so'raladigan savollar...) uchun
    Dolibarr Wiki-ni ko'rib chiqing:
    a0ecb2ec87f497z0c a0ecb2ec87f49880zf +ForAnswersSeeForum=Boshqa savollar/yordamlar uchun Dolibarr forumidan foydalanishingiz mumkin:
    %s a039ab47b HelpCenterDesc1=Dolibarr bilan yordam va yordam olish uchun ba'zi manbalar. HelpCenterDesc2=Ushbu manbalardan ba'zilari faqat inglizcha da mavjud. CurrentMenuHandler=Joriy menyu boshqaruvchisi @@ -281,7 +281,7 @@ SpaceX=Space X SpaceY=Bo'shliq Y FontSize=Shrift hajmi Content=Tarkib -ContentForLines=Content to display for each product or service (from variable __LINES__ of Content) +ContentForLines=Har bir mahsulot yoki xizmat uchun ko'rsatiladigan kontent (kontentning __LINES__ o'zgaruvchisidan) NoticePeriod=Bildirishnoma muddati NewByMonth=Oyga yangi Emails=Elektron pochta xabarlari @@ -343,7 +343,7 @@ StepNb=%s qadam FindPackageFromWebSite=Sizga kerakli xususiyatlarni taqdim etadigan paketni toping (masalan, rasmiy veb-sayt %s). DownloadPackageFromWebSite=To'plamni yuklab oling (masalan, rasmiy veb-sayt %s dan). UnpackPackageInDolibarrRoot=Paketlangan fayllarni Dolibarr server katalogiga oching / oching: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +UnpackPackageInModulesRoot=Tashqi modulni o'rnatish/o'rnatish uchun arxiv faylini tashqi modullarga mo'ljallangan server katalogiga ochish/ochish kerak:
    %s SetupIsReadyForUse=Modulni joylashtirish tugallandi. Biroq, sahifani o'rnatish modullariga o'tib, sizning ilovangizdagi modulni yoqishingiz va sozlashingiz kerak: %s . NotExistsDirect=Mavjud katalog uchun muqobil ildiz katalogi aniqlanmagan.
    InfDirAlt=3-versiyadan boshlab muqobil ildiz katalogini aniqlash mumkin. Bu sizga maxsus katalog, plaginlar va maxsus andozalarni saqlashga imkon beradi.
    Faqat Dolibarrning ildizida katalog yarating (masalan: maxsus).
    @@ -355,7 +355,7 @@ LastStableVersion=Oxirgi barqaror versiya LastActivationDate=So'nggi faollashtirilgan sana LastActivationAuthor=Eng so'nggi faollashtirish muallifi LastActivationIP=So'nggi faollashtirilgan IP -LastActivationVersion=Latest activation version +LastActivationVersion=Eng so'nggi faollashtirish versiyasi UpdateServerOffline=Serverni oflayn rejimda yangilang WithCounter=Hisoblagichni boshqarish GenericMaskCodes=Siz istalgan raqamlash maskasini kiritishingiz mumkin. Ushbu niqobda quyidagi teglardan foydalanish mumkin:
    {000000} har bir %s bo'yicha ko'paytiriladigan raqamga mos keladi. Hisoblagichning istalgan uzunligidagi nollarni kiriting. Niqob kabi shuncha nolga ega bo'lish uchun hisoblagich chap tomondan nollar bilan to'ldiriladi.
    {000000 + 000} oldingi bilan bir xil, lekin + belgisining o'ng tomonidagi raqamga mos keladigan ofset birinchi %s dan boshlab qo'llaniladi.
    {000000 @ x} oldingisiga o'xshash, ammo x oyiga yetganda hisoblagich nolga o'rnatiladi (x 1 dan 12 gacha yoki 0 sizning konfiguratsiyangizda aniqlangan moliya yilining dastlabki oylaridan foydalanish uchun, yoki 99 dan har oy nolga qaytarish). Agar ushbu parametr ishlatilsa va x 2 yoki undan yuqori bo'lsa, unda {yy} {mm} yoki {yyyy} {mm} ketma-ketligi ham talab qilinadi.
    {dd} kun (01 dan 31 gacha).
    {mm} oy (01 dan 12 gacha).
    {yy} , {yyyy} yoki {y} af90, y0 a79
    @@ -476,8 +476,8 @@ ExternalModule=Tashqi modul 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=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Keyingi %s bo'sh yozuvlar uchun boshlang'ich qiymati +CurrentlyNWithoutBarCode=Ayni paytda sizda %s yozuvi %s a0a65d071f60z0c bardefined29fcda mavjud. +InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=Barcha joriy shtrix qiymatlarini o'chirib tashlang ConfirmEraseAllCurrentBarCode=Haqiqatan ham barcha shtrix kod qiymatlarini o'chirishni xohlaysizmi? AllBarcodeReset=Barcha shtrix qiymatlari o'chirildi @@ -503,8 +503,8 @@ WarningPHPMailB=- Ba'zi elektron pochta xizmatlarini ko'rsatuvchi provayderlar ( 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. 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=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 +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=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 @@ -521,9 +521,9 @@ Field=Maydon ProductDocumentTemplates=Mahsulot hujjatini yaratish uchun hujjat shablonlari FreeLegalTextOnExpenseReports=Xarajatlar to'g'risidagi hisobotlar bo'yicha bepul huquqiy matn WatermarkOnDraftExpenseReports=Xarajatlar hisobotlari bo'yicha suv belgisi -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 +ProjectIsRequiredOnExpenseReports=Loyiha xarajatlar hisobotini kiritish uchun majburiydir +PrefillExpenseReportDatesWithCurrentMonth=Yangi xarajatlar hisobotining boshlanish va tugash sanalarini joriy oyning boshlanish va tugash sanalari bilan oldindan to'ldiring +ForceExpenseReportsLineAmountsIncludingTaxesOnly=Xarajatlar hisoboti summalarini har doim soliqlar bilan birga kiritishga majbur qiling AttachMainDocByDefault=Agar sukut bo'yicha elektron pochtaga asosiy hujjatni qo'shmoqchi bo'lsangiz, buni 1 ga qo'ying (agar kerak bo'lsa) FilesAttachedToEmail=Faylni biriktiring SendEmailsReminders=Elektron pochta orqali kun tartibidagi eslatmalarni yuboring @@ -718,9 +718,9 @@ Permission34=Mahsulotlarni o'chirish Permission36=Yashirin mahsulotlarni ko'ring / boshqaring Permission38=Mahsulotlarni eksport qilish Permission39=Minimal narxga e'tibor bermang -Permission41=Loyihalar va vazifalarni o'qing (umumiy loyiha va men aloqada bo'lgan loyihalar). Belgilangan vazifalar bo'yicha men uchun yoki mening ierarxiyam uchun sarflangan vaqtni ham kiritish mumkin (Timesheet) -Permission42=Loyihalarni yaratish / o'zgartirish (umumiy loyiha va men aloqada bo'lgan loyihalar). Vazifalar yaratishi va foydalanuvchilarni loyiha va vazifalarga tayinlashi mumkin -Permission44=Loyihalarni o'chirish (umumiy loyiha va men bog'langan loyihalar) +Permission41=Loyihalar va vazifalarni o'qing (men aloqador bo'lgan umumiy loyihalar va loyihalar). +Permission42=Loyihalarni yaratish/o'zgartirish (qo'shma loyihalar va men aloqador bo'lgan loyihalar). Shuningdek, foydalanuvchilarni loyihalar va vazifalarga tayinlashi mumkin +Permission44=Loyihalarni o'chirish (qo'shma loyihalar va men aloqador bo'lgan loyihalar) Permission45=Loyihalarni eksport qilish Permission61=Ta'sirlarni o'qing Permission62=Interventsiyalarni yaratish / o'zgartirish @@ -756,7 +756,7 @@ Permission106=Eksport jo'natmalari Permission109=Yuborishlarni o'chirish Permission111=Moliyaviy hisoblarni o'qing Permission112=Tranzaktsiyalarni yaratish / o'zgartirish / o'chirish va taqqoslash -Permission113=Setup financial accounts (create, manage categories of bank transactions) +Permission113=Moliyaviy hisoblarni sozlash (bank operatsiyalari toifalarini yaratish, boshqarish) Permission114=Tranzaktsiyalarni yarashtirish Permission115=Eksport operatsiyalari va hisobvaraqlar bo'yicha ko'chirmalar Permission116=Hisob-kitoblar o'rtasida o'tkazmalar @@ -765,10 +765,11 @@ Permission121=Foydalanuvchiga bog'langan uchinchi tomonlarni o'qing Permission122=Foydalanuvchiga bog'langan uchinchi shaxslarni yaratish / o'zgartirish Permission125=Foydalanuvchiga bog'langan uchinchi tomonlarni o'chirib tashlang Permission126=Uchinchi tomonlarni eksport qilish -Permission130=Create/modify third parties payment information -Permission141=Barcha loyihalar va topshiriqlarni o'qing (shuningdek, men ular bilan aloqa qilmaydigan xususiy loyihalar) -Permission142=Barcha loyihalar va vazifalarni yaratish / o'zgartirish (shuningdek, men ular bilan aloqa qilmaydigan xususiy loyihalar) -Permission144=Barcha loyihalar va vazifalarni o'chirib tashlang (shuningdek, xususiy loyihalar bilan bog'lanmayman) +Permission130=Uchinchi shaxslarning to'lov ma'lumotlarini yaratish/o'zgartirish +Permission141=Barcha loyihalar va vazifalarni o'qing (shuningdek, men aloqada bo'lmagan shaxsiy loyihalar) +Permission142=Barcha loyihalar va vazifalarni yaratish/o'zgartirish (shuningdek, men aloqador bo'lmagan shaxsiy loyihalar) +Permission144=Barcha loyihalar va vazifalarni o'chirish (shuningdek, men aloqada bo'lmagan shaxsiy loyihalar) +Permission145=Men yoki mening ierarxiyam uchun sarflangan vaqtni tayinlangan vazifalarga kiritish mumkin (Vaqt jadvali) Permission146=Provayderlarni o'qing Permission147=Statistikani o'qing Permission151=To'g'ridan-to'g'ri debet to'lovlarini o'qing @@ -883,6 +884,9 @@ Permission564=Debetlarni yozing / kredit o'tkazishni rad etish Permission601=Stikerlarni o'qing Permission602=Stikerlarni yarating / o'zgartiring Permission609=Stikerlarni o'chirish +Permission611=Variantlarning atributlarini o'qing +Permission612=Variantlarning atributlarini yaratish/yangilash +Permission613=Variantlarning atributlarini o'chirish Permission650=Materiallar varaqalarini o'qing Permission651=Materiallar hujjatlarini yarating / yangilang Permission652=Materiallar varaqalarini o'chirish @@ -893,11 +897,11 @@ Permission701=Xayr-ehsonlarni o'qing Permission702=Xayriya mablag'larini yaratish / o'zgartirish Permission703=Xayriyalarni o'chirib tashlang Permission771=Xarajatlar to'g'risidagi hisobotlarni o'qing (o'zingiz va sizning bo'ysunuvchilaringiz) -Permission772=Create/modify expense reports (for you and your subordinates) +Permission772=Xarajatlar hisobotini yaratish/o'zgartirish (siz va sizning bo'ysunuvchilaringiz uchun) Permission773=Xarajatlar to'g'risidagi hisobotlarni o'chirish Permission775=Xarajatlar to'g'risidagi hisobotlarni tasdiqlash Permission776=Xarajatlar bo'yicha hisobotlarni to'lash -Permission777=Read all expense reports (even those of user not subordinates) +Permission777=Barcha xarajatlar hisobotlarini o'qing (hatto foydalanuvchi bo'ysunmaydiganlar ham) Permission778=Hammaning xarajatlar hisobotini yarating / o'zgartiring Permission779=Eksport xarajatlari to'g'risidagi hisobotlar Permission1001=Qimmatli qog'ozlarni o'qing @@ -961,14 +965,16 @@ Permission2801=FTP mijozidan o'qish rejimida foydalaning (faqat ko'rib chiqing v Permission2802=Yozish rejimida FTP mijozidan foydalaning (fayllarni o'chirish yoki yuklash) Permission3200=Arxivlangan voqealar va barmoq izlarini o'qing Permission3301=Yangi modullarni yarating -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 +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 +Permission4031=Shaxsiy ma'lumotlarni o'qing +Permission4032=Shaxsiy ma'lumotlarni yozing 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. @@ -976,9 +982,9 @@ Permission10005=Veb-sayt tarkibini o'chirish Permission20001=Ta'tilga bo'lgan talablarni o'qing (sizning va sizning bo'ysunuvchilaringizning ta'tillari) Permission20002=Ta'tilga oid so'rovlarni yaratish (o'zgartirish va o'zingizning bo'ysunuvchilaringiz) Permission20003=Dam olish uchun so'rovlarni o'chirib tashlang -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) +Permission20004=Barcha ta'til so'rovlarini o'qing (hatto foydalanuvchi bo'ysunmaganlar ham) +Permission20005=Hamma uchun ta'til so'rovlarini yaratish/o'zgartirish (hatto bo'ysunmaydigan foydalanuvchilarning ham) +Permission20006=Ta'til so'rovlarini boshqarish (balansni sozlash va yangilash) Permission20007=Ta'til bo'yicha so'rovlarni tasdiqlash Permission23001=Rejalashtirilgan ishni o'qing Permission23002=Rejalashtirilgan ishni yaratish / yangilash @@ -1051,7 +1057,7 @@ DictionaryFees=Xarajatlar to'g'risidagi hisobot - xarajatlar hisobotining turlar DictionarySendingMethods=Yuk tashish usullari DictionaryStaff=Xodimlar soni DictionaryAvailability=Yetkazib berishning kechikishi -DictionaryOrderMethods=Order methods +DictionaryOrderMethods=Buyurtma berish usullari DictionarySource=Takliflarning / buyurtmalarning kelib chiqishi DictionaryAccountancyCategory=Hisobotlar uchun moslashtirilgan guruhlar DictionaryAccountancysystem=Hisob-kitoblar rejasi uchun modellar @@ -1068,6 +1074,7 @@ DictionaryExpenseTaxCat=Xarajatlar to'g'risidagi hisobot - transport toifalari DictionaryExpenseTaxRange=Xarajatlar to'g'risidagi hisobot - transport kategoriyasi bo'yicha oraliq DictionaryTransportMode=Ichki hisobot - Transport rejimi DictionaryBatchStatus=Mahsulot partiyasi / ketma-ket sifat nazorati holati +DictionaryAssetDisposalType=Aktivlarni yo'q qilish turi TypeOfUnit=Birlikning turi SetupSaved=O'rnatish saqlandi SetupNotSaved=Sozlash saqlanmadi @@ -1122,7 +1129,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 @@ -1187,7 +1194,7 @@ BankModuleNotActive=Bank hisoblari moduli yoqilmagan ShowBugTrackLink=" %s " havolasini ko'rsating ShowBugTrackLinkDesc=Bu havolani ko'rsatmaslik uchun bo'sh qoldiring, Dolibarr loyihasiga havola uchun 'github' qiymatidan foydalaning yoki to'g'ridan -to'g'ri 'https: // ...' urlini belgilang. Alerts=Ogohlantirishlar -DelaysOfToleranceBeforeWarning=Ogohlantirish signalini ko'rsatishdan oldin kechikish: +DelaysOfToleranceBeforeWarning=Ogohlantirish ogohlantirishi ko'rsatilmoqda... DelaysOfToleranceDesc=Kechiktirilgan elementni ekranda %s ogohlantirish belgisi paydo bo'lishidan oldin kechiktirishni o'rnating. Delays_MAIN_DELAY_ACTIONS_TODO=Rejalashtirilgan tadbirlar (kun tartibidagi tadbirlar) tugallanmagan Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Loyiha o'z vaqtida yopilmagan @@ -1279,7 +1286,7 @@ PreviousDumpFiles=Mavjud zaxira fayllari PreviousArchiveFiles=Mavjud arxiv fayllari WeekStartOnDay=Haftaning birinchi kuni RunningUpdateProcessMayBeRequired=Yangilash jarayonini bajarish talab etilgandek tuyuladi (%s dastur versiyasi %s ma'lumotlar bazasidan farq qiladi) -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. +YouMustRunCommandFromCommandLineAfterLoginToUser= %s foydalanuvchisi bilan qobiqqa kirganingizdan so'ng ushbu buyruqni buyruq qatoridan ishga tushirishingiz kerak yoki a0ecb2918f parolni kiritish uchun buyruq qatori oxiriga -W opsiyasini qo'shishingiz kerak a0ecb2918f. 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 @@ -1339,6 +1346,7 @@ TransKeyWithoutOriginalValue=Siz " %s " tarjima kaliti uchun he TitleNumberOfActivatedModules=Faollashtirilgan modullar TotalNumberOfActivatedModules=Faollashtirilgan modullar: %s / %s YouMustEnableOneModule=Siz kamida 1 ta modulni yoqishingiz kerak +YouMustEnableTranslationOverwriteBefore=Tarjimani almashtirishga ruxsat berish uchun avval tarjimani qayta yozishni yoqishingiz kerak ClassNotFoundIntoPathWarning=%s sinfi PHP yo'lida topilmadi YesInSummer=Ha yozda OnlyFollowingModulesAreOpenedToExternalUsers=E'tibor bering, tashqi foydalanuvchilar uchun faqat quyidagi modullar mavjud (bunday foydalanuvchilarning ruxsatlaridan qat'i nazar) va faqat ruxsatlar berilgan taqdirda:
    @@ -1357,9 +1365,9 @@ BrowserIsOK=Siz %s veb-brauzeridan foydalanmoqdasiz. Ushbu brauzer xavfsizlik va BrowserIsKO=Siz %s veb-brauzeridan foydalanmoqdasiz. Ushbu brauzer xavfsizlik, ishlash va ishonchlilik uchun yomon tanlov ekanligi ma'lum. Firefox, Chrome, Opera yoki Safari-dan foydalanishni tavsiya etamiz. PHPModuleLoaded=PH0 komponenti %s yuklandi PreloadOPCode=Oldindan yuklangan OPCode ishlatiladi -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". +AddRefInList=Mijoz/sotuvchi ref. kombinatsiyalangan ro'yxatlarga.
    Uchinchi tomonlar "CC12345 - SC45678 - The Big Company corp" nom formati bilan paydo bo'ladi. "The Big Company corp" o'rniga. +AddVatInList=Mijoz/sotuvchi QQS raqamini birlashtirilgan ro'yxatlarda ko'rsatish. +AddAdressInList=Mijoz/sotuvchi manzilini birlashtirilgan ro'yxatlarda ko'rsatish.
    Uchinchi tomonlar "The Big Company corp" o'rniga "The Big Company corp. - 21 jump street 123456 Big town - USA" nom formati bilan paydo bo'ladi. AddEmailPhoneTownInContactList=
    Aloqa uchun elektron pochta manzilini (yoki aniqlanmagan telefonlar bilan) va shahar haqida ma'lumot ro'yxatini (tanlang ro'yxati yoki kombinat qutisi) ko'rsating "Dupond Durand - dupond.durand@email.com - Parij" yoki "Dyupond Durand - 06 07 59 65 66 - "Dyupond Dyurand" o'rniga "Parij". AskForPreferredShippingMethod=Uchinchi shaxslar uchun jo'natilgan transport usulini so'rang. FieldEdition=%s maydonining nashri @@ -1420,6 +1428,8 @@ WatermarkOnDraftInvoices=Hisob-fakturalardagi suv belgisi (agar bo'sh bo'lmasa) PaymentsNumberingModule=To'lovlarni raqamlash modeli 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. ##### Proposals ##### PropalSetup=Tijorat takliflari modulini sozlash ProposalsNumberingModules=Tijorat takliflarini raqamlash modellari @@ -1707,9 +1717,9 @@ MailingDelay=Keyingi xabarni yuborgandan keyin kutish uchun soniya NotificationSetup=Elektron pochta xabarnomasi modulini sozlash NotificationEMailFrom=Bildirishnomalar moduli tomonidan yuborilgan elektron pochta xabarlari uchun jo'natuvchi elektron pochtasi (dan) FixedEmailTarget=Qabul qiluvchi -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=Tasdiqlash xabarida bildirishnomalarni qabul qiluvchilar ro'yxatini (aloqa sifatida obuna bo'lgan) yashiring +NotificationDisableConfirmMessageUser=Tasdiqlash xabarida bildirishnomalarni qabul qiluvchilar (foydalanuvchi sifatida obuna bo'lgan) ro'yxatini yashiring +NotificationDisableConfirmMessageFix=Xabarnomalarni qabul qiluvchilar roʻyxatini (global elektron pochta sifatida obuna boʻlgan) tasdiqlash xabarida yashirish ##### Sendings ##### SendingsSetup=Yuk tashish modulini sozlash SendingsReceiptModel=Qabul qilish modelini yuborish @@ -1725,8 +1735,8 @@ FreeLegalTextOnDeliveryReceipts=Yetkazib berish kvitansiyalari bo'yicha bepul ma ##### FCKeditor ##### AdvancedEditor=Murakkab muharrir ActivateFCKeditor=Kengaytirilgan tahrirlovchini faollashtirish: -FCKeditorForNotePublic=WYSIWIG creation/edition of the field "public notes" of elements -FCKeditorForNotePrivate=WYSIWIG creation/edition of the field "private notes" of elements +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. @@ -1901,7 +1911,7 @@ ExpenseReportsRulesSetup=Xarajatlar bo'yicha hisobotlar modulini sozlash - qoida ExpenseReportNumberingModules=Xarajatlar bo'yicha hisobotlarni raqamlash moduli NoModueToManageStockIncrease=Zaxiralarni avtomatik ravishda oshirishni boshqaradigan biron bir modul faollashtirilmagan. Aksiyalarni ko'paytirish faqat qo'lda kiritish orqali amalga oshiriladi. YouMayFindNotificationsFeaturesIntoModuleNotification="Bildirishnoma" modulini yoqish va sozlash orqali elektron pochta xabarlari uchun variantlarni topishingiz mumkin. -TemplatesForNotifications=Templates for notifications +TemplatesForNotifications=Bildirishnomalar uchun shablonlar ListOfNotificationsPerUser=Har bir foydalanuvchi uchun avtomatik bildirishnomalar ro'yxati * ListOfNotificationsPerUserOrContact=Har bir foydalanuvchi * yoki har bir kontakt uchun mavjud bo'lgan avtomatik xabarnomalar ro'yxati (ishbilarmonlik tadbirlarida) ** ListOfFixedNotifications=Avtomatik sobit xabarnomalar ro'yxati @@ -1917,15 +1927,16 @@ ConfFileMustContainCustom=Tashqi modulni dasturdan o'rnatish yoki yaratish uchun HighlightLinesOnMouseHover=Sichqoncha harakati o'tib ketganda jadval satrlarini ajratib ko'rsatish HighlightLinesColor=Sichqoncha o'tib ketganda chiziq rangini belgilang (ajratish uchun 'ffffff' dan foydalaning) HighlightLinesChecked=Tekshirilganda chiziq rangini ajratib ko'rsatish (ajratish uchun 'ffffff' dan foydalaning) -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +UseBorderOnTable=Jadvallarda chap va o'ng chegaralarni ko'rsatish +BtnActionColor=Harakat tugmasi rangi +TextBtnActionColor=Harakat tugmasi matn rangi TextTitleColor=Sahifa sarlavhasining matni rangi LinkColor=Havolalarning rangi PressF5AfterChangingThis=Klaviaturada CTRL + F5 tugmachalarini bosing yoki ushbu qiymatni o'zgartirgandan so'ng brauzer keshini tozalang 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 @@ -1938,13 +1949,13 @@ EnterAnyCode=Ushbu maydonda chiziqni aniqlash uchun ma'lumotnoma mavjud. Siz tan Enter0or1=0 yoki 1 kiriting UnicodeCurrency=Qavslar oralig'iga bu erga kiriting, valyuta belgisini ko'rsatadigan bayt raqamlari ro'yxati. Masalan: $ uchun, [36] kiriting - Braziliya uchun haqiqiy R $ [82,36] - € uchun, [8364] kiriting ColorFormat=RGB rangi HEX formatida, masalan: FF0000 -PictoHelp=Dolibarr formatidagi piktogramma nomi (agar 'Mavzu katalogida' image.png ', agar modulning / img / katalogida bo'lsa' image.png@nom_du_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=Chiziqning kombinatsion ro'yxatlarga joylashishi SellTaxRate=Sotishdan olinadigan soliq stavkasi RecuperableOnly=Frantsiyaning biron bir shtati uchun ajratilgan "Qabul qilinmagan, ammo tiklanadigan" QQS uchun ha. Boshqa barcha holatlarda "Yo'q" qiymatini saqlang. UrlTrackingDesc=Agar provayder yoki transport xizmati sizning jo'natmalaringiz holatini tekshirish uchun sahifa yoki veb-sayt taklif qilsa, uni bu erga kiritishingiz mumkin. Siz URL parametrlarida {TRACKID} tugmachasidan foydalanishingiz mumkin, shunda tizim uni foydalanuvchi jo'natma kartasiga kiritgan kuzatuv raqami bilan almashtiradi. OpportunityPercent=Qo'rg'oshin yaratishda siz taxminiy loyiha / qo'rg'oshin miqdorini aniqlaysiz. Qo'rg'oshin maqomiga ko'ra, ushbu miqdor ushbu stavkaga ko'paytirilishi mumkin, bu sizning barcha potentsialingiz ishlab chiqarishi mumkin bo'lgan umumiy miqdorni baholash uchun. Qiymat foiz hisoblanadi (0 dan 100 gacha). -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=Ushbu pochta shabloni qaysi turdagi ob'ektga tegishli? Elektron pochta shabloni faqat tegishli ob'ektdan "E-pochta jo'natish" tugmasidan foydalanganda mavjud. TypeOfTemplate=Shablon turi TemplateIsVisibleByOwnerOnly=Andoza faqat egasiga ko'rinadi VisibleEverywhere=Hamma joyda ko'rinadi @@ -2019,8 +2030,8 @@ 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 -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_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 MAIN_PDF_NO_RECIPENT_FRAME=Qabul qiluvchilar manzillar doirasidagi chegaralarni yashirish MAIN_PDF_HIDE_CUSTOMER_CODE=Mijoz kodini yashirish @@ -2037,7 +2048,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Regex filtri toza qiymatga (COMPANY_AQUARIUM_CLEAN_ COMPANY_DIGITARIA_CLEAN_REGEX=Regex filtri toza qiymatga (COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=Uni nusxalashga ruxsat berilmagan GDPRContact=Ma'lumotlarni himoya qilish bo'yicha mutaxassis (DPO, ma'lumotlarning maxfiyligi yoki GDPR aloqasi) -GDPRContactDesc=Agar siz Evropa kompaniyalari / fuqarolari to'g'risidagi ma'lumotlarni saqlasangiz, bu erda ma'lumotlarni himoya qilishning umumiy qoidalari uchun javobgar bo'lgan shaxsni nomlashingiz mumkin +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 HelpOnTooltipDesc=Matn yoki tarjima kalitini bu erga qo'ying, bu maydon formada paydo bo'lganda matn asboblar panelida ko'rsatilsin YouCanDeleteFileOnServerWith=Bu faylni serverda buyruq satri bilan o'chirib tashlashingiz mumkin:
    %s @@ -2048,6 +2059,7 @@ 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 +EmailCollectorExampleToCollectJobCandidaturesDesc=Ish takliflariga murojaat qilish uchun elektron pochta xabarlarini to'plang (Moduli ishga yollash yoqilgan bo'lishi kerak). Agar siz ish so'rovi uchun nomzodni avtomatik ravishda yaratmoqchi bo'lsangiz, ushbu kollektorni to'ldirishingiz mumkin. Eslatma: Ushbu dastlabki misolda nomzodning sarlavhasi, shu jumladan elektron pochta orqali hosil bo'ladi. +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) -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) +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) CodeLastResult=Oxirgi natija kodi NbOfEmailsInInbox=Manba katalogidagi elektron pochta xabarlari soni LoadThirdPartyFromName=%s-da qidiruvni uchinchi tomonga yuklang (faqat yuklash uchun) LoadThirdPartyFromNameOrCreate=%s-da qidiruvni uchinchi tomonga yuklash (agar topilmasa yaratish) -AttachJoinedDocumentsToObject=Save attached files into object documents if a ref of an object is found into email topic. +AttachJoinedDocumentsToObject=Agar elektron pochta mavzusida ob'ektning refi topilsa, biriktirilgan fayllarni ob'ekt hujjatlariga saqlang. WithDolTrackingID=Dolibarr-dan yuborilgan birinchi elektron pochta orqali boshlangan suhbatdan xabar WithoutDolTrackingID=Dolibarr-dan birinchi elektron pochta orqali yuborilgan suhbatdan xabar WithDolTrackingIDInMsgId=Dolibarr-dan xabar yuborildi @@ -2089,7 +2113,7 @@ ResourceSetup=Resurs modulining konfiguratsiyasi UseSearchToSelectResource=Resursni tanlash uchun qidiruv shaklidan foydalaning (ochiladigan ro'yxat o'rniga). DisabledResourceLinkUser=Resursni foydalanuvchilar bilan bog'lash xususiyatini o'chirib qo'ying DisabledResourceLinkContact=Resursni kontaktlarga bog'lash xususiyatini o'chirib qo'ying -EnableResourceUsedInEventCheck=Resursning tadbirda ishlatilishini tekshirish xususiyatini yoqing +EnableResourceUsedInEventCheck=Kun tartibida bir vaqtning o'zida bir xil resursdan foydalanishni taqiqlash ConfirmUnactivation=Modulni tiklashni tasdiqlang OnMobileOnly=Faqat kichik ekranda (smartfon) DisableProspectCustomerType="Prospect + Customer" uchinchi tomon turini o'chirib qo'ying (shuning uchun uchinchi tomon "Prospect" yoki "Customer" bo'lishi kerak, lekin ikkalasi ham bo'lishi mumkin emas) @@ -2128,13 +2152,13 @@ LargerThan=Undan kattaroq IfTrackingIDFoundEventWillBeLinked=E'tibor bering, agar elektron pochtada ob'ektning kuzatuv identifikatori topilgan bo'lsa yoki elektron pochta manzili to'plangan va ob'ekt bilan bog'langan elektron pochta xabarining javobi bo'lsa, yaratilgan voqea avtomatik ravishda ma'lum tegishli ob'ektga bog'lanadi. WithGMailYouCanCreateADedicatedPassword=GMail hisob qaydnomasi yordamida, agar siz 2 bosqichli tekshiruvni yoqsangiz, https://myaccount.google.com/ manzilidagi o'zingizning shaxsiy parol so'zingiz o'rniga dastur uchun maxsus ikkinchi parolni yaratish tavsiya etiladi. EmailCollectorTargetDir=Muvaffaqiyatli ishlov berilganda elektron pochtani boshqa yorliq / katalogga ko'chirish istalgan xatti-harakatlar bo'lishi mumkin. Ushbu xususiyatdan foydalanish uchun faqat katalog nomini o'rnating (Ismda maxsus belgilarni ishlatmang). E'tibor bering, siz o'qish / yozish uchun kirish qayd yozuvidan foydalanishingiz kerak. -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=Maʼlumotlar bazasida mavjud uchinchi tomonni topish va yuklash uchun elektron pochta tarkibidan foydalanish uchun ushbu amaldan foydalanishingiz mumkin. Topilgan (yoki yaratilgan) uchinchi tomon unga kerak bo'lgan keyingi harakatlar uchun ishlatiladi.
    Misol uchun, agar siz tanada mavjud bo'lgan "Ism: topiladigan nom" qatoridan olingan nom bilan uchinchi tomon yaratmoqchi bo'lsangiz, jo'natuvchining elektron pochtasidan elektron pochta sifatida foydalaning, parametr maydonini quyidagicha o'rnatishingiz mumkin:
    'email= HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'
    EndPointFor=%s uchun yakuniy nuqta: %s DeleteEmailCollector=Elektron pochta kollektorini o'chirish ConfirmDeleteEmailCollector=Ushbu elektron pochta kollektorini o'chirishni xohlaysizmi? RecipientEmailsWillBeReplacedWithThisValue=Qabul qiluvchilarning elektron pochtalari har doim ushbu qiymat bilan almashtiriladi AtLeastOneDefaultBankAccountMandatory=Kamida 1 ta sukut bo'yicha bank hisobvarag'i aniqlanishi kerak -RESTRICT_ON_IP=Faqat ba'zi bir xost IP-lariga kirishga ruxsat bering (joker belgilarga yo'l qo'yilmaydi, qiymatlar oralig'idan foydalaning). Bo'sh degani har bir xost kirish imkoniyatiga ega. +RESTRICT_ON_IP=APIga faqat ma'lum mijoz IP-lariga ruxsat bering (joker belgiga ruxsat berilmaydi, qiymatlar orasidagi bo'shliqdan foydalaning). Bo'sh, har bir mijoz kirishi mumkin degan ma'noni anglatadi. IPListExample=127.0.0.1 192.168.0.2 [::1] BaseOnSabeDavVersion=SabreDAV versiyasi kutubxonasi asosida NotAPublicIp=Ommaviy IP emas @@ -2144,8 +2168,11 @@ 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 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=Gererate PDF documents with format PDF/A instead of defaut format PDF +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. RssNote=Izoh: Har bir RSS tasmali ta'rifi vidjetni taqdim etadi, uni boshqarish panelida bo'lishini ta'minlash kerak JumpToBoxes=O'rnatish -> Vidjetlarga o'tish @@ -2177,7 +2204,7 @@ NoWritableFilesFoundIntoRootDir=Ildiz katalogingizda yoziladigan fayllar yoki um RecommendedValueIs=Tavsiya etiladi: %s Recommended=Tavsiya etiladi NotRecommended=Tavsiya etilmaydi -ARestrictedPath=Some restricted path +ARestrictedPath=Ba'zi cheklangan yo'l CheckForModuleUpdate=Tashqi modullarning yangilanishlarini tekshiring CheckForModuleUpdateHelp=Ushbu amal tashqi modullar tahrirlovchilariga yangi versiya mavjudligini tekshirish uchun ulanadi. ModuleUpdateAvailable=Yangilanish mavjud @@ -2206,17 +2233,49 @@ DashboardDisableBlockAdherent=Homiylik uchun bosh barmog'ini o'chirib qo'ying DashboardDisableBlockExpenseReport=Hisob -kitoblar uchun bosh barmog'ingizni o'chiring DashboardDisableBlockHoliday=Barglar uchun bosh barmog'ini o'chiring EnabledCondition=Maydonni yoqish sharti (agar yoqilmagan bo'lsa, ko'rish har doim o'chirilgan bo'ladi) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Agar siz ikkinchi soliqni ishlatmoqchi bo'lsangiz, birinchi sotishdan olinadigan soliqni ham yoqishingiz kerak -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Agar siz uchinchi soliqni ishlatmoqchi bo'lsangiz, birinchi sotishdan olinadigan soliqni ham yoqishingiz kerak +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Agar siz ikkinchi soliqdan foydalanmoqchi bo'lsangiz, birinchi savdo solig'ini ham yoqishingiz kerak +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Agar siz uchinchi soliqdan foydalanmoqchi bo'lsangiz, birinchi savdo solig'ini ham yoqishingiz kerak LanguageAndPresentation=Til va taqdimot SkinAndColors=Teri va ranglar -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Agar siz ikkinchi soliqni ishlatmoqchi bo'lsangiz, birinchi sotishdan olinadigan soliqni ham yoqishingiz kerak -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Agar siz uchinchi soliqni ishlatmoqchi bo'lsangiz, birinchi sotishdan olinadigan soliqni ham yoqishingiz kerak -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 +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=Agar siz ikkinchi soliqdan foydalanmoqchi bo'lsangiz, birinchi savdo solig'ini ham yoqishingiz kerak +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=Agar siz uchinchi soliqdan foydalanmoqchi bo'lsangiz, birinchi savdo solig'ini ham yoqishingiz kerak +PDF_USE_1A=PDF/A-1b formatida PDF yaratish +MissingTranslationForConfKey = %s uchun tarjima yetishmayapti +NativeModules=Mahalliy modullar +NoDeployedModulesFoundWithThisSearchCriteria=Ushbu qidiruv mezonlari uchun modul topilmadi +API_DISABLE_COMPRESSION=API javoblarini siqishni o'chiring +EachTerminalHasItsOwnCounter=Har bir terminal o'z hisoblagichidan foydalanadi. +FillAndSaveAccountIdAndSecret=Avval hisob identifikatori va sirini to'ldiring va saqlang +PreviousHash=Oldingi xesh +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. + +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 +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/uz_UZ/agenda.lang b/htdocs/langs/uz_UZ/agenda.lang index 4047ee99411..4be180db451 100644 --- a/htdocs/langs/uz_UZ/agenda.lang +++ b/htdocs/langs/uz_UZ/agenda.lang @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=%s shartnomasi o'chirildi PropalClosedSignedInDolibarr=%s taklifi imzolandi PropalClosedRefusedInDolibarr=%s taklifi rad etildi PropalValidatedInDolibarr=%s taklifi tasdiqlangan +PropalBackToDraftInDolibarr=Taklif %s qoralama holatiga qayting PropalClassifiedBilledInDolibarr=%s taklifi tasniflangan InvoiceValidatedInDolibarr=%s hisob-fakturasi tasdiqlangan InvoiceValidatedInDolibarrFromPos=POS-dan tasdiqlangan %s hisob-fakturasi @@ -64,8 +65,9 @@ ShipmentClassifyClosedInDolibarr=%s jo'natmasi tasniflangan ShipmentUnClassifyCloseddInDolibarr=%s jo'natmasi qayta ochilgan ShipmentBackToDraftInDolibarr=%s jo'natmasi qoralama holatiga qaytadi ShipmentDeletedInDolibarr=%s jo'natmasi o'chirildi -ShipmentCanceledInDolibarr=Shipment %s canceled +ShipmentCanceledInDolibarr=%s yetkazib berish bekor qilindi ReceptionValidatedInDolibarr=%s qabul qilish tasdiqlangan +ReceptionClassifyClosedInDolibarr=Qabul %s yopiq tasniflangan OrderCreatedInDolibarr=%s buyurtmasi yaratildi OrderValidatedInDolibarr=%s buyurtmasi tasdiqlangan OrderDeliveredInDolibarr=Buyurtma tasniflangan tasniflangan %s diff --git a/htdocs/langs/uz_UZ/assets.lang b/htdocs/langs/uz_UZ/assets.lang index eed37191c99..847eabea049 100644 --- a/htdocs/langs/uz_UZ/assets.lang +++ b/htdocs/langs/uz_UZ/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 = Aktivlar -NewAsset = Yangi aktiv -AccountancyCodeAsset = Buxgalteriya kodi (aktiv) -AccountancyCodeDepreciationAsset = Buxgalteriya kodi (amortizatsiya aktivlari hisobi) -AccountancyCodeDepreciationExpense = Buxgalteriya kodi (amortizatsiya xarajatlari hisobi) -NewAssetType=Yangi aktiv turi -AssetsTypeSetup=Obyekt turini sozlash -AssetTypeModified=Obyekt turi o'zgartirildi -AssetType=Obyekt turi +NewAsset=Yangi aktiv +AccountancyCodeAsset=Buxgalteriya kodi (aktiv) +AccountancyCodeDepreciationAsset=Buxgalteriya kodi (amortizatsiya aktivlari hisobi) +AccountancyCodeDepreciationExpense=Buxgalteriya kodi (amortizatsiya xarajatlari hisobi) AssetsLines=Aktivlar DeleteType=O'chirish -DeleteAnAssetType=Obyekt turini o'chirib tashlang -ConfirmDeleteAssetType=Ushbu aktiv turini o'chirishni xohlaysizmi? -ShowTypeCard="%s" turini ko'rsatish +DeleteAnAssetType=Obyekt modelini o‘chirish +ConfirmDeleteAssetType=Haqiqatan ham ushbu obyekt modelini o‘chirib tashlamoqchimisiz? +ShowTypeCard=“%s” modelini ko‘rsatish # Module label 'ModuleAssetsName' -ModuleAssetsName = Aktivlar +ModuleAssetsName=Aktivlar # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Aktivlarning tavsifi +ModuleAssetsDesc=Aktivlarning tavsifi # # Admin page # -AssetsSetup = Aktivlarni sozlash -Settings = Sozlamalar -AssetsSetupPage = Aktivlarni sozlash sahifasi -ExtraFieldsAssetsType = Qo'shimcha atributlar (aktiv turi) -AssetsType=Obyekt turi -AssetsTypeId=Obyekt turi identifikatori -AssetsTypeLabel=Obyekt turi yorlig'i -AssetsTypes=Aktiv turlari +AssetSetup=Aktivlarni sozlash +AssetSetupPage=Aktivlarni sozlash sahifasi +ExtraFieldsAssetModel=Qo'shimcha atributlar (Aktiv modeli) + +AssetsType=Aktiv modeli +AssetsTypeId=Obyekt modeli identifikatori +AssetsTypeLabel=Obyekt modeli yorlig‘i +AssetsTypes=Aktivlar modellari +ASSET_ACCOUNTANCY_CATEGORY=Asosiy vositalarni hisobga olish guruhi # # Menu # -MenuAssets = Aktivlar -MenuNewAsset = Yangi aktiv -MenuTypeAssets = Aktivlarni kiriting -MenuListAssets = Ro'yxat -MenuNewTypeAssets = Yangi -MenuListTypeAssets = Ro'yxat +MenuAssets=Aktivlar +MenuNewAsset=Yangi aktiv +MenuAssetModels=Model aktivlari +MenuListAssets=Ro'yxat +MenuNewAssetModel=Yangi aktiv modeli +MenuListAssetModels=Roʻyxat # # Module # +ConfirmDeleteAsset=Haqiqatan ham bu obyektni olib tashlamoqchimisiz? + +# +# Tab +# +AssetDepreciationOptions=Amortizatsiya variantlari +AssetAccountancyCodes=Accounting accounts +AssetDepreciation=Amortizatsiya + +# +# Asset +# Asset=Aktiv -NewAssetType=Yangi aktiv turi -NewAsset=Yangi aktiv -ConfirmDeleteAsset=Haqiqatan ham ushbu aktivni o'chirishni xohlaysizmi? +Assets=Aktivlar +AssetReversalAmountHT=Orqaga qaytarish summasi (soliqlarsiz) +AssetAcquisitionValueHT=Sotib olish summasi (soliqlarsiz) +AssetRecoveredVAT=Qaytarilgan QQS +AssetReversalDate=Qayta tiklash sanasi +AssetDateAcquisition=Sotib olish sanasi +AssetDateStart=Ishga tushirish sanasi +AssetAcquisitionType=Qabul qilish turi +AssetAcquisitionTypeNew=Yangi +AssetAcquisitionTypeOccasion=Ishlatilgan +AssetType=Aktiv turi +AssetTypeIntangible=Nomoddiy +AssetTypeTangible=Moddiy +AssetTypeInProgress=Jarayonda +AssetTypeFinancial=Moliyaviy +AssetNotDepreciated=Amortizatsiyalanmagan +AssetDisposal=Utilizatsiya qilish +AssetConfirmDisposalAsk=Haqiqatan ham %s aktivini utilizatsiya qilmoqchimisiz? +AssetConfirmReOpenAsk=Haqiqatan ham %s aktivini qayta ochmoqchimisiz? + +# +# Asset status +# +AssetInProgress=Jarayonda +AssetDisposed=Utilizatsiya qilingan +AssetRecorded=Hisoblangan + +# +# Asset disposal +# +AssetDisposalDate=Utilizatsiya qilingan sana +AssetDisposalAmount=Yo'q qilish qiymati +AssetDisposalType=Yo'q qilish turi +AssetDisposalDepreciated=O'tkazma yilini amortizatsiya qiling +AssetDisposalSubjectToVat=Utilizatsiya QQS evaziga + +# +# Asset model +# +AssetModel=Aktiv modeli +AssetModels=Aktiv modellari + +# +# Asset depreciation options +# +AssetDepreciationOptionEconomic=Iqtisodiy amortizatsiya +AssetDepreciationOptionAcceleratedDepreciation=Tezlashtirilgan amortizatsiya (soliq) +AssetDepreciationOptionDepreciationType=Amortizatsiya turi +AssetDepreciationOptionDepreciationTypeLinear=Chiziqli +AssetDepreciationOptionDepreciationTypeDegressive=Degressiv +AssetDepreciationOptionDepreciationTypeExceptional=Istisno +AssetDepreciationOptionDegressiveRate=Degressiv stavka +AssetDepreciationOptionAcceleratedDepreciation=Tezlashtirilgan amortizatsiya (soliq) +AssetDepreciationOptionDuration=Davomiyligi +AssetDepreciationOptionDurationType=Tur muddati +AssetDepreciationOptionDurationTypeAnnual=Yillik +AssetDepreciationOptionDurationTypeMonthly=Oylik +AssetDepreciationOptionDurationTypeDaily=Kundalik +AssetDepreciationOptionRate=Baho (%%) +AssetDepreciationOptionAmountBaseDepreciationHT=Amortizatsiya bazasi (QQSdan tashqari) +AssetDepreciationOptionAmountBaseDeductibleHT=Chegiriladigan baza (QQSdan tashqari) +AssetDepreciationOptionTotalAmountLastDepreciationHT=Oxirgi amortizatsiyaning umumiy summasi (QQSdan tashqari) + +# +# Asset accountancy codes +# +AssetAccountancyCodeDepreciationEconomic=Iqtisodiy amortizatsiya +AssetAccountancyCodeAsset=Aktiv +AssetAccountancyCodeDepreciationAsset=Amortizatsiya +AssetAccountancyCodeDepreciationExpense=Amortizatsiya xarajatlari +AssetAccountancyCodeValueAssetSold=Chiqarilgan aktivning qiymati +AssetAccountancyCodeReceivableOnAssignment=Chiqarilganda debitorlik +AssetAccountancyCodeProceedsFromSales=Utilizatsiya qilishdan olingan daromadlar +AssetAccountancyCodeVatCollected=Yig'ilgan QQS +AssetAccountancyCodeVatDeductible=Aktivlar bo'yicha QQS undirilgan +AssetAccountancyCodeDepreciationAcceleratedDepreciation=Tezlashtirilgan amortizatsiya (soliq) +AssetAccountancyCodeAcceleratedDepreciation=Account +AssetAccountancyCodeEndowmentAcceleratedDepreciation=Amortizatsiya xarajatlari +AssetAccountancyCodeProvisionAcceleratedDepreciation=Qayta egalik qilish/ta'minlash + +# +# Asset depreciation +# +AssetBaseDepreciationHT=Amortizatsiya asosi (QQSdan tashqari) +AssetDepreciationBeginDate=Amortizatsiyaning boshlanishi +AssetDepreciationDuration=Davomiyligi +AssetDepreciationRate=Baho (%%) +AssetDepreciationDate=Amortizatsiya sanasi +AssetDepreciationHT=Amortizatsiya (QQSdan tashqari) +AssetCumulativeDepreciationHT=Jami amortizatsiya (QQSdan tashqari) +AssetResidualHT=Qoldiq qiymat (QQSdan tashqari) +AssetDispatchedInBookkeeping=Amortizatsiya qayd etilgan +AssetFutureDepreciationLine=Kelajakdagi amortizatsiya +AssetDepreciationReversal=Orqaga qaytish + +# +# Errors +# +AssetErrorAssetOrAssetModelIDNotProvide=Obyekt identifikatori yoki model ovozi berilmagan +AssetErrorFetchAccountancyCodesForMode="%s" amortizatsiya rejimi uchun buxgalteriya hisoblarini olishda xatolik yuz berdi +AssetErrorDeleteAccountancyCodesForMode=Buxgalteriya hisoblarini "%s" amortizatsiya rejimidan o'chirishda xatolik yuz berdi +AssetErrorInsertAccountancyCodesForMode="%s" amortizatsiya rejimining buxgalteriya hisoblarini kiritishda xatolik yuz berdi. +AssetErrorFetchDepreciationOptionsForMode="%s" amortizatsiya rejimi parametrlarini olishda xatolik yuz berdi +AssetErrorDeleteDepreciationOptionsForMode="%s" amortizatsiya rejimi parametrlarini oʻchirishda xatolik yuz berdi +AssetErrorInsertDepreciationOptionsForMode="%s" amortizatsiya rejimi parametrlarini kiritishda xatolik yuz berdi +AssetErrorFetchDepreciationLines=Ro'yxatga olingan amortizatsiya chiziqlarini olishda xato +AssetErrorClearDepreciationLines=Yozilgan amortizatsiya liniyalarini tozalashda xatolik (qayta va kelajak) +AssetErrorAddDepreciationLine=Amortizatsiya chizig'ini qo'shishda xato +AssetErrorCalculationDepreciationLines=Amortizatsiya liniyalarini hisoblashda xatolik (tiklash va kelajak) +AssetErrorReversalDateNotProvidedForMode="%s" amortizatsiya usuli uchun bekor qilish sanasi ko'rsatilmagan +AssetErrorReversalDateNotGreaterThanCurrentBeginFiscalDateForMode=Qayta tiklash sanasi "%s" amortizatsiya usuli uchun joriy moliyaviy yil boshidan kattaroq yoki unga teng bo'lishi kerak. +AssetErrorReversalAmountNotProvidedForMode=Orqaga qaytarish summasi "%s" amortizatsiya rejimi uchun taqdim etilmaydi. +AssetErrorFetchCumulativeDepreciation=Amortizatsiya chizig'idan yig'ilgan amortizatsiya summasini olishda xatolik +AssetErrorSetLastCumulativeDepreciation=Oxirgi yig'ilgan amortizatsiya summasini qayd etishda xatolik diff --git a/htdocs/langs/uz_UZ/banks.lang b/htdocs/langs/uz_UZ/banks.lang index 9d27dbdd10c..be938a60b80 100644 --- a/htdocs/langs/uz_UZ/banks.lang +++ b/htdocs/langs/uz_UZ/banks.lang @@ -32,7 +32,7 @@ RIB=Bank hisob raqami IBAN=IBAN raqami BIC=BIC / SWIFT kodi SwiftValid=BIC / SWIFT amal qiladi -SwiftNotValid=BIC/SWIFT not valid +SwiftNotValid=BIC/SWIFT yaroqsiz IbanValid=BAN amal qiladi IbanNotValid=BAN haqiqiy emas StandingOrders=To'g'ridan-to'g'ri debet buyurtmalari @@ -95,11 +95,11 @@ LineRecord=Tranzaksiya AddBankRecord=Kirish kiritish AddBankRecordLong=Kiritishni qo'lda qo'shing Conciliated=Yarashtirildi -ConciliatedBy=Tomonidan yarashtirildi +ReConciliedBy=tomonidan yarashtirildi DateConciliating=Sana yarashtirildi BankLineConciliated=Kirish bank kvitansiyasi bilan taqqoslangan -Reconciled=Yarashtirildi -NotReconciled=Yarashtirilmagan +BankLineReconciled=Yarashdi +BankLineNotReconciled=Murosaga kelmagan CustomerInvoicePayment=Mijozlar uchun to'lov SupplierInvoicePayment=Sotuvchining to'lovi SubscriptionPayment=Obuna to'lovi @@ -172,8 +172,8 @@ SEPAMandate=SEPA vakolati YourSEPAMandate=Sizning SEPA vakolatingiz FindYourSEPAMandate=Bu sizning kompaniyangizga sizning bankingizda to'g'ridan-to'g'ri debet buyurtma berish huquqini berish uchun sizning SEPA vakolatingiz. Uni imzolangan holda qaytaring (imzolangan hujjatni skanerlash) yoki pochta orqali yuboring AutoReportLastAccountStatement=Taqqoslash paytida avtomatik ravishda 'bank ko'chirma raqami' maydonini oxirgi ko'chirma raqami bilan to'ldiring -CashControl=POS kassasini boshqarish -NewCashFence=Yangi kassa ochilishi yoki yopilishi +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=Harakatlarni ranglang BankColorizeMovementDesc=Agar bu funktsiya yoqilgan bo'lsa, siz debet yoki kredit harakatlari uchun aniq fon rangini tanlashingiz mumkin BankColorizeMovementName1=Debet harakati uchun fon rangi @@ -181,4 +181,7 @@ BankColorizeMovementName2=Kredit harakati uchun fon rangi IfYouDontReconcileDisableProperty=Agar siz ba'zi bir bank hisobvaraqlari bo'yicha banklarni yarashtirmasangiz, ushbu ogohlantirishni olib tashlash uchun ulardagi "%s" xususiyatini o'chirib qo'ying. NoBankAccountDefined=Bank hisob raqami aniqlanmagan NoRecordFoundIBankcAccount=Bank hisob raqamida yozuv topilmadi. Odatda, bu yozuv bank hisobvarag'idagi operatsiyalar ro'yxatidan qo'lda o'chirilganda sodir bo'ladi (masalan, bank hisobvarag'ini taqqoslash paytida). Yana bir sabab shundaki, to'lov "%s" moduli o'chirilganda qayd etilgan. -AlreadyOneBankAccount=Already one bank account defined +AlreadyOneBankAccount=Allaqachon bitta bank hisobi aniqlangan +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA o'tkazmasi: "Kredit o'tkazmasi" darajasida "To'lov turi" +SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=Kredit o'tkazmalari uchun SEPA XML faylini yaratishda "To'lov turi haqida ma'lumot" bo'limi endi "CreditTransferTransactionInformation" bo'limiga joylashtirilishi mumkin ("To'lov" bo'limi o'rniga). PaymentTypeInformation-ni Toʻlov darajasiga qoʻyish uchun ushbu belgini olib qoʻyishni qatʼiy tavsiya qilamiz, chunki barcha banklar uni CreditTransferTransactionInformation darajasida qabul qilishlari shart emas. To'lov turi ma'lumotlarini CreditTransferTransactionMa'lumot darajasiga joylashtirishdan oldin bankingizga murojaat qiling. +ToCreateRelatedRecordIntoBank=Yo'qolgan tegishli bank rekordini yaratish uchun diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang index c05ebdff8b1..31c80c0995c 100644 --- a/htdocs/langs/uz_UZ/bills.lang +++ b/htdocs/langs/uz_UZ/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=To'lovlar to'g'risida hisobotlar PaymentsAlreadyDone=To'lovlar allaqachon amalga oshirilgan PaymentsBackAlreadyDone=Pulni qaytarish allaqachon amalga oshirilgan PaymentRule=To'lov qoidasi -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=To'lov uslubi +PaymentModes=To'lov usullari +DefaultPaymentMode=Standart toʻlov usuli DefaultBankAccount=Standart bank hisobvarag'i -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=Toʻlov usuli (id) +CodePaymentMode=To'lov usuli (kod) +LabelPaymentMode=To'lov usuli (yorliq) +PaymentModeShort=To'lov uslubi PaymentTerm=To'lov muddati PaymentConditions=To'lov shartlari PaymentConditionsShort=To'lov shartlari @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=Xato, to'g'ri hisob-fakturada salbiy miqdor bo'l ErrorInvoiceOfThisTypeMustBePositive=Xato, ushbu turdagi hisob-fakturada soliqdan tashqari (yoki bekor qilingan) soliq miqdori bo'lmagan miqdor bo'lishi kerak ErrorCantCancelIfReplacementInvoiceNotValidated=Xato, boshqa hisob-faktura bilan almashtirilgan fakturani bekor qilish mumkin emas ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Ushbu yoki boshqa qism allaqachon ishlatilgan, shuning uchun chegirmalarni o'chirib bo'lmaydi. +ErrorInvoiceIsNotLastOfSameType=Xato: %s hisob-faktura sanasi %s. U bir xil turdagi hisob-fakturalar uchun oxirgi sanadan keyin yoki unga teng boʻlishi kerak (%s). Iltimos, hisob-faktura sanasini o'zgartiring. BillFrom=Kimdan BillTo=Kimga ActionsOnBill=Hisob-fakturadagi harakatlar @@ -191,7 +192,7 @@ ConfirmClassifyPaidPartiallyReasonDiscount=Qolgan to'lanmagan (%s %s) - ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Qolgan to'lanmagan (%s %s) - bu chegirma, chunki to'lov muddatidan oldin amalga oshirilgan. Ushbu chegirmada QQSni yo'qotishni qabul qilaman. ConfirmClassifyPaidPartiallyReasonDiscountVat=Qolgan to'lanmagan (%s %s) - bu chegirma, chunki to'lov muddatidan oldin amalga oshirilgan. Men ushbu chegirma bo'yicha QQSni kredit yozuvisiz qaytarib olaman. ConfirmClassifyPaidPartiallyReasonBadCustomer=Yomon mijoz -ConfirmClassifyPaidPartiallyReasonBankCharge=Deduction by bank (intermediary bank fees) +ConfirmClassifyPaidPartiallyReasonBankCharge=Bank tomonidan chegirma (vositachi bank to'lovlari) ConfirmClassifyPaidPartiallyReasonProductReturned=Mahsulotlar qisman qaytarildi ConfirmClassifyPaidPartiallyReasonOther=Miqdor boshqa sabablarga ko'ra qoldirilgan ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ushbu tanlov sizning hisob-fakturangizga tegishli izohlar bilan ta'minlangan bo'lsa mumkin. (Masalan «Faqatgina to'langan narxga mos keladigan soliq chegirma huquqini beradi») @@ -199,7 +200,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Ba'zi mamlakatlarda bu tanlov ConfirmClassifyPaidPartiallyReasonAvoirDesc=Agar boshqalari mos kelmasa, ushbu tanlovdan foydalaning ConfirmClassifyPaidPartiallyReasonBadCustomerDesc= yomon mijoz - qarzini to'lashdan bosh tortgan mijoz. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ushbu tanlov to'lov to'liq bo'lmaganda ishlatiladi, chunki ba'zi mahsulotlar qaytarib berildi -ConfirmClassifyPaidPartiallyReasonBankChargeDesc=The unpaid amount is intermediary bank fees, deducted directly from the correct amount paid by the Customer. +ConfirmClassifyPaidPartiallyReasonBankChargeDesc=To'lanmagan summa vositachi bank to'lovlari , to'g'ridan-to'g'ri Mijoz tomonidan to'langan to'g'ridan-to'g'ri chegirib tashlanadi. ConfirmClassifyPaidPartiallyReasonOtherDesc=Agar boshqalar mos kelmasa, ushbu tanlovdan foydalaning, masalan quyidagi vaziyatda:
    - to'lov to'liq emas, chunki ba'zi mahsulotlar orqaga jo'natildi kredit yozuvini yaratish orqali buxgalteriya tizimida. ConfirmClassifyAbandonReasonOther=Boshqalar ConfirmClassifyAbandonReasonOtherDesc=Ushbu tanlov boshqa barcha hollarda qo'llaniladi. Masalan, siz hisob-fakturani almashtirishni rejalashtirganingiz uchun. @@ -240,19 +241,19 @@ RemainderToTake=Qolgan miqdor RemainderToTakeMulticurrency=Qolgan summa, asl valyuta RemainderToPayBack=Pulni qaytarish uchun qolgan mablag ' RemainderToPayBackMulticurrency=Qaytish uchun qolgan summa, asl valyuta -NegativeIfExcessRefunded=negative if excess refunded +NegativeIfExcessRefunded=ortiqcha qaytarilgan taqdirda salbiy Rest=Kutilmoqda AmountExpected=Da'vo qilingan miqdor ExcessReceived=Ortiqcha olingan ExcessReceivedMulticurrency=Ortiqcha qabul qilingan, asl valyuta -NegativeIfExcessReceived=negative if excess received +NegativeIfExcessReceived=ortiqcha qabul qilingan taqdirda salbiy ExcessPaid=Ortiqcha to'langan ExcessPaidMulticurrency=Ortiqcha to'langan, asl valyuta EscompteOffered=Taklif qilingan chegirma (muddatidan oldin to'lov) EscompteOfferedShort=Chegirma SendBillRef=%s hisob-fakturasini taqdim etish SendReminderBillRef=%s hisob-fakturasini taqdim etish (eslatma) -SendPaymentReceipt=Submission of payment receipt %s +SendPaymentReceipt=To'lov kvitansiyasini taqdim etish %s NoDraftBills=Hisob-fakturalar yo‘q NoOtherDraftBills=Boshqa hisob-fakturalar mavjud emas NoDraftInvoices=Hisob-fakturalar yo‘q @@ -269,7 +270,7 @@ DateInvoice=Hisob-faktura sanasi DatePointOfTax=Soliq punkti NoInvoice=Hisob-faktura yo‘q NoOpenInvoice=Ochiq hisob-fakturasi yo‘q -NbOfOpenInvoices=Number of open invoices +NbOfOpenInvoices=Ochiq hisob-fakturalar soni ClassifyBill=Hisob-fakturani tasniflang SupplierBillsToPay=To'lovsiz sotuvchi hisob-fakturalari CustomerBillsUnpaid=To'lovsiz mijozlar uchun hisob-fakturalar @@ -279,9 +280,11 @@ SetMode=To'lov turini o'rnating SetRevenuStamp=Daromad shtampini o'rnating Billed=Hisob-kitob RecurringInvoices=Takroriy hisob-fakturalar -RecurringInvoice=Recurring invoice +RecurringInvoice=Takroriy hisob-faktura RepeatableInvoice=Shablon hisob-fakturasi RepeatableInvoices=Shablon hisob-fakturalari +RecurringInvoicesJob=Takroriy schyot-fakturalarni yaratish (sotish invoyslari) +RecurringSupplierInvoicesJob=Takroriy schyot-fakturalarni yaratish (sotib olish fakturalari) Repeatable=Andoza Repeatables=Shablonlar ChangeIntoRepeatableInvoice=Shablon hisob-fakturasiga aylantirish @@ -426,10 +429,19 @@ PaymentConditionShort14D=14 kun PaymentCondition14D=14 kun PaymentConditionShort14DENDMONTH=Oy tugashining 14 kuni PaymentCondition14DENDMONTH=Oy tugaganidan keyingi 14 kun ichida +PaymentConditionShortDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozit +PaymentConditionDEP30PCTDEL=__DEPOSIT_PERCENT__%% depozit, qolgan qismi yetkazib berishda FixAmount=Ruxsat etilgan miqdor - '%s' yorlig'i bilan 1 qator VarAmount=O'zgaruvchan miqdor (%% tot.) VarAmountOneLine=O'zgaruvchan miqdor (%% tot.) - '%s' yorlig'i bilan 1 qator VarAmountAllLines=O'zgaruvchan miqdor (%% tot.) - kelib chiqadigan barcha satrlar +DepositPercent=Depozit %% +DepositGenerationPermittedByThePaymentTermsSelected=Bunga tanlangan to'lov shartlari ruxsat etiladi +GenerateDeposit=%s%% depozit fakturasini yarating +ValidateGeneratedDeposit=Yaratilgan depozitni tasdiqlang +DepositGenerated=Depozit yaratildi +ErrorCanOnlyAutomaticallyGenerateADepositFromProposalOrOrder=Siz faqat taklif yoki buyurtmadan avtomatik ravishda depozit yaratishingiz mumkin +ErrorPaymentConditionsNotEligibleToDepositCreation=Tanlangan toʻlov shartlari avtomatik depozit yaratish uchun mos emas # PaymentType PaymentTypeVIR=Bank o'tkazmasi PaymentTypeShortVIR=Bank o'tkazmasi @@ -482,6 +494,7 @@ PaymentByChequeOrderedToShort=Chek to'lovlari (soliqni o'z ichiga olgan holda) t SendTo=yuborilgan PaymentByTransferOnThisBankAccount=To'lov quyidagi bank hisob raqamiga o'tkazish orqali VATIsNotUsedForInvoice=* Qo'llanilmaydigan QQS san'ati-293B CGI +VATIsNotUsedForInvoiceAsso=* Qo'llash mumkin bo'lmagan QQS CGI moddasi-261-7 LawApplicationPart1=12.05.08 yildagi 80.335-sonli qonunni qo'llash orqali LawApplicationPart2=tovarlarning mulki bo'lib qoladi LawApplicationPart3=to'liq to'laguniga qadar sotuvchi @@ -599,11 +612,12 @@ BILL_SUPPLIER_DELETEInDolibarr=Ta'minlovchining hisob-fakturasi o'chirildi UnitPriceXQtyLessDiscount=Birlik narxi x Miqdor - chegirma CustomersInvoicesArea=Mijozlarning hisob-kitob maydoni SupplierInvoicesArea=Ta'minlovchining hisob-kitob maydoni -FacParentLine=Hisob-faktura satrining ota-onasi SituationTotalRayToRest=Soliqsiz to'lash uchun qoldiq PDFSituationTitle=Vaziyat n ° %d SituationTotalProgress=Jami taraqqiyot %d %% SearchUnpaidInvoicesWithDueDate=Belgilangan sana = %s bilan to'lanmagan hisob-fakturalarni qidiring NoPaymentAvailable=%s uchun to'lov yo'q PaymentRegisteredAndInvoiceSetToPaid=To'lov qayd etildi va %s hisob -fakturasi to'langan deb belgilandi -SendEmailsRemindersOnInvoiceDueDate=Send reminder by email for unpaid invoices +SendEmailsRemindersOnInvoiceDueDate=Toʻlanmagan hisob-fakturalar uchun elektron pochta orqali eslatma yuboring +MakePaymentAndClassifyPayed=To'lovni qayd etish +BulkPaymentNotPossibleForInvoice=Invoys %s (noto‘g‘ri turi yoki holati) uchun ommaviy to‘lovni amalga oshirib bo‘lmaydi. diff --git a/htdocs/langs/uz_UZ/blockedlog.lang b/htdocs/langs/uz_UZ/blockedlog.lang index 5ed9327f094..449cc4e4bba 100644 --- a/htdocs/langs/uz_UZ/blockedlog.lang +++ b/htdocs/langs/uz_UZ/blockedlog.lang @@ -52,6 +52,6 @@ BlockedLogDisableNotAllowedForCountry=Ushbu moduldan foydalanish majburiy bo'lga OnlyNonValid=Yaroqsiz TooManyRecordToScanRestrictFilters=Skanerlash / tahlil qilish uchun juda ko'p yozuvlar. Iltimos, cheklovli filtrlar bilan ro'yxatni cheklang. RestrictYearToExport=Eksport qilish uchun oyni / yilni cheklang -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. +BlockedLogEnabled=Voqealarni o'zgartirib bo'lmaydigan jurnallarda kuzatish tizimi yoqilgan +BlockedLogDisabled=Voqealarni o'zgartirib bo'lmaydigan jurnallarda kuzatish tizimi bir oz yozib olingandan so'ng o'chirib qo'yildi. Biz zanjirning buzilganligini kuzatish uchun maxsus Barmoq izini saqladik +BlockedLogDisabledBis=Voqealarni oʻzgarmas jurnallarda kuzatish tizimi oʻchirib qoʻyilgan. Bu mumkin, chunki hali hech qanday rekord o'tkazilmagan. diff --git a/htdocs/langs/uz_UZ/bookmarks.lang b/htdocs/langs/uz_UZ/bookmarks.lang index 8b621a35037..d279dd25924 100644 --- a/htdocs/langs/uz_UZ/bookmarks.lang +++ b/htdocs/langs/uz_UZ/bookmarks.lang @@ -15,8 +15,8 @@ UrlOrLink=URL manzili BehaviourOnClick=Xatcho'p URL manzili tanlanganida o'zini tutishi CreateBookmark=Xatcho'p yarating SetHereATitleForLink=Xatcho'p uchun nom o'rnating -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=Tashqi/mutlaq havoladan (https://externalurl.com) yoki ichki/nisbiy havoladan (/mypage.php) foydalaning. Siz 0123456 kabi telefondan ham foydalanishingiz mumkin. ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Bog'langan sahifa joriy yorliqda yoki yangi yorliqda ochilishini tanlang BookmarksManagement=Xatcho'plarni boshqarish BookmarksMenuShortCut=Ctrl + shift + m -NoBookmarks=No bookmarks defined +NoBookmarks=Xatcho‘plar aniqlanmagan diff --git a/htdocs/langs/uz_UZ/boxes.lang b/htdocs/langs/uz_UZ/boxes.lang index b9f0381658e..5a9fd266034 100644 --- a/htdocs/langs/uz_UZ/boxes.lang +++ b/htdocs/langs/uz_UZ/boxes.lang @@ -23,7 +23,7 @@ BoxLastMembersSubscriptions=Eng so'nggi obuna obunalari BoxFicheInter=Oxirgi tadbirlar BoxCurrentAccounts=Hisob balansini oching BoxTitleMemberNextBirthdays=Ushbu oyning tug'ilgan kunlari (a'zolar) -BoxTitleMembersByType=A'zolar turlari bo'yicha +BoxTitleMembersByType=Turi va holati bo'yicha a'zolar BoxTitleMembersSubscriptionsByYear=A'zolar obunalari yil bo'yicha BoxTitleLastRssInfos=%s dan so'nggi %s yangiliklari. BoxTitleLastProducts=Mahsulotlar / xizmatlar: oxirgi %s o'zgartirilgan diff --git a/htdocs/langs/uz_UZ/cashdesk.lang b/htdocs/langs/uz_UZ/cashdesk.lang index 8f595fe5370..df725d1099e 100644 --- a/htdocs/langs/uz_UZ/cashdesk.lang +++ b/htdocs/langs/uz_UZ/cashdesk.lang @@ -50,8 +50,8 @@ Footer=Altbilgi AmountAtEndOfPeriod=Davr oxiridagi summa (kun, oy yoki yil) TheoricalAmount=Nazariy miqdor RealAmount=Haqiqiy miqdor -CashFence=Kassa yopilmoqda -CashFenceDone=Ushbu davr uchun kassa yopilishi amalga oshirildi +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=Nb-fakturalar Paymentnumpad=To'lovni kiritish uchun maydonchaning turi Numberspad=Numbers Pad @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} yorlig'i terminal raqamini qo'sh TakeposGroupSameProduct=Bir xil mahsulot qatorlarini guruhlang StartAParallelSale=Yangi parallel sotuvni boshlang SaleStartedAt=Savdo %s da boshlandi -ControlCashOpening=POS-ni ochishda "Naqd pulni boshqarish" popupini oching -CloseCashFence=Kassa boshqaruvini yoping +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=Naqd hisobot MainPrinterToUse=Foydalanadigan asosiy printer OrderPrinterToUse=Printerdan foydalanishga buyurtma bering @@ -130,7 +130,9 @@ ShowPriceHT = Ustunni narxni soliqsiz hisobga olgan holda ko'rsatish (ekranda) ShowPriceHTOnReceipt = Soliqni hisobga olmagan holda ustunni ko'rsatish (kvitansiyada) CustomerDisplay=Mijozlar displeyi SplitSale=Split sotish -PrintWithoutDetailsButton=Add "Print without details" button -PrintWithoutDetailsLabelDefault=Line label by default on printing without details -PrintWithoutDetails=Print without details -YearNotDefined=Year is not defined +PrintWithoutDetailsButton="Tafsilotlarsiz chop etish" tugmasini qo'shing +PrintWithoutDetailsLabelDefault=Tafsilotlarsiz chop etishda satr yorlig'i sukut bo'yicha +PrintWithoutDetails=Tafsilotlarsiz chop eting +YearNotDefined=Yil aniqlanmagan +TakeposBarcodeRuleToInsertProduct=Mahsulotni kiritish uchun shtrix kod qoidasi +TakeposBarcodeRuleToInsertProductDesc=Skanerlangan shtrix-koddan mahsulot ma'lumotnomasini + miqdorni olish qoidasi.
    Agar bo'sh bo'lsa (standart qiymat), dastur mahsulotni topish uchun skanerlangan to'liq shtrix-koddan foydalanadi.

    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
    diff --git a/htdocs/langs/uz_UZ/categories.lang b/htdocs/langs/uz_UZ/categories.lang index 65b81af5db1..c9fcb14233b 100644 --- a/htdocs/langs/uz_UZ/categories.lang +++ b/htdocs/langs/uz_UZ/categories.lang @@ -90,6 +90,7 @@ CategorieRecursivHelp=Agar parametr yoniq bo'lsa, mahsulotni pastki toifaga qo's AddProductServiceIntoCategory=Quyidagi mahsulot / xizmatni qo'shing AddCustomerIntoCategory=Mijozga toifani tayinlang AddSupplierIntoCategory=Yetkazib beruvchiga toifani tayinlang +AssignCategoryTo=Kategoriyani tayinlang ShowCategory=Teg / toifani ko'rsatish ByDefaultInList=Odatiy bo'lib, ro'yxatda ChooseCategory=Toifani tanlang diff --git a/htdocs/langs/uz_UZ/companies.lang b/htdocs/langs/uz_UZ/companies.lang index 40c1038b273..84dbd2fcdef 100644 --- a/htdocs/langs/uz_UZ/companies.lang +++ b/htdocs/langs/uz_UZ/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Qidiruv maydoni IdThirdParty=Uchinchi shaxs IdCompany=Kompaniya identifikatori IdContact=Aloqa identifikatori +ThirdPartyAddress=Uchinchi tomon manzili ThirdPartyContacts=Uchinchi tomon aloqalari ThirdPartyContact=Uchinchi tomon bilan aloqa / manzil Company=Kompaniya @@ -51,19 +52,22 @@ CivilityCode=Fuqarolik kodi RegisteredOffice=Ro'yxatdan o'tgan ofis Lastname=Familiya Firstname=Ism +RefEmployee=Xodim ma'lumotnomasi +NationalRegistrationNumber=Milliy ro'yxatga olish raqami PostOrFunction=Ish joyi UserTitle=Sarlavha 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Sotuvchi kodi yaroqsiz CustomerCodeModel=Mijoz kodining modeli SupplierCodeModel=Sotuvchi kodining modeli Gencod=Shtrixli kod +GencodBuyPrice=Narx shtrix kodi ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -157,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=- -ProfId5CM=- +ProfId1CM=Id. prof. 1 (savdo reestri) +ProfId2CM=Id. prof. 2 (Soliq to'lovchi raqami) +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=- +ProfId1ShortCM=Savdo reestri +ProfId2ShortCM=Soliq to'lovchi raqami +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=Others ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -283,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=Prof identifikatori 1 (EDRPOU) +ProfId2UA=Prof ID 2 (DRFO) +ProfId3UA=Prof ID 3 (INN) +ProfId4UA=Prof ID 4 (sertifikat) +ProfId5UA=Professor identifikatori 5 (RNOKPP) +ProfId6UA=Prof identifikatori 6 (TRDPAU) ProfId1DZ=RC ProfId2DZ=San'at. ProfId3DZ=NIF @@ -359,7 +364,7 @@ ListOfThirdParties=Uchinchi tomonlarning ro'yxati ShowCompany=Uchinchi tomon ShowContact=Aloqa manzili ContactsAllShort=Hammasi (filtrsiz) -ContactType=Aloqa turi +ContactType=Aloqa roli ContactForOrders=Buyurtmaning aloqasi ContactForOrdersOrShipments=Buyurtma yoki jo'natma bilan aloqa qilish ContactForProposals=Taklifning aloqasi @@ -381,7 +386,7 @@ VATIntraCheck=Tekshiring VATIntraCheckDesc=QQS identifikatorida mamlakat prefiksi bo'lishi kerak. %s havolasida Dolibarr serveridan Internetga kirishni talab qiladigan Evropa QQS tekshiruvi xizmati (VIES) ishlatiladi. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do VATIntraCheckableOnEUSite=Evropa Komissiyasi veb-saytida Jamiyat ichidagi QQS identifikatorini tekshiring -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraManualCheck=Shuningdek, siz Yevropa Komissiyasining veb-saytida qo'lda tekshirishingiz mumkin %s ErrorVATCheckMS_UNAVAILABLE=Tekshirib bo'lmaydi. Chek xizmati a'zo davlat tomonidan taqdim etilmaydi (%s). NorProspectNorCustomer=Istiqbolli ham, mijoz ham emas JuridicalStatus=Xo'jalik yurituvchi sub'ekt turi @@ -439,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 b8a7cb072b1..deb233bb02e 100644 --- a/htdocs/langs/uz_UZ/compta.lang +++ b/htdocs/langs/uz_UZ/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=Ushbu ish haqi kartasini to'langan deb tasniflashni xohlaysizmi DeleteSocialContribution=Ijtimoiy yoki soliq soliq to'lovini o'chirib tashlang DeleteVAT=QQS deklaratsiyasini o'chirib tashlang DeleteSalary=Ish haqi kartasini o'chirib tashlang +DeleteVariousPayment=Turli to'lovlarni o'chirib tashlang ConfirmDeleteSocialContribution=Ushbu ijtimoiy / soliq soliq to'lovini o'chirishni xohlaysizmi? ConfirmDeleteVAT=Ushbu QQS deklaratsiyasini o'chirishni xohlaysizmi? -ConfirmDeleteSalary=Ushbu ish haqini o'chirishni xohlaysizmi? +ConfirmDeleteSalary=Haqiqatan ham bu maoshni oʻchirib tashlamoqchimisiz? +ConfirmDeleteVariousPayment=Haqiqatan ham bu turli toʻlovlarni oʻchirib tashlamoqchimisiz? ExportDataset_tax_1=Ijtimoiy va soliq soliqlari va to'lovlari CalcModeVATDebt=Modda %s majburiyatlarni hisobga olish bo'yicha QQS %s . CalcModeVATEngagement= %s daromad-xarajatlar bo'yicha QQS %s . @@ -170,9 +172,9 @@ SeeReportInInputOutputMode= %s to'lovni tahlil qilishs%s ga asoslanib, < SeeReportInDueDebtMode= %s yozilgan hujjatlarni tahlil qilish %s ga asoslanib, ma'lum yozilgan hujjatlar even ifed SeeReportInBookkeepingMode= %s buxgalteriya hisobi jadvalini tahlil qilish table%s ga asoslangan hisobot uchun buxgalteriya hisobi jadvali a09f89 RulesAmountWithTaxIncluded=- Ko'rsatilgan summalar barcha soliqlarni hisobga olgan holda -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=- Ko'rsatilgan schyot-fakturalar summalari barcha soliqlarsiz +RulesResultDue=- Unga barcha hisob-fakturalar, xarajatlar, QQS, xayriyalar, maoshlar, ular to‘langan yoki to‘lanmaganligi kiradi.
    - Bu schyot-fakturalarning hisob-kitob sanasiga va xarajatlar yoki soliq to'lovlari uchun to'lov sanasiga asoslanadi. Ish haqi uchun muddat tugash sanasi qo'llaniladi. +RulesResultInOut=- U schyot-fakturalar, xarajatlar, QQS va ish haqi bo'yicha amalga oshirilgan real to'lovlarni o'z ichiga oladi.
    - Bu schyot-fakturalar, xarajatlar, QQS, xayriyalar va maoshlarni to'lash sanalariga asoslanadi. RulesCADue=- U mijozning to'lash yoki to'lamasligidan kelib chiqadigan hisob-fakturalarini o'z ichiga oladi.
    - Ushbu hisob-fakturalarning hisob-kitob sanasiga asoslanadi.
    RulesCAIn=- Bu mijozlardan olingan hisob-fakturalarning barcha samarali to'lovlarini o'z ichiga oladi.
    - u ushbu hisob-fakturalarni to'lash sanasiga asoslanadi
    RulesCATotalSaleJournal=U Sotish jurnalidagi barcha kredit liniyalarini o'z ichiga oladi. @@ -287,14 +289,14 @@ ReportPurchaseTurnover=Xarid qilish oboroti schyot-fakturada ReportPurchaseTurnoverCollected=Xarid qilish oboroti yig'ildi IncludeVarpaysInResults = Hisobotlarga turli xil to'lovlarni kiriting IncludeLoansInResults = Hisobotlarga kreditlarni kiriting -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 ? +InvoiceLate30Days = Kechikish (>30 kun) +InvoiceLate15Days = Kech (15 dan 30 kungacha) +InvoiceLateMinus15Days = Kechikish (<15 kun) +InvoiceNotLate = To'planishi kerak (< 15 kun) +InvoiceNotLate15Days = To'planishi kerak (15 dan 30 kungacha) +InvoiceNotLate30Days = To'planishi kerak (> 30 kun) +InvoiceToPay=To'lash uchun (< 15 kun) +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? diff --git a/htdocs/langs/uz_UZ/contracts.lang b/htdocs/langs/uz_UZ/contracts.lang index 2fce31b9ee9..f10a7e9610d 100644 --- a/htdocs/langs/uz_UZ/contracts.lang +++ b/htdocs/langs/uz_UZ/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=Shartnomalar / Obunalar ContractsAndLine=Shartnomalar va shartnomalar liniyasi Contract=Shartnoma ContractLine=Shartnoma liniyasi +ContractLines=Shartnoma liniyalari Closing=Yopish NoContracts=Shartnomalar yo'q MenuServices=Xizmatlar @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=Mijozlar bilan aloqa shartnomasini imz HideClosedServiceByDefault=Sukut bo'yicha yopiq xizmatlarni yashirish ShowClosedServices=Yopiq xizmatlarni ko'rsatish HideClosedServices=Yopiq xizmatlarni yashirish +UserStartingService=Foydalanuvchi ishga tushirish xizmati +UserClosingService=Foydalanuvchini yopish xizmati diff --git a/htdocs/langs/uz_UZ/cron.lang b/htdocs/langs/uz_UZ/cron.lang index 77e3b554a54..f672a8ace02 100644 --- a/htdocs/langs/uz_UZ/cron.lang +++ b/htdocs/langs/uz_UZ/cron.lang @@ -82,6 +82,8 @@ UseMenuModuleToolsToAddCronJobs=Rejalashtirilgan ishlarni ko'rish va tahrirlash JobDisabled=Ish o'chirilgan 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") 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 diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang index b337c73d0d6..180e93377f7 100644 --- a/htdocs/langs/uz_UZ/errors.lang +++ b/htdocs/langs/uz_UZ/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=%s elektron pochtasi noto'g'ri ko'rinadi (domenda MX yozuvi mav ErrorBadUrl=Url %s noto'g'ri ErrorBadValueForParamNotAString=Parametringiz uchun yomon qiymat. Odatda tarjima etishmayotganida qo'shiladi. ErrorRefAlreadyExists= %s ma'lumotnomasi allaqachon mavjud. +ErrorTitleAlreadyExists=Sarlavha %s allaqachon mavjud. ErrorLoginAlreadyExists=%s-ga kirish allaqachon mavjud. ErrorGroupAlreadyExists=%s guruhi allaqachon mavjud. ErrorEmailAlreadyExists=%s elektron pochtasi allaqachon mavjud. @@ -27,9 +28,9 @@ ErrorThisContactIsAlreadyDefinedAsThisType=Ushbu kontakt allaqachon ushbu turdag ErrorCashAccountAcceptsOnlyCashMoney=Ushbu bank hisobvarag'i kassa hisobvarag'i hisoblanadi, shuning uchun u faqat naqd turdagi to'lovlarni qabul qiladi. ErrorFromToAccountsMustDiffers=Bank hisob raqamlarining manbalari va maqsadlari boshqacha bo'lishi kerak. ErrorBadThirdPartyName=Uchinchi tomon nomi uchun noto'g'ri qiymat -ForbiddenBySetupRules=Forbidden by setup rules +ForbiddenBySetupRules=O'rnatish qoidalari bilan taqiqlangan ErrorProdIdIsMandatory=%s majburiydir -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=%s mijozining buxgalteriya kodi majburiydir ErrorBadCustomerCodeSyntax=Mijoz kodi uchun noto'g'ri sintaksis ErrorBadBarCodeSyntax=Shtrixli kod uchun noto'g'ri sintaksis. Ehtimol, siz shtrix-kodning yomon turini o'rnatdingiz yoki skanerlangan qiymatga mos kelmaydigan raqamlash uchun shtrix-niqobni aniqladingiz. ErrorCustomerCodeRequired=Mijoz kodi talab qilinadi @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists= %s ismli boshqa fayl allaqachon mavjud. ErrorPartialFile=Fayl server tomonidan to'liq qabul qilinmadi. ErrorNoTmpDir=Vaqtinchalik to'g'ridan-to'g'ri %s mavjud emas. ErrorUploadBlockedByAddon=Yuklash PHP / Apache plaginlari tomonidan bloklangan. -ErrorFileSizeTooLarge=Fayl hajmi juda katta. +ErrorFileSizeTooLarge=Fayl hajmi juda katta yoki fayl taqdim etilmagan. ErrorFieldTooLong=%s maydoni juda uzun. ErrorSizeTooLongForIntType=Int turi uchun juda uzun (maksimal %s raqam) ErrorSizeTooLongForVarcharType=Ip turi uchun o'lcham juda uzun (%s belgilar maksimal) @@ -91,6 +92,7 @@ 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 ErrorsOnXLines=%s xatolar topildi @@ -113,7 +115,7 @@ ErrorFailedToLoadRSSFile=RSS tasmasini ololmadi. Xato xabarlari etarli ma'lumot ErrorForbidden=Ruxsat yo'q.
    Siz o'chirib qo'yilgan modulning sahifasiga, maydoniga yoki xususiyatiga yoki autentifikatsiya qilingan sessiyada bo'lmasdan yoki foydalanuvchingizga ruxsat berilmagan holda kirishga harakat qilasiz. ErrorForbidden2=Ushbu kirish uchun ruxsat sizning Dolibarr administratoringiz tomonidan %s-> %s menyusidan aniqlanishi mumkin. ErrorForbidden3=Dolibarr autentifikatsiya qilingan seans orqali ishlatilmaydi. Autentifikatsiyani qanday boshqarishni bilish uchun Dolibarrni sozlash bo'yicha hujjatlarni ko'rib chiqing (htaccess, mod_auth yoki boshqa ...). -ErrorForbidden4=Note: clear your browser cookies to destroy existing sessions for this login. +ErrorForbidden4=Eslatma: ushbu login uchun mavjud sessiyalarni yo'q qilish uchun brauzeringiz cookie-fayllarini tozalang. ErrorNoImagickReadimage=Imagick sinfi ushbu PHP-da mavjud emas. Hech qanday oldindan ko'rish mumkin emas. Administrator ushbu yorliqni O'rnatish - Displey menyusidan o'chirib qo'yishi mumkin. ErrorRecordAlreadyExists=Yozuv allaqachon mavjud ErrorLabelAlreadyExists=Ushbu yorliq allaqachon mavjud @@ -269,19 +271,31 @@ 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=Can't execute command "id" -ErrorBadCharIntoLoginName=Unauthorized character in the login name -ErrorRequestTooLarge=Error, request too large +ErrorExecIdFailed="ID" buyrug'ini bajarib bo'lmadi +ErrorBadCharIntoLoginName=Kirish nomidagi ruxsatsiz belgi +ErrorRequestTooLarge=Xato, soʻrov juda katta +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 +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=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 # 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. @@ -311,6 +325,7 @@ 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 # Validate RequireValidValue = Qiymat yaroqsiz @@ -318,7 +333,7 @@ RequireAtLeastXString = Kamida %s belgi kerak RequireXStringMax = Maksimal %s belgidan iborat bo'lishi kerak RequireAtLeastXDigits = Kamida %s ta raqamni talab qiladi RequireXDigitsMax = Maksimal %s raqam (lar) ni talab qiladi -RequireValidNumeric = Requires a numeric value +RequireValidNumeric = Raqamli qiymat talab qiladi RequireValidEmail = E -pochta manzili yaroqsiz RequireMaxLength = Uzunligi %s belgidan kam bo'lishi kerak RequireMinLength = Uzunlik %s char (lar) dan oshishi kerak diff --git a/htdocs/langs/uz_UZ/eventorganization.lang b/htdocs/langs/uz_UZ/eventorganization.lang index 34a3bc9eec6..5e2479ff6aa 100644 --- a/htdocs/langs/uz_UZ/eventorganization.lang +++ b/htdocs/langs/uz_UZ/eventorganization.lang @@ -37,17 +37,18 @@ EventOrganization=Tadbirni tashkil qilish Settings=Sozlamalar EventOrganizationSetupPage = Tadbirni tashkil etish sahifasi EVENTORGANIZATION_TASK_LABEL = Loyiha tasdiqlanganda avtomatik ravishda yaratiladigan vazifalar yorlig'i -EVENTORGANIZATION_TASK_LABELTooltip = Agar tashkil etilgan tadbirda tasdiqlashimiz bo'lsa, ba'zi vazifalar avtomatik ravishda Masalan loyiha

    yaratilgan bo'lishi mumkin: konferensiyasi uchun
    Send qo'ng'iroq
    tashrif buyurganlar uchun voqealarga ochiq obuna
    But uchun qo'ng'iroq olish
    konferentsiyalar uchun qo'ng'iroq olish
    But chaqiraman yuborish
    Tadbirni ma'ruzachilarga eslatib turish +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
    Ma'ruzachilarga voqea haqida eslatma yuborish
    Booth hostersga voqea haqida eslatma yuborish
    Ishtirokchilarga voqea haqida eslatma yuborish +EVENTORGANIZATION_TASK_LABELTooltip2=Vazifalarni avtomatik ravishda yaratish kerak bo'lmasa, bo'sh qoldiring. EVENTORGANIZATION_CATEG_THIRDPARTY_CONF = Kimdir konferentsiya taklif qilganda avtomatik ravishda tuziladigan uchinchi tomonlarga qo'shiladigan toifadir EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH = Uchinchi shaxslarga qo'shiladigan toifani, ular stendni taklif qilganda avtomatik ravishda yaratiladi EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF = Konferentsiya taklifini olgandan so'ng yuborish uchun elektron pochta shablonini. EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH = Stend taklifini olgandan keyin yuborish uchun elektron pochta shablonini. -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_BOOTH = Stendga ro'yxatdan o'tgandan keyin to'langan elektron pochta shablonini yuborish. EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = Tadbirga ro'yxatdan o'tgandan so'ng yuboriladigan elektron pochta shablonini. -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_BULK_SPEAKER = Massajdan elektron pochta xabarlarini jo'natishda foydalanish uchun elektron pochta shabloni "Elektron pochta xabarlarini jo'natish" karnaylarga +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = Ishtirokchilar ro'yxatidagi "E-pochta xabarlarini yuborish" massajidan elektron pochta xabarlarini yuborishda foydalanish uchun elektron pochta shabloni +EVENTORGANIZATION_FILTERATTENDEES_CAT = Ishtirokchini yaratish/qo'shish shaklida uchinchi shaxslar ro'yxatini toifadagi uchinchi shaxslarga cheklaydi +EVENTORGANIZATION_FILTERATTENDEES_TYPE = Ishtirokchini yaratish/qo'shish shaklida, tabiat bilan uchinchi shaxslar ro'yxatini cheklaydi # # Object @@ -71,27 +72,27 @@ EventOrganizationEmailBoothPayment = Stendingizning to'lovi EventOrganizationEmailRegistrationPayment = Tadbir uchun ro'yxatdan o'tish EventOrganizationMassEmailAttendees = Ishtirokchilar bilan aloqa EventOrganizationMassEmailSpeakers = Spikerlar bilan aloqa -ToSpeakers=To speakers +ToSpeakers=Spikerlarga # # 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=Odamlarga konferentsiya taklif qilishiga ruxsat bering +AllowUnknownPeopleSuggestConfHelp=Noma'lum odamlarga o'zlari xohlagan konferentsiyani taklif qilishlariga ruxsat bering +AllowUnknownPeopleSuggestBooth=Odamlarga stendga murojaat qilishlariga ruxsat bering +AllowUnknownPeopleSuggestBoothHelp=Noma'lum odamlarga stendga murojaat qilishlariga ruxsat bering PriceOfRegistration=Ro'yxatdan o'tish narxi PriceOfRegistrationHelp=Ro'yxatdan o'tish yoki tadbirda qatnashish uchun to'lanadigan narx PriceOfBooth=Stendda turish uchun obuna narxi PriceOfBoothHelp=Stendda turish uchun obuna narxi -EventOrganizationICSLink=Link ICS for conferences +EventOrganizationICSLink=Konferentsiyalar uchun ICS havolasi ConferenceOrBoothInformation=Konferentsiya yoki stend ma'lumotlari Attendees=Ishtirokchilar ListOfAttendeesOfEvent=Loyiha ishtirokchilari ro'yxati DownloadICSLink = ICS havolasini yuklab oling -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference +EVENTORGANIZATION_SECUREKEY = Konferentsiyani taklif qilish uchun ommaviy ro'yxatga olish sahifasi kalitini himoya qilish uchun urug' SERVICE_BOOTH_LOCATION = Stend joylashgan joy haqida hisob-faktura qatori uchun ishlatiladigan xizmat -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Tadbir ishtirokchisining obunasi haqidagi hisob-faktura qatori uchun foydalanilgan xizmat NbVotes=Ovozlar soni # # Status @@ -107,9 +108,9 @@ EvntOrgCancelled = Bekor qilindi # SuggestForm = Takliflar sahifasi SuggestOrVoteForConfOrBooth = Taklif yoki ovoz berish uchun sahifa -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. +EvntOrgRegistrationHelpMessage = Bu yerda siz konferentsiya uchun ovoz berishingiz yoki tadbir uchun yangisini taklif qilishingiz mumkin. Shuningdek, tadbir davomida stendga ega bo'lish uchun ariza topshirishingiz mumkin. +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 @@ -137,10 +138,10 @@ OrganizationEventPaymentOfBoothWasReceived=Stend uchun to'lovingiz qayd etildi OrganizationEventPaymentOfRegistrationWasReceived=Tadbirni ro'yxatdan o'tkazish uchun to'lovingiz qayd etildi OrganizationEventBulkMailToAttendees=Bu sizning tadbirda ishtirokchi sifatida ishtirok etishingizni eslatadi OrganizationEventBulkMailToSpeakers=Bu sizning ma'ruzachi sifatida tadbirda ishtirok etishingizni eslatadi -OrganizationEventLinkToThirdParty=Link to third party (customer, supplier or partner) +OrganizationEventLinkToThirdParty=Uchinchi shaxsga havola (mijoz, yetkazib beruvchi yoki hamkor) -NewSuggestionOfBooth=Application for a booth -NewSuggestionOfConference=Application for a conference +NewSuggestionOfBooth=Stend uchun ariza +NewSuggestionOfConference=Konferentsiya uchun ariza # # Vote page @@ -158,10 +159,11 @@ ConfAttendeeSubscriptionConfirmation = Tadbirga obunangizni tasdiqlash Attendee = Ishtirokchi PaymentConferenceAttendee = Konferentsiya qatnashchilarining to'lovlari PaymentBoothLocation = Stend joylashgan joy uchun to'lov -DeleteConferenceOrBoothAttendee=Remove attendee +DeleteConferenceOrBoothAttendee=Ishtirokchini olib tashlash RegistrationAndPaymentWereAlreadyRecorder= %s elektron pochta uchun ro'yxatdan o'tish va to'lov allaqachon qayd qilingan. EmailAttendee=Ishtirokchining elektron pochtasi 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 -NoPublicActionsAllowedForThisEvent=No public actions are open to public for this event +NoPublicActionsAllowedForThisEvent=Ushbu tadbir uchun ochiq aksiyalar ochiq emas +MaxNbOfAttendees=Maksimal ishtirokchilar soni diff --git a/htdocs/langs/uz_UZ/exports.lang b/htdocs/langs/uz_UZ/exports.lang index f35419a7018..d48bbad44f0 100644 --- a/htdocs/langs/uz_UZ/exports.lang +++ b/htdocs/langs/uz_UZ/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=Qator turi (0 = mahsulot, 1 = xizmat) FileWithDataToImport=Import qilish uchun ma'lumotlar bilan fayl FileToImport=Import qilish uchun manba fayl FileMustHaveOneOfFollowingFormat=Import qilish uchun fayl quyidagi formatlardan biriga ega bo'lishi kerak -DownloadEmptyExample=Shablon faylini maydon tarkibidagi ma'lumotlar bilan yuklab oling -StarAreMandatory=* majburiy maydonlar +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=Faylni import qilish formati sifatida tanlang, uni tanlash uchun %s belgisini bosing ... ChooseFileToImport=Faylni yuklang, so'ngra faylni manba import fayli sifatida tanlash uchun %s belgisini bosing ... SourceFileFormat=Manba fayl formati @@ -135,3 +135,6 @@ NbInsert=Kiritilgan qatorlar soni: %s NbUpdate=Yangilangan qatorlar soni: %s MultipleRecordFoundWithTheseFilters=Ushbu filtrlar yordamida bir nechta yozuvlar topildi: %s StocksWithBatch=Partiya / seriya raqami bo'lgan mahsulot zaxiralari va joylashuvi (ombor) +WarningFirstImportedLine=Birinchi qator(lar) joriy tanlov bilan import qilinmaydi +NotUsedFields=Ma'lumotlar bazasi maydonlaridan foydalanilmaydi +SelectImportFieldsSource = Import qilmoqchi bo'lgan manba fayl maydonlarini va ularning ma'lumotlar bazasidagi maqsadli maydonini har bir tanlash qutisidagi maydonlarni tanlash orqali tanlang yoki oldindan belgilangan import profilini tanlang: 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/help.lang b/htdocs/langs/uz_UZ/help.lang index 72cef81e44e..d089fbc28f9 100644 --- a/htdocs/langs/uz_UZ/help.lang +++ b/htdocs/langs/uz_UZ/help.lang @@ -20,4 +20,4 @@ BackToHelpCenter=Aks holda, yordam markazining asosiy sahifasi %s +SeeOfficalSupport=Sizning tilingizda rasmiy Dolibarr yordami uchun:
    %s a09a4b739f170 diff --git a/htdocs/langs/uz_UZ/holiday.lang b/htdocs/langs/uz_UZ/holiday.lang index c604879c579..761eafd5b14 100644 --- a/htdocs/langs/uz_UZ/holiday.lang +++ b/htdocs/langs/uz_UZ/holiday.lang @@ -27,7 +27,7 @@ DescCP=Tavsif SendRequestCP=Dam olish uchun so'rov yarating DelayToRequestCP=Dam olish uchun so'rovlar kamida %s kun (lar) dan oldin amalga oshirilishi kerak. MenuConfCP=Ta'til qoldig'i -SoldeCPUser=Leave balance (in days) %s +SoldeCPUser=Balansni qoldirish (kunlarda) %s ErrorEndDateCP=Boshlanish sanasidan kattaroq tugash sanasini tanlashingiz kerak. ErrorSQLCreateCP=Yaratish paytida SQL xatosi paydo bo'ldi: ErrorIDFicheCP=Xatolik yuz berdi, ta'til so'rovi mavjud emas. @@ -134,6 +134,6 @@ HolidaysToApprove=Bayramlarni tasdiqlash NobodyHasPermissionToValidateHolidays=Bayramlarni tasdiqlash uchun hech kimning ruxsati yo'q HolidayBalanceMonthlyUpdate=Dam olish balansining oylik yangilanishi XIsAUsualNonWorkingDay=%s odatda NON ish kuni hisoblanadi -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=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 diff --git a/htdocs/langs/uz_UZ/hrm.lang b/htdocs/langs/uz_UZ/hrm.lang index 19789f88f9c..99d100ed717 100644 --- a/htdocs/langs/uz_UZ/hrm.lang +++ b/htdocs/langs/uz_UZ/hrm.lang @@ -12,70 +12,80 @@ 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 Employee=Xodim NewEmployee=Yangi ishchi ListOfEmployees=Xodimlar ro'yxati -HrmSetup=HRM module setup -HRM_MAXRANK=Maximum rank for a skill -HRM_DEFAULT_SKILL_DESCRIPTION=Default description of ranks when skill is created +HrmSetup=HRM modulini sozlash +SkillsManagement=Ko'nikmalarni boshqarish +HRM_MAXRANK=Qobiliyatni darajalash uchun maksimal darajalar soni +HRM_DEFAULT_SKILL_DESCRIPTION=Ko'nikma yaratilganda darajalarning standart tavsifi deplacement=Shift -DateEval=Evaluation date -JobCard=Job card -Job=Job -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=Position -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 -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 -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 +DateEval=Baholash sanasi +JobCard=Ish kartasi +JobPosition=Ish +JobsPosition=Ishlar +NewSkill=Yangi mahorat +SkillType=Malaka turi +Skilldets=Ushbu mahorat uchun darajalar ro'yxati +Skilldet=Malaka darajasi +rank=Daraja +ErrNoSkillSelected=Hech qanday mahorat tanlanmagan +ErrSkillAlreadyAdded=Ushbu mahorat allaqachon ro'yxatda +SkillHasNoLines=Bu mahorat hech qanday chiziqqa ega emas +skill=Malaka +Skills=Ko'nikmalar +SkillCard=Malaka kartasi +EmployeeSkillsUpdated=Xodimlarning malakasi yangilandi (xodimlar kartasining "Ko'nikmalar" yorlig'iga qarang) +Eval=Baholash +Evals=Baholar +NewEval=Yangi baholash +ValidateEvaluation=Baholashni tasdiqlash +ConfirmValidateEvaluation=Haqiqatan ham bu baholashni %s havolasi bilan tasdiqlamoqchimisiz? +EvaluationCard=Baholash kartasi +RequiredRank=Ushbu ish uchun zarur daraja +EmployeeRank=Ushbu mahorat uchun xodim darajasi +EmployeePosition=Xodimning pozitsiyasi +EmployeePositions=Xodimlarning lavozimlari +EmployeesInThisPosition=Ushbu lavozimdagi xodimlar +group1ToCompare=Tahlil qilish uchun foydalanuvchi guruhi +group2ToCompare=Taqqoslash uchun ikkinchi foydalanuvchi guruhi +OrJobToCompare=Ish qobiliyatlari talablari bilan solishtiring +difference=Farq +CompetenceAcquiredByOneOrMore=Bir yoki bir nechta foydalanuvchilar tomonidan olingan, ammo ikkinchi taqqoslash tomonidan so'ralmagan vakolat +MaxlevelGreaterThan=Maksimal daraja talab qilinganidan kattaroq +MaxLevelEqualTo=Maksimal daraja bu talabga teng +MaxLevelLowerThan=Maksimal daraja bu talabdan past +MaxlevelGreaterThanShort=Xodimlar darajasi talab qilinganidan yuqori +MaxLevelEqualToShort=Xodimlar darajasi bu talabga teng +MaxLevelLowerThanShort=Xodimlar darajasi bu talabdan past +SkillNotAcquired=Ko'nikmalar hamma foydalanuvchilar tomonidan qo'lga kiritilmagan va ikkinchi taqqoslashchi tomonidan talab qilingan +legend=Afsona +TypeSkill=Malaka turi +AddSkill=Ishga malaka qo'shing +RequiredSkills=Ushbu ish uchun zarur bo'lgan ko'nikmalar +UserRank=Foydalanuvchi darajasi +SkillList=Ko'nikmalar ro'yxati +SaveRank=Darajani saqlang +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 +HowManyUserWithThisMaxNote=Ushbu darajadagi foydalanuvchilar soni +HighestRank=Eng yuqori daraja +SkillComparison=Ko'nikmalarni taqqoslash +ActionsOnJob=Ushbu ish bo'yicha voqealar +VacantPosition=bo'sh ish o'rni +VacantCheckboxHelper=Ushbu parametr belgilansa, to'ldirilmagan lavozimlar ko'rsatiladi (vakansiya) +SaveAddSkill = Qo'shilgan malaka(lar). +SaveLevelSkill = Ko'nikma(lar) darajasi saqlangan +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 9d153e8aead..acc7e24720e 100644 --- a/htdocs/langs/uz_UZ/install.lang +++ b/htdocs/langs/uz_UZ/install.lang @@ -8,6 +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=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. @@ -16,13 +17,6 @@ PHPMemoryOK=Sizning PHP maksimal sessiya xotirangiz %s ga o'rnatildi. B PHPMemoryTooLow=PHP max sessiya xotirasi %s baytga o'rnatilgan. Bu juda past. php.ini ni o'zgartiring memory_limit parametrini kamida %s Recheck=Batafsil sinov uchun bu erni bosing ErrorPHPDoesNotSupportSessions=PHP o'rnatishingiz seanslarni qo'llab-quvvatlamaydi. Ushbu xususiyat Dolibarr ishlashiga ruxsat berish uchun talab qilinadi. PHP-ni sozlashni va sessiyalar katalogining ruxsatlarini tekshiring. -ErrorPHPDoesNotSupportGD=PHP o'rnatishingiz GD grafik funktsiyalarini qo'llab-quvvatlamaydi. Hech qanday grafik mavjud bo'lmaydi. -ErrorPHPDoesNotSupportCurl=PHP o'rnatishingiz Curl-ni qo'llab-quvvatlamaydi. -ErrorPHPDoesNotSupportCalendar=PHP o'rnatishingiz PHP kalendar kengaytmalarini qo'llab-quvvatlamaydi. -ErrorPHPDoesNotSupportUTF8=PHP o'rnatishingiz UTF8 funktsiyalarini qo'llab-quvvatlamaydi. Dolibarr to'g'ri ishlay olmaydi. Dolibarr dasturini o'rnatishdan oldin buni hal qiling. -ErrorPHPDoesNotSupportIntl=PHP o'rnatishingiz Intl funktsiyalarini qo'llab-quvvatlamaydi. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=PHP o'rnatishingiz kengaytirilgan disk raskadrovka funktsiyalarini qo'llab-quvvatlamaydi. ErrorPHPDoesNotSupport=PHP o'rnatishingiz %s funktsiyalarini qo'llab-quvvatlamaydi. ErrorDirDoesNotExists=%s katalogi mavjud emas. ErrorGoBackAndCorrectParameters=Orqaga qayting va parametrlarni tekshiring / to'g'rilang. @@ -30,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. @@ -114,7 +110,7 @@ ServerVersion=Ma'lumotlar bazasi serveri versiyasi YouMustCreateItAndAllowServerToWrite=Siz ushbu katalogni yaratishingiz va unga veb-serverning yozishiga ruxsat berishingiz kerak. DBSortingCollation=Belgilarni saralash tartibi YouAskDatabaseCreationSoDolibarrNeedToConnect=Siz ma'lumotlar bazasini yaratishni tanladingiz %s , lekin buning uchun Dolibarr serverga super user ulanishi kerak %s %s -YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user %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=Ma'lumotlar bazasi ulanishi muvaffaqiyatsiz tugadi: xost yoki super foydalanuvchi parametrlari noto'g'ri bo'lishi kerak. OrphelinsPaymentsDetectedByMethod=%s usuli bilan etim bolalar uchun to'lov aniqlandi RemoveItManuallyAndPressF5ToContinue=Uni qo'lda olib tashlang va davom ettirish uchun F5 tugmasini bosing. diff --git a/htdocs/langs/uz_UZ/interventions.lang b/htdocs/langs/uz_UZ/interventions.lang index 3403d250341..de093348384 100644 --- a/htdocs/langs/uz_UZ/interventions.lang +++ b/htdocs/langs/uz_UZ/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=Interventsiya shabloni ToCreateAPredefinedIntervention=Oldindan belgilangan yoki takrorlanadigan aralashuvni yaratish uchun umumiy aralashuvni yarating va uni aralashuv shabloniga o'zgartiring ConfirmReopenIntervention=Siz aralashuvni qayta ochishni xohlaysizmi %s ? GenerateInter=Interventsiya yarating +FichinterNoContractLinked=Intervention %s bog'langan shartnomasiz yaratilgan. +ErrorFicheinterCompanyDoesNotExist=Kompaniya mavjud emas. Intervensiya yaratilmagan. diff --git a/htdocs/langs/uz_UZ/knowledgemanagement.lang b/htdocs/langs/uz_UZ/knowledgemanagement.lang index afee3d77e80..8311d8e14c7 100644 --- a/htdocs/langs/uz_UZ/knowledgemanagement.lang +++ b/htdocs/langs/uz_UZ/knowledgemanagement.lang @@ -46,9 +46,9 @@ 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=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=Eskirgan deb belgilang +ConfirmCloseKM=Ushbu maqolaning yopilishini eskirgan deb tasdiqlaysizmi? +ConfirmReopenKM=Ushbu maqolani "Tasdiqlangan" holatiga qaytarmoqchimisiz? diff --git a/htdocs/langs/uz_UZ/languages.lang b/htdocs/langs/uz_UZ/languages.lang index f9d82f734bf..a4a62e0734c 100644 --- a/htdocs/langs/uz_UZ/languages.lang +++ b/htdocs/langs/uz_UZ/languages.lang @@ -1,8 +1,9 @@ # Dolibarr language file - Source file is en_US - languages Language_am_ET=Efiopiya Language_ar_AR=Arabcha -Language_ar_DZ=Arabic (Algeria) +Language_ar_DZ=Arab (Jazoir) Language_ar_EG=Arab (Misr) +Language_ar_JO=Arab (Iordaniya) Language_ar_MA=Arabcha (Maroko) Language_ar_SA=Arabcha Language_ar_TN=Arab (Tunis) @@ -15,6 +16,7 @@ Language_bg_BG=Bolgar Language_bs_BA=Bosniya Language_ca_ES=Kataloniya Language_cs_CZ=Chex +Language_cy_GB=uels Language_da_DA=Daniya Language_da_DK=Daniya Language_de_DE=Nemis @@ -22,6 +24,7 @@ Language_de_AT=Nemis (Avstriya) Language_de_CH=Nemis (Shveytsariya) Language_el_GR=Yunoncha Language_el_CY=Yunon (Kipr) +Language_en_AE=Ingliz (Birlashgan Arab Amirliklari) Language_en_AU=Ingliz (Avstraliya) Language_en_CA=Ingliz (Kanada) Language_en_GB=Ingliz (Buyuk Britaniya) @@ -74,7 +77,7 @@ Language_it_IT=Italyancha Language_it_CH=Italiya (Shveytsariya) Language_ja_JP=Yapon Language_ka_GE=Gruzin -Language_kk_KZ=Kazakh +Language_kk_KZ=qozoq Language_km_KH=Kxmer Language_kn_IN=Kannada Language_ko_KR=Koreys @@ -83,6 +86,7 @@ Language_lt_LT=Litva Language_lv_LV=Latviya Language_mk_MK=Makedoniya Language_mn_MN=Mo'g'ul +Language_my_MM=Birma Language_nb_NO=Norvegiya (Bokmal) Language_ne_NP=Nepal Language_nl_BE=Golland (Belgiya) @@ -95,7 +99,8 @@ Language_ro_MD=Rumin (Moldaviya) Language_ro_RO=Rumin Language_ru_RU=Ruscha Language_ru_UA=Rus (Ukraina) -Language_tg_TJ=Tajik +Language_ta_IN=tamil +Language_tg_TJ=tojik Language_tr_TR=Turkcha Language_sl_SI=Slovencha Language_sv_SV=Shved @@ -106,6 +111,7 @@ Language_sr_RS=Serb Language_sw_SW=Kisvaxili Language_th_TH=Tailandcha Language_uk_UA=Ukrain +Language_ur_PK=urdu Language_uz_UZ=O'zbek Language_vi_VN=Vetnam Language_zh_CN=Xitoy diff --git a/htdocs/langs/uz_UZ/ldap.lang b/htdocs/langs/uz_UZ/ldap.lang index 4ec26b1662a..5a467afc145 100644 --- a/htdocs/langs/uz_UZ/ldap.lang +++ b/htdocs/langs/uz_UZ/ldap.lang @@ -25,3 +25,7 @@ ContactSynchronized=Aloqa sinxronlashtirildi ForceSynchronize=Dolibarr -> LDAP-ni sinxronlashtirishni majburlash ErrorFailedToReadLDAP=LDAP ma'lumotlar bazasini o'qib bo'lmadi. LDAP modulini sozlashni va ma'lumotlar bazasiga kirishni tekshiring. PasswordOfUserInLDAP=LDAP-dagi foydalanuvchi paroli +LDAPPasswordHashType=Parol xesh turi +LDAPPasswordHashTypeExample=Serverda ishlatiladigan parol xesh turi +SupportedForLDAPExportScriptOnly=Faqat ldap eksport skripti tomonidan quvvatlanadi +SupportedForLDAPImportScriptOnly=Faqat ldap import skripti tomonidan qo'llab-quvvatlanadi diff --git a/htdocs/langs/uz_UZ/loan.lang b/htdocs/langs/uz_UZ/loan.lang index 204de3d76eb..bdd45c1798b 100644 --- a/htdocs/langs/uz_UZ/loan.lang +++ b/htdocs/langs/uz_UZ/loan.lang @@ -24,7 +24,7 @@ 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 diff --git a/htdocs/langs/uz_UZ/mails.lang b/htdocs/langs/uz_UZ/mails.lang index 44ec7d5e110..624ee5c9967 100644 --- a/htdocs/langs/uz_UZ/mails.lang +++ b/htdocs/langs/uz_UZ/mails.lang @@ -60,7 +60,7 @@ EMailTestSubstitutionReplacedByGenericValues=Sinov rejimidan foydalanganda almas MailingAddFile=Ushbu faylni biriktiring NoAttachedFiles=Biriktirilgan fayllar yo'q BadEMail=Elektron pochta uchun yomon qiymat -EMailNotDefined=Email not defined +EMailNotDefined=Elektron pochta aniqlanmagan ConfirmCloneEMailing=Ushbu elektron pochtani klonlamoqchimisiz? CloneContent=Xabarni klonlash CloneReceivers=Kloner qabul qiluvchilar @@ -135,7 +135,7 @@ AddNewNotification=Yangi avtomatik elektron xabarnomaga obuna bo'ling (maqsad / ListOfActiveNotifications=Avtomatik elektron pochta orqali xabar berish uchun barcha faol obunalar ro'yxati (maqsadlar / hodisalar) ListOfNotificationsDone=Yuborilgan barcha avtomatik elektron xabarnomalar ro'yxati MailSendSetupIs=Elektron pochta xabarlarini jo'natish konfiguratsiyasi '%s' ga o'rnatildi. Ushbu rejimdan ommaviy elektron pochta xabarlarini yuborish uchun foydalanib bo'lmaydi. -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. +MailSendSetupIs2= '%s' parametrini a0a65d091z08'a modec'9780f use'ga o'zgartirish uchun avval administrator hisobi bilan %sHome - O'rnatish - EMails%s menyusiga kirishingiz kerak. Ushbu rejim yordamida siz Internet-provayderingiz tomonidan taqdim etilgan SMTP server sozlamalariga kirishingiz va Ommaviy elektron pochta xabarlarini yuborish funksiyasidan foydalanishingiz mumkin. MailSendSetupIs3=SMTP-serveringizni sozlash bo'yicha savollaringiz bo'lsa, %s ga murojaat qilishingiz mumkin. YouCanAlsoUseSupervisorKeyword=Shuningdek, foydalanuvchi rahbariga elektron pochta xabarlarini yuborish uchun __SUPERVISOREMAIL__ kalit so'zini qo'shishingiz mumkin (faqat ushbu nazoratchi uchun elektron pochta manzili belgilangan taqdirda ishlaydi) NbOfTargetedContacts=Maqsadli elektron pochta xabarlarining joriy soni diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index 690c45522f0..988227de258 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -67,7 +67,7 @@ ErrorNoVATRateDefinedForSellerCountry=Xato, '%s' mamlakati uchun QQS stavkalari ErrorNoSocialContributionForSellerCountry=Xato, '%s' mamlakati uchun ijtimoiy / soliq soliqlari turi aniqlanmagan. ErrorFailedToSaveFile=Xato, faylni saqlab bo'lmadi. ErrorCannotAddThisParentWarehouse=Siz allaqachon mavjud bo'lgan omborning farzandi bo'lgan ota-ona omborini qo'shishga harakat qilyapsiz -FieldCannotBeNegative=Field "%s" cannot be negative +FieldCannotBeNegative="%s" maydoni salbiy bo'lishi mumkin emas MaxNbOfRecordPerPage=Maks. bir varaqdagi yozuvlar soni NotAuthorized=Buning uchun sizning vakolatingiz yo'q. SetDate=Sana belgilang @@ -88,7 +88,7 @@ FileWasNotUploaded=Fayl biriktirish uchun tanlangan, ammo hali yuklanmagan. Buni NbOfEntries=Yozuvlar soni GoToWikiHelpPage=Onlayn yordamni o'qing (Internetga kirish kerak) GoToHelpPage=Yordamni o'qing -DedicatedPageAvailable=Dedicated help page related to your current screen +DedicatedPageAvailable=Joriy ekraningizga tegishli yordam sahifasi HomePage=Bosh sahifa RecordSaved=Yozuv saqlandi RecordDeleted=Yozuv o'chirildi @@ -115,7 +115,7 @@ ReturnCodeLastAccessInError=So'nggi ma'lumotlar bazasiga kirish uchun so'rov xat InformationLastAccessInError=So'nggi ma'lumotlar bazasiga kirish so'rovining xatosi haqida ma'lumot DolibarrHasDetectedError=Dolibarr texnik xatolikni aniqladi YouCanSetOptionDolibarrMainProdToZero=Qo'shimcha ma'lumot olish uchun log faylini o'qishingiz yoki konfiguratsiya faylingizda $ dolibarr_main_prod parametrini '0' ga o'rnatishingiz mumkin. -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to hide sensitive information) +InformationToHelpDiagnose=Ushbu ma'lumot diagnostika maqsadlarida foydali bo'lishi mumkin (siz maxfiy ma'lumotlarni yashirish uchun $dolibarr_main_prod parametrini "1" ga o'rnatishingiz mumkin) MoreInformation=Qo'shimcha ma'lumot TechnicalInformation=Texnik ma'lumotlar TechnicalID=Texnik guvohnoma @@ -212,8 +212,8 @@ User=Foydalanuvchi Users=Foydalanuvchilar Group=Guruh Groups=Guruhlar -UserGroup=User group -UserGroups=User groups +UserGroup=Foydalanuvchilar guruhi +UserGroups=Foydalanuvchi guruhlari NoUserGroupDefined=Hech qanday foydalanuvchi guruhi aniqlanmagan Password=Parol PasswordRetype=Parolingizni qayta kiriting @@ -244,6 +244,7 @@ Designation=Tavsif DescriptionOfLine=Chiziq tavsifi DateOfLine=Qator sana DurationOfLine=Qator davomiyligi +ParentLine=Asosiy qator identifikatori Model=Hujjat shabloni DefaultModel=Standart hujjat shabloni Action=Tadbir @@ -344,7 +345,7 @@ KiloBytes=Kilobayt MegaBytes=Megabayt GigaBytes=Gigabayt TeraBytes=Terabayt -UserAuthor=Tomonidan belgilangan +UserAuthor=Created by UserModif=Tomonidan yangilangan b=b. Kb=Kb @@ -517,6 +518,7 @@ or=yoki Other=Boshqalar Others=Boshqalar OtherInformations=Boshqa ma'lumotlar +Workflow=Ish jarayoni Quantity=Miqdor Qty=Miqdor ChangedBy=O'zgartirilgan @@ -619,6 +621,7 @@ MonthVeryShort11=N MonthVeryShort12=D. AttachedFiles=Biriktirilgan fayllar va hujjatlar JoinMainDoc=Asosiy hujjatga qo'shiling +JoinMainDocOrLastGenerated=Agar topilmasa, asosiy hujjatni yoki oxirgi yaratilgan hujjatni yuboring DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS @@ -709,6 +712,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 @@ -798,6 +802,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 @@ -909,7 +914,7 @@ ViewFlatList=Yassi ro'yxatni ko'rish ViewAccountList=Hisob kitobini ko'rish ViewSubAccountList=Hisob osti daftarini ko'rish RemoveString='%s' qatorini olib tashlash -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=Taklif etilgan tillarning ba'zilari qisman tarjima qilingan yoki xatolar bo'lishi mumkin. Yaxshilanishlaringizni kiritish uchun https://transifex.com/projects/p/dolibarr/ manzilida ro‘yxatdan o‘tish orqali tilingizni tuzatishga yordam bering. DirectDownloadLink=Umumiy yuklab olish havolasi PublicDownloadLinkDesc=Faylni yuklab olish uchun faqat havola kerak DirectDownloadInternalLink=Shaxsiy yuklab olish havolasi @@ -1159,8 +1164,19 @@ RecordAproved=Yozuv tasdiqlandi RecordsApproved=%s Yozuvlar tasdiqlandi Properties=Xususiyatlari hasBeenValidated=%s tasdiqlangan -ClientTZ=Client Time Zone (user) -NotClosedYet=Not yet closed -ClearSignature=Reset signature -CanceledHidden=Canceled hidden -CanceledShown=Canceled shown +ClientTZ=Mijoz vaqt zonasi (foydalanuvchi) +NotClosedYet=Hali yopilmagan +ClearSignature=Imzoni tiklash +CanceledHidden=Bekor qilingan yashirin +CanceledShown=Bekor qilingan koʻrsatilgan +Terminate=Tugatish +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=Your message +YourMessageHasBeenReceived=Sizning xabaringiz qabul qilindi. Biz imkon qadar tezroq javob beramiz yoki siz bilan bog'lanamiz. +UrlToCheck=Url to check +Automation=Automation diff --git a/htdocs/langs/uz_UZ/members.lang b/htdocs/langs/uz_UZ/members.lang index 828846587ec..bf0b78bcdb3 100644 --- a/htdocs/langs/uz_UZ/members.lang +++ b/htdocs/langs/uz_UZ/members.lang @@ -11,11 +11,11 @@ MembersTickets=Ro'yxatdan o'tish manzili FundationMembers=Jamg'arma a'zolari ListOfValidatedPublicMembers=Tasdiqlangan jamoat a'zolari ro'yxati ErrorThisMemberIsNotPublic=Ushbu a'zo ochiq emas -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). +ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s , login: %s ) is already linked to a third party %s . Avval bu havolani olib tashlang, chunki uchinchi tomonni faqat aʼzoga bogʻlab boʻlmaydi (va aksincha). 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 -MembersCards=A'zolar uchun tashrif qog'ozlar +MembersCards=A'zolar uchun kartalarni yaratish MembersList=A'zolar ro'yxati MembersListToValid=Loyiha a'zolari ro'yxati (tasdiqlanishi kerak) MembersListValid=Haqiqiy a'zolar ro'yxati @@ -35,7 +35,8 @@ DateEndSubscription=A'zolikning tugash sanasi EndSubscription=Obunaning tugashi SubscriptionId=Hissa identifikatori WithoutSubscription=Hissa qo'shmasdan -MemberId=A'zo identifikatori +MemberId=Member Id +MemberRef=Member Ref NewMember=Yangi a'zo MemberType=Ro'yxatdan turi MemberTypeId=Ro'yxatdan turi identifikatori @@ -71,6 +72,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 with a recommended amount of %s %s +AnyAmountWithoutAdvisedAmount=Any amount +CanEditAmountShort=Any amount +CanEditAmountShortForValues=recommended, any amount +MembershipDuration=Duration +GetMembershipButtonLabel=Get membership Subscriptions=Hissa SubscriptionLate=Kech SubscriptionNotReceived=Hissa hech qachon olinmagan @@ -135,7 +142,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 @@ -159,11 +166,11 @@ HTPasswordExport=htpassword faylini yaratish NoThirdPartyAssociatedToMember=Bu a'zo bilan bog'langan uchinchi tomon yo'q MembersAndSubscriptions=A'zolar va hissalar MoreActions=Yozib olish bo'yicha qo'shimcha harakatlar -MoreActionsOnSubscription=Hisobni yozishda sukut bo'yicha taklif qilingan qo'shimcha harakat +MoreActionsOnSubscription=Toʻlovni roʻyxatdan oʻtkazishda sukut boʻyicha tavsiya etilgan qoʻshimcha harakat, shuningdek, badalni onlayn toʻlashda avtomatik ravishda amalga oshiriladi MoreActionBankDirect=Bank hisobvarag'ida to'g'ridan-to'g'ri yozuvni yarating MoreActionBankViaInvoice=Hisob-fakturani va bank hisobvarag'ida to'lovni yarating MoreActionInvoiceOnly=To'lovsiz hisob-fakturani yarating -LinkToGeneratedPages=Tashrif kartalarini yarating +LinkToGeneratedPages=Vizitkalar yoki manzil varaqlarini yaratish LinkToGeneratedPagesDesc=Ushbu ekran barcha a'zolaringiz yoki ma'lum bir a'zolaringiz uchun tashrif qog'ozlari bilan PDF-fayllarni yaratishga imkon beradi. DocForAllMembersCards=Barcha a'zolar uchun tashrif qog'ozlarini yarating DocForOneMemberCards=Muayyan a'zoning tashrif qog'ozlarini yarating @@ -198,7 +205,8 @@ 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 +CanEditAmount=Visitor can choose/edit amount of its contribution regardless of the member type +AmountIsLowerToMinimumNotice=sur un dû total de %s MEMBER_NEWFORM_PAYONLINE=Onlayn to'lovlar sahifasiga o'ting ByProperties=Tabiatan MembersStatisticsByProperties=A'zolar statistikasi tabiatan @@ -218,3 +226,5 @@ XExternalUserCreated=%s tashqi foydalanuvchi (lar) yaratildi ForceMemberNature=Majburiy a'zoning tabiati (Individual yoki Corporation) CreateDolibarrLoginDesc=A'zolar uchun foydalanuvchi loginini yaratish ularga ilovaga ulanish imkonini beradi. Berilgan ruxsatnomalarga qarab, ular, masalan, o'z fayllarini ko'rib chiqishlari yoki o'zgartirishlari mumkin bo'ladi. 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 diff --git a/htdocs/langs/uz_UZ/modulebuilder.lang b/htdocs/langs/uz_UZ/modulebuilder.lang index ca642f252d7..d05cefad9a6 100644 --- a/htdocs/langs/uz_UZ/modulebuilder.lang +++ b/htdocs/langs/uz_UZ/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=Bo'sh joysiz yaratish uchun modul / dastur nomini kiriting. So'zlarni ajratish uchun katta harflardan foydalaning (Masalan: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Bo'sh joysiz yaratish uchun ob'ekt nomini kiriting. So'zlarni ajratish uchun katta harflardan foydalaning (Masalan: MyObject, Student, Teacher ...). CRUD sinf fayli, shuningdek API fayli, ro'yxat / qo'shish / tahrirlash / o'chirish sahifalari va SQL fayllari yaratiladi. +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. +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 ModuleBuilderDesc4= %s fayli modul katalogining ildizida mavjud bo'lganda modul "tahrirlanadigan" deb topildi NewModule=Yangi modul NewObjectInModulebuilder=Yangi ob'ekt +NewDictionary=Yangi lug'at ModuleKey=Modul kaliti ObjectKey=Ob'ekt kaliti +DicKey=Lug'at kaliti ModuleInitialized=Modul ishga tushirildi FilesForObjectInitialized=Yangi ob'ekt uchun fayllar '%s' ishga tushirildi FilesForObjectUpdated='%s' ob'ekti uchun fayllar yangilandi (.sql fayllari va .class.php fayli) @@ -52,7 +55,7 @@ LanguageFile=Til uchun fayl ObjectProperties=Ob'ekt xususiyatlari 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 NOT NULL-ga sozlang. -1 = bo'sh ('' yoki 0) bo'lsa, null qiymatlarga va majburiy qiymatga NULL-ga ruxsat bering. +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) SearchAll="Hammasini qidirish" uchun ishlatiladi DatabaseIndex=Ma'lumotlar bazasi indeksi FileAlreadyExists=%s fayli allaqachon mavjud @@ -94,11 +97,11 @@ LanguageDefDesc=Ushbu fayllarga barcha kalitlarni va har bir til fayli uchun tar MenusDefDesc=Modulingiz tomonidan taqdim etilgan menyularni aniqlang DictionariesDefDesc=Modulingiz tomonidan taqdim etilgan lug'atlarni aniqlang PermissionsDefDesc=Sizning modulingiz tomonidan taqdim etilgan yangi ruxsatlarni aniqlang -MenusDefDescTooltip=Sizning modulingiz / ilovangiz tomonidan taqdim etilgan menyular $ this-> menyular massivida modul tavsiflovchi faylida aniqlangan. Siz ushbu faylni qo'lda tahrirlashingiz yoki o'rnatilgan muharrirdan foydalanishingiz mumkin.

    Izoh: Belgilanganidan keyin (va modul qayta yoqilganda) menyu muharriri %s-da administrator foydalanuvchilari uchun mavjud. +MenusDefDescTooltip=Modulingiz/ilovangiz tomonidan taqdim etilgan menyular $this->menyu massivida modul identifikatori faylida aniqlanadi. Siz ushbu faylni qo'lda tahrirlashingiz yoki o'rnatilgan muharriridan foydalanishingiz mumkin.

    Eslatma: Aniqlangandan so'ng (va modul qayta faollashtirilgan), menyular %s da administrator foydalanuvchilari uchun mavjud bo'lgan menyu muharririda ham ko'rinadi. DictionariesDefDescTooltip=Sizning modulingiz / ilovangiz tomonidan taqdim etilgan lug'atlar $ this-> lug'atlar massivida modul tavsiflovchi faylida aniqlangan. Siz ushbu faylni qo'lda tahrirlashingiz yoki o'rnatilgan muharrirdan foydalanishingiz mumkin.

    Eslatma: Belgilanganidan keyin (va modul qayta yoqilganda), lug'atlar administrator foydalanuvchilariga %s-da o'rnatish maydonchasida ham ko'rinadi. PermissionsDefDescTooltip=Sizning modulingiz / ilovangiz tomonidan berilgan ruxsatlar $ this-> huquqlari qatorida modul identifikatori faylida aniqlangan. Siz ushbu faylni qo'lda tahrirlashingiz yoki o'rnatilgan muharrirdan foydalanishingiz mumkin.

    Izoh: Belgilanganidan keyin (va modul qayta yoqilganda), ruxsatnomalar standart ruxsatlar %s-da ko'rinadi. HooksDefDesc= module_parts ['ilgaklar'] xususiyatida, modul identifikatorida siz boshqarmoqchi bo'lgan ilgaklar kontekstini aniqlang (kontekstlar ro'yxati ' initHooks (a09c094) kodlari) sizning bog'langan funktsiyalaringizning kodini qo'shish uchun kanca fayli (kanca funktsiyalarini ' executeHooks ' dan qidirish orqali topishingiz mumkin). -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=Trigger faylida modulingizdan tashqari biznes hodisasi (boshqa modullar tomonidan ishga tushirilgan hodisalar) bajarilganda bajarmoqchi bo'lgan kodni aniqlang. SeeIDsInUse=O'rnatishda foydalanilayotgan identifikatorlarni ko'ring SeeReservedIDsRangeHere=Saqlangan identifikatorlar qatorini ko'ring ToolkitForDevelopers=Dolibarr dasturchilari uchun qo'llanma @@ -110,7 +113,7 @@ DropTableIfEmpty=(Bo'sh bo'lsa jadvalni yo'q qilish) TableDoesNotExists=%s jadvali mavjud emas TableDropped=%s-jadval o'chirildi InitStructureFromExistingTable=Mavjud jadvalning struktura qatorlari qatorini yarating -UseAboutPage=Haqida sahifani o'chirib qo'ying +UseAboutPage=Haqida sahifasini yaratmang UseDocFolder=Hujjatlar papkasini o'chirib qo'ying UseSpecificReadme=Muayyan ReadMe-dan foydalaning ContentOfREADMECustomized=Eslatma: README.md faylining tarkibi ModuleBuilder-ni o'rnatishda aniqlangan qiymat bilan almashtirildi. @@ -127,9 +130,9 @@ UseSpecificEditorURL = Muayyan tahrirlovchining URL manzilidan foydalaning UseSpecificFamily = Muayyan oiladan foydalaning UseSpecificAuthor = Muayyan muallifdan foydalaning UseSpecificVersion = Muayyan dastlabki versiyadan foydalaning -IncludeRefGeneration=Ob'ektning ma'lumotnomasi avtomatik ravishda yaratilishi kerak -IncludeRefGenerationHelp=Malumotni avtomatik ravishda ishlab chiqarishni boshqarish uchun kod qo'shishni xohlasangiz, buni tekshiring -IncludeDocGeneration=Ob'ektdan bir nechta hujjatlar yaratmoqchiman +IncludeRefGeneration=Ob'ektga havola maxsus raqamlash qoidalari bilan avtomatik ravishda yaratilishi kerak +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 IncludeDocGenerationHelp=Agar buni belgilasangiz, yozuvga "Hujjat yaratish" katagini qo'shish uchun ba'zi kodlar hosil bo'ladi. ShowOnCombobox=Kombay qutisiga qiymatni ko'rsating KeyForTooltip=Maslahatlar uchun kalit @@ -138,10 +141,15 @@ 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, timestamp, integer, integer: ClassName: relatpath / to / classfile.class.php [: 1 [: filter]] ('1' biz yozuvni yaratish uchun kombinatsiyadan keyin + tugmachasini qo'shamiz degani, 'filtr' 'status = 1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' bo'lishi mumkin). +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_)' 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 bu maydonni $ this-> validateField () bilan tasdiqlash kerak bo'lsa, 1-ni qo'ying yoki agar tekshirish zarur bo'lsa, 0-ni qo'ying +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. +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. diff --git a/htdocs/langs/uz_UZ/mrp.lang b/htdocs/langs/uz_UZ/mrp.lang index 32a43cbc558..d9e022d5d5b 100644 --- a/htdocs/langs/uz_UZ/mrp.lang +++ b/htdocs/langs/uz_UZ/mrp.lang @@ -27,7 +27,7 @@ ConfirmCloneBillOfMaterials=%s materiallar hisobini klonlamoqchimisiz? ConfirmCloneMo=%s ishlab chiqarish buyurtmasini klonlamoqchimisiz? ManufacturingEfficiency=Ishlab chiqarish samaradorligi ConsumptionEfficiency=Iste'mol samaradorligi -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +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 DeleteMo=Ishlab chiqarish buyurtmasini o'chirib tashlang @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=%s qismini ajratish uchun miqdor uchun ConfirmValidateMo=Ushbu ishlab chiqarish buyurtmasini tasdiqlamoqchimisiz? ConfirmProductionDesc="%s" tugmachasini bosish orqali siz iste'mol qilingan miqdorni va / yoki ishlab chiqarishni belgilangan miqdorlarga tasdiqlaysiz. Bu shuningdek aktsiyalarni yangilaydi va aktsiyalarning harakatini qayd etadi. ProductionForRef=%s ishlab chiqarish +CancelProductionForRef=%s mahsuloti uchun mahsulot zaxirasini kamaytirishni bekor qilish +TooltipDeleteAndRevertStockMovement=Chiziqni o'chiring va aksiyalar harakatini qaytaring AutoCloseMO=Iste'mol qilinadigan va ishlab chiqariladigan miqdorlarga erishilgan bo'lsa, ishlab chiqarish buyurtmasini avtomatik ravishda yoping NoStockChangeOnServices=Xizmatlarda birja o'zgarishi yo'q ProductQtyToConsumeByMO=Hali ham ochiq MO tomonidan iste'mol qilinadigan mahsulot miqdori @@ -104,6 +106,9 @@ HumanMachine=Inson / mashina WorkstationArea=Ish stantsiyasi maydoni Machines=Mashinalar THMEstimatedHelp=Ushbu stavka buyumning taxminiy narxini aniqlashga imkon beradi -BOM=Bill Of Materials -CollapseBOMHelp=You can define the default display of the details of the nomenclature in the configuration of the BOM module +BOM=Materiallar ro'yxati +CollapseBOMHelp=BOM moduli konfiguratsiyasida nomenklatura tafsilotlarining standart ko'rinishini belgilashingiz mumkin MOAndLines=Buyurtma va chiziqlarni ishlab chiqarish +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child diff --git a/htdocs/langs/uz_UZ/oauth.lang b/htdocs/langs/uz_UZ/oauth.lang index a8e5efd79d0..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 sahifasiga o'ting , keyin "Ishonch yorliqlari". OAUTH_GITHUB_NAME=OAuth GitHub xizmati OAUTH_GITHUB_ID=OAuth GitHub Id OAUTH_GITHUB_SECRET=OAuth GitHub Secret -OAUTH_GITHUB_DESC=Ushbu sahifaga -ga o'ting , keyin OAuth hisob ma'lumotlarini yaratish uchun "yangi dasturni 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/orders.lang b/htdocs/langs/uz_UZ/orders.lang index bcf1f4a85e6..ba7499c656c 100644 --- a/htdocs/langs/uz_UZ/orders.lang +++ b/htdocs/langs/uz_UZ/orders.lang @@ -68,6 +68,8 @@ CreateOrder=Buyurtma yaratish RefuseOrder=Buyurtmani rad etish ApproveOrder=Buyurtmani tasdiqlash Approve2Order=Buyurtmani tasdiqlash (ikkinchi daraja) +UserApproval=Tasdiqlash uchun foydalanuvchi +UserApproval2=Tasdiqlash uchun foydalanuvchi (ikkinchi daraja) ValidateOrder=Buyurtmani tasdiqlash UnvalidateOrder=Buyurtmani bekor qilish DeleteOrder=Buyurtmani o'chirish @@ -102,6 +104,8 @@ ConfirmCancelOrder=Haqiqatan ham ushbu buyurtmani bekor qilmoqchimisiz? ConfirmMakeOrder=Ushbu buyurtmani %s orqali amalga oshirganingizni tasdiqlamoqchimisiz? GenerateBill=Hisob-fakturani yarating ClassifyShipped=Tasnif yetkazib berildi +PassedInShippedStatus=tasniflangan yetkazib beriladi +YouCantShipThis=Men buni tasniflay olmayman. Iltimos, foydalanuvchi ruxsatlarini tekshiring DraftOrders=Buyurtmalar loyihasi DraftSuppliersOrders=Xarid buyurtmalarining loyihasi OnProcessOrders=Jarayon buyurtmalarida diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang index 7db253ec775..b88f8975020 100644 --- a/htdocs/langs/uz_UZ/other.lang +++ b/htdocs/langs/uz_UZ/other.lang @@ -35,9 +35,9 @@ OnlyOneFieldForXAxisIsPossible=X o'qi sifatida hozirda faqat bitta maydon mavjud AtLeastOneMeasureIsRequired=O'lchov uchun kamida 1 ta maydon kerak AtLeastOneXAxisIsRequired=X o'qi uchun kamida 1 maydon kerak LatestBlogPosts=Blogdagi so'nggi xabarlar -notiftouser=To users -notiftofixedemail=To fixed mail -notiftouserandtofixedemail=To user and fixed mail +notiftouser=Foydalanuvchilarga +notiftofixedemail=Ruxsat etilgan pochtaga +notiftouserandtofixedemail=Foydalanuvchiga va doimiy pochtaga Notify_ORDER_VALIDATE=Savdo buyurtmasi tasdiqlangan Notify_ORDER_SENTBYMAIL=Savdo buyurtmasi pochta orqali yuborilgan Notify_ORDER_SUPPLIER_SENTBYMAIL=Xarid qilish buyurtmasi elektron pochta orqali yuborilgan @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... yoki o'zingizning profilingizni yarating
    (modu DemoFundation=Jamg'arma a'zolarini boshqarish DemoFundation2=Jamg'arma a'zolari va bankdagi hisob raqamlarini boshqarish DemoCompanyServiceOnly=Faqat kompaniya yoki erkin sotish xizmati -DemoCompanyShopWithCashDesk=Kassa bilan do'konni boshqaring +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Savdo nuqtasi bilan mahsulot sotadigan do'kon DemoCompanyManufacturing=Kompaniya mahsulot ishlab chiqaradi DemoCompanyAll=Faoliyati ko'p bo'lgan kompaniya (barcha asosiy modullar) @@ -258,10 +258,10 @@ PassEncoding=Parolni kodlash PermissionsAdd=Ruxsatnomalar qo'shildi PermissionsDelete=Ruxsatlar olib tashlandi YourPasswordMustHaveAtLeastXChars=Parolingizda kamida %s belgilar bo'lishi kerak -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=Parol uchun kamida %s katta harflar kerak +PasswordNeedAtLeastXDigitChars=Parolga kamida %s raqamli belgilar kerak +PasswordNeedAtLeastXSpecialChars=Parol uchun kamida %s maxsus belgilar kerak +PasswordNeedNoXConsecutiveChars=Parolda %s ketma-ket oʻxshash belgilar boʻlmasligi kerak YourPasswordHasBeenReset=Parolingiz qayta tiklandi ApplicantIpAddress=Ariza beruvchining IP-manzili SMSSentTo=%s raqamiga SMS yuborildi @@ -272,7 +272,7 @@ ProjectCreatedByEmailCollector=MSGID %s elektron pochtasidan elektron pochta yig TicketCreatedByEmailCollector=MSGID %s elektron pochtasidan elektron pochta yig'uvchisi tomonidan yaratilgan chipta OpeningHoursFormatDesc=Ochilish va yopilish soatlarini ajratish uchun a - dan foydalaning.
    Turli xil intervallarni kiritish uchun bo'sh joydan foydalaning.
    Misol: 8-12 14-18 SuffixSessionName=Sessiya nomi uchun qo'shimchalar -LoginWith=Login with %s +LoginWith=%s bilan tizimga kiring ##### Export ##### ExportsArea=Eksport maydoni @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Uning statistikasini ko'rish uchun ob'ektni tanla ConfirmBtnCommonContent = Haqiqatan ham "%s" ni xohlaysizmi? ConfirmBtnCommonTitle = Sizning harakatingizni tasdiqlang CloseDialog = Yopish +Autofill = Avtomatik toʻldirish diff --git a/htdocs/langs/uz_UZ/partnership.lang b/htdocs/langs/uz_UZ/partnership.lang index 84954dffc10..a02f290037b 100644 --- a/htdocs/langs/uz_UZ/partnership.lang +++ b/htdocs/langs/uz_UZ/partnership.lang @@ -19,7 +19,7 @@ ModulePartnershipName=Hamkorlikni boshqarish PartnershipDescription=Modul sherikligini boshqarish PartnershipDescriptionLong= Modul sherikligini boshqarish -Partnership=Partnership +Partnership=Hamkorlik AddPartnership=Hamkorlik qo'shing CancelPartnershipForExpiredMembers=Hamkorlik: muddati o'tgan obunalari bo'lgan a'zolarning sherikligini bekor qiling PartnershipCheckBacklink=Hamkorlik: teskari bog'lanishni tekshiring @@ -42,6 +42,7 @@ PARTNERSHIP_BACKLINKS_TO_CHECK=Tekshirish uchun qayta bog'lanishlar PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL=Obuna muddati tugaganidan keyin hamkorlik maqomini bekor qilishdan bir necha kun oldin ReferingWebsiteCheck=Veb-saytga yo'naltirilganligini tekshiring ReferingWebsiteCheckDesc=Siz o'zingizning veb-saytingizda sheriklaringizning veb-sayt domenlariga orqa bog'lanishni qo'shganligini tekshirish uchun xususiyatni yoqishingiz mumkin. +PublicFormRegistrationPartnerDesc=Dolibarr sizga tashqi tashrif buyuruvchilarga hamkorlik dasturining bir qismi bo'lishni so'rashiga ruxsat berish uchun sizga umumiy URL/veb-sayt taqdim etishi mumkin. # # Object @@ -58,7 +59,13 @@ ManagePartnership=Hamkorlikni boshqarish BacklinkNotFoundOnPartnerWebsite=Backlink sherik veb-saytida topilmadi ConfirmClosePartnershipAsk=Haqiqatan ham ushbu hamkorlikni bekor qilmoqchimisiz? PartnershipType=Hamkorlik turi -PartnershipRefApproved=Partnership %s approved +PartnershipRefApproved=%s hamkorlik tasdiqlandi +KeywordToCheckInWebsite=Agar siz har bir sherikning veb-saytida berilgan kalit so'z mavjudligini tekshirmoqchi bo'lsangiz, ushbu kalit so'zni shu yerda belgilang +PartnershipDraft=Qoralama +PartnershipAccepted=Qabul qilindi +PartnershipRefused=Rad etildi +PartnershipCanceled=Bekor qilindi +PartnershipManagedFor=Hamkorlar # # Template Mail @@ -82,11 +89,6 @@ CountLastUrlCheckError=Oxirgi URL tekshiruvidagi xatolar soni LastCheckBacklink=URLni oxirgi tekshirish sanasi ReasonDeclineOrCancel=Rad etish sababi -# -# Status -# -PartnershipDraft=Qoralama -PartnershipAccepted=Qabul qilindi -PartnershipRefused=Rad etildi -PartnershipCanceled=Bekor qilindi -PartnershipManagedFor=Hamkorlar +NewPartnershipRequest=Yangi hamkorlik talabi +NewPartnershipRequestDesc=Ushbu shakl sizga hamkorlik dasturimizning bir qismi bo'lish uchun so'rov yuborish imkonini beradi. Agar sizga ushbu shaklni to'ldirishda yordam kerak bo'lsa, %s elektron pochta orqali bog'laning. + diff --git a/htdocs/langs/uz_UZ/paybox.lang b/htdocs/langs/uz_UZ/paybox.lang index 9064f9948a3..ea7da2e0a68 100644 --- a/htdocs/langs/uz_UZ/paybox.lang +++ b/htdocs/langs/uz_UZ/paybox.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=PayBox modulini sozlash -PayBoxDesc=Ushbu modul mijozlar tomonidan Paybox orqali to'lovlarni amalga oshirishga imkon beradigan sahifalarni taqdim etadi. Bu bepul to'lov uchun yoki ma'lum bir Dolibarr ob'ekti uchun to'lov uchun ishlatilishi mumkin (hisob-faktura, buyurtma, ...) +PayBoxDesc=Ushbu modul mijozlar tomonidan Paybox to‘loviga ruxsat beruvchi sahifalarni taklif qiladi. Bu bepul to'lov uchun yoki ma'lum bir Dolibarr ob'ekti bo'yicha to'lov uchun ishlatilishi mumkin (hisob-faktura, buyurtma, ...) FollowingUrlAreAvailableToMakePayments=Dolibarr ob'ektlarida to'lovni amalga oshirish uchun xaridorga sahifani taqdim etish uchun quyidagi URL manzillar mavjud PaymentForm=To'lov shakli WelcomeOnPaymentPage=Onlayn to'lov xizmatimizga xush kelibsiz diff --git a/htdocs/langs/uz_UZ/paypal.lang b/htdocs/langs/uz_UZ/paypal.lang index d3d4e8a508e..1d035fcfb6a 100644 --- a/htdocs/langs/uz_UZ/paypal.lang +++ b/htdocs/langs/uz_UZ/paypal.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=PayPal modulini sozlash -PaypalDesc=Ushbu modul mijozlar tomonidan PayPal orqali to'lovlarni amalga oshirishga imkon beradi. Bu vaqtinchalik to'lov uchun yoki Dolibarr ob'ekti bilan bog'liq to'lov uchun ishlatilishi mumkin (hisob-faktura, buyurtma, ...) +PaypalDesc=Ushbu modul PayPal orqali mijozlar tomonidan to'lovlarni amalga oshirish imkonini beradi. Bu vaqtinchalik to'lov uchun yoki Dolibarr ob'ekti bilan bog'liq to'lov uchun (hisob-faktura, buyurtma, ...) PaypalOrCBDoPayment=PayPal (Card yoki PayPal) bilan to'lash PaypalDoPayment=PayPal bilan to'lash PAYPAL_API_SANDBOX=Rejim sinovi / qum qutisi diff --git a/htdocs/langs/uz_UZ/printing.lang b/htdocs/langs/uz_UZ/printing.lang index 11666e2d033..19568857b2c 100644 --- a/htdocs/langs/uz_UZ/printing.lang +++ b/htdocs/langs/uz_UZ/printing.lang @@ -1,10 +1,10 @@ # 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=Bir marta bosish Chop etish +Module64000Desc=Bir marta bosish orqali chop etish tizimini yoqing +PrintingSetup=Bir marta bosish orqali bosib chiqarish tizimini sozlash +PrintingDesc=Ushbu modul hujjatlarni boshqa ilovaga ochishga hojat qoldirmasdan to'g'ridan-to'g'ri printerda chop etish imkonini berish uchun turli modullarga Chop etish tugmachasini qo'shadi. +MenuDirectPrinting=Bir marta bosish Chop etish vazifalari +DirectPrint=Bir marta bosish Chop etish PrintingDriverDesc=Drayverni bosib chiqarish uchun konfiguratsiya o'zgaruvchilari. ListDrivers=Haydovchilar ro'yxati PrintTestDesc=Printerlar ro'yxati. diff --git a/htdocs/langs/uz_UZ/productbatch.lang b/htdocs/langs/uz_UZ/productbatch.lang index 1e505487558..5c944fbed3b 100644 --- a/htdocs/langs/uz_UZ/productbatch.lang +++ b/htdocs/langs/uz_UZ/productbatch.lang @@ -30,16 +30,17 @@ ManageLotMask=Maxsus niqob CustomMasks=Har bir mahsulot uchun boshqa raqamlash niqobini tanlash imkoniyati BatchLotNumberingModules=Lot raqamini avtomatik ravishda ishlab chiqarish uchun raqamlash qoidasi BatchSerialNumberingModules=Seriya raqamini avtomatik ishlab chiqarish uchun raqamlash qoidasi (har bir mahsulot uchun 1 ta noyob lot/seriyali mahsulotlar uchun) -QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned +QtyToAddAfterBarcodeScan=Skanerlangan har bir shtrix-kod/lot/seriya uchun miqdor %s gacha LifeTime=Hayot davomiyligi (kunlar ichida) EndOfLife=Hayotning oxiri ManufacturingDate=Ishlab chiqarilgan sana DestructionDate=Yo'q qilish sanasi FirstUseDate=Birinchi foydalanish sanasi QCFrequency=Sifatni nazorat qilish chastotasi (kunlar ichida) -ShowAllLots=Show all lots -HideLots=Hide lots +ShowAllLots=Barcha lotlarni ko'rsatish +HideLots=Ko'p narsalarni yashirish #Traceability - qc status OutOfOrder=Ishdan chiqdi InWorkingOrder=Ish tartibida -ToReplace=Replace +ToReplace=O'zgartiring +CantMoveNonExistantSerial=Xato. Siz endi mavjud bo'lmagan serial uchun rekordni ko'chirishni so'raysiz. Balki siz bir xil seriyani bitta omborda bir necha marta bir jo'natishda olgansiz yoki u boshqa jo'natmada ishlatilgan. Ushbu yukni olib tashlang va boshqasini tayyorlang. diff --git a/htdocs/langs/uz_UZ/products.lang b/htdocs/langs/uz_UZ/products.lang index 15a5592a500..d2ae38bce36 100644 --- a/htdocs/langs/uz_UZ/products.lang +++ b/htdocs/langs/uz_UZ/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=Ushbu mahsulot qatorini o'chirishni xohlaysizmi? ProductSpecial=Maxsus QtyMin=Min. sotib olish miqdori PriceQtyMin=Narx miqdori min. -PriceQtyMinCurrency=Ushbu miqdor uchun narx (valyuta). (chegirma yo'q) +PriceQtyMinCurrency=Ushbu miqdor uchun narx (valyuta) +WithoutDiscount=Chegirmasiz VATRateForSupplierProduct=QQS stavkasi (ushbu sotuvchi / mahsulot uchun) DiscountQtyMin=Ushbu miqdor uchun chegirma. NoPriceDefinedForThisSupplier=Ushbu sotuvchi / mahsulot uchun narx / miqdor aniqlanmagan @@ -316,7 +317,7 @@ LastUpdated=Oxirgi yangilanish CorrectlyUpdated=To'g'ri yangilangan PropalMergePdfProductActualFile=PDF-ga qo'shish uchun ishlatiladigan fayllar Azur are / is PropalMergePdfProductChooseFile=PDF-fayllarni tanlang -IncludingProductWithTag=Including products/services with the tag +IncludingProductWithTag=Yorliqli mahsulotlar/xizmatlar, shu jumladan DefaultPriceRealPriceMayDependOnCustomer=Standart narx, haqiqiy narx mijozga bog'liq bo'lishi mumkin WarningSelectOneDocument=Iltimos, kamida bitta hujjatni tanlang DefaultUnitToShow=Birlik @@ -346,7 +347,7 @@ UseProductFournDesc=Xaridorlar tavsifiga qo'shimcha ravishda sotuvchilar tomonid 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) PackagingForThisProduct=Paket -PackagingForThisProductDesc=Yetkazib beruvchining buyurtmasiga binoan siz ushbu miqdorni (yoki ushbu miqdorning ko'pligini) avtomatik ravishda buyurtma qilasiz. Minimal sotib olish miqdoridan kam bo'lishi mumkin emas +PackagingForThisProductDesc=Siz avtomatik ravishda ushbu miqdorning bir nechtasini sotib olasiz. QtyRecalculatedWithPackaging=Chiziq miqdori etkazib beruvchilarning qadoqlariga muvofiq qayta hisoblab chiqilgan #Attributes @@ -402,12 +403,27 @@ AmountUsedToUpdateWAP=O'rtacha o'rtacha narxni yangilash uchun ishlatiladigan mi PMPValue=O'rtacha narx PMPValueShort=WAP mandatoryperiod=Majburiy davrlar -mandatoryPeriodNeedTobeSet=Note: Period (start and end date) must be defined +mandatoryPeriodNeedTobeSet=Eslatma: Davr (boshlanish va tugash sanasi) aniqlanishi kerak mandatoryPeriodNeedTobeSetMsgValidate=Xizmat boshlanish va tugash davrini talab qiladi -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=Agar siz ushbu xizmat qatorlarida boshlanish va tugash sanasini kiritmasdan hisob-faktura, tijorat taklifi, savdo buyurtmasini yaratish/tasdiqlashda foydalanuvchiga xabar olishni istasangiz, buni belgilang.
    Xabar blokirovka xatosi emas, balki ogohlantirish ekanligini unutmang. DefaultBOM=Standart BOM DefaultBOMDesc=Standart BOM ushbu mahsulotni ishlab chiqarishda foydalanishni tavsiya qiladi. Bu maydon faqat mahsulotning tabiati '%s' bo'lganida o'rnatilishi mumkin. -Rank=Rank -SwitchOnSaleStatus=Switch on sale status -SwitchOnPurchaseStatus=Switch on purchase status -StockMouvementExtraFields= Extra Fields (stock mouvement) +Rank=Daraja +MergeOriginProduct=Takroriy mahsulot (siz o'chirmoqchi bo'lgan mahsulot) +MergeProducts=Mahsulotlarni birlashtirish +ConfirmMergeProducts=Haqiqatan ham tanlangan mahsulotni joriy mahsulot bilan birlashtirmoqchimisiz? Barcha bog'langan ob'ektlar (hisob-kitoblar, buyurtmalar, ...) joriy mahsulotga ko'chiriladi, shundan so'ng tanlangan mahsulot o'chiriladi. +ProductsMergeSuccess=Mahsulotlar birlashtirildi +ErrorsProductsMerge=Mahsulotlarni birlashtirishdagi xatolar +SwitchOnSaleStatus=Sotish holatini yoqing +SwitchOnPurchaseStatus=Xarid holatini yoqing +StockMouvementExtraFields= Qo'shimcha maydonlar (birja harakati) +InventoryExtraFields= Qo'shimcha maydonlar (inventarizatsiya) +ScanOrTypeOrCopyPasteYourBarCodes=Shtrix-kodlaringizni skanerlang yoki yozing yoki nusxalash/joylashtirish +PuttingPricesUpToDate=Joriy ma'lum narxlar bilan narxlarni yangilang +PMPExpected=Kutilayotgan PMP +ExpectedValuation=Kutilayotgan baholash +PMPReal=Haqiqiy PMP +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 diff --git a/htdocs/langs/uz_UZ/projects.lang b/htdocs/langs/uz_UZ/projects.lang index 09f4e88dcbb..a64a720d577 100644 --- a/htdocs/langs/uz_UZ/projects.lang +++ b/htdocs/langs/uz_UZ/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Loyiha yorlig'i ProjectsArea=Loyihalar maydoni ProjectStatus=Loyiha holati SharedProject=Hamma -PrivateProject=Loyiha bo'yicha aloqalar +PrivateProject=Belgilangan kontaktlar ProjectsImContactFor=Men aniq aloqada bo'lgan loyihalar AllAllowedProjects=Men o'qiy oladigan barcha loyihalar (meniki + jamoat) AllProjects=Barcha loyihalar @@ -190,6 +190,7 @@ PlannedWorkload=Rejalashtirilgan ish hajmi PlannedWorkloadShort=Ish hajmi ProjectReferers=Tegishli narsalar ProjectMustBeValidatedFirst=Avval loyiha tasdiqlanishi kerak +MustBeValidatedToBeSigned=%s Imzolanganga o'rnatilishi uchun avval tasdiqlanishi kerak. FirstAddRessourceToAllocateTime=Vaqt ajratish uchun foydalanuvchi resursini loyihaning aloqasi sifatida tayinlang InputPerDay=Kuniga kiritish InputPerWeek=Haftada kiritish @@ -197,7 +198,7 @@ InputPerMonth=Oyiga kiritish InputDetail=Kirish tafsiloti TimeAlreadyRecorded=Bu allaqachon ushbu vazifa uchun yozilgan vaqt va foydalanuvchi %s ProjectsWithThisUserAsContact=Ushbu foydalanuvchi bilan aloqa sifatida loyihalar -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=Ushbu kontakt bilan loyihalar TasksWithThisUserAsContact=Ushbu foydalanuvchiga berilgan vazifalar ResourceNotAssignedToProject=Loyihaga tayinlanmagan ResourceNotAssignedToTheTask=Vazifaga tayinlanmagan @@ -258,7 +259,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. @@ -284,6 +285,13 @@ PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE=Barcha vazifalar bajarilgandan so'ng 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. SelectLinesOfTimeSpentToInvoice=Hisob-kitob qilinmagan sarflangan vaqtni tanlang, so'ngra hisob-kitob qilish uchun "Hisob-fakturani yaratish" ommaviy harakati ProjectTasksWithoutTimeSpent=Vaqt sarflamasdan loyiha vazifalari -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 +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. +ProjectsHavingThisContact=Ushbu aloqaga ega loyihalar +StartDateCannotBeAfterEndDate=Tugash sanasi boshlanish sanasidan oldin boʻlishi mumkin emas +ErrorPROJECTLEADERRoleMissingRestoreIt=“PROJECTLEADER” roli yo‘q yoki o‘chirib qo‘yilgan, kontakt turlari lug‘atida tiklang. +LeadPublicFormDesc=Siz bu yerda umumiy sahifani yoqishingiz mumkin, bunda potentsiallar siz bilan ochiq onlayn shakldan birinchi aloqaga kirishishi mumkin +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 2b53d004192..ba04616e36d 100644 --- a/htdocs/langs/uz_UZ/propal.lang +++ b/htdocs/langs/uz_UZ/propal.lang @@ -5,7 +5,7 @@ ProposalShort=Taklif ProposalsDraft=Tijorat takliflari loyihasi ProposalsOpened=Tijorat takliflarini oching CommercialProposal=Tijorat taklifi -PdfCommercialProposalTitle=Proposal +PdfCommercialProposalTitle=Taklif ProposalCard=Taklif kartasi NewProp=Yangi tijorat taklifi NewPropal=Yangi taklif @@ -54,6 +54,7 @@ NoDraftProposals=Takliflar loyihasi yo'q CopyPropalFrom=Mavjud taklifni nusxalash orqali tijorat taklifini yarating CreateEmptyPropal=Bo'sh tijorat taklifini yoki mahsulot / xizmatlar ro'yxatidan yarating DefaultProposalDurationValidity=Standart tijorat taklifining amal qilish muddati (kunlar ichida) +DefaultPuttingPricesUpToDate=Odatiy bo'lib, taklifni klonlashda narxlarni joriy ma'lum narxlar bilan yangilang UseCustomerContactAsPropalRecipientIfExist=Uchinchi shaxs manzili o'rniga taklif oluvchining manzili belgilangan bo'lsa, "Kontaktni kuzatib boruvchi taklif" turi bilan aloqa / manzildan foydalaning ConfirmClonePropal= %s tijorat taklifini klonlamoqchimisiz? ConfirmReOpenProp= %s tijorat taklifini ochmoqchi ekanligingizga aminmisiz? @@ -85,15 +86,28 @@ 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 +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 IdProduct=Mahsulot identifikatori -PrParentLine=Ota-onalar qatori LineBuyPriceHT=Sotib olish narxlari qatori uchun soliqni olib tashlagan holda -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? +SignPropal=Taklifni qabul qiling +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? diff --git a/htdocs/langs/uz_UZ/receiptprinter.lang b/htdocs/langs/uz_UZ/receiptprinter.lang index b328df42d5b..bd492add769 100644 --- a/htdocs/langs/uz_UZ/receiptprinter.lang +++ b/htdocs/langs/uz_UZ/receiptprinter.lang @@ -7,7 +7,7 @@ TestSentToPrinter=Sinov printerga yuborildi %s ReceiptPrinter=Kvitansiya printerlari ReceiptPrinterDesc=Kvitansiya printerlarini sozlash ReceiptPrinterTemplateDesc=Shablonlarni sozlash -ReceiptPrinterTypeDesc=Qabul qilish printeri turining tavsifi +ReceiptPrinterTypeDesc=Drayv turiga ko'ra "Parametrlar" maydoni uchun mumkin bo'lgan qiymatlarga misol ReceiptPrinterProfileDesc=Qabul qilish printeri profilining tavsifi ListPrinters=Printerlar ro'yxati SetupReceiptTemplate=Shablonni sozlash @@ -55,6 +55,8 @@ DOL_DEFAULT_HEIGHT_WIDTH=Standart balandlik va kenglik o'lchami DOL_UNDERLINE=Chiziqni yoqish DOL_UNDERLINE_DISABLED=Chiziqni o‘chirish DOL_BEEP=Ovozli signal +DOL_BEEP_ALTERNATIVE=Beep sound (alternative mode) +DOL_PRINT_CURR_DATE=Print current date/time DOL_PRINT_TEXT=Matnni chop etish DateInvoiceWithTime=Hisob-fakturaning sanasi va vaqti YearInvoice=Hisob-faktura yili diff --git a/htdocs/langs/uz_UZ/receptions.lang b/htdocs/langs/uz_UZ/receptions.lang index ef79361ae28..787d6425a1c 100644 --- a/htdocs/langs/uz_UZ/receptions.lang +++ b/htdocs/langs/uz_UZ/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=Sotuvchini qabul qilishni boshqarish (qabul qilish hujjatlarini yaratish) +ReceptionsSetup=Sotuvchini qabul qilishni sozlash RefReception=Ref. ziyofat Reception=Qabul qilish Receptions=Qabullar @@ -24,9 +24,9 @@ ReceptionsAndReceivingForSameOrder=Ushbu buyurtma uchun qabul va tushum ReceptionsToValidate=Tasdiqlash uchun qabullar StatusReceptionCanceled=Bekor qilindi StatusReceptionDraft=Qoralama -StatusReceptionValidated=Validated (products to receive or already received) -StatusReceptionValidatedToReceive=Validated (products to receive) -StatusReceptionValidatedReceived=Validated (products received) +StatusReceptionValidated=Tasdiqlangan (qabul qilinadigan yoki allaqachon olingan mahsulotlar) +StatusReceptionValidatedToReceive=Tasdiqlangan (qabul qilinadigan mahsulotlar) +StatusReceptionValidatedReceived=Tasdiqlangan (qabul qilingan mahsulotlar) StatusReceptionProcessed=Qayta ishlangan StatusReceptionDraftShort=Qoralama StatusReceptionValidatedShort=Tasdiqlangan @@ -39,7 +39,7 @@ StatsOnReceptionsOnlyValidated=Qabullarda o'tkazilgan statistika faqat tasdiqlan SendReceptionByEMail=Qabulni elektron pochta orqali yuboring SendReceptionRef=Qabulni yuborish %s ActionsOnReception=Qabul qilish tadbirlari -ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the Purchase Order. +ReceptionCreationIsDoneFromOrder=Hozircha yangi qabulxonani yaratish Buyurtma asosida amalga oshiriladi. ReceptionLine=Qabul qilish liniyasi ProductQtyInReceptionAlreadySent=Ochiq savdo buyurtmasidan mahsulot miqdori allaqachon yuborilgan ProductQtyInSuppliersReceptionAlreadyRecevied=Ochiq etkazib beruvchilar buyurtmasidan olingan mahsulot miqdori allaqachon qabul qilingan @@ -48,7 +48,7 @@ ReceptionsNumberingModules=Qabul qilish uchun raqamlash moduli ReceptionsReceiptModel=Qabul qilish uchun hujjat shablonlari NoMorePredefinedProductToDispatch=Yuborish uchun oldindan belgilangan mahsulotlar yo'q ReceptionExist=Qabulxona mavjud -ByingPrice=Bying price -ReceptionBackToDraftInDolibarr=Reception %s back to draft -ReceptionClassifyClosedInDolibarr=Reception %s classified Closed -ReceptionUnClassifyCloseddInDolibarr=Reception %s re-open +ByingPrice=Narxi bo'yicha +ReceptionBackToDraftInDolibarr=Qabul qilish %s qoralamaga qaytdi +ReceptionClassifyClosedInDolibarr=Qabul %s tasniflangan Yopiq +ReceptionUnClassifyCloseddInDolibarr=Qabul %s qayta ochiladi diff --git a/htdocs/langs/uz_UZ/recruitment.lang b/htdocs/langs/uz_UZ/recruitment.lang index dd3c47f2a26..8f30a60f515 100644 --- a/htdocs/langs/uz_UZ/recruitment.lang +++ b/htdocs/langs/uz_UZ/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=Ish joyi yopiq. ExtrafieldsJobPosition=Qo'shimcha xususiyatlar (ish joylari) ExtrafieldsApplication=Qo'shimcha atributlar (ish uchun arizalar) MakeOffer=Taklif qiling +WeAreRecruiting=Biz ishga qabul qilamiz. Bu to'ldirilishi kerak bo'lgan ochiq lavozimlar ro'yxati... +NoPositionOpen=Ayni paytda hech qanday lavozim ochilmagan diff --git a/htdocs/langs/uz_UZ/salaries.lang b/htdocs/langs/uz_UZ/salaries.lang index 088c9cde917..ad81408709a 100644 --- a/htdocs/langs/uz_UZ/salaries.lang +++ b/htdocs/langs/uz_UZ/salaries.lang @@ -6,7 +6,7 @@ CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=Odatiy bo'lib, Ish haqini yaratishda "Umu Salary=Ish haqi Salaries=Ish haqi NewSalary=Yangi ish haqi -AddSalary=Add salary +AddSalary=Ish haqini qo'shing NewSalaryPayment=Yangi ish haqi kartasi AddSalaryPayment=Ish haqini to'lashni qo'shing SalaryPayment=Ish haqi to'lash @@ -24,3 +24,4 @@ SalariesStatistics=Ish haqi statistikasi SalariesAndPayments=Ish haqi va to'lovlar ConfirmDeleteSalaryPayment=Ushbu ish haqi to'lovini o'chirmoqchimisiz? FillFieldFirst=Avval xodimlar maydonini to'ldiring +UpdateAmountWithLastSalary=Oxirgi ish haqi bilan miqdorni belgilang diff --git a/htdocs/langs/uz_UZ/stocks.lang b/htdocs/langs/uz_UZ/stocks.lang index 45c0f664dd4..096624a7703 100644 --- a/htdocs/langs/uz_UZ/stocks.lang +++ b/htdocs/langs/uz_UZ/stocks.lang @@ -63,7 +63,7 @@ RuleForWarehouse=Omborlar uchun qoida WarehouseAskWarehouseOnThirparty=Uchinchi shaxslarga omborni o'rnating WarehouseAskWarehouseDuringPropal=Tijorat takliflari bo'yicha omborni o'rnating WarehouseAskWarehouseDuringOrder=Savdo buyurtmalariga ombor o'rnating -WarehouseAskWarehouseDuringProject=Set a warehouse on Projects +WarehouseAskWarehouseDuringProject=Loyihalarda omborni o'rnating UserDefaultWarehouse=Foydalanuvchilarga omborni o'rnating MainDefaultWarehouse=Standart ombor MainDefaultWarehouseUser=Har bir foydalanuvchi uchun odatiy ombordan foydalaning @@ -96,7 +96,7 @@ RealStock=Haqiqiy aktsiya RealStockDesc=Jismoniy / haqiqiy zaxira - bu omborlarda mavjud bo'lgan zaxira. RealStockWillAutomaticallyWhen=Haqiqiy zaxira ushbu qoidaga muvofiq o'zgartiriladi (Stok modulida belgilanganidek): VirtualStock=Virtual zaxira -VirtualStockAtDate=Virtual stock at a future date +VirtualStockAtDate=Kelgusi sanadagi virtual aktsiya VirtualStockAtDateDesc=Tanlangan sanadan oldin qayta ishlashni rejalashtirgan barcha kutilayotgan buyurtmalar tugagandan so'ng, virtual zaxiralar VirtualStockDesc=Virtual aktsiya - bu barcha ochiq / kutilayotgan harakatlar (aktsiyalarga ta'sir ko'rsatadigan) yopilgandan so'ng mavjud bo'lgan hisoblangan zaxira (sotib olish buyurtmalari kelib tushdi, sotish buyurtmalari jo'natildi, ishlab chiqarish buyurtmalari ishlab chiqarildi va hk). AtDate=Hozirgi kunda @@ -176,9 +176,9 @@ ProductStockWarehouseCreated=Ogohlantirish uchun stok chegarasi va kerakli optim ProductStockWarehouseUpdated=Ogohlantirish uchun kerakli limit va kerakli optimal stok to'g'ri yangilangan ProductStockWarehouseDeleted=Ogohlantirish uchun kerakli limit va kerakli optimal stok to'g'ri o'chirildi AddNewProductStockWarehouse=Ogohlantirish va kerakli optimal stok uchun yangi chegara o'rnating -AddStockLocationLine=Miqdorni kamaytiring, so'ngra ushbu mahsulot uchun boshqa omborni qo'shish uchun bosing +AddStockLocationLine=Miqdorni kamaytiring, keyin chiziqni ajratish uchun bosing InventoryDate=Inventarizatsiya sanasi -Inventories=Inventories +Inventories=Inventarizatsiya NewInventory=Yangi inventarizatsiya inventorySetup = Inventarizatsiyani sozlash inventoryCreatePermission=Yangi inventarizatsiya yarating @@ -207,8 +207,8 @@ INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Qimmatli qog'ozlar harakati inventa inventoryChangePMPPermission=Mahsulot uchun PMP qiymatini o'zgartirishga ruxsat bering ColumnNewPMP=Yangi birlik PMP OnlyProdsInStock=Mahsulotni zaxirasiz qo'shmang -TheoricalQty=Theorical qty -TheoricalValue=Theorical qty +TheoricalQty=Nazariy miqdor +TheoricalValue=Nazariy miqdor LastPA=Oxirgi BP CurrentPA=Curent BP RecordedQty=Yozilgan Miqdor @@ -241,7 +241,7 @@ StockAtDatePastDesc=Siz bu erda o'tmishda berilgan sanada aktsiyalarni (haqiqiy StockAtDateFutureDesc=Kelajakda ushbu sanada aktsiyalarni (virtual aktsiyalar) ma'lum bir sanada ko'rishingiz mumkin CurrentStock=Joriy aktsiyalar InventoryRealQtyHelp=
    miqdorini qayta tiklash uchun 0 qiymatini o'rnating -UpdateByScaning=Complete real qty by scaning +UpdateByScaning=Skanerlash orqali haqiqiy miqdorni to'ldiring UpdateByScaningProductBarcode=Skanerlash orqali yangilash (mahsulot shtrix-kodi) UpdateByScaningLot=Skanerlash orqali yangilash (lot | ketma-ket shtrix-kod) DisableStockChangeOfSubProduct=Ushbu harakat paytida ushbu to'plamning barcha subproductlari uchun birja o'zgarishini o'chirib qo'ying. @@ -254,20 +254,21 @@ ReOpen=Qayta oching ConfirmFinish=Inventarizatsiya yopilishini tasdiqlaysizmi? Bu sizning zaxirangizni inventarizatsiyaga kiritgan haqiqiy miqdordagi yangilash uchun barcha aktsiyalar harakatlarini keltirib chiqaradi. ObjectNotFound=%s topilmadi MakeMovementsAndClose=Harakatlarni yarating va yoping -AutofillWithExpected=Replace real quantity with expected quantity +AutofillWithExpected=Haqiqiy miqdorni kutilgan miqdor bilan to'ldiring ShowAllBatchByDefault=Odatiy bo'lib, mahsulot "stok" yorlig'ida partiyaning tafsilotlarini ko'rsating CollapseBatchDetailHelp=Qimmatbaho qog'ozlar moduli konfiguratsiyasida partiyaning tafsilotlari bo'yicha standart displeyni o'rnatishingiz mumkin ErrorWrongBarcodemode=Shtrix -kodning noma'lum rejimi ProductDoesNotExist=Mahsulot mavjud emas -ErrorSameBatchNumber=Several record for the batch number were found in the inventory sheet. No way to know which one to increase. +ErrorSameBatchNumber=Inventarizatsiya varaqasida partiya raqami uchun bir nechta yozuvlar topilgan. Qaysi birini oshirishni bilishning iloji yo'q. ProductBatchDoesNotExist=To'plamli/seriyali mahsulot mavjud emas ProductBarcodeDoesNotExist=Shtrixli mahsulot mavjud emas WarehouseId=Ombor identifikatori WarehouseRef=Ombor Ref -SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. -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 +SaveQtyFirst=Qimmatli qog'ozlar harakati yaratilishini so'rashdan oldin, birinchi navbatda, haqiqiy inventarizatsiya miqdorini saqlang. +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 +NoWarehouseDefinedForTerminal=Terminal uchun ombor aniqlanmagan +ClearQtys=Barcha miqdorlarni tozalang diff --git a/htdocs/langs/uz_UZ/stripe.lang b/htdocs/langs/uz_UZ/stripe.lang index 44466b03fab..aef85d4fbb6 100644 --- a/htdocs/langs/uz_UZ/stripe.lang +++ b/htdocs/langs/uz_UZ/stripe.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - stripe StripeSetup=Stripe modulini sozlash -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=Mijozlarga Stripe orqali kredit/debet kartalari bilan toʻlovlar uchun onlayn toʻlov sahifasini taklif qiling. Bu sizning mijozlaringizga vaqtinchalik to'lovlarni amalga oshirish yoki ma'lum bir Dolibarr ob'ekti (hisob-kitob, buyurtma, ...) bilan bog'liq to'lovlar uchun foydalanish mumkin. StripeOrCBDoPayment=Kredit karta yoki Stripe orqali to'lash FollowingUrlAreAvailableToMakePayments=Dolibarr ob'ektlarida to'lovni amalga oshirish uchun xaridorga sahifani taklif qilish uchun quyidagi URL manzillar mavjud PaymentForm=To'lov shakli diff --git a/htdocs/langs/uz_UZ/suppliers.lang b/htdocs/langs/uz_UZ/suppliers.lang index df1ef567d59..90bef766a01 100644 --- a/htdocs/langs/uz_UZ/suppliers.lang +++ b/htdocs/langs/uz_UZ/suppliers.lang @@ -47,3 +47,10 @@ BuyerName=Xaridor nomi AllProductServicePrices=Barcha mahsulot / xizmat narxlari AllProductReferencesOfSupplier=Sotuvchining barcha ma'lumotnomalari BuyingPriceNumShort=Sotuvchi narxlari +RepeatableSupplierInvoice=Yetkazib beruvchi hisob-faktura shablon +RepeatableSupplierInvoices=Yetkazib beruvchi hisob-fakturalar shablonlari +RepeatableSupplierInvoicesList=Yetkazib beruvchi hisob-fakturalar shablonlari +RecurringSupplierInvoices=Takroriy yetkazib beruvchi hisob-fakturalari +ToCreateAPredefinedSupplierInvoice=Yetkazib beruvchi hisob-fakturasi shablonini yaratish uchun siz standart hisob-fakturani yaratishingiz kerak, keyin uni tasdiqlamasdan, "%s" tugmasini bosing. +GeneratedFromSupplierTemplate=%s yetkazib beruvchi hisob-faktura shablonidan yaratilgan +SupplierInvoiceGeneratedFromTemplate=Yetkazib beruvchi hisob-fakturasi %s Yetkazib beruvchi hisob-fakturasi shablonidan yaratilgan %s diff --git a/htdocs/langs/uz_UZ/ticket.lang b/htdocs/langs/uz_UZ/ticket.lang index d3285cc9761..f3539ed954a 100644 --- a/htdocs/langs/uz_UZ/ticket.lang +++ b/htdocs/langs/uz_UZ/ticket.lang @@ -90,15 +90,17 @@ 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=Bildirishnoma elektron pochtasi -TicketEmailNotificationFromHelp=Misol uchun chipta xabarining javobiga ishlatilgan -TicketEmailNotificationTo=Bildirishnomalar elektron pochta manziliga -TicketEmailNotificationToHelp=Ushbu manzilga elektron pochta xabarnomalarini yuboring. +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 TicketNewEmailBodyHelp=Bu erda ko'rsatilgan matn ommaviy interfeysdan yangi chipta yaratilganligini tasdiqlovchi elektron pochtaga kiritiladi. Chipta maslahati to'g'risidagi ma'lumotlar avtomatik ravishda qo'shiladi. TicketParamPublicInterface=Umumiy interfeysni sozlash TicketsEmailMustExist=Chipta yaratish uchun mavjud elektron pochta manzilini talab qiling TicketsEmailMustExistHelp=Umumiy interfeysda elektron pochta manzili yangi chipta yaratish uchun ma'lumotlar bazasida to'ldirilgan bo'lishi kerak. +TicketCreateThirdPartyWithContactIfNotExist=Noma'lum elektron pochta xabarlari uchun ism va kompaniya nomini so'rang. +TicketCreateThirdPartyWithContactIfNotExistHelp=Kiritilgan elektron pochta uchun uchinchi tomon yoki kontakt mavjudligini tekshiring. Agar yo'q bo'lsa, kontakt bilan uchinchi tomon yaratish uchun ism va kompaniya nomini so'rang. PublicInterface=Ommaviy interfeys TicketUrlPublicInterfaceLabelAdmin=Umumiy interfeys uchun muqobil URL TicketUrlPublicInterfaceHelpAdmin=Veb-server uchun taxallusni aniqlash va shu bilan umumiy interfeysni boshqa URL bilan ta'minlash mumkin (server ushbu yangi URL-da proksi sifatida ishlashi kerak) @@ -136,6 +138,18 @@ TicketsPublicNotificationNewMessage=Chipta yangi xabar / sharh qo'shilganda elek TicketsPublicNotificationNewMessageHelp=Umumiy interfeysdan yangi xabar qo'shilganda elektron pochta xabarlarini yuboring (tayinlangan foydalanuvchiga yoki bildirishnomalar elektron pochtasiga (yangilash) va / yoki elektron pochta xabarlariga) TicketPublicNotificationNewMessageDefaultEmail=Bildirishnomalar elektron pochtasi (yangilash) TicketPublicNotificationNewMessageDefaultEmailHelp=Agar chiptada foydalanuvchi tayinlanmagan bo'lsa yoki foydalanuvchi ma'lum bir elektron pochta xabariga ega bo'lmasa, har bir yangi xabar xabarnomasi uchun ushbu manzilga elektron pochta xabarini yuboring. +TicketsAutoReadTicket=Chiptani avtomatik ravishda o'qilgan deb belgilash (backofficedan yaratilganda) +TicketsAutoReadTicketHelp=Bek ofisdan yaratilganda chiptani avtomatik ravishda o'qilgan deb belgilang. Chipta umumiy interfeysdan yaratilganda, chipta "O'qilmagan" holatida qoladi. +TicketsDelayBeforeFirstAnswer=Yangi chipta birinchi javobni (soatlardan oldin) olishi kerak: +TicketsDelayBeforeFirstAnswerHelp=Agar yangi chipta ushbu vaqtdan keyin (soatlarda) javob olmasa, ro'yxat ko'rinishida muhim ogohlantirish belgisi ko'rsatiladi. +TicketsDelayBetweenAnswers=Yechilmagan chipta (soat) davomida faol bo'lmasligi kerak: +TicketsDelayBetweenAnswersHelp=Agar allaqachon javob olgan hal qilinmagan chipta ushbu vaqt oralig'idan keyin (soatlarda) boshqa o'zaro ta'sirga ega bo'lmasa, ro'yxat ko'rinishida ogohlantirish belgisi ko'rsatiladi. +TicketsAutoNotifyClose=Chipta yopilganda uchinchi tomonni avtomatik ravishda xabardor qiling +TicketsAutoNotifyCloseHelp=Chiptani yopish paytida sizga uchinchi tomon kontaktlaridan biriga xabar yuborish taklif etiladi. Ommaviy yopilganda, chipta bilan bog'langan uchinchi tomonning bitta kontaktiga xabar yuboriladi. +TicketWrongContact=Taqdim etilgan kontakt joriy chipta kontaktlarining bir qismi emas. Email yuborilmadi. +TicketChooseProductCategory=Chiptalarni qo'llab-quvvatlash uchun mahsulot toifasi +TicketChooseProductCategoryHelp=Chiptalarni qo'llab-quvvatlash mahsulot toifasini tanlang. Bu shartnomani chiptaga avtomatik bog'lash uchun ishlatiladi. + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=Sana bo'yicha o'sish sanasi bo'yicha saralash OrderByDateDesc=Kamayish sanasi bo'yicha saralash ShowAsConversation=Suhbat ro'yxati sifatida ko'rsatish MessageListViewType=Jadval ro'yxati sifatida ko'rsatish +ConfirmMassTicketClosingSendEmail=Chiptalarni yopish paytida avtomatik ravishda elektron pochta xabarlarini yuboring +ConfirmMassTicketClosingSendEmailQuestion=Ushbu chiptalarni yopish paytida uchinchi tomonlarga xabar berishni xohlaysizmi? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Qabul qiluvchi bo'sh. Elektron poc TicketGoIntoContactTab=Ularni tanlash uchun "Kontaktlar" yorlig'iga o'ting TicketMessageMailIntro=Kirish TicketMessageMailIntroHelp=Ushbu matn faqat elektron pochta boshida qo'shiladi va saqlanmaydi. -TicketMessageMailIntroLabelAdmin=Elektron pochta xabarlarini yuborishda xabar bilan tanishish -TicketMessageMailIntroText=Salom,
    Siz bog'langan chiptaga yangi javob yuborildi. Mana xabar:
    -TicketMessageMailIntroHelpAdmin=Ushbu matn chiptaga javob matnidan oldin kiritiladi. +TicketMessageMailIntroLabelAdmin=Barcha chipta javoblari uchun kirish matni +TicketMessageMailIntroText=Salom,
    Siz kuzatayotgan chiptaga yangi javob qo'shildi. Bu xabar:
    +TicketMessageMailIntroHelpAdmin=Bu matn Dolibarrdan chiptaga javob berishda javob oldidan kiritiladi TicketMessageMailSignature=Imzo TicketMessageMailSignatureHelp=Ushbu matn faqat elektron pochta oxirida qo'shiladi va saqlanmaydi. -TicketMessageMailSignatureText=

    Hurmat bilan,

    -

    +TicketMessageMailSignatureText=Dolibarr orqali %s tomonidan yuborilgan xabar TicketMessageMailSignatureLabelAdmin=Javob elektron pochtasining imzosi TicketMessageMailSignatureHelpAdmin=Ushbu matn javob xabaridan keyin kiritiladi. TicketMessageHelp=Faqat ushbu matn chipta kartasidagi xabarlar ro'yxatida saqlanadi. @@ -238,9 +254,16 @@ TicketChangeStatus=Vaziyatni o'zgartirish TicketConfirmChangeStatus=Vaziyat o'zgarishini tasdiqlang: %s? TicketLogStatusChanged=Holat o'zgartirildi: %s dan %s ga TicketNotNotifyTiersAtCreate=Yaratganda kompaniyani xabardor qilmang +NotifyThirdpartyOnTicketClosing=Chipta yopilganda xabardor qilish uchun kontaktlar +TicketNotifyAllTiersAtClose=Barcha tegishli kontaktlar +TicketNotNotifyTiersAtClose=Tegishli aloqa yo'q Unread=O'qilmagan TicketNotCreatedFromPublicInterface=Mavjud emas. Chipta umumiy interfeysdan yaratilmagan. ErrorTicketRefRequired=Chipta ma'lumotnomasining nomi talab qilinadi +TicketsDelayForFirstResponseTooLong=Chipta ochilganidan beri juda ko'p vaqt o'tdi, hech qanday javob yo'q. +TicketsDelayFromLastResponseTooLong=Bu chiptadagi oxirgi javobdan beri juda koʻp vaqt oʻtdi. +TicketNoContractFoundToLink=Ushbu chiptaga avtomatik ravishda bog'langan shartnoma topilmadi. Iltimos, shartnomani qo'lda bog'lang. +TicketManyContractsLinked=Ko'pgina shartnomalar ushbu chiptaga avtomatik ravishda bog'langan. Qaysi birini tanlash kerakligini tekshirishga ishonch hosil qiling. # # Logs @@ -268,8 +291,9 @@ TicketNewEmailBody=Bu yangi chiptani ro'yxatdan o'tkazganingizni tasdiqlovchi av TicketNewEmailBodyCustomer=Bu sizning hisobingizda yangi chipta yaratilganligini tasdiqlovchi avtomatik elektron pochta xabaridir. TicketNewEmailBodyInfosTicket=Chiptani kuzatish uchun ma'lumot TicketNewEmailBodyInfosTrackId=Chiptalarni kuzatish raqami: %s -TicketNewEmailBodyInfosTrackUrl=Yuqoridagi havolani bosish orqali chipta borishi bilan tanishishingiz mumkin. +TicketNewEmailBodyInfosTrackUrl=Quyidagi havolani bosish orqali chiptaning borishi bilan tanishishingiz mumkin TicketNewEmailBodyInfosTrackUrlCustomer=Siz quyidagi havolani bosish orqali ma'lum bir interfeysda chipta borishini ko'rishingiz mumkin +TicketCloseEmailBodyInfosTrackUrlCustomer=Quyidagi havolani bosish orqali ushbu chipta tarixi bilan tanishishingiz mumkin TicketEmailPleaseDoNotReplyToThisEmail=Iltimos, ushbu elektron pochtaga to'g'ridan-to'g'ri javob bermang! Interfeysga javob berish uchun havoladan foydalaning. TicketPublicInfoCreateTicket=Ushbu shakl sizning boshqaruv tizimimizda qo'llab-quvvatlash chiptasini yozib olishga imkon beradi. TicketPublicPleaseBeAccuratelyDescribe=Iltimos, muammoni aniq tasvirlab bering. Sizning so'rovingizni to'g'ri aniqlab olishimiz uchun imkon qadar ko'proq ma'lumotlarni taqdim eting. @@ -291,6 +315,10 @@ NewUser=Yangi foydalanuvchi NumberOfTicketsByMonth=Oyiga chiptalar soni NbOfTickets=Chiptalar soni # notifications +TicketCloseEmailSubjectCustomer=Chipta yopildi +TicketCloseEmailBodyCustomer=Bu %s chiptasi hozirgina yopilganligi haqida sizni xabardor qilish uchun avtomatik xabar. +TicketCloseEmailSubjectAdmin=Chipta yopildi - Réf %s (davlat chiptasi identifikatori %s) +TicketCloseEmailBodyAdmin=ID #%s bo'lgan chipta hozirgina yopildi, ma'lumotga qarang: TicketNotificationEmailSubject=%s chiptasi yangilandi TicketNotificationEmailBody=Bu sizga %s chiptasi yangilanganligi haqida xabar berish uchun avtomatik xabar TicketNotificationRecipient=Bildirishnoma oluvchi @@ -318,7 +346,7 @@ BoxTicketLastXDays=Oxirgi %s kunlar ichida yangi chiptalar soni BoxTicketLastXDayswidget = Oxirgi X kunlardagi kunlar bo'yicha yangi chiptalar soni BoxNoTicketLastXDays=Oxirgi %s kunida yangi chiptalar yo'q BoxNumberOfTicketByDay=Kuniga yangi chiptalar soni -BoxNewTicketVSClose=Number of tickets versus closed tickets (today) +BoxNewTicketVSClose=Chiptalar soni yopiq chiptalarga nisbatan (bugun) TicketCreatedToday=Bugun yaratilgan chipta TicketClosedToday=Bugun chipta yopildi KMFoundForTicketGroup=Biz sizning savolingizga javob beradigan mavzular va savol -javoblarni topdik, chiptani topshirishdan oldin ularni tekshirib ko'ring diff --git a/htdocs/langs/uz_UZ/trips.lang b/htdocs/langs/uz_UZ/trips.lang index a7fe10dc2b0..033f1a79f3f 100644 --- a/htdocs/langs/uz_UZ/trips.lang +++ b/htdocs/langs/uz_UZ/trips.lang @@ -112,7 +112,7 @@ ConfirmCloneExpenseReport=Ushbu xarajatlar hisobotini klonlamoqchimisiz? ExpenseReportsIk=Kilometr uchun to'lovlarni sozlash ExpenseReportsRules=Xarajatlarni hisobot qilish qoidalari ExpenseReportIkDesc=Kilometr sarfini hisob-kitobini toifasi va diapazoni bo'yicha o'zgartirishingiz mumkin. d - kilometrdagi masofa -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 +ExpenseReportRulesDesc=Xarajatlar hisobotlari uchun maksimal miqdor qoidalarini belgilashingiz mumkin. Ushbu qoidalar xarajat hisobotiga yangi xarajat kiritilganda qo'llaniladi expenseReportOffset=Ofset expenseReportCoef=Koeffitsient expenseReportTotalForFive= d = 5 bilan misol @@ -127,19 +127,19 @@ ExpenseReportDomain=Qo'llash uchun domen ExpenseReportLimitOn=Cheklov ExpenseReportDateStart=Sana boshlanishi ExpenseReportDateEnd=Sana tugashi -ExpenseReportLimitAmount=Max amount -ExpenseReportRestrictive=Exceeding forbidden +ExpenseReportLimitAmount=Maksimal miqdor +ExpenseReportRestrictive=Haddan oshib ketish taqiqlangan AllExpenseReport=Xarajatlar bo'yicha hisobotning barcha turlari OnExpense=Xarajatlar liniyasi ExpenseReportRuleSave=Xarajatlar bo'yicha hisobot qoidalari saqlandi ExpenseReportRuleErrorOnSave=Xato: %s RangeNum=%d oralig'i -ExpenseReportConstraintViolationError=Max amount exceeded (rule %s): %s is higher than %s (Exceeding forbidden) +ExpenseReportConstraintViolationError=Maksimal miqdor oshib ketdi (%s qoidasi): %s %s dan yuqori (Oshib ketish taqiqlangan) byEX_DAY=kun bilan (%s chegarasi) byEX_MON=oy bo'yicha (%s chegarasi) byEX_YEA=yil bo'yicha (%s chegarasi) byEX_EXP=satr bo'yicha (%s chegarasi) -ExpenseReportConstraintViolationWarning=Max amount exceeded (rule %s): %s is higher than %s (Exceeding authorized) +ExpenseReportConstraintViolationWarning=Maksimal miqdor oshib ketdi (%s qoidasi): %s %s dan yuqori (ruxsatdan oshib ketdi) nolimitbyEX_DAY=kunga (cheklovsiz) nolimitbyEX_MON=oy bo'yicha (cheklovsiz) nolimitbyEX_YEA=yil bo'yicha (cheklovsiz) diff --git a/htdocs/langs/uz_UZ/users.lang b/htdocs/langs/uz_UZ/users.lang index 18ff60f6ebc..01bd6042b6b 100644 --- a/htdocs/langs/uz_UZ/users.lang +++ b/htdocs/langs/uz_UZ/users.lang @@ -114,7 +114,7 @@ UserLogoff=Foydalanuvchidan chiqish UserLogged=Foydalanuvchi tizimga kirdi DateOfEmployment=Ishga joylashish sanasi DateEmployment=Bandlik -DateEmploymentstart=Ishga kirishish sanasi +DateEmploymentStart=Ishga kirishish sanasi DateEmploymentEnd=Ishni tugatish sanasi RangeOfLoginValidity=Kirishning amal qilish muddati CantDisableYourself=O'zingizning foydalanuvchi yozuvingizni o'chirib qo'yolmaysiz @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Odatiy bo'lib, tasdiqlovchi foydalanuvchi nazorat UserPersonalEmail=Shaxsiy elektron pochta UserPersonalMobile=Shaxsiy mobil telefon WarningNotLangOfInterface=Ogohlantirish, bu foydalanuvchi foydalanadigan asosiy til, u tanlagan interfeys tili emas. Ushbu foydalanuvchi tomonidan ko'rinadigan interfeys tilini o'zgartirish uchun %s yorlig'iga o'ting +DateLastLogin=Oxirgi kirish sanasi +DatePreviousLogin=Oldingi kirish sanasi +IPLastLogin=IP oxirgi kirish +IPPreviousLogin=IP oldingi kirish diff --git a/htdocs/langs/uz_UZ/website.lang b/htdocs/langs/uz_UZ/website.lang index 74fb6c2d1c4..d3a85d25032 100644 --- a/htdocs/langs/uz_UZ/website.lang +++ b/htdocs/langs/uz_UZ/website.lang @@ -44,9 +44,9 @@ RealURL=Haqiqiy URL ViewWebsiteInProduction=Uy manzillaridan foydalangan holda veb-saytni ko'ring 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 -YouCanAlsoDeployToAnotherWHP= Veb-saytingizni boshqa Dolibarr Hosting provayderi bilan boshqaring
    Agar Internetda mavjud bo'lgan Apache yoki NGinx kabi veb-serveringiz bo'lmasa, veb-saytingizni boshqa Dolibarr xost-provayderi tomonidan taqdim etilgan boshqa Dolibarr nusxasi orqali eksport qilishingiz va import qilishingiz mumkin. veb-sayt moduli bilan integratsiya. saytida ba'zi Dolibarr hosting provayderlari ro'yxatini topishingiz mumkin https://saas.dolibarr.org -CheckVirtualHostPerms=Check also that the virtual host user (for example www-data) has %s permissions on files into
    %s +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= Veb-saytingizni boshqa Dolibarr Hosting provayderi bilan ishga tushiring
    Agar sizda Apache yoki NGinx kabi veb-serveringiz internetda mavjud bo'lmasa, veb-saytingizni boshqa Dolibarr hosting provayderi tomonidan taqdim etilgan boshqa to'liq hostingga eksport qilishingiz va import qilishingiz mumkin. Veb-sayt moduli bilan integratsiya. Ba'zi Dolibarr hosting provayderlari ro'yxatini https://saas.dolibarr.org da topishingiz mumkin. +CheckVirtualHostPerms=Virtual xost foydalanuvchisi (masalan, www-data) %s fayllariga
    a0e7843947c064az0c a0e7843947c064010c a0e7843947fz0
    ruxsati borligini ham tekshiring. ReadPerm=O'qing WritePerm=Yozing TestDeployOnWeb=Internetda sinov / tarqatish @@ -60,7 +60,7 @@ YouCanEditHtmlSourceckeditor=HTML manba kodini tahrirlashdagi "Manba" tugmasi yo YouCanEditHtmlSource=
    <? php? > a0a65d teglari yordamida ushbu manbaga PHP kodini qo'shishingiz mumkin. Quyidagi global o'zgaruvchilar mavjud: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs, $ pagelangs.

    Siz shuningdek boshqa sahifa / konteyner tarkibini quyidagi sintaksis bilan qo'shishingiz mumkin:
    a_31c_to_of_0_0_b_0_b_0_b_b_0_b_b_0_b_0_b_0_0_b_0_0_06_c46c6c6c6c6c6cb6cbbc0bbc0cbbbc0f3cbbbc0fdbbc0cbbc0cbbbc9cbbbc9cbbc9cbbc0cbbnc ' ? >

    quyidagi sintaksisi rang bilan boshqa sahifa / konteyner uchun yo'naltirishni qilish mumkin (Eslatma: ishlab chiqarish yo'riq oldin, har qanday mazmun, albatta):?
    < php redirectToContainer ( 'alias_of_container_to_redirect_to'); ? hujjatlar ichiga saqlangan fayl yuklab uchun link o'z ichiga uchun
    <a href = "alias_of_page_to_link_to.php" >mylink<a>

    : >


    sintaksisi foydalanishingiz, boshqa sahifaga bilan bog'lanish qo'shish uchun
    katalog, document.php jild foydalanish: hujjatlar / ECM'de bir fayl uchun,
    misol (ehtiyoj identifikatsiyadan kerak), sintaksisi:?
    <a href = "/ document.php modulepart = ecm & fayl = [relative_dir / ] filename.ext ">
    Hujjatlar / mediyadagi fayl (umumiy foydalanish uchun ochiq katalog) uchun sintaksis:
    a039zd7 "/document.php?modulepart=medias&file=(relative_dir/ assignedfilename.ext">
    Sharing havolasi bilan birgalikda foydalaniladigan fayl uchun (ochiq fayl kirish h0904f097). /document.php?hashp=publicsharekeyoffile">


    Direktoriyaning hujjatlar ichiga saqlangan bir tasvir , viewimage.php jild foydalanishni o'z ichiga oladi: ochiq hujjatlar / medias yuzasidan tasvir uchun,
    misoli ( umumiy foydalanish uchun sintaksis:
    <img src = "/ viewimage.php? modulepart = medias&file = [relat_dir / ]00f07006" #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=Almashish havolasi bilan birgalikda foydalaniladigan rasm uchun (faylning umumiy xesh tugmachasidan foydalangan holda ochiq kirish) sintaksis quyidagicha:
    <img src = "/ viewimage.php? Hashp = 12345679012 ..." a0012c7dff0a0z0z00090f0f08a0f09a0f09a09a09cb08a0a09a03c09a03c09c9c9c9c9c9c08f96f96f9f08f08f0f9fdf9fdfdfdfc7fd -YouCanEditHtmlSourceMore=
    -da mavjud bo'lgan HTML yoki dinamik kodlarning boshqa misollari,
    . +YouCanEditHtmlSourceMore=
    HTML yoki dinamik kodning boshqa misollari wiki hujjatlari
    da mavjud. ClonePage=Sahifani / konteynerni klonlash CloneSite=Klon sayti SiteAdded=Veb-sayt qo'shildi diff --git a/htdocs/langs/uz_UZ/withdrawals.lang b/htdocs/langs/uz_UZ/withdrawals.lang index 17a7785f94b..f5aa317dc7f 100644 --- a/htdocs/langs/uz_UZ/withdrawals.lang +++ b/htdocs/langs/uz_UZ/withdrawals.lang @@ -15,7 +15,7 @@ BankTransferReceipt=Kredit o'tkazish tartibi LatestBankTransferReceipts=Kredit o'tkazish bo'yicha so'nggi buyurtmalar %s LastWithdrawalReceipts=Oxirgi %s to'g'ridan-to'g'ri debet fayllari WithdrawalsLine=To'g'ridan-to'g'ri debet buyurtmasi liniyasi -CreditTransfer=Credit transfer +CreditTransfer=Kredit o'tkazish CreditTransferLine=Kredit o'tkazish liniyasi WithdrawalsLines=To'g'ridan-to'g'ri debet buyurtma liniyalari CreditTransferLines=Kredit o'tkazish liniyalari @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=Kredit o'tkazmasi orqali to'lovni kutayotgan sotu InvoiceWaitingWithdraw=To'lov debetini kutayotgan hisob-faktura InvoiceWaitingPaymentByBankTransfer=Kredit o'tkazilishini kutayotgan hisob-faktura 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. ResponsibleUser=Foydalanuvchi uchun javobgar @@ -48,7 +49,7 @@ ThirdPartyBankCode=Uchinchi tomonning bank kodi NoInvoiceCouldBeWithdrawed=Hech qanday schyot-faktura muvaffaqiyatli hisobdan chiqarilmagan. Hisob-kitoblarning amaldagi IBANga ega kompaniyalarda ekanligini va IBAN-da %s rejimida UMR (noyob mandat ma'lumotnomasi) mavjudligini tekshiring. WithdrawalCantBeCreditedTwice=Ushbu pulni qaytarib olish kvitansiyasi allaqachon kreditlangan deb belgilangan; buni ikki marta bajarish mumkin emas, chunki bu takroriy to'lovlar va bank yozuvlarini yaratishi mumkin. ClassCredited=Tasniflangan kredit -ClassDebited=Classify debited +ClassDebited=debetlangan tasniflash ClassCreditedConfirm=Ushbu olib qo'yilgan kvitansiyani sizning bank hisob raqamingizga kiritilgan deb tasniflashni xohlaganingizga ishonchingiz komilmi? TransData=Etkazish sanasi TransMetod=Uzatish usuli @@ -82,7 +83,7 @@ StatusMotif7=Sud qarori StatusMotif8=Boshqa sabab CreateForSepaFRST=To'g'ridan-to'g'ri debet faylini yaratish (SEPA FRST) CreateForSepaRCUR=To'g'ridan-to'g'ri debet faylini yaratish (SEPA RCUR) -CreateAll=Create direct debit file +CreateAll=To'g'ridan-to'g'ri debet faylini yarating CreateFileForPaymentByBankTransfer=Kredit o'tkazish uchun fayl yarating CreateSepaFileForPaymentByBankTransfer=Kredit o'tkazish faylini yarating (SEPA) CreateGuichet=Faqat ofis @@ -117,7 +118,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=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=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. CreditorIdentifier=Kreditor identifikatori CreditorName=Kreditor nomi SEPAFillForm=(B) * belgilangan barcha maydonlarni to'ldiring. @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Ijro sanasi CreateForSepa=To'g'ridan-to'g'ri debet faylini yarating ICS=Kreditor identifikatori - ICS +IDS=Debitor identifikatori END_TO_END="EndToEndId" SEPA XML yorlig'i - bitim uchun yagona identifikator USTRD="Strukturasiz" SEPA XML yorlig'i ADDDAYS=Ijro sanasiga kunlarni qo'shing @@ -152,5 +154,6 @@ ModeWarning=Haqiqiy rejim uchun parametr o'rnatilmagan, biz ushbu simulyatsiyada ErrorCompanyHasDuplicateDefaultBAN=%s id raqamiga ega kompaniya bir nechta standart bank hisobvarag'iga ega. Qaysi birini ishlatishni bilishning imkoni yo'q. ErrorICSmissing=Bank hisobidagi %s yo'qolgan ICS TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=To'g'ridan-to'g'ri debet buyurtmasining umumiy miqdori satrlar yig'indisidan farq qiladi -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=Ogohlantirish: %s miqdorida bir qancha kutilayotgan toʻgʻridan-toʻgʻri debet buyurtmalari (%s) soʻralgan +WarningSomeCreditTransferAlreadyExists=Ogohlantirish: %s miqdorida kredit o‘tkazmasi (%s) talab qilingan. +UsedFor=%s uchun ishlatiladi diff --git a/htdocs/langs/uz_UZ/workflow.lang b/htdocs/langs/uz_UZ/workflow.lang index 3b6e0d3f594..0062bc2a2ad 100644 --- a/htdocs/langs/uz_UZ/workflow.lang +++ b/htdocs/langs/uz_UZ/workflow.lang @@ -7,6 +7,7 @@ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Tijorat taklifi imzolanganidan so'ng avtoma descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Tijorat taklifi imzolangandan so'ng mijozning hisob-fakturasini avtomatik ravishda yarating (yangi hisob-faktura taklif bilan bir xil miqdorda bo'ladi) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Shartnoma tasdiqlangandan so'ng mijozning hisob-fakturasini avtomatik ravishda yarating descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Savdo buyurtmasi yopilgandan so'ng avtomatik ravishda mijozning hisob-fakturasini yarating (yangi hisob-faktura buyurtma bilan bir xil miqdorda bo'ladi) +descWORKFLOW_TICKET_CREATE_INTERVENTION=Chipta yaratishda avtomatik ravishda intervensiya yarating. # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Savdo buyurtmasi billingga o'rnatilganda (va agar buyurtma miqdori imzolangan bog'langan taklifning umumiy miqdori bilan bir xil bo'lsa) bog'langan manba taklifini hisob-kitob sifatida tasniflang. descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Mijozlarning hisob-fakturasi tasdiqlanganda (va agar schyot-faktura miqdori imzolangan bog'langan taklifning umumiy miqdori bilan bir xil bo'lsa) bog'langan manba taklifini hisob-kitob sifatida tasniflang. @@ -14,13 +15,22 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Mijozlarning hisob-fakturasi t descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Mijozlarning hisob-fakturasi to'lash uchun o'rnatilganda (va agar schyot-faktura miqdori bog'langan buyurtmaning umumiy miqdori bilan bir xil bo'lsa) bog'langan manbalarni sotish buyurtmasini billing sifatida tasniflang. descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Bog'langan manbalarni sotish buyurtmasini jo'natma tasdiqlanganda jo'natilgan deb tasniflang (va agar barcha jo'natmalar tomonidan jo'natilgan miqdor yangilanish uchun buyurtma bilan bir xil bo'lsa) descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Bog'langan manbalarni sotish buyurtmasini yuk yopilganda yuborilgan deb tasniflang (va agar barcha yuklar jo'natilgan miqdori yangilash tartibidagi kabi bo'lsa). -# Autoclassify purchase order +# Autoclassify purchase proposal descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Bog'langan manba etkazib beruvchisi taklifini sotuvchi hisob-fakturasi tasdiqlangandan keyin hisob-kitob sifatida tasniflang (va agar faktura miqdori bog'langan taklifning umumiy miqdori bilan bir xil bo'lsa) +# Autoclassify purchase order descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Sotib oluvchi hisob-fakturasi tasdiqlanganda bog'langan manbadan sotib olish buyurtmasini billing sifatida tasniflang (va agar schyot-fakturaning miqdori bog'langan buyurtmaning umumiy miqdori bilan bir xil bo'lsa) +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 +# 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 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=Chipta yopilganda chipta bilan bog'liq barcha aralashuvlarni yoping 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 +AutomaticClosing=Avtomatik yopish +AutomaticLinking=Avtomatik ulanish diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index 3421d5b634c..8aad217d4bd 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Tài khoản kế toán chính cho t 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: AccountancyAreaDescActionOnce=Các hành động sau thường được thực hiện một lần duy nhất hoặc một lần mỗi năm ... -AccountancyAreaDescActionOnceBis=Các bước tiếp theo nên được thực hiện để giúp bạn tiết kiệm thời gian trong tương lai bằng cách gợi ý cho bạn tài khoản kế toán mặc định chính xác khi thực hiện ghi nhật ký (viết nhật ký trong Nhật ký và Sổ nhật ký chung) +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=Các hành động sau đây thường được thực hiện mỗi tháng, tuần hoặc ngày đối với các công ty rất lớn ... -AccountancyAreaDescJournalSetup=BƯỚC %s: Tạo hoặc kiểm tra nội dung danh sách nhật ký của bạn từ 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=BƯỚC %s: Xác định tài khoản kế toán cho mỗi mức thuế VAT. Để làm điều này, sử dụng mục menu %s. AccountancyAreaDescDefault=BƯỚC %s: Xác định tài khoản kế toán mặc định. Đối với điều này, sử dụng mục menu %s. -AccountancyAreaDescExpenseReport=BƯỚC %s: Xác định tài khoản kế toán mặc định cho từng loại báo cáo chi phí. Đối với điều này, sử dụng mục menu %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=BƯỚC %s: Xác định tài khoản kế toán mặc định để thanh toán tiền lương. Đối với điều này, sử dụng mục menu %s. -AccountancyAreaDescContrib=BƯỚC %s: Xác định tài khoản kế toán mặc định cho các chi phí đặc biệt (thuế khác). Đối với điều này, sử dụng mục menu %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for Taxes (special expenses). For this, use the menu entry %s. AccountancyAreaDescDonation=BƯỚC %s: Xác định tài khoản kế toán mặc định để quyên góp. Đối với điều này, sử dụng mục menu %s. AccountancyAreaDescSubscription=BƯỚC %s: Xác định tài khoản kế toán mặc định cho đăng ký thành viên. Đối với điều này, sử dụng mục menu %s. AccountancyAreaDescMisc=BƯỚC %s: Xác định tài khoản mặc định bắt buộc và tài khoản kế toán mặc định cho các giao dịch khác. Đối với điều này, sử dụng mục menu %s. AccountancyAreaDescLoan=BƯỚC %s: Xác định tài khoản kế toán mặc định cho các khoản vay. Đối với điều này, sử dụng mục menu %s. AccountancyAreaDescBank=BƯỚC %s: Xác định tài khoản kế toán và mã nhật ký cho từng ngân hàng và tài khoản tài chính. Đối với điều này, sử dụng mục menu %s. -AccountancyAreaDescProd=BƯỚC %s: Xác định tài khoản kế toán trên các sản phẩm/ dịch vụ của bạn. Đối với điều này, sử dụng mục menu %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=BƯỚC %s: Kiểm tra ràng buộc giữa các dòng %s hiện tại và tài khoản kế toán được thực hiện, do đó, ứng dụng sẽ có thể ghi nhật ký giao dịch trong Sổ cái chỉ bằng một cú nhấp chuột. Hoàn thành các ràng buộc còn thiếu. Đối với điều này, sử dụng mục menu %s. AccountancyAreaDescWriteRecords=BƯỚC %s: Viết giao dịch vào Sổ Cái. Để làm điều này, hãy vào menu %s và nhấp vào nút %s . @@ -112,7 +112,7 @@ MenuAccountancyClosure=Đóng MenuAccountancyValidationMovements=Xác nhận các kết chuyển ProductsBinding=Tài khoản sản phẩm TransferInAccounting=Kế toán chuyển khoản -RegistrationInAccounting=Kế toán đăng ký +RegistrationInAccounting=Recording in accounting Binding=Liên kết với tài khoản CustomersVentilation=Ràng buộc hóa đơn khách hàng SuppliersVentilation=Ràng buộc hóa đơn nhà cung cấp @@ -120,7 +120,7 @@ ExpenseReportsVentilation=Ràng buộc báo cáo chi phí CreateMvts=Tạo giao dịch mới UpdateMvts=Sửa đổi giao dịch ValidTransaction=Xác nhận giao dịch -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=Sổ cái BookkeepingSubAccount=Subledger AccountBalance=Số dư tài khoản @@ -182,6 +182,7 @@ 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_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=Theo nhóm được xác định trước ByPersonalizedAccountGroups=Theo nhóm đã cá nhân hóa ByYear=Theo năm NotMatch=Không được thiết lập -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Tháng cần xóa DelYear=Năm cần xóa DelJournal=Nhật ký cần xóa -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=Nhật ký tài chính ExpenseReportsJournal=Nhật ký báo cáo chi phí DescFinanceJournal=Nhật ký tài chính bao gồm tất cả các loại thanh toán bằng tài khoản ngân hàng @@ -278,30 +279,31 @@ 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=Tham khảo tại đây số lượng kết chuyển theo tháng không được xác nhận và năm tài chính đã mở -OverviewOfMovementsNotValidated=Bước 1 / Tổng quan về các kết chuyển không được xác nhận. (Cần thiết để đóng một năm tài chính) -AllMovementsWereRecordedAsValidated=All movements were recorded as validated -NotAllMovementsCouldBeRecordedAsValidated=Not all movements could be recorded as validated -ValidateMovements=Xác nhận các kết chuyển +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=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 -MvtNotCorrectlyBalanced=Kết chuyển không đúng số dư. Nợ = %s | Tín dụng = %s +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=Không có thêm hồ sơ để 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 ChangeBinding=Thay đổi ràng buộc Accounted=Tài khoản trên Sổ cái NotYetAccounted=Not yet transferred to accounting ShowTutorial=Chương trình hướng dẫn NotReconciled=Chưa đối chiếu -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 @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=Xuất dữ liệu bản nháp nhật ký Modelcsv=Mô hình xuất dữ liệu @@ -394,6 +397,21 @@ Range=Phạm vi tài khoản kế toán Calculated=Tính toán Formula=Công thức +## 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=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)? + ## Error SomeMandatoryStepsOfSetupWereNotDone=Một số bước bắt buộc thiết lập không được thực hiện, vui lòng hoàn thành chúng ErrorNoAccountingCategoryForThisCountry=Không có nhóm tài khoản kế toán có sẵn cho quốc gia %s (Xem Trang chủ - Cài đặt - Từ điển) @@ -406,6 +424,9 @@ Binded=Dòng ràng buộc ToBind=Dòng để ràng buộc UseMenuToSetBindindManualy=Các dòng chưa bị ràng buộc, sử dụng menu %s để tạo ràng buộc theo cách thủ công 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 ## Import ImportAccountingEntries=Ghi sổ kế toán diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index c60dc0acf38..74ff8ee19c0 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -109,7 +109,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 @@ -477,7 +477,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ỏ @@ -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=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 @@ -714,13 +714,14 @@ 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 Permission39=Ignore minimum price -Permission41=Xem các dự án và nhiệm vụ (dự án chia sẻ và các dự án tôi liên lạc). Cũng có thể nhập thời gian tiêu thụ, đối với tôi hoặc hệ thống phân cấp của tôi, trên các nhiệm vụ được giao (Bảng chấm công) -Permission42=Tạo / sửa đổi dự án (dự án chia sẻ và dự án tôi liên hệ). Cũng có thể tạo các tác vụ và gán người dùng cho dự án và tác vụ -Permission44=Xóa các dự án (dự án được chia sẻ và các dự án tôi liên hệ) +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=Xuất dữ liệu dự án Permission61=Xem intervention Permission62=Tạo/chỉnh sửa intervention @@ -739,6 +740,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 @@ -766,9 +768,10 @@ Permission122=Tạo/chỉnh sửa bên thứ ba liên quan đến người dùng Permission125=Xóa bên thứ ba liên quan đến người dùng Permission126=Xuất dữ liệu bên thứ ba Permission130=Create/modify third parties payment information -Permission141=Xem tất cả các dự án và nhiệm vụ (cũng là các dự án riêng mà tôi không phải là người liên lạc) -Permission142=Tạo / sửa đổi tất cả các dự án và nhiệm vụ (cũng là các dự án riêng mà tôi không phải là người liên lạc) -Permission144=Xóa tất cả các dự án và nhiệm vụ (cũng là các dự án riêng mà tôi không liên lạc) +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=Xem nhà cung cấp Permission147=Xem thống kê Permission151=Xem lệnh thanh toán ghi nợ trực tiếp @@ -873,6 +876,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ụ @@ -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=Xem hóa đơn vật liệu Permission651=Tạo / Sửa đổi nhật hóa đơn vật liệu Permission652=Xóa hóa đơn vật liệu @@ -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=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. @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=Báo cáo chi phí - Danh mục vận tải DictionaryExpenseTaxRange=Báo cáo chi phí - Phạm vi theo danh mục vận chuyển DictionaryTransportMode=Intracomm report - Transport mode DictionaryBatchStatus=Product lot/serial Quality Control status +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 @@ -1122,7 +1132,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 @@ -1187,7 +1197,7 @@ BankModuleNotActive=Module tài khoản ngân hàng chưa được mở 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=Cảnh báo -DelaysOfToleranceBeforeWarning=Trì hoãn trước khi hiển thị cảnh báo cho: +DelaysOfToleranceBeforeWarning=Displaying a warning alert for... DelaysOfToleranceDesc=Đặt độ trễ trước khi biểu tượng cảnh báo %s được hiển thị trên màn hình cho thành phần trễ. Delays_MAIN_DELAY_ACTIONS_TODO=Sự kiện có kế hoạch (sự kiện chương trình nghị sự) chưa hoàn thành Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Dự án không đóng kịp thời @@ -1228,6 +1238,7 @@ 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. @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=Bạn đã ép buộc một bản dịch mới cho TitleNumberOfActivatedModules=Activated modules TotalNumberOfActivatedModules=Activated modules: %s / %s YouMustEnableOneModule=Bạn phải có ít nhất 1 mô-đun cho phép +YouMustEnableTranslationOverwriteBefore=You must first enable translation overwriting to be allowed to replace a translation ClassNotFoundIntoPathWarning=Không tìm thấy lớp %s trong đường dẫn PHP YesInSummer=Yes in summer OnlyFollowingModulesAreOpenedToExternalUsers=Lưu ý, chỉ các mô-đun sau mới khả dụng cho người dùng bên ngoài (không phân biệt quyền của những người dùng đó) và chỉ khi quyền được cấp:
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) PaymentsNumberingModule=Mô hình đánh số thanh toán 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. ##### Proposals ##### PropalSetup=Cài đặt module đơn hàng đề xuất ProposalsNumberingModules=Mô hình đánh số đơn hàng đề xuất @@ -1917,6 +1931,7 @@ ConfFileMustContainCustom=Cài đặt hoặc xây dựng một mô-đun bên ngo HighlightLinesOnMouseHover=Tô sáng các dòng bảng khi chuột di chuyển qua HighlightLinesColor=Tô sáng màu của dòng khi chuột đi qua (sử dụng 'ffffff' để không làm nổi bật) HighlightLinesChecked=Tô sáng màu của dòng khi được chọn (sử dụng 'ffffff' để không tô sáng) +UseBorderOnTable=Show left-right borders on tables BtnActionColor=Color of the action button TextBtnActionColor=Text color of the action button TextTitleColor=Màu văn bản của tiêu đề trang @@ -1925,7 +1940,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 @@ -1938,7 +1953,7 @@ EnterAnyCode=This field contains a reference to identify the line. Enter any val Enter0or1=Lỗi 0 hoặc 1 UnicodeCurrency=Nhập vào đây giữa các dấu ngoặc nhọn, danh sách số byte đại diện cho ký hiệu tiền tệ. Ví dụ: với $, nhập [36] - đối với brazil real R $ [82,36] - với €, nhập [8364] ColorFormat=Màu RGB ở định dạng HEX, ví dụ: 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=Vị trí của dòng ở trong danh sách kết hợp SellTaxRate=Sales tax rate RecuperableOnly="Có" cho VAT "Không được nhận nhưng có thể thu hồi" dành riêng cho một số tiểu bang ở Pháp. Giữ giá trị thành "Không" trong tất cả các trường hợp khác. @@ -1966,6 +1981,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 @@ -2019,6 +2035,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 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=Bộ lọc Regex để làm sạch giá trị (COMP 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 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=Nếu bạn lưu trữ dữ liệu về các công ty / công dân châu Âu, bạn có thể nêu tên người liên hệ chịu trách nhiệm về Quy định bảo vệ dữ liệu chung tại đây +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 HelpOnTooltipDesc=Đặt văn bản hoặc từ khóa dịch ở đây để văn bản hiển thị trong tooltip khi trường này xuất hiện trong một biểu mẫu YouCanDeleteFileOnServerWith=Bạn có thể xóa tệp này trên máy chủ bằng Dòng lệnh:
    %s @@ -2048,27 +2065,46 @@ 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 CollectNow=Thu thập ngay bây giờ -ConfirmCloneEmailCollector=Bạn có chắc chắn muốn sao chép trình thu thập Email %s không? +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 an agenda event. EmailCollectorConfirmCollectTitle=Email xác nhận thu thập -EmailCollectorConfirmCollect=Bạn có muốn chạy trình thu thập cho thu thập này bây giờ không? +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=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, 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=Mã kết quả mới nhất NbOfEmailsInInbox=Số lượng email trong thư mục nguồn LoadThirdPartyFromName=Tải tìm kiếm bên thứ ba trên %s (chỉ tải) @@ -2082,14 +2118,14 @@ 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 UseSearchToSelectResource=Sử dụng một hình thức tìm kiếm để chọn một tài nguyên (chứ không phải là một danh sách thả xuống). DisabledResourceLinkUser=Vô hiệu hóa tính năng để liên kết tài nguyên với người dùng DisabledResourceLinkContact=Vô hiệu hóa tính năng để liên kết tài nguyên với các liên lạc -EnableResourceUsedInEventCheck=Bật tính năng để kiểm tra xem tài nguyên có được sử dụng trong một sự kiện không +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=Xác nhận reset mô đun OnMobileOnly=Chỉ trên màn hình nhỏ (điện thoại thông minh) 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=Xóa trình thu thập email ConfirmDeleteEmailCollector=Bạn có chắc chắn muốn xóa trình thu thập email này? RecipientEmailsWillBeReplacedWithThisValue=Email người nhận sẽ luôn được thay thế bằng giá trị này AtLeastOneDefaultBankAccountMandatory=Phải xác định ít nhất 1 tài khoản ngân hàng mặc định -RESTRICT_ON_IP=Chỉ cho phép truy cập vào một số IP máy chủ (ký tự đại diện không được phép, sử dụng khoảng trắng giữa các giá trị). Trống có nghĩa là mọi máy chủ có thể truy cập. +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=Dựa trên thư viện phiên bản SabreDAV NotAPublicIp=Không phải IP công cộng @@ -2144,6 +2180,9 @@ 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 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 @@ -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= 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. + +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 +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/vi_VN/companies.lang b/htdocs/langs/vi_VN/companies.lang index 0ad8601e12b..21fce333e9a 100644 --- a/htdocs/langs/vi_VN/companies.lang +++ b/htdocs/langs/vi_VN/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=Khu vực khảo sát IdThirdParty=ID bên thứ ba IdCompany=ID công ty IdContact=ID liên lạc +ThirdPartyAddress=Third-party address ThirdPartyContacts=Liên lạc của bên thứ ba ThirdPartyContact=Liên lạc/ địa chỉ của bên thứ ba Company=Công ty @@ -51,19 +52,22 @@ CivilityCode=Mã Civility RegisteredOffice=Trụ sở đăng ký Lastname=Họ Firstname=Tên +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=Vị trí công việc UserTitle=Tiêu đề 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 @@ -102,6 +106,7 @@ WrongSupplierCode=Mã nhà cung cấp không hợp lệ CustomerCodeModel=Kiểu mã khách hàng SupplierCodeModel=Mô hình mã nhà cung cấp Gencod=Mã vạch +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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=Khác ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=Danh sách các bên thứ ba ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=Tất cả (không lọc) -ContactType=Loại liên lạc +ContactType=Contact role ContactForOrders=Liên lạc đơn hàng ContactForOrdersOrShipments=Liên lạc của đơn đặt hàng hoặc vận chuyển ContactForProposals=Liên lạc đơn hàng đề xuất 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/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 33d8baf74d4..33bf62bdb76 100644 --- a/htdocs/langs/vi_VN/install.lang +++ b/htdocs/langs/vi_VN/install.lang @@ -8,6 +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 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. @@ -16,13 +17,6 @@ PHPMemoryOK=PHP bộ nhớ phiên tối đa của bạn được thiết lập < PHPMemoryTooLow=Bộ nhớ phiên tối đa PHP của bạn được đặt thành %s byte. Điều này là quá thấp. Thay đổi php.ini của bạn để đặt tham số memory_limit thành ít nhất %s byte. Recheck=Nhấn vào đây để kiểm tra chi tiết hơn ErrorPHPDoesNotSupportSessions=Cài đặt PHP của bạn không hỗ trợ phiên. Tính năng này là cần thiết để cho phép Dolibarr hoạt động. Kiểm tra thiết lập PHP và quyền của thư mục phiên. -ErrorPHPDoesNotSupportGD=Cài đặt PHP của bạn không hỗ trợ các chức năng đồ họa GD. Đồ thị sẽ không có sẵn. -ErrorPHPDoesNotSupportCurl=Cài đặt PHP của bạn không hỗ trợ Curl. -ErrorPHPDoesNotSupportCalendar=Cài đặt PHP của bạn không hỗ trợ các phần mở rộng lịch php. -ErrorPHPDoesNotSupportUTF8=Cài đặt PHP của bạn không hỗ trợ các chức năng UTF8. Dolibarr không thể hoạt động chính xác. Giải quyết điều này trước khi cài đặt Dolibarr. -ErrorPHPDoesNotSupportIntl=Cài đặt PHP của bạn không hỗ trợ các chức năng Intl. -ErrorPHPDoesNotSupportMbstring=Your PHP installation does not support mbstring functions. -ErrorPHPDoesNotSupportxDebug=PHP của bạn không hỗ trợ mở rộng chức năng debug ErrorPHPDoesNotSupport=PHP của bạn không hỗ trợ %s hàm ErrorDirDoesNotExists=Thư mục %s không tồn tại. ErrorGoBackAndCorrectParameters=Quay lại và kiểm tra / sửa các tham số. @@ -30,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/main.lang b/htdocs/langs/vi_VN/main.lang index be80241bf8a..1fd8b9d6113 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -17,12 +17,12 @@ 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 @@ -244,6 +244,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 +345,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 @@ -517,6 +518,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 +621,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 +712,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 +802,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 @@ -1164,3 +1169,14 @@ 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 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/vi_VN/members.lang b/htdocs/langs/vi_VN/members.lang index 58b7040f0a9..b1dfb83749b 100644 --- a/htdocs/langs/vi_VN/members.lang +++ b/htdocs/langs/vi_VN/members.lang @@ -15,7 +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 -MembersCards=Business cards for members +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) MembersListValid=Danh sách thành viên hợp lệ @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=ID Thành viên +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 @@ -159,11 +160,11 @@ HTPasswordExport=tạo tập tin htpassword NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=Hành động bổ sung ghi lại -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=Tạo một mục nhập trực tiếp vào tài khoản ngân hàng MoreActionBankViaInvoice=Tạo hóa đơn và thanh toán trên tài khoản ngân hàng MoreActionInvoiceOnly=Tạo hóa đơn không thanh toán -LinkToGeneratedPages=Tạo danh thiếp +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=Màn hình này cho phép bạn tạo các tệp PDF bằng danh thiếp cho tất cả các thành viên hoặc một thành viên cụ thể. DocForAllMembersCards=Tạo danh thiếp cho tất cả các thành viên DocForOneMemberCards=Tạo danh thiếp cho một thành viên cụ thể @@ -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/vi_VN/modulebuilder.lang b/htdocs/langs/vi_VN/modulebuilder.lang index 09d3deca48b..ccb0abc09cf 100644 --- a/htdocs/langs/vi_VN/modulebuilder.lang +++ b/htdocs/langs/vi_VN/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=Nhập tên của mô-đun / ứng dụng để tạo không có khoảng trắng. Sử dụng chữ hoa để phân tách các từ (Ví dụ: MyModule, ECommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Nhập tên của đối tượng để tạo không có khoảng trắng. Sử dụng chữ hoa để phân tách các từ (Ví dụ: MyObject, Student, Teacher ...). Tệp lớp CRUD, nhưng cũng là tệp API, các trang để liệt kê/thêm/chỉnh sửa/xóa đối tượng và các tệp SQL sẽ được tạo. +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=Đườ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 ModuleBuilderDesc4=Một mô-đun được phát hiện là 'có thể chỉnh sửa' khi tệp %s tồn tại trong thư mục gốc của mô-đun NewModule=Mô-đun mới NewObjectInModulebuilder=Đối tượng mới +NewDictionary=New dictionary ModuleKey=Khóa mô-đun ObjectKey=Khóa đối tượng +DicKey=Dictionary key ModuleInitialized=Mô-đun được khởi tạo FilesForObjectInitialized=Các tệp cho đối tượng mới '%s' được khởi tạo FilesForObjectUpdated=Các tệp cho đối tượng '%s' được cập nhật (tệp .sql và tệp .class.php) @@ -52,7 +55,7 @@ LanguageFile=Tập tin cho ngôn ngữ ObjectProperties=Thuộc tính đối tượng 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 = Đặt cơ sở dữ liệu thành NOT NULL. -1 = Cho phép giá trị null và ép buộc giá trị thành NULL nếu trống ('' hoặc 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=Được sử dụng cho 'tìm kiếm tất cả' DatabaseIndex=Chỉ mục cơ sở dữ liệu FileAlreadyExists=Tệp %s đã tồn tại @@ -94,7 +97,7 @@ LanguageDefDesc=Nhập vào tệp này, tất cả khóa và bản dịch cho t MenusDefDesc=Định nghĩa ở đây các menu được cung cấp bởi mô-đun của bạn DictionariesDefDesc=Định nghĩa ở đây các từ điển được cung cấp bởi mô-đun của bạn PermissionsDefDesc=Định nghĩa ở đây các quyền mới được cung cấp bởi mô-đun của bạn -MenusDefDescTooltip=Các menu được cung cấp bởi mô-đun / ứng dụng của bạn được định nghĩa trong mảng $this->menu vào tệp mô tả mô-đun. Bạn có thể chỉnh sửa thủ công tệp này hoặc sử dụng trình chỉnh sửa được nhúng.

    Lưu ý: Sau khi được định nghĩa (và kích hoạt lại mô-đun), các menu cũng sẽ hiển thị trong trình chỉnh sửa menu có sẵn cho người dùng quản trị viên trên %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=Các từ điển được cung cấp bởi mô-đun / ứng dụng của bạn được định nghĩa trong mảng $this->dictionaries vào tệp mô tả mô-đun. Bạn có thể chỉnh sửa thủ công tệp này hoặc sử dụng trình chỉnh sửa được nhúng.

    Lưu ý: Sau khi được định nghĩa (và kích hoạt lại mô-đun), từ điển cũng được hiển thị trong khu vực thiết lập cho người dùng quản trị viên trên %s. PermissionsDefDescTooltip=Các quyền được cung cấp bởi mô-đun / ứng dụng của bạn được định nghĩa trong mảng $this->rights vào tệp mô tả mô-đun. Bạn có thể chỉnh sửa thủ công tệp này hoặc sử dụng trình chỉnh sửa được nhúng.

    Lưu ý: Sau khi được định nghĩa (và kích hoạt lại mô-đun), các quyền được hiển thị trong thiết lập quyền mặc định %s. HooksDefDesc=Định nghĩa trong thuộc tính module_parts ['hook'] , trong mô tả mô-đun, ngữ cảnh của các hook bạn muốn quản lý (có thể tìm thấy danh sách các ngữ cảnh bằng cách tìm kiếm trên ' initHooks ( ' trong mã lõi).
    Chỉnh sửa tệp hook để thêm mã của các hàm hooked của bạn (có thể tìm thấy các hàm hookable bằng cách tìm kiếm trên ' execHooks ' trong mã lõi). @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destroy table if empty) TableDoesNotExists=Bảng %s không tồn tại TableDropped=Bảng %s đã bị xóa InitStructureFromExistingTable=Xây dựng cấu trúc mảng chuỗi của một bảng hiện có -UseAboutPage=Vô hiệu hóa trang giới thiệu +UseAboutPage=Do not generate the About page UseDocFolder=Vô hiệu hóa thư mục tài liệu UseSpecificReadme=Sử dụng một ReadMe cụ thể ContentOfREADMECustomized=Lưu ý: Nội dung của tệp README.md đã được thay thế bằng giá trị cụ thể được định nghĩa trong thiết lập ModuleBuilder. @@ -127,9 +130,9 @@ 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=Tham chiếu của đối tượng phải được tạo tự động -IncludeRefGenerationHelp=Kiểm tra điều này nếu bạn muốn bao gồm mã để quản lý việc tạo tự động của tham chiếu -IncludeDocGeneration=Tôi muốn tạo một số tài liệu từ đối tượng +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=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 KeyForTooltip=Khóa cho tooltip @@ -138,10 +141,15 @@ CSSViewClass=CSS for read form CSSListClass=CSS for list NotEditable=Không thể chỉnh sửa ForeignKey=Khóa ngoại -TypeOfFieldsHelp=Kiểu trường:
    varchar (99), double (24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' có nghĩa là chúng ta thêm nút + sau khi kết hợp để tạo bản ghi, ví dụ 'bộ lọc' có thể là 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTEER__)') +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=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=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=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. 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 c53ba8f9928..98a9a7cdf57 100644 --- a/htdocs/langs/vi_VN/other.lang +++ b/htdocs/langs/vi_VN/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=... hoặc xây dựng hồ sơ của riêng bạn
    DemoFundation=Quản lý thành viên của một nền tảng DemoFundation2=Quản lý thành viên và tài khoản ngân hàng của một nền tảng DemoCompanyServiceOnly=Chỉ công ty hoặc dịch vụ bán hàng tự do -DemoCompanyShopWithCashDesk=Quản lý một cửa hàng với một bàn bằng tiền mặt +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Cửa hàng bán sản phẩm qua điểm bán hàng DemoCompanyManufacturing=Công ty sản xuất sản phẩm. DemoCompanyAll=Công ty có nhiều hoạt động (tất cả các mô-đun chính) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = Đóng +Autofill = Autofill diff --git a/htdocs/langs/vi_VN/projects.lang b/htdocs/langs/vi_VN/projects.lang index ea0500c7c74..f8ce6f7a543 100644 --- a/htdocs/langs/vi_VN/projects.lang +++ b/htdocs/langs/vi_VN/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=Nhãn dự án ProjectsArea=Khu vực dự án ProjectStatus=Trạng thái dự án SharedProject=Mọi người -PrivateProject=Đàu mối dự án +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=Tất cả dự án tôi có thể đọc (của tôi + công khai) AllProjects=Tất cả dự án @@ -190,6 +190,7 @@ PlannedWorkload=Khối lượng công việc dự tính PlannedWorkloadShort=Khối lượng công việc ProjectReferers=Những thứ có liên quan ProjectMustBeValidatedFirst=Dự án phải được xác nhận trước +MustBeValidatedToBeSigned=%s must be validated first to be set to Signed. FirstAddRessourceToAllocateTime=Chỉ định tài nguyên người dùng làm liên hệ của dự án để phân bổ thời gian InputPerDay=Đầu vào mỗi ngày InputPerWeek=Đầu vào mỗi tuần @@ -287,3 +288,9 @@ 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=Ngày kết thúc không thể trước ngày bắt đầu +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 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 4723703967f..9ca803d425d 100644 --- a/htdocs/langs/vi_VN/ticket.lang +++ b/htdocs/langs/vi_VN/ticket.lang @@ -90,10 +90,10 @@ 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=Email thông báo từ -TicketEmailNotificationFromHelp=Được sử dụng trong trả lời thông điệp vé bằng ví dụ -TicketEmailNotificationTo=Thông báo email đến -TicketEmailNotificationToHelp=Gửi thông báo email đến địa chỉ này. +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 TicketNewEmailBodyLabel=Thông điệp văn bản được gửi sau khi tạo vé TicketNewEmailBodyHelp=Văn bản được chỉ định ở đây sẽ được chèn vào email xác nhận việc tạo vé mới từ giao diện công cộng. Thông tin về tham khảo của vé được tự động thêm vào. TicketParamPublicInterface=Thiết lập giao diện công cộng @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,8 @@ OrderByDateAsc=Sắp xếp theo ngày tăng dần OrderByDateDesc=Sắp xếp theo ngày giảm dần ShowAsConversation=Hiển thị dưới dạng danh sách cuộc hội thoại MessageListViewType=Hiển thị dưới dạng danh sách bảng +ConfirmMassTicketClosingSendEmail=Automatically send emails when closing tickets +ConfirmMassTicketClosingSendEmailQuestion=Do you want to notify thirdparties when closing these tickets ? # # Ticket card @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=Người nhận trống rỗng. Kh TicketGoIntoContactTab=Vui lòng vào tab "Danh bạ" để chọn chúng TicketMessageMailIntro=Giới thiệu 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=Giới thiệu tin nhắn khi gửi email -TicketMessageMailIntroText=Xin chào,
    Một phản hồi mới đã được gửi trên một vé mà bạn liên hệ. Đây là thông điệp:
    -TicketMessageMailIntroHelpAdmin=Văn bản này sẽ được chèn trước văn bản phản hồi cho một vé. +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=

    Trân trọng,

    -

    +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. TicketMessageHelp=Chỉ văn bản này sẽ được lưu trong danh sách tin nhắn trên thẻ vé. @@ -238,9 +252,16 @@ TicketChangeStatus=Thay đổi trạng thái TicketConfirmChangeStatus=Xác nhận thay đổi trạng thái: %s? TicketLogStatusChanged=Trạng thái đã thay đổi: %s thành %s TicketNotNotifyTiersAtCreate=Không thông báo cho công ty khi tạo +NotifyThirdpartyOnTicketClosing=Contacts to notify while closing the ticket +TicketNotifyAllTiersAtClose=All related contacts +TicketNotNotifyTiersAtClose=No related contact Unread=Chưa đọc TicketNotCreatedFromPublicInterface=Không có sẵn. Vé không được tạo từ giao diện công cộng. ErrorTicketRefRequired=Tên tham chiếu vé là bắt buộc +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,8 +289,9 @@ TicketNewEmailBody=Đây là một email tự động để xác nhận bạn đ TicketNewEmailBodyCustomer=Đây là một email tự động để xác nhận một vé mới vừa được tạo vào tài khoản của bạn. TicketNewEmailBodyInfosTicket=Thông tin để giám sát vé TicketNewEmailBodyInfosTrackId=Số theo dõi vé: %s -TicketNewEmailBodyInfosTrackUrl=Bạn có thể xem tiến trình của vé bằng cách nhấp vào liên kết ở trên. +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=Bạn có thể xem tiến trình của vé trong giao diện cụ thể bằng cách nhấp vào liên kết sau +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. @@ -291,6 +313,10 @@ NewUser=Người dùng mới NumberOfTicketsByMonth=Số lượng vé mỗi tháng NbOfTickets=Số lượng vé # 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=Vé %s được cập nhật TicketNotificationEmailBody=Đây là một tin nhắn tự động để thông báo cho bạn rằng vé %s vừa được cập nhật TicketNotificationRecipient=Người nhận thông báo diff --git a/htdocs/langs/vi_VN/users.lang b/htdocs/langs/vi_VN/users.lang index 034f10f70a4..7990ecc606c 100644 --- a/htdocs/langs/vi_VN/users.lang +++ b/htdocs/langs/vi_VN/users.lang @@ -114,7 +114,7 @@ UserLogoff=Người dùng đăng xuất UserLogged=Người dùng đăng nhập DateOfEmployment=Employment date DateEmployment=Employment -DateEmploymentstart=Ngày bắt đầu làm việc +DateEmploymentStart=Ngày bắt đầu làm việc DateEmploymentEnd=Ngày kết thúc việc làm RangeOfLoginValidity=Access validity date range CantDisableYourself=Bạn không thể vô hiệu hóa hồ sơ người dùng của bạn @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=Theo mặc định, việc xác nhận là ngư UserPersonalEmail=Email cá nhân UserPersonalMobile=Số di động 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/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index d56193eb930..23c32bf2ecd 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -62,24 +62,24 @@ MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscrip AccountancyArea=会计区 AccountancyAreaDescIntro=会计模块的使用分几步完成: AccountancyAreaDescActionOnce=以下动作通常只执行一次,或每年执行一次...... -AccountancyAreaDescActionOnceBis=下一步将在未来节省您将来的时间,在记帐时使用正确的默认会计科目(在日记帐和总帐中写入记录时) +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=对于非常大的公司,通常每月,每周或每天执行以下操作...... -AccountancyAreaDescJournalSetup=步骤%s:从菜单%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=步骤%s:为每个税率定义会计科目,使用菜单%s。 AccountancyAreaDescDefault=步骤%s:定义默认会计科目,使用菜单%s。 -AccountancyAreaDescExpenseReport=步骤%s:为每种类型的费用报告定义默认会计科目,使用菜单%s。 +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of Expense report. For this, use the menu entry %s. AccountancyAreaDescSal=步骤%s:定义支付工资的默认会计科目,使用菜单%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=步骤%s:定义捐赠的默认会计科目,使用菜单%s。 AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. AccountancyAreaDescMisc=步骤%s:为杂项交易定义强制性默认帐户和默认会计科目,使用菜单%s。 AccountancyAreaDescLoan=步骤%s:定义贷款的默认会计科目,使用菜单%s。 AccountancyAreaDescBank=步骤%s:为每个银行和财务帐户定义会计科目和日常报表代码,使用菜单%s。 -AccountancyAreaDescProd=步骤%s:在您的产品/服务上定义会计科目,使用菜单%s。 +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your Products/Services. For this, use the menu entry %s. AccountancyAreaDescBind=步骤%s:检查现有%s行与会计科目之间的绑定, 使程序通过单击完成对分类帐中的交易进行日志记录。完成缺失的绑定,使用菜单%s。 AccountancyAreaDescWriteRecords=步骤%s:将交易写入分类帐,进入菜单 %s ,然后点击按钮 %s。 @@ -112,7 +112,7 @@ MenuAccountancyClosure=Closure MenuAccountancyValidationMovements=Validate movements ProductsBinding=产品帐户 TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting +RegistrationInAccounting=Recording in accounting Binding=Binding to accounts CustomersVentilation=顾客发票绑定 SuppliersVentilation=供应商发票绑定 @@ -120,7 +120,7 @@ ExpenseReportsVentilation=费用报告绑定 CreateMvts=创建新交易 UpdateMvts=修改交易 ValidTransaction=验证交易 -WriteBookKeeping=Register transactions in accounting +WriteBookKeeping=Record transactions in accounting Bookkeeping=分类帐 BookkeepingSubAccount=Subledger AccountBalance=账目平衡 @@ -182,6 +182,7 @@ DONATION_ACCOUNTINGACCOUNT=会计科目-登记捐款 ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +UseAuxiliaryAccountOnCustomerDeposit=Use sub-accounts on customer deposit lines 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) @@ -219,12 +220,12 @@ ByPredefinedAccountGroups=按预定义的组 ByPersonalizedAccountGroups=通过个性化团体 ByYear=在今年 NotMatch=未设定 -DeleteMvt=Delete some operation lines from accounting +DeleteMvt=Delete some lines from accounting DelMonth=Month to delete DelYear=删除整年 DelJournal=日记帐删除 -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=财务账 ExpenseReportsJournal=费用报告日常报表 DescFinanceJournal=财务账包括全部银行账户付款类型 @@ -278,30 +279,31 @@ 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 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 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=自动绑定 AutomaticBindingDone=Automatic bindings done (%s) - Automatic binding not possible for some record (%s) ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计科目,因为正被使用。 -MvtNotCorrectlyBalanced=运动不正确平衡。借方= %s | Credit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=平衡 FicheVentilation=绑定卡 GeneralLedgerIsWritten=交易是在Ledger中写的 GeneralLedgerSomeRecordWasNotRecorded=某些交易无法记录。如果没有其他错误消息,这可能是因为它们已经被记录。 -NoNewRecordSaved=没有更多的记录记录 +NoNewRecordSaved=No more record to transfer ListOfProductsWithoutAccountingAccount=未绑定到任何会计科目的产品列表 ChangeBinding=更改绑定 Accounted=占总账 NotYetAccounted=Not yet transferred to accounting ShowTutorial=Show Tutorial NotReconciled=未调解 -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 @@ -329,8 +331,9 @@ ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=Disable binding & transfer in accountanc 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 (modification of the lines will not be possible) -NotifiedValidationDate=Validate the exported entries (modification or deletion of the lines will not be possible) +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 ? ExportDraftJournal=导出日常报表草稿 Modelcsv=导出型号 @@ -394,6 +397,21 @@ 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 + +## 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=一些强制性的安装步骤没有完成,请完成它们 ErrorNoAccountingCategoryForThisCountry=没有%s可用的的会计科目组(请参阅主页 - 设置 - 词典) @@ -406,6 +424,9 @@ Binded=已绑定的行 ToBind=要绑定的行 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 ## Import ImportAccountingEntries=会计分录 diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 4dcc33dae13..040748ec362 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=Print reference and period of product item in PDF -BoldLabelOnPDF=Print label of product item in Bold in PDF -Foundation=机构 +BoldRefAndPeriodOnPDF=在PDF中打印产品项目的参考编号和期限 +BoldLabelOnPDF=在PDF中使用粗体打印产品的标签 +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,29 @@ 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=内部员工用户 +DolibarrSetup=Dolibarr安装或升级 +InternalUser=内部用户 ExternalUser=外部用户 -InternalUsers=内部员工用户 +InternalUsers=内部用户 ExternalUsers=外部用户 UserInterface=用户界面 GUISetup=主题 @@ -61,41 +61,41 @@ SetupArea=设置 UploadNewTemplate=上传新模板 FormToTestFileUploadForm=文件上传功能测试 ModuleMustBeEnabled=必须启用模块/应用程序 %s -ModuleIsEnabled=启用了模块/应用程序 %s +ModuleIsEnabled=模块/应用程序 %s 已启用 IfModuleEnabled=注:“是”仅在模块 %s 启用时有效 RemoveLock=删除/重命名文件 %s (如果存在),以允许使用更新/安装工具。 -RestoreLock=恢复文件 %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 +103,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 +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 +135,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. -Box=插件 -Boxes=插件 -MaxNbOfLinesForBoxes=插件清单数量最大值 -AllWidgetsWereEnabled=全部插件已启用 +YouCanEditPHPTZ=您可以尝试添加一个 .htaccess 文件来设置不同的 PHP 时区(不是必需的),其中包含类似“SetEnv TZ Europe/Paris”的行 +HoursOnThisPageAreOnServerTZ=警告,与其他屏幕相反,此页面上的小时不是您当地的时区,而是服务器的时区。 +Box=小工具 +Boxes=小工具 +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 +181,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 +204,234 @@ 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=插件可用 -BoxesActivated=插件已启用 -ActivateOn=启用 -ActiveOn=启用 -ActivatableOn=可激活 +GoModuleSetupArea=要部署/安装新模块,请转到模块设置区域: %s 。 +DoliStoreDesc=DoliStore,为 Dolibarr ERP/CRM 提供外部模块的官方市场 +DoliPartnersDesc=提供定制开发模块或功能的公司列表。
    注意:由于 Dolibarr 是一个开源应用程序, 任何有 PHP 编程经验的人 都应该能够开发模块。 +WebSiteDesc=可以获取更多附加(非核心)模块的外部网站... +DevelopYourModuleDesc=一些开发您自己的模块的解决方案...... +URL=URL +RelativeURL=相对URL +BoxesAvailable=有可用的小工具 +BoxesActivated=小工具已启用 +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 ) +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=日期与小时 @@ -445,204 +445,204 @@ 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”。如果您真的想保留默认的“PHP”方法来发送电子邮件,只需忽略此警告,或通过在 主页 - 设置 - 其他 中将 MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP 常量设置为 1 来隐藏它。 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 服务器) @@ -650,479 +650,489 @@ Module2600Desc=允许 Dolibarr SOAP 服务器提供 API 服务 Module2610Name=API/Web 服务 (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=管理用于分配给活动的资源(打印机、汽车、房间等) +Permission11=查看客户发票 Permission12=创建/变更发票 -Permission13=Invalidate customer invoices +Permission13=作废客户发票 Permission14=确认客户发票 Permission15=通过电邮发送发票 Permission16=添加客户发票付款记录 Permission19=删除客户发票 -Permission21=读取报价单 +Permission21=查看报价单 Permission22=创建/变更报价单 Permission24=确认报价单 Permission25=发送报价单 Permission26=关闭报价单 Permission27=删除报价单 Permission28=导出报价单 -Permission31=读取产品信息 +Permission31=查看产品信息 Permission32=创建/变更产品信息 +Permission33=Read prices products 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) +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 (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=删除所有项目和项目 (包括我未参与的项目) -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=修改客户关税 +Permission300=查看条码 +Permission301=创建/修改条码 +Permission302=删除条码 +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=Read prices services 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 -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 -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=删除技能/工作/职位 +Permission4020=查看评价 +Permission4021=创建/修改您的评价 +Permission4022=验证评价 +Permission4023=删除评价 +Permission4030=查看比较菜单 +Permission4031=查看个人信息 +Permission4032=写入个人信息 +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 -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=设置未保存 +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=升级 @@ -1131,10 +1141,10 @@ AddExtensionThemeModuleOrOther=部署/安装外部模块 WebServer=网页服务器 DocumentRootServer=网页服务器的根目录 DataRootServer=数据文件的目录 -IP=IP 地址 +IP=IP Port=端口 VirtualServerName=虚拟服务器名称 -OS=操作系统 +OS=OS PhpWebLink=Web-Php链接 Server=服务器 Database=数据库 @@ -1145,286 +1155,290 @@ 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=Delay before 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=Trackable security events +LogEventDesc=启用特定安全事件的日志记录。管理可通过菜单 %s - %s 记录的日志。警告,此功能会在数据库中生成大量数据。 +AreaForAdminOnly=设置参数只能由 管理员用户 设置。 +SystemInfoDesc=系统信息指只对系统管理员可见的以只读方式显示的杂项技术信息。 +SystemAreaForAdminOnly=此区域仅供管理员用户使用。 Dolibarr 用户权限无法更改此限制。 +CompanyFundationDesc=编辑您的公司/组织的信息。完成后单击页面底部的“%s”按钮。 +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 是顺序自动递增不会重置的数字 +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 个模块 -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=返回根据Dolibarr 内部算法生成的密码:%s 个字符,包含数字和小写字符。 +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 +SuppliersPayment=供应商付款 +SupplierPaymentSetup=供应商付款设置 +InvoiceCheckPosteriorDate=在验证前检查发票日期 +InvoiceCheckPosteriorDateHelp=如果发票日期早于最后一张同类型发票的日期,将禁止验证发票。 ##### 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=询问银行账户 @@ -1439,8 +1453,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=订单中的额外说明文本 @@ -1463,12 +1477,12 @@ WatermarkOnDraftContractCards=为合同草案添加水印 (无则留空) MembersSetup=会员模块设置 MemberMainOptions=主要选项 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=访客可以从可用的付款方式中选择 +MEMBER_REMINDER_EMAIL=通过电子邮件
    启用订阅过期的自动提醒 。注意:模块 %s 必须启用并正确设置才能发送提醒。 +MembersDocModules=从成员记录生成的文档的文档模板 ##### LDAP setup ##### LDAPSetup=LDAP 设置 LDAPGlobalParameters=全局参数 @@ -1490,10 +1504,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表示活动目录) @@ -1537,70 +1551,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 属性名称。 @@ -1611,47 +1625,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=在订单,建议或发票行版本中定义数量的度量单位 @@ -1666,9 +1680,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=捐赠模块设置 @@ -1692,7 +1706,7 @@ GenbarcodeLocation=条形码生成命令行工具(内部引擎用于某些条 BarcodeInternalEngine=内部引擎 BarCodeNumberManager=自动定义条形码管理器 ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=设置直接借记付款模块 ##### ExternalRSS ##### ExternalRSSSetup=外部 RSS 的导入设置 NewRSS=新增 RSS 源 @@ -1700,22 +1714,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=收货回执编号模块 @@ -1725,28 +1739,28 @@ 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=所见即所得方式创建/编辑元素的描述字段(产品/服务除外) +FCKeditorForProduct=所见即所得方式创建/编辑产品/服务的描述字段 +FCKeditorForProductDetails=所见即所得创建/编辑所有实体(提案、订单、发票等)的产品详细信息行。 警告:严重不建议在这种情况下使用此选项,因为它会在构建 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=模块名称 (如果菜单项来自模块) @@ -1758,7 +1772,7 @@ DetailRight=菜单显示为变灰禁用的条件 DetailLangs=标签翻译使用的 .lang 文件名 DetailUser=内部 / 外部 / 全部 Target=目标 -DetailTarget=Target for links (_blank top opens a new window) +DetailTarget=链接的目标(使用_blank 打开新窗口/标签) DetailLevel=级 (-1:顶部菜单,0:头菜单,> 0菜单和子菜单) ModifMenu=菜单变化 DeleteMenu=删除选单项 @@ -1769,11 +1783,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=发出发票时 @@ -1786,56 +1800,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=巴枪中定义的“Enter”键码(示例: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=仅公开已启用模块中的元素 @@ -1843,25 +1857,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=包含 Maxmind IP到国家/地区转换文件的路径。
    示例:
    /usr/local/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoIP.dat
    /usr/share/GeoIP/GeoLite2-Country.mmdb NoteOnPathLocation=注意此数据文件所处目录您的PHP必需能读取(检查您 PHP 的 open_basedir 设置和文件系统权限)。 YouCanDownloadFreeDatFileTo=您可以下载 Maxmind网站的GeoIP全球IP地址数据库 免费演示版 的国家地理位置数据文件,地址是 %s。 YouCanDownloadAdvancedDatFileTo=您也可以下载更加完整更新更快的 Maxmind GeoIP 国家文件版本,地址是 %s。 @@ -1872,7 +1886,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=会计期间 @@ -1893,71 +1907,72 @@ 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=因此,此处描述的升级过程是只有特权用户才能执行的手动过程。 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) -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 dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +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=干预 @@ -1966,30 +1981,31 @@ MailToSendSupplierOrder=订单 MailToSendSupplierInvoice=供应商发票 MailToSendContract=合同 MailToSendReception=Receptions +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=添加触发器 @@ -2001,222 +2017,293 @@ 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 +UserHasNoPermissions=此用户没有定义权限 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=公司的参考货币(进入公司设置改变这个) -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=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=如果此组是其他组的计算,则将此值设置为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 data about European companies/citizens, 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 -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? -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, with no 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=不允许重复 +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=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=每次收集的最大电子邮件数量 +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=Enable feature to check if a resource is in use in an event +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 +OnMobileOnly=仅在小屏幕(智能手机)上 +DisableProspectCustomerType=禁用“潜在+ 客户”第三方类型(因此第三方必须是“潜在”或“客户”,但不能同时是两者) +MAIN_OPTIMIZEFORTEXTBROWSER=盲人简化界面 +MAIN_OPTIMIZEFORTEXTBROWSERDesc=如果您是盲人,或者如果您从 Lynx 或 Links 等文本浏览器使用应用程序,请启用此选项。 +MAIN_OPTIMIZEFORCOLORBLIND=为色盲者更改界面颜色 +MAIN_OPTIMIZEFORCOLORBLINDDesc=如果您是色盲者,请启用此选项,在某些情况下界面会更改颜色设置以增加对比度。 +Protanopia=红眼病 +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 access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access. +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=第三方别名 - 第三方名 +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=出于 shell 目的(如计划的备份作业或运行杀毒程序),您必须保留 PHP 函数 +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 sale tax -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale 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 -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 +NotRecommended=不建议 +ARestrictedPath=一些受限路径 +CheckForModuleUpdate=检查外部模块更新 +CheckForModuleUpdateHelp=此操作将连接到外部模块的编写者以检查是否有新版本可用。 +ModuleUpdateAvailable=有可用的更新 +NoExternalModuleWithUpdate=未找到外部模块的更新 +SwaggerDescriptionFile=Swagger API 描述文件(例如与 redoc 一起使用) +YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=您启用了已弃用的 WS API。您应该改用 REST API。 +RandomlySelectedIfSeveral=如果有多张图片则随机选择 +SalesRepresentativeInfo=For Proposals, Orders, Invoices. +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=使用低内存模式执行转储的 exec(压缩是通过管道完成的,而不是进入 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二维码 +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=Max number of images allowed in a HTML field submitted in a form 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/commercial.lang b/htdocs/langs/zh_CN/commercial.lang index 3a82350faba..146eef98814 100644 --- a/htdocs/langs/zh_CN/commercial.lang +++ b/htdocs/langs/zh_CN/commercial.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - commercial -Commercial=Commerce -CommercialArea=Commerce area +Commercial=商务 +CommercialArea=商务部分 Customer=客户 Customers=客户 Prospect=准客户 @@ -64,10 +64,11 @@ 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=起草商业报价 diff --git a/htdocs/langs/zh_CN/companies.lang b/htdocs/langs/zh_CN/companies.lang index 1e7067fa16b..e2d02e8769d 100644 --- a/htdocs/langs/zh_CN/companies.lang +++ b/htdocs/langs/zh_CN/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=准客户区 IdThirdParty=合伙人ID号 IdCompany=公司ID IdContact=联络人ID +ThirdPartyAddress=Third-party address ThirdPartyContacts=Third-party contacts ThirdPartyContact=Third-party contact/address Company=公司 @@ -51,19 +52,22 @@ CivilityCode=文明守则 RegisteredOffice=注册给办公室 Lastname=姓氏 Firstname=名字 +RefEmployee=Employee reference +NationalRegistrationNumber=National registration number PostOrFunction=工作岗位 UserTitle=称谓 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 @@ -102,6 +106,7 @@ WrongSupplierCode=供应商代码无效 CustomerCodeModel=客户编号模板 SupplierCodeModel=供应商代码模型 Gencod=条码 +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=Prof. id 1 ProfId2Short=Prof. id 2 @@ -159,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=其他 ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=List of Third Parties ShowCompany=Third Party ShowContact=Contact-Address ContactsAllShort=全部 (不筛选) -ContactType=联系人类型 +ContactType=Contact role ContactForOrders=订单的联系人 ContactForOrdersOrShipments=订单或运输联系人 ContactForProposals=报价的联系人 diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang index 1783be09f3a..53188bca81d 100644 --- a/htdocs/langs/zh_CN/errors.lang +++ b/htdocs/langs/zh_CN/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_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/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 336e4f47558..61c026d5c75 100644 --- a/htdocs/langs/zh_CN/install.lang +++ b/htdocs/langs/zh_CN/install.lang @@ -8,6 +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 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多线程支持。 @@ -16,13 +17,6 @@ PHPMemoryOK=您的PHP最大session会话内存设置为%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=你的PHP服务器不支持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=目录 %s 不存在。 ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -30,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/main.lang b/htdocs/langs/zh_CN/main.lang index 95ab4e7a0b0..7a4386f62f8 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -244,6 +244,7 @@ Designation=描述 DescriptionOfLine=说明线 DateOfLine=Date of line DurationOfLine=Duration of line +ParentLine=Parent line ID Model=文档模板 DefaultModel=默认文档模板 Action=事件 @@ -344,7 +345,7 @@ KiloBytes=KB MegaBytes=MB GigaBytes=GB TeraBytes=TB -UserAuthor=Ceated by +UserAuthor=制作: UserModif=Updated by b=b. Kb=Kb @@ -517,6 +518,7 @@ or=或 Other=其他 Others=其他 OtherInformations=Other information +Workflow=工作流程 Quantity=数量 Qty=数量 ChangedBy=改变者: @@ -619,6 +621,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 @@ -709,6 +712,7 @@ FeatureDisabled=功能禁用 MoveBox=拖动插件 Offered=提供 NotEnoughPermissions=您没有这个动作的权限 +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=会话名称 Method=方法 Receive=收到 @@ -798,6 +802,7 @@ URLPhoto=照片/徽标的URL SetLinkToAnotherThirdParty=关联其他合伙人 LinkTo=链接到 LinkToProposal=链接到报价 +LinkToExpedition= Link to expedition LinkToOrder=链接到订单 LinkToInvoice=链接到发票 LinkToTemplateInvoice=Link to template invoice @@ -1164,3 +1169,14 @@ 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/zh_CN/members.lang b/htdocs/langs/zh_CN/members.lang index a74fc0b8b66..9100bcd5951 100644 --- a/htdocs/langs/zh_CN/members.lang +++ b/htdocs/langs/zh_CN/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=另一名成员 (名称: %s ErrorUserPermissionAllowsToLinksToItselfOnly=出于安全原因,您必须被授予权限编辑所有用户能够连接到用户的成员是不是你的。 SetLinkToUser=用户链接到Dolibarr SetLinkToThirdParty=链接到Dolibarr合作方 -MembersCards=Business cards for members +MembersCards=Generation of cards for members MembersList=会员列表 MembersListToValid=准会员 (待验证)列表 MembersListValid=有效人员名录 @@ -35,7 +35,8 @@ DateEndSubscription=End date of membership EndSubscription=End of membership SubscriptionId=Contribution ID WithoutSubscription=Without contribution -MemberId=会员ID +MemberId=Member Id +MemberRef=Member Ref NewMember=新会员 MemberType=会员类型 MemberTypeId=会员类型ID @@ -135,7 +136,7 @@ CardContent=内容您的会员卡 # Text of email templates ThisIsContentOfYourMembershipRequestWasReceived=我们希望通知您收到了您的会员资格请求。

    ThisIsContentOfYourMembershipWasValidated=我们希望通过以下信息通知您,您的会员资格已经过验证:

    -ThisIsContentOfYourSubscriptionWasRecorded=我们希望通知您,您的新订阅已被记录。

    +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 @@ -159,11 +160,11 @@ HTPasswordExport=生成htpassword密文 NoThirdPartyAssociatedToMember=No third party associated with this member MembersAndSubscriptions=Members and Contributions MoreActions=补充行动记录 -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=在银行帐户上创建直接输入 MoreActionBankViaInvoice=创建发票和银行帐户付款 MoreActionInvoiceOnly=创建一个没有付款发票 -LinkToGeneratedPages=生成访问卡 +LinkToGeneratedPages=Generation of business cards or address sheets LinkToGeneratedPagesDesc=这个界面可让你生成所有的成员或单一会员的名片的PDF文件。 DocForAllMembersCards=为所有成员生成名片 DocForOneMemberCards=为特定成员生成名片 @@ -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/zh_CN/modulebuilder.lang b/htdocs/langs/zh_CN/modulebuilder.lang index a6df2f06431..c159cdfafd9 100644 --- a/htdocs/langs/zh_CN/modulebuilder.lang +++ b/htdocs/langs/zh_CN/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=输入要创建的模块/应用的名称,不含空格。使用大写字母分隔单词(例如:MyModule,EcommerceForShop,SyncWithMySystem ......) -EnterNameOfObjectDesc=输入要创建的对象的名称,不包含空格。使用大写字母分隔单词(例如:MyObject,Student,Teacher ...)。将会生成包含CRUD方法的类文件,同时生成API文件,同时生成"列表/添加/编辑/删除"对象的页面和SQL文件。 +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=找到生成/可编辑的模块: %s ModuleBuilderDesc4=当模块目录的根目录中存在 %s 文件时,模块被检测为“可编辑” NewModule=新模块 NewObjectInModulebuilder=New object +NewDictionary=New dictionary ModuleKey=模块名 ObjectKey=对象名 +DicKey=Dictionary key ModuleInitialized=模块已初始化 FilesForObjectInitialized=初始化新对象'%s'的文件 FilesForObjectUpdated=对象'%s'的文件已更新(.sql文件和.class.php文件) @@ -52,7 +55,7 @@ LanguageFile=语言文件 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=不是NULL -NotNullDesc=1 =将数据库设置为NOT NULL。 -1 =如果为空(''或0),则允许空值和强制值为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=用于'搜索所有' DatabaseIndex=数据库索引 FileAlreadyExists=文件%s已存在 @@ -94,7 +97,7 @@ LanguageDefDesc=在此文件中输入每个语言文件的所有密钥和翻译 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=在 module_parts ['hooks'] 属性中定义,在模块描述符中,您想要管理的钩子的上下文(上下文列表可以通过搜索' initHooks找到('在核心代码中。)
    编辑钩子文件以添加钩子函数的代码(可通过在核心代码中搜索' executeHooks '找到可钩子函数)。 @@ -110,7 +113,7 @@ DropTableIfEmpty=(Destroy table if empty) TableDoesNotExists=表%s不存在 TableDropped=表%s已删除 InitStructureFromExistingTable=构建现有表的结构数组字符串 -UseAboutPage=Disable the about page +UseAboutPage=Do not generate the About page UseDocFolder=Disable the documentation folder UseSpecificReadme=使用特定的自述文件 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,15 @@ 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=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. 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/other.lang b/htdocs/langs/zh_CN/other.lang index ade0db35aa6..9850b9ff10e 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...自定义配置
    (手动选择模块) DemoFundation=基础会员管理 DemoFundation2=资金密集型企业 DemoCompanyServiceOnly=外贸公司 -DemoCompanyShopWithCashDesk=管理与现金办公桌店 +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=Shop selling products with Point Of Sales DemoCompanyManufacturing=Company manufacturing products DemoCompanyAll=公司有多项活动(所有主要模块) @@ -303,3 +303,4 @@ SelectTheTypeOfObjectToAnalyze=Select an object to view its statistics... ConfirmBtnCommonContent = Are you sure you want to "%s" ? ConfirmBtnCommonTitle = Confirm your action CloseDialog = 关闭 +Autofill = Autofill diff --git a/htdocs/langs/zh_CN/projects.lang b/htdocs/langs/zh_CN/projects.lang index 03644f2a7f9..1707b18cf65 100644 --- a/htdocs/langs/zh_CN/projects.lang +++ b/htdocs/langs/zh_CN/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=项目标签 ProjectsArea=项目区 ProjectStatus=项目状态 SharedProject=全体同仁 -PrivateProject=项目联系人 +PrivateProject=Assigned contacts ProjectsImContactFor=Projects for which I am explicitly a contact AllAllowedProjects=我能阅读的所有项目(我的+公共) AllProjects=所有项目 @@ -190,6 +190,7 @@ 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 InputPerDay=输入天数 InputPerWeek=输入周数 @@ -287,3 +288,9 @@ 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=结束日期不能早过开始日期啊,时光不能倒流呀魂淡 +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 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/ticket.lang b/htdocs/langs/zh_CN/ticket.lang index 43c1f54225f..eacf5e31b7b 100644 --- a/htdocs/langs/zh_CN/ticket.lang +++ b/htdocs/langs/zh_CN/ticket.lang @@ -90,10 +90,10 @@ TicketPublicAccess=以下网址提供不需要识别的公共接口 TicketSetupDictionaries=The type of ticket, severity and analytic codes are configurable from dictionaries TicketParamModule=模块变量设置 TicketParamMail=电子邮件设置 -TicketEmailNotificationFrom=来自的通知电子邮件 -TicketEmailNotificationFromHelp=用于票据消息通过示例回答 -TicketEmailNotificationTo=通知电子邮件至 -TicketEmailNotificationToHelp=向此地址发送电子邮件通知。 +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 TicketNewEmailBodyLabel=Text message sent after creating a ticket TicketNewEmailBodyHelp=此处指定的文本将插入到确认从公共界面创建新票证的电子邮件中。有关票务咨询的信息会自动添加。 TicketParamPublicInterface=公共界面设置 @@ -136,6 +136,18 @@ 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. + # # Index & list page # @@ -151,6 +163,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 @@ -205,12 +219,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=收件人是空的。没有电子 TicketGoIntoContactTab=请进入“联系人”标签以选择它们 TicketMessageMailIntro=介绍 TicketMessageMailIntroHelp=此文本仅在电子邮件的开头添加,不会保存。 -TicketMessageMailIntroLabelAdmin=发送电子邮件时的消息简介 -TicketMessageMailIntroText=Hello,
    A new response was sent on a ticket that you contact. Here is the message:
    -TicketMessageMailIntroHelpAdmin=此文本将在对票证的响应文本之前插入。 +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=

    Sincerely,

    --

    +TicketMessageMailSignatureText=Message sent by %s via Dolibarr TicketMessageMailSignatureLabelAdmin=回复电子邮件的签名 TicketMessageMailSignatureHelpAdmin=该文本将在响应消息后插入。 TicketMessageHelp=只有此文本将保存在故障单卡的消息列表中。 @@ -238,9 +252,16 @@ TicketChangeStatus=改变状态 TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=不在创建时通知公司 +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,8 +289,9 @@ TicketNewEmailBody=这是一封自动电子邮件,用于确认您已注册新 TicketNewEmailBodyCustomer=这是一封自动发送的电子邮件,用于确认刚刚在您的帐户中创建了新的故障单。 TicketNewEmailBodyInfosTicket=用于监控故障单的信息 TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s -TicketNewEmailBodyInfosTrackUrl=您可以通过单击上面的链接查看故障单的进度。 +TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the following link TicketNewEmailBodyInfosTrackUrlCustomer=您可以通过单击以下链接查看特定界面中故障单的进度 +TicketCloseEmailBodyInfosTrackUrlCustomer=You can consult the history of this ticket by clicking the following link TicketEmailPleaseDoNotReplyToThisEmail=请不要直接回复此电子邮件!使用该链接回复界面。 TicketPublicInfoCreateTicket=此表单允许您在我们的管理系统中记录支持服务单。 TicketPublicPleaseBeAccuratelyDescribe=请准确描述问题。提供尽可能多的信息,以便我们正确识别您的请求。 @@ -291,6 +313,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=票据%s已更新 TicketNotificationEmailBody=这是一条自动消息,通知您刚刚更新了机票%s TicketNotificationRecipient=通知收件人 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_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index beb44dc103c..50bc8d5b3ef 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=依會計子分類帳檢視 @@ -62,10 +63,10 @@ MainAccountForSubscriptionPaymentNotDefined=未在"設定"中定義訂閱付款 AccountancyArea=會計區域 AccountancyAreaDescIntro=會計模組的使用要數個步驟才能完成: AccountancyAreaDescActionOnce=接下來的動作通常只執行一次,或一年一次… -AccountancyAreaDescActionOnceBis=下一步驟可在未來節省您的時間當製作日誌時(寫入記錄至日記帳及總分類帳)建議您正確的預設會計帳戶 +AccountancyAreaDescActionOnceBis=您應該完成當在會計帳戶中傳送資料時自動建議預設正確會計帳戶的下一個步驟以在未來節省您的時間 AccountancyAreaDescActionFreq=接下來的動作在大型公司一般是每個月、每週或每天執行… -AccountancyAreaDescJournalSetup=步驟%s: 從選單%s您的日記帳清單中建立或檢查內容  +AccountancyAreaDescJournalSetup=步驟 %s:從選單 %s 檢查日記帳清單的內容 AccountancyAreaDescChartModel=步驟%s: 確認會計項目表模組是否存在,或者從%s選單建立新的。 AccountancyAreaDescChart=步驟%s: 從選單中建立或檢查會計項目表的內容%s。 @@ -73,7 +74,7 @@ AccountancyAreaDescVat=步驟%s:為每個營業稅稅率定義會計科目。 AccountancyAreaDescDefault=步驟%s:定義預設會計帳戶。為此,請使用選單條目%s。 AccountancyAreaDescExpenseReport=步驟%s:為每種費用報表定義預設會計科目。為此,請使用選單條目%s。 AccountancyAreaDescSal=步驟%s:定義用於支付工資的預設會計科目。為此,請使用選單條目%s。 -AccountancyAreaDescContrib=步驟%s:定義特殊費用(雜項稅)的預設會計科目。為此,請使用選單條目%s。 +AccountancyAreaDescContrib=步驟%s:定義稅費(特別費用)的預設會計科目。為此,請使用選單條目%s。 AccountancyAreaDescDonation=步驟%s:定義捐贈的預設會計帳戶。為此,請使用選單條目%s。 AccountancyAreaDescSubscription=步驟%s:定義會員訂閱的預設記帳帳戶。為此,請使用選單條目%s。 AccountancyAreaDescMisc=步驟%s:為其他交易定義強制性預設帳戶和預設記帳帳戶。為此,請使用選單條目%s。 @@ -107,12 +108,12 @@ MenuTaxAccounts=稅捐會計項目 MenuExpenseReportAccounts=費用報表會計項目 MenuLoanAccounts=借款會計項目 MenuProductsAccounts=產品會計項目 -MenuClosureAccounts=關閉帳戶 -MenuAccountancyClosure=關閉 +MenuClosureAccounts=結束帳戶 +MenuAccountancyClosure=結案 MenuAccountancyValidationMovements=驗證動作 ProductsBinding=產品會計項目 TransferInAccounting=會計轉移 -RegistrationInAccounting=會計註冊 +RegistrationInAccounting=會計記錄 Binding=關聯到各式會計項目 CustomersVentilation=客戶發票的關聯 SuppliersVentilation=供應商發票綁定 @@ -120,7 +121,7 @@ ExpenseReportsVentilation=費用報表的關聯 CreateMvts=建立新的交易 UpdateMvts=交易的修改 ValidTransaction=驗證交易 -WriteBookKeeping=在總帳中記錄交易 +WriteBookKeeping=在會計中記錄交易 Bookkeeping=總帳 BookkeepingSubAccount=子分類帳 AccountBalance=帳戶餘額 @@ -160,8 +161,8 @@ ACCOUNTING_MANAGE_ZERO=允許在會計帳戶末尾管理不同數量的零。一 BANK_DISABLE_DIRECT_INPUT=停用銀行帳戶中直接記錄交易 ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=在日記帳上啟用草稿匯出 ACCOUNTANCY_COMBO_FOR_AUX=為子公司帳戶啟用組合列表(如果您有很多合作方,可能會很慢,損失搜尋部份數值的能力) -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_DATE_START_BINDING=定義開始綁定和轉移會計的日期。小於此日期,交易將不會轉入會計。 +ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, what is the period selected by default ACCOUNTING_SELL_JOURNAL=銷售日記帳 ACCOUNTING_PURCHASE_JOURNAL=採購日記帳 @@ -172,7 +173,7 @@ ACCOUNTING_HAS_NEW_JOURNAL=有新的日記帳 ACCOUNTING_RESULT_PROFIT=結果會計科目(利潤) ACCOUNTING_RESULT_LOSS=結果會計科目(虧損) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=關閉日記帳 +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=結束日記帳 ACCOUNTING_ACCOUNT_TRANSFER_CASH=過渡性銀行轉帳的會計帳戶 TransitionalAccount=過渡銀行轉帳帳戶 @@ -181,7 +182,10 @@ ACCOUNTING_ACCOUNT_SUSPENSE=等待的會計科目 DONATION_ACCOUNTINGACCOUNT=註冊捐款的會計科目 ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=用於註冊訂閱的會計科目 -ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT=Accounting account by default to register customer deposit +ACCOUNTING_ACCOUNT_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=Accounting account by default to register supplier deposit +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中所購買產品的會計帳戶(如果未在產品單中定義則使用) @@ -203,7 +207,7 @@ Docref=參考 LabelAccount=標籤帳戶 LabelOperation=標籤操作 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 +AccountingDirectionHelp=對於客戶的會計帳戶,使用貸方記錄您收到的付款
    對於供應商的會計帳戶,使用借方記錄您的付款 LetteringCode=字元編碼 Lettering=字元 Codejournal=日記帳 @@ -223,12 +227,12 @@ DeleteMvt=從會計中刪除一些操作行 DelMonth=刪除月份 DelYear=刪除年度 DelJournal=刪除日記帳 -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=這將刪除會計年度/月和/或特定日記帳的所有操作行(至少需要一個標準)。您必須重新使用功能“%s”才能將已刪除的記錄恢復到分類帳中。 +ConfirmDeleteMvtPartial=這將從會計中刪除交易(與同一交易相關的所有操作行將被刪除) FinanceJournal=財務日記帳 ExpenseReportsJournal=費用報表日記帳 DescFinanceJournal=財務日記帳包含由銀行帳戶支出的全部付款資料。 -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Journals and Ledger. +DescJournalOnlyBindedVisible=這是與會計帳戶綁定的記錄顯示,可以記錄到日記帳和分類帳中。 VATAccountNotDefined=營業稅帳戶未定義 ThirdpartyAccountNotDefined=未定義的合作方科目 ProductAccountNotDefined=產品會計科目未定義 @@ -237,7 +241,7 @@ BankAccountNotDefined=銀行帳戶沒有定義 CustomerInvoicePayment=客戶發票的付款 ThirdPartyAccount=合作方帳戶 NewAccountingMvt=新交易 -NumMvts=交易筆數 +NumMvts=交易編號 ListeMvts=移動清單 ErrorDebitCredit=借方金額不等貸方金額 AddCompteFromBK=新增各式會計科目到大類 @@ -246,9 +250,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=初期餘額 @@ -277,31 +281,32 @@ DescVentilExpenseReport=在此查閱費用報表行數是否關聯到費用會 DescVentilExpenseReportMore=如果您在費用報表類型上設定會計帳戶,則應用程序將能夠在費用報表和會計科目表的會計帳戶之間進行所有綁定,只需點擊按鈕“ %s”即可 。如果未在費用字典中設定帳戶,或者您仍有某些行未綁定到任何帳戶,則必須從選單“ %s ”進行手動綁定。 DescVentilDoneExpenseReport=在此查閱費用報表的清單及其費用會計項目。 -Closure=年度關閉 -DescClosure=請在此處查詢依照月份的未經驗證活動數和已經開放的會計年度 -OverviewOfMovementsNotValidated=第1步/未驗證移動總覽。 (需要關閉一個會計年度) -AllMovementsWereRecordedAsValidated=所有動作均記錄為已驗證 -NotAllMovementsCouldBeRecordedAsValidated=並非所有動作都可以記錄為已驗證 -ValidateMovements=驗證動作 +Closure=年度結帳 +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=動作未正確平衡。借方= %s |貸方= %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s & Credit = %s Balancing=平衡中 FicheVentilation=關聯卡片 GeneralLedgerIsWritten=交易已紀錄到總帳中 GeneralLedgerSomeRecordWasNotRecorded=某些交易未記錄。若沒有其他錯誤,這可能是因為已被記錄。 -NoNewRecordSaved=沒有交易可記錄 +NoNewRecordSaved=沒有更多記錄要轉移 ListOfProductsWithoutAccountingAccount=清單中的產品沒有指定任何會計項目 ChangeBinding=修改關聯性 Accounted=計入總帳 NotYetAccounted=尚未轉入會計 ShowTutorial=顯示教程 NotReconciled=未對帳 -WarningRecordWithoutSubledgerAreExcluded=警告,所有未定義子分類帳帳戶的操作都將被過濾並從該檢視中排除 +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=綁定選項 @@ -324,14 +329,15 @@ ErrorAccountingJournalIsAlreadyUse=此日記帳已使用 AccountingAccountForSalesTaxAreDefinedInto=注意:銷項稅額的會計項目定義到選單 %s - %s NumberOfAccountancyEntries=條目數 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_DISABLE_BINDING_ON_SALES=停用銷售中的會計綁定和轉移(會計中不考慮客戶發票) +ACCOUNTING_DISABLE_BINDING_ON_PURCHASES=停用採購中的會計綁定和轉移(會計中不考慮供應商發票) +ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS=停用費用報表中的會計綁定和轉移(會計中不考慮費用報表) ## 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 ? +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=驗證與鎖定的日期 +ConfirmExportFile=確定要產生會計匯出檔案 ? ExportDraftJournal=匯出日記帳草稿 Modelcsv=匯出模式 Selectmodelcsv=選擇匯出模型 @@ -343,15 +349,15 @@ Modelcsv_ciel=匯出Sage50, Ciel Compta或Compta Evo.(XIMPORT格式) Modelcsv_quadratus=匯出為Quadratus QuadraCompta Modelcsv_ebp=匯出為EBP Modelcsv_cogilog=匯出為Cogilog -Modelcsv_agiris=Export for Agiris Isacompta +Modelcsv_agiris=Agiris Isacompta匯出 Modelcsv_LDCompta=LD Compta(v9)(測試)匯出 Modelcsv_LDCompta10=LD Compta用之匯出(v10及更高版本) Modelcsv_openconcerto=匯出為OpenConcerto(測試) Modelcsv_configurable=匯出為可設置CSV Modelcsv_FEC=匯出為FEC -Modelcsv_FEC2=Export FEC (With dates generation writing / document reversed) +Modelcsv_FEC2=匯出FEC(日期產生寫入/文件已反轉) Modelcsv_Sage50_Swiss=匯出為Sage 50 Switzerland -Modelcsv_winfic=Export for Winfic - eWinfic - WinSis Compta +Modelcsv_winfic=Winfic匯出-eWinfic-WinSis Compta Modelcsv_Gestinumv3=匯出為Gestinum (v3) Modelcsv_Gestinumv5=匯出為Gestinum (v5) Modelcsv_charlemagne=匯出為Aplim Charlemagne @@ -361,7 +367,7 @@ ChartofaccountsId=會計項目表ID InitAccountancy=初始會計 InitAccountancyDesc=此頁可在沒有定義產品及服務的銷售及採購會計項目下使用產品及服務的會計項目。 DefaultBindingDesc=當沒有設定特定會計項目時,此頁面可設定預設會計項目連結到薪資、捐贈、稅捐及營業稅的交易紀錄。 -DefaultClosureDesc=該頁面可用於設置用於會計結帳的參數。 +DefaultClosureDesc=該頁面可用於設置會計結帳的參數。 Options=選項 OptionModeProductSell=銷售模式 OptionModeProductSellIntra=在EEC中的銷售模式已匯出 @@ -394,6 +400,21 @@ Range=會計項目範圍 Calculated=已計算 Formula=公式 +## Reconcile +Unlettering=不協調 +AccountancyNoLetteringModified=未修改協調 +AccountancyOneLetteringModifiedSuccessfully=一個協調成功地修改 +AccountancyLetteringModifiedSuccessfully=%s 協調已成功地修改 +AccountancyNoUnletteringModified=無不協調被修改 +AccountancyOneUnletteringModifiedSuccessfully=成功地修改了一個不協調 +AccountancyUnletteringModifiedSuccessfully=%s 不協調已成功地修改 + +## Confirm box +ConfirmMassUnlettering=批次不協調確認 +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 SomeMandatoryStepsOfSetupWereNotDone=某些必要的設定步驟沒有完成,請完成它們 ErrorNoAccountingCategoryForThisCountry=此國家 %s 沒有會計項目大類可用(查閱首頁-設定-各式分類) @@ -406,6 +427,10 @@ Binded=關聯行數 ToBind=關聯行 UseMenuToSetBindindManualy=尚未綁定的行,請使用選單%s手動進行綁定 SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices=抱歉此模組不相容於情況發票的實驗功能 +AccountancyErrorMismatchLetterCode=協調代碼不匹配 +AccountancyErrorMismatchBalanceAmount=餘額(%s)不等於0 +AccountancyErrorLetteringBookkeeping=交易發生錯誤:%s +ErrorAccountNumberAlreadyExists=The accounting number %s already exists ## Import ImportAccountingEntries=會計條目 diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index 5cf0f3303c9..752f6604a16 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/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=發佈者 @@ -76,7 +76,7 @@ DictionarySetup=分類設定 Dictionary=分類 ErrorReservedTypeSystemSystemAuto='system' 及 'systemauto' 為保留值。你可使用 'user' 值加到您自己的紀錄中。 ErrorCodeCantContainZero=代碼不能包含值0 -DisableJavascript=禁用JavaScript和Ajax功能 +DisableJavascript=停用JavaScript和Ajax功能 DisableJavascriptNote=注意:用於測試或除錯目的。為了優化盲人瀏覽器或文字瀏覽器,您可能更喜歡使用用戶個人資料上的設定 UseSearchToSelectCompanyTooltip=另外您若有大量合作方 (> 100,000), 您可在 "設定 -> 其他" 設定常數 COMPANY_DONOTSEARCH_ANYWHERE 為 1 增加速度。搜尋則會只限制在字串的開頭。 UseSearchToSelectContactTooltip=另外您若有大量合作方 (> 100,000), 您可在 " 設定 -> 其他" 中設定常數 CONTACT_DONOTSEARCH_ANYWHERE 為 1 以增加速度。搜尋則會只限制在字串的開頭。 @@ -109,7 +109,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= 在命令列中更多的參數 @@ -187,7 +187,7 @@ ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=備份檔案名稱: Compression=壓縮 -CommandsToDisableForeignKeysForImport=在匯入時禁用外部金鑰的命令 +CommandsToDisableForeignKeysForImport=在匯入時停用外部金鑰的命令 CommandsToDisableForeignKeysForImportWarning=如果您希望以後能夠恢復sql dump則必須提供 ExportCompatibility=已產生的匯出檔案相容性 ExportUseMySQLQuickParameter=使用--quick參數 @@ -207,11 +207,11 @@ DelayedInsert=已延遲插入 EncodeBinariesInHexa=用十六進制編碼二進制資料 IgnoreDuplicateRecords=忽略重複資料的錯誤訊息 (INSERT IGNORE) AutoDetectLang=自動檢測(瀏覽器語言) -FeatureDisabledInDemo=DEMO模式下已禁用功能 +FeatureDisabledInDemo=DEMO模式下已停用功能 FeatureAvailableOnlyOnStable=在官方穩定版本中可用的功能 -BoxesDesc=小工具是顯示一些訊息的元件,您可以增加這些訊息來個性化某些頁面。通過選擇目標頁面並點擊“啟用”,或點擊垃圾桶將其禁用,可以選擇顯示小工具或是不顯示小工具。 +BoxesDesc=小工具是顯示一些訊息的元件,您可以增加這些訊息來個性化某些頁面。通過選擇目標頁面並點擊“啟用”,或點擊垃圾桶將其停用,可以選擇顯示小工具或是不顯示小工具。 OnlyActiveElementsAreShown=僅顯示已啟用模組中的元件。 -ModulesDesc=模組/應用程式决定軟體中可用的功能。某些模組需要在啟用模組後授予用戶權限。點擊開啟/關閉按鈕%s以啟用/禁用模組/應用程式。 +ModulesDesc=模組/應用程式决定軟體中可用的功能。某些模組需要在啟用模組後授予用戶權限。點擊開啟/關閉按鈕%s以啟用/停用模組/應用程式。 ModulesDesc2=按下滑鼠按鍵%s設定模組/應用程式 ModulesMarketPlaceDesc=您可在外部網站中找到更多可下載的模組... ModulesDeployDesc=如果檔案系統權限允許,則可以使用此工具部署外部模組。然後,該模組將在分頁%s上顯示。 @@ -247,7 +247,7 @@ Required=必須 UsedOnlyWithTypeOption=只供行程選項使用 Security=安全 Passwords=密碼 -DoNotStoreClearPassword=加密儲存在資料庫中的密碼(非純文本格式)。強烈建議啟動此選項。 +DoNotStoreClearPassword=加密儲存在資料庫中的密碼(非純文字格式)。強烈建議啟動此選項。 MainDbPasswordFileConfEncrypted=加密儲存在conf.php中的資料庫密碼。強烈建議啟動此選項。 InstrucToEncodePass=為使已編碼好的密碼放到conf.php檔案中,用
    $dolibarr_main_db_pass="crypted:%s";
    代替
    $dolibarr_main_db_pass="..."; InstrucToClearPass=要將密碼解碼(清除)到conf.php檔案中,請用
    $dolibarr_main_db_pass="%s";替換
    $ dolibarr_main_db_pass =“ crypted:...”;
    @@ -296,7 +296,7 @@ MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS主機(類Unix系統 MAIN_MAIL_EMAIL_FROM=自動寄送至"自動寄送電子郵件"(php.ini中的預設值: %s ) MAIN_MAIL_ERRORS_TO=用於錯誤返回的電子郵件(寄送的電子郵件中的“錯誤至”字段) MAIN_MAIL_AUTOCOPY_TO= 複製(密件)所有已寄送的電子郵件至 -MAIN_DISABLE_ALL_MAILS=禁用所有電子郵件寄送(出於測試目的或demo) +MAIN_DISABLE_ALL_MAILS=停用所有電子郵件寄送(出於測試目的或demo) MAIN_MAIL_FORCE_SENDTO=傳送全部電子郵件到(此為測試用,不是真正的收件人) MAIN_MAIL_ENABLED_USER_DEST_SELECT=在編寫新電子郵件時,將員工的電子郵件(如果已建立)建議到預定收件人清單中 MAIN_MAIL_SENDMODE=郵件寄送方式 @@ -343,7 +343,7 @@ StepNb=步驟 %s FindPackageFromWebSite=尋找所需功能的軟體包(例如在官方網站%s上)。 DownloadPackageFromWebSite=下載軟體包(例如從官方網站%s)。 UnpackPackageInDolibarrRoot=將打包的文件解開/解壓縮到您的Dolibarr伺服器資料夾中: %s -UnpackPackageInModulesRoot=To deploy/install an external module, you must unpack/unzip the archive file into the server directory dedicated to external modules:
    %s +UnpackPackageInModulesRoot=要部署/安裝外部模組,您必須將檔案解開/解壓縮到專用於外部模組的伺服器資料夾中:
    %s SetupIsReadyForUse=模組部署完成。但是,您必須轉到頁面設定模組%s來啟用和設定應用程式中的模組。 NotExistsDirect=替代根資料夾的資訊沒有定義到已存在的資料夾中。
    InfDirAlt=從第3版起,可定義替代根資料夾。此允許您儲存到指定資料夾、插件及客製化範本。
    只要在 dolibarr 的根資料夾內建立資料夾(例如: 客戶)。
    @@ -477,7 +477,7 @@ InstalledInto=已安裝到 %s 資料夾 BarcodeInitForThirdparties=合作方的批次條碼初始化 BarcodeInitForProductsOrServices=批次條碼初始化或產品或服務重置 CurrentlyNWithoutBarCode=目前您在沒有條碼%s%s中有%s的記錄。 -InitEmptyBarCode=下一筆%s記錄初始值 +InitEmptyBarCode=Init value for the %s empty barcodes EraseAllCurrentBarCode=刪除目前全部條碼現有值 ConfirmEraseAllCurrentBarCode=您確定您要刪除目前全部條碼現有值? AllBarcodeReset=全部條碼值已刪除 @@ -504,7 +504,7 @@ WarningPHPMailC=- 使用您自己的電子郵件服務提供商的 SMTP 伺服 WarningPHPMailD=此外,因此建議將電子郵件的發送方法更改為“SMTP”。如果您確實想保留預設的“PHP”方式來發送電子郵件,只需忽略此警告,或在 首頁 - 設定 - 其他設定 中將 MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP 數值設定為 1 來刪除它。 WarningPHPMail2=如果您的電子郵件SMTP程式需要將電子郵件客戶端限制為某些IP地址(非常罕見),則這是ERP CRM應用程式的郵件用戶代理(MUA)的IP地址: %s 。 WarningPHPMailSPF=如果您的寄件人電子郵件地址中的網域名稱受到SPF 記錄保護(詢問您的網域名稱註冊商),您必須在您的網域 DNS 的 SPF 記錄中增加以下 IP: %s 。 -ActualMailSPFRecordFound=找到的實際 SPF 記錄:%s +ActualMailSPFRecordFound=Actual SPF record found (for email %s) : %s ClickToShowDescription=點選顯示描述 DependsOn=此模組需要此模組 RequiredBy=模組需要此模組 @@ -714,12 +714,13 @@ Permission27=刪除商業提案/建議書 Permission28=匯出商業提案/建議書 Permission31=讀取產品資訊 Permission32=建立/修改產品資訊 +Permission33=Read prices products Permission34=刪除產品 Permission36=查看/管理隱藏的產品 Permission38=匯出產品資訊 Permission39=忽略最低價格 -Permission41=讀取專案及任務(已分享專案及以我擔任連絡人的專案)。也可在被指派的任務對自已或等級中輸入耗用的時間(時間表) -Permission42=建立/修改專案(已分享專案及以我擔任連絡人的專案)。也可以建立任務及指派用戶到專案及任務 +Permission41=讀取專案及任務(已分享專案及我擔任連絡人的專案) +Permission42=建立/修改專案(已分享專案及以我擔任連絡人的專案)。也可以指派用戶到專案及任務 Permission44=刪除專案(已分享專案及以我擔任連絡人的專案) Permission45=匯出專案 Permission61=讀取干預 @@ -739,6 +740,7 @@ Permission79=建立/修改訂閲 Permission81=讀取客戶訂單 Permission82=建立/修改客戶訂單 Permission84=驗證客戶訂單 +Permission85=Generate the documents sales orders Permission86=傳送客戶訂單 Permission87=關閉客戶訂單(結案) Permission88=取消客戶訂單 @@ -766,9 +768,10 @@ Permission122=建立/修改已連結到用戶的合作方 Permission125=刪除已連結到用戶的合作方 Permission126=匯出合作方資料 Permission130=建立/修改合作方支付資訊 -Permission141=讀取全部專案及任務(也包含我不是連絡人的私人專案) +Permission141=讀取全部專案及任務(也含我不是聯絡人的私人專案) Permission142=建立/修改全部專案及任務(也包含我不是連絡人的私人專案) Permission144=刪除全部專案及任務(也包含我不是連絡人的私人專案) +Permission145=Can enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission146=讀取提供者 Permission147=讀取統計資料 Permission151=讀取直接轉帳付款訂單 @@ -862,10 +865,10 @@ Permission403=驗證折扣 Permission404=刪除折扣 Permission430=使用除錯欄 Permission511=讀取薪資支付(您和您的下屬) -Permission512=建立/修改薪資資和付款 +Permission512=建立/修改薪資和付款 Permission514=刪除薪資和付款 Permission517=讀取每個人的薪資支付 -Permission519=匯出薪水 +Permission519=匯出薪資 Permission520=讀取借款 Permission522=建立/修改借款 Permission524=刪除借款 @@ -873,6 +876,7 @@ Permission525=存取借款計算器 Permission527=匯出借款 Permission531=讀取服務 Permission532=建立/修改服務 +Permission533=Read prices services Permission534=刪除服務 Permission536=查看/管理隱藏服務 Permission538=匯出服務 @@ -883,6 +887,9 @@ Permission564=記錄借方/拒絕的直接轉帳 Permission601=讀取標籤 Permission602=建立/修改標籤 Permission609=刪除標籤 +Permission611=讀取變異的屬性 +Permission612=建立/更新變異的屬性 +Permission613=刪除變異的屬性 Permission650=讀取物料清單 Permission651=新增/更新物料清單 Permission652=刪除物料清單 @@ -969,6 +976,8 @@ Permission4021=建立/修改您的評價 Permission4022=驗證評估 Permission4023=刪除評價 Permission4030=查看比較選單 +Permission4031=讀取個人資訊 +Permission4032=寫入個人資訊 Permission10001=讀取網站內容 Permission10002=建立/修改網站內容(html和javascript內容) Permission10003=建立/修改網站內容(動態php代碼)。危險,必須留給受限開發人員使用。 @@ -1068,6 +1077,7 @@ DictionaryExpenseTaxCat=費用報表 -交通類別 DictionaryExpenseTaxRange=費用報表 - 依交通類別劃分範圍 DictionaryTransportMode=通訊報告-傳送模式 DictionaryBatchStatus=產品批號/序號品質控制狀態 +DictionaryAssetDisposalType=資產處置類型 TypeOfUnit=單位類型 SetupSaved=設定已儲存 SetupNotSaved=設定未儲存 @@ -1122,7 +1132,7 @@ ValueOfConstantKey=常數設置的值 ConstantIsOn= 選項%s啟用中 NbOfDays=天數 AtEndOfMonth=月底 -CurrentNext=現在/下一個 +CurrentNext=A given day in month Offset=Offset AlwaysActive=始終啟動 Upgrade=升級 @@ -1179,7 +1189,7 @@ IDCountry=國家ID Logo=Logo LogoDesc=公司的主要Logo。將用於產生的文件(PDF,...) LogoSquarred=Logo(正方形) -LogoSquarredDesc=必須是正方形圖案(寬度=高度)。此logo將用作我的最愛圖標或頂部選單欄的其他需要(如果未在顯示設定中禁用)。 +LogoSquarredDesc=必須是正方形圖案(寬度=高度)。此logo將用作於我的最愛圖示或頂部選單欄的其他需要(如果未在顯示設定中停用)。 DoNotSuggestPaymentMode=不建議 NoActiveBankAccountDefined=沒有定義有效的銀行帳戶 OwnerOfBankAccount=銀行帳戶擁有者%s @@ -1187,10 +1197,10 @@ BankModuleNotActive=銀行帳戶模組沒有啟用 ShowBugTrackLink=顯示連結"%s" ShowBugTrackLinkDesc=保持空白以隱藏此連結,使用值 'github' 作為 Dolibarr 專案的連結或直接定義一個網址'https://...' Alerts=警告 -DelaysOfToleranceBeforeWarning=顯示警告警報之前的延遲時間: +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=未處理採購訂單 @@ -1228,6 +1238,7 @@ BrowserName=瀏覽器名稱 BrowserOS=瀏覽器系統 ListOfSecurityEvents=Dolibarr 安全事件清單 SecurityEventsPurged=清除安全事件 +TrackableSecurityEvents=Trackable security events LogEventDesc=啟用特定安全事件的日誌記錄。通過選單%s-%s來管理日誌。警告,此功能可能會在資料庫中產生大量數據。 AreaForAdminOnly=設定參數僅可由管理員進行設定。 SystemInfoDesc=僅供系統管理員以唯讀及可見模式取得系統資訊。 @@ -1243,7 +1254,7 @@ SessionExplanation=如果程序清除程式是由內部PHP程序清除程式完 SessionsPurgedByExternalSystem=此伺服器的程序似乎已被外部程序清除 (在debian, ubuntu中的cron...), 也許每%s 秒(= 參數session.gc_maxlifetime中的數值),所以在此變更數值是無效的.您必須請伺服器管理員變更程序延遲時間. TriggersAvailable=可用的觸發器 TriggersDesc=觸發器是一旦複製到htdocs / core / triggers資料夾中後將修改Dolibarr工作流程行為的檔案。他們實現了在Dolibarr事件上啟動新的動作(新公司建立,發票驗證等)。 -TriggerDisabledByName=此檔案中的觸發器被名稱後綴用-NORUN禁用。 +TriggerDisabledByName=此檔案中的觸發器被名稱後綴用-NORUN停用。 TriggerDisabledAsModuleDisabled=當模組%s停用時,此檔案中的觸發器是停用的。 TriggerAlwaysActive=無論啟動任何 Dolibarr 模組,此檔案中觸發器是啟動的。 TriggerActiveAsModuleActive=當模組%s啟用時,此檔案中的觸發器是可用的。 @@ -1339,6 +1350,7 @@ TransKeyWithoutOriginalValue=您為任何語言文件中都不存在的翻譯密 TitleNumberOfActivatedModules=已啟用模組 TotalNumberOfActivatedModules=已啟用模組: %s / %s YouMustEnableOneModule=您至少要啟用 1 個模組 +YouMustEnableTranslationOverwriteBefore=您必須先啟用覆蓋翻譯才能替換翻譯 ClassNotFoundIntoPathWarning=在PHP路徑中找不到類別%s YesInSummer=是的,在夏天 OnlyFollowingModulesAreOpenedToExternalUsers=請注意,只有在授予外部用戶使用權限時可以使用以下模組(與此類用戶的權限無關):
    @@ -1420,6 +1432,8 @@ WatermarkOnDraftInvoices=在發票草稿上的浮水印(若空白則無) PaymentsNumberingModule=付款編號模型 SuppliersPayment=供應商付款 SupplierPaymentSetup=供應商付款設定 +InvoiceCheckPosteriorDate=在驗證前檢查製造日期 +InvoiceCheckPosteriorDateHelp=如果發票日期早於最後一張同類型發票的日期,將禁止驗證發票。 ##### Proposals ##### PropalSetup=商業提案/建議書模組設定 ProposalsNumberingModules=商業提案/建議書編號模型 @@ -1816,11 +1830,11 @@ CashDeskBankAccountForSell=用於以接收現金付款的預設帳戶 CashDeskBankAccountForCheque=用於以支票接收付款的預設帳戶 CashDeskBankAccountForCB=用於以信用卡接收付款的預設帳戶 CashDeskBankAccountForSumup=用於以SumUp接收付款的預設銀行帳戶 -CashDeskDoNotDecreaseStock=當從銷售點完成銷售時,禁用庫存減少(如果為“否”,則通過POS完成的每次銷售都會減少庫存,而與庫存模組中設定的選項無關)。 +CashDeskDoNotDecreaseStock=當從銷售點完成銷售時,停用庫存減少(如果為“否”,則通過POS完成的每次銷售都會減少庫存,而與庫存模組中設定的選項無關)。 CashDeskIdWareHouse=為減少庫存強制並限制倉庫使用 -StockDecreaseForPointOfSaleDisabled=從銷售點減少庫存已禁用 -StockDecreaseForPointOfSaleDisabledbyBatch=POS中的庫存減少與序列/批次管理模組(當前處於活動狀態)不相容,因此禁用了庫存減少。 -CashDeskYouDidNotDisableStockDecease=從銷售點進行銷售時,您沒有禁用庫存減少。因此,需要一個倉庫。 +StockDecreaseForPointOfSaleDisabled=從銷售點減少庫存已停用 +StockDecreaseForPointOfSaleDisabledbyBatch=POS中的庫存減少與序列/批次管理模組(當前處於活動狀態)不相容,因此停用了庫存減少。 +CashDeskYouDidNotDisableStockDecease=從銷售點進行銷售時,您沒有停用庫存減少。因此,需要一個倉庫。 CashDeskForceDecreaseStockLabel=批次產品的庫存強制減少。 CashDeskForceDecreaseStockDesc=首先減少最早的Eatby和Sellby日期。 CashDeskReaderKeyCodeForEnter=在條碼掃描器中定義的“ Enter”的鍵代碼(範例:13) @@ -1917,15 +1931,16 @@ ConfFileMustContainCustom=從應用程式安裝或建構外部模組需要將模 HighlightLinesOnMouseHover=滑鼠經過時會顯示表格行 HighlightLinesColor=滑鼠經過時突出顯示行的顏色(使用“ ffffff”表示沒有突出顯示) HighlightLinesChecked=選中時突出顯示行的顏色(使用"ffffff"表示不突出顯示) -BtnActionColor=Color of the action button -TextBtnActionColor=Text color of the action button +UseBorderOnTable=在表格上顯示左右邊框 +BtnActionColor=操作按鈕的顏色 +TextBtnActionColor=操作按鈕的文字顏色 TextTitleColor=頁面標題的文字顏色 LinkColor=連結的顏色 PressF5AfterChangingThis=更改此值使其生效後,按鍵盤上的CTRL + F5或清除瀏覽器暫存。 NotSupportedByAllThemes=將適用於核心主題,可能不受外部主題支援 BackgroundColor=背景顏色 TopMenuBackgroundColor=頂端選單的背景顏色 -TopMenuDisableImages=在頂端選單中隱藏圖片 +TopMenuDisableImages=Icon or Text in Top menu LeftMenuBackgroundColor=左側選單的背景顏色 BackgroundTableTitleColor=表格標題行的背景顏色 BackgroundTableTitleTextColor=表格標題行的文字顏色 @@ -1938,7 +1953,7 @@ EnterAnyCode=此欄位包含用於識別行的參考。輸入您選擇的任何 Enter0or1=輸入0或1 UnicodeCurrency=在括號之間輸入代表貨幣符號的字元數列表。例如:對於$,輸入[36]-對於巴西R $ [82,36]-對於€,輸入[8364] ColorFormat=在 HEX 格式中 RGB 顏色,例如: FF0000 -PictoHelp=dolibarr 格式的圖標名稱(如果進入目前主題資料夾“image.png”,如果進入模組的資料夾/img/“image.png@nom_du_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=行的位置放到組合清單中 SellTaxRate=銷售稅率 RecuperableOnly=在法國某些州營業稅是 “Not Perceived but Recoverable”。 在其他情況下,則將該值保持為“否”。 @@ -1966,6 +1981,7 @@ MailToSendSupplierOrder=採購訂單 MailToSendSupplierInvoice=供應商發票 MailToSendContract=合約 MailToSendReception=收貨(s) +MailToExpenseReport=費用報表 MailToThirdparty=合作方 MailToMember= 會員 MailToUser=用戶 @@ -2003,7 +2019,7 @@ AddSubstitutions=新增替換值 DetectionNotPossible=無法檢測 UrlToGetKeyToUseAPIs=被用來取得許可證的網址以使用API(一旦收到許可證,許可證將保存在資料庫用戶表中,並且必須在每個API調用中提供) ListOfAvailableAPIs=可用API清單 -activateModuleDependNotSatisfied=模組“ %s”基於模組“ %s”,此模組已遺失,因此模組“ %1$s”可能無法正常工作。為了安全起見,請安裝模組“ %2$s”或禁用模組“ %1$s” +activateModuleDependNotSatisfied=模組“ %s”基於模組“ %s”,此模組已遺失,因此模組“ %1$s”可能無法正常工作。為了安全起見,請安裝模組“ %2$s”或停用模組“ %1$s” CommandIsNotInsideAllowedCommands=您嘗試執行的命令不在conf.php檔案中的$ dolibarr_main_restrict_os_commands參數裡的允許命令清單中。 LandingPage=登入頁面 SamePriceAlsoForSharedCompanies=若你使用多重公司模組時選擇"單一價格"時,且共用產品時,所有公司的價格也都會一樣。 @@ -2019,6 +2035,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=Show first sales representative MAIN_GENERATE_PROPOSALS_WITH_PICTURE=在提案/建議書行加入圖片欄位 MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=欄位寬度-如果在行上加入圖片 MAIN_PDF_NO_SENDER_FRAME=隱藏寄件人地址框的邊框 @@ -2037,7 +2054,7 @@ COMPANY_AQUARIUM_CLEAN_REGEX=用正則表達式篩選器清除值(COMPANY_AQUA COMPANY_DIGITARIA_CLEAN_REGEX=用正則表達式篩選器清除值(COMPANY_DIGITARIA_CLEAN_REGEX) COMPANY_DIGITARIA_UNIQUE_CODE=不允許重複 GDPRContact=資料保護官(DPO,資料隱私或GDPR聯絡人) -GDPRContactDesc=如果您儲存有關歐洲公司/公民的資料,則可以在此處指定負責《通用數據保護條例》的聯絡人 +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=工具提示上的幫助文字 HelpOnTooltipDesc=在這裡放入文字或是翻譯鍵以便此欄位顯示在表單時可以顯示在工具提示 YouCanDeleteFileOnServerWith=您可以使用下列命令行在伺服器上刪除此文件:
    %s @@ -2048,9 +2065,16 @@ VATIsUsedIsOff=注意:在選單%s-%s中,使用營業稅或增值稅的選項 SwapSenderAndRecipientOnPDF=交換PDF文件上的發件人和收件人地址位置 FeatureSupportedOnTextFieldsOnly=警告,僅文字欄位與複合清單支援此功能。另外,必須設定網址參數action = create或action = edit到OR頁面,名稱必須為'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=收集器要做的操作 @@ -2061,14 +2085,26 @@ ConfirmCloneEmailCollector=您確定要複製電子郵件收集器%s嗎? DateLastCollectResult=最新嘗試收集日期 DateLastcollectResultOk=最新收集成功日期 LastResult=最新結果 +EmailCollectorHideMailHeaders=不要將郵件標題的內容包含在已收集郵件的保存內容中 +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=您是否要立即執行此收集器的收集? +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) +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 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 NoNewEmailToProcess=沒有新的電子郵件(與篩選匹配)要處理 NothingProcessed=什麼都沒做 -XEmailsDoneYActionsDone=%s電子郵件合格,%s電子郵件已成功處理(對於%s記錄/已完成操作) +XEmailsDoneYActionsDone=%s emails pre-qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=在行事曆中記錄事件(類型為發送或接收的電子郵件) CreateLeadAndThirdParty=建立潛在(必要時建立合作方) -CreateTicketAndThirdParty=建立服務單(如果之前已執行讀取也連結至合作方,否則無合作方) +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=最新結果代碼 NbOfEmailsInInbox=來源資料夾中的電子郵件數量 LoadThirdPartyFromName=在%s載入合作方搜尋 (僅載入) @@ -2082,17 +2118,17 @@ 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=資源模組的設定 UseSearchToSelectResource=使用尋找表單選取資源 (下拉式清單) DisabledResourceLinkUser=停用資源連結到用戶的功能 DisabledResourceLinkContact=停用資源連結到通訊錄的功能 -EnableResourceUsedInEventCheck=啟用功能以檢查事件中是否正在使用資源 +EnableResourceUsedInEventCheck=Prohibit the use of the same resource at the same time in the agenda ConfirmUnactivation=確認重設模組 OnMobileOnly=只在小螢幕(智慧型手機) -DisableProspectCustomerType=禁用“潛在+客戶”合作方類型(因此合作方必須是“潛在”或“客戶”,但不能同時使用兩種類型) +DisableProspectCustomerType=停用“潛在+客戶”合作方類型(因此合作方必須是“潛在”或“客戶”,但不能同時使用兩種類型) MAIN_OPTIMIZEFORTEXTBROWSER=盲人簡化界面 MAIN_OPTIMIZEFORTEXTBROWSERDesc=如果您是盲人,或者通過Lynx或Links等文字瀏覽器使用此應用程式,請啟用此選項。 MAIN_OPTIMIZEFORCOLORBLIND=為色盲更改界面顏色 @@ -2134,7 +2170,7 @@ DeleteEmailCollector=刪除電子郵件收集器 ConfirmDeleteEmailCollector=您確定要刪除此電子郵件收集器嗎? RecipientEmailsWillBeReplacedWithThisValue=收件人電子郵件將始終被替換為此值 AtLeastOneDefaultBankAccountMandatory=至少須定義1個預設銀行帳戶 -RESTRICT_ON_IP=僅允許訪問某些主機IP(不允許使用萬用字元,請在值之間使用空格)。空白意味著每個主機都可以訪問。 +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=基於SabreDAV版本 NotAPublicIp=不是公共IP @@ -2144,6 +2180,9 @@ 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 PDF_USE_ALSO_LANGUAGE_CODE=如果您要在生成同一的PDF中以兩種不同的語言複製一些文字,則必須在此處設置第二種語言讓生成的PDF在同一頁中包含兩種不同的語言,選擇的可以用來生成PDF跟另一種語言(只有少數PDF模板支援此功能)。PDF只有一種語言則留空。 PDF_USE_A=產生使用PDF/A格式的PDF文件而不是預設格式的PDF FafaIconSocialNetworksDesc=在此處輸入FontAwesome圖示的代碼。如果您不知道什麼是FontAwesome,則可以使用通用值fa-address-book。 @@ -2185,6 +2224,7 @@ NoExternalModuleWithUpdate=未找到外部模組的更新 SwaggerDescriptionFile=Swagger API 描述檔案(例如用於 redoc) YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=您啟用了已棄用的 WS API。您應該改用 REST API。 RandomlySelectedIfSeveral=有多張圖片時隨機選擇 +SalesRepresentativeInfo=For Proposals, Orders, Invoices. DatabasePasswordObfuscated=資料庫密碼在conf檔案中為加密 DatabasePasswordNotObfuscated=資料庫密碼在conf檔案中不是加密 APIsAreNotEnabled=未啟用 API 模組 @@ -2192,26 +2232,26 @@ 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=停用服務單縮圖 +DashboardDisableBlockBank=停用銀行縮圖 +DashboardDisableBlockAdherent=停用會員縮圖 +DashboardDisableBlockExpenseReport=停用費用報表縮圖 +DashboardDisableBlockHoliday=停用休假縮圖 EnabledCondition=啟用欄位的條件(如果未啟用,可見將始終為關閉) -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=如果您想使用第二種稅率,您仍須啟用第一種稅率 -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=如果您想使用第三種稅率,您仍須啟用第一種稅率 +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=如果您想使用第二個稅率,您必須啟用第一個銷售稅率 +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=如果您想使用第三種稅率,您必須啟用第一種銷售稅率 LanguageAndPresentation=語言和介紹 SkinAndColors=外觀和顏色 -IfYouUseASecondTaxYouMustSetYouUseTheMainTax=如果您想使用第二種稅率,您仍須啟用第一種稅率 -IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=如果您想使用第三種稅率,您仍須啟用第一種稅率 +IfYouUseASecondTaxYouMustSetYouUseTheMainTax=如果您想使用第二個稅率,您必須啟用第一個銷售稅率 +IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=如果您想使用第三種稅率,您必須啟用第一種銷售稅率 PDF_USE_1A=產生PDF/A-1b 格式的 PDF MissingTranslationForConfKey = 缺少 %s 的翻譯 NativeModules=原生模組 @@ -2219,4 +2259,51 @@ NoDeployedModulesFoundWithThisSearchCriteria=未找到符合這些搜索條件 API_DISABLE_COMPRESSION=停用API回應壓縮 EachTerminalHasItsOwnCounter=每個終端機使用自己的櫃台。 FillAndSaveAccountIdAndSecret=先填寫並保存帳號ID和密碼 -PreviousHash=Previous hash +PreviousHash=上一個哈希值 +LateWarningAfter="延遲"警告時間 +TemplateforBusinessCards=不同尺寸大小的名片模板 +InventorySetup= 庫存設定 +ExportUseLowMemoryMode=使用低記憶體模式 +ExportUseLowMemoryModeHelp=使用低記憶體模式執行另存的 exec(壓縮是通過管道完成的,而不是進入 PHP 記憶體)。此方法不允許檢查檔案是否已完成,如果失敗則無法報告錯誤訊息。 + +ModuleWebhookName = Webhook +ModuleWebhookDesc = Interface to catch dolibarr triggers and send it to an URL +WebhookSetup = Webhook setup +Settings = 設定 +WebhookSetupPage = Webhook setup page +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 +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/zh_TW/agenda.lang b/htdocs/langs/zh_TW/agenda.lang index ae2a39fb3a4..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=事件指定給 @@ -30,7 +30,7 @@ ViewDay=日檢視 ViewWeek=週檢視 ViewPerUser=檢視每位用戶 ViewPerType=每種類別檢視 -AutoActions= 自動填滿 +AutoActions= 自動填寫 AgendaAutoActionDesc= 在這裡,您可以定義希望Dolibarr在應辦事項中自動新增的事件。如果未進行任何檢查,則日誌中將僅包含手動操作,並在應辦事項中顯示。將不會保存專案中自動商業行動追蹤(驗證,狀態更改)。 AgendaSetupOtherDesc= 此頁面允許將您的Dolibarr事件匯出到外部行事曆(Thunderbird,Google Calendar等)。 AgendaExtSitesDesc=該頁面允許顯示外部來源行事曆,以將其事件納入Dolibarr應辦事項。 @@ -45,6 +45,7 @@ CONTRACT_DELETEInDolibarr=合約%s已刪除 PropalClosedSignedInDolibarr=提案/建議書 %s 已簽署 PropalClosedRefusedInDolibarr=提案/建議書 %s 已拒絕 PropalValidatedInDolibarr=提案/建議書 %s 已驗證 +PropalBackToDraftInDolibarr=提案/建議書 %s 回到草案狀態 PropalClassifiedBilledInDolibarr=提案/建議書 %s 歸類為已計費 InvoiceValidatedInDolibarr=發票 %s 已驗證 InvoiceValidatedInDolibarrFromPos=POS 的發票 %s 已驗證 @@ -56,6 +57,7 @@ MemberValidatedInDolibarr=會員 %s 已驗證 MemberModifiedInDolibarr=會員 %s 已修改 MemberResiliatedInDolibarr=會員 %s 已終止 MemberDeletedInDolibarr=會員 %s 已刪除 +MemberExcludedInDolibarr=Member %s excluded MemberSubscriptionAddedInDolibarr=會員 %s 已新增 %s 的訂閱 MemberSubscriptionModifiedInDolibarr=會員 %s 已修改 %s 訂閱 MemberSubscriptionDeletedInDolibarr=會員 %s 已刪除 %s 訂閱 @@ -66,6 +68,7 @@ ShipmentBackToDraftInDolibarr=裝運%s回到草稿狀態 ShipmentDeletedInDolibarr=裝運%s已刪除 ShipmentCanceledInDolibarr=發貨%s已取消 ReceptionValidatedInDolibarr=接收%s已驗證 +ReceptionClassifyClosedInDolibarr=接收 %s 已分類為已關閉 OrderCreatedInDolibarr=訂單 %s 已建立 OrderValidatedInDolibarr=訂單 %s 已驗證 OrderDeliveredInDolibarr=訂單 %s 歸類為已出貨 @@ -157,6 +160,7 @@ DateActionBegin=事件開始日期 ConfirmCloneEvent=您確定要複製事件 %s? RepeatEvent=重覆事件 OnceOnly=只有一次 +EveryDay=Every day EveryWeek=每周 EveryMonth=每月 DayOfMonth=一個月中的某天 @@ -172,3 +176,4 @@ AddReminder=為此事件建立自動提醒通知 ErrorReminderActionCommCreation=為此事件建立提醒通知時出現錯誤 BrowserPush=查看彈出通知 ActiveByDefault=預設為啟用 +Until=until diff --git a/htdocs/langs/zh_TW/assets.lang b/htdocs/langs/zh_TW/assets.lang index 8de301c2735..25ae074e468 100644 --- a/htdocs/langs/zh_TW/assets.lang +++ b/htdocs/langs/zh_TW/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 = 資產 -NewAsset = 新資產 -AccountancyCodeAsset = 會計代碼(資產) -AccountancyCodeDepreciationAsset = 會計代碼(折舊性資產帳號) -AccountancyCodeDepreciationExpense = 會計代碼(折舊性費用帳號) -NewAssetType=新資產類型 -AssetsTypeSetup=資產類型設定 -AssetTypeModified=修改資產類型 -AssetType=資產類型 +NewAsset=新資產 +AccountancyCodeAsset=會計代碼(資產) +AccountancyCodeDepreciationAsset=會計代碼(折舊性資產帳號) +AccountancyCodeDepreciationExpense=會計代碼(折舊性費用帳號) AssetsLines=資產 DeleteType=刪除 -DeleteAnAssetType=刪除資產類型 -ConfirmDeleteAssetType=您確定要刪除此資產類型嗎? -ShowTypeCard=顯示類型'%s' +DeleteAnAssetType=刪除資產模型 +ConfirmDeleteAssetType=您確定要刪除此資產模型嗎? +ShowTypeCard=顯示模型'%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = 資產 +ModuleAssetsName=資產 # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = 資產描述 +ModuleAssetsDesc=資產描述 # # Admin page # -AssetsSetup = 資產設定 -Settings = 設定 -AssetsSetupPage = 資產設定頁面 -ExtraFieldsAssetsType = 互補屬性(資產類型) -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 # +ConfirmDeleteAsset=您真的要刪除此資產嗎? + +# +# Tab +# +AssetDepreciationOptions=折舊選項 +AssetAccountancyCodes=Accounting accounts +AssetDepreciation=折舊 + +# +# Asset +# Asset=資產 -NewAssetType=新資產類型 -NewAsset=新資產 -ConfirmDeleteAsset=您確定要刪除此資產? +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=似乎尚未提供資產或模型的ID +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/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang index 9d193bc3d40..0bf28f1422d 100644 --- a/htdocs/langs/zh_TW/banks.lang +++ b/htdocs/langs/zh_TW/banks.lang @@ -88,18 +88,18 @@ AccountToDebit=借款方帳戶 DisableConciliation=停用此帳戶對帳功能 ConciliationDisabled=已停用對帳功能 LinkedToAConciliatedTransaction=已連結到調節條目 -StatusAccountOpened=開放 +StatusAccountOpened=啟用 StatusAccountClosed=已關閉 AccountIdShort=號碼 LineRecord=交易 AddBankRecord=增加條目 AddBankRecordLong=手動增加條目 Conciliated=已對帳 -ConciliatedBy=對帳員 +ReConciliedBy=對帳員 DateConciliating=對帳日期 BankLineConciliated=條目與銀行收據一致 -Reconciled=已對帳 -NotReconciled=未對帳 +BankLineReconciled=已對帳 +BankLineNotReconciled=未對帳 CustomerInvoicePayment=客戶付款 SupplierInvoicePayment=供應商付款 SubscriptionPayment=訂閱付款 @@ -156,7 +156,7 @@ RejectCheck=支票已退回 ConfirmRejectCheck=您確定要將此支票標記為已拒絕嗎? RejectCheckDate=退回支票的日期 CheckRejected=支票已退回 -CheckRejectedAndInvoicesReopened=支票已退回,發票已重新打開 +CheckRejectedAndInvoicesReopened=支票已退回,發票已重新啟用 BankAccountModelModule=銀行帳戶的文件範本 DocumentModelSepaMandate=歐洲統一支付區要求的範本。僅適用於歐洲經濟共同體的歐洲國家。 DocumentModelBan=列印有BAN資訊的範本。 @@ -172,13 +172,17 @@ SEPAMandate=歐洲統一支付區要求 YourSEPAMandate=您的歐洲統一支付區要求 FindYourSEPAMandate=這是您SEPA的授權,授權我們公司向您的銀行直接付款。退還已簽名(掃描已簽名文檔)或通過郵件發送至 AutoReportLastAccountStatement=進行對帳時,自動用最後一個對帳單編號填寫“銀行對帳單編號”欄位 -CashControl=POS收銀台控制 -NewCashFence=新收銀台開啟或關閉 +CashControl=POS cash control +NewCashFence=New cash control (opening or closing) BankColorizeMovement=動作顏色 BankColorizeMovementDesc=如果啟用此功能,則可以為借款方或貸款方動作選擇特定的背景顏色 BankColorizeMovementName1=借款方動作的背景顏色 BankColorizeMovementName2=貸款方動作的背景顏色 -IfYouDontReconcileDisableProperty=如果您不對某些銀行帳戶進行銀行對帳,請在其上禁用屬性“ %s”以刪除此警告。 +IfYouDontReconcileDisableProperty=如果您不對某些銀行帳戶進行銀行對帳,請在其上停用屬性“ %s”以刪除此警告。 NoBankAccountDefined=未定義銀行帳戶 NoRecordFoundIBankcAccount=在銀行帳戶中沒有找到記錄。通常,當一條記錄從銀行帳戶的交易清單中手動刪除時(例如在銀行帳戶對帳期間),就會發生這種情況。另一個原因是在停用模組“%s”時記錄了付款。 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/bills.lang b/htdocs/langs/zh_TW/bills.lang index c01280f6b99..d7a9eb21bb7 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -81,14 +81,14 @@ PaymentsReports=付款報告 PaymentsAlreadyDone=付款已完成 PaymentsBackAlreadyDone=退款已完成 PaymentRule=付款條件 -PaymentMode=Payment method -PaymentModes=Payment methods -DefaultPaymentMode=Default Payment method +PaymentMode=付款類型 +PaymentModes=付款類型 +DefaultPaymentMode=預設的付款類型 DefaultBankAccount=預設銀行帳戶 -IdPaymentMode=Payment method (id) -CodePaymentMode=Payment method (code) -LabelPaymentMode=Payment method (label) -PaymentModeShort=Payment method +IdPaymentMode=付款類型(ID) +CodePaymentMode=付款類型(代碼) +LabelPaymentMode=付款類型(標籤) +PaymentModeShort=付款類型 PaymentTerm=付款條件 PaymentConditions=付款條件 PaymentConditionsShort=付款條件 @@ -156,6 +156,7 @@ ErrorInvoiceAvoirMustBeNegative=錯誤,正確的發票必須為負數 ErrorInvoiceOfThisTypeMustBePositive=錯誤,這種類型的發票必須有不包括正稅的金額(或為空) ErrorCantCancelIfReplacementInvoiceNotValidated=錯誤,無法取消已被仍處於草稿狀態的另一張發票替代的發票 ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=此零件或其他零件已經被使用,因此折扣序列無法刪除。 +ErrorInvoiceIsNotLastOfSameType=錯誤:發票 %s 的日期為 %s。對於相同類型的發票 (%s),它必須晚於或等於最後日期。請更改發票日期。 BillFrom=從 BillTo=到 ActionsOnBill=發票活動 @@ -282,6 +283,8 @@ RecurringInvoices=定期發票 RecurringInvoice=經常性發票 RepeatableInvoice=發票範本 RepeatableInvoices=各式發票範本 +RecurringInvoicesJob=產生定期發票(銷售發票) +RecurringSupplierInvoicesJob=產生定期發票(採購發票) Repeatable=範本 Repeatables=各式範本 ChangeIntoRepeatableInvoice=轉換成發票範本 @@ -482,6 +485,7 @@ PaymentByChequeOrderedToShort=支票付款(含稅)應支付給 SendTo=寄送到 PaymentByTransferOnThisBankAccount=付款轉帳到以下銀行帳戶 VATIsNotUsedForInvoice=* CGI不適用的營業稅art-293B +VATIsNotUsedForInvoiceAsso=* 不適用CGI 增值稅第 261-7 條 LawApplicationPart1=通過適用於12/05/80的80.335 LawApplicationPart2=貨物仍屬於 LawApplicationPart3=賣方,直到全額付款 @@ -599,7 +603,6 @@ BILL_SUPPLIER_DELETEInDolibarr=供應商發票已刪除 UnitPriceXQtyLessDiscount=單價 x 數量 - 折讓 CustomersInvoicesArea=客戶計費區 SupplierInvoicesArea=供應商付款區 -FacParentLine=發票的母行 SituationTotalRayToRest=剩下的不含稅 PDFSituationTitle=情況n°%d SituationTotalProgress=總進度%d %% @@ -607,3 +610,5 @@ SearchUnpaidInvoicesWithDueDate=搜尋到期日 = %s 的未付款發票 NoPaymentAvailable=%s 無法付款 PaymentRegisteredAndInvoiceSetToPaid=付款已登錄並且發票 %s 設定為已付款 SendEmailsRemindersOnInvoiceDueDate=使用電子郵件寄送未付發票提醒 +MakePaymentAndClassifyPayed=記錄付款 +BulkPaymentNotPossibleForInvoice=發票 %s(錯誤類型或狀態)無法進行批次付款 diff --git a/htdocs/langs/zh_TW/cashdesk.lang b/htdocs/langs/zh_TW/cashdesk.lang index e8273f28dd3..03ac29f6ea6 100644 --- a/htdocs/langs/zh_TW/cashdesk.lang +++ b/htdocs/langs/zh_TW/cashdesk.lang @@ -50,8 +50,8 @@ Footer=頁尾 AmountAtEndOfPeriod=結算金額(天,月或年) TheoricalAmount=理論金額 RealAmount=實際金額 -CashFence=收銀台關閉 -CashFenceDone=本期收銀台關閉完成 +CashFence=Cash box closing +CashFenceDone=Cash box closing done for the period NbOfInvoices=發票數 Paymentnumpad=輸入付款的便籤類型 Numberspad=號碼便籤 @@ -102,8 +102,8 @@ CashDeskGenericMaskCodes6 =
    {TN} 標籤用於增加站台 TakeposGroupSameProduct=群組相同產品線 StartAParallelSale=開啟新的平行銷售 SaleStartedAt=銷售開始於%s -ControlCashOpening=開啟POS時跳出"控制收銀" -CloseCashFence=關閉收銀台控制 +ControlCashOpening=Open the "Control cash box" popup when opening the POS +CloseCashFence=Close cash box control CashReport=現金報告 MainPrinterToUse=要使用的主印表機 OrderPrinterToUse=要使用的訂單印表機 @@ -134,3 +134,5 @@ PrintWithoutDetailsButton=增加"不列印詳細資訊"按鈕 PrintWithoutDetailsLabelDefault=預設列印行標籤時不包含詳細資訊 PrintWithoutDetails=不列印詳細資訊 YearNotDefined=年份未定義 +TakeposBarcodeRuleToInsertProduct=插入產品的條碼規則 +TakeposBarcodeRuleToInsertProductDesc=從掃描的條碼中讀取產品參考號 + 數量的規則。
    如果為空(預設值),應用程式將使用掃描的完整條碼來搜尋產品。

    如果已定義,語法必須為:
    ref:NB+qu:NB+qd:NB+other:NB:NB
    其中NB是來自掃描的條碼使用讀取的數據與字元數:
    • ref :產品參考號碼
    • qu:當插入項目(單位)時設定的數量
    • qd :當插入項目(小數)時設定的數量
    • other:其他字元
    diff --git a/htdocs/langs/zh_TW/categories.lang b/htdocs/langs/zh_TW/categories.lang index 0d650551363..67591a7d720 100644 --- a/htdocs/langs/zh_TW/categories.lang +++ b/htdocs/langs/zh_TW/categories.lang @@ -90,6 +90,7 @@ CategorieRecursivHelp=如果啟用此選項,當將產品增加到子類別時 AddProductServiceIntoCategory=新增以下產品/服務 AddCustomerIntoCategory=分配類別給客戶 AddSupplierIntoCategory=分配類別給供應商 +AssignCategoryTo=將類別分配給 ShowCategory=顯示標籤/類別 ByDefaultInList=預設在清單中 ChooseCategory=選擇類別 diff --git a/htdocs/langs/zh_TW/companies.lang b/htdocs/langs/zh_TW/companies.lang index 45e91c6ae3f..68ad3a79aef 100644 --- a/htdocs/langs/zh_TW/companies.lang +++ b/htdocs/langs/zh_TW/companies.lang @@ -19,6 +19,7 @@ ProspectionArea=潛在方區域 IdThirdParty=合作方ID IdCompany=公司ID IdContact=連絡人ID +ThirdPartyAddress=合作方地址 ThirdPartyContacts=合作方聯絡人 ThirdPartyContact=合作方連絡人/地址 Company=公司 @@ -51,19 +52,22 @@ CivilityCode=Civility code RegisteredOffice=已註冊辦公室 Lastname=姓氏 Firstname=名字 +RefEmployee=員工參考 +NationalRegistrationNumber=國家註冊編號 PostOrFunction=職稱 UserTitle=稱呼 NatureOfThirdParty=合作方性質 NatureOfContact=聯絡人性質 Address=地址 State=州/省 +StateId=State ID StateCode=州/省代碼 StateShort=州 Region=地區 Region-State=地區 - 州 Country=國家 CountryCode=國家代碼 -CountryId=國家ID +CountryId=Country ID Phone=電話 PhoneShort=電話 Skype=Skype @@ -102,6 +106,7 @@ WrongSupplierCode=供應商代碼無效 CustomerCodeModel=客戶代碼模型 SupplierCodeModel=供應商代碼模型 Gencod=條碼 +GencodBuyPrice=Barcode of price ref ##### Professional ID ##### ProfId1Short=專業ID 1 ProfId2Short=專業ID 2 @@ -159,15 +164,15 @@ ProfId5CL=- ProfId6CL=- ProfId1CM=Id. prof. 1(商業登記) ProfId2CM=Id. prof. 2(納稅人編號) -ProfId3CM=Id. prof. 3(建立法令) -ProfId4CM=- -ProfId5CM=- +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=- -ProfId5ShortCM=- +ProfId3ShortCM=No. of creation decree +ProfId4ShortCM=Deposit certificate No. +ProfId5ShortCM=其他 ProfId6ShortCM=- ProfId1CO=Prof Id 1 (R.U.T.) ProfId2CO=- @@ -359,7 +364,7 @@ ListOfThirdParties=合作方清單 ShowCompany=合作方 ShowContact=聯絡人-地址 ContactsAllShort=全部(不篩選) -ContactType=連絡型式 +ContactType=連絡人類型 ContactForOrders=訂單連絡人 ContactForOrdersOrShipments=訂單或送貨連絡人 ContactForProposals=提案/建議書連絡人 diff --git a/htdocs/langs/zh_TW/compta.lang b/htdocs/langs/zh_TW/compta.lang index 5218bdf6fff..7e327af1d7d 100644 --- a/htdocs/langs/zh_TW/compta.lang +++ b/htdocs/langs/zh_TW/compta.lang @@ -146,9 +146,11 @@ ConfirmPaySalary=您確定要將此薪資卡分類為已付款嗎? DeleteSocialContribution=刪除社會或財政稅金 DeleteVAT=刪除稅金申報 DeleteSalary=刪除薪資卡 +DeleteVariousPayment=刪除各種付款 ConfirmDeleteSocialContribution=您確定要刪除此社會/財政稅款嗎? ConfirmDeleteVAT=您確定要刪除此增值稅申報單嗎? ConfirmDeleteSalary=您確定要刪除此薪資嗎? +ConfirmDeleteVariousPayment=您確定要刪除此各種付款嗎? ExportDataset_tax_1=社會和財政稅金及繳稅 CalcModeVATDebt=%s承諾會計營業稅%s模式. CalcModeVATEngagement=%s收入-支出營業稅%s模式. @@ -287,9 +289,9 @@ 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 天) diff --git a/htdocs/langs/zh_TW/contracts.lang b/htdocs/langs/zh_TW/contracts.lang index 73b4fc7608a..d0799fa8da6 100644 --- a/htdocs/langs/zh_TW/contracts.lang +++ b/htdocs/langs/zh_TW/contracts.lang @@ -20,6 +20,7 @@ ContractsSubscriptions=合約/訂閱 ContractsAndLine=合約和合約範圍 Contract=合約 ContractLine=合約行 +ContractLines=合約行 Closing=關閉中 NoContracts=沒有合約 MenuServices=服務 @@ -90,7 +91,7 @@ StandardContractsTemplate=標準合約範本 ContactNameAndSignature=對於%s,名稱和簽名: OnlyLinesWithTypeServiceAreUsed=僅複製“服務”類型的行。 ConfirmCloneContract=您確定要複製合約%s嗎? -LowerDateEndPlannedShort=降低活動服務的計劃結束日期 +LowerDateEndPlannedShort=服務的預估結束日期 SendContractRef=合約資訊__參考__ OtherContracts=其他合約 ##### Types de contacts ##### @@ -102,3 +103,5 @@ TypeContact_contrat_external_SALESREPSIGN=簽訂合約客戶聯絡方式 HideClosedServiceByDefault=預設隱藏已關閉的服務 ShowClosedServices=顯示已關閉的服務 HideClosedServices=隱藏已關閉的服務 +UserStartingService=用戶啟動服務 +UserClosingService=用戶關閉服務 diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang index ef381e5ecb3..ab0e1628ec7 100644 --- a/htdocs/langs/zh_TW/errors.lang +++ b/htdocs/langs/zh_TW/errors.lang @@ -9,6 +9,7 @@ ErrorBadMXDomain=電子郵件 %s 似乎不正確(網域沒有有效的 MX 記 ErrorBadUrl=網址 %s 不正確 ErrorBadValueForParamNotAString=您的參數值錯誤。一般在轉譯遺失時產生。 ErrorRefAlreadyExists=參考%s已經存在。 +ErrorTitleAlreadyExists=標題 %s 已經存在。 ErrorLoginAlreadyExists=登入者%s已經存在。 ErrorGroupAlreadyExists=群組%s已經存在。 ErrorEmailAlreadyExists=電子郵件 %s 已存在。 @@ -27,9 +28,9 @@ ErrorThisContactIsAlreadyDefinedAsThisType=此聯絡人已被定義為以下類 ErrorCashAccountAcceptsOnlyCashMoney=這是一個現金帳戶的銀行帳戶,所以只接受現金支付的類型。 ErrorFromToAccountsMustDiffers=來源和目標的銀行帳戶必須是不同的。 ErrorBadThirdPartyName=合作方名稱的值不正確 -ForbiddenBySetupRules=Forbidden by setup rules +ForbiddenBySetupRules=已被設定中的規則禁止 ErrorProdIdIsMandatory=%s是強制性的 -ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory +ErrorAccountancyCodeCustomerIsMandatory=客戶%s的會計科目代號是必需的 ErrorBadCustomerCodeSyntax=客戶代碼語法錯誤 ErrorBadBarCodeSyntax=條碼語法錯誤。可能是您設定了錯誤的條碼類型,或者您定義了與掃描值不匹配的條碼遮罩編號。 ErrorCustomerCodeRequired=需要客戶代碼 @@ -66,7 +67,7 @@ ErrorDestinationAlreadyExists=檔案名稱%s已存在 ErrorPartialFile=伺服器未完整的收到檔案。 ErrorNoTmpDir=臨時指示%s不存在。 ErrorUploadBlockedByAddon=PHP / Apache的插件已阻擋上傳。 -ErrorFileSizeTooLarge=檔案太大。 +ErrorFileSizeTooLarge=檔案過大或未提供檔案。 ErrorFieldTooLong=欄位%s太長。 ErrorSizeTooLongForIntType=位數超過int類型(最大位數%s) ErrorSizeTooLongForVarcharType=位數超過字串類型(最大位數%s) @@ -91,6 +92,7 @@ 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現有參考 ErrorsOnXLines=發現%s錯誤 @@ -269,19 +271,31 @@ 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=Error, request too large +ErrorRequestTooLarge=錯誤,請求太大 +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 # 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=具有此標題或目標(網址)的書籤已存在。 @@ -289,7 +303,7 @@ WarningPassIsEmpty=警告,資料庫密碼是空的。這是一個安全漏洞 WarningConfFileMustBeReadOnly=警告,您的設定檔案( htdocs / conf / conf.php )可能會被Web伺服器器覆蓋。這是一個嚴重的安全漏洞。對於Web伺服器使用的操作系統用戶,需將檔案權限修改為唯讀模式。如果對磁碟使用Windows和FAT格式,則必須知道此檔案系統不允許在檔案上加入權限,因此不能保證完全安全。 WarningsOnXLines=關於%s來源記錄的警告 WarningNoDocumentModelActivated=沒有啟動用於產生文件的模型。預設情況下將選擇一個模型直到您檢查模組設定。 -WarningLockFileDoesNotExists=警告,安裝完成後,必須通過在資料夾%s中增加檔案install.lock來禁用安裝/遷移工具。忽略此檔案的建立會帶來嚴重的安全風險。 +WarningLockFileDoesNotExists=警告,安裝設定完成後,必須在資料夾%s中增加檔案install.lock來停用安裝/遷移工具。忽略此檔案的建立會帶來嚴重的安全風險。 WarningUntilDirRemoved=只要存在此漏洞(或在設定->其他設定中增加常數MAIN_REMOVE_INSTALL_WARNING),所有安全警告(僅管理員用戶可見)將保持活動狀態。 WarningCloseAlways=警告,即使來源元件和目標元件之間的數量不同,也將關閉。請謹慎啟用此功能。 WarningUsingThisBoxSlowDown=警告,使用此框會嚴重降低顯示此框所有頁面的速度。 @@ -311,6 +325,7 @@ WarningCreateSubAccounts=警告,您不能直接建立子帳戶,您必須建 WarningAvailableOnlyForHTTPSServers=僅在使用 HTTPS 安全連線時可用。 WarningModuleXDisabledSoYouMayMissEventHere=模組 %s 尚未啟用。所以你可能會在這裡錯過很多事件。 WarningPaypalPaymentNotCompatibleWithStrict=數值 'Strict' 使得線上支付功能無法正常工作。改用“Lax”。 +WarningThemeForcedTo=Warning, theme has been forced to %s by hidden constant MAIN_FORCETHEME # Validate RequireValidValue = 數值無效 @@ -318,7 +333,7 @@ RequireAtLeastXString = 至少需要%s個字元 RequireXStringMax = 最多 %s 個字元 RequireAtLeastXDigits = 需要至少%s位數 RequireXDigitsMax = 最多%s位數 -RequireValidNumeric = Requires a numeric value +RequireValidNumeric = 需要一個數值 RequireValidEmail = 電子郵件地址無效 RequireMaxLength = 長度需要小於%s個字元 RequireMinLength = 長度必須大於%s個字元 diff --git a/htdocs/langs/zh_TW/eventorganization.lang b/htdocs/langs/zh_TW/eventorganization.lang index 964b48116b1..7ea9f21cbf3 100644 --- a/htdocs/langs/zh_TW/eventorganization.lang +++ b/htdocs/langs/zh_TW/eventorganization.lang @@ -37,17 +37,18 @@ EventOrganization=活動組織 Settings=設定 EventOrganizationSetupPage = 活動組織設定頁面 EVENTORGANIZATION_TASK_LABEL = 當專案驗證時自動地建立任務標籤 -EVENTORGANIZATION_TASK_LABELTooltip = 當您驗證一個有組織的活動,有些任務可以自動在專案中建立

    例如:
    發送會議呼叫
    發送展位呼叫
    接收會議呼叫
    接收展位呼叫
    為參與者打開訂閱活動
    向演講者發送活動提醒
    向展位主持人發送活動提醒
    向與會者發送活動提醒 +EVENTORGANIZATION_TASK_LABELTooltip = 當您驗證一個有組織的活動,有些任務可以自動在專案中建立

    例如:
    發送會議呼叫
    發送展位呼叫
    驗證建議會議
    驗證展位應用
    為參與者打開訂閱活動
    向演講者發送活動提醒
    向展位主持人發送活動提醒
    向與會者發送活動提醒 +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 = Template of email to send after a registration to a booth has been paid. +EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH = 支付展位註冊費用後發送的電子郵件模板。 EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT = 支付報名費後發送的電子郵件模板。 -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_BULK_SPEAKER = 用於向演講者批次"發送電子郵件"使的電子郵件模板 +EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES = 用於向參與者批次"發送電子郵件"使的電子郵件模板 +EVENTORGANIZATION_FILTERATTENDEES_CAT = 使用表單建立/增加參與者,將清單限制於合作方類別中的合作方 +EVENTORGANIZATION_FILTERATTENDEES_TYPE = 使用表單建立/增加參與者,將清單限制於合作方類別中的合作方類型 # # Object @@ -84,14 +85,14 @@ PriceOfRegistration=註冊價格 PriceOfRegistrationHelp=註冊或參加活動的費用 PriceOfBooth=展位認購價 PriceOfBoothHelp=展位認購價 -EventOrganizationICSLink=Link ICS for conferences +EventOrganizationICSLink=連結會議的ICS ConferenceOrBoothInformation=會議或展位資訊 Attendees=參與者 ListOfAttendeesOfEvent=活動項目參與者名單 DownloadICSLink = 下載 ICS連結 -EVENTORGANIZATION_SECUREKEY = Seed to secure the key for the public registration page to suggest a conference +EVENTORGANIZATION_SECUREKEY = 用於建議會議之公共註冊頁面安全金鑰種子 SERVICE_BOOTH_LOCATION = 關於展位位置發票行的服務 -SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to an event +SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = 關於參與者訂閱會議發票行的服務 NbVotes=票數 # # Status @@ -165,3 +166,4 @@ EmailCompanyForInvoice=公司電子郵件(用於發票,如果與參與者電 ErrorSeveralCompaniesWithEmailContactUs=已找到幾家收到此電子郵件的公司,因此我們無法自動驗證您的註冊。請以 %s 聯繫我們進行手動驗證 ErrorSeveralCompaniesWithNameContactUs=已找到數家具有此名稱的公司,因此我們無法自動驗證您的註冊。請以 %s 聯繫我們進行手動驗證 NoPublicActionsAllowedForThisEvent=本次活動不對外公開任何公開活動 +MaxNbOfAttendees=參加人數上限 diff --git a/htdocs/langs/zh_TW/exports.lang b/htdocs/langs/zh_TW/exports.lang index 2b827a7fafd..32834b64867 100644 --- a/htdocs/langs/zh_TW/exports.lang +++ b/htdocs/langs/zh_TW/exports.lang @@ -53,8 +53,8 @@ TypeOfLineServiceOrProduct=類型(0 =產品,1 =服務) FileWithDataToImport=匯入有資料的檔案 FileToImport=欲匯入的來源檔案 FileMustHaveOneOfFollowingFormat=要匯入的檔案必須是以下格式 -DownloadEmptyExample=下載帶有欄位內容資料的範本檔案 -StarAreMandatory=* 為必填欄位 +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圖示選擇要匯入的檔案格式... ChooseFileToImport=上傳檔案,然後點擊%s圖示以選擇要匯入的檔案... SourceFileFormat=來源檔案格式 @@ -135,3 +135,6 @@ NbInsert=已插入的行數:%s NbUpdate=已更新的行數:%s MultipleRecordFoundWithTheseFilters=使用篩選器找到了多個記錄:%s StocksWithBatch=具有批次/序號產品的庫存和位置(倉庫) +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: 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/hrm.lang b/htdocs/langs/zh_TW/hrm.lang index 3114e075560..ca67129cf3e 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=HRM - Organizational Unit DictionaryFunction=人力資源管理-職位 # Module Employees=員工 @@ -70,12 +70,22 @@ RequiredSkills=此職位的必要技能 UserRank=用戶等級 SkillList=技能清單 SaveRank=儲存等級 -knowHow=Know how -HowToBe=怎樣成為 -knowledge=知識 +TypeKnowHow=Know how +TypeHowToBe=怎樣成為 +TypeKnowledge=知識 AbandonmentComment=放棄評論 DateLastEval=上次評估日期 NoEval=沒有對此員工進行的評估 HowManyUserWithThisMaxNote=此等級的用戶數量 HighestRank=最高等級 SkillComparison=技能比較 +ActionsOnJob=此職位的事件 +VacantPosition=職位空缺 +VacantCheckboxHelper=點選此選項將顯示職位空缺(職位空缺) +SaveAddSkill = 技能已增加 +SaveLevelSkill = 技能等級已儲存 +DeleteSkill = 技能已刪除 +SkillsExtraFields=補充屬性(能力) +JobsExtraFields=補充屬性 (職位) +EvaluationsExtraFields=補充屬性(評估) +NeedBusinessTravels=Need business travels diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang index a6f2aa7035d..ef83355b6b1 100644 --- a/htdocs/langs/zh_TW/install.lang +++ b/htdocs/langs/zh_TW/install.lang @@ -8,6 +8,7 @@ ConfFileIsNotWritable=配置文件%s不可寫入。檢查權限。對於 ConfFileIsWritable=配置文件%s可寫入。 ConfFileMustBeAFileNotADir=配置文件%s必須是一個檔案,而不是資料夾。 ConfFileReload=從配置文件中重新載入參數。 +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支援session。 @@ -16,13 +17,6 @@ PHPMemoryOK=您的PHP最大session記憶體設定為%s 。這應該足夠 PHPMemoryTooLow=您的PHP最大session記憶體為%sbytes。這太低了。更改您的php.ini,以將記憶體限制/b>參數設定為至少%sbytes。 Recheck=點擊這裡進行更詳細的測試 ErrorPHPDoesNotSupportSessions=您的PHP安裝不支援session。需要此功能才能使Dolibarr正常工作。檢查您的PHP設定和session目錄的權限。 -ErrorPHPDoesNotSupportGD=您的PHP安裝不支援GD圖形功能。將無法使用圖形。 -ErrorPHPDoesNotSupportCurl=您的PHP安裝不支援Curl。 -ErrorPHPDoesNotSupportCalendar=您的PHP安裝不支援php日曆外掛。 -ErrorPHPDoesNotSupportUTF8=您的PHP安裝不支援UTF8函數。 Dolibarr無法正常工作。必須在安裝Dolibarr之前修復此問題。 -ErrorPHPDoesNotSupportIntl=您的PHP安裝不支援Intl函數。 -ErrorPHPDoesNotSupportMbstring=您的 PHP 不支援 mbstring 函數。 -ErrorPHPDoesNotSupportxDebug=您的PHP安裝不支援擴展除錯功能。 ErrorPHPDoesNotSupport=您的PHP安裝不支援%s函數。 ErrorDirDoesNotExists=資料夾%s不存在。 ErrorGoBackAndCorrectParameters=返回並檢查/更正參數。 @@ -30,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。 @@ -211,8 +207,8 @@ MigrationImportOrExportProfiles=匯入或匯出設定的遷移(%s) ShowNotAvailableOptions=顯示不可用的選項 HideNotAvailableOptions=隱藏不可用的選項 ErrorFoundDuringMigration=在移轉過程中出現了錯誤,因此無法進行下一步。要忽略錯誤,可以點擊此處 ,但是在解決錯誤之前,該應用程序或某些功能可能無法正常運行。 -YouTryInstallDisabledByDirLock=該應用程式嘗試進行自我升級,但是出於安全性考慮,已禁用了安裝/升級頁面(使用.lock副檔名重新命名資料夾)。
    -YouTryInstallDisabledByFileLock=此應用程式嘗試進行自我升級,但是出於安全性考慮,已禁用了安裝/升級頁面(由於dolibarr檔案資料夾中存在鎖定文件install.lock )。
    +YouTryInstallDisabledByDirLock=此應用程式嘗試進行自我升級,但是出於安全性考慮,已停用了安裝/升級頁面(已使用.lock副檔名重新命名資料夾)。
    +YouTryInstallDisabledByFileLock=此應用程式嘗試進行自我升級,但是出於安全性考慮,已停用了安裝/升級頁面(由於dolibarr檔案資料夾中存在鎖定文件install.lock )。
    ClickHereToGoToApp=點擊此處前往您的應用程式 ClickOnLinkOrRemoveManualy=如果正在進行升級,請等待。如果沒有,請點擊以下連結。如果始終看到同一頁面,則必須在documents資料夾中刪除/重新命名install.lock檔案。 Loaded=已載入 diff --git a/htdocs/langs/zh_TW/interventions.lang b/htdocs/langs/zh_TW/interventions.lang index d06b69b3332..491df5da738 100644 --- a/htdocs/langs/zh_TW/interventions.lang +++ b/htdocs/langs/zh_TW/interventions.lang @@ -66,3 +66,5 @@ RepeatableIntervention=干預模板 ToCreateAPredefinedIntervention=要創建預定義或定期干預,請創建一個通用乾預並將其轉換為乾預模板 ConfirmReopenIntervention=您確定要打開干預 %s 嗎? GenerateInter=產生干預 +FichinterNoContractLinked=干預 %s 已在沒有連結合約的情況下建立。 +ErrorFicheinterCompanyDoesNotExist=公司不存在。干預尚未產生。 diff --git a/htdocs/langs/zh_TW/knowledgemanagement.lang b/htdocs/langs/zh_TW/knowledgemanagement.lang index 83fa3e35f01..a51c54fd32b 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=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/zh_TW/languages.lang b/htdocs/langs/zh_TW/languages.lang index 9fd55fdc345..f7cbc99c7a9 100644 --- a/htdocs/langs/zh_TW/languages.lang +++ b/htdocs/langs/zh_TW/languages.lang @@ -3,6 +3,7 @@ Language_am_ET=衣索比亞 Language_ar_AR=阿拉伯語 Language_ar_DZ=阿拉伯語(阿爾及利亞) Language_ar_EG=阿拉伯語(埃及) +Language_ar_JO=阿拉伯語(約旦) Language_ar_MA=阿拉伯語(摩洛哥) Language_ar_SA=阿拉伯語 Language_ar_TN=阿拉伯語(突尼斯) @@ -15,6 +16,7 @@ Language_bg_BG=保加利亞語 Language_bs_BA=波斯尼亞語 Language_ca_ES=加泰羅尼亞語 Language_cs_CZ=捷克语 +Language_cy_GB=威爾斯語 Language_da_DA=丹麥語 Language_da_DK=丹麥語 Language_de_DE=德語 @@ -22,6 +24,7 @@ Language_de_AT=德語(奧地利) Language_de_CH=德語(瑞士) Language_el_GR=希臘語 Language_el_CY=希臘語(塞浦路斯) +Language_en_AE=英語(阿拉伯聯合酋長國) Language_en_AU=英語(Australie) Language_en_CA=英語(加拿大) Language_en_GB=英語(英國) @@ -83,6 +86,7 @@ Language_lt_LT=立陶宛語 Language_lv_LV=拉脫維亞語 Language_mk_MK=馬其頓語 Language_mn_MN=蒙古語 +Language_my_MM=緬甸語 Language_nb_NO=挪威語(Bokmål) Language_ne_NP=尼泊爾語 Language_nl_BE=荷蘭語(比利時) @@ -95,6 +99,7 @@ Language_ro_MD=羅馬尼亞語(摩爾達維亞) Language_ro_RO=羅馬尼亞語 Language_ru_RU=俄語 Language_ru_UA=俄語(烏克蘭) +Language_ta_IN=泰米爾語 Language_tg_TJ=塔吉克語 Language_tr_TR=土耳其語 Language_sl_SI=斯洛文尼亞語 @@ -106,6 +111,7 @@ Language_sr_RS=塞爾維亞語 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/zh_TW/loan.lang b/htdocs/langs/zh_TW/loan.lang index c9b1a7e0870..d360a5d3099 100644 --- a/htdocs/langs/zh_TW/loan.lang +++ b/htdocs/langs/zh_TW/loan.lang @@ -24,7 +24,7 @@ FinancialCommitment=財務承諾 InterestAmount=利益 CapitalRemain=剩餘資本 TermPaidAllreadyPaid = 這表示已付款 -CantUseScheduleWithLoanStartedToPaid = 無法在已開始付款的借款中使用排程器 +CantUseScheduleWithLoanStartedToPaid = Can't generate a timeline for a loan with a payment started CantModifyInterestIfScheduleIsUsed = 如果您使用時間表,則無法修改利息 # Admin ConfigLoan=貸款模組設定 diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index b1b4465ec5b..2ebebd67743 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -244,6 +244,7 @@ Designation=詳細描述 DescriptionOfLine=說明行 DateOfLine=日期行 DurationOfLine=期間行 +ParentLine=母行 ID Model=文件範本 DefaultModel=預設文件範本 Action=事件 @@ -251,7 +252,7 @@ About=關於 Number=數量 NumberByMonth=每月報告總數 AmountByMonth=每月金額 -Numero=數量 +Numero=編號 Limit=限制 Limits=限制 Logout=登出 @@ -517,6 +518,7 @@ or=或 Other=其他 Others=其他 OtherInformations=其他資訊 +Workflow=工作流程 Quantity=數量 Qty=數量 ChangedBy=修改者 @@ -619,6 +621,7 @@ MonthVeryShort11=N MonthVeryShort12=D AttachedFiles=已附加檔案和文件 JoinMainDoc=加入主文件 +JoinMainDocOrLastGenerated=如果未找到,則發送主文件或最後產生的文件 DateFormatYYYYMM=YYYY - MM DateFormatYYYYMMDD=YYYY - MM - DD DateFormatYYYYMMDDHHMM=YYYY - MM - DD HH:SS @@ -709,6 +712,7 @@ FeatureDisabled=功能已關閉 MoveBox=移動小工具 Offered=已提供 NotEnoughPermissions=您沒有權限執行這個動作 +UserNotInHierachy=This action is reserved to the supervisors of this user SessionName=連線程序名稱 Method=方法 Receive=收到 @@ -798,6 +802,7 @@ URLPhoto=照片/logo的網址 SetLinkToAnotherThirdParty=連結到另一個合作方 LinkTo=連結到 LinkToProposal=連結到提案/建議書 +LinkToExpedition= Link to expedition LinkToOrder=連結到訂單 LinkToInvoice=連結到發票 LinkToTemplateInvoice=連結到發票範本 @@ -1164,3 +1169,14 @@ NotClosedYet=尚未關閉 ClearSignature=重置簽名 CanceledHidden=取消隱藏 CanceledShown=已取消顯示 +Terminate=終止 +Terminated=已終止 +AddLineOnPosition=在位置增加行(如果為空,則在末尾) +ConfirmAllocateCommercial=分配業務代表確認 +ConfirmAllocateCommercialQuestion=您確定要分配 %s 選定的記錄嗎? +CommercialsAffected=受影響的業務代表 +CommercialAffected=受影響的業務代表 +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/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang index 4ab25942376..b4c6a31ef51 100644 --- a/htdocs/langs/zh_TW/members.lang +++ b/htdocs/langs/zh_TW/members.lang @@ -15,7 +15,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=另一名會員(名稱:%s ErrorUserPermissionAllowsToLinksToItselfOnly=出於安全原因,必須授予您編輯所有用戶的權限,以便能夠將會員連結到其他用戶。 SetLinkToUser=連結Dolibarr用戶 SetLinkToThirdParty=連接到Dolibarr合作方 -MembersCards=會員名片 +MembersCards=產生會員卡 MembersList=會員清單 MembersListToValid=草案會員清單(待確認) MembersListValid=有效會員清單 @@ -35,7 +35,8 @@ DateEndSubscription=會員終止日 EndSubscription=終止會員 SubscriptionId=捐款編號 WithoutSubscription=沒有捐款 -MemberId=會員編號 +MemberId=Member Id +MemberRef=Member Ref NewMember=新會員 MemberType=會員類型 MemberTypeId=會員類型編號 @@ -159,11 +160,11 @@ HTPasswordExport=產生htpassword文件 NoThirdPartyAssociatedToMember=沒有與該會員關聯的合作方 MembersAndSubscriptions=會員和捐款 MoreActions=補充行動記錄 -MoreActionsOnSubscription=補充動作,在記錄捐款時預設建議 +MoreActionsOnSubscription=記錄捐款時預設建議的補充操作,也會在網上支付捐款時自動完成 MoreActionBankDirect=在銀行帳戶上建立直接條目 MoreActionBankViaInvoice=建立發票,並通過銀行帳戶付款 MoreActionInvoiceOnly=建立無付款的發票 -LinkToGeneratedPages=產生訪問卡 +LinkToGeneratedPages=產生名片或地址表 LinkToGeneratedPagesDesc=通過此畫面,您可以為所有會員或特定會員產生帶有名片的PDF文件。 DocForAllMembersCards=為所有會員產生名片 DocForOneMemberCards=為特定會員產生名片 @@ -218,3 +219,5 @@ XExternalUserCreated=已建立%s位外部用戶 ForceMemberNature=強制會員性質(個人或公司) CreateDolibarrLoginDesc=為會員建立用戶登錄允許他們連接到應用程式。例如,根據授予的授權,他們將能夠自己查閱或修改他們的檔案。 CreateDolibarrThirdPartyDesc=如果您決定為每筆捐款產生發票,合作方就是將使用在發票上的實體法人。您稍後可以在記錄捐款的過程中建立它。 +MemberFirstname=Member firstname +MemberLastname=Member lastname diff --git a/htdocs/langs/zh_TW/modulebuilder.lang b/htdocs/langs/zh_TW/modulebuilder.lang index 913db96eff9..d6a0cbbf963 100644 --- a/htdocs/langs/zh_TW/modulebuilder.lang +++ b/htdocs/langs/zh_TW/modulebuilder.lang @@ -1,14 +1,17 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=此工具只能由有經驗的用戶或開發人員使用。它提供了構建或編輯您自己的模組的實用程序。替代 手動開發的文件在此處 。 -EnterNameOfModuleDesc=輸入要新建的 模組/程式 名稱不留空白。使用大寫字母分隔單詞(例如:example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=輸入要新建的物件名稱不留空白。使用大寫字母分隔單詞(例如:MyObject, Student, Teacher...)。將生成 CRUD class 檔案,以及 API 檔案,頁面用來 列出/新增/編輯/刪除 對象及SQL的檔案將自動生成。 +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=已生成/已編輯 模組的路徑(外部模組的首個目錄定義為%s): %s ModuleBuilderDesc3=已找到 生成的/可編輯的模組: %s ModuleBuilderDesc4=當模組目錄的根目錄中存在檔案 %s 時,模組被偵測為"可編輯” NewModule=新模組 NewObjectInModulebuilder=新項目 +NewDictionary=New dictionary ModuleKey=模組金鑰 ObjectKey=項目金鑰 +DicKey=Dictionary key ModuleInitialized=模組初始化 FilesForObjectInitialized=初始化新項目'%s'的檔案 FilesForObjectUpdated=項目'%s'的檔案已更新(.sql檔案和.class.php檔案) @@ -52,7 +55,7 @@ LanguageFile=語言檔案 ObjectProperties=項目屬性 ConfirmDeleteProperty=您確定要刪除屬性 %s 嗎?這將更改 PHP 類別中的代碼,但也會從物件表格定義中刪除列。 NotNull=非空白 -NotNullDesc=1 = 將資料庫設定為 NOT NULL。 -1=如果為空('' 或 0),則允許為空並強制值為 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=用於“全部搜尋” DatabaseIndex=資料庫索引 FileAlreadyExists=檔案%s已存在 @@ -85,7 +88,7 @@ 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=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 +DisplayOnPdfDesc=在相容的 PDF 文件上顯示此欄位,您可以使用“位置”欄位管理位置。
    目前,已知的相容PDF模型是:eratosthene(訂單),espadon(發貨),sponge(發票),cyan(建議書 /報價),cornas(供應商訂單)

    對於文件:
    0 =不顯示
    1 =顯示
    2 =如果不為空則顯示

    對於文件行:
    0 =不顯示
    1 =在欄位顯示
    3 = 顯示在描述之後的欄位
    4 = 如果不為空則顯示在描述之後的描述欄位 DisplayOnPdf=以PDF顯示 IsAMeasureDesc=可以將可累積欄位的值以總和放入清單中嗎? (例如:1 或 0) SearchAllDesc=欄位是否用於快速搜尋工具進行搜尋? (範例:1 或 0) @@ -94,7 +97,7 @@ LanguageDefDesc=在此檔案中輸入每個語言檔案的所有密鑰和翻譯 MenusDefDesc=在此定義模組提供的選單 DictionariesDefDesc=在此定義您模組提供的字典 PermissionsDefDesc=在此定義模組提供的新權限 -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,8 +113,8 @@ DropTableIfEmpty=(如果為空,則刪除表) TableDoesNotExists=表%s不存在 TableDropped=表%s已刪除 InitStructureFromExistingTable=建立現有表的結構數組字串 -UseAboutPage=關閉關於頁面 -UseDocFolder=禁用文件資料夾 +UseAboutPage=Do not generate the About page +UseDocFolder=停用文件資料夾 UseSpecificReadme=使用特定的ReadMe檔案 ContentOfREADMECustomized=注意:README.md檔案的內容已替換為ModuleBuilder設定中定義的特定值。 RealPathOfModule=模組的真實路徑 @@ -127,9 +130,9 @@ UseSpecificEditorURL = 使用特定的編輯器網址 UseSpecificFamily = 使用特定的家族 UseSpecificAuthor = 使用特定作者 UseSpecificVersion = 使用特定的初始版本 -IncludeRefGeneration=項目參考必須自動產生 -IncludeRefGenerationHelp=如果要包含代碼以自動管理參考的產生成,請點選此選框 -IncludeDocGeneration=我想從項目產生一些文件 +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=如果選中此選項,將產生一些代碼以在記錄上增加“產生文件”框。 ShowOnCombobox=在組合框中顯示數值 KeyForTooltip=工具提示金鑰 @@ -138,10 +141,15 @@ 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' 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到HTML轉換器 AsciiToPdfConverter=ASCII到PDF轉換器 TableNotEmptyDropCanceled=表不為空。刪除已被取消。 ModuleBuilderNotAllowed=模組建構器可使用,但不允許您的用戶使用。 ImportExportProfiles=匯入和匯出設定檔 -ValidateModBuilderDesc=如果需要使用 $this->validateField() 驗證此欄位,則輸入 1;如果需要驗證,則輸入 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 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. diff --git a/htdocs/langs/zh_TW/mrp.lang b/htdocs/langs/zh_TW/mrp.lang index 1c07e85c477..ee445a17cbf 100644 --- a/htdocs/langs/zh_TW/mrp.lang +++ b/htdocs/langs/zh_TW/mrp.lang @@ -27,7 +27,7 @@ ConfirmCloneBillOfMaterials=您確定要複製物料清單%s嗎? ConfirmCloneMo=您確定要複製製造訂單%s嗎? ManufacturingEfficiency=製造效率 ConsumptionEfficiency=消費效率 -ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the manufacturing or the disassembly +ValueOfMeansLoss=數值 0.95 表示在製造或拆解過程中平均損失 5%% ValueOfMeansLossForProductProduced=值0.95表示損失平均5%%的生產產品 DeleteBillOfMaterials=刪除物料清單 DeleteMo=刪除製造訂單 @@ -69,6 +69,8 @@ ForAQuantityToConsumeOf=%s中拆解的數量 ConfirmValidateMo=您確定要驗證此製造訂單嗎? ConfirmProductionDesc=通過點擊“%s”,您將驗證數量設定的消耗量和/或生產量。這還將更新庫存並記錄庫存動向。 ProductionForRef=生產%s +CancelProductionForRef=取消產品 %s 的減少產品庫存 +TooltipDeleteAndRevertStockMovement=刪除行並恢復庫存移動 AutoCloseMO=如果達到消耗和生產的數量,則自動關閉製造訂單 NoStockChangeOnServices=服務無庫存變化 ProductQtyToConsumeByMO=開放MO仍要消耗的產品數量 @@ -107,3 +109,6 @@ THMEstimatedHelp=此費率使得可以定義物料的預估成本 BOM=材料清單 CollapseBOMHelp=您可以在 BOM 模組的設定中定義命名法詳細資訊的預設顯示 MOAndLines=製造訂單和生產線 +MoChildGenerate=Generate Child Mo +ParentMo=MO Parent +MOChild=MO Child diff --git a/htdocs/langs/zh_TW/oauth.lang b/htdocs/langs/zh_TW/oauth.lang index 0e443711506..74ed38d805e 100644 --- a/htdocs/langs/zh_TW/oauth.lang +++ b/htdocs/langs/zh_TW/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=使用您的OAuth供應商建立憑證時,請使用以下網址作為重新轉向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和Secret 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 Id 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/zh_TW/orders.lang b/htdocs/langs/zh_TW/orders.lang index 69553d342c3..09325b9dd00 100644 --- a/htdocs/langs/zh_TW/orders.lang +++ b/htdocs/langs/zh_TW/orders.lang @@ -68,6 +68,8 @@ CreateOrder=建立訂單 RefuseOrder=拒絕訂單 ApproveOrder=批准訂單 Approve2Order=批准訂單(第二級) +UserApproval=驗證用戶 +UserApproval2=驗證用戶(二級) ValidateOrder=驗證訂單 UnvalidateOrder=未驗證訂單 DeleteOrder=刪除訂單 @@ -102,6 +104,8 @@ ConfirmCancelOrder=您確定要取消此訂單嗎? ConfirmMakeOrder=您確定要確認您在%s下了訂單嗎? GenerateBill=產生發票 ClassifyShipped=分類為已出貨 +PassedInShippedStatus=分類為已出貨 +YouCantShipThis=我無法對此分類。請檢查用戶權限 DraftOrders=草案訂單 DraftSuppliersOrders=採購訂單草稿 OnProcessOrders=處理中的訂單 diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index 9b7b349d31b..d474dcb2a45 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -110,7 +110,7 @@ ChooseYourDemoProfilMore=...或建立您自己的設定檔案
    (手動選擇 DemoFundation=管理基金會會員 DemoFundation2=管理基金會會員與銀行帳戶 DemoCompanyServiceOnly=公司或自由業者僅能銷售服務 -DemoCompanyShopWithCashDesk=用收銀台管理商店 +DemoCompanyShopWithCashDesk=Manage a shop with a cash box DemoCompanyProductAndStocks=使用銷售點銷售產品的商店 DemoCompanyManufacturing=公司製造產品 DemoCompanyAll=有多項活動的公司(所有主要模組) @@ -303,3 +303,25 @@ SelectTheTypeOfObjectToAnalyze=選擇一個項目以查看其統計資訊... ConfirmBtnCommonContent = 您確定要“%s”嗎? ConfirmBtnCommonTitle = 確認您的操作 CloseDialog = 關閉 +Autofill = 自動填入 + +# externalsite +ExternalSiteSetup=設定連結到外部網站 +ExternalSiteURL=HTML iframe 內容的外部網站網址 +ExternalSiteModuleNotComplete=外部網站模組設定不正確。 +ExampleMyMenuEntry=我的選單條目 + +# 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/zh_TW/partnership.lang b/htdocs/langs/zh_TW/partnership.lang index c554f348d93..08b8202b490 100644 --- a/htdocs/langs/zh_TW/partnership.lang +++ b/htdocs/langs/zh_TW/partnership.lang @@ -59,6 +59,7 @@ BacklinkNotFoundOnPartnerWebsite=在合作夥伴網站上找不到反向連結 ConfirmClosePartnershipAsk=您確定要取消此合作關係嗎? PartnershipType=合作夥伴類型 PartnershipRefApproved=合作夥伴 %s 已核准 +KeywordToCheckInWebsite=如果您想檢查給定關鍵字是否出現在每個合作夥伴的網站中,請在此處定義此關鍵字 # # Template Mail @@ -90,3 +91,4 @@ PartnershipAccepted=已接受 PartnershipRefused=已拒絕 PartnershipCanceled=已取消 PartnershipManagedFor=合作夥伴是 + diff --git a/htdocs/langs/zh_TW/products.lang b/htdocs/langs/zh_TW/products.lang index 3df9decbaec..c8e3e27eee2 100644 --- a/htdocs/langs/zh_TW/products.lang +++ b/htdocs/langs/zh_TW/products.lang @@ -137,7 +137,8 @@ ConfirmDeleteProductLine=確定要刪除這項產品? ProductSpecial=特別 QtyMin=最小購買數量 PriceQtyMin=最小數量價格 -PriceQtyMinCurrency=此數量的價格(貨幣)。 (沒有折扣) +PriceQtyMinCurrency=此數量的價格(貨幣)。 +WithoutDiscount=無折扣 VATRateForSupplierProduct=營業稅率(此供應商/產品) DiscountQtyMin=此數量的折扣。 NoPriceDefinedForThisSupplier=沒有此供應商/產品定義的價格/數量 @@ -279,7 +280,7 @@ PriceCatalogue=每個產品/服務的單一銷售價格 PricingRule=售價規則 AddCustomerPrice=依客戶新增價格 ForceUpdateChildPriceSoc=為客戶子公司設定相同的價格 -PriceByCustomerLog=舊客戶價格的日誌 +PriceByCustomerLog=客戶價格變動紀錄 MinimumPriceLimit=最低價格不能低於%s MinimumRecommendedPrice=最低建議價格是:%s PriceExpressionEditor=價格表達編輯器 @@ -346,7 +347,7 @@ UseProductFournDesc=增加一個可以定義產品描述的功能,此由供應 ProductSupplierDescription=產品的供應商說明 UseProductSupplierPackaging=按照供應商價格使用包裝(在供應商文件中增加/更新行時,根據供應商價格上設定的包裝重新計算數量) PackagingForThisProduct=包裝 -PackagingForThisProductDesc=根據供應商訂單,您將自動訂購此數量(或此數量的倍數)。不能少於最低購買數量 +PackagingForThisProductDesc=您將自動採購此數量的倍數。 QtyRecalculatedWithPackaging=根據供應商的包裝重新計算了生產線的數量 #Attributes @@ -408,6 +409,21 @@ mandatoryHelper=如果您希望在建立/驗證發票、商業提案/建議書 DefaultBOM=預設物料清單 DefaultBOMDesc=推薦用於製造此產品的預設的物料清單。僅當產品性質為“%s”時才能設定此欄位。 Rank=等級 +MergeOriginProduct=重複產品(您要刪除的產品) +MergeProducts=合併產品 +ConfirmMergeProducts=您確定要將所選的產品與目前的產品合併嗎?所有連接的項目(發票、訂單……)都將移動到目前的產品,之後將刪除所選的產品。 +ProductsMergeSuccess=產品已合併 +ErrorsProductsMerge=產品合併錯誤 SwitchOnSaleStatus=開啟銷售狀態 SwitchOnPurchaseStatus=開啟採購狀態 -StockMouvementExtraFields= Extra Fields (stock mouvement) +StockMouvementExtraFields= 額外欄位(庫存移動) +InventoryExtraFields= 補充屬性(庫存) +ScanOrTypeOrCopyPasteYourBarCodes=掃描或填寫或複制/貼上您的條碼 +PuttingPricesUpToDate=使用目前已知的價格更新價格 +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 diff --git a/htdocs/langs/zh_TW/projects.lang b/htdocs/langs/zh_TW/projects.lang index b89b97cd164..904e83da591 100644 --- a/htdocs/langs/zh_TW/projects.lang +++ b/htdocs/langs/zh_TW/projects.lang @@ -6,7 +6,7 @@ ProjectLabel=專案標籤 ProjectsArea=專案區域 ProjectStatus=專案狀態 SharedProject=每一位 -PrivateProject=專案聯絡人 +PrivateProject=Assigned contacts ProjectsImContactFor=我是聯絡人的專案 AllAllowedProjects=我可以讀取的所有專案(我的+公共項目) AllProjects=所有專案 @@ -162,7 +162,7 @@ TaskDeletedInDolibarr=任務%s已刪除 OpportunityStatus=潛在狀態 OpportunityStatusShort=潛在狀態 OpportunityProbability=潛在可能性 -OpportunityProbabilityShort=潛在機率。 +OpportunityProbabilityShort=潛在機率 OpportunityAmount=潛在金額 OpportunityAmountShort=潛在金額 OpportunityWeightedAmount=機會加權金額 @@ -173,12 +173,12 @@ WonLostExcluded=不包含已獲得/遺失 ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=內部專案負責人 TypeContact_project_external_PROJECTLEADER=外部專案負責人 -TypeContact_project_internal_PROJECTCONTRIBUTOR=內部提案人 -TypeContact_project_external_PROJECTCONTRIBUTOR=外部提案人 +TypeContact_project_internal_PROJECTCONTRIBUTOR=內部-專案相關人員 +TypeContact_project_external_PROJECTCONTRIBUTOR=外部-專案相關人員 TypeContact_project_task_internal_TASKEXECUTIVE=執行任務 TypeContact_project_task_external_TASKEXECUTIVE=執行任務 -TypeContact_project_task_internal_TASKCONTRIBUTOR=內部提案人 -TypeContact_project_task_external_TASKCONTRIBUTOR=外部提案人 +TypeContact_project_task_internal_TASKCONTRIBUTOR=內部-專案相關人員 +TypeContact_project_task_external_TASKCONTRIBUTOR=外部-專案相關人員 SelectElement=選擇元件 AddElement=連結到元件 LinkToElementShort=連結到 @@ -190,6 +190,7 @@ PlannedWorkload=計劃的工作量 PlannedWorkloadShort=工作量 ProjectReferers=相關項目 ProjectMustBeValidatedFirst=必須先驗證專案 +MustBeValidatedToBeSigned=%s 首先必須經過驗證才能設置為已簽名。 FirstAddRessourceToAllocateTime=分配用戶資源作為專案聯絡人以分配時間 InputPerDay=每天輸入 InputPerWeek=每週輸入 @@ -197,7 +198,7 @@ InputPerMonth=每月輸入 InputDetail=輸入詳細訊息 TimeAlreadyRecorded=這是為此任務/天和用戶%s已經記錄的花費時間 ProjectsWithThisUserAsContact=與此用戶聯絡人的專案 -ProjectsWithThisContact=Projects with this contact +ProjectsWithThisContact=此聯絡人的專案 TasksWithThisUserAsContact=分配給此用戶的任務 ResourceNotAssignedToProject=未分配給專案 ResourceNotAssignedToTheTask=未分配給任務 @@ -233,13 +234,13 @@ OppStatusPROSP=潛在機會 OppStatusQUAL=符合資格條件 OppStatusPROPO=提案/建議書 OppStatusNEGO=談判交涉 -OppStatusPENDING=待辦中 +OppStatusPENDING=等待中 OppStatusWON=獲得 OppStatusLOST=失去 Budget=預算 AllowToLinkFromOtherCompany=允許連結其他公司的專案

    支援的值:
    -保留為空:可以連結公司的任何專案(預設)
    -“全部”:可以連結任何專案,甚至其他公司的專案
    -用逗號分隔的合作方ID清單:可以連結這些合作方的所有專案(例如:123,4795,53)
    -LatestProjects=最新%s的專案 -LatestModifiedProjects=最新%s件修改專案 +LatestProjects=最新%s項專案 +LatestModifiedProjects=最新%s項修改專案 OtherFilteredTasks=其他已篩選任務 NoAssignedTasks=找不到分配的任務(從頂部選擇框向目前用戶分配專案/任務以輸入時間) ThirdPartyRequiredToGenerateInvoice=必須在專案上定義合作方才能開立發票。 @@ -285,5 +286,11 @@ PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE_help=注意:所有任務進度為 SelectLinesOfTimeSpentToInvoice=選擇未計費的時間行,然後批次操作“產生發票”來計費 ProjectTasksWithoutTimeSpent=無需時間花費的專案任務 FormForNewLeadDesc=感謝您填寫以下表單與我們聯繫。您也可以直接發送電子郵件至 %s 。 -ProjectsHavingThisContact=Projects having this contact +ProjectsHavingThisContact=有此聯絡人的專案 StartDateCannotBeAfterEndDate=結束日期不能早於開始日期 +ErrorPROJECTLEADERRoleMissingRestoreIt=“專案負責人”角色遺失或已停用,請在聯絡人類型分類中恢復此分類 +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 diff --git a/htdocs/langs/zh_TW/propal.lang b/htdocs/langs/zh_TW/propal.lang index 9b718dad63f..c1272432cf5 100644 --- a/htdocs/langs/zh_TW/propal.lang +++ b/htdocs/langs/zh_TW/propal.lang @@ -54,6 +54,7 @@ NoDraftProposals=沒有提案/建議書草稿 CopyPropalFrom=複製現有的商業提案/建議書建立商業提案/建議書 CreateEmptyPropal=建立空白的商業提案或從產品/服務清單中建立 DefaultProposalDurationValidity=預設的商業提案/建議書有效期(天數) +DefaultPuttingPricesUpToDate=預設情況下,在複製提案/建議書時使用目前已知的價格更新價格 UseCustomerContactAsPropalRecipientIfExist=如果已定義,請使用類型為“追蹤提案聯絡人”的聯絡人/地址,而不是使用合作方地址作為建議收件人地址 ConfirmClonePropal=您確定您要完整複製商業提案/建議書%s? ConfirmReOpenProp=您確定要再打開商業提案/建議書%s嗎? @@ -85,13 +86,26 @@ ProposalCustomerSignature=書面驗收,公司印章,日期和簽名 ProposalsStatisticsSuppliers=供應商提案/建議書統計 CaseFollowedBy=案件追蹤者 SignedOnly=僅簽名 +NoSign=設定為未簽名 +NoSigned=設定為未簽名 +CantBeNoSign=無法設定為未簽名 +ConfirmMassNoSignature=批次未簽名設定確認 +ConfirmMassNoSignatureQuestion=您確定要將選擇的紀錄設定為未簽名嗎? +IsNotADraft=不是草案 +PassedInOpenStatus=已被驗證 +Sign=簽名 +Signed=已簽名 +ConfirmMassValidation=批次驗證確認 +ConfirmMassSignature=批次簽名確認 +ConfirmMassValidationQuestion=您確定要驗證所選擇的記錄嗎? +ConfirmMassSignatureQuestion=您確定要簽署所選擇記錄嗎? IdProposal=方案/提案編號 IdProduct=產品編號 -PrParentLine=方案/提案主行 LineBuyPriceHT=購買價格扣除稅額 SignPropal=接受提案/建議書 RefusePropal=拒絕提案/建議書 Sign=簽名 +NoSign=設定為未簽名 PropalAlreadySigned=提案/建議書已被接受 PropalAlreadyRefused=提案/建議書已被拒絕 PropalSigned=提案/建議書已接受 diff --git a/htdocs/langs/zh_TW/recruitment.lang b/htdocs/langs/zh_TW/recruitment.lang index 83032f0b44d..5164dc873e5 100644 --- a/htdocs/langs/zh_TW/recruitment.lang +++ b/htdocs/langs/zh_TW/recruitment.lang @@ -74,3 +74,5 @@ JobClosedTextCanceled=此職位已關閉。 ExtrafieldsJobPosition=補充屬性(職位) ExtrafieldsApplication=補充屬性(工作申請) MakeOffer=同意要求的薪資 +WeAreRecruiting=我們正在招聘。這是一個待填補的空缺職位清單... +NoPositionOpen=暫時沒有職位空缺 diff --git a/htdocs/langs/zh_TW/stocks.lang b/htdocs/langs/zh_TW/stocks.lang index b8f45dce406..b91d99a98cd 100644 --- a/htdocs/langs/zh_TW/stocks.lang +++ b/htdocs/langs/zh_TW/stocks.lang @@ -176,7 +176,7 @@ ProductStockWarehouseCreated=已正確產生庫存限制警報和需求最佳庫 ProductStockWarehouseUpdated=已正確更新庫存限制警報和需求最佳庫存 ProductStockWarehouseDeleted=已正確刪除庫存限制警報和需求最佳庫存 AddNewProductStockWarehouse=設定新限制警報和所需最佳庫存 -AddStockLocationLine=減少數量,然後點擊來新增此產品的另一個倉庫 +AddStockLocationLine=減少數量然後點擊以進行分拆行 InventoryDate=庫存日期 Inventories=庫存(s) NewInventory=新庫存 @@ -254,7 +254,7 @@ ReOpen=重新打開 ConfirmFinish=您確定要關閉此盤點嗎?這將使得產生所有庫存移動並且更新您庫存中的真實數量。 ObjectNotFound=未發現%s MakeMovementsAndClose=產生移動並關閉 -AutofillWithExpected=用預期數量替換實際數量 +AutofillWithExpected=用預期數量填入實際數量 ShowAllBatchByDefault=預設,在產品"庫存"分頁顯示批次詳細資料 CollapseBatchDetailHelp=您可以在庫存模組設定中設定預設顯示批次詳細資料 ErrorWrongBarcodemode=未知條碼模式 @@ -265,9 +265,53 @@ ProductBarcodeDoesNotExist=此條碼的產品不存在 WarehouseId=倉庫編號 WarehouseRef=倉庫名稱 SaveQtyFirst=在詢問建立庫存變動之前,首先儲存實際庫存數量。 +ToStart=開始 InventoryStartedShort=已開始 ErrorOnElementsInventory=操作因為以下原因取消: ErrorCantFindCodeInInventory=在庫存中找不到以下代號 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/ticket.lang b/htdocs/langs/zh_TW/ticket.lang index a8519eee662..8260468fbfc 100644 --- a/htdocs/langs/zh_TW/ticket.lang +++ b/htdocs/langs/zh_TW/ticket.lang @@ -90,15 +90,17 @@ TicketPublicAccess=以下網址提供了無需認證的公共界面 TicketSetupDictionaries=服務單類型,嚴重性和分析代碼可前往分類進行設定 TicketParamModule=模組變數設定 TicketParamMail=電子郵件設定 -TicketEmailNotificationFrom=電子郵件通知寄件人 -TicketEmailNotificationFromHelp=已在服務單中使用範例訊息回覆 -TicketEmailNotificationTo=電子郵件通知收件人 -TicketEmailNotificationToHelp=發送電子郵件通知到此地址。 +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=建立服務單後發送的訊息 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=可以為網站伺服器定義別名,使得公共界面可以與另一個網址一起使用(伺服器必須充當此新網址的代理) @@ -131,11 +133,23 @@ TicketsAutoAssignTicketHelp=建立服務單時,可以自動將用戶分配給 TicketNumberingModules=服務單編號模組 TicketsModelModule=服務單的文件範本 TicketNotifyTiersAtCreation=建立時通知合作方 -TicketsDisableCustomerEmail=從公共界面建立服務單時,始終禁用電子郵件 +TicketsDisableCustomerEmail=從公共界面建立服務單時,停用發送電子郵件 TicketsPublicNotificationNewMessage=當有新的訊息/意見新增到服務單時寄送Email TicketsPublicNotificationNewMessageHelp=當公共界面有新增訊息時寄送電子郵件(給已分配用戶或寄送通知電子郵件給(更新)與/或通知電子郵件給) TicketPublicNotificationNewMessageDefaultEmail=通知電子郵件寄送到(更新) TicketPublicNotificationNewMessageDefaultEmailHelp=如果服務單未分配給用戶或是用戶沒有已知的電子郵件則為每一個新訊息提醒寄送一封電子郵件至這個信箱 +TicketsAutoReadTicket=自動將服務單標記為已讀取(從後台建立時) +TicketsAutoReadTicketHelp=從後台建立服務單時自動將服務單標記為已讀取。從公共界面建立服務單時,服務單狀態保持為“未讀取”狀態。 +TicketsDelayBeforeFirstAnswer=新服務單應該在多久之內收到第一個回覆(小時): +TicketsDelayBeforeFirstAnswerHelp=如果新服務單在此時間之後仍未收到回覆(小時),清單視圖中將顯示一個重要的警告標誌。 +TicketsDelayBetweenAnswers=未解決的服務單在多久內不應該是非活動狀態(小時): +TicketsDelayBetweenAnswersHelp=如果已收到回覆的未解決服務單在此時間內(小時)沒有進一步的互動,則清單視圖中將顯示一個警告標誌。 +TicketsAutoNotifyClose=關閉服務單時自動通知合作方 +TicketsAutoNotifyCloseHelp=關閉服務單時,系統會建議您向合作方的其中一位聯絡人發送訊息。在批次關閉時,將向與連結到服務單的合作方聯絡人發送一則訊息。 +TicketWrongContact=提供的聯絡人不屬於目前服務單的聯絡人。電子郵件未發送。 +TicketChooseProductCategory=服務單支援的產品類別 +TicketChooseProductCategoryHelp=選擇服務單支援的產品類別。這將用於自動將合約連結到服務單。 + # # Index & list page # @@ -151,6 +165,8 @@ OrderByDateAsc=依日期升序排序 OrderByDateDesc=依日期降序排序 ShowAsConversation=顯示為對話清單 MessageListViewType=顯示為表格列表 +ConfirmMassTicketClosingSendEmail=關閉服務單時自動發送電子郵件 +ConfirmMassTicketClosingSendEmailQuestion=您想在關閉這些服務單時通知合作方嗎? # # Ticket card @@ -205,12 +221,12 @@ ErrorMailRecipientIsEmptyForSendTicketMessage=收件人為空。未發送電子 TicketGoIntoContactTab=請進入“通訊錄”標籤中進行選擇 TicketMessageMailIntro=介紹 TicketMessageMailIntroHelp=此段文字只會加到電子郵件的開頭,不會被保存。 -TicketMessageMailIntroLabelAdmin=發送電子郵件時的訊息簡介 -TicketMessageMailIntroText=你好,
    在您聯絡的服務單上有新的回覆。這是消息:
    +TicketMessageMailIntroLabelAdmin=所有服務單回應的訊息簡介 +TicketMessageMailIntroText=你好,
    在您聯絡的服務單上有新的回覆。訊息為:
    TicketMessageMailIntroHelpAdmin=此段文字將插入到服務單回應文字之前。 TicketMessageMailSignature=電子郵件簽名 TicketMessageMailSignatureHelp=此段文字只會加到電子郵件的底部,不會被保存。 -TicketMessageMailSignatureText=

    真誠的

    -

    +TicketMessageMailSignatureText= %s 以 Dolibarr 發送的訊息 TicketMessageMailSignatureLabelAdmin=回覆電子郵件的簽名 TicketMessageMailSignatureHelpAdmin=此段文字將插入到回覆訊息之後。 TicketMessageHelp=此段文字將會被儲存在服務單卡片的訊息清單中。 @@ -238,9 +254,16 @@ TicketChangeStatus=變更狀態 TicketConfirmChangeStatus=確認狀態更改:%s? TicketLogStatusChanged=狀態已更改:%s到%s TicketNotNotifyTiersAtCreate=建立時不通知公司 +NotifyThirdpartyOnTicketClosing=關閉服務單時要通知的聯絡人 +TicketNotifyAllTiersAtClose=所有相關的聯絡人 +TicketNotNotifyTiersAtClose=無相關的聯絡人 Unread=未讀 TicketNotCreatedFromPublicInterface=無法使用。服務單不是從公共界面建立的。 ErrorTicketRefRequired=服務單參考名稱為必填 +TicketsDelayForFirstResponseTooLong=自從服務單開啟以來已經過去了太多時間而沒有任何答案。 +TicketsDelayFromLastResponseTooLong=此服務單自從最後一次的回覆以來已過去了太多時間。 +TicketNoContractFoundToLink=沒有發現可以自動連結至此服務單的合約。請手動連結合約。 +TicketManyContractsLinked=有許多合約已自動連結至此服務單。請確認應該選擇哪一個合約。 # # Logs @@ -268,8 +291,9 @@ TicketNewEmailBody=這是一封自動電子郵件,用於確認您已註冊新 TicketNewEmailBodyCustomer=這是一封自動電子郵件,用於確認您的帳戶中剛剛建立了新服務單。 TicketNewEmailBodyInfosTicket=服務單監控資訊 TicketNewEmailBodyInfosTrackId=服務單追蹤編號:%s -TicketNewEmailBodyInfosTrackUrl=您可以通過點擊上面的連結查看服務單的進度。 +TicketNewEmailBodyInfosTrackUrl=您可以通過點擊上面的連結查看服務單的進度 TicketNewEmailBodyInfosTrackUrlCustomer=您可以通過點擊以下連結在特定界面中查看服務單的進度 +TicketCloseEmailBodyInfosTrackUrlCustomer=您可以通過點擊以下連結查看此服務單的歷史紀錄 TicketEmailPleaseDoNotReplyToThisEmail=請不要直接回覆此電子郵件!請使用回覆連結。 TicketPublicInfoCreateTicket=此表格使您可以在我們的管理系統中記錄支援服務單。 TicketPublicPleaseBeAccuratelyDescribe=請準確描述問題。提供盡可能多的訊息使我們能夠正確辨別您的要求。 @@ -291,6 +315,10 @@ NewUser=新用戶 NumberOfTicketsByMonth=每月服務單總數量 NbOfTickets=服務單數量 # notifications +TicketCloseEmailSubjectCustomer=服務單已關閉 +TicketCloseEmailBodyCustomer=這是一條自動通知,通知您服務單 %s 剛剛已關閉。 +TicketCloseEmailSubjectAdmin=服務單已關閉 - Réf %s(公共服務單 ID %s) +TicketCloseEmailBodyAdmin=ID 為 #%s 的服務單剛剛已關閉,請查閱資訊: TicketNotificationEmailSubject=服務單%s已更新 TicketNotificationEmailBody=這是一條自動訊息,通知您服務單%s剛剛更新 TicketNotificationRecipient=通知收件人 diff --git a/htdocs/langs/zh_TW/users.lang b/htdocs/langs/zh_TW/users.lang index 4946ae61d25..f1f851148d6 100644 --- a/htdocs/langs/zh_TW/users.lang +++ b/htdocs/langs/zh_TW/users.lang @@ -75,21 +75,21 @@ Reactivate=重新啟用 CreateInternalUserDesc=此表單使您可以在公司/組織中建立內部用戶。要建立外部用戶(客戶,供應商等),請使用該第三方聯絡卡中的“建立Dolibarr用戶”按鈕。 InternalExternalDesc=連絡人 內部 用戶是屬於您公司/組織的用戶,或者是您組織外部的合作夥伴用戶,可能需要查看比其公司相關的資料更多的資料(權限系統將定義他可以或不可以看或做什麼)。
    一個 外部 用戶是客戶、供應商或其他僅可以查看與自己相關的資料的用戶(可以從合作方的通訊錄中為合作方建立外部用戶)。

    在這兩種情況下,您都必須授予用戶所需功能的權限。 PermissionInheritedFromAGroup=因為從權限授予一個用戶的一組繼承。 -Inherited=繼承 -UserWillBe=建立的用戶將是 +Inherited=已繼承 +UserWillBe=已建立的用戶將是 UserWillBeInternalUser=建立的用戶將是一個內部用戶(因為沒有連結到一個特定的第三方) UserWillBeExternalUser=建立的用戶將是外部用戶(因為連結到一個特定的第三方) IdPhoneCaller=手機來電者身份 -NewUserCreated=建立用戶%s +NewUserCreated=用戶%s已建立 NewUserPassword=%變動的密碼 NewPasswordValidated=您的新密碼已通過驗證,必須立即用於登錄。 -EventUserModified=用戶%s修改 +EventUserModified=用戶%s已修改 UserDisabled=用戶%s已關閉 -UserEnabled=用戶%s啟動 -UserDeleted=使用者%s刪除 -NewGroupCreated=集團建立%s的 +UserEnabled=用戶%s已啟動 +UserDeleted=使用者%s已刪除 +NewGroupCreated=群組%s已建立 GroupModified=群組 %s 已修改 -GroupDeleted=群組%s刪除 +GroupDeleted=群組%s已刪除 ConfirmCreateContact=您確定要為此聯絡人建立一個Dolibarr帳戶嗎? ConfirmCreateLogin=您確定要為此會員建立Dolibarr帳戶嗎? ConfirmCreateThirdParty=您確定要為此會員建立合作方(客戶/供應商)嗎? @@ -114,7 +114,7 @@ UserLogoff=用戶登出 UserLogged=用戶登入 DateOfEmployment=到職日期 DateEmployment=雇傭期間 -DateEmploymentstart=入職日期 +DateEmploymentStart=入職日期 DateEmploymentEnd=離職日期 RangeOfLoginValidity=訪問有效日期範圍 CantDisableYourself=您不能關閉自己的用戶記錄 @@ -124,3 +124,7 @@ ValidatorIsSupervisorByDefault=預設情況下,驗證者是用戶的主管。 UserPersonalEmail=私人信箱 UserPersonalMobile=私人手機 WarningNotLangOfInterface=警告,這是用戶使用的主要語言,而不是他選擇查看的界面語言。要更改該用戶可見的界面語言,請前往分頁%s +DateLastLogin=上次登入日期 +DatePreviousLogin=以前登入的日期 +IPLastLogin=上次登入的IP +IPPreviousLogin=以前登入的IP diff --git a/htdocs/langs/zh_TW/withdrawals.lang b/htdocs/langs/zh_TW/withdrawals.lang index 46af748ad84..1bd4ca264db 100644 --- a/htdocs/langs/zh_TW/withdrawals.lang +++ b/htdocs/langs/zh_TW/withdrawals.lang @@ -31,6 +31,7 @@ SupplierInvoiceWaitingWithdraw=供應商發票等待通過信用轉帳付款 InvoiceWaitingWithdraw=等待直接轉帳付款的發票 InvoiceWaitingPaymentByBankTransfer=等待信用轉帳付款的發票 AmountToWithdraw=提款金額 +AmountToTransfer=轉帳金額 NoInvoiceToWithdraw=沒有為“ %s”打開的發票等待中。前往發票卡上的分頁“ %s”上產生請求。 NoSupplierInvoiceToWithdraw=沒有含有'直接轉帳付款要求'的供應商發票等待中. 前往發票'%s'分頁產生要求. ResponsibleUser=用戶負責 @@ -136,6 +137,7 @@ SEPAFRST=SEPA FRST ExecutionDate=執行日期 CreateForSepa=建立直接轉帳付款檔案 ICS=債權人識別碼 - ICS +IDS=借方ID END_TO_END="EndToEndId" SEPA XML標籤- 每筆交易分配的唯一ID USTRD="Unstructured" SEPA XML標籤 ADDDAYS=將天數加到執行日期 @@ -154,3 +156,4 @@ ErrorICSmissing=銀行帳戶%s遺失ICS TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=直接借記訂單總金額與行的總和不同 WarningSomeDirectDebitOrdersAlreadyExists=警告:已經有一些待處理的直接借記訂單 (%s) 請求金額為 %s WarningSomeCreditTransferAlreadyExists=警告:已請求金額為 %s 的一些待處理信用轉帳 (%s) +UsedFor=用於 %s diff --git a/htdocs/langs/zh_TW/workflow.lang b/htdocs/langs/zh_TW/workflow.lang index 10476adf836..76f299ea694 100644 --- a/htdocs/langs/zh_TW/workflow.lang +++ b/htdocs/langs/zh_TW/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=在建立服務單時,自動建立干預。 # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=將銷售訂單設定為開票時(如果訂單金額與已簽名的連接提案之總金額相同),將連接之提案分類為已開票 descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=當已開立客戶發票時(如果發票金額與已簽名的連接之提案的總金額相同),將連接之提案分類為已開票 @@ -22,9 +23,14 @@ descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION=在驗證收貨時將連結的來 descWORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED=收貨結束時將連結的來源採購訂單分類為已收貨(如果所有收貨的數量與要更新的採購訂單中的數量相同) # Autoclassify purchase invoice descWORKFLOW_BILL_ON_RECEPTION=驗證連結的供應商訂單後,將接收分類為“已開票” +# Automatically link ticket to contract +descWORKFLOW_TICKET_LINK_CONTRACT=當建立服務單時,連結符合之合作方的可用合約 +descWORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS=當連結合約時,在母公司的合約中搜尋 # Autoclose intervention descWORKFLOW_TICKET_CLOSE_INTERVENTION=關閉服務單後,關閉與服務單連結的所有干預措施 AutomaticCreation=自動建立 AutomaticClassification=自動分類 # Autoclassify shipment descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=驗證客戶發票後,將已連結的裝運來源分類為已關閉 +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").''; // Bank account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''.$langs->trans("Account").''; $form->select_comptes(GETPOST("accountid"), "accountid", 0, "courant=1", 1); // Show list of bank account with courant print ''; @@ -309,7 +310,7 @@ if ($action == 'create') { print ''.$langs->trans("Insurance").''; // 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 ''.$langs->trans("LoanAccountancyCapitalCode").''; print ''; @@ -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 ''; print ''; } else { - print ''.$langs->trans("LoanCapital").''.price($object->capital, 0, $outputlangs, 1, -1, -1, $conf->currency).''; + print ''.$langs->trans("LoanCapital").''.price($object->capital, 0, $outputlangs, 1, -1, -1, $conf->currency).''; } // Insurance @@ -482,7 +483,7 @@ if ($id > 0) { print ''; print ''; } else { - print ''.$langs->trans("Insurance").''.price($object->insurance_amount, 0, $outputlangs, 1, -1, -1, $conf->currency).''; + print ''.$langs->trans("Insurance").''.price($object->insurance_amount, 0, $outputlangs, 1, -1, -1, $conf->currency).''; } // Date start @@ -532,7 +533,7 @@ if ($id > 0) { print $langs->trans("LoanAccountancyCapitalCode"); print ''; - 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 37ab6194da5..81a00904794 100644 --- a/htdocs/loan/class/loan.class.php +++ b/htdocs/loan/class/loan.class.php @@ -220,19 +220,19 @@ 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; } - if (($conf->accounting->enabled) && empty($this->account_capital)) { + if (isModEnabled('accounting') && empty($this->account_capital)) { $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("LoanAccountancyCapitalCode")); return -2; } - if (($conf->accounting->enabled) && empty($this->account_insurance)) { + if (isModEnabled('accounting') && empty($this->account_insurance)) { $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("LoanAccountancyInsuranceCode")); return -2; } - if (($conf->accounting->enabled) && empty($this->account_interest)) { + if (isModEnabled('accounting') && empty($this->account_interest)) { $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("LoanAccountancyInterestCode")); return -2; } @@ -690,7 +690,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 +700,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/paymentloan.class.php b/htdocs/loan/class/paymentloan.class.php index ae31a8314aa..3ce8af01790 100644 --- a/htdocs/loan/class/paymentloan.class.php +++ b/htdocs/loan/class/paymentloan.class.php @@ -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..49618d0f46c 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) { diff --git a/htdocs/loan/list.php b/htdocs/loan/list.php index f9b08a63a48..146c0521a61 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'; 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..6c302feddac 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).''; // Bank account -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { if ($payment->bank_account) { $bankline = new AccountLine($db); $bankline->fetch($payment->bank_line); diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php index 47fa5b37846..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++; } @@ -244,7 +245,7 @@ if ($action == 'create') { if ($resql) { $obj = $db->fetch_object($resql); $sumpaid = $obj->total; - $db->free(); + $db->free($resql); } print ''; @@ -293,6 +294,7 @@ if ($action == 'create') { print ''; print ''.$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 "\n"; print ''; @@ -300,10 +302,11 @@ if ($action == 'create') { print ''; print ''.$langs->trans('AccountToDebit').''; print ''; + 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 ''; - // Number + // Number print ''.$langs->trans('Numero'); print ' ('.$langs->trans("ChequeOrTransferNumber").')'; 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 ''; + $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..bcfb1b83d6e 100644 --- a/htdocs/mailmanspip/class/mailmanspip.class.php +++ b/htdocs/mailmanspip/class/mailmanspip.class.php @@ -141,7 +141,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 805d7b9e105..9969ea061e9 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -109,10 +109,11 @@ function testSqlAndScriptInject($val, $type) // We check string because some hacks try to obfuscate evil strings by inserting non printable chars. Example: 'java(ascci09)scr(ascii00)ipt' is processed like 'javascript' (whatever is place of evil ascii char) // We should use dol_string_nounprintableascii but function is not yet loaded/available // Example of valid UTF8 chars: - // utf8=utf8mb3: '\x0A', '\x0D', '\x7E' + // utf8=utf8mb3: '\x09', '\x0A', '\x0D', '\x7E' // utf8=utf8mb3: '\xE0\xA0\x80' // utf8mb4: '\xF0\x9D\x84\x9E' (but this may be refused by the database insert if pagecode is utf8=utf8mb3) - $newval = preg_replace('/[\x00-\x09\x0B-\x0C\x0E-\x1F\x7F]/u', '', $val); // /u operator makes UTF8 valid characters being ignored so are not included into the replace + $newval = preg_replace('/[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F]/u', '', $val); // /u operator makes UTF8 valid characters being ignored so are not included into the replace + // Note that $newval may also be completely empty '' when non valid UTF8 are found. if ($newval != $val) { // If $val has changed after removing non valid UTF8 chars, it means we have an evil string. @@ -130,7 +131,7 @@ function testSqlAndScriptInject($val, $type) $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_ONLY_LOGIN_ALLOWED)) { register_shutdown_function('dol_shutdown'); // Load debugbar -if (!empty($conf->debugbar->enabled) && !GETPOST('dol_use_jmobile') && empty($_SESSION['dol_use_jmobile'])) { +if (isModEnabled('debugbar') && !GETPOST('dol_use_jmobile') && empty($_SESSION['dol_use_jmobile'])) { global $debugbar; include_once DOL_DOCUMENT_ROOT.'/debugbar/class/DebugBar.php'; $debugbar = new DolibarrDebugBar(); @@ -479,10 +480,13 @@ if ((!empty($conf->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; + } } } @@ -496,6 +500,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; @@ -532,7 +538,7 @@ if ((!defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && getDolGlobalInt( } // 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 || @@ -541,12 +547,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')) { @@ -561,15 +567,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'); @@ -845,12 +851,16 @@ if (!defined('NOLOGIN')) { // 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); 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; } @@ -1149,6 +1159,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 + } } @@ -1231,8 +1246,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 @@ -1339,15 +1353,16 @@ if (!function_exists("llxHeader")) { * @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails) * @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'. * @param string $replacemainareaby Replace call to main_area() by a print of this string - * @param int $disablenofollow Disable the "nofollow" on page + * @param int $disablenofollow Disable the "nofollow" on meta robot header + * @param int $disablenoindex Disable the "noindex" on meta robot header * @return void */ - function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0) + 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); + top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss, 0, $disablenofollow, $disablenoindex); $tmpcsstouse = 'sidebar-collapse'.($morecssonbody ? ' '.$morecssonbody : ''); // If theme MD and classic layer, we open the menulayer by default. @@ -1364,12 +1379,18 @@ 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')) { + 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)) { + 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 } @@ -1401,23 +1422,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")); @@ -1437,16 +1465,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', we want more so we use 'same-origin' so we don't send any referrer when going into another web site + 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()); } /** @@ -1460,10 +1501,11 @@ function top_httphead($contenttype = 'text/html', $forcenocache = 0) * @param array $arrayofjs Array of complementary js files * @param array $arrayofcss Array of complementary css files * @param int $disableforlogin Do not load heavy js and css for login pages - * @param int $disablenofollow Disable no follow tag + * @param int $disablenofollow Disable nofollow tag for meta robots + * @param int $disablenoindex Disable noindex tag for meta robots * @return void */ -function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $disableforlogin = 0, $disablenofollow = 0) +function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $disableforlogin = 0, $disablenofollow = 0, $disablenoindex = 0) { global $db, $conf, $langs, $user, $mysoc, $hookmanager; @@ -1494,7 +1536,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr // Displays meta print ''."\n"; - print ''."\n"; // Do not index + print ''."\n"; // Do not index print ''."\n"; // Scale for mobile device print ''."\n"; if (getDolGlobalInt('MAIN_FEATURES_LEVEL')) { @@ -1569,7 +1611,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')) { @@ -1749,7 +1791,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr if (!$disablejs && !empty($conf->use_javascript_ajax)) { // CKEditor - if (empty($disableforlogin) && (!empty($conf->fckeditor->enabled) && (empty($conf->global->FCKEDITOR_EDITORNAME) || $conf->global->FCKEDITOR_EDITORNAME == 'ckeditor') && !defined('DISABLE_CKEDITOR')) || defined('FORCE_CKEDITOR')) { + if (empty($disableforlogin) && (isModEnabled('fckeditor') && (empty($conf->global->FCKEDITOR_EDITORNAME) || $conf->global->FCKEDITOR_EDITORNAME == 'ckeditor') && !defined('DISABLE_CKEDITOR')) || defined('FORCE_CKEDITOR')) { print ''."\n"; $pathckeditor = DOL_URL_ROOT.'/includes/ckeditor/ckeditor/'; $jsckeditor = 'ckeditor.js'; @@ -1777,7 +1819,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr // Browser notifications (if NOREQUIREMENU is on, it is mostly a page for popup, so we do not enable notif too. We hide also for public pages). if (!defined('NOBROWSERNOTIF') && !defined('NOREQUIREMENU') && !defined('NOLOGIN')) { $enablebrowsernotif = false; - if (!empty($conf->agenda->enabled) && !empty($conf->global->AGENDA_REMINDER_BROWSER)) { + if (isModEnabled('agenda') && !empty($conf->global->AGENDA_REMINDER_BROWSER)) { $enablebrowsernotif = true; } if ($conf->browser->layout == 'phone') { @@ -1956,7 +1998,7 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead } // Link to module builder - if (!empty($conf->modulebuilder->enabled)) { + if (isModEnabled('modulebuilder')) { $text = ''; //$text.= img_picto(":".$langs->trans("ModuleBuilder"), 'printer_top.png', 'class="printer"'); $text .= ''; @@ -2080,6 +2122,7 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead print "\n"; // end div class="login_block" print ''; + //print '
     
    '; print '
    '; print "\n\n"; @@ -2146,7 +2189,7 @@ function top_menu_user($hideloginname = 0, $urllogout = '') $dropdownBody .= '
    '.$langs->transcountry("ProfId6", $mysoc->country_code).': '.dol_print_profids(getDolGlobalString("MAIN_INFO_PROFID6"), 6).''; } $dropdownBody .= '
    '.$langs->trans("VATIntraShort").': '.dol_print_profids(getDolGlobalString("MAIN_INFO_TVAINTRA"), 'VAT').''; - $dropdownBody .= '
    '.$langs->trans("Country").': '.$langs->trans("Country".$mysoc->country_code).''; + $dropdownBody .= '
    '.$langs->trans("Country").': '.($mysoc->country_code ? $langs->trans("Country".$mysoc->country_code) : '').''; $dropdownBody .= ''; @@ -2243,7 +2286,7 @@ function top_menu_user($hideloginname = 0, $urllogout = '') $btnUser = '
    '; print ''; print ''; print ''; print ''; 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))) && $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 ''; @@ -2316,137 +2521,6 @@ if ($module == 'initmodule') { } } - if ($tab == 'dictionaries') { - print ''."\n"; - $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath']; - - $dicts = $moduleobj->dictionaries; - - if ($action != 'editfile' || empty($file)) { - print ''; - $htmlhelp = $langs->trans("DictionariesDefDescTooltip", '{s1}'); - $htmlhelp = str_replace('{s1}', ''.$langs->trans('Setup').' - '.$langs->trans('Dictionaries').'', $htmlhelp); - print $form->textwithpicto($langs->trans("DictionariesDefDesc"), $htmlhelp, 1, 'help', '', 0, 2, 'helpondesc').'
    '; - print '
    '; - print '
    '; - - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; - print ' '.img_picto($langs->trans("Edit"), 'edit').''; - print '
    '; - if (is_array($dicts) && !empty($dicts)) { - print ' '.$langs->trans("LanguageFile").' : '; - print ''.$dicts['langs'].''; - print '
    '; - } - - print load_fiche_titre($langs->trans("ListOfDictionariesEntries"), '', ''); - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print '
    '; - 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("MARGIN_METHODE_FOR_DISCOUNT").''; -print Form::selectarray('MARGIN_METHODE_FOR_DISCOUNT', $methods, $conf->global->MARGIN_METHODE_FOR_DISCOUNT); +print Form::selectarray('MARGIN_METHODE_FOR_DISCOUNT', $methods, getDolGlobalString('MARGIN_METHODE_FOR_DISCOUNT')); print ''; print ''; @@ -230,7 +230,7 @@ print ''.$langs->trans("AgentContactType").''; $formcompany = new FormCompany($db); $facture = new Facture($db); -print $formcompany->selectTypeContact($facture, $conf->global->AGENT_CONTACT_TYPE, "AGENT_CONTACT_TYPE", "internal", "code", 1, "maxwidth250"); +print $formcompany->selectTypeContact($facture, getDolGlobalString('AGENT_CONTACT_TYPE'), "AGENT_CONTACT_TYPE", "internal", "code", 1, "maxwidth250"); print ''; print ''; diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index 5f8c7320cd1..3bb84086b1e 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -23,6 +23,7 @@ * \brief Page des marges par agent commercial */ +// 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/margin/customerMargins.php b/htdocs/margin/customerMargins.php index 290a94908c0..d348bb4e9b7 100644 --- a/htdocs/margin/customerMargins.php +++ b/htdocs/margin/customerMargins.php @@ -22,6 +22,7 @@ * \brief Page des marges par 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/margin/index.php b/htdocs/margin/index.php index 0dcab7435f7..8363cd331c4 100644 --- a/htdocs/margin/index.php +++ b/htdocs/margin/index.php @@ -22,6 +22,7 @@ * \brief Page d'index du module margin */ +// Load Dolibarr environment require '../main.inc.php'; if ($user->rights->produit->lire) { diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php index ac006c042aa..f25b9c1937a 100644 --- a/htdocs/margin/productMargins.php +++ b/htdocs/margin/productMargins.php @@ -23,6 +23,7 @@ * \brief Page des marges par produit */ +// 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/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php index 93895b01e2f..2a4b1072e87 100644 --- a/htdocs/margin/tabs/productMargins.php +++ b/htdocs/margin/tabs/productMargins.php @@ -21,6 +21,7 @@ * \brief Page des marges des factures clients pour un produit */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php index c69c0443e28..00188256619 100644 --- a/htdocs/margin/tabs/thirdpartyMargins.php +++ b/htdocs/margin/tabs/thirdpartyMargins.php @@ -21,6 +21,7 @@ * \brief Page for invoice margins 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.'/compta/facture/class/facture.class.php'; @@ -129,7 +130,7 @@ if ($socid > 0) { print '
    '; print $langs->trans('SupplierCode').''; print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index aa836842e71..fe4bdf42d79 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -75,8 +75,9 @@ if (defined('TEST_DB_FORCE_TYPE')) { // Set properties specific to conf file $conf->file->main_limit_users = $dolibarr_main_limit_users; -$conf->file->mailing_limit_sendbyweb = $dolibarr_mailing_limit_sendbyweb; -$conf->file->mailing_limit_sendbycli = $dolibarr_mailing_limit_sendbycli; +$conf->file->mailing_limit_sendbyweb = empty($dolibarr_mailing_limit_sendbyweb) ? 0 : $dolibarr_mailing_limit_sendbyweb; +$conf->file->mailing_limit_sendbycli = empty($dolibarr_mailing_limit_sendbycli) ? 0 : $dolibarr_mailing_limit_sendbycli; +$conf->file->mailing_limit_sendbyday = empty($dolibarr_mailing_limit_sendbyday) ? 0 : $dolibarr_mailing_limit_sendbyday; $conf->file->main_authentication = empty($dolibarr_main_authentication) ? '' : $dolibarr_main_authentication; // Identification mode $conf->file->main_force_https = empty($dolibarr_main_force_https) ? '' : $dolibarr_main_force_https; // Force https $conf->file->strict_mode = empty($dolibarr_strict_mode) ? '' : $dolibarr_strict_mode; // Force php strict mode (for debug) diff --git a/htdocs/modulebuilder/admin/setup.php b/htdocs/modulebuilder/admin/setup.php index 01a02d0c7dd..50c86e38cc0 100644 --- a/htdocs/modulebuilder/admin/setup.php +++ b/htdocs/modulebuilder/admin/setup.php @@ -26,7 +26,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; global $conf, $langs, $user, $db; $langs->loadLangs(array("admin", "other", "modulebuilder")); -if (!$user->admin || empty($conf->modulebuilder->enabled)) { +if (!$user->admin || !isModEnabled('modulebuilder')) { accessforbidden(); } @@ -40,13 +40,13 @@ $backtopage = GETPOST('backtopage', 'alpha'); if ($action == "update") { $res1 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_README', GETPOST('MODULEBUILDER_SPECIFIC_README', 'restricthtml'), 'chaine', 0, '', $conf->entity); - $res2 = dolibarr_set_const($db, 'MODULEBUILDER_ASCIIDOCTOR', GETPOST('MODULEBUILDER_ASCIIDOCTOR', 'nohtml'), 'chaine', 0, '', $conf->entity); - $res3 = dolibarr_set_const($db, 'MODULEBUILDER_ASCIIDOCTORPDF', GETPOST('MODULEBUILDER_ASCIIDOCTORPDF', 'nohtml'), 'chaine', 0, '', $conf->entity); - $res4 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_EDITOR_NAME', GETPOST('MODULEBUILDER_SPECIFIC_EDITOR_NAME', 'nohtml'), 'chaine', 0, '', $conf->entity); - $res5 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_EDITOR_URL', GETPOST('MODULEBUILDER_SPECIFIC_EDITOR_URL', 'nohtml'), 'chaine', 0, '', $conf->entity); - $res6 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_FAMILY', GETPOST('MODULEBUILDER_SPECIFIC_FAMILY', 'nohtml'), 'chaine', 0, '', $conf->entity); + $res2 = dolibarr_set_const($db, 'MODULEBUILDER_ASCIIDOCTOR', GETPOST('MODULEBUILDER_ASCIIDOCTOR', 'alphanohtml'), 'chaine', 0, '', $conf->entity); + $res3 = dolibarr_set_const($db, 'MODULEBUILDER_ASCIIDOCTORPDF', GETPOST('MODULEBUILDER_ASCIIDOCTORPDF', 'alphanohtml'), 'chaine', 0, '', $conf->entity); + $res4 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_EDITOR_NAME', GETPOST('MODULEBUILDER_SPECIFIC_EDITOR_NAME', 'alphanohtml'), 'chaine', 0, '', $conf->entity); + $res5 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_EDITOR_URL', GETPOST('MODULEBUILDER_SPECIFIC_EDITOR_URL', 'alphanohtml'), 'chaine', 0, '', $conf->entity); + $res6 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_FAMILY', GETPOST('MODULEBUILDER_SPECIFIC_FAMILY', 'alphanohtml'), 'chaine', 0, '', $conf->entity); $res7 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_AUTHOR', GETPOST('MODULEBUILDER_SPECIFIC_AUTHOR', 'html'), 'chaine', 0, '', $conf->entity); - $res8 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_VERSION', GETPOST('MODULEBUILDER_SPECIFIC_VERSION', 'nohtml'), 'chaine', 0, '', $conf->entity); + $res8 = dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_VERSION', GETPOST('MODULEBUILDER_SPECIFIC_VERSION', 'alphanohtml'), 'chaine', 0, '', $conf->entity); if ($res1 < 0 || $res2 < 0 || $res3 < 0 || $res4 < 0 || $res5 < 0 || $res6 < 0 || $res7 < 0 || $res8 < 0) { setEventMessages('ErrorFailedToSaveDate', null, 'errors'); $db->rollback(); @@ -89,7 +89,8 @@ if (preg_match('/del_(.*)/', $action, $reg)) { $form = new Form($db); -llxHeader('', $langs->trans("ModulebuilderSetup")); +$help_url = ''; +llxHeader('', $langs->trans("ModulebuilderSetup"), $help_url); $linkback = ''.$langs->trans("BackToModuleList").''; @@ -110,7 +111,7 @@ print '
    '; print ''; print ''; -print ''; +print ''; print ''; print "\n"; @@ -133,35 +134,35 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { 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 ''; @@ -169,14 +170,14 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { } print ''; -print ''; +print ''; print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; print ''; + print ''; + print ''; + print ''; + print ''; - print ''; - print '
    '.$langs->trans("Key").''.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("UseSpecificEditorName").''.$langs->trans("UseSpecificEditorName").''; print ''; print '
    '.$langs->trans("UseSpecificEditorURL").''.$langs->trans("UseSpecificEditorURL").''; print ''; print '
    '.$langs->trans("UseSpecificFamily").''.$langs->trans("UseSpecificFamily").''; print ''; print '
    '.$langs->trans("UseSpecificAuthor").''.$langs->trans("UseSpecificAuthor").''; print ''; print '
    '.$langs->trans("UseSpecificVersion").''.$langs->trans("UseSpecificVersion").''; print ''; print '
    '.$langs->trans("UseSpecificReadme").''.$langs->trans("UseSpecificReadme").''; print ''; print '
    '.$langs->trans("AsciiToHtmlConverter").''.$langs->trans("AsciiToHtmlConverter").''; print ''; print ' '.$langs->trans("Example").': asciidoc, asciidoctor'; @@ -184,7 +185,7 @@ print '
    '.$langs->trans("AsciiToPdfConverter").''.$langs->trans("AsciiToPdfConverter").''; print ''; print ' '.$langs->trans("Example").': asciidoctor-pdf'; diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 5616cceed8e..8441dd530ee 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -31,6 +31,7 @@ if (!defined('NOSCANPOSTFORINJECTION')) { define('NOSCANPOSTFORINJECTION', '1'); // Do not check anti SQL+XSS injection attack test } +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -42,16 +43,18 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php'; // Load translation files required by the page $langs->loadLangs(array("admin", "modulebuilder", "other", "cron", "errors")); -$action = GETPOST('action', 'aZ09'); +// GET Parameters +$action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); -$cancel = GETPOST('cancel', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); -$sortfield=GETPOST('sortfield', 'alpha'); -$sortorder=GETPOST('sortorder', 'alpha'); +$sortfield = GETPOST('sortfield', 'alpha'); +$sortorder = GETPOST('sortorder', 'alpha'); $module = GETPOST('module', 'alpha'); $tab = GETPOST('tab', 'aZ09'); $tabobj = GETPOST('tabobj', 'alpha'); +$tabdic = GETPOST('tabdic', 'alpha'); $propertykey = GETPOST('propertykey', 'alpha'); if (empty($module)) { $module = 'initmodule'; @@ -62,17 +65,27 @@ if (empty($tab)) { if (empty($tabobj)) { $tabobj = 'newobjectifnoobj'; } +if (empty($tabdic)) { + $tabdic = 'newdicifnodic'; +} $file = GETPOST('file', 'alpha'); $modulename = dol_sanitizeFileName(GETPOST('modulename', 'alpha')); $objectname = dol_sanitizeFileName(GETPOST('objectname', 'alpha')); +$dicname = dol_sanitizeFileName(GETPOST('dicname', 'alpha')); +$editorname= GETPOST('editorname', 'alpha'); +$editorurl= GETPOST('editorurl', 'alpha'); +$version= GETPOST('version', 'alpha'); +$family= GETPOST('family', 'alpha'); +$picto= GETPOST('idpicto', 'alpha'); +$idmodule= GETPOST('idmodule', 'alpha'); // Security check -if (empty($conf->modulebuilder->enabled)) { - accessforbidden(); +if (!isModEnabled('modulebuilder')) { + accessforbidden('Module ModuleBuilder not enabled'); } if (!$user->admin && empty($conf->global->MODULEBUILDER_FOREVERYONE)) { - accessforbidden($langs->trans('ModuleBuilderNotAllowed')); + accessforbidden('ModuleBuilderNotAllowed'); } @@ -112,6 +125,7 @@ $form = new Form($db); // Define $listofmodules $dirsrootforscan = array($dirread); + // Add also the core modules into the list of modules to show/edit if ($dirread != DOL_DOCUMENT_ROOT && ($conf->global->MAIN_FEATURES_LEVEL >= 2 || !empty($conf->global->MODULEBUILDER_ADD_DOCUMENT_ROOT))) { $dirsrootforscan[] = DOL_DOCUMENT_ROOT; @@ -233,6 +247,33 @@ if ($dirins && $action == 'initmodule' && $modulename) { } } + // Copy last html.formsetup.class.php' to backport folder + $tryToCopyFromSetupClass = true; + $backportDest = $destdir .'/backport/v16/core/class'; + $backportFileSrc = DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php'; + $backportFileDest = $backportDest.'/html.formsetup.class.php'; + $result = dol_mkdir($backportDest); + + if ($result < 0) { + $error++; + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFailToCreateDir", $backportDest), null, 'errors'); + $tryToCopyFromSetupClass = false; + } + + if ($tryToCopyFromSetupClass) { + $result = dol_copy($backportFileSrc, $backportFileDest); + if ($result <= 0) { + if ($result < 0) { + $error++; + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFailToCopyFile", $backportFileSrc, $backportFileDest), null, 'errors'); + } else { + setEventMessages($langs->trans("FileDidAlreadyExist", $backportFileDest), null, 'warnings'); + } + } + } + if (!empty($conf->global->MODULEBUILDER_USE_ABOUT)) { dol_delete_file($destdir.'/admin/about.php'); } @@ -261,7 +302,7 @@ if ($dirins && $action == 'initmodule' && $modulename) { dol_delete_file($destdir.'/scripts/'.strtolower($modulename).'.php'); - dol_delete_file($destdir.'/test/phpunit/MyModuleFunctionnalTest.php'); + dol_delete_file($destdir.'/test/phpunit/'.$modulename.'FunctionnalTest.php'); // Delete some files related to Object (because the previous dolCopyDir has copied everything) dol_delete_file($destdir.'/myobject_card.php'); @@ -302,25 +343,29 @@ if ($dirins && $action == 'initmodule' && $modulename) { 'Mon module'=>$modulename, 'mon module'=>$modulename, 'htdocs/modulebuilder/template'=>strtolower($modulename), - '---Put here your own copyright and developer email---'=>dol_print_date($now, '%Y').' '.$user->getFullName($langs).($user->email ? ' <'.$user->email.'>' : '') + '---Put here your own copyright and developer email---'=>dol_print_date($now, '%Y').' '.$user->getFullName($langs).($user->email ? ' <'.$user->email.'>' : ''), + 'Editor name'=>$editorname, + 'https://www.example.com'=>$editorurl, + '$this->version = \'1.0\''=>'$this->version = \''.$version.'\'', + '$this->picto = \'generic\';'=>(empty($picto)) ? '$this->picto = \'generic\'' : '$this->picto = \''.$picto.'\';', + "modulefamily" =>$family, + '500000'=>$idmodule ); - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - if (!empty($conf->global->MODULEBUILDER_SPECIFIC_EDITOR_NAME)) { - $arrayreplacement['Editor name'] = $conf->global->MODULEBUILDER_SPECIFIC_EDITOR_NAME; - } - if (!empty($conf->global->MODULEBUILDER_SPECIFIC_EDITOR_URL)) { - $arrayreplacement['https://www.example.com'] = $conf->global->MODULEBUILDER_SPECIFIC_EDITOR_URL; - } - if (!empty($conf->global->MODULEBUILDER_SPECIFIC_AUTHOR)) { - $arrayreplacement['---Put here your own copyright and developer email---'] = dol_print_date($now, '%Y').' '.$conf->global->MODULEBUILDER_SPECIFIC_AUTHOR; - } - if (!empty($conf->global->MODULEBUILDER_SPECIFIC_VERSION)) { - $arrayreplacement['1.0'] = $conf->global->MODULEBUILDER_SPECIFIC_VERSION; - } - if (!empty($conf->global->MODULEBUILDER_SPECIFIC_FAMILY)) { - $arrayreplacement['other'] = $conf->global->MODULEBUILDER_SPECIFIC_FAMILY; - } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_EDITOR_NAME)) { + $arrayreplacement['Editor name'] = $conf->global->MODULEBUILDER_SPECIFIC_EDITOR_NAME; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_EDITOR_URL)) { + $arrayreplacement['https://www.example.com'] = $conf->global->MODULEBUILDER_SPECIFIC_EDITOR_URL; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_AUTHOR)) { + $arrayreplacement['---Put here your own copyright and developer email---'] = dol_print_date($now, '%Y').' '.$conf->global->MODULEBUILDER_SPECIFIC_AUTHOR; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_VERSION)) { + $arrayreplacement['1.0'] = $conf->global->MODULEBUILDER_SPECIFIC_VERSION; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_FAMILY)) { + $arrayreplacement['modulefamily'] = $conf->global->MODULEBUILDER_SPECIFIC_FAMILY; } $result = dolReplaceInFile($phpfileval['fullname'], $arrayreplacement); @@ -340,7 +385,6 @@ if ($dirins && $action == 'initmodule' && $modulename) { if (!$error) { setEventMessages('ModuleInitialized', null); $module = $modulename; - $modulename = ''; clearstatcache(true); if (function_exists('opcache_invalidate')) { @@ -353,52 +397,50 @@ if ($dirins && $action == 'initmodule' && $modulename) { } -// init API -if ($dirins && $action == 'initapi' && !empty($module)) { +// init API, PHPUnit +if ($dirins && in_array($action, array('initapi', 'initphpunit', 'initpagecontact', 'initpagedocument', 'initpagenote', 'initpageagenda')) && !empty($module)) { $modulename = ucfirst($module); // Force first letter in uppercase $objectname = $tabobj; + $varnametoupdate = ''; - dol_mkdir($dirins.'/'.strtolower($module).'/class'); - $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; - $srcfile = $srcdir.'/class/api_mymodule.class.php'; - $destfile = $dirins.'/'.strtolower($module).'/class/api_'.strtolower($module).'.class.php'; - //var_dump($srcfile);var_dump($destfile); - $result = dol_copy($srcfile, $destfile, 0, 0); - - if ($result > 0) { - //var_dump($phpfileval['fullname']); - $arrayreplacement = array( - 'mymodule'=>strtolower($modulename), - 'MyModule'=>$modulename, - 'MYMODULE'=>strtoupper($modulename), - 'My module'=>$modulename, - 'my module'=>$modulename, - 'Mon module'=>$modulename, - 'mon module'=>$modulename, - 'htdocs/modulebuilder/template'=>strtolower($modulename), - 'myobject'=>strtolower($objectname), - 'MyObject'=>$objectname, - 'MYOBJECT'=>strtoupper($objectname), - '---Put here your own copyright and developer email---'=>dol_print_date($now, '%Y').' '.$user->getFullName($langs).($user->email ? ' <'.$user->email.'>' : '') - ); - - dolReplaceInFile($destfile, $arrayreplacement); - } else { - $langs->load("errors"); - setEventMessages($langs->trans('ErrorFailToCreateFile', $destfile), null, 'errors'); + if ($action == 'initapi') { + dol_mkdir($dirins.'/'.strtolower($module).'/class'); + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $srcfile = $srcdir.'/class/api_mymodule.class.php'; + $destfile = $dirins.'/'.strtolower($module).'/class/api_'.strtolower($module).'.class.php'; + } elseif ($action == 'initphpunit') { + dol_mkdir($dirins.'/'.strtolower($module).'/test/phpunit'); + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $srcfile = $srcdir.'/test/phpunit/MyObjectTest.php'; + $destfile = $dirins.'/'.strtolower($module).'/test/phpunit/'.strtolower($objectname).'Test.php'; + } elseif ($action == 'initpagecontact') { + dol_mkdir($dirins.'/'.strtolower($module)); + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $srcfile = $srcdir.'/myobject_contact.php'; + $destfile = $dirins.'/'.strtolower($module).'/'.strtolower($objectname).'_contact.php'; + $varnametoupdate = 'showtabofpagecontact'; + } elseif ($action == 'initpagedocument') { + dol_mkdir($dirins.'/'.strtolower($module)); + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $srcfile = $srcdir.'/myobject_document.php'; + $destfile = $dirins.'/'.strtolower($module).'/'.strtolower($objectname).'_document.php'; + $varnametoupdate = 'showtabofpagedocument'; + } elseif ($action == 'initpagenote') { + dol_mkdir($dirins.'/'.strtolower($module)); + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $srcfile = $srcdir.'/myobject_note.php'; + $destfile = $dirins.'/'.strtolower($module).'/'.strtolower($objectname).'_note.php'; + $varnametoupdate = 'showtabofpagenote'; + } elseif ($action == 'initpageagenda') { + dol_mkdir($dirins.'/'.strtolower($module)); + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $srcfile = $srcdir.'/myobject_agenda.php'; + $destfile = $dirins.'/'.strtolower($module).'/'.strtolower($objectname).'_agenda.php'; + $varnametoupdate = 'showtabofpageagenda'; } -} - -// init PHPUnit -if ($dirins && $action == 'initphpunit' && !empty($module)) { - $modulename = ucfirst($module); // Force first letter in uppercase - $objectname = $tabobj; - - dol_mkdir($dirins.'/'.strtolower($module).'/test/phpunit'); - $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; - $srcfile = $srcdir.'/test/phpunit/MyObjectTest.php'; - $destfile = $dirins.'/'.strtolower($module).'/test/phpunit/'.strtolower($objectname).'Test.php'; + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -419,6 +461,13 @@ if ($dirins && $action == 'initphpunit' && !empty($module)) { ); dolReplaceInFile($destfile, $arrayreplacement); + + if ($varnametoupdate) { + // Now we update the object file to set $$varnametoupdate to 1 + $srcfile = $dirins.'/'.strtolower($module).'/lib/'.strtolower($module).'_'.strtolower($objectname).'.lib.php'; + $arrayreplacement = array('/\$'.$varnametoupdate.' = 0;/' => '$'.$varnametoupdate.' = 1;'); + dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1); + } } else { $langs->load("errors"); setEventMessages($langs->trans('ErrorFailToCreateFile', $destfile), null, 'errors'); @@ -435,11 +484,13 @@ if ($dirins && $action == 'initsqlextrafields' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile1 = $srcdir.'/sql/llx_mymodule_myobject_extrafields.sql'; $destfile1 = $dirins.'/'.strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'_extrafields.sql'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result1 = dol_copy($srcfile1, $destfile1, 0, 0); $srcfile2 = $srcdir.'/sql/llx_mymodule_myobject_extrafields.key.sql'; $destfile2 = $dirins.'/'.strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'_extrafields.key.sql'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result2 = dol_copy($srcfile2, $destfile2, 0, 0); if ($result1 > 0 && $result2 > 0) { @@ -474,7 +525,7 @@ if ($dirins && $action == 'initsqlextrafields' && !empty($module)) { } } - // Now we update the object file to set $isextrafieldmanaged to 0 + // Now we update the object file to set $isextrafieldmanaged to 1 $srcfile = $dirins.'/'.strtolower($module).'/class/'.strtolower($objectname).'.class.php'; $arrayreplacement = array('/\$isextrafieldmanaged = 0;/' => '$isextrafieldmanaged = 1;'); dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1); @@ -487,7 +538,8 @@ if ($dirins && $action == 'inithook' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/class/actions_mymodule.class.php'; $destfile = $dirins.'/'.strtolower($module).'/class/actions_'.strtolower($module).'.class.php'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -520,7 +572,8 @@ if ($dirins && $action == 'inittrigger' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php'; $destfile = $dirins.'/'.strtolower($module).'/core/triggers/interface_99_mod'.$module.'_'.$module.'Triggers.class.php'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -553,7 +606,8 @@ if ($dirins && $action == 'initwidget' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/core/boxes/mymodulewidget1.php'; $destfile = $dirins.'/'.strtolower($module).'/core/boxes/'.strtolower($module).'widget1.php'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -586,7 +640,8 @@ if ($dirins && $action == 'initcss' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/css/mymodule.css.php'; $destfile = $dirins.'/'.strtolower($module).'/css/'.strtolower($module).'.css.php'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -624,7 +679,8 @@ if ($dirins && $action == 'initjs' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/js/mymodule.js.php'; $destfile = $dirins.'/'.strtolower($module).'/js/'.strtolower($module).'.js.php'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -662,7 +718,8 @@ if ($dirins && $action == 'initcli' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/scripts/mymodule.php'; $destfile = $dirins.'/'.strtolower($module).'/scripts/'.strtolower($module).'.php'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -700,7 +757,8 @@ if ($dirins && $action == 'initdoc' && !empty($module)) { $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcfile = $srcdir.'/doc/Documentation.asciidoc'; $destfile = $dirins.'/'.strtolower($module).'/doc/Documentation.asciidoc'; - //var_dump($srcfile);var_dump($destfile); + //var_dump($srcfile); + //var_dump($destfile); $result = dol_copy($srcfile, $destfile, 0, 0); if ($result > 0) { @@ -791,7 +849,7 @@ if ($dirins && $action == 'confirm_removefile' && !empty($module)) { if (!$result) { setEventMessages($langs->trans("ErrorFailToDeleteFile", basename($filetodelete)), null, 'errors'); } else { - // If we delete a sql file + // If we delete a .sql file, we delete also the other .sql file if (preg_match('/\.sql$/', $relativefilename)) { if (preg_match('/\.key\.sql$/', $relativefilename)) { $relativefilename = preg_replace('/\.key\.sql$/', '.sql', $relativefilename); @@ -815,10 +873,24 @@ if ($dirins && $action == 'confirm_removefile' && !empty($module)) { dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1); } - // Now we update the object file to set $isextrafieldmanaged to 0 - $srcfile = $dirins.'/'.strtolower($module).'/class/'.strtolower($objectname).'.class.php'; - $arrayreplacement = array('/\$isextrafieldmanaged = 1;/' => '$isextrafieldmanaged = 0;'); - dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1); + if (preg_match('/_extrafields/', $relativefilename)) { + // Now we update the object file to set $isextrafieldmanaged to 0 + $srcfile = $dirins.'/'.strtolower($module).'/class/'.strtolower($objectname).'.class.php'; + $arrayreplacement = array('/\$isextrafieldmanaged = 1;/' => '$isextrafieldmanaged = 0;'); + dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1); + } + + // Now we update the lib file to set $showtabofpagexxx to 0 + $varnametoupdate = ''; + $reg = array(); + if (preg_match('/_([a-z]+)\.php$/', $relativefilename, $reg)) { + $varnametoupdate = 'showtabofpage'.$reg[1]; + } + if ($varnametoupdate) { + $srcfile = $dirins.'/'.strtolower($module).'/lib/'.strtolower($module).'_'.strtolower($objectname).'.lib.php'; + $arrayreplacement = array('/\$'.$varnametoupdate.' = 1;/' => '$'.$varnametoupdate.' = 0;'); + dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1); + } } } } @@ -832,43 +904,49 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray', setEventMessages($langs->trans("ErrorTableNotFound", $tablename), null, 'errors'); } else { /** - * 'type' if the field format ('integer', 'integer:Class:pathtoclass', 'varchar(x)', 'double(24,8)', 'text', 'html', 'datetime', 'timestamp', 'float') + * '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. - * 'enabled' is a condition when the field must be managed. - * '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). 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) + * '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). - * 'default' is a default value for creation (can still be replaced by the global setup of default values) + * '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_...). - * 'position' is the sort order of field. * '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 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). - * '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: 'maxwidth200', 'wordbreak', 'tdoverflowmax200' - * 'help' is a string visible as a tooltip on field - * 'comment' is not used. You can store here any text of your choice. It is not used by application. + * '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 - * 'arrayofkeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel") + * '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) */ /*public $fields=array( - 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), - 'ref' =>array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'), - 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), - 'label' =>array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'searchall'=>1, 'css'=>'minwidth200', 'help'=>'Help text'), - 'amount' =>array('type'=>'double(24,8)', 'label'=>'Amount', 'enabled'=>1, 'visible'=>1, 'default'=>'null', 'position'=>40, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text'), - 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'visible'=>1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'searchall'=>1, 'help'=>'LinkToThirparty'), - 'description' =>array('type'=>'text', 'label'=>'Descrption', 'enabled'=>1, 'visible'=>0, 'position'=>60), - 'note_public' =>array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61), - 'note_private' =>array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>62), - '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_valid' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>502), - 'fk_user_creat' =>array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510), - 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511), - //'fk_user_valid' =>array('type'=>'integer', 'label'=>'UserValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>512), - 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0, 'position'=>1000), - 'status' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'default'=>0, 'index'=>1, 'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Active', -1=>'Cancel')), + 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), + 'ref' =>array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'), + 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), + 'label' =>array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'searchall'=>1, 'css'=>'minwidth200', 'help'=>'Help text'), + 'amount' =>array('type'=>'double(24,8)', 'label'=>'Amount', 'enabled'=>1, 'visible'=>1, 'default'=>'null', 'position'=>40, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text'), + 'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'visible'=>1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'searchall'=>1, 'help'=>'LinkToThirdparty'), + 'description' =>array('type'=>'text', 'label'=>'Descrption', 'enabled'=>1, 'visible'=>0, 'position'=>60), + 'note_public' =>array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61), + 'note_private' =>array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>62), + '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_valid' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>502), + 'fk_user_creat' =>array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510), + 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511), + //'fk_user_valid' =>array('type'=>'integer', 'label'=>'UserValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>512), + 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0, 'position'=>1000), + 'status' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'default'=>0, 'index'=>1, 'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Active', -1=>'Cancel')), );*/ $string = 'public $fields=array('."\n"; @@ -984,7 +1062,7 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray', if ($fieldname == 'entity') { $index = 1; } - // css + // css, cssview, csslist $css = ''; $cssview = ''; $csslist = ''; @@ -999,8 +1077,17 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray', $cssview = 'wordbreak'; } + // type + $picto = $obj->Picto; + if ($obj->Field == 'fk_soc') { + $picto = 'company'; + } + if (preg_match('/^fk_proj/', $obj->Field)) { + $picto = 'project'; + } - $string .= "'".$obj->Field."' =>array('type'=>'".$type."', 'label'=>'".$label."',"; + // Build the property string + $string .= "'".$obj->Field."'=>array('type'=>'".$type."', 'label'=>'".$label."',"; if ($default != '') { $string .= " 'default'=>".$default.","; } @@ -1016,6 +1103,9 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray', if ($index) { $string .= ", 'index'=>".$index; } + if ($picto) { + $string .= ", 'picto'=>'".$picto."'"; + } if ($css) { $string .= ", 'css'=>".$css; } @@ -1265,9 +1355,26 @@ if ($dirins && $action == 'initobject' && $module && $objectname) { 'htdocs/modulebuilder/template/'=>strtolower($modulename), 'myobject'=>strtolower($objectname), 'MyObject'=>$objectname, - 'MYOBJECT'=>strtoupper($objectname) + 'MYOBJECT'=>strtoupper($objectname), + '---Put here your own copyright and developer email---'=>dol_print_date($now, '%Y').' '.$user->getFullName($langs).($user->email ? ' <'.$user->email.'>' : '') ); + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_EDITOR_NAME)) { + $arrayreplacement['Editor name'] = $conf->global->MODULEBUILDER_SPECIFIC_EDITOR_NAME; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_EDITOR_URL)) { + $arrayreplacement['https://www.example.com'] = $conf->global->MODULEBUILDER_SPECIFIC_EDITOR_URL; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_AUTHOR)) { + $arrayreplacement['---Put here your own copyright and developer email---'] = dol_print_date($now, '%Y').' '.$conf->global->MODULEBUILDER_SPECIFIC_AUTHOR; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_VERSION)) { + $arrayreplacement['1.0'] = $conf->global->MODULEBUILDER_SPECIFIC_VERSION; + } + if (!empty($conf->global->MODULEBUILDER_SPECIFIC_FAMILY)) { + $arrayreplacement['other'] = $conf->global->MODULEBUILDER_SPECIFIC_FAMILY; + } + $result = dolReplaceInFile($phpfileval['fullname'], $arrayreplacement); //var_dump($result); if ($result < 0) { @@ -1297,6 +1404,21 @@ if ($dirins && $action == 'initobject' && $module && $objectname) { } } +// Add a dictionary +if ($dirins && $action == 'initdic' && $module && $dicname) { + if (!$error) { + $newdicname = $dicname; + if (!preg_match('/^c_/', $newdicname)) { + $newdicname = 'c_'.$dicname; + } + + // TODO + + setEventMessages($langs->trans("FeatureNotYetAvailable"), null, 'errors'); + } +} + +// Delete a SQL table if ($dirins && ($action == 'droptable' || $action == 'droptableextrafields') && !empty($module) && !empty($tabobj)) { $objectname = $tabobj; @@ -1361,33 +1483,36 @@ if ($dirins && $action == 'addproperty' && empty($cancel) && !empty($module) && setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Type")), null, 'errors'); } - if (!$error) { + if (!$error && !GETPOST('regenerateclasssql')&& !GETPOST('regeneratemissing')) { $addfieldentry = array( - 'name'=>GETPOST('propname', 'aZ09'), - 'label'=>GETPOST('proplabel', 'alpha'), - 'type'=>GETPOST('proptype', 'alpha'), - 'arrayofkeyval'=>GETPOST('proparrayofkeyval', 'restricthtml'), // Example json string '{"0":"Draft","1":"Active","-1":"Cancel"}' - 'visible'=>GETPOST('propvisible', 'int'), - 'enabled'=>GETPOST('propenabled', 'int'), - 'position'=>GETPOST('propposition', 'int'), - 'notnull'=>GETPOST('propnotnull', 'int'), - 'index'=>GETPOST('propindex', 'int'), - 'searchall'=>GETPOST('propsearchall', 'int'), - 'isameasure'=>GETPOST('propisameasure', 'int'), - 'comment'=>GETPOST('propcomment', 'alpha'), - 'help'=>GETPOST('prophelp', 'alpha'), - 'css'=>GETPOST('propcss', 'alpha'), // Can be 'maxwidth500 widthcentpercentminusxx' for example - 'cssview'=>GETPOST('propcssview', 'alpha'), - 'csslist'=>GETPOST('propcsslist', 'alpha'), - 'default'=>GETPOST('propdefault', 'restricthtml'), - 'noteditable'=>intval(GETPOST('propnoteditable', 'int')), - 'validate' => GETPOST('propvalidate', 'int') + 'name'=>GETPOST('propname', 'aZ09'), + 'label'=>GETPOST('proplabel', 'alpha'), + 'type'=>GETPOST('proptype', 'alpha'), + 'arrayofkeyval'=>GETPOST('proparrayofkeyval', 'restricthtml'), // Example json string '{"0":"Draft","1":"Active","-1":"Cancel"}' + 'visible'=>GETPOST('propvisible', 'int'), + 'enabled'=>GETPOST('propenabled', 'int'), + 'position'=>GETPOST('propposition', 'int'), + 'notnull'=>GETPOST('propnotnull', 'int'), + 'index'=>GETPOST('propindex', 'int'), + 'searchall'=>GETPOST('propsearchall', 'int'), + 'isameasure'=>GETPOST('propisameasure', 'int'), + 'comment'=>GETPOST('propcomment', 'alpha'), + 'help'=>GETPOST('prophelp', 'alpha'), + 'css'=>GETPOST('propcss', 'alpha'), // Can be 'maxwidth500 widthcentpercentminusxx' for example + 'cssview'=>GETPOST('propcssview', 'alpha'), + 'csslist'=>GETPOST('propcsslist', 'alpha'), + 'default'=>GETPOST('propdefault', 'restricthtml'), + 'noteditable'=>intval(GETPOST('propnoteditable', 'int')), + 'validate' => GETPOST('propvalidate', 'int') ); + if (!empty($addfieldentry['arrayofkeyval']) && !is_array($addfieldentry['arrayofkeyval'])) { $addfieldentry['arrayofkeyval'] = json_decode($addfieldentry['arrayofkeyval'], true); } } + } else { + $addfieldentry = array(); } /*if (GETPOST('regeneratemissing')) @@ -1396,9 +1521,10 @@ if ($dirins && $action == 'addproperty' && empty($cancel) && !empty($module) && $error++; }*/ + $moduletype = $listofmodules[strtolower($module)]['moduletype']; + // Edit the class file to write properties if (!$error) { - $moduletype = 'external'; $object = rebuildObjectClass($destdir, $module, $objectname, $newmask, $srcdir, $addfieldentry, $moduletype); if (is_numeric($object) && $object <= 0) { @@ -1408,21 +1534,20 @@ if ($dirins && $action == 'addproperty' && empty($cancel) && !empty($module) && // Edit sql with new properties if (!$error) { - $moduletype = 'external'; - $result = rebuildObjectSql($destdir, $module, $objectname, $newmask, $srcdir, $object, $moduletype); + if ($result <= 0) { $error++; } } if (!$error) { + clearstatcache(true); + setEventMessages($langs->trans('FilesForObjectUpdated', $objectname), null); setEventMessages($langs->trans('WarningDatabaseIsNotUpdated'), null); - clearstatcache(true); - // Make a redirect to reload all data header("Location: ".DOL_URL_ROOT.'/modulebuilder/index.php?tab=objects&module='.$module.($forceddirread ? '@'.$dirread : '').'&tabobj='.$objectname.'&nocache='.time()); @@ -1780,7 +1905,8 @@ $text = $langs->trans("ModuleBuilder"); print load_fiche_titre($text, '', 'title_setup'); -print ''.$langs->trans("ModuleBuilderDesc", 'https://wiki.dolibarr.org/index.php/Module_development#Create_your_module').'
    '; +print ''.$langs->trans("ModuleBuilderDesc", 'https://wiki.dolibarr.org/index.php/Module_development#Create_your_module').''; +print '
    '; //print $textforlistofdirs; //print '
    '; @@ -1808,7 +1934,7 @@ if ($message) { } //print $langs->trans("ModuleBuilderDesc3", count($listofmodules), $FILEFLAG).'
    '; -$infomodulesfound = '
    '.$form->textwithpicto(''.$langs->trans("ModuleBuilderDesc3", count($listofmodules)).'', $langs->trans("ModuleBuilderDesc4", $FILEFLAG).'
    '.$textforlistofdirs).'
    '; +$infomodulesfound = '
    '.$form->textwithpicto(''.$langs->trans("ModuleBuilderDesc3", count($listofmodules)).'', $langs->trans("ModuleBuilderDesc4", $FILEFLAG).'
    '.$textforlistofdirs).'
    '; // Load module descriptor @@ -1963,10 +2089,80 @@ if ($module == 'initmodule') { print ''; //print ''.$langs->trans("ModuleBuilderDesc2", 'conf/conf.php', $newdircustom).'
    '; - print $langs->trans("EnterNameOfModuleDesc").'
    '; print '
    '; - print '
    '; + print '
    '; + + print '
    '; + print ''.$langs->trans("IdModule").''; + print '
    '; + print ''; + print ''; + print '   ('; + print dolButtonToOpenUrlInDialogPopup('popup_modules_id', $langs->transnoentitiesnoconv("SeeIDsInUse"), $langs->transnoentitiesnoconv("SeeIDsInUse"), '/admin/system/modules.php?mainmenu=home&leftmenu=admintools_info', '', ''); + print ' - '; + print ''.$langs->trans("SeeReservedIDsRangeHere").''; + print ')'; + print ''; + print '
    '; + + print '
    '; + print ''.$langs->trans("ModuleName").''; + print '
    '; + print ''; + print ' '.$form->textwithpicto('', $langs->trans("EnterNameOfModuleDesc")); + print '
    '; + + print '
    '; + print ''.$langs->trans("Description").''; + print '
    '; + print '
    '; + print '
    '; + + print '
    '; + print ''.$langs->trans("Version").''; + print '
    '; + print ''; + print '
    '; + + print '
    '; + print ''.$langs->trans("Family").''; + print '
    '; + print ''; + print ajax_combobox("family"); + print '
    '; + + print '
    '; + print ''.$langs->trans("Picto").''; + print '
    '; + print ''; + print $form->textwithpicto('', $langs->trans("Example").': fa-generic, fa-globe, ... any font awesome code.
    Advanced syntax is fa-fakey[_faprefix[_facolor[_fasize]]]'); + print '
    '; + + print '
    '; + print ''.$langs->trans("EditorName").''; + print '
    '; + print '
    '; + print '
    '; + + print '
    '; + print ''.$langs->trans("EditorUrl").''; + print '
    '; + print '
    '; + print '
    '; print '
    '; print ''; @@ -2091,7 +2287,7 @@ if ($module == 'initmodule') { print ''.$langs->trans("ModuleBuilderDesc".$tab).''; $infoonmodulepath = ''; if (realpath($dirread.'/'.$modulelowercase) != $dirread.'/'.$modulelowercase) { - $infoonmodulepath = ''.$langs->trans("RealPathOfModule").' : '.realpath($dirread.'/'.$modulelowercase).'
    '; + $infoonmodulepath = ''.$langs->trans("RealPathOfModule").' : '.realpath($dirread.'/'.$modulelowercase).'
    '; print ' '.$infoonmodulepath; } print '
    '; @@ -2099,22 +2295,22 @@ if ($module == 'initmodule') { print ''; print ''; - print ''; - print ''; print '
    '; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print '
    '.$langs->trans("ReadmeFile").' : '.$pathtofilereadme.''; + print '
    '.$langs->trans("ReadmeFile").' : '.$pathtofilereadme.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print '
    '.$langs->trans("ChangeLog").' : '.$pathtochangelog.''; + print '
    '.$langs->trans("ChangeLog").' : '.$pathtochangelog.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; print '
    '; - print load_fiche_titre($langs->trans("DescriptorFile"), '', ''); + print load_fiche_titre($form->textwithpicto($langs->trans("DescriptorFile"), $langs->transnoentitiesnoconv("File").' '.$pathtofile), '', ''); if (!empty($moduleobj)) { print '
    '; @@ -2128,19 +2324,27 @@ if ($module == 'initmodule') { print '
    '; - print $langs->trans("Numero"); + print $langs->trans("IdModule"); print ''; print $moduleobj->numero; + print ''; print '   ('.$langs->trans("SeeIDsInUse").''; print ' - '.$langs->trans("SeeReservedIDsRangeHere").')'; + print ''; print '
    '; - print $langs->trans("Name"); + print $langs->trans("ModuleName"); print ''; print $moduleobj->getName(); print '
    '; + print $langs->trans("Description"); + print ''; + print $moduleobj->getDesc(); + print '
    '; print $langs->trans("Version"); print ''; @@ -2154,6 +2358,13 @@ if ($module == 'initmodule') { print $moduleobj->family; print '
    '; + print $langs->trans("Picto"); + print ''; + print $moduleobj->picto; + print '   '.img_picto('', $moduleobj->picto, 'class="valignmiddle pictomodule paddingrightonly"'); + print '
    '; print $langs->trans("EditorName"); print ''; @@ -2168,12 +2379,6 @@ if ($module == 'initmodule') { } print '
    '; - print $langs->trans("Description"); - print ''; - print $moduleobj->getDesc(); - print '
    '; } else { print $langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module).'
    '; @@ -2183,7 +2388,7 @@ if ($module == 'initmodule') { print '

    '; // Readme file - print load_fiche_titre($langs->trans("ReadmeFile"), '', ''); + print load_fiche_titre($form->textwithpicto($langs->trans("ReadmeFile"), $langs->transnoentitiesnoconv("File").' '.$pathtofilereadme), '', ''); print ''; if (dol_is_file($dirread.'/'.$pathtofilereadme)) { @@ -2195,7 +2400,7 @@ if ($module == 'initmodule') { print '

    '; // ChangeLog - print load_fiche_titre($langs->trans("ChangeLog"), '', ''); + print load_fiche_titre($form->textwithpicto($langs->trans("ChangeLog"), $langs->transnoentitiesnoconv("File").' '.$pathtochangelog), '', ''); print ''; if (dol_is_file($dirread.'/'.$pathtochangelog)) { @@ -2280,7 +2485,7 @@ if ($module == 'initmodule') { if (!preg_match('/custom/', $dirread)) { // If this is not a module into custom $pathtofile = 'langs/'.$langfile['relativename']; } - print '
    '.$langs->trans("LanguageFile").' '.basename(dirname($pathtofile)).' : '.$pathtofile.''; + print '
    '.$langs->trans("LanguageFile").' '.basename(dirname($pathtofile)).' : '.$pathtofile.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; print '
    '; - - print ''; - print_liste_field_titre("#", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'thsticky thstickygrey '); - print_liste_field_titre("Table", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Label", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("SQL", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("SQLSort", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("FieldsView", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("FieldsEdit", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("FieldsInsert", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Rowid", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Condition", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print "\n"; - - if (!empty($dicts) && is_array($dicts) && !empty($dicts['tabname']) && is_array($dicts['tabname'])) { - $i = 0; - $maxi = count($dicts['tabname']); - while ($i < $maxi) { - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - $i++; - } - } else { - print ''; - } - - print '
    '; - print ($i + 1); - print ''; - print $dicts['tabname'][$i]; - print ''; - print $dicts['tablib'][$i]; - print ''; - print $dicts['tabsql'][$i]; - print ''; - print $dicts['tabsqlsort'][$i]; - print ''; - print $dicts['tabfield'][$i]; - print ''; - print $dicts['tabfieldvalue'][$i]; - print ''; - print $dicts['tabfieldinsert'][$i]; - print ''; - print $dicts['tabrowid'][$i]; - print ''; - print $dicts['tabcond'][$i]; - print '
    '.$langs->trans("None").'
    '; - print '
    '; - - print ''; - } else { - $fullpathoffile = dol_buildpath($file, 0); - - $content = file_get_contents($fullpathoffile); - - // New module - print '
    '; - print ''; - print ''; - print ''; - print ''; - print ''; - - $doleditor = new DolEditor('editfilecontent', $content, '', '300', 'Full', 'In', true, false, 'ace', 0, '99%'); - print $doleditor->Create(1, '', false, $langs->trans("File").' : '.$file, (GETPOST('format', 'aZ09') ?GETPOST('format', 'aZ09') : 'html')); - print '
    '; - print '
    '; - print ''; - print '   '; - print ''; - print '
    '; - - print '
    '; - } - } - if ($tab == 'objects') { print ''."\n"; $head3 = array(); @@ -2487,10 +2561,12 @@ if ($module == 'initmodule') { } } - $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread ? '@'.$dirread : '').'&tabobj=deleteobject'; - $head3[$h][1] = $langs->trans("DangerZone"); - $head3[$h][2] = 'deleteobject'; - $h++; + if ($h > 1) { + $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread ? '@'.$dirread : '').'&tabobj=deleteobject'; + $head3[$h][1] = $langs->trans("DangerZone"); + $head3[$h][2] = 'deleteobject'; + $h++; + } // If tabobj was not defined, then we check if there is one obj. If yes, we force on it, if no, we will show tab to create new objects. if ($tabobj == 'newobjectifnoobj') { @@ -2513,20 +2589,20 @@ if ($module == 'initmodule') { print ''.$langs->trans("EnterNameOfObjectDesc").'

    '; - print '
    '; + print '
    '; print '
    '; print '
    '; - print ''; + print ''; print '
    '; print '
    '; print '
    '; - print $langs->trans("or"); + print ''.$langs->trans("or").''; print '
    '; print '
    '; //print ' '; print $langs->trans("InitStructureFromExistingTable"); print ''; - print ''; + print ''; print '
    '; print ''; @@ -2573,15 +2649,69 @@ if ($module == 'initmodule') { $pathtonote = strtolower($module).'/'.strtolower($tabobj).'_note.php'; $pathtocontact = strtolower($module).'/'.strtolower($tabobj).'_contact.php'; $pathtophpunit = strtolower($module).'/test/phpunit/'.strtolower($tabobj).'Test.php'; - $pathtosql = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'.sql'; - $pathtosqlextra = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'_extrafields.sql'; - $pathtosqlkey = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'.key.sql'; - $pathtosqlextrakey = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'_extrafields.key.sql'; + + // Try to load object class file + clearstatcache(true); + if (function_exists('opcache_invalidate')) { + opcache_invalidate($dirread.'/'.$pathtoclass, true); // remove the include cache hell ! + } + + if (empty($forceddirread) && empty($dirread)) { + $result = dol_include_once($pathtoclass); + $stringofinclude = "dol_include_once(".$pathtoclass.")"; + } else { + $result = @include_once $dirread.'/'.$pathtoclass; + $stringofinclude = "@include_once ".$dirread.'/'.$pathtoclass; + } + if (class_exists($tabobj)) { + try { + $tmpobjet = @new $tabobj($db); + } catch (Exception $e) { + dol_syslog('Failed to load Constructor of class: '.$e->getMessage(), LOG_WARNING); + } + } else { + print ''.$langs->trans('Failed to find the class '.$tabobj.' despite the '.$stringofinclude).'

    '; + } + + // Define path for sql file + $pathtosql = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'-'.strtolower($module).'.sql'; + $result = dol_buildpath($pathtosql); + if (! dol_is_file($result)) { + $pathtosql = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'.sql'; + $result = dol_buildpath($pathtosql); + if (! dol_is_file($result)) { + $pathtosql = 'install/mysql/tables/llx_'.strtolower($module).'_'.strtolower($tabobj).'-'.strtolower($module).'.sql'; + $result = dol_buildpath($pathtosql); + if (! dol_is_file($result)) { + $pathtosql = 'install/mysql/tables/llx_'.strtolower($module).'-'.strtolower($module).'.sql'; + $result = dol_buildpath($pathtosql); + if (! dol_is_file($result)) { + $pathtosql = 'install/mysql/tables/llx_'.strtolower($module).'.sql'; + $pathtosqlextra = 'install/mysql/tables/llx_'.strtolower($module).'_extrafields.sql'; + $result = dol_buildpath($pathtosql); + } else { + $pathtosqlextra = 'install/mysql/tables/llx_'.strtolower($module).'_extrafields-'.strtolower($module).'.sql'; + } + } else { + $pathtosqlextra = 'install/mysql/tables/llx_'.strtolower($module).'_'.strtolower($tabobj).'_extrafields-'.strtolower($module).'.sql'; + } + } else { + $pathtosqlextra = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'_extrafields.sql'; + } + } else { + $pathtosqlextra = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'_extrafields-'.strtolower($module).'.sql'; + } + $pathtosqlroot = preg_replace('/\/llx_.*$/', '', $pathtosql); + + $pathtosqlkey = preg_replace('/\.sql$/', '.key.sql', $pathtosql); + $pathtosqlextrakey = preg_replace('/\.sql$/', '.key.sql', $pathtosqlextra); + $pathtolib = strtolower($module).'/lib/'.strtolower($module).'.lib.php'; $pathtoobjlib = strtolower($module).'/lib/'.strtolower($module).'_'.strtolower($tabobj).'.lib.php'; $pathtopicto = strtolower($module).'/img/object_'.strtolower($tabobj).'.png'; - //var_dump($pathtoclass); var_dump($dirread); + //var_dump($pathtoclass); + //var_dump($dirread); $realpathtoclass = $dirread.'/'.$pathtoclass; $realpathtoapi = $dirread.'/'.$pathtoapi; $realpathtoagenda = $dirread.'/'.$pathtoagenda; @@ -2607,12 +2737,17 @@ if ($module == 'initmodule') { $urloflist = dol_buildpath('/'.$pathtolist, 1); $urlofcard = dol_buildpath('/'.$pathtocard, 1); + + + + print '
    '; - print ' '.$langs->trans("ClassFile").' : '.($realpathtoclass ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoclass).($realpathtoclass ? '' : '').''; + // Main DAO class file + print ' '.$langs->trans("ClassFile").' : '.(dol_is_file($realpathtoclass) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoclass).(dol_is_file($realpathtoclass) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; // API file print '
    '; - print ' '.$langs->trans("ApiClassFile").' : '.($realpathtoapi ? '' : '').(dol_is_file($realpathtoapi)?'':'').preg_replace('/^'.strtolower($module).'\//', '', $pathtoapi).(dol_is_file($realpathtoapi)?'':'').($realpathtoapi ? '' : '').''; + print ' '.$langs->trans("ApiClassFile").' : '.(dol_is_file($realpathtoapi) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoapi).(dol_is_file($realpathtoapi)?'':'').''; if (dol_is_file($realpathtoapi)) { print ' '.img_picto($langs->trans("Edit"), 'edit').''; print ' '; @@ -2624,45 +2759,43 @@ if ($module == 'initmodule') { print ''.$langs->trans("GoToApiExplorer").''; } } else { - //print ''.$langs->trans("FileNotYetGenerated").' '; print ''.img_picto('Generate', 'generate', 'class="paddingleft"').''; } // PHPUnit print '
    '; - print ' '.$langs->trans("TestClassFile").' : '.($realpathtophpunit ? '' : '').(dol_is_file($realpathtophpunit)?'':'').preg_replace('/^'.strtolower($module).'\//', '', $pathtophpunit).(dol_is_file($realpathtophpunit)?'':'').($realpathtophpunit ? '' : '').''; + print ' '.$langs->trans("TestClassFile").' : '.(dol_is_file($realpathtophpunit) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtophpunit).(dol_is_file($realpathtophpunit)?'':'').''; if (dol_is_file($realpathtophpunit)) { print ' '.img_picto($langs->trans("Edit"), 'edit').''; print ' '; print ''.img_picto($langs->trans("Delete"), 'delete').''; } else { - //print ''.$langs->trans("FileNotYetGenerated").' '; print ''.img_picto('Generate', 'generate', 'class="paddingleft"').''; } print '
    '; print '
    '; - print ' '.$langs->trans("PageForLib").' : '.($realpathtolib ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtolib).($realpathtolib ? '' : '').''; + print ' '.$langs->trans("PageForLib").' : '.(dol_is_file($realpathtolib) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtolib).(dol_is_file($realpathtolib) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; - print ' '.$langs->trans("PageForObjLib").' : '.($realpathtoobjlib ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoobjlib).($realpathtoobjlib ? '' : '').''; + print ' '.$langs->trans("PageForObjLib").' : '.(dol_is_file($realpathtoobjlib) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoobjlib).(dol_is_file($realpathtoobjlib) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; - print ' '.$langs->trans("Image").' : '.($realpathtopicto ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtopicto).($realpathtopicto ? '' : '').''; + print ' '.$langs->trans("Image").' : '.(dol_is_file($realpathtopicto) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtopicto).(dol_is_file($realpathtopicto) ? '' : '').''; //print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; print '
    '; - print ' '.$langs->trans("SqlFile").' : '.($realpathtosql ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosql).($realpathtosql ? '' : '').''; + print ' '.$langs->trans("SqlFile").' : '.(dol_is_file($realpathtosql) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosql).(dol_is_file($realpathtosql) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '   '.$langs->trans("DropTableIfEmpty").''; //print '   '.$langs->trans("RunSql").''; print '
    '; - print ' '.$langs->trans("SqlFileKey").' : '.($realpathtosqlkey ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosqlkey).($realpathtosqlkey ? '' : '').''; + print ' '.$langs->trans("SqlFileKey").' : '.(dol_is_file($realpathtosqlkey) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosqlkey).(dol_is_file($realpathtosqlkey) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; //print '   '.$langs->trans("RunSql").''; print '
    '; - print ' '.$langs->trans("SqlFileExtraFields").' : '.($realpathtosqlextra ? '' : '').(dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosqlextra).(dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey) ? '' : '').($realpathtosqlextra ? '' : '').''; + print ' '.$langs->trans("SqlFileExtraFields").' : '.(dol_is_file($realpathtosqlextra) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosqlextra).(dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey) ? '' : '').''; if (dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey)) { print ' '.img_picto($langs->trans("Edit"), 'edit').''; print ' '; @@ -2674,7 +2807,7 @@ if ($module == 'initmodule') { } //print '   '.$langs->trans("RunSql").''; print '
    '; - print ' '.$langs->trans("SqlFileKeyExtraFields").' : '.($realpathtosqlextrakey ? '' : '').(dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosqlextrakey).(dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey) ? '' : '').($realpathtosqlextrakey ? '' : '').''; + print ' '.$langs->trans("SqlFileKeyExtraFields").' : '.(dol_is_file($realpathtosqlextrakey) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtosqlextrakey).(dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey) ? '' : '').''; if (dol_is_file($realpathtosqlextra) && dol_is_file($realpathtosqlextrakey)) { print ' '.img_picto($langs->trans("Edit"), 'edit').''; print ' '; @@ -2686,38 +2819,50 @@ if ($module == 'initmodule') { print '
    '; print '
    '; - print ' '.$langs->trans("PageForList").' : '.($realpathtolist ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtolist).($realpathtolist ? '' : '').''; + print ' '.$langs->trans("PageForList").' : '.(dol_is_file($realpathtolist) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtolist).(dol_is_file($realpathtolist) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; - print ' '.$langs->trans("PageForCreateEditView").' : '.($realpathtocard ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtocard).($realpathtocard ? '' : '').'?action=create'; + print ' '.$langs->trans("PageForCreateEditView").' : '.(dol_is_file($realpathtocard) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtocard).(dol_is_file($realpathtocard) ? '' : '').'?action=create'; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; - print ' '.$langs->trans("PageForContactTab").' : '.($realpathtocontact ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtocontact).($realpathtocontact ? '' : '').''; + // Page contact + print ' '.$langs->trans("PageForContactTab").' : '.(dol_is_file($realpathtocontact) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtocontact).(dol_is_file($realpathtocontact) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; if (dol_is_file($realpathtocontact)) { print ' '; print ''.img_picto($langs->trans("Delete"), 'delete').''; + } else { + print ''.img_picto('Generate', 'generate', 'class="paddingleft"').''; } print '
    '; - print ' '.$langs->trans("PageForDocumentTab").' : '.($realpathtodocument ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtodocument).($realpathtodocument ? '' : '').''; + // Page document + print ' '.$langs->trans("PageForDocumentTab").' : '.(dol_is_file($realpathtodocument) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtodocument).(dol_is_file($realpathtodocument) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; if (dol_is_file($realpathtodocument)) { print ' '; print ''.img_picto($langs->trans("Delete"), 'delete').''; + } else { + print ''.img_picto('Generate', 'generate', 'class="paddingleft"').''; } print '
    '; - print ' '.$langs->trans("PageForNoteTab").' : '.($realpathtonote ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtonote).($realpathtonote ? '' : '').''; + // Page notes + print ' '.$langs->trans("PageForNoteTab").' : '.(dol_is_file($realpathtonote) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtonote).(dol_is_file($realpathtonote) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; if (dol_is_file($realpathtonote)) { print ' '; print ''.img_picto($langs->trans("Delete"), 'delete').''; + } else { + print ''.img_picto('Generate', 'generate', 'class="paddingleft"').''; } print '
    '; - print ' '.$langs->trans("PageForAgendaTab").' : '.($realpathtoagenda ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoagenda).($realpathtoagenda ? '' : '').''; + // Page agenda + print ' '.$langs->trans("PageForAgendaTab").' : '.(dol_is_file($realpathtoagenda) ? '' : '').preg_replace('/^'.strtolower($module).'\//', '', $pathtoagenda).(dol_is_file($realpathtoagenda) ? '' : '').''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; if (dol_is_file($realpathtoagenda)) { print ' '; print ''.img_picto($langs->trans("Delete"), 'delete').''; + } else { + print ''.img_picto('Generate', 'generate', 'class="paddingleft"').''; } print '
    '; print '
    '; @@ -2726,24 +2871,6 @@ if ($module == 'initmodule') { print '


    '; - clearstatcache(true); - if (function_exists('opcache_invalidate')) { - opcache_invalidate($dirread.'/'.$pathtoclass, true); // remove the include cache hell ! - } - - if (empty($forceddirread) && empty($dirread)) { - $result = dol_include_once($pathtoclass); - } else { - $result = @include_once $dirread.'/'.$pathtoclass; - } - if (class_exists($tabobj)) { - try { - $tmpobjet = @new $tabobj($db); - } catch (Exception $e) { - dol_syslog('Failed to load Constructor of class: '.$e->getMessage(), LOG_WARNING); - } - } - if (!empty($tmpobjet)) { $reflector = new ReflectionClass($tabobj); $reflectorproperties = $reflector->getProperties(); // Can also use get_object_vars @@ -2755,6 +2882,7 @@ if ($module == 'initmodule') { print ''; print ''; print ''; + print ''; print ''; print ''; @@ -2943,8 +3071,8 @@ if ($module == 'initmodule') { print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; } else { print ''; @@ -3036,7 +3164,7 @@ if ($module == 'initmodule') { if (preg_match('/\.md$/i', $spec['name'])) { $format = 'markdown'; } - print ' '.$langs->trans("SpecificationFile").' : '.$pathtofile.''; + print ' '.$langs->trans("SpecificationFile").' : '.$pathtofile.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; } @@ -3076,7 +3204,7 @@ if ($module == 'initmodule') { print ''; } else { - print ''.$langs->trans('Failed to init the object with the new.').''; + print ''.$langs->trans('Failed to init the object with the new '.$tabobj.'($db)').''; } } catch (Exception $e) { print $e->getMessage(); @@ -3115,6 +3243,231 @@ if ($module == 'initmodule') { print dol_get_fiche_end(); // Level 3 } + if ($tab == 'dictionaries') { + print ''."\n"; + $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath']; + + $dicts = $moduleobj->dictionaries; + + if ($action != 'editfile' || empty($file)) { + print ''; + $htmlhelp = $langs->trans("DictionariesDefDescTooltip", '{s1}'); + $htmlhelp = str_replace('{s1}', ''.$langs->trans('Setup').' - '.$langs->trans('Dictionaries').'', $htmlhelp); + print $form->textwithpicto($langs->trans("DictionariesDefDesc"), $htmlhelp, 1, 'help', '', 0, 2, 'helpondesc').'
    '; + print '
    '; + print '
    '; + + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
    '; + if (is_array($dicts) && !empty($dicts)) { + print ' '.$langs->trans("LanguageFile").' :
    '; + print ''.$dicts['langs'].''; + print '
    '; + } + + print ''."\n"; + $head3 = array(); + $h = 0; + + // Dir for module + //$dir = $dirread.'/'.$modulelowercase.'/class'; + + $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=dictionaries&module='.$module.($forceddirread ? '@'.$dirread : '').'&tabdic=newdictionary'; + $head3[$h][1] = ''.$langs->trans("NewDictionary").''; + $head3[$h][2] = 'newdictionary'; + $h++; + + // Scan for object class files + //$listofobject = dol_dir_list($dir, 'files', 0, '\.class\.php$'); + + $firstdicname = ''; + foreach ($dicts['tabname'] as $key => $dic) { + $dicname = $dic; + $diclabel = $dicts['tablib'][$key]; + + if (empty($firstdicname)) { + $firstdicname = $dicname; + } + + $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=dictionaries&module='.$module.($forceddirread ? '@'.$dirread : '').'&tabdic='.$dicname; + $head3[$h][1] = $diclabel; + $head3[$h][2] = $dicname; + $h++; + } + + if ($h > 1) { + $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=dictionaries&module='.$module.($forceddirread ? '@'.$dirread : '').'&tabdic=deletedictionary'; + $head3[$h][1] = $langs->trans("DangerZone"); + $head3[$h][2] = 'deletedictionary'; + $h++; + } + + // If tabobj was not defined, then we check if there is one obj. If yes, we force on it, if no, we will show tab to create new objects. + if ($tabdic == 'newdicifnodic') { + if ($firstdicname) { + $tabdic = $firstdicname; + } else { + $tabdic = 'newdictionary'; + } + } + + print load_fiche_titre($langs->trans("ListOfDictionariesEntries"), '', ''); + + print '
    '; + print ''; + print ''; + print ''; + print ''; + print ''; + + print '
    '; + print ''; + + print ''; + print_liste_field_titre("#", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'thsticky thstickygrey '); + print_liste_field_titre("Table", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Label", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("SQL", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("SQLSort", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("FieldsView", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("FieldsEdit", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("FieldsInsert", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Rowid", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Condition", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print "\n"; + + if (!empty($dicts) && is_array($dicts) && !empty($dicts['tabname']) && is_array($dicts['tabname'])) { + $i = 0; + $maxi = count($dicts['tabname']); + while ($i < $maxi) { + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + $i++; + } + } else { + print ''; + } + + print '
    '; + print ($i + 1); + print ''; + print $dicts['tabname'][$i]; + print ''; + print $dicts['tablib'][$i]; + print ''; + print $dicts['tabsql'][$i]; + print ''; + print $dicts['tabsqlsort'][$i]; + print ''; + print $dicts['tabfield'][$i]; + print ''; + print $dicts['tabfieldvalue'][$i]; + print ''; + print $dicts['tabfieldinsert'][$i]; + print ''; + print $dicts['tabrowid'][$i]; + print ''; + print $dicts['tabcond'][$i]; + print '
    '.$langs->trans("None").'
    '; + print '
    '; + + print '
    '; + + print dol_get_fiche_head($head3, $tabdic, '', -1, ''); // Level 3 + + if ($tabdic == 'newdictionary') { + // New dic tab + print '
    '; + print ''; + print ''; + print ''; + print ''; + + print ''.$langs->trans("EnterNameOfDictionaryDesc").'

    '; + + print '
    '; + //print '
    '; + //print '
    '; + print ''; + /*print '
    '; + print '
    '; + print '
    '; + print ''.$langs->trans("or").''; + print '
    '; + print '
    '; + //print ' '; + print $langs->trans("InitStructureFromExistingTable"); + print ''; + print ''; + print '
    '; + */ + print '
    '; + } elseif ($tabdic == 'deletedictionary') { + // Delete dic tab + print '
    '; + print ''; + print ''; + print ''; + print ''; + + print $langs->trans("EnterNameOfObjectToDeleteDesc").'

    '; + + print ''; + print ''; + print '
    '; + } else { + print $langs->trans("FeatureNotYetAvailable"); + } + + print dol_get_fiche_end(); + } else { + $fullpathoffile = dol_buildpath($file, 0); + + $content = file_get_contents($fullpathoffile); + + // New module + print '
    '; + print ''; + print ''; + print ''; + print ''; + print ''; + + $doleditor = new DolEditor('editfilecontent', $content, '', '300', 'Full', 'In', true, false, 'ace', 0, '99%'); + print $doleditor->Create(1, '', false, $langs->trans("File").' : '.$file, (GETPOST('format', 'aZ09') ?GETPOST('format', 'aZ09') : 'html')); + print '
    '; + print '
    '; + print ''; + print '   '; + print ''; + print '
    '; + + print '
    '; + } + } + if ($tab == 'menus') { print ''."\n"; $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath']; @@ -3129,7 +3482,7 @@ if ($module == 'initmodule') { print '
    '; print '
    '; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; @@ -3148,18 +3501,18 @@ if ($module == 'initmodule') { print ''; print_liste_field_titre("#", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'thsticky '); - print_liste_field_titre("Type", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Position", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); print_liste_field_titre("LinkToParentMenu", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Title", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); print_liste_field_titre("mainmenu", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); print_liste_field_titre("leftmenu", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("RelativeURL", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("URL", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, '', $langs->transnoentitiesnoconv('DetailUrl')); print_liste_field_titre("LanguageFile", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Position", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'right '); - print_liste_field_titre("Enabled", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'center '); - print_liste_field_titre("Permission", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Target", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("UserType", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'right '); + print_liste_field_titre("Enabled", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'center ', $langs->trans('DetailEnabled')); + print_liste_field_titre("Rights", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, '', $langs->trans('DetailRight')); + print_liste_field_titre("Target", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, '', $langs->trans('DetailTarget')); + print_liste_field_titre("MenuForUsers", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder, 'right ', $langs->trans('DetailUser')); print "\n"; if (count($menus)) { @@ -3218,7 +3571,15 @@ if ($module == 'initmodule') { print ''; print ''; - print dol_escape_htmltag($menu['user']); + if ($menu['user'] == 2) { + print $langs->trans("AllMenus"); + } elseif ($menu['user'] == 0) { + print $langs->trans('Internal'); + } elseif ($menu['user'] == 1) { + print $langs->trans('External'); + } else { + print $menu['user']; // should not happen + } print ''; print ''; @@ -3271,7 +3632,7 @@ if ($module == 'initmodule') { print ''; print '
    '; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; @@ -3361,7 +3722,7 @@ if ($module == 'initmodule') { $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath']; print ''; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''; @@ -3370,7 +3731,7 @@ if ($module == 'initmodule') { $pathtohook = strtolower($module).'/class/actions_'.strtolower($module).'.class.php'; print ' '.$langs->trans("HooksFile").' : '; if (dol_is_file($dirins.'/'.$pathtohook)) { - print ''.$pathtohook.''; + print ''.$pathtohook.''; print ''; print ''.img_picto($langs->trans("Edit"), 'edit').' '; print ''.img_picto($langs->trans("Delete"), 'delete').''; @@ -3421,7 +3782,7 @@ if ($module == 'initmodule') { $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath']; print ''; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''; @@ -3431,7 +3792,7 @@ if ($module == 'initmodule') { $pathtofile = $trigger['relpath']; print ''; - print ' '.$langs->trans("TriggersFile").' : '.$pathtofile.''; + print ' '.$langs->trans("TriggersFile").' : '.$pathtofile.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; print ''; @@ -3484,7 +3845,7 @@ if ($module == 'initmodule') { $pathtohook = strtolower($module).'/css/'.strtolower($module).'.css.php'; print ' '.$langs->trans("CSSFile").' : '; if (dol_is_file($dirins.'/'.$pathtohook)) { - print ''.$pathtohook.''; + print ''.$pathtohook.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; } else { @@ -3530,7 +3891,7 @@ if ($module == 'initmodule') { $pathtohook = strtolower($module).'/js/'.strtolower($module).'.js.php'; print ' '.$langs->trans("JSFile").' : '; if (dol_is_file($dirins.'/'.$pathtohook)) { - print ''.$pathtohook.''; + print ''.$pathtohook.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; } else { @@ -3579,7 +3940,7 @@ if ($module == 'initmodule') { foreach ($widgets as $widget) { $pathtofile = $widget['relpath']; - print ' '.$langs->trans("WidgetFile").' : '.$pathtofile.''; + print ' '.$langs->trans("WidgetFile").' : '.$pathtofile.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; print ''; @@ -3627,7 +3988,7 @@ if ($module == 'initmodule') { print ''.$langs->transnoentities('ImportExportProfiles').'
    '; print '
    '; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; } else { @@ -3698,7 +4059,7 @@ if ($module == 'initmodule') { foreach ($clifiles as $clifile) { $pathtofile = $clifile['relpath']; - print ' '.$langs->trans("CLIFile").' : '.$pathtofile.''; + print ' '.$langs->trans("CLIFile").' : '.$pathtofile.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; print ''; @@ -3745,7 +4106,7 @@ if ($module == 'initmodule') { print ''.str_replace('{s1}', ''.$langs->transnoentities('CronList').'', $langs->trans("CronJobDefDesc", '{s1}')).'
    '; print '
    '; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
    '; @@ -3874,7 +4235,7 @@ if ($module == 'initmodule') { $format = 'markdown'; } print ''; - print ' '.$langs->trans("SpecificationFile").' : '.$pathtofile.''; + print ' '.$langs->trans("SpecificationFile").' : '.$pathtofile.''; print ''.img_picto($langs->trans("Edit"), 'edit').''; print ''.img_picto($langs->trans("Delete"), 'delete').''; print ''; diff --git a/htdocs/modulebuilder/template/admin/myobject_extrafields.php b/htdocs/modulebuilder/template/admin/myobject_extrafields.php index 5ce224c8528..7a530721526 100644 --- a/htdocs/modulebuilder/template/admin/myobject_extrafields.php +++ b/htdocs/modulebuilder/template/admin/myobject_extrafields.php @@ -91,6 +91,8 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ +$textobject = $langs->transnoentitiesnoconv("MyObject"); + $help_url = ''; $page_name = "MyModuleSetup"; @@ -113,7 +115,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/modulebuilder/template/admin/setup.php b/htdocs/modulebuilder/template/admin/setup.php index eeca8b77358..1c46028b142 100644 --- a/htdocs/modulebuilder/template/admin/setup.php +++ b/htdocs/modulebuilder/template/admin/setup.php @@ -78,65 +78,90 @@ $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scan_dir', 'alpha'); $type = 'myobject'; -$arrayofparameters = array( - 'MYMODULE_MYPARAM1'=>array('type'=>'string', 'css'=>'minwidth500' ,'enabled'=>1), - 'MYMODULE_MYPARAM2'=>array('type'=>'textarea','enabled'=>1), - //'MYMODULE_MYPARAM3'=>array('type'=>'category:'.Categorie::TYPE_CUSTOMER, 'enabled'=>1), - //'MYMODULE_MYPARAM4'=>array('type'=>'emailtemplate:thirdparty', 'enabled'=>1), - //'MYMODULE_MYPARAM5'=>array('type'=>'yesno', 'enabled'=>1), - //'MYMODULE_MYPARAM5'=>array('type'=>'thirdparty_type', 'enabled'=>1), - //'MYMODULE_MYPARAM6'=>array('type'=>'securekey', 'enabled'=>1), - //'MYMODULE_MYPARAM7'=>array('type'=>'product', 'enabled'=>1), -); $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 = 0; -// Convert arrayofparameter into a formSetup object -if ($useFormSetup && (float) DOL_VERSION >= 15) { - require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php'; - $formSetup = new FormSetup($db); +$useFormSetup = 1; - // you can use the param convertor - $formSetup->addItemsFromParamsArray($arrayofparameters); - - // or use the new system see exemple as follow (or use both because you can ;-) ) - - /* - // Hôte - $item = $formSetup->newItem('NO_PARAM_JUST_TEXT'); - $item->fieldOverride = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST']; - $item->cssClass = 'minwidth500'; - - // Setup conf MYMODULE_MYPARAM1 as a simple string input - $item = $formSetup->newItem('MYMODULE_MYPARAM1'); - - // Setup conf MYMODULE_MYPARAM1 as a simple textarea input but we replace the text of field title - $item = $formSetup->newItem('MYMODULE_MYPARAM2'); - $item->nameText = $item->getNameText().' more html text '; - - // Setup conf MYMODULE_MYPARAM3 - $item = $formSetup->newItem('MYMODULE_MYPARAM3'); - $item->setAsThirdpartyType(); - - // Setup conf MYMODULE_MYPARAM4 : exemple of quick define write style - $formSetup->newItem('MYMODULE_MYPARAM4')->setAsYesNo(); - - // Setup conf MYMODULE_MYPARAM5 - $formSetup->newItem('MYMODULE_MYPARAM5')->setAsEmailTemplate('thirdparty'); - - // Setup conf MYMODULE_MYPARAM6 - $formSetup->newItem('MYMODULE_MYPARAM6')->setAsSecureKey()->enabled = 0; // disabled - - // Setup conf MYMODULE_MYPARAM7 - $formSetup->newItem('MYMODULE_MYPARAM7')->setAsProduct(); - */ - - $setupnotempty = count($formSetup->items); +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 MYMODULE_MYPARAM1 as a simple string input +$item = $formSetup->newItem('MYMODULE_MYPARAM1'); +$item->defaultFieldValue = 'default value'; + +// Setup conf MYMODULE_MYPARAM1 as a simple textarea input but we replace the text of field title +$item = $formSetup->newItem('MYMODULE_MYPARAM2'); +$item->nameText = $item->getNameText().' more html text '; + +// Setup conf MYMODULE_MYPARAM3 +$item = $formSetup->newItem('MYMODULE_MYPARAM3'); +$item->setAsThirdpartyType(); + +// Setup conf MYMODULE_MYPARAM4 : exemple of quick define write style +$formSetup->newItem('MYMODULE_MYPARAM4')->setAsYesNo(); + +// Setup conf MYMODULE_MYPARAM5 +$formSetup->newItem('MYMODULE_MYPARAM5')->setAsEmailTemplate('thirdparty'); + +// Setup conf MYMODULE_MYPARAM6 +$formSetup->newItem('MYMODULE_MYPARAM6')->setAsSecureKey()->enabled = 0; // disabled + +// Setup conf MYMODULE_MYPARAM7 +$formSetup->newItem('MYMODULE_MYPARAM7')->setAsProduct(); + +$formSetup->newItem('Title')->setAsTitle(); + +// Setup conf MYMODULE_MYPARAM8 +$item = $formSetup->newItem('MYMODULE_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('MYMODULE_MYPARAM8'); + + +// Setup conf MYMODULE_MYPARAM9 +$formSetup->newItem('MYMODULE_MYPARAM9')->setAsSelect($TField); + + +// Setup conf MYMODULE_MYPARAM10 +$item = $formSetup->newItem('MYMODULE_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']); @@ -145,6 +170,11 @@ $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') { @@ -177,7 +207,7 @@ if ($action == 'updateMask') { $file = dol_buildpath($reldir."core/modules/mymodule/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0); if (file_exists($file)) { $filefound = 1; - $classname = "pdf_".$modele; + $classname = "pdf_".$modele."_".strtolower($tmpobjectkey); break; } } @@ -188,7 +218,7 @@ if ($action == 'updateMask') { $module = new $classname($db); if ($module->write_file($tmpobject, $langs) > 0) { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf"); + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=mymodule-".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf"); return; } else { setEventMessages($module->error, null, 'errors'); @@ -271,191 +301,15 @@ echo ''.$langs->trans("MyModuleSetupPage").'< if ($action == 'edit') { - if ($useFormSetup && (float) DOL_VERSION >= 15) { - print $formSetup->generateOutput(true); - } else { - print '
    '; - print ''; - print ''; - - print ''; - print ''; - - foreach ($arrayofparameters as $constname => $val) { - if ($val['enabled']==1) { - $setupnotempty++; - print ''; - } - } - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '; - $tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : ''); - print ''.$form->textwithpicto($langs->trans($constname), $tooltiphelp, 1, 'info', '', 0, 3, 'tootips'.$constname).''; - print ''; - - 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->Create(); - } elseif ($val['type'] == 'yesno') { - print $form->selectyesno($constname, $conf->global->{$constname}, 1); - } elseif (preg_match('/emailtemplate:/', $val['type'])) { - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - - $tmp = explode(':', $val['type']); - $nboftemplates = $formmail->fetchAllEMailTemplate($tmp[1], $user, null, 1); // We set lang=null to get in priority record with no lang - //$arraydefaultmessage = $formmail->getEMailTemplate($db, $tmp[1], $user, null, 0, 1, ''); - $arrayofmessagename = array(); - if (is_array($formmail->lines_model)) { - foreach ($formmail->lines_model as $modelmail) { - //var_dump($modelmail); - $moreonlabel = ''; - if (!empty($arrayofmessagename[$modelmail->label])) { - $moreonlabel = ' (' . $langs->trans("SeveralLangugeVariatFound") . ')'; - } - // The 'label' is the key that is unique if we exclude the language - $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); - } 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'; - $formother = new FormOther($db); - - $tmp = explode(':', $val['type']); - 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'; - $formcompany = new FormCompany($db); - print $formcompany->selectProspectCustomerType($conf->global->{$constname}, $constname); - } elseif ($val['type'] == 'securekey') { - 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".''; - } - } elseif ($val['type'] == 'product') { - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { - $selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname); - $form->select_produits($selected, $constname, '', 0); - } - } else { - print ''; - } - print '
    '; - - print '
    '; - print ''; - print '
    '; - - print '
    '; - } - + print $formSetup->generateOutput(true); print '
    '; +} elseif (!empty($formSetup->items)) { + print $formSetup->generateOutput(); + print '
    '; + print ''.$langs->trans("Modify").''; + print '
    '; } else { - if ($useFormSetup && (float) DOL_VERSION >= 15) { - if (!empty($formSetup->items)) { - print $formSetup->generateOutput(); - } - } else { - if (!empty($arrayofparameters)) { - print ''; - print ''; - - foreach ($arrayofparameters as $constname => $val) { - if ($val['enabled']==1) { - $setupnotempty++; - print ''; - } - } - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '; - $tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : ''); - print $form->textwithpicto($langs->trans($constname), $tooltiphelp); - print ''; - - if ($val['type'] == 'textarea') { - print dol_nl2br($conf->global->{$constname}); - } elseif ($val['type']== 'html') { - print $conf->global->{$constname}; - } elseif ($val['type'] == 'yesno') { - print ajax_constantonoff($constname); - } elseif (preg_match('/emailtemplate:/', $val['type'])) { - 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'); - } - print $langs->trans($template->label); - } elseif (preg_match('/category:/', $val['type'])) { - $c = new Categorie($db); - $result = $c->fetch($conf->global->{$constname}); - if ($result < 0) { - setEventMessages(null, $c->errors, 'errors'); - } elseif ($result > 0 ) { - $ways = $c->print_all_ways(' >> ', 'none', 0, 1); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text - $toprint = array(); - foreach ($ways as $way) { - $toprint[] = '
  • color ? ' style="background: #' . $c->color . ';"' : ' style="background: #bbb"') . '>' . $way . '
  • '; - } - print '
      ' . implode(' ', $toprint) . '
    '; - } - } elseif (preg_match('/thirdparty_type/', $val['type'])) { - if ($conf->global->{$constname}==2) { - print $langs->trans("Prospect"); - } elseif ($conf->global->{$constname}==3) { - print $langs->trans("ProspectCustomer"); - } elseif ($conf->global->{$constname}==1) { - print $langs->trans("Customer"); - } elseif ($conf->global->{$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->ref; - } elseif ($resprod < 0) { - setEventMessages(null, $object->errors, "errors"); - } - } else { - print $conf->global->{$constname}; - } - print '
    '; - } - } - - if ($setupnotempty) { - print '
    '; - print ''.$langs->trans("Modify").''; - print '
    '; - } else { - print '
    '.$langs->trans("NothingToSetup"); - } + print '
    '.$langs->trans("NothingToSetup"); } @@ -531,7 +385,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; $constforvar = 'MYMODULE_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -673,7 +527,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'MYMODULE_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + 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').''; @@ -701,7 +555,8 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Preview print ''; if ($module->type == 'pdf') { - print ''.img_object($langs->trans("Preview"), 'pdf').''; + $newname = preg_replace('/_'.preg_quote(strtolower($myTmpObjectKey), '/').'/', '', $name); + print ''.img_object($langs->trans("Preview"), 'pdf').''; } else { print img_object($langs->trans("PreviewNotAvailable"), 'generic'); } diff --git a/htdocs/modulebuilder/template/ajax/myobject.php b/htdocs/modulebuilder/template/ajax/myobject.php new file mode 100644 index 00000000000..3e22eb25f22 --- /dev/null +++ b/htdocs/modulebuilder/template/ajax/myobject.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 htdocs/mymodule/ajax/myobject.php + * \brief File to return Ajax response on product list request + */ + +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('NOREQUIRESOC')) { + define('NOREQUIRESOC', '1'); +} +if (!defined('NOCSRFCHECK')) { + define('NOCSRFCHECK', '1'); +} +if (!defined('NOREQUIREHTML')) { + define('NOREQUIREHTML', '1'); +} + +// Load Dolibarr environment +require '../../main.inc.php'; + +$mode = GETPOST('mode', 'aZ09'); + +// Security check +restrictedArea($user, 'mymodule', 0, 'myobject'); + + +/* + * View + */ + +dol_syslog("Call ajax mymodule/ajax/myobject.php"); + +top_httphead('application/json'); + +$arrayresult = array(); + +// .... + +$db->close(); + +print json_encode($arrayresult); diff --git a/htdocs/modulebuilder/template/class/actions_mymodule.class.php b/htdocs/modulebuilder/template/class/actions_mymodule.class.php index 24be0243b8d..25e440d50c8 100644 --- a/htdocs/modulebuilder/template/class/actions_mymodule.class.php +++ b/htdocs/modulebuilder/template/class/actions_mymodule.class.php @@ -54,6 +54,11 @@ class ActionsMyModule */ public $resprints; + /** + * @var int Priority of hook (50 is used if value is not defined) + */ + public $priority; + /** * Constructor diff --git a/htdocs/modulebuilder/template/class/api_mymodule.class.php b/htdocs/modulebuilder/template/class/api_mymodule.class.php index 04bf641930d..736fd9ddc38 100644 --- a/htdocs/modulebuilder/template/class/api_mymodule.class.php +++ b/htdocs/modulebuilder/template/class/api_mymodule.class.php @@ -218,7 +218,7 @@ class MyModuleApi extends DolibarrApi } // Clean data - // $this->myobject->abc = checkVal($this->myobject->abc, 'alphanohtml'); + // $this->myobject->abc = sanitizeVal($this->myobject->abc, 'alphanohtml'); if ($this->myobject->create(DolibarrApiAccess::$user)<0) { throw new RestException(500, "Error creating MyObject", array_merge(array($this->myobject->error), $this->myobject->errors)); @@ -260,7 +260,7 @@ class MyModuleApi extends DolibarrApi } // Clean data - // $this->myobject->abc = checkVal($this->myobject->abc, 'alphanohtml'); + // $this->myobject->abc = sanitizeVal($this->myobject->abc, 'alphanohtml'); if ($this->myobject->update(DolibarrApiAccess::$user, false) > 0) { return $this->get($id); diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 288fd88eae6..8265bbadaf8 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -59,9 +59,9 @@ class MyObject extends CommonObject public $isextrafieldmanaged = 1; /** - * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png + * @var string String with name of icon for myobject. Must be a 'fa-xxx' fontawesome code (or 'fa-xxx_fa_color_size') or 'myobject@mymodule' if picto is file 'img/object_myobject.png'. */ - public $picto = 'myobject@mymodule'; + public $picto = 'fa-file'; const STATUS_DRAFT = 0; @@ -70,11 +70,21 @@ class MyObject extends CommonObject /** - * '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)" + * 'type' field format: + * 'integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]', + * 'select' (list of values are in 'options'), + * 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter[:Sortfield]]]]', + * 'chkbxlst:...', + * 'varchar(x)', + * 'text', 'text:none', 'html', + * 'double(24,8)', 'real', 'price', + * 'date', 'datetime', 'timestamp', 'duration', + * 'boolean', 'checkbox', 'radio', 'array', + * 'mail', 'phone', 'url', 'password', 'ip' + * 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) @@ -108,8 +118,8 @@ class MyObject extends CommonObject 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'searchall'=>1, 'css'=>'minwidth300', 'cssview'=>'wordbreak', 'help'=>'Help text', 'showoncombobox'=>2, 'validate'=>1), 'amount' => array('type'=>'price', 'label'=>'Amount', 'enabled'=>1, 'visible'=>1, 'default'=>'null', 'position'=>40, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text for amount', 'validate'=>1), 'qty' => array('type'=>'real', 'label'=>'Qty', 'enabled'=>1, 'visible'=>1, 'default'=>'0', 'position'=>45, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text for quantity', 'css'=>'maxwidth75imp', 'validate'=>1), - 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'picto'=>'company', 'label'=>'ThirdParty', 'visible'=> 1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'help'=>'LinkToThirparty', 'validate'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx'), - 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'picto'=>'project', 'enabled'=>1, 'visible'=>-1, 'position'=>52, 'notnull'=>-1, 'index'=>1, 'validate'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx'), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'picto'=>'company', 'label'=>'ThirdParty', 'visible'=> 1, 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'index'=>1, 'help'=>'OrganizationEventLinkToThirdParty', 'validate'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx'), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'picto'=>'project', 'enabled'=>'$conf->project->enabled', 'visible'=>-1, 'position'=>52, 'notnull'=>-1, 'index'=>1, 'validate'=>1, 'css'=>'maxwidth500 widthcentpercentminusxx'), 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>3, 'position'=>60, 'validate'=>1), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61, 'validate'=>1, 'cssview'=>'wordbreak'), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>62, 'validate'=>1, 'cssview'=>'wordbreak'), @@ -150,6 +160,12 @@ class MyObject extends CommonObject */ public $amount; + /** + * @var int Thirdparty ID + */ + public $socid; // both socid and fk_soc are used + public $fk_soc; // both socid and fk_soc are used + /** * @var int Status */ @@ -234,10 +250,10 @@ class MyObject extends CommonObject $this->db = $db; - if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) { + 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'])) { + if (!isModEnabled('multicompany') && isset($this->fields['entity'])) { $this->fields['entity']['enabled'] = 0; } @@ -338,7 +354,8 @@ class MyObject extends CommonObject 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; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -434,7 +451,7 @@ class MyObject extends CommonObject $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->table_element).")"; + $sql .= " WHERE t.entity IN (".getEntity($this->element).")"; } else { $sql .= " WHERE 1 = 1"; } @@ -507,7 +524,7 @@ class MyObject extends CommonObject * Delete object in database * * @param User $user User that deletes - * @param bool $notrigger false=launch triggers after, true=disable triggers + * @param bool $notrigger false=launch triggers, true=disable triggers * @return int <0 if KO, >0 if OK */ public function delete(User $user, $notrigger = false) @@ -556,8 +573,8 @@ class MyObject extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->myobject->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->myobject->myobject_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->myobject->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->myobject->myobject_advance->validate)))) { $this->error='NotEnoughPermissions'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); @@ -674,8 +691,8 @@ class MyObject extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->mymodule_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->mymodule_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -698,8 +715,8 @@ class MyObject extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->mymodule_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->mymodule_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -722,8 +739,8 @@ class MyObject extends CommonObject return 0; } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->mymodule_advance->validate)))) + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->write)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->mymodule->mymodule_advance->validate)))) { $this->error='Permission denied'; return -1; @@ -908,7 +925,8 @@ class MyObject extends CommonObject */ public function info($id) { - $sql = "SELECT rowid, date_creation as datec, tms as datem,"; + $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); @@ -917,28 +935,19 @@ class MyObject extends CommonObject if ($result) { 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; - } + $this->user_creation_id = $obj->fk_user_creat; + $this->user_modification_id = $obj->fk_user_modif; if (!empty($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 (!empty($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->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); @@ -975,8 +984,8 @@ class MyObject extends CommonObject $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_myobject = '.((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/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php b/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php index b50f4acf741..280f62dc2c1 100644 --- a/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php +++ b/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php @@ -24,7 +24,8 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets // CHANGE THIS: Set to 1 if selector is available for admin users only public $require_admin = 0; - public $enabled = 0; + public $enabled = '$conf->mymodule->enabled'; + public $require_module = array(); /** @@ -45,12 +46,8 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets */ public function __construct($db) { - global $conf; - $this->db = $db; - if (is_array($conf->modules)) { - $this->enabled = in_array('mymodule', $conf->modules) ? 1 : 0; - } + $this->enabled = isModEnabled('mymodule'); } diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php index b1caea730f9..973eb6ba915 100644 --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php @@ -205,7 +205,7 @@ class modMyModule extends DolibarrModules $this->dictionaries=array( 'langs'=>'mymodule@mymodule', // List of tables we want to see into dictonnary editor - 'tabname'=>array(MAIN_DB_PREFIX."table1", MAIN_DB_PREFIX."table2", MAIN_DB_PREFIX."table3"), + 'tabname'=>array("table1", "table2", "table3"), // Label of tables 'tablib'=>array("Table1", "Table2", "Table3"), // Request to select fields @@ -221,7 +221,9 @@ class modMyModule extends DolibarrModules // 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->mymodule->enabled, $conf->mymodule->enabled, $conf->mymodule->enabled) + 'tabcond'=>array($conf->mymodule->enabled, $conf->mymodule->enabled, $conf->mymodule->enabled), + // Tooltip for every fields of dictionaries: DO NOT PUT AN EMPTY ARRAY + 'tabhelp'=>array(array('code'=>$langs->trans('CodeTooltipHelp'), 'field2' => 'field2tooltip'), array('code'=>$langs->trans('CodeTooltipHelp'), 'field2' => 'field2tooltip'), ...), ); */ @@ -296,8 +298,8 @@ class modMyModule extends DolibarrModules 'url'=>'/mymodule/mymoduleindex.php', 'langs'=>'mymodule@mymodule', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000 + $r, - 'enabled'=>'$conf->mymodule->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->myobject->read' if you want your menu with a permission rules + 'enabled'=>'isModEnabled("mymodule")', // Define condition to show or hide menu entry. Use 'isModEnabled("mymodule")' if entry must be visible if module is enabled. + 'perms'=>'1', // Use 'perms'=>'$user->hasRight("mymodule", "myobject", "read")' if you want your menu with a permission rules 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); @@ -313,8 +315,8 @@ class modMyModule extends DolibarrModules 'url'=>'/mymodule/mymoduleindex.php', 'langs'=>'mymodule@mymodule', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, - 'enabled'=>'$conf->mymodule->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. - 'perms'=>'$user->rights->mymodule->myobject->read', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules + 'enabled'=>'isModEnabled("mymodule")', // Define condition to show or hide menu entry. Use 'isModEnabled("mymodule")' if entry must be visible if module is enabled. + 'perms'=>'$user->hasRight("mymodule", "myobject", "read")', 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); @@ -327,8 +329,8 @@ class modMyModule extends DolibarrModules 'url'=>'/mymodule/myobject_list.php', 'langs'=>'mymodule@mymodule', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, - 'enabled'=>'$conf->mymodule->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'=>'$user->rights->mymodule->myobject->read', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules + 'enabled'=>'isModEnabled("mymodule")', // Define condition to show or hide menu entry. Use 'isModEnabled("mymodule")' if entry must be visible if module is enabled. + 'perms'=>'$user->hasRight("mymodule", "myobject", "read")' 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); @@ -341,8 +343,8 @@ class modMyModule extends DolibarrModules 'url'=>'/mymodule/myobject_card.php?action=create', 'langs'=>'mymodule@mymodule', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. 'position'=>1000+$r, - 'enabled'=>'$conf->mymodule->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'=>'$user->rights->mymodule->myobject->write', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules + 'enabled'=>'isModEnabled("mymodule")', // Define condition to show or hide menu entry. Use 'isModEnabled("mymodule")' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected. + 'perms'=>'$user->hasRight("mymodule", "myobject", "write")' 'target'=>'', 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); @@ -426,7 +428,7 @@ class modMyModule extends DolibarrModules { global $conf, $langs; - //$result = $this->_load_tables('/install/mysql/tables/', 'mymodule'); + //$result = $this->_load_tables('/install/mysql/', 'mymodule'); $result = $this->_load_tables('/mymodule/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') diff --git a/htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php b/htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php index 689503f0dee..3011c932171 100644 --- a/htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php +++ b/htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php @@ -89,7 +89,6 @@ class doc_generic_myobject_odt extends ModelePDFMyObject $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 @@ -186,7 +185,13 @@ class doc_generic_myobject_odt extends ModelePDFMyObject $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 .= '
    '; @@ -277,7 +282,7 @@ class doc_generic_myobject_odt extends ModelePDFMyObject $newfiletmp = preg_replace('/\.od(t|s)/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); @@ -286,11 +291,11 @@ class doc_generic_myobject_odt extends ModelePDFMyObject 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; @@ -298,8 +303,8 @@ class doc_generic_myobject_odt extends ModelePDFMyObject dol_mkdir($conf->mymodule->dir_temp); if (!is_writable($conf->mymodule->dir_temp)) { - $this->error = "Failed to write in temp directory ".$conf->mymodule->dir_temp; - dol_syslog('Error in write_file: '.$this->error, LOG_ERR); + $this->error = $langs->transnoentities("ErrorFailedToWriteInTempDirectory", $conf->mymodule->dir_temp); + dol_syslog('Error in write_file: ' . $this->error, LOG_ERR); return -1; } diff --git a/htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php b/htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php index 1a435d3763d..3990d49fa6d 100644 --- a/htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php +++ b/htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php @@ -80,41 +80,6 @@ class pdf_standard_myobject extends ModelePDFMyObject */ public $version = 'dolibarr'; - /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - /** * Issuer * @var Societe Object that emits @@ -669,13 +634,13 @@ class pdf_standard_myobject extends ModelePDFMyObject // 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; @@ -751,6 +716,9 @@ class pdf_standard_myobject extends ModelePDFMyObject 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) { @@ -930,8 +898,8 @@ class pdf_standard_myobject extends ModelePDFMyObject pdf_pagehead($pdf, $outputlangs, $this->page_hauteur); // Show Draft Watermark - if ($object->statut == $object::STATUS_DRAFT && (!empty($conf->global->FACTURE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->FACTURE_DRAFT_WATERMARK); + if ($object->statut == $object::STATUS_DRAFT && getDolGlobalString('MYMODULE_DRAFT_WATERMARK')) { + pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', dol_escape_htmltag(getDolGlobalString('MYMODULE_DRAFT_WATERMARK'))); } $pdf->SetTextColor(0, 0, 60); diff --git a/htdocs/modulebuilder/template/core/modules/mymodule/mod_myobject_advanced.php b/htdocs/modulebuilder/template/core/modules/mymodule/mod_myobject_advanced.php index 0573edc6b2a..61186a3b4f3 100644 --- a/htdocs/modulebuilder/template/core/modules/mymodule/mod_myobject_advanced.php +++ b/htdocs/modulebuilder/template/core/modules/mymodule/mod_myobject_advanced.php @@ -79,7 +79,7 @@ class mod_myobject_advanced extends ModeleNumRefMyObject // Parametrage du prefix $texte .= ''.$langs->trans("Mask").':'; - $texte .= ''.$form->textwithpicto('', $tooltip, 1, 1).''; + $texte .= ''.$form->textwithpicto('', $tooltip, 1, 1).''; $texte .= '  '; $texte .= ''; @@ -130,7 +130,7 @@ class mod_myobject_advanced extends ModeleNumRefMyObject require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->MYMODULE_MYOBJECT_ADVANCED_MASK; + $mask = getDolGlobalString('MYMODULE_MYOBJECT_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/modulebuilder/template/core/modules/mymodule/modules_myobject.php b/htdocs/modulebuilder/template/core/modules/mymodule/modules_myobject.php index 8f0d86e3823..c2eeb232219 100644 --- a/htdocs/modulebuilder/template/core/modules/mymodule/modules_myobject.php +++ b/htdocs/modulebuilder/template/core/modules/mymodule/modules_myobject.php @@ -38,6 +38,42 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // requir abstract class ModelePDFMyObject extends CommonDocGenerator { + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Return list of active generation modules diff --git a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php index 37ece327185..2c76818ab84 100644 --- a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php +++ b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php @@ -177,7 +177,7 @@ class InterfaceMyModuleTriggers 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': @@ -314,7 +314,7 @@ class InterfaceMyModuleTriggers extends DolibarrTriggers // and more... default: - 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); break; } diff --git a/htdocs/modulebuilder/template/css/mymodule.css.php b/htdocs/modulebuilder/template/css/mymodule.css.php index 985cbe6aa18..260868a10bf 100644 --- a/htdocs/modulebuilder/template/css/mymodule.css.php +++ b/htdocs/modulebuilder/template/css/mymodule.css.php @@ -21,15 +21,13 @@ * \brief CSS file for module MyModule. */ -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled. Language code is found on url. +//if (!defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language +//if (!defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled. Language code is found on url. if (!defined('NOREQUIRESOC')) { define('NOREQUIRESOC', '1'); } -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled because need to do translations -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', 1); -} +//if (!defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled because need to do translations +//if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', 1); // Should be disable only for special situation if (!defined('NOTOKENRENEWAL')) { define('NOTOKENRENEWAL', 1); } @@ -80,7 +78,7 @@ if (!$res) { require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // Load user to have $user->conf loaded (not done by default here because of NOLOGIN constant defined) and load permission if we need to use them in CSS -/*if (empty($user->id) && ! empty($_SESSION['dol_login'])) { +/*if (empty($user->id) && !empty($_SESSION['dol_login'])) { $user->fetch('',$_SESSION['dol_login']); $user->getrights(); }*/ diff --git a/htdocs/modulebuilder/template/langs/en_US/mymodule.lang b/htdocs/modulebuilder/template/langs/en_US/mymodule.lang index ca8aa250748..cc518391c33 100644 --- a/htdocs/modulebuilder/template/langs/en_US/mymodule.lang +++ b/htdocs/modulebuilder/template/langs/en_US/mymodule.lang @@ -44,6 +44,7 @@ MyModuleAboutPage = MyModule about page # # Sample page # +MyModuleArea = Home MyModule MyPageName = My page name # diff --git a/htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php b/htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php index e3117d88303..d75f69a47f5 100644 --- a/htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php +++ b/htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php @@ -33,6 +33,11 @@ function myobjectPrepareHead($object) $langs->load("mymodule@mymodule"); + $showtabofpagecontact = 1; + $showtabofpagenote = 1; + $showtabofpagedocument = 1; + $showtabofpageagenda = 1; + $h = 0; $head = array(); @@ -41,40 +46,53 @@ function myobjectPrepareHead($object) $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] .= (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? ''.$nbNote.'' : ''); - } - $head[$h][2] = 'note'; + if ($showtabofpagecontact) { + $head[$h][0] = dol_buildpath("/mymodule/myobject_contact.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Contacts"); + $head[$h][2] = 'contact'; $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).''; + 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('/mymodule/myobject_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++; + } } - $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++; + 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->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++; + } + + if ($showtabofpageagenda) { + $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 diff --git a/htdocs/modulebuilder/template/mymoduleindex.php b/htdocs/modulebuilder/template/mymoduleindex.php index 15f3d83ac54..3b7b1b13009 100644 --- a/htdocs/modulebuilder/template/mymoduleindex.php +++ b/htdocs/modulebuilder/template/mymoduleindex.php @@ -62,19 +62,29 @@ $langs->loadLangs(array("mymodule@mymodule")); $action = GETPOST('action', 'aZ09'); +$max = 5; +$now = dol_now(); -// Security check -// if (! $user->rights->mymodule->myobject->read) { -// accessforbidden(); -// } +// Security check - Protection if external user $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 (!isModEnabled('mymodule')) { +// accessforbidden('Module not enabled'); +//} +//if (! $user->hasRight('mymodule', 'myobject', 'read')) { +// accessforbidden(); +//} +//restrictedArea($user, 'mymodule', 0, 'mymodule_myobject', 'myobject', '', 'rowid'); +//if (empty($user->admin)) { +// accessforbidden('Must be admin'); +//} /* @@ -100,7 +110,7 @@ print '
    '; /* BEGIN MODULEBUILDER DRAFT MYOBJECT // Draft MyObject -if (! empty($conf->mymodule->enabled) && $user->rights->mymodule->read) +if (isModEnabled('mymodule') && $user->rights->mymodule->read) { $langs->load("orders"); @@ -181,7 +191,7 @@ $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; /* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT // Last modified myobject -if (! empty($conf->mymodule->enabled) && $user->rights->mymodule->read) +if (isModEnabled('mymodule') && $user->rights->mymodule->read) { $sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms"; $sql.= " FROM ".MAIN_DB_PREFIX."mymodule_myobject as s"; diff --git a/htdocs/modulebuilder/template/myobject_agenda.php b/htdocs/modulebuilder/template/myobject_agenda.php index b40092f93a7..f0d7ffa1439 100644 --- a/htdocs/modulebuilder/template/myobject_agenda.php +++ b/htdocs/modulebuilder/template/myobject_agenda.php @@ -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,8 +37,7 @@ //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 +//if (! defined("MAIN_SECURITY_FORCECSP")) define('MAIN_SECURITY_FORCECSP', 'none'); // Disable all Content Security Policies //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 @@ -148,7 +146,9 @@ if ($enablepermissioncheck) { //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->mymodule->enabled)) accessforbidden(); +if (!isModEnabled("mymodule")) { + accessforbidden(); +} if (!$permissiontoread) accessforbidden(); @@ -186,7 +186,7 @@ $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); @@ -210,7 +210,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') . ' '; if ($permissiontoadd) { @@ -230,7 +230,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(); @@ -279,7 +279,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -289,8 +289,8 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $param = '&id='.$object->id.'&socid='.$socid; + 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); } diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 6d5c807c3f0..4bc0b797b47 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -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 (! 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,8 +37,7 @@ //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 +//if (! defined("MAIN_SECURITY_FORCECSP")) define('MAIN_SECURITY_FORCECSP', 'none'); // Disable all Content Security Policies //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 //if (! defined('NOSESSION')) define('NOSESSION', '1'); // Disable session @@ -87,13 +85,15 @@ $langs->loadLangs(array("mymodule@mymodule", "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') : 'myobjectcard'; // To manage different context of search +$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'); -$lineid = GETPOST('lineid', 'int'); +$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09'); // Initialize technical objects $object = new MyObject($db); @@ -146,8 +146,12 @@ $upload_dir = $conf->mymodule->multidir_output[isset($object->entity) ? $object- //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->mymodule->enabled)) accessforbidden(); -if (!$permissiontoread) accessforbidden(); +if (!isModEnabled("mymodule")) { + accessforbidden(); +} +if (!$permissiontoread) { + accessforbidden(); +} /* @@ -242,8 +246,7 @@ llxHeader('', $title, $help_url); // Part to create if ($action == 'create') { if (empty($permissiontoadd)) { - accessforbidden($langs->trans('NotEnoughPermissions'), 0, 1); - exit; + accessforbidden('NotEnoughPermissions', 0, 1); } print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("MyObject")), '', 'object_'.$object->picto); @@ -344,7 +347,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 == 'xxx') { $text = $langs->trans('ConfirmActionMyObject', $object->ref); - /*if (! empty($conf->notification->enabled)) + /*if (!empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); @@ -391,7 +394,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) { @@ -409,7 +412,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(); @@ -589,7 +592,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', dol_buildpath('/mymodule/myobject_agenda.php', 1).'?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', dol_buildpath('/mymodule/myobject_agenda.php', 1).'?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/modulebuilder/template/myobject_contact.php b/htdocs/modulebuilder/template/myobject_contact.php index 64f5ebba976..b0f7b5cfb30 100644 --- a/htdocs/modulebuilder/template/myobject_contact.php +++ b/htdocs/modulebuilder/template/myobject_contact.php @@ -94,7 +94,9 @@ if ($enablepermissioncheck) { //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->mymodule->enabled)) accessforbidden(); +if (!isModEnabled("mymodule")) { + accessforbidden(); +} if (!$permissiontoread) accessforbidden(); @@ -173,7 +175,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') . ' '; @@ -194,7 +196,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/modulebuilder/template/myobject_document.php b/htdocs/modulebuilder/template/myobject_document.php index aa213461e24..6aed7382b7d 100644 --- a/htdocs/modulebuilder/template/myobject_document.php +++ b/htdocs/modulebuilder/template/myobject_document.php @@ -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,8 +37,7 @@ //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 +//if (! defined("MAIN_SECURITY_FORCECSP")) define('MAIN_SECURITY_FORCECSP', 'none'); // Disable all Content Security Policies //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 @@ -140,8 +138,16 @@ if ($enablepermissioncheck) { //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->mymodule->enabled)) accessforbidden(); -if (!$permissiontoread) accessforbidden(); +if (!isModEnabled("mymodule")) { + accessforbidden(); +} +if (!$permissiontoread) { + accessforbidden(); +} +if (empty($object->id)) { + accessforbidden(); +} + /* @@ -162,100 +168,94 @@ $help_url = ''; //$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); -if ($object->id) { - /* - * Show tabs - */ - $head = myobjectPrepareHead($object); +// Show tabs +$head = myobjectPrepareHead($object); - print dol_get_fiche_head($head, 'document', $langs->trans("MyObject"), -1, $object->picto); +print dol_get_fiche_head($head, 'document', $langs->trans("MyObject"), -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->projet->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 = 'mymodule'; - //$permissiontoadd = $user->rights->mymodule->myobject->write; - $permissiontoadd = 1; - //$permtoedit = $user->rights->mymodule->myobject->write; - $permtoedit = 1; - $param = '&id='.$object->id; - - //$relativepathwithnofile='myobject/' . dol_sanitizeFileName($object->id).'/'; - $relativepathwithnofile = 'myobject/'.dol_sanitizeFileName($object->ref).'/'; - - include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; -} else { - accessforbidden('', 0, 1); +// 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 = 'mymodule'; +//$permissiontoadd = $user->rights->mymodule->myobject->write; +$permissiontoadd = 1; +//$permtoedit = $user->rights->mymodule->myobject->write; +$permtoedit = 1; +$param = '&id='.$object->id; + +//$relativepathwithnofile='myobject/' . dol_sanitizeFileName($object->id).'/'; +$relativepathwithnofile = 'myobject/'.dol_sanitizeFileName($object->ref).'/'; + +include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; + // End of page llxFooter(); $db->close(); diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 0ecd42bda26..276e709019d 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -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,8 +37,7 @@ //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 +//if (! defined("MAIN_SECURITY_FORCECSP")) define('MAIN_SECURITY_FORCECSP', 'none'); // Disable all Content Security Policies //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 //if (! defined('NOSESSION')) define('NOSESSION', '1'); // On CLI mode, no need to use web sessions @@ -53,7 +51,8 @@ if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { // 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--; + $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"; @@ -94,12 +93,13 @@ $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk $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') : 'myobjectlist'; // To manage different context of search +$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'); $id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); // Load variable for pagination $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; @@ -197,7 +197,9 @@ 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->mymodule->enabled)) accessforbidden('Module not enabled'); +if (!isModEnabled("mymodule")) { + accessforbidden(); +} if (!$permissiontoread) accessforbidden(); @@ -259,7 +261,7 @@ $now = dol_now(); //$help_url = "EN:Module_MyObject|FR:Module_MyObject_FR|ES:Módulo_MyObject"; $help_url = ''; -$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("MyObjects")); +$title = $langs->trans("MyObjects"); $morejs = array(); $morecss = array(); @@ -378,8 +380,12 @@ 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); $resql = $db->query($sqlforcount); - $objforcount = $db->fetch_object($resql); - $nbtotalofrecords = $objforcount->nbtotalofrecords; + 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; @@ -415,7 +421,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'); // Example : Adding jquery code // print ''; + // Lines to produce @@ -1075,10 +1119,12 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $newcardbutton = ''; $url = $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=addproduceline&token='.newToken(); - $permissiontoaddaproductline = $object->status != $object::STATUS_PRODUCED && $object->status != $object::STATUS_CANCELED && $action != 'consumeorproduce' && $action != 'consumeandproduceall'; + $permissiontoaddaproductline = $object->status != $object::STATUS_PRODUCED && $object->status != $object::STATUS_CANCELED; $parameters = array('morecss'=>'reposition'); - if ($nblinetoproduce == 0 || $object->mrptype == 1) { - $newcardbutton = dolGetButtonTitle($langs->trans('AddNewProduceLines'), '', 'fa fa-plus-circle size15x', $url, '', $permissiontoaddaproductline, $parameters); + if ($action != 'consumeorproduce' && $action != 'consumeandproduceall') { + if ($nblinetoproduce == 0 || $object->mrptype == 1) { + $newcardbutton = dolGetButtonTitle($langs->trans('AddNewProduceLines'), '', 'fa fa-plus-circle size15x', $url, '', $permissiontoaddaproductline, $parameters); + } } print load_fiche_titre($langs->trans('Production'), $newcardbutton, '', 0, '', ''); @@ -1102,10 +1148,16 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print $langs->trans("Warehouse"); } print ''; - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { print ''; if ($collapse || in_array($action, array('consumeorproduce', 'consumeandproduceall'))) { print $langs->trans("Batch"); + + // Split + print ''; + + // Split All + print ''; } print ''; print ''; @@ -1130,7 +1182,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; // Lot - serial - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { print ''; } // Action @@ -1177,12 +1229,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''.$line->qty.''; if ($permissiontoupdatecost) { // Defined $manufacturingcost - $manufacturingcost = $bomcost; - if (empty($manufacturingcost)) { - $manufacturingcost = price2num($tmpproduct->cost_price, 'MU'); - } - if (empty($manufacturingcost)) { - $manufacturingcost = price2num($tmpproduct->pmp, 'MU'); + $manufacturingcost = 0; + if ($object->mrptype == 0) { // If MO is a "Manufacture" type (and not "Disassemble" + $manufacturingcost = $bomcost; + if (empty($manufacturingcost)) { + $manufacturingcost = price2num($tmpproduct->cost_price, 'MU'); + } + if (empty($manufacturingcost)) { + $manufacturingcost = price2num($tmpproduct->pmp, 'MU'); + } } print ''; @@ -1217,7 +1272,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; print ''; // Warehouse print ''; - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { print ''; // Lot } @@ -1258,7 +1313,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } } print ''; - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { print ''; if ($line2['batch'] != '') { $tmpbatch->fetch(0, $line2['fk_product'], $line2['batch']); @@ -1266,13 +1321,20 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } print ''; print ''; + + // Split + print ''; + + // Split All + print ''; } print ''; } if (in_array($action, array('consumeorproduce', 'consumeandproduceall'))) { print ''."\n"; - print ''; + $maxQty = 1; + print ''; print ''.$langs->trans("ToProduce").''; $preselected = (GETPOSTISSET('qtytoproduce-'.$line->id.'-'.$i) ? GETPOST('qtytoproduce-'.$line->id.'-'.$i) : max(0, $line->qty - $alreadyproduced)); if ($action == 'consumeorproduce' && !GETPOSTISSET('qtytoproduce-'.$line->id.'-'.$i)) { @@ -1281,19 +1343,22 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; if ($permissiontoupdatecost) { // Defined $manufacturingcost - $manufacturingcost = $bomcost; - if (empty($manufacturingcost)) { - $manufacturingcost = price2num($tmpproduct->cost_price, 'MU'); - } - if (empty($manufacturingcost)) { - $manufacturingcost = price2num($tmpproduct->pmp, 'MU'); + $manufacturingcost = 0; + if ($object->mrptype == 0) { // If MO is a "Manufacture" type (and not "Disassemble" + $manufacturingcost = $bomcost; + if (empty($manufacturingcost)) { + $manufacturingcost = price2num($tmpproduct->cost_price, 'MU'); + } + if (empty($manufacturingcost)) { + $manufacturingcost = price2num($tmpproduct->pmp, 'MU'); + } } if ($tmpproduct->type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - $preselected = (GETPOSTISSET('pricetoproduce-'.$line->id.'-'.$i) ? GETPOST('pricetoproduce-'.$line->id.'-'.$i) : price($manufacturingcost)); + $preselected = (GETPOSTISSET('pricetoproduce-'.$line->id.'-'.$i) ? GETPOST('pricetoproduce-'.$line->id.'-'.$i) : ($manufacturingcost ? price($manufacturingcost) : '')); print ''; } else { - print ''; + print ''; } } print ''; @@ -1305,7 +1370,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''.$langs->trans("NoStockChangeOnServices").''; } print ''; - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { print ''; if ($tmpproduct->status_batch) { $preselected = (GETPOSTISSET('batchtoproduce-'.$line->id.'-'.$i) ? GETPOST('batchtoproduce-'.$line->id.'-'.$i) : ''); @@ -1316,7 +1381,13 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''; if ($tmpproduct->status_batch) { $type = 'batch'; + print ''; print img_picto($langs->trans('AddStockLocationLine'), 'split.png', 'class="splitbutton" onClick="addDispatchLine('.$line->id.', \''.$type.'\', \'qtymissing\')"'); + print ''; + + print ''; + if (($action == 'consumeorproduce' || $action == 'consumeandproduceall') && $tmpproduct->status_batch == 2) print img_picto($langs->trans('SplitAllQuantity'), 'split.png', 'class="splitbutton splitallbutton field-error-icon" onClick="addDispatchLine('.$line->id.', \'batch\', \'alltoproduce\')"'); // + print ''; } print ''; } diff --git a/htdocs/mrp/tpl/linkedobjectblock.tpl.php b/htdocs/mrp/tpl/linkedobjectblock.tpl.php index ff9aa269678..516e4eddf51 100644 --- a/htdocs/mrp/tpl/linkedobjectblock.tpl.php +++ b/htdocs/mrp/tpl/linkedobjectblock.tpl.php @@ -31,21 +31,23 @@ global $noMoreLinkedObjectBlockAfter; $langs = $GLOBALS['langs']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; +$object = $GLOBALS['object']; // Load translation files required by the page $langs->load("bom"); -$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); - $total = 0; $ilink = 0; -foreach ($linkedObjectBlock as $key => $objectlink) { + +$mo_static = new Mo($db); +$res = $mo_static->fetch($object->id); +$TMoChilds = $mo_static->getMoChilds(); + +foreach ($TMoChilds as $key => $objectlink) { $ilink++; - $product_static = new Product($db); + $trclass = 'oddeven'; - if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) { - $trclass .= ' liste_sub_total'; - } + echo ''; echo ''.$langs->trans("ManufacturingOrder"); if (!empty($showImportButton) && $conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) { @@ -55,26 +57,14 @@ foreach ($linkedObjectBlock as $key => $objectlink) { echo ''.$objectlink->getNomUrl(1).''; echo ''; - $result = $product_static->fetch($objectlink->fk_product); - if ($result < 0) { - setEventMessage($product_static->error, 'errors'); - } elseif ($result > 0) { - $product_static->getNomUrl(1); - } + // $result = $product_static->fetch($objectlink->fk_product); print ''; echo ''.dol_print_date($objectlink->date_creation, 'day').''; - echo ''; - if ($user->rights->commande->lire) { - $total = $total + $objectlink->total_ht; - echo price($objectlink->total_ht); - } - echo ''; + echo '-'; echo ''.$objectlink->getLibStatut(3).''; echo ''; // For now, shipments must stay linked to order, so link is not deletable - if ($object->element != 'shipping') { - echo ''.img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink').''; - } + echo ''.img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink').''; echo ''; echo "\n"; } diff --git a/htdocs/mrp/tpl/originproductline.tpl.php b/htdocs/mrp/tpl/originproductline.tpl.php index ba1d7fccd86..bd4ecbc4cd4 100644 --- a/htdocs/mrp/tpl/originproductline.tpl.php +++ b/htdocs/mrp/tpl/originproductline.tpl.php @@ -22,22 +22,44 @@ if (empty($conf) || !is_object($conf)) { exit; } -if (!is_object($form)) { +global $db; + +if (!empty($form) && !is_object($form)) { $form = new Form($db); } -$qtytoconsumeforline = $this->tpl['qty'] / ( ! empty($this->tpl['efficiency']) ? $this->tpl['efficiency'] : 1 ); +$qtytoconsumeforline = $this->tpl['qty'] / ( !empty($this->tpl['efficiency']) ? $this->tpl['efficiency'] : 1 ); /*if ((empty($this->tpl['qty_frozen']) && $this->tpl['qty_bom'] > 1)) { $qtytoconsumeforline = $qtytoconsumeforline / $this->tpl['qty_bom']; }*/ $qtytoconsumeforline = price2num($qtytoconsumeforline, 'MS'); +$tmpproduct = new Product($db); +$tmpproduct->fetch($line->fk_product); +$tmpbom = new BOM($db); +$res = $tmpbom->fetch($line->fk_bom_child); + ?> tpl['strike']) ? '' : ' strikefordisabled').'">'; -print ''.$this->tpl['label'].''; +// Ref or label +print ''; +if ($res) { + print $tmpproduct->getNomUrl(1); + if ($tmpbom->id) { + print ' ' . $langs->trans("or") . ' '; + print $tmpbom->getNomUrl(1); + print ' '; + print (empty($conf->global->BOM_SHOW_ALL_BOM_BY_DEFAULT) ? img_picto('', 'folder') : img_picto('', 'folder-open')); + } + print ''; +} else { + print $this->tpl['label']; +} +print ''; +// Qty print ''.$this->tpl['qty'].(($this->tpl['efficiency'] > 0 && $this->tpl['efficiency'] < 1) ? ' / '.$form->textwithpicto($this->tpl['efficiency'], $langs->trans("ValueOfMeansLoss")).' = '.$qtytoconsumeforline : '').''; print ''.(empty($this->tpl['stock']) ? 0 : price2num($this->tpl['stock'], 'MS')); if ($this->tpl['seuil_stock_alerte'] != '' && ($this->tpl['stock'] < $this->tpl['seuil_stock_alerte'])) { @@ -57,9 +79,96 @@ $selected = 1; if (!empty($selectedLines) && !in_array($this->tpl['id'], $selectedLines)) { $selected = 0; } -print ''; + +if ($tmpbom->id > 0) { + print ''; + print ''; + print ''; +} else { + print ''; +} + +//print ''; //print ''; -print ''; +//print ''; + print ''."\n"; + +// Select of all the sub-BOM lines +$sql = 'SELECT rowid, fk_bom_child, fk_product, qty FROM '.MAIN_DB_PREFIX.'bom_bomline AS bl'; +$sql.= ' WHERE fk_bom ='. (int) $tmpbom->id; +$resql = $db->query($sql); + +if ($resql) { + // Loop on all the sub-BOM lines if they exist + while ($obj = $db->fetch_object($resql)) { + $sub_bom_product = new Product($db); + $sub_bom_product->fetch($obj->fk_product); + $sub_bom_product->load_stock(); + + $sub_bom = new BOM($db); + $sub_bom->fetch($obj->fk_bom_child); + + $sub_bom_line = new BOMLine($db); + $sub_bom_line->fetch($obj->rowid); + + //If hidden conf is set, we show directly all the sub-BOM lines + if (empty($conf->global->BOM_SHOW_ALL_BOM_BY_DEFAULT)) { + print ''; + } else { + print ''; + } + + // Product OR BOM + print ''; + if (!empty($obj->fk_bom_child)) { + print $sub_bom_product->getNomUrl(1); + print ' '.$langs->trans('or').' '; + print $sub_bom->getNomUrl(1); + } else { + print $sub_bom_product->getNomUrl(1); + print ''; + } + + // Qty + if ($sub_bom_line->qty_frozen > 0) { + print ''.price($sub_bom_line->qty, 0, '', 0, 0).''; + } else { + print ''.price($sub_bom_line->qty * $line->qty, 0, '', 0, 0).''; + } + + // Stock réel + if ($sub_bom_product->stock_reel > 0) { + print ''.$sub_bom_product->stock_reel.''; + } else { + print ' '; + } + + // Stock virtuel + if ($sub_bom_product->stock_theorique > 0) { + print ''.$sub_bom_product->stock_theorique.''; + } else { + print ' '; + } + + // Frozen qty + if ($sub_bom_line->qty_frozen > 0) { + print ''.$langs->trans('Yes').''; + } else { + print ' '; + } + + // Disable stock change + if ($sub_bom_line->disable_stock_change > 0) { + print ''.yn($sub_bom_line->disable_stock_change).''; + } else { + print ' '; + } + + print ''; + print ''; + } +} + ?> diff --git a/htdocs/multicurrency/multicurrency_rate.php b/htdocs/multicurrency/multicurrency_rate.php index 46742995bec..7e9000909f1 100644 --- a/htdocs/multicurrency/multicurrency_rate.php +++ b/htdocs/multicurrency/multicurrency_rate.php @@ -23,22 +23,25 @@ * 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/multicurrency/multicurrency_rate.php - * \ingroup multicurrency - * \brief Page to list multicurrency rate + * \file htdocs/multicurrency/multicurrency_rate.php + * \ingroup multicurrency + * \brief Page to list multicurrency rate */ +// 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/multicurrency.lib.php'; + // Load translation files required by the page $langs->loadLangs(array('multicurrency')); +// Get Parameters $action = GETPOST('action', 'alpha'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); @@ -66,15 +69,16 @@ $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortfield) $sortfield = "cr.date_sync"; -if (!$sortorder) $sortorder = "ASC"; +if (!$sortorder) $sortorder = "DESC"; + + +// Initialize technical objects +$object = new CurrencyRate($db); +$form = new Form($db); +$extrafields = new ExtraFields($db); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array of hooks -$object = new CurrencyRate($db); - -$extrafields = new ExtraFields($db); -$form = new Form($db); - $hookmanager->initHooks(array('EditorRatelist', 'globallist')); if (empty($action)) { @@ -102,17 +106,31 @@ $arrayfields = dol_sort_array($arrayfields, 'position'); // Access control // TODO Open this page to a given permission so a sale representative can modify change rates. Permission should be added into module multicurrency. // One permission to read rates (history) and one to add/edit rates. -if (!$user->admin || empty($conf->multicurrency->enabled)) { +if (!$user->admin || !isModEnabled("multicurrency")) { accessforbidden(); } +$error = 0; + /* * Actions */ if ($action == "create") { - if (!empty($rateinput)) { + if (empty($multicurrency_code) || $multicurrency_code == '-1') { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Currency")), null, "errors"); + $error++; + } + if ($rateinput === '0') { + setEventMessages($langs->trans('NoEmptyRate'), null, "errors"); + $error++; + } elseif (empty($rateinput)) { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Rate")), null, "errors"); + $error++; + } + + if (!$error) { $currencyRate_static = new CurrencyRate($db); $currency_static = new MultiCurrency($db); $fk_currency = $currency_static->getIdFromCode($db, $multicurrency_code); @@ -129,8 +147,6 @@ if ($action == "create") { dol_syslog("currencyRate:createRate", LOG_WARNING); setEventMessages($currencyRate_static->error, $currencyRate_static->errors, 'errors'); } - } else { - setEventMessages($langs->trans('NoEmptyRate'), null, "errors"); } } @@ -261,7 +277,7 @@ if (!in_array($action, array("updateRate", "deleteRate"))) { print ' '.$langs->trans('Currency').''; print ''.$form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code', 'alpha') : $multicurrency_code), 'multicurrency_code', 1, " code != '".$db->escape($conf->currency)."'", true).''; - print ' '.$langs->trans('Rate').''; + print ' '.$langs->trans('Rate').' / '.$langs->getCurrencySymbol($conf->currency).''; print ' '; print ''; @@ -280,7 +296,7 @@ if (!in_array($action, array("updateRate", "deleteRate"))) { -$sql = 'SELECT cr.rowid, cr.date_sync, cr.rate, cr.entity, m.code, m.name '; +$sql = 'SELECT cr.rowid, cr.date_sync, cr.rate, cr.entity, m.code, m.name'; // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook @@ -494,16 +510,17 @@ if ($resql) { } // code - if (! empty($arrayfields['m.code']['checked'])) { + if (!empty($arrayfields['m.code']['checked'])) { print ''; - print $obj->code." ".$obj->name; + print $obj->code; + print ' - '.$obj->name.''; print "\n"; if (! $i) $totalarray['nbfield']++; } // rate - if (! empty($arrayfields['cr.rate']['checked'])) { + if (!empty($arrayfields['cr.rate']['checked'])) { print ''; print $obj->rate; print "\n"; diff --git a/htdocs/opensurvey/card.php b/htdocs/opensurvey/card.php index fdb138eaf76..2fa2f6d9f31 100644 --- a/htdocs/opensurvey/card.php +++ b/htdocs/opensurvey/card.php @@ -18,15 +18,16 @@ */ /** - * \file htdocs/opensurvey/card.php - * \ingroup opensurvey - * \brief Page to edit survey + * \file htdocs/opensurvey/card.php + * \ingroup opensurvey + * \brief Page to edit survey */ +// Load Dolibarr environment require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT."/core/class/doleditor.class.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."/core/class/doleditor.class.php"; require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php"; require_once DOL_DOCUMENT_ROOT."/opensurvey/lib/opensurvey.lib.php"; @@ -36,7 +37,7 @@ if (empty($user->rights->opensurvey->read)) { accessforbidden(); } -// Initialisation des variables +// Initialize Variables $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); @@ -46,6 +47,7 @@ if (GETPOST('id')) { $numsondage = (string) GETPOST('id', 'alpha'); } +// Initialize objects $object = new Opensurveysondage($db); $result = $object->fetch(0, $numsondage); @@ -404,7 +406,7 @@ print load_fiche_titre($langs->trans("CommentsOfVoters"), '', ''); // Comment list $comments = $object->getComments(); -if ($comments) { +if (!empty($comments)) { foreach ($comments as $comment) { if ($user->rights->opensurvey->write) { print ' '.img_picto('', 'delete.png', '', false, 0, 0, '', '', 0).' '; diff --git a/htdocs/opensurvey/exportcsv.php b/htdocs/opensurvey/exportcsv.php index 76e4ffd9023..a7e8b709793 100644 --- a/htdocs/opensurvey/exportcsv.php +++ b/htdocs/opensurvey/exportcsv.php @@ -1,6 +1,6 @@ - * Copyright (C) 2014 Marcos García +/* Copyright (C) 2013 Laurent Destailleur + * Copyright (C) 2014 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 @@ -17,23 +17,26 @@ */ /** - * \file htdocs/opensurvey/exportcsv.php - * \ingroup opensurvey - * \brief Page to list surveys + * \file htdocs/opensurvey/exportcsv.php + * \ingroup opensurvey + * \brief Page to list surveys */ +// 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"; + $action = GETPOST('action', 'aZ09'); $numsondage = ''; if (GETPOST('id')) { $numsondage = GETPOST("id", 'alpha'); } +// Initialize Objects $object = new Opensurveysondage($db); $result = $object->fetch(0, $numsondage); if ($result <= 0) { diff --git a/htdocs/opensurvey/index.php b/htdocs/opensurvey/index.php index ba608723816..35e2b013525 100644 --- a/htdocs/opensurvey/index.php +++ b/htdocs/opensurvey/index.php @@ -23,6 +23,7 @@ * \brief Home page of opensurvey area */ +// 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/opensurvey/list.php b/htdocs/opensurvey/list.php index b05abe3fd40..44241007dfb 100644 --- a/htdocs/opensurvey/list.php +++ b/htdocs/opensurvey/list.php @@ -22,6 +22,7 @@ * \brief Page to list surveys */ +// 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"; @@ -90,7 +91,7 @@ foreach ($arrayfields as $key => $val) { } } // Extra fields -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) { +if (isset($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { if (!empty($extrafields->attributes[$object->table_element]['list'][$key])) { $arrayfields["ef.".$key] = array( @@ -137,7 +138,7 @@ if (empty($reshook)) { $search_status = ''; $search_title = ''; $search_ref = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index bb2e3604627..f8a2648a809 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -23,6 +23,7 @@ * \brief Page to preview votes of a survey */ +// 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"; @@ -75,7 +76,7 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x")) { // bo } } - $nom = substr(GETPOST("nom", 'nohtml'), 0, 64); + $nom = substr(GETPOST("nom", 'alphanohtml'), 0, 64); // Check if vote already exists $sql = 'SELECT id_users, nom as name'; @@ -471,7 +472,7 @@ print ''; $adresseadmin = $object->mail_admin; print $langs->trans("Title").''; if ($action == 'edit') { - print ''; + print ''; } else { print dol_htmlentities($object->title); } @@ -609,7 +610,7 @@ if (GETPOST('ajoutsujet')) { print ' '; - print $formother->select_year('', 'nouvelleannee', 1, 0, 5, 0, 1); + print $formother->selectyear('', 'nouvelleannee', 1, 0, 5, 0, 1); print '

    '.$langs->trans("AddStartHour").':

    '."\n"; print ''; -print ''; -print ''; +print ''; +print ''; print ''; print ajax_combobox('select_PARTNERSHIP_IS_MANAGED_FOR'); print ''; @@ -133,7 +133,7 @@ print ''.$langs->trans("partnershipforthirdparty print ''; -//if (!empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) && $conf->global->PARTNERSHIP_IS_MANAGED_FOR == 'member') { +//if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR') == 'member') { print ''.$langs->trans("PARTNERSHIP_NBDAYS_AFTER_MEMBER_EXPIRATION_BEFORE_CANCEL").''; print ''; $dnbdays = '30'; diff --git a/htdocs/partnership/admin/website.php b/htdocs/partnership/admin/website.php index 5fb48248280..b3bccf9fa00 100644 --- a/htdocs/partnership/admin/website.php +++ b/htdocs/partnership/admin/website.php @@ -24,6 +24,7 @@ * \brief File of main public page for partnership 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/company.lib.php'; @@ -78,12 +79,14 @@ if ($action == 'update') { $form = new Form($db); +$title = $langs->trans('PartnershipSetup'); +$help_url = ''; //$help_url = 'EN:Module_Partnership|FR:Module_Adhérents|ES:Módulo_Miembros'; -llxHeader('', $langs->trans("PartnershipsSetup"), $help_url); +llxHeader('', $title, $help_url); $linkback = ''.$langs->trans("BackToModuleList").''; -print load_fiche_titre($langs->trans("PartnershipsSetup"), $linkback, 'title_setup'); +print load_fiche_titre($title, $linkback, 'title_setup'); $head = partnershipAdminPrepareHead(); @@ -93,7 +96,7 @@ print '
    '; print ''; print ''; -print dol_get_fiche_head($head, 'website', $langs->trans("Partnerships"), -1, 'user'); +print dol_get_fiche_head($head, 'website', $langs->trans("Partnerships"), -1, 'partnership'); if ($conf->use_javascript_ajax) { print "\n".''; } print ''; @@ -544,7 +559,7 @@ if ($id > 0 || $ref) { print ''; // Availability - if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) { + if (getDolGlobalInt('FOURN_PRODUCT_AVAILABILITY')) { $langs->load("propal"); print ''.$langs->trans("Availability").''; $form->selectAvailabilityDelay($object->fk_availability, "oselDispo", 1); @@ -555,7 +570,7 @@ if ($id > 0 || $ref) { print ''; print ''.$langs->trans("QtyMin").''; print ''; - $quantity = GETPOSTISSET('qty') ? price2num(GETPOST('qty', 'nohtml'), 'MS') : "1"; + $quantity = GETPOSTISSET('qty') ? price2num(GETPOST('qty', 'alphanohtml'), 'MS') : "1"; if ($rowid) { print ''; print $object->fourn_qty; @@ -572,12 +587,12 @@ if ($id > 0 || $ref) { print ''; if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) { - // Packaging + // Packaging/Conditionnement print ''; print ''.$form->textwithpicto($langs->trans("PackagingForThisProduct"), $langs->trans("PackagingForThisProductDesc")).''; print ''; - $packaging = GETPOSTISSET('packaging') ? price2num(GETPOST('packaging', 'nohtml'), 'MS') : ((empty($rowid)) ? "1" : price2num($object->packaging, 'MS')); + $packaging = GETPOSTISSET('packaging') ? price2num(GETPOST('packaging', 'alphanohtml'), 'MS') : ((empty($rowid)) ? "1" : price2num($object->packaging, 'MS')); print ''; // Units @@ -653,7 +668,7 @@ if ($id > 0 || $ref) { '; } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Currency print ''.$langs->trans("Currency").''; print ''; @@ -662,7 +677,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 ''; print ''; @@ -764,18 +779,18 @@ END; // Reputation print ''.$langs->trans("ReferenceReputation").''; - echo $form->selectarray('supplier_reputation', $object->reputations, $supplier_reputation ? $supplier_reputation : $object->supplier_reputation); + echo $form->selectarray('supplier_reputation', $object->reputations, !empty($supplier_reputation) ? $supplier_reputation : $object->supplier_reputation); print ''; // Barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { $formbarcode = new FormBarCode($db); // Barcode type print ''; print ''.$langs->trans('BarcodeType').''; print ''; - print $formbarcode->selectBarcodeType(($rowid ? $object->supplier_fk_barcode_type : $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE), 'fk_barcode_type', 1); + print $formbarcode->selectBarcodeType(($rowid ? $object->supplier_fk_barcode_type : getDolGlobalint("PRODUIT_DEFAULT_BARCODE_TYPE")), 'fk_barcode_type', 1); print ''; print ''; @@ -787,7 +802,7 @@ END; } // Option to define a transport cost on supplier price - if ($conf->global->PRODUCT_CHARGES) { + if (!empty($conf->global->PRODUCT_CHARGES)) { if (!empty($conf->margin->enabled)) { print ''; print ''.$langs->trans("Charges").''; @@ -806,7 +821,7 @@ END; print ''.$langs->trans('ProductSupplierDescription').''; print ''; - $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_PRODUCTDESC'), ROWS_4, '90%'); $doleditor->Create(); print ''; @@ -815,7 +830,7 @@ END; // Extrafields $extrafields->fetch_name_optionals_label("product_fournisseur_price"); - $extralabels = $extrafields->attributes["product_fournisseur_price"]['label']; + $extralabels = !empty($extrafields->attributes["product_fournisseur_price"]['label']) ? $extrafields->attributes["product_fournisseur_price"]['label'] : ''; $extrafield_values = $extrafields->getOptionalsFromPost("product_fournisseur_price"); if (!empty($extralabels)) { if (empty($rowid)) { @@ -868,7 +883,7 @@ END; } if (is_object($hookmanager)) { - $parameters = array('id_fourn'=>$id_fourn, 'prod_id'=>$object->id); + $parameters = array('id_fourn'=>!empty($id_fourn) ? $id_fourn : 0, 'prod_id'=>$object->id); $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); print $hookmanager->resPrint; } @@ -930,16 +945,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.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' => $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.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 @@ -996,7 +1011,7 @@ END; } print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("PriceQtyMinHT", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print_liste_field_titre("PriceQtyMinHTCurrency", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); } if (!empty($arrayfields['pfp.unitprice']['checked'])) { @@ -1005,7 +1020,7 @@ END; if (!empty($arrayfields['pfp.multicurrency_unitprice']['checked'])) { print_liste_field_titre("UnitPriceHTCurrency", $_SERVER["PHP_SELF"], "pfp.multicurrency_unitprice", "", $param, '', $sortfield, $sortorder, 'right '); } - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print_liste_field_titre("Currency", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right '); } print_liste_field_titre("DiscountQtyMin", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right '); @@ -1076,9 +1091,9 @@ END; // Supplier ref if ($usercancreate) { // change required right here - print ''.$productfourn->getNomUrl().''; + print ''.$productfourn->getNomUrl().''; } else { - print ''.$productfourn->fourn_ref.''; + print ''.dol_escape_htmltag($productfourn->fourn_ref).''; } // Availability @@ -1109,13 +1124,13 @@ END; // Price for the quantity print ''; - print $productfourn->fourn_price ?price($productfourn->fourn_price) : ""; + print $productfourn->fourn_price ? ''.price($productfourn->fourn_price).'' : ""; print ''; - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { // Price for the quantity in currency print ''; - print $productfourn->fourn_multicurrency_price ? price($productfourn->fourn_multicurrency_price) : ""; + print $productfourn->fourn_multicurrency_price ? ''.price($productfourn->fourn_multicurrency_price).'' : ""; print ''; } @@ -1135,7 +1150,7 @@ END; } // Currency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { print ''; print $productfourn->fourn_multicurrency_code ? currency_name($productfourn->fourn_multicurrency_code) : ''; print ''; @@ -1230,9 +1245,9 @@ END; 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 ''; diff --git a/htdocs/product/index.php b/htdocs/product/index.php index cfdbddc875c..3ca5bfbc655 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->rights->produit->lire || $user->rights->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->rights->produit->lire || $user->rights->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,6 +341,11 @@ 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)) { $sql = "SELECT label"; @@ -360,8 +368,8 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us print $product_static->getNomUrl(1, '', 16); print "\n"; print ''.dol_escape_htmltag($objp->label).''; - print ""; - print dol_print_date($db->jdate($objp->datem), 'day'); + print 'jdate($objp->datem), 'dayhour', 'tzuserrel')).'">'; + print dol_print_date($db->jdate($objp->datem), 'day', 'tzuserrel'); print ""; // Sell price if (empty($conf->global->PRODUIT_MULTIPRICES)) { @@ -375,10 +383,12 @@ if ((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && ($us } } print ''; - 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 ''; } @@ -407,11 +417,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,7 +412,7 @@ 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").')'; } } @@ -461,7 +462,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - //$morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/product/inventory/inventory_info.php?id='.$object->id); + //$morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/product/inventory/inventory_info.php?id='.$object->id); $morehtmlcenter = ''; // List of actions on element diff --git a/htdocs/product/inventory/class/inventory.class.php b/htdocs/product/inventory/class/inventory.class.php index 81300d6bac8..281d58ea99e 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), // 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')) ); /** @@ -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); @@ -306,9 +317,14 @@ class Inventory extends CommonObject $inventoryline->fk_warehouse = $obj->fk_warehouse; $inventoryline->fk_product = $obj->fk_product; $inventoryline->batch = $obj->batch; - $inventoryline->qty_stock = ($obj->batch ? $obj->qty : $obj->reel); // If there is batch detail, we take qty for batch, else global qty $inventoryline->datec = dol_now(); + 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; + } + $resultline = $inventoryline->create($user); if ($resultline <= 0) { $this->error = $inventoryline->error; @@ -472,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; } @@ -745,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), @@ -755,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), ); /** @@ -799,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 204c6539c29..4718c066466 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'; @@ -28,6 +29,7 @@ include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; include_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php'; include_once DOL_DOCUMENT_ROOT.'/product/inventory/lib/inventory.lib.php'; include_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; +include_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php'; // Load translation files required by the page $langs->loadLangs(array("stocks", "other", "productbatch")); @@ -40,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'); @@ -85,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; @@ -96,6 +115,7 @@ if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { $now = dol_now(); + /* * Actions */ @@ -104,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) { @@ -159,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; } @@ -186,25 +207,6 @@ if (empty($reshook)) { break; } - if (!empty($line->pmp_real) && !empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { - $sqlpmp = 'UPDATE '.MAIN_DB_PREFIX.'product SET pmp = '.((float) $line->pmp_real).' WHERE rowid = '.((int) $line->fk_product); - $resqlpmp = $db->query($sqlpmp); - if (! $resqlpmp) { - $error++; - setEventMessages($db->lasterror(), null, 'errors'); - break; - } - if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { - $sqlpmp = 'UPDATE '.MAIN_DB_PREFIX.'product_perentity SET pmp = '.((float) $line->pmp_real).' WHERE fk_product = '.((int) $line->fk_product).' AND entity='.$conf->entity; - $resqlpmp = $db->query($sqlpmp); - if (! $resqlpmp) { - $error++; - setEventMessages($db->lasterror(), null, 'errors'); - break; - } - } - } - // Update line with id of stock movement (and the start quantity if it has changed this last recording) $sqlupdate = "UPDATE ".MAIN_DB_PREFIX."inventorydet"; $sqlupdate .= " SET fk_movement = ".((int) $idstockmove); @@ -219,6 +221,25 @@ if (empty($reshook)) { break; } } + + if (!empty($line->pmp_real) && !empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { + $sqlpmp = 'UPDATE '.MAIN_DB_PREFIX.'product SET pmp = '.((float) $line->pmp_real).' WHERE rowid = '.((int) $line->fk_product); + $resqlpmp = $db->query($sqlpmp); + if (! $resqlpmp) { + $error++; + setEventMessages($db->lasterror(), null, 'errors'); + break; + } + if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { + $sqlpmp = 'UPDATE '.MAIN_DB_PREFIX.'product_perentity SET pmp = '.((float) $line->pmp_real).' WHERE fk_product = '.((int) $line->fk_product).' AND entity='.$conf->entity; + $resqlpmp = $db->query($sqlpmp); + if (! $resqlpmp) { + $error++; + setEventMessages($db->lasterror(), null, 'errors'); + break; + } + } + } } $i++; } @@ -244,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(); @@ -294,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); @@ -313,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'; @@ -346,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); @@ -406,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(); @@ -445,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 @@ -492,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') . ' '; @@ -514,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(); @@ -551,8 +548,7 @@ if ($object->id > 0) { print dol_get_fiche_end(); - - print ''; + print ''; print ''; print ''; print ''; @@ -606,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").''; } @@ -904,20 +900,22 @@ if ($object->id > 0) { print ''; print ''.$langs->trans("Warehouse").''; print ''.$langs->trans("Product").''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; print $langs->trans("Batch"); print ''; } print ''.$langs->trans("ExpectedQty").''; - print ''; - print $form->textwithpicto($langs->trans("RealQty"), $langs->trans("InventoryRealQtyHelp")); - print ''; if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { print ''.$langs->trans('PMPExpected').''; print ''.$langs->trans('ExpectedValuation').''; + print ''.$form->textwithpicto($langs->trans("RealQty"), $langs->trans("InventoryRealQtyHelp")).''; print ''.$langs->trans('PMPReal').''; print ''.$langs->trans('RealValuation').''; + } else { + print ''; + print $form->textwithpicto($langs->trans("RealQty"), $langs->trans("InventoryRealQtyHelp")); + print ''; } if ($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_VALIDATED) { // Actions or link to stock movement @@ -940,24 +938,28 @@ if ($object->id > 0) { 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 ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; print ''; print ''; } print ''; - print ''; - print ''; - print ''; if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { print ''; print ''; print ''; print ''; print ''; + print ''; print ''; print ''; print ''; + print ''; + print ''; + } else { + print ''; + print ''; + print ''; } // Actions print ''; @@ -971,6 +973,7 @@ 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->plimit($limit, $offset); $cacheOfProducts = array(); $cacheOfWarehouses = array(); @@ -980,6 +983,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(); @@ -1018,9 +1025,15 @@ if ($object->id > 0) { print $product_static->getNomUrl(1).' - '.$product_static->label; print ''; - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; - print dol_escape_htmltag($obj->batch); + $batch_static = new Productlot($db); + $res = $batch_static->fetch(0, $product_static->id, $obj->batch); + if ($res) { + print $batch_static->getNomUrl(1); + } else { + print dol_escape_htmltag($obj->batch); + } print ''; } @@ -1029,7 +1042,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; @@ -1041,7 +1054,6 @@ if ($object->id > 0) { // Real quantity if ($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_VALIDATED) { - print ''; $qty_view = GETPOST("id_".$obj->rowid) && price2num(GETPOST("id_".$obj->rowid), 'MS') >= 0 ? GETPOST("id_".$obj->rowid) : $obj->qty_view; //if (!$hasinput && $qty_view !== null && $obj->qty_stock != $qty_view) { @@ -1049,14 +1061,9 @@ if ($object->id > 0) { $hasinput = true; } - print ''; - print img_picto('', 'eraser', 'class="opacitymedium"'); - print ''; - print ''; - print ''; - 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 ''; @@ -1066,11 +1073,19 @@ if ($object->id > 0) { print ''; print price($pmp_valuation); print ''; + + print ''; + print ''; + print img_picto('', 'eraser', 'class="opacitymedium"'); + print ''; + print ''; + print ''; + //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 * $qty_view; print ''; @@ -1081,21 +1096,25 @@ if ($object->id > 0) { $totalExpectedValuation += $pmp_valuation; $totalRealValuation += $pmp_valuation_real; + } else { + print ''; + print ''; + print img_picto('', 'eraser', 'class="opacitymedium"'); + print ''; + print ''; + print ''; } // 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 ''; print ''; } else { - print ''; - print $obj->qty_view; // qty found - print ''; 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 ''; @@ -1105,9 +1124,13 @@ if ($object->id > 0) { print price($pmp_valuation); print ''; + print ''; + print $obj->qty_view; // qty found + print ''; + //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); @@ -1119,6 +1142,10 @@ if ($object->id > 0) { $totalExpectedValuation += $pmp_valuation; $totalRealValuation += $pmp_valuation_real; + } else { + print ''; + print $obj->qty_view; // qty found + print ''; } if ($obj->fk_movement > 0) { $stockmovment = new MouvementStock($db); @@ -1136,9 +1163,9 @@ if ($object->id > 0) { } if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { print ''; - print ''.$langs->trans("Total").''; + print ''.$langs->trans("Total").''; print ''.price($totalExpectedValuation).''; - print ''.price($totalRealValuation).''; + print ''.price($totalRealValuation).''; print ''; print ''; } @@ -1165,8 +1192,50 @@ if ($object->id > 0) { } print ''; + print ''; + + + if (!empty($conf->global->INVENTORY_MANAGE_REAL_PMP)) { ?> '; + + +// Part to create +if ($action == 'create') { + print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("StockTransfer")), '', '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'; + + if (!empty($conf->incoterm->enabled)) { + print ''; + print ''; + print ''; + } + // Template to use by default + print ''; + print '"; + + // Other attributes + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; + + print '
    '; + print $form->select_incoterms((!empty($soc->fk_incoterms) ? $soc->fk_incoterms : ''), (!empty($soc->location_incoterms) ? $soc->location_incoterms : ''), '', 'fk_incoterms'); + print '
    '.$langs->trans('DefaultModel').''; + print img_picto('', 'pdf', 'class="pictofixedwidth"'); + include_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php'; + $liste = ModelePDFStockTransfer::liste_modeles($db); + $preselected = $conf->global->STOCKTRANSFER_ADDON_PDF; + print $form->selectarray('model', $liste, $preselected, 0, 0, 0, '', 0, 0, 0, '', 'maxwidth200 widthcentpercentminusx', 1); + print "
    '."\n"; + + print dol_get_fiche_end(); + + print '
    '; + print ''; + print '  '; + print ''; // Cancel for create does not post form if we don't know the backtopage + print '
    '; + + print '
    '; + + //dol_set_focus('input[name="ref"]'); +} + +// Part to edit record +if (($id || $ref) && $action == 'edit') { + //if($object->status < 3) { + print load_fiche_titre($langs->trans("StockTransfer"), '', '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 '
    '; + print '   '; + print '
    '; + + print '
    '; + //} else $action = 'view'; +} + +// Part to show record +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { + $res = $object->fetch_optionals(); + + $head = stocktransferPrepareHead($object); + print dol_get_fiche_head($head, 'card', $langs->trans("StockTransfer"), -1, $object->picto); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Delete'), $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); + } elseif ($action == 'destock') { // Destock confirmation + // Create an array for form + $formquestion = array( 'text' => '', + array('type' => 'text', 'name' => 'label', 'label' => $langs->trans("Label"), 'value' => $langs->trans('ConfirmDestock', $object->ref), 'size'=>40), + array('type' => 'text', 'name' => 'inventorycode', 'label' => $langs->trans("InventoryCode"), 'value' => dol_print_date(dol_now(), '%y%m%d%H%M%S'), 'size'=>25) + ); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DestockAllProduct'), '', 'confirm_destock', $formquestion, 'yes', 1); + } elseif ($action == 'destockcancel') { // Destock confirmation cancel + // Create an array for form + $formquestion = array( 'text' => '', + array('type' => 'text', 'name' => 'label', 'label' => $langs->trans("Label"), 'value' => $langs->trans('ConfirmDestockCancel', $object->ref), 'size'=>40), + array('type' => 'text', 'name' => 'inventorycode', 'label' => $langs->trans("InventoryCode"), 'value' => dol_print_date(dol_now(), '%y%m%d%H%M%S'), 'size'=>25) + ); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DestockAllProductCancel'), '', 'confirm_destockcancel', $formquestion, 'yes', 1); + } elseif ($action == 'addstock') { // Addstock confirmation + // Create an array for form + $formquestion = array( 'text' => '', + array('type' => 'text', 'name' => 'label', 'label' => $langs->trans("Label").' :', 'value' => $langs->trans('ConfirmAddStock', $object->ref), 'size'=>40), + array('type' => 'text', 'name' => 'inventorycode', 'label' => $langs->trans("InventoryCode"), 'value' => dol_print_date(dol_now(), '%y%m%d%H%M%S'), 'size'=>25) + ); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('AddStockAllProduct'), '', 'confirm_addstock', $formquestion, 'yes', 1); + } elseif ($action == 'addstockcancel') { // Addstock confirmation cancel + // Create an array for form + $formquestion = array( 'text' => '', + array('type' => 'text', 'name' => 'label', 'label' => $langs->trans("Label").' :', 'value' => $langs->trans('ConfirmAddStockCancel', $object->ref), 'size'=>40), + array('type' => 'text', 'name' => 'inventorycode', 'label' => $langs->trans("InventoryCode"), 'value' => dol_print_date(dol_now(), '%y%m%d%H%M%S'), 'size'=>25) + ); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('AddStockAllProductCancel'), '', 'confirm_addstockcancel', $formquestion, 'yes', 1); + } + + // Confirmation of action xxxx + if ($action == 'xxx') { + $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); + } + + + if ($action == 'valid' && $permissiontoadd) { + $nextref=$object->getNextNumRef(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Validate'), $langs->transnoentities('ConfirmValidateStockTransfer', $nextref), 'confirm_validate', $formquestion, 0, 2); + } + + // 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 = '
    '; + + // Thirdparty + if (isModEnabled('societe')) { + $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 + + $object->fields['fk_soc']['visible']=0; // Already available in banner + $object->fields['fk_project']['visible']=0; // Already available in banner + include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; + + // Incoterms + if (!empty($conf->incoterm->enabled)) { + print ''; + print ''; + } + + echo ''; + echo ''; + echo ''; + // Other attributes. Fields from hook formObjectOptions and Extrafields. + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; + + print '
    '; + print '
    '; + print $langs->trans('IncotermLabel'); + print ''; + if ($permissiontoadd && $action != 'editincoterm') 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 '
    '.$langs->trans('EnhancedValue').' '.strtolower($langs->trans('TotalWoman')); + echo ''.price($object->getValorisationTotale(), 0, '', 1, -1, -1, $conf->currency).'
    '; + 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 + $object->formAddObjectLine(1, $mysoc, $soc); + + $parameters = array(); + $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + } + } + + if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) + { + print '
    '; + } + print '
    '; + + print "
    \n";*/ + } + + + $formproduct = new FormProduct($db); + print '
    '; + print '
    + + + + + '; + if ($lineid > 0) print ''; + print ''; + //print '
    '; + + $param = ''; + + $conf->global->MAIN_DISABLE_WRAPPING_ON_COLUMN_TITLE=true; // Full display needed to see all column title details + + print '
    '; + print getTitleFieldOfList($langs->trans('ProductRef'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone '); + if (isModEnabled('productbatch')) { + print getTitleFieldOfList($langs->trans('Batch'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone '); + } + print getTitleFieldOfList($langs->trans('WarehouseSource'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone '); + print getTitleFieldOfList($langs->trans('WarehouseTarget'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone '); + print getTitleFieldOfList($langs->trans('Qty'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'center tagtd maxwidthonsmartphone '); + if ($conf->global->PRODUCT_USE_UNITS) { + print getTitleFieldOfList($langs->trans('Unit'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone '); + } + print getTitleFieldOfList($langs->trans('AverageUnitPricePMPShort'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'center tagtd maxwidthonsmartphone '); + print getTitleFieldOfList($langs->trans('EstimatedStockValueShort'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'center tagtd maxwidthonsmartphone '); + if (empty($object->status) && $permissiontoadd) { + print getTitleFieldOfList('', 0); + print getTitleFieldOfList('', 0); + print getTitleFieldOfList('', 0); + } + + print ''; + + $listofdata = $object->getLinesArray(); + $productstatic = new Product($db); + $warehousestatics = new Entrepot($db); + $warehousestatict = new Entrepot($db); + + foreach ($listofdata as $key => $line) { + $productstatic->fetch($line->fk_product); + $warehousestatics->fetch($line->fk_warehouse_source); + $warehousestatict->fetch($line->fk_warehouse_destination); + + // add html5 elements + $domData = ' data-element="'.$line->element.'"'; + $domData .= ' data-id="'.$line->id.'"'; + $domData .= ' data-qty="'.$line->qty.'"'; + //$domData .= ' data-product_type="'.$line->product_type.'"'; + + print ''; + print ''; + if (isModEnabled('productbatch')) { + print ''; + } + + print ''; + print ''; + if ($action === 'editline' && $line->id == $lineid) print ''; + else print ''; + + if ($conf->global->PRODUCT_USE_UNITS) { + print ''; + } + + print ''; + print ''; + if (empty($object->status) && $permissiontoadd) { + if ($action === 'editline' && $line->id == $lineid) { + //print ''; + print ''; + } else { + print ''; + print ''; + } + + $num = count($object->lines); + + if ($num > 1 && $conf->browser->layout != 'phone' && empty($disablemove)) { + print ''; + $coldisplay++; + } + } + + print ''; + } + + if (empty($object->status) && $action !== 'editline' && $permissiontoadd) { + print ''; + // Product + print ''; + // Batch number + if (isModEnabled('productbatch')) { + print ''; + } + + $formproduct->loadWarehouses(); // Pour charger la totalité des entrepôts + + // On stock ceux qui ne doivent pas être proposés dans la liste + $TExcludedWarehouseSource=array(); + if (!empty($object->fk_warehouse_source)) { + $source_ent = new Entrepot($db); + $source_ent->fetch($object->fk_warehouse_source); + foreach ($formproduct->cache_warehouses as $TDataCacheWarehouse) { + if (strpos($TDataCacheWarehouse['full_label'], $source_ent->label) === false) $TExcludedWarehouseSource[] = $TDataCacheWarehouse['id']; + } + } + + // On stock ceux qui ne doivent pas être proposés dans la liste + $TExcludedWarehouseDestination=array(); + if (!empty($object->fk_warehouse_destination)) { + $dest_ent = new Entrepot($db); + $dest_ent->fetch($object->fk_warehouse_destination); + foreach ($formproduct->cache_warehouses as $TDataCacheWarehouse) { + if (strpos($TDataCacheWarehouse['full_label'], $dest_ent->label) === false) $TExcludedWarehouseDestination[] = $TDataCacheWarehouse['id']; + } + } + + // On vide le tableau pour qu'il se charge tout seul lors de l'appel à la fonction select_warehouses + $formproduct->cache_warehouses=array(); + // In warehouse + print ''; + + // On vide le tableau pour qu'il se charge tout seul lors de l'appel à la fonction select_warehouses + $formproduct->cache_warehouses=array(); + // Out warehouse + print ''; + + // Qty + print ''; + // PMP + print ''; + if ($conf->global->PRODUCT_USE_UNITS) { + // Unité + print ''; + } + // PMP * Qty + print ''; + // Button to add line + print ''; + // Grad and drop lines + print ''; + print ''; + } + + print '
    '; + if ($action === 'editline' && $line->id == $lineid) $form->select_produits($line->fk_product, 'fk_product', $filtertype, $limit, 0, -1, 2, '', 0, array(), 0, 0, 0, 'minwidth200imp maxwidth300', 1); + else print $productstatic->getNomUrl(1).' - '.$productstatic->label; + print ''; + if ($action === 'editline' && $line->id == $lineid) print ''; + else { + $productlot = new Productlot($db); + if ($productlot->fetch(0, $line->fk_product, $line->batch) > 0) { + print $productlot->getNomUrl(1); + } elseif (!empty($line->batch)) print $line->batch.' '.img_warning($langs->trans('BatchNotFound'));; + } + print ''; + + if ($action === 'editline' && $line->id == $lineid) print $formproduct->selectWarehouses($line->fk_warehouse_source, 'fk_warehouse_source', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, array(), 'minwidth200imp maxwidth200', $TExcludedWarehouseSource); + else print $warehousestatics->getNomUrl(1); + print ''; + if ($action === 'editline' && $line->id == $lineid) print $formproduct->selectWarehouses($line->fk_warehouse_destination, 'fk_warehouse_destination', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, array(), 'minwidth200imp maxwidth200', $TExcludedWarehouseDestination); + else print $warehousestatict->getNomUrl(1); + print ''.$line->qty.''; + $label = $productstatic->getLabelOfUnit('short'); + if ($label !== '') { + print $langs->trans($label); + } + print ''; + print price($line->pmp, 0, '', 1, -1, -1, $conf->currency); + print ''; + print price($line->pmp * $line->qty, 0, '', 1, -1, -1, $conf->currency); + print '
    '; + print '
    '; + print 'id . '#line_' . $line->id . '">'; + print img_edit() . ''; + print ''; + print 'id . '">' . img_delete($langs->trans("Remove")) . ''; + print ''; + $coldisplay++; + if ($i > 0) { ?> + id; ?>"> + + + + id; ?>"> + + + '; + } else { + print 'browser->layout != 'phone' && empty($disablemove)) ? ' class="linecolmove tdlineupdown center"' : ' class="linecolmove center"').'>
    '; + $filtertype = 0; + if (!empty($conf->global->STOCK_SUPPORTS_SERVICES)) $filtertype = ''; + if ($conf->global->PRODUIT_LIMIT_SIZE <= 0) { + $limit = ''; + } else { + $limit = $conf->global->PRODUIT_LIMIT_SIZE; + } + + $form->select_produits($fk_product, 'fk_product', $filtertype, $limit, 0, -1, 2, '', 0, array(), 0, 0, 0, 'minwidth200imp maxwidth300', 1); + print ''; + print ''; + print ''; + print $formproduct->selectWarehouses(empty($fk_warehouse_source) ? $object->fk_warehouse_source : $fk_warehouse_source, 'fk_warehouse_source', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, array(), 'minwidth200imp maxwidth200', $TExcludedWarehouseSource); + print ''; + print $formproduct->selectWarehouses(empty($fk_warehouse_destination) ? $object->fk_warehouse_destination : $fk_warehouse_destination, 'fk_warehouse_destination', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, array(), 'minwidth200imp maxwidth200', $TExcludedWarehouseDestination); + print '
    '; + print '
    '; + print '
    '; + + // 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 ''.$langs->trans('SendMail').''."\n"; + } + + // Back to draft + if ($object->status == $object::STATUS_VALIDATED) { + if ($permissiontoadd) { + print ''.$langs->trans("SetToDraft").''; + } + } + + // Modify + if ($permissiontoadd) { + print ''.$langs->trans("Modify").''."\n"; + } + /*else + { + print ''.$langs->trans('Modify').''."\n"; + }*/ + + // Validate + if ($object->status == $object::STATUS_DRAFT) { + if ($permissiontoadd) { + if (empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) { + print ''.$langs->trans("Validate").''; + } else { + $langs->load("errors"); + print ''.$langs->trans("Validate").''; + } + } + } elseif ($object->status == $object::STATUS_VALIDATED && $permissiontoadd) { + print ''.$langs->trans("StockTransferDecrementation").''; + } elseif ($object->status == $object::STATUS_TRANSFERED && $permissiontoadd) { + print ''.$langs->trans("StockTransferDecrementationCancel").''; + print ''.$langs->trans("StockTransferIncrementation").''; + } elseif ($object->status == $object::STATUS_CLOSED && $permissiontoadd) { + print ''.$langs->trans("StockTransferIncrementationCancel").''; + } + + // Clone + if ($permissiontoadd) { + print ''.$langs->trans("ToClone").''."\n"; + } + + /* + if ($permissiontoadd) + { + if ($object->status == $object::STATUS_ENABLED) + { + print ''.$langs->trans("Disable").''."\n"; + } + else + { + print ''.$langs->trans("Enable").''."\n"; + } + } + if ($permissiontoadd) + { + if ($object->status == $object::STATUS_VALIDATED) + { + print ''.$langs->trans("Cancel").''."\n"; + } + else + { + print ''.$langs->trans("Re-Open").''."\n"; + } + } + */ + + // Delete (need delete permission, or if draft, just need create/modify permission) + if ($object->status < $object::STATUS_TRANSFERED && $permissiontodelete) { + print ''.$langs->trans('Delete').''."\n"; + } + /*else + { + print ''.$langs->trans('Delete').''."\n"; + }*/ + } + print '
    '."\n"; + } + + + // Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + if ($action != 'presend') { + print '
    '; + print ''; // ancre + + $includedocgeneration = 1; + + // Documents + if ($includedocgeneration) { + $objref = dol_sanitizeFileName($object->ref); + $relativepath = $objref . '/' . $objref . '.pdf'; + $filedir = $conf->stocktransfer->dir_output.'/'.$object->element.'/'.$objref; + $urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id; + $genallowed = $user->rights->stocktransfer->stocktransfer->read; // If you can read, you can build the PDF to read content + $delallowed = $user->rights->stocktransfer->stocktransfer->write; // If you can create/edit, you can remove a file on card + print $formfile->showdocuments('stocktransfer:StockTransfer', $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('stocktransfer')); + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + + + print '
    '; + + $MAXEVENT = 10; + + $morehtmlright = ''; + $morehtmlright .= $langs->trans("SeeAll"); + $morehtmlright .= ''; + + // List of actions on element + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + $formactions = new FormActions($db); + $somethingshown = $formactions->showactions($object, 'stocktransfer', 0, 1, '', $MAXEVENT, '', $morehtmlright); + + print '
    '; + } + + //Select mail models is same action as presend + if (GETPOST('modelselected')) $action = 'presend'; + + // Presend form + $modelmail = 'stocktransfer'; + $defaulttopic = 'InformationMessage'; + $diroutput = $conf->stocktransfer->dir_output; + $trackid = 'stocktransfer'.$object->id; + + include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/product/stock/stocktransfer/stocktransfer_contact.php b/htdocs/product/stock/stocktransfer/stocktransfer_contact.php new file mode 100644 index 00000000000..6c0ef97fe28 --- /dev/null +++ b/htdocs/product/stock/stocktransfer/stocktransfer_contact.php @@ -0,0 +1,185 @@ + + * Copyright (C) 2005-2016 Destailleur Laurent + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2011-2015 Philippe Grand + * 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 + * 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/comm/propal/contact.php + * \ingroup propal + * \brief Tab to manage contacts/adresses of proposal + */ + +// Load Dolibarr environment +require '../../../main.inc.php'; +// Load translation files required by the page +$langs->loadLangs(array('facture', 'orders', 'sendings', 'companies', 'stocks')); + +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$lineid = GETPOST('lineid', 'int'); +$action = GETPOST('action', 'alpha'); + +// Security check +if ($user->socid) $socid = $user->socid; + +$result = restrictedArea($user, 'stocktransfer', $id, '', 'stocktransfer'); + +$object = new StockTransfer($db); + +// Load object +if ($id > 0 || !empty($ref)) { + $ret = $object->fetch($id, $ref); + if ($ret == 0) { + $langs->load("errors"); + setEventMessages($langs->trans('ErrorRecordNotFound'), null, 'errors'); + $error++; + } elseif ($ret < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + } +} +if (!$error) { + $object->fetch_thirdparty(); +} else { + header('Location: '.dol_buildpath('/stocktransfer/stocktransfer_list.php', 1)); + exit; +} + + +/* + * Add a new contact + */ + +if ($action == 'addcontact' && $user->rights->stocktransfer->stocktransfer->write) { + if ($object->id > 0) { + $contactid = (GETPOST('userid', 'int') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int')); + $result = $object->add_contact($contactid, !empty($_POST["typecontact"]) ? $_POST["typecontact"] : $_POST["type"], $_POST["source"]); + } + + if ($result >= 0) { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } else { + if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + $langs->load("errors"); + setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors'); + } else { + setEventMessages($object->error, $object->errors, 'errors'); + } + } +} elseif ($action == 'swapstatut' && $user->rights->stocktransfer->stocktransfer->write) { // Toggle the status of a contact + if ($object->id > 0) { + $result = $object->swapContactStatus(GETPOST('ligne')); + } +} elseif ($action == 'deletecontact' && $user->rights->stocktransfer->stocktransfer->write) { // Deletes a contact + $result = $object->delete_contact($lineid); + + if ($result >= 0) { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } else { + dol_print_error($db); + } +} +/* +elseif ($action == 'setaddress' && $user->rights->stocktransfer->stocktransfer->write) +{ + $result=$object->setDeliveryAddress($_POST['fk_address']); + if ($result < 0) dol_print_error($db,$object->error); +}*/ + + +/* + * View + */ + +llxHeader('', $langs->trans('ModuleStockTransferName'), 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'); + +$form = new Form($db); +$formcompany = new FormCompany($db); +$formother = new FormOther($db); + +if ($object->id > 0) { + $head = stocktransferPrepareHead($object); + print dol_get_fiche_head($head, 'contact', $langs->trans("StockTransfer"), -1, 'stock'); + + + // Proposal 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 + if (!empty($object->thirdparty)) { + $morehtmlref .= '
    ' . $langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1, 'customer'); + } + // Project + if (!empty($conf->project->enabled)) { + $langs->load("projects"); + $morehtmlref .= '
    '.$langs->trans('Project').' '; + if ($user->rights->stocktransfer->stocktransfer->write) { + 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 .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; + } else { + $morehtmlref .= ''; + } + } + } + $morehtmlref .= '
    '; + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1); + + print dol_get_fiche_end(); + + $user->rights->stocktransfer->write = $user->rights->stocktransfer->stocktransfer->write; + // Contacts lines (modules that overwrite templates must declare this into descriptor) + $dirtpls = array_merge($conf->modules_parts['tpl'], array('/core/tpl')); + foreach ($dirtpls as $reldir) { + $res = @include dol_buildpath($reldir.'/contacts.tpl.php'); + if ($res) break; + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/product/stock/stocktransfer/stocktransfer_document.php b/htdocs/product/stock/stocktransfer/stocktransfer_document.php new file mode 100644 index 00000000000..7220581bc52 --- /dev/null +++ b/htdocs/product/stock/stocktransfer/stocktransfer_document.php @@ -0,0 +1,193 @@ + + * 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 + * 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 stocktransfer_document.php + * \ingroup stocktransfer + * \brief Tab for documents linked to StockTransfer + */ + +// 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.'/product/stock/stocktransfer/class/stocktransfer.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/stock/stocktransfer/lib/stocktransfer_stocktransfer.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("stocks", "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", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); +$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 StockTransfer($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->stocktransfer->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('stocktransferdocument', '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->stocktransfer->multidir_output[$object->entity?$object->entity:$conf->entity] . "/stocktransfer/" . dol_sanitizeFileName($object->id); +if ($id > 0 || !empty($ref)) $upload_dir = $conf->stocktransfer->multidir_output[$object->entity ? $object->entity : $conf->entity]."/stocktransfer/".dol_sanitizeFileName($object->ref); + +// Security check - Protection if external user +//if ($user->socid > 0) accessforbidden(); +//if ($user->socid > 0) $socid = $user->socid; +//$result = restrictedArea($user, 'stocktransfer', $object->id); + +$permissiontoadd = $user->rights->stocktransfer->stocktransfer->write; // Used by the include of actions_addupdatedelete.inc.php + + + +/* + * Actions + */ + +include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; + + +/* + * View + */ + +$form = new Form($db); + +$title = $langs->trans("ModuleStockTransferName").' - '.$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 = stocktransferPrepareHead($object); + + print dol_get_fiche_head($head, 'document', $langs->trans("StockTransfer"), -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 = 'stocktransfer'; + //$permission = $user->rights->stocktransfer->stocktransfer->write; + $permission = 1; + //$permtoedit = $user->rights->stocktransfer->stocktransfer->write; + $permtoedit = 1; + $param = '&id='.$object->id; + + //$relativepathwithnofile='stocktransfer/' . dol_sanitizeFileName($object->id).'/'; + $relativepathwithnofile = 'stocktransfer/'.dol_sanitizeFileName($object->ref).'/'; + + include_once 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/product/stock/stocktransfer/stocktransfer_list.php b/htdocs/product/stock/stocktransfer/stocktransfer_list.php new file mode 100644 index 00000000000..72c538a58c6 --- /dev/null +++ b/htdocs/product/stock/stocktransfer/stocktransfer_list.php @@ -0,0 +1,535 @@ + + * Copyright (C) 2021 Gauthier VERDOL + * Copyright (C) ---Put here your own copyright and developer email--- + * + * 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 stocktransfer_list.php + * \ingroup stocktransfer + * \brief List page for stocktransfer + */ + +// 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/functions.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/product/stock/stocktransfer/class/stocktransfer.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("stocks", "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') : 'stocktransferlist'; // 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'); + +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'alpha'); +$sortorder = GETPOST('sortorder', 'alpha'); +$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; + +// Initialize technical objects +$object = new StockTransfer($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->stocktransfer->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('stocktransferlist')); // 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) $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') ? trim(GETPOST('search_all', 'alphanohtml')) : trim(GETPOST('sall', 'alphanohtml')); +$search = array(); +foreach ($object->fields as $key => $val) { + if (GETPOST('search_'.$key, 'alpha') !== '') $search[$key] = GETPOST('search_'.$key, 'alpha'); +} + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array(); +foreach ($object->fields as $key => $val) { + if ($val['searchall']) $fieldstosearchall['t.'.$key] = $val['label']; +} + +// Definition of fields for list +$arrayfields = array(); +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'=>(verifCond($val['enabled']) && ($val['visible'] != 3)), 'position'=>$val['position']); +} +//var_dump($object->fields); +// Extra fields +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + 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($extrafields->attributes[$object->table_element]['list'][$key]) != 3 && $extrafields->attributes[$object->table_element]['perms'][$key]), + 'langfile'=>$extrafields->attributes[$object->table_element]['langfile'][$key] + ); + } + } +} +$object->fields = dol_sort_array($object->fields, 'position'); +$arrayfields = dol_sort_array($arrayfields, 'position'); + +$permissiontoread = $user->rights->stocktransfer->stocktransfer->read; +$permissiontoadd = $user->rights->stocktransfer->stocktransfer->write; +$permissiontodelete = $user->rights->stocktransfer->stocktransfer->delete; + +// Security check +if (empty($conf->stocktransfer->enabled)) accessforbidden('Module not enabled'); +$socid = 0; +if ($user->socid > 0) { // Protection if external user + //$socid = $user->socid; + accessforbidden(); +} +//$result = restrictedArea($user, 'stocktransfer', $id, ''); +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] = ''; + } + $toselect = ''; + $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 = 'StockTransfer'; + $objectlabel = 'StockTransfer'; + $uploaddir = $conf->stocktransfer->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + + + +/* + * View + */ + +$form = new Form($db); + +$now = dol_now(); + +//$help_url="EN:Module_StockTransfer|FR:Module_StockTransfer_FR|ES:Módulo_StockTransfer"; +$help_url = ''; +$title = $langs->trans('StockTransferList'); + + +// Build and execute select +// -------------------------------------------------------------------- +$sql = 'SELECT '; +foreach ($object->fields as $key => $val) { + $sql .= "t.".$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." 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 .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; +if (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 ($object->ismultientitymanaged == 1) $sql .= " WHERE t.entity IN (".getEntity($object->element).")"; +else $sql .= " WHERE 1 = 1"; +foreach ($search as $key => $val) { + 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) { + if ($search[$key] == '-1') $search[$key] = ''; + $mode_search = 2; + } + if ($search[$key] != '') $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); +} +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.".$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); // Note that $action and $object may have been modified by hook +$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 + $page = 0; + $offset = 0; + } +} +// 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); +} + +// 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('/product/stock/stocktransfer/stocktransfer_card.php', 1).'?id='.$id); + exit; +} + + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title, $help_url); + +// Example : Adding jquery code +print ''; + +$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); +foreach ($search as $key => $val) { + if (is_array($search[$key]) && count($search[$key])) foreach ($search[$key] as $skey) $param .= '&search_'.$key.'[]='.urlencode($skey); + else $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'; + +// List of mass actions available +$arrayofmassactions = array( + //'validate'=>$langs->trans("Validate"), + //'generate_doc'=>$langs->trans("ReGeneratePDF"), + //'builddoc'=>$langs->trans("PDFMerge"), + //'presend'=>$langs->trans("SendByMail"), +); +if ($permissiontodelete) $arrayofmassactions['predelete'] = ''.$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 ''; + +$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/product/stock/stocktransfer/stocktransfer_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 = "SendStockTransferRef"; +$modelmail = "stocktransfer"; +$objecttmp = new StockTransfer($db); +$trackid = 'xxxx'.$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).'
    '; +} + +$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); // 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 ''; +foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['css']) ? '' : $val['css']); + 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')) && $val['label'] != 'TechnicalID') $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; +// Action column +print ''; +print ''."\n"; + + +// Fields title label +// -------------------------------------------------------------------- +print ''; +foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['css']) ? '' : $val['css']); + 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')) && $val['label'] != 'TechnicalID') $cssforfield .= ($cssforfield ? ' ' : '').'right'; + 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"; + } +} +// 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); // 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"; +print ''."\n"; + + +// Detect if we need a fetch on each output line +$needToFetchEachLine = 0; +if (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; +$totalarray = array(); +while ($i < ($limit ? min($num, $limit) : $num)) { + $obj = $db->fetch_object($resql); + if (empty($obj)) break; // Should not happen + + // Store properties in $object + $object->setVarsFromFetchObj($obj); + + // Show here line of result + print ''; + foreach ($object->fields as $key => $val) { + $cssforfield = (empty($val['css']) ? '' : $val['css']); + 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')) && $key != 'status') $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); + else { + print $object->showOutputField($val, $key, $object->$key, ''); + if ($key === 'date_prevue_depart' && $object->lead_time_for_warning > 0 && $object->$key > 0) { + $date_prevue_depart = $object->$key; + $date_prevue_depart_plus_delai = $date_prevue_depart; + if ($object->lead_time_for_warning > 0) $date_prevue_depart_plus_delai = strtotime(date('Y-m-d', $date_prevue_depart) . ' + '.$object->lead_time_for_warning.' day'); + if ($date_prevue_depart_plus_delai < strtotime(date('Y-m-d'))) print img_warning($langs->trans('Alert').' - '.$langs->trans('Late')); + } + } + print ''; + if (!$i) $totalarray['nbfield']++; + if (!empty($val['isameasure'])) { + if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; + $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 ''."\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); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +print '
    '; + if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth75'); + elseif (strpos($val['type'], 'integer:') === 0) { + print $object->showInputField($val, $key, $search[$key], '', '', 'search_', 'maxwidth150', 1); + } elseif (!preg_match('/^(date|timestamp)/', $val['type'])) print ''; + 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($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_stocktransfer', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/product/stock/stocktransfer/stocktransfer_note.php b/htdocs/product/stock/stocktransfer/stocktransfer_note.php new file mode 100644 index 00000000000..2176af2803a --- /dev/null +++ b/htdocs/product/stock/stocktransfer/stocktransfer_note.php @@ -0,0 +1,148 @@ + + * 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 + * 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 stocktransfer_note.php + * \ingroup stocktransfer + * \brief Car with notes on StockTransfer + */ + +// Load Dolibarr environment +require '../../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/product/stock/stocktransfer/class/stocktransfer.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/stock/stocktransfer/lib/stocktransfer_stocktransfer.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("stocks", "companies")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +// Initialize technical objects +$object = new StockTransfer($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->stocktransfer->dir_output.'/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('stocktransfernote', 'globalcard')); // Note that conf->hooks_modules contains array +// 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, 'stocktransfer', $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)) $upload_dir = $conf->stocktransfer->multidir_output[$object->entity]."/".$object->id; + +$permissionnote = $user->rights->stocktransfer->stocktransfer->write; // Used by the include of actions_setnotes.inc.php +$permissiontoadd = $user->rights->stocktransfer->stocktransfer->write; // Used by the include of actions_addupdatedelete.inc.php + + + +/* + * Actions + */ + +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 = ''; +llxHeader('', $langs->trans('ModuleStockTransferName'), $help_url); + +if ($id > 0 || !empty($ref)) { + $object->fetch_thirdparty(); + + $head = stocktransferPrepareHead($object); + + print dol_get_fiche_head($head, 'note', $langs->trans("StockTransfer"), -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/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php index 6afea0abe54..40181167baa 100644 --- a/htdocs/product/stock/tpl/stockcorrection.tpl.php +++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php @@ -41,6 +41,19 @@ if (empty($id)) { $id = $object->id; } +$pdluoid = GETPOST('pdluoid', 'int'); + +$pdluo = new Productbatch($db); + +if ($pdluoid > 0) { + $result = $pdluo->fetch($pdluoid); + if ($result > 0) { + $pdluoid = $pdluo->id; + } else { + dol_print_error($db, $pdluo->error, $pdluo->errors); + } +} + print ''; print '
    '; } if (empty($conf->global->PROJECT_HIDE_TASKS)) { - print ' '; + print ' '; $htmltext = $langs->trans("ProjectFollowTasks"); print ''; print '
    '; } if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) { - print ' '; + print ' '; $htmltext = $langs->trans("ProjectBillTimeDescription"); print ''; print '
    '; } - if (!empty($conf->eventorganization->enabled)) { - print ' '; + if (isModEnabled('eventorganization')) { + print ' '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print ''; } @@ -595,7 +609,7 @@ if ($action == 'create' && $user->rights->projet->creer) { } // Thirdparty - if ($conf->societe->enabled) { + if (isModEnabled('societe')) { print ''; print (empty($conf->global->PROJECT_THIRDPARTY_REQUIRED) ? '' : ''); print $langs->trans("ThirdParty"); @@ -605,7 +619,7 @@ if ($action == 'create' && $user->rights->projet->creer) { if (!empty($conf->global->PROJECT_FILTER_FOR_THIRDPARTY_LIST)) { $filteronlist = $conf->global->PROJECT_FILTER_FOR_THIRDPARTY_LIST; } - $text = img_picto('', 'company').$form->select_company(GETPOST('socid', 'int'), 'socid', $filteronlist, 'SelectThirdParty', 1, 0, array(), 0, 'minwidth300 widthcentpercentminusxx'); + $text = img_picto('', 'company').$form->select_company(GETPOST('socid', 'int'), 'socid', $filteronlist, 'SelectThirdParty', 1, 0, array(), 0, 'minwidth300 widthcentpercentminusxx maxwidth500'); if (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) && empty($conf->dol_use_jmobile)) { $texthelp = $langs->trans("IfNeedToUseOtherObjectKeepEmpty"); print $form->textwithtooltip($text.' '.img_help(), $texthelp, 1); @@ -613,7 +627,15 @@ if ($action == 'create' && $user->rights->projet->creer) { print $text; } if (!GETPOSTISSET('backtopage')) { - print ' '; + $url = '/societe/card.php?action=create&client=3&fournisseur=0&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create'); + $newbutton = ''; + // TODO @LDR Implement this + if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { + $tmpbacktopagejsfields = 'addthirdparty:socid,search_socid'; + print dolButtonToOpenUrlInDialogPopup('addthirdparty', $langs->transnoentitiesnoconv('AddThirdParty'), $newbutton, $url, '', '', $tmpbacktopagejsfields); + } else { + print ' '.$newbutton.''; + } } print ''; } @@ -642,8 +664,10 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; if (GETPOST('public') == 0) { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans("PrivateProject"); } else { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans("SharedProject"); } } @@ -691,7 +715,7 @@ if ($action == 'create' && $user->rights->projet->creer) { $doleditor->Create(); print ''; - if (!empty($conf->categorie->enabled)) { + if (isModEnabled('categorie')) { // Categories print ''.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_PROJECT, '', 'parent', 64, 0, 1); @@ -716,7 +740,7 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; - // Change probability from status + // Change probability from status or role of project print ''; print '
    '; @@ -871,7 +898,7 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; print '
    '; } - if (!empty($conf->eventorganization->enabled)) { + if (isModEnabled('eventorganization')) { print 'usage_organize_event ? ' checked="checked"' : '')) . '"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print ''; @@ -881,7 +908,7 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; // Thirdparty - if ($conf->societe->enabled) { + if (isModEnabled('societe')) { print ''; print (empty($conf->global->PROJECT_THIRDPARTY_REQUIRED) ? '' : ''); print $langs->trans("ThirdParty"); @@ -917,8 +944,10 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; if ($object->public == 0) { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans("PrivateProject"); } else { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans("SharedProject"); } } @@ -946,7 +975,9 @@ if ($action == 'create' && $user->rights->projet->creer) { // Opportunity amount print ''.$langs->trans("OpportunityAmount").''; - print ''; + print ''; + print $langs->getCurrencySymbol($conf->currency); + print ''; print ''; } @@ -957,7 +988,7 @@ if ($action == 'create' && $user->rights->projet->creer) { if ($comefromclone) { print ' checked '; } - print '/>'; + print '/>'; print ''; // Date end @@ -967,18 +998,20 @@ if ($action == 'create' && $user->rights->projet->creer) { // Budget print ''.$langs->trans("Budget").''; - print ''; + print ''; + print $langs->getCurrencySymbol($conf->currency); + print ''; print ''; // Description print ''.$langs->trans("Description").''; print ''; - $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 ''; // Tags-Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print ''.$langs->trans("Categories").''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_PROJECT, '', 'parent', 64, 0, 1); $c = new Categorie($db); @@ -1031,7 +1064,7 @@ if ($action == 'create' && $user->rights->projet->creer) { 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 ''; @@ -1055,7 +1088,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); @@ -1066,8 +1099,10 @@ if ($action == 'create' && $user->rights->projet->creer) { // Visibility print ''; @@ -1090,21 +1125,22 @@ if ($action == 'create' && $user->rights->projet->creer) { // Opportunity Amount print ''; // Opportunity Weighted Amount + /* print ''; + */ } // Date start - end @@ -1144,7 +1180,7 @@ if ($action == 'create' && $user->rights->projet->creer) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -1181,7 +1217,7 @@ if ($action == 'create' && $user->rights->projet->creer) { { var element = jQuery("#opp_status option:selected"); var defaultpercent = element.attr("defaultpercent"); - var defaultcloseproject = '.$defaultcheckedwhenoppclose.'; + var defaultcloseproject = '.((int) $defaultcheckedwhenoppclose).'; var elemcode = element.attr("elemcode"); var oldpercent = \''.dol_escape_js($object->opp_percent).'\'; @@ -1240,7 +1276,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 ($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. { @@ -1250,105 +1286,124 @@ if ($action == 'create' && $user->rights->projet->creer) { // Send if (empty($user->socid)) { if ($object->statut != Project::STATUS_CLOSED) { - print ''.$langs->trans('SendMail').''; + print dolGetButtonAction('', $langs->trans('SendMail'), 'default', $_SERVER["PHP_SELF"].'?action=presend&token='.newToken().'&id='.$object->id.'&mode=init#formmailbeforetitle', ''); } } + // Accounting Report + /* + $accouting_module_activated = !empty($conf->comptabilite->enabled) || 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 ''.$langs->trans("Modify").''; + print dolGetButtonAction('', $langs->trans('Modify'), 'default', $_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'&id='.$object->id, ''); } else { - print ''.$langs->trans('Modify').''; + print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('Modify'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } } // Validate if ($object->statut == Project::STATUS_DRAFT && $user->rights->projet->creer) { if ($userWrite > 0) { - print ''.$langs->trans("Validate").''; + print dolGetButtonAction('', $langs->trans('Validate'), 'default', $_SERVER["PHP_SELF"].'?action=validate&token='.newToken().'&id='.$object->id, ''); } else { - print ''.$langs->trans('Validate').''; + print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('Validate'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } } // Close if ($object->statut == Project::STATUS_VALIDATED && $user->rights->projet->creer) { if ($userWrite > 0) { - print ''.$langs->trans("Close").''; + print dolGetButtonAction('', $langs->trans('Close'), 'default', $_SERVER["PHP_SELF"].'?action=close&token='.newToken().'&id='.$object->id, ''); } else { - print ''.$langs->trans('Close').''; + print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('Close'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } } // Reopen if ($object->statut == Project::STATUS_CLOSED && $user->rights->projet->creer) { if ($userWrite > 0) { - print ''.$langs->trans("ReOpen").''; + print dolGetButtonAction('', $langs->trans('ReOpen'), 'default', $_SERVER["PHP_SELF"].'?action=reopen&token='.newToken().'&id='.$object->id, ''); } else { - print ''.$langs->trans('ReOpen').''; + print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('ReOpen'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } } - // 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) { - print ''.$langs->trans('ToClone').''; + print dolGetButtonAction('', $langs->trans('ToClone'), 'default', $_SERVER["PHP_SELF"].'?action=clone&token='.newToken().'&id='.$object->id, ''); } else { - print ''.$langs->trans('ToClone').''; + print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('ToClone'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } } // 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 ''.$langs->trans("Delete").''; + print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id, ''); } else { - print ''.$langs->trans('Delete').''; + print dolGetButtonAction($langs->trans('NotOwnerOfProject'), $langs->trans('Delete'), 'default', $_SERVER['PHP_SELF']. '#', '', false); } } } @@ -1368,7 +1423,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); @@ -1379,7 +1434,7 @@ if ($action == 'create' && $user->rights->projet->creer) { $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/projet/info.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/projet/info.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; @@ -1392,7 +1447,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 59576b961d4..6a522346210 100644 --- a/htdocs/projet/class/api_projects.class.php +++ b/htdocs/projet/class/api_projects.class.php @@ -333,7 +333,7 @@ class Projects extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); $updateRes = $this->project->addline( $request_data->desc, @@ -400,7 +400,7 @@ class Projects extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); $updateRes = $this->project->updateline( $lineid, diff --git a/htdocs/projet/class/api_tasks.class.php b/htdocs/projet/class/api_tasks.class.php index cafb60f2865..0eaf8654421 100644 --- a/htdocs/projet/class/api_tasks.class.php +++ b/htdocs/projet/class/api_tasks.class.php @@ -333,7 +333,7 @@ class Tasks extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); $updateRes = $this->project->addline( $request_data->desc, @@ -400,7 +400,7 @@ class Tasks extends DolibarrApi $request_data = (object) $request_data; - $request_data->desc = checkVal($request_data->desc, 'restricthtml'); + $request_data->desc = sanitizeVal($request_data->desc, 'restricthtml'); $updateRes = $this->project->updateline( $lineid, diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 510d7e23e62..beca13fb00d 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -6,6 +6,7 @@ * Copyright (C) 2014-2017 Marcos García * Copyright (C) 2017 Ferran Marcet * Copyright (C) 2019 Juanjo Menent + * 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 @@ -85,8 +86,33 @@ 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 close + */ public $date_close; public $socid; // To store id of thirdparty @@ -150,11 +176,18 @@ class Project extends CommonObject */ public $price_booth; + /** + * @var float Max attendees + */ + public $max_attendees; + public $statuts_short; public $statuts_long; public $statut; // 0=draft, 1=opened, 2=closed + public $opp_status; // opportunity status, into table llx_c_lead_status + public $fk_opp_status; // opportunity status, into table llx_c_lead_status public $opp_percent; // opportunity probability public $email_msgid; @@ -231,14 +264,14 @@ 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'=>1, 'visible'=>1, 'position'=>75), - 'opp_percent' =>array('type'=>'double(5,2)', 'label'=>'OpportunityProbabilityShort', 'enabled'=>1, 'visible'=>1, 'position'=>80), + '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), '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'=>1, 'position'=>115), + 'opp_amount' =>array('type'=>'double(24,8)', 'label'=>'OpportunityAmountShort', 'enabled'=>1, 'visible'=>'!empty($conf->global->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), @@ -248,6 +281,7 @@ class Project extends CommonObject '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), @@ -372,6 +406,7 @@ class Project extends CommonObject $sql .= ", accept_booth_suggestions"; $sql .= ", price_registration"; $sql .= ", price_booth"; + $sql .= ", max_attendees"; $sql .= ", email_msgid"; $sql .= ", note_private"; $sql .= ", note_public"; @@ -399,6 +434,7 @@ class Project extends CommonObject $sql .= ", ".($this->accept_booth_suggestions ? 1 : 0); $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->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'); @@ -509,6 +545,7 @@ class Project extends CommonObject $sql .= ", accept_booth_suggestions = ".($this->accept_booth_suggestions ? 1 : 0); $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 .= ", entity = ".((int) $this->entity); $sql .= " WHERE rowid = ".((int) $this->id); @@ -534,9 +571,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); @@ -595,7 +632,7 @@ 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 .= " 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"; + $sql .= " accept_conference_suggestions, accept_booth_suggestions, price_registration, price_booth, max_attendees"; $sql .= " FROM ".MAIN_DB_PREFIX."projet"; if (!empty($id)) { $sql .= " WHERE rowid = ".((int) $id); @@ -653,6 +690,7 @@ class Project extends CommonObject $this->accept_booth_suggestions = (int) $obj->accept_booth_suggestions; $this->price_registration = $obj->price_registration; $this->price_booth = $obj->price_booth; + $this->max_attendees = $obj->max_attendees; $this->email_msgid = $obj->email_msgid; $this->db->free($resql); @@ -681,12 +719,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 @@ -716,28 +754,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( @@ -745,8 +783,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, ); @@ -816,11 +854,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(); @@ -896,8 +947,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) { @@ -1194,16 +1245,17 @@ class Project extends CommonObject $label .= ($label ? '
    ' : '').''.$langs->trans('Ref').': '.$this->ref; // The space must be after the : to not being explode when showing the title in img_picto $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").": ".($this->public ? $langs->trans("SharedProject") : $langs->trans("PrivateProject")); + $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")); } 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 } - if (!empty($this->dateo)) { - $label .= ($label ? '
    ' : '').''.$langs->trans('DateStart').': '.dol_print_date($this->dateo, 'day'); // The space must be after the : to not being explode when showing the title in img_picto + if (!empty($this->date_start)) { + $label .= ($label ? '
    ' : '').''.$langs->trans('DateStart').': '.dol_print_date($this->date_start, 'day'); // The space must be after the : to not being explode when showing the title in img_picto } - if (!empty($this->datee)) { - $label .= ($label ? '
    ' : '').''.$langs->trans('DateEnd').': '.dol_print_date($this->datee, 'day'); // The space must be after the : to not being explode when showing the title in img_picto + if (!empty($this->date_end)) { + $label .= ($label ? '
    ' : '').''.$langs->trans('DateEnd').': '.dol_print_date($this->date_end, 'day'); // The space must be after the : to not being explode when showing the title in img_picto } if ($moreinpopup) { $label .= '
    '.$moreinpopup; @@ -1233,7 +1285,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).'"'; @@ -1255,7 +1307,7 @@ 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="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip pictofixedwidth em088"'), 0, 0, $notooltip ? 0 : 1); } if ($withpicto != 2) { $result .= $this->ref; @@ -1629,8 +1681,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); @@ -2001,7 +2053,6 @@ class Project extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Load indicators for dashboard (this->nbtodo and this->nbtodolate) @@ -2017,10 +2068,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"; @@ -2030,9 +2085,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->rights->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. @@ -2043,16 +2108,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)) { @@ -2060,7 +2115,7 @@ class Project extends CommonObject $project_static->statut = $obj->status; $project_static->opp_status = $obj->fk_opp_status; - $project_static->datee = $this->db->jdate($obj->datee); + $project_static->date_end = $this->db->jdate($obj->datee); if ($project_static->hasDelay()) { $response->nbtodolate++; @@ -2068,12 +2123,11 @@ 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. @@ -2142,13 +2196,13 @@ class Project extends CommonObject if (!($this->statut == self::STATUS_VALIDATED)) { return false; } - if (!$this->datee && !$this->date_end) { + if (!$this->date_end) { return false; } $now = dol_now(); - return ($this->datee ? $this->datee : $this->date_end) < ($now - $conf->projet->warning_delay); + return ($this->date_end) < ($now - $conf->project->warning_delay); } diff --git a/htdocs/projet/class/projectstats.class.php b/htdocs/projet/class/projectstats.class.php index efd8ecc3424..322277187f7 100644 --- a/htdocs/projet/class/projectstats.class.php +++ b/htdocs/projet/class/projectstats.class.php @@ -28,6 +28,15 @@ class ProjectStats extends Stats public $userid; public $socid; public $year; + public $yearmonth; + public $status; + public $opp_status; + + //SQL stat + public $field; + public $from; + public $where; + /** * Constructor @@ -42,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); + } } @@ -180,7 +201,25 @@ class ProjectStats extends Stats } if (!empty($this->status)) { - $sqlwhere[] = " t.fk_opp_status IN (".$this->db->sanitize($this->status).")"; + $sqlwhere[] = " t.fk_statut IN (".$this->db->sanitize($this->status).")"; + } + + if (!empty($this->opp_status)) { + if (is_numeric($this->opp_status) && $this->opp_status > 0) { + $sqlwhere[] = " t.fk_opp_status = ".((int) $this->opp_status); + } + if ($this->opp_status == 'all') { + $sqlwhere[] = " (t.fk_opp_status IS NOT NULL AND t.fk_opp_status <> -1)"; + } + if ($this->opp_status == 'openedopp') { + $sqlwhere[] = " (t.fk_opp_status IS NOT NULL AND t.fk_opp_status <> -1 AND t.fk_opp_status NOT IN (SELECT rowid FROM ".MAIN_DB_PREFIX."c_lead_status WHERE code IN ('WON','LOST')))"; + } + if ($this->opp_status == 'notopenedopp') { + $sqlwhere[] = " (t.fk_opp_status IS NULL OR t.fk_opp_status = -1 OR t.fk_opp_status IN (SELECT rowid FROM ".MAIN_DB_PREFIX."c_lead_status WHERE code = 'WON'))"; + } + if ($this->opp_status == 'none') { + $sqlwhere[] = " (t.fk_opp_status IS NULL OR t.fk_opp_status = -1)"; + } } if (empty($user->rights->projet->all->lire)) { @@ -506,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 9decf78f55a..48b0b63e31a 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,15 +479,15 @@ 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($olddir, $newdir); + $res = dol_move_dir($olddir, $newdir); if (!$res) { $langs->load("errors"); $this->error = $langs->trans('ErrorFailToRenameDir', $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'; @@ -920,6 +926,7 @@ class Task extends CommonObjectLine // Add where from extra fields $extrafieldsobjectkey = 'projet_task'; $extrafieldsobjectprefix = 'efpt.'; + global $db; // needed for extrafields_list_search_sql.tpl include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks $parameters = array(); @@ -1184,6 +1191,7 @@ class Task extends CommonObjectLine dol_syslog(get_class($this)."::addTimeSpent", LOG_DEBUG); $ret = 0; + $now = dol_now(); // Check parameters if (!is_object($user)) { @@ -1199,7 +1207,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'); @@ -1220,7 +1228,9 @@ class Task extends CommonObjectLine $sql .= ", task_date_withhour"; $sql .= ", task_duration"; $sql .= ", fk_user"; + $sql .= ", fk_product"; $sql .= ", note"; + $sql .= ", datec"; $sql .= ") VALUES ("; $sql .= ((int) $this->id); $sql .= ", '".$this->db->idate($this->timespent_date)."'"; @@ -1228,7 +1238,9 @@ 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 .= ")"; $resql = $this->db->query($sql); @@ -1514,6 +1526,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"; @@ -1532,6 +1545,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; } @@ -1666,7 +1680,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'); @@ -1685,6 +1699,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); @@ -1709,26 +1724,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)) { @@ -1756,7 +1776,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'); @@ -1953,8 +1973,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) { @@ -2201,7 +2221,7 @@ 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) { $response->url = DOL_URL_ROOT.'/projet/tasks/list.php?mainmenu=project'; @@ -2302,6 +2322,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/comment.php b/htdocs/projet/comment.php index 52a1f581df8..5ea5b920f8c 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'; @@ -125,8 +126,10 @@ print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($object->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("OpportunityAmount").''; - /*if ($object->opp_status) - { - print price($obj->opp_amount, 1, $langs, 1, 0, -1, $conf->currency); - }*/ if (strcmp($object->opp_amount, '')) { print ''.price($object->opp_amount, 0, $langs, 1, 0, -1, $conf->currency).''; + if (strcmp($object->opp_percent, '')) { + print '       '.$langs->trans("Weighted").': '.price($object->opp_amount * $object->opp_percent / 100, 0, $langs, 1, 0, -1, $conf->currency).''; + } } print '
    '.$langs->trans('OpportunityWeightedAmount').''; if (strcmp($object->opp_amount, '') && strcmp($object->opp_percent, '')) { print ''.price($object->opp_amount * $object->opp_percent / 100, 0, $langs, 1, 0, -1, $conf->currency).''; } print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); print "
    '; // Visibility print ''; @@ -165,7 +168,7 @@ print nl2br($object->description); print ''; // Categories -if ($conf->categorie->enabled) { +if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php index d1563cbfab8..ee37aa68fdd 100644 --- a/htdocs/projet/contact.php +++ b/htdocs/projet/contact.php @@ -22,19 +22,20 @@ * \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'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -if ($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', 'companies'); -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langsLoad[]='eventorganization'; } @@ -315,7 +316,7 @@ if ($id > 0 || !empty($ref)) { print '
    '.$langs->trans("Visibility").''; if ($object->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); 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); @@ -349,8 +350,10 @@ if ($id > 0 || !empty($ref)) { // Visibility print ''; @@ -375,6 +378,9 @@ if ($id > 0 || !empty($ref)) { print ''; } @@ -416,7 +422,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php index 2301017edd9..0a2acc4c3bc 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'); diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index 80fccce7912..8c7f2e0df51 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'; @@ -39,41 +40,41 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; if (!empty($conf->stock->enabled)) { 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->facture->enabled)) { +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)) { 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 (!empty($conf->agenda->enabled)) { +if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } if (!empty($conf->don->enabled)) { @@ -86,16 +87,16 @@ if (!empty($conf->loan->enabled)) { if (!empty($conf->stock->enabled)) { 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)) { @@ -104,22 +105,22 @@ if (!empty($conf->mrp->enabled)) { // Load translation files required by the page $langs->loadLangs(array('projects', 'companies', 'suppliers', 'compta')); -if (!empty($conf->facture->enabled)) { +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)) { $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)) { @@ -134,7 +135,7 @@ if (!empty($conf->salaries->enabled)) { if (!empty($conf->mrp->enabled)) { $langs->load("mrp"); } -if (!empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { $langs->load("eventorganization"); } @@ -237,7 +238,7 @@ print '
    '; print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($object->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("OpportunityAmount").''; if (strcmp($object->opp_amount, '')) { print ''.price($object->opp_amount, '', $langs, 0, 0, 0, $conf->currency).''; + if (strcmp($object->opp_percent, '')) { + print '       '.$langs->trans("Weighted").': '.price($object->opp_amount * $object->opp_percent / 100, 0, $langs, 1, 0, -1, $conf->currency).''; + } } print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); 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); @@ -271,8 +272,10 @@ if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PRO // Visibility print ''; @@ -297,6 +300,9 @@ if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { print ''; } @@ -338,7 +344,7 @@ print nl2br($object->description); print ''; // Categories -if ($conf->categorie->enabled) { +if (isModEnabled('categorie')) { print '"; @@ -574,7 +580,7 @@ $listofreferent = array( '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))), + 'test'=>($conf->project->enabled && $user->rights->projet->lire && empty($conf->global->PROJECT_HIDE_TASKS))), 'stock_mouvement'=>array( 'name'=>"MouvementStockAssociated", 'title'=>"ListMouvementStockProject", @@ -696,7 +702,7 @@ if (!$showdatefilter) { print $form->selectDate($datee, 'datee', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to")); print ''; print '
    '; - print ''; + print ''; print '
    '; print ''; print ''; diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php index 7266e029985..c5549429edb 100644 --- a/htdocs/projet/ganttview.php +++ b/htdocs/projet/ganttview.php @@ -137,7 +137,7 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($object->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("OpportunityAmount").''; if (strcmp($object->opp_amount, '')) { print ''.price($object->opp_amount, '', $langs, 1, 0, 0, $conf->currency).''; + if (strcmp($object->opp_percent, '')) { + print '       '.$langs->trans("Weighted").': '.price($object->opp_amount * $object->opp_percent / 100, 0, $langs, 1, 0, -1, $conf->currency).''; + } } print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); 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); @@ -171,8 +171,10 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { // Visibility print ''; @@ -214,7 +216,7 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -245,7 +247,7 @@ if ($user->rights->projet->all->creer || $user->rights->projet->creer) { $linktocreatetask = dolGetButtonTitle($langs->trans('AddTask'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id.'&action=create'.$param.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$object->id), '', $linktocreatetaskUserRight, $linktocreatetaskParam); -$linktotasks = dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list-alt paddingleft imgforviewmode', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id, '', 1, array('morecss'=>'reposition')); +$linktotasks = dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars paddingleft imgforviewmode', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id, '', 1, array('morecss'=>'reposition')); $linktotasks .= dolGetButtonTitle($langs->trans('ViewGantt'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/projet/ganttview.php?id='.$object->id.'&withproject=1', '', 1, array('morecss'=>'reposition marginleftonly btnTitleSelected')); //print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'generic', 0, '', '', 0, 1); diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index 51e78f23d57..b0e779a5bec 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -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'; @@ -288,7 +289,10 @@ if ($resql) { print ''; // Date - print ''; + $datem = $db->jdate($obj->datem); + print ''; // Status print ''; diff --git a/htdocs/projet/info.php b/htdocs/projet/info.php index 9b0544bccf6..bef020d9a38 100644 --- a/htdocs/projet/info.php +++ b/htdocs/projet/info.php @@ -22,6 +22,7 @@ * \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'; @@ -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"); } @@ -167,7 +168,7 @@ if ($permok) { //print '
    '; $morehtmlcenter = ''; -if (!empty($conf->agenda->enabled)) { +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); } diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index b254ac2b26f..31144a708c7 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -29,20 +29,21 @@ * \brief Page to list projects */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; 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/html.formprojet.class.php'; -if (!empty($conf->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,7 +68,7 @@ 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"); @@ -91,6 +92,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 +110,7 @@ $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'); $optioncss = GETPOST('optioncss', 'alpha'); $mine = ((GETPOST('mode') == 'mine') ? 1 : 0); @@ -146,7 +149,7 @@ if ($search_status == '') { $search_status = -1; // -1 or 1 } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { $search_category_array = GETPOST("search_category_".Categorie::TYPE_PROJECT."_list", "array"); } @@ -197,10 +200,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['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 @@ -226,7 +231,7 @@ $arrayfields = dol_sort_array($arrayfields, 'position'); if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } @@ -246,6 +251,7 @@ if (empty($reshook)) { $search_ref = ""; $search_label = ""; $search_societe = ""; + $search_societe_alias = ''; $search_status = -1; $search_opp_status = -1; $search_opp_amount = ''; @@ -285,7 +291,8 @@ if (empty($reshook)) { $search_accept_booth_suggestions = ''; $search_price_registration = ''; $search_price_booth = ''; - $toselect = ''; + $search_login = ''; + $toselect = array(); $search_array_options = array(); $search_category_array = array(); } @@ -297,7 +304,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 @@ -390,10 +397,11 @@ $sql = "SELECT ".$distinct." p.rowid as id, p.ref, p.title, p.fk_statut as statu $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.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,7 +414,7 @@ $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)) { +if (isModEnabled('categorie')) { $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'])) { @@ -415,6 +423,7 @@ if (!empty($extrafields->attributes[$object->table_element]['label']) &&is_array $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"; @@ -428,7 +437,7 @@ if ($search_project_contact > 0) { $sql .= ", ".MAIN_DB_PREFIX."element_contact as ecp_contact"; } $sql .= " WHERE p.entity IN (".getEntity('project').')'; -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { $sql .= Categorie::getFilterSelectQuery(Categorie::TYPE_PROJECT, "p.rowid", $search_category_array); } if (empty($user->rights->projet->all->lire)) { @@ -447,6 +456,9 @@ if ($search_label) { 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 +556,9 @@ 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); +} // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks @@ -687,6 +702,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,6 +753,9 @@ 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); } @@ -830,7 +851,7 @@ $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form- $moreforfilter .= '
    '; // If the user can view thirdparties other than his' -if ($user->rights->societe->client->voir || $socid) { +if ($user->rights->user->user->lire) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -839,7 +860,7 @@ if ($user->rights->societe->client->voir || $socid) { } // 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); } @@ -854,7 +875,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 +885,13 @@ print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($object->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); print "
    '.dol_print_date($db->jdate($obj->datem), 'day').''; + print dol_print_date($datem, 'day', 'tzuserrel'); + print ''.$projectstatic->LibStatut($obj->status, 3).'
    '; +// 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 ''; @@ -898,7 +938,7 @@ if (!empty($arrayfields['p.dateo']['checked'])) { print ''; } print ''; - $formother->select_year($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/ + print $formother->selectyear($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/ print '
    '; print $form->selectDate($search_date_start_start ? $search_date_start_start : -1, 'search_date_start_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); print '
    '; @@ -914,7 +954,7 @@ if (!empty($arrayfields['p.datee']['checked'])) { print ''; } print ''; - $formother->select_year($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/ + print $formother->selectyear($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle');*/ print '
    '; print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); print '
    '; @@ -924,15 +964,19 @@ if (!empty($arrayfields['p.datee']['checked'])) { print ''; } if (!empty($arrayfields['p.public']['checked'])) { - print ''; } +if (!empty($arrayfields['c.assigned']['checked'])) { + print ''; +} // Opp status if (!empty($arrayfields['p.fk_opp_status']['checked'])) { print ''; } if (!empty($arrayfields['p.opp_amount']['checked'])) { @@ -954,10 +998,6 @@ if (!empty($arrayfields['p.budget_amount']['checked'])) { print ''; print ''; } -if (!empty($arrayfields['c.assigned']['checked'])) { - print ''; -} if (!empty($arrayfields['p.usage_opportunity']['checked'])) { print ''; } +if (!empty($arrayfields['u.login']['checked'])) { + // Author + print ''; +} // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; @@ -1033,14 +1079,18 @@ 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 +1100,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 '); } @@ -1060,7 +1113,10 @@ if (!empty($arrayfields['p.datee']['checked'])) { print_liste_field_titre($arrayfields['p.datee']['label'], $_SERVER["PHP_SELF"], "p.datee", "", $param, '', $sortfield, $sortorder, 'center '); } if (!empty($arrayfields['p.public']['checked'])) { - print_liste_field_titre($arrayfields['p.public']['label'], $_SERVER["PHP_SELF"], "p.public", "", $param, "", $sortfield, $sortorder); + print_liste_field_titre($arrayfields['p.public']['label'], $_SERVER["PHP_SELF"], "p.public", "", $param, "", $sortfield, $sortorder, 'center '); +} +if (!empty($arrayfields['c.assigned']['checked'])) { + print_liste_field_titre($arrayfields['c.assigned']['label'], $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'center ', ''); } if (!empty($arrayfields['p.fk_opp_status']['checked'])) { print_liste_field_titre($arrayfields['p.fk_opp_status']['label'], $_SERVER["PHP_SELF"], 'p.fk_opp_status', "", $param, '', $sortfield, $sortorder, 'center '); @@ -1077,9 +1133,6 @@ if (!empty($arrayfields['opp_weighted_amount']['checked'])) { if (!empty($arrayfields['p.budget_amount']['checked'])) { print_liste_field_titre($arrayfields['p.budget_amount']['label'], $_SERVER["PHP_SELF"], 'p.budget_amount', "", $param, '', $sortfield, $sortorder, 'right '); } -if (!empty($arrayfields['c.assigned']['checked'])) { - print_liste_field_titre($arrayfields['c.assigned']['label'], $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'center ', ''); -} if (!empty($arrayfields['p.usage_opportunity']['checked'])) { print_liste_field_titre($arrayfields['p.usage_opportunity']['label'], $_SERVER["PHP_SELF"], 'p.usage_opportunity', "", $param, '', $sortfield, $sortorder, 'right '); } @@ -1104,6 +1157,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 @@ -1122,9 +1178,13 @@ if (!empty($arrayfields['p.email_msgid']['checked'])) { 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 '); } -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"; +$userstatic = new User($db); + $i = 0; $totalarray = array( 'nbfield' => 0, @@ -1160,6 +1220,18 @@ while ($i < min($num, $limit)) { print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } // Project url if (!empty($arrayfields['p.ref']['checked'])) { print ''; if (!$i) { $totalarray['nbfield']++; @@ -1185,7 +1257,20 @@ while ($i < min($num, $limit)) { if (!empty($arrayfields['s.nom']['checked'])) { print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; if (!$i) { $totalarray['nbfield']++; } } + // Contacts of project + if (!empty($arrayfields['c.assigned']['checked'])) { + print ''; + } // Opp Status if (!empty($arrayfields['p.fk_opp_status']['checked'])) { print ''; - } // Usage opportunity if (!empty($arrayfields['p.usage_opportunity']['checked'])) { print '\n"; + if (!$i) { + $totalarray['nbfield']++; + } + } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; // Fields from hook @@ -1510,15 +1624,17 @@ while ($i < min($num, $limit)) { } } // Action column - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php index 2ee52d3a247..ce099c04745 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"); } diff --git a/htdocs/projet/stats/index.php b/htdocs/projet/stats/index.php index f41651e15d8..ba293dea744 100644 --- a/htdocs/projet/stats/index.php +++ b/htdocs/projet/stats/index.php @@ -22,20 +22,18 @@ * \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'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/projectstats.class.php'; -// Security check -if (!$user->rights->projet->lire) { - accessforbidden(); -} - - $WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); +$search_opp_status = GETPOST("search_opp_status", 'alpha'); + $userid = GETPOST('userid', 'int'); $socid = GETPOST('socid', 'int'); // Security check @@ -44,19 +42,25 @@ if ($user->socid > 0) { $socid = $user->socid; } $nowyear = strftime("%Y", dol_now()); -$year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; +$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; // Load translation files required by the page $langs->loadLangs(array('companies', 'projects')); +// Security check +if (!$user->rights->projet->lire) { + accessforbidden(); +} + /* * View */ $form = new Form($db); +$formproject = new FormProjets($db); $includeuserlist = array(); @@ -82,66 +86,11 @@ if (!empty($year)) { $stats_project->year = $year; } -/* -if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) -{ - // Current stats of project amount per status - $data1 = $stats_project->getAllProjectByStatus(); - - if (!is_array($data1) && $data1 < 0) { - setEventMessages($stats_project->error, null, 'errors'); +if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { + if ($search_opp_status) { + $stats_project->opp_status = $search_opp_status; } - if (empty($data1)) - { - $showpointvalue = 0; - $nocolor = 1; - $data1 = array(array(0=>$langs->trans("None"), 1=>1)); - } - - $filenamenb = $conf->project->dir_output."/stats/projectbystatus.png"; - $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=projectstats&file=projectbystatus.png'; - $px = new DolGraph(); - $mesg = $px->isGraphKo(); - if (empty($mesg)) { - $i = 0; $tot = count($data1); $legend = array(); - while ($i <= $tot) - { - $legend[] = $data1[$i][0]; - $i++; - } - - $px->SetData($data1); - unset($data1); - - if ($nocolor) - $px->SetDataColor(array( - array( - 220, - 220, - 220 - ) - )); - - $px->SetLegend($legend); - $px->setShowLegend(0); - $px->setShowPointValue($showpointvalue); - $px->setShowPercent(1); - $px->SetMaxValue($px->GetCeilMaxValue()); - $px->SetWidth($WIDTH); - $px->SetHeight($HEIGHT); - $px->SetShading(3); - $px->SetHorizTickIncrement(1); - $px->SetCssPrefix("cssboxes"); - $px->SetType(array('pie')); - $px->SetTitle($langs->trans('OpportunitiesStatusForProjects')); - $result = $px->draw($filenamenb, $fileurlnb); - if ($result < 0) { - setEventMessages($px->error, null, 'errors'); - } - } else { - setEventMessages(null, $mesg, 'errors'); - } -}*/ +} // Build graphic number of object @@ -285,12 +234,19 @@ print ''; +// Opportunity status +if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { + print ''; +} + // User /*print '';*/ // Year -print ''; - } - - $notetoshow = $note_public; - print ''; - - print "
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -887,6 +915,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 ' '; + print ''; $array = array(''=>'', 0 => $langs->trans("PrivateProject"), 1 => $langs->trans("SharedProject")); print $form->selectarray('search_public', $array, $search_public); print ''; + print ''; - print $formproject->selectOpportunityStatus('search_opp_status', $search_opp_status, 1, 0, 1, 0, 'maxwidth100', 1); + print $formproject->selectOpportunityStatus('search_opp_status', $search_opp_status, 1, 0, 1, 0, 'maxwidth100 nowrapoption', 1, 0); print ''; - print ''; print $form->selectyesno('search_usage_opportunity', $search_usage_opportunity, 1, false, 1); @@ -999,6 +1039,12 @@ if (!empty($arrayfields['p.price_booth']['checked'])) { print ''; 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->id, $arrayofselected)) { + $selected = 1; + } + print ''; + } + print ''; @@ -1174,8 +1246,8 @@ while ($i < min($num, $limit)) { } // Title if (!empty($arrayfields['p.title']['checked'])) { - print ''; - print dol_trunc($obj->title, 80); + print ''; + print $obj->title; 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 ' '; } @@ -1258,17 +1343,54 @@ while ($i < min($num, $limit)) { } // Visibility if (!empty($arrayfields['p.public']['checked'])) { - print ''; + print ''; if ($obj->public) { - print $langs->trans('SharedProject'); + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); + //print $langs->trans('SharedProject'); } else { - print $langs->trans('PrivateProject'); + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); + //print $langs->trans('PrivateProject'); } print ''; + $ifisrt = 1; + foreach (array('internal', 'external') as $source) { + $tab = $object->liste_contact(-1, $source); + $numcontact = count($tab); + if (!empty($numcontact)) { + foreach ($tab as $contactproject) { + //var_dump($contacttask); + if ($source == 'internal') { + $c = new User($db); + } else { + $c = new Contact($db); + } + $c->fetch($contactproject['id']); + if (!empty($c->photo)) { + if (get_class($c) == 'User') { + print $c->getNomUrl(-2, '', 0, 0, 24, 1, '', ($ifisrt ? '' : 'notfirst')); + } else { + print $c->getNomUrl(-2, '', 0, '', -1, 0, ($ifisrt ? '' : 'notfirst')); + } + } else { + if (get_class($c) == 'User') { + print $c->getNomUrl(2, '', 0, 0, 24, 1, '', ($ifisrt ? '' : 'notfirst')); + } else { + print $c->getNomUrl(2, '', 0, '', -1, 0, ($ifisrt ? '' : 'notfirst')); + } + } + $ifisrt = 0; + } + } + } + print ''; @@ -1340,41 +1462,6 @@ while ($i < min($num, $limit)) { $totalarray['pos'][$totalarray['nbfield']] = 'p.budget_amount'; } } - // Contacts of project - if (!empty($arrayfields['c.assigned']['checked'])) { - print ''; - $ifisrt = 1; - foreach (array('internal', 'external') as $source) { - $tab = $object->liste_contact(-1, $source); - $numcontact = count($tab); - if (!empty($numcontact)) { - foreach ($tab as $contactproject) { - //var_dump($contacttask); - if ($source == 'internal') { - $c = new User($db); - } else { - $c = new Contact($db); - } - $c->fetch($contactproject['id']); - if (!empty($c->photo)) { - if (get_class($c) == 'User') { - print $c->getNomUrl(-2, '', 0, 0, 24, 1, '', ($ifisrt ? '' : 'notfirst')); - } else { - print $c->getNomUrl(-2, '', 0, '', -1, 0, ($ifisrt ? '' : 'notfirst')); - } - } else { - if (get_class($c) == 'User') { - print $c->getNomUrl(2, '', 0, 0, 24, 1, '', ($ifisrt ? '' : 'notfirst')); - } else { - print $c->getNomUrl(2, '', 0, '', -1, 0, ($ifisrt ? '' : 'notfirst')); - } - } - $ifisrt = 0; - } - } - } - print ''; @@ -1471,6 +1558,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 ''; + if ($userstatic->id) { + print $userstatic->getNomUrl(-1); + } else { + 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($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 ''; + print '
    '.$langs->trans("ThirdParty").''; print img_picto('', 'company', 'class="pictofixedwidth"'); print $form->select_company($socid, 'socid', '', 1, 0, 0, array(), 0, 'widthcentpercentminusx maxwidth300', ''); print '
    '.$langs->trans("OpportunityStatusShort").''; + print $formproject->selectOpportunityStatus('search_opp_status', $search_opp_status, 1, 0, 1, 0, 'maxwidth300', 1, 1); + print '
    '.$langs->trans("ProjectCommercial").''; print $form->select_dolusers($userid, 'userid', 1, array(),0,$includeuserlist); print '
    '.$langs->trans("Year").''; +print '
    '.$langs->trans("Year").' ('.$langs->trans("DateCreation").')'; if (!in_array($year, $arrayyears)) { $arrayyears[$year] = $year; } diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php index 364fcfe49f1..73d3c238026 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'; } @@ -103,7 +103,7 @@ $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 $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'projecttasklist'; - +$optioncss = GETPOST('optioncss', 'aZ'); //if (! $user->rights->projet->all->lire) $mine=1; // Special for projects $object = new Project($db); @@ -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); @@ -209,7 +209,7 @@ if (empty($reshook)) { $search_progresscalc = ''; $search_progressdeclare = ''; $search_task_budget_amount = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); $search_date_start_startmonth = ""; $search_date_start_startyear = ""; @@ -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'; } @@ -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); @@ -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); @@ -603,8 +606,10 @@ if ($id > 0 || !empty($ref)) { // Visibility print ''; @@ -646,7 +651,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -727,16 +732,21 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third // Project print ''; + $contactsofproject = (empty($object->id) ? '' : $object->getListContactId('internal')); + // Assigned to print ''; @@ -832,7 +842,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third print ''; $title = $langs->trans("ListOfTasks"); - $linktotasks = dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id, '', 1, array('morecss'=>'reposition btnTitleSelected')); + $linktotasks = dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id, '', 1, array('morecss'=>'reposition btnTitleSelected')); $linktotasks .= dolGetButtonTitle($langs->trans('ViewGantt'), '', 'fa fa-stream imgforviewmode', DOL_URL_ROOT.'/projet/ganttview.php?id='.$object->id.'&withproject=1', '', 1, array('morecss'=>'reposition marginleftonly')); //print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'generic', 0, '', '', 0, 1); @@ -899,7 +909,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third 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 a2bbba52305..1f5628bb050 100644 --- a/htdocs/projet/tasks/comment.php +++ b/htdocs/projet/tasks/comment.php @@ -151,7 +151,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($object->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); 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'); + $formother->selectProjectTasks(GETPOST('task_parent'), empty($projectid) ? $object->id : $projectid, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500 widthcentpercentminusxx'); 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'); } else { - print ''.$langs->trans("NoUserAssignedToTheProject").''; + 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 '
    '; /*print ''; print ''; - $formother->select_year($search_dtstartyear ? $search_dtstartyear : -1, 'search_dtstartyear', 1, 20, 5);*/ + print $formother->selectyear($search_dtstartyear ? $search_dtstartyear : -1, 'search_dtstartyear', 1, 20, 5);*/ print '
    '; print $form->selectDate($search_date_start_start ? $search_date_start_start : -1, 'search_date_start_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); print '
    '; @@ -913,7 +923,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third print '
    '; /*print ''; print ''; - $formother->select_year($search_dtendyear ? $search_dtendyear : -1, 'search_dtendyear', 1, 20, 5);*/ + print $formother->selectyear($search_dtendyear ? $search_dtendyear : -1, 'search_dtendyear', 1, 20, 5);*/ print '
    '; print $form->selectDate($search_date_end_start ? $search_date_end_start : -1, 'search_date_end_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')); print '
    '; @@ -1052,6 +1062,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); 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); } @@ -185,8 +185,10 @@ if ($id > 0 || !empty($ref)) { // Visibility print ''; @@ -203,19 +205,18 @@ if ($id > 0 || !empty($ref)) { // Opportunity percent print ''; // Opportunity Amount print ''; } @@ -257,7 +258,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index 0b26161c28c..14a87b375e8 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(); } @@ -210,7 +215,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($projectstatic->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("OpportunityProbability").''; - if (strcmp($object->opp_percent, '')) { + if (strcmp($projectstatic->opp_percent, '')) { print price($projectstatic->opp_percent, 0, $langs, 1, 0).' %'; } print '
    '.$langs->trans("OpportunityAmount").''; - /*if ($object->opp_status) - { - print price($obj->opp_amount, 1, $langs, 1, 0, -1, $conf->currency); - }*/ if (strcmp($projectstatic->opp_amount, '')) { print price($projectstatic->opp_amount, 0, $langs, 1, 0, -1, $conf->currency); + if (strcmp($projectstatic->opp_percent, '')) { + print '       '.$langs->trans("Weighted").': '.price($projectstatic->opp_amount * $projectstatic->opp_percent / 100, 0, $langs, 1, 0, -1, $conf->currency).''; + } } print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); 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); } @@ -244,8 +249,10 @@ if ($id > 0 || !empty($ref)) { // Visibility print ''; @@ -287,7 +294,7 @@ if ($id > 0 || !empty($ref)) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php index c57610d0130..3e569cd557f 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(); @@ -166,7 +172,7 @@ if ($object->id > 0) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($projectstatic->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); 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); } @@ -200,8 +206,10 @@ if ($object->id > 0) { // Visibility print ''; @@ -243,7 +251,7 @@ if ($object->id > 0) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index d71cd9bca56..f958a3b217c 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -68,6 +68,7 @@ $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'); $mine = GETPOST('mode', 'alpha') == 'mine' ? 1 : 0; @@ -113,7 +114,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 +155,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), @@ -185,7 +187,7 @@ if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } -if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } @@ -205,6 +207,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 = ""; @@ -237,7 +241,7 @@ if (empty($reshook)) { // 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 +278,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,13 +330,13 @@ 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.description, t.fk_task_parent"; $sql .= " ,t.budget_amount"; // We'll need these fields in order to filter by categ -if ($search_categ) { +if ($search_categ > 0) { $sql .= ", cs.fk_categorie, cs.fk_project"; } // Add sum fields @@ -352,7 +356,7 @@ $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)) { +if ($search_categ > 0) { $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"; @@ -413,6 +417,9 @@ if ($search_task_budget_amount) { 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)."'"; } @@ -579,6 +586,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); } @@ -661,7 +671,7 @@ 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'); @@ -708,6 +718,13 @@ print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($projectstatic->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); 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 +878,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 +917,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 +977,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 +1025,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']++; + } + } + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; if (!$i) { $totalarray['nbfield']++; @@ -1312,21 +1376,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 5f3d74a3c68..40f8f636e72 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'); @@ -156,7 +161,7 @@ if ($object->id > 0) { print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -768,6 +785,11 @@ if (!empty($arrayfields['s.nom']['checked'])) { print ''; print ''; + print ''; + print ''; $arrayofstatus = array(); @@ -826,10 +848,12 @@ if (!empty($arrayfields['t.tms']['checked'])) { print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; @@ -1008,6 +1046,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 ''; @@ -1101,9 +1151,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 +1290,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); } @@ -190,8 +195,10 @@ if ($object->id > 0) { // Visibility print ''; @@ -233,7 +240,7 @@ if ($object->id > 0) { print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; diff --git a/htdocs/projet/tasks/stats/index.php b/htdocs/projet/tasks/stats/index.php index 2ca72552fa4..dd807b7bb93 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'; diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index f6e9b6803af..ef00a85a0d4 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) : ''); @@ -120,12 +121,36 @@ if ($action == 'update' && !GETPOST("cancel") && $user->rights->projet->creer) { setEventMessages($object->error, $object->errors, 'errors'); $action = 'edit'; } + } else { + $action = 'edit'; } } else { $action = 'edit'; } } +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(); @@ -175,7 +200,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); @@ -190,12 +215,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(); @@ -203,7 +235,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(); } @@ -231,7 +263,7 @@ if ($id > 0 || !empty($ref)) { // Title $morehtmlref .= $projectstatic->title; // Thirdparty - if ($projectstatic->thirdparty->id > 0) { + if (!empty($projectstatic->thirdparty->id) &&$projectstatic->thirdparty->id > 0) { $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$projectstatic->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= ''; @@ -242,7 +274,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 '
    '; @@ -251,7 +283,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($projectstatic->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); 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 ''; @@ -274,8 +306,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); } @@ -285,8 +317,10 @@ if ($id > 0 || !empty($ref)) { // Visibility print ''; @@ -306,7 +340,7 @@ if ($id > 0 || !empty($ref)) { // Budget print ''; @@ -321,7 +355,7 @@ if ($id > 0 || !empty($ref)) { print '
    '; print '
    '; - print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($projectstatic->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Budget").''; if (strcmp($projectstatic->budget_amount, '')) { - print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency); + print ''.price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency).''; } print '
    '; + print '
    '; // Description print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -375,6 +409,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) { @@ -505,7 +555,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 .= ''; @@ -584,7 +634,7 @@ if ($id > 0 || !empty($ref)) { // Budget print ''; @@ -618,6 +668,7 @@ if ($id > 0 || !empty($ref)) { // Modify if ($user->rights->projet->creer) { print ''.$langs->trans('Modify').''; + print ''.$langs->trans('Clone').''; } else { print ''.$langs->trans('Modify').''; } @@ -643,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 1b8e116092f..9e5e9c8618d 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'; } @@ -73,6 +74,8 @@ $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'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -98,8 +101,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); @@ -161,15 +166,17 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_date_creation = ''; $search_date_update = ''; $search_task_ref = ''; + $search_company = ''; $search_task_label = ''; $search_user = 0; $search_valuebilled = ''; - $toselect = ''; + $search_product_ref = ''; + $toselect = array(); $search_array_options = array(); $action = ''; } -if ($action == 'addtimespent' && $user->rights->projet->lire) { +if ($action == 'addtimespent' && $user->rights->projet->time) { $error = 0; $timespent_durationhour = GETPOST('timespent_durationhour', 'int'); @@ -218,6 +225,7 @@ if ($action == 'addtimespent' && $user->rights->projet->lire) { $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'); @@ -246,7 +254,8 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us if (!$error) { if (GETPOST('taskid', 'int') != $id) { // GETPOST('taskid') is id of new task - $id = GETPOST('taskid', 'int'); + $id_temp = GETPOST('taskid', 'int'); // should not overwrite $id + $object->fetchTimeSpent(GETPOST('lineid', 'int')); @@ -255,10 +264,10 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us $result = $object->delTimeSpent($user); } - $object->fetch($id, $ref); + $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 @@ -268,24 +277,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 @@ -295,6 +304,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) { @@ -313,7 +323,7 @@ if (($action == 'updateline' || $action == 'updatesplitline') && !$cancel && $us } } -if ($action == 'confirm_deleteline' && $confirm == "yes" && $user->rights->projet->lire) { +if ($action == 'confirm_deleteline' && $confirm == "yes" && $user->rights->projet->supprimer) { $object->fetchTimeSpent(GETPOST('lineid', 'int')); // load properties like $object->timespent_id if (in_array($object->timespent_fk_user, $childids) || $user->rights->projet->all->creer) { @@ -388,36 +398,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']; @@ -425,7 +421,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); @@ -453,39 +449,85 @@ if ($action == 'confirm_generateinvoice') { 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); + $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); + 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); - // Define qty per hour - $qtyhour = $value['timespent'] / 3600; - $qtyhourtext = convertSecondToTime($value['timespent'], 'all', $conf->global->MAIN_DURATION_OF_WORKDAY); + // If no unit price known + if (empty($pu_ht)) { + $pu_ht = price2num($timespent_data['totalvaluetodivideby3600'] / 3600, 'MU'); + } - // If no unit price known - if (empty($pu_ht)) { - $pu_ht = price2num($value['totalvaluetodivideby3600'] / 3600, 'MU'); - } + // Add lines + $prodDurationHours = $prodDurationHoursBase; + $idprodline=$idprod; + $pu_htline = $pu_ht; + $txtvaline = $txtva; + $localtax1line = $localtax1; + $localtax2line = $localtax2; - // Add lines - $lineid = $tmpinvoice->addline($langs->trans("TimeSpentForInvoice", $username).' : '.$qtyhourtext, $pu_ht, round($qtyhour / $prodDurationHours, 2), $txtva, $localtax1, $localtax2, ($idprod > 0 ? $idprod : 0)); + 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'); + } - // 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; + $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 @@ -501,7 +543,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"; @@ -515,6 +557,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) { @@ -530,7 +573,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 @@ -549,56 +634,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; + } + } } } } @@ -644,7 +772,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); @@ -677,7 +805,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']); } } @@ -699,15 +827,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) { /* @@ -789,7 +922,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '.$langs->trans("Description").''; @@ -329,7 +363,7 @@ if ($id > 0 || !empty($ref)) { print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); 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 ''; @@ -812,7 +945,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); @@ -823,8 +956,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Visibility print ''; @@ -866,7 +1001,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; // Categories - if ($conf->categorie->enabled) { + if (isModEnabled('categorie')) { print '"; @@ -888,22 +1023,26 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $linktocreatetimeBtnStatus = 0; $linktocreatetimeUrl = ''; $linktocreatetimeHelpText = ''; - if ($user->rights->projet->all->lire || $user->rights->projet->lire) { // To enter time, read permission is enough + if (!empty($user->rights->projet->time)) { if ($projectstatic->public || $userRead > 0) { $linktocreatetimeBtnStatus = 1; - if (!empty($projectidforalltimes)) { // We are on tab 'Time Spent' of project + if (!empty($projectidforalltimes)) { + // We are on tab 'Time Spent' of project $backtourl = $_SERVER['PHP_SELF'].'?projectid='.$projectstatic->id.($withproject ? '&withproject=1' : ''); - $linktocreatetimeUrl = $_SERVER['PHP_SELF'].'?'.($withproject ? 'withproject=1' : '').'&projectid='.$projectstatic->id.'&action=createtime'.$param.'&backtopage='.urlencode($backtourl); - } else // We are on tab 'Time Spent' of task - { + $linktocreatetimeUrl = $_SERVER['PHP_SELF'].'?'.($withproject ? 'withproject=1' : '').'&projectid='.$projectstatic->id.'&action=createtime&token='.newToken().$param.'&backtopage='.urlencode($backtourl); + } else { + // We are on tab 'Time Spent' of task $backtourl = $_SERVER['PHP_SELF'].'?id='.$object->id.($withproject ? '&withproject=1' : ''); - $linktocreatetimeUrl = $_SERVER['PHP_SELF'].'?'.($withproject ? 'withproject=1' : '').($object->id > 0 ? '&id='.$object->id : '&projectid='.$projectstatic->id).'&action=createtime'.$param.'&backtopage='.urlencode($backtourl); + $linktocreatetimeUrl = $_SERVER['PHP_SELF'].'?'.($withproject ? 'withproject=1' : '').($object->id > 0 ? '&id='.$object->id : '&projectid='.$projectstatic->id).'&action=createtime&token='.newToken().$param.'&backtopage='.urlencode($backtourl); } } else { $linktocreatetimeBtnStatus = -2; $linktocreatetimeHelpText = $langs->trans("NotOwnerOfProject"); } + } else { + $linktocreatetimeBtnStatus = -2; + $linktocreatetimeHelpText = $langs->trans("NotEnoughPermissions"); } $paramsbutton = array('morecss'=>'reposition'); @@ -912,15 +1051,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 ( !empty($conf->ficheinter->enabled) && $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'))) { @@ -958,7 +1101,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 .= ''; @@ -970,10 +1113,19 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '; print '
    '; - print '
    '; print $langs->trans("Usage"); print '
    '.$langs->trans("Visibility").''; if ($projectstatic->public) { + print img_picto($langs->trans('SharedProject'), 'world', 'class="paddingrightonly"'); print $langs->trans('SharedProject'); } else { + print img_picto($langs->trans('PrivateProject'), 'private', 'class="paddingrightonly"'); print $langs->trans('PrivateProject'); } print '
    '.$langs->trans("Categories").''; print $form->showCategories($projectstatic->id, 'project', 1); print "
    '; + print '
    '; + + // Task parent + print ''; // Date start - Date end - 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'); @@ -1503,6 +1682,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 @@ -1554,11 +1739,16 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; } print ''; - $formother->select_year($search_year, 'search_year', 1, 20, 5); + print $formother->selectyear($search_year, 'search_year', 1, 20, 5); print ''; } + // Thirdparty + if (!empty($arrayfields['p.fk_soc']['checked'])) { + print ''; + } + if (!empty($allprojectforuser)) { - print ''; + print ''; } // Task if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task @@ -1581,6 +1771,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!empty($arrayfields['t.task_duration']['checked'])) { print ''; } + // Product + if (!empty($arrayfields['t.fk_product']['checked'])) { + print ''; + } // Value in main currency if (!empty($arrayfields['value']['checked'])) { print ''; @@ -1609,6 +1803,9 @@ 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($allprojectforuser)) { print_liste_field_titre("Project", $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder); } @@ -1629,6 +1826,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 '); } @@ -1667,7 +1868,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Date if (!empty($arrayfields['t.task_date']['checked'])) { print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + // Project ref if (!empty($allprojectforuser)) { 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 ''; } @@ -2046,7 +2281,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 ''; } @@ -2153,7 +2390,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 9369a9d78a7..497c68954db 100644 --- a/htdocs/public/cron/cron_run_jobs_by_url.php +++ b/htdocs/public/cron/cron_run_jobs_by_url.php @@ -23,6 +23,7 @@ * \ingroup cron * \brief Execute pendings jobs */ + if (!defined('NOTOKENRENEWAL')) { define('NOTOKENRENEWAL', '1'); // Disables token renewal } @@ -42,6 +43,11 @@ if (!defined('NOIPCHECK')) { define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip } +// So log file will have a suffix +if (!defined('USESUFFIXINLOG')) { + define('USESUFFIXINLOG', '_cron'); +} + // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php $entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); @@ -69,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'); } @@ -87,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; } @@ -129,7 +135,7 @@ 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); 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..4acbaa5a256 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); + httponly_accessforbidden('Module Donation not enabled'); } diff --git a/htdocs/public/emailing/mailing-read.php b/htdocs/public/emailing/mailing-read.php index 7fac6ff323e..1c2bd6cea98 100644 --- a/htdocs/public/emailing/mailing-read.php +++ b/htdocs/public/emailing/mailing-read.php @@ -68,6 +68,7 @@ function llxFooter() } +// Load Dolibarr environment require '../../main.inc.php'; $mtid = GETPOST('mtid'); 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 '
    '.$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("DateEnd").''; + 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'); @@ -1032,6 +1184,10 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if ($projectstatic->id > 0 || $allprojectforuser > 0) { + if ($action == 'deleteline' && !empty($projectidforalltimes)) { + print $form->formconfirm($_SERVER["PHP_SELF"]."?".($object->id > 0 ? "id=".$object->id : 'projectid='.$projectstatic->id).'&lineid='.GETPOST('lineid', 'int').($withproject ? '&withproject=1' : ''), $langs->trans("DeleteATimeSpent"), $langs->trans("ConfirmDeleteATimeSpent"), "confirm_deleteline", '', '', 1); + } + // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('tasktimelist')); @@ -1056,12 +1212,16 @@ 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); if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task $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 ($conf->service->enabled && $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)); @@ -1089,6 +1249,9 @@ 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_task_label != '') { $param .= '&search_task_label='.urlencode($search_task_label); } @@ -1129,7 +1292,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; } elseif ($action == 'splitline') { print ''; - } elseif ($action == 'createtime' && $user->rights->projet->lire) { + } elseif ($action == 'createtime' && $user->rights->projet->time) { print ''; } elseif ($massaction == 'generateinvoice' && $user->rights->facture->lire) { print ''; @@ -1149,8 +1312,6 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser // Form to convert time spent into invoice if ($massaction == 'generateinvoice') { - print ''; - if ($projectstatic->thirdparty->id > 0) { print ''; print ''; @@ -1242,10 +1403,11 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print ''; if ($projectstatic->thirdparty->id > 0) { - 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); @@ -1254,7 +1416,6 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser print '
    '; - print '
    '; print '
    '; print ' '; print ''; @@ -1288,9 +1449,11 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $tasks = array(); $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,"; // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook @@ -1299,13 +1462,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,19 +1493,27 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if ($search_task_ref) { $sql .= natural_search('pt.ref', $search_task_ref); } + if ($search_company) { + $sql .= natural_search('s.nom', $search_company); + } 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)'; } + $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 @@ -1405,7 +1580,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser /* * Form to add a new line of time spent */ - if ($action == 'createtime' && $user->rights->projet->lire) { + if ($action == 'createtime' && $user->rights->projet->time) { print ''."\n"; if (!empty($id)) { print ''; @@ -1428,6 +1603,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 ($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 { @@ -1682,6 +1883,23 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser } } + // Thirdparty + if (!empty($arrayfields['p.fk_soc']['checked'])) { + print ''; + 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); + print ''; @@ -1703,7 +1921,7 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser if (!empty($arrayfields['t.task_ref']['checked'])) { if ((empty($id) && empty($ref)) || !empty($projectidforalltimes)) { // Not a dedicated task 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; @@ -1735,7 +1953,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); } @@ -1766,8 +1984,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); } @@ -1775,14 +1993,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 { @@ -1802,12 +2020,29 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser $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 ''; @@ -1860,26 +2095,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->lire || $user->rights->projet->all->creer) { // Read project and enter time consumed on assigned tasks - if (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 ($task_time->fk_user == $user->id || 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 ''; @@ -1904,13 +2137,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 { @@ -1954,7 +2187,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); } @@ -1982,20 +2215,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 { @@ -2007,8 +2240,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 { @@ -2090,7 +2325,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); } @@ -2118,20 +2353,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 { @@ -2143,8 +2378,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..3d453cd30e5 100644 --- a/htdocs/public/error-401.php +++ b/htdocs/public/error-401.php @@ -21,7 +21,7 @@ Sorry. You are not allowed to access this resource.
    - +
    diff --git a/htdocs/public/error-404.php b/htdocs/public/error-404.php index 680b9e4a77c..c964e49cd85 100644 --- a/htdocs/public/error-404.php +++ b/htdocs/public/error-404.php @@ -21,7 +21,7 @@ You requested a website or a page that does not exists.
    - +
    diff --git a/htdocs/public/eventorganization/attendee_new.php b/htdocs/public/eventorganization/attendee_new.php index a7cdd1ceda8..589bf2c8dac 100644 --- a/htdocs/public/eventorganization/attendee_new.php +++ b/htdocs/public/eventorganization/attendee_new.php @@ -45,6 +45,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'; @@ -60,6 +61,7 @@ global $dolibarr_main_url_root; // Init vars $errmsg = ''; +$errors = array(); $error = 0; $backtopage = GETPOST('backtopage', 'alpha'); $action = GETPOST('action', 'aZ09'); @@ -67,7 +69,7 @@ $action = GETPOST('action', 'aZ09'); $email = GETPOST("email"); $societe = GETPOST("societe"); $emailcompany = GETPOST("emailcompany"); -$note_public = GETPOST('note_public', "nohtml"); +$note_public = GETPOST('note_public', "restricthtml"); // Getting id from Post and decoding it $type = GETPOST('type', 'aZ09'); @@ -90,17 +92,31 @@ if ($type == 'conf') { if ($resultproject < 0) { $error++; $errmsg .= $project->error; + $errors = array_merge($errors, $project->errors); } } + +$currentnbofattendees = 0; if ($type == 'global') { $resultproject = $project->fetch($id); 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); + + $resql = $db->query($resql); + if ($resql) { + $obj = $db->fetch_object($resql); + if ($obj) { + $currentnbofattendees = $obj->nb; + } + } } } - // Security check $securekeyreceived = GETPOST('securekey', 'alpha'); $securekeytocompare = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$id, 'md5'); @@ -123,7 +139,7 @@ $user->loadDefaultValues(); // Security check if (empty($conf->eventorganization->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Event organization not enabled'); } @@ -262,10 +278,12 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen $confattendee->fk_project = $project->id; $confattendee->fk_actioncomm = $id; $confattendee->note_public = $note_public; + $resultconfattendee = $confattendee->create($user); if ($resultconfattendee < 0) { $error++; $errmsg .= $confattendee->error; + $errors = array_merge($errors, $confattendee->errors); } } @@ -277,7 +295,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen $securekeyurl = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$id, 'master'); $redirection = $dolibarr_main_url_root.'/public/eventorganization/subscriptionok.php?id='.((int) $id).'&securekey='.urlencode($securekeyurl); - $mesg = $langs->trans("RegistrationAndPaymentWereAlreadyRecorder", $email); + $mesg = $langs->trans("RegistrationAndPaymentWereAlreadyRecorded", $email); setEventMessages($mesg, null, 'mesgs'); $db->commit(); @@ -390,6 +408,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)) { @@ -428,6 +447,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); @@ -459,6 +479,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen if ($resultprod < 0) { $error++; $errmsg .= $productforinvoicerow->error; + $errors = array_merge($errors, $productforinvoicerow->errors); } else { $facture = new Facture($db); if (empty($confattendee->fk_invoice)) { @@ -627,6 +648,7 @@ print '
    '; print $langs->trans("EvntOrgWelcomeMessage", $project->title . ' '. $conference->label); print '
    '; +$maxattendees = 0; if ($conference->id) { print $langs->trans("Date").': '; print dol_print_date($conference->datep); @@ -641,138 +663,149 @@ if ($conference->id) { print ' - '; print dol_print_date($project->date_end); } + $maxattendees = $project->max_attendees; } print '
    '; +if ($maxattendees && $currentnbofattendees >= $maxattendees) { + print '
    '; + print '
    '.$langs->trans("MaxNbOfAttendeesReached").'
    '; + print '
    '; +} + + 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)) { - // Print form - print '
    ' . "\n"; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; +if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS_CONFIRMED) || (!empty($project->id) && $project->status == Project::STATUS_VALIDATED)) { + if (empty($maxattendees) || $currentnbofattendees < $maxattendees) { + // Print form + print '' . "\n"; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; - print '
    '; + print '
    '; - print '
    ' . $langs->trans("FieldsWithAreMandatory", '*') . '
    '; - //print $langs->trans("FieldsWithIsForPublic",'**').'
    '; + print '
    ' . $langs->trans("FieldsWithAreMandatory", '*') . '
    '; + //print $langs->trans("FieldsWithIsForPublic",'**').'
    '; - print dol_get_fiche_head(''); + print dol_get_fiche_head(''); - print ''; + '; - print '' . "\n"; + print '
    ' . "\n"; - // Email - print '' . "\n"; - - // Company - print '' . "\n"; - - // Email company for invoice - if ($project->price_registration) { - print '' . "\n"; - } + print '' . "\n"; - // Address - print '' . "\n"; + // Company + print '' . "\n"; - // Zip / Town - print ''; + // Email company for invoice + if ($project->price_registration) { + print '' . "\n"; + } - // Country - print '' . "\n"; + + // Zip / Town + print ''; + + // Country + print ''; - // State - if (empty($conf->global->SOCIETE_DISABLE_STATE)) { - print ''; + // State + if (empty($conf->global->SOCIETE_DISABLE_STATE)) { + print ''; } + + if ($project->price_registration) { + print ''; + } + + $notetoshow = $note_public; + print ''; + + print "
    ' . $langs->trans("EmailAttendee") . '*'; - print img_picto('', 'email', 'class="pictofixedwidth"'); - print '
    ' . $langs->trans("Company"); - if (!empty(floatval($project->price_registration))) { - print '*'; - } - print ' '; - print img_picto('', 'company', 'class="pictofixedwidth"'); - print '
    ' . $langs->trans("EmailCompanyForInvoice") . ''; + // Email + print '
    ' . $langs->trans("EmailAttendee") . '*'; print img_picto('', 'email', 'class="pictofixedwidth"'); - print '
    ' . $langs->trans("Address") . '' . "\n"; - print '
    ' . $langs->trans("Company"); + if (!empty(floatval($project->price_registration))) { + print '*'; + } + print ' '; + print img_picto('', 'company', 'class="pictofixedwidth"'); + print '
    ' . $langs->trans('Zip') . ' / ' . $langs->trans('Town') . ''; - print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1); - print ' / '; - print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1); - print '
    ' . $langs->trans("EmailCompanyForInvoice") . ''; + print img_picto('', 'email', 'class="pictofixedwidth"'); + print '
    ' . $langs->trans('Country') . '*'; - print img_picto('', 'country', 'class="pictofixedwidth"'); - $country_id = GETPOST('country_id'); - 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; + // Address + 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'), 6, 1); + 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'); + 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); - } else { - print ''; + $country_code = getCountry($country_id, 2, $db, $langs); + print $form->select_country($country_id, 'country_id', '', 0, 'minwidth200 widthcentpercentminusx maxwidth300'); + print '
    ' . $langs->trans('State') . ''; + if ($country_code) { + print img_picto('', 'state', 'class="pictofixedwidth"'); + print $formcompany->select_state(GETPOST("state_id"), $country_code); + } else { + print ''; + } + print '
    ' . $langs->trans('Price') . ''; + print price($project->price_registration, 1, $langs, 1, -1, -1, $conf->currency); + print '
    ' . $langs->trans('Note') . ''; + if (!empty($conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION)) { + $notetoshow = str_replace('\n', "\n", $conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION); + } + print ''; print '
    \n"; + + print dol_get_fiche_end(); + + // Save + print '
    '; + print ''; + if (!empty($backtopage)) { + print '     '; + } + print '
    '; + + + print "
    \n"; + print "
    "; + print '
    '; } - - if ($project->price_registration) { - print '
    ' . $langs->trans('Price') . ''; - print price($project->price_registration, 1, $langs, 1, -1, -1, $conf->currency); - print '
    ' . $langs->trans('Note') . ''; - if (!empty($conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION)) { - $notetoshow = str_replace('\n', "\n", $conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION); - } - print ''; - print '
    \n"; - - print dol_get_fiche_end(); - - // Save - print '
    '; - print ''; - if (!empty($backtopage)) { - print '     '; - } - print '
    '; - - - print "\n"; - print "
    "; - print '
    '; } else { print $langs->trans("ConferenceIsNotConfirmed"); } diff --git a/htdocs/public/eventorganization/subscriptionok.php b/htdocs/public/eventorganization/subscriptionok.php index 8acf3daba78..745c9885647 100644 --- a/htdocs/public/eventorganization/subscriptionok.php +++ b/htdocs/public/eventorganization/subscriptionok.php @@ -48,6 +48,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'; @@ -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 055ffec56f9..0a1ebc0600e 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 @@ -57,18 +58,21 @@ if (!defined('NOIPCHECK')) { // 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. $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.'/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'; // Init vars $errmsg = ''; @@ -82,12 +86,11 @@ $langs->loadLangs(array("main", "members", "companies", "install", "other")); // 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 @@ -256,7 +259,7 @@ if (empty($reshook) && $action == 'add') { $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; @@ -377,6 +380,16 @@ if (empty($reshook) && $action == 'add') { } } + // 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 (!empty($backtopage)) { $urlback = $backtopage; } elseif (!empty($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION)) { @@ -426,11 +439,12 @@ if (empty($reshook) && $action == 'add') { // 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 - print '
    '; + // If we have not been redirected + print '

    '; print '
    '; print $langs->trans("NewMemberbyWeb"); print '
    '; @@ -448,7 +462,7 @@ if (empty($reshook) && $action == 'added') { $form = new Form($db); $formcompany = new FormCompany($db); $adht = new AdherentType($db); -$extrafields->fetch_name_optionals_label('adherent'); // fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); // fetch optionals attributes and labels llxHeaderVierge($langs->trans("NewSubscription")); @@ -464,7 +478,7 @@ 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 '
    '; @@ -474,254 +488,366 @@ dol_htmloutput_errors($errmsg); 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 ''."\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 ''; + } + + 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", $amount, $langs->trans("Currency".$conf->currency)): $langs->trans("AnyAmountWithoutAdvisedAmount"); + print ''; + } else { + print ''; + print ''; + print ' '.$langs->trans("Currency".$conf->currency); + } + 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)); + + $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 .= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; + $sql .= " WHERE d.entity IN (".getEntity('member_type').")"; + $sql .= " AND d.statut=1"; + + $result = $db->query($sql); + if ($result) { + $num = $db->num_rows($result); + + print '
    '; + print ''."\n"; + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + + $i = 0; + while ($i < $num) { + $objp = $db->fetch_object($result); + + print ''; + print ''; + print ''; + print ''; + print ''; + 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("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).'
    '.$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..19fd85ace7e 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 @@ -82,13 +82,6 @@ $ref = $REF = GETPOST("ref", 'alpha'); if (empty($source)) { $source = 'proposal'; } - -if (!$action) { - if ($source && !$ref) { - print $langs->trans('ErrorBadParameters')." - ref missing"; - exit; - } -} if (!empty($refusepropal)) { $action = "refusepropal"; } @@ -124,25 +117,29 @@ $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'); } -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 (!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 ($source == 'proposal') { + require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; + $object = new Propal($db); + $result= $object->fetch(0, $ref, '', $entity); +} else { + httponly_accessforbidden($langs->trans('ErrorBadParameters')." - Bad value for source", 400, 1); } @@ -168,6 +165,15 @@ if ($action == 'confirm_refusepropal' && $confirm == 'yes') { $message = 'refused'; setEventMessages("PropalRefused", null, 'warnings'); + if (method_exists($object, 'call_trigger')) { + //customer is not a user !?! so could we use same user as validation ? + $user = new User($db); + $user->fetch($object->user_valid_id); + $result = $object->call_trigger('PROPAL_CLOSE_REFUSED', $user); + if ($result < 0) { + $error++; + } + } } else { $db->rollback(); } @@ -193,7 +199,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 @@ -290,19 +296,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"; - - // TODO Add link to download PDF (similar code than for invoice) } @@ -436,7 +435,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).'&message=signed&securekey='.urlencode($SECUREKEY).(isModEnabled('multicompany')?'&entity='.$entity:'').'"); }else{ console.error(response); } diff --git a/htdocs/public/opensurvey/studs.php b/htdocs/public/opensurvey/studs.php index 02ee2df87e2..bd49b6afbe4 100644 --- a/htdocs/public/opensurvey/studs.php +++ b/htdocs/public/opensurvey/studs.php @@ -35,6 +35,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 DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"; @@ -59,7 +60,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 +75,7 @@ $listofvoters = explode(',', $_SESSION["savevoter"]); // Add comment if (GETPOST('ajoutcomment', 'alpha')) { if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } $error = 0; @@ -108,11 +109,11 @@ 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', 'nohtml')) { + if (GETPOST('nom', 'alphanohtml')) { $nouveauchoix = ''; for ($i = 0; $i < $nbcolonnes; $i++) { if (GETPOSTISSET("choix$i") && GETPOST("choix$i") == '1') { @@ -124,7 +125,7 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x")) { // bo } } - $nom = substr(GETPOST("nom", 'nohtml'), 0, 64); + $nom = substr(GETPOST("nom", 'alphanohtml'), 0, 64); // Check if vote already exists $sql = 'SELECT id_users, nom as name'; @@ -214,7 +215,7 @@ if ($testmodifier) { } if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } $idtomodify = GETPOST("idtomodify".$modifier); @@ -232,7 +233,7 @@ if ($testmodifier) { $idcomment = GETPOST('deletecomment', 'int'); if ($idcomment) { if (!$canbemodified) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('ErrorForbidden'); } $resql = $object->deleteComment($idcomment); @@ -695,7 +696,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 fe57f4ea424..68e9034a761 100644 --- a/htdocs/public/partnership/new.php +++ b/htdocs/public/partnership/new.php @@ -52,9 +52,11 @@ 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'; @@ -66,16 +68,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 @@ -177,10 +178,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"; @@ -189,6 +194,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"; @@ -204,23 +210,78 @@ if (empty($reshook) && $action == 'add') { $partnership = new Partnership($db); // We try to find the thirdparty or the member - if (empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) || $conf->global->PARTNERSHIP_IS_MANAGED_FOR == 'thirdparty') { + if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'thirdparty') { $partnership->fk_member = 0; - } elseif ($conf->global->PARTNERSHIP_IS_MANAGED_FOR == 'member') { + } elseif (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'member') { $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'); + + // 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); @@ -229,175 +290,180 @@ 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 (!$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 (!empty($conf->global->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($conf->global->MAIN_INFO_SOCIETE_MAIL); - $from = $conf->global->PARTNERSHIP_MAIL_FROM; - $mailfile = new CMailFile( - '['.$appli.'] '.$conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT, - $to, - $from, - $partnership->makeSubstitution($conf->global->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); } } @@ -418,7 +484,7 @@ if (empty($reshook) && $action == 'added') { llxHeaderVierge($langs->trans("NewPartnershipForm")); // Si on a pas ete redirige - print '
    '; + print '

    '; print '
    '; print $langs->trans("NewPartnershipbyWeb"); print '
    '; @@ -435,14 +501,14 @@ if (empty($reshook) && $action == 'added') { $form = new Form($db); $formcompany = new FormCompany($db); -$partnershipt = new AdherentType($db); -$extrafields->fetch_name_optionals_label('partnership'); // fetch optionals attributes and labels + +$extrafields->fetch_name_optionals_label($partnership->table_element); // fetch optionals attributes and labels -llxHeaderVierge($langs->trans("NewSubscription")); +llxHeaderVierge($langs->trans("NewPartnershipRequest")); -print load_fiche_titre($langs->trans("NewSubscription"), '', '', 0, 0, 'center'); +print load_fiche_titre($langs->trans("NewPartnershipRequest"), '', '', 0, 0, 'center'); print '
    '; @@ -452,7 +518,7 @@ print '
    '; if (!empty($conf->global->PARTNERSHIP_NEWFORM_TEXT)) { print $langs->trans($conf->global->PARTNERSHIP_NEWFORM_TEXT)."
    \n"; } else { - print $langs->trans("NewSubscriptionDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
    \n"; + print $langs->trans("NewPartnershipRequestDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
    \n"; } print '
    '; @@ -505,45 +571,34 @@ if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE)) { } */ -// Moral/Physic attribute -$morphys["phy"] = $langs->trans("Physical"); -$morphys["mor"] = $langs->trans("Moral"); -if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCEMORPHY)) { - print '
    '."\n"; } else { - print $morphys[$conf->global->PARTNERSHIP_NEWFORM_FORCEMORPHY]; - print ''; + print $listofpartnership[$conf->global->PARTNERSHIP_NEWFORM_FORCETYPE]; + print ''; } // Company -print ''."\n"; -// Title -print ''."\n"; // Lastname print ''."\n"; // Firstname print ''."\n"; // EMail -print ''."\n"; -// Login -if (empty($conf->global->PARTNERSHIP_LOGIN_NOT_REQUIRED)) { - print ''."\n"; - print ''."\n"; - print ''."\n"; -} -// Gender -print ''; -print ''; // Address print ''."\n"; diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index b61a2e22a06..0fbb1b69b02 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'; @@ -618,9 +619,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) @@ -1353,7 +1354,7 @@ 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 : ''); } @@ -1364,8 +1365,8 @@ if ($source == 'contractline') { // $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')).''; @@ -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"; @@ -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 '
    '.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 '
    '.$langs->trans("Creditor"); print ''; print img_picto('', 'company', 'class="pictofixedwidth"'); @@ -311,43 +307,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 +356,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,10 +368,8 @@ if ($source == 'proposal') { } print ''; - print ''; + print ''; print '
    '.$langs->trans('MemberNature').' *'."\n"; - print $form->selectarray("morphy", $morphys, GETPOST('morphy'), 1); +$partnershiptype = new PartnershipType($db); +$listofpartnershipobj = $partnershiptype->fetchAll('', '', 1000); +$listofpartnership = array(); +foreach ($listofpartnershipobj as $partnershipobj) { + $listofpartnership[$partnershipobj->id] = $partnershipobj->label; +} + +if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE)) { + print '
    '.$langs->trans('PartnershipType').' *'."\n"; + print $form->selectarray("partnershiptype", $listofpartnership, GETPOSTISSET('partnershiptype') ? GETPOST('partnershiptype', 'int') : 'ifone', 1); print '
    '.$langs->trans("Company").''; +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->PARTNERSHIP_MAIL_REQUIRED ? ' *' : '').''; +print '
    '.$langs->trans("Email").' *'; //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 '
    '; 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 '
    diff --git a/htdocs/public/payment/paymentko.php b/htdocs/public/payment/paymentko.php index 606bed0c490..5bf9b6115ed 100644 --- a/htdocs/public/payment/paymentko.php +++ b/htdocs/public/payment/paymentko.php @@ -46,6 +46,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'; @@ -108,7 +109,7 @@ if (!empty($conf->stripe->enabled)) { // Security check if (empty($validpaymentmethod)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('No valid payment mode'); } diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php index 0ee6fa10bc7..b8e4e9d4e19 100644 --- a/htdocs/public/payment/paymentok.php +++ b/htdocs/public/payment/paymentok.php @@ -50,6 +50,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'; @@ -138,7 +139,7 @@ if (!empty($conf->stripe->enabled)) { // Security check if (empty($validpaymentmethod)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('No valid payment mode'); } @@ -369,6 +370,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 +378,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 +507,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 +540,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) && !empty($conf->facture->enabled)) { + 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) && !empty($conf->facture->enabled)) { + } 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 +700,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 +853,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; @@ -927,7 +931,7 @@ if ($ispaymentok) { } // Do action only if $FinalPaymentAmt is set (session variable is cleaned after this page to avoid duplicate actions when page is POST a second time) - if (!empty($conf->facture->enabled)) { + if (isModEnabled('facture')) { if (!empty($FinalPaymentAmt) && $paymentTypeId > 0 ) { include_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; $invoice = new Facture($db); @@ -966,7 +970,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; @@ -1051,8 +1055,10 @@ if ($ispaymentok) { include_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php'; $paiement = new PaymentDonation($db); + $totalpaid = $FinalPaymentAmt; + if ($currencyCodeType == $conf->currency) { - $paiement->amounts = array($object->id => $FinalPaymentAmt); // Array with all payments dispatching with donation + $paiement->amounts = array($object->id => $totalpaid); // Array with all payments dispatching with donation } else { // PaymentDonation does not support multi currency $postactionmessages[] = 'Payment donation can\'t be payed with diffent currency than '.$conf->currency; @@ -1078,11 +1084,13 @@ if ($ispaymentok) { $postactionmessages[] = 'Payment created'; $ispostactionok = 1; - if ($totalpayed >= $don->getRemainToPay()) $don->setPaid($don->id); + if ($totalpaid >= $don->getRemainToPay()) { + $don->setPaid($don->id); + } } } - if (!$error && !empty($conf->banque->enabled)) { + if (!$error && isModEnabled("banque")) { $bankaccountid = 0; if ($paymentmethod == 'paybox') { $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS; @@ -1198,7 +1206,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; @@ -1267,21 +1275,25 @@ if ($ispaymentok) { $outputlangs = new Translate('', $conf); $outputlangs->setDefaultLang(empty($thirdparty->default_lang) ? $mysoc->default_lang : $thirdparty->default_lang); // Load traductions files required by page - $outputlangs->loadLangs(array("main", "members")); + $outputlangs->loadLangs(array("main", "members", "eventorganization")); // Get email content from template $arraydefaultmessage = null; - $labeltouse = $conf->global->EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT; + $idoftemplatetouse = $conf->global->EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT; // Email to send for Event organization registration - if (!empty($labeltouse)) { - $arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, ''); + if (!empty($idoftemplatetouse)) { + $arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $idoftemplatetouse, 1, ''); } - if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { + if (!empty($idoftemplatetouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { $subject = $arraydefaultmessage->topic; $msg = $arraydefaultmessage->content; + } else { + $subject = '['.$object->ref.' - '.$outputlangs->trans("NewRegistration").']'; + $msg = $outputlangs->trans("OrganizationEventPaymentOfRegistrationWasReceived"); } + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $thirdparty); complete_substitutions_array($substitutionarray, $outputlangs, $object); @@ -1294,13 +1306,28 @@ if ($ispaymentok) { $ishtml = dol_textishtml($texttosend); // May contain urls - $mailfile = new CMailFile($subjecttosend, $sendto, $from, $texttosend, array(), array(), array(), '', '', 0, $ishtml); + // Attach a file ? + $file = ''; + $listofpaths = array(); + $listofnames = array(); + $listofmimes = array(); + if (is_object($object)) { + $invoicediroutput = $conf->facture->dir_output; + $fileparams = dol_most_recent_file($invoicediroutput.'/'.$object->ref, preg_quote($object->ref, '/').'[^\-]+'); + $file = $fileparams['fullname']; + + $listofpaths = array($file); + $listofnames = array(basename($file)); + $listofmimes = array(dol_mimetype($file)); + } + + $mailfile = new CMailFile($subjecttosend, $sendto, $from, $texttosend, $listofpaths, $listofmimes, $listofnames, '', '', 0, $ishtml); $result = $mailfile->sendfile(); if ($result) { dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_payment'); } else { - dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_payment'); + dol_syslog("Failed to send EMail to ".$sendto.' - '.$mailfile->error, LOG_ERR, 0, '_payment'); } } } @@ -1388,7 +1415,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; @@ -1452,18 +1479,22 @@ if ($ispaymentok) { $outputlangs = new Translate('', $conf); $outputlangs->setDefaultLang(empty($thirdparty->default_lang) ? $mysoc->default_lang : $thirdparty->default_lang); // Load traductions files required by page - $outputlangs->loadLangs(array("main", "members")); + $outputlangs->loadLangs(array("main", "members", "eventorganization")); // Get email content from template $arraydefaultmessage = null; - $labeltouse = $conf->global->EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT; - if (!empty($labeltouse)) { - $arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, ''); + $idoftemplatetouse = $conf->global->EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH; // Email sent after registration for a Booth + + if (!empty($idoftemplatetouse)) { + $arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $idoftemplatetouse, 1, ''); } - if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { + if (!empty($idoftemplatetouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { $subject = $arraydefaultmessage->topic; $msg = $arraydefaultmessage->content; + } else { + $subject = '['.$booth->ref.' - '.$outputlangs->trans("NewRegistration").']'; + $msg = $outputlangs->trans("OrganizationEventPaymentOfBoothWasReceived"); } $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $thirdparty); 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 971031e7a80..61bbd23ea61 100644 --- a/htdocs/public/project/new.php +++ b/htdocs/public/project/new.php @@ -45,12 +45,12 @@ if (!defined('NOIPCHECK')) { // 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. $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/json.lib.php'; @@ -82,8 +82,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'); } @@ -132,9 +132,9 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $ print ''; } - if (!empty($conf->global->PROJECT_IMAGE_PUBLIC_ORGANIZEDEVENT)) { - print '
    '; - print ''; + if (!empty($conf->global->PROJECT_IMAGE_PUBLIC_NEWLEAD)) { + print '
    '; + print ''; print '
    '; } @@ -159,22 +159,6 @@ function llxFooterVierge() } -$arrayofdata = array(); -if (GETPOST('action') == 'addlead') { - // When a json request is sent - $entityBody = file_get_contents('php://input'); - - if ($entityBody) { - $arrayofdata = json_decode($entityBody, true); - } - - print 'Date received and lead created'; - - $db->close(); - exit; -} - - /* * Actions @@ -194,42 +178,6 @@ if (empty($reshook) && $action == 'add') { $db->begin(); - // test if lead already exists - /* - if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { - if (!GETPOST('login')) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Login"))."
    \n"; - } - $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); - } - if ($num != 0) { - $error++; - $langs->load("errors"); - $errmsg .= $langs->trans("ErrorLoginAlreadyExists")."
    \n"; - } - if (!GETPOSTISSET("pass1") || !GETPOSTISSET("pass2") || GETPOST("pass1", 'none') == '' || GETPOST("pass2", 'none') == '' || GETPOST("pass1", 'none') != GETPOST("pass2", 'none')) { - $error++; - $langs->load("errors"); - $errmsg .= $langs->trans("ErrorPasswordsMustMatch")."
    \n"; - } - if (!GETPOST("email")) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("EMail"))."
    \n"; - } - } - */ - if (GETPOST('type') <= 0) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type"))."
    \n"; - } - if (!in_array(GETPOST('morphy'), array('mor', 'phy'))) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv('Nature'))."
    \n"; - } if (!GETPOST("lastname")) { $error++; $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Lastname"))."
    \n"; @@ -238,27 +186,124 @@ if (empty($reshook) && $action == 'add') { $error++; $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Firstname"))."
    \n"; } + if (!GETPOST("email")) { + $error++; + $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Email"))."
    \n"; + } + if (!GETPOST("description")) { + $error++; + $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Message"))."
    \n"; + } if (GETPOST("email") && !isValidEmail(GETPOST("email"))) { $error++; $langs->load("errors"); $errmsg .= $langs->trans("ErrorBadEMail", GETPOST("email"))."
    \n"; } + // Set default opportunity status + $defaultoppstatus = getDolGlobalString('PROJECT_DEFAULT_OPPORTUNITY_STATUS_FOR_ONLINE_LEAD'); + if (empty($defaultoppstatus)) { + $error++; + $langs->load("errors"); + $errmsg .= $langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Project"))."
    \n"; + } + + $proj = new Project($db); + $thirdparty = new Societe($db); if (!$error) { - // email a peu pres correct et le login n'existe pas - $proj = new Project($db); - $proj->statut = -1; + // Search thirdparty and set it if found to the new created project + $result = $thirdparty->fetch(0, '', '', '', '', '', '', '', '', '', $object->email); + if ($result > 0) { + $proj->socid = $thirdparty->id; + } else { + // Create the prospect + if (GETPOST('societe')) { + $thirdparty->name = GETPOST('societe'); + $thirdparty->name_alias = dolGetFirstLastname(GETPOST('firstname'), GETPOST('lastname')); + } else { + $thirdparty->name = dolGetFirstLastname(GETPOST('firstname'), GETPOST('lastname')); + } + $thirdparty->address = GETPOST('address'); + $thirdparty->zip = GETPOST('zip'); + $thirdparty->town = GETPOST('town'); + $thirdparty->country_id = GETPOST('country_id', 'int'); + $thirdparty->state_id = GETPOST('state_id'); + $thirdparty->client = $thirdparty::PROSPECT; + $thirdparty->code_client = 'auto'; + $thirdparty->code_fournisseur = 'auto'; + + // Fill array 'array_options' with data from the form + $extrafields->fetch_name_optionals_label($thirdparty->table_element); + $ret = $extrafields->setOptionalsFromPost(null, $thirdparty, '', 1); + //var_dump($thirdparty->array_options);exit; + if ($ret < 0) { + $error++; + $errmsg = ($extrafields->error ? $extrafields->error.'
    ' : '').join('
    ', $extrafields->errors); + } + + if (!$error) { + $result = $thirdparty->create($user); + if ($result <= 0) { + $error++; + $errmsg = ($thirdparty->error ? $thirdparty->error.'
    ' : '').join('
    ', $thirdparty->errors); + } else { + $proj->socid = $thirdparty->id; + } + } + } + } + + if (!$error) { + // Defined the ref into $defaultref + $defaultref = ''; + $modele = empty($conf->global->PROJECT_ADDON) ? 'mod_project_simple' : $conf->global->PROJECT_ADDON; + + // 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/project/".$modele.'.php', 0); + if (file_exists($file)) { + $filefound = 1; + $classname = $modele; + break; + } + } + + if ($filefound) { + $result = dol_include_once($reldir."core/modules/project/".$modele.'.php'); + $modProject = new $classname; + + $defaultref = $modProject->getNextValue($thirdparty, $object); + } + + if (is_numeric($defaultref) && $defaultref <= 0) { + $defaultref = ''; + } + + if (empty($defaultref)) { + $defaultref = 'PJ'.dol_print_date(dol_now(), 'dayrfc'); + } + + $proj->ref = $defaultref; + $proj->statut = $proj::STATUS_DRAFT; + $proj->status = $proj::STATUS_DRAFT; $proj->email = GETPOST("email"); - $proj->note_private = GETPOST("note_private"); + $proj->public = 1; + $proj->usage_opportunity = 1; + $proj->title = $langs->trans("LeadFromPublicForm"); + $proj->description = GETPOST("description", "alphanohtml"); + $proj->opp_status = $defaultoppstatus; + $proj->fk_opp_status = $defaultoppstatus; - - // Fill array 'array_options' with data from add form + // Fill array 'array_options' with data from the form $extrafields->fetch_name_optionals_label($proj->table_element); $ret = $extrafields->setOptionalsFromPost(null, $proj); if ($ret < 0) { $error++; } + // Create the project $result = $proj->create($user); if ($result > 0) { require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; @@ -275,7 +320,7 @@ if (empty($reshook) && $action == 'add') { $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")); + $outputlangs->loadLangs(array("main", "members", "projects")); // Get email content from template $arraydefaultmessage = null; $labeltouse = $conf->global->PROJECT_EMAIL_TEMPLATE_AUTOLEAD; @@ -288,11 +333,15 @@ if (empty($reshook) && $action == 'add') { $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(dol_concatdesc($msg, $adht->getMailOnValid()), $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"; @@ -317,10 +366,11 @@ if (empty($reshook) && $action == 'add') { if (!empty($entity)) { $urlback .= '&entity='.$entity; } - dol_syslog("project lead ".$proj->ref." was created, we redirect to ".$urlback); + + dol_syslog("project lead ".$proj->ref." has been created, we redirect to ".$urlback); } else { $error++; - $errmsg .= join('
    ', $proj->errors); + $errmsg .= $proj->error.'
    '.join('
    ', $proj->errors); } } @@ -334,23 +384,16 @@ if (empty($reshook) && $action == 'add') { } } -// Create lead from $arrayofdata -if (empty($reshook) && !empty($arrayofdata)) { - // TODO - dol_syslog(var_export($arrayofdata, true)); - // ... -} - // 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")); + llxHeaderVierge($langs->trans("NewLeadForm")); // Si on a pas ete redirige - print '
    '; + print '

    '; print '
    '; - print $langs->trans("NewMemberbyWeb"); + print $langs->trans("NewLeadbyWeb"); print '
    '; llxFooterVierge(); @@ -365,8 +408,8 @@ if (empty($reshook) && $action == 'added') { $form = new Form($db); $formcompany = new FormCompany($db); -$extrafields->fetch_name_optionals_label('project'); // fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); // fetch optionals attributes and labels llxHeaderVierge($langs->trans("NewContact")); @@ -381,7 +424,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 '
    '; @@ -415,14 +458,16 @@ jQuery(document).ready(function () { print '
    '."\n"; // Lastname -print ''."\n"; +print ''."\n"; // Firstname -print ''."\n"; +print ''."\n"; +// EMail +print ''."\n"; // Company print ''."\n"; // Address print ''."\n"; +print ''."\n"; // Zip / Town print ''; if (empty($conf->global->SOCIETE_DISABLE_STATE)) { print ''; } -// EMail -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 ''; +print ''; print ''."\n"; print "
    '.$langs->trans("Lastname").' *
    '.$langs->trans("Lastname").' *
    '.$langs->trans("Firstname").' *
    '.$langs->trans("Firstname").' *
    '.$langs->trans("Email").' *
    '.$langs->trans("Company").'
    '.$langs->trans("Address").''."\n"; -print '
    '.$langs->trans('Zip').' / '.$langs->trans('Town').''; print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1); @@ -453,21 +498,20 @@ print '
    '.$langs->trans('State').''; if ($country_code) { - print $formcompany->select_state(GETPOST("state_id"), $country_code); + print $formcompany->select_state(GETPOST("state_id", 'int'), $country_code); } else { print ''; } print '
    '.$langs->trans("Email").' *
    '.$langs->trans("Comments").''.$langs->trans("Message").' *
    \n"; diff --git a/htdocs/public/project/suggestbooth.php b/htdocs/public/project/suggestbooth.php index cb1b1089b0c..f42e75b21b1 100644 --- a/htdocs/public/project/suggestbooth.php +++ b/htdocs/public/project/suggestbooth.php @@ -45,6 +45,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'; @@ -101,11 +102,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'); } @@ -612,8 +613,8 @@ if (empty($conf->global->SOCIETE_DISABLE_STATE)) { print ''; } // Type of event -print ''.$langs->trans("EventType").'*'."\n"; -print ''.FORM::selectarray('eventtype', $arrayofeventtype, $eventtype).''; +print ''.$langs->trans("Format").'*'."\n"; +print ''.Form::selectarray('eventtype', $arrayofconfboothtype, $eventtype, 1).''; // Label print ''.$langs->trans("LabelOfBooth").'*'."\n"; print ''."\n"; diff --git a/htdocs/public/project/suggestconference.php b/htdocs/public/project/suggestconference.php index 22589c941d2..f0b9299f980 100644 --- a/htdocs/public/project/suggestconference.php +++ b/htdocs/public/project/suggestconference.php @@ -45,6 +45,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'; @@ -102,11 +103,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'); } @@ -463,8 +464,7 @@ print '
    '; print '
    '; print '
    '; - -dol_htmloutput_errors($errmsg); +dol_htmloutput_errors($errmsg, $errors); // Print form print '
    '."\n"; @@ -547,8 +547,8 @@ if (empty($conf->global->SOCIETE_DISABLE_STATE)) { print ''; } // Type of event -print ''.$langs->trans("EventType").'*'."\n"; -print ''.FORM::selectarray('eventtype', $arrayofeventtype, $eventtype).''; +print ''.$langs->trans("Format").'*'."\n"; +print ''.Form::selectarray('eventtype', $arrayofconfboothtype, $eventtype, 1).''; // Label print ''.$langs->trans("LabelOfconference").'*'."\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 1736deef246..bb135d54d50 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,10 +48,22 @@ $langs->loadLangs(array("companies", "other", "recruitment")); // Get parameters $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'alpha'); -$email = GETPOST('email', 'alpha'); +$SECUREKEY = GETPOST("securekey"); +$entity = GETPOST('entity', 'int') ? GETPOST('entity', 'int') : $conf->entity; $backtopage = ''; +$suffix = ""; -$ref = GETPOST('ref', 'alpha'); +// 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 (GETPOST('btn_view')) { unset($_SESSION['email_customer']); @@ -61,15 +74,6 @@ if (isset($_SESSION['email_customer'])) { $object = new RecruitmentJobPosition($db); -if (!$action) { - if (!$ref) { - print $langs->trans('ErrorBadParameters')." - ref missing"; - exit; - } else { - $object->fetch('', $ref); - } -} - // 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 @@ -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'); } @@ -111,7 +115,7 @@ $arrayofjs = array(); $arrayofcss = array(); $replacemainarea = (empty($conf->dol_hide_leftmenu) ? '
    ' : '').'
    '; -llxHeader($head, $langs->trans("PositionToBeFilled"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1); +llxHeader($head, $langs->trans("PositionToBeFilled"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1, 1); print ''."\n"; @@ -151,8 +155,7 @@ if (!empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumb if ($urllogo) { print '
    '; print '
    '; - print ''; + print ''; print '
    '; if (empty($conf->global->MAIN_HIDE_POWERED_BY)) { print ''; @@ -167,10 +170,131 @@ if (!empty($conf->global->RECRUITMENT_IMAGE_PUBLIC_INTERFACE)) { } -// TODO List of jobs -print '
    '; -print $langs->trans("FeatureNotYetAvailable"); +$results = $object->fetchAll($sortfield, $sortorder, 0, 0, array('status' => 1)); +if (is_array($results)) { + if (empty($results)) { + print '
    '; + print $langs->trans("NoPositionOpen"); + } else { + print '


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


    '; + print '
    '; + + foreach ($results as $job) { + $object = $job; + + print ''."\n"; + + // Output introduction text + $text = ''; + if (!empty($conf->global->RECRUITMENT_NEWFORM_TEXT)) { + $reg = array(); + if (preg_match('/^\((.*)\)$/', $conf->global->RECRUITMENT_NEWFORM_TEXT, $reg)) { + $text .= $langs->trans($reg[1])."
    \n"; + } else { + $text .= $conf->global->RECRUITMENT_NEWFORM_TEXT."
    \n"; + } + $text = ''."\n"; + } + if (empty($text)) { + $text .= ''."\n"; + $text .= ''."\n"; + } + print $text; + + // Output payment summary form + print ''."\n"; + + print '

    '.$text.'

    '.$langs->trans("JobOfferToBeFilled", $mysoc->name); + $text .= '   -   '.$mysoc->name.''; + $text .= '   -   '.dol_print_date($object->date_creation).''; + $text .= '

    '.$object->label.'

    '; + + print '
    '; + print '
    '.$langs->trans("ThisIsInformationOnJobPosition").' :
    '."\n"; + + $error = 0; + $found = true; + + print '
    '; + + // Label + print $langs->trans("Label").' : '; + print ''.dol_escape_htmltag($object->label).'
    '; + + // Date + print $langs->trans("DateExpected").' : '; + print ''; + if ($object->date_planned > $now) { + print dol_print_date($object->date_planned, 'day'); + } else { + print $langs->trans("ASAP"); + } + print '
    '; + + // Remuneration + print $langs->trans("Remuneration").' : '; + print ''; + print dol_escape_htmltag($object->remuneration_suggested); + print '
    '; + + // Contact + $tmpuser = new User($db); + $tmpuser->fetch($object->fk_user_recruiter); + + print $langs->trans("ContactForRecruitment").' : '; + $emailforcontact = $object->email_recruiter; + if (empty($emailforcontact)) { + $emailforcontact = $tmpuser->email; + if (empty($emailforcontact)) { + $emailforcontact = $mysoc->email; + } + } + print ''; + print $tmpuser->getFullName(-1); + print '   '.dol_print_email($emailforcontact, 0, 0, 1, 0, 0, 'envelope'); + print ''; + print '
    '; + + if ($object->status == RecruitmentJobPosition::STATUS_RECRUITED) { + print info_admin($langs->trans("JobClosedTextCandidateFound"), 0, 0, 0, 'warning'); + } + if ($object->status == RecruitmentJobPosition::STATUS_CANCELED) { + print info_admin($langs->trans("JobClosedTextCanceled"), 0, 0, 0, 'warning'); + } + + print '
    '; + + // Description + + $text = $object->description; + print $text; + print ''; + + print '
    '."\n"; + print "\n"; + + + if ($action != 'dosubmit') { + if ($found && !$error) { + // We are in a management option and no error + } else { + dol_print_error_email('ERRORSUBMITAPPLICATION'); + } + } else { + // Print + } + + print '
    '."\n"; + + print '



    '."\n"; + } + } +} else { + dol_print_error($db, $object->error, $object->errors); +} print ''."\n"; print '
    '."\n"; diff --git a/htdocs/public/recruitment/view.php b/htdocs/public/recruitment/view.php index d105632abe8..24c0eaf6088 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'); } @@ -121,7 +122,7 @@ if ($action == "view" || $action == "presend" || $action == "close" || $action = if (!$error && $action == "add_message" && $display_ticket && GETPOSTISSET('btn_add_message')) { // TODO Add message... - $ret = $object->dao->newMessage($user, $action, 0, 1); + $ret = $object->newMessage($user, $action, 0, 1); @@ -177,7 +178,7 @@ $arrayofjs = array(); $arrayofcss = array(); $replacemainarea = (empty($conf->dol_hide_leftmenu) ? '
    ' : '').'
    '; -llxHeader($head, $langs->trans("PositionToBeFilled"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1); +llxHeader($head, $langs->trans("PositionToBeFilled"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1, 1); print ''."\n"; @@ -217,8 +218,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 ''; @@ -233,12 +239,12 @@ if (!empty($conf->global->RECRUITMENT_IMAGE_PUBLIC_INTERFACE)) { } -print ''."\n"; +print '
    '."\n"; // Output introduction text $text = ''; if (!empty($conf->global->RECRUITMENT_NEWFORM_TEXT)) { - $langs->load("recruitment"); + $reg = array(); if (preg_match('/^\((.*)\)$/', $conf->global->RECRUITMENT_NEWFORM_TEXT, $reg)) { $text .= $langs->trans($reg[1])."
    \n"; } else { @@ -249,9 +255,9 @@ if (!empty($conf->global->RECRUITMENT_NEWFORM_TEXT)) { if (empty($text)) { $text .= ''."\n"; - $text .= ''."\n"; + $text .= ''."\n"; } print $text; @@ -300,7 +306,7 @@ if (empty($emailforcontact)) { } print ''; print $tmpuser->getFullName(-1); -print ' - '.dol_print_email($emailforcontact, 0, 0, 1, 0, 0, 1); +print '   '.dol_print_email($emailforcontact, 0, 0, 1, 0, 0, 'envelope'); print ''; print '
    '; @@ -324,9 +330,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 @@ -335,6 +342,7 @@ if ($action != 'dosubmit') { print ''."\n"; print '

    '.$langs->trans("JobOfferToBeFilled", $mysoc->name); $text .= '   -   '.$mysoc->name.''; - $text .= '   -   '.dol_print_date($object->date_creation); + $text .= '   -   '.dol_print_date($object->date_creation).''; $text .= '

    '.$object->label.'


    '.$object->label.'


    '."\n"; + print ''."\n"; print '
    '."\n"; 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 new file mode 100644 index 00000000000..2b637ce3647 --- /dev/null +++ b/htdocs/public/ticket/ajax/ajax.php @@ -0,0 +1,84 @@ + + * + * 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/ticket/ajax/ajax.php + * \brief Ajax component for Ticket. + */ + +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'); +} +// Do not check anti CSRF attack test +if (!defined('NOREQUIREMENU')) { + define('NOREQUIREMENU', '1'); +} +// If there is no need to load and show top and left menu +if (!defined("NOLOGIN")) { + define("NOLOGIN", '1'); +} +if (!defined('NOIPCHECK')) { + define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +} +if (!defined('NOBROWSERNOTIF')) { + define('NOBROWSERNOTIF', '1'); +} + +include_once '../../../main.inc.php'; // Load $user and permissions + +$action = GETPOST('action', 'aZ09'); +$id = GETPOST('id', 'int'); +$email = GETPOST('email', 'alphanohtml'); + + +/* + * View + */ + +top_httphead(); + +if ($action == 'getContacts') { + $return = array( + 'contacts' => array(), + 'error' => '', + ); + + if (!empty($email)) { + require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php'; + + $ticket = new Ticket($db); + $contacts = $ticket->searchContactByEmail($email); + if (is_array($contacts)) { + $return['contacts'] = $contacts; + } else { + $return['error'] = $ticket->errorsToString(); + } + } + + echo json_encode($return); + exit(); +} diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php index 51424d9277e..b4df70e3dd8 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'; @@ -63,6 +62,7 @@ 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/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'other', 'mails', 'ticket')); @@ -70,19 +70,29 @@ $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')); $object = new Ticket($db); $extrafields = new ExtraFields($db); +$contacts = array(); +$with_contact = null; +if (!empty($conf->global->TICKET_CREATE_THIRD_PARTY_WITH_CONTACT_IF_NOT_EXIST)) { + $with_contact = new Contact($db); +} $extrafields->fetch_name_optionals_label($object->table_element); if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Ticket not enabled'); } @@ -99,227 +109,265 @@ 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'); + + // 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); + + // Option to require email exists to create ticket + if (!empty($conf->global->TICKET_EMAIL_MUST_EXISTS) && !$contacts[0]->socid) { + $error++; + array_push($object->errors, $langs->trans("ErrorEmailMustExistToCreateTicket")); + $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 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 = ''; + } + } + } + + if (!GETPOST("subject", "restricthtml")) { + $error++; + array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Subject"))); $action = ''; } - } - - if (!GETPOST("subject", "restricthtml")) { - $error++; - array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Subject"))); - $action = ''; - } elseif (!GETPOST("message", "restricthtml")) { - $error++; - array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("message"))); - $action = ''; - } - - // Check email address - if (!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)) { - $sessionkey = 'dol_antispam_value'; - $ok = (array_key_exists($sessionkey, $_SESSION) === true && (strtolower($_SESSION[$sessionkey]) === strtolower(GETPOST('code', 'restricthtml')))); - if (!$ok) { + if (!GETPOST("message", "restricthtml")) { $error++; - array_push($object->errors, $langs->trans("ErrorBadValueForCode")); + array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Message"))); $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_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(); - if (!is_object($user)) { - $user = new User($db); - } - - $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) { + // Check email address + if (!empty($origin_email) && !isValidEmail($origin_email)) { $error++; - $errors = ($object->error ? array($object->error) : $object->errors); - array_push($object->errors, $object->error ? array($object->error) : $object->errors); - $action = 'create_ticket'; + array_push($object->errors, $langs->trans("ErrorBadEmailAddress", $langs->transnoentities("email"))); + $action = ''; } - if (!$error && $id > 0) { - if ($usertoassign > 0) { - $object->add_contact($usertoassign, "SUPPORTCLI", 'external', 0); + // Check Captcha code if is enabled + if (!empty($conf->global->MAIN_SECURITY_ENABLECAPTCHA) || !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++; + array_push($object->errors, $langs->trans("ErrorBadValueForCode")); + $action = ''; } } if (!$error) { - $object->db->commit(); - $action = "infos_success"; - } else { - $object->db->rollback(); - setEventMessages($object->error, $object->errors, 'errors'); - $action = 'create_ticket'; - } + $object->db->begin(); - 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); + $object->track_id = generate_random_id(16); - // Init to avoid errors - $filepath = array(); - $filename = array(); - $mimetype = array(); + $object->subject = GETPOST("subject", "restricthtml"); + $object->message = GETPOST("message", "restricthtml"); + $object->origin_email = $origin_email; - $attachedfiles = $formmail->get_attached_files(); - $filepath = $attachedfiles['paths']; - $filename = $attachedfiles['names']; - $mimetype = $attachedfiles['mimes']; + $object->type_code = GETPOST("type_code", 'aZ09'); + $object->category_code = GETPOST("category_code", 'aZ09'); + $object->severity_code = GETPOST("severity_code", 'aZ09'); - // Send email to customer + if (!is_object($user)) { + $user = new User($db); + } - $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 .= $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE ? $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE : $langs->transnoentities('TicketMessageMailSignatureText'); - - $sendto = GETPOST('email', 'alpha'); - - $from = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.$conf->global->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 || $mailfile->errors) { - setEventMessages($mailfile->error, $mailfile->errors, 'errors'); + // 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 { - $result = $mailfile->sendfile(); + $company->particulier = 1; + $company->name = dolGetFirstLastname($contact_firstname, $contact_lastname); } - if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) { - $conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO; + $result = $company->create($user); + if ($result < 0) { + $error++; + $errors = ($company->error ? array($company->error) : $company->errors); + array_push($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).'
    • '; - } + // 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); } - $message_admin .= '
    '; + } + } - $message_admin .= '

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

    '; - $message_admin .= '

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

    '; + if (is_array($searched_companies)) { + $object->fk_soc = $searched_companies[0]->id; + } - $from = $conf->global->MAIN_INFO_SOCIETE_NOM.' <'.$conf->global->TICKET_NOTIFICATION_EMAIL_FROM.'>'; + 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 = ''; } 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'); + $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'); } else { @@ -328,36 +376,78 @@ if (empty($reshook) && $action == 'create_ticket' && GETPOST('save', 'alpha')) { 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 || $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; + } + } } - } - // 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); - } + // 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'); + //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; + // 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'); } - } else { - setEventMessages($object->error, $object->errors, 'errors'); } } - /* * View */ @@ -389,6 +479,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 : '')); @@ -401,8 +492,8 @@ if ($action != "infos_success") { print $langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentities("Ticket")); print '
    '; } else { - print '
    '.$langs->trans('TicketPublicInfoCreateTicket').'
    '; - $formticket->showForm(0, 'edit', 1); + //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 227dcf3867b..bec8417b492 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -22,17 +22,14 @@ * \brief Public page to add and manage ticket */ -if (!defined('NOCSRFCHECK')) { - define('NOCSRFCHECK', '1'); -} if (!defined('NOREQUIREMENU')) { define('NOREQUIREMENU', '1'); } -if (!defined("NOLOGIN")) { - define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) +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 + define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip } if (!defined('NOBROWSERNOTIF')) { define('NOBROWSERNOTIF', '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); + 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 1a3c0c3babd..fb0316dcd56 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,8 +57,10 @@ 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')); if (GETPOST('btn_view_ticket_list')) { @@ -81,7 +80,7 @@ $object = new Ticket($db); $hookmanager->initHooks(array('ticketpubliclist', 'globalcard')); if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Ticket not enabled'); } @@ -90,6 +89,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 +191,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 @@ -220,8 +227,8 @@ if ($action == "view_ticketlist") { $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); $filter = array(); - $param = 'action=view_ticketlist'; - if (!empty($entity) && !empty($conf->multicompany->enabled)) { + $param = '&action=view_ticketlist'; + if (!empty($entity) && isModEnabled('multicompany')) { $param .= '&entity='.$entity; } @@ -242,14 +249,14 @@ 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), ); // Extra fields - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + 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 ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate') { $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($extrafields->attributes[$object->table_element]['list'][$key]) != 3) && $extrafields->attributes[$object->table_element]['perms'][$key]); @@ -342,31 +349,31 @@ if ($action == "view_ticketlist") { $sql .= " t.tms,"; $sql .= " type.label as type_label, category.label as category_label, severity.label as severity_label"; // Add fields for extrafields - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + 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) { $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); } } $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"; + $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."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->dao->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.element='".$db->escape($object->element)."'"; + $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) { @@ -398,10 +405,10 @@ if ($action == "view_ticketlist") { $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - print_barre_liste($langs->trans('TicketList'), $page, 'public/list.php', $param, $sortfield, $sortorder, '', $num, $num_total, 'ticket'); + 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 ''; @@ -655,13 +662,13 @@ if ($action == "view_ticketlist") { } // Extra fields - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + 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($arrayfields["ef.".$key]['checked'])) { print 'getAlignFlag($key); - if ($align) { - print ' align="'.$align.'"'; + $cssstring = $extrafields->getAlignFlag($key, $object->table_element); + if ($cssstring) { + print ' class="'.$cssstring.'"'; } print '>'; $tmpkey = 'options_'.$key; @@ -688,7 +695,7 @@ if ($action == "view_ticketlist") { print ''; print ''; - print '
    '; } else { - print '

    '.$langs->trans("TicketPublicMsgViewLogIn").'

    '; + print '
    '; + + print '

    '.$langs->trans("TicketPublicMsgViewLogIn").'

    '; print '
    '; print '
    '; - print ''; + print ''; print ''; print ''; //print ''; @@ -728,13 +741,15 @@ if ($action == "view_ticketlist") { print '

    '; print ''; + print '   '; + print ''; print "

    \n"; print "\n"; print "
    \n"; -} -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..4bc9071218a 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,9 +58,10 @@ 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'); if (GETPOST('btn_view_ticket')) { @@ -76,7 +74,7 @@ if (isset($_SESSION['email_customer'])) { $object = new ActionsTicket($db); if (empty($conf->ticket->enabled)) { - accessforbidden('', 0, 0, 1); + httponly_accessforbidden('Module Ticket not enabled'); } @@ -85,6 +83,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 +170,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 { @@ -234,7 +234,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 +347,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 +356,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a } if ($action != 'presend') { - print '
    '; + print ''; print ''; print ''; print ''; @@ -371,11 +371,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 +386,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 ''; @@ -406,6 +406,8 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a print '

    '; print ''; + print '   '; + print ''; print "

    \n"; print "\n"; diff --git a/htdocs/public/website/index.php b/htdocs/public/website/index.php index d72fedefa7e..4b0342693d8 100644 --- a/htdocs/public/website/index.php +++ b/htdocs/public/website/index.php @@ -169,9 +169,9 @@ if ($pageid == 'css') { // No more used ? //if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate'); //else header('Cache-Control: no-cache'); - $original_file = $dolibarr_main_data_root.'/website/'.$websitekey.'/styles.css.php'; + $original_file = $dolibarr_main_data_root.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/'.$websitekey.'/styles.css.php'; } else { - $original_file = $dolibarr_main_data_root.'/website/'.$websitekey.'/page'.$pageid.'.tpl.php'; + $original_file = $dolibarr_main_data_root.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/'.$websitekey.'/page'.$pageid.'.tpl.php'; } // Find the subdirectory name as the reference diff --git a/htdocs/public/website/styles.css.php b/htdocs/public/website/styles.css.php index a0002b5380b..73cbed73dbd 100644 --- a/htdocs/public/website/styles.css.php +++ b/htdocs/public/website/styles.css.php @@ -122,7 +122,7 @@ if (empty($pageid)) // Security: Delete string ../ into $original_file global $dolibarr_main_data_root; -$original_file = $dolibarr_main_data_root.'/website/'.$website.'/styles.css.php'; +$original_file = $dolibarr_main_data_root.($conf->entity > 1 ? '/'.$conf->entity : '').'/website/'.$website.'/styles.css.php'; // Find the subdirectory name as the reference $refname = basename(dirname($original_file)."/"); diff --git a/htdocs/reception/card.php b/htdocs/reception/card.php index 9c9f960c3e1..a078cdaca15 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,20 +45,20 @@ 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)) { +if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) { 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)) { +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'; } @@ -67,7 +68,7 @@ $langs->loadLangs(array("receptions", "companies", "bills", 'deliveries', 'order if (!empty($conf->incoterm->enabled)) { $langs->load('incoterm'); } -if (!empty($conf->productbatch->enabled)) { +if (isModEnabled('productbatch')) { $langs->load('productbatch'); } @@ -101,11 +102,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 +130,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 +143,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 +154,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 +199,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -210,6 +213,8 @@ if (empty($reshook)) { $ret = $object->fetch($id); // Reload to get new records $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } + } else { + setEventMessages($object->error, $object->errors, 'errors'); } } @@ -268,9 +273,9 @@ if (empty($reshook)) { $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->trueHeight = GETPOST('trueHeight', 'int') == '' ? null : GETPOST('trueHeight', 'int'); + $object->trueWidth = GETPOST('trueWidth', 'int') == '' ? null : GETPOST('trueWidth', 'int'); + $object->trueDepth = GETPOST('trueDepth', 'int') == '' ? null : GETPOST('trueDepth', 'int'); $object->size_units = GETPOST('size_units', 'int'); $object->weight_units = GETPOST('weight_units', 'int'); @@ -348,8 +353,10 @@ if (empty($reshook)) { } $qty = "qtyl".$i; $comment = "comment".$i; - $eatby = "dlc".$i; - $sellby = "dluo".$i; + // EATBY <-> DLUO see productbatch.class.php + // SELLBY <-> DLC + $eatby = "dluo".$i; + $sellby = "dlc".$i; $batch = "batch".$i; $cost_price = "cost_price".$i; @@ -430,10 +437,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -459,7 +466,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'); @@ -525,10 +532,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $reception->thirdparty->default_lang; } if (!empty($newlang)) { @@ -620,13 +627,15 @@ 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; - $eatby = GETPOST($dlc, 'alpha'); + // EATBY <-> DLUO + $eatby = GETPOST($dluo, 'alpha'); $eatbydate = str_replace('/', '-', $eatby); - $sellby = GETPOST($dluo, 'alpha'); + // SELLBY <-> DLC + $sellby = GETPOST($dlc, 'alpha'); $sellbydate = str_replace('/', '-', $sellby); $line->batch = GETPOST($batch, 'alpha'); $line->eatby = strtotime($eatbydate); @@ -637,8 +646,7 @@ if (empty($reshook)) { setEventMessages($line->error, $line->errors, 'errors'); $error++; } - } else // Product no predefined - { + } else { // Product no predefined $qty = "qtyl".$line_id; $line->id = $line_id; $line->qty = GETPOST($qty, 'int'); @@ -659,10 +667,10 @@ if (empty($reshook)) { // Define output language $outputlangs = $langs; $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -705,7 +713,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); } @@ -763,10 +771,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 ''; @@ -790,7 +798,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; @@ -844,9 +852,9 @@ if ($action == 'create') { // Dim print ''; print $langs->trans("Width").' x '.$langs->trans("Height").' x '.$langs->trans("Depth"); - print ' '; - print ' x '; - print ' x '; + print ' '; + print ' x '; + print ' x '; print ' '; $text = $formproduct->selectMeasuringUnits("size_units", "size", GETPOST('size_units', 'int'), 0, 2); $htmltext = $langs->trans("KeepEmptyForAutoCalculation"); @@ -1024,7 +1032,7 @@ if ($action == 'create') { print ''.$langs->trans("QtyReceived").''; print ''.$langs->trans("QtyToReceive"); if (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION || $conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { - print ''.$langs->trans("ByingPrice").''; + print ''.$langs->trans("BuyingPrice").''; } if (empty($conf->productbatch->enabled)) { print '
    ('.$langs->trans("Fill").''; @@ -1034,7 +1042,7 @@ if ($action == 'create') { if (!empty($conf->stock->enabled)) { print ''.$langs->trans("Warehouse").' ('.$langs->trans("Stock").')'; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''.$langs->trans("batch_number").''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { print ''.$langs->trans("SellByDate").''; @@ -1179,7 +1187,7 @@ if ($action == 'create') { $defaultqty = GETPOST('qtyl'.$indiceAsked, 'int'); } print ''; - print ''; + print ''; } else { print $langs->trans("NA"); } @@ -1187,7 +1195,7 @@ if ($action == 'create') { if (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { print ''; - print ''; + print ''; print ''; } @@ -1209,7 +1217,7 @@ if ($action == 'create') { print ''; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if (!empty($product->status_batch)) { print ''; if (empty($conf->global->PRODUCT_DISABLE_SELLBY)) { @@ -1232,30 +1240,26 @@ 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)) { + //var_dump($line); $colspan = 5; - if ($conf->productbatch->enabled) { + if (isModEnabled('productbatch')) { $colspan += 3; } + $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++; @@ -1355,15 +1359,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); } @@ -1378,7 +1382,7 @@ if ($action == 'create') { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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 reception @@ -1424,7 +1428,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 @@ -1664,7 +1668,8 @@ if ($action == 'create') { print '
    '; print '
    '; - print '
    '; print $langs->trans("RefOrder").''; @@ -1432,7 +1436,7 @@ if ($action == 'create') { print "
    '; print $langs->trans("RefProposal").''; @@ -1440,7 +1444,7 @@ if ($action == 'create') { print "
    '; print $langs->trans("SupplierOrder").''; @@ -1451,7 +1455,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 '
    '; + print ''; print ''; // # if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { @@ -1696,7 +1701,7 @@ if ($action == 'create') { if (!empty($conf->stock->enabled)) { print $langs->trans("WarehouseSource").' - '; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print $langs->trans("Batch"); } print ''; @@ -1717,7 +1722,7 @@ if ($action == 'create') { print ''; } - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { print ''; } } @@ -1729,6 +1734,7 @@ if ($action == 'create') { print ''; } print "\n"; + print ''; $var = false; @@ -1794,9 +1800,10 @@ if ($action == 'create') { $arrayofpurchaselinealreadyoutput = array(); // Loop on each product to send/sent. Warning: $lines must be sorted by ->fk_commandefourndet (it is a regroupment key on output) + print ''; for ($i = 0; $i < $num_prod; $i++) { print ''; // id of order line - print ''; + print ''; // # if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { @@ -1814,7 +1821,7 @@ if ($action == 'create') { $label = (!empty($lines[$i]->product->label) ? $lines[$i]->product->label : $lines[$i]->product->product_label); } - print '\n"; } else { - print "
    '.$langs->trans("WarehouseSource").''.$langs->trans("Batch").'
    '; + print ''; if (!array_key_exists($lines[$i]->fk_commandefourndet, $arrayofpurchaselinealreadyoutput)) { $text = $lines[$i]->product->getNomUrl(1); $text .= ' - '.$label; @@ -1827,7 +1834,7 @@ if ($action == 'create') { } print ""; + print ''; if (!array_key_exists($lines[$i]->fk_commandefourndet, $arrayofpurchaselinealreadyoutput)) { if ($lines[$i]->product_type == Product::TYPE_SERVICE) { $text = img_object($langs->trans('Service'), 'service'); @@ -1855,7 +1862,7 @@ if ($action == 'create') { // Qty ordered - print ''; + print ''; if (!array_key_exists($lines[$i]->fk_commandefourndet, $arrayofpurchaselinealreadyoutput)) { print $lines[$i]->qty_asked; } @@ -1863,7 +1870,7 @@ if ($action == 'create') { // Qty in other receptions (with reception and warehouse used) if ($origin && $origin_id > 0) { - print ''; + print ''; if (!array_key_exists($lines[$i]->fk_commandefourndet, $arrayofpurchaselinealreadyoutput)) { foreach ($alreadysent as $key => $val) { if ($lines[$i]->fk_commandefourndet == $key) { @@ -1934,7 +1941,7 @@ if ($action == 'create') { print '
    '; } else { // Qty to receive or received - print ''.$lines[$i]->qty.''; + print ''.$lines[$i]->qty.''; // Warehouse source if (!empty($conf->stock->enabled)) { @@ -1951,10 +1958,10 @@ if ($action == 'create') { } // Batch number managment - if (!empty($conf->productbatch->enabled)) { + if (isModEnabled('productbatch')) { if (isset($lines[$i]->batch)) { print ''; - print ''; + print ''; $detail = ''; if ($lines[$i]->product->status_batch) { $detail .= $langs->trans("Batch").': '.$lines[$i]->batch; @@ -1978,7 +1985,7 @@ if ($action == 'create') { } // Weight - print ''; + print ''; if (!empty($lines[$i]->fk_product_type) && $lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { print $lines[$i]->product->weight * $lines[$i]->qty.' '.measuringUnitString(0, "weight", $lines[$i]->product->weight_units); } else { @@ -1987,7 +1994,7 @@ if ($action == 'create') { print ''; // Volume - print ''; + print ''; if (!empty($lines[$i]->fk_product_type) && $lines[$i]->fk_product_type == Product::TYPE_PRODUCT) { print $lines[$i]->product->volume * $lines[$i]->qty.' '.measuringUnitString(0, "volume", $lines[$i]->product->volume_units); } else { @@ -2035,6 +2042,7 @@ if ($action == 'create') { } } } + print ''; // TODO Show also lines ordered but not delivered @@ -2075,7 +2083,7 @@ if ($action == 'create') { // TODO add alternative status // 0=draft, 1=validated, 2=billed, we miss a status "delivered" (only available on order) if ($object->statut == Reception::STATUS_CLOSED && $user->rights->reception->creer) { - if (!empty($conf->facture->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('facture') && !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 ? print ''.$langs->trans("ClassifyUnbilled").''; } else { print ''.$langs->trans("ReOpen").''; @@ -2094,9 +2102,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").''; } @@ -2108,7 +2116,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 2ff316ecb58..85071a49b94 100644 --- a/htdocs/reception/class/reception.class.php +++ b/htdocs/reception/class/reception.class.php @@ -35,10 +35,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'; } @@ -273,9 +273,9 @@ class Reception extends CommonObject $sql .= ", ".($this->shipping_method_id > 0 ? ((int) $this->shipping_method_id) : "null"); $sql .= ", '".$this->db->escape($this->tracking_number)."'"; $sql .= ", ".(is_null($this->weight) ? "NULL" : ((double) $this->weight)); - $sql .= ", ".(is_null($this->sizeS) ? "NULL" : ((double) $this->sizeS)); // TODO Should use this->trueDepth - $sql .= ", ".(is_null($this->sizeW) ? "NULL" : ((double) $this->sizeW)); // TODO Should use this->trueWidth - $sql .= ", ".(is_null($this->sizeH) ? "NULL" : ((double) $this->sizeH)); // TODO Should use this->trueHeight + $sql .= ", ".(is_null($this->trueDepth) ? "NULL" : ((double) $this->trueDepth)); + $sql .= ", ".(is_null($this->trueWidth) ? "NULL" : ((double) $this->trueWidth)); + $sql .= ", ".(is_null($this->trueHeight) ? "NULL" : ((double) $this->trueHeight)); $sql .= ", ".(is_null($this->weight_units) ? "NULL" : ((double) $this->weight_units)); $sql .= ", ".(is_null($this->size_units) ? "NULL" : ((double) $this->size_units)); $sql .= ", ".(!empty($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null"); @@ -593,24 +593,14 @@ class Reception extends CommonObject $mouvS->origin = &$this; $mouvS->setOrigin($this->element, $this->id); - // get unit price with discount - $up_ht_disc = $obj->subprice; - if (!empty($obj->remise_percent) && empty($conf->global->STOCK_EXCLUDE_DISCOUNT_FOR_PMP)) { - $up_ht_disc = price2num($up_ht_disc * (100 - $obj->remise_percent) / 100, 'MU'); - } - if (empty($obj->batch)) { // 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. $inventorycode = ''; - if (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION || $conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { - $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionValidatedInDolibarr", $numref), '', '', '', '', 0, $inventorycode); - } else { - $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $up_ht_disc, $langs->trans("ReceptionValidatedInDolibarr", $numref), '', '', '', '', 0, $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); @@ -622,13 +612,9 @@ 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. // Note: ->fk_origin_stock = id into table llx_product_batch (may be rename into llx_product_stock_batch in another version) $inventorycode = ''; - if (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION || $conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) { - $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); - } else { - $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $up_ht_disc, $langs->trans("ReceptionValidatedInDolibarr", $numref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, '', 0, $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); @@ -744,7 +730,6 @@ class Reception extends CommonObject if (!empty($this->origin) && $this->origin_id > 0 && ($this->origin == 'order_supplier' || $this->origin == 'commandeFournisseur')) { if (empty($this->commandeFournisseur)) { - $this->commandeFournisseur = null; $this->fetch_origin(); if (empty($this->commandeFournisseur->lines)) { $res = $this->commandeFournisseur->fetch_lines(); @@ -861,6 +846,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) { @@ -879,6 +879,7 @@ class Reception extends CommonObject $line->status = 1; $line->cost_price = $cost_price; $line->fk_reception = $this->id; + $this->lines[$num] = $line; return $num; @@ -1485,70 +1486,6 @@ class Reception extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Update/create delivery method. - * - * @param string $id id method to activate - * - * @return void - */ - public function update_delivery_method($id = '') - { - // phpcs:enable - if ($id == '') { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (code, libelle, description, tracking)"; - $sql .= " VALUES ('".$this->db->escape($this->update['code'])."','".$this->db->escape($this->update['libelle'])."','".$this->db->escape($this->update['description'])."','".$this->db->escape($this->update['tracking'])."')"; - $resql = $this->db->query($sql); - } else { - $sql = "UPDATE ".MAIN_DB_PREFIX."c_shipment_mode SET"; - $sql .= " code='".$this->db->escape($this->update['code'])."'"; - $sql .= ",libelle='".$this->db->escape($this->update['libelle'])."'"; - $sql .= ",description='".$this->db->escape($this->update['description'])."'"; - $sql .= ",tracking='".$this->db->escape($this->update['tracking'])."'"; - $sql .= " WHERE rowid=".((int) $id); - $resql = $this->db->query($sql); - } - if ($resql < 0) { - dol_print_error($this->db, ''); - } - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Activate delivery method. - * - * @param int $id id method to activate - * - * @return void - */ - public function activ_delivery_method($id) - { - // phpcs:enable - $sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=1'; - $sql .= " WHERE rowid = ".((int) $id); - - $resql = $this->db->query($sql); - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * DesActivate delivery method. - * - * @param int $id id method to desactivate - * - * @return void - */ - public function disable_delivery_method($id) - { - // phpcs:enable - $sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=0'; - $sql .= " WHERE rowid = ".((int) $id); - - $resql = $this->db->query($sql); - } - - /** * Forge an set tracking url * @@ -1633,7 +1570,8 @@ class Reception extends CommonObject // TODO possibilite de receptionner a partir d'une propale ou autre origine ? $sql = "SELECT cd.fk_product, cd.subprice,"; $sql .= " ed.rowid, ed.qty, ed.fk_entrepot,"; - $sql .= " ed.eatby, ed.sellby, ed.batch"; + $sql .= " ed.eatby, ed.sellby, ed.batch,"; + $sql .= " ed.cost_price"; $sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,"; $sql .= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed"; $sql .= " WHERE ed.fk_reception = ".((int) $this->id); @@ -1663,7 +1601,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->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ReceptionClassifyClosedInDolibarr", $this->ref), '', '', '', '', 0, $inventorycode); + $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionClassifyClosedInDolibarr", $this->ref), '', '', '', '', 0, $inventorycode); if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; @@ -1674,7 +1612,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->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ReceptionClassifyClosedInDolibarr", $this->ref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, '', 0, $inventorycode); + $result = $mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionClassifyClosedInDolibarr", $this->ref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, '', 0, $inventorycode); if ($result < 0) { $this->error = $mouvS->error; @@ -1797,7 +1735,8 @@ class Reception extends CommonObject // TODO possibilite de receptionner a partir d'une propale ou autre origine $sql = "SELECT ed.fk_product, cd.subprice,"; $sql .= " ed.rowid, ed.qty, ed.fk_entrepot,"; - $sql .= " ed.eatby, ed.sellby, ed.batch"; + $sql .= " ed.eatby, ed.sellby, ed.batch,"; + $sql .= " ed.cost_price"; $sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,"; $sql .= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed"; $sql .= " WHERE ed.fk_reception = ".((int) $this->id); @@ -1828,7 +1767,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->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $langs->trans("ReceptionUnClassifyCloseddInDolibarr", $numref), '', '', '', '', 0, $inventorycode); + $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionUnClassifyCloseddInDolibarr", $numref), '', '', '', '', 0, $inventorycode); if ($result < 0) { $this->error = $mouvS->error; @@ -1840,7 +1779,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->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $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; @@ -1928,7 +1867,8 @@ class Reception extends CommonObject // TODO possibilite de receptionner a partir d'une propale ou autre origine $sql = "SELECT cd.fk_product, cd.subprice,"; $sql .= " ed.rowid, ed.qty, ed.fk_entrepot,"; - $sql .= " ed.eatby, ed.sellby, ed.batch"; + $sql .= " ed.eatby, ed.sellby, ed.batch,"; + $sql .= " ed.cost_price"; $sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,"; $sql .= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed"; $sql .= " WHERE ed.fk_reception = ".((int) $this->id); @@ -1959,7 +1899,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->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $langs->trans("ReceptionBackToDraftInDolibarr", $this->ref), '', '', '', '', 0, $inventorycode); + $result = $mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->cost_price, $langs->trans("ReceptionBackToDraftInDolibarr", $this->ref), '', '', '', '', 0, $inventorycode); if ($result < 0) { $this->error = $mouvS->error; $this->errors = $mouvS->errors; @@ -1971,7 +1911,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->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $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; diff --git a/htdocs/reception/class/receptionstats.class.php b/htdocs/reception/class/receptionstats.class.php index 872d6845a96..a27f458d01a 100644 --- a/htdocs/reception/class/receptionstats.class.php +++ b/htdocs/reception/class/receptionstats.class.php @@ -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; } diff --git a/htdocs/reception/contact.php b/htdocs/reception/contact.php index a7cec515e29..442657ecf43 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,7 +31,7 @@ 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'; } @@ -54,7 +55,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); } @@ -147,7 +148,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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 reception @@ -192,7 +193,7 @@ if ($id > 0 || !empty($ref)) { 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 '
    '; $objectsrc = new CommandeFournisseur($db); $objectsrc->fetch($object->$typeobject->id); @@ -202,7 +203,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..10227373015 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,7 +34,7 @@ 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'; } @@ -120,7 +121,7 @@ if ($id > 0 || !empty($ref)) { $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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 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 8575c84c026..8179da3e42b 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'; @@ -166,6 +167,15 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' } if (empty($reshook)) { + // Mass actions + $objectclass = 'Reception'; + $objectlabel = 'Receptions'; + $permissiontoread = $user->rights->reception->lire; + $permissiontoadd = $user->rights->reception->creer; + $permissiontodelete = $user->rights->reception->supprimer; + $uploaddir = $conf->reception->multidir_output[$conf->entity]; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; + if ($massaction == 'confirm_createbills') { $receptions = GETPOST('toselect', 'array'); $createbills_onebythird = GETPOST('createbills_onebythird', 'int'); @@ -631,6 +641,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); } @@ -726,7 +752,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); @@ -736,6 +762,13 @@ print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} // Ref if (!empty($arrayfields['e.ref']['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); } @@ -882,7 +920,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; @@ -901,6 +941,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 ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/reception/note.php b/htdocs/reception/note.php index 725c23ae738..617d260e643 100644 --- a/htdocs/reception/note.php +++ b/htdocs/reception/note.php @@ -24,11 +24,12 @@ * \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'; } @@ -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); } @@ -124,7 +125,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$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 reception diff --git a/htdocs/reception/stats/index.php b/htdocs/reception/stats/index.php index 638b7b0dbfc..b1f5dbdc7f9 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'; diff --git a/htdocs/reception/stats/month.php b/htdocs/reception/stats/month.php index 806006394df..019cafce8c6 100644 --- a/htdocs/reception/stats/month.php +++ b/htdocs/reception/stats/month.php @@ -22,6 +22,7 @@ * \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'; diff --git a/htdocs/recruitment/admin/candidature_extrafields.php b/htdocs/recruitment/admin/candidature_extrafields.php index efb68e5ff2c..8d08cce1a70 100644 --- a/htdocs/recruitment/admin/candidature_extrafields.php +++ b/htdocs/recruitment/admin/candidature_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'; @@ -59,7 +60,9 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ +$textobject = $langs->transnoentitiesnoconv("Candidature"); +$help_url = ''; llxHeader('', $langs->trans("RecruitmentSetup"), $help_url); @@ -79,7 +82,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/recruitment/admin/jobposition_extrafields.php b/htdocs/recruitment/admin/jobposition_extrafields.php index d1b0651da64..d41dee3b2c5 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'; @@ -59,7 +60,9 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ +$textobject = $langs->transnoentitiesnoconv("JobPosition"); +$help_url = ''; llxHeader('', $langs->trans("RecruitmentSetup"), $help_url); @@ -79,7 +82,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/recruitment/admin/public_interface.php b/htdocs/recruitment/admin/public_interface.php index b091cdea7a0..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'; @@ -96,6 +97,7 @@ print dol_get_fiche_head($head, 'publicurl', '', -1, ''); print ''.$langs->trans("PublicInterfaceRecruitmentDesc").'

    '; +$param = ''; $enabledisablehtml = $langs->trans("EnablePublicRecruitmentPages").' '; if (empty($conf->global->RECRUITMENT_ENABLE_PUBLIC_INTERFACE)) { @@ -138,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 = ''; @@ -154,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 6091da86b09..517bbca5c19 100644 --- a/htdocs/recruitment/admin/setup.php +++ b/htdocs/recruitment/admin/setup.php @@ -93,11 +93,11 @@ if ((float) DOL_VERSION >= 6) { } if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); - $maskorder = GETPOST('maskorder', 'alpha'); + $maskconstjob = GETPOST('maskconstjob', 'alpha'); + $maskjob = GETPOST('maskjob', 'alpha'); - if ($maskconstorder) { - $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconstjob) { + $res = dolibarr_set_const($db, $maskconstjob, $maskjob, 'chaine', 0, '', $conf->entity); } if (!($res > 0)) { @@ -120,10 +120,10 @@ if ($action == 'updateMask') { $file = ''; $classname = ''; $filefound = 0; $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); foreach ($dirmodels as $reldir) { - $file = dol_buildpath($reldir."core/modules/mymodule/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0); + $file = dol_buildpath($reldir."core/modules/recruitment/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0); if (file_exists($file)) { $filefound = 1; - $classname = "pdf_".$modele; + $classname = "pdf_".$modele."_".strtolower($tmpobjectkey); break; } } @@ -134,7 +134,7 @@ if ($action == 'updateMask') { $module = new $classname($db); if ($module->write_file($tmpobject, $langs) > 0) { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf"); + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=recruitment-".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf"); return; } else { setEventMessages($module->error, null, 'errors'); @@ -229,7 +229,7 @@ if ($action == 'edit') { print ''; + print ''; } print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; @@ -824,13 +857,18 @@ if (!empty($arrayfields['e.billed']['checked'])) { 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 ''; @@ -1060,16 +1113,18 @@ while ($i < min($num, $limit)) { } // 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 ''; + print '
    '; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); print $form->textwithpicto($langs->trans($key), $tooltiphelp); - print '
    '; @@ -250,7 +250,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).'
    '; @@ -330,7 +330,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; $constforvar = 'RECRUITMENT_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -473,7 +473,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'RECRUITMENT_'.strtoupper($myTmpObjectKey).'_ADDON_PDF'; - if ($conf->global->$constforvar == $name) { + 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').''; @@ -501,7 +501,8 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Preview print ''; if ($module->type == 'pdf') { - print ''.img_object($langs->trans("Preview"), 'generic').''; + $newname = preg_replace('/_'.preg_quote(strtolower($myTmpObjectKey), '/').'/', '', $name); + print ''.img_object($langs->trans("Preview"), 'pdf').''; } else { print img_object($langs->trans("PreviewNotAvailable"), 'generic'); } diff --git a/htdocs/recruitment/admin/setup_candidatures.php b/htdocs/recruitment/admin/setup_candidatures.php index 726e24e89b1..adc12a656f4 100644 --- a/htdocs/recruitment/admin/setup_candidatures.php +++ b/htdocs/recruitment/admin/setup_candidatures.php @@ -93,11 +93,11 @@ if ((float) DOL_VERSION >= 6) { } if ($action == 'updateMask') { - $maskconstorder = GETPOST('maskconstorder', 'alpha'); - $maskorder = GETPOST('maskorder', 'alpha'); + $maskconstcand = GETPOST('maskconstcand', 'alpha'); + $maskcand = GETPOST('maskcand', 'alpha'); - if ($maskconstorder) { - $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconstcand) { + $res = dolibarr_set_const($db, $maskconstcand, $maskcand, 'chaine', 0, '', $conf->entity); } if (!($res > 0)) { @@ -226,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 ''; + print ''; } print ''; @@ -247,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.''; + print ''.getDolGlobalString($key).''; } print ''; @@ -328,7 +328,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { print ''; $constforvar = 'RECRUITMENT_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $file) { + if (getDolGlobalString($constforvar) == $file) { print img_picto($langs->trans("Activated"), 'switch_on'); } else { print ''; @@ -471,7 +471,7 @@ foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) { // Default print ''; $constforvar = 'RECRUITMENT_'.strtoupper($myTmpObjectKey).'_ADDON'; - if ($conf->global->$constforvar == $name) { + 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').''; diff --git a/htdocs/recruitment/class/api_recruitment.class.php b/htdocs/recruitment/class/api_recruitment.class.php index ff6f3c3d65a..af2c87dcdb3 100644 --- a/htdocs/recruitment/class/api_recruitment.class.php +++ b/htdocs/recruitment/class/api_recruitment.class.php @@ -364,7 +364,7 @@ class Recruitment extends DolibarrApi } // Clean data - // $this->jobposition->abc = checkVal($this->jobposition->abc, 'alphanohtml'); + // $this->jobposition->abc = sanitizeVal($this->jobposition->abc, 'alphanohtml'); if ($this->jobposition->create(DolibarrApiAccess::$user)<0) { throw new RestException(500, "Error creating jobposition", array_merge(array($this->jobposition->error), $this->jobposition->errors)); @@ -396,7 +396,7 @@ class Recruitment extends DolibarrApi } // Clean data - // $this->jobposition->abc = checkVal($this->jobposition->abc, 'alphanohtml'); + // $this->jobposition->abc = sanitizeVal($this->jobposition->abc, 'alphanohtml'); if ($this->candidature->create(DolibarrApiAccess::$user)<0) { throw new RestException(500, "Error creating candidature", array_merge(array($this->candidature->error), $this->candidature->errors)); @@ -438,7 +438,7 @@ class Recruitment extends DolibarrApi } // Clean data - // $this->jobposition->abc = checkVal($this->jobposition->abc, 'alphanohtml'); + // $this->jobposition->abc = sanitizeVal($this->jobposition->abc, 'alphanohtml'); if ($this->jobposition->update(DolibarrApiAccess::$user, false) > 0) { return $this->get($id); @@ -481,7 +481,7 @@ class Recruitment extends DolibarrApi } // Clean data - // $this->jobposition->abc = checkVal($this->jobposition->abc, 'alphanohtml'); + // $this->jobposition->abc = sanitizeVal($this->jobposition->abc, 'alphanohtml'); if ($this->candidature->update(DolibarrApiAccess::$user, false) > 0) { return $this->get($id); diff --git a/htdocs/recruitment/class/recruitmentcandidature.class.php b/htdocs/recruitment/class/recruitmentcandidature.class.php index e93e9af1178..4632d90fee6 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 @@ -62,6 +62,11 @@ class RecruitmentCandidature extends CommonObject */ public $picto = 'recruitmentcandidature'; + /** + * @var int Do not exploit fields email_xxx into triggers. + */ + public $email_fields_no_propagate_in_actioncomm; + const STATUS_DRAFT = 0; const STATUS_VALIDATED = 1; @@ -105,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'), + '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'=>'minwidth125 tdoverflowmax200'), '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'=>'varchar(255)', 'label'=>'EMail', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'picto'=>'email'), - 'phone' => array('type'=>'phone', 'label'=>'Phone', 'enabled'=>'1', 'position'=>31, 'notnull'=>0, 'visible'=>1, 'picto'=>'phone'), + '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'=>'tdoverflowmax200'), + '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'=>1, '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')), @@ -144,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; @@ -167,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; } @@ -265,7 +272,8 @@ class RecruitmentCandidature extends CommonObject 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; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -488,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); @@ -606,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; @@ -630,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; @@ -654,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; @@ -843,27 +851,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); diff --git a/htdocs/recruitment/class/recruitmentjobposition.class.php b/htdocs/recruitment/class/recruitmentjobposition.class.php index bc46b40f186..9237a752d99 100644 --- a/htdocs/recruitment/class/recruitmentjobposition.class.php +++ b/htdocs/recruitment/class/recruitmentjobposition.class.php @@ -104,12 +104,12 @@ 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'=>'1', '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'=>'1', 'position'=>57, 'notnull'=>-1, 'visible'=>-1, 'css'=>'maxwidth500', 'index'=>1, 'help'=>"IfJobIsLocatedAtAPartner", 'picto'=>'company'), + '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,), 'remuneration_suggested' => array('type'=>'varchar(255)', 'label'=>'Remuneration', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>1,), 'description' => array('type'=>'html', 'label'=>'Description', 'enabled'=>'1', 'position'=>65, 'notnull'=>0, 'visible'=>3,), @@ -182,7 +182,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; } @@ -279,7 +279,8 @@ class RecruitmentJobPosition extends CommonObject foreach ($object->array_options as $key => $option) { $shortkey = preg_replace('/options_/', '', $key); if (!empty($extrafields->attributes[$this->element]['unique'][$shortkey])) { - //var_dump($key); var_dump($clonedObj->array_options[$key]); exit; + //var_dump($key); + //var_dump($clonedObj->array_options[$key]); exit; unset($object->array_options[$key]); } } @@ -497,8 +498,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); @@ -615,8 +616,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; @@ -639,8 +640,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; @@ -756,8 +757,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; @@ -940,27 +941,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 e2b7c545aa9..ba35cb0ba3f 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,12 @@ */ /** - * \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.'/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'; @@ -89,7 +89,6 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi $this->option_tva = 0; // Manage the vat option COMMANDE_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 @@ -130,7 +129,7 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi // List of directories area $texte .= ''; $texttitle = $langs->trans("ListOfDirectories"); - $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim($conf->global->RECRUITMENT_RECRUITMENTJOBPOSITION_ADDON_PDF_ODT_PATH))); + $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim(getDolGlobalString('RECRUITMENT_RECRUITMENTJOBPOSITION_ADDON_PDF_ODT_PATH')))); $listoffiles = array(); foreach ($listofdir as $key => $tmpdir) { $tmpdir = trim($tmpdir); @@ -155,7 +154,7 @@ class doc_generic_recruitmentjobposition_odt extends ModelePDFRecruitmentJobPosi $texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1); $texte .= '
    '; $texte .= ''; $texte .= '
    '; $texte .= ''; @@ -235,7 +234,7 @@ 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; @@ -247,7 +246,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; 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 50e978aceab..2e85bfab121 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 @@ -80,41 +80,6 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio */ public $version = 'dolibarr'; - /** - * @var int page_largeur - */ - public $page_largeur; - - /** - * @var int page_hauteur - */ - public $page_hauteur; - - /** - * @var array format - */ - public $format; - - /** - * @var int marge_gauche - */ - public $marge_gauche; - - /** - * @var int marge_droite - */ - public $marge_droite; - - /** - * @var int marge_haute - */ - public $marge_haute; - - /** - * @var int marge_basse - */ - public $marge_basse; - /** * Issuer * @var Societe Object that emits @@ -165,7 +130,6 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $this->option_tva = 1; // Manage the vat option FACTURE_TVAOPTION $this->option_modereg = 1; // Display payment mode $this->option_condreg = 1; // Display payment terms - $this->option_codeproduitservice = 1; // Display product-service code $this->option_multilang = 1; // Available in several languages $this->option_escompte = 1; // Displays if there has been a discount $this->option_credit_note = 1; // Support credit notes @@ -611,7 +575,8 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $pageposafter = $pdf->getPage(); $posyafter = $pdf->GetY(); - //var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit; + //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 if ($i == ($nblines - 1)) { // No more lines, and no space left to show total, so we create a new page $pdf->AddPage('', '', true); @@ -678,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) { @@ -849,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->FACTURE_DRAFT_WATERMARK))) { - pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->FACTURE_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); @@ -919,7 +887,7 @@ class pdf_standard_recruitmentjobposition extends ModelePDFRecruitmentJobPositio $posy += 4; $pdf->SetXY($posx, $posy); $pdf->SetTextColor(0, 0, 60); - $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".$outputlangs->convToOutputCharset($object->ref_client), '', 'R'); + $pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : ".dol_trunc($outputlangs->convToOutputCharset($object->ref_client), 65), '', 'R'); } if (!empty($conf->global->PDF_SHOW_PROJECT_TITLE)) { 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..8772e97bf77 --- /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 customer Bom numbering rules advanced + */ +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 Texte descripif + */ + 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_recruitmentjobposition_advanced.php b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php index fcc476abacf..c280153f9c8 100644 --- a/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php +++ b/htdocs/recruitment/core/modules/recruitment/mod_recruitmentjobposition_advanced.php @@ -68,7 +68,7 @@ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosi $texte .= '
    '; $texte .= ''; $texte .= ''; - $texte .= ''; + $texte .= ''; $texte .= ''; $tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("RecruitmentJobPosition"), $langs->transnoentities("RecruitmentJobPosition")); @@ -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'); @@ -132,7 +127,7 @@ class mod_recruitmentjobposition_advanced extends ModeleNumRefRecruitmentJobPosi require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // We get cursor rule - $mask = $conf->global->RECRUITMENT_RECRUITMENTJOBPOSITION_ADVANCED_MASK; + $mask = getDolGlobalString('RECRUITMENT_RECRUITMENTJOBPOSITION_ADVANCED_MASK'); if (!$mask) { $this->error = 'NotConfigured'; diff --git a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php index 84bfd30401c..089aa720fa7 100644 --- a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php +++ b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php @@ -51,7 +51,7 @@ abstract class ModelePDFRecruitmentCandidature extends CommonDocGenerator // phpcs:enable global $conf; - $type = 'recruitmentjobposition'; + $type = 'recruitmentjobcandidature'; $list = array(); include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php index dd9aa49ab10..9efabac2d37 100644 --- a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php +++ b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php @@ -38,6 +38,42 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // requir abstract class ModelePDFRecruitmentJobPosition extends CommonDocGenerator { + /** + * @var int page_largeur + */ + public $page_largeur; + + /** + * @var int page_hauteur + */ + public $page_hauteur; + + /** + * @var array format + */ + public $format; + + /** + * @var int marge_gauche + */ + public $marge_gauche; + + /** + * @var int marge_droite + */ + public $marge_droite; + + /** + * @var int marge_haute + */ + public $marge_haute; + + /** + * @var int marge_basse + */ + public $marge_basse; + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Return list of active generation modules diff --git a/htdocs/recruitment/recruitmentindex.php b/htdocs/recruitment/index.php similarity index 94% rename from htdocs/recruitment/recruitmentindex.php rename to htdocs/recruitment/index.php index b4d943584cd..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,15 +333,15 @@ $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"; - if ($conf->societe->enabled && empty($user->rights->societe->client->voir) && !$socid) { + if (isModEnabled('societe') && empty($user->rights->societe->client->voir) && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } $sql .= " WHERE s.entity IN (".getEntity($staticrecruitmentjobposition->element).")"; - if ($conf->societe->enabled && empty($user->rights->societe->client->voir) && !$socid) { + if (isModEnabled('societe') && empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND s.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } if ($socid) { @@ -398,15 +404,15 @@ 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"; - if ($conf->societe->enabled && empty($user->rights->societe->client->voir) && !$socid) { + if (isModEnabled('societe') && empty($user->rights->societe->client->voir) && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } $sql .= " WHERE rc.entity IN (".getEntity($staticrecruitmentjobposition->element).")"; - if ($conf->societe->enabled && empty($user->rights->societe->client->voir) && !$socid) { + if (isModEnabled('societe') && empty($user->rights->societe->client->voir) && !$socid) { $sql .= " AND s.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } if ($socid) { 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 3d3b59a9253..179f26a84c7 100644 --- a/htdocs/recruitment/lib/recruitment_recruitmentjobposition.lib.php +++ b/htdocs/recruitment/lib/recruitment_recruitmentjobposition.lib.php @@ -41,12 +41,23 @@ function recruitmentjobpositionPrepareHead($object) $head[$h][2] = 'card'; $h++; - if ($conf->global->MAIN_FEATURES_LEVEL >= 1) { - $head[$h][0] = dol_buildpath("/recruitment/recruitmentjobposition_applications.php", 1).'?id='.$object->id; - $head[$h][1] = $langs->trans("Candidatures"); - $head[$h][2] = 'candidatures'; - $h++; + $head[$h][0] = dol_buildpath("/recruitment/recruitmentcandidature_list.php", 1).'?id='.$object->id; + $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) { + $obj = $db->fetch_object($resql); + if ($obj) { + $nCandidature = $obj->nb; + if ($nCandidature > 0) { + $head[$h][1] .= ''.$nCandidature.''; + } + } + } else { + dol_print_error($db); } + $head[$h][2] = 'candidatures'; + $h++; if (isset($object->fields['note_public']) || isset($object->fields['note_private'])) { $nbNote = 0; @@ -132,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 9cc259c21e1..2aeb51628a6 100644 --- a/htdocs/recruitment/recruitmentcandidature_agenda.php +++ b/htdocs/recruitment/recruitmentcandidature_agenda.php @@ -23,41 +23,12 @@ */ // 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.'/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 @@ -65,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')) { @@ -153,8 +124,8 @@ 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); @@ -179,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') . ' '; @@ -200,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(); @@ -247,7 +218,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -257,7 +228,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/recruitment/recruitmentcandidature_card.php b/htdocs/recruitment/recruitmentcandidature_card.php index 42145f66c43..ca7e3c20e2c 100644 --- a/htdocs/recruitment/recruitmentcandidature_card.php +++ b/htdocs/recruitment/recruitmentcandidature_card.php @@ -21,57 +21,8 @@ * \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 -$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'; @@ -85,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); @@ -115,7 +66,7 @@ foreach ($object->fields as $key => $val) { } if (empty($action) && empty($id) && empty($ref)) { - $action = 'view'; + $action = 'create'; } // Load object @@ -163,7 +114,9 @@ if (empty($reshook)) { $triggermodname = 'RECRUITMENTCANDIDATURE_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 + $object->email_fields_no_propagate_in_actioncomm = 1; include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; + $object->email_fields_no_propagate_in_actioncomm = 0; // Actions when linking object each other include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; @@ -304,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') { @@ -475,7 +433,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') . ' '; @@ -495,7 +453,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(); @@ -504,6 +462,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 .= ''; @@ -659,7 +634,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/recruitment/recruitmentcandidature_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/recruitment/recruitmentcandidature_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; @@ -679,6 +654,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 792b413b5e4..3f08c770111 100644 --- a/htdocs/recruitment/recruitmentcandidature_document.php +++ b/htdocs/recruitment/recruitmentcandidature_document.php @@ -23,42 +23,13 @@ */ // 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/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")); @@ -77,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) { @@ -126,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) { @@ -148,7 +118,6 @@ if ($object->id) { } // Object card - // ------------------------------------------------------------ $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
    '; @@ -160,7 +129,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') . ' '; @@ -181,7 +150,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(); @@ -217,6 +186,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 05cf56636ea..34b852574f6 100644 --- a/htdocs/recruitment/recruitmentcandidature_list.php +++ b/htdocs/recruitment/recruitmentcandidature_list.php @@ -1,6 +1,5 @@ - * Copyright (C) ---Put here your own copyright and developer email--- * * 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,80 +21,32 @@ * \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('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 -$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.'/recruitment/lib/recruitment.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/lib/recruitment_recruitmentjobposition.lib.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 recruitment libraries -require_once __DIR__.'/class/recruitmentcandidature.class.php'; - -// for other modules -//dol_include_once('/othermodule/class/otherobject.class.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "other")); -$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$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') : 'recruitmentcandidaturelist'; // To manage different context of search +$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') - -$id = GETPOST('id', 'int'); +$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; @@ -103,8 +54,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')) { + // 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 +} $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -123,19 +75,23 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen // Default sort order (if not yet defined by previous GETPOST) if (!$sortfield) { - $sortfield = "t.".key($object->fields); // 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 = "ASC"; + $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') !== '') { $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" @@ -146,23 +102,31 @@ foreach ($object->fields as $key => $val) { } } -// Definition of fields for list +// 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 = 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')), - 'position'=>$val['position'] + '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'; +// Load object +$jobposition = new RecruitmentJobPosition($db); +if ($id > 0 || !empty($ref)) { + $jobposition->fetch($id, $ref); + $id = $jobposition->id; +} + $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); @@ -174,7 +138,12 @@ $permissiontodelete = $user->rights->recruitment->recruitmentjobposition->delete //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); -$result = restrictedArea($user, 'recruitment', 0, 'recruitment_recruitmentcandidature', 'recruitmentjobposition'); +if ($jobposition->id > 0) { + $isdraft = (($jobposition->status == $jobposition::STATUS_DRAFT) ? 1 : 0); + $result = restrictedArea($user, 'recruitment', $jobposition->id, 'recruitment_recruitmentjobposition', 'recruitmentjobposition', '', 'rowid', $isdraft); +} else { + $result = restrictedArea($user, 'recruitment', 0, 'recruitment_recruitmentcandidature', 'recruitmentjobposition'); +} @@ -183,7 +152,8 @@ $result = restrictedArea($user, 'recruitment', 0, 'recruitment_recruitmentcandid */ if (GETPOST('cancel', 'alpha')) { - $action = 'list'; $massaction = ''; + $action = 'list'; + $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; @@ -203,8 +173,12 @@ if (empty($reshook)) { 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 = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -231,7 +205,9 @@ $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(); // Build and execute select @@ -241,7 +217,7 @@ $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 : ''); + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key." as options_".$key : ''); } } // Add fields from hooks @@ -253,29 +229,50 @@ $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)"; } +// 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 ($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) { - if ($search[$key] == '-1') { - $search[$key] = ''; + 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])."'"; + } + } } - $mode_search = 2; - } - if ($search[$key] != '') { - $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); } } if ($search_all) { $sql .= natural_search(array_keys($fieldstosearchall), $search_all); } +if (!empty($id)) { + $sql .= " AND t.fk_recruitmentjobposition = ".((int) $id); +} //$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'; @@ -286,52 +283,57 @@ $sql .= $hookmanager->resPrint; /* If a group by is required $sql.= " GROUP BY "; -foreach ($object->fields as $key => $val) -{ - $sql .= "t.".$key.", "; +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.', ' : ''); } } // Add where from hooks $parameters=array(); -$reshook=$hookmanager->executeHooks('printFieldListGroupBy', $parameters); // Note that $action and $object may have been modified by hook -$sql.=$hookmanager->resPrint; -$sql=preg_replace('/,\s*$/', '', $sql); +$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); */ -$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); + /* 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); } -// 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); @@ -344,11 +346,152 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ // Output page // -------------------------------------------------------------------- -llxHeader('', $title, $help_url); +llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'bodyforlist'); + + +// Part to show record + +if ($jobposition->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { + $savobject = $object; + + $object = $jobposition; + + $res = $object->fetch_optionals(); + + $head = recruitmentjobpositionPrepareHead($object); + print dol_get_fiche_head($head, 'candidatures', $langs->trans("RecruitmentCandidatures"), -1, $object->picto); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteRecruitmentJobPosition'), $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 + if ($action == 'xxx') { + $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(0, $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 '
    '.$langs->trans("Mask").':'.$form->textwithpicto('', $tooltip, 1, 1).''.$form->textwithpicto('', $tooltip, 1, 1).' 
    '."\n"; + + // Common attributes + $keyforbreak = 'description'; // We change column just after 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(); + + print '
    '; + + $object = $savobject; +} + $arrayofselected = is_array($toselect) ? $toselect : array(); $param = ''; +if (!empty($id)) { + $param .= '&id='.urlencode($id); +} +if (!empty($mode)) { + $param .= '&mode='.urlencode($mode); +} if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); } @@ -358,9 +501,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) { foreach ($search as $key => $val) { if (is_array($search[$key]) && count($search[$key])) { foreach ($search[$key] as $skey) { - $param .= '&search_'.$key.'[]='.urlencode($skey); + if ($skey != '') { + $param .= '&search_'.$key.'[]='.urlencode($skey); + } } - } else { + } elseif ($search[$key] != '') { $param .= '&search_'.$key.'='.urlencode($search[$key]); } } @@ -369,6 +514,10 @@ if ($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( @@ -377,7 +526,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'))) { @@ -394,10 +543,17 @@ print ''; print ''; print ''; -//print ''; +print ''; print ''; +print ''; +print ''; -$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/recruitment/recruitmentcandidature_card.php', 1).'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $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 .= dolGetButtonTitleSeparator(); +$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); @@ -409,10 +565,13 @@ $trackid = 'recruitmentapplication'.$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 = ''; @@ -435,7 +594,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 @@ -445,24 +604,43 @@ print ''; +// Action column +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; +} foreach ($object->fields as $key => $val) { - $cssforfield = (empty($val['css']) ? '' : $val['css']); + $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')) && $val['label'] != 'TechnicalID') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID' && empty($val['arrayofkeyval'])) { $cssforfield .= ($cssforfield ? ' ' : '').'right'; } if (!empty($arrayfields['t.'.$key]['checked'])) { print ''; @@ -476,39 +654,51 @@ $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 ''; +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['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'))) { $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') { + } elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $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); +$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; // Action column -print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +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"; @@ -526,9 +716,11 @@ if (isset($extrafields->attributes[$object->table_element]['computed']) && is_ar // Loop on record // -------------------------------------------------------------------- $i = 0; +$savnbfield = $totalarray['nbfield']; $totalarray = array(); $totalarray['nbfield'] = 0; -while ($i < ($limit ? min($num, $limit) : $num)) { +$imaxinloop = ($limit ? min($num, $limit) : $num); +while ($i < $imaxinloop) { $obj = $db->fetch_object($resql); if (empty($obj)) { break; // Should not happen @@ -537,73 +729,107 @@ 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'; + if ($mode == 'kanban') { + if ($i == 0) { + print ''; } - - if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'status') { - $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); - } else { - print $object->showOutputField($val, $key, $object->$key, ''); + } else { + // Show here line of result + $j = 0; + print ''; + // Action column + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + 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; - // Action 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'; + } - print ''."\n"; + 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; + // Action column + if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } + if (!$i) { + $totalarray['nbfield']++; + } + + print ''."\n"; + } $i++; } @@ -619,14 +845,14 @@ 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 '
    '; + $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) { - print $object->showInputField($val, $key, (isset($search[$key]) ? $search[$key] : ''), '', '', 'search_', 'maxwidth150', 1); - } elseif (!preg_match('/^(date|timestamp)/', $val['type'])) { + } 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 ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + print '
    '; } - - if (in_array($val['type'], array('timestamp'))) { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; - } elseif ($key == 'ref') { - $cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; + // 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 ''; - 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; + } + print ''; + } + print '
    '.$langs->trans("NoRecordFound").'
    '.$langs->trans("NoRecordFound").'
    '."\n"; diff --git a/htdocs/recruitment/recruitmentcandidature_note.php b/htdocs/recruitment/recruitmentcandidature_note.php index ead2df3c973..543d7a66c10 100644 --- a/htdocs/recruitment/recruitmentcandidature_note.php +++ b/htdocs/recruitment/recruitmentcandidature_note.php @@ -23,47 +23,18 @@ */ // 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"); -} - -dol_include_once('/recruitment/class/recruitmentcandidature.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentcandidature.lib.php'); +require_once '../main.inc.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 @@ -109,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(); @@ -133,7 +104,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') . ' '; @@ -154,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(); @@ -168,7 +139,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 3f9e76d4dcf..38adf67acc1 100644 --- a/htdocs/recruitment/recruitmentjobposition_agenda.php +++ b/htdocs/recruitment/recruitmentjobposition_agenda.php @@ -23,41 +23,12 @@ */ // 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.'/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 @@ -65,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')) { @@ -153,8 +124,8 @@ 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); @@ -179,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) { @@ -246,7 +217,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { print ''.$langs->trans("AddAction").''; } else { @@ -256,7 +227,7 @@ if ($object->id > 0) { print '
    '; - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/recruitment/recruitmentjobposition_applications.php b/htdocs/recruitment/recruitmentjobposition_applications.php index 4295ce73284..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'); @@ -195,92 +146,16 @@ if (empty($reshook)) { /* * View - * - * Put here all code to build page */ $form = new Form($db); $formfile = new FormFile($db); $formproject = new FormProjets($db); -$title = $langs->trans("PositionToBeFilled"); +$title = $langs->trans("JobPositionApplications"); $help_url = ''; llxHeader('', $title, $help_url); -// Part to create -if ($action == 'create') { - print load_fiche_titre($langs->trans("NewPositionToBeFilled"), '', 'object_'.$object->picto); - - print '
    '; - print ''; - print ''; - if ($backtopage) { - print ''; - } - if ($backtopageforcancel) { - print ''; - } - - // Set some default values - if (!GETPOSTISSET('fk_user_recruiter')) { - $_POST['fk_user_recruiter'] = $user->id; - } - - print dol_get_fiche_head(array(), ''); - - 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("PositionToBeFilled"), '', '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(); @@ -347,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 ab065411ac0..bdae11bdc60 100644 --- a/htdocs/recruitment/recruitmentjobposition_card.php +++ b/htdocs/recruitment/recruitmentjobposition_card.php @@ -21,77 +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 -$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'); -//$lineid = GETPOST('lineid', 'int'); +//$lineid = GETPOST('lineid', 'int'); // Initialize technical objects $object = new RecruitmentJobPosition($db); @@ -114,7 +65,7 @@ foreach ($object->fields as $key => $val) { } if (empty($action) && empty($id) && empty($ref)) { - $action = 'view'; + $action = 'create'; } // Load object @@ -220,15 +171,13 @@ if (empty($reshook)) { /* * View - * - * Put here all code to build page */ $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); @@ -374,7 +323,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) { @@ -560,7 +509,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/recruitment/recruitmentjobposition_agenda.php?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/recruitment/recruitmentjobposition_agenda.php?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/recruitment/recruitmentjobposition_document.php b/htdocs/recruitment/recruitmentjobposition_document.php index e9615777ade..ca9907976be 100644 --- a/htdocs/recruitment/recruitmentjobposition_document.php +++ b/htdocs/recruitment/recruitmentjobposition_document.php @@ -23,42 +23,13 @@ */ // 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/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")); @@ -77,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) { @@ -126,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); @@ -160,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) { @@ -215,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 3bf5fb94073..5b1bee43e56 100644 --- a/htdocs/recruitment/recruitmentjobposition_list.php +++ b/htdocs/recruitment/recruitmentjobposition_list.php @@ -1,6 +1,5 @@ - * Copyright (C) ---Put here your own copyright and developer email--- * * 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,65 +21,13 @@ * \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 -$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.'/recruitment/lib/recruitment_recruitmentjobposition.lib.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 recruitment libraries -require_once __DIR__.'/class/recruitmentjobposition.class.php'; - -// for other modules -//dol_include_once('/othermodule/class/otherobject.class.php'); +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php'; // Load translation files required by the page $langs->loadLangs(array("recruitment", "other")); @@ -125,11 +72,10 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen // 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. + $sortfield = "t.ref"; } if (!$sortorder) { - $sortorder = "ASC"; + $sortorder = "DESC"; } // Initialize array of search criterias @@ -171,6 +117,9 @@ foreach ($object->fields as $key => $val) { // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. + $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields['nbapplications'] = array('type'=>'integer', 'label'=>'Applications', 'checked'=>1, 'enabled'=>1, 'position'=>90, 'csslist'=>'right'); $arrayfields = dol_sort_array($arrayfields, 'position'); @@ -245,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(); @@ -456,8 +405,8 @@ 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 .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list-alt imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/^&mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition')); $newcardbutton .= dolGetButtonTitleSeparator(); $newcardbutton .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/recruitment/recruitmentjobposition_card.php', 1).'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permissiontoadd); @@ -587,7 +536,7 @@ $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 ''.$langs->trans("Applications").''; + print ''.$langs->trans("RecruitmentCandidatures").''; $totalarray['nbfield']++; } // Action column diff --git a/htdocs/recruitment/recruitmentjobposition_note.php b/htdocs/recruitment/recruitmentjobposition_note.php index 2645980f7bb..dcda5b53109 100644 --- a/htdocs/recruitment/recruitmentjobposition_note.php +++ b/htdocs/recruitment/recruitmentjobposition_note.php @@ -23,47 +23,18 @@ */ // 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"); -} - -dol_include_once('/recruitment/class/recruitmentjobposition.class.php'); -dol_include_once('/recruitment/lib/recruitment_recruitmentjobposition.lib.php'); +require_once '../main.inc.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 @@ -114,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(); @@ -126,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 = '
    '; @@ -138,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) { diff --git a/htdocs/resource/agenda.php b/htdocs/resource/agenda.php index 363f334a7eb..8fddadcce11 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'); @@ -52,6 +53,7 @@ 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'); $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'); @@ -164,7 +165,7 @@ if ($object->id > 0) { print dol_get_fiche_end(); - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { $param = '&id='.$object->id.'&socid='.$socid; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php index 4ffbe1eb0a7..cf4b4b8e110 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'; diff --git a/htdocs/resource/class/dolresource.class.php b/htdocs/resource/class/dolresource.class.php index 8ea35d43c33..46371fead0f 100644 --- a/htdocs/resource/class/dolresource.class.php +++ b/htdocs/resource/class/dolresource.class.php @@ -262,10 +262,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 @@ -480,7 +479,7 @@ class Dolresource extends CommonObject * @param array $filter filter output * @return int <0 if KO, >0 if OK */ - public function fetch_all($sortorder, $sortfield, $limit, $offset, $filter = '') + public function fetchAll($sortorder, $sortfield, $limit, $offset, $filter = '') { // phpcs:enable global $conf; @@ -497,7 +496,7 @@ class Dolresource extends CommonObject $sql .= " t.fk_code_type_resource,"; $sql .= " t.tms,"; // Add fields from extrafields - if (!empty($extrafields->attributes[$this->table_element]['label'])) { + if (!empty($extrafields->attributes[$this->table_element]) && !empty($extrafields->attributes[$this->table_element]['label'])) { foreach ($extrafields->attributes[$this->table_element]['label'] as $key => $val) { $sql .= ($extrafields->attributes[$this->table_element]['type'][$key] != 'separate' ? "ef.".$key." as options_".$key.', ' : ''); } @@ -559,183 +558,6 @@ class Dolresource extends CommonObject } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Load all objects into $this->lines - * - * @param string $sortorder sort order - * @param string $sortfield sort field - * @param int $limit limit page - * @param int $offset page - * @param array $filter filter output - * @return int <0 if KO, >0 if OK - */ - public function fetch_all_resources($sortorder, $sortfield, $limit, $offset, $filter = '') - { - // phpcs:enable - global $conf; - $sql = "SELECT "; - $sql .= " t.rowid,"; - $sql .= " t.resource_id,"; - $sql .= " t.resource_type,"; - $sql .= " t.element_id,"; - $sql .= " t.element_type,"; - $sql .= " t.busy,"; - $sql .= " t.mandatory,"; - $sql .= " t.fk_user_create,"; - $sql .= " t.tms"; - $sql .= ' FROM '.MAIN_DB_PREFIX.'element_resources as t '; - $sql .= " WHERE t.entity IN (".getEntity('resource').")"; - - //Manage filter - if (!empty($filter)) { - foreach ($filter as $key => $value) { - if (strpos($key, 'date')) { - $sql .= " AND ".$key." = '".$this->db->idate($value)."'"; - } else { - $sql .= " AND ".$key." LIKE '%".$this->db->escape($value)."%'"; - } - } - } - $sql .= $this->db->order($sortfield, $sortorder); - if ($limit) { - $sql .= $this->db->plimit($limit + 1, $offset); - } - dol_syslog(get_class($this)."::fetch_all", LOG_DEBUG); - - $resql = $this->db->query($sql); - if ($resql) { - $num = $this->db->num_rows($resql); - if ($num) { - while ($obj = $this->db->fetch_object($resql)) { - $line = new Dolresource($this->db); - $line->id = $obj->rowid; - $line->resource_id = $obj->resource_id; - $line->resource_type = $obj->resource_type; - $line->element_id = $obj->element_id; - $line->element_type = $obj->element_type; - $line->busy = $obj->busy; - $line->mandatory = $obj->mandatory; - $line->fk_user_create = $obj->fk_user_create; - - if ($obj->resource_id && $obj->resource_type) { - $line->objresource = fetchObjectByElement($obj->resource_id, $obj->resource_type); - } - if ($obj->element_id && $obj->element_type) { - $line->objelement = fetchObjectByElement($obj->element_id, $obj->element_type); - } - $this->lines[] = $line; - } - $this->db->free($resql); - } - return $num; - } else { - $this->error = $this->db->lasterror(); - return -1; - } - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Load all objects into $this->lines - * - * @param string $sortorder sort order - * @param string $sortfield sort field - * @param int $limit limit page - * @param int $offset page - * @param array $filter filter output - * @return int <0 if KO, >0 if OK - */ - public function fetch_all_used($sortorder, $sortfield, $limit, $offset = 1, $filter = '') - { - // phpcs:enable - global $conf; - - if (!$sortorder) { - $sortorder = "ASC"; - } - if (!$sortfield) { - $sortfield = "t.rowid"; - } - - $sql = "SELECT "; - $sql .= " t.rowid,"; - $sql .= " t.resource_id,"; - $sql .= " t.resource_type,"; - $sql .= " t.element_id,"; - $sql .= " t.element_type,"; - $sql .= " t.busy,"; - $sql .= " t.mandatory,"; - $sql .= " t.fk_user_create,"; - $sql .= " t.tms"; - $sql .= ' FROM '.MAIN_DB_PREFIX.'element_resources as t '; - $sql .= " WHERE t.entity IN (".getEntity('resource').")"; - - //Manage filter - if (!empty($filter)) { - foreach ($filter as $key => $value) { - if (strpos($key, 'date')) { - $sql .= " AND ".$key." = '".$this->db->idate($value)."'"; - } else { - $sql .= " AND ".$key." LIKE '%".$this->db->escape($value)."%'"; - } - } - } - $sql .= $this->db->order($sortfield, $sortorder); - if ($limit) { - $sql .= $this->db->plimit($limit + 1, $offset); - } - dol_syslog(get_class($this)."::fetch_all", LOG_DEBUG); - - $resql = $this->db->query($sql); - if ($resql) { - $num = $this->db->num_rows($resql); - if ($num) { - $this->lines = array(); - while ($obj = $this->db->fetch_object($resql)) { - $line = new Dolresource($this->db); - $line->id = $obj->rowid; - $line->resource_id = $obj->resource_id; - $line->resource_type = $obj->resource_type; - $line->element_id = $obj->element_id; - $line->element_type = $obj->element_type; - $line->busy = $obj->busy; - $line->mandatory = $obj->mandatory; - $line->fk_user_create = $obj->fk_user_create; - - $this->lines[] = fetchObjectByElement($obj->resource_id, $obj->resource_type); - } - $this->db->free($resql); - } - return $num; - } else { - $this->error = $this->db->lasterror(); - return -1; - } - } - - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Fetch all resources available, declared by modules - * Load available resource in array $this->available_resources - * - * @return int number of available resources declared by modules - * @deprecated, remplaced by hook getElementResources - * @see getElementResources() - */ - public function fetch_all_available() - { - // phpcs:enable - global $conf; - - if (!empty($conf->modules_parts['resources'])) { - $this->available_resources = (array) $conf->modules_parts['resources']; - - return count($this->available_resources); - } - return 0; - } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Update element resource into database diff --git a/htdocs/resource/class/html.formresource.class.php b/htdocs/resource/class/html.formresource.class.php index a541dfab700..8b4e32c05d2 100644 --- a/htdocs/resource/class/html.formresource.class.php +++ b/htdocs/resource/class/html.formresource.class.php @@ -28,7 +28,7 @@ require_once DOL_DOCUMENT_ROOT."/resource/class/dolresource.class.php"; /** - * Classe permettant la gestion des formulaire du module resource + * Class to manage forms for the module resource * * \remarks Utilisation: $formresource = new FormResource($db) * \remarks $formplace->proprietes=1 ou chaine ou tableau de valeurs @@ -89,9 +89,9 @@ class FormResource $resourcestat = new Dolresource($this->db); - $resources_used = $resourcestat->fetch_all('ASC', 't.rowid', $limit, 0, $filter); + $resources_used = $resourcestat->fetchAll('ASC', 't.rowid', $limit, 0, $filter); - if (!is_array($selected)) { + if (!empty($selected) && !is_array($selected)) { $selected = array($selected); } @@ -101,13 +101,6 @@ class FormResource } if ($resourcestat) { - if (!empty($conf->use_javascript_ajax) && !empty($conf->global->RESOURCE_USE_SEARCH_TO_SELECT) && !$forcecombo) { - //$minLength = (is_numeric($conf->global->RESOURCE_USE_SEARCH_TO_SELECT)?$conf->global->RESOURCE_USE_SEARCH_TO_SELECT:2); - $out .= ajax_combobox($htmlname, $event, $conf->global->RESOURCE_USE_SEARCH_TO_SELECT); - } else { - $out .= ajax_combobox($htmlname); - } - // Construct $out and $outarray $out .= ''."\n"; + if (!empty($conf->use_javascript_ajax) && !empty($conf->global->RESOURCE_USE_SEARCH_TO_SELECT) && !$forcecombo) { + //$minLength = (is_numeric($conf->global->RESOURCE_USE_SEARCH_TO_SELECT)?$conf->global->RESOURCE_USE_SEARCH_TO_SELECT:2); + $out .= ajax_combobox($htmlname, $event, $conf->global->RESOURCE_USE_SEARCH_TO_SELECT); + } else { + $out .= ajax_combobox($htmlname); + } + if ($outputmode != 2) { $out .= '     '; diff --git a/htdocs/resource/contact.php b/htdocs/resource/contact.php index aca47d49743..45e4ce4b329 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,7 +111,7 @@ $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); 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 f4c6f3d3856..a5ca456310e 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'; } @@ -165,7 +166,7 @@ if (empty($reshook)) { $objstat->errors[] = $objstat->error; } else { if ($db->num_rows($resql) > 0) { - // already in use + // Resource already in use $error++; $objstat->error = $langs->trans('ErrorResourcesAlreadyInUse').' : '; while ($obj = $db->fetch_object($resql)) { @@ -241,7 +242,7 @@ if (empty($reshook)) { $object->errors[] = $object->error; } else { if ($db->num_rows($resql) > 0) { - // already in use + // Resource already in use $error++; $object->error = $langs->trans('ErrorResourcesAlreadyInUse').' : '; while ($obj = $db->fetch_object($resql)) { @@ -349,7 +350,7 @@ if (!$ret) { // 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').': '; @@ -517,7 +518,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 97d55c7bb33..23282fe6363 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'; @@ -143,8 +144,8 @@ $form = new Form($db); //$help_url="EN:Module_MyObject|FR:Module_MyObject_FR|ES:Módulo_MyObject"; $help_url = ''; -$pagetitle = $langs->trans('ResourcePageIndex'); -llxHeader('', $pagetitle, $help_url); +$title = $langs->trans('Resources'); +llxHeader('', $title, $help_url); $sql = ''; @@ -199,7 +200,7 @@ print ''; print ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $ret = $object->fetch_all('', '', 0, 0, $filter); + $ret = $object->fetchAll('', '', 0, 0, $filter); if ($ret == -1) { dol_print_error($db, $object->error); exit; @@ -209,7 +210,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { } // Load object list -$ret = $object->fetch_all($sortorder, $sortfield, $limit, $offset, $filter); +$ret = $object->fetchAll($sortorder, $sortfield, $limit, $offset, $filter); if ($ret == -1) { dol_print_error($db, $object->error); exit; @@ -219,7 +220,7 @@ if ($ret == -1) { $newcardbutton .= dolGetButtonTitle($langs->trans('MenuResourceAdd'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/resource/card.php?action=create'); } - print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $ret + 1, $nbtotalofrecords, 'object_resource', 0, $newcardbutton, '', $limit, 0, 0, 1); + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $ret + 1, $nbtotalofrecords, 'object_resource', 0, $newcardbutton, '', $limit, 0, 0, 1); } $moreforfilter = ''; 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 ''; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { print $formaccounting->select_account(getDolGlobalString($key), $key, 1, '', 1, 1); } else { - print ''; + print ''; } print ''; } diff --git a/htdocs/salaries/admin/salaries_extrafields.php b/htdocs/salaries/admin/salaries_extrafields.php index 2354da8048a..7b9607e0f30 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'; @@ -83,7 +84,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { 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 3deab1e2ed8..ab4ba4cd4b8 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"); } @@ -135,8 +136,8 @@ if (empty($reshook)) { } if ($cancel) { - /*var_dump($cancel); - var_dump($backtopage);exit;*/ + //var_dump($cancel); + //var_dump($backtopage);exit; if (!empty($backtopageforcancel)) { header("Location: ".$backtopageforcancel); exit; @@ -260,7 +261,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++; } @@ -323,9 +324,9 @@ if ($action == 'add' && empty($cancel)) { if ($action == 'confirm_delete') { $result = $object->fetch($id); - $totalpaye = $object->getSommePaiement(); + $totalpaid = $object->getSommePaiement(); - if (empty($totalpaye)) { + if (empty($totalpaid)) { $db->begin(); $ret = $object->delete($user); @@ -441,7 +442,7 @@ 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'); $help_url = ""; @@ -554,12 +555,12 @@ if ($action == 'create') { print ''; print $form->editfieldkey('Amount', 'amount', '', $object, 0, 'string', '', 1).''; print ' '; - print '
    '; - $totalpaye = $object->getSommePaiement(); - $object->totalpaye = $totalpaye; + $totalpaid = $object->getSommePaiement(); + $object->totalpaid = $totalpaid; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', ''); @@ -893,7 +894,7 @@ if ($id) { print ''; // Default Bank Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; print ''; print ''; print ''; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; } print ''; @@ -972,14 +973,14 @@ if ($id) { print '\n"; $labeltype = $langs->trans("PaymentType".$objp->type_code) != ("PaymentType".$objp->type_code) ? $langs->trans("PaymentType".$objp->type_code) : $objp->paiement_type; print "\n"; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $bankaccountstatic->id = $objp->baid; $bankaccountstatic->ref = $objp->baref; $bankaccountstatic->label = $objp->baref; $bankaccountstatic->number = $objp->banumber; $bankaccountstatic->currency_code = $objp->bacurrency_code; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $bankaccountstatic->account_number = $objp->account_number; $accountingjournal = new AccountingJournal($db); @@ -992,9 +993,9 @@ if ($id) { print $bankaccountstatic->getNomUrl(1, 'transactions'); print ''; } - print '\n"; + print '\n"; print ""; - $totalpaye += $objp->amount; + $totalpaid += $objp->amount; $i++; } } else { @@ -1003,14 +1004,14 @@ if ($id) { print ''; } - print '\n"; - print '\n"; + print '\n"; + print '\n"; - $resteapayer = $object->amount - $totalpaye; + $resteapayer = $object->amount - $totalpaid; $cssforamountpaymentcomplete = 'amountpaymentcomplete'; print '"; - print '\n"; + print '\n"; print "
    '; print $langs->trans('DefaultBankAccount'); @@ -922,7 +923,7 @@ if ($id) { print '
    '; $nbcols = 3; - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { $nbcols++; } @@ -945,7 +946,7 @@ if ($id) { //print $sql; $resql = $db->query($sql); if ($resql) { - $totalpaye = 0; + $totalpaid = 0; $num = $db->num_rows($resql); $i = 0; $total = 0; @@ -956,7 +957,7 @@ if ($id) { print '
    '.$langs->trans("RefPayment").''.$langs->trans("Date").''.$langs->trans("Type").''.$langs->trans('BankAccount').''.$langs->trans("Amount").''.dol_print_date($db->jdate($objp->dp), 'day')."".$labeltype.' '.$objp->num_payment."'.price($objp->amount)."'.price($objp->amount)."
    '.$langs->trans("AlreadyPaid")." :".price($totalpaye)."
    '.$langs->trans("AmountExpected")." :".price($object->amount)."
    '.$langs->trans("AlreadyPaid")." :".price($totalpaid)."
    '.$langs->trans("AmountExpected")." :".price($object->amount)."
    '.$langs->trans("RemainderToPay")." :'.price($resteapayer)."
    '.price($resteapayer)."
    "; print '
    '; @@ -1067,7 +1068,7 @@ if ($id) { print dolGetButtonAction('', $langs->trans('ToClone'), 'default', $_SERVER["PHP_SELF"].'?action=clone&token='.newToken().'&id='.$object->id, ''); } - if (!empty($user->rights->salaries->delete) && empty($totalpaye)) { + if (!empty($user->rights->salaries->delete) && empty($totalpaid)) { print dolGetButtonAction('', $langs->trans('Delete'), 'delete', $_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id, ''); } else { print dolGetButtonAction($langs->trans('DisabledBecausePayments'), $langs->trans('Delete'), 'default', $_SERVER['PHP_SELF'].'#', '', false); @@ -1110,7 +1111,7 @@ if ($id) { $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', dol_buildpath('/mymodule/myobject_agenda.php', 1).'?id='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', dol_buildpath('/mymodule/myobject_agenda.php', 1).'?id='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/salaries/class/paymentsalary.class.php b/htdocs/salaries/class/paymentsalary.class.php index 08e850c259a..1a716cba31d 100644 --- a/htdocs/salaries/class/paymentsalary.class.php +++ b/htdocs/salaries/class/paymentsalary.class.php @@ -1,7 +1,7 @@ - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2021 Gauthier VERDOL +/* Copyright (C) 2011-2022 Alexandre Spangaro + * Copyright (C) 2014 Juanjo Menent + * 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 @@ -486,14 +486,14 @@ class PaymentSalary extends CommonObject */ public function addPaymentToBank($user, $mode, $label, $accountid, $emetteur_nom, $emetteur_banque) { - global $conf; + global $conf, $langs; // Clean data $this->num_payment = trim($this->num_payment ? $this->num_payment : $this->num_paiement); $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); diff --git a/htdocs/salaries/class/salary.class.php b/htdocs/salaries/class/salary.class.php index 1f4d2920914..8949313ecb0 100644 --- a/htdocs/salaries/class/salary.class.php +++ b/htdocs/salaries/class/salary.class.php @@ -1,7 +1,7 @@ - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2021 Gauthier VERDOL +/* Copyright (C) 2011-2022 Alexandre Spangaro + * Copyright (C) 2014 Juanjo Menent + * 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 @@ -56,8 +56,9 @@ class Salary extends CommonObject public $datep; public $datev; - public $amount; + public $salary; + public $amount; /** * @var int ID */ @@ -93,6 +94,10 @@ class Salary extends CommonObject */ public $user; + /** + * 1 if salary paid COMPLETELY, 0 otherwise (do not use it anymore, use statut and close_code) + */ + public $paye; const STATUS_UNPAID = 0; const STATUS_PAID = 1; @@ -217,8 +222,6 @@ class Salary extends CommonObject $sql .= " s.fk_user_author,"; $sql .= " s.fk_user_modif,"; $sql .= " s.fk_account"; - /*$sql .= " b.fk_type,"; - $sql .= " b.rappro";*/ $sql .= " FROM ".MAIN_DB_PREFIX."salary as s"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON s.fk_bank = b.rowid"; @@ -230,28 +233,26 @@ class Salary extends CommonObject if ($this->db->num_rows($resql)) { $obj = $this->db->fetch_object($resql); - $this->id = $obj->rowid; + $this->id = $obj->rowid; $this->ref = $obj->rowid; $this->tms = $this->db->jdate($obj->tms); - $this->fk_user = $obj->fk_user; + $this->fk_user = $obj->fk_user; $this->datep = $this->db->jdate($obj->datep); $this->datev = $this->db->jdate($obj->datev); - $this->amount = $obj->amount; - $this->fk_project = $obj->fk_project; - $this->type_payment = $obj->fk_typepayment; + $this->amount = $obj->amount; + $this->fk_project = $obj->fk_project; + $this->type_payment = $obj->fk_typepayment; $this->label = $obj->label; $this->datesp = $this->db->jdate($obj->datesp); $this->dateep = $this->db->jdate($obj->dateep); $this->note = $obj->note; $this->paye = $obj->paye; - $this->fk_bank = $obj->fk_bank; - $this->fk_user_author = $obj->fk_user_author; - $this->fk_user_modif = $obj->fk_user_modif; - $this->fk_account = $this->accountid = $obj->fk_account; - $this->fk_type = $obj->fk_type; - $this->rappro = $obj->rappro; + $this->fk_bank = $obj->fk_bank; + $this->fk_user_author = $obj->fk_user_author; + $this->fk_user_modif = $obj->fk_user_modif; + $this->fk_account = $this->accountid = $obj->fk_account; - // Retreive all extrafield + // Retrieve all extrafield // fetch optionals attributes and labels $this->fetch_optionals(); } @@ -371,12 +372,12 @@ class Salary extends CommonObject $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")); return -5; } - /* if (!empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) + /* if (isModEnabled("banque") && (empty($this->accountid) || $this->accountid <= 0)) { $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Account")); 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; @@ -596,7 +597,7 @@ class Salary extends CommonObject */ public function info($id) { - $sql = 'SELECT ps.rowid, ps.datec, ps.tms, ps.fk_user_author, ps.fk_user_modif'; + $sql = 'SELECT ps.rowid, ps.datec, ps.tms as datem, ps.fk_user_author, ps.fk_user_modif'; $sql .= ' FROM '.MAIN_DB_PREFIX.'salary as ps'; $sql .= ' WHERE ps.rowid = '.((int) $id); @@ -607,19 +608,11 @@ class Salary 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/salaries/document.php b/htdocs/salaries/document.php index 045b77ca0a4..163042dbeb8 100644 --- a/htdocs/salaries/document.php +++ b/htdocs/salaries/document.php @@ -30,12 +30,13 @@ * \brief Page of linked files onto salaries */ +// 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/salaries.lib.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.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'; } @@ -132,7 +133,7 @@ if ($action == 'setlabel' && $user->rights->salaries->write) { */ $form = new Form($db); -if (!empty($conf->projet->enabled)) $formproject = new FormProjets($db); +if (isModEnabled('project')) $formproject = new FormProjets($db); $title = $langs->trans('Salary')." - ".$langs->trans('Documents'); $help_url = ""; @@ -176,7 +177,7 @@ if ($object->id) { $morehtmlref .= '
    '.$langs->trans('Employee').' : '.$userstatic->getNomUrl(-1); // Project - if (!empty($conf->projet->enabled)) { + if (isModEnabled('project')) { $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->salaries->write) { if ($action != 'classify') { @@ -191,7 +192,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, -1, $object->fk_project, 'none', 0, 0, 0, 1); } } else { if (!empty($object->fk_project)) { diff --git a/htdocs/salaries/info.php b/htdocs/salaries/info.php index a43d9010d8d..e16493ddc91 100644 --- a/htdocs/salaries/info.php +++ b/htdocs/salaries/info.php @@ -24,11 +24,12 @@ * \brief Page with info about salaries contribution */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.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'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } @@ -100,7 +101,7 @@ if ($action == 'setlabel' && $user->rights->salaries->write) { * View */ -if (!empty($conf->projet->enabled)) $formproject = new FormProjets($db); +if (isModEnabled('project')) $formproject = new FormProjets($db); $title = $langs->trans('Salary')." - ".$langs->trans('Info'); $help_url = ""; @@ -139,7 +140,7 @@ if ($action != 'editlabel') { $morehtmlref .= '
    '.$langs->trans('Employee').' : '.$userstatic->getNomUrl(-1); // Project -if (!empty($conf->projet->enabled)) { +if (isModEnabled('project')) { $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->salaries->write) { if ($action != 'classify') { diff --git a/htdocs/salaries/list.php b/htdocs/salaries/list.php index 4f7ea9d777c..639879f8e17 100644 --- a/htdocs/salaries/list.php +++ b/htdocs/salaries/list.php @@ -1,8 +1,8 @@ - * Copyright (C) 2015-2016 Laurent Destailleur - * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2021 Gauthier VERDOL +/* Copyright (C) 2011-2022 Alexandre Spangaro + * Copyright (C) 2015-2016 Laurent Destailleur + * Copyright (C) 2015 Jean-François Ferry + * 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 @@ -24,10 +24,11 @@ * \brief List of salaries payments */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -40,7 +41,7 @@ $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk $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 +$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') @@ -90,22 +91,10 @@ $search_date_end_to = dol_mktime(23, 59, 59, GETPOST('search_date_end_tomonth', $search_amount = GETPOST('search_amount', 'alpha'); $search_account = GETPOST('search_account', 'int'); $search_status = GETPOST('search_status', 'int'); +$search_type_id = GETPOST('search_type_id', 'int'); $filtre = GETPOST("filtre", 'restricthtml'); -if (!GETPOST('search_type_id', 'int')) { - $newfiltre = str_replace('filtre=', '', $filtre); - $filterarray = explode('-', $newfiltre); - foreach ($filterarray as $val) { - $part = explode(':', $val); - if ($part[0] == 's.fk_typepayment') { - $search_type_id = $part[1]; - } - } -} else { - $search_type_id = GETPOST('search_type_id', 'int'); -} - $childids = $user->getAllChildIds(1); // Initialize array of search criterias @@ -446,11 +435,11 @@ print ''; // Type print ''; -$form->select_types_paiements($search_type_id, 'search_type_id', '', 0, 1, 1, 16); +print $form->select_types_paiements($search_type_id, 'search_type_id', '', 0, 1, 1, 16, 1, '', 1); print ''; // Bank account -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { print ''; $form->select_comptes($search_account, 'search_account', 0, '', 1); print ''; @@ -488,7 +477,7 @@ print_liste_field_titre("DateStart", $_SERVER["PHP_SELF"], "s.datesp,s.rowid", " print_liste_field_titre("DateEnd", $_SERVER["PHP_SELF"], "s.dateep,s.rowid", "", $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("Employee", $_SERVER["PHP_SELF"], "u.lastname", "", $param, "", $sortfield, $sortorder); print_liste_field_titre("DefaultPaymentMode", $_SERVER["PHP_SELF"], "type", "", $param, 'class="left"', $sortfield, $sortorder); -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { print_liste_field_titre("DefaultBankAccount", $_SERVER["PHP_SELF"], "ba.label", "", $param, "", $sortfield, $sortorder); } print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "s.amount", "", $param, 'class="right"', $sortfield, $sortorder); @@ -506,7 +495,7 @@ print ''."\n"; // Detect if we need a fetch on each output line $needToFetchEachLine = 0; -if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 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 @@ -519,6 +508,9 @@ if (is_array($extrafields->attributes[$object->table_element]['computed']) && co $i = 0; $total = 0; $totalarray = array(); +$totalarray['nbfield'] = 0; +$totalarray['val'] = array(); +$totalarray['val']['totalttcfield'] = 0; while ($i < ($limit ? min($num, $limit) : $num)) { $obj = $db->fetch_object($resql); if (empty($obj)) { @@ -586,7 +578,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) { } // Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { print ''; if ($obj->fk_account > 0) { //$accountstatic->fetch($obj->fk_bank); @@ -600,7 +592,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) { $accountstatic->account_number = $obj->account_number; $accountstatic->clos = $obj->clos; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountstatic->account_number = $obj->account_number; $accountingjournal = new AccountingJournal($db); @@ -672,7 +664,7 @@ if ($num == 0) { } }*/ $colspan = 9; - if (!empty($conf->banque->enabled)) { $colspan++; } + if (isModEnabled("banque")) { $colspan++; } print ''.$langs->trans("NoRecordFound").''; } diff --git a/htdocs/salaries/paiement_salary.php b/htdocs/salaries/paiement_salary.php index cfca26efca4..30279ee3538 100644 --- a/htdocs/salaries/paiement_salary.php +++ b/htdocs/salaries/paiement_salary.php @@ -23,6 +23,7 @@ * \brief Page to add payment of a salary */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; @@ -77,7 +78,7 @@ if ($action == 'add_payment' || ($action == 'confirm_paiement' && $confirm == 'y $error++; $action = 'create'; } - if (!empty($conf->banque->enabled) && !(GETPOST("accountid", 'int') > 0)) { + if (isModEnabled("banque") && !(GETPOST("accountid", 'int') > 0)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToDebit")), null, 'errors'); $error++; $action = 'create'; diff --git a/htdocs/salaries/payment_salary/card.php b/htdocs/salaries/payment_salary/card.php index 9e5a55563e4..2d295a23131 100644 --- a/htdocs/salaries/payment_salary/card.php +++ b/htdocs/salaries/payment_salary/card.php @@ -26,12 +26,13 @@ * \remarks Fichier presque identique a fournisseur/paiement/card.php */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.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)) require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page $langs->loadLangs(array('bills', 'banks', 'companies', 'salaries')); @@ -111,7 +112,7 @@ if ($action == 'delete') { /* if ($action == 'valide') { - $facid = $_GET['facid']; + $facid = GETPOST('facid', 'int'); print $form->formconfirm('card.php?id='.$object->id.'&facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2); } @@ -152,7 +153,7 @@ print ''.$langs->trans('Amount').''.price($object-> print ''.$langs->trans('Note').''.nl2br($object->note).''; // Bank account -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { if ($object->bank_account) { $bankline = new AccountLine($db); $bankline->fetch($object->bank_line); diff --git a/htdocs/salaries/payments.php b/htdocs/salaries/payments.php index 58f5546216f..8fcc7183dae 100644 --- a/htdocs/salaries/payments.php +++ b/htdocs/salaries/payments.php @@ -1,8 +1,8 @@ - * Copyright (C) 2015-2016 Laurent Destailleur - * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2021 Gauthier VERDOL +/* Copyright (C) 2011-2022 Alexandre Spangaro + * Copyright (C) 2015-2016 Laurent Destailleur + * Copyright (C) 2015 Jean-François Ferry + * 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 @@ -24,11 +24,12 @@ * \brief List of salaries payments */ +// Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salary.class.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; } @@ -234,7 +235,7 @@ $sql .= " ".MAIN_DB_PREFIX."user as u"; $sql .= " WHERE u.rowid = sal.fk_user"; $sql .= " AND s.entity IN (".getEntity('payment_salaries').")"; if (empty($user->rights->salaries->readall)) { - $sql .= " AND s.fk_user IN (".$db->sanitize(join(',', $childids)).")"; + $sql .= " AND sal.fk_user IN (".$db->sanitize(join(',', $childids)).")"; } // Search criteria @@ -391,7 +392,9 @@ if (!empty($socid)) { } $newcardbutton = dolGetButtonTitle($langs->trans('NewSalaryPayment'), '', 'fa fa-plus-circle', $url, '', $user->rights->salaries->write); -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $totalnboflines, 'object_payment', 0, $newcardbutton, '', $limit, 0, 0, 1); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_payment', 0, $newcardbutton, '', $limit, 0, 0, 1); + +$moreforfilter = ''; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; //$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields @@ -441,12 +444,12 @@ print ''; -$form->select_types_paiements($search_type_id, 'search_type_id', '', 0, 1, 1, 16); +print $form->select_types_paiements($search_type_id, 'search_type_id', '', 0, 1, 1, 16, 1, '', 1); print ''; // Chq number print ''; -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { // Bank transaction print ''; print ''; @@ -487,7 +490,7 @@ print_liste_field_titre("DatePayment", $_SERVER["PHP_SELF"], "s.datep,s.rowid", print_liste_field_titre("Employee", $_SERVER["PHP_SELF"], "u.rowid", "", $param, "", $sortfield, $sortorder); print_liste_field_titre("PaymentMode", $_SERVER["PHP_SELF"], "pst.code", "", $param, 'class="left"', $sortfield, $sortorder); print_liste_field_titre("Numero", $_SERVER["PHP_SELF"], "s.num_payment", "", $param, '', $sortfield, $sortorder, '', 'ChequeOrTransferNumber'); -if (!empty($conf->banque->enabled)) { +if (isModEnabled("banque")) { print_liste_field_titre("BankTransactionLine", $_SERVER["PHP_SELF"], "s.fk_bank", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("BankAccount", $_SERVER["PHP_SELF"], "ba.label", "", $param, "", $sortfield, $sortorder); } @@ -505,7 +508,7 @@ print ''."\n"; // Detect if we need a fetch on each output line $needToFetchEachLine = 0; -if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 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++; @@ -602,7 +605,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) { } // Account - if (!empty($conf->banque->enabled)) { + if (isModEnabled("banque")) { // Bank transaction print ''; $accountlinestatic->id = $obj->fk_bank; @@ -623,7 +626,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) { $accountstatic->currency_code = $langs->trans("Currency".$obj->currency_code); $accountstatic->clos = $obj->clos; - if (!empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { $accountstatic->account_number = $obj->account_number; $accountingjournal = new AccountingJournal($db); diff --git a/htdocs/salaries/stats/index.php b/htdocs/salaries/stats/index.php index cb8eb14a05b..4dfd0c84e0c 100644 --- a/htdocs/salaries/stats/index.php +++ b/htdocs/salaries/stats/index.php @@ -23,6 +23,7 @@ * \brief Page for statistics of module salaries */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salariesstats.class.php'; @@ -74,6 +75,10 @@ dol_mkdir($dir); $useridtofilter = $userid; // Filter from parameters +if (empty($user->rights->salaries->readall) && empty($useridtofilter)) { + $useridtofilter = $user->getAllChildIds(1); +} + $stats = new SalariesStats($db, $socid, $useridtofilter); @@ -204,7 +209,7 @@ print ''.$langs->tra // User print ''.$langs->trans("Employee").''; print img_picto('', 'user', 'class="pictofixedwidth"'); -print $form->select_dolusers(($userid ? $userid : -1), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'widthcentpercentminusx maxwidth300'); +print $form->select_dolusers(($userid ? $userid : -1), 'userid', 1, '', 0, empty($user->rights->salaries->readall) ? 'hierarchyme' : '', '', 0, 0, 0, '', 0, '', 'widthcentpercentminusx maxwidth300'); print ''; // Year print ''.$langs->trans("Year").''; diff --git a/htdocs/societe/admin/contact_extrafields.php b/htdocs/societe/admin/contact_extrafields.php index 6607efa554d..dbd51ce1aac 100644 --- a/htdocs/societe/admin/contact_extrafields.php +++ b/htdocs/societe/admin/contact_extrafields.php @@ -24,6 +24,7 @@ * \brief Page to setup extra fields of contact */ +// 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'; @@ -83,7 +84,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/societe/admin/societe.php b/htdocs/societe/admin/societe.php index 2fb9285379f..76fd9297e2b 100644 --- a/htdocs/societe/admin/societe.php +++ b/htdocs/societe/admin/societe.php @@ -25,6 +25,7 @@ * \brief Third party module 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/company.lib.php'; @@ -51,19 +52,15 @@ $formcompany = new FormCompany($db); include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'setcodeclient') { - if (dolibarr_set_const($db, "SOCIETE_CODECLIENT_ADDON", $value, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; - } else { + $result = dolibarr_set_const($db, "SOCIETE_CODECLIENT_ADDON", $value, 'chaine', 0, '', $conf->entity); + if ($result <= 0) { dol_print_error($db); } } if ($action == 'setcodecompta') { - if (dolibarr_set_const($db, "SOCIETE_CODECOMPTA_ADDON", $value, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; - } else { + $result = dolibarr_set_const($db, "SOCIETE_CODECOMPTA_ADDON", $value, 'chaine', 0, '', $conf->entity); + if ($result <= 0) { dol_print_error($db); } } @@ -273,10 +270,8 @@ if ($action == 'setprofid') { $status = GETPOST('status', 'alpha'); $idprof = "SOCIETE_".$value."_UNIQUE"; - if (dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity) > 0) { - //header("Location: ".$_SERVER["PHP_SELF"]); - //exit; - } else { + $result = dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity); + if ($result <= 0) { dol_print_error($db); } } @@ -286,10 +281,8 @@ if ($action == 'setprofidmandatory') { $status = GETPOST('status', 'alpha'); $idprof = "SOCIETE_".$value."_MANDATORY"; - if (dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity) > 0) { - //header("Location: ".$_SERVER["PHP_SELF"]); - //exit; - } else { + $result = dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity); + if ($result <= 0) { dol_print_error($db); } } @@ -299,10 +292,8 @@ if ($action == 'setprofidinvoicemandatory') { $status = GETPOST('status', 'alpha'); $idprof = "SOCIETE_".$value."_INVOICE_MANDATORY"; - if (dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity) > 0) { - //header("Location: ".$_SERVER["PHP_SELF"]); - //exit; - } else { + $result = dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity); + if ($result <= 0) { dol_print_error($db); } } @@ -311,10 +302,8 @@ if ($action == 'setprofidinvoicemandatory') { if ($action == 'sethideinactivethirdparty') { $status = GETPOST('status', 'alpha'); - if (dolibarr_set_const($db, "COMPANY_HIDE_INACTIVE_IN_COMBOBOX", $status, 'chaine', 0, '', $conf->entity) > 0) { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; - } else { + $result = dolibarr_set_const($db, "COMPANY_HIDE_INACTIVE_IN_COMBOBOX", $status, 'chaine', 0, '', $conf->entity); + if ($result <= 0) { dol_print_error($db); } } @@ -331,6 +320,7 @@ if ($action == 'setonsearchandlistgooncustomerorsuppliercard') { } } + /* * View */ @@ -417,7 +407,7 @@ foreach ($arrayofmodules as $file => $modCodeTiers) { print img_picto($langs->trans("Activated"), 'switch_on'); print "\n"; } else { - $disabled = (!empty($conf->multicompany->enabled) && (is_object($mc) && !empty($mc->sharings['referent']) && $mc->sharings['referent'] != $conf->entity) ? true : false); + $disabled = (isModEnabled('multicompany') && (is_object($mc) && !empty($mc->sharings['referent']) && $mc->sharings['referent'] != $conf->entity) ? true : false); print ''; if (!$disabled) { print ''; @@ -575,7 +565,7 @@ foreach ($dirsociete as $dirroot) { if ($modulequalified) { print ''; - print $module->name; + print dol_escape_htmltag($module->name); print "\n"; if (method_exists($module, 'info')) { print $module->info($langs); @@ -589,7 +579,7 @@ foreach ($dirsociete as $dirroot) { print "\n"; //if ($conf->global->COMPANY_ADDON_PDF != "$name") //{ - print 'scandir.'&label='.urlencode($module->name).'">'; + print 'scandir.'&label='.urlencode($module->name).'">'; print img_picto($langs->trans("Enabled"), 'switch_on'); print ''; //} @@ -605,7 +595,7 @@ foreach ($dirsociete as $dirroot) { print ""; } else { print ''."\n"; - print 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; + print 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; print ""; } } @@ -626,7 +616,7 @@ foreach ($dirsociete as $dirroot) { // Preview print ''; if ($module->type == 'pdf') { - $linkspec = ''.img_object($langs->trans("Preview"), 'pdf').''; + $linkspec = ''.img_object($langs->trans("Preview"), 'pdf').''; } else { $linkspec = img_object($langs->trans("PreviewNotAvailable"), 'generic'); } @@ -724,7 +714,7 @@ foreach ($profid as $key => $val) { $i++; } -if ($conf->accounting->enabled) { +if (isModEnabled('accounting')) { print ''; print ''.$langs->trans('CustomerAccountancyCodeShort')."\n"; print ''; @@ -864,7 +854,7 @@ if (!empty($conf->global->CONTACT_SHOW_EMAIL_PHONE_TOWN_SELECTLIST)) { print ''; print ''; -if (!empty($conf->expedition->enabled)) { +if (isModEnabled("expedition")) { if (getDolGlobalInt('MAIN_FEATURES_LEVEL') > 0) { // Visible on experimental only because seems to not be implemented everywhere (only on proposal) print ''; print ''.$langs->trans("AskForPreferredShippingMethod").''; diff --git a/htdocs/societe/admin/societe_extrafields.php b/htdocs/societe/admin/societe_extrafields.php index a785b95c892..8ba7e49d968 100644 --- a/htdocs/societe/admin/societe_extrafields.php +++ b/htdocs/societe/admin/societe_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/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -83,7 +84,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php index 1aa7093299d..3a4ca2df6f5 100644 --- a/htdocs/societe/agenda.php +++ b/htdocs/societe/agenda.php @@ -27,12 +27,15 @@ * \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'; -$langs->loadLangs(array("companies", "bills", "propal", "orders")); +// Load translation files required by the page +$langs->loadLangs(array('agenda', 'bills', 'companies', 'orders', 'propal')); + if (GETPOST('actioncode', 'array')) { $actioncode = GETPOST('actioncode', 'array', 3); @@ -42,6 +45,7 @@ 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'); // Security check @@ -147,7 +151,7 @@ if ($socid > 0) { $objcon = new stdClass(); $out = ''; - $permok = $user->rights->agenda->myactions->create; + $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 : '')); @@ -157,13 +161,13 @@ if ($socid > 0) { } $newcardbutton = ''; - if (!empty($conf->agenda->enabled)) { + if (isModEnabled('agenda')) { if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); } } - if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { + if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { print '
    '; $param = '&socid='.urlencode($socid); diff --git a/htdocs/societe/ajax/ajaxcompanies.php b/htdocs/societe/ajax/ajaxcompanies.php index cbbcb14f361..08d914d562a 100644 --- a/htdocs/societe/ajax/ajaxcompanies.php +++ b/htdocs/societe/ajax/ajaxcompanies.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.'/societe/class/societe.class.php'; @@ -125,7 +123,7 @@ if (GETPOST('newcompany') || GETPOST('socid', 'int') || GETPOST('id_fourn', 'int if ($resql) { while ($row = $db->fetch_array($resql)) { $label = ''; - if (! empty($conf->global->SOCIETE_ADD_REF_IN_LIST)) { + if (!empty($conf->global->SOCIETE_ADD_REF_IN_LIST)) { if (($row['client']) && (!empty($row['code_client']))) { $label = $row['code_client'].' - '; } diff --git a/htdocs/societe/ajax/company.php b/htdocs/societe/ajax/company.php index 9dfe3909393..7bdfe6e0e34 100644 --- a/htdocs/societe/ajax/company.php +++ b/htdocs/societe/ajax/company.php @@ -37,10 +37,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.'/societe/class/societe.class.php'; @@ -50,7 +48,8 @@ $outjson = (GETPOST('outjson', 'int') ? GETPOST('outjson', 'int') : 0); $action = GETPOST('action', 'aZ09'); $id = GETPOST('id', 'int'); $excludeids = GETPOST('excludeids', 'intcomma'); -$showtype = GETPOST('showtype', 'int'); +$showtype = GETPOSTINT('showtype'); +$showcode = GETPOSTINT('showcode'); $object = new Societe($db); if ($id > 0) { @@ -109,7 +108,6 @@ if (!empty($action) && $action == 'fetch' && !empty($id)) { // When used from jQuery, the search term is added as GET param "term". $searchkey = (($id && GETPOST($id, 'alpha')) ? GETPOST($id, 'alpha') : (($htmlname && GETPOST($htmlname, 'alpha')) ?GETPOST($htmlname, 'alpha') : '')); - if (!$searchkey) { return; } @@ -124,7 +122,7 @@ if (!empty($action) && $action == 'fetch' && !empty($id)) { $excludeids = array(); } - $arrayresult = $form->select_thirdparty_list(0, $htmlname, $filter, 1, $showtype, 0, null, $searchkey, $outjson, 0, 'minwidth100', '', false, $excludeids); + $arrayresult = $form->select_thirdparty_list(0, $htmlname, $filter, 1, $showtype, 0, null, $searchkey, $outjson, 0, 'minwidth100', '', false, $excludeids, $showcode); $db->close(); diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php index 4ef3d64a424..e71ee255981 100644 --- a/htdocs/societe/canvas/actions_card_common.class.php +++ b/htdocs/societe/canvas/actions_card_common.class.php @@ -186,7 +186,7 @@ abstract class ActionsCardCommon $s = $modCodeClient->getToolTip($langs, $this->object, 0); $this->tpl['help_customercode'] = $form->textwithpicto('', $s, 1); - 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->tpl['supplier_enabled'] = 1; // Load object modCodeFournisseur @@ -342,7 +342,7 @@ abstract class ActionsCardCommon } // Linked member - if (!empty($conf->adherent->enabled)) { + if (isModEnabled('adherent')) { $langs->load("members"); $adh = new Adherent($this->db); $result = $adh->fetch('', '', $this->object->id); diff --git a/htdocs/societe/canvas/company/tpl/card_create.tpl.php b/htdocs/societe/canvas/company/tpl/card_create.tpl.php index 2deb1dba8b1..58752a1bc7b 100644 --- a/htdocs/societe/canvas/company/tpl/card_create.tpl.php +++ b/htdocs/societe/canvas/company/tpl/card_create.tpl.php @@ -105,7 +105,7 @@ if (empty($conf) || !is_object($conf)) { barcode->enabled)) { ?> +if (isModEnabled('barcode')) { ?> trans('Gencod'); ?> diff --git a/htdocs/societe/canvas/company/tpl/card_edit.tpl.php b/htdocs/societe/canvas/company/tpl/card_edit.tpl.php index 35e38a10f0e..eb300cfdd4e 100644 --- a/htdocs/societe/canvas/company/tpl/card_edit.tpl.php +++ b/htdocs/societe/canvas/company/tpl/card_edit.tpl.php @@ -120,7 +120,7 @@ if ($this->control->tpl['fournisseur']) { } } -if (!empty($conf->barcode->enabled)) { ?> +if (isModEnabled('barcode')) { ?> trans('Gencod'); ?> diff --git a/htdocs/societe/canvas/company/tpl/card_view.tpl.php b/htdocs/societe/canvas/company/tpl/card_view.tpl.php index e57421bf8b5..d1ba18f82fd 100644 --- a/htdocs/societe/canvas/company/tpl/card_view.tpl.php +++ b/htdocs/societe/canvas/company/tpl/card_view.tpl.php @@ -79,7 +79,7 @@ print dol_get_fiche_head($head, 'card', $langs->trans("ThirdParty"), 0, 'company -barcode->enabled)) { ?> + trans('Gencod'); ?> control->tpl['barcode']; ?> @@ -247,7 +247,7 @@ for ($i = 1; $i <= 4; $i++) { control->tpl['sales_representatives']; ?> -adherent->enabled)) { ?> + trans("LinkedToDolibarrMember"); ?> control->tpl['linked_member']; ?> diff --git a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php index 0010b87ff90..1c8b51dac7c 100644 --- a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php @@ -113,7 +113,7 @@ if (empty($conf) || !is_object($conf)) { barcode->enabled)) { ?> +if (isModEnabled('barcode')) { ?> trans('Gencod'); ?> diff --git a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php index 7a43f256b45..56192bbe4e7 100644 --- a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php @@ -117,7 +117,7 @@ if ($this->control->tpl['fournisseur']) { } ?> -barcode->enabled)) { ?> + trans('Gencod'); ?> diff --git a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php index 16cd9f1e637..98979c917d4 100644 --- a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php @@ -74,7 +74,7 @@ if ($this->control->tpl['action_delete']) { -barcode->enabled)) { ?> + trans('Gencod'); ?> control->tpl['barcode']; ?> @@ -174,7 +174,7 @@ if ($this->control->tpl['action_delete']) { control->tpl['sales_representatives']; ?> -adherent->enabled)) { ?> + trans("LinkedToDolibarrMember"); ?> control->tpl['linked_member']; ?> diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 7d28edb1dc9..bdc48872c03 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -34,6 +34,8 @@ * \brief Third party card page */ + +// 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'; @@ -45,28 +47,31 @@ 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'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { 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'; } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; } -if (! empty($conf->eventorganization->enabled)) { +if (isModEnabled('eventorganization')) { require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; } +// Load translation files required by the page + $langs->loadLangs(array("companies", "commercial", "bills", "banks", "users")); -if (!empty($conf->adherent->enabled)) { + +if (isModEnabled('adherent')) { $langs->load("members"); } -if (!empty($conf->categorie->enabled)) { +if (isModEnabled('categorie')) { $langs->load("categories"); } if (!empty($conf->incoterm->enabled)) { @@ -75,16 +80,21 @@ if (!empty($conf->incoterm->enabled)) { if (!empty($conf->notification->enabled)) { $langs->load("mails"); } -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $langs->load("products"); } $error = 0; $errors = array(); + +// Get parameters $action = (GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view'); $cancel = GETPOST('cancel', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha'); -$confirm = GETPOST('confirm', 'alpha'); +$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); +$backtopagejsfields = GETPOST('backtopagejsfields', 'alpha'); +$dol_openinpopup = GETPOST('dol_openinpopup', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); $socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int'); if ($user->socid) { @@ -93,6 +103,7 @@ if ($user->socid) { if (empty($socid) && $action == 'view') { $action = 'create'; } + $id = $socid; $object = new Societe($db); @@ -125,26 +136,17 @@ if (!empty($canvas)) { $objcanvas->getCanvas('thirdparty', 'card', $canvas); } -$permissiontoread = $user->rights->societe->lire; -$permissiontoadd = $user->rights->societe->creer; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php +// Permissions +$permissiontoread = $user->rights->societe->lire; +$permissiontoadd = $user->rights->societe->creer; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $permissiontodelete = $user->rights->societe->supprimer || ($permissiontoadd && isset($object->status) && $object->status == 0); -$permissionnote = $user->rights->societe->creer; // Used by the include of actions_setnotes.inc.php -$permissiondellink = $user->rights->societe->creer; // Used by the include of actions_dellink.inc.php -$upload_dir = $conf->societe->multidir_output[isset($object->entity) ? $object->entity : 1]; +$permissionnote = $user->rights->societe->creer; // Used by the include of actions_setnotes.inc.php +$permissiondellink = $user->rights->societe->creer; // Used by the include of actions_dellink.inc.php +$upload_dir = $conf->societe->multidir_output[isset($object->entity) ? $object->entity : 1]; // Security check $result = restrictedArea($user, 'societe', $socid, '&societe', '', 'fk_soc', 'rowid', 0); -/* -if ($object->id > 0) { - if ($object->client == 0 && $object->fournisseur > 0) { - if (!empty($user->rights->fournisseur->lire)) { - accessforbidden(); - } - } -} -*/ - /* @@ -260,6 +262,7 @@ if (empty($reshook)) { // Update $result = $object->update($object->id, $user, 0, 1, 1, 'merge'); + if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); $error++; @@ -413,21 +416,21 @@ if (empty($reshook)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ThirdPartyName")), null, 'errors'); $error++; } - if (GETPOST('client') < 0) { + if (GETPOST('client', 'int') && GETPOST('client', 'int') < 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ProspectCustomer")), null, 'errors'); $error++; } - if (GETPOST('fournisseur') < 0) { + if (GETPOSTISSET('fournisseur') && GETPOST('fournisseur', 'int') < 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Supplier")), null, 'errors'); $error++; } - if (!empty($conf->mailing->enabled) && !empty($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS) && $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2 && GETPOST('contact_no_email', 'int')==-1 && !empty(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL))) { + if (isModEnabled('mailing') && !empty($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS) && $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2 && GETPOST('contact_no_email', 'int')==-1 && !empty(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL))) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("No_Email")), null, 'errors'); } - if (!empty($conf->mailing->enabled) && GETPOST("private", 'int') == 1 && !empty($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS) && $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2 && GETPOST('contact_no_email', 'int')==-1 && !empty(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL))) { + if (isModEnabled('mailing') && GETPOST("private", 'int') == 1 && !empty($conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS) && $conf->global->MAILING_CONTACT_DEFAULT_BULK_STATUS == 2 && GETPOST('contact_no_email', 'int')==-1 && !empty(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL))) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("No_Email")), null, 'errors'); } @@ -461,7 +464,7 @@ if (empty($reshook)) { $object->state_id = GETPOST('state_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'); @@ -472,6 +475,7 @@ if (empty($reshook)) { $object->phone = GETPOST('phone', 'alpha'); $object->fax = GETPOST('fax', 'alpha'); $object->email = trim(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL)); + $object->no_email = GETPOST("no_email", "int"); $object->url = trim(GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL)); $object->idprof1 = trim(GETPOST('idprof1', 'alphanohtml')); $object->idprof2 = trim(GETPOST('idprof2', 'alphanohtml')); @@ -538,7 +542,7 @@ if (empty($reshook)) { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); } @@ -555,9 +559,8 @@ if (empty($reshook)) { } //var_dump($object->array_languages);exit; - if (GETPOST('deletephoto')) { - $object->logo = ''; - } elseif (!empty($_FILES['photo']['name'])) { + if (!empty($_FILES['photo']['name'])) { + $current_logo = $object->logo; $object->logo = dol_sanitizeFileName($_FILES['photo']['name']); } @@ -608,6 +611,16 @@ if (empty($reshook)) { $result = $object->create($user); + if (empty($error) && !empty($conf->mailing->enabled) && !empty($object->email) && $object->no_email == 1) { + // Add mass emailing flag into table mailing_unsubscribe + $result = $object->setNoEmail($object->no_email); + if ($result < 0) { + $error++; + $errors = array_merge($errors, ($object->error ? array($object->error) : $object->errors)); + $action = 'create'; + } + } + if ($result >= 0) { if ($object->particulier) { dol_syslog("We ask to create a contact/address too", LOG_DEBUG); @@ -655,7 +668,7 @@ if (empty($reshook)) { $newfile = $dir.'/'.dol_sanitizeFileName($_FILES['photo']['name']); $result = dol_move_uploaded_file($_FILES['photo']['tmp_name'], $newfile, 1); - if (!$result > 0) { + if (!($result > 0)) { $errors[] = "ErrorFailedToSaveFile"; } else { // Create thumbs @@ -696,6 +709,27 @@ if (empty($reshook)) { if ($result >= 0 && !$error) { $db->commit(); + if ($backtopagejsfields) { + llxHeader('', '', ''); + + $tmpbacktopagejsfields = explode(':', $backtopagejsfields); + $dol_openinpopup = $tmpbacktopagejsfields[0]; + + $retstring = ''; + print $retstring; + + llxFooter(); + exit; + } + if (!empty($backtopage)) { $backtopage = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $backtopage); // New method to autoselect project after a New on another form object creation if (preg_match('/\?/', $backtopage)) { @@ -744,6 +778,23 @@ if (empty($reshook)) { $result = $object->update($socid, $user, 1, $object->oldcopy->codeclient_modifiable(), $object->oldcopy->codefournisseur_modifiable(), 'update', 0); + if ($result > 0) { + // Update mass emailing flag into table mailing_unsubscribe + if (GETPOSTISSET('no_email') && $object->email) { + $no_email = GETPOST('no_email', 'int'); + $result = $object->setNoEmail($no_email); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + $action = 'edit'; + } + } + + $action = 'view'; + } else { + setEventMessages($object->error, $object->errors, 'errors'); + $action = 'edit'; + } + if ($result <= 0) { setEventMessages($object->error, $object->errors, 'errors'); $error++; @@ -787,13 +838,20 @@ if (empty($reshook)) { } if ($file_OK) { if (image_format_supported($_FILES['photo']['name']) > 0) { + if ($current_logo != $object->logo) { + $fileimg = $dir.'/'.$current_logo; + $dirthumbs = $dir.'/thumbs'; + dol_delete_file($fileimg); + dol_delete_dir_recursive($dirthumbs); + } + dol_mkdir($dir); if (@is_dir($dir)) { $newfile = $dir.'/'.dol_sanitizeFileName($_FILES['photo']['name']); $result = dol_move_uploaded_file($_FILES['photo']['tmp_name'], $newfile, 1); - if (!$result > 0) { + if (!($result > 0)) { $errors[] = "ErrorFailedToSaveFile"; } else { // Create thumbs @@ -918,7 +976,7 @@ if (empty($reshook)) { // Actions to build doc $id = $socid; - $upload_dir = $conf->societe->multidir_output[$object->entity]; + $upload_dir = !empty($conf->societe->multidir_output[$object->entity])?$conf->societe->multidir_output[$object->entity]:$conf->societe->dir_output; $permissiontoadd = $user->rights->societe->creer; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; } @@ -932,7 +990,7 @@ $form = new Form($db); $formfile = new FormFile($db); $formadmin = new FormAdmin($db); $formcompany = new FormCompany($db); -if (!empty($conf->accounting->enabled)) { +if (isModEnabled('accounting')) { $formaccounting = new FormAccounting($db); } @@ -940,14 +998,17 @@ if ($socid > 0 && empty($object->id)) { $result = $object->fetch($socid); if ($result <= 0) { dol_print_error('', $object->error); + exit(-1); } } $title = $langs->trans("ThirdParty"); +if ($action == 'create') { + $title = $langs->trans("NewThirdParty"); +} if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->name." - ".$langs->trans('Card'); } - $help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas|DE:Modul_Geschäftspartner'; llxHeader('', $title, $help_url); @@ -1026,7 +1087,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->client = 1; } - if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) && (GETPOST("type") == 'f' || (GETPOST("type") == '' && !empty($conf->global->THIRDPARTY_SUPPLIER_BY_DEFAULT)))) { + if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && (GETPOST("type") == 'f' || (GETPOST("type") == '' && !empty($conf->global->THIRDPARTY_SUPPLIER_BY_DEFAULT)))) { $object->fournisseur = 1; } @@ -1051,7 +1112,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->state_id = GETPOST('state_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'); @@ -1122,7 +1183,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $newfile = $dir.'/'.dol_sanitizeFileName($_FILES['photo']['name']); $result = dol_move_uploaded_file($_FILES['photo']['tmp_name'], $newfile, 1); - if (!$result > 0) { + if (!($result > 0)) { $errors[] = "ErrorFailedToSaveFile"; } else { // Create thumbs @@ -1140,6 +1201,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->country = $tmparray['label']; } $object->forme_juridique_code = GETPOST('forme_juridique_code'); + + // We set multicurrency_code if enabled + if (isModEnabled("multicurrency")) { + $object->multicurrency_code = GETPOST('multicurrency_code') ? GETPOST('multicurrency_code') : $conf->currency; + } /* Show create form */ $linkback = ""; @@ -1271,8 +1337,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; // Chrome ignor autocomplete print ''; - print ''; print ''; + print ''; + print ''; print ''; print ''; print ''; @@ -1293,8 +1360,102 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''.$form->editfieldkey('ThirdPartyName', 'name', '', $object, 0).''; } print 'global->SOCIETE_USEPREFIX) ? ' colspan="3"' : '').'>'; + print ''; print $form->widgetForTranslation("name", $object, $permissiontoadd, 'string', 'alpahnohtml', 'minwidth300'); + /* Disabled. Must be implenteted by keeping the input text but calling ajax on a keydown of the input and output + data of duplicate into a div under the input. We need to keep the widgetForTranslation also for some countries. + */ + /* + print ''; + print "\n".' + '; + */ print ''; if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field print ''.$langs->trans('Prefix').''; @@ -1344,8 +1505,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; 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)) - || (!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))) { // Supplier print ''; print ''.$form->editfieldkey('Vendor', 'fournisseur', '', $object, 0, 'string', '', 1).''; @@ -1362,11 +1523,11 @@ 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 ''; - 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 ''; // Barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { print ''; print ''; - print 'browser->layout == 'phone') || empty($conf->mailing->enabled) ? ' colspan="3"' : '').'>'.img_picto('', 'object_email', 'class="pictofixedwidth"').' '; - if (!empty($conf->mailing->enabled) && !empty($conf->global->THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION)) { + print 'browser->layout == 'phone') || !isModEnabled('mailing') ? ' colspan="3"' : '').'>'.img_picto('', 'object_email', 'class="pictofixedwidth"').' '; + if (isModEnabled('mailing') && !empty($conf->global->THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION)) { if ($conf->browser->layout == 'phone') { print ''; } print ''; - print ''; + print ''; } print ''; print ''; print ''; + // Unsubscribe + if (!empty($conf->mailing->enabled)) { + if ($conf->use_javascript_ajax && $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 networks - if (!empty($conf->socialnetworks->enabled)) { + if (isModEnabled('socialnetworks')) { foreach ($socialnetworks as $key => $value) { if ($value['active']) { print ''; @@ -1608,8 +1798,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Capital print ''; print ''; - + if (isModEnabled("multicurrency")) { + print ''.$langs->trans("Currency".$object->multicurrency_code).''; + } else { + print ''.$langs->trans("Currency".$conf->currency).''; + } if (!empty($conf->global->MAIN_MULTILANGS)) { print ''; print ''; print ''; } @@ -1699,7 +1892,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { if (!empty($conf->global->ACCOUNTANCY_USE_PRODUCT_ACCOUNT_ON_THIRDPARTY)) { print '
    '; $tmpcode = $object->code_fournisseur; if (empty($tmpcode) && !empty($modCodeFournisseur->code_auto)) { @@ -1387,7 +1548,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '.$form->editfieldkey('Gencod', 'barcode', '', $object, 0).''; print img_picto('', 'barcode', 'class="pictofixedwidth"'); @@ -1455,20 +1616,49 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Email / Web print '
    '.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '', empty($conf->global->SOCIETE_EMAIL_MANDATORY) ? '' : $conf->global->SOCIETE_EMAIL_MANDATORY).'
    '.$form->editfieldkey($langs->trans('No_Email') .' ('.$langs->trans('Contact').')', 'contact_no_email', '', $object, 0).'browser->layout == 'phone') || empty($conf->mailing->enabled) ? ' colspan="3"' : '').'>'.$form->selectyesno('contact_no_email', (GETPOSTISSET("contact_no_email") ? GETPOST("contact_no_email", 'alpha') : (empty($object->no_email) ? 0 : 1)), 1, false, 1).'browser->layout == 'phone') || !isModEnabled('mailing') ? ' colspan="3"' : '').'>'.$form->selectyesno('contact_no_email', (GETPOSTISSET("contact_no_email") ? GETPOST("contact_no_email", 'alpha') : (empty($object->no_email) ? 0 : 1)), 1, false, 1).'
    '.$form->editfieldkey('Web', 'url', '', $object, 0).''.img_picto('', 'globe', 'class="pictofixedwidth"').'
    '; + 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'); @@ -1627,7 +1820,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 @@ -1644,7 +1837,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); @@ -1653,11 +1846,11 @@ 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 $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1); 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 ''; @@ -2076,7 +2275,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Barcode - if (!empty($conf->barcode->enabled)) { + if (isModEnabled('barcode')) { print ''; print ''; - print ''; + print ''; if ($conf->browser->layout == 'phone') { print ''; } print ''; - print ''; + print ''; // EMail / Web - print ''; - print ''; print ''; - print ''; + print ''; - if (!empty($conf->socialnetworks->enabled)) { + // EMail + print ''; + print ''; + if (!empty($conf->mailing->enabled)) { + $langs->load("mails"); + print ''; + print ''; + } else { + 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])) { @@ -2298,7 +2546,11 @@ 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)) { @@ -2318,7 +2570,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 ''; 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 ''; print ''; print ''; } @@ -2386,7 +2638,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; } //print ''; - print ''; + print ''; print '
    '.$langs->trans("ProductAccountancySellCode").''; @@ -1730,7 +1923,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print dol_get_fiche_end(); - print $form->buttonsSaveCancel("AddThirdParty"); + print $form->buttonsSaveCancel("AddThirdParty", 'Cancel', null, 0, '', $dol_openinpopup); print ''."\n"; } elseif ($action == 'edit') { @@ -1794,7 +1987,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $object->state_id = GETPOST('state_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'); @@ -1805,6 +1998,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'); @@ -1865,6 +2059,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) { @@ -2036,8 +2235,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '.$form->editfieldkey('Supplier', 'fournisseur', '', $object, 0, 'string', '', 1).''; @@ -2047,7 +2246,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'); @@ -2133,29 +2332,78 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // Phone / Fax print '
    '.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).''.img_picto('', 'object_phoning').' '.img_picto('', 'object_phoning', 'class="pictofixedwidth"').'
    '.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).''.img_picto('', 'object_phoning_fax').'
    '.img_picto('', 'object_phoning_fax', 'class="pictofixedwidth"').'
    '.$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'); + print ''.$langs->trans("NbOfEMailingsSend").''.$object->getNbOfEMailings().'
    '; + $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('CustomersCategoriesShort', 'custcats', '', $object, 0).''; @@ -2333,7 +2585,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print "
    '.$form->editfieldkey('SuppliersCategoriesShort', 'suppcats', '', $object, 0).''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, null, null, null, 1); @@ -2349,11 +2601,11 @@ 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 $form->selectMultiCurrency((GETPOSTISSET('multicurrency_code') ? GETPOST('multicurrency_code') : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)), 'multicurrency_code', 1); print '
    '.$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 ''; @@ -2410,7 +2669,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '; print ''; - if (! empty($conf->accounting->enabled)) { + if (isModEnabled('accounting')) { // Accountancy_code_sell print ''; print ''; @@ -2563,7 +2822,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print dol_print_profids($object->$key, 'ProfId'.$i, $object->country_code, 1); if ($object->$key) { if ($object->id_prof_check($i, $object) > 0) { - print '   '.$object->id_prof_url($i, $object); + if (!empty($object->id_prof_url($i, $object))) { + print '   '.$object->id_prof_url($i, $object); + } } else { print ' ('.$langs->trans("ErrorWrongValue").')'; } @@ -2734,7 +2995,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print '
    '.$langs->trans("ProductAccountancySellCode").''; @@ -2531,7 +2790,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)); @@ -2544,7 +2803,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 '
    '; // 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 ''; @@ -2744,7 +3005,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 ''; + // Email + if (!empty($conf->mailing->enabled)) { + $langs->load("mails"); + 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)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -2813,7 +3100,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // Multicurrency - if (!empty($conf->multicurrency->enabled)) { + if (isModEnabled("multicurrency")) { 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 ''; @@ -2934,7 +3237,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)) { @@ -2981,7 +3284,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { } // 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); } @@ -2989,7 +3292,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { $MAXEVENT = 10; - $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt imgforviewmode', DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id); + $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; diff --git a/htdocs/societe/class/api_contacts.class.php b/htdocs/societe/class/api_contacts.class.php index 3e7e1ac2080..e79c39a1955 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,6 +331,10 @@ class Contacts extends DolibarrApi $this->contact->$field = $value; } + 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..f197a1b7024 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -230,6 +230,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 +266,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 +302,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 +435,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 +453,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,7 +522,7 @@ class Thirdparties extends DolibarrApi /** * Delete thirdparty * - * @param int $id Thirparty ID + * @param int $id Thirdparty ID * @return integer */ public function delete($id) @@ -548,7 +560,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'); } @@ -1783,6 +1795,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); @@ -1855,7 +1871,7 @@ class Thirdparties extends DolibarrApi global $conf; if (!DolibarrApiAccess::$user->rights->societe->lire) { - throw new RestException(401); + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login.'. No read permission on thirdparties.'); } if ($rowid === 0) { @@ -1868,7 +1884,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..c3ecbe31ccd 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,7 +237,8 @@ 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); @@ -270,6 +280,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); diff --git a/htdocs/societe/class/companypaymentmode.class.php b/htdocs/societe/class/companypaymentmode.class.php index ba924279ce2..17889026e89 100644 --- a/htdocs/societe/class/companypaymentmode.class.php +++ b/htdocs/societe/class/companypaymentmode.class.php @@ -235,7 +235,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 +329,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 +554,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 25d2831f853..f17efa089e3 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -17,6 +17,7 @@ * Copyright (C) 2019-2020 Josep Lluís Amador * Copyright (C) 2019-2021 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 @@ -209,11 +210,12 @@ class Societe extends CommonObject //'remise_supplier' =>array('type'=>'double', 'label'=>'SupplierDiscount', 'enabled'=>1, 'visible'=>-1, 'position'=>290, 'isameasure'=>1), 'mode_reglement' =>array('type'=>'tinyint(4)', 'label'=>'Mode reglement', 'enabled'=>1, 'visible'=>-1, 'position'=>295), 'cond_reglement' =>array('type'=>'tinyint(4)', 'label'=>'Cond reglement', 'enabled'=>1, 'visible'=>-1, 'position'=>300), + 'deposit_percent' =>array('type'=>'varchar(63)', 'label'=>'DepositPercent', 'enabled'=>1, 'visible'=>-1, 'position'=>301), '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), @@ -230,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), @@ -407,18 +410,40 @@ class Societe extends CommonObject */ public $idprof1; + /** + * @var string Professional ID 1 + * @deprecated + * @see $idprof1 + */ + public $siren; + + /** * Professional ID 2 (Ex: Siret in France) * @var string */ public $idprof2; + /** + * @var string Professional ID 2 + * @deprecated + * @see $idprof2 + */ + public $siret; + /** * Professional ID 3 (Ex: Ape in France) * @var string */ public $idprof3; + /** + * @var string Professional ID 3 + * @deprecated + * @see $idprof3 + */ + public $ape; + /** * Professional ID 4 (Ex: RCS in France) * @var string @@ -482,6 +507,9 @@ class Societe extends CommonObject public $remise_percent; public $remise_supplier_percent; + public $mode_reglement_id; + public $cond_reglement_id; + public $deposit_percent; public $mode_reglement_supplier_id; public $cond_reglement_supplier_id; public $transport_mode_supplier_id; @@ -500,18 +528,19 @@ class Societe extends CommonObject /** * Date of last update - * @var string + * @var integer|string */ public $date_modification; /** * User that made last update - * @var string + * @var User */ public $user_modification; /** - * @var integer|string date_creation + * Date of creation + * @var integer|string */ public $date_creation; @@ -915,8 +944,8 @@ class Societe extends CommonObject $sql .= ", accountancy_code_sell"; } $sql .= ") VALUES ('".$this->db->escape($this->name)."', '".$this->db->escape($this->name_alias)."', ".((int) $this->entity).", '".$this->db->idate($now)."'"; - $sql .= ", ".(!empty($this->typent_id) ? ((int) $this->typent_id) : "null"); $sql .= ", ".(!empty($user->id) ? ((int) $user->id) : "null"); + $sql .= ", ".(!empty($this->typent_id) ? ((int) $this->typent_id) : "null"); $sql .= ", ".(!empty($this->canvas) ? "'".$this->db->escape($this->canvas)."'" : "null"); $sql .= ", ".((int) $this->status); $sql .= ", ".(!empty($this->ref_ext) ? "'".$this->db->escape($this->ref_ext)."'" : "null"); @@ -952,7 +981,7 @@ class Societe extends CommonObject $sql .= ", accountancy_code_sell"; $sql .= ") VALUES ("; $sql .= $this->id; - $sql .= ", ".$conf->entity; + $sql .= ", ".((int) $conf->entity); $sql .= ", '".$this->db->escape($this->accountancy_code_customer)."'"; $sql .= ", '".$this->db->escape($this->accountancy_code_supplier)."'"; $sql .= ", '".$this->db->escape($this->accountancy_code_buy)."'"; @@ -1068,7 +1097,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; @@ -1078,7 +1107,7 @@ class Societe extends CommonObject } } - if (!empty($error)) { + if (empty($error)) { dol_syslog(get_class($this)."::create_individual success"); $this->db->commit(); } else { @@ -1242,7 +1271,6 @@ class Societe extends CommonObject $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); @@ -1251,7 +1279,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); @@ -1384,7 +1412,7 @@ class Societe extends CommonObject } } } - + $this->setUpperOrLowerCase(); if ($result >= 0) { dol_syslog(get_class($this)."::update verify ok or not done"); @@ -1462,6 +1490,7 @@ class Societe extends CommonObject $sql .= ",mode_reglement = ".(!empty($this->mode_reglement_id) ? "'".$this->db->escape($this->mode_reglement_id)."'" : "null"); $sql .= ",cond_reglement = ".(!empty($this->cond_reglement_id) ? "'".$this->db->escape($this->cond_reglement_id)."'" : "null"); + $sql .= ",deposit_percent = ".(!empty($this->deposit_percent) ? "'".$this->db->escape($this->deposit_percent)."'" : "null"); $sql .= ",transport_mode = ".(!empty($this->transport_mode_id) ? "'".$this->db->escape($this->transport_mode_id)."'" : "null"); $sql .= ",mode_reglement_supplier = ".(!empty($this->mode_reglement_supplier_id) ? "'".$this->db->escape($this->mode_reglement_supplier_id)."'" : "null"); $sql .= ",cond_reglement_supplier = ".(!empty($this->cond_reglement_supplier_id) ? "'".$this->db->escape($this->cond_reglement_supplier_id)."'" : "null"); @@ -1532,7 +1561,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"); @@ -1552,6 +1581,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) { @@ -1691,7 +1721,7 @@ class Societe extends CommonObject $sql .= ', spe.accountancy_code_customer as code_compta, spe.accountancy_code_supplier as code_compta_fournisseur, spe.accountancy_code_buy, spe.accountancy_code_sell'; } $sql .= ', s.code_client, s.code_fournisseur, s.parent, s.barcode'; - $sql .= ', s.fk_departement as state_id, s.fk_pays as country_id, s.fk_stcomm, s.mode_reglement, s.cond_reglement, s.transport_mode'; + $sql .= ', s.fk_departement as state_id, s.fk_pays as country_id, s.fk_stcomm, s.mode_reglement, s.cond_reglement, s.deposit_percent, s.transport_mode'; $sql .= ', s.fk_account, s.tva_assuj'; $sql .= ', s.mode_reglement_supplier, s.cond_reglement_supplier, s.transport_mode_supplier'; $sql .= ', s.localtax1_assuj, s.localtax1_value, s.localtax2_assuj, s.localtax2_value, s.fk_prospectlevel, s.default_lang, s.logo, s.logo_squarred'; @@ -1707,7 +1737,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'; @@ -1726,7 +1756,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').'))'; } @@ -1869,6 +1899,7 @@ class Societe extends CommonObject $this->mode_reglement_id = $obj->mode_reglement; $this->cond_reglement_id = $obj->cond_reglement; + $this->deposit_percent = $obj->deposit_percent; $this->transport_mode_id = $obj->transport_mode; $this->mode_reglement_supplier_id = $obj->mode_reglement_supplier; $this->cond_reglement_supplier_id = $obj->cond_reglement_supplier; @@ -2260,7 +2291,7 @@ class Societe extends CommonObject $desc = trim($desc); // Check parameters - if (!$remise > 0) { + if (!($remise > 0)) { $this->error = $langs->trans("ErrorWrongValueForParameter", "1"); return -1; } @@ -2347,7 +2378,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.")"; @@ -2680,10 +2711,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 : '').''; @@ -2712,13 +2743,6 @@ class Societe extends CommonObject if (in_array($target, $target_value)) { $linkclose .= ' target="'.dol_escape_htmltag($target).'"'; } - - /* - $hookmanager->initHooks(array('thirdpartydao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ } $linkstart .= $linkclose.'>'; $linkend = ''; @@ -2762,29 +2786,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; @@ -3767,6 +3792,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; } @@ -3809,6 +3848,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; } @@ -3854,7 +3896,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); @@ -3866,21 +3908,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); @@ -3975,6 +4008,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 /** @@ -3992,12 +4130,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 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 3624f80187d..0c1370f7440 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -4,7 +4,7 @@ * Copyright (C) 2013-2015 Juanjo Menent * Copyright (C) 2015 Marcos García * Copyright (C) 2015-2017 Ferran Marcet - * Copyright (C) 2021 Frédéric France + * Copyright (C) 2021-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,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,15 +84,14 @@ 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')); +$hookmanager->initHooks(array('consumptionthirdparty', 'globalcard')); /* @@ -162,16 +167,16 @@ 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 (!empty($conf->facture->enabled) && $user->rights->facture->lire) { + 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'); } } @@ -199,13 +204,13 @@ if ($object->fournisseur) { $obj = $db->fetch_object($resql); $nbCmdsFourn = $obj->nb; $thirdTypeArray['supplier'] = $langs->trans("supplier"); - if (($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)) { $elementTypeArray['supplier_invoice'] = $langs->transnoentitiesnoconv('SuppliersInvoices'); } - if (($conf->fournisseur->enabled && $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->rights->fournisseur->commande->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && $user->rights->supplier_order->lire)) { $elementTypeArray['supplier_order'] = $langs->transnoentitiesnoconv('SuppliersOrders'); } - if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire) { + if (isModEnabled('supplier_proposal') && $user->rights->supplier_proposal->lire) { $elementTypeArray['supplier_proposal'] = $langs->transnoentitiesnoconv('SupplierProposals'); } } @@ -361,7 +366,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)."%'"; } @@ -443,7 +449,7 @@ if ($sql_select) { print ''; print '
    '; print ''; @@ -644,9 +650,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 (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { - $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 ''; diff --git a/htdocs/societe/contact.php b/htdocs/societe/contact.php index a09c9751f1f..313947cbb0e 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,12 +43,14 @@ 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)) { @@ -59,18 +62,23 @@ if (!empty($conf->notification->enabled)) { $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..fccb1ae3044 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); @@ -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); @@ -2776,12 +3037,38 @@ 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("NbOfEMailingsSend").''.$object->getNbOfEMailings().'
    '.$langs->trans("No_Email").''; + if ($object->email) { + print yn($object->no_email); + } else { + print ''.$langs->trans("EMailNotDefined").''; + } + print '
    '.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).''; @@ -2826,8 +3113,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); @@ -2842,8 +3129,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); @@ -2877,7 +3164,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").''; @@ -2892,6 +3179,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).''; // date print $formother->select_month($month ? $month : -1, 'month', 1, 0, 'valignmiddle'); - $formother->select_year($year ? $year : -1, 'year', 1, 20, 1, 0, 0, '', 'valignmiddle maxwidth75imp marginleftonly'); + print $formother->selectyear($year ? $year : -1, 'year', 1, 20, 1, 0, 0, '', 'valignmiddle maxwidth75imp marginleftonly'); 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->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 (!empty($conf->notification->enabled)) { + $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->rights->societe->creer; +$permtoedit = $user->rights->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 eb0c1e35230..1d0bdfe39a1 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,16 +124,16 @@ $result = $db->query($sql); if ($result) { while ($objp = $db->fetch_object($result)) { $found = 0; - if (!empty($conf->societe->enabled) && $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->rights->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 (!empty($conf->societe->enabled) && $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->rights->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 ((($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire) || (!empty($conf->supplier_invoice->enabled) && $user->rights->supplier_invoice->lire)) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS) && $objp->fournisseur) { + 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) { $found = 1; $third['supplier']++; } - if (!empty($conf->societe->enabled) && $objp->client == 0 && $objp->fournisseur == 0) { + if (isModEnabled('societe') && $objp->client == 0 && $objp->fournisseur == 0) { $found = 1; $third['other']++; } if ($found) { @@ -144,16 +150,16 @@ $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 (!empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { + if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { $dataseries[] = array($langs->trans("Prospects"), round($third['prospect'])); } - if (!empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { + if (isModEnabled('societe') && $user->rights->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)) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire) || (!empty($conf->supplier_invoice->enabled) && $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 (!empty($conf->societe->enabled)) { + if (isModEnabled('societe')) { $dataseries[] = array($langs->trans("Others"), round($third['other'])); } include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; @@ -167,17 +173,18 @@ if (!empty($conf->use_javascript_ajax) && ((round($third['prospect']) ? 1 : 0) + $thirdpartygraph .= $dolgraph->show(); $thirdpartygraph .= ''."\n"; } else { - if (!empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { + if (isModEnabled('societe') && $user->rights->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 (!empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { + if (isModEnabled('societe') && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { $statstring .= ""; $statstring .= ''.$langs->trans("Customers").''.round($third['customer']).''; $statstring .= ""; } - if ((($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && $user->rights->supplier_order->lire) || (!empty($conf->supplier_invoice->enabled) && $user->rights->supplier_invoice->lire)) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { + $statstring2 = ''; + 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)) { $statstring2 = ""; $statstring2 .= ''.$langs->trans("Suppliers").''.round($third['supplier']).''; $statstring2 .= ""; @@ -192,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'; @@ -353,8 +360,8 @@ if ($result) { $lastmodified .= $thirdparty_static->getTypeUrl(); $lastmodified .= ''; // Last modified date - $lastmodified .= ''; - $lastmodified .= dol_print_date($thirdparty_static->date_modification, 'day'); + $lastmodified .= 'date_modification, 'dayhour', 'tzuserrel')).'">'; + $lastmodified .= dol_print_date($thirdparty_static->date_modification, 'day', 'tzuserrel'); $lastmodified .= ""; $lastmodified .= ''; $lastmodified .= $thirdparty_static->getLibStatut(3); diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 5884679950f..ff6de888284 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -12,6 +12,7 @@ * Copyright (C) 2018 Nicolas ZABOURI * Copyright (C) 2020 Open-Dsi * Copyright (C) 2021 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 @@ -33,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'; @@ -41,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 @@ -103,9 +107,8 @@ $search_stcomm = GETPOST('search_stcomm', '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; @@ -194,7 +197,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' @@ -224,11 +227,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), @@ -267,6 +270,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 @@ -365,7 +376,7 @@ if (empty($reshook)) { $search_level = ''; $search_parent_name = ''; $search_import_key = ''; - $toselect = ''; + $toselect = array(); $search_array_options = array(); } @@ -420,15 +431,15 @@ $prospectstatic->client = 2; $prospectstatic->loadCacheOfProspStatus(); -$title = $langs->trans("ListOfThirdParties"); +$title = $langs->trans("ThirdParties"); if ($type == 'c' && (empty($search_type) || ($search_type == '1,3'))) { - $title = $langs->trans("ListOfCustomers"); + $title = $langs->trans("Customers"); } if ($type == 'p' && (empty($search_type) || ($search_type == '2,3'))) { - $title = $langs->trans("ListOfProspects"); + $title = $langs->trans("Prospects"); } if ($type == 'f' && (empty($search_type) || ($search_type == '4'))) { - $title = $langs->trans("ListOfSuppliers"); + $title = $langs->trans("Suppliers"); } // Select every potentiels, and note each potentiels which fit in search parameters @@ -637,7 +648,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') { @@ -677,20 +688,28 @@ $parameters = array('fieldstosearchall' => $fieldstosearchall); $reshook = $hookmanager->executeHooks('printFieldListGroupBy', $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 +// Count total nb of records with no order and no limits $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); + $resql = $db->query($sql); + if ($resql) { + $nbtotalofrecords = $db->num_rows($resql); + } 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) { @@ -700,6 +719,7 @@ if (!$resql) { $num = $db->num_rows($resql); + $arrayofselected = is_array($toselect) ? $toselect : array(); if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ($search_all != '' || $search_cti != '') && $action != 'list') { @@ -721,7 +741,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"]) { @@ -859,13 +879,10 @@ if (GETPOST('delsoc')) { // List of mass actions available $arrayofmassactions = array( -'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), -// 'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), + 'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), + //'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"), ); //if($user->rights->societe->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer"); -if ($user->rights->societe->supprimer) { - $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); -} if ($user->rights->societe->creer) { $arrayofmassactions['preaffecttag'] = img_picto('', 'category', 'class="pictofixedwidth"').$langs->trans("AffectTag"); } @@ -881,6 +898,9 @@ if ($user->rights->societe->creer) { if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete', 'preaffecttag', 'preenable', 'preclose'))) { $arrayofmassactions = array(); } +if ($user->rights->societe->supprimer) { + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); +} $massactionbutton = $form->selectMassAction('', $arrayofmassactions); $typefilter = ''; @@ -959,7 +979,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->rights->categorie->lire) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('Categories'); @@ -970,7 +990,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->rights->categorie->lire) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $moreforfilter .= '
    '; $tmptitle = $langs->trans('Categories'); @@ -998,7 +1018,7 @@ if ($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 // Show the massaction checkboxes only when this page is not opend from the Extended POS if ($massactionbutton && $contextpage != 'poslist') { $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); @@ -1013,6 +1033,13 @@ print ''; +if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + // Action column + print ''; +} if (!empty($arrayfields['s.rowid']['checked'])) { print ''; } -// Action column -print ''; +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + // Action 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 actioncolumn '); +} if (!empty($arrayfields['s.rowid']['checked'])) { print_liste_field_titre($arrayfields['s.rowid']['label'], $_SERVER["PHP_SELF"], "s.rowid", "", $param, ' data-key="id"', $sortfield, $sortorder, 'actioncolumn '); } @@ -1325,10 +1357,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 '); @@ -1363,7 +1395,9 @@ if (!empty($arrayfields['s.status']['checked'])) { if (!empty($arrayfields['s.import_key']['checked'])) { print_liste_field_titre($arrayfields['s.import_key']['label'], $_SERVER["PHP_SELF"], "s.import_key", "", $param, '', $sortfield, $sortorder, 'center '); } -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch actioncolumn '); +if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch actioncolumn '); +} print "\n"; @@ -1399,6 +1433,19 @@ while ($i < min($num, $limit)) { print ' onclick="location.href=\'list.php?action=change&contextpage=poslist&idcustomer='.$obj->rowid.'&place='.urlencode($place).'\'"'; } print '>'; + + // Action column (Show the massaction button only when this page is not opend from the Extended POS) + if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) { + print ''; + } if (!empty($arrayfields['s.rowid']['checked'])) { print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } @@ -1546,7 +1593,7 @@ while ($i < min($num, $limit)) { } } if (!empty($arrayfields['s.email']['checked'])) { - print '\n"; + print '\n"; if (!$i) { $totalarray['nbfield']++; } @@ -1640,7 +1687,8 @@ while ($i < min($num, $limit)) { if (!empty($arrayfields['s.fk_stcomm']['checked'])) { // Prospect status print ''; if (!$i) { @@ -1685,7 +1733,7 @@ while ($i < min($num, $limit)) { } // Date modification if (!empty($arrayfields['s.tms']['checked'])) { - print ''; if (!$i) { @@ -1694,30 +1742,32 @@ while ($i < min($num, $limit)) { } // Status if (!empty($arrayfields['s.status']['checked'])) { - print ''; + print ''; if (!$i) { $totalarray['nbfield']++; } } + // Import key if (!empty($arrayfields['s.import_key']['checked'])) { - print '\n"; if (!$i) { $totalarray['nbfield']++; } } - // Action column (Show the massaction button only when this page is not opend from the Extended POS) - print ''; } - print ''; if (!$i) { $totalarray['nbfield']++; } diff --git a/htdocs/societe/note.php b/htdocs/societe/note.php index b932fb11595..dabc5d7e39e 100644 --- a/htdocs/societe/note.php +++ b/htdocs/societe/note.php @@ -26,20 +26,28 @@ * \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); } +// Permissions $permissionnote = $user->rights->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 @@ -50,6 +58,7 @@ if ($user->socid > 0) { unset($action); $socid = $user->socid; } + $result = restrictedArea($user, 'societe', $object->id, '&societe'); diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php index 8729ed3b46e..ba1ead0e068 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 '';*/ diff --git a/htdocs/societe/partnership.php b/htdocs/societe/partnership.php index 2ce4884932e..4e0552d3c15 100644 --- a/htdocs/societe/partnership.php +++ b/htdocs/societe/partnership.php @@ -1,6 +1,7 @@ * 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 @@ -52,7 +53,7 @@ if (!empty($user->socid)) { $socid = $user->socid; } -if (empty($id) && $socid && (empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) || $conf->global->PARTNERSHIP_IS_MANAGED_FOR == 'thirdparty')) { +if (empty($id) && $socid && (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'thirdparty')) { $id = $socid; } @@ -94,8 +95,8 @@ $usercanclose = $user->rights->partnership->write; // Used by the include of act $upload_dir = $conf->partnership->multidir_output[isset($object->entity) ? $object->entity : 1]; -if (!empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) && $conf->global->PARTNERSHIP_IS_MANAGED_FOR != 'thirdparty') { - accessforbidden(); +if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') != 'thirdparty') { + accessforbidden('Partnership is not activated for thirdparties'); } if (empty($conf->partnership->enabled)) { accessforbidden(); @@ -120,7 +121,7 @@ $result = restrictedArea($user, 'societe', $id, '&societe', '', 'fk_soc', 'rowid * Actions */ -$parameters = array(); +$parameters = array('socid' => $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'); @@ -180,25 +181,25 @@ if ($id > 0) { print '
    '; + $searchpicto = $form->showFilterButtons('left'); + print $searchpicto; + print ''; print ''; @@ -1241,14 +1268,19 @@ if (!empty($arrayfields['s.import_key']['checked'])) { print ''; print ''; -$searchpicto = $form->showFilterButtons(); -print $searchpicto; -print ''; + $searchpicto = $form->showFilterButtons(); + print $searchpicto; + print '
    '; + if (($massactionbutton || $massaction) && $contextpage != 'poslist') { // 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 $obj->rowid; @@ -1469,7 +1516,7 @@ while ($i < min($num, $limit)) { } // Address if (!empty($arrayfields['s.address']['checked'])) { - print ''.dol_escape_htmltag($obj->address).''.dol_escape_htmltag($obj->address).''.dol_print_email($obj->email, $obj->rowid, $obj->socid, 'AC_EMAIL', 0, 0, 1)."'.dol_print_email($obj->email, $obj->rowid, $obj->rowid, 'AC_EMAIL', 0, 0, 1)."
    '; - print '
    '.$companystatic->LibProspCommStatut($obj->stcomm_id, 2, $prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label'], $obj->stcomm_picto); + print '
    '; + print $companystatic->LibProspCommStatut($obj->stcomm_id, 2, $prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label'], $obj->stcomm_picto); print '
    -
    '; foreach ($prospectstatic->cacheprospectstatus as $key => $val) { $titlealt = 'default'; @@ -1676,7 +1724,7 @@ while ($i < min($num, $limit)) { print $hookmanager->resPrint; // Date creation if (!empty($arrayfields['s.datec']['checked'])) { - print '
    '; + print ''; print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); print ''; + print ''; print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); print ''.$companystatic->getLibStatut(5).''.$companystatic->getLibStatut(5).''; - print $obj->import_key; + print ''; + print dol_escape_htmltag($obj->import_key); print "'; - if (($massactionbutton || $massaction) && $contextpage != 'poslist') { // 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) && $contextpage != 'poslist') { // 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 $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 '
    '; if (!empty($conf->global->SOCIETE_USEPREFIX)) { // Old not used prefix field - print ''; + print ''; } - if ($societe->client) { + if ($object->client) { print ''; } - if ($societe->fournisseur) { + if ($object->fournisseur) { print ''; @@ -836,16 +933,16 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' $obj = $db->fetch_object($resql); $nbFactsClient = $obj->nb; $thirdTypeArray['customer'] = $langs->trans("customer"); - if ($conf->propal->enabled && $user->rights->propal->lire) { + if (isModEnabled('propal') && $user->rights->propal->lire) { $elementTypeArray['propal'] = $langs->transnoentitiesnoconv('Proposals'); } - if ($conf->commande->enabled && $user->rights->commande->lire) { + if (isModEnabled('commande') && $user->rights->commande->lire) { $elementTypeArray['order'] = $langs->transnoentitiesnoconv('Orders'); } - if ($conf->facture->enabled && $user->rights->facture->lire) { + if (isModEnabled('facture') && $user->rights->facture->lire) { $elementTypeArray['invoice'] = $langs->transnoentitiesnoconv('Invoices'); } - if ($conf->contrat->enabled && $user->rights->contrat->lire) { + if (isModEnabled('contrat') && $user->rights->contrat->lire) { $elementTypeArray['contract'] = $langs->transnoentitiesnoconv('Contracts'); } } @@ -887,70 +984,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 '
    '.$langs->trans('Prefix').''.$societe->prefix_comm.'
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; print $langs->trans('CustomerCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($societe->code_client)); - $tmpcheck = $societe->check_codeclient(); + 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($societe->code_fournisseur)); - $tmpcheck = $societe->check_codefournisseur(); + print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); + $tmpcheck = $object->check_codefournisseur(); if ($tmpcheck != 0 && $tmpcheck != -5) { print ' ('.$langs->trans("WrongSupplierCode").')'; } diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 8629044f83b..30b19e59d8b 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,6 +78,7 @@ $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')); +// Permissions $permissiontoread = $user->rights->societe->lire; $permissiontoadd = $user->rights->societe->creer; // Used by the include of actions_addupdatedelete.inc.php and actions_builddoc.inc.php @@ -166,6 +175,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 +422,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 +435,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 +448,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 { @@ -496,7 +525,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 +536,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; @@ -545,7 +603,9 @@ if (empty($reshook)) { $resql = $db->query($sql); } } - //var_dump($sql); var_dump($newcu); var_dump($num); exit; + //var_dump($sql); + //var_dump($newcu); + //var_dump($num); exit; if (!$error) { $stripecu = $newcu; @@ -621,7 +681,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 @@ -649,6 +709,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(); } @@ -680,13 +775,14 @@ $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 (!empty($conf->paypal->enabled) && (!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'); }*/ @@ -776,16 +872,16 @@ 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 (!empty($conf->facture->enabled) && $user->rights->facture->lire) { + 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'); } @@ -812,7 +908,8 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print ''; print ''; print ''; - print ''; + print img_picto($langs->trans("CreateCustomerOnStripe"), 'stripe'); + print ''; print ''; } print '
    '."\n"; print ''; - if (!empty($conf->global->STRIPE_ALLOW_LOCAL_CARD)) { - print ''; - } print ''; - print ''; + print ''; // external system ID print ''; print ''; print ''; @@ -967,7 +1069,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)) { @@ -991,18 +1093,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.'/'; @@ -1011,12 +1111,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.'
    '; @@ -1070,7 +1173,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 ''; @@ -1089,24 +1191,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.'/'; } @@ -1116,21 +1225,12 @@ 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''; @@ -1205,18 +1305,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 ''; } @@ -1235,7 +1337,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '
    '; } - // List of Stripe payment modes + // List of Stripe connect accounts if (!empty($conf->stripe->enabled) && !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)); @@ -1288,13 +1390,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"); @@ -1304,17 +1411,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 ''; - print ''; + print ''; print ''; @@ -1415,7 +1548,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' $allowgenifempty = 0; // Language code (if multilang) - if ($conf->global->MAIN_MULTILANGS) { + if (!empty($conf->global->MAIN_MULTILANGS)) { include_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; $formadmin = new FormAdmin($db); $defaultlang = $langs->getDefaultLang(); @@ -1448,9 +1581,21 @@ 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 ''; } @@ -1547,10 +1796,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 = ''; @@ -1346,7 +1479,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print $string; print ''.$rib->iban; + print ''.dol_escape_htmltag($rib->iban); if (!empty($rib->iban)) { if (!checkIbanForAccount($rib)) { print ' '.img_picto($langs->trans("IbanNotValid"), 'warning'); @@ -1365,7 +1498,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' if (!empty($conf->prelevement->enabled)) { // RUM //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) { + 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 ''; @@ -1464,10 +1609,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 ''; @@ -1622,7 +1873,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 '
    '; @@ -1646,6 +1897,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 '
    '; } @@ -1664,9 +1918,12 @@ if ($socid && $action == 'editcard' && $permissiontoaddupdatepaymentinformation) dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); - print '
    '; + print '
    '; print '
    '; + + print '
    '; + print ''; print ''; @@ -1681,7 +1938,7 @@ if ($socid && $action == 'editcard' && $permissiontoaddupdatepaymentinformation) print ''; print ''; print ''; @@ -1710,13 +1967,16 @@ if ($socid && $action == 'create' && $permissiontoaddupdatepaymentinformation) { print '
    '; print '
    '; + + print '
    '; + print '
    '.$langs->trans("Label").'
    '.$langs->trans("ExpiryDate").''; print $formother->select_month($companypaymentmode->exp_date_month, 'exp_date_month', 1); - print $formother->select_year($companypaymentmode->exp_date_year, 'exp_date_year', 1, 5, 10, 0, 0, '', 'marginleftonly'); + print $formother->selectyear($companypaymentmode->exp_date_year, 'exp_date_year', 1, 5, 10, 0, 0, '', 'marginleftonly'); print '
    '.$langs->trans("CVN").'
    '; - print ''; - print ''; + print ''; + print ''; print ''; - print ''; + print ''; // Show fields of bank account foreach ($companybankaccount->getFieldsToShow(1) as $val) { @@ -1783,7 +2043,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 ''; @@ -1802,6 +2062,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_....')
    '; } @@ -1809,7 +2072,7 @@ if ($socid && $action == 'create' && $permissiontoaddupdatepaymentinformation) { print dol_get_fiche_end(); - dol_set_focus('#label'); + dol_set_focus('#bank'); print $form->buttonsSaveCancel("Add"); } @@ -1825,6 +2088,9 @@ if ($socid && $action == 'createcard' && $permissiontoaddupdatepaymentinformatio print '
    '; print '
    '; + + print '
    '; + print ''; print ''; @@ -1839,7 +2105,7 @@ if ($socid && $action == 'createcard' && $permissiontoaddupdatepaymentinformatio print ''; print ''; print ''; diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php index 897a372dc27..a9f17f4b50a 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 @@ -543,6 +550,7 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print ''; print ''; + print '
    '; print '
    '.$langs->trans("Label").'
    '.$langs->trans("ExpiryDate").''; print $formother->select_month(GETPOST('exp_date_month', 'int'), 'exp_date_month', 1); - print $formother->select_year(GETPOST('exp_date_year', 'int'), 'exp_date_year', 1, 5, 10, 0, 0, '', 'marginleftonly'); + print $formother->selectyear(GETPOST('exp_date_year', 'int'), 'exp_date_year', 1, 5, 10, 0, 0, '', 'marginleftonly'); print '
    '.$langs->trans("CVN").'
    '; print ''; @@ -562,14 +570,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 +641,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..f704273db60 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'); 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/website.php b/htdocs/societe/website.php index bc93d72d60e..8de63dfeffc 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'); @@ -144,7 +150,7 @@ if (empty($reshook)) { foreach ($objectwebsiteaccount->fields as $key => $val) { $search[$key] = ''; } - $toselect = ''; + $toselect = array(); $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') @@ -243,7 +249,7 @@ print '
    '; print dol_get_fiche_end(); $newcardbutton = ''; -if (!empty($conf->website->enabled)) { +if (isModEnabled('website')) { if (!empty($user->rights->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 { @@ -273,7 +279,7 @@ $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $obje $sql .= $hookmanager->resPrint; $sql = preg_replace('/, $/', '', $sql); $sql .= " FROM ".MAIN_DB_PREFIX."societe_account as t"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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)"; } if ($objectwebsiteaccount->ismultientitymanaged == 1) { @@ -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(); @@ -468,7 +474,7 @@ print ''."\n"; // Detect if we need a fetch on each output line $needToFetchEachLine = 0; -if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 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 diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 77c8d9a03b2..33536271115 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 ''.$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 ''; print ''.$langs->trans("STRIPE_LIVE_SECRET_KEY").''; - print ''; + 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 "\n"; print ''; print $langs->trans("PublicVendorName").''; -print ''; +print ''; print '   '.$langs->trans("Example").': '.$mysoc->name.''; print ''; 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 ''; 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 ''; if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) { // What is this for ? 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 ''; +} + +// Card Present for Stripe Terminal +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code + 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 ''; +} + +// Locations for Stripe Terminal +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code + 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 (!empty($conf->stripe->enabled) && (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 $locations) { + $location[$locations->id] = $locations->display_name; + } + print $form->selectarray("STRIPE_LOCATION", $location, getDolGlobalString('STRIPE_LOCATION')); print ''; } // Activate Payment Request API if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // TODO Not used by current code 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 ''; } @@ -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 ''; } @@ -486,6 +549,7 @@ print ''; 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 ''; @@ -519,7 +583,7 @@ print ''; 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 49db54b444f..522445334eb 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'; } @@ -53,7 +54,7 @@ $pageprev = $page - 1; $pagenext = $page + 1; $result = restrictedArea($user, 'banque'); - +$optioncss = GETPOST('optioncss', 'alpha'); /* * View @@ -162,20 +163,20 @@ if (!$rowid) { $status = $form->textwithpicto(img_picto($langs->trans((string) $charge->status), 'statut8'), $label, -1); } - if ($charge->payment_method_details->type == 'card') { + if (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'card') { $type = $langs->trans("card"); - } elseif ($charge->source->type == 'card') { + } elseif (isset($charge->source->type) && $charge->source->type == 'card') { $type = $langs->trans("card"); - } elseif ($charge->payment_method_details->type == 'three_d_secure') { + } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'three_d_secure') { $type = $langs->trans("card3DS"); - } elseif ($charge->payment_method_details->type == 'sepa_debit') { + } elseif (isset($charge->payment_method_details->type) && $charge->payment_method_details->type == 'sepa_debit') { $type = $langs->trans("sepadebit"); - } elseif ($charge->payment_method_details->type == 'ideal') { + } 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($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 { @@ -206,6 +207,8 @@ if (!$rowid) { if (!empty($stripeacc)) { $connect = $stripeacc.'/'; + } else { + $connect = ''; } // Ref @@ -249,16 +252,15 @@ if (!$rowid) { $object = new Commande($db); $object->fetch($charge->metadata->dol_id); if ($object->id > 0) { - print "".img_picto('', 'object_order')." ".$object->ref.""; + print "".img_picto('', 'order')." ".$object->ref.""; } 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.""; + print "".img_picto('', 'bill')." ".$object->ref.""; } else { print $FULLTAG; } @@ -268,13 +270,13 @@ if (!$rowid) { print "\n"; // Date payment - print ''.dol_print_date($charge->created, '%d/%m/%Y %H:%M')."\n"; + print ''.dol_print_date($charge->created, 'dayhour')."\n"; // Type print ''; print $type; print ''; // Amount - print ''.price(($charge->amount - $charge->amount_refunded) / 100, 0, '', 1, - 1, - 1, strtoupper($charge->currency)).""; + print ''.price(($charge->amount - $charge->amount_refunded) / 100, 0, '', 1, - 1, - 1, strtoupper($charge->currency)).""; // Status print ''; print $status; diff --git a/htdocs/stripe/class/actions_stripe.class.php b/htdocs/stripe/class/actions_stripe.class.php index f1a7a5c7877..0d8b5e03435 100644 --- a/htdocs/stripe/class/actions_stripe.class.php +++ b/htdocs/stripe/class/actions_stripe.class.php @@ -175,6 +175,8 @@ class ActionsStripeconnect $sql .= ' FROM '.MAIN_DB_PREFIX.'paiement_facture as pf'; $sql .= ' WHERE pf.fk_facture = '.((int) $object->id); + $totalpaid = 0; + $result = $this->db->query($sql); if ($result) { $i = 0; @@ -182,14 +184,14 @@ class ActionsStripeconnect while ($i < $num) { $objp = $this->db->fetch_object($result); - $totalpaye += $objp->amount; + $totalpaid += $objp->amount; $i++; } } else { dol_print_error($this->db, ''); } - $resteapayer = $object->total_ttc - $totalpaye; + $resteapayer = $object->total_ttc - $totalpaid; // Request a direct debit order if ($object->statut > Facture::STATUS_DRAFT && $object->statut < Facture::STATUS_ABANDONED && $object->paye == 0) { $stripe = new Stripe($this->db); diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 18ebce96f8b..cc8178d2a01 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 = ''; } @@ -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(''.$reader.''); + } else { + $stripepaymentmethod = \Stripe\Terminal\Reader::retrieve(''.$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) && !empty($conf->global->STRIPE_REUSE_EXISTING_INTENT_IF_FOUND) && empty($conf->global->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 @@ -406,8 +434,10 @@ class Stripe extends CommonObject // list of payment method types $paymentmethodtypes = array("card"); + $descriptor = dol_trunc($tag, 10, 'right', 'UTF-8', 1); if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) { $paymentmethodtypes[] = "sepa_debit"; //&& ($object->thirdparty->isInEEC()) + //$descriptor = preg_replace('/ref=[^:=]+/', '', $descriptor); // Clean ref } if (!empty($conf->global->STRIPE_KLARNA)) { $paymentmethodtypes[] = "klarna"; @@ -424,6 +454,9 @@ class Stripe extends CommonObject if (!empty($conf->global->STRIPE_SOFORT)) { $paymentmethodtypes[] = "sofort"; } + if (!empty($conf->global->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 @@ -456,6 +490,11 @@ class Stripe extends CommonObject if (!empty($conf->global->STRIPE_KLARNA)) { unset($dataforintent['setup_future_usage']); } + if (!empty($conf->global->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; @@ -531,12 +570,12 @@ class Stripe extends CommonObject $this->code = $e->getStripeCode(); $this->declinecode = $e->getDeclineCode(); } catch (Exception $e) { - /*var_dump($dataforintent); - var_dump($description); - var_dump($key); - var_dump($paymentintent); - var_dump($e->getMessage()); - var_dump($e);*/ + //var_dump($dataforintent); + //var_dump($description); + //var_dump($key); + //var_dump($paymentintent); + //var_dump($e->getMessage()); + //var_dump($e); $error++; $this->error = $e->getMessage(); $this->code = ''; @@ -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. @@ -695,11 +733,11 @@ class Stripe extends CommonObject $_SESSION["stripe_setup_intent"] = $setupintent; }*/ } catch (Exception $e) { - /*var_dump($dataforintent); - var_dump($description); - var_dump($key); - var_dump($setupintent); - var_dump($e->getMessage());*/ + //var_dump($dataforintent); + //var_dump($description); + //var_dump($key); + //var_dump($setupintent); + //var_dump($e->getMessage()); $error++; $this->error = $e->getMessage(); } @@ -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); @@ -780,7 +818,8 @@ class Stripe extends CommonObject ); //$a = \Stripe\Stripe::getApiKey(); - //var_dump($a);var_dump($stripeacc);exit; + //var_dump($a); + //var_dump($stripeacc);exit; try { if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION)) { @@ -851,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 = '".$this->db->escape($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. diff --git a/htdocs/stripe/payout.php b/htdocs/stripe/payout.php index 34b4ea1dc4f..81baa5db4ac 100644 --- a/htdocs/stripe/payout.php +++ b/htdocs/stripe/payout.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'; } @@ -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'); @@ -95,12 +100,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); @@ -133,7 +138,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']); } @@ -141,7 +146,7 @@ if (!$rowid) { { $societestatic->id = 0; } - if (! empty($tmparray['MEM'])) + if (!empty($tmparray['MEM'])) { $memberstatic->fetch($tmparray['MEM']); } @@ -200,13 +205,13 @@ if (!$rowid) { //} //print "\n"; // Date payment - print '\n"; + print '\n"; // Date payment - print '\n"; + print '\n"; // Type print ''; // Amount - print '"; + print '"; // Status print "
    '.dol_print_date($payout->created, '%d/%m/%Y %H:%M')."'.dol_print_date($payout->created, 'dayhour')."'.dol_print_date($payout->arrival_date, '%d/%m/%Y %H:%M')."'.dol_print_date($payout->arrival_date, 'dayhour')."'.$payout->description.''.price(($payout->amount) / 100, 0, '', 1, -1, -1, strtoupper($payout->currency))."'.price(($payout->amount) / 100, 0, '', 1, -1, -1, strtoupper($payout->currency)).""; if ($payout->status == 'paid') { diff --git a/htdocs/stripe/transaction.php b/htdocs/stripe/transaction.php index 6bab8459d18..c36c061b91e 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'); @@ -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 ''."\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 ''; @@ -207,12 +211,12 @@ if (!$rowid) { //} //print "\n"; // Date payment - print '\n"; + print '\n"; // Type print ''; // Amount - print '"; - print '"; + print '"; + print '"; // Status print "'; // Mode of payment @@ -1247,16 +1287,16 @@ 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 ''; } @@ -1264,7 +1304,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); @@ -1305,7 +1345,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 '"; @@ -1529,7 +1569,7 @@ if ($action == 'create') { $morehtmlref .= ' ('.$langs->trans("OtherProposals").')'; } // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($usercancreate) { @@ -1656,7 +1696,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 '
    '.dol_print_date($txn->created, '%d/%m/%Y %H:%M')."'.dol_print_date($txn->created, 'dayhour')."'.$txn->type.''.price(($txn->amount) / 100, 0, '', 1, - 1, - 1, strtoupper($txn->currency))."'.price(($txn->fee) / 100, 0, '', 1, - 1, - 1, strtoupper($txn->currency))."'.price(($txn->amount) / 100, 0, '', 1, - 1, - 1, strtoupper($txn->currency))."'.price(($txn->fee) / 100, 0, '', 1, - 1, - 1, strtoupper($txn->currency)).""; if ($txn->status == 'available') { diff --git a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php index 66bcf2c61e4..dad2859cd8d 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'; @@ -78,7 +79,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php index 5a061101fab..477134e319e 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'; @@ -84,7 +85,7 @@ print dol_get_fiche_end(); // Buttons if ($action != 'create' && $action != 'edit') { print '"; } diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 369dcf3742f..7d2bf3c2eb0 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,7 +45,7 @@ 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'; } @@ -221,10 +222,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -307,7 +308,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,8 +322,20 @@ if (empty($reshook)) { if (!$error) { if ($origin && $originid) { - $element = 'supplier_proposal'; - $subelement = 'supplier_proposal'; + $element = $subelement = $origin; + if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) { + $element = $regs[1]; + $subelement = $regs[2]; + } + + // For compatibility + if ($element == 'order') { + $element = $subelement = 'commande'; + } + if ($element == 'propal') { + $element = 'comm/propal'; + $subelement = 'propal'; + } $object->origin = $origin; $object->origin_id = $originid; @@ -436,10 +449,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -534,7 +547,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; @@ -674,6 +696,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')); @@ -741,7 +764,9 @@ if (empty($reshook)) { $date_end ); - //var_dump($tva_tx);var_dump($productsupplier->fourn_pu);var_dump($price_base_type);exit; + //var_dump($tva_tx); + //var_dump($productsupplier->fourn_pu); + //var_dump($price_base_type);exit; if ($result < 0) { $error++; setEventMessages($object->error, $object->errors, 'errors'); @@ -827,10 +852,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 (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang) && GETPOST('lang_id', 'aZ09')) { $newlang = GETPOST('lang_id', 'aZ09'); } - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) { + if (!empty($conf->global->MAIN_MULTILANGS) && empty($newlang)) { $newlang = $object->thirdparty->default_lang; } if (!empty($newlang)) { @@ -1108,7 +1133,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); @@ -1117,7 +1145,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); } @@ -1127,7 +1155,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) { @@ -1136,8 +1164,20 @@ if ($action == 'create') { // Load objectsrc if (!empty($origin) && !empty($originid)) { - $element = 'supplier_proposal'; - $subelement = 'supplier_proposal'; + $element = $subelement = GETPOST('origin'); + if (preg_match('/^([^_]+)_([^_]+)/i', GETPOST('origin'), $regs)) { + $element = $regs[1]; + $subelement = $regs[2]; + } + + // For compatibility + if ($element == 'order' || $element == 'commande') { + $element = $subelement = 'commande'; + } + if ($element == 'propal') { + $element = 'comm/propal'; + $subelement = 'propal'; + } dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); @@ -1161,7 +1201,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; } @@ -1172,7 +1212,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; } } @@ -1238,7 +1278,7 @@ if ($action == 'create') { // Terms of payment 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 $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); @@ -1281,12 +1321,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).''; @@ -1329,7 +1369,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"; @@ -1352,7 +1392,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)."
    '; @@ -1718,7 +1758,7 @@ if ($action == 'create') { print '
    '; print ''; } + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; + } if (!empty($arrayfields['s.town']['checked'])) { print ''; } @@ -816,6 +831,9 @@ if ($resql) { 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); } @@ -904,6 +922,7 @@ 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; @@ -942,7 +961,17 @@ if ($resql) { // Thirdparty if (!empty($arrayfields['s.nom']['checked'])) { print ''; + if (!$i) { + $totalarray['nbfield']++; + } + } + + // Alias + if (!empty($arrayfields['s.name_alias']['checked'])) { + print ''; if (!$i) { $totalarray['nbfield']++; diff --git a/htdocs/supplier_proposal/note.php b/htdocs/supplier_proposal/note.php index 5a19a94b402..118855cecf3 100644 --- a/htdocs/supplier_proposal/note.php +++ b/htdocs/supplier_proposal/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.'/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 @@ -72,10 +73,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 +85,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); @@ -105,7 +106,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$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) { 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 '
    '; @@ -1749,54 +1789,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); }*/ @@ -1939,7 +1979,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 ''; } diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index e755a0bab94..0e8789dc84a 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -331,7 +331,6 @@ class SupplierProposal extends CommonObject $supplier_proposalligne->subprice = -$remise->amount_ht; $supplier_proposalligne->fk_product = 0; // Id produit predefini $supplier_proposalligne->qty = 1; - $supplier_proposalligne->remise = 0; $supplier_proposalligne->remise_percent = 0; $supplier_proposalligne->rang = -1; $supplier_proposalligne->info_bits = 2; @@ -519,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; } @@ -721,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; } @@ -1150,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 @@ -1256,6 +1257,7 @@ 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 @@ -1778,7 +1780,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; @@ -1841,7 +1843,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 @@ -1862,7 +1864,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).')'; @@ -2191,7 +2193,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"); @@ -2948,7 +2950,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; @@ -3006,9 +3008,6 @@ class SupplierProposalLine extends CommonObjectLine if (empty($this->rang)) { $this->rang = 0; } - if (empty($this->remise)) { - $this->remise = 0; - } if (empty($this->remise_percent)) { $this->remise_percent = 0; } diff --git a/htdocs/supplier_proposal/contact.php b/htdocs/supplier_proposal/contact.php index f1756f17814..fde016c78c4 100644 --- a/htdocs/supplier_proposal/contact.php +++ b/htdocs/supplier_proposal/contact.php @@ -24,6 +24,7 @@ * \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'; @@ -98,10 +99,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 +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: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'); @@ -134,7 +135,7 @@ if ($id > 0 || !empty($ref)) { // Thirdparty $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (!empty($conf->projet->enabled)) { + if (!empty($conf->project->enabled)) { $langs->load("projects"); $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($permissiontoedit) { diff --git a/htdocs/supplier_proposal/document.php b/htdocs/supplier_proposal/document.php index fa73ec22fa8..7aacfb8f8b2 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 @@ -90,7 +91,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); @@ -121,7 +122,7 @@ if ($object->id > 0) { // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$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) { diff --git a/htdocs/supplier_proposal/index.php b/htdocs/supplier_proposal/index.php index f151651d186..a77c4eac47d 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'; @@ -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..d1f0daad639 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'); @@ -76,7 +74,7 @@ $morehtmlref = '
    '; // Thirdparty $morehtmlref .= $langs->trans('ThirdParty').' : '.$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) { diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index ad35c8f9914..a0299ef3fec 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'); @@ -168,6 +170,7 @@ $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), @@ -178,11 +181,11 @@ $arrayfields = array( '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), @@ -224,6 +227,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 +289,16 @@ $formpropal = new FormPropal($db); $companystatic = new Societe($db); $formcompany = new FormCompany($db); +$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) { $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 +308,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) { @@ -318,7 +324,7 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s $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 .= ', '.MAIN_DB_PREFIX.'supplier_proposal as sp'; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { +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) { @@ -363,6 +369,9 @@ if ($search_ref) { 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); } @@ -448,9 +457,9 @@ if ($resql) { if ($socid > 0) { $soc = new Societe($db); $soc->fetch($socid); - $title = $langs->trans('ListOfSupplierProposals').' - '.$soc->name; + $title = $langs->trans('SupplierProposals').' - '.$soc->name; } else { - $title = $langs->trans('ListOfSupplierProposals'); + $title = $langs->trans('SupplierProposals'); } $num = $db->num_rows($resql); @@ -467,8 +476,6 @@ if ($resql) { exit; } - llxHeader('', $langs->trans('CommRequest'), $help_url); - $param = ''; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { $param .= '&contextpage='.urlencode($contextpage); @@ -521,6 +528,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); } @@ -573,10 +583,10 @@ if ($resql) { $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"), + //'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"), ); if ($user->rights->supplier_proposal->supprimer) { - $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').' '.$langs->trans("Delete"); + $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete"); } if (in_array($massaction, array('presend', 'predelete'))) { $arrayofmassactions = array(); @@ -620,7 +630,7 @@ if ($resql) { $moreforfilter = ''; // If the user can view prospects other than his' - if ($user->rights->societe->client->voir || $socid) { + if ($user->rights->user->user->lire) { $langs->load("commercial"); $moreforfilter .= '
    '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative'); @@ -628,14 +638,14 @@ if ($resql) { $moreforfilter .= '
    '; } // If the user can view prospects other than his' - if ($user->rights->societe->client->voir || $socid) { + 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 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'); @@ -677,6 +687,11 @@ if ($resql) { print ''; print '
    '; + print ''; + 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 '
    '; +print ''; print ''; print ''; @@ -141,17 +148,22 @@ print "\n"; print '
    '; // EMail support -print '
    '; -print ''; +print ''; +print ''; print '